diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 000000000000..de7b2afc30ae --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,53 @@ +name: Publish to npm +on: + push: + branches: + - master + paths: + - 'package.json' +jobs: + test: + uses: ./.github/workflows/test.yml + get-version: + runs-on: ubuntu-latest + outputs: + current_version: ${{ steps.current_version.outputs.version }} + last_version: ${{ steps.last_version.outputs.version }} + token_exists: ${{ steps.check_token.outputs.token }} + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 50 + # Check if the package.json version field has changed since the last push + - name: Get current version from package.json + id: current_version + run: | + echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT + - name: Get the version from the last push + id: last_version + run: | + git checkout ${{ github.event.before }} + echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT + - name: Check if NPM_TOKEN exists + id: check_token + run: | + echo "token=$(if [ -n "${{ secrets.NPM_TOKEN }}" ]; then echo true; else echo false; fi)" >> $GITHUB_OUTPUT + npm-publish: + needs: + - test + - get-version + runs-on: ubuntu-latest + # We only want to publish if the package.json version field has changed + if: needs.get-version.outputs.current_version != needs.get-version.outputs.last_version && needs.get-version.outputs.token_exists == 'true' + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'npm' + registry-url: 'https://registry.npmjs.org' + - run: npm ci + - run: npm run build + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0eca7eebeb3a..0b944b73c941 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,6 +8,7 @@ on: branches: [ master ] pull_request: branches: [ master ] + workflow_call: jobs: build: @@ -20,11 +21,60 @@ jobs: steps: - uses: actions/checkout@v3 + with: + fetch-depth: 100 # assumes PR/push to master is no larger than 100 commits. Other solutions are needlessly complex. + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci - - run: npm run full-test + + - name: Determine which files to lint (if pull request) + if: ${{ github.event_name == 'pull_request' }} + id: changed-files + uses: tj-actions/changed-files@v35 + with: + files: | + ./config/*.ts + ./data/**/*.ts + ./lib/*.ts + ./server/**/*.ts + ./server/**/*.tsx + ./sim/**/*.ts + ./tools/set-import/*.ts + files_ignore: | + ./logs/ + ./node_modules/ + ./dist/ + ./data/**/learnsets.ts + ./tools/set-import/importer.js + ./tools/set-import/sets + ./tools/modlog/converter.js + ./server/global-variables.d.ts + + - name: Determine whether test/sim or test/random-battles need to run (if pull request) + if: ${{ github.event_name == 'pull_request' }} + id: changed-directories + uses: tj-actions/changed-files@v35 + with: + files: | + config/formats.ts + data/** + sim/** + + - name: Run selective lint & neccessary tests (if pull request) + if: ${{ github.event_name == 'pull_request' }} + run: npm run full-test-ci + env: + CI: true + FILES: ${{ steps.changed-files.outputs.all_changed_and_modified_files }} + SKIPSIMTESTS: ${{ steps.changed-directories.outputs.all_changed_and_modified_files == '' }} + + - name: Run full lint & test (if push to master) + run: npm run full-test + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} env: CI: true diff --git a/.github/workflows/update_version.yml b/.github/workflows/update_version.yml new file mode 100644 index 000000000000..ad997309da85 --- /dev/null +++ b/.github/workflows/update_version.yml @@ -0,0 +1,42 @@ +name: Update the npm package version + +on: + workflow_dispatch: + inputs: + version: + required: true + type: choice + description: Version type + default: patch + options: + - major + - minor + - patch + - premajor + - preminor + - prepatch + - prerelease +jobs: + update_version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'npm' + - id: bump_version + run: | + echo "old_version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT + npm version ${{ github.event.inputs.version }} --no-git-tag-version + echo "new_version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT + + - uses: peter-evans/create-pull-request@v4 + with: + title: Bump package.json version to v${{ steps.bump_version.outputs.new_version }}} + body: | + Bump package.json version from `v${{ steps.bump_version.outputs.old_version }}` to `v${{ steps.bump_version.outputs.new_version }}` + commit-message: Bump package.json version to v${{ steps.bump_version.outputs.new_version }} + branch: npm-version-bump + base: master + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5e43b6d9ba83..9dc5ec3c2314 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ /config/* !/config/formats.ts -/logs/* +/logs/**/* /test/modlogs /test/replays/*.html /node_modules diff --git a/.npmignore b/.npmignore index eca1005cf8b6..0df6e70918fe 100644 --- a/.npmignore +++ b/.npmignore @@ -2,6 +2,7 @@ /config/* !/config/formats.ts +!/config/config-example.js /logs/* /test/modlogs /node_modules diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index fbca55dcdc13..c369b59a7b2d 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -3,11 +3,19 @@ Pokemon Showdown architecture At the highest level, PS is split into three parts: -- Client -- Login server -- Game server +- Game server (**[smogon/pokemon-showdown](https://github.com/smogon/pokemon-showdown)**) +- Client (**[smogon/pokemon-showdown-client](https://github.com/smogon/pokemon-showdown-client)**) +- Login server (**[smogon/pokemon-showdown-loginserver](https://github.com/smogon/pokemon-showdown-loginserver)**) -The game server is in this repository, **[smogon/pokemon-showdown](https://github.com/smogon/pokemon-showdown)**, while the client and login server are in **[smogon/pokemon-showdown-client](https://github.com/smogon/pokemon-showdown-client)**. All three communicate directly with each other. +All three communicate directly with each other. + +A user starts by visiting `https://play.pokemonshowdown.com/`. This is handled by an Apache server (in the Client), which serves mostly static files but uses some PHP (legacy, intended to be migrated to Loginserver). + +The user's web browser (running Client code) will then communicate with the Login server (mounted at `https://play.pokemonshowdown.com/api/` to handle logins mostly, or otherwise interface with the Client databases one way or another). + +The user's web browser will also connect to the Game server, through SockJS. The Game server handles the chat rooms, matchmaking, and actual battle simulation. + +The Game server also communicates with the Login server, to handle replay uploads (and, for the main server, ladder updates). Game server @@ -25,7 +33,7 @@ Its entry point is [server/index.ts](./server/index.ts), which launches several - [server/chat.ts](./server/chat.ts) sets up `Chat`, which handles chat commands and messages coming in from users (all client-to-server commands are routed through there) -`Rooms` also includes support for battle rooms, which is where the game simulation itself is done. Game simulation code is in [sim/](./sim/). +`Rooms` also includes support for battle rooms, which is where the server connects to the game simulator itself. Game simulation code is in [sim/](./sim/). Client @@ -33,14 +41,16 @@ Client The client is built in a mix of TypeScript and JavaScript, with a mostly hand-rolled framework built on Backbone. There’s a rewrite to migrate it to Preact but it’s very stalled. -Its entry point is [index.template.html](https://github.com/smogon/pokemon-showdown-client/blob/master/index.template.html). +Its entry point is [index.template.html](https://github.com/smogon/pokemon-showdown-client/blob/master/play.pokemonshowdown.com/index.template.html) -It was written long ago, so instead of a single JS entry point, it includes a lot of JS files. Everything important is launched from [js/client.js](https://github.com/smogon/pokemon-showdown-client/blob/master/js/client.js). +It was written long ago, so instead of a single JS entry point, it includes a lot of JS files. Everything important is launched from [js/client.js](https://github.com/smogon/pokemon-showdown-client/blob/master/play.pokemonshowdown.com/js/client.js) Login server ------------ -The client’s login server, which handles logins and most database interaction, is written in PHP, with a rewrite to TypeScript in progress. The backend is split between a MySQL InnoDB database and a Percona database, with a migration to Postgres planned. +The client’s login server, which handles logins and most database interaction, is written in TypeScript. The backend is currently split between a MySQL InnoDB database (for users, ladder, and most other things) and a Postgres (technically Cockroach) database (for Replays). + +Its entry point is [server.ts](https://github.com/smogon/pokemon-showdown-loginserver/blob/master/src/server.ts). -Its entry point is [action.php](https://github.com/smogon/pokemon-showdown-client/blob/master/action.php). +It's intended to replace all of the old PHP code in the Client, but that migration is only halfway done at the moment. diff --git a/CODEOWNERS b/CODEOWNERS index 1ec4cc12a3a1..a309c8f878fd 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,10 +1,11 @@ config/formats.ts @KrisXV @Marty-D data/mods/*/random-teams.ts @AnnikaCodes -data/mods/ssb/ @HoeenCoder @KrisXV +data/mods/gen9ssb/ @HoeenCoder @HisuianZoroark @KrisXV data/random-sets.json @MathyFurret @ACakeWearingAHat @livid-washed @adrivrie data/random-teams.ts @AnnikaCodes @KrisXV @MathyFurret @ACakeWearingAHat @livid-washed @adrivrie data/text/ @Marty-D databases/ @monsanto +lib/sql.ts @mia-pi-git server/artemis/* @mia-pi-git server/chat-plugins/abuse-monitor.ts @mia-pi-git server/chat-plugins/friends.ts @mia-pi-git @@ -13,6 +14,7 @@ server/chat-plugins/hosts.ts @AnnikaCodes server/chat-plugins/helptickets*.ts @mia-pi-git server/chat-plugins/mafia.ts @HoeenCoder server/chat-plugins/othermetas.ts @KrisXV +server/chat-plugins/permalocks.ts @mia-pi-git server/chat-plugins/quotes.ts @mia-pi-git @KrisXV server/chat-plugins/random-battles.ts @KrisXV @AnnikaCodes server/chat-plugins/repeats.ts @AnnikaCodes @@ -20,8 +22,10 @@ server/chat-plugins/responder.ts @mia-pi-git server/chat-plugins/rock-paper-scissors.ts @mia-pi-git server/chat-plugins/sample-teams.ts @KrisXV server/chat-plugins/scavenger*.ts @xfix @sparkychildcharlie @PartMan7 +sever/chat-plugins/teams.ts @mia-pi-git server/chat-plugins/the-studio.ts @KrisXV -server/chat-plugins/trivia/ @AnnikaCodes +server/friends.ts @mia-pi-git +server/private-messages/* @mia-pi-git server/chat-plugins/username-prefixes.ts @AnnikaCodes server/chat-plugins/wifi.ts @KrisXV server/friends.ts @mia-pi-git diff --git a/COMMANDLINE.md b/COMMANDLINE.md index 58114e1410b8..ef9dcbe89dac 100644 --- a/COMMANDLINE.md +++ b/COMMANDLINE.md @@ -47,7 +47,7 @@ Note: Commands that ask for a team want the team in [packed team format](./sim/T - Simulates a battle, taking input to stdin and writing output to stdout Using Pokémon Showdown as a command-line simulator is documented at: - [sim/README.md](./README.md) + [sim/README.md](./sim/README.md) `./pokemon-showdown json-team` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f5e50d6d4551..7c6161b5af68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -128,14 +128,14 @@ BAD: ```ts // if ten seconds have passed and the user is staff -if (now > then + 10_000 && '&@%'.includes(user.tempGroup)) { +if (now > then + 10_000 && '~@%'.includes(user.tempGroup)) { ``` GOOD: ```ts const tenSecondsPassed = now > then + 10_000; -const userIsStaff = '&@%'.includes(user.tempGroup); +const userIsStaff = '~@%'.includes(user.tempGroup); if (tenSecondsPassed && userIsStaff) { ``` diff --git a/LICENSE b/LICENSE index 251ec2a03ddb..f1bc80d3702a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2011-2022 Guangcong Luo and other contributors http://pokemonshowdown.com/ +Copyright (c) 2011-2024 Guangcong Luo and other contributors http://pokemonshowdown.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/PROTOCOL.md b/PROTOCOL.md index 786dca933375..3695b1691324 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -40,7 +40,7 @@ Messages from the user to the server are in the form: `ROOMID` can optionally be left blank if unneeded (commands like `/join lobby` can be sent anywhere). Responses will be sent to a PM box with no username -(so `|/command` is equivalent to `|/pm &, /command`). +(so `|/command` is equivalent to `|/pm ~, /command`). `TEXT` can contain newlines, in which case it'll be treated the same way as if each line were sent to the room separately. diff --git a/README.md b/README.md index f5b779df87e1..5696798b1d2e 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Pokémon Showdown is many things: - [server/README.md](./server/README.md) -Pokémon Showdown simulates singles, doubles and triples battles in all the games out so far (Generations 1 through 8). +Pokémon Showdown simulates singles, doubles and triples battles in all the games out so far (Generations 1 through 9). Documentation quick links @@ -89,8 +89,10 @@ Staff - Andrew Werner [HoeenHero] - Development - Annika L. [Annika] - Development - Chris Monsanto [chaos] - Development, Sysadmin -- Leonard Craft III - Research (game mechanics) +- Kris Johnson [dhelmise] - Development +- Leonard Craft III [DaWoblefet] - Research (game mechanics) - Mathieu Dias-Martins [Marty-D] - Research (game mechanics), Development +- Mia A [Mia] - Development Contributors diff --git a/build b/build index f64804fb4b8b..47a058fd30d9 100755 --- a/build +++ b/build @@ -2,10 +2,10 @@ "use strict"; try { - // technically this was introduced in Node 11, but we'll ask for the most recent LTS with it to be safe - [].flatMap(x => x); + // technically this was introduced in Node 15, but we'll ask for the most recent LTS with it to be safe + Promise.any([null]); } catch (e) { - console.log("We require Node.js version 14 or later; you're using " + process.version); + console.log("We require Node.js version 16 or later; you're using " + process.version); process.exit(1); } @@ -30,11 +30,6 @@ try { console.log('Installing dependencies...'); shell('npm install'); } -// for some reason, esbuild won't be requirable until a tick has passed -// see https://stackoverflow.com/questions/53270058/node-cant-find-certain-modules-after-synchronous-install -setImmediate(() => { - require('./tools/build-utils').transpile(force, decl); -}); // Make sure config.js exists. If not, copy it over synchronously from // config-example.js, since it's needed before we can start the server @@ -49,3 +44,11 @@ try { fs.readFileSync('config/config-example.js') ); } + +// for some reason, esbuild won't be requirable until a tick has passed +// see https://stackoverflow.com/questions/53270058/node-cant-find-certain-modules-after-synchronous-install +setImmediate(() => { + // npm package, don't rebuild + if (process.argv[2] === 'postinstall' && fs.existsSync('dist')) return; + require('./tools/build-utils').transpile(force, decl); +}); diff --git a/config/CUSTOM-RULES.md b/config/CUSTOM-RULES.md index fec5d69c0e5e..4614c63caf65 100644 --- a/config/CUSTOM-RULES.md +++ b/config/CUSTOM-RULES.md @@ -7,7 +7,7 @@ Pokémon Showdown supports custom rules in three ways: - Tournaments, using the command `/tour rules RULES` (see the [Tournament command help][tour-help]) -- Custom formats on your side server, by editing `config/formats.js` +- Custom formats on your side server, by editing `config/formats.ts` [tour-help]: https://www.smogon.com/forums/threads/pok%C3%A9mon-showdown-forum-rules-resources-read-here-first.3570628/#post-6777489 diff --git a/config/config-example.js b/config/config-example.js index 19694844386f..1ff0c2a716ba 100644 --- a/config/config-example.js +++ b/config/config-example.js @@ -245,6 +245,7 @@ exports.reportjoinsperiod = 0; * report battles - shows messages like "OU battle started" in the lobby * This feature can lag larger servers - turn this off if your server is * getting more than 160 or so users. + * @type {boolean | string[] | string} */ exports.reportbattles = true; @@ -554,7 +555,7 @@ exports.chatlogreader = 'fs'; */ exports.grouplist = [ { - symbol: '&', + symbol: '~', id: "admin", name: "Administrator", inherit: '@', @@ -564,7 +565,7 @@ exports.grouplist = [ console: true, bypassall: true, lockdown: true, - promote: '&u', + promote: '~u', roomowner: true, roombot: true, roommod: true, @@ -650,7 +651,7 @@ exports.grouplist = [ timer: true, modlog: true, alts: '%u', - bypassblocks: 'u%@&~', + bypassblocks: 'u%@~', receiveauthmessages: true, gamemoderation: true, jeopardy: true, @@ -659,13 +660,6 @@ exports.grouplist = [ modchat: true, hiderank: true, }, - { - symbol: '\u00a7', - id: "sectionleader", - name: "Section Leader", - inherit: '+', - jurisdiction: 'u', - }, { // Bots are ranked below Driver/Mod so that Global Bots can be kept out // of modjoin % rooms (namely, Staff). diff --git a/config/formats.ts b/config/formats.ts index bec37330c2ca..43f11de32d25 100644 --- a/config/formats.ts +++ b/config/formats.ts @@ -17,7 +17,7 @@ New sections will be added to the bottom of the specified column. The column value will be ignored for repeat sections. */ -export const Formats: FormatList = [ +export const Formats: import('../sim/dex-formats').FormatList = [ // S/V Singles /////////////////////////////////////////////////////////////////// @@ -28,196 +28,128 @@ export const Formats: FormatList = [ { name: "[Gen 9] Random Battle", desc: `Randomized teams of Pokémon with sets that are generated to be competitively viable.`, - threads: [ - `• Random Battle Suggestions`, - ], - mod: 'gen9', team: 'random', - ruleset: ['PotD', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + ruleset: ['PotD', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], }, { name: "[Gen 9] Unrated Random Battle", - mod: 'gen9', team: 'random', challengeShow: false, rated: false, - ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], + }, + { + name: "[Gen 9] Free-For-All Random Battle", + mod: 'gen9', + team: 'random', + gameType: 'freeforall', + tournamentShow: false, + rated: false, + ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], }, { name: "[Gen 9] Random Battle (Blitz)", - mod: 'gen9', team: 'random', ruleset: ['[Gen 9] Random Battle', 'Blitz'], }, { - name: "[Gen 9] OU", - threads: [ - `• SV OU Metagame Discussion`, - `• SV OU Sample Teams`, - `• SV OU Viability Rankings`, + name: "[Gen 9] Multi Random Battle", + mod: 'gen9', + team: 'random', + gameType: 'multi', + searchShow: false, + tournamentShow: false, + rated: false, + ruleset: [ + 'Max Team Size = 3', + 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod', ], - + }, + { + name: "[Gen 9] OU", mod: 'gen9', - ruleset: ['Standard'], - banlist: ['Uber', 'AG', 'Arena Trap', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak', 'King\'s Rock', 'Baton Pass'], + ruleset: ['Standard', 'Sleep Moves Clause', '!Sleep Clause Mod'], + banlist: ['Uber', 'AG', 'Arena Trap', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail'], }, { name: "[Gen 9] Ubers", - threads: [ - `• Ubers Metagame Discussion`, - `• Ubers Viability Rankings`, - ], - mod: 'gen9', ruleset: ['Standard'], - banlist: ['AG', 'Moody', 'King\'s Rock', 'Baton Pass'], + banlist: ['AG', 'Moody', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects'], }, { name: "[Gen 9] UU", - threads: [ - `• UU Metagame Discussion`, - `• UU Viability Rankings`, - ], - mod: 'gen9', ruleset: ['[Gen 9] OU'], banlist: ['OU', 'UUBL'], }, { name: "[Gen 9] RU", - threads: [ - `• RU Metagame Discussion`, - `• RU Viability Rankings`, - ], - mod: 'gen9', ruleset: ['[Gen 9] UU'], banlist: ['UU', 'RUBL', 'Light Clay'], }, { name: "[Gen 9] NU", - threads: [ - `• NU Metagame Discussion`, - `• NU Viability Rankings`, - ], - mod: 'gen9', ruleset: ['[Gen 9] RU'], - banlist: ['RU', 'NUBL'], + banlist: ['RU', 'NUBL', 'Drought', 'Quick Claw'], }, { name: "[Gen 9] PU", - mod: 'gen9', ruleset: ['[Gen 9] NU'], - banlist: ['NU', 'PUBL'], + banlist: ['NU', 'PUBL', 'Damp Rock'], }, { name: "[Gen 9] LC", - threads: [ - `• Little Cup Metagame Discussion`, - `• Little Cup Sample Teams`, - `• Little Cup Viability Rankings`, - ], - mod: 'gen9', ruleset: ['Little Cup', 'Standard'], - banlist: ['Dunsparce', 'Flittle', 'Gastly', 'Girafarig', 'Meditite', 'Misdreavus', 'Murkrow', 'Rufflet', 'Scyther', 'Sneasel', 'Moody', 'Baton Pass'], + banlist: [ + 'Aipom', 'Basculin-White-Striped', 'Cutiefly', 'Diglett-Base', 'Dunsparce', 'Duraludon', 'Flittle', 'Gastly', 'Girafarig', 'Gligar', + 'Meditite', 'Misdreavus', 'Murkrow', 'Porygon', 'Qwilfish-Hisui', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Sneasel-Hisui', + 'Snivy', 'Stantler', 'Voltorb-Hisui', 'Vulpix', 'Vulpix-Alola', 'Yanma', 'Moody', 'Baton Pass', 'Sticky Web', + ], }, { name: "[Gen 9] Monotype", - threads: [ - `• Monotype Metagame Discussion`, - `• Monotype Sample Teams`, - `• Monotype Viability Rankings`, - ], - mod: 'gen9', ruleset: ['Standard', 'Evasion Abilities Clause', 'Same Type Clause', 'Terastal Clause'], - banlist: ['Annihilape', 'Chi-Yu', 'Houndstone', 'Iron Bundle', 'Koraidon', 'Miraidon', 'Palafin', 'Moody', 'Shadow Tag', 'Booster Energy', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Acupressure', 'Baton Pass'], - }, - { - name: "[Gen 9] 1v1", - desc: `Bring three Pokémon to Team Preview and choose one to battle.`, - threads: [ - `• 1v1 Metagame Discussion`, - `• 1v1 Viability Rankings`, - ], - - mod: 'gen9', - ruleset: [ - 'Picked Team Size = 1', 'Max Team Size = 3', - 'Standard', 'Terastal Clause', 'Sleep Moves Clause', 'Accuracy Moves Clause', '!Sleep Clause Mod', - ], banlist: [ - 'Chi-Yu', 'Cinderace', 'Dragonite', 'Flutter Mane', 'Gholdengo', 'Greninja', 'Koraidon', 'Mimikyu', 'Miraidon', 'Scream Tail', - 'Moody', 'Focus Band', 'Focus Sash', 'King\'s Rock', 'Quick Claw', 'Acupressure', 'Perish Song', - ], - }, - { - name: "[Gen 9] Anything Goes", - threads: [ - `• AG Metagame Discussion`, - `• AG Viability Rankings`, - ], - - mod: 'gen9', - ruleset: ['Min Source Gen = 9', 'Obtainable', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'], - }, - { - name: "[Gen 9] ZU", - threads: [ - `• ZU Metagame Discussion`, + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Blaziken', 'Deoxys-Normal', 'Deoxys-Attack', + 'Dialga', 'Dialga-Origin', 'Espathra', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Kingambit', 'Koraidon', + 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', + 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Shaymin-Sky', 'Solgaleo', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', + 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Shadow Tag', 'Booster Energy', 'Damp Rock', 'Focus Band', 'King\'s Rock', + 'Quick Claw', 'Razor Fang', 'Smooth Rock', 'Acupressure', 'Baton Pass', 'Last Respects', 'Shed Tail', ], - - mod: 'gen9', - ruleset: ['[Gen 9] PU'], - banlist: ['PU', 'Fraxure', 'Girafarig'], }, { name: "[Gen 9] CAP", - + desc: "The Create-A-Pokémon project is a community dedicated to exploring and understanding the competitive Pokémon metagame by designing, creating, and playtesting new Pokémon concepts.", mod: 'gen9', ruleset: ['[Gen 9] OU', '+CAP'], - banlist: ['Walking Wake', 'Crucibellite'], - }, - { - name: "[Gen 9] Free-For-All", - threads: [ - `• Free-For-All`, - ], - - mod: 'gen9', - gameType: 'freeforall', - rated: false, - tournamentShow: false, - ruleset: ['Standard', '!Evasion Items Clause'], - banlist: [ - 'Annihilape', 'Chi-Yu', 'Flutter Mane', 'Houndstone', 'Koraidon', 'Iron Bundle', 'Miraidon', 'Palafin', 'Moody', 'Shadow Tag', - 'Toxic Debris', 'Acupressure', 'Aromatic Mist', 'Baton Pass', 'Court Change', 'Final Gambit', 'Flatter', 'Follow Me', 'Heal Pulse', - 'Poison Fang', 'Rage Powder', 'Spicy Extract', 'Swagger', 'Toxic', 'Toxic Spikes', - ], + banlist: ['Crucibellite', 'Rage Fist'], }, { - name: "[Gen 9] Battle Stadium Singles Series 2", - + name: "[Gen 9] BSS Reg G", mod: 'gen9', - searchShow: false, - ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Paldea Pokedex', 'Min Source Gen = 9', 'VGC Timer'], - banlist: ['Sub-Legendary'], + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer', 'Limit One Restricted'], + restricted: ['Restricted Legendary'], }, { - name: "[Gen 9] Battle Stadium Singles Regulation C", - + name: "[Gen 9] BSS Reg H", mod: 'gen9', - ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Paldea Pokedex', 'Min Source Gen = 9', 'VGC Timer'], + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer'], + banlist: ['Sub-Legendary', 'Paradox', 'Gouging Fire', 'Iron Boulder', 'Iron Crown', 'Raging Bolt'], }, { name: "[Gen 9] Custom Game", - mod: 'gen9', searchShow: false, debug: true, @@ -232,33 +164,28 @@ export const Formats: FormatList = [ { section: "S/V Doubles", }, + { + name: "[Gen 9] Random Doubles Battle", + mod: 'gen9', + gameType: 'doubles', + team: 'random', + ruleset: ['PotD', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Illusion Level Mod', 'Sleep Clause Mod'], + }, { name: "[Gen 9] Doubles OU", - threads: [ - `• Doubles OU Sample Teams`, - ], - mod: 'gen9', gameType: 'doubles', - ruleset: ['Standard Doubles'], + ruleset: ['Standard Doubles', 'Evasion Abilities Clause'], banlist: ['DUber', 'Shadow Tag'], }, { name: "[Gen 9] Doubles Ubers", - threads: [ - `• Doubles Ubers`, - ], - mod: 'gen9', gameType: 'doubles', ruleset: ['Standard Doubles', '!Gravity Sleep Clause'], }, { name: "[Gen 9] Doubles UU", - threads: [ - `• Doubles UU`, - ], - mod: 'gen9', gameType: 'doubles', ruleset: ['[Gen 9] Doubles OU'], @@ -266,49 +193,47 @@ export const Formats: FormatList = [ }, { name: "[Gen 9] Doubles LC", - threads: [ - `• Doubles LC`, - ], - mod: 'gen9', gameType: 'doubles', + searchShow: false, ruleset: ['Standard Doubles', 'Little Cup', 'Sleep Clause Mod'], - banlist: ['Dunsparce', 'Murkrow', 'Scyther', 'Sneasel'], + banlist: ['Basculin-White-Striped', 'Dunsparce', 'Duraludon', 'Girafarig', 'Gligar', 'Murkrow', 'Qwilfish-Hisui', 'Scyther', 'Sneasel', 'Sneasel-Hisui', 'Vulpix', 'Vulpix-Alola', 'Yanma'], }, { - name: "[Gen 9] 2v2 Doubles", - desc: `Double battle where you bring four Pokémon to Team Preview and choose only two.`, - threads: [ - `• 2v2 Doubles`, - ], - + name: "[Gen 9] VGC 2023 Reg D", + mod: 'gen9predlc', + gameType: 'doubles', + searchShow: false, + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer', 'Open Team Sheets'], + banlist: ['Walking Wake', 'Iron Leaves'], + }, + { + name: "[Gen 9] VGC 2024 Reg H", mod: 'gen9', gameType: 'doubles', - ruleset: [ - 'Picked Team Size = 2', 'Max Team Size = 4', - 'Standard Doubles', 'Accuracy Moves Clause', 'Terastal Clause', 'Sleep Clause Mod', 'Evasion Items Clause', - ], - banlist: ['Koraidon', 'Miraidon', 'Commander', 'Focus Sash', 'King\'s Rock', 'Ally Switch', 'Final Gambit', 'Moody', 'Perish Song', 'Swagger'], + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer', 'Open Team Sheets'], + banlist: ['Sub-Legendary', 'Paradox', 'Gouging Fire', 'Iron Boulder', 'Iron Crown', 'Raging Bolt'], }, { - name: "[Gen 9] VGC 2023 Series 2", - + name: "[Gen 9] VGC 2025 Reg G", mod: 'gen9', - searchShow: false, gameType: 'doubles', - ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Paldea Pokedex', 'Min Source Gen = 9', 'VGC Timer', 'Open Team Sheets'], - banlist: ['Sub-Legendary'], + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer', 'Open Team Sheets', 'Limit One Restricted'], + restricted: ['Restricted Legendary'], }, { - name: "[Gen 9] VGC 2023 Regulation C", - + name: "[Gen 9] VGC 2025 Reg G (Bo3)", mod: 'gen9', gameType: 'doubles', - ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Paldea Pokedex', 'Min Source Gen = 9', 'VGC Timer', 'Open Team Sheets'], + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 9', 'VGC Timer', 'Force Open Team Sheets', 'Best of = 3', 'Limit One Restricted'], + restricted: ['Restricted Legendary'], }, { name: "[Gen 9] Doubles Custom Game", - mod: 'gen9', gameType: 'doubles', searchShow: false, @@ -318,118 +243,108 @@ export const Formats: FormatList = [ ruleset: ['Team Preview', 'Cancel Mod', 'Max Team Size = 24', 'Max Move Count = 24', 'Max Level = 9999', 'Default Level = 100'], }, - // National Dex + // S/V Doubles /////////////////////////////////////////////////////////////////// { - section: "National Dex", + section: "Unofficial Metagames", }, { - name: "[Gen 9] National Dex", - threads: [ - `• National Dex Metagame Discussion`, - ], - + name: "[Gen 9] 1v1", + desc: `Bring three Pokémon to Team Preview and choose one to battle.`, mod: 'gen9', - ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Sleep Clause Mod'], - banlist: ['ND Uber', 'ND AG', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Assist', 'Baton Pass'], + ruleset: [ + 'Picked Team Size = 1', 'Max Team Size = 3', + 'Standard', 'Terastal Clause', 'Sleep Moves Clause', 'Accuracy Moves Clause', '!Sleep Clause Mod', + ], + banlist: [ + 'Arceus', 'Archaludon', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Cinderace', 'Deoxys', 'Deoxys-Attack', 'Deoxys-Defense', 'Deoxys-Speed', 'Dialga', + 'Dialga-Origin', 'Dragonite', 'Eternatus', 'Flutter Mane', 'Gholdengo', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Jirachi', + 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Meloetta', 'Mew', 'Mewtwo', 'Mimikyu', 'Miraidon', 'Necrozma', + 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Cornerstone', 'Ogerpon-Hearthflame', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', + 'Scream Tail', 'Shaymin-Sky', 'Snorlax', 'Solgaleo', 'Terapagos', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', + 'Focus Band', 'Focus Sash', 'King\'s Rock', 'Razor Fang', 'Quick Claw', 'Acupressure', 'Perish Song', + ], }, { - name: "[Gen 9] National Dex Ubers", - threads: [ - `• National Dex Ubers Metagame Discussion`, - `• National Dex Ubers Sample Teams`, - `• National Dex Ubers Viability List`, - ], - + name: "[Gen 9] 2v2 Doubles", + desc: `Double battle where you bring four Pokémon to Team Preview and choose only two.`, mod: 'gen9', - ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Evasion Items Clause', 'Species Clause', 'Sleep Clause Mod', 'Mega Rayquaza Clause'], - banlist: ['ND AG', 'Assist', 'Baton Pass'], + gameType: 'doubles', + ruleset: [ + 'Picked Team Size = 2', 'Max Team Size = 4', + 'Standard Doubles', 'Accuracy Moves Clause', 'Terastal Clause', 'Sleep Clause Mod', 'Evasion Items Clause', + ], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', + 'Ho-Oh', 'Koraidon', 'Kyogre', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', + 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Urshifu', 'Urshifu-Rapid-Strike', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', + 'Zekrom', 'Commander', 'Moody', 'Focus Sash', 'King\'s Rock', 'Razor Fang', 'Ally Switch', 'Final Gambit', 'Perish Song', 'Swagger', + ], }, { - name: "[Gen 9] National Dex UU", - threads: [ - `• National Dex UU Metagame Discussion`, - ], - + name: "[Gen 9] Anything Goes", mod: 'gen9', - ruleset: ['[Gen 9] National Dex'], - banlist: ['ND OU', 'ND UUBL'], + ruleset: ['Min Source Gen = 9', 'Obtainable', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'], }, { - name: "[Gen 9] National Dex RU", - threads: [ - `• National Dex RU Metagame Discussion`, + name: "[Gen 9] Ubers UU", + mod: 'gen9', + ruleset: ['[Gen 9] Ubers'], + banlist: [ + // Ubers OU + 'Arceus-Normal', 'Arceus-Fairy', 'Arceus-Ground', 'Calyrex-Ice', 'Chien-Pao', 'Deoxys-Attack', 'Eternatus', 'Flutter Mane', 'Giratina-Origin', 'Glimmora', + 'Gliscor', 'Grimmsnarl', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Iron Treads', 'Kingambit', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Landorus-Therian', 'Lunala', + 'Miraidon', 'Necrozma-Dusk-Mane', 'Rayquaza', 'Ribombee', 'Skeledirge', 'Ting-Lu', 'Zacian-Crowned', + // Ubers UUBL + Lunala + 'Arceus-Dragon', 'Arceus-Fire', 'Arceus-Flying', 'Arceus-Ghost', 'Arceus-Steel', 'Arceus-Water', 'Necrozma-Dawn-Wings', 'Shaymin-Sky', 'Zekrom', ], - + }, + { + name: "[Gen 9] ZU", mod: 'gen9', - searchShow: false, - ruleset: ['[Gen 9] National Dex UU'], - banlist: ['ND UU', 'ND RUBL', 'Drizzle', 'Light Clay'], + ruleset: ['[Gen 9] PU'], + banlist: ['PU', 'ZUBL', 'Unburden'], }, { - name: "[Gen 9] National Dex Monotype", - threads: [ - `• National Dex Monotype Metagame Discussion`, - ], - + name: "[Gen 9] Free-For-All", mod: 'gen9', - ruleset: ['Standard NatDex', 'Same Type Clause', 'Terastal Clause', 'Species Clause', 'OHKO Clause', 'Evasion Clause', 'Sleep Clause Mod'], + gameType: 'freeforall', + rated: false, + tournamentShow: false, + ruleset: ['Standard', 'Sleep Moves Clause', '!Sleep Clause Mod', '!Evasion Items Clause'], banlist: [ - 'Annihilape', 'Arceus', 'Blastoise-Mega', 'Blaziken-Mega', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', - 'Deoxys-Base', 'Deoxys-Attack', 'Dialga', 'Dracovish', 'Dragapult', 'Eternatus', 'Flutter Mane', 'Genesect', 'Gengar-Mega', - 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Houndstone', 'Iron Bundle', 'Kangaskhan-Mega', 'Kartana', - 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mawile-Mega', - 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Miraidon', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palafin', - 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Urshifu-Base', 'Xerneas', 'Yveltal', - 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Zygarde-Complete', 'Moody', 'Shadow Tag', - 'Power Construct', 'Booster Energy', 'Damp Rock', 'Focus Band', 'Icy Rock', 'King\'s Rock', 'Leppa Berry', 'Quick Claw', 'Smooth Rock', - 'Terrain Extender', 'Acupressure', 'Baton Pass', + 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', + 'Dondozo', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Kyurem-White', + 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palkia', + 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Terapagos', 'Ursaluna', 'Ursaluna-Bloodmoon', 'Urshifu', 'Urshifu-Rapid-Strike', + 'Zacian', 'Zacian-Crowned', 'Zekrom', 'Moody', 'Shadow Tag', 'Toxic Chain', 'Toxic Debris', 'Acupressure', 'Aromatic Mist', 'Baton Pass', 'Coaching', + 'Court Change', 'Decorate', 'Dragon Cheer', 'Final Gambit', 'Flatter', 'Fling', 'Floral Healing', 'Follow Me', 'Heal Pulse', 'Heart Swap', 'Last Respects', + 'Malignant Chain', 'Poison Fang', 'Rage Powder', 'Skill Swap', 'Spicy Extract', 'Swagger', 'Toxic', 'Toxic Spikes', ], }, { - name: "[Gen 9] National Dex AG", - threads: [ - `• National Dex AG`, - ], - + name: "[Gen 9] LC UU", mod: 'gen9', searchShow: false, - ruleset: ['Standard NatDex'], + ruleset: ['[Gen 9] LC'], + banlist: [ + 'Diglett-Alola', 'Drilbur', 'Foongus', 'Glimmet', 'Gothita', 'Grookey', 'Growlithe-Hisui', 'Impidimp', 'Koffing', + 'Mareanie', 'Mienfoo', 'Mudbray', 'Pawniard', 'Shellder', 'Stunky', 'Tentacool', 'Timburr', 'Tinkatink', 'Toedscool', + 'Torchic', 'Trapinch', 'Vullaby', + ], }, { - name: "[Gen 9] National Dex BH", - desc: `Balanced Hackmons with National Dex elements mixed in.`, - threads: [ - `• National Dex BH`, - ], + name: "[Gen 9] NFE", + desc: `Only Pokémon that can evolve are allowed.`, mod: 'gen9', - ruleset: ['-Nonexistent', 'Standard NatDex', 'Forme Clause', 'Sleep Moves Clause', 'Ability Clause = 2', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'CFZ Clause', '!Obtainable'], + searchShow: false, + ruleset: ['Standard OMs', 'Not Fully Evolved', 'Sleep Moves Clause', 'Terastal Clause'], banlist: [ - 'Cramorant-Gorging', 'Calyrex-Shadow', 'Darmanitan-Galar-Zen', 'Eternatus-Eternamax', 'Groudon-Primal', 'Rayquaza-Mega', 'Shedinja', - 'Zygarde-Complete', 'Arena Trap', 'Contrary', 'Gorilla Tactics', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', 'Moody', - 'Neutralizing Gas', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard', 'Gengarite', 'Belly Drum', - 'Bolt Beak', 'Chatter', 'Double Iron Bash', 'Electrify', 'Last Respects', 'Octolock', 'Rage Fist', 'Revival Blessing', 'Shed Tail', - 'Shell Smash', 'Comatose + Sleep Talk', 'Imprison + Transform', + 'Basculin-White-Striped', 'Bisharp', 'Chansey', 'Combusken', 'Dipplin', 'Duraludon', 'Electabuzz', 'Gligar', 'Gurdurr', + 'Haunter', 'Magmar', 'Magneton', 'Porygon2', 'Primeape', 'Qwilfish-Hisui', 'Rhydon', 'Scyther', 'Sneasel', 'Sneasel-Hisui', + 'Ursaring', 'Vulpix-Base', 'Arena Trap', 'Magnet Pull', 'Shadow Tag', 'Baton Pass', ], - restricted: ['Arceus'], - onValidateTeam(team, format) { - // baseSpecies:count - const restrictedPokemonCount = new Map(); - for (const set of team) { - const species = this.dex.species.get(set.species); - if (!this.ruleTable.isRestrictedSpecies(species)) continue; - restrictedPokemonCount.set(species.baseSpecies, (restrictedPokemonCount.get(species.baseSpecies) || 0) + 1); - } - for (const [baseSpecies, count] of restrictedPokemonCount) { - if (count > 1) { - return [ - `You are limited to one ${baseSpecies} forme.`, - `(You have ${count} ${baseSpecies} forme${count === 1 ? '' : 's'}.)`, - ]; - } - } - }, }, // Pet Mods @@ -439,27 +354,39 @@ export const Formats: FormatList = [ section: "Pet Mods", }, { - name: "[Gen 8] JolteMons Random Battle", - desc: `Pokémon, items, abilities, and moves are redesigned for OU, and new items, abilities, and moves are added, all without changing base stats.`, - threads: [ - `• JolteMons`, - `• Spreadsheet`, + name: "[Gen 9] Little Colosseum LC", + desc: `A Little Cup metagame that aims to buff weaker Pokemon and nerf LC Ubers to create a more diverse metagame.`, + mod: 'littlecolosseum', + ruleset: ['Little Cup', 'Standard'], + banlist: [ + 'Aipom', 'Basculin-White-Striped', 'Diglett-Base', 'Dunsparce', 'Duraludon', 'Flittle', 'Girafarig', 'Gligar', + 'Meditite', 'Misdreavus', 'Murkrow', 'Porygon', 'Qwilfish-Hisui', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Sneasel-Hisui', + 'Snivy', 'Stantler', 'Vulpix', 'Vulpix-Alola', 'Yanma', 'Moody', 'Baton Pass', 'Sticky Web', ], - mod: 'gen8joltemons', - team: 'random', - ruleset: ['Dynamax Clause', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Mega Data Mod', 'Z-Move Clause'], + onBegin() { + this.add('-message', `Welcome to Little Colosseum!`); + this.add('-message', `This is a Generation 9 LC-based Pet Mod where multiple Pokemon have been reimagined in order to fit the LC metagame.`); + this.add('-message', `You can find our thread and metagame resources here:`); + this.add('-message', `https://www.smogon.com/forums/threads/3749020/`); + }, + onSwitchIn(pokemon) { + this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]'); + pokemon.apparentType = pokemon.getTypes(true).join('/'); + }, }, { - name: "[Gen 6] NEXT OU", - threads: [ - `• Gen-NEXT Development Thread`, - ], - - mod: 'gennext', - searchShow: false, - challengeShow: false, - ruleset: ['Obtainable', 'Standard NEXT', 'Team Preview'], - banlist: ['Uber'], + name: "[Gen 2] GSC Doubles", + desc: `A Gen 2 metagame that adds doubles to the game.`, + mod: 'gen2doubles', + gameType: 'doubles', + ruleset: ['Standard Doubles', 'Swagger Clause'], + banlist: ['Uber', 'Bright Powder', 'King\'s Rock', 'Quick Claw'], + onBegin() { + this.add('-message', `Welcome to GSC Doubles!`); + this.add('-message', `This is a Generation 2 Pet Mod that brings the Doubles game mode introduced in Generation 3 back in time to GSC.`); + this.add('-message', `You can find our metagame resources here:`); + this.add('-message', `https://www.smogon.com/forums/threads/3755811/`); + }, }, // Draft League @@ -470,96 +397,91 @@ export const Formats: FormatList = [ column: 1, }, { - name: "[Gen 9] Paldea Dex Draft", - + name: "[Gen 9] Draft", mod: 'gen9', searchShow: false, - ruleset: ['Draft', 'Min Source Gen = 9'], + teraPreviewDefault: true, + ruleset: ['Standard Draft', 'Min Source Gen = 9'], }, { name: "[Gen 9] 6v6 Doubles Draft", - mod: 'gen9', gameType: 'doubles', searchShow: false, - ruleset: ['Draft', '!Sleep Clause Mod', '!Evasion Moves Clause', 'Min Source Gen = 9'], + teraPreviewDefault: true, + ruleset: ['Standard Draft', '!Sleep Clause Mod', '!Evasion Clause', 'Min Source Gen = 9'], }, { name: "[Gen 9] 4v4 Doubles Draft", - mod: 'gen9', gameType: 'doubles', searchShow: false, - ruleset: ['Draft', 'Item Clause', '!Sleep Clause Mod', '!OHKO Clause', '!Evasion Moves Clause', 'Adjust Level = 50', 'Picked Team Size = 4', 'Min Source Gen = 9'], + bestOfDefault: true, + teraPreviewDefault: true, + ruleset: ['Standard Draft', 'Item Clause = 1', 'VGC Timer', '!Sleep Clause Mod', '!OHKO Clause', '!Evasion Clause', 'Adjust Level = 50', 'Picked Team Size = 4', 'Min Source Gen = 9'], }, { name: "[Gen 9] NatDex Draft", - mod: 'gen9', searchShow: false, - ruleset: ['Draft', '+Unobtainable', '+Past'], + teraPreviewDefault: true, + ruleset: ['Standard Draft', '+Unobtainable', '+Past'], }, { name: "[Gen 9] NatDex 6v6 Doubles Draft", - mod: 'gen9', gameType: 'doubles', searchShow: false, + teraPreviewDefault: true, ruleset: ['[Gen 9] 6v6 Doubles Draft', '+Unobtainable', '+Past', '!! Min Source Gen = 3'], }, - { - name: "[Gen 9] NatDex 4v4 Doubles Draft", - - mod: 'gen9', - gameType: 'doubles', - searchShow: false, - ruleset: ['[Gen 9] 4v4 Doubles Draft', '+Unobtainable', '+Past', '!! Min Source Gen = 3'], - }, { name: "[Gen 9] NatDex LC Draft", - mod: 'gen9', searchShow: false, - ruleset: ['[Gen 9] NatDex Draft', 'Double Item Clause', 'Little Cup'], + teraPreviewDefault: true, + ruleset: ['[Gen 9] NatDex Draft', 'Item Clause = 2', 'Little Cup'], banlist: ['Dragon Rage', 'Sonic Boom'], }, { name: "[Gen 8] Galar Dex Draft", - mod: 'gen8', searchShow: false, - ruleset: ['Draft'], + ruleset: ['Standard Draft', 'Dynamax Clause'], }, { name: "[Gen 8] NatDex Draft", - mod: 'gen8', searchShow: false, - ruleset: ['Draft', '+Past'], + ruleset: ['Standard Draft', 'Dynamax Clause', '+Past'], }, { name: "[Gen 8] NatDex 4v4 Doubles Draft", - mod: 'gen8', gameType: 'doubles', searchShow: false, - ruleset: ['Draft', 'Item Clause', '!Sleep Clause Mod', '!OHKO Clause', '!Evasion Moves Clause', 'Adjust Level = 50', 'Picked Team Size = 4', '+Past'], + ruleset: ['Standard Draft', 'Item Clause = 1', '!Sleep Clause Mod', '!OHKO Clause', '!Evasion Moves Clause', 'Adjust Level = 50', 'Picked Team Size = 4', '+Past'], }, { name: "[Gen 7] Draft", - mod: 'gen7', searchShow: false, - ruleset: ['Draft', '+LGPE'], + ruleset: ['Standard Draft', '+LGPE'], }, { name: "[Gen 6] Draft", - mod: 'gen6', searchShow: false, - ruleset: ['Draft', 'Moody Clause', 'Swagger Clause'], + ruleset: ['Standard Draft', 'Moody Clause', 'Swagger Clause'], banlist: ['Soul Dew'], }, + { + name: "[Gen 3] Draft", + mod: 'gen3', + searchShow: false, + ruleset: ['Standard Draft', 'Swagger Clause', 'DryPass Clause', '!Team Preview'], + banlist: ['King\'s Rock', 'Quick Claw', 'Assist'], + }, // OM of the Month /////////////////////////////////////////////////////////////////// @@ -569,283 +491,48 @@ export const Formats: FormatList = [ column: 2, }, { - name: "[Gen 9] Pokebilities", - desc: `Pokémon have all of their released abilities simultaneously.`, - threads: [ - `• Pokébilities`, - ], - mod: 'pokebilities', - // searchShow: false, - ruleset: ['Standard OMs', 'Sleep Clause Mod', 'Min Source Gen = 9'], - banlist: ['Chi-Yu', 'Espathra', 'Flutter Mane', 'Houndstone', 'Iron Bundle', 'Koraidon', 'Miraidon', 'Palafin', 'Arena Trap', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Baton Pass'], - onValidateSet(set) { - const species = this.dex.species.get(set.species); - const unSeenAbilities = Object.keys(species.abilities) - .filter(key => key !== 'S' && (key !== 'H' || !species.unreleasedHidden)) - .map(key => species.abilities[key as "0" | "1" | "H" | "S"]) - .filter(ability => ability !== set.ability); - if (unSeenAbilities.length && this.toID(set.ability) !== this.toID(species.abilities['S'])) { - for (const abilityName of unSeenAbilities) { - const banReason = this.ruleTable.check('ability:' + this.toID(abilityName)); - if (banReason) { - return [`${set.name}'s ability ${abilityName} is ${banReason}.`]; - } - } - } - }, - onBegin() { - for (const pokemon of this.getAllPokemon()) { - if (pokemon.ability === this.toID(pokemon.species.abilities['S'])) { - continue; - } - pokemon.m.innates = Object.keys(pokemon.species.abilities) - .filter(key => key !== 'S' && (key !== 'H' || !pokemon.species.unreleasedHidden)) - .map(key => this.toID(pokemon.species.abilities[key as "0" | "1" | "H" | "S"])) - .filter(ability => ability !== pokemon.ability); - } - }, - onBeforeSwitchIn(pokemon) { - // Abilities that must be applied before both sides trigger onSwitchIn to correctly - // handle switch-in ability-to-ability interactions, e.g. Intimidate counters - const neededBeforeSwitchInIDs = [ - 'clearbody', 'competitive', 'contrary', 'defiant', 'fullmetalbody', 'hypercutter', 'innerfocus', - 'mirrorarmor', 'oblivious', 'owntempo', 'rattled', 'scrappy', 'simple', 'whitesmoke', - ]; - if (pokemon.m.innates) { - for (const innate of pokemon.m.innates) { - if (!neededBeforeSwitchInIDs.includes(innate)) continue; - if (pokemon.hasAbility(innate)) continue; - pokemon.addVolatile("ability:" + innate, pokemon); - } - } - }, - onSwitchInPriority: 2, - onSwitchIn(pokemon) { - if (pokemon.m.innates) { - for (const innate of pokemon.m.innates) { - if (pokemon.hasAbility(innate)) continue; - pokemon.addVolatile("ability:" + innate, pokemon); - } - } - }, - onSwitchOut(pokemon) { - for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) { - pokemon.removeVolatile(innate); - } - }, - onFaint(pokemon) { - for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) { - const innateEffect = this.dex.conditions.get(innate) as Effect; - this.singleEvent('End', innateEffect, null, pokemon); - } - }, - onAfterMega(pokemon) { - for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) { - pokemon.removeVolatile(innate); - } - pokemon.m.innates = undefined; - }, - }, - { - name: "[Gen 9] Cross Evolution", - desc: `Give a Pokémon a Pokémon name of the next evolution stage as a nickname to inherit stat changes, typing, abilities, and moves from the next stage Pokémon.`, - threads: [ - `• Cross Evolution`, - ], - - mod: 'gen9', - // searchShow: false, - ruleset: ['Standard OMs', 'Ability Clause = 2', 'Sleep Moves Clause', 'Min Source Gen = 9'], - banlist: ['Girafarig', 'Miraidon', 'Scyther', 'Sneasel', 'Ursaring', 'Arena Trap', 'Huge Power', 'Ice Scales', 'Pure Power', 'Shadow Tag', 'Speed Boost', 'Moody', 'King\'s Rock', 'Baton Pass', 'Revival Blessing'], - restricted: ['Gallade', 'Gholdengo'], - onValidateTeam(team) { - const names = new Set(); - for (const set of team) { - const name = set.name; - if (names.has(this.dex.toID(name))) { - return [ - `Your Pok\u00e9mon must have different nicknames.`, - `(You have more than one Pok\u00e9mon named '${name}')`, - ]; - } - names.add(this.dex.toID(name)); - } - if (!names.size) { - return [ - `${this.format.name} works using nicknames; your team has 0 nicknamed Pok\u00e9mon.`, - `(If this was intentional, add a nickname to one Pok\u00e9mon that isn't the name of a Pok\u00e9mon species.)`, - ]; - } - }, - checkCanLearn(move, species, lsetData, set) { - // @ts-ignore - if (!set.sp?.exists || !set.crossSpecies?.exists) { - return this.checkCanLearn(move, species, lsetData, set); - } - // @ts-ignore - const problem = this.checkCanLearn(move, set.sp); - if (!problem) return null; - // @ts-ignore - if (this.checkCanLearn(move, set.crossSpecies)) return problem; - return null; - }, - validateSet(set, teamHas) { - const crossSpecies = this.dex.species.get(set.name); - let problems = this.dex.formats.get('Obtainable Misc').onChangeSet?.call(this, set, this.format) || null; - if (Array.isArray(problems) && problems.length) return problems; - const crossNonstandard = (!this.ruleTable.has('standardnatdex') && crossSpecies.isNonstandard === 'Past') || - crossSpecies.isNonstandard === 'Future'; - const crossIsCap = !this.ruleTable.has('+pokemontag:cap') && crossSpecies.isNonstandard === 'CAP'; - if (!crossSpecies.exists || crossNonstandard || crossIsCap) return this.validateSet(set, teamHas); - const species = this.dex.species.get(set.species); - const check = this.checkSpecies(set, species, species, {}); - if (check) return [check]; - const nonstandard = !this.ruleTable.has('standardnatdex') && species.isNonstandard === 'Past'; - const isCap = !this.ruleTable.has('+pokemontag:cap') && species.isNonstandard === 'CAP'; - if (!species.exists || nonstandard || isCap || species === crossSpecies) return this.validateSet(set, teamHas); - if (!species.nfe) return [`${species.name} cannot cross evolve because it doesn't evolve.`]; - const crossIsUnreleased = (crossSpecies.tier === "Unreleased" && crossSpecies.isNonstandard === "Unobtainable" && - !this.ruleTable.has('+unobtainable')); - if (crossSpecies.battleOnly || crossIsUnreleased || !crossSpecies.prevo) { - return [`${species.name} cannot cross evolve into ${crossSpecies.name} because it isn't an evolution.`]; - } - if (this.ruleTable.isRestrictedSpecies(crossSpecies)) { - return [`${species.name} cannot cross evolve into ${crossSpecies.name} because it is banned.`]; - } - const crossPrevoSpecies = this.dex.species.get(crossSpecies.prevo); - if (!crossPrevoSpecies.prevo !== !species.prevo) { - return [ - `${species.name} cannot cross evolve into ${crossSpecies.name} because they are not consecutive evolution stages.`, - ]; - } - const item = this.dex.items.get(set.item); - if (item.itemUser?.length) { - if (!item.itemUser.includes(crossSpecies.name) || crossSpecies.name !== species.name) { - return [`${species.name} cannot use ${item.name} because it is cross evolved into ${crossSpecies.name}.`]; - } - } - const ability = this.dex.abilities.get(set.ability); - if (!this.ruleTable.isRestricted(`ability:${ability.id}`) || Object.values(species.abilities).includes(ability.name)) { - set.species = crossSpecies.name; - } - - // @ts-ignore - set.sp = species; - // @ts-ignore - set.crossSpecies = crossSpecies; - problems = this.validateSet(set, teamHas); - set.name = crossSpecies.name; - set.species = species.name; - return problems; - }, - onModifySpecies(species, target, source, effect) { - if (!target) return; // chat - if (effect && ['imposter', 'transform'].includes(effect.id)) return; - if (target.set.name === target.set.species) return; - const crossSpecies = this.dex.species.get(target.set.name); - if (!crossSpecies.exists) return; - if (species.battleOnly || !species.nfe) return; - const crossIsUnreleased = (crossSpecies.tier === "Unreleased" && crossSpecies.isNonstandard === "Unobtainable" && - !this.ruleTable.has('+unobtainable')); - if (crossSpecies.battleOnly || crossIsUnreleased || !crossSpecies.prevo) return; - const crossPrevoSpecies = this.dex.species.get(crossSpecies.prevo); - if (!crossPrevoSpecies.prevo !== !species.prevo) return; - - const mixedSpecies = this.dex.deepClone(species); - mixedSpecies.weightkg = - Math.max(0.1, +(species.weightkg + crossSpecies.weightkg - crossPrevoSpecies.weightkg)).toFixed(1); - mixedSpecies.nfe = false; - mixedSpecies.evos = []; - mixedSpecies.eggGroups = crossSpecies.eggGroups; - mixedSpecies.abilities = crossSpecies.abilities; - mixedSpecies.bst = 0; - let i: StatID; - for (i in species.baseStats) { - const statChange = crossSpecies.baseStats[i] - crossPrevoSpecies.baseStats[i]; - mixedSpecies.baseStats[i] = this.clampIntRange(species.baseStats[i] + statChange, 1, 255); - mixedSpecies.bst += mixedSpecies.baseStats[i]; - } - if (crossSpecies.types[0] !== crossPrevoSpecies.types[0]) mixedSpecies.types[0] = crossSpecies.types[0]; - if (crossSpecies.types[1] !== crossPrevoSpecies.types[1]) { - mixedSpecies.types[1] = crossSpecies.types[1] || crossSpecies.types[0]; - } - if (mixedSpecies.types[0] === mixedSpecies.types[1]) mixedSpecies.types = [mixedSpecies.types[0]]; - - return mixedSpecies; - }, - onBegin() { - for (const pokemon of this.getAllPokemon()) { - pokemon.baseSpecies = pokemon.species; - } - }, - }, - - // Other Metagames - /////////////////////////////////////////////////////////////////// - - { - section: "Other Metagames", - column: 2, - }, - { - name: "[Gen 9] Almost Any Ability", - desc: `Pokémon have access to almost any ability.`, - threads: [ - `• Almost Any Ability`, - `• AAA Resources`, - ], - - mod: 'gen9', - ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'Sleep Moves Clause', 'Terastal Clause', 'Min Source Gen = 9'], - banlist: [ - 'Annihilape', 'Baxcalibur', 'Dragapult', 'Dragonite', 'Flutter Mane', 'Great Tusk', 'Gholdengo', 'Houndstone', 'Iron Bundle', - 'Iron Hands', 'Iron Valiant', 'Koraidon', 'Miraidon', 'Noivern', 'Slaking', 'Walking Wake', 'Arena Trap', 'Comatose', 'Contrary', - 'Fur Coat', 'Good as Gold', 'Gorilla Tactics', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out', 'Magic Bounce', - 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Orichalcum Pulse', 'Parental Bond', 'Poison Heal', 'Pure Power', 'Shadow Tag', 'Simple', - 'Speed Boost', 'Stakeout', 'Unburden', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Baton Pass', 'Revival Blessing', 'Shed Tail', + name: "[Gen 9] Twisted Dimension", + desc: `Trick Room is always active. Using Trick Room reverts the playing field to normal for 5 turns.`, + mod: 'gen9', + ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Terastal Clause', 'Twisted Dimension Mod', 'Adjust Level = 100'], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Conkeldurr', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Ho-Oh', 'Glastrier', 'Groudon', 'Koraidon', 'Kyogre', 'Kyurem-Black', + 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Palkia', 'Palkia-Origin', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Rayquaza', 'Reshiram', + 'Torkoal', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'Iron Ball', 'King\'s Rock', 'Power Anklet', 'Power Band', 'Power Belt', 'Power Bracer', 'Power Lens', + 'Power Weight', 'Razor Fang', 'Baton Pass', 'Final Gambit', 'Last Respects', 'Shed Tail', ], }, { - name: "[Gen 9] Balanced Hackmons", - desc: `Anything directly hackable onto a set (EVs, IVs, forme, ability, item, and move) and is usable in local battles is allowed.`, - threads: [ - `• Balanced Hackmons`, - `• BH Resources`, - ], - - mod: 'gen9', - ruleset: ['-Nonexistent', 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', 'Endless Battle Clause'], + name: "[Gen 9] Mix and Mega Doubles", + desc: `Mega evolve any Pokémon with any mega stone, or transform them with Primal orbs, Origin orbs, and Rusted items with no limit. Mega and Primal boosts based on form changes from gen 7. Also Doubles.`, + mod: 'mixandmega', + gameType: 'doubles', + ruleset: ['Standard OMs', 'Gravity Sleep Clause', 'Terastal Clause'], banlist: [ - 'Calyrex-Shadow', 'Zacian-Crowned', 'Arena Trap', 'Contrary', 'Gorilla Tactics', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', - 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Poison Heal', 'Pure Power', 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard', - 'Comatose + Sleep Talk', 'Belly Drum', 'Last Respects', 'Quiver Dance', 'Rage Fist', 'Revival Blessing', 'Shed Tail', 'Shell Smash', + 'Calyrex-Shadow', 'Miraidon', 'Moody', 'Shadow Tag', 'Banettite', 'Beedrillite', 'Blazikenite', 'Blue Orb', 'Gengarite', + 'Kangaskhanite', 'Mawilite', 'Medichamite', 'Pidgeotite', 'Red Orb', ], - }, - { - name: "[Gen 9] Mix and Mega", - desc: `Mega evolve any Pokémon with any mega stone, or transform them with Primal orbs, Origin orbs, and Rusted items with no limit. Mega and Primal boosts based on form changes from gen 7.`, - threads: [ - `• Mix and Mega`, - `• Mix and Mega Resources`, + restricted: [ + 'Arceus', 'Calyrex-Ice', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dondozo', 'Eternatus', 'Flutter Mane', 'Giratina', 'Groudon', 'Ho-Oh', 'Koraidon', + 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Rayquaza', + 'Regigigas', 'Reshiram', 'Slaking', 'Solgaleo', 'Ursaluna-Bloodmoon', 'Urshifu-Rapid-Strike', 'Zacian', 'Zamazenta', 'Zekrom', ], - - mod: 'mixandmega', - ruleset: ['Standard OMs', 'Evasion Items Clause', 'Evasion Abilities Clause', 'Sleep Moves Clause', 'Terastal Clause', 'Min Source Gen = 9'], - banlist: ['Koraidon', 'Miraidon', 'Beedrillite', 'Blazikenite', 'Gengarite', 'Kangaskhanite', 'Mawilite', 'Medichamite', 'Moody', 'Rusted Sword', 'Shadow Tag', 'Baton Pass', 'Shed Tail'], - restricted: ['Dragapult', 'Flutter Mane', 'Gengar', 'Iron Bundle', 'Kilowattrel', 'Sandy Shocks', 'Slaking'], onValidateTeam(team) { const itemTable = new Set(); for (const set of team) { const item = this.dex.items.get(set.item); - if (!item.megaStone && !item.onPrimal && - !item.forcedForme?.endsWith('Origin') && !item.name.startsWith('Rusted')) continue; + if (!item.megaStone && !item.onPrimal && !item.forcedForme?.endsWith('Origin') && + !item.name.startsWith('Rusted') && !item.name.endsWith('Mask')) continue; const natdex = this.ruleTable.has('standardnatdex'); if (natdex && item.id !== 'ultranecroziumz') continue; const species = this.dex.species.get(set.species); if (species.isNonstandard && !this.ruleTable.has(`+pokemontag:${this.toID(species.isNonstandard)}`)) { return [`${species.baseSpecies} does not exist in gen 9.`]; } - if ((item.itemUser?.includes(species.name) && !item.megaStone && !item.onPrimal) || + const canUseNativeItem = !item.megaStone && !item.onPrimal && + item.itemUser && (item.itemUser.includes(species.name) || + (species.otherFormes && item.itemUser.includes(species.otherFormes[0]))); + if (canUseNativeItem || (natdex && species.name.startsWith('Necrozma-') && item.id === 'ultranecroziumz')) { continue; } @@ -854,7 +541,7 @@ export const Formats: FormatList = [ } if (itemTable.has(item.id)) { return [ - `You are limited to one of each mega stone/orb/rusted item/sinnoh item.`, + `You are limited to one of each mega stone/orb/rusted item/sinnoh item/mask.`, `(You have more than one ${item.name})`, ]; } @@ -867,11 +554,10 @@ export const Formats: FormatList = [ } }, onSwitchIn(pokemon) { - // @ts-ignore - const originalFormeSecies = this.dex.species.get(pokemon.species.originalSpecies); - if (originalFormeSecies.exists && pokemon.m.originalSpecies !== originalFormeSecies.baseSpecies) { + const originalFormeSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); + if (originalFormeSpecies.exists && pokemon.m.originalSpecies !== originalFormeSpecies.baseSpecies) { // Place volatiles on the Pokémon to show its mega-evolved condition and details - this.add('-start', pokemon, originalFormeSecies.requiredItem || originalFormeSecies.requiredMove, '[silent]'); + this.add('-start', pokemon, originalFormeSpecies.requiredItem || originalFormeSpecies.requiredMove, '[silent]'); const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); if (oSpecies.types.length !== pokemon.species.types.length || oSpecies.types[1] !== pokemon.species.types[1]) { this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); @@ -879,8 +565,7 @@ export const Formats: FormatList = [ } }, onSwitchOut(pokemon) { - // @ts-ignore - const oMegaSpecies = this.dex.species.get(pokemon.species.originalSpecies); + const oMegaSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); if (oMegaSpecies.exists && pokemon.m.originalSpecies !== oMegaSpecies.baseSpecies) { this.add('-end', pokemon, oMegaSpecies.requiredItem || oMegaSpecies.requiredMove, '[silent]'); } @@ -888,262 +573,91 @@ export const Formats: FormatList = [ }, { name: "[Gen 9] Godly Gift", - desc: `Each Pokémon receives one base stat from a God (AG/Uber Pokémon) depending on its position in the team. If there is no Uber Pokémon, it uses the Pokémon in the first slot.`, - threads: [ - `• Godly Gift`, - `• Godly Gift Resources`, - ], - + desc: `Each Pokémon receives one base stat from a God (Restricted Pokémon) depending on its position in the team. If there is no restricted Pokémon, it uses the Pokémon in the first slot.`, mod: 'gen9', - ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Godly Gift Mod', 'Min Source Gen = 9'], + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Godly Gift Mod'], banlist: [ - 'Blissey', 'Chansey', 'Great Tusk', 'Iron Hands', 'Iron Valiant', 'Kingambit', 'Orthworm', 'Walking Wake', - 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', 'Swift Swim', 'Booster Energy', 'Baton Pass', + 'Blissey', 'Calyrex-Shadow', 'Chansey', 'Deoxys-Attack', 'Koraidon', 'Kyurem-Black', 'Miraidon', 'Arena Trap', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', + 'Swift Swim', 'Bright Powder', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', ], - }, - { - name: "[Gen 9] STABmons", - desc: `Pokémon can use any move of their typing, in addition to the moves they can normally learn.`, - threads: [ - `• STABmons`, - `• STABmons Resources`, + restricted: [ + 'Alomomola', 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Chien-Pao', 'Chi-Yu', 'Crawdaunt', 'Deoxys-Normal', 'Deoxys-Speed', 'Dialga', 'Dialga-Origin', 'Dragapult', + 'Espathra', 'Eternatus', 'Flutter Mane', 'Gholdengo', 'Giratina', 'Giratina-Origin', 'Gliscor', 'Gouging Fire', 'Groudon', 'Hawlucha', 'Ho-Oh', 'Iron Bundle', 'Kingambit', + 'Kyogre', 'Kyurem', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', + 'Raging Bolt', 'Rayquaza', 'Regieleki', 'Reshiram', 'Serperior', 'Shaymin-Sky', 'Smeargle', 'Solgaleo', 'Spectrier', 'Terapagos', 'Toxapex', 'Ursaluna', 'Ursaluna-Bloodmoon', + 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', ], + }, + + // Other Metagames + /////////////////////////////////////////////////////////////////// + { + section: "Other Metagames", + column: 2, + }, + { + name: "[Gen 9] Almost Any Ability", + desc: `Pokémon have access to almost any ability.`, mod: 'gen9', - ruleset: ['Standard OMs', 'STABmons Move Legality', 'Sleep Moves Clause', 'Min Source Gen = 9'], + ruleset: ['Standard OMs', '!Obtainable Abilities', 'Ability Clause = 1', 'Sleep Moves Clause', 'Terastal Clause'], banlist: [ - 'Chi-Yu', 'Chien-Pao', 'Cloyster', 'Dragapult', 'Dragonite', 'Flutter Mane', 'Garchomp', 'Iron Bundle', 'Komala', 'Koraidon', - 'Miraidon', 'Walking Wake', 'Zoroark-Hisui', 'Arena Trap', 'Moody', 'Shadow Tag', 'Booster Energy', 'King\'s Rock', 'Baton Pass', - ], - restricted: [ - 'Acupressure', 'Astral Barrage', 'Belly Drum', 'Dire Claw', 'Extreme Speed', 'Fillet Away', 'Last Respects', 'No Retreat', - 'Revival Blessing', 'Shed Tail', 'Shell Smash', 'Shift Gear', 'V-create', 'Victory Dance', 'Wicked Blow', + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Dragonite', + 'Enamorus-Incarnate', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Iron Bundle', 'Iron Valiant', 'Keldeo', + 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', + 'Palkia', 'Palkia-Origin', 'Raging Bolt', 'Rayquaza', 'Regigigas', 'Reshiram', 'Shaymin-Sky', 'Slaking', 'Sneasler', 'Solgaleo', 'Spectrier', 'Urshifu', 'Urshifu-Rapid-Strike', + 'Volcarona', 'Walking Wake', 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zekrom', 'Arena Trap', 'Comatose', 'Contrary', 'Fur Coat', 'Good as Gold', 'Gorilla Tactics', 'Huge Power', + 'Ice Scales', 'Illusion', 'Imposter', 'Innards Out', 'Magic Bounce', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Orichalcum Pulse', 'Parental Bond', 'Poison Heal', 'Pure Power', + 'Shadow Tag', 'Simple', 'Speed Boost', 'Stakeout', 'Toxic Debris', 'Triage', 'Unburden', 'Water Bubble', 'Wonder Guard', 'King\'s Rock', 'Razor Fang', 'Baton Pass', + 'Last Respects', 'Shed Tail', ], }, { - name: "[Gen 9] NFE", - desc: `Only Pokémon that can evolve are allowed.`, - threads: [ - `• NFE`, - `• NFE Resources`, - ], - + name: "[Gen 9] Balanced Hackmons", + desc: `Anything directly hackable onto a set (EVs, IVs, forme, ability, item, and move) and is usable in local battles is allowed.`, mod: 'gen9', - ruleset: ['Standard OMs', 'Not Fully Evolved', 'Sleep Moves Clause', 'Terastal Clause', 'Min Source Gen = 9'], + ruleset: [ + 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Moves Clause', + 'Endless Battle Clause', 'Hackmons Forme Legality', 'Species Reveal Clause', 'Terastal Clause', + ], banlist: [ - 'Bisharp', 'Chansey', 'Haunter', 'Magneton', 'Primeape', 'Scyther', 'Arena Trap', 'Shadow Tag', 'Baton Pass', - // Shouldn't be legal - 'Stantler', 'Ursaring', + 'Calyrex-Shadow', 'Deoxys-Attack', 'Diancie-Mega', 'Gengar-Mega', 'Groudon-Primal', 'Kartana', 'Mewtwo-Mega-X', 'Mewtwo-Mega-Y', 'Rayquaza-Mega', + 'Regigigas', 'Shedinja', 'Slaking', 'Arena Trap', 'Comatose', 'Contrary', 'Gorilla Tactics', 'Hadron Engine', 'Huge Power', 'Illusion', 'Innards Out', + 'Libero', 'Liquid Ooze', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Orichalcum Pulse', 'Parental Bond', 'Poison Heal', 'Protean', 'Pure Power', + 'Shadow Tag', 'Stakeout', 'Water Bubble', 'Wonder Guard', 'Baton Pass', 'Belly Drum', 'Ceaseless Edge', 'Clangorous Soul', 'Dire Claw', 'Electro Shot', + 'Fillet Away', 'Imprison', 'Last Respects', 'Lumina Crash', 'No Retreat', 'Photon Geyser', 'Quiver Dance', 'Rage Fist', 'Revival Blessing', 'Shed Tail', + 'Substitute', 'Shell Smash', 'Tail Glow', ], }, - - // Challengeable OMs - /////////////////////////////////////////////////////////////////// - - { - section: "Challengeable OMs", - column: 2, - }, { - name: "[Gen 9] Fortemons", - desc: `Put an attacking move in the item slot to have all of a Pokémon's attacks inherit its properties.`, - threads: [ - `• Fortemons`, - ], - + name: "[Gen 9] Inheritance", + desc: `Pokémon may use the ability and moves of another, as long as they forfeit their own learnset.`, mod: 'gen9', - searchShow: false, - ruleset: ['Standard OMs', 'Sleep Clause Mod', 'Min Source Gen = 9'], + ruleset: ['Standard OMs', 'Ability Clause = 1', 'Sleep Moves Clause', 'Terastal Clause'], banlist: [ - 'Annihilape', 'Azumarill', 'Chi-Yu', 'Chien-Pao', 'Cloyster', 'Dragonite', 'Espathra', 'Flutter Mane', 'Great Tusk', - 'Houndstone', 'Iron Bundle', 'Koraidon', 'Miraidon', 'Palafin', 'Arena Trap', 'Moody', 'Serene Grace', 'Shadow Tag', - 'Covert Cloak', 'Beat Up', 'Baton Pass', + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chien-Pao', 'Cresselia', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Dondozo', 'Dragapult', 'Eternatus', + 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Hoopa-Unbound', 'Ho-Oh', 'Iron Bundle', 'Iron Valiant', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', + 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Palkia-Origin', 'Pecharunt', 'Rayquaza', + 'Regieleki', 'Regigigas', 'Reshiram', 'Roaring Moon', 'Sableye', 'Scream Tail', 'Shaymin-Sky', 'Slaking', 'Smeargle', 'Solgaleo', 'Spectrier', 'Urshifu-Single-Strike', + 'Ursaluna-Base', 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Drizzle', 'Drought', 'Good as Gold', 'Huge Power', + 'Imposter', 'Magic Bounce', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Poison Heal', 'Pure Power', 'Shadow Tag', 'Sheer Force', 'Speed Boost', 'Stakeout', 'Water Bubble', + 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Ceaseless Edge', 'Fillet Away', 'Last Respects', 'Quiver Dance', 'Rage Fist', 'Shed Tail', 'Shell Smash', ], - restricted: ['Dynamic Punch', 'Flail', 'Fury Cutter', 'Grass Knot', 'Heavy Slam', 'Inferno', 'Low Kick', 'Nuzzle', 'Power Trip', 'Reversal', 'Spit Up', 'Stored Power', 'Zap Cannon'], - validateSet(set, teamHas) { - const item = set.item; - const species = this.dex.species.get(set.species); - const move = this.dex.moves.get(item); - if (!move.exists || move.id === 'metronome' || move.category === 'Status') { - return this.validateSet(set, teamHas); - } - set.item = ''; - const problems = this.validateSet(set, teamHas) || []; - set.item = item; - if (this.checkCanLearn(move, species, this.allSources(species), set)) { - problems.push(`${species.name} can't learn ${move.name}.`); - } - if (set.moves.map(this.toID).includes(move.id)) { - problems.push(`Moves in the item slot can't be in the moveslots as well.`); - } - const accuracyLoweringMove = - move.secondaries?.some(secondary => secondary.boosts?.accuracy && secondary.boosts?.accuracy < 0); - const flinchMove = move.secondaries?.some(secondary => secondary.volatileStatus === 'flinch'); - const freezeMove = move.secondaries?.some(secondary => secondary.status === 'frz') || move.id === 'triattack'; - if (this.ruleTable.isRestricted(`move:${move.id}`) || - ((accuracyLoweringMove || move.ohko || move.multihit || move.id === 'beatup' || move.flags['charge'] || - move.priority > 0 || move.damageCallback || flinchMove || freezeMove || move.selfSwitch) && - !this.ruleTable.has(`+move:${move.id}`))) { - problems.push(`The move ${move.name} can't be used as an item.`); - } - return problems.length ? problems : null; - }, - onBegin() { - for (const pokemon of this.getAllPokemon()) { - const move = this.dex.getActiveMove(pokemon.set.item); - if (move.exists && move.category !== 'Status') { - pokemon.m.forte = move; - pokemon.item = 'mail' as ID; - } - } - }, - onModifyMovePriority: 1, - onModifyMove(move, pokemon, target) { - const forte: ActiveMove = pokemon.m.forte; - if (move.category !== 'Status' && forte) { - move.flags = {...move.flags, ...forte.flags}; - if (forte.self) { - if (forte.self.onHit && move.self?.onHit) { - for (const i in forte.self) { - if (i.startsWith('onHit')) continue; - (move.self as any)[i] = (forte.self as any)[i]; - } - } else { - move.self = {...(move.self || {}), ...forte.self}; - } - } - if (forte.selfBoost?.boosts) { - if (!move.selfBoost?.boosts) move.selfBoost = {boosts: {}}; - let boostid: BoostID; - for (boostid in forte.selfBoost.boosts) { - if (!move.selfBoost.boosts![boostid]) move.selfBoost.boosts![boostid] = 0; - move.selfBoost.boosts![boostid]! += forte.selfBoost.boosts[boostid]!; - } - } - if (forte.secondaries) { - move.secondaries = [...(move.secondaries || []), ...forte.secondaries]; - } - move.critRatio = (move.critRatio || 1) + (forte.critRatio || 1) - 1; - const VALID_PROPERTIES = [ - 'alwaysHit', 'basePowerCallback', 'breaksProtect', 'drain', 'forceSTAB', 'forceSwitch', 'hasCrashDamage', 'hasSheerForce', - 'ignoreAbility', 'ignoreAccuracy', 'ignoreDefensive', 'ignoreEvasion', 'ignoreImmunity', 'mindBlownRecoil', 'noDamageVariance', - 'ohko', 'overrideDefensivePokemon', 'overrideDefensiveStat', 'overrideOffensivePokemon', 'overrideOffensiveStat', 'pseudoWeather', - 'recoil', 'selfdestruct', 'selfSwitch', 'sleepUsable', 'smartTarget', 'stealsBoosts', 'thawsTarget', 'volatileStatus', 'willCrit', - ] as const; - for (const property of VALID_PROPERTIES) { - if (forte[property]) { - move[property] = forte[property] as any; - } - } - // Added here because onEffectiveness doesn't have an easy way to reference the source - if (forte.onEffectiveness) { - move.onEffectiveness = function (typeMod, t, type, m) { - return forte.onEffectiveness!.call(this, typeMod, t, type, m); - }; - } - forte.onModifyMove?.call(this, move, pokemon, target); - } - }, - onModifyPriority(priority, source, target, move) { - const forte = source?.m.forte; - if (move.category !== 'Status' && forte) { - if (source.hasAbility('Triage') && forte.flags['heal']) { - return priority + (move.flags['heal'] ? 0 : 3); - } - return priority + forte.priority; - } - }, - onModifyTypePriority: 1, - onModifyType(move, pokemon, target) { - const forte = pokemon.m.forte; - if (move.category !== 'Status' && forte) { - this.singleEvent('ModifyType', forte, null, pokemon, target, move, move); - } - }, - onHitPriority: 1, - onHit(target, source, move) { - const forte = source.m.forte; - if (move?.category !== 'Status' && forte) { - this.singleEvent('Hit', forte, {}, target, source, move); - if (forte.self) this.singleEvent('Hit', forte.self, {}, source, source, move); - this.singleEvent('AfterHit', forte, {}, target, source, move); - } - }, - onAfterSubDamage(damage, target, source, move) { - const forte = source.m.forte; - if (move?.category !== 'Status' && forte) { - this.singleEvent('AfterSubDamage', forte, null, target, source, move); - } - }, - onModifySecondaries(secondaries, target, source, move) { - if (secondaries.some(s => !!s.self)) move.selfDropped = false; - }, - onAfterMoveSecondaryPriority: 1, - onAfterMoveSecondarySelf(source, target, move) { - const forte = source.m.forte; - if (move?.category !== 'Status' && forte) { - this.singleEvent('AfterMoveSecondarySelf', forte, null, source, target, move); - } - }, - onBasePowerPriority: 1, - onBasePower(basePower, source, target, move) { - const forte = source.m.forte; - if (move.category !== 'Status' && forte?.onBasePower) { - forte.onBasePower.call(this, basePower, source, target, move); - } - }, - pokemon: { - getItem() { - const move = this.battle.dex.moves.get(this.m.forte); - if (!move.exists) return Object.getPrototypeOf(this).getItem.call(this); - return { - ...this.battle.dex.items.get('mail'), - name: move.name, id: move.id, ignoreKlutz: true, onTakeItem: false, - }; - }, - }, - }, - { - name: "[Gen 9] Full Potential", - desc: `Pokémon's moves hit off of their highest stat.`, - threads: [ - `• Full Potential`, - ], - - mod: 'fullpotential', - searchShow: false, - ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Terastal Clause', 'Min Source Gen = 9'], - banlist: [ - 'Chien-Pao', 'Cyclizar', 'Dragapult', 'Espathra', 'Flutter Mane', 'Iron Bundle', 'Koraidon', 'Miraidon', 'Scream Tail', 'Arena Trap', - 'Chlorophyll', 'Drought', 'Moody', 'Sand Rush', 'Shadow Tag', 'Slush Rush', 'Swift Swim', 'Unburden', 'Booster Energy', 'Choice Scarf', - 'Heat Rock', 'King\'s Rock', 'Baton Pass', 'Tailwind', - ], - }, - { - name: "[Gen 9] Inheritance", - desc: `Pokémon may use the ability and moves of another, as long as they forfeit their own learnset.`, - threads: [ - `• Inheritance`, - ], - - mod: 'gen9', - searchShow: false, - ruleset: ['Standard OMs', 'Ability Clause = 2', 'Sleep Moves Clause', 'Min Source Gen = 9'], - banlist: ['Koraidon', 'Miraidon', 'Slaking', 'Arena Trap', 'Huge Power', 'Imposter', 'Pure Power', 'Shadow Tag', 'King\'s Rock', 'Baton Pass', 'Last Respects', 'Shed Tail', 'Shell Smash'], - getEvoFamily(speciesid) { - let species = Dex.species.get(speciesid); - while (species.prevo) { - species = Dex.species.get(species.prevo); + getEvoFamily(speciesid) { + let species = Dex.species.get(speciesid); + while (species.prevo) { + const prevoSpecies = Dex.species.get(species.prevo); + if (prevoSpecies.evos.length > 1) break; + species = prevoSpecies; } return species.id; }, validateSet(set, teamHas) { - const unreleased = (pokemon: Species) => pokemon.tier === "Unreleased" && pokemon.isNonstandard === "Unobtainable"; if (!teamHas.abilityMap) { teamHas.abilityMap = Object.create(null); for (const pokemon of Dex.species.all()) { - if (pokemon.isNonstandard || (unreleased(pokemon) && !this.ruleTable.has('+unobtainable'))) continue; - if (pokemon.requiredAbility || pokemon.requiredItem || pokemon.requiredMove) continue; + if (pokemon.isNonstandard && !this.ruleTable.has(`+pokemontag:${this.toID(pokemon.isNonstandard)}`)) continue; + if (pokemon.battleOnly) continue; if (this.ruleTable.isBannedSpecies(pokemon)) continue; for (const key of Object.values(pokemon.abilities)) { @@ -1162,7 +676,7 @@ export const Formats: FormatList = [ const species = this.dex.species.get(set.species); if (!species.exists || species.num < 1) return [`The Pok\u00e9mon "${set.species}" does not exist.`]; - if (species.isNonstandard || (unreleased(species) && !this.ruleTable.has('+unobtainable'))) { + if (species.isNonstandard && !this.ruleTable.has(`+pokemontag:${this.toID(species.isNonstandard)}`)) { return [`${species.name} is not obtainable in Generation ${this.dex.gen}.`]; } @@ -1179,9 +693,10 @@ export const Formats: FormatList = [ (this.format as any).debug = true; if (!teamHas.abilitySources) teamHas.abilitySources = Object.create(null); - const validSources: string[] = teamHas.abilitySources[this.dex.toID(set.species)] = []; // Evolution families + const validSources: string[] = teamHas.abilitySources[this.toID(set.species)] = []; // Evolution families let canonicalSource = ''; // Specific for the basic implementation of Donor Clause (see onValidateTeam). + const hpType = set.hpType; for (const donor of pokemonWithAbility) { const donorSpecies = this.dex.species.get(donor); @@ -1192,8 +707,12 @@ export const Formats: FormatList = [ set.species = donorSpecies.name; set.name = donorSpecies.baseSpecies; - const problems = this.validateSet(set, teamHas) || []; - if (!problems.length) { + const annoyingPokemon = ["Iron Leaves", "Walking Wake", "Iron Boulder", "Gouging Fire", "Iron Crown", "Raging Bolt"]; + if (annoyingPokemon.includes(donorSpecies.name) || annoyingPokemon.includes(species.name)) { + set.hpType = "Dark"; + } + const problems = this.validateSet(set, teamHas); + if (!problems?.length) { validSources.push(evoFamily); canonicalSource = donorSpecies.name; } @@ -1204,19 +723,20 @@ export const Formats: FormatList = [ set.name = name; set.species = species.name; + set.hpType = hpType; if (!validSources.length) { if (pokemonWithAbility.length > 1) return [`${name}'s set is illegal.`]; return [`${name} has an illegal set with an ability from ${this.dex.species.get(pokemonWithAbility[0]).name}.`]; } - // Protocol: Include the data of the donor species in the `ability` data slot. + // Protocol: Include the data of the donor species in the `pokeball` data slot. // Afterwards, we are going to reset the name to what the user intended. - set.ability = `${set.ability}0${canonicalSource}`; + set.pokeball = `${set.pokeball}0${canonicalSource}`; return null; }, onValidateTeam(team, f, teamHas) { if (this.ruleTable.has('abilityclause')) { - const abilityTable = new Map(); + const abilityTable = new this.dex.Multiset(); const base: {[k: string]: string} = { airlock: 'cloudnine', armortail: 'queenlymajesty', @@ -1228,6 +748,7 @@ export const Formats: FormatList = [ gooey: 'tanglinghair', insomnia: 'vitalspirit', ironbarbs: 'roughskin', + keeneye: 'illuminate', libero: 'protean', minus: 'plus', moxie: 'chillingneigh', @@ -1241,20 +762,20 @@ export const Formats: FormatList = [ let ability = this.toID(set.ability.split('0')[0]); if (!ability) continue; if (ability in base) ability = base[ability] as ID; - if ((abilityTable.get(ability) || 0) >= num) { + if (abilityTable.get(ability) >= num) { return [ `You are limited to ${num} of each ability by ${num} Ability Clause.`, `(You have more than ${num} ${this.dex.abilities.get(ability).name} variants)`, ]; } - abilityTable.set(ability, (abilityTable.get(ability) || 0) + 1); + abilityTable.add(ability); } } // Donor Clause const evoFamilyLists = []; for (const set of team) { - const abilitySources = teamHas.abilitySources?.[this.dex.toID(set.species)]; + const abilitySources = teamHas.abilitySources?.[this.toID(set.species)]; if (!abilitySources) continue; let format = this.format; if (!format.getEvoFamily) format = this.dex.formats.get('gen9inheritance'); @@ -1282,11 +803,10 @@ export const Formats: FormatList = [ }, onBegin() { for (const pokemon of this.getAllPokemon()) { - if (pokemon.baseAbility.includes('0')) { - const donor = pokemon.baseAbility.split('0')[1]; + if (pokemon.pokeball.includes('0')) { + const donor = pokemon.pokeball.split('0')[1]; pokemon.m.donor = this.toID(donor); - pokemon.baseAbility = this.toID(pokemon.baseAbility.split('0')[0]); - pokemon.ability = pokemon.baseAbility; + (pokemon as any).pokeball = this.toID(pokemon.pokeball.split('0')[0]); } } }, @@ -1298,18 +818,85 @@ export const Formats: FormatList = [ this.add('-start', pokemon, donorTemplate.name, '[silent]'); }, }, + { + name: "[Gen 9] Mix and Mega", + desc: `Mega evolve any Pokémon with any mega stone, or transform them with Primal orbs, Origin orbs, and Rusted items with no limit. Mega and Primal boosts based on form changes from gen 7.`, + mod: 'mixandmega', + ruleset: ['Standard OMs', 'Evasion Items Clause', 'Evasion Abilities Clause', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Calyrex-Shadow', 'Koraidon', 'Kyogre', 'Miraidon', 'Moody', 'Shadow Tag', 'Beedrillite', 'Blazikenite', 'Gengarite', + 'Kangaskhanite', 'Mawilite', 'Medichamite', 'Pidgeotite', 'Red Orb', 'Rusted Sword', 'Baton Pass', 'Shed Tail', + ], + restricted: [ + 'Arceus', 'Basculegion-M', 'Calyrex-Ice', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dragapult', 'Eternatus', 'Flutter Mane', + 'Gengar', 'Gholdengo', 'Giratina', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Kyurem-Black', 'Kyurem-White', 'Lugia', + 'Lunala', 'Manaphy', 'Mewtwo', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Rayquaza', 'Regigigas', 'Reshiram', + 'Slaking', 'Sneasler', 'Solgaleo', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', 'Zacian', 'Zekrom', + ], + onValidateTeam(team) { + const itemTable = new Set(); + for (const set of team) { + const item = this.dex.items.get(set.item); + if (!item.megaStone && !item.onPrimal && !item.forcedForme?.endsWith('Origin') && + !item.name.startsWith('Rusted') && !item.name.endsWith('Mask')) continue; + const natdex = this.ruleTable.has('standardnatdex'); + if (natdex && item.id !== 'ultranecroziumz') continue; + const species = this.dex.species.get(set.species); + if (species.isNonstandard && !this.ruleTable.has(`+pokemontag:${this.toID(species.isNonstandard)}`)) { + return [`${species.baseSpecies} does not exist in gen 9.`]; + } + if ((item.itemUser?.includes(species.name) && !item.megaStone && !item.onPrimal) || + (natdex && species.name.startsWith('Necrozma-') && item.id === 'ultranecroziumz')) { + continue; + } + if (this.ruleTable.isRestrictedSpecies(species) || this.toID(set.ability) === 'powerconstruct') { + return [`${species.name} is not allowed to hold ${item.name}.`]; + } + if (itemTable.has(item.id)) { + return [ + `You are limited to one of each mega stone/orb/rusted item/sinnoh item/mask.`, + `(You have more than one ${item.name})`, + ]; + } + itemTable.add(item.id); + } + }, + onBegin() { + for (const pokemon of this.getAllPokemon()) { + pokemon.m.originalSpecies = pokemon.baseSpecies.name; + } + }, + onSwitchIn(pokemon) { + const originalFormeSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); + if (originalFormeSpecies.exists && pokemon.m.originalSpecies !== originalFormeSpecies.baseSpecies) { + // Place volatiles on the Pokémon to show its mega-evolved condition and details + this.add('-start', pokemon, originalFormeSpecies.requiredItem || originalFormeSpecies.requiredMove, '[silent]'); + const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); + if (oSpecies.types.length !== pokemon.species.types.length || oSpecies.types[1] !== pokemon.species.types[1]) { + this.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); + } + } + }, + onSwitchOut(pokemon) { + const oMegaSpecies = this.dex.species.get((pokemon.species as any).originalSpecies); + if (oMegaSpecies.exists && pokemon.m.originalSpecies !== oMegaSpecies.baseSpecies) { + this.add('-end', pokemon, oMegaSpecies.requiredItem || oMegaSpecies.requiredMove, '[silent]'); + } + }, + }, { name: "[Gen 9] Partners in Crime", desc: `Doubles-based metagame where both active ally Pokémon share abilities and moves.`, - threads: [ - `• Partners in Crime`, - ], - mod: 'partnersincrime', gameType: 'doubles', - searchShow: false, - ruleset: ['Standard Doubles'], - banlist: ['Annihilape', 'Chi-Yu', 'Flutter Mane', 'Koraidon', 'Miraidon', 'Dancer', 'Huge Power', 'Moody', 'Pure Power', 'Shadow Tag', 'Ally Switch', 'Revival Blessing', 'Swagger'], + ruleset: ['Standard Doubles', 'Evasion Abilities Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Cresselia', 'Darkrai', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Flutter Mane', + 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', + 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Smeargle', 'Solgaleo', 'Terapagos', 'Urshifu', 'Urshifu-Rapid-Strike', + 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Contrary', 'Dancer', 'Huge Power', 'Moody', 'Pure Power', 'Serene Grace', 'Shadow Tag', + 'Stench', 'Bright Powder', 'King\'s Rock', 'Razor Fang', 'Ally Switch', 'Dragon Cheer', 'Last Respects', 'Revival Blessing', 'Swagger', + ], onBegin() { for (const pokemon of this.getAllPokemon()) { pokemon.m.trackPP = new Map(); @@ -1329,14 +916,14 @@ export const Formats: FormatList = [ if (ally && ally.ability !== pokemon.ability) { if (!pokemon.m.innate && !BAD_ABILITIES.includes(this.toID(ally.ability))) { pokemon.m.innate = 'ability:' + ally.ability; - if (!ngas || ally.getAbility().isPermanent || pokemon.hasItem('Ability Shield')) { + if (!ngas || ally.getAbility().flags['cantsuppress'] || pokemon.hasItem('Ability Shield')) { pokemon.volatiles[pokemon.m.innate] = {id: pokemon.m.innate, target: pokemon}; pokemon.m.startVolatile = true; } } if (!ally.m.innate && !BAD_ABILITIES.includes(this.toID(pokemon.ability))) { ally.m.innate = 'ability:' + pokemon.ability; - if (!ngas || pokemon.getAbility().isPermanent || ally.hasItem('Ability Shield')) { + if (!ngas || pokemon.getAbility().flags['cantsuppress'] || ally.hasItem('Ability Shield')) { ally.volatiles[ally.m.innate] = {id: ally.m.innate, target: ally}; ally.m.startVolatile = true; } @@ -1360,74 +947,860 @@ export const Formats: FormatList = [ pokemon.removeVolatile(pokemon.m.innate); delete pokemon.m.innate; } - const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); - if (ally && ally.m.innate) { - ally.removeVolatile(ally.m.innate); - delete ally.m.innate; + const ally = pokemon.side.active.find(mon => mon && mon !== pokemon && !mon.fainted); + if (ally && ally.m.innate) { + ally.removeVolatile(ally.m.innate); + delete ally.m.innate; + } + }, + }, + { + name: "[Gen 9] Shared Power", + desc: `Once a Pokémon switches in, its ability is shared with the rest of the team.`, + mod: 'sharedpower', + ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause'], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Conkeldurr', 'Deoxys-Attack', 'Eternatus', 'Greninja', 'Kingambit', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', + 'Koraidon', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palafin', 'Rayquaza', 'Regieleki', 'Reshiram', + 'Rillaboom', 'Scizor', 'Shaymin-Sky', 'Spectrier', 'Sneasler', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Neutralizing Gas', + 'Shadow Tag', 'Speed Boost', 'Stench', 'Swift Swim', 'King\'s Rock', 'Leppa Berry', 'Razor Fang', 'Starf Berry', 'Baton Pass', 'Extreme Speed', 'Last Respects', + ], + unbanlist: ['Arceus-Bug', 'Arceus-Dragon', 'Arceus-Fire', 'Arceus-Ice'], + restricted: [ + 'Armor Tail', 'Chlorophyll', 'Comatose', 'Contrary', 'Dazzling', 'Fur Coat', 'Gale Wings', 'Good as Gold', 'Huge Power', 'Ice Scales', 'Illusion', 'Imposter', + 'Magic Bounce', 'Magic Guard', 'Magnet Pull', 'Mold Breaker', 'Multiscale', 'Poison Heal', 'Prankster', 'Protosynthesis', 'Psychic Surge', 'Pure Power', + 'Purifying Salt', 'Quark Drive', 'Queenly Majesty', 'Quick Draw', 'Quick Feet', 'Regenerator', 'Sand Rush', 'Simple', 'Slush Rush', 'Stakeout', 'Stamina', + 'Sturdy', 'Surge Surfer', 'Technician', 'Tinted Lens', 'Triage', 'Unaware', 'Unburden', 'Water Bubble', + ], + onValidateRule() { + if (this.format.gameType !== 'singles') { + throw new Error(`Shared Power currently does not support ${this.format.gameType} battles.`); + } + }, + getSharedPower(pokemon) { + const sharedPower = new Set(); + for (const ally of pokemon.side.pokemon) { + if (pokemon.battle.ruleTable.isRestricted(`ability:${ally.baseAbility}`)) continue; + if (ally.previouslySwitchedIn > 0) { + if (pokemon.battle.dex.currentMod !== 'sharedpower' && ['trace', 'mirrorarmor'].includes(ally.baseAbility)) { + sharedPower.add('noability'); + continue; + } + sharedPower.add(ally.baseAbility); + } + } + sharedPower.delete(pokemon.baseAbility); + return sharedPower; + }, + onBeforeSwitchIn(pokemon) { + let format = this.format; + if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); + for (const ability of format.getSharedPower!(pokemon)) { + const effect = 'ability:' + ability; + pokemon.volatiles[effect] = {id: this.toID(effect), target: pokemon}; + if (!pokemon.m.abils) pokemon.m.abils = []; + if (!pokemon.m.abils.includes(effect)) pokemon.m.abils.push(effect); + } + }, + onSwitchInPriority: 2, + onSwitchIn(pokemon) { + let format = this.format; + if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); + for (const ability of format.getSharedPower!(pokemon)) { + if (ability === 'noability') { + this.hint(`Mirror Armor and Trace break in Shared Power formats that don't use Shared Power as a base, so they get removed from non-base users.`); + } + const effect = 'ability:' + ability; + delete pokemon.volatiles[effect]; + pokemon.addVolatile(effect); + } + }, + }, + { + name: "[Gen 9] STABmons", + desc: `Pokémon can use any move of their typing, in addition to the moves they can normally learn.`, + mod: 'gen9', + ruleset: ['Standard OMs', 'STABmons Move Legality', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Araquanid', 'Arceus', 'Azumarill', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Dragapult', + 'Dragonite', 'Enamorus-Incarnate', 'Eternatus', 'Flutter Mane', 'Garchomp', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Kingambit', 'Komala', + 'Koraidon', 'Kyogre', 'Kyurem-Base', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lilligant-Hisui', 'Lugia', 'Lunala', 'Magearna', 'Manaphy', 'Mewtwo', 'Miraidon', + 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Ogerpon-Wellspring', 'Palkia', 'Palkia-Origin', 'Porygon-Z', 'Rayquaza', 'Reshiram', 'Roaring Moon', 'Shaymin-Sky', + 'Solgaleo', 'Spectrier', 'Terapagos', 'Ursaluna', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Zoroark-Hisui', 'Arena Trap', + 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Final Gambit', 'Last Respects', 'Rage Fist', 'Shed Tail', + ], + restricted: [ + 'Astral Barrage', 'Acupressure', 'Belly Drum', 'Clangorous Soul', 'Ceaseless Edge', 'Dire Claw', 'Dragon Energy', 'Electro Shot', 'Extreme Speed', 'Fillet Away', + 'Gigaton Hammer', 'No Retreat', 'Revival Blessing', 'Shell Smash', 'Shift Gear', 'Triple Arrows', 'V-create', 'Victory Dance', 'Wicked Blow', 'Wicked Torque', + ], + }, + { + name: "[Gen 7] Pure Hackmons", + desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`, + mod: 'gen7', + ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'], + }, + + // Challengeable OMs + /////////////////////////////////////////////////////////////////// + + { + section: "Challengeable OMs", + column: 2, + }, + { + name: "[Gen 9] 350 Cup", + desc: `Pokemon with a BST of 350 or lower have their stats doubled.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', '350 Cup Mod', 'Evasion Clause'], + banlist: ['Calyrex-Shadow', 'Flittle', 'Gastly', 'Miraidon', 'Pikachu', 'Rufflet', 'Arena Trap', 'Moody', 'Shadow Tag', 'Eviolite', 'Baton Pass'], + }, + { + name: "[Gen 9] Camomons", + desc: `Pokémon have their types set to match their first two moves.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Clause Mod', 'Evasion Items Clause', 'Evasion Abilities Clause', 'Terastal Clause', 'Camomons Mod'], + banlist: [ + 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Deoxys-Speed', 'Dialga', + 'Dialga-Origin', 'Dragonite', 'Drednaw', 'Enamorus-Incarnate', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', + 'Iron Bundle', 'Kommo-o', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Manaphy', + 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Roaring Moon', 'Shaymin-Sky', + 'Sneasler', 'Solgaleo', 'Spectrier', 'Tornadus-Therian', 'Ursaluna-Bloodmoon', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', + 'Arena Trap', 'Moody', 'Shadow Tag', 'Booster Energy', 'King\'s Rock', 'Light Clay', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + }, + { + name: "[Gen 9] Category Swap", + desc: `All Special moves become Physical, and all Physical moves become Special.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Clause Mod', 'Category Swap Mod'], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Deoxys-Speed', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Eternatus', + 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Iron Valiant', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', + 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Reshiram', 'Roaring Moon', 'Solgaleo', + 'Spectrier', 'Terapagos', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'King\'s Rock', + 'Razor Fang', 'Baton Pass', 'Draco Meteor', 'Last Respects', 'Overheat', 'Shed Tail', + ], + }, + { + name: "[Gen 9] Convergence", + desc: `Allows all Pokémon that have identical types to share moves and abilities.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Clause Mod', 'Convergence Legality', 'Terastal Clause', '!Obtainable Abilities'], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Deoxys-Speed', 'Dialga', 'Dialga-Origin', + 'Dondozo', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-oh', 'Inteleon', 'Iron Bundle', 'Iron Hands', 'Koraidon', 'Kyogre', + 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lilligant-Hisui', 'Lugia', 'Lunala', 'Magearna', 'Manaphy', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', + 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', 'Primarina', 'Rayquaza', 'Regieleki', 'Regigigas', 'Reshiram', 'Shaymin-Sky', + 'Solgaleo', 'Slaking', 'Smeargle', 'Spectrier', 'Urshifu-Single-Strike', 'Urshifu-Rapid-Strike', 'Walking Wake', 'Zacian', 'Zacian-Crowned', 'Zamazenta', + 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Comatose', 'Contrary', 'Drizzle', 'Imposter', 'Moody', 'Pure Power', 'Shadow Tag', 'Speed Boost', 'Unburden', + 'Heat Rock', 'King\'s Rock', 'Light Clay', 'Razor Fang', 'Baton Pass', 'Boomburst', 'Extreme Speed', 'Last Respects', 'Population Bomb', 'Quiver Dance', + 'Rage Fist', 'Shed Tail', 'Shell Smash', 'Spore', 'Transform', + ], + }, + { + name: "[Gen 9] Cross Evolution", + desc: `Give a Pokémon a Pokémon name of the next evolution stage as a nickname to inherit stat changes, typing, abilities, and moves from the next stage Pokémon.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Basculin-White-Striped', 'Duraludon', 'Kyogre', 'Miraidon', 'Scyther', 'Sneasel', 'Sneasel-Hisui', 'Ursaring', 'Arena Trap', + 'Huge Power', 'Pure Power', 'Shadow Tag', 'Moody', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Shed Tail', + ], + restricted: ['Espathra', 'Frosmoth', 'Gallade', 'Lilligant-Hisui', 'Lunala', 'Solgaleo'], + onValidateTeam(team) { + const nums = new Set(); + for (const set of team) { + const name = set.name; + const species = this.dex.species.get(name); + if (nums.has(species.num)) { + return [ + `Your Pok\u00e9mon must have different nicknames.`, + `(You have more than one Pok\u00e9mon named after a form of '${species.name}')`, + ]; + } + if (species.exists && species.name !== set.species) nums.add(species.num); + } + if (!nums.size) { + return [ + `${this.format.name} works using nicknames; your team has 0 nicknamed Pok\u00e9mon.`, + `(If this was intentional, add a nickname to one Pok\u00e9mon that isn't the name of a Pok\u00e9mon species.)`, + ]; + } + }, + checkCanLearn(move, species, lsetData, set) { + if (!(set as any).sp?.exists || !(set as any).crossSpecies?.exists) { + return this.checkCanLearn(move, species, lsetData, set); + } + const problem = this.checkCanLearn(move, (set as any).sp); + if (!problem) return null; + if (this.checkCanLearn(move, (set as any).crossSpecies)) return problem; + return null; + }, + validateSet(set, teamHas) { + const crossSpecies = this.dex.species.get(set.name); + let problems = this.dex.formats.get('Obtainable Misc').onChangeSet?.call(this, set, this.format) || null; + if (Array.isArray(problems) && problems.length) return problems; + const crossNonstandard = (!this.ruleTable.has('standardnatdex') && crossSpecies.isNonstandard === 'Past') || + crossSpecies.isNonstandard === 'Future'; + const crossIsCap = !this.ruleTable.has('+pokemontag:cap') && crossSpecies.isNonstandard === 'CAP'; + if (!crossSpecies.exists || crossNonstandard || crossIsCap) return this.validateSet(set, teamHas); + const species = this.dex.species.get(set.species); + const check = this.checkSpecies(set, species, species, {}); + if (check) return [check]; + const nonstandard = !this.ruleTable.has('standardnatdex') && species.isNonstandard === 'Past'; + const isCap = !this.ruleTable.has('+pokemontag:cap') && species.isNonstandard === 'CAP'; + if (!species.exists || nonstandard || isCap || species === crossSpecies) return this.validateSet(set, teamHas); + if (!species.nfe) return [`${species.name} cannot cross evolve because it doesn't evolve.`]; + const crossIsUnreleased = (crossSpecies.tier === "Unreleased" && crossSpecies.isNonstandard === "Unobtainable" && + !this.ruleTable.has('+unobtainable')); + if (crossSpecies.battleOnly || crossIsUnreleased || !crossSpecies.prevo) { + return [`${species.name} cannot cross evolve into ${crossSpecies.name} because it isn't an evolution.`]; + } + if (this.ruleTable.isRestrictedSpecies(crossSpecies)) { + return [`${species.name} cannot cross evolve into ${crossSpecies.name} because it is banned.`]; + } + const crossPrevoSpecies = this.dex.species.get(crossSpecies.prevo); + if (!crossPrevoSpecies.prevo !== !species.prevo) { + return [ + `${species.name} cannot cross evolve into ${crossSpecies.name} because they are not consecutive evolution stages.`, + ]; + } + const item = this.dex.items.get(set.item); + if (item.itemUser?.length) { + if (!item.itemUser.includes(crossSpecies.name) || crossSpecies.name !== species.name) { + return [`${species.name} cannot use ${item.name} because it is cross evolved into ${crossSpecies.name}.`]; + } + } + const ability = this.dex.abilities.get(set.ability); + if (!this.ruleTable.isRestricted(`ability:${ability.id}`) || Object.values(species.abilities).includes(ability.name)) { + set.species = crossSpecies.name; + } + + (set as any).sp = species; + (set as any).crossSpecies = crossSpecies; + problems = this.validateSet(set, teamHas); + set.name = crossSpecies.name; + set.species = species.name; + return problems; + }, + onModifySpecies(species, target, source, effect) { + if (!target) return; // chat + if (effect && ['imposter', 'transform'].includes(effect.id)) return; + if (target.set.name === target.set.species) return; + const crossSpecies = this.dex.species.get(target.set.name); + if (!crossSpecies.exists) return; + if (species.battleOnly || !species.nfe) return; + const crossIsUnreleased = (crossSpecies.tier === "Unreleased" && crossSpecies.isNonstandard === "Unobtainable" && + !this.ruleTable.has('+unobtainable')); + if (crossSpecies.battleOnly || crossIsUnreleased || !crossSpecies.prevo) return; + const crossPrevoSpecies = this.dex.species.get(crossSpecies.prevo); + if (!crossPrevoSpecies.prevo !== !species.prevo) return; + + const mixedSpecies = this.dex.deepClone(species); + mixedSpecies.weightkg = + Math.max(0.1, +(species.weightkg + crossSpecies.weightkg - crossPrevoSpecies.weightkg)).toFixed(1); + mixedSpecies.nfe = false; + mixedSpecies.evos = []; + mixedSpecies.eggGroups = crossSpecies.eggGroups; + mixedSpecies.abilities = crossSpecies.abilities; + mixedSpecies.bst = 0; + let i: StatID; + for (i in species.baseStats) { + const statChange = crossSpecies.baseStats[i] - crossPrevoSpecies.baseStats[i]; + mixedSpecies.baseStats[i] = this.clampIntRange(species.baseStats[i] + statChange, 1, 255); + mixedSpecies.bst += mixedSpecies.baseStats[i]; + } + if (crossSpecies.types[0] !== crossPrevoSpecies.types[0]) mixedSpecies.types[0] = crossSpecies.types[0]; + if (crossSpecies.types[1] !== crossPrevoSpecies.types[1]) { + mixedSpecies.types[1] = crossSpecies.types[1] || crossSpecies.types[0]; + } + if (mixedSpecies.types[0] === mixedSpecies.types[1]) mixedSpecies.types = [mixedSpecies.types[0]]; + + return mixedSpecies; + }, + onBegin() { + for (const pokemon of this.getAllPokemon()) { + pokemon.baseSpecies = pokemon.species; + } + }, + }, + { + name: "[Gen 9] Fervent Impersonation", + desc: `Nickname a Pokémon after another Pokémon that it shares a moveset with, and it will transform into the Pokémon it's nicknamed after once it drops to or below 50% health.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Fervent Impersonation Mod', '!Nickname Clause'], + banlist: ['Arena Trap', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Dire Claw', 'Shed Tail', 'Last Respects'], + restricted: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Espathra', 'Eternatus', + 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', + 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Reshiram', 'Shaymin-Sky', + 'Solgaleo', 'Terapagos', 'Urshifu-Single-Strike', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', + ], + // Implemented the mechanics as a Rule because I'm too lazy to make battles read base format for `onResidual` at the moment + }, + { + name: "[Gen 9] Foresighters", + desc: `Moves in the first moveslot will be delayed by two turns.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chien-Pao', 'Chi-Yu', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Espathra', + 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', + 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Shaymin-Sky', + 'Solgaleo', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu', 'Urshifu-Rapid-Strike', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', + 'Sand Veil', 'Snow Cloak', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Dire Claw', 'Last Respects', 'Shed Tail', + ], + restricted: [ + 'Belly Drum', 'Clangorous Soul', 'Dragon Dance', 'Endeavor', 'Quiver Dance', 'Shell Smash', 'Shift Gear', 'Tail Glow', 'Tidy Up', 'Victory Dance', + ], + onValidateSet(set) { + const fsMove = this.dex.moves.get(set.moves[0]); + if (this.ruleTable.isRestricted(`move:${fsMove.id}`)) { + return [`${set.name}'s move ${fsMove.name} cannot be used as a future move.`]; + } + }, + onModifyMove(move, pokemon) { + if (move.id === pokemon.moveSlots[0].id && !move.flags['futuremove']) { + move.flags['futuremove'] = 1; + delete move.flags['protect']; + move.onTry = function (source, t) { + if (!t.side.addSlotCondition(t, 'futuremove')) { + this.hint('Future moves fail when the targeted slot already has a future move focused on it.'); + return false; + } + const moveData = this.dex.getActiveMove(move.id); + moveData.flags['futuremove'] = 1; + delete moveData.flags['protect']; + if (moveData.id === 'beatup') this.singleEvent('ModifyMove', moveData, null, pokemon, null, null, moveData); + Object.assign(t.side.slotConditions[t.position]['futuremove'], { + duration: 3, + move: moveData.id, + source: source, + moveData: moveData, + }); + this.add('-message', `${source.name} foresaw an attack!`); + return this.NOT_FAIL; + }; + } + }, + }, + { + name: "[Gen 9] Fortemons", + desc: `Put an attacking move in the item slot to have all of a Pokémon's attacks inherit its properties.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Archaludon', 'Azumarill', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Cloyster', 'Comfey', 'Deoxys-Normal', 'Deoxys-Attack', + 'Dialga-Base', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina-Altered', 'Great Tusk', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Iron Treads', 'Koraidon', 'Kyogre', + 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Meowscarada', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palafin', + 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Samurott-Hisui', 'Shaymin-Sky', 'Skeledirge', 'Smeargle', 'Solgaleo', 'Spectrier', 'Sneasler', 'Terapagos', + 'Urshifu', 'Urshifu-Rapid-Strike', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Serene Grace', 'Shadow Tag', + 'Damp Rock', 'Heat Rock', 'Light Clay', 'Baton Pass', 'Beat Up', 'Fake Out', 'Last Respects', 'Shed Tail', + ], + restricted: [ + 'Doom Desire', 'Dynamic Punch', 'Electro Ball', 'Explosion', 'Gyro Ball', 'Final Gambit', 'Flail', 'Flip Turn', 'Fury Cutter', 'Future Sight', 'Grass Knot', + 'Grassy Glide', 'Hard Press', 'Heavy Slam', 'Heat Crash', 'Inferno', 'Low Kick', 'Misty Explosion', 'Nuzzle', 'Power Trip', 'Reversal', 'Self-Destruct', + 'Spit Up', 'Stored Power', 'Tera Blast', 'U-turn', 'Weather Ball', 'Zap Cannon', + ], + onValidateTeam(team) { + const itemTable = new Set(); + for (const set of team) { + const forte = this.toID(set.item); + if (!forte) continue; + const move = this.dex.moves.get(forte); + if (move.exists && move.id !== 'metronome') { + if (itemTable.has(forte)) { + return [ + `You are limited to one of each move in the item slot per team.`, + `(You have more than one ${move.name}.)`, + ]; + } + itemTable.add(forte); + } + } + }, + validateSet(set, teamHas) { + const item = set.item; + const species = this.dex.species.get(set.species); + const move = this.dex.moves.get(item); + if (!move.exists || move.id === 'metronome' || move.category === 'Status') { + return this.validateSet(set, teamHas); + } + set.item = ''; + const problems = this.validateSet(set, teamHas) || []; + set.item = item; + if (this.checkCanLearn(move, species, this.allSources(species), set)) { + problems.push(`${species.name} can't learn ${move.name}.`); + } + if (set.moves.map(this.toID).includes(move.id)) { + problems.push(`Moves in the item slot can't be in the moveslots as well.`); + } + if (this.ruleTable.has(`-move:${move.id}`)) { + problems.push(`The move ${move.name} is fully banned.`); + } + const accuracyLoweringMove = + move.secondaries?.some(secondary => secondary.boosts?.accuracy && secondary.boosts?.accuracy < 0); + const flinchMove = move.secondaries?.some(secondary => secondary.volatileStatus === 'flinch'); + const freezeMove = move.secondaries?.some(secondary => secondary.status === 'frz') || move.id === 'triattack'; + if (this.ruleTable.isRestricted(`move:${move.id}`) || + ((accuracyLoweringMove || move.ohko || move.multihit || move.id === 'beatup' || move.flags['charge'] || + move.priority > 0 || move.damageCallback || flinchMove || freezeMove) && + !this.ruleTable.has(`+move:${move.id}`))) { + problems.push(`The move ${move.name} can't be used as an item.`); + } + return problems.length ? problems : null; + }, + onBegin() { + for (const pokemon of this.getAllPokemon()) { + const move = this.dex.getActiveMove(pokemon.set.item); + if (move.exists && move.category !== 'Status') { + pokemon.m.forte = move; + pokemon.item = 'mail' as ID; + } + } + }, + onModifyMovePriority: 1, + onModifyMove(move, pokemon, target) { + const forte: ActiveMove = pokemon.m.forte; + if (move.category !== 'Status' && forte) { + move.flags = {...move.flags, ...forte.flags}; + if (forte.self) { + if (forte.self.onHit && move.self?.onHit) { + for (const i in forte.self) { + if (i.startsWith('onHit')) continue; + (move.self as any)[i] = (forte.self as any)[i]; + } + } else { + move.self = {...(move.self || {}), ...forte.self}; + } + } + if (forte.selfBoost?.boosts) { + if (!move.selfBoost?.boosts) move.selfBoost = {boosts: {}}; + let boostid: BoostID; + for (boostid in forte.selfBoost.boosts) { + if (!move.selfBoost.boosts![boostid]) move.selfBoost.boosts![boostid] = 0; + move.selfBoost.boosts![boostid]! += forte.selfBoost.boosts[boostid]!; + } + } + if (forte.secondaries) { + move.secondaries = [...(move.secondaries || []), ...forte.secondaries]; + } + move.critRatio = (move.critRatio || 1) + (forte.critRatio || 1) - 1; + const VALID_PROPERTIES = [ + 'alwaysHit', 'basePowerCallback', 'breaksProtect', 'drain', 'forceSTAB', 'forceSwitch', 'hasCrashDamage', 'hasSheerForce', + 'ignoreAbility', 'ignoreAccuracy', 'ignoreDefensive', 'ignoreEvasion', 'ignoreImmunity', 'mindBlownRecoil', 'noDamageVariance', + 'ohko', 'overrideDefensivePokemon', 'overrideDefensiveStat', 'overrideOffensivePokemon', 'overrideOffensiveStat', 'pseudoWeather', + 'recoil', 'selfdestruct', 'selfSwitch', 'sleepUsable', 'smartTarget', 'stealsBoosts', 'thawsTarget', 'volatileStatus', 'willCrit', + ] as const; + for (const property of VALID_PROPERTIES) { + if (forte[property]) { + move[property] = forte[property] as any; + } + } + // Added here because onEffectiveness doesn't have an easy way to reference the source + if (forte.onEffectiveness) { + move.onEffectiveness = function (typeMod, t, type, m) { + return forte.onEffectiveness!.call(this, typeMod, t, type, m); + }; + } + forte.onModifyMove?.call(this, move, pokemon, target); + } + }, + onModifyPriority(priority, source, target, move) { + const forte = source?.m.forte; + if (move.category !== 'Status' && forte) { + if (source.hasAbility('Triage') && forte.flags['heal']) { + return priority + (move.flags['heal'] ? 0 : 3); + } + return priority + forte.priority; + } + }, + onModifyTypePriority: 1, + onModifyType(move, pokemon, target) { + const forte = pokemon.m.forte; + if (move.category !== 'Status' && forte) { + this.singleEvent('ModifyType', forte, null, pokemon, target, move, move); + } + }, + onHitPriority: 1, + onHit(target, source, move) { + const forte = source.m.forte; + if (move?.category !== 'Status' && forte) { + this.singleEvent('Hit', forte, {}, target, source, move); + if (forte.self) this.singleEvent('Hit', forte.self, {}, source, source, move); + this.singleEvent('AfterHit', forte, {}, target, source, move); + } + }, + onAfterSubDamage(damage, target, source, move) { + const forte = source.m.forte; + if (move?.category !== 'Status' && forte) { + this.singleEvent('AfterSubDamage', forte, null, target, source, move, damage); + } + }, + onModifySecondaries(secondaries, target, source, move) { + if (secondaries.some(s => !!s.self)) move.selfDropped = false; + }, + onAfterMoveSecondaryPriority: 1, + onAfterMoveSecondarySelf(source, target, move) { + const forte = source.m.forte; + if (move?.category !== 'Status' && forte) { + this.singleEvent('AfterMoveSecondarySelf', forte, null, source, target, move); + } + }, + onBasePowerPriority: 1, + onBasePower(basePower, source, target, move) { + const forte = source.m.forte; + if (move.category !== 'Status' && forte?.onBasePower) { + forte.onBasePower.call(this, basePower, source, target, move); + } + }, + pokemon: { + getItem() { + const move = this.battle.dex.moves.get(this.m.forte); + if (!move.exists) return Object.getPrototypeOf(this).getItem.call(this); + return { + ...this.battle.dex.items.get('mail'), + name: move.name, id: move.id, ignoreKlutz: true, onTakeItem: false, + }; + }, + }, + }, + { + name: "[Gen 9] Frantic Fusions", + desc: `Pokémon nicknamed after another Pokémon get their stats buffed by 1/4 of that Pokémon's stats, barring HP, and access to one of their abilities.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', '!Nickname Clause', '!Obtainable Abilities', 'Sleep Moves Clause', 'Frantic Fusions Mod', 'Terastal Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Comfey', 'Cresselia', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', + 'Deoxys-Speed', 'Dialga', 'Dialga-Origin', 'Ditto', 'Dragapult', 'Enamorus-Incarnate', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Gouging Fire', + 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Iron Boulder', 'Iron Bundle', 'Iron Moth', 'Iron Valiant', 'Keldeo', 'Koraidon', 'Komala', 'Kyogre', 'Kyurem', 'Kyurem-Black', + 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Numel', 'Ogerpon-Hearthflame', + 'Ogerpon-Wellspring', 'Palafin', 'Palkia', 'Palkia-Origin', 'Persian-Alola', 'Rayquaza', 'Regieleki', 'Regigigas', 'Reshiram', 'Shaymin-Sky', 'Slaking', 'Sneasler', + 'Solgaleo', 'Spectrier', 'Toxapex', 'Urshifu', 'Urshifu-Rapid-Strike', 'Volcarona', 'Walking Wake', 'Weavile', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', + 'Zekrom', 'Arena Trap', 'Contrary', 'Huge Power', 'Ice Scales', 'Illusion', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Poison Heal', 'Pure Power', 'Shadow Tag', + 'Stakeout', 'Stench', 'Speed Boost', 'Unburden', 'Water Bubble', 'Damp Rock', 'Heat Rock', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Baton Pass', 'Last Respects', + 'Revival Blessing', 'Shed Tail', + ], + }, + { + name: "[Gen 9] Full Potential", + desc: `Pokémon's moves hit off of their highest stat, except HP.`, + mod: 'fullpotential', + searchShow: false, + ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Deoxys', 'Deoxys-Attack', 'Deoxys-Defense', 'Deoxys-Speed', 'Dialga', 'Dialga-Origin', 'Dragapult', + 'Electrode-Hisui', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Goodra-Hisui', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Kyurem-Black', + 'Kyurem-White', 'Lugia', 'Lunala', 'Mewtwo', 'Miraidon', 'Necrozma-Dusk-Mane', 'Necrozma-Dawn-Wings', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', + 'Scream Tail', 'Shaymin-Sky', 'Spectrier', 'Solgaleo', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Chlorophyll', + 'Drought', 'Moody', 'Sand Rush', 'Shadow Tag', 'Slush Rush', 'Speed Boost', 'Surge Surfer', 'Swift Swim', 'Unburden', 'Booster Energy', 'Choice Scarf', + 'Heat Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Shed Tail', 'Tailwind', + ], + }, + { + name: "[Gen 9] Inverse", + desc: `The type chart is inverted; weaknesses become resistances, while resistances and immunities become weaknesses.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Inverse Mod', 'Terastal Clause'], + banlist: [ + 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chien-Pao', 'Deoxys-Attack', 'Deoxys-Normal', 'Deoxys-Speed', 'Espathra', 'Eternatus', 'Flutter Mane', + 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Indeedee', 'Indeedee-F', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Lunala', 'Maushold', 'Mewtwo', + 'Miraidon', 'Necrozma-Dawn-Wings', 'Palafin', 'Palkia', 'Palkia-Origin', 'Porygon-Z', 'Rayquaza', 'Regidrago', 'Regieleki', 'Reshiram', 'Rillaboom', 'Shaymin-Sky', + 'Spectrier', 'Ursaluna', 'Ursaluna-Bloodmoon', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Hero', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Light Clay', + 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + }, + { + name: "[Gen 9] Passive Aggressive", + desc: `All forms of passive damage deal type-based damage based on the primary type of the Pokémon that inflicted the passive damage against the target Pokémon.`, + mod: 'passiveaggressive', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Items Clause', 'Terastal Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Attack', 'Deoxys-Normal', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Flutter Mane', + 'Gholdengo', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', + 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', 'Raging Bolt', 'Rayquaza', + 'Reshiram', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Ursaluna-Bloodmoon', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', + 'Speed Boost', 'Heat Rock', 'King\'s Rock', 'Razor Fang', 'Quick Claw', 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + }, + { + name: "[Gen 9] Pokebilities", + desc: `Pokémon have all of their released abilities simultaneously.`, + mod: 'pokebilities', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause'], + banlist: [ + 'Arceus', 'Annihilape', 'Basculegion', 'Basculegion-F', 'Baxcalibur', 'Braviary-Hisui', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Conkeldurr', + 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Espathra', 'Eternatus', 'Excadrill', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', + 'Ho-Oh', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Miraidon', 'Mewtwo', + 'Necrozma-Dusk-Mane', 'Necrozma-Dawn-Wings', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', 'Porygon-Z', 'Rayquaza', 'Regieleki', 'Reshiram', + 'Shaymin-Sky', 'Smeargle', 'Sneasler', 'Solgaleo', 'Spectrier', 'Terapagos', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', 'Zacian', 'Zacian-Crowned', + 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Shed Tail', 'Last Respects', + ], + onValidateSet(set) { + const species = this.dex.species.get(set.species); + const unSeenAbilities = Object.keys(species.abilities) + .filter(key => key !== 'S' && (key !== 'H' || !species.unreleasedHidden)) + .map(key => species.abilities[key as "0" | "1" | "H" | "S"]) + .filter(ability => ability !== set.ability); + if (unSeenAbilities.length && this.toID(set.ability) !== this.toID(species.abilities['S'])) { + for (const abilityName of unSeenAbilities) { + const banReason = this.ruleTable.check('ability:' + this.toID(abilityName)); + if (banReason) { + return [`${set.name}'s ability ${abilityName} is ${banReason}.`]; + } + } + } + }, + onBegin() { + for (const pokemon of this.getAllPokemon()) { + if (pokemon.ability === this.toID(pokemon.species.abilities['S'])) { + continue; + } + pokemon.m.innates = Object.keys(pokemon.species.abilities) + .filter(key => key !== 'S' && (key !== 'H' || !pokemon.species.unreleasedHidden)) + .map(key => this.toID(pokemon.species.abilities[key as "0" | "1" | "H" | "S"])) + .filter(ability => ability !== pokemon.ability); + } + }, + onBeforeSwitchIn(pokemon) { + // Abilities that must be applied before both sides trigger onSwitchIn to correctly + // handle switch-in ability-to-ability interactions, e.g. Intimidate counters + const neededBeforeSwitchInIDs = [ + 'clearbody', 'competitive', 'contrary', 'defiant', 'fullmetalbody', 'hypercutter', 'innerfocus', + 'mirrorarmor', 'oblivious', 'owntempo', 'rattled', 'scrappy', 'simple', 'whitesmoke', + ]; + if (pokemon.m.innates) { + for (const innate of pokemon.m.innates) { + if (!neededBeforeSwitchInIDs.includes(innate)) continue; + if (pokemon.hasAbility(innate)) continue; + pokemon.addVolatile("ability:" + innate, pokemon); + } + } + }, + onSwitchInPriority: 2, + onSwitchIn(pokemon) { + if (pokemon.m.innates) { + for (const innate of pokemon.m.innates) { + if (pokemon.hasAbility(innate)) continue; + pokemon.addVolatile("ability:" + innate, pokemon); + } + } + }, + onSwitchOut(pokemon) { + for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) { + pokemon.removeVolatile(innate); + } + }, + onFaint(pokemon) { + for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) { + const innateEffect = this.dex.conditions.get(innate) as Effect; + this.singleEvent('End', innateEffect, null, pokemon); + } + }, + onAfterMega(pokemon) { + for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) { + pokemon.removeVolatile(innate); + } + pokemon.m.innates = undefined; + }, + }, + { + name: "[Gen 9] Pokemoves", + desc: `Put a Pokémon's name in a moveslot to turn them into a move. The move has 8 PP, 100% accuracy, and a category and Base Power matching their highest attacking stat. Use /pokemove for more info.`, + mod: 'pokemoves', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Terastal Clause', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Allowed Pokemoves = 1', 'Unique Pokemoves = 1'], + banlist: [ + 'Arceus', 'Annihilape', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', + 'Dragapult', 'Espathra', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Hoopa-Unbound', 'Ho-Oh', 'Iron Bundle', 'Koraidon', + 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palafin', + 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Regieleki', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Urshifu', 'Urshifu-Rapid-Strike', 'Zacian', + 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'Damp Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass', + 'Last Respects', 'Shed Tail', + ], + restricted: [ + 'Araquanid', 'Baxcalibur', 'Beartic', 'Cacnea', 'Cacturne', 'Chandelure', 'Conkeldurr', 'Crabominable', 'Cubchoo', 'Dewpider', 'Diglett', 'Diglett-Alola', 'Dragonite', + 'Dugtrio', 'Dugtrio-Alola', 'Enamorus', 'Enamorus-Therian', 'Excadrill', 'Froslass', 'Gabite', 'Garchomp', 'Gholdengo', 'Gible', 'Glaceon', 'Glastrier', 'Great Tusk', + 'Grimer-Base', 'Hatterene', 'Haxorus', 'Hoopa-Confined', 'Iron Hands', 'Iron Moth', 'Iron Thorns', 'Kingambit', 'Landorus-Therian', 'Medicham', 'Meditite', 'Metagross', + 'Muk-Base', 'Ninetales-Alola', 'Polteageist', 'Porygon-Z', 'Raging Bolt', 'Rampardos', 'Regigigas', 'Rhyperior', 'Roaring Moon', 'Salamence', 'Sandshrew', 'Sandshrew-Alola', + 'Sandslash', 'Sandslash-Alola', 'Skuntank', 'Slaking', 'Slither Wing', 'Stunky', 'Thundurus-Therian', 'Tyranitar', 'Ursaluna', 'Ursaluna-Bloodmoon', 'Vikavolt', 'Volcarona', + 'Vulpix-Alola', 'Yanma', 'Yanmega', + ], + validateSet(set, teamHas) { + let pokemoves = 0; + const problems: string[] = []; + const moves = []; + if (set.moves?.length) { + if (set.moves.length > this.ruleTable.maxMoveCount) { + problems.push(`${set.name} has ${set.moves.length} moves, which is more than the limit of ${this.ruleTable.maxMoveCount}.`); + return problems; + } + for (const [i, moveid] of set.moves.entries()) { + const pokemove = this.dex.species.get(moveid); + if (!pokemove.exists) continue; + if (pokemove.isNonstandard && + !(this.ruleTable.has(`+pokemontag:${this.toID(pokemove.isNonstandard)}`) || + this.ruleTable.has(`+pokemon:${pokemove.id}`) || + this.ruleTable.has(`+basepokemon:${this.toID(pokemove.baseSpecies)}`))) { + problems.push(`${pokemove.isNonstandard} Pok\u00e9mon are not allowed to be used as Pokemoves.`); + } + if (this.ruleTable.isRestrictedSpecies(pokemove) || this.ruleTable.isBannedSpecies(pokemove)) { + problems.push(`${pokemove.name} is unable to be used as a Pokemove.`); + } + pokemoves++; + moves.push(moveid); + set.moves.splice(i, 1); + } + } + const allowedPokemoves = this.ruleTable.valueRules.get('allowedpokemoves') || 1; + if (pokemoves > Number(allowedPokemoves)) { + problems.push( + `${set.species} has ${pokemoves} Pokemoves.`, + `(Pok\u00e9mon can only have ${allowedPokemoves} Pokemove${allowedPokemoves + '' === '1' ? '' : 's'} each.)` + ); + } + if (this.validateSet(set, teamHas)) { + return this.validateSet(set, teamHas); + } + set.moves.push(...moves); + return problems.length ? problems : null; + }, + onBegin() { + for (const pokemon of this.getAllPokemon()) { + for (const move of pokemon.moves) { + const pokemove = this.dex.species.get(move); + if (pokemove.exists) { + pokemon.m.pokemove = pokemove; + const idx = pokemon.moveSlots.findIndex(x => x.id === pokemove.id); + if (idx >= 0) { + pokemon.moveSlots[idx] = pokemon.baseMoveSlots[idx] = { + move: pokemove.name, + id: pokemove.id, + pp: 8, + maxpp: 8, + target: 'normal', + disabled: false, + disabledSource: '', + used: false, + }; + } + } + } + } + }, + onSwitchIn(pokemon) { + if (!pokemon.m.pokemove) return; + const pokemove = pokemon.m.pokemove; + if (!pokemove.exists) return; + // Place volatiles on the Pokémon to show the pokemove. + this.add('-start', pokemon, pokemove.name, '[silent]'); + }, + onModifyMovePriority: 999, + onModifyMove(move, pokemon, target) { + const species = this.dex.species.get(move.id); + if (species.exists) { + move.type = species.types[0]; + move.basePower = Math.max(species.baseStats['atk'], species.baseStats['spa']); + move.accuracy = 100; + move.flags = {}; + move.flags['protect'] = 1; + move.category = species.baseStats['spa'] >= species.baseStats['atk'] ? 'Special' : 'Physical'; + move.onAfterHit = function (t, s, m) { + if (s.getAbility().name === species.abilities['0']) return; + const effect = 'ability:' + this.toID(species.abilities['0']); + if (s.volatiles[effect]) return; + s.addVolatile(effect); + if (s.volatiles[effect]) { + (s.volatiles[effect] as any).id = this.toID(effect); + (s.volatiles[effect] as any).target = s; + } + }; } }, }, { name: "[Gen 9] Pure Hackmons", desc: `Anything directly hackable onto a set (EVs, IVs, forme, ability, item, and move) and is usable in local battles is allowed.`, - threads: [ - `• Pure Hackmons`, - ], - mod: 'gen9', searchShow: false, - ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'], + ruleset: ['Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Hackmons Forme Legality', 'Species Reveal Clause', 'Endless Battle Clause'], }, { - name: "[Gen 9] Shared Power", - desc: `Once a Pokémon switches in, its ability is shared with the rest of the team.`, - threads: [ - `• Shared Power`, - ], - - mod: 'sharedpower', + name: "[Gen 9] Revelationmons", + desc: `The moves in the first slot(s) of a Pokémon's set have their types changed to match the Pokémon's type(s).`, + mod: 'gen9', searchShow: false, - ruleset: ['Standard OMs', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Sleep Moves Clause', 'Min Source Gen = 9'], + ruleset: ['Standard OMs', 'Sleep Clause Mod', 'Revelationmons Mod', 'Terastal Clause'], banlist: [ - 'Chien-Pao', 'Gholdengo', 'Koraidon', 'Komala', 'Miraidon', 'Ting-Lu', 'Arena Trap', 'Armor Tail', 'Contrary', 'Dazzling', 'Drought', - 'Electric Surge', 'Guts', 'Huge Power', 'Imposter', 'Magic Bounce', 'Magnet Pull', 'Mold Breaker', 'Moody', 'Poison Heal', 'Prankster', - 'Pure Power', 'Purifying Salt', 'Queenly Majesty', 'Quick Draw', 'Quick Feet', 'Regenerator', 'Sand Rush', 'Shadow Tag', 'Simple', - 'Slush Rush', 'Speed Boost', 'Stakeout', 'Stench', 'Sturdy', 'Swift Swim', 'Tinted Lens', 'Unaware', 'Unburden', 'Starf Berry', - 'King\'s Rock', 'Baton Pass', + 'Arceus', 'Archaludon', 'Barraskewda', 'Basculegion-M', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', + 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Dragapult', 'Dragonite', 'Enamorus-Incarnate', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', + 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Kommo-o', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', + 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', + 'Palkia-Origin', 'Polteageist', 'Rayquaza', 'Reshiram', 'Roaring Moon', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', + 'Zacian', 'Zacian-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', ], - getSharedPower(pokemon) { - const sharedPower = new Set(); + restricted: ['U-turn', 'Volt Switch'], + }, + { + name: "[Gen 9] Sharing is Caring", + desc: `All Pokémon on a team share their items.`, + mod: 'sharingiscaring', + searchShow: false, + ruleset: ['Standard OMs', 'Evasion Items Clause', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Espathra', + 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', + 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palafin', 'Palkia', + 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Reshiram', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Terapagos', 'Urshifu-Single-Strike', 'Zacian', + 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Scope Lens', 'Shadow Tag', 'Choice Band', 'Choice Scarf', + 'Choice Specs', 'Focus Band', 'Focus Sash', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Revival Blessing', 'Shed Tail', + ], + onValidateRule() { + if (this.format.gameType !== 'singles') { + throw new Error(`Sharing is Caring currently does not support ${this.format.gameType} battles.`); + } + }, + getSharedItems(pokemon) { + const items = new Set(); for (const ally of pokemon.side.pokemon) { - if (ally.previouslySwitchedIn > 0) { - if (pokemon.battle.dex.currentMod !== 'sharedpower' && ['trace', 'mirrorarmor'].includes(ally.baseAbility)) { - sharedPower.add('noability'); - continue; - } - sharedPower.add(ally.baseAbility); - } + if (!ally.item || ally.fainted) continue; + items.add(ally.item); } - sharedPower.delete(pokemon.baseAbility); - return sharedPower; + items.delete(pokemon.item); + return items; }, onBeforeSwitchIn(pokemon) { let format = this.format; - if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); - for (const ability of format.getSharedPower!(pokemon)) { - const effect = 'ability:' + ability; + if (!format.getSharedItems) format = this.dex.formats.get('gen9sharingiscaring'); + if (!pokemon.m.sharedItemsUsed) pokemon.m.sharedItemsUsed = []; + for (const item of format.getSharedItems!(pokemon)) { + if (pokemon.m.sharedItemsUsed.includes(item)) continue; + const effect = 'item:' + item; pokemon.volatiles[effect] = {id: this.toID(effect), target: pokemon}; - if (!pokemon.m.abils) pokemon.m.abils = []; - if (!pokemon.m.abils.includes(effect)) pokemon.m.abils.push(effect); + if (!pokemon.m.items) pokemon.m.items = []; + if (!pokemon.m.items.includes(effect)) pokemon.m.items.push(effect); } }, onSwitchInPriority: 2, onSwitchIn(pokemon) { let format = this.format; - if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); - for (const ability of format.getSharedPower!(pokemon)) { - if (ability === 'noability') { - this.hint(`Mirror Armor and Trace break in Shared Power formats that don't use Shared Power as a base, so they get removed from non-base users.`); - } - const effect = 'ability:' + ability; + if (!format.getSharedItems) format = this.dex.formats.get('gen9sharingiscaring'); + for (const item of format.getSharedItems!(pokemon)) { + if (pokemon.m.sharedItemsUsed.includes(item)) continue; + const effect = 'item:' + item; delete pokemon.volatiles[effect]; pokemon.addVolatile(effect); } @@ -1436,17 +1809,22 @@ export const Formats: FormatList = [ { name: "[Gen 9] Tera Donation", desc: `The first Pokémon sent out immediately terastallizes. The other Pokémon in the party inherit that Tera Type as an additional type.`, - threads: [ - `• Tera Donation`, - ], - mod: 'gen9', searchShow: false, - ruleset: ['Standard OMs', 'Sleep Moves CLause', 'Tera Type Preview', 'Min Source Gen = 9'], + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Tera Type Preview'], banlist: [ - 'Annihilape', 'Chi-Yu', 'Chien-Pao', 'Cyclizar', 'Espathra', 'Flutter Mane', 'Houndstone', 'Iron Bundle', 'Koraidon', - 'Miraidon', 'Palafin', 'Arena Trap', 'Moody', 'Shadow Tag', 'Booster Energy', 'Heat Rock', 'King\'s Rock', 'Baton Pass', - ], + 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Deoxys-Speed', 'Dialga', + 'Dialga-Origin', 'Espathra', 'Eternatus', 'Giratina', 'Giratina-Origin', 'Groudon', 'Flutter Mane', 'Ho-Oh', 'Hoopa-Unbound', 'Iron Bundle', 'Koraidon', + 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', + 'Necrozma-Dusk-Mane', 'Palafin', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', 'Reshiram', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Terapagos', + 'Urshifu', 'Urshifu-Rapid-Strike', 'Volcarona', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', + 'Booster Energy', 'Heat Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + onValidateRule() { + if (this.dex.gen !== 9) { + throw new Error(`Tera Donation is not supported in generations without terastallization.`); + } + }, onSwitchIn(pokemon) { if (this.turn === 0) { this.actions.terastallize(pokemon); @@ -1462,8 +1840,19 @@ export const Formats: FormatList = [ onModifyMove(move, pokemon, target) { if (move.id === 'terablast') { const teraType = pokemon.m.thirdType; - if (teraType && pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) { - move.category = 'Physical'; + move.basePowerCallback = function (p, t, m) { + if ((p.terastallized || teraType) === 'Stellar') { + return 100; + } + return 80; + }; + if (teraType) { + if (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) { + move.category = 'Physical'; + } + if (teraType === "Stellar") { + move.self = {boosts: {atk: -1, spa: -1}}; + } } } }, @@ -1475,31 +1864,163 @@ export const Formats: FormatList = [ } } }, + onPrepareHit(target, source, move) { + if (move.id === 'terablast' && source.m.thirdType) { + this.attrLastMove('[anim] Tera Blast ' + source.m.thirdType); + } + }, + actions: { + modifyDamage(baseDamage, pokemon, target, move, suppressMessages) { + const tr = this.battle.trunc; + if (!move.type) move.type = '???'; + const type = move.type; + + baseDamage += 2; + + if (move.spreadHit) { + // multi-target modifier (doubles only) + const spreadModifier = move.spreadModifier || (this.battle.gameType === 'freeforall' ? 0.5 : 0.75); + this.battle.debug('Spread modifier: ' + spreadModifier); + baseDamage = this.battle.modify(baseDamage, spreadModifier); + } else if (move.multihitType === 'parentalbond' && move.hit > 1) { + // Parental Bond modifier + const bondModifier = this.battle.gen > 6 ? 0.25 : 0.5; + this.battle.debug(`Parental Bond modifier: ${bondModifier}`); + baseDamage = this.battle.modify(baseDamage, bondModifier); + } + + // weather modifier + baseDamage = this.battle.runEvent('WeatherModifyDamage', pokemon, target, move, baseDamage); + + // crit - not a modifier + const isCrit = target.getMoveHitData(move).crit; + if (isCrit) { + baseDamage = tr(baseDamage * (move.critModifier || (this.battle.gen >= 6 ? 1.5 : 2))); + } + + // random factor - also not a modifier + baseDamage = this.battle.randomizer(baseDamage); + + // STAB + // The "???" type never gets STAB + // Not even if you Roost in Gen 4 and somehow manage to use + // Struggle in the same turn. + // (On second thought, it might be easier to get a MissingNo.) + if (type !== '???') { + let stab: number | [number, number] = 1; + + const isSTAB = move.forceSTAB || pokemon.hasType(type) || pokemon.getTypes(false, true).includes(type); + if (isSTAB) { + stab = 1.5; + } + + // The Stellar tera type makes this incredibly confusing + // If the move's type does not match one of the user's base types, + // the Stellar tera type applies a one-time 1.2x damage boost for that type. + // + // If the move's type does match one of the user's base types, + // then the Stellar tera type applies a one-time 2x STAB boost for that type, + // and then goes back to using the regular 1.5x STAB boost for those types. + if ((pokemon.terastallized || pokemon.m.thirdType) === 'Stellar') { + if (!pokemon.stellarBoostedTypes.includes(type)) { + stab = isSTAB ? 2 : [4915, 4096]; + if (pokemon.species.name !== 'Terapagos-Stellar') { + pokemon.stellarBoostedTypes.push(type); + } + } + } else { + if (pokemon.terastallized === type && pokemon.getTypes(false, true).includes(type)) { + stab = 2; + } + stab = this.battle.runEvent('ModifySTAB', pokemon, target, move, stab); + } + + baseDamage = this.battle.modify(baseDamage, stab); + } + + // types + let typeMod = target.runEffectiveness(move); + typeMod = this.battle.clampIntRange(typeMod, -6, 6); + target.getMoveHitData(move).typeMod = typeMod; + if (typeMod > 0) { + if (!suppressMessages) this.battle.add('-supereffective', target); + + for (let i = 0; i < typeMod; i++) { + baseDamage *= 2; + } + } + if (typeMod < 0) { + if (!suppressMessages) this.battle.add('-resisted', target); + + for (let i = 0; i > typeMod; i--) { + baseDamage = tr(baseDamage / 2); + } + } + + if (isCrit && !suppressMessages) this.battle.add('-crit', target); + + if (pokemon.status === 'brn' && move.category === 'Physical' && !pokemon.hasAbility('guts')) { + if (this.battle.gen < 6 || move.id !== 'facade') { + baseDamage = this.battle.modify(baseDamage, 0.5); + } + } + + // Generation 5, but nothing later, sets damage to 1 before the final damage modifiers + if (this.battle.gen === 5 && !baseDamage) baseDamage = 1; + + // Final modifier. Modifiers that modify damage after min damage check, such as Life Orb. + baseDamage = this.battle.runEvent('ModifyDamage', pokemon, target, move, baseDamage); + + if (move.isZOrMaxPowered && target.getMoveHitData(move).zBrokeProtect) { + baseDamage = this.battle.modify(baseDamage, 0.25); + this.battle.add('-zbroken', target); + } + + // Generation 6-7 moves the check for minimum 1 damage after the final modifier... + if (this.battle.gen !== 5 && !baseDamage) return 1; + + // ...but 16-bit truncation happens even later, and can truncate to 0 + return tr(baseDamage, 16); + }, + }, pokemon: { getTypes(excludeAdded, preterastallized) { - if (!preterastallized && this.terastallized) return [this.terastallized]; + if (!preterastallized && this.terastallized && this.terastallized !== 'Stellar') { + return [this.terastallized]; + } const types = this.battle.runEvent('Type', this, null, null, this.types); + if (!types.length) types.push(this.battle.gen >= 5 ? 'Normal' : '???'); if (!excludeAdded && this.addedType) return types.concat(this.addedType); const addTeraType = this.m.thirdType; - if (types.length) { - if (addTeraType) return Array.from(new Set([...types, addTeraType])); - return types; + if (addTeraType) return Array.from(new Set([...types, addTeraType])); + return types; + }, + runEffectiveness(move) { + if ((this.terastallized || this.m.thirdType) && move.type === 'Stellar') return 1; + let totalTypeMod = 0; + for (const type of this.getTypes()) { + let typeMod = this.battle.dex.getEffectiveness(move, type); + typeMod = this.battle.singleEvent('Effectiveness', move, null, this, type, move, typeMod); + totalTypeMod += this.battle.runEvent('Effectiveness', this, type, move, typeMod); } - return [this.battle.gen >= 5 ? 'Normal' : '???']; + return totalTypeMod; }, }, }, { name: "[Gen 9] The Card Game", desc: `The type chart is simplified based off of the Pokémon Trading Card Game.`, - threads: [ - `• The Card Game`, - ], - mod: 'thecardgame', searchShow: false, - ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Min Source Gen = 9'], - banlist: ['Annihilape', 'Baxcalibur', 'Chi-Yu', 'Cyclizar', 'Dragonite', 'Espathra', 'Houndstone', 'Hydreigon', 'Koraidon', 'Miraidon', 'Noivern', 'Palafin', 'Walking Wake', 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass'], + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Abilities Clause', 'Evasion Items Clause', 'Terastal Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', + 'Dragapult', 'Dragonite', 'Dudunsparce', 'Eternatus', 'Garchomp', 'Giratina', 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Haxorus', 'Ho-Oh', 'Hydreigon', + 'Iron Valiant', 'Kommo-o', 'Koraidon', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Latias', 'Latios', 'Lugia', 'Lunala', + 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Noivern', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Palkia-Origin', 'Raging Bolt', + 'Rayquaza', 'Regidrago', 'Regieleki', 'Reshiram', 'Roaring Moon', 'Salamence', 'Shaymin-Sky', 'Solgaleo', 'Ursaluna', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', + 'Walking Wake', 'Zacian', 'Zacian-Crowned', 'Zekrom', 'Arena Trap', 'Moody', 'Shadow Tag', 'Baton Pass', 'Last Respects', 'Shed Tail', + ], onBegin() { for (const pokemon of this.getAllPokemon()) { pokemon.hpType = pokemon.hpType.replace(/(Ghost|Fairy)/g, 'Psychic') @@ -1528,13 +2049,9 @@ export const Formats: FormatList = [ { name: "[Gen 9] The Loser's Game", desc: `The first player to lose all of their Pokémon wins.`, - threads: [ - `• The Loser's Game`, - ], - mod: 'gen9', searchShow: false, - ruleset: ['Standard OMs', 'Sleep Clause Mod', '!OHKO Clause', 'Picked Team Size = 6', 'Adjust Level = 100', 'Min Source Gen = 9'], + ruleset: ['Standard OMs', 'Sleep Clause Mod', '!OHKO Clause', 'Picked Team Size = 6', 'Adjust Level = 100'], banlist: ['Infiltrator', 'Choice Scarf', 'Explosion', 'Final Gambit', 'Healing Wish', 'Lunar Dance', 'Magic Room', 'Memento', 'Misty Explosion', 'Self-Destruct'], onValidateTeam(team) { const familyTable = new Set(); @@ -1614,24 +2131,26 @@ export const Formats: FormatList = [ { name: "[Gen 9] Trademarked", desc: `Sacrifice your Pokémon's ability for a status move that activates on switch-in.`, - threads: [ - `• Trademarked`, - ], - mod: 'trademarked', searchShow: false, - ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Min Source Gen = 9'], - banlist: ['Flutter Mane', 'Koraidon', 'Miraidon', 'Slaking', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', 'Baton Pass', 'Revival Blessing'], + ruleset: ['Standard OMs', 'Sleep Moves Clause'], + banlist: [ + 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', + 'Koraidon', 'Kyogre', 'Landorus-Incarnate', 'Magearna', 'Mewtwo', 'Miraidon', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Slaking', 'Spectrier', + 'Urshifu-Single-Strike', 'Zacian', 'Zacian-Crowned', 'Arena Trap', 'Magnet Pull', 'Moody', 'Shadow Tag', 'Baton Pass', 'Last Respects', + 'Revival Blessing', + ], restricted: [ 'Baneful Bunker', 'Block', 'Chilly Reception', 'Copycat', 'Detect', 'Destiny Bond', 'Encore', 'Fairy Lock', 'Ingrain', 'Instruct', - 'Mean Look', 'move:Metronome', 'Parting Shot', 'Protect', 'Roar', 'Silk Trap', 'Spiky Shield', 'Sleep Talk', 'Shed Tail', 'Shell Smash', - 'Substitute', 'Teleport', 'Trick Room', 'Whirlwind', + 'Mean Look', 'move:Metronome', 'Nasty Plot', 'Parting Shot', 'Protect', 'Roar', 'Silk Trap', 'Spiky Shield', 'Sleep Talk', 'Shed Tail', + 'Shell Smash', 'Substitute', 'Swords Dance', 'Teleport', 'Thunder Wave', 'Trick Room', 'Will-O-Wisp', 'Whirlwind', ], onValidateTeam(team, format, teamHas) { const problems = []; - for (const trademark in teamHas.trademarks) { - if (teamHas.trademarks[trademark] > 1) { - problems.push(`You are limited to 1 of each Trademark.`, `(You have ${teamHas.trademarks[trademark]} Pok\u00e9mon with ${trademark} as a Trademark.)`); + if (!teamHas.trademarks) return; + for (const trademark of teamHas.trademarks.keys()) { + if (teamHas.trademarks.get(trademark) > 1) { + problems.push(`You are limited to 1 of each Trademark.`, `(You have ${teamHas.trademarks.get(trademark)} Pok\u00e9mon with ${trademark} as a Trademark.)`); } } return problems; @@ -1650,47 +2169,301 @@ export const Formats: FormatList = [ if (this.ruleTable.isRestricted(`move:${ability.id}`)) { return [`${ability.name} is restricted from being used as a trademark.`]; } - if (set.moves.map(this.toID).includes(ability.id)) { - return [`${set.name} may not use ${ability.name} as both a trademark and one of its moves simultaneously.`]; + if (set.moves.map(this.toID).includes(ability.id)) { + return [`${set.name} may not use ${ability.name} as both a trademark and one of its moves simultaneously.`]; + } + const customRules = this.format.customRules || []; + if (!customRules.includes('!obtainableabilities')) customRules.push('!obtainableabilities'); + if (!customRules.includes('+noability')) customRules.push('+noability'); + + const TeamValidator: typeof import('../sim/team-validator').TeamValidator = + require('../sim/team-validator').TeamValidator; + + const validator = new TeamValidator(dex.formats.get(`${this.format.id}@@@${customRules.join(',')}`)); + const moves = set.moves; + set.moves = [ability.id]; + set.ability = 'No Ability'; + let problems = validator.validateSet(set, {}) || []; + if (problems.length) return problems; + set.moves = moves; + set.ability = 'No Ability'; + problems = problems.concat(validator.validateSet(set, teamHas) || []); + set.ability = ability.id; + if (!teamHas.trademarks) teamHas.trademarks = new this.dex.Multiset(); + teamHas.trademarks.add(ability.name); + return problems.length ? problems : null; + }, + }, + { + name: "[Gen 9] Triples", + mod: 'gen9', + gameType: 'triples', + searchShow: false, + ruleset: ['Standard Doubles', 'Evasion Abilities Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darkrai', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', + 'Groudon', 'Ho-Oh', 'Indeedee-M', 'Indeedee-F', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', + 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Terapagos', 'Urshifu', 'Urshifu-Rapid-Strike', + 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Moody', 'Shadow Tag', 'Bright Powder', 'King\'s Rock', 'Razor Fang', + ], + }, + { + name: "[Gen 9] Type Split", + desc: `The Physical/Special split is reverted; All non-Status moves are Physical or Special depending on their type, no exceptions.`, + mod: 'gen9', + searchShow: false, + ruleset: ['Standard OMs', 'Sleep Moves Clause', 'Evasion Abilities Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Archaludon', 'Calyrex-Shadow', 'Chi-Yu', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dialga-Origin', 'Espathra', + 'Eternatus', 'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Iron Bundle', 'Koraidon', 'Kyogre', 'Kyurem-White', 'Landorus-Incarnate', + 'Lugia', 'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Regieleki', + 'Reshiram', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Terapagos', 'Volcarona', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Arena Trap', 'Moody', 'Shadow Tag', + 'Bright Powder', 'Damp Rock', 'King\'s Rock', 'Razor Fang', 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + onModifyMovePriority: -1000, + onModifyMove(move, pokemon, target) { + if (move.category === 'Status') return; + const specialTypes = ['Dark', 'Dragon', 'Electric', 'Fairy', 'Fire', 'Grass', 'Ice', 'Psychic', 'Water']; + if (specialTypes.includes(move.type)) { + move.category = 'Special'; + } else if (move.type === 'Stellar') { + move.category = pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true) ? 'Physical' : 'Special'; + } else { + move.category = 'Physical'; + } + }, + }, + { + name: "[Gen 6] Pure Hackmons", + desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`, + mod: 'gen6', + searchShow: false, + ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', 'EV limit = 510'], + }, + + // National Dex + /////////////////////////////////////////////////////////////////// + + { + section: "National Dex", + }, + { + name: "[Gen 9] National Dex", + mod: 'gen9', + ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Sleep Clause Mod', 'Terastal Clause'], + banlist: [ + 'ND Uber', 'ND AG', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock', + 'Quick Claw', 'Razor Fang', 'Assist', 'Baton Pass', 'Last Respects', 'Shed Tail', + ], + }, + { + name: "[Gen 8] National Dex", + mod: 'gen8', + ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'], + banlist: ['ND Uber', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Quick Claw', 'Baton Pass'], + }, + + // National Dex Other Tiers + /////////////////////////////////////////////////////////////////// + + { + section: "National Dex Other Tiers", + }, + { + name: "[Gen 9] National Dex 35 Pokes", + desc: `Only 35 Pokémon are legal.`, + mod: 'gen9', + searchShow: false, + ruleset: [ + 'Standard NatDex', 'OHKO Clause', 'Evasion Clause', 'DryPass Clause', + 'Sleep Clause Mod', 'Forme Clause', 'Z-Move Clause', 'Terastal Clause', 'Mega Rayquaza Clause', + ], + banlist: [ + 'ND Uber', 'ND AG', 'ND OU', 'ND UUBL', 'ND UU', 'ND RUBL', 'ND RU', 'ND NFE', 'ND LC', + 'Battle Bond', 'Moody', 'Shadow Tag', 'Berserk Gene', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Acupressure', 'Last Respects', + ], + unbanlist: [ + 'Appletun', 'Aurorus', 'Avalugg-Base', 'Banette-Base', 'Cacturne', 'Carracosta', 'Celebi', 'Cetitan', 'Chandelure', 'Cryogonal', 'Dipplin', + 'Garbodor', 'Golem-Alola', 'Guzzlord', 'Jumpluff', 'Luvdisc', 'Magmortar', 'Mawile-Base', 'Milotic', 'Morpeko', 'Pachirisu', 'Perrserker', + 'Primarina', 'Pupitar', 'Pyukumuku', 'Ribombee', 'Roserade', 'Rotom-Frost', 'Scovillain', 'Toxicroak', 'Walrein', 'Wo-Chien', 'Wugtrio', + 'Yanmega', 'Zoroark-Base', + ], + // Stupid hardcode + onValidateSet(set, format, setHas, teamHas) { + if (set.item) { + const item = this.dex.items.get(set.item); + if (item.megaEvolves && !(this.ruleTable.has(`+item:${item.id}`) || this.ruleTable.has(`+pokemontag:mega`))) { + return [`Mega Evolution is banned.`]; + } + } + const species = this.dex.species.get(set.species); + if (set.moves.map(x => this.toID(this.dex.moves.get(x).realMove) || x).includes('hiddenpower') && + species.baseSpecies !== 'Unown' && !this.ruleTable.has(`+move:hiddenpower`)) { + return [`Hidden Power is banned.`]; + } + }, + }, + { + name: "[Gen 9] National Dex Ubers", + mod: 'gen9', + ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Evasion Items Clause', 'Species Clause', 'Sleep Clause Mod', 'Mega Rayquaza Clause'], + banlist: ['ND AG', 'Shedinja', 'Assist', 'Baton Pass'], + }, + { + name: "[Gen 9] National Dex UU", + mod: 'gen9', + ruleset: ['[Gen 9] National Dex'], + banlist: ['ND OU', 'ND UUBL', 'Drizzle', 'Drought', 'Light Clay'], + }, + { + name: "[Gen 9] National Dex RU", + mod: 'gen9', + searchShow: false, + ruleset: ['[Gen 9] National Dex UU'], + banlist: ['ND UU', 'ND RUBL', 'Slowbro-Base + Slowbronite'], + }, + { + name: "[Gen 9] National Dex LC", + mod: 'gen9', + searchShow: false, + ruleset: ['Standard NatDex', 'Little Cup', 'Species Clause', 'OHKO Clause', 'Evasion Clause', 'Sleep Clause Mod'], + banlist: [ + 'Aipom', 'Basculin-White-Striped', 'Clamperl', 'Corsola-Galar', 'Cutiefly', 'Drifloon', 'Dunsparce', 'Duraludon', 'Flittle', 'Girafarig', + 'Gligar', 'Meditite', 'Misdreavus', 'Murkrow', 'Porygon', 'Qwilfish-Hisui', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Sneasel-Hisui', + 'Stantler', 'Swirlix', 'Tangela', 'Vulpix-Alola', 'Woobat', 'Yanma', 'Zigzagoon-Base', 'Chlorophyll', 'Moody', 'Eevium Z', 'King\'s Rock', + 'Quick Claw', 'Razor Fang', 'Assist', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Sticky Web', + ], + }, + { + name: "[Gen 9] National Dex Monotype", + mod: 'gen9', + ruleset: ['Standard NatDex', 'Same Type Clause', 'Terastal Clause', 'Species Clause', 'OHKO Clause', 'Evasion Clause', 'Sleep Clause Mod'], + banlist: [ + 'Annihilape', 'Arceus', 'Baxcalibur', 'Blastoise-Mega', 'Blaziken', 'Blaziken-Mega', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', 'Darkrai', + 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dracovish', 'Dragapult', 'Espathra', 'Eternatus', 'Flutter Mane', 'Genesect', 'Gengar-Mega', 'Giratina', + 'Giratina-Origin', 'Gouging Fire', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Iron Bundle', 'Kangaskhan-Mega', 'Kartana', 'Kingambit', 'Koraidon', 'Kyogre', + 'Kyurem-Black', 'Kyurem-White', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', + 'Miraidon', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Ogerpon-Hearthflame', 'Palafin', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', + 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', + 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-50%', 'Zygarde-Complete', 'Moody', 'Shadow Tag', 'Power Construct', 'Booster Energy', 'Damp Rock', + 'Focus Band', 'Icy Rock', 'King\'s Rock', 'Leppa Berry', 'Quick Claw', 'Razor Fang', 'Smooth Rock', 'Terrain Extender', 'Acupressure', 'Baton Pass', + 'Last Respects', 'Shed Tail', + ], + }, + { + name: "[Gen 9] National Dex Doubles", + mod: 'gen9', + gameType: 'doubles', + ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Evasion Abilities Clause', 'Species Clause', 'Gravity Sleep Clause'], + banlist: [ + 'Annihilape', 'Arceus', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dialga-Origin', 'Eternatus', 'Genesect', 'Gengar-Mega', 'Giratina', 'Giratina-Origin', + 'Groudon', 'Ho-Oh', 'Koraidon', 'Kyogre', 'Kyurem-White', 'Lugia', 'Lunala', 'Magearna', 'Melmetal', 'Metagross-Mega', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn-Wings', + 'Necrozma-Dusk-Mane', 'Necrozma-Ultra', 'Palkia', 'Palkia-Origin', 'Rayquaza', 'Reshiram', 'Shedinja', 'Solgaleo', 'Terapagos', 'Urshifu', 'Urshifu-Rapid-Strike', + 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-50%', 'Zygarde-Complete', 'Commander', 'Power Construct', + 'Eevium Z', 'Assist', 'Coaching', 'Dark Void', 'Swagger', + ], + }, + { + name: "[Gen 9] National Dex Doubles Ubers", + mod: 'gen9', + gameType: 'doubles', + searchShow: false, + ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Moves Clause', 'Species Clause'], + banlist: ['Shedinja', 'Assist'], + }, + { + name: "[Gen 9] National Dex Ubers UU", + mod: 'gen9', + // searchShow: false, + ruleset: ['[Gen 9] National Dex Ubers'], + banlist: [ + 'Arceus-Normal', 'Arceus-Dark', 'Arceus-Ground', 'Calyrex-Ice', 'Chansey', 'Deoxys-Attack', 'Deoxys-Speed', 'Ditto', 'Dondozo', 'Eternatus', 'Glimmora', + 'Groudon-Primal', 'Hatterene', 'Ho-Oh', 'Kyogre-Primal', 'Lugia', 'Lunala', 'Marshadow', 'Melmetal', 'Mewtwo-Mega-Y', 'Necrozma-Dusk-Mane', 'Necrozma-Ultra', + 'Salamence-Mega', 'Smeargle', 'Yveltal', 'Zacian-Crowned', 'Zygarde-50%', + // UUBL + 'Arceus-Dragon', 'Arceus-Fairy', 'Arceus-Fire', 'Arceus-Ghost', 'Arceus-Water', 'Blaziken-Mega', 'Chi-Yu', 'Flutter Mane', 'Kyogre', 'Kyurem-Black', 'Rayquaza', + 'Shaymin-Sky', 'Zacian', 'Zekrom', 'Power Construct', 'Light Clay', 'Ultranecrozium Z', 'Last Respects', + ], + }, + { + name: "[Gen 9] National Dex AG", + mod: 'gen9', + searchShow: false, + ruleset: ['Standard NatDex'], + }, + { + name: "[Gen 9] National Dex BH", + desc: `Balanced Hackmons with National Dex elements mixed in.`, + mod: 'gen9', + searchShow: false, + ruleset: ['-Nonexistent', 'Standard NatDex', 'Forme Clause', 'Sleep Moves Clause', 'Ability Clause = 2', 'OHKO Clause', 'Evasion Moves Clause', 'Dynamax Clause', 'CFZ Clause', 'Terastal Clause', '!Obtainable'], + banlist: [ + 'Cramorant-Gorging', 'Calyrex-Shadow', 'Darmanitan-Galar-Zen', 'Eternatus-Eternamax', 'Greninja-Ash', 'Groudon-Primal', 'Rayquaza-Mega', 'Shedinja', 'Terapagos-Stellar', 'Arena Trap', + 'Contrary', 'Gorilla Tactics', 'Hadron Engine', 'Huge Power', 'Illusion', 'Innards Out', 'Magnet Pull', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Pure Power', 'Shadow Tag', 'Stakeout', + 'Water Bubble', 'Wonder Guard', 'Gengarite', 'Berserk Gene', 'Belly Drum', 'Bolt Beak', 'Ceaseless Edge', 'Chatter', 'Double Iron Bash', 'Electrify', 'Last Respects', 'Octolock', 'Rage Fist', + 'Revival Blessing', 'Shed Tail', 'Shell Smash', 'Comatose + Sleep Talk', 'Imprison + Transform', + ], + restricted: ['Arceus'], + onValidateTeam(team, format) { + // baseSpecies:count + const restrictedPokemonCount = new this.dex.Multiset(); + for (const set of team) { + const species = this.dex.species.get(set.species); + if (!this.ruleTable.isRestrictedSpecies(species)) continue; + restrictedPokemonCount.add(species.baseSpecies); + } + for (const [baseSpecies, count] of restrictedPokemonCount) { + if (count > 1) { + return [ + `You are limited to one ${baseSpecies} forme.`, + `(You have ${count} ${baseSpecies} forme${count === 1 ? '' : 's'}.)`, + ]; + } } - const customRules = this.format.customRules || []; - if (!customRules.includes('!obtainableabilities')) customRules.push('!obtainableabilities'); - if (!customRules.includes('+noability')) customRules.push('+noability'); - - const TeamValidator: typeof import('../sim/team-validator').TeamValidator = - require('../sim/team-validator').TeamValidator; - - const validator = new TeamValidator(dex.formats.get(`${this.format.id}@@@${customRules.join(',')}`)); - const moves = set.moves; - set.moves = [ability.id]; - set.ability = 'No Ability'; - let problems = validator.validateSet(set, {}) || []; - if (problems.length) return problems; - set.moves = moves; - set.ability = 'No Ability'; - problems = problems.concat(validator.validateSet(set, teamHas) || []); - set.ability = ability.id; - if (!teamHas.trademarks) teamHas.trademarks = {}; - teamHas.trademarks[ability.name] = (teamHas.trademarks[ability.name] || 0) + 1; - return problems.length ? problems : null; }, }, - - // Retro Other Metagames - /////////////////////////////////////////////////////////////////// { - section: "Retro Other Metagames", - column: 2, + name: "[Gen 9] National Dex STABmons", + mod: 'gen9', + searchShow: false, + ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'STABmons Move Legality', 'Sleep Moves Clause', 'Terastal Clause'], + banlist: [ + 'Araquanid', 'Arceus', 'Azumarill', 'Baxcalibur', 'Blastoise-Mega', 'Blaziken-Mega', 'Basculegion', 'Basculegion-F', 'Calyrex-Ice', 'Calyrex-Shadow', 'Chi-Yu', 'Chien-Pao', + 'Cloyster', 'Darkrai', 'Darmanitan-Galar', 'Deoxys-Attack', 'Deoxys-Normal', 'Dialga', 'Dialga-Origin', 'Dracovish', 'Dragapult', 'Dragonite', 'Enamorus-Incarnate', 'Espathra', + 'Eternatus', 'Flutter Mane', 'Garchomp', 'Gengar-Mega', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Gouging Fire', 'Ho-Oh', 'Iron Bundle', 'Kangaskhan-Mega', + 'Kartana', 'Koraidon', 'Komala', 'Kyogre', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lilligant-Hisui', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna', + 'Manaphy', 'Marshadow', 'Metagross-Mega', 'Mewtwo', 'Miraidon', 'Naganadel', 'Necrozma-Dusk-Mane', 'Necrozma-Dawn-Wings', 'Ogerpon-Hearthflame', 'Ogerpon-Wellspring', 'Palkia', + 'Palkia-Origin', 'Porygon-Z', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Silvally', 'Solgaleo', 'Spectrier', 'Tapu Koko', 'Tapu Lele', 'Terapagos', + 'Ursaluna-Bloodmoon', 'Urshifu-Single-Strike', 'Walking Wake', 'Xerneas', 'Xurkitree', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta-Crowned', 'Zekrom', 'Zoroark-Hisui', + 'Zygarde-50%', 'Arena Trap', 'Moody', 'Shadow Tag', 'Power Construct', 'Damp Rock', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Assist', 'Baton Pass', 'Last Respects', + 'Shed Tail', 'Wicked Blow', 'Wicked Torque', + ], + restricted: [ + 'Acupressure', 'Astral Barrage', 'Belly Drum', 'Bolt Beak', 'Chatter', 'Clangorous Soul', 'Dire Claw', 'Double Iron Bash', 'Dragon Energy', 'Electrify', 'Extreme Speed', + 'Fillet Away', 'Final Gambit', 'Fishious Rend', 'Geomancy', 'Gigaton Hammer', 'No Retreat', 'Rage Fist', 'Revival Blessing', 'Shell Smash', 'Shift Gear', 'Thousand Arrows', + 'Trick-or-Treat', 'Triple Arrows', 'V-create', 'Victory Dance', + ], }, { - name: "[Gen 6] Pure Hackmons", - desc: `Anything that can be hacked in-game and is usable in local battles is allowed.`, - threads: [ - `• ORAS Pure Hackmons`, + name: "[Gen 8] National Dex UU", + mod: 'gen8', + searchShow: false, + ruleset: ['[Gen 8] National Dex'], + banlist: ['ND OU', 'ND UUBL', 'Drizzle', 'Drought', 'Light Clay', 'Slowbronite'], + }, + { + name: "[Gen 8] National Dex Monotype", + mod: 'gen8', + searchShow: false, + ruleset: ['Standard NatDex', 'Same Type Clause', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Evasion Items Clause', 'Dynamax Clause', 'Sleep Clause Mod'], + banlist: [ + 'Arceus', 'Blastoise-Mega', 'Blaziken', 'Blaziken-Mega', 'Calyrex-Ice', 'Calyrex-Shadow', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Dracovish', 'Dragapult', + 'Eternatus', 'Genesect', 'Gengar-Mega', 'Giratina', 'Giratina-Origin', 'Greninja-Bond', 'Greninja-Ash', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kartana', + 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Moltres-Galar', + 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Spectrier', + 'Urshifu-Single-Strike', 'Xerneas', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-50%', 'Zygarde-Complete', 'Battle Bond', + 'Power Construct', 'Moody', 'Shadow Tag', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Smooth Rock', 'Terrain Extender', 'Baton Pass', ], - - mod: 'gen6', - ruleset: ['-Nonexistent', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', 'EV limit = 510'], }, // Randomized Format Spotlight @@ -1701,119 +2474,12 @@ export const Formats: FormatList = [ column: 3, }, { - name: "[Gen 9] Broken Cup", - desc: `[Gen 9] Hackmons Cup but with only the most powerful Pokemon, moves, Abilities, and items.`, - - team: 'randomHC', - ruleset: ['[Gen 9] Hackmons Cup'], - banlist: ['All Pokemon', 'All Abilities', 'All Items', 'All Moves'], - unbanlist: [ - "10,000,000 Volt Thunderbolt", "Abomasnow-Mega", "Absol-Mega", "Accelerock", "Acid Spray", "Adaptability", - "Aeroblast", "Aerodactyl-Mega", "Aggron", "Aggron-Mega", "Aguav Berry", "Air Balloon", "Air Slash", "Alakazam-Mega", - "Altaria-Mega", "Ampharos-Mega", "Analytic", "Anchor Shot", "Anger Shell", "Annihilape", "Anticipation", "Apple Acid", - "Aqua Step", "Arcanine", "Arcanine-Hisui", "Archeops", "Arena Trap", "Armarouge", "Armor Cannon", "Aromatherapy", - "Articuno", "Articuno-Galar", "Assault Vest", "Astral Barrage", "Attack Order", "Audino-Mega", "Aura Sphere", - "Axe Kick", "Azelf", "Baddy Bad", "Baneful Bunker", "Banette-Mega", "Barb Barrage", "Basculegion", "Basculegion-F", - "Baton Pass", "Baxcalibur", "Beads of Ruin", "Beak Blast", "Beast Boost", "Behemoth Bash", "Behemoth Blade", - "Belly Drum", "Berserk", "Bitter Blade", "Bitter Malice", "Blacephalon", "Blastoise", "Blastoise-Mega", "Blaziken", - "Blaziken-Mega", "Blazing Torque", "Bleakwind Storm", "Blissey", "Blizzard", "Blue Flare", "Blunder Policy", - "Body Press", "Body Slam", "Bolt Beak", "Bolt Strike", "Boomburst", "Bouncy Bubble", "Brave Bird", "Bright Powder", - "Brute Bonnet", "Bug Buzz", "Buginium Z", "Bullet Punch", "Buzzwole", "Buzzy Buzz", "Calm Mind", "Calyrex-Ice", - "Calyrex-Shadow", "Camerupt-Mega", "Catastropika", "Ceaseless Edge", "Celebi", "Celesteela", "Centiskorch", - "Ceruledge", "Charizard", "Charizard-Mega-X", "Charizard-Mega-Y", "Chatter", "Chesnaught", "Chesto Berry", "Chi-Yu", - "Chien-Pao", "Chilan Berry", "Chilly Reception", "Choice Band", "Choice Scarf", "Choice Specs", "Cinderace", - "Circle Throw", "Clanging Scales", "Clangorous Soul", "Clangorous Soulblaze", "Clear Amulet", "Close Combat", - "Cloyster", "Cobalion", "Coil", "Collision Course", "Comatose", "Combat Torque", "Competitive", "Compound Eyes", - "Contrary", "Core Enforcer", "Cosmic Power", "Cotton Guard", "Court Change", "Covert Cloak", "Crabhammer", - "Cresselia", "Crobat", "Custap Berry", "Dark Pulse", "Darkest Lariat", "Darkinium Z", "Darkrai", "Darmanitan-Galar-Zen", - "Darmanitan-Zen", "Decidueye", "Decidueye-Hisui", "Defend Order", "Defiant", "Defog", "Delphox", "Deoxys", - "Deoxys-Attack", "Deoxys-Defense", "Deoxys-Speed", "Desolate Land", "Dialga", "Dialga-Origin", "Diamond Storm", - "Diancie", "Diancie-Mega", "Dire Claw", "Disable", "Discharge", "Dondozo", "Doom Desire", "Double Iron Bash", - "Download", "Draco Meteor", "Draco Plate", "Dragapult", "Dragon Ascent", "Dragon Dance", "Dragon Darts", - "Dragon Energy", "Dragon Hammer", "Dragon Pulse", "Dragon Tail", "Dragonite", "Dragonium Z", "Drain Punch", - "Dread Plate", "Drill Peck", "Drizzle", "Drought", "Drum Beating", "Dry Skin", "Duraludon", "Dusknoir", - "Dynamax Cannon", "Earth Eater", "Earth Plate", "Earth Power", "Earthquake", "Eerie Spell", "Effect Spore", - "Eject Pack", "Electivire", "Electric Surge", "Electrium Z", "Electro Drift", "Emboar", "Empoleon", "Enamorus", - "Enamorus-Therian", "Encore", "Energy Ball", "Entei", "Eruption", "Espeon", "Esper Wing", "Eternatus", - "Eternatus-Eternamax", "Exeggutor", "Exeggutor-Alola", "Expanding Force", "Expert Belt", "Explosion", - "Extreme Evoboost", "Extreme Speed", "Fairium Z", "Fake Out", "Feraligatr", "Fiery Wrath", "Fightinium Z", - "Figy Berry", "Filter", "Fire Blast", "Fire Lash", "Firium Z", "First Impression", "Fishious Rend", "Fist Plate", - "Flame Body", "Flame Charge", "Flame Plate", "Flamethrower", "Flare Blitz", "Flareon", "Flash Cannon", "Fleur Cannon", - "Flip Turn", "Floaty Fall", "Florges", "Flower Trick", "Fluffy", "Flutter Mane", "Flyinium Z", "Focus Blast", - "Focus Sash", "Forewarn", "Foul Play", "Freeze-Dry", "Freezing Glare", "Freezy Frost", "Frost Breath", "Fur Coat", - "Fusion Bolt", "Fusion Flare", "Future Sight", "G-Max Cannonade", "G-Max Centiferno", "G-Max Resonance", "G-Max Steelsurge", - "G-Max Stonesurge", "G-Max Sweetness", "G-Max Vine Lash", "G-Max Volcalith", "G-Max Wildfire", "G-Max Wind Rage", - "Gallade-Mega", "Garchomp", "Garchomp-Mega", "Gardevoir-Mega", "Gear Grind", "Genesect", "Genesis Supernova", - "Gengar-Mega", "Gholdengo", "Ghostium Z", "Giga Drain", "Gigaton Hammer", "Giratina", "Giratina-Origin", - "Glaceon", "Glacial Lance", "Glaive Rush", "Glalie-Mega", "Glare", "Glastrier", "Glimmora", "Glitzy Glow", "Gogoat", - "Golisopod", "Good as Gold", "Goodra", "Goodra-Hisui", "Gooey", "Gorilla Tactics", "Grassium Z", "Grassy Surge", - "Grav Apple", "Great Tusk", "Greninja", "Greninja-Ash", "Groudon", "Groudon-Primal", "Groundium Z", - "Guardian of Alola", "Gunk Shot", "Guzzlord", "Gyarados", "Gyarados-Mega", "Hadron Engine", "Hammer Arm", "Haxorus", - "Haze", "Head Charge", "Head Smash", "Headlong Rush", "Heal Bell", "Heal Order", "Healing Wish", "Heart Swap", - "Heat Crash", "Heat Wave", "Heatran", "Heavy-Duty Boots", "Heracross-Mega", "High Horsepower", "High Jump Kick", - "Hippowdon", "Ho-Oh", "Hoopa", "Hoopa-Unbound", "Horn Leech", "Houndoom-Mega", "Huge Power", "Hurricane", "Hydreigon", - "Hydro Steam", "Hyper Drill", "Iapapa Berry", "Ice Beam", "Ice Hammer", "Ice Scales", "Ice Shard", "Ice Spinner", - "Icicle Plate", "Icium Z", "Illusion", "Imposter", "Incineroar", "Infernape", "Innards Out", "Insect Plate", - "Inteleon", "Intimidate", "Intrepid Sword", "Iron Barbs", "Iron Bundle", "Iron Hands", "Iron Head", "Iron Jugulis", - "Iron Leaves", "Iron Moth", "Iron Plate", "Iron Thorns", "Iron Treads", "Iron Valiant", "Jet Punch", "Jirachi", - "Jolteon", "Judgment", "Kangaskhan-Mega", "Kartana", "Keldeo", "Keldeo-Resolute", "King's Rock", "King's Shield", - "Kingambit", "Kingdra", "Knock Off", "Kommo-o", "Koraidon", "Kyogre", "Kyogre-Primal", "Kyurem", "Kyurem-Black", - "Kyurem-White", "Landorus", "Landorus-Therian", "Lapras", "Last Respects", "Latias", "Latias-Mega", "Latios", - "Latios-Mega", "Lava Plume", "Leaf Blade", "Leaf Storm", "Leafeon", "Leech Life", "Leech Seed", "Leftovers", - "Leppa Berry", "Let's Snuggle Forever", "Levitate", "Libero", "Liechi Berry", "Life Orb", "Light Screen", - "Light That Burns the Sky", "Light of Ruin", "Lightning Rod", "Liquidation", "Lopunny-Mega", "Lovely Kiss", - "Low Kick", "Lucario", "Lucario-Mega", "Lugia", "Lum Berry", "Lumina Crash", "Lunala", "Lunar Blessing", - "Lunar Dance", "Lunge", "Mach Punch", "Magearna", "Magic Bounce", "Magic Guard", "Magical Torque", "Magma Storm", - "Magmortar", "Magnezone", "Mago Berry", "Make It Rain", "Malicious Moonsault", "Mamoswine", "Manaphy", - "Manectric-Mega", "Marshadow", "Max Guard", "Meadow Plate", "Megahorn", "Meganium", "Melmetal", "Meloetta", - "Meloetta-Pirouette", "Memento", "Menacing Moonraze Maelstrom", "Mental Herb", "Meowscarada", "Mesprit", "Metagross", - "Metagross-Mega", "Meteor Beam", "Meteor Mash", "item: Metronome", "Mew", "Mewtwo", "Mewtwo-Mega-X", "Mewtwo-Mega-Y", - "Milk Drink", "Milotic", "Mind Plate", "Minimize", "Miraidon", "Mirror Herb", "Misty Explosion", "Misty Surge", - "Mold Breaker", "Moltres", "Moltres-Galar", "Moody", "Moonblast", "Moongeist Beam", "Moonlight", "Morning Sun", - "Mortal Spin", "Mountain Gale", "Moxie", "Multiscale", "Muscle Band", "Mystical Fire", "Mystical Power", "Naganadel", - "Nasty Plot", "Nature's Madness", "Necrozma", "Necrozma-Dawn-Wings", "Necrozma-Dusk-Mane", "Necrozma-Ultra", - "Neutralizing Gas", "Night Daze", "Night Shade", "Nihilego", "No Retreat", "Noivern", "Normalium Z", "Noxious Torque", - "Nuzzle", "Oblivion Wing", "Obstruct", "Oceanic Operetta", "Octolock", "Opportunist", "Orichalcum Pulse", - "Origin Pulse", "Outrage", "Overdrive", "Overheat", "Palafin-Hero", "Palkia", "Palkia-Origin", "Parental Bond", - "Parting Shot", "Perish Body", "Petaya Berry", "Pheromosa", "Photon Geyser", "Pidgeot-Mega", "Pinsir-Mega", - "Pixie Plate", "Plasma Fists", "Play Rough", "Poison Heal", "Poisonium Z", "Pollen Puff", "Poltergeist", - "Population Bomb", "Porygon-Z", "Power Gem", "Power Trip", "Power Whip", "Prankster", "Precipice Blades", "Primarina", - "Primordial Sea", "Probopass", "Protean", "Protect", "Psyblade", "Psychic Fangs", "Psychic Surge", "Psychic", - "Psychium Z", "Psycho Boost", "Psyshield Bash", "Psystrike", "Pulverizing Pancake", "Pure Power", "Purifying Salt", - "Pursuit", "Pyro Ball", "Quaquaval", "Quick Claw", "Quiver Dance", "Rage Fist", "Raging Bull", "Raging Fury", "Raikou", - "Rapid Spin", "Rayquaza", "Rayquaza-Mega", "Razor Claw", "Recover", "Red Card", "Reflect", "Regenerator", "Regice", - "Regidrago", "Regieleki", "Regigigas", "Regirock", "Registeel", "Reshiram", "Rest", "Revelation Dance", - "Revival Blessing", "Rhyperior", "Rillaboom", "Roaring Moon", "Rockium Z", "Rocky Helmet", "Roost", "Rough Skin", - "Ruination", "Sacred Fire", "Sacred Sword", "Salac Berry", "Salamence", "Salamence-Mega", "Salt Cure", "Samurott", - "Samurott-Hisui", "Sandsear Storm", "Sandy Shocks", "Sap Sipper", "Sappy Seed", "Scald", "Sceptile", "Sceptile-Mega", - "Scizor-Mega", "Scope Lens", "Scream Tail", "Searing Shot", "Searing Sunraze Smash", "Secret Sword", "Seed Flare", - "Seismic Toss", "Serene Grace", "Serperior", "Shadow Ball", "Shadow Bone", "Shadow Shield", "Shadow Sneak", - "Shadow Tag", "Sharpedo-Mega", "Shaymin", "Shaymin-Sky", "Shed Tail", "Sheer Force", "Shell Side Arm", - "Shell Smash", "Shield Dust", "Shift Gear", "Silk Scarf", "Silk Trap", "Silvally", "Simple", "Sinister Arrow Raid", - "Sitrus Berry", "Sizzly Slide", "Skeledirge", "Sky Plate", "Slack Off", "Slaking", "Sleep Powder", "Slither Wing", - "Slowbro-Mega", "Sludge Bomb", "Sludge Wave", "Snarl", "Snipe Shot", "Snorlax", "Soft-Boiled", "Solgaleo", - "Solid Rock", "Soul-Heart", "Soul-Stealing 7-Star Strike", "Spacial Rend", "Sparkly Swirl", "Spectral Thief", - "Spectrier", "Speed Boost", "Spikes", "Spiky Shield", "Spin Out", "Spirit Break", "Spirit Shackle", "Splash Plate", - "Splintered Stormshards", "Splishy Splash", "Spooky Plate", "Spore", "Springtide Storm", "Stakataka", "Stakeout", - "Stamina", "Stealth Rock", "Steam Eruption", "Steelium Z", "Steelix-Mega", "Sticky Web", "Stoked Sparksurfer", - "Stone Axe", "Stone Edge", "Stone Plate", "Stored Power", "Storm Drain", "Storm Throw", "Strange Steam", - "Strength Sap", "Sucker Punch", "Suicune", "Sunsteel Strike", "Super Fang", "Superpower", "Supreme Overlord", "Surf", - "Surging Strikes", "Swampert", "Swampert-Mega", "Sword of Ruin", "Swords Dance", "Sylveon", "Synthesis", - "Tablets of Ruin", "Tail Glow", "Tangrowth", "Tapu Bulu", "Tapu Fini", "Tapu Koko", "Tapu Lele", "Taunt", - "Techno Blast", "Teleport", "Tera Blast", "Teravolt", "Terrakion", "Thick Fat", "Thousand Arrows", "Thousand Waves", - "Throat Spray", "Thunder Cage", "Thunder Wave", "Thunder", "Thunderbolt", "Thunderous Kick", "Thundurus", "Thundurus-Therian", - "Tidy Up", "Ting-Lu", "Tinted Lens", "Togekiss", "Topsy-Turvy", "Torch Song", "Tornadus", "Tornadus-Therian", "Torterra", - "Tough Claws", "Toxic Debris", "Toxic Plate", "Toxic Spikes", "Toxic", "Tri Attack", "Triage", "Triple Arrows", - "Triple Axel", "Turboblaze", "Type: Null", "Typhlosion", "Typhlosion-Hisui", "Tyranitar", "Tyranitar-Mega", "U-turn", - "Umbreon", "Unaware", "Unburden", "Ursaluna", "Urshifu", "Urshifu-Rapid-Strike", "Uxie", "V-create", "Vanilluxe", - "Vaporeon", "Venusaur", "Venusaur-Mega", "Vessel of Ruin", "Victini", "Victory Dance", "Virizion", "Volcanion", - "Volcarona", "Volt Absorb", "Volt Switch", "Volt Tackle", "Walking Wake", "Walrein", "Water Absorb", "Water Bubble", - "Water Shuriken", "Water Spout", "Waterfall", "Waterium Z", "Wave Crash", "Weakness Policy", "Well-Baked Body", - "White Herb", "Wicked Blow", "Wicked Torque", "Wide Lens", "Wiki Berry", "Wild Charge", "Wildbolt Storm", - "Will-O-Wisp", "Wise Glasses", "Wish", "Wishiwashi-School", "Wo-Chien", "Wonder Guard", "Wood Hammer", "Wyrdeer", - "Xerneas", "Xurkitree", "Yawn", "Yveltal", "Zacian", "Zacian-Crowned", "Zamazenta", "Zamazenta-Crowned", "Zap Plate", - "Zapdos", "Zapdos-Galar", "Zarude", "Zekrom", "Zeraora", "Zing Zap", "Zippy Zap", "Zygarde", "Zygarde-Complete", - ], + name: "[Gen 6] Triples Challenge Cup", + desc: `Get a randomized team of level-balanced Pokémon with absolutely any legal ability, moves, and item, and battle in a triples format.`, + mod: 'gen6', + team: 'randomCC', + gameType: 'triples', + ruleset: ['Obtainable', 'HP Percentage Mod', 'Cancel Mod'], }, // Randomized Metas @@ -1824,19 +2490,81 @@ export const Formats: FormatList = [ column: 3, }, { - name: "[Gen 9] Monotype Random Battle", + name: "[Gen 9] Random Roulette", + desc: `Random Battles in a random generation! [Gen 1] Random Battle - [Gen 9] Random Battle.`, + mod: 'randomroulette', + team: 'random', + }, + { + name: "[Gen 9] Super Staff Bros Ultimate", + desc: "The fifth iteration of Super Staff Bros is here! Battle with a random team of pokemon created by the sim staff.", + mod: 'gen9ssb', + debug: true, + team: 'randomStaffBros', + ruleset: ['HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + onBegin() { + // TODO look into making an event to put this right after turn|1 + // https://discordapp.com/channels/630837856075513856/630845310033330206/716126469528485909 + // Requires client change + this.add(`raw|
Wondering what all these custom moves, abilities, and items do?
Check out the Super Staff Bros: Ultimate Guide or use /ssb to find out!
`); + if (this.ruleTable.has('dynamaxclause')) { + // Old joke format we're bringing back + this.add('message', 'Fox only'); + this.add('message', 'No items'); + this.add('message', 'Final Destination'); + return; + } + this.add('message', 'EVERYONE IS HERE!'); + this.add('message', 'FIGHT!'); + }, + onSwitchInPriority: 100, + onSwitchIn(pokemon) { + let name: string = this.toID(pokemon.illusion ? pokemon.illusion.name : pokemon.name); + if (this.dex.species.get(name).exists || this.dex.moves.get(name).exists || + this.dex.abilities.get(name).exists || name === 'blitz') { + // Certain pokemon have volatiles named after their id + // To prevent overwriting those, and to prevent accidentaly leaking + // that a pokemon is on a team through the onStart even triggering + // at the start of a match, users with pokemon names will need their + // statuses to end in "user". + name = name + 'user'; + } + // Add the mon's status effect to it as a volatile. + const status = this.dex.conditions.get(name); + if (status?.exists) { + pokemon.addVolatile(name, pokemon); + } + if ((pokemon.illusion || pokemon).getTypes(true, true).join('/') !== + this.dex.forGen(9).species.get((pokemon.illusion || pokemon).species.name).types.join('/') && + !pokemon.terastallized) { + this.add('-start', pokemon, 'typechange', (pokemon.illusion || pokemon).getTypes(true).join('/'), '[silent]'); + } + }, + }, + { + name: "[Gen 9] Monotype Random Battle", + mod: 'gen9', + team: 'random', + ruleset: ['Obtainable', 'Same Type Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], + }, + { + name: "[Gen 9] Pick-Your-Team Random Battle", mod: 'gen9', team: 'random', - ruleset: ['Obtainable', 'Same Type Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + ruleset: ['Team Preview', 'Max Team Size = 12', 'Picked Team Size = 6', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], }, { name: "[Gen 9] Random Battle Mayhem", desc: `[Gen 9] Random Battle with Team Preview and elements of Camomons, Inverse, Scalemons, and Shared Power.`, - mod: 'sharedpower', team: 'random', ruleset: ['[Gen 9] Random Battle', 'Team Preview', 'Camomons Mod', 'Inverse Mod', 'Scalemons Mod'], + onValidateRule() { + if (this.format.gameType !== 'singles') { + throw new Error(`Shared Power currently does not support ${this.format.gameType} battles.`); + } + }, onBeforeSwitchIn(pokemon) { let format = this.format; if (!format.getSharedPower) format = this.dex.formats.get('gen9sharedpower'); @@ -1860,30 +2588,83 @@ export const Formats: FormatList = [ pokemon.addVolatile(effect); } }, + + }, + { + name: "[Gen 9] Battle Factory", + desc: `Randomized teams of Pokémon for a generated Smogon tier with sets that are competitively viable.`, + mod: 'gen9', + team: 'randomFactory', + ruleset: ['Standard'], + onBegin() { + this.add(`raw|
Battle Factory Tier: ${this.teamGenerator.factoryTier}
`); + }, + }, + { + name: "[Gen 9] BSS Factory", + desc: `Randomized 3v3 Singles featuring Pokémon and movesets popular in Battle Stadium Singles.`, + mod: 'gen9', + team: 'randomBSSFactory', + ruleset: ['Flat Rules', 'VGC Timer'], + }, + { + name: "[Gen 9] Draft Factory", + desc: `Randomized matchups sourced from various 6v6 singles draft leagues.`, + mod: 'gen9', + team: 'randomDraftFactory', + ruleset: ['Standard Draft', '!Team Preview'], + onBegin() { + for (const pokemon of this.getAllPokemon()) { + if (!(pokemon.set as any).teraCaptain) pokemon.canTerastallize = null; + } + this.add('rule', 'Tera Captain Clause: Only Tera Captains can Terastallize'); + }, + onTeamPreview() { + this.add('clearpoke'); + for (const pokemon of this.getAllPokemon()) { + const details = pokemon.details.replace(', shiny', '') + .replace(/(Greninja|Gourgeist|Pumpkaboo|Xerneas|Zacian|Zamazenta|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*'); + this.add('poke', pokemon.side.id, details, ''); + } + this.makeRequest('teampreview'); + for (const side of this.sides) { + let buf = ``; + for (const pokemon of side.pokemon) { + if (!(pokemon.set as any).teraCaptain) continue; + buf += buf ? ` / ` : `raw|${side.name}'s Tera Captains:
`; + buf += ``; + } + this.add(`${buf}`); + } + }, + }, + { + name: "[Gen 9] Baby Random Battle", + mod: 'gen9', + team: 'randomBaby', + ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], }, { name: "[Gen 9] Computer-Generated Teams", desc: `Teams generated automatically based on heuristics (rules), with levels based on previous success/failure in battle. ` + `Not affiliated with Random Battles formats. Some sets will by nature be worse than others, but you can report egregiously bad sets ` + `with this form.`, - mod: 'gen9', team: 'computerGenerated', - ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], }, { name: "[Gen 9] Hackmons Cup", desc: `Randomized teams of level-balanced Pokémon with absolutely any ability, moves, and item.`, - mod: 'gen9', team: 'randomHC', ruleset: ['HP Percentage Mod', 'Cancel Mod'], - banlist: ['Nonexistent'], + banlist: ['CAP', 'LGPE', 'MissingNo.', 'Pikachu-Cosplay', 'Pichu-Spiky-eared', 'Pokestar Smeargle', 'Pokestar UFO', 'Pokestar UFO-2', 'Pokestar Brycen-Man', 'Pokestar MT', 'Pokestar MT2', 'Pokestar Transport', 'Pokestar Giant', 'Pokestar Humanoid', 'Pokestar Monster', 'Pokestar F-00', 'Pokestar F-002', 'Pokestar Spirit', 'Pokestar Black Door', 'Pokestar White Door', 'Pokestar Black Belt', 'Pokestar UFO-PropU2', 'Xerneas-Neutral'], + unbanlist: ['All Pokemon'], }, { name: "[Gen 9] Doubles Hackmons Cup", desc: `Randomized teams of level-balanced Pokémon with absolutely any ability, moves, and item. Now with TWICE the Pokémon per side!`, - mod: 'gen9', team: 'randomHC', searchShow: false, @@ -1891,15 +2672,128 @@ export const Formats: FormatList = [ ruleset: ['[Gen 9] Hackmons Cup'], }, { - name: "[Gen 9] Challenge Cup 1v1", + name: "[Gen 9] Broken Cup", + desc: `[Gen 9] Hackmons Cup but with only the most powerful Pokémon, moves, abilities, and items.`, + team: 'randomHC', + ruleset: ['HP Percentage Mod', 'Cancel Mod'], + banlist: ['All Pokemon', 'All Abilities', 'All Items', 'All Moves'], + unbanlist: [ + '10,000,000 Volt Thunderbolt', 'Abomasnow-Mega', 'Absol-Mega', 'Accelerock', 'Acid Spray', 'Adaptability', 'Aeroblast', + 'Aerodactyl-Mega', 'Aftermath', 'Aggron', 'Aggron-Mega', 'Aguav Berry', 'Air Balloon', 'Air Slash', 'Alakazam-Mega', + 'Alluring Voice', 'Altaria-Mega', 'Ampharos-Mega', 'Analytic', 'Anchor Shot', 'Anger Shell', 'Annihilape', 'Anticipation', + 'Apple Acid', 'Aqua Step', 'Arcanine', 'Arcanine-Hisui', 'Archaludon', 'Archeops', 'Arena Trap', 'Armarouge', 'Armor Cannon', + 'Aromatherapy', 'Articuno', 'Articuno-Galar', 'As One (Glastrier)', 'As One (Spectrier)', 'Assault Vest', 'Astral Barrage', + 'Attack Order', 'Audino-Mega', 'Aura Sphere', 'Axe Kick', 'Azelf', 'Baddy Bad', 'Baneful Bunker', 'Banette-Mega', + 'Barb Barrage', 'Basculegion', 'Basculegion-F', 'Baton Pass', 'Baxcalibur', 'Beads of Ruin', 'Beak Blast', 'Beast Boost', + 'Behemoth Bash', 'Behemoth Blade', 'Belly Drum', 'Berserk', 'Bitter Blade', 'Bitter Malice', 'Blacephalon', 'Blastoise', + 'Blastoise-Mega', 'Blaziken', 'Blaziken-Mega', 'Blazing Torque', 'Bleakwind Storm', 'Blissey', 'Blizzard', 'Blood Moon', + 'Blue Flare', 'Blunder Policy', 'Body Press', 'Body Slam', 'Bolt Beak', 'Bolt Strike', 'Boomburst', 'Bouncy Bubble', + 'Brave Bird', 'Bright Powder', 'Brute Bonnet', 'Bug Buzz', 'Bullet Punch', 'Burning Bulwark', 'Buzzwole', 'Buzzy Buzz', + 'Calm Mind', 'Calyrex-Ice', 'Calyrex-Shadow', 'Camerupt-Mega', 'Catastropika', 'Ceaseless Edge', 'Celebi', 'Celesteela', + 'Centiskorch', 'Ceruledge', 'Charizard', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Chatter', 'Chesnaught', 'Chesto Berry', + 'Chi-Yu', 'Chien-Pao', 'Chilan Berry', 'Chilling Neigh', 'Chilly Reception', 'Choice Band', 'Choice Scarf', 'Choice Specs', + 'Cinderace', 'Circle Throw', 'Clanging Scales', 'Clangorous Soul', 'Clangorous Soulblaze', 'Clear Amulet', 'Clear Body', + 'Clear Smog', 'Close Combat', 'Cloyster', 'Cobalion', 'Coil', 'Collision Course', 'Comatose', 'Combat Torque', 'Competitive', + 'Compound Eyes', 'Contrary', 'Core Enforcer', 'Cosmic Power', 'Cotton Guard', 'Court Change', 'Covert Cloak', 'Crabhammer', + 'Cresselia', 'Crobat', 'Cross Chop', 'Curse', 'Custap Berry', 'Dark Pulse', 'Darkest Lariat', 'Darkrai', + 'Darmanitan-Galar-Zen', 'Darmanitan-Zen', 'Decidueye', 'Decidueye-Hisui', 'Defend Order', 'Defiant', 'Defog', 'Delphox', + 'Deoxys', 'Deoxys-Attack', 'Deoxys-Defense', 'Deoxys-Speed', 'Desolate Land', 'Dialga', 'Dialga-Origin', 'Diamond Storm', + 'Diancie', 'Diancie-Mega', 'Dire Claw', 'Disable', 'Discharge', 'Dondozo', 'Doom Desire', 'Double Iron Bash', 'Download', + 'Draco Meteor', 'Draco Plate', 'Dragapult', 'Dragon Ascent', 'Dragon Dance', 'Dragon Darts', 'Dragon Energy', 'Dragon Hammer', + 'Dragon Pulse', 'Dragon Tail', 'Dragonite', 'Drain Punch', 'Dread Plate', 'Drill Peck', 'Drizzle', 'Drought', 'Drum Beating', + 'Dry Skin', 'Duraludon', 'Dusknoir', 'Dynamax Cannon', 'Earth Eater', 'Earth Plate', 'Earth Power', 'Earthquake', + 'Eerie Spell', 'Effect Spore', 'Eject Pack', 'Electivire', 'Electric Surge', 'Electro Drift', 'Emboar', 'Empoleon', + 'Enamorus', 'Enamorus-Therian', 'Encore', 'Energy Ball', 'Entei', 'Eruption', 'Espeon', 'Esper Wing', 'Eternatus', + 'Eternatus-Eternamax', 'Exeggutor', 'Exeggutor-Alola', 'Expanding Force', 'Expert Belt', 'Explosion', 'Extreme Evoboost', + 'Extreme Speed', 'Fake Out', 'Feraligatr', 'Fezandipiti', 'Fickle Beam', 'Fiery Wrath', 'Figy Berry', 'Filter', + 'Fire Blast', 'Fire Lash', 'First Impression', 'Fishious Rend', 'Fist Plate', 'Flame Body', 'Flame Charge', 'Flame Plate', + 'Flamethrower', 'Flare Blitz', 'Flareon', 'Flash Cannon', 'Fleur Cannon', 'Flip Turn', 'Floaty Fall', 'Florges', + 'Flower Trick', 'Fluffy', 'Flutter Mane', 'Focus Blast', 'Focus Sash', 'Forewarn', 'Foul Play', 'Freeze-Dry', 'Freezing Glare', + 'Freezy Frost', 'Frost Breath', 'Full Metal Body', 'Fur Coat', 'Fusion Bolt', 'Fusion Flare', 'Future Sight', 'G-Max Befuddle', + 'G-Max Cannonade', 'G-Max Centiferno', 'G-Max Resonance', 'G-Max Steelsurge', 'G-Max Stonesurge', 'G-Max Sweetness', + 'G-Max Vine Lash', 'G-Max Volcalith', 'G-Max Wildfire', 'G-Max Wind Rage', 'Gallade-Mega', 'Garchomp', 'Garchomp-Mega', + 'Gardevoir-Mega', 'Gear Grind', 'Genesect', 'Genesis Supernova', 'Gengar-Mega', 'Gholdengo', 'Giga Drain', 'Gigaton Hammer', + 'Giratina', 'Giratina-Origin', 'Glaceon', 'Glacial Lance', 'Glaive Rush', 'Glalie-Mega', 'Glare', 'Glastrier', 'Glimmora', + 'Glitzy Glow', 'Gogoat', 'Golisopod', 'Good as Gold', 'Goodra', 'Goodra-Hisui', 'Gooey', 'Gorilla Tactics', 'Gouging Fire', + 'Grassy Surge', 'Grav Apple', 'Great Tusk', 'Greninja', 'Greninja-Ash', 'Grim Neigh', 'Groudon', 'Groudon-Primal', + 'Guardian of Alola', 'Gunk Shot', 'Guzzlord', 'Gyarados', 'Gyarados-Mega', 'Hadron Engine', 'Hammer Arm', 'Haxorus', + 'Haze', 'Head Charge', 'Head Smash', 'Headlong Rush', 'Heal Bell', 'Heal Order', 'Healing Wish', 'Heart Swap', 'Heat Crash', + 'Heat Wave', 'Heatran', 'Heavy-Duty Boots', 'Heracross-Mega', 'High Horsepower', 'High Jump Kick', 'Hippowdon', 'Ho-Oh', + 'Hone Claws', 'Hoopa', 'Hoopa-Unbound', 'Horn Leech', 'Houndoom-Mega', 'Huge Power', 'Hurricane', 'Hustle', 'Hydreigon', + 'Hydrapple', 'Hydro Pump', 'Hydro Steam', 'Hyper Drill', 'Iapapa Berry', 'Ice Beam', 'Ice Hammer', 'Ice Scales', 'Ice Shard', + 'Ice Spinner', 'Icicle Plate', 'Illusion', 'Imposter', 'Incineroar', 'Infernape', 'Innards Out', 'Insect Plate', 'Inteleon', + 'Intimidate', 'Intrepid Sword', 'Iron Barbs', 'Iron Boulder', 'Iron Bundle', 'Iron Crown', 'Iron Hands', 'Iron Head', + 'Iron Jugulis', 'Iron Leaves', 'Iron Moth', 'Iron Plate', 'Iron Tail', 'Iron Thorns', 'Iron Treads', 'Iron Valiant', + 'Ivy Cudgel', 'Jet Punch', 'Jirachi', 'Jolteon', 'Judgment', 'Jungle Healing', 'Kangaskhan-Mega', 'Kartana', 'Keldeo', + 'Keldeo-Resolute', 'King\'s Rock', 'King\'s Shield', 'Kingambit', 'Kingdra', 'Knock Off', 'Kommo-o', 'Koraidon', 'Kyogre', + 'Kyogre-Primal', 'Kyurem', 'Kyurem-Black', 'Kyurem-White', 'Landorus', 'Landorus-Therian', 'Lapras', 'Last Respects', 'Latias', + 'Latias-Mega', 'Latios', 'Latios-Mega', 'Lava Plume', 'Leaf Blade', 'Leaf Storm', 'Leafeon', 'Leech Life', 'Leech Seed', + 'Leftovers', 'Leppa Berry', 'Let\'s Snuggle Forever', 'Levitate', 'Libero', 'Liechi Berry', 'Life Orb', 'Light Screen', + 'Light That Burns the Sky', 'Light of Ruin', 'Lightning Rod', 'Liquidation', 'Lopunny-Mega', 'Lovely Kiss', 'Low Kick', + 'Lucario', 'Lucario-Mega', 'Lugia', 'Lum Berry', 'Lumina Crash', 'Lunala', 'Lunar Blessing', 'Lunar Dance', 'Lunge', + 'Luster Purge', 'Mach Punch', 'Magearna', 'Magic Bounce', 'Magic Guard', 'Magical Torque', 'Magma Storm', 'Magmortar', + 'Magnezone', 'Mago Berry', 'Make It Rain', 'Malicious Moonsault', 'Malignant Chain', 'Mamoswine', 'Manaphy', 'Manectric-Mega', + 'Marshadow', 'Marvel Scale', 'Matcha Gotcha', 'Max Guard', 'Meadow Plate', 'Megahorn', 'Meganium', 'Melmetal', 'Meloetta', + 'Meloetta-Pirouette', 'Memento', 'Menacing Moonraze Maelstrom', 'Mental Herb', 'Meowscarada', 'Mesprit', 'Metagross', + 'Metagross-Mega', 'Meteor Mash', 'item: Metronome', 'Mew', 'Mewtwo', 'Mewtwo-Mega-X', 'Mewtwo-Mega-Y', 'Mighty Cleave', + 'Milk Drink', 'Milotic', 'Mind Plate', 'Mind\'s Eye', 'Minimize', 'Miraidon', 'Mirror Herb', 'Mist Ball', 'Misty Surge', + 'Mold Breaker', 'Moltres', 'Moltres-Galar', 'Moody', 'Moonblast', 'Moongeist Beam', 'Moonlight', 'Morning Sun', 'Mortal Spin', + 'Mountain Gale', 'Moxie', 'Multiscale', 'Munkidori', 'Muscle Band', 'Mystical Fire', 'Mystical Power', 'Naganadel', + 'Nasty Plot', 'Natural Cure', 'Nature\'s Madness', 'Necrozma', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Necrozma-Ultra', + 'Neuroforce', 'Neutralizing Gas', 'Night Daze', 'Night Shade', 'Nihilego', 'No Retreat', 'Noivern', 'Noxious Torque', + 'Nuzzle', 'Oblivion Wing', 'Obstruct', 'Oceanic Operetta', 'Octolock', 'Ogerpon', 'Ogerpon-Cornerstone', 'Ogerpon-Hearthflame', + 'Ogerpon-Wellspring', 'Okidogi', 'Opportunist', 'Orichalcum Pulse', 'Origin Pulse', 'Outrage', 'Overdrive', 'Overheat', + 'Pain Split', 'Palafin-Hero', 'Palkia', 'Palkia-Origin', 'Parental Bond', 'Parting Shot', 'Pecharunt', 'Perish Body', + 'Perish Song', 'Petaya Berry', 'Pheromosa', 'Photon Geyser', 'Pidgeot-Mega', 'Pinsir-Mega', 'Pixie Plate', 'Plasma Fists', + 'Play Rough', 'Poison Heal', 'Poison Point', 'Poison Touch', 'Pollen Puff', 'Poltergeist', 'Population Bomb', 'Porygon-Z', + 'Power Gem', 'Power Trip', 'Power Whip', 'Prankster', 'Precipice Blades', 'Primarina', 'Primordial Sea', 'Prism Armor', + 'Probopass', 'Protean', 'Protect', 'Psyblade', 'Psychic Fangs', 'Psychic Surge', 'Psychic', 'Psycho Boost', 'Psyshield Bash', + 'Psystrike', 'Pulverizing Pancake', 'Pure Power', 'Purifying Salt', 'Pursuit', 'Pyro Ball', 'Quaquaval', 'Quick Claw', + 'Quiver Dance', 'Rage Fist', 'Raging Bolt', 'Raging Bull', 'Raging Fury', 'Raikou', 'Rapid Spin', 'Rayquaza', 'Rayquaza-Mega', + 'Razor Claw', 'Recover', 'Red Card', 'Reflect', 'Regenerator', 'Regice', 'Regidrago', 'Regieleki', 'Regigigas', 'Regirock', + 'Registeel', 'Reshiram', 'Rest', 'Revelation Dance', 'Revival Blessing', 'Rhyperior', 'Rillaboom', 'Roar', 'Roaring Moon', + 'Rocky Helmet', 'Roost', 'Rough Skin', 'Ruination', 'Sacred Fire', 'Sacred Sword', 'Salac Berry', 'Salamence', 'Salamence-Mega', + 'Salt Cure', 'Samurott', 'Samurott-Hisui', 'Sandsear Storm', 'Sandy Shocks', 'Sap Sipper', 'Sappy Seed', 'Scald', 'Sceptile', + 'Sceptile-Mega', 'Scizor-Mega', 'Scope Lens', 'Scream Tail', 'Searing Shot', 'Searing Sunraze Smash', 'Secret Sword', + 'Seed Flare', 'Seismic Toss', 'Serene Grace', 'Serperior', 'Shadow Ball', 'Shadow Bone', 'Shadow Shield', 'Shadow Sneak', + 'Shadow Tag', 'Sharpedo-Mega', 'Shaymin', 'Shaymin-Sky', 'Shed Skin', 'Shed Tail', 'Sheer Force', 'Shell Side Arm', + 'Shell Smash', 'Shield Dust', 'Shift Gear', 'Silk Scarf', 'Silk Trap', 'Silvally', 'Simple', 'Sinister Arrow Raid', + 'Sitrus Berry', 'Sizzly Slide', 'Skeledirge', 'Sky Plate', 'Slack Off', 'Slaking', 'Sleep Powder', 'Slither Wing', + 'Slowbro-Mega', 'Sludge Bomb', 'Sludge Wave', 'Snarl', 'Snipe Shot', 'Snorlax', 'Soft-Boiled', 'Solgaleo', 'Solid Rock', + 'Soul-Heart', 'Soul-Stealing 7-Star Strike', 'Spacial Rend', 'Sparkly Swirl', 'Spectral Thief', 'Spectrier', 'Speed Boost', + 'Spikes', 'Spiky Shield', 'Spin Out', 'Spirit Break', 'Spirit Shackle', 'Splash Plate', 'Splintered Stormshards', + 'Splishy Splash', 'Spooky Plate', 'Spore', 'Springtide Storm', 'Stakataka', 'Stakeout', 'Stamina', 'Static', 'Stealth Rock', + 'Steam Eruption', 'Steelix-Mega', 'Sticky Web', 'Stoked Sparksurfer', 'Stone Axe', 'Stone Edge', 'Stone Plate', 'Stored Power', + 'Storm Drain', 'Storm Throw', 'Strange Steam', 'Strength Sap', 'Sturdy', 'Sucker Punch', 'Suicune', 'Sunsteel Strike', + 'Super Fang', 'Supercell Slam', 'Superpower', 'Supreme Overlord', 'Surf', 'Surging Strikes', 'Swampert', 'Swampert-Mega', + 'Sword of Ruin', 'Swords Dance', 'Sylveon', 'Synthesis', 'Tablets of Ruin', 'Tachyon Cutter', 'Tail Glow', 'Tangling Hair', + 'Tangrowth', 'Tapu Bulu', 'Tapu Fini', 'Tapu Koko', 'Tapu Lele', 'Taunt', 'Techno Blast', 'Teleport', 'Tera Blast', + 'Tera Starstorm', 'Terapagos-Stellar', 'Terapagos-Terastal', 'Teravolt', 'Terrakion', 'Thermal Exchange', 'Thick Fat', + 'Thousand Arrows', 'Thousand Waves', 'Throat Spray', 'Thunder Cage', 'Thunder Wave', 'Thunder', 'Thunderbolt', 'Thunderclap', + 'Thunderous Kick', 'Thundurus', 'Thundurus-Therian', 'Tidy Up', 'Ting-Lu', 'Tinted Lens', 'Togekiss', 'Topsy-Turvy', + 'Torch Song', 'Tornadus', 'Tornadus-Therian', 'Torterra', 'Tough Claws', 'Toxic Chain', 'Toxic Debris', 'Toxic Plate', + 'Toxic Spikes', 'Toxic', 'Tri Attack', 'Triage', 'Triple Arrows', 'Triple Axel', 'Turboblaze', 'Type: Null', 'Typhlosion', + 'Typhlosion-Hisui', 'Tyranitar', 'Tyranitar-Mega', 'U-turn', 'Umbreon', 'Unaware', 'Unburden', 'Ursaluna', 'Ursaluna-Bloodmoon', + 'Urshifu', 'Urshifu-Rapid-Strike', 'Uxie', 'V-create', 'Vanilluxe', 'Vaporeon', 'Venusaur', 'Venusaur-Mega', 'Vessel of Ruin', + 'Victini', 'Victory Dance', 'Virizion', 'Volcanion', 'Volcarona', 'Volt Absorb', 'Volt Switch', 'Volt Tackle', 'Walking Wake', + 'Walrein', 'Water Absorb', 'Water Bubble', 'Water Shuriken', 'Water Spout', 'Waterfall', 'Wave Crash', 'Weakness Policy', + 'Well-Baked Body', 'Whirlwind', 'White Herb', 'Wicked Blow', 'Wicked Torque', 'Wide Lens', 'Wiki Berry', 'Wild Charge', + 'Wildbolt Storm', 'Will-O-Wisp', 'Wise Glasses', 'Wish', 'Wishiwashi-School', 'Wo-Chien', 'Wonder Guard', 'Wood Hammer', + 'Wyrdeer', 'Xerneas', 'Xurkitree', 'Yawn', 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zap Plate', + 'Zapdos', 'Zapdos-Galar', 'Zarude', 'Zekrom', 'Zeraora', 'Zing Zap', 'Zippy Zap', 'Zygarde', 'Zygarde-Complete', + ], + }, + { + name: "[Gen 9] Challenge Cup 1v1", + desc: `Get a randomized team of level-balanced Pokémon with absolutely any legal ability, moves, and item, and choose one to battle.`, mod: 'gen9', team: 'randomCC', ruleset: ['Obtainable', 'HP Percentage Mod', 'Cancel Mod', 'Team Preview', 'Terastal Clause', 'Picked Team Size = 1'], }, { name: "[Gen 9] Challenge Cup 2v2", - + desc: `Get a randomized team of level-balanced Pokémon with absolutely any legal ability, moves, and item, and choose two to battle in a doubles format.`, mod: 'gen9', team: 'randomCC', gameType: 'doubles', @@ -1907,153 +2801,119 @@ export const Formats: FormatList = [ }, { name: "[Gen 9] Challenge Cup 6v6", - + desc: `Randomized teams of level-balanced Pokémon with absolutely any legal ability, moves, and item.`, mod: 'gen9', team: 'randomCC', searchShow: false, ruleset: ['Obtainable', 'HP Percentage Mod', 'Cancel Mod'], }, + { + name: "[Gen 9] Metronome Battle", + mod: 'gen9', + gameType: 'doubles', + ruleset: ['Max Team Size = 2', 'HP Percentage Mod', 'Cancel Mod'], + banlist: [ + 'Pokestar Spirit', 'Terapagos', 'Shedinja + Sturdy', 'Cheek Pouch', 'Commander', 'Cursed Body', 'Dry Skin', 'Earth Eater', 'Fur Coat', 'Gorilla Tactics', + 'Grassy Surge', 'Huge Power', 'Ice Body', 'Iron Barbs', 'Moody', 'Neutralizing Gas', 'Opportunist', 'Parental Bond', 'Perish Body', 'Poison Heal', + 'Power Construct', 'Pressure', 'Pure Power', 'Rain Dish', 'Rough Skin', 'Sand Spit', 'Sand Stream', 'Seed Sower', 'Stamina', 'Toxic Chain', 'Volt Absorb', + 'Water Absorb', 'Wonder Guard', 'Harvest + Jaboca Berry', 'Harvest + Rowap Berry', 'Aguav Berry', 'Assault Vest', 'Berry', 'Berry Juice', 'Berserk Gene', + 'Black Sludge', 'Enigma Berry', 'Figy Berry', 'Gold Berry', 'Iapapa Berry', 'Kangaskhanite', 'Leftovers', 'Mago Berry', 'Medichamite', 'Steel Memory', + 'Oran Berry', 'Rocky Helmet', 'Shell Bell', 'Sitrus Berry', 'Wiki Berry', + ], + onValidateSet(set) { + const species = this.dex.species.get(set.species); + if (species.types.includes('Steel')) { + return [`${species.name} is a Steel-type, which is banned from Metronome Battle.`]; + } + if (set.teraType === 'Steel') { + return [`${species.name} has Steel as its Tera type, which is banned from Metronome Battle.`]; + } + if (species.bst > 625) { + return [`${species.name} is banned.`, `(Pok\u00e9mon with a BST higher than 625 are banned)`]; + } + const item = this.dex.items.get(set.item); + if (set.item && item.megaStone) { + const megaSpecies = this.dex.species.get(item.megaStone); + if (species.baseSpecies === item.megaEvolves && megaSpecies.bst > 625) { + return [ + `${set.name || set.species}'s item ${item.name} is banned.`, `(Pok\u00e9mon with a BST higher than 625 are banned)`, + ]; + } + } + if (set.moves.length !== 1 || this.dex.moves.get(set.moves[0]).id !== 'metronome') { + return [`${set.name || set.species} has illegal moves.`, `(Pok\u00e9mon can only have one Metronome in their moveset)`]; + } + }, + }, { name: "[Gen 8] Random Battle", desc: `Randomized teams of level-balanced Pokémon with sets that are generated to be competitively viable.`, - threads: [ - `• Random Battle Suggestions`, - ], - mod: 'gen8', team: 'random', - ruleset: ['PotD', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + ruleset: ['PotD', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], }, { name: "[Gen 8] Random Doubles Battle", - mod: 'gen8', gameType: 'doubles', team: 'random', - ruleset: ['PotD', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod'], + searchShow: false, + ruleset: ['PotD', 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Illusion Level Mod'], }, { name: "[Gen 8] Free-For-All Random Battle", - mod: 'gen8', team: 'random', gameType: 'freeforall', - // searchShow: false, - tournamentShow: false, - rated: false, - ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], - }, - { - name: "[Gen 8] Multi Random Battle", - - mod: 'gen8', - team: 'random', - gameType: 'multi', searchShow: false, tournamentShow: false, - rated: false, - ruleset: [ - 'Max Team Size = 3', - 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', - ], - }, - { - name: "[Gen 8] Battle Factory", - desc: `Randomized teams of Pokémon for a generated Smogon tier with sets that are competitively viable.`, - - mod: 'gen8', - team: 'randomFactory', - ruleset: ['Standard', 'Dynamax Clause'], - }, - { - name: "[Gen 8] BSS Factory", - desc: `Randomized 3v3 Singles featuring Pokémon and movesets popular in Battle Stadium Singles.`, - threads: [ - `• Information and Suggestions Thread`, - ], - - mod: 'gen8', - team: 'randomBSSFactory', - ruleset: ['Flat Rules'], - }, - { - name: "[Gen 8] Super Staff Bros 4", - desc: "The fourth iteration of Super Staff Bros is here! Battle with a random team of pokemon created by the sim staff.", - threads: [ - `• Introduction & Roster`, - `• Discussion Thread`, - ], - - mod: 'ssb', - team: 'randomStaffBros', - ruleset: ['Dynamax Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], - onBegin() { - if (!this.ruleTable.has('dynamaxclause')) { - // Old joke format we're bringing back - for (const side of this.sides) { - side.dynamaxUsed = true; - } - this.add('message', 'Delphox only'); - this.add('message', 'No items'); - this.add('message', 'Final Destination'); - return; - } - // TODO look into making an event to put this right after turn|1 - // https://discordapp.com/channels/630837856075513856/630845310033330206/716126469528485909 - // Requires client change - this.add(`raw|
Wondering what all these custom moves, abilities, and items do?
Check out the Super Staff Bros 4 Guide or use /ssb to find out!
`); - - this.add('message', [ - 'THE BATTLE FOR SURVIVAL BEGINS!', 'WHO WILL SURVIVE?', 'GET READY TO KEEP UP!', 'GET READY!', 'DARE TO BELIEVE YOU CAN SURVIVE!', 'THERE CAN BE ONLY ONE WINNER!', 'GET READY FOR THE FIGHT OF YOUR LIFE!', 'WHO WILL PREVAIL?', 'ONLY ONE TEAM WILL BE LEFT STANDING!', 'BATTLE WITHOUT LIMITS!', - ][this.random(10)]); - this.add('message', 'FIGHT!'); - }, - onSwitchInPriority: 100, - onSwitchIn(pokemon) { - let name: string = this.toID(pokemon.illusion ? pokemon.illusion.name : pokemon.name); - if (this.dex.species.get(name).exists || this.dex.moves.get(name).exists || this.dex.abilities.get(name).exists) { - // Certain pokemon have volatiles named after their id - // To prevent overwriting those, and to prevent accidentaly leaking - // that a pokemon is on a team through the onStart even triggering - // at the start of a match, users with pokemon names will need their - // statuses to end in "user". - name = name + 'user'; - } - // Add the mon's status effect to it as a volatile. - const status = this.dex.conditions.get(name); - if (status?.exists) { - pokemon.addVolatile(name, pokemon); - } - if (pokemon.m.hasBounty) this.add('-start', pokemon, 'bounty', '[silent]'); - const details = pokemon.species.name + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + - (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); - if (pokemon.m.nowShiny) this.add('replace', pokemon, details); - }, - onFaint(target, source, effect) { - if (effect?.effectType !== 'Move') return; - if (!target.m.hasBounty) return; - if (source) { - this.add('-message', `${source.name} received the bounty!`); - this.boost({atk: 1, def: 1, spa: 1, spd: 1, spe: 1}, source, target, effect); - } + rated: false, + ruleset: ['Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod'], + }, + { + name: "[Gen 8] Multi Random Battle", + mod: 'gen8', + team: 'random', + gameType: 'multi', + searchShow: false, + tournamentShow: false, + rated: false, + ruleset: [ + 'Max Team Size = 3', + 'Obtainable', 'Species Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod', 'Illusion Level Mod', + ], + }, + { + name: "[Gen 8] Battle Factory", + desc: `Randomized teams of Pokémon for a generated Smogon tier with sets that are competitively viable.`, + mod: 'gen8', + team: 'randomFactory', + searchShow: false, + ruleset: ['Standard', 'Dynamax Clause'], + onBegin() { + this.add(`raw|
Battle Factory Tier: ${this.teamGenerator.factoryTier}
`); }, }, + { + name: "[Gen 8] BSS Factory", + desc: `Randomized 3v3 Singles featuring Pokémon and movesets popular in Battle Stadium Singles.`, + mod: 'gen8', + team: 'randomBSSFactory', + searchShow: false, + ruleset: ['Flat Rules'], + }, { name: "[Gen 8] Hackmons Cup", desc: `Randomized teams of level-balanced Pokémon with absolutely any ability, moves, and item.`, - mod: 'gen8', team: 'randomHC', + searchShow: false, ruleset: ['HP Percentage Mod', 'Cancel Mod'], banlist: ['Nonexistent'], }, { name: "[Gen 8] CAP 1v1", desc: `Randomly generated 1v1-style teams only including Pokémon made by the Create-A-Pokémon Project.`, - threads: [ - `• CAP 1v1`, - ], - mod: 'gen8', searchShow: false, team: 'randomCAP1v1', @@ -2066,10 +2926,6 @@ export const Formats: FormatList = [ { name: "[Gen 8 BDSP] Random Battle", desc: `Randomized teams of level-balanced Pokémon with sets that are generated to be competitively viable.`, - threads: [ - `• BDSP Random Battle Set Discussion`, - ], - mod: 'gen8bdsp', team: 'random', searchShow: false, @@ -2078,41 +2934,24 @@ export const Formats: FormatList = [ { name: "[Gen 7] Random Battle", desc: `Randomized teams of level-balanced Pokémon with sets that are generated to be competitively viable.`, - threads: [ - `• Sets and Suggestions`, - `• Role Compendium`, - ], - - mod: 'gen7', - team: 'random', - ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod'], - }, - { - name: "[Gen 7] Random Doubles Battle", - threads: [`• Sets and Suggestions`], - mod: 'gen7', - gameType: 'doubles', team: 'random', - searchShow: false, - challengeShow: false, - ruleset: ['Obtainable', 'HP Percentage Mod', 'Cancel Mod'], + ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod', 'Illusion Level Mod'], }, { name: "[Gen 7] Battle Factory", desc: `Randomized teams of Pokémon for a generated Smogon tier with sets that are competitively viable.`, - mod: 'gen7', team: 'randomFactory', + searchShow: false, ruleset: ['Obtainable', 'Sleep Clause Mod', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Mega Rayquaza Clause'], + onBegin() { + this.add(`raw|
Battle Factory Tier: ${this.teamGenerator.factoryTier}
`); + }, }, { name: "[Gen 7] BSS Factory", desc: `Randomized 3v3 Singles featuring Pokémon and movesets popular in Battle Spot Singles.`, - threads: [ - `• Information and Suggestions Thread`, - ], - mod: 'gen7', team: 'randomBSSFactory', searchShow: false, @@ -2121,16 +2960,15 @@ export const Formats: FormatList = [ { name: "[Gen 7] Hackmons Cup", desc: `Randomized teams of level-balanced Pokémon with absolutely any ability, moves, and item.`, - mod: 'gen7', team: 'randomHC', searchShow: false, + challengeShow: false, ruleset: ['HP Percentage Mod', 'Cancel Mod'], banlist: ['Nonexistent'], }, { name: "[Gen 7 Let's Go] Random Battle", - mod: 'gen7letsgo', team: 'random', searchShow: false, @@ -2138,67 +2976,55 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] Random Battle", - mod: 'gen6', team: 'random', - ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod'], + ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod', 'Illusion Level Mod'], }, { name: "[Gen 6] Battle Factory", desc: `Randomized teams of Pokémon for a generated Smogon tier with sets that are competitively viable.`, - mod: 'gen6', team: 'randomFactory', searchShow: false, challengeShow: false, ruleset: ['Obtainable', 'Sleep Clause Mod', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Mega Rayquaza Clause'], + onBegin() { + this.add(`raw|
Battle Factory Tier: ${this.teamGenerator.factoryTier}
`); + }, }, { name: "[Gen 5] Random Battle", - mod: 'gen5', team: 'random', - ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod'], + ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod', 'Illusion Level Mod'], }, { name: "[Gen 4] Random Battle", - mod: 'gen4', team: 'random', ruleset: ['Obtainable', 'Sleep Clause Mod', 'HP Percentage Mod', 'Cancel Mod'], }, { name: "[Gen 3] Random Battle", - mod: 'gen3', team: 'random', ruleset: ['Standard'], }, - { - name: "[Gen 3] Challenge Cup", - - mod: 'gen3', - team: 'randomCC', - searchShow: false, - ruleset: ['Obtainable', 'HP Percentage Mod', 'Cancel Mod'], - }, { name: "[Gen 2] Random Battle", - mod: 'gen2', team: 'random', ruleset: ['Standard'], }, { name: "[Gen 1] Random Battle", - mod: 'gen1', team: 'random', ruleset: ['Standard'], }, { name: "[Gen 1] Challenge Cup", - + desc: `Randomized teams of level-balanced Pokémon with absolutely any legal moves.`, mod: 'gen1', team: 'randomCC', searchShow: false, @@ -2208,7 +3034,6 @@ export const Formats: FormatList = [ { name: "[Gen 1] Hackmons Cup", desc: `Randomized teams of level-balanced Pokémon with absolutely any moves, types, and stats.`, - mod: 'gen1', team: 'randomHC', searchShow: false, @@ -2228,107 +3053,6 @@ export const Formats: FormatList = [ }, }, - // Metronome Battle - /////////////////////////////////////////////////////////////////// - - { - section: "Metronome Battle", - column: 3, - }, - { - name: '[Gen 9] Metronome Battle', - threads: [ - `• Metronome Battle`, - ], - - mod: 'gen9', - gameType: 'doubles', - ruleset: ['Max Team Size = 2', 'HP Percentage Mod', 'Cancel Mod'], - banlist: [ - 'Pokestar Spirit', 'Shedinja + Sturdy', 'Cheek Pouch', 'Commander', 'Cursed Body', 'Dry Skin', 'Earth Eater', 'Fur Coat', 'Gorilla Tactics', - 'Grassy Surge', 'Huge Power', 'Ice Body', 'Iron Barbs', 'Moody', 'Neutralizing Gas', 'Opportunist', 'Parental Bond', 'Perish Body', 'Poison Heal', - 'Power Construct', 'Pressure', 'Pure Power', 'Rain Dish', 'Rough Skin', 'Sand Spit', 'Sand Stream', 'Seed Sower', 'Stamina', - 'Volt Absorb', 'Water Absorb', 'Wonder Guard', 'Aguav Berry', 'Assault Vest', 'Berry', 'Berry Juice', 'Berserk Gene', - 'Black Sludge', 'Enigma Berry', 'Figy Berry', 'Gold Berry', 'Iapapa Berry', 'Kangaskhanite', 'Leftovers', 'Mago Berry', 'Medichamite', - 'Steel Memory', 'Oran Berry', 'Rocky Helmet', 'Shell Bell', 'Sitrus Berry', 'Wiki Berry', 'Harvest + Jaboca Berry', - 'Harvest + Rowap Berry', - ], - onValidateSet(set) { - const species = this.dex.species.get(set.species); - if (species.types.includes('Steel')) { - return [`${species.name} is a Steel-type, which is banned from Metronome Battle.`]; - } - if (set.teraType === 'Steel') { - return [`${species.name} has Steel as its Tera type, which is banned from Metronome Battle.`]; - } - if (species.bst > 625) { - return [`${species.name} is banned.`, `(Pok\u00e9mon with a BST higher than 625 are banned)`]; - } - const item = this.dex.items.get(set.item); - if (set.item && item.megaStone) { - const megaSpecies = this.dex.species.get(item.megaStone); - if (species.baseSpecies === item.megaEvolves && megaSpecies.bst > 625) { - return [ - `${set.name || set.species}'s item ${item.name} is banned.`, `(Pok\u00e9mon with a BST higher than 625 are banned)`, - ]; - } - } - if (set.moves.length !== 1 || this.dex.moves.get(set.moves[0]).id !== 'metronome') { - return [`${set.name || set.species} has illegal moves.`, `(Pok\u00e9mon can only have one Metronome in their moveset)`]; - } - }, - }, - { - name: '[Gen 8] Metronome Battle', - threads: [ - `• Metronome Battle`, - ], - - mod: 'gen8', - gameType: 'doubles', - searchShow: false, - ruleset: ['Max Team Size = 2', 'HP Percentage Mod', 'Cancel Mod'], - banlist: [ - 'Pokestar Spirit', 'Shedinja + Sturdy', 'Battle Bond', 'Cheek Pouch', 'Cursed Body', 'Dry Skin', 'Fur Coat', 'Gorilla Tactics', - 'Grassy Surge', 'Huge Power', 'Ice Body', 'Iron Barbs', 'Libero', 'Moody', 'Neutralizing Gas', 'Parental Bond', 'Perish Body', 'Poison Heal', - 'Power Construct', 'Pressure', 'Protean', 'Pure Power', 'Rain Dish', 'Rough Skin', 'Sand Spit', 'Sand Stream', 'Snow Warning', 'Stamina', - 'Volt Absorb', 'Water Absorb', 'Wonder Guard', 'Abomasite', 'Aguav Berry', 'Assault Vest', 'Berry', 'Berry Juice', 'Berserk Gene', - 'Black Sludge', 'Enigma Berry', 'Figy Berry', 'Gold Berry', 'Iapapa Berry', 'Kangaskhanite', 'Leftovers', 'Mago Berry', 'Medichamite', - 'Steel Memory', 'Oran Berry', 'Rocky Helmet', 'Shell Bell', 'Sitrus Berry', 'Wiki Berry', 'Harvest + Jaboca Berry', 'Harvest + Rowap Berry', - ], - onValidateSet(set) { - const species = this.dex.species.get(set.species); - if (species.gen > 8) { - return [`${species.name} is from gen 9, which is banned from [Gen 8] Metronome Battle.`]; - } - if (species.types.includes('Steel')) { - return [`${species.name} is a Steel-type, which is banned from Metronome Battle.`]; - } - if (species.bst > 625) { - return [`${species.name} is banned.`, `(Pok\u00e9mon with a BST higher than 625 are banned)`]; - } - const item = this.dex.items.get(set.item); - if (item.gen > 8) { - return [`${species.name} is from gen 9, which is banned from [Gen 8] Metronome Battle.`]; - } - if (set.item && item.megaStone) { - const megaSpecies = this.dex.species.get(item.megaStone); - if (species.baseSpecies === item.megaEvolves && megaSpecies.bst > 625) { - return [ - `${set.name || set.species}'s item ${item.name} is banned.`, `(Pok\u00e9mon with a BST higher than 625 are banned)`, - ]; - } - } - const ability = this.dex.abilities.get(set.ability); - if (ability.gen > 8) { - return [`${species.name} is from gen 9, which is banned from [Gen 8] Metronome Battle.`]; - } - if (set.moves.length !== 1 || this.dex.moves.get(set.moves[0]).id !== 'metronome') { - return [`${set.name || set.species} has illegal moves.`, `(Pok\u00e9mon can only have one Metronome in their moveset)`]; - } - }, - }, - // RoA Spotlight /////////////////////////////////////////////////////////////////// @@ -2337,35 +3061,20 @@ export const Formats: FormatList = [ column: 4, }, { - name: "[Gen 5] UU", - threads: [ - `• BW2 UU Viability Rankings`, - `• BW2 Sample Teams`, - ], - + name: "[Gen 5] Ubers", mod: 'gen5', // searchShow: false, - ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'], - banlist: ['Uber', 'OU', 'UUBL', 'Arena Trap', 'Drought', 'Sand Stream', 'Snow Warning', 'Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'], + ruleset: ['Standard', 'Sleep Clause Mod'], }, { - name: "[Gen 1] Tradebacks OU", - desc: `RBY OU with movepool additions from the Time Capsule.`, - threads: [ - `• RBY Tradebacks OU`, - ], - - mod: 'gen1', + name: "[Gen 3] ZU", + mod: 'gen3', // searchShow: false, - ruleset: ['[Gen 1] OU', 'Allow Tradeback'], + ruleset: ['Standard', 'Sleep Moves Clause', 'Baton Pass Stat Trap Clause', 'Swagger Clause'], + banlist: ['Uber', 'OU', 'UUBL', 'UU', 'RUBL', 'RU', 'NUBL', 'NU', 'PUBL', 'PU', 'ZUBL', 'Baton Pass + Substitute'], }, { name: "[Gen 6] RU", - threads: [ - `• ORAS RU Banlist`, - `• ORAS RU Viability Rankings`, - ], - mod: 'gen6', // searchShow: false, ruleset: ['[Gen 6] UU'], @@ -2381,92 +3090,48 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] OU", - threads: [ - `• SS OU Metagame Discussion`, - `• SS OU Sample Teams`, - `• SS OU Viability Rankings`, - ], - mod: 'gen8', ruleset: ['Standard', 'Dynamax Clause'], banlist: ['Uber', 'AG', 'Arena Trap', 'Moody', 'Power Construct', 'Sand Veil', 'Shadow Tag', 'Snow Cloak', 'King\'s Rock', 'Baton Pass'], }, { name: "[Gen 7] OU", - threads: [ - `• USM OU Banlist`, - `• USM OU Sample Teams`, - `• USM OU Viability Rankings`, - ], - mod: 'gen7', ruleset: ['Standard'], banlist: ['Uber', 'Arena Trap', 'Power Construct', 'Shadow Tag', 'Baton Pass'], }, { name: "[Gen 6] OU", - threads: [ - `• ORAS OU Banlist`, - `• ORAS OU Sample Teams`, - `• ORAS OU Viability Rankings`, - ], - mod: 'gen6', ruleset: ['Standard', 'Swagger Clause'], banlist: ['Uber', 'Arena Trap', 'Shadow Tag', 'Soul Dew', 'Baton Pass'], }, { name: "[Gen 5] OU", - threads: [ - `• BW2 Sample Teams`, - `• BW2 OU Viability Rankings`, - ], - mod: 'gen5', ruleset: ['Standard', 'Evasion Abilities Clause', 'Sleep Moves Clause', 'Swagger Clause', 'Gems Clause', 'Baton Pass Stat Clause'], - banlist: ['Uber', 'Arena Trap', 'Drizzle ++ Swift Swim', 'Drought ++ Chlorophyll', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Soul Dew', 'Assist'], + banlist: ['Uber', 'Arena Trap', 'Drizzle ++ Swift Swim', 'Drought ++ Chlorophyll', 'Sand Rush', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Soul Dew', 'Acupressure', 'Assist'], }, { name: "[Gen 4] OU", - threads: [ - `• DPP OU Metagame Discussion`, - `• DPP Sample Teams`, - `• DPP OU Viability Rankings`, - ], - mod: 'gen4', - ruleset: ['Standard', 'Freeze Clause Mod'], - banlist: ['AG', 'Uber', 'Arena Trap', 'Sand Veil', 'Swinub + Snow Cloak', 'Piloswine + Snow Cloak', 'Mamoswine + Snow Cloak', 'Soul Dew', 'Baton Pass', 'Swagger'], + ruleset: ['Standard', 'Evasion Abilities Clause', 'Baton Pass Stat Trap Clause', 'Freeze Clause Mod'], + banlist: ['AG', 'Uber', 'Arena Trap', 'Quick Claw', 'Soul Dew', 'Swagger'], }, { name: "[Gen 3] OU", - threads: [ - `• ADV Sample Teams`, - `• ADV OU Viability Rankings`, - ], - mod: 'gen3', ruleset: ['Standard', 'One Boost Passer Clause', 'Freeze Clause Mod'], - banlist: ['Uber', 'Sand Veil', 'Soundproof', 'Assist', 'Baton Pass + Block', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Smeargle + Ingrain'], + banlist: ['Uber', 'Smeargle + Ingrain', 'Sand Veil', 'Soundproof', 'Assist', 'Baton Pass + Block', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Swagger'], }, { name: "[Gen 2] OU", - threads: [ - `• GSC Sample Teams`, - `• GSC OU Viability Rankings`, - ], - mod: 'gen2', ruleset: ['Standard'], banlist: ['Uber', 'Mean Look + Baton Pass', 'Spider Web + Baton Pass'], }, { name: "[Gen 1] OU", - threads: [ - `• RBY Sample Teams`, - `• RBY OU Viability Rankings`, - ], - mod: 'gen1', ruleset: ['Standard'], banlist: ['Uber'], @@ -2481,12 +3146,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] Doubles OU", - threads: [ - `• SS Doubles OU Metagame Discussion`, - `• SS Doubles OU Sample Teams`, - `• SS Doubles OU Viability Rankings`, - ], - mod: 'gen8', gameType: 'doubles', ruleset: ['Standard Doubles', 'Dynamax Clause', 'Swagger Clause'], @@ -2494,12 +3153,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] Doubles OU", - threads: [ - `• USUM Doubles OU Metagame Discussion`, - `• USUM Doubles OU Viability Rankings`, - `• USUM Doubles OU Sample Teams`, - ], - mod: 'gen7', gameType: 'doubles', ruleset: ['Standard Doubles', 'Swagger Clause'], @@ -2507,12 +3160,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] Doubles OU", - threads: [ - `• ORAS Doubles OU Discussion`, - `• ORAS Doubles OU Viability Rankings`, - `• ORAS Doubles OU Sample Teams`, - ], - mod: 'gen6', gameType: 'doubles', ruleset: ['Standard Doubles', 'Swagger Clause'], @@ -2520,12 +3167,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 5] Doubles OU", - threads: [ - `• BW2 Doubles Metagame Discussion`, - `• BW2 Doubles Viability Rankings`, - `• BW2 Doubles Sample Teams`, - ], - mod: 'gen5', gameType: 'doubles', searchShow: false, @@ -2534,26 +3175,21 @@ export const Formats: FormatList = [ }, { name: "[Gen 4] Doubles OU", - threads: [`• DPP Doubles`], - mod: 'gen4', gameType: 'doubles', - ruleset: ['Standard'], - banlist: ['AG', 'Uber', 'Soul Dew', 'Dark Void', 'Sand Veil'], - unbanlist: ['Latios', 'Manaphy', 'Mew', 'Salamence', 'Wobbuffet', 'Wynaut'], + searchShow: false, + ruleset: ['Standard', 'Evasion Abilities Clause'], + banlist: ['AG', 'Uber', 'Soul Dew', 'Dark Void', 'Thunder Wave'], + unbanlist: ['Manaphy', 'Mew', 'Salamence', 'Wobbuffet', 'Wynaut'], }, { name: "[Gen 3] Doubles OU", - threads: [ - `• ADV Doubles OU`, - ], - mod: 'gen3', gameType: 'doubles', searchShow: false, ruleset: ['Standard', '!Switch Priority Clause Mod'], - banlist: ['Uber', 'Soul Dew', 'Swagger'], - unbanlist: ['Latias', 'Wobbuffet', 'Wynaut'], + banlist: ['Uber', 'Quick Claw', 'Soul Dew', 'Explosion', 'Self-Destruct', 'Swagger'], + unbanlist: ['Wobbuffet', 'Wynaut'], }, // Sw/Sh Singles @@ -2565,12 +3201,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] Ubers", - threads: [ - `• SS Ubers Metagame Discussion`, - `• SS Ubers Sample Teams`, - `• SS Ubers Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['Standard', 'Dynamax Clause'], @@ -2578,12 +3208,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] UU", - threads: [ - `• UU Metagame Discussion`, - `• UU Sample Teams`, - `• UU Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['[Gen 8] OU'], @@ -2591,12 +3215,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] RU", - threads: [ - `• RU Metagame Discussion`, - `• RU Sample Teams`, - `• RU Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['[Gen 8] UU'], @@ -2604,12 +3222,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] NU", - threads: [ - `• NU Metagame Discussion`, - `• NU Sample Teams`, - `• NU Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['[Gen 8] RU'], @@ -2617,11 +3229,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] PU", - threads: [ - `• PU Metagame Discussion`, - `• PU Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['[Gen 8] NU'], @@ -2629,49 +3236,31 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] LC", - threads: [ - `• SS LC Metagame Discussion`, - `• SS LC Sample Teams`, - `• SS LC Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['Little Cup', 'Standard', 'Dynamax Clause'], banlist: [ 'Corsola-Galar', 'Cutiefly', 'Drifloon', 'Gastly', 'Gothita', 'Magby', 'Rufflet', 'Scraggy', 'Scyther', 'Sneasel', 'Swirlix', - 'Tangela', 'Vullaby', 'Vulpix-Alola', 'Woobat', 'Zigzagoon-Base', 'Chlorophyll', 'Moody', 'Baton Pass', 'Sticky Web', + 'Tangela', 'Vulpix-Alola', 'Woobat', 'Zigzagoon-Base', 'Chlorophyll', 'Moody', 'Baton Pass', 'Sticky Web', ], }, { name: "[Gen 8] Monotype", desc: `All the Pokémon on a team must share a type.`, - threads: [ - `• SS Monotype Metagame Discussion`, - `• SS Monotype Sample Teams`, - `• SS Monotype Viability Rankings`, - ], - mod: 'gen8', searchShow: false, - ruleset: ['Same Type Clause', 'Standard', 'Dynamax Clause'], + ruleset: ['Same Type Clause', 'Standard', 'Evasion Abilities Clause', 'Dynamax Clause'], banlist: [ 'Blaziken', 'Calyrex-Ice', 'Calyrex-Shadow', 'Dialga', 'Dracovish', 'Eternatus', 'Genesect', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', - 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Base', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', - 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Urshifu-Base', 'Xerneas', 'Yveltal', - 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-Base', 'Moody', 'Power Construct', 'Shadow Tag', 'Damp Rock', - 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Smooth Rock', 'Terrain Extender', 'Acupressure', 'Baton Pass', + 'Kartana', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Landorus-Incarnate', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mewtwo', 'Naganadel', + 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Solgaleo', 'Urshifu-Single-Strike', 'Xerneas', + 'Yveltal', 'Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Zekrom', 'Zygarde-50%', 'Moody', 'Power Construct', 'Shadow Tag', + 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Smooth Rock', 'Terrain Extender', 'Acupressure', 'Baton Pass', ], }, { name: "[Gen 8] 1v1", desc: `Bring three Pokémon to Team Preview and choose one to battle.`, - threads: [ - `• SS 1v1 Metagame Discussion`, - `• SS 1v1 Sample Teams`, - `• SS 1v1 Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: [ @@ -2688,12 +3277,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] Anything Goes", - threads: [ - `• AG Metagame Discussion`, - `• AG Sample Teams`, - `• AG Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['Obtainable', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'], @@ -2701,84 +3284,43 @@ export const Formats: FormatList = [ { name: "[Gen 8] ZU", desc: `The unofficial usage-based tier below PU.`, - threads: [ - `• ZU Metagame Discussion`, - `• ZU Sample Teams`, - `• ZU Viability Rankings`, - ], - mod: 'gen8', searchShow: false, ruleset: ['[Gen 8] PU'], - banlist: [ - 'PU', 'Arctovish', 'Aurorus', 'Basculin', 'Centiskorch', 'Drampa', 'Exeggutor-Alola', 'Gallade', 'Glastrier', 'Haunter', 'Magmortar', 'Magneton', - 'Malamar', 'Ninjask', 'Omastar', 'Perrserker', 'Rotom-Frost', 'Turtonator', 'Vanilluxe', 'Vikavolt', 'Silvally-Dragon', 'Silvally-Ground', 'Sneasel', - 'Damp Rock', 'Grassy Seed', - ], + banlist: ['PU', 'ZUBL', 'Damp Rock', 'Grassy Seed'], }, { name: "[Gen 8] CAP", - threads: [ - `• CAP Metagame Discussion`, - `• CAP Sample Teams`, - `• CAP Viability Rankings`, - ], - + desc: "The Create-A-Pokémon project is a community dedicated to exploring and understanding the competitive Pokémon metagame by designing, creating, and playtesting new Pokémon concepts.", mod: 'gen8', searchShow: false, ruleset: ['[Gen 8] OU', '+CAP'], banlist: ['Crucibellite'], }, { - name: "[Gen 8] National Dex", - threads: [ - `• SS National Dex Metagame Discussion`, - `• SS National Dex Sample Teams`, - `• SS National Dex Viability Rankings`, - ], - - mod: 'gen8', - searchShow: false, - ruleset: ['Standard NatDex', 'OHKO Clause', 'Evasion Clause', 'Species Clause', 'Dynamax Clause', 'Sleep Clause Mod'], - banlist: ['ND Uber', 'Arena Trap', 'Moody', 'Power Construct', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Quick Claw', 'Baton Pass'], - }, - { - name: "[Gen 8] National Dex UU", - threads: [ - `• National Dex UU Metagame Discussion`, - `• National Dex UU Sample Teams`, - `• National Dex UU Viability Rankings`, - ], - + name: "[Gen 8] Battle Stadium Singles", mod: 'gen8', searchShow: false, - ruleset: ['[Gen 8] National Dex'], - banlist: ['ND OU', 'ND UUBL', 'Drizzle', 'Drought', 'Light Clay', 'Slowbronite'], + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit Two Restricted'], + restricted: ['Restricted Legendary'], }, { name: "[Gen 8 BDSP] OU", - threads: [ - `• BDSP OU Metagame Discussion`, - `• BDSP OU Sample Teams`, - `• BDSP OU Viability Rankings`, - ], - mod: 'gen8bdsp', searchShow: false, - ruleset: ['Standard'], - banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Sand Veil', 'Shadow Tag', 'Snow Cloak', 'King\'s Rock', 'Razor Fang', 'Baton Pass'], + ruleset: ['Standard', 'Evasion Abilities Clause'], + banlist: ['Uber', 'Arena Trap', 'Drizzle', 'Moody', 'Shadow Tag', 'King\'s Rock', 'Razor Fang', 'Baton Pass'], }, { - name: "[Gen 8] Battle Stadium Singles", - - mod: 'gen8', + name: "[Gen 8 BDSP] Ubers", + mod: 'gen8bdsp', searchShow: false, - ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit Two Restricted'], - restricted: ['Restricted Legendary'], + ruleset: ['Standard'], + banlist: ['AG', 'Baton Pass'], }, { name: "[Gen 8] Custom Game", - mod: 'gen8', searchShow: false, debug: true, @@ -2792,14 +3334,10 @@ export const Formats: FormatList = [ { section: "Sw/Sh Doubles", - column: 5, + column: 4, }, { name: "[Gen 8] Doubles Ubers", - threads: [ - `• Doubles Ubers`, - ], - mod: 'gen8', gameType: 'doubles', searchShow: false, @@ -2808,10 +3346,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] Doubles UU", - threads: [ - `• Doubles UU`, - ], - mod: 'gen8', gameType: 'doubles', searchShow: false, @@ -2820,40 +3354,31 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] VGC 2022", - threads: [ - `• VGC 2022 Metagame Discussion`, - `• VGC 2022 Sample Teams`, - `• VGC 2022 Viability Rankings`, - ], - mod: 'gen8', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer', 'Limit Two Restricted'], restricted: ['Restricted Legendary'], }, { name: "[Gen 8] VGC 2021", - mod: 'gen8', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer'], }, { name: "[Gen 8] VGC 2020", - mod: 'gen8dlc1', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 8', 'VGC Timer'], }, { name: "[Gen 8 BDSP] Doubles OU", - threads: [ - `• BDSP Doubles OU`, - ], - mod: 'gen8bdsp', gameType: 'doubles', searchShow: false, @@ -2862,10 +3387,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8 BDSP] Battle Festival Doubles", - threads: [ - `• Battle Festival Doubles`, - ], - mod: 'gen8bdsp', gameType: 'doubles', searchShow: false, @@ -2873,7 +3394,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 8] Doubles Custom Game", - mod: 'gen8', gameType: 'doubles', searchShow: false, @@ -2887,14 +3407,10 @@ export const Formats: FormatList = [ /////////////////////////////////////////////////////////////////// { section: "US/UM Singles", - column: 5, + column: 4, }, { name: "[Gen 7] Ubers", - threads: [ - `• USM Ubers`, - ], - mod: 'gen7', searchShow: false, ruleset: ['Standard', 'Mega Rayquaza Clause'], @@ -2902,11 +3418,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] UU", - threads: [ - `• USM UU Sample Teams`, - `• USM UU Viability Rankings`, - ], - mod: 'gen7', searchShow: false, ruleset: ['[Gen 7] OU'], @@ -2914,11 +3425,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] RU", - threads: [ - `• USM RU Sample Teams`, - `• USM RU Viability Rankings`, - ], - mod: 'gen7', searchShow: false, ruleset: ['[Gen 7] UU'], @@ -2927,11 +3433,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] NU", - threads: [ - `• USM NU Sample Teams`, - `• USM NU Viability Rankings`, - ], - mod: 'gen7', searchShow: false, ruleset: ['[Gen 7] RU'], @@ -2939,11 +3440,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] PU", - threads: [ - `• USM PU Sample Teams`, - `• USM PU Viability Rankings`, - ], - mod: 'gen7', searchShow: false, ruleset: ['[Gen 7] NU'], @@ -2951,12 +3447,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] LC", - threads: [ - `• USM LC Banlist`, - `• USM LC Sample Teams`, - `• USM LC Viability Rankings`, - ], - mod: 'gen7', searchShow: false, ruleset: ['Little Cup', 'Standard', 'Swagger Clause'], @@ -2969,15 +3459,11 @@ export const Formats: FormatList = [ { name: "[Gen 7] Monotype", desc: `All the Pokémon on a team must share a type.`, - threads: [ - `• USM Monotype`, - ], - mod: 'gen7', searchShow: false, - ruleset: ['Same Type Clause', 'Standard', 'Swagger Clause'], + ruleset: ['Same Type Clause', 'Standard', 'Evasion Abilities Clause', 'Swagger Clause'], banlist: [ - 'Aegislash', 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Dialga', 'Genesect', 'Gengar-Mega', 'Giratina', 'Giratina-Origin', + 'Aegislash', 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Dialga', 'Genesect', 'Gengar-Mega', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kartana', 'Kyogre', 'Kyurem-White', 'Lucario-Mega', 'Lugia', 'Lunala', 'Magearna', 'Marshadow', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Naganadel', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Pheromosa', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Solgaleo', 'Tapu Lele', 'Xerneas', 'Yveltal', 'Zekrom', 'Zygarde', @@ -2987,10 +3473,6 @@ export const Formats: FormatList = [ { name: "[Gen 7] 1v1", desc: `Bring three Pokémon to Team Preview and choose one to battle.`, - threads: [ - `• USUM 1v1`, - ], - mod: 'gen7', searchShow: false, ruleset: [ @@ -2998,7 +3480,7 @@ export const Formats: FormatList = [ 'Obtainable', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Swagger Clause', 'Evasion Moves Clause', 'Accuracy Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', ], banlist: [ - 'Arceus', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', + 'Arceus', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Lunala', 'Marshadow', 'Mew', 'Mewtwo', 'Mimikyu', 'Necrozma-Dawn-Wings', 'Necrozma-Dusk-Mane', 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Snorlax', 'Solgaleo', 'Tapu Koko', 'Xerneas', 'Yveltal', 'Zekrom', 'Moody', 'Focus Sash', 'Grass Whistle', 'Hypnosis', @@ -3007,12 +3489,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] Anything Goes", - threads: [ - `• Anything Goes Metagame Discussion`, - `• Anything Goes Viability Rankings`, - `• Anything Goes Sample Teams`, - ], - mod: 'gen7', searchShow: false, ruleset: ['Obtainable', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause'], @@ -3020,61 +3496,35 @@ export const Formats: FormatList = [ { name: "[Gen 7] ZU", desc: `The unofficial usage-based tier below PU.`, - threads: [ - `• ZU Metagame Discussion`, - `• ZU Viability Rankings`, - `• ZU Sample Teams`, - ], - mod: 'gen7', searchShow: false, ruleset: ['[Gen 7] PU'], - banlist: [ - 'PU', 'Carracosta', 'Crabominable', 'Exeggutor-Base', 'Gorebyss', 'Jynx', 'Raticate-Alola', - 'Shiftry', 'Throh', 'Turtonator', 'Type: Null', 'Ursaring', 'Victreebel', - ], + banlist: ['PU', 'ZUBL'], }, { name: "[Gen 7] CAP", - threads: [ - `• USUM CAP Metagame Discussion`, - `• USUM CAP Viability Rankings`, - `• USUM CAP Sample Teams`, - ], - + desc: "The Create-A-Pokémon project is a community dedicated to exploring and understanding the competitive Pokémon metagame by designing, creating, and playtesting new Pokémon concepts.", mod: 'gen7', searchShow: false, ruleset: ['[Gen 7] OU', '+CAP'], }, { name: "[Gen 7] Battle Spot Singles", - threads: [ - `• Introduction to Battle Spot Singles`, - `• Battle Spot Singles Viability Rankings`, - `• Battle Spot Singles Role Compendium`, - `• Battle Spot Singles Sample Teams`, - ], - mod: 'gen7', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Min Source Gen = 6'], banlist: ['Battle Bond'], }, { name: "[Gen 7 Let's Go] OU", - threads: [ - `• LGPE OU Metagame Discussion`, - `• LGPE OU Viability Rankings`, - ], - mod: 'gen7letsgo', searchShow: false, - ruleset: ['Adjust Level = 50', 'Obtainable', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Team Preview', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + ruleset: ['Standard'], banlist: ['Uber'], }, { name: "[Gen 7] Custom Game", - mod: 'gen7', searchShow: false, debug: true, @@ -3088,12 +3538,10 @@ export const Formats: FormatList = [ { section: "US/UM Doubles", - column: 5, + column: 4, }, { name: "[Gen 7] Doubles UU", - threads: [`• Doubles UU Metagame Discussion`], - mod: 'gen7', gameType: 'doubles', searchShow: false, @@ -3102,93 +3550,54 @@ export const Formats: FormatList = [ }, { name: "[Gen 7] VGC 2019", - threads: [ - `• VGC 2019 Discussion`, - `• VGC 2019 Viability Rankings`, - ], - mod: 'gen7', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 7', 'VGC Timer', 'Limit Two Restricted'], restricted: ['Restricted Legendary'], banlist: ['Unown', 'Battle Bond'], }, { name: "[Gen 7] VGC 2018", - threads: [ - `• VGC 2018 Discussion`, - `• VGC 2018 Viability Rankings`, - `• VGC 2018 Sample Teams`, - ], - mod: 'gen7', gameType: 'doubles', searchShow: false, - timer: { - starting: 5 * 60, - addPerTurn: 0, - maxPerTurn: 55, - maxFirstTurn: 90, - grace: 90, - timeoutAutoChoose: true, - dcTimerBank: false, - }, - ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 7'], + bestOfDefault: true, + ruleset: ['Flat Rules', '!! Adjust Level = 50', 'Min Source Gen = 7', 'VGC Timer', '!! Timer Starting = 300'], banlist: ['Oranguru + Symbiosis', 'Passimian + Defiant', 'Unown', 'Custap Berry', 'Enigma Berry', 'Jaboca Berry', 'Micle Berry', 'Rowap Berry', 'Battle Bond'], }, { name: "[Gen 7] VGC 2017", - threads: [ - `• VGC 2017 Discussion`, - `• VGC 2017 Viability Rankings`, - `• VGC 2017 Sample Teams`, - ], - mod: 'gen7sm', gameType: 'doubles', searchShow: false, - timer: { - starting: 15 * 60, - addPerTurn: 0, - maxPerTurn: 55, - maxFirstTurn: 90, - grace: 90, - timeoutAutoChoose: true, - dcTimerBank: false, - }, - ruleset: ['Flat Rules', 'Old Alola Pokedex', '!! Adjust Level = 50', 'Min Source Gen = 7'], + bestOfDefault: true, + ruleset: [ + 'Flat Rules', 'Old Alola Pokedex', '!! Adjust Level = 50', 'Min Source Gen = 7', + 'VGC Timer', '!! Timer Starting = 900', + ], banlist: ['Mega', 'Custap Berry', 'Enigma Berry', 'Jaboca Berry', 'Micle Berry', 'Rowap Berry'], }, { name: "[Gen 7] Battle Spot Doubles", - threads: [ - `• Battle Spot Doubles Discussion`, - `• Battle Spot Doubles Viability Rankings`, - `• Battle Spot Doubles Sample Teams`, - ], - mod: 'gen7', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Min Source Gen = 6'], banlist: ['Battle Bond'], }, { name: "[Gen 7 Let's Go] Doubles OU", - threads: [ - `• LGPE Doubles OU`, - ], - mod: 'gen7letsgo', gameType: 'doubles', searchShow: false, ruleset: ['Standard Doubles', 'Sleep Clause Mod'], - banlist: ['Mewtwo'], + banlist: ['DUber'], }, { name: "[Gen 7] Doubles Custom Game", - mod: 'gen7', gameType: 'doubles', searchShow: false, @@ -3203,25 +3612,16 @@ export const Formats: FormatList = [ { section: "OR/AS Singles", - column: 6, + column: 4, }, { name: "[Gen 6] Ubers", - threads: [ - `• ORAS Ubers`, - ], - mod: 'gen6', searchShow: false, ruleset: ['Standard', 'Swagger Clause', 'Mega Rayquaza Clause'], }, { name: "[Gen 6] UU", - threads: [ - `• ORAS UU Banlist`, - `• ORAS UU Viability Rankings`, - ], - mod: 'gen6', searchShow: false, ruleset: ['[Gen 6] OU'], @@ -3229,11 +3629,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] NU", - threads: [ - `• ORAS NU Banlist`, - `• ORAS NU Viability Rankings`, - ], - mod: 'gen6', searchShow: false, ruleset: ['[Gen 6] RU'], @@ -3241,11 +3636,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] PU", - threads: [ - `• ORAS PU Banlist`, - `• ORAS PU Viability Rankings`, - ], - mod: 'gen6', searchShow: false, ruleset: ['[Gen 6] NU'], @@ -3253,11 +3643,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] LC", - threads: [ - `• ORAS LC Banlist`, - `• ORAS LC Viability Rankings`, - ], - mod: 'gen6', searchShow: false, ruleset: ['Standard', 'Little Cup'], @@ -3269,28 +3654,20 @@ export const Formats: FormatList = [ { name: "[Gen 6] Monotype", desc: `All the Pokémon on a team must share a type.`, - threads: [ - `• ORAS Monotype`, - ], - mod: 'gen6', searchShow: false, - ruleset: ['Standard', 'Swagger Clause', 'Same Type Clause'], + ruleset: ['Standard', 'Swagger Clause', 'Evasion Abilities Clause', 'Same Type Clause'], banlist: [ - 'Aegislash', 'Altaria-Mega', 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Speed', 'Dialga', 'Genesect', - 'Gengar-Mega', 'Giratina', 'Giratina-Origin', 'Greninja', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', - 'Lucario-Mega', 'Lugia', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Sableye-Mega', - 'Salamence-Mega', 'Shaymin-Sky', 'Slowbro-Mega', 'Talonflame', 'Xerneas', 'Yveltal', 'Zekrom', - 'Shadow Tag', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Smooth Rock', 'Soul Dew', 'Baton Pass', + 'Aegislash', 'Altaria-Mega', 'Arceus', 'Blaziken', 'Darkrai', 'Deoxys-Normal', 'Deoxys-Attack', 'Deoxys-Speed', 'Dialga', 'Genesect', 'Gengar-Mega', + 'Giratina', 'Giratina-Origin', 'Greninja', 'Groudon', 'Ho-Oh', 'Hoopa-Unbound', 'Kangaskhan-Mega', 'Keldeo', 'Kyogre', 'Kyurem-White', 'Lucario-Mega', + 'Lugia', 'Mawile-Mega', 'Medicham-Mega', 'Metagross-Mega', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', 'Sableye-Mega', 'Salamence-Mega', 'Shaymin-Sky', + 'Slowbro-Mega', 'Talonflame', 'Xerneas', 'Yveltal', 'Zekrom', 'Shadow Tag', 'Damp Rock', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Razor Fang', + 'Smooth Rock', 'Soul Dew', 'Baton Pass', ], }, { name: "[Gen 6] 1v1", desc: `Bring three Pokémon to Team Preview and choose one to battle.`, - threads: [ - `• ORAS 1v1`, - ], - mod: 'gen6', searchShow: false, ruleset: [ @@ -3299,43 +3676,28 @@ export const Formats: FormatList = [ 'Cancel Mod', 'Team Preview', ], banlist: [ - 'Arceus', 'Blaziken', 'Charizard-Mega-Y', 'Darkrai', 'Deoxys-Base', 'Deoxys-Attack', 'Deoxys-Defense', 'Dialga', - 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo', - 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Snorlax', 'Xerneas', 'Yveltal', 'Zekrom', - 'Focus Sash', 'Soul Dew', 'Grass Whistle', 'Hypnosis', 'Perish Song', 'Sing', 'Yawn', + 'Arceus', 'Blaziken-Mega', 'Charizard-Mega-X', 'Charizard-Mega-Y', 'Deoxys-Normal', 'Deoxys-Attack', 'Deoxys-Defense', + 'Dialga', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Kangaskhan-Mega', 'Kyogre', 'Kyurem-White', 'Lugia', 'Mewtwo', + 'Palkia', 'Rayquaza', 'Reshiram', 'Salamence-Mega', 'Shaymin-Sky', 'Snorlax', 'Xerneas', 'Yveltal', 'Zekrom', 'Focus Sash', + 'Soul Dew', 'Dark Void', 'Grass Whistle', 'Hypnosis', 'Perish Song', 'Sing', 'Sleep Powder', 'Yawn', ], }, { name: "[Gen 6] Anything Goes", - threads: [ - `• ORAS Anything Goes`, - `• ORAS AG Resources`, - ], - mod: 'gen6', searchShow: false, ruleset: ['Obtainable', 'Team Preview', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], }, { name: "[Gen 6] ZU", - threads: [ - `• ORAS ZU Banlist`, - `• ORAS ZU Viability Rankings`, - ], - mod: 'gen6', searchShow: false, ruleset: ['[Gen 6] PU'], - banlist: ['PU', 'Fraxure', 'Regigigas', 'Simisear'], + banlist: ['PU', 'ZUBL'], }, { name: "[Gen 6] CAP", - threads: [ - `• ORAS CAP Metagame Discussion`, - `• ORAS CAP Sample Teams`, - `• ORAS CAP Viability Rankings`, - ], - + desc: "The Create-A-Pokémon project is a community dedicated to exploring and understanding the competitive Pokémon metagame by designing, creating, and playtesting new Pokémon concepts.", mod: 'gen6', searchShow: false, ruleset: ['[Gen 6] OU', '+CAP'], @@ -3343,19 +3705,14 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] Battle Spot Singles", - threads: [ - `• ORAS Battle Spot Singles`, - `• ORAS BSS Viability Rankings`, - ], - mod: 'gen6', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Min Source Gen = 6'], banlist: ['Soul Dew'], }, { name: "[Gen 6] Custom Game", - mod: 'gen6', searchShow: false, debug: true, @@ -3369,64 +3726,46 @@ export const Formats: FormatList = [ { section: "OR/AS Doubles/Triples", - column: 6, + column: 4, }, { name: "[Gen 6] VGC 2016", - threads: [ - `• VGC 2016 Rules`, - `• VGC 2016 Viability Rankings`, - ], - mod: 'gen6', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Min Source Gen = 6', 'Limit Two Restricted'], restricted: ['Restricted Legendary'], banlist: ['Soul Dew'], }, { name: "[Gen 6] VGC 2015", - threads: [ - `• VGC 2015 Rules`, - `• ORAS Battle Spot Doubles Discussion`, - `• VGC 2015 Viability Rankings`, - ], - mod: 'gen6', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Min Source Gen = 6'], banlist: ['Soul Dew', 'Articuno + Snow Cloak', 'Zapdos + Static', 'Moltres + Flame Body', 'Dragonite + Barrier'], }, { name: "[Gen 6] VGC 2014", - threads: [ - `• VGC 2014 Rules`, - `• VGC 2014 Viability Rankings`, - ], - mod: 'gen6xy', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Kalos Pokedex', 'Min Source Gen = 6'], }, { name: "[Gen 6] Battle Spot Doubles", - threads: [ - `• ORAS Battle Spot Doubles Discussion`, - `• ORAS BSD Viability Rankings`, - ], - mod: 'gen6', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Min Source Gen = 6'], banlist: ['Soul Dew'], }, { name: "[Gen 6] Doubles Custom Game", - mod: 'gen6', gameType: 'doubles', searchShow: false, @@ -3437,11 +3776,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] Battle Spot Triples", - threads: [ - `• ORAS Battle Spot Triples Discussion`, - `• ORAS BST Viability Rankings`, - ], - mod: 'gen6', gameType: 'triples', searchShow: false, @@ -3449,7 +3783,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 6] Triples Custom Game", - mod: 'gen6', gameType: 'triples', searchShow: false, @@ -3464,25 +3797,17 @@ export const Formats: FormatList = [ { section: "B2/W2 Singles", - column: 6, + column: 4, }, { - name: "[Gen 5] Ubers", - threads: [ - `• BW2 Ubers`, - ], - + name: "[Gen 5] UU", mod: 'gen5', searchShow: false, - ruleset: ['Standard', 'Sleep Clause Mod'], + ruleset: ['Standard', 'Evasion Abilities Clause', 'Swagger Clause', 'Sleep Clause Mod'], + banlist: ['Uber', 'OU', 'UUBL', 'Arena Trap', 'Drought', 'Sand Stream', 'Snow Warning', 'Prankster + Assist', 'Prankster + Copycat', 'Baton Pass'], }, { name: "[Gen 5] RU", - threads: [ - `• BW2 Sample Teams`, - `• BW2 RU Viability Rankings`, - ], - mod: 'gen5', searchShow: false, ruleset: ['[Gen 5] UU', 'Baton Pass Clause', '!Sleep Clause Mod', 'Sleep Moves Clause'], @@ -3491,11 +3816,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 5] NU", - threads: [ - `• BW2 Sample Teams`, - `• BW2 NU Viability Rankings`, - ], - mod: 'gen5', searchShow: false, ruleset: ['[Gen 5] RU', '!Sleep Moves Clause', 'Sleep Clause Mod'], @@ -3503,10 +3823,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 5] PU", - threads: [ - `• BW2 PU`, - ], - mod: 'gen5', searchShow: false, ruleset: ['[Gen 5] NU', 'Sleep Moves Clause'], @@ -3514,11 +3830,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 5] LC", - threads: [ - `• BW2 Sample Teams`, - `• BW2 LC Viability Rankings`, - ], - mod: 'gen5', searchShow: false, ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'], @@ -3530,66 +3841,71 @@ export const Formats: FormatList = [ { name: "[Gen 5] Monotype", desc: `All the Pokémon on a team must share a type.`, - threads: [ - `• BW2 Monotype`, - ], - mod: 'gen5', searchShow: false, ruleset: ['[Gen 5] OU', 'Same Type Clause', '!Gems Clause'], banlist: ['Latios'], + unbanlist: ['Cloyster'], }, { name: "[Gen 5] 1v1", desc: `Bring three Pokémon to Team Preview and choose one to battle.`, - threads: [ - `• BW2 1v1`, - ], - mod: 'gen5', searchShow: false, ruleset: [ 'Picked Team Size = 1', 'Max Team Size = 3', 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Accuracy Moves Clause', 'Sleep Moves Clause', ], - banlist: ['Uber', 'Cottonee', 'Dragonite', 'Jirachi', 'Kyurem-Black', 'Mew', 'Togekiss', 'Whimsicott', 'Victini', 'Focus Band', 'Focus Sash', 'Quick Claw', 'Soul Dew', 'Perish Song'], - unbanlist: ['Genesect', 'Landorus', 'Manaphy', 'Thundurus', 'Tornadus-Therian'], + banlist: [ + 'Arceus', 'Blaziken', 'Cottonee', 'Darkrai', 'Deoxys', 'Dialga', 'Dragonite', 'Giratina', 'Groudon', 'Ho-Oh', + 'Jirachi', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia', 'Mew', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram', + 'Shaymin-Sky', 'Thundurus-Incarnate', 'Togekiss', 'Victini', 'Whimsicott', 'Zekrom', 'Focus Band', 'Focus Sash', + 'Quick Claw', 'Soul Dew', 'Perish Song', + ], }, { name: "[Gen 5] ZU", - threads: [ - `• BW2 ZU`, - ], - mod: 'gen5', searchShow: false, ruleset: ['[Gen 5] PU'], - banlist: ['PU', 'Articuno', 'Dragonair', 'Glalie', 'Machoke', 'Marowak', 'Omanyte', 'Regigigas', 'Trubbish', 'Whirlipede', 'Baton Pass'], + banlist: [ + // PU + 'Audino', 'Banette', 'Beheeyem', 'Bronzor', 'Dodrio', 'Duosion', 'Dwebble', 'Fraxure', 'Gabite', 'Golduck', + 'Huntail', 'Jumpluff', 'Klang', 'Krokorok', 'Mantine', 'Maractus', 'Mawile', 'Monferno', 'Murkrow', 'Natu', + 'Purugly', 'Rampardos', 'Rapidash', 'Relicanth', 'Scraggy', 'Shiftry', 'Simisage', 'Sneasel', 'Stoutland', + 'Stunfisk', 'Swanna', 'Swoobat', 'Tentacool', 'Torterra', 'Ursaring', 'Victreebel', 'Vileplume', 'Volbeat', + 'Zebstrika', 'Zweilous', + // ZUBL + 'Articuno', 'Dragonair', 'Glalie', 'Machoke', 'Marowak', 'Omanyte', 'Regigigas', 'Trubbish', 'Whirlipede', + 'King\'s Rock', 'Quick Claw', 'Razor Fang', 'Baton Pass', + ], unbanlist: ['Damp Rock'], }, { name: "[Gen 5] CAP", - threads: [ - `• BW2 CAP Viability Rankings`, - `• BW2 CAP Sample Teams`, - ], - + desc: "The Create-A-Pokémon project is a community dedicated to exploring and understanding the competitive Pokémon metagame by designing, creating, and playtesting new Pokémon concepts.", mod: 'gen5', searchShow: false, ruleset: ['[Gen 5] OU', '+CAP'], - banlist: ['Aurumoth', 'Cawmodore'], + banlist: ['Cawmodore'], + }, + { + name: "[Gen 5] BW1 OU", + mod: 'gen5bw1', + searchShow: false, + ruleset: ['Standard', 'Sleep Clause Mod', 'Swagger Clause', 'Baton Pass Stat Clause'], + banlist: ['Uber', 'Drizzle ++ Swift Swim', 'King\'s Rock', 'Razor Fang', 'Soul Dew'], }, { name: "[Gen 5] GBU Singles", - mod: 'gen5', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules'], banlist: ['Dark Void', 'Sky Drop', 'Soul Dew'], }, { name: "[Gen 5] Custom Game", - mod: 'gen5', searchShow: false, debug: true, @@ -3602,39 +3918,38 @@ export const Formats: FormatList = [ /////////////////////////////////////////////////////////////////// { - section: 'B2/W2 Doubles', - column: 6, + section: "B2/W2 Doubles", + column: 4, }, { name: "[Gen 5] VGC 2013", - mod: 'gen5', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules'], banlist: ['Chatot', 'Dark Void', 'Sky Drop', 'Soul Dew'], }, { name: "[Gen 5] VGC 2012", - mod: 'gen5bw1', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules'], banlist: ['Dark Void', 'Sky Drop'], }, { name: "[Gen 5] VGC 2011", - mod: 'gen5bw1', gameType: 'doubles', searchShow: false, + bestOfDefault: true, ruleset: ['Flat Rules', 'Old Unova Pokedex'], banlist: ['Sky Drop', 'Belue Berry', 'Durin Berry', 'Nomel Berry', 'Rabuta Berry', 'Spelon Berry', 'Watmel Berry'], }, { name: "[Gen 5] Doubles Custom Game", - mod: 'gen5', gameType: 'doubles', searchShow: false, @@ -3645,7 +3960,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 5] Triples Custom Game", - mod: 'gen5', gameType: 'triples', searchShow: false, @@ -3660,14 +3974,10 @@ export const Formats: FormatList = [ { section: "DPP Singles", - column: 7, + column: 4, }, { name: "[Gen 4] Ubers", - threads: [ - `• DPP Ubers`, - ], - mod: 'gen4', searchShow: false, ruleset: ['Standard'], @@ -3675,24 +3985,14 @@ export const Formats: FormatList = [ }, { name: "[Gen 4] UU", - threads: [ - `• DPP UU Metagame Discussion`, - `• DPP UU Viability Rankings`, - ], - mod: 'gen4', searchShow: false, - ruleset: ['[Gen 4] OU', '!Freeze Clause Mod'], - banlist: ['OU', 'UUBL'], - unbanlist: ['Arena Trap', 'Swagger'], + ruleset: ['[Gen 4] OU', '!Baton Pass Stat Trap Clause', '!Freeze Clause Mod'], + banlist: ['OU', 'UUBL', 'Baton Pass'], + unbanlist: ['Arena Trap', 'Snow Cloak', 'Quick Claw', 'Swagger'], }, { name: "[Gen 4] NU", - threads: [ - `• DPP NU Metagame Discussion`, - `• DPP NU Viability Rankings`, - ], - mod: 'gen4', searchShow: false, ruleset: ['[Gen 4] UU', 'Baton Pass Clause'], @@ -3701,28 +4001,20 @@ export const Formats: FormatList = [ }, { name: "[Gen 4] PU", - threads: [ - `• DPP PU`, - ], - mod: 'gen4', searchShow: false, ruleset: ['[Gen 4] NU'], banlist: [ 'Articuno', 'Cacturne', 'Charizard', 'Cradily', 'Dodrio', 'Drifblim', 'Dusclops', 'Electrode', 'Floatzel', 'Gardevoir', 'Gligar', 'Golem', 'Grumpig', 'Haunter', 'Hitmonchan', 'Hypno', 'Jumpluff', - 'Jynx', 'Lickilicky', 'Linoone', 'Magmortar', 'Magneton', 'Manectric', 'Medicham', 'Meganium', 'Nidoqueen', - 'Ninetales', 'Piloswine', 'Poliwrath', 'Porygon2', 'Regice', 'Regirock', 'Roselia', 'Sandslash', - 'Sharpedo', 'Shiftry', 'Skuntank', 'Slowking', 'Tauros', 'Typhlosion', 'Venomoth', 'Vileplume', + 'Jynx', 'Lickilicky', 'Linoone', 'Magmortar', 'Magneton', 'Manectric', 'Medicham', 'Meganium', + 'Nidoqueen', 'Ninetales', 'Piloswine', 'Poliwrath', 'Porygon2', 'Regice', 'Regirock', 'Roselia', + 'Sandslash', 'Sharpedo', 'Shiftry', 'Skuntank', 'Slowking', 'Tauros', 'Typhlosion', 'Venomoth', + 'Vileplume', ], }, { name: "[Gen 4] LC", - threads: [ - `• DPP LC Guide`, - `• DPP LC Viability Rankings`, - ], - mod: 'gen4', searchShow: false, ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause'], @@ -3733,7 +4025,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 4] Anything Goes", - mod: 'gen4', searchShow: false, ruleset: ['Obtainable', 'Arceus EV Limit', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], @@ -3741,25 +4032,28 @@ export const Formats: FormatList = [ { name: "[Gen 4] 1v1", desc: `Bring three Pokémon to Team Preview and choose one to battle.`, - threads: [ - `• DPP 1v1`, - ], - mod: 'gen4', searchShow: false, ruleset: [ 'Picked Team Size = 1', 'Max Team Size = 3', - '[Gen 4] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', '!Freeze Clause Mod', + 'Standard', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', ], - banlist: ['Latias', 'Machamp', 'Porygon-Z', 'Shaymin', 'Snorlax', 'Togekiss', 'Focus Sash', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct'], - unbanlist: ['Wobbuffet', 'Wynaut', 'Sand Veil', 'Swagger'], + banlist: [ + 'Arceus', 'Clefable', 'Darkrai', 'Deoxys-Attack', 'Deoxys-Normal', 'Deoxys-Defense', 'Deoxys-Speed', 'Dialga', 'Garchomp', + 'Giratina', 'Groudon', 'Ho-Oh', 'Jirachi', 'Kyogre', 'Latias', 'Latios', 'Lugia', 'Machamp', 'Manaphy', 'Mew', 'Mewtwo', + 'Palkia', 'Porygon-Z', 'Rayquaza', 'Salamence', 'Shaymin', 'Shaymin-Sky', 'Snorlax', 'Togekiss', 'Focus Band', 'Focus Sash', + 'Quick Claw', 'Soul Dew', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct', + ], + }, + { + name: "[Gen 4] CAP", + desc: "The Create-A-Pokémon project is a community dedicated to exploring and understanding the competitive Pokémon metagame by designing, creating, and playtesting new Pokémon concepts.", + mod: 'gen4', + searchShow: false, + ruleset: ['[Gen 4] OU', '+CAP'], }, { name: "[Gen 4] ZU", - threads: [ - `• DPP ZU`, - ], - mod: 'gen4', searchShow: false, ruleset: ['[Gen 4] PU'], @@ -3771,20 +4065,8 @@ export const Formats: FormatList = [ 'Solrock', 'Tangela', 'Torkoal', 'Victreebel', 'Xatu', 'Walrein', 'Zangoose', 'Damp Rock', ], }, - { - name: "[Gen 4] CAP", - threads: [ - `• DPP CAP Viability Rankings`, - `• DPP CAP Sample Teams`, - ], - - mod: 'gen4', - searchShow: false, - ruleset: ['[Gen 4] OU', '+CAP'], - }, { name: "[Gen 4] Custom Game", - mod: 'gen4', searchShow: false, debug: true, @@ -3798,30 +4080,27 @@ export const Formats: FormatList = [ { section: "DPP Doubles", - column: 7, + column: 4, }, { name: "[Gen 4] VGC 2010", - mod: 'gen4', gameType: 'doubles', searchShow: false, - ruleset: ['Flat Rules', 'Max Team Size = 4', 'Limit Two Restricted'], + ruleset: ['Flat Rules', 'Min Team Size = 4', 'Max Team Size = 4', 'Limit Two Restricted'], restricted: ['Restricted Legendary'], banlist: ['Soul Dew'], }, { name: "[Gen 4] VGC 2009", - mod: 'gen4pt', gameType: 'doubles', searchShow: false, - ruleset: ['Flat Rules', '! Adjust Level Down', 'Max Level = 50', 'Max Team Size = 4'], + ruleset: ['Flat Rules', '! Adjust Level Down', 'Max Level = 50', 'Min Team Size = 4', 'Max Team Size = 4'], banlist: ['Tyranitar', 'Rotom', 'Judgment', 'Soul Dew'], }, { name: "[Gen 4] Doubles Custom Game", - mod: 'gen4', gameType: 'doubles', searchShow: false, @@ -3836,75 +4115,67 @@ export const Formats: FormatList = [ { section: "Past Generations", - column: 7, + column: 4, }, { name: "[Gen 3] Ubers", - threads: [ - `• ADV Ubers`, - ], - mod: 'gen3', searchShow: false, ruleset: ['Standard', 'Deoxys Camouflage Clause', 'One Baton Pass Clause'], - banlist: ['Wobbuffet + Leftovers'], + banlist: ['Wobbuffet + Leftovers', 'Wynaut + Leftovers', 'Baton Pass'], }, { name: "[Gen 3] UU", - threads: [ - `• ADV UU Metagame Discussion`, - `• ADV UU Viability Rankings`, - ], - mod: 'gen3', searchShow: false, ruleset: ['Standard'], banlist: ['Uber', 'OU', 'UUBL', 'Smeargle + Ingrain', 'Arena Trap', 'Baton Pass', 'Swagger'], }, + { + name: "[Gen 3] RU", + mod: 'gen3', + searchShow: false, + ruleset: ['Standard'], + banlist: ['Uber', 'OU', 'UUBL', 'UU', 'RUBL', 'Smeargle + Ingrain', 'Arena Trap', 'Baton Pass', 'Swagger'], + }, { name: "[Gen 3] NU", - threads: [ - `• ADV NU Viability Rankings`, - ], - mod: 'gen3', searchShow: false, ruleset: ['Standard'], - banlist: ['Uber', 'OU', 'UUBL', 'UU', 'Smeargle + Ingrain'], + banlist: ['Uber', 'OU', 'UUBL', 'UU', 'RUBL', 'RU', 'Smeargle + Ingrain'], }, { name: "[Gen 3] PU", - threads: [ - `• ADV PU`, - ], - mod: 'gen3', searchShow: false, - ruleset: ['Standard'], - banlist: ['Uber', 'OU', 'UUBL', 'UU', 'NUBL', 'NU'], + ruleset: ['Standard', 'Baton Pass Stat Clause'], + banlist: ['Uber', 'OU', 'UUBL', 'UU', 'RUBL', 'RU', 'NUBL', 'NU', 'PUBL'], + }, + { + name: "[Gen 3] LC", + mod: 'gen3', + searchShow: false, + ruleset: ['Standard', 'Little Cup', 'Sleep Moves Clause', 'Accuracy Moves Clause'], + banlist: ['Chansey', 'Meditite', 'Omanyte', 'Porygon', 'Scyther', 'Wynaut', 'Zigzagoon', 'Deep Sea Tooth', 'Baton Pass', 'Dragon Rage', 'Sonic Boom', 'Swagger', 'Thunder Wave'], }, { name: "[Gen 3] 1v1", desc: `Bring three Pokémon to Team Preview and choose one to battle.`, - threads: [ - `• ADV 1v1`, - ], - mod: 'gen3', searchShow: false, ruleset: [ 'Picked Team Size = 1', 'Max Team Size = 3', - '[Gen 3] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', '!Freeze Clause Mod', + 'Standard', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', ], banlist: [ - 'Clefable', 'Slaking', 'Snorlax', 'Suicune', 'Zapdos', 'Destiny Bond', 'Explosion', 'Ingrain', 'Perish Song', + 'Clefable', 'Deoxys', 'Deoxys-Attack', 'Deoxys-Defense', 'Deoxys-Speed', 'Groudon', 'Ho-Oh', 'Kyogre', 'Latias', 'Latios', + 'Lugia', 'Mew', 'Mewtwo', 'Rayquaza', 'Slaking', 'Snorlax', 'Suicune', 'Zapdos', 'Destiny Bond', 'Explosion', 'Perish Song', 'Self-Destruct', 'Focus Band', 'King\'s Rock', 'Quick Claw', ], - unbanlist: ['Mr. Mime', 'Wobbuffet', 'Wynaut', 'Sand Veil', 'Soundproof'], }, { name: "[Gen 3] Custom Game", - mod: 'gen3', searchShow: false, debug: true, @@ -3913,7 +4184,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 3] Doubles Custom Game", - mod: 'gen3', gameType: 'doubles', searchShow: false, @@ -3922,18 +4192,12 @@ export const Formats: FormatList = [ }, { name: "[Gen 2] Ubers", - threads: [ - `• GSC Ubers`, - ], - mod: 'gen2', searchShow: false, ruleset: ['Standard'], }, { name: "[Gen 2] UU", - threads: [`• GSC UU`], - mod: 'gen2', searchShow: false, ruleset: ['[Gen 2] OU'], @@ -3942,50 +4206,54 @@ export const Formats: FormatList = [ }, { name: "[Gen 2] NU", - threads: [`• GSC NU`], - mod: 'gen2', searchShow: false, ruleset: ['[Gen 2] UU'], - banlist: ['UU', 'NUBL'], + banlist: ['UU', 'NUBL', 'Swagger'], unbanlist: ['Agility + Baton Pass'], }, + { + name: "[Gen 2] PU", + mod: 'gen2', + searchShow: false, + ruleset: ['[Gen 2] NU'], + banlist: ['NU', 'PUBL', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web'], + unbanlist: ['Swagger'], + }, { name: "[Gen 2] 1v1", - threads: [`• GSC 1v1`], - mod: 'gen2', searchShow: false, ruleset: [ 'Picked Team Size = 1', 'Max Team Size = 3', - '[Gen 2] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', + 'Standard', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', ], banlist: [ - 'Alakazam', 'Clefable', 'Snorlax', 'Zapdos', 'Berserk Gene', 'Focus Band', 'King\'s Rock', 'Quick Claw', - 'Attract', 'Destiny Bond', 'Explosion', 'Perish Song', 'Present', 'Self-Destruct', 'Swagger', + 'Alakazam', 'Celebi', 'Clefable', 'Ho-Oh', 'Lugia', 'Mew', 'Mewtwo', 'Snorlax', 'Zapdos', + 'Berserk Gene', 'Focus Band', 'King\'s Rock', 'Quick Claw', 'Attract', 'Destiny Bond', + 'Explosion', 'Perish Song', 'Present', 'Self-Destruct', 'Swagger', ], }, { - name: "[Gen 2] Nintendo Cup 2000", - threads: [ - `• Nintendo Cup 2000 Resource Hub`, - `• Differences between Nintendo Cup 2000 and GSC OU`, - ], - + name: "[Gen 2] ZU", + mod: 'gen2', + searchShow: false, + ruleset: ['[Gen 2] PU'], + banlist: ['PU', 'ZUBL'], + }, + { + name: "[Gen 2] NC 2000", mod: 'gen2stadium2', + bestOfDefault: true, searchShow: false, ruleset: [ 'Picked Team Size = 3', 'Min Level = 50', 'Max Level = 55', 'Max Total Level = 155', - 'Obtainable', 'Stadium Sleep Clause', 'Freeze Clause Mod', 'Species Clause', 'Item Clause', 'Endless Battle Clause', 'Cancel Mod', 'Event Moves Clause', 'Nickname Clause', 'Team Preview', 'Nintendo Cup 2000 Move Legality', + 'Obtainable', 'Stadium Sleep Clause', 'Freeze Clause Mod', 'Species Clause', 'Item Clause = 1', 'Endless Battle Clause', 'Cancel Mod', 'Event Moves Clause', 'Nickname Clause', 'Team Preview', 'NC 2000 Move Legality', ], banlist: ['Uber'], }, { name: "[Gen 2] Stadium OU", - threads: [ - `• Placeholder`, - ], - mod: 'gen2stadium2', searchShow: false, ruleset: ['Standard'], @@ -3993,7 +4261,6 @@ export const Formats: FormatList = [ }, { name: "[Gen 2] Custom Game", - mod: 'gen2', searchShow: false, debug: true, @@ -4002,43 +4269,26 @@ export const Formats: FormatList = [ }, { name: "[Gen 1] Ubers", - threads: [ - `• RBY Ubers`, - ], - mod: 'gen1', searchShow: false, ruleset: ['Standard'], }, { name: "[Gen 1] UU", - threads: [ - `• RBY UU Metagame Discussion`, - `• RBY UU Viability Rankings`, - ], - mod: 'gen1', searchShow: false, - ruleset: ['[Gen 1] OU', 'APT Clause', 'Sleep Moves Clause'], + ruleset: ['[Gen 1] OU', 'APT Clause'], banlist: ['OU', 'UUBL'], }, { name: "[Gen 1] NU", - threads: [ - `• RBY NU Metagame Discussion & Resources`, - ], - mod: 'gen1', searchShow: false, - ruleset: ['[Gen 1] UU', '!APT Clause', '!Sleep Moves Clause'], + ruleset: ['[Gen 1] UU', '!APT Clause'], banlist: ['UU', 'NUBL'], }, { name: "[Gen 1] PU", - threads: [ - `• RBY PU Metagame Discussion & Resources`, - ], - mod: 'gen1', searchShow: false, ruleset: ['[Gen 1] NU'], @@ -4046,47 +4296,31 @@ export const Formats: FormatList = [ }, { name: "[Gen 1] 1v1", - threads: [ - `• RBY 1v1`, - ], - mod: 'gen1', searchShow: false, ruleset: [ 'Picked Team Size = 1', 'Max Team Size = 3', - '[Gen 1] OU', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', + 'Standard', 'Accuracy Moves Clause', 'Sleep Moves Clause', 'Team Preview', ], - banlist: ['Bind', 'Clamp', 'Explosion', 'Fire Spin', 'Self-Destruct', 'Wrap'], + banlist: ['Mew', 'Mewtwo', 'Bind', 'Clamp', 'Explosion', 'Fire Spin', 'Self-Destruct', 'Wrap'], }, { - name: "[Gen 1] Japanese OU", - desc: `Generation 1 with Japanese battle mechanics.`, - - mod: 'gen1jpn', + name: "[Gen 1] ZU", + mod: 'gen1', searchShow: false, - ruleset: ['Standard'], - banlist: ['Uber'], + ruleset: ['[Gen 1] PU'], + banlist: ['PU', 'ZUBL', 'Bind', 'Clamp', 'Fire Spin', 'Wrap'], }, { - name: "[Gen 1] Nintendo Cup 1997", - threads: [ - `• Nintendo Cup 1997 Discussion & Resources`, - ], - + name: "[Gen 1] Japanese OU", + desc: `Generation 1 with Japanese battle mechanics.`, mod: 'gen1jpn', searchShow: false, - ruleset: [ - 'Picked Team Size = 3', 'Min Level = 50', 'Max Level = 55', 'Max Total Level = 155', - 'Obtainable', 'Team Preview', 'Stadium Sleep Clause', 'Species Clause', 'Nickname Clause', 'HP Percentage Mod', 'Cancel Mod', 'Nintendo Cup 1997 Move Legality', - ], + ruleset: ['Standard'], banlist: ['Uber'], }, { name: "[Gen 1] Stadium OU", - threads: [ - `• Stadium OU Viability Rankings`, - ], - mod: 'gen1stadium', searchShow: false, ruleset: ['Standard', 'Team Preview'], @@ -4095,9 +4329,26 @@ export const Formats: FormatList = [ 'Exeggutor + Stun Spore + Stomp', 'Jolteon + Focus Energy + Thunder Shock', 'Flareon + Focus Energy + Ember', ], }, + { + name: "[Gen 1] Tradebacks OU", + desc: `RBY OU with movepool additions from the Time Capsule.`, + mod: 'gen1', + searchShow: false, + ruleset: ['[Gen 1] OU', 'Allow Tradeback'], + }, + { + name: "[Gen 1] NC 1997", + mod: 'gen1jpn', + bestOfDefault: true, + searchShow: false, + ruleset: [ + 'Picked Team Size = 3', 'Min Level = 50', 'Max Level = 55', 'Max Total Level = 155', + 'Obtainable', 'Team Preview', 'Stadium Sleep Clause', 'Species Clause', 'Nickname Clause', 'HP Percentage Mod', 'Cancel Mod', 'NC 1997 Move Legality', + ], + banlist: ['Uber'], + }, { name: "[Gen 1] Custom Game", - mod: 'gen1', searchShow: false, debug: true, diff --git a/data/FORMES.md b/data/FORMES.md index 9c1228d7e288..6af42ad305dc 100644 --- a/data/FORMES.md +++ b/data/FORMES.md @@ -113,7 +113,7 @@ Some Pokémon change forme in the middle of a battle. These forme changes do res List of all in-battle forme changes: -- Ash Greninja (Battle Bond) +- Ash-Greninja (Battle Bond) - Mimikyu (Disguise) - Cherrim (Flower Gift) - Castform (Forecast) diff --git a/data/abilities.ts b/data/abilities.ts index faf08a9b3f31..8048f5204e6c 100644 --- a/data/abilities.ts +++ b/data/abilities.ts @@ -32,17 +32,24 @@ Ratings and how they work: */ -export const Abilities: {[abilityid: string]: AbilityData} = { +export const Abilities: import('../sim/dex-abilities').AbilityDataTable = { noability: { isNonstandard: "Past", + flags: {}, name: "No Ability", rating: 0.1, num: 0, }, adaptability: { - onModifyMove(move) { - move.stab = 2; + onModifySTAB(stab, source, target, move) { + if (move.forceSTAB || source.hasType(move.type)) { + if (stab === 2) { + return 2.25; + } + return 2; + } }, + flags: {}, name: "Adaptability", rating: 4, num: 91, @@ -63,18 +70,20 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePower(basePower, pokemon, target, move) { if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); }, + flags: {}, name: "Aerilate", rating: 4, num: 184, }, aftermath: { - name: "Aftermath", onDamagingHitOrder: 1, onDamagingHit(damage, target, source, move) { if (!target.hp && this.checkMoveMakesContact(move, source, target, true)) { this.damage(source.baseMaxhp / 4, source, target); } }, + flags: {}, + name: "Aftermath", rating: 2, num: 106, }, @@ -84,6 +93,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, onStart(pokemon) { // Air Lock does not activate when Skill Swapped or when Neutralizing Gas leaves the field + pokemon.abilityState.ending = false; // Clear the ending flag if (this.effectState.switchingIn) { this.add('-ability', pokemon, 'Air Lock'); this.effectState.switchingIn = false; @@ -91,9 +101,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.eachEvent('WeatherChange', this.effect); }, onEnd(pokemon) { + pokemon.abilityState.ending = true; this.eachEvent('WeatherChange', this.effect); }, suppressWeather: true, + flags: {}, name: "Air Lock", rating: 1.5, num: 76, @@ -114,6 +126,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([5325, 4096]); } }, + flags: {}, name: "Analytic", rating: 2.5, num: 148, @@ -125,6 +138,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: 12}, target, target); } }, + flags: {}, name: "Anger Point", rating: 1, num: 83, @@ -160,6 +174,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: 1, spa: 1, spe: 1, def: -1, spd: -1}, target, target); } }, + flags: {}, name: "Anger Shell", rating: 3, num: 271, @@ -181,6 +196,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Anticipation", rating: 0.5, num: 107, @@ -199,6 +215,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.maybeTrapped = true; } }, + flags: {}, name: "Arena Trap", rating: 5, num: 71, @@ -217,7 +234,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Armor Tail", rating: 2.5, num: 296, @@ -232,7 +249,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Aroma Veil", rating: 2, num: 165, @@ -243,6 +260,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-ability', pokemon, 'Unnerve'); this.effectState.unnerved = true; }, + onStart(pokemon) { + if (this.effectState.unnerved) return; + this.add('-ability', pokemon, 'As One'); + this.add('-ability', pokemon, 'Unnerve'); + this.effectState.unnerved = true; + }, onEnd() { this.effectState.unnerved = false; }, @@ -254,7 +277,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: length}, source, source, this.dex.abilities.get('chillingneigh')); } }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "As One (Glastrier)", rating: 3.5, num: 266, @@ -265,6 +288,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-ability', pokemon, 'Unnerve'); this.effectState.unnerved = true; }, + onStart(pokemon) { + if (this.effectState.unnerved) return; + this.add('-ability', pokemon, 'As One'); + this.add('-ability', pokemon, 'Unnerve'); + this.effectState.unnerved = true; + }, onEnd() { this.effectState.unnerved = false; }, @@ -276,7 +305,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spa: length}, source, source, this.dex.abilities.get('grimneigh')); } }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "As One (Spectrier)", rating: 3.5, num: 267, @@ -290,7 +319,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (target === source || move.category === 'Status') return; move.hasAuraBreak = true; }, - isBreakable: true, + flags: {breakable: 1}, name: "Aura Break", rating: 1, num: 188, @@ -306,11 +335,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Bad Dreams", rating: 1.5, num: 123, }, ballfetch: { + flags: {}, name: "Ball Fetch", rating: 0, num: 237, @@ -323,13 +354,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([5325, 4096]); } }, + flags: {}, name: "Battery", rating: 0, num: 217, }, battlearmor: { onCriticalHit: false, - isBreakable: true, + flags: {breakable: 1}, name: "Battle Armor", rating: 1, num: 4, @@ -338,14 +370,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onSourceAfterFaint(length, target, source, effect) { if (effect?.effectType !== 'Move') return; if (source.abilityState.battleBondTriggered) return; - if (source.species.id === 'greninja' && source.hp && !source.transformed && source.side.foePokemonLeft()) { - this.add('-activate', source, 'ability: Battle Bond'); + if (source.species.id === 'greninjabond' && source.hp && !source.transformed && source.side.foePokemonLeft()) { this.boost({atk: 1, spa: 1, spe: 1}, source, source, this.effect); + this.add('-activate', source, 'ability: Battle Bond'); source.abilityState.battleBondTriggered = true; } }, - isNonstandard: "Unobtainable", - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Battle Bond", rating: 3.5, num: 210, @@ -363,6 +394,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.debug('Beads of Ruin SpD drop'); return this.chainModify(0.75); }, + flags: {}, name: "Beads of Ruin", rating: 4.5, num: 284, @@ -374,6 +406,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({[bestStat]: length}, source); } }, + flags: {}, name: "Beast Boost", rating: 3.5, num: 224, @@ -404,11 +437,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (!source || source === target || !target.hp || !move.totalDamage) return; const lastAttackedBy = target.getLastAttackedBy(); if (!lastAttackedBy) return; - const damage = move.multihit ? move.totalDamage : lastAttackedBy.damage; + const damage = move.multihit && !move.smartTarget ? move.totalDamage : lastAttackedBy.damage; if (target.hp <= target.maxhp / 2 && target.hp + damage > target.maxhp / 2) { this.boost({spa: 1}, target, target); } }, + flags: {}, name: "Berserk", rating: 2, num: 201, @@ -423,7 +457,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, - isBreakable: true, + flags: {breakable: 1}, name: "Big Pecks", rating: 0.5, num: 145, @@ -443,6 +477,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Blaze", rating: 2, num: 66, @@ -454,7 +489,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Bulletproof", rating: 3, num: 171, @@ -463,6 +498,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onEatItem(item, pokemon) { this.heal(pokemon.baseMaxhp / 3); }, + flags: {}, name: "Cheek Pouch", rating: 2, num: 167, @@ -473,6 +509,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: length}, source); } }, + flags: {}, name: "Chilling Neigh", rating: 3, num: 264, @@ -483,6 +520,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(2); } }, + flags: {}, name: "Chlorophyll", rating: 3, num: 34, @@ -502,7 +540,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add("-fail", target, "unboost", "[from] ability: Clear Body", "[of] " + target); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Clear Body", rating: 2, num: 29, @@ -513,6 +551,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, onStart(pokemon) { // Cloud Nine does not activate when Skill Swapped or when Neutralizing Gas leaves the field + pokemon.abilityState.ending = false; // Clear the ending flag if (this.effectState.switchingIn) { this.add('-ability', pokemon, 'Cloud Nine'); this.effectState.switchingIn = false; @@ -520,9 +559,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.eachEvent('WeatherChange', this.effect); }, onEnd(pokemon) { + pokemon.abilityState.ending = true; this.eachEvent('WeatherChange', this.effect); }, suppressWeather: true, + flags: {}, name: "Cloud Nine", rating: 1.5, num: 13, @@ -547,6 +588,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Color Change", rating: 0, num: 16, @@ -562,13 +604,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; }, // Permanent sleep "status" implemented in the relevant sleep-checking effects - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Comatose", rating: 4, num: 213, }, commander: { onUpdate(pokemon) { + if (this.gameType !== 'doubles') return; const ally = pokemon.allies()[0]; if (!ally || pokemon.baseSpecies.baseSpecies !== 'Tatsugiri' || ally.baseSpecies.baseSpecies !== 'Dondozo') { // Handle any edge cases @@ -591,7 +634,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.removeVolatile('commanding'); } }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1}, name: "Commander", rating: 0, num: 279, @@ -599,9 +642,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { competitive: { onAfterEachBoost(boost, target, source, effect) { if (!source || target.isAlly(source)) { - if (effect.id === 'stickyweb') { - this.hint("Court Change Sticky Web counts as lowering your own Speed, and Competitive only affects stats lowered by foes.", true, source.side); - } return; } let statsLowered = false; @@ -615,6 +655,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spa: 2}, target, target, null, false, true); } }, + flags: {}, name: "Competitive", rating: 2.5, num: 172, @@ -626,6 +667,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.debug('compoundeyes - enhancing accuracy'); return this.chainModify([5325, 4096]); }, + flags: {}, name: "Compound Eyes", rating: 3, num: 14, @@ -638,13 +680,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { boost[i]! *= -1; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Contrary", rating: 4.5, num: 126, }, corrosion: { // Implemented in sim/pokemon.js:Pokemon#setStatus + flags: {}, name: "Corrosion", rating: 2.5, num: 212, @@ -658,17 +701,19 @@ export const Abilities: {[abilityid: string]: AbilityData} = { for (i in ally.boosts) { pokemon.boosts[i] = ally.boosts[i]; } - const volatilesToCopy = ['focusenergy', 'gmaxchistrike', 'laserfocus']; + const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus']; + // we need to be sure to remove all the overlapping crit volatiles before trying to add any + for (const volatile of volatilesToCopy) pokemon.removeVolatile(volatile); for (const volatile of volatilesToCopy) { if (ally.volatiles[volatile]) { pokemon.addVolatile(volatile); if (volatile === 'gmaxchistrike') pokemon.volatiles[volatile].layers = ally.volatiles[volatile].layers; - } else { - pokemon.removeVolatile(volatile); + if (volatile === 'dragoncheer') pokemon.volatiles[volatile].hasDragonType = ally.volatiles[volatile].hasDragonType; } } this.add('-copyboost', pokemon, ally, '[from] ability: Costar'); }, + flags: {}, name: "Costar", rating: 0, num: 294, @@ -685,6 +730,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spe: -1}, pokemon, target, null, true); } }, + flags: {}, name: "Cotton Down", rating: 2, num: 238, @@ -718,6 +764,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, }, + flags: {}, name: "Cud Chew", rating: 2, num: 291, @@ -729,6 +776,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-clearboost', ally, '[from] ability: Curious Medicine', '[of] ' + pokemon); } }, + flags: {}, name: "Curious Medicine", rating: 0, num: 261, @@ -742,6 +790,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Cursed Body", rating: 2, num: 130, @@ -754,6 +803,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Cute Charm", rating: 0.5, num: 56, @@ -771,12 +821,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Damp", rating: 0.5, num: 6, }, dancer: { + flags: {}, name: "Dancer", // implemented in runMove in scripts.js rating: 1.5, @@ -794,17 +845,18 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (move.auraBooster !== this.effectState.target) return; return this.chainModify([move.hasAuraBreak ? 3072 : 5448, 4096]); }, + flags: {}, name: "Dark Aura", rating: 3, num: 186, }, dauntlessshield: { onStart(pokemon) { - if (this.effectState.shieldBoost) return; - if (this.boost({def: 1}, pokemon)) { - this.effectState.shieldBoost = true; - } + if (pokemon.shieldBoost) return; + pokemon.shieldBoost = true; + this.boost({def: 1}, pokemon); }, + flags: {}, name: "Dauntless Shield", rating: 3.5, num: 235, @@ -823,7 +875,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Dazzling", rating: 2.5, num: 219, @@ -841,6 +893,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, + flags: {}, name: "Defeatist", rating: -1, num: 129, @@ -848,9 +901,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { defiant: { onAfterEachBoost(boost, target, source, effect) { if (!source || target.isAlly(source)) { - if (effect.id === 'stickyweb') { - this.hint("Court Change Sticky Web counts as lowering your own Speed, and Defiant only affects stats lowered by foes.", true, source.side); - } return; } let statsLowered = false; @@ -864,6 +914,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: 2}, target, target, null, false, true); } }, + flags: {}, name: "Defiant", rating: 3, num: 128, @@ -887,6 +938,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } this.field.clearWeather(); }, + flags: {}, name: "Delta Stream", rating: 4, num: 191, @@ -910,6 +962,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } this.field.clearWeather(); }, + flags: {}, name: "Desolate Land", rating: 4.5, num: 190, @@ -917,10 +970,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { disguise: { onDamagePriority: 1, onDamage(damage, target, source, effect) { - if ( - effect && effect.effectType === 'Move' && - ['mimikyu', 'mimikyutotem'].includes(target.species.id) && !target.transformed - ) { + if (effect?.effectType === 'Move' && ['mimikyu', 'mimikyutotem'].includes(target.species.id)) { this.add('-activate', target, 'ability: Disguise'); this.effectState.busted = true; return 0; @@ -928,7 +978,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, onCriticalHit(target, source, move) { if (!target) return; - if (!['mimikyu', 'mimikyutotem'].includes(target.species.id) || target.transformed) { + if (!['mimikyu', 'mimikyutotem'].includes(target.species.id)) { return; } const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); @@ -939,7 +989,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, onEffectiveness(typeMod, target, type, move) { if (!target || move.category === 'Status') return; - if (!['mimikyu', 'mimikyutotem'].includes(target.species.id) || target.transformed) { + if (!['mimikyu', 'mimikyutotem'].includes(target.species.id)) { return; } @@ -956,8 +1006,10 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.damage(pokemon.baseMaxhp / 8, pokemon, pokemon, this.dex.species.get(speciesid)); } }, - isBreakable: true, - isPermanent: true, + flags: { + failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, + breakable: 1, notransform: 1, + }, name: "Disguise", rating: 3.5, num: 209, @@ -976,6 +1028,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: 1}); } }, + flags: {}, name: "Download", rating: 3.5, num: 88, @@ -995,6 +1048,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Dragon's Maw", rating: 3.5, num: 263, @@ -1007,6 +1061,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } this.field.setWeather('raindance'); }, + flags: {}, name: "Drizzle", rating: 4, num: 2, @@ -1019,6 +1074,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } this.field.setWeather('sunnyday'); }, + flags: {}, name: "Drought", rating: 4, num: 70, @@ -1046,12 +1102,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.damage(target.baseMaxhp / 8, target, target); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Dry Skin", rating: 3, num: 87, }, earlybird: { + flags: {}, name: "Early Bird", // Implemented in statuses.js rating: 1.5, @@ -1066,7 +1123,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Earth Eater", rating: 3.5, num: 297, @@ -1084,6 +1141,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Effect Spore", rating: 2, num: 27, @@ -1092,6 +1150,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(source) { this.field.setTerrain('electricterrain'); }, + flags: {}, name: "Electric Surge", rating: 4, num: 226, @@ -1101,10 +1160,71 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onDamagingHit(damage, target, source, move) { target.addVolatile('charge'); }, + flags: {}, name: "Electromorphosis", - rating: 2.5, + rating: 3, num: 280, }, + embodyaspectcornerstone: { + onStart(pokemon) { + if (pokemon.baseSpecies.name === 'Ogerpon-Cornerstone-Tera' && !this.effectState.embodied) { + this.effectState.embodied = true; + this.boost({def: 1}, pokemon); + } + }, + onSwitchIn() { + delete this.effectState.embodied; + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, + name: "Embody Aspect (Cornerstone)", + rating: 3.5, + num: 304, + }, + embodyaspecthearthflame: { + onStart(pokemon) { + if (pokemon.baseSpecies.name === 'Ogerpon-Hearthflame-Tera' && !this.effectState.embodied) { + this.effectState.embodied = true; + this.boost({atk: 1}, pokemon); + } + }, + onSwitchIn() { + delete this.effectState.embodied; + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, + name: "Embody Aspect (Hearthflame)", + rating: 3.5, + num: 303, + }, + embodyaspectteal: { + onStart(pokemon) { + if (pokemon.baseSpecies.name === 'Ogerpon-Teal-Tera' && !this.effectState.embodied) { + this.effectState.embodied = true; + this.boost({spe: 1}, pokemon); + } + }, + onSwitchIn() { + delete this.effectState.embodied; + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, + name: "Embody Aspect (Teal)", + rating: 3.5, + num: 301, + }, + embodyaspectwellspring: { + onStart(pokemon) { + if (pokemon.baseSpecies.name === 'Ogerpon-Wellspring-Tera' && !this.effectState.embodied) { + this.effectState.embodied = true; + this.boost({spd: 1}, pokemon); + } + }, + onSwitchIn() { + delete this.effectState.embodied; + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, + name: "Embody Aspect (Wellspring)", + rating: 3.5, + num: 302, + }, emergencyexit: { onEmergencyExit(target) { if (!this.canSwitch(target.side) || target.forceSwitchFlag || target.switchFlag) return; @@ -1116,6 +1236,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { target.switchFlag = true; this.add('-activate', target, 'ability: Emergency Exit'); }, + flags: {}, name: "Emergency Exit", rating: 1, num: 194, @@ -1132,6 +1253,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (move.auraBooster !== this.effectState.target) return; return this.chainModify([move.hasAuraBreak ? 3072 : 5448, 4096]); }, + flags: {}, name: "Fairy Aura", rating: 3, num: 187, @@ -1143,7 +1265,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.75); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Filter", rating: 3, num: 111, @@ -1156,6 +1278,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Flame Body", rating: 2, num: 49, @@ -1167,6 +1290,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Flare Boost", rating: 2, num: 138, @@ -1207,7 +1331,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-end', target, 'ability: Flash Fire', '[silent]'); }, }, - isBreakable: true, + flags: {breakable: 1}, name: "Flash Fire", rating: 3.5, num: 18, @@ -1221,11 +1345,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (!pokemon.hp) return; if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) { if (pokemon.species.id !== 'cherrimsunshine') { - pokemon.formeChange('Cherrim-Sunshine', this.effect, false, '[msg]'); + pokemon.formeChange('Cherrim-Sunshine', this.effect, false, '0', '[msg]'); } } else { if (pokemon.species.id === 'cherrimsunshine') { - pokemon.formeChange('Cherrim', this.effect, false, '[msg]'); + pokemon.formeChange('Cherrim', this.effect, false, '0', '[msg]'); } } }, @@ -1243,7 +1367,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, - isBreakable: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, breakable: 1}, name: "Flower Gift", rating: 1, num: 122, @@ -1282,7 +1406,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Flower Veil", rating: 0, num: 166, @@ -1294,7 +1418,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (move.flags['contact']) mod /= 2; return this.chainModify(mod); }, - isBreakable: true, + flags: {breakable: 1}, name: "Fluffy", rating: 3.5, num: 218, @@ -1324,9 +1448,10 @@ export const Abilities: {[abilityid: string]: AbilityData} = { break; } if (pokemon.isActive && forme) { - pokemon.formeChange(forme, this.effect, false, '[msg]'); + pokemon.formeChange(forme, this.effect, false, '0', '[msg]'); } }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1}, name: "Forecast", rating: 2, num: 59, @@ -1355,19 +1480,20 @@ export const Abilities: {[abilityid: string]: AbilityData} = { const [warnMoveName, warnTarget] = this.sample(warnMoves); this.add('-activate', pokemon, 'ability: Forewarn', warnMoveName, '[of] ' + warnTarget); }, + flags: {}, name: "Forewarn", rating: 0.5, num: 108, }, friendguard: { - name: "Friend Guard", onAnyModifyDamage(damage, source, target, move) { if (target !== this.effectState.target && target.isAlly(this.effectState.target)) { this.debug('Friend Guard weaken'); return this.chainModify(0.75); } }, - isBreakable: true, + flags: {breakable: 1}, + name: "Friend Guard", rating: 0, num: 132, }, @@ -1375,10 +1501,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(pokemon) { for (const target of pokemon.foes()) { if (target.item) { - this.add('-item', target, target.getItem().name, '[from] ability: Frisk', '[of] ' + pokemon, '[identify]'); + this.add('-item', target, target.getItem().name, '[from] ability: Frisk', '[of] ' + pokemon); } } }, + flags: {}, name: "Frisk", rating: 1.5, num: 119, @@ -1398,6 +1525,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add("-fail", target, "unboost", "[from] ability: Full Metal Body", "[of] " + target); } }, + flags: {}, name: "Full Metal Body", rating: 2, num: 230, @@ -1407,7 +1535,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyDef(def) { return this.chainModify(2); }, - isBreakable: true, + flags: {breakable: 1}, name: "Fur Coat", rating: 4, num: 169, @@ -1416,8 +1544,9 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyPriority(priority, pokemon, target, move) { if (move?.type === 'Flying' && pokemon.hp === pokemon.maxhp) return priority + 1; }, + flags: {}, name: "Gale Wings", - rating: 2.5, + rating: 1.5, num: 177, }, galvanize: { @@ -1436,21 +1565,22 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePower(basePower, pokemon, target, move) { if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); }, + flags: {}, name: "Galvanize", rating: 4, num: 206, }, gluttony: { - name: "Gluttony", - rating: 1.5, - num: 82, onStart(pokemon) { pokemon.abilityState.gluttony = true; }, onDamage(item, pokemon) { pokemon.abilityState.gluttony = true; }, - + flags: {}, + name: "Gluttony", + rating: 1.5, + num: 82, }, goodasgold: { onTryHit(target, source, move) { @@ -1459,7 +1589,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Good as Gold", rating: 5, num: 283, @@ -1471,6 +1601,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spe: -1}, source, target, null, true); } }, + flags: {}, name: "Gooey", rating: 2, num: 183, @@ -1513,6 +1644,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onEnd(pokemon) { pokemon.abilityState.choiceLock = ""; }, + flags: {}, name: "Gorilla Tactics", rating: 4.5, num: 255, @@ -1522,7 +1654,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyDef(pokemon) { if (this.field.isTerrain('grassyterrain')) return this.chainModify(1.5); }, - isBreakable: true, + flags: {breakable: 1}, name: "Grass Pelt", rating: 0.5, num: 179, @@ -1531,6 +1663,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(source) { this.field.setTerrain('grassyterrain'); }, + flags: {}, name: "Grassy Surge", rating: 4, num: 229, @@ -1541,6 +1674,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spa: length}, source); } }, + flags: {}, name: "Grim Neigh", rating: 3, num: 265, @@ -1551,19 +1685,21 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-activate', pokemon, 'ability: Guard Dog'); return null; }, + onTryBoostPriority: 2, onTryBoost(boost, target, source, effect) { if (effect.name === 'Intimidate' && boost.atk) { delete boost.atk; this.boost({atk: 1}, target, target, null, false, true); } }, + flags: {breakable: 1}, name: "Guard Dog", rating: 2, num: 275, }, gulpmissile: { onDamagingHit(damage, target, source, move) { - if (!source.hp || !source.isActive || target.transformed || target.isSemiInvulnerable()) return; + if (!source.hp || !source.isActive || target.isSemiInvulnerable()) return; if (['cramorantgulping', 'cramorantgorging'].includes(target.species.id)) { this.damage(source.baseMaxhp / 4, source, target); if (target.species.id === 'cramorantgulping') { @@ -1576,15 +1712,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, // The Dive part of this mechanic is implemented in Dive's `onTryMove` in moves.ts onSourceTryPrimaryHit(target, source, effect) { - if ( - effect && effect.id === 'surf' && source.hasAbility('gulpmissile') && - source.species.name === 'Cramorant' && !source.transformed - ) { + if (effect?.id === 'surf' && source.hasAbility('gulpmissile') && source.species.name === 'Cramorant') { const forme = source.hp <= source.maxhp / 2 ? 'cramorantgorging' : 'cramorantgulping'; source.formeChange(forme, effect); } }, - isPermanent: true, + flags: {cantsuppress: 1, notransform: 1}, name: "Gulp Missile", rating: 2.5, num: 241, @@ -1596,6 +1729,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Guts", rating: 3.5, num: 62, @@ -1613,12 +1747,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([5461, 4096]); } }, + flags: {}, name: "Hadron Engine", rating: 4.5, num: 289, }, harvest: { - name: "Harvest", onResidualOrder: 28, onResidualSubOrder: 2, onResidual(pokemon) { @@ -1630,11 +1764,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, + name: "Harvest", rating: 2.5, num: 139, }, healer: { - name: "Healer", onResidualOrder: 5, onResidualSubOrder: 3, onResidual(pokemon) { @@ -1645,13 +1780,23 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, + name: "Healer", rating: 0, num: 131, }, heatproof: { - onSourceBasePowerPriority: 18, - onSourceBasePower(basePower, attacker, defender, move) { + onSourceModifyAtkPriority: 6, + onSourceModifyAtk(atk, attacker, defender, move) { + if (move.type === 'Fire') { + this.debug('Heatproof Atk weaken'); + return this.chainModify(0.5); + } + }, + onSourceModifySpAPriority: 5, + onSourceModifySpA(atk, attacker, defender, move) { if (move.type === 'Fire') { + this.debug('Heatproof SpA weaken'); return this.chainModify(0.5); } }, @@ -1660,7 +1805,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return damage / 2; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Heatproof", rating: 2, num: 85, @@ -1670,21 +1815,34 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyWeight(weighthg) { return weighthg * 2; }, - isBreakable: true, + flags: {breakable: 1}, name: "Heavy Metal", rating: 0, num: 134, }, honeygather: { + flags: {}, name: "Honey Gather", rating: 0, num: 118, }, + hospitality: { + onStart(pokemon) { + for (const ally of pokemon.adjacentAllies()) { + this.heal(ally.baseMaxhp / 4, ally, pokemon); + } + }, + flags: {}, + name: "Hospitality", + rating: 0, + num: 299, + }, hugepower: { onModifyAtkPriority: 5, onModifyAtk(atk) { return this.chainModify(2); }, + flags: {}, name: "Huge Power", rating: 5, num: 37, @@ -1692,10 +1850,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { hungerswitch: { onResidualOrder: 29, onResidual(pokemon) { - if (pokemon.species.baseSpecies !== 'Morpeko' || pokemon.transformed) return; + if (pokemon.species.baseSpecies !== 'Morpeko' || pokemon.terastallized) return; const targetForme = pokemon.species.name === 'Morpeko' ? 'Morpeko-Hangry' : 'Morpeko'; pokemon.formeChange(targetForme); }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, name: "Hunger Switch", rating: 1, num: 258, @@ -1712,6 +1871,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([3277, 4096]); } }, + flags: {}, name: "Hustle", rating: 3.5, num: 55, @@ -1726,6 +1886,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.cureStatus(); } }, + flags: {}, name: "Hydration", rating: 1.5, num: 93, @@ -1740,7 +1901,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, - isBreakable: true, + flags: {breakable: 1}, name: "Hyper Cutter", rating: 1.5, num: 52, @@ -1754,14 +1915,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onImmunity(type, pokemon) { if (type === 'hail') return false; }, + flags: {}, name: "Ice Body", rating: 1, num: 115, }, iceface: { onStart(pokemon) { - if (this.field.isWeather(['hail', 'snow']) && - pokemon.species.id === 'eiscuenoice' && !pokemon.transformed) { + if (this.field.isWeather(['hail', 'snow']) && pokemon.species.id === 'eiscuenoice') { this.add('-activate', pokemon, 'ability: Ice Face'); this.effectState.busted = false; pokemon.formeChange('Eiscue', this.effect, true); @@ -1769,10 +1930,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, onDamagePriority: 1, onDamage(damage, target, source, effect) { - if ( - effect && effect.effectType === 'Move' && effect.category === 'Physical' && - target.species.id === 'eiscue' && !target.transformed - ) { + if (effect?.effectType === 'Move' && effect.category === 'Physical' && target.species.id === 'eiscue') { this.add('-activate', target, 'ability: Ice Face'); this.effectState.busted = true; return 0; @@ -1780,14 +1938,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }, onCriticalHit(target, type, move) { if (!target) return; - if (move.category !== 'Physical' || target.species.id !== 'eiscue' || target.transformed) return; + if (move.category !== 'Physical' || target.species.id !== 'eiscue') return; if (target.volatiles['substitute'] && !(move.flags['bypasssub'] || move.infiltrates)) return; if (!target.runImmunity(move.type)) return; return false; }, onEffectiveness(typeMod, target, type, move) { if (!target) return; - if (move.category !== 'Physical' || target.species.id !== 'eiscue' || target.transformed) return; + if (move.category !== 'Physical' || target.species.id !== 'eiscue') return; const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); if (hitSub) return; @@ -1804,15 +1962,16 @@ export const Abilities: {[abilityid: string]: AbilityData} = { // snow/hail resuming because Cloud Nine/Air Lock ended does not trigger Ice Face if ((sourceEffect as Ability)?.suppressWeather) return; if (!pokemon.hp) return; - if (this.field.isWeather(['hail', 'snow']) && - pokemon.species.id === 'eiscuenoice' && !pokemon.transformed) { + if (this.field.isWeather(['hail', 'snow']) && pokemon.species.id === 'eiscuenoice') { this.add('-activate', pokemon, 'ability: Ice Face'); this.effectState.busted = false; pokemon.formeChange('Eiscue', this.effect, true); } }, - isBreakable: true, - isPermanent: true, + flags: { + failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, + breakable: 1, notransform: 1, + }, name: "Ice Face", rating: 3, num: 248, @@ -1823,14 +1982,27 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Ice Scales", rating: 4, num: 246, }, illuminate: { + onTryBoost(boost, target, source, effect) { + if (source && target === source) return; + if (boost.accuracy && boost.accuracy < 0) { + delete boost.accuracy; + if (!(effect as ActiveMove).secondaries) { + this.add("-fail", target, "unboost", "accuracy", "[from] ability: Illuminate", "[of] " + target); + } + } + }, + onModifyMove(move) { + move.ignoreEvasion = true; + }, + flags: {breakable: 1}, name: "Illuminate", - rating: 0, + rating: 0.5, num: 35, }, illusion: { @@ -1840,7 +2012,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { for (let i = pokemon.side.pokemon.length - 1; i > pokemon.position; i--) { const possibleTarget = pokemon.side.pokemon[i]; if (!possibleTarget.fainted) { - pokemon.illusion = possibleTarget; + // If Ogerpon is in the last slot while the Illusion Pokemon is Terastallized + // Illusion will not disguise as anything + if (!pokemon.terastallized || possibleTarget.species.baseSpecies !== 'Ogerpon') { + pokemon.illusion = possibleTarget; + } break; } } @@ -1858,11 +2034,15 @@ export const Abilities: {[abilityid: string]: AbilityData} = { (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); this.add('replace', pokemon, details); this.add('-end', pokemon, 'Illusion'); + if (this.ruleTable.has('illusionlevelmod')) { + this.hint("Illusion Level Mod is active, so this Pok\u00e9mon's true level was hidden.", true); + } } }, onFaint(pokemon) { pokemon.illusion = null; }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1}, name: "Illusion", rating: 4.5, num: 149, @@ -1881,7 +2061,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, - isBreakable: true, + flags: {breakable: 1}, name: "Immunity", rating: 2, num: 17, @@ -1902,6 +2082,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } this.effectState.switchingIn = false; }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1}, name: "Imposter", rating: 5, num: 150, @@ -1910,18 +2091,20 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyMove(move) { move.infiltrates = true; }, + flags: {}, name: "Infiltrator", rating: 2.5, num: 151, }, innardsout: { - name: "Innards Out", onDamagingHitOrder: 1, onDamagingHit(damage, target, source, move) { if (!target.hp) { this.damage(target.getUndynamaxedHP(damage), source, target); } }, + flags: {}, + name: "Innards Out", rating: 4, num: 215, }, @@ -1935,7 +2118,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Inner Focus', '[of] ' + target); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Inner Focus", rating: 1, num: 39, @@ -1954,7 +2137,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, - isBreakable: true, + onTryAddVolatile(status, target) { + if (status.id === 'yawn') { + this.add('-immune', target, '[from] ability: Insomnia'); + return null; + } + }, + flags: {breakable: 1}, name: "Insomnia", rating: 1.5, num: 15, @@ -1974,17 +2163,18 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Intimidate", rating: 3.5, num: 22, }, intrepidsword: { onStart(pokemon) { - if (this.effectState.swordBoost) return; - if (this.boost({atk: 1}, pokemon)) { - this.effectState.swordBoost = true; - } + if (pokemon.swordBoost) return; + pokemon.swordBoost = true; + this.boost({atk: 1}, pokemon); }, + flags: {}, name: "Intrepid Sword", rating: 4, num: 234, @@ -1996,6 +2186,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.damage(source.baseMaxhp / 8, source, target); } }, + flags: {}, name: "Iron Barbs", rating: 2.5, num: 160, @@ -2008,6 +2199,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([4915, 4096]); } }, + flags: {}, name: "Iron Fist", rating: 3, num: 89, @@ -2018,6 +2210,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: 1}); } }, + flags: {}, name: "Justified", rating: 2.5, num: 154, @@ -2035,7 +2228,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyMove(move) { move.ignoreEvasion = true; }, - isBreakable: true, + flags: {breakable: 1}, name: "Keen Eye", rating: 0.5, num: 51, @@ -2045,6 +2238,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(pokemon) { this.singleEvent('End', pokemon.getItem(), pokemon.itemState, pokemon); }, + flags: {}, name: "Klutz", rating: -1, num: 103, @@ -2064,14 +2258,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Leaf Guard", rating: 0.5, num: 102, }, levitate: { // airborneness implemented in sim/pokemon.js:Pokemon#isGrounded - isBreakable: true, + flags: {breakable: 1}, name: "Levitate", rating: 3.5, num: 26, @@ -2079,7 +2273,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { libero: { onPrepareHit(source, target, move) { if (this.effectState.libero) return; - if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return; + if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch' || move.callsMove) return; const type = move.type; if (type && type !== '???' && source.getTypes().join() !== type) { if (!source.setType(type)) return; @@ -2090,6 +2284,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onSwitchIn() { delete this.effectState.libero; }, + flags: {}, name: "Libero", rating: 4, num: 236, @@ -2098,7 +2293,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyWeight(weighthg) { return this.trunc(weighthg / 2); }, - isBreakable: true, + flags: {breakable: 1}, name: "Light Metal", rating: 1, num: 135, @@ -2123,7 +2318,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.effectState.target; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Lightning Rod", rating: 3, num: 31, @@ -2142,7 +2337,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, - isBreakable: true, + flags: {breakable: 1}, name: "Limber", rating: 2, num: 7, @@ -2150,7 +2345,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { lingeringaroma: { onDamagingHit(damage, target, source, move) { const sourceAbility = source.getAbility(); - if (sourceAbility.isPermanent || sourceAbility.id === 'lingeringaroma') { + if (sourceAbility.flags['cantsuppress'] || sourceAbility.id === 'lingeringaroma') { return; } if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) { @@ -2160,6 +2355,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Lingering Aroma", rating: 2, num: 268, @@ -2173,6 +2369,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return 0; } }, + flags: {}, name: "Liquid Ooze", rating: 2.5, num: 64, @@ -2184,6 +2381,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { move.type = 'Water'; } }, + flags: {}, name: "Liquid Voice", rating: 1.5, num: 204, @@ -2192,12 +2390,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyMove(move) { delete move.flags['contact']; }, + flags: {}, name: "Long Reach", rating: 1, num: 203, }, magicbounce: { - name: "Magic Bounce", onTryHitPriority: 1, onTryHit(target, source, move) { if (target === source || move.hasBounced || !move.flags['reflectable']) { @@ -2206,7 +2404,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; newMove.pranksterBoosted = false; - this.actions.useMove(newMove, target, source); + this.actions.useMove(newMove, target, {target: source}); return null; }, onAllyTryHitSide(target, source, move) { @@ -2216,13 +2414,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; newMove.pranksterBoosted = false; - this.actions.useMove(newMove, this.effectState.target, source); + this.actions.useMove(newMove, this.effectState.target, {target: source}); return null; }, condition: { duration: 1, }, - isBreakable: true, + flags: {breakable: 1}, + name: "Magic Bounce", rating: 4, num: 156, }, @@ -2233,13 +2432,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; } }, + flags: {}, name: "Magic Guard", rating: 4, num: 98, }, magician: { onAfterMoveSecondarySelf(source, target, move) { - if (!move || !target) return; + if (!move || !target || source.switchFlag === true) return; if (target !== source && move.category !== 'Status') { if (source.item || source.volatiles['gem'] || move.id === 'fling') return; const yourItem = target.takeItem(source); @@ -2251,6 +2451,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-item', source, yourItem, '[from] ability: Magician', '[of] ' + target); } }, + flags: {}, name: "Magician", rating: 1, num: 170, @@ -2265,7 +2466,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onImmunity(type, pokemon) { if (type === 'frz') return false; }, - isBreakable: true, + flags: {breakable: 1}, name: "Magma Armor", rating: 0.5, num: 40, @@ -2283,6 +2484,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.maybeTrapped = true; } }, + flags: {}, name: "Magnet Pull", rating: 4, num: 42, @@ -2294,7 +2496,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Marvel Scale", rating: 2.5, num: 63, @@ -2306,6 +2508,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Mega Launcher", rating: 3, num: 178, @@ -2314,6 +2517,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyCritRatio(critRatio, source, target) { if (target && ['psn', 'tox'].includes(target.status)) return 5; }, + flags: {}, name: "Merciless", rating: 1.5, num: 196, @@ -2350,10 +2554,35 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-end', pokemon, 'typechange', '[silent]'); } }, + flags: {}, name: "Mimicry", rating: 0, num: 250, }, + mindseye: { + onTryBoost(boost, target, source, effect) { + if (source && target === source) return; + if (boost.accuracy && boost.accuracy < 0) { + delete boost.accuracy; + if (!(effect as ActiveMove).secondaries) { + this.add("-fail", target, "unboost", "accuracy", "[from] ability: Mind's Eye", "[of] " + target); + } + } + }, + onModifyMovePriority: -5, + onModifyMove(move) { + move.ignoreEvasion = true; + if (!move.ignoreImmunity) move.ignoreImmunity = {}; + if (move.ignoreImmunity !== true) { + move.ignoreImmunity['Fighting'] = true; + move.ignoreImmunity['Normal'] = true; + } + }, + flags: {breakable: 1}, + name: "Mind's Eye", + rating: 0, + num: 300, + }, minus: { onModifySpAPriority: 5, onModifySpA(spa, pokemon) { @@ -2363,6 +2592,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Minus", rating: 0, num: 58, @@ -2385,7 +2615,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, - isBreakable: true, + flags: {breakable: 1}, name: "Mirror Armor", rating: 2, num: 240, @@ -2394,6 +2624,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(source) { this.field.setTerrain('mistyterrain'); }, + flags: {}, name: "Misty Surge", rating: 3.5, num: 228, @@ -2405,6 +2636,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyMove(move) { move.ignoreAbility = true; }, + flags: {}, name: "Mold Breaker", rating: 3, num: 104, @@ -2438,6 +2670,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost(boost, pokemon, pokemon); }, + flags: {}, name: "Moody", rating: 5, num: 141, @@ -2451,7 +2684,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Motor Drive", rating: 3, num: 78, @@ -2462,6 +2695,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: length}, source); } }, + flags: {}, name: "Moxie", rating: 3, num: 153, @@ -2473,23 +2707,22 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Multiscale", rating: 3.5, num: 136, }, multitype: { // Multitype's type-changing itself is implemented in statuses.js - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Multitype", rating: 4, num: 121, }, mummy: { - name: "Mummy", onDamagingHit(damage, target, source, move) { const sourceAbility = source.getAbility(); - if (sourceAbility.isPermanent || sourceAbility.id === 'mummy') { + if (sourceAbility.flags['cantsuppress'] || sourceAbility.id === 'mummy') { return; } if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) { @@ -2499,6 +2732,8 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, + name: "Mummy", rating: 2, num: 152, }, @@ -2514,6 +2749,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { move.ignoreAbility = true; } }, + flags: {}, name: "Mycelium Might", rating: 2, num: 298, @@ -2596,6 +2832,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { // (once you know a Pokemon has Natural Cure, its cures are always known) if (!pokemon.showCure) pokemon.showCure = undefined; }, + flags: {}, name: "Natural Cure", rating: 2.5, num: 30, @@ -2606,6 +2843,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([5120, 4096]); } }, + flags: {}, name: "Neuroforce", rating: 2.5, num: 233, @@ -2613,7 +2851,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { neutralizinggas: { // Ability suppression implemented in sim/pokemon.ts:Pokemon#ignoringAbility onPreStart(pokemon) { - if (pokemon.transformed) return; this.add('-ability', pokemon, 'Neutralizing Gas'); pokemon.abilityState.ending = false; const strongWeathers = ['desolateland', 'primordialsea', 'deltastream']; @@ -2622,6 +2859,10 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-block', target, 'item: Ability Shield'); continue; } + // Can't suppress a Tatsugiri inside of Dondozo already + if (target.volatiles['commanding']) { + continue; + } if (target.illusion) { this.singleEvent('End', this.dex.abilities.get('Illusion'), target.abilityState, target, pokemon, 'neutralizinggas'); } @@ -2655,7 +2896,8 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.speedSort(sortedActive); for (const pokemon of sortedActive) { if (pokemon !== source) { - if (pokemon.getAbility().isPermanent) continue; // does not interact with e.g Ice Face, Zen Mode + if (pokemon.getAbility().flags['cantsuppress']) continue; // does not interact with e.g Ice Face, Zen Mode + if (pokemon.hasItem('abilityshield')) continue; // don't restart abilities that weren't suppressed // Will be suppressed by Pokemon#ignoringAbility if needed this.singleEvent('Start', pokemon.getAbility(), pokemon.abilityState, pokemon); @@ -2665,8 +2907,9 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, name: "Neutralizing Gas", - rating: 4, + rating: 3.5, num: 256, }, noguard: { @@ -2680,6 +2923,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return accuracy; }, + flags: {}, name: "No Guard", rating: 4, num: 99, @@ -2701,6 +2945,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePower(basePower, pokemon, target, move) { if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); }, + flags: {}, name: "Normalize", rating: 0, num: 96, @@ -2733,7 +2978,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Oblivious', '[of] ' + target); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Oblivious", rating: 1.5, num: 12, @@ -2752,6 +2997,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (Object.keys(positiveBoosts).length < 1) return; this.boost(positiveBoosts, pokemon); }, + flags: {}, name: "Opportunist", rating: 3, num: 290, @@ -2771,6 +3017,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([5461, 4096]); } }, + flags: {}, name: "Orichalcum Pulse", rating: 4.5, num: 288, @@ -2786,7 +3033,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Overcoat", rating: 2, num: 142, @@ -2806,6 +3053,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Overgrow", rating: 2, num: 65, @@ -2831,7 +3079,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Own Tempo', '[of] ' + target); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Own Tempo", rating: 1.5, num: 20, @@ -2850,6 +3098,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return secondaries.filter(effect => effect.volatileStatus === 'flinch'); } }, + flags: {}, name: "Parental Bond", rating: 4.5, num: 185, @@ -2890,7 +3139,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, - isBreakable: true, + flags: {breakable: 1}, name: "Pastel Veil", rating: 2, num: 257, @@ -2909,6 +3158,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.addVolatile('perishsong'); } }, + flags: {}, name: "Perish Body", rating: 1, num: 253, @@ -2931,6 +3181,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-item', target, yourItem, '[from] ability: Pickpocket', '[of] ' + source); } }, + flags: {}, name: "Pickpocket", rating: 1, num: 124, @@ -2950,6 +3201,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-item', pokemon, this.dex.items.get(item), '[from] ability: Pickup'); pokemon.setItem(item); }, + flags: {}, name: "Pickup", rating: 0.5, num: 53, @@ -2970,6 +3222,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePower(basePower, pokemon, target, move) { if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); }, + flags: {}, name: "Pixilate", rating: 4, num: 182, @@ -2983,6 +3236,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Plus", rating: 0, num: 57, @@ -2995,6 +3249,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; } }, + flags: {}, name: "Poison Heal", rating: 4, num: 90, @@ -3007,23 +3262,35 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Poison Point", rating: 1.5, num: 38, }, + poisonpuppeteer: { + onAnyAfterSetStatus(status, target, source, effect) { + if (source.baseSpecies.name !== "Pecharunt") return; + if (source !== this.effectState.target || target === source || effect.effectType !== 'Move') return; + if (status.id === 'psn' || status.id === 'tox') { + target.addVolatile('confusion'); + } + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1}, + name: "Poison Puppeteer", + rating: 3, + num: 310, + }, poisontouch: { - // upokecenter says this is implemented as an added secondary effect - onModifyMove(move) { - if (!move?.flags['contact'] || move.target === 'self') return; - if (!move.secondaries) { - move.secondaries = []; + onSourceDamagingHit(damage, target, source, move) { + // Despite not being a secondary, Shield Dust / Covert Cloak block Poison Touch's effect + if (target.hasAbility('shielddust') || target.hasItem('covertcloak')) return; + if (this.checkMoveMakesContact(move, target, source)) { + if (this.randomChance(3, 10)) { + target.trySetStatus('psn', source); + } } - move.secondaries.push({ - chance: 30, - status: 'psn', - ability: this.dex.abilities.get('poisontouch'), - }); }, + flags: {}, name: "Poison Touch", rating: 2, num: 143, @@ -3043,7 +3310,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.maxhp = newMaxHP; this.add('-heal', pokemon, pokemon.getHealth, '[silent]'); }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Power Construct", rating: 5, num: 211, @@ -3052,14 +3319,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onAllyFaint(target) { if (!this.effectState.target.hp) return; const ability = target.getAbility(); - const additionalBannedAbilities = [ - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'wonderguard', - ]; - if (target.getAbility().isPermanent || additionalBannedAbilities.includes(target.ability)) return; + if (ability.flags['noreceiver'] || ability.id === 'noability') return; if (this.effectState.target.setAbility(ability)) { this.add('-ability', this.effectState.target, ability, '[from] ability: Power of Alchemy', '[of] ' + target); } }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1}, name: "Power of Alchemy", rating: 0, num: 223, @@ -3072,6 +3337,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([5325, 4096]); } }, + flags: {}, name: "Power Spot", rating: 0, num: 249, @@ -3083,6 +3349,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return priority + 1; } }, + flags: {}, name: "Prankster", rating: 4, num: 158, @@ -3095,6 +3362,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (target.isAlly(source)) return; return 1; }, + flags: {}, name: "Pressure", rating: 2.5, num: 46, @@ -3118,6 +3386,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } this.field.clearWeather(); }, + flags: {}, name: "Primordial Sea", rating: 4.5, num: 189, @@ -3129,6 +3398,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.75); } }, + flags: {}, name: "Prism Armor", rating: 3, num: 232, @@ -3139,6 +3409,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { // most of the implementation is in Battle#getTarget move.tracksTarget = move.target !== 'scripted'; }, + flags: {}, name: "Propeller Tail", rating: 0, num: 239, @@ -3146,7 +3417,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { protean: { onPrepareHit(source, target, move) { if (this.effectState.protean) return; - if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return; + if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch' || move.callsMove) return; const type = move.type; if (type && type !== '???' && source.getTypes().join() !== type) { if (!source.setType(type)) return; @@ -3157,6 +3428,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onSwitchIn(pokemon) { delete this.effectState.protean; }, + flags: {}, name: "Protean", rating: 4, num: 168, @@ -3166,11 +3438,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.singleEvent('WeatherChange', this.effect, this.effectState, pokemon); }, onWeatherChange(pokemon) { - if (pokemon.transformed) return; // Protosynthesis is not affected by Utility Umbrella if (this.field.isWeather('sunnyday')) { pokemon.addVolatile('protosynthesis'); - } else if (!pokemon.volatiles['protosynthesis']?.fromBooster) { + } else if (!pokemon.volatiles['protosynthesis']?.fromBooster && this.field.weather !== 'sunnyday') { + // Protosynthesis will not deactivite if Sun is suppressed, hence the direct ID check (isWeather respects supression) pokemon.removeVolatile('protosynthesis'); } }, @@ -3181,7 +3453,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { condition: { noCopy: true, onStart(pokemon, source, effect) { - if (effect?.id === 'boosterenergy') { + if (effect?.name === 'Booster Energy') { this.effectState.fromBooster = true; this.add('-activate', pokemon, 'ability: Protosynthesis', '[fromitem]'); } else { @@ -3191,31 +3463,31 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-start', pokemon, 'protosynthesis' + this.effectState.bestStat); }, onModifyAtkPriority: 5, - onModifyAtk(atk, source, target, move) { - if (this.effectState.bestStat !== 'atk') return; + onModifyAtk(atk, pokemon) { + if (this.effectState.bestStat !== 'atk' || pokemon.ignoringAbility()) return; this.debug('Protosynthesis atk boost'); return this.chainModify([5325, 4096]); }, onModifyDefPriority: 6, - onModifyDef(def, target, source, move) { - if (this.effectState.bestStat !== 'def') return; + onModifyDef(def, pokemon) { + if (this.effectState.bestStat !== 'def' || pokemon.ignoringAbility()) return; this.debug('Protosynthesis def boost'); return this.chainModify([5325, 4096]); }, onModifySpAPriority: 5, - onModifySpA(relayVar, source, target, move) { - if (this.effectState.bestStat !== 'spa') return; + onModifySpA(spa, pokemon) { + if (this.effectState.bestStat !== 'spa' || pokemon.ignoringAbility()) return; this.debug('Protosynthesis spa boost'); return this.chainModify([5325, 4096]); }, onModifySpDPriority: 6, - onModifySpD(relayVar, target, source, move) { - if (this.effectState.bestStat !== 'spd') return; + onModifySpD(spd, pokemon) { + if (this.effectState.bestStat !== 'spd' || pokemon.ignoringAbility()) return; this.debug('Protosynthesis spd boost'); return this.chainModify([5325, 4096]); }, onModifySpe(spe, pokemon) { - if (this.effectState.bestStat !== 'spe') return; + if (this.effectState.bestStat !== 'spe' || pokemon.ignoringAbility()) return; this.debug('Protosynthesis spe boost'); return this.chainModify(1.5); }, @@ -3223,7 +3495,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-end', pokemon, 'Protosynthesis'); }, }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, name: "Protosynthesis", rating: 3, num: 281, @@ -3232,6 +3504,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(source) { this.field.setTerrain('psychicterrain'); }, + flags: {}, name: "Psychic Surge", rating: 4, num: 227, @@ -3250,7 +3523,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Punk Rock", rating: 3.5, num: 244, @@ -3260,6 +3533,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyAtk(atk) { return this.chainModify(2); }, + flags: {}, name: "Pure Power", rating: 5, num: 74, @@ -3291,7 +3565,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Purifying Salt", rating: 4, num: 272, @@ -3301,7 +3575,6 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.singleEvent('TerrainChange', this.effect, this.effectState, pokemon); }, onTerrainChange(pokemon) { - if (pokemon.transformed) return; if (this.field.isTerrain('electricterrain')) { pokemon.addVolatile('quarkdrive'); } else if (!pokemon.volatiles['quarkdrive']?.fromBooster) { @@ -3315,7 +3588,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { condition: { noCopy: true, onStart(pokemon, source, effect) { - if (effect?.id === 'boosterenergy') { + if (effect?.name === 'Booster Energy') { this.effectState.fromBooster = true; this.add('-activate', pokemon, 'ability: Quark Drive', '[fromitem]'); } else { @@ -3325,31 +3598,31 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-start', pokemon, 'quarkdrive' + this.effectState.bestStat); }, onModifyAtkPriority: 5, - onModifyAtk(atk, source, target, move) { - if (this.effectState.bestStat !== 'atk') return; + onModifyAtk(atk, pokemon) { + if (this.effectState.bestStat !== 'atk' || pokemon.ignoringAbility()) return; this.debug('Quark Drive atk boost'); return this.chainModify([5325, 4096]); }, onModifyDefPriority: 6, - onModifyDef(def, target, source, move) { - if (this.effectState.bestStat !== 'def') return; + onModifyDef(def, pokemon) { + if (this.effectState.bestStat !== 'def' || pokemon.ignoringAbility()) return; this.debug('Quark Drive def boost'); return this.chainModify([5325, 4096]); }, onModifySpAPriority: 5, - onModifySpA(relayVar, source, target, move) { - if (this.effectState.bestStat !== 'spa') return; + onModifySpA(spa, pokemon) { + if (this.effectState.bestStat !== 'spa' || pokemon.ignoringAbility()) return; this.debug('Quark Drive spa boost'); return this.chainModify([5325, 4096]); }, onModifySpDPriority: 6, - onModifySpD(relayVar, target, source, move) { - if (this.effectState.bestStat !== 'spd') return; + onModifySpD(spd, pokemon) { + if (this.effectState.bestStat !== 'spd' || pokemon.ignoringAbility()) return; this.debug('Quark Drive spd boost'); return this.chainModify([5325, 4096]); }, onModifySpe(spe, pokemon) { - if (this.effectState.bestStat !== 'spe') return; + if (this.effectState.bestStat !== 'spe' || pokemon.ignoringAbility()) return; this.debug('Quark Drive spe boost'); return this.chainModify(1.5); }, @@ -3357,7 +3630,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-end', pokemon, 'Quark Drive'); }, }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, name: "Quark Drive", rating: 3, num: 282, @@ -3376,7 +3649,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Queenly Majesty", rating: 2.5, num: 214, @@ -3389,6 +3662,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return 0.1; } }, + flags: {}, name: "Quick Draw", rating: 2.5, num: 259, @@ -3399,6 +3673,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Quick Feet", rating: 2.5, num: 95, @@ -3410,6 +3685,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.heal(target.baseMaxhp / 16); } }, + flags: {}, name: "Rain Dish", rating: 1.5, num: 44, @@ -3421,10 +3697,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, onAfterBoost(boost, target, source, effect) { - if (effect?.name === 'Intimidate') { + if (effect?.name === 'Intimidate' && boost.atk) { this.boost({spe: 1}); } }, + flags: {}, name: "Rattled", rating: 1, num: 155, @@ -3433,14 +3710,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onAllyFaint(target) { if (!this.effectState.target.hp) return; const ability = target.getAbility(); - const additionalBannedAbilities = [ - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'wonderguard', - ]; - if (target.getAbility().isPermanent || additionalBannedAbilities.includes(target.ability)) return; + if (ability.flags['noreceiver'] || ability.id === 'noability') return; if (this.effectState.target.setAbility(ability)) { this.add('-ability', this.effectState.target, ability, '[from] ability: Receiver', '[of] ' + target); } }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1}, name: "Receiver", rating: 0, num: 222, @@ -3453,6 +3728,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([4915, 4096]); } }, + flags: {}, name: "Reckless", rating: 3, num: 120, @@ -3473,6 +3749,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePower(basePower, pokemon, target, move) { if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); }, + flags: {}, name: "Refrigerate", rating: 4, num: 174, @@ -3481,6 +3758,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onSwitchOut(pokemon) { pokemon.heal(pokemon.baseMaxhp / 3); }, + flags: {}, name: "Regenerator", rating: 4.5, num: 144, @@ -3519,6 +3797,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { // Record if the pokemon ate a berry to resist the attack pokemon.abilityState.berryWeaken = weakenBerries.includes(item.name); }, + flags: {}, name: "Ripen", rating: 2, num: 247, @@ -3536,13 +3815,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Rivalry", rating: 0, num: 79, }, rkssystem: { // RKS System's type-changing itself is implemented in statuses.js - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "RKS System", rating: 4, num: 225, @@ -3554,6 +3834,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { if (this.activeMove.id !== 'struggle') return null; } }, + flags: {}, name: "Rock Head", rating: 3, num: 69, @@ -3573,6 +3854,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Rocky Payload", rating: 3.5, num: 276, @@ -3584,11 +3866,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.damage(source.baseMaxhp / 8, source, target); } }, + flags: {}, name: "Rough Skin", rating: 2.5, num: 24, }, runaway: { + flags: {}, name: "Run Away", rating: 0, num: 50, @@ -3606,6 +3890,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onImmunity(type, pokemon) { if (type === 'sandstorm') return false; }, + flags: {}, name: "Sand Force", rating: 2, num: 159, @@ -3619,6 +3904,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onImmunity(type, pokemon) { if (type === 'sandstorm') return false; }, + flags: {}, name: "Sand Rush", rating: 3, num: 146, @@ -3627,6 +3913,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onDamagingHit(damage, target, source, move) { this.field.setWeather('sandstorm'); }, + flags: {}, name: "Sand Spit", rating: 1, num: 245, @@ -3635,6 +3922,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(source) { this.field.setWeather('sandstorm'); }, + flags: {}, name: "Sand Stream", rating: 4, num: 45, @@ -3651,7 +3939,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([3277, 4096]); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Sand Veil", rating: 1.5, num: 8, @@ -3672,7 +3960,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: 1}, this.effectState.target); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Sap Sipper", rating: 3, num: 157, @@ -3706,7 +3994,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Schooling", rating: 3, num: 208, @@ -3726,6 +4014,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Scrappy', '[of] ' + target); } }, + flags: {}, name: "Scrappy", rating: 3, num: 113, @@ -3745,6 +4034,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Screen Cleaner", rating: 2, num: 251, @@ -3753,6 +4043,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onDamagingHit(damage, target, source, move) { this.field.setTerrain('grassyterrain'); }, + flags: {}, name: "Seed Sower", rating: 2.5, num: 269, @@ -3768,6 +4059,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } if (move.self?.chance) move.self.chance *= 2; }, + flags: {}, name: "Serene Grace", rating: 3.5, num: 32, @@ -3779,6 +4071,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, + flags: {}, name: "Shadow Shield", rating: 3.5, num: 231, @@ -3796,6 +4089,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.maybeTrapped = true; } }, + flags: {}, name: "Shadow Tag", rating: 5, num: 23, @@ -3804,10 +4098,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePowerPriority: 19, onBasePower(basePower, attacker, defender, move) { if (move.flags['slicing']) { - this.debug('Shapness boost'); + this.debug('Sharpness boost'); return this.chainModify(1.5); } }, + flags: {}, name: "Sharpness", rating: 3.5, num: 292, @@ -3822,6 +4117,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.cureStatus(); } }, + flags: {}, name: "Shed Skin", rating: 3, num: 61, @@ -3841,13 +4137,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onBasePower(basePower, pokemon, target, move) { if (move.hasSheerForce) return this.chainModify([5325, 4096]); }, + flags: {}, name: "Sheer Force", rating: 3.5, num: 125, }, shellarmor: { onCriticalHit: false, - isBreakable: true, + flags: {breakable: 1}, name: "Shell Armor", rating: 1, num: 75, @@ -3857,7 +4154,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.debug('Shield Dust prevent secondary'); return secondaries.filter(effect => !!(effect.self || effect.dustproof)); }, - isBreakable: true, + flags: {breakable: 1}, name: "Shield Dust", rating: 2, num: 19, @@ -3901,7 +4198,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-immune', target, '[from] ability: Shields Down'); return null; }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Shields Down", rating: 3, num: 197, @@ -3914,7 +4211,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { boost[i]! *= 2; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Simple", rating: 4, num: 86, @@ -3928,6 +4225,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { delete move.multiaccuracy; } }, + flags: {}, name: "Skill Link", rating: 3, num: 92, @@ -3947,6 +4245,11 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(target) { this.add('-start', target, 'ability: Slow Start'); }, + onResidual(pokemon) { + if (!pokemon.activeTurns) { + this.effectState.duration += 1; + } + }, onModifyAtkPriority: 5, onModifyAtk(atk, pokemon) { return this.chainModify(0.5); @@ -3958,6 +4261,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-end', target, 'Slow Start'); }, }, + flags: {}, name: "Slow Start", rating: -1, num: 112, @@ -3968,6 +4272,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(2); } }, + flags: {}, name: "Slush Rush", rating: 3, num: 202, @@ -3979,6 +4284,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Sniper", rating: 2, num: 97, @@ -3995,7 +4301,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([3277, 4096]); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Snow Cloak", rating: 1.5, num: 81, @@ -4004,6 +4310,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(source) { this.field.setWeather('snow'); }, + flags: {}, name: "Snow Warning", rating: 4, num: 117, @@ -4021,6 +4328,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.damage(target.baseMaxhp / 8, target, target); } }, + flags: {}, name: "Solar Power", rating: 2, num: 94, @@ -4032,7 +4340,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.75); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Solid Rock", rating: 3, num: 116, @@ -4042,6 +4350,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onAnyFaint() { this.boost({spa: 1}, this.effectState.target); }, + flags: {}, name: "Soul-Heart", rating: 3.5, num: 220, @@ -4058,7 +4367,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-immune', this.effectState.target, '[from] ability: Soundproof'); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Soundproof", rating: 2, num: 43, @@ -4071,6 +4380,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spe: 1}); } }, + flags: {}, name: "Speed Boost", rating: 4.5, num: 3, @@ -4090,12 +4400,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(2); } }, + flags: {}, name: "Stakeout", rating: 4.5, num: 198, }, stall: { onFractionalPriority: -0.1, + flags: {}, name: "Stall", rating: -1, num: 100, @@ -4106,6 +4418,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { // most of the implementation is in Battle#getTarget move.tracksTarget = move.target !== 'scripted'; }, + flags: {}, name: "Stalwart", rating: 0, num: 242, @@ -4114,8 +4427,9 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onDamagingHit(damage, target, source, effect) { this.boost({def: 1}); }, + flags: {}, name: "Stamina", - rating: 3.5, + rating: 4, num: 192, }, stancechange: { @@ -4126,7 +4440,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { const targetForme = (move.id === 'kingsshield' ? 'Aegislash' : 'Aegislash-Blade'); if (attacker.species.name !== targetForme) attacker.formeChange(targetForme); }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Stance Change", rating: 4, num: 176, @@ -4139,6 +4453,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } } }, + flags: {}, name: "Static", rating: 2, num: 9, @@ -4147,6 +4462,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onFlinch(pokemon) { this.boost({spe: 1}); }, + flags: {}, name: "Steadfast", rating: 1, num: 80, @@ -4157,6 +4473,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spe: 6}); } }, + flags: {}, name: "Steam Engine", rating: 2, num: 243, @@ -4176,6 +4493,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Steelworker", rating: 3.5, num: 200, @@ -4188,6 +4506,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Steely Spirit", rating: 3.5, num: 252, @@ -4207,6 +4526,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { }); } }, + flags: {}, name: "Stench", rating: 0.5, num: 1, @@ -4220,7 +4540,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return false; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Sticky Hold", rating: 1.5, num: 60, @@ -4245,7 +4565,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.effectState.target; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Storm Drain", rating: 3, num: 114, @@ -4257,6 +4577,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Strong Jaw", rating: 3.5, num: 173, @@ -4275,7 +4596,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return target.hp - 1; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Sturdy", rating: 3, num: 5, @@ -4286,7 +4607,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-activate', pokemon, 'ability: Suction Cups'); return null; }, - isBreakable: true, + flags: {breakable: 1}, name: "Suction Cups", rating: 1, num: 21, @@ -4295,10 +4616,29 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyCritRatio(critRatio) { return critRatio + 1; }, + flags: {}, name: "Super Luck", rating: 1.5, num: 105, }, + supersweetsyrup: { + onStart(pokemon) { + if (pokemon.syrupTriggered) return; + pokemon.syrupTriggered = true; + this.add('-ability', pokemon, 'Supersweet Syrup'); + for (const target of pokemon.adjacentFoes()) { + if (target.volatiles['substitute']) { + this.add('-immune', target); + } else { + this.boost({evasion: -1}, target, pokemon, null, true); + } + } + }, + flags: {}, + name: "Supersweet Syrup", + rating: 1.5, + num: 306, + }, supremeoverlord: { onStart(pokemon) { if (pokemon.side.totalFainted) { @@ -4319,6 +4659,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([powMod[this.effectState.fallen], 4096]); } }, + flags: {}, name: "Supreme Overlord", rating: 4, num: 293, @@ -4329,6 +4670,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(2); } }, + flags: {}, name: "Surge Surfer", rating: 3, num: 207, @@ -4348,12 +4690,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Swarm", rating: 2, num: 68, }, sweetveil: { - name: "Sweet Veil", onAllySetStatus(status, target, source, effect) { if (status.id === 'slp') { this.debug('Sweet Veil interrupts sleep'); @@ -4370,7 +4712,8 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, + name: "Sweet Veil", rating: 2, num: 175, }, @@ -4380,6 +4723,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(2); } }, + flags: {}, name: "Swift Swim", rating: 3, num: 33, @@ -4399,6 +4743,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } this.add('-activate', source, 'ability: Symbiosis', myItem, '[of] ' + pokemon); }, + flags: {}, name: "Symbiosis", rating: 0, num: 180, @@ -4413,6 +4758,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { // and show messages when activating against it. source.trySetStatus(status, target, {status: status.id, id: 'synchronize'} as Effect); }, + flags: {}, name: "Synchronize", rating: 2, num: 28, @@ -4430,6 +4776,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.debug('Sword of Ruin Def drop'); return this.chainModify(0.75); }, + flags: {}, name: "Sword of Ruin", rating: 4.5, num: 285, @@ -4447,6 +4794,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.debug('Tablets of Ruin Atk drop'); return this.chainModify(0.75); }, + flags: {}, name: "Tablets of Ruin", rating: 4.5, num: 284, @@ -4460,7 +4808,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Tangled Feet", rating: 1, num: 77, @@ -4472,6 +4820,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({spe: -1}, source, target, null, true); } }, + flags: {}, name: "Tangling Hair", rating: 2, num: 221, @@ -4486,6 +4835,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Technician", rating: 3.5, num: 101, @@ -4497,11 +4847,65 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Telepathy", rating: 0, num: 140, }, + teraformzero: { + onAfterTerastallization(pokemon) { + if (pokemon.baseSpecies.name !== 'Terapagos-Stellar') return; + if (this.field.weather || this.field.terrain) { + this.add('-ability', pokemon, 'Teraform Zero'); + this.field.clearWeather(); + this.field.clearTerrain(); + } + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1}, + name: "Teraform Zero", + rating: 3, + num: 309, + }, + terashell: { + onEffectiveness(typeMod, target, type, move) { + if (!target || target.species.name !== 'Terapagos-Terastal') return; + if (this.effectState.resisted) return -1; // all hits of multi-hit move should be not very effective + if (move.category === 'Status' || move.id === 'struggle') return; + if (!target.runImmunity(move.type)) return; // immunity has priority + if (target.hp < target.maxhp) return; + + this.add('-activate', target, 'ability: Tera Shell'); + this.effectState.resisted = true; + return -1; + }, + onAnyAfterMove() { + this.effectState.resisted = false; + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, breakable: 1}, + name: "Tera Shell", + rating: 3.5, + num: 308, + }, + terashift: { + onPreStart(pokemon) { + if (pokemon.baseSpecies.baseSpecies !== 'Terapagos') return; + if (pokemon.species.forme !== 'Terastal') { + this.add('-activate', pokemon, 'ability: Tera Shift'); + pokemon.formeChange('Terapagos-Terastal', this.effect, true); + pokemon.baseMaxhp = Math.floor(Math.floor( + 2 * pokemon.species.baseStats['hp'] + pokemon.set.ivs['hp'] + Math.floor(pokemon.set.evs['hp'] / 4) + 100 + ) * pokemon.level / 100 + 10); + const newMaxHP = pokemon.baseMaxhp; + pokemon.hp = newMaxHP - (pokemon.maxhp - pokemon.hp); + pokemon.maxhp = newMaxHP; + this.add('-heal', pokemon, pokemon.getHealth, '[silent]'); + } + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, notransform: 1}, + name: "Tera Shift", + rating: 3, + num: 307, + }, teravolt: { onStart(pokemon) { this.add('-ability', pokemon, 'Teravolt'); @@ -4509,6 +4913,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyMove(move) { move.ignoreAbility = true; }, + flags: {}, name: "Teravolt", rating: 3, num: 164, @@ -4532,6 +4937,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, + flags: {breakable: 1}, name: "Thermal Exchange", rating: 2.5, num: 270, @@ -4551,7 +4957,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(0.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Thick Fat", rating: 3.5, num: 47, @@ -4563,6 +4969,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(2); } }, + flags: {}, name: "Tinted Lens", rating: 4, num: 110, @@ -4582,6 +4989,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Torrent", rating: 2, num: 67, @@ -4593,6 +5001,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([5325, 4096]); } }, + flags: {}, name: "Tough Claws", rating: 3.5, num: 181, @@ -4604,10 +5013,25 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify(1.5); } }, + flags: {}, name: "Toxic Boost", rating: 3, num: 137, }, + toxicchain: { + onSourceDamagingHit(damage, target, source, move) { + // Despite not being a secondary, Shield Dust / Covert Cloak block Toxic Chain's effect + if (target.hasAbility('shielddust') || target.hasItem('covertcloak')) return; + + if (this.randomChance(3, 10)) { + target.trySetStatus('tox', source); + } + }, + flags: {}, + name: "Toxic Chain", + rating: 4.5, + num: 305, + }, toxicdebris: { onDamagingHit(damage, target, source, move) { const side = source.isAlly(target) ? source.side.foe : source.side; @@ -4617,6 +5041,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { side.addSideCondition('toxicspikes', target); } }, + flags: {}, name: "Toxic Debris", rating: 3.5, num: 295, @@ -4637,13 +5062,9 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onUpdate(pokemon) { if (!pokemon.isStarted || this.effectState.gaveUp) return; - const additionalBannedAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode', - ]; - const possibleTargets = pokemon.adjacentFoes().filter(target => ( - !target.getAbility().isPermanent && !additionalBannedAbilities.includes(target.ability) - )); + const possibleTargets = pokemon.adjacentFoes().filter( + target => !target.getAbility().flags['notrace'] && target.ability !== 'noability' + ); if (!possibleTargets.length) return; const target = this.sample(possibleTargets); @@ -4652,6 +5073,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target); } }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1}, name: "Trace", rating: 2.5, num: 36, @@ -4661,16 +5083,17 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyAtk(atk, attacker, defender, move) { if (move.type === 'Electric') { this.debug('Transistor boost'); - return this.chainModify(1.5); + return this.chainModify([5325, 4096]); } }, onModifySpAPriority: 5, onModifySpA(atk, attacker, defender, move) { if (move.type === 'Electric') { this.debug('Transistor boost'); - return this.chainModify(1.5); + return this.chainModify([5325, 4096]); } }, + flags: {}, name: "Transistor", rating: 3.5, num: 262, @@ -4679,6 +5102,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyPriority(priority, pokemon, target, move) { if (move?.flags['heal']) return priority + 3; }, + flags: {}, name: "Triage", rating: 3.5, num: 205, @@ -4699,6 +5123,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.addVolatile('truant'); }, condition: {}, + flags: {}, name: "Truant", rating: -1, num: 54, @@ -4710,12 +5135,12 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyMove(move) { move.ignoreAbility = true; }, + flags: {}, name: "Turboblaze", rating: 3, num: 163, }, unaware: { - name: "Unaware", onAnyModifyBoost(boosts, pokemon) { const unawareUser = this.effectState.target; if (unawareUser === pokemon) return; @@ -4731,7 +5156,8 @@ export const Abilities: {[abilityid: string]: AbilityData} = { boosts['accuracy'] = 0; } }, - isBreakable: true, + flags: {breakable: 1}, + name: "Unaware", rating: 4, num: 109, }, @@ -4753,6 +5179,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, }, + flags: {}, name: "Unburden", rating: 3.5, num: 84, @@ -4773,6 +5200,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onFoeTryEatItem() { return !this.effectState.unnerved; }, + flags: {}, name: "Unnerve", rating: 1, num: 127, @@ -4781,6 +5209,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onModifyMove(move) { if (move.flags['contact']) delete move.flags['protect']; }, + flags: {}, name: "Unseen Fist", rating: 2, num: 260, @@ -4798,6 +5227,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.debug('Vessel of Ruin SpA drop'); return this.chainModify(0.75); }, + flags: {}, name: "Vessel of Ruin", rating: 4.5, num: 284, @@ -4809,6 +5239,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return this.chainModify([4506, 4096]); } }, + flags: {}, name: "Victory Star", rating: 2, num: 162, @@ -4827,7 +5258,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, - isBreakable: true, + onTryAddVolatile(status, target) { + if (status.id === 'yawn') { + this.add('-immune', target, '[from] ability: Vital Spirit'); + return null; + } + }, + flags: {breakable: 1}, name: "Vital Spirit", rating: 1.5, num: 72, @@ -4841,19 +5278,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Volt Absorb", rating: 3.5, num: 10, }, wanderingspirit: { onDamagingHit(damage, target, source, move) { - const additionalBannedAbilities = ['hungerswitch', 'illusion', 'neutralizinggas', 'wonderguard']; - if (source.getAbility().isPermanent || additionalBannedAbilities.includes(source.ability) || - target.volatiles['dynamax'] - ) { - return; - } + if (source.getAbility().flags['failskillswap'] || target.volatiles['dynamax']) return; if (this.checkMoveMakesContact(move, source, target)) { const targetCanBeSet = this.runEvent('SetAbility', target, source, this.effect, source.ability); @@ -4868,6 +5300,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { target.setAbility(sourceAbility); } }, + flags: {}, name: "Wandering Spirit", rating: 2.5, num: 254, @@ -4881,7 +5314,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Water Absorb", rating: 3.5, num: 11, @@ -4922,7 +5355,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, - isBreakable: true, + flags: {breakable: 1}, name: "Water Bubble", rating: 4.5, num: 199, @@ -4933,6 +5366,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({def: 2}); } }, + flags: {}, name: "Water Compaction", rating: 1.5, num: 195, @@ -4951,7 +5385,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } return false; }, - isBreakable: true, + flags: {breakable: 1}, name: "Water Veil", rating: 2, num: 41, @@ -4962,6 +5396,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({def: -1, spe: 2}, target, target); } }, + flags: {}, name: "Weak Armor", rating: 1, num: 133, @@ -4975,7 +5410,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Well-Baked Body", rating: 3.5, num: 273, @@ -4995,7 +5430,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.add("-fail", target, "unboost", "[from] ability: White Smoke", "[of] " + target); } }, - isBreakable: true, + flags: {breakable: 1}, name: "White Smoke", rating: 2, num: 73, @@ -5011,6 +5446,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { target.switchFlag = true; this.add('-activate', target, 'ability: Wimp Out'); }, + flags: {}, name: "Wimp Out", rating: 1, num: 193, @@ -5028,6 +5464,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.addVolatile('charge'); } }, + flags: {}, name: "Wind Power", rating: 1, num: 277, @@ -5052,6 +5489,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { this.boost({atk: 1}, pokemon, pokemon); } }, + flags: {breakable: 1}, name: "Wind Rider", rating: 3.5, // We do not want Brambleghast to get Infiltrator in Randbats @@ -5071,7 +5509,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return null; } }, - isBreakable: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, failskillswap: 1, breakable: 1}, name: "Wonder Guard", rating: 5, num: 25, @@ -5084,7 +5522,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { return 50; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Wonder Skin", rating: 2, num: 147, @@ -5107,7 +5545,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { pokemon.transformed = false; delete pokemon.volatiles['zenmode']; if (pokemon.species.baseSpecies === 'Darmanitan' && pokemon.species.battleOnly) { - pokemon.formeChange(pokemon.species.battleOnly as string, this.effect, false, '[silent]'); + pokemon.formeChange(pokemon.species.battleOnly as string, this.effect, false, '0', '[silent]'); } }, condition: { @@ -5124,14 +5562,14 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, name: "Zen Mode", rating: 0, num: 161, }, zerotohero: { onSwitchOut(pokemon) { - if (pokemon.baseSpecies.baseSpecies !== 'Palafin' || pokemon.transformed) return; + if (pokemon.baseSpecies.baseSpecies !== 'Palafin') return; if (pokemon.species.forme !== 'Hero') { pokemon.formeChange('Palafin-Hero', this.effect, true); } @@ -5142,13 +5580,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { onStart(pokemon) { if (!this.effectState.switchingIn) return; this.effectState.switchingIn = false; - if (pokemon.baseSpecies.baseSpecies !== 'Palafin' || pokemon.transformed) return; + if (pokemon.baseSpecies.baseSpecies !== 'Palafin') return; if (!this.effectState.heroMessageDisplayed && pokemon.species.forme === 'Hero') { this.add('-activate', pokemon, 'ability: Zero to Hero'); this.effectState.heroMessageDisplayed = true; } }, - isPermanent: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, notransform: 1}, name: "Zero to Hero", rating: 5, num: 278, @@ -5168,14 +5606,13 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } }, isNonstandard: "CAP", - isBreakable: true, + flags: {breakable: 1}, name: "Mountaineer", rating: 3, num: -2, }, rebound: { isNonstandard: "CAP", - name: "Rebound", onTryHitPriority: 1, onTryHit(target, source, move) { if (this.effectState.target.activeTurns) return; @@ -5185,7 +5622,7 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; - this.actions.useMove(newMove, target, source); + this.actions.useMove(newMove, target, {target: source}); return null; }, onAllyTryHitSide(target, source, move) { @@ -5196,20 +5633,22 @@ export const Abilities: {[abilityid: string]: AbilityData} = { } const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; - this.actions.useMove(newMove, this.effectState.target, source); + this.actions.useMove(newMove, this.effectState.target, {target: source}); return null; }, condition: { duration: 1, }, - isBreakable: true, + flags: {breakable: 1}, + name: "Rebound", rating: 3, num: -3, }, persistent: { isNonstandard: "CAP", - name: "Persistent", // implemented in the corresponding move + flags: {}, + name: "Persistent", rating: 3, num: -4, }, diff --git a/data/aliases.ts b/data/aliases.ts index 805882b879da..1fd18cc27d22 100644 --- a/data/aliases.ts +++ b/data/aliases.ts @@ -1,21 +1,23 @@ -export const Aliases: {[alias: string]: string} = { +export const Aliases: import('../sim/dex').AliasesTable = { // formats randbats: "[Gen 9] Random Battle", uber: "[Gen 9] Ubers", - anythinggoes: "[Gen 8] Anything Goes", + anythinggoes: "[Gen 9] Anything Goes", ubers: "[Gen 9] Ubers", + uubers: "[Gen 9] Ubers UU", overused: "[Gen 9] OU", underused: "[Gen 9] UU", rarelyused: "[Gen 9] RU", neverused: "[Gen 9] NU", pu: "[Gen 9] PU", + zu: "[Gen 9] ZU", zeroused: "[Gen 9] ZU", mono: "[Gen 9] Monotype", ag: "[Gen 9] Anything Goes", bss: "[Gen 9] Battle Stadium Singles Series 2", vgc: "[Gen 9] VGC 2023 Series 2", bsd: "[Gen 9] VGC 2023 Series 2", - randdubs: "[Gen 8] Random Doubles Battle", + randdubs: "[Gen 9] Random Doubles Battle", doubles: "[Gen 9] Doubles OU", dou: "[Gen 9] Doubles OU", dubs: "[Gen 9] Doubles OU", @@ -44,35 +46,37 @@ export const Aliases: {[alias: string]: string} = { bh: "[Gen 9] Balanced Hackmons", mnm: "[Gen 9] Mix and Mega", aaa: "[Gen 9] Almost Any Ability", - gen8aaa: "[Gen 8] Almost Any Ability", + aaauu: "[Gen 9] Almost Any Ability UU", stab: "[Gen 9] STABmons", gg: "[Gen 9] Godly Gift", pic: "[Gen 9] Partners in Crime", camo: "[Gen 9] Camomons", + revmons: "[Gen 9] Revelationmons", + tcg: "[Gen 9] The Card Game", + fotf: "[Gen 9] Force of the Fallen", ffa: "[Gen 9] Free-For-All", - ts: "[Gen 8] Tier Shift", ph: "[Gen 9] Pure Hackmons", hackmons: "[Gen 9] Pure Hackmons", - gen7bh: "[Gen 7] Balanced Hackmons", - gen7mnm: "[Gen 7] Mix and Mega", - gen7stab: "[Gen 7] STABmons", - gen6aaa: "[Gen 6] Almost Any Ability", gen6ph: "[Gen 6] Pure Hackmons", gen6hackmons: "[Gen 6] Pure Hackmons", cc1v1: "[Gen 9] Challenge Cup 1v1", cc2v2: "[Gen 9] Challenge Cup 2v2", + cgt: "[Gen 9] Computer-Generated Teams", + compgen: "[Gen 9] Computer-Generated Teams", hc: "[Gen 9] Hackmons Cup", monorandom: "[Gen 8] Monotype Random Battle", - bf: "[Gen 7] Battle Factory", - bssf: "[Gen 8] BSS Factory", - ssb: "[Gen 8] Super Staff Bros 4", - ssb4: "[Gen 8] Super Staff Bros 4", + bf: "[Gen 8] Battle Factory", + bssf: "[Gen 9] BSS Factory", + ssb: "[Gen 9] Super Staff Bros Ultimate", + ssbu: "[Gen 9] Super Staff Bros Ultimate", lgrandom: "[Gen 7] Let's Go Random Battle", gen6bf: "[Gen 6] Battle Factory", gen7mono: "[Gen 7] Monotype", gen7ag: "[Gen 7] Anything Goes", + gen7bf: "[Gen 7] Battle Factory", gen7bss: "[Gen 7] Battle Spot Singles", gen7bssf: "[Gen 7] BSS Factory", + gen8bssf: "[Gen 8] BSS Factory", lgpeou: "[Gen 7 Let's Go] OU", lgou: "[Gen 7 Let's Go] Let's Go OU", lgdou: "[Gen 7 Let's Go] Doubles OU", @@ -86,8 +90,8 @@ export const Aliases: {[alias: string]: string} = { gen6ag: "[Gen 6] Anything Goes", crossevo: "[Gen 9] Cross Evolution", mayhem: "[Gen 9] Random Battle Mayhem", - omotm: "[Gen 9] Pokebilities", - lcotm: "[Gen 9] Cross Evolution", + omotm: "[Gen 9] Twisted Dimension", + lcotm: "[Gen 9] Mix and Mega Doubles", // mega evos fabio: "Ampharos-Mega", @@ -109,6 +113,8 @@ export const Aliases: {[alias: string]: string} = { megamewtwo: "Mewtwo-Mega-Y", megamewtwox: "Mewtwo-Mega-X", megamewtwoy: "Mewtwo-Mega-Y", + mewtwox: "Mewtwo-Mega-X", + mewtwoy: "Mewtwo-Mega-Y", megasnow: "Abomasnow-Mega", megashark: "Sharpedo-Mega", megasaur: "Venusaur-Mega", @@ -171,9 +177,13 @@ export const Aliases: {[alias: string]: string} = { arcrock: "Arceus-Rock", arcsteel: "Arceus-Steel", arcwater: "Arceus-Water", + basculegionm: "Basculegion", basculinb: "Basculin-Blue-Striped", basculinblue: "Basculin-Blue-Striped", basculinbluestripe: "Basculin-Blue-Striped", + basculinw: "Basculin-White-Striped", + basculinwhite: "Basculin-White-Striped", + basculinwhitestripe: "Basculin-White-Striped", castformh: "Castform-Snowy", castformice: "Castform-Snowy", castformr: "Castform-Rainy", @@ -220,10 +230,12 @@ export const Aliases: {[alias: string]: string} = { rotomc: "Rotom-Mow", rotomcut: "Rotom-Mow", rotomf: "Rotom-Frost", + fridge: "Rotom-Frost", rotomh: "Rotom-Heat", rotoms: "Rotom-Fan", rotomspin: "Rotom-Fan", rotomw: "Rotom-Wash", + wash: "Rotom-Wash", shaymins: "Shaymin-Sky", skymin: "Shaymin-Sky", thundurust: "Thundurus-Therian", @@ -264,9 +276,19 @@ export const Aliases: {[alias: string]: string} = { oricoriopsychic: "Oricorio-Pa'u", lycanrocmidday: "Lycanroc", lycanrocday: "Lycanroc", + lycanm: "Lycanroc-Midnight", lycanrocn: "Lycanroc-Midnight", lycanrocnight: "Lycanroc-Midnight", + lycand: "Lycanroc-Dusk", lycanrocd: "Lycanroc-Dusk", + alomuk: "Muk-Alola", + alowak: "Marowak-Alola", + snowslash: "Sandslash-Alola", + alotales: "Ninetales-Alola", + alolatales: "Ninetales-Alola", + alolem: "Golem-Alola", + neckboy: "Exeggutor-Alola", + alosian: "Persian-Alola", ndm: "Necrozma-Dusk-Mane", ndw: "Necrozma-Dawn-Wings", necrozmadm: "Necrozma-Dusk-Mane", @@ -284,18 +306,79 @@ export const Aliases: {[alias: string]: string} = { ufopsychic: "Pokestar UFO-2", goon: "Obstagoon", rime: "Mr. Rime", + gweez: "Weezing-Galar", + gorse: "Rapidash-Galar", + galardash: "Rapidash-Galar", + nddf: "Indeedee-F", zacianc: "Zacian-Crowned", + zacianh: "Zacian", + zacianhero: "Zacian", zamazentac: "Zamazenta-Crowned", + zamazentah: "Zamazenta", + zamazentahero: "Zamazenta", + glowbro: "Slowbro-Galar", + gbro: "Slowbro-Galar", + glowking: "Slowking-Galar", + gking: "Slowking-Galar", + gapdos: "Zapdos-Galar", + goltres: "Moltres-Galar", + gmolt: "Moltres-Galar", urshifuss: "Urshifu", urshifusingle: "Urshifu", urshifusinglestrike: "Urshifu", urshifurs: "Urshifu-Rapid-Strike", urshifurapid: "Urshifu-Rapid-Strike", + calyrexicerider: "Calyrex-Ice", calyrexir: "Calyrex-Ice", + calyi: "Calyrex-Ice", + calyice: "Calyrex-Ice", + calyrexshadowrider: "Calyrex-Shadow", calyrexsr: "Calyrex-Shadow", + calys: "Calyrex-Shadow", + calyshadow: "Calyrex-Shadow", taurospaldea: "Tauros-Paldea-Combat", taurospaldeafire: "Tauros-Paldea-Blaze", taurospaldeawater: "Tauros-Paldea-Aqua", + redbull: "Tauros-Paldea-Blaze", + wetbull: "Tauros-Paldea-Aqua", + ham: "Samurott-Hisui", + hamurott: "Samurott-Hisui", + decidh: "Decidueye-Hisui", + typhh: "Typhlosion-Hisui", + hqwil: "Qwilfish-Hisui", + hlil: "Lilligant-Hisui", + hisuigant: "Lilligant-Hisui", + hoodra: "Goodra-Hisui", + hzoro: "Zoroark-Hisui", + harc: "Arcanine-Hisui", + palkiao: "Palkia-Origin", + horsepalkia: "Palkia-Origin", + dialgao: "Dialga-Origin", + enamorust: "Enamorus-Therian", + enamt: "Enamorus-Therian", + squawkabillyb: "Squawkabilly-Blue", + squawkabillyw: "Squawkabilly-White", + squawkabillyy: "Squawkabilly-Yellow", + ursalunab: "Ursaluna-Bloodmoon", + woger: "Ogerpon-Wellspring", + cornerpon: "Ogerpon-Cornerstone", + waterpon: "Ogerpon-Wellspring", + rockpon: "Ogerpon-Cornerstone", + firepon: "Ogerpon-Hearthflame", + ogerw: "Ogerpon-Wellspring", + ogerc: "Ogerpon-Cornerstone", + ogerh: "Ogerpon-Hearthflame", + ogerponw: "Ogerpon-Wellspring", + ogerponc: "Ogerpon-Cornerstone", + ogerponh: "Ogerpon-Hearthflame", + ogerponwater: "Ogerpon-Wellspring", + ogerponrock: "Ogerpon-Cornerstone", + ogerponfire: "Ogerpon-Hearthflame", + ogerponwellspringmask: "Ogerpon-Wellspring", + ogerponcornerstonemask: "Ogerpon-Cornerstone", + ogerponhearthflamemask: "Ogerpon-Hearthflame", + terapagoss: "Terapagos-Stellar", + terapagost: "Terapagos-Terastal", // base formes nidoranfemale: "Nidoran-F", @@ -349,6 +432,29 @@ export const Aliases: {[alias: string]: string} = { ufof: "Pokestar UFO", ufoflying: "Pokestar UFO", vivillonmeadow: "Vivillon", + xerneasactive: "Xerneas", + indeedeem: "Indeedee", + polteageistphony: "Polteageist", + rockruffmidday: "Rockruff", + sinisteaphony: "Sinistea", + dudunsparcetwosegment: "Dudunsparce", + enamorusi: "Enamorus", + enamorusincarnate: "Enamorus", + enamorusincarnation: "Enamorus", + gimmighoulchest: "Gimmighoul", + mausholdthree: "Maushold", + oinkolognem: "Oinkologne", + palafinzero: "Palafin", + poltchageistcounterfeit: "Poltchageist", + sinistchaunremarkable: "Sinistcha", + squawkabillygreen: "Squawkabilly", + squawkabillyg: "Squawkabilly", + tealpon: "Ogerpon", + grasspon: "Ogerpon", + ogerpont: "Ogerpon", + ogerponteal: "Ogerpon", + ogerpontealmask: "Ogerpon", + terapagosbaby: "Terapagos", // event formes rockruffdusk: "Rockruff", @@ -381,7 +487,48 @@ export const Aliases: {[alias: string]: string} = { kommoot: "Kommo-o-Totem", totemkommoo: "Kommo-o-Totem", + // Paradox Pokemon + grusk: "Great Tusk", + gtusk: "Great Tusk", + tusk: "Great Tusk", + stail: "Scream Tail", + flutter: "Flutter Mane", + fmane: "Flutter Mane", + slither: "Slither Wing", + swing: "Slither Wing", + sandy: "Sandy Shocks", + shocks: "Sandy Shocks", + bonnet: "Brute Bonnet", + rmoon: "Roaring Moon", + moon: "Roaring Moon", + wake: "Walking Wake", + ww: "Walking Wake", + bolt: "Raging Bolt", + greatneck: "Raging Bolt", + neck: "Raging Bolt", + raging: "Raging Bolt", + gfire: "Gouging Fire", + goug: "Gouging Fire", + gouging: "Gouging Fire", + treads: "Iron Treads", + moth: "Iron Moth", + hands: "Iron Hands", + thorns: "Iron Thorns", + jug: "Iron Jugulis", + jugulis: "Iron Jugulis", + bundle: "Iron Bundle", + bundlechan: "Iron Bundle", + val: "Iron Valiant", + ival: "Iron Valiant", + valiant: "Iron Valiant", + ileaves: "Iron Leaves", + leaves: "Iron Leaves", + boulder: "Iron Boulder", + crown: "Iron Crown", + icrown: "Iron Crown", + // cosmetic formes + alcremievanillacream: "Alcremie", alcremierubycream: "Alcremie", alcremiematchacream: "Alcremie", alcremiemintcream: "Alcremie", @@ -464,6 +611,7 @@ export const Aliases: {[alias: string]: string} = { miniorblue: "Minior", miniorindigo: "Minior", miniorviolet: "Minior", + unowna: "Unown", unownb: "Unown", unownc: "Unown", unownd: "Unown", @@ -491,6 +639,7 @@ export const Aliases: {[alias: string]: string} = { unownz: "Unown", unownexclamation: "Unown", unownquestion: "Unown", + tatsugiricurly: "Tatsugiri", tatsugiridroopy: "Tatsugiri", tatsugiristretchy: "Tatsugiri", @@ -521,10 +670,10 @@ export const Aliases: {[alias: string]: string} = { pokestarpropw1: "Pokestar Black Door", pokestarwhitedoorprop: "Pokestar White Door", pokestarpropw2: "Pokestar White Door", - pokestarf00prop: "Pokestar F00", - pokestarpropr1: "Pokestar F00", - pokestarf002prop: "Pokestar F002", - pokestarpropr2: "Pokestar F002", + pokestarf00prop: "Pokestar F-00", + pokestarpropr1: "Pokestar F-00", + pokestarf002prop: "Pokestar F-002", + pokestarpropr2: "Pokestar F-002", pokestarblackbeltprop: "Pokestar Black Belt", pokestarpropk1: "Pokestar Black Belt", giant2: "Pokestar Giant", @@ -563,18 +712,29 @@ export const Aliases: {[alias: string]: string} = { propk1: "Pokestar Black Belt", // abilities + emorph: "Electromorphosis", + hadron: "Hadron Engine", + intim: "Intimidate", + mg: "Magic Guard", ngas: "Neutralizing Gas", pheal: "Poison Heal", + proto: "Protosynthesis", regen: "Regenerator", + sf: "Sheer Force", + so: "Supreme Overlord", stag: "Shadow Tag", // items + amulet: "Clear Amulet", assvest: "Assault Vest", av: "Assault Vest", balloon: "Air Balloon", band: "Choice Band", + booster: "Booster Energy", boots: "Heavy-Duty Boots", cb: "Choice Band", + cloak: "Covert Cloak", + dice: "Loaded Dice", ebelt: "Expert Belt", fightgem: "Fighting Gem", flightgem: "Flying Gem", @@ -584,6 +744,7 @@ export const Aliases: {[alias: string]: string} = { lefties: "Leftovers", lo: "Life Orb", lorb: "Life Orb", + nmi: "Never-Melt Ice", sash: "Focus Sash", scarf: "Choice Scarf", specs: "Choice Specs", @@ -692,115 +853,178 @@ export const Aliases: {[alias: string]: string} = { // pokemon aboma: "Abomasnow", + ace: "Cinderace", aegi: "Aegislash", aegiblade: "Aegislash-Blade", aegis: "Aegislash", aero: "Aerodactyl", + alo: "Alomomola", + amoon: "Amoonguss", amph: "Ampharos", + araq: "Araquanid", arc: "Arceus", arceusnormal: "Arceus", + arch: "Archaludon", ashgren: "Greninja-Ash", azu: "Azumarill", + bax: "Baxcalibur", bdrill: "Beedrill", bee: "Beedrill", + belli: "Bellibolt", bigsharp: "Kingambit", + billy: "Squawkabilly", birdjesus: "Pidgeot", bish: "Bisharp", blace: "Blacephalon", bliss: "Blissey", + bomb: "Bombirdier", + bramble: "Brambleghast", bull: "Tauros", bulu: "Tapu Bulu", - bundlechan: "Iron Bundle", camel: "Camerupt", cathy: "Trevenant", chandy: "Chandelure", chomp: "Garchomp", + cind: "Cinderace", clanger: "Kommo-o", clef: "Clefable", + clod: "Clodsire", + cloy: "Cloyster", coba: "Cobalion", cofag: "Cofagrigus", conk: "Conkeldurr", + copper: "Copperajah", + corv: "Corviknight", cress: "Cresselia", + croak: "Toxicroak", cruel: "Tentacruel", cube: "Kyurem-Black", cune: "Suicune", + cuno: "Articuno", darm: "Darmanitan", + dirge: "Skeledirge", dnite: "Dragonite", dogars: "Koffing", don: "Groudon", + doom: "Houndoom", + dozo: "Dondozo", drill: "Excadrill", driller: "Excadrill", + dudun: "Dudunsparce", dug: "Dugtrio", duggy: "Dugtrio", ekiller: "Arceus", + empo: "Empoleon", + enam: "Enamorus", esca: "Escavalier", ferro: "Ferrothorn", + fez: "Fezandipiti", fini: "Tapu Fini", + florg: "Florges", forry: "Forretress", fug: "Rayquaza", + galv: "Galvantula", + gambit: "Kingambit", gar: "Gengar", garde: "Gardevoir", + garg: "Garganacl", + gastro: "Gastrodon", gatr: "Feraligatr", gene: "Genesect", + ghold: "Gholdengo", gira: "Giratina", + glimm: "Glimmora", + glisc: "Gliscor", gren: "Greninja", gross: "Metagross", gyara: "Gyarados", + hatt: "Hatterene", hera: "Heracross", hippo: "Hippowdon", honch: "Honchkrow", + honse: "Spectrier", + incin: "Incineroar", + intel: "Inteleon", kanga: "Kangaskhan", karp: "Magikarp", kart: "Kartana", keld: "Keldeo", + keys: "Klefki", + kix: "Lokix", klef: "Klefki", koko: "Tapu Koko", + kommo: "Kommo-o", kou: "Raikou", krook: "Krookodile", + kyu: "Kyurem", kyub: "Kyurem-Black", kyuw: "Kyurem-White", lando: "Landorus", landoi: "Landorus", landot: "Landorus-Therian", + legion: "Basculegion", + legionf: "Basculegion-F", lego: "Nihilego", lele: "Tapu Lele", linda: "Fletchinder", + luc: "Lucario", luke: "Lucario", lurk: "Golurk", + lycan: "Lycanroc", m2: "Mewtwo", mage: "Magearna", mamo: "Mamoswine", mandi: "Mandibuzz", + maus: "Maushold", mence: "Salamence", + meow: "Meowscarada", milo: "Milotic", + mmq: "Mimikyu", + mola: "Alomomola", + molt: "Moltres", morfentshusbando: "Gengar", + munki: "Munkidori", naga: "Naganadel", nape: "Infernape", + ndd: "Indeedee", nebby: "Cosmog", - neckboy: "Exeggutor-Alola", nidok: "Nidoking", nidoq: "Nidoqueen", obama: "Abomasnow", + oger: "Ogerpon", ogre: "Kyogre", - ohmagod: "Plasmanta", p2: "Porygon2", + pao: "Chien-Pao", pato: "Psyduck", + peli: "Pelipper", pert: "Swampert", pex: "Toxapex", phero: "Pheromosa", pika: "Pikachu", + pikablu: "Marill", + plume: "Vileplume", pory2: "Porygon2", poryz: "Porygon-Z", + prim: "Primarina", + pult: "Dragapult", pyuku: "Pyukumuku", pz: "Porygon-Z", + quag: "Quagsire", + quaq: "Quaquaval", queen: "Nidoqueen", rachi: "Jirachi", + rai: "Darkrai", + raj: "Copperajah", rank: "Reuniclus", ray: "Rayquaza", reuni: "Reuniclus", + rhyp: "Rhyperior", + ribo: "Ribombee", + rilla: "Rillaboom", sab: "Sableye", sable: "Sableye", scept: "Sceptile", + sciz: "Scizor", scoli: "Scolipede", seejong: "Sealeo", serp: "Serperior", @@ -809,28 +1033,41 @@ export const Aliases: {[alias: string]: string} = { smogon: "Koffing", smogonbird: "Talonflame", snips: "Drapion", + squawk: "Squawkabilly", staka: "Stakataka", steela: "Celesteela", sui: "Suicune", swole: "Buzzwole", + sylv: "Sylveon", talon: "Talonflame", tang: "Tangrowth", + tent: "Tentacruel", terra: "Terrakion", tflame: "Talonflame", thundy: "Thundurus", + ting: "Ting-Lu", toed: "Politoed", + tomb: "Spiritomb", torn: "Tornadus", tran: "Heatran", + tsar: "Tsareena", ttar: "Tyranitar", + typh: "Typhlosion", venu: "Venusaur", viriz: "Virizion", watershifu: "Urshifu-Rapid-Strike", + weav: "Weavile", whimsi: "Whimsicott", + worm: "Orthworm", xern: "Xerneas", xurk: "Xurkitree", ygod: "Yveltal", + zac: "Zacian", + zaci: "Zacian", zam: "Alakazam", + zama: "Zamazenta", zard: "Charizard", + zone: "Magnezone", zong: "Bronzong", zor: "Scizor", zyg: "Zygarde", @@ -851,19 +1088,28 @@ export const Aliases: {[alias: string]: string} = { bb: "Brave Bird", bd: "Belly Drum", bde: "Baby-Doll Eyes", + blades: "Precipice Blades", bpass: "Baton Pass", + bpress: "Body Press", bp: "Baton Pass", + cane: "Hurricane", cc: "Close Combat", cm: "Calm Mind", dbond: "Destiny Bond", dd: "Dragon Dance", + dib: "Double Iron Bash", dv: "Dark Void", + dw: "Dual Wingbeat", + dwb: "Dual Wingbeat", + edge: "Stone Edge", eq: "Earthquake", espeed: "ExtremeSpeed", eterrain: "Electric Terrain", faintattack: "Feint Attack", + glance: "Glacial Lance", glowpunch: "Power-up Punch", gterrain: "Grassy Terrain", + hhp: "High Horsepower", hp: "Hidden Power", hpbug: "Hidden Power Bug", hpdark: "Hidden Power Dark", @@ -883,10 +1129,18 @@ export const Aliases: {[alias: string]: string} = { hpwater: "Hidden Power Water", hjk: "High Jump Kick", hijumpkick: "High Jump Kick", + knock: "Knock Off", + lr: "Last Respects", + mir: "Make It Rain", mterrain: "Misty Terrain", np: "Nasty Plot", + pblades: "Precipice Blades", pfists: "Plasma Fists", playaround: "Play Rough", + polter: "Poltergeist", + popbomb: "Population Bomb", + press: "Body Press", + psynoise: "Psychic Noise", pterrain: "Psychic Terrain", pup: "Power-up Punch", qd: "Quiver Dance", @@ -898,13 +1152,18 @@ export const Aliases: {[alias: string]: string} = { sr: "Stealth Rock", ssa: "Shell Side Arm", sub: "Substitute", + tarrows: "Thousand Arrows", + taxel: "Triple Axel", tr: "Trick Room", troom: "Trick Room", tbolt: "Thunderbolt", tspikes: "Toxic Spikes", twave: "Thunder Wave", + twaves: "Thousand Waves", vicegrip: "Vise Grip", web: "Sticky Web", + webs: "Sticky Web", + wisp: "Will-O-Wisp", wow: "Will-O-Wisp", // z-moves @@ -1858,4 +2117,253 @@ export const Aliases: {[alias: string]: string} = { zugadoon: "Blacephalon", merutan: "Meltan", merumetaru: "Melmetal", + sarunori: "Grookey", + bachinkii: "Thwackey", + gorirandaa: "Rillaboom", + hibanii: "Scorbunny", + rabifutto: "Raboot", + eesubaan: "Cinderace", + messon: "Sobble", + jimereon: "Drizzile", + intereon: "Inteleon", + hoshigarisu: "Skwovet", + yokubarisu: "Greedent", + kokogara: "Rookidee", + aogarasu: "Corvisquire", + aamaagaa: "Corviknight", + satchimushi: "Blipbug", + redoomushi: "Dottler", + iorubu: "Orbeetle", + kusune: "Nickit", + fokusurai: "Thievul", + himenka: "Gossifleur", + watashiraga: "Eldegoss", + uuruu: "Wooloo", + baiuuruu: "Dubwool", + kamukame: "Chewtle", + kajirigame: "Drednaw", + wanpachi: "Yamper", + parusuwan: "Boltund", + tandon: "Rolycoly", + toroggon: "Carkol", + sekitanzan: "Coalossal", + kajitchu: "Applin", + appuryuu: "Flapple", + taruppuru: "Appletun", + sunahebi: "Silicobra", + sadaija: "Sandaconda", + utsuu: "Cramorant", + sashikamasu: "Arrokuda", + kamasujoo: "Barraskewda", + erezun: "Toxel", + sutorindaa: "Toxtricity", + yakude: "Sizzlipede", + maruyakude: "Centiskorch", + tatakko: "Clobbopus", + otosupasu: "Grapploct", + yabacha: "Sinistea", + pottodesu: "Polteageist", + miburimu: "Hatenna", + teburimu: "Hattrem", + burimuon: "Hatterene", + berobaa: "Impidimp", + gimoo: "Morgrem", + ooronge: "Grimmsnarl", + tachifusaguma: "Obstagoon", + nyaikingu: "Perrserker", + sanigoon: "Cursola", + negiganaito: "Sirfetch'd", + barikooru: "Mr. Rime", + desubaan: "Runerigus", + mahomiru: "Milcery", + mahoippu: "Alcremie", + taireetsu: "Falinks", + bachinuni: "Pincurchin", + yukihami: "Snom", + mosunou: "Frosmoth", + ishihenjin: "Stonjourner", + koorippo: "Eiscue", + iessan: "Indeedee", + morupeko: "Morpeko", + zoudou: "Cufant", + daioudou: "Copperajah", + patchiragon: "Dracozolt", + patchirudon: "Arctozolt", + uonoragon: "Dracovish", + uochirudon: "Arctovish", + jurarudon: "Duraludon", + dorameshiya: "Dreepy", + doronchi: "Drakloak", + doraparuto: "Dragapult", + zashian: "Zacian", + mugendaina: "Eternatus", + dakuma: "Kubfu", + uuraosu: "Urshifu", + zaruudo: "Zarude", + rejiereki: "Regieleki", + rejidorago: "Regidrago", + burizaposu: "Glastrier", + reisuposu: "Spectrier", + badorekkusu: "Calyrex", + ayashishi: "Wyrdeer", + basagiri: "Kleavor", + gachiguma: "Ursaluna", + idaitou: "Basculegion", + oonyuura: "Sneasler", + hariiman: "Overqwil", + rabutorosu: "Enamorus", + nyaoha: "Sprigatito", + nyaroote: "Floragato", + masukaanya: "Meowscarada", + hogeeta: "Fuecoco", + achigeeta: "Crocalor", + raudoboon: "Skeledirge", + kuwassu: "Quaxly", + uerukamo: "Quaxwell", + ueenibaru: "Quaquaval", + guruton: "Lechonk", + pafuyuuton: "Oinkologne", + tamanchura: "Tarountula", + wanaidaa: "Spidops", + mamebatta: "Nymble", + ekusureggu: "Lokix", + pamo: "Pawmi", + pamotto: "Pawmo", + paamotto: "Pawmot", + wakkanezumi: "Tandemaus", + ikkanezumi: "Maushold", + papimotchi: "Fidough", + bauttsueru: "Dachsbun", + miniibu: "Smoliv", + oriinyo: "Dolliv", + oriiva: "Arboliva", + ikirinko: "Squawkabilly", + kojio: "Nacli", + jiozumu: "Naclstack", + kyojioon: "Garganacl", + karubou: "Charcadet", + gurenaruma: "Armarouge", + soubureizu: "Ceruledge", + zupika: "Tadbulb", + harabarii: "Bellibolt", + kaiden: "Wattrel", + taikaiden: "Kilowattrel", + orachifu: "Maschiff", + mafiteifu: "Mabosstiff", + shirushuruu: "Shroodle", + taginguru: "Grafaiai", + anokusa: "Bramblin", + anohoragusa: "Brambleghast", + nonokurage: "Toedscool", + rikukurage: "Toedscruel", + gakegani: "Klawf", + kapusaiji: "Capsakid", + sukoviran: "Scovillain", + shigaroko: "Rellor", + berakasu: "Rabsca", + hirahina: "Flittle", + kuesupatora: "Espathra", + kanuchan: "Tinkatink", + nakanuchan: "Tinkatuff", + dekanuchan: "Tinkaton", + umidiguda: "Wiglett", + umitorio: "Wugtrio", + otoshidori: "Bombirdier", + namiiruka: "Finizen", + irukaman: "Palafin", + buroron: "Varoom", + burororoomu: "Revavroom", + mototokage: "Cyclizar", + mimizuzu: "Orthworm", + kiraame: "Glimmet", + kirafuroru: "Glimmora", + bochi: "Greavard", + hakadoggu: "Houndstone", + karamingo: "Flamigo", + arukujira: "Cetoddle", + harukujira: "Cetitan", + migaruusa: "Veluza", + heirassha: "Dondozo", + sharitatsu: "Tatsugiri", + konoyozaru: "Annihilape", + dooo: "Clodsire", + rikikirin: "Farigiraf", + nokokotchi: "Dudunsparce", + dodogezan: "Kingambit", + idainakiba: "Great Tusk", + sakebushippo: "Scream Tail", + araburutake: "Brute Bonnet", + habatakukami: "Flutter Mane", + chiwohauhane: "Slither Wing", + sunanokegawa: "Sandy Shocks", + tetsunowadachi: "Iron Treads", + tetsunotsutsumi: "Iron Bundle", + tetsunokaina: "Iron Hands", + tetsunokoube: "Iron Jugulis", + tetsunodokuga: "Iron Moth", + tetsunoibara: "Iron Thorns", + sebie: "Frigibax", + segooru: "Arctibax", + segureibu: "Baxcalibur", + korekuree: "Gimmighoul", + saafugoo: "Gholdengo", + chionjien: "Wo-Chien", + paojian: "Chien-Pao", + dinruu: "Ting-Lu", + iiyui: "Chi-Yu", + todorokutsuki: "Roaring Moon", + tetsunobujin: "Iron Valiant", + uneruminamo: "Walking Wake", + tetsunoisaha: "Iron Leaves", + kamitchu: "Dipplin", + chadesu: "Poltchageist", + yabasocha: "Sinistcha", + iineinu: "Okidogi", + mashimashira: "Munkidori", + kichikigisu: "Fezandipiti", + oogapon: "Ogerpon", + burijurasu: "Archaludon", + kamitsuorochi: "Hydrapple", + ugatsuhomura: "Gouging Fire", + takeruraiko: "Raging Bolt", + tetsunoiwao: "Iron Boulder", + tetsunokashira: "Iron Crown", + terapagosu: "Terapagos", + momowarou: "Pecharunt", + + // CAP + arg: "Arghonaut", + astro: "Astrolotl", + auru: "Aurumoth", + cari: "Caribolt", + cawm: "Cawmodore", + colo: "Colossoil", + chrom: "Chromera", + chugg: "Chuggalong", + clohm: "Cyclohm", + cruci: "Crucibelle", + ebook: "Venomicon-Epilogue", + hemo: "Hemogoblin", + kerf: "Kerfluffle", + kit: "Kitsunoh", + krilo: "Krilowatt", + libra: "Equilibra", + mala: "Malaconda", + maw: "Miasmaw", + megacruci: "Crucibelle-Mega", + navi: "Naviathan", + nect: "Necturna", + ohmagod: "Plasmanta", + plas: "Plasmanta", + raja: "Saharaja", + rev: "Revenankh", + roak: "pyroak", + smoko: "Smokomodo", + snael: "Snaelstrom", + strata: "Stratagem", + train: "Chuggalong", + venomicone: "Venomicon-Epilogue", + venomiconp: "Venomicon", + venomiconprologue: "Venomicon", + volk: "Volkraken", }; diff --git a/data/cg-team-data.ts b/data/cg-team-data.ts index 442b8bd7ad21..c3d80c03167b 100644 --- a/data/cg-team-data.ts +++ b/data/cg-team-data.ts @@ -1,18 +1,23 @@ // Data for computer-generated teams -export const MOVE_PAIRINGS: {[moveID: string]: string} = { +export const MOVE_PAIRINGS: {[moveID: IDEntry]: IDEntry} = { rest: 'sleeptalk', sleeptalk: 'rest', }; // Bonuses to move ratings by ability -export const ABILITY_MOVE_BONUSES: {[abilityID: string]: {[moveID: string]: number}} = { +export const ABILITY_MOVE_BONUSES: {[abilityID: IDEntry]: {[moveID: IDEntry]: number}} = { drought: {sunnyday: 0.2, solarbeam: 2}, + contrary: {terablast: 2}, }; // Bonuses to move ratings by move type -export const ABILITY_MOVE_TYPE_BONUSES: {[abilityID: string]: {[typeID: string]: number}} = { +export const ABILITY_MOVE_TYPE_BONUSES: {[abilityID: IDEntry]: {[typeName: string]: number}} = { darkaura: {Dark: 1.33}, + dragonsmaw: {Dragon: 1.5}, fairyaura: {Fairy: 1.33}, + steelworker: {Steel: 1.5}, + steelyspirit: {Steel: 1.5}, + transistor: {Electric: 1.3}, // -ate moves pixilate: {Normal: 1.5 * 1.2}, @@ -26,7 +31,7 @@ export const ABILITY_MOVE_TYPE_BONUSES: {[abilityID: string]: {[typeID: string]: }; // For moves whose quality isn't obvious from data // USE SPARINGLY! -export const HARDCODED_MOVE_WEIGHTS: {[moveID: string]: number} = { +export const HARDCODED_MOVE_WEIGHTS: {[moveID: IDEntry]: number} = { // Fails unless user is asleep snore: 0, // Hard to use @@ -34,19 +39,21 @@ export const HARDCODED_MOVE_WEIGHTS: {[moveID: string]: number} = { // Useless without Berry + sucks even then belch: 0.2, - // Power increases in conditions within our control - acrobatics: 1.75, // not 2 because of the opportunity cost of forgoing an item - facade: 1.5, // not 2 because we forgo an item AND get badly poisoned - // Power increases in conditions out of our control that may occur avalanche: 1.2, + ficklebeam: 1.3, hex: 1.2, + stompingtantrum: 1.2, + temperflare: 1.2, + + // Attacks that set hazards on hit + // We REALLY like hazards + stoneaxe: 16, + ceaselessedge: 16, // screens lightscreen: 3, reflect: 3, auroraveil: 3, // TODO: make sure AVeil always gets Snow? - - // hazard removal - defog: 2, rapidspin: 1.2, + tailwind: 2, // mess with the opponent taunt: 2, disable: 2, encore: 3, @@ -67,4 +74,4 @@ export const HARDCODED_MOVE_WEIGHTS: {[moveID: string]: number} = { }; export const WEIGHT_BASED_MOVES = ['heatcrash', 'heavyslam', 'lowkick', 'grassknot']; -export const SPEED_BASED_MOVES = ['gyroball', 'electroball']; +export const TARGET_HP_BASED_MOVES = ['crushgrip', 'hardpress']; diff --git a/data/cg-teams.ts b/data/cg-teams.ts index b384bdd75643..430d3dec2a09 100644 --- a/data/cg-teams.ts +++ b/data/cg-teams.ts @@ -34,22 +34,35 @@ */ import {Dex, PRNG, SQL} from '../sim'; +import {EventMethods} from '../sim/dex-conditions'; import { ABILITY_MOVE_BONUSES, ABILITY_MOVE_TYPE_BONUSES, HARDCODED_MOVE_WEIGHTS, MOVE_PAIRINGS, - SPEED_BASED_MOVES, + TARGET_HP_BASED_MOVES, WEIGHT_BASED_MOVES, } from './cg-team-data'; interface TeamStats { hazardSetters: {[moveid: string]: number}; typeWeaknesses: {[type: string]: number}; + hazardRemovers: number; +} +interface MovesStats { + attackTypes: {[type: string]: number}; + setup: {atk: number, def: number, spa: number, spd: number, spe: number}; + noSleepTalk: number; + hazards: number; + stallingMoves: number; + nonStatusMoves: number; + healing: number; } // We put a limit on the number of Pokémon on a team that can be weak to a given type. const MAX_WEAK_TO_SAME_TYPE = 3; +/** An estimate of the highest raw speed in the metagame */ +const TOP_SPEED = 300; const levelOverride: {[speciesID: string]: number} = {}; export let levelUpdateInterval: NodeJS.Timeout | null = null; @@ -92,6 +105,7 @@ export default class TeamGenerator { forceLevel?: number; prng: PRNG; itemPool: Item[]; + specialItems: {[pokemon: string]: string}; constructor(format: Format | string, seed: PRNG | PRNGSeed | null) { this.dex = Dex.forFormat(format); @@ -99,6 +113,14 @@ export default class TeamGenerator { this.teamSize = this.format.ruleTable?.maxTeamSize || 6; this.prng = seed instanceof PRNG ? seed : new PRNG(seed); this.itemPool = this.dex.items.all().filter(i => i.exists && i.isNonstandard !== 'Past' && !i.isPokeball); + this.specialItems = {}; + for (const i of this.itemPool) { + if (i.itemUser && !i.isNonstandard) { + for (const user of i.itemUser) { + if (Dex.species.get(user).requiredItems?.[0] !== i.name) this.specialItems[user] = i.id; + } + } + } const rules = Dex.formats.getRuleTable(this.format); if (rules.adjustLevel) this.forceLevel = rules.adjustLevel; @@ -109,13 +131,14 @@ export default class TeamGenerator { if (!s.exists) return false; if (s.isNonstandard || s.isNonstandard === 'Unobtainable') return false; if (s.nfe) return false; - if (s.battleOnly && !s.requiredItems?.length) return false; + if (s.battleOnly && (!s.requiredItems?.length || s.name.endsWith('-Tera'))) return false; return true; }); const teamStats: TeamStats = { hazardSetters: {}, typeWeaknesses: {}, + hazardRemovers: 0, }; const team: PokemonSet[] = []; @@ -134,59 +157,77 @@ export default class TeamGenerator { } protected makeSet(species: Species, teamStats: TeamStats): PokemonSet { - const abilityPool = Object.values(species.abilities); + const abilityPool: string[] = Object.values(species.abilities); const abilityWeights = abilityPool.map(a => this.getAbilityWeight(this.dex.abilities.get(a))); const ability = this.weightedRandomPick(abilityPool, abilityWeights); + const level = this.forceLevel || TeamGenerator.getLevel(species); const moves: Move[] = []; + let movesStats: MovesStats = { + setup: {atk: 0, def: 0, spa: 0, spd: 0, spe: 0}, + attackTypes: {}, + noSleepTalk: 0, + hazards: 0, + stallingMoves: 0, + healing: 0, + nonStatusMoves: 0, + }; - let learnset = this.dex.species.getLearnset(species.id); - let movePool: string[] = []; - let learnsetSpecies = species; - if (!learnset || species.id === 'gastrodoneast') { - learnsetSpecies = this.dex.species.get(species.baseSpecies); - learnset = this.dex.species.getLearnset(learnsetSpecies.id); - } - if (learnset) { - movePool = Object.keys(learnset).filter( - moveid => learnset![moveid].find(learned => learned.startsWith('9')) - ); - } - if (learnset && learnsetSpecies === species && species.changesFrom) { - const changesFrom = this.dex.species.get(species.changesFrom); - learnset = this.dex.species.getLearnset(changesFrom.id); - for (const moveid in learnset) { - if (!movePool.includes(moveid) && learnset[moveid].some(source => source.startsWith('9'))) { - movePool.push(moveid); - } - } - } - const evoRegion = learnsetSpecies.evoRegion; - while (learnsetSpecies.prevo) { - learnsetSpecies = this.dex.species.get(learnsetSpecies.prevo); - for (const moveid in learnset) { - if (!movePool.includes(moveid) && - learnset[moveid].some(source => source.startsWith('9') && !evoRegion)) { - movePool.push(moveid); - } - } - } + let movePool: IDEntry[] = [...this.dex.species.getMovePool(species.id)]; if (!movePool.length) throw new Error(`No moves for ${species.id}`); // Consider either the top 15 moves or top 30% of moves, whichever is greater. const numberOfMovesToConsider = Math.min(movePool.length, Math.max(15, Math.trunc(movePool.length * 0.3))); let movePoolIsTrimmed = false; + // Many moves' weights, such as Swords Dance, are dependent on having other moves in the moveset already + // and end up very low when calculated with no moves chosen. This makes it difficult to add these moves without + // weighing every move 4 times, and trimming once after the initial weighing makes them impossible for most Pokemon. + // To get around this, after weighing against an empty moveset, trimming, and adding three moves, we weigh ALL + // moves again against the populated moveset, then put the chosen 3 moves back into the pool with their + // original empty-set weights, trim the pool again, and start over. This process results in about 15% fewer calls + // to getMoveWeight than considering every move every time does. + let isRound2 = false; + // this is just a second reference the array because movePool gets set to point to a new array before the old one + // gets mutated + const movePoolCopy = movePool; + let interimMovePool: {move: IDEntry, weight: number}[] = []; while (moves.length < 4 && movePool.length) { let weights; if (!movePoolIsTrimmed) { - const interimMovePool = []; - for (const move of movePool) { - const weight = this.getMoveWeight(this.dex.moves.get(move), teamStats, species, moves, ability); - interimMovePool.push({move, weight}); + if (!isRound2) { + for (const moveID of movePool) { + const move = this.dex.moves.get(moveID); + const weight = this.getMoveWeight(move, teamStats, species, moves, movesStats, ability, level); + interimMovePool.push({move: moveID, weight}); + } + + interimMovePool.sort((a, b) => b.weight - a.weight); + } else { + const originalWeights: typeof interimMovePool = []; + for (const move of moves) { + originalWeights.push(interimMovePool.find(m => m.move === move.id)!); + } + interimMovePool = originalWeights; + + for (const moveID of movePoolCopy) { + const move = this.dex.moves.get(moveID); + if (moves.includes(move)) continue; + const weight = this.getMoveWeight(move, teamStats, species, moves, movesStats, ability, level); + interimMovePool.push({move: moveID, weight}); + } + + interimMovePool.sort((a, b) => b.weight - a.weight); + moves.splice(0); + movesStats = { + setup: {atk: 0, def: 0, spa: 0, spd: 0, spe: 0}, + attackTypes: {}, + noSleepTalk: 0, + hazards: 0, + stallingMoves: 0, + healing: 0, + nonStatusMoves: 0, + }; } - - interimMovePool.sort((a, b) => b.weight - a.weight); - movePool = []; weights = []; @@ -196,44 +237,85 @@ export default class TeamGenerator { } movePoolIsTrimmed = true; } else { - weights = movePool.map(m => this.getMoveWeight(this.dex.moves.get(m), teamStats, species, moves, ability)); + weights = movePool.map( + m => this.getMoveWeight(this.dex.moves.get(m), teamStats, species, moves, movesStats, ability, level) + ); } const moveID = this.weightedRandomPick(movePool, weights, {remove: true}); + const move = this.dex.moves.get(moveID); + moves.push(move); + if (TeamGenerator.moveIsHazard(moves[moves.length - 1])) { + teamStats.hazardSetters[moveID] = (teamStats.hazardSetters[moveID] || 0) + 1; + movesStats.hazards++; + } + if (['defog', 'courtchange', 'tidyup', 'rapidspin', 'mortalspin'].includes(moveID)) teamStats.hazardRemovers++; + const boosts = move.boosts || move.self?.boosts || move.selfBoost?.boosts || + ability !== 'Sheer Force' && move.secondary?.self?.boosts; + if (move.category === 'Status') { + if (boosts) { + for (const stat in boosts) { + const chance = Math.min(100, move.secondary?.chance || 100 * (ability === 'Serene Grace' ? 2 : 1)); + const boost = (boosts[stat as StatIDExceptHP] || 0) * chance / 100; + if (boost) { + if (movesStats.setup[stat as StatIDExceptHP] < 0 && boost > 0) { + movesStats.setup[stat as StatIDExceptHP] = boost; + } else { + movesStats.setup[stat as StatIDExceptHP] += boost; + } + if (boost > 1) movesStats.noSleepTalk++; + } + } + } else { + movesStats.noSleepTalk++; + } + if (move.heal) movesStats.healing++; + if (move.stallingMove) movesStats.stallingMoves++; + } else { + movesStats.nonStatusMoves++; + const bp = +move.basePower; + const moveType = TeamGenerator.moveType(move, species); + if (movesStats.attackTypes[moveType] < bp) movesStats.attackTypes[moveType] = bp; + } + + if (!isRound2 && moves.length === 3) { + isRound2 = true; + movePoolIsTrimmed = false; + continue; + } + // add paired moves, like RestTalk const pairedMove = MOVE_PAIRINGS[moveID]; const alreadyHavePairedMove = moves.some(m => m.id === pairedMove); if ( - moves.length < 3 && + moves.length < 4 && pairedMove && + !(pairedMove === 'sleeptalk' && movesStats.noSleepTalk) && !alreadyHavePairedMove && // We don't check movePool because sometimes paired moves are bad. - this.dex.species.getLearnset(species.id)?.[pairedMove] + this.dex.species.getLearnsetData(species.id).learnset?.[pairedMove] ) { moves.push(this.dex.moves.get(pairedMove)); - movePool.splice(movePool.indexOf(pairedMove), 1); + const pairedMoveIndex = movePool.indexOf(pairedMove); + if (pairedMoveIndex > -1) movePool.splice(pairedMoveIndex, 1); } - - moves.push(this.dex.moves.get(moveID)); } let item = ''; + const nonStatusMoves = moves.filter(m => this.dex.moves.get(m).category !== 'Status'); if (species.requiredItem) { item = species.requiredItem; } else if (species.requiredItems) { item = this.prng.sample(species.requiredItems.filter(i => !this.dex.items.get(i).isNonstandard)); + } else if (this.specialItems[species.name] && nonStatusMoves.length) { + // If the species has a special item, we should use it. + item = this.specialItems[species.name]; } else if (moves.every(m => m.id !== 'acrobatics')) { // Don't assign an item if the set includes Acrobatics... const weights = []; const items = []; for (const i of this.itemPool) { - // If the species has a special item, we should use it. - if (i.itemUser?.includes(species.name)) { - item = i.name; - break; - } - - const weight = this.getItemWeight(i, teamStats, species, moves, ability); + const weight = this.getItemWeight(i, teamStats, species, moves, ability, level); if (weight !== 0) { weights.push(weight); items.push(i.name); @@ -254,16 +336,32 @@ export default class TeamGenerator { spe: 31, }; - const level = this.forceLevel || TeamGenerator.getLevel(species); - - // For Tera Type, we just pick a random type if it's got Tera Blast or no attacking moves, + // For Tera Type, we just pick a random type if it's got Tera Blast, Revelation Dance, or no attacking moves, // and the type of one of its attacking moves otherwise (so it can take advantage of the boosts). + // Pokemon with 3 or more attack types and Pokemon with both Tera Blast and Contrary can also get Stellar type + // but Pokemon with Adaptability never get Stellar because Tera Stellar makes Adaptability have no effect + // Ogerpon's formes are forced to the Tera type that matches their forme + // Terapagos is forced to Stellar type + // Pokemon with Black Sludge don't generally want to tera to a type other than Poison + const hasTeraBlast = moves.some(m => m.id === 'terablast'); + const hasRevelationDance = moves.some(m => m.id === 'revelationdance'); let teraType; - const nonStatusMoves = moves.filter(move => this.dex.moves.get(move).category !== 'Status'); - if (!moves.some(m => m.id === 'terablast') && nonStatusMoves.length) { - teraType = this.prng.sample(nonStatusMoves.map(move => this.dex.moves.get(move).type)); + if (species.forceTeraType) { + teraType = species.forceTeraType; + } else if (item === 'blacksludge' && this.prng.randomChance(2, 3)) { + teraType = 'Poison'; + } else if (hasTeraBlast && ability === 'Contrary' && this.prng.randomChance(2, 3)) { + teraType = 'Stellar'; } else { - teraType = this.prng.sample([...this.dex.types.all()]).name; + let types = nonStatusMoves.map(m => TeamGenerator.moveType(this.dex.moves.get(m), species)); + const noStellar = ability === 'Adaptability' || new Set(types).size < 3; + if (hasTeraBlast || hasRevelationDance || !nonStatusMoves.length) { + types = [...this.dex.types.names()]; + if (noStellar) types.splice(types.indexOf('Stellar')); + } else { + if (!noStellar) types.push('Stellar'); + } + teraType = this.prng.sample(types); } return { @@ -288,23 +386,23 @@ export default class TeamGenerator { */ protected speciesIsGoodFit(species: Species, stats: TeamStats): boolean { // type check - for (const type of this.dex.types.all()) { - const effectiveness = this.dex.getEffectiveness(type.name, species.types); + for (const typeName of this.dex.types.names()) { + const effectiveness = this.dex.getEffectiveness(typeName, species.types); if (effectiveness === 1) { // WEAKNESS! - if (stats.typeWeaknesses[type.name] === undefined) { - stats.typeWeaknesses[type.name] = 0; + if (stats.typeWeaknesses[typeName] === undefined) { + stats.typeWeaknesses[typeName] = 0; } - if (stats.typeWeaknesses[type.name] >= MAX_WEAK_TO_SAME_TYPE) { + if (stats.typeWeaknesses[typeName] >= MAX_WEAK_TO_SAME_TYPE) { // too many weaknesses to this type return false; } } } // species passes; increment counters - for (const type of this.dex.types.all()) { - const effectiveness = this.dex.getEffectiveness(type.name, species.types); + for (const typeName of this.dex.types.names()) { + const effectiveness = this.dex.getEffectiveness(typeName, species.types); if (effectiveness === 1) { - stats.typeWeaknesses[type.name]++; + stats.typeWeaknesses[typeName]++; } } return true; @@ -317,6 +415,10 @@ export default class TeamGenerator { return ability.rating + 1; // Some ability ratings are -1 } + protected static moveIsHazard(move: Move): boolean { + return !!(move.sideCondition && move.target === 'foeSide') || ['stoneaxe', 'ceaselessedge'].includes(move.id); + } + /** * @returns A weight for a given move on a given Pokémon. */ @@ -325,164 +427,369 @@ export default class TeamGenerator { teamStats: TeamStats, species: Species, movesSoFar: Move[], - ability: string + movesStats: MovesStats, + ability: string, + level: number, ): number { if (!move.exists) return 0; // this is NOT doubles, so there will be no adjacent ally if (move.target === 'adjacentAlly') return 0; + // There's an argument to be made for using Terapagos-Stellar's stats instead + // but the important thing is to not use Terapagos-Base's stats since it never battles in that forme + if (ability === 'Tera Shift') species = this.dex.species.get('Terapagos-Terastal'); + + // Attack and Special Attack are scaled by level^2 because in addition to stats themselves being scaled by level, + // damage dealt by attacks is also scaled by the user's level + const adjustedStats: StatsTable = { + hp: species.baseStats.hp * level / 100 + level, + atk: species.baseStats.atk * level * level / 10000, + def: species.baseStats.def * level / 100, + spa: species.baseStats.spa * level * level / 10000, + spd: species.baseStats.spd * level / 100, + spe: species.baseStats.spe * level / 100, + }; + if (move.category === 'Status') { // The initial value of this weight determines how valuable status moves are vs. attacking moves. // You can raise it to make random status moves more valuable or lower it and increase multipliers // to make only CERTAIN status moves valuable. - let weight = 2500; + let weight = 2400; // inflicts status if (move.status) weight *= TeamGenerator.statusWeight(move.status) * 2; // hazard setters: very important, but we don't need 2 pokemon to set the same hazard on a team - const isHazard = (m: Move) => m.sideCondition && m.target === 'foeSide'; - if (isHazard(move) && (teamStats.hazardSetters[move.id] || 0) < 1) { + if (TeamGenerator.moveIsHazard(move) && (teamStats.hazardSetters[move.id] || 0) < 1) { weight *= move.id === 'spikes' ? 12 : 16; // if we are ALREADY setting hazards, setting MORE is really good - if (movesSoFar.some(m => isHazard(m))) weight *= 2; - teamStats.hazardSetters[move.id]++; + if (movesStats.hazards) weight *= 2; + } + + // hazard removers: even more important than hazard setters, since they remove everything at once + // we still don't need too many on one team, though + if (['defog', 'courtchange', 'tidyup'].includes(move.id) && !teamStats.hazardRemovers) { + weight *= 32; + + // these moves can also lessen the effectiveness of the user's team's own hazards + weight *= Math.pow(0.8, Object.values(teamStats.hazardSetters).reduce((total, num) => total + num, 0)); } // boosts - weight *= this.boostWeight(move, movesSoFar, species) * 2; - weight *= this.opponentDebuffWeight(move) * 2; + weight *= this.boostWeight(move, movesSoFar, species, ability, level); + weight *= this.opponentDebuffWeight(move); + + // nonstandard boosting moves + if (move.id === 'focusenergy' && ability !== 'Super Luck') { + const highCritMoves = movesSoFar.filter(m => m.critRatio && m.critRatio > 1); + weight *= 1 + highCritMoves.length * (ability === 'Sniper' ? 2 : 1); + } else if (move.id === 'tailwind' && ability === 'Wind Rider' && movesSoFar.some(m => m.category === 'Physical')) { + weight *= 2.5; // grants +1 attack, but isn't spammable + } // protection moves - useful for bulky/stally pokemon - if (species.baseStats.def >= 100 || species.baseStats.spd >= 100 || species.baseStats.hp >= 100) { - switch (move.volatileStatus) { - case 'endure': - weight *= 3; - break; - case 'protect': case 'kingsshield': case 'silktrap': - weight *= 4; - break; - case 'banefulbunker': case 'spikyshield': - weight *= 5; - break; - default: - break; + if (!movesStats.stallingMoves) { + if (adjustedStats.def >= 80 || adjustedStats.spd >= 80 || adjustedStats.hp >= 80) { + switch (move.volatileStatus) { + case 'endure': + weight *= 2; + break; + case 'protect': + weight *= 3; + break; + case 'kingsshield': case 'silktrap': + weight *= 4; + break; + case 'banefulbunker': case 'burningbulwark': case 'spikyshield': + weight *= 5; + break; + default: + break; + } } } // Hardcoded boosts if (move.id in HARDCODED_MOVE_WEIGHTS) weight *= HARDCODED_MOVE_WEIGHTS[move.id]; + // Rest and Sleep Talk are pretty bad on Pokemon that can't fall asleep + const sleepImmunities = [ + 'Comatose', + 'Purifying Salt', + 'Shields Down', + 'Insomnia', + 'Vital Spirit', + 'Sweet Veil', + 'Misty Surge', + 'Electric Surge', + 'Hadron Engine', + ]; + if (['sleeptalk', 'rest'].includes(move.id) && sleepImmunities.includes(ability)) return 0; + + // Sleep Talk is bad with moves that can't be used repeatedly, a.k.a. most status moves + // the exceptions allowed here are moves which boost a stat by exactly 1 and moves that wake the user up + if (move.id === 'sleeptalk') { + if (movesStats.noSleepTalk) weight *= 0.1; + } else if (movesSoFar.some(m => m.id === 'sleeptalk')) { + let sleepTalkSpammable = ['takeheart', 'junglehealing', 'healbell'].includes(move.id); + if (move.boosts) { + for (const stat in move.boosts) { + if (move.boosts[stat as StatIDExceptHP] === 1) { + sleepTalkSpammable = true; + break; + } + } + } + if (!sleepTalkSpammable) weight *= 0.1; + } + // Pokémon with high Attack and Special Attack stats shouldn't have too many status moves, // but on bulkier Pokémon it's more likely to be worth it. - const goodAttacker = species.baseStats.atk > 80 || species.baseStats.spa > 80; - if (goodAttacker && movesSoFar.filter(m => m.category !== 'Status').length < 2) { + const goodAttacker = adjustedStats.atk > 65 || adjustedStats.spa > 65; + if (goodAttacker && movesStats.nonStatusMoves < 2) { weight *= 0.3; } + if (movesSoFar.length === 3 && movesStats.nonStatusMoves === 0) { + // uh oh + weight *= 0.6; + for (const stat in movesStats.setup) { + if (movesStats.setup[stat as StatIDExceptHP] > 0) { + // having no attacks is bad; having setup but no attacks is REALLY bad + weight *= 0.6; + } + } + } + + // don't need 2 healing moves + if (move.heal && movesStats.healing) weight *= 0.5; + return weight; } + let basePower = move.basePower; // For Grass Knot and friends, let's just assume they average out to around 60 base power. - const isWeirdPowerMove = WEIGHT_BASED_MOVES.includes(move.id); - let basePower = isWeirdPowerMove ? 60 : move.basePower; + // Same with Crush Grip and Hard Press + if (WEIGHT_BASED_MOVES.includes(move.id) || TARGET_HP_BASED_MOVES.includes(move.id)) basePower = 60; + /** A value from 0 to 1, where 0 is the fastest and 1 is the slowest */ + const slownessRating = Math.max(0, TOP_SPEED - adjustedStats.spe) / TOP_SPEED; // not how this calc works but it should be close enough - if (SPEED_BASED_MOVES.includes(move.id)) basePower = species.baseStats.spe / 2; + if (move.id === 'gyroball') basePower = 150 * slownessRating * slownessRating; + if (move.id === 'electroball') basePower = 150 * (1 - slownessRating) * (1 - slownessRating); - const baseStat = move.category === 'Physical' ? species.baseStats.atk : species.baseStats.spa; + let baseStat = move.category === 'Physical' ? adjustedStats.atk : adjustedStats.spa; + if (move.id === 'foulplay') baseStat = adjustedStats.spe * level / 100; + if (move.id === 'bodypress') baseStat = adjustedStats.def * level / 100; // 10% bonus for never-miss moves - const accuracy = move.accuracy === true ? 1.1 : move.accuracy / 100; + let accuracy = move.accuracy === true || ability === 'No Guard' ? 110 : move.accuracy; + if (accuracy < 100) { + if (ability === 'Compound Eyes') accuracy = Math.min(100, Math.round(accuracy * 1.3)); + if (ability === 'Victory Star') accuracy = Math.min(100, Math.round(accuracy * 1.1)); + } + accuracy /= 100; + + const moveType = TeamGenerator.moveType(move, species); let powerEstimate = basePower * baseStat * accuracy; // STAB - if (species.types.includes(move.type)) powerEstimate *= ability === 'Adaptability' ? 2 : 1.5; + if (species.types.includes(moveType)) powerEstimate *= ability === 'Adaptability' ? 2 : 1.5; if (ability === 'Technician' && move.basePower <= 60) powerEstimate *= 1.5; - if (ability === 'Steely Spirit' && move.type === 'Steel') powerEstimate *= 1.5; - if (move.multihit) { - const numberOfHits = Array.isArray(move.multihit) ? - (ability === 'Skill Link' ? move.multihit[1] : (move.multihit[0] + move.multihit[1]) / 2) : - move.multihit; - - powerEstimate *= numberOfHits; + if (ability === 'Sheer Force' && (move.secondary || move.secondaries)) powerEstimate *= 1.3; + const numberOfHits = Array.isArray(move.multihit) ? + (ability === 'Skill Link' ? move.multihit[1] : (move.multihit[0] + move.multihit[1]) / 2) : + move.multihit || 1; + powerEstimate *= numberOfHits; + + if (species.requiredItems) { + const item: Item & EventMethods = this.dex.items.get(this.specialItems[species.name]); + if (item.onBasePower && (species.types.includes(moveType) || item.name.endsWith('Mask'))) powerEstimate *= 1.2; + } else if (this.specialItems[species.name]) { + const item: Item & EventMethods = this.dex.items.get(this.specialItems[species.name]); + if (item.onBasePower && species.types.includes(moveType)) powerEstimate *= 1.2; + if (item.id === 'lightball') powerEstimate *= 2; } // If it uses the attacking stat that we don't boost, it's less useful! - const hasSpecialSetup = movesSoFar.some(m => m.boosts?.spa || m.self?.boosts?.spa || m.selfBoost?.boosts?.spa); - const hasPhysicalSetup = movesSoFar.some(m => m.boosts?.atk || m.self?.boosts?.atk || m.selfBoost?.boosts?.atk); - if (move.category === 'Physical' && hasSpecialSetup) powerEstimate *= 0.7; - if (move.category === 'Special' && hasPhysicalSetup) powerEstimate *= 0.7; + const specialSetup = movesStats.setup.spa; + const physicalSetup = movesStats.setup.atk; + if (move.category === 'Physical' && !['bodypress', 'foulplay'].includes(move.id)) { + powerEstimate *= Math.max(0.5, 1 + physicalSetup) / Math.max(0.5, 1 + specialSetup); + } + if (move.category === 'Special') powerEstimate *= Math.max(0.5, 1 + specialSetup) / Math.max(0.5, 1 + physicalSetup); const abilityBonus = ( - ((ABILITY_MOVE_BONUSES[ability] || {})[move.id] || 1) * - ((ABILITY_MOVE_TYPE_BONUSES[ability] || {})[move.type] || 1) + ((ABILITY_MOVE_BONUSES[this.dex.toID(ability)] || {})[move.id] || 1) * + ((ABILITY_MOVE_TYPE_BONUSES[this.dex.toID(ability)] || {})[moveType] || 1) ); let weight = powerEstimate * abilityBonus; if (move.id in HARDCODED_MOVE_WEIGHTS) weight *= HARDCODED_MOVE_WEIGHTS[move.id]; + // semi-hardcoded move weights that depend on having control over the item + if (!this.specialItems[species.name] && !species.requiredItem) { + if (move.id === 'acrobatics') weight *= 1.75; + if (move.id === 'facade') { + if (!['Comatose', 'Purifying Salt', 'Shields Down', 'Natural Cure', 'Misty Surge'].includes(ability)) weight *= 1.5; + } + } // priority is more useful when you're slower - if (move.priority > 0) weight *= (Math.max(130 - species.baseStats.spe, 0) / 130) * 0.5 + 1; - if (move.priority < 0) weight *= Math.min((1 / species.baseStats.spe) * 30, 1); + // except Upper Hand, which is anti-priority and thus better on faster Pokemon + // TODO: make weight scale with priority + if (move.priority > 0 && move.id !== 'upperhand') weight *= (Math.max(105 - adjustedStats.spe, 0) / 105) * 0.5 + 1; + if (move.priority < 0 || move.id === 'upperhand') weight *= Math.min((1 / adjustedStats.spe) * 25, 1); // flags if (move.flags.charge || (move.flags.recharge && ability !== 'Truant')) weight *= 0.5; if (move.flags.contact) { if (ability === 'Tough Claws') weight *= 1.3; if (ability === 'Unseen Fist') weight *= 1.1; + if (ability === 'Poison Touch') weight *= TeamGenerator.statusWeight('psn', 1 - Math.pow(0.7, numberOfHits)); } if (move.flags.bite && ability === 'Strong Jaw') weight *= 1.5; - // 10% boost for ability to break subs - if (move.flags.bypasssub) weight *= 1.1; + // 5% boost for ability to break subs + if (move.flags.bypasssub) weight *= 1.05; if (move.flags.pulse && ability === 'Mega Launcher') weight *= 1.5; if (move.flags.punch && ability === 'Iron Fist') weight *= 1.2; - if (!move.flags.protect) weight *= 1.1; + if (!move.flags.protect) weight *= 1.05; if (move.flags.slicing && ability === 'Sharpness') weight *= 1.5; + if (move.flags.sound && ability === 'Punk Rock') weight *= 1.3; // boosts/secondaries // TODO: consider more possible secondaries - weight *= this.boostWeight(move, movesSoFar, species); - if (move.secondary?.status) { - weight *= TeamGenerator.statusWeight(move.secondary.status, (move.secondary.chance || 100) / 100); + weight *= this.boostWeight(move, movesSoFar, species, ability, level); + const secondaryChance = Math.min((move.secondary?.chance || 100) * (ability === 'Serene Grace' ? 2 : 1) / 100, 100); + if (move.secondary || move.secondaries) { + if (ability === 'Sheer Force') { + weight *= 1.3; + } else { + const secondaries = move.secondaries || [move.secondary!]; + for (const secondary of secondaries) { + if (secondary.status) { + weight *= TeamGenerator.statusWeight(secondary.status, secondaryChance, slownessRating); + if (ability === 'Poison Puppeteer' && ['psn', 'tox'].includes(secondary.status)) { + weight *= TeamGenerator.statusWeight('confusion', secondaryChance); + } + } + if (secondary.volatileStatus) { + weight *= TeamGenerator.statusWeight(secondary.volatileStatus, secondaryChance, slownessRating); + } + } + } } + if (ability === 'Toxic Chain') weight *= TeamGenerator.statusWeight('tox', 1 - Math.pow(0.7, numberOfHits)); + + // Special effect if something special happened earlier in the turn + // More useful on slower Pokemon + if (move.id === 'lashout') weight *= 1 + 0.2 * slownessRating; + if (move.id === 'burningjealousy') weight *= TeamGenerator.statusWeight('brn', 0.2 * slownessRating); + if (move.id === 'alluringvoice') weight *= TeamGenerator.statusWeight('confusion', 0.2 * slownessRating); // self-inflicted confusion or locking yourself in if (move.self?.volatileStatus) weight *= 0.8; // downweight moves if we already have an attacking move of the same type - if (movesSoFar.some(m => m.category !== 'Status' && m.type === move.type && m.basePower >= 60)) weight *= 0.3; + if ((movesStats.attackTypes[moveType] || 0) > 60) weight *= 0.3; if (move.selfdestruct) weight *= 0.3; - if (move.recoil) weight *= 1 - (move.recoil[0] / move.recoil[1]); + if (move.recoil && ability !== 'Rock Head' && ability !== 'Magic Guard') { + weight *= 1 - (move.recoil[0] / move.recoil[1]); + if (ability === 'Reckless') weight *= 1.2; + } + if (move.hasCrashDamage && ability !== 'Magic Guard') { + weight *= 1 - 0.75 * (1.2 - accuracy); + if (ability === 'Reckless') weight *= 1.2; + } if (move.mindBlownRecoil) weight *= 0.25; if (move.flags['futuremove']) weight *= 0.3; - // TODO: account for normal higher-crit-chance moves - if (move.willCrit) weight *= 1.45; + + let critRate = move.willCrit ? 4 : move.critRatio || 1; + if (ability === 'Super Luck') critRate++; + if (movesSoFar.some(m => m.id === 'focusenergy')) { + critRate += 2; + weight *= 0.9; // a penalty the extra turn of setup + } + if (critRate > 4) critRate = 4; + weight *= 1 + [0, 1 / 24, 1 / 8, 1 / 2, 1][critRate] * (ability === 'Sniper' ? 1 : 0.5); + + // these two hazard removers don't clear hazards on the opponent's field, but can be blocked by type immunities + if (['rapidspin', 'mortalspin'].includes(move.id)) { + weight *= 1 + 20 * Math.pow(0.25, teamStats.hazardRemovers); + } + + // these moves have a hard-coded 16x bonus + if (move.id === 'stoneaxe' && teamStats.hazardSetters.stealthrock) weight /= 4; + if (move.id === 'ceaselessedge' && teamStats.hazardSetters.spikes) weight /= 2; if (move.drain) { const drainedFraction = move.drain[0] / move.drain[1]; weight *= 1 + (drainedFraction * 0.5); } - // don't need 2 healing moves - if (move.heal && movesSoFar.some(m => m.heal)) weight *= 0.5; + // Oricorio should rarely get Tera Blast, as Revelation Dance is strictly better + // Tera Blast is also bad on species with forced Tera types, a.k.a. Ogerpon and Terapagos + if (move.id === 'terablast' && (species.baseSpecies === 'Oricorio' || species.forceTeraType)) weight *= 0.5; return weight; } + /** + * @returns The effective type of moves with variable types such as Judgment + */ + protected static moveType(move: Move, species: Species) { + switch (move.id) { + case 'ivycudgel': + case 'ragingbull': + if (species.types.length > 1) return species.types[1]; + // falls through for Ogerpon and Tauros's respective base formes + case 'judgment': + case 'revelationdance': + return species.types[0]; + } + return move.type; + } + + protected static moveIsPhysical(move: Move, species: Species) { + if (move.category === 'Physical') { + return !(move.damageCallback || move.damage); + } else if (['terablast', 'terastarstorm', 'photongeyser', 'shellsidearm'].includes(move.id)) { + return species.baseStats.atk > species.baseStats.spa; + } else { + return false; + } + } + + protected static moveIsSpecial(move: Move, species: Species) { + if (move.category === 'Special') { + return !(move.damageCallback || move.damage); + } else if (['terablast', 'terastarstorm', 'photongeyser', 'shellsidearm'].includes(move.id)) { + return species.baseStats.atk <= species.baseStats.spa; + } else { + return false; + } + } + /** * @returns A multiplier to a move weighting based on the status it inflicts. */ - protected static statusWeight(status: string, chance = 1): number { + protected static statusWeight(status: string, chance = 1, slownessRating?: number): number { if (chance !== 1) return 1 + (TeamGenerator.statusWeight(status) - 1) * chance; switch (status) { - case 'brn': return 1.5; + case 'brn': return 2; case 'frz': return 5; - case 'par': return 1.5; - case 'psn': return 1.5; + // paralysis is especially valuable on slow pokemon that can become faster than an opponent by paralyzing it + // but some pokemon are so slow that most paralyzed pokemon would still outspeed them anyway + case 'par': return slownessRating && slownessRating > 0.25 ? 2 + slownessRating : 2; + case 'psn': return 1.75; case 'tox': return 4; case 'slp': return 4; + case 'confusion': return 1.5; + case 'healblock': return 1.75; + case 'flinch': return slownessRating ? slownessRating * 3 : 1; + case 'saltcure': return 2; + case 'sparklingaria': return 0.95; + case 'syrupbomb': return 1.5; } return 1; } @@ -490,41 +797,63 @@ export default class TeamGenerator { /** * @returns A multiplier to a move weighting based on the boosts it produces for the user. */ - protected boostWeight(move: Move, movesSoFar: Move[], species: Species): number { + protected boostWeight(move: Move, movesSoFar: Move[], species: Species, ability: string, level: number): number { const physicalIsRelevant = ( - move.category === 'Physical' || - movesSoFar.some(m => m.category === 'Physical') + TeamGenerator.moveIsPhysical(move, species) || + movesSoFar.some( + m => TeamGenerator.moveIsPhysical(m, species) && !m.overrideOffensiveStat && !m.overrideOffensivePokemon + ) ); const specialIsRelevant = ( - move.category === 'Special' || - movesSoFar.some(m => m.category === 'Special') + TeamGenerator.moveIsSpecial(move, species) || + movesSoFar.some(m => TeamGenerator.moveIsSpecial(m, species)) ); - let weight = 1; + const adjustedStats: StatsTable = { + hp: species.baseStats.hp * level / 100 + level, + atk: species.baseStats.atk * level * level / 10000, + def: species.baseStats.def * level / 100, + spa: species.baseStats.spa * level * level / 10000, + spd: species.baseStats.spd * level / 100, + spe: species.baseStats.spe * level / 100, + }; + + let weight = 0; + const accuracy = move.accuracy === true ? 100 : move.accuracy / 100; + const secondaryChance = move.secondary && ability !== 'Sheer Force' ? + Math.min(((move.secondary.chance || 100) * (ability === 'Serene Grace' ? 2 : 1) / 100), 100) * accuracy : 0; + const abilityMod = ability === 'Simple' ? 2 : ability === 'Contrary' ? -1 : 1; + const bodyPressMod = movesSoFar.some(m => m.id === 'bodyPress') ? 2 : 1; + const electroBallMod = movesSoFar.some(m => m.id === 'electroball') ? 2 : 1; for (const {chance, boosts} of [ {chance: 1, boosts: move.boosts}, {chance: 1, boosts: move.self?.boosts}, {chance: 1, boosts: move.selfBoost?.boosts}, { - chance: move.secondary ? ((move.secondary.chance || 100) / 100) : 0, - boosts: move.target === 'self' ? move.secondary?.boosts : move.secondary?.self?.boosts, + chance: secondaryChance, + boosts: move.secondary?.self?.boosts, }, ]) { if (!boosts || chance === 0) continue; + const statusMod = move.category === 'Status' ? 1 : 0.5; - if (boosts.atk && physicalIsRelevant) weight += (chance || 1) * 0.5 * boosts.atk; - if (boosts.spa && specialIsRelevant) weight += (chance || 1) * 0.5 * boosts.spa; + if (boosts.atk && physicalIsRelevant) weight += chance * boosts.atk * abilityMod * 2 * statusMod; + if (boosts.spa && specialIsRelevant) weight += chance * boosts.spa * abilityMod * 2 * statusMod; // TODO: should these scale by base stat magnitude instead of using ternaries? // defense/special defense boost is less useful if we have some bulk to start with - if (boosts.def) weight += (chance || 1) * 0.5 * boosts.def * (species.baseStats.def > 75 ? 1 : 0.5); - if (boosts.spd) weight += (chance || 1) * 0.5 * boosts.spd * (species.baseStats.spd > 75 ? 1 : 0.5); + if (boosts.def) { + weight += chance * boosts.def * abilityMod * bodyPressMod * (adjustedStats.def > 60 ? 0.5 : 1) * statusMod; + } + if (boosts.spd) weight += chance * boosts.spd * abilityMod * (adjustedStats.spd > 60 ? 0.5 : 1) * statusMod; // speed boost is less useful for fast pokemon - if (boosts.spe) weight += (chance || 1) * 0.5 * boosts.spe * (species.baseStats.spe > 120 ? 0.5 : 1); + if (boosts.spe) { + weight += chance * boosts.spe * abilityMod * electroBallMod * (adjustedStats.spe > 95 ? 0.5 : 1) * statusMod; + } } - return weight; + return weight >= 0 ? 1 + weight : 1 / (1 - weight); } /** @@ -547,32 +876,44 @@ export default class TeamGenerator { averageNumberOfDebuffs += chance * numBoosts; } - return 1 + (0.25 * averageNumberOfDebuffs); + return 1 + (0.5 * averageNumberOfDebuffs); } /** * @returns A weight for an item. */ - protected getItemWeight(item: Item, teamStats: TeamStats, species: Species, moves: Move[], ability: string): number { + protected getItemWeight( + item: Item, teamStats: TeamStats, species: Species, moves: Move[], ability: string, level: number + ): number { + const adjustedStats: StatsTable = { + hp: species.baseStats.hp * level / 100 + level, + atk: species.baseStats.atk * level * level / 10000, + def: species.baseStats.def * level / 100, + spa: species.baseStats.spa * level * level / 10000, + spd: species.baseStats.spd * level / 100, + spe: species.baseStats.spe * level / 100, + }; + const statusImmunities = ['Comatose', 'Purifying Salt', 'Shields Down', 'Natural Cure', 'Misty Surge']; + let weight; switch (item.id) { // Choice Items case 'choiceband': - return moves.every(x => x.category === 'Physical') ? 50 : 0; + return moves.every(x => TeamGenerator.moveIsPhysical(x, species)) ? 50 : 0; case 'choicespecs': - return moves.every(x => x.category === 'Special') ? 50 : 0; + return moves.every(x => TeamGenerator.moveIsSpecial(x, species)) ? 50 : 0; case 'choicescarf': - if (moves.some(x => x.category === 'Status')) return 0; - if (species.baseStats.spe > 65 && species.baseStats.spe < 120) return 50; + if (moves.some(x => x.category === 'Status' || x.secondary?.self?.boosts?.spe)) return 0; + if (adjustedStats.spe > 50 && adjustedStats.spe < 120) return 50; return 10; // Generally Decent Items case 'lifeorb': - return moves.filter(x => x.category !== 'Status').length * 8; + return moves.filter(x => x.category !== 'Status' && !x.damage && !x.damageCallback).length * 8; case 'focussash': if (ability === 'Sturdy') return 0; // frail - if (species.baseStats.hp < 80 && species.baseStats.def < 80 && species.baseStats.spd < 80) return 35; + if (adjustedStats.hp < 65 && adjustedStats.def < 65 && adjustedStats.spd < 65) return 35; return 10; case 'heavydutyboots': switch (this.dex.getEffectiveness('Rock', species)) { @@ -583,26 +924,58 @@ export default class TeamGenerator { case 'assaultvest': if (moves.some(x => x.category === 'Status')) return 0; return 30; + case 'scopelens': + const attacks = moves.filter(x => x.category !== 'Status' && !x.damage && !x.damageCallback && !x.willCrit); + if (moves.some(m => m.id === 'focusenergy')) { + if (ability === 'Super Luck') return 0; // we're already lucky enough, thank you + return attacks.length * (ability === 'Sniper' ? 16 : 12); + } else if (attacks.filter(x => (x.critRatio || 1) > 1).length || ability === 'Super Luck') { + return attacks.reduce((total, x) => { + let ratio = ability === 'Super Luck' ? 2 : 1; + if ((x.critRatio || 1) > 1) ratio++; + return total + [0, 3, 6, 12][ratio] * (ability === 'Sniper' ? 4 / 3 : 1); + }, 0); + } + return 0; + case 'eviolite': + return species.nfe || species.id === 'dipplin' ? 100 : 0; // status case 'flameorb': - weight = ability === 'Guts' && !species.types.includes('Fire') ? 30 : 0; - if (moves.some(m => m.id === 'facade')) weight *= 2; + if (species.types.includes('Fire')) return 0; + if (statusImmunities.includes(ability)) return 0; + if (['Thermal Exchange', 'Water Bubble', 'Water Veil'].includes(ability)) return 0; + weight = ['Guts', 'Flare Boost'].includes(ability) ? 30 : 0; + if (moves.some(m => m.id === 'facade')) { + if (!weight && !moves.some(m => TeamGenerator.moveIsPhysical(m, species) && m.id !== 'facade')) { + weight = 30; + } else { + weight *= 2; + } + } return weight; case 'toxicorb': - if (species.types.includes('Poison')) return 0; + if (species.types.includes('Poison') || species.types.includes('Steel')) return 0; + if (statusImmunities.includes(ability)) return 0; + if (ability === 'Immunity') return 0; + // If facade is our only physical attack, Flame Orb is preferred + if (!moves.some(m => TeamGenerator.moveIsPhysical(m, species) && m.id !== 'facade') && + !species.types.includes('Fire') && ['Thermal Exchange', 'Water Bubble', 'Water Veil'].includes(ability) + ) return 0; weight = 0; - if (ability === 'Poison Heal') weight += 25; + if (['Poison Heal', 'Toxic Boost'].includes('ability')) weight += 25; if (moves.some(m => m.id === 'facade')) weight += 25; return weight; // Healing case 'leftovers': - return 20; + return moves.some(m => m.stallingMove) ? 40 : 20; case 'blacksludge': - return species.types.includes('Poison') ? 40 : 0; + // Even poison types don't really like Black Sludge in Gen 9 because it discourages them from terastallizing + // to a type other than Poison, and thus reveals their Tera type when it activates + return species.types.includes('Poison') ? moves.some(m => m.stallingMove) ? 20 : 10 : 0; // berries case 'sitrusberry': case 'magoberry': @@ -646,6 +1019,13 @@ export default class TeamGenerator { if (!choices.length) throw new Error(`Can't pick from an empty list`); if (choices.length !== weights.length) throw new Error(`Choices and weights must be the same length`); + /* console.log(choices.reduce((acc, element, index) => { + return { + ...acc, + [element as string]: weights[index], + }; + }, {})) */ + const totalWeight = weights.reduce((a, b) => a + b, 0); let randomWeight = this.prng.next(0, totalWeight); diff --git a/data/conditions.ts b/data/conditions.ts index d77d3a129e4f..5c0f040ac391 100644 --- a/data/conditions.ts +++ b/data/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ConditionData} = { +export const Conditions: import('../sim/dex-conditions').ConditionDataTable = { brn: { name: 'brn', effectType: 'Status', @@ -27,6 +27,7 @@ export const Conditions: {[k: string]: ConditionData} = { this.add('-status', target, 'par'); } }, + onModifySpePriority: -101, onModifySpe(spe, pokemon) { // Paralysis occurs after all other Speed modifiers, so evaluate all modifiers up to this point first spe = this.finalModify(spe); @@ -164,6 +165,8 @@ export const Conditions: {[k: string]: ConditionData} = { onStart(target, source, sourceEffect) { if (sourceEffect?.id === 'lockedmove') { this.add('-start', target, 'confusion', '[fatigue]'); + } else if (sourceEffect?.effectType === 'Ability') { + this.add('-start', target, 'confusion', '[from] ability: ' + sourceEffect.name, '[of] ' + source); } else { this.add('-start', target, 'confusion'); } @@ -371,8 +374,18 @@ export const Conditions: {[k: string]: ConditionData} = { futuremove: { // this is a slot condition name: 'futuremove', - duration: 3, + onStart(target) { + this.effectState.targetSlot = target.getSlot(); + this.effectState.endingTurn = (this.turn - 1) + 2; + if (this.effectState.endingTurn >= 254) { + this.hint(`In Gen 8+, Future attacks will never resolve when used on the 255th turn or later.`); + } + }, onResidualOrder: 3, + onResidual(side: any) { + if (this.getOverflowedTurnCount() < this.effectState.endingTurn) return; + side.removeSlotCondition(this.getAtSlot(this.effectState.targetSlot), 'futuremove'); + }, onEnd(target) { const data = this.effectState; // time's up; time to hit! :D @@ -392,9 +405,6 @@ export const Conditions: {[k: string]: ConditionData} = { if (data.source.hasAbility('normalize') && this.gen >= 6) { data.moveData.type = 'Normal'; } - if (data.source.hasAbility('adaptability') && this.gen >= 6) { - data.moveData.stab = 2; - } const hitMove = new this.dex.Move(data.moveData) as ActiveMove; this.actions.trySpreadMoveHit([target], data.source, hitMove, true); @@ -821,11 +831,9 @@ export const Conditions: {[k: string]: ConditionData} = { onTrapPokemon(pokemon) { pokemon.trapped = true; }, - // Override No Guard - onInvulnerabilityPriority: 2, - onInvulnerability(target, source, move) { - return false; - }, + // Dodging moves is handled in BattleActions#hitStepInvulnerabilityEvent + // This is here for moves that manually call this event like Perish Song + onInvulnerability: false, onBeforeTurn(pokemon) { this.queue.cancelAction(pokemon); }, diff --git a/data/formats-data.ts b/data/formats-data.ts index 08e77068f5ae..eb44fdb46bfc 100644 --- a/data/formats-data.ts +++ b/data/formats-data.ts @@ -1,17 +1,13 @@ -export const FormatsData: {[k: string]: SpeciesFormatsData} = { +export const FormatsData: import('../sim/dex-species').SpeciesFormatsDataTable = { bulbasaur: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, ivysaur: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, venusaur: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, venusaurmega: { @@ -30,7 +26,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, charizard: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -49,18 +45,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, squirtle: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, wartortle: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, blastoise: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, blastoisemega: { @@ -154,7 +146,6 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { raticatealolatotem: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", }, spearow: { isNonstandard: "Past", @@ -167,13 +158,11 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, ekans: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, arbok: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, pichu: { @@ -184,7 +173,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachu: { - tier: "NFE", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachucosplay: { isNonstandard: "Past", @@ -211,32 +202,39 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachuoriginal: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachuhoenn: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachusinnoh: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachuunova: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachukalos: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachualola: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachupartner: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachustarter: { isNonstandard: "LGPE", @@ -247,37 +245,34 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachuworld: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, raichu: { - tier: "PU", - doublesTier: "(DUU)", + tier: "ZU", + doublesTier: "DUU", natDexTier: "RU", }, raichualola: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, sandshrew: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, sandshrewalola: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, sandslash: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, sandslashalola: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, nidoranf: { @@ -311,39 +306,35 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, cleffa: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, clefairy: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NFE", + doublesTier: "DUU", natDexTier: "NFE", }, clefable: { - isNonstandard: "Past", - tier: "Illegal", + tier: "OU", + doublesTier: "(DUU)", natDexTier: "UU", }, vulpix: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NFE", + doublesTier: "NFE", natDexTier: "LC", }, vulpixalola: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NFE", }, ninetales: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "DUU", natDexTier: "RU", }, ninetalesalola: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "UU", + tier: "RU", + doublesTier: "DOU", + natDexTier: "RU", }, igglybuff: { tier: "LC", @@ -352,7 +343,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, wigglytuff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -372,23 +363,19 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, oddish: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, gloom: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, vileplume: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, bellossom: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, paras: { @@ -405,35 +392,31 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, venomoth: { - tier: "NUBL", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, diglett: { - tier: "LC", + tier: "NFE", }, diglettalola: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, dugtrio: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, dugtrioalola: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, meowth: { tier: "LC", }, meowthalola: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, meowthgalar: { tier: "LC", @@ -443,17 +426,17 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, persian: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, persianalola: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, perrserker: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -461,7 +444,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, golduck: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -469,7 +452,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, primeape: { - tier: "RU", + tier: "ZU", doublesTier: "NFE", natDexTier: "NFE", }, @@ -477,36 +460,32 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, growlithehisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "LC", }, arcanine: { - tier: "RU", - doublesTier: "DOU", + tier: "PU", + doublesTier: "DUU", natDexTier: "RU", }, arcaninehisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", }, poliwag: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, poliwhirl: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, poliwrath: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, politoed: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RU", + doublesTier: "DUU", natDexTier: "RU", }, abra: { @@ -522,7 +501,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { alakazam: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "UU", }, alakazammega: { isNonstandard: "Past", @@ -549,58 +528,44 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, bellsprout: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, weepinbell: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, victreebel: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, tentacool: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, tentacruel: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, geodude: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, geodudealola: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, graveler: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, graveleralola: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, golem: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, golemalola: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, ponyta: { @@ -627,14 +592,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, slowpokegalar: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, slowbro: { tier: "RU", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "UU", }, slowbromega: { isNonstandard: "Past", @@ -642,30 +605,30 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, slowbrogalar: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, slowking: { - tier: "OU", - doublesTier: "DUU", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "RU", }, slowkinggalar: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "UU", + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", }, magnemite: { tier: "LC", }, magneton: { - tier: "PUBL", + tier: "ZU", doublesTier: "NFE", natDexTier: "NFE", }, magnezone: { - tier: "UU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "UU", }, @@ -685,48 +648,42 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, doduo: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, dodrio: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, seel: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, dewgong: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, grimer: { tier: "LC", }, grimeralola: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, muk: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, mukalola: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, shellder: { tier: "LC", }, cloyster: { - tier: "RU", + tier: "NUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -734,14 +691,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, haunter: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, gengar: { - tier: "UU", + tier: "RU", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "RUBL", }, gengarmega: { isNonstandard: "Past", @@ -771,7 +726,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, hypno: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -793,31 +748,31 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, voltorbhisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NFE", + doublesTier: "LC", + natDexTier: "LC", }, electrode: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, electrodehisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", }, exeggcute: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, exeggutor: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, exeggutoralola: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, cubone: { @@ -838,26 +793,23 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { marowakalolatotem: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", }, tyrogue: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, hitmonlee: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, hitmonchan: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, hitmontop: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, lickitung: { @@ -871,57 +823,51 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, koffing: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, weezing: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, weezinggalar: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, rhyhorn: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, rhydon: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, rhyperior: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, happiny: { tier: "LC", }, chansey: { - tier: "NU", + tier: "RU", doublesTier: "NFE", natDexTier: "UU", }, blissey: { - tier: "RU", + tier: "UU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RU", }, tangela: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "LC", + natDexTier: "NFE", }, tangrowth: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RU", }, kangaskhan: { isNonstandard: "Past", @@ -934,18 +880,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, horsea: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, seadra: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, kingdra: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, goldeen: { @@ -989,14 +931,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, scyther: { - tier: "NU", + tier: "PUBL", doublesTier: "NFE", natDexTier: "NFE", }, scizor: { tier: "UU", doublesTier: "DUU", - natDexTier: "RU", + natDexTier: "UU", }, scizormega: { isNonstandard: "Past", @@ -1004,8 +946,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "OU", }, kleavor: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "UU", }, smoochum: { isNonstandard: "Past", @@ -1018,33 +961,25 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, elekid: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, electabuzz: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, electivire: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, magby: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, magmar: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, magmortar: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, pinsir: { @@ -1058,41 +993,41 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UUBL", }, tauros: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, taurospaldeacombat: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, taurospaldeablaze: { - tier: "UU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, taurospaldeaaqua: { - tier: "UU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, magikarp: { tier: "LC", }, gyarados: { - tier: "UU", + tier: "NUBL", doublesTier: "DUU", - natDexTier: "RUBL", + natDexTier: "UUBL", }, gyaradosmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "UUBL", }, lapras: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, laprasgmax: { @@ -1100,8 +1035,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, ditto: { - tier: "RU", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, eevee: { @@ -1121,53 +1056,51 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, jolteon: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, flareon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, espeon: { - tier: "UU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, umbreon: { - tier: "NU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, leafeon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, glaceon: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, sylveon: { - tier: "RU", - doublesTier: "DOU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, porygon: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NFE", }, porygon2: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NFE", + doublesTier: "DUU", natDexTier: "NFE", }, porygonz: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RUBL", }, omanyte: { @@ -1198,16 +1131,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { aerodactylmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "RUBL", }, munchlax: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, snorlax: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, snorlaxgmax: { @@ -1215,42 +1146,40 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, articuno: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, articunogalar: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, zapdos: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "OU", + doublesTier: "(DUU)", natDexTier: "OU", }, zapdosgalar: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "RU", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "UUBL", }, moltres: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "UU", + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", }, moltresgalar: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "RU", + tier: "UUBL", + doublesTier: "DUU", + natDexTier: "RUBL", }, dratini: { tier: "LC", }, dragonair: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, dragonite: { tier: "OU", @@ -1258,8 +1187,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "OU", }, mewtwo: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, mewtwomegax: { @@ -1273,77 +1202,62 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, mew: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "RU", + tier: "NUBL", + doublesTier: "DUU", + natDexTier: "RUBL", }, chikorita: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, bayleef: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, meganium: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, cyndaquil: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, quilava: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "NFE", + tier: "NFE", }, typhlosion: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, typhlosionhisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", }, totodile: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, croconaw: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, feraligatr: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, sentret: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, furret: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, hoothoot: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, noctowl: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, ledyba: { @@ -1357,23 +1271,19 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, spinarak: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, ariados: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, chinchou: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, lanturn: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, togepi: { @@ -1408,7 +1318,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, ampharos: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1424,15 +1334,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, azumarill: { - tier: "OU", - doublesTier: "DUU", - natDexTier: "RU", + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", }, bonsly: { tier: "LC", }, sudowoodo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1443,36 +1353,32 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, jumpluff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, aipom: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NFE", }, ambipom: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, sunkern: { tier: "LC", }, sunflora: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, yanma: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NFE", }, yanmega: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, wooper: { @@ -1482,26 +1388,24 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, quagsire: { - tier: "UU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, murkrow: { tier: "NFE", - doublesTier: "DOU", + doublesTier: "DUU", }, honchkrow: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, misdreavus: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, mismagius: { - tier: "RU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1524,7 +1428,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, farigiraf: { - tier: "NU", + tier: "ZU", doublesTier: "DOU", natDexTier: "RU", }, @@ -1532,7 +1436,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, forretress: { - tier: "UU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1540,42 +1444,42 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, dudunsparce: { - tier: "NU", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, gligar: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", }, gliscor: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "UU", + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", }, snubbull: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, granbull: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, qwilfish: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, qwilfishhisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, overqwil: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", }, shuckle: { isNonstandard: "Past", @@ -1583,67 +1487,67 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, heracross: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, heracrossmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "UU", }, sneasel: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, sneaselhisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NFE", }, weavile: { - tier: "RU", + tier: "UU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "UUBL", }, sneasler: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUU", + natDexTier: "Uber", }, teddiursa: { tier: "LC", }, ursaring: { - tier: "NU", - doublesTier: "(DUU)", - natDexTier: "RU", + tier: "NFE", }, ursaluna: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "UUBL", + doublesTier: "DOU", + natDexTier: "OU", + }, + ursalunabloodmoon: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", }, slugma: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, magcargo: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, swinub: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, piloswine: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, mamoswine: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", }, corsola: { isNonstandard: "Past", @@ -1653,7 +1557,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { corsolagalar: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "LC", + natDexTier: "NFE", }, cursola: { isNonstandard: "Past", @@ -1671,7 +1575,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, delibird: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1686,15 +1590,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, skarmory: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "UU", }, houndour: { tier: "LC", }, houndoom: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1712,17 +1616,16 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, stantler: { - tier: "(PU)", - doublesTier: "(DUU)", - natDexTier: "RU", + tier: "NFE", }, wyrdeer: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, smeargle: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, miltank: { @@ -1731,18 +1634,18 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, raikou: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, entei: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, suicune: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, larvitar: { @@ -1754,21 +1657,21 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tyranitar: { tier: "UU", doublesTier: "DOU", - natDexTier: "RU", + natDexTier: "UU", }, tyranitarmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "OU", }, lugia: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, hooh: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, celebi: { @@ -1777,18 +1680,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, treecko: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, grovyle: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, sceptile: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, sceptilemega: { @@ -1797,19 +1696,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, torchic: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, combusken: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, blaziken: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "UU", + tier: "UUBL", + doublesTier: "(DUU)", + natDexTier: "UUBL", }, blazikenmega: { isNonstandard: "Past", @@ -1817,39 +1712,33 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, mudkip: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, marshtomp: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, swampert: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, swampertmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "OU", + natDexTier: "RU", }, poochyena: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, mightyena: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, zigzagoon: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "LC", + natDexTier: "NFE", }, zigzagoongalar: { isNonstandard: "Past", @@ -1897,33 +1786,25 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, lotad: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, lombre: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, ludicolo: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, seedot: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, nuzleaf: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, shiftry: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, taillow: { @@ -1940,7 +1821,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, pelipper: { - tier: "UU", + tier: "UUBL", doublesTier: "DOU", natDexTier: "OU", }, @@ -1952,29 +1833,29 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, gardevoir: { tier: "RU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "RU", }, gardevoirmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RUBL", + natDexTier: "UU", }, gallade: { - tier: "UU", - doublesTier: "DUU", + tier: "NUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, gallademega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RUBL", + natDexTier: "UU", }, surskit: { tier: "LC", }, masquerain: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1982,8 +1863,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, breloom: { - tier: "OU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, slakoth: { @@ -1993,8 +1874,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, slaking: { - tier: "(PU)", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, nincada: { @@ -2010,7 +1891,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { shedinja: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "AG", + natDexTier: "OU", }, whismur: { isNonstandard: "Past", @@ -2031,18 +1912,16 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, hariyama: { - tier: "RUBL", - doublesTier: "DUU", + tier: "ZUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, nosepass: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, probopass: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, skitty: { @@ -2056,7 +1935,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, sableye: { - tier: "RU", + tier: "ZU", doublesTier: "DUU", natDexTier: "RU", }, @@ -2099,7 +1978,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, medicham: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2121,26 +2000,26 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { manectricmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RU", }, plusle: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, minun: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, volbeat: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, illumise: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, budew: { @@ -2162,7 +2041,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, swalot: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2195,7 +2074,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, camerupt: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2205,15 +2084,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, torkoal: { - tier: "OU", + tier: "RU", doublesTier: "DOU", - natDexTier: "OU", + natDexTier: "RU", }, spoink: { tier: "LC", }, grumpig: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2223,25 +2102,21 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, trapinch: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, vibrava: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, flygon: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, cacnea: { tier: "LC", }, cacturne: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2249,22 +2124,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, altaria: { - tier: "RU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, altariamega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "RUBL", }, zangoose: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, seviper: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2282,18 +2157,16 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, whiscash: { - tier: "RU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, corphish: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, crawdaunt: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, baltoy: { @@ -2327,13 +2200,11 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, feebas: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, milotic: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, castform: { @@ -2359,43 +2230,37 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, banette: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, banettemega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "OU", }, duskull: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, dusclops: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, dusknoir: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, tropius: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, chingling: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, chimecho: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, absol: { @@ -2412,7 +2277,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, glalie: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2422,7 +2287,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, froslass: { - tier: "RU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2444,7 +2309,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { clamperl: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "LC", + natDexTier: "NFE", }, huntail: { isNonstandard: "Past", @@ -2462,7 +2327,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, luvdisc: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2473,8 +2338,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, salamence: { - tier: "UU", - doublesTier: "DUU", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RUBL", }, salamencemega: { @@ -2483,18 +2348,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, beldum: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, metang: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, metagross: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UU", + doublesTier: "DUU", natDexTier: "RU", }, metagrossmega: { @@ -2503,43 +2364,43 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, regirock: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, regice: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, registeel: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, latias: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, latiasmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "UU", }, latios: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RUBL", + tier: "UU", + doublesTier: "DUU", + natDexTier: "UUBL", }, latiosmega: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RUBL", + natDexTier: "UUBL", }, kyogre: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, kyogreprimal: { @@ -2548,8 +2409,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, groudon: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, groudonprimal: { @@ -2558,8 +2419,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, rayquaza: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, rayquazamega: { @@ -2568,73 +2429,61 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "AG", }, jirachi: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "UU", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RUBL", }, deoxys: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUU", natDexTier: "Uber", }, deoxysattack: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, deoxysdefense: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", }, deoxysspeed: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "Uber", + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "(OU)", }, turtwig: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, grotle: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, torterra: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, chimchar: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, monferno: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, infernape: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, piplup: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, prinplup: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, empoleon: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, starly: { @@ -2644,7 +2493,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, staraptor: { - tier: "UU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2662,7 +2511,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, kricketune: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2673,28 +2522,24 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, luxray: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, cranidos: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, rampardos: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, shieldon: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, bastiodon: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, burmy: { @@ -2726,12 +2571,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, vespiquen: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pachirisu: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2739,7 +2584,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, floatzel: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2760,15 +2605,16 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, gastrodon: { - tier: "UU", - doublesTier: "DUU", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, drifloon: { tier: "LC", + natDexTier: "NFE", }, drifblim: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2809,7 +2655,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, bronzong: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2819,21 +2665,19 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, spiritomb: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, gible: { tier: "LC", }, - gabite: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", - }, + gabite: { + tier: "NFE", + }, garchomp: { - tier: "OU", - doublesTier: "DOU", + tier: "UUBL", + doublesTier: "DUU", natDexTier: "OU", }, garchompmega: { @@ -2845,7 +2689,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lucario: { - tier: "UU", + tier: "NUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2858,9 +2702,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, hippowdon: { - tier: "UU", + tier: "RU", doublesTier: "DUU", - natDexTier: "RU", + natDexTier: "UU", }, skorupi: { isNonstandard: "Past", @@ -2889,7 +2733,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lumineon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2897,8 +2741,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, abomasnow: { - tier: "RU", - doublesTier: "DOU", + tier: "ZU", + doublesTier: "DUU", natDexTier: "RU", }, abomasnowmega: { @@ -2907,209 +2751,150 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, rotom: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, rotomheat: { - tier: "UU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, rotomwash: { - tier: "OU", - doublesTier: "DUU", - natDexTier: "OU", + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", }, rotomfrost: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, rotomfan: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, rotommow: { - tier: "RU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, uxie: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, mesprit: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, azelf: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, dialga: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, dialgaorigin: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, palkia: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, palkiaorigin: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, heatran: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "UU", + doublesTier: "DUU", natDexTier: "OU", }, regigigas: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, giratina: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, giratinaorigin: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, cresselia: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NUBL", + doublesTier: "DOU", natDexTier: "RU", }, phione: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, manaphy: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RUBL", + doublesTier: "(DUU)", natDexTier: "UUBL", }, darkrai: { - isNonstandard: "Past", - tier: "Illegal", + tier: "OU", + doublesTier: "DUber", natDexTier: "Uber", }, shaymin: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, shayminsky: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "(DUU)", natDexTier: "Uber", }, arceus: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, - arceusbug: { - isNonstandard: "Unobtainable", - }, - arceusdark: { - isNonstandard: "Unobtainable", - }, - arceusdragon: { - isNonstandard: "Unobtainable", - }, - arceuselectric: { - isNonstandard: "Unobtainable", - }, - arceusfairy: { - isNonstandard: "Unobtainable", - }, - arceusfighting: { - isNonstandard: "Unobtainable", - }, - arceusfire: { - isNonstandard: "Unobtainable", - }, - arceusflying: { - isNonstandard: "Unobtainable", - }, - arceusghost: { - isNonstandard: "Unobtainable", - }, - arceusgrass: { - isNonstandard: "Unobtainable", - }, - arceusground: { - isNonstandard: "Unobtainable", - }, - arceusice: { - isNonstandard: "Unobtainable", - }, - arceuspoison: { - isNonstandard: "Unobtainable", - }, - arceuspsychic: { - isNonstandard: "Unobtainable", - }, - arceusrock: { - isNonstandard: "Unobtainable", - }, - arceussteel: { - isNonstandard: "Unobtainable", - }, - arceuswater: { - isNonstandard: "Unobtainable", - }, victini: { isNonstandard: "Past", tier: "Illegal", natDexTier: "UU", }, snivy: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NFE", }, servine: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, serperior: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "UU", }, tepig: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, pignite: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, emboar: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, oshawott: { @@ -3119,13 +2904,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, samurott: { - tier: "OU", - doublesTier: "DOU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, samurotthisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", }, patrat: { isNonstandard: "Past", @@ -3218,13 +3004,11 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, blitzle: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, zebstrika: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, roggenrola: { @@ -3245,7 +3029,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { woobat: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "LC", + natDexTier: "NFE", }, swoobat: { isNonstandard: "Past", @@ -3253,13 +3037,11 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, drilbur: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, excadrill: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "UU", }, audino: { @@ -3273,19 +3055,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, timburr: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, gurdurr: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, conkeldurr: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RUBL", }, tympole: { isNonstandard: "Past", @@ -3313,18 +3091,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, sewaddle: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, swadloon: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, leavanny: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, venipede: { @@ -3340,51 +3114,43 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { scolipede: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "RUBL", }, cottonee: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, whimsicott: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "DOU", natDexTier: "RU", }, petilil: { tier: "LC", }, lilligant: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, lilliganthisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - }, - basculin: { - tier: "PU", + tier: "NUBL", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "RUBL", }, - basculinbluestriped: { - tier: "PU", + basculin: { + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, - basculinwhitestriped: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - }, basculegion: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NU", + doublesTier: "DUber", + natDexTier: "RU", }, basculegionf: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RU", + doublesTier: "DOU", + natDexTier: "RU", }, sandile: { tier: "LC", @@ -3439,13 +3205,11 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, scraggy: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NFE", }, scrafty: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, sigilyph: { @@ -3511,28 +3275,24 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, zoruahisui: { - tier: "NU", - doublesTier: "LC", - natDexTier: "LC", + tier: "LC", }, zoroark: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, zoroarkhisui: { - tier: "OU", - doublesTier: "DUU", - natDexTier: "OU", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RUBL", }, minccino: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, cinccino: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, gothita: { @@ -3542,33 +3302,27 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, gothitelle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, solosis: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, duosion: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, reuniclus: { - isNonstandard: "Past", - tier: "Illegal", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, ducklett: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, swanna: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, vanillite: { @@ -3590,7 +3344,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, sawsbuck: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3613,7 +3367,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, amoonguss: { - tier: "OU", + tier: "RU", doublesTier: "DOU", natDexTier: "RU", }, @@ -3628,18 +3382,16 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, alomomola: { - tier: "UU", + tier: "OU", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "OU", }, joltik: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, galvantula: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, ferroseed: { @@ -3674,7 +3426,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, eelektross: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3689,18 +3441,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, litwick: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, lampent: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, chandelure: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, axew: { @@ -3710,20 +3458,20 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, haxorus: { - tier: "UU", + tier: "RUBL", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "RUBL", }, cubchoo: { tier: "LC", }, beartic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, cryogonal: { - tier: "RU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3748,14 +3496,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, mienfoo: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, mienshao: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RUBL", }, druddigon: { isNonstandard: "Past", @@ -3763,22 +3509,20 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, golett: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, golurk: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, pawniard: { tier: "LC", }, bisharp: { - tier: "UU", - doublesTier: "DUU", - natDexTier: "NFE", + tier: "RU", + doublesTier: "NFE", + natDexTier: "UU", }, bouffalant: { isNonstandard: "Past", @@ -3789,22 +3533,21 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, braviary: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, braviaryhisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", }, vullaby: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, mandibuzz: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "RU", }, heatmor: { @@ -3824,104 +3567,98 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, hydreigon: { - tier: "OU", - doublesTier: "DUU", + tier: "RUBL", + doublesTier: "(DUU)", natDexTier: "UU", }, larvesta: { tier: "LC", }, volcarona: { - tier: "OU", - doublesTier: "DUU", + tier: "Uber", + doublesTier: "(DUU)", natDexTier: "OU", }, cobalion: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "RU", }, terrakion: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RUBL", }, virizion: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, tornadus: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZUBL", + doublesTier: "DOU", natDexTier: "RU", }, tornadustherian: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "OU", + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UUBL", }, thundurus: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RUBL", + doublesTier: "DUU", natDexTier: "RU", }, thundurustherian: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "RU", + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UUBL", }, reshiram: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, zekrom: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, landorus: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DOU", natDexTier: "Uber", }, landorustherian: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "OU", + doublesTier: "DOU", natDexTier: "OU", }, kyurem: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "UU", + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", }, kyuremblack: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, kyuremwhite: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, keldeo: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", - }, - keldeoresolute: { - isNonstandard: "Past", + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", }, meloetta: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, - meloettapirouette: { - isNonstandard: "Unobtainable", - }, genesect: { isNonstandard: "Past", tier: "Illegal", @@ -3948,47 +3685,37 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, chespin: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, quilladin: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "NFE", + tier: "NFE", }, chesnaught: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, fennekin: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, braixen: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "NFE", + tier: "NFE", }, delphox: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, froakie: { tier: "LC", }, frogadier: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, greninja: { - tier: "OU", + tier: "UU", doublesTier: "(DUU)", - natDexTier: "OU", + natDexTier: "UUBL", }, greninjaash: { isNonstandard: "Past", @@ -4011,8 +3738,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, talonflame: { - tier: "UU", - doublesTier: "DUU", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, scatterbug: { @@ -4022,25 +3749,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, vivillon: { - tier: "PU", - doublesTier: "(DUU)", - natDexTier: "RU", - }, - vivillonfancy: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, - vivillonpokeball: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "RU", - }, litleo: { tier: "LC", }, pyroar: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4055,7 +3772,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, florges: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4063,7 +3780,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, gogoat: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4083,18 +3800,11 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, espurr: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, meowstic: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", - }, - meowsticf: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, honedge: { @@ -4128,7 +3838,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { swirlix: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "LC", + natDexTier: "NFE", }, slurpuff: { isNonstandard: "Past", @@ -4136,13 +3846,11 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, inkay: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, malamar: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, binacle: { @@ -4159,7 +3867,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, dragalge: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4167,7 +3875,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, clawitzer: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4202,18 +3910,18 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, hawlucha: { - tier: "UU", + tier: "RUBL", doublesTier: "(DUU)", - natDexTier: "RU", + natDexTier: "RUBL", }, dedenne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, carbink: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, goomy: { @@ -4223,31 +3931,29 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, sliggoohisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NFE", }, goodra: { - tier: "NUBL", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, goodrahisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", }, klefki: { - tier: "RU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, phantump: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, trevenant: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, pumpkaboo: { @@ -4282,26 +3988,27 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, avalugg: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, avalugghisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, noibat: { tier: "LC", }, noivern: { - tier: "UU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, xerneas: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "Uber", + natDexTier: "AG", }, xerneasneutral: { isNonstandard: "Custom", // can't be used in battle @@ -4328,8 +4035,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, diancie: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NU", + doublesTier: "DOU", natDexTier: "RU", }, dianciemega: { @@ -4338,153 +4045,135 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "OU", }, hoopa: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, hoopaunbound: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "OU", + tier: "UUBL", + doublesTier: "(DUU)", + natDexTier: "UUBL", }, volcanion: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RU", + doublesTier: "DUU", natDexTier: "RU", }, rowlet: { tier: "LC", }, dartrix: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, decidueye: { - tier: "UU", - doublesTier: "DUU", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, decidueyehisui: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, litten: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, torracat: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, incineroar: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "DOU", natDexTier: "RU", }, popplio: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, brionne: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, primarina: { - isNonstandard: "Past", - tier: "Illegal", + tier: "OU", + doublesTier: "(DUU)", natDexTier: "RU", }, pikipek: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, trumbeak: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, toucannon: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, yungoos: { tier: "LC", }, gumshoos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, gumshoostotem: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", }, grubbin: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, charjabug: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, vikavolt: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, vikavolttotem: { isNonstandard: "Past", + tier: "Illegal", }, crabrawler: { tier: "LC", }, crabominable: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, oricorio: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, oricoriopompom: { - tier: "RU", + tier: "NUBL", doublesTier: "(DUU)", natDexTier: "RU", }, oricoriopau: { - tier: "PUBL", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, oricoriosensu: { - tier: "NUBL", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, cutiefly: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "NFE", }, ribombee: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "RU", + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "UU", }, ribombeetotem: { isNonstandard: "Past", + tier: "Illegal", }, rockruff: { tier: "LC", @@ -4493,17 +4182,17 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lycanroc: { - tier: "NU", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, lycanrocmidnight: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, lycanrocdusk: { - tier: "RUBL", + tier: "NUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4519,7 +4208,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, toxapex: { - tier: "OU", + tier: "UU", doublesTier: "(DUU)", natDexTier: "OU", }, @@ -4527,35 +4216,33 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, mudsdale: { - tier: "RU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, dewpider: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, araquanid: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NU", + doublesTier: "DUU", natDexTier: "RU", }, araquanidtotem: { isNonstandard: "Past", + tier: "Illegal", }, fomantis: { tier: "LC", }, lurantis: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, lurantistotem: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", }, morelull: { isNonstandard: "Past", @@ -4571,14 +4258,13 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, salazzle: { - tier: "RU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, salazzletotem: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", }, stufful: { isNonstandard: "Past", @@ -4597,22 +4283,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, tsareena: { - tier: "UU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, comfey: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UU", + doublesTier: "DUU", natDexTier: "RU", }, oranguru: { - tier: "(PU)", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, passimian: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4630,7 +4316,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, palossand: { - tier: "RU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4735,15 +4421,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, minior: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, - miniormeteor: { - isNonstandard: "Past", - }, komala: { - tier: "RU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4759,24 +4442,23 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, togedemarutotem: { isNonstandard: "Past", + tier: "Illegal", }, mimikyu: { - tier: "UU", - doublesTier: "DUU", + tier: "RU", + doublesTier: "(DUU)", natDexTier: "RU", }, mimikyutotem: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", }, mimikyubustedtotem: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", }, bruxish: { - tier: "NU", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4791,22 +4473,19 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, jangmoo: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, hakamoo: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, kommoo: { - isNonstandard: "Past", - tier: "Illegal", + tier: "UUBL", + doublesTier: "(DUU)", natDexTier: "UUBL", }, kommoototem: { isNonstandard: "Past", + tier: "Illegal", }, tapukoko: { isNonstandard: "Past", @@ -4821,7 +4500,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tapubulu: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "UU", }, tapufini: { isNonstandard: "Past", @@ -4829,23 +4508,19 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UU", }, cosmog: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, cosmoem: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "NFE", + tier: "NFE", }, solgaleo: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, lunala: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, nihilego: { @@ -4856,7 +4531,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { buzzwole: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "UU", + natDexTier: "RUBL", }, pheromosa: { isNonstandard: "Past", @@ -4884,18 +4559,18 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, necrozma: { - isNonstandard: "Past", - tier: "Illegal", + tier: "NUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, necrozmaduskmane: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, necrozmadawnwings: { - isNonstandard: "Past", - tier: "Illegal", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, necrozmaultra: { @@ -4904,13 +4579,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, magearna: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, - magearnaoriginal: { - isNonstandard: "Unobtainable", - }, marshadow: { isNonstandard: "Past", tier: "Illegal", @@ -4939,7 +4611,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { zeraora: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "RU", + natDexTier: "UU", }, meltan: { isNonstandard: "Past", @@ -4949,25 +4621,21 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { melmetal: { isNonstandard: "Past", tier: "Illegal", - natDexTier: "Uber", + natDexTier: "OU", }, melmetalgmax: { isNonstandard: "Past", tier: "Illegal", }, grookey: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, thwackey: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "NFE", + tier: "NFE", }, rillaboom: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "OU", + doublesTier: "DOU", natDexTier: "OU", }, rillaboomgmax: { @@ -4978,32 +4646,26 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, raboot: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, cinderace: { tier: "OU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "UUBL", }, cinderacegmax: { isNonstandard: "Past", tier: "Illegal", }, sobble: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "LC", + tier: "LC", }, drizzile: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "NFE", + tier: "NFE", }, inteleon: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, inteleongmax: { @@ -5014,7 +4676,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, greedent: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5086,7 +4748,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, drednaw: { - tier: "RUBL", + tier: "PUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5108,12 +4770,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, carkol: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, coalossal: { - tier: "RU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5125,7 +4785,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, flapple: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5134,7 +4794,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, appletun: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5142,11 +4802,16 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { isNonstandard: "Past", tier: "Illegal", }, + dipplin: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, silicobra: { tier: "LC", }, sandaconda: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5155,21 +4820,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, cramorant: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, - cramorantgulping: { - isNonstandard: "Past", - }, - cramorantgorging: { - isNonstandard: "Past", - }, arrokuda: { tier: "LC", }, barraskewda: { - tier: "NUBL", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5177,7 +4836,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, toxtricity: { - tier: "RUBL", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5217,17 +4876,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, polteageist: { - tier: "UU", + tier: "RUBL", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RU", }, hatenna: { tier: "LC", }, hattrem: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, hatterene: { tier: "OU", @@ -5245,22 +4902,20 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, grimmsnarl: { - tier: "UU", + tier: "PU", doublesTier: "DOU", - natDexTier: "UU", + natDexTier: "RU", }, grimmsnarlgmax: { isNonstandard: "Past", tier: "Illegal", }, milcery: { - isNonstandard: "Past", - tier: "Illegal", - natDexTier: "LC", + tier: "LC", }, alcremie: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, alcremiegmax: { @@ -5268,56 +4923,53 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, falinks: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pincurchin: { - tier: "(PU)", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, snom: { tier: "LC", }, frosmoth: { - tier: "RU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, stonjourner: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, eiscue: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, indeedee: { - tier: "RU", + tier: "PUBL", doublesTier: "DUU", natDexTier: "RU", }, indeedeef: { - tier: "PU", + tier: "ZU", doublesTier: "DOU", natDexTier: "RU", }, morpeko: { - isNonstandard: "Past", - tier: "Illegal", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, - morpekohangry: { - isNonstandard: "Past", - }, cufant: { tier: "LC", }, copperajah: { - tier: "RU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5346,8 +4998,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, duraludon: { - isNonstandard: "Past", - tier: "Illegal", + tier: "PUBL", + doublesTier: "NFE", natDexTier: "RU", }, duraludongmax: { @@ -5358,38 +5010,36 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, drakloak: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, dragapult: { tier: "OU", - doublesTier: "DOU", + doublesTier: "DUU", natDexTier: "OU", }, zacian: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, zaciancrowned: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, zamazenta: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "OU", + doublesTier: "DUber", natDexTier: "OU", }, zamazentacrowned: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, eternatus: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, eternatuseternamax: { @@ -5397,18 +5047,16 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, kubfu: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "NFE", + tier: "NFE", }, urshifu: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, urshifurapidstrike: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "OU", }, urshifugmax: { @@ -5420,55 +5068,54 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, zarude: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, - zarudedada: { - isNonstandard: "Unobtainable", - }, regieleki: { - isNonstandard: "Unobtainable", - tier: "Unreleased", - natDexTier: "Uber", + tier: "Uber", + doublesTier: "DUU", + natDexTier: "OU", }, regidrago: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "NUBL", + doublesTier: "DOU", natDexTier: "RU", }, glastrier: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, spectrier: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "(DUU)", natDexTier: "Uber", }, calyrex: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, calyrexice: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "Uber", + doublesTier: "DUber", natDexTier: "Uber", }, calyrexshadow: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "AG", + doublesTier: "DUber", natDexTier: "AG", }, enamorus: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "OU", + doublesTier: "DUU", + natDexTier: "UU", }, enamorustherian: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", }, sprigatito: { tier: "LC", @@ -5478,45 +5125,41 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, meowscarada: { tier: "OU", - doublesTier: "DOU", - natDexTier: "RU", + doublesTier: "DUU", + natDexTier: "UUBL", }, fuecoco: { tier: "LC", }, crocalor: { - tier: "NU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, skeledirge: { - tier: "OU", - doublesTier: "DUU", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "UU", }, quaxly: { tier: "LC", }, quaxwell: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, quaquaval: { tier: "UU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "UU", }, lechonk: { tier: "LC", }, oinkologne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, oinkolognef: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5524,7 +5167,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, spidops: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5540,7 +5183,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, rabsca: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5548,33 +5191,33 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, houndstone: { - tier: "Uber", - doublesTier: "DOU", - natDexTier: "Uber", + tier: "PU", + doublesTier: "DUU", + natDexTier: "RU", }, flittle: { tier: "NFE", }, espathra: { tier: "Uber", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "Uber", }, wiglett: { tier: "LC", }, wugtrio: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, dondozo: { tier: "OU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "UUBL", }, veluza: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5583,7 +5226,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, palafin: { tier: "Uber", - doublesTier: "DOU", + doublesTier: "(DUU)", natDexTier: "Uber", }, smoliv: { @@ -5593,15 +5236,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, arboliva: { - tier: "RU", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, capsakid: { tier: "LC", }, scovillain: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5609,7 +5252,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, bellibolt: { - tier: "RU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5622,23 +5265,23 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, orthworm: { - tier: "OU", + tier: "ZU", doublesTier: "(DUU)", - natDexTier: "UU", + natDexTier: "RU", }, tandemaus: { tier: "LC", }, maushold: { - tier: "UU", - doublesTier: "DOU", + tier: "RU", + doublesTier: "DUU", natDexTier: "RU", }, cetoddle: { tier: "LC", }, cetitan: { - tier: "RU", + tier: "PUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5649,19 +5292,19 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, baxcalibur: { - tier: "OU", - doublesTier: "DUU", - natDexTier: "UUBL", + tier: "Uber", + doublesTier: "(DUU)", + natDexTier: "Uber", }, tatsugiri: { - tier: "RU", + tier: "PU", doublesTier: "DUber", natDexTier: "RU", }, cyclizar: { - tier: "Uber", + tier: "RU", doublesTier: "(DUU)", - natDexTier: "OU", + natDexTier: "RU", }, pawmi: { tier: "LC", @@ -5670,35 +5313,35 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, pawmot: { - tier: "UU", - doublesTier: "DUU", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, wattrel: { tier: "LC", }, kilowattrel: { - tier: "RU", + tier: "NU", doublesTier: "(DUU)", natDexTier: "RU", }, bombirdier: { - tier: "NU", + tier: "PU", doublesTier: "(DUU)", natDexTier: "RU", }, squawkabilly: { - tier: "PU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, flamigo: { - tier: "RU", - doublesTier: "DUU", + tier: "PUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, klawf: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5706,19 +5349,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, naclstack: { - tier: "RU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, garganacl: { tier: "OU", - doublesTier: "DOU", + doublesTier: "DUU", natDexTier: "OU", }, glimmet: { - tier: "PU", - doublesTier: "LC", - natDexTier: "LC", + tier: "LC", }, glimmora: { tier: "OU", @@ -5729,15 +5368,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, grafaiai: { - tier: "UU", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, fidough: { tier: "LC", }, dachsbun: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5745,7 +5384,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, mabosstiff: { - tier: "NU", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5753,16 +5392,15 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, brambleghast: { - tier: "UU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, gimmighoul: { tier: "LC", }, gimmighoulroaming: { - isNonstandard: "Unobtainable", - tier: "Unreleased", + tier: "LC", }, gholdengo: { tier: "OU", @@ -5771,22 +5409,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { }, greattusk: { tier: "OU", - doublesTier: "DOU", + doublesTier: "DUU", natDexTier: "OU", }, brutebonnet: { - tier: "RU", - doublesTier: "DOU", + tier: "ZU", + doublesTier: "DUU", natDexTier: "RU", }, sandyshocks: { tier: "UU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "RU", }, screamtail: { - tier: "UU", - doublesTier: "DUU", + tier: "NU", + doublesTier: "(DUU)", natDexTier: "RU", }, fluttermane: { @@ -5795,48 +5433,48 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, slitherwing: { - tier: "UU", + tier: "RU", doublesTier: "(DUU)", natDexTier: "RU", }, roaringmoon: { tier: "OU", - doublesTier: "DOU", + doublesTier: "DBL", natDexTier: "Uber", }, irontreads: { tier: "OU", - doublesTier: "DUU", - natDexTier: "UU", + doublesTier: "(DUU)", + natDexTier: "OU", }, ironmoth: { tier: "OU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "UU", }, ironhands: { tier: "UUBL", doublesTier: "DOU", - natDexTier: "RUBL", + natDexTier: "UUBL", }, ironjugulis: { - tier: "UU", - doublesTier: "DUU", + tier: "RUBL", + doublesTier: "(DUU)", natDexTier: "RU", }, ironthorns: { - tier: "UU", + tier: "NUBL", doublesTier: "(DUU)", natDexTier: "RU", }, ironbundle: { tier: "Uber", - doublesTier: "DOU", + doublesTier: "DUU", natDexTier: "Uber", }, ironvaliant: { tier: "OU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "OU", }, tinglu: { @@ -5850,8 +5488,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, wochien: { - tier: "UU", - doublesTier: "DOU", + tier: "PU", + doublesTier: "(DUU)", natDexTier: "RU", }, chiyu: { @@ -5862,10 +5500,10 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { koraidon: { tier: "Uber", doublesTier: "DUber", - natDexTier: "Uber", + natDexTier: "AG", }, miraidon: { - tier: "Uber", + tier: "AG", doublesTier: "DUber", natDexTier: "AG", }, @@ -5873,34 +5511,32 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, tinkatuff: { - tier: "PU", - doublesTier: "NFE", - natDexTier: "NFE", + tier: "NFE", }, tinkaton: { tier: "UU", - doublesTier: "DUU", + doublesTier: "(DUU)", natDexTier: "RU", }, charcadet: { tier: "LC", }, armarouge: { - tier: "OU", - doublesTier: "DOU", + tier: "RU", + doublesTier: "DUU", natDexTier: "RU", }, ceruledge: { - tier: "OU", - doublesTier: "DUU", - natDexTier: "UU", + tier: "UUBL", + doublesTier: "(DUU)", + natDexTier: "OU", }, toedscool: { tier: "LC", }, toedscruel: { - tier: "UU", - doublesTier: "DUU", + tier: "ZU", + doublesTier: "(DUU)", natDexTier: "RU", }, kingambit: { @@ -5909,25 +5545,113 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "OU", }, clodsire: { - tier: "OU", - doublesTier: "DUU", + tier: "UU", + doublesTier: "(DUU)", natDexTier: "OU", }, annihilape: { tier: "Uber", doublesTier: "DUber", - natDexTier: "OU", + natDexTier: "Uber", }, walkingwake: { tier: "OU", doublesTier: "DOU", - natDexTier: "OU", + natDexTier: "Uber", }, ironleaves: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + poltchageist: { + tier: "LC", + }, + sinistcha: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "RU", + }, + okidogi: { + tier: "UUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + munkidori: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fezandipiti: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ogerpon: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ogerponwellspring: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + ogerponhearthflame: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + ogerponcornerstone: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UUBL", + }, + archaludon: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "OU", + }, + hydrapple: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + gougingfire: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + ragingbolt: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + ironboulder: { tier: "UUBL", doublesTier: "DUU", natDexTier: "UU", }, + ironcrown: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + terapagos: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "OU", + }, + terapagosstellar: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + pecharunt: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, missingno: { isNonstandard: "Custom", tier: "Illegal", @@ -6212,6 +5936,30 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { isNonstandard: "CAP", tier: "CAP", }, + ababo: { + isNonstandard: "CAP", + tier: "CAP LC", + }, + scattervein: { + isNonstandard: "CAP", + tier: "CAP NFE", + }, + hemogoblin: { + isNonstandard: "CAP", + tier: "CAP", + }, + cresceidon: { + isNonstandard: "CAP", + tier: "CAP", + }, + chuggalong: { + isNonstandard: "CAP", + tier: "CAP", + }, + shox: { + isNonstandard: "CAP", + tier: "CAP", + }, pokestarsmeargle: { isNonstandard: "Custom", tier: "Illegal", @@ -6244,10 +5992,6 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { isNonstandard: "Custom", tier: "Illegal", }, - pokestargiant2: { - isNonstandard: "Custom", - tier: "Illegal", - }, pokestarhumanoid: { isNonstandard: "Custom", tier: "Illegal", @@ -6280,10 +6024,6 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { isNonstandard: "Custom", tier: "Illegal", }, - pokestargiantpropo2: { - isNonstandard: "Custom", - tier: "Illegal", - }, pokestarufopropu2: { isNonstandard: "Custom", tier: "Illegal", diff --git a/data/items.ts b/data/items.ts index 47817e35abe6..99d707c02b1b 100644 --- a/data/items.ts +++ b/data/items.ts @@ -1,7 +1,10 @@ -export const Items: {[itemid: string]: ItemData} = { +export const Items: import('../sim/dex-items').ItemDataTable = { abilityshield: { name: "Ability Shield", - spritenum: 0, // TODO + spritenum: 746, + fling: { + basePower: 30, + }, ignoreKlutz: true, // Neutralizing Gas protection implemented in Pokemon.ignoringAbility() within sim/pokemon.ts // and in Neutralizing Gas itself within data/abilities.ts @@ -63,7 +66,7 @@ export const Items: {[itemid: string]: ItemData} = { }, adamantcrystal: { name: "Adamant Crystal", - spritenum: 4, // TODO + spritenum: 741, onBasePowerPriority: 15, onBasePower(basePower, user, target, move) { if (user.baseSpecies.num === 483 && (move.type === 'Steel' || move.type === 'Dragon')) { @@ -80,7 +83,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Dialga-Origin"], num: 1777, gen: 8, - isNonstandard: "Unobtainable", }, adamantorb: { name: "Adamant Orb", @@ -97,7 +99,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Dialga"], num: 135, gen: 4, - isNonstandard: "Unobtainable", }, adrenalineorb: { name: "Adrenaline Orb", @@ -166,7 +167,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, pokemon.baseMaxhp / 3)) return false; }, onEat(pokemon) { this.heal(pokemon.baseMaxhp / 3); @@ -323,7 +324,8 @@ export const Items: {[itemid: string]: ItemData} = { }, onDisableMove(pokemon) { for (const moveSlot of pokemon.moveSlots) { - if (this.dex.moves.get(moveSlot.move).category === 'Status') { + const move = this.dex.moves.get(moveSlot.id); + if (move.category === 'Status' && move.id !== 'mefirst') { pokemon.disableMove(moveSlot.id); } } @@ -347,7 +349,10 @@ export const Items: {[itemid: string]: ItemData} = { }, auspiciousarmor: { name: "Auspicious Armor", - spritenum: 0, // TODO + spritenum: 753, + fling: { + basePower: 30, + }, num: 2344, gen: 9, }, @@ -431,7 +436,7 @@ export const Items: {[itemid: string]: ItemData} = { }, onUpdate(pokemon) { if (pokemon.hp <= pokemon.maxhp / 2) { - if (this.runEvent('TryHeal', pokemon) && pokemon.useItem()) { + if (this.runEvent('TryHeal', pokemon, null, this.effect, 20) && pokemon.useItem()) { this.heal(20); } } @@ -448,7 +453,15 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1111, gen: 8, - isNonstandard: "Past", + }, + bignugget: { + name: "Big Nugget", + spritenum: 27, + fling: { + basePower: 130, + }, + num: 581, + gen: 5, }, bigroot: { name: "Big Root", @@ -597,9 +610,15 @@ export const Items: {[itemid: string]: ItemData} = { }, boosterenergy: { name: "Booster Energy", - spritenum: 0, // TODO + spritenum: 745, + fling: { + basePower: 30, + }, + onStart() { + this.effectState.started = true; + }, onUpdate(pokemon) { - if (pokemon.transformed) return; + if (!this.effectState.started || pokemon.transformed) return; if (this.queue.peek(true)?.choice === 'runSwitch') return; if (pokemon.hasAbility('protosynthesis') && !this.field.isWeather('sunnyday') && pokemon.useItem()) { @@ -1002,7 +1021,11 @@ export const Items: {[itemid: string]: ItemData} = { }, clearamulet: { name: "Clear Amulet", - spritenum: 0, // TODO + spritenum: 747, + fling: { + basePower: 30, + }, + onTryBoostPriority: 1, onTryBoost(boost, target, source, effect) { if (source && target === source) return; let showMsg = false; @@ -1028,7 +1051,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1112, gen: 8, - isNonstandard: "Past", }, cobaberry: { name: "Coba Berry", @@ -1078,6 +1100,27 @@ export const Items: {[itemid: string]: ItemData} = { num: 198, gen: 4, }, + cornerstonemask: { + name: "Cornerstone Mask", + spritenum: 758, + fling: { + basePower: 60, + }, + onBasePowerPriority: 15, + onBasePower(basePower, user, target, move) { + if (user.baseSpecies.name.startsWith('Ogerpon-Cornerstone')) { + return this.chainModify([4915, 4096]); + } + }, + onTakeItem(item, source) { + if (source.baseSpecies.baseSpecies === 'Ogerpon') return false; + return true; + }, + forcedForme: "Ogerpon-Cornerstone", + itemUser: ["Ogerpon-Cornerstone"], + num: 2406, + gen: 9, + }, cornnberry: { name: "Cornn Berry", spritenum: 81, @@ -1103,10 +1146,10 @@ export const Items: {[itemid: string]: ItemData} = { }, covertcloak: { name: "Covert Cloak", + spritenum: 750, fling: { - basePower: 10, + basePower: 30, }, - spritenum: 0, // TODO onModifySecondaries(secondaries) { this.debug('Covert Cloak prevent secondary'); return secondaries.filter(effect => !!(effect.self || effect.dustproof)); @@ -1147,7 +1190,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 210, gen: 4, - isNonstandard: "Unobtainable", }, damprock: { name: "Damp Rock", @@ -1335,7 +1377,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Dragon", num: 311, gen: 4, - isNonstandard: "Unobtainable", }, dragonfang: { name: "Dragon Fang", @@ -1390,7 +1431,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 235, gen: 2, - isNonstandard: "Past", }, dragoniumz: { name: "Dragonium Z", @@ -1423,7 +1463,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Dark", num: 312, gen: 4, - isNonstandard: "Unobtainable", }, dreamball: { name: "Dream Ball", @@ -1440,7 +1479,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 324, gen: 4, - isNonstandard: "Past", }, durinberry: { name: "Durin Berry", @@ -1490,7 +1528,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Ground", num: 305, gen: 4, - isNonstandard: "Unobtainable", }, eeviumz: { name: "Eevium Z", @@ -1565,7 +1602,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 322, gen: 4, - isNonstandard: "Past", }, electricgem: { name: "Electric Gem", @@ -1647,12 +1683,11 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, pokemon.baseMaxhp / 4)) return false; }, onEat() { }, num: 208, gen: 3, - isNonstandard: "Unobtainable", }, eviolite: { name: "Eviolite", @@ -1701,6 +1736,21 @@ export const Items: {[itemid: string]: ItemData} = { gen: 7, isNonstandard: "Past", }, + fairyfeather: { + name: "Fairy Feather", + spritenum: 754, + fling: { + basePower: 10, + }, + onBasePowerPriority: 15, + onBasePower(basePower, user, target, move) { + if (move && move.type === 'Fairy') { + return this.chainModify([4915, 4096]); + } + }, + num: 2401, + gen: 9, + }, fairygem: { name: "Fairy Gem", spritenum: 611, @@ -1795,7 +1845,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, pokemon.baseMaxhp / 3)) return false; }, onEat(pokemon) { this.heal(pokemon.baseMaxhp / 3); @@ -1876,7 +1926,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Fighting", num: 303, gen: 4, - isNonstandard: "Unobtainable", }, flameorb: { name: "Flame Orb", @@ -1912,7 +1961,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Fire", num: 298, gen: 4, - isNonstandard: "Unobtainable", }, floatstone: { name: "Float Stone", @@ -1934,7 +1982,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1113, gen: 8, - isNonstandard: "Past", }, flyinggem: { name: "Flying Gem", @@ -2077,7 +2124,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1582, gen: 8, - isNonstandard: "Unobtainable", }, galaricawreath: { name: "Galarica Wreath", @@ -2087,7 +2133,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1592, gen: 8, - isNonstandard: "Unobtainable", }, galladite: { name: "Galladite", @@ -2325,7 +2370,7 @@ export const Items: {[itemid: string]: ItemData} = { }, griseouscore: { name: "Griseous Core", - spritenum: 180, // TODO + spritenum: 743, onBasePowerPriority: 15, onBasePower(basePower, user, target, move) { if (user.baseSpecies.num === 487 && (move.type === 'Ghost' || move.type === 'Dragon')) { @@ -2342,7 +2387,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Giratina-Origin"], num: 1779, gen: 8, - isNonstandard: "Unobtainable", }, griseousorb: { name: "Griseous Orb", @@ -2359,7 +2403,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Giratina"], num: 112, gen: 4, - isNonstandard: "Unobtainable", }, groundgem: { name: "Ground Gem", @@ -2463,6 +2506,27 @@ export const Items: {[itemid: string]: ItemData} = { gen: 4, isPokeball: true, }, + hearthflamemask: { + name: "Hearthflame Mask", + spritenum: 760, + fling: { + basePower: 60, + }, + onBasePowerPriority: 15, + onBasePower(basePower, user, target, move) { + if (user.baseSpecies.name.startsWith('Ogerpon-Hearthflame')) { + return this.chainModify([4915, 4096]); + } + }, + onTakeItem(item, source) { + if (source.baseSpecies.baseSpecies === 'Ogerpon') return false; + return true; + }, + forcedForme: "Ogerpon-Hearthflame", + itemUser: ["Ogerpon-Hearthflame"], + num: 2408, + gen: 9, + }, heatrock: { name: "Heat Rock", spritenum: 193, @@ -2554,7 +2618,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, pokemon.baseMaxhp / 3)) return false; }, onEat(pokemon) { this.heal(pokemon.baseMaxhp / 3); @@ -2623,7 +2687,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Ice", num: 302, gen: 4, - isNonstandard: "Unobtainable", }, iciumz: { name: "Icium Z", @@ -2676,7 +2739,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Bug", num: 308, gen: 4, - isNonstandard: "Unobtainable", }, ironball: { name: "Iron Ball", @@ -2715,7 +2777,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Steel", num: 313, gen: 4, - isNonstandard: "Unobtainable", }, jabocaberry: { name: "Jaboca Berry", @@ -2735,7 +2796,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 211, gen: 4, - isNonstandard: "Unobtainable", }, jawfossil: { name: "Jaw Fossil", @@ -2814,7 +2874,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 687, gen: 6, - isNonstandard: "Unobtainable", }, kelpsyberry: { name: "Kelpsy Berry", @@ -3093,7 +3152,10 @@ export const Items: {[itemid: string]: ItemData} = { }, loadeddice: { name: "Loaded Dice", - spritenum: 0, // TODO + spritenum: 751, + fling: { + basePower: 30, + }, // partially implemented in sim/battle-actions.ts:BattleActions#hitStepMoveHitLoop onModifyMove(move) { if (move.multiaccuracy) { @@ -3132,7 +3194,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1110, gen: 8, - isNonstandard: "Past", }, lucarionite: { name: "Lucarionite", @@ -3225,7 +3286,7 @@ export const Items: {[itemid: string]: ItemData} = { }, lustrousglobe: { name: "Lustrous Globe", - spritenum: 265, // TODO + spritenum: 742, onBasePowerPriority: 15, onBasePower(basePower, user, target, move) { if (user.baseSpecies.num === 484 && (move.type === 'Water' || move.type === 'Dragon')) { @@ -3242,7 +3303,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Palkia-Origin"], num: 1778, gen: 8, - isNonstandard: "Unobtainable", }, lustrousorb: { name: "Lustrous Orb", @@ -3259,7 +3319,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Palkia"], num: 136, gen: 4, - isNonstandard: "Unobtainable", }, luxuryball: { name: "Luxury Ball", @@ -3301,7 +3360,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 323, gen: 4, - isNonstandard: "Past", }, magnet: { name: "Magnet", @@ -3333,7 +3391,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, pokemon.baseMaxhp / 3)) return false; }, onEat(pokemon) { this.heal(pokemon.baseMaxhp / 3); @@ -3370,7 +3428,10 @@ export const Items: {[itemid: string]: ItemData} = { }, maliciousarmor: { name: "Malicious Armor", - spritenum: 0, // TODO + spritenum: 744, + fling: { + basePower: 30, + }, num: 1861, gen: 9, }, @@ -3406,7 +3467,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 688, gen: 6, - isNonstandard: "Unobtainable", }, marshadiumz: { name: "Marshadium Z", @@ -3426,6 +3486,15 @@ export const Items: {[itemid: string]: ItemData} = { gen: 1, isPokeball: true, }, + masterpieceteacup: { + name: "Masterpiece Teacup", + spritenum: 757, + fling: { + basePower: 80, + }, + num: 2404, + gen: 9, + }, mawilite: { name: "Mawilite", spritenum: 598, @@ -3459,7 +3528,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Grass", num: 301, gen: 4, - isNonstandard: "Unobtainable", }, medichamite: { name: "Medichamite", @@ -3527,6 +3595,12 @@ export const Items: {[itemid: string]: ItemData} = { gen: 6, isNonstandard: "Past", }, + metalalloy: { + name: "Metal Alloy", + spritenum: 761, + num: 2482, + gen: 9, + }, metalcoat: { name: "Metal Coat", spritenum: 286, @@ -3579,6 +3653,7 @@ export const Items: {[itemid: string]: ItemData} = { pokemon.removeVolatile('metronome'); return; } + if (move.callsMove) return; if (this.effectState.lastMove === move.id && pokemon.moveLastTurnResult) { this.effectState.numConsecutive++; } else if (pokemon.volatiles['twoturnmove']) { @@ -3672,7 +3747,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 209, gen: 4, - isNonstandard: "Unobtainable", }, mimikiumz: { name: "Mimikium Z", @@ -3704,7 +3778,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Psychic", num: 307, gen: 4, - isNonstandard: "Unobtainable", }, miracleseed: { name: "Miracle Seed", @@ -3723,10 +3796,10 @@ export const Items: {[itemid: string]: ItemData} = { }, mirrorherb: { name: "Mirror Herb", + spritenum: 748, fling: { - basePower: 10, + basePower: 30, }, - spritenum: 0, // TODO onFoeAfterBoost(boost, target, source, effect) { if (effect?.name === 'Opportunist' || effect?.name === 'Mirror Herb') return; const boostPlus: SparseBoostsTable = {}; @@ -3956,7 +4029,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, 10)) return false; }, onEat(pokemon) { this.heal(10); @@ -4184,7 +4257,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Fairy", num: 644, gen: 6, - isNonstandard: "Unobtainable", }, plumefossil: { name: "Plume Fossil", @@ -4394,7 +4466,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 537, gen: 5, - isNonstandard: "Past", }, protectivepads: { name: "Protective Pads", @@ -4414,7 +4485,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 321, gen: 4, - isNonstandard: "Past", }, psychicgem: { name: "Psychic Gem", @@ -4482,7 +4552,10 @@ export const Items: {[itemid: string]: ItemData} = { }, punchingglove: { name: "Punching Glove", - spritenum: 0, // TODO + spritenum: 749, + fling: { + basePower: 30, + }, onBasePowerPriority: 23, onBasePower(basePower, attacker, defender, move) { if (move.flags['punch']) { @@ -4518,7 +4591,8 @@ export const Items: {[itemid: string]: ItemData} = { }, quickclaw: { onFractionalPriorityPriority: -2, - onFractionalPriority(priority, pokemon) { + onFractionalPriority(priority, pokemon, target, move) { + if (move.category === "Status" && pokemon.hasAbility("myceliummight")) return; if (priority <= 0 && this.randomChance(1, 5)) { this.add('-activate', pokemon, 'item: Quick Claw'); return 0.1; @@ -4625,7 +4699,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 327, gen: 4, - isNonstandard: "Past", }, razzberry: { name: "Razz Berry", @@ -4648,7 +4721,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 325, gen: 4, - isNonstandard: "Past", }, redcard: { name: "Red Card", @@ -4707,7 +4779,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1115, gen: 8, - isNonstandard: "Past", }, rindoberry: { name: "Rindo Berry", @@ -4907,7 +4978,6 @@ export const Items: {[itemid: string]: ItemData} = { onEat() { }, num: 212, gen: 4, - isNonstandard: "Unobtainable", }, rustedshield: { name: "Rusted Shield", @@ -4921,7 +4991,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Zamazenta-Crowned"], num: 1104, gen: 8, - isNonstandard: "Unobtainable", }, rustedsword: { name: "Rusted Sword", @@ -4935,7 +5004,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Zacian-Crowned"], num: 1103, gen: 8, - isNonstandard: "Unobtainable", }, sablenite: { name: "Sablenite", @@ -4967,7 +5035,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 5, gen: 1, isPokeball: true, - isNonstandard: "Unobtainable", }, safetygoggles: { name: "Safety Goggles", @@ -5237,7 +5304,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, pokemon.baseMaxhp / 4)) return false; }, onEat(pokemon) { this.heal(pokemon.baseMaxhp / 4); @@ -5274,7 +5341,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Flying", num: 306, gen: 4, - isNonstandard: "Unobtainable", }, slowbronite: { name: "Slowbronite", @@ -5371,7 +5437,6 @@ export const Items: {[itemid: string]: ItemData} = { itemUser: ["Latios", "Latias"], num: 225, gen: 3, - isNonstandard: "Past", }, spelltag: { name: "Spell Tag", @@ -5420,7 +5485,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Water", num: 299, gen: 4, - isNonstandard: "Unobtainable", }, spookyplate: { name: "Spooky Plate", @@ -5441,7 +5505,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Ghost", num: 310, gen: 4, - isNonstandard: "Unobtainable", }, sportball: { name: "Sport Ball", @@ -5449,7 +5512,6 @@ export const Items: {[itemid: string]: ItemData} = { num: 499, gen: 2, isPokeball: true, - isNonstandard: "Unobtainable", }, starfberry: { name: "Starf Berry", @@ -5491,7 +5553,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1114, gen: 8, - isNonstandard: "Past", }, steelixite: { name: "Steelixite", @@ -5606,11 +5667,10 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Rock", num: 309, gen: 4, - isNonstandard: "Unobtainable", }, strangeball: { name: "Strange Ball", - spritenum: 303, // TODO + spritenum: 308, num: 1785, gen: 8, isPokeball: true, @@ -5624,7 +5684,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 1109, gen: 8, - isNonstandard: "Past", }, sunstone: { name: "Sun Stone", @@ -5658,6 +5717,15 @@ export const Items: {[itemid: string]: ItemData} = { num: 1116, gen: 8, }, + syrupyapple: { + name: "Syrupy Apple", + spritenum: 755, + fling: { + basePower: 30, + }, + num: 2402, + gen: 9, + }, tamatoberry: { name: "Tamato Berry", spritenum: 486, @@ -5807,7 +5875,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Poison", num: 304, gen: 4, - isNonstandard: "Unobtainable", }, tr00: { name: "TR00", @@ -6856,6 +6923,15 @@ export const Items: {[itemid: string]: ItemData} = { gen: 7, isNonstandard: "Past", }, + unremarkableteacup: { + name: "Unremarkable Teacup", + spritenum: 756, + fling: { + basePower: 80, + }, + num: 2403, + gen: 9, + }, upgrade: { name: "Up-Grade", spritenum: 523, @@ -6864,7 +6940,6 @@ export const Items: {[itemid: string]: ItemData} = { }, num: 252, gen: 2, - isNonstandard: "Past", }, utilityumbrella: { name: "Utility Umbrella", @@ -7030,6 +7105,27 @@ export const Items: {[itemid: string]: ItemData} = { num: 639, gen: 6, }, + wellspringmask: { + name: "Wellspring Mask", + spritenum: 759, + fling: { + basePower: 60, + }, + onBasePowerPriority: 15, + onBasePower(basePower, user, target, move) { + if (user.baseSpecies.name.startsWith('Ogerpon-Wellspring')) { + return this.chainModify([4915, 4096]); + } + }, + onTakeItem(item, source) { + if (source.baseSpecies.baseSpecies === 'Ogerpon') return false; + return true; + }, + forcedForme: "Ogerpon-Wellspring", + itemUser: ["Ogerpon-Wellspring"], + num: 2407, + gen: 9, + }, wepearberry: { name: "Wepear Berry", spritenum: 533, @@ -7122,7 +7218,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, pokemon.baseMaxhp / 3)) return false; }, onEat(pokemon) { this.heal(pokemon.baseMaxhp / 3); @@ -7191,7 +7287,6 @@ export const Items: {[itemid: string]: ItemData} = { forcedForme: "Arceus-Electric", num: 300, gen: 4, - isNonstandard: "Unobtainable", }, zoomlens: { name: "Zoom Lens", @@ -7242,7 +7337,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, 10)) return false; }, onEat(pokemon) { this.heal(10); @@ -7308,7 +7403,7 @@ export const Items: {[itemid: string]: ItemData} = { } }, onTryEatItem(item, pokemon) { - if (!this.runEvent('TryHeal', pokemon)) return false; + if (!this.runEvent('TryHeal', pokemon, null, this.effect, 30)) return false; }, onEat(pokemon) { this.heal(30); diff --git a/data/learnsets.ts b/data/learnsets.ts index 355173be4109..a7686234a2a1 100644 --- a/data/learnsets.ts +++ b/data/learnsets.ts @@ -1,6 +1,4 @@ -/* eslint-disable max-len */ - -export const Learnsets: {[speciesid: string]: LearnsetData} = { +export const Learnsets: import('../sim/dex-species').LearnsetDataTable = { missingno: { learnset: { blizzard: ["3L1"], @@ -33,92 +31,95 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, bulbasaur: { learnset: { + acidspray: ["9M"], amnesia: ["8M", "7E", "6E", "5E", "4E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], bind: ["7T", "6T", "5T"], block: ["5S3"], - bodyslam: ["8M", "7V", "3T"], - bulletseed: ["8M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], celebrate: ["6S5"], - charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + charm: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], confide: ["7M", "6M"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["7V", "3T"], - doubleedge: ["8L33", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3T"], + doubleedge: ["9M", "8L33", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M", "5S3"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "5S3"], flash: ["7V", "6M", "5M", "4M", "3M"], frenzyplant: ["5S3"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - gigadrain: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grasspledge: ["8T", "7T", "6T", "5T"], + gigadrain: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "8T", "7T", "6T", "5T"], grasswhistle: ["7E", "6E", "5E", "4E", "3E"], - grassyglide: ["8T"], - grassyterrain: ["8M", "7E", "6E"], - growl: ["8L1", "8V", "7L3", "7V", "6L3", "6S4", "6S5", "5L3", "5S2", "4L3", "3L4", "3S1"], - growth: ["8L6", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L32", "3S0"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7E", "6E"], + growl: ["9L1", "8L1", "8V", "7L3", "7V", "6L3", "6S4", "6S5", "5L3", "5S2", "4L3", "3L4", "3S1"], + growth: ["9L6", "8L6", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L32", "3S0"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - ingrain: ["8E", "7E", "6E", "5E", "4E"], - knockoff: ["7T", "6T", "5T", "4T"], - leafstorm: ["8M", "7E", "6E", "5E", "4E"], - leechseed: ["8L9", "8V", "7L7", "7V", "6L7", "6S4", "5L7", "5S2", "4L7", "3L7", "3S1"], + ingrain: ["9E", "8E", "7E", "6E", "5E", "4E"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leafstorm: ["9M", "8M", "7E", "6E", "5E", "4E"], + leechseed: ["9L9", "8L9", "8V", "7L7", "7V", "6L7", "6S4", "5L7", "5S2", "4L7", "3L7", "3S1"], lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], - magicalleaf: ["8M", "7E", "6E", "5E", "4E", "3E"], + magicalleaf: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], outrage: ["8V"], - petaldance: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "6S4", "5L13", "4L13", "3L15"], - powerwhip: ["8M", "7E", "6E", "5E", "4E"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + petaldance: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + poisonpowder: ["9L15", "8L15", "8V", "7L13", "7V", "6L13", "6S4", "5L13", "4L13", "3L15"], + powerwhip: ["9L33", "8M", "7E", "6E", "5E", "4E"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - razorleaf: ["8L12", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L20"], + razorleaf: ["9L12", "8L12", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L20"], razorwind: ["7V"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + seedbomb: ["9M", "9L18", "8M", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], skullbash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeppowder: ["9L15", "8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludge: ["7E", "6E", "5E", "4E"], - sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L46", "3S0"], + solarbeam: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L46", "3S0"], strength: ["6M", "5M", "4M", "3M"], stringshot: ["4T"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["8L24", "7L21", "7V", "6L21", "5L21", "4L21", "3L25", "3S0"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], - synthesis: ["8L27", "7T", "7L33", "7V", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L39", "3S0"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "6S5", "5L1", "5S2", "4L1", "3L1", "3S1"], - takedown: ["8L21", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], - toxic: ["8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["8M", "7M", "6M", "5M"], - vinewhip: ["8L3", "8V", "7L7", "7V", "6L9", "6S4", "5L9", "5S2", "4L9", "3L10", "3S1"], - weatherball: ["8M", "5S3"], + sweetscent: ["9L24", "8L24", "7L21", "7V", "6L21", "5L21", "4L21", "3L25", "3S0"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["9L27", "8L27", "7T", "7L33", "7V", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L39", "3S0"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S5", "5L1", "5S2", "4L1", "3L1", "3S1"], + takedown: ["9M", "9L21", "8L21", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + terablast: ["9M"], + toxic: ["9M", "9E", "8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + vinewhip: ["9L3", "8L3", "8V", "7L7", "7V", "6L9", "6S4", "5L9", "5S2", "4L9", "3L10", "3S1"], + weatherball: ["9M", "8M", "5S3"], workup: ["8M", "7M"], - worryseed: ["8L30", "7T", "7L31", "6T", "6L31", "5T", "5L31", "4T", "4L31"], + worryseed: ["9L30", "8L30", "7T", "7L31", "6T", "6L31", "5T", "5L31", "4T", "4L31"], }, eventData: [ {generation: 3, level: 70, moves: ["sweetscent", "growth", "solarbeam", "synthesis"], pokeball: "pokeball"}, @@ -134,177 +135,186 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ivysaur: { learnset: { + acidspray: ["9M"], amnesia: ["8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], bind: ["7T", "6T", "5T"], - bodyslam: ["8M", "7V", "3T"], - bulletseed: ["8M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], - charm: ["8M"], + charm: ["9M", "8M"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["7V", "3T"], - doubleedge: ["8L45", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleedge: ["9M", "8L45", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grasspledge: ["8T", "7T", "6T", "5T"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - growth: ["8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L38"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "8T", "7T", "6T", "5T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + growth: ["9L1", "8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L38"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - leafstorm: ["8M"], - leechseed: ["8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leafstorm: ["9M", "8M"], + leechseed: ["9L9", "8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], lightscreen: ["8M", "8V", "7M", "6M", "5M"], - magicalleaf: ["8M"], + magicalleaf: ["9M", "8M"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], outrage: ["8V"], - poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], - powerwhip: ["8M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonpowder: ["9L15", "8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + powerwhip: ["9L45", "8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - razorleaf: ["8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], + razorleaf: ["9L12", "8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "8L20", "7T", "6T", "5T", "4T"], - sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + seedbomb: ["9M", "9L20", "8M", "8L20", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L15", "8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8L50", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L56"], + solarbeam: ["9M", "9L50", "8M", "8L50", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L56"], strength: ["6M", "5M", "4M", "3M"], stringshot: ["4T"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], - synthesis: ["8L35", "7T", "7L39", "7V", "6T", "6L39", "5T", "5L39", "4T", "4L39", "3L47"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["8M", "7M", "6M", "5M"], - vinewhip: ["8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L10"], - weatherball: ["8M"], + sweetscent: ["9L30", "8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["9L35", "8L35", "7T", "7L39", "7V", "6T", "6L39", "5T", "5L39", "4T", "4L39", "3L47"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L25", "8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + terablast: ["9M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L10"], + weatherball: ["9M", "8M"], workup: ["8M", "7M"], - worryseed: ["8L40", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L36"], + worryseed: ["9L40", "8L40", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L36"], }, }, venusaur: { learnset: { - amnesia: ["8M", "8V"], + acidspray: ["9M"], + amnesia: ["9M", "8M", "8V"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], bind: ["7T", "6T", "5T"], block: ["7T", "6T", "5T", "4T"], - bodyslam: ["8M", "7V", "3T"], - bulldoze: ["8M", "7M", "6M", "5M"], - bulletseed: ["8M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], - charm: ["8M"], + charm: ["9M", "8M"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["7V", "3T"], - doubleedge: ["8L51", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleedge: ["9M", "8L51", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["8M"], - earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M"], flash: ["7V", "6M", "5M", "4M", "3M"], - frenzyplant: ["8T", "7T", "6T", "6S0", "5T", "4T", "3T"], + frenzyplant: ["9M", "8T", "7T", "6T", "6S0", "5T", "4T", "3T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grasspledge: ["8T", "7T", "6T", "6S0", "5T"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - growth: ["8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L41"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "8T", "7T", "6T", "6S0", "5T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + growth: ["9L1", "8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L41"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - leafstorm: ["8M"], - leechseed: ["8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leafstorm: ["9M", "8M"], + leechseed: ["9L9", "8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], lightscreen: ["8M", "8V", "7M", "6M", "5M"], - magicalleaf: ["8M"], + magicalleaf: ["9M", "8M"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], - petalblizzard: ["8L0", "7L50", "6L50"], - petaldance: ["8L1", "8V", "7L1", "6L32", "5L32", "4L32"], - poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], - powerwhip: ["8M", "8V"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + petalblizzard: ["9M", "9L0", "8L0", "7L50", "6L50"], + petaldance: ["9L1", "8L1", "8V", "7L1", "6L32", "5L32", "4L32"], + poisonjab: ["9M"], + poisonpowder: ["9L15", "8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + powerwhip: ["9L51", "8M", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - razorleaf: ["8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], + razorleaf: ["9L12", "8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "8L20", "7T", "6T", "5T", "4T"], - sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + seedbomb: ["9M", "9L20", "8M", "8L20", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L15", "8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8L58", "8V", "7M", "7L53", "7V", "6M", "6L53", "6S0", "5M", "5L53", "4M", "4L53", "3M", "3L65"], - stompingtantrum: ["8M", "7T"], + solarbeam: ["9M", "9L58", "8M", "8L58", "8V", "7M", "7L53", "7V", "6M", "6L53", "6S0", "5M", "5L53", "4M", "4L53", "3M", "3L65"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["6M", "5M", "4M", "3M"], stringshot: ["4T"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], - synthesis: ["8L37", "7T", "7L45", "7V", "6T", "6L45", "6S0", "5T", "5L45", "4T", "4L45", "3L53"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + sweetscent: ["9L30", "8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["9L37", "8L37", "7T", "7L45", "7V", "6T", "6L45", "6S0", "5T", "5L45", "4T", "4L45", "3L53"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L25", "8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + terablast: ["9M"], terrainpulse: ["8T"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["8M", "7M", "6M", "5M"], - vinewhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - weatherball: ["8M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M", "8M"], workup: ["8M", "7M"], - worryseed: ["8L44", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], + worryseed: ["9L44", "8L44", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], }, eventData: [ {generation: 6, level: 100, isHidden: true, moves: ["solarbeam", "frenzyplant", "synthesis", "grasspledge"], pokeball: "cherishball"}, @@ -324,6 +334,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blastburn: ["5S6"], block: ["5S6"], bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["9M"], brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], celebrate: ["6S8"], @@ -360,7 +371,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flareblitz: ["9M", "9L40", "8M", "8L40", "7E", "6E", "5E", "4E"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M"], - focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], furyswipes: ["8V"], @@ -390,6 +401,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "4S1", "4S2", "4S3", "4S5", "3M"], + roar: ["9M"], rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -412,10 +424,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "7V", "4T", "3T"], swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], takedown: ["9M", "7V"], + temperflare: ["9M"], terablast: ["9M"], thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], wingattack: ["8E"], workup: ["8M", "7M"], @@ -443,6 +456,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { beatup: ["8M"], bide: ["7V"], bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["9M"], brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], confide: ["7M", "6M"], @@ -476,7 +490,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "9L30", "8M", "8L30", "8V", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L39", "3M", "3L34"], flareblitz: ["9M", "9L54", "8M", "8L54"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], furyswipes: ["8V"], @@ -504,6 +519,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -526,42 +542,45 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "7V", "4T", "3T"], swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], takedown: ["9M", "7V"], + temperflare: ["9M"], terablast: ["9M"], thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], workup: ["8M", "7M"], }, }, charizard: { learnset: { - acrobatics: ["9M", "8M"], + acrobatics: ["9M", "9S11", "8M"], aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], aircutter: ["9M", "4T"], airslash: ["9M", "9L0", "8M", "8L0", "8V", "7L1", "6L1", "6S1", "6S2", "5L1", "4L1"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], beatup: ["8M"], + bellydrum: ["9S11"], bide: ["7V"], blastburn: ["9M", "8T", "7T", "6T", "6S4", "5T", "4T", "3T"], blazekick: ["8M"], bodyslam: ["9M", "8M", "7V", "3T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["8V", "7V", "3T"], - crunch: ["9M", "8M", "8V"], + crunch: ["9M", "9S11", "8M", "8V"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["7V", "3T"], defog: ["7T", "4M"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["9L12", "8L12", "7V"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "7S6", "7S7", "6M", "6L1", "6S2", "5M", "5L1", "4M", "4L1", "3M"], dragondance: ["9M", "8M", "7S9"], dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], @@ -584,18 +603,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flameburst: ["7L32", "6L32", "6S1", "6S5", "5L32"], flamecharge: ["9M", "7M", "6M", "5M"], flamethrower: ["9M", "9L30", "8M", "8L30", "8V", "8S10", "7M", "7L47", "7V", "7S8", "6M", "6L47", "6S5", "5M", "5L47", "4M", "4L42", "3M", "3L34"], - flareblitz: ["9M", "9L62", "8M", "8L62", "8V", "7L1", "7S6", "7S7", "7S9", "6L1", "6S4", "5L77", "4L66"], + flareblitz: ["9M", "9L62", "9S11", "8M", "8L62", "8V", "7L1", "7S6", "7S7", "7S9", "6L1", "6S4", "5L77", "4L66"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], fly: ["9M", "8M", "8V", "7M", "7V", "7S6", "7S7", "7S9", "6M", "5M", "4M", "3M"], focusblast: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], furyswipes: ["8V"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["8V", "7V", "4T"], - heatcrash: ["8M"], + heatcrash: ["9M", "8M"], heatwave: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L71", "4T", "4L59", "3L1"], helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -623,7 +642,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -632,7 +651,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sandstorm: ["9M", "7V"], scaleshot: ["8T"], scaryface: ["9M", "9L39", "8M", "8L39", "7L21", "7V", "6L21", "6S4", "5L21", "4L21", "3L27"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "8S10", "7V", "7S8", "3T"], @@ -654,11 +673,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], tailwind: ["7T", "6T", "5T", "4T"], takedown: ["9M", "7V"], + temperflare: ["9M"], terablast: ["9M"], thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], twister: ["4T"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], wingattack: ["8V", "7L1", "7V", "6L36", "5L36", "4L36", "3L36", "3S0"], workup: ["8M", "7M"], @@ -675,80 +695,85 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 40, gender: "M", nature: "Adamant", moves: ["flamethrower", "dragonrage", "slash", "seismictoss"], pokeball: "pokeball"}, {generation: 7, level: 50, moves: ["dragondance", "flareblitz", "fly", "earthquake"], pokeball: "cherishball"}, {generation: 8, level: 50, gender: "M", nature: "Adamant", moves: ["flamethrower", "dragontail", "slash", "seismictoss"], pokeball: "pokeball"}, + {generation: 9, level: 50, nature: "Adamant", ivs: {hp: 20, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["crunch", "flareblitz", "acrobatics", "bellydrum"], pokeball: "pokeball"}, ], }, squirtle: { learnset: { - aquajet: ["8E", "7E", "6E", "5E", "4E"], - aquaring: ["8E", "7E", "6E", "5E", "4E"], - aquatail: ["8L24", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28"], + aquajet: ["9E", "8E", "7E", "6E", "5E", "4E"], + aquaring: ["9E", "8E", "7E", "6E", "5E", "4E"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], aurasphere: ["8M", "7E", "6E"], bide: ["7V"], - bite: ["8L12", "8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L18"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9L12", "8L12", "8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L18"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], block: ["5S2"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], brine: ["8M", "7E", "6E", "5E", "4M"], bubble: ["8V", "7L13", "7V", "6L13", "6S3", "5L7", "5S1", "4L7", "3L7", "3S0"], bubblebeam: ["8V", "7V"], captivate: ["4M"], celebrate: ["6S4"], + chillingwater: ["9M"], confide: ["7M", "6M"], confusion: ["7V"], counter: ["7V", "3T"], curse: ["7V"], defensecurl: ["7V", "3T"], - dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonpulse: ["8M", "8V", "7T", "7E", "6T", "6E"], dynamicpunch: ["7V", "3T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8E", "7E", "6E", "5E", "4E"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], falseswipe: ["8M", "5S2"], - flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - fling: ["8M", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], - focuspunch: ["7T", "6T", "4M", "3M"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], followme: ["5S2"], foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["9M", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hydrocannon: ["5S2"], - hydropump: ["8M", "8L33", "8V", "7L40", "7V", "6L40", "5L40", "4L37", "3L47"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "8L30", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4T", "4L34"], + hydropump: ["9M", "9L33", "8M", "8L33", "8V", "7L40", "7V", "6L40", "5L40", "4L37", "3L47"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "9L30", "8M", "8L30", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4T", "4L34"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - lifedew: ["8E"], + lifedew: ["9E", "8E"], + liquidation: ["9M"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], mimic: ["7V", "3T"], - mirrorcoat: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - mist: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - muddywater: ["8M", "7E", "6E", "5E", "4E"], + mirrorcoat: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mist: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + muddywater: ["9M", "8M", "7E", "6E", "5E", "4E"], + mudshot: ["9M"], mudslap: ["7V", "4T", "3T"], mudsport: ["7E", "6E", "5E", "4E", "3E"], naturalgift: ["4M"], outrage: ["8V"], poweruppunch: ["6M"], - protect: ["8M", "8L18", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L28"], + protect: ["9M", "9L18", "8M", "8L18", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L28"], rage: ["7V"], - raindance: ["8M", "8L21", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L34", "3M", "3L33"], - rapidspin: ["8L9", "7L19", "7V", "6L19", "5L19", "4L19", "3L23"], + raindance: ["9M", "9L21", "8M", "8L21", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L34", "3M", "3L33"], + rapidspin: ["9L9", "8L9", "7L19", "7V", "6L19", "5L19", "4L19", "3L23"], reflect: ["8V", "7V"], refresh: ["7E", "6E", "5E", "4E", "3E"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockslide: ["8V"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], @@ -758,30 +783,32 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["8M", "8V", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shellsmash: ["8L27"], + shellsmash: ["9L27", "8L27"], skullbash: ["8L36", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L40"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "6S4", "5L1", "5S1", "4L1", "3L1", "3S0"], - tailwhip: ["8L1", "8V", "7L4", "7V", "6L4", "6S3", "6S4", "5L4", "5S1", "4L4", "3L4", "3S0"], - takedown: ["7V"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S4", "5L1", "5S1", "4L1", "3L1", "3S0"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "6S3", "6S4", "5L4", "5S1", "4L4", "3L4", "3S0"], + takedown: ["9M", "7V"], + terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L3", "8V", "7L7", "7V", "6L7", "6S3", "5L13", "4L13", "3L13"], - waterpledge: ["8T", "7T", "6T", "5T"], - waterpulse: ["8L15", "7T", "7L25", "6T", "6L25", "5L25", "4M", "4L25", "3M"], - waterspout: ["8E", "7E", "6E", "5E", "4E"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], - withdraw: ["8L6", "8V", "7L10", "7V", "6L10", "6S3", "5L10", "5S1", "4L10", "3L10", "3S0"], + watergun: ["9L3", "8L3", "8V", "7L7", "7V", "6L7", "6S3", "5L13", "4L13", "3L13"], + waterpledge: ["9M", "8T", "7T", "6T", "5T"], + waterpulse: ["9M", "9L15", "8L15", "7T", "7L25", "6T", "6L25", "5L25", "4M", "4L25", "3M"], + waterspout: ["9E", "8E", "7E", "6E", "5E", "4E"], + wavecrash: ["9L36"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], + withdraw: ["9L6", "8L6", "8V", "7L10", "7V", "6L10", "6S3", "5L10", "5S1", "4L10", "3L10", "3S0"], workup: ["8M", "7M"], - yawn: ["8E", "7E", "6E", "5E", "4E", "3E"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + yawn: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["tackle", "tailwhip", "bubble", "withdraw"], pokeball: "pokeball"}, @@ -796,60 +823,65 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, wartortle: { learnset: { - aquatail: ["8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], + aquatail: ["9L30", "8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], aurasphere: ["8M"], bide: ["7V"], - bite: ["8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L12", "8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], brine: ["8M", "4M"], bubble: ["8V", "7L13", "7V", "6L13", "5L1", "4L1", "3L1"], bubblebeam: ["8V", "7V"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["7V", "3T"], curse: ["7V"], defensecurl: ["7V", "3T"], - dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonpulse: ["8M", "8V", "7T", "6T"], dynamicpunch: ["7V", "3T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["8M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L45", "8V", "7L49", "7V", "6L48", "5L48", "4L44", "3L53"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "8L40", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40"], + hydropump: ["9M", "9L45", "8M", "8L45", "8V", "7L49", "7V", "6L48", "5L48", "4L44", "3L53"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "9L40", "8M", "8L40", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + liquidation: ["9M"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], mimic: ["7V", "3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], + mudshot: ["9M"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], outrage: ["8V"], poweruppunch: ["6M"], - protect: ["8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31"], + protect: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31"], rage: ["7V"], - raindance: ["8M", "8L25", "7M", "7L45", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L40", "3M", "3L37"], - rapidspin: ["8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], + raindance: ["9M", "9L25", "8M", "8L25", "7M", "7L45", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L40", "3M", "3L37"], + rapidspin: ["9L9", "8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockslide: ["8V"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], @@ -859,138 +891,147 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["8M", "8V", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shellsmash: ["8L35"], + shellsmash: ["9L35", "8L35"], skullbash: ["8L50", "8V", "7L37", "7V", "6L36", "5L36", "4L36", "3L45"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["7V"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], - waterpledge: ["8T", "7T", "6T", "5T"], - waterpulse: ["8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], - withdraw: ["8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L10"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpledge: ["9M", "8T", "7T", "6T", "5T"], + waterpulse: ["9M", "9L15", "8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], + wavecrash: ["9L50"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], + withdraw: ["9L1", "8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L10"], workup: ["8M", "7M"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, }, blastoise: { learnset: { aquajet: ["8V"], - aquatail: ["8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], + aquatail: ["9L30", "8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - aurasphere: ["8M"], - avalanche: ["8M", "4M"], + aurasphere: ["9M", "8M"], + avalanche: ["9M", "8M", "4M"], bide: ["7V"], - bite: ["8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodypress: ["8M"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L12", "8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], brine: ["8M", "4M"], bubble: ["8V", "7L13", "7V", "6L13", "5L1", "4L1", "3L1"], bubblebeam: ["8V", "7V"], bulldoze: ["8M", "7M", "6M", "5M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["7V", "3T"], - crunch: ["8M"], + crunch: ["9M", "8M"], curse: ["7V"], - darkpulse: ["8M", "8V", "7M", "6M"], + darkpulse: ["9M", "8M", "8V", "7M", "6M"], defensecurl: ["7V", "3T"], - dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonpulse: ["8M", "8V", "7T", "6T"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T"], dragontail: ["8V", "7M", "6M", "5M"], dynamicpunch: ["7V", "3T"], - earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fakeout: ["8V"], falseswipe: ["8M"], fissure: ["7V"], - flashcannon: ["8M", "8L0", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - fling: ["8M", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flashcannon: ["9M", "9L0", "8M", "8L0", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydrocannon: ["8T", "7T", "6T", "6S1", "5T", "4T", "3T"], - hydropump: ["8M", "8L49", "8V", "7L60", "7V", "6L60", "6S1", "5L60", "4L53", "3L68", "3S0"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "8L42", "7T", "7L47", "6T", "6L46", "6S1", "5T", "5L46", "4T", "4L46"], + hydrocannon: ["9M", "8T", "7T", "6T", "6S1", "5T", "4T", "3T"], + hydropump: ["9M", "9L49", "8M", "8L49", "8V", "7L60", "7V", "6L60", "6S1", "5L60", "4L53", "3L68", "3S0"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "9L42", "8M", "8L42", "7T", "7L47", "6T", "6L46", "6S1", "5T", "5L46", "4T", "4L46"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - liquidation: ["8M", "7T"], + liquidation: ["9M", "8M", "7T"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], mimic: ["7V", "3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], + mudshot: ["9M"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], poweruppunch: ["6M"], - protect: ["8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31", "3S0"], + protect: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31", "3S0"], rage: ["7V"], - raindance: ["8M", "8L25", "7M", "7L54", "7V", "6M", "6L53", "5M", "5L53", "4M", "4L46", "3M", "3L42", "3S0"], - rapidspin: ["8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], + raindance: ["9M", "9L25", "8M", "8L25", "7M", "7L54", "7V", "6M", "6L53", "5M", "5L53", "4M", "4L46", "3M", "3L42", "3S0"], + rapidspin: ["9L9", "8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], - rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], rollout: ["7V", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shellsmash: ["8L35"], + shellsmash: ["9L35", "8L35"], signalbeam: ["7T", "6T", "5T", "4T"], skullbash: ["8L56", "8V", "7L40", "7V", "6L39", "5L39", "4L39", "3L55", "3S0"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["7V"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], terrainpulse: ["8T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], - waterpledge: ["8T", "7T", "6T", "6S1", "5T"], - waterpulse: ["8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], - withdraw: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpledge: ["9M", "8T", "7T", "6T", "6S1", "5T"], + waterpulse: ["9M", "9L15", "8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], + wavecrash: ["9L56"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], + withdraw: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], workup: ["8M", "7M"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 70, moves: ["protect", "raindance", "skullbash", "hydropump"], pokeball: "pokeball"}, @@ -2025,88 +2066,101 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ekans: { learnset: { - acid: ["8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L32"], - acidspray: ["7L28", "6L28", "5L28"], + acid: ["9L20", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L32"], + acidspray: ["9M", "9L28", "7L28", "6L28", "5L28"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], beatup: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], - belch: ["7L38", "6L38"], + belch: ["9L38", "7L38", "6L38"], bide: ["7V"], bind: ["7T", "6T", "5T"], - bite: ["8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L13", "3S0"], + bite: ["9L9", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L13", "3S0"], bodyslam: ["7V", "3T"], brutalswing: ["7M"], bulldoze: ["7M", "6M", "5M"], captivate: ["4M"], - coil: ["7L44", "6L44", "5L44"], + coil: ["9L44", "7L44", "6L44", "5L44"], confide: ["7M", "6M"], - crunch: ["7V"], + crunch: ["9M", "7V"], curse: ["7V"], - darkpulse: ["8V", "7M", "6M", "5T", "5D", "4M"], - dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8V", "7M", "6M", "5T", "5D", "4M"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], disable: ["7E", "6E", "5E", "4E"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthquake: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M"], fissure: ["7V"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gastroacid: ["7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L33"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - glare: ["8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20"], - gunkshot: ["7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L41"], - haze: ["8V", "7L41", "7V", "6L41", "5L41", "4L36", "3L44"], + gastroacid: ["9L36", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L33"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + glare: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20"], + gunkshot: ["9M", "9L49", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L41"], + haze: ["9M", "9L41", "8V", "7L41", "7V", "6L41", "5L41", "4L36", "3L44"], headbutt: ["8V", "7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], irontail: ["8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], - leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + knockoff: ["9M"], + lashout: ["9M"], + leechlife: ["9M"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], mudbomb: ["7L33", "6L33", "5L33", "4L28"], + mudshot: ["9M"], + mudslap: ["9M"], naturalgift: ["4M"], payback: ["7M", "6M", "5M", "4M"], - poisonfang: ["7E", "6E", "5E", "4E", "3E"], - poisonjab: ["8V", "7M", "6M", "5M", "4M"], - poisonsting: ["8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L8", "3S0", "3S1"], - poisontail: ["7E", "6E", "5E", "4E"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonfang: ["9E", "7E", "6E", "5E", "4E", "3E"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L4", "8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L8", "3S0", "3S1"], + poisontail: ["9M", "9E", "7E", "6E", "5E", "4E"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], rage: ["7V"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - rocktomb: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], - scaryface: ["7E", "6E", "5E", "4E"], - screech: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L25"], + scaleshot: ["9M"], + scaryface: ["9M", "9E", "7E", "6E", "5E", "4E"], + screech: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L25"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + skittersmack: ["9M"], skullbash: ["7V"], slam: ["8V", "7E", "7V", "6E", "5E", "4E", "3E"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9L33", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M", "7M", "6M", "5M"], + snarl: ["9M"], snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], - spitup: ["7L25", "6L25", "5L25", "4L25", "3L37"], - stockpile: ["7L25", "6L25", "5L25", "4L25", "3L37"], + spite: ["9M", "9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + spitup: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], + stockpile: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - suckerpunch: ["7E", "6E", "5E"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "7E", "6E", "5E"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swallow: ["7L25", "6L25", "5L25", "4L25", "3L37"], - switcheroo: ["7E", "6E", "5E", "4E"], - takedown: ["7V"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + swallow: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], + switcheroo: ["9E", "7E", "6E", "5E", "4E"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["7M", "6M", "5M"], - wrap: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + wrap: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], }, eventData: [ {generation: 3, level: 14, gender: "F", nature: "Docile", ivs: {hp: 26, atk: 28, def: 6, spa: 14, spd: 30, spe: 11}, abilities: ["shedskin"], moves: ["leer", "wrap", "poisonsting", "bite"], pokeball: "pokeball"}, @@ -2119,90 +2173,106 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, arbok: { learnset: { - acid: ["8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L38"], - acidspray: ["7L32", "6L32", "5L32"], + acid: ["9L20", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L38"], + acidspray: ["9M", "9L32", "7L32", "6L32", "5L32"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - belch: ["7L48", "6L48"], + belch: ["9L48", "7L48", "6L48"], bide: ["7V"], bind: ["7T", "6T", "5T"], - bite: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - bodyslam: ["7V", "3T"], + bite: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + bodyslam: ["9M", "7V", "3T"], + breakingswipe: ["9M"], brutalswing: ["7M"], - bulldoze: ["7M", "6M", "5M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], - coil: ["7L56", "6L56", "5L56"], + coil: ["9L56", "7L56", "6L56", "5L56"], confide: ["7M", "6M"], - crunch: ["8V", "7L1", "6L22", "5L22", "4L22"], + crunch: ["9M", "9L0", "8V", "7L1", "6L22", "5L22", "4L22"], curse: ["7V"], - darkpulse: ["8V", "7M", "6M", "5T", "4M"], - dig: ["8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "3T"], + darkpulse: ["9M", "8V", "7M", "6M", "5T", "4M"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragontail: ["8V", "7M", "6M", "5M"], - earthquake: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], - firefang: ["7L1", "6L1", "5L1", "4L1"], + dragontail: ["9M", "8V", "7M", "6M", "5M"], + earthquake: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], fissure: ["7V"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gastroacid: ["7T", "7L44", "6T", "6L44", "5T", "5L44", "4T", "4L42"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - glare: ["8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20", "3S0"], - gunkshot: ["7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L56"], - haze: ["8V", "7L51", "7V", "6L51", "5L51", "4L48", "3L56"], + gastroacid: ["9L44", "7T", "7L44", "6T", "6L44", "5T", "5L44", "4T", "4L42"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + glare: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20", "3S0"], + gunkshot: ["9M", "9L63", "7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L56"], + haze: ["9M", "9L51", "8V", "7L51", "7V", "6L51", "5L51", "4L48", "3L56"], headbutt: ["8V", "7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icefang: ["7L1", "6L1", "5L1", "4L1"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], infestation: ["7M", "6M"], irontail: ["8V", "7T", "6T", "5T", "4M", "3M"], - leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + knockoff: ["9M"], + lashout: ["9M"], + leechlife: ["9M"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], mudbomb: ["7L39", "6L39", "5L39", "4L34"], + mudshot: ["9M"], + mudslap: ["9M"], naturalgift: ["4M"], + painsplit: ["9M"], payback: ["7M", "6M", "5M", "4M"], - poisonjab: ["8V", "7M", "6M", "5M", "4M"], - poisonsting: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poisontail: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], rage: ["7V"], - raindance: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], refresh: ["3S0"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - rocktomb: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], - screech: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L28"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L28"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + skittersmack: ["9M"], skullbash: ["7V"], slam: ["8V"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], - sludgewave: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9L39", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + sludgewave: ["9M", "7M", "6M", "5M"], + snarl: ["9M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], - spitup: ["7L27", "6L27", "5L27", "4L28", "3L46"], - stockpile: ["7L27", "6L27", "5L27", "4L28", "3L46"], - stompingtantrum: ["7T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + spitup: ["9L27", "7L27", "6L27", "5L27", "4L28", "3L46"], + stockpile: ["9L27", "7L27", "6L27", "5L27", "4L28", "3L46"], + stompingtantrum: ["9M", "7T"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["8V"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swallow: ["7L27", "6L27", "5L27", "4L28", "3L46"], - takedown: ["7V"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["7T"], - thunderfang: ["7L1", "6L1", "5L1", "4L1"], + swallow: ["9L27", "7L27", "6L27", "5L27", "4L28", "3L46"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "7T"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["7M", "6M", "5M"], - wrap: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + wrap: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], }, eventData: [ {generation: 3, level: 33, moves: ["refresh", "sludgebomb", "glare", "bite"]}, @@ -2219,7 +2289,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bide: ["7E", "7V", "6E", "5E", "4E", "3E"], bodyslam: ["9M", "8M", "3T"], captivate: ["4M"], - charge: ["9E", "8E", "7E", "6E", "5E", "4E", "4S5", "3E"], + charge: ["9M", "9E", "9S6", "8E", "7E", "6E", "5E", "4E", "4S5", "3E"], chargebeam: ["7M", "6M", "5M", "4M"], charm: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2", "3S3"], confide: ["7M", "6M"], @@ -2235,10 +2305,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { echoedvoice: ["7M", "6M", "5M"], electricterrain: ["9M", "8M", "7E"], electroball: ["9M"], - electroweb: ["8M", "7T", "6T"], + electroweb: ["9M", "8M", "7T", "6T"], encore: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], endeavor: ["4S5"], - endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4S5", "3T"], + endure: ["9M", "9S6", "8M", "7E", "7V", "6E", "5E", "4M", "4S5", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], flail: ["9E", "8E", "7E", "6E", "5E", "4E"], @@ -2248,7 +2318,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M", "4S4"], headbutt: ["7V", "4T"], - helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9S6", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -2297,18 +2367,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], uproar: ["8M", "7T", "6T", "5T", "4T"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], - volttackle: ["9R", "8R", "7R", "6E", "5E", "4E", "4S4", "4S5", "3E"], + volttackle: ["9R", "9S6", "8R", "7R", "6E", "5E", "4E", "4S4", "4S5", "3E"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E", "3S1"], zapcannon: ["7V"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "surf"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "surf"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "wish"], pokeball: "pokeball"}, {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "teeterdance"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "followme"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "followme"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 4, level: 1, moves: ["volttackle", "thunderbolt", "grassknot", "return"], pokeball: "pokeball"}, {generation: 4, level: 30, shiny: true, gender: "M", nature: "Jolly", moves: ["charge", "volttackle", "endeavor", "endure"], pokeball: "cherishball"}, + {generation: 9, level: 30, shiny: true, gender: "M", nature: "Jolly", moves: ["charge", "volttackle", "endure", "helpinghand"], pokeball: "cherishball"}, ], }, pichuspikyeared: { @@ -2365,6 +2436,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pikachu: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "8V", "7L45", "7V", "6L37", "6S41", "5L37", "4L34", "3L33", "3S0", "3S8"], + alluringvoice: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bestow: ["7S44", "6S42"], bide: ["7V"], @@ -2372,7 +2444,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "5S26", "4M", "3M"], calmmind: ["8V"], captivate: ["4M"], - celebrate: ["8S50", "8S51", "8S52", "7S43", "7S48", "6S31", "6S41"], + celebrate: ["9S55", "8S50", "8S51", "8S52", "7S43", "7S48", "6S31", "6S41"], + charge: ["9M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], charm: ["9M", "9L1", "8M", "8L1", "6S36"], confide: ["7M", "6M"], @@ -2393,9 +2466,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "8S52", "7L13", "6L13", "6S32", "6S37", "5L18", "5S23", "5S24", "5S30"], - electroweb: ["8M", "7T", "6T"], + electroweb: ["9M", "8M", "7T", "6T"], encore: ["9M", "8M", "8S52", "6S39", "5S23"], - endeavor: ["6S39"], + endeavor: ["9M", "6S39"], endure: ["9M", "8M", "7V", "4M", "3T"], extremespeed: ["5S26"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -2405,7 +2478,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "6S40", "5M", "4M", "4S13", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], fly: ["9S53", "7S49", "6S41", "5S24", "5S27", "3S2", "3S4", "3S6"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "5S25", "5S26", "5S27", "4M", "4S13"], growl: ["9L1", "8L1", "8V", "7L5", "7V", "7S43", "7S46", "6L5", "6S31", "5L1", "4L1", "3L1", "3S1", "3S2", "3S3", "3S4", "3S5", "3S10"], @@ -2416,7 +2489,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], holdhands: ["7S44", "7S45", "6S33", "6S34", "6S35", "6S40", "6S42"], irontail: ["9L28", "9S54", "8M", "8V", "7T", "7V", "6T", "6S37", "5T", "5S24", "5S30", "4M", "4S21", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lastresort: ["4S18"], lightscreen: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L53", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L42", "4S11", "3M", "3L50", "3S0", "3S6", "3S7", "3S8"], @@ -2429,9 +2502,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nuzzle: ["9L1", "8L1", "7L29", "7S47", "6L23", "6S36", "6S38"], payday: ["8M", "8V", "7V"], - playnice: ["9L1", "8L1", "8S50", "7L7", "7S43", "7S44", "7S45", "6L7", "6S31", "6S35", "6S36", "6S38", "6S40", "6S42"], + playnice: ["9L1", "9S55", "8L1", "8S50", "7L7", "7S43", "7S44", "7S45", "6L7", "6S31", "6S35", "6S36", "6S38", "6S40", "6S42"], playrough: ["9M", "9S54", "8M"], - present: ["4S12", "4S15", "4S17", "4S18", "4S20", "4S22"], + present: ["9S55", "4S12", "4S15", "4S17", "4S18", "4S20", "4S22"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S27", "4M", "4S14", "4S16", "3M"], quickattack: ["9L1", "9S53", "8L1", "8V", "8S50", "7L10", "7V", "7S43", "7S46", "7S49", "6L10", "6S31", "6S32", "6S33", "6S34", "6S37", "5L13", "5S24", "5S25", "5S29", "5S30", "4L13", "4S11", "4S12", "4S15", "4S17", "4S18", "4S20", "4S21", "4S22", "3L11"], rage: ["7V"], @@ -2469,12 +2542,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M"], thunder: ["9M", "9L44", "9S54", "8M", "8L44", "8V", "7M", "7L58", "7V", "6M", "6L50", "6S35", "5M", "5L50", "5S25", "4M", "4L45", "4S14", "4S16", "3M", "3L41", "3S0", "3S6", "3S7", "3S8"], - thunderbolt: ["9M", "9L36", "8M", "8L36", "8V", "8S51", "7M", "7L42", "7V", "7S49", "6M", "6L29", "6S33", "6S34", "6S37", "5M", "5L29", "5S26", "5S27", "5S30", "4M", "4L26", "4S11", "4S13", "4S18", "4S21", "3M", "3L26", "3S0", "3S6", "3S7", "3S8"], + thunderbolt: ["9M", "9L36", "9S55", "8M", "8L36", "8V", "8S51", "7M", "7L42", "7V", "7S49", "6M", "6L29", "6S33", "6S34", "6S37", "5M", "5L29", "5S26", "5S27", "5S30", "4M", "4L26", "4S11", "4S13", "4S18", "4S21", "3M", "3L26", "3S0", "3S6", "3S7", "3S8"], thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], thundershock: ["9L1", "9S53", "8L1", "8V", "8S50", "7L1", "7V", "7S46", "6L1", "5L1", "5S28", "4L1", "4S12", "4S15", "4S20", "4S22", "3L1", "3S1", "3S5", "3S10"], thunderwave: ["9M", "9L4", "8M", "8L4", "8V", "7M", "7L18", "7V", "6M", "6L13", "5M", "5L10", "5S28", "4M", "4L10", "4S9", "4S17", "3T", "3L8", "3S1", "3S2", "3S3", "3S4", "3S5", "3S10"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M", "6M", "5M", "5S29"], volttackle: ["7T", "6S39", "5S25", "5S29", "4S9", "4S21"], @@ -2539,6 +2613,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 8, level: 25, isHidden: true, moves: ["sing", "encore", "celebrate", "electroball"], pokeball: "cherishball"}, {generation: 9, level: 5, moves: ["fly", "tailwhip", "thundershock", "quickattack"], pokeball: "pokeball"}, {generation: 9, level: 100, gender: "M", nature: "Quiet", perfectIVs: 6, isHidden: true, moves: ["thunder", "surf", "playrough", "irontail"], pokeball: "pokeball"}, + {generation: 9, level: 25, gender: "M", ivs: {hp: 25, atk: 25, def: 25, spa: 25, spd: 25, spe: 25}, moves: ["celebrate", "playnice", "present", "thunderbolt"], pokeball: "cherishball"}, ], encounters: [ {generation: 1, level: 3}, @@ -2641,10 +2716,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pikachuoriginal: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "7L45", "7S0"], + alluringvoice: ["9M"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "7M"], - charge: ["8E"], + charge: ["9M", "8E"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -2658,8 +2734,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "7L13"], - electroweb: ["8M", "8S1", "7T"], + electroweb: ["9M", "8M", "8S1", "7T"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["8E"], @@ -2667,14 +2744,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9L16", "8L16", "7L21"], flail: ["8E"], fling: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], grassknot: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L5"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], irontail: ["9L28", "8M", "8S1", "7T"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], magnetrise: ["7T"], @@ -2718,6 +2795,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["8E"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], volttackle: ["8S1", "7T"], @@ -2726,17 +2804,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 1, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "agility"], pokeball: "pokeball"}, - {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, ], eventOnly: true, }, pikachuhoenn: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "7L45"], + alluringvoice: ["9M"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "7M"], - charge: ["8E"], + charge: ["9M", "8E"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -2750,8 +2829,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "7L13"], - electroweb: ["8M", "8S1", "7T"], + electroweb: ["9M", "8M", "8S1", "7T"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["8E"], @@ -2759,14 +2839,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9L16", "8L16", "7L21"], flail: ["8E"], fling: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], grassknot: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L5"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], irontail: ["9L28", "8M", "8S1", "7T", "7S0"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], magnetrise: ["7T"], @@ -2810,6 +2890,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["8E"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], volttackle: ["8S1", "7T"], @@ -2818,17 +2899,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 6, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "irontail"], pokeball: "pokeball"}, - {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, ], eventOnly: true, }, pikachusinnoh: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "7L45"], + alluringvoice: ["9M"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "7M"], - charge: ["8E"], + charge: ["9M", "8E"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -2842,8 +2924,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "7L13"], - electroweb: ["8M", "8S1", "7T"], + electroweb: ["9M", "8M", "8S1", "7T"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["8E"], @@ -2851,14 +2934,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9L16", "8L16", "7L21"], flail: ["8E"], fling: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], grassknot: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L5"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], irontail: ["9L28", "8M", "8S1", "7T", "7S0"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], magnetrise: ["7T"], @@ -2902,6 +2985,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["8E"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], volttackle: ["8S1", "7T", "7S0"], @@ -2910,17 +2994,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 10, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "volttackle"], pokeball: "pokeball"}, - {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, ], eventOnly: true, }, pikachuunova: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "7L45"], + alluringvoice: ["9M"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "7M"], - charge: ["8E"], + charge: ["9M", "8E"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -2934,8 +3019,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "7L13"], - electroweb: ["8M", "8S1", "7T"], + electroweb: ["9M", "8M", "8S1", "7T"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["8E"], @@ -2943,14 +3029,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9L16", "8L16", "7L21"], flail: ["8E"], fling: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], grassknot: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L5"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], irontail: ["9L28", "8M", "8S1", "7T", "7S0"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], magnetrise: ["7T"], @@ -2994,6 +3080,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["8E"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], volttackle: ["8S1", "7T", "7S0"], @@ -3002,17 +3089,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 14, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "volttackle"], pokeball: "pokeball"}, - {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, ], eventOnly: true, }, pikachukalos: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "7L45"], + alluringvoice: ["9M"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "7M"], - charge: ["8E"], + charge: ["9M", "8E"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -3026,8 +3114,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "7L13", "7S0"], - electroweb: ["8M", "8S1", "7T"], + electroweb: ["9M", "8M", "8S1", "7T"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["8E"], @@ -3035,14 +3124,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9L16", "8L16", "7L21"], flail: ["8E"], fling: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], grassknot: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L5"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], irontail: ["9L28", "8M", "8S1", "7T", "7S0"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], magnetrise: ["7T"], @@ -3086,6 +3175,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["8E"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], volttackle: ["8S1", "7T"], @@ -3094,17 +3184,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 17, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "pokeball"}, - {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, ], eventOnly: true, }, pikachualola: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "7L45"], + alluringvoice: ["9M"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "7M"], - charge: ["8E"], + charge: ["9M", "8E"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -3118,8 +3209,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "7L13", "7S0"], - electroweb: ["8M", "8S1", "7T"], + electroweb: ["9M", "8M", "8S1", "7T"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["8E"], @@ -3127,14 +3219,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9L16", "8L16", "7L21"], flail: ["8E"], fling: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], grassknot: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L5"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], irontail: ["9L28", "8M", "8S1", "7T", "7S0"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], magnetrise: ["7T"], @@ -3178,6 +3270,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["8E"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], volttackle: ["8S1", "7T"], @@ -3186,17 +3279,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 20, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "pokeball"}, - {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, ], eventOnly: true, }, pikachupartner: { learnset: { agility: ["9M", "9L24", "8M", "8L24", "7L45"], + alluringvoice: ["9M"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "7M"], - charge: ["8E"], + charge: ["9M", "8E"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -3210,8 +3304,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L12", "8M", "8L12", "7L13"], - electroweb: ["8M", "8S1", "7T"], + electroweb: ["9M", "8M", "8S1", "7T"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["8E"], @@ -3219,14 +3314,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9L16", "8L16", "7L21"], flail: ["8E"], fling: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], grassknot: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L5"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], irontail: ["9L28", "8M", "8S1", "7T", "7S0"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], magnetrise: ["7T"], @@ -3270,6 +3365,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["8E"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], volttackle: ["8S1", "7T"], @@ -3278,7 +3374,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 21, shiny: 1, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "irontail"], pokeball: "pokeball"}, - {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, ], eventOnly: true, }, @@ -3402,6 +3498,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raichu: { learnset: { agility: ["9M", "9L1", "8M", "8L1"], + alluringvoice: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], bodyslam: ["9M", "8M", "7V", "3T"], @@ -3409,6 +3506,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brutalswing: ["8M"], calmmind: ["8V"], captivate: ["4M"], + charge: ["9M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M", "6M"], @@ -3428,16 +3526,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L1", "8M", "8L1"], - electroweb: ["8M", "7T", "6T"], + electroweb: ["9M", "8M", "7T", "6T"], encore: ["9M", "8M", "8V"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fakeout: ["8V"], + faketears: ["9M"], feint: ["9L1", "8L1"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -3447,7 +3547,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], irontail: ["9L1", "8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lightscreen: ["9M", "9L1", "8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], magnetrise: ["7T", "6T", "5T", "4T"], @@ -3502,6 +3602,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], @@ -3511,11 +3612,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raichualola: { learnset: { agility: ["9M", "9L1", "8M", "8L1"], + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M"], bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M", "8V", "7M"], calmmind: ["9M", "8M", "8V", "7M"], + charge: ["9M"], chargebeam: ["9M", "7M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M"], @@ -3528,16 +3631,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L1", "8M", "8L1"], - electroweb: ["8M", "7T"], + electroweb: ["9M", "8M", "7T"], encore: ["9M", "8M", "8V"], + endeavor: ["9M"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "8V", "7M"], fakeout: ["8V"], + faketears: ["9M"], feint: ["9L1", "8L1"], fling: ["9M", "8M", "7M"], focusblast: ["9M", "8M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], futuresight: ["8M"], gigaimpact: ["9M", "8M", "7M"], @@ -3548,7 +3653,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M"], hyperbeam: ["9M", "8M", "8V", "7M"], irontail: ["9L1", "8M", "8V", "7T"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], lightscreen: ["9M", "9L1", "8M", "8L1", "8V", "7M"], magiccoat: ["7T"], @@ -3563,6 +3668,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { playrough: ["9M", "8M"], protect: ["9M", "8M", "8V", "7M"], psychic: ["9M", "9L0", "8M", "8L0", "8V", "7M", "7L1"], + psychicnoise: ["9M"], psychicterrain: ["9M"], psyshock: ["9M", "8M", "7M"], quickattack: ["9L1", "8L1", "7L1"], @@ -3603,6 +3709,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M"], toxic: ["8V", "7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M"], voltswitch: ["9M", "8M", "7M"], wildcharge: ["9M", "8M", "7M"], @@ -3610,97 +3717,105 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, sandshrew: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "8L27"], - amnesia: ["8M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L27", "8M", "8L27"], + amnesia: ["9M", "8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "8L18", "7M", "6M", "5M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], captivate: ["4M"], chipaway: ["7E", "6E", "5E"], confide: ["7M", "6M"], - counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], covet: ["7T", "6T", "5T"], crushclaw: ["7E", "6E", "5E", "4E", "3E"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - defensecurl: ["8L1", "8V", "7L1", "7V", "6L1", "5L3", "4L3", "3T", "3L6", "3S0"], + defensecurl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L3", "3T", "3L6", "3S0"], detect: ["7V"], - dig: ["8M", "8L33", "8V", "7L30", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], - doubleedge: ["7V", "3T"], + dig: ["9M", "9L33", "8M", "8L33", "8V", "7L30", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L45", "8V", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], - endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L45", "8M", "8L45", "8V", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], + endeavor: ["9M"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], fissure: ["7V"], - flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furycutter: ["8L12", "7L11", "7V", "6L11", "5L25", "4T", "4L25", "3T"], - furyswipes: ["8L24", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L37"], - gyroball: ["8M", "8L36", "7M", "7L34", "6M", "6L34", "5M", "5L33", "4M", "4L33"], + furycutter: ["9L12", "8L12", "7L11", "7V", "6L11", "5L14", "4T", "4L25", "3T"], + furyswipes: ["9L24", "8L24", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L37"], + gyroball: ["9M", "9L36", "8M", "8L36", "7M", "7L34", "6M", "6L34", "5M", "5L33", "4M", "4L33"], headbutt: ["8V", "7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - honeclaws: ["8E", "7E", "6M", "5M"], + highhorsepower: ["9M"], + honeclaws: ["9E", "8E", "7E", "6M", "5M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - leechlife: ["8M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leechlife: ["9M", "8M"], + lowkick: ["9M"], magnitude: ["7L14", "6L14", "5L17"], - metalclaw: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + metalclaw: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], mimic: ["7V", "3T"], - mudshot: ["8M", "7E", "6E", "5E", "4E"], - mudslap: ["8E", "7V", "4T", "3T"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E"], + mudslap: ["9M", "9E", "8E", "7V", "4T", "3T"], naturalgift: ["4M"], - nightslash: ["8E", "7E", "6E", "5E", "4E"], - poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], - poisonsting: ["8L3", "8V", "7L5", "7V", "6L5", "5L9", "4L9", "3L17", "3S0"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + nightslash: ["9E", "8E", "7E", "6E", "5E", "4E"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L3", "8L3", "8V", "7L5", "7V", "6L5", "5L5", "4L9", "3L17", "3S0"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - rapidspin: ["8L15", "7L9", "7E", "7V", "6L9", "6E", "5L13", "5E", "4L13", "4E", "3E"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["9L15", "8L15", "7L9", "7E", "7V", "6L9", "6E", "5L9", "5E", "4L13", "4E", "3E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["7E", "6E", "5E", "4M"], - rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], - rollout: ["8L9", "7L7", "7V", "6L7", "5L21", "4T", "4L21", "3T"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L9", "8L9", "7L7", "7V", "6L7", "5L7", "4T", "4L21", "3T"], rototiller: ["7E", "6E"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], - sandattack: ["8L6", "8V", "7L3", "7V", "6L3", "5L7", "5D", "4L7", "3L11", "3S0"], - sandstorm: ["8M", "8L42", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L37", "4M", "4L37", "3M", "3L53"], - sandtomb: ["8M", "7L23", "6L23", "5L27", "4L27", "3L45"], - scorchingsands: ["8T"], - scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + sandattack: ["9L6", "8L6", "8V", "7L3", "7V", "6L3", "5L3", "5D", "4L7", "3L11", "3S0"], + sandstorm: ["9M", "9L42", "8M", "8L42", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L37", "4M", "4L37", "3M", "3L53"], + sandtomb: ["9M", "8M", "7L23", "6L23", "5L23", "4L27", "3L45"], + scorchingsands: ["9M", "8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], skullbash: ["7V"], - slash: ["8L30", "8V", "7L26", "7V", "6L26", "5L31", "4L31", "3L23"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + slash: ["9L30", "8L30", "8V", "7L26", "7V", "6L26", "5L26", "4L31", "3L23"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], steelroller: ["8T"], - stompingtantrum: ["8M", "7T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "5D", "4T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "5D", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L21", "8V", "7L17", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L30"], - swordsdance: ["8M", "8L39", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L38", "4M", "4E", "3T", "3E"], - takedown: ["7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M"], + swift: ["9M", "9L21", "8M", "8L21", "8V", "7L17", "7V", "6L11", "5L11", "4T", "4L15", "3T", "3L30"], + swordsdance: ["9M", "9L39", "8M", "8L39", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L38", "4M", "4E", "3T", "3E"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "8M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], workup: ["8M"], - xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + xscissor: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], }, eventData: [ {generation: 3, level: 12, gender: "M", nature: "Docile", ivs: {hp: 4, atk: 23, def: 8, spa: 31, spd: 1, spe: 25}, moves: ["scratch", "defensecurl", "sandattack", "poisonsting"], pokeball: "pokeball"}, @@ -3711,89 +3826,97 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, sandshrewalola: { learnset: { - aerialace: ["7M"], - amnesia: ["8M", "7E"], + aerialace: ["9M", "7M"], + amnesia: ["9M", "8M", "7E"], aquatail: ["7T"], attract: ["8M", "7M"], auroraveil: ["7M"], - avalanche: ["8M"], + avalanche: ["9M", "8M"], bide: ["8V", "7L3", "7S0"], - blizzard: ["8M", "8L45", "8V", "7M", "7L46"], - bodyslam: ["8M"], - brickbreak: ["8M", "8V", "7M"], - bulldoze: ["8M", "7M"], + blizzard: ["9M", "9L45", "8M", "8L45", "8V", "7M", "7L46"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M"], + bulldoze: ["9M", "8M", "7M"], chipaway: ["7E"], confide: ["7M"], - counter: ["8E", "7E"], + counter: ["9E", "8E", "7E"], covet: ["7T"], - crushclaw: ["8E", "7E"], - curse: ["8E", "7E"], - defensecurl: ["8L1", "8V", "7L1"], - dig: ["8M", "8V"], + crushclaw: ["9E", "8E", "7E"], + curse: ["9M", "9E", "8E", "7E"], + defensecurl: ["9L1", "8L1", "8V", "7L1"], + dig: ["9M", "8M", "8V"], + doubleedge: ["9M"], doubleteam: ["7M"], - earthquake: ["8M", "8V", "7M"], - endure: ["8M", "7E"], - facade: ["8M", "8V", "7M"], - flail: ["8E", "7E"], - fling: ["8M", "7M"], - focuspunch: ["7T"], + earthquake: ["9M", "8M", "8V", "7M"], + endeavor: ["9M"], + endure: ["9M", "8M", "7E"], + facade: ["9M", "8M", "8V", "7M"], + flail: ["9E", "8E", "7E"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], frostbreath: ["7M"], frustration: ["7M"], - furycutter: ["8L12", "7L11"], - furyswipes: ["8L24", "8V", "7L20"], - gyroball: ["8M", "8L36", "7M", "7L34"], + furycutter: ["9L12", "8L12", "7L11"], + furyswipes: ["9L24", "8L24", "8V", "7L20"], + gyroball: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], hail: ["8M", "8L42", "7M", "7L42"], headbutt: ["8V"], hiddenpower: ["7M"], - honeclaws: ["8E", "7E"], + honeclaws: ["9E", "8E", "7E"], iceball: ["7L7", "7S0"], - icebeam: ["8V"], - icepunch: ["8M", "8V", "7T"], - iceshard: ["8V"], + icebeam: ["9M", "8V"], + icepunch: ["9M", "8M", "8V", "7T"], + iceshard: ["9E", "8V"], + icespinner: ["9M"], iciclecrash: ["7E"], - iciclespear: ["8M", "7E"], - icywind: ["8M", "7T"], - irondefense: ["8M", "8L27", "7T", "7L23"], - ironhead: ["8M", "8L33", "7T", "7L30"], + iciclespear: ["9M", "8M", "7E"], + icywind: ["9M", "8M", "7T"], + irondefense: ["9M", "9L27", "8M", "8L27", "7T", "7L23"], + ironhead: ["9M", "9L33", "8M", "8L33", "7T", "7L30"], irontail: ["8M", "8V", "7T"], - knockoff: ["7T"], - leechlife: ["8M", "7M"], - metalclaw: ["8L18", "7L14", "7E"], - mirrorcoat: ["8V"], - mist: ["8L3"], - nightslash: ["8E", "7E"], - poisonjab: ["8M", "8V", "7M"], - powdersnow: ["8L6", "7L5", "7S0"], - protect: ["8M", "8V", "7M"], - rapidspin: ["8L15", "7L9", "7S0"], - rest: ["8M", "8V", "7M"], + knockoff: ["9M", "7T"], + leechlife: ["9M", "8M", "7M"], + lowkick: ["9M"], + metalclaw: ["9M", "9L18", "8L18", "7L14", "7E"], + mirrorcoat: ["9E", "8V"], + mist: ["9L3", "8L3"], + nightslash: ["9E", "8E", "7E"], + poisonjab: ["9M", "8M", "8V", "7M"], + powdersnow: ["9L6", "8L6", "7L5", "7S0"], + protect: ["9M", "8M", "8V", "7M"], + rapidspin: ["9L15", "8L15", "7L9", "7S0"], + rest: ["9M", "8M", "8V", "7M"], return: ["7M"], - rockslide: ["8M", "8V", "7M"], - rocktomb: ["8M"], - rollout: ["8L9"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M"], + rollout: ["9L9", "8L9"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - scratch: ["8L1", "8V", "7L1"], + scratch: ["9L1", "8L1", "8V", "7L1"], seismictoss: ["8V"], - shadowclaw: ["8M", "7M"], - slash: ["8L30", "8V", "7L26"], - sleeptalk: ["8M", "7M"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["9L30", "8L30", "8V", "7L26"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - stealthrock: ["8M", "8V", "7T"], - steelbeam: ["8T"], + snowscape: ["9M", "9L42"], + stealthrock: ["9M", "8M", "8V", "7T"], + steelbeam: ["9M", "8T"], steelroller: ["8T"], - substitute: ["8M", "8V", "7M"], + substitute: ["9M", "8M", "8V", "7M"], sunnyday: ["8M", "7M"], - superfang: ["7T"], + superfang: ["9M", "7T"], swagger: ["7M"], - swift: ["8M", "8L21", "8V", "7L17"], - swordsdance: ["8M", "8L39", "8V", "7M", "7L38"], - thief: ["8M", "7M"], - throatchop: ["8M", "7T"], + swift: ["9M", "9L21", "8M", "8L21", "8V", "7L17"], + swordsdance: ["9M", "9L39", "8M", "8L39", "8V", "7M", "7L38"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["9M", "8M", "7T"], toxic: ["8V", "7M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], workup: ["8M", "7M"], - xscissor: ["8M", "8V", "7M"], + xscissor: ["9M", "8M", "8V", "7M"], }, eventData: [ {generation: 7, level: 10, moves: ["rapidspin", "iceball", "powdersnow", "bide"], pokeball: "cherishball"}, @@ -3801,99 +3924,107 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, sandslash: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M"], - amnesia: ["8M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + amnesia: ["9M", "8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "8L18", "7M", "6M", "5M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["8V", "3T"], covet: ["7T", "6T", "5T"], - crushclaw: ["8L1", "7L1", "6L22", "5L22", "4L22"], - curse: ["7V"], + crushclaw: ["9L1", "8L1", "7L1", "6L22", "5L22", "4L22"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - defensecurl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + defensecurl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], detect: ["7V"], - dig: ["8M", "8L41", "8V", "7L33", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], - doubleedge: ["7V", "3T"], + dig: ["9M", "9L41", "8M", "8L41", "8V", "7L33", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drillrun: ["8M", "8V"], + drillrun: ["9M", "8M", "8V"], dynamicpunch: ["7V", "3T"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L61", "8V", "7M", "7L53", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L61", "8M", "8L61", "8V", "7M", "7L53", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], + endeavor: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], fissure: ["7V"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furycutter: ["8L12", "7L11", "7V", "6L11", "5L28", "4T", "4L28", "3T"], - furyswipes: ["8L26", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L42"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gyroball: ["8M", "8L46", "7M", "7L38", "6M", "6L34", "5M", "5L45", "4M", "4L45"], + furycutter: ["9L12", "8L12", "7L11", "7V", "6L11", "5L14", "4T", "4L28", "3T"], + furyswipes: ["9L26", "8L26", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + gyroball: ["9M", "9L46", "8M", "8L46", "7M", "7L38", "6M", "6L34", "5M", "5L34", "4M", "4L45"], headbutt: ["8V", "7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - leechlife: ["8M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leechlife: ["9M", "8M"], + lowkick: ["9M"], magnitude: ["7L14", "6L14", "5L17"], + metalclaw: ["9M"], mimic: ["7V", "3T"], - mudshot: ["8M"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], pinmissile: ["8M"], - poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], - poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L9", "4L9", "3L17"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L5", "4L9", "3L17"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - rapidspin: ["8L15", "7L9", "6L9", "5L13", "4L13"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["9L15", "8L15", "7L9", "6L9", "5L9", "4L13"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], - rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], - rollout: ["8L9", "7L7", "7V", "6L7", "5L21", "4T", "4L21", "3T"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L9", "8L9", "7L7", "7V", "6L7", "5L7", "4T", "4L21", "3T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - sandattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - sandstorm: ["8M", "8L56", "7M", "7L48", "7V", "6M", "6L42", "5M", "5L52", "4M", "4L52", "3M", "3L62"], - sandtomb: ["8M", "8L31", "7L24", "6L23", "5L33", "4L33", "3L52"], - scorchingsands: ["8T"], - scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["9M", "9L56", "8M", "8L56", "7M", "7L48", "7V", "6M", "6L42", "5M", "5L42", "4M", "4L52", "3M", "3L62"], + sandtomb: ["9M", "9L31", "8M", "8L31", "7L24", "6L23", "5L23", "4L33", "3L52"], + scorchingsands: ["9M", "8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], skullbash: ["7V"], - slash: ["8L36", "8V", "7L28", "7V", "6L26", "5L40", "4L40", "3L24"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + slash: ["9L36", "8L36", "8V", "7L28", "7V", "6L26", "5L26", "4L40", "3L24"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spikes: ["8M"], - stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], steelroller: ["8T"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L21", "8V", "7L17", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L33"], - swordsdance: ["8M", "8L51", "8V", "7M", "7L43", "7V", "6M", "6L38", "5M", "5L38", "4M", "3T"], - takedown: ["7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M"], + swift: ["9M", "9L21", "8M", "8L21", "8V", "7L17", "7V", "6L11", "5L11", "4T", "4L15", "3T", "3L33"], + swordsdance: ["9M", "9L51", "8M", "8L51", "8V", "7M", "7L43", "7V", "6M", "6L38", "5M", "5L38", "4M", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "8M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], workup: ["8M"], - xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + xscissor: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], }, encounters: [ {generation: 2, level: 10}, @@ -3902,90 +4033,100 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, sandslashalola: { learnset: { - aerialace: ["7M"], - agility: ["8M"], - amnesia: ["8M"], + aerialace: ["9M", "7M"], + agility: ["9M", "8M"], + amnesia: ["9M", "8M"], aquatail: ["7T"], attract: ["8M", "7M"], auroraveil: ["7M"], - avalanche: ["8M"], + avalanche: ["9M", "8M"], bide: ["8V"], - blizzard: ["8M", "8L1", "8V", "7M"], - bodyslam: ["8M"], - brickbreak: ["8M", "8V", "7M"], - bulldoze: ["8M", "7M"], + blizzard: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M"], + bulldoze: ["9M", "8M", "7M"], confide: ["7M"], counter: ["8V"], covet: ["7T"], - defensecurl: ["8L1", "8V", "7L1"], - dig: ["8M", "8V"], + curse: ["9M"], + defensecurl: ["9L1", "8L1", "8V", "7L1"], + dig: ["9M", "8M", "8V"], + doubleedge: ["9M"], doubleteam: ["7M"], - drillrun: ["8M", "8V", "7T"], - earthquake: ["8M", "8V", "7M"], - endure: ["8M"], - facade: ["8M", "8V", "7M"], - fling: ["8M", "7M"], - focusblast: ["8M", "7M"], - focuspunch: ["7T"], + drillrun: ["9M", "8M", "8V", "7T"], + earthquake: ["9M", "8M", "8V", "7M"], + endeavor: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + falseswipe: ["9M"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], frostbreath: ["7M"], frustration: ["7M"], - furycutter: ["8L1"], - furyswipes: ["8L1"], - gigaimpact: ["8M", "7M"], - gyroball: ["8M", "8L1", "7M"], + furycutter: ["9L1", "8L1"], + furyswipes: ["9L1", "8L1"], + gigaimpact: ["9M", "8M", "7M"], + gyroball: ["9M", "9L1", "8M", "8L1", "7M"], hail: ["8M", "8L1", "7M"], headbutt: ["8V"], hiddenpower: ["7M"], - hyperbeam: ["8M", "8V", "7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], iceball: ["7L1"], - icebeam: ["8V"], - icepunch: ["8M", "8V", "7T"], + icebeam: ["9M", "8V"], + icepunch: ["9M", "8M", "8V", "7T"], iceshard: ["8V"], - iciclecrash: ["8L1", "7L1"], - iciclespear: ["8M", "8L0", "7L1"], - icywind: ["8M", "7T"], - irondefense: ["8M", "8L1", "7T"], - ironhead: ["8M", "8L1", "7T"], + icespinner: ["9M"], + iciclecrash: ["9L1", "8L1", "7L1"], + iciclespear: ["9M", "9L0", "8M", "8L0", "7L1"], + icywind: ["9M", "8M", "7T"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T"], + ironhead: ["9M", "9L1", "8M", "8L1", "7T"], irontail: ["8M", "8V", "7T"], - knockoff: ["7T"], - leechlife: ["8M", "7M"], - metalburst: ["8L1", "7L1"], - metalclaw: ["8L1", "7L1"], - mist: ["8L1"], + knockoff: ["9M", "7T"], + leechlife: ["9M", "8M", "7M"], + lowkick: ["9M"], + metalburst: ["9L1", "8L1", "7L1"], + metalclaw: ["9M", "9L1", "8L1", "7L1"], + mist: ["9L1", "8L1"], pinmissile: ["8M"], - poisonjab: ["8M", "8V", "7M"], - powdersnow: ["8L1"], - protect: ["8M", "8V", "7M"], - rapidspin: ["8L1"], - rest: ["8M", "8V", "7M"], + poisonjab: ["9M", "8M", "8V", "7M"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M", "8V", "7M"], + rapidspin: ["9L1", "8L1"], + rest: ["9M", "8M", "8V", "7M"], return: ["7M"], - rockslide: ["8M", "8V", "7M"], - rocktomb: ["8M"], - rollout: ["8L1"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M"], + rollout: ["9L1", "8L1"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - scratch: ["8L1", "8V"], + scratch: ["9L1", "8L1", "8V"], seismictoss: ["8V"], - shadowclaw: ["8M", "7M"], - slash: ["8L1", "7L1"], - sleeptalk: ["8M", "7M"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["9L1", "8L1", "7L1"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - spikes: ["8M"], - stealthrock: ["8M", "8V", "7T"], - steelbeam: ["8T"], + snowscape: ["9M", "9L1"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "8M", "8V", "7T"], + steelbeam: ["9M", "8T"], steelroller: ["8T"], - substitute: ["8M", "8V", "7M"], + substitute: ["9M", "8M", "8V", "7M"], sunnyday: ["8M", "7M"], - superfang: ["7T"], + superfang: ["9M", "7T"], swagger: ["7M"], - swift: ["8M", "8L1"], - swordsdance: ["8M", "8L1", "7M"], - thief: ["8M", "7M"], - throatchop: ["8M", "7T"], + swift: ["9M", "9L1", "8M", "8L1"], + swordsdance: ["9M", "9L1", "8M", "8L1", "7M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["9M", "8M", "7T"], toxic: ["8V", "7M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], workup: ["8M", "7M"], - xscissor: ["8M", "8V", "7M"], + xscissor: ["9M", "8M", "8V", "7M"], }, }, nidoranf: { @@ -4612,70 +4753,75 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cleffa: { learnset: { afteryou: ["7T", "6T", "5T"], - amnesia: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + alluringvoice: ["9M"], + amnesia: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], aromatherapy: ["8E", "7E", "6E", "5E", "5D", "4E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bellydrum: ["7E", "7V", "6E", "5E", "4E", "3E"], - bodyslam: ["8M", "3T"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M"], captivate: ["4M"], - charm: ["8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + chillingwater: ["9M"], confide: ["7M", "6M"], - copycat: ["8L1", "7L13", "6L13", "5L13", "4L13"], + copycat: ["9L1", "8L1", "7L13", "6L13", "5L13", "4L13"], counter: ["3T"], covet: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], curse: ["7V"], + dazzlinggleam: ["9M"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["8M", "6M", "5M", "4M", "3M"], - disarmingvoice: ["8L12"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M", "9L12", "8L12"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drainingkiss: ["8M"], + drainingkiss: ["9M", "8M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8M", "8L16", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L4"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - faketears: ["8M", "7E", "6E", "5E", "4E"], - fireblast: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L16", "8M", "8L16", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L4"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "4E"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["7V", "4T"], - healpulse: ["8E", "7E", "6E"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + healpulse: ["9E", "8E", "7E", "6E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], lastresort: ["7T", "6T", "5T", "4T"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], - magicalleaf: ["8M", "7L16", "6L16", "5L16", "4L16", "3L17"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M", "8M", "7L16", "6L16", "5L16", "4L16", "3L17"], magiccoat: ["7T", "6T", "5T", "4T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - metronome: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + metronome: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], mimic: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], - mistyterrain: ["8M", "7E", "6E"], + mistyterrain: ["9M", "8M", "7E", "6E"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - playrough: ["8M"], - pound: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + present: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], rollout: ["7V", "4T", "3T"], @@ -4683,135 +4829,141 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sing: ["8L4", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + sing: ["9L4", "8L4", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], softboiled: ["3T"], - solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - splash: ["8L1", "7E", "7V", "6E", "5E", "4E", "3E"], - storedpower: ["8M", "7E", "6E", "5E"], - substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "8L1", "7E", "7V", "6E", "5E", "4E", "3E"], + storedpower: ["9M", "8M", "7E", "6E", "5E"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetkiss: ["8L8", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + sweetkiss: ["9L8", "8L8", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + swift: ["9M"], telekinesis: ["7T", "5M"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], - tickle: ["8E", "7E", "6E", "5E"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["9E", "8E", "7E", "6E", "5E"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - trick: ["8M", "7T", "6T", "5T", "4T"], - uproar: ["8M", "7T", "6T", "5T", "4T"], - waterpulse: ["7T", "6T", "4M", "3M"], - wish: ["8E", "7E", "6E", "5E", "4E", "3E"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], wonderroom: ["8M", "7T", "6T", "5T"], workup: ["8M", "7M", "5M"], zapcannon: ["7V"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, }, clefairy: { learnset: { - afteryou: ["8L12", "7T", "7L58", "6T", "6L1", "5T", "5L52"], + afteryou: ["9L12", "8L12", "7T", "7L58", "6T", "6L1", "5T", "5L52"], + alluringvoice: ["9M"], allyswitch: ["8M"], - amnesia: ["8M", "8V"], + amnesia: ["9M", "8M", "8V"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["8M"], - bestow: ["7L19", "6L19", "5L25"], + batonpass: ["9M", "8M"], + bestow: ["7L19", "6L19", "5L19"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "8V", "7L40", "7V", "6L40", "5L40", "3T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "8V", "7L40", "7V", "6L40", "5L40", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], bubblebeam: ["7V"], - calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["8M", "8L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], confide: ["7M", "6M"], - copycat: ["8L1"], - cosmicpower: ["8M", "8L40", "7L34", "6L34", "5L28", "4L25", "3L33"], + copycat: ["9L1", "8L1"], + cosmicpower: ["9L40", "8M", "8L40", "7L34", "6L34", "5L28", "4L25", "3L33"], counter: ["7V", "3T"], covet: ["7T", "6T", "5T"], curse: ["7V"], - dazzlinggleam: ["8M", "8V", "7M", "6M"], - defensecurl: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3T", "3L25"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3T", "3L25"], detect: ["7V"], - dig: ["8M", "8V", "6M", "5M", "4M", "3M"], - disarmingvoice: ["8L1", "7L1", "6L1"], - doubleedge: ["7V", "3T"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M", "9L1", "8L1", "7L1", "6L1"], + doubleedge: ["9M", "7V", "3T"], doubleslap: ["8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drainingkiss: ["8M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], dynamicpunch: ["7V", "3T"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "5L4", "4L4", "3L5"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - faketears: ["8M"], - fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L8", "8M", "8L1", "8V", "7L1", "7V", "6L1", "5L4", "4L4", "3L5"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], - followme: ["8L36", "8S0", "7L16", "6L16", "5L16", "4L16", "3L17"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L36", "8L36", "8S0", "7L16", "6L16", "5L16", "4L16", "3L17"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["8L28", "7T", "7L49", "6T", "6L49", "5T", "5L37", "4T", "4L34"], - growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L28", "8L28", "7T", "7L49", "6T", "6L49", "5T", "5L37", "4T", "4L34"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], - healingwish: ["8L48", "7L55", "6L1", "5L49", "4L46"], - helpinghand: ["8M", "8V", "8S0", "7T", "6T", "5T", "4T"], + healingwish: ["9L48", "8L48", "7L55", "6L1", "5L49", "4L46"], + helpinghand: ["9M", "8M", "8V", "8S0", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "8S0", "7T", "6T", "5T", "4T"], - imprison: ["8M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "8S0", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], incinerate: ["6M", "5M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lastresort: ["7T", "6T", "5T", "4T"], - lifedew: ["8L16"], - lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "5L46", "4M", "4L40", "3M", "3L41"], + lifedew: ["9L16", "8L16"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5L46", "4M", "4L40", "3M", "3L41"], luckychant: ["7L37", "6L37", "5L31", "4L28"], - magicalleaf: ["8M"], + magicalleaf: ["9M", "8M"], magiccoat: ["7T", "6T", "5T", "4T"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - meteorbeam: ["8T"], - meteormash: ["8L32", "7L50", "6L50", "5L55", "4L43", "3L45"], - metronome: ["8M", "8L20", "8V", "8S1", "7L31", "7V", "6L31", "5L34", "4L31", "3T", "3L29"], + meteorbeam: ["9M", "8T"], + meteormash: ["9L32", "8L32", "7L50", "6L50", "5L52", "4L43", "3L45"], + metronome: ["9M", "9L20", "8M", "8L20", "8V", "8S1", "7L31", "7V", "6L31", "5L31", "4L31", "3T", "3L29"], mimic: ["7V", "3T"], minimize: ["8L8", "8V", "7L25", "7V", "6L25", "5L19", "4L19", "3L21"], - mistyexplosion: ["8T"], - mistyterrain: ["8M"], - moonblast: ["8L44", "8V", "8S1", "7L46", "6L46"], - moonlight: ["8L24", "8S1", "7L43", "7V", "6L43", "5L40", "4L37", "3L37"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L44", "8L44", "8V", "8S1", "7L46", "6L46"], + moonlight: ["9L24", "8L24", "8S1", "7L43", "7V", "6L43", "5L40", "4L37", "3L37"], mudslap: ["7V", "4T", "3T"], mysticalfire: ["8M"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - playrough: ["8M", "8V"], - pound: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + nightshade: ["9M"], + playrough: ["9M", "8M", "8V"], + pound: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], poweruppunch: ["6M"], - protect: ["8M", "8V", "8S0", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "8V", "8S0", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7V"], rage: ["7V"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], - reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M"], @@ -4821,44 +4973,48 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sing: ["8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L9"], + sing: ["9L1", "8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L9"], + skillswap: ["9M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], softboiled: ["3T"], - solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - splash: ["8L1"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "8L1"], spotlight: ["7L1"], - stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], - storedpower: ["8M", "8L4", "7L28", "6L28", "5L43"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "9L4", "8M", "8L4", "7L28", "6L28", "5L28"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetkiss: ["8L1"], - takedown: ["7V"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], telekinesis: ["7T", "5M"], teleport: ["8V", "7V"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], triattack: ["8M", "8V", "7V"], - trick: ["8M", "7T", "6T", "5T", "4T"], - uproar: ["8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M"], wakeupslap: ["7L22", "6L22", "5L22", "4L22"], watergun: ["7V"], - waterpulse: ["7T", "6T", "4M", "3M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], wonderroom: ["8M", "7T", "6T", "5T"], workup: ["8M", "7M", "5M"], zapcannon: ["7V"], - zenheadbutt: ["8M", "8S1", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "8S1", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 8, level: 50, gender: "F", shiny: true, nature: "Bold", isHidden: true, ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["followme", "icywind", "helpinghand", "protect"], pokeball: "cherishball"}, @@ -4870,107 +5026,112 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, clefable: { learnset: { - afteryou: ["8L1", "7T", "6T", "5T"], + afteryou: ["9L1", "8L1", "7T", "6T", "5T"], + alluringvoice: ["9M"], allyswitch: ["8M"], - amnesia: ["8M"], + amnesia: ["9M", "8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["8M"], + batonpass: ["9M", "8M"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "7V", "3T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], bubblebeam: ["7V"], - calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["8M", "8L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], confide: ["7M", "6M"], - copycat: ["8L1"], - cosmicpower: ["8M", "8L1"], + copycat: ["9L1", "8L1"], + cosmicpower: ["9L1", "8M", "8L1"], counter: ["7V", "3T"], covet: ["7T", "6T", "5T"], curse: ["7V"], - dazzlinggleam: ["8M", "8V", "7M", "6M"], - defensecurl: ["8L1", "8V", "7V", "3T"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7V", "3T"], detect: ["7V"], - dig: ["8M", "8V", "6M", "5M", "4M", "3M"], - disarmingvoice: ["8L1", "7L1", "6L1"], - doubleedge: ["7V", "3T"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M", "9L1", "8L1", "7L1", "6L1"], + doubleedge: ["9M", "7V", "3T"], doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drainingkiss: ["8M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], dynamicpunch: ["7V", "3T"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8M", "8L1"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - faketears: ["8M"], - fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L1", "8M", "8L1"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], - followme: ["8L1"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L1", "8L1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["8L1", "7T", "6T", "5T", "4T"], - growl: ["8L1", "8V"], + futuresight: ["9M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "8L1", "7T", "6T", "5T", "4T"], + growl: ["9L1", "8L1", "8V"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], - healingwish: ["8L1"], - helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + healingwish: ["9L1", "8L1"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T"], - imprison: ["8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], incinerate: ["6M", "5M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T", "4T"], - lifedew: ["8L1"], - lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - magicalleaf: ["8M"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M", "8M"], magiccoat: ["7T", "6T", "5T", "4T"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - meteorbeam: ["8T"], - meteormash: ["8L1"], - metronome: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + meteorbeam: ["9M", "8T"], + meteormash: ["9L1", "8L1"], + metronome: ["9M", "9L1", "8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], mimic: ["7V", "3T"], minimize: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - mistyexplosion: ["8T"], - mistyterrain: ["8M"], - moonblast: ["8L1"], - moonlight: ["8L1", "7V"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L1", "8L1"], + moonlight: ["9L1", "8L1", "7V"], mudslap: ["7V", "4T", "3T"], mysticalfire: ["8M"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - playrough: ["8M", "8V"], - pound: ["8L1", "8V"], + nightshade: ["9M"], + playrough: ["9M", "8M", "8V"], + pound: ["9L1", "8L1", "8V"], poweruppunch: ["6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7V"], rage: ["7V"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], - reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M"], @@ -4980,128 +5141,138 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sing: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sing: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skillswap: ["9M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], softboiled: ["3T"], - solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - splash: ["8L1"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "8L1"], spotlight: ["7L1"], - stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], - storedpower: ["8M", "8L1"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "9L1", "8M", "8L1"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetkiss: ["8L1"], - takedown: ["7V"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], telekinesis: ["7T", "5M"], teleport: ["8V", "7V"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], triattack: ["8M", "8V", "7V"], - trick: ["8M", "7T", "6T", "5T", "4T"], - uproar: ["8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M"], watergun: ["7V"], - waterpulse: ["7T", "6T", "4M", "3M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], wonderroom: ["8M", "7T", "6T", "5T"], workup: ["8M", "7M", "5M"], zapcannon: ["7V"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, }, vulpix: { learnset: { - agility: ["8M"], + agility: ["9M", "8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - babydolleyes: ["8E", "7L9", "6L9"], + babydolleyes: ["9E", "8E", "7L9", "6L9"], + batonpass: ["9M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - burningjealousy: ["8T"], + bodyslam: ["9M", "8M", "7V", "3T"], + burningjealousy: ["9M", "8T"], captivate: ["7L47", "7E", "6L47", "6E", "5L41", "4M", "4L37"], - charm: ["3S1"], + charm: ["9M", "3S1"], confide: ["7M", "6M"], - confuseray: ["8L20", "8V", "7L12", "7V", "6L12", "5L17", "4L17", "3L21"], + confuseray: ["9M", "9L20", "8L20", "8V", "7L12", "7V", "6L12", "5L15", "4L17", "3L21"], covet: ["7T", "6T", "5T"], curse: ["7V"], - darkpulse: ["8M", "8V", "7M", "6M", "5T", "5D", "4M"], - dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M", "3S1"], - disable: ["8L4", "7E", "7V", "6E", "5E", "4E", "3E"], - doubleedge: ["7V", "3T"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "5D", "4M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M", "3S1"], + disable: ["9L4", "8L4", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - ember: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], - encore: ["8M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4E"], - extrasensory: ["8L28", "7L31", "7E", "6L31", "6E", "5L51", "5E", "4L44", "4E"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + ember: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4E"], + extrasensory: ["9L28", "8L28", "7L31", "7E", "6L31", "6E", "5L39", "5E", "4L44", "4E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], feintattack: ["7L23", "7E", "7V", "6L20", "6E", "5L20", "5E", "4E", "3E"], - fireblast: ["8M", "8L56", "8V", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L54", "4M", "4L47", "3M"], - firespin: ["8M", "8L40", "8V", "7L15", "7V", "6L12", "5L14", "4L34", "3L41"], - flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - flameburst: ["7L28", "6L23", "5L24"], - flamecharge: ["8E", "7M", "6M", "5M"], - flamethrower: ["8M", "8L32", "8V", "7M", "7L36", "7V", "6M", "6L34", "5M", "5L37", "4M", "4L24", "3M", "3L29"], - flareblitz: ["8M", "7E", "6E", "5E", "4E"], - foulplay: ["8M", "8V", "7T", "6T", "5T"], + fireblast: ["9M", "9L52", "8M", "8L56", "8V", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L42", "4M", "4L47", "3M"], + firespin: ["9M", "9L40", "8M", "8L40", "8V", "7L15", "7V", "6L12", "5L12", "4L34", "3L41"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flameburst: ["7L28", "6L23", "5L23"], + flamecharge: ["9M", "9E", "8E", "7M", "6M", "5M"], + flamethrower: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L36", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L24", "3M", "3L29"], + flareblitz: ["9M", "8M", "7E", "6E", "5E", "4E"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - grudge: ["8L52", "7L44", "6L44", "5L47", "4L41", "3L37"], + grudge: ["8L52", "7L44", "6L44", "5L44", "4L41", "3L37"], headbutt: ["8V", "7V", "4T"], - heatwave: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E", "3S1"], - hex: ["8M", "7L26", "7E", "6L26", "6E", "5L28", "5E"], + healingwish: ["9E"], + heatwave: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E", "3S1"], + helpinghand: ["9M"], + hex: ["9M", "8M", "7L26", "7E", "6L26", "6E", "5L28", "5E"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - howl: ["8E", "7E", "6E", "5E", "4E", "3E"], - hypnosis: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - imprison: ["8M", "8L36", "7L39", "6L18", "5L21", "4L21", "3L25"], - incinerate: ["8L16", "6M", "5M"], - inferno: ["8L48", "7L50", "6L50", "5L44"], + howl: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + imprison: ["9M", "9L36", "8M", "8L36", "7L39", "6L18", "5L18", "4L21", "3L25"], + incinerate: ["9L16", "8L16", "6M", "5M"], + inferno: ["9L48", "8L48", "7L50", "6L50", "5L44"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - memento: ["8E"], + memento: ["9E", "8E"], mimic: ["7V", "3T"], mysticalfire: ["8M"], + nastyplot: ["9M"], naturalgift: ["4M"], ominouswind: ["4T"], - overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], - painsplit: ["7T", "6T", "5T", "4T"], - payback: ["8M", "7M", "7L18", "6M", "6L18", "5M", "5L34", "4M", "4L31"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "7L18", "6M", "6L18", "5M", "5L31", "4M", "4L31"], powerswap: ["8M", "7E", "6E", "5E", "4E"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "4E", "3E"], - quickattack: ["8L8", "8V", "7L10", "7V", "6L10", "5L11", "4L11", "3L13", "3S0"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "4E", "3E"], + quickattack: ["9L8", "8L8", "8V", "7L10", "7V", "6L10", "5L10", "4L11", "3L13", "3S0"], rage: ["7V"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["8E", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "5D", "4M", "4L7", "3M", "3L9", "3S0"], + roar: ["9M", "9E", "8E", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "5D", "4M", "4L7", "3M", "3L9", "3S0"], roleplay: ["7T", "6T", "5T", "4T"], round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "8L44", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L27", "4M", "4L27", "3M", "3L33"], + safeguard: ["9L44", "8M", "8L44", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L27", "4M", "4L27", "3M", "3L33"], secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["8L12", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9M", "9L12", "8L12", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], tackle: ["8V"], tailslap: ["8M", "7E", "6E", "5E"], - tailwhip: ["8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L5", "3S0"], - takedown: ["7V"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L5", "3S0"], + takedown: ["9M", "7V"], + terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - weatherball: ["8M"], - willowisp: ["8M", "8L24", "8V", "7M", "7L20", "6M", "6L20", "5M", "5L31", "4M", "4L14", "3L17", "3S0"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "9L24", "8M", "8L24", "8V", "7M", "7L20", "6M", "6L20", "5M", "5L26", "4M", "4L14", "3L17", "3S0"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 18, gender: "F", nature: "Quirky", ivs: {hp: 15, atk: 6, def: 3, spa: 25, spd: 13, spe: 22}, moves: ["tailwhip", "roar", "quickattack", "willowisp"], pokeball: "pokeball"}, @@ -5113,79 +5284,93 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, vulpixalola: { learnset: { - agility: ["8M", "7E"], + agility: ["9M", "8M", "7E"], aquatail: ["7T"], attract: ["8M", "7M"], - aurorabeam: ["8L24", "8V", "7L28"], - auroraveil: ["8L44", "7M"], - babydolleyes: ["8E", "7L9", "7S0"], - blizzard: ["8M", "8L56", "8V", "7M", "7L42"], - bodyslam: ["8M"], + aurorabeam: ["9L24", "8L24", "8V", "7L28"], + auroraveil: ["9L44", "8L44", "7M"], + babydolleyes: ["9E", "8E", "7L9", "7S0"], + batonpass: ["9M"], + blizzard: ["9M", "9L52", "8M", "8L56", "8V", "7M", "7L42"], + bodyslam: ["9M", "8M"], captivate: ["7L47"], celebrate: ["7S0"], - charm: ["8M", "7E"], + charm: ["9M", "8M", "7E"], + chillingwater: ["9M"], confide: ["7M"], - confuseray: ["8L20", "8V", "7L12"], + confuseray: ["9M", "9L20", "8L20", "8V", "7L12"], covet: ["7T"], - darkpulse: ["8M", "8V", "7M"], - dazzlinggleam: ["8V"], - dig: ["8M", "8V"], - disable: ["8L4", "7E"], + darkpulse: ["9M", "8M", "8V", "7M"], + dazzlinggleam: ["9M", "8V"], + dig: ["9M", "8M", "8V"], + disable: ["9L4", "8L4", "7E"], + disarmingvoice: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M"], - drainingkiss: ["8M"], - encore: ["8M", "7E"], - endure: ["8M"], - extrasensory: ["8L28", "7L31", "7E"], - facade: ["8M", "8V", "7M"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M", "7E"], + endure: ["9M", "8M"], + extrasensory: ["9L28", "8L28", "7L31", "7E"], + facade: ["9M", "8M", "8V", "7M"], + faketears: ["9M"], feintattack: ["7L23"], - flail: ["8E", "7E"], - foulplay: ["8M", "8V", "7T"], - freezedry: ["8E", "7E"], + flail: ["9E", "8E", "7E"], + foulplay: ["9M", "8M", "8V", "7T"], + freezedry: ["9L48", "8E", "7E"], frostbreath: ["7M"], frustration: ["7M"], grudge: ["8L52", "7L44"], hail: ["8M", "7M"], headbutt: ["8V"], healbell: ["7T"], - hex: ["8M", "7L26"], + helpinghand: ["9M"], + hex: ["9M", "8M", "7L26"], hiddenpower: ["7M"], - howl: ["8E", "7E"], - hypnosis: ["8E", "7E"], - icebeam: ["8M", "8L32", "8V", "7M", "7L36"], - iceshard: ["8L8", "8V", "7L10", "7S0"], - icywind: ["8M", "8L16", "7T", "7L15"], - imprison: ["8M", "8L36", "7L39"], + howl: ["9E", "8E", "7E"], + hypnosis: ["9E", "8E", "7E"], + icebeam: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L36"], + iceshard: ["9L8", "8L8", "8V", "7L10", "7S0"], + iciclespear: ["9M"], + icywind: ["9M", "9L16", "8M", "8L16", "7T", "7L15"], + imprison: ["9M", "9L36", "8M", "8L36", "7L39"], irontail: ["8M", "8V", "7T"], - mist: ["8L40", "8V", "7L20"], - moonblast: ["8E", "7E"], - painsplit: ["7T"], + mist: ["9L40", "8L40", "8V", "7L20"], + mistyterrain: ["9M"], + moonblast: ["9E", "8E", "7E"], + nastyplot: ["9M"], + painsplit: ["9M", "7T"], payback: ["8M", "7M", "7L18"], - powdersnow: ["8L1", "7L1", "7S1"], + playrough: ["9M"], + powdersnow: ["9L1", "8L1", "7L1", "7S1"], powerswap: ["8M", "7E"], - protect: ["8M", "8V", "7M"], - psychup: ["7M"], - raindance: ["8M", "7M"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["9M", "7M"], + raindance: ["9M", "8M", "7M"], reflect: ["8V"], - rest: ["8M", "8V", "7M"], + rest: ["9M", "8M", "8V", "7M"], return: ["7M"], - roar: ["8E", "8V", "7M", "7L7"], + roar: ["9M", "9E", "8E", "8V", "7M", "7L7"], roleplay: ["7T"], round: ["8M", "7M"], safeguard: ["8M", "7M", "7L34"], secretpower: ["7E"], sheercold: ["8L48", "7L50"], - sleeptalk: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - spite: ["8L12", "7T", "7E"], - substitute: ["8M", "8V", "7M"], + snowscape: ["9M"], + spite: ["9M", "9L12", "8L12", "7T", "7E"], + storedpower: ["9M"], + substitute: ["9M", "8M", "8V", "7M"], swagger: ["7M"], - swift: ["8M"], + swift: ["9M", "8M"], tackle: ["8V"], tailslap: ["8M", "7E"], - tailwhip: ["8L1", "8V", "7L4", "7S0"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7S0"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["8V", "7M"], - weatherball: ["8M"], - zenheadbutt: ["8M", "7T"], + weatherball: ["9M", "8M"], + zenheadbutt: ["9M", "8M", "7T"], }, eventData: [ {generation: 7, level: 10, moves: ["celebrate", "tailwhip", "babydolleyes", "iceshard"], pokeball: "cherishball"}, @@ -5194,92 +5379,98 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ninetales: { learnset: { - agility: ["8M"], + agility: ["9M", "8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - burningjealousy: ["8T"], - calmmind: ["8M", "8V", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "8M", "7V", "3T"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], - confuseray: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + confuseray: ["9M", "9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], covet: ["7T", "6T", "5T"], curse: ["7V"], - darkpulse: ["8M", "8V", "7M", "6M", "5T", "4M"], - dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], - disable: ["8L1"], - doubleedge: ["7V", "3T"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L1", "8L1"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["8V", "7M", "6M", "5M", "4M"], - ember: ["8L1", "8V", "7V", "5L1", "4L1", "3L1"], - encore: ["8M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M"], - extrasensory: ["8L1"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - faketears: ["8M"], - fireblast: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firespin: ["8M", "8L1", "7V", "3L45"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5M", "4M", "3M"], - flareblitz: ["8M"], - foulplay: ["8M", "8V", "7T", "6T", "5T"], + ember: ["9L1", "8L1", "8V", "7V", "5L1", "4L1", "3L1"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "9L1", "8M", "8L1", "7V", "3L45"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5M", "4M", "3M"], + flareblitz: ["9M", "8M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grudge: ["8L1"], headbutt: ["8V", "7V", "4T"], - heatwave: ["8M", "7T", "6T", "5T", "5S0", "4T"], - hex: ["8M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "5S0", "4T"], + helpinghand: ["9M"], + hex: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], hypnosis: ["8V"], - imprison: ["8M", "8L1", "7L1", "6L1"], - incinerate: ["8L1", "6M", "5M"], - inferno: ["8L1"], + imprison: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + incinerate: ["9L1", "8L1", "6M", "5M"], + inferno: ["9L1", "8L1"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], mimic: ["7V", "3T"], mysticalfire: ["8M"], - nastyplot: ["8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1"], + nastyplot: ["9M", "9L1", "8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1"], naturalgift: ["4M"], + nightshade: ["9M"], ominouswind: ["4T"], - overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], - painsplit: ["7T", "6T", "5T", "4T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], powerswap: ["8M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M"], - psyshock: ["8M", "7M", "6M", "5M", "5S0"], - quickattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M", "5S0"], + quickattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], rage: ["7V"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], - scorchingsands: ["8T"], + safeguard: ["9L1", "8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M"], + shadowball: ["9M", "8M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8V", "7M", "6M", "5M", "5S0", "4M"], - spite: ["8L1", "7T", "6T", "5T", "4T"], - storedpower: ["8M"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "5M", "5S0", "4M"], + spite: ["9M", "9L1", "8L1", "7T", "6T", "5T", "4T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], tackle: ["8V"], tailslap: ["8M"], - tailwhip: ["8L1", "8V", "7V"], - takedown: ["7V"], + tailwhip: ["9L1", "8L1", "8V", "7V"], + takedown: ["9M", "7V"], + terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - weatherball: ["8M"], - willowisp: ["8M", "8L1", "8V", "7M", "6M", "5M", "5S0", "4M"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "9L1", "8M", "8L1", "8V", "7M", "6M", "5M", "5S0", "4M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 5, level: 50, gender: "M", nature: "Bold", ivs: {def: 31}, isHidden: true, moves: ["heatwave", "solarbeam", "psyshock", "willowisp"], pokeball: "cherishball"}, @@ -5287,88 +5478,100 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ninetalesalola: { learnset: { - agility: ["8M"], + agility: ["9M", "8M"], aquatail: ["7T"], attract: ["8M", "7M"], - aurorabeam: ["8L1"], - auroraveil: ["8L1", "7M"], - avalanche: ["8M"], - blizzard: ["8M", "8L1", "8V", "7M"], - bodyslam: ["8M"], - calmmind: ["8M", "8V", "7M"], - charm: ["8M"], + aurorabeam: ["9L1", "8L1"], + auroraveil: ["9L1", "8L1", "7M"], + avalanche: ["9M", "8M"], + batonpass: ["9M"], + blizzard: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + bodyslam: ["9M", "8M"], + calmmind: ["9M", "8M", "8V", "7M"], + charm: ["9M", "8M"], + chillingwater: ["9M"], confide: ["7M"], - confuseray: ["8L1", "7L1"], + confuseray: ["9M", "9L1", "8L1", "7L1"], covet: ["7T"], - darkpulse: ["8M", "8V", "7M"], - dazzlinggleam: ["8M", "8L0", "8V", "7M", "7L1"], - dig: ["8M", "8V"], - disable: ["8L1"], + darkpulse: ["9M", "8M", "8V", "7M"], + dazzlinggleam: ["9M", "9L0", "8M", "8L0", "8V", "7M", "7L1"], + dig: ["9M", "8M", "8V"], + disable: ["9L1", "8L1"], + disarmingvoice: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M"], - drainingkiss: ["8M"], + drainingkiss: ["9M", "8M"], dreameater: ["8V", "7M"], - encore: ["8M"], - endure: ["8M"], - extrasensory: ["8L1"], - facade: ["8M", "8V", "7M"], - faketears: ["8M"], - foulplay: ["8M", "8V", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "8V", "7M"], + faketears: ["9M", "8M"], + foulplay: ["9M", "8M", "8V", "7T"], + freezedry: ["9L1"], frostbreath: ["7M"], frustration: ["7M"], - gigaimpact: ["8M", "7M"], + gigaimpact: ["9M", "8M", "7M"], grudge: ["8L1"], hail: ["8M", "7M"], headbutt: ["8V"], healbell: ["7T"], - hex: ["8M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], hiddenpower: ["7M"], - hyperbeam: ["8M", "8V", "7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], hypnosis: ["8V"], - icebeam: ["8M", "8L1", "8V", "7M", "7L1"], - iceshard: ["8L1", "8V", "7L1"], - icywind: ["8M", "8L1", "7T"], - imprison: ["8M", "8L1", "7L1"], + icebeam: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1"], + iceshard: ["9L1", "8L1", "8V", "7L1"], + iciclespear: ["9M"], + icywind: ["9M", "9L1", "8M", "8L1", "7T"], + imprison: ["9M", "9L1", "8M", "8L1", "7L1"], irontail: ["8M", "8V", "7T"], laserfocus: ["7T"], - mist: ["8L1", "8V"], - mistyterrain: ["8M"], - nastyplot: ["8M", "8L1", "8V", "7L1"], - painsplit: ["7T"], + mist: ["9L1", "8L1", "8V"], + mistyterrain: ["9M", "8M"], + nastyplot: ["9M", "9L1", "8M", "8L1", "8V", "7L1"], + painsplit: ["9M", "7T"], payback: ["8M", "7M"], - powdersnow: ["8L1"], + playrough: ["9M"], + powdersnow: ["9L1", "8L1"], powerswap: ["8M"], - protect: ["8M", "8V", "7M"], - psychup: ["7M"], - psyshock: ["8M", "7M"], - raindance: ["8M", "7M"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["9M", "7M"], + psyshock: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], reflect: ["8V"], - rest: ["8M", "8V", "7M"], + rest: ["9M", "8M", "8V", "7M"], return: ["7M"], - roar: ["7M"], + roar: ["9M", "7M"], roleplay: ["7T"], round: ["8M", "7M"], safeguard: ["8M", "7M", "7L1"], sheercold: ["8L1"], - sleeptalk: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], + snowscape: ["9M"], solarbeam: ["8M"], - spite: ["8L1", "7T"], - storedpower: ["8M"], - substitute: ["8M", "8V", "7M"], + spite: ["9M", "9L1", "8L1", "7T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "8V", "7M"], swagger: ["7M"], - swift: ["8M"], + swift: ["9M", "8M"], tackle: ["8V"], tailslap: ["8M"], - tailwhip: ["8L1", "8V"], + tailwhip: ["9L1", "8L1", "8V"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["8V", "7M"], - tripleaxel: ["8T"], - weatherball: ["8M"], + tripleaxel: ["9M", "8T"], + weatherball: ["9M", "8M"], wonderroom: ["8M", "7T"], - zenheadbutt: ["8M", "7T"], + zenheadbutt: ["9M", "8M", "7T"], }, }, igglybuff: { learnset: { + alluringvoice: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], @@ -5385,13 +5588,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dig: ["9M", "8M", "6M", "5M", "4M", "3M"], disable: ["9L16", "8L16"], disarmingvoice: ["9M", "9L12", "8L12"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M", "8M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], echoedvoice: ["7M", "6M", "5M"], encore: ["9M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], faketears: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], @@ -5402,7 +5605,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + gravity: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], headbutt: ["7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], healpulse: ["9E", "8E", "7E", "6E"], @@ -5421,14 +5624,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], perishsong: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], playrough: ["9M", "8M"], pound: ["9L1", "8L1", "7L5", "7V", "6L5", "5L9", "4L9", "3L9"], present: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], punishment: ["7E", "6E", "5E"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], @@ -5467,11 +5670,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { zapcannon: ["7V"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["sing", "charm", "defensecurl", "tickle"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["sing", "charm", "defensecurl", "tickle"], pokeball: "pokeball", emeraldEventEgg: true}, ], }, jigglypuff: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], amnesia: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -5500,7 +5704,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], disable: ["9L1", "8L1", "8V", "7L14", "7V", "6L13", "5L13", "4L13", "3L14"], disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], - doubleedge: ["9L44", "8L44", "8V", "7L45", "7V", "6L49", "5L53", "4L49", "3T", "3L49"], + doubleedge: ["9M", "9L44", "8L44", "8V", "7L45", "7V", "6L49", "5L53", "4L49", "3T", "3L49"], doubleslap: ["8V", "7L17", "7V", "6L18", "5L25", "4L21", "3L24"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M", "8M"], @@ -5509,7 +5713,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dynamicpunch: ["7V", "3T"], echoedvoice: ["9L4", "8L4", "7M", "6M", "5M"], encore: ["9M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "7V", "4M", "3T"], energyball: ["9M"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -5519,11 +5723,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["9L32", "8M", "8L32", "7M", "7L35", "6M", "6L37", "5M", "5L37", "4M", "4L33"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L32", "8M", "8L32", "7M", "7L35", "6M", "6L37", "5M", "5L37", "4M", "4L33"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], @@ -5534,7 +5738,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icespinner: ["9M"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], incinerate: ["6M", "5M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lastresort: ["7T", "6T", "5T", "4T"], lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], magicalleaf: ["9M"], @@ -5543,20 +5747,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megapunch: ["8M", "7V", "3T"], metronome: ["9M"], mimic: ["9L28", "8L28", "8V", "7L38", "7V", "6L37", "5L45", "4L41", "3T", "3L39"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], mudslap: ["7V", "4T", "3T"], nastyplot: ["9M"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], playnice: ["7L9", "6L8"], playrough: ["9M", "8M", "8L40", "8V"], pound: ["9L1", "8L1", "8V", "7L5", "7V", "6L5", "5L9", "4L9", "3L9"], poweruppunch: ["6M"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], psyshock: ["9M"], psywave: ["7V"], rage: ["7V"], @@ -5610,7 +5815,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], triattack: ["8M", "8V", "7V"], - uproar: ["8M"], + uproar: ["9M", "8M"], wakeupslap: ["7L27", "6L28", "5L41", "4L37"], watergun: ["7V"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], @@ -5627,6 +5832,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, wigglytuff: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], amnesia: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -5655,7 +5861,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], disable: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], disarmingvoice: ["9M", "9L1", "8L1"], - doubleedge: ["9L1", "8L1", "7L1", "7V", "6L1", "3T"], + doubleedge: ["9M", "9L1", "8L1", "7L1", "7V", "6L1", "3T"], doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M", "8M"], @@ -5664,10 +5870,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dynamicpunch: ["7V", "3T"], echoedvoice: ["9L1", "8L1", "7M", "6M", "5M"], encore: ["9M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "7V", "4M", "3T"], energyball: ["9M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], faketears: ["9M", "8M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -5676,12 +5882,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], @@ -5693,7 +5899,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icespinner: ["9M"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], incinerate: ["6M", "5M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T", "4T"], lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -5705,19 +5911,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { metronome: ["9M"], mimic: ["9L1", "8L1", "7V", "3T"], minimize: ["8V"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], mudslap: ["7V", "4T", "3T"], nastyplot: ["9M"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], playrough: ["9M", "9L5", "8M", "8L1", "8V", "7L1", "6L1"], pound: ["9L1", "8L1", "8V"], poweruppunch: ["6M"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], psyshock: ["9M"], psywave: ["7V"], rage: ["7V"], @@ -5771,7 +5978,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], triattack: ["8M", "8V", "7V"], - uproar: ["8M"], + uproar: ["9M", "8M"], watergun: ["7V"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], @@ -5786,20 +5993,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { zubat: { learnset: { absorb: ["8L1", "8V", "7L1"], - acrobatics: ["8M", "7M", "6M", "6L30", "5M", "5L33"], + acrobatics: ["8M", "7M", "6M", "6L30", "5M", "5L30"], aerialace: ["7M", "6M", "5M", "4M", "3M"], agility: ["8M"], aircutter: ["8L25", "7L19", "6L19", "5L25", "4T", "4L25", "3L31"], airslash: ["8M", "8L50", "8V", "7L41", "6L41", "5L45", "4L41"], assurance: ["8M"], - astonish: ["8L5", "7L7", "6L7", "5L9", "4L9", "3L6"], + astonish: ["8L5", "7L7", "6L7", "5L8", "4L9", "3L6"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bite: ["8L30", "8V", "7L11", "7V", "6L11", "5L13", "4L13", "3L16"], + bite: ["8L30", "8V", "7L11", "7V", "6L11", "5L12", "4L13", "3L16"], bravebird: ["8M", "7E", "6E", "5E", "4E"], captivate: ["4M"], confide: ["7M", "6M"], - confuseray: ["8L45", "8V", "7L17", "7V", "6L17", "5L21", "4L21", "3L26"], + confuseray: ["8L45", "8V", "7L17", "7V", "6L17", "5L19", "4L21", "3L26"], crunch: ["8M"], curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], defog: ["8E", "7T", "7E", "6E", "5E", "4M"], @@ -5850,9 +6057,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], superfang: ["7T", "6T", "5T", "5D", "4T"], - supersonic: ["8L1", "8V", "7L5", "7V", "6L4", "5L5", "5D", "4L5", "3L6"], + supersonic: ["8L1", "8V", "7L5", "7V", "6L4", "5L4", "5D", "4L5", "3L6"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "8V", "7L23", "7V", "6L23", "5L24", "4T", "3T"], + swift: ["8M", "8V", "7L23", "7V", "6L23", "5L23", "4T", "3T"], tailwind: ["7T", "6T", "5T", "4T"], takedown: ["7V"], taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -5865,7 +6072,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { venomdrench: ["8M", "7E", "6E"], venoshock: ["8M", "8L40", "7M", "7L37", "6M", "6L37", "5M"], whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - wingattack: ["8E", "8V", "7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + wingattack: ["8E", "8V", "7L13", "7V", "6L13", "5L15", "4L17", "3L21"], zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], }, encounters: [ @@ -5876,20 +6083,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { golbat: { learnset: { absorb: ["8L1", "8V", "7L1"], - acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L39"], + acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L33"], aerialace: ["7M", "6M", "5M", "4M", "3M"], agility: ["8M"], aircutter: ["8L27", "7L19", "6L19", "5L27", "4T", "4L27", "3L35"], - airslash: ["8M", "8L62", "8V", "7L48", "6L48", "5L57", "4L51"], + airslash: ["8M", "8L62", "8V", "7L48", "6L48", "5L52", "4L51"], assurance: ["8M"], astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bite: ["8L34", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L16"], + bite: ["8L34", "8V", "7L1", "7V", "6L1", "5L12", "4L13", "3L16"], bravebird: ["8M"], captivate: ["4M"], confide: ["7M", "6M"], - confuseray: ["8L55", "8V", "7L17", "7V", "6L17", "5L21", "4L21", "3L28"], + confuseray: ["8L55", "8V", "7L17", "7V", "6L17", "5L19", "4L21", "3L28"], crunch: ["8M", "8V"], curse: ["7V"], defog: ["7T", "4M"], @@ -5903,7 +6110,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - haze: ["8L41", "8V", "7L40", "7V", "6L40", "5L51", "4L45", "3L56"], + haze: ["8L41", "8V", "7L40", "7V", "6L40", "5L47", "4L45", "3L56"], headbutt: ["8V"], heatwave: ["8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -5917,7 +6124,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ominouswind: ["4T"], payback: ["8M", "7M", "6M", "5M", "4M"], pluck: ["5M", "4M"], - poisonfang: ["8L15", "7L27", "6L27", "5L45", "4L39", "3L49"], + poisonfang: ["8L15", "7L27", "6L27", "5L42", "4L39", "3L49"], protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], quickattack: ["8V"], quickguard: ["8L20", "7L51", "6L51"], @@ -5954,7 +6161,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { venomdrench: ["8M"], venoshock: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M"], whirlwind: ["8V", "7V"], - wingattack: ["8V", "7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + wingattack: ["8V", "7L13", "7V", "6L13", "5L15", "4L17", "3L21"], zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], }, encounters: [ @@ -5968,19 +6175,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crobat: { learnset: { absorb: ["8L1", "7L1"], - acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L39"], + acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L33"], aerialace: ["7M", "6M", "5M", "4M", "3M"], agility: ["8M"], aircutter: ["8L27", "7L19", "6L19", "5L27", "4T", "4L27", "3L35"], - airslash: ["8M", "8L62", "7L48", "7S1", "6L48", "5L57", "4L51", "4S0"], + airslash: ["8M", "8L62", "7L48", "7S1", "6L48", "5L52", "4L51", "4S0"], assurance: ["8M"], astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bite: ["8L34", "7L1", "7V", "6L1", "5L13", "4L13", "3L16"], + bite: ["8L34", "7L1", "7V", "6L1", "5L12", "4L13", "3L16"], bravebird: ["8M"], captivate: ["4M"], confide: ["7M", "6M"], - confuseray: ["8L55", "7L17", "7V", "6L17", "5L21", "4L21", "3L28"], + confuseray: ["8L55", "7L17", "7V", "6L17", "5L19", "4L21", "3L28"], crosspoison: ["8M", "8L0", "7L1", "6L1", "5L1", "4L1"], crunch: ["8M"], curse: ["7V"], @@ -5996,7 +6203,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - haze: ["8L41", "7L40", "7V", "6L40", "5L51", "4L45", "3L56"], + haze: ["8L41", "7L40", "7V", "6L40", "5L47", "4L45", "3L56"], heatwave: ["8M", "7T", "6T", "5T", "4T", "4S0"], hex: ["8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -6010,7 +6217,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ominouswind: ["4T"], payback: ["8M", "7M", "6M", "5M", "4M"], pluck: ["5M", "4M"], - poisonfang: ["8L15", "7L27", "6L27", "5L45", "4L39", "3L49"], + poisonfang: ["8L15", "7L27", "6L27", "5L42", "4L39", "3L49"], protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], quickguard: ["8L20", "7L51", "6L51"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -6043,7 +6250,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { uturn: ["8M", "7M", "6M", "5M", "4M"], venomdrench: ["8M"], venoshock: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M"], - wingattack: ["7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + wingattack: ["7L13", "7V", "6L13", "5L15", "4L17", "3L21"], xscissor: ["8M", "7M", "6M", "5M", "4M"], zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], }, @@ -6054,73 +6261,79 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, oddish: { learnset: { - absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], - acid: ["8L4", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L23", "3S0"], - afteryou: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + absorb: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + acid: ["9L4", "8L4", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L23", "3S0"], + acidspray: ["9M"], + afteryou: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bulletseed: ["8M", "4M", "3M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], - charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + charm: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], confide: ["7M", "6M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], dazzlinggleam: ["8M", "8V", "7M", "6M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gastroacid: ["7T", "6T", "5T", "4T"], - gigadrain: ["8M", "8L20", "7T", "7L31", "7V", "6T", "6L31", "5T", "5L37", "5D", "4M", "4L37", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M", "8L32", "7L47", "6L45"], - growth: ["8L1", "8V", "7L1"], + gigadrain: ["9M", "9L20", "8M", "8L20", "7T", "7L31", "7V", "6T", "6L31", "5T", "5L37", "5D", "4M", "4L37", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "9L32", "8M", "8L32", "7L47", "6L45"], + growth: ["9L1", "8L1", "8V", "7L1"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], - ingrain: ["8E", "7E", "6E", "5E", "4E", "3E"], - leechseed: ["8E", "3S1"], + ingrain: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + leafstorm: ["9M"], + leechseed: ["9E", "8E", "3S1"], luckychant: ["7L23", "6L23", "5L25", "4L25"], - megadrain: ["8L12", "8V", "7L19", "7V", "6L19", "5L21", "4L21"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "8V", "7L19", "7V", "6L19", "5L21", "4L21"], mimic: ["7V", "3T"], - moonblast: ["8L28", "8V", "7L43", "6L43"], - moonlight: ["8L36", "7L27", "7V", "6L27", "5L33", "4L33", "3L32"], + moonblast: ["9L28", "8L28", "8V", "7L43", "6L43"], + moonlight: ["9L36", "8L36", "7L27", "7V", "6L27", "5L33", "4L33", "3L32"], naturalgift: ["7L39", "6L29", "5L29", "4M", "4L29"], naturepower: ["8E", "7M", "7E", "6M", "6E", "5E"], - petaldance: ["8L40", "7L51", "7V", "6L41", "5L41", "4L41", "3L39"], - poisonpowder: ["8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L14", "3S0"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + petaldance: ["9L40", "8L40", "7L51", "7V", "6L41", "5L41", "4L41", "3L39"], + poisonpowder: ["9L14", "8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L14", "3S0"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - razorleaf: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + razorleaf: ["9E", "8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], - sleeppowder: ["8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L18", "8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - strengthsap: ["8E", "7E"], - stunspore: ["8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16", "3S0"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + strengthsap: ["9E", "8E", "7E"], + stunspore: ["9L16", "8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16", "3S0"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["8L8", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L7"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], - synthesis: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + sweetscent: ["9L8", "8L8", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L7"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + synthesis: ["9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], takedown: ["7V"], - teeterdance: ["8E", "7E", "6E", "5E", "5D", "4E"], - tickle: ["8E", "7E", "6E", "5E", "4E"], - toxic: ["8L24", "8V", "7M", "7L35", "7V", "6M", "6L35", "5M", "4M", "3M"], - venoshock: ["8M", "7M", "6M", "5M"], + teeterdance: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E"], + toxic: ["9M", "9L24", "8L24", "8V", "7M", "7L35", "7V", "6M", "6L35", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], worryseed: ["7T", "6T", "5T", "4T"], }, eventData: [ @@ -6133,14 +6346,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, gloom: { learnset: { - absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - acid: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L24", "3S0"], + absorb: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + acid: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L24", "3S0"], + acidspray: ["9M"], afteryou: ["7T", "6T", "5T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bulletseed: ["8M", "4M", "3M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], - charm: ["8M"], + charm: ["9M", "8M"], confide: ["7M", "6M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], @@ -6148,55 +6362,61 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["8M", "7T", "6T", "5T", "4M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gastroacid: ["7T", "6T", "5T", "4T"], - gigadrain: ["8M", "8L20", "7T", "7L34", "7V", "6T", "6L34", "5T", "5L47", "4M", "4L47", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M", "8L38", "7L54", "6L54"], - growth: ["8L1", "8V", "7L1"], + gigadrain: ["9M", "9L20", "8M", "8L20", "7T", "7L34", "7V", "6T", "6L34", "5T", "5L47", "4M", "4L47", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "9L38", "8M", "8L38", "7L54", "6L54"], + growth: ["9L1", "8L1", "8V", "7L1"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], + leafstorm: ["9M"], luckychant: ["7L24", "6L24", "5L29", "4L29"], - megadrain: ["8L12", "8V", "7L19", "7V", "6L19", "5L23", "4L23"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "8V", "7L19", "7V", "6L19", "5L23", "4L23"], mimic: ["7V", "3T"], - moonblast: ["8L32", "8V"], - moonlight: ["8L44", "7L29", "7V", "6L29", "5L41", "4L41", "3L35", "3S0"], + moonblast: ["9L32", "8L32", "8V"], + moonlight: ["9L44", "8L44", "7L29", "7V", "6L29", "5L41", "4L41", "3L35", "3S0"], naturalgift: ["7L44", "6L35", "5L35", "4M", "4L35"], naturepower: ["7M", "6M"], - petalblizzard: ["7L49", "6L49"], - petaldance: ["8L50", "7L59", "7V", "6L53", "5L53", "4L53", "3L44", "3S0"], - poisonpowder: ["8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L1"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + petalblizzard: ["9M", "7L49", "6L49"], + petaldance: ["9L50", "8L50", "7L59", "7V", "6L53", "5L53", "4L53", "3L44", "3S0"], + poisonpowder: ["9L14", "8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L1"], + pollenpuff: ["9M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], razorleaf: ["8V"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], - sleeppowder: ["8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L18", "8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - stunspore: ["8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stunspore: ["9L16", "8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], takedown: ["7V"], - toxic: ["8L26", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "4M", "3M"], - venoshock: ["8M", "7M", "6M", "5M"], + terablast: ["9M"], + toxic: ["9M", "9L26", "8L26", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], worryseed: ["7T", "6T", "5T", "4T"], }, eventData: [ @@ -6210,150 +6430,167 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, vileplume: { learnset: { - absorb: ["8L1", "8V", "7V", "3L1"], - acid: ["8L1", "8V", "7V"], + absorb: ["9L1", "8L1", "8V", "7V", "3L1"], + acid: ["9L1", "8L1", "8V", "7V"], + acidspray: ["9M"], afteryou: ["7T", "6T", "5T"], aromatherapy: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - bulletseed: ["8M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], - charm: ["8M"], + charm: ["9M", "8M"], confide: ["7M", "6M"], corrosivegas: ["8T"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - dazzlinggleam: ["8M", "8V", "7M", "6M"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["8M", "7T", "6T", "5T", "4M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gastroacid: ["7T", "6T", "5T", "4T"], - gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M", "8L1"], - growth: ["8L1", "8V"], + gigadrain: ["9M", "9L1", "8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "9L1", "8M", "8L1"], + growth: ["9L1", "8L1", "8V"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], - megadrain: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], mimic: ["7V", "3T"], - moonblast: ["8L1"], - moonlight: ["8L1"], + moonblast: ["9L1", "8L1"], + moonlight: ["9L1", "8L1"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - petalblizzard: ["8L0", "7L49", "6L49"], - petaldance: ["8L1", "8V", "7L59", "7V", "6L53", "5L53", "4L53", "3L44"], - poisonpowder: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], - pollenpuff: ["8M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + petalblizzard: ["9M", "9L0", "8L0", "7L49", "6L49"], + petaldance: ["9L1", "8L1", "8V", "7L59", "7V", "6L53", "5L53", "4L53", "3L44"], + poisonpowder: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], - sleeppowder: ["8L1", "7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L1", "8L1", "7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M", "8M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8V", "7M", "7L69", "7V", "6M", "6L64", "5M", "5L65", "4M", "4L65", "3M"], - stunspore: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "8V", "7M", "7L69", "7V", "6M", "6L64", "5M", "5L65", "4M", "4L65", "3M"], + solarblade: ["9M"], + stunspore: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["8L1", "7V"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L1", "8L1", "7V"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], takedown: ["7V"], - toxic: ["8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["8M", "7M", "6M", "5M"], + terablast: ["9M"], + toxic: ["9M", "9L1", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["9M"], worryseed: ["7T", "6T", "5T", "4T"], }, }, bellossom: { learnset: { - absorb: ["8L1", "7V", "3L1"], - acid: ["8L1"], + absorb: ["9L1", "8L1", "7V", "3L1"], + acid: ["9L1", "8L1"], + acidspray: ["9M"], afteryou: ["7T", "6T", "5T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["8M"], - bulletseed: ["8M", "4M", "3M"], + batonpass: ["9M", "8M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], - charm: ["8M"], + charm: ["9M", "8M"], confide: ["7M", "6M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - dazzlinggleam: ["8M", "7M", "6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gastroacid: ["7T", "6T", "5T", "4T"], - gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M", "8L1"], - growth: ["8L1"], - helpinghand: ["8M"], + gigadrain: ["9M", "9L1", "8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "9L1", "8M", "8L1"], + growth: ["9L1", "8L1"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], laserfocus: ["7T"], leafblade: ["8M", "7L1", "6L1", "5L1", "4L1"], - leafstorm: ["8M", "7L1", "6L1", "5L53", "4L53"], - magicalleaf: ["8M", "7L1", "6L23", "5L23", "4L23", "3L1"], - megadrain: ["8L1", "7L1", "6L1", "5L1", "4L1"], + leafstorm: ["9M", "8M", "7L1", "6L1", "5L53", "4L53"], + magicalleaf: ["9M", "8M", "7L1", "6L23", "5L23", "4L23", "3L1"], + megadrain: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], mimic: ["3T"], - moonblast: ["8L1"], - moonlight: ["8L1"], + moonblast: ["9L1", "8L1"], + moonlight: ["9L1", "8L1"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - petalblizzard: ["8L0", "7L49", "6L49"], - petaldance: ["8L1", "7L59", "7V", "3L44"], - playrough: ["8M"], - poisonpowder: ["8L1"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - quiverdance: ["8L1", "7L39"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + petalblizzard: ["9M", "9L0", "8L0", "7L49", "6L49"], + petaldance: ["9L1", "8L1", "7L59", "7V", "3L44"], + playrough: ["9M", "8M"], + poisonpowder: ["9L1", "8L1"], + pollenpuff: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quiverdance: ["9L1", "8L1", "7L39"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], - sleeppowder: ["8L1"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L1", "8L1"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3L55"], - stunspore: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M", "3L55"], + solarblade: ["9M"], + stunspore: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], - toxic: ["8L1", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], - venoshock: ["8M", "7M", "6M", "5M"], + terablast: ["9M"], + toxic: ["9M", "9L1", "8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + tripleaxel: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["9M"], worryseed: ["7T", "6T", "5T", "4T"], }, }, @@ -6549,7 +6786,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], batonpass: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], bide: ["7V"], - bugbite: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbite: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], bugbuzz: ["9M", "9L25"], captivate: ["4M"], confide: ["7M", "6M"], @@ -6559,6 +6796,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], energyball: ["9M"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -6570,6 +6808,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], leechlife: ["9M", "9L35", "8V", "7M", "7L35", "7V", "6L17", "5L17", "4L17", "3L25"], + lunge: ["9M"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], morningsun: ["9E", "7E", "6E", "5E", "4E"], @@ -6581,6 +6820,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L17", "8V", "7L17", "7V", "6L25", "5L25", "4L25", "3L33"], psychic: ["9M", "9L47", "8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L41"], + psychicnoise: ["9M"], psywave: ["7V"], rage: ["7V"], ragepowder: ["9E", "7E", "6E", "5E"], @@ -6592,6 +6832,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], signalbeam: ["7T", "7L25", "7E", "6T", "6L35", "6E", "5T", "5L35", "5E", "4T", "4L35", "4E", "3E"], skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + skittersmack: ["9M"], sleeppowder: ["9L29", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L36"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -6610,7 +6851,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "7V"], terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M", "9E", "7E", "6E", "5E", "4E"], venoshock: ["9M", "9E", "7M", "6M", "5M"], zenheadbutt: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], @@ -6630,7 +6871,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], batonpass: ["9M"], bide: ["7V"], - bugbite: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], bugbuzz: ["9M", "9L25", "8V", "7L1", "6L1", "5L59", "4L59"], captivate: ["4M"], confide: ["7M", "6M"], @@ -6639,9 +6880,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7V"], defog: ["7T", "4M"], disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["8V"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -6656,6 +6898,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], leechlife: ["9M", "9L37", "8V", "7M", "7L37", "7V", "6L17", "5L17", "4L17", "3L25"], + lunge: ["9M"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], naturalgift: ["4M"], @@ -6667,6 +6910,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L17", "8V", "7L17", "7V", "6L25", "5L25", "4L25", "3L36"], psychic: ["9M", "9L55", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L55", "3M", "3L52", "3S0"], + psychicnoise: ["9M"], psywave: ["7V"], quiverdance: ["9L1", "8V", "7L1", "6L1", "5L63"], rage: ["7V"], @@ -6682,9 +6926,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T", "7L25", "6T", "6L37", "5T", "5L37", "4T", "4L37"], silverwind: ["7L1", "6L1", "5L1", "4M", "4L1", "3L1", "3S0"], skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["9M"], sleeppowder: ["9L29", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L42"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], stringshot: ["4T"], @@ -6702,7 +6948,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { teleport: ["8V", "7V"], terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M"], twister: ["4T"], uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], @@ -6736,14 +6982,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], charm: ["9M"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], dig: ["9M", "9L32", "8M", "8L32", "8V", "7L31", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L18", "3M", "3L17"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthpower: ["9M", "9L36", "8M", "8L36", "7T", "7L28", "6T", "6L29", "5T", "5L29", "4T", "4L26"], earthquake: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L39", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L37", "3M", "3L41"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], @@ -6777,7 +7024,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], sandstorm: ["9M", "9L28", "8M", "8L28", "7M", "6M", "5M", "4M"], - scorchingsands: ["8T"], + sandtomb: ["9M"], + scorchingsands: ["9M", "8T"], scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], secretpower: ["6M", "4M", "3M"], @@ -6785,6 +7033,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9L24", "8L24", "8V", "7L35", "7V", "6L37", "5L37", "4L34", "3L33"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + smackdown: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "5D", "4M"], stompingtantrum: ["9M", "8M", "7T"], @@ -6797,8 +7046,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "7V"], terablast: ["9M"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7E", "6E", "5T", "5E", "4E", "3E"], + uproar: ["9M", "8M", "7E", "6E", "5T", "5E", "4E", "3E"], workup: ["8M"], }, encounters: [ @@ -6844,7 +7094,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magnitude: ["7L14"], memento: ["9E", "8E", "7E"], metalclaw: ["9M", "9L1", "8L1", "7L1", "7S0"], - metalsound: ["9E", "8E", "7E"], + metalsound: ["9M", "9E", "8E", "7E"], mudbomb: ["7L25"], mudshot: ["9M"], mudslap: ["9M", "9L12", "8L12", "7L10", "7S0"], @@ -6859,14 +7109,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M"], sandattack: ["9L1", "8L1", "8V", "7L1"], sandstorm: ["9M", "9L28", "8M", "8L28", "7M"], + sandtomb: ["9M"], scaryface: ["9M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], scratch: ["8V"], screech: ["8M"], shadowclaw: ["9M", "8M", "7M"], slash: ["8V"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M", "8V", "7M"], + smackdown: ["9M"], snore: ["8M", "7T"], stealthrock: ["9M", "8V", "7T"], steelbeam: ["9M", "8T"], @@ -6904,14 +7156,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], charm: ["9M", "3S0"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], dig: ["9M", "9L36", "8M", "8L36", "8V", "7L35", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L18", "3M", "3L17"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthpower: ["9M", "9L42", "8M", "8L42", "7T", "7L30", "6T", "6L33", "5T", "5L33", "4T", "4L28"], earthquake: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L47", "7V", "6M", "6L50", "5M", "5L50", "4M", "4L45", "3M", "3L51", "3S0"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fissure: ["9L54", "8L54", "8V", "7L53", "7V", "6L57", "5L57", "4L50", "3L64"], @@ -6921,6 +7174,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], highhorsepower: ["8M"], honeclaws: ["6M", "5M"], @@ -6945,9 +7199,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], sandstorm: ["9M", "9L30", "8M", "8L30", "7M", "6M", "5M", "4M", "3S0"], - sandtomb: ["9L0", "8M", "8L0", "7L1", "6L26", "5L26", "4L26", "3L26"], + sandtomb: ["9M", "9L0", "8M", "8L0", "7L1", "6L26", "5L26", "4L26", "3L26"], scaryface: ["9M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], screech: ["8M", "8V"], secretpower: ["6M", "4M", "3M"], @@ -6955,7 +7209,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9L24", "8L24", "8V", "7L41", "7V", "6L45", "5L45", "4L40", "3L38"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], stompingtantrum: ["9M", "8M", "7T"], @@ -6968,9 +7223,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "7V"], terablast: ["9M"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], triattack: ["9L1", "8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - uproar: ["8M", "5T"], + uproar: ["9M", "8M", "5T"], workup: ["8M"], }, eventData: [ @@ -6995,11 +7251,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18"], charm: ["9M"], confide: ["7M"], + curse: ["9M"], dig: ["9M", "9L36", "8M", "8L36", "8V", "7L35"], + doubleedge: ["9M"], doubleteam: ["7M"], earthpower: ["9M", "9L42", "8M", "8L42", "7T", "7L30"], earthquake: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L47"], echoedvoice: ["7M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "8V", "7M"], fissure: ["9L54", "8L54", "8V", "7L53"], @@ -7018,6 +7277,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ironhead: ["9M", "9L24", "8M", "8L24", "7T", "7L41"], magnitude: ["7L14"], metalclaw: ["9M", "9L1", "8L1", "7L1"], + metalsound: ["9M"], mudbomb: ["7L25"], mudshot: ["9M"], mudslap: ["9M", "9L12", "8L12", "7L10"], @@ -7033,15 +7293,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M"], sandattack: ["9L1", "8L1", "8V", "7L1"], sandstorm: ["9M", "9L30", "8M", "8L30", "7M"], - sandtomb: ["9L0", "8M", "8L0", "7L1"], - scorchingsands: ["8T"], + sandtomb: ["9M", "9L0", "8M", "8L0", "7L1"], + scaryface: ["9M"], + scorchingsands: ["9M", "8T"], scratch: ["8V"], screech: ["8M", "8V"], shadowclaw: ["9M", "8M", "7M"], slash: ["8V"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M", "8V", "7M"], - sludgewave: ["8M", "7M"], + sludgewave: ["9M", "8M", "7M"], + smackdown: ["9M"], snore: ["8M", "7T"], stealthrock: ["9M", "8V", "7T"], steelbeam: ["9M", "8T"], @@ -7055,9 +7317,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M"], + throatchop: ["9M"], toxic: ["8V", "7M"], triattack: ["9L1", "8M", "8L1", "8V", "7L1"], - uproar: ["8M"], + uproar: ["9M", "8M"], workup: ["8M", "7M"], }, }, @@ -7084,10 +7347,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { defensecurl: ["7V", "3T"], detect: ["7V"], dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fakeout: ["9L1", "8L1", "8V", "7L9", "6L9", "6S7", "5L9", "4L9", "4S4", "4S5", "3L43"], @@ -7111,8 +7375,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], lastresort: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], metalclaw: ["9M"], mimic: ["7V", "3T"], @@ -7122,13 +7386,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["7V", "3T"], nightslash: ["7L49", "6L49", "5L49", "4L49"], odorsleuth: ["7E", "6E", "5E", "4E"], + painsplit: ["9M"], payback: ["8M", "7M", "6M", "5M", "4M"], payday: ["9L12", "8M", "8L12", "8V", "7L30", "7V", "6L30", "5L30", "4L30", "4S5", "3L18", "3S3"], petaldance: ["3S0"], playrough: ["9M", "9L44", "8M", "8L44", "8V"], powergem: ["9M"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], punishment: ["7E", "6E", "5E", "4E"], rage: ["7V"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -7150,7 +7415,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M"], snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "5S6", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + spite: ["9M", "9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T", "3L45"], @@ -7160,7 +7425,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderwave: ["9M"], @@ -7205,12 +7470,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M"], confuseray: ["9M"], covet: ["9E", "8E", "7T", "7E"], + curse: ["9M"], darkpulse: ["9M", "8M", "8V", "7M", "7L55"], dig: ["9M", "8M"], + doubleedge: ["9M"], doubleteam: ["7M"], dreameater: ["8V", "7M"], echoedvoice: ["7M"], embargo: ["7M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "8V", "7M"], fakeout: ["9L1", "8L1", "8V", "7L9"], @@ -7231,8 +7499,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypnosis: ["9E", "8E", "7E"], icywind: ["9M", "8M", "7T"], irontail: ["8M", "8V", "7T"], - knockoff: ["7T"], - lashout: ["8T"], + knockoff: ["9M", "7T"], + lashout: ["9M", "8T"], lastresort: ["7T"], metalclaw: ["9M"], nastyplot: ["9M", "9L40", "8M", "8L40", "8V", "7L38"], @@ -7243,7 +7511,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { playrough: ["9M", "9L44", "8M", "8L44", "8V"], powergem: ["9M"], protect: ["9M", "8M", "8V", "7M"], - psychup: ["7M"], + psychup: ["9M", "7M"], punishment: ["7E"], quash: ["7M"], raindance: ["9M", "8M", "7M"], @@ -7262,7 +7530,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M"], snatch: ["7T", "7E"], snore: ["8M", "7T"], - spite: ["9E", "8E", "7T", "7E"], + spite: ["9M", "9E", "8E", "7T", "7E"], substitute: ["9M", "8M", "8V", "7M"], sunnyday: ["9M", "8M", "7M"], swagger: ["7M"], @@ -7271,7 +7539,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25"], terablast: ["9M"], thief: ["9M", "8M", "7M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunder: ["9M", "8M", "8V", "7M"], thunderbolt: ["9M", "8M", "8V", "7M"], thunderwave: ["9M"], @@ -7295,10 +7563,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { charm: ["9M"], covet: ["9E", "8E"], crunch: ["9M", "8M"], - curse: ["9E", "8E"], + curse: ["9M", "9E", "8E"], darkpulse: ["9M", "8M"], dig: ["9M", "8M"], - doubleedge: ["9E", "8E"], + doubleedge: ["9M", "9E", "8E"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], fakeout: ["9L1", "8L1", "8S0"], @@ -7311,16 +7580,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furyswipes: ["9L29", "8L29"], growl: ["9L1", "8L1", "8S0"], gunkshot: ["9M", "8M"], - gyroball: ["8M"], + gyroball: ["9M", "8M"], helpinghand: ["9M"], honeclaws: ["9L4", "8L4", "8S0"], hypervoice: ["9M", "8M"], irondefense: ["9M", "8M"], ironhead: ["9M", "8M"], irontail: ["8M"], - lashout: ["8T"], + knockoff: ["9M"], + lashout: ["9M", "8T"], metalclaw: ["9M", "9L16", "8L16"], - metalsound: ["9L40", "8L40"], + metalsound: ["9M", "9L40", "8L40"], metronome: ["9M"], nastyplot: ["9M", "8M"], nightslash: ["9E", "8E"], @@ -7340,7 +7610,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9L36", "8L36"], sleeptalk: ["9M", "8M"], snore: ["8M"], - spite: ["9E", "8E"], + spite: ["9M", "9E", "8E"], stealthrock: ["9M"], steelbeam: ["9M", "8T"], substitute: ["9M", "8M"], @@ -7352,7 +7622,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M"], thrash: ["9L44", "8L44"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunder: ["9M", "8M"], thunderbolt: ["9M", "8M"], trailblaze: ["9M"], @@ -7387,11 +7657,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { defensecurl: ["7V", "3T"], detect: ["7V"], dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], echoedvoice: ["7M", "6M", "5M"], embargo: ["7M", "6M", "5M", "4M"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fakeout: ["9L1", "8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L55"], @@ -7415,8 +7686,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypnosis: ["8V"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], lastresort: ["7T", "6T", "5T", "4T"], metalclaw: ["9M"], mimic: ["7V", "3T"], @@ -7425,18 +7696,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nightmare: ["7V", "3T"], nightslash: ["7L61", "6L61", "5L61", "4L61"], + painsplit: ["9M"], payback: ["8M", "7M", "6M", "5M", "4M"], payday: ["9L12", "8M", "8L12", "8V", "7V", "3L18"], playrough: ["9M", "9L54", "8M", "8L54", "8V", "7L1", "6L1"], powergem: ["9M", "9L0", "8M", "8L0", "7L32", "6L32", "5L32", "4L32"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], rage: ["7V"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], screech: ["9L36", "8M", "8L36", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L34"], @@ -7445,14 +7717,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], skullbash: ["7V"], slash: ["9L42", "8L42", "8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L49"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snarl: ["9M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T", "3L61"], @@ -7462,7 +7734,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderwave: ["9M"], @@ -7491,19 +7763,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { beatup: ["8M"], bite: ["9L16", "8L16", "8V", "7L1"], bodyslam: ["9M", "8M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], captivate: ["7L56"], charm: ["9M", "8M"], chillingwater: ["9M"], confide: ["7M"], confuseray: ["9M"], covet: ["7T"], + curse: ["9M"], darkpulse: ["9M", "8M", "8V", "7M", "7L69"], dig: ["9M", "8M"], + doubleedge: ["9M"], doubleteam: ["7M"], dreameater: ["8V", "7M"], echoedvoice: ["7M"], embargo: ["7M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "8V", "7M"], fakeout: ["9L1", "8L1", "8V", "7L1"], @@ -7524,8 +7799,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypnosis: ["8V"], icywind: ["9M", "8M", "7T"], irontail: ["8M", "8V", "7T"], - knockoff: ["7T"], - lashout: ["8T"], + knockoff: ["9M", "7T"], + lashout: ["9M", "8T"], lastresort: ["7T"], metalclaw: ["9M"], nastyplot: ["9M", "9L48", "8M", "8L48", "8V", "7L44"], @@ -7535,13 +7810,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { playrough: ["9M", "9L54", "8M", "8L54", "8V", "7L1"], powergem: ["9M", "9L0", "8M", "8L0", "7L32"], protect: ["9M", "8M", "8V", "7M"], - psychup: ["7M"], + psychup: ["9M", "7M"], quash: ["9L1", "8L1", "7M", "7L1"], raindance: ["9M", "8M", "7M"], rest: ["9M", "8M", "8V", "7M"], retaliate: ["8M"], return: ["7M"], - roar: ["7M"], + roar: ["9M", "7M"], round: ["8M", "7M"], scratch: ["9L1", "8L1", "8V", "7L1"], screech: ["9L36", "8M", "8L36", "8V", "7L17"], @@ -7549,13 +7824,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "8M", "8V", "7M"], shadowclaw: ["9M", "8M", "7M"], shockwave: ["7T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], slash: ["8V", "7L37"], sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9M"], snarl: ["9M", "8M", "7M"], snatch: ["7T"], snore: ["8M", "7T"], - spite: ["7T"], + spite: ["9M", "7T"], substitute: ["9M", "8M", "8V", "7M"], sunnyday: ["9M", "8M", "7M"], swagger: ["7M"], @@ -7565,7 +7841,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25"], terablast: ["9M"], thief: ["9M", "8M", "7M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunder: ["9M", "8M", "8V", "7M"], thunderbolt: ["9M", "8M", "8V", "7M"], thunderwave: ["9M"], @@ -7580,6 +7856,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, perrserker: { learnset: { + aerialace: ["9M"], amnesia: ["9M", "8M"], assurance: ["8M"], attract: ["8M"], @@ -7590,20 +7867,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], closecombat: ["9M", "8M"], crunch: ["9M", "8M"], + curse: ["9M"], darkpulse: ["9M", "8M"], dig: ["9M", "8M"], + doubleedge: ["9M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], fakeout: ["9L1", "8L1"], faketears: ["9M"], falseswipe: ["9M"], + flashcannon: ["9M"], fling: ["9M", "8M"], foulplay: ["9M", "8M"], furyswipes: ["9L31", "8L31"], gigaimpact: ["9M", "8M"], growl: ["9L1", "8L1"], gunkshot: ["9M", "8M"], - gyroball: ["8M"], + gyroball: ["9M", "8M"], heavyslam: ["9M", "8M"], helpinghand: ["9M"], honeclaws: ["9L1", "8L1"], @@ -7612,10 +7893,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "9L1", "8M", "8L1"], ironhead: ["9M", "9L0", "8M", "8L0"], irontail: ["8M"], - lashout: ["8T"], + knockoff: ["9M"], + lashout: ["9M", "8T"], metalburst: ["9L1", "8L1"], metalclaw: ["9M", "9L16", "8L16"], - metalsound: ["9L48", "8L48"], + metalsound: ["9M", "9L48", "8L48"], metronome: ["9M"], nastyplot: ["9M", "8M"], payback: ["8M"], @@ -7634,6 +7916,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9L42", "8L42"], sleeptalk: ["9M", "8M"], snore: ["8M"], + spite: ["9M"], stealthrock: ["9M"], steelbeam: ["9M", "8T"], substitute: ["9M", "8M"], @@ -7645,7 +7928,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M"], thrash: ["9L54", "8L54"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunder: ["9M", "8M"], thunderbolt: ["9M", "8M"], trailblaze: ["9M"], @@ -7658,7 +7941,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psyduck: { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], - amnesia: ["9M", "9L34", "8M", "8L34", "8V", "7L37", "6L43", "5L48", "4L44"], + amnesia: ["9M", "9L34", "8M", "8L34", "8V", "7L37", "6L43", "5L43", "4L44"], aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L29", "5T", "5L32", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], @@ -7673,37 +7956,41 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { clearsmog: ["9E", "8E", "7E", "6E"], confide: ["7M", "6M"], confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], - confusion: ["9L6", "8L6", "8V", "7L10", "7V", "6L11", "5L18", "4L18", "3L16", "3S0"], + confusion: ["9L6", "8L6", "8V", "7L10", "7V", "6L11", "5L15", "4L18", "3L16", "3S0"], counter: ["7V", "3T"], crosschop: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], curse: ["7V"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], - disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L14", "4L14", "3L10", "3S0"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L11", "4L14", "3L10", "3S0"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], encore: ["9M", "8M", "7E", "6E", "5E", "5D", "4E"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flipturn: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L27", "4L27", "3L40"], + furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L22", "4L27", "3L40"], futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydropump: ["9M", "8M", "8L36", "8V", "7L40", "7V", "6L46", "5L53", "4L48", "3L50"], + hydropump: ["9M", "8M", "8L36", "8V", "7L40", "7V", "6L46", "5L46", "4L48", "3L50"], hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], liquidation: ["9M"], lowkick: ["9M"], @@ -7713,6 +8000,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { metronome: ["9M"], mimic: ["7V", "3T"], mudbomb: ["7E", "6E", "5E", "4E"], + muddywater: ["9M"], mudshot: ["9M"], mudslap: ["7V", "4T", "3T"], mudsport: ["3S1"], @@ -7723,7 +8011,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9E", "8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3E"], - psychup: ["9L30", "8L30", "7M", "7L34", "7V", "6M", "6L39", "5M", "5L40", "4M", "4L35", "3T", "3L31"], + psychicnoise: ["9M"], + psychup: ["9M", "9L30", "8L30", "7M", "7L34", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L35", "3T", "3L31"], psyshock: ["9M", "8M", "7M", "6M", "5M"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -7735,7 +8024,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "6M", "5M"], scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], - screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L31", "4L31", "3L23", "3S0"], + screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L25", "4L31", "3L23", "3S0"], secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -7753,7 +8042,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["9M", "8M", "7V", "4T", "3T"], synchronoise: ["7E", "6E", "5E"], - tailwhip: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L5", "4L5", "3L5", "3S0", "3S1"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L5", "3L5", "3S0", "3S1"], takedown: ["9M", "7V"], taunt: ["9M"], telekinesis: ["7T", "5M"], @@ -7761,19 +8050,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], + vacuumwave: ["9M"], waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["9L3", "8L3", "8V", "7L7", "7V", "6L8", "5L9", "4L9"], - waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L22", "4M", "4L22", "3M"], + watergun: ["9L3", "8L3", "8V", "7L7", "7V", "6L8", "5L8", "4L9"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L18", "4M", "4L22", "3M"], watersport: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], - whirlpool: ["8M", "7V", "4M"], - wonderroom: ["9L39", "8M", "8L39", "7T", "7L43", "6T", "6L50", "5T", "5L57"], + whirlpool: ["9M", "8M", "7V", "4M"], + wonderroom: ["9L39", "8M", "8L39", "7T", "7L43", "6T", "6L50", "5T", "5L50"], worryseed: ["7T", "6T", "5T", "4T"], yawn: ["9E", "8E", "7E", "6E", "5E", "4E"], - zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L29", "5T", "5L44", "4T", "4L40"], + zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L29", "5T", "5L29", "4T", "4L40"], }, eventData: [ {generation: 3, level: 27, gender: "M", nature: "Lax", ivs: {hp: 31, atk: 16, def: 12, spa: 29, spd: 31, spe: 14}, abilities: ["damp"], moves: ["tailwhip", "confusion", "disable", "screech"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: 1, moves: ["watersport", "scratch", "tailwhip", "mudsport"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["watersport", "scratch", "tailwhip", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, ], encounters: [ {generation: 1, level: 15}, @@ -7782,7 +8072,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { golduck: { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], - amnesia: ["9M", "9L36", "8M", "8L36", "8V", "7L41", "6L49", "5L56", "4L50"], + amnesia: ["9M", "9L36", "8M", "8L36", "8V", "7L41", "6L49", "5L49", "4L50"], aquajet: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L32", "5T", "5L32", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -7798,40 +8088,43 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], confuseray: ["9M"], - confusion: ["9L1", "8L1", "8V", "7L10", "7V", "6L11", "5L18", "4L18", "3L16"], + confusion: ["9L1", "8L1", "8V", "7L10", "7V", "6L11", "5L15", "4L18", "3L16"], counter: ["7V", "3T"], curse: ["7V"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], - disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L14", "4L14", "3L1"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L11", "4L14", "3L1"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], encore: ["9M", "8M", "8V", "7S1"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L27", "4L27", "3L44"], - futuresight: ["8M"], + furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L22", "4L27", "3L44"], + futuresight: ["9M", "8M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydropump: ["9M", "9L40", "8M", "8L40", "8V", "7L46", "7V", "7S1", "6L54", "5L63", "4L56", "3L58"], + hydropump: ["9M", "9L40", "8M", "8L40", "8V", "7L46", "7V", "7S1", "6L54", "5L54", "4L56", "3L58"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], laserfocus: ["7T"], lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M"], liquidation: ["9M", "8M", "7T"], @@ -7842,7 +8135,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megapunch: ["8M", "7V", "3T"], metronome: ["9M"], mimic: ["7V", "3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M"], mudslap: ["7V", "4T", "3T"], nastyplot: ["9M"], @@ -7853,7 +8146,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "8V", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], psybeam: ["9M", "8V"], psychic: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], - psychup: ["9L30", "8L30", "7M", "7L36", "7V", "6M", "6L43", "5M", "5L44", "4M", "4L37", "3T", "3L31", "3S0"], + psychicnoise: ["9M"], + psychup: ["9M", "9L30", "8L30", "7M", "7L36", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L37", "3T", "3L31", "3S0"], psyshock: ["9M", "8M", "7M", "6M", "5M"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -7865,7 +8159,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "7S1", "6M", "5M"], scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L31", "4L31", "3L23"], + screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L25", "4L31", "3L23"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -7889,15 +8183,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], + vacuumwave: ["9M"], waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], - waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L22", "4M", "4L22", "3M"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L18", "4M", "4L22", "3M"], watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], - whirlpool: ["8M", "7V", "4M"], - wonderroom: ["9L45", "8M", "8L45", "7T", "7L51", "6T", "6L60", "5T", "5L69"], + whirlpool: ["9M", "8M", "7V", "4M"], + wonderroom: ["9L45", "8M", "8L45", "7T", "7L51", "6T", "6L60", "5T", "5L60"], worryseed: ["7T", "6T", "5T", "4T"], yawn: ["8V"], - zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L25", "5T", "5L50", "4T", "4L44"], + zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L25", "5T", "5L29", "4T", "4L44"], }, eventData: [ {generation: 3, level: 33, moves: ["charm", "waterfall", "psychup", "brickbreak"]}, @@ -7928,18 +8223,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], covet: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], crosschop: ["9L22", "7L22", "7V", "6L37", "5L37", "4L37", "3L31"], - curse: ["9E", "7V"], + curse: ["9M", "9E", "7V"], defensecurl: ["7V", "3T"], detect: ["7V"], dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dualchop: ["7T", "6T", "5T"], dynamicpunch: ["7V", "3T"], earthquake: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], encore: ["9M", "9E", "7E", "6E", "5E", "4E"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], finalgambit: ["9L48", "7L50", "6L53", "5L53"], @@ -7947,7 +8242,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], focusenergy: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L21"], - focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furyswipes: ["9L5", "8V", "7L5", "7V", "6L9", "5L9", "4L9", "3L16"], @@ -7959,6 +8254,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], karatechop: ["8V", "7L8", "7V", "6L13", "5L13", "4L13", "3L11"], + lashout: ["9M"], leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], lowkick: ["9M", "9L8", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1", "3L6"], lowsweep: ["9M", "7M", "6M", "5M"], @@ -8006,7 +8302,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { smackdown: ["7M", "6M", "5M"], smellingsalts: ["7E", "6E", "5E", "4E", "3E"], snore: ["7T", "7V", "6T", "3T"], - spite: ["9E", "7T", "6T", "5T", "4T"], + spite: ["9M", "9E", "7T", "6T", "5T", "4T"], stompingtantrum: ["9M", "9L40", "7T", "7L43"], stoneedge: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], @@ -8020,11 +8316,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], thrash: ["9L29", "8V", "7L33", "7V", "6L41", "5L41", "4L41", "3L46"], + throatchop: ["9M"], thunder: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], vacuumwave: ["4T"], workup: ["7M", "5M"], @@ -8051,18 +8348,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { counter: ["8V", "7V", "3T"], covet: ["7T", "6T", "5T"], crosschop: ["9L22", "7L22", "7V", "6L41", "5L41", "4L41", "3L35", "3S0"], - curse: ["7V"], + curse: ["9M", "7V"], defensecurl: ["7V", "3T"], detect: ["7V"], dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dualchop: ["7T", "6T", "5T"], dynamicpunch: ["7V", "3T"], earthquake: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], encore: ["9M", "8V"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], finalgambit: ["9L57", "7L1", "6L1", "5L63"], @@ -8070,7 +8367,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], focusblast: ["9M", "7M", "6M", "5M", "4M"], focusenergy: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L21", "3S0"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furyswipes: ["9L5", "8V", "7L5", "7V", "6L9", "5L9", "4L9", "3L16"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], @@ -8083,6 +8380,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], karatechop: ["8V", "7L8", "7V", "6L13", "5L13", "4L13", "3L11"], + lashout: ["9M"], leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], lowkick: ["9M", "9L8", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], lowsweep: ["9M", "7M", "6M", "5M"], @@ -8124,9 +8422,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M"], skullbash: ["7V"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "7V", "6T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], stealthrock: ["9M"], stompingtantrum: ["9M", "9L48", "7T", "7L48"], stoneedge: ["9M", "7M", "6M", "5M", "4M"], @@ -8141,14 +8439,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], thrash: ["9L30", "8V", "7L35", "7V", "6L47", "5L47", "4L47", "3L62"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], - vacuumwave: ["4T"], + vacuumwave: ["9M", "4T"], workup: ["7M", "5M"], }, eventData: [ @@ -8168,12 +8466,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M"], bulldoze: ["9M"], closecombat: ["9M", "9L39"], + coaching: ["9M"], counter: ["9L1"], crosschop: ["9L22"], + curse: ["9M"], dig: ["9M"], + doubleedge: ["9M"], drainpunch: ["9M"], earthquake: ["9M"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], finalgambit: ["9L57"], @@ -8181,12 +8483,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "9L1"], focusblast: ["9M"], focusenergy: ["9L1"], + focuspunch: ["9M"], furyswipes: ["9L5"], gigaimpact: ["9M"], gunkshot: ["9M"], helpinghand: ["9M"], hyperbeam: ["9M"], icepunch: ["9M"], + lashout: ["9M"], leer: ["9L1"], lowkick: ["9M", "9L8"], lowsweep: ["9M"], @@ -8212,6 +8516,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M"], shadowpunch: ["9L0"], sleeptalk: ["9M"], + smackdown: ["9M"], + spite: ["9M"], stealthrock: ["9M"], stompingtantrum: ["9M", "9L48"], stoneedge: ["9M"], @@ -8224,16 +8530,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], thrash: ["9L30"], + throatchop: ["9M"], thunder: ["9M"], thunderbolt: ["9M"], thunderpunch: ["9M"], + uproar: ["9M"], uturn: ["9M"], + vacuumwave: ["9M"], }, }, growlithe: { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["9M", "9L20", "8M", "8L20", "8V", "7L30", "7V", "6L30", "5L42", "4L39", "3L43"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L30", "7V", "6L30", "5L30", "4L39", "3L43"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], bite: ["9L8", "8L8", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S1", "3S2"], @@ -8244,10 +8553,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "8M", "7E", "6E", "5E"], confide: ["7M", "6M"], covet: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], - crunch: ["9M", "9L32", "8M", "8L32", "8V", "7L39", "7E", "7V", "6L39", "6E", "5L45", "5E", "4L42", "4E", "3E"], - curse: ["7V"], + crunch: ["9M", "9L32", "8M", "8L32", "8V", "7L39", "7E", "7V", "6L39", "6E", "5L39", "5E", "4L42", "4E", "3E"], + curse: ["9M", "7V"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], + doubleedge: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], doublekick: ["9E", "8E", "7E", "6E", "5E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["7V"], @@ -8256,27 +8565,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M", "8M", "7V", "5D", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firefang: ["9M", "9L24", "8M", "8L24", "7L21", "6L21", "5L28", "4L28"], + firefang: ["9M", "9L24", "8M", "8L24", "7L21", "6L21", "5L21", "4L28"], firespin: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], - flameburst: ["7L28", "6L28", "5L31"], + flameburst: ["7L28", "6L28", "5L28"], flamecharge: ["9M", "7M", "6M", "5M"], - flamethrower: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L39", "4M", "4L34", "3M", "3L49", "3S2"], - flamewheel: ["9L12", "8L12", "7L17", "7V", "6L17", "5L20", "4L20", "3L31", "3S0"], - flareblitz: ["9M", "9L56", "8M", "8L56", "8V", "7L45", "7E", "6L45", "6E", "5L56", "5E", "4L48", "4E"], + flamethrower: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L49", "3S2"], + flamewheel: ["9L12", "8L12", "7L17", "7V", "6L17", "5L17", "4L20", "3L31", "3S0"], + flareblitz: ["9M", "9L56", "8M", "8L56", "8V", "7L45", "7E", "6L45", "6E", "5L45", "5E", "4L48", "4E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], headbutt: ["8V", "7V", "4T"], - heatwave: ["9M", "8M", "8V", "7T", "7L41", "7E", "6T", "6L41", "6E", "5T", "5L51", "5E", "4T", "4L45", "4E", "3E"], - helpinghand: ["9M", "9L16", "8M", "8L16", "8V", "7T", "7L12", "6T", "6L12", "5T", "5L17", "4T", "4L17", "3L37"], + heatwave: ["9M", "8M", "8V", "7T", "7L41", "7E", "6T", "6L41", "6E", "5T", "5L41", "5E", "4T", "4L45", "4E", "3E"], + helpinghand: ["9M", "9L16", "8M", "8L16", "8V", "7T", "7L12", "6T", "6L12", "5T", "5L12", "4T", "4L17", "3L37"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], howl: ["9L4", "8L4", "7E", "6E", "5E", "4E", "3E"], incinerate: ["6M", "5M"], irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], - leer: ["9L1", "8L1", "8V", "7L8", "7V", "6L8", "5L9", "4L9", "3L13", "3S0"], + leer: ["9L1", "8L1", "8V", "7L8", "7V", "6L8", "5L8", "4L9", "3L13", "3S0"], mimic: ["7V", "3T"], morningsun: ["9E", "8E", "7E", "6E", "5E", "4E"], mudslap: ["4T"], naturalgift: ["4M"], - odorsleuth: ["7L10", "6L10", "5L14", "4L14", "3L19", "3S0"], + odorsleuth: ["7L10", "6L10", "5L10", "4L14", "3L19", "3S0"], outrage: ["9M", "8M", "8V", "7T", "7L43", "6T", "6L43", "5T", "5L43"], overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], playrough: ["9M", "9L48", "8M", "8L48", "8V"], @@ -8286,10 +8595,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ragingfury: ["9E"], reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - retaliate: ["9L28", "8M", "8L28", "7L32", "6M", "6L32", "5M", "5L48"], + retaliate: ["9L28", "8M", "8L28", "7L32", "6M", "6L32", "5M", "5L32"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - reversal: ["9M", "9L52", "8M", "8L52", "7L19", "6L19", "5L25", "4L25"], - roar: ["9L44", "8L44", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M", "3L1", "3S1"], + reversal: ["9M", "9L52", "8M", "8L52", "7L19", "6L19", "5L19", "4L25"], + roar: ["9M", "9L44", "8L44", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M", "3L1", "3S1"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], @@ -8304,7 +8613,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["9M", "8M", "7V", "4T", "3T"], - takedown: ["9M", "9L36", "8L36", "8V", "7L23", "7V", "6L23", "5L34", "4L31", "3L25", "3S0", "3S2"], + takedown: ["9M", "9L36", "8L36", "8V", "7L23", "7V", "6L23", "5L23", "4L31", "3L25", "3S0", "3S2"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], thrash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], @@ -8325,15 +8635,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { growlithehisui: { learnset: { agility: ["9M"], - bite: ["9L8"], + bite: ["9L8", "9S0"], bodyslam: ["9M"], closecombat: ["9M"], covet: ["9E"], crunch: ["9M", "9L32"], dig: ["9M"], - doubleedge: ["9E"], + doubleedge: ["9M", "9E"], doublekick: ["9E"], - ember: ["9L1"], + ember: ["9L1", "9S0"], endure: ["9M"], facade: ["9M"], fireblast: ["9M"], @@ -8341,12 +8651,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firespin: ["9M"], flamecharge: ["9M"], flamethrower: ["9M", "9L40"], - flamewheel: ["9L12"], + flamewheel: ["9L12", "9S0"], flareblitz: ["9M", "9L56"], headsmash: ["9E"], heatwave: ["9M"], helpinghand: ["9M", "9L16"], - howl: ["9L4"], + howl: ["9L4", "9S0"], leer: ["9L1"], morningsun: ["9E"], outrage: ["9M"], @@ -8357,24 +8667,31 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M"], retaliate: ["9L28"], reversal: ["9M", "9L52"], - roar: ["9L44"], + roar: ["9M", "9L44"], rockblast: ["9M"], rockslide: ["9M", "9L48"], rocktomb: ["9M"], sandstorm: ["9M"], scaryface: ["9M"], + scorchingsands: ["9M"], sleeptalk: ["9M"], + smackdown: ["9M"], smartstrike: ["9M"], stealthrock: ["9M"], stoneedge: ["9M"], substitute: ["9M"], sunnyday: ["9M"], takedown: ["9M", "9L36"], + temperflare: ["9M"], terablast: ["9M"], thrash: ["9E"], thunderfang: ["9M"], + wildcharge: ["9M"], willowisp: ["9M"], }, + eventData: [ + {generation: 9, level: 15, isHidden: true, nature: "Jolly", ivs: {hp: 31, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["flamewheel", "bite", "howl", "ember"], pokeball: "pokeball"}, + ], }, arcanine: { learnset: { @@ -8392,16 +8709,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], crunch: ["9M", "9L1", "8M", "8L1", "4S0"], - curse: ["7V"], + curse: ["9M", "7V"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["8V", "7V", "3T"], + doubleedge: ["9M", "8V", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["7V"], dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], dragonrage: ["7V"], ember: ["9L1", "8L1", "8V", "7V", "3L1"], endure: ["9M", "8M", "7V", "4M", "3T"], - extremespeed: ["9L0", "8L0", "7L34", "7V", "7S1", "6L34", "5L39", "4L39", "4S0", "3L49"], + extremespeed: ["9L0", "9S2", "8L0", "7L34", "7V", "7S1", "6L34", "5L34", "4L39", "4S0", "3L49"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], @@ -8409,10 +8726,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamecharge: ["9M", "7M", "6M", "5M"], flamethrower: ["9M", "9L5", "8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], flamewheel: ["9L1", "8L1", "7V"], - flareblitz: ["9M", "9L1", "8M", "8L1", "7S1", "4S0"], + flareblitz: ["9M", "9L1", "9S2", "8M", "8L1", "7S1", "4S0"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["8V", "7V", "4T"], + heatcrash: ["9M"], heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -8431,7 +8749,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { outrage: ["9M", "8M", "8V", "7T", "6T", "5T"], overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], playrough: ["9M", "9L1", "8M", "8L1", "8V"], - protect: ["9M", "8M", "8V", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + protect: ["9M", "9S2", "8M", "8V", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], psychicfangs: ["9M", "8M"], rage: ["7V"], reflect: ["8V", "7V"], @@ -8439,13 +8757,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["9L1", "8M", "8L1", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], reversal: ["9M", "9L1", "8M", "8L1"], - roar: ["9L1", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + roar: ["9M", "9L1", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "8M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], skullbash: ["7V"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], @@ -8460,16 +8778,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "7V", "4T", "3T"], takedown: ["9M", "9L1", "8L1", "7V"], teleport: ["8V", "7V"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], thunderfang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1", "4S0"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], - willowisp: ["9M", "8M", "8V", "7M", "7S1", "6M", "5M", "4M"], + willowisp: ["9M", "9S2", "8M", "8V", "7M", "7S1", "6M", "5M", "4M"], }, eventData: [ {generation: 4, level: 50, abilities: ["intimidate"], moves: ["flareblitz", "thunderfang", "crunch", "extremespeed"], pokeball: "cherishball"}, {generation: 7, level: 50, abilities: ["intimidate"], moves: ["flareblitz", "extremespeed", "willowisp", "protect"], pokeball: "cherishball"}, + {generation: 9, level: 50, shiny: true, gender: "F", nature: "Adamant", abilities: ["intimidate"], ivs: {hp: 31, atk: 31, def: 31, spa: 8, spd: 31, spe: 31}, moves: ["flareblitz", "extremespeed", "willowisp", "protect"], pokeball: "cherishball"}, ], }, arcaninehisui: { @@ -8482,6 +8802,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M"], crunch: ["9M", "9L1"], dig: ["9M"], + doubleedge: ["9M"], dragonpulse: ["9M"], ember: ["9L1"], endure: ["9M"], @@ -8495,6 +8816,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamewheel: ["9L1"], flareblitz: ["9M", "9L1"], gigaimpact: ["9M"], + heatcrash: ["9M"], heatwave: ["9M"], helpinghand: ["9M", "9L1"], howl: ["9L1"], @@ -8511,14 +8833,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M"], retaliate: ["9L1"], reversal: ["9M", "9L1"], - roar: ["9L1"], + roar: ["9M", "9L1"], rockblast: ["9M"], rockslide: ["9M", "9L1"], rockthrow: ["9L1"], rocktomb: ["9M"], sandstorm: ["9M"], scaryface: ["9M"], + scorchingsands: ["9M"], sleeptalk: ["9M"], + smackdown: ["9M"], smartstrike: ["9M"], snarl: ["9M"], solarbeam: ["9M"], @@ -8527,6 +8851,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M"], sunnyday: ["9M"], takedown: ["9M", "9L1"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M"], thunderfang: ["9M"], @@ -8536,77 +8861,84 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, poliwag: { learnset: { - amnesia: ["7V"], + amnesia: ["9M", "7V"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bellydrum: ["8L48", "7L31", "7V", "6L31", "5L31", "4L31", "3L37"], + bellydrum: ["9L48", "8L48", "7L31", "7V", "6L31", "5L31", "4L31", "3L37"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L31"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L30", "8M", "8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L31"], bubble: ["8V", "7L11", "7V", "6L11", "5L5", "4L5", "3L1", "3S0"], - bubblebeam: ["8L18", "8V", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3E"], - bulldoze: ["8M"], + bubblebeam: ["9L18", "8L18", "8V", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3E"], + bulldoze: ["9M", "8M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], curse: ["7V"], defensecurl: ["7V", "3T"], - dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["8L54", "7V", "3T"], + doubleedge: ["9M", "9L54", "8L54", "7V", "3T"], doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L19"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["8M", "8L36"], - encore: ["8M", "7E", "6E", "5E", "4E"], - endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], - endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L36", "8M", "8L36"], + encore: ["9M", "8M", "7E", "6E", "5E", "4E"], + endeavor: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + focuspunch: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["9M", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L42", "8V", "7L38", "7V", "6L38", "5L38", "4L38", "3L43"], - hypnosis: ["8L1", "8V", "7L8", "7V", "6L8", "5L8", "5D", "4L8", "3L7"], + hydropump: ["9M", "9L42", "8M", "8L42", "8V", "7L38", "7V", "6L38", "5L38", "4L38", "3L43"], + hypnosis: ["9L1", "8L1", "8V", "7L8", "7V", "6L8", "5L8", "5D", "4L8", "3L7"], iceball: ["7E", "6E", "5E", "4E", "3E"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - lowkick: ["8V"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M"], + lowkick: ["9M", "8V"], mimic: ["7V", "3T"], mindreader: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - mist: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + mist: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], mudbomb: ["7L41", "6L41", "5L41", "4L41"], - muddywater: ["8M"], - mudshot: ["8M", "8L12", "7L28", "7E", "6L28", "6E", "5L28", "5E", "4L28", "4E"], + muddywater: ["9M", "9E", "8M"], + mudshot: ["9M", "9L12", "8M", "8L12", "7L28", "7E", "6L28", "6E", "5L28", "5E", "4L28", "4E"], + mudslap: ["9M"], naturalgift: ["4M"], - pound: ["8L6", "8V"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pound: ["9L6", "8L6", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psywave: ["7V"], rage: ["7V"], - raindance: ["8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L25"], + raindance: ["9M", "9L24", "8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L25"], refresh: ["7E", "6E", "5E", "4E"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - splash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], sweetkiss: ["3S0"], - takedown: ["7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swift: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], wakeupslap: ["7L35", "6L35", "5L35", "4L35"], - waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7L5", "7V", "6L5", "5L11", "4L11", "3L13"], - waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7L5", "7V", "6L5", "5L11", "4L11", "3L13"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], watersport: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E", "3E"], - whirlpool: ["8M", "7V", "4M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "7V", "4M"], }, eventData: [ {generation: 3, level: 5, shiny: 1, moves: ["bubble", "sweetkiss"], pokeball: "pokeball"}, @@ -8618,64 +8950,69 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, poliwhirl: { learnset: { - amnesia: ["7V"], + amnesia: ["9M", "7V"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bellydrum: ["8L56", "7L37", "7V", "6L37", "5L37", "4L37", "3L43"], + bellydrum: ["9L56", "8L56", "7L37", "7V", "6L37", "5L37", "4L37", "3L43"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "8L32", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L35"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L32", "8M", "8L32", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L35"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], bubble: ["8V", "7L11", "7V", "6L11", "5L1", "4L1", "3L1"], - bubblebeam: ["8L18", "8V", "7L27", "7V", "6L27", "5L27", "4L27"], - bulldoze: ["8M", "7M", "6M", "5M"], + bubblebeam: ["9L18", "8L18", "8V", "7L27", "7V", "6L27", "5L27", "4L27"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["7V", "3T"], curse: ["7V"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["8L66", "7V", "3T"], + doubleedge: ["9M", "9L66", "8L66", "7V", "3T"], doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L19"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["8M", "8L40"], - earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - encore: ["8M"], - endeavor: ["7T", "6T", "5T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L40", "8M", "8L40"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "8M"], + endeavor: ["9M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fissure: ["7V"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L48", "8V", "7L48", "7V", "6L48", "5L48", "4L48", "3L51"], - hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - lowkick: ["8V"], + hydropump: ["9M", "9L48", "8M", "8L48", "8V", "7L48", "7V", "6L48", "5L48", "4L48", "3L51"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M"], + lowkick: ["9M", "8V"], + lowsweep: ["9M"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - metronome: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], mimic: ["7V", "3T"], mudbomb: ["7L53", "6L53", "5L53", "4L53"], - muddywater: ["8M"], - mudshot: ["8M", "8L1", "7L32", "6L32", "5L32", "4L32"], - mudslap: ["7V", "4T", "3T"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "9L1", "8M", "8L1", "7L32", "6L32", "5L32", "4L32"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], - pound: ["8L1", "8V"], + pound: ["9L1", "8L1", "8V"], poweruppunch: ["6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M"], psywave: ["7V"], rage: ["7V"], - raindance: ["8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L27"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L24", "8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L27"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], @@ -8683,22 +9020,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - takedown: ["7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swift: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], wakeupslap: ["7L43", "6L43", "5L43", "4L43"], - waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L11", "4L11", "3L1"], - waterpulse: ["7T", "6T", "4M", "3M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L11", "4L11", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], watersport: ["7L1", "6L1", "5L1", "4L1"], - whirlpool: ["8M", "7V", "4M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "7V", "4M"], }, encounters: [ {generation: 1, level: 15}, @@ -8711,108 +9051,120 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, poliwrath: { learnset: { + amnesia: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bellydrum: ["8L1"], + batonpass: ["9M"], + bellydrum: ["9L1", "8L1"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "8L1", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L1", "8M", "8L1", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], bubble: ["8V"], - bubblebeam: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1"], - bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bubblebeam: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - circlethrow: ["8L1", "7L1", "6L1", "5L53"], - closecombat: ["8M"], - coaching: ["8T"], + chillingwater: ["9M"], + circlethrow: ["9L1", "8L1", "7L1", "6L1", "5L53"], + closecombat: ["9M", "8M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], counter: ["7V", "3T"], curse: ["7V"], darkestlariat: ["8M"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["8L1", "7V", "3T"], + doubleedge: ["9M", "9L1", "8L1", "7V", "3T"], doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drainpunch: ["8M"], + drainpunch: ["9M", "8M"], dualchop: ["7T"], - dynamicpunch: ["8L1", "7L32", "7V", "6L32", "5L32", "4L43", "3T"], - earthpower: ["8M", "8L1"], - earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - encore: ["8M"], - endeavor: ["7T", "6T", "5T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["9L0", "8L1", "7L32", "7V", "6L32", "5L32", "4L43", "3T"], + earthpower: ["9M", "9L1", "8M", "8L1"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "8M"], + endeavor: ["9M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fissure: ["7V"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["8V"], + haze: ["9M", "8V"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T", "3S0"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T", "3S0"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], - hydropump: ["8M", "8L1", "3S0"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - liquidation: ["8M"], - lowsweep: ["8M", "7M", "6M", "5M"], + highhorsepower: ["9M", "8M"], + hydropump: ["9M", "9L1", "8M", "8L1", "3S0"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + knockoff: ["9M"], + liquidation: ["9M", "8M"], + lowkick: ["9M"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - metronome: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], mimic: ["7V", "3T"], mindreader: ["8L1", "7L43", "7V", "6L43", "5L43", "4L53", "3L51"], mist: ["8V"], - muddywater: ["8M"], - mudshot: ["8M", "8L1"], - mudslap: ["7V", "4T", "3T"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "9L1", "8M", "8L1"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], payback: ["8M", "7M", "6M", "5M", "4M"], - poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], - pound: ["8L1", "8V"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + pound: ["9L1", "8L1", "8V"], poweruppunch: ["6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M"], psywave: ["7V"], rage: ["7V"], - raindance: ["8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - reversal: ["8M"], + reversal: ["9M", "8M"], rockclimb: ["4M"], - rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], superpower: ["8M", "8V"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - takedown: ["7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M", "7T"], + swift: ["9M"], + takedown: ["9M", "7V"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "8M", "7T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - vacuumwave: ["4T"], - waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7V", "3L1"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["8M", "7V", "4M"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7V", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "7V", "4M"], workup: ["8M", "7M", "5M"], }, eventData: [ @@ -8821,66 +9173,72 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, politoed: { learnset: { + amnesia: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bellydrum: ["8L1"], - blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "8L1", "3T"], - bounce: ["8M", "8L0", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bubblebeam: ["8L1", "7L1", "6L1", "5L1", "4L1"], - bulldoze: ["8M", "7M", "6M", "5M"], + bellydrum: ["9L1", "8L1"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L1", "8M", "8L1", "3T"], + bounce: ["9L0", "8M", "8L0", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["3T"], curse: ["7V"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["8M", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["8L1", "3T"], + doubleedge: ["9M", "9L1", "8L1", "3T"], doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthpower: ["8M", "8L1"], - earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L1", "8M", "8L1"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8M"], - endeavor: ["7T", "6T", "5T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + encore: ["9M", "8M"], + endeavor: ["9M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["7V", "4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L1"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "8L1", "7T", "7L48", "6T", "6L48", "5T", "5L48", "4L48"], - hypnosis: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - icebeam: ["8M", "7M", "6M", "5M", "5S0", "4M", "3M"], - icepunch: ["8M", "7T", "7V", "6T", "5T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - liquidation: ["8M"], + hydropump: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L1", "8M", "8L1", "7T", "7L48", "6T", "6L48", "5T", "5L48", "4L48"], + hypnosis: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M", "8M"], + lowkick: ["9M"], + lowsweep: ["9M"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - metronome: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], mimic: ["3T"], - muddywater: ["8M"], - mudshot: ["8M", "8L1"], - mudslap: ["7V", "4T", "3T"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "9L1", "8M", "8L1"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], payback: ["8M", "7M", "6M", "5M", "4M"], - perishsong: ["8L1", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], - pound: ["8L1"], + perishsong: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + pound: ["9L1", "8L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "7V", "6M", "5M", "5S0", "4M", "3M"], - psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - raindance: ["8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "5S0", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], @@ -8888,20 +9246,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["8M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - swagger: ["8L1", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3T", "3L51"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3T", "3L51"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], uproar: ["8M"], - waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7V", "3L1"], - waterpulse: ["7T", "6T", "4M", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7V", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], }, eventData: [ {generation: 5, level: 50, gender: "M", nature: "Calm", ivs: {hp: 31, atk: 13, def: 31, spa: 5, spd: 31, spe: 5}, isHidden: true, moves: ["scald", "icebeam", "perishsong", "protect"], pokeball: "cherishball"}, @@ -9559,78 +9920,86 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, bellsprout: { learnset: { - acid: ["8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L23"], - acidspray: ["7E", "6E"], + acid: ["9L23", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L23"], + acidspray: ["9M", "7E", "6E"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], belch: ["7E", "6E"], bide: ["7V"], bind: ["7T", "6T", "5T"], - bulletseed: ["7E", "6E", "5E", "4M", "3M"], + bulletseed: ["9M", "7E", "6E", "5E", "4M", "3M"], captivate: ["4M"], - clearsmog: ["7E", "6E", "5E"], + clearsmog: ["9E", "7E", "6E", "5E"], confide: ["7M", "6M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - encore: ["7E", "7V", "6E", "5E", "4E", "3E"], - endure: ["7V", "4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gastroacid: ["7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], - gigadrain: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], - grassknot: ["7M", "6M", "5M", "4M"], - growth: ["8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L6", "3S1"], + gastroacid: ["9L35", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + gigadrain: ["9M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L7", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L6", "3S1"], headbutt: ["8V"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], - ingrain: ["7E", "6E", "5E", "4E", "3E"], - knockoff: ["7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], - leechlife: ["7E", "7V", "6E", "5E", "4E", "3E"], - magicalleaf: ["7E", "6E", "5E", "4E", "3E"], + ingrain: ["9E", "7E", "6E", "5E", "4E", "3E"], + knockoff: ["9M", "9L27", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + leafstorm: ["9M"], + leechlife: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + lunge: ["9M"], + magicalleaf: ["9M", "7E", "6E", "5E", "4E", "3E"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], naturalgift: ["7E", "6E", "5E", "4M"], naturepower: ["7M", "6M"], - poisonjab: ["8V", "7M", "7L41"], - poisonpowder: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], - powerwhip: ["7E", "6E", "5E"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonjab: ["9M", "9L41", "8V", "7M", "7L41"], + poisonpowder: ["9L15", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + pounce: ["9M"], + powerwhip: ["9L52", "7E", "6E", "5E"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - razorleaf: ["8V", "7L39", "7V", "6L39", "5L39", "4L39", "3L37"], - reflect: ["8V", "7M", "7V", "6M", "5M", "4E", "3E"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["9L39", "8V", "7L39", "7V", "6L39", "5L39", "4L39", "3L37"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "5D", "4T"], - slam: ["8V", "7L47", "7V", "6L41", "5L41", "4L41", "3L45"], - sleeppowder: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "5D", "4T"], + slam: ["9L47", "8V", "7L47", "7V", "6L41", "5L41", "4L41", "3L45"], + sleeppowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - strengthsap: ["7E"], - stunspore: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - suckerpunch: ["4T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + strengthsap: ["9E", "7E"], + stunspore: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["7L29", "7V", "6L29", "5L29", "4L29", "3L30"], - swordsdance: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], - synthesis: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + sweetscent: ["9L29", "7L29", "7V", "6L29", "5L29", "4L29", "3L30"], + swordsdance: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + synthesis: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], takedown: ["7V"], teeterdance: ["3S0"], - thief: ["7M", "6M", "5M", "4M", "3M"], - tickle: ["7E", "6E", "5E", "4E"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["7M", "6M", "5M"], - vinewhip: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], - weatherball: ["7E", "6E", "5E", "4E"], - worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - wrap: ["8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L11"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + tickle: ["9E", "7E", "6E", "5E", "4E"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + weatherball: ["9M", "7E", "6E", "5E", "4E"], + worryseed: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + wrap: ["9L11", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L11"], wringout: ["7L50", "6L47", "5L47", "4L47"], }, eventData: [ @@ -9644,69 +10013,84 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, weepinbell: { learnset: { - acid: ["8V", "7L24", "7V", "6L23", "5L23", "4L23", "3L24"], + acid: ["9L24", "8V", "7L24", "7V", "6L23", "5L23", "4L23", "3L24"], + acidspray: ["9M"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], bind: ["7T", "6T", "5T"], - bugbite: ["5T"], - bulletseed: ["4M", "3M"], + bodyslam: ["9M"], + bugbite: ["9M", "5T"], + bulletseed: ["9M", "4M", "3M"], captivate: ["4M"], confide: ["7M", "6M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gastroacid: ["7T", "7L39", "6T", "6L35", "5T", "5L35", "4T", "4L35"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - grassknot: ["7M", "6M", "5M", "4M"], - growth: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gastroacid: ["9L39", "7T", "7L39", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["8V"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], - knockoff: ["7T", "7L29", "6T", "6L27", "5T", "5L27", "4T", "4L27"], - magicalleaf: ["3S0"], + knockoff: ["9M", "9L29", "7T", "7L29", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + leafstorm: ["9M"], + leechlife: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M", "3S0"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], morningsun: ["3S0"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - poisonjab: ["8V", "7M", "7L47"], - poisonpowder: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonjab: ["9M", "9L47", "8V", "7M", "7L47"], + poisonpowder: ["9L15", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + pounce: ["9M"], + powerwhip: ["9L58"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - razorleaf: ["8V", "7L44", "7V", "6L39", "5L39", "4L39", "3L42"], - reflect: ["8V", "7M", "7V", "6M", "5M"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["9L44", "8V", "7L44", "7V", "6L39", "5L39", "4L39", "3L42"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], - slam: ["8V", "7L54", "7V", "6L41", "5L41", "4L41", "3L54"], - sleeppowder: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + slam: ["9L54", "8V", "7L54", "7V", "6L41", "5L41", "4L41", "3L54"], + sleeppowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + sludgewave: ["9M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - stunspore: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stunspore: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["7L32", "7V", "6L29", "5L29", "4L29", "3L33", "3S0"], - swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L32", "7L32", "7V", "6L29", "5L29", "4L29", "3L33", "3S0"], + swift: ["9M"], + swordsdance: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], takedown: ["7V"], - thief: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["7M", "6M", "5M"], - vinewhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M"], worryseed: ["7T", "6T", "5T", "4T"], - wrap: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + wrap: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], wringout: ["7L58", "6L47", "5L47", "4L47"], }, eventData: [ @@ -9720,12 +10104,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { victreebel: { learnset: { acid: ["8V", "7V"], + acidspray: ["9M"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], bind: ["7T", "6T", "5T"], - bodyslam: ["7V", "3T"], - bugbite: ["5T"], - bulletseed: ["4M", "3M"], + bodyslam: ["9M", "7V", "3T"], + bugbite: ["9M", "5T"], + bulletseed: ["9M", "4M", "3M"], captivate: ["4M"], clearsmog: ["8V"], confide: ["7M", "6M"], @@ -9733,150 +10118,171 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["7V", "6M", "5M", "4M", "3M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gastroacid: ["7T", "6T", "5T", "4T"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], + gastroacid: ["9L1", "7T", "6T", "5T", "4T"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], growth: ["8V"], headbutt: ["8V"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], - knockoff: ["7T", "6T", "5T", "4T"], - leafblade: ["7L44", "6L47", "5L47", "4L47"], - leafstorm: ["7L32", "6L47", "5L47", "4L47"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leafblade: ["9L44", "7L44", "6L47", "5L47", "4L47"], + leafstorm: ["9M", "9L0", "7L32", "6L47", "5L47", "4L47"], leaftornado: ["7L1", "6L27", "5L27"], - leechlife: ["8V"], + leechlife: ["9M", "8V"], + lunge: ["9M"], + magicalleaf: ["9M"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - poisonjab: ["8V", "7M"], + poisonjab: ["9M", "8V", "7M"], poisonpowder: ["7V"], - powerwhip: ["8V"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pounce: ["9M"], + powerwhip: ["9L1", "8V"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - reflect: ["8V", "7M", "7V", "6M", "5M"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], - sleeppowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - spitup: ["7L1", "6L1", "5L1", "4L1", "3L1"], - stockpile: ["7L1", "6L1", "5L1", "4L1", "3L1"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spitup: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + stockpile: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], stunspore: ["7V"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["8V", "4T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swallow: ["7L1", "6L1", "5L1", "4L1", "3L1"], - sweetscent: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - swordsdance: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sweetscent: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swift: ["9M"], + swordsdance: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], takedown: ["7V"], - thief: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - venoshock: ["7M", "6M", "5M"], - vinewhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M"], worryseed: ["7T", "6T", "5T", "4T"], wrap: ["8V", "7V"], }, }, tentacool: { learnset: { - acid: ["8L4", "8V", "7L10", "7V", "6L10", "5L12", "4L12", "3L19"], - acidarmor: ["8L32"], - acidspray: ["7L22", "6L22", "5L26"], - acupressure: ["8E", "7E", "6E", "5E", "5D", "4E"], - aquaring: ["8E", "7E", "6E", "5E"], + acid: ["9L4", "8L4", "8V", "7L10", "7V", "6L10", "5L12", "4L12", "3L19"], + acidarmor: ["9L32", "8L32"], + acidspray: ["9M", "7L22", "6L22", "5L26"], + acupressure: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + aquaring: ["9E", "8E", "7E", "6E", "5E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + aurorabeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], barrier: ["8V", "7L28", "7V", "6L28", "5L29", "4L26", "3L36"], bide: ["7V"], bind: ["7T", "6T", "5T"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], brine: ["8M", "7L34", "6L34", "4M"], brutalswing: ["8M"], bubble: ["7E", "6E", "5E"], - bubblebeam: ["8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], + bubblebeam: ["9L24", "8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confuseray: ["8E", "7E", "6E", "5E", "4E", "3E"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], constrict: ["8V", "7L7", "7V", "6L7", "5L8", "4L8", "3L12"], crosspoison: ["8M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - dazzlinggleam: ["8M", "8V", "7M", "6M"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], dive: ["8M", "6M", "5M", "4T", "3M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flipturn: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigadrain: ["8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + gunkshot: ["9M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], headbutt: ["8V"], - hex: ["8M", "8L28", "7L40", "6L40", "5L43"], + hex: ["9M", "9L28", "8M", "8L28", "7L40", "6L40", "5L43"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L48", "8V", "7L46", "7V", "6L46", "5L47", "4L40", "3L49"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hydropump: ["9M", "9L48", "8M", "8L48", "8V", "7L46", "7V", "6L46", "5L47", "4L40", "3L49"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], infestation: ["7M", "6M"], - knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + liquidation: ["9M"], magiccoat: ["7T", "6T", "5T", "4T"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], - mirrorcoat: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - muddywater: ["8M", "7E", "6E", "5E", "4E"], + mirrorcoat: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + muddywater: ["9M", "8M", "7E", "6E", "5E", "4E"], + mudshot: ["9M"], naturalgift: ["4M"], payback: ["8M", "7M", "6M", "5M", "4M"], - poisonjab: ["8M", "8L36", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L33"], - poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonjab: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L33"], + poisonsting: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pounce: ["9M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], scald: ["8M", "8V", "7M", "6M", "5M"], - screech: ["8M", "8L20", "8V", "7L37", "7V", "6L37", "5L40", "4L36", "3L43"], + screech: ["9L20", "8M", "8L20", "8V", "7L37", "7V", "6L37", "5L40", "4L36", "3L43"], secretpower: ["6M", "4M", "3M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "8L44", "7M", "7L43", "6M", "6L43", "5M", "5L50"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M", "9L44", "8M", "8L44", "7M", "7L43", "6M", "6L43", "5M", "5L50"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - supersonic: ["8L12", "8V", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L6"], - surf: ["8M", "8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["9L12", "8L12", "8V", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L6"], + surf: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], takedown: ["7V"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - tickle: ["8E", "7E", "6E", "5E"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - toxicspikes: ["8M", "7L13", "6L13", "5L15", "4L15"], - venoshock: ["8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M", "7L13", "6L13", "5L15", "4L15"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7V"], - waterpulse: ["8L16", "7T", "7L16", "6T", "6L16", "5L33", "4M", "4L29", "3M"], - whirlpool: ["8M", "7V", "4M"], - wrap: ["8L8", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], + watergun: ["9L1", "8L1", "7V"], + waterpulse: ["9M", "9L16", "8L16", "7T", "7L16", "6T", "6L16", "5L33", "4M", "4L29", "3M"], + whirlpool: ["9M", "8M", "7V", "4M"], + wrap: ["9L8", "8L8", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], wringout: ["7L49", "6L49", "5L54", "4L43"], }, encounters: [ @@ -9885,86 +10291,99 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, tentacruel: { learnset: { - acid: ["8L1", "8V", "7L1", "7V", "6L1", "5L12", "4L12", "3L19"], - acidarmor: ["8L34"], - acidspray: ["7L22", "6L22", "5L26"], + acid: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L12", "4L12", "3L19"], + acidarmor: ["9L34", "8L34"], + acidspray: ["9M", "7L22", "6L22", "5L26"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], barrier: ["8V", "7L28", "7V", "6L28", "5L29", "4L26", "3L38"], bide: ["7V"], bind: ["7T", "6T", "5T"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], brine: ["8M", "7L36", "6L36", "4M"], brutalswing: ["8M"], - bubblebeam: ["8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], + bubblebeam: ["9L24", "8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], + confuseray: ["9M"], constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], corrosivegas: ["8T"], crosspoison: ["8M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - dazzlinggleam: ["8M", "8V", "7M", "6M"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], dive: ["8M", "6M", "5M", "4T", "3M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flipturn: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["8V"], + haze: ["9M", "8V"], headbutt: ["8V"], - hex: ["8M", "8L28", "7L44", "6L44", "5L47"], + hex: ["9M", "9L28", "8M", "8L28", "7L44", "6L44", "5L47"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L58", "8V", "7L52", "7V", "6L52", "5L52", "4L49", "3L55"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hydropump: ["9M", "9L58", "8M", "8L58", "8V", "7L52", "7V", "6L52", "5L52", "4L49", "3L55"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], infestation: ["7M", "6M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + liquidation: ["9M"], magiccoat: ["7T", "6T", "5T", "4T"], megadrain: ["8V", "7V"], mimic: ["7V", "3T"], mirrorcoat: ["8V"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], + mudshot: ["9M"], naturalgift: ["4M"], payback: ["8M", "7M", "6M", "5M", "4M"], - poisonjab: ["8M", "8L40", "8V", "7M", "7L32", "6M", "6L32", "5M", "5L38", "4M", "4L36"], - poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonjab: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L32", "6M", "6L32", "5M", "5L38", "4M", "4L36"], + poisonsting: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pounce: ["9M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8V", "7V"], - reflecttype: ["8L1", "7L1", "6L1"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["9L1", "8L1", "7L1", "6L1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "6M", "5M"], - screech: ["8M", "8L20", "8V", "7L40", "7V", "6L40", "5L43", "4L42", "3L47"], + scaryface: ["9M"], + screech: ["9L20", "8M", "8L20", "8V", "7L40", "7V", "6L40", "5L43", "4L42", "3L47"], secretpower: ["6M", "4M", "3M"], + skittersmack: ["9M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "8L52", "7M", "7L48", "6M", "6L48", "5M", "5L56"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M", "9L52", "8M", "8L52", "7M", "7L48", "6M", "6L48", "5M", "5L56"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - supersonic: ["8L12", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - surf: ["8M", "8L46", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["9L12", "8L12", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["9M", "9L46", "8M", "8L46", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], takedown: ["7V"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - toxicspikes: ["8M", "7L13", "6L13", "5L15", "4L15"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["9M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M", "7L13", "6L13", "5L15", "4L15"], venomdrench: ["8M"], - venoshock: ["8M", "7M", "6M", "5M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7V"], - waterpulse: ["8L16", "7T", "7L16", "6T", "6L16", "5L34", "4M", "4L29", "3M"], - whirlpool: ["8M", "7V", "4M"], - wrap: ["8L1", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], + watergun: ["9L1", "8L1", "7V"], + waterpulse: ["9M", "9L16", "8L16", "7T", "7L16", "6T", "6L16", "5L34", "4M", "4L29", "3M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "7V", "4M"], + wrap: ["9L1", "8L1", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], wringout: ["7L1", "6L1", "5L61", "4L55"], }, encounters: [ @@ -9981,83 +10400,88 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], autotomize: ["7E", "6E", "5E"], bide: ["8V", "7V"], - block: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], - bodyslam: ["7V", "3T"], - brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["7M", "7L22", "6M", "6L22", "5M", "5L32"], + block: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L12", "7M", "7L22", "6M", "6L22", "5M", "5L32"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["7V", "3T"], - curse: ["7E", "7V", "6E", "5E", "4E"], - defensecurl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3T", "3L1"], - dig: ["8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["8V", "7L40", "7V", "6L40", "5L46", "4L36", "3T", "3L46"], + curse: ["9M", "9E", "7E", "7V", "6E", "5E", "4E"], + defensecurl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3T", "3L1"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "9L40", "8V", "7L40", "7V", "6L40", "5L46", "4L36", "3T", "3L46"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dynamicpunch: ["7V", "3T"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L39", "4M", "4L29", "3M", "3L36"], - endure: ["7E", "7V", "6E", "5E", "4M", "3T"], - explosion: ["8V", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L43", "4M", "4L32", "3T", "3L41"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firepunch: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + dynamicpunch: ["9E", "7V", "3T"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L34", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L39", "4M", "4L29", "3M", "3L36"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + explosion: ["9L36", "8V", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L43", "4M", "4L32", "3T", "3L41"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], fissure: ["7V"], - flail: ["7E", "6E", "5E", "4E"], - flamethrower: ["8V", "7M", "6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + flail: ["9E", "7E", "6E", "5E", "4E"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gyroball: ["7M", "6M", "5M", "4M"], - hammerarm: ["7E", "6E", "5E", "4E"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], + hammerarm: ["9E", "7E", "6E", "5E", "4E"], harden: ["7V"], headbutt: ["8V", "7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], incinerate: ["6M", "5M"], - irondefense: ["7T", "6T", "5T"], + irondefense: ["9M", "7T", "6T", "5T"], magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], - megapunch: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], - metronome: ["7V", "3T"], + megapunch: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + metronome: ["9M", "7V", "3T"], mimic: ["7V", "3T"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], mudsport: ["7L4", "6L4", "5L4", "4L4", "3L6"], naturalgift: ["4M"], naturepower: ["7M", "6M"], poweruppunch: ["6M"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockblast: ["7L30", "6L22", "5L22", "4L25", "3L31"], + rockblast: ["9M", "9L30", "7L30", "6L22", "5L22", "4L25", "3L31"], rockclimb: ["7E", "6E", "5E", "5D", "4M"], - rockpolish: ["7M", "7L6", "6M", "6L6", "5M", "5L8", "4M", "4L8"], - rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rockpolish: ["9L6", "7M", "7L6", "6M", "6L6", "5M", "5L8", "4M", "4L8"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rockthrow: ["8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L11"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], - rollout: ["7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L26"], + rockthrow: ["9L16", "8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L11"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L26"], round: ["7M", "6M", "5M"], sandattack: ["8V"], - sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - selfdestruct: ["8V", "7L24", "7V", "6L24", "5L29", "4L18", "3T", "3L21"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "7L18", "6M", "6L18", "5M", "5L25"], + selfdestruct: ["9L24", "8V", "7L24", "7V", "6L24", "5L29", "4L18", "3T", "3L21"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L25"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8V", "7T", "7L28", "6T", "6L28", "5T", "5L36", "5D", "4M"], - stoneedge: ["7M", "7L42", "6M", "6L42", "5M", "5L50", "4M", "4L39"], + stealthrock: ["9M", "9L28", "8V", "7T", "7L28", "6T", "6L28", "5T", "5L36", "5D", "4M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L50", "4M", "4L39"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], superpower: ["8V", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8V", "7V"], - thunderpunch: ["8V", "7T", "6T", "5T", "4T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8V", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8V", "7T", "6T", "5T", "4T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - wideguard: ["7E", "6E"], + wideguard: ["9E", "7E", "6E"], }, encounters: [ {generation: 1, level: 7}, @@ -10069,74 +10493,82 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M"], autotomize: ["7E"], bide: ["8V"], - block: ["7T", "7E"], - brickbreak: ["8V", "7M"], + block: ["9E", "7T", "7E"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], brutalswing: ["7M"], - bulldoze: ["7M"], - charge: ["7L4"], - chargebeam: ["7M"], + bulldoze: ["9M", "7M"], + charge: ["9M", "9L4", "7L4"], + chargebeam: ["9M", "7M"], confide: ["7M"], - counter: ["7E"], - curse: ["7E"], - defensecurl: ["8V", "7L1"], - dig: ["8V"], - discharge: ["7L34"], - doubleedge: ["8V", "7L40"], + counter: ["9E", "7E"], + curse: ["9M", "9E", "7E"], + defensecurl: ["9L1", "8V", "7L1"], + dig: ["9M", "8V"], + discharge: ["9L34", "7L34"], + doubleedge: ["9M", "9L40", "8V", "7L40"], doubleteam: ["7M"], - earthpower: ["7T"], - earthquake: ["8V", "7M"], - electroweb: ["7T"], - endure: ["7E"], - explosion: ["8V", "7M", "7L36"], - facade: ["8V", "7M"], - fireblast: ["8V", "7M"], - firepunch: ["8V", "7T"], - flail: ["7E"], - flamethrower: ["8V", "7M"], - fling: ["7M"], - focuspunch: ["7T"], + earthpower: ["9M", "7T"], + earthquake: ["9M", "8V", "7M"], + electroweb: ["9M", "7T"], + endure: ["9M", "9E", "7E"], + explosion: ["9L36", "8V", "7M", "7L36"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flail: ["9E", "7E"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M"], + focuspunch: ["9M", "7T"], frustration: ["7M"], - gyroball: ["7M"], + gyroball: ["9M", "7M"], headbutt: ["8V"], hiddenpower: ["7M"], - irondefense: ["7T"], + highhorsepower: ["9M"], + irondefense: ["9M", "7T"], magnetrise: ["7T", "7E"], + mudshot: ["9M"], + mudslap: ["9M"], naturepower: ["7M"], - protect: ["8V", "7M"], - rest: ["8V", "7M"], + protect: ["9M", "8V", "7M"], + rest: ["9M", "8V", "7M"], return: ["7M"], - rockblast: ["7L30"], + rockblast: ["9M", "9L30", "7L30"], rockclimb: ["7E"], - rockpolish: ["7M", "7L6"], - rockslide: ["8V", "7M"], - rockthrow: ["8V", "7L16"], - rocktomb: ["7M"], - rollout: ["7L10"], + rockpolish: ["9L6", "7M", "7L6"], + rockslide: ["9M", "8V", "7M"], + rockthrow: ["9L16", "8V", "7L16"], + rocktomb: ["9M", "7M"], + rollout: ["9L10", "7L10"], round: ["7M"], - sandstorm: ["7M"], - screech: ["7E"], + sandstorm: ["9M", "7M"], + screech: ["9E", "7E"], seismictoss: ["8V"], - selfdestruct: ["8V", "7L24"], - sleeptalk: ["7M"], - smackdown: ["7M", "7L18"], + selfdestruct: ["9L24", "8V", "7L24"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "9L18", "7M", "7L18"], snore: ["7T"], - spark: ["7L12"], - stealthrock: ["8V", "7T", "7L28"], - stoneedge: ["7M", "7L42"], - substitute: ["8V", "7M"], - sunnyday: ["7M"], + spark: ["9L12", "7L12"], + stealthrock: ["9M", "9L28", "8V", "7T", "7L28"], + stoneedge: ["9M", "9L42", "7M", "7L42"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + supercellslam: ["9M"], superpower: ["8V", "7T"], swagger: ["7M"], - tackle: ["8V", "7L1"], - takedown: ["8V"], - thunder: ["8V", "7M"], - thunderbolt: ["8V", "7M"], - thunderpunch: ["8V", "7T", "7L22"], + tackle: ["9L1", "8V", "7L1"], + takedown: ["9M", "8V"], + terablast: ["9M"], + thunder: ["9M", "8V", "7M"], + thunderbolt: ["9M", "8V", "7M"], + thunderpunch: ["9M", "9L22", "8V", "7T", "7L22"], thundershock: ["8V"], - thunderwave: ["8V"], + thunderwave: ["9M", "8V"], toxic: ["8V", "7M"], - voltswitch: ["7M"], - wideguard: ["7E"], + voltswitch: ["9M", "7M"], + wideguard: ["9E", "7E"], + wildcharge: ["9M"], + zapcannon: ["9E"], }, }, graveler: { @@ -10145,79 +10577,88 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bide: ["8V", "7V"], block: ["7T", "6T", "5T", "4T"], - bodyslam: ["7V", "3T"], - brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["7M", "7L22", "6M", "6L22", "5M", "5L36"], + bodypress: ["9M"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L12", "7M", "7L22", "6M", "6L22", "5M", "5L36"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["7V", "3T"], - curse: ["7V"], - defensecurl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], - dig: ["8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], + curse: ["9M", "7V"], + defensecurl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "9L50", "8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], - endure: ["7V", "4M", "3T"], - explosion: ["8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firepunch: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L44", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], fissure: ["7V"], - flamethrower: ["8V", "7M", "6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gyroball: ["7M", "6M", "5M", "4M"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], harden: ["7V"], + hardpress: ["9M"], headbutt: ["8V", "7V", "4T"], + heavyslam: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], incinerate: ["6M", "5M"], - irondefense: ["7T", "6T", "5T"], + irondefense: ["9M", "7T", "6T", "5T"], + ironhead: ["9M"], magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], megapunch: ["7V", "3T"], - metronome: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], mimic: ["7V", "3T"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], naturalgift: ["4M"], naturepower: ["7M", "6M"], poweruppunch: ["6M"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockblast: ["7L34", "6L22", "5L22", "4L27", "3L37"], + rockblast: ["9M", "9L34", "7L34", "6L22", "5L22", "4L27", "3L37"], rockclimb: ["4M"], - rockpolish: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rockpolish: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rockthrow: ["8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], - rollout: ["7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L29"], + rockthrow: ["9L16", "8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L29"], round: ["7M", "6M", "5M"], sandattack: ["8V"], - sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - selfdestruct: ["8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "7L18", "6M", "6L18", "5M", "5L27"], + selfdestruct: ["9L24", "8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L27"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], superpower: ["8V", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8V", "7V"], - thunderpunch: ["8V", "7T", "6T", "5T", "4T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8V", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8V", "7T", "6T", "5T", "4T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], }, encounters: [ @@ -10232,68 +10673,82 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M"], bide: ["8V"], block: ["7T"], - brickbreak: ["8V", "7M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], brutalswing: ["7M"], - bulldoze: ["7M"], - charge: ["7L1"], - chargebeam: ["7M"], + bulldoze: ["9M", "7M"], + charge: ["9M", "9L1", "7L1"], + chargebeam: ["9M", "7M"], confide: ["7M"], - defensecurl: ["8V", "7L1"], - dig: ["8V"], - discharge: ["7L40"], - doubleedge: ["8V", "7L50"], + curse: ["9M"], + defensecurl: ["9L1", "8V", "7L1"], + dig: ["9M", "8V"], + discharge: ["9L40", "7L40"], + doubleedge: ["9M", "9L50", "8V", "7L50"], doubleteam: ["7M"], - earthpower: ["7T"], - earthquake: ["8V", "7M"], - electroweb: ["7T"], - explosion: ["8V", "7M", "7L44"], - facade: ["8V", "7M"], - fireblast: ["8V", "7M"], - firepunch: ["8V", "7T"], - flamethrower: ["8V", "7M"], - fling: ["7M"], - focuspunch: ["7T"], + earthpower: ["9M", "7T"], + earthquake: ["9M", "8V", "7M"], + electricterrain: ["9M"], + electroweb: ["9M", "7T"], + endure: ["9M"], + explosion: ["9L44", "8V", "7M", "7L44"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T"], frustration: ["7M"], - gyroball: ["7M"], + gyroball: ["9M", "7M"], + hardpress: ["9M"], headbutt: ["8V"], hiddenpower: ["7M"], - irondefense: ["7T"], + highhorsepower: ["9M"], + irondefense: ["9M", "7T"], magnetrise: ["7T"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], naturepower: ["7M"], - protect: ["8V", "7M"], - rest: ["8V", "7M"], + protect: ["9M", "8V", "7M"], + rest: ["9M", "8V", "7M"], return: ["7M"], - rockblast: ["7L34"], - rockpolish: ["7M", "7L1"], - rockslide: ["8V", "7M"], - rockthrow: ["8V", "7L16"], - rocktomb: ["7M"], - rollout: ["7L10"], + rockblast: ["9M", "9L34", "7L34"], + rockpolish: ["9L1", "7M", "7L1"], + rockslide: ["9M", "8V", "7M"], + rockthrow: ["9L16", "8V", "7L16"], + rocktomb: ["9M", "7M"], + rollout: ["9L10", "7L10"], round: ["7M"], - sandstorm: ["7M"], + sandstorm: ["9M", "7M"], + scaryface: ["9M"], seismictoss: ["8V"], - selfdestruct: ["8V", "7L24"], + selfdestruct: ["9L24", "8V", "7L24"], shockwave: ["7T"], - sleeptalk: ["7M"], - smackdown: ["7M", "7L18"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "9L18", "7M", "7L18"], snore: ["7T"], - spark: ["7L12"], - stealthrock: ["8V", "7T", "7L30"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "7L54"], - substitute: ["8V", "7M"], - sunnyday: ["7M"], + spark: ["9L12", "7L12"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + supercellslam: ["9M"], superpower: ["8V", "7T"], swagger: ["7M"], - tackle: ["8V", "7L1"], - takedown: ["8V"], - thunder: ["8V", "7M"], - thunderbolt: ["8V", "7M"], - thunderpunch: ["8V", "7T", "7L22"], + tackle: ["9L1", "8V", "7L1"], + takedown: ["9M", "8V"], + terablast: ["9M"], + thunder: ["9M", "8V", "7M"], + thunderbolt: ["9M", "8V", "7M"], + thunderpunch: ["9M", "9L22", "8V", "7T", "7L22"], thundershock: ["8V"], - thunderwave: ["8V"], + thunderwave: ["9M", "8V"], toxic: ["8V", "7M"], - voltswitch: ["7M"], + voltswitch: ["9M", "7M"], + wildcharge: ["9M"], }, }, golem: { @@ -10302,88 +10757,94 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bide: ["8V", "7V"], block: ["7T", "6T", "5T", "4T"], - bodyslam: ["7V", "3T"], - brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["7M", "7L22", "6M", "6L22", "5M", "5L36"], + bodypress: ["9M"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L36"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["7V", "3T"], - curse: ["7V"], - defensecurl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], - dig: ["8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], + curse: ["9M", "7V"], + defensecurl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "9L50", "8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], - endure: ["7V", "4M", "3T"], - explosion: ["8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firepunch: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L44", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], fissure: ["7V"], - flamethrower: ["8V", "7M", "6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - gigaimpact: ["7M", "6M", "5M", "4M"], - gyroball: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], harden: ["7V"], + hardpress: ["9M"], headbutt: ["8V", "7V", "4T"], - heavyslam: ["7L1", "6L1", "5L69"], + heavyslam: ["9M", "9L1", "7L1", "6L1", "5L69"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], - irondefense: ["7T", "6T", "5T"], - ironhead: ["7T", "6T", "5T", "4T"], + irondefense: ["9M", "7T", "6T", "5T"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], megakick: ["7V", "3T"], megapunch: ["8V", "7V", "3T"], - metronome: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], mimic: ["7V", "3T"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], naturalgift: ["4M"], naturepower: ["7M", "6M"], poweruppunch: ["6M"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockblast: ["7L34", "6L22", "5L22", "4L27", "3L37"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "9L34", "7L34", "6L22", "5L22", "4L27", "3L37"], rockclimb: ["4M"], - rockpolish: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rockpolish: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rockthrow: ["8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rockthrow: ["9L16", "8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "4L22", "3T", "3L29"], round: ["7M", "6M", "5M"], sandattack: ["8V"], - sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - selfdestruct: ["8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "7L18", "6M", "6L18", "5M", "5L27"], + selfdestruct: ["9L24", "8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L27"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], steamroller: ["7L10", "6L10", "5L18"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], superpower: ["8V", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8V", "7V"], - thunderpunch: ["8V", "7T", "6T", "5T", "4T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8V", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8V", "7T", "6T", "5T", "4T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], }, }, @@ -10393,77 +10854,90 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M"], bide: ["8V"], block: ["7T"], - brickbreak: ["8V", "7M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], brutalswing: ["7M"], - bulldoze: ["7M"], - charge: ["7L1"], - chargebeam: ["7M"], + bulldoze: ["9M", "7M"], + charge: ["9M", "9L1", "7L1"], + chargebeam: ["9M", "7M"], confide: ["7M"], - defensecurl: ["8V", "7L1"], - dig: ["8V"], - discharge: ["7L40"], - doubleedge: ["8V", "7L50"], + curse: ["9M"], + defensecurl: ["9L1", "8V", "7L1"], + dig: ["9M", "8V"], + discharge: ["9L40", "7L40"], + doubleedge: ["9M", "9L50", "8V", "7L50"], doubleteam: ["7M"], - earthpower: ["7T"], - earthquake: ["8V", "7M"], + earthpower: ["9M", "7T"], + earthquake: ["9M", "8V", "7M"], echoedvoice: ["7M"], - electroweb: ["7T"], - explosion: ["8V", "7M", "7L44"], - facade: ["8V", "7M"], - fireblast: ["8V", "7M"], - firepunch: ["8V", "7T"], - flamethrower: ["8V", "7M"], - fling: ["7M"], - focusblast: ["7M"], - focuspunch: ["7T"], + electricterrain: ["9M"], + electroweb: ["9M", "7T"], + endure: ["9M"], + explosion: ["9L44", "8V", "7M", "7L44"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M", "7M"], + focuspunch: ["9M", "7T"], frustration: ["7M"], - gigaimpact: ["7M"], - gyroball: ["7M"], + gigaimpact: ["9M", "7M"], + gyroball: ["9M", "7M"], + hardpress: ["9M"], headbutt: ["8V"], - heavyslam: ["7L1"], + heavyslam: ["9M", "9L1", "7L1"], hiddenpower: ["7M"], - hyperbeam: ["8V", "7M"], - irondefense: ["7T"], - ironhead: ["7T"], + hyperbeam: ["9M", "8V", "7M"], + irondefense: ["9M", "7T"], + ironhead: ["9M", "7T"], magnetrise: ["7T"], megapunch: ["8V"], + meteorbeam: ["9M"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], naturepower: ["7M"], - protect: ["8V", "7M"], - rest: ["8V", "7M"], + protect: ["9M", "8V", "7M"], + rest: ["9M", "8V", "7M"], return: ["7M"], - roar: ["7M"], - rockblast: ["7L34"], - rockpolish: ["7M", "7L1"], - rockslide: ["8V", "7M"], - rockthrow: ["8V", "7L16"], - rocktomb: ["7M"], + roar: ["9M", "7M"], + rockblast: ["9M", "9L34", "7L34"], + rockpolish: ["9L1", "7M", "7L1"], + rockslide: ["9M", "8V", "7M"], + rockthrow: ["9L16", "8V", "7L16"], + rocktomb: ["9M", "7M"], round: ["7M"], - sandstorm: ["7M"], + sandstorm: ["9M", "7M"], + scaryface: ["9M"], seismictoss: ["8V"], - selfdestruct: ["8V", "7L24"], + selfdestruct: ["9L24", "8V", "7L24"], shockwave: ["7T"], - sleeptalk: ["7M"], - smackdown: ["7M", "7L18"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "9L18", "7M", "7L18"], snore: ["7T"], - spark: ["7L12"], - stealthrock: ["8V", "7T", "7L30"], + spark: ["9L12", "7L12"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30"], steamroller: ["7L10"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "7L54"], - substitute: ["8V", "7M"], - sunnyday: ["7M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + supercellslam: ["9M"], superpower: ["8V", "7T"], swagger: ["7M"], - tackle: ["8V", "7L1"], - takedown: ["8V"], - thunder: ["8V", "7M"], - thunderbolt: ["8V", "7M"], - thunderpunch: ["8V", "7T", "7L22"], + tackle: ["9L1", "8V", "7L1"], + takedown: ["9M", "8V"], + terablast: ["9M"], + thunder: ["9M", "8V", "7M"], + thunderbolt: ["9M", "8V", "7M"], + thunderpunch: ["9M", "9L22", "8V", "7T", "7L22"], thundershock: ["8V"], - thunderwave: ["8V"], + thunderwave: ["9M", "8V"], toxic: ["8V", "7M"], - voltswitch: ["7M"], - wildcharge: ["7M"], + voltswitch: ["9M", "7M"], + wildcharge: ["9M", "7M"], }, }, ponyta: { @@ -10760,7 +11234,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], confusion: ["9L12", "8L12", "8V", "7L14", "7V", "6L14", "5L14", "5S2", "4L15", "3L17", "3S0"], - curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + curse: ["9M", "9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L19", "5L19", "5S2", "4L20", "3L24", "3S0"], dive: ["8M", "6M", "5M", "4T", "3M"], @@ -10770,7 +11244,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "7V", "4M", "3T"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], fissure: ["7V"], @@ -10807,7 +11281,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L48", "3M", "3L40"], psychicterrain: ["9M", "8M"], - psychup: ["9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], + psychup: ["9M", "9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7V"], rage: ["7V"], @@ -10849,8 +11323,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["9L6", "8L6", "8V", "7L9", "7V", "6L9", "5L9", "4L11", "3L13", "3S0"], waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "5S2", "4M", "4L29", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "4M"], wonderroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], yawn: ["9L9", "8L9", "8V", "7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], zapcannon: ["7V"], @@ -10881,13 +11355,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { calmmind: ["9M", "8M"], chillingwater: ["9M"], confusion: ["9L12", "8L12"], - curse: ["9L1", "8L1"], + curse: ["9M", "9L1", "8L1"], dig: ["9M", "8M"], disable: ["9L15", "8L15"], dive: ["8M"], earthquake: ["9M", "8M"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], fireblast: ["9M", "8M"], flamethrower: ["9M", "8M"], @@ -10912,7 +11386,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M", "9L36", "8M", "8L36"], psychicterrain: ["9M", "8M"], - psychup: ["9L39", "8L39"], + psychup: ["9M", "9L39", "8L39"], psyshock: ["9M", "8M"], raindance: ["9M", "9L42", "8M", "8L42"], rest: ["9M", "8M"], @@ -10940,8 +11414,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trickroom: ["9M", "8M"], waterfall: ["9M"], waterpulse: ["9M", "9L18", "8L18"], - weatherball: ["8M"], - whirlpool: ["8M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], wonderroom: ["8M"], yawn: ["9L9", "8L9"], zenheadbutt: ["9M", "9L24", "8M", "8L24"], @@ -10970,7 +11444,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confusion: ["9L12", "8L12", "8V", "7L14", "7V", "6L14", "5L14", "4L15", "3L17"], counter: ["7V", "3T"], - curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["9M", "9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L19", "5L19", "4L20", "3L24"], dive: ["8M", "6M", "5M", "4T", "3M"], @@ -10982,7 +11456,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "7V", "4M", "3T"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], fissure: ["7V"], @@ -10990,11 +11464,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - futuresight: ["9L1", "8M"], + futuresight: ["9M", "9L1", "8M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], @@ -11019,7 +11493,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megapunch: ["8M", "7V", "3T"], metronome: ["9M"], mimic: ["7V", "3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], mudslap: ["7V", "4T", "3T"], nastyplot: ["9M", "8M"], @@ -11029,8 +11503,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M"], psychic: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L54", "3M", "3L44"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M"], - psychup: ["9L41", "8L41", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L62", "4M", "4L67", "3T", "3L55"], + psychup: ["9M", "9L41", "8L41", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L62", "4M", "4L67", "3T", "3L55"], psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7V"], rage: ["7V"], @@ -11043,7 +11518,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - scald: ["8M", "8V", "7M", "6M", "6S0", "5M"], + scald: ["9M", "8M", "8V", "7M", "6M", "6S0", "5M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -11076,8 +11551,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["9L1", "8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L11", "3L13"], waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "4M", "4L29", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "4M"], withdraw: ["9L1", "8L1", "8V", "7L1", "7V", "6L37", "5L37", "4L37", "3L37"], wonderroom: ["8M", "7T", "6T", "5T"], yawn: ["9L9", "8L9", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], @@ -11114,14 +11589,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { calmmind: ["9M", "8M"], chillingwater: ["9M"], confusion: ["9L12", "8L12"], - curse: ["9L1", "8L1"], + curse: ["9M", "9L1", "8L1"], dig: ["9M", "8M"], disable: ["9L15", "8L15"], dive: ["8M"], + doubleedge: ["9M"], drainpunch: ["9M", "8M"], earthquake: ["9M", "8M"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], fireblast: ["9M", "8M"], flamethrower: ["9M", "8M"], @@ -11134,6 +11610,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { growl: ["9L1", "8L1"], gunkshot: ["9M"], hail: ["8M"], + haze: ["9M"], headbutt: ["9L21", "8L21"], healpulse: ["9L45", "8L45"], helpinghand: ["9M"], @@ -11151,7 +11628,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megakick: ["8M"], megapunch: ["8M"], metronome: ["9M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], nastyplot: ["9M", "8M"], payday: ["8M"], @@ -11161,7 +11638,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M", "9L36", "8M", "8L36"], psychicterrain: ["9M", "8M"], - psychup: ["9L39", "8L39"], + psychup: ["9M", "9L39", "8L39"], psyshock: ["9M", "8M"], raindance: ["9M", "9L42", "8M", "8L42"], razorshell: ["8M"], @@ -11178,7 +11655,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slackoff: ["9L33", "8L33"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M"], - sludgewave: ["8M"], + sludgewave: ["9M", "8M"], + smackdown: ["9M"], snore: ["8M"], snowscape: ["9M"], storedpower: ["9M", "8M"], @@ -11190,6 +11668,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thunderwave: ["9M", "8M"], + toxic: ["9M"], triattack: ["8M"], trick: ["9M", "8M"], trickroom: ["9M", "8M"], @@ -11197,8 +11676,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["8L1"], waterpulse: ["9M", "9L18", "8L18"], - weatherball: ["8M"], - whirlpool: ["8M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], withdraw: ["9L1", "8L1"], wonderroom: ["8M"], yawn: ["9L9", "8L9"], @@ -11226,7 +11705,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confusion: ["9L12", "8L12", "7L14", "7V", "6L14", "5L14", "4L15", "3L17"], counter: ["3T"], - curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["9M", "9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], disable: ["9L15", "8L15", "7L19", "7V", "6L19", "5L19", "4L20", "3L24"], dive: ["8M", "6M", "5M", "4T", "3M"], @@ -11239,7 +11718,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "7V", "4M", "3T"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], firepunch: ["9M"], @@ -11247,17 +11726,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - futuresight: ["9L1", "8M"], + futuresight: ["9M", "9L1", "8M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "7L5", "7V", "6L5", "5L5", "4L6", "3L6"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["9L21", "8L21", "7L23", "7V", "6L23", "5L23", "4T", "4L25", "3L29"], healpulse: ["9L45", "8L45", "7L1", "6L1", "5L58"], + helpinghand: ["9M"], hiddenpower: ["7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -11276,7 +11756,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megapunch: ["8M", "3T"], metronome: ["9M"], mimic: ["3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], mudslap: ["7V", "4T", "3T"], nastyplot: ["9M", "9L1", "8M", "8L1", "7L36", "6L36", "5L36", "4L39"], @@ -11288,8 +11768,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M"], psychic: ["9M", "9L36", "8M", "8L36", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L48", "3M", "3L40"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M"], - psychup: ["9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], + psychup: ["9M", "9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], psyshock: ["9M", "8M", "7M", "6M", "5M"], quash: ["7M", "6M", "5M"], raindance: ["9M", "9L42", "8M", "8L42", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -11303,7 +11784,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - scald: ["8M", "7M", "6M", "5M"], + scald: ["9M", "8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -11334,8 +11815,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["9L1", "8L1", "7L9", "7V", "6L9", "5L9", "4L11", "3L13"], waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "4M", "4L29", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], wonderroom: ["8M", "7T", "6T", "5T"], yawn: ["9L9", "8L9", "7L1", "6L1", "5L1", "4L1", "3L1"], zapcannon: ["7V"], @@ -11358,7 +11839,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], chillyreception: ["9L1"], confusion: ["9L12", "8L12"], - curse: ["9L1", "8L1"], + curse: ["9M", "9L1", "8L1"], dig: ["9M", "8M"], disable: ["9L15", "8L15"], dive: ["8M"], @@ -11366,7 +11847,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { earthquake: ["9M", "8M"], eeriespell: ["9L0", "8L0"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], fireblast: ["9M", "8M"], firepunch: ["9M"], @@ -11374,7 +11855,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M"], focusblast: ["9M", "8M"], foulplay: ["9M", "8M"], - futuresight: ["9L1", "8M"], + futuresight: ["9M", "9L1", "8M"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "8M"], growl: ["9L1", "8L1"], @@ -11382,6 +11863,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hail: ["8M"], headbutt: ["9L21", "8L21"], healpulse: ["9L45", "8L45"], + helpinghand: ["9M"], hex: ["9M", "8M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "8M"], @@ -11397,7 +11879,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megakick: ["8M"], megapunch: ["8M"], metronome: ["9M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], nastyplot: ["9M", "9L1", "8M", "8L1"], payday: ["8M"], @@ -11406,8 +11888,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M"], psybeam: ["9M"], psychic: ["9M", "9L36", "8M", "8L36"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M"], - psychup: ["9L39", "8L39"], + psychup: ["9M", "9L39", "8L39"], psyshock: ["9M", "8M"], raindance: ["9M", "9L42", "8M", "8L42"], razorshell: ["8M"], @@ -11421,9 +11904,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slackoff: ["9L33", "8L33"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M"], - sludgewave: ["8M"], + sludgewave: ["9M", "8M"], snarl: ["9M"], snore: ["8M"], + snowscape: ["9M"], stompingtantrum: ["9M"], storedpower: ["9M", "8M"], substitute: ["9M", "8M"], @@ -11437,17 +11921,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thunderpunch: ["9M"], thunderwave: ["9M", "8M"], - toxic: ["9L1"], + toxic: ["9M", "9L1"], toxicspikes: ["9M"], triattack: ["8M"], trick: ["9M", "8M"], trickroom: ["9M", "8M"], venomdrench: ["8M"], venoshock: ["9M", "8M"], - waterfall: ["9L1"], + waterfall: ["9M", "9L1"], waterpulse: ["9M", "9L18", "8L18"], - weatherball: ["8M"], - whirlpool: ["8M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], wonderroom: ["8M"], yawn: ["9L9", "8L9"], zenheadbutt: ["9M", "9L24", "8M", "8L24"], @@ -11456,6 +11940,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magnemite: { learnset: { bide: ["7V"], + charge: ["9M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], @@ -11466,15 +11951,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], - electroweb: ["9E", "8M", "7T", "6T", "5T"], + electroweb: ["9M", "9E", "8M", "7T", "6T", "5T"], endure: ["9M", "8M", "7V", "4M", "3T"], explosion: ["9E", "7M", "6M", "5M", "4M"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], flashcannon: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L35", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gravity: ["7T", "6T", "5T", "5D", "4T"], - gyroball: ["9L16", "8M", "8L16", "7M", "7L47", "6M", "6L47", "5M", "5L54", "4M", "4L49"], + gravity: ["9M", "7T", "6T", "5T", "5D", "4T"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L47", "6M", "6L47", "5M", "5L53", "4M", "4L49"], headbutt: ["8V"], heavyslam: ["9M"], helpinghand: ["9M"], @@ -11486,9 +11971,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magiccoat: ["7T", "6T", "5T", "4T"], magnetbomb: ["7L11", "6L17", "5L18", "4L30"], magnetrise: ["9L28", "8L28", "7T", "7L43", "6T", "6L43", "5T", "5L49", "4T", "4L46"], - metalsound: ["9L40", "8L40", "7L25", "6L25", "5L1", "5D", "4L1", "3L1"], + metalsound: ["9M", "9L40", "8L40", "7L25", "6L25", "5L1", "5D", "4L1", "3L1"], mimic: ["7V", "3T"], - mirrorshot: ["7L23", "6L23", "5L46", "4L43"], + mirrorshot: ["7L23", "6L23", "5L25", "4L43"], naturalgift: ["4M"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M"], @@ -11508,12 +11993,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T", "6T", "5T", "4T"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - sonicboom: ["8V", "7L17", "7V", "6L11", "5L14", "4L14", "3L16"], - spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22", "3L26"], + sonicboom: ["8V", "7L17", "7V", "6L11", "5L11", "4L14", "3L16"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L21", "4L22", "3L26"], steelbeam: ["9M", "8T"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - supersonic: ["9L4", "8L4", "8V", "7L1", "7V", "6L4", "5L11", "4L11", "3L11"], + supersonic: ["9L4", "8L4", "8V", "7L1", "7V", "6L4", "5L4", "4L11", "3L11"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["9M", "8M", "7V", "4T", "3T", "3L38"], tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], @@ -11523,11 +12008,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thundershock: ["9L1", "8L1", "8V", "7L5", "7V", "6L7", "5L6", "5D", "4L6", "3L6"], - thunderwave: ["9M", "9L8", "8M", "8L8", "8V", "7M", "7L11", "7V", "6M", "6L13", "5M", "5L17", "4M", "4L17", "3T", "3L21"], + thunderwave: ["9M", "9L8", "8M", "8L8", "8V", "7M", "7L11", "7V", "6M", "6L13", "5M", "5L15", "4M", "4L17", "3T", "3L21"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], - zapcannon: ["9L52", "8L52", "7L49", "7V", "6L49", "5L59", "4L54", "3L50"], + zapcannon: ["9L52", "8L52", "7L49", "7V", "6L49", "5L57", "4L54", "3L50"], }, encounters: [ {generation: 1, level: 16}, @@ -11536,6 +12021,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magneton: { learnset: { bide: ["7V"], + charge: ["9M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], @@ -11546,7 +12032,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], - electroweb: ["8M", "7T", "6T", "5T"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], endure: ["9M", "8M", "7V", "4M", "3T"], explosion: ["7M", "6M", "5M", "4M"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -11554,8 +12040,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M", "9L34", "8M", "8L34", "8V", "7M", "7L33", "6M", "6L33", "5M", "5L39", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], headbutt: ["8V"], heavyslam: ["9M"], helpinghand: ["9M"], @@ -11566,11 +12052,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["9M", "9L52", "8M", "8L52", "8V", "7M", "7L13", "6M", "5M", "4M"], lockon: ["9L58", "8L58", "7L49", "7V", "6L49", "5L30", "4L27", "3L35"], magiccoat: ["7T", "6T", "5T", "4T"], - magnetbomb: ["7L1", "6L17", "5L34", "4L30"], + magnetbomb: ["7L1", "6L17", "5L18", "4L30"], magnetrise: ["9L28", "8L28", "7T", "7L53", "6T", "6L53", "5T", "5L54", "4T", "4L50"], - metalsound: ["9L46", "8L46", "7L25", "6L25", "5L1", "4L1", "3L1"], + metalsound: ["9M", "9L46", "8L46", "7L25", "6L25", "5L1", "4L1", "3L1"], mimic: ["7V", "3T"], - mirrorshot: ["7L23", "6L23", "5L50", "4L46"], + mirrorshot: ["7L23", "6L23", "5L25", "4L46"], naturalgift: ["4M"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M"], @@ -11591,8 +12077,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T", "6T", "5T", "4T"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - sonicboom: ["8V", "7L17", "7V", "6L1", "5L14", "4L14", "3L16"], - spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22", "3L26"], + sonicboom: ["8V", "7L17", "7V", "6L1", "5L11", "4L14", "3L16"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L21", "4L22", "3L26"], steelbeam: ["9M", "8T"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -11606,7 +12092,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thundershock: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L13", "5M", "5L17", "4M", "4L17", "3T", "3L21"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L13", "5M", "5L15", "4M", "4L17", "3T", "3L21"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], triattack: ["9L0", "8M", "8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L44"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], @@ -11628,15 +12114,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { barrier: ["7L1", "6L1", "5L1", "4L1"], bodypress: ["9M", "8M"], bodyslam: ["9M"], + charge: ["9M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], discharge: ["9L40", "8L40", "7L43", "6L43", "5L46", "4L40"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], eerieimpulse: ["9M"], electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], - electroweb: ["8M", "7T", "6T", "5T"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], endure: ["9M", "8M", "4M"], explosion: ["7M", "6M", "5M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -11644,8 +12132,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M", "9L34", "8M", "8L34", "7M", "7L33", "6M", "6L33", "5M", "5L39", "4M"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], + hardpress: ["9M"], heavyslam: ["9M", "8M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], @@ -11655,12 +12144,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["9M", "9L52", "8M", "8L52", "7M", "7L13", "6M", "5M", "4M"], lockon: ["9L58", "8L58", "7L49", "6L49", "5L30", "4L27"], magiccoat: ["7T", "6T", "5T", "4T"], - magnetbomb: ["7L1", "6L17", "5L34", "4L30"], + magnetbomb: ["7L1", "6L17", "5L18", "4L30"], magneticflux: ["9L1", "8L1", "7L1", "6L1"], magnetrise: ["9L28", "8L28", "7T", "7L53", "6T", "6L53", "5T", "5L54", "4T", "4L50"], - metalsound: ["9L46", "8L46", "7L25", "6L25", "5L1", "4L1"], + metalsound: ["9M", "9L46", "8L46", "7L25", "6L25", "5L1", "4L1"], mirrorcoat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], - mirrorshot: ["7L23", "6L23", "5L50", "4L46"], + mirrorshot: ["7L23", "6L23", "5L25", "4L46"], naturalgift: ["4M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psychup: ["7M", "6M", "5M", "4M"], @@ -11680,12 +12169,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T", "6T", "5T", "4T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - sonicboom: ["7L17", "6L1", "5L14", "4L14"], - spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22"], + sonicboom: ["7L17", "6L1", "5L11", "4L14"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L21", "4L22"], steelbeam: ["9M", "8T"], steelroller: ["8T"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + supercellslam: ["9M"], supersonic: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], swagger: ["7M", "6M", "5M", "4M"], swift: ["9M", "8M", "4T"], @@ -11695,7 +12185,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], thundershock: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], - thunderwave: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L13", "5M", "5L17", "4M", "4L17"], + thunderwave: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L13", "5M", "5L15", "4M", "4L17"], toxic: ["7M", "6M", "5M", "4M"], triattack: ["9L1", "8M", "8L1", "7L1"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], @@ -11919,71 +12409,81 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, doduo: { learnset: { - acupressure: ["7L33", "6L28", "5L28", "4L28"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8V", "7L26", "7V", "6L33", "5L37", "4L37", "3L45"], + acrobatics: ["9M"], + acupressure: ["9L30", "7L33", "6L28", "5L28", "4L28"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L23", "8V", "7L26", "7V", "6L33", "5L37", "4L37", "3L45"], aircutter: ["4T"], - assurance: ["7E", "6E", "5E"], + assurance: ["9E", "7E", "6E", "5E"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], bide: ["7V"], - bodyslam: ["7V", "3T"], - bravebird: ["7E", "6E", "5E", "4E"], + bodyslam: ["9M", "7V", "3T"], + bravebird: ["9M", "7E", "6E", "5E", "4E"], captivate: ["4M"], confide: ["7M", "6M"], curse: ["7V"], - doubleedge: ["7V", "3T"], - doublehit: ["7L22", "6L25", "5L32", "4L32"], + doubleedge: ["9M", "7V", "3T"], + doublehit: ["9L19", "7L22", "6L25", "5L32", "4L32"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drillpeck: ["8V", "7L43", "7V", "6L37", "5L41", "4L41", "3L37"], + drillpeck: ["9L36", "8V", "7L43", "7V", "6L37", "5L41", "4L41", "3L37"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["7T", "7L47", "7E", "6T", "6L45", "6E", "5T", "5L46", "5E", "4T", "4L46", "4E", "3E"], - endure: ["7V", "4M", "3T"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9M", "9L39", "7T", "7L47", "7E", "6T", "6L45", "6E", "5T", "5L46", "5E", "4T", "4L46", "4E", "3E"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M"], feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], - flail: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + flail: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furyattack: ["8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L13"], - growl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + furyattack: ["9L9", "8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L13"], + growl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], haze: ["7E", "7V", "6E", "5E", "4E", "3E"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], jumpkick: ["8V", "7L40"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lowkick: ["9M"], + lunge: ["9M"], mimic: ["7V", "3T"], mirrormove: ["7E", "6E", "5E", "4E"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["7E", "6E", "5E", "4M"], - peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - pluck: ["7L19", "6L21", "5M", "4M"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + peck: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["9L14", "7L19", "6L21", "5M", "4M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7L15", "7V", "6L17", "5L19", "4L19", "3L9"], - quickattack: ["8V", "7L5", "7E", "7V", "6L5", "6E", "5L5", "5E", "4L5", "4E", "3E"], + quickattack: ["9L5", "8V", "7L5", "7E", "7V", "6L5", "6E", "5L5", "5E", "4L5", "4E", "3E"], rage: ["8V", "7L8", "7V", "6L9", "5L10", "4L10", "3L25"], + raindance: ["9M"], reflect: ["8V", "7V"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roost: ["8V", "7M", "6M", "5T", "5D", "4M"], round: ["7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], skullbash: ["7V"], - skyattack: ["7V", "3T"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + skyattack: ["9E", "7V", "3T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], steelwing: ["7M", "7V", "6M", "4M", "3M"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], supersonic: ["7E", "7V", "6E", "5E", "4E", "3E"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["7V", "4T", "3T"], - swordsdance: ["8V", "7M", "7L36"], - takedown: ["7V"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - thrash: ["8V", "7L50", "6L49", "5L50"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L33", "8V", "7M", "7L36"], + tailwind: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L43", "8V", "7L50", "6L49", "5L50"], + throatchop: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], triattack: ["7V", "3L21"], - uproar: ["7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L33"], - whirlwind: ["7V"], + uproar: ["9M", "9L27", "7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L33"], + whirlwind: ["9E", "7V"], workup: ["7M", "5M"], }, encounters: [ @@ -11993,72 +12493,86 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, dodrio: { learnset: { - acupressure: ["7L34", "6L28", "5L28", "4L28"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8V", "7L26", "7V", "6L35", "5L41", "4L41", "3L60", "3S0"], + acrobatics: ["9M"], + acupressure: ["9L30", "7L34", "6L28", "5L28", "4L28"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L23", "8V", "7L26", "7V", "6L35", "5L41", "4L41", "3L60", "3S0"], aircutter: ["4T"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["3S0"], + batonpass: ["9M", "3S0"], bide: ["7V"], - bodyslam: ["7V", "3T"], + bodyslam: ["9M", "7V", "3T"], + bravebird: ["9M"], captivate: ["4M"], confide: ["7M", "6M"], curse: ["7V"], - doubleedge: ["7V", "3T"], - doublehit: ["7L22"], + doubleedge: ["9M", "7V", "3T"], + doublehit: ["9L19", "7L22"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drillpeck: ["8V", "7L47", "7V", "6L41", "5L47", "4L47", "3L47", "3S0"], + drillpeck: ["9L38", "8V", "7L47", "7V", "6L41", "5L47", "4L47", "3L47", "3S0"], + drillrun: ["9M"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["7T", "7L52", "6T", "6L53", "5T", "5L54", "4T", "4L54"], - endure: ["7V", "4M", "3T"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], - fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["9M", "9L43", "7T", "7L52", "6T", "6L53", "5T", "5L54", "4T", "4L54"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M"], + fly: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furyattack: ["8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L1"], - gigaimpact: ["7M", "6M", "5M", "4M"], - growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + furyattack: ["9L12", "8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L1"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], jumpkick: ["8V", "7L43"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lowkick: ["9M"], + lunge: ["9M"], mimic: ["7V", "3T"], mirrormove: ["8V"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], payback: ["7M", "6M", "5M", "4M"], - peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - pluck: ["7L19", "6L1", "5M", "5L1", "4M", "4L1"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + peck: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["9L15", "7L19", "6L1", "5M", "5L1", "4M", "4L1"], + pounce: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7L15", "7V", "6L17", "5L19", "4L19", "3L1"], - quickattack: ["8V", "7L1", "6L1", "5L1", "4L1"], + quickattack: ["9L1", "8V", "7L1", "6L1", "5L1", "4L1"], rage: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L25"], + raindance: ["9M"], reflect: ["8V", "7V"], - rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roost: ["8V", "7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], skullbash: ["7V"], skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], steelwing: ["7M", "7V", "6M", "4M", "3M"], - stompingtantrum: ["7T"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], supersonic: ["8V"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["7V", "4T", "3T"], - swordsdance: ["8V", "7M", "7L38"], - takedown: ["7V"], - taunt: ["8V", "7M", "6M", "5M", "4M", "3M"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - thrash: ["8V", "7L56", "6L59", "5L60"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L34", "8V", "7M", "7L38"], + tailwind: ["9M"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L50", "8V", "7L56", "6L59", "5L60"], + throatchop: ["9M"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - triattack: ["8V", "7L1", "7V", "6L25", "5L34", "4L34", "3L21", "3S0"], - uproar: ["7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L38"], + trailblaze: ["9M"], + triattack: ["9L0", "8V", "7L1", "7V", "6L25", "5L34", "4L34", "3L21", "3S0"], + uproar: ["9M", "9L26", "7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L38"], whirlwind: ["7V"], workup: ["7M", "5M"], }, @@ -12075,80 +12589,93 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, seel: { learnset: { - aquajet: ["8V", "7L31", "6L31", "5L31", "4L31"], - aquaring: ["7L23", "6L23", "5L23", "4L23"], - aquatail: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + aquajet: ["9L31", "8V", "7L31", "6L31", "5L31", "4L31"], + aquaring: ["9L23", "7L23", "6L23", "5L23", "4L23"], + aquatail: ["9L43", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - aurorabeam: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L21"], - belch: ["7E", "6E"], + aurorabeam: ["9L27", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L21"], + avalanche: ["9M"], + belch: ["9E", "7E", "6E"], bide: ["7V"], - blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["7V", "3T"], - brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + blizzard: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "7V", "3T"], + brine: ["9L33", "7L33", "6L33", "5L33", "4M", "4L33"], bubblebeam: ["7V"], captivate: ["4M"], + charm: ["9M", "9L7"], + chillingwater: ["9M"], confide: ["7M", "6M"], - curse: ["7V"], - disable: ["7E", "7V", "6E", "5E", "4E", "3E"], - dive: ["7L41", "6M", "6L41", "5M", "5L41", "4T", "4L41", "3M"], - doubleedge: ["8V", "7V", "3T"], + curse: ["9M", "7V"], + disable: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + dive: ["9L41", "7L41", "6M", "6L41", "5M", "5L41", "4T", "4L41", "3M"], + doubleedge: ["9M", "8V", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drillrun: ["8V", "7T", "6T", "5T"], + drillrun: ["9M", "8V", "7T", "6T", "5T"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8V", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3E"], - endure: ["7V", "4M", "3T"], - entrainment: ["7E", "6E"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["7E", "6E", "5E", "4E", "3E"], - fling: ["7M", "6M", "5M", "4M"], + encore: ["9M", "9L13", "8V", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3E"], + endure: ["9M", "7V", "4M", "3T"], + entrainment: ["9E", "7E", "6E"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "7E", "6E", "5E", "4E", "3E"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - growl: ["8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L9"], + growl: ["9L3", "8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L9"], hail: ["7M", "7L53", "6M", "6L53", "5M", "5L53", "4M", "3M"], - headbutt: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4T", "4L1", "3L1"], - helpinghand: ["8V", "3S0"], + haze: ["9M"], + headbutt: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4T", "4L1", "3L1"], + helpinghand: ["9M", "8V", "3S0"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - horndrill: ["7E", "7V", "6E", "5E", "4E", "3E"], - icebeam: ["8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L41", "3S0"], - iceshard: ["8V", "7L17", "6L17", "5L17", "4L17"], - iciclespear: ["7E", "6E", "5E", "5D", "4E", "3E"], - icywind: ["7T", "7L11", "7V", "6T", "6L11", "5T", "5L11", "4T", "4L11", "3T", "3L17"], + horndrill: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + hydropump: ["9M"], + icebeam: ["9M", "9L47", "8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L41", "3S0"], + iceshard: ["9L17", "8V", "7L17", "6L17", "5L17", "4L17"], + icespinner: ["9M"], + iciclespear: ["9M", "7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["9M", "9L11", "7T", "7L11", "7V", "6T", "6L11", "5T", "5L11", "4T", "4L11", "3T", "3L17"], irontail: ["8V", "7T", "7E", "6T", "6E", "5T", "5E"], - lick: ["7E", "7V", "6E", "5E", "4E", "3E"], + lick: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], megahorn: ["8V"], mimic: ["7V", "3T"], + muddywater: ["9M"], naturalgift: ["4M"], payday: ["8V", "7V"], peck: ["7V"], - perishsong: ["7E", "7V", "6E", "5E", "4E", "3E"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + perishsong: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L21", "8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - safeguard: ["7M", "7L51", "7V", "6M", "6L51", "5M", "5L51", "4M", "4L51", "3M", "3L49", "3S0"], + safeguard: ["9L51", "7M", "7L51", "7V", "6M", "6L51", "5M", "5L51", "4M", "4L51", "3M", "3L49", "3S0"], secretpower: ["6M", "4M", "3M"], signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], skullbash: ["7V"], slam: ["7E", "7V", "6E", "5E", "4E", "3E"], - sleeptalk: ["7M", "7E", "7V", "6M", "6E", "5T", "5E", "5D", "4M", "3T"], - smartstrike: ["7M"], + sleeptalk: ["9M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "5D", "4M", "3T"], + smartstrike: ["9M", "7M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - spitup: ["7E", "6E", "5E", "4E"], - stockpile: ["7E", "6E", "5E", "4E"], + snowscape: ["9M", "9L53"], + spitup: ["9E", "7E", "6E", "5E", "4E"], + stockpile: ["9E", "7E", "6E", "5E", "4E"], strength: ["7V"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swallow: ["7E", "6E", "5E", "4E"], - takedown: ["8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], - thief: ["7M", "6M", "5M", "4M", "3M"], + swallow: ["9E", "7E", "6E", "5E", "4E"], + takedown: ["9M", "9L37", "8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - waterfall: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tripleaxel: ["9M"], + uproar: ["9M"], + waterfall: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], watergun: ["7V"], - waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + waterpulse: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], watersport: ["7L7", "6L7", "5L7", "4L7"], - whirlpool: ["7V", "4M"], + weatherball: ["9M"], + whirlpool: ["9M", "7V", "4M"], }, eventData: [ {generation: 3, level: 23, abilities: ["thickfat"], moves: ["helpinghand", "surf", "safeguard", "icebeam"]}, @@ -12159,74 +12686,91 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, dewgong: { learnset: { - aquajet: ["8V", "7L31", "6L31", "5L31", "4L31"], - aquaring: ["7L23", "6L23", "5L23", "4L23"], - aquatail: ["7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L43"], + alluringvoice: ["9M"], + aquajet: ["9L31", "8V", "7L31", "6L31", "5L31", "4L31"], + aquaring: ["9L23", "7L23", "6L23", "5L23", "4L23"], + aquatail: ["9L49", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L43"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - aurorabeam: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L1"], - avalanche: ["4M"], + aurorabeam: ["9L27", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L1"], + avalanche: ["9M", "4M"], bide: ["7V"], - blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["7V", "3T"], - brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + blizzard: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "7V", "3T"], + brine: ["9L33", "7L33", "6L33", "5L33", "4M", "4L33"], bubblebeam: ["7V"], captivate: ["4M"], + charm: ["9M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - curse: ["7V"], - dive: ["7L45", "6M", "6L45", "5M", "5L45", "4T", "4L41", "3M"], - doubleedge: ["8V", "7V", "3T"], + curse: ["9M", "7V"], + dive: ["9L45", "7L45", "6M", "6L45", "5M", "5L45", "4T", "4L41", "3M"], + doubleedge: ["9M", "8V", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drillrun: ["8V", "7T", "6T", "5T"], + drillrun: ["9M", "8V", "7T", "6T", "5T"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8V", "7L13", "6L13", "5L13", "4L13"], - endure: ["7V", "4M", "3T"], - facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L13", "8V", "7L13", "6L13", "5L13", "4L13"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], fakeout: ["8V"], - fling: ["7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], frostbreath: ["7M", "6M", "5M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], hail: ["7M", "7L65", "6M", "6L65", "5M", "5L65", "4M", "3M"], - headbutt: ["8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], - helpinghand: ["8V"], + haze: ["9M"], + headbutt: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + helpinghand: ["9M", "8V"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], horndrill: ["8V", "7V"], - hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L47", "3M", "3L51"], - iceshard: ["8V", "7L17", "6L17", "5L17", "4L17"], - icywind: ["7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + hydropump: ["9M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9L55", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L47", "3M", "3L51"], + iceshard: ["9L17", "8V", "7L17", "6L17", "5L17", "4L17"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M", "9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], irontail: ["8V", "7T", "6T", "5T"], - liquidation: ["7T"], + knockoff: ["9M"], + liquidation: ["9M", "7T"], megahorn: ["8V"], mimic: ["7V", "3T"], + muddywater: ["9M"], naturalgift: ["4M"], payday: ["8V", "7V"], - protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + playrough: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L21", "8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - safeguard: ["7M", "7L61", "7V", "6M", "6L61", "5M", "5L61", "4M", "4L51", "3M", "3L64"], + safeguard: ["9L61", "7M", "7L61", "7V", "6M", "6L61", "5M", "5L61", "4M", "4L51", "3M", "3L64"], secretpower: ["6M", "4M", "3M"], - sheercold: ["7L1", "6L34", "5L34", "4L34", "3L34"], + sheercold: ["9L0", "7L1", "6L34", "5L34", "4L34", "3L34"], signalbeam: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], skullbash: ["7V"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - smartstrike: ["7M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M", "7M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M", "9L65"], strength: ["7V"], - substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - takedown: ["8V", "7L39", "7V", "6L39", "5L39", "4L37", "3L42"], - thief: ["7M", "6M", "5M", "4M", "3M"], + takedown: ["9M", "9L39", "8V", "7L39", "7V", "6L39", "5L39", "4L37", "3L42"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - waterfall: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tripleaxel: ["9M"], + uproar: ["9M"], + waterfall: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], watergun: ["7V"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["7V", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["9M", "7V", "4M"], }, encounters: [ {generation: 1, level: 15}, @@ -12247,7 +12791,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], confide: ["7M", "6M"], confuseray: ["9M"], - curse: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], dig: ["9M", "8V", "6M", "5M", "4M", "3M"], disable: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L8"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -12262,9 +12806,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "7M", "7L26", "6M", "6L26", "5M", "5L28", "4M", "4L28"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], - gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L49", "4T", "4L44"], + gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L43", "4T", "4L44"], harden: ["9L4", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L4"], - haze: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + haze: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], headbutt: ["8V"], helpinghand: ["9M", "8V", "3S0"], hex: ["9M"], @@ -12276,15 +12820,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lick: ["7E", "7V", "6E", "5E", "4E", "3E"], meanlook: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], megadrain: ["8V", "7V"], - memento: ["9L48", "7L48", "6L48", "5L52", "4L49", "3L53"], + memento: ["9L48", "7L48", "6L48", "5L48", "4L49", "3L53"], metronome: ["9M"], mimic: ["7V", "3T"], minimize: ["9L21", "8V", "7L21", "7V", "6L18", "5L17", "4L17", "3L19", "3S0"], - mudbomb: ["7L18", "6L18", "5L23", "4L23"], + mudbomb: ["7L18", "6L18", "5L21", "4L23"], mudshot: ["9M", "9L18"], mudslap: ["9M", "9L7", "7L7", "7V", "6L7", "5L7", "4T", "4L7", "3T"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["7M", "6M", "5M", "4M"], poisongas: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], @@ -12300,7 +12844,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["7M", "6M", "5M"], sandstorm: ["9M"], scaryface: ["9M", "7E", "6E", "5E"], - screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L33", "4L33", "3L26"], + screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L32", "4L33", "3L26"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["8V", "7V", "3T"], shadowball: ["9M", "8V", "7M", "6M", "5M", "4M"], @@ -12308,9 +12852,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowsneak: ["9E", "7E", "6E", "5E", "5D", "4E"], shockwave: ["7T", "6T", "4M", "3M"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L20", "4L20", "3L13"], - sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L36", "4M", "4L36", "3M", "3L43", "3S0"], - sludgewave: ["9L32", "7M", "7L32", "6M", "6L32", "5M", "5L44"], + sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L15", "4L20", "3L13"], + sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L36", "3M", "3L43", "3S0"], + sludgewave: ["9M", "9L32", "7M", "7L32", "6M", "6L32", "5M", "5L37"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], spitup: ["9E", "7E", "6E", "5E", "4E"], stockpile: ["9E", "7E", "6E", "5E", "4E"], @@ -12327,7 +12871,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], venoshock: ["9M", "7M", "6M", "5M"], zapcannon: ["7V"], zenheadbutt: ["9M"], @@ -12343,17 +12887,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { acidarmor: ["9L43", "8V", "7L43"], acidspray: ["9M", "9L15", "7L15"], - assurance: ["7E"], + assurance: ["9E", "7E"], attract: ["7M"], belch: ["9L46", "7L46"], bite: ["9L7", "8V", "7L7", "7S0"], bodyslam: ["9M"], brickbreak: ["9M"], brutalswing: ["7M"], - clearsmog: ["7E"], + clearsmog: ["9E", "7E"], confide: ["7M"], crunch: ["9M", "9L32", "8V", "7L32"], - curse: ["7E"], + curse: ["9M", "9E", "7E"], darkpulse: ["9M"], dig: ["9M", "8V"], disable: ["9L12", "8V", "7L12"], @@ -12381,15 +12925,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8V", "7T"], imprison: ["9M", "7E"], infestation: ["7M"], - knockoff: ["9L29", "7T", "7L29"], - meanlook: ["7E"], + knockoff: ["9M", "9L29", "7T", "7L29"], + meanlook: ["9E", "7E"], megadrain: ["8V"], memento: ["9L48", "7L48"], metronome: ["9M"], minimize: ["9L21", "8V", "7L21"], mudshot: ["9M"], mudslap: ["9M"], - painsplit: ["7T"], + painsplit: ["9M", "7T"], payback: ["7M"], poisonfang: ["9L18", "7L18"], poisongas: ["9L1", "8V", "7L1", "7S0"], @@ -12400,6 +12944,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pursuit: ["7E"], quash: ["7M"], raindance: ["9M", "7M"], + recycle: ["9E"], rest: ["9M", "8V", "7M"], return: ["7M"], rockpolish: ["7M"], @@ -12411,21 +12956,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["9L37", "8V", "7L37"], selfdestruct: ["8V"], shadowball: ["9M", "8V", "7M"], - shadowsneak: ["7E"], + shadowsneak: ["9E", "7E"], shockwave: ["7T"], sleeptalk: ["9M", "7M"], sludgebomb: ["9M", "8V", "7M"], - sludgewave: ["7M"], + sludgewave: ["9M", "7M"], snarl: ["9M", "7M"], snore: ["7T"], - spite: ["7T", "7E"], - spitup: ["7E"], - stockpile: ["7E"], + spite: ["9M", "9E", "7T", "7E"], + spitup: ["9E", "7E"], + stockpile: ["9E", "7E"], stoneedge: ["9M", "7M"], substitute: ["9M", "8V", "7M"], sunnyday: ["9M", "7M"], swagger: ["7M"], - swallow: ["7E"], + swallow: ["9E", "7E"], swift: ["9M"], takedown: ["9M"], taunt: ["9M", "8V", "7M"], @@ -12435,7 +12980,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M"], thunderpunch: ["9M", "8V", "7T"], torment: ["7M"], - toxic: ["9L26", "8V", "7M"], + toxic: ["9M", "9L26", "8V", "7M"], venoshock: ["9M", "7M"], zenheadbutt: ["9M"], }, @@ -12456,7 +13001,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], confide: ["7M", "6M"], confuseray: ["9M"], - curse: ["7V"], + curse: ["9M", "7V"], darkpulse: ["9M", "8V", "7M", "6M", "5T", "4M"], dig: ["9M", "8V", "6M", "5M", "4M", "3M"], disable: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L8"], @@ -12471,13 +13016,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], fling: ["9M", "7M", "7L26", "6M", "6L26", "5M", "5L28", "4M", "4L28"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], - gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L58", "4T", "4L54"], + gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L49", "4T", "4L54"], harden: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - haze: ["8V"], + haze: ["9M", "8V"], headbutt: ["8V"], helpinghand: ["9M", "8V"], hex: ["9M"], @@ -12487,17 +13032,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { imprison: ["9M"], incinerate: ["6M", "5M"], infestation: ["7M", "6M"], + knockoff: ["9M"], + lashout: ["9M"], + lunge: ["9M"], megadrain: ["8V", "7V"], - memento: ["9L57", "7L57", "6L57", "5L64", "4L65", "3L61"], + memento: ["9L57", "7L57", "6L57", "5L57", "4L65", "3L61"], metronome: ["9M"], mimic: ["7V", "3T"], minimize: ["9L21", "8V", "7L21", "7V", "6L18", "5L17", "4L17", "3L19"], moonblast: ["8V"], - mudbomb: ["7L18", "6L18", "5L23", "4L23"], + mudbomb: ["7L18", "6L18", "5L21", "4L23"], mudshot: ["9M", "9L18"], mudslap: ["9M", "9L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3T"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["7M", "6M", "5M", "4M"], poisongas: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], @@ -12514,16 +13062,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["7M", "6M", "5M"], sandstorm: ["9M"], scaryface: ["9M"], - screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L33", "4L33", "3L26"], + screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L32", "4L33", "3L26"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["8V", "7V", "3T"], shadowball: ["9M", "8V", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L20", "4L20", "3L13"], - sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L36", "4M", "4L36", "3M", "3L47"], - sludgewave: ["9L32", "7M", "7L32", "6M", "6L32", "5M", "5L50"], + sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L15", "4L20", "3L13"], + sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L36", "3M", "3L47"], + sludgewave: ["9M", "9L32", "7M", "7L32", "6M", "6L32", "5M", "5L37"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M"], strength: ["6M", "5M", "4M", "3M"], substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -12537,7 +13086,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M"], venomdrench: ["7L1", "6L38"], venoshock: ["9M", "7M", "6M", "5M"], @@ -12567,6 +13116,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brutalswing: ["7M"], confide: ["7M"], crunch: ["9M", "9L32", "8V", "7L32"], + curse: ["9M"], darkpulse: ["9M", "8V", "7M"], dig: ["9M", "8V"], disable: ["9L12", "8V", "7L12"], @@ -12581,7 +13131,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "8V", "7M"], fling: ["9M", "7M", "7L26"], focusblast: ["9M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], foulplay: ["8V"], frustration: ["7M"], gastroacid: ["7T"], @@ -12589,7 +13139,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "7M"], gunkshot: ["9M", "9L40", "7T", "7L40"], harden: ["9L1", "8V", "7L1"], - haze: ["8V"], + haze: ["9M", "8V"], headbutt: ["8V"], helpinghand: ["9M", "8V"], hex: ["9M"], @@ -12598,14 +13148,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8V", "7T"], imprison: ["9M"], infestation: ["7M"], - knockoff: ["9L29", "7T", "7L29"], + knockoff: ["9M", "9L29", "7T", "7L29"], + lashout: ["9M"], megadrain: ["8V"], memento: ["9L57", "7L57"], metronome: ["9M"], minimize: ["9L21", "8V", "7L21"], moonblast: ["8V"], mudshot: ["9M"], - painsplit: ["7T"], + mudslap: ["9M"], + painsplit: ["9M", "7T"], payback: ["7M"], poisonfang: ["9L18", "7L18"], poisongas: ["9L1", "8V", "7L1"], @@ -12629,10 +13181,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shockwave: ["7T"], sleeptalk: ["9M", "7M"], sludgebomb: ["9M", "8V", "7M"], - sludgewave: ["7M"], + sludgewave: ["9M", "7M"], snarl: ["9M", "7M"], snore: ["7T"], - spite: ["7T"], + spite: ["9M", "7T"], stoneedge: ["9M", "7M"], substitute: ["9M", "8V", "7M"], sunnyday: ["9M", "7M"], @@ -12646,7 +13198,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M"], thunderpunch: ["9M", "8V", "7T"], torment: ["7M"], - toxic: ["9L26", "8V", "7M"], + toxic: ["9M", "9L26", "8V", "7M"], venomdrench: ["7L1"], venoshock: ["9M", "7M"], zenheadbutt: ["9M"], @@ -12683,7 +13235,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L52", "4M", "4L49", "3M", "3L49"], iceshard: ["9L8", "8L8", "8V", "7L28", "6L28", "5L28", "4L28"], icespinner: ["9M"], - iciclespear: ["8M", "7L13", "7E", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3L8", "3E", "3S0", "3S1"], + iciclespear: ["9M", "8M", "7L13", "7E", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3L8", "3E", "3S0", "3S1"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L40"], leer: ["9L12", "8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L33"], @@ -12728,7 +13280,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["9L1", "8L1", "8V", "7L1", "7V"], waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], - whirlpool: ["9L16", "8M", "8L16", "7L40", "7V", "6L40", "5L40", "4M", "4L37"], + whirlpool: ["9M", "9L16", "8M", "8L16", "7L40", "7V", "6L40", "5L40", "4M", "4L37"], withdraw: ["9L4", "8L4", "8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L1", "3S0", "3S1"], }, eventData: [ @@ -12776,7 +13328,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { iceshard: ["9L1", "8L1"], icespinner: ["9M"], iciclecrash: ["9L1", "8L1", "7L50", "6L50", "5L52"], - iciclespear: ["9L0", "8M", "8L0", "5S0"], + iciclespear: ["9M", "9L0", "8M", "8L0", "5S0"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irondefense: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "4T"], leer: ["9L1", "8L1", "8V"], @@ -12827,8 +13379,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["9L1", "8L1", "8V", "7V"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - weatherball: ["8M"], - whirlpool: ["9L1", "8M", "8L1", "7V", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "9L1", "8M", "8L1", "7V", "4M"], withdraw: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], }, eventData: [ @@ -12847,7 +13399,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L21"], corrosivegas: ["8T"], - curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + curse: ["9M", "9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], darkpulse: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L36", "6M", "6L36", "5T", "5L36", "4M", "4L36"], dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], destinybond: ["9L44", "8L44", "7L40", "7V", "6L40", "5L40", "4L40", "3L33"], @@ -12865,7 +13417,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], grudge: ["8E", "7E", "6E", "5E", "4E", "3E"], gunkshot: ["9M"], - haze: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], headbutt: ["8V"], hex: ["9M", "9L24", "8M", "8L24", "7L43", "6L43", "5L43"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -12884,15 +13436,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["7L47", "7V", "6L47", "5L47", "4L43", "3T", "3L41"], nightshade: ["9M", "9L28", "8L28", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L16"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["9L12", "8M", "8L12", "7M", "7L26", "6M", "6L26", "5M", "5L26", "4M", "4L26"], perishsong: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], poisongas: ["8V"], poisonjab: ["9M", "8M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], psywave: ["7E", "7V", "6E", "5E", "4E", "3E"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -12905,14 +13457,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { selfdestruct: ["8M", "8V", "7V", "3T"], shadowball: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L36"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "5D"], + sludgewave: ["9M", "8M", "5D"], smog: ["9E", "8E", "8V", "7E", "6E", "5E"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["9L16", "8L16", "7T", "7L5", "7V", "6T", "6L5", "5T", "5L5", "4T", "4L5", "3L8"], + spite: ["9M", "9L16", "8L16", "7T", "7L5", "7V", "6T", "6L5", "5T", "5L5", "4T", "4L5", "3L8"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["9L32", "8L32", "8V", "7L22", "6L22", "5L22", "4T", "4L22"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -12925,7 +13477,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["9E", "8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9E", "8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], uproar: ["8M", "7T", "6T", "5T", "4T"], @@ -12948,7 +13500,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "5L19", "5S0", "4L19", "3L21"], corrosivegas: ["8T"], - curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + curse: ["9M", "9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], darkpulse: ["9M", "9L42", "8M", "8L42", "8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], destinybond: ["9L54", "8L54", "7L50", "7V", "6L50", "5L50", "4L50", "3L39"], @@ -12967,6 +13519,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], gunkshot: ["9M"], + haze: ["9M"], headbutt: ["8V"], hex: ["9M", "9L24", "8M", "8L24", "7L55", "6L55", "5L55"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -12986,15 +13539,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["7L61", "7V", "6L61", "5L61", "4L55", "3T", "3L53"], nightshade: ["9M", "9L30", "8L30", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L16"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["9L12", "8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S0", "4M", "4L28"], phantomforce: ["9M"], poisongas: ["8V"], poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], psywave: ["7V"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -13008,14 +13561,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shadowpunch: ["9L0", "8L0", "7L1", "6L25", "5L25", "5S0", "4L25", "3L25"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], - sludgewave: ["8M"], + sludgewave: ["9M", "8M"], smog: ["8V"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + spite: ["9M", "9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["9L36", "8L36", "8V", "7L22", "6L22", "5L22", "5S0", "4T", "4L22"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -13028,7 +13581,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -13062,7 +13615,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "6S1", "6S2", "6S4", "5L19", "4L19", "3L21", "3S0"], corrosivegas: ["8T"], counter: ["7V", "3T"], - curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13", "3S0"], + curse: ["9M", "9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13", "3S0"], darkpulse: ["9M", "9L42", "8M", "8L42", "8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], dazzlinggleam: ["9M", "8M", "8V", "8S7", "7M", "6M"], destinybond: ["9L54", "8L54", "7L50", "7V", "6L50", "6S3", "5L50", "4L50", "3L39"], @@ -13081,13 +13634,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], gunkshot: ["9M"], - haze: ["8V"], + haze: ["9M", "8V"], headbutt: ["8V", "7V", "4T"], hex: ["9M", "9L24", "8M", "8L24", "7L55", "6L55", "5L55"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -13097,7 +13650,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], imprison: ["9M", "8M"], infestation: ["7M", "6M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lick: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], meanlook: ["9L1", "8L1", "7L8", "7V", "6L8", "6S5", "6S6", "5L8", "4L8", "3L13"], @@ -13111,17 +13664,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["7L61", "7V", "6L61", "5L61", "4L55", "3T", "3L53"], nightshade: ["9M", "9L30", "8L30", "8V", "7L15", "7V", "6L15", "6S2", "5L15", "4L15", "3L16", "3S0"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["9L12", "8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], perishsong: ["9L1", "8L1"], phantomforce: ["9M", "8M"], poisongas: ["8V"], poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], poweruppunch: ["6M"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "6S1", "6S5", "6S6", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], psywave: ["7V"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -13139,15 +13693,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shadowpunch: ["9L1", "8L1", "7L1", "6L25", "6S1", "6S2", "5L25", "4L25", "3L25"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], skullbash: ["7V"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8M", "8V", "8S7", "7M", "6M", "6S3", "5M", "4M", "3M"], - sludgewave: ["8M", "6S4"], + sludgewave: ["9M", "8M", "6S4"], smog: ["8V"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1", "3S0"], + spite: ["9M", "9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1", "3S0"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], @@ -13164,7 +13718,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], thunderwave: ["9M"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -13199,12 +13753,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["8M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - curse: ["8L16", "7L4", "7V", "6L4", "5L46", "4L38"], + curse: ["8L16", "7L4", "7V", "6L4", "5L4", "4L38"], defensecurl: ["8E", "7E", "6E", "5E", "4E"], dig: ["8M", "8L44", "8V", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "3M"], - doubleedge: ["8L56", "8V", "7L49", "7V", "6L49", "5L57", "4L46", "3T", "3L56"], + doubleedge: ["8L56", "8V", "7L49", "7V", "6L49", "5L49", "4L46", "3T", "3L56"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonbreath: ["8L12", "7L25", "6L25", "5L41", "4L33", "3L30"], + dragonbreath: ["8L12", "7L25", "6L25", "5L25", "4L33", "3L30"], dragondance: ["8M"], dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], dragontail: ["8E", "8V", "7M", "6M", "5M"], @@ -13226,7 +13780,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], highhorsepower: ["8M"], ironhead: ["8M", "7T", "6T", "5T", "4T"], - irontail: ["8M", "8L48", "8V", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L49", "4M", "4L38", "3M", "3L45"], + irontail: ["8M", "8L48", "8V", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L40", "4M", "4L38", "3M", "3L45"], meteorbeam: ["8T"], mimic: ["7V", "3T"], mudslap: ["7V", "4T", "3T"], @@ -13236,35 +13790,35 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { payback: ["8M", "7M", "6M", "5M", "4M"], protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "3T"], - rage: ["8V", "7L13", "7V", "6L13", "5L14", "4L14", "3L23"], + rage: ["8V", "7L13", "7V", "6L13", "5L10", "4L14", "3L23"], rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roar: ["7M", "7V", "6M", "5M", "4M", "3M"], rockblast: ["8M", "7E", "6E", "5E", "4E"], rockclimb: ["7E", "6E", "5E", "5D", "4M"], - rockpolish: ["8L8", "7M", "7L19", "6M", "6L19", "5M", "5L30", "4M", "4L30"], + rockpolish: ["8L8", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L30"], rockslide: ["8M", "8L20", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4E", "3T", "3E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rockthrow: ["8L1", "8V", "7L7", "7V", "6L7", "5L9", "4L9", "3L12"], - rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L17", "4M", "4L17", "3M"], + rockthrow: ["8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L9", "3L12"], + rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L13", "4M", "4L17", "3M"], rollout: ["8E", "7E", "6E", "5E", "4T", "4E"], rototiller: ["7E", "6E"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["8M", "8L40", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L25", "4M", "4L22", "3M", "3L33"], - sandtomb: ["8M", "8L28", "7L37", "6L37", "5L54", "4L41", "3L49"], + sandtomb: ["8M", "8L28", "7L37", "6L37", "5L37", "4L41", "3L49"], scaryface: ["8M"], scorchingsands: ["8T"], screech: ["8M", "8L24", "8V", "7L31", "7V", "6L31", "5L6", "4L6", "3L1"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["8M", "8V", "7V", "3T"], skullbash: ["7V"], - slam: ["8L36", "8V", "7L28", "7V", "6L28", "5L33", "4L25", "3L37"], + slam: ["8L36", "8V", "7L28", "7V", "6L28", "5L28", "4L25", "3L37"], sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], smackdown: ["8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "8L32", "8V", "7T", "7L16", "7E", "6T", "6L16", "6E", "5T", "5L38", "5E", "5D", "4M"], + stealthrock: ["8M", "8L32", "8V", "7T", "7L16", "7E", "6T", "6L16", "6E", "5T", "5L16", "5E", "5D", "4M"], stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L62", "4M", "4L49"], + stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L49"], strength: ["7V", "6M", "5M", "4M", "3M"], substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -13286,7 +13840,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["4T"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - autotomize: ["8L8", "7L19", "6L19", "5L30"], + autotomize: ["8L8", "7L19", "6L19", "5L19"], bind: ["8L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4L1", "3L8"], block: ["7T", "6T", "5T", "4T"], bodypress: ["8M"], @@ -13296,15 +13850,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["8M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - crunch: ["8M", "8L1", "7L37", "7V", "6L37", "5L54", "4L41", "3L49"], - curse: ["8L16", "7L4", "7V", "6L4", "5L46", "4L38"], + crunch: ["8M", "8L1", "7L37", "7V", "6L37", "5L37", "4L41", "3L49"], + curse: ["8L16", "7L4", "7V", "6L4", "5L4", "4L38"], cut: ["7V", "6M", "5M", "4M", "3M"], darkpulse: ["8M", "7M", "6M", "5T", "4M"], defensecurl: ["7V", "3T"], dig: ["8M", "8L44", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "3M"], - doubleedge: ["8L56", "7L49", "6L49", "5L57", "4L46", "3T", "3L56"], + doubleedge: ["8L56", "7L49", "6L49", "5L49", "4L46", "3T", "3L56"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonbreath: ["8L12", "7L25", "7V", "6L25", "5L41", "4L33", "3L30"], + dragonbreath: ["8L12", "7L25", "7V", "6L25", "5L25", "4L33", "3L30"], dragondance: ["8M"], dragonpulse: ["8M", "7T", "6T", "5T", "4M"], dragontail: ["7M", "6M", "5M"], @@ -13328,7 +13882,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], irondefense: ["8M"], ironhead: ["8M", "7T", "6T", "5T", "4T"], - irontail: ["8M", "8L48", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L49", "4M", "4L38", "3M", "3L45"], + irontail: ["8M", "8L48", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L40", "4M", "4L38", "3M", "3L45"], magnetrise: ["8L60", "7T", "6T", "5T", "4T"], meteorbeam: ["8T"], mimic: ["3T"], @@ -13340,7 +13894,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychicfangs: ["8M"], psychup: ["7M", "6M", "5M", "4M"], - rage: ["7L13", "7V", "6L13", "5L14", "4L14", "3L23"], + rage: ["7L13", "7V", "6L13", "5L10", "4L14", "3L23"], rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roar: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -13349,8 +13903,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockpolish: ["8L1", "7M", "6M", "5M", "4M", "4L30"], rockslide: ["8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rockthrow: ["8L1", "7L7", "7V", "6L7", "5L9", "4L9", "3L12"], - rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L17", "4M", "4L17", "3M"], + rockthrow: ["8L1", "7L7", "7V", "6L7", "5L7", "4L9", "3L12"], + rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L13", "4M", "4L17", "3M"], rollout: ["7V", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["8M", "8L40", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L25", "4M", "4L22", "3M", "3L33"], @@ -13360,15 +13914,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["8M", "8L24", "7L31", "7V", "6L31", "5L6", "4L6", "3L1"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["8M", "3T"], - slam: ["8L36", "7L28", "7V", "6L28", "5L33", "4L25", "3L37"], + slam: ["8L36", "7L28", "7V", "6L28", "5L28", "4L25", "3L37"], sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], smackdown: ["8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "8L32", "7T", "7L16", "6T", "6L16", "5T", "5L38", "4M"], + stealthrock: ["8M", "8L32", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4M"], steelbeam: ["8T"], steelroller: ["8T"], stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L62", "4M", "4L49"], + stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L49"], strength: ["7V", "6M", "5M", "4M", "3M"], substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -13396,35 +13950,39 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confusion: ["9L9", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L11"], counter: ["7V", "3T"], - curse: ["7V"], + curse: ["9M", "7V"], dazzlinggleam: ["9M", "8V", "7M", "6M"], disable: ["9L5", "8V", "7L5", "7V", "6L5", "5L5", "4L7", "3L7"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M"], drainpunch: ["9M", "7T", "6T", "5T", "5D", "4M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], dynamicpunch: ["7V", "3T"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], + expandingforce: ["9M"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], flash: ["7V", "6M", "5M", "4M", "3M"], flatter: ["9E", "7E", "6E", "5E", "4E"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["9L49", "7L61", "7V", "6L61", "5L61", "4L53", "3L45"], + futuresight: ["9M", "9L49", "7L61", "7V", "6L61", "5L61", "4L53", "3L45"], grassknot: ["9M", "7M", "6M", "5M", "4M"], guardswap: ["9E", "7E", "6E", "5E", "4E"], + haze: ["9M"], headbutt: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4T", "4L15", "3L17"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hypnosis: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], icepunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], imprison: ["9M"], + knockoff: ["9M"], lightscreen: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], lowkick: ["9M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "7M", "6M", "5M"], @@ -13446,9 +14004,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L21", "8V", "7L25", "6L25", "5L25", "4L26"], psychic: ["9M", "9L37", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L40", "3M", "3L31"], + psychicnoise: ["9M"], psychicterrain: ["9M", "7E"], psychocut: ["9E", "7E", "6E", "5E", "5D", "4E"], - psychup: ["9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L29", "3T", "3L37"], + psychup: ["9M", "9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L29", "3T", "3L37"], psyshock: ["9M", "9L45", "7M", "7L57", "6M", "6L57", "5M", "5L57"], psywave: ["7V"], rage: ["7V"], @@ -13485,7 +14044,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], triattack: ["8V", "7V"], trick: ["9M", "7T", "6T", "5T", "4T"], @@ -13518,28 +14077,31 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9M"], confusion: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], counter: ["7V", "3T"], - curse: ["7V"], + curse: ["9M", "7V"], dazzlinggleam: ["9M", "8V", "7M", "6M"], disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M"], drainpunch: ["9M", "7T", "6T", "5T", "4M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], dynamicpunch: ["7V", "3T"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], + expandingforce: ["9M"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["9L56", "7L1", "7V", "6L1", "5L61", "4L69", "3L57"], + futuresight: ["9M", "9L56", "7L1", "7V", "6L1", "5L61", "4L69", "3L57"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], + haze: ["9M"], headbutt: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4T", "4L15", "3L17"], helpinghand: ["9M"], hex: ["9M"], @@ -13548,6 +14110,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypnosis: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], imprison: ["9M"], + knockoff: ["9M"], lightscreen: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], lowkick: ["9M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "7M", "6M", "5M"], @@ -13568,8 +14131,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L21", "8V", "7L25", "6L25", "5L25", "4L28"], psychic: ["9M", "9L42", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L50", "3M", "3L35", "3S0"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L43"], + psychup: ["9M", "9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L43"], psyshock: ["9M", "9L51", "7M", "7L57", "6M", "6L57", "5M", "5L57"], psywave: ["7V"], rage: ["7V"], @@ -13608,7 +14172,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], triattack: ["8V", "7V"], trick: ["9M", "7T", "6T", "5T", "4T"], @@ -13812,29 +14376,31 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { agility: ["9M"], bide: ["7V"], - charge: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + charge: ["9M", "9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], chargebeam: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L26"], confide: ["7M", "6M"], curse: ["7V"], discharge: ["9L37", "7L37", "6L37"], + doubleedge: ["9M"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], eerieimpulse: ["9M", "9L6", "7L6", "6L6"], electricterrain: ["9M"], electroball: ["9M", "9L22", "7L22", "6L22", "5L29"], + electroweb: ["9M"], endure: ["9M", "7V", "4M", "3T"], explosion: ["9L41", "8V", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L47", "4M", "4L43", "3T", "3L46"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], foulplay: ["9M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gyroball: ["9L46", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L40"], + gyroball: ["9M", "9L46", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L40"], headbutt: ["8V", "7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], lightscreen: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L22", "3M", "3L37"], magiccoat: ["7T", "6T", "5T", "4T"], magnetrise: ["9L34", "7T", "7L34", "6T", "6L34", "5T", "5L40", "4T", "4L36"], - metalsound: ["9E"], + metalsound: ["9M", "9E"], mimic: ["7V", "3T"], mirrorcoat: ["9L50", "8V", "7L48", "7V", "6L48", "5L50", "4L47", "3L49", "3S0"], naturalgift: ["5D", "4M"], @@ -13889,11 +14455,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { agility: ["9M"], bulletseed: ["9M", "9L9"], - charge: ["9L1"], + charge: ["9M", "9L1"], chargebeam: ["9M", "9L16"], discharge: ["9L34"], + doubleedge: ["9M"], electricterrain: ["9M"], electroball: ["9M", "9L22"], + electroweb: ["9M"], endure: ["9M"], energyball: ["9M", "9L29"], explosion: ["9L41"], @@ -13901,8 +14469,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foulplay: ["9M"], gigadrain: ["9M"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M", "9L50"], - gyroball: ["9L46"], + gyroball: ["9M", "9L46"], leafstorm: ["9M"], leechseed: ["9E"], protect: ["9M"], @@ -13937,15 +14506,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { agility: ["9M"], bide: ["7V"], - charge: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + charge: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], chargebeam: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L26"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], discharge: ["9L41", "7L41", "6L41"], + doubleedge: ["9M"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], eerieimpulse: ["9M", "9L1", "7L1", "6L6"], electricterrain: ["9M"], electroball: ["9M", "9L22", "7L22", "6L22", "5L29"], + electroweb: ["9M"], endure: ["9M", "7V", "4M", "3T"], explosion: ["9L47", "8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L57", "4M", "4L51", "3T", "3L54"], facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -13953,7 +14524,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foulplay: ["9M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], - gyroball: ["9L54", "7M", "7L54", "6M", "6L51", "5M", "5L51", "4M", "4L46"], + gyroball: ["9M", "9L54", "7M", "7L54", "6M", "6L51", "5M", "5L51", "4M", "4L46"], headbutt: ["8V", "7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -13962,6 +14533,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magiccoat: ["7T", "6T", "5T", "4T"], magneticflux: ["9L1", "7L1", "6L1"], magnetrise: ["9L36", "7T", "7L36", "6T", "6L36", "5T", "5L46", "4T", "4L40"], + metalsound: ["9M"], mimic: ["7V", "3T"], mirrorcoat: ["9L58", "8V", "7L58", "7V", "6L58", "5L62", "4L57", "3L59"], naturalgift: ["4M"], @@ -13986,6 +14558,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { spark: ["9L9", "7L9", "6L1", "5L1", "4L1", "3L21"], substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], + supercellslam: ["9M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["9M", "9L20", "8V", "7L20", "7V", "6L20", "5L40", "4T", "4L35", "3T", "3L48"], tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], @@ -14016,12 +14589,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { agility: ["9M"], bulletseed: ["9M", "9L9"], - charge: ["9L1"], + charge: ["9M", "9L1"], chargebeam: ["9M", "9L16"], chloroblast: ["9L0"], + curse: ["9M"], discharge: ["9L34"], + doubleedge: ["9M"], electricterrain: ["9M"], electroball: ["9M", "9L22"], + electroweb: ["9M"], endure: ["9M"], energyball: ["9M", "9L29"], explosion: ["9L41"], @@ -14030,8 +14606,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M", "9L50"], - gyroball: ["9L46"], + gyroball: ["9M", "9L46"], hyperbeam: ["9M"], leafstorm: ["9M"], protect: ["9M"], @@ -14047,6 +14624,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { solarbeam: ["9M"], stunspore: ["9L6"], substitute: ["9M"], + supercellslam: ["9M"], swift: ["9M", "9L20"], tackle: ["9L1"], takedown: ["9M"], @@ -14063,88 +14641,96 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, exeggcute: { learnset: { - absorb: ["8L1"], - ancientpower: ["8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + absorb: ["9L1", "8L1"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], barrage: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], bestow: ["7L50", "6L50", "5L53"], bide: ["7V"], - block: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], - bulletseed: ["8M", "8L30", "7L17", "6L17", "5L17", "4M", "4L17", "3M"], + block: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + bulletseed: ["9M", "9L30", "8M", "8L30", "7L17", "6L17", "5L17", "4M", "4L17", "3M"], captivate: ["4M"], confide: ["7M", "6M"], - confusion: ["8L20", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L19"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + confusion: ["9L20", "8L20", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L19"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], eggbomb: ["7V"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], - extrasensory: ["8L40", "7L47", "6L47", "5L47"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + extrasensory: ["9L40", "8L40", "7L47", "6L47", "5L47"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigadrain: ["8M", "8L35", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M", "7E", "6E"], + gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7E", "6E"], gravity: ["7T", "6T", "5T", "4T"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + imprison: ["9M"], infestation: ["7M", "6M"], - ingrain: ["8E", "7E", "6E", "5E", "4E", "3E"], - leafstorm: ["8M", "7E", "6E", "5E", "4E"], - leechseed: ["8L10", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L13"], - lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + ingrain: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + leafstorm: ["9M", "8M", "7E", "6E", "5E", "4E"], + leechseed: ["9L10", "8L10", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L13"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], luckychant: ["7E", "6E", "5E", "4E"], - megadrain: ["8L15", "8V", "7V"], + megadrain: ["9L15", "8L15", "8V", "7V"], mimic: ["7V", "3T"], - moonlight: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + moonlight: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], naturalgift: ["7L37", "7E", "6L37", "6E", "5L37", "5E", "4M", "4L37"], naturepower: ["7M", "7E", "6M", "6E", "5E", "4E"], nightmare: ["7V", "3T"], - poisonpowder: ["8E", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], + poisonpowder: ["9E", "8E", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], powerswap: ["8M", "7E", "6E", "5E", "4E"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psybeam: ["8V"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "5L47", "4M", "4L47", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8V"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5L47", "4M", "4L47", "3M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["9M"], psywave: ["7V"], rage: ["7V"], - reflect: ["8M", "8L5", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "4M", "4L7", "4E", "3M", "3L7", "3E"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "9L5", "8M", "8L5", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "4M", "4L7", "4E", "3M", "3L7", "3E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], selfdestruct: ["8M", "8V", "7V", "3T"], - skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], - sleeppowder: ["8E", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L37"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + skillswap: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeppowder: ["9E", "8E", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L37"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8L55", "8V", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + solarbeam: ["9M", "9L55", "8M", "8L55", "8V", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + storedpower: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], - stunspore: ["8E", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L25"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + stunspore: ["9E", "8E", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L25"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], sweetscent: ["3S0"], - swordsdance: ["8M", "7M", "6M", "5M", "4M"], - synthesis: ["8L25", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + synthesis: ["9L25", "8L25", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], takedown: ["7V"], telekinesis: ["7T", "5M"], teleport: ["8V", "7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["9M"], trickroom: ["8M", "7M", "6M", "5M", "4M"], - uproar: ["8M", "8L45", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + uproar: ["9M", "9L45", "8M", "8L45", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], wish: ["3S0"], - worryseed: ["8L50", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + worryseed: ["9L50", "8L50", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 3, level: 5, shiny: 1, moves: ["sweetscent", "wish"], pokeball: "pokeball"}, @@ -14155,96 +14741,107 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, exeggutor: { learnset: { - absorb: ["8L1"], + absorb: ["9L1", "8L1"], ancientpower: ["4T", "3S0"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], barrage: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], bide: ["7V"], block: ["7T", "6T", "5T"], - bulldoze: ["8M"], - bulletseed: ["8M", "8L1", "4M", "3M"], - calmmind: ["8M"], + bodyslam: ["9M"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "9L1", "8M", "8L1", "4M", "3M"], + calmmind: ["9M", "8M"], captivate: ["4M"], confide: ["7M", "6M"], - confusion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - curse: ["7V"], - doubleedge: ["7V", "3T"], + confusion: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["9M", "7V"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + earthquake: ["9M"], eggbomb: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L31"], - endure: ["8M", "7V", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M", "8T"], explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], - extrasensory: ["8L1"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["8M"], - gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - gravity: ["7T", "6T", "5T", "4T"], + futuresight: ["9M", "8M"], + gigadrain: ["9M", "9L1", "8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + growth: ["9L1"], headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + imprison: ["9M"], infestation: ["7M", "6M"], - leafstorm: ["8M", "8L1", "7L47", "6L47", "5L47", "4L47"], - leechseed: ["8L1"], - lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - magicalleaf: ["8M"], - megadrain: ["8L1", "8V", "7V"], + leafstorm: ["9M", "9L1", "8M", "8L1", "7L47", "6L47", "5L47", "4L47"], + leechseed: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + magicalleaf: ["9M", "8M"], + megadrain: ["9L1", "8L1", "8V", "7V"], mimic: ["7V", "3T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], nightmare: ["7V", "3T"], powerswap: ["8M"], powerwhip: ["8V"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], psychocut: ["8M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "8L1", "7M", "7L17", "6M", "6L17", "5M", "5L17"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "9L1", "8M", "8L1", "7M", "7L17", "6M", "6L17", "5M", "5L17"], psywave: ["7V"], rage: ["7V"], - reflect: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], refresh: ["3S0"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + seedbomb: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], selfdestruct: ["8M", "8V", "7V", "3T"], - skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - stomp: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], - stompingtantrum: ["8M", "7T"], + solarbeam: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stomp: ["9L0", "8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], + stompingtantrum: ["9M", "8M", "7T"], + storedpower: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], stunspore: ["8V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M"], - synthesis: ["8L1", "7T", "6T", "5T", "4T"], - takedown: ["7V"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + synthesis: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], telekinesis: ["7T", "5M"], teleport: ["8V", "7V"], + terablast: ["9M"], terrainpulse: ["8T"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - trickroom: ["8M", "7M", "6M", "5M", "4M"], - uproar: ["8M", "8L1"], - woodhammer: ["8L1", "7L37", "6L37", "5L37", "4L37"], - worryseed: ["8L1", "7T", "6T", "5T", "4T"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "9L1", "8M", "8L1"], + woodhammer: ["9L1", "8L1", "7L37", "6L37", "5L37", "4L37"], + worryseed: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 46, moves: ["refresh", "psychic", "hypnosis", "ancientpower"]}, @@ -14252,90 +14849,106 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, exeggutoralola: { learnset: { - absorb: ["8L1"], + absorb: ["9L1", "8L1"], attract: ["8M", "7M"], barrage: ["8V", "7L1"], block: ["7T"], - breakingswipe: ["8M"], - brickbreak: ["8M", "8V", "7M"], + bodyslam: ["9M"], + breakingswipe: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M"], brutalswing: ["8M", "7M"], - bulldoze: ["8M", "7M"], - bulletseed: ["8M", "8L1"], + bulldoze: ["9M", "8M", "7M"], + bulletseed: ["9M", "9L1", "8M", "8L1"], + calmmind: ["9M"], celebrate: ["7S0"], confide: ["7M"], - confusion: ["8L1", "8V", "7L1"], + confusion: ["9L1", "8L1", "8V", "7L1"], + curse: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M"], - dracometeor: ["8T", "7T", "7S0"], - dragonhammer: ["8L0", "7L1"], - dragonpulse: ["8M", "8V", "7T"], - dragontail: ["8V", "7M"], + dracometeor: ["9M", "8T", "7T", "7S0"], + dragoncheer: ["9M"], + dragonhammer: ["9L0", "8L0", "7L1"], + dragonpulse: ["9M", "8M", "8V", "7T"], + dragontail: ["9M", "8V", "7M"], dreameater: ["8V", "7M"], - earthquake: ["8M", "8V", "7M"], + earthquake: ["9M", "8M", "8V", "7M"], eggbomb: ["8V", "7L27"], - endure: ["8M"], - energyball: ["8M", "7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], explosion: ["7M"], - extrasensory: ["8L1"], - facade: ["8M", "8V", "7M"], - flamethrower: ["8M", "8V", "7M"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "8V", "7M"], + flamethrower: ["9M", "8M", "8V", "7M"], frustration: ["7M"], - gigadrain: ["8M", "8L1", "7T"], - gigaimpact: ["8M", "7M"], - grassknot: ["8M", "7M"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - gravity: ["7T"], + gigadrain: ["9M", "9L1", "8M", "8L1", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + gravity: ["9M", "7T"], + growth: ["9L1"], headbutt: ["8V"], + helpinghand: ["9M"], hiddenpower: ["7M"], - hyperbeam: ["8M", "8V", "7M"], - hypnosis: ["8L1", "8V", "7L1"], + hyperbeam: ["9M", "8M", "8V", "7M"], + hypnosis: ["9L1", "8L1", "8V", "7L1"], + imprison: ["9M"], infestation: ["7M"], - ironhead: ["8M", "7T"], + ironhead: ["9M", "8M", "7T"], irontail: ["8M", "8V", "7T"], - knockoff: ["7T"], - leafstorm: ["8M", "8L1", "7L47", "7S0"], - leechseed: ["8L1"], - lightscreen: ["8M", "8V", "7M"], - lowkick: ["8M", "7T"], - magicalleaf: ["8M"], - megadrain: ["8L1", "8V"], + knockoff: ["9M", "7T"], + leafstorm: ["9M", "9L1", "8M", "8L1", "7L47", "7S0"], + leechseed: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "8V", "7M"], + lowkick: ["9M", "8M", "7T"], + magicalleaf: ["9M", "8M"], + megadrain: ["9L1", "8L1", "8V"], naturepower: ["7M"], - outrage: ["8M", "8V", "7T"], + outrage: ["9M", "8M", "8V", "7T"], powerswap: ["8M", "7S0"], powerwhip: ["8M", "8V"], - protect: ["8M", "8V", "7M"], - psychic: ["8M", "8V", "7M"], - psychup: ["7M"], - psyshock: ["8M", "8L1", "7M", "7L17"], - reflect: ["8M", "8L1", "8V", "7M"], - rest: ["8M", "8V", "7M"], + protect: ["9M", "8M", "8V", "7M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "8V", "7M"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psychup: ["9M", "7M"], + psyshock: ["9M", "9L1", "8M", "8L1", "7M", "7L17"], + reflect: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + rest: ["9M", "8M", "8V", "7M"], return: ["7M"], round: ["8M", "7M"], - seedbomb: ["8M", "8L1", "7T", "7L1"], + seedbomb: ["9M", "9L1", "8M", "8L1", "7T", "7L1"], selfdestruct: ["8M", "8V"], - skillswap: ["8M", "7T"], - sleeptalk: ["8M", "7M"], - sludgebomb: ["8M", "8V", "7M"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "8V", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "8L1", "8V", "7M"], - stompingtantrum: ["8M", "7T"], + solarbeam: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + stompingtantrum: ["9M", "8M", "7T"], + storedpower: ["9M"], stunspore: ["8V"], - substitute: ["8M", "8V", "7M"], - sunnyday: ["8M", "7M"], + substitute: ["9M", "8M", "8V", "7M"], + sunnyday: ["9M", "8M", "7M"], superpower: ["8M", "8V", "7T"], swagger: ["7M"], - swordsdance: ["8M", "7M"], - synthesis: ["8L1", "7T"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L1", "8L1", "7T"], + takedown: ["9M"], telekinesis: ["7T"], teleport: ["8V"], + terablast: ["9M"], terrainpulse: ["8T"], - thief: ["8M", "7M"], + thief: ["9M", "8M", "7M"], toxic: ["8V", "7M"], - trickroom: ["8M", "7M"], - uproar: ["8M", "8L1"], - woodhammer: ["8L1", "7L37"], - worryseed: ["8L1", "7T"], - zenheadbutt: ["8M", "7T"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M"], + uproar: ["9M", "9L1", "8M", "8L1"], + woodhammer: ["9L1", "8L1", "7L37"], + worryseed: ["9L1", "8L1", "7T"], + zenheadbutt: ["9M", "8M", "7T"], }, eventData: [ {generation: 7, level: 50, gender: "M", nature: "Modest", isHidden: true, moves: ["powerswap", "celebrate", "leafstorm", "dracometeor"], pokeball: "cherishball"}, @@ -14746,161 +15359,174 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tyrogue: { learnset: { attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulkup: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "7M", "6M", "5M"], - bulletpunch: ["8E", "7E", "6E", "5E", "4E"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], captivate: ["4M"], confide: ["7M", "6M"], - counter: ["8E", "7E", "6E", "5E", "4E", "3T"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E", "3T"], covet: ["7T", "6T", "5T"], curse: ["7V"], detect: ["7V"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1"], - feint: ["8E", "7E", "6E", "5E", "5D"], - focusenergy: ["8M", "8L1"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + feint: ["9E", "8E", "7E", "6E", "5E", "5D"], + focusenergy: ["9L1", "8M", "8L1"], foresight: ["7L1", "6L1", "5L1", "4L1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], - helpinghand: ["8M", "8L1", "7T", "7L1", "7E", "6T", "6L1", "6E", "5T", "5L1", "5E", "4T", "4L1", "4E", "3E"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "7E", "6T", "6L1", "6E", "5T", "5L1", "5E", "4T", "4L1", "4E", "3E"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highjumpkick: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + highjumpkick: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], laserfocus: ["7T"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], - machpunch: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + machpunch: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], megakick: ["8M", "3T"], megapunch: ["8M"], mimic: ["3T"], mindreader: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7E", "6E", "5E"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], - tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], - vacuumwave: ["8E", "7E", "6E", "5E", "4T", "4E"], + upperhand: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + vacuumwave: ["9M", "9E", "8E", "7E", "6E", "5E", "4T", "4E"], workup: ["8M", "7M", "5M"], }, }, hitmonlee: { learnset: { attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - aurasphere: ["8M"], + aurasphere: ["9M", "8M"], + axekick: ["9L50"], + batonpass: ["9M"], bide: ["7V"], - blazekick: ["8M", "8L24", "7L45", "6L45", "5L45", "4L41"], - bodyslam: ["8M", "7V", "3T"], + blazekick: ["9L24", "8M", "8L24", "7L45", "6L45", "5L45", "4L41"], + bodyslam: ["9M", "8M", "7V", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], - brickbreak: ["8M", "8L0", "8V", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L20"], - bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "7M", "6M", "5M"], + brickbreak: ["9M", "9L0", "8M", "8L0", "8V", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L20"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - closecombat: ["8M", "8L36", "7L1", "6L1", "5L57", "4L53"], - coaching: ["8T"], + closecombat: ["9M", "9L36", "8M", "8L36", "7L1", "6L1", "5L57", "4L53"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], counter: ["7V", "3T"], covet: ["7T", "6T", "5T"], curse: ["7V"], detect: ["7V"], - doubleedge: ["7V", "3T"], - doublekick: ["8L4", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["9M", "7V", "3T"], + doublekick: ["9L4", "8L4", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "8L12", "7L49", "7V", "6L49", "5L49", "4M", "4L45", "3T", "3L41"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1"], - feint: ["8L1", "8V", "7L25", "6L25", "5L25", "4L25"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focusenergy: ["8M", "8L1", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L21"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9M"], + endure: ["9M", "9L12", "8M", "8L12", "7L49", "7V", "6L49", "5L49", "4M", "4L45", "3T", "3L41"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1"], + feint: ["9L28", "8L1", "8V", "7L25", "6L25", "5L25", "4L25"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8M", "8L1", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L21"], focuspunch: ["7T", "6T", "4M", "3M"], foresight: ["7L37", "7V", "6L37", "5L37", "4L37", "3L36"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highjumpkick: ["8L44", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L26", "3S0"], + highjumpkick: ["9L44", "8L44", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L26", "3S0"], jumpkick: ["8V", "7L1", "7V", "6L13", "5L13", "4L13", "3L16"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - lowkick: ["8M", "8L8", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "8L1", "7M", "6M", "5M"], + lowkick: ["9M", "9L8", "8M", "8L8", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + lunge: ["9M"], meditate: ["8V", "7L1", "7V", "6L5", "5L5", "4L5", "3L6"], - megakick: ["8M", "8L32", "8V", "7L1", "7V", "6L1", "5L53", "4L49", "3T", "3L46", "3S0"], + megakick: ["9L32", "8M", "8L32", "8V", "7L1", "7V", "6L1", "5L53", "4L49", "3T", "3L46", "3S0"], megapunch: ["8M", "7V", "3T"], - metronome: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], mimic: ["7V", "3T"], mindreader: ["8L28", "7L33", "7V", "6L33", "5L33", "4L33", "3L31", "3S0"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], - poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], refresh: ["3S0"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], - reversal: ["8M", "8L40", "7L1", "7V", "6L1", "5L61", "4L57", "3L51"], + reversal: ["9M", "9L40", "8M", "8L40", "7L1", "7V", "6L1", "5L61", "4L57", "3L51"], rockclimb: ["4M"], - rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], rollingkick: ["8V", "7L1", "7V", "6L9", "5L9", "4L9", "3L11"], round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - suckerpunch: ["4T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L16", "4T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], - tackle: ["8L1"], - takedown: ["7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "7V"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "8M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M"], - vacuumwave: ["4T"], - wideguard: ["8L21", "7L41", "6L41", "5L41"], + upperhand: ["9M"], + uproar: ["9M", "8M"], + vacuumwave: ["9M", "4T"], + wideguard: ["9L21", "8L21", "7L41", "6L41", "5L41"], workup: ["8M", "7M", "5M"], }, eventData: [ @@ -14912,93 +15538,106 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, hitmonchan: { learnset: { - agility: ["8M", "8L28", "8V", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], + agility: ["9M", "9L28", "8M", "8L28", "8V", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - aurasphere: ["8M"], + aurasphere: ["9M", "8M"], + batonpass: ["9M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "7M", "6M", "5M"], - bulletpunch: ["8L1", "7L16", "6L16", "5L16", "4L16"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9L16", "8L1", "7L16", "6L16", "5L16", "4L16"], captivate: ["4M"], - closecombat: ["8M", "8L36", "7L1", "6L1", "5L66", "4L56"], - coaching: ["8T"], + closecombat: ["9M", "9L36", "8M", "8L36", "7L1", "6L1", "5L66", "4L56"], + coaching: ["9M", "8T"], cometpunch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], confide: ["7M", "6M"], - counter: ["8L40", "8V", "7L1", "7V", "6L1", "5L61", "4L51", "3T", "3L50"], + counter: ["9L40", "8L40", "8V", "7L1", "7V", "6L1", "5L61", "4L51", "3T", "3L50"], covet: ["7T", "6T", "5T"], curse: ["7V"], - detect: ["8L12", "7L50", "7V", "6L50", "5L51", "4L46", "3L44"], + detect: ["9L12", "8L12", "7L50", "7V", "6L50", "5L51", "4L46", "3L44"], dizzypunch: ["8V"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drainpunch: ["8M", "8L0", "7T", "6T", "5T", "4M"], + drainpunch: ["9M", "9L0", "8M", "8L0", "7T", "6T", "5T", "4M"], dynamicpunch: ["7V", "3T"], - earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1"], - feint: ["8L1", "8V", "7L21", "6L21", "5L21", "4L21"], - firepunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focusenergy: ["8M", "8L1", "8V"], - focuspunch: ["8L44", "7T", "7L1", "6T", "6L1", "5L56", "4M", "3M"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1"], + feint: ["9L1", "8L1", "8V", "7L21", "6L21", "5L21", "4L21"], + firepunch: ["9M", "9L24", "8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8M", "8L1", "8V"], + focuspunch: ["9M", "9L44", "8L44", "7T", "7L1", "6T", "6L1", "5L56", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T", "3S0"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "6T", "5T", "4T", "3S0"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + icepunch: ["9M", "9L24", "8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + knockoff: ["9M"], laserfocus: ["7T"], leer: ["8V"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], - machpunch: ["8L4", "7L1", "7V", "6L16", "5L16", "4L16", "3L20"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + machpunch: ["9L4", "8L4", "7L1", "7V", "6L16", "5L16", "4L16", "3L20"], megakick: ["8M", "7V", "3T"], - megapunch: ["8M", "8L32", "8V", "7L46", "7V", "6L46", "5L46", "4L41", "3T", "3L38", "3S0"], - metronome: ["8M", "7V", "3T"], + megapunch: ["9M", "9L32", "8M", "8L32", "8V", "7L46", "7V", "6L46", "5L46", "4L41", "3T", "3L38", "3S0"], + metronome: ["9M", "8M", "7V", "3T"], mimic: ["7V", "3T"], mindreader: ["3S0"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], + poisonjab: ["9M"], poweruppunch: ["8L8", "6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7L1", "7V", "6L11", "5L11", "4L11", "3L13"], - quickguard: ["8L21", "7L31", "6L31", "5L31"], + quickguard: ["9L21", "8L21", "7L31", "6L31", "5L31"], rage: ["7V"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + reversal: ["9M"], rockclimb: ["4M"], - rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], skullbash: ["7V"], skyuppercut: ["7L41", "6L41", "5L41", "4L36", "3L32", "3S0"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "8V", "7V", "4T", "3T"], - tackle: ["8L1"], - takedown: ["7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M", "7T"], - thunderpunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + swift: ["9M", "8M", "8V", "7V", "4T", "3T"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "7V"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "8M", "7T"], + thunderpunch: ["9M", "9L24", "8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M"], - vacuumwave: ["8L1", "7L26", "6L26", "5L26", "4T", "4L26"], + trailblaze: ["9M"], + upperhand: ["9M"], + uproar: ["9M", "8M"], + vacuumwave: ["9M", "9L8", "8L1", "7L26", "6L26", "5L26", "4T", "4L26"], workup: ["8M", "7M", "5M"], }, eventData: [ @@ -15010,84 +15649,91 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, hitmontop: { learnset: { - aerialace: ["7M", "6M", "5M", "4M"], - agility: ["8M", "8L28", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M", "9L28", "8M", "8L28", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M"], - bulkup: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - closecombat: ["8M", "8L36", "7L1", "6L1", "5L55", "5S0", "4L51"], - coaching: ["8T"], + closecombat: ["9M", "9L36", "8M", "8L36", "7L1", "6L1", "5L55", "5S0", "4L51"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - counter: ["8L40", "7L28", "7V", "6L28", "5L28", "4L28", "3T", "3L31"], + counter: ["9L40", "8L40", "7L28", "7V", "6L28", "5L28", "4L28", "3T", "3L31"], covet: ["7T", "6T", "5T"], curse: ["7V"], - detect: ["8L12", "7L1", "7V", "6L50", "5L51", "4L46", "3L43"], - dig: ["8M", "8L32", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + detect: ["9L12", "8L12", "7L1", "7V", "6L50", "5L51", "4L46", "3L43"], + dig: ["9M", "9L32", "8M", "8L32", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drillrun: ["8M", "5T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endeavor: ["8L44", "7T", "7L1", "6T", "6L1", "5T", "5L60", "4T", "4L55", "3L49"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1", "5S0"], - feint: ["8L1", "7L24", "6L33", "5L33", "4L33"], - focusblast: ["8M"], - focusenergy: ["8M", "8L1", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], + drillrun: ["9M", "8M", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9M", "9L44", "8L44", "7T", "7L1", "6T", "6L1", "5T", "5L60", "4T", "4L55", "3L49"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "5S0"], + feint: ["9L1", "8L1", "7L24", "6L33", "5L33", "4L33"], + focusblast: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gyroball: ["8M", "8L8", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L42"], + gigaimpact: ["9M"], + gyroball: ["9M", "9L8", "8M", "8L8", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L42"], headbutt: ["7V", "4T"], - helpinghand: ["8M", "8L1", "7T", "6T", "5T", "5S0", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "5S0", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icespinner: ["9M"], laserfocus: ["7T"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M", "3T"], megapunch: ["8M"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7L1", "7V", "6L10", "5L10", "4L10", "3L13"], - quickattack: ["8L4", "7L1", "7V", "6L15", "5L15", "4L15", "3L19"], - quickguard: ["8L21", "7L46", "6L46", "5L46"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rapidspin: ["8L1", "7L19", "7V", "6L24", "5L24", "4L24", "3L25"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L4", "8L4", "7L1", "7V", "6L15", "5L15", "4L15", "3L19"], + quickguard: ["9L21", "8L21", "7L46", "6L46", "5L46"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["9L16", "8L1", "7L19", "7V", "6L24", "5L24", "4L24", "3L25"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + reversal: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], rollingkick: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], rollout: ["4T"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["8L24", "5S0", "4T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L24", "8L24", "5S0", "4T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], - tackle: ["8L1"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - tripleaxel: ["8T"], - triplekick: ["8L0", "7L33", "7V", "6L19", "5L19", "4L19", "3L20"], + tripleaxel: ["9M", "8T"], + triplekick: ["9L0", "8L0", "7L33", "7V", "6L19", "5L19", "4L19", "3L20"], twister: ["4T"], - uproar: ["8M"], - vacuumwave: ["4T"], - wideguard: ["8L21", "7L46", "6L46", "5L46"], + upperhand: ["9M"], + uproar: ["9M", "8M"], + vacuumwave: ["9M", "4T"], + wideguard: ["9L21", "8L21", "7L46", "6L46", "5L46"], workup: ["8M", "7M", "5M"], }, eventData: [ @@ -15329,78 +15975,84 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, koffing: { learnset: { - assurance: ["8M", "8L16", "7L12", "6L12", "5L15", "4L15"], + acidspray: ["9M"], + assurance: ["9L16", "8M", "8L16", "7L12", "6L12", "5L12", "4L15"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - belch: ["8L40", "7L42", "6L42"], + belch: ["9L40", "8L40", "7L42", "6L42"], bide: ["7V"], + bodyslam: ["9M"], captivate: ["4M"], - clearsmog: ["8L12", "8V", "7L15", "6L15", "5L19"], + clearsmog: ["9L12", "8L12", "8V", "7L15", "6L15", "5L15"], confide: ["7M", "6M"], corrosivegas: ["8T"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E"], - darkpulse: ["8M", "8V", "7M", "6M", "5T", "5D", "4M"], - destinybond: ["8L52", "7L40", "7E", "7V", "6L40", "6E", "5L51", "5E", "4L46", "4E", "3L45", "3E"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "5D", "4M"], + destinybond: ["9L52", "8L52", "7L40", "7E", "7V", "6L40", "6E", "5L40", "5E", "4L46", "4E", "3L45", "3E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - explosion: ["8L44", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L42", "4M", "4L37", "3T", "3L41"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["9L44", "8L44", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3T", "3L41"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], grudge: ["8E", "7E", "6E", "5E", "4E"], - gyroball: ["8M", "7M", "7L29", "6M", "6L29", "5M", "5L37", "4M", "4L33"], - haze: ["8L24", "8V", "7L26", "7V", "6L26", "5L33", "4L28", "3L33"], + gunkshot: ["9M"], + gyroball: ["9M", "8M", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L33"], + haze: ["9M", "9L24", "8L24", "8V", "7L26", "7V", "6L26", "5L26", "4L28", "3L33"], headbutt: ["8V"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], infestation: ["7M", "6M"], - memento: ["8L48", "7L45", "6L45", "5L55", "4L51", "3L49"], + memento: ["9L48", "8L48", "7L45", "6L45", "5L45", "4L51", "3L49"], mimic: ["7V", "3T"], naturalgift: ["4M"], - painsplit: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + painsplit: ["9M", "9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], payback: ["8M", "7M", "6M", "5M", "4M"], - poisongas: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psybeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + poisongas: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], psywave: ["7E", "7V", "6E", "5E", "4E", "3E"], rage: ["7V"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], secretpower: ["6M", "4M", "3M"], - selfdestruct: ["8M", "8L28", "8V", "7L23", "7V", "6L23", "5L24", "4L19", "3T", "3L17"], - shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + selfdestruct: ["9L28", "8M", "8L28", "8V", "7L23", "7V", "6L23", "5L23", "4L19", "3T", "3L17"], + shadowball: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludge: ["8L20", "8V", "7L18", "7V", "6L18", "5L28", "4L24", "3L21"], - sludgebomb: ["8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L46", "4M", "4L42", "3M"], - sludgewave: ["8M", "5D"], - smog: ["8L4", "8V", "7L4", "7V", "6L4", "5L6", "5D", "4L6", "3L9"], - smokescreen: ["8L8", "7L7", "7V", "6L7", "5L10", "4L10", "3L25"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L20", "8L20", "8V", "7L18", "7V", "6L18", "5L18", "4L24", "3L21"], + sludgebomb: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L42", "3M"], + sludgewave: ["9M", "8M", "5D"], + smog: ["9L4", "8L4", "8V", "7L4", "7V", "6L4", "5L4", "5D", "4L6", "3L9"], + smokescreen: ["9L8", "8L8", "7L7", "7V", "6L7", "5L7", "4L10", "3L25"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - spitup: ["8E", "7E", "6E", "5E"], - stockpile: ["8E", "7E", "6E", "5E"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + spitup: ["9E", "8E", "7E", "6E", "5E"], + stockpile: ["9E", "8E", "7E", "6E", "5E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swallow: ["8E", "7E", "6E", "5E"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swallow: ["9E", "8E", "7E", "6E", "5E"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - toxicspikes: ["8M", "7E", "6E"], + toxic: ["9M", "9L36", "8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M", "7E", "6E"], uproar: ["8M", "7T", "6T", "5T", "4T"], venomdrench: ["8M", "7E"], - venoshock: ["8M", "7M", "6M", "5M"], - willowisp: ["8M", "8V", "7M", "6M", "5M", "4M", "4E", "3E"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "4E", "3E"], zapcannon: ["7V"], }, encounters: [ @@ -15409,77 +16061,83 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, weezing: { learnset: { - assurance: ["8M", "8L16", "7L12", "6L12", "5L15", "4L15"], + acidspray: ["9M"], + assurance: ["9L16", "8M", "8L16", "7L12", "6L12", "5L12", "4L15"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - belch: ["8L44", "7L51", "6L50"], + belch: ["9L44", "8L44", "7L51", "6L50"], bide: ["7V"], + bodyslam: ["9M"], captivate: ["4M"], - clearsmog: ["8L12", "8V", "7L15", "6L15", "5L19"], + clearsmog: ["9L12", "8L12", "8V", "7L15", "6L15", "5L15"], confide: ["7M", "6M"], corrosivegas: ["8T"], - curse: ["7V"], - darkpulse: ["8M", "8V", "7M", "6M", "5T", "4M"], - destinybond: ["8L62", "7L46", "7V", "6L46", "5L59", "4L55", "3L51"], - doublehit: ["8L0", "7L1", "6L29", "5L39", "4L33"], + curse: ["9M", "7V"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + destinybond: ["9L62", "8L62", "7L46", "7V", "6L46", "5L46", "4L55", "3L51"], + doublehit: ["9L0", "8L0", "7L1", "6L29", "5L29", "4L33"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - explosion: ["8L50", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L46", "4M", "4L40", "3T", "3L44"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["9L50", "8L50", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3T", "3L44"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gyroball: ["8M", "7M", "7L29", "6M", "5M", "4M"], - haze: ["8L24", "8V", "7L26", "7V", "6L26", "5L33", "4L28", "3L33"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + gyroball: ["9M", "8M", "7M", "7L29", "6M", "5M", "4M"], + haze: ["9M", "9L24", "8L24", "8V", "7L26", "7V", "6L26", "5L26", "4L28", "3L33"], headbutt: ["8V"], - heatwave: ["8M", "8L1"], + heatwave: ["9M", "9L1", "8M", "8L1"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], infestation: ["7M", "6M"], - memento: ["8L56", "7L57", "6L54", "5L65", "4L63", "3L58"], + memento: ["9L56", "8L56", "7L57", "6L54", "5L54", "4L63", "3L58"], mimic: ["7V", "3T"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], - poisongas: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psybeam: ["8V"], + poisongas: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8V"], rage: ["7V"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], screech: ["8M", "8V"], secretpower: ["6M", "4M", "3M"], - selfdestruct: ["8M", "8L28", "8V", "7L23", "7V", "6L23", "5L24", "4L19", "3T", "3L1"], - shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + selfdestruct: ["9L28", "8M", "8L28", "8V", "7L23", "7V", "6L23", "5L23", "4L19", "3T", "3L1"], + shadowball: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludge: ["8L20", "8V", "7L18", "7V", "6L18", "5L28", "4L24", "3L21"], - sludgebomb: ["8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L52", "4M", "4L48", "3M"], - sludgewave: ["8M"], - smog: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - smokescreen: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L25"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L20", "8L20", "8V", "7L18", "7V", "6L18", "5L18", "4L24", "3L21"], + sludgebomb: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L48", "3M"], + sludgewave: ["9M", "8M"], + smog: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + smokescreen: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L25"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8L38", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - toxicspikes: ["8M"], + toxic: ["9M", "9L38", "8L38", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M"], uproar: ["8M", "7T", "6T", "5T", "4T"], venomdrench: ["8M"], - venoshock: ["8M", "7M", "6M", "5M"], - willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], zapcannon: ["7V"], }, encounters: [ @@ -15490,65 +16148,76 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, weezinggalar: { learnset: { + acidspray: ["9M"], aromatherapy: ["8L24"], - aromaticmist: ["8L1"], - assurance: ["8M", "8L16"], + aromaticmist: ["9L1", "8L1"], + assurance: ["9L16", "8M", "8L16"], attract: ["8M"], - belch: ["8L44"], + belch: ["9L44", "8L44"], + bodyslam: ["9M"], brutalswing: ["8M"], - clearsmog: ["8L12"], + clearsmog: ["9L12", "8L12"], corrosivegas: ["8T"], - darkpulse: ["8M"], - dazzlinggleam: ["8M"], - defog: ["8L1"], - destinybond: ["8L62"], - doublehit: ["8L0"], - endure: ["8M"], - explosion: ["8L50"], - facade: ["8M"], - fairywind: ["8L1"], - fireblast: ["8M"], - flamethrower: ["8M"], - gigaimpact: ["8M"], - gyroball: ["8M"], - haze: ["8L1"], - heatwave: ["8M", "8L1"], - hyperbeam: ["8M"], - memento: ["8L56"], - mistyexplosion: ["8T"], - mistyterrain: ["8M", "8L68"], - overheat: ["8M"], + curse: ["9M"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "8M"], + defog: ["9L1", "8L1"], + destinybond: ["9L62", "8L62"], + doubleedge: ["9M"], + doublehit: ["9L0", "8L0"], + endure: ["9M", "8M"], + explosion: ["9L50", "8L50"], + facade: ["9M", "8M"], + fairywind: ["9L24", "8L1"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gunkshot: ["9M"], + gyroball: ["9M", "8M"], + haze: ["9M", "9L1", "8L1"], + heatwave: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M"], + memento: ["9L56", "8L56"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "9L68", "8M", "8L68"], + overheat: ["9M", "8M"], + painsplit: ["9M"], payback: ["8M"], - playrough: ["8M"], - poisongas: ["8L1"], - protect: ["8M"], - raindance: ["8M"], - rest: ["8M"], + playrough: ["9M", "8M"], + poisongas: ["9L1", "8L1"], + protect: ["9M", "8M"], + psybeam: ["9M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], round: ["8M"], + scaryface: ["9M"], screech: ["8M"], - selfdestruct: ["8M", "8L28"], - shadowball: ["8M"], - sleeptalk: ["8M"], - sludge: ["8L20"], - sludgebomb: ["8M", "8L32"], - sludgewave: ["8M"], - smog: ["8L1"], - smokescreen: ["8L1"], + selfdestruct: ["9L28", "8M", "8L28"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + sludge: ["9L20", "8L20"], + sludgebomb: ["9M", "9L32", "8M", "8L32"], + sludgewave: ["9M", "8M"], + smog: ["9L1", "8L1"], + smokescreen: ["9L1", "8L1"], snore: ["8M"], - strangesteam: ["8L1"], - substitute: ["8M"], - sunnyday: ["8M"], - tackle: ["8L1"], - taunt: ["8M"], - thief: ["8M"], - thunder: ["8M"], - thunderbolt: ["8M"], - toxic: ["8L38"], - toxicspikes: ["8M"], + spite: ["9M"], + strangesteam: ["9L1", "8L1"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + toxic: ["9M", "9L38", "8L38"], + toxicspikes: ["9M", "8M"], uproar: ["8M"], venomdrench: ["8M"], - venoshock: ["8M"], - willowisp: ["8M"], + venoshock: ["9M", "8M"], + willowisp: ["9M", "8M"], wonderroom: ["8M"], }, }, @@ -15558,104 +16227,108 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "7V", "3T"], - bulldoze: ["8M", "8L10", "7M", "7L21", "6M", "6L21", "5M", "5L30"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "9L10", "8M", "8L10", "7M", "7L21", "6M", "6L21", "5M", "5L30"], captivate: ["4M"], chipaway: ["7L25", "6L25", "5L34"], confide: ["7M", "6M"], - counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], - crunch: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + crunch: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], crushclaw: ["7E", "6E", "5E", "4E", "3E"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "5D", "3T"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "7V", "5D", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], - dragonrush: ["8E", "7E", "6E", "5E", "4E"], - drillrun: ["8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L45"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L45", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L56", "4M", "4L49", "3M", "3L52"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firefang: ["8M", "7E", "6E", "5E", "4E"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], + drillrun: ["9M", "9L35", "8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L45"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L45", "8M", "8L45", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L56", "4M", "4L49", "3M", "3L52"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M", "7E", "6E", "5E", "4E"], fissure: ["7V"], - flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furyattack: ["8V", "7L5", "7V", "6L5", "5L12", "4L13", "3L15"], - guardsplit: ["8E", "7E", "6E"], + guardsplit: ["9E", "8E", "7E", "6E"], headbutt: ["8V", "7V", "4T"], + heavyslam: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], - hornattack: ["8L15", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], - horndrill: ["8L60", "8V", "7L53", "7V", "6L53", "5L63", "4L37", "3L38"], - icebeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - icefang: ["8M", "7E", "6E", "5E", "4E"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + highhorsepower: ["9M", "8M"], + hornattack: ["9L15", "8L15", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + horndrill: ["9L60", "8L60", "8V", "7L53", "7V", "6L53", "5L63", "4L37", "3L38"], + icebeam: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M", "8M", "7E", "6E", "5E", "4E"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], leer: ["7V"], magnitude: ["7E", "7V", "6E", "5E", "4E", "3E"], - megahorn: ["8M", "8L55", "8V", "7L49", "6L49", "5L67", "4L57", "3L57"], - metalburst: ["8E", "7E", "6E"], + megahorn: ["9L55", "8M", "8L55", "8V", "7L49", "6L49", "5L67", "4L57", "3L57"], + metalburst: ["9E", "8E", "7E", "6E"], mimic: ["7V", "3T"], - mudshot: ["8M"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], payback: ["8M", "7M", "6M", "5M", "4M"], - poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7V"], rage: ["7V"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - reversal: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], + reversal: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "9L30", "8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], rockclimb: ["7E", "6E", "5E", "4M"], - rockpolish: ["8E", "7M", "6M", "5M", "4M"], - rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rockpolish: ["9E", "8E", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rockthrow: ["8V"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], rototiller: ["7E", "6E"], round: ["8M", "7M", "6M", "5M"], sandattack: ["8V"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scaryface: ["8M", "8L20", "7L9", "7V", "6L9", "5L19", "4L21", "3L24"], - scorchingsands: ["8T"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L9", "7V", "6L9", "5L19", "4L21", "3L24"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], skullbash: ["8E", "7E", "7V", "6E", "5E", "4E"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["8L5", "7M", "7L13", "6M", "6L13"], - smartstrike: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L5", "8L5", "7M", "7L13", "6M", "6L13"], + smartstrike: ["9M", "8M", "7M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], spite: ["7T", "6T", "5T", "4T"], - stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], - stomp: ["8L25", "8V", "7L17", "7V", "6L8", "5L8", "4L9", "3L10"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L50", "7M", "7L41", "6M", "6L41", "5M", "5L52", "4M", "4L45"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + stomp: ["9L25", "8L25", "8V", "7L17", "7V", "6L8", "5L8", "4L9", "3L10"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L50", "8M", "8L50", "7M", "7L41", "6M", "6L41", "5M", "5L52", "4M", "4L45"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supercellslam: ["9M"], superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], - tackle: ["8L1"], - tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L43"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L40", "8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L43"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], thrash: ["7V"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderfang: ["8M", "7E", "6E", "5E", "4E"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "8M", "7E", "6E", "5E", "4E"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], zapcannon: ["7V"], }, encounters: [ @@ -15667,132 +16340,134 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["4T"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - avalanche: ["8M", "4M"], + avalanche: ["9M", "8M", "4M"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M"], - bodyslam: ["8M", "7V", "3T"], - breakingswipe: ["8M"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "7M"], bubblebeam: ["7V"], - bulldoze: ["8M", "8L1", "7M", "7L21", "6M", "6L21", "5M", "5L30"], + bulldoze: ["9M", "9L1", "8M", "8L1", "7M", "7L21", "6M", "6L21", "5M", "5L30"], captivate: ["4M"], chipaway: ["7L25", "6L25", "5L34"], confide: ["7M", "6M"], counter: ["8V", "7V", "3T"], - crunch: ["8M", "8V"], - curse: ["7V"], + crunch: ["9M", "8M", "8V"], + curse: ["9M", "7V"], cut: ["6M", "5M", "4M", "3M"], - dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["7V", "3T"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], dragontail: ["8V", "7M", "6M", "5M"], - drillrun: ["8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L47"], + drillrun: ["9M", "9L35", "8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L47"], dynamicpunch: ["7V", "3T"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L47", "8V", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L62", "4M", "4L49", "3M", "3L58", "3S0"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firefang: ["8M"], - firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L47", "8M", "8L47", "8V", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L62", "4M", "4L49", "3M", "3L58", "3S0"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], fissure: ["7V"], - flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furyattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], furycutter: ["7V", "4T", "3T"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - hammerarm: ["8L0", "7L1", "6L42", "5L42", "4L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hammerarm: ["9L0", "8L0", "7L1", "6L42", "5L42", "4L42"], headbutt: ["8V", "7V", "4T"], - heatcrash: ["8M"], - heavyslam: ["8M"], - helpinghand: ["8M", "8V", "3S0"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "8M", "8V", "3S0"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], - hornattack: ["8L15", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - horndrill: ["8L68", "8V", "7L1", "7V", "6L1", "5L71", "4L37", "3L38"], - hydropump: ["8M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icefang: ["8M"], - icepunch: ["8M", "8V", "7T", "6T", "5T", "4T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + highhorsepower: ["9M", "8M"], + hornattack: ["9L15", "8L15", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + horndrill: ["9L68", "8L68", "8V", "7L1", "7V", "6L1", "5L71", "4L37", "3L38"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], - irondefense: ["8M"], + irondefense: ["9M", "8M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], leer: ["7V"], - megahorn: ["8M", "8L61", "8V", "7L55", "6L1", "5L77", "4L57", "3L66", "3S0"], + megahorn: ["9L61", "8M", "8L61", "8V", "7L55", "6L1", "5L77", "4L57", "3L66", "3S0"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], mimic: ["7V", "3T"], - mudshot: ["8M"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], - outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], payday: ["8M", "8V", "7V"], - poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - reversal: ["8M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "9L30", "8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rockthrow: ["8V"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], sandattack: ["8V"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scaryface: ["8M", "8L20", "7L1", "7V", "6L1", "5L19", "4L21", "3L24", "3S0"], - scorchingsands: ["8T"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L19", "4L21", "3L24", "3S0"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], - smartstrike: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L1", "8L1", "7M", "7L13", "6M", "6L13", "5M"], + smartstrike: ["9M", "8M", "7M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], spite: ["7T", "6T", "5T", "4T"], - stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], - stomp: ["8L25", "8V", "7L17", "7V", "6L1", "5L1", "4L1", "3L1"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + stomp: ["9L25", "8L25", "8V", "7L17", "7V", "6L1", "5L1", "4L1", "3L1"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L54", "8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supercellslam: ["9M"], superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - tackle: ["8L1"], - tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L46"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderfang: ["8M"], - thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L40", "8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L46"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], watergun: ["7V"], whirlpool: ["8M", "4M"], zapcannon: ["7V"], @@ -15812,120 +16487,126 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["4T"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "6M", "5M", "4M"], - avalanche: ["8M", "4M"], - blizzard: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M"], - bodyslam: ["8M"], - breakingswipe: ["8M"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + breakingswipe: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], brutalswing: ["8M", "7M"], - bulldoze: ["8M", "8L1", "7M", "7L21", "6M", "6L21", "5M"], + bulldoze: ["9M", "9L1", "8M", "8L1", "7M", "7L21", "6M", "6L21", "5M"], captivate: ["4M"], chipaway: ["7L25", "6L25", "5L30"], confide: ["7M", "6M"], - crunch: ["8M"], + crunch: ["9M", "8M"], + curse: ["9M"], cut: ["6M", "5M", "4M"], - dig: ["8M", "6M", "5M", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - dragonpulse: ["8M", "7T", "6T", "5T", "4M"], - dragontail: ["7M", "6M", "5M"], - drillrun: ["8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L47"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L47", "7M", "7L48", "6M", "6L48", "5M", "5L62", "4M", "4L49"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M"], - fireblast: ["8M", "7M", "6M", "5M", "4M"], - firefang: ["8M"], - firepunch: ["8M", "7T", "6T", "5T", "4T"], - flamethrower: ["8M", "7M", "6M", "5M", "4M"], - flashcannon: ["8M", "7M", "6M", "5M", "4M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + drillrun: ["9M", "9L35", "8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L47"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L47", "8M", "8L47", "7M", "7L48", "6M", "6L48", "5M", "5L62", "4M", "4L49"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M", "8M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], furyattack: ["7L1", "6L1", "5L1", "4L1"], furycutter: ["4T"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - hammerarm: ["8L1", "7L1", "6L42", "5L42", "4L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hammerarm: ["9L1", "8L1", "7L1", "6L42", "5L42", "4L42"], headbutt: ["4T"], - heatcrash: ["8M"], - heavyslam: ["8M"], - helpinghand: ["8M"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M"], - highhorsepower: ["8M"], - hornattack: ["8L15", "7L1", "6L1", "5L1", "4L1"], - horndrill: ["8L68", "7L1", "6L1", "5L71", "4L37"], - hydropump: ["8M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M"], - icebeam: ["8M", "7M", "6M", "5M", "4M"], - icefang: ["8M"], - icepunch: ["8M", "7T", "6T", "5T", "4T"], - icywind: ["8M", "7T", "6T", "5T", "4T"], + highhorsepower: ["9M", "8M"], + hornattack: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1"], + horndrill: ["9L68", "8L68", "7L1", "6L1", "5L71", "4L37"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], incinerate: ["6M", "5M"], - irondefense: ["8M"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "6T", "5T", "4M"], - megahorn: ["8M", "8L61", "7L55", "6L1", "5L77", "4L57"], + megahorn: ["9L61", "8M", "8L61", "7L55", "6L1", "5L77", "4L57"], megakick: ["8M"], megapunch: ["8M"], - meteorbeam: ["8T"], - mudshot: ["8M"], - mudslap: ["4T"], + metalclaw: ["9M"], + meteorbeam: ["9M", "8T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], - outrage: ["8M", "7T", "6T", "5T", "4T"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], payday: ["8M"], - poisonjab: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + poisonjab: ["9M", "8M", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M"], - raindance: ["8M", "7M", "6M", "5M", "4M"], - rest: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - reversal: ["8M"], - roar: ["7M", "6M", "5M", "4M"], - rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M", "9L30", "8M", "8L30", "7L29", "6L23", "5L23", "4L25"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], - rockwrecker: ["8L75", "7L1", "6L1", "5L86", "4L61"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rockwrecker: ["9L75", "8L75", "7L1", "6L1", "5L86", "4L61"], rollout: ["4T"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M"], - scaryface: ["8M", "8L20", "7L1", "6L1", "5L19", "4L21"], - scorchingsands: ["8T"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L1", "6L1", "5L19", "4L21"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], - smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], - smartstrike: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "9L1", "8L1", "7M", "7L13", "6M", "6L13", "5M"], + smartstrike: ["9M", "8M", "7M"], snore: ["8M", "7T", "6T", "5T", "4T"], spite: ["7T", "6T", "5T", "4T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - stomp: ["8L25", "7L17", "6L1", "5L1", "4L1"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stomp: ["9L25", "8L25", "7L17", "6L1", "5L1", "4L1"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L54", "8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], strength: ["6M", "5M", "4M"], - substitute: ["8M", "7M", "6M", "5M", "4M"], - sunnyday: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + supercellslam: ["9M"], superpower: ["8M", "7T", "6T", "5T", "4T"], - surf: ["8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swordsdance: ["8M", "7M", "6M", "5M", "4M"], - tackle: ["8L1"], - tailwhip: ["8L1", "7L1", "6L1", "5L1", "4L1"], - takedown: ["8L40", "7L37", "6L37", "5L41", "4L33"], - thief: ["8M", "7M", "6M", "5M", "4M"], - thunder: ["8M", "7M", "6M", "5M", "4M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M"], - thunderfang: ["8M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L40", "8L40", "7L37", "6L37", "5L41", "4L33"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], whirlpool: ["8M", "4M"], }, }, @@ -15954,7 +16635,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + gravity: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], hail: ["8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], healbell: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], @@ -16032,7 +16713,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], defensecurl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L31", "3T", "3L41"], disarmingvoice: ["9M", "9L1", "8L1"], - doubleedge: ["9L40", "8L40", "8V", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L57"], + doubleedge: ["9M", "9L40", "8L40", "8V", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L57"], doubleslap: ["8V", "7L12", "7V", "6L12", "5L12", "4L16", "3L17"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], @@ -16042,7 +16723,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { echoedvoice: ["9L8", "8L8", "7M", "6M", "5M"], eggbomb: ["8V", "7L42", "7V", "6L42", "5L42", "4L38", "3L35"], electricterrain: ["9M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -16055,7 +16736,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + gravity: ["9M", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], growl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["8V", "7V", "4T"], @@ -16164,6 +16845,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, blissey: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], avalanche: ["9M", "8M", "4M"], @@ -16186,7 +16868,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dazzlinggleam: ["9M", "8M", "7M", "6M"], defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L31", "3T", "3L33"], disarmingvoice: ["9M", "9L1", "8L1"], - doubleedge: ["9L40", "8L40", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L47"], + doubleedge: ["9M", "9L40", "8L40", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L47"], doubleslap: ["7L12", "7V", "6L12", "5L12", "4L16", "3L13"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], @@ -16196,7 +16878,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { echoedvoice: ["9L8", "8L8", "7M", "6M", "5M"], eggbomb: ["7L42", "7V", "6L42", "5L42", "4L38", "3L28"], electricterrain: ["9M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -16205,11 +16887,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "9L20", "8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L27"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], growl: ["7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], @@ -16240,7 +16922,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poweruppunch: ["6M"], protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], refresh: ["7L9", "6L9", "5L9", "5S0", "4L9", "3L7"], @@ -16307,7 +16989,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["8L24", "7L38", "6L38", "5L36", "4T", "4L33"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bind: ["8L1", "8V", "7T", "7L17", "7V", "6T", "6L17", "5T", "5L22", "4L22", "3L28"], + bind: ["8L1", "8V", "7T", "7L17", "7V", "6T", "6L17", "5T", "5L17", "4L22", "3L28"], bodyslam: ["8M", "7V", "3T"], bulletseed: ["8M", "4M", "3M"], captivate: ["4M"], @@ -16336,18 +17018,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], infestation: ["7M", "6M"], ingrain: ["8L52", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], - knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L33", "4T", "4L36"], + knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L36"], leafstorm: ["8M", "7E", "6E", "5E", "4E"], leechseed: ["8E", "8V", "7E", "6E", "5E", "5D", "4E", "3E"], - megadrain: ["8L12", "8V", "7L23", "7E", "7V", "6L23", "6E", "5L26", "5E", "4L26", "4E", "3L31", "3E"], + megadrain: ["8L12", "8V", "7L23", "7E", "7V", "6L23", "6E", "5L23", "5E", "4L26", "4E", "3L31", "3E"], mimic: ["7V", "3T"], morningsun: ["3S0"], - naturalgift: ["7L33", "7E", "6L33", "6E", "5L40", "5E", "4M", "4L40"], + naturalgift: ["7L33", "7E", "6L33", "6E", "5L33", "5E", "4M", "4L40"], naturepower: ["8E", "7M", "7E", "6E", "5E", "4E", "3E"], painsplit: ["7T", "6T", "5T", "4T"], - poisonpowder: ["8L20", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L19"], + poisonpowder: ["8L20", "8V", "7L14", "7V", "6L14", "5L14", "4L15", "3L19"], powerswap: ["8M", "7E", "6E", "5E", "4E"], - powerwhip: ["8M", "8L48", "8V", "7L50", "6L50", "5L54", "4L54"], + powerwhip: ["8M", "8L48", "8V", "7L50", "6L50", "5L53", "4L54"], protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], rage: ["7V"], @@ -16362,7 +17044,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shockwave: ["7T", "6T", "4M"], skullbash: ["7V"], slam: ["8L40", "8V", "7L41", "7V", "6L41", "5L43", "4L43", "3L40"], - sleeppowder: ["8L36", "8V", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L4"], + sleeppowder: ["8L36", "8V", "7L4", "7V", "6L4", "5L4", "5D", "4L5", "3L4"], sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], @@ -16376,12 +17058,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { synthesis: ["7T", "6T", "5T", "4T"], takedown: ["7V"], thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - tickle: ["8L44", "7L44", "6L44", "5L47", "4L47", "3L46"], + tickle: ["8L44", "7L44", "6L44", "5L46", "4L47", "3L46"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - vinewhip: ["8L16", "8V", "7L7", "7V", "6L7", "5L19", "4L19", "3L22"], + vinewhip: ["8L16", "8V", "7L7", "7V", "6L7", "5L7", "4L19", "3L22"], wakeupslap: ["7E"], worryseed: ["7T", "6T", "5T", "4T"], - wringout: ["7L46", "6L46", "5L50", "4L50"], + wringout: ["7L46", "6L46", "5L49", "4L50"], }, eventData: [ {generation: 3, level: 30, abilities: ["chlorophyll"], moves: ["morningsun", "solarbeam", "sunnyday", "ingrain"]}, @@ -16397,8 +17079,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { amnesia: ["8M"], ancientpower: ["8L24", "7L40", "6L40", "5L36", "4T", "4L33", "4S0"], attract: ["8M", "7M", "6M", "5M", "4M"], - bind: ["8L1", "7T", "7L17", "6T", "6L17", "5T", "5L22", "4L22"], - block: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L57"], + bind: ["8L1", "7T", "7L17", "6T", "6L17", "5T", "5L17", "4L22"], + block: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L57"], bodyslam: ["8M"], brickbreak: ["8M", "7M", "6M", "5M", "4M"], brutalswing: ["8M"], @@ -16429,19 +17111,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["8M", "7M", "6M", "5M", "4M"], infestation: ["7M", "6M"], ingrain: ["8L52", "7L1", "6L1", "5L1", "4L1"], - knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L33", "4T", "4L36"], + knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L36"], leafstorm: ["8M"], - megadrain: ["8L12", "7L23", "6L23", "5L26", "4L26"], + megadrain: ["8L12", "7L23", "6L23", "5L23", "4L26"], morningsun: ["4S0"], mudslap: ["4T"], - naturalgift: ["7L33", "6L33", "5L40", "4M", "4L40", "4S0"], + naturalgift: ["7L33", "6L33", "5L33", "4M", "4L40", "4S0"], naturepower: ["7M", "6M"], painsplit: ["7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], poisonjab: ["8M", "7M", "6M", "5M", "4M"], - poisonpowder: ["8L20", "7L14", "6L14", "5L15", "4L15"], + poisonpowder: ["8L20", "7L14", "6L14", "5L14", "4L15"], powerswap: ["8M"], - powerwhip: ["8M", "8L48", "7L53", "6L53", "5L54", "4L54"], + powerwhip: ["8M", "8L48", "7L53", "6L53", "5L53", "4L54"], protect: ["8M", "7M", "6M", "5M", "4M"], psychup: ["7M", "6M", "5M", "4M"], reflect: ["8M", "7M", "6M", "5M", "4M"], @@ -16455,7 +17137,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seedbomb: ["8M", "7T", "6T", "5T", "4T"], shockwave: ["7T", "6T", "4M"], slam: ["8L40", "7L43", "6L43", "5L43", "4L43"], - sleeppowder: ["8L36", "7L4", "6L4", "5L5", "4L5"], + sleeppowder: ["8L36", "7L4", "6L4", "5L4", "4L5"], sleeptalk: ["8M", "7M", "6M", "5T", "4M"], sludgebomb: ["8M", "7M", "6M", "5M", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], @@ -16470,11 +17152,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swordsdance: ["8M", "7M", "6M", "5M", "4M"], synthesis: ["7T", "6T", "5T", "4T"], thief: ["8M", "7M", "6M", "5M", "4M"], - tickle: ["8L44", "7L46", "6L46", "5L47", "4L47"], + tickle: ["8L44", "7L46", "6L46", "5L46", "4L47"], toxic: ["7M", "6M", "5M", "4M"], - vinewhip: ["8L16", "7L7", "6L7", "5L19", "4L19"], + vinewhip: ["8L16", "7L7", "6L7", "5L7", "4L19"], worryseed: ["7T", "6T", "5T", "4T"], - wringout: ["7L49", "6L49", "5L50", "4L50"], + wringout: ["7L49", "6L49", "5L49", "4L50"], }, eventData: [ {generation: 4, level: 50, gender: "M", nature: "Brave", moves: ["sunnyday", "morningsun", "ancientpower", "naturalgift"], pokeball: "cherishball"}, @@ -16619,75 +17301,78 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, horsea: { learnset: { - agility: ["8M", "8L30", "8V", "7L36", "7V", "6L23", "5L23", "4L23", "3L36"], + agility: ["9M", "9L30", "8M", "8L30", "8V", "7L36", "7V", "6L23", "5L23", "4L23", "3L36"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + aurorabeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], bounce: ["8M", "7T", "6T", "5T", "4T"], brine: ["8M", "7L31", "6L30", "5L30", "5D", "4M", "4L30"], bubble: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "5S0", "4L1", "3L1"], - bubblebeam: ["8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], + bubblebeam: ["9L25", "8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], captivate: ["4M"], - clearsmog: ["8E", "7E", "6E", "5E"], + chillingwater: ["9M"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], confide: ["7M", "6M"], curse: ["7V"], - disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + disable: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], dive: ["8M", "6M", "5M", "4T", "3M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonbreath: ["8L20", "7E", "7V", "6E", "5E", "4E", "3E"], - dragondance: ["8M", "8L50", "7L46", "6L38", "5L38", "4L38", "3L50"], - dragonpulse: ["8M", "8L40", "8V", "7T", "7L41", "6T", "6L41", "5T", "5L42", "4M", "4L42"], + dragonbreath: ["9L20", "8L20", "7E", "7V", "6E", "5E", "4E", "3E"], + dragondance: ["9M", "9L50", "8M", "8L50", "7L46", "6L38", "5L38", "4L38", "3L50"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "8V", "7T", "7L41", "6T", "6L41", "5T", "5L42", "4M", "4L42"], dragonrage: ["7E", "7V", "6E", "5E", "4E", "3E"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], - focusenergy: ["8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flashcannon: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focusenergy: ["9L15", "8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["8V", "7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L45", "8V", "7L52", "7V", "6L35", "5L35", "4L35", "3L43"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hydropump: ["9M", "9L45", "8M", "8L45", "8V", "7L52", "7V", "6L35", "5L35", "4L35", "3L43"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], laserfocus: ["8L35"], - leer: ["8L1", "8V", "7L9", "7V", "6L8", "5L8", "4L8", "3L15"], - liquidation: ["8M"], + leer: ["9L1", "8L1", "8V", "7L9", "7V", "6L8", "5L8", "4L8", "3L15"], + liquidation: ["9M", "8M"], mimic: ["7V", "3T"], - muddywater: ["8M", "7E", "6E", "5E", "4E"], + muddywater: ["9M", "8M", "7E", "6E", "5E", "4E"], naturalgift: ["4M"], octazooka: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], - outrage: ["8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + outrage: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["8M", "8L55", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L55", "8M", "8L55", "7M", "7V", "6M", "5M", "4M", "3M"], razorwind: ["7E", "6E", "5E", "4E"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smokescreen: ["8L5", "8V", "7L5", "7V", "6L4", "5L4", "4L4", "3L8"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L5", "8L5", "8V", "7L5", "7V", "6L4", "5L4", "4L4", "3L8"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - splash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], takedown: ["7V"], + terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - twister: ["8L10", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29"], - waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7L13", "7V", "6L1", "5L11", "4L11", "3L22"], - waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], - whirlpool: ["8M", "7V", "4M"], + twister: ["9L10", "8L10", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7L13", "7V", "6L1", "5L11", "4L11", "3L22"], + waterpulse: ["9M", "9L35", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "7V", "4M"], }, eventData: [ {generation: 5, level: 1, shiny: true, moves: ["bubble"], pokeball: "pokeball"}, @@ -16698,15 +17383,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, seadra: { learnset: { - agility: ["8M", "8L30", "8V", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], + agility: ["9M", "9L30", "8M", "8L30", "8V", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], bounce: ["8M", "7T", "6T", "5T", "4T"], brine: ["8M", "7L31", "6L30", "5L30", "4M", "4L30"], bubble: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - bubblebeam: ["8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], + bubblebeam: ["9L25", "8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], captivate: ["4M"], + chillingwater: ["9M"], clearsmog: ["8V"], confide: ["7M", "6M"], curse: ["7V"], @@ -16714,55 +17400,59 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dive: ["8M", "6M", "5M", "4T", "3M"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonbreath: ["8L20", "7V"], - dragondance: ["8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], - dragonpulse: ["8M", "8L44", "8V", "7T", "7L45", "6T", "6L45", "5T", "5L57", "4M", "4L57"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], - focusenergy: ["8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], + dragonbreath: ["9L20", "8L20", "7V"], + dragondance: ["9M", "9L58", "8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], + dragonpulse: ["9M", "9L44", "8M", "8L44", "8V", "7T", "7L45", "6T", "6L45", "5T", "5L57", "4M", "4L57"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focusenergy: ["9L15", "8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["8V", "7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L51", "8V", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hydropump: ["9M", "9L51", "8M", "8L51", "8V", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], laserfocus: ["8L37", "7T"], - leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - liquidation: ["8M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + liquidation: ["9M", "8M"], mimic: ["7V", "3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], naturalgift: ["4M"], - outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7V"], - raindance: ["8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L65", "8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "8V", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smokescreen: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snowscape: ["9M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], takedown: ["7V"], + terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - twister: ["8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], - waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["8M", "7V", "4M"], + twister: ["9L1", "8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["9M", "9L37", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "7V", "4M"], }, eventData: [ {generation: 3, level: 45, abilities: ["poisonpoint"], moves: ["leer", "watergun", "twister", "agility"], pokeball: "pokeball"}, @@ -16776,72 +17466,79 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, kingdra: { learnset: { - agility: ["8M", "8L30", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], + agility: ["9M", "9L30", "8M", "8L30", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brine: ["8M", "7L31", "6L30", "5L30", "4M", "4L30"], bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - bubblebeam: ["8L25", "7L21", "6L18", "5L18", "4L18"], + bubblebeam: ["9L25", "8L25", "7L21", "6L18", "5L18", "4L18"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], curse: ["7V"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dracometeor: ["8T", "7T", "6T", "5T", "5S1", "4T"], - dragonbreath: ["8L20", "7V"], - dragondance: ["8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], - dragonpulse: ["8M", "8L44", "7T", "7L45", "6T", "6L1", "5T", "5L57", "5S1", "4M", "4L57"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flashcannon: ["8M", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], - focusenergy: ["8M", "8L15", "7L26", "6L14", "5L14", "4L14"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "5S1", "4T"], + dragonbreath: ["9L20", "8L20", "7V"], + dragondance: ["9M", "9L58", "8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], + dragonpulse: ["9M", "9L44", "8M", "8L44", "7T", "7L45", "6T", "6L1", "5T", "5L57", "5S1", "4M", "4L57"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focusenergy: ["9L15", "8M", "8L15", "7L26", "6L14", "5L14", "4L14"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hurricane: ["8M"], - hydropump: ["8M", "8L51", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + hurricane: ["9M", "8M"], + hydropump: ["9M", "9L51", "8M", "8L51", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], laserfocus: ["8L37", "7T"], - leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - liquidation: ["8M"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + liquidation: ["9M", "8M"], mimic: ["3T"], - muddywater: ["8M", "5S1"], + muddywater: ["9M", "8M", "5S1"], naturalgift: ["4M"], - outrage: ["8M", "7T", "6T", "5T", "4T"], - protect: ["8M", "7M", "7V", "6M", "5M", "5S1", "4M", "3M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "5S1", "4M", "3M"], quash: ["7M", "6M", "5M"], - raindance: ["8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L65", "8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - scald: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scald: ["9M", "8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smokescreen: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + snowscape: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - twister: ["8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], - waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["8M", "8L1", "7V", "4M"], - yawn: ["8L1", "7L1", "6L1", "5L1", "4L1"], + twister: ["9L1", "8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["9M", "9L37", "7T", "6T", "4M", "3M"], + wavecrash: ["9L72"], + weatherball: ["9M"], + whirlpool: ["9M", "9L1", "8M", "8L1", "7V", "4M"], + yawn: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], }, eventData: [ {generation: 3, level: 50, abilities: ["swiftswim"], moves: ["leer", "watergun", "twister", "agility"], pokeball: "pokeball"}, @@ -17022,11 +17719,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bide: ["7V"], blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], brine: ["8M", "8L28", "7L28", "6L28", "5L36", "4M"], - bubblebeam: ["8V", "7L18", "7V", "6L18", "5L28", "4L28", "3L28"], - camouflage: ["7L22", "6L15", "5L19", "4L19", "3L19"], + bubblebeam: ["8V", "7L18", "7V", "6L18", "5L22", "4L28", "3L28"], + camouflage: ["7L22", "6L15", "5L15", "4L19", "3L19"], confide: ["7M", "6M"], confuseray: ["8L8", "8V", "7L40", "6L40"], - cosmicpower: ["8M", "8L52", "7L49", "6L48", "5L55", "4L51", "3L42", "3S0"], + cosmicpower: ["8M", "8L52", "7L49", "6L48", "5L48", "4L51", "3L42", "3S0"], curse: ["7V"], dazzlinggleam: ["8M", "8V", "7M", "6M"], dive: ["8M", "6M", "5M", "4T", "3M"], @@ -17039,21 +17736,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flipturn: ["8T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["8M", "7M", "7L24", "6M", "6L24", "5M", "5L37", "4M", "4L37"], + gyroball: ["8M", "7M", "7L24", "6M", "6L24", "5M", "5L30", "4M", "4L37"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], headbutt: ["8V"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L56", "8V", "7L53", "7V", "6L52", "5L60", "4L55", "3L46", "3S0"], + hydropump: ["8M", "8L56", "8V", "7L53", "7V", "6L52", "5L52", "4L55", "3L46", "3S0"], icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], - lightscreen: ["8M", "8L32", "8V", "7M", "7L46", "7V", "6M", "6L33", "5M", "5L42", "4M", "4L42", "3M", "3L37", "3S0"], + lightscreen: ["8M", "8L32", "8V", "7M", "7L46", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L42", "3M", "3L37", "3S0"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["7V", "3T"], - minimize: ["8L16", "8V", "7L31", "7V", "6L25", "5L33", "4L33", "3L33", "3S0"], + minimize: ["8L16", "8V", "7L31", "7V", "6L25", "5L25", "4L33", "3L33", "3S0"], naturalgift: ["4M"], painsplit: ["7T", "6T", "5T", "4T"], - powergem: ["8M", "8L36", "7L37", "6L37", "5L51", "4L46"], + powergem: ["8M", "8L36", "7L37", "6L37", "5L43", "4L46"], protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["8L24"], psychic: ["8M", "8L40", "8V", "7M", "7L42", "7V", "6M", "6L42", "5M", "4M", "3M"], @@ -17062,10 +17759,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rage: ["7V"], raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], rapidspin: ["8L12", "7L7", "7V", "6L7", "5L10", "4L10", "3L10", "3S1"], - recover: ["8L48", "8V", "7L10", "7V", "6L10", "5L15", "4L15", "3L15", "3S1"], + recover: ["8L48", "8V", "7L10", "7V", "6L10", "5L12", "4L15", "3L15", "3S1"], recycle: ["7T", "6T", "5T", "5D", "4M"], reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - reflecttype: ["7L35", "6L35", "5L46"], + reflecttype: ["7L35", "6L35", "5L40"], rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rollout: ["4T"], @@ -17079,7 +17776,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], surf: ["8M", "8L44", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L20", "8V", "7L16", "7V", "6L16", "5L24", "4T", "4L24", "3T", "3L24"], + swift: ["8M", "8L20", "8V", "7L16", "7V", "6L16", "5L18", "4T", "4L24", "3T", "3L24"], tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], takedown: ["7V"], teleport: ["8V", "7V"], @@ -17114,7 +17811,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brine: ["8M", "8L1", "4M"], bubblebeam: ["7V"], confide: ["7M", "6M"], - confuseray: ["8L1", "7L40", "7V", "6L22", "5L28", "4L28", "3L33"], + confuseray: ["8L1", "7L40", "7V", "6L22", "5L22", "4L28", "3L33"], cosmicpower: ["8M", "8L1"], curse: ["7V"], dazzlinggleam: ["8M", "8V", "7M", "6M"], @@ -17220,7 +17917,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { copycat: ["8L1", "7L4", "6L4", "5L4", "4L4"], covet: ["7T", "6T", "5T"], dazzlinggleam: ["8M", "8L44"], - doubleslap: ["7L11", "6L11", "5L15", "4L15"], + doubleslap: ["7L11", "6L11", "5L11", "4L15"], doubleteam: ["7M", "6M", "5M", "4M"], drainpunch: ["8M", "7T", "6T", "5T", "4M"], dreameater: ["7M", "6M", "5M", "4M"], @@ -17245,7 +17942,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magiccoat: ["7T", "6T", "5T", "4T"], magicroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], meditate: ["7L8", "6L8", "5L8", "4L8"], - mimic: ["8L32", "7L15", "7E", "6L15", "6E", "5L18", "5E", "4L18", "4E"], + mimic: ["8L32", "7L15", "7E", "6L15", "6E", "5L15", "5E", "4L18", "4E"], mistyterrain: ["8M"], mudslap: ["4T"], nastyplot: ["8M", "7E", "6E", "5E", "4E"], @@ -17320,7 +18017,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7V"], dazzlinggleam: ["8M", "8L44", "8V", "7M", "6M"], doubleedge: ["7V", "3T"], - doubleslap: ["8V", "7L11", "7V", "6L11", "5L15", "4L15", "3L15"], + doubleslap: ["8V", "7L11", "7V", "6L11", "5L11", "4L15", "3L15"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["8M", "7T", "6T", "5T", "4M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], @@ -17360,7 +18057,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], metronome: ["8M", "7V", "3T"], - mimic: ["8L32", "8V", "7L15", "7E", "7V", "6L15", "6E", "5L18", "5E", "4L18", "4E", "3T", "3E"], + mimic: ["8L32", "8V", "7L15", "7E", "7V", "6L15", "6E", "5L15", "5E", "4L18", "4E", "3T", "3E"], mistyterrain: ["8M", "7L1", "6L1"], mudslap: ["7V", "4T", "3T"], mysticalfire: ["8M"], @@ -17637,7 +18334,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bide: ["7V"], brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], brutalswing: ["8M", "7M"], - bugbite: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], bugbuzz: ["9M", "8M", "7E", "6E", "5E", "4E"], captivate: ["4M"], closecombat: ["9M"], @@ -17651,7 +18348,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleedge: ["7V", "3T"], doublehit: ["9L20", "8L20", "7L49", "6L49", "5L49", "4L49"], doubleteam: ["9L16", "8L16", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L41"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4E", "3T", "3E"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["9M", "9L8", "8M", "8L8", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L13", "3L16"], @@ -17668,6 +18365,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { laserfocus: ["8L44", "7T"], leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + lunge: ["9M"], mimic: ["7V", "3T"], morningsun: ["3S1"], naturalgift: ["4M"], @@ -17692,6 +18390,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], silverwind: ["7E", "6E", "5E", "4M", "4E", "3E", "3S1"], + skittersmack: ["9M"], skullbash: ["7V"], slash: ["9L24", "8L24", "8V", "7L29", "7V", "6L29", "5L29", "5S2", "4L29", "3L31", "3S1"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], @@ -17710,7 +18409,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], - vacuumwave: ["7L1", "6L1", "5L1", "4L1"], + vacuumwave: ["9M", "7L1", "6L1", "5L1", "4L1"], wingattack: ["9L12", "8L12", "8V", "7L21", "7V", "6L21", "5L21", "5S2", "4L21", "3L26"], xscissor: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], }, @@ -17736,7 +18435,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], brutalswing: ["8M", "7M"], - bugbite: ["7T", "6T", "5T", "5S2", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "5S2", "4T"], bugbuzz: ["9M", "8M"], bulletpunch: ["9L0", "8L0", "7L1", "6L1", "6S7", "5L1", "5S2", "4L1"], captivate: ["4M"], @@ -17744,14 +18443,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], counter: ["3T"], crosspoison: ["8M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defog: ["7T", "4M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doublehit: ["9L20", "8L20", "7L49", "6L49", "6S4", "5L49", "4L49"], doubleteam: ["9L16", "8L16", "7M", "7V", "6M", "5M", "4M", "3M", "3L41"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L13", "7V", "6M", "6L13", "6S5", "6S6", "5M", "5L13", "4M", "4L13", "3L16"], @@ -17762,16 +18461,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["9L1", "8L1", "7L25", "7V", "6L25", "6S5", "6S6", "5L25", "4T", "4L25", "3T", "3L46", "3S0"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hardpress: ["9M"], headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], irondefense: ["9M", "9L32", "8M", "8L32", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37", "4S1", "3L41"], ironhead: ["9M", "9L36", "8M", "8L36", "7T", "7L50", "6T", "6L50", "6S4", "5T", "5L53", "4T", "4L53"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["8L44", "7T"], leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S3", "4L1", "3L1"], lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], metalclaw: ["9M", "9L12", "8L12", "7L21", "7V", "6L21", "6S6", "5L21", "4L21", "3L26", "3S0"], mimic: ["3T"], naturalgift: ["4M"], @@ -17796,6 +18497,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], silverwind: ["4M"], + skittersmack: ["9M"], slash: ["9L24", "8L24", "7L29", "7V", "6L29", "5L29", "4L29", "3L31", "3S0"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], @@ -17816,6 +18518,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], uturn: ["9M", "8M", "7M", "6M", "6S7", "5M", "4M"], + vacuumwave: ["9M"], venoshock: ["8M", "7M", "6M", "5M"], wingattack: ["9L1", "8L1"], xscissor: ["9M", "9L40", "8M", "8L40", "7M", "7L41", "6M", "6L41", "6S4", "5M", "5L41", "4M", "4L41", "4S1"], @@ -17840,10 +18543,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { airslash: ["9M"], batonpass: ["9M"], brickbreak: ["9M"], + bugbite: ["9M"], bugbuzz: ["9M"], closecombat: ["9M"], + doubleedge: ["9M"], doublehit: ["9L20"], doubleteam: ["9L16"], + dualwingbeat: ["9M"], endure: ["9M"], facade: ["9M"], falseswipe: ["9M", "9L8"], @@ -17854,9 +18560,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], leer: ["9L1"], lightscreen: ["9M"], + lunge: ["9M"], pounce: ["9M"], protect: ["9M"], quickattack: ["9L1"], + raindance: ["9M"], rest: ["9M"], reversal: ["9M"], rockblast: ["9M"], @@ -17864,9 +18572,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M"], sandstorm: ["9M"], scaryface: ["9M"], + skittersmack: ["9M"], slash: ["9L24"], sleeptalk: ["9M"], - smackdown: ["9L12"], + smackdown: ["9M", "9L12"], stealthrock: ["9M"], stoneaxe: ["9L0"], stoneedge: ["9M"], @@ -17881,6 +18590,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], trailblaze: ["9M"], uturn: ["9M"], + vacuumwave: ["9M"], xscissor: ["9M", "9L40"], }, }, @@ -18116,78 +18826,89 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - charge: ["8L8"], - chargebeam: ["7M", "6M", "5M", "4M"], + charge: ["9M", "9L8", "8L8"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], counter: ["3T"], covet: ["7T", "6T", "5T"], - crosschop: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E", "3S0"], + crosschop: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E", "3S0"], curse: ["7V"], detect: ["7V"], - discharge: ["8L32", "7L33", "6L33", "5L41", "4L34"], - doubleedge: ["3T"], + discharge: ["9L32", "8L32", "7L33", "6L33", "5L33", "4L34"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dualchop: ["7T", "6T", "5T"], - dynamicpunch: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], - electroball: ["8M", "7L22", "6L22", "5L31"], - electroweb: ["8M", "7T", "6T", "5T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - feint: ["8E", "7E", "6E", "5E", "4E"], - firepunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], + dynamicpunch: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "8M", "7L22", "6L22", "5L22"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9E", "8E", "7E", "6E", "5E", "4E"], + firepunch: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], flash: ["7V", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + followme: ["9E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - hammerarm: ["8E", "7E", "6E", "5E"], + hammerarm: ["9E", "8E", "7E", "6E", "5E"], headbutt: ["7V", "4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], + icepunch: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], karatechop: ["7E", "7V", "6E", "5E", "4E", "3E"], - leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - lightscreen: ["8M", "8L44", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L25", "3M", "3L17"], - lowkick: ["8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L11", "4T", "4L10"], + knockoff: ["9M"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "9L44", "8M", "8L44", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L25", "3M", "3L17"], + lowkick: ["9M", "9L36", "8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L8", "4T", "4L10"], magnetrise: ["7T", "6T", "5T", "5D", "4T"], meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], + metalsound: ["9M"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - quickattack: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], rollingkick: ["7E", "7V", "6E", "5E", "4E", "3E"], round: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L24", "7L36", "7V", "6L36", "5L51", "4L43", "3L33"], + screech: ["9L24", "8M", "8L24", "7L36", "7V", "6L36", "5L36", "4L43", "3L33"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "5L21", "4M", "4L19", "3M"], + shockwave: ["9L16", "8L16", "7T", "7L15", "6T", "6L15", "5L15", "4M", "4L19", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supercellslam: ["9M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L12", "7L12", "7V", "6L12", "5L16", "4T", "4L16", "3T", "3L25"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L56", "4M", "4L46", "3M", "3L49"], - thunderbolt: ["8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L46", "4M", "4L37", "3M", "3L41"], - thunderpunch: ["8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L36", "4T", "4L28", "3T", "3L9", "3S0"], - thundershock: ["8L4", "7L5", "6L5", "5L6", "5D", "4L7"], - thunderwave: ["8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M", "3T"], + swift: ["9M", "9L12", "8M", "8L12", "7L12", "7V", "6L12", "5L12", "4T", "4L16", "3T", "3L25"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "9L48", "8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L46", "3M", "3L49"], + thunderbolt: ["9M", "9L40", "8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L37", "3M", "3L41"], + thunderpunch: ["9M", "9L28", "8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L29", "4T", "4L28", "3T", "3L9", "3S0"], + thundershock: ["9L4", "8L4", "7L5", "6L5", "5L5", "5D", "4L7"], + thunderwave: ["9M", "9L20", "8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M", "3T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], - voltswitch: ["8M", "7M", "6M", "5M"], - wildcharge: ["8M", "7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], zapcannon: ["7V"], }, eventData: [ @@ -18198,91 +18919,99 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M"], captivate: ["4M"], - charge: ["8L1"], - chargebeam: ["7M", "6M", "5M", "4M"], + charge: ["9M", "9L1", "8L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], counter: ["7V", "3T"], covet: ["7T", "6T", "5T"], crosschop: ["3S1"], curse: ["7V"], detect: ["7V"], - discharge: ["8L34", "7L36", "6L36", "5L44", "4L37"], - doubleedge: ["7V", "3T"], + discharge: ["9L34", "8L34", "7L36", "6L36", "5L36", "4L37"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dualchop: ["7T", "6T", "5T"], dynamicpunch: ["7V", "3T"], - electroball: ["8M", "7L22", "6L22", "5L32"], - electroweb: ["8M", "7T", "6T", "5T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "8M", "7L22", "6L22", "5L22"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], flash: ["7V", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], followme: ["3S1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "8L64", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "9L64", "8M", "8L64", "7M", "6M", "5M", "4M"], headbutt: ["8V", "7V", "4T"], - helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - lightscreen: ["8M", "8L52", "8V", "7M", "7L26", "7V", "6M", "6L26", "6S4", "5M", "5L26", "5S3", "4M", "4L25", "4S2", "3M", "3L17"], - lowkick: ["8M", "8L40", "8V", "7T", "7L8", "6T", "6L8", "6S4", "5T", "5L11", "5S3", "4T", "4L10", "4S2"], - lowsweep: ["8M", "7M", "6M", "5M"], + knockoff: ["9M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lightscreen: ["9M", "9L52", "8M", "8L52", "8V", "7M", "7L26", "7V", "6M", "6L26", "6S4", "5M", "5L26", "5S3", "4M", "4L25", "4S2", "3M", "3L17"], + lowkick: ["9M", "9L40", "8M", "8L40", "8V", "7T", "7L8", "6T", "6L8", "6S4", "5T", "5L8", "5S3", "4T", "4L10", "4S2"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - metronome: ["7V"], + metalsound: ["9M"], + metronome: ["9M", "7V"], mimic: ["7V", "3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psywave: ["7V"], - quickattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + quickattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], rage: ["7V"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], risingvoltage: ["8T"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L24", "8V", "7L42", "7V", "6L42", "5L56", "4L52", "3L36"], + screech: ["9L24", "8M", "8L24", "8V", "7L42", "7V", "6L42", "5L42", "4L52", "3L36"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], - shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "6S4", "5L21", "5S3", "4M", "4L19", "4S2", "3M"], + shockwave: ["9L16", "8L16", "7T", "7L15", "6T", "6L15", "6S4", "5L15", "5S3", "4M", "4L19", "4S2", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supercellslam: ["9M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L12", "8V", "7L12", "7V", "6L12", "5L16", "5S3", "4T", "4L16", "3T", "3L25"], - takedown: ["7V"], - taunt: ["8V"], + swift: ["9M", "9L12", "8M", "8L12", "8V", "7L12", "7V", "6L12", "5L12", "5S3", "4T", "4L16", "3T", "3L25"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V"], teleport: ["8V", "7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L62", "4M", "4L58", "3M", "3L58"], - thunderbolt: ["8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L50", "4M", "4L43", "3M", "3L47", "3S1"], - thunderpunch: ["8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L38", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], - thundershock: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], - thunderwave: ["8M", "8L20", "8V", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "3T", "3S1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "9L58", "8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L58", "3M", "3L58"], + thunderbolt: ["9M", "9L46", "8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L43", "3M", "3L47", "3S1"], + thunderpunch: ["9M", "9L28", "8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L29", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], + thundershock: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + thunderwave: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "3T", "3S1"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M"], - voltswitch: ["8M", "7M", "6M", "5M"], - wildcharge: ["8M", "7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["9M", "8M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], zapcannon: ["7V"], }, eventData: [ @@ -18302,87 +19031,98 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { electivire: { learnset: { attract: ["8M", "7M", "6M", "5M", "4M"], - bodyslam: ["8M"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - charge: ["8L1"], - chargebeam: ["7M", "6M", "5M", "4M"], + charge: ["9M", "9L1", "8L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], crosschop: ["4S0"], darkestlariat: ["8M"], - dig: ["8M", "6M", "5M", "4M"], - discharge: ["8L34", "7L36", "6L36", "5L44", "4L37", "4S1"], + dig: ["9M", "8M", "6M", "5M", "4M"], + discharge: ["9L34", "8L34", "7L36", "6L36", "5L36", "4L37", "4S1"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], dualchop: ["7T", "6T", "5T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "4S0"], - electricterrain: ["8M", "7L1", "6L1"], - electroball: ["8M", "7L22", "6L22", "5L32"], - electroweb: ["8M", "7T", "6T", "5T"], - endure: ["8M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M"], - firepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - flamethrower: ["8M", "7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M", "7L1", "6L1"], + electroball: ["9M", "8M", "7L22", "6L22", "5L22"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L68", "4M", "4L67"], + gigaimpact: ["9M", "9L64", "8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L62", "4M", "4L67"], headbutt: ["4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "4S0"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "4S0"], iondeluge: ["7L1", "6L1"], irontail: ["8M", "7T", "6T", "5T", "4M"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], - lightscreen: ["8M", "8L52", "7M", "7L26", "6M", "6L26", "5M", "5L26", "4M", "4L25", "4S1"], - lowkick: ["8M", "8L40", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - lowsweep: ["8M", "7M", "6M", "5M"], + knockoff: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["9M", "9L52", "8M", "8L52", "7M", "7L26", "6M", "6L26", "5M", "5L26", "4M", "4L25", "4S1"], + lowkick: ["9M", "9L40", "8M", "8L40", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["8M"], megapunch: ["8M"], + metalsound: ["9M"], + metronome: ["9M"], mudslap: ["4T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M"], - psychic: ["8M", "7M", "6M", "5M", "4M"], - quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1"], - raindance: ["8M", "7M", "6M", "5M", "4M"], - rest: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], risingvoltage: ["8T"], rockclimb: ["4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L24", "7L42", "6L42", "5L56", "4L52"], + screech: ["9L24", "8M", "8L24", "7L42", "6L42", "5L42", "4L52"], secretpower: ["6M", "4M"], - shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "5L21", "4M", "4L19"], + shockwave: ["9L16", "8L16", "7T", "7L15", "6T", "6L15", "5L15", "4M", "4L19"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - stompingtantrum: ["8M", "7T"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["6M", "5M", "4M"], - substitute: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + supercellslam: ["9M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["8M", "8L12", "7L12", "6L12", "5L16", "4T", "4L16"], - taunt: ["8M", "7M", "6M", "5M", "4M"], - thief: ["8M", "7M", "6M", "5M", "4M"], - thunder: ["8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L62", "4M", "4L58"], - thunderbolt: ["8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L50", "4M", "4L43", "4S1"], - thunderpunch: ["8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L38", "4T", "4L28", "4S0", "4S1"], - thundershock: ["8L1", "7L1", "6L1", "5L1", "4L1"], - thunderwave: ["8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M"], + swift: ["9M", "9L12", "8M", "8L12", "7L12", "6L12", "5L12", "4T", "4L16"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "9L58", "8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L55", "4M", "4L58"], + thunderbolt: ["9M", "9L46", "8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L43", "4S1"], + thunderpunch: ["9M", "9L28", "8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L28", "4S0", "4S1"], + thundershock: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + thunderwave: ["9M", "9L20", "8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["8M"], - voltswitch: ["8M", "7M", "6M", "5M"], - weatherball: ["8M"], - wildcharge: ["8M", "7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["9M", "8M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["9M", "8M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], }, eventData: [ {generation: 4, level: 50, gender: "M", nature: "Adamant", moves: ["thunderpunch", "icepunch", "crosschop", "earthquake"], pokeball: "pokeball"}, @@ -18391,175 +19131,189 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, magby: { learnset: { + acidspray: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], - belch: ["8E", "7E", "6E"], - bellydrum: ["7E", "6E", "5E", "4E"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + belch: ["9E", "8E", "7E", "6E"], + bellydrum: ["9E", "7E", "6E", "5E", "4E"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + burningjealousy: ["9M"], captivate: ["4M"], - clearsmog: ["8L12", "7L19", "6L19", "5L19"], + clearsmog: ["9L12", "8L12", "7L19", "6L19", "5L19"], confide: ["7M", "6M"], - confuseray: ["8L20", "7L26", "7V", "6L26", "5L25", "4L25", "3L43"], + confuseray: ["9M", "9L20", "8L20", "7L26", "7V", "6L26", "5L25", "4L25", "3L43"], counter: ["3T"], covet: ["7T", "6T", "5T"], - crosschop: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - curse: ["7V"], + crosschop: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "7V"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dualchop: ["7T", "6T", "5T"], - dynamicpunch: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], - ember: ["8L4", "7L5", "7V", "6L5", "5L7", "5D", "4L7", "3L1"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - feintattack: ["7L12", "6L12", "5L16", "4L16"], - fireblast: ["8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L49", "4M", "4L46", "3M", "3L49"], - firepunch: ["8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L34", "4T", "4L28", "3T", "3L19"], - firespin: ["8M", "7L15", "6L15", "5L19", "4L19"], - flameburst: ["7L22", "6L22", "5L28"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L43", "4M", "4L37", "3M", "3L37"], - flamewheel: ["8L16"], - flareblitz: ["8M", "7E", "6E", "5E", "4E"], - fling: ["8M", "7M", "6M", "5M", "4M"], + dynamicpunch: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], + ember: ["9L4", "8L4", "7L5", "7V", "6L5", "5L5", "5D", "4L7", "3L1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L12", "6L12", "5L12", "4L16"], + fireblast: ["9M", "9L48", "8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L46", "3M", "3L49"], + firepunch: ["9M", "9L28", "8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L29", "4T", "4L28", "3T", "3L19"], + firespin: ["9M", "8M", "7L15", "6L15", "5L15", "4L19"], + flameburst: ["7L22", "6L22", "5L22"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L40", "8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L37", "3M", "3L37"], + flamewheel: ["9L16", "8L16"], + flareblitz: ["9M", "8M", "7E", "6E", "5E", "4E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusenergy: ["8M", "7E", "6E", "5E"], - focuspunch: ["8E", "7T", "6T", "4M", "3M"], + focuspunch: ["9M", "9E", "8E", "7T", "6T", "4M", "3M"], + followme: ["9E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], - heatwave: ["8M", "7T", "6T", "5T", "5D", "4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], karatechop: ["7E", "7V", "6E", "5E", "4E", "3E"], - lavaplume: ["8L32", "7L33", "6L33", "5L37", "4L34"], - leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L7"], - lowkick: ["8M", "8L36"], - machpunch: ["8E", "7E", "6E", "5E", "4E"], + lavaplume: ["9L32", "8L32", "7L33", "6L33", "5L33", "4L34"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L7"], + lowkick: ["9M", "9L36", "8M", "8L36"], + machpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], megakick: ["8M", "3T"], megapunch: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], - overheat: ["8M", "7M", "6M", "5M", "4M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M"], powerswap: ["8M", "7E", "6E"], poweruppunch: ["6M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M", "8L24"], + scaryface: ["9M", "9L24", "8M", "8L24"], screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smog: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L13"], - smokescreen: ["8L8", "7L8", "7V", "6L8", "5L10", "4L10", "3L25"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + smokescreen: ["9L8", "8L8", "7L8", "7V", "6L8", "5L8", "4L10", "3L25"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "8L44", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L46", "4M", "4L43", "3M", "3L31"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L44", "8M", "8L44", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L43", "3M", "3L31"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3T", "3E"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3T", "3E"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], uproar: ["8M", "7T", "6T", "5T", "4T"], - willowisp: ["8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], }, }, magmar: { learnset: { + acidspray: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7V"], - bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - burningjealousy: ["8T"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + burningjealousy: ["9M", "8T"], captivate: ["4M"], - clearsmog: ["8L12", "8V", "7L19", "6L19", "5L19"], + clearsmog: ["9L12", "8L12", "8V", "7L19", "6L19", "5L19"], confide: ["7M", "6M"], - confuseray: ["8L20", "8V", "7L26", "7V", "6L26", "6S4", "5L26", "5S3", "4L25", "4S2", "3L49"], + confuseray: ["9M", "9L20", "8L20", "8V", "7L26", "7V", "6L26", "6S4", "5L26", "5S3", "4L25", "4S2", "3L49"], counter: ["7V", "3T"], covet: ["7T", "6T", "5T"], crosschop: ["3S1"], - curse: ["7V"], + curse: ["9M", "7V"], detect: ["7V"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dualchop: ["7T", "6T", "5T"], dynamicpunch: ["7V", "3T"], - ember: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - feintattack: ["7L12", "6L12", "5L16", "5S3", "4L16"], - fireblast: ["8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L62", "4M", "4L54", "3M", "3L57", "3S1"], - firepunch: ["8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L38", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], - firespin: ["8M", "8V", "7L15", "6L15", "6S4", "5L21", "5S3", "4L19", "4S2"], - flameburst: ["7L22", "6L22", "5L32"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L50", "4M", "4L41", "3M", "3L41"], - flamewheel: ["8L16"], - flareblitz: ["8M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], + ember: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L12", "6L12", "5L12", "5S3", "4L16"], + fireblast: ["9M", "9L58", "8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L54", "3M", "3L57", "3S1"], + firepunch: ["9M", "9L28", "8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L29", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], + firespin: ["9M", "8M", "8V", "7L15", "6L15", "6S4", "5L15", "5S3", "4L19", "4S2"], + flameburst: ["7L22", "6L22", "5L22"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L46", "8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L41", "3M", "3L41"], + flamewheel: ["9L16", "8L16"], + flareblitz: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], followme: ["3S1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["8V", "7V", "4T"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], - helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + heatcrash: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8L64", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "9L64", "8M", "8L64", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - lavaplume: ["8L34", "7L36", "6L36", "5L44", "4L36"], - leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - lowkick: ["8M", "8L40", "8V", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], + knockoff: ["9M"], + lavaplume: ["9L34", "8L34", "7L36", "6L36", "5L36", "4L36"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lowkick: ["9M", "9L40", "8M", "8L40", "8V", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - metronome: ["7V"], + metronome: ["9M", "7V"], mimic: ["7V", "3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], - overheat: ["8M", "7M", "6M", "5M", "4M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M"], powerswap: ["8M"], poweruppunch: ["6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psywave: ["7V"], rage: ["7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M", "8L24"], - scorchingsands: ["8T"], + scaryface: ["9M", "9L24", "8M", "8L24"], + scorchingsands: ["9M", "8T"], screech: ["8M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["8V", "7V", "3T"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smog: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - smokescreen: ["8L1", "8V", "7L8", "7V", "6L8", "6S4", "5L11", "5S3", "4L10", "4S2", "3L25"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + smokescreen: ["9L1", "8L1", "8V", "7L8", "7V", "6L8", "6S4", "5L8", "5S3", "4L10", "4S2", "3L25"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "8L52", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L56", "4M", "4L49", "3M", "3L33"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L52", "8M", "8L52", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L42", "4M", "4L49", "3M", "3L33"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - takedown: ["7V"], - taunt: ["8V"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V"], teleport: ["8V", "7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T", "3S1"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T", "3S1"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M"], - willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + uproar: ["9M", "8M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["leer", "smog", "firepunch", "ember"], pokeball: "pokeball"}, @@ -18577,88 +19331,100 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, magmortar: { learnset: { + acidspray: ["9M"], attract: ["8M", "7M", "6M", "5M", "4M"], - bodyslam: ["8M"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], - bulldoze: ["8M", "7M", "6M", "5M"], - burningjealousy: ["8T"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], captivate: ["4M"], - clearsmog: ["8L12", "7L19", "6L19", "5L19"], + clearsmog: ["9L12", "8L12", "7L19", "6L19", "5L19"], confide: ["7M", "6M"], - confuseray: ["8L20", "7L26", "6L26", "5L26", "4L25", "4S1"], + confuseray: ["9M", "9L20", "8L20", "7L26", "6L26", "5L26", "4L25", "4S1"], covet: ["7T", "6T", "5T"], + curse: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], dualchop: ["7T", "6T", "5T"], - earthquake: ["8M", "7M", "6M", "5M", "4M"], - ember: ["8L1", "7L1", "6L1", "5L1", "4L1"], - endure: ["8M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M"], - feintattack: ["7L12", "6L12", "5L16", "4L16"], - fireblast: ["8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L62", "4M", "4L58"], - firepunch: ["8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L38", "4T", "4L28", "4S1"], - firespin: ["8M", "7L15", "6L15", "5L21", "4L19"], - flameburst: ["7L22", "6L22", "5L32"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L50", "4M", "4L43", "4S0", "4S1"], - flamewheel: ["8L16"], - flareblitz: ["8M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L12", "6L12", "5L12", "4L16"], + fireblast: ["9M", "9L58", "8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L55", "4M", "4L58"], + firepunch: ["9M", "9L28", "8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L28", "4S1"], + firespin: ["9M", "8M", "7L15", "6L15", "5L15", "4L19"], + flameburst: ["7L22", "6L22", "5L22"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L46", "8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L43", "4S0", "4S1"], + flamewheel: ["9L16", "8L16"], + flareblitz: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + heatcrash: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L68", "4M", "4L67", "4S0"], + hyperbeam: ["9M", "9L64", "8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L62", "4M", "4L67", "4S0"], + hypervoice: ["9M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T", "4M"], - lavaplume: ["8L34", "7L36", "6L36", "5L44", "4L37", "4S1"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], - lowkick: ["8M", "8L40", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], + knockoff: ["9M"], + lavaplume: ["9L34", "8L34", "7L36", "6L36", "5L36", "4L37", "4S1"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["9M", "9L40", "8M", "8L40", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M"], megapunch: ["8M"], + metronome: ["9M"], mudslap: ["4T"], mysticalfire: ["8M"], naturalgift: ["4M"], - overheat: ["8M", "7M", "6M", "5M", "4M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M"], powerswap: ["8M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M"], - psychic: ["8M", "7M", "6M", "5M", "4M", "4S0"], - rest: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], + roar: ["9M"], rockclimb: ["4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M", "8L24"], - scorchingsands: ["8T"], + scaryface: ["9M", "9L24", "8M", "8L24"], + scorchingsands: ["9M", "8T"], screech: ["8M"], secretpower: ["6M", "4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], - smog: ["8L1", "7L1", "6L1", "5L1", "4L1"], - smokescreen: ["8L1", "7L1", "6L1", "5L1", "4L1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smog: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + smokescreen: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], snore: ["8M", "7T", "6T", "5T", "4T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "4S0"], - stompingtantrum: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["6M", "5M", "4M"], - substitute: ["8M", "7M", "6M", "5M", "4M"], - sunnyday: ["8M", "8L52", "7M", "7L42", "6M", "6L42", "5M", "5L56", "4M", "4L52"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "9L52", "8M", "8L52", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L52"], swagger: ["7M", "6M", "5M", "4M"], - taunt: ["8M", "7M", "6M", "5M", "4M"], - thief: ["8M", "7M", "6M", "5M", "4M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M"], - thunderpunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["8M"], - weatherball: ["8M"], - willowisp: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "8M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], }, eventData: [ {generation: 4, level: 50, gender: "F", nature: "Modest", moves: ["flamethrower", "psychic", "hyperbeam", "solarbeam"], pokeball: "pokeball"}, @@ -18671,7 +19437,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bide: ["7V"], bind: ["8L8", "8V", "7T", "7L4", "7V", "6T", "6L4", "5T", "5L4", "4L4", "3L7"], bodyslam: ["8M", "7V", "3T"], - brickbreak: ["8M", "8V", "7M", "7L26", "6M", "6L18", "5M", "5L21", "4M", "4L21", "3M", "3L31"], + brickbreak: ["8M", "8V", "7M", "7L26", "6M", "6L18", "5M", "5L18", "4M", "4L21", "3M", "3L31"], brutalswing: ["8M", "7M"], bugbite: ["8L16", "7T", "7E", "6T", "6E", "5T", "5E"], bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], @@ -18701,7 +19467,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furycutter: ["7V", "4T", "3T"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], guillotine: ["8L48", "8V", "7L50", "7V", "6L47", "5L47", "4L47", "3L37", "3S0"], - harden: ["8L1", "8V", "7L11", "7V", "6L11", "5L13", "4L13", "3L19"], + harden: ["8L1", "8V", "7L11", "7V", "6L11", "5L11", "4L13", "3L19"], headbutt: ["8V", "7V", "4T"], helpinghand: ["8M", "8V", "3S0"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -18719,7 +19485,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "6S1", "5M", "4M", "3M"], - revenge: ["8M", "7L15", "6L15", "5L18", "4L18", "3L25"], + revenge: ["8M", "7L15", "6L15", "5L15", "4L18", "3L25"], reversal: ["8M"], rockclimb: ["4M"], rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], @@ -18738,10 +19504,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["8L36", "7V", "6M", "5M", "4M", "3M"], stringshot: ["4T"], strugglebug: ["6M", "5M"], - submission: ["8L44", "8V", "7L33", "7V", "6L26", "5L42", "4L42", "3L43", "3S0"], + submission: ["8L44", "8V", "7L33", "7V", "6L26", "5L26", "4L42", "3L43", "3S0"], substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - superpower: ["8M", "8L52", "8V", "7T", "7L47", "7E", "6T", "6L43", "6E", "5T", "5L52", "5E", "4T", "4L52"], + superpower: ["8M", "8L52", "8V", "7T", "7L47", "7E", "6T", "6L43", "6E", "5T", "5L43", "5E", "4T", "4L52"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swordsdance: ["8M", "8L40", "8V", "7M", "7L40", "7V", "6M", "6L40", "6S2", "5M", "5L38", "4M", "4L38", "3T", "3L49"], takedown: ["7V"], @@ -18750,8 +19516,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { throatchop: ["8M", "7T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], visegrip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], - vitalthrow: ["8L28", "7L18", "6L18", "5L25", "4L25"], - xscissor: ["8M", "8L32", "8V", "7M", "7L29", "6M", "6L29", "6S1", "5M", "5L30", "4M", "4L30"], + vitalthrow: ["8L28", "7L18", "6L18", "5L22", "4L25"], + xscissor: ["8M", "8L32", "8V", "7M", "7L29", "6M", "6L29", "6S1", "5M", "5L29", "4M", "4L30"], }, eventData: [ {generation: 3, level: 35, abilities: ["hypercutter"], moves: ["helpinghand", "guillotine", "falseswipe", "submission"]}, @@ -18774,12 +19540,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], closecombat: ["9M", "8M"], confide: ["7M", "6M"], - curse: ["9E", "7V"], + curse: ["9M", "9E", "7V"], dig: ["9M"], - doubleedge: ["9L55", "8L55", "8V", "7L63", "7V", "3T"], + doubleedge: ["9M", "9L55", "8L55", "8V", "7L63", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], - endeavor: ["9E", "7T", "6T", "5T", "4T"], + endeavor: ["9M", "9E", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -18791,7 +19557,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["8V", "7V", "4T"], helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hornattack: ["9L20", "8L20", "8V", "7L8", "7V", "6L8", "5L8", "4L8", "3L8", "3S0", "3S1"], horndrill: ["7V"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -18800,7 +19566,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M", "5M"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["8V", "7V"], megahorn: ["8M"], mimic: ["7V", "3T"], @@ -18849,7 +19615,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], thrash: ["9L50", "8L50", "8V", "7L50", "7V", "6L50", "5L55", "4L48", "3L43"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -18879,19 +19645,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M"], bulldoze: ["9M"], closecombat: ["9M", "9L60"], - curse: ["9E"], + curse: ["9M", "9E"], dig: ["9M"], - doubleedge: ["9L55"], + doubleedge: ["9M", "9L55"], doublekick: ["9L10"], drillrun: ["9M"], earthquake: ["9M"], - endeavor: ["9E"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], gigaimpact: ["9M"], headbutt: ["9L20"], + highhorsepower: ["9M"], hyperbeam: ["9M"], ironhead: ["9M"], + lashout: ["9M"], outrage: ["9M"], protect: ["9M"], ragingbull: ["9L35"], @@ -18916,6 +19684,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], thrash: ["9L50"], + throatchop: ["9M"], trailblaze: ["9M"], wildcharge: ["9M"], workup: ["9L5"], @@ -18929,12 +19698,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M"], bulldoze: ["9M"], closecombat: ["9M", "9L60"], - curse: ["9E"], + curse: ["9M", "9E"], dig: ["9M"], + doubleedge: ["9M"], doublekick: ["9L10"], drillrun: ["9M"], earthquake: ["9M"], - endeavor: ["9E"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], fireblast: ["9M"], @@ -18944,8 +19714,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flareblitz: ["9M", "9L55"], gigaimpact: ["9M"], headbutt: ["9L20"], + highhorsepower: ["9M"], hyperbeam: ["9M"], ironhead: ["9M"], + lashout: ["9M"], outrage: ["9M"], overheat: ["9M"], protect: ["9M"], @@ -18967,6 +19739,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1"], tailwhip: ["9L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M"], thrash: ["9L50"], @@ -18986,19 +19759,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M"], chillingwater: ["9M"], closecombat: ["9M", "9L60"], - curse: ["9E"], + curse: ["9M", "9E"], dig: ["9M"], + doubleedge: ["9M"], doublekick: ["9L10"], drillrun: ["9M"], earthquake: ["9M"], - endeavor: ["9E"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], gigaimpact: ["9M"], headbutt: ["9L20"], + highhorsepower: ["9M"], hydropump: ["9M"], hyperbeam: ["9M"], ironhead: ["9M"], + lashout: ["9M"], liquidation: ["9M"], outrage: ["9M"], protect: ["9M"], @@ -19026,6 +19802,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], waterpulse: ["9M"], wavecrash: ["9L55"], + whirlpool: ["9M"], wildcharge: ["9M"], workup: ["9L5"], zenheadbutt: ["9M", "9L30"], @@ -19077,14 +19854,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7V"], darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["7V"], + dragoncheer: ["9M"], dragondance: ["9M", "9L36", "8M", "8L36", "7L45", "6L44", "6S0", "5L44", "4L44", "3L50"], dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], dragonrage: ["8V", "7L36", "7V", "6L23", "5L23", "4L23", "3L25"], dragontail: ["9M", "8V", "7M", "6M", "5M"], earthquake: ["9M", "8M", "8V", "7M", "6M", "6S0", "5M", "4M", "3M"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -19105,10 +19884,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M", "5M"], ironhead: ["9M", "8M", "7T", "6T", "6S1", "5T", "4T"], irontail: ["8M", "8V", "7T", "6T", "5T"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "8V", "7L21", "7V", "6L26", "5L26", "4L26", "3L30"], mimic: ["7V", "3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], naturalgift: ["4M"], outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], @@ -19119,18 +19898,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scald: ["8M", "8V", "7M", "6M", "5M"], - scaleshot: ["8T"], + scald: ["9M", "8M", "8V", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L16", "8M", "8L16", "7L33"], secretpower: ["6M", "4M", "3M"], skullbash: ["7V"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], splash: ["9L1", "8L1"], stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], @@ -19141,6 +19920,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "8L1", "7V"], takedown: ["9M", "7V"], taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + temperflare: ["9M"], terablast: ["9M"], thrash: ["9L48", "8L48", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -19153,7 +19933,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "9L21", "8M", "8L21", "8V", "7M", "7V", "6M", "6S0", "6S1", "5M", "4M", "3M"], watergun: ["7V"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - whirlpool: ["9L4", "8M", "8L4", "7V", "4M"], + whirlpool: ["9M", "9L4", "8M", "8L4", "7V", "4M"], zapcannon: ["7V"], }, eventData: [ @@ -19171,107 +19951,118 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, lapras: { learnset: { - ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + alluringvoice: ["9M"], + ancientpower: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], aurorabeam: ["7V"], - avalanche: ["8M", "7E", "6E", "5E", "4M"], + avalanche: ["9M", "8M", "7E", "6E", "5E", "4M"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M"], - bodyslam: ["8M", "8L40", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3T", "3L13"], - brine: ["8M", "8L35", "7L37", "6L37", "5L37", "4M", "4L37"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L40", "8M", "8L40", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3T", "3L13"], + brine: ["9L35", "8M", "8L35", "7L37", "6L37", "5L37", "4M", "4L37"], bubblebeam: ["7V"], - bulldoze: ["8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - charm: ["8M"], + charm: ["9M", "8M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confuseray: ["8L25", "8V", "7L7", "7V", "6L7", "5L7", "5D", "4L7", "3L19"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + confuseray: ["9M", "9L25", "8L25", "8V", "7L7", "7V", "6L7", "5L7", "5D", "4L7", "3L19"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + disarmingvoice: ["9M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["7V"], - dragondance: ["8M", "7E", "6E", "5E", "4E", "3E"], - dragonpulse: ["8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dragoncheer: ["9M"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], dragonrage: ["7V"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - drillrun: ["8M", "8V", "7T", "6T", "5T"], + drillrun: ["9M", "8M", "8V", "7T", "6T", "5T"], + earthquake: ["9M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fissure: ["8E", "7E", "6E", "5E", "4E"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9E", "8E", "7E", "6E", "5E", "4E"], foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], - freezedry: ["8E", "7E", "6E"], + freezedry: ["9E", "8E", "7E", "6E"], frostbreath: ["7M", "6M", "5M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], futuresight: ["8M", "7E", "6E", "5E"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T", "3S0"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - horndrill: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], - hydropump: ["8M", "8L55", "8V", "7L47", "7V", "6L47", "5L49", "4L49", "3L49", "3S0"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "8L45", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], - iceshard: ["8L20", "8V", "7L10", "6L10", "5L10", "4L10"], - icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + horndrill: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + hydropump: ["9M", "9L55", "8M", "8L55", "8V", "7L47", "7V", "6L47", "5L49", "4L49", "3L49", "3S0"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "9L45", "8M", "8L45", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], + iceshard: ["9L20", "8L20", "8V", "7L10", "6L10", "5L10", "4L10"], + iciclespear: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - lifedew: ["8L15"], - liquidation: ["8M"], + lifedew: ["9L15", "8L15"], + liquidation: ["9M", "8M"], megahorn: ["8M", "8V"], mimic: ["7V", "3T"], - mist: ["8L10", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L7"], + mist: ["9L10", "8L10", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L7"], + muddywater: ["9M"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], - perishsong: ["8L60", "7L27", "7V", "6L27", "5L27", "4L27", "3L25"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + perishsong: ["9L60", "8L60", "7L27", "7V", "6L27", "5L27", "4L27", "3L25"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicnoise: ["9M"], psywave: ["7V"], rage: ["7V"], - raindance: ["8M", "8L50", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L37", "3S0"], - reflect: ["8V", "7V"], + raindance: ["9M", "9L50", "8M", "8L50", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L37", "3S0"], + reflect: ["9M", "8V", "7V"], refresh: ["7E", "6E", "5E", "4E", "3E"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roar: ["7M", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], secretpower: ["6M", "4M", "3M"], - sheercold: ["8L65", "7L50", "6L50", "5L55", "4L55", "3L55"], + sheercold: ["9L65", "8L65", "7L50", "6L50", "5L55", "4L55", "3L55"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sing: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sing: ["9L5", "8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], - smartstrike: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + smartstrike: ["9M", "8M", "7M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], solarbeam: ["8V", "7V"], - sparklingaria: ["8E"], + sparklingaria: ["9E", "8E"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - takedown: ["7V"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - waterpulse: ["8L30", "7T", "7L14", "6T", "6L14", "5L14", "4M", "4L14", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M", "4E"], + waterfall: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L14", "6T", "6L14", "5L14", "4M", "4L14", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4E"], zapcannon: ["7V"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 44, moves: ["hydropump", "raindance", "blizzard", "healbell"]}, @@ -19299,11 +20090,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eevee: { learnset: { + alluringvoice: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "5S2", "4M", "4S0", "3M"], babydolleyes: ["9L15", "8L15", "7L9", "7S5", "6L9", "6S3", "6S4"], - batonpass: ["9M", "9L35", "8M", "8L35", "7L33", "7V", "6L33", "5L36", "4L36", "3L36"], + batonpass: ["9M", "9L35", "8M", "8L35", "7L33", "7V", "6L33", "5L33", "4L36", "3L36"], bide: ["7V"], - bite: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L29", "4L29", "4S0", "3L30"], + bite: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L17", "4L29", "4S0", "3L30"], bodyslam: ["9M", "8M", "7V", "3T"], calmmind: ["9M"], captivate: ["7E", "6E", "4M"], @@ -19312,10 +20104,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], copycat: ["9L30", "8L30"], covet: ["9L1", "8L1", "8S6", "7T", "7L1", "7E", "6T", "6L23", "6E", "5T", "5L21", "5E", "4E", "4S0"], - curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], detect: ["9E", "8E", "7E", "7V", "6E", "5E", "4E"], dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], - doubleedge: ["9L50", "8L50", "8V", "7L37", "7V", "6L37", "5L37", "3T"], + doubleedge: ["9M", "9L50", "8L50", "8V", "7L37", "7V", "6L37", "5L37", "3T"], doublekick: ["9E", "8E", "8V"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M", "5S2"], @@ -19325,7 +20117,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "4S1", "3E"], focusenergy: ["8M", "7V"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L15", "4L15", "3L16"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L9", "4L15", "3L16"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "8S6", "7T", "7L1", "6T", "6L1", "6S4", "5T", "5L1", "4T", "4L1", "4S0", "3L1"], @@ -19333,13 +20125,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M", "7T", "6T", "5T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "4S1", "3M"], laserfocus: ["7T"], - lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], mimic: ["7V", "3T"], mudslap: ["9M", "9E", "8E", "7V", "4T", "3T"], naturalgift: ["7E", "6E", "5E", "4M"], payday: ["8M", "8V"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "6S4", "5L22", "4L22", "4S1", "3L23"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "6S4", "5L13", "4L22", "4S1", "3L23"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8V", "7V"], @@ -19347,8 +20139,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "5S2", "4M", "3M"], + roar: ["9M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "7S5", "6L5", "6S3", "5L8", "5D", "4L8", "3L8"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "7S5", "6L5", "6S3", "5L5", "5D", "4L8", "3L8"], secretpower: ["6M", "4M", "3M"], shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], sing: ["5S2"], @@ -19363,13 +20156,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { synchronoise: ["7E", "6E", "5E"], tackle: ["9L1", "8L1", "8V", "8S6", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["9M", "9L40", "8L40", "8V", "7L25", "7V", "6L25", "5L43", "4L43", "3L42"], + takedown: ["9M", "9L40", "8L40", "8V", "7L25", "7V", "6L25", "5L25", "4L43", "3L42"], terablast: ["9M"], tickle: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - trumpcard: ["7L45", "6L45", "5L57", "4L57", "4S1"], - weatherball: ["8M"], + trumpcard: ["7L45", "6L45", "5L45", "4L57", "4S1"], + weatherball: ["9M", "8M"], wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], workup: ["8M", "7M", "5M"], yawn: ["9E", "8E", "7E", "6E", "5E", "4E"], @@ -19428,11 +20221,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, vaporeon: { learnset: { - acidarmor: ["9L45", "8L45", "8V", "7L29", "7V", "6L29", "5L64", "4L64", "3L47"], - aquaring: ["9L35", "8L35", "7L25", "6L25", "5L43", "4L43"], + acidarmor: ["9L45", "8L45", "8V", "7L29", "7V", "6L29", "5L29", "4L64", "3L47"], + alluringvoice: ["9M"], + aquaring: ["9L35", "8L35", "7L25", "6L25", "5L25", "4L43"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - aurorabeam: ["9L30", "8L30", "8V", "7L20", "7V", "6L20", "5L36", "4L36", "3L36"], + aurorabeam: ["9L30", "8L30", "8V", "7L20", "7V", "6L20", "5L21", "4L36", "3L36"], babydolleyes: ["9L15", "8L15", "7L9"], batonpass: ["9M", "9L1", "8M", "8L1"], bide: ["7V"], @@ -19449,56 +20243,56 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T", "5T"], - curse: ["7V"], + curse: ["9M", "7V"], detect: ["7V"], dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["9L1", "8L1", "7V", "3T"], + doubleedge: ["9M", "9L1", "8L1", "7V", "3T"], doublekick: ["8V"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], faketears: ["9M", "8M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], focusenergy: ["8M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "8V"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L57", "4L57", "3L42"], + haze: ["9M", "9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L33", "4L57", "3L42"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1", "3L1"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["9M", "9L50", "8M", "8L50", "8V", "7L45", "7V", "6L45", "5L71", "4L71", "3L52"], + hydropump: ["9M", "9L50", "8M", "8L50", "8V", "7L45", "7V", "6L45", "5L45", "4L71", "3L52"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], hypervoice: ["9M", "8M", "7T", "6T", "5T"], icebeam: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], liquidation: ["9M", "8M"], mimic: ["7V", "3T"], mist: ["7V"], - muddywater: ["9L40", "8M", "8L40", "7L37", "6L37", "5L78", "4L78"], + muddywater: ["9M", "9L40", "8M", "8L40", "7L37", "6L37", "5L37", "4L78"], mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], payday: ["8M", "8V"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L13", "4L22", "3L23"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], - scald: ["8M", "8V", "7M", "7S2", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L5", "5S0", "4L8", "3L8"], + scald: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M"], secretpower: ["6M", "4M", "3M"], shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], @@ -19519,10 +20313,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], - waterpulse: ["9M", "9L25", "8L25", "7T", "7L17", "6T", "6L17", "4M", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], + watergun: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L9", "4L15", "3L16"], + waterpulse: ["9M", "9L25", "8L25", "7T", "7L17", "6T", "6L17", "5L17", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], workup: ["8M", "7M", "5M"], yawn: ["8V"], }, @@ -19534,7 +20328,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, jolteon: { learnset: { - agility: ["9M", "9L45", "8M", "8L45", "8V", "7L29", "7V", "6L29", "5L64", "4L64", "3L47"], + agility: ["9M", "9L45", "8M", "8L45", "8V", "7L29", "7V", "6L29", "5L29", "4L64", "3L47"], + alluringvoice: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], babydolleyes: ["9L15", "8L15", "7L9"], batonpass: ["9M", "9L1", "8M", "8L1"], @@ -19544,22 +20339,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { calmmind: ["9M"], captivate: ["4M"], celebrate: ["6S1"], + charge: ["9M"], chargebeam: ["7M", "6M", "5M", "4M"], charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M", "6M"], copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T", "5T"], - curse: ["7V"], + curse: ["9M", "7V"], detect: ["7V"], dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], - discharge: ["9L40", "8L40", "7L37", "6L37", "5L78", "4L78"], - doubleedge: ["9L1", "8L1", "7V", "3T"], - doublekick: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L29", "4L29", "3L30"], + discharge: ["9L40", "8L40", "7L37", "6L37", "5L37", "4L78"], + doubleedge: ["9M", "9L1", "8L1", "7V", "3T"], + doublekick: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L17", "4L29", "3L30"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M", "8M"], + electroweb: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], faketears: ["9M", "8M"], @@ -19577,16 +20374,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M", "7T", "6T", "5T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], lightscreen: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M"], magnetrise: ["7T", "6T", "5T", "4T"], + metalsound: ["9M"], mimic: ["7V", "3T"], mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], payday: ["8M", "8V"], - pinmissile: ["9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L36", "4L36", "3L36"], + pinmissile: ["9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L25", "4L36", "3L36"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L13", "4L22", "3L23"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8V", "7V"], @@ -19594,10 +20392,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], risingvoltage: ["8T"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L5", "5S0", "4L8", "3L8"], secretpower: ["6M", "4M", "3M"], shadowball: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], @@ -19615,15 +20413,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], takedown: ["9M", "9L1", "8L1", "7V"], terablast: ["9M"], - thunder: ["9M", "9L50", "8M", "8L50", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L71", "4M", "4L71", "3M", "3L52"], + thunder: ["9M", "9L50", "8M", "8L50", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L71", "3M", "3L52"], thunderbolt: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], - thunderfang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], - thundershock: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], - thunderwave: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L57", "4M", "4L57", "3T", "3L42"], + thunderfang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L21", "4L43"], + thundershock: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L9", "4L15", "3L16"], + thunderwave: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L57", "3T", "3L42"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], voltswitch: ["9M", "8M", "7M", "7S2", "6M", "5M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], workup: ["8M", "7M", "5M"], yawn: ["8V"], @@ -19637,13 +20435,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, flareon: { learnset: { + alluringvoice: ["9M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], babydolleyes: ["9L15", "8L15", "7L9"], batonpass: ["9M", "9L1", "8M", "8L1"], bide: ["7V"], - bite: ["9L25", "8L25", "7L17", "7V", "6L17", "5L29", "4L29", "3L30"], + bite: ["9L25", "8L25", "7L17", "7V", "6L17", "5L17", "4L29", "3L30"], bodyslam: ["9M", "8M", "7V", "3T"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], calmmind: ["9M"], captivate: ["4M"], celebrate: ["6S1"], @@ -19651,21 +20450,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T", "5T"], - curse: ["7V"], + curse: ["9M", "7V"], detect: ["7V"], dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], - doubleedge: ["9L1", "8L1", "7V", "3T"], + doubleedge: ["9M", "9L1", "8L1", "7V", "3T"], doublekick: ["8V"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - ember: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], + ember: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L9", "4L15", "3L16"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M", "3M"], faketears: ["9M", "8M"], - fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5L71", "4M", "4L71", "3M"], - firefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], - firespin: ["9M", "9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L36", "4L36", "3L36"], - flamecharge: ["7M", "6M", "5M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5L45", "4M", "4L71", "3M"], + firefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L21", "4L43"], + firespin: ["9M", "9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L25", "4L36", "3L36"], + flamecharge: ["9M", "7M", "6M", "5M"], flamethrower: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L52"], flareblitz: ["9M", "9L50", "8M", "8L50", "8V", "7L45", "7S2", "6L45"], focusenergy: ["8M", "8V"], @@ -19682,8 +20482,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M", "5M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], - lavaplume: ["9L40", "8L40", "7L37", "6L37", "5L78", "4L78"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], + lavaplume: ["9L40", "8L40", "7L37", "6L37", "5L37", "4L78"], leer: ["7V", "3L47"], mimic: ["7V", "3T"], mudslap: ["9M", "7V", "4T", "3T"], @@ -19692,24 +20492,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], payday: ["8M", "8V"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "7S2", "6L13", "5L22", "4L22", "3L23"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "7S2", "6L13", "5L13", "4L22", "3L23"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], - scaryface: ["9M", "9L45", "8M", "8L45", "7L29", "6L29", "5L64", "4L64"], - scorchingsands: ["8T"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L5", "5S0", "4L8", "3L8"], + scaryface: ["9M", "9L45", "8M", "8L45", "7L29", "6L29", "5L29", "4L64"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], skullbash: ["7V"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smog: ["9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L57", "4L57", "3L42"], + smog: ["9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L33", "4L57", "3L42"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], storedpower: ["9M", "8M"], strength: ["6M", "5M", "4M"], @@ -19721,10 +20521,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], takedown: ["9M", "9L1", "8L1", "7V"], + temperflare: ["9M"], terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], willowisp: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M"], workup: ["8M", "7M", "5M"], yawn: ["8V"], @@ -19738,6 +20539,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, espeon: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], babydolleyes: ["9L15", "8L15", "7L9"], @@ -19750,29 +20552,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M", "6M"], confuseray: ["9M"], - confusion: ["9L0", "8L0", "7L1", "7V", "6L9", "6S2", "5L15", "4L15", "3L16"], + confusion: ["9L0", "8L0", "7L1", "7V", "6L9", "6S2", "5L9", "4L15", "3L16"], copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T", "5T"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], dazzlinggleam: ["9M", "8M", "7M", "7S3", "6M"], detect: ["7V"], dig: ["9M", "8M", "6M", "5M", "4M", "3M"], - doubleedge: ["9L1", "8L1", "3T"], + doubleedge: ["9M", "9L1", "8L1", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "7V", "4M", "3T"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], faketears: ["9M", "8M"], flash: ["7V", "6M", "5M", "4M", "3M"], focusenergy: ["8M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["9L50", "8M", "8L50", "7L25", "6L25", "5L43", "4L43"], + futuresight: ["9M", "9L50", "8M", "8L50", "7L25", "6L25", "5L25", "4L43"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M"], growl: ["9L1", "8L1"], headbutt: ["7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], @@ -19783,34 +20586,36 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { imprison: ["9M"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], magicalleaf: ["9M"], magiccoat: ["7T", "6T", "5T", "4T"], magicroom: ["8M", "7T", "6T", "5T"], mimic: ["3T"], - morningsun: ["9L30", "8L30", "7L33", "7V", "6L33", "5L71", "4L71", "3L52", "3S0"], + morningsun: ["9L30", "8L30", "7L33", "7V", "6L33", "5L33", "4L71", "3L52", "3S0"], mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], nightmare: ["7V", "3T"], payday: ["8M"], powergem: ["9M"], - powerswap: ["9L35", "8M", "8L35", "7L45", "6L45", "5L78", "4L78"], + powerswap: ["9L35", "8M", "8L35", "7L45", "6L45", "5L45", "4L78"], protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psybeam: ["9M", "9L25", "8L25", "7L20", "7V", "6L20", "5L36", "4L36", "3L36", "3S0"], - psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "7V", "7S3", "6M", "6L37", "5M", "5L64", "4M", "4L64", "3M", "3L47", "3S0"], + psybeam: ["9M", "9L25", "8L25", "7L20", "7V", "6L20", "5L21", "4L36", "3L36", "3S0"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "7V", "7S3", "6M", "6L37", "5M", "5L37", "4M", "4L64", "3M", "3L47", "3S0"], psychicfangs: ["9M", "8M"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["9L45", "8L45", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L57", "4M", "4L57", "3T", "3L42", "3S0"], + psychup: ["9M", "9L45", "8L45", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L57", "3T", "3L42", "3S0"], psyshock: ["9M", "8M", "7M", "6M", "5M"], - quickattack: ["9L10", "8L10", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + quickattack: ["9L10", "8L10", "7L13", "7V", "6L13", "5L13", "4L22", "3L23"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["9M", "8M", "7M", "7S3", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L8", "5S1", "4L8", "3L8"], + sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L5", "5S1", "4L8", "3L8"], secretpower: ["6M", "4M", "3M"], shadowball: ["9M", "8M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], @@ -19821,7 +20626,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["9M", "9L20", "8M", "8L20", "7L17", "7V", "6L17", "5L29", "4T", "4L29", "3T", "3L30"], + swift: ["9M", "9L20", "8M", "8L20", "7L17", "7V", "6L17", "5L17", "4T", "4L29", "3T", "3L30"], tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S1", "4L1", "3L1"], tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1"], takedown: ["9M", "9L1", "8L1"], @@ -19832,7 +20637,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], workup: ["8M", "7M", "5M"], zapcannon: ["7V"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -19846,6 +20651,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, umbreon: { learnset: { + alluringvoice: ["9M"], assurance: ["9L25", "8M", "8L25", "7L25", "6L25", "5L25", "4L43"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], babydolleyes: ["9L15", "8L15", "7L9"], @@ -19861,12 +20667,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T", "5T"], crunch: ["9M", "8M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], darkpulse: ["9M", "9L40", "8M", "8L40", "7M", "6M", "5T", "4M"], detect: ["7V"], dig: ["9M", "8M", "6M", "5M", "4M", "3M"], - doubleedge: ["9L1", "8L1", "3T"], + doubleedge: ["9M", "9L1", "8L1", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], echoedvoice: ["7M", "6M", "5M"], @@ -19889,29 +20695,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M", "7T", "6T", "5T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], lightscreen: ["9M"], meanlook: ["9L50", "8L50", "7L37", "7V", "6L37", "5L37", "4L57", "3L42", "3S0"], mimic: ["3T"], moonlight: ["9L30", "8L30", "7L33", "7V", "7S3", "6L33", "5L33", "4L71", "3L52", "3S0"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], nightmare: ["7V", "3T"], payback: ["8M", "7M", "6M", "5M", "4M"], payday: ["8M"], protect: ["9M", "8M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - pursuit: ["7L1", "7V", "6L9", "6S2", "5L15", "4L15", "3L16"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L1", "7V", "6L9", "6S2", "5L9", "4L15", "3L16"], quickattack: ["9L10", "8L10", "7L13", "7V", "6L13", "5L13", "4L22", "3L23"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["9M"], rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L8", "5S1", "4L8", "3L8"], + sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L5", "5S1", "4L8", "3L8"], scaryface: ["9M"], screech: ["9L45", "8M", "8L45", "7L29", "7V", "6L29", "5L29", "4L64", "3L47", "3S0"], secretpower: ["6M", "4M", "3M"], @@ -19921,7 +20728,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "9L0", "8M", "8L0", "7M", "7S3", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], storedpower: ["9M", "8M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], @@ -19934,12 +20741,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], terablast: ["9M"], thief: ["9M", "8M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderwave: ["9M"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["7M", "7V", "7S3", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], wonderroom: ["8M", "7T", "6T", "5T"], workup: ["8M", "7M", "5M"], zapcannon: ["7V"], @@ -19954,6 +20761,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leafeon: { learnset: { aerialace: ["9M", "7M", "6M", "5M", "4M"], + alluringvoice: ["9M"], attract: ["8M", "7M", "6M", "5M", "4M"], babydolleyes: ["9L15", "8L15", "7L9"], batonpass: ["9M", "9L1", "8M", "8L1"], @@ -19967,8 +20775,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["9M"], dig: ["9M", "8M", "6M", "5M", "4M"], - doubleedge: ["9L1", "8L1"], + doubleedge: ["9M", "9L1", "8L1"], doubleteam: ["7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "4M"], @@ -19979,11 +20788,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusenergy: ["8M"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], - gigadrain: ["9M", "9L40", "8M", "8L40", "7T", "7L25", "6T", "6L25", "5T", "5L43", "4M", "4L43"], + gigadrain: ["9M", "9L40", "8M", "8L40", "7T", "7L25", "6T", "6L25", "5T", "5L25", "4M", "4L43"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - grasswhistle: ["7L17", "6L17", "5L57", "4L57"], - grassyglide: ["8T"], + grasswhistle: ["7L17", "6L17", "5L17", "4L57"], + grassyglide: ["9M", "8T"], growl: ["9L1", "8L1"], headbutt: ["4T"], healbell: ["7T", "6T", "5T", "4T"], @@ -19992,43 +20801,43 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], hypervoice: ["9M", "8M", "7T", "6T", "5T"], irontail: ["8M", "7T", "6T", "5T", "4M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], - leafblade: ["9L50", "8M", "8L50", "7L45", "7S2", "6L45", "5L71", "4L71"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], + leafblade: ["9L50", "8M", "8L50", "7L45", "7S2", "6L45", "5L45", "4L71"], leafstorm: ["9M", "8M"], leechseed: ["9L20", "8L20"], - magicalleaf: ["9M", "9L25", "8M", "8L25", "7L20", "6L20", "5L36", "4L36"], + magicalleaf: ["9M", "9L25", "8M", "8L25", "7L20", "6L20", "5L21", "4L36"], mudshot: ["9M"], mudslap: ["9M", "4T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], payday: ["8M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], - quickattack: ["9L10", "8L10", "7L13", "6L13", "5L22", "4L22"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "5L13", "4L22"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], - razorleaf: ["9L0", "8L0", "7L1", "6L9", "6S1", "5L15", "4L15"], + razorleaf: ["9L0", "8L0", "7L1", "6L9", "6S1", "5L9", "4L15"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L8", "5S0", "4L8"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L5", "5S0", "4L8"], secretpower: ["6M", "4M"], seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], storedpower: ["9M", "8M"], strength: ["6M", "5M", "4M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], - sunnyday: ["9M", "9L35", "8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L64", "4M", "4L64"], + sunnyday: ["9M", "9L35", "8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L37", "4M", "4L64"], swagger: ["7M", "6M", "5M", "4M"], swift: ["9M", "9L1", "8M", "8L1", "4T"], - swordsdance: ["9M", "9L45", "8M", "8L45", "7M", "7L29", "7S2", "6M", "6L29", "5M", "5L78", "4M", "4L78"], + swordsdance: ["9M", "9L45", "8M", "8L45", "7M", "7L29", "7S2", "6M", "6L29", "5M", "5L29", "4M", "4L78"], synthesis: ["9L30", "8L30", "7T", "7L33", "7S2", "6T", "6L33", "5T", "5L29", "4T", "4L29"], tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], tailwhip: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], @@ -20036,7 +20845,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], workup: ["8M", "7M", "5M"], worryseed: ["7T", "6T", "5T", "4T"], xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -20049,15 +20858,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, glaceon: { learnset: { + alluringvoice: ["9M"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "6M", "5M", "4M"], auroraveil: ["7M", "7S2"], avalanche: ["9M", "8M", "4M"], babydolleyes: ["9L15", "8L15", "7L9"], - barrier: ["7L29", "6L29", "5L78", "4L78"], + barrier: ["7L29", "6L29", "5L29", "4L78"], batonpass: ["9M", "9L1", "8M", "8L1"], - bite: ["9L25", "8L25", "7L17", "6L17", "5L29", "4L29"], - blizzard: ["9M", "9L50", "8M", "8L50", "7M", "7L45", "7S2", "6M", "6L45", "5M", "5L71", "4M", "4L71"], + bite: ["9L25", "8L25", "7L17", "6L17", "5L17", "4L29"], + blizzard: ["9M", "9L50", "8M", "8L50", "7M", "7L45", "7S2", "6M", "6L45", "5M", "5L45", "4M", "4L71"], bodyslam: ["9M", "8M"], calmmind: ["9M"], captivate: ["4M"], @@ -20067,8 +20877,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["9M"], dig: ["9M", "8M", "6M", "5M", "4M"], - doubleedge: ["9L1", "8L1"], + doubleedge: ["9M", "9L1", "8L1"], doubleteam: ["7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "4M"], @@ -20079,8 +20890,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frostbreath: ["7M", "6M", "5M"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M"], growl: ["9L1", "8L1"], - hail: ["8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L64", "4M", "4L64"], + hail: ["8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L37", "4M", "4L64"], + haze: ["9M"], headbutt: ["4T"], healbell: ["7T", "6T", "5T", "4T"], helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1"], @@ -20088,28 +20901,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], hypervoice: ["9M", "8M", "7T", "6T", "5T"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], - icefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], - iceshard: ["9L20", "8L20", "7L25", "6L25", "5L36", "4L36"], - iciclespear: ["8M"], - icywind: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L9", "6S1", "5T", "5L15", "4T", "4L15"], + icefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L21", "4L43"], + iceshard: ["9L20", "8L20", "7L25", "6L25", "5L25", "4L36"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L9", "6S1", "5T", "5L9", "4T", "4L15"], irontail: ["8M", "7T", "6T", "5T", "4M"], laserfocus: ["7T"], - lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], - mirrorcoat: ["9L45", "8L45", "7L33", "6L33", "5L57", "4L57"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], + mirrorcoat: ["9L45", "8L45", "7L33", "6L33", "5L33", "4L57"], mudshot: ["9M"], mudslap: ["9M", "4T"], naturalgift: ["4M"], payday: ["8M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], - quickattack: ["9L10", "8L10", "7L13", "6L13", "5L22", "4L22"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "5L13", "4L22"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L8", "5S0", "4L8"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L5", "5S0", "4L8"], secretpower: ["6M", "4M"], shadowball: ["9M", "8M", "7M", "7S2", "6M", "5M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], @@ -20127,9 +20940,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "9L1", "8L1"], terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], - tripleaxel: ["8T"], + trailblaze: ["9M"], + tripleaxel: ["9M", "8T"], waterpulse: ["9M", "7T", "6T", "4M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], workup: ["8M", "7M", "5M"], }, eventData: [ @@ -20141,90 +20955,92 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { porygon: { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "8L30", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], + agility: ["9M", "9L30", "8M", "8L30", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], allyswitch: ["8M", "7T"], barrier: ["8V"], bide: ["7V"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - chargebeam: ["7M", "6M", "5M", "4M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - conversion2: ["8L25", "8S1", "7L1", "6L1", "5L1", "4L1", "3L1"], - conversion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + conversion: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + conversion2: ["9L25", "8L25", "8S1", "7L1", "6L1", "5L1", "4L1", "3L1"], curse: ["7V"], defensecurl: ["7V"], - discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], - doubleedge: ["7V", "3T"], + discharge: ["9L40", "8L40", "7L40", "6L40", "5L40", "4L40"], + doubleedge: ["9M", "9L50", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], - eerieimpulse: ["8M"], - electroweb: ["8M", "7T", "6T", "5T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M", "8M"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - foulplay: ["8M", "8V", "7T", "6T", "5T"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], guardswap: ["8M"], headbutt: ["8V"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], lastresort: ["7T", "6T", "5T", "4T"], - lockon: ["8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], + lockon: ["9L55", "8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], magiccoat: ["8L50", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4T", "4L56"], - magnetrise: ["8L10", "8S1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + magnetrise: ["9L10", "8L10", "8S1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], mimic: ["7V", "3T"], naturalgift: ["4M"], nightmare: ["7V", "3T"], painsplit: ["7T", "6T", "5T", "4T"], powerswap: ["8M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - psybeam: ["8L20", "8V", "8S1", "7L7", "7V", "6L7", "5L7", "5S0", "4L7", "3L12"], - psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L20", "8L20", "8V", "8S1", "7L7", "7V", "6L7", "5L7", "5S0", "4L7", "3L12"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7V"], rage: ["7V"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - recover: ["8L35", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], - recycle: ["8L5", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L35", "8L35", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], + recycle: ["9L5", "8L5", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], reflect: ["8V", "7V"], - rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], sharpen: ["8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L24"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], skullbash: ["7V"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], speedswap: ["8M"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], - takedown: ["7V"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["9M", "7V"], telekinesis: ["7T"], teleport: ["8V", "7V"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thundershock: ["8L15", "8S1"], - thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L15", "8L15", "8S1"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - triattack: ["8M", "8L45", "8V", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], - trick: ["8M", "7T", "6T", "5T", "4T"], - trickroom: ["8M", "7M", "6M", "5M", "4M"], + triattack: ["9L45", "8M", "8L45", "8V", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], wonderroom: ["8M", "7T", "6T", "5T"], - zapcannon: ["8L60", "7L62", "7V", "6L62", "5L62", "4L62", "3L48"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zapcannon: ["9L60", "8L60", "7L62", "7V", "6L62", "5L62", "4L62", "3L48"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 5, level: 10, isHidden: true, moves: ["tackle", "conversion", "sharpen", "psybeam"]}, @@ -20237,80 +21053,83 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { porygon2: { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "8L30", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], + agility: ["9M", "9L30", "8M", "8L30", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], allyswitch: ["8M", "7T"], - blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - chargebeam: ["7M", "6M", "5M", "4M"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - conversion2: ["8L25", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - conversion: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + conversion: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + conversion2: ["9L25", "8L25", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], curse: ["7V"], - defensecurl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L24"], - discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], - doubleedge: ["3T"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L24"], + discharge: ["9L40", "8L40", "7L40", "6L40", "5L40", "4L40"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], - eerieimpulse: ["8M"], - electroweb: ["8M", "7T", "6T", "5T"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M", "8M"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - foulplay: ["8M", "7T", "6T", "5T"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], guardswap: ["8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8L65", "7M", "7L67", "7V", "6M", "6L67", "5M", "5L67", "4M", "4L67", "3M"], - icebeam: ["8M", "8S0", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "9L60", "8M", "8L65", "7M", "7L67", "7V", "6M", "6L67", "5M", "5L67", "4M", "4L67", "3M"], + icebeam: ["9M", "8M", "8S0", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], lastresort: ["7T", "6T", "5T", "4T"], - lockon: ["8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], + lockon: ["9L50", "8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], magiccoat: ["8L50", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L56"], - magnetrise: ["8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + magnetrise: ["9L1", "8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], mimic: ["3T"], naturalgift: ["4M"], nightmare: ["7V", "3T"], painsplit: ["7T", "6T", "5T", "4T"], powerswap: ["8M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psybeam: ["8L20", "7L7", "7V", "6L7", "5L7", "4L7", "3L12"], - psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L20", "8L20", "7L7", "7V", "6L7", "5L7", "4L7", "3L12"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - recover: ["8L35", "8S0", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], - recycle: ["8L1", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L35", "8L35", "8S0", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], + recycle: ["9L1", "8L1", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], speedswap: ["8M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], - tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], telekinesis: ["7T"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8S0", "7M", "6M", "5M", "4M", "3M"], - thundershock: ["8L15"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8S0", "7M", "6M", "5M", "4M", "3M"], + thundershock: ["9L15", "8L15"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - triattack: ["8M", "8L45", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], - trick: ["8M", "7T", "6T", "5T", "4T"], - trickroom: ["8M", "8S0", "7M", "6M", "5M", "4M"], + triattack: ["9L45", "8M", "8L45", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "8S0", "7M", "6M", "5M", "4M"], wonderroom: ["8M", "7T", "6T", "5T"], - zapcannon: ["8L60", "7L1", "7V", "6L1", "5L62", "4L62", "3L48"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zapcannon: ["9L55", "8L60", "7L1", "7V", "6L1", "5L62", "4L62", "3L48"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 8, level: 50, nature: "Sassy", abilities: ["download"], ivs: {hp: 31, atk: 0, spe: 0}, moves: ["recover", "trickroom", "icebeam", "thunderbolt"], pokeball: "cherishball"}, @@ -20319,80 +21138,84 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { porygonz: { learnset: { aerialace: ["7M", "6M", "5M", "4M"], - agility: ["8M", "8L30", "7L12", "6L12", "5L12", "4L12"], + agility: ["9M", "9L30", "8M", "8L30", "7L12", "6L12", "5L12", "4L12"], allyswitch: ["8M", "7T"], - blizzard: ["8M", "7M", "6M", "5M", "4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - conversion2: ["8L25", "7L1", "6L1", "5L1", "4L1"], - conversion: ["8L1", "7L1", "6L1", "5L1", "4L1"], - darkpulse: ["8M", "7M", "6M", "5T", "4M"], - defensecurl: ["8L1"], - discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], + conversion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + conversion2: ["9L25", "8L25", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defensecurl: ["9L1", "8L1"], + discharge: ["9L40", "8L40", "7L40", "6L40", "5L40", "4L40"], + doubleedge: ["9M", "9L50"], doubleteam: ["7M", "6M", "5M", "4M"], dreameater: ["7M", "6M", "5M", "4M"], - eerieimpulse: ["8M"], - electroweb: ["8M", "7T", "6T", "5T"], + eerieimpulse: ["9M", "8M"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L34"], - endure: ["8M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], - foulplay: ["8M", "7T", "6T", "5T"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], guardswap: ["8M"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["8M", "8L65", "7M", "7L67", "6M", "6L67", "5M", "5L67", "4M", "4L67"], - icebeam: ["8M", "7M", "6M", "5M", "4M"], - icywind: ["8M", "7T", "6T", "5T", "4T"], + hyperbeam: ["9M", "9L65", "8M", "8L65", "7M", "7L67", "6M", "6L67", "5M", "5L67", "4M", "4L67"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "6T", "5T", "4M"], lastresort: ["7T", "6T", "5T", "4T"], - lockon: ["8L55", "7L45", "6L45", "5L45", "4L45"], + lockon: ["9L55", "8L55", "7L45", "6L45", "5L45", "4L45"], magiccoat: ["8L50", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L56"], - magnetrise: ["8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], - nastyplot: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + magnetrise: ["9L1", "8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + nastyplot: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], naturalgift: ["4M"], painsplit: ["7T", "6T", "5T", "4T"], powerswap: ["8M"], - protect: ["8M", "7M", "6M", "5M", "4M"], - psybeam: ["8L20", "7L7", "6L7", "5L7", "4L7"], - psychic: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9L20", "8L20", "7L7", "6L7", "5L7", "4L7"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], psychup: ["7M", "6M", "5M", "4M"], - psyshock: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M", "4M"], - recover: ["8L35", "7L18", "6L18", "5L18", "4L18"], - recycle: ["8L1", "7T", "6T", "5T", "4M"], - rest: ["8M", "7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recover: ["9L35", "8L35", "7L18", "6L18", "5L18", "4L18"], + recycle: ["9L1", "8L1", "7T", "6T", "5T", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M"], - shadowball: ["8M", "7M", "6M", "5M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M"], signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], speedswap: ["8M"], - substitute: ["8M", "7M", "6M", "5M", "4M"], - sunnyday: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["8M", "4T"], - tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], telekinesis: ["7T"], - thief: ["8M", "7M", "6M", "5M", "4M"], - thunder: ["8M", "7M", "6M", "5M", "4M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M"], - thundershock: ["8L15"], - thunderwave: ["8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thundershock: ["9L15", "8L15"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - triattack: ["8M", "8L45", "7L50", "6L50", "5L51", "4L51"], - trick: ["8M", "7T", "6T", "5T", "4T"], - trickroom: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - uproar: ["8M", "7T", "6T", "5T", "4T"], + triattack: ["9L45", "8M", "8L45", "7L50", "6L50", "5L51", "4L51"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], wonderroom: ["8M", "7T", "5T"], - zapcannon: ["8L60", "7L1", "6L1", "5L62", "4L62"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zapcannon: ["9L60", "8L60", "7L1", "6L1", "5L62", "4L62"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, }, omanyte: { @@ -20888,243 +21711,259 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { munchlax: { learnset: { afteryou: ["7T", "7E", "6T", "6E", "5T", "5E"], - amnesia: ["8M", "8L36", "7L9", "6L9", "5L9", "4L9"], + amnesia: ["9M", "9L36", "8M", "8L36", "7L9", "6L9", "5L9", "4L9"], attract: ["8M", "7M", "6M", "5M", "4M"], - belch: ["8E", "7E", "6E"], - bellydrum: ["8L48", "7L44", "6L44"], - bite: ["8L16"], - blizzard: ["8M", "7M", "6M", "5M", "4M"], - bodyslam: ["8M", "8L28", "7L25", "6L25", "5L36", "4L33"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], - bulldoze: ["8M", "7M", "6M", "5M"], + belch: ["9E", "8E", "7E", "6E"], + bellydrum: ["9L48", "8L48", "7L44", "6L44"], + bite: ["9L16", "8L16"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "9L28", "8M", "8L28", "7L25", "6L25", "5L36", "4L33"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - charm: ["8M", "7E", "6E", "5E", "4E"], + charm: ["9M", "8M", "7E", "6E", "5E", "4E"], + chillingwater: ["9M"], chipaway: ["7L17", "6L17", "5L25"], confide: ["7M", "6M"], - counter: ["8E", "7E", "6E", "5E", "4E"], - covet: ["8L12", "7T", "6T", "5T"], - curse: ["8E", "7E", "6E", "5E", "4E", "4S1"], - defensecurl: ["8L4", "7L4", "6L4", "5L4", "4L4", "4S0"], - doubleedge: ["8E", "7E", "6E", "5E", "4E"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + covet: ["9L12", "8L12", "7T", "6T", "5T"], + crunch: ["9M"], + curse: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "4S1"], + defensecurl: ["9L4", "8L4", "7L4", "6L4", "5L4", "4L4", "4S0"], + dig: ["9M"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], - earthquake: ["8M", "7M", "6M", "5M", "4M"], - encore: ["8M"], - endure: ["8M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M"], - fireblast: ["8M", "7M", "6M", "5M", "4M"], - firepunch: ["8M", "7T", "6T", "5T", "4T"], - fissure: ["8E"], - flail: ["8L44"], - flamethrower: ["8M", "7M", "6M", "5M", "4M"], - fling: ["8M", "8L32", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L36"], - focuspunch: ["7T", "6T", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + fissure: ["9E", "8E"], + flail: ["9L44", "8L44"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "9L32", "8M", "8L32", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L36"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gunkshot: ["8M", "7T", "6T", "5T", "4T"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], happyhour: ["7S2"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], holdback: ["7S2"], hydropump: ["8M"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "7M", "6M", "5M", "4M"], - icepunch: ["8M", "7T", "6T", "5T", "4T"], - icywind: ["8M", "7T", "6T", "5T", "4T"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], incinerate: ["6M", "5M"], - lastresort: ["8L52", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L49"], - lick: ["8L1", "7L1", "7E", "6L1", "6E", "5L12", "5E", "4L12", "4E"], + lastresort: ["9L52", "8L52", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L49"], + lick: ["9L1", "9S3", "8L1", "7L1", "7E", "6L1", "6E", "5L12", "5E", "4L12", "4E"], megakick: ["8M"], megapunch: ["8M"], - metronome: ["8M", "8L40", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], - mudslap: ["4T"], + metronome: ["9M", "9L40", "8M", "8L40", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], + mudslap: ["9M", "4T"], naturalgift: ["7L49", "7E", "6L49", "6E", "5L49", "5E", "4M", "4L44"], odorsleuth: ["7L1", "6L1", "5L1", "4L1", "4S1"], payday: ["8M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psychic: ["8M", "7M", "6M", "5M", "4M"], pursuit: ["7E", "6E", "5E", "4E"], - raindance: ["8M", "7M", "6M", "5M", "4M"], - recycle: ["8L8", "7T", "7L1", "6T", "6L1", "5T", "5L17", "4M", "4L17"], - rest: ["8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["9L8", "8L8", "7T", "7L1", "6T", "6L1", "5T", "5L17", "4M", "4L17"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M"], rockclimb: ["4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], rollout: ["7L36", "6L36", "5L44", "4T", "4L41"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M"], - screech: ["8M", "8L24", "7L20", "6L20", "5L20", "4L20"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + screech: ["9L24", "8M", "8L24", "7L20", "6L20", "5L20", "4L20"], secretpower: ["6M", "4M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], selfdestruct: ["8M", "7E", "6E", "5E", "4S0"], - shadowball: ["8M", "7M", "6M", "5M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snatch: ["7T", "7L50", "6T", "6L1", "5T", "5L52"], snore: ["8M", "7T", "6T", "5T", "4T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M"], - stockpile: ["8L20", "7L28", "6L28", "5L28", "4L25"], - stompingtantrum: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stockpile: ["9L20", "8L20", "7L28", "6L28", "5L28", "4L25"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["6M", "5M", "4M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "4E"], - sunnyday: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], superpower: ["8M", "7T", "6T", "5T", "4T"], - surf: ["8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swallow: ["8L20", "7L33", "6L33", "5L33", "4L28"], - tackle: ["8L1", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], - thunder: ["8M", "7M", "6M", "5M", "4M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + swallow: ["9L20", "8L20", "7L33", "6L33", "5L33", "4L28"], + tackle: ["9L1", "9S3", "8L1", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], waterpulse: ["7T", "6T", "4M"], whirlpool: ["8M", "4M"], whirlwind: ["7E", "6E", "5E", "4E"], workup: ["8M", "7M", "5M"], - zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + zenheadbutt: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], }, eventData: [ {generation: 4, level: 5, moves: ["metronome", "tackle", "defensecurl", "selfdestruct"]}, {generation: 4, level: 5, gender: "F", nature: "Relaxed", abilities: ["thickfat"], moves: ["metronome", "odorsleuth", "tackle", "curse"], pokeball: "cherishball"}, {generation: 7, level: 5, abilities: ["thickfat"], moves: ["tackle", "metronome", "holdback", "happyhour"], pokeball: "cherishball"}, + {generation: 9, level: 1, shiny: true, gender: "M", isHidden: true, nature: "Impish", moves: ["lick", "tackle"], pokeball: "pokeball"}, ], }, snorlax: { learnset: { afteryou: ["7T", "7E", "6T", "6E", "5T", "5E"], - amnesia: ["8M", "8L36", "8V", "7L9", "7V", "6L9", "5L9", "5D", "4L9", "3L5"], + amnesia: ["9M", "9L36", "8M", "8L36", "8V", "7L9", "7V", "6L9", "5L9", "5D", "4L9", "3L5"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - belch: ["8L52", "7E", "6E"], - bellydrum: ["8L48", "7L44", "7V", "6L44", "5L17", "4L17", "3L13"], + belch: ["9L52", "8L52", "7E", "6E"], + bellydrum: ["9L48", "8L48", "7L44", "7V", "6L44", "5L17", "4L17", "3L13"], bide: ["7V"], - bite: ["8L16"], - blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - block: ["8L1", "7T", "7L41", "7S1", "6T", "6L41", "5T", "5L41", "4T", "4L36", "3L37"], - bodypress: ["8M"], - bodyslam: ["8M", "8L28", "8V", "7L25", "7V", "7S1", "6L25", "5L36", "4L33", "3T", "3L33", "3S0"], - brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L16", "8L16"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["9L1", "8L1", "7T", "7L41", "7S1", "6T", "6L41", "5T", "5L41", "4T", "4L36", "3L37"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L28", "8M", "8L28", "8V", "7L25", "7V", "7S1", "6L25", "5L36", "4L33", "3T", "3L33", "3S0"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], bubblebeam: ["7V"], - bulldoze: ["8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], celebrate: ["7S1"], - charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + charm: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + chillingwater: ["9M"], chipaway: ["7L17", "6L17", "5L25"], confide: ["7M", "6M"], counter: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], - covet: ["8L1", "7T", "6T", "5T", "3L42"], - crunch: ["8M", "8L24", "8V", "7L49", "6L49", "5L49", "4L44"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E", "3S0"], + covet: ["9L1", "8L1", "7T", "6T", "5T", "3L42"], + crunch: ["9M", "9L24", "8M", "8L24", "8V", "7L49", "6L49", "5L49", "4L44"], + curse: ["9M", "8E", "7E", "7V", "6E", "5E", "4E", "3E", "3S0"], darkestlariat: ["8M"], - defensecurl: ["8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L9"], - doubleedge: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + defensecurl: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L9"], + dig: ["9M"], + doubleedge: ["9M", "8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - encore: ["8M"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], fissure: ["8E", "7E", "7V", "6E", "5E", "4E", "3E", "3S0"], - flail: ["8L1"], - flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], - fling: ["8M", "8L1", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flail: ["9L1", "8L1"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gastroacid: ["8E"], - gigaimpact: ["8M", "8L56", "7M", "7L35", "6M", "6L57", "5M", "5L57", "4M", "4L49"], - gunkshot: ["8M", "7T", "6T", "5T", "4T"], - hammerarm: ["8L44"], + gigaimpact: ["9M", "9L56", "8M", "8L56", "7M", "7L35", "6M", "6L57", "5M", "5L57", "4M", "4L49"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L44", "8L44"], harden: ["7V"], + hardpress: ["9M"], headbutt: ["8V", "7V", "4T", "3L17"], - heatcrash: ["8M"], - heavyslam: ["8M", "8L32", "7L50", "6L50", "5L52"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L50", "6L50", "5L52"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M", "8L40", "7L57"], + highhorsepower: ["9M", "9L40", "8M", "8L40", "7L57"], hydropump: ["8M"], - hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L51"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L51"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], - lastresort: ["8L1", "7T", "6T", "5T", "4T"], - lick: ["8L1", "8V", "7L12", "7E", "7V", "6L12", "6E", "5L12", "5E", "4L12", "4E", "3E"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lastresort: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + lick: ["9L1", "8L1", "8V", "7L12", "7E", "7V", "6L12", "6E", "5L12", "5E", "4L12", "4E", "3E"], megakick: ["8M", "7V", "3T"], megapunch: ["8M", "7V", "3T"], - metronome: ["8M", "8L1", "7V", "3T"], + metronome: ["9M", "9L1", "8M", "8L1", "7V", "3T"], mimic: ["7V", "3T"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["7E", "6E", "5E", "4M"], - outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], payday: ["8M", "8V", "7V"], poweruppunch: ["7E", "6M"], - protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7V", "3T"], psywave: ["7V"], pursuit: ["7E", "6E", "5E", "4E"], rage: ["7V"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - recycle: ["8L1", "7T", "6T", "5T", "5D", "4M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["9L1", "8L1", "7T", "6T", "5T", "5D", "4M"], reflect: ["8V", "7V"], refresh: ["3S0"], - rest: ["8M", "8L20", "8V", "7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L25", "3M", "3L25"], + rest: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L25", "3M", "3L25"], retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], - rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["7L36", "7V", "6L36", "5L44", "4T", "4L41", "3T", "3L46"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - screech: ["8M", "8L1", "8V"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + screech: ["9L1", "8M", "8L1", "8V"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], seismictoss: ["8V", "7V", "3T"], selfdestruct: ["8M", "8V", "7V", "3T"], - shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], skullbash: ["7V"], - sleeptalk: ["8M", "8L20", "7M", "7L33", "7V", "6M", "6L33", "5T", "5L33", "4M", "4L28", "3T", "3L37"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "9L20", "8M", "8L20", "7M", "7L33", "7V", "6M", "6L33", "5T", "5L33", "4M", "4L28", "3T", "3L37"], + smackdown: ["9M", "7M", "6M", "5M"], snatch: ["7T"], - snore: ["8M", "8L20", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3T", "3L28"], - solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["9L20", "8M", "8L20", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3T", "3L28"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], steelroller: ["8T"], - stockpile: ["8L1"], - stompingtantrum: ["8M", "7T"], + stockpile: ["9L1", "8L1"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["7V", "6M", "5M", "4M", "3M"], submission: ["7V"], - substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], - sunnyday: ["8M", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "8M", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + supercellslam: ["9M"], superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], - surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swallow: ["8L1"], - tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["7V"], + swallow: ["9L1", "8L1"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], terrainpulse: ["8T"], - thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["8M"], + trailblaze: ["9M"], + uproar: ["9M", "8M"], watergun: ["7V"], waterpulse: ["7T", "6T", "4M", "3M"], whirlpool: ["8M", "4M"], whirlwind: ["7E", "6E", "5E", "4E"], - wildcharge: ["8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], workup: ["8M", "7M", "5M"], - yawn: ["8L12", "8V", "7L20", "6L20", "5L20", "4L20", "3L21"], + yawn: ["9L12", "8L12", "8V", "7L20", "6L20", "5L20", "4L20", "3L21"], zapcannon: ["7V"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 43, moves: ["refresh", "fissure", "curse", "bodyslam"]}, @@ -21144,19 +21983,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { auroraveil: ["7M"], avalanche: ["9M", "8M", "4M"], bide: ["7V"], - blizzard: ["9M", "9L65", "8M", "8L65", "8V", "7M", "7L78", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L73"], + blizzard: ["9M", "9L65", "9S9", "8M", "8L65", "8V", "7M", "7L78", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L73"], bravebird: ["9M", "8M"], bubblebeam: ["7V"], confide: ["7M", "6M"], curse: ["7V"], defog: ["7T", "4M"], detect: ["7V"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M", "7V", "4M", "3T"], extrasensory: ["3S2"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M"], fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], freezedry: ["9L35", "8L35", "8S8", "7L43", "7S7", "6L1", "6S6"], frostbreath: ["7M", "6M", "5M"], @@ -21164,17 +22004,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], gust: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], hail: ["8M", "8L50", "7M", "7L57", "7S7", "6M", "6L57", "6S5", "6S6", "5M", "5L85", "4M", "4L85", "3M"], - haze: ["9L60", "3S2"], + haze: ["9M", "9L60", "9S9", "3S2"], headbutt: ["8V"], healbell: ["3S2"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hurricane: ["9M", "9L55", "8M", "8L55", "8S8", "7L92", "6L1", "5L92"], + hurricane: ["9M", "9L55", "9S9", "8M", "8L55", "8S8", "7L92", "6L1", "5L92"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], icebeam: ["9M", "9L45", "8M", "8L45", "8V", "8S8", "7M", "7L71", "7V", "6M", "6L43", "6S5", "6S6", "5M", "5L43", "4M", "4L43", "4S3", "4S4", "3M", "3L49", "3S0", "3S1", "3S2"], iceshard: ["9L15", "8L15", "8V", "7L15", "6L15", "5L15", "4L15"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], laserfocus: ["7T"], leer: ["8V"], @@ -21196,13 +22036,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L50", "7V", "7S7", "6M", "6L50", "6S5", "6S6", "5M", "5L50", "4M", "4L50", "4S3", "3M", "3L61", "3S1"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], - sheercold: ["9L70", "8L70", "7L99", "6L1", "5L78", "4L78", "3L85"], + sheercold: ["9L70", "9S9", "8L70", "7L99", "6L1", "5L78", "4L78", "3L85"], signalbeam: ["7T", "6T", "5T", "4T"], skyattack: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], skydrop: ["7M", "6M", "5M"], @@ -21218,12 +22058,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "7V"], terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], twister: ["4T"], uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], watergun: ["7V"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], whirlwind: ["7V"], }, eventData: [ @@ -21236,6 +22076,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 70, isHidden: true, moves: ["freezedry", "icebeam", "hail", "reflect"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "freezedry", "reflect", "hail"]}, {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "freezedry", "hurricane", "mist"]}, + {generation: 9, level: 70, moves: ["sheercold", "blizzard", "hurricane", "haze"]}, ], encounters: [ {generation: 1, level: 50}, @@ -21254,13 +22095,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confusion: ["9L5", "8L5"], doubleteam: ["9L60"], dreameater: ["9L50", "8L50"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], fly: ["9M", "8M"], freezingglare: ["9L45", "8L45", "8S0", "8S1"], - futuresight: ["9L65", "8M", "8L65"], + futuresight: ["9M", "9L65", "8M", "8L65"], gigaimpact: ["9M", "8M"], guardswap: ["8M"], gust: ["9L1", "8L1"], @@ -21276,6 +22117,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M"], psybeam: ["9M"], psychic: ["9M", "8M"], + psychicnoise: ["9M"], psychocut: ["9L35", "8M", "8L35", "8S0", "8S1"], psychoshift: ["8L1", "8S0", "8S1"], psyshock: ["9M", "8M"], @@ -21318,17 +22160,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M", "8M", "3S2"], bide: ["7V"], bravebird: ["9M", "8M", "8S8"], - charge: ["9L30", "8L30", "7L36", "6L36", "5L36", "4L36", "4S3", "3L61", "3S1"], + charge: ["9M", "9L30", "8L30", "7L36", "6L36", "5L36", "4L36", "4S3", "3L61", "3S1"], chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], curse: ["7V"], defog: ["7T", "4M"], - detect: ["9L60", "8L60", "7L15", "7V", "6L15", "5L15", "4L15", "4S4", "3L37", "3S0", "3S1"], + detect: ["9L60", "9S9", "8L60", "7L15", "7V", "6L15", "5L15", "4L15", "4S4", "3L37", "3S0", "3S1"], discharge: ["9L45", "8L45", "7L50", "7S7", "6L50", "6S5", "6S6", "5L50", "4L50", "4S3"], doubleedge: ["7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drillpeck: ["9L35", "8L35", "8V", "8S8", "7L71", "7V", "6L1", "5L71", "4L71", "4S4", "3L49", "3S0", "3S1"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], eerieimpulse: ["9M", "8M"], electricterrain: ["9M"], electroball: ["9M"], @@ -21349,8 +22191,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { laserfocus: ["7T"], leer: ["8V"], lightscreen: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L64", "7V", "6M", "6L64", "6S5", "5M", "5L64", "4M", "4L64", "3M", "3L73"], - magneticflux: ["9L65", "8L65", "7L92"], - metalsound: ["3S2"], + magneticflux: ["9L65", "9S9", "8L65", "7L92"], + metalsound: ["9M", "3S2"], mimic: ["7V", "3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], @@ -21380,12 +22222,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supercellslam: ["9M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["9M", "8M", "7V", "4T", "3T"], tailwind: ["9M", "7T", "6T", "5T", "4T"], takedown: ["9M", "7V"], terablast: ["9M"], - thunder: ["9M", "9L55", "8M", "8L55", "8V", "8S8", "7M", "7L78", "7V", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L85"], + thunder: ["9M", "9L55", "9S9", "8M", "8L55", "8V", "8S8", "7M", "7L78", "7V", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L85"], thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], thundershock: ["9L5", "8L5", "8V", "7L1", "7V", "6L1", "6S6", "5L1", "4L1", "3L1"], thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L8", "7V", "6M", "6L8", "5M", "5L8", "4M", "4L8", "4S4", "3T", "3L13", "3S0"], @@ -21393,10 +22236,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { twister: ["4T"], uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], whirlwind: ["7V"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], - zapcannon: ["9L70", "8L70", "7L99", "7V", "6L1", "5L92"], + zapcannon: ["9L70", "9S9", "8L70", "7L99", "7V", "6L1", "5L92"], }, eventData: [ {generation: 3, level: 50, shiny: 1, moves: ["thunderwave", "agility", "detect", "drillpeck"]}, @@ -21408,6 +22251,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 70, isHidden: true, moves: ["discharge", "thundershock", "raindance", "agility"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "discharge", "pluck", "raindance"]}, {generation: 8, level: 70, shiny: 1, moves: ["thunder", "drillpeck", "bravebird", "agility"]}, + {generation: 9, level: 70, moves: ["zapcannon", "magneticflux", "detect", "thunder"]}, ], encounters: [ {generation: 1, level: 50}, @@ -21427,11 +22271,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "9L30", "8M", "8L30"], bulkup: ["9M", "9L50", "8M", "8L50"], closecombat: ["9M", "9L65", "8M", "8L65"], - coaching: ["8T"], + coaching: ["9M", "8T"], counter: ["9L55", "8L55"], detect: ["9L60", "8L60"], + doubleedge: ["9M"], drillpeck: ["9L35", "8L35", "8S0", "8S1"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], fly: ["9M", "8M"], @@ -21440,6 +22286,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { helpinghand: ["9M"], hurricane: ["9M", "8M"], hyperbeam: ["9M", "8M"], + knockoff: ["9M"], lightscreen: ["9M", "9L10", "8M", "8L10"], lowkick: ["9M", "8M"], lowsweep: ["9M", "8M"], @@ -21471,7 +22318,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M", "8M"], terablast: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunderouskick: ["9L45", "8L45", "8S0", "8S1"], trailblaze: ["9M"], uturn: ["9M", "8M"], @@ -21492,17 +22339,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["9L25", "8L25", "7L29", "7S7", "6L29", "5L29", "4T", "4L29"], bide: ["7V"], bravebird: ["9M", "8M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], burnup: ["8L65", "7L99"], confide: ["7M", "6M"], curse: ["7V"], defog: ["7T", "4M"], detect: ["7V"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], ember: ["9L5", "8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - endure: ["9M", "9L60", "8M", "8L60", "7L22", "7V", "6L22", "5L22", "4M", "4L22", "4S4", "3T", "3L37", "3S0", "3S1"], + endure: ["9M", "9L60", "9S9", "8M", "8L60", "7L22", "7V", "6L22", "5L22", "4M", "4L22", "4S4", "3T", "3L37", "3S0", "3S1"], extrasensory: ["3S2"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -21518,7 +22365,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { heatwave: ["9M", "9L45", "8M", "8L45", "8V", "8S8", "7T", "7L64", "6T", "6L1", "6S5", "6S6", "5T", "5L64", "4T", "4L64", "3L73"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hurricane: ["9M", "9L55", "8M", "8L55", "7L92", "6L1", "5L92"], + hurricane: ["9M", "9L55", "9S9", "8M", "8L55", "7L92", "6L1", "5L92"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], incinerate: ["9L30", "8L30", "6M", "5M"], laserfocus: ["7T"], @@ -21529,7 +22376,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mysticalfire: ["8M"], naturalgift: ["4M"], ominouswind: ["4T"], - overheat: ["9M", "9L65", "8M", "7M", "6M", "5M", "4M", "3M"], + overheat: ["9M", "9L65", "9S9", "8M", "7M", "6M", "5M", "4M", "3M"], peck: ["7V"], pluck: ["5M", "4M"], protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -21539,15 +22386,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], round: ["8M", "7M", "6M", "5M"], safeguard: ["9L10", "8M", "8L10", "7M", "7L43", "7V", "6M", "6L43", "6S5", "6S6", "5M", "5L43", "4M", "4L43", "4S3", "3M", "3L61", "3S1"], sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - skyattack: ["9L70", "8L70", "8V", "7T", "7L78", "7V", "6T", "6L1", "6S6", "5T", "5L78", "4T", "4L78", "3T", "3L85"], + skyattack: ["9L70", "9S9", "8L70", "8V", "7T", "7L78", "7V", "6T", "6L1", "6S6", "5T", "5L78", "4T", "4L78", "3T", "3L85"], skydrop: ["7M", "6M", "5M"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], @@ -21559,11 +22406,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "7V", "4T", "3T"], tailwind: ["9M", "7T", "6T", "5T", "4T"], takedown: ["9M", "7V"], + temperflare: ["9M"], terablast: ["9M"], toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], twister: ["4T"], uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], whirlwind: ["7V"], willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3S2"], wingattack: ["9L15", "8L15", "8V", "8S8", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], @@ -21578,6 +22426,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 70, isHidden: true, moves: ["skyattack", "heatwave", "sunnyday", "safeguard"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "flamethrower", "airslash", "sunnyday"]}, {generation: 8, level: 70, shiny: 1, moves: ["heatwave", "wingattack", "leer", "firespin"]}, + {generation: 9, level: 70, moves: ["skyattack", "overheat", "endure", "hurricane"]}, ], encounters: [ {generation: 1, level: 50}, @@ -21595,7 +22444,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["8M"], bravebird: ["9M", "8M"], darkpulse: ["9M", "8M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "9L60", "8M", "8L60"], facade: ["9M", "8M"], fierywrath: ["9L45", "8L45", "8S0", "8S1"], @@ -21609,10 +22458,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M"], hypervoice: ["9M", "8M"], imprison: ["9M", "8M"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1"], memento: ["9L65", "8L65"], nastyplot: ["9M", "9L50", "8M", "8L50", "8S0", "8S1"], + painsplit: ["9M"], payback: ["9L5", "8M", "8L5"], protect: ["9M", "8M"], raindance: ["9M"], @@ -21626,6 +22476,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M"], snarl: ["9M", "8M"], snore: ["8M"], + spite: ["9M"], steelwing: ["8M"], substitute: ["9M", "8M"], suckerpunch: ["9L30", "8L30", "8S0", "8S1"], @@ -21655,7 +22506,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bind: ["7T", "6T", "5T"], blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "7V", "3T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], bubblebeam: ["7V"], captivate: ["4M"], @@ -21667,6 +22518,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + dragoncheer: ["9M"], dragondance: ["9M", "9L50", "8M", "8L50", "7L51", "7E", "6L51", "6E", "5L51", "5E", "4L45", "4E", "3E"], dragonpulse: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], @@ -21681,7 +22533,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], headbutt: ["8V", "7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -21706,7 +22558,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["9L40", "8M", "8L40", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L41", "3M", "3L43"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], skullbash: ["7V"], @@ -21746,7 +22598,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bind: ["7T", "6T", "5T"], blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "7V", "3T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], bubblebeam: ["7V"], captivate: ["4M"], @@ -21758,6 +22610,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["7V"], + dragoncheer: ["9M"], dragondance: ["9M", "9L60", "8M", "8L60", "7L61", "6L61", "5L61", "4L53"], dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], @@ -21771,6 +22624,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -21795,7 +22649,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["9L46", "8M", "8L46", "7M", "7L53", "7V", "6M", "6L53", "5M", "5L53", "4M", "4L47", "3M", "3L47"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], skullbash: ["7V"], @@ -21817,6 +22671,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], watergun: ["7V"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], whirlpool: ["8M", "4M"], wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], zapcannon: ["7V"], @@ -21844,7 +22699,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], bodypress: ["9M", "8M"], bodyslam: ["9M", "8M", "7V", "3T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "7M"], bubblebeam: ["7V"], @@ -21861,6 +22716,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "8S9", "7T", "6T", "5T", "4T", "4S2"], dragonbreath: ["7V"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M", "8S9", "7M", "6M", "5M", "4M", "3M"], dragondance: ["9M", "9L62", "8M", "8L62", "8S9", "7L61", "6L61", "6S7", "5L61", "5S3", "4L53", "4S2", "3S1"], dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], @@ -21881,11 +22737,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "6M", "5M", "4M"], fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], healbell: ["3S1"], heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -21923,7 +22780,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["8V", "7V"], rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -21931,7 +22788,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], safeguard: ["9L46", "8M", "8L46", "7M", "7L53", "7V", "6M", "6L53", "5M", "5L53", "5S4", "5S5", "5S6", "4M", "4L47", "3M", "3L47", "3S0"], sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], @@ -21963,6 +22820,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], watergun: ["7V"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], whirlpool: ["8M", "7V", "4M"], wingattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L55", "5L55", "5S4", "5S5", "4L55", "3L55", "3S0"], wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], @@ -21993,7 +22851,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { amnesia: ["9M", "9L32", "8M", "8L32", "8V", "7L79", "7V", "6L79", "5L50", "4L57", "4S1", "3L77"], ancientpower: ["9L8", "8L8"], aquatail: ["7T", "6T", "5T", "4T"], - aurasphere: ["9M", "9L40", "8M", "8L40", "7L70", "6L70", "6S4", "6S5", "5L93", "5S2", "4L100"], + aurasphere: ["9M", "9L40", "9S8", "8M", "8L40", "7L70", "6L70", "6S4", "6S5", "5L93", "5S2", "4L100"], avalanche: ["9M", "8M", "4M"], barrier: ["8V", "7L64", "7V", "6L64", "6S4", "5L1", "4L8", "3L11"], bide: ["7V"], @@ -22004,19 +22862,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bubblebeam: ["7V"], bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], - calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "9S8", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], chargebeam: ["7M", "6M", "5M", "4M"], chillingwater: ["9M"], confide: ["7M", "6M"], confuseray: ["9M", "8V"], confusion: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], counter: ["7V", "3T"], - curse: ["7V"], + curse: ["9M", "7V"], darkpulse: ["9M"], detect: ["7V"], disable: ["9L1", "8L1", "8V", "8S7", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], dive: ["8M", "6M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], @@ -22027,7 +22885,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { embargo: ["7M", "6M", "5M", "4M"], endure: ["9M", "8M", "7V", "4M", "3T"], energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], @@ -22035,13 +22893,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["9L88", "8M", "8L88", "7L15", "7V", "6L15", "5L15", "4L22", "3L44"], + futuresight: ["9M", "9L88", "8M", "8L88", "7L15", "7V", "6L15", "5L15", "4L22", "3L44"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], guardswap: ["9L56", "8M", "8L56", "7L43", "6L43", "5L57", "4L64", "4S1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["8V", "7V", "4T"], @@ -22051,13 +22909,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hurricane: ["9M", "8M", "5S3"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S3", "4M", "3M"], + icebeam: ["9M", "9S8", "8M", "8V", "7M", "7V", "6M", "5M", "5S3", "4M", "3M"], icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], imprison: ["9M"], incinerate: ["6M", "5M"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], laserfocus: ["8L1", "7T", "7L1"], + lashout: ["9M"], lifedew: ["9L1", "8L1"], lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -22084,11 +22944,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M", "8V"], psychic: ["9M", "9L48", "8M", "8L48", "8V", "8S7", "7M", "7L57", "7V", "7S6", "6M", "6L57", "6S4", "6S5", "5M", "5L64", "4M", "4L71", "3M", "3L66", "3S0"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M"], psychocut: ["9L16", "8M", "8L16", "7L36", "7S6", "6L36", "5L43", "4L50", "4S1"], - psychup: ["7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L29", "3T", "3L33"], + psychup: ["9M", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L29", "3T", "3L33"], psyshock: ["9M", "8M", "7M", "6M", "5M"], - psystrike: ["9L72", "8L72", "7L100", "6L100", "6S5", "5L100", "5S2", "5S3"], + psystrike: ["9L72", "9S8", "8L72", "7L100", "6L100", "6S5", "5L100", "5S2", "5S3"], psywave: ["8V", "7L1", "7V"], rage: ["7V"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -22120,6 +22981,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], speedswap: ["8M"], + spite: ["9M"], stompingtantrum: ["9M"], stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], storedpower: ["9M", "8M"], @@ -22146,6 +23008,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], watergun: ["7V"], waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["9M"], willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], wonderroom: ["8M", "7T", "6T", "5T"], zapcannon: ["7V"], @@ -22160,6 +23023,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, shiny: true, isHidden: true, moves: ["psystrike", "psychic", "recover", "aurasphere"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["psychic", "recover", "swift", "psychocut"]}, {generation: 8, level: 70, shiny: 1, moves: ["psychic", "disable", "recover", "blizzard"]}, + {generation: 9, level: 100, nature: "Modest", perfectIVs: 6, isHidden: true, moves: ["psystrike", "aurasphere", "icebeam", "calmmind"]}, ], encounters: [ {generation: 1, level: 70}, @@ -22174,14 +23038,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { afteryou: ["7T", "6T", "5T"], agility: ["9M", "8M"], aircutter: ["9M", "4T"], - airslash: ["9M", "8M"], + airslash: ["9M", "9S26", "8M"], + alluringvoice: ["9M"], allyswitch: ["8M", "7T", "5M"], amnesia: ["9M", "9L10", "8M", "8L10", "8V", "7L60", "6L60", "5L60", "4L60", "4S17"], ancientpower: ["9L30", "8L30", "7L50", "7V", "6L50", "5L50", "4T", "4L50", "4S14", "3L50"], aquatail: ["7T", "6T", "5T", "4T"], assurance: ["8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - aurasphere: ["9M", "9L90", "8M", "8L90", "7L100", "6L100", "5L100", "4L100", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19"], + aurasphere: ["9M", "9L90", "9S26", "8M", "8L90", "7L100", "6L100", "5L100", "4L100", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19"], auroraveil: ["7M"], avalanche: ["9M", "8M", "4M"], barrier: ["8V", "7L40", "7S24", "6L40", "5L40", "4L40", "4S15"], @@ -22197,24 +23062,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "8M", "7V", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], bravebird: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], brine: ["8M", "4M"], brutalswing: ["8M", "7M"], bubblebeam: ["7V"], - bugbite: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], bugbuzz: ["9M", "8M"], bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], bulletseed: ["9M", "8M", "4M", "3M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], + charge: ["9M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], charm: ["9M", "8M"], chillingwater: ["9M"], closecombat: ["9M", "8M"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], confuseray: ["9M"], confusion: ["8V"], @@ -22224,24 +23090,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { covet: ["7T", "6T", "5T"], crosspoison: ["8M"], crunch: ["9M", "8M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], darkestlariat: ["8M"], - darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], - dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + darkpulse: ["9M", "9S26", "8M", "8V", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "9S26", "8M", "8V", "7M", "6M"], defensecurl: ["7V", "3T"], defog: ["7T", "4M"], detect: ["7V"], dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], disarmingvoice: ["9M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["7V", "3T"], + doubleedge: ["9M", "7V", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dracometeor: ["9M"], dragonbreath: ["7V"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], dragondance: ["9M", "8M"], - dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonpulse: ["9M", "9S26", "8M", "8V", "7T", "6T", "5T", "4M"], dragonrage: ["7V"], dragontail: ["9M", "8V", "7M", "6M", "5M"], drainingkiss: ["9M", "8M"], @@ -22249,27 +23116,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], drillrun: ["9M", "8M", "8V", "7T", "6T", "5T"], dualchop: ["7T", "6T", "5T"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], dynamicpunch: ["7V", "3T"], - earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthpower: ["9M", "9S26", "8M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], eerieimpulse: ["9M", "8M"], eggbomb: ["7V"], electricterrain: ["9M", "8M"], electroball: ["9M", "8M"], - electroweb: ["8M", "7T", "6T", "5T"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], embargo: ["7M", "6M", "5M", "4M"], encore: ["9M", "8M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "7V", "4M", "3T"], - energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], + energyball: ["9M", "9S26", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M", "8T"], explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], fakeout: ["3S2", "3S3"], faketears: ["9M", "8M"], falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + featherdance: ["9M"], feintattack: ["3S4", "3S5"], fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], firefang: ["9M", "8M"], @@ -22278,56 +23146,58 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firespin: ["9M", "8M"], fissure: ["7V"], flamecharge: ["9M", "7M", "6M", "5M"], - flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], flareblitz: ["9M", "8M"], flash: ["7V", "6M", "5M", "4M", "3M"], - flashcannon: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + flashcannon: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], frenzyplant: ["9M"], frostbreath: ["7M", "6M", "5M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - futuresight: ["8M"], + futuresight: ["9M", "8M"], gastroacid: ["7T", "6T", "5T", "4T"], gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], grasspledge: ["9M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], guardswap: ["8M"], gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hardpress: ["9M"], + haze: ["9M"], headbutt: ["8V", "7V", "4T"], healbell: ["7T", "6T", "5T", "4T"], - heatcrash: ["8M"], + heatcrash: ["9M", "8M"], heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], heavyslam: ["9M", "8M"], helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], hex: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], honeclaws: ["6M", "5M"], horndrill: ["7V"], hurricane: ["9M", "8M"], hydrocannon: ["9M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypervoice: ["9M", "9S26", "8M", "7T", "6T", "5T"], hypnosis: ["4S20", "3S6", "3S7"], - icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], icefang: ["9M", "8M"], icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], imprison: ["9M", "9L70", "8M", "8L70"], incinerate: ["6M", "5M"], @@ -22335,18 +23205,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], lastresort: ["7T", "6T", "5T", "4T"], leafblade: ["8M"], leafstorm: ["9M", "8M"], leechlife: ["9M", "8M", "7M"], - lifedew: ["9L40", "8L40"], - lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lifedew: ["9L40", "9S26", "8L40"], + lightscreen: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], liquidation: ["9M", "8M", "7T"], lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], magicalleaf: ["9M", "8M"], magiccoat: ["7T", "6T", "5T", "4T"], magicroom: ["8M", "7T", "6T", "5T"], @@ -22357,12 +23228,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megakick: ["8M", "7V", "3T"], megapunch: ["8M", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "4S16", "3T", "3L20", "3S0"], metalclaw: ["9M"], - meteorbeam: ["8T"], + metalsound: ["9M"], + meteorbeam: ["9M", "8T"], metronome: ["9M", "9L60", "8M", "8L60", "8V", "7L20", "7V", "7S24", "6L20", "5L20", "4L20", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19", "3T", "3L30", "3S0"], mimic: ["8V", "7V", "3T"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], mudslap: ["9M", "7V", "4T", "3T"], mysticalfire: ["8M"], @@ -22374,20 +23246,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ominouswind: ["4T"], outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], payday: ["8M", "8V", "7V"], + petalblizzard: ["9M"], phantomforce: ["9M", "8M"], pinmissile: ["8M"], playrough: ["9M", "8M", "8V"], pluck: ["5M", "4M"], poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], poisontail: ["9M"], - pollenpuff: ["9M", "8M"], - poltergeist: ["8T"], + pollenpuff: ["9M", "9S26", "8M"], + poltergeist: ["9M", "8T"], pounce: ["9M"], pound: ["9L1", "8L1", "8V", "8S25", "7L1", "7V", "7S23", "6L1", "6S22", "5L1", "4L1", "4S21", "3L1", "3S0", "3S1"], - powergem: ["9M", "8M"], + powergem: ["9M", "9S26", "8M"], powerswap: ["8M"], poweruppunch: ["6M"], powerwhip: ["8M"], @@ -22395,10 +23268,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M", "9L100", "8M", "8L100", "8V", "7M", "7L30", "7V", "7S24", "6M", "6L30", "5M", "5L30", "4M", "4L30", "4S19", "3M", "3L40"], psychicfangs: ["9M", "8M"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M"], psychocut: ["8M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "9S26", "8M", "7M", "6M", "5M"], psywave: ["8V", "7V"], quash: ["7M", "6M", "5M"], rage: ["7V"], @@ -22414,7 +23288,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { revenge: ["8M"], reversal: ["9M", "8M"], risingvoltage: ["8T"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockblast: ["9M", "8M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], @@ -22427,30 +23301,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - sandtomb: ["8M"], - scald: ["8M", "8V", "7M", "6M", "5M"], - scaleshot: ["8T"], + sandtomb: ["9M", "8M"], + scald: ["9M", "8M", "8V", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "8M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], screech: ["8M"], secretpower: ["6M", "4M", "3M"], seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], seismictoss: ["8V", "7V", "3T"], selfdestruct: ["8M", "8V", "7V", "3T"], - shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], silverwind: ["4M"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], skullbash: ["7V"], skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], skydrop: ["7M", "6M", "5M"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "7M", "6M", "5M"], - smackdown: ["7M", "6M", "5M"], + sludgebomb: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], smartstrike: ["9M", "8M", "7M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M", "3M"], @@ -22458,10 +23332,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snowscape: ["9M"], softboiled: ["7V", "3T"], solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], speedswap: ["8M"], spikes: ["9M", "8M"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], steelbeam: ["9M"], steelroller: ["8T"], @@ -22476,12 +23350,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], + supercellslam: ["9M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], - surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], sweetscent: ["7V"], - swift: ["9M", "8M", "8V", "7V", "4T", "3T"], + swift: ["9M", "9S26", "8M", "8V", "7V", "4T", "3T"], swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T", "4S20"], tailslap: ["8M"], @@ -22490,28 +23365,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], telekinesis: ["7T", "5M"], teleport: ["8V", "7V", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19", "4S20"], + temperflare: ["9M"], terablast: ["9M"], terrainpulse: ["8T"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], thunderfang: ["9M", "8M"], thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], - toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M", "8M"], trailblaze: ["9M"], transform: ["9L80", "8L80", "8V", "7L1", "7V", "7S24", "6L1", "5L1", "4L1", "4S18", "3L10", "3S0", "3S1"], triattack: ["8M", "8V", "7V"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], twister: ["4T"], - uproar: ["8M", "7T", "6T", "5T", "4T"], + upperhand: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], - vacuumwave: ["4T"], + vacuumwave: ["9M", "4T"], venomdrench: ["8M"], venoshock: ["9M", "8M", "7M", "6M", "5M"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], @@ -22519,8 +23396,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["7V"], waterpledge: ["9M"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], whirlwind: ["7V"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], @@ -22558,76 +23435,86 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 5, perfectIVs: 5, moves: ["pound"], pokeball: "pokeball"}, {generation: 7, level: 50, moves: ["psychic", "barrier", "metronome", "transform"], pokeball: "cherishball"}, {generation: 8, level: 1, moves: ["pound"], pokeball: "pokeball"}, + {generation: 9, level: 5, moves: ["pollenpuff", "darkpulse", "dragonpulse", "thunderbolt", "dazzlinggleam", "aurasphere", "flamethrower", "airslash", "shadowball", "energyball", "earthpower", "icebeam", "hypervoice", "sludgebomb", "psyshock", "powergem", "flashcannon", "surf", "swift", "lightscreen", "lifedew"], pokeball: "pokeball"}, ], eventOnly: true, }, chikorita: { learnset: { - ancientpower: ["7E", "7V", "6E", "5E", "4T", "4E", "3E", "3S1"], + ancientpower: ["9E", "7E", "7V", "6E", "5E", "4T", "4E", "3E", "3S1"], aromatherapy: ["7L42", "7E", "6L42", "6E", "5L42", "5E", "4L42", "4E"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["7L34", "7E", "7V", "6L34", "6E", "5L34", "5E", "4L34", "4E", "3T", "3L29"], - bulletseed: ["4M", "3M"], + bodyslam: ["9M", "9L34", "7L34", "7E", "7V", "6L34", "6E", "5L34", "5E", "4L34", "4E", "3T", "3L29"], + bulletseed: ["9M", "4M", "3M"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], - counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], - curse: ["7V"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["7V", "4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M", "3M"], - flail: ["7E", "7V", "6E", "5E", "4E", "3E"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + flail: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], flash: ["7V", "6M", "5M", "4M", "3M"], frenzyplant: ["3S1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["4T"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - grassknot: ["7M", "6M", "5M", "4M"], - grasspledge: ["7T", "6T", "5T"], + gigadrain: ["9M", "9L42", "7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], grasswhistle: ["7E", "6E", "5E", "4E", "3E"], - grassyterrain: ["7E", "6E"], - growl: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + grassyglide: ["9M"], + grassyterrain: ["9M", "7E", "6E"], + growl: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], headbutt: ["7V", "4T"], - healpulse: ["7E", "6E", "5E"], + healpulse: ["9E", "7E", "6E", "5E"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - ingrain: ["7E", "6E", "5E", "4E", "3E"], + ingrain: ["9E", "7E", "6E", "5E", "4E", "3E"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - leafstorm: ["7E", "6E", "5E", "4E"], - leechseed: ["7E", "7V", "6E", "5E", "4E", "3E"], - lightscreen: ["7M", "7L31", "7V", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L36"], - magicalleaf: ["7L20", "6L20", "5L20", "4L20"], + leafstorm: ["9M", "7E", "6E", "5E", "4E"], + leechseed: ["9L23", "7E", "7V", "6E", "5E", "4E", "3E"], + lightscreen: ["9M", "9L31", "7M", "7L31", "7V", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L36"], + magicalleaf: ["9M", "9L20", "7L20", "6L20", "5L20", "4L20"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["7L23", "6L23", "5L23", "4M", "4L23"], naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], - poisonpowder: ["7L9", "7V", "6L9", "5L9", "4L9", "3L15"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - razorleaf: ["7L6", "7V", "6L6", "5L6", "4L6", "3L8", "3S0"], - reflect: ["7M", "7L17", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L12"], + poisonpowder: ["9L9", "7L9", "7V", "6L9", "5L9", "4L9", "3L15"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["9L6", "7L6", "7V", "6L6", "5L6", "4L6", "3L8", "3S0"], + reflect: ["9M", "9L17", "7M", "7L17", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L12"], refresh: ["7E", "6E", "5E"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - safeguard: ["7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3M", "3L43"], + safeguard: ["9L39", "7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3M", "3L43"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L45", "3M", "3L50"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "9L45", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L45", "3M", "3L50"], + solarblade: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["7L28", "7V", "6L28", "5L28", "4L28"], - swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], - synthesis: ["7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L22"], - tackle: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + sweetscent: ["9L28", "7L28", "7V", "6L28", "5L28", "4L28"], + swordsdance: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["9L12", "7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L22"], + tackle: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - vinewhip: ["7E", "7V", "6E", "5E", "4E", "3E"], + trailblaze: ["9M"], + vinewhip: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], workup: ["7M"], worryseed: ["7T", "6T", "5T", "4T"], wringout: ["7E", "6E", "5E", "4E"], @@ -22643,61 +23530,75 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["4T"], aromatherapy: ["7L50", "6L50", "5L50", "4L50"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["7L40", "7V", "6L40", "5L40", "4L40", "3T", "3L31"], - bulletseed: ["4M", "3M"], + bodyslam: ["9M", "9L40", "7L40", "7V", "6L40", "5L40", "4L40", "3T", "3L31"], + bulletseed: ["9M", "4M", "3M"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["7V", "4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - grassknot: ["7M", "6M", "5M", "4M"], - grasspledge: ["7T", "6T", "5T"], - growl: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gigadrain: ["9M", "9L50", "7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["7V", "4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], laserfocus: ["7T"], - lightscreen: ["7M", "7L36", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L39"], - magicalleaf: ["7L22", "6L22", "5L22", "4L22"], + leafstorm: ["9M"], + leechseed: ["9L26"], + lightscreen: ["9M", "9L36", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L39"], + magicalleaf: ["9M", "9L22", "7L22", "6L22", "5L22", "4L22"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["7L26", "6L26", "5L26", "4M", "4L26"], naturepower: ["7M", "6M"], - poisonpowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L15"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - reflect: ["7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + poisonpowder: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["9M", "9L18", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - safeguard: ["7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L47"], + safeguard: ["9L46", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L47"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L55"], + solarbeam: ["9M", "9L54", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L55"], + solarblade: ["9M"], + stompingtantrum: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["7L32", "7V", "6L32", "5L32", "4L32"], - swordsdance: ["7M", "6M", "5M", "4M", "3T"], - synthesis: ["7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L23"], - tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sweetscent: ["9L32", "7L32", "7V", "6L32", "5L32", "4L32"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L12", "7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L23"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], workup: ["7M"], worryseed: ["7T", "6T", "5T", "4T"], }, @@ -22707,74 +23608,91 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["4T"], aromatherapy: ["7L60", "6L60", "5L60", "4L60"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["7L46", "7V", "6L46", "6S0", "5L46", "4L46", "3T", "3L31"], - bulldoze: ["7M", "6M", "5M"], - bulletseed: ["4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L46", "7L46", "7V", "6L46", "6S0", "5L46", "4L46", "3T", "3L31"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "4M", "3M"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragontail: ["7M", "6M", "5M"], - earthquake: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["9M", "7M", "6M", "5M"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["7V", "4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], flash: ["7V", "6M", "5M", "4M", "3M"], - frenzyplant: ["7T", "6T", "5T", "4T"], + frenzyplant: ["9M", "7T", "6T", "5T", "4T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], - grasspledge: ["7T", "6T", "5T"], - growl: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gigadrain: ["9M", "9L60", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["7V", "4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], laserfocus: ["7T"], - lightscreen: ["7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L41"], - magicalleaf: ["7L22", "6L22", "5L22", "4L22"], + leafstorm: ["9M"], + leechseed: ["9L26"], + lightscreen: ["9M", "9L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L41"], + magicalleaf: ["9M", "9L22", "7L22", "6L22", "5L22", "4L22"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["7L26", "6L26", "5L26", "4M", "4L26"], naturepower: ["7M", "6M"], - outrage: ["7T", "6T", "5T", "4T"], - petalblizzard: ["7L1", "6L1"], - petaldance: ["7L1", "6L32", "5L32", "4L32"], - poisonpowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L15"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - reflect: ["7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + outrage: ["9M", "7T", "6T", "5T", "4T"], + petalblizzard: ["9M", "9L1", "7L1", "6L1"], + petaldance: ["9L0", "7L1", "6L32", "5L32", "4L32"], + poisonpowder: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["9M", "9L18", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - safeguard: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L51"], + safeguard: ["9L54", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L51"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "7L66", "7V", "6M", "6L66", "6S0", "5M", "5L66", "4M", "4L66", "3M", "3L61"], - stompingtantrum: ["7T"], + solarbeam: ["9M", "9L65", "7M", "7L66", "7V", "6M", "6L66", "6S0", "5M", "5L66", "4M", "4L66", "3M", "3L61"], + solarblade: ["9M"], + stompingtantrum: ["9M", "7T"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - sweetscent: ["7L34", "7V", "6L34", "5L34", "4L34"], - swordsdance: ["7M", "6M", "5M", "4M", "3T"], - synthesis: ["7T", "7L12", "7V", "6T", "6L12", "6S0", "5T", "5L12", "4T", "4L12", "3L23"], - tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sweetscent: ["9L34", "7L34", "7V", "6L34", "5L34", "4L34"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L12", "7T", "7L12", "7V", "6T", "6L12", "6S0", "5T", "5L12", "4T", "4L12", "3L23"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + weatherball: ["9M"], workup: ["7M"], worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 6, level: 50, isHidden: true, moves: ["solarbeam", "sunnyday", "synthesis", "bodyslam"], pokeball: "pokeball"}, @@ -22786,17 +23704,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], blastburn: ["3S1"], bodyslam: ["9M", "3T"], + burningjealousy: ["9M"], burnup: ["7L58"], captivate: ["4M"], confide: ["7M", "6M"], covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], crushclaw: ["7E", "6E", "5E", "4E", "3E"], - curse: ["9E", "7V"], + curse: ["9M", "9E", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["9L22", "7L22", "7V", "6L22", "5L22", "4L22", "3T"], detect: ["7V"], dig: ["9M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["9L55", "7L55", "7E", "6L55", "6E", "5L55", "5E", "4L46", "4E", "3T"], + doubleedge: ["9M", "9L55", "7L55", "7E", "6L55", "6E", "5L55", "5E", "4L46", "4E", "3T"], doublekick: ["9E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], ember: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L12"], @@ -22837,6 +23756,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], + roar: ["9M"], rollout: ["9L49", "7L49", "7V", "6L49", "5L49", "4T", "4L40", "3T"], round: ["7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], @@ -22850,6 +23770,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "9L31", "7L31", "7V", "6L31", "5L31", "4T", "4L28", "3T", "3L36"], tackle: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thrash: ["7E", "7V", "6E", "5E", "4E", "3E"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -22870,18 +23791,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "3T"], brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + burningjealousy: ["9M"], burnup: ["7L68"], captivate: ["4M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["9L24", "7L24", "7V", "6L24", "5L24", "4L24", "3T"], detect: ["7V"], dig: ["9M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["9L64", "7L64", "6L64", "5L64", "4L53", "3T"], + doubleedge: ["9M", "9L64", "7L64", "6L64", "5L64", "4L53", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], ember: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L12"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], eruption: ["9L75", "7L75", "6L68", "5L68", "4L57"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -22916,7 +23839,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], reversal: ["9M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rollout: ["9L57", "7L57", "7V", "6L57", "5L57", "4T", "4L46", "3T"], round: ["7M", "6M", "5M"], @@ -22931,6 +23854,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "9L31", "7L31", "7V", "6L31", "5L31", "4T", "4L31", "3T", "3L42"], tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], wildcharge: ["9M", "7M", "6M", "5M"], @@ -22947,21 +23871,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "3T"], brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], bulldoze: ["9M", "7M", "6M", "5M"], + burningjealousy: ["9M"], burnup: ["7L74"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["3T"], covet: ["7T", "6T", "5T"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["9L24", "7L24", "7V", "6L24", "5L24", "4L24", "3T"], detect: ["7V"], dig: ["9M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["9L1", "7L1", "6L1", "5L69", "4L53", "3T"], + doubleedge: ["9M", "9L1", "7L1", "6L1", "5L69", "4L53", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], eruption: ["9L1", "7L1", "6L1", "5L74", "4L57"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -22976,11 +23902,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flareblitz: ["9M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], - gyroball: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + gyroball: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], headbutt: ["7V", "4T"], heatwave: ["9M", "7T", "6T", "5T", "4T"], helpinghand: ["9M"], @@ -23008,13 +23934,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], reversal: ["9M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rocktomb: ["9M", "7M", "6M", "5M", "4M"], rollout: ["9L61", "7L61", "7V", "6L61", "5L61", "4T", "4L46", "3T"], round: ["7M", "6M", "5M"], + scorchingsands: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], shadowball: ["9M"], @@ -23031,8 +23958,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "9L31", "7L31", "7V", "6L31", "6S1", "5L31", "4T", "4L31", "3T", "3L45", "3S0"], tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], wildcharge: ["9M", "7M", "6M", "5M"], @@ -23052,13 +23980,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], brickbreak: ["9M"], bulldoze: ["9M"], + burningjealousy: ["9M"], calmmind: ["9M"], confuseray: ["9M"], + curse: ["9M"], defensecurl: ["9L24"], dig: ["9M"], - doubleedge: ["9L1"], + doubleedge: ["9M", "9L1"], earthquake: ["9M"], ember: ["9L1"], + endeavor: ["9M"], endure: ["9M"], eruption: ["9L1"], facade: ["9M"], @@ -23072,8 +24003,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamewheel: ["9L20"], flareblitz: ["9M"], focusblast: ["9M"], + focuspunch: ["9M"], gigaimpact: ["9M"], - gyroball: ["9L1"], + gyroball: ["9M", "9L1"], heatwave: ["9M"], hex: ["9M"], hyperbeam: ["9M"], @@ -23086,10 +24018,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightshade: ["9M"], overheat: ["9M", "9L74"], playrough: ["9M"], + poltergeist: ["9M"], protect: ["9M"], quickattack: ["9L13"], rest: ["9M"], reversal: ["9M"], + roar: ["9M"], rockslide: ["9M"], rollout: ["9L61"], shadowball: ["9M"], @@ -23097,12 +24031,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], smokescreen: ["9L1"], solarbeam: ["9M"], + spite: ["9M"], stompingtantrum: ["9M"], substitute: ["9M"], sunnyday: ["9M"], swift: ["9M", "9L31"], tackle: ["9L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thunderpunch: ["9M"], wildcharge: ["9M"], @@ -23112,94 +24048,104 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, totodile: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - ancientpower: ["7E", "7V", "6E", "5E", "4T", "4E", "3E"], - aquajet: ["7E", "6E", "5E", "4E"], - aquatail: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + ancientpower: ["9E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + aquajet: ["9E", "7E", "6E", "5E", "4E"], + aquatail: ["9L41", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L20"], - blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], - block: ["7T", "7E", "6T", "6E", "5T", "5E"], + bite: ["9L9", "7L13", "7V", "6L13", "5L13", "4L13", "3L20"], + blizzard: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], chipaway: ["7L29", "6L29", "5L29"], confide: ["7M", "6M"], - counter: ["3T"], - crunch: ["7L27", "7E", "7V", "6L27", "6E", "5L27", "5E", "4L27", "4E", "3E", "3S1"], - curse: ["7V"], + counter: ["9E", "3T"], + crunch: ["9M", "9L27", "7L27", "7E", "7V", "6L27", "6E", "5L27", "5E", "4L27", "4E", "3E", "3S1"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], - dig: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], dive: ["6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonclaw: ["7M", "6M", "5M", "4E", "3E"], - dragondance: ["7E", "6E", "5E", "4E"], + dragonclaw: ["9M", "7M", "6M", "5M", "4E", "3E"], + dragondance: ["9M", "7E", "6E", "5E", "4E"], dynamicpunch: ["7V", "3T"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - faketears: ["7E", "6E", "5E"], - flail: ["7L22", "6L22", "5L22", "4L22"], - flatter: ["7E", "6E"], - fling: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "7E", "6E", "5E"], + flail: ["9L22", "7L22", "6L22", "5L22", "4L22"], + flatter: ["9E", "7E", "6E"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], hail: ["7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], hydrocannon: ["3S1"], - hydropump: ["7L50", "7E", "7V", "6L50", "6E", "5L50", "5E", "4L43", "4E", "3L52", "3E"], - icebeam: ["7M", "6M", "5M", "4M", "3M"], - icefang: ["7L20", "6L20", "5L20", "4L20"], - icepunch: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], - icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + hydropump: ["9M", "9L50", "7L50", "7E", "7V", "6L50", "6E", "5L50", "5E", "4L43", "4E", "3L52", "3E"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L19", "7L20", "6L20", "5L20", "4L20"], + icepunch: ["9M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + icywind: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - leer: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], - lowkick: ["7T", "6T", "5T", "4T"], + leer: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + liquidation: ["9M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], - metalclaw: ["7E", "6E", "5E", "4E"], + metalclaw: ["9M", "7E", "6E", "5E", "4E"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + muddywater: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], mudsport: ["7E", "6E", "5E", "4E", "3E"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rage: ["7L8", "7V", "6L8", "5L8", "4L8", "3L7", "3S0"], - raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], razorwind: ["7V"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], - rocktomb: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], scald: ["7M", "6M", "5M"], - scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L27"], - scratch: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], - screech: ["7L36", "7V", "6L36", "5L36", "4L34", "3L43"], + scaryface: ["9M", "9L13", "7L15", "7V", "6L15", "5L15", "4L15", "3L27"], + scratch: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + screech: ["9L33", "7L36", "7V", "6L36", "5L36", "4L34", "3L43"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowclaw: ["7M", "6M", "5M", "4M"], - slash: ["7L34", "7V", "6L34", "5L34", "4L29", "3L35"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slash: ["9L30", "7L34", "7V", "6L34", "5L34", "4L29", "3L35"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - superpower: ["7T", "7L48", "6T", "6L48", "5T", "5L48", "4T", "4L41"], - surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["9L45", "7T", "7L48", "6T", "6L48", "5T", "5L48", "4T", "4L41"], + surf: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["7M", "6M", "5M", "4M", "3T"], - thrash: ["7L41", "7E", "7V", "6L41", "6E", "5L41", "5E", "4L22", "4E", "3E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L37", "7L41", "7E", "7V", "6L41", "6E", "5L41", "5E", "4L22", "4E", "3E"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], - waterfall: ["7M", "6M", "5M", "4M", "3M"], - watergun: ["7L6", "7V", "6L6", "5L6", "4L6", "3L13"], - waterpledge: ["7T", "6T", "5T"], - waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L6", "7L6", "7V", "6L6", "5L6", "4L6", "3L13"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], watersport: ["7E", "6E", "5E", "4E", "3E"], - whirlpool: ["7V", "4M"], + whirlpool: ["9M", "7V", "4M"], workup: ["7M"], }, eventData: [ @@ -23210,190 +24156,222 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, croconaw: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], ancientpower: ["4T"], - aquatail: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4L42"], + aquatail: ["9L47", "7T", "7L51", "6T", "6L51", "5T", "5L51", "4L42"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L21"], - blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + blizzard: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], block: ["7T", "6T", "5T"], bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], chipaway: ["7L33", "6L33", "5L33"], confide: ["7M", "6M"], counter: ["3T"], - crunch: ["7L30", "6L30", "5L30", "4L30"], - curse: ["7V"], + crunch: ["9M", "9L30", "7L30", "6L30", "5L30", "4L30"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], - dig: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], dive: ["6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonclaw: ["7M", "6M", "5M"], + dragonclaw: ["9M", "7M", "6M", "5M"], + dragondance: ["9M"], dynamicpunch: ["7V", "3T"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - flail: ["7L24", "6L24", "5L24", "4L24"], - fling: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + flail: ["9L24", "7L24", "6L24", "5L24", "4L24"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], hail: ["7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydropump: ["7L60", "7V", "6L60", "5L60", "4L51", "3L55"], - icebeam: ["7M", "6M", "5M", "4M", "3M"], - icefang: ["7L21", "6L21", "5L21", "4L21"], - icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + hydropump: ["9M", "9L55", "7L60", "7V", "6L60", "5L60", "4L51", "3L55"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L21", "7L21", "6L21", "5L21", "4L21"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - leer: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - lowkick: ["7T", "6T", "5T", "4T"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["9M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], + metalclaw: ["9M"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + muddywater: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], rage: ["7L8", "7V", "6L8", "5L8", "4L8", "3L1"], - raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["7M", "6M", "5M", "4M", "3T"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], scald: ["7M", "6M", "5M"], - scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L28"], - scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - screech: ["7L42", "7V", "6L42", "5L42", "4L39", "3L45"], + scaryface: ["9M", "9L15", "7L15", "7V", "6L15", "5L15", "4L15", "3L28"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L37", "7L42", "7V", "6L42", "5L42", "4L39", "3L45"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowclaw: ["7M", "6M", "5M", "4M"], - slash: ["7L39", "7V", "6L39", "5L39", "4L33", "3L37"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slash: ["9L34", "7L39", "7V", "6L39", "5L39", "4L33", "3L37"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - superpower: ["7T", "7L57", "6T", "6L57", "5T", "5L57", "4T", "4L48"], - surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["9L50", "7T", "7L57", "6T", "6L57", "5T", "5L57", "4T", "4L48"], + surf: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["7M", "6M", "5M", "4M", "3T"], - thrash: ["7L48", "6L48", "5L48", "4L24"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L42", "7L48", "6L48", "5L48", "4L24"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], - waterfall: ["7M", "6M", "5M", "4M", "3M"], - watergun: ["7L1", "7V", "6L1", "5L1", "4L1", "3L13"], - waterpledge: ["7T", "6T", "5T"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["7V", "4M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["9M", "7V", "4M"], workup: ["7M"], }, }, feraligatr: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["7L1", "6L30", "5L30", "4L30"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L1", "7L1", "6L30", "5L30", "4L30"], ancientpower: ["4T"], - aquatail: ["7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L50"], + aquatail: ["9L59", "7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L50"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - avalanche: ["4M"], - bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L21"], - blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "4M"], + bite: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + blizzard: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], block: ["7T", "6T", "5T"], - bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], - bulldoze: ["7M", "6M", "5M"], + bodyslam: ["9M", "3T"], + breakingswipe: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], + chillingwater: ["9M"], chipaway: ["7L37", "6L37", "5L37"], confide: ["7M", "6M"], counter: ["3T"], - crunch: ["7L32", "6L32", "6S0", "5L32", "4L32"], - curse: ["7V"], + crunch: ["9M", "9L32", "7L32", "6L32", "6S0", "5L32", "4L32"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], - dig: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], dive: ["6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dragonclaw: ["7M", "6M", "5M", "4M", "3M"], + dragonclaw: ["9M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M"], dragonpulse: ["7T", "6T", "5T", "4M"], - dragontail: ["7M", "6M", "5M"], + dragontail: ["9M", "7M", "6M", "5M"], dynamicpunch: ["7V", "3T"], - earthquake: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - flail: ["7L24", "6L24", "5L24", "4L24"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + flail: ["9L24", "7L24", "6L24", "5L24", "4L24"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - gigaimpact: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], hail: ["7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydrocannon: ["7T", "6T", "5T", "4T"], - hydropump: ["7L76", "7V", "6L76", "5L76", "4L63", "3L58"], - hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["7M", "6M", "5M", "4M", "3M"], - icefang: ["7L21", "6L21", "5L21", "4L21"], - icepunch: ["7T", "7V", "6T", "6S0", "5T", "4T", "3T"], - icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + hydrocannon: ["9M", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L70", "7L76", "7V", "6L76", "5L76", "4L63", "3L58"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L21", "7L21", "6L21", "5L21", "4L21"], + icepunch: ["9M", "7T", "7V", "6T", "6S0", "5T", "4T", "3T"], + icywind: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - leer: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - liquidation: ["7T"], - lowkick: ["7T", "6T", "5T", "4T"], + lashout: ["9M"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["9M", "7T"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], + metalclaw: ["9M"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + muddywater: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], - outrage: ["7T", "6T", "5T", "4T"], + outrage: ["9M", "7T", "6T", "5T", "4T"], poweruppunch: ["6M"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], rage: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], - rockslide: ["7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], scald: ["7M", "6M", "5M"], - scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L28"], - scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - screech: ["7L50", "7V", "6L50", "6S0", "5L50", "4L45", "3L47"], + scaleshot: ["9M"], + scaryface: ["9M", "9L15", "7L15", "7V", "6L15", "5L15", "4L15", "3L28"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L44", "7L50", "7V", "6L50", "6S0", "5L50", "4L45", "3L47"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowclaw: ["7M", "6M", "5M", "4M"], - slash: ["7L45", "7V", "6L45", "5L45", "4L37", "3L38"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slash: ["9L37", "7L45", "7V", "6L45", "5L45", "4L37", "3L38"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stompingtantrum: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - superpower: ["7T", "7L71", "6T", "6L71", "5T", "5L71", "4T", "4L58"], - surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["9L65", "7T", "7L71", "6T", "6L71", "5T", "5L71", "4T", "4L58"], + surf: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["7M", "6M", "5M", "4M", "3T"], - thrash: ["7L58", "6L58", "5L58", "4L24"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L51", "7L58", "6L58", "5L58", "4L24"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], - waterfall: ["7M", "6M", "6S0", "5M", "4M", "3M"], - watergun: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - waterpledge: ["7T", "6T", "5T"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["7V", "4M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "7M", "6M", "6S0", "5M", "4M", "3M"], + watergun: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["9M", "7V", "4M"], workup: ["7M"], }, eventData: [ @@ -23402,93 +24380,103 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, sentret: { learnset: { - amnesia: ["7L36", "7V", "6L36", "5L36", "4L36", "3L49"], + amnesia: ["9M", "9L36", "7L36", "7V", "6L36", "5L36", "4L36", "3L49"], aquatail: ["7T", "6T", "5T", "4T"], assist: ["7E", "6E", "5E", "4E", "3E"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - babydolleyes: ["7E"], - batonpass: ["7L39", "6L39", "5L39", "4L39"], - bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], + babydolleyes: ["9E", "7E"], + batonpass: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], + blizzard: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["7M"], captivate: ["7E", "6E", "4M"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["7E", "6E", "5E", "4E"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "7E", "6E", "5E", "4E"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - defensecurl: ["7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L4"], + defensecurl: ["9L4", "7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L4"], detect: ["7V"], - dig: ["7V", "6M", "5M", "4M", "3M"], - doubleedge: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "9L42", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], echoedvoice: ["7M", "6M", "5M"], - endure: ["7V", "5D", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - flamethrower: ["7M", "6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focusenergy: ["7E", "7V", "6E", "5E", "4E", "3E"], - focuspunch: ["7T", "6T", "4M", "3M"], - followme: ["7L19", "6L19", "5L19", "4L19", "3L31"], + endeavor: ["9M"], + endure: ["9M", "7V", "5D", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L19", "7L19", "6L19", "5L19", "4L19", "3L31"], foresight: ["7L1", "6L1", "5L1", "4L1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - furyswipes: ["7L13", "7V", "6L13", "5L13", "4L13", "3L12"], - grassknot: ["7M", "6M", "5M", "4M"], + furyswipes: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L12"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], headbutt: ["7V", "4T"], - helpinghand: ["7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16", "3L17"], + helpinghand: ["9M", "9L16", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16", "3L17"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hypervoice: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4L47"], - icebeam: ["7M", "6M", "5M", "4M", "3M"], - icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + hypervoice: ["9M", "9L47", "7T", "7L47", "6T", "6L47", "5T", "5L47", "4L47"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], mefirst: ["7L42", "6L42", "5L42", "4L42"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["7E", "6E", "5E", "4M"], + playrough: ["9M"], poweruppunch: ["6M"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], - quickattack: ["7L7", "7V", "6L7", "5L7", "4L7", "3L7"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L40"], + quickattack: ["9L7", "7L7", "7V", "6L7", "5L7", "4L7", "3L7"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L28", "7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L40"], retaliate: ["6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - reversal: ["7E", "7V", "6E", "5E", "4E", "3E"], + reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], rollout: ["7V", "4T", "3T"], round: ["7M", "6M", "5M"], - scratch: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + scratch: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], - shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], - shadowclaw: ["7M", "6M", "5M", "4M"], + seedbomb: ["9M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - slam: ["7L25", "7V", "6L25", "5L25", "4L25", "3L24"], - slash: ["7E", "7V", "6E", "5E", "4E", "3E"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + slam: ["9L25", "7L25", "7V", "6L25", "5L25", "4L25", "3L24"], + slash: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], - suckerpunch: ["7L31", "6L31", "5L31", "4T", "4L31"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], - surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["9L31", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["7V", "4T", "3T"], + swift: ["9M", "7V", "4T", "3T"], tackle: ["7V"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + tidyup: ["9E"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - trick: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], - uproar: ["7T", "6T", "5T", "4T"], - uturn: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], whirlpool: ["4M"], workup: ["7M", "5M"], }, @@ -23498,96 +24486,106 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, furret: { learnset: { - agility: ["7L1"], - amnesia: ["7L42", "7V", "6L42", "5L42", "4L42", "3L59"], + agility: ["9M", "9L0", "7L1"], + amnesia: ["9M", "9L42", "7L42", "7V", "6L42", "5L42", "4L42", "3L59"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["7L46", "6L46", "5L46", "4L46"], - blizzard: ["7M", "6M", "5M", "4M", "3M"], - bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9L46", "7L46", "6L46", "5L46", "4L46"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["7M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], - coil: ["7L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], + chillingwater: ["9M"], + coil: ["9L1", "7L1"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - defensecurl: ["7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], detect: ["7V"], - dig: ["7V", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "9L50", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], echoedvoice: ["7M", "6M", "5M"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - flamethrower: ["7M", "6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], - followme: ["7L21", "6L21", "5L21", "4L21", "3L37"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L21", "7L21", "6L21", "5L21", "4L21", "3L37"], foresight: ["7L1", "6L1", "5L1", "4L1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - furyswipes: ["7L13", "7V", "6L13", "5L13", "4L13", "3L12"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], + furyswipes: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L12"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], headbutt: ["7V", "4T"], - helpinghand: ["7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L19"], + helpinghand: ["9M", "9L17", "7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L19"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["7T", "7L56", "6T", "6L56", "5T", "5L56", "4L56"], - icebeam: ["7M", "6M", "5M", "4M", "3M"], - icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L56", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4L56"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lastresort: ["7T", "6T", "5T", "4T"], mefirst: ["7L50", "6L50", "5L50", "4L50"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], + playrough: ["9M"], poweruppunch: ["6M"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - quickattack: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L48"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L32", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L48"], retaliate: ["6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], rocksmash: ["6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], round: ["7M", "6M", "5M"], - scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], - shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], - shadowclaw: ["7M", "6M", "5M", "4M"], + seedbomb: ["9M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - slam: ["7L28", "7V", "6L28", "5L28", "4L28", "3L28"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + slam: ["9L28", "7L28", "7V", "6L28", "5L28", "4L28", "3L28"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["7L36", "6L36", "5L36", "4T", "4L36"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], - surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L36", "7L36", "6L36", "5L36", "4T", "4L36"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["7V", "4T", "3T"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + swift: ["9M", "7V", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - trick: ["7T", "6T", "5T"], - uproar: ["7T", "6T", "5T", "4T"], - uturn: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], whirlpool: ["4M"], workup: ["7M", "5M"], + zenheadbutt: ["9M"], }, encounters: [ {generation: 2, level: 6}, @@ -23596,90 +24594,98 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, hoothoot: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "7E", "6E", "5E", "4E"], - aircutter: ["4T"], - airslash: ["8M", "8L18", "7L31", "6L33", "5L33", "4L29"], - amnesia: ["8M"], + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L18", "8M", "8L18", "7L31", "6L33", "5L33", "4L29"], + amnesia: ["9M", "8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - calmmind: ["8M"], + bravebird: ["9M"], + calmmind: ["9M", "8M"], captivate: ["4M"], confide: ["7M", "6M"], - confusion: ["8L9", "7L10", "7V", "6L21", "5L21", "4L21", "3L34"], + confuseray: ["9M"], + confusion: ["9L9", "8L9", "7L10", "7V", "6L21", "5L21", "4L21", "3L34"], curse: ["7V"], - defog: ["8E", "7T", "7E", "6E", "5E", "4M"], + defog: ["9L15", "8E", "7T", "7E", "6E", "5E", "4M"], detect: ["7V"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dreameater: ["8L39", "7M", "7L46", "7V", "6M", "6L57", "5M", "5L57", "4M", "4L49", "3T", "3L48"], - dualwingbeat: ["8T"], - echoedvoice: ["8L6", "7M", "7L13", "6M", "6L25", "5M", "5L25"], - endure: ["8M", "7V", "4M", "3T"], - extrasensory: ["8L21", "7L22", "6L45", "5L45", "4L37"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - featherdance: ["8E", "7E", "6E", "5E", "4E", "3E"], + dreameater: ["9L39", "8L39", "7M", "7L46", "7V", "6M", "6L57", "5M", "5L57", "4M", "4L49", "3T", "3L48"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["9L6", "8L6", "7M", "7L13", "6M", "6L25", "5M", "5L25"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L21", "8L21", "7L22", "6L45", "5L45", "4L37"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], flash: ["7V", "3M"], - fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], foresight: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L6", "3S0"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], + growl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hurricane: ["8M", "7E"], - hypervoice: ["8M", "7T", "6T", "5T"], - hypnosis: ["8L36", "7L4", "7V", "6L5", "5L5", "4L5", "3L16"], - imprison: ["8M"], - magiccoat: ["7T", "6T", "5T", "4T"], + hurricane: ["9M", "8M", "7E"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L36", "8L36", "7L4", "7V", "6L5", "5L5", "4L5", "3L16"], + imprison: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], meanlook: ["7E"], mimic: ["3T"], mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], - moonblast: ["8L33", "7L40"], + moonblast: ["9L33", "8L33", "7L40"], mudslap: ["7V", "4T", "3T"], - nastyplot: ["8M"], + nastyplot: ["9M", "8M"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - nightshade: ["8E", "7E", "6E", "5E", "5D", "4E"], + nightshade: ["9M", "9E", "8E", "7E", "6E", "5E", "5D", "4E"], ominouswind: ["4T"], - peck: ["8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L11"], + peck: ["9L1", "8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L11"], pluck: ["5M", "4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psychoshift: ["8L15", "7L19", "6L49", "5L49", "4L41"], - psychup: ["7M", "6M", "5M", "4M"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "5D", "4M"], - reflect: ["8M", "8L12", "7M", "7L28", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L22"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "9L12", "8M", "8L12", "7M", "7L28", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L22"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roost: ["8L30", "7M", "7L37", "6M", "6L53", "5T", "5L53", "4M", "4L45"], + roost: ["9L30", "8L30", "7M", "7L37", "6M", "6L53", "5T", "5L53", "4M", "4L45"], round: ["8M", "7M", "6M", "5M"], screech: ["8M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], silverwind: ["4M"], + skillswap: ["9M"], skyattack: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3T", "3E"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "3T"], + spite: ["9M"], steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], - storedpower: ["8M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], synchronoise: ["7L43", "6L41", "5L41"], - tackle: ["8L3", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - tailwind: ["7T", "6T", "5T", "4T"], - takedown: ["8L24", "7L25", "7V", "6L29", "5L29", "4L25", "3L28"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tackle: ["9L3", "8L3", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L24", "8L24", "7L25", "7V", "6L29", "5L29", "4L25", "3L28"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], twister: ["4T"], - uproar: ["8M", "8L27", "7T", "7L34", "6T", "6L13", "5T", "5L13", "4T", "4L13"], - whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - wingattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + uproar: ["9M", "9L27", "8M", "8L27", "7T", "7L34", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + whirlwind: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], workup: ["8M", "7M", "5M"], - zenheadbutt: ["8M", "7T", "7L16", "6T", "6L37", "5T", "5L37", "4T", "4L33"], + zenheadbutt: ["9M", "8M", "7T", "7L16", "6T", "6L37", "5T", "5L37", "4T", "4L33"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "foresight"], pokeball: "pokeball"}, @@ -23690,86 +24696,99 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, noctowl: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M"], - aircutter: ["4T"], - airslash: ["8M", "8L18", "7L35", "6L37", "5L37", "4L32"], - amnesia: ["8M"], + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L18", "8M", "8L18", "7L35", "6L37", "5L37", "4L32"], + amnesia: ["9M", "8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - calmmind: ["8M"], + bodyslam: ["9M"], + bravebird: ["9M"], + calmmind: ["9M", "8M"], captivate: ["4M"], confide: ["7M", "6M"], - confusion: ["8L9", "7L10", "7V", "6L22", "5L22", "4L22", "3L41"], - curse: ["7V"], - defog: ["7T", "4M"], + confuseray: ["9M"], + confusion: ["9L9", "8L9", "7L10", "7V", "6L22", "5L22", "4L22", "3L41"], + curse: ["9M", "7V"], + defog: ["9L15", "7T", "4M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - dreameater: ["8L53", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L67", "4M", "4L57", "3T", "3L57"], - dualwingbeat: ["8T"], - echoedvoice: ["8L1", "7M", "7L13", "6M", "6L27", "5M", "5L27"], - endure: ["8M", "7V", "4M", "3T"], - extrasensory: ["8L23", "7L23", "6L52", "5L52", "4L42"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + dreameater: ["9L53", "8L53", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L67", "4M", "4L57", "3T", "3L57"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["9L1", "8L1", "7M", "7L13", "6M", "6L27", "5M", "5L27"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L23", "8L23", "7L23", "6L52", "5L52", "4L42"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M"], flash: ["7V", "3M"], - fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["8M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], + futuresight: ["9M", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hurricane: ["8M"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - hypnosis: ["8L48", "7L1", "7V", "6L1", "5L1", "4L1", "3L16"], - imprison: ["8M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L48", "8L48", "7L1", "7V", "6L1", "5L1", "4L1", "3L16"], + imprison: ["9M", "8M"], laserfocus: ["7T"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], - moonblast: ["8L43", "7L47"], + moonblast: ["9L43", "8L43", "7L47"], mudslap: ["7V", "4T", "3T"], - nastyplot: ["8M"], + nastyplot: ["9M", "8M"], naturalgift: ["4M"], nightmare: ["7V", "3T"], + nightshade: ["9M"], ominouswind: ["4T"], - peck: ["8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L1"], + peck: ["9L1", "8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L1"], pluck: ["5M", "4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychicnoise: ["9M"], psychoshift: ["8L15", "7L19", "6L57", "5L57", "4L47"], - psychup: ["7M", "6M", "5M", "4M"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], - reflect: ["8M", "8L12", "7M", "7L31", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L25"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "9L12", "8M", "8L12", "7M", "7L31", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L25"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roost: ["8L38", "7M", "7L43", "6M", "6L62", "5T", "5L62", "4M", "4L52"], + roost: ["9L38", "8L38", "7M", "7L43", "6M", "6L62", "5T", "5L62", "4M", "4L52"], round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], screech: ["8M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], silverwind: ["4M"], - skyattack: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + skillswap: ["9M"], + skyattack: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "3T"], + spite: ["9M"], steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], - storedpower: ["8M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], synchronoise: ["7L51", "6L47", "5L47"], - tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - tailwind: ["7T", "6T", "5T", "4T"], - takedown: ["8L28", "7L27", "7V", "6L32", "5L32", "4L27", "3L33"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L28", "8L28", "7L27", "7V", "6L32", "5L32", "4L27", "3L33"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], twister: ["4T"], - uproar: ["8M", "8L33", "7T", "7L39", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + uproar: ["9M", "9L33", "8M", "8L33", "7T", "7L39", "6T", "6L13", "5T", "5L13", "4T", "4L13"], workup: ["8M", "7M", "5M"], - zenheadbutt: ["8M", "7T", "7L16", "6T", "6L42", "5T", "5L42", "4T", "4L37"], + zenheadbutt: ["9M", "8M", "7T", "7L16", "6T", "6L42", "5T", "5L42", "4T", "4L37"], }, encounters: [ {generation: 2, level: 7}, @@ -23944,77 +24963,87 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, spinarak: { learnset: { - absorb: ["7L5"], - agility: ["7L33", "7V", "6L33", "5L33", "4L33", "3L45"], + absorb: ["9L5", "7L5"], + acidspray: ["9M"], + agility: ["9M", "9L29", "7L33", "7V", "6L33", "5L33", "4L33", "3L45"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["7E", "7V", "6E", "5E", "4E", "3E"], + batonpass: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], bodyslam: ["3T"], bounce: ["7T", "6T", "5T", "4T"], - bugbite: ["7T", "6T", "5T", "5D", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "5D", "4T"], + bugbuzz: ["9M"], captivate: ["4M"], confide: ["7M", "6M"], constrict: ["7L1", "7V", "6L8", "5L8", "4L8", "3L11"], - crosspoison: ["7L47", "6L47", "5L47"], + crosspoison: ["9L44", "7L47", "6L47", "5L47"], curse: ["7V"], - dig: ["7V", "6M", "5M", "4M", "3M", "3S0"], - disable: ["7E", "7V", "6E", "5E", "4E", "3E"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M", "3S0"], + disable: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - electroweb: ["7T", "7E", "6T", "6E", "5T", "5E", "5D"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], + electroweb: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], - foulplay: ["7T", "6T", "5T"], + foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furyswipes: ["7L22", "7V", "6L22", "5L22", "4L22", "3L30"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + furyswipes: ["9L22", "7L22", "7V", "6L22", "5L22", "4L22", "3L30"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + hex: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - infestation: ["7M", "7L8", "6M"], - leechlife: ["7M", "7V", "6L12", "5L12", "4L12", "3L23"], - lunge: ["7E"], - megahorn: ["7E", "6E"], + infestation: ["9L8", "7M", "7L8", "6M"], + knockoff: ["9M"], + leechlife: ["9M", "7M", "7V", "6L12", "5L12", "4L12", "3L23"], + lunge: ["9M", "9E", "7E"], + megahorn: ["9E", "7E", "6E"], mimic: ["3T"], naturalgift: ["4M"], - nightshade: ["7L15", "7V", "6L15", "5L15", "4L15", "3L17", "3S0"], - nightslash: ["7E", "6E", "5E"], - pinmissile: ["7L36", "6L36", "5L36", "4L36"], - poisonjab: ["7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43", "4E"], - poisonsting: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + nightshade: ["9M", "9L15", "7L15", "7V", "6L15", "5L15", "4L15", "3L17", "3S0"], + nightslash: ["9E", "7E", "6E", "5E"], + pinmissile: ["9L33", "7L36", "6L36", "5L36", "4L36"], + poisonjab: ["9M", "9L40", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43", "4E"], + poisonsting: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + pounce: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["7E", "7V", "6E", "5E", "4E", "3E"], - psychic: ["7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L53"], + psychic: ["9M", "9L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L53"], pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], - ragepowder: ["7E", "6E", "5E"], + ragepowder: ["9E", "7E", "6E", "5E"], refresh: ["3S0"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - scaryface: ["7L12", "7V", "6L5", "5L5", "4L5", "3L6"], + scaryface: ["9M", "9L12", "7L12", "7V", "6L5", "5L5", "4L5", "3L6"], screech: ["7V"], secretpower: ["6M", "4M", "3M"], - shadowsneak: ["7L19", "6L19", "5L19", "4L19"], + shadowsneak: ["9L19", "7L19", "6L19", "5L19", "4L19"], signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E", "3S0"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + skittersmack: ["9M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M"], snore: ["7T", "7V", "6T", "3T"], - solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], sonicboom: ["7E", "7V", "6E", "5E", "4E", "3E"], spiderweb: ["7L29", "7V", "6L29", "5L29", "4L29", "3L37"], - stickyweb: ["7L50", "6L50"], - stringshot: ["7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], - strugglebug: ["6M", "5M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["7L26", "6L26", "5L26", "4T", "4L26"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9M"], + stickyweb: ["9L47", "7L50", "6L50"], + stringshot: ["9L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L26", "7L26", "6L26", "5L26", "4T", "4L26"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - toxicspikes: ["7E", "6E", "5E", "4E"], - toxicthread: ["7L54"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "7E", "6E", "5E", "4E"], + toxicthread: ["9L51", "7L54"], + trailblaze: ["9M"], twineedle: ["7E", "6E", "5E"], - venoshock: ["7M", "6M", "5M"], - xscissor: ["7M", "6M", "5M"], + venoshock: ["9M", "7M", "6M", "5M"], + xscissor: ["9M", "7M", "6M", "5M"], }, eventData: [ {generation: 3, level: 14, moves: ["refresh", "dig", "signalbeam", "nightshade"]}, @@ -24025,75 +25054,91 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ariados: { learnset: { - absorb: ["7L1"], - agility: ["7L37", "7V", "6L37", "5L37", "4L37", "3L53"], + absorb: ["9L1", "7L1"], + acidspray: ["9M"], + agility: ["9M", "9L31", "7L37", "7V", "6L37", "5L37", "4L37", "3L53"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], bodyslam: ["3T"], bounce: ["7T", "6T", "5T", "4T"], - bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["9M"], captivate: ["4M"], confide: ["7M", "6M"], constrict: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - crosspoison: ["7L55", "6L55", "5L55"], + crosspoison: ["9L50", "9S0", "7L55", "6L55", "5L55"], curse: ["7V"], - dig: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - electroweb: ["7T", "6T", "5T"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - fellstinger: ["7L1", "6L1"], + electroweb: ["9M", "7T", "6T", "5T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fellstinger: ["9L1", "7L1", "6L1"], flash: ["7V", "6M", "5M", "4M", "3M"], - focusenergy: ["7L1"], - foulplay: ["7T", "6T", "5T"], + focusenergy: ["9L1", "7L1"], + foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furyswipes: ["7L23", "7V", "6L23", "5L23", "4L23", "3L34"], - gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], + furyswipes: ["9L23", "7L23", "7V", "6L23", "5L23", "4L23", "3L34"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + hex: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], - infestation: ["7M", "7L8", "6M"], - leechlife: ["7M", "7V", "6L12", "5L12", "4L12", "3L25"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["9L8", "7M", "7L8", "6M"], + knockoff: ["9M"], + leechlife: ["9M", "7M", "7V", "6L12", "5L12", "4L12", "3L25"], + lunge: ["9M"], mimic: ["3T"], naturalgift: ["4M"], - nightshade: ["7L15", "7V", "6L15", "5L15", "4L15", "3L17"], - pinmissile: ["7L41", "6L41", "5L41", "4L41"], - poisonjab: ["7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L50"], - poisonsting: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L63"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + nightshade: ["9M", "9L15", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + pinmissile: ["9L35", "7L41", "6L41", "5L41", "4L41"], + poisonjab: ["9M", "9L46", "9S0", "7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L50"], + poisonsting: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pounce: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "9L41", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L63"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - scaryface: ["7L12", "7V", "6L1", "5L1", "4L1", "3L1"], + scaryface: ["9M", "9L12", "7L12", "7V", "6L1", "5L1", "4L1", "3L1"], screech: ["7V"], secretpower: ["6M", "4M", "3M"], - shadowsneak: ["7L19", "6L19", "5L19", "4L19"], + shadowsneak: ["9L19", "7L19", "6L19", "5L19", "4L19"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], - smartstrike: ["7M"], + skittersmack: ["9M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["9M"], + smartstrike: ["9M", "7M"], snore: ["7T", "7V", "6T", "3T"], - solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], spiderweb: ["7L32", "7V", "6L32", "5L32", "4L32", "3L43"], - stickyweb: ["7L58", "6L58"], + spite: ["9M"], + stickyweb: ["9L54", "9S0", "7L58", "6L58"], stompingtantrum: ["7T"], - stringshot: ["7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], - strugglebug: ["6M", "5M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["7L28", "6L28", "5L28", "4T", "4L28"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["9L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L28", "7L28", "6L28", "5L28", "4T", "4L28"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swordsdance: ["7M", "7L1"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["7T"], - toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - toxicthread: ["7L63"], + swordsdance: ["9M", "9L0", "7M", "7L1"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "7T"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + toxicthread: ["9L59", "9S0", "7L63"], + trailblaze: ["9M"], venomdrench: ["7L1", "6L1"], - venoshock: ["7M", "6M", "5M"], - xscissor: ["7M", "6M", "5M"], + venoshock: ["9M", "7M", "6M", "5M"], + xscissor: ["9M", "7M", "6M", "5M"], }, + eventData: [ + {generation: 9, level: 65, gender: "M", nature: "Hardy", abilities: ["swarm"], ivs: {hp: 20, atk: 20, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["toxicthread", "stickyweb", "crosspoison", "poisonjab"]}, + ], encounters: [ {generation: 2, level: 7}, {generation: 4, level: 5}, @@ -24102,152 +25147,168 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, chinchou: { learnset: { - agility: ["8M", "7E", "6E", "5E", "4E"], - amnesia: ["8M", "7E", "6E", "5E", "5D", "4E", "3E"], - aquaring: ["8L32", "7L42", "6L42", "5L42", "4L39"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], + amnesia: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], + aquaring: ["9L32", "8L32", "7L42", "6L42", "5L42", "4L39"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bounce: ["8M", "7T", "6T", "5T", "4T"], brine: ["8M", "7E", "6E", "5E", "4M"], bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - bubblebeam: ["8L12", "7L20", "6L20", "5L31", "4L28"], + bubblebeam: ["9L12", "8L12", "7L20", "6L20", "5L31", "4L28"], captivate: ["4M"], - charge: ["8L24", "7L50", "6L50", "5L50", "4L45", "3L49"], - chargebeam: ["7M", "6M", "5M", "4M"], + charge: ["9M", "9L24", "8L24", "7L50", "6L50", "5L50", "4L45", "3L49"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confuseray: ["8L16", "7L17", "7V", "6L17", "5L12", "4L17", "3L29"], - curse: ["7V"], - dazzlinggleam: ["8M", "7M", "6M"], - discharge: ["8L28", "7L34", "6L34", "5L39", "4L34"], + confuseray: ["9M", "9L16", "8L16", "7L17", "7V", "6L17", "5L12", "4L17", "3L29"], + curse: ["9M", "7V"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + discharge: ["9L28", "8L28", "7L34", "6L34", "5L39", "4L34"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - electroball: ["8M", "8L4", "7L9", "6L9", "5L28"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flail: ["8L36", "7L31", "7E", "7V", "6L9", "6E", "5L9", "5E", "4L9", "4E", "3L13", "3E"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L4", "8M", "8L4", "7L9", "6L9", "5L28"], + electroweb: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L36", "8L36", "7L31", "7E", "7V", "6L9", "6E", "5L9", "5E", "4L9", "4E", "3L13", "3E"], flash: ["7V", "6M", "5M", "4M", "3M"], + flipturn: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], healbell: ["7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L44", "7L45", "7V", "6L45", "5L45", "4L42", "3L41"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L44", "8M", "8L44", "7L45", "7V", "6L45", "5L45", "4L42", "3L41"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], iondeluge: ["7L47", "6L47"], + liquidation: ["9M"], mimic: ["3T"], - mist: ["8E", "7E", "6E", "5E", "4E"], + mist: ["9E", "8E", "7E", "6E", "5E", "4E"], + muddywater: ["9M"], naturalgift: ["4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psybeam: ["8E", "7E", "6E", "5E", "4E"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], risingvoltage: ["8T"], round: ["8M", "7M", "6M", "5M"], - scald: ["8M", "7M", "6M", "5M"], + scald: ["9M", "8M", "7M", "6M", "5M"], screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], secretpower: ["6M", "4M", "3M"], shockwave: ["7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], signalbeam: ["7T", "7L28", "6T", "6L28", "5T", "5L34", "4T", "4L31"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - soak: ["8E", "7E", "6E"], - spark: ["8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["4T"], - supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], - surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + soak: ["9E", "8E", "7E", "6E"], + spark: ["9L20", "8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "4T"], + supersonic: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - takedown: ["8L40", "7L39", "7V", "6L23", "5L23", "4L23", "3L37"], - thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderwave: ["8M", "8L8", "7M", "7L6", "7V", "6M", "6L6", "5M", "5L6", "5D", "4M", "4L6", "3T", "3L1"], + takedown: ["9M", "9L40", "8L40", "7L39", "7V", "6L23", "5L23", "4L23", "3L37"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "9L8", "8M", "8L8", "7M", "7L6", "7V", "6M", "6L6", "5M", "5L6", "5D", "4M", "4L6", "3T", "3L1"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - voltswitch: ["8M", "7M", "6M", "5M"], - waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7L12", "7V", "6L1", "5L17", "4L12", "3L17"], - waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], - whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M", "4E"], - wildcharge: ["8M", "7M", "6M", "5M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L12", "7V", "6L1", "5L17", "4L12", "3L17"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4E"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], zapcannon: ["7V"], }, }, lanturn: { learnset: { - agility: ["8M"], - amnesia: ["8M"], - aquaring: ["8L36", "7L47", "6L47", "5L52", "4L47"], + agility: ["9M", "8M"], + amnesia: ["9M", "8M"], + aquaring: ["9L36", "8L36", "7L47", "6L47", "5L52", "4L47"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bounce: ["8M", "7T", "6T", "5T", "4T"], brine: ["8M", "4M"], bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - bubblebeam: ["8L12", "7L20", "6L20", "5L35", "4L30"], + bubblebeam: ["9L12", "8L12", "7L20", "6L20", "5L35", "4L30"], captivate: ["4M"], - charge: ["8L24", "7L58", "6L58", "5L64", "4L57", "3L61"], - chargebeam: ["7M", "6M", "5M", "4M"], + charge: ["9M", "9L24", "8L24", "7L58", "6L58", "5L64", "4L57", "3L61"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confuseray: ["8L16", "7L17", "7V", "6L17", "5L17", "4L17", "3L32"], - curse: ["7V"], - dazzlinggleam: ["8M", "7M", "6M"], - discharge: ["8L30", "7L37", "6L37", "5L47", "4L40"], + confuseray: ["9M", "9L16", "8L16", "7L17", "7V", "6L17", "5L17", "4L17", "3L32"], + curse: ["9M", "7V"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + discharge: ["9L30", "8L30", "7L37", "6L37", "5L47", "4L40"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - eerieimpulse: ["8M", "8L1", "7L1", "6L1"], - electroball: ["8M", "8L1", "7L1", "6L1", "5L30"], - endure: ["8M", "7V", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flail: ["8L42", "7L33", "7V", "6L9", "5L9", "4L9", "3L13"], + eerieimpulse: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + electricterrain: ["9M"], + electroball: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L30"], + electroweb: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L42", "8L42", "7L33", "7V", "6L9", "5L9", "4L9", "3L13"], flash: ["7V", "6M", "5M", "4M", "3M"], + flipturn: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], healbell: ["7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L54", "7L51", "7V", "6L51", "5L57", "4L52", "3L50"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L54", "8M", "8L54", "7L51", "7V", "6L51", "5L57", "4L52", "3L50"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], iondeluge: ["7L54", "6L54"], + liquidation: ["9M"], mimic: ["3T"], + muddywater: ["9M"], naturalgift: ["4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], risingvoltage: ["8T"], round: ["8M", "7M", "6M", "5M"], - scald: ["8M", "7M", "6M", "5M"], + scald: ["9M", "8M", "7M", "6M", "5M"], screech: ["8M"], secretpower: ["6M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L40", "4T", "4L35"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spark: ["8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], - spitup: ["8L0", "7L1", "6L27", "5L27", "4L27"], + spark: ["9L20", "8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], + spitup: ["9L0", "8L0", "7L1", "6L27", "5L27", "4L27"], spotlight: ["7L1"], - stockpile: ["8L0", "7L1", "6L27", "5L27", "4L27"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + stockpile: ["9L0", "8L0", "7L1", "6L27", "5L27", "4L27"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swallow: ["8L0", "7L1", "6L27", "5L27", "4L27"], - takedown: ["8L48", "7L43", "7V", "6L23", "5L23", "4L23", "3L43"], - thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderwave: ["8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + swallow: ["9L0", "8L0", "7L1", "6L27", "5L27", "4L27"], + takedown: ["9M", "9L48", "8L48", "7L43", "7V", "6L23", "5L23", "4L23", "3L43"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - voltswitch: ["8M", "7M", "6M", "5M"], - waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7L12", "7V", "6L1", "5L12", "4L12", "3L17"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["8M", "7V", "4M"], - wildcharge: ["8M", "7M", "6M", "5M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L12", "7V", "6L1", "5L12", "4L12", "3L17"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["9M", "8M", "7V", "4M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], zapcannon: ["7V"], }, encounters: [ @@ -24813,42 +25874,43 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "7E", "7V", "6E", "5E", "4E", "3T", "3E", "3S2"], captivate: ["4M"], - charge: ["9L15", "7L15", "7E", "6L15", "6E", "5L23", "5E", "4L23", "4E", "3E"], + charge: ["9M", "9L15", "7L15", "7E", "6L15", "6E", "5L15", "5E", "4L23", "4E", "3E"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M", "9L25", "7L25", "6L25", "5L25"], cottonguard: ["9L36", "7L36", "6L36", "5L32"], - cottonspore: ["9L11", "7L11", "7V", "6L11", "5L19", "4L19", "3L23", "3S0"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L11", "4L19", "3L23", "3S0"], curse: ["7V"], dazzlinggleam: ["9M", "9L39"], defensecurl: ["7V", "3T"], dig: ["9M"], - discharge: ["9L32", "7L32", "6L32", "5L37", "4L28"], - doubleedge: ["3T"], + discharge: ["9L32", "7L32", "6L32", "5L32", "4L28"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], eerieimpulse: ["9M", "9E", "7E", "6E"], electricterrain: ["9M", "9E", "7E", "6E"], - electroball: ["9M", "9L22", "7L22", "6L22", "5L28"], - electroweb: ["9E", "7T", "6T"], + electroball: ["9M", "9L22", "7L22", "6L22", "5L22"], + electroweb: ["9M", "9E", "7T", "6T"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], flatter: ["9E", "7E", "6E", "5E", "4E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - growl: ["9L1", "7L1", "7V", "6L1", "5L5", "4L5", "3L1", "3S1"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L5", "3L1", "3S1"], headbutt: ["7V", "4T"], healbell: ["7T", "6T", "5T", "4T", "3S2"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], holdback: ["6S3"], irontail: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], - lightscreen: ["9M", "9L43", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L46", "4M", "4L37", "3M", "3L30"], + lightscreen: ["9M", "9L43", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L37", "3M", "3L30"], magnetrise: ["7T", "6T", "5T", "4T"], mimic: ["3T"], naturalgift: ["4M"], odorsleuth: ["7E", "6E", "5E", "4E", "3E"], - powergem: ["9M", "9L29", "7L29", "6L29", "5L50", "4L41"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L29", "4L41"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["9M", "7V", "5D", "4E", "3E"], @@ -24860,7 +25922,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["7E", "7V", "6E", "5E", "4E", "3E"], secretpower: ["6M", "4M", "3M"], shockwave: ["7T", "6T", "5D", "4M", "3M"], - signalbeam: ["7T", "7L39", "6T", "6L39", "5T", "5L41", "4T", "4L32"], + signalbeam: ["7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L32"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], @@ -24870,10 +25932,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "7L1", "7V", "6L1", "6S3", "5L1", "4L1", "3L1", "3S1"], takedown: ["9M", "9L18", "7L18", "7E", "7V", "6L18", "6E", "5L18", "5E", "4E", "3E"], terablast: ["9M"], - thunder: ["9M", "9L46", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L55", "4M", "4L46", "3M", "3L37", "3S0"], + thunder: ["9M", "9L46", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L37", "3S0"], thunderbolt: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - thundershock: ["9L8", "7L8", "7V", "6L8", "6S3", "5L10", "5D", "4L10", "3L9", "3S0", "3S1", "3S2"], - thunderwave: ["9M", "9L4", "7M", "7L4", "7V", "6M", "6L4", "6S3", "5M", "5L14", "4M", "4L14", "3T", "3L16", "3S0", "3S2"], + thundershock: ["9L8", "7L8", "7V", "6L8", "6S3", "5L8", "5D", "4L10", "3L9", "3S0", "3S1", "3S2"], + thunderwave: ["9M", "9L4", "7M", "7L4", "7V", "6M", "6L4", "6S3", "5M", "5L4", "4M", "4L14", "3T", "3L16", "3S0", "3S2"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], voltswitch: ["9M"], @@ -24895,32 +25957,33 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "3T"], brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - charge: ["9L16", "7L16", "6L16", "5L25", "4L25"], + charge: ["9M", "9L16", "7L16", "6L16", "5L16", "4L25"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M", "9L29", "7L29", "6L29", "5L29"], cottonguard: ["9L43", "7L43", "6L43", "5L36"], - cottonspore: ["9L11", "7L11", "7V", "6L11", "5L20", "4L20", "3L27"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L11", "4L20", "3L27"], counter: ["3T"], curse: ["7V"], dazzlinggleam: ["9M", "9L47"], defensecurl: ["7V", "3T"], dig: ["9M"], - discharge: ["9L38", "7L38", "6L38", "5L42", "4L31"], - doubleedge: ["3T"], + discharge: ["9L38", "7L38", "6L38", "5L38", "4L31"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], echoedvoice: ["7M", "6M", "5M"], eerieimpulse: ["9M"], electricterrain: ["9M"], - electroball: ["9M", "9L25", "7L25", "6L25", "5L31"], - electroweb: ["7T", "6T"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L25"], + electroweb: ["9M", "7T", "6T"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], headbutt: ["7V", "4T"], @@ -24929,20 +25992,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], icepunch: ["9M"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - lightscreen: ["9M", "9L52", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L53", "4M", "4L42", "3M", "3L36"], + lightscreen: ["9M", "9L52", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L52", "4M", "4L42", "3M", "3L36"], lowkick: ["9M"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], mimic: ["3T"], naturalgift: ["4M"], - powergem: ["9M", "9L34", "7L34", "6L34", "5L59", "4L47"], + powergem: ["9M", "9L34", "7L34", "6L34", "5L34", "4L47"], poweruppunch: ["6M"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["9M"], rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M"], @@ -24960,11 +26024,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], terablast: ["9M"], - thunder: ["9M", "9L56", "7M", "7L56", "7V", "6M", "6L56", "5M", "5L65", "4M", "4L53", "3M", "3L45"], + thunder: ["9M", "9L56", "7M", "7L56", "7V", "6M", "6L56", "5M", "5L56", "4M", "4L53", "3M", "3L45"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], thundershock: ["9L6", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - thunderwave: ["9M", "9L9", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L14", "4M", "4L14", "3T", "3L18"], + thunderwave: ["9M", "9L9", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L4", "4M", "4L14", "3T", "3L18"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], voltswitch: ["9M", "7M", "6M", "5M"], @@ -24981,39 +26045,42 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "3T"], + breakingswipe: ["9M"], brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["7M"], bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], - charge: ["9L16", "7L16", "6L16", "5L25", "4L25"], + charge: ["9M", "9L16", "7L16", "6L16", "5L16", "4L25"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M", "9L29", "7L29", "6L29", "5L29"], cottonguard: ["9L46", "7L46", "6L46", "5L40"], - cottonspore: ["9L11", "7L11", "7V", "6L11", "5L20", "4L20", "3L27"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L11", "4L20", "3L27"], counter: ["3T"], curse: ["7V"], dazzlinggleam: ["9M", "9L51"], defensecurl: ["7V", "3T"], dig: ["9M"], - discharge: ["9L40", "7L40", "6L40", "5L48", "4L34"], - doubleedge: ["3T"], + discharge: ["9L40", "7L40", "6L40", "5L40", "4L34"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragoncheer: ["9M"], dragonpulse: ["9M", "9L1", "7T", "7L1", "6T", "6L1"], dragontail: ["9M"], dynamicpunch: ["7V", "3T"], echoedvoice: ["7M", "6M", "5M"], eerieimpulse: ["9M"], electricterrain: ["9M"], - electroball: ["9M", "9L25", "7L25", "6L25", "5L33"], - electroweb: ["7T", "6T"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L25"], + electroweb: ["9M", "7T", "6T"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], @@ -25026,22 +26093,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { iondeluge: ["7L1", "6L1"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lightscreen: ["9M", "9L57", "7M", "7L57", "7V", "6M", "6L57", "5M", "5L63", "4M", "4L51", "3M", "3L42"], + lightscreen: ["9M", "9L57", "7M", "7L57", "7V", "6M", "6L57", "5M", "5L57", "4M", "4L51", "3M", "3L42"], lowkick: ["9M"], magneticflux: ["9L1", "7L1", "6L1"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], + meteorbeam: ["9M"], mimic: ["3T"], naturalgift: ["4M"], outrage: ["9M", "7T", "6T", "5T", "4T"], - powergem: ["9M", "9L35", "7L35", "6L35", "5L71", "4L59"], + powergem: ["9M", "9L35", "7L35", "6L35", "5L35", "4L59"], poweruppunch: ["6M"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["9M"], rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], @@ -25049,19 +26118,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], shockwave: ["7T", "6T", "4M", "3M"], - signalbeam: ["7T", "7L51", "6T", "6L51", "5T", "5L55", "4T", "4L42"], + signalbeam: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4T", "4L42"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], stompingtantrum: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["9M"], + supercellslam: ["9M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["9M", "7V", "4T", "3T"], tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], terablast: ["9M"], - thunder: ["9M", "9L62", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L79", "4M", "4L68", "3M", "3L57"], + thunder: ["9M", "9L62", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L62", "4M", "4L68", "3M", "3L57"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "9L0", "7T", "7L1", "7V", "6T", "6L30", "5T", "5L30", "4T", "4L30", "3T", "3L30"], thundershock: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], @@ -25075,6 +26145,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, azurill: { learnset: { + alluringvoice: ["9M"], aquajet: ["9E", "8E"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bellydrum: ["9E", "8E"], @@ -25082,7 +26153,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E", "3T"], bounce: ["9L15", "8M", "8L15", "7T", "7L23", "6T", "6L23", "5T", "5L23"], brutalswing: ["8M"], - bubble: ["7L7", "6L7", "5L10", "4L10", "3L10"], + bubble: ["7L7", "6L7", "5L1", "4L10", "3L10"], bubblebeam: ["9L6", "8L6", "7L13", "6L13", "5L13"], camouflage: ["7E", "6E"], captivate: ["4M"], @@ -25136,14 +26207,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], swift: ["4T", "3T"], - tailwhip: ["9L1", "8L1", "7L2", "6L2", "5L7", "4L7", "3L6"], + tailwhip: ["9L1", "8L1", "7L2", "6L2", "5L2", "4L7", "3L6"], takedown: ["9M"], terablast: ["9M"], tickle: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], toxic: ["7M", "6M", "5M", "4M", "3M"], uproar: ["8M", "7T", "6T", "5T", "4T"], waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["9L1", "8L1", "7L1", "6L1", "5L18", "4L18", "3L21"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L7", "4L18", "3L21"], waterpulse: ["7T", "6T", "4M", "3M"], watersport: ["7L5", "7E", "6L5", "6E", "5L5", "5E"], whirlpool: ["8M", "4M"], @@ -25152,10 +26223,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, marill: { learnset: { + alluringvoice: ["9M"], amnesia: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], aquajet: ["8E", "7E", "6E", "5E", "5D", "4E"], aquaring: ["9L24", "8L24", "7L28", "6L28", "5L23", "4L23"], - aquatail: ["9L19", "8L19", "7T", "7L20", "6T", "6L20", "5T", "5L37", "4T", "4L37"], + aquatail: ["9L19", "8L19", "7T", "7L20", "6T", "6L20", "5T", "5L20", "4T", "4L37"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], bellydrum: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -25164,7 +26236,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M"], bubble: ["7L7", "6L7", "5L1"], - bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L18", "4L18", "3L21"], + bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L13", "4L18", "3L21"], bulldoze: ["9M"], camouflage: ["7E", "6E"], captivate: ["4M"], @@ -25178,7 +26250,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dig: ["9M", "8M", "6M", "5M", "4M", "3M"], disarmingvoice: ["9M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["9L33", "8L33", "7L37", "7V", "6L23", "5L27", "4L27", "3T", "3L28"], + doubleedge: ["9M", "9L33", "8L33", "7L37", "7V", "6L23", "5L23", "4L27", "3T", "3L28"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M", "8M"], dynamicpunch: ["7V", "3T"], @@ -25187,7 +26259,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], faketears: ["9M", "8M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foresight: ["7V"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], @@ -25196,23 +26268,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["7V", "4T"], helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["9M", "9L30", "8M", "8L30", "7L47", "6L40", "5L42", "4L42", "3L45"], + hydropump: ["9M", "9L30", "8M", "8L30", "7L47", "6L40", "5L40", "4L42", "3L45"], hypervoice: ["9M", "8M", "7T", "6T", "5T"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], icespinner: ["9M"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lightscreen: ["9M", "8M", "7M", "7V", "6M", "5M", "4E", "3E"], liquidation: ["9M"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], metronome: ["9M"], mimic: ["3T"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], - muddywater: ["8M", "7E", "6E", "5E"], + muddywater: ["9M", "8M", "7E", "6E", "5E"], mudshot: ["9M", "8M"], mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], @@ -25221,12 +26293,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poweruppunch: ["6M"], present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - raindance: ["9M", "9L27", "8M", "8L27", "7M", "7L31", "7V", "6M", "6L31", "5M", "5L32", "4M", "4L32", "3M", "3L36"], + raindance: ["9M", "9L27", "8M", "8L27", "7M", "7L31", "7V", "6M", "6L31", "5M", "5L31", "4M", "4L32", "3M", "3L36"], refresh: ["7E", "6E", "5E", "4E"], rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], - rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L15"], + rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L10", "4T", "4L15", "3T", "3L15"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], @@ -25246,7 +26318,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["9M", "8M", "7V", "4T", "3T"], tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - tailwhip: ["9L1", "8L1", "7L2", "7V", "6L2", "5L7", "4L7", "3L6"], + tailwhip: ["9L1", "8L1", "7L2", "7V", "6L2", "5L2", "4L7", "3L6"], takedown: ["9M"], terablast: ["9M"], tickle: ["8E"], @@ -25254,18 +26326,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], uproar: ["8M"], waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L10", "4L10", "3L10"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L7", "4L10", "3L10"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], watersport: ["7L5", "7E", "6L5", "6E", "5L5", "5E"], - whirlpool: ["8M", "7V", "4M"], + whirlpool: ["9M", "8M", "7V", "4M"], workup: ["8M", "7M", "5M"], }, }, azumarill: { learnset: { + alluringvoice: ["9M"], amnesia: ["9M", "8M"], aquaring: ["9L30", "8L30", "7L31", "6L31", "5L27", "4L27"], - aquatail: ["9L21", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L47", "4T", "4L47"], + aquatail: ["9L21", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L47"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "3T"], @@ -25273,7 +26346,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M"], bubble: ["7L7", "6L7", "5L1"], - bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L20", "4L20", "3L24"], + bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L13", "4L20", "3L24"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], charm: ["9M", "9L9", "8M", "8L9"], @@ -25285,7 +26358,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dig: ["9M", "8M", "6M", "5M", "4M", "3M"], disarmingvoice: ["9M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["9L45", "8L45", "7L42", "7V", "6L25", "5L33", "4L33", "3T", "3L34"], + doubleedge: ["9M", "9L45", "8L45", "7L42", "7V", "6L25", "5L25", "4L33", "3T", "3L34"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainingkiss: ["9M", "8M"], dynamicpunch: ["7V", "3T"], @@ -25295,7 +26368,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { faketears: ["9M", "8M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], futuresight: ["8M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -25304,7 +26377,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["7V", "4T"], helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["9M", "9L40", "8M", "8L40", "7L55", "6L46", "5L54", "4L54", "3L57"], + hydropump: ["9M", "9L40", "8M", "8L40", "7L55", "6L46", "5L46", "4L54", "3L57"], hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], hypervoice: ["9M", "8M", "7T", "6T", "5T"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -25312,27 +26385,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icespinner: ["9M"], icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lightscreen: ["9M", "8M", "7M", "6M", "5M"], liquidation: ["9M", "8M", "7T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], metronome: ["9M"], mimic: ["3T"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], playrough: ["9M", "9L25", "8M", "8L25", "7L25", "6L25"], poweruppunch: ["6M"], protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - raindance: ["9M", "9L35", "8M", "8L35", "7M", "7L35", "7V", "6M", "6L35", "5M", "5L40", "4M", "4L40", "3M", "3L45"], + raindance: ["9M", "9L35", "8M", "8L35", "7M", "7L35", "7V", "6M", "6L35", "5M", "5L35", "4M", "4L40", "3M", "3L45"], rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L15"], + rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L10", "4T", "4L15", "3T", "3L15"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], @@ -25359,7 +26432,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], watersport: ["7L1", "6L1", "5L1"], - whirlpool: ["8M", "7V", "4M"], + whirlpool: ["9M", "8M", "7V", "4M"], workup: ["8M", "7M", "5M"], }, encounters: [ @@ -25381,10 +26454,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { copycat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], counter: ["9L40", "8L40", "7L36", "6L33"], covet: ["7T", "6T", "5T"], - curse: ["9E", "8E", "7E", "6E", "5E"], + curse: ["9M", "9E", "8E", "7E", "6E", "5E"], defensecurl: ["9E", "8E", "7E", "6E", "5E", "4E"], dig: ["9M", "8M", "6M", "5M", "4M"], - doubleedge: ["9L44", "8L44", "7L43", "6L40", "5L46", "4L46"], + doubleedge: ["9M", "9L44", "8L44", "7L43", "6L40", "5L40", "4L46"], doubleteam: ["7M", "6M", "5M", "4M"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], earthquake: ["9M"], @@ -25392,8 +26465,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { explosion: ["7M", "6M", "5M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], faketears: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], - feintattack: ["7L19", "6L19", "5L25", "4L25"], - flail: ["9L4", "8L4", "7L5", "6L5", "5L6", "4L6"], + feintattack: ["7L19", "6L19", "5L19", "4L25"], + flail: ["9L4", "8L4", "7L5", "6L5", "5L5", "4L6"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], grassknot: ["9M"], @@ -25401,7 +26474,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - lowkick: ["9M", "9L36", "8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L9", "4T", "4L9"], + lowkick: ["9M", "9L36", "8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L8", "4T", "4L9"], mimic: ["9L16", "8L16", "7L15", "6L15", "5L17", "4L17"], mudshot: ["9M"], mudslap: ["9M"], @@ -25409,31 +26482,31 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturepower: ["7M", "6M"], powergem: ["9M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], rockblast: ["9M"], rockpolish: ["9E", "8E", "7M", "6M", "5M", "4M"], - rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "6M", "6L29", "5M", "5L33", "4M", "4L33"], - rockthrow: ["9L8", "8L8", "7L12", "6L12", "5L14", "4L14"], - rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L30", "4M", "4L30"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "6M", "6L29", "5M", "5L29", "4M", "4L33"], + rockthrow: ["9L8", "8L8", "7L12", "6L12", "5L12", "4L14"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L22", "4M", "4L30"], roleplay: ["7T", "6T", "5T", "4T"], rollout: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], - sandtomb: ["8M", "7E", "6E", "5E", "4E"], + sandtomb: ["9M", "8M", "7E", "6E", "5E", "4E"], secretpower: ["6M", "4M"], selfdestruct: ["8M", "7E", "6E", "5E", "4E"], - slam: ["5L38", "4L38"], + slam: ["5L15", "4L38"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T"], spikes: ["9M"], stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], stompingtantrum: ["9M", "8M", "7T"], stoneedge: ["9M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], - suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L41", "4T", "4L41"], + suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L36", "4T", "4L41"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], takedown: ["9M"], @@ -25460,34 +26533,36 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { copycat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], counter: ["9L40", "8L40", "7L36", "6L33", "5L33", "3T"], covet: ["7T", "6T", "5T"], - curse: ["8E", "7E", "7V", "6E", "5E"], + curse: ["9M", "8E", "7E", "7V", "6E", "5E"], defensecurl: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["9L44", "8L44", "7L43", "6L40", "5L46", "4L46", "3T", "3L57"], + doubleedge: ["9M", "9L44", "8L44", "7L43", "6L40", "5L40", "4L46", "3T", "3L57"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dynamicpunch: ["7V", "3T"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["9M"], endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], explosion: ["7M", "6M", "5M", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], faketears: ["9M", "9L1", "8M", "8L1"], - feintattack: ["7L19", "7V", "6L19", "5L25", "4L25", "3L41"], + feintattack: ["7L19", "7V", "6L19", "5L19", "4L25", "3L41"], firepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], flail: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L9"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M"], grassknot: ["9M"], - hammerarm: ["9L1", "8L1", "7L50", "6L47", "5L49", "4L49"], + hammerarm: ["9L1", "8L1", "7L50", "6L47", "5L47", "4L49"], harden: ["8E", "7E", "6E", "5E", "4E"], headbutt: ["8E", "7E", "7V", "6E", "5E", "4T", "4E"], headsmash: ["9L48", "8L48", "7L54"], helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], irondefense: ["9M", "8M"], @@ -25495,8 +26570,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lowsweep: ["9M"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - meteorbeam: ["8T"], - mimic: ["9L16", "8L16", "7L15", "7V", "6L15", "5L17", "4L17", "3T", "3L1"], + meteorbeam: ["9M", "8T"], + mimic: ["9L16", "8L16", "7L15", "7V", "6L15", "5L15", "4L17", "3T", "3L1"], mudshot: ["9M"], mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], @@ -25504,26 +26579,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powergem: ["9M"], poweruppunch: ["6M"], protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockblast: ["9M", "8M"], rockpolish: ["8E", "7M", "6M", "5M", "4M"], - rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "7V", "6M", "6L29", "5M", "5L33", "4M", "4L33", "3T", "3L25"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L33", "3T", "3L25"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rockthrow: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L30", "4M", "4L30", "3M"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L22", "4M", "4L30", "3M"], roleplay: ["7T", "6T", "5T", "5D", "4T"], rollout: ["8E", "7E", "7V", "6E", "5E", "5D", "4T", "4E", "3T"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - sandtomb: ["8M", "7E", "6E", "5E", "4E"], + sandtomb: ["9M", "8M", "7E", "6E", "5E", "4E"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], selfdestruct: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], - slam: ["9L0", "8L0", "7L1", "7V", "6L15", "5L38", "4L38", "3L49"], + slam: ["9L0", "8L0", "7L1", "7V", "6L15", "5L15", "4L38", "3L49"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], spikes: ["9M"], stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], @@ -25531,7 +26606,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stoneedge: ["9M", "9L1", "8M", "8L1", "7M", "7L47", "6M", "6L43", "5M", "5L43", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L41", "4T", "4L41"], + suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L36", "4T", "4L41"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], takedown: ["9M"], @@ -25567,7 +26642,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7V"], dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["7V", "3T"], - doubleedge: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doubleedge: ["9M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], encore: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], @@ -25588,6 +26663,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leafstorm: ["9M"], leechseed: ["9L19", "7L22", "7V", "6L22", "5L22", "4L22", "3L20"], lightscreen: ["9M"], + lunge: ["9M"], magicalleaf: ["9M"], megadrain: ["9L22", "7L25", "7V", "6L25", "5L25", "4L25", "3L30"], memento: ["9L38", "7L49", "6L49", "5L49", "4L43"], @@ -25652,9 +26728,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7V"], dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["7V", "3T"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -25672,6 +26749,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leafstorm: ["9M"], leechseed: ["9L20", "7L24", "7V", "6L24", "5L24", "4L24", "3L22"], lightscreen: ["9M"], + lunge: ["9M"], magicalleaf: ["9M"], megadrain: ["9L24", "7L28", "7V", "6L28", "5L28", "4L28", "3L36"], memento: ["9L44", "7L60", "6L60", "5L60", "4L52"], @@ -25682,6 +26760,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M"], ragepowder: ["7L36", "6L36", "5L36"], + raindance: ["9M"], reflect: ["9M", "7M", "6M", "5M"], rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -25732,9 +26811,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7V"], dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["7V", "3T"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -25755,6 +26835,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leafstorm: ["9M"], leechseed: ["9L20", "7L24", "7V", "6L24", "5L24", "5S0", "4L24", "3L22"], lightscreen: ["9M"], + lunge: ["9M"], magicalleaf: ["9M"], megadrain: ["9L24", "7L29", "7V", "6L29", "5L29", "4L28", "3L44"], memento: ["9L55", "7L69", "6L69", "5L69", "4L52"], @@ -25802,107 +26883,117 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, aipom: { learnset: { - acrobatics: ["7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["7L29", "7E", "7V", "6L29", "6E", "5L29", "5E", "4L29", "4E", "3L50", "3E"], - astonish: ["7L8", "6L8", "5L8", "4L8", "3L13"], + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L29", "7L29", "7E", "7V", "6L29", "6E", "5L29", "5E", "4L29", "4E", "3L50", "3E"], + astonish: ["9L8", "7L8", "6L8", "5L8", "4L8", "3L13"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["7L11", "7V", "6L11", "5L11", "4L11", "3L18"], - beatup: ["7E", "7V", "6E", "5E", "4E", "3E"], + batonpass: ["9M", "9L11", "7L11", "7V", "6L11", "5L11", "4L11", "3L18"], + beatup: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], bodyslam: ["3T"], - bounce: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bounce: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], - covet: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["6M", "5M", "4M", "3M"], - doubleedge: ["3T"], - doublehit: ["7L32", "6L32", "5L32", "4L32"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], + doublehit: ["9L32", "7L32", "6L32", "5L32", "4L32"], doubleslap: ["7E", "7V", "6E", "5E", "4E", "3E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], dynamicpunch: ["7V", "3T"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - fakeout: ["7E", "6E", "5E", "5D", "4E"], - firepunch: ["7T", "7V", "6T", "5T", "5D", "4T", "3T"], - fling: ["7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], - focuspunch: ["7T", "6T", "4M", "3M"], - foulplay: ["7T", "6T", "5T"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "7E", "6E", "5E", "5D", "4E"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + fling: ["9M", "9L36", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - furyswipes: ["7L18", "7V", "6L18", "5L18", "4L18", "3L31"], - grassknot: ["7M", "6M", "5M", "4M"], - gunkshot: ["7T", "6T", "5T", "4T"], + furyswipes: ["9L18", "7L18", "7V", "6L18", "5L18", "4L18", "3L31"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["7V", "4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - lastresort: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], - lowkick: ["7T", "6T", "5T", "4T"], - lowsweep: ["7M", "6M", "5M"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["9E", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["9L43", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], megakick: ["3T"], megapunch: ["3T"], - metronome: ["3T"], + metronome: ["9M", "3T"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], - nastyplot: ["7L39", "6L39", "5L39", "4L39"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], naturalgift: ["4M"], nightmare: ["7V", "3T"], payback: ["7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], - quickguard: ["7E", "6E"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + quickguard: ["9E", "7E", "6E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], revenge: ["7E", "6E", "5E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["7M", "6M", "5M"], - sandattack: ["7L4", "7V", "6L4", "5L4", "4L4", "3L6", "3S0"], - scratch: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], - screech: ["7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L43", "3E"], + sandattack: ["9L4", "7L4", "7V", "6L4", "5L4", "4L4", "3L6", "3S0"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + screech: ["9L25", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L43", "3E"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["7T", "6T", "5T", "4T"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], seismictoss: ["3T"], - shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], - shadowclaw: ["7M", "6M", "5M", "4M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - slam: ["7E", "7V", "6E", "5E", "4E", "3E"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + slam: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], - spite: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["7L22", "7V", "6L22", "5L22", "4T", "4L22", "3T", "3L38"], - switcheroo: ["7E", "6E", "5E"], + swift: ["9M", "9L22", "7L22", "7V", "6L22", "5L22", "4T", "4L22", "3T", "3L38"], + switcheroo: ["9E", "7E", "6E", "5E"], tailslap: ["7E"], - tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - taunt: ["7M", "6M", "5M", "4M", "3M"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "6M", "5M", "4M", "3T"], - tickle: ["7L15", "6L15", "5L15", "4L15", "3L25"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["9L15", "7L15", "6L15", "5L15", "4L15", "3L25"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["7T", "6T", "5T", "4T"], - uturn: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M", "3M"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], workup: ["7M", "5M"], zapcannon: ["7V"], }, @@ -25912,89 +27003,102 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ambipom: { learnset: { - acrobatics: ["7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M", "4M"], - agility: ["7L29", "6L29", "5L29", "4L29"], - astonish: ["7L1", "6L1", "5L1", "4L1"], + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M", "9L29", "7L29", "6L29", "5L29", "4L29"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1"], attract: ["7M", "6M", "5M", "4M"], - batonpass: ["7L11", "6L11", "5L11", "4L11"], + batonpass: ["9M", "9L11", "7L11", "6L11", "5L11", "4L11"], bounce: ["7T", "6T", "5T", "4T"], - brickbreak: ["7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M"], - dig: ["6M", "5M", "4M"], - doublehit: ["7L32", "6L32", "5L32", "4L32"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M"], + doublehit: ["9L32", "7L32", "6L32", "5L32", "4L32"], doubleteam: ["7M", "6M", "5M", "4M"], dreameater: ["7M", "6M", "5M", "4M"], dualchop: ["7L1"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - firepunch: ["7T", "6T", "5T", "4T"], - fling: ["7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], - focuspunch: ["7T", "6T", "4M"], - foulplay: ["7T", "6T", "5T"], + endeavor: ["9M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "7T", "6T", "5T", "4T"], + fling: ["9M", "9L36", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + focuspunch: ["9M", "7T", "6T", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], - furyswipes: ["7L18", "6L18", "5L18", "4L18"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], - gunkshot: ["7T", "6T", "5T", "4T"], + furyswipes: ["9L18", "7L18", "6L18", "5L18", "4L18"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], honeclaws: ["6M", "5M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - icepunch: ["7T", "6T", "5T", "4T"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], irontail: ["7T", "6T", "5T", "4M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - lastresort: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], - lowkick: ["7T", "6T", "5T", "4T"], - lowsweep: ["7M", "6M", "5M"], - mudslap: ["4T"], - nastyplot: ["7L39", "6L39", "5L39", "4L39"], + lastresort: ["9L43", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], naturalgift: ["4M"], payback: ["7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["7M", "6M", "5M"], - sandattack: ["7L1", "6L1", "5L1", "4L1"], - scratch: ["7L1", "6L1", "5L1", "4L1"], - screech: ["7L25", "6L25", "5L25", "4L25"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L25", "7L25", "6L25", "5L25", "4L25"], secretpower: ["6M", "4M"], - seedbomb: ["7T", "6T", "5T", "4T"], - shadowball: ["7M", "6M", "5M", "4M"], - shadowclaw: ["7M", "6M", "5M", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - solarbeam: ["7M", "6M", "5M", "4M"], - spite: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["7L22", "6L22", "5L22", "4T", "4L22"], - tailwhip: ["7L1", "6L1", "5L1", "4L1"], - taunt: ["7M", "6M", "5M", "4M"], - thief: ["7M", "6M", "5M", "4M"], - thunder: ["7M", "6M", "5M", "4M"], - thunderbolt: ["7M", "6M", "5M", "4M"], - thunderpunch: ["7T", "6T", "5T", "4T"], - thunderwave: ["7M", "6M", "5M", "4M"], - tickle: ["7L15", "6L15", "5L15", "4L15"], + swift: ["9M", "9L22", "7L22", "6L22", "5L22", "4T", "4L22"], + tailwhip: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + throatchop: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + tickle: ["9L15", "7L15", "6L15", "5L15", "4L15"], toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + tripleaxel: ["9M"], + upperhand: ["9M"], uproar: ["7T", "6T", "5T", "4T"], - uturn: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], workup: ["7M", "5M"], }, }, @@ -26007,28 +27111,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["9M", "4M", "3M"], captivate: ["4M"], confide: ["7M", "6M"], - curse: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], cut: ["7V", "6M", "5M", "4M", "3M"], - doubleedge: ["9L34", "7L37", "6L37", "5L37", "3T"], + doubleedge: ["9M", "9L34", "7L37", "6L37", "5L37", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthpower: ["9M", "7T", "6T", "5T", "5D", "4T"], encore: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], - endeavor: ["9L25", "7T", "7L25", "6T", "6L25", "5T", "5L21", "4T", "4L21", "3L25"], + endeavor: ["9M", "9L25", "7T", "7L25", "6T", "6L25", "5T", "5L21", "4T", "4L21", "3L25"], endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigadrain: ["9M", "9L22", "7T", "7L22", "7V", "6T", "6L22", "5T", "5L41", "4M", "4L41", "3M", "3L42"], + gigadrain: ["9M", "9L22", "7T", "7L22", "7V", "6T", "6L22", "5T", "5L22", "4M", "4L41", "3M", "3L42"], grassknot: ["9M", "7M", "6M", "5M", "4M"], - grasswhistle: ["7L7", "7E", "6L7", "6E", "5L13", "5E", "4L13", "4E", "3E"], + grasswhistle: ["7L7", "7E", "6L7", "6E", "5L7", "5E", "4L13", "4E", "3E"], grassyterrain: ["9M", "9E", "7E", "6E"], growth: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L6", "3S0"], helpinghand: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - ingrain: ["9E", "7L4", "7E", "6L4", "6E", "5L9", "5E", "4L9", "4E", "3L18"], + ingrain: ["9E", "7L4", "7E", "6L4", "6E", "5L4", "5E", "4L9", "4E", "3L18"], leafstorm: ["9M"], - leechseed: ["9E", "7L13", "7E", "6L13", "6E", "5L17", "5E", "4L17", "4E", "3E"], + leechseed: ["9E", "7L13", "7E", "6L13", "6E", "5L13", "5E", "4L17", "4E", "3E"], lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], magicalleaf: ["9M"], megadrain: ["9L10", "7L10", "7V", "6L10", "5L5", "5D", "4L5", "3L13"], @@ -26038,13 +27142,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], raindance: ["9M"], - razorleaf: ["9L16", "7L16", "6L16", "5L29", "4L29"], + razorleaf: ["9L16", "7L16", "6L16", "5L16", "4L29"], rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["9M", "9L39", "7T", "7L43", "6T", "6L43", "5T", "5L45", "4T", "4L45"], + seedbomb: ["9M", "9L39", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L45"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], @@ -26054,14 +27158,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], sweetscent: ["7E", "7V", "6E", "5E", "5D", "4E"], swordsdance: ["7M", "6M", "5M", "4M", "3T"], - synthesis: ["9L28", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L33", "4T", "4L33", "3L37"], + synthesis: ["9L28", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L28", "4T", "4L33", "3L37"], tackle: ["9L1"], takedown: ["9M"], terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], uproar: ["7T", "6T", "5T", "4T"], - worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25"], + weatherball: ["9M"], + worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L25"], }, eventData: [ {generation: 3, level: 10, gender: "M", abilities: ["chlorophyll"], moves: ["absorb", "growth"], pokeball: "pokeball"}, @@ -26075,14 +27180,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["9M", "9L25", "7L25", "6L25", "5L21", "4M", "4L21", "3M", "3L25"], captivate: ["4M"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], dazzlinggleam: ["9M"], - doubleedge: ["9L34", "7L37", "6L37", "5L37", "3T"], + doubleedge: ["9M", "9L34", "7L37", "6L37", "5L37", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthpower: ["9M", "7T", "6T", "5T", "4T"], encore: ["9M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "7V", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -26092,27 +27197,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L22", "7T", "7L22", "7V", "6T", "6L22", "5T", "5L22", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], - grasswhistle: ["7L7", "6L7", "5L13", "4L13"], + grasswhistle: ["7L7", "6L7", "5L7", "4L13"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L6"], helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - ingrain: ["9L4", "7L4", "6L4", "5L9", "4L9", "3L18"], - leafstorm: ["9M", "9L43", "7L43", "6L43", "5L45", "4L43"], - leechseed: ["9L13", "7L13", "6L13", "5L17", "4L17"], + ingrain: ["9L4", "7L4", "6L4", "5L4", "4L9", "3L18"], + leafstorm: ["9M", "9L43", "7L43", "6L43", "5L43", "4L43"], + leechseed: ["9L13", "7L13", "6L13", "5L13", "4L17"], lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], magicalleaf: ["9M"], megadrain: ["9L10", "7L10", "6L10", "5L5", "4L5"], mimic: ["3T"], naturalgift: ["7L31", "6L31", "5L31", "4M"], naturepower: ["7M", "6M"], - petalblizzard: ["9L50", "7L50", "6L50"], - petaldance: ["9L28", "7L28", "7V", "6L28", "5L33", "4L33", "3L37"], + petalblizzard: ["9M", "9L50", "7L50", "6L50"], + petaldance: ["9L28", "7L28", "7V", "6L28", "5L28", "4L33", "3L37"], pound: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], raindance: ["9M"], - razorleaf: ["9L16", "7L16", "7V", "6L16", "5L29", "4L29", "3L13"], + razorleaf: ["9L16", "7L16", "7V", "6L16", "5L16", "4L29", "3L13"], rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], @@ -26122,7 +27228,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["9M", "9L31", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L41", "4M", "4L41", "3M", "3L42"], + solarbeam: ["9M", "9L31", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L41", "3M", "3L42"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "9L39", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L37", "4M", "4L37", "3M", "3L30"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], @@ -26135,141 +27241,164 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], uproar: ["7T", "6T", "5T", "4T"], - worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25"], + weatherball: ["9M"], + worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L25"], }, }, yanma: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - aircutter: ["4T"], - airslash: ["7L54", "6L54", "5L54", "4L54"], - ancientpower: ["7L33", "6L33", "5L33", "4T", "4L33"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "9L14", "4T"], + airslash: ["9M", "9L54", "7L54", "6L54", "5L54", "4L54"], + ancientpower: ["9L33", "7L33", "6L33", "5L33", "4T", "4L33"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bugbite: ["7T", "6T", "5T", "4T"], - bugbuzz: ["7L57", "6L57", "5L57", "4L57"], + bugbite: ["9M", "9L30", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L57", "7L57", "6L57", "5L57", "4L57"], captivate: ["4M"], confide: ["7M", "6M"], curse: ["7V"], defog: ["7T", "4M"], - detect: ["7L17", "7V", "6L17", "5L17", "4L17", "3L25"], - doubleedge: ["7E", "6E", "5E", "3T"], - doubleteam: ["7M", "7L11", "7V", "6M", "6L11", "5M", "5L11", "4M", "4L11", "3M", "3L12"], + detect: ["9L17", "7L17", "7V", "6L17", "5L17", "4L17", "3L25"], + doubleedge: ["9M", "9E", "7E", "6E", "5E", "3T"], + doubleteam: ["9L11", "7M", "7L11", "7V", "6M", "6L11", "5M", "5L11", "4M", "4L11", "3M", "3L12"], dreameater: ["7M", "6M", "5M", "4M", "3T"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - feint: ["7E", "6E", "5E", "5D", "4E"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9E", "7E", "6E", "5E", "5D", "4E"], feintattack: ["7E", "6E", "5E", "4E"], flash: ["7V", "6M", "5M", "4M", "3M"], foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigadrain: ["7T", "7V", "6T", "5T", "5D", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], headbutt: ["7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hypnosis: ["7L38", "6L38", "5L38", "4L38", "3L23"], - leechlife: ["7E", "7V", "6E", "5E", "4E", "3E"], + hypnosis: ["9L38", "7L38", "6L38", "5L38", "4L38", "3L23"], + leechlife: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + lunge: ["9M"], mimic: ["3T"], naturalgift: ["4M"], ominouswind: ["4T"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["7M", "6M", "5M", "4M", "3M"], + pounce: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicnoise: ["9M"], + psychup: ["9M"], pursuit: ["7L30", "7E", "6L30", "6E", "5L30", "5E", "4L30", "4E"], - quickattack: ["7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L6"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L6", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L6"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - reversal: ["7E", "7V", "6E", "5E", "4E", "3E"], + reversal: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], roost: ["7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], - screech: ["7L46", "7V", "6L46", "5L46", "4L46", "3L49"], + screech: ["9L46", "7L46", "7V", "6L46", "5L46", "4L46", "3L49"], secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], - shadowball: ["7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + skittersmack: ["9M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], sonicboom: ["7L14", "7V", "6L14", "5L14", "4L14", "3L17"], steelwing: ["7M", "6M", "4M", "3M"], stringshot: ["4T"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], - supersonic: ["7L22", "7V", "6L22", "5L22", "4L22", "3L31"], + strugglebug: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9L22", "7L22", "7V", "6L22", "5L22", "4L22", "3L31"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["7V", "4T", "3T"], - tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - tailwind: ["7T", "6T", "5T", "4T"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - uproar: ["7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27", "3L34"], - uturn: ["7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L49"], - whirlwind: ["7E", "7V", "6E", "5E", "4E", "3E"], - wingattack: ["7L43", "7V", "6L43", "5L43", "4L43", "3L39"], + uproar: ["9M", "9L27", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27", "3L34"], + uturn: ["9M", "9L49", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L49"], + whirlwind: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["9L43", "7L43", "7V", "6L43", "5L43", "4L43", "3L39"], }, }, yanmega: { learnset: { - aerialace: ["7M", "6M", "5M", "4M"], - aircutter: ["4T"], - airslash: ["7L1", "6L1", "5L54", "4L49"], - ancientpower: ["7L33", "6L33", "5L33", "4T", "4L33"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L1", "7L1", "6L1", "5L54", "4L49"], + ancientpower: ["9L33", "7L33", "6L33", "5L33", "4T", "4L33"], attract: ["7M", "6M", "5M", "4M"], - bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - bugbuzz: ["7L1", "6L1", "5L57", "4L54"], + bugbite: ["9M", "9L30", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["9M", "9L1", "7L1", "6L1", "5L57", "4L54"], captivate: ["4M"], confide: ["7M", "6M"], + crunch: ["9M"], defog: ["7T", "4M"], - detect: ["7L17", "6L17", "5L17", "4L17"], - doubleteam: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + detect: ["9L17", "7L17", "6L17", "5L17", "4L17"], + doubleedge: ["9M"], + doubleteam: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], dreameater: ["7M", "6M", "5M", "4M"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - feint: ["7L38", "6L38", "5L38", "4L38"], + dualwingbeat: ["9M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + feint: ["9L38", "7L38", "6L38", "5L38", "4L38"], flash: ["6M", "5M", "4M"], foresight: ["7L1", "6L1", "5L1", "4L1"], frustration: ["7M", "6M", "5M", "4M"], - gigadrain: ["7T", "6T", "5T", "4M"], - gigaimpact: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypnosis: ["9L1"], laserfocus: ["7T"], - leechlife: ["7M"], + leechlife: ["9M", "7M"], + lunge: ["9M"], mudslap: ["4T"], naturalgift: ["4M"], - nightslash: ["7L1", "6L1", "5L1", "4L1"], + nightslash: ["9L1", "7L1", "6L1", "5L1", "4L1"], ominouswind: ["4T"], - protect: ["7M", "6M", "5M", "4M"], - psychic: ["7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], pursuit: ["7L30", "6L30", "5L30", "4L30"], - quickattack: ["7L1", "6L1", "5L1", "4L1"], - rest: ["7M", "6M", "5M", "4M"], + quickattack: ["9L14", "7L1", "6L1", "5L1", "4L1"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], roost: ["7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], - screech: ["7L46", "6L46", "5L46", "4L43"], + scaryface: ["9M"], + screech: ["9L46", "7L46", "6L46", "5L46", "4L43"], secretpower: ["6M", "4M"], - shadowball: ["7M", "6M", "5M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], silverwind: ["4M"], - slash: ["7L43", "6L43", "5L43", "4L38"], - sleeptalk: ["7M", "6M", "5T", "4M"], + skittersmack: ["9M"], + slash: ["9L43", "7L43", "6L43", "5L43", "4L38"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - solarbeam: ["7M", "6M", "5M", "4M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], sonicboom: ["7L14", "6L14", "5L14", "4L14"], steelwing: ["7M", "6M", "4M"], stringshot: ["4T"], - strugglebug: ["6M", "5M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], - supersonic: ["7L22", "6L22", "5L22", "4L22"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9L22", "7L22", "6L22", "5L22", "4L22"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], - tackle: ["7L1", "6L1", "5L1", "4L1"], - tailwind: ["7T", "6T", "5T", "4T"], - thief: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], - uturn: ["7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L46"], + uproar: ["9M", "9L27", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + uturn: ["9M", "9L49", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L46"], }, }, wooper: { @@ -26288,11 +27417,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["9E", "8E", "7E", "6E", "5E", "4E"], - curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], defensecurl: ["7V", "3T"], dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doublekick: ["9E", "8E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], @@ -26306,7 +27435,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], guardswap: ["8M", "7E", "6E"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["9L12", "8L12", "7L43", "7V", "6L43", "5L43", "4L43", "3L51"], + haze: ["9M", "9L12", "8L12", "7L43", "7V", "6L43", "5L43", "4L43", "3L51"], headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -26320,7 +27449,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mimic: ["3T"], mist: ["9L12", "8L12", "7L43", "7V", "6L43", "5L43", "4L43", "3L51"], mudbomb: ["7L19", "6L19", "5L19", "4L19"], - muddywater: ["9L28", "8M", "8L28", "7L47", "6L47", "5L47", "4L47"], + muddywater: ["9M", "9L28", "8M", "8L28", "7L47", "6L47", "5L47", "4L47"], mudshot: ["9M", "9L8", "8M", "8L8", "7L9", "6L9", "5L9", "4L9", "3L16"], mudslap: ["9M", "7V", "4T", "3T"], mudsport: ["7L5", "7E", "6L5", "6E", "5L5", "5E", "4L5", "4E", "3E"], @@ -26343,7 +27472,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slam: ["9L16", "8L16", "7L15", "7V", "6L15", "5L15", "4L15", "3L11"], sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], snowscape: ["9M"], spikes: ["9M"], @@ -26359,12 +27488,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], takedown: ["9M"], terablast: ["9M"], - toxic: ["9L36", "8L36", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L36", "8L36", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - whirlpool: ["8M", "7V", "4M"], + whirlpool: ["9M", "8M", "7V", "4M"], yawn: ["9L21", "8L21", "7L29", "6L29", "5L29", "4L29", "3L31"], }, encounters: [ @@ -26382,15 +27511,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M"], chillingwater: ["9M"], counter: ["9E"], - curse: ["9E"], + curse: ["9M", "9E"], dig: ["9M"], + doubleedge: ["9M"], doublekick: ["9E"], earthpower: ["9M"], earthquake: ["9M", "9L40"], endure: ["9M"], facade: ["9M"], gunkshot: ["9M"], - haze: ["9E"], + haze: ["9M", "9E"], helpinghand: ["9M"], hydropump: ["9M"], liquidation: ["9M"], @@ -26410,7 +27540,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slam: ["9L16"], sleeptalk: ["9M"], sludgebomb: ["9M"], - sludgewave: ["9L28"], + sludgewave: ["9M", "9L28"], spikes: ["9M"], spitup: ["9E"], stealthrock: ["9M"], @@ -26424,7 +27554,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwhip: ["9L1"], takedown: ["9M"], terablast: ["9M"], - toxic: ["9L36"], + toxic: ["9M", "9L36"], toxicspikes: ["9M", "9L12"], trailblaze: ["9M"], venoshock: ["9M"], @@ -26451,11 +27581,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["7V"], + curse: ["9M", "7V"], defensecurl: ["7V", "3T"], dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dynamicpunch: ["7V", "3T"], @@ -26468,16 +27598,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], guardswap: ["8M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["9L12", "8L12", "7L48", "7V", "6L48", "5L48", "4L48", "3L61"], + haze: ["9M", "9L12", "8L12", "7L48", "7V", "6L48", "5L48", "4L48", "3L61"], headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -26491,7 +27621,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mimic: ["3T"], mist: ["9L12", "8L12", "7L48", "7V", "6L48", "5L48", "4L48", "3L61"], mudbomb: ["7L19", "6L19", "5L19", "4L19"], - muddywater: ["9L34", "8M", "8L34", "7L53", "6L53", "5L53", "4L53"], + muddywater: ["9M", "9L34", "8M", "8L34", "7L53", "6L53", "5L53", "4L53"], mudshot: ["9M", "9L1", "8M", "8L1", "7L9", "6L9", "5L9", "4L9", "3L16"], mudslap: ["9M", "7V", "4T", "3T"], mudsport: ["7L1", "6L1", "5L1", "4L1"], @@ -26514,7 +27644,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slam: ["9L16", "8L16", "7L15", "7V", "6L15", "5L15", "4L15", "3L11"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], snowscape: ["9M"], spikes: ["9M"], @@ -26529,13 +27659,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M"], - toxic: ["9L46", "8L46", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L46", "8L46", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M"], trailblaze: ["9M"], waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - whirlpool: ["8M", "7V", "4M"], + whirlpool: ["9M", "8M", "7V", "4M"], yawn: ["9L23", "8L23", "7L31", "6L31", "5L31", "4L31", "3L35"], }, encounters: [ @@ -26551,21 +27681,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], bulldoze: ["9M"], chillingwater: ["9M"], + curse: ["9M"], dig: ["9M"], + doubleedge: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L48"], endure: ["9M"], facade: ["9M"], gigaimpact: ["9M"], gunkshot: ["9M"], + haze: ["9M"], heavyslam: ["9M"], helpinghand: ["9M"], + highhorsepower: ["9M"], hydropump: ["9M"], hyperbeam: ["9M"], ironhead: ["9M"], liquidation: ["9M"], lowkick: ["9M"], megahorn: ["9L36"], + muddywater: ["9M"], mudshot: ["9M", "9L8"], mudslap: ["9M"], poisonjab: ["9M", "9L24"], @@ -26580,7 +27715,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slam: ["9L16"], sleeptalk: ["9M"], sludgebomb: ["9M"], - sludgewave: ["9L30"], + sludgewave: ["9M", "9L30"], spikes: ["9M"], stealthrock: ["9M"], stompingtantrum: ["9M"], @@ -26590,7 +27725,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwhip: ["9L1"], takedown: ["9M"], terablast: ["9M"], - toxic: ["9L40"], + toxic: ["9M", "9L40"], toxicspikes: ["9M", "9L4"], trailblaze: ["9M"], venoshock: ["9M"], @@ -26618,14 +27753,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkpulse: ["9M", "7M", "6M", "5T", "4M"], defog: ["7T", "4M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], drillpeck: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + dualwingbeat: ["9M"], embargo: ["7M", "6M", "5M", "4M"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], - featherdance: ["9E", "7E", "6E", "5E", "4E", "3E"], + featherdance: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], feintattack: ["7L35", "7E", "7V", "6L35", "6E", "5L35", "5E", "4L35", "4E", "3L35"], flatter: ["9E", "7E", "6E"], fly: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -26633,13 +27769,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M"], gust: ["9L5"], - haze: ["9L11", "7L11", "7V", "6L11", "5L11", "4L11", "3L22"], + haze: ["9M", "9L11", "7L11", "7V", "6L11", "5L11", "4L11", "3L22"], heatwave: ["9M", "7T", "6T", "5T", "4T"], hex: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hurricane: ["9M"], hyperbeam: ["9M"], icywind: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + lashout: ["9M"], meanlook: ["9L35", "7L41", "7V", "6L41", "5L41", "4L41", "3L48"], mimic: ["3T"], mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], @@ -26655,6 +27792,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pluck: ["5M", "4M"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["9M", "7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], psychoshift: ["7E", "6E", "5E", "4E"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], pursuit: ["7L5", "7V", "6L5", "5L5", "4L5", "3L14"], @@ -26675,7 +27813,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "7V", "6T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], steelwing: ["7M", "7V", "6M", "4M", "3M"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["9L50", "7L55", "6L55", "5L55", "4T", "4L45"], @@ -26691,7 +27829,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { torment: ["9L55", "7M", "7L61", "6M", "6L61", "5M", "5L61", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], twister: ["4T"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], uturn: ["9M"], whirlwind: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], wingattack: ["9L15", "7L15", "7E", "7V", "6L15", "6E", "5L15", "5E", "4L15", "4E", "3E"], @@ -26717,16 +27855,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9M"], darkpulse: ["9M", "9L55", "7M", "7L75", "6M", "6L75", "5T", "5L75", "4M", "4L55"], defog: ["7T", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], dreameater: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M"], embargo: ["7M", "6M", "5M", "4M"], + endeavor: ["9M"], endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["9M"], fly: ["9M", "7M", "6M", "5M", "4M"], foulplay: ["9M", "9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], - haze: ["9L1", "7L1", "6L1", "5L1", "4L1"], + haze: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], heatwave: ["9M", "7T", "7S0", "6T", "5T", "4T"], helpinghand: ["9M"], hex: ["9M"], @@ -26735,6 +27877,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "7M", "6M", "5M", "4M"], icywind: ["9M", "7T", "7S0", "6T", "5T"], incinerate: ["6M", "5M"], + lashout: ["9M"], mudslap: ["9M", "4T"], nastyplot: ["9M", "9L35", "7L35", "6L35", "5L35", "4L35"], naturalgift: ["4M"], @@ -26745,7 +27888,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pluck: ["5M", "4M"], protect: ["9M", "7M", "6M", "5M", "4M"], psychic: ["9M", "7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], pursuit: ["7L1", "6L1", "5L1", "4L1"], quash: ["9L1", "7M", "7L65", "6M", "6L65", "5M", "5L65"], raindance: ["9M", "7M", "6M", "5M", "4M"], @@ -26762,7 +27906,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["7T", "6T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], steelwing: ["7M", "6M", "4M"], substitute: ["9M", "7M", "6M", "5M", "4M"], suckerpunch: ["9L1", "7L1", "6L1", "4T"], @@ -26779,7 +27923,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], twister: ["4T"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], uturn: ["9M"], wingattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], }, @@ -26793,6 +27937,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["7T"], astonish: ["9L10", "7L10", "6L10", "5L10", "4L10", "3L11"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + burningjealousy: ["9M"], calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], @@ -26800,7 +27945,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confuseray: ["9M", "9L14", "7L14", "7V", "6L14", "5L14", "4L14", "3L17"], confusion: ["9L1"], - curse: ["9E", "7E", "7V", "6E", "5E", "4E"], + curse: ["9M", "9E", "7E", "7V", "6E", "5E", "4E"], darkpulse: ["9M", "7M", "6M", "5T", "4M"], dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["7V", "3T"], @@ -26818,6 +27963,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7V", "6M", "5M", "4M", "3M"], foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], @@ -26844,15 +27990,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["7V", "3T"], nightshade: ["9M"], ominouswind: ["7E", "6E", "5E", "4T", "4E"], - painsplit: ["9L32", "7T", "7L32", "7V", "6T", "6L32", "5T", "5L32", "4T", "4L28", "3L37"], + painsplit: ["9M", "9L32", "7T", "7L32", "7V", "6T", "6L32", "5T", "5L32", "4T", "4L28", "3L37"], payback: ["9L37", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L32"], perishsong: ["9L46", "7L46", "7V", "6L46", "5L46", "4L41", "3L45"], phantomforce: ["9M"], + poltergeist: ["9M"], powergem: ["9M", "9L50", "7L55", "6L55", "5L55", "4L50"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L28", "7L28", "7V", "6L28", "5L28", "4L23", "3L30"], psychic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], psyshock: ["9M"], psywave: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -26870,7 +28018,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], snowscape: ["9M"], - spite: ["9E", "7T", "7L5", "7E", "7V", "6T", "6L5", "6E", "5T", "5L5", "5E", "4T", "4L5", "4E", "3L6", "3S0"], + spite: ["9M", "9E", "7T", "7L5", "7E", "7V", "6T", "6L5", "6E", "5T", "5L5", "5E", "4T", "4L5", "4E", "3L6", "3S0"], storedpower: ["9M"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["9E", "7E", "6E", "5E", "4T", "4E"], @@ -26903,12 +28051,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["7T"], astonish: ["9L1", "7L1", "6L1", "5L1", "4L1"], attract: ["7M", "6M", "5M", "4M"], + burningjealousy: ["9M"], calmmind: ["9M", "7M", "6M", "5M", "4M"], captivate: ["4M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], charm: ["9M"], confide: ["7M", "6M"], confuseray: ["9M"], + curse: ["9M"], darkpulse: ["9M", "7M", "6M", "5T", "4M"], dazzlinggleam: ["9M", "7M", "6M"], doubleteam: ["7M", "6M", "5M", "4M"], @@ -26923,6 +28073,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M"], foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], grassknot: ["9M"], growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], @@ -26936,6 +28087,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "7T", "6T", "5T", "4T"], imprison: ["9M"], laserfocus: ["7T"], + lashout: ["9M"], luckychant: ["7L1", "6L1", "5L1", "4L1"], magicalleaf: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], magiccoat: ["7T", "6T", "5T", "4T"], @@ -26945,14 +28097,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nightshade: ["9M"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["7M", "6M", "5M", "4M"], phantomforce: ["9M", "9L1", "7L1", "6L1"], + poltergeist: ["9M"], powergem: ["9M", "9L1", "7L1", "6L1"], protect: ["9M", "7M", "6M", "5M", "4M"], psybeam: ["9M"], psychic: ["9M", "7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M"], psywave: ["7L1", "6L1", "5L1", "4L1"], raindance: ["9M", "7M", "6M", "5M", "4M"], @@ -26968,7 +28122,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snatch: ["7T", "6T", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], snowscape: ["9M"], - spite: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + spite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], storedpower: ["9M"], substitute: ["9M", "7M", "6M", "5M", "4M"], suckerpunch: ["4T"], @@ -27015,7 +28169,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tickle: ["3S0"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["splash", "charm", "encore", "tickle"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["splash", "charm", "encore", "tickle"], pokeball: "pokeball", emeraldEventEgg: true}, ], }, wobbuffet: { @@ -27061,29 +28215,32 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L37", "7L37", "7V", "6L37", "5L46", "4L46", "3L49"], curse: ["7V"], dazzlinggleam: ["9M", "7M", "6M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doublehit: ["9L28", "7L28", "6L28", "5L32", "4L32"], doublekick: ["9E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + futuresight: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], gigaimpact: ["9M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], guardswap: ["9L1", "7L1", "6L1", "5L1", "4L1"], headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M", "7T", "6T", "5T"], imprison: ["9M"], @@ -27104,8 +28261,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M", "9L19", "7L19", "7V", "6L19", "5L19", "4L19", "3L43"], psychic: ["9M", "9L50", "7M", "7L50", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M"], psychicfangs: ["9M", "7E"], + psychicnoise: ["9M"], psychicterrain: ["9M", "7E"], - psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], psyshock: ["9M", "7M", "6M", "5M"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], razorwind: ["7E", "6E", "5E", "4E"], @@ -27145,7 +28303,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trick: ["9M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "7M", "6M", "5M", "4M"], twinbeam: ["9L32"], - uproar: ["9E", "7T", "6T", "5T", "4T"], + uproar: ["9M", "9E", "7T", "6T", "5T", "4T"], wish: ["9E", "7E", "6E", "5E", "4E", "3E"], workup: ["7M", "5M"], zapcannon: ["7V"], @@ -27157,16 +28315,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], bide: ["7L20", "7V", "6L20", "5L20", "4L17", "3L29"], bodyslam: ["9M", "3T"], - bugbite: ["9L9", "7T", "7L9", "6T", "6L9", "5T", "5L9", "4T", "4L9"], + bugbite: ["9M", "9L9", "7T", "7L9", "6T", "6L9", "5T", "5L9", "4T", "4L9"], bugbuzz: ["9M"], bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E", "3S1"], - curse: ["9L23", "7V"], + curse: ["9M", "9L23", "7V"], defensecurl: ["7V", "3T"], dig: ["9M", "6M", "5M", "4M", "3M"], - doubleedge: ["9L45", "7L45", "7E", "7V", "6L45", "6E", "5L45", "5E", "4L42", "4E", "3T", "3L50"], + doubleedge: ["9M", "9L45", "7L45", "7E", "7V", "6L45", "6E", "5L45", "5E", "4L42", "4E", "3T", "3L50"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drillrun: ["9M", "7T", "6T", "5T"], earthquake: ["7M", "6M", "5M", "4M", "3M"], @@ -27176,17 +28334,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flail: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], - gravity: ["7T", "6T", "5T", "5D", "4T"], - gyroball: ["9L42", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L39"], + gravity: ["9M", "7T", "6T", "5T", "5D", "4T"], + gyroball: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L39"], headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], icespinner: ["9M"], irondefense: ["9M", "9L39", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L34"], lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lunge: ["9M"], mimic: ["3T"], naturalgift: ["7L23", "6L23", "5L23", "4M", "4L20"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L28"], pinmissile: ["9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], poisonjab: ["9M"], @@ -27208,7 +28367,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rollout: ["9L20", "7V", "4T", "3T"], round: ["7M", "6M", "5M"], sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], - sandtomb: ["9E", "7E", "6E", "5E", "4E", "3E"], + sandtomb: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], secretpower: ["6M", "4M", "3M"], seedbomb: ["9M"], selfdestruct: ["9L6", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3T", "3L8", "3S0"], @@ -27246,16 +28405,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["7T", "6T", "5T", "4T"], bodypress: ["9M"], bodyslam: ["9M", "3T"], - bugbite: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], bugbuzz: ["9M"], bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["9L23", "7V"], + curse: ["9M", "9L23", "7V"], defensecurl: ["7V", "3T"], dig: ["9M", "6M", "5M", "4M", "3M"], - doubleedge: ["9L50", "7L50", "7V", "6L56", "5L56", "4L50", "3T", "3L59"], + doubleedge: ["9M", "9L50", "7L50", "7V", "6L56", "5L56", "4L50", "3T", "3L59"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drillrun: ["9M", "7T", "6T", "5T"], earthpower: ["9M"], @@ -27267,8 +28426,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["9L46", "7M", "7L46", "6M", "6L50", "5M", "5L50", "4M", "4L45"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L46", "7M", "7L46", "6M", "6L50", "5M", "5L50", "4M", "4L45"], + hardpress: ["9M"], headbutt: ["7V", "4T"], heavyslam: ["9M", "9L0", "7L1", "6L1", "5L70"], helpinghand: ["9M"], @@ -27279,11 +28439,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ironhead: ["9M"], laserfocus: ["7T"], lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lunge: ["9M"], magnetrise: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L60", "4T", "4L57"], + metalsound: ["9M"], mimic: ["3T"], mirrorshot: ["7L1", "6L31", "5L31", "4L31"], naturalgift: ["7L23", "6L23", "5L23", "4M", "4L20"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["9L32", "7M", "7L32", "6M", "6L36", "5M", "5L36", "4M", "4L28"], poisonjab: ["9M"], pounce: ["9M"], @@ -27302,6 +28464,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rollout: ["9L20", "7V", "4T", "3T"], round: ["7M", "6M", "5M"], sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], secretpower: ["6M", "4M", "3M"], seedbomb: ["9M"], selfdestruct: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], @@ -27342,7 +28505,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M", "8M", "7E", "6E", "5E", "4E"], airslash: ["9M", "8M", "7L41"], amnesia: ["9M", "8M"], - ancientpower: ["9L20", "8L20", "7L16", "7E", "7V", "6L19", "6E", "5L48", "5E", "4T", "4L41", "4E", "3E"], + ancientpower: ["9L20", "8L20", "7L16", "7E", "7V", "6L19", "6E", "5L19", "5E", "4T", "4L41", "4E", "3E"], aquatail: ["9E", "8E", "7T", "6T", "5T", "4T"], astonish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -27352,18 +28515,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "8L32", "7L18", "3T"], + breakingswipe: ["9M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], chargebeam: ["7M", "6M", "5M", "4M"], chillingwater: ["9M"], - coil: ["9L44", "8L48", "7L28", "6L37", "5L43"], + coil: ["9L44", "8L48", "7L28", "6L37", "5L37"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], - defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L4", "5D", "4L5", "3T", "3L4"], - dig: ["9M", "8M", "7L31", "7V", "6M", "6L31", "5M", "5L53", "4M", "4L45", "3M"], - doubleedge: ["9L48", "8L52", "7L36", "6L34", "5L34", "3T"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L5", "3T", "3L4"], + dig: ["9M", "8M", "7L31", "7V", "6M", "6L31", "5M", "5L31", "4M", "4L45", "3M"], + doubleedge: ["9M", "9L48", "8L52", "7L36", "6L34", "5L34", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonrush: ["9L40", "8L44", "7L43"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], @@ -27371,16 +28535,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dualwingbeat: ["8T"], earthpower: ["9M"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - endeavor: ["9L52", "8L56", "7T", "7L38", "6T", "6L46", "5T", "5L58", "4T", "4L49", "3L41"], + endeavor: ["9M", "9L52", "8L56", "7T", "7L38", "6T", "6L46", "5T", "5L46", "4T", "4L49", "3L41"], endure: ["9M", "8M", "7L46", "7V", "6L40", "5L40", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - flail: ["9L1", "8L1", "7L48", "6L49", "5L63", "4L53", "3L44"], + flail: ["9L1", "8L1", "7L48", "6L49", "5L49", "4L53", "3L44"], flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M"], glare: ["9L12", "8L12", "7L33", "7V", "6L28", "5L12", "4L13", "3L14"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], helpinghand: ["9M", "8M"], hex: ["9M", "8M", "7E", "6E", "5E"], @@ -27393,19 +28557,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M", "5M"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], lastresort: ["9E", "8E", "7T", "6T", "5T", "4T"], + lunge: ["9M"], magiccoat: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], mimic: ["3T"], mudshot: ["9M"], mudslap: ["9M", "9L4", "8L4", "7L13", "7V", "4T", "3T"], naturalgift: ["4M"], nightmare: ["7V", "3T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], poisontail: ["9M"], pounce: ["9M"], protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - pursuit: ["7L8", "7V", "6L10", "5L24", "4L25", "3L24"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L8", "7V", "6L10", "5L10", "4L25", "3L24"], rage: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -27414,22 +28579,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockslide: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - rollout: ["9L8", "8L8", "7L3", "7V", "6L4", "5L16", "4T", "4L17", "3T", "3L21"], - roost: ["9L36", "8L40", "7M", "7L23", "6M", "6L25", "5T", "5L33", "4M", "4L33"], + rollout: ["9L8", "8L8", "7L3", "7V", "6L4", "5L4", "4T", "4L17", "3T", "3L21"], + roost: ["9L36", "8L40", "7M", "7L23", "6M", "6L25", "5T", "5L25", "4M", "4L33"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], - screech: ["9L16", "8M", "8L16", "7L11", "7V", "6L13", "5L28", "4L29", "3L31"], + screech: ["9L16", "8M", "8L16", "7L11", "7V", "6L13", "5L13", "4L29", "3L31"], secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], smartstrike: ["9M"], snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - spite: ["7T", "7L6", "7V", "6T", "6L7", "5T", "5L20", "4T", "4L21", "3L21"], + spite: ["9M", "7T", "7L6", "7V", "6T", "6L7", "5T", "5L7", "4T", "4L21", "3L21"], stealthrock: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], stompingtantrum: ["9M", "8M", "7T"], stoneedge: ["9M"], @@ -27438,15 +28603,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - takedown: ["9M", "8L36", "7L26", "7V", "6L22", "5L38", "4L37", "3L34"], + takedown: ["9M", "8L36", "7L26", "7V", "6L22", "5L22", "4L37", "3L34"], terablast: ["9M"], terrainpulse: ["8T"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], - toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], trumpcard: ["7E", "6E", "5E", "4E"], + uproar: ["9M"], waterpulse: ["7T", "6T", "4M", "3M"], wildcharge: ["9M", "8M", "7M", "6M", "5M"], yawn: ["9L28", "8L28", "7L13", "6L16", "5L8", "4L9", "3L11"], @@ -27465,19 +28631,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodypress: ["9M"], bodyslam: ["9M"], boomburst: ["9L62"], + breakingswipe: ["9M"], bulldoze: ["9M"], calmmind: ["9M"], chillingwater: ["9M"], coil: ["9L44"], + curse: ["9M"], defensecurl: ["9L1"], dig: ["9M"], - doubleedge: ["9L48"], + doubleedge: ["9M", "9L48"], dragonrush: ["9L40"], dragontail: ["9M"], drillrun: ["9M", "9L24"], + dualwingbeat: ["9M"], earthpower: ["9M"], earthquake: ["9M"], - endeavor: ["9L52"], + endeavor: ["9M", "9L52"], endure: ["9M"], facade: ["9M"], fireblast: ["9M"], @@ -27485,6 +28654,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M"], gigaimpact: ["9M"], glare: ["9L12"], + gyroball: ["9M"], heavyslam: ["9M"], helpinghand: ["9M"], hex: ["9M"], @@ -27494,13 +28664,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M"], icebeam: ["9M"], icespinner: ["9M"], + lunge: ["9M"], mudshot: ["9M"], mudslap: ["9M", "9L4"], outrage: ["9M"], + painsplit: ["9M"], poisonjab: ["9M"], poisontail: ["9M"], pounce: ["9M"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], rockslide: ["9M"], @@ -27508,12 +28681,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rollout: ["9L8"], roost: ["9L36"], sandstorm: ["9M"], + scaleshot: ["9M"], scaryface: ["9M"], screech: ["9L16"], shadowball: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M"], smartstrike: ["9M"], solarbeam: ["9M"], + spite: ["9M"], stealthrock: ["9M"], stompingtantrum: ["9M"], stoneedge: ["9M"], @@ -27524,8 +28700,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunder: ["9M"], thunderbolt: ["9M"], + toxic: ["9M"], + uproar: ["9M"], wildcharge: ["9M"], yawn: ["9L28"], zenheadbutt: ["9M"], @@ -27533,97 +28712,117 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, gligar: { learnset: { - acrobatics: ["7M", "7L22", "6M", "6L22", "5M", "5L27"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["7E", "6E", "5E", "4E"], + acrobatics: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "7E", "6E", "5E", "4E"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - batonpass: ["7E", "6E", "5E", "4E"], - brickbreak: ["7M", "6M", "5M", "4M"], + batonpass: ["9M", "7E", "6E", "5E", "4E"], + breakingswipe: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], bugbite: ["7T", "6T", "5T"], - bulldoze: ["7M", "6M", "5M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], - crosspoison: ["7E", "6E", "5E", "4E"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crabhammer: ["9L45"], + crosspoison: ["9E", "7E", "6E", "5E", "4E"], + crunch: ["9M"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], - darkpulse: ["7M", "6M", "5T", "4M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], defog: ["7T", "4M"], detect: ["7V"], dig: ["6M", "5M", "4M", "3M"], - doubleedge: ["7E", "6E", "5E", "4E", "3T"], + doubleedge: ["9M", "9E", "7E", "6E", "5E", "4E", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["3T"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["7M", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - falseswipe: ["7M", "6M", "5M", "4M"], - feint: ["7E", "6E", "5E", "5D", "4E"], - feintattack: ["7L19", "7V", "6L19", "5L23", "4L23", "3L28"], - fling: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "7M", "6M", "5M", "4M"], + feint: ["9E", "7E", "6E", "5E", "5D", "4E"], + feintattack: ["7L19", "7V", "6L19", "5L19", "4L23", "3L28"], + firefang: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furycutter: ["7L16", "7V", "6L16", "5L20", "4T", "4L20", "3T"], + furycutter: ["9L16", "7L16", "7V", "6L16", "5L16", "4T", "4L20", "3T"], guillotine: ["7L55", "7V", "6L55", "5L49", "4L45", "3L52"], - harden: ["7L7", "7V", "6L7", "5L9", "4L9", "3L13"], + gunkshot: ["9M"], + harden: ["9L7", "7L7", "7V", "6L7", "5L7", "4L9", "3L13"], headbutt: ["7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], honeclaws: ["6M", "5M"], + icefang: ["9M"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "7L10", "6T", "6L10", "5T", "5L12", "4T", "4L12"], - metalclaw: ["7E", "7V", "6E", "5E", "4E", "3E"], + knockoff: ["9M", "9L10", "7T", "7L10", "6T", "6L10", "5T", "5L10", "4T", "4L12"], + lunge: ["9M"], + metalclaw: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M"], naturalgift: ["4M"], - nightslash: ["7E", "6E", "5E", "4E"], + nightslash: ["9E", "7E", "6E", "5E", "4E"], payback: ["7M", "6M", "5M", "4M"], - poisonjab: ["7M", "6M", "5M", "4M"], - poisonsting: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - poisontail: ["7E", "6E", "5E"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + poisontail: ["9M", "9L19", "7E", "6E", "5E"], powertrick: ["7E", "6E", "5E", "4E"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - quickattack: ["7L13", "7V", "6L13", "5L16", "4L16", "3L20"], - raindance: ["7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + quickattack: ["9L13", "7L13", "7V", "6L13", "5L13", "4L16", "3L20"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], razorwind: ["7E", "7V", "6E", "5E", "4E", "3E"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["7E", "6E", "5E"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], - sandattack: ["7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L6", "3S0"], - sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], - sandtomb: ["7E", "6E", "5E", "4E", "3E"], - screech: ["7L35", "7V", "6L35", "5L31", "4L27", "3L44"], + sandattack: ["9L4", "7L4", "7V", "6L4", "5L4", "5D", "4L5", "3L6", "3S0"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "7E", "6E", "5E", "4E", "3E"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9L35", "7L35", "7V", "6L35", "5L31", "4L27", "3L44"], secretpower: ["6M", "4M", "3M"], + skittersmack: ["9M"], skyuppercut: ["7L45", "6L45", "5L45"], - slash: ["7L27", "7V", "6L27", "5L34", "4L31", "3L36"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + slash: ["9L27", "7L27", "7V", "6L27", "5L27", "4L31", "3L36"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["7T", "6T", "5T", "4M"], + spikes: ["9M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], steelwing: ["7M", "6M", "4M", "3M"], - stoneedge: ["7M", "6M", "5M", "4M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], - strugglebug: ["6M", "5M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["7V", "4T", "3T"], - swordsdance: ["7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34", "3T"], - tailwind: ["7T", "6T", "5T", "5D", "4T"], - taunt: ["7M", "6M", "5M", "4M"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["7T"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "7T"], + thunderfang: ["9M"], torment: ["7M", "6M", "5M", "4M"], - toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - uturn: ["7M", "7L30", "6M", "6L30", "5M", "5L42", "4M", "4L38"], - venoshock: ["7M", "6M", "5M"], - wingattack: ["7E", "7V", "6E", "5E", "4E", "3E"], - xscissor: ["7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L42"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + uturn: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L30", "4M", "4L38"], + venoshock: ["9M", "7M", "6M", "5M"], + wingattack: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L42"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["poisonsting", "sandattack"], pokeball: "pokeball"}, @@ -27631,186 +28830,221 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, gliscor: { learnset: { - acrobatics: ["7M", "7L22", "6M", "6L22", "5M", "5L27"], - aerialace: ["7M", "6M", "5M", "4M"], + acrobatics: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["7M", "6M", "5M", "4M"], - brickbreak: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], brutalswing: ["7M"], bugbite: ["7T", "6T", "5T"], - bulldoze: ["7M", "6M", "5M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], + crabhammer: ["9L45"], + crunch: ["9M"], cut: ["6M", "5M", "4M"], - darkpulse: ["7M", "6M", "5T", "4M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], defog: ["7T", "4M"], dig: ["6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["7M", "6M", "5M", "4M"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - falseswipe: ["7M", "6M", "5M", "4M"], - feintattack: ["7L19", "6L19", "5L23", "4L23"], - firefang: ["7L1", "6L1", "5L1", "4L1"], - fling: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "7M", "6M", "5M", "4M"], + feintattack: ["7L19", "6L19", "5L19", "4L23"], + firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + fling: ["9M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - furycutter: ["7L16", "6L16", "5L20", "4T", "4L20"], - gigaimpact: ["7M", "6M", "5M", "4M"], + furycutter: ["9L16", "7L16", "6L16", "5L16", "4T", "4L20"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], guillotine: ["7L1", "6L1", "5L49", "4L45"], - harden: ["7L1", "6L1", "5L1", "4L1"], + gunkshot: ["9M"], + harden: ["9L1", "7L1", "6L1", "5L1", "4L1"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["9M"], honeclaws: ["6M", "5M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - icefang: ["7L1", "6L1", "5L1", "4L1"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], irontail: ["7T", "6T", "5T", "4M"], - knockoff: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - mudslap: ["4T"], + knockoff: ["9M", "9L19", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + lunge: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], - nightslash: ["7L27", "6L27", "5L34", "4L31"], + nightslash: ["9L27", "7L27", "6L27", "5L27", "4L31"], payback: ["7M", "6M", "5M", "4M"], - poisonjab: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - protect: ["7M", "6M", "5M", "4M"], - quickattack: ["7L13", "6L13", "5L16", "4L16"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + poisontail: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M"], + quickattack: ["9L13", "7L13", "6L13", "5L13", "4L16"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], roost: ["7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], - sandattack: ["7L1", "6L1", "5L1", "4L1"], - sandstorm: ["7M", "6M", "5M", "4M"], - screech: ["7L35", "6L35", "5L31", "4L27"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9L35", "7L35", "6L35", "5L31", "4L27"], secretpower: ["6M", "4M"], + skittersmack: ["9M"], skyattack: ["7T", "6T", "5T", "4T"], skyuppercut: ["7L45", "6L45", "5L45"], - sleeptalk: ["7M", "6M", "5T", "4M"], - sludgebomb: ["7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M"], snore: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "6T", "5T", "4M"], + spikes: ["9M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], steelwing: ["7M", "6M", "4M"], - stoneedge: ["7M", "6M", "5M", "4M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - strugglebug: ["6M", "5M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], - swordsdance: ["7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34"], - tailwind: ["7T", "6T", "5T", "4T"], - taunt: ["7M", "6M", "5M", "4M"], - thief: ["7M", "6M", "5M", "4M"], - throatchop: ["7T"], - thunderfang: ["7L1", "6L1", "5L1", "4L1"], + swift: ["9M", "4T"], + swordsdance: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + throatchop: ["9M", "7T"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], torment: ["7M", "6M", "5M", "4M"], - toxic: ["7M", "6M", "5M", "4M"], - uturn: ["7M", "7L30", "6M", "6L30", "5M", "5L42", "4M", "4L38"], - venoshock: ["7M", "6M", "5M"], - xscissor: ["7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L42"], + toxic: ["9M", "7M", "6M", "5M", "4M"], + toxicspikes: ["9M"], + uturn: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L30", "4M", "4L38"], + venoshock: ["9M", "7M", "6M", "5M"], + xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L42"], }, }, snubbull: { learnset: { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bite: ["7L7", "7V", "6L7", "5L7", "4L7", "3L13"], - bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], - bulkup: ["7M", "6M", "5M", "4M", "3M"], - bulldoze: ["7M", "6M", "5M"], + bite: ["9L7", "7L7", "7V", "6L7", "5L7", "4L7", "3L13"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], - charm: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L8", "3S0"], - closecombat: ["7E", "6E", "5E", "5D", "4E"], + charm: ["9M", "9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L8", "3S0"], + closecombat: ["9M", "7E", "6E", "5E", "5D", "4E"], confide: ["7M", "6M"], - counter: ["3T"], + counter: ["9E", "3T"], covet: ["7T", "6T", "5T"], - crunch: ["7L49", "7E", "7V", "6L49", "6E", "5L49", "5E", "4L49", "4E", "3L53", "3E"], - curse: ["7V"], - dazzlinggleam: ["7M", "6M"], + crunch: ["9M", "9L49", "7L49", "7E", "7V", "6L49", "6E", "5L49", "5E", "4L49", "4E", "3L53", "3E"], + curse: ["9M", "7V"], + dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["6M", "5M", "4M", "3M"], - doubleedge: ["7E", "6E", "5E", "5D", "3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "7E", "6E", "5E", "5D", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthquake: ["7M", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - faketears: ["7E", "6E"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "7E", "6E"], feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], - fireblast: ["7M", "6M", "5M", "4M", "3M"], - firefang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], - firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - flamethrower: ["7M", "6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - headbutt: ["7L19", "7V", "6L19", "5L19", "4T", "4L19"], + growl: ["9L1"], + headbutt: ["9L19", "7L19", "7V", "6L19", "5L19", "4T", "4L19"], healbell: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["7T", "6T", "5T"], - icefang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], - icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M", "9L1", "7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], - lastresort: ["7T", "6T", "5T", "4T"], + lashout: ["9M"], + lastresort: ["9L31", "7T", "6T", "5T", "4T"], leer: ["7V"], - lick: ["7L13", "7V", "6L13", "5L13", "4L13", "3L19"], - lowkick: ["7T", "6T", "5T", "4T"], + lick: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L19"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], - metronome: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], - mimic: ["7E", "6E", "5E", "3T"], - mudslap: ["7V", "4T", "3T"], + metronome: ["9M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["9E", "7E", "6E", "5E", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], - overheat: ["7M", "6M", "5M", "4M", "3M"], - payback: ["7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], - playrough: ["7L37", "6L37"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["9L43", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], + playrough: ["9M", "9L37", "7L37", "6L37"], poweruppunch: ["6M"], - present: ["7E", "7V", "6E", "5E", "4E", "3E"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + present: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], rage: ["7L31", "7V", "6L31", "5L31", "4L31", "3L34"], - raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["7M", "7V", "6M", "5M", "4E", "3E"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], - retaliate: ["6M", "5M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["9E", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7L25", "7V", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L26"], + reversal: ["9M"], + roar: ["9M", "9L25", "7M", "7L25", "7V", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L26"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - scaryface: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + scaryface: ["9M", "9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], smellingsalts: ["7E", "6E", "5E", "4E", "3E"], - snarl: ["7M", "6M", "5M"], - snore: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], + snarl: ["9M", "7M", "6M", "5M"], + snore: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9M"], + stompingtantrum: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], superpower: ["7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L4", "3S0"], - takedown: ["7V", "5L37", "4L37", "3L43"], - taunt: ["7M", "6M", "5M", "4M", "3M"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderfang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], - thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L4", "3S0"], + takedown: ["9M", "7V", "5L37", "4L37", "3L43"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9L1", "7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - waterpulse: ["7T", "6T", "4M", "3M"], - wildcharge: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], workup: ["7M", "5M"], zapcannon: ["7V"], }, @@ -27821,105 +29055,120 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { granbull: { learnset: { attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bite: ["7L7", "7V", "6L7", "5L7", "4L7", "3L13"], - bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], - bulkup: ["7M", "6M", "5M", "4M", "3M"], - bulldoze: ["7M", "6M", "5M"], + bite: ["9L7", "7L7", "7V", "6L7", "5L7", "4L7", "3L13"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], - charm: ["7L1", "7V", "6L1", "5L1", "4L1", "3L8"], + charm: ["9M", "9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L8"], + closecombat: ["9M"], confide: ["7M", "6M"], counter: ["3T"], covet: ["7T", "6T", "5T"], - crunch: ["7L59", "6L59", "5L59", "4L59", "3L61"], - curse: ["7V"], - dazzlinggleam: ["7M", "6M"], + crunch: ["9M", "9L59", "7L59", "6L59", "5L59", "4L59", "3L61"], + curse: ["9M", "7V"], + dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], - earthquake: ["7M", "6M", "5M", "4M", "3M"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - fireblast: ["7M", "6M", "5M", "4M", "3M"], - firefang: ["7L1", "6L1", "5L1", "4L1"], - firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - flamethrower: ["7M", "6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - headbutt: ["7L19", "7V", "6L19", "5L19", "4T", "4L19"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1"], + headbutt: ["9L19", "7L19", "7V", "6L19", "5L19", "4T", "4L19"], healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["7T", "6T", "5T"], - icefang: ["7L1", "6L1", "5L1", "4L1"], - icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T", "4M", "3M"], - lastresort: ["7T", "6T", "5T", "4T"], - lick: ["7L13", "7V", "6L13", "5L13", "4L13", "3L19"], - lowkick: ["7T", "6T", "5T", "4T"], + lashout: ["9M"], + lastresort: ["9L35", "7T", "6T", "5T", "4T"], + lick: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L19"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M"], megakick: ["3T"], megapunch: ["3T"], - metronome: ["3T"], + metronome: ["9M", "3T"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], - outrage: ["7T", "7L1", "6T", "6L1", "5T", "5L67"], - overheat: ["7M", "6M", "5M", "4M", "3M"], - payback: ["7M", "7L51", "6M", "6L51", "5M", "5L51", "4M", "4L51"], - playrough: ["7L43", "6L43"], + outrage: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L67"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["9L51", "7M", "7L51", "6M", "6L51", "5M", "5L51", "4M", "4L51"], + playrough: ["9M", "9L43", "7L43", "6L43"], poweruppunch: ["6M"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], rage: ["7L35", "7V", "6L35", "5L35", "4L35", "3L38"], - raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["7M", "6M", "5M"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L28"], + reversal: ["9M"], + roar: ["9M", "9L27", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L28"], rockclimb: ["4M"], - rockslide: ["7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - scaryface: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + scaryface: ["9M", "9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], - snarl: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + snarl: ["9M", "7M", "6M", "5M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "6M", "5M", "4M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], superpower: ["7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L4"], - takedown: ["7V", "5L43", "4L43", "3L49"], - taunt: ["7M", "6M", "5M", "4M", "3M"], - thief: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderfang: ["7L1", "6L1", "5L1", "4L1"], - thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L4"], + takedown: ["9M", "7V", "5L43", "4L43", "3L49"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - waterpulse: ["7T", "6T", "4M", "3M"], - wildcharge: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], workup: ["7M", "5M"], zapcannon: ["7V"], }, @@ -27947,24 +29196,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], crunch: ["9M"], - curse: ["7V"], + curse: ["9M", "7V"], defensecurl: ["7V", "3T"], destinybond: ["9L56", "8L66", "7L1", "6L1", "5L53", "4L53", "3L45"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], endure: ["9M", "8M", "7V", "4M", "3T"], explosion: ["7M", "6M", "5M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fellstinger: ["9L12", "8L12", "7L1", "6L1"], flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flipturn: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["9M"], gunkshot: ["9M"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], harden: ["9L4", "8L4", "7L9", "7V", "6L9", "5L9", "4L9", "3L9", "3S0"], - haze: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], headbutt: ["7V", "4T"], hex: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -27976,7 +29226,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { minimize: ["9L16", "8L16", "7L9", "7V", "6L9", "5L9", "4L9", "3L9", "3S0"], mudshot: ["9M"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], pinmissile: ["9L32", "8M", "8L32", "7L37", "7V", "6L37", "5L37", "4L37", "3L21"], poisonjab: ["9M", "9L28", "8M", "8L40", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L49", "4E"], @@ -27991,7 +29241,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rollout: ["7L17", "7V", "6L17", "5L17", "4T", "4L17", "3T"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "8M"], secretpower: ["6M", "5D", "4M", "3M"], selfdestruct: ["9E", "8M", "3T"], @@ -28000,9 +29250,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], spikes: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + spite: ["9M"], spitup: ["9L40", "8L44", "7L25", "6L25", "5L25", "4L25"], steelroller: ["8T"], stockpile: ["9L40", "8L44", "7L25", "6L25", "5L25", "4L25"], @@ -28016,16 +29267,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "8L48", "7L41", "7V", "6L41", "5L41", "4L41", "3L33"], taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], terablast: ["9M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], - toxic: ["9L44", "8L52", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L44", "8L52", "7M", "7V", "6M", "5M", "4M", "3M"], toxicspikes: ["9M", "9L36", "8M", "8L36", "7L21", "6L21", "5L21", "4L21"], venomdrench: ["8M"], venoshock: ["9M", "8M", "7M", "6M", "5M"], waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], watergun: ["9L8", "8L8", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], - whirlpool: ["8M", "7V", "4M"], + whirlpool: ["9M", "8M", "7V", "4M"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["tackle", "poisonsting", "harden", "minimize"], pokeball: "pokeball"}, @@ -28046,23 +29297,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bubblebeam: ["9E"], chillingwater: ["9M"], crunch: ["9M", "9L48"], + curse: ["9M"], darkpulse: ["9M"], destinybond: ["9L56"], + doubleedge: ["9M"], endure: ["9M"], facade: ["9M"], fellstinger: ["9L12"], flail: ["9E"], gigaimpact: ["9M"], gunkshot: ["9M"], + gyroball: ["9M"], harden: ["9L4"], - haze: ["9E"], + haze: ["9M", "9E"], hex: ["9M"], hydropump: ["9M"], icebeam: ["9M"], icywind: ["9M"], + lashout: ["9M"], liquidation: ["9M"], minimize: ["9L16"], mudshot: ["9M"], + painsplit: ["9M"], pinmissile: ["9L32"], poisonjab: ["9M"], poisonsting: ["9L1"], @@ -28071,12 +29327,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M"], reversal: ["9M"], + scaleshot: ["9M"], scaryface: ["9M"], selfdestruct: ["9E"], shadowball: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], spikes: ["9M", "9L20"], + spite: ["9M"], spitup: ["9L40"], stockpile: ["9L40"], substitute: ["9M"], @@ -28088,7 +29346,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], - toxic: ["9L44"], + throatchop: ["9M"], + toxic: ["9M", "9L44"], toxicspikes: ["9M", "9L36"], venoshock: ["9M"], waterfall: ["9M"], @@ -28097,6 +29356,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, overqwil: { learnset: { + acidspray: ["9M"], acupressure: ["9L52"], agility: ["9M"], barbbarrage: ["9L28"], @@ -28105,21 +29365,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brine: ["9L24"], chillingwater: ["9M"], crunch: ["9M", "9L48"], + curse: ["9M"], darkpulse: ["9M"], destinybond: ["9L56"], + doubleedge: ["9M"], endure: ["9M"], facade: ["9M"], fellstinger: ["9L12"], gigaimpact: ["9M"], gunkshot: ["9M"], + gyroball: ["9M"], harden: ["9L4"], + haze: ["9M"], + hex: ["9M"], hydropump: ["9M"], hyperbeam: ["9M"], icebeam: ["9M"], icywind: ["9M"], + lashout: ["9M"], liquidation: ["9M"], minimize: ["9L16"], mudshot: ["9M"], + painsplit: ["9M"], pinmissile: ["9L32"], poisonjab: ["9M"], poisonsting: ["9L1"], @@ -28128,25 +29395,31 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M"], reversal: ["9M"], + scaleshot: ["9M"], scaryface: ["9M"], shadowball: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], + sludgewave: ["9M"], smartstrike: ["9M"], spikes: ["9M", "9L20"], + spite: ["9M"], spitup: ["9L40"], stockpile: ["9L40"], substitute: ["9M"], surf: ["9M"], + swift: ["9M"], swordsdance: ["9M"], tackle: ["9L1"], takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], - toxic: ["9L44"], + throatchop: ["9M"], + toxic: ["9M", "9L44"], toxicspikes: ["9M", "9L36"], venoshock: ["9M"], waterfall: ["9M"], + waterpulse: ["9M"], }, }, shuckle: { @@ -28159,7 +29432,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bide: ["7L1", "7V", "6L1", "5L1", "4L1", "3L28"], bind: ["7T", "6T", "5T"], bodyslam: ["8M", "3T"], - bugbite: ["8L30", "7T", "7L42", "6T", "6L42", "5T", "5L49", "4T", "4L40"], + bugbite: ["8L30", "7T", "7L42", "6T", "6L42", "5T", "5L42", "4T", "4L40"], bulldoze: ["8M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], @@ -28172,14 +29445,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthpower: ["8M", "7T", "6T", "5T", "4T"], earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - encore: ["8M", "7L5", "7V", "6L5", "5L7", "5D", "4L9", "3L14", "3S1"], + encore: ["8M", "7L5", "7V", "6L5", "5L5", "5D", "4L9", "3L14", "3S1"], endure: ["8M", "7V", "4M", "3T"], facade: ["8M", "7M", "6M", "5M", "4M", "3M"], finalgambit: ["8E", "7E", "6E", "5E"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gastroacid: ["8L45", "7T", "7L27", "6T", "6L27", "5T", "5L31", "4T", "4L35"], - guardsplit: ["8L35", "7L45", "6L45", "5L55"], + gastroacid: ["8L45", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L35"], + guardsplit: ["8L35", "7L45", "6L45", "5L45"], gyroball: ["8M", "7M", "6M", "5M", "4M"], headbutt: ["7V", "4T"], helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], @@ -28192,10 +29465,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["8M"], mudslap: ["7E", "7V", "6E", "5E", "4T", "4E", "3T"], naturalgift: ["4M"], - powersplit: ["8L35", "7L45", "6L45", "5L55"], - powertrick: ["8L55", "7L31", "6L31", "5L43", "4L48"], + powersplit: ["8L35", "7L45", "6L45", "5L45"], + powertrick: ["8L55", "7L31", "6L31", "5L31", "4L48"], protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - rest: ["8M", "8L25", "7M", "7L20", "7V", "6M", "6L20", "5M", "5L25", "4M", "4L27", "3M", "3L37"], + rest: ["8M", "8L25", "7M", "7L20", "7V", "6M", "6L20", "5M", "5L20", "4M", "4L27", "3M", "3L37"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], reversal: ["8M"], rockblast: ["8M", "7E", "6E", "5E"], @@ -28204,9 +29477,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocksmash: ["7V", "6M", "5M", "4M", "3M"], rockthrow: ["8L15", "7L23", "6L23", "5L23"], rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], - rollout: ["8L5", "7L1", "7V", "6L1", "5L37", "4T", "3T"], + rollout: ["8L5", "7L1", "7V", "6L1", "5L1", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "8L20", "7M", "7L16", "7V", "6M", "6L16", "5M", "5L19", "4M", "4L14", "3M", "3L23"], + safeguard: ["8M", "8L20", "7M", "7L16", "7V", "6M", "6L16", "5M", "5L16", "4M", "4L14", "3M", "3L23"], sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], sandtomb: ["8M", "7E", "6E", "5E", "4E"], secretpower: ["6M", "4M", "3M"], @@ -28231,7 +29504,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["8E", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], venoshock: ["8M", "7M", "6M", "5M"], withdraw: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], - wrap: ["8L1", "7L9", "7V", "6L9", "5L13", "4L22", "3L9", "3S0"], + wrap: ["8L1", "7L9", "7V", "6L9", "5L9", "4L22", "3L9", "3S0"], }, eventData: [ {generation: 3, level: 10, gender: "M", abilities: ["sturdy"], moves: ["constrict", "withdraw", "wrap"], pokeball: "pokeball"}, @@ -28240,7 +29513,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, heracross: { learnset: { - aerialace: ["9M", "9L15", "8L15", "7M", "7L10", "6M", "6L10", "5M", "5L13", "4M", "4L13"], + aerialace: ["9M", "9L15", "8L15", "7M", "7L10", "6M", "6L10", "5M", "5L10", "4M", "4L13"], armthrust: ["9L1", "7L1", "6L1"], assurance: ["8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -28248,32 +29521,33 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "8M", "3T"], brickbreak: ["9M", "9L30", "8M", "8L30", "7M", "7L28", "6M", "6L25", "5M", "5L19", "4M", "4L19", "3M", "3L23"], brutalswing: ["8M", "7M"], - bugbite: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], bugbuzz: ["9M"], bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], bulletseed: ["9M", "8M", "7L1", "6L1", "6S0", "6S1"], captivate: ["4M"], chipaway: ["7L16", "6L16", "5L16"], - closecombat: ["9M", "9L60", "8M", "8L60", "7L43", "6L34", "6S0", "5L37", "4L37"], - coaching: ["8T"], + closecombat: ["9M", "9L60", "8M", "8L60", "7L43", "6L34", "6S0", "5L34", "4L37"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - counter: ["9L25", "8L25", "7L19", "7V", "6L19", "5L25", "4L25", "3T", "3L30"], - curse: ["7V"], + counter: ["9L25", "8L25", "7L19", "7V", "6L19", "5L19", "4L25", "3T", "3L30"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], dig: ["9M", "8M", "6M", "5M", "4M", "3M"], - doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E", "3T"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthquake: ["9M", "8M", "7M", "7V", "6M", "6S1", "5M", "4M", "3M"], + endeavor: ["9M"], endure: ["9M", "9L10", "8M", "8L10", "7L1", "7V", "6L1", "5L1", "4M", "4L1", "3T", "3L11"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], - feint: ["9E", "8E", "7L7", "6L7", "5L49", "4L49"], + feint: ["9E", "8E", "7L7", "6L7", "5L37", "4L49"], flail: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furyattack: ["9L5", "8L5", "7L25", "7V", "6L7", "5L7", "4L7", "3L17"], furycutter: ["7V", "4T", "3T"], @@ -28282,14 +29556,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["7V", "4T"], helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hornattack: ["9L20", "8L20", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L6"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], - megahorn: ["9L55", "8M", "8L55", "7L37", "7E", "7V", "6L37", "6E", "6S0", "5L55", "5E", "4L55", "3L53"], + lunge: ["9M"], + megahorn: ["9L55", "8M", "8L55", "7L37", "7E", "7V", "6L37", "6E", "6S0", "5L46", "5E", "4L55", "3L53"], mimic: ["3T"], naturalgift: ["4M"], nightslash: ["9E", "8E", "7L1", "6L1", "5L1", "4L1"], @@ -28311,8 +29586,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], seismictoss: ["9E", "8E", "7E", "6E", "5E", "3T"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + skittersmack: ["9M"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], smartstrike: ["9M", "8M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], spikes: ["9M", "8M"], @@ -28324,14 +29600,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swordsdance: ["9M", "9L50", "8M", "8L50", "7M", "6M", "5M", "4M", "3T"], tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["9M", "8E", "7L34", "7V", "6L28", "5L31", "4L31", "3L37"], + takedown: ["9M", "8E", "7L34", "7V", "6L28", "5L28", "4L31", "3L37"], terablast: ["9M"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], thrash: ["9L45", "8L45"], - throatchop: ["9L40", "8M", "8L40", "7T"], + throatchop: ["9M", "9L40", "8M", "8L40", "7T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - vacuumwave: ["4T"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], venoshock: ["8M", "7M", "6M", "5M"], workup: ["8M", "7M", "5M"], }, @@ -28343,11 +29620,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sneasel: { learnset: { aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], - agility: ["9M", "9L48", "8M", "8L48", "7L20", "7V", "6L20", "5L24", "4L24", "3L36"], + agility: ["9M", "9L48", "8M", "8L48", "7L20", "7V", "6L20", "5L20", "4L24", "3L36"], assist: ["7E", "6E", "5E", "4E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], avalanche: ["9M", "8M", "7E", "6E", "5E", "4M"], - beatup: ["9L42", "8M", "8L42", "7L28", "7V", "6L28", "5L42", "4L38", "3L57"], + beatup: ["9L42", "8M", "8L42", "7L28", "7V", "6L28", "5L28", "4L38", "3L57"], bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -28374,35 +29651,36 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { faketears: ["9M", "8M"], falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], feint: ["9E", "8E", "7E", "6E", "5E"], - feintattack: ["7L10", "7V", "6L10", "5L14", "4L14", "3L22"], + feintattack: ["7L10", "7V", "6L10", "5L10", "4L14", "3L22"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], - furyswipes: ["9L30", "8L30", "7L16", "7V", "6L16", "5L21", "4L21", "3L29"], + furyswipes: ["9L30", "8L30", "7L16", "7V", "6L16", "5L16", "4L21", "3L29"], gigaimpact: ["9M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L35"], + honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L25"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icepunch: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3T"], - iceshard: ["9E", "8E", "7L47", "7E", "6L47", "6E", "5L51", "5E", "4L49", "4E"], + iceshard: ["9E", "8E", "7L47", "7E", "6L47", "6E", "5L47", "5E", "4L49", "4E"], iciclecrash: ["9E", "8E", "7E", "6E"], - icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "7V", "6T", "6L14", "5T", "5L28", "4T", "4L28", "3T", "3L43"], + iciclespear: ["9M"], + icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "7V", "6T", "6L14", "5T", "5L14", "4T", "4L28", "3T", "3L43"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], lowkick: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M"], megapunch: ["8M"], - metalclaw: ["9M", "9L18", "8L18", "7L22", "7V", "6L22", "5L49", "4L42", "3L64"], + metalclaw: ["9M", "9L18", "8L18", "7L22", "7V", "6L22", "5L22", "4L42", "3L64"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], nastyplot: ["9M"], @@ -28431,13 +29709,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], - slash: ["9L60", "8L60", "7L35", "7V", "6L35", "5L38", "4L35", "3L50"], + slash: ["9L60", "8L60", "7L35", "7V", "6L35", "5L35", "4L35", "3L50"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "7L40", "6T", "6L40", "5T", "5L40", "4M", "3M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], snowscape: ["9M"], - spite: ["9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + spite: ["9M", "9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], strength: ["7V", "6M", "5M", "4M", "3M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -28449,11 +29727,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L6", "8M", "8L6", "7M", "7L1", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M", "3L1", "3S0"], terablast: ["9M"], thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["8M", "7T", "7E"], + throatchop: ["9M", "8M", "7T", "7E"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], + upperhand: ["9M"], waterpulse: ["9M"], whirlpool: ["8M", "4M"], xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -28471,6 +29750,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M"], calmmind: ["9M"], closecombat: ["9M", "9L60"], + coaching: ["9M"], counter: ["9E"], dig: ["9M"], doublehit: ["9E"], @@ -28481,10 +29761,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feint: ["9E"], fling: ["9M"], focusblast: ["9M"], + focuspunch: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], gunkshot: ["9M"], honeclaws: ["9L36"], + lashout: ["9M"], leer: ["9L1"], lowkick: ["9M"], lowsweep: ["9M"], @@ -28507,6 +29789,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9L42"], sleeptalk: ["9M"], sludgebomb: ["9M"], + sludgewave: ["9M"], + spite: ["9M"], substitute: ["9M"], sunnyday: ["9M"], swift: ["9M"], @@ -28516,8 +29800,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L6"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], + toxic: ["9M"], toxicspikes: ["9M"], trailblaze: ["9M"], + vacuumwave: ["9M"], venoshock: ["9M"], xscissor: ["9M"], }, @@ -28538,7 +29825,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], cut: ["6M", "5M", "4M"], - darkpulse: ["9M", "9L66", "8M", "8L66", "7M", "7L47", "6M", "6L47", "5T", "5L51", "4M", "4L49"], + darkpulse: ["9M", "9L66", "8M", "8L66", "7M", "7L47", "6M", "6L47", "5T", "5L47", "4M", "4L49"], dig: ["9M", "8M", "6M", "5M", "4M"], doubleteam: ["7M", "6M", "5M", "4M"], dreameater: ["7M", "6M", "5M", "4M"], @@ -28548,40 +29835,40 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fakeout: ["4S0"], faketears: ["9M", "8M"], falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], - feintattack: ["7L10", "6L10", "5L14", "4L14"], - fling: ["9M", "9L42", "8M", "8L42", "7M", "7L28", "6M", "6L28", "5M", "5L42", "4M", "4L38"], + feintattack: ["7L10", "6L10", "5L10", "4L14"], + fling: ["9M", "9L42", "8M", "8L42", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L38"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], - furyswipes: ["9L30", "8L30", "7L16", "6L16", "5L21", "4L21"], + furyswipes: ["9L30", "8L30", "7L16", "6L16", "5L16", "4L21"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L35"], + honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L25"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], icepunch: ["9M", "8M", "7T", "6T", "6S1", "5T", "4T"], iceshard: ["9L1", "8L1", "4S0"], icespinner: ["9M"], - iciclespear: ["8M"], - icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "6T", "6L14", "5T", "5L28", "4T", "4L28"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "6T", "6L14", "5T", "5L14", "4T", "4L28"], irontail: ["8M", "7T", "6T", "5T", "4M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M"], megapunch: ["8M"], - metalclaw: ["9M", "9L18", "8L18", "7L22", "6L22", "5L49", "4L42"], + metalclaw: ["9M", "9L18", "8L18", "7L22", "6L22", "5L22", "4L42"], metronome: ["9M"], mudslap: ["4T"], - nastyplot: ["9M", "9L48", "8M", "8L48", "7L20", "6L20", "5L24", "4L24"], + nastyplot: ["9M", "9L48", "8M", "8L48", "7L20", "6L20", "5L20", "4L24"], naturalgift: ["4M"], nightslash: ["9L60", "8L60", "7L35", "6L35", "6S1", "5L35", "4L35", "4S0"], payback: ["8M", "7M", "6M", "5M", "4M"], @@ -28590,7 +29877,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psychocut: ["8M"], psychup: ["7M", "6M", "5M", "4M"], - punishment: ["7L44", "6L44"], + punishment: ["7L44", "6L44", "5L44"], quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], reflect: ["8M", "7M", "6M", "5M"], @@ -28598,6 +29885,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M"], revenge: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + reversal: ["9M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M"], @@ -28612,7 +29900,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snatch: ["7T", "7L40", "6T", "6L40", "5T", "5L40", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], snowscape: ["9M"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -28624,11 +29912,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], + upperhand: ["9M"], waterpulse: ["9M"], whirlpool: ["8M", "4M"], xscissor: ["9M", "8M", "7M", "6M", "6S1", "5M", "4M"], @@ -28648,6 +29937,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M"], calmmind: ["9M"], closecombat: ["9M", "9L60"], + coaching: ["9M"], dig: ["9M"], direclaw: ["9L0"], endure: ["9M"], @@ -28656,11 +29946,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firepunch: ["9M"], fling: ["9M", "9L1"], focusblast: ["9M"], + focuspunch: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], gunkshot: ["9M"], honeclaws: ["9L36"], hyperbeam: ["9M"], + lashout: ["9M"], leer: ["9L1"], lowkick: ["9M"], lowsweep: ["9M"], @@ -28683,6 +29975,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9L42"], sleeptalk: ["9M"], sludgebomb: ["9M"], + sludgewave: ["9M"], + spite: ["9M"], substitute: ["9M"], sunnyday: ["9M"], swift: ["9M"], @@ -28691,9 +29985,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L6"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], + toxic: ["9M"], toxicspikes: ["9M"], trailblaze: ["9M"], + upperhand: ["9M"], uturn: ["9M"], + vacuumwave: ["9M"], venoshock: ["9M"], xscissor: ["9M"], }, @@ -28722,7 +30020,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["7V", "3T"], dig: ["9M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["9E", "7E", "6E", "5E", "4E", "3T"], + doubleedge: ["9M", "9E", "7E", "6E", "5E", "4E", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -28733,7 +30031,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], fling: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L57", "4M", "4L57"], focusenergy: ["7V"], - focuspunch: ["7T", "6T", "5D", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "5D", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["9E", "7V", "4T", "3T"], furyswipes: ["9L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L13"], @@ -28779,6 +30077,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "7M", "6M", "5M", "4M"], slash: ["9L22", "7L29", "7V", "6L29", "5L29", "4L29", "3L37"], sleeptalk: ["9M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + smackdown: ["9M"], snore: ["9L37", "7T", "7L43", "7V", "6T", "6L43", "5T", "5L43", "4T", "4L43", "3T", "3L43"], strength: ["7V", "6M", "5M", "4M", "3M"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], @@ -28797,6 +30096,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], + uproar: ["9M"], workup: ["7M", "5M"], yawn: ["9E", "7E", "6E", "5E", "4E", "3E"], zapcannon: ["7V"], @@ -28829,7 +30129,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["7V", "6M", "5M", "4M", "3M"], defensecurl: ["7V", "3T"], dig: ["9M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dynamicpunch: ["7V", "3T"], earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -28840,7 +30140,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], furyswipes: ["9L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L1"], @@ -28850,7 +30150,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["9L48"], + highhorsepower: ["9M", "9L48"], honeclaws: ["6M", "5M"], hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], hypervoice: ["9M", "7T", "6T", "5T"], @@ -28891,7 +30191,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "7M", "6M", "5M", "4M"], slash: ["9L22", "7L29", "7V", "6L29", "5L29", "4L29", "3L37"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["9L41", "7T", "7L49", "7V", "6T", "6L49", "5T", "5L49", "4T", "4L49", "3T", "3L43"], stompingtantrum: ["9M", "7T"], stoneedge: ["9M", "7M", "6M", "5M", "4M"], @@ -28908,12 +30208,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], thrash: ["9L56", "7L58", "7V", "6L58", "5L58", "4L58", "3L49"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], workup: ["7M", "5M"], zapcannon: ["7V"], }, @@ -28934,7 +30234,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M"], covet: ["9L1"], crunch: ["9M"], + curse: ["9M"], dig: ["9M"], + doubleedge: ["9M"], drainpunch: ["9M"], earthpower: ["9M"], earthquake: ["9M"], @@ -28943,14 +30245,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { faketears: ["9M", "9L1"], firepunch: ["9M"], fling: ["9M"], + focuspunch: ["9M"], furyswipes: ["9L8"], gigaimpact: ["9M"], gunkshot: ["9M"], hammerarm: ["9L64"], + hardpress: ["9M"], headlongrush: ["9L0"], heavyslam: ["9M"], helpinghand: ["9M"], - highhorsepower: ["9L48"], + highhorsepower: ["9M", "9L48"], hyperbeam: ["9M"], hypervoice: ["9M"], icepunch: ["9M"], @@ -28965,6 +30269,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M"], raindance: ["9M"], rest: ["9M", "9L41"], + roar: ["9M"], rockslide: ["9M"], rocktomb: ["9M"], scaryface: ["9M", "9L35"], @@ -28973,11 +30278,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M"], slash: ["9L22"], sleeptalk: ["9M"], + smackdown: ["9M"], snore: ["9L41"], stompingtantrum: ["9M"], stoneedge: ["9M"], substitute: ["9M"], sunnyday: ["9M"], + supercellslam: ["9M"], sweetscent: ["9L17"], swift: ["9M"], swordsdance: ["9M"], @@ -28986,154 +30293,260 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], thrash: ["9L56"], + throatchop: ["9M"], thunderpunch: ["9M"], trailblaze: ["9M"], + uproar: ["9M"], }, }, + ursalunabloodmoon: { + learnset: { + avalanche: ["9M"], + bloodmoon: ["9L70", "9S0"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M", "9S0"], + crunch: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + earthpower: ["9M", "9L48", "9S0"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + furyswipes: ["9L8"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hammerarm: ["9L64"], + harden: ["9L17"], + hardpress: ["9M"], + headlongrush: ["9L1"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icepunch: ["9M"], + leer: ["9L1"], + lick: ["9L1"], + lowkick: ["9M"], + metalclaw: ["9M"], + moonblast: ["9L56"], + moonlight: ["9L1"], + mudshot: ["9M"], + payback: ["9L13"], + playnice: ["9L25"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L41"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M", "9L35"], + scratch: ["9L1"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + slash: ["9L22", "9S0"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snarl: ["9M"], + snore: ["9L41"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + }, + eventData: [ + {generation: 9, level: 70, nature: "Hardy", perfectIVs: 3, moves: ["bloodmoon", "earthpower", "slash", "calmmind"]}, + ], + eventOnly: true, + }, slugma: { learnset: { - acidarmor: ["7E", "7V", "6E", "5E", "4E", "3E"], + acidarmor: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], afteryou: ["7T", "6T", "5T"], - amnesia: ["7L36", "7V", "6L32", "5L32", "4L31", "3L29"], - ancientpower: ["7L22", "6L22", "5L28", "4T", "4L26"], + amnesia: ["9M", "9L36", "7L36", "7V", "6L32", "5L32", "4L31", "3L29"], + ancientpower: ["9L22", "7L22", "6L22", "5L28", "4T", "4L26"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["7L41", "7V", "6L41", "5L46", "4L46", "3T", "3L50"], + bodyslam: ["9M", "9L41", "7L41", "7V", "6L41", "5L46", "4L46", "3T", "3L50"], + bulldoze: ["9M"], captivate: ["4M"], - clearsmog: ["7L20", "6L20"], + clearsmog: ["9L20", "7L20", "6L20"], confide: ["7M", "6M"], - curse: ["7E", "7V", "6E", "5E", "4E"], + curse: ["9M", "9E", "7E", "7V", "6E", "5E", "4E"], defensecurl: ["7V", "3T"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["7T", "7L50", "7E", "6T", "6L50", "6E", "5T", "5L55", "5E", "4T", "4L56"], - ember: ["7L6", "7V", "6L5", "5L5", "5D", "4L8", "3L8"], - endure: ["7V", "4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - fireblast: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L50", "7T", "7L50", "7E", "6T", "6L50", "6E", "5T", "5L55", "5E", "4T", "4L56"], + earthquake: ["9M"], + ember: ["9L6", "7L6", "7V", "6L5", "5L5", "5D", "4L8", "3L8"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M"], flameburst: ["7L27", "6L23", "5L23"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["7M", "7L48", "7V", "6M", "6L48", "5M", "5L50", "4M", "4L53", "3M", "3L36"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L48", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L50", "4M", "4L53", "3M", "3L36"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - guardswap: ["7E", "6E"], - harden: ["7L13", "7V", "6L13", "5L14", "4L16", "3L22"], - heatwave: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + guardswap: ["9E", "7E", "6E"], + harden: ["9L13", "7L13", "7V", "6L13", "5L14", "4L16", "3L22"], + heatcrash: ["9M"], + heatwave: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - incinerate: ["7L15", "6M", "6L15", "5M"], - inferno: ["7E", "6E", "5E", "5D"], + highhorsepower: ["9M"], + incinerate: ["9L27", "7L15", "6M", "6L15", "5M"], + inferno: ["9E", "7E", "6E", "5E", "5D"], infestation: ["7M", "6M"], - irondefense: ["7T", "6T", "5T", "4T"], - lavaplume: ["7L34", "6L34", "5L37", "4L38"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], - memento: ["7E", "6E", "5E", "4E"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + lavaplume: ["9L34", "7L34", "6L34", "5L37", "4L38"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + memento: ["9E", "7E", "6E", "5E", "4E"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - overheat: ["7M", "6M", "5M", "4M", "3M"], - painsplit: ["7T", "6T", "5T", "4T"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - recover: ["7L43", "6L19", "5L19", "4L23"], - reflect: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + powergem: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L43", "7L43", "6L19", "5L19", "4L23"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["7M", "7L29", "7V", "6M", "6L29", "5M", "5L41", "4M", "4L41", "3T", "3L43"], + rockblast: ["9M"], + rockslide: ["9M", "9L29", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L41", "4M", "4L41", "3T", "3L43"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rockthrow: ["7L8", "7V", "6L8", "5L10", "4L11", "3L15"], - rocktomb: ["7M", "6M", "5M", "4M"], - rollout: ["7E", "7V", "6E", "5E", "4T", "3T"], + rockthrow: ["9L8", "7L8", "7V", "6L8", "5L10", "4L11", "3L15"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9E", "7E", "7V", "6E", "5E", "4T", "3T"], round: ["7M", "6M", "5M"], + sandstorm: ["9M"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["3T"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - smog: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - smokescreen: ["7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + smog: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + smokescreen: ["9E", "7E", "6E", "5E", "4E"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], spitup: ["7E", "6E", "5E", "4E"], - stockpile: ["7E", "6E", "5E", "4E"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + stealthrock: ["9M"], + stockpile: ["9E", "7E", "6E", "5E", "4E"], + stoneedge: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swallow: ["7E", "6E", "5E", "4E"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - willowisp: ["7M", "6M", "5M", "4M"], - yawn: ["7L1", "6L1", "5L1", "4L1", "3L1"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], }, }, magcargo: { learnset: { afteryou: ["7T", "6T", "5T"], - amnesia: ["7L36", "7V", "6L32", "5L32", "4L31", "3L29"], - ancientpower: ["7L22", "6L22", "5L28", "4T", "4L26"], + amnesia: ["9M", "9L36", "7L36", "7V", "6L32", "5L32", "4L31", "3L29"], + ancientpower: ["9L22", "7L22", "6L22", "5L28", "4T", "4L26"], attract: ["7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["7L43", "7V", "6L43", "5L52", "4L52", "3T", "3L60"], - bulldoze: ["7M", "6M", "5M"], + bodyslam: ["9M", "9L43", "7L43", "7V", "6L43", "5L52", "4L52", "3T", "3L60"], + bulldoze: ["9M", "7M", "6M", "5M"], + burningjealousy: ["9M"], captivate: ["4M"], - clearsmog: ["7L20", "6L20"], + clearsmog: ["9L20", "7L20", "6L20"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], defensecurl: ["7V", "3T"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["7T", "7L1", "6T", "6L1", "5T", "5L67", "4T", "4L66"], - earthquake: ["7M", "7V", "6M", "5M", "4M", "3M", "3S0"], - ember: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - endure: ["7V", "4M", "3T"], + earthpower: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L67", "4T", "4L66"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "7V", "4M", "3T"], explosion: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M", "3M"], - fireblast: ["7M", "7V", "6M", "5M", "4M", "3M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M"], flameburst: ["7L27", "6L23", "5L23"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L59", "4M", "4L61", "3M", "3L36", "3S0"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L54", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L59", "4M", "4L61", "3M", "3L36", "3S0"], + flareblitz: ["9M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - gyroball: ["7M", "6M", "5M", "4M"], - harden: ["7L13", "7V", "6L13", "5L14", "4L16", "3L22"], - heatwave: ["7T", "6T", "5T", "4T", "3S0"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], + harden: ["9L13", "7L13", "7V", "6L13", "5L14", "4L16", "3L22"], + heatcrash: ["9M"], + heatwave: ["9M", "7T", "6T", "5T", "4T", "3S0"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], - incinerate: ["7L15", "6M", "6L15", "5M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["9L27", "7L15", "6M", "6L15", "5M"], infestation: ["7M", "6M"], - irondefense: ["7T", "6T", "5T", "4T"], - lavaplume: ["7L34", "6L34", "5L37", "4L40"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + lavaplume: ["9L34", "7L34", "6L34", "5L37", "4L40"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - overheat: ["7M", "6M", "5M", "4M", "3M"], - painsplit: ["7T", "6T", "5T", "4T"], - protect: ["7M", "7V", "6M", "5M", "4M", "3M"], - recover: ["7L47", "6L19", "5L19", "4L23"], - reflect: ["7M", "6M", "5M", "4M", "3M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + powergem: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L47", "7L47", "6L19", "5L19", "4L23"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], refresh: ["3S0"], - rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "7L29", "7V", "6M", "6L29", "5M", "5L44", "4M", "4L45", "3T", "3L48"], + rockslide: ["9M", "9L29", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L44", "4M", "4L45", "3T", "3L48"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rockthrow: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], rollout: ["7V", "4T", "3T"], round: ["7M", "6M", "5M"], - sandstorm: ["7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], + scorchingsands: ["9M"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["3T"], - shellsmash: ["7L1", "6L38", "5L38"], - sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], - smog: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + shellsmash: ["9L0", "7L1", "6L38", "5L38"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + smog: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M"], - stealthrock: ["7T", "6T", "5T", "4M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "6M", "5M", "4M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - willowisp: ["7M", "6M", "5M", "4M"], - yawn: ["7L1", "6L1", "5L1", "4L1", "3L1"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], }, eventData: [ {generation: 3, level: 38, moves: ["refresh", "heatwave", "earthquake", "flamethrower"]}, @@ -29145,74 +30558,84 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, swinub: { learnset: { - amnesia: ["8M", "8L35", "7L48", "7V", "6L48", "5L49", "4L49", "3L55"], - ancientpower: ["8E", "7E", "7V", "6E", "5E", "5D", "4T", "4E", "3E", "3S0"], + amnesia: ["9M", "9L35", "8M", "8L35", "7L48", "7V", "6L48", "5L48", "4L49", "3L55"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4T", "4E", "3E", "3S0"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - avalanche: ["8M", "7E", "6E", "5E"], - bite: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - blizzard: ["8M", "8L50", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L46"], - bodyslam: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], - bulldoze: ["8M", "7M", "6M", "5M"], + avalanche: ["9M", "8M", "7E", "6E", "5E"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "9L50", "8M", "8L50", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L46"], + bodyslam: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - charm: ["3S0"], + charm: ["9M", "3S0"], confide: ["7M", "6M"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3T", "3E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L45", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "8L25", "7L14", "7V", "6L14", "5L16", "4M", "4L16", "3T", "3L19"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fissure: ["8E", "7E", "6E", "5E", "4E"], - flail: ["8L10", "7L40", "6L40", "5L40"], - freezedry: ["8E", "7E", "6E"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L45", "8M", "8L45", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "9L25", "8M", "8L25", "7L14", "7V", "6L14", "5L14", "4M", "4L16", "3T", "3L19"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9E", "8E", "7E", "6E", "5E", "4E"], + flail: ["9L10", "8L10", "7L40", "6L40", "5L40"], + freezedry: ["9E", "8E", "7E", "6E"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - iceshard: ["8L15", "7L24", "6L24", "5L28", "4L28"], - iciclecrash: ["8E", "7E", "6E", "5E"], - iciclespear: ["8M", "7E", "6E", "5E", "5D", "4E", "3E"], - icywind: ["8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L25", "4T", "4L25", "3T"], + highhorsepower: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M"], + iceshard: ["9L15", "8L15", "7L24", "6L24", "5L24", "4L28"], + iciclecrash: ["9E", "8E", "7E", "6E", "5E"], + iciclespear: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["9M", "9L30", "8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L21", "4T", "4L25", "3T"], lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], mimic: ["3T"], - mist: ["8L20", "7L35", "7V", "6L35", "5L40", "4L40", "3L37", "3S0"], - mudbomb: ["7L18", "6L18", "5L20", "4L20"], - mudshot: ["8M", "7E", "6E", "5E", "4E", "3E", "3S0"], - mudslap: ["8L1", "7L11", "7V", "6L11", "5L13", "4T", "4L13", "3T"], + mist: ["9L20", "8L20", "7L35", "7V", "6L35", "5L35", "4L40", "3L37", "3S0"], + mudbomb: ["7L18", "6L18", "5L18", "4L20"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E", "3E", "3S0"], + mudslap: ["9M", "9L1", "8L1", "7L11", "7V", "6L11", "5L11", "4T", "4L13", "3T"], mudsport: ["7L5", "6L5", "5L4", "4L4"], naturalgift: ["4M"], odorsleuth: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], - powdersnow: ["8L5", "7L8", "7V", "6L8", "5L8", "4L8", "3L10"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + powdersnow: ["9L5", "8L5", "7L8", "7V", "6L8", "5L8", "4L8", "3L10"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + reversal: ["9M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - sandtomb: ["8M"], - scaryface: ["8M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "8M"], secretpower: ["6M", "4M", "3M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L40", "7L28", "7E", "7V", "6L28", "6E", "5L32", "5E", "4L32", "4E", "3L28", "3E"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L40", "8L40", "7L28", "7E", "7V", "6L28", "6E", "5L28", "5E", "4L32", "4E", "3L28", "3E"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], }, eventData: [ {generation: 3, level: 22, abilities: ["oblivious"], moves: ["charm", "ancientpower", "mist", "mudshot"]}, @@ -29220,79 +30643,87 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, piloswine: { learnset: { - amnesia: ["8M", "8L37", "7L58", "7V", "6L58", "5L65", "4L65", "3L70"], - ancientpower: ["8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + amnesia: ["9M", "9L37", "8M", "8L37", "7L58", "7V", "6L58", "5L58", "4L65", "3L70"], + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - avalanche: ["8M", "4M"], - blizzard: ["8M", "8L58", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L56", "4M", "4L56", "3M", "3L56"], - bodyslam: ["8M", "3T"], - bulldoze: ["8M", "7M", "6M", "5M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "9L58", "8M", "8L58", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L52", "4M", "4L56", "3M", "3L56"], + bodyslam: ["9M", "8M", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], defensecurl: ["7V", "3T"], detect: ["7V"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L51", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L40", "4M", "4L40", "3M"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "8L25", "7L14", "7V", "6L14", "5L16", "4M", "4L16", "3T", "3L1"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flail: ["8L1"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L51", "8M", "8L51", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L40", "4M", "4L40", "3M"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "9L25", "8M", "8L25", "7L14", "7V", "6L14", "5L14", "4M", "4L16", "3T", "3L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furyattack: ["7L1", "7V", "6L33", "5L33", "4L33", "3L33"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], headbutt: ["7V", "4T"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hornattack: ["3L1"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icefang: ["8M", "8L0", "7L24", "6L24", "5L28", "4L28"], - iceshard: ["8L15"], - iciclespear: ["8M"], - icywind: ["8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L25", "4T", "4L25", "3T"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L0", "8M", "8L0", "7L24", "6L24", "5L24", "4L28"], + iceshard: ["9L15", "8L15"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L30", "8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L21", "4T", "4L25", "3T"], lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], mimic: ["3T"], - mist: ["8L20", "7L37", "7V", "6L37", "5L48", "4L48", "3L42"], - mudbomb: ["7L18", "6L18", "5L20", "4L20"], - mudshot: ["8M"], - mudslap: ["8L1", "7L11", "7V", "6L11", "5L13", "4T", "4L13", "3T"], + mist: ["9L20", "8L20", "7L37", "7V", "6L37", "5L37", "4L48", "3L42"], + mudbomb: ["7L18", "6L18", "5L18", "4L20"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L11", "7V", "6L11", "5L11", "4T", "4L13", "3T"], mudsport: ["7L1", "6L1", "5L1", "4L1"], naturalgift: ["4M"], odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], peck: ["7L1", "6L1", "5L1", "4L1"], - powdersnow: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + powdersnow: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + reversal: ["9M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - sandtomb: ["8M"], - scaryface: ["8M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "8M"], secretpower: ["6M", "4M", "3M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - tackle: ["8L1"], - takedown: ["8L44", "7L28", "7V", "6L28", "5L32", "4L32", "3L28"], - thrash: ["8L65", "7L41", "6L41", "5L41"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9L44", "8L44", "7L28", "7V", "6L28", "5L28", "4L32", "3L28"], + terablast: ["9M"], + thrash: ["9L65", "8L65", "7L41", "6L41", "5L41"], + throatchop: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], }, encounters: [ {generation: 6, level: 30}, @@ -29300,83 +30731,94 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, mamoswine: { learnset: { - amnesia: ["8M", "8L37"], - ancientpower: ["8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + amnesia: ["9M", "9L37", "8M", "8L37"], + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], attract: ["8M", "7M", "6M", "5M", "4M"], - avalanche: ["8M", "4M"], - blizzard: ["8M", "8L58", "7M", "7L52", "6M", "6L52", "5M", "5L56", "4M", "4L56"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "9L58", "8M", "8L58", "7M", "7L52", "6M", "6L52", "5M", "5L52", "4M", "4L56"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M"], - bodyslam: ["8M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], - dig: ["8M", "6M", "5M", "4M"], - doublehit: ["8L0", "7L33", "6L33", "5L33", "5S0", "4L33"], + curse: ["9M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9M"], + doublehit: ["9L0", "8L0", "7L33", "6L33", "5L33", "5S0", "4L33"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L51", "7M", "7L46", "6M", "6L46", "6S1", "5M", "5L40", "4M", "4L40"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["8M", "8L25", "7L14", "6L14", "5L16", "4M", "4L16"], - facade: ["8M", "7M", "6M", "5M", "4M"], - flail: ["8L1"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L51", "8M", "8L51", "7M", "7L46", "6M", "6L46", "6S1", "5M", "5L40", "4M", "4L40"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "9L25", "8M", "8L25", "7L14", "6L14", "5L14", "4M", "4L16"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flail: ["9L1", "8L1"], frustration: ["7M", "6M", "5M", "4M"], furyattack: ["7L1"], furycutter: ["4T"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - hail: ["8M", "7M", "7L21", "6M", "6L21", "5M", "5L25", "5S0", "4M", "4L25"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "7L21", "6M", "6L21", "5M", "5L21", "5S0", "4M", "4L25"], + hardpress: ["9M"], + haze: ["9M"], headbutt: ["4T"], - heavyslam: ["8M"], + heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M"], - highhorsepower: ["8M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M"], - icebeam: ["8M", "7M", "6M", "5M", "4M"], - icefang: ["8M", "8L1", "7L24", "6L24", "5L28", "5S0", "4L28"], - iceshard: ["8L15"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "8M", "8L1", "7L24", "6L24", "5L24", "5S0", "4L28"], + iceshard: ["9L15", "8L15"], iciclecrash: ["6S1"], - iciclespear: ["8M", "6S1"], - icywind: ["8M", "8L30", "7T", "6T", "5T", "4T"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], + iciclespear: ["9M", "8M", "6S1"], + icywind: ["9M", "9L30", "8M", "8L30", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lightscreen: ["8M", "7M", "6M", "5M", "4M"], - mist: ["8L20", "7L37", "6L37", "5L48", "4L48"], - mudbomb: ["7L18", "6L18", "5L20", "4L20"], - mudshot: ["8M"], - mudslap: ["8L1", "7L11", "6L11", "5L13", "4T", "4L13"], + mist: ["9L20", "8L20", "7L37", "6L37", "5L37", "4L48"], + mudbomb: ["7L18", "6L18", "5L18", "4L20"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L11", "6L11", "5L11", "4T", "4L13"], mudsport: ["7L1", "6L1", "5L1", "4L1"], naturalgift: ["4M"], odorsleuth: ["7L1", "6L1", "5L1", "4L1"], peck: ["7L1", "6L1", "5L1", "4L1"], - powdersnow: ["8L1", "7L1", "6L1", "5L1", "4L1"], - protect: ["8M", "7M", "6M", "5M", "4M"], - raindance: ["8M", "7M", "6M", "5M", "4M"], - reflect: ["8M", "7M", "6M", "5M", "4M"], - rest: ["8M", "7M", "6M", "5M", "4M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], - rockblast: ["8M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M", "8M"], rockclimb: ["4M"], - rockslide: ["8M", "7M", "6M", "6S1", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "6S1", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M"], - sandtomb: ["8M"], - scaryface: ["8M", "7L1", "6L1", "5L65", "4L65"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "8M", "7L1", "6L1", "5L58", "4L65"], secretpower: ["6M", "4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], snore: ["8M", "7T", "6T", "5T", "4T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["7M", "6M", "5M", "4M"], - tackle: ["8L1"], - takedown: ["8L44", "7L28", "6L28", "5L32", "5S0", "4L32"], - thrash: ["8L65", "7L41", "6L41", "5L41"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9L44", "8L44", "7L28", "6L28", "5L28", "5S0", "4L32"], + terablast: ["9M"], + thrash: ["9L65", "8L65", "7L41", "6L41", "5L41"], + throatchop: ["9M"], toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], }, eventData: [ {generation: 5, level: 34, gender: "M", isHidden: true, moves: ["hail", "icefang", "takedown", "doublehit"]}, @@ -29386,7 +30828,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { corsola: { learnset: { amnesia: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], - ancientpower: ["8L20", "7L17", "7V", "6L17", "5L32", "4T", "4L32", "3L45"], + ancientpower: ["8L20", "7L17", "7V", "6L17", "5L20", "4T", "4L32", "3L45"], aquaring: ["8L10", "7L38", "7E", "6L38", "6E", "5L37", "5E", "4L37", "4E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], barrier: ["7E", "6E", "5E", "4E", "3E"], @@ -29395,7 +30837,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["8M", "3T"], brine: ["8M", "7L27", "6L27", "4M"], bubble: ["7L4", "7V", "6L4", "5L8", "5D", "4L8", "3L12"], - bubblebeam: ["8L25", "7L10", "7V", "6L10", "5L25", "4L25", "3L23"], + bubblebeam: ["8L25", "7L10", "7V", "6L10", "5L17", "4L25", "3L23"], bulldoze: ["8M", "7M", "6M", "5M"], calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], camouflage: ["7E", "6E"], @@ -29407,7 +30849,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dig: ["8M", "6M", "5M", "4M", "3M"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - earthpower: ["8M", "8L45", "7T", "7L47", "6T", "6L47", "5T", "5L53", "4T", "4L53"], + earthpower: ["8M", "8L45", "7T", "7L47", "6T", "6L47", "5T", "5L47", "4T", "4L53"], earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], endeavor: ["7T", "6T", "5T", "4T"], endure: ["8M", "8L15", "7L35", "7V", "6L35", "5L35", "4M", "3T"], @@ -29429,23 +30871,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lifedew: ["8L35"], lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], liquidation: ["8M", "7T", "7E"], - luckychant: ["7L23", "6L23", "5L28", "4L28"], + luckychant: ["7L23", "6L23", "5L23", "4L28"], magiccoat: ["7T", "6T", "5T", "4T"], meteorbeam: ["8T"], mimic: ["3T"], - mirrorcoat: ["8L55", "7L45", "7V", "6L45", "5L48", "4L48", "3L39"], + mirrorcoat: ["8L55", "7L45", "7V", "6L45", "5L45", "4L48", "3L39"], mist: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], mudslap: ["7V", "4T", "3T"], mudsport: ["3S0"], naturalgift: ["4M"], naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], - powergem: ["8M", "8L40", "7L41", "7S1", "6L41", "5L44", "4L44"], + powergem: ["8M", "8L40", "7L41", "7S1", "6L41", "5L41", "4L44"], protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - recover: ["8L50", "7L8", "7V", "6L8", "5L13", "4L13", "3L17"], + recover: ["8L50", "7L8", "7V", "6L8", "5L10", "4L13", "3L17"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - refresh: ["7L13", "6L13", "5L16", "4L16", "3L17"], + refresh: ["7L13", "6L13", "5L13", "4L16", "3L17"], rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], rockblast: ["8M", "7L31", "6L31", "5L20", "4L20", "3L34"], @@ -29464,7 +30906,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spikecannon: ["7L20", "7V", "6L20", "5L40", "4L40", "3L28"], + spikecannon: ["7L20", "7V", "6L20", "5L27", "4L40", "3L28"], stealthrock: ["8M", "7T", "6T", "5T", "5D", "4M"], stompingtantrum: ["8M", "7T"], stoneedge: ["8M", "7M", "6M", "5M", "4M"], @@ -29482,7 +30924,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { whirlpool: ["8M", "7V", "4M"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["tackle", "mudsport"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["tackle", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 7, level: 50, gender: "F", nature: "Serious", abilities: ["hustle"], moves: ["tackle", "powergem"], pokeball: "ultraball"}, ], }, @@ -29642,7 +31084,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], bounce: ["8M", "7T", "6T", "5T", "4T"], brine: ["8M", "5D", "4M"], - bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L19", "4L19", "3L22"], + bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L18", "4L19", "3L22"], bulletseed: ["8M", "8L28", "7L38", "6L38", "5L27", "4M", "4L27"], captivate: ["4M"], chargebeam: ["7M", "6M", "5M", "4M"], @@ -29658,7 +31100,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], flail: ["8E", "7E", "6E", "5E", "4E"], flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], - focusenergy: ["8M", "8L8", "7L22", "7V", "6L22", "5L23", "4L23", "3L33"], + focusenergy: ["8M", "8L8", "7L22", "7V", "6L22", "5L22", "4L23", "3L33"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gunkshot: ["8M", "7T", "6T", "5T", "4T"], haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], @@ -29666,7 +31108,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hydropump: ["8M", "8L36", "7L42", "6L42", "5L42"], hyperbeam: ["8M", "8L44", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L45", "4M", "4L45", "3M", "3L55"], - icebeam: ["8M", "8L32", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L40", "4M", "4L40", "3M", "3L44"], + icebeam: ["8M", "8L32", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L40", "3M", "3L44"], icywind: ["8M", "7T", "6T", "5T", "4T"], incinerate: ["6M", "5M"], lockon: ["8L24", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L11"], @@ -29687,7 +31129,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], secretpower: ["6M", "4M", "3M"], seedbomb: ["8M", "7T", "6T", "5T", "4T"], - signalbeam: ["7T", "7L30", "6T", "6L30", "5T", "5L36", "4T", "4L36"], + signalbeam: ["7T", "7L30", "6T", "6L30", "5T", "5L30", "4T", "4L36"], sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], smackdown: ["7M", "6M", "5M"], snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], @@ -29704,7 +31146,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - waterpulse: ["8L4", "7T", "7L26", "7E", "6T", "6L26", "6E", "5L32", "5E", "4M", "4L32", "3M"], + waterpulse: ["8L4", "7T", "7L26", "7E", "6T", "6L26", "6E", "5L26", "5E", "4M", "4L32", "3M"], waterspout: ["8E", "7E", "6E", "5E", "4E"], whirlpool: ["8M", "7V", "4M"], }, @@ -29718,7 +31160,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], bounce: ["8M", "7T", "6T", "5T", "4T"], brine: ["8M", "4M"], - bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L19", "4L19", "3L22"], + bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L18", "4L19", "3L22"], bulletseed: ["8M", "8L30", "7L46", "6L46", "5L29", "4M", "4L29", "3M"], captivate: ["4M"], chargebeam: ["7M", "6M", "5M", "4M"], @@ -29735,7 +31177,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], flashcannon: ["8M", "7M", "6M", "5M", "4M"], - focusenergy: ["8M", "8L1", "7L22", "7V", "6L22", "5L23", "4L23", "3L38"], + focusenergy: ["8M", "8L1", "7L22", "7V", "6L22", "5L22", "4L23", "3L38"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], gunkshot: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], @@ -29743,7 +31185,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], hydropump: ["8M", "8L42", "7L52", "6L52", "5L52"], hyperbeam: ["8M", "8L54", "7M", "7L58", "7V", "6M", "6L58", "5M", "5L55", "4M", "4L55", "4S0", "3M", "3L70"], - icebeam: ["8M", "8L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L48", "4M", "4L48", "4S0", "3M", "3L54"], + icebeam: ["8M", "8L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L48", "4S0", "3M", "3L54"], icywind: ["8M", "7T", "6T", "5T", "4T"], incinerate: ["6M", "5M"], liquidation: ["8M"], @@ -29767,7 +31209,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], seedbomb: ["8M", "7T", "6T", "5T", "4T"], seismictoss: ["3T"], - signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L42", "4T", "4L42", "4S0"], + signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L34", "4T", "4L42", "4S0"], skittersmack: ["8T"], sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -29789,7 +31231,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterpulse: ["8L1", "7T", "6T", "4M", "3M"], whirlpool: ["8M", "7V", "4M"], wrap: ["8L1"], - wringout: ["7L28", "6L28", "5L36", "4L36"], + wringout: ["7L28", "6L28", "5L28", "4L36"], }, eventData: [ {generation: 4, level: 50, gender: "F", nature: "Serious", abilities: ["suctioncups"], moves: ["octazooka", "icebeam", "signalbeam", "hyperbeam"], pokeball: "cherishball"}, @@ -29831,13 +31273,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], drillpeck: ["9L25", "8L25", "7L25"], drillrun: ["9M", "8M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], + endeavor: ["9M"], endure: ["9M", "8M", "7V", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], + featherdance: ["9M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], - focuspunch: ["7T", "6T", "5D", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "5D", "4M", "3M"], foulplay: ["9M"], freezedry: ["9E", "8E", "7E", "6E"], frostbreath: ["7M", "6M", "5M"], @@ -29847,6 +31291,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], happyhour: ["6S1"], + haze: ["9M"], headbutt: ["7V", "4T"], helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -29856,7 +31301,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], iceshard: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "3T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], @@ -29897,9 +31342,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["present"], pokeball: "pokeball"}, @@ -29914,16 +31359,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aircutter: ["4T"], airslash: ["8M", "8L32", "7L36", "6L36", "5L36"], amnesia: ["8M", "7E", "6E", "5E"], - aquaring: ["8L36", "7L39", "6L39", "5L46", "4L46"], + aquaring: ["8L36", "7L39", "6L39", "5L39", "4L46"], attract: ["8M", "7M", "6M", "5M", "4M"], blizzard: ["8M", "7M", "6M", "5M", "4M"], bounce: ["8M", "8L40", "7T", "7L46", "6T", "6L46", "5T", "5L40", "4T", "4L40"], bubble: ["7L1", "6L1", "5L1", "4L1"], - bubblebeam: ["8L24", "7L7", "6L7", "5L10", "4L10"], + bubblebeam: ["8L24", "7L7", "6L7", "5L7", "4L10"], bulldoze: ["8M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - confuseray: ["8E", "7L11", "6L11", "5L37", "4L37"], + confuseray: ["8E", "7L11", "6L11", "5L11", "4L37"], dive: ["8M", "6M", "5M", "4T"], doubleteam: ["7M", "6M", "5M", "4M"], earthquake: ["8M", "7M", "6M", "5M", "4M"], @@ -29956,22 +31401,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M", "7T", "6T", "5T", "4T"], splash: ["8E", "7E", "6E", "5E", "4E"], substitute: ["8M", "7M", "6M", "5M", "4M"], - supersonic: ["8L4", "7L3", "6L3", "5L4", "4L4"], + supersonic: ["8L4", "7L3", "6L3", "5L3", "4L4"], surf: ["8M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], swift: ["8M", "4T"], tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], tailwind: ["8E", "7T", "7E", "6E"], - takedown: ["8L44", "7L27", "6L27", "5L31", "4L31"], + takedown: ["8L44", "7L27", "6L27", "5L27", "4L31"], toxic: ["7M", "6M", "5M", "4M"], twister: ["8E", "7E", "6E", "5E", "4E"], waterfall: ["8M", "7M", "6M", "5M", "4M"], watergun: ["8L1"], - waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L28", "4M", "4L28"], + waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L19", "4M", "4L28"], watersport: ["7E", "6E", "5E", "4E"], whirlpool: ["8M", "4M"], wideguard: ["8L16", "7L23", "7E", "6L23", "6E", "5L23", "5E"], - wingattack: ["8L8", "7L14", "6L14", "5L22", "4L22"], + wingattack: ["8L8", "7L14", "6L14", "5L14", "4L22"], }, }, mantine: { @@ -29982,7 +31427,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aircutter: ["5D", "4T"], airslash: ["8M", "8L32", "7L36", "6L36", "5L36"], amnesia: ["8M", "7E", "6E", "5E"], - aquaring: ["8L36", "7L39", "6L39", "5L46", "4L46"], + aquaring: ["8L36", "7L39", "6L39", "5L39", "4L46"], aquatail: ["7T", "6T", "5T", "4T"], assurance: ["8M"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], @@ -29997,7 +31442,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["8M", "8L1", "7L1", "6L1", "5L1", "4M", "4L1"], captivate: ["4M"], confide: ["7M", "6M"], - confuseray: ["8E", "7L11", "7V", "6L11", "5L37", "4L37", "3L50"], + confuseray: ["8E", "7L11", "7V", "6L11", "5L11", "4L37", "3L50"], curse: ["7V"], defog: ["7T", "4M"], dive: ["8M", "6M", "5M", "4T", "3M"], @@ -30053,16 +31498,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["8M", "7V", "4T", "3T"], tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], tailwind: ["8E", "7T", "6T", "5T", "4T"], - takedown: ["8L44", "7L27", "7V", "6L27", "5L31", "4L31", "3L22"], + takedown: ["8L44", "7L27", "7V", "6L27", "5L27", "4L31", "3L22"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], twister: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], watergun: ["8L1"], - waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L28", "4M", "4L28", "3M", "3L43"], + waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L19", "4M", "4L28", "3M", "3L43"], watersport: ["7E", "6E", "5E", "4E"], whirlpool: ["8M", "7V", "4M"], wideguard: ["8L16", "7L23", "7E", "6L23", "6E", "5L23", "5E"], - wingattack: ["8L1", "7L14", "7V", "6L14", "5L22", "4L22", "3L36"], + wingattack: ["8L1", "7L14", "7V", "6L14", "5L14", "4L22", "3L36"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["tackle", "bubble", "supersonic"], pokeball: "pokeball"}, @@ -30070,89 +31515,96 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, skarmory: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "8L16", "7L31", "7V", "6L12", "5L12", "4L12", "3L16"], - aircutter: ["8E", "7L12", "6L12", "5L23", "4T", "4L23", "3L29"], - airslash: ["8M", "7L45", "6L42", "5L42", "4L39"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L16", "8M", "8L16", "7L31", "7V", "6L12", "5L12", "4L12", "3L16"], + aircutter: ["9M", "9E", "8E", "7L12", "6L12", "5L23", "4T", "4L23", "3L29"], + airslash: ["9M", "8M", "7L45", "6L42", "5L42", "4L39"], assurance: ["8M", "7E", "6E", "5E", "4E"], attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], autotomize: ["8L32", "7L50", "6L39", "5L39"], - bodypress: ["8M"], - bravebird: ["8M", "8L52", "7E", "6E", "5E", "4E"], + bodypress: ["9M", "8M"], + bravebird: ["9M", "9L52", "8M", "8L52", "7E", "6E", "5E", "4E"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], cut: ["7V", "6M", "5M", "4M", "3M"], - darkpulse: ["8M", "7M", "6M", "5T", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], defog: ["7T", "4M"], detect: ["7V"], doubleedge: ["3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - drillpeck: ["8L36", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], - dualwingbeat: ["8T"], - endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - feint: ["8E", "7L20", "6L20", "5L20", "4L20"], + drillpeck: ["9L36", "8L36", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + drillrun: ["9M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9E", "8E", "7L20", "6L20", "5L20", "4L20"], flash: ["6M", "5M", "4M"], - flashcannon: ["8M", "7M", "6M", "5M", "4M"], - fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - furyattack: ["8L8", "7L17", "7V", "6L17", "5L17", "4L17", "3L26"], + furyattack: ["9L8", "8L8", "7L17", "7V", "6L17", "5L17", "4L17", "3L26"], furycutter: ["4T"], + gigaimpact: ["9M"], guardswap: ["8M", "7E", "6E", "5E", "4E"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T"], - irondefense: ["8M", "8L48", "7T", "6T", "5T", "4T"], - ironhead: ["8M", "7T", "6T", "5T"], - leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - metalclaw: ["8L12", "7L9", "6L9"], - metalsound: ["8L40", "7L42", "6L31", "5L31", "4L31", "3L45"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "9L48", "8M", "8L48", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + metalclaw: ["9M", "9L12", "8L12", "7L9", "6L9"], + metalsound: ["9M", "9L40", "8L40", "7L42", "6L31", "5L31", "4L31", "3L45"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], - nightslash: ["8E", "7L53", "6L50", "5L50", "4L45"], + nightslash: ["9E", "8E", "7L53", "6L50", "5L50", "4L45"], ominouswind: ["4T"], - payback: ["8M", "7M", "6M", "5M", "4M"], - peck: ["8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + payback: ["9L32", "8M", "7M", "6M", "5M", "4M"], + peck: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], pluck: ["5M", "4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], - roost: ["8E", "7M", "6M", "5T", "5D", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roost: ["9E", "8E", "7M", "6M", "5T", "5D", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L4", "7L6", "7V", "6L6", "5L6", "4L6", "3L10"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - sandtomb: ["8M"], + sandattack: ["9L4", "8L4", "7L6", "7V", "6L6", "5L6", "4L6", "3L10"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], secretpower: ["6M", "4M", "3M"], - skyattack: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + skyattack: ["9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], skydrop: ["7M", "6M", "5M"], - slash: ["8L24", "7L39", "6L39", "5L45", "4L42"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + slash: ["9L24", "8L24", "7L39", "6L39", "5L45", "4L42"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spikes: ["8M", "8L44", "7L28", "6L28", "5L28", "4L27", "3L42"], - stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], - steelbeam: ["8T"], - steelwing: ["8M", "8L28", "7M", "7L34", "7V", "6M", "6L34", "5L34", "4M", "4L34", "3M", "3L32"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L44", "8M", "8L44", "7L28", "6L28", "5L28", "4L27", "3L42"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + steelbeam: ["9M", "8T"], + steelwing: ["9L28", "8M", "8L28", "7M", "7L34", "7V", "6M", "6L34", "5L34", "4M", "4L34", "3M", "3L32"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7L23", "7V", "6L9", "5L9", "4T", "4L9", "3T", "3L13"], - swordsdance: ["8M", "7M", "6M", "5M", "4M"], - tailwind: ["7T", "6T", "5T", "4T"], - taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swift: ["9M", "8M", "7L23", "7V", "6L9", "5L9", "4T", "4L9", "3T", "3L13"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], twister: ["4T"], - whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], - wingattack: ["8L20"], - xscissor: ["8M", "7M", "6M", "5M", "4M"], + whirlwind: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["9L20", "8L20"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], }, }, houndour: { @@ -30161,6 +31613,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { beatup: ["9L25", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L27", "4E", "3E"], bite: ["9L16", "7L16", "7V", "6L16", "5L16", "4L17", "3L25"], bodyslam: ["9M", "3T"], + burningjealousy: ["9M"], captivate: ["4M"], charm: ["3S1"], comeuppance: ["9L37"], @@ -30171,7 +31624,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkpulse: ["9M", "7M", "6M", "5T", "5D", "4M"], destinybond: ["9E", "7E", "6E"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], embargo: ["7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L40"], @@ -30197,6 +31650,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["9L20", "6M", "5M"], inferno: ["9L56", "7L56", "6L56", "5L56"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + lashout: ["9M"], leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], mimic: ["3T"], mudshot: ["9M"], @@ -30206,6 +31660,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["7V", "3T"], odorsleuth: ["7L20", "6L20", "5L20", "4L22", "3L31"], overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["9M"], payback: ["7M", "6M", "5M", "4M"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], psychicfangs: ["9M"], @@ -30217,7 +31672,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], - roar: ["9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19", "3S1"], + roar: ["9M", "9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19", "3S1"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["7M", "6M", "5M"], @@ -30231,20 +31686,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - spite: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + spite: ["9M", "9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["9E", "7E", "6E", "5E", "4T"], sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], + superfang: ["9M", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["7V", "4T", "3T"], takedown: ["9M"], taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], thunderfang: ["9M", "9E", "7E", "6E", "5E", "4E"], torment: ["9L32", "7M", "6M", "5M", "4M", "3M"], - toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], uproar: ["7T", "6T", "5T", "4T"], willowisp: ["9M", "7M", "6M", "5M", "4M", "4E", "3E"], @@ -30260,6 +31716,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { beatup: ["9L26", "7L26", "6L26", "5L26", "4L28"], bite: ["9L16", "7L16", "7V", "6L16", "5L16", "4L17", "3L27"], bodyslam: ["9M", "3T"], + burningjealousy: ["9M"], captivate: ["4M"], comeuppance: ["9L41"], confide: ["7M", "6M"], @@ -30268,11 +31725,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7V"], darkpulse: ["9M", "7M", "6M", "6S0", "5T", "4M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L44"], ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endeavor: ["9M"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], feintattack: ["7L35", "7V", "6L35", "5L35", "4L38", "3L43"], @@ -30296,6 +31754,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { inferno: ["9L62", "7L1", "6L1", "5L65"], irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], + lashout: ["9M"], leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], mimic: ["3T"], mudshot: ["9M"], @@ -30305,6 +31764,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["7V", "3T"], odorsleuth: ["7L20", "6L20", "5L20", "4L22", "3L35"], overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["9M"], payback: ["7M", "6M", "5M", "4M"], protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], psychicfangs: ["9M"], @@ -30313,7 +31773,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], reversal: ["9M"], - roar: ["9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19"], + roar: ["9M", "9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["7M", "6M", "5M"], @@ -30327,22 +31787,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["7V", "6M", "5M", "4M", "3M"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], + superfang: ["9M", "7T", "6T", "5T", "4T"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], swift: ["7V", "4T", "3T"], takedown: ["9M"], taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], torment: ["9L35", "7M", "6M", "5M", "4M", "3M"], - toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], uproar: ["7T", "6T", "5T", "4T"], willowisp: ["9M", "7M", "6M", "5M", "4M"], @@ -30364,16 +31825,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { charm: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], confide: ["7M", "6M"], counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], - curse: ["7V"], + curse: ["9M", "7V"], defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L9"], dig: ["9M"], - doubleedge: ["9L42", "7L42", "7V", "6L42", "5L42", "4L42", "3T", "3L49"], + doubleedge: ["9M", "9L42", "7L42", "7V", "6L42", "5L42", "4L42", "3T", "3L49"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthpower: ["9M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], encore: ["9M"], - endeavor: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + endeavor: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], endure: ["9M", "9L19", "7L19", "7V", "6L19", "5L28", "4M", "4L28", "3T", "3L41"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], fissure: ["9E", "7E", "6E", "5E", "4E", "3E"], @@ -30387,12 +31848,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { heavyslam: ["9M", "9E", "7E", "6E", "5E", "5D"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["9E", "7E"], + highhorsepower: ["9M", "9E", "7E"], hypervoice: ["9M", "7T", "6T", "5T"], iceshard: ["9E", "7E", "6E", "5E", "4E"], ironhead: ["9M"], irontail: ["7T", "6T", "5T", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lastresort: ["9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4L37"], mimic: ["3T"], mudshot: ["9M"], @@ -30404,17 +31865,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], rollout: ["9L10", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L33"], round: ["7M", "6M", "5M"], sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], secretpower: ["6M", "4M", "3M"], seedbomb: ["9M", "7T", "6T", "5T", "5D", "4T"], slam: ["9L24", "7L24", "6L24", "5L24", "4L24"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], snore: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], stealthrock: ["9M", "7T", "6T", "5T", "4M"], stompingtantrum: ["9M"], @@ -30451,16 +31914,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { charm: ["9M"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["7V"], + curse: ["9M", "7V"], defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L9"], dig: ["9M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], earthpower: ["9M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "9L43", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L46", "4M", "4L46", "3M", "3L49"], echoedvoice: ["7M", "6M", "5M"], encore: ["9M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "7V", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], @@ -30470,11 +31933,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L54", "4M", "4L54"], growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], gunkshot: ["9M", "7T", "6T", "5T", "4T"], - gyroball: ["7M", "6M", "5M", "4M"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], headbutt: ["7V", "4T"], heavyslam: ["9M"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], hornattack: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], hypervoice: ["9M", "7T", "6T", "5T"], @@ -30483,7 +31947,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "7T", "6T", "5T", "4T"], ironhead: ["9M"], irontail: ["7T", "6T", "5T", "4M", "3M"], - knockoff: ["9L19", "7T", "7L19", "6T", "6L10", "5T", "5L10", "4T", "4L10"], + knockoff: ["9M", "9L19", "7T", "7L19", "6T", "6L10", "5T", "5L10", "4T", "4L10"], lastresort: ["7T", "6T", "5T"], magnitude: ["7L30", "6L19", "5L19", "4L19"], mimic: ["3T"], @@ -30498,7 +31962,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rapidspin: ["9L6", "7L6", "7V", "6L6", "5L6", "4L6", "3L41"], rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockpolish: ["7M", "6M", "5M", "4M"], rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], @@ -30506,11 +31970,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rollout: ["9L10", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L33"], round: ["7M", "6M", "5M"], sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], scaryface: ["9M", "9L37", "7L37", "6L37", "5L39", "4L39"], secretpower: ["6M", "4M", "3M"], seedbomb: ["9M", "7T", "6T", "5T", "4T"], slam: ["9L24", "7L24", "6L24", "5L24", "4L24"], sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], smartstrike: ["9M"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], stealthrock: ["9M", "7T", "6T", "5T", "4M"], @@ -30524,6 +31990,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], @@ -30546,11 +32013,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M", "9L23", "7L23", "7V", "6L23", "5L23", "4L23", "3L41"], - curse: ["7V"], + curse: ["9M", "7V"], detect: ["7V"], dig: ["9M"], disable: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], - doubleedge: ["9L55", "3T"], + doubleedge: ["9M", "9L55", "3T"], doublekick: ["9E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], @@ -30562,8 +32029,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], @@ -30575,6 +32043,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lastresort: ["7T", "6T", "5T", "4T"], leer: ["9L3", "7L3", "7V", "6L3", "5L3", "4L3", "3L7", "3S0"], lightscreen: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + lunge: ["9M"], magicroom: ["7T", "6T", "5T"], mefirst: ["7L1", "7E", "6L1", "6E", "5L55", "5E", "4L53"], megahorn: ["9E", "7E", "6E", "5E", "4E"], @@ -30586,7 +32055,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], psybeam: ["9M"], psychic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], psyshieldbash: ["9E"], psyshock: ["9M", "7M", "6M", "5M"], rage: ["7E", "6E", "5E"], @@ -30595,7 +32064,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], retaliate: ["6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], roleplay: ["9L32", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L31"], round: ["7M", "6M", "5M"], sandattack: ["9L16", "7L16", "7V", "6L16", "5L16", "4L16", "3L27"], @@ -30608,7 +32077,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["7T", "7V", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], - spite: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + spite: ["9M", "9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], stomp: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21"], storedpower: ["9M"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], @@ -30621,7 +32090,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], thrash: ["9E", "7E", "6E", "5E", "4E"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], @@ -30629,7 +32098,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], trick: ["9M"], trickroom: ["9M", "7M", "6M", "5M", "4M"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], wildcharge: ["9M", "7M", "6M", "5M"], workup: ["7M", "5M"], zenheadbutt: ["9M", "9L37", "7T", "7L38", "7E", "6T", "6L38", "6E", "5T", "5L38", "5E", "4T", "4L38", "4E"], @@ -30647,29 +32116,38 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { calmmind: ["9M", "9L27"], chargebeam: ["9M"], confuseray: ["9M", "9L23"], + curse: ["9M"], dig: ["9M"], - doubleedge: ["9L55"], + doubleedge: ["9M", "9L55"], earthpower: ["9M"], earthquake: ["9M"], endure: ["9M"], energyball: ["9M"], + expandingforce: ["9M"], facade: ["9M"], + futuresight: ["9M"], gigaimpact: ["9M"], + gravity: ["9M"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], hypnosis: ["9L10"], imprison: ["9M", "9L49"], leer: ["9L3"], lightscreen: ["9M"], + lunge: ["9M"], megahorn: ["9L62"], protect: ["9M"], psybeam: ["9M"], psychic: ["9M"], + psychicnoise: ["9M"], + psychup: ["9M"], psyshieldbash: ["9L0"], psyshock: ["9M"], raindance: ["9M"], reflect: ["9M"], rest: ["9M"], + roar: ["9M"], roleplay: ["9L32"], sandattack: ["9L16"], scaryface: ["9M"], @@ -30677,6 +32155,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skillswap: ["9M"], sleeptalk: ["9M"], solarbeam: ["9M"], + spite: ["9M"], stomp: ["9L13"], storedpower: ["9M"], substitute: ["9M"], @@ -30686,12 +32165,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "9L21"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunder: ["9M"], thunderbolt: ["9M"], thunderwave: ["9M"], trailblaze: ["9M"], trick: ["9M"], trickroom: ["9M"], + uproar: ["9M"], wildcharge: ["9M"], zenheadbutt: ["9M", "9L37"], }, @@ -30705,7 +32186,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { meanlook: ["5S1"], odorsleuth: ["5S1"], seismictoss: ["6S2"], - sketch: ["7L1", "7V", "6L1", "6S2", "5L1", "5D", "4L1", "3L1", "3S0"], + sketch: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "5D", "4L1", "3L1", "3S0"], sleeptalk: ["5D"], spore: ["5S1"], }, @@ -30823,85 +32304,92 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, raikou: { learnset: { - agility: ["8M"], - aurasphere: ["8M", "4S3"], - bite: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - bodyslam: ["8M", "3T"], + agility: ["9M", "8M"], + aurasphere: ["9M", "8M", "4S3"], + bite: ["9L12", "8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "8L18", "7M", "7L78", "7S7", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], - charge: ["8L1"], - chargebeam: ["7M", "6M", "5M", "4M"], + calmmind: ["9M", "9L18", "8M", "8L18", "7M", "7L78", "7S7", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + charge: ["9M", "9L1", "8L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - crunch: ["8M", "8L42", "7L43", "7V", "7S5", "7S6", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], + crunch: ["9M", "9L42", "8M", "8L42", "7L43", "7V", "7S5", "7S6", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], dig: ["8M", "7V", "6M", "5M", "4M", "3M"], - discharge: ["8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], - doubleedge: ["3T"], + discharge: ["9L54", "9S9", "8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - eerieimpulse: ["8M"], - electricterrain: ["8M"], - endure: ["8M", "7V", "4M", "3T"], - extrasensory: ["8L48", "7L1", "7S7", "6L1", "5L64", "4L64"], - extremespeed: ["8L1", "8S8", "4S3"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M"], + electroweb: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L48", "9S9", "8L48", "7L1", "7S7", "6L1", "5L64", "4L64"], + extremespeed: ["9L1", "8L1", "8S8", "4S3"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - howl: ["8L36", "8S8"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + howl: ["9L36", "8L36", "8S8"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - lightscreen: ["8M", "7M", "6M", "5M", "4M"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], magnetrise: ["7T", "6T", "5T", "4T"], mimic: ["3T"], - mudslap: ["7V", "4T", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], quash: ["7M", "6M", "5M"], - quickattack: ["8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], - raindance: ["8M", "8L66", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M"], - reflect: ["8M", "8L60", "7M", "7L36", "7V", "7S5", "7S6", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + raindance: ["9M", "9L66", "9S9", "8M", "8L66", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M"], + reflect: ["9M", "9L60", "9S9", "8M", "8L60", "7M", "7L36", "7V", "7S5", "7S6", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], risingvoltage: ["8T"], - roar: ["8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + roar: ["9M", "9L24", "8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scald: ["8M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["9M", "8M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - snarl: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spark: ["8L6", "7L29", "7V", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + spark: ["9L6", "8L6", "7L29", "7V", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supercellslam: ["9M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], - throatchop: ["8M", "7T"], - thunder: ["8M", "8L72", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L71", "3M", "3L71"], - thunderbolt: ["8M", "8S8", "7M", "7S7", "6M", "5M", "4M", "3M"], - thunderfang: ["8M", "8L30", "7L50", "7S5", "7S6", "6L50", "6S4", "5L50", "4L50"], - thundershock: ["8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9M", "8M", "7T"], + thunder: ["9M", "9L72", "8M", "8L72", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L71", "3M", "3L71"], + thunderbolt: ["9M", "8M", "8S8", "7M", "7S7", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9L30", "8M", "8L30", "7L50", "7S5", "7S6", "6L50", "6S4", "5L50", "4L50"], + thundershock: ["9L1", "8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - voltswitch: ["8M", "7M", "7S7", "6M", "5M"], - weatherball: ["8M", "8S8", "4S3"], - wildcharge: ["8M", "7M", "6M", "5M"], - zapcannon: ["8L78", "7V", "4S3"], + trailblaze: ["9M"], + voltswitch: ["9M", "8M", "7M", "7S7", "6M", "5M"], + weatherball: ["9M", "8M", "8S8", "4S3"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L78", "8L78", "7V", "4S3"], }, eventData: [ {generation: 3, level: 50, shiny: 1, moves: ["thundershock", "roar", "quickattack", "spark"]}, @@ -30913,6 +32401,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["reflect", "crunch", "thunderfang", "discharge"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["thunderbolt", "voltswitch", "extrasensory", "calmmind"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["thunderbolt", "howl", "extremespeed", "weatherball"]}, + {generation: 9, level: 70, moves: ["raindance", "reflect", "discharge", "extrasensory"]}, ], encounters: [ {generation: 2, level: 40}, @@ -30922,86 +32411,89 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, entei: { learnset: { - agility: ["8M"], - bite: ["8L12", "7L1", "7V", "7S5", "7S6", "6L1", "5L1", "4L1", "3L1"], - bodyslam: ["8M", "3T"], - bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "8L18", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + agility: ["9M", "8M"], + bite: ["9L12", "8L12", "7L1", "7V", "7S5", "7S6", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L18", "8M", "8L18", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], confide: ["7M", "6M"], - crunch: ["8M", "8L42", "8S8"], + crunch: ["9M", "9L42", "8M", "8L42", "8S8"], crushclaw: ["4S3"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], - dig: ["8M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - ember: ["8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], - endure: ["8M", "7V", "4M", "3T"], - eruption: ["8L78", "7L1", "6L1", "5L85", "4L85"], - extrasensory: ["8L48", "7L1", "6L1", "5L64", "4L64"], - extremespeed: ["8L1", "8S8", "4S3"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8M", "8L72", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L71"], - firefang: ["8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], - firespin: ["8M", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], - flamecharge: ["7M", "7S7", "6M", "5M"], - flamethrower: ["8M", "8S8", "7M", "7L36", "7V", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], - flamewheel: ["8L6"], - flareblitz: ["8M", "4S3"], + ember: ["9L1", "8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], + endure: ["9M", "8M", "7V", "4M", "3T"], + eruption: ["9L78", "8L78", "7L1", "6L1", "5L85", "4L85"], + extrasensory: ["9L48", "9S9", "8L48", "7L1", "6L1", "5L64", "4L64"], + extremespeed: ["9L1", "8L1", "8S8", "4S3"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "9L72", "8M", "8L72", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L71"], + firefang: ["9M", "9L30", "8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], + firespin: ["9M", "8M", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + flamecharge: ["9M", "7M", "7S7", "6M", "5M"], + flamethrower: ["9M", "8M", "8S8", "7M", "7L36", "7V", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], + flamewheel: ["9L6", "8L6"], + flareblitz: ["9M", "8M", "4S3"], flash: ["7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["7V", "4T"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], - helpinghand: ["8M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], howl: ["4S3"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], - ironhead: ["8M", "7T", "7S7", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "7S7", "6T", "5T", "4T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lavaplume: ["8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], - leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lavaplume: ["9L54", "9S9", "8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], - overheat: ["8M", "7M", "6M", "5M", "4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], quash: ["7M", "6M", "5M"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - reversal: ["8M"], - roar: ["8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + reversal: ["9M", "8M"], + roar: ["9M", "9L24", "8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sacredfire: ["8L1", "7L1", "7S7", "6L1"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scaryface: ["8M", "8L36", "8S8"], - scorchingsands: ["8T"], + sacredfire: ["9L1", "8L1", "7L1", "7S7", "6L1"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L36", "8M", "8L36", "8S8"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smokescreen: ["8L1"], - snarl: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "8L1"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - stomp: ["8L1", "7L29", "7V", "7S5", "7S6", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "7M", "7S7", "6M", "5M", "4M"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + stomp: ["9L1", "8L1", "7L29", "7V", "7S5", "7S6", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "7S7", "6M", "5M", "4M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "8L66", "7M", "7V", "6M", "5M", "4M", "3M"], - swagger: ["8L60", "7M", "7L43", "7V", "7S5", "7S6", "6M", "6L43", "6S4", "5M", "5L43", "4M", "4L43", "3T", "3L61", "3S1"], - swift: ["8M", "7V", "4T", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L66", "9S9", "8M", "8L66", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L60", "9S9", "8L60", "7M", "7L43", "7V", "7S5", "7S6", "6M", "6L43", "6S4", "5M", "5L43", "4M", "4L43", "3T", "3L61", "3S1"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - weatherball: ["8M"], - willowisp: ["8M", "7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], }, eventData: [ {generation: 3, level: 50, shiny: 1, moves: ["ember", "roar", "firespin", "stomp"]}, @@ -31013,6 +32505,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["stomp", "bite", "swagger", "lavaplume"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["sacredfire", "stoneedge", "ironhead", "flamecharge"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["flamethrower", "scaryface", "extremespeed", "crunch"]}, + {generation: 9, level: 70, moves: ["sunnyday", "swagger", "lavaplume", "extrasensory"]}, ], encounters: [ {generation: 2, level: 40}, @@ -31022,86 +32515,91 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, suicune: { learnset: { - agility: ["8M"], - airslash: ["8M", "4S3"], + agility: ["9M", "8M"], + airslash: ["9M", "8M", "4S3"], aquaring: ["4S3"], aurorabeam: ["7L29", "7V", "7S5", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], - avalanche: ["8M", "4M"], - bite: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - blizzard: ["8M", "8L78", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L85", "3M"], - bodyslam: ["8M", "3T"], + avalanche: ["9M", "8M", "4M"], + bite: ["9L12", "8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["9M", "9L78", "8M", "8L78", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L85", "3M"], + bodyslam: ["9M", "8M", "3T"], brine: ["8M", "4M"], bubblebeam: ["7L1", "7V", "7S5", "6L8", "5L8", "4L8", "3L11", "3S0"], bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "8L18", "8S6", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + calmmind: ["9M", "9L18", "8M", "8L18", "8S6", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + chillingwater: ["9M"], confide: ["7M", "6M"], - crunch: ["8M", "8L42"], + crunch: ["9M", "9L42", "8M", "8L42"], curse: ["7V"], cut: ["7V", "6M", "5M", "4M", "3M"], detect: ["7V"], dig: ["8M", "7V", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], - endure: ["8M", "7V", "4M", "3T"], - extrasensory: ["8L48", "8S6", "7L64", "6L1", "5L64", "4L64"], - extremespeed: ["8L1", "8S6", "4S3"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L48", "9S7", "8L48", "8S6", "7L64", "6L1", "5L64", "4L64"], + extremespeed: ["9L1", "8L1", "8S6", "4S3"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gust: ["8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L72", "7L71", "7V", "6L1", "5L71", "4L71", "3L71"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icefang: ["8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L72", "8M", "8L72", "7L71", "7V", "6L1", "5L71", "4L71", "3L71"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L30", "8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], - liquidation: ["8M", "8S6"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["9M", "8M", "8S6"], mimic: ["3T"], - mirrorcoat: ["8L60", "7L43", "7V", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], - mist: ["8L1", "7L36", "7V", "7S5", "6L36", "6S4", "5L36", "4L36", "4S2", "3L51", "3S1"], + mirrorcoat: ["9L60", "9S7", "8L60", "7L43", "7V", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], + mist: ["9L1", "8L1", "7L36", "7V", "7S5", "6L36", "6S4", "5L36", "4L36", "4S2", "3L51", "3S1"], mudslap: ["7V", "4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], quash: ["7M", "6M", "5M"], - raindance: ["8M", "8L66", "7M", "7L1", "7V", "7S5", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + raindance: ["9M", "9L66", "9S7", "8M", "8L66", "7M", "7L1", "7V", "7S5", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], - roar: ["8L24", "7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "9L24", "8L24", "7M", "7V", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scald: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["9M", "8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M"], - sheercold: ["8L1", "7L1", "4S3"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + sheercold: ["9L1", "8L1", "7L1", "4S3"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], - snarl: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + snowscape: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - surf: ["8M", "8L54", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9L54", "9S7", "8M", "8L54", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "3T"], - tailwind: ["8L36", "7T", "7L57", "6T", "6L1", "5T", "5L57", "4T", "4L57"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "9L36", "8L36", "7T", "7L57", "6T", "6L1", "5T", "5L57", "4T", "4L57"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7V"], - waterpulse: ["8L6", "7T", "6T", "4M", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "7V", "4M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7V"], + waterpulse: ["9M", "9L6", "8L6", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "7V", "4M"], }, eventData: [ {generation: 3, level: 50, shiny: 1, moves: ["bubblebeam", "raindance", "gust", "aurorabeam"]}, @@ -31111,6 +32609,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 50, shiny: 1, moves: ["aurorabeam", "mist", "mirrorcoat", "icefang"]}, {generation: 7, level: 60, shiny: 1, moves: ["bubblebeam", "aurorabeam", "mist", "raindance"]}, {generation: 8, level: 70, shiny: 1, moves: ["liquidation", "extrasensory", "extremespeed", "calmmind"]}, + {generation: 9, level: 70, moves: ["raindance", "mirrorcoat", "surf", "extrasensory"]}, ], encounters: [ {generation: 2, level: 40}, @@ -31131,11 +32630,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chipaway: ["7L14", "6L14", "5L14"], confide: ["7M", "6M"], crunch: ["9M", "9L27", "8M", "8L27", "7L41", "7V", "6L41", "5L41", "4L37", "3L43"], - curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], darkpulse: ["9M", "8M", "8L24", "7M", "7L32", "6M", "6L32", "5T", "5L32", "5D", "4M", "4L28"], detect: ["7V"], dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragondance: ["9M", "9E", "8M", "7E", "6E", "5E", "4E", "3E", "3S0"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -31175,15 +32674,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "9L39", "8M", "8L39", "7M", "7L5", "7V", "6M", "6L5", "5M", "5L5", "5S1", "4M", "4L5", "3M", "3L8", "3S0"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L36"], screech: ["9L21", "8M", "8L21", "7L10", "7V", "6L10", "5L10", "4L10", "3L15"], secretpower: ["6M", "4M", "3M"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["9L24", "7M", "6M", "5M"], + smackdown: ["9M", "9L24", "7M", "6M", "5M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], stomp: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], stompingtantrum: ["9M", "9L18", "8M", "8L18"], @@ -31220,11 +32719,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chipaway: ["7L14", "6L14", "5L14"], confide: ["7M", "6M"], crunch: ["9M", "9L27", "8M", "8L27", "7L47", "7V", "6L47", "5L47", "4L41", "3L47"], - curse: ["7V"], + curse: ["9M", "7V"], darkpulse: ["9M", "8M", "8L24", "7M", "7L34", "6M", "6L34", "5T", "5L34", "4M", "4L28"], detect: ["7V"], dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragondance: ["9M", "8M"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -31237,10 +32736,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["7V", "4T"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], hyperbeam: ["9M", "9L52", "8M", "8L52", "7M", "7L67", "7V", "6M", "6L67", "5M", "5L67", "4M", "4L60", "3M", "3L65"], irondefense: ["9M", "9L0", "8M", "8L0", "7T", "6T", "5T", "4T"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "6T", "5T"], + lashout: ["9M"], leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], mimic: ["3T"], muddywater: ["8M"], @@ -31263,15 +32764,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "9L47", "8M", "8L47", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L38"], screech: ["9L21", "8M", "8L21", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["9L24", "7M", "6M", "5M"], + smackdown: ["9M", "9L24", "7M", "6M", "5M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], stompingtantrum: ["9M", "9L18", "8M", "8L18"], stoneedge: ["9M", "9L37", "8M", "8L37", "7M", "7L60", "6M", "6L60", "5M", "5L60", "4M", "4L54"], @@ -31302,7 +32803,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["7T", "6T", "5T", "4T"], bodypress: ["9M", "8M"], bodyslam: ["9M", "8M", "3T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], @@ -31311,12 +32812,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], counter: ["3T"], crunch: ["9M", "9L27", "8M", "8L27", "7L47", "7V", "6L47", "6S3", "6S4", "6S5", "6S6", "5L47", "5S1", "5S2", "4L41", "3L47", "3S0"], - curse: ["7V"], + curse: ["9M", "7V"], cut: ["7V", "6M", "5M", "4M", "3M"], darkpulse: ["9M", "9L1", "8M", "8L24", "7M", "7L34", "6M", "6L34", "5T", "5L34", "4M", "4L28"], detect: ["7V"], dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["7V"], dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -31335,16 +32836,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], furycutter: ["7V", "4T", "3T"], gigaimpact: ["9M", "9L59", "8M", "8L59", "7M", "7L82", "6M", "6L82", "5M", "5L82", "4M"], + hardpress: ["9M"], headbutt: ["7V", "4T"], heavyslam: ["9M", "8M"], helpinghand: ["9M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], honeclaws: ["6M", "5M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "9L52", "8M", "8L52", "7M", "7L73", "7V", "6M", "6L73", "5M", "5L73", "4M", "4L70", "3M", "3L75"], @@ -31356,13 +32858,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - lashout: ["8T"], + knockoff: ["9M"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], lowkick: ["9M", "8M", "7T", "6T", "6S5", "6S6", "5T", "4T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M"], mudslap: ["9M", "7V", "4T", "3T"], naturalgift: ["4M"], @@ -31377,7 +32880,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "6M", "5M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], revenge: ["8M"], - roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], rockblast: ["9M", "8M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], @@ -31387,7 +32890,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "9L47", "8M", "8L47", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L38", "3S0"], screech: ["9L21", "8M", "8L21", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], @@ -31395,10 +32898,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], - smackdown: ["9L24", "7M", "6M", "5M"], + smackdown: ["9M", "9L24", "7M", "6M", "5M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], stompingtantrum: ["9M", "9L18", "8M", "8L18", "7T"], stoneedge: ["9M", "9L37", "8M", "8L37", "7M", "7L63", "6M", "6L63", "6S3", "6S4", "5M", "5L63", "5S1", "4M", "4L54"], @@ -31439,117 +32942,125 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, lugia: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - aeroblast: ["8L54", "7L43", "7V", "7S7", "7S8", "7S9", "7S10", "6L43", "6S5", "6S6", "5L43", "4L43", "4S2", "4S3", "3L77"], - aircutter: ["4T"], - airslash: ["8M"], - ancientpower: ["8L1", "8S11", "7L57", "7V", "7S7", "7S9", "6L57", "5L57", "4T", "4L57", "4S3", "3L88"], + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aeroblast: ["9L54", "9S12", "8L54", "7L43", "7V", "7S7", "7S8", "7S9", "7S10", "6L43", "6S5", "6S6", "5L43", "4L43", "4S2", "4S3", "3L77"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + ancientpower: ["9L1", "8L1", "8S11", "7L57", "7V", "7S7", "7S9", "6L57", "5L57", "4T", "4L57", "4S3", "3L88"], aquatail: ["7T", "6T", "5T", "4T"], - avalanche: ["8M", "4M"], - blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bravebird: ["9M"], brine: ["8M", "4M"], bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], - chargebeam: ["7M", "6M", "5M", "4M"], + calmmind: ["9M", "9L27", "8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - curse: ["7V"], + curse: ["9M", "7V"], defog: ["7T", "7S8", "4M"], detect: ["7V"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["7V"], - dragonpulse: ["8M", "8S11", "7T", "6T", "5T", "4M"], - dragonrush: ["8L1", "7L15", "6L15", "6S6", "5L15", "4L15"], - dragontail: ["7M", "6M", "5M"], + dragonpulse: ["9M", "8M", "8S11", "7T", "6T", "5T", "4M"], + dragonrush: ["9L1", "8L1", "7L15", "6L15", "6S6", "5L15", "4L15"], + dragontail: ["9M", "7M", "6M", "5M"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], - earthpower: ["8M", "7T", "7S10", "6T", "5T", "4T"], - earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "7S10", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M", "7V", "4M", "3T"], - extrasensory: ["8L36", "8S11", "7L23", "7S7", "7S9", "6L23", "5L23", "4L23", "4S2"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L36", "9S12", "8L36", "8S11", "7L23", "7S7", "7S9", "6L23", "5L23", "4L23", "4S2"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], featherdance: ["3S1"], flash: ["6M", "5M", "4M"], - fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], - gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gust: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], + futuresight: ["9M", "9L81", "8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["7V", "4T"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hurricane: ["8M", "7S8"], - hydropump: ["8M", "8L72", "7L37", "7V", "6L37", "6S5", "6S6", "5L37", "4L29", "4S2", "3L44", "3S0", "3S1"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "7M", "6M", "6S6", "5M", "4M", "3M"], - icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - imprison: ["8M"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + hurricane: ["9M", "8M", "7S8"], + hydropump: ["9M", "9L72", "8M", "8L72", "7L37", "7V", "6L37", "6S5", "6S6", "5L37", "4L29", "4S2", "3L44", "3S0", "3S1"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "6S6", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + liquidation: ["9M"], mimic: ["3T"], - mist: ["8L9"], + mist: ["9L9", "8L9"], mudslap: ["7V", "4T", "3T"], naturalgift: ["7L85", "6L85", "5L85", "4M", "4L51"], nightmare: ["7V", "3T"], ominouswind: ["4T"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "7V", "7S10", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "7S10", "6M", "5M", "4M", "3M"], + psychicnoise: ["9M"], psychoboost: ["3S1"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], punishment: ["7L50", "6L50", "6S5", "5L50", "4L50", "4S3"], - raindance: ["8M", "8L63", "7M", "7L29", "7V", "6M", "6L29", "6S5", "5M", "5L29", "4M", "4L29", "4S2", "3M", "3L55", "3S0"], - recover: ["8L45", "7L71", "7V", "6L71", "5L71", "4L23", "3L33", "3S0"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L63", "9S12", "8M", "8L63", "7M", "7L29", "7V", "6M", "6L29", "6S5", "5M", "5L29", "4M", "4L29", "4S2", "3M", "3L55", "3S0"], + recover: ["9L45", "9S12", "8L45", "7L71", "7V", "6L71", "5L71", "4L23", "3L33", "3S0"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roar: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "8L18", "7M", "7L65", "7V", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S3", "3M", "3L11"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scaleshot: ["8T"], + safeguard: ["9L18", "8M", "8L18", "7M", "7L65", "7V", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S3", "3M", "3L11"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - skillswap: ["8M", "7T", "7S7", "7S9", "6T", "5T", "4M", "3M"], - skyattack: ["8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99"], + skillswap: ["9M", "8M", "7T", "7S7", "7S9", "6T", "5T", "4M", "3M"], + skyattack: ["9L90", "8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99"], skydrop: ["7M", "6M", "5M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], - tailwind: ["7T", "7S8", "7S10", "6T", "5T", "4T"], + swift: ["9M", "8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], + tailwind: ["9M", "7T", "7S8", "7S10", "6T", "5T", "4T"], + takedown: ["9M"], telekinesis: ["7T", "5M"], - thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], - trick: ["8M", "7T", "6T", "5T", "4T"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], twister: ["4T"], - waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - waterpulse: ["7T", "6T", "4M", "3M"], - weatherball: ["8M", "8L1", "7L1", "6L1", "5L1", "5S4", "4L1"], - whirlpool: ["8M", "8S11", "7V", "4M"], - whirlwind: ["8L1", "7L1", "7V", "6L1", "5L1", "5S4", "4L1", "3L1"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S4", "4L1"], + whirlpool: ["9M", "8M", "8S11", "7V", "4M"], + whirlwind: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S4", "4L1", "3L1"], wonderroom: ["8M", "7T", "6T", "5T"], zapcannon: ["7V"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 70, shiny: 1, moves: ["recover", "hydropump", "raindance", "swift"]}, @@ -31564,6 +33075,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["skillswap", "aeroblast", "extrasensory", "ancientpower"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["aeroblast", "earthpower", "psychic", "tailwind"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["dragonpulse", "extrasensory", "whirlpool", "ancientpower"]}, + {generation: 9, level: 70, moves: ["raindance", "aeroblast", "recover", "extrasensory"]}, ], encounters: [ {generation: 2, level: 40}, @@ -31572,105 +33084,109 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, hooh: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - aircutter: ["4T"], - airslash: ["8M"], - ancientpower: ["8L1", "8S10", "7L57", "7V", "7S7", "7S8", "6L57", "5L57", "4T", "4L57", "4S2", "3L88"], - bravebird: ["8M", "7L15", "7S6", "7S9", "6L15", "6S5", "5L15", "4L15"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + ancientpower: ["9L1", "8L1", "8S10", "7L57", "7V", "7S7", "7S8", "6L57", "5L57", "4T", "4L57", "4S2", "3L88"], + bodyslam: ["9M"], + bravebird: ["9M", "8M", "7L15", "7S6", "7S9", "6L15", "6S5", "5L15", "4L15"], bulldoze: ["8M", "7M", "6M", "5M"], burnup: ["8L99", "7S7", "7S8"], - calmmind: ["8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], + calmmind: ["9M", "9L27", "8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], celebrate: ["6S5"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], curse: ["7V"], defog: ["7T", "4M"], detect: ["7V"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], dragonbreath: ["7V"], dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "7M", "7V", "7S9", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "7V", "7S9", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M", "7V", "4M", "3T"], - extrasensory: ["8L36", "8S10", "7L23", "7S7", "7S8", "6L23", "5L23", "4L23", "4S1"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fireblast: ["8M", "8L72", "7M", "7L37", "7V", "6M", "6L37", "6S4", "5M", "5L37", "4M", "4L29", "4S1", "3M", "3L44", "3S0"], - firespin: ["8M"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], - flareblitz: ["8M", "8S10"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L36", "9S11", "8L36", "8S10", "7L23", "7S7", "7S8", "6L23", "5L23", "4L23", "4S1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "9L72", "8M", "8L72", "7M", "7L37", "7V", "6M", "6L37", "6S4", "5M", "5L37", "4M", "4L29", "4S1", "3M", "3L44", "3S0"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["9M", "8M", "8S10"], flash: ["7V", "6M", "5M", "4M", "3M"], - fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], - futuresight: ["8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], - gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gust: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], - helpinghand: ["8M"], + futuresight: ["9M", "9L81", "8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - imprison: ["8M"], + hurricane: ["9M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "8M"], incinerate: ["6M", "5M"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - lifedew: ["8L9"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + lifedew: ["9L9", "8L9"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], mimic: ["3T"], mudslap: ["7V", "4T", "3T"], mysticalfire: ["8M"], naturalgift: ["7L85", "6L85", "5L85", "4M", "4L51"], nightmare: ["7V", "3T"], ominouswind: ["4T"], - overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + overheat: ["9M", "9L99", "8M", "7M", "6M", "5M", "4M", "3M"], pluck: ["5M", "4M"], - protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], punishment: ["7L50", "6L50", "6S4", "5L50", "4L50", "4S2"], - raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - recover: ["8L45", "7L71", "7V", "7S6", "6L71", "6S5", "5L71", "4L23", "3L33", "3S0"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L45", "9S11", "8L45", "7L71", "7V", "7S6", "6L71", "6S5", "5L71", "4L23", "3L33", "3S0"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], return: ["7M", "7V", "6M", "5M", "4M", "3M"], roar: ["7M", "7V", "6M", "5M", "4M", "3M"], rocksmash: ["7V", "6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["8M", "7M", "6M", "5M"], - sacredfire: ["8L54", "7L43", "7V", "7S6", "7S7", "7S8", "7S9", "6L43", "6S4", "6S5", "5L43", "4L43", "4S1", "4S2", "3L77"], - safeguard: ["8M", "8L18", "7M", "7L65", "7V", "7S6", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S2", "3M", "3L11"], - sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - scorchingsands: ["8T"], + sacredfire: ["9L54", "9S11", "8L54", "7L43", "7V", "7S6", "7S7", "7S8", "7S9", "6L43", "6S4", "6S5", "5L43", "4L43", "4S1", "4S2", "3L77"], + safeguard: ["9L18", "8M", "8L18", "7M", "7L65", "7V", "7S6", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S2", "3M", "3L11"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - skyattack: ["8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99", "3T"], + skyattack: ["9L90", "8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99", "3T"], skydrop: ["7M", "6M", "5M"], - sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], strength: ["7V", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "8L63", "8S10", "7M", "7L29", "7V", "6M", "6L29", "6S4", "5M", "5L29", "4M", "4L29", "4S1", "3M", "3L55", "3S0"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L63", "9S11", "8M", "8L63", "8S10", "7M", "7L29", "7V", "6M", "6L29", "6S4", "5M", "5L29", "4M", "4L29", "4S1", "3M", "3L55", "3S0"], swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], - swift: ["8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], - tailwind: ["7T", "7S9", "6T", "5T", "4T"], - thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + swift: ["9M", "8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], + tailwind: ["9M", "7T", "7S9", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], twister: ["4T"], - weatherball: ["8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1"], - whirlwind: ["8L1", "7L1", "7V", "6L1", "5L1", "5S3", "4L1", "3L1"], - willowisp: ["8M", "7M", "6M", "5M", "4M"], + weatherball: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1"], + whirlwind: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S3", "4L1", "3L1"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], zapcannon: ["7V"], - zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 70, shiny: 1, moves: ["recover", "fireblast", "sunnyday", "swift"]}, @@ -31684,6 +33200,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["burnup", "sacredfire", "extrasensory", "ancientpower"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["sacredfire", "bravebird", "earthquake", "tailwind"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["flareblitz", "extrasensory", "sunnyday", "ancientpower"]}, + {generation: 9, level: 70, moves: ["sunnyday", "sacredfire", "recover", "extrasensory"]}, ], encounters: [ {generation: 2, level: 40}, @@ -31816,54 +33333,57 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, treecko: { learnset: { - absorb: ["8E", "7L5", "6L5", "5L6", "5S1", "4L6", "3L6", "3S0"], - acrobatics: ["8M", "7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "7L25", "6L25", "5L31", "4L31", "3L31"], - assurance: ["8M", "8L18"], + absorb: ["9E", "8E", "7L5", "6L5", "5L6", "5S1", "4L6", "3L6", "3S0"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7L25", "6L25", "5L31", "4L31", "3L31"], + assurance: ["9L18", "8M", "8L18"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulletseed: ["8M", "7E", "6E", "5E", "4M", "3M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["9M", "8M", "7E", "6E", "5E", "4M", "3M"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["3T"], - crunch: ["8M", "7E", "6E", "5E", "4E", "3E"], + crunch: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], crushclaw: ["7E", "6E", "5E", "4E", "3E"], cut: ["6M", "5M", "4M", "3M"], - detect: ["8L12", "7L33", "6L33", "5L41", "4L41", "3L41"], - dig: ["8M", "6M", "5M", "4M", "3M"], + detect: ["9L12", "8L12", "7L33", "6L33", "5L41", "4L41", "3L41"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], doubleedge: ["3T"], - doublekick: ["8E", "7E", "6E", "5E", "4E"], - doubleteam: ["8L27", "7M", "6M", "5M", "4M", "3M"], - dragonbreath: ["8E", "7E", "6E", "5E", "4E", "3E"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + doublekick: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["9L27", "8L27", "7M", "6M", "5M", "4M", "3M"], + dragonbreath: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + dragontail: ["9M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dynamicpunch: ["3T"], - endeavor: ["8L36", "7T", "7L45", "7E", "6T", "6L45", "6E", "5T", "5E", "4T", "4E", "3E"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "8L30", "7M", "7L37", "6M", "6L37", "5M", "5L51", "4M", "4L51"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9M", "9L36", "8L36", "7T", "7L45", "7E", "6T", "6L45", "6E", "5T", "5E", "4T", "4E", "3E"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L30", "8M", "8L30", "7M", "7L37", "6M", "6L37", "5M", "5L51", "4M", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focuspunch: ["7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - gigadrain: ["8M", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L46", "4M", "4L46", "3M", "3L46"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grasspledge: ["8T", "7T", "6T", "5T"], + gigadrain: ["9M", "9L21", "8M", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L46", "4M", "4L46", "3M", "3L46"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "8T", "7T", "6T", "5T"], grasswhistle: ["7E", "6E", "5E", "4E"], - grassyglide: ["8T"], - grassyterrain: ["8M", "7E", "6E"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7E", "6E"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], - leafage: ["8L3"], - leafstorm: ["8M", "8L39", "7E", "6E", "5E", "4E"], - leechseed: ["8E", "7E", "6E", "5E", "4E", "3E"], - leer: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - magicalleaf: ["8M", "7E", "6E", "5E", "4E"], - megadrain: ["8L9", "7L13", "6L13", "5L26", "4L26", "3L26"], + leafage: ["9L3", "8L3"], + leafstorm: ["9M", "9L39", "8M", "8L39", "7E", "6E", "5E", "4E"], + leechseed: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + magicalleaf: ["9M", "8M", "7E", "6E", "5E", "4E"], + megadrain: ["9L9", "8L9", "7L13", "6L13", "5L26", "4L26", "3L26"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], @@ -31871,41 +33391,46 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudsport: ["7E", "6E", "5E", "4E", "3E"], naturalgift: ["7E", "6E", "5E", "4M"], naturepower: ["7M", "6M"], - nightslash: ["8E"], - pound: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + nightslash: ["9E", "8E"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], pursuit: ["7L17", "6L16", "5L16", "4L16", "3L16"], - quickattack: ["8L6", "7L9", "6L9", "5L11", "4L11", "3L11"], - quickguard: ["8L15", "7L41", "6L41"], + quickattack: ["9L6", "8L6", "7L9", "6L9", "5L11", "4L11", "3L11"], + quickguard: ["9L15", "8L15", "7L41", "6L41"], razorwind: ["7E", "6E", "5E", "4E"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - screech: ["8M", "8L33", "7L49", "6L21", "5L21", "4L21", "3L21"], + screech: ["9L33", "8M", "8L33", "7L49", "6L21", "5L21", "4L21", "3L21"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], seismictoss: ["3T"], - slam: ["8L24", "7L29", "6L29", "5L36", "4L36", "3L36"], - slash: ["8E"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + slam: ["9L24", "8L24", "7L29", "6L29", "5L36", "4L36", "3L36"], + slash: ["9E", "8E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - synthesis: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + upperhand: ["9M"], workup: ["8M", "7M"], - worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + worryseed: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["pound", "leer", "absorb"], pokeball: "pokeball"}, @@ -31915,156 +33440,168 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { grovyle: { learnset: { absorb: ["7L1", "6L1", "5L1", "4L1", "3L1"], - acrobatics: ["8M", "7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "7L28", "6L28", "5L35", "4L35", "3L35"], - assurance: ["8M", "8L20"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7L28", "6L28", "5L35", "4L35", "3L35"], + assurance: ["9L20", "8M", "8L20"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulletseed: ["8M", "4M", "3M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["3T"], - crunch: ["8M"], + crunch: ["9M", "8M"], cut: ["6M", "5M", "4M", "3M"], - detect: ["8L12", "7L38", "6L38", "5L47", "4L47", "3L47"], - dig: ["8M", "6M", "5M", "4M", "3M"], + detect: ["9L12", "8L12", "7L38", "6L38", "5L47", "4L47", "3L47"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], doubleedge: ["3T"], - doubleteam: ["8L35", "7M", "6M", "5M", "4M", "3M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + doubleteam: ["9L35", "8L35", "7M", "6M", "5M", "4M", "3M"], + dragontail: ["9M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dynamicpunch: ["3T"], - endeavor: ["8L50", "7T", "6T", "5T", "4T"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M", "8L1", "7M", "7L48", "6M", "6L48", "5M", "5L53", "4M", "4L53", "3L53"], + endeavor: ["9M", "9L50", "8L50", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L48", "6M", "6L48", "5M", "5L53", "4M", "4L53", "3L53"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furycutter: ["8L1", "7L1", "6L16", "5L16", "4T", "4L16", "3T", "3L16"], - gigadrain: ["8M", "8L25", "7T", "6T", "5T", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grasspledge: ["8T", "7T", "6T", "5T"], - grassyglide: ["8T"], - grassyterrain: ["8M"], + furycutter: ["9L1", "8L1", "7L1", "6L16", "5L16", "4T", "4L16", "3T", "3L16"], + gigadrain: ["9M", "9L25", "8M", "8L25", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "8T", "7T", "6T", "5T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], - leafage: ["8L1"], - leafblade: ["8M", "8L40", "7L23", "6L23", "5L29", "4L29", "3L29"], - leafstorm: ["8M", "8L55", "7L58", "6L58", "5L59", "4L59"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], - magicalleaf: ["8M"], - megadrain: ["8L9", "7L13", "6L13"], + leafage: ["9L1", "8L1"], + leafblade: ["9L40", "8M", "8L40", "7L23", "6L23", "5L29", "4L29", "3L29"], + leafstorm: ["9M", "9L55", "8M", "8L55", "7L58", "6L58", "5L59", "4L59"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "8M"], + megadrain: ["9L9", "8L9", "7L13", "6L13"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], pursuit: ["7L18", "6L17", "5L17", "4L17", "3L17"], - quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - quickguard: ["8L15", "7L53", "6L53"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["9L15", "8L15", "7L53", "6L53"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - screech: ["8M", "8L45", "7L63", "6L23", "5L23", "4L23", "3L23"], + screech: ["9L45", "8M", "8L45", "7L63", "6L23", "5L23", "4L23", "3L23"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], seismictoss: ["3T"], - slam: ["8L30", "7L33", "6L33", "5L41", "4L41", "3L41"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + slam: ["9L30", "8L30", "7L33", "6L33", "5L41", "4L41", "3L41"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], solarblade: ["8M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], workup: ["8M", "7M"], worryseed: ["7T", "6T", "5T", "4T"], - xscissor: ["8M", "8L1", "7M", "7L43", "6M", "6L43", "5M", "4M"], + xscissor: ["9M", "9L1", "8M", "8L1", "7M", "7L43", "6M", "6L43", "5M", "4M"], }, }, sceptile: { learnset: { absorb: ["7L1", "6L1", "5L1", "4L1", "3L1"], - acrobatics: ["8M", "7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "7L28", "6L28", "5L35", "4L35", "3L35"], - assurance: ["8M", "8L20"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7L28", "6L28", "5L35", "4L35", "3L35"], + assurance: ["9L20", "8M", "8L20"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - breakingswipe: ["8M"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "7M"], - bulldoze: ["8M", "7M", "6M", "5M"], - bulletseed: ["8M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], confide: ["7M", "6M"], counter: ["3T"], crosspoison: ["8M"], - crunch: ["8M"], + crunch: ["9M", "8M"], cut: ["6M", "5M", "4M", "3M"], - detect: ["8L12", "7L39", "6L39", "5L51", "4L51", "3L51"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], - doubleteam: ["8L35", "7M", "6M", "5M", "4M", "3M"], - dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], - dragondance: ["8M"], - dragonpulse: ["8M", "7T", "6T", "5T", "5S0", "4M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + detect: ["9L12", "8L12", "7L39", "6L39", "5L51", "4L51", "3L51"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], + doubleteam: ["9L35", "8L35", "7M", "6M", "5M", "4M", "3M"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "5S0", "4M"], + dragontail: ["9M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dualchop: ["8L0", "7T", "7L1", "6T", "6L36"], dynamicpunch: ["3T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endeavor: ["8L56", "7T", "6T", "5T", "4T"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L59", "4M", "4L59", "3L59"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9M", "9L49", "8L56", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L59", "4M", "4L59", "3L59"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "5S0", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], - frenzyplant: ["8T", "7T", "6T", "5T", "4T"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frenzyplant: ["9M", "8T", "7T", "6T", "5T", "4T"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furycutter: ["8L1", "7L1", "6L16", "4T", "3T", "3L16"], - gigadrain: ["8M", "8L25", "7T", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grasspledge: ["8T", "7T", "6T", "5T"], - grassyglide: ["8T"], - grassyterrain: ["8M"], + furycutter: ["9L1", "8L1", "7L1", "6L16", "4T", "3T", "3L16"], + gigadrain: ["9M", "9L25", "8M", "8L25", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "8T", "7T", "6T", "5T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - leafage: ["8L1"], - leafblade: ["8M", "8L42", "7L23", "6L23", "5L29", "4L29", "3L29"], - leafstorm: ["8M", "8L63", "7L1", "6L1", "5L67", "5S0", "4L67"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], - magicalleaf: ["8M"], - megadrain: ["8L5", "7L13", "6L13"], + leafage: ["9L1", "8L1"], + leafblade: ["9L0", "8M", "8L42", "7L23", "6L23", "5L29", "4L29", "3L29"], + leafstorm: ["9M", "9L56", "8M", "8L63", "7L1", "6L1", "5L67", "5S0", "4L67"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "8M"], + megadrain: ["9L5", "8L5", "7L13", "6L13"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], @@ -32072,45 +33609,52 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], naturepower: ["7M", "6M"], nightslash: ["7L1", "6L1", "5L1", "4L1"], - outrage: ["8M", "7T", "6T", "5T", "4T"], - pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], pursuit: ["7L18", "6L17", "5L17", "4L17", "3L17"], - quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - quickguard: ["8L15", "7L57", "6L57"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["9L15", "8L15", "7L57", "6L57"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], - rockslide: ["8M", "7M", "6M", "5M", "5S0", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - scaleshot: ["8T"], - screech: ["8M", "8L49", "7L69", "6L23", "5L23", "4L23", "3L23"], + scaleshot: ["9M", "8T"], + screech: ["9L42", "8M", "8L49", "7L69", "6L23", "5L23", "4L23", "3L23"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], seismictoss: ["3T"], - slam: ["8L30", "7L33", "6L33", "5L43", "4L43", "3L43"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + shedtail: ["9L1"], + slam: ["9L30", "8L30", "7L33", "6L33", "5L43", "4L43", "3L43"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - solarblade: ["8M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["9M", "8M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], - throatchop: ["8M", "7T"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9M", "8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], workup: ["8M", "7M"], worryseed: ["7T", "6T", "5T", "4T"], - xscissor: ["8M", "8L1", "7M", "7L45", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + xscissor: ["9M", "9L1", "8M", "8L1", "7M", "7L45", "6M", "6L16", "5M", "5L16", "4M", "4L16"], }, eventData: [ {generation: 5, level: 50, shiny: 1, moves: ["leafstorm", "dragonpulse", "focusblast", "rockslide"], pokeball: "cherishball"}, @@ -32118,83 +33662,87 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, torchic: { learnset: { - aerialace: ["8L18", "7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "7E", "6E", "5E", "4E"], + aerialace: ["9M", "9L18", "8L18", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], assurance: ["8M"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - batonpass: ["8M", "7E", "6E", "5E", "4E"], - bodyslam: ["8M", "3T"], - bounce: ["8M", "8L24", "7T", "6T", "5T", "4T"], + batonpass: ["9M", "8M", "7E", "6E", "5E", "4E"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["9L24", "8M", "8L24", "7T", "6T", "5T", "4T"], captivate: ["4M"], confide: ["7M", "6M"], - counter: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], - crushclaw: ["8E", "7E", "6E", "5E", "4E"], - curse: ["8E", "7E", "6E", "5E"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E", "3T", "3E"], + crushclaw: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9M", "8E", "7E", "6E", "5E"], cut: ["6M", "5M", "4M", "3M"], defog: ["7T"], - detect: ["8L12"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + detect: ["9L12", "8L12"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - ember: ["8L3", "7L5", "6L5", "6S2", "5L10", "5S1", "5S2", "4L10", "3L10", "3S0"], - endure: ["8M", "7E", "6E", "5E", "4M", "4E", "3T", "3E"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - featherdance: ["8L33", "7E", "6E", "5E", "4E"], - feint: ["8E", "7E", "6E", "5E", "4E"], - fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], - firepledge: ["8T", "7T", "6T", "5T"], - firespin: ["8M", "7L19", "6L19", "5L25", "4L25", "3L25"], + ember: ["9L3", "8L3", "7L5", "6L5", "6S2", "5L10", "5S1", "5S2", "4L10", "3L10", "3S0"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M", "9L33", "8L33", "7E", "6E", "5E", "4E"], + feint: ["9E", "8E", "7E", "6E", "5E", "4E"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["9M", "8T", "7T", "6T", "5T"], + firespin: ["9M", "8M", "7L19", "6L19", "5L25", "4L25", "3L25"], flameburst: ["7L28", "7E", "6L28", "6E", "5E"], - flamecharge: ["8L9", "7M", "6M", "5M"], - flamethrower: ["8M", "8L30", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], - flareblitz: ["8M", "8L39"], - focusenergy: ["8M", "8L27", "7L32", "6L7", "6S2", "5L7", "5S1", "5S2", "4L7", "3L7", "3S0"], + flamecharge: ["9M", "9L9", "8L9", "7M", "6M", "5M"], + flamethrower: ["9M", "9L30", "8M", "8L30", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + flareblitz: ["9M", "9L39", "8M", "8L39"], + focusenergy: ["9L27", "8M", "8L27", "7L32", "6L7", "6S2", "5L7", "5S1", "5S2", "4L7", "3L7", "3S0"], frustration: ["7M", "6M", "5M", "4M", "3M"], - growl: ["8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], + growl: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], headbutt: ["4T"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], incinerate: ["6M", "5M"], - lastresort: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lastresort: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lowkick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], mirrormove: ["7L41", "6L37", "5L37", "4L37", "3L37"], mudslap: ["4T", "3T"], naturalgift: ["4M"], - nightslash: ["8E", "7E", "6E", "5E", "4E"], - overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], - peck: ["8E", "7L14", "6L14", "5L16", "4L16", "3L16"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - quickattack: ["8L6", "7L23", "6L23", "5L28", "4L28", "3L28"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + nightslash: ["9E", "8E", "7E", "6E", "5E", "4E"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["9E", "8E", "7L14", "6L14", "5L16", "4L16", "3L16"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L6", "8L6", "7L23", "6L23", "5L28", "4L28", "3L28"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - reversal: ["8M", "8L36", "7E", "6E", "5E", "4E", "3E"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + reversal: ["9M", "9L36", "8M", "8L36", "7E", "6E", "5E", "4E", "3E"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L15", "7L10", "6L10", "5L19", "4L19", "3L19"], - scratch: ["8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], + sandattack: ["9L15", "8L15", "7L10", "6L10", "5L19", "4L19", "3L19"], + scratch: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], - slash: ["8L21", "7L37", "6L34", "5L34", "4L34", "3L34"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L21", "8L21", "7L37", "6L34", "5L34", "4L34", "3L34"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], smellingsalts: ["7E", "6E", "5E", "4E", "3E"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], - swift: ["4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - willowisp: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["9M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], workup: ["8M", "7M"], }, eventData: [ @@ -32205,212 +33753,226 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, combusken: { learnset: { - aerialace: ["8L20", "7M", "6M", "5M", "4M", "3M"], - agility: ["8M"], + aerialace: ["9M", "9L20", "8L20", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], assurance: ["8M"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - batonpass: ["8M"], - blazekick: ["8M", "8L40"], - bodyslam: ["8M", "3T"], - bounce: ["8M", "8L30", "7T", "6T", "5T", "4T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulkup: ["8M", "8L45", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], + batonpass: ["9M", "8M"], + blazekick: ["9L40", "8M", "8L40"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["9L30", "8M", "8L30", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "9L45", "8M", "8L45", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], captivate: ["4M"], - coaching: ["8T"], + closecombat: ["9M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], counter: ["3T"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], defog: ["7T"], - detect: ["8L12"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], - doublekick: ["8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], + detect: ["9L12", "8L12"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], + doublekick: ["9L0", "8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dualchop: ["7T", "6T", "5T"], dynamicpunch: ["3T"], echoedvoice: ["7M", "6M", "5M"], - ember: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - featherdance: ["8L1"], - fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], - firepledge: ["8T", "7T", "6T", "5T"], - firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - firespin: ["8M"], - flamecharge: ["8L9", "7M", "7L20", "6M", "6L20", "5M"], - flamethrower: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], - flareblitz: ["8M", "8L55", "7L58", "6L54", "5L54", "4L54"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focusenergy: ["8M", "8L35", "7L36", "6L1", "5L1", "4L1", "3L1"], - focuspunch: ["7T", "6T", "4M", "3M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M", "9L1", "8L1"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["9M", "8T", "7T", "6T", "5T"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L9", "8L9", "7M", "7L20", "6M", "6L20", "5M"], + flamethrower: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["9M", "9L55", "8M", "8L55", "7L58", "6L54", "5L54", "4L54"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L35", "8M", "8L35", "7L36", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["4T"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], incinerate: ["6M", "5M"], lastresort: ["7T", "6T", "5T", "4T"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], mirrormove: ["7L47", "6L43", "5L43", "4L43", "3L43"], mudslap: ["4T", "3T"], naturalgift: ["4M"], - overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], peck: ["7L14", "6L14", "5L17", "4L17", "3L17"], - poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - quickattack: ["8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], revenge: ["8M"], - reversal: ["8M", "8L50"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + reversal: ["9M", "9L50", "8M", "8L50"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], - scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandattack: ["9L15", "8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], skyuppercut: ["7L53", "6L50", "5L50", "4L50", "3L50"], - slash: ["8L25", "7L42", "6L39", "5L39", "4L39", "3L39"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + slash: ["9L25", "8L25", "7L42", "6L39", "5L39", "4L39", "3L39"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - vacuumwave: ["4T"], - willowisp: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["9M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], workup: ["8M", "7M", "5M"], }, }, blaziken: { learnset: { - acrobatics: ["8M", "7M", "6M", "5M"], - aerialace: ["8L20", "7M", "6M", "5M", "4M", "3M"], - agility: ["8M"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "9L20", "8L20", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], assurance: ["8M"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - aurasphere: ["8M"], - batonpass: ["8M"], - blastburn: ["8T", "7T", "6T", "5T", "4T"], - blazekick: ["8M", "8L42", "7L1", "6L36", "5L36", "4L36", "3L36", "3S0"], - bodyslam: ["8M", "3T"], - bounce: ["8M", "8L30", "7T", "6T", "5T", "4T"], - bravebird: ["8M", "8L1", "7L50", "6L49", "5L49", "4L49"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulkup: ["8M", "8L49", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], - bulldoze: ["8M", "7M", "6M", "5M"], + aurasphere: ["9M", "8M"], + batonpass: ["9M", "8M"], + blastburn: ["9M", "8T", "7T", "6T", "5T", "4T"], + blazekick: ["9L0", "8M", "8L42", "7L1", "6L36", "5L36", "4L36", "3L36", "3S0"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["9L30", "8M", "8L30", "7T", "6T", "5T", "4T"], + bravebird: ["9M", "9L63", "8M", "8L1", "7L50", "6L49", "5L49", "4L49"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "9L42", "8M", "8L49", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], - closecombat: ["8M"], - coaching: ["8T"], + closecombat: ["9M", "8M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], counter: ["3T"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], defog: ["7T"], - detect: ["8L12"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], - doublekick: ["8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], + detect: ["9L12", "8L12"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], + doublekick: ["9L1", "8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dualchop: ["7T", "6T", "5T"], dynamicpunch: ["3T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - ember: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - featherdance: ["8L1"], - fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], - firepledge: ["8T", "7T", "6T", "5T"], - firepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], - firespin: ["8M"], - flamecharge: ["8L9", "7M", "7L20", "6M", "6L20", "5M"], - flamethrower: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], - flareblitz: ["8M", "8L63", "7L1", "6L1", "5L66", "5S1", "4L66"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focusenergy: ["8M", "8L35", "7L37", "6L1", "5L1", "4L1", "3L1"], - focuspunch: ["7T", "6T", "4M", "3M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M", "9L1", "8L1"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["9M", "8T", "7T", "6T", "5T"], + firepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L9", "8L9", "7M", "7L20", "6M", "6L20", "5M"], + flamethrower: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["9M", "9L56", "8M", "8L63", "7L1", "6L1", "5L66", "5S1", "4L66"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L35", "8M", "8L35", "7L37", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["4T"], - heatcrash: ["8M"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], - helpinghand: ["8M", "7T", "6T", "5T", "4T"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], highjumpkick: ["7L1", "6L1", "5L1", "5S1"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T", "4T"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], mirrormove: ["3L49", "3S0"], - mudslap: ["4T", "3T"], + mudslap: ["9M", "4T", "3T"], naturalgift: ["4M"], - overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], peck: ["7L14", "6L14", "5L17", "4L17", "3L17"], - poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - quickattack: ["8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], revenge: ["8M"], - reversal: ["8M", "8L56"], - roar: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L49", "8M", "8L56"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], - scorchingsands: ["8T"], - scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandattack: ["9L15", "8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], + scorchingsands: ["9M", "8T"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], skyuppercut: ["7L57", "6L57", "5L59", "4L59", "3L59", "3S0"], - slash: ["8L25", "7L44", "6L42", "5L42", "4L42", "3L42", "3S0"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + slash: ["9L25", "8L25", "7L44", "6L42", "5L42", "4L42", "3L42", "3S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M"], - stoneedge: ["8M", "7M", "6M", "5M", "5S1", "4M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "5S1", "4M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - thunderpunch: ["8M", "7T", "6T", "5T", "5S1", "4T", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "5S1", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uturn: ["8M"], - vacuumwave: ["4T"], - willowisp: ["8M", "7M", "6M", "5M", "4M"], + upperhand: ["9M"], + uproar: ["9M"], + uturn: ["9M", "8M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], workup: ["8M", "7M", "5M"], }, eventData: [ @@ -32420,85 +33982,91 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, mudkip: { learnset: { - amnesia: ["8M", "8L27"], - ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + amnesia: ["9M", "9L27", "8M", "8L27"], + ancientpower: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - avalanche: ["8M", "7E", "6E", "5E"], + avalanche: ["9M", "8M", "7E", "6E", "5E"], barrier: ["7E", "6E"], bide: ["7L17", "6L15", "5L15", "4L15", "3L15"], - bite: ["8E", "7E", "6E", "5E", "4E"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], + bite: ["9E", "8E", "7E", "6E", "5E", "4E"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - counter: ["8E", "7E", "6E", "5E", "4E"], - curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], defensecurl: ["3T"], - dig: ["8M", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["8L36", "7T", "7L44", "6T", "6L44", "5T", "5L46", "4T", "4L46", "3L46"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9M", "9L36", "8L36", "7T", "7L44", "6T", "6L44", "5T", "5L46", "4T", "4L46", "3L46"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], foresight: ["7L12", "6L12", "5L19", "4L19", "3L19"], frustration: ["7M", "6M", "5M", "4M", "3M"], - growl: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L39", "7L41", "6L41", "5L42", "4L42", "3L42"], + hydropump: ["9M", "9L39", "8M", "8L39", "7L41", "6L41", "5L42", "4L42", "3L42"], iceball: ["7E", "6E", "5E", "4E", "3E"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], + liquidation: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], mimic: ["3T"], - mirrorcoat: ["8E", "7E", "6E", "5E", "4E", "3E"], + mirrorcoat: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], mudbomb: ["7E", "6E", "5E", "4E"], - mudslap: ["8E", "7L9", "6L6", "5L6", "5S1", "4T", "4L6", "3T", "3L6", "3S0"], + muddywater: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "9E", "8E", "7L9", "6L6", "5L6", "5S1", "4T", "4L6", "3T", "3L6", "3S0"], mudsport: ["7L20", "6L20", "5L24", "4L24", "3L24"], naturalgift: ["4M"], - protect: ["8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L37", "4M", "4L37", "3M", "3L37"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "9L12", "8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], refresh: ["7E", "6E", "5E", "4E", "3E"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "8L21", "7M", "6M", "5M", "4M"], - rocksmash: ["8L6", "6M", "5M", "4M", "3M"], - rockthrow: ["8L9", "7L25", "6L25"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roar: ["9M"], + rockslide: ["9M", "9L21", "8M", "8L21", "7M", "6M", "5M", "4M"], + rocksmash: ["9L6", "8L6", "6M", "5M", "4M", "3M"], + rockthrow: ["9L9", "8L9", "7L25", "6L25"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L33"], + screech: ["9L33", "8M", "8L33"], secretpower: ["6M", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - sludge: ["8E", "7E", "6E", "5E", "4E"], - sludgewave: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludge: ["9E", "8E", "7E", "6E", "5E", "4E"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stomp: ["8E", "7E", "6E", "5E", "4E", "3E"], + stomp: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superpower: ["8M", "7T", "6T", "5T", "4T"], - supersonic: ["8L15"], - surf: ["8M", "8L30", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9L15", "8L15"], + surf: ["9M", "9L30", "8M", "8L30", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], - takedown: ["8L24", "7L36", "6L28", "5L28", "4L28", "3L28"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + takedown: ["9M", "9L24", "8L24", "7L36", "6L28", "5L28", "4L28", "3L28"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "7E", "6T", "6E", "5E", "4E", "3E"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L3", "7L4", "6L4", "5L10", "5S1", "4L10", "3L10", "3S0"], - waterpledge: ["8T", "7T", "6T", "5T"], - waterpulse: ["8L18", "7T", "6T", "4M", "3M"], - whirlpool: ["8M", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4M", "4L33", "4E", "3L33"], - wideguard: ["8E", "7E", "6E", "5E"], + uproar: ["9M", "8M", "7T", "7E", "6T", "6E", "5E", "4E", "3E"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L3", "8L3", "7L4", "6L4", "5L10", "5S1", "4L10", "3L10", "3S0"], + waterpledge: ["9M", "8T", "7T", "6T", "5T"], + waterpulse: ["9M", "9L18", "8L18", "7T", "6T", "4M", "3M"], + whirlpool: ["9M", "8M", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4M", "4L33", "4E", "3L33"], + wideguard: ["9E", "8E", "7E", "6E", "5E"], workup: ["8M", "7M"], - yawn: ["8E", "7E", "6E", "5E", "4E"], + yawn: ["9E", "8E", "7E", "6E", "5E", "4E"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "mudslap", "watergun"], pokeball: "pokeball"}, @@ -32507,192 +34075,209 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, marshtomp: { learnset: { - amnesia: ["8M", "8L35"], + amnesia: ["9M", "9L35", "8M", "8L35"], ancientpower: ["4T"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - avalanche: ["8M"], + avalanche: ["9M", "8M"], bide: ["7L18", "6L15", "5L15", "4L15", "3L15"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], - bulldoze: ["8M", "7M", "6M", "5M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["3T"], + curse: ["9M"], defensecurl: ["3T"], - dig: ["8M", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L1", "7M", "7L48", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L46"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "8L1", "7M", "7L48", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L46"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["8L50", "7T", "7L52", "6T", "6L52", "5T", "5L53", "4T", "4L53", "3L53"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + endeavor: ["9M", "9L50", "8L50", "7T", "7L52", "6T", "6L52", "5T", "5L53", "4T", "4L53", "3L53"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M"], foresight: ["7L12", "6L12", "5L20", "4L20", "3L20"], frustration: ["7M", "6M", "5M", "4M", "3M"], - growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L55"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + hydropump: ["9M", "9L55", "8M", "8L55"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], + liquidation: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], mudbomb: ["7L22", "6L22", "5L25", "4L25"], - muddywater: ["8M", "8L40", "7L38", "6L37", "5L37", "4L37", "3L37"], - mudshot: ["8M", "8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], - mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + muddywater: ["9M", "9L40", "8M", "8L40", "7L38", "6L37", "5L37", "4L37", "3L37"], + mudshot: ["9M", "9L0", "8M", "8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], + mudslap: ["9M", "7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], mudsport: ["3L25"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L42", "4M", "4L42", "3M", "3L42"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "9L12", "8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L42", "4M", "4L42", "3M", "3L42"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], - rocksmash: ["8L1", "6M", "5M", "4M", "3M"], - rockthrow: ["8L9"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roar: ["9M"], + rockslide: ["9M", "9L25", "8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], + rocksmash: ["9L1", "8L1", "6M", "5M", "4M", "3M"], + rockthrow: ["9L9", "8L9"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scald: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L45"], + screech: ["9L45", "8M", "8L45"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - sludgewave: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superpower: ["8M", "7T", "6T", "5T", "4T"], - supersonic: ["8L15"], - surf: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9L15", "8L15"], + surf: ["9M", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L30", "7L42", "6L31", "5L31", "4L31", "3L31"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L30", "8L30", "7L42", "6L31", "5L31", "4L31", "3L31"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - waterpledge: ["8T", "7T", "6T", "5T"], - waterpulse: ["8L20", "7T", "6T", "4M", "3M"], - whirlpool: ["8M", "4M"], + uproar: ["9M", "8M", "7T", "6T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["9M", "8T", "7T", "6T", "5T"], + waterpulse: ["9M", "9L20", "8L20", "7T", "6T", "4M", "3M"], + whirlpool: ["9M", "8M", "4M"], workup: ["8M", "7M"], }, }, swampert: { learnset: { - amnesia: ["8M", "8L35"], + amnesia: ["9M", "9L35", "8M", "8L35"], ancientpower: ["4T"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - avalanche: ["8M", "4M"], + avalanche: ["9M", "8M", "4M"], bide: ["7L18", "6L15", "5L15", "4L15", "3L15"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodypress: ["8M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulkup: ["8M"], - bulldoze: ["8M", "7M", "6M", "5M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["3T"], + curse: ["9M"], darkestlariat: ["8M"], defensecurl: ["3T"], - dig: ["8M", "6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L52", "5S0", "4M", "4L52", "3M", "3L52"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L1", "8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L52", "5S0", "4M", "4L52", "3M", "3L52"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["8L56", "7T", "7L56", "6T", "6L56", "5T", "5L61", "4T", "4L61", "3L61"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - flipturn: ["8T"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + endeavor: ["9M", "9L56", "8L56", "7T", "7L56", "6T", "6L56", "5T", "5L61", "4T", "4L61", "3L61"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foresight: ["7L12", "6L12", "5L20", "4L20", "3L20"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - hammerarm: ["8L1", "7L1", "6L1", "5L69", "5S0", "4L69"], + hammerarm: ["9L1", "8L1", "7L1", "6L1", "5L69", "5S0", "4L69"], + hardpress: ["9M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], - hydrocannon: ["8T", "7T", "6T", "5T", "4T"], - hydropump: ["8M", "8L63", "5S0"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "5S0", "4M", "3M"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + highhorsepower: ["9M", "8M"], + hydrocannon: ["9M", "8T", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L63", "8M", "8L63", "5S0"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], - liquidation: ["8M"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M"], + liquidation: ["9M", "8M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], mudbomb: ["7L22", "6L22", "5L25", "4L25"], - muddywater: ["8M", "8L42", "7L39", "6L39", "5L39", "4L39", "3L39"], - mudshot: ["8M", "8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], - mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + muddywater: ["9M", "9L42", "8M", "8L42", "7L39", "6L39", "5L39", "4L39", "3L39"], + mudshot: ["9M", "9L1", "8M", "8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], + mudslap: ["9M", "7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], mudsport: ["3L25"], naturalgift: ["4M"], - outrage: ["8M", "7T", "6T", "5T", "4T"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + poisonjab: ["9M"], poweruppunch: ["6M"], - protect: ["8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L46", "4M", "4L46", "3M", "3L46"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "9L12", "8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L46", "4M", "4L46", "3M", "3L46"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], - rockslide: ["8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], - rocksmash: ["8L1", "6M", "5M", "4M", "3M"], - rockthrow: ["8L9"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "9L25", "8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], + rocksmash: ["9L1", "8L1", "6M", "5M", "4M", "3M"], + rockthrow: ["9L9", "8L9"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scald: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L49"], + scaryface: ["9M"], + screech: ["9L49", "8M", "8L49"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - sludgewave: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superpower: ["8M", "7T", "6T", "5T", "4T"], - supersonic: ["8L15"], - surf: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9L15", "8L15"], + surf: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L30", "7L44", "6L31", "5L31", "4L31", "3L31"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L30", "8L30", "7L44", "6L31", "5L31", "4L31", "3L31"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - waterpledge: ["8T", "7T", "6T", "5T"], - waterpulse: ["8L20", "7T", "6T", "4M", "3M"], - whirlpool: ["8M", "4M"], + uproar: ["9M", "8M", "7T", "6T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["9M", "8T", "7T", "6T", "5T"], + waterpulse: ["9M", "9L20", "8L20", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "4M"], workup: ["8M", "7M"], }, eventData: [ @@ -32701,75 +34286,83 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, poochyena: { learnset: { - assurance: ["7L22", "6L22", "5L29", "4L29"], - astonish: ["7E", "6E", "5E", "4E", "3E"], + assurance: ["9L22", "7L22", "6L22", "5L29", "4L29"], + astonish: ["9E", "7E", "6E", "5E", "4E", "3E"], attract: ["7M", "6M", "5M", "4M", "3M"], - bite: ["7L10", "6L10", "5L13", "4L13", "3L13"], + bite: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], bodyslam: ["3T"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], counter: ["3T"], - covet: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], - crunch: ["7L34", "6L37", "5L53", "4L53", "3L41"], - darkpulse: ["7M", "6M", "5T", "5D", "4M"], - dig: ["6M", "5M", "4M", "3M", "3S0"], - doubleedge: ["3T"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + crunch: ["9M", "9L31", "7L34", "6L37", "5L53", "4L53", "3L41"], + darkpulse: ["9M", "7M", "6M", "5T", "5D", "4M"], + dig: ["9M", "6M", "5M", "4M", "3M", "3S0"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], embargo: ["7M", "7L28", "6M", "6L28", "5M", "5L41", "4M", "4L41"], - endure: ["4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - firefang: ["7E", "6E", "5E", "4E"], - foulplay: ["7T", "6T", "5T"], + endeavor: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "7E", "6E", "5E", "4E"], + foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], healbell: ["3S0"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - howl: ["7L4", "6L4", "5L5", "5D", "4L5", "3L5", "3S0"], - hypervoice: ["7T", "6T", "5T"], - icefang: ["7E", "6E", "5E", "4E"], + howl: ["9L4", "7L4", "6L4", "5L5", "5D", "4L5", "3L5", "3S0"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M", "7E", "6E", "5E", "4E"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T", "4M", "3M"], - leer: ["7E", "6E", "5E", "4E", "3E"], + lashout: ["9M"], + leer: ["9L13", "7E", "6E", "5E", "4E", "3E"], mefirst: ["7E", "6E", "5E", "4E"], mimic: ["3T"], - mudslap: ["4T", "3T"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M"], naturalgift: ["4M"], odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], payback: ["7M", "6M", "5M", "4M"], - playrough: ["7L46", "7E", "6E"], - poisonfang: ["7E", "6E", "5E", "5D", "4E", "3E", "3S0"], - protect: ["7M", "6M", "5M", "4M", "3M"], + playrough: ["9M", "9L44", "7L46", "7E", "6E"], + poisonfang: ["9E", "7E", "6E", "5E", "5D", "4E", "3E", "3S0"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], psychup: ["3T"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "7L16", "6M", "6L16", "5M", "5L21", "4M", "4L21", "3M", "3L21"], + roar: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L21", "4M", "4L21", "3M", "3L21"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - sandattack: ["7L7", "6L7", "5L9", "4L9", "3L9"], - scaryface: ["7L25", "6L25", "5L33", "4L33", "3L29"], + sandattack: ["9L7", "7L7", "6L7", "5L9", "4L9", "3L9"], + scaryface: ["9M", "9L25", "7L25", "6L25", "5L33", "4L33", "3L29"], secretpower: ["6M", "4M", "3M"], - shadowball: ["7M", "6M", "5M", "4M", "3M"], - sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], - snarl: ["7M", "6M", "5M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], + snarl: ["9M", "7M", "6M", "5M"], snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], snore: ["7T", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["7L43", "7E", "6L40", "6E", "5L49", "5E", "4T", "4L49", "4E"], - sunnyday: ["7M", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], - swagger: ["7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3T", "3L25"], - tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], - takedown: ["7L40", "6L34", "5L45", "4L45", "3L33"], - taunt: ["7M", "7L31", "6M", "6L31", "5M", "5L37", "4M", "4L37", "3M", "3L37"], - thief: ["7M", "6M", "5M", "4M", "3M", "3L45"], - thunderfang: ["7E", "6E", "5E", "4E"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L40", "7L43", "7E", "6L40", "6E", "5L49", "5E", "4T", "4L49", "4E"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["9L19", "7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3T", "3L25"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L36", "7L40", "6L34", "5L45", "4L45", "3L33"], + taunt: ["9M", "9L28", "7M", "7L31", "6M", "6L31", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M", "3L45"], + thunderfang: ["9M", "7E", "6E", "5E", "4E"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], - yawn: ["7L37", "7E", "6E", "5E", "4E", "3E"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + yawn: ["9L34", "7L37", "7E", "6E", "5E", "4E", "3E"], }, eventData: [ {generation: 3, level: 10, abilities: ["runaway"], moves: ["healbell", "dig", "poisonfang", "howl"]}, @@ -32780,75 +34373,84 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, mightyena: { learnset: { - assurance: ["7L24", "6L24", "5L32", "4L32"], + assurance: ["9L24", "7L24", "6L24", "5L32", "4L32"], attract: ["7M", "6M", "5M", "4M", "3M"], - bite: ["7L1", "6L1", "5L1", "4L1", "3L1"], - bodyslam: ["3T"], + bite: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "3T"], captivate: ["4M"], + charm: ["9M"], confide: ["7M", "6M"], counter: ["3T"], covet: ["7T", "6T", "5T"], - crunch: ["7L1", "7S0", "6L1", "3L47"], - darkpulse: ["7M", "6M", "5T", "4M"], - dig: ["6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + crunch: ["9M", "9L1", "7L1", "7S0", "6L1", "3L47"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], embargo: ["7M", "7L32", "6M", "6L32", "5M", "5L47", "4M", "4L47"], - endure: ["4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - firefang: ["7L1", "7S0"], - foulplay: ["7T", "6T", "5T"], + endeavor: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "7S0"], + foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - howl: ["7L1", "6L1", "5L1", "4L1", "3L1"], - hyperbeam: ["7M", "6M", "5M", "4M", "3M"], - hypervoice: ["7T", "6T", "5T"], - icefang: ["7L1", "7S0"], + howl: ["9L13", "7L1", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M", "9L1", "7L1", "7S0"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], + lashout: ["9M"], + leer: ["9L13"], mimic: ["3T"], - mudslap: ["4T", "3T"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M"], naturalgift: ["4M"], odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], payback: ["7M", "6M", "5M", "4M"], - playrough: ["7L56"], - protect: ["7M", "6M", "5M", "4M", "3M"], + playrough: ["9M", "9L56", "7L56"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], psychup: ["3T"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L22", "3M", "3L22"], + roar: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L22", "3M", "3L22"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], - sandattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], - scaryface: ["7L28", "6L28", "5L37", "4L37", "3L32"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + scaryface: ["9M", "9L28", "7L28", "6L28", "5L37", "4L37", "3L32"], secretpower: ["6M", "4M", "3M"], - shadowball: ["7M", "6M", "5M", "4M", "3M"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], - snarl: ["7M", "7L1", "6M", "6L18", "5M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "9L0", "7M", "7L1", "6M", "6L18", "5M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["7L52", "6L48", "5L62", "4T", "4L62"], - sunnyday: ["7M", "6M", "5M", "4M", "3M"], - superfang: ["7T", "6T", "5T", "4T"], - swagger: ["7M", "7L20", "6M", "6L20", "5M", "5L27", "4M", "4L27", "3T", "3L27"], - tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], - takedown: ["7L48", "6L40", "5L52", "4L52", "3L37"], - taunt: ["7M", "7L36", "6M", "6L36", "5M", "5L42", "4M", "4L42", "3M", "3L42"], - thief: ["7M", "7L1", "6M", "6L1", "5M", "5L57", "4M", "4L57", "3M", "3L52"], - throatchop: ["7T"], - thunderfang: ["7L1", "7S0"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L52", "7L52", "6L48", "5L62", "4T", "4L62"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["9L20", "7M", "7L20", "6M", "6L20", "5M", "5L27", "4M", "4L27", "3T", "3L27"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L48", "7L48", "6L40", "5L52", "4L52", "3L37"], + taunt: ["9M", "9L36", "7M", "7L36", "6M", "6L36", "5M", "5L42", "4M", "4L42", "3M", "3L42"], + terablast: ["9M"], + thief: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L57", "4M", "4L57", "3M", "3L52"], + throatchop: ["9M", "7T"], + thunderfang: ["9M", "9L1", "7L1", "7S0"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], - yawn: ["7L44"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + yawn: ["9L44", "7L44"], }, eventData: [ {generation: 7, level: 64, gender: "M", abilities: ["intimidate"], moves: ["crunch", "firefang", "icefang", "thunderfang"], pokeball: "cherishball"}, @@ -32940,7 +34542,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 3, level: 5, shiny: true, abilities: ["pickup"], moves: ["tackle", "growl", "tailwhip"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: 1, abilities: ["pickup"], moves: ["tackle", "growl", "tailwhip", "extremespeed"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["pickup"], moves: ["tackle", "growl", "tailwhip", "extremespeed"], pokeball: "pokeball", emeraldEventEgg: true}, ], encounters: [ {generation: 3, level: 2}, @@ -33429,69 +35031,78 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, lotad: { learnset: { - absorb: ["8L3", "7L6", "6L5", "5L5", "5D", "4L5", "3L7", "3S0"], - astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + absorb: ["9L3", "8L3", "7L6", "6L5", "5L5", "5D", "4L5", "3L7", "3S0"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], bubble: ["7L9", "6L9"], - bubblebeam: ["8L20", "7L21", "6L21", "5L25", "4L25"], - bulletseed: ["8M", "4M", "3M"], + bubblebeam: ["9L20", "8L20", "7L21", "6L21", "5L25", "4L25"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - counter: ["8E", "7E", "6E", "5E", "4E"], - doubleedge: ["3T"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + disarmingvoice: ["9M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "8L43", "7M", "7L36", "6M", "6L36", "5M", "5L45", "4M", "4L43"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flail: ["8L16", "7E", "6E", "5E", "4E", "3E"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L43", "8M", "8L43", "7M", "7L36", "6M", "6L36", "5M", "5L45", "4M", "4L43"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L16", "8L16", "7E", "6E", "5E", "4E", "3E"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigadrain: ["8M", "8L28", "7T", "7L30", "7E", "6T", "6L30", "6E", "5T", "5E", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - growl: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], + gigadrain: ["9M", "9L28", "8M", "8L28", "7T", "7L30", "7E", "6T", "6L30", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - leechseed: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], - megadrain: ["8L12", "7L18", "6L18", "5L19", "4L19", "3L43"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + leechseed: ["9L24", "8E", "7E", "6E", "5E", "5D", "4E", "3E"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "7L18", "6L18", "5L19", "4L19", "3L43"], mimic: ["3T"], - mist: ["8L9", "7L15", "6L11", "5L11", "4L11", "3L21"], + mist: ["9L9", "8L9", "7L15", "6L11", "5L11", "4L11", "3L21"], + muddywater: ["9M"], naturalgift: ["7L12", "6L12", "5L15", "4M", "4L15"], naturepower: ["8L24", "7M", "7L24", "6M", "6L7", "5L7", "4L7", "3L13"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - raindance: ["8M", "8L33", "7M", "7L27", "6M", "6L27", "5M", "5L37", "4M", "4L35", "3M", "3L31"], - razorleaf: ["8E", "7E", "6E", "5E", "4E", "3E"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L33", "8M", "8L33", "7M", "7L27", "6M", "6L27", "5M", "5L37", "4M", "4L35", "3M", "3L31"], + razorleaf: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - sweetscent: ["8E", "7E", "6E", "5E", "4E", "3E"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - synthesis: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], - teeterdance: ["8E", "7E", "6E", "5E"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - tickle: ["8E", "7E", "6E", "5E", "4E"], + sweetscent: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + takedown: ["9M"], + teeterdance: ["9E", "8E", "7E", "6E", "5E"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], - watergun: ["8L6", "7E", "6E", "5E", "4E", "3E"], - waterpulse: ["7T", "6T", "5D", "4M", "3M"], - whirlpool: ["8M", "4M"], - zenheadbutt: ["8M", "8L38", "7T", "7L33", "6T", "6L31", "5T", "5L31", "4T", "4L27"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + watergun: ["9L6", "8L6", "7E", "6E", "5E", "4E", "3E"], + waterpulse: ["9M", "7T", "6T", "5D", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "4M"], + zenheadbutt: ["9M", "9L38", "8M", "8L38", "7T", "7L33", "6T", "6L31", "5T", "5L31", "4T", "4L27"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["astonish", "growl", "absorb"], pokeball: "pokeball"}, @@ -33502,89 +35113,99 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, lombre: { learnset: { - absorb: ["8L1", "7L6", "6L5", "5L5", "4L5", "3L7"], - astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + absorb: ["9L1", "8L1", "7L6", "6L5", "5L5", "4L5", "3L7"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bubble: ["7L9", "6L9"], - bubblebeam: ["8L24", "7L24", "6L24", "5L25", "4L25"], - bulletseed: ["8M", "4M", "3M"], + bubblebeam: ["9L24", "8L24", "7L24", "6L24", "5L25", "4L25"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], + disarmingvoice: ["9M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dynamicpunch: ["3T"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "8L57", "7M", "6M", "5M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1", "7L16", "6L11", "5L11", "4L11", "3L19"], - firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - flail: ["8L1"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L57", "8M", "8L57", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "7L16", "6L11", "5L11", "4L11", "3L19"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L1", "8L1"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furyswipes: ["8L18", "7L12", "6L12", "5L15", "4L15", "3L25"], - gigadrain: ["8M", "8L36", "7T", "6T", "5T", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - growl: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], + furyswipes: ["9L18", "8L18", "7L12", "6L12", "5L15", "4L15", "3L25"], + gigadrain: ["9M", "9L36", "8M", "8L36", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydropump: ["8M", "8L64", "7L44", "6L44", "5L45", "4L43", "3L49"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - knockoff: ["8L1", "7T", "7L36", "6T", "6L36"], - megadrain: ["8L12"], + hydropump: ["9M", "9L64", "8M", "8L64", "7L44", "6L44", "5L45", "4L43", "3L49"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["9M", "9L1", "8L1", "7T", "7L36", "6T", "6L36"], + leechseed: ["9L30"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12"], megakick: ["8M"], megapunch: ["8M"], + metronome: ["9M"], mimic: ["3T"], - mist: ["8L9"], - muddywater: ["8M"], - mudshot: ["8M"], + mist: ["9L9", "8L9"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "8M"], mudslap: ["4T", "3T"], naturalgift: ["4M"], naturepower: ["8L30", "7M", "7L28", "6M", "6L7", "5L7", "4L7", "3L13"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - raindance: ["8M", "8L43", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "8L43", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], - teeterdance: ["8L1"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M", "3L37"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + takedown: ["9M"], + teeterdance: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3L37"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "7L32", "6T", "6L32", "5T", "5L37", "4T", "4L35", "3L43"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1"], - waterpulse: ["7T", "6T", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "7L32", "6T", "6L32", "5T", "5L37", "4T", "4L35", "3L43"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], watersport: ["7L20", "6L19", "5L19", "4L19", "3L31"], - whirlpool: ["8M", "4M"], - zenheadbutt: ["8M", "8L50", "7T", "7L40", "6T", "6L31", "5T", "5L31", "4T", "4L27"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "4M"], + zenheadbutt: ["9M", "9L50", "8M", "8L50", "7T", "7L40", "6T", "6L31", "5T", "5L31", "4T", "4L27"], }, encounters: [ {generation: 6, level: 13, maxEggMoves: 1}, @@ -33592,98 +35213,107 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ludicolo: { learnset: { - absorb: ["8L1", "3L1"], - amnesia: ["8M"], - astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + absorb: ["9L1", "8L1", "3L1"], + amnesia: ["9M", "8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bubblebeam: ["8L1"], - bulletseed: ["8M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["9L1", "8L1"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["3T"], + disarmingvoice: ["9M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dynamicpunch: ["3T"], echoedvoice: ["7M", "6M", "5M"], - encore: ["8M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1", "5S0"], - firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - flail: ["8L1"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "5S0"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L1", "8L1"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furyswipes: ["8L1"], - gigadrain: ["8M", "8L1", "7T", "6T", "5T", "5S0", "5S1", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + furyswipes: ["9L1", "8L1"], + gigadrain: ["9M", "8M", "8L1", "7T", "6T", "5T", "5S0", "5S1", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydropump: ["8M", "8L1", "5S0"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - hypervoice: ["8M", "7T", "6T", "5T"], - icebeam: ["8M", "7M", "6M", "5M", "5S0", "5S1", "4M", "3M"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - knockoff: ["8L1", "7T", "6T"], - leafstorm: ["8M"], - megadrain: ["8L1", "7L1", "6L1", "5L1", "4L1"], + hydropump: ["9M", "9L1", "8M", "8L1", "5S0"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S0", "5S1", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["9M", "9L1", "8L1", "7T", "6T"], + leafstorm: ["9M", "8M"], + magicalleaf: ["9M"], + megadrain: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - metronome: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], mimic: ["3T"], - mist: ["8L1"], - muddywater: ["8M"], - mudshot: ["8M"], + mist: ["9L1", "8L1"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "8M"], mudslap: ["4T", "3T"], naturalgift: ["4M"], naturepower: ["8L1", "7M", "7L1", "6M", "6L1", "5L1", "4L1", "3L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - raindance: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rocksmash: ["6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M", "5S1"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], seismictoss: ["3T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "5S1", "4M", "3M"], - surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "5S1", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], - teeterdance: ["8L1"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + takedown: ["9M"], + teeterdance: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["8M", "7T", "6T", "5T", "4T"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1"], - waterpulse: ["7T", "6T", "4M", "3M"], - weatherball: ["8M"], - whirlpool: ["8M", "4M"], - zenheadbutt: ["8M", "8L1", "7T", "6T", "5T", "4T"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "4M"], + zenheadbutt: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 5, level: 50, shiny: 1, abilities: ["swiftswim"], moves: ["fakeout", "hydropump", "icebeam", "gigadrain"], pokeball: "cherishball"}, @@ -33692,74 +35322,81 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, seedot: { learnset: { - absorb: ["8L3"], - amnesia: ["8M", "7E", "6E", "5E", "4E", "3E"], - astonish: ["8L6"], + absorb: ["9L3", "8L3"], + amnesia: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + astonish: ["9L6", "8L6"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], beatup: ["8M", "7E", "6E", "5E"], bide: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], - bodyslam: ["8M", "3T"], - bulletseed: ["8M", "7E", "6E", "5E", "5D", "4M", "3M", "3S1"], + bodyslam: ["9M", "8M", "3T"], + bulletseed: ["9M", "8M", "7E", "6E", "5E", "5D", "4M", "3M", "3S1"], captivate: ["4M"], confide: ["7M", "6M"], + curse: ["9M"], defensecurl: ["3T"], - defog: ["8E", "7T", "7E", "6E", "5E"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + defog: ["9E", "8E", "7T", "7E", "6E", "5E"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - explosion: ["8L33", "7M", "7L33", "6M", "6L33", "5M", "5L43", "4M", "4L43", "3T", "3L43"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M", "7M", "6M", "5M", "4E", "3E"], + endeavor: ["9M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["9L33", "8L33", "7M", "7L33", "6M", "6L33", "5M", "5L43", "4M", "4L43", "3T", "3L43"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], flash: ["6M", "5M", "4M", "3M"], - foulplay: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M", "3S1"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M", "7E", "6E"], - growth: ["8L9", "7L9", "6L7", "5L7", "5D", "4L7", "3L7", "3S0"], - harden: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], - headbutt: ["4T"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M", "3S1"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7E", "6E"], + growth: ["9L9", "8L9", "7L9", "6L7", "5L7", "5D", "4L7", "3L7", "3S0"], + harden: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], + headbutt: ["9L21", "4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - leechseed: ["8E", "7E", "6E", "5E", "4E", "3E"], - megadrain: ["8L15"], + leafstorm: ["9M"], + leechseed: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + magicalleaf: ["9M"], + megadrain: ["9L15", "8L15"], mimic: ["3T"], - nastyplot: ["8M", "7E", "6E", "5E", "4E"], + nastyplot: ["9M", "8M", "7E", "6E", "5E", "4E"], naturalgift: ["4M"], naturepower: ["8L21", "7M", "7L15", "6M", "6L13", "5L13", "4L13", "3L13"], - nightslash: ["8E"], - payback: ["8M", "8L18"], + nightslash: ["9E", "8E"], + payback: ["9L18", "8M", "8L18"], powerswap: ["8M", "7E", "6E", "5E", "4E"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - quickattack: ["8E", "7E", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + raindance: ["9M"], razorwind: ["7E", "6E", "5E", "4E", "3E"], refresh: ["3S1"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], - rollout: ["8L12", "4T", "3T"], + rollout: ["9L12", "8L12", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M", "3S1"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], selfdestruct: ["8M", "3T"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - spite: ["7T", "6T", "5T", "4T"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["8L30"], - sunnyday: ["8M", "8L24", "7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L30", "8L30"], + sunnyday: ["9M", "9L24", "8M", "8L24", "7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], swagger: ["7M", "6M", "5M", "4M", "3T"], swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - synthesis: ["8L27", "7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L21"], - tackle: ["8L1"], - takedown: ["8E", "7E", "6E", "5E", "4E", "3E"], + synthesis: ["9L27", "8L27", "7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L21"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + trailblaze: ["9M"], + worryseed: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["bide", "harden", "growth"], pokeball: "pokeball"}, @@ -33771,97 +35408,110 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, nuzleaf: { learnset: { - absorb: ["8L1"], - aircutter: ["8L1"], - amnesia: ["8M"], + absorb: ["9L1", "8L1"], + aircutter: ["9M", "9L1", "8L1"], + amnesia: ["9M", "8M"], assurance: ["8M"], - astonish: ["8L1"], + astonish: ["9L1", "8L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], beatup: ["8M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulletseed: ["8M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], - darkpulse: ["8M", "7M", "6M", "5T", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], defensecurl: ["3T"], defog: ["7T"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], embargo: ["7M", "6M", "5M", "4M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - explosion: ["8L1", "7M", "6M", "5M", "4M", "3T"], - extrasensory: ["8L43", "7L36", "6L36", "5L49", "4L49", "3L49"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1", "7L12", "6L12", "5L19", "4L19", "3L19"], - falseswipe: ["8M", "7M", "6M", "5M"], + endeavor: ["9M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3T"], + extrasensory: ["9L43", "8L43", "7L36", "6L36", "5L49", "4L49", "3L49"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "7L12", "6L12", "5L19", "4L19", "3L19"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], feintattack: ["7L24", "6L24", "5L31", "4L31", "3L31"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - foulplay: ["8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - growth: ["8L9", "7L6", "6L6", "5L7", "4L7", "3L7"], - harden: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L9", "8L9", "7L6", "6L6", "5L7", "4L7", "3L7"], + harden: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - lashout: ["8T"], - leafblade: ["8M", "8L57", "7L28", "6L28"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], - megadrain: ["8L18"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leafblade: ["9L57", "8M", "8L57", "7L28", "6L28"], + leafstorm: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + megadrain: ["9L18", "8L18"], megakick: ["8M", "3T"], mimic: ["3T"], mudslap: ["4T", "3T"], - nastyplot: ["8M"], + nastyplot: ["9M", "8M"], naturalgift: ["4M"], naturepower: ["8L30", "7M", "7L16", "6M", "6L9", "5L13", "4L13", "3L13"], - payback: ["8M", "8L24", "7M", "6M", "5M", "4M"], + payback: ["9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], pound: ["7L1", "6L1", "5L1", "4L1", "3L1"], powerswap: ["8M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - razorleaf: ["8L0", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + raindance: ["9M"], + razorleaf: ["9L0", "8L0", "7L1", "6L1", "5L1", "4L1"], razorwind: ["7L20", "6L20", "5L37", "4L37", "3L37"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], - rollout: ["8L12", "4T", "3T"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L12", "8L12", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], selfdestruct: ["8M", "3T"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - snarl: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - solarblade: ["8M"], - spite: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["8L50"], - sunnyday: ["8M", "8L36", "7M", "6M", "5M", "4M", "3M"], - swagger: ["8L1", "7M", "7L32", "6M", "6L32", "5M", "5L43", "4M", "4L43", "3T", "3L43"], - swift: ["8M", "4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - synthesis: ["8L1", "7T", "6T", "5T", "4T"], - tackle: ["8L1"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - torment: ["8L1", "7M", "7L9", "6M", "6L16", "5M", "5L25", "4M", "4L25", "3M", "3L25"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L50", "8L50"], + sunnyday: ["9M", "9L36", "8M", "8L36", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "7L32", "6M", "6L32", "5M", "5L43", "4M", "4L43", "3T", "3L43"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L30", "8L1", "7T", "6T", "5T", "4T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + torment: ["9L1", "8L1", "7M", "7L9", "6M", "6L16", "5M", "5L25", "4M", "4L25", "3M", "3L25"], toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M"], + weatherball: ["9M"], worryseed: ["7T", "6T", "5T", "4T"], }, encounters: [ @@ -33870,118 +35520,139 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, shiftry: { learnset: { - absorb: ["8L1"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - aircutter: ["8L1", "4T"], - airslash: ["8M"], - amnesia: ["8M"], + absorb: ["9L1", "8L1"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "9L1", "8L1", "4T"], + airslash: ["9M", "8M"], + amnesia: ["9M", "8M"], assurance: ["8M"], - astonish: ["8L1"], + astonish: ["9L1", "8L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - beatup: ["8M"], - bodyslam: ["8M", "3T"], + beatup: ["9L1", "8M"], + bodyslam: ["9M", "8M", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "7M"], - bulletseed: ["8M", "4M", "3M"], + bulletseed: ["9M", "8M", "4M", "3M"], captivate: ["4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], - darkpulse: ["8M", "7M", "6M", "5T", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], defensecurl: ["3T"], defog: ["7T", "4M"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], embargo: ["7M", "6M", "5M", "4M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - explosion: ["8L1", "7M", "6M", "5M", "4M", "3T"], - extrasensory: ["8L1"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - fakeout: ["8L1"], - falseswipe: ["8M", "7M", "6M", "5M"], + endeavor: ["9M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3T"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], feintattack: ["7L1", "6L1", "5L1", "4L1"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - foulplay: ["8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - growth: ["8L1", "3L1"], - harden: ["8L1", "3L1"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "3L1"], + harden: ["9L1", "8L1", "3L1"], headbutt: ["4T"], - heatwave: ["8M"], + heatwave: ["9M", "8M"], + hex: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hurricane: ["8M", "8L1", "7L32", "6L32"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], - lashout: ["8T"], - leafblade: ["8M", "8L1"], - leafstorm: ["8M", "7L44", "6L44", "5L49", "4L49"], + hurricane: ["9M", "9L1", "8M", "8L1", "7L32", "6L32"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + leafblade: ["9L0", "8M", "8L1"], + leafstorm: ["9M", "8M", "7L44", "6L44", "5L49", "4L49"], leaftornado: ["8L0", "7L20", "6L19", "5L19"], - lowkick: ["8M", "7T", "6T", "5T", "4T"], - lowsweep: ["8M", "7M", "6M", "5M"], - megadrain: ["8L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + megadrain: ["9L1", "8L1"], megakick: ["8M", "3T"], mimic: ["3T"], mudslap: ["4T", "3T"], - nastyplot: ["8M", "7L1", "6L1", "5L1", "4L1"], + nastyplot: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], naturalgift: ["4M"], naturepower: ["8L1", "7M", "6M", "3L1"], ominouswind: ["4T"], - payback: ["8M", "8L1", "7M", "6M", "5M", "4M"], + payback: ["9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + petalblizzard: ["9M"], pound: ["3L1"], powerswap: ["8M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - razorleaf: ["8L1", "7L1", "6L1", "5L1", "4L1"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + raindance: ["9M"], + razorleaf: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], revenge: ["8M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + reversal: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], - rollout: ["8L1", "4T", "3T"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L1", "8L1", "4T", "3T"], round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], screech: ["8M"], secretpower: ["6M", "4M", "3M"], - seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], selfdestruct: ["8M", "3T"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], silverwind: ["4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - snarl: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - solarblade: ["8M"], - spite: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["8L1", "4T"], - sunnyday: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], - swagger: ["8L1", "7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], - synthesis: ["8L1", "7T", "6T", "5T", "4T"], - tackle: ["8L1"], - tailwind: ["7T", "6T", "5T", "4T"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - throatchop: ["8M", "7T"], - torment: ["8L1", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L1", "8L1", "4T"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + tackle: ["9L1", "8L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["9M", "8M", "7T"], + torment: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], twister: ["4T"], - whirlwind: ["8L1", "7L1", "6L1", "5L1", "4L1"], + upperhand: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + weatherball: ["9M"], + whirlwind: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + willowisp: ["9M"], worryseed: ["7T", "6T", "5T", "4T"], - xscissor: ["8M", "7M", "6M", "5M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], }, }, taillow: { @@ -34050,7 +35721,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { workup: ["7M", "5M"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "focusenergy", "featherdance"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "focusenergy", "featherdance"], pokeball: "pokeball", emeraldEventEgg: true}, ], encounters: [ {generation: 3, level: 4}, @@ -34129,7 +35800,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["9M", "9E", "8E", "7M", "7L29", "6M", "6L29", "5M", "5L42", "4M", "4L42", "3M"], agility: ["9M", "9L26", "8M", "8L26", "7L36", "7E", "6L36", "6E", "5L37", "5E", "4L37", "4E", "3L55", "3E"], aircutter: ["9M", "9E", "8E", "7L22", "6L22", "5L33", "4T"], - airslash: ["9M", "9L30", "8M", "8L30", "7L40", "6L40", "5L47", "4L47"], + airslash: ["9M", "9L30", "8M", "8L30", "7L40", "6L40", "5L46", "4L47"], aquaring: ["9E", "8E", "7E", "6E", "5E", "4E"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -34141,10 +35812,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { defog: ["7T", "4M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M"], fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], @@ -34152,25 +35824,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hail: ["8M", "7M", "6M", "5M", "4M", "3M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hurricane: ["9M", "9L45", "8M", "8L45", "7L43", "6L43", "5L50"], + hurricane: ["9M", "9L45", "8M", "8L45", "7L43", "6L43", "5L49"], hydropump: ["9M"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], - knockoff: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], liquidation: ["9M", "8M", "7T"], mimic: ["3T"], - mist: ["9L35", "8L35", "7L12", "7E", "6L12", "6E", "5L16", "5E", "4L16", "4E", "3L21", "3E"], + mist: ["9L35", "8L35", "7L12", "7E", "6L12", "6E", "5L14", "5E", "4L16", "4E", "3L21", "3E"], + muddywater: ["9M"], mudslap: ["4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], pluck: ["5M", "4M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - pursuit: ["7L26", "6L26", "5L34", "4L34", "3L43"], - quickattack: ["9L5", "8L5", "7L19", "6L19", "5L24", "4L24", "3L31"], + pursuit: ["7L26", "6L26", "5L30", "4L34", "3L43"], + quickattack: ["9L5", "8L5", "7L19", "6L19", "5L22", "4L24", "3L31"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roost: ["9L40", "8L40", "7M", "7L33", "7E", "6M", "6L26", "6E", "5T", "5L29", "5E", "4M", "4L29"], + roost: ["9L40", "8L40", "7M", "7L33", "7E", "6M", "6L26", "6E", "5T", "5L26", "5E", "4M", "4L29"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], @@ -34196,10 +35869,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], waterfall: ["9M"], watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], - waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L19", "4M", "4L19", "3M"], + waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L17", "4M", "4L19", "3M"], watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["9M"], wideguard: ["9E", "8E", "7E", "6E"], - wingattack: ["9L15", "8L15", "7L8", "6L8", "5L11", "4L11", "3L13"], + wingattack: ["9L15", "8L15", "7L8", "6L8", "5L9", "4L11", "3L13"], }, encounters: [ {generation: 3, level: 2}, @@ -34223,10 +35897,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { defog: ["7T", "4M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9M"], fling: ["9M", "9L34", "8M", "8L34", "7M", "7L28", "6M", "6L39", "5M", "5L43", "4M", "4L43"], fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], @@ -34241,21 +35916,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], liquidation: ["9M", "8M", "7T"], mimic: ["3T"], - mist: ["9L41", "8L41", "7L12", "6L12", "5L16", "4L16", "3L21"], + mist: ["9L41", "8L41", "7L12", "6L12", "5L14", "4L16", "3L21"], + muddywater: ["9M"], mudslap: ["4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], - payback: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L24", "4M", "4L24"], + payback: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L22", "4M", "4L24"], pluck: ["5M", "4M"], protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L25"], quickattack: ["9L1", "8L1"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roost: ["9L48", "8L48", "7M", "7L39", "6M", "6L22", "5T", "5L31", "4M", "4L31"], + roost: ["9L48", "8L48", "7M", "7L39", "6M", "6L22", "5T", "5L28", "4M", "4L31"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], @@ -34286,10 +35962,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], waterfall: ["9M"], watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L19", "4M", "4L19", "3M"], + waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L17", "4M", "4L19", "3M"], watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], - weatherball: ["8M"], - whirlpool: ["8M", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "4M"], wingattack: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1", "3L1"], }, encounters: [ @@ -34299,6 +35975,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ralts: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T", "7E", "6E", "5M"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "3T"], @@ -34321,13 +35998,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { echoedvoice: ["7M", "6M", "5M"], encore: ["9M", "8M", "7E", "6E", "6S3", "5E", "4E"], endure: ["9M", "8M", "4M", "3T"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["9L39", "8M", "8L39", "7L32", "6L32", "5L39", "4L34", "3L36"], + futuresight: ["9M", "9L39", "8M", "8L39", "7L32", "6L32", "5L39", "4L34", "3L36"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "7L1", "6L1", "6S3", "5L1", "4L1", "3L1", "3S0", "3S1"], grudge: ["8E", "7E", "6E", "5E", "4E"], @@ -34340,7 +36017,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], imprison: ["9M", "8M", "7L29", "6L29", "5L34", "4L32", "3L31"], - knockoff: ["9E", "8E"], + knockoff: ["9M", "9E", "8E"], lifedew: ["9L21", "8L21"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], luckychant: ["7L14", "6L14", "5L17", "4L17"], @@ -34358,12 +36035,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mysticalfire: ["9E"], naturalgift: ["4M"], nightmare: ["3T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L18", "8L18"], psychic: ["9M", "9L30", "8M", "8L30", "7M", "7L27", "6M", "6L27", "5M", "5L32", "4M", "4L28", "3M", "3L26"], psychicterrain: ["9M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], psyshock: ["9M", "8M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], @@ -34417,6 +36094,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, kirlia: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T", "5M"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "3T"], @@ -34437,13 +36115,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { echoedvoice: ["7M", "6M", "5M"], encore: ["9M", "8M"], endure: ["9M", "8M", "4M", "3T"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["9L53", "8M", "8L53", "7L37", "6L37", "5L45", "4L39", "3L40"], + futuresight: ["9M", "9L53", "8M", "8L53", "7L37", "6L37", "5L45", "4L39", "3L40"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["4T"], @@ -34456,6 +36134,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], imprison: ["9M", "8M", "7L33", "6L33", "5L39", "4L36", "3L33"], + knockoff: ["9M"], lifedew: ["9L23", "8L23"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], luckychant: ["7L14", "6L14", "5L17", "4L17"], @@ -34470,12 +36149,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L18", "8L18"], psychic: ["9M", "9L38", "8M", "8L38", "7M", "7L30", "6M", "6L30", "5M", "5L36", "4M", "4L31", "3M", "3L26"], psychicterrain: ["9M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], psyshock: ["9M", "8M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], @@ -34509,7 +36188,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M", "3M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], willowisp: ["9M", "8M", "7M", "6M", "5M"], wonderroom: ["8M", "7T", "6T", "5T"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -34520,6 +36199,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, gardevoir: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T", "5M"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], aurasphere: ["9M"], @@ -34542,16 +36222,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M", "8M"], endure: ["9M", "8M", "4M", "3T"], energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["9L63", "8M", "8L63", "7L40", "6L40", "5L53", "4L45", "3L42"], + futuresight: ["9M", "9L63", "8M", "8L63", "7L40", "6L40", "5L53", "4L45", "3L42"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M"], growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], guardswap: ["8M"], headbutt: ["4T"], @@ -34566,6 +36247,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], imprison: ["9M", "8M", "7L35", "6L35", "5L45", "4L40", "3L33"], + knockoff: ["9M"], laserfocus: ["7T"], lifedew: ["9L23", "8L23"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -34576,7 +36258,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megapunch: ["8M"], metronome: ["9M"], mimic: ["3T"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], moonblast: ["9L49", "8L1", "7L1", "6L1", "6S1"], mudslap: ["4T", "3T"], @@ -34584,13 +36266,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nightmare: ["3T"], nightshade: ["9M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], powerswap: ["8M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L18", "8L18"], psychic: ["9M", "9L42", "8M", "8L42", "7M", "7L31", "6M", "6L31", "5M", "5L40", "5S0", "4M", "4L33", "3M", "3L26"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], psyshock: ["9M", "8M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], @@ -34624,7 +36307,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M", "3M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], + vacuumwave: ["9M"], willowisp: ["9M", "8M", "7M", "6M", "5M"], wish: ["9L28", "8L28", "7L14", "6L14", "5L17", "4L17"], wonderroom: ["8M", "7T", "6T", "5T"], @@ -34640,6 +36324,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["9M", "9L18", "8L18", "7M", "7L17", "6M", "5M", "4M"], agility: ["9M"], airslash: ["9M", "8M"], + alluringvoice: ["9M"], allyswitch: ["8M", "7T", "5M"], aquacutter: ["9L1"], attract: ["8M", "7M", "6M", "5M", "4M"], @@ -34653,7 +36338,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["9M", "7M", "6M", "5M", "4M"], charm: ["9M", "9L1", "8M", "8L1"], closecombat: ["9M", "9L63", "8M", "8L63", "7L1", "6L1", "5L59", "4L53"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], confuseray: ["9M"], confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], @@ -34670,7 +36355,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M", "8M"], endure: ["9M", "8M", "4M"], energyball: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], falseswipe: ["9M", "9L23", "8M", "8L23", "7M", "7L44", "6M", "6L44", "5M", "5L50", "4M", "4L45"], feint: ["9L12", "8L12", "7L40", "6L40", "5L45", "4L39"], @@ -34678,10 +36363,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["9L1", "8L1", "7L14", "6L14", "5L17", "4T", "4L17"], - futuresight: ["9L1", "8M", "8L1"], + futuresight: ["9M", "9L1", "8M", "8L1"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1"], @@ -34696,7 +36381,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], icywind: ["9M", "8M"], imprison: ["9M", "9L1", "8M", "8L1"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], leafblade: ["9L1", "8M", "7L1", "6L1", "5L1", "4L1"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], @@ -34709,12 +36394,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicroom: ["8M", "7T", "6T", "5T"], megakick: ["8M"], megapunch: ["8M"], + metronome: ["9M"], mistyterrain: ["9M", "8M"], mudslap: ["4T"], naturalgift: ["4M"], nightshade: ["9M"], nightslash: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], protect: ["9M", "9L28", "8M", "8L28", "7M", "7L49", "6M", "6L49", "5M", "5L53", "4M", "4L50"], @@ -34722,7 +36408,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychic: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], psychicterrain: ["9M"], psychocut: ["9L42", "8M", "8L42", "7L31", "6L31", "5L36", "4L31"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "8M", "7M", "6M", "5M"], quickguard: ["9L56", "8L56", "7L11", "6L11"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -34749,7 +36435,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], storedpower: ["9M", "8M", "7L1", "6L1", "5L64"], strength: ["6M", "5M", "4M"], @@ -34764,7 +36450,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { teleport: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -34772,8 +36458,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], - tripleaxel: ["8T"], - vacuumwave: ["4T"], + tripleaxel: ["9M", "8T"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], wideguard: ["9L56", "8L56", "7L23", "6L23"], willowisp: ["9M", "8M", "7M", "6M", "5M"], wonderroom: ["8M", "7T", "6T", "5T"], @@ -34792,7 +36479,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], bubble: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], bubblebeam: ["9L17", "7L17", "6L17", "5L25", "4L25", "3L25"], - bugbite: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbite: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], bugbuzz: ["9M"], captivate: ["4M"], chillingwater: ["9M"], @@ -34806,7 +36493,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foresight: ["7E", "6E", "5E", "4E", "3E"], frustration: ["7M", "6M", "5M", "4M", "3M"], gigadrain: ["9M", "7T", "6T", "5T", "5D", "4M", "3M"], - haze: ["9L25", "7L25", "6L25", "5L37", "4L37", "3L37"], + haze: ["9M", "9L25", "7L25", "6L25", "5L37", "4L37", "3L37"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hydropump: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3E"], @@ -34815,7 +36502,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { infestation: ["7M", "6M"], leechlife: ["9M"], liquidation: ["9M", "7T"], - lunge: ["9E", "7E"], + lunge: ["9M", "9E", "7E"], mimic: ["3T"], mindreader: ["7E", "6E", "5E", "4E", "3E"], mist: ["9L25", "7L25", "6L25", "5L37", "4L37", "3L37"], @@ -34827,7 +36514,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powersplit: ["9E", "7E", "6E"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], quickattack: ["9L6", "7L6", "6L6", "5L7", "4L7", "3L7", "3S1"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -34837,6 +36524,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], soak: ["9L14"], @@ -34860,7 +36548,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watersport: ["7L14", "6L14", "5L19", "4L19", "3L19"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["bubble", "mudsport"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 3, level: 10, gender: "M", moves: ["bubble", "quickattack"], pokeball: "pokeball"}, ], encounters: [ @@ -34878,7 +36566,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M"], blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], bubble: ["7L1", "6L1", "5L1", "4L1", "3L1"], - bugbite: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], bugbuzz: ["9M", "9L44", "7L1", "6L1", "5L61", "4L61"], captivate: ["4M"], chillingwater: ["9M"], @@ -34886,6 +36574,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { defog: ["7T", "4M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M"], endure: ["9M", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -34895,6 +36584,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L38", "7T", "6T", "5T", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], gust: ["9L17", "7L17", "6L17", "5L22", "4L22", "3L26"], + haze: ["9M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hurricane: ["9M"], @@ -34905,6 +36595,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { infestation: ["7M", "6M"], leechlife: ["9M"], liquidation: ["9M", "7T"], + lunge: ["9M"], mimic: ["3T"], mudshot: ["9M"], mudslap: ["9M", "4T"], @@ -34914,7 +36605,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pounce: ["9M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], quiverdance: ["9L52", "7L1", "6L1", "5L68"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -34928,6 +36619,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], silverwind: ["7L32", "6L32", "5L40", "4M", "4L40", "3L47"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], soak: ["9L1"], @@ -34952,6 +36644,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M"], whirlwind: ["9L1", "7L1", "6L1", "5L54", "4L54", "3L53"], }, encounters: [ @@ -35018,7 +36711,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "7L1", "6L1", "5L5", "4L5", "3L4"], takedown: ["9M"], terablast: ["9M"], - toxic: ["9L33", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], + toxic: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], venoshock: ["9M", "7M", "6M", "5M"], wakeupslap: ["7E", "6E", "5E", "4E"], worryseed: ["9E", "7T", "7L22", "7E", "6T", "6L22", "6E", "5T", "5L29", "5E", "4T", "4L29", "4E"], @@ -35058,7 +36751,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["9L55", "7T", "6T", "4M", "3M"], + focuspunch: ["9M", "9L55", "7T", "6T", "4M", "3M"], forcepalm: ["9L28", "7L28", "6L28", "5L29", "4L29"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], @@ -35112,6 +36805,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spore: ["9L1"], stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M", "3M"], stunspore: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], @@ -35126,7 +36820,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], - toxic: ["9L1", "7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L1", "7M", "6M", "5M", "4M", "3M"], vacuumwave: ["4T"], venoshock: ["9M", "7M", "6M", "5M"], workup: ["7M", "5M"], @@ -35151,7 +36845,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { counter: ["9L30", "7L30", "6L30", "5L43", "4L37", "3T", "3L37"], covet: ["9L22", "7T", "7L22", "6T", "6L22", "5T", "5L31", "4L31", "3L31"], crushclaw: ["9E", "7E", "6E", "5E", "4E", "3E"], - curse: ["9E", "7E", "6E", "5E", "4E", "3E"], + curse: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], cut: ["6M", "5M", "4M", "3M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], @@ -35166,7 +36860,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flail: ["9L33", "7L33", "6L33", "5L49", "4L43", "3L43"], flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], gunkshot: ["9M", "7T", "6T", "5T", "4T"], @@ -35221,7 +36915,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["9L25"], + throatchop: ["9M", "9L25"], thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], @@ -35251,14 +36945,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], counter: ["9L33", "7L33", "6L33", "5L37", "4L37", "3T", "3L37"], covet: ["7T", "6T", "5T"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], dig: ["9M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dynamicpunch: ["3T"], earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], encore: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endeavor: ["9M"], endure: ["9M", "9L17", "7L17", "6L17", "5L25", "4M", "4L25", "3T", "3L25"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["9M"], @@ -35268,7 +36964,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - focuspunch: ["9L37", "7T", "7L37", "6T", "6L37", "5L49", "4M", "4L43", "3M", "3L43"], + focuspunch: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5L49", "4M", "4L43", "3M", "3L43"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], furyswipes: ["9L14", "7L14", "6L14", "5L19", "4L19", "3L19"], @@ -35282,6 +36978,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], + knockoff: ["9M"], + lashout: ["9M"], lowkick: ["9M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "7M", "6M", "5M"], megakick: ["3T"], @@ -35302,7 +37000,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], reversal: ["9M", "9L43", "7L1", "6L1", "5L55", "4L49", "3L49"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], @@ -35330,14 +37028,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["9L27"], + throatchop: ["9M", "9L27"], thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], thunderwave: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - uproar: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + uproar: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], waterpulse: ["7T", "6T", "4M", "3M"], workup: ["7M", "5M"], xscissor: ["9M"], @@ -35363,14 +37061,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], counter: ["9L33", "7L33", "6L33", "5L43", "4L37", "3T", "3L37"], covet: ["9L23", "7T", "7L23", "6T", "6L23", "5T", "5L31", "4L31", "3L31"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], dig: ["9M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dynamicpunch: ["3T"], earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], encore: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endeavor: ["9M"], endure: ["9M", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["9M"], @@ -35381,16 +37081,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], fling: ["9M", "9L45", "7M", "7L1", "6M", "6L1", "5M", "5L55", "4M", "4L49"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], gigaimpact: ["9M", "7M", "6M", "5M", "4M", "4S0"], gunkshot: ["9M", "7T", "6T", "5T", "4T"], hammerarm: ["9L63", "7L1", "6L1", "5L67", "4L61"], + hardpress: ["9M"], headbutt: ["4T"], heavyslam: ["9M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], honeclaws: ["6M", "5M"], hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], hypervoice: ["9M"], @@ -35398,6 +37100,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], + knockoff: ["9M"], + lashout: ["9M"], lowkick: ["9M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "7M", "6M", "5M"], megakick: ["9L52", "3T"], @@ -35421,7 +37125,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M", "4S0", "3M"], reversal: ["9M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], @@ -35437,7 +37141,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shockwave: ["7T", "6T", "4M", "3M"], slackoff: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], stompingtantrum: ["9M", "7T"], @@ -35450,13 +37154,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["9L27"], + throatchop: ["9M", "9L27"], thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], thunderwave: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], + uproar: ["9M"], waterpulse: ["7T", "6T", "4M", "3M"], wildcharge: ["9M"], workup: ["7M", "5M"], @@ -35753,7 +37458,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { zenheadbutt: ["8M", "7T", "6T", "5T", "5D", "4T"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["pound", "uproar", "teeterdance"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["pound", "uproar", "teeterdance"], pokeball: "pokeball", emeraldEventEgg: true}, ], }, loudred: { @@ -35959,12 +37664,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], chipaway: ["7E", "6E", "5E"], closecombat: ["9M", "9L40", "7L40", "6L40", "5L40", "4L40"], + coaching: ["9M"], confide: ["7M", "6M"], counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], crosschop: ["9E", "7E", "6E", "5E", "4E", "3E"], detect: ["9L28", "7E", "6E", "5E", "4E", "3E"], dig: ["9M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dynamicpunch: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], @@ -35978,7 +37684,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - focuspunch: ["9L34", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + focuspunch: ["9M", "9L34", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], forcepalm: ["9L13", "7L13", "6L13", "5L28", "4L28"], foresight: ["7E", "6E", "5E", "4E", "3E"], frustration: ["7M", "6M", "5M", "4M", "3M"], @@ -35987,7 +37693,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { helpinghand: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], icepunch: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], - knockoff: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L28"], + knockoff: ["9M", "9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L28"], lowkick: ["9M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "7M", "6M", "5M"], megakick: ["3T"], @@ -36017,7 +37723,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], seismictoss: ["9L31", "7L31", "6L31", "5L31", "4L31", "3T", "3L46"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], smellingsalts: ["7L28", "6L22", "5L22", "4L22", "3L31"], snore: ["7T", "6T", "5T", "4T", "3T"], stompingtantrum: ["9M"], @@ -36036,7 +37742,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - vacuumwave: ["4T"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], vitalthrow: ["7L22", "6L10", "5L10", "4L10", "3L13"], wakeupslap: ["7L34", "7E", "6L34", "6E", "5L34", "5E", "4L34", "4E"], whirlpool: ["4M"], @@ -36063,11 +37770,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], chillingwater: ["9M"], closecombat: ["9M", "9L46", "7L46", "6L46", "5L52", "4L52"], + coaching: ["9M"], confide: ["7M", "6M"], counter: ["3T"], + curse: ["9M"], detect: ["9L30"], dig: ["9M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], drainpunch: ["9M"], dynamicpunch: ["3T"], @@ -36079,7 +37788,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - focuspunch: ["9L38", "7T", "6T", "4M", "3M"], + focuspunch: ["9M", "9L38", "7T", "6T", "4M", "3M"], forcepalm: ["9L13", "7L13", "6L13", "5L32", "4L32"], frustration: ["7M", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], @@ -36091,7 +37800,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], ironhead: ["9M", "7T", "6T", "5T", "4T"], - knockoff: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L29"], + knockoff: ["9M", "9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L29"], + lashout: ["9M"], lowkick: ["9M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "7M", "6M", "5M"], megakick: ["3T"], @@ -36121,7 +37831,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], seismictoss: ["9L34", "7L34", "6L34", "5L37", "4L37", "3T", "3L51"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], smellingsalts: ["7L30", "6L22", "5L22", "4L22", "3L33"], snore: ["7T", "6T", "5T", "4T", "3T"], stompingtantrum: ["9M", "7T"], @@ -36138,10 +37848,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - vacuumwave: ["4T"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], vitalthrow: ["7L22", "6L10", "5L10", "4L10", "3L13"], wakeupslap: ["7L38", "6L38", "5L42", "4L42"], whirlpool: ["4M"], @@ -36157,77 +37868,88 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { ancientpower: ["5D", "4T"], attract: ["7M", "6M", "5M", "4M", "3M"], - block: ["7T", "7L7", "7E", "6T", "6L7", "6E", "5T", "5L19", "5E", "4T", "4L19", "4E", "3L16"], - bodyslam: ["3T"], - bulldoze: ["7M", "6M", "5M"], + block: ["9L7", "7T", "7L7", "7E", "6T", "6L7", "6E", "5T", "5L8", "5E", "4T", "4L19", "4E", "3L16"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - dazzlinggleam: ["7M", "6M"], + curse: ["9M"], + dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["3T"], - discharge: ["7L31", "6L31", "5L55", "4L49"], - doubleedge: ["7E", "6E", "5E", "4E", "3T"], + discharge: ["9L31", "7L31", "6L31", "5L39", "4L49"], + doubleedge: ["9M", "9E", "7E", "6E", "5E", "4E", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - earthpower: ["7T", "7L37", "6T", "6L37", "5T", "5L79", "4T", "4L73"], - earthquake: ["7M", "6M", "5M", "4M", "3M"], - endure: ["7E", "6E", "5E", "4M", "3T"], + earthpower: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L43", "4T", "4L73"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], explosion: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], - facade: ["7M", "6M", "5M", "4M", "3M"], - firepunch: ["7T", "6T", "5T", "4T", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flashcannon: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gravity: ["7T", "6T", "5T", "4T"], - harden: ["7L4", "6L4", "5L7", "4L7", "3L7"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + harden: ["9L4", "7L4", "6L4", "5L4", "4L7", "3L7"], headbutt: ["4T"], - helpinghand: ["3S0"], + headsmash: ["9E"], + heavyslam: ["9M"], + helpinghand: ["9M", "3S0"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - icepunch: ["7T", "6T", "5T", "4T", "3T"], - irondefense: ["7T", "6T", "5T", "4T"], - lockon: ["7L43", "6L43", "5L73", "4L67", "3L46"], + highhorsepower: ["9M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + lockon: ["9L43", "7L43", "6L43", "5L50", "4L67", "3L46"], magiccoat: ["7T", "6T", "5T", "4T"], magnetrise: ["7T", "6T", "5T", "4T"], magnitude: ["7E", "6E", "5E", "4E", "3E"], + meteorbeam: ["9M"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], - powergem: ["7L25", "6L25", "5L49", "4L49"], - protect: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "7L16", "6M", "6L16", "5M", "5L43", "4M", "4L43", "3M", "3L37"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + powergem: ["9M", "9L25", "7L25", "6L25", "5L32", "4L49"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L43", "3M", "3L37"], return: ["7M", "6M", "5M", "4M", "3M"], - rockblast: ["7L28", "6L18", "5L18"], + rockblast: ["9M", "9L28", "7L28", "6L18", "5L18"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "7L22", "6M", "6L22", "5M", "5L31", "4M", "4L31", "3T", "3L28", "3S0"], + rockslide: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L29", "4M", "4L31", "3T", "3L28", "3S0"], rocksmash: ["6M", "5M", "4M", "3M"], - rockthrow: ["7L10", "6L10", "5L13", "4L13", "3L13"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], - rollout: ["7E", "6E", "5E", "4T", "4E", "3T", "3E"], + rockthrow: ["9L10", "7L10", "6L10", "5L11", "4L13", "3L13"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9E", "7E", "6E", "5E", "4T", "4E", "3T", "3E"], round: ["7M", "6M", "5M"], - sandstorm: ["7M", "7L34", "6M", "6L34", "5M", "5L37", "4M", "4L37", "3M", "3L31"], + sandstorm: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L36", "4M", "4L37", "3M", "3L31"], + sandtomb: ["9M"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["3T"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "6T", "5T", "4T", "3T"], - spark: ["7L19", "6L19", "5L25"], - stealthrock: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "7L40", "6M", "6L40", "5M", "5L61", "4M", "4L55"], + spark: ["9L19", "7L19", "6L19", "5L25"], + stealthrock: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L46", "4M", "4L55"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - tackle: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], - taunt: ["7M", "6M", "5M", "4M", "3M"], - thunder: ["7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M", "3S0"], - thunderpunch: ["7T", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "7L13", "6M", "6L13", "5M", "5L25", "4M", "4L25", "3T", "3L22", "3S0"], + tackle: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M", "3S0"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L15", "4M", "4L25", "3T", "3L22", "3S0"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - voltswitch: ["7M", "6M", "5M"], - wideguard: ["7E", "6E"], - zapcannon: ["7L43", "6L43", "5L67", "4L61", "3L43"], + voltswitch: ["9M", "7M", "6M", "5M"], + wideguard: ["9E", "7E", "6E"], + zapcannon: ["9L43", "7L43", "6L43", "5L50", "4L61", "3L43"], }, eventData: [ {generation: 3, level: 26, moves: ["helpinghand", "thunderbolt", "thunderwave", "rockslide"]}, @@ -36238,75 +37960,90 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["7T"], ancientpower: ["4T"], attract: ["7M", "6M", "5M", "4M"], - block: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - bulldoze: ["7M", "6M", "5M"], + block: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - dazzlinggleam: ["7M", "6M"], - discharge: ["7L31", "6L31", "5L55", "4L49"], + curse: ["9M"], + dazzlinggleam: ["9M", "7M", "6M"], + discharge: ["9L31", "7L31", "6L31", "5L39", "4L49"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "7L37", "6T", "6L37", "5T", "5L79", "4T", "4L73"], - earthquake: ["7M", "6M", "5M", "4M"], - endure: ["4M"], + earthpower: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L43", "4T", "4L73"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], explosion: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M"], - firepunch: ["7T", "6T", "5T", "4T"], - flashcannon: ["7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "7T", "6T", "5T", "4T"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - gravity: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + hardpress: ["9M"], headbutt: ["4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - icepunch: ["7T", "6T", "5T", "4T"], - irondefense: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - ironhead: ["7T", "6T", "5T", "4T"], - lockon: ["7L43", "6L43", "5L73", "4L67"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + lockon: ["9L43", "7L43", "6L43", "5L50", "4L67"], magiccoat: ["7T", "6T", "5T", "4T"], magnetbomb: ["7L1", "6L1", "5L1", "4L1"], - magneticflux: ["7L1"], - magnetrise: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + magneticflux: ["9L1", "7L1"], + magnetrise: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + metalsound: ["9M"], + meteorbeam: ["9M"], mudslap: ["4T"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], - powergem: ["7L25", "6L25", "5L49", "4L49"], - protect: ["7M", "6M", "5M", "4M"], - rest: ["7M", "7L16", "6M", "6L16", "5M", "5L43", "4M", "4L43"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + powergem: ["9M", "9L25", "7L25", "6L25", "5L32", "4L49"], + protect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L43"], return: ["7M", "6M", "5M", "4M"], - rockblast: ["7L28", "6L18", "5L18"], + rockblast: ["9M", "9L28", "7L28", "6L18", "5L18"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "7L22", "6M", "6L22", "5M", "5L31", "4M", "4L31"], + rockslide: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L29", "4M", "4L31"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], rollout: ["4T"], round: ["7M", "6M", "5M"], - sandstorm: ["7M", "7L34", "6M", "6L34", "5M", "5L37", "4M", "4L37"], + sandstorm: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L36", "4M", "4L37"], + sandtomb: ["9M"], secretpower: ["6M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "6T", "5T", "4T"], - spark: ["7L19", "6L19", "5L25"], - stealthrock: ["7T", "6T", "5T", "4M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "7L40", "6M", "6L40", "5M", "5L61", "4M", "4L55"], + spark: ["9L19", "7L19", "6L19", "5L25"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L46", "4M", "4L55"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + supercellslam: ["9M"], swagger: ["7M", "6M", "5M", "4M"], - tackle: ["7L1", "6L1", "5L1", "4L1"], - taunt: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], telekinesis: ["7T"], - thunder: ["7M", "6M", "5M", "4M"], - thunderbolt: ["7M", "6M", "5M", "4M"], - thunderpunch: ["7T", "6T", "5T", "4T"], - thunderwave: ["7M", "7L13", "6M", "6L13", "5M", "5L25", "4M", "4L25"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L15", "4M", "4L25"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - triattack: ["7L1"], - voltswitch: ["7M", "6M", "5M"], - wideguard: ["7L1", "6L1"], - zapcannon: ["7L43", "6L43", "5L67", "4L61"], + triattack: ["9L0", "7L1"], + voltswitch: ["9M", "7M", "6M", "5M"], + wideguard: ["9L1", "7L1", "6L1"], + zapcannon: ["9L43", "7L43", "6L43", "5L50", "4L61"], }, }, skitty: { @@ -36396,8 +38133,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { zenheadbutt: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["tackle", "growl", "tailwhip", "payday"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["growl", "tackle", "tailwhip", "rollout"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["tackle", "growl", "tailwhip", "payday"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["growl", "tackle", "tailwhip", "rollout"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 3, level: 10, gender: "M", abilities: ["cutecharm"], moves: ["growl", "tackle", "tailwhip", "attract"], pokeball: "pokeball"}, ], encounters: [ @@ -36520,7 +38257,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M", "3M"], flatter: ["9E", "8E", "7E", "6E", "5E", "4E"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foresight: ["7L4", "6L4", "5L4", "5D", "4L4", "3L5", "3S0"], foulplay: ["9M", "9L48", "8M", "8L48", "7T", "7L41", "6T", "6L41", "5T", "5L50", "5S2"], frustration: ["7M", "6M", "5M", "4M", "3M"], @@ -36528,8 +38265,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furyswipes: ["9L24", "8L24", "7L11", "6L11", "5L15", "4L15", "3L17"], gigadrain: ["9M"], gigaimpact: ["9M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["8M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "8M"], headbutt: ["4T"], helpinghand: ["9M", "8M", "3S1"], hex: ["9M", "8M"], @@ -36540,8 +38277,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], imprison: ["9M", "8M", "7E", "6E"], incinerate: ["6M", "5M"], - knockoff: ["9L27", "8L27", "7T", "7L26", "6T", "6L26", "5T", "5L29", "4T", "4L29", "3L33"], - lashout: ["8T"], + knockoff: ["9M", "9L27", "8L27", "7T", "7L26", "6T", "6L26", "5T", "5L29", "4T", "4L29", "3L33"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], lightscreen: ["9M"], lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -36563,17 +38300,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightshade: ["9M", "9L21", "8L21", "7L6", "6L6", "5L8", "4L8", "3L9", "3S0"], octazooka: ["5S2"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "4T"], + painsplit: ["9M", "7T", "6T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], phantomforce: ["9M"], poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], powergem: ["9M", "9L39", "8M", "8L39", "7L36", "6L36", "5L43", "4L43"], poweruppunch: ["6M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M"], psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + psychup: ["9M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], punishment: ["7L24", "6L24", "5L36", "4L36"], quash: ["9L30", "8L30", "7M", "7L44", "6M", "6L44"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -36595,11 +38332,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shockwave: ["7T", "6T", "6S4", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], skillswap: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "5D", "4T"], + spite: ["9M", "7T", "6T", "5T", "5D", "4T"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["9E", "8E", "7E", "6E", "5E", "5D", "4T"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -36609,6 +38347,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { telekinesis: ["7T", "5M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["9M"], thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], thunderwave: ["9M"], tickle: ["5S2"], @@ -36753,7 +38492,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["7M", "6M", "5M", "4M", "3M"], ancientpower: ["4T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - autotomize: ["8L40", "7L43", "6L39", "5L43"], + autotomize: ["8L40", "7L43", "6L39", "5L39"], bodypress: ["8M"], bodyslam: ["8M", "7E", "6E", "5E", "4E", "3T", "3E"], bulldoze: ["8M", "7M", "6M", "5M"], @@ -36763,7 +38502,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["6M", "5M", "4M", "3M"], defensecurl: ["3T"], dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["8L56", "7L40", "6L40", "5L50", "4L43", "3T", "3L44"], + doubleedge: ["8L56", "7L40", "6L40", "5L46", "4L43", "3T", "3L44"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragonrush: ["8E", "7E", "6E", "5E", "4E"], earthpower: ["8M", "7T", "6T", "5T", "4T"], @@ -36773,28 +38512,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - harden: ["8L1", "7L1", "6L1", "5L4", "5D", "4L4", "3L4"], - headbutt: ["8L16", "7L7", "6L7", "5L11", "4T", "4L11", "3L10"], + harden: ["8L1", "7L1", "6L1", "5L1", "5D", "4L4", "3L4"], + headbutt: ["8L16", "7L7", "6L7", "5L8", "4T", "4L11", "3L10"], headsmash: ["8E", "7E", "6E", "5E", "5D", "4E"], - heavyslam: ["8M", "8L52", "7L46", "6L43", "5L46"], + heavyslam: ["8M", "8L52", "7L46", "6L43", "5L43"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - irondefense: ["8M", "8L48", "7T", "7L37", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], - ironhead: ["8M", "8L28", "7T", "7L22", "7E", "6T", "6L22", "6E", "5T", "5L29", "5E", "4T", "4L29", "4E"], - irontail: ["8M", "8L44", "7T", "7L34", "6T", "6L34", "5T", "5L39", "4M", "4L39", "3M", "3L29"], + irondefense: ["8M", "8L48", "7T", "7L37", "6T", "6L15", "5T", "5L15", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "7E", "6T", "6L22", "6E", "5T", "5L25", "5E", "4T", "4L29", "4E"], + irontail: ["8M", "8L44", "7T", "7L34", "6T", "6L34", "5T", "5L36", "4M", "4L39", "3M", "3L29"], magnetrise: ["7T", "6T", "5T", "4T"], - metalburst: ["8L60", "7L49", "6L49", "5L53", "4L46"], - metalclaw: ["8L4", "7L10", "6L10", "5L15", "4L15", "3L13"], - metalsound: ["8L33", "7L31", "6L31", "5L36", "4L36", "3L39"], + metalburst: ["8L60", "7L49", "6L49", "5L50", "4L46"], + metalclaw: ["8L4", "7L10", "6L10", "5L11", "4L15", "3L13"], + metalsound: ["8L33", "7L31", "6L31", "5L32", "4L36", "3L39"], mimic: ["3T"], - mudslap: ["8E", "7L4", "6L4", "5L8", "4T", "4L8", "3T", "3L7"], + mudslap: ["8E", "7L4", "6L4", "5L4", "4T", "4L8", "3T", "3L7"], naturalgift: ["4M"], - protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L32", "4M", "4L32", "3M", "3L34"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L29", "4M", "4L32", "3M", "3L34"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], rest: ["8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], reversal: ["8M", "7E", "6E"], - roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L18", "4M", "4L22", "3M", "3L21"], rockpolish: ["7M", "6M", "5M", "4M"], rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], @@ -36820,7 +38559,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { superpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], swagger: ["7M", "6M", "5M", "4M", "3T"], tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L36", "7L28", "6L22", "5L25", "4L25", "3L25"], + takedown: ["8L36", "7L28", "6L22", "5L22", "4L25", "3L25"], toxic: ["7M", "6M", "5M", "4M", "3M"], uproar: ["8M", "7T", "6T", "5T", "4T"], waterpulse: ["7T", "6T", "4M", "3M"], @@ -36831,7 +38570,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["7M", "6M", "5M", "4M", "3M"], ancientpower: ["4T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - autotomize: ["8L46", "7L47", "6L45", "5L51"], + autotomize: ["8L46", "7L47", "6L45", "5L45"], bodypress: ["8M"], bodyslam: ["8M", "3T"], bulldoze: ["8M", "7M", "6M", "5M"], @@ -36840,7 +38579,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["6M", "5M", "4M", "3M"], defensecurl: ["3T"], dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["8L70", "7L43", "6L43", "5L62", "4L51", "3T", "3L53"], + doubleedge: ["8L70", "7L43", "6L43", "5L56", "4L51", "3T", "3L53"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], earthpower: ["8M", "7T", "6T", "5T", "4T"], earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -36851,25 +38590,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furycutter: ["4T", "3T"], harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["8L16", "7L1", "6L1", "5L1", "4T", "4L1", "3L1"], - heavyslam: ["8M", "8L64", "7L51", "6L51", "5L56"], + heavyslam: ["8M", "8L64", "7L51", "6L51", "5L51"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - irondefense: ["8M", "8L58", "7T", "7L39", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], - ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L29", "4T", "4L29"], - irontail: ["8M", "8L52", "7T", "7L35", "6T", "6L35", "5T", "5L45", "4M", "4L45", "3M", "3L29"], + irondefense: ["8M", "8L58", "7T", "7L39", "6T", "6L15", "5T", "5L15", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L25", "4T", "4L29"], + irontail: ["8M", "8L52", "7T", "7L35", "6T", "6L35", "5T", "5L40", "4M", "4L45", "3M", "3L29"], magnetrise: ["7T", "6T", "5T", "4T"], - metalburst: ["8L76", "7L55", "6L55", "5L67", "4L56"], - metalclaw: ["8L1", "7L10", "6L10", "5L15", "4L15", "3L13"], - metalsound: ["8L35", "7L31", "6L31", "5L40", "4L40", "3L45"], + metalburst: ["8L76", "7L55", "6L55", "5L62", "4L56"], + metalclaw: ["8L1", "7L10", "6L10", "5L11", "4L15", "3L13"], + metalsound: ["8L35", "7L31", "6L31", "5L34", "4L40", "3L45"], mimic: ["3T"], mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], naturalgift: ["4M"], - protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L34", "4M", "4L34", "3M", "3L37"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L29", "4M", "4L34", "3M", "3L37"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], rest: ["8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], reversal: ["8M"], - roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L18", "4M", "4L22", "3M", "3L21"], rockblast: ["8M"], rockpolish: ["7M", "6M", "5M", "4M"], rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "4M", "3T"], @@ -36897,7 +38636,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["7M", "6M", "5M", "4M", "3T"], tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L40", "7L28", "6L22", "5L25", "4L25", "3L25"], + takedown: ["8L40", "7L28", "6L22", "5L22", "4L25", "3L25"], toxic: ["7M", "6M", "5M", "4M", "3M"], uproar: ["8M", "7T", "6T", "5T", "4T"], waterpulse: ["7T", "6T", "4M", "3M"], @@ -36909,7 +38648,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["4T"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - autotomize: ["8L48", "7L51", "6L48", "5L57"], + autotomize: ["8L48", "7L51", "6L48", "5L48"], avalanche: ["8M", "4M"], blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], block: ["7T", "6T", "5T", "4T"], @@ -36926,7 +38665,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkpulse: ["8M", "7M", "6M", "5T", "4M"], defensecurl: ["3T"], dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["8L80", "7L45", "6L45", "5L74", "4L57", "3T", "3L63", "3S0"], + doubleedge: ["8L80", "7L45", "6L45", "5L65", "4L57", "3T", "3L63", "3S0"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], dragonpulse: ["8M", "7T", "6T", "5T", "4M"], @@ -36950,7 +38689,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["8L16", "7L1", "6L1", "5L1", "4T", "4L1", "3L1"], headsmash: ["6S2"], - heavyslam: ["8M", "8L72", "7L57", "6L57", "5L65"], + heavyslam: ["8M", "8L72", "7L57", "6L57", "5L57"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], highhorsepower: ["8M"], honeclaws: ["6M", "5M"], @@ -36960,16 +38699,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], - irondefense: ["8M", "8L64", "7T", "7L39", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], - ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "6S2", "5T", "5L29", "4T", "4L29"], - irontail: ["8M", "8L56", "7T", "7L35", "6T", "6L35", "5T", "5L48", "4M", "4L48", "3M", "3L29", "3S0", "3S1"], + irondefense: ["8M", "8L64", "7T", "7L39", "6T", "6L15", "5T", "5L15", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "6S2", "5T", "5L25", "4T", "4L29"], + irontail: ["8M", "8L56", "7T", "7L35", "6T", "6L35", "5T", "5L40", "4M", "4L48", "3M", "3L29", "3S0", "3S1"], lowkick: ["8M", "7T", "6T", "5T", "4T"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - metalburst: ["8L88", "7L63", "6L63", "5L82", "4L65"], - metalclaw: ["8L1", "7L10", "6L10", "5L15", "4L15", "3L13"], - metalsound: ["8L35", "7L31", "6L31", "5L40", "4L40", "3L50", "3S0", "3S1"], + metalburst: ["8L88", "7L63", "6L63", "5L74", "4L65"], + metalclaw: ["8L1", "7L10", "6L10", "5L11", "4L15", "3L13"], + metalsound: ["8L35", "7L31", "6L31", "5L34", "4L40", "3L50", "3S0", "3S1"], meteorbeam: ["8T"], mimic: ["3T"], mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], @@ -36977,12 +38716,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { outrage: ["8M", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L34", "4M", "4L34", "3M", "3L37", "3S0", "3S1"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L29", "4M", "4L34", "3M", "3L37", "3S0", "3S1"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], rest: ["8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], reversal: ["8M"], - roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L18", "4M", "4L22", "3M", "3L21"], rockblast: ["8M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], @@ -37017,7 +38756,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { surf: ["8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - takedown: ["8L40", "7L28", "6L22", "5L25", "4L25", "3L25", "3S1"], + takedown: ["8L40", "7L28", "6L22", "5L22", "4L25", "3L25", "3S1"], taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -37058,6 +38797,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dreameater: ["7M", "6M", "5M", "4M", "3T"], dynamicpunch: ["9E", "7E", "6E", "5E", "4E", "3T", "3E", "3S1"], endure: ["9M", "9L12", "7L12", "6L12", "5D", "4M", "3T"], + expandingforce: ["9M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], fakeout: ["9E", "7E", "6E", "5E", "4E", "3E"], feint: ["9L15", "7L15", "6L15", "5L22", "4L22"], @@ -37065,7 +38805,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], forcepalm: ["9L17", "7L17", "6L17", "5L29", "4L29"], foresight: ["7E", "6E", "5E", "4E", "3E"], frustration: ["7M", "6M", "5M", "4M", "3M"], @@ -37091,7 +38831,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["4T", "3T"], naturalgift: ["4M"], nightshade: ["9M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], poisonjab: ["9M", "7M", "6M", "5M", "4M"], powerswap: ["9E", "7E", "6E", "5E", "4E"], powertrick: ["9L36", "7L36", "6L36", "5L43", "4L39"], @@ -37101,7 +38841,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], psychicterrain: ["9M"], psychocut: ["9E", "7E", "6E", "5E", "4E"], - psychup: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + psychup: ["9M", "9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], psyshock: ["9M", "7M", "6M", "5M"], quickguard: ["9E", "7E", "6E"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -37140,6 +38880,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], trick: ["9M", "7T", "6T", "5T", "4T"], trickroom: ["9M"], + upperhand: ["9M"], vacuumwave: ["4T"], workup: ["9L1", "7M", "5M"], zenheadbutt: ["9M", "9L25", "7T", "6T", "5T", "4T"], @@ -37175,18 +38916,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dynamicpunch: ["3T"], endure: ["9M", "9L12", "7L12", "6L12", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], feint: ["9L15", "7L15", "6L15", "5L22", "4L22"], firepunch: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], forcepalm: ["9L17", "7L17", "6L17", "5L29", "4L29"], frustration: ["7M", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["4T"], helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7L20", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3M", "3L17"], @@ -37208,7 +38950,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["4T", "3T"], naturalgift: ["4M"], nightshade: ["9M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], poisonjab: ["9M", "7M", "6M", "5M", "4M"], powertrick: ["9L36", "7L36", "6L36", "5L49", "4L42"], poweruppunch: ["6M"], @@ -37216,7 +38958,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M", "9L20"], psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], psychicterrain: ["9M"], - psychup: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + psychup: ["9M", "9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], psyshock: ["9M", "7M", "6M", "5M"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], recover: ["9L47", "7L47", "6L47", "5L62", "4L55", "3L54"], @@ -37254,7 +38996,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], trick: ["9M", "7T", "6T", "5T", "4T"], trickroom: ["9M"], - vacuumwave: ["4T"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], workup: ["9L1", "7M", "5M"], zenheadbutt: ["9M", "9L25", "7T", "7L1", "6T", "6L1", "5T", "4T"], }, @@ -37412,58 +39155,63 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, plusle: { learnset: { - agility: ["7L37", "6L37", "5L48", "4L44", "3L47"], + agility: ["9M", "9L37", "7L37", "6L37", "5L48", "4L44", "3L47"], + alluringvoice: ["9M"], attract: ["7M", "6M", "5M", "4M", "3M"], - batonpass: ["7L34", "6L34", "5L44", "4L42", "3L40"], + batonpass: ["9M", "9L34", "7L34", "6L34", "5L44", "4L42", "3L40"], bestow: ["7L13", "6L13"], bodyslam: ["3T"], captivate: ["4M"], - charge: ["7L28", "6L28", "5L38", "4L35", "3L31"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["7L25", "7E", "6L25"], + charge: ["9M", "9L26", "7L28", "6L28", "5L38", "4L35", "3L31"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9E", "7L25", "7E", "6L25"], confide: ["7M", "6M"], - copycat: ["7L22", "6L22", "5L24", "4L24"], + copycat: ["9L22", "7L22", "6L22", "5L24", "4L24"], counter: ["3T"], covet: ["7T"], defensecurl: ["3T"], - discharge: ["7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], + discharge: ["9L31", "7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], echoedvoice: ["7M", "6M", "5M"], - electroball: ["7L19", "6L19", "5L29"], - electroweb: ["7T", "6T"], - encore: ["7L10", "6L10", "5L17", "4L17", "3L22"], - endure: ["4M", "3T"], - entrainment: ["7L49", "6L1", "5L63"], - facade: ["7M", "6M", "5M", "4M", "3M"], - faketears: ["7E", "6L35", "5L21", "4L21", "3L28"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L19", "7L19", "6L19", "5L29"], + electroweb: ["9M", "7T", "6T"], + encore: ["9M", "9L10", "7L10", "6L10", "5L17", "4L17", "3L22"], + endeavor: ["9M"], + endure: ["9M", "4M", "3T"], + entrainment: ["9L49", "7L49", "6L1", "5L63"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "7E", "6L35", "5L21", "4L21", "3L28"], flash: ["6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - grassknot: ["7M", "6M", "5M", "4M"], - growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], headbutt: ["4T"], - helpinghand: ["7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], + helpinghand: ["9M", "9L4", "7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], irontail: ["7T", "6T", "5T", "4M", "3M"], - lastresort: ["7T", "7L40", "6T", "6L40", "5T", "5L51", "4T", "4L48"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], + lastresort: ["9L40", "7T", "7L40", "6T", "6L40", "5T", "5L51", "4T", "4L48"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], luckychant: ["7E", "6E", "5E"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], metronome: ["3T"], mimic: ["3T"], - mudslap: ["4T", "3T"], - nastyplot: ["7L46", "6L1", "5L56", "4L51"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M", "9L46", "7L46", "6L1", "5L56", "4L51"], naturalgift: ["4M"], - nuzzle: ["7L1", "6L1"], - playnice: ["7L1", "6L1"], - protect: ["7M", "6M", "5M", "4M", "3M"], - quickattack: ["7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + nuzzle: ["9L1", "7L1", "6L1"], + playnice: ["9L1", "7L1", "6L1"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["7M", "6M", "5M"], @@ -37471,85 +39219,94 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seismictoss: ["3T"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "5D", "4T"], - sing: ["7E", "6E", "5E", "4E"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + sing: ["9E", "7E", "6E", "5E", "4E"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], - spark: ["7L7", "6L7", "5L15", "4L15", "3L19"], - substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + spark: ["9L7", "7L7", "6L7", "5L15", "4L15", "3L19"], + substitute: ["9M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + superfang: ["9M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - sweetkiss: ["7E", "6E", "5E", "4E"], - swift: ["7L16", "6L16", "5L31", "4T", "4L29", "3T"], + sweetkiss: ["9E", "7E", "6E", "5E", "4E"], + swift: ["9M", "9L16", "7L16", "6L16", "5L31", "4T", "4L29", "3T"], + switcheroo: ["9L13"], tearfullook: ["7E"], - thunder: ["7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], + terablast: ["9M"], + thunder: ["9M", "9L43", "7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uproar: ["7T", "6T", "5T", "4T"], - voltswitch: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + voltswitch: ["9M", "7M", "6M", "5M"], watersport: ["3S0"], - wildcharge: ["7M", "6M", "5M"], - wish: ["7E", "6E", "5E", "4E", "3E"], + wildcharge: ["9M", "7M", "6M", "5M"], + wish: ["9E", "7E", "6E", "5E", "4E", "3E"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "watersport"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "watersport"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 3, level: 10, gender: "M", moves: ["growl", "thunderwave", "quickattack"], pokeball: "pokeball"}, ], }, minun: { learnset: { - agility: ["7L37", "6L37", "5L48", "4L44", "3L47"], + agility: ["9M", "9L37", "7L37", "6L37", "5L48", "4L44", "3L47"], + alluringvoice: ["9M"], attract: ["7M", "6M", "5M", "4M", "3M"], - batonpass: ["7L34", "6L34", "5L44", "4L42", "3L40"], + batonpass: ["9M", "9L34", "7L34", "6L34", "5L44", "4L42", "3L40"], bodyslam: ["3T"], captivate: ["4M"], - charge: ["7L28", "6L28", "5L38", "4L35", "3L31"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["7E", "6L21", "5L21", "4L21", "3L28"], + charge: ["9M", "9L26", "7L28", "6L28", "5L38", "4L35", "3L31"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9E", "7E", "6L21", "5L21", "4L21", "3L28"], confide: ["7M", "6M"], - copycat: ["7L22", "6L22", "5L24", "4L24"], + copycat: ["9L22", "7L22", "6L22", "5L24", "4L24"], counter: ["3T"], covet: ["7T"], defensecurl: ["3T"], - discharge: ["7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], + discharge: ["9L31", "7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], echoedvoice: ["7M", "6M", "5M"], - electroball: ["7L19", "6L19", "5L29"], - electroweb: ["7T", "6T"], - encore: ["7L10", "6L10", "5L17", "4L17", "3L22"], - endure: ["4M", "3T"], - entrainment: ["7L49", "6L1", "5L63"], - facade: ["7M", "6M", "5M", "4M", "3M"], - faketears: ["7L25", "7E", "6L25", "5L35", "4L31"], + electricterrain: ["9M"], + electroball: ["9M", "9L19", "7L19", "6L19", "5L29"], + electroweb: ["9M", "7T", "6T"], + encore: ["9M", "9L10", "7L10", "6L10", "5L17", "4L17", "3L22"], + endeavor: ["9M"], + endure: ["9M", "4M", "3T"], + entrainment: ["9L49", "7L49", "6L1", "5L63"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9E", "7L25", "7E", "6L25", "5L35", "4L31"], flash: ["6M", "5M", "4M", "3M"], - fling: ["7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - grassknot: ["7M", "6M", "5M", "4M"], - growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], headbutt: ["4T"], - helpinghand: ["7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], + helpinghand: ["9M", "9L4", "7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], irontail: ["7T", "6T", "5T", "4M", "3M"], - lastresort: ["7T", "6T", "5T", "4T"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], + lastresort: ["9L40", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], luckychant: ["7E", "6E", "5E"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], metronome: ["3T"], mimic: ["3T"], - mudslap: ["4T", "3T"], + mudslap: ["9M", "4T", "3T"], mudsport: ["3S0"], - nastyplot: ["7L46", "6L1", "5L56", "4L51"], + nastyplot: ["9M", "9L46", "7L46", "6L1", "5L56", "4L51"], naturalgift: ["4M"], - nuzzle: ["7L1", "6L1"], - playnice: ["7L1", "6L1"], - protect: ["7M", "6M", "5M", "4M", "3M"], - quickattack: ["7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + nuzzle: ["9L1", "7L1", "6L1"], + playnice: ["9L1", "7L1", "6L1"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["7M", "6M", "5M"], @@ -37557,202 +39314,224 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seismictoss: ["3T"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "5D", "4T"], - sing: ["7E", "6E", "5E", "4E"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + sing: ["9E", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], - spark: ["7L7", "6L7", "5L15", "4L15", "3L19"], - substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + spark: ["9L7", "7L7", "6L7", "5L15", "4L15", "3L19"], + substitute: ["9M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + superfang: ["9M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - sweetkiss: ["7E", "6E", "5E", "4E"], - swift: ["7L16", "6L16", "5L31", "4T", "4L29", "3T"], - switcheroo: ["7L13", "6L13"], + sweetkiss: ["9E", "7E", "6E", "5E", "4E"], + swift: ["9M", "9L16", "7L16", "6L16", "5L31", "4T", "4L29", "3T"], + switcheroo: ["9L13", "7L13", "6L13"], tearfullook: ["7E"], - thunder: ["7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], + terablast: ["9M"], + thunder: ["9M", "9L43", "7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], trumpcard: ["7L40", "6L40", "5L51", "4L48"], - uproar: ["7T", "6T", "5T", "4T"], - voltswitch: ["7M", "6M", "5M"], - wildcharge: ["7M", "6M", "5M"], - wish: ["7E", "6E", "5E", "4E", "3E"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + wish: ["9E", "7E", "6E", "5E", "4E", "3E"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "mudsport"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 3, level: 10, gender: "M", moves: ["growl", "thunderwave", "quickattack"], pokeball: "pokeball"}, ], }, volbeat: { learnset: { - acrobatics: ["7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - aircutter: ["4T"], + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], attract: ["7M", "6M", "5M", "4M", "3M"], - batonpass: ["7E", "6E", "5E", "4E", "3E"], - bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], - bugbite: ["7T", "6T", "5T", "4T"], - bugbuzz: ["7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], + batonpass: ["9M", "7E", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L36", "7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confuseray: ["7L8", "6L8", "5L9", "4L9", "3L5"], - counter: ["3T"], - dazzlinggleam: ["7M", "6M"], + confuseray: ["9M", "9L8", "7L8", "6L8", "5L9", "4L9", "3L5"], + counter: ["9E", "3T"], + dazzlinggleam: ["9M", "7M", "6M"], defog: ["7T"], dizzypunch: ["7E", "6E", "5E"], - doubleedge: ["7L47", "6L45", "5L45", "4L45", "3T", "3L37"], - doubleteam: ["7M", "7L5", "6M", "6L5", "5M", "5L5", "4M", "4L5", "3M", "3L9"], + doubleedge: ["9M", "9L43", "7L47", "6L45", "5L45", "4L45", "3T", "3L37"], + doubleteam: ["9L5", "7M", "7L5", "6M", "6L5", "5M", "5L5", "4M", "4L5", "3M", "3L9"], dynamicpunch: ["3T"], - encore: ["7E", "6E", "5E", "4E"], - endure: ["4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "7E", "6E", "5E", "4E"], + endeavor: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flash: ["7L1", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M"], - fling: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigadrain: ["7T", "6T", "5T", "4M", "3M"], - helpinghand: ["7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + helpinghand: ["9M", "9L33", "7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - icepunch: ["7T", "6T", "5T", "4T", "3T"], - infestation: ["7M", "7L50"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], - lunge: ["7E"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["9L47", "7M", "7L50"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lunge: ["9M", "7E"], megakick: ["3T"], megapunch: ["3T"], - metronome: ["3T"], + metronome: ["9M", "3T"], mimic: ["3T"], - moonlight: ["7L19", "6L13", "5L13", "4L13", "3L13"], - mudslap: ["4T", "3T"], + moonlight: ["9L19", "7L19", "6L13", "5L13", "4L13", "3L13"], + mudslap: ["9M", "4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], - playrough: ["7L43", "6L43"], + playrough: ["9M", "9L40", "7L43", "6L43"], + pounce: ["9M"], poweruppunch: ["6M"], - protect: ["7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L29"], + protect: ["9M", "9L26", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L29"], psychup: ["7M", "6M", "5M", "4M", "3T"], - quickattack: ["7L12", "6L12", "5L17", "4L17", "3L17"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + quickattack: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roost: ["7M", "6M", "5T", "4M"], + roost: ["9E", "7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - seismictoss: ["7E", "6E", "5E", "3T"], - shadowball: ["7M", "6M", "5M", "4M", "3M"], + seismictoss: ["9E", "7E", "6E", "5E", "3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "7L26", "6T", "6L25", "5T", "5L25", "4T", "4L25", "3L25"], silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + skittersmack: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], stringshot: ["4T"], - strugglebug: ["7L15", "6M", "6L15", "5M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "6M", "5M", "4M", "3M"], - swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["4T", "3T"], - tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], - tailglow: ["7L22", "6L21", "5L21", "4L21", "3L21"], - tailwind: ["7T", "6T", "5T", "5D", "4T"], - thief: ["7M", "6M", "5M", "4M", "3M"], - thunder: ["7M", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "9L15", "7L15", "6M", "6L15", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9E", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + tailglow: ["9L22", "7L22", "6L21", "5L21", "4L21", "3L21"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "6M", "5M", "4M", "3T"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E", "3E"], - uturn: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M", "3M"], - zenheadbutt: ["7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], + trailblaze: ["9M"], + trick: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E", "3E"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + zenheadbutt: ["9M", "9L29", "7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], }, }, illumise: { learnset: { - acrobatics: ["7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M", "4M", "3M"], - aircutter: ["4T"], + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], aromatherapy: ["7E"], - attract: ["7M", "6M", "5M", "4M", "3M"], - batonpass: ["7E", "6E", "5E", "4E", "3E"], + attract: ["9E", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "7E", "6E", "5E", "4E", "3E"], bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], - bugbite: ["7T", "6T", "5T", "4T"], - bugbuzz: ["7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L40", "7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], captivate: ["7E", "6E", "5E", "4M"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["7L9", "6L9", "5L9", "5D", "4L9", "3L9"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "5D", "4L9", "3L9"], confide: ["7M", "6M"], - confuseray: ["7E", "6E", "5E"], + confuseray: ["9M", "7E", "6E", "5E"], counter: ["3T"], covet: ["7T", "7L47", "6T", "6L45", "5T", "5L45", "4L45", "3L37"], - dazzlinggleam: ["7M", "6M"], + dazzlinggleam: ["9M", "7M", "6M"], defog: ["7T"], - doubleedge: ["3T"], + disarmingvoice: ["9M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], dynamicpunch: ["3T"], - encore: ["7L26", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L25"], - endure: ["4M", "3T"], - facade: ["7M", "6M", "5M", "4M", "3M"], - faketears: ["7E", "6E", "5E", "5D"], + encore: ["9M", "9L26", "7L26", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L25"], + endeavor: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "7E", "6E", "5E", "5D"], flash: ["6M", "5M", "4M", "3M"], - flatter: ["7L29", "6L29", "5L29", "4L29", "3L29"], - fling: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + flatter: ["9L29", "7L29", "6L29", "5L29", "4L29", "3L29"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigadrain: ["7T", "6T", "5T", "4M", "3M"], - growth: ["7E", "6E", "5E", "4E", "3E"], - helpinghand: ["7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + growth: ["9E", "7E", "6E", "5E", "4E", "3E"], + helpinghand: ["9M", "9L36", "7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - icepunch: ["7T", "6T", "5T", "4T", "3T"], - infestation: ["7M", "7L50"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["9L47", "7M", "7L50"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], megakick: ["3T"], megapunch: ["3T"], - metronome: ["3T"], + metronome: ["9M", "3T"], mimic: ["3T"], - moonlight: ["7L19", "6L13", "5L13", "4L13", "3L13"], - mudslap: ["4T", "3T"], + moonlight: ["9L19", "7L19", "6L13", "5L13", "4L13", "3L13"], + mudslap: ["9M", "4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], - playnice: ["7L1", "6L1"], - playrough: ["7L43", "6L43"], + playnice: ["9L1", "7L1", "6L1"], + playrough: ["9M", "9L43", "7L43", "6L43"], + pounce: ["9M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - quickattack: ["7L12", "6L12", "5L17", "4L17", "3L17"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + quickattack: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roost: ["7M", "6M", "5T", "4M"], + roost: ["9E", "7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowball: ["7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + skittersmack: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], stringshot: ["4T"], - strugglebug: ["7L15", "6M", "6L15", "5M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "9L15", "7L15", "6M", "6L15", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - sweetscent: ["7L5", "6L5", "5L5", "4L5", "3L5"], - swift: ["4T", "3T"], - tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], - tailwind: ["7T", "6T", "5T", "5D", "4T"], - thief: ["7M", "6M", "5M", "4M", "3M"], - thunder: ["7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L5", "7L5", "6L5", "5L5", "4L5", "3L5"], + swift: ["9M", "4T", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - uturn: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M", "3M"], - wish: ["7L22", "6L21", "5L21", "4L21", "3L21"], - zenheadbutt: ["7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], + trailblaze: ["9M"], + trick: ["9M"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wish: ["9L22", "7L22", "6L21", "5L21", "4L21", "3L21"], + zenheadbutt: ["9M", "9L33", "7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], }, }, budew: { @@ -37859,7 +39638,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturepower: ["7M", "6M"], nightmare: ["3T"], petalblizzard: ["8L45", "7L37", "6L37"], - petaldance: ["8L60", "7L50", "6L37", "5L40", "4L40", "3L49"], + petaldance: ["8L60", "7L50", "6L37", "5L37", "4L40", "3L49"], pinmissile: ["8M", "7E", "6E", "5E", "4E", "3E"], poisonjab: ["8M", "7M", "6M", "5M", "4M"], poisonsting: ["8L0", "7L7", "6L7", "5L7", "4L7", "3L9", "3S0"], @@ -37987,7 +39766,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { clearsmog: ["9E"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["9E", "7E", "6E", "5E", "4E"], + curse: ["9M", "9E", "7E", "6E", "5E", "4E"], defensecurl: ["3T"], destinybond: ["9E", "7E", "6E", "5E", "4E"], doubleedge: ["3T"], @@ -38015,7 +39794,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["9M", "9E", "7E", "6E", "5E", "4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - painsplit: ["9L44", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + painsplit: ["9M", "9L44", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], poisongas: ["9L8", "7L8", "6L8", "5L9", "5D", "4L9", "3L9"], poisonjab: ["9M"], pound: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], @@ -38036,7 +39815,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], sludge: ["9L10", "7L10", "6L10", "5L14", "4L14", "3L14", "3S0"], sludgebomb: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "5L44", "4M", "4L39", "3M", "3L39"], - sludgewave: ["7M", "6M", "5M"], + sludgewave: ["9M", "7M", "6M", "5M"], smog: ["9E", "7E", "6E", "5E", "4E", "3E"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "6T", "5T", "4T", "3T"], @@ -38055,7 +39834,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], thunderwave: ["9M"], - toxic: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L28", "4M", "4L28", "3M", "3L28", "3S0"], + toxic: ["9M", "9L25", "7M", "7L25", "6M", "6L25", "5M", "5L28", "4M", "4L28", "3M", "3L28", "3S0"], toxicspikes: ["9M"], venomdrench: ["7E", "6E"], venoshock: ["9M", "7M", "6M", "5M"], @@ -38082,8 +39861,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], confide: ["7M", "6M"], counter: ["3T"], + curse: ["9M"], defensecurl: ["3T"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], dynamicpunch: ["3T"], @@ -38106,13 +39886,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], infestation: ["7M", "6M"], + knockoff: ["9M"], metronome: ["9M"], mimic: ["3T"], mudshot: ["9M"], mudslap: ["9M", "4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], poisongas: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], poisonjab: ["9M"], pound: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], @@ -38132,7 +39913,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], sludge: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], sludgebomb: ["9M", "9L37", "7M", "7L37", "6M", "6L37", "5M", "5L52", "4M", "4L45", "3M", "3L48"], - sludgewave: ["7M", "6M", "5M"], + sludgewave: ["9M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -38149,7 +39930,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], thunderwave: ["9M"], - toxic: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L30", "4M", "4L30", "3M", "3L31"], + toxic: ["9M", "9L25", "7M", "7L25", "6M", "6L25", "5M", "5L30", "4M", "4L30", "3M", "3L31"], toxicspikes: ["9M"], venomdrench: ["7L1"], venoshock: ["9M", "7M", "6M", "5M"], @@ -38488,7 +40269,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { numel: { learnset: { afteryou: ["7T", "6T", "5T"], - amnesia: ["9M", "9L19", "7L19", "6L19", "5L31", "4L25", "3L31"], + amnesia: ["9M", "9L19", "7L19", "6L19", "5L19", "4L25", "3L31"], ancientpower: ["9E", "7E", "6E", "5E", "4E"], attract: ["7M", "6M", "5M", "4M", "3M"], bodypress: ["9M"], @@ -38497,38 +40278,42 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], charm: ["9M", "3S0"], confide: ["7M", "6M"], - curse: ["9L29", "7L29", "6L29", "5L29"], + curse: ["9M", "9L29", "7L29", "6L29", "5L29"], defensecurl: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], dig: ["9M", "6M", "5M", "4M", "3M", "3S0"], - doubleedge: ["9L47", "7L47", "6L47", "5L55", "4L51", "3T", "3L49"], + doubleedge: ["9M", "9L47", "7L47", "6L47", "5L47", "4L51", "3T", "3L49"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L41", "4T", "4L35"], - earthquake: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L41", "3M", "3L35"], + earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L26", "4T", "4L35"], + earthquake: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L41", "3M", "3L35"], echoedvoice: ["7M", "6M", "5M"], ember: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5", "3L11", "3S0"], + endeavor: ["9M"], endure: ["9M", "7E", "6E", "5E", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], firespin: ["9M"], - flameburst: ["7L15", "6L15", "5L21"], + flameburst: ["7L15", "6L15", "5L15"], flamecharge: ["9M", "7M", "6M", "5M"], - flamethrower: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L51", "4M", "4L45", "3M", "3L41"], + flamethrower: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L45", "3M", "3L41"], flareblitz: ["9M"], flashcannon: ["9M"], - focusenergy: ["9L8", "7L8", "6L8", "5L15", "4L15", "3L25"], + focusenergy: ["9L8", "7L8", "6L8", "5L12", "4L15", "3L25"], frustration: ["7M", "6M", "5M", "4M", "3M"], growl: ["9L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], growth: ["9E", "7E", "6E"], headbutt: ["4T"], + heatcrash: ["9M"], heatwave: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], heavyslam: ["9M", "9E", "7E"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], howl: ["9E", "7E", "6E", "5E", "4E", "3E"], incinerate: ["9L15", "6M", "5M"], ironhead: ["9M", "9E", "7T", "7E", "6T", "6E", "6S1", "5T", "5E"], - lavaplume: ["9L22", "7L22", "6L22", "5L35", "4L31"], - magnitude: ["7L12", "6L8", "5L11", "4L11", "3L19"], + lashout: ["9M"], + lavaplume: ["9L22", "7L22", "6L22", "5L22", "4L31"], + magnitude: ["7L12", "6L8", "5L8", "4L11", "3L19"], mimic: ["3T"], mudbomb: ["7E", "6E", "5E", "4E"], mudshot: ["9M"], @@ -38540,6 +40325,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M"], rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -38547,6 +40333,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["7M", "6M", "5M"], sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], scaryface: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + scorchingsands: ["9M"], secretpower: ["6M", "4M", "3M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], @@ -38563,6 +40350,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swallow: ["9E", "7E", "6E", "5E", "4E"], tackle: ["9L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], takedown: ["9M", "9L31", "7L31", "6L31", "5L25", "4L21", "3L29", "3S0"], + temperflare: ["9M"], terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], @@ -38578,7 +40366,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { camerupt: { learnset: { afteryou: ["7T", "6T", "5T"], - amnesia: ["9M", "9L19", "7L19", "6L19", "5L31", "4L25", "3L31"], + amnesia: ["9M", "9L19", "7L19", "6L19", "5L19", "4L25", "3L31"], attract: ["7M", "6M", "5M", "4M", "3M"], bodypress: ["9M"], bodyslam: ["9M", "3T"], @@ -38586,40 +40374,44 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], charm: ["9M"], confide: ["7M", "6M"], - curse: ["9L29", "7L29", "6L29", "6S0", "5L29"], + curse: ["9M", "9L29", "7L29", "6L29", "6S0", "5L29"], defensecurl: ["3T"], dig: ["9M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L49", "4T", "4L39"], - earthquake: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L57", "4M", "4L49", "3M", "3L37"], + earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L26", "4T", "4L39"], + earthquake: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L49", "3M", "3L37"], echoedvoice: ["7M", "6M", "5M"], ember: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endeavor: ["9M"], endure: ["9M", "4M", "3T"], - eruption: ["9L1", "7L1", "6L1", "5L67", "4L57", "3L45"], + eruption: ["9L1", "7L1", "6L1", "5L52", "4L57", "3L45"], explosion: ["7M", "6M", "5M", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], firespin: ["9M"], - fissure: ["9L1", "7L1", "6L1", "5L75", "4L67", "3L55"], - flameburst: ["7L15", "6L15", "5L21"], + fissure: ["9L1", "7L1", "6L1", "5L59", "4L67", "3L55"], + flameburst: ["7L15", "6L15", "5L15"], flamecharge: ["9M", "7M", "6M", "5M"], flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], flareblitz: ["9M"], flashcannon: ["9M", "7M", "6M", "5M", "4M"], - focusenergy: ["9L1", "7L1", "6L1", "5L15", "4L15", "3L25"], + focusenergy: ["9L1", "7L1", "6L1", "5L12", "4L15", "3L25"], frustration: ["7M", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], growl: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["4T"], + heatcrash: ["9M"], heatwave: ["9M", "7T", "6T", "5T", "4T"], heavyslam: ["9M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], incinerate: ["9L15", "6M", "5M"], ironhead: ["9M", "7T", "6T", "5T", "4T"], - lavaplume: ["9L22", "7L22", "6L22", "5L33", "4L31"], + lashout: ["9M"], + lavaplume: ["9L22", "7L22", "6L22", "5L22", "4L31"], magnitude: ["7L12", "6L1", "5L1", "4L1", "3L1"], mimic: ["3T"], mudshot: ["9M"], @@ -38631,18 +40423,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["9M", "9L0", "7M", "7L1", "6M", "6L33", "6S0", "5M", "5L39", "4M", "4L33", "3T", "3L33"], + rockslide: ["9M", "9L0", "7M", "7L1", "6M", "6L33", "6S0", "5M", "5L33", "4M", "4L33", "3T", "3L33"], rocksmash: ["6M", "5M", "4M", "3M"], rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["7M", "6M", "5M"], sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], scaryface: ["9M"], + scorchingsands: ["9M"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["3T"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M"], stealthrock: ["9M", "7T", "6T", "5T", "4M"], @@ -38654,6 +40448,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "6M", "5M", "4M", "3T"], tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], takedown: ["9M", "9L31", "7L31", "6L31", "6S0", "5L25", "4L21", "3L29"], + temperflare: ["9M"], terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], @@ -38677,12 +40472,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodypress: ["9M", "8M", "8S0"], bodyslam: ["9M", "9L32", "8M", "8L32", "7L27", "6L27", "5L33", "4L33", "3T", "3L20"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], - burningjealousy: ["8T", "8S0"], + burningjealousy: ["9M", "8T", "8S0"], captivate: ["4M"], clearsmog: ["9L16", "8L16", "7E", "6E", "5E"], confide: ["7M", "6M"], - curse: ["9L44", "8L44", "7L22", "6L12", "5L12", "4L12", "3L7"], - doubleedge: ["3T"], + curse: ["9M", "9L44", "8L44", "7L22", "6L12", "5L12", "4L12", "3L7"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], @@ -38702,9 +40497,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flareblitz: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], - heatcrash: ["8M"], + heatcrash: ["9M", "8M"], heatwave: ["9M", "9L48", "8M", "8L48", "7T", "7L45", "6T", "6L1", "5T", "5L55", "4T", "4L55", "3L46"], heavyslam: ["9M"], helpinghand: ["9M"], @@ -38730,7 +40525,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rollout: ["4T"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["8M", "3T"], shellsmash: ["9L60", "8L60", "7L47", "6L1", "5L65"], @@ -38750,9 +40545,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { superpower: ["8M", "7T", "7E", "6T", "6E"], swagger: ["7M", "6M", "5M", "4M", "3T"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], withdraw: ["9L4", "8L4", "7L7", "6L7", "5L7", "4L7"], yawn: ["9E", "8E", "8S0", "7E", "6E", "5E", "4E", "3E"], @@ -38768,7 +40564,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { amnesia: ["9M", "9E", "7E", "6E", "5E", "4E"], attract: ["7M", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "3T"], - bounce: ["9L50", "7T", "7L50", "6T", "6L50", "5T", "5L53", "4T", "4L48", "3L43"], + bounce: ["9L50", "7T", "7L50", "6T", "6L50", "5T", "5L50", "4T", "4L48", "3L43"], calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], @@ -38782,13 +40578,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + expandingforce: ["9M"], extrasensory: ["9E", "7E", "6E", "5E", "4E", "3E"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], flashcannon: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["9E", "7E", "6E", "5E", "4E", "3E"], + futuresight: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], grassknot: ["9M", "7M", "6M", "5M", "4M"], growl: ["9L10"], headbutt: ["4T"], @@ -38800,19 +40598,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irontail: ["7T", "6T", "5T", "4M", "3M"], lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], luckychant: ["7E", "6E", "5E"], + lunge: ["9M"], magiccoat: ["7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L28"], mimic: ["3T"], mirrorcoat: ["9E", "7E", "6E", "5E", "4E"], naturalgift: ["4M"], nightshade: ["9M"], odorsleuth: ["7L10", "6L10", "5L10", "4L10", "3L10"], - payback: ["9L40", "7M", "7L40", "6M", "6L40", "5M", "5L41", "4M", "4L34"], - powergem: ["9M", "9L29", "7L29", "6L29", "5L48", "4L46"], + payback: ["9L40", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L34"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L33", "4L46"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L14", "7L14", "6L14", "5L14", "4L14", "3L16"], - psychic: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "5L46", "4M", "4L41", "3M", "3L34"], + psychic: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L41", "3M", "3L34"], psychicterrain: ["9M"], - psychup: ["9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], + psychup: ["9M", "9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], psyshock: ["9M", "9L38", "7M", "7L38", "6M", "6L38", "5M", "5L34"], psywave: ["7L7", "6L7", "5L7", "5D", "4L7", "3L7"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -38850,12 +40649,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], trick: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], trickroom: ["9M", "7M", "6M", "5M", "4M"], - uproar: ["3S0"], + uproar: ["9M", "3S0"], whirlwind: ["9E", "7E", "6E", "5E"], zenheadbutt: ["9M", "9E", "7T", "7L26", "7E", "6T", "6L26", "6E", "5T", "5L26", "5E", "4T", "4L26", "4E"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, abilities: ["owntempo"], moves: ["splash", "uproar"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["owntempo"], moves: ["splash", "uproar"], pokeball: "pokeball", emeraldEventEgg: true}, ], }, grumpig: { @@ -38866,7 +40665,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { belch: ["9L1", "7L1"], bodypress: ["9M"], bodyslam: ["9M", "3T"], - bounce: ["9L60", "7T", "7L60", "6T", "6L60", "5T", "5L68", "4T", "4L60", "3L55"], + bounce: ["9L60", "7T", "7L60", "6T", "6L60", "5T", "5L60", "4T", "4L60", "3L55"], brickbreak: ["9M", "7M", "6M", "5M", "4M"], bulldoze: ["9M", "7M", "6M", "5M"], calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -38887,16 +40686,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dynamicpunch: ["3T"], earthpower: ["9M"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], flash: ["6M", "5M", "4M", "3M"], flashcannon: ["9M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], @@ -38913,6 +40715,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], lowkick: ["9M"], lowsweep: ["9M"], + lunge: ["9M"], magiccoat: ["7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L28"], megakick: ["3T"], megapunch: ["3T"], @@ -38924,14 +40727,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nightshade: ["9M"], odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], - payback: ["9L46", "7M", "7L46", "6M", "6L46", "5M", "5L47", "4M", "4L37"], - powergem: ["9M", "9L29", "7L29", "6L29", "5L60", "4L55"], + payback: ["9L46", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L37"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L35", "4L55"], poweruppunch: ["6M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - psychic: ["9M", "9L52", "7M", "7L52", "6M", "6L52", "5M", "5L55", "4M", "4L47", "3M", "3L37"], + psychic: ["9M", "9L52", "7M", "7L52", "6M", "6L52", "5M", "5L52", "4M", "4L47", "3M", "3L37"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], + psychup: ["9M", "9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], psyshock: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L37"], psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -38973,6 +40777,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], trick: ["9M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M"], zenheadbutt: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L26", "4T", "4L26"], }, encounters: [ @@ -39085,69 +40890,73 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { zenheadbutt: ["7T", "6T", "5T", "4T"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["tackle", "uproar", "sing"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["tackle", "uproar", "sing"], pokeball: "pokeball", emeraldEventEgg: true}, ], }, trapinch: { learnset: { - astonish: ["8L1"], + astonish: ["9L1", "8L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bide: ["7L1", "6L1", "5L17"], - bite: ["8L8", "7L1", "6L1", "5L1", "5D", "5S0", "4L1", "3L1"], - bodyslam: ["8M", "3T"], - bugbite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], - bulldoze: ["8M", "8L20", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + bite: ["9L8", "8L8", "7L1", "6L1", "5L1", "5D", "5S0", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + bugbite: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + bulldoze: ["9M", "9L20", "8M", "8L20", "7M", "7L8", "6M", "6L8", "5M", "5L21"], captivate: ["4M"], confide: ["7M", "6M"], - crunch: ["8M", "8L28", "7L22", "6L22", "5L33", "4L33", "3L33"], - dig: ["8M", "8L24", "7L19", "6M", "6L19", "5M", "5L41", "4M", "4L41", "3M", "3L41"], + crunch: ["9M", "9L28", "8M", "8L28", "7L22", "6L22", "5L33", "4L33", "3L33"], + dig: ["9M", "9L24", "8M", "8L24", "7L19", "6M", "6L19", "5M", "5L29", "4M", "4L41", "3M", "3L41"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - earthpower: ["8M", "8L36", "7T", "7L26", "7E", "6T", "6L26", "6E", "5T", "5L65", "5E", "4T", "4L65"], - earthquake: ["8M", "8L40", "7M", "7L33", "6M", "6L33", "5M", "5L73", "4M", "4L73", "3M"], - endure: ["8M", "7E", "6E", "5E", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - feint: ["8E", "7L29", "6L1", "5L81", "4L81"], - feintattack: ["7L1", "6L1", "5L17", "4L17", "3L17"], - firstimpression: ["8E"], - fissure: ["8L48", "7L47", "6L1", "5L89", "4L89"], - flail: ["8E", "7E", "6E", "5E", "4E"], + earthpower: ["9M", "9L36", "8M", "8L36", "7T", "7L26", "7E", "6T", "6L26", "6E", "5T", "5L39", "5E", "4T", "4L65"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L33", "6M", "6L33", "5M", "5L55", "4M", "4L73", "3M"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9E", "8E", "7L29", "6L1", "5L61", "4L81"], + feintattack: ["7L1", "6L1", "5L7", "4L17", "3L17"], + firstimpression: ["9E", "8E"], + fissure: ["9L48", "8L48", "7L47", "6L1", "5L73", "4L89"], + flail: ["9E", "8E", "7E", "6E", "5E", "4E"], focusenergy: ["8M", "7E", "6E", "5E", "4E", "3E"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furycutter: ["8E", "7E", "6E", "5E", "4T", "4E"], - gigadrain: ["8M", "7T", "6T", "5T", "5D", "4M", "3M"], - gust: ["8E", "7E", "6E", "5E", "4E", "3E"], + furycutter: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "5D", "4M", "3M"], + gust: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L57"], + hyperbeam: ["9M", "8M", "7M", "7L43", "6M", "6L43", "5M", "5L49", "4M", "4L57", "3M", "3L57"], laserfocus: ["8L4"], mimic: ["3T"], - mudshot: ["8M", "7E", "6E", "5E", "4E"], - mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E"], + mudslap: ["9M", "9L12", "8L12", "7L5", "6L5", "5L13", "4T", "3T"], naturalgift: ["4M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - quickattack: ["8E", "7E", "6E", "5E", "4E", "3E"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L9"], - sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L49"], - sandtomb: ["8M", "8L16", "7L12", "6L10", "5L25", "4L25", "3L25"], - scorchingsands: ["8T"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L4", "4L9", "3L9"], + sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L44", "4M", "4L49", "3M", "3L49"], + sandtomb: ["9M", "9L16", "8M", "8L16", "7L12", "6L10", "5L10", "4L25", "3L25"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "5D"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["9M"], + stoneedge: ["9M"], strength: ["6M", "5M", "4M", "3M"], - strugglebug: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - superpower: ["8M", "8L44", "7T", "7L40", "6T", "6L1", "5T", "5L67"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["9L44", "8M", "8L44", "7T", "7L40", "6T", "6L1", "5T", "5L67"], swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], }, eventData: [ @@ -39156,192 +40965,208 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, vibrava: { learnset: { - aircutter: ["4T"], - airslash: ["8M"], - astonish: ["8L1"], + aerialace: ["9M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + astonish: ["9L1", "8L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bide: ["7L1", "6L1", "5L17"], - bite: ["8L1", "3L1"], - bodyslam: ["8M", "3T"], - boomburst: ["8L62", "7L47", "6L47"], - bugbite: ["7T", "6T", "5T", "4T"], - bugbuzz: ["8M", "8L28", "7L29", "6L29"], - bulldoze: ["8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + bite: ["9L1", "8L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + boomburst: ["9L62", "8L62", "7L47", "6L47"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L28", "8M", "8L28", "7L29", "6L29"], + bulldoze: ["9M", "9L1", "8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], captivate: ["4M"], confide: ["7M", "6M"], - crunch: ["8M", "8L1", "3L33"], + crunch: ["9M", "9L1", "8M", "8L1", "3L33"], defog: ["7T", "4M"], - dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + dig: ["9M", "9L1", "8M", "8L1", "6M", "5M", "4M", "3M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dracometeor: ["8T", "7T", "6T", "5T", "4T"], - dragonbreath: ["8L0", "7L1", "6L35", "5L35", "4L35", "3L35"], - dragonpulse: ["8M", "7T", "6T", "5T", "4M"], - dragonrush: ["8L56"], - dragontail: ["8L20"], - dualwingbeat: ["8T"], - earthpower: ["8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], - earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L0", "8L0", "7L1", "6L35", "5L35", "4L35", "3L35"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrush: ["9L56", "8L56"], + dragontail: ["9M", "9L20", "8L20"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "9L38", "8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], + earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], feintattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], - fissure: ["8L1"], - fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9L1", "8L1"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], focusenergy: ["8M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T"], - gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M"], headbutt: ["4T"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L57"], + hyperbeam: ["9M", "8M", "7M", "7L43", "6M", "6L43", "5M", "5L49", "4M", "4L57", "3M", "3L57"], laserfocus: ["8L1"], mimic: ["3T"], - mudshot: ["8M"], - mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L12", "8L12", "7L5", "6L5", "5L13", "4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], - outrage: ["8M", "7T", "6T", "5T", "4T"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L49"], - sandtomb: ["8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1"], - scorchingsands: ["8T"], - screech: ["8M", "8L24", "7L22", "6L22", "5L41", "4L41", "3L41"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L44", "4M", "4L49", "3M", "3L49"], + sandtomb: ["9M", "9L16", "8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1"], + scorchingsands: ["9M", "8T"], + screech: ["9L24", "8M", "8L24", "7L22", "6L22", "5L34", "4L41", "3L41"], secretpower: ["6M", "4M", "3M"], signalbeam: ["7T", "6T", "5T"], silverwind: ["4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], sonicboom: ["7L1", "6L1", "5L1", "4L1"], + stealthrock: ["9M"], steelwing: ["8M", "7M", "6M", "4M", "3M"], + stoneedge: ["9M"], strength: ["6M", "5M", "4M", "3M"], - strugglebug: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - superpower: ["8M", "8L1", "7T", "6T", "5T"], - supersonic: ["8L1", "7L19", "6L19", "5L33", "4L33"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["9L1", "8M", "8L1", "7T", "6T", "5T"], + supersonic: ["9L1", "8L1", "7L19", "6L19", "5L29", "4L33"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - tailwind: ["7T", "6T", "5T", "4T"], - throatchop: ["8M", "7T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9M", "8M", "7T"], toxic: ["7M", "6M", "5M", "4M", "3M"], twister: ["4T"], - uproar: ["8M", "8L50", "7T", "7L40", "6T", "6L40"], - uturn: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "9L50", "8M", "8L50", "7T", "7L40", "6T", "6L40"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], }, }, flygon: { learnset: { - aerialace: ["7M", "6M", "5M", "4M"], - aircutter: ["4T"], - airslash: ["8M"], - astonish: ["8L1"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + alluringvoice: ["9M"], + astonish: ["9L1", "8L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bide: ["7L1", "6L1", "5L17"], - bite: ["8L1", "3L1"], - bodyslam: ["8M", "3T"], - boomburst: ["8L68"], - breakingswipe: ["8M"], + bite: ["9L1", "8L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + boomburst: ["9L68", "8L68"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], - bugbite: ["7T", "6T", "5T", "4T"], - bugbuzz: ["8M", "8L28"], - bulldoze: ["8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L28", "8M", "8L28"], + bulldoze: ["9M", "9L1", "8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], captivate: ["4M"], confide: ["7M", "6M"], - crunch: ["8M", "8L1", "3L33", "3S0"], + crunch: ["9M", "9L1", "8M", "8L1", "3L33", "3S0"], defog: ["7T", "4M"], - dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "9L1", "8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dracometeor: ["8T", "7T", "6T", "5T", "4T", "4S1"], - dragonbreath: ["8L1", "7L1", "6L35", "5L35", "4L35", "3L35", "3S0"], - dragonclaw: ["8M", "8L0", "7M", "7L1", "6M", "6L45", "5M", "5L45", "4M", "4L45", "4S1", "3M"], - dragondance: ["8M", "8L1", "7L1"], - dragonpulse: ["8M", "7T", "6T", "5T", "4M"], - dragonrush: ["8L60", "7L47", "6L47"], - dragontail: ["8L20", "7M", "7L29", "6M", "6L29", "5M", "5L65"], - dualwingbeat: ["8T"], - earthpower: ["8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], - earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "4S1", "3M"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - feint: ["8L1"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T", "4S1"], + dragonbreath: ["9L1", "8L1", "7L1", "6L35", "5L35", "4L35", "3L35", "3S0"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L45", "5M", "5L45", "4M", "4L45", "4S1", "3M"], + dragondance: ["9M", "9L1", "8M", "8L1", "7L1"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrush: ["9L60", "8L60", "7L47", "6L47"], + dragontail: ["9M", "9L20", "8L20", "7M", "7L29", "6M", "6L29", "5M", "5L45"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "9L38", "8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], + earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "4S1", "3M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9L1", "8L1"], feintattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], - fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - firespin: ["8M"], - fissure: ["8L1"], - flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], - fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + firespin: ["9M", "8M"], + fissure: ["9L1", "8L1"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], focusenergy: ["8M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], - heatwave: ["8M", "7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L65"], + hyperbeam: ["9M", "8M", "7M", "7L43", "6M", "6L43", "5M", "5L49", "4M", "4L57", "3M", "3L65"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], laserfocus: ["8L1", "7T"], megakick: ["8M"], megapunch: ["8M"], mimic: ["3T"], - mudshot: ["8M"], - mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L12", "8L12", "7L5", "6L5", "5L13", "4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], - outrage: ["8M", "7T", "6T", "5T", "4T"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychicnoise: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L53"], - sandtomb: ["8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1", "3S0"], - scaleshot: ["8T"], - scorchingsands: ["8T"], - screech: ["8M", "8L24", "7L22", "6L22", "5L41", "4L41", "3L41", "3S0"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L44", "4M", "4L49", "3M", "3L53"], + sandtomb: ["9M", "9L16", "8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1", "3S0"], + scaleshot: ["9M", "8T"], + scorchingsands: ["9M", "8T"], + screech: ["9L24", "8M", "8L24", "7L22", "6L22", "5L34", "4L41", "3L41", "3S0"], secretpower: ["6M", "4M", "3M"], signalbeam: ["7T", "6T", "5T"], silverwind: ["4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], sonicboom: ["7L1", "6L1", "5L1", "4L1"], + stealthrock: ["9M"], steelwing: ["8M", "7M", "6M", "4M", "3M"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M", "3M"], - strugglebug: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - superpower: ["8M", "8L1", "7T", "6T", "5T"], - supersonic: ["8L1", "7L19", "6L19", "5L33", "4L33"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["9L1", "8M", "8L1", "7T", "6T", "5T"], + supersonic: ["9L1", "8L1", "7L19", "6L19", "5L29", "4L33"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - tailwind: ["7T", "6T", "5T", "4T"], - throatchop: ["8M", "7T"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9M", "8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], toxic: ["7M", "6M", "5M", "4M", "3M"], twister: ["4T"], - uproar: ["8M", "8L52", "7T", "7L40", "6T", "6L40"], - uturn: ["8M", "7M", "6M", "5M", "4M", "4S1"], + uproar: ["9M", "9L52", "8M", "8L52", "7T", "7L40", "6T", "6L40"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M", "4S1"], + vacuumwave: ["9M"], }, eventData: [ {generation: 3, level: 45, moves: ["sandtomb", "crunch", "dragonbreath", "screech"], pokeball: "pokeball"}, @@ -39351,10 +41176,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cacnea: { learnset: { absorb: ["9L4", "7L4", "6L4", "5L5", "5D", "4L5", "3L5", "3S0"], - acid: ["7E", "6E", "5E", "4E", "3E"], + acid: ["9E", "7E", "6E", "5E", "4E", "3E"], attract: ["7M", "6M", "5M", "4M", "3M"], - belch: ["7E", "6E"], - block: ["7T", "7E", "6T", "6E", "5T", "5E"], + belch: ["9E", "7E", "6E"], + block: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], bodyslam: ["9M", "3T"], brickbreak: ["9M", "7M", "6M", "5M", "4M"], bulldoze: ["9M"], @@ -39362,31 +41187,34 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], confide: ["7M", "6M"], cottonspore: ["9L46", "7L46", "6L46", "5L49", "4L49", "3L41"], - counter: ["7E", "6E", "5E", "4E", "3T", "3E"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], darkpulse: ["9M", "7M", "6M", "5T", "4M"], destinybond: ["9L54", "7L54", "6L54", "5L57", "4L57", "3L49"], dig: ["9M"], - disable: ["7E", "6E", "5E"], + disable: ["9E", "7E", "6E", "5E"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], drainpunch: ["9M", "7T", "6T", "5T", "4M"], dynamicpunch: ["7E", "6E", "5E", "4E", "3T", "3E"], encore: ["9M", "3S0"], + endeavor: ["9M"], endure: ["9M", "4M", "3T"], energyball: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], feintattack: ["7L19", "6L19", "5L29", "4L29", "3L29"], - fellstinger: ["7E", "6E"], + fellstinger: ["9E", "7E", "6E"], flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], grasswhistle: ["7E", "6E", "5E", "4E", "3E"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L7", "7L7", "6L7", "5L9", "4L9", "3L9"], headbutt: ["4T"], @@ -39424,24 +41252,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M", "3M"], seedbomb: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], seismictoss: ["3T"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], smellingsalts: ["7E", "6E", "5E", "4E"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], spikes: ["9M", "9L30", "7L30", "6L30", "5L33", "4L33", "3L33"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["9L34", "7L34", "6L34", "5L37", "4T", "4L37"], sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], swift: ["9M"], - switcheroo: ["7E", "6E", "5E"], + switcheroo: ["9E", "7E", "6E", "5E"], swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], synthesis: ["7T", "6T", "5T", "4T"], takedown: ["9M"], - teeterdance: ["7E", "6E", "5E", "5D", "4E", "3E"], + teeterdance: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunderpunch: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], toxicspikes: ["9M"], @@ -39450,7 +41280,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["poisonsting", "leer", "absorb", "encore"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["poisonsting", "leer", "absorb", "encore"], pokeball: "pokeball", emeraldEventEgg: true}, ], }, cacturne: { @@ -39466,6 +41296,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], cottonspore: ["9L49", "7L49", "6L49", "5L59", "4L59", "3L47"], counter: ["3T"], + curse: ["9M"], cut: ["6M", "5M", "4M", "3M"], darkpulse: ["9M", "7M", "6M", "5T", "4M"], destinybond: ["9L1", "7L1", "6L1", "5L71", "4L71", "3L59"], @@ -39476,6 +41307,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dynamicpunch: ["3T"], embargo: ["7M", "6M", "5M", "4M"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "4M", "3T"], energyball: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -39483,13 +41315,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["4T"], @@ -39497,10 +41330,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], ingrain: ["9L22", "7L22", "6L22", "5L25", "4L25", "3L25", "3S0"], + knockoff: ["9M"], + lashout: ["9M"], leafstorm: ["9M"], leechseed: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], lowkick: ["9M", "7T", "6T", "5T", "4T"], + lunge: ["9M"], magicalleaf: ["9M"], megakick: ["3T"], megapunch: ["3T"], @@ -39531,12 +41367,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seedbomb: ["9M", "7T", "6T", "5T", "4T"], seismictoss: ["3T"], shadowball: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], spikes: ["9M", "9L30", "7L30", "6L30", "5L35", "4L35", "3L35", "3S0"], spikyshield: ["9L0", "7L1", "6L32"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], stompingtantrum: ["9M", "7T"], strength: ["6M", "5M", "4M", "3M"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], @@ -39551,6 +41388,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], toxicspikes: ["9M"], @@ -39572,33 +41410,35 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], agility: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], aircutter: ["4T"], - astonish: ["9E", "8E", "7L3", "6L3", "5L5", "4L5", "3L8"], + astonish: ["9E", "8E", "7L3", "6L3", "5L4", "4L5", "3L8"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "3T"], bravebird: ["9M"], captivate: ["4M"], confide: ["7M", "6M"], - cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L40"], + cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L39"], dazzlinggleam: ["9M", "8M", "7M", "6M"], defog: ["9E", "8E", "7T"], disarmingvoice: ["9M", "9L4", "8L4", "7L11", "6L11"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragonbreath: ["9L20", "8L20"], - dragonpulse: ["9M", "8M", "7T", "7L38", "6T", "6L38", "5T", "5L50", "4M", "4L45"], + dragoncheer: ["9M"], + dragonpulse: ["9M", "8M", "7T", "7L38", "6T", "6L38", "5T", "5L42", "4M", "4L45"], dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], dreameater: ["7M", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M", "8M", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["8M", "3S0"], - featherdance: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + featherdance: ["9M", "9E", "8E", "7E", "6E", "5E", "5D", "4E"], fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furyattack: ["9L12", "8L12", "7L7", "6L7", "5L13", "4L13", "3L18"], + furyattack: ["9L12", "8L12", "7L7", "6L7", "5L10", "4L13", "3L18"], growl: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1", "3S0"], - haze: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], healbell: ["7T", "6T", "5T", "4T"], heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], helpinghand: ["9M"], @@ -39607,15 +41447,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M", "7T", "7E", "6T", "6E", "6S2", "5T", "5E"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], mimic: ["3T"], - mirrormove: ["7L30", "6L30", "5L36", "4L36", "3L38"], - mist: ["9L8", "8L8", "7L14", "6L14", "5L23", "4L23", "3L28"], + mirrormove: ["7L30", "6L30", "5L34", "4L36", "3L38"], + mist: ["9L8", "8L8", "7L14", "6L14", "5L15", "4L23", "3L28"], moonblast: ["9L40", "8L40", "7L46", "6L46"], mudslap: ["4T", "3T"], - naturalgift: ["7L20", "6L20", "5L32", "4M", "4L32"], + naturalgift: ["7L20", "6L20", "5L21", "4M", "4L32"], ominouswind: ["4T"], outrage: ["8M", "7T", "6T", "5T", "4T"], peck: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5D", "5S1", "4L1", "3L1", "3S0"], - perishsong: ["9L44", "8L44", "7L42", "6L42", "5L55", "4L50", "3L48"], + perishsong: ["9L44", "8L44", "7L42", "6L42", "5L48", "4L50", "3L48"], playrough: ["9M", "8M", "7E"], pluck: ["5M", "4M"], powerswap: ["8M", "7E", "6E", "5E", "4E"], @@ -39624,14 +41464,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pursuit: ["7E", "6E", "5E", "4E", "3E"], rage: ["7E", "6E", "5E", "4E", "3E"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - refresh: ["7L26", "6L26", "5L45", "4L40", "3L41"], + refresh: ["7L26", "6L26", "5L29", "4L40", "3L41"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], roost: ["9E", "8E", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M"], round: ["9L16", "8M", "8L16", "7M", "7L17", "6M", "6L17", "5M", "5L18"], - safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L18", "4M", "4L18", "3M", "3L21"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L13", "4M", "4L18", "3M", "3L21"], secretpower: ["6M", "4M", "3M"], - sing: ["9L28", "8L28", "7L5", "6L5", "5L9", "4L9", "3L11"], + sing: ["9L28", "8L28", "7L5", "6L5", "5L8", "4L9", "3L11"], skyattack: ["7T", "6T", "3T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], @@ -39642,7 +41482,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "6M", "5M", "4M", "3T"], swift: ["9M", "8M", "4T", "3T"], tailwind: ["9M", "9E", "8E", "7T", "6T", "5T", "4T"], - takedown: ["9M", "9L36", "8L36", "7L23", "6L23", "5L28", "4L28", "3L31"], + takedown: ["9M", "9L36", "8L36", "7L23", "6L23", "5L25", "4L28", "3L31"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], @@ -39651,7 +41491,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { uproar: ["8M", "7T", "6T", "5T", "4T"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "falseswipe"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "falseswipe"], pokeball: "pokeball", emeraldEventEgg: true}, {generation: 5, level: 1, shiny: true, moves: ["peck", "growl"], pokeball: "pokeball"}, {generation: 6, level: 1, isHidden: true, moves: ["peck", "growl", "hypervoice"], pokeball: "pokeball"}, ], @@ -39662,40 +41502,45 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["9M", "7M", "6M", "5M", "4M", "3M", "3S1"], agility: ["9M", "8M", "6S3"], aircutter: ["4T"], + alluringvoice: ["9M"], astonish: ["7L1", "6L1", "5L1", "4L1", "3L1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "3T"], bravebird: ["9M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L46"], + cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L42"], dazzlinggleam: ["9M", "8M", "7M", "6M"], defog: ["7T"], disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["9L20", "8L20", "7L1", "6L35", "5L35", "5S2", "4L35", "3L35", "3S0", "3S1"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - dragondance: ["9M", "8M", "7L30", "6L30", "5L39", "4L39", "3L40", "3S0"], - dragonpulse: ["9M", "9L0", "8M", "8L0", "7T", "7L40", "6T", "6L40", "5T", "5L62", "4M", "4L54"], + dragondance: ["9M", "8M", "7L30", "6L30", "5L34", "4L39", "3L40", "3S0"], + dragonpulse: ["9M", "9L0", "8M", "8L0", "7T", "7L40", "6T", "6L40", "5T", "5L48", "4M", "4L54"], dreameater: ["7M", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M", "8M", "4M", "3T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], falseswipe: ["8M", "5S2"], + featherdance: ["9M"], fireblast: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], firespin: ["9M", "8M"], flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furyattack: ["9L12", "8L12", "7L7", "6L7", "5L13", "4L13", "3L18"], + furyattack: ["9L12", "8L12", "7L7", "6L7", "5L10", "4L13", "3L18"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + haze: ["9M"], healbell: ["7T", "6T", "5T", "4T", "3S1"], heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], helpinghand: ["9M"], @@ -39708,31 +41553,31 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], mimic: ["3T"], - mist: ["9L1", "8L1", "7L14", "6L14", "5L23", "4L23", "3L28"], + mist: ["9L1", "8L1", "7L14", "6L14", "5L15", "4L23", "3L28"], moonblast: ["9L44", "8L44", "7L52", "6L52"], mudslap: ["4T", "3T"], - naturalgift: ["7L20", "6L20", "5L32", "5S2", "4M", "4L32"], + naturalgift: ["7L20", "6L20", "5L21", "5S2", "4M", "4L32"], ominouswind: ["4T"], outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], peck: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - perishsong: ["9L50", "8L50", "7L46", "6L46", "5L70", "4L62", "3L54"], + perishsong: ["9L50", "8L50", "7L46", "6L46", "5L57", "4L62", "3L54"], playrough: ["9M", "8M"], pluck: ["9L1", "8L1", "7L1", "6L1", "5M", "5L1", "4M", "4L1"], powerswap: ["8M"], protect: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "3T"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - refresh: ["7L26", "6L26", "5L54", "4L46", "3L45", "3S0"], + refresh: ["7L26", "6L26", "5L29", "4L46", "3L45", "3S0"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["9L16", "8M", "8L16", "7M", "7L17", "6M", "6L17", "5M", "5L18"], - safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L18", "4M", "4L18", "3M", "3L21"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L13", "4M", "4L18", "3M", "3L21"], secretpower: ["6M", "4M", "3M"], sing: ["9L28", "8L28", "7L1", "6L1", "5L1", "4L1", "3L1"], - skyattack: ["9L56", "8L56", "7T", "7L1", "6T", "6L1", "5T", "5L77", "4T", "4L70", "3T", "3L59"], + skyattack: ["9L56", "8L56", "7T", "7L1", "6T", "6L1", "5T", "5L64", "4T", "4L70", "3T", "3L59"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], snowscape: ["9M"], @@ -39743,13 +41588,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "6M", "5M", "4M", "3T"], swift: ["9M", "8M", "4T", "3T"], tailwind: ["9M", "7T", "6T", "5T", "4T"], - takedown: ["9M", "9L38", "8L38", "7L23", "6L23", "5L28", "5S2", "4L28", "3L31", "3S0"], + takedown: ["9M", "9L38", "8L38", "7L23", "6L23", "5L25", "5S2", "4L28", "3L31", "3S0"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], twister: ["4T"], uproar: ["8M", "7T", "6T", "5T", "4T"], + weatherball: ["9M"], willowisp: ["9M"], wonderroom: ["8M", "7T", "6T", "5T"], }, @@ -39772,25 +41618,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "3T"], brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M", "3S2"], captivate: ["4M"], - closecombat: ["9M", "9L50", "7L50", "6L47", "5L53", "4L53"], + closecombat: ["9M", "9L50", "7L50", "6L47", "5L47", "4L53"], confide: ["7M", "6M"], counter: ["9L1", "7E", "6E", "5E", "4E", "3T", "3E", "3S2"], - crushclaw: ["9L26", "7L26", "6L22", "5L31", "4L31", "3L31", "3S2"], - curse: ["9L1", "7E", "6E", "5E", "4E", "3E"], + crushclaw: ["9L26", "7L26", "6L22", "5L22", "4L31", "3L31", "3S2"], + curse: ["9M", "9L1", "7E", "6E", "5E", "4E", "3E"], defensecurl: ["3T"], - detect: ["9L36", "7L36", "6L33", "5L40", "4L40", "3L46"], + detect: ["9L36", "7L36", "6L33", "5L33", "4L40", "3L46"], dig: ["9M", "6M", "5M", "4M", "3M"], disable: ["9L1", "7E", "6E", "5E", "4E"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doublehit: ["9L1", "7E", "6E", "5E", "5D", "4E"], doublekick: ["9L1", "7E", "6E", "5E", "4E", "3E"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - embargo: ["7M", "7L33", "6M", "6L19", "5M", "5L27", "4M", "4L27"], - endeavor: ["7T", "6T", "5T", "4T"], + embargo: ["7M", "7L33", "6M", "6L19", "5M", "5L19", "4M", "4L27"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["9M", "9L29", "7M", "7L29", "6M", "6L29", "5M", "5L44", "4M", "4L44", "3L55"], + falseswipe: ["9M", "9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L44", "3L55"], feint: ["9L1", "7E", "6E", "5E"], finalgambit: ["9L1", "7E", "6E", "5E"], fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -39799,9 +41645,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - furycutter: ["9L8", "7L8", "6L8", "5L14", "4T", "4L14", "3T", "3L13", "3S0"], + furycutter: ["9L8", "7L8", "6L8", "5L8", "4T", "4L14", "3T", "3L13", "3S0"], furyswipes: ["9L1", "7E", "6E", "5E", "4E"], gigadrain: ["7T", "6T", "5T", "4M", "3M"], gigaimpact: ["9M"], @@ -39817,7 +41663,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lastresort: ["7T", "6T", "5T", "4T"], leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L4", "3S0", "3S1"], lowkick: ["9M", "7T", "6T", "5T", "5D", "4T"], @@ -39834,7 +41680,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powertrip: ["9L22"], poweruppunch: ["6M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], - pursuit: ["7L12", "6L12", "5L22", "4L22", "3L25"], + pursuit: ["7L12", "6L12", "5L12", "4L22", "3L25"], quickattack: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5", "3L7", "3S0", "3S1"], quickguard: ["9L1", "7E", "6E"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -39845,7 +41691,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "6M", "5M", "4M", "3M"], revenge: ["7L22", "6L22", "5L26"], reversal: ["9M"], - roar: ["7M", "6M", "5M", "4M", "4E", "3M", "3E"], + roar: ["9M", "7M", "6M", "5M", "4M", "4E", "3M", "3E"], rockclimb: ["4M"], rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], @@ -39859,7 +41705,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], shadowclaw: ["9M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - slash: ["9L19", "7L19", "6L15", "5L18", "4L18", "3L19"], + slash: ["9L19", "7L19", "6L15", "5L15", "4L18", "3L19"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -39875,15 +41721,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L43", "7M", "7L43", "6M", "6L40", "5M", "5L35", "4M", "4L35", "3M", "3L37"], terablast: ["9M"], thief: ["9M", "7M", "6M", "5M", "4M", "3M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], thunderwave: ["9M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], + upperhand: ["9M"], waterpulse: ["7T", "6T", "4M", "3M"], workup: ["7M", "5M"], - xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L36", "5M", "5L48", "4M", "4L48"], + xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L36", "5M", "5L36", "4M", "4L48"], zenheadbutt: ["9M"], }, eventData: [ @@ -39900,21 +41747,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["7M", "6M", "5M", "4M", "3M"], belch: ["9L41", "7L41", "6L43"], bind: ["7T", "6T", "5T"], - bite: ["9L4", "7L4", "6L4", "5L10", "5D", "4L10", "3L10", "3S0", "3S2"], + bite: ["9L4", "7L4", "6L4", "5L5", "5D", "4L10", "3L10", "3S0", "3S2"], bodyslam: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3T", "3E"], + breakingswipe: ["9M"], brickbreak: ["9M"], brutalswing: ["7M"], bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], - coil: ["9L44", "7L44", "6L46", "5L64"], + coil: ["9L44", "7L44", "6L46", "5L49"], confide: ["7M", "6M"], crunch: ["9M", "9L39", "7L39", "6L40", "5L28", "4L28", "3L28", "3S1"], + curse: ["9M"], darkpulse: ["9M", "7M", "6M", "5T", "4M"], dig: ["9M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragontail: ["7M", "6M", "5M"], earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9M"], endure: ["9M", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], feint: ["9L11", "7L11"], @@ -39926,9 +41776,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gastroacid: ["9L29", "7T", "7L29", "6T", "6L31", "5T", "5L34"], gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], gigaimpact: ["9M"], - glare: ["9L19", "7L19", "6L19", "5L25", "4L25", "3L25", "3S1"], + glare: ["9L19", "7L19", "6L19", "5L23", "4L25", "3L25", "3S1"], gunkshot: ["9M"], - haze: ["9L34", "7L34", "6L37", "5L43", "4L43", "3L43"], + haze: ["9M", "9L34", "7L34", "6L37", "5L38", "4L43", "3L43"], headbutt: ["4T"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], @@ -39937,16 +41787,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { infestation: ["7M", "6M"], ironhead: ["9M"], irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], - knockoff: ["7T", "6T", "5T", "4T"], - lick: ["9L6", "7L6", "6L7", "5L7", "4L7", "3L7", "3S0", "3S2"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M"], + lick: ["9L6", "7L6", "6L7", "5L1", "4L7", "3L7", "3S0", "3S2"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], - nightslash: ["9E", "7L26", "7E", "6L28", "6E", "5L46", "5E", "4L46", "4E"], + nightslash: ["9E", "7L26", "7E", "6L28", "6E", "5L31", "5E", "4L46", "4E"], payback: ["7M", "6M", "5M", "4M"], - poisonfang: ["9L21", "7L21", "6L22", "5L34", "4L34", "3L34"], - poisonjab: ["9M", "9L31", "7M", "7L31", "6M", "6L34", "5M", "5L52", "4M", "4L52"], - poisontail: ["9M", "9L9", "7L9", "6L10", "5L16", "4L16", "3L16", "3S0", "3S1"], + poisonfang: ["9L21", "7L21", "6L22", "5L27", "4L34", "3L34"], + poisonjab: ["9M", "9L31", "7M", "7L31", "6M", "6L34", "5M", "5L42", "4M", "4L52"], + poisontail: ["9M", "9L9", "7L9", "6L10", "5L12", "4L16", "3L16", "3S0", "3S1"], pounce: ["9M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], psychicfangs: ["9M"], @@ -39959,12 +41810,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocksmash: ["6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], scaryface: ["9M", "9E", "7E", "6E", "5E", "4E"], - screech: ["9L14", "7L14", "6L13", "5L19", "4L19", "3L19", "3S1"], + screech: ["9L14", "7L14", "6L13", "5L16", "4L19", "3L19", "3S1"], secretpower: ["6M", "4M", "3M"], seedbomb: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], sludgebomb: ["9M", "9L46", "7M", "6M", "5M", "4M", "3M"], - sludgewave: ["7M", "6M", "5M"], + sludgewave: ["9M", "7M", "6M", "5M"], snarl: ["9M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "6T", "5T", "4T", "3T"], @@ -39974,7 +41826,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], - swagger: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L37", "4M", "4L37", "3T", "3L37"], + swagger: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L9", "4M", "4L37", "3T", "3L37"], swallow: ["9E", "7E", "6E", "5E", "4E", "3E"], swift: ["4T", "3T"], switcheroo: ["9E", "7E", "6E", "5E", "4E"], @@ -39983,14 +41835,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], terablast: ["9M"], thief: ["9M", "7M", "6M", "5M", "4M", "3M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunderfang: ["9M"], - toxic: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], venomdrench: ["7L24", "6L25"], - venoshock: ["9M", "9L24", "7M", "7L16", "6M", "6L16", "5M", "5L55"], + venoshock: ["9M", "9L24", "7M", "7L16", "6M", "6L16", "5M", "5L20"], wrap: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S2"], - wringout: ["7L46", "7E", "6L49", "6E", "5L61", "5E", "4L55"], + wringout: ["7L46", "7E", "6L49", "6E", "5L53", "5E", "4L55"], xscissor: ["9M", "7M", "6M", "5M", "4M"], zenheadbutt: ["9M"], }, @@ -40013,38 +41865,38 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confusion: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L7", "3S0"], - cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L34", "4L34", "3L31"], + cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L29", "4L34", "3L31"], defensecurl: ["3T"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], earthpower: ["8M", "7T", "6T", "5T", "5D", "4T"], earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L31", "4M", "4L31"], + embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L21", "4M", "4L31"], endure: ["8M", "4M", "3T"], - explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L56", "4M", "4L56", "3T", "3L49"], + explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L49", "4M", "4L56", "3T", "3L49"], facade: ["8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["8M", "8L40", "7L41", "6L41", "5L53", "4L53", "3L43"], + futuresight: ["8M", "8L40", "7L41", "6L41", "5L45", "4L53", "3L43"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], grassknot: ["8M", "7M", "6M", "5M", "4M"], gravity: ["7T", "6T", "5T", "4T"], gyroball: ["8M", "7M", "6M", "5M", "4M"], hail: ["8M"], harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], - healblock: ["7L33", "6L33", "5L42", "4L42"], + healblock: ["7L33", "6L33", "5L37", "4L42"], helpinghand: ["8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7S2", "6M", "5M", "4M", "3M"], hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - hypnosis: ["8L5", "7L5", "6L5", "5L12", "4L12", "3L19"], + hypnosis: ["8L5", "7L5", "6L5", "5L9", "4L12", "3L19"], icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], icywind: ["8M", "7T", "6T", "5T"], ironhead: ["8M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], magiccoat: ["7T", "6T", "5T", "4T"], - magicroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L64"], + magicroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L53"], meteorbeam: ["8T"], mimic: ["3T"], moonblast: ["8L1", "7L1", "7S2", "6L1"], @@ -40055,20 +41907,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powergem: ["8M", "7L1", "7S2"], powerswap: ["8M"], protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8L30", "7M", "7L29", "6M", "6L29", "5M", "5L45", "4M", "4L45", "3M", "3L37", "3S1"], + psychic: ["8M", "8L30", "7M", "7L29", "6M", "6L29", "5M", "5L33", "4M", "4L45", "3M", "3L37", "3S1"], psychicterrain: ["8M"], psychup: ["7M", "6M", "5M", "4M", "3T"], psyshock: ["8M", "8L20", "7M", "7L1", "6M", "5M"], - psywave: ["7L13", "6L13", "5L23", "4L23", "3L25"], + psywave: ["7L13", "6L13", "5L17", "4L23", "3L25"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], recycle: ["7T", "6T", "5T", "4M"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], rest: ["8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rockblast: ["8M"], - rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L20", "4M", "4L20"], + rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L13", "4M", "4L20"], rockslide: ["8M", "8L15", "7M", "7L21", "6M", "6L21", "5M", "5L25", "4M", "3T"], - rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L13"], + rockthrow: ["8L1", "7L1", "6L1", "5L5", "4L9", "3L13"], rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], @@ -40115,19 +41967,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confusion: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L7", "3S0"], - cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L34", "4L34", "3L31", "3S1"], + cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L29", "4L34", "3L31", "3S1"], defensecurl: ["3T"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], earthpower: ["8M", "7T", "6T", "5T", "4T"], earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L31", "4M", "4L31"], + embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L21", "4M", "4L31"], endure: ["8M", "4M", "3T"], - explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L56", "4M", "4L56", "3T", "3L49"], + explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L49", "4M", "4L56", "3T", "3L49"], facade: ["8M", "7M", "6M", "5M", "4M", "3M"], fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], - firespin: ["8M", "7L5", "6L5", "5L12", "4L12", "3L19"], + firespin: ["8M", "7L5", "6L5", "5L9", "4L12", "3L19"], flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], flareblitz: ["8M", "8L1", "7L1"], flash: ["6M", "5M", "4M", "3M"], @@ -40137,7 +41989,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gravity: ["7T", "6T", "5T", "4T"], gyroball: ["8M", "7M", "6M", "5M", "4M"], harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], - healblock: ["7L33", "6L33", "5L42", "4L42"], + healblock: ["7L33", "6L33", "5L37", "4L42"], heatwave: ["8M", "7T", "6T", "5T"], helpinghand: ["8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "7S2", "6M", "5M", "4M", "3M"], @@ -40161,16 +42013,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychicterrain: ["8M"], psychup: ["7M", "6M", "5M", "4M", "3T"], psyshock: ["8M", "7M", "6M", "5M"], - psywave: ["7L13", "6L13", "5L23", "4L23", "3L25"], + psywave: ["7L13", "6L13", "5L17", "4L23", "3L25"], raindance: ["8M"], recycle: ["7T", "6T", "5T", "4M"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], rest: ["8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rockblast: ["8M"], - rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L20", "4M", "4L20"], - rockslide: ["8M", "8L15", "7M", "7L21", "6M", "6L21", "5M", "5L45", "4M", "4L45", "3T", "3L37"], - rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L13"], + rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L13", "4M", "4L20"], + rockslide: ["8M", "8L15", "7M", "7L21", "6M", "6L21", "5M", "5L25", "4M", "4L45", "3T", "3L37"], + rockthrow: ["8L1", "7L1", "6L1", "5L5", "4L9", "3L13"], rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], @@ -40185,7 +42037,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], smackdown: ["7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "8L40", "7M", "7L41", "7S2", "6M", "6L41", "5M", "5L53", "4M", "4L53", "3M", "3L43"], + solarbeam: ["8M", "8L40", "7M", "7L41", "7S2", "6M", "6L41", "5M", "5L45", "4M", "4L53", "3M", "3L43"], stealthrock: ["8M", "7T", "6T", "5T", "4M"], stompingtantrum: ["8M", "7T"], stoneedge: ["8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L41", "4M"], @@ -40201,7 +42053,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trickroom: ["8M", "7M", "6M", "5M", "4M"], weatherball: ["8M"], willowisp: ["8M", "7M", "6M", "5M", "4M"], - wonderroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L64"], + wonderroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L53"], zenheadbutt: ["8M", "8L20", "7T", "6T", "5T", "5D", "4T"], }, eventData: [ @@ -40222,7 +42074,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragondance: ["9M", "8M", "7E", "6E", "5E", "4E"], earthpower: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], @@ -40232,11 +42084,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fissure: ["9L48", "8L48", "7L44", "6L44", "5L47", "4L47", "3L41"], flail: ["9E", "8E", "7E", "6E", "5E", "4E"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["9L42", "8M", "8L42", "7L39", "6L39", "5L43", "4L43", "3L36"], + futuresight: ["9M", "9L42", "8M", "8L42", "7L39", "6L39", "5L43", "4L43", "3L36"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], hydropump: ["9M", "8M", "7E", "6E", "5E", "4E"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], @@ -40244,7 +42097,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magnitude: ["7L20", "6L20", "5L26", "4L26", "3L16"], mimic: ["3T"], mudbomb: ["7L13", "6L13", "5L14", "4L14"], - muddywater: ["9L31", "8M", "8L31", "7L35", "7E", "6L35", "6E", "5E"], + muddywater: ["9M", "9L31", "8M", "8L31", "7L35", "7E", "6L35", "6E", "5E"], mudshot: ["9M", "8M", "7E", "6E", "5E"], mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4T", "4L1", "3T", "3L1"], mudsport: ["7L6", "6L6", "5L6", "4L6", "3L6"], @@ -40279,7 +42132,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "8L1", "7L9", "6L9", "5L10", "4L10", "3L11"], waterpulse: ["9M", "9L12", "8L12", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L22", "3M"], watersport: ["7L6", "6L6", "5L6", "4L6", "3L6"], - whirlpool: ["8M", "7E", "6E", "5E", "4M", "4E", "3E"], + whirlpool: ["9M", "8M", "7E", "6E", "5E", "4M", "4E", "3E"], zenheadbutt: ["9M"], }, }, @@ -40296,8 +42149,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], chillingwater: ["9M"], confide: ["7M", "6M"], + curse: ["9M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragondance: ["9M", "8M"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -40306,12 +42160,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fissure: ["9L56", "8L56", "7L52", "6L52", "5L57", "4L57", "3L56"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["9L48", "8M", "8L48", "7L45", "6L45", "5L51", "4L51", "3L46"], + futuresight: ["9M", "9L48", "8M", "8L48", "7L45", "6L45", "5L51", "4L51", "3L46"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -40320,7 +42175,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magnitude: ["7L20", "6L20", "5L26", "4L26", "3L16"], mimic: ["3T"], mudbomb: ["7L13", "6L13", "5L14", "4L14"], - muddywater: ["9L33", "8M", "8L33", "7L39", "6L39"], + muddywater: ["9M", "9L33", "8M", "8L33", "7L39", "6L39"], mudshot: ["9M", "8M"], mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], @@ -40335,7 +42190,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scald: ["8M", "7M", "6M", "5M"], scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], @@ -40361,8 +42216,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "8L1", "7L1", "6L1", "5L10", "4L10", "3L11"], waterpulse: ["9M", "9L12", "8L12", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L22", "3M"], watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], - weatherball: ["8M"], - whirlpool: ["8M", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "4M"], zenheadbutt: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "4S0"], }, eventData: [ @@ -40376,89 +42231,94 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { corphish: { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], - ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E", "3E"], - aquajet: ["8E", "7E", "6E"], + ancientpower: ["9E", "8E", "7E", "6E", "5E", "4T", "4E", "3E"], + aquajet: ["9E", "8E", "7E", "6E"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "7E", "6E", "5E", "4E", "3T", "3E"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E", "3T", "3E"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bubble: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], - bubblebeam: ["8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], + bubblebeam: ["9L12", "8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], captivate: ["4M"], + chillingwater: ["9M"], chipaway: ["7E", "6E", "5E"], confide: ["7M", "6M"], counter: ["3T"], - crabhammer: ["8L44", "7L43", "6L38", "5L38", "4L38", "3L34"], - crunch: ["8M", "8L40", "7L39", "6L39", "5L47", "4L47", "3L43"], + crabhammer: ["9L44", "8L44", "7L43", "6L38", "5L38", "4L38", "3L34"], + crunch: ["9M", "9L40", "8M", "8L40", "7L39", "6L39", "5L47", "4L47", "3L43"], cut: ["6M", "5M", "4M", "3M"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["8E", "7E", "6E", "5E", "3T"], - doublehit: ["8L20", "7L20", "6L20"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "3T"], + doublehit: ["9L20", "8L20", "7L20", "6L20"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dragondance: ["8M", "7E", "6E", "5E", "4E"], - endeavor: ["8L48", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M", "7M", "6M", "5M", "4M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "4E"], + endeavor: ["9M", "9L48", "8L48", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - guillotine: ["8L52", "7L48", "6L48", "5L53", "4L53", "3L44"], + guillotine: ["9L52", "8L52", "7L48", "6L48", "5L53", "4L53", "3L44"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - harden: ["8L1", "7L5", "6L5", "5L7", "5D", "4L7", "3L7"], + harden: ["9L1", "8L1", "7L5", "6L5", "5L7", "5D", "4L7", "3L7"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydropump: ["8M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "7T", "6T", "5T", "4T"], - knockoff: ["8L16", "7T", "7L23", "7E", "6T", "6L23", "6E", "5T", "5L26", "5E", "4T", "4L26", "4E", "3L25"], - leer: ["8L4", "7L10", "6L10", "5L13", "4L13", "3L13"], - metalclaw: ["8E", "7E", "6E", "5E", "5D", "4E"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L16", "8L16", "7T", "7L23", "7E", "6T", "6L23", "6E", "5T", "5L26", "5E", "4T", "4L26", "4E", "3L25"], + leer: ["9L4", "8L4", "7L10", "6L10", "5L13", "4L13", "3L13"], + liquidation: ["9M"], + metalclaw: ["9M", "9E", "8E", "7E", "6E", "5E", "5D", "4E"], mimic: ["3T"], - muddywater: ["8M"], - mudshot: ["8M"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "8M"], mudslap: ["4T", "3T"], mudsport: ["7E", "6E", "5E", "4E", "3E"], naturalgift: ["4M"], - nightslash: ["8L28", "7L26", "6L26", "5L35", "4L35"], + nightslash: ["9L28", "8L28", "7L26", "6L26", "5L35", "4L35"], payback: ["8M", "7M", "6M", "5M", "4M"], - protect: ["8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - razorshell: ["8M", "8L32", "7L31", "6L31"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "9L24", "8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorshell: ["9L32", "8M", "8L32", "7L31", "6L31"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - slash: ["8E"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + slash: ["9E", "8E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], spite: ["7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - switcheroo: ["8E", "7E", "6E"], - swordsdance: ["8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L44", "4M", "4L44", "3T", "3L37"], - taunt: ["8M", "8L8", "7M", "7L34", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], + switcheroo: ["9E", "8E", "7E", "6E"], + swordsdance: ["9M", "9L36", "8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L44", "4M", "4L44", "3T", "3L37"], + takedown: ["9M"], + taunt: ["9M", "9L8", "8M", "8L8", "7M", "7L34", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], + terablast: ["9M"], + thief: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], trumpcard: ["7E", "6E", "5E"], visegrip: ["7L7", "6L7", "5L10", "4L10", "3L10"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1"], - waterpulse: ["7T", "6T", "4M", "3M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], watersport: ["3S0"], - whirlpool: ["8M", "4M"], - xscissor: ["8M", "7M", "6M", "5M", "4M"], + whirlpool: ["9M", "8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], }, eventData: [ - {generation: 3, level: 5, shiny: 1, moves: ["bubble", "watersport"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "watersport"], pokeball: "pokeball", emeraldEventEgg: true}, ], }, crawdaunt: { @@ -40466,91 +42326,98 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["7M", "6M", "5M", "4M", "3M"], ancientpower: ["4T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - avalanche: ["8M", "4M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bubble: ["7L1", "6L1", "5L1", "4L1", "3L1"], - bubblebeam: ["8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], + bubblebeam: ["9L12", "8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], captivate: ["4M"], - closecombat: ["8M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], confide: ["7M", "6M"], counter: ["3T"], - crabhammer: ["8L52", "7L48", "6L44", "5L44", "4L44", "3L38", "3S0", "3S1"], - crunch: ["8M", "8L46", "7L43", "6L43", "5L57", "4L57", "3L51"], + crabhammer: ["9L52", "8L52", "7L48", "6L44", "5L44", "4L44", "3L38", "3S0", "3S1"], + crunch: ["9M", "9L46", "8M", "8L46", "7L43", "6L43", "5L57", "4L57", "3L51"], cut: ["6M", "5M", "4M", "3M"], - darkpulse: ["8M", "7M", "6M", "5T", "4M"], - dig: ["8M", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], - doublehit: ["8L20", "7L20", "6L20"], + doubleedge: ["9M", "3T"], + doublehit: ["9L20", "8L20", "7L20", "6L20"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dragondance: ["8M"], - endeavor: ["8L58", "7T", "6T", "5T", "4T"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - falseswipe: ["8M", "7M", "6M", "5M", "4M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + dragondance: ["9M", "8M"], + endeavor: ["9M", "9L58", "8L58", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - guillotine: ["8L64", "7L54", "6L1", "5L65", "4L65", "3L52", "3S0"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + guillotine: ["9L64", "8L64", "7L54", "6L1", "5L65", "4L65", "3L52", "3S0"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + harden: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hardpress: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hydropump: ["8M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "7T", "6T", "5T", "4T"], - knockoff: ["8L16", "7T", "7L23", "6T", "6L23", "5T", "5L26", "4T", "4L26", "3L25", "3S1"], - lashout: ["8T"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - liquidation: ["8M", "7T"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L16", "8L16", "7T", "7L23", "6T", "6L23", "5T", "5L26", "4T", "4L26", "3L25", "3S1"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["9M", "8M", "7T"], + metalclaw: ["9M"], mimic: ["3T"], - muddywater: ["8M"], - mudshot: ["8M"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "8M"], mudslap: ["4T", "3T"], - nastyplot: ["8M"], + nastyplot: ["9M", "8M"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - nightslash: ["8L28", "7L26", "6L26", "5L39", "4L39"], + nightslash: ["9L28", "8L28", "7L26", "6L26", "5L39", "4L39"], payback: ["8M", "7M", "6M", "5M", "4M"], - protect: ["8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - razorshell: ["8M", "8L34", "7L32", "6L32"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "9L24", "8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorshell: ["9L34", "8M", "8L34", "7L32", "6L32"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], revenge: ["8M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], - sludgewave: ["8M", "7M", "6M", "5M"], - snarl: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superpower: ["8M", "7T", "6T", "5T", "4T"], - surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L0", "7L1", "6L30", "5L30", "4T", "4L30", "3T"], - swordsdance: ["8M", "8L40", "7M", "7L40", "6M", "6L40", "5M", "5L52", "4M", "4L52", "3T", "3L43", "3S0", "3S1"], - taunt: ["8M", "8L1", "7M", "7L36", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L33", "3S0", "3S1"], + swift: ["9M", "9L0", "8M", "8L0", "7L1", "6L30", "5L30", "4T", "4L30", "3T"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "7L40", "6M", "6L40", "5M", "5L52", "4M", "4L52", "3T", "3L43", "3S0", "3S1"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L36", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L33", "3S0", "3S1"], + terablast: ["9M"], + thief: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], visegrip: ["7L1", "6L1", "5L1", "4L1", "3L1"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["8M", "4M"], - xscissor: ["8M", "7M", "6M", "5M", "4M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["9M", "8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], }, eventData: [ {generation: 3, level: 100, moves: ["taunt", "crabhammer", "swordsdance", "guillotine"], pokeball: "pokeball"}, @@ -40563,37 +42430,37 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { baltoy: { learnset: { allyswitch: ["8M", "7T", "5M"], - ancientpower: ["8L18", "7L19", "6L19", "5L26", "4T", "4L25", "3L25"], + ancientpower: ["8L18", "7L19", "6L19", "5L21", "4T", "4L25", "3L25"], bulldoze: ["8M", "7M", "6M", "5M"], calmmind: ["8M", "7M", "6M", "5M", "4M"], chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confusion: ["8L6", "7L1", "6L1", "5L1", "4L1", "3L1"], - cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L37", "4L45", "3L37"], + cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L31", "4L45", "3L37"], dazzlinggleam: ["8M", "7M", "6M"], dig: ["8M", "6M", "5M", "4M", "3M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], drillrun: ["8M", "7T", "6T", "5T"], - earthpower: ["8M", "8L30", "7T", "7L37", "6T", "6L37", "5T", "5L51", "4T", "4L53"], + earthpower: ["8M", "8L30", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L53"], earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], eerieimpulse: ["8M"], endure: ["8M", "4M", "3T"], expandingforce: ["8T"], - explosion: ["8L42", "7M", "7L46", "6M", "6L46", "5M", "5L60", "4M", "4L71", "3T", "3L45"], - extrasensory: ["8L27", "7L31", "6L28", "5L43"], + explosion: ["8L42", "7M", "7L46", "6M", "6L46", "5M", "5L49", "4M", "4L71", "3T", "3L45"], + extrasensory: ["8L27", "7L31", "6L28", "5L28"], facade: ["8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], grassknot: ["8M", "7M", "6M", "5M", "4M"], gravity: ["7T", "6T", "5T", "5D", "4T"], - guardsplit: ["8L36", "7L34", "6L34", "5L48"], + guardsplit: ["8L36", "7L34", "6L34", "5L34"], guardswap: ["8M"], gyroball: ["8M", "7M", "6M", "5M", "4M"], - harden: ["8L1", "7L1", "6L1", "5L4", "4L3", "3L3"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L3", "3L3"], headbutt: ["4T"], - healblock: ["7L10", "6L10", "5L54", "4L61"], + healblock: ["7L10", "6L10", "5L45", "4L61"], hex: ["8M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -40601,19 +42468,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], - mudslap: ["8L1", "7L7", "6L7", "5L11", "4T", "4L7", "3T", "3L7", "3S0"], + mudslap: ["8L1", "7L7", "6L7", "5L7", "4T", "4L7", "3T", "3L7", "3S0"], naturalgift: ["4M"], - powersplit: ["8L36", "7L34", "6L34", "5L48"], + powersplit: ["8L36", "7L34", "6L34", "5L34"], powerswap: ["8M"], - powertrick: ["8L12", "7L25", "6L17", "5L31", "4L31"], + powertrick: ["8L12", "7L25", "6L17", "5L17", "4L31"], protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psybeam: ["8L15", "7L16", "6L13", "5L15", "4L11", "3L11", "3S0"], + psybeam: ["8L15", "7L16", "6L13", "5L13", "4L11", "3L11", "3S0"], psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], psychicterrain: ["8M"], psychup: ["7M", "6M", "5M", "4M", "3T"], psyshock: ["8M", "7M", "6M", "5M"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rapidspin: ["8L3", "7L4", "6L4", "5L7", "5D", "4L5", "3L5"], + rapidspin: ["8L3", "7L4", "6L4", "5L4", "5D", "4L5", "3L5"], recycle: ["7T", "6T", "5T", "4M"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], refresh: ["3S0"], @@ -40621,7 +42488,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "6M", "5M", "4M", "3M"], rockpolish: ["7M", "6M", "5M", "4M"], rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], - rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L18", "4M", "4L15", "3M", "3L15", "3S0"], + rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L10", "4M", "4L15", "3M", "3L15", "3S0"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M"], sandstorm: ["8M", "8L39", "7M", "7L40", "6M", "6L40", "5M", "5L34", "4M", "4L37", "3M", "3L31"], @@ -40654,27 +42521,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { claydol: { learnset: { allyswitch: ["8M", "7T", "5M"], - ancientpower: ["8L18", "7L19", "6L19", "5L26", "4T", "4L25", "3L25"], + ancientpower: ["8L18", "7L19", "6L19", "5L21", "4T", "4L25", "3L25"], bodypress: ["8M"], bulldoze: ["8M", "7M", "6M", "5M"], calmmind: ["8M", "7M", "6M", "5M", "4M"], chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confusion: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L47", "4L51", "3L42"], + cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L31", "4L51", "3L42"], dazzlinggleam: ["8M", "7M", "6M"], dig: ["8M", "6M", "5M", "4M", "3M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], drillrun: ["8M", "7T", "6T", "5T"], - earthpower: ["8M", "8L30", "7T", "7L40", "6T", "6L40", "5T", "5L59", "4T", "4L62"], + earthpower: ["8M", "8L30", "7T", "7L40", "6T", "6L40", "5T", "5L40", "4T", "4L62"], earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], eerieimpulse: ["8M"], endure: ["8M", "4M", "3T"], expandingforce: ["8T"], - explosion: ["8L48", "7M", "7L58", "6M", "6L58", "5M", "5L72", "4M", "4L86", "3T", "3L55"], - extrasensory: ["8L27", "7L31", "6L28", "5L39"], + explosion: ["8L48", "7M", "7L58", "6M", "6L58", "5M", "5L61", "4M", "4L86", "3T", "3L55"], + extrasensory: ["8L27", "7L31", "6L28", "5L28"], facade: ["8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], @@ -40682,12 +42549,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["8M", "7M", "6M", "5M", "4M"], grassknot: ["8M", "7M", "6M", "5M", "4M"], gravity: ["7T", "6T", "5T", "4T"], - guardsplit: ["8L38", "7L34", "6L34", "5L54"], + guardsplit: ["8L38", "7L34", "6L34", "5L34"], guardswap: ["8M"], gyroball: ["8M", "7M", "6M", "5M", "4M"], harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], headbutt: ["4T"], - healblock: ["7L10", "6L10", "5L64", "4L73"], + healblock: ["7L10", "6L10", "5L54", "4L73"], hex: ["8M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hyperbeam: ["8M", "8L0", "7M", "7L1", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L36"], @@ -40697,14 +42564,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], - mudslap: ["8L1", "7L7", "6L7", "5L11", "4T", "4L7", "3T", "3L7"], + mudslap: ["8L1", "7L7", "6L7", "5L7", "4T", "4L7", "3T", "3L7"], nastyplot: ["8M"], naturalgift: ["4M"], - powersplit: ["8L38", "7L34", "6L34", "5L54"], + powersplit: ["8L38", "7L34", "6L34", "5L34"], powerswap: ["8M"], - powertrick: ["8L12", "7L25", "6L17", "5L31", "4L31"], + powertrick: ["8L12", "7L25", "6L17", "5L17", "4L31"], protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psybeam: ["8L15", "7L16", "6L13", "5L15", "4L11", "3L11"], + psybeam: ["8L15", "7L16", "6L13", "5L13", "4L11", "3L11"], psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], psychicterrain: ["8M"], psychup: ["7M", "6M", "5M", "4M", "3T"], @@ -40718,7 +42585,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockpolish: ["7M", "6M", "5M", "4M"], rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L18", "4M", "4L15", "3M", "3L15"], + rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L10", "4M", "4L15", "3M", "3L15"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M"], sandstorm: ["8M", "8L43", "7M", "7L46", "6M", "6L46", "5M", "5L34", "4M", "4L40", "3M", "3L31"], @@ -41068,56 +42935,58 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { feebas: { learnset: { attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brine: ["8M", "7E", "6E", "5E"], captivate: ["7E", "6E", "5E", "5D", "4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confuseray: ["8E", "7E", "6E", "5E", "4E", "3E"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dragonbreath: ["8E", "7E", "6E", "5E", "4E", "3E"], - dragonpulse: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flail: ["8L25", "7L30", "6L30", "5L30", "4L30", "3L30"], + dragonbreath: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L25", "8L25", "7L30", "6L30", "5L30", "4L30", "3L30"], frustration: ["7M", "6M", "5M", "4M", "3M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - haze: ["8E", "7E", "6E", "5E", "4E"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hypnosis: ["8E", "7E", "6E", "5E", "4E", "3E"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + hypnosis: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - lightscreen: ["8M", "7M", "6M", "5M", "4E", "3E"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], mimic: ["3T"], - mirrorcoat: ["8E", "7E", "6E", "5E", "5D", "4E", "4S0", "3E"], - mist: ["8E", "7E", "6E", "5E", "4E"], - muddywater: ["8M"], - mudshot: ["8M"], + mirrorcoat: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "4S0", "3E"], + mist: ["9E", "8E", "7E", "6E", "5E", "4E"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "8M"], mudsport: ["7E", "6E", "5E", "4E", "3E"], naturalgift: ["4M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - splash: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "4S0", "3L1"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + splash: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "4S0", "3L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - tackle: ["8L15", "7L15", "6L15", "5L15", "4L15", "3L15"], - tickle: ["8E", "7E", "6E", "5E", "4E"], + swift: ["9M", "8M", "4T", "3T"], + tackle: ["9L15", "8L15", "7L15", "6L15", "5L15", "4L15", "3L15"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E"], toxic: ["7M", "6M", "5M", "4M", "3M"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["8M", "4M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["9M", "8M", "4M"], }, eventData: [ {generation: 4, level: 5, gender: "F", nature: "Calm", moves: ["splash", "mirrorcoat"], pokeball: "cherishball"}, @@ -41125,84 +42994,92 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, milotic: { learnset: { - aquaring: ["8L12", "7L17", "6L21", "5L49", "4L49"], - aquatail: ["8L32", "7T", "7L31", "6T", "6L29", "5T", "5L29", "4T", "4L29"], - attract: ["8M", "8L16", "7M", "7L34", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L45"], - avalanche: ["8M", "4M"], + alluringvoice: ["9M"], + aquaring: ["9L12", "8L12", "7L17", "6L21", "5L49", "4L49"], + aquatail: ["9L32", "8L32", "7T", "7L31", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + attract: ["9L16", "8M", "8L16", "7M", "7L34", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L45"], + avalanche: ["9M", "8M", "4M"], bind: ["7T", "6T", "5T"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - breakingswipe: ["8M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["9M", "8M"], brine: ["8M"], brutalswing: ["8M", "7M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], captivate: ["7L21", "6L24", "5L25", "4M", "4L25"], - coil: ["8L48", "7L41", "6L44"], + chillingwater: ["9M"], + coil: ["9L48", "8L48", "7L41", "6L44"], confide: ["7M", "6M"], - disarmingvoice: ["8L4", "7L11", "6L11"], + confuseray: ["9M"], + disarmingvoice: ["9M", "9L4", "8L4", "7L11", "6L11"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dragondance: ["8M"], - dragonpulse: ["8M", "7T", "6T", "5T", "4M"], - dragontail: ["8L24", "7M", "7L24", "6M", "6L27", "5M"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flail: ["8L1"], - flipturn: ["8T"], + dragoncheer: ["9M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "9L24", "8L24", "7M", "7L24", "6M", "6L27", "5M"], + drainingkiss: ["9M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1"], + flipturn: ["9M", "8T"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], - helpinghand: ["8M"], + haze: ["9M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hydropump: ["8M", "8L52", "7L44", "6L37", "5L37", "5S3", "4L37", "4S1", "4S2", "3L40"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "5S3", "5S4", "4M", "4S1", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "4S2", "3T"], - imprison: ["8M"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L52", "8M", "8L52", "7L44", "6L37", "5L37", "5S3", "4L37", "4S1", "4S2", "3L40"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S3", "5S4", "4M", "4S1", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "4S2", "3T"], + imprison: ["9M", "8M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], laserfocus: ["7T"], - lifedew: ["8L20"], - lightscreen: ["8M", "7M", "6M", "5M"], + lifedew: ["9L20", "8L20"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], mirrorcoat: ["5S3"], - muddywater: ["8M"], - mudshot: ["8M"], + muddywater: ["9M", "8M"], + mudshot: ["9M", "8M"], mudslap: ["4T", "3T"], naturalgift: ["4M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - raindance: ["8M", "8L44", "7M", "7L47", "6M", "6L33", "5M", "5L33", "4M", "4L33", "4S1", "4S2", "3M", "3L35", "3S0"], - recover: ["8L28", "7L27", "6L21", "5L21", "5S3", "5S4", "4L21", "4S1", "4S2", "3L30", "3S0"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "9L44", "8M", "8L44", "7M", "7L47", "6M", "6L33", "5M", "5L33", "4M", "4L33", "4S1", "4S2", "3M", "3L35", "3S0"], + recover: ["9L28", "8L28", "7L27", "6L21", "5L21", "5S3", "5S4", "4L21", "4S1", "4S2", "3L30", "3S0"], refresh: ["7L1", "6L7", "5L9", "4L9", "3L15"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "8L36", "7M", "7L37", "6M", "6L41", "5M", "5L45", "4M", "4L45", "3M", "3L50"], - scald: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + safeguard: ["9L36", "8M", "8L36", "7M", "7L37", "6M", "6L41", "5M", "5L45", "4M", "4L45", "3M", "3L50"], + scald: ["9M", "8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - splash: ["8L1"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - surf: ["8M", "8L40", "7M", "6M", "5M", "5S4", "4M", "3M"], + splash: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "9L40", "8M", "8L40", "7M", "6M", "5M", "5S4", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - tackle: ["8L1"], + swift: ["9M", "8M", "4T", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "5S4", "4M", "3M"], - tripleaxel: ["8T"], - twister: ["8L8", "7L14", "6L14", "5L17", "4T", "4L17", "3L25", "3S0"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - waterpulse: ["8L0", "7T", "7L1", "6T", "6L13", "5L13", "4M", "4L13", "3M", "3L20", "3S0"], + tripleaxel: ["9M", "8T"], + twister: ["9L8", "8L8", "7L14", "6L14", "5L17", "4T", "4L17", "3L25", "3S0"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "9L0", "8L0", "7T", "7L1", "6T", "6L13", "5L13", "4M", "4L13", "3M", "3L20", "3S0"], watersport: ["7L1", "6L4", "5L5", "4L5", "3L10"], - weatherball: ["8M"], - whirlpool: ["8M", "4M"], - wrap: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L5"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "4M"], + wrap: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L5"], }, eventData: [ {generation: 3, level: 35, moves: ["waterpulse", "twister", "recover", "raindance"], pokeball: "pokeball"}, @@ -41217,7 +43094,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { amnesia: ["7E", "6E", "5E", "4E"], attract: ["7M", "6M", "5M", "4M", "3M"], avalanche: ["4M"], - blizzard: ["7M", "7L35", "6M", "6L35", "5M", "5L50", "4M", "3M"], + blizzard: ["7M", "7L35", "6M", "6L35", "5M", "5L40", "4M", "3M"], bodyslam: ["3T"], captivate: ["4M"], clearsmog: ["7E", "6E", "5E"], @@ -41232,18 +43109,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["4M", "3T"], energyball: ["7M", "6M", "5M", "4M"], facade: ["7M", "6M", "5M", "4M", "3M"], - fireblast: ["7M", "7L35", "6M", "6L35", "5M", "5L50", "4M", "3M"], + fireblast: ["7M", "7L35", "6M", "6L35", "5M", "5L40", "4M", "3M"], flamethrower: ["7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], futuresight: ["7E", "6E", "5E", "4E", "3E"], guardswap: ["7E", "6E"], - hail: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], - headbutt: ["7L15", "6L15", "5L20"], + hail: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20", "3M", "3L20"], + headbutt: ["7L15", "6L15", "5L15"], hex: ["7E", "6E", "5E"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hurricane: ["7L45", "6L45"], - hydropump: ["7L35", "6L35", "5L50"], + hydropump: ["7L35", "6L35", "5L40"], icebeam: ["7M", "6M", "5M", "4M", "3M"], icywind: ["7T", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], @@ -41255,7 +43132,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powdersnow: ["7L10", "6L10", "5L10", "4L10", "3L10"], protect: ["7M", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], - raindance: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + raindance: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20", "3M", "3L20"], reflecttype: ["7E", "6E"], rest: ["7M", "6M", "5M", "4M", "3M"], retaliate: ["6M", "5M"], @@ -41270,7 +43147,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["7M", "6M", "5M", "4M", "3M"], substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + sunnyday: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20", "3M", "3L20"], swagger: ["7M", "6M", "5M", "4M", "3T"], swift: ["4T", "3T"], tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], @@ -41282,7 +43159,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M", "3M"], watergun: ["7L10", "6L10", "5L10", "4L10", "3L10"], waterpulse: ["7T", "6T", "5D", "4M", "3M"], - weatherball: ["7L25", "6L25", "5L40", "4L30", "3L30"], + weatherball: ["7L25", "6L25", "5L30", "4L30", "3L30"], workup: ["7M", "5M"], }, }, @@ -41412,7 +43289,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M", "9E", "7E", "6E", "5E", "4E"], - curse: ["9L26", "7L26", "6L19", "5L13", "4L13", "3L20"], + curse: ["9M", "9L26", "7L26", "6L19", "5L13", "4L13", "3L20"], darkpulse: ["9M", "7M", "6M", "5T", "4M"], dazzlinggleam: ["9M", "7M", "6M"], destinybond: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], @@ -41420,24 +43297,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], - embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L43", "4M", "4L38"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L38", "4M", "4L38"], encore: ["9M"], endure: ["9M", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], - feintattack: ["7L19", "6L19", "5L28", "4L28", "3L37", "3S0"], + feintattack: ["7L19", "6L19", "5L22", "4L28", "3L37", "3S0"], flash: ["6M", "5M", "4M", "3M"], foresight: ["7E", "6E", "5E", "4E", "3E"], foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], - grudge: ["7L46", "6L46", "5L50", "4L46", "3L56"], + grudge: ["7L46", "6L46", "5L46", "4L46", "3L56"], gunkshot: ["9M", "9E", "7T", "7E", "6E", "5E"], headbutt: ["4T"], helpinghand: ["9M"], - hex: ["9M", "9L22", "7L22", "6L22", "5L31"], + hex: ["9M", "9L22", "7L22", "6L22", "5L26"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], imprison: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], knockoff: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lashout: ["9M"], magiccoat: ["7T", "6T", "5T", "4T"], magicroom: ["7T", "6T", "5T"], metronome: ["9M"], @@ -41445,16 +43323,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nastyplot: ["9M"], naturalgift: ["4M"], nightmare: ["3T"], - nightshade: ["9M", "9L7", "7L7", "6L7", "5L8", "5D", "4L8", "3L13"], + nightshade: ["9M", "9L7", "7L7", "6L7", "5L7", "5D", "4L8", "3L13"], ominouswind: ["7E", "6E", "5E", "4T"], - painsplit: ["7T", "6T", "5T", "5D", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "5D", "4T"], payback: ["7M", "6M", "5M", "4M", "4E"], phantomforce: ["9M", "9L48", "7L54", "7E", "6L54", "6E"], + poltergeist: ["9M"], pounce: ["9M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M"], psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], pursuit: ["7E", "6E", "5E", "4E"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -41462,18 +43341,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { roleplay: ["9L34", "7T", "6T", "5T", "4T"], round: ["7M", "6M", "5M"], scaryface: ["9M"], - screech: ["9L4", "7L4", "6L4", "5L5", "4L5", "3L8"], + screech: ["9L4", "7L4", "6L4", "5L4", "4L5", "3L8"], secretpower: ["6M", "4M", "3M"], - shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L35", "4M", "4L31", "3M", "3L44", "3S0"], - shadowsneak: ["9L19", "7L13", "7E", "6L13", "6E", "5L20", "5E", "4L20", "4E"], + shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L30", "4M", "4L31", "3M", "3L44", "3S0"], + shadowsneak: ["9L19", "7L13", "7E", "6L13", "6E", "5L16", "5E", "4L20", "4E"], shockwave: ["7T", "6T", "4M", "3M"], skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], - snatch: ["7T", "7L42", "6T", "6L42", "5T", "5L46", "4M", "4L43", "3M", "3L49"], + snatch: ["7T", "7L42", "6T", "6L42", "5T", "5L42", "4M", "4L43", "3M", "3L49"], snore: ["7T", "6T", "3T"], - spite: ["9L10", "7T", "7L10", "6T", "6L10", "5T", "5L16", "4T", "4L16", "3L25", "3S0"], + spite: ["9M", "9L10", "7T", "7L10", "6T", "6L10", "5T", "5L10", "4T", "4L16", "3L25", "3S0"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["9L38", "7L38", "6L34", "5L38", "4T", "4L35"], + suckerpunch: ["9L38", "7L38", "6L34", "5L34", "4T", "4L35"], sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], @@ -41485,9 +43365,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["9M", "9L42", "7T", "7L50", "6T", "6L50", "5T", "5L55", "4T", "4L50"], + trick: ["9M", "9L42", "7T", "7L50", "6T", "6L50", "5T", "5L50", "4T", "4L50"], trickroom: ["9M", "7M", "6M", "5M", "4M"], - willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L23", "4M", "4L23", "3L32", "3S0"], + willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L13", "4M", "4L23", "3L32", "3S0"], }, eventData: [ {generation: 3, level: 45, abilities: ["insomnia"], moves: ["spite", "willowisp", "feintattack", "shadowball"], pokeball: "pokeball"}, @@ -41498,39 +43378,41 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["7T"], attract: ["7M", "6M", "5M", "4M", "3M"], bodyslam: ["3T"], + burningjealousy: ["9M"], calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], cottonguard: ["5S1"], - curse: ["9L26", "7L26", "6L1", "5L1", "4L1", "3L1", "3S0"], + curse: ["9M", "9L26", "7L26", "6L1", "5L1", "4L1", "3L1", "3S0"], darkpulse: ["9M", "7M", "6M", "5T", "4M"], dazzlinggleam: ["9M", "7M", "6M"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], - embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L51", "4M", "4L42"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L40", "4M", "4L42"], encore: ["9M"], endure: ["9M", "4M", "3T"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], - feintattack: ["7L19", "6L19", "5L28", "5S1", "4L28", "3L39", "3S0"], + feintattack: ["7L19", "6L19", "5L22", "5S1", "4L28", "3L39", "3S0"], flash: ["6M", "5M", "4M", "3M"], fling: ["9M", "7M", "6M", "5M", "4M"], foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], - grudge: ["7L52", "6L52", "5L66", "4L58", "3L64"], + grudge: ["7L52", "6L52", "5L52", "4L58", "3L64"], gunkshot: ["9M", "7T"], headbutt: ["4T"], helpinghand: ["9M", "3S0"], - hex: ["9M", "9L22", "7L22", "6L22", "5L31", "5S1"], + hex: ["9M", "9L22", "7L22", "6L22", "5L26", "5S1"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], imprison: ["9M"], infestation: ["7M", "6M"], - knockoff: ["9L0", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + knockoff: ["9M", "9L0", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lashout: ["9M"], magiccoat: ["7T", "6T", "5T", "4T"], magicroom: ["7T", "6T", "5T"], metronome: ["9M", "3T"], @@ -41541,14 +43423,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightmare: ["3T"], nightshade: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["7M", "6M", "5M", "4M"], phantomforce: ["9M", "9L53", "7L1", "6L1"], + poltergeist: ["9M"], pounce: ["9M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], psybeam: ["9M"], psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], @@ -41557,17 +43440,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], screech: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], secretpower: ["6M", "4M", "3M"], - shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L35", "5S1", "4M", "4L31", "3M", "3L48", "3S0"], + shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L30", "5S1", "4M", "4L31", "3M", "3L48", "3S0"], shadowclaw: ["9M", "7M", "6M", "5M", "4M"], - shadowsneak: ["9L19", "7L13", "6L13", "5L20", "4L20"], + shadowsneak: ["9L19", "7L13", "6L13", "5L16", "4L20"], shockwave: ["7T", "6T", "4M", "3M"], skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], - snatch: ["7T", "7L46", "6T", "6L46", "5T", "5L58", "4M", "4L51", "3M", "3L55"], + snatch: ["7T", "7L46", "6T", "6L46", "5T", "5L46", "4M", "4L51", "3M", "3L55"], snore: ["7T", "6T", "3T"], - spite: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L16", "4T", "4L16", "3L25"], + spite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L16", "3L25"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], - suckerpunch: ["9L40", "7L40", "6L34", "5L42", "4T", "4L35"], + suckerpunch: ["9L40", "7L40", "6L34", "5L34", "4T", "4L35"], sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], swordsdance: ["9M"], @@ -41575,16 +43459,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { telekinesis: ["7T", "5M"], terablast: ["9M"], thief: ["9M", "7M", "6M", "5M", "4M", "3M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], - trick: ["9M", "9L46", "7T", "7L58", "6T", "6L58", "5T", "5L75", "4T", "4L66"], + trick: ["9M", "9L46", "7T", "7L58", "6T", "6L58", "5T", "5L58", "4T", "4L66"], trickroom: ["9M", "7M", "6M", "5M", "4M"], - willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L23", "4M", "4L23", "3L32"], + willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L13", "4M", "4L23", "3L32"], }, eventData: [ {generation: 3, level: 37, abilities: ["insomnia"], moves: ["helpinghand", "feintattack", "shadowball", "curse"]}, @@ -41597,83 +43481,86 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { duskull: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L9", "6L9", "5L14", "4L14", "3L16", "3S1"], + astonish: ["9L1", "8L1", "7L9", "6L9", "5L14", "4L14", "3L16", "3S1"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["8M", "3T"], - calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - confuseray: ["8L12", "7L30", "6L17", "5L17", "4L17", "3L23", "3S1"], - curse: ["8L36", "7L33", "6L30", "5L30", "4L30", "3L34", "3S0"], - darkpulse: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + confuseray: ["9M", "9L12", "8L12", "7L30", "6L17", "5L17", "4L17", "3L23", "3S1"], + curse: ["9M", "9L36", "8L36", "7L33", "6L30", "5L30", "4L30", "3L34", "3S0"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], destinybond: ["7E", "6E", "5E", "4E", "3E"], - disable: ["8L4", "7L6", "6L6", "5L6", "5D", "4L6", "3L5"], + disable: ["9L4", "8L4", "7L6", "6L6", "5L6", "5D", "4L6", "3L5"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], embargo: ["7M", "6M", "5M", "4M"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], feintattack: ["7E", "6E", "5E", "4E", "3E"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], foresight: ["7L14", "6L9", "5L9", "4L9", "3L12"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["8M", "8L44", "7L54", "6L49", "5L49", "4L46", "3L49"], - gravity: ["7T", "6T", "5T", "4T"], + futuresight: ["9M", "9L44", "8M", "8L44", "7L54", "6L49", "5L49", "4L46", "3L49"], + gravity: ["9M", "7T", "6T", "5T", "4T"], grudge: ["8E", "7E", "6E", "5E", "4E", "3E"], - haze: ["8E", "7E", "6E"], + haze: ["9M", "9E", "8E", "7E", "6E"], headbutt: ["4T"], - helpinghand: ["8M", "3S1"], - hex: ["8M", "8L32", "7L38", "6L38", "5L38"], + helpinghand: ["9M", "8M", "3S1"], + hex: ["9M", "9L32", "8M", "8L32", "7L38", "6L38", "5L38"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - imprison: ["8M", "7E", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], infestation: ["7M", "6M"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - meanlook: ["8L28", "7L46", "6L41", "5L41", "4L38", "3L45", "3S0"], - memento: ["8E", "7E", "6E", "5E", "4E", "3E"], + leechlife: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L28", "8L28", "7L46", "6L41", "5L41", "4L38", "3L45", "3S0"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], mimic: ["3T"], naturalgift: ["4M"], nightmare: ["3T"], - nightshade: ["8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + nightshade: ["9M", "9L16", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], ominouswind: ["7E", "6E", "5E", "4T", "4E"], - painsplit: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], - payback: ["8M", "8L20", "7M", "7L49", "6M", "6L46", "5M", "5L46", "4M", "4L41"], - poltergeist: ["8T"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + painsplit: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + payback: ["9L20", "8M", "8L20", "7M", "7L49", "6M", "6L46", "5M", "5L46", "4M", "4L41"], + phantomforce: ["9M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], pursuit: ["7L22", "6L22", "5L25", "4L25", "3L27", "3S0"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], revenge: ["8M"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "4M", "3M", "3S1"], - shadowsneak: ["8L8", "7L17", "6L17", "5L22", "4L22"], - skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + shadowball: ["9M", "9L40", "8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "4M", "3M", "3S1"], + shadowsneak: ["9L8", "8L8", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["8M", "7T", "6T", "5T", "5D", "4T"], - trickroom: ["8M", "7M", "6M", "5M", "4M"], - willowisp: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L38", "3S0"], + trick: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L38", "3S0"], wonderroom: ["8M", "7T", "6T", "5T"], }, eventData: [ @@ -41684,70 +43571,73 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dusclops: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L1", "5L14", "4L14", "3L16"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L14", "4L14", "3L16"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - bind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "3L1"], - blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bind: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "3L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - confuseray: ["8L12", "7L30", "6L17", "5L17", "4L17", "3L23"], + confuseray: ["9M", "9L12", "8L12", "7L30", "6L17", "5L17", "4L17", "3L23"], counter: ["3T"], - curse: ["8L36", "7L33", "6L30", "5L30", "4L30", "3L34"], - darkpulse: ["8M", "7M", "6M", "5T", "4M"], - disable: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + curse: ["9M", "9L36", "8L36", "7L33", "6L30", "5L30", "4L30", "3L34"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + disable: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], dynamicpunch: ["3T"], earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], embargo: ["7M", "6M", "5M", "4M"], - endure: ["8M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], flash: ["6M", "5M", "4M", "3M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], foresight: ["7L14", "6L9", "5L9", "4L9", "3L12"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["8M", "8L48", "7L1", "6L1", "5L61", "4L61", "3L58"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + futuresight: ["9M", "9L48", "8M", "8L48", "7L1", "6L1", "5L61", "4L61", "3L58"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + haze: ["9M"], headbutt: ["4T"], - helpinghand: ["8M"], - hex: ["8M", "8L32", "7L40", "6L40", "5L42"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L32", "8M", "8L32", "7L40", "6L40", "5L42"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - imprison: ["8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], infestation: ["7M", "6M"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - meanlook: ["8L28", "7L52", "6L49", "5L49", "4L43", "3L51"], + leechlife: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L28", "8L28", "7L52", "6L49", "5L49", "4L43", "3L51"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - metronome: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - nightshade: ["8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + nightshade: ["9M", "9L16", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "5T", "4T"], - payback: ["8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], - poltergeist: ["8T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + payback: ["9L20", "8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], + phantomforce: ["9M"], + poltergeist: ["9M", "8T"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], pursuit: ["7L22", "6L22", "5L25", "4L25", "3L27"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], revenge: ["8M"], rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], @@ -41756,29 +43646,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowball: ["8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M", "3M"], - shadowpunch: ["8L0", "7L1", "6L37", "5L37", "4L37", "3L37"], - shadowsneak: ["8L1", "7L17", "6L17", "5L22", "4L22"], - skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + shadowball: ["9M", "9L42", "8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M", "3M"], + shadowpunch: ["9L0", "8L0", "7L1", "6L37", "5L37", "4L37", "3L37"], + shadowsneak: ["9L1", "8L1", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["8M", "7T", "6T", "5T", "4T"], - trickroom: ["8M", "7M", "6M", "5M", "4M"], - willowisp: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L41"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L41"], wonderroom: ["8M", "7T", "6T", "5T"], }, encounters: [ @@ -41789,99 +43680,105 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dusknoir: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L1", "5L14", "4L14"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L14", "4L14"], attract: ["8M", "7M", "6M", "5M", "4M"], - bind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], - blizzard: ["8M", "7M", "6M", "5M", "4M"], - bodyslam: ["8M"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bind: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M", "4M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - confuseray: ["8L12", "7L30", "6L17", "5L17", "4L17"], - curse: ["8L36", "7L33", "6L30", "5L30", "4L30"], + confuseray: ["9M", "9L12", "8L12", "7L30", "6L17", "5L17", "4L17"], + curse: ["9M", "9L36", "8L36", "7L33", "6L30", "5L30", "4L30"], darkestlariat: ["8M"], - darkpulse: ["8M", "7M", "6M", "5T", "4M"], - destinybond: ["8L54"], - disable: ["8L1", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + destinybond: ["9L54", "8L54"], + disable: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], doubleteam: ["7M", "6M", "5M", "4M"], dreameater: ["7M", "6M", "5M", "4M"], - earthquake: ["8M", "7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], embargo: ["7M", "6M", "5M", "4M"], - endure: ["8M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M"], - firepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], flash: ["6M", "5M", "4M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], foresight: ["7L14", "6L9", "5L9", "4L9"], frustration: ["7M", "6M", "5M", "4M"], - futuresight: ["8M", "8L48", "7L1", "6L1", "5L61", "4L61"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + futuresight: ["9M", "9L48", "8M", "8L48", "7L1", "6L1", "5L61", "4L61"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + hardpress: ["9M"], + haze: ["9M"], headbutt: ["4T"], - helpinghand: ["8M"], - hex: ["8M", "8L32", "7L40", "6L40", "5L42"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L32", "8M", "8L32", "7L40", "6L40", "5L42"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M"], - icebeam: ["8M", "7M", "6M", "5M", "4M"], - icepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - icywind: ["8M", "7T", "6T", "5T", "4T"], - imprison: ["8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], infestation: ["7M", "6M"], laserfocus: ["7T"], - leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], - meanlook: ["8L28", "7L52", "6L49", "5L49", "4L43"], + leechlife: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + meanlook: ["9L28", "8L28", "7L52", "6L49", "5L49", "4L43"], megakick: ["8M"], megapunch: ["8M"], - metronome: ["8M"], + metronome: ["9M", "8M"], mudslap: ["4T"], naturalgift: ["4M"], - nightshade: ["8L16", "7L1", "6L1", "5L1", "4L1"], + nightshade: ["9M", "9L16", "8L16", "7L1", "6L1", "5L1", "4L1"], ominouswind: ["4T"], - painsplit: ["7T", "6T", "5T", "4T"], - payback: ["8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], - poltergeist: ["8T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + payback: ["9L20", "8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], + phantomforce: ["9M"], + poltergeist: ["9M", "8T"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M"], - psychic: ["8M", "7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], pursuit: ["7L22", "6L22", "5L25", "4L25"], - raindance: ["8M", "7M", "6M", "5M", "4M"], - rest: ["8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], revenge: ["8M"], - rockslide: ["8M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M"], - shadowball: ["8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M"], - shadowpunch: ["8L1", "7L1", "6L37", "5L37", "4L37"], - shadowsneak: ["8L1", "7L17", "6L17", "5L22", "4L22"], - skillswap: ["8M", "7T", "6T", "5T", "4M"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + shadowball: ["9M", "9L42", "8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M"], + shadowpunch: ["9L1", "8L1", "7L1", "6L37", "5L37", "4L37"], + shadowsneak: ["9L1", "8L1", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M"], - substitute: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], suckerpunch: ["4T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - taunt: ["8M", "7M", "6M", "5M", "4M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M", "4M"], - thunderpunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - trick: ["8M", "7T", "6T", "5T", "4T"], - trickroom: ["8M", "7M", "6M", "5M", "4M"], - willowisp: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33"], wonderroom: ["8M", "7T", "6T"], }, }, @@ -41897,17 +43794,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brutalswing: ["7M"], bulldoze: ["9M", "7M", "6M", "5M"], bulletseed: ["9M", "7E", "6E", "5E", "4M", "3M"], + calmmind: ["9M"], captivate: ["4M"], confide: ["7M", "6M"], - curse: ["9E", "7E", "6E", "5E", "4E"], + curse: ["9M", "9E", "7E", "6E", "5E", "4E"], cut: ["6M", "5M", "4M", "3M"], defog: ["7T", "4M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragondance: ["9M", "9E", "7E", "6E", "5E", "4E"], dragonhammer: ["7E"], dragonpulse: ["9M", "7T", "6T", "5T"], dragontail: ["9M"], + dualwingbeat: ["9M"], earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], endure: ["9M", "4M", "3T"], energyball: ["9M", "7M", "6M", "5M", "4M"], @@ -41939,13 +43838,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], ominouswind: ["4T"], outrage: ["9M", "9L46", "7T", "6T", "5T", "4T"], + petalblizzard: ["9M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], raindance: ["9M"], razorleaf: ["9L1", "7L1", "6L1", "5L11", "4L11", "3L11"], razorwind: ["7E", "6E", "5E", "4E", "3E"], rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rocksmash: ["6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["7M", "6M", "5M"], @@ -41957,6 +43857,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "9L56", "7M", "7L56", "6M", "6L56", "5M", "5L61", "4M", "4L51", "4S0", "3M", "3L41"], + solarblade: ["9M"], + spite: ["9M"], steelwing: ["7M", "6M", "4M", "3M"], stomp: ["9L10", "7L10", "6L10", "5L17", "4L17", "3L17"], stompingtantrum: ["9M", "7T"], @@ -41985,171 +43887,189 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, chingling: { learnset: { - allyswitch: ["7T"], - astonish: ["7L7", "6L7", "5L9", "4L9"], + allyswitch: ["9E", "7T"], + astonish: ["9L7", "7L7", "6L7", "5L9", "4L9"], attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], bind: ["7T", "6T", "5T"], - calmmind: ["7M", "6M", "5M", "4M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - confusion: ["7L10", "6L10", "5L14", "4L14"], - cosmicpower: ["7E", "6E"], - curse: ["7E", "6E", "5E", "4E"], - dazzlinggleam: ["7M", "6M"], - disable: ["7E", "6E", "5E", "4E"], + confusion: ["9L10", "7L10", "6L10", "5L14", "4L14"], + cosmicpower: ["9E", "7E", "6E"], + curse: ["9M", "9E", "7E", "6E", "5E", "4E"], + dazzlinggleam: ["9M", "7M", "6M"], + disable: ["9E", "7E", "6E", "5E", "4E"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], dreameater: ["7M", "6M", "5M", "4M", "4E"], echoedvoice: ["7M", "6M", "5M"], - endure: ["4M"], - entrainment: ["7L19", "6L19", "5L25"], - facade: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + energyball: ["9M"], + entrainment: ["9L19", "7L19", "6L19", "5L25"], + facade: ["9M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - futuresight: ["7E", "6E", "5E", "4E"], - grassknot: ["7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - growl: ["7L4", "6L4", "5L6", "4L6"], + futuresight: ["9M", "7E", "6E", "5E", "4E"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + growl: ["9L4", "7L4", "6L4", "5L6", "4L6"], healbell: ["7T", "6T", "5T", "4T"], - helpinghand: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - hypervoice: ["7T", "6T", "5T"], - hypnosis: ["7E", "6E", "5E", "4E"], - icywind: ["7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], - lastresort: ["7T", "7L16", "6T", "6L16", "5T", "5L22", "4T", "4L22"], - lightscreen: ["7M", "6M", "5M", "4M"], + hypervoice: ["9M", "7T", "6T", "5T"], + hypnosis: ["9E", "7E", "6E", "5E", "4E"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["9L16", "7T", "7L16", "6T", "6L16", "5T", "5L22", "4T", "4L22"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], magiccoat: ["7T", "6T", "5T", "4T"], naturalgift: ["4M"], - protect: ["7M", "6M", "5M", "4M"], - psychic: ["7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], - psyshock: ["7M", "6M", "5M"], - raindance: ["7M", "6M", "5M", "4M"], - recover: ["7E", "6E", "5E", "4E"], - recycle: ["7T", "6T", "5T", "4M"], - reflect: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + psyshock: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + recover: ["9E", "7E", "6E", "5E", "4E"], + recycle: ["9E", "7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], rollout: ["4T"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M"], secretpower: ["6M", "4M"], - shadowball: ["7M", "6M", "5M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], - skillswap: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - storedpower: ["7E", "6E", "5E"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + storedpower: ["9M", "7E", "6E", "5E"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], swift: ["4T"], - taunt: ["7M", "6M", "5M", "4M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], telekinesis: ["7T", "5M"], - thunderwave: ["7M", "6M", "5M", "4M"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - trick: ["7T", "6T", "5T", "4T"], - trickroom: ["7M", "6M", "5M", "4M"], - uproar: ["7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17"], - wish: ["7E", "6E", "5E", "4E"], - wrap: ["7L1", "6L1", "5L1", "4L1"], - yawn: ["7L13", "6L13"], - zenheadbutt: ["7T", "6T", "5T", "4T"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "9L32", "7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17"], + wish: ["9E", "7E", "6E", "5E", "4E"], + wrap: ["9L1", "7L1", "6L1", "5L1", "4L1"], + yawn: ["9L13", "7L13", "6L13"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], }, }, chimecho: { learnset: { allyswitch: ["7T"], - astonish: ["7L1", "6L1", "5L9", "4L9", "3L9", "3S0"], + astonish: ["9L1", "7L1", "6L1", "5L9", "4L9", "3L9", "3S0"], attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], bind: ["7T", "6T", "5T"], - calmmind: ["7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], confide: ["7M", "6M"], - confusion: ["7L1", "6L1", "5L14", "4L14", "3L14"], + confusion: ["9L1", "7L1", "6L1", "5L14", "4L14", "3L14"], cosmicpower: ["7E", "6E"], craftyshield: ["7E"], - curse: ["7E", "6E", "5E", "4E", "3E"], - dazzlinggleam: ["7M", "6M"], + curse: ["9M", "7E", "6E", "5E", "4E", "3E"], + dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["3T"], defog: ["7T"], disable: ["7E", "6E", "5E", "4E", "3E"], - doubleedge: ["7L42", "6L33", "5L33", "4L33", "3T", "3L33"], + disarmingvoice: ["9M"], + doubleedge: ["9M", "9L42", "7L42", "6L33", "5L33", "4L33", "3T", "3L33"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], dreameater: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], echoedvoice: ["7M", "6M", "5M"], - endure: ["4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - extrasensory: ["7L22", "6L22", "5L46", "4L46"], - facade: ["7M", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M"], + extrasensory: ["9L22", "7L22", "6L22", "5L46", "4L46"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], flash: ["6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["7E", "6E", "5E", "4E"], - grassknot: ["7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - growl: ["7L1", "6L1", "5L6", "4L6", "3L6", "3S0"], - healbell: ["7T", "7L27", "6T", "6L27", "5T", "5L38", "4T", "4L38", "3L38"], - healingwish: ["7L1", "6L1", "5L57", "4L49"], - healpulse: ["7L47", "6L47", "5L49"], - helpinghand: ["7T", "6T", "5T", "4T"], + futuresight: ["9M", "7E", "6E", "5E", "4E"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + growl: ["9L1", "7L1", "6L1", "5L6", "4L6", "3L6", "3S0"], + healbell: ["9L27", "7T", "7L27", "6T", "6L27", "5T", "5L38", "4T", "4L38", "3L38"], + healingwish: ["9L1", "7L1", "6L1", "5L57", "4L49"], + healpulse: ["9L47", "7L47", "6L47", "5L49"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hypervoice: ["7T", "6T", "5T", "5D"], + hypervoice: ["9M", "7T", "6T", "5T", "5D"], hypnosis: ["7E", "6E", "5E", "5D", "4E", "3E"], - icywind: ["7T", "6T", "5T", "4T", "3T"], - knockoff: ["7T", "6T", "5T", "4T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T", "4T"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], magiccoat: ["7T", "6T", "5T", "4T"], mimic: ["3T"], naturalgift: ["4M"], nightmare: ["3T"], perishsong: ["7E"], - protect: ["7M", "6M", "5M", "4M", "3M"], - psychic: ["7M", "6M", "5M", "4M", "3M", "3L46"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - psyshock: ["7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M", "3L46"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "7M", "6M", "5M"], psywave: ["7L16", "6L16", "5L30", "4L30", "3L30"], - raindance: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], recover: ["7E", "6E"], recycle: ["7T", "6T", "5T", "4M"], - reflect: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["7M", "6M", "5M"], - safeguard: ["7M", "7L37", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L41"], + safeguard: ["9L37", "7M", "7L37", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L41"], secretpower: ["6M", "4M", "3M"], - shadowball: ["7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - skillswap: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M"], snatch: ["7T", "6T", "5T", "4M", "3M"], snore: ["7T", "6T", "5T", "4T", "3T"], - storedpower: ["7E", "6E", "5E"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "6M", "5M", "4M", "3M"], + storedpower: ["9M", "9L16", "7E", "6E", "5E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], synchronoise: ["7L1", "6L1", "5L54"], - takedown: ["7L19", "6L19", "5L22", "4L22", "3L17"], - taunt: ["7M", "6M", "5M", "4M", "3M"], + takedown: ["9M", "9L19", "7L19", "6L19", "5L22", "4L22", "3L17"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], telekinesis: ["7T", "5M"], - thunderwave: ["7M", "6M", "5M", "4M"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["7T", "6T", "5T", "4T"], - trickroom: ["7M", "6M", "5M", "4M"], - uproar: ["7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L22"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "9L32", "7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L22"], wish: ["7E", "6E", "5E", "4E"], - wrap: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], - yawn: ["7L13", "6L13", "5L25", "4L25", "3L25"], - zenheadbutt: ["7T", "6T", "5T", "4T"], + wrap: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + yawn: ["9L13", "7L13", "6L13", "5L25", "4L25", "3L25"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 3, level: 10, gender: "M", moves: ["wrap", "growl", "astonish"], pokeball: "pokeball"}, @@ -42162,7 +44082,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["8M", "7E", "6E", "5E", "4E"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], batonpass: ["8M", "7E", "6E", "5E", "4E", "3E"], - bite: ["8E", "7L16", "6L16", "5L28", "4L28", "3L21", "3S2"], + bite: ["8E", "7L16", "6L16", "5L20", "4L28", "3L21", "3S2"], blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["8M", "3T"], bounce: ["8M", "7T", "6T", "5T", "4T"], @@ -42176,9 +44096,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["8E", "7E", "6E", "5E", "4E", "3E"], cut: ["6M", "5M", "4M", "3M"], darkpulse: ["8M", "7M", "6M", "5T", "4M"], - detect: ["8L15", "7L33", "6L1", "5L49", "4L49"], + detect: ["8L15", "7L33", "6L1", "5L44", "4L49"], doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], - doubleteam: ["8L5", "7M", "7L19", "6M", "6L19", "5M", "5L33", "4M", "4L33", "3M", "3L31", "3S3"], + doubleteam: ["8L5", "7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L33", "3M", "3L31", "3S3"], dreameater: ["7M", "6M", "5M", "4M", "3T"], echoedvoice: ["7M", "6M", "5M"], endure: ["8M", "4M", "3T"], @@ -42193,7 +44113,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foulplay: ["8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - futuresight: ["8M", "8L50", "7L1", "6L1", "5L41", "4L41", "3L41", "3S3"], + futuresight: ["8M", "8L50", "7L1", "6L1", "5L36", "4L41", "3L41", "3S3"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], hail: ["8M", "7M", "6M", "5M", "4M", "3M"], headbutt: ["4T"], @@ -42216,16 +44136,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - nightslash: ["8L30", "7L29", "6L29", "5L52", "4L52"], + nightslash: ["8L30", "7L29", "6L29", "5L41", "4L52"], payback: ["8M", "7M", "6M", "5M", "4M"], perishsong: ["8L55", "7L1", "7E", "6L1", "6E", "5L65", "5E", "4L65", "3L46", "3S3"], playrough: ["8M", "7E", "6E"], protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychocut: ["8M", "7L37", "6L37", "5L60", "4L60"], + psychocut: ["8M", "7L37", "6L37", "5L49", "4L60"], psychup: ["7M", "6M", "5M", "4M", "3T"], punishment: ["7E", "6E", "5E", "4E"], - pursuit: ["7L10", "6L10", "5L20", "4L20"], - quickattack: ["8L1", "7L1", "6L1", "5L12", "4L12", "3L13"], + pursuit: ["7L10", "6L10", "5L12", "4L20"], + quickattack: ["8L1", "7L1", "6L1", "5L9", "4L12", "3L13"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], razorwind: ["7L49", "6L1", "5L17", "4L17", "3L17", "3S2"], rest: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -42242,7 +44162,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], shadowclaw: ["8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - slash: ["8L25", "7L22", "6L22", "5L36", "4L36", "3L36", "3S3"], + slash: ["8L25", "7L22", "6L22", "5L28", "4L36", "3L36", "3S3"], sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], snarl: ["8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M", "3M"], @@ -42311,6 +44231,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { iceshard: ["9L15", "8L15", "7L10", "6L10", "5L37", "4L37"], icespinner: ["9M"], iciclecrash: ["9E", "8E"], + iciclespear: ["9M"], icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3T", "3L16", "3S0"], leer: ["9L5", "8L5", "7L1", "6L1", "5L1", "4L1", "3L1"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -42331,7 +44252,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M", "7T", "6T", "5T", "4T", "3T"], snowscape: ["9M", "9L45"], spikes: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], swagger: ["7M", "6M", "5M", "4M", "3T"], switcheroo: ["9E", "8E", "7E", "6E"], @@ -42340,7 +44261,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], waterpulse: ["9M", "7T", "6T", "5D", "4M", "3M", "3S0"], - weatherball: ["9L50", "8M", "7E", "6E", "5E", "5D", "4E"], + weatherball: ["9M", "9L50", "8M", "7E", "6E", "5E", "5D", "4E"], }, eventData: [ {generation: 3, level: 20, abilities: ["innerfocus"], moves: ["sing", "waterpulse", "bite", "icywind"]}, @@ -42375,7 +44296,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frostbreath: ["9L30", "8L30", "7M", "7L37", "6M", "6L37", "5M"], frustration: ["7M", "6M", "5M", "4M", "3M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "8L47", "7M", "7L54", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L42"], headbutt: ["9L1", "8L54", "7L28", "6L19", "5L19", "4T", "4L19", "3L19"], helpinghand: ["9M"], @@ -42386,7 +44307,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icefang: ["9M", "9L40", "8M", "8L40", "7L23", "6L23", "5L28", "4L28"], iceshard: ["9L15", "8L15", "7L1", "6L1"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3T", "3L16"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], @@ -42413,7 +44334,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M", "7T", "6T", "5T", "4T", "3T"], snowscape: ["9M", "9L47"], spikes: ["9M", "8M"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], steelroller: ["8T"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], superfang: ["7T", "6T", "5T", "4T"], @@ -42425,7 +44346,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M", "3M"], trailblaze: ["9M"], waterpulse: ["9M", "7T", "6T", "4M", "3M"], - weatherball: ["9L54", "8M"], + weatherball: ["9M", "9L54", "8M"], }, }, froslass: { @@ -42445,6 +44366,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confuseray: ["9M", "9L35", "8L35", "7L32", "6L19", "5L19", "4L19"], crunch: ["9M", "9L1", "8M", "8L1"], + curse: ["9M"], destinybond: ["9L1", "8L1", "7L1", "6L1", "5L59", "4L59"], doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], drainingkiss: ["9M", "9L20", "8M", "8L20", "7L23", "6L23"], @@ -42459,6 +44381,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], hail: ["8M", "8L40", "7M", "7L54", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + haze: ["9M"], headbutt: ["9L1", "8L1", "4T"], helpinghand: ["9M"], hex: ["9M", "9L0", "8M", "8L0"], @@ -42469,7 +44392,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], iceshard: ["9L15", "8L15", "7L1", "6L1", "5L37", "4L37"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13"], imprison: ["9M", "8M"], laserfocus: ["7T"], @@ -42479,13 +44402,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nightshade: ["9M"], ominouswind: ["7L1", "6L22", "5L22", "4T", "4L22"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], protect: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], reflect: ["9M", "8M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -42503,7 +44426,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M", "7T", "6T", "5T", "4T"], snowscape: ["9M", "9L40"], spikes: ["9M", "8M"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], suckerpunch: ["4T"], swagger: ["7M", "6M", "5M", "4M"], @@ -42516,11 +44439,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], wakeupslap: ["7L37", "6L28", "5L28", "4L28"], waterpulse: ["9M", "7T", "6T", "4M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], willowisp: ["9M", "9L47", "8M", "8L47", "7M", "7L28"], }, }, @@ -43001,7 +44925,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { luvdisc: { learnset: { agility: ["9M", "9L7", "7L7", "6L7", "5L9", "4L9", "3L16"], - aquajet: ["7E", "6E", "5E", "4E"], + aquajet: ["9E", "7E", "6E", "5E", "4E"], aquaring: ["9L40", "7L40", "7E", "6L40", "6E", "5L46", "5E", "4L37", "4E"], attract: ["9L20", "7M", "7L20", "6M", "6L22", "5M", "5L27", "4M", "4L22", "3M", "3L28"], babydolleyes: ["9L37"], @@ -43015,10 +44939,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], drainingkiss: ["9M", "9L22", "7L9", "6L9"], + endeavor: ["9M"], endure: ["9M", "4M", "3T"], - entrainment: ["7E", "6E"], + entrainment: ["9E", "7E", "6E"], facade: ["9M", "7M", "6M", "5M", "4M", "3M"], flail: ["9L26", "7L26", "6L27", "5L31", "4L46", "3L40"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], hail: ["7M", "6M", "5M", "4M", "3M"], healpulse: ["7E", "6E", "5E"], @@ -43033,21 +44959,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudsport: ["7E", "6E", "5E", "5D", "4E", "3E"], naturalgift: ["4M"], protect: ["9M", "7M", "6M", "5M", "4M", "3M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], round: ["7M", "6M", "5M"], safeguard: ["9L49", "7M", "7L49", "6M", "6L55", "5M", "5L55", "4M", "4L51", "3M", "3L48"], scald: ["7M", "6M", "5M"], + scaleshot: ["9M"], secretpower: ["6M", "4M", "3M"], sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snore: ["7T", "6T", "5T", "4T", "3T"], snowscape: ["9M"], soak: ["9L42", "7L42"], - splash: ["7E", "6E", "5E", "4E", "3E"], + splash: ["9E", "7E", "6E", "5E", "4E", "3E"], substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], - supersonic: ["7E", "6E", "5E", "4E", "3E"], + supersonic: ["9E", "7E", "6E", "5E", "4E", "3E"], surf: ["9M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], sweetkiss: ["9L31", "7L31", "6L31", "5L37", "4L27", "3L36"], @@ -43060,7 +44987,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L4", "7L4", "6L4", "5L7", "4L7", "3L12"], waterpulse: ["9M", "9L17", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L31", "3M"], watersport: ["7E", "6E", "5E", "4E", "3E"], - whirlpool: ["4M"], + whirlpool: ["9M", "4M"], wish: ["9L13"], }, }, @@ -43076,10 +45003,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L46", "4L46", "3L41"], cut: ["6M", "5M", "4M", "3M"], defensecurl: ["9E", "8E", "7E", "6E", "5E"], - doubleedge: ["9L55", "8L55", "7L49", "6L49", "5L55", "4L55", "3T", "3L53"], + doubleedge: ["9M", "9L55", "8L55", "7L49", "6L49", "5L55", "4L55", "3T", "3L53"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["9L10", "8L10", "7L13", "6L13", "5L31", "4L31", "3L33"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L31", "8M", "8L31", "7M", "7L29", "6M", "6L29", "5M", "5L50", "4M", "4L50", "3M", "3L49"], dragondance: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], dragonpulse: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], @@ -43115,7 +45043,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -43157,10 +45085,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L50", "4L50", "3L56"], cut: ["6M", "5M", "4M", "3M"], defensecurl: ["3T"], - doubleedge: ["9L67", "8L67", "7L56", "6L56", "5L61", "4L61", "3T", "3L78"], + doubleedge: ["9M", "9L67", "8L67", "7L56", "6L56", "5L61", "4L61", "3T", "3L78"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["9L1", "8L1", "7L13", "6L13", "5L32", "4L32", "3L38"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L55", "4M", "4L55", "3M", "3L69"], dragondance: ["9M", "8M"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], @@ -43194,7 +45123,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -43210,6 +45139,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thunderfang: ["9M"], toxic: ["7M", "6M", "5M", "4M", "3M"], @@ -43229,7 +45159,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M", "4M", "3M"], bite: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], bodyslam: ["9M", "8M", "3T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], @@ -43239,15 +45169,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["6M", "5M", "4M", "3M"], defensecurl: ["3T"], defog: ["7T", "4M"], - doubleedge: ["9L73", "8L73", "7L63", "6L1", "5L70", "4L70", "3T", "3L93"], + doubleedge: ["9M", "9L73", "8L73", "7L63", "6L1", "5L70", "4L70", "3T", "3L93"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["9L1", "8L1", "7L13", "6L13", "5L32", "4L32", "3L38", "3S0"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L61", "5S3", "4M", "4L61", "4S2", "3M", "3L79", "3S1"], dragondance: ["9M", "8M", "5S3", "3S1"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], dragontail: ["9M", "9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L80"], - dualwingbeat: ["9L1", "8T"], + dualwingbeat: ["9M", "9L1", "8T"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], ember: ["9L1", "8L1", "7L1", "6L1", "5L25", "4L25", "3L25"], endure: ["9M", "8M", "4M", "3T"], @@ -43288,7 +45219,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { refresh: ["3S1"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -43309,6 +45240,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "4T", "3T"], tailwind: ["9M", "7T", "6T", "5T", "4T"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thunderfang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], toxic: ["7M", "6M", "5M", "4M", "3M"], @@ -43329,12 +45261,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { headbutt: ["4T"], holdback: ["6S0"], - irondefense: ["8M", "7T", "6T", "6S0", "5T", "4T"], - ironhead: ["8M", "7T", "6T", "6S0", "5T", "5D", "4T"], - steelbeam: ["8T"], - tackle: ["8L1"], - takedown: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], - zenheadbutt: ["8M", "7T", "6T", "6S0", "5T", "5D", "4T"], + irondefense: ["9M", "8M", "7T", "6T", "6S0", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "6S0", "5T", "5D", "4T"], + steelbeam: ["9M", "8T"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + terablast: ["9M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "6S0", "5T", "5D", "4T"], }, eventData: [ {generation: 6, level: 5, shiny: true, moves: ["holdback", "ironhead", "zenheadbutt", "irondefense"], pokeball: "cherishball"}, @@ -43342,92 +45275,100 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, metang: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "8L66", "7L41", "6L38", "5L44", "4L44", "3L56"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L66", "8M", "8L66", "7L41", "6L38", "5L38", "4L44", "3L56"], allyswitch: ["8M", "7T"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "7M", "6M", "5M"], - bulletpunch: ["8L1", "7L26", "6L26", "5L32", "4L32"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9L1", "8L1", "7L26", "6L26", "5L32", "4L32"], confide: ["7M", "6M"], - confusion: ["8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], + confusion: ["9L0", "8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], cosmicpower: ["8M"], cut: ["6M", "5M", "4M", "3M"], defensecurl: ["3T"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - expandingforce: ["8T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + expandingforce: ["9M", "8T"], explosion: ["7M", "6M", "5M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], - flashcannon: ["8M", "8L18", "7M", "6M", "5M", "4M"], + flashcannon: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M", "4M"], + focuspunch: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + futuresight: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + hardpress: ["9M"], headbutt: ["4T"], + heavyslam: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "8L74", "7M", "7L50", "6M", "6L50", "5M", "5L56", "4M", "4L56", "3M", "3L62"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "8L58", "7T", "7L47", "6T", "6L47", "5T", "5L40", "4T", "4L40", "3L44"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], - magnetrise: ["8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - metalclaw: ["8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], - meteorbeam: ["8T"], - meteormash: ["8L50", "7L44", "6L44", "5L48", "4L48", "3L50"], + honeclaws: ["9L1", "6M", "5M"], + hyperbeam: ["9M", "9L74", "8M", "8L74", "7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L56", "3M", "3L62"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "9L58", "8M", "8L58", "7T", "7L47", "6T", "6L47", "5T", "5L40", "4T", "4L40", "3L44"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["9L12", "8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + metalclaw: ["9M", "9L0", "8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], + meteorbeam: ["9M", "8T"], + meteormash: ["9L50", "8L50", "7L44", "6L44", "5L44", "4L48", "3L50"], mimic: ["3T"], miracleeye: ["7L29", "6L26", "5L26"], mudslap: ["4T", "3T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "4M", "4L36", "3M", "3L38"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["9M", "9L34", "8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "4M", "4L36", "3M", "3L38"], + psychicnoise: ["9M"], psychocut: ["8M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], - pursuit: ["7L23", "6L23", "5L28", "4L28", "3L32"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + pursuit: ["7L23", "6L23", "5L23", "4L28", "3L32"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], refresh: ["3S0"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - scaryface: ["8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L26"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L42", "8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L26"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["8M", "3T"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - steelbeam: ["8T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], steelroller: ["8T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - tackle: ["8L1"], - takedown: ["8L26", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + swift: ["9M", "8M", "4T", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9L26", "8L26", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], telekinesis: ["7T", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["8M", "7T", "6T", "5T", "4T"], - zenheadbutt: ["8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L52", "4T", "4L52"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "9L6", "8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L29", "4T", "4L52"], }, eventData: [ {generation: 3, level: 30, moves: ["takedown", "confusion", "metalclaw", "refresh"], pokeball: "pokeball"}, @@ -43435,98 +45376,109 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, metagross: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M", "8L72", "7L41", "6L38", "5L44", "5S4", "4L44", "3L66"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L72", "8M", "8L72", "7L41", "6L38", "5L38", "5S4", "4L44", "3L66"], allyswitch: ["8M", "7T"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M"], - bulldoze: ["8M", "7M", "6M", "5M"], - bulletpunch: ["8L1", "7L26", "7S7", "6L26", "5L32", "5S1", "5S2", "4L32", "4S0"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9L1", "8L1", "7L26", "7S7", "6L26", "5L32", "5S1", "5S2", "4L32", "4S0"], confide: ["7M", "6M"], - confusion: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], cosmicpower: ["8M"], cut: ["6M", "5M", "4M", "3M"], defensecurl: ["3T"], - doubleedge: ["5S4", "5S5", "3T"], + doubleedge: ["9M", "5S4", "5S5", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - earthquake: ["8M", "7M", "6M", "5M", "5S1", "5S3", "5S6", "4M", "3M"], - endure: ["8M", "4M", "3T"], - expandingforce: ["8T"], - explosion: ["7M", "6M", "5M", "4M", "3T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "5S1", "5S3", "5S6", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + expandingforce: ["9M", "8T"], + explosion: ["9L1", "7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], - flashcannon: ["8M", "8L16", "7M", "6M", "5M", "4M"], + flashcannon: ["9M", "9L16", "8M", "8L16", "7M", "6M", "5M", "4M"], + focuspunch: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], - hammerarm: ["8L0", "7L1", "6L45", "5L45", "5S1", "5S2", "5S4", "5S5", "4L45", "4S0"], + futuresight: ["9M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + hammerarm: ["9L0", "8L0", "7L1", "6L45", "5L45", "5S1", "5S2", "5S4", "5S5", "4L45", "4S0"], + hardpress: ["9M"], headbutt: ["4T"], + heavyslam: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "8L82", "7M", "7L60", "6M", "6L60", "5M", "5L71", "5S6", "4M", "4L71", "3M", "3L77"], - icepunch: ["8M", "7T", "7S7", "6T", "5T", "5S2", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "8L62", "7T", "7L52", "6T", "6L52", "5T", "5L40", "5S4", "4T", "4L40", "3L44"], - ironhead: ["8M", "7T", "7S7", "6T", "5T", "4T"], + honeclaws: ["9L1", "6M", "5M"], + hyperbeam: ["9M", "9L82", "8M", "8L82", "7M", "7L60", "6M", "6L60", "5M", "5L62", "5S6", "4M", "4L71", "3M", "3L77"], + icepunch: ["9M", "8M", "7T", "7S7", "6T", "5T", "5S2", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "9L62", "8M", "8L62", "7T", "7L52", "6T", "6L52", "5T", "5L40", "5S4", "4T", "4L40", "3L44"], + ironhead: ["9M", "8M", "7T", "7S7", "6T", "5T", "4T"], + knockoff: ["9M"], laserfocus: ["7T"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], - magnetrise: ["8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - metalclaw: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], - meteorbeam: ["8T"], - meteormash: ["8L52", "7L44", "6L44", "5L53", "5S1", "5S3", "5S5", "5S6", "4L53", "4S0", "3L55"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["9L12", "8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + metalclaw: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meteorbeam: ["9M", "8T"], + meteormash: ["9L52", "8L52", "7L44", "6L44", "5L44", "5S1", "5S3", "5S5", "5S6", "4L53", "4S0", "3L55"], mimic: ["3T"], miracleeye: ["7L29", "6L26", "5L26"], - mudslap: ["4T", "3T"], + mudslap: ["9M", "4T", "3T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "5S3", "4M", "3M"], - psychic: ["8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "5S5", "5S6", "4M", "4L36", "3M", "3L38"], + protect: ["9M", "8M", "7M", "6M", "5M", "5S3", "4M", "3M"], + psychic: ["9M", "9L34", "8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "5S5", "5S6", "4M", "4L36", "3M", "3L38"], + psychicfangs: ["9M"], + psychicnoise: ["9M"], psychocut: ["8M"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], - pursuit: ["7L23", "6L23", "5L28", "4L28", "3L32"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + pursuit: ["7L23", "6L23", "5L23", "4L28", "3L32"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - scaryface: ["8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L1"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L42", "8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L1"], secretpower: ["6M", "4M", "3M"], selfdestruct: ["8M", "3T"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - steelbeam: ["8T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], steelroller: ["8T"], - stompingtantrum: ["8M", "7T", "7S7"], + stompingtantrum: ["9M", "8M", "7T", "7S7"], + stoneedge: ["9M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - tackle: ["8L1"], - takedown: ["8L26", "7L1", "6L1", "5L1", "4L1", "3L1"], + swift: ["9M", "8M", "4T", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9L26", "8L26", "7L1", "6L1", "5L1", "4L1", "3L1"], telekinesis: ["7T", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["8M", "7T", "6T", "5T", "4T"], - zenheadbutt: ["8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L62", "5S2", "5S3", "4T", "4L62", "4S0"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "9L6", "8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L29", "5S2", "5S3", "4T", "4L62", "4S0"], }, eventData: [ {generation: 4, level: 62, nature: "Brave", moves: ["bulletpunch", "meteormash", "hammerarm", "zenheadbutt"], pokeball: "cherishball"}, @@ -43541,89 +45493,93 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, regirock: { learnset: { - ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + ancientpower: ["9L12", "8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], - chargebeam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L6", "8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], + chargebeam: ["9M", "9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["8L30", "8S7", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + curse: ["9M", "9L30", "8L30", "8S7", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], defensecurl: ["3T"], - dig: ["8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dynamicpunch: ["3T"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - explosion: ["8L78", "7M", "7L1", "6M", "6L1", "6S5", "5M", "5L1", "4M", "4L1", "3T", "3L1"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - flashcannon: ["8M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + explosion: ["9L78", "8L78", "7M", "7L1", "6M", "6L1", "6S5", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flashcannon: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], - hammerarm: ["8L42", "8S7", "7L49", "7S6", "6L1", "6S5", "5L81", "4L81"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L42", "8L42", "8S7", "7L49", "7S6", "6L1", "6S5", "5L81", "4L81"], + hardpress: ["9M"], headbutt: ["4T"], - heavyslam: ["8M"], + heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], - icepunch: ["8M", "7T", "6T", "6S5", "5T", "4T", "3T"], - irondefense: ["8M", "8L36", "7T", "7L37", "6T", "6L37", "6S4", "5T", "5L41", "5S3", "4L41", "3L41"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], - lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + hyperbeam: ["9M", "9L72", "8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icepunch: ["9M", "8M", "7T", "6T", "6S5", "5T", "4T", "3T"], + irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L37", "6T", "6L37", "6S4", "5T", "5L41", "5S3", "4L41", "3L41"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lockon: ["9L60", "8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], + powergem: ["9M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "3T"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockblast: ["8M"], + rockblast: ["9M", "8M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "8L24", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - sandtomb: ["8M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], selfdestruct: ["8M", "3T"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L48", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stomp: ["9L18", "8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - superpower: ["8M", "8L54", "8S7", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["9L54", "8M", "8L54", "8S7", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], swagger: ["7M", "6M", "5M", "4M", "3T"], - thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - zapcannon: ["8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + zapcannon: ["9L66", "8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], }, eventData: [ {generation: 3, level: 40, shiny: 1, moves: ["rockthrow", "curse", "superpower", "ancientpower"]}, @@ -43639,63 +45595,65 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, regice: { learnset: { - amnesia: ["8M", "8L36", "8S7", "7L37", "6L37", "6S4", "6S5", "5L41", "5S3", "4L41", "3L41"], - ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + amnesia: ["9M", "9L36", "8M", "8L36", "8S7", "7L37", "6L37", "6S4", "6S5", "5L41", "5S3", "4L41", "3L41"], + ancientpower: ["9L12", "8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], auroraveil: ["7M"], - avalanche: ["8M", "4M"], - blizzard: ["8M", "8L48", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "9L48", "8M", "8L48", "7M", "6M", "5M", "4M", "3M"], block: ["7T", "6T", "5T", "4T"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], - chargebeam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L6", "8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], + chargebeam: ["9M", "9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + curse: ["9M", "9L30", "8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], defensecurl: ["3T"], doubleedge: ["3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - explosion: ["8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flashcannon: ["8M", "7M", "6M", "5M", "4M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + explosion: ["9L78", "8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frostbreath: ["7M", "6M", "5M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], hail: ["8M", "7M", "6M", "6S5", "5M", "4M", "3M"], - hammerarm: ["8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], + hammerarm: ["9L42", "8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], headbutt: ["4T"], - heavyslam: ["8M"], + heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], - icebeam: ["8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73", "3M"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - iciclespear: ["8M"], - icywind: ["8M", "8L1", "8S7", "7T", "7L1", "6T", "6L1", "5T", "5L9", "4T", "4L9", "4S2", "3T", "3L9", "3S0"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], - lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + hyperbeam: ["9M", "9L72", "8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icebeam: ["9M", "9L24", "8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L1", "8M", "8L1", "8S7", "7T", "7L1", "6T", "6L1", "5T", "5L9", "4T", "4L9", "4S2", "3T", "3L9", "3S0"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lockon: ["9L60", "8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "3T"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -43704,20 +45662,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { selfdestruct: ["8M", "3T"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], - stompingtantrum: ["8M", "7T"], + snowscape: ["9M"], + stomp: ["9L18", "8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - superpower: ["8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["9L54", "8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], swagger: ["7M", "6M", "5M", "4M", "3T"], - thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "6S5", "5M", "4M", "3M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "6S5", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - zapcannon: ["8L66", "8S7", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + zapcannon: ["9L66", "8L66", "8S7", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], }, eventData: [ {generation: 3, level: 40, shiny: 1, moves: ["icywind", "curse", "superpower", "ancientpower"]}, @@ -43734,89 +45694,94 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { registeel: { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], - amnesia: ["8M", "8L36", "7L37", "6L37", "6S4", "5L41", "5S3", "4L41", "3L41"], - ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + amnesia: ["9M", "9L36", "8M", "8L36", "7L37", "6L37", "6S4", "5L41", "5S3", "4L41", "3L41"], + ancientpower: ["9L12", "8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M"], - bodyslam: ["8M", "3T"], - brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], - bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "5M"], - chargebeam: ["8L1", "8S7", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L6", "8M", "8L6", "7M", "7L1", "6M", "6L1", "5M"], + chargebeam: ["9M", "9L1", "8L1", "8S7", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], confide: ["7M", "6M"], counter: ["3T"], - curse: ["8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + curse: ["9M", "9L30", "8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], defensecurl: ["3T"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dynamicpunch: ["3T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - explosion: ["8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - flashcannon: ["8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "5M", "5L73", "4M", "4L73"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + explosion: ["9L78", "8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "9L24", "8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "5M", "5L73", "4M", "4L73"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "6S5", "5T", "4T"], - hammerarm: ["8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "6S5", "5T", "4T"], + hammerarm: ["9L42", "8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], + hardpress: ["9M"], headbutt: ["4T"], - heavyslam: ["8M", "8L48", "8S7"], + heavyslam: ["9M", "9L48", "8M", "8L48", "8S7"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - irondefense: ["8M", "8L36", "8S7", "7T", "7L37", "6T", "6L37", "6S4", "6S5", "5T", "5L41", "4T", "4L41", "3L41"], - ironhead: ["8M", "8L24", "7T", "7L43", "6T", "6L1", "6S5", "5T", "5L73", "4T", "4L73"], - lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + hyperbeam: ["9M", "9L72", "8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + irondefense: ["9M", "9L36", "8M", "8L36", "8S7", "7T", "7L37", "6T", "6L37", "6S4", "6S5", "5T", "5L41", "4T", "4L41", "3L41"], + ironhead: ["9M", "9L24", "8M", "8L24", "7T", "7L43", "6T", "6L1", "6S5", "5T", "5L73", "4T", "4L73"], + lockon: ["9L60", "8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], magnetrise: ["7T", "6T", "5T", "4T"], megakick: ["8M", "3T"], megapunch: ["8M", "3T"], - metalclaw: ["8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], - meteorbeam: ["8T"], + metalclaw: ["9M", "9L1", "8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], + metalsound: ["9M"], + meteorbeam: ["9M", "8T"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "3T"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "7M", "6M", "6S5", "5M", "4M", "3T"], + rockslide: ["9M", "8M", "7M", "6M", "6S5", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rollout: ["4T", "3T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - sandtomb: ["8M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], selfdestruct: ["8M", "3T"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - steelbeam: ["8T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], steelroller: ["8T"], - stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], - stompingtantrum: ["8M", "7T"], + stomp: ["9L18", "8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - superpower: ["8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["9L54", "8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], swagger: ["7M", "6M", "5M", "4M", "3T"], - thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - zapcannon: ["8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + zapcannon: ["9L66", "8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], }, eventData: [ {generation: 3, level: 40, shiny: 1, moves: ["metalclaw", "curse", "superpower", "ancientpower"]}, @@ -43832,119 +45797,129 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, latias: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M"], - airslash: ["8M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - aurasphere: ["8M"], - batonpass: ["8M"], - bodyslam: ["8M", "3T"], - breakingswipe: ["8M"], - bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M", "8M"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["8M", "8L1", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confusion: ["8L15"], + confusion: ["9L15", "8L15"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M", "3M"], defog: ["7T", "4M"], + disarmingvoice: ["9M"], dive: ["8M", "8S11", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dracometeor: ["8T", "7T", "7S9", "6T", "5T", "4T"], - dragonbreath: ["8L25", "8S10", "7L20", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], - dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], - dragondance: ["8M"], - dragonpulse: ["8M", "8L45", "8S11", "7T", "7L56", "7S7", "7S8", "6T", "6L1", "5T", "5L80", "4M", "4L70"], + dracometeor: ["9M", "8T", "7T", "7S9", "6T", "5T", "4T"], + dragonbreath: ["9L25", "8L25", "8S10", "7L20", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L45", "8M", "8L45", "8S11", "7T", "7L56", "7S7", "7S8", "6T", "6L1", "5T", "5L80", "4M", "4L70"], + drainingkiss: ["9M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M", "8T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], - fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - futuresight: ["8M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - guardsplit: ["8L65", "7L46", "6L1", "5L75"], - healingwish: ["8L70", "7L1", "6L1", "5L85", "4L60"], - healpulse: ["8L50", "7L16", "6L1", "6S6", "5L65", "5S5"], - helpinghand: ["8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], + futuresight: ["9M", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + guardsplit: ["9L65", "9S12", "8L65", "7L46", "6L1", "5L75"], + healingwish: ["9L70", "9S12", "8L70", "7L1", "6L1", "5L85", "4L60"], + healpulse: ["9L50", "8L50", "7L16", "6L1", "6S6", "5L65", "5S5"], + helpinghand: ["9M", "9L5", "8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T", "4T"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + liquidation: ["9M"], magiccoat: ["7T", "6T", "5T", "4T"], magicroom: ["8M", "7T", "6T", "5T"], mimic: ["3T"], - mistball: ["8L35", "8S11", "7L24", "7S7", "7S8", "7S9", "6L24", "6S6", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], + mistball: ["9L35", "8L35", "8S11", "7L24", "7S7", "7S8", "7S9", "6L24", "6S6", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], mudslap: ["4T", "3T"], mysticalfire: ["8M"], naturalgift: ["4M"], - outrage: ["8M", "7T", "6T", "5T", "4T"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8L60", "7M", "7L51", "7S9", "6M", "6L51", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["9M", "9L60", "9S12", "8M", "8L60", "7M", "7L51", "7S9", "6M", "6L51", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], psychocut: ["8M"], psychoshift: ["8L75", "7L28", "7S7", "7S8", "6L28", "6S6", "5L50", "5S5", "4L50"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - recover: ["8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - reflecttype: ["8L55", "8S10", "7L36", "6L1", "5L70"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9L10", "8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + reflecttype: ["9L55", "9S12", "8L55", "8S10", "7L36", "6L1", "5L70"], refresh: ["7L13", "6L13", "5L30", "4L30", "4S3", "4S4", "3L30", "3S0"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], roost: ["7M", "6M", "5T", "4M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L15", "4M", "4L15", "3M", "3L15"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - scaleshot: ["8T"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], steelwing: ["8M", "7M", "6M", "4M", "3M"], - storedpower: ["8M", "8L1", "7L10", "6L10"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + storedpower: ["9M", "9L1", "8M", "8L1", "7L10", "6L10"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], suckerpunch: ["4T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - surf: ["8M", "8S10", "7M", "6M", "5M", "4M", "3M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8S10", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], sweetkiss: ["8S11"], - swift: ["8M", "4T", "3T"], - tailwind: ["8L20", "7T", "7S9", "6T", "5T", "4T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "9L20", "8L20", "7T", "7S9", "6T", "5T", "4T"], + takedown: ["9M"], telekinesis: ["7T", "5M"], - thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], triattack: ["8M"], - trick: ["8M", "7T", "6T", "5T", "4T"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], twister: ["4T"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - waterpulse: ["7T", "6T", "4M", "3M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], watersport: ["7L4", "6L4", "5L25", "4L25", "4S3", "4S4", "3L25", "3S0"], - whirlpool: ["8M", "4M"], - wish: ["8L30", "7L1", "7S7", "7S8", "6L1", "5L5", "4L5", "3L5"], - zenheadbutt: ["8M", "8L40", "8S10", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], + weatherball: ["9M"], + whirlpool: ["9M", "8M", "4M"], + wish: ["9L30", "8L30", "7L1", "7S7", "7S8", "6L1", "5L5", "4L5", "3L5"], + zenheadbutt: ["9M", "9L40", "8M", "8L40", "8S10", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], }, eventData: [ {generation: 3, level: 40, shiny: 1, moves: ["watersport", "refresh", "mistball", "psychic"]}, @@ -43959,118 +45934,128 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 100, moves: ["mistball", "psychic", "dracometeor", "tailwind"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["reflecttype", "dragonbreath", "zenheadbutt", "surf"]}, {generation: 8, level: 70, nature: "Bashful", moves: ["mistball", "dragonpulse", "dive", "sweetkiss"], pokeball: "cherishball"}, + {generation: 9, level: 70, moves: ["healingwish", "guardsplit", "psychic", "reflecttype"]}, ], eventOnly: true, }, latios: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["8M"], - airslash: ["8M"], - allyswitch: ["8M", "8L30", "7T"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + allyswitch: ["9L30", "8M", "8L30", "7T"], attract: ["8M", "7M", "6M", "5M", "4M", "3M"], - aurasphere: ["8M", "8S11"], - batonpass: ["8M"], - bodyslam: ["8M", "3T"], - breakingswipe: ["8M"], - bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M", "8M", "8S11"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], captivate: ["4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], confide: ["7M", "6M"], - confusion: ["8L15"], + confusion: ["9L15", "8L15"], cut: ["6M", "5M", "4M", "3M"], defog: ["7T", "4M"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dracometeor: ["8T", "7T", "7S10", "6T", "5T", "4T"], - dragonbreath: ["8L25", "7L20", "7S8", "7S9", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], - dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], - dragondance: ["8M", "8L1", "8S11", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], - dragonpulse: ["8M", "8L45", "8S11", "7T", "7L56", "7S8", "7S9", "6T", "6L1", "6S7", "5T", "5L80", "4M", "4L70"], + dracometeor: ["9M", "8T", "7T", "7S10", "6T", "5T", "4T"], + dragonbreath: ["9L25", "9S12", "8L25", "7L20", "7S8", "7S9", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "9L1", "8M", "8L1", "8S11", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], + dragonpulse: ["9M", "9L45", "9S12", "8M", "8L45", "8S11", "7T", "7L56", "7S8", "7S9", "6T", "6L1", "6S7", "5T", "5L80", "4M", "4L70"], dreameater: ["7M", "6M", "5M", "4M", "3T"], - dualwingbeat: ["8T"], - earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M", "8T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flash: ["6M", "5M", "4M", "3M"], - fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + flipturn: ["9M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], - futuresight: ["8M"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], + futuresight: ["9M", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], healblock: ["7L1", "6L1", "5L5", "4L5"], - healpulse: ["8L50", "7L16", "6L1", "6S6", "6S7", "5L65", "5S5"], - helpinghand: ["8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], + healpulse: ["9L50", "8L50", "7L16", "6L1", "6S6", "6S7", "5L65", "5S5"], + helpinghand: ["9M", "9L5", "8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T", "4T"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], - lusterpurge: ["8L35", "7L24", "7S8", "7S9", "7S10", "6L24", "6S6", "6S7", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + liquidation: ["9M"], + lusterpurge: ["9L35", "9S12", "8L35", "7L24", "7S8", "7S9", "7S10", "6L24", "6S6", "6S7", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], magiccoat: ["7T", "6T", "5T", "4T"], - memento: ["8L70", "7L1", "6L1", "5L85", "4L60", "3L5"], + memento: ["9L70", "8L70", "7L1", "6L1", "5L85", "4L60", "3L5"], mimic: ["3T"], mudslap: ["4T", "3T"], mysticalfire: ["8M"], naturalgift: ["4M"], - outrage: ["8M", "7T", "6T", "5T", "4T"], - powersplit: ["8L65", "7L46", "6L1", "5L75"], - protect: ["8M", "7M", "7L4", "6M", "6L4", "5M", "5L25", "4M", "4L25", "4S3", "4S4", "3M", "3L25", "3S0"], - psychic: ["8M", "8L60", "7M", "7L51", "7S10", "6M", "6L51", "6S7", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + powersplit: ["9L65", "8L65", "7L46", "6L1", "5L75"], + protect: ["9M", "8M", "7M", "7L4", "6M", "6L4", "5M", "5L25", "4M", "4L25", "4S3", "4S4", "3M", "3L25", "3S0"], + psychic: ["9M", "9L60", "8M", "8L60", "7M", "7L51", "7S10", "6M", "6L51", "6S7", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], + psychicnoise: ["9M"], psychocut: ["8M"], psychoshift: ["8L75", "7L28", "7S8", "7S9", "6L28", "6S6", "5L50", "5S5", "4L50"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], - recover: ["8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9L10", "8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], refresh: ["7L13", "6L13", "5L30", "4L30", "4S3", "4S4", "3L30", "3S0"], - rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], roost: ["7M", "6M", "5T", "4M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L15", "4M", "4L15", "3M", "3L15"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], - scaleshot: ["8T"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], - shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], - simplebeam: ["8L55"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + simplebeam: ["9L55", "8L55"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], steelwing: ["8M", "7M", "6M", "4M", "3M"], - storedpower: ["8M", "8L1", "7L10", "6L10"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], - surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + storedpower: ["9M", "9L1", "8M", "8L1", "7L10", "6L10"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "4T", "3T"], - tailwind: ["8L20", "7T", "7S10", "6T", "5T", "4T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "9L20", "8L20", "7T", "7S10", "6T", "5T", "4T"], + takedown: ["9M"], telekinesis: ["7T", "7L36", "6L1", "5M", "5L70"], - thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], triattack: ["8M"], - trick: ["8M", "7T", "6T", "5T", "4T"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], twister: ["4T"], - waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], - waterpulse: ["7T", "6T", "4M", "3M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], whirlpool: ["8M", "4M"], wonderroom: ["8M", "7T", "6T", "5T"], - zenheadbutt: ["8M", "8L40", "8S11", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], + zenheadbutt: ["9M", "9L40", "9S12", "8M", "8L40", "8S11", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], }, eventData: [ {generation: 3, level: 40, shiny: 1, moves: ["protect", "refresh", "lusterpurge", "psychic"]}, @@ -44085,13 +46070,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["lusterpurge", "dragonpulse", "psychoshift", "dragonbreath"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["lusterpurge", "psychic", "dracometeor", "tailwind"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["dragondance", "dragonpulse", "zenheadbutt", "aurasphere"]}, + {generation: 9, level: 70, moves: ["lusterpurge", "dragonpulse", "zenheadbutt", "dragonbreath"]}, ], eventOnly: true, }, kyogre: { learnset: { ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L45", "5S3", "4T", "4L15", "4S2", "3L15"], - aquaring: ["9L54", "8L54", "8S11", "7L30", "6L30", "6S5", "5L30", "4L30", "4S2"], + aquaring: ["9L54", "9S12", "8L54", "8S11", "7L30", "6L30", "6S5", "5L30", "4L30", "4S2"], aquatail: ["9L9", "8L9", "7T", "7L15", "6T", "6L15", "5T", "5L65", "4T", "4L65"], avalanche: ["9M", "8M", "4M"], blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -44105,7 +46091,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], defensecurl: ["3T"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["9L81", "8L81", "7L80", "6L80", "5L80", "4L65", "3T", "3L65", "3S1"], + doubleedge: ["9M", "9L81", "8L81", "7L80", "6L80", "5L80", "4L65", "3T", "3L65", "3S1"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], endure: ["9M", "8M", "4M", "3T"], @@ -44119,12 +46105,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hydropump: ["9M", "9L72", "8M", "8L72", "7L75", "6L75", "5L90", "4L45", "3L45", "3S0", "3S1"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - icebeam: ["9M", "9L36", "8M", "8L36", "7M", "7L35", "7S7", "7S8", "7S9", "7S10", "6M", "6L35", "6S5", "6S6", "5M", "5L35", "5S3", "5S4", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], + icebeam: ["9M", "9L36", "9S12", "8M", "8L36", "7M", "7L35", "7S7", "7S8", "7S9", "7S10", "6M", "6L35", "6S5", "6S6", "5M", "5L35", "5S3", "5S4", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], liquidation: ["9M", "8M", "7T"], mimic: ["3T"], - muddywater: ["9L27", "8M", "8L27", "7L60", "7S7", "7S8", "7S9", "6L20", "5L20", "4L20"], + muddywater: ["9M", "9L27", "9S12", "8M", "8L27", "7L60", "7S7", "7S8", "7S9", "6L20", "5L20", "4L20"], mudslap: ["4T", "3T"], naturalgift: ["4M"], originpulse: ["9L1", "8L63", "7L45", "7S7", "7S8", "7S9", "7S10", "6L45", "6S5"], @@ -44133,7 +46119,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M", "4L50", "3M", "3L50", "3S1"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -44142,7 +46128,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "9L1", "8M", "8L1", "7L5", "6L5", "5L5", "4L5", "3L5"], secretpower: ["6M", "4M", "3M"], - sheercold: ["9L45", "8L45", "7L65", "6L65", "6S6", "5L75", "5S4", "4L60", "3L60", "3S1"], + sheercold: ["9L45", "9S12", "8L45", "7L65", "6L65", "6S6", "5L75", "5S4", "4L60", "3L60", "3S1"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], @@ -44162,7 +46148,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], waterpulse: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5L1", "4M", "4L1", "3M", "3L1"], waterspout: ["9L90", "8L90", "7L90", "7S10", "6L50", "6S6", "5L50", "5S3", "5S4", "4L50", "4S2", "3L75"], - whirlpool: ["8M", "4M"], + whirlpool: ["9M", "8M", "4M"], }, eventData: [ {generation: 3, level: 45, shiny: 1, moves: ["bodyslam", "calmmind", "icebeam", "hydropump"]}, @@ -44177,6 +46163,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["icebeam", "originpulse", "calmmind", "muddywater"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["originpulse", "icebeam", "waterspout", "calmmind"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["surf", "bodyslam", "aquaring", "thunder"]}, + {generation: 9, level: 70, moves: ["aquaring", "sheercold", "icebeam", "muddywater"]}, ], eventOnly: true, }, @@ -44197,35 +46184,36 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["6M", "5M", "4M", "3M"], defensecurl: ["3T"], dig: ["9M", "8M", "6M", "5M", "4M", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], dragontail: ["7M", "6M", "5M"], dynamicpunch: ["3T"], earthpower: ["9M", "9L9", "8M", "8L9", "7T", "7L15", "7S10", "6T", "6L15", "5T", "5L65", "5S4", "4T", "4L65"], - earthquake: ["9M", "9L27", "8M", "8L27", "8S11", "7M", "7L35", "7S7", "7S8", "7S9", "6M", "6L35", "6S5", "5M", "5L35", "5S3", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], + earthquake: ["9M", "9L27", "9S12", "8M", "8L27", "8S11", "7M", "7L35", "7S7", "7S8", "7S9", "6M", "6L35", "6S5", "5M", "5L35", "5S3", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], endure: ["9M", "8M", "4M", "3T"], eruption: ["9L90", "8L90", "7L90", "6L50", "5L50", "5S3", "5S4", "4L50", "4S2", "3L75"], facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fireblast: ["9M", "9L72", "8M", "8L72", "7M", "7L75", "6M", "6L75", "5M", "5L90", "4M", "4L45", "3M", "3L45", "3S0", "3S1"], firefang: ["9M"], firepunch: ["9M", "8M", "7T", "7S10", "6T", "6S6", "5T", "4T", "3T"], - fissure: ["9L45", "8L45", "7L65", "6L65", "5L75", "4L60", "3L60", "3S1"], + fissure: ["9L45", "9S12", "8L45", "7L65", "6L65", "5L75", "4L60", "3L60", "3S1"], flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - hammerarm: ["9L36", "8L36", "8S11", "7L80", "6L20", "6S6", "5L20", "5S4", "4L20"], + hammerarm: ["9L36", "9S12", "8L36", "8S11", "7L80", "6L20", "6S6", "5L20", "5S4", "4L20"], headbutt: ["4T"], - heatcrash: ["8M"], + heatcrash: ["9M", "8M"], heatwave: ["9M"], heavyslam: ["9M", "8M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], honeclaws: ["6M", "5M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], incinerate: ["6M", "5M"], @@ -44244,9 +46232,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { precipiceblades: ["9L1", "8L63", "7L45", "7S7", "7S8", "7S9", "7S10", "6L45", "6S5"], protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "3T"], - rest: ["9M", "9L54", "8M", "8L54", "7M", "7L30", "6M", "6L30", "6S5", "5M", "5L30", "4M", "4L30", "4S2", "3M", "3L50", "3S1"], + rest: ["9M", "9L54", "9S12", "8M", "8L54", "7M", "7L30", "6M", "6L30", "6S5", "5M", "5L30", "4M", "4L30", "4S2", "3M", "3L50", "3S1"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockblast: ["9M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], @@ -44257,15 +46245,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], scaryface: ["9M", "9L1", "8M", "8L1", "8S11", "7L5", "6L5", "5L5", "4L5", "3L5"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M", "3M"], slash: ["4L20", "3L20", "3S0"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], solarbeam: ["9M", "9L81", "8M", "8L81", "7M", "7L60", "7S7", "7S8", "7S9", "6M", "6L60", "6S6", "5M", "5L80", "5S3", "5S4", "4M", "4L65", "3M", "3L65", "3S1"], spikes: ["9M"], @@ -44302,6 +46291,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["earthquake", "precipiceblades", "bulkup", "solarbeam"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["precipiceblades", "earthpower", "firepunch", "swordsdance"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["earthquake", "scaryface", "lavaplume", "hammerarm"]}, + {generation: 9, level: 70, moves: ["rest", "fissure", "hammerarm", "earthquake"]}, ], eventOnly: true, }, @@ -44315,7 +46305,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bind: ["7T", "6T", "5T"], blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], bodyslam: ["9M", "8M", "3T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["8M", "8S9", "7M"], bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -44326,13 +46316,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L9", "8M", "8L9", "7L20", "6L15", "5L15", "4L15", "3L35"], defog: ["7T"], dive: ["8M", "6M", "5M", "4T", "3M"], - doubleedge: ["3T"], + doubleedge: ["9M", "3T"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], dracometeor: ["9M", "8T", "7T", "6T", "6S7", "5T", "4T"], dragonascent: ["9L1", "8L1", "8S9", "7T", "6T", "6S4", "6S6", "6S7"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M", "7M", "6M", "6S6", "5M", "4M", "4L20", "3M", "3L20"], dragondance: ["9M", "9L18", "8M", "8L18", "7L60", "7S8", "6L60", "6S4", "6S6", "5L60", "5S2", "4L30", "3L30"], - dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L50", "7S8", "6T", "6L50", "6S4", "6S5", "5T", "5L90", "5S2", "5S3", "4M", "4L75"], + dragonpulse: ["9M", "9L36", "9S10", "8M", "8L36", "7T", "7L50", "7S8", "6T", "6L50", "6S4", "6S5", "5T", "5L90", "5S2", "5S3", "4M", "4L75"], dragontail: ["9M", "7M", "6M", "5M"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], @@ -44344,12 +46335,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], - fly: ["9M", "9L63", "8M", "8L63", "7M", "7L65", "6M", "6L65", "6S7", "5M", "5L65", "4M", "4L45", "3M", "3L45", "3S0"], + fly: ["9M", "9L63", "9S10", "8M", "8L63", "7M", "7L65", "6M", "6L65", "6S7", "5M", "5L65", "4M", "4L45", "3M", "3L45", "3S0"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M", "3M"], furycutter: ["4T", "3T"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], @@ -44357,13 +46348,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hurricane: ["9M", "9L72", "8M", "8L72"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "9L90", "8M", "8L90", "7M", "7L90", "6M", "6L80", "5M", "5L80", "5S3", "4M", "4L65", "3M", "3L75"], - hypervoice: ["9M", "9L45", "8M", "8L45", "7T", "7L75", "6T", "6L20", "5T", "5L20", "4L20"], + hypervoice: ["9M", "9L45", "9S10", "8M", "8L45", "7T", "7L75", "6T", "6L20", "5T", "5L20", "4L20"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], incinerate: ["6M", "5M"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], mimic: ["3T"], mudslap: ["4T", "3T"], naturalgift: ["4M"], @@ -44372,15 +46363,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], psychup: ["7M", "6M", "5M", "4M", "3T"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - rest: ["9M", "9L54", "8M", "8L54", "7M", "7L35", "7S8", "6M", "6L30", "5M", "5L30", "4M", "4L30", "4S1", "3M", "3L50", "3S0"], + rest: ["9M", "9L54", "9S10", "8M", "8L54", "7M", "7L35", "7S8", "6M", "6L30", "5M", "5L30", "4M", "4L30", "4S1", "3M", "3L50", "3S0"], return: ["7M", "6M", "5M", "4M", "3M"], - roar: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L1", "8M", "8L1", "7L5", "6L5", "5L5", "4L5", "3L5"], secretpower: ["6M", "4M", "3M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -44411,7 +46402,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { vcreate: ["5S3"], waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], waterpulse: ["7T", "6T", "4M", "3M"], - whirlpool: ["8M", "4M"], + whirlpool: ["9M", "8M", "4M"], wildcharge: ["9M"], }, eventData: [ @@ -44425,6 +46416,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, shiny: true, moves: ["dragonascent", "dracometeor", "fly", "celebrate"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["rest", "extremespeed", "dragonpulse", "dragondance"]}, {generation: 8, level: 70, shiny: 1, moves: ["dragonascent", "brutalswing", "extremespeed", "twister"]}, + {generation: 9, level: 70, moves: ["fly", "rest", "hypervoice", "dragonpulse"]}, ], eventOnly: true, }, @@ -44432,123 +46424,121 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { aerialace: ["7M", "6M", "5M", "4M", "3M"], allyswitch: ["8M"], - amnesia: ["8M"], + amnesia: ["9M", "8M"], ancientpower: ["4T"], - aurasphere: ["8M"], - batonpass: ["8M"], - bodyslam: ["8M", "3T"], - calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], - chargebeam: ["7M", "6M", "5M", "4M"], - charm: ["8M"], + aurasphere: ["9M", "8M"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "8M"], confide: ["7M", "6M"], - confusion: ["8L1", "7L1", "6L1", "6S18", "6S20", "6S21", "5L1", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], - cosmicpower: ["8M", "8L84", "7L60", "6L60", "6S19", "5L60", "5S15", "4L60", "3L45"], - dazzlinggleam: ["8M", "7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "6S10", "6S12", "6S13", "5L1", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + cosmicpower: ["9L84", "8M", "8L84", "7L60", "6L60", "6S11", "5L60", "5S7", "4L60", "3L45"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], defensecurl: ["3T"], - doomdesire: ["8L98", "7L70", "6L70", "5L70", "4L70", "3L50"], - doubleedge: ["8L77", "7L40", "6L40", "5L40", "4L40", "3T", "3L35"], + doomdesire: ["9L98", "8L98", "7L70", "6L70", "5L70", "4L70", "3L50"], + doubleedge: ["9M", "9L77", "8L77", "7L40", "6L40", "5L40", "4L40", "3T", "3L35"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dracometeor: ["5S14", "4S12"], - drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dracometeor: ["5S6", "4S4"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], dynamicpunch: ["3T"], - encore: ["8M"], - endure: ["8M", "4M", "3T"], - energyball: ["8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], - facade: ["8M", "7M", "6M", "5M", "4M", "3M"], - firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], flash: ["6M", "5M", "4M", "3M"], - flashcannon: ["8M", "7M", "6M", "5M", "4M"], - fling: ["8M", "7M", "6M", "5M", "4M"], - followme: ["5S14"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + followme: ["5S6"], frustration: ["7M", "6M", "5M", "4M", "3M"], - futuresight: ["8M", "8L70", "7L55", "6L55", "5L55", "4L55", "3L40"], - gigaimpact: ["8M", "7M", "6M", "5M", "4M"], - grassknot: ["8M", "7M", "6M", "5M", "4M"], - gravity: ["8L35", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], - happyhour: ["6S20"], + futuresight: ["9M", "9L70", "8M", "8L70", "7L55", "6L55", "5L55", "4L55", "3L40"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L35", "8L35", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], + happyhour: ["6S12"], headbutt: ["4T"], - healingwish: ["8L56", "7L50", "7S22", "6L50", "6S17", "5L50", "5S13", "5S15", "5S16", "4L50"], - heartstamp: ["6S19"], - helpinghand: ["8M", "8L14", "7T", "7L15", "6T", "6L15", "6S18", "5T", "5L15", "4T", "4L15", "3L15", "3S10"], + healingwish: ["9L56", "8L56", "7L50", "7S14", "6L50", "6S9", "5L50", "5S5", "5S7", "5S8", "4L50"], + heartstamp: ["6S11"], + helpinghand: ["9M", "8M", "8L14", "7T", "7L15", "6T", "6L15", "6S10", "5T", "5L15", "4T", "4L15", "3L15", "3S2"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], - icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], - imprison: ["8M"], - irondefense: ["8M", "7T", "6T", "5T", "4T"], - ironhead: ["8M", "7T", "6T", "5T", "4T"], - lastresort: ["8L91", "7T", "7L65", "6T", "6L65", "5T", "5L65", "4T", "4L65"], - lifedew: ["8L21"], - lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lastresort: ["9L91", "8L91", "7T", "7L65", "6T", "6L65", "5T", "5L65", "4T", "4L65"], + lifedew: ["9L21", "8L21"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], luckychant: ["7L30"], magiccoat: ["7T", "6T", "5T", "4T"], magicroom: ["8M", "7T", "6T", "5T"], megakick: ["8M"], megapunch: ["8M"], - meteorbeam: ["8T"], - meteormash: ["8L49", "8S23", "5S13", "5S14", "5S15"], - metronome: ["8M", "3T"], + metalsound: ["9M"], + meteorbeam: ["9M", "8T"], + meteormash: ["9L49", "8L49", "8S15", "5S5", "5S6", "5S7"], + metronome: ["9M", "8M", "3T"], mimic: ["3T"], - moonblast: ["6S17"], - mudslap: ["4T", "3T"], + moonblast: ["6S9"], + mudslap: ["9M", "4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - playrough: ["8M", "6S19"], + playrough: ["9M", "8M", "6S11"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8L42", "8S23", "7M", "7L20", "6M", "6L20", "5M", "5L20", "5S13", "4M", "4L20", "3M", "3L20", "3S10"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - psyshock: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L42", "8M", "8L42", "8S15", "7M", "7L20", "6M", "6L20", "5M", "5L20", "5S5", "4M", "4L20", "3M", "3L20", "3S2"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], - reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S10"], - rest: ["8M", "8L63", "8S23", "7M", "7L30", "7S22", "6M", "6L5", "6S21", "5M", "5L5", "4M", "4L5", "4S11", "4S12", "3M", "3L5", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9", "3S10"], - return: ["7M", "6M", "6S18", "5M", "5S16", "4M", "3M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S2"], + rest: ["9M", "9L63", "8M", "8L63", "8S15", "7M", "7L30", "7S14", "6M", "6L5", "6S13", "5M", "5L5", "4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], + return: ["7M", "6M", "6S10", "5M", "5S8", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], - sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], secretpower: ["6M", "4M", "3M"], - shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], snore: ["8M", "7T", "6T", "5T", "4T", "3T"], - stealthrock: ["8M", "7T", "6T", "5T", "4M"], - steelbeam: ["8T"], - storedpower: ["8M"], - substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], - sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L7", "7L10", "7S22", "6L10", "6S17", "6S20", "5L10", "5S13", "5S16", "4T", "4L10", "3T", "3L10"], + swift: ["9M", "9L7", "8M", "8L7", "7L10", "7S14", "6L10", "6S9", "6S12", "5L10", "5S5", "5S8", "4T", "4L10", "3T", "3L10"], telekinesis: ["7T", "5M"], - thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], - thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["8M", "7T", "6T", "5T", "4T"], - trickroom: ["8M", "7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], uproar: ["8M", "7T", "6T", "5T", "4T"], - uturn: ["8M", "7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M", "3M"], - wish: ["8L1", "8S23", "7L1", "7S22", "6L1", "6S17", "6S18", "6S19", "6S20", "6S21", "5L1", "5S14", "5S15", "5S16", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], - zenheadbutt: ["8M", "8L28", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wish: ["9L1", "8L1", "8S15", "7L1", "7S14", "6L1", "6S9", "6S10", "6S11", "6S12", "6S13", "5L1", "5S6", "5S7", "5S8", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + zenheadbutt: ["9M", "9L28", "8M", "8L28", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], }, eventData: [ {generation: 3, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Bashful", ivs: {hp: 24, atk: 3, def: 30, spa: 12, spd: 16, spe: 11}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Careful", ivs: {hp: 10, atk: 0, def: 10, spa: 10, spd: 26, spe: 12}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Docile", ivs: {hp: 19, atk: 7, def: 10, spa: 19, spd: 10, spe: 16}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Hasty", ivs: {hp: 3, atk: 12, def: 12, spa: 7, spd: 11, spe: 9}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Jolly", ivs: {hp: 11, atk: 8, def: 6, spa: 14, spd: 5, spe: 20}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Lonely", ivs: {hp: 31, atk: 23, def: 26, spa: 29, spd: 18, spe: 5}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Naughty", ivs: {hp: 21, atk: 31, def: 31, spa: 18, spd: 24, spe: 19}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Serious", ivs: {hp: 29, atk: 10, def: 31, spa: 25, spd: 23, spe: 21}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Timid", ivs: {hp: 15, atk: 28, def: 29, spa: 3, spd: 0, spe: 7}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, {generation: 3, level: 30, moves: ["helpinghand", "psychic", "refresh", "rest"], pokeball: "pokeball"}, {generation: 4, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "cherishball"}, {generation: 4, level: 5, moves: ["wish", "confusion", "rest", "dracometeor"], pokeball: "cherishball"}, @@ -44568,123 +46558,135 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, deoxys: { learnset: { - aerialace: ["7M", "6M", "5M", "4M", "3M"], - agility: ["7L55", "6L55", "5L73", "4L73", "3L35"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L55", "7L55", "6L55", "5L73", "4L73", "3L35"], allyswitch: ["7T", "5M"], - amnesia: ["7L55", "6L55", "5L73", "4L73", "3L35"], + amnesia: ["9M", "9L55", "7L55", "6L55", "5L73", "4L73", "3L35"], avalanche: ["4M"], bind: ["7T", "6T", "5T"], bodyslam: ["3T"], - brickbreak: ["7M", "6M", "5M", "4M", "3M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], brutalswing: ["7M"], - calmmind: ["7M", "6M", "5M", "4M", "3M"], - chargebeam: ["7M", "6M", "5M", "4M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - cosmicpower: ["7L55", "6L55", "6S10", "5L73", "4L73", "3L35", "3S3"], - counter: ["7L73", "6L73", "5L97", "4L97", "4S6", "3T", "3L50"], + cosmicpower: ["9L55", "7L55", "6L55", "6S10", "5L73", "4L73", "3L35", "3S3"], + counter: ["9L73", "7L73", "6L73", "5L97", "4L97", "4S6", "3T", "3L50"], cut: ["6M", "5M", "4M", "3M"], - darkpulse: ["7M", "6M", "5S9"], + darkpulse: ["9M", "7M", "6M", "5S9"], detect: ["4S6"], doubleedge: ["3T"], - doubleteam: ["7M", "7L13", "6M", "6L13", "5M", "5L17", "4M", "4L17", "4S5", "3M", "3L10"], - drainpunch: ["7T", "6T", "5T", "4M"], + doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L17", "4M", "4L17", "4S5", "3M", "3L10"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], dynamicpunch: ["3T"], - endure: ["4M", "3T"], - energyball: ["7M", "6M", "5M", "4M"], - extremespeed: ["7L73", "6L73", "5L97", "4L97", "4S4", "4S5", "3L50"], - facade: ["7M", "6M", "5M", "4M", "3M"], - firepunch: ["7T", "6T", "5T", "4T", "3T"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + expandingforce: ["9M"], + extremespeed: ["9L73", "7L73", "6L73", "5L97", "4L97", "4S4", "4S5", "3L50"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], flash: ["6M", "5M", "4M", "3M"], - flashcannon: ["7M", "6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], focuspunch: ["7T", "6T", "4M", "3M"], frustration: ["7M", "6M", "5M", "4M", "3M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + futuresight: ["9M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L37", "7T", "6T", "5T", "4T"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], - hyperbeam: ["7M", "7L73", "6M", "6L73", "6S10", "5M", "5L97", "4M", "4L97", "4S7", "3M", "3L50", "3S3"], - icebeam: ["7M", "6M", "5M", "4M", "3M"], - icepunch: ["7T", "6T", "5T", "4T", "3T"], - icywind: ["7T", "6T", "5T", "4T", "3T"], - irondefense: ["7L55", "6T", "6L55", "5T", "5L73", "4T", "4L73", "4S4", "3L35"], - knockoff: ["7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25", "3L15", "3S1", "3S2"], + hyperbeam: ["9M", "9L73", "7M", "7L73", "6M", "6L73", "6S10", "5M", "5L97", "4M", "4L97", "4S7", "3M", "3L50", "3S3"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + irondefense: ["9M", "9L55", "7L55", "6T", "6L55", "5T", "5L73", "4T", "4L73", "4S4", "3L35"], + knockoff: ["9M", "9L19", "7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25", "3L15", "3S1", "3S2"], laserfocus: ["7T"], - leer: ["7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], - lightscreen: ["7M", "6M", "5M", "4M", "3M"], - lowkick: ["7T", "6T", "5T", "4T"], - lowsweep: ["7M", "6M", "5M"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], magiccoat: ["7T", "6T", "5T", "4T"], megakick: ["3T"], megapunch: ["3T"], + meteorbeam: ["9M"], meteormash: ["4S7"], mimic: ["3T"], - mirrorcoat: ["7L73", "6L73", "5L97", "4L97", "4S6", "3L50"], + mirrorcoat: ["9L73", "7L73", "6L73", "5L97", "4L97", "4S6", "3L50"], mudslap: ["4T", "3T"], - nastyplot: ["5S9"], + nastyplot: ["9M", "5S9"], naturalgift: ["4M"], nightmare: ["3T"], - nightshade: ["7L7", "6L7", "5L9", "4L9", "4S8", "3L5"], - poisonjab: ["7M", "6M", "5M", "4M"], + nightshade: ["9M", "9L7", "7L7", "6L7", "5L9", "4L9", "4S8", "3L5"], + painsplit: ["9M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M", "3M"], - psychic: ["7M", "7L31", "6M", "6L31", "5M", "5L41", "4M", "4L41", "3M", "3L25", "3S0", "3S1", "3S2"], - psychoboost: ["7L67", "6L67", "6S10", "5L89", "5S9", "4L89", "4S4", "4S5", "4S6", "4S7", "4S8", "3L45", "3S3"], + protect: ["9M", "9L37", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L31", "7M", "7L31", "6M", "6L31", "5M", "5L41", "4M", "4L41", "3M", "3L25", "3S0", "3S1", "3S2"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psychoboost: ["9L67", "7L67", "6L67", "6S10", "5L89", "5S9", "4L89", "4S4", "4S5", "4S6", "4S7", "4S8", "3L45", "3S3"], psychoshift: ["7L43", "6L43", "5L57", "4L57"], - psychup: ["7M", "6M", "5M", "4M", "3T"], - psyshock: ["7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "9L25", "7M", "6M", "5M"], pursuit: ["7L25", "6L25", "5L33", "4L33", "3L20", "3S0", "3S2"], - raindance: ["7M", "6M", "5M", "4M", "3M"], - recover: ["7L61", "6L61", "6S10", "5L81", "5S9", "4L81", "3L40", "3S3"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9L61", "7L61", "6L61", "6S10", "5L81", "5S9", "4L81", "3L40", "3S3"], recycle: ["7T", "6T", "5T", "4M"], - reflect: ["7M", "6M", "5M", "4M", "3M"], - rest: ["7M", "6M", "5M", "4M", "3M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], return: ["7M", "6M", "5M", "4M", "3M"], - rockslide: ["7M", "6M", "5M", "4M", "3T"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], rocksmash: ["6M", "5M", "4M", "3M"], - rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], roleplay: ["7T", "6T", "5T", "4T"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], secretpower: ["6M", "4M", "3M"], seismictoss: ["3T"], - shadowball: ["7M", "6M", "5M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], shockwave: ["7T", "6T", "4M", "3M"], signalbeam: ["7T", "6T", "5T", "4T"], - skillswap: ["7T", "6T", "5T", "4M", "3M"], - sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + skillswap: ["9M", "9L43", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], snatch: ["7T", "7L37", "6T", "6L37", "5T", "5L49", "4M", "4L49", "3M", "3L30", "3S1"], snore: ["7T", "6T", "5T", "4T", "3T"], - solarbeam: ["7M", "6M", "5M", "4M", "3M"], - spikes: ["7L25", "6L25", "5L33", "4L33", "3L20", "3S1"], - stealthrock: ["7T", "6T", "5T", "4M"], - stompingtantrum: ["7T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L25", "7L25", "6L25", "5L33", "4L33", "3L20", "3S1"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + storedpower: ["9M"], strength: ["6M", "5M", "4M", "3M"], - substitute: ["7M", "6M", "5M", "4M", "3T"], - sunnyday: ["7M", "6M", "5M", "4M", "3M"], - superpower: ["7L37", "6T", "6L37", "5L49", "4T", "4L49", "4S7", "3S0"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["9L37", "7L37", "6T", "6L37", "5L49", "4T", "4L49", "4S7", "3S0"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["7L37", "6L37", "5L49", "4T", "4L49", "4S5", "3T", "3L30", "3S2"], - taunt: ["7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3M", "3L15", "3S0"], + swift: ["9M", "9L37", "7L37", "6L37", "5L49", "4T", "4L49", "4S5", "3T", "3L30", "3S2"], + takedown: ["9M"], + taunt: ["9M", "9L19", "7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3M", "3L15", "3S0"], telekinesis: ["7T", "5M"], - teleport: ["7L13", "6L13", "5L17", "4L17", "3L10"], - throatchop: ["7T"], - thunder: ["7M", "6M", "5M", "4M", "3M"], - thunderbolt: ["7M", "6M", "5M", "4M", "3M"], - thunderpunch: ["7T", "6T", "5T", "4T", "3T"], - thunderwave: ["7M", "6M", "5M", "4M", "3T"], + teleport: ["9L13", "7L13", "6L13", "5L17", "4L17", "3L10"], + terablast: ["9M"], + throatchop: ["9M", "7T"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], torment: ["7M", "6M", "5M", "4M", "3M"], toxic: ["7M", "6M", "5M", "4M", "3M"], - trick: ["7T", "6T", "5T", "4T"], - trickroom: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "6T", "4M", "3M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], wonderroom: ["7T", "6T", "5T"], - wrap: ["7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], - zapcannon: ["7L61", "6L61", "5L81", "4L81", "4S4", "3L40"], - zenheadbutt: ["7T", "7L49", "6T", "6L49", "5T", "5L65", "4T", "4L65"], + wrap: ["9L1", "7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], + zapcannon: ["9L61", "7L61", "6L61", "5L81", "4L81", "4S4", "3L40"], + zenheadbutt: ["9M", "9L49", "7T", "7L49", "6T", "6L49", "5T", "5L65", "4T", "4L65"], }, eventData: [ {generation: 3, level: 30, shiny: 1, moves: ["taunt", "pursuit", "psychic", "superpower"]}, @@ -44712,215 +46714,268 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, turtwig: { learnset: { - absorb: ["7L9", "6L9", "5L9", "5S0", "5S1", "4L9"], - amnesia: ["7E", "6E", "5E", "4E"], + absorb: ["9L9", "7L9", "6L9", "5L9", "5S0", "5S1", "4L9"], + amnesia: ["9M", "7E", "6E", "5E", "4E"], attract: ["7M", "6M", "5M", "4M"], - bite: ["7L21", "6L21", "5L21", "4L21"], - bodyslam: ["7E", "6E", "5E", "4E"], - bulletseed: ["4M"], + bite: ["9L21", "7L21", "6L21", "5L21", "4L21"], + bodyslam: ["9M", "7E", "6E", "5E", "4E"], + bulldoze: ["9M"], + bulletseed: ["9M", "4M"], captivate: ["4M"], confide: ["7M", "6M"], - crunch: ["7L37", "6L37", "5L37", "4L37"], - curse: ["7L17", "6L17", "5L17", "4L17"], + crunch: ["9M", "9L37", "7L37", "6L37", "5L37", "4L37"], + curse: ["9M", "9L17", "7L17", "6L17", "5L17", "4L17"], cut: ["6M", "5M", "4M"], - doubleedge: ["7E", "6E", "5E", "4E"], + doubleedge: ["9M", "9E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], - endure: ["4M"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gigadrain: ["7T", "7L41", "6T", "6L41", "5T", "5L41", "4M", "4L41"], - grassknot: ["7M", "6M", "5M", "4M"], - grasspledge: ["7T", "6T", "5T"], - grassyterrain: ["7E", "6E"], - growth: ["7E", "6E", "5E", "4E"], + gigadrain: ["9M", "9L41", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4M", "4L41"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M", "7E", "6E"], + growth: ["9E", "7E", "6E", "5E", "4E"], headbutt: ["4T"], - heavyslam: ["7E"], + heavyslam: ["9M", "7E"], hiddenpower: ["7M", "6M", "5M", "4M"], + ironhead: ["9M"], irontail: ["7T", "6T", "5T", "4M"], - leafstorm: ["7L45", "6L45", "5L45", "4L45"], - leechseed: ["7L29", "6L29", "5L29", "4L29"], - lightscreen: ["7M", "6M", "5M", "4M"], - megadrain: ["7L25", "6L25", "5L25", "4L25"], - mudslap: ["4T"], + leafstorm: ["9M", "9L45", "7L45", "6L45", "5L45", "4L45"], + leechseed: ["9L29", "7L29", "6L29", "5L29", "4L29"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M"], + megadrain: ["9L25", "7L25", "6L25", "5L25", "4L25"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - protect: ["7M", "6M", "5M", "4M"], - razorleaf: ["7L13", "6L13", "5L13", "4L13"], - reflect: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L13", "7L13", "6L13", "5L13", "4L13"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], + roar: ["9M"], rockclimb: ["4M"], rocksmash: ["6M", "5M", "4M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M"], - sandtomb: ["7E", "6E", "5E", "4E"], + sandtomb: ["9M", "7E", "6E", "5E", "4E"], secretpower: ["6M", "4M"], - seedbomb: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - sleeptalk: ["7M", "6M", "5T", "4M"], + seedbomb: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + shellsmash: ["9E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], snore: ["7T", "6T", "5T", "4T"], - solarbeam: ["7M", "6M", "5M", "4M"], - spitup: ["7E", "6E", "5E", "4E"], - stealthrock: ["7T", "6T", "5T", "4M"], - stockpile: ["7E", "6E", "5E", "5S1", "4E"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + spitup: ["9E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stockpile: ["9E", "7E", "6E", "5E", "5S1", "4E"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], - superpower: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + superpower: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], swagger: ["7M", "6M", "5M", "4M"], - swallow: ["7E", "6E", "5E", "4E"], - swordsdance: ["7M", "6M", "5M", "4M"], - synthesis: ["7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], - tackle: ["7L1", "6L1", "5L1", "5S0", "5S1", "4L1"], - thrash: ["7E", "6E", "5E", "4E"], - tickle: ["7E", "6E", "5E", "4E"], + swallow: ["9E", "7E", "6E", "5E", "4E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L33", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + tackle: ["9L1", "9S2", "7L1", "6L1", "5L1", "5S0", "5S1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E", "7E", "6E", "5E", "4E"], + tickle: ["9E", "7E", "6E", "5E", "4E"], toxic: ["7M", "6M", "5M", "4M"], - wideguard: ["7E", "6E", "5E"], - withdraw: ["7L5", "6L5", "5L5", "5S0", "5S1", "4L5"], + trailblaze: ["9M"], + wideguard: ["9E", "7E", "6E", "5E"], + withdraw: ["9L5", "7L5", "6L5", "5L5", "5S0", "5S1", "4L5"], workup: ["7M"], - worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + worryseed: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "withdraw", "absorb"]}, {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "withdraw", "absorb", "stockpile"]}, + {generation: 9, level: 1, moves: ["tackle"], pokeball: "pokeball"}, ], }, grotle: { learnset: { - absorb: ["7L1", "6L9", "5L9", "4L9"], + absorb: ["9L1", "7L1", "6L9", "5L9", "4L9"], + amnesia: ["9M"], attract: ["7M", "6M", "5M", "4M"], - bite: ["7L22", "6L22", "5L22", "4L22"], - bulletseed: ["4M"], + bite: ["9L22", "7L22", "6L22", "5L22", "4L22"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M", "4M"], captivate: ["4M"], confide: ["7M", "6M"], - crunch: ["7L42", "6L42", "5L42", "4L42"], - curse: ["7L17", "6L17", "5L17", "4L17"], + crunch: ["9M", "9L42", "7L42", "6L42", "5L42", "4L42"], + curse: ["9M", "9L17", "7L17", "6L17", "5L17", "4L17"], cut: ["6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "6T", "5T", "4T"], - endure: ["4M"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gigadrain: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4M", "4L47"], - grassknot: ["7M", "6M", "5M", "4M"], - grasspledge: ["7T", "6T", "5T"], + gigadrain: ["9M", "9L47", "7T", "7L47", "6T", "6L47", "5T", "5L47", "4M", "4L47"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], headbutt: ["4T"], + heavyslam: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], + ironhead: ["9M"], irontail: ["7T", "6T", "5T", "4M"], - leafstorm: ["7L52", "6L52", "5L52", "4L52"], - leechseed: ["7L32", "6L32", "5L32", "4L32"], - lightscreen: ["7M", "6M", "5M", "4M"], - megadrain: ["7L27", "6L27", "5L27", "4L27"], - mudslap: ["4T"], + leafstorm: ["9M", "9L52", "7L52", "6L52", "5L52", "4L52"], + leechseed: ["9L32", "7L32", "6L32", "5L32", "4L32"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M"], + megadrain: ["9L27", "7L27", "6L27", "5L27", "4L27"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - protect: ["7M", "6M", "5M", "4M"], - razorleaf: ["7L13", "6L13", "5L13", "4L13"], - reflect: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L13", "7L13", "6L13", "5L13", "4L13"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], + roar: ["9M"], rockclimb: ["4M"], rocksmash: ["6M", "5M", "4M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M"], + sandtomb: ["9M"], secretpower: ["6M", "4M"], - seedbomb: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "6M", "5T", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], snore: ["7T", "6T", "5T", "4T"], - solarbeam: ["7M", "6M", "5M", "4M"], - stealthrock: ["7T", "6T", "5T", "4M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], superpower: ["7T", "6T", "5T", "4T"], swagger: ["7M", "6M", "5M", "4M"], - swordsdance: ["7M", "6M", "5M", "4M"], - synthesis: ["7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], - tackle: ["7L1", "6L1", "5L1", "4L1"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], - withdraw: ["7L1", "6L1", "5L1", "4L1"], + trailblaze: ["9M"], + withdraw: ["9L1", "7L1", "6L1", "5L1", "4L1"], workup: ["7M"], worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], }, }, torterra: { learnset: { - absorb: ["7L1", "6L1", "5L1", "4L1"], + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1"], + amnesia: ["9M"], attract: ["7M", "6M", "5M", "4M"], - bite: ["7L22", "6L22", "5L22", "4L22"], + bite: ["9L22", "7L22", "6L22", "5L22", "4L22"], block: ["7T", "6T", "5T", "4T"], - bulldoze: ["7M", "6M", "5M"], - bulletseed: ["4M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "4M"], captivate: ["4M"], confide: ["7M", "6M"], - crunch: ["7L45", "6L45", "5L45", "4L45"], - curse: ["7L17", "6L17", "5L17", "4L17"], + crunch: ["9M", "9L45", "7L45", "6L45", "5L45", "4L45"], + curse: ["9M", "9L17", "7L17", "6L17", "5L17", "4L17"], cut: ["6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["7M", "7L1", "6M", "6L32", "5M", "5L32", "5S0", "4M", "4L32"], - endure: ["4M"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L0", "7M", "7L1", "6M", "6L32", "5M", "5L32", "5S0", "4M", "4L32"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], - frenzyplant: ["7T", "6T", "5T", "4T"], + frenzyplant: ["9M", "7T", "6T", "5T", "4T"], frustration: ["7M", "6M", "5M", "4M"], - gigadrain: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4M", "4L51"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], - grasspledge: ["7T", "6T", "5T"], + gigadrain: ["9M", "9L51", "7T", "7L51", "6T", "6L51", "5T", "5L51", "4M", "4L51"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + hardpress: ["9M"], headbutt: ["4T"], + headlongrush: ["9L63"], + heavyslam: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - ironhead: ["7T", "6T", "5T", "4T"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M"], + irondefense: ["9M"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], irontail: ["7T", "6T", "5T", "4M"], - leafstorm: ["7L57", "6L57", "5L57", "4L57"], - leechseed: ["7L33", "6L33", "5L33", "4L33"], - lightscreen: ["7M", "6M", "5M", "4M"], - megadrain: ["7L27", "6L27", "5L27", "4L27"], - mudslap: ["4T"], + leafstorm: ["9M", "9L57", "7L57", "6L57", "5L57", "4L57"], + leechseed: ["9L33", "7L33", "6L33", "5L33", "4L33"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M"], + megadrain: ["9L27", "7L27", "6L27", "5L27", "4L27"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - outrage: ["7T", "6T", "5T", "5S0", "4T"], - protect: ["7M", "6M", "5M", "4M"], - razorleaf: ["7L1", "6L1", "5L1", "4L1"], - reflect: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + outrage: ["9M", "7T", "6T", "5T", "5S0", "4T"], + protect: ["9M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L1", "7L1", "6L1", "5L1", "4L1"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M"], - sandstorm: ["7M", "6M", "5M", "4M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], secretpower: ["6M", "4M"], - seedbomb: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "6M", "5T", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], snore: ["7T", "6T", "5T", "4T"], - solarbeam: ["7M", "6M", "5M", "4M"], - stealthrock: ["7T", "6T", "5T", "4M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "6M", "5M", "5S0", "4M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "5S0", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], superpower: ["7T", "6T", "5T", "4T"], swagger: ["7M", "6M", "5M", "4M"], - swordsdance: ["7M", "6M", "5M", "4M"], - synthesis: ["7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], - tackle: ["7L1", "6L1", "5L1", "4L1"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L39", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], - withdraw: ["7L1", "6L1", "5L1", "4L1"], - woodhammer: ["7L1", "6L1", "5L1", "5S0", "4L1"], + trailblaze: ["9M"], + withdraw: ["9L1", "7L1", "6L1", "5L1", "4L1"], + woodhammer: ["9L1", "7L1", "6L1", "5L1", "5S0", "4L1"], workup: ["7M"], worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 5, level: 100, gender: "M", moves: ["woodhammer", "earthquake", "outrage", "stoneedge"], pokeball: "cherishball"}, @@ -44928,274 +46983,340 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, chimchar: { learnset: { - acrobatics: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + acrobatics: ["9M", "9L39", "7M", "7L39", "6M", "6L39", "5M", "5L39"], aerialace: ["7M", "6M", "5M", "4M"], + agility: ["9M"], assist: ["7E", "6E", "5E", "4E"], attract: ["7M", "6M", "5M", "4M"], blazekick: ["7E", "6E", "5E", "4E"], - brickbreak: ["7M", "6M", "5M", "4M"], - bulkup: ["7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + burningjealousy: ["9M"], captivate: ["4M"], confide: ["7M", "6M"], - counter: ["7E", "6E", "5E", "4E"], + counter: ["9E", "7E", "6E", "5E", "4E"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M"], - dig: ["6M", "5M", "4M"], - doublekick: ["7E", "6E", "5E", "4E"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], - ember: ["7L7", "6L7", "5L7", "5S1", "5S3", "4L7"], - encore: ["7E", "6E", "5E", "4E"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["4M"], - facade: ["7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31"], - fakeout: ["7E", "6E", "5E", "5S3", "4E"], - fireblast: ["7M", "6M", "5M", "4M"], - firepledge: ["7T", "6T", "5T"], - firepunch: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - firespin: ["7L33", "6L33", "5L33", "4L33"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L41", "4S0", "4S2"], - flamewheel: ["7L17", "6L17", "5L17", "4L17"], - fling: ["7M", "6M", "5M", "4M"], - focusenergy: ["7E", "6E", "5E", "4E"], - focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M"], + ember: ["9L7", "7L7", "6L7", "5L7", "5S1", "5S3", "4L7"], + encore: ["9M", "9E", "7E", "6E", "5E", "4E"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "9L31", "7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31"], + fakeout: ["9E", "7E", "6E", "5E", "5S3", "4E"], + faketears: ["9M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + firespin: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L47", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L41", "4S0", "4S2"], + flamewheel: ["9L17", "7L17", "6L17", "5L17", "4L17"], + flareblitz: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9E", "7E", "6E", "5E", "4E"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M"], frustration: ["7M", "6M", "5M", "4M"], - furyswipes: ["7L15", "6L15", "5L15", "4L15"], - grassknot: ["7M", "6M", "5M", "4M", "4S0", "4S2"], - gunkshot: ["7T", "6T", "5T", "4T"], + furyswipes: ["9L15", "7L15", "6L15", "5L15", "4L15"], + grassknot: ["9M", "7M", "6M", "5M", "4M", "4S0", "4S2"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["4T"], - heatwave: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - helpinghand: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], + heatwave: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + helpinghand: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], hiddenpower: ["7M", "6M", "5M", "4M"], honeclaws: ["6M", "5M"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T", "4M"], - leer: ["7L1", "6L1", "5L1", "5S1", "5S3", "4L1"], - lowkick: ["7T", "6T", "5T", "4T"], - lowsweep: ["7M", "6M", "5M"], - mudslap: ["4T"], - nastyplot: ["7L23", "6L23", "5L23", "4L23"], + knockoff: ["9M"], + leer: ["9L1", "7L1", "6L1", "5L1", "5S1", "5S3", "4L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "9L23", "7L23", "6L23", "5L23", "4L23"], naturalgift: ["4M"], - overheat: ["7M", "6M", "5M", "4M"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M"], poweruppunch: ["7E", "6M"], - protect: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], quickguard: ["7E", "6E", "5E"], - rest: ["7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], rockclimb: ["4M"], + rockslide: ["9M"], rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M"], roleplay: ["7T", "6T", "5T", "4T"], rollout: ["4T"], round: ["7M", "6M", "5M"], - scratch: ["7L1", "6L1", "5L1", "5S1", "4L1"], + scratch: ["9L1", "9S4", "7L1", "6L1", "5L1", "5S1", "4L1"], secretpower: ["6M", "4M"], - shadowclaw: ["7M", "6M", "5M", "4M"], - slackoff: ["7L41", "6L41", "5L41", "4L39"], - sleeptalk: ["7M", "6M", "5T", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slackoff: ["9L41", "7L41", "6L41", "5L41", "4L39"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "6T", "5T", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], strength: ["6M", "5M", "4M"], submission: ["7E", "6E", "5E"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], - swordsdance: ["7M", "6M", "5M", "4M"], - taunt: ["7M", "7L9", "6M", "6L9", "5M", "5L9", "5S1", "5S3", "4M", "4L9"], - thunderpunch: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], - torment: ["7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + swift: ["9M", "4T"], + switcheroo: ["9E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L9", "7M", "7L9", "6M", "6L9", "5M", "5L9", "5S1", "5S3", "4M", "4L9"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], + torment: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["7T", "6T", "5T", "4T"], - uturn: ["7M", "6M", "5M", "4M"], - vacuumwave: ["4T"], - willowisp: ["7M", "6M", "5M", "4M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], workup: ["7M"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 4, level: 40, gender: "M", nature: "Mild", moves: ["flamethrower", "thunderpunch", "grassknot", "helpinghand"], pokeball: "cherishball"}, {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["scratch", "leer", "ember", "taunt"]}, {generation: 4, level: 40, gender: "M", nature: "Hardy", moves: ["flamethrower", "thunderpunch", "grassknot", "helpinghand"], pokeball: "cherishball"}, {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "ember", "taunt", "fakeout"]}, + {generation: 9, level: 1, moves: ["scratch"], pokeball: "pokeball"}, ], }, monferno: { learnset: { - acrobatics: ["7M", "7L46", "6M", "6L46", "5M", "5L46"], + acrobatics: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L46"], aerialace: ["7M", "6M", "5M", "4M"], + agility: ["9M"], attract: ["7M", "6M", "5M", "4M"], - brickbreak: ["7M", "6M", "5M", "4M"], - bulkup: ["7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + burningjealousy: ["9M"], captivate: ["4M"], - closecombat: ["7L36", "6L36", "5L36", "4L36"], + closecombat: ["9M", "9L36", "7L36", "6L36", "5L36", "4L36"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M"], - dig: ["6M", "5M", "4M"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M"], dualchop: ["7T", "6T", "5T"], - ember: ["7L1", "6L1", "5L1", "4L1"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - feint: ["7L26", "6L26", "5L26", "4L26"], - fireblast: ["7M", "6M", "5M", "4M"], - firepledge: ["7T", "6T", "5T"], - firepunch: ["7T", "6T", "5T", "4T"], - firespin: ["7L39", "6L39", "5L39", "4L39"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["7M", "6M", "5M", "4M"], - flamewheel: ["7L19", "6L19", "5L19", "4L19"], - flareblitz: ["7L56", "6L56", "5L56", "4L49"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + ember: ["9L1", "7L1", "6L1", "5L1", "4L1"], + encore: ["9M"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], + feint: ["9L26", "7L26", "6L26", "5L26", "4L26"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "6T", "5T", "4T"], + firespin: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flamewheel: ["9L19", "7L19", "6L19", "5L19", "4L19"], + flareblitz: ["9M", "9L56", "7L56", "6L56", "5L56", "4L49"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], - furyswipes: ["7L16", "6L16", "5L16", "4L16"], - grassknot: ["7M", "6M", "5M", "4M"], - gunkshot: ["7T", "6T", "5T", "4T"], + furyswipes: ["9L16", "7L16", "6L16", "5L16", "4L16"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["4T"], - heatwave: ["7T", "6T", "5T", "4T"], - helpinghand: ["7T", "6T", "5T", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], honeclaws: ["6M", "5M"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T", "4M"], - leer: ["7L1", "6L1", "5L1", "4L1"], - lowkick: ["7T", "6T", "5T", "4T"], - lowsweep: ["7M", "6M", "5M"], - machpunch: ["7L1", "6L14", "5L14", "4L14"], - mudslap: ["4T"], + knockoff: ["9M"], + lashout: ["9M"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + machpunch: ["9L0", "7L1", "6L14", "5L14", "4L14"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M"], naturalgift: ["4M"], - overheat: ["7M", "6M", "5M", "4M"], - poisonjab: ["7M", "6M", "5M", "4M"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], rockclimb: ["4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], roleplay: ["7T", "6T", "5T", "4T"], rollout: ["4T"], round: ["7M", "6M", "5M"], - scratch: ["7L1", "6L1", "5L1", "4L1"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1"], secretpower: ["6M", "4M"], - shadowclaw: ["7M", "6M", "5M", "4M"], - slackoff: ["7L49", "6L49", "5L49", "4L46"], - sleeptalk: ["7M", "6M", "5T", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slackoff: ["9L49", "7L49", "6L49", "5L49", "4L46"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], snore: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "6T", "5T", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], - swordsdance: ["7M", "6M", "5M", "4M"], - taunt: ["7M", "7L9", "6M", "6L9", "5M", "5L9", "4M", "4L9"], - thunderpunch: ["7T", "6T", "5T", "4T"], - torment: ["7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L9", "7M", "7L9", "6M", "6L9", "5M", "5L9", "4M", "4L9"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + torment: ["9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], toxic: ["7M", "6M", "5M", "4M"], - uturn: ["7M", "6M", "5M", "4M"], - vacuumwave: ["4T"], - willowisp: ["7M", "6M", "5M", "4M"], + upperhand: ["9M"], + uproar: ["9M"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], workup: ["7M", "5M"], + zenheadbutt: ["9M"], }, }, infernape: { learnset: { - acrobatics: ["7M", "7L52", "6M", "6L52", "5M", "5L52"], - aerialace: ["7M", "6M", "5M", "4M"], + acrobatics: ["9M", "9L52", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], attract: ["7M", "6M", "5M", "4M"], - blastburn: ["7T", "6T", "5T", "4T"], - brickbreak: ["7M", "6M", "5M", "4M"], - bulkup: ["7M", "6M", "5M", "4M"], - bulldoze: ["7M", "6M", "5M"], - calmmind: ["7M", "7L58", "6M", "6L58", "5M", "5L58", "4M", "4L53"], + aurasphere: ["9M"], + blastburn: ["9M", "7T", "6T", "5T", "4T"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "7M", "6M", "5M"], + burningjealousy: ["9M"], + calmmind: ["9M", "9L58", "7M", "7L58", "6M", "6L58", "5M", "5L58", "4M", "4L53"], captivate: ["4M"], - closecombat: ["7L1", "6L36", "6S1", "5L36", "5S0", "4L41"], + closecombat: ["9M", "9L0", "7L1", "6L36", "6S1", "5L36", "5S0", "4L41"], + coaching: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M"], - dig: ["6M", "5M", "4M"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M"], dualchop: ["7T", "6T", "5T"], - earthquake: ["7M", "6M", "5M", "4M"], - ember: ["7L1", "6L1", "5L1", "4L1"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - feint: ["7L26", "6L26", "5L26", "4L29"], - fireblast: ["7M", "6M", "6S1", "5M", "5S0", "4M"], - firepledge: ["7T", "6T", "5T"], - firepunch: ["7T", "6T", "6S1", "5T", "4T"], - firespin: ["7L42", "6L42", "5L42", "4L45"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["7M", "6M", "5M", "4M"], - flamewheel: ["7L19", "6L19", "5L19", "4L21"], - flareblitz: ["7L1", "6L1", "5L68", "4L57"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "6S1", "4M"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + ember: ["9L1", "7L1", "6L1", "5L1", "4L1"], + encore: ["9M"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], + feint: ["9L26", "7L26", "6L26", "5L26", "4L29"], + fireblast: ["9M", "7M", "6M", "6S1", "5M", "5S0", "4M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "6T", "6S1", "5T", "4T"], + firespin: ["9M", "9L42", "7L42", "6L42", "5L42", "4L45"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flamewheel: ["9L19", "7L19", "6L19", "5L19", "4L21"], + flareblitz: ["9M", "9L47", "7L1", "6L1", "5L68", "4L57"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "6S1", "4M"], frustration: ["7M", "6M", "5M", "4M"], - furyswipes: ["7L16", "6L16", "5L16", "4L17"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "5S0", "4M"], - gunkshot: ["7T", "6T", "5T", "4T"], + furyswipes: ["9L16", "7L16", "6L16", "5L16", "4L17"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "5S0", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["4T"], - heatwave: ["7T", "6T", "5T", "4T"], - helpinghand: ["7T", "6T", "5T", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], honeclaws: ["6M", "5M"], - hyperbeam: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["9M"], laserfocus: ["7T"], - leer: ["7L1", "6L1", "5L1", "4L1"], - lowkick: ["7T", "6T", "5T", "4T"], - lowsweep: ["7M", "6M", "5M"], - machpunch: ["7L1", "6L14", "5L14", "4L14"], - mudslap: ["4T"], + lashout: ["9M"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + machpunch: ["9L1", "7L1", "6L14", "5L14", "4L14"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M"], naturalgift: ["4M"], - overheat: ["7M", "6M", "5M", "4M"], - poisonjab: ["7M", "6M", "5M", "4M"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], punishment: ["7L29", "6L29", "5L29", "4L33"], - rest: ["7M", "6M", "5M", "4M"], + ragingfury: ["9L65"], + rest: ["9M", "7M", "6M", "5M", "4M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockclimb: ["4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], roleplay: ["7T", "6T", "5T", "4T"], rollout: ["4T"], round: ["7M", "6M", "5M"], - scratch: ["7L1", "6L1", "5L1", "4L1"], + scaryface: ["9M"], + scorchingsands: ["9M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1"], secretpower: ["6M", "4M"], - shadowclaw: ["7M", "6M", "5M", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slackoff: ["9L1"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], snore: ["7T", "6T", "5T", "4T"], - solarbeam: ["7M", "6M", "5M", "4M"], - stealthrock: ["7T", "6T", "5T", "4M"], - stoneedge: ["7M", "6M", "5M", "4M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], - swordsdance: ["7M", "6M", "5M", "4M"], - taunt: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - thunderpunch: ["7T", "6T", "5T", "4T"], - torment: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + torment: ["9L29", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - uturn: ["7M", "6M", "5M", "5S0", "4M"], - vacuumwave: ["4T"], - willowisp: ["7M", "6M", "5M", "4M"], + upperhand: ["9M"], + uproar: ["9M"], + uturn: ["9M", "7M", "6M", "5M", "5S0", "4M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], workup: ["7M", "5M"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 5, level: 100, gender: "M", moves: ["fireblast", "closecombat", "uturn", "grassknot"], pokeball: "cherishball"}, @@ -45204,76 +47325,92 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, piplup: { learnset: { - aerialace: ["7M", "6M", "5M", "4M"], - agility: ["7E", "6E", "5E", "4E"], - aquaring: ["7E", "6E", "5E", "4E"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M", "7E", "6E", "5E", "4E"], + aquaring: ["9E", "7E", "6E", "5E", "4E"], attract: ["7M", "6M", "5M", "4M"], bide: ["7L22", "7E", "6L22", "6E", "5L22", "5E", "4L18"], - blizzard: ["7M", "6M", "5M", "4M"], - brickbreak: ["7M", "6M", "5M", "4M"], - brine: ["7L29", "6L29", "5L29", "4M", "4L29"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["9L29", "7L29", "6L29", "5L29", "4M", "4L29"], bubble: ["7L8", "6L8", "5L8", "5S0", "5S3", "4L8"], - bubblebeam: ["7L18", "7S5", "6L18", "5L18", "4L18"], + bubblebeam: ["9L18", "7L18", "7S5", "6L18", "5L18", "4L18"], captivate: ["4M"], + charm: ["9M", "9L11"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M"], defog: ["7T", "4M"], dig: ["6M", "5M", "4M"], + disarmingvoice: ["9M"], dive: ["6M", "5M", "4T"], doublehit: ["7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], - drillpeck: ["7L39", "7S5", "6L39", "5L39", "4L39"], + drillpeck: ["9L39", "7L39", "7S5", "6L39", "5L39", "4L39"], echoedvoice: ["7M", "6M", "5M"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - featherdance: ["7E", "6E", "5E", "5S1", "5S2", "5S3", "4E"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["9M", "9E", "7E", "6E", "5E", "5S1", "5S2", "5S3", "4E"], flail: ["7E", "6E", "5E", "4E"], - fling: ["7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M"], - furyattack: ["7L25", "6L25", "5L25", "4L25"], - grassknot: ["7M", "6M", "5M", "4M"], - growl: ["7L4", "6L4", "6S4", "5L4", "5S0", "5S3", "4L4"], + furyattack: ["9L25", "7L25", "6L25", "5L25", "4L25"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L4", "7L4", "6L4", "6S4", "5L4", "5S0", "5S3", "4L4"], hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - hydropump: ["7L43", "7E", "7S5", "6L43", "6E", "5L43", "5E", "5S1", "4L43", "4E"], - icebeam: ["7M", "6M", "5M", "4M"], - icywind: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], - mist: ["7L36", "6L36", "5L36", "4L36"], + hydropump: ["9M", "9L43", "7L43", "7E", "7S5", "6L43", "6E", "5L43", "5E", "5S1", "4L43", "4E"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icespinner: ["9M"], + icywind: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + liquidation: ["9M"], + mist: ["9L36", "7L36", "6L36", "5L36", "4L36"], mudslap: ["7E", "6E", "5E", "4T", "4E"], mudsport: ["7E", "6E", "5E", "4E"], naturalgift: ["4M"], - peck: ["7L15", "6L15", "5L15", "5S1", "5S2", "4L15"], + peck: ["9L15", "7L15", "6L15", "5L15", "5S1", "5S2", "4L15"], pluck: ["5M", "4M"], - pound: ["7L1", "6L1", "6S4", "5L1", "5S0", "5S3", "4L1"], - powertrip: ["7E"], - protect: ["7M", "6M", "5M", "4M"], + pound: ["9L1", "9S6", "7L1", "6L1", "6S4", "5L1", "5S0", "5S3", "4L1"], + powertrip: ["9E", "7E"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], quash: ["7M", "6M", "5M"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "6S4", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + roost: ["9E"], round: ["7M", "6M", "5M", "5S2"], scald: ["7M", "6M", "5M"], secretpower: ["6M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], sing: ["5S2"], - sleeptalk: ["7M", "6M", "5T", "4M"], - snore: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + snowscape: ["9M"], stealthrock: ["7T", "6T", "5T", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - supersonic: ["7E", "6E", "5E", "4E"], - surf: ["7M", "6M", "5M", "4M"], - swagger: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9E", "7E", "6E", "5E", "4E"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L22", "7M", "6M", "5M", "4M"], + swift: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], - waterfall: ["7M", "6M", "5M", "4M"], - waterpledge: ["7T", "6T", "5T"], - waterpulse: ["7T", "6T", "4M"], + tripleaxel: ["9M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L8"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M"], watersport: ["7L11", "6L11", "5L11", "5S1", "4L11"], - whirlpool: ["7L32", "7S5", "6L32", "5L32", "4M", "4L32"], + weatherball: ["9M"], + whirlpool: ["9M", "9L32", "7L32", "7S5", "6L32", "5L32", "4M", "4L32"], workup: ["7M"], - yawn: ["7E", "6E", "5E", "4E"], + yawn: ["9E", "7E", "6E", "5E", "4E"], }, eventData: [ {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "growl", "bubble"]}, @@ -45282,160 +47419,210 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "growl", "bubble", "featherdance"]}, {generation: 6, level: 7, moves: ["pound", "growl", "return"], pokeball: "cherishball"}, {generation: 7, level: 30, gender: "M", nature: "Hardy", moves: ["hydropump", "bubblebeam", "whirlpool", "drillpeck"], pokeball: "pokeball"}, + {generation: 9, level: 1, moves: ["pound"], pokeball: "pokeball"}, ], }, prinplup: { learnset: { - aerialace: ["7M", "6M", "5M", "4M"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], attract: ["7M", "6M", "5M", "4M"], bide: ["7L24", "6L24", "5L24", "4L19"], - blizzard: ["7M", "6M", "5M", "4M"], - brickbreak: ["7M", "6M", "5M", "4M"], - brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["9L33", "7L33", "6L33", "5L33", "4M", "4L33"], bubble: ["7L1", "6L8", "5L8", "4L8"], - bubblebeam: ["7L19", "6L19", "5L19", "4L19"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19", "4L19"], captivate: ["4M"], + charm: ["9M"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M"], defog: ["7T", "4M"], dig: ["6M", "5M", "4M"], + disarmingvoice: ["9M"], dive: ["6M", "5M", "4T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - drillpeck: ["7L46", "6L46", "5L46", "4L46"], + drillpeck: ["9L46", "7L46", "6L46", "5L46", "4L46"], echoedvoice: ["7M", "6M", "5M"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M"], - furyattack: ["7L28", "6L28", "5L28", "4L28"], - grassknot: ["7M", "6M", "5M", "4M"], - growl: ["7L1", "6L1", "5L1", "4L1"], + furyattack: ["9L28", "7L28", "6L28", "5L28", "4L28"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], honeclaws: ["6M", "5M"], - hydropump: ["7L50", "6L50", "5L51", "4L51"], - icebeam: ["7M", "6M", "5M", "4M"], - icywind: ["7T", "6T", "5T", "4T"], - metalclaw: ["7L1", "6L16", "5L16", "4L16"], - mist: ["7L42", "6L42", "5L42", "4L42"], + hydropump: ["9M", "9L50", "7L50", "6L50", "5L51", "4L51"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + liquidation: ["9M"], + metalclaw: ["9M", "9L0", "7L1", "6L16", "5L16", "4L16"], + mist: ["9L42", "7L42", "6L42", "5L42", "4L42"], mudslap: ["4T"], naturalgift: ["4M"], - peck: ["7L15", "6L15", "5L15", "4L15"], + peck: ["9L15", "7L15", "6L15", "5L15", "4L15"], pluck: ["5M", "4M"], - protect: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], quash: ["7M", "6M", "5M"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], scald: ["7M", "6M", "5M"], secretpower: ["6M", "4M"], - shadowclaw: ["7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], + snowscape: ["9M"], stealthrock: ["7T", "6T", "5T", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - surf: ["7M", "6M", "5M", "4M"], - swagger: ["7M", "6M", "5M", "4M"], - tackle: ["7L1", "6L1", "5L1", "4L1"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L24", "7M", "6M", "5M", "4M"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], - waterfall: ["7M", "6M", "5M", "4M"], - waterpledge: ["7T", "6T", "5T"], - waterpulse: ["7T", "6T", "4M"], + tripleaxel: ["9M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M"], watersport: ["7L11", "6L11", "5L11", "4L11"], - whirlpool: ["7L37", "6L37", "5L37", "4M", "4L37"], + weatherball: ["9M"], + whirlpool: ["9M", "9L37", "7L37", "6L37", "5L37", "4M", "4L37"], workup: ["7M"], }, }, empoleon: { learnset: { - aerialace: ["7M", "6M", "5M", "4M"], - aquajet: ["7L1", "6L36", "5L36", "5S0", "4L36"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aquajet: ["9L0", "7L1", "6L36", "5L36", "5S0", "4L36"], attract: ["7M", "6M", "5M", "4M"], - avalanche: ["4M"], - blizzard: ["7M", "6M", "5M", "4M"], - brickbreak: ["7M", "6M", "5M", "4M"], - brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + avalanche: ["9M", "4M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["9L33", "7L33", "6L33", "5L33", "4M", "4L33"], bubble: ["7L1", "6L1", "5L1", "4L1"], - bubblebeam: ["7L19", "6L19", "5L19", "4L19"], - bulldoze: ["7M", "6M", "5M"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19", "4L19"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], + charm: ["9M"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M", "4M"], defog: ["7T", "4M"], dig: ["6M", "5M", "4M"], + disarmingvoice: ["9M"], dive: ["6M", "5M", "4T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - drillpeck: ["7L52", "6L52", "5L52", "4L52"], - earthquake: ["7M", "6M", "5M", "4M"], + drillpeck: ["9L52", "7L52", "6L52", "5L52", "4L52"], + dualwingbeat: ["9M"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - flashcannon: ["7M", "6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M"], + featherdance: ["9M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M"], - furyattack: ["7L28", "6L28", "5L28", "4L28"], + furyattack: ["9L28", "7L28", "6L28", "5L28", "4L28"], furycutter: ["4T"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "5S0", "4M"], - growl: ["7L1", "6L1", "5L1", "4L1"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "5S0", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], headbutt: ["4T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], honeclaws: ["6M", "5M"], - hydrocannon: ["7T", "6T", "5T", "4T"], - hydropump: ["7L59", "6L59", "5L59", "5S0", "4L59"], - hyperbeam: ["7M", "6M", "5M", "4M"], - icebeam: ["7M", "6M", "5M", "5S0", "4M"], - icywind: ["7T", "6T", "5T", "4T"], - irondefense: ["7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], + hydrocannon: ["9M", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L59", "7L59", "6L59", "5L59", "5S0", "4L59"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "5S0", "4M"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], - liquidation: ["7T"], - metalclaw: ["7L1", "6L16", "5L16", "4L16"], - mist: ["7L46", "6L46", "5L46", "4L46"], - mudslap: ["4T"], + lashout: ["9M"], + liquidation: ["9M", "7T"], + metalclaw: ["9M", "9L1", "7L1", "6L16", "5L16", "4L16"], + metalsound: ["9M"], + mist: ["9L46", "7L46", "6L46", "5L46", "4L46"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], - peck: ["7L15", "6L15", "5L15", "4L15"], + peck: ["9L15", "7L15", "6L15", "5L15", "4L15"], pluck: ["5M", "4M"], - protect: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], quash: ["7M", "6M", "5M"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockclimb: ["4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], scald: ["7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M"], - shadowclaw: ["7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "6T", "5T", "4M"], + snowscape: ["9M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], steelwing: ["7M", "6M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - surf: ["7M", "6M", "5M", "4M"], - swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L19"], - swordsdance: ["7M", "7L11", "6M", "6L11", "5M", "5L11", "4M", "4L11"], - tackle: ["7L1", "6L1", "5L1", "4L1"], - throatchop: ["7T"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L24", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L19"], + swift: ["9M"], + swordsdance: ["9M", "9L11", "7M", "7L11", "6M", "6L11", "5M", "5L11", "4M", "4L11"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9M", "7T"], toxic: ["7M", "6M", "5M", "4M"], - waterfall: ["7M", "6M", "5M", "4M"], - waterpledge: ["7T", "6T", "5T"], - waterpulse: ["7T", "6T", "4M"], - whirlpool: ["7L39", "6L39", "5L39", "4M", "4L39"], + tripleaxel: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M"], + wavecrash: ["9L66"], + weatherball: ["9M"], + whirlpool: ["9M", "9L39", "7L39", "6L39", "5L39", "4M", "4L39"], workup: ["7M"], }, eventData: [ @@ -45456,13 +47643,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], defog: ["7T", "4M"], detect: ["7E", "6E", "5E"], - doubleedge: ["9E", "7E", "6E", "5E", "4E"], + doubleedge: ["9M", "9E", "7E", "6E", "5E", "4E"], doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + dualwingbeat: ["9M"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["9L17", "7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17"], + endeavor: ["9M", "9L17", "7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17"], endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], - featherdance: ["9E", "7E", "6E", "5E", "4E"], + featherdance: ["9M", "9E", "7E", "6E", "5E", "4E"], finalgambit: ["9L41", "7L41", "6L41", "5L41"], fly: ["9M", "7M", "6M", "5M", "4M"], foresight: ["7E", "6E", "5E", "4E"], @@ -45503,7 +47691,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], twister: ["4T"], - uproar: ["9E", "7T", "7E", "6T", "6E", "5E"], + uproar: ["9M", "9E", "7T", "7E", "6T", "6E", "5E"], uturn: ["9M", "7M", "6M", "5M", "4M"], whirlwind: ["9L21", "7L21", "6L21", "5L21", "4L21"], wingattack: ["9L9", "7L9", "6L9", "5L9", "4L9"], @@ -45525,12 +47713,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], confide: ["7M", "6M"], defog: ["7T", "4M"], + doubleedge: ["9M"], doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + dualwingbeat: ["9M"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], + endeavor: ["9M", "9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], - featherdance: ["5D"], + featherdance: ["9M", "5D"], finalgambit: ["9L48", "7L48", "6L48", "5L48"], fly: ["9M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], @@ -45566,7 +47756,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], twister: ["4T"], - uproar: ["7T", "6T"], + uproar: ["9M", "7T", "6T"], uturn: ["9M", "7M", "6M", "5M", "4M"], whirlwind: ["9L23", "7L23", "6L23", "5L23", "4L23"], wingattack: ["9L9", "7L9", "6L9", "5L9", "5D", "4L9"], @@ -45589,11 +47779,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "9L0", "7L1", "6L34", "5L34", "4L34"], confide: ["7M", "6M"], defog: ["7T", "4M"], + doubleedge: ["9M"], doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + dualwingbeat: ["9M"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], + endeavor: ["9M", "9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["9M"], finalgambit: ["9L57", "7L57", "6L57", "5L57"], fly: ["9M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], @@ -45634,7 +47827,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], twister: ["4T"], - uproar: ["7T", "6T"], + uproar: ["9M", "7T", "6T"], uturn: ["9M", "7M", "6M", "5M", "4M"], whirlwind: ["9L23", "7L23", "6L23", "5L23", "4L23"], wingattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], @@ -45808,10 +48001,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { kricketot: { learnset: { bide: ["7L1", "6L1", "5L1", "4L1"], - bugbite: ["9L16", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16"], - endeavor: ["7T", "6T", "5T", "5D", "4T"], + bugbite: ["9M", "9L16", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16"], + endeavor: ["9M", "7T", "6T", "5T", "5D", "4T"], growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + lunge: ["9M"], mudslap: ["4T"], + skittersmack: ["9M"], snore: ["7T", "6T", "5T", "4T"], stringshot: ["4T"], strugglebug: ["9M", "9L6", "7L6", "6M", "6L6", "5L6", "5D"], @@ -45828,14 +48023,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M"], bide: ["7L1", "6L1", "5L1", "4L1"], brickbreak: ["9M", "7M", "6M", "5M", "4M"], - bugbite: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], bugbuzz: ["9M", "9L46", "7L46", "6L46", "5L46", "4L34"], captivate: ["4M"], confide: ["7M", "6M"], cut: ["6M", "5M", "4M"], doubleteam: ["7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], falseswipe: ["9M", "7M", "6M", "5M", "4M"], @@ -45854,9 +48049,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "7M", "6M", "5M", "4M"], hypervoice: ["9M", "7T", "6T", "5T"], infestation: ["7M", "6M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], leechlife: ["9M", "7M", "6L14", "5L14", "4L14"], + lunge: ["9M"], mudslap: ["4T"], naturalgift: ["4M"], nightslash: ["9L42", "7L42", "6L42", "5L42", "4L42"], @@ -45873,6 +48069,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M"], silverwind: ["4M"], sing: ["9L18", "7L18", "6L18", "5L18", "4L18"], + skittersmack: ["9M"], slash: ["9L26", "7L26", "6L26", "5L26", "4L26"], sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], @@ -45888,10 +48085,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M", "9L38", "7M", "7L38", "6M", "6L38", "5M", "5L38", "4M", "4L38"], terablast: ["9M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], xscissor: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L30", "4M", "4L26"], }, }, @@ -45901,17 +48098,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { babydolleyes: ["9E", "8E", "7L11", "6L11"], bite: ["9L12", "8L12", "7L17", "6L17", "5L17", "4L13"], captivate: ["4M"], - charge: ["9L8", "8L8", "7L9", "6L9", "5L9", "5D", "4L9"], + charge: ["9M", "9L8", "8L8", "7L9", "6L9", "5L9", "5D", "4L9"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], crunch: ["9M", "9L36", "8M", "8L36", "7L33", "6L33", "5L33", "4L29"], discharge: ["9L40", "8L40", "7L41", "6L41", "5L41", "4L41"], + doubleedge: ["9M"], doublekick: ["9E", "8E", "7E", "6E", "5E"], doubleteam: ["7M", "6M", "5M", "4M"], eerieimpulse: ["9M", "8M", "7E", "6E"], electricterrain: ["9M"], electroball: ["9M", "8M"], + electroweb: ["9M"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], faketears: ["9M", "8M", "7E", "6E"], @@ -45939,7 +48138,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], risingvoltage: ["8T"], - roar: ["9L20", "8L20", "7M", "7L21", "6M", "6L21", "5M", "5L21", "4M", "4L21"], + roar: ["9M", "9L20", "8L20", "7M", "7L21", "6M", "6L21", "5M", "5L21", "4M", "4L21"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "9L28", "8M", "8L28", "7L37", "6L37", "5L37", "4L37"], secretpower: ["6M", "4M"], @@ -45974,16 +48173,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M", "4M"], bite: ["9L12", "8L12", "7L18", "6L18", "5L18", "4L13"], captivate: ["4M"], - charge: ["9L1", "8L1", "7L9", "6L9", "5L9", "4L9"], + charge: ["9M", "9L1", "8L1", "7L9", "6L9", "5L9", "4L9"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], crunch: ["9M", "9L48", "8M", "8L48", "7L38", "6L38", "5L38", "4L33"], discharge: ["9L54", "8L54", "7L48", "6L48", "5L48", "4L48"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], eerieimpulse: ["9M", "8M"], electricterrain: ["9M"], electroball: ["9M", "8M"], + electroweb: ["9M"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], faketears: ["9M", "8M"], @@ -46008,7 +48209,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], risingvoltage: ["8T"], - roar: ["9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], + roar: ["9M", "9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "9L36", "8M", "8L36", "7L43", "6L43", "5L43", "4L43"], secretpower: ["6M", "4M"], @@ -46045,16 +48246,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L12", "8L12", "7L18", "6L18", "5L18", "4L13"], bodyslam: ["9M"], captivate: ["4M"], - charge: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + charge: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], crunch: ["9M", "9L56", "8M", "8L56", "7L42", "6L42", "5L42", "4L35"], discharge: ["9L64", "8L64", "7L56", "6L56", "5L56", "4L56"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], eerieimpulse: ["9M", "8M"], electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], electroball: ["9M", "8M"], + electroweb: ["9M"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], faketears: ["9M", "8M"], @@ -46082,7 +48285,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], risingvoltage: ["8T"], - roar: ["9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], + roar: ["9M", "9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "9L40", "8M", "8L40", "7L49", "6L49", "5L49", "4L49"], secretpower: ["6M", "4M"], @@ -46095,6 +48298,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["6M", "5M", "4M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], sunnyday: ["9M"], + supercellslam: ["9M"], superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["9L72", "8L72", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], swift: ["9M", "8M", "4T"], @@ -46102,7 +48306,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], thunderfang: ["9M", "8M", "7L35", "6L35", "5L35", "4L35"], @@ -46116,85 +48320,91 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cranidos: { learnset: { - ancientpower: ["7L33", "6L33", "5L33", "4T", "4L28"], - assurance: ["7L24", "6L24", "5L24", "4L24"], + ancientpower: ["9L33", "7L33", "6L33", "5L33", "4T", "4L28"], + assurance: ["9L24", "7L24", "6L24", "5L24", "4L24"], attract: ["7M", "6M", "5M", "4M"], - blizzard: ["7M", "6M", "5M", "4M"], - bulldoze: ["7M", "6M", "5M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], chipaway: ["7L28", "6L28", "5L28"], confide: ["7M", "6M"], - crunch: ["7E", "6E", "5E", "5S0", "4E"], - curse: ["7E", "6E", "5E", "4E"], - dig: ["6M", "5M", "4M"], - doubleedge: ["7E", "6E", "5E", "4E"], + crunch: ["9M", "7E", "6E", "5E", "5S0", "4E"], + curse: ["9M", "7E", "6E", "5E", "4E"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], - dragonpulse: ["7T", "6T", "5T", "4M"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["7M", "6M", "5M", "4M"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - fireblast: ["7M", "6M", "5M", "4M"], - firepunch: ["7T", "6T", "5T", "5D", "4T"], - flamethrower: ["7M", "6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], - focusenergy: ["7L6", "6L6", "5L6", "4L6"], + dragoncheer: ["9M"], + dragonpulse: ["9M", "7T", "6T", "5T", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "7T", "6T", "5T", "5D", "4T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L6", "7L6", "6L6", "5L6", "4L6"], frustration: ["7M", "6M", "5M", "4M"], - hammerarm: ["7E", "6E", "5E", "4E"], - headbutt: ["7L1", "6L1", "5L1", "5D", "5S0", "4T", "4L1"], - headsmash: ["7L46", "6L46", "5L46", "4L43"], + hammerarm: ["9E", "7E", "6E", "5E", "4E"], + headbutt: ["9L1", "7L1", "6L1", "5L1", "5D", "5S0", "4T", "4L1"], + headsmash: ["9L46", "7L46", "6L46", "5L46", "4L43"], hiddenpower: ["7M", "6M", "5M", "4M"], - icebeam: ["7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], incinerate: ["6M", "5M"], - ironhead: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T"], + ironhead: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T"], irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], - leer: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], - mudslap: ["4T"], + leer: ["9L1", "7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], payback: ["7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], pursuit: ["7L10", "6L10", "5L10", "5S0", "4L10"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "6M", "5M", "4M"], - rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["9L10", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], - sandstorm: ["7M", "6M", "5M", "4M"], - scaryface: ["7L19", "6L19", "5L19", "4L19"], - screech: ["7L42", "6L42", "5L42", "4L37"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + scaryface: ["9M", "9L19", "7L19", "6L19", "5L19", "4L19"], + screech: ["9L42", "7L42", "6L42", "5L42", "4L37"], secretpower: ["6M", "4M"], shockwave: ["7T", "6T", "4M"], - slam: ["7E", "6E", "5E", "4E"], - sleeptalk: ["7M", "6M", "5T", "4M"], - smackdown: ["7M", "6M", "5M"], + slam: ["9L28", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "6T", "5T", "4T"], spite: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "6T", "5T", "4M"], - stomp: ["7E", "6E", "5E", "4E"], - stoneedge: ["7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stomp: ["9E", "7E", "6E", "5E", "4E"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], superpower: ["7T", "6T", "5T", "4T"], swagger: ["7M", "6M", "5M", "4M"], - swordsdance: ["7M", "6M", "5M", "4M"], - takedown: ["7L15", "6L15", "5L15", "5S0", "4L15"], - thief: ["7M", "6M", "5M", "4M"], - thrash: ["7E", "6E", "5E", "4E"], - thunder: ["7M", "6M", "5M", "4M"], - thunderbolt: ["7M", "6M", "5M", "4M"], - thunderpunch: ["7T", "6T", "5T", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M", "9L15", "7L15", "6L15", "5L15", "5S0", "4L15"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + thrash: ["9E", "7E", "6E", "5E", "4E"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["7T", "6T", "5T", "4T"], - whirlwind: ["7E", "6E", "5E", "4E"], - zenheadbutt: ["7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L33"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + whirlwind: ["9E", "7E", "6E", "5E", "4E"], + zenheadbutt: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L33"], }, eventData: [ {generation: 5, level: 15, gender: "M", moves: ["pursuit", "takedown", "crunch", "headbutt"], pokeball: "cherishball"}, @@ -46202,163 +48412,185 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, rampardos: { learnset: { - ancientpower: ["7L36", "6L36", "5L36", "4T", "4L28"], - assurance: ["7L24", "6L24", "5L24", "4L24"], + ancientpower: ["9L36", "7L36", "6L36", "5L36", "4T", "4L28"], + assurance: ["9L24", "7L24", "6L24", "5L24", "4L24"], attract: ["7M", "6M", "5M", "4M"], - avalanche: ["4M"], - blizzard: ["7M", "6M", "5M", "4M"], - brickbreak: ["7M", "6M", "5M", "4M"], - bulldoze: ["7M", "6M", "5M"], + avalanche: ["9M", "4M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], chipaway: ["7L28", "6L28", "5L28"], confide: ["7M", "6M"], + crunch: ["9M"], + curse: ["9M"], cut: ["6M", "5M", "4M"], - dig: ["6M", "5M", "4M"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - dragonpulse: ["7T", "6T", "5T", "4M"], - dragontail: ["7M", "6M", "5M"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["7M", "6M", "5M", "4M"], - endeavor: ["7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - fireblast: ["7M", "6M", "5M", "4M"], - firepunch: ["7T", "6T", "5T", "4T"], - flamethrower: ["7M", "6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focusenergy: ["7L1", "6L6", "5L6", "4L6"], - focuspunch: ["7T", "6T", "4M"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endeavor: ["9M", "9L0", "7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L6", "5L6", "4L6"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - headbutt: ["7L1", "6L1", "5L1", "4T", "4L1"], - headsmash: ["7L58", "6L58", "5L58", "4L52"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["9L1", "7L1", "6L1", "5L1", "4T", "4L1"], + headsmash: ["9L58", "7L58", "6L58", "5L58", "4L52"], + heavyslam: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - icebeam: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], incinerate: ["6M", "5M"], - ironhead: ["7T", "6T", "5T", "4T"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], irontail: ["7T", "6T", "5T", "4M"], laserfocus: ["7T"], - leer: ["7L1", "6L1", "5L1", "4L1"], - mudslap: ["4T"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], - outrage: ["7T", "6T", "5T", "4T"], + outrage: ["9M", "7T", "6T", "5T", "4T"], painsplit: ["7T", "6T", "5T", "4T"], payback: ["7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], pursuit: ["7L1", "6L10", "5L10", "4L10"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "6M", "5M", "4M"], - rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["9L10", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], - sandstorm: ["7M", "6M", "5M", "4M"], - scaryface: ["7L19", "6L19", "5L19", "4L19"], - screech: ["7L51", "6L51", "5L51", "4L43"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + scaryface: ["9M", "9L19", "7L19", "6L19", "5L19", "4L19"], + screech: ["9L51", "7L51", "6L51", "5L51", "4L43"], secretpower: ["6M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], - smackdown: ["7M", "6M", "5M"], + slam: ["9L28"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "6T", "5T", "4T"], spite: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "6T", "5T", "4M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + supercellslam: ["9M"], superpower: ["7T", "6T", "5T", "4T"], - surf: ["7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swordsdance: ["7M", "6M", "5M", "4M"], - takedown: ["7L15", "6L15", "5L15", "4L15"], - thief: ["7M", "6M", "5M", "4M"], - thunder: ["7M", "6M", "5M", "4M"], - thunderbolt: ["7M", "6M", "5M", "4M"], - thunderpunch: ["7T", "6T", "5T", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M", "9L15", "7L15", "6L15", "5L15", "4L15"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], toxic: ["7M", "6M", "5M", "4M"], - uproar: ["7T", "6T", "5T", "4T"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], whirlpool: ["4M"], - zenheadbutt: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], + zenheadbutt: ["9M", "9L43", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], }, }, shieldon: { learnset: { - ancientpower: ["7L28", "6L28", "5L28", "4T", "4L28"], + ancientpower: ["9L28", "7L28", "6L28", "5L28", "4T", "4L28"], attract: ["7M", "6M", "5M", "4M"], - blizzard: ["7M", "6M", "5M", "4M"], - bodyslam: ["7E", "6E", "5E", "5S0", "4E"], - bulldoze: ["7M", "6M", "5M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "7E", "6E", "5E", "5S0", "4E"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - counter: ["7E", "6E", "5E", "5D", "4E"], - curse: ["7E", "6E", "5E", "4E"], - dig: ["6M", "5M", "4M"], - doubleedge: ["7E", "6E", "5E", "4E"], + counter: ["9E", "7E", "6E", "5E", "5D", "4E"], + curse: ["9M", "7E", "6E", "5E", "4E"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["7M", "6M", "5M", "4M"], - endure: ["7L33", "6L33", "5L33", "4M", "4L33"], - facade: ["7M", "6M", "5M", "4M"], - fireblast: ["7M", "6M", "5M", "4M"], - fissure: ["7E", "6E", "5E", "5D", "4E"], - flamethrower: ["7M", "6M", "5M", "4M"], - flashcannon: ["7M", "6M", "5M", "4M"], - focusenergy: ["7E", "6E", "5E", "4E"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endure: ["9M", "9L33", "7L33", "6L33", "5L33", "4M", "4L33"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + fissure: ["9E", "7E", "6E", "5E", "5D", "4E"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9E", "7E", "6E", "5E", "4E"], frustration: ["7M", "6M", "5M", "4M"], - guardsplit: ["7E", "6E"], - headbutt: ["7E", "6E", "5E", "4T", "4E"], - heavyslam: ["7L46", "6L46", "5L46"], + guardsplit: ["9E", "7E", "6E"], + hardpress: ["9M"], + headbutt: ["9E", "7E", "6E", "5E", "4T", "4E"], + heavyslam: ["9M", "9L46", "7L46", "6L46", "5L46"], hiddenpower: ["7M", "6M", "5M", "4M"], - icebeam: ["7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], incinerate: ["6M", "5M"], - irondefense: ["7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], - ironhead: ["7T", "7L42", "6T", "6L42", "5T", "5L42", "4T", "4L43"], + irondefense: ["9M", "9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], + ironhead: ["9M", "9L42", "7T", "7L42", "6T", "6L42", "5T", "5L42", "4T", "4L43"], irontail: ["7T", "6T", "5T", "4M"], magnetrise: ["7T", "6T", "5T", "4T"], - metalburst: ["7L37", "6L37", "5L37", "4L37"], - metalsound: ["7L10", "6L10", "5L10", "5S0", "4L10"], - mudslap: ["4T"], + metalburst: ["9L37", "7L37", "6L37", "5L37", "4L37"], + metalsound: ["9M", "9L10", "7L10", "6L10", "5L10", "5S0", "4L10"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], - protect: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "5D", "5S0", "4M", "4L1"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + powergem: ["9M"], + protect: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "5D", "5S0", "4M", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], - rockblast: ["7E", "6E", "5E", "4E"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M", "7E", "6E", "5E", "4E"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], - sandstorm: ["7M", "6M", "5M", "4M"], - scaryface: ["7E", "6E", "5E", "4E"], - screech: ["7E", "6E", "5E", "4E"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + scaryface: ["9M", "7E", "6E", "5E", "4E"], + scorchingsands: ["9M"], + screech: ["9E", "7E", "6E", "5E", "4E"], secretpower: ["6M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], - stoneedge: ["7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], - swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], - tackle: ["7L1", "6L1", "5L1", "4L1"], - takedown: ["7L15", "6L15", "5L15", "5S0", "4L15"], - taunt: ["7M", "7L6", "6M", "6L6", "5M", "5L6", "4M", "4L6"], - thunder: ["7M", "6M", "5M", "4M"], - thunderbolt: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L24", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L15", "7L15", "6L15", "5L15", "5S0", "4L15"], + taunt: ["9M", "9L6", "7M", "7L6", "6M", "6L6", "5M", "5L6", "4M", "4L6"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], wideguard: ["7E", "6E", "5E"], }, eventData: [ @@ -46367,71 +48599,89 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, bastiodon: { learnset: { - ancientpower: ["7L28", "6L28", "5L28", "4T", "4L28"], + ancientpower: ["9L28", "7L28", "6L28", "5L28", "4T", "4L28"], attract: ["7M", "6M", "5M", "4M"], - avalanche: ["4M"], - blizzard: ["7M", "6M", "5M", "4M"], - block: ["7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], - bulldoze: ["7M", "6M", "5M"], + avalanche: ["9M", "4M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + block: ["9L0", "7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - dig: ["6M", "5M", "4M"], + curse: ["9M"], + dig: ["9M", "6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "6T", "5T", "4T"], - earthquake: ["7M", "6M", "5M", "4M"], - endure: ["7L36", "6L36", "5L36", "4M", "4L36"], - facade: ["7M", "6M", "5M", "4M"], - fireblast: ["7M", "6M", "5M", "4M"], - flamethrower: ["7M", "6M", "5M", "4M"], - flashcannon: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endure: ["9M", "9L36", "7L36", "6L36", "5L36", "4M", "4L36"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + foulplay: ["9M"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + hardpress: ["9M"], headbutt: ["4T"], - heavyslam: ["7L58", "6L58", "5L58"], + heavyslam: ["9M", "9L58", "7L58", "6L58", "5L58"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - icebeam: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], incinerate: ["6M", "5M"], - irondefense: ["7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], - ironhead: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4T", "4L52"], + irondefense: ["9M", "9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], + ironhead: ["9M", "9L51", "7T", "7L51", "6T", "6L51", "5T", "5L51", "4T", "4L52"], irontail: ["7T", "6T", "5T", "4M"], magiccoat: ["7T", "6T", "5T", "4T"], magnetrise: ["7T", "6T", "5T", "4T"], - metalburst: ["7L43", "6L43", "5L43", "4L43"], - metalsound: ["7L1", "6L1", "5L1", "4L1"], - mudslap: ["4T"], + metalburst: ["9L43", "7L43", "6L43", "5L43", "4L43"], + metalsound: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + meteorbeam: ["9M"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], - outrage: ["7T", "6T", "5T", "4T"], - protect: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + outrage: ["9M", "7T", "6T", "5T", "4T"], + powergem: ["9M"], + protect: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + reflect: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], - sandstorm: ["7M", "6M", "5M", "4M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], secretpower: ["6M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["7T", "6T", "5T", "4T"], - stealthrock: ["7T", "6T", "5T", "4M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - sunnyday: ["7M", "6M", "5M", "4M"], - swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], - tackle: ["7L1", "6L1", "5L1", "4L1"], - takedown: ["7L15", "6L15", "5L15", "4L15"], - taunt: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - thunder: ["7M", "6M", "5M", "4M"], - thunderbolt: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L24", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L15", "7L15", "6L15", "5L15", "4L15"], + taunt: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + wideguard: ["9L1"], }, }, burmy: { @@ -46707,13 +48957,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { combee: { learnset: { aircutter: ["5D", "4T"], - bugbite: ["9L1", "8L1", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], bugbuzz: ["9M", "8M", "7L29", "6L29", "5L29"], dualwingbeat: ["8T"], - endeavor: ["7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + lunge: ["9M"], mudslap: ["4T"], ominouswind: ["4T"], + skittersmack: ["9M"], sleeptalk: ["9M"], snore: ["8M", "7T", "6T", "5T", "4T"], stringshot: ["4T"], @@ -46737,27 +48989,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attackorder: ["9L40", "8L40", "7L45", "6L45", "5L37", "4L37"], attract: ["8M", "7M", "6M", "5M", "4M"], beatup: ["8M"], - bugbite: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + bugbite: ["9M", "9L1", "8L1", "7T", "6T", "5T", "4T"], bugbuzz: ["9M", "8M"], captivate: ["7L41", "6L41", "5L33", "4M", "4L33"], confide: ["7M", "6M"], - confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L7", "4L7"], + confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4L7"], crosspoison: ["8M"], cut: ["6M", "5M", "4M"], defendorder: ["9L40", "8L40", "7L17", "6L17", "5L13", "4L13"], defog: ["7T", "4M"], destinybond: ["9L44", "8L44", "7L1", "6L1", "5L43", "4L43"], doubleteam: ["7M", "6M", "5M", "4M"], - dualwingbeat: ["8T"], - endeavor: ["7T", "6T", "5T", "4T"], + dualwingbeat: ["9M", "8T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], fellstinger: ["9L12", "8L12", "7L1", "6L1"], flash: ["6M", "5M", "4M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - furycutter: ["9L4", "8L4", "7L5", "6L5", "5L9", "4T", "4L9"], - furyswipes: ["9L16", "8L16", "7L13", "6L13", "5L19", "4L19"], + furycutter: ["9L4", "8L4", "7L5", "6L5", "5L5", "4T", "4L9"], + furyswipes: ["9L16", "8L16", "7L13", "6L13", "5L13", "4L19"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], healorder: ["7L29", "6L29", "5L25", "4L25"], @@ -46769,16 +49021,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], infestation: ["7M", "6M"], laserfocus: ["7T"], + lunge: ["9M"], mudslap: ["4T"], naturalgift: ["4M"], ominouswind: ["4T"], pinmissile: ["8M"], - poisonsting: ["9L1", "8L1", "7L1", "6L1", "5L3", "4L3"], + poisonsting: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L3"], pollenpuff: ["9M"], pounce: ["9M"], powergem: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "5L21", "4L21"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], - pursuit: ["7L9", "6L9", "5L15", "4L15"], + psychicnoise: ["9M"], + pursuit: ["7L9", "6L9", "5L9", "4L15"], quash: ["7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -46792,11 +49046,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], silverwind: ["4M"], - slash: ["9L0", "8L0", "7L1", "6L21", "5L31", "4L31"], + skittersmack: ["9M"], + slash: ["9L0", "8L0", "7L1", "6L21", "5L21", "4L31"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], spikes: ["9M"], + spite: ["9M"], stringshot: ["4T"], strugglebug: ["9M", "9L1", "8L1", "6M", "5M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -46809,7 +49065,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], - toxic: ["9L36", "8L36", "7M", "7L33", "6M", "6L33", "5M", "5L27", "4M", "4L27"], + toxic: ["9M", "9L36", "8L36", "7M", "7L33", "6M", "6L33", "5M", "5L27", "4M", "4L27"], toxicspikes: ["9M", "8M"], uproar: ["8M"], uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -46821,13 +49077,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { aerialace: ["9M"], agility: ["9M"], + alluringvoice: ["9M"], attract: ["7M", "6M", "5M", "4M"], babydolleyes: ["9E", "7E"], bestow: ["7E", "6E", "5E"], bide: ["7L1", "6L1", "5L1", "4L1"], bite: ["9E", "7E", "6E", "5E", "4E"], captivate: ["4M"], - charge: ["9E", "7E", "6E", "5E"], + charge: ["9M", "9E", "7E", "6E", "5E"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], charm: ["9M", "9L9", "7L9", "6L9", "5L9", "4L9"], confide: ["7M", "6M"], @@ -46841,8 +49098,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M", "9L25", "7L25", "6L25", "5L25"], - electroweb: ["7T", "6T"], + electroweb: ["9M", "7T", "6T"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M", "9L17", "7L17", "6L17", "5L17", "4M", "4L17"], facade: ["9M", "7M", "6M", "5M", "4M"], faketears: ["9M", "9E", "7E", "6E", "5E", "4E"], @@ -46887,7 +49145,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { spark: ["9L13", "7L13", "6L13", "5L13", "4L13"], substitute: ["9M", "7M", "6M", "5M", "4M"], sunnyday: ["9M"], - superfang: ["9L37", "7T", "7L37", "6T", "6L37", "6S0", "5T", "5L37", "4T", "4L33"], + superfang: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "6S0", "5T", "5L37", "4T", "4L33"], swagger: ["7M", "6M", "5M", "4M"], sweetkiss: ["9L29", "7L29", "6L29", "5L29", "4L25"], swift: ["9M", "9L21", "7L21", "6L21", "5L21", "4T", "4L21"], @@ -46903,7 +49161,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M"], toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], - uproar: ["7T", "6T", "5T", "4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], uturn: ["9M", "7M", "6M", "5M", "4M"], voltswitch: ["9M", "7M", "6M", "5M"], wildcharge: ["9M"], @@ -46917,7 +49175,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M", "9L41", "7L41", "6L41", "5L28", "4L28"], aquajet: ["9L24", "7L24", "6L24", "5L21", "4L21"], aquaring: ["9E", "7E", "6E", "5E"], - aquatail: ["9L38", "7T", "7L38", "7E", "6T", "6L38", "6E", "5T", "5L55", "5E"], + aquatail: ["9L38", "7T", "7L38", "7E", "6T", "6L38", "6E", "5T", "5L38", "5E"], attract: ["7M", "6M", "5M", "4M"], batonpass: ["9M", "9E", "7E", "6E", "5E", "4E"], bite: ["9L18"], @@ -46938,7 +49196,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], fling: ["9M"], - focuspunch: ["7T", "6T", "4M"], + flipturn: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["9E", "7E", "6E", "5E", "4E"], furyswipes: ["9E", "7E", "6E", "5E", "4E"], @@ -46966,9 +49225,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pursuit: ["7L18", "6L18", "5L10", "4L10"], quickattack: ["9L11", "7L11", "6L11", "5L3", "4L3"], raindance: ["9M", "7M", "6M", "5M", "4M"], - razorwind: ["7L35", "6L35", "5L45", "4L45"], + razorwind: ["7L35", "6L35", "5L35", "4L45"], rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], + roar: ["9M"], rocksmash: ["6M", "5M", "4M"], rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], @@ -46997,14 +49257,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterpulse: ["9M", "7T", "6T", "5D", "4M"], watersport: ["7L7", "6L7", "5L1", "5D", "4L1"], wavecrash: ["9L49"], - whirlpool: ["9L31", "7L31", "6L31", "5L36", "4M", "4L36"], + whirlpool: ["9M", "9L31", "7L31", "6L31", "5L31", "4M", "4L36"], }, }, floatzel: { learnset: { agility: ["9M", "9L51", "7L51", "6L51", "5L29", "4L29"], aquajet: ["9L24", "7L24", "6L24", "5L21", "4L21"], - aquatail: ["9L46", "7T", "7L46", "6T", "6L46", "5T", "5L62", "4T"], + aquatail: ["9L46", "7T", "7L46", "6T", "6L46", "5T", "5L46", "4T"], attract: ["7M", "6M", "5M", "4M"], batonpass: ["9M"], bite: ["9L18"], @@ -47016,17 +49276,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], chillingwater: ["9M"], confide: ["7M", "6M"], - crunch: ["9M", "9L1", "7L1", "6L1", "5L26", "4L26"], + crunch: ["9M", "9L1", "7L1", "6L1", "5L1", "4L26"], dig: ["9M", "6M", "5M", "4M"], dive: ["6M", "5M", "4T"], + doubleedge: ["9M"], doublehit: ["9L29", "7L29", "6L29", "5L29"], doubleteam: ["7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], fling: ["9M"], + flipturn: ["9M"], focusblast: ["9M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], @@ -47046,6 +49308,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lowkick: ["9M", "7T", "6T", "5T", "4T"], lowsweep: ["9M"], metronome: ["9M"], + muddywater: ["9M"], mudslap: ["9M", "4T"], naturalgift: ["4M"], payback: ["7M", "6M", "5M", "4M"], @@ -47054,10 +49317,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pursuit: ["7L18", "6L18", "5L10", "4L10"], quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], raindance: ["9M", "7M", "6M", "5M", "4M"], - razorwind: ["7L41", "6L41", "5L50", "4L50"], + razorwind: ["7L41", "6L41", "5L41", "4L50"], rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], @@ -47085,7 +49348,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterpulse: ["9M", "7T", "6T", "4M"], watersport: ["7L1", "6L1", "5L1", "4L1"], wavecrash: ["9L62"], - whirlpool: ["9L35", "7L35", "6L35", "5L39", "4M", "4L39"], + whirlpool: ["9M", "9L35", "7L35", "6L35", "5L35", "4M", "4L39"], }, encounters: [ {generation: 4, level: 22}, @@ -47229,7 +49492,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { clearsmog: ["9E", "8E", "7E", "6E", "5E"], confide: ["7M", "6M"], counter: ["9E", "8E", "7E", "6E", "5E", "4E"], - curse: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], dive: ["8M", "6M", "5M", "4T"], doubleteam: ["7M", "6M", "5M", "4M"], earthpower: ["9M", "9L35", "8M", "8L35", "7T", "6T", "5T", "4T"], @@ -47251,12 +49514,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mirrorcoat: ["9E", "8E", "7E", "6E", "5E", "4E"], mist: ["9E", "8E", "7E", "6E", "5E"], mudbomb: ["7L11", "6L11", "5L11", "4L11"], - muddywater: ["9L31", "8M", "8L31", "7L37", "6L37", "5L37", "4L37"], + muddywater: ["9M", "9L31", "8M", "8L31", "7L37", "6L37", "5L37", "4L37"], mudshot: ["9M", "8M"], mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4T", "4L1"], mudsport: ["7L2", "6L2", "5L2", "4L2"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], raindance: ["9M", "9L40", "8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], recover: ["9L10", "8L10", "7L46", "6L46", "5L46", "4L46"], @@ -47268,7 +49531,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sandstorm: ["9M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "5D", "4M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], sludge: ["9E", "8E", "7E", "6E", "5E", "4E"], snore: ["8M", "7T", "6T", "5T", "4T"], @@ -47289,7 +49552,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["9L1", "8L1"], waterpulse: ["9M", "9L15", "8L15", "7T", "7L7", "6T", "6L7", "5L7", "4M", "4L7"], - whirlpool: ["8M", "4M"], + whirlpool: ["9M", "8M", "4M"], yawn: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], }, }, @@ -47306,6 +49569,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], chillingwater: ["9M"], confide: ["7M", "6M"], + curse: ["9M"], dig: ["9M", "8M", "6M", "5M", "4M"], dive: ["8M", "6M", "5M", "4T"], doubleteam: ["7M", "6M", "5M", "4M"], @@ -47329,12 +49593,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { liquidation: ["9M"], memento: ["9L53", "8L53"], mudbomb: ["7L11", "6L11", "5L11", "4L11"], - muddywater: ["9L33", "8M", "8L33", "7L41", "6L41", "5L41", "4L41"], + muddywater: ["9M", "9L33", "8M", "8L33", "7L41", "6L41", "5L41", "4L41"], mudshot: ["9M", "8M"], mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], mudsport: ["7L1", "6L1", "5L1", "4L1"], naturalgift: ["4M"], - painsplit: ["7T", "6T", "5T", "4T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], protect: ["9M", "8M", "7M", "7S0", "6M", "5M", "4M"], raindance: ["9M", "9L46", "8M", "8L46", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], recover: ["9L1", "8L1", "7L54", "7S0", "6L54", "5L54", "4L54"], @@ -47346,13 +49610,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], - sludgewave: ["8M", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T"], snowscape: ["9M"], spikes: ["9M"], @@ -47370,8 +49634,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "8M", "7M", "6M", "5M", "4M"], watergun: ["9L1", "8L1"], waterpulse: ["9M", "9L15", "8L15", "7T", "7L1", "6T", "6L1", "5L1", "4M", "4L1"], - weatherball: ["8M"], - whirlpool: ["8M", "4M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M", "4M"], }, eventData: [ {generation: 7, level: 50, gender: "F", nature: "Modest", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["earthpower", "icebeam", "recover", "protect"], pokeball: "cherishball"}, @@ -47382,15 +49646,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, gastrodoneast: { learnset: { - earthpower: ["8S1", "8S0"], - icebeam: ["8S1", "8S0"], - protect: ["8S1", "8S0"], + earthpower: ["9S3", "9S2", "8S1", "8S0"], + icebeam: ["9S2", "8S1", "8S0"], + icywind: ["9S3"], + protect: ["9S3", "9S2", "8S1", "8S0"], surf: ["8S0"], - yawn: ["8S1"], + yawn: ["9S3", "9S2", "8S1"], }, eventData: [ {generation: 8, level: 50, gender: "F", nature: "Quiet", abilities: ["stormdrain"], ivs: {hp: 31, atk: 2, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["protect", "surf", "icebeam", "earthpower"], pokeball: "cherishball"}, {generation: 8, level: 50, gender: "F", nature: "Sassy", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["protect", "yawn", "icebeam", "earthpower"], pokeball: "cherishball"}, + {generation: 9, level: 50, gender: "M", nature: "Bold", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 8}, moves: ["protect", "yawn", "icebeam", "earthpower"], pokeball: "cherishball"}, + {generation: 9, level: 50, gender: "F", nature: "Calm", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 8}, moves: ["protect", "yawn", "icywind", "earthpower"], pokeball: "cherishball"}, ], encounters: [ {generation: 4, level: 20}, @@ -47403,7 +49670,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aircutter: ["9M", "4T"], allyswitch: ["8M", "7T"], amnesia: ["9M", "8M", "7L40", "6L40", "5L40"], - astonish: ["9L1", "8L1", "7L4", "6L4", "5L6", "4L6"], + astonish: ["9L1", "8L1", "7L4", "6L4", "5L4", "4L6"], attract: ["8M", "7M", "6M", "5M", "4M"], batonpass: ["9M", "9L36", "8M", "8L36", "7L44", "6L44", "5L38", "4L33"], bind: ["7T", "6T", "5T"], @@ -47415,6 +49682,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { clearsmog: ["9E", "8E", "7E", "6E", "5E"], confide: ["7M", "6M"], constrict: ["7L1", "6L1", "5L1", "4L1"], + curse: ["9M"], cut: ["6M", "5M", "4M"], defog: ["9E", "8E", "7T", "7E", "6E", "5E", "4M"], destinybond: ["9L32", "8L32", "7E", "6E", "5E", "4E"], @@ -47427,27 +49695,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], fly: ["9M"], - focusenergy: ["9L8", "8M", "8L8", "7L13", "6L13", "5L14", "4L14"], + focusenergy: ["9L8", "8M", "8L8", "7L13", "6L13", "5L13", "4L14"], frustration: ["7M", "6M", "5M", "4M"], - gust: ["9L4", "8L4", "7L8", "6L8", "5L11", "4L11"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], - haze: ["9E", "8E", "7E", "6E", "5E", "4E"], + gust: ["9L4", "8L4", "7L8", "6L8", "5L8", "4L11"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], helpinghand: ["9M"], hex: ["9M", "9L16", "8M", "8L16", "7L27", "6L27", "5L22"], hiddenpower: ["7M", "6M", "5M", "4M"], hypnosis: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], imprison: ["9M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], magiccoat: ["7T", "6T", "5T", "4T"], memento: ["9E", "8E", "7E", "6E", "5E", "4E"], minimize: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1"], mudslap: ["4T"], naturalgift: ["4M"], nightshade: ["9M"], - ominouswind: ["7L20", "6L20", "5L33", "4T", "4L30"], - painsplit: ["7T", "6T", "5T", "4T"], - payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L17", "4M", "4L17"], + ominouswind: ["7L20", "6L20", "5L20", "4T", "4L30"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L17"], phantomforce: ["9M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psybeam: ["9M"], @@ -47461,15 +49729,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M"], selfdestruct: ["9L29", "8M", "8L29"], - shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L43", "4M", "4L38"], + shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L38"], shockwave: ["7T", "6T", "4M"], silverwind: ["4M"], skillswap: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], spitup: ["9L24", "8L24", "7L32", "6L32", "5L30", "4L27"], - stockpile: ["9L24", "8L24", "7L25", "6L25", "5L27", "4L22"], + stockpile: ["9L24", "8L24", "7L25", "6L25", "5L25", "4L22"], storedpower: ["9M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], suckerpunch: ["4T"], @@ -47479,6 +49747,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "4T"], tailwind: ["9M", "9L40", "8L40", "7T", "7E", "6T", "6E", "5T", "4T"], telekinesis: ["7T", "5M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -47487,7 +49756,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M"], - weatherball: ["8M", "7E", "6E", "5E", "4E"], + weatherball: ["9M", "8M", "7E", "6E", "5E", "4E"], willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], }, }, @@ -47510,6 +49779,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], constrict: ["7L1", "6L1", "5L1", "4L1"], + curse: ["9M"], cut: ["6M", "5M", "4M"], defog: ["7T", "4M"], destinybond: ["9L36", "8L36"], @@ -47522,26 +49792,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M"], fling: ["9M"], fly: ["9M", "8M", "7M", "6M", "5M", "4M"], - focusenergy: ["9L1", "8M", "8L1", "7L13", "6L13", "5L14", "4L14"], + focusenergy: ["9L1", "8M", "8L1", "7L13", "6L13", "5L13", "4L14"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], - gyroball: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + haze: ["9M"], helpinghand: ["9M"], hex: ["9M", "9L16", "8M", "8L16", "7L27", "6L27", "5L22"], hiddenpower: ["7M", "6M", "5M", "4M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], imprison: ["9M", "8M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], magiccoat: ["7T", "6T", "5T", "4T"], minimize: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], mudslap: ["4T"], naturalgift: ["4M"], nightshade: ["9M"], - ominouswind: ["7L20", "6L20", "5L37", "4T", "4L32"], - painsplit: ["7T", "6T", "5T", "4T"], - payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L17", "4M", "4L17"], + ominouswind: ["7L20", "6L20", "5L20", "4T", "4L32"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L17"], phantomforce: ["9M", "9L0", "8M", "8L0", "7L1", "6L1"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psybeam: ["9M"], @@ -47555,15 +49826,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], secretpower: ["6M", "4M"], selfdestruct: ["9L31", "8M", "8L31"], - shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L51", "4M", "4L44"], + shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L44"], shockwave: ["7T", "6T", "4M"], silverwind: ["4M"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], spitup: ["9L24", "8L24", "7L34", "6L34", "5L32", "4L27"], - stockpile: ["9L24", "8L24", "7L25", "6L25", "5L27", "4L22"], + stockpile: ["9L24", "8L24", "7L25", "6L25", "5L25", "4L22"], storedpower: ["9M"], strengthsap: ["9L1", "8L1"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -47574,6 +49845,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "4T"], tailwind: ["9M", "9L48", "8L48", "7T", "6T", "5T", "4T"], telekinesis: ["7T", "5M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -47582,7 +49854,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], }, encounters: [ @@ -47961,7 +50233,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], defog: ["7T", "4M"], dig: ["9M", "8M", "6M", "5M", "4M"], - doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], endure: ["9M", "8M", "4M"], explosion: ["9L42", "8L45", "7M", "7L45", "6M", "6L49", "5M", "5L49", "4M", "4L44"], @@ -47976,7 +50248,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furycutter: ["4T"], furyswipes: ["9L12", "8L12", "7L9", "6L10", "5L10", "4L10"], gunkshot: ["9M"], - haze: ["9E", "8E", "7E", "6E", "5E", "4E"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], headbutt: ["4T"], helpinghand: ["9M"], hex: ["9M", "8M"], @@ -47984,7 +50256,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { honeclaws: ["6M", "5M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], - lashout: ["8T"], + knockoff: ["9M"], + lashout: ["9M", "8T"], leer: ["9E", "8E", "7E", "6E", "5E", "4E"], memento: ["9L33", "8L33", "7L33", "6L43", "5L43", "4L37"], mudslap: ["4T"], @@ -48002,7 +50275,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "8M", "7E", "6E", "5E", "4E"], @@ -48014,6 +50287,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9E", "8E", "7L25", "6L22", "5L22", "4L22"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + sludgewave: ["9M"], smog: ["9E", "8E", "7E", "6E", "5E", "4E"], smokescreen: ["9L6", "8L6", "7L13", "6L14", "5L14", "4L14"], snarl: ["9M", "8M", "7M", "6M", "5M"], @@ -48027,11 +50301,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailslap: ["8M"], takedown: ["9M"], taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], torment: ["7M", "6M", "5M", "4M"], - toxic: ["9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], + toxic: ["9M", "9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], toxicspikes: ["9M"], trailblaze: ["9M"], venomdrench: ["8M", "8L42", "7L37"], @@ -48046,7 +50321,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { belch: ["9L43", "8L43", "7L43", "6L56"], bite: ["9L18", "8L18", "7L21"], bodyslam: ["9M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], captivate: ["4M"], confide: ["7M", "6M"], corrosivegas: ["8T"], @@ -48055,7 +50330,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], defog: ["7T", "4M"], dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], + endeavor: ["9M"], endure: ["9M", "8M", "4M"], explosion: ["9L48", "8L53", "7M", "7L45", "6M", "6L61", "5M", "5L61", "4M", "4L52"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -48070,6 +50347,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furyswipes: ["9L12", "8L12", "7L9", "6L10", "5L10", "4L10"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], gunkshot: ["9M"], + haze: ["9M"], headbutt: ["4T"], helpinghand: ["9M"], hex: ["9M", "8M"], @@ -48078,7 +50356,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T", "4M"], - lashout: ["8T"], + knockoff: ["9M"], + lashout: ["9M", "8T"], memento: ["9L33", "8L33", "7L33", "6L51", "5L51", "4L41"], mudslap: ["4T"], nastyplot: ["9M", "8M"], @@ -48093,7 +50372,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "8M"], @@ -48105,6 +50384,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["7L25", "6L22", "5L22", "4L22"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + sludgewave: ["9M"], smokescreen: ["9L1", "8L1", "7L13", "6L14", "5L14", "4L14"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M"], @@ -48113,16 +50393,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], suckerpunch: ["9L30", "8L30", "7L39", "4T"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superfang: ["9M"], swagger: ["7M", "6M", "5M", "4M"], swift: ["9M", "8M", "4T"], tailslap: ["8M"], takedown: ["9M"], taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], torment: ["7M", "6M", "5M", "4M"], - toxic: ["9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], + toxic: ["9M", "9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], toxicspikes: ["9M"], trailblaze: ["9M"], venomdrench: ["8M", "8L48", "7L37"], @@ -48147,18 +50429,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dreameater: ["7M", "6M", "5M", "4M"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], endure: ["9M", "8M", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], extrasensory: ["9L28", "8L28", "7L39", "6L39", "5L19", "4L19"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], feintattack: ["7L21", "6L21", "5L21", "4L41"], flash: ["6M", "5M", "4M"], flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - futuresight: ["9L44", "8M", "8L44", "7L29", "6L29", "5L29", "4L37"], + futuresight: ["9M", "9L44", "8M", "8L44", "7L29", "6L29", "5L29", "4L37"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["9E", "7T", "6T", "5T", "5D", "4T"], + gravity: ["9M", "9E", "7T", "6T", "5T", "5D", "4T"], guardswap: ["8M"], - gyroball: ["9L16", "8M", "8L16", "7M", "7L35", "6M", "6L35", "5M", "5L35", "4M", "4L35"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L35", "6M", "6L35", "5M", "5L35", "4M", "4L35"], healblock: ["7L45", "6L45", "5L45", "4L52"], heavyslam: ["9M", "9L32", "8M", "8L32", "7L49", "6L49", "5L49"], helpinghand: ["9M"], @@ -48170,15 +50452,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4L26"], ironhead: ["9M"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], - metalsound: ["9L40", "8L40", "7L31", "6L31", "5L31"], + metalsound: ["9M", "9L40", "8L40", "7L31", "6L31", "5L31"], naturalgift: ["4M"], - payback: ["9L8", "8M", "8L8", "7M", "7L41", "6M", "6L41", "5M", "5L49", "4M", "4L49"], + payback: ["9L8", "8M", "8L8", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L49"], powergem: ["9M"], powerswap: ["8M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], psychicterrain: ["9M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7L15", "6L15", "5L15"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -48226,7 +50508,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["8M", "7T"], ancientpower: ["4T"], block: ["9L0", "8L0", "7T", "7L1", "6T", "6L33", "5T", "5L33", "4T", "4L33"], - bodypress: ["9M", "8M"], + bodypress: ["9M", "9S0", "8M"], bodyslam: ["9M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -48238,44 +50520,46 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dreameater: ["7M", "6M", "5M", "4M"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], endure: ["9M", "8M", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], explosion: ["7M", "6M", "5M", "4M"], extrasensory: ["9L28", "8L28", "7L42", "6L42", "5L19", "4L19"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], feintattack: ["7L21", "6L21", "5L21", "4L50"], flash: ["6M", "5M", "4M"], - flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + flashcannon: ["9M", "9S1", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - futuresight: ["9L50", "8M", "8L50", "7L29", "6L29", "5L29", "4L43"], + futuresight: ["9M", "9L50", "8M", "8L50", "7L29", "6L29", "5L29", "4L43"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], guardswap: ["8M"], - gyroball: ["9L16", "8M", "8L16", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L38"], + gyroball: ["9M", "9L16", "9S1", "8M", "8L16", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L38"], + hardpress: ["9M"], healblock: ["7L52", "6L52", "5L52", "4L67"], heavyslam: ["9M", "9L32", "8M", "8L32", "7L58", "6L58", "5L58"], helpinghand: ["9M"], hex: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], - hypnosis: ["9L20", "8L20", "7L1", "6L1", "5L1", "4L1"], + hypnosis: ["9L20", "9S1", "8L20", "7L1", "6L1", "5L1", "4L1"], icespinner: ["9M"], imprison: ["9M", "9L12", "8M", "8L12", "7L1", "6L1", "5L1", "4L1"], - irondefense: ["9M", "9L38", "8M", "8L38", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4L26"], + irondefense: ["9M", "9L38", "9S0", "8M", "8L38", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4L26"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], - metalsound: ["9L44", "8L44", "7L31", "6L31", "5L31"], - meteorbeam: ["8T"], + metalsound: ["9M", "9L44", "8L44", "7L31", "6L31", "5L31"], + meteorbeam: ["9M", "8T"], naturalgift: ["4M"], nightshade: ["9M"], payback: ["9L1", "8M", "8L1", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L61"], powergem: ["9M"], powerswap: ["8M"], - protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "9S0", "8M", "7M", "6M", "5M", "4M"], psybeam: ["9M"], - psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "9S1", "8M", "7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "8M", "7M", "6M", "5M"], psywave: ["7L15", "6L15", "5L15"], raindance: ["9M", "9L56", "8M", "8L56", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], @@ -48315,11 +50599,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], - trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], - weatherball: ["9L1", "8M", "8L1"], + trickroom: ["9M", "9S0", "8M", "7M", "6M", "5M", "4M"], + weatherball: ["9M", "9L1", "8M", "8L1"], wonderroom: ["8M", "7T", "6T", "5T"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, + eventData: [ + {generation: 9, level: 50, nature: "Relaxed", ivs: {hp: 31, atk: 31, def: 31, spa: 22, spd: 31, spe: 0}, moves: ["bodypress", "irondefense", "protect", "trickroom"], pokeball: "cherishball"}, + {generation: 9, level: 50, nature: "Modest", moves: ["flashcannon", "gyroball", "psychic", "hypnosis"], pokeball: "cherishball"}, + ], encounters: [ {generation: 6, level: 30}, ], @@ -48395,12 +50683,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["9E", "8M", "7T"], attract: ["8M", "7M", "6M", "5M", "4M"], bodyslam: ["9M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], captivate: ["7E", "6E", "5E", "4M"], confide: ["7M", "6M"], confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], - curse: ["9L40", "8L40", "7L1", "6L1", "5L1", "4L1"], + curse: ["9M", "9L40", "8L40", "7L1", "6L1", "5L1", "4L1"], darkpulse: ["9M", "9L50", "8M", "8L50", "7M", "7L49", "6M", "6L49", "5T", "5L49", "5S0", "4M", "4L49"], destinybond: ["9E", "8E", "7E", "6E", "5E", "4E"], disable: ["9E", "8E", "7E"], @@ -48423,17 +50711,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], imprison: ["9M", "8M", "7E", "6E", "5E", "4E"], infestation: ["7M", "6M"], - lashout: ["8T"], + lashout: ["9M", "8T"], memento: ["9L30", "8L30", "7L43", "6L43", "5L43", "4L43"], nastyplot: ["9M", "9L20", "8M", "8L20", "7L37", "6L37", "5L37", "4L37"], naturalgift: ["4M"], nightmare: ["7E", "6E", "5E"], nightshade: ["9M", "9L1", "8L1"], ominouswind: ["7L25", "6L25", "5L25", "4T", "4L25"], - painsplit: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + painsplit: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], payback: ["9L15", "8M", "8L15"], phantomforce: ["9M", "8M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psybeam: ["9M"], psychic: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], @@ -48459,7 +50747,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["9L10", "8L10", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1"], + spite: ["9M", "9L10", "8L10", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1"], storedpower: ["9M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], suckerpunch: ["9L35", "8L35", "7L31", "6L31", "5L31", "4T", "4L31"], @@ -48470,7 +50758,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M"], - toxic: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "7M", "6M", "5M", "4M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M"], uproar: ["8M", "7T", "6T", "5T", "4T"], @@ -48493,10 +50781,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], cut: ["6M", "5M", "4M"], dig: ["9M", "9L42", "8M", "8L42", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31"], - doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["9L12", "8L12", "7E", "6E", "5E", "4E"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L36", "8M", "8L36", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L27"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], dragonrage: ["7L7", "6L7", "5L7", "5D", "4L7"], @@ -48536,10 +50825,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], sandattack: ["9L6", "8L6", "7L3", "6L3", "5L3", "4L3"], sandstorm: ["9M", "9L48", "8M", "8L48", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], - sandtomb: ["9L1", "8M", "8L1", "7L19", "7E", "6L19", "6E", "5L19", "5E", "4L19", "4E"], - scaleshot: ["8T"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L19", "7E", "6L19", "6E", "5L19", "5E", "4L19", "4E"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "8M", "7E", "6E", "5E", "4E"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], slash: ["9L30", "8L30", "7L25", "6L25", "5L25", "4L25"], @@ -48568,15 +50857,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M", "4M"], bite: ["9L27", "8L27"], bodyslam: ["9M", "8M"], + breakingswipe: ["9M"], bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], crunch: ["9M"], cut: ["6M", "5M", "4M"], dig: ["9M", "9L50", "8M", "8L50", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], dragonbreath: ["9L1", "8L1"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M", "4L33"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], dragonrage: ["7L1", "6L7", "5L7", "4L7"], @@ -48619,10 +50911,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], sandstorm: ["9M", "9L58", "8M", "8L58", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], - sandtomb: ["9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], - scaleshot: ["8T"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "8M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], slash: ["9L34", "8L34", "7L28", "6L28", "5L28", "4L28"], @@ -48651,7 +50943,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M", "4M"], bite: ["9L27", "8L27"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], @@ -48660,9 +50952,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L0", "8M", "8L0", "7L1", "6L48", "6S2", "6S3", "5L48", "5S1", "4L48"], cut: ["6M", "5M", "4M"], dig: ["9M", "9L52", "8M", "8L52", "7L40", "6M", "6L40", "6S2", "6S3", "5M", "5L40", "5S1", "4M", "4L40"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], dracometeor: ["9M", "8T", "7T", "6T", "6S2", "5T", "4T"], dragonbreath: ["9L1", "8L1"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L33", "6M", "6L33", "6S2", "6S3", "5M", "5L33", "5S1", "4M", "4L33"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], dragonrage: ["7L1", "6L1", "5L1", "4L1"], @@ -48710,10 +51004,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], sandstorm: ["9M", "9L62", "8M", "8L62", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], - sandtomb: ["9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], - scaleshot: ["8T"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "8M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], slash: ["9L34", "8L34", "7L28", "6L28", "6S3", "5L28", "4L28"], @@ -48761,9 +51055,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], circlethrow: ["9E", "8E", "7E", "6E", "5E"], closecombat: ["9M"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - copycat: ["9L48", "8L48", "7L19", "6L19", "5L29", "4L29"], + copycat: ["9L48", "8L48", "7L19", "6L19", "5L19", "4L29"], counter: ["9L12", "8L12", "7L6", "6L6", "5L6", "4L6"], crosschop: ["9E", "8E", "7E", "6E", "5E", "4E"], crunch: ["9M", "8M", "7E", "6E", "5E", "4E"], @@ -48775,11 +51069,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], endure: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5D", "4M", "4L1"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], - feint: ["9L4", "8L4", "7L11", "6L11", "5L15", "4L15"], + feint: ["9L4", "8L4", "7L11", "6L11", "5L11", "4L15"], finalgambit: ["9L52", "8L52", "7L50", "6L50", "5L55"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "5D", "4M"], + focuspunch: ["9M", "7T", "6T", "5D", "4M"], followme: ["7E", "6E", "5E", "4E"], forcepalm: ["9L36", "8L36", "7L15", "6L15", "5L11", "4L11"], foresight: ["7L1", "6L1", "5L1", "4L1"], @@ -48809,6 +51103,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], quickguard: ["9L32", "8L32"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -48840,7 +51135,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], - vacuumwave: ["9L24", "8E", "7E", "6E", "5E", "4T", "4E"], + upperhand: ["9M"], + vacuumwave: ["9M", "9L24", "8E", "7E", "6E", "5E", "4T", "4E"], workup: ["9L16", "8M", "8L16", "7M", "5M"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, @@ -48853,18 +51149,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["9M"], agility: ["9M", "8M"], attract: ["8M", "7M", "6M", "5M", "4M"], - aurasphere: ["9M", "9L0", "8M", "8L0", "8S6", "7L1", "7S5", "6L1", "6S4", "5L51", "4L37", "4S0"], + aurasphere: ["9M", "9L0", "9S7", "8M", "8L0", "8S6", "7L1", "7S5", "6L1", "6S4", "5L51", "4L37", "4S0"], blazekick: ["8M", "4S1"], bodyslam: ["9M"], bonerush: ["9L36", "8L36", "7L29", "6L29", "5L19", "4L19", "4S1"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], - bulletpunch: ["8S6", "5S2", "5S3"], + bulletpunch: ["9S7", "8S6", "5S2", "5S3"], calmmind: ["9M", "9L24", "8M", "8L24", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M"], captivate: ["4M"], closecombat: ["9M", "9L60", "8M", "8L60", "7L55", "6L1", "6S4", "5L55", "5S3", "4L42"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], copycat: ["9L1", "8L1"], counter: ["9L12", "8L12", "7L6", "6L6", "5L6", "5S2", "4L6"], @@ -48880,13 +51176,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M", "8M", "4M"], extremespeed: ["9L56", "8L56", "7L65", "7S5", "6L1", "5L65", "4L51"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], - feint: ["9L1", "8L1", "7L11", "6L11", "5L15", "4L15"], + feint: ["9L1", "8L1", "7L11", "6L11", "5L11", "4L15"], finalgambit: ["9L1", "8L1"], - flashcannon: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M"], + flashcannon: ["9M", "9S7", "8M", "7M", "6M", "6S4", "5M", "4M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], forcepalm: ["9L20", "8L1", "5L11", "4L11", "4S1"], foresight: ["7L1", "6L1", "5L1", "4L1"], frustration: ["7M", "6M", "5M", "4M"], @@ -48899,7 +51195,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { highjumpkick: ["7S5"], honeclaws: ["6M", "5M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], - icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icepunch: ["9M", "9S7", "8M", "7T", "6T", "5T", "4T"], irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "6T", "5T", "4M"], laserfocus: ["8L16", "7T", "7L1"], @@ -48907,11 +51203,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], magnetrise: ["7T", "6T", "5T", "4T"], - mefirst: ["7L37", "6L37", "5L29", "4L29"], + mefirst: ["7L37", "6L37", "5L19", "4L29"], megakick: ["8M"], megapunch: ["8M"], metalclaw: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5S2", "4L1"], - metalsound: ["9L28", "8L28", "7L24", "6L24", "5L24", "4L24"], + metalsound: ["9M", "9L28", "8L28", "7L24", "6L24", "5L24", "4L24"], meteormash: ["9L48", "8L48"], metronome: ["9M"], mudslap: ["4T"], @@ -48922,6 +51218,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poweruppunch: ["8L20", "7L15", "6M", "6L15"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["9M"], quickattack: ["9L1", "8L1", "7L1", "6L1", "6S4", "5L1", "4L1"], quickguard: ["9L32", "8L32", "7L33", "6L33", "5L33"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -48930,7 +51227,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "6M", "5M", "4M"], revenge: ["8M"], reversal: ["9M", "9L1", "8M", "8L1", "8S6"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockclimb: ["4M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["9L1", "8L1", "6M", "5M", "4M"], @@ -48958,7 +51255,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], - vacuumwave: ["9L1", "4T"], + upperhand: ["9M"], + vacuumwave: ["9M", "9L1", "4T"], waterpulse: ["9M", "7T", "6T", "4M", "4S0"], workup: ["9L16", "8M", "8L1", "7M", "7L42", "5M"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -48971,6 +51269,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, nature: "Jolly", abilities: ["innerfocus"], moves: ["closecombat", "aurasphere", "flashcannon", "quickattack"], pokeball: "cherishball"}, {generation: 7, level: 40, gender: "M", nature: "Serious", abilities: ["steadfast"], moves: ["aurasphere", "highjumpkick", "dragonpulse", "extremespeed"], pokeball: "pokeball"}, {generation: 8, level: 80, gender: "M", nature: "Serious", abilities: ["innerfocus"], ivs: {hp: 31, atk: 30, def: 30, spa: 31, spd: 30, spe: 31}, moves: ["aurasphere", "bulletpunch", "reversal", "steelbeam"], pokeball: "pokeball"}, + {generation: 9, level: 75, shiny: true, gender: "M", nature: "Naive", abilities: ["innerfocus"], ivs: {hp: 31, atk: 31, def: 20, spa: 31, spd: 20, spe: 31}, moves: ["flashcannon", "bulletpunch", "aurasphere", "icepunch"], pokeball: "cherishball"}, ], }, hippopotas: { @@ -48984,9 +51283,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], confide: ["7M", "6M"], crunch: ["9M", "9L20", "8M", "8L20", "7L31", "6L31", "5L31", "4L31"], - curse: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], dig: ["9M", "9L16", "8M", "8L16", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], - doubleedge: ["9L44", "8L44", "7L44", "6L44", "5L44", "4L44"], + doubleedge: ["9M", "9L44", "8L44", "7L44", "6L44", "5L44", "4L44"], doubleteam: ["7M", "6M", "5M", "4M"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], @@ -48998,10 +51297,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["4T"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], icefang: ["9M"], irontail: ["8M", "7T", "6T", "5T", "4M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], mudslap: ["9M", "4T"], naturalgift: ["4M"], @@ -49009,15 +51308,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "9L36", "8M", "8L36", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], revenge: ["8M", "7E", "6E", "5E", "4E"], - roar: ["9L32", "8L32", "7M", "6M", "5M", "4M"], + roar: ["9M", "9L32", "8L32", "7M", "6M", "5M", "4M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], sandstorm: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], - sandtomb: ["9L12", "8M", "8L12", "7L25", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E"], - scorchingsands: ["8T"], + sandtomb: ["9M", "9L12", "8M", "8L12", "7L25", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M"], slackoff: ["9L52", "8L52", "7E", "6E", "5E", "4E"], sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], @@ -49055,8 +51354,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], confide: ["7M", "6M"], crunch: ["9M", "9L20", "8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + curse: ["9M"], dig: ["9M", "9L16", "8M", "8L16", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], - doubleedge: ["9L50", "8L50", "7L50", "6L50", "5L50", "4L50"], + doubleedge: ["9M", "9L50", "8L50", "7L50", "6L50", "5L50", "4L50"], doubleteam: ["7M", "6M", "5M", "4M"], earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L40"], @@ -49066,17 +51366,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fissure: ["9L56", "8L56", "7L60", "6L60", "5L60", "4L60"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hardpress: ["9M"], headbutt: ["4T"], heavyslam: ["9M", "8M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], hypervoice: ["9M"], icefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], irontail: ["8M", "7T", "6T", "5T", "4M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], mudslap: ["9M", "4T"], naturalgift: ["4M"], @@ -49084,15 +51385,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "9L38", "8M", "8L38", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], revenge: ["8M"], - roar: ["9L32", "8L32", "7M", "6M", "5M", "4M"], + roar: ["9M", "9L32", "8L32", "7M", "6M", "5M", "4M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], sandstorm: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], - sandtomb: ["9L12", "8M", "8L12", "7L25", "6L25", "5L25", "4L25"], - scorchingsands: ["8T"], + sandtomb: ["9M", "9L12", "8M", "8L12", "7L25", "6L25", "5L25", "4L25"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M"], slackoff: ["9L62", "8L62"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], @@ -49117,7 +51418,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, skorupi: { learnset: { - acupressure: ["8L45", "7L13", "6L13", "5L17", "4L17"], + acupressure: ["8L45", "7L13", "6L13", "5L13", "4L17"], aerialace: ["7M", "6M", "5M", "4M"], agility: ["8M", "7E", "6E", "5E", "5D", "4E"], aquatail: ["7T", "6T", "5T", "5D", "4T"], @@ -49125,13 +51426,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M", "4M"], bite: ["8L12", "7L1", "6L1", "5L1", "5D", "4L1"], brickbreak: ["8M", "7M", "6M", "5M", "4M"], - bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L34", "4T", "4L34"], + bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L20", "4T", "4L34"], bugbuzz: ["8M"], captivate: ["4M"], confide: ["7M", "6M"], confuseray: ["8E", "7E", "6E", "5E", "4E"], - crosspoison: ["8M", "8L39", "7L49", "6L49", "5L61", "4L50"], - crunch: ["8M", "8L48", "7L45", "6L45", "5L56", "4L45"], + crosspoison: ["8M", "8L39", "7L49", "6L49", "5L49", "4L50"], + crunch: ["8M", "8L48", "7L45", "6L45", "5L45", "4L45"], cut: ["6M", "5M", "4M"], darkpulse: ["8M", "7M", "6M", "5T", "4M"], dig: ["8M", "6M", "5M", "4M"], @@ -49147,17 +51448,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furycutter: ["4T"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - honeclaws: ["8L3", "7L30", "6M", "6L30", "5M", "5L45"], + honeclaws: ["8L3", "7L30", "6M", "6L30", "5M", "5L30"], infestation: ["7M", "6M"], irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], - knockoff: ["8L24", "7T", "7L5", "6T", "6L5", "5T", "5L6", "4T", "4L6"], + knockoff: ["8L24", "7T", "7L5", "6T", "6L5", "5T", "5L5", "4T", "4L6"], leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], mudslap: ["4T"], naturalgift: ["4M"], nightslash: ["8L36", "7L38", "7E", "6L38", "6E", "5L38", "5E", "4E"], payback: ["8M", "7M", "6M", "5M", "4M"], - pinmissile: ["8M", "8L30", "7L9", "6L9", "5L12", "4L12"], - poisonfang: ["8L9", "7L23", "6L23", "5L39", "4L39"], + pinmissile: ["8M", "8L30", "7L9", "6L9", "5L9", "4L12"], + poisonfang: ["8L9", "7L23", "6L23", "5L23", "4L39"], poisonjab: ["8M", "7M", "6M", "5M", "4M"], poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], poisontail: ["7E", "6E", "5E"], @@ -49191,14 +51492,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["8L33", "7M", "6M", "5M", "4M"], toxicspikes: ["8M", "8L15", "7L34", "6L34", "5L28", "4L28"], twineedle: ["7E", "6E", "5E"], - venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L50"], + venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L27"], whirlwind: ["8E", "7E", "6E", "5E", "4E"], xscissor: ["8M", "8L42", "7M", "6M", "5M", "4M"], }, }, drapion: { learnset: { - acupressure: ["8L49", "7L13", "6L13", "5L17", "4L17"], + acupressure: ["8L49", "7L13", "6L13", "5L13", "4L17"], aerialace: ["7M", "6M", "5M", "4M"], agility: ["8M"], aquatail: ["7T", "6T", "5T", "4T"], @@ -49207,13 +51508,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["8L12", "7L1", "6L1", "5L1", "4L1"], brickbreak: ["8M", "7M", "6M", "5M", "4M"], brutalswing: ["8M", "7M"], - bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L34", "4T", "4L34"], + bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L20", "4T", "4L34"], bugbuzz: ["8M"], bulldoze: ["8M", "7M", "6M", "5M"], captivate: ["4M"], confide: ["7M", "6M"], - crosspoison: ["8M", "8L39", "7L57", "6L57", "5L73", "4L58"], - crunch: ["8M", "8L54", "7L49", "6L49", "5L65", "4L49"], + crosspoison: ["8M", "8L39", "7L57", "6L57", "5L57", "4L58"], + crunch: ["8M", "8L54", "7L49", "6L49", "5L49", "4L49"], cut: ["6M", "5M", "4M"], darkpulse: ["8M", "7M", "6M", "5T", "4M"], dig: ["8M", "6M", "5M", "4M"], @@ -49231,7 +51532,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - honeclaws: ["8L1", "7L30", "6M", "6L30", "5M", "5L48"], + honeclaws: ["8L1", "7L30", "6M", "6L30", "5M", "5L30"], hyperbeam: ["8M", "7M", "6M", "5M", "4M"], icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], infestation: ["7M", "6M"], @@ -49245,8 +51546,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nightslash: ["8L36", "7L38", "6L38", "5L38"], payback: ["8M", "7M", "6M", "5M", "4M"], - pinmissile: ["8M", "8L30", "7L9", "6L9", "5L12", "4L1"], - poisonfang: ["8L9", "7L23", "6L23", "5L39", "4L39"], + pinmissile: ["8M", "8L30", "7L9", "6L9", "5L9", "4L1"], + poisonfang: ["8L9", "7L23", "6L23", "5L23", "4L39"], poisonjab: ["8M", "7M", "6M", "5M", "4M"], poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], protect: ["8M", "7M", "6M", "5M", "4M"], @@ -49286,7 +51587,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["8L33", "7M", "6M", "5M", "4M"], toxicspikes: ["8M", "8L15", "7L34", "6L34", "5L28", "4L28"], venomdrench: ["8M"], - venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L56"], + venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L27"], xscissor: ["8M", "8L44", "7M", "6M", "5M", "4M"], }, encounters: [ @@ -49311,7 +51612,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], captivate: ["4M"], chillingwater: ["9M"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], counter: ["9E", "8E", "7E", "6E", "5E", "4E"], crosschop: ["9E", "8E", "7E", "6E", "5E", "4E"], @@ -49332,7 +51633,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flatter: ["9L12", "8L12", "7L50", "6L50", "5L50", "4L45"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], @@ -49342,8 +51643,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "6M", "5M", "4M"], icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], lowkick: ["9M", "9L16", "8M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], meditate: ["7E", "6E", "5E", "4E"], @@ -49381,16 +51682,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], sludgebomb: ["9M", "9L44", "8M", "8L44", "7M", "7L45", "6M", "6L45", "5M", "5L45", "4M", "4L43"], - sludgewave: ["8M", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], smellingsalts: ["7E", "6E", "5E", "4E"], snatch: ["7T", "6T", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], suckerpunch: ["9L24", "8L24", "7L31", "6L31", "5L31", "4T", "4L31"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], - superfang: ["7T", "6T", "5T", "4T"], + superfang: ["9M", "7T", "6T", "5T", "4T"], swagger: ["9L28", "8L28", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], takedown: ["9M"], taunt: ["9M", "9L8", "8M", "8L8", "7M", "7L10", "6M", "6L10", "5M", "5L10", "5S0", "5S1", "4M", "4L10"], @@ -49398,8 +51699,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "8M", "7M", "6M", "5M", "4M"], thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], torment: ["7M", "6M", "5M", "4M"], - toxic: ["9L36", "8L36", "7M", "6M", "5M", "4M"], - vacuumwave: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + toxic: ["9M", "9L36", "8L36", "7M", "6M", "5M", "4M"], + upperhand: ["9M"], + vacuumwave: ["9M", "9E", "8E", "7E", "6E", "5E", "4T", "4E"], venomdrench: ["8M"], venoshock: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L36"], wakeupslap: ["7E", "6E", "5E", "4E"], @@ -49427,7 +51729,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], chillingwater: ["9M"], closecombat: ["9M"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], corrosivegas: ["8T"], crosspoison: ["8M"], @@ -49446,7 +51748,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flatter: ["9L12", "8L12", "7L62", "6L62", "5L62", "4L54"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], @@ -49458,8 +51760,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], lowkick: ["9M", "9L16", "8M", "7T", "6T", "5T", "4T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M"], @@ -49494,27 +51796,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], sludgebomb: ["9M", "9L48", "8M", "8L48", "7M", "7L54", "6M", "6L54", "5M", "5L54", "4M", "4L49"], - sludgewave: ["8M", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], suckerpunch: ["9L24", "8L24", "7L31", "6L31", "5L31", "4T", "4L31"], sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], - superfang: ["7T", "6T", "5T", "4T"], + superfang: ["9M", "7T", "6T", "5T", "4T"], swagger: ["9L28", "8L28", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], takedown: ["9M"], taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L10", "6M", "6L10", "5M", "5L10", "4M", "4L10"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M", "4M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], torment: ["7M", "6M", "5M", "4M"], - toxic: ["9L36", "8L36", "7M", "6M", "5M", "4M"], - vacuumwave: ["4T"], + toxic: ["9M", "9L36", "8L36", "7M", "6M", "5M", "4M"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], venomdrench: ["8M"], venoshock: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L36"], workup: ["8M", "7M", "5M"], @@ -49603,6 +51906,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { acrobatics: ["9M"], agility: ["9M", "9E", "7E", "6E", "5E", "4E"], aircutter: ["4T"], + alluringvoice: ["9M"], aquaring: ["9L33", "7L33", "6L33", "5L33", "4L33"], aquatail: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], attract: ["9L26", "7M", "7L10", "6M", "6L10", "5M", "5L10", "5D", "4M", "4L10"], @@ -49623,6 +51927,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "7M", "6M", "5M", "4M"], flail: ["9E", "7E", "6E", "5E", "4E"], flash: ["6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M"], gust: ["9L17", "7L17", "6L17", "5L17", "4L17"], hail: ["7M", "6M", "5M", "4M"], @@ -49638,7 +51943,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pound: ["9L1", "7L1", "6L1", "5L1", "4L1"], protect: ["9M", "7M", "6M", "5M", "4M"], psybeam: ["9M", "9E", "7E", "6E", "5E", "4E"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], raindance: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], @@ -49668,7 +51973,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "7M", "6M", "5M", "4M"], watergun: ["9L6", "7L6", "6L6", "5L6", "4L6"], waterpulse: ["9M", "9L22", "7T", "7L22", "6T", "6L22", "5L22", "5D", "4M", "4L22"], - whirlpool: ["9L38", "7L38", "6L38", "5L38", "4M", "4L38"], + whirlpool: ["9M", "9L38", "7L38", "6L38", "5L38", "4M", "4L38"], }, }, lumineon: { @@ -49677,6 +51982,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M"], aircutter: ["9M", "4T"], airslash: ["9M"], + alluringvoice: ["9M"], aquaring: ["9L35", "7L35", "6L35", "5L35", "4L35"], aquatail: ["7T", "6T", "5T", "4T"], attract: ["9L26", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], @@ -49696,6 +52002,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M", "4M"], facade: ["9M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], gust: ["9L1", "7L1", "6L1", "5L17", "4L17"], @@ -49712,7 +52019,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pound: ["9L1", "7L1", "6L1", "5L1", "4L1"], protect: ["9M", "7M", "6M", "5M", "4M"], psybeam: ["9M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], raindance: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], @@ -49739,7 +52046,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "7M", "6M", "5M", "4M"], watergun: ["9L1", "7L1", "6L1", "5L1", "4L1"], waterpulse: ["9M", "9L22", "7T", "7L22", "6T", "6L22", "5L22", "4M", "4L22"], - whirlpool: ["9L42", "7L42", "6L42", "5L42", "4M", "4L42"], + whirlpool: ["9M", "9L42", "7L42", "6L42", "5L42", "4M", "4L42"], }, encounters: [ {generation: 4, level: 20}, @@ -49755,7 +52062,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], chillingwater: ["9M"], confide: ["7M", "6M"], - doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9M"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], doubleteam: ["7M", "6M", "5M", "4M"], endure: ["9M", "8M", "4M"], energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -49766,7 +52074,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], grasswhistle: ["7L13", "6L13", "5L13", "4L13"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], growth: ["9E", "8E", "7E", "6E", "5E", "4E"], hail: ["8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], @@ -49776,6 +52084,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], iceshard: ["9L15", "8L15", "7L26", "6L26", "5L26", "4L26"], icespinner: ["9M"], + iciclespear: ["9M"], icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L9", "6T", "6L9", "5T", "5L9", "4T", "4L9"], ingrain: ["9L35", "8L35", "7L31", "6L31", "5L31", "4L31"], irontail: ["8M", "7T", "6T", "5T", "4M"], @@ -49817,7 +52126,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], waterpulse: ["9M", "7T", "6T", "4M"], - weatherball: ["9E", "8M"], + weatherball: ["9M", "9E", "8M"], woodhammer: ["9L41", "8L41", "7L36", "6L36", "5L36", "4L36"], worryseed: ["7T", "6T", "5T", "4T"], }, @@ -49837,6 +52146,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { captivate: ["4M"], chillingwater: ["9M"], confide: ["7M", "6M"], + curse: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -49846,15 +52157,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frostbreath: ["7M", "6M", "5M"], frustration: ["7M", "6M", "5M", "4M"], gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], grasswhistle: ["7L13", "6L13", "5L13", "4L13"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], hail: ["8M", "7M", "6M", "5M", "4M"], + hardpress: ["9M"], headbutt: ["4T"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], @@ -49863,7 +52175,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], iceshard: ["9L15", "8L15", "7L26", "6L26", "5L26", "4L26"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], ingrain: ["9L35", "8L35", "7L31", "6L31", "5L31", "4L31"], irontail: ["8M", "7T", "6T", "5T", "4M"], @@ -49912,7 +52224,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M", "4M"], trailblaze: ["9M"], waterpulse: ["9M", "7T", "6T", "4M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], woodhammer: ["9L43", "8L43", "7L36", "6L36", "5L36", "4L36"], worryseed: ["7T", "6T", "5T", "4T"], }, @@ -49924,7 +52236,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { allyswitch: ["8M", "7T"], astonish: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], - charge: ["9L15", "8L15", "7L1", "6L1", "5L57", "4L43"], + charge: ["9M", "9L15", "8L15", "7L1", "6L1", "5L57", "4L43"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "7S2", "6M"], confuseray: ["9M", "9L10", "8L10", "7L1", "6L1", "5L1", "4L1"], @@ -49937,7 +52249,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M"], electricterrain: ["9M", "8M"], electroball: ["9M", "9L20", "8M", "8L20", "7L43", "6L43", "5L43"], - electroweb: ["8M", "7T", "6T", "5T"], + electroweb: ["9M", "8M", "7T", "6T", "5T"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], @@ -49953,8 +52265,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], nightshade: ["9M"], ominouswind: ["7L29", "6L29", "5L29", "4T", "4L29"], - painsplit: ["7T", "6T", "5T", "4T"], - poltergeist: ["8T"], + painsplit: ["9M", "7T", "6T", "5T", "4T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psychup: ["7M", "6M", "5M", "4M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -49970,7 +52282,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], storedpower: ["9M", "8M"], substitute: ["9M", "9L40", "8M", "8L40", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], suckerpunch: ["4T"], @@ -49986,7 +52298,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "9L25", "8M", "8L25", "7M", "7L1", "6M", "6L1", "6S1", "5M", "5L1", "5D", "4M", "4L1"], toxic: ["7M", "6M", "5M", "4M"], trick: ["9M", "9L45", "8M", "8L45", "7T", "7L1", "6T", "6L1", "6S1", "5T", "5L1", "5S0", "4T", "4L1"], - uproar: ["9L55", "8M", "8L55", "7T", "7L8", "7S2", "6T", "6L8", "5T", "5L8", "5S0", "4T", "4L8"], + uproar: ["9M", "9L55", "8M", "8L55", "7T", "7L8", "7S2", "6T", "6L8", "5T", "5L8", "5S0", "4T", "4L8"], voltswitch: ["9M", "8M", "7M", "6M", "5M"], willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], }, @@ -49998,33 +52310,33 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, rotomheat: { learnset: { - overheat: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + overheat: ["9R", "8R", "7R", "6R", "5R", "4R"], }, }, rotomwash: { learnset: { - hydropump: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + hydropump: ["9R", "8R", "7R", "6R", "5R", "4R"], }, }, rotomfrost: { learnset: { - blizzard: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + blizzard: ["9R", "8R", "7R", "6R", "5R", "4R"], }, }, rotomfan: { learnset: { - airslash: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + airslash: ["9R", "8R", "7R", "6R", "5R", "4R"], }, }, rotommow: { learnset: { - leafstorm: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + leafstorm: ["9R", "8R", "7R", "6R", "5R", "4R"], }, }, uxie: { learnset: { acrobatics: ["9M", "8M", "7M", "6M", "5M"], - allyswitch: ["8M", "7T"], + allyswitch: ["9L1", "8M", "7T"], amnesia: ["9M", "9L42", "8M", "8L42", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], batonpass: ["9M", "8M"], calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50040,7 +52352,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M", "8M"], endure: ["9M", "9L14", "8M", "8L14", "7L16", "6L16", "5L16", "4M", "4L16"], energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "9L1", "8T"], extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -50049,7 +52361,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "6M", "5M", "4M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], - futuresight: ["9L63", "8M", "8L63", "8S5", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + futuresight: ["9M", "9L63", "8M", "8L63", "8S5", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50060,25 +52372,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], - irontail: ["8M", "7T", "6T", "5T", "4M"], - knockoff: ["7T", "6T", "5T", "4T"], + irontail: ["9L1", "8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], magiccoat: ["7T", "6T", "5T", "4T"], - magicroom: ["8M", "8S5", "7T", "6T", "5T"], + magicroom: ["9L1", "8M", "8S5", "7T", "6T", "5T"], memento: ["9L77", "8L77", "7L1", "6L1", "5L76", "4L76"], metronome: ["9M", "8M"], mudslap: ["9M", "4T"], mysticalpower: ["9L84"], nastyplot: ["9M", "8M"], naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + painsplit: ["9M"], playrough: ["9M", "8M"], poweruppunch: ["6M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psybeam: ["9M", "9L21", "8L21"], psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], - psychocut: ["8M"], - psychup: ["7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], + psychocut: ["9L1", "8M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "8M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], recycle: ["7T", "6T", "5T", "4M"], @@ -50086,8 +52400,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], return: ["7M", "6M", "5M", "4M"], roleplay: ["7T", "6T", "5T", "4T"], - round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "7M", "6M", "5M", "4M"], + round: ["9L1", "8M", "7M", "6M", "5M"], + safeguard: ["9L1", "8M", "7M", "6M", "5M", "4M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], secretpower: ["6M", "4M"], shadowball: ["9M", "8M", "8S5", "7M", "6M", "5M", "4M"], @@ -50095,7 +52409,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T", "6T", "5T", "4T"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], - snore: ["8M", "7T", "6T", "5T", "4T"], + snore: ["9L1", "8M", "7T", "6T", "5T", "4T"], solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], storedpower: ["9M", "8M"], @@ -50110,12 +52424,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - triattack: ["8M"], + triattack: ["9L1", "8M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], waterpulse: ["9M", "7T", "6T", "4M"], - wonderroom: ["8M", "7T", "6T", "5T"], + wonderroom: ["9L1", "8M", "7T", "6T", "5T"], yawn: ["9L56", "8L56", "7L31", "7S4", "6L31", "6S3", "5L31", "4L31", "4S0", "4S1"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, @@ -50132,7 +52446,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mesprit: { learnset: { acrobatics: ["9M", "8M", "7M", "6M", "5M"], - allyswitch: ["8M", "7T"], + allyswitch: ["9L1", "8M", "7T"], batonpass: ["9M", "8M"], blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50143,6 +52457,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], copycat: ["9L70", "8L70", "7L1", "6L1", "5L61", "5S2", "4L61"], dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], drainingkiss: ["9M", "8M", "8S5"], drainpunch: ["9M", "8M"], @@ -50150,7 +52465,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M", "8M"], endure: ["9M", "8M", "4M"], energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "9L1", "8T"], extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], @@ -50158,7 +52473,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flatter: ["9L56", "8L56"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - futuresight: ["9L63", "8M", "8L63", "7L36", "7S4", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + futuresight: ["9M", "9L63", "8M", "8L63", "7L36", "7S4", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], @@ -50169,25 +52484,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], - irontail: ["8M", "7T", "6T", "5T", "4M"], - knockoff: ["7T", "6T", "5T", "4T"], + irontail: ["9L1", "8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], luckychant: ["7L31", "6L31", "6S3", "5L31", "4L31", "4S0", "4S1"], magiccoat: ["7T", "6T", "5T", "4T"], - magicroom: ["8M", "7T", "6T", "5T"], + magicroom: ["9L1", "8M", "7T", "6T", "5T"], metronome: ["9M", "8M"], mudslap: ["4T"], mysticalpower: ["9L84"], nastyplot: ["9M", "8M"], naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + painsplit: ["9M"], playrough: ["9M", "8M"], poweruppunch: ["6M"], protect: ["9M", "9L14", "8M", "8L14", "7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L16"], psybeam: ["9M", "9L21", "8L21"], psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], - psychocut: ["8M"], - psychup: ["7M", "6M", "5M", "4M"], + psychicnoise: ["9M"], + psychocut: ["9L1", "8M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "8M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], recycle: ["7T", "6T", "5T", "4M"], @@ -50195,8 +52512,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], return: ["7M", "6M", "5M", "4M"], roleplay: ["7T", "6T", "5T", "4T"], - round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "7M", "6M", "5M", "4M"], + round: ["9L1", "8M", "7M", "6M", "5M"], + safeguard: ["9L1", "8M", "7M", "6M", "5M", "4M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], secretpower: ["6M", "4M"], shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50204,7 +52521,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T", "6T", "5T", "4T"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], - snore: ["8M", "7T", "6T", "5T", "4T"], + snore: ["9L1", "8M", "7T", "6T", "5T", "4T"], stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], storedpower: ["9M", "8M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50218,12 +52535,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - triattack: ["8M", "8S5"], + triattack: ["9L1", "8M", "8S5"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], waterpulse: ["9M", "7T", "6T", "4M"], - wonderroom: ["8M", "7T", "6T", "5T"], + wonderroom: ["9L1", "8M", "7T", "6T", "5T"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ @@ -50239,8 +52556,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { azelf: { learnset: { acrobatics: ["9M", "8M", "7M", "6M", "5M"], - allyswitch: ["8M", "7T"], - assurance: ["8M"], + allyswitch: ["9L1", "8M", "7T"], + assurance: ["9L1", "8M"], batonpass: ["9M", "8M"], calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], chargebeam: ["9M", "7M", "6M", "5M", "4M"], @@ -50248,14 +52565,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], dazzlinggleam: ["9M", "8M", "8S5", "7M", "6M"], detect: ["9L14", "8L14", "7L16", "6L16", "5L16", "4L16"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], drainingkiss: ["9M", "8M"], drainpunch: ["9M", "8M"], dreameater: ["7M", "6M", "5M", "4M"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M", "4M"], energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "9L1", "8T"], explosion: ["9L77", "8L77", "7M", "7L76", "6M", "6L76", "5M", "5L76", "4M", "4L76"], extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], facade: ["9M", "8M", "8S5", "7M", "6M", "5M", "4M"], @@ -50265,7 +52584,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - futuresight: ["9L63", "8M", "8L63", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + futuresight: ["9M", "9L63", "8M", "8L63", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], @@ -50275,26 +52594,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], incinerate: ["6M", "5M"], - irontail: ["8M", "7T", "6T", "5T", "4M"], - knockoff: ["7T", "6T", "5T", "4T"], + irontail: ["9L1", "8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], laserfocus: ["7T"], lastresort: ["9L70", "8L70", "7T", "7L1", "6T", "6L1", "5T", "5L61", "5S2", "4T", "4L61"], lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], magiccoat: ["7T", "6T", "5T", "4T"], - magicroom: ["8M", "7T", "6T", "5T"], + magicroom: ["9L1", "8M", "7T", "6T", "5T"], metronome: ["9M", "8M"], mudslap: ["9M", "4T"], mysticalpower: ["9L84"], nastyplot: ["9M", "9L42", "8M", "8L42", "8S5", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], - payback: ["8M", "7M", "6M", "5M", "4M"], + payback: ["9L1", "8M", "7M", "6M", "5M", "4M"], playrough: ["9M", "8M"], poweruppunch: ["6M"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psybeam: ["9M", "9L21", "8L21"], psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], - psychocut: ["8M"], - psychup: ["7M", "6M", "5M", "4M"], + psychocut: ["9L1", "8M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "8M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], recycle: ["7T", "6T", "5T", "4M"], @@ -50302,17 +52621,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], return: ["7M", "6M", "5M", "4M"], roleplay: ["7T", "6T", "5T", "4T"], - round: ["8M", "7M", "6M", "5M"], - safeguard: ["8M", "7M", "6M", "5M", "4M"], + round: ["9L1", "8M", "7M", "6M", "5M"], + safeguard: ["9L1", "8M", "7M", "6M", "5M", "4M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], secretpower: ["6M", "4M"], - selfdestruct: ["8M"], + selfdestruct: ["9L1", "8M"], shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], - snore: ["8M", "7T", "6T", "5T", "4T"], + snore: ["9L1", "8M", "7T", "6T", "5T", "4T"], stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], storedpower: ["9M", "8M"], substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50328,13 +52647,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - triattack: ["8M"], + triattack: ["9L1", "8M"], trick: ["9M", "8M", "7T", "6T", "5T", "4T"], trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], - uproar: ["9L56", "8M", "8L56", "7T", "7L31", "7S4", "6T", "6L31", "6S3", "5T", "5L31", "4T", "4L31", "4S0", "4S1"], + uproar: ["9M", "9L56", "8M", "8L56", "7T", "7L31", "7S4", "6T", "6L31", "6S3", "5T", "5L31", "4T", "4L31", "4S0", "4S1"], uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], waterpulse: ["9M", "7T", "6T", "4M"], - wonderroom: ["8M", "7T", "6T", "5T"], + wonderroom: ["9L1", "8M", "7T", "6T", "5T"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], }, eventData: [ @@ -50355,24 +52674,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], bodypress: ["9M", "8M"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], cut: ["6M", "5M", "4M"], doubleteam: ["7M", "6M", "5M", "4M"], - dracometeor: ["9M", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], + dracometeor: ["9M", "9S13", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], dragonbreath: ["9L8", "8L8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], dragonclaw: ["9M", "9L40", "8M", "8L40", "8S11", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28", "4S0"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "5S4", "4M"], dragontail: ["9M", "7M", "6M", "5M"], - earthpower: ["9M", "9L72", "8M", "8L72", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33", "4S1"], + earthpower: ["9M", "9L72", "9S13", "8M", "8L72", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33", "4S1"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], - fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "9S13", "8M", "7M", "6M", "5M", "4M"], flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], flashcannon: ["9M", "9L32", "8M", "8L32", "8S12", "8S11", "7M", "7L50", "7S7", "7S8", "7S9", "7S10", "6M", "6L50", "6S5", "6S6", "5M", "5L50", "4M", "4L42"], @@ -50380,7 +52699,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["4T"], healblock: ["4L50", "4S1"], heavyslam: ["9M", "8M"], @@ -50396,17 +52715,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magnetrise: ["7T", "6T", "5T", "4T"], metalburst: ["9L64", "8L64", "8S12", "7L24", "6L24", "6S6", "5L24", "4L24"], metalclaw: ["9M", "9L1", "8L1", "7L6", "6L6", "5L6", "4L6", "4S0"], + metalsound: ["9M"], mudslap: ["4T"], naturalgift: ["4M"], outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], overheat: ["9M", "8M", "8S12", "7M", "6M", "6S6", "5M", "4M"], powergem: ["9M", "9L56", "8M", "8L56", "7L19", "6L19", "5L19", "4L19"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], roaroftime: ["9L88", "8L88", "8S12", "7L46", "7S7", "7S8", "7S9", "7S10", "6L46", "6S5", "6S6", "5L46", "5S4", "4L40", "4S0", "4S1"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], @@ -50414,7 +52734,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], secretpower: ["6M", "4M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50423,7 +52743,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], - steelbeam: ["9M", "8T"], + steelbeam: ["9M", "9S13", "8T"], stompingtantrum: ["9M", "8M", "7T"], stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], @@ -50455,6 +52775,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 50, moves: ["flashcannon", "dracometeor", "roaroftime", "aurasphere"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["slash", "ancientpower", "flashcannon", "dragonclaw"]}, {generation: 8, level: 70, nature: "Bold", isHidden: true, moves: ["roaroftime", "flashcannon", "metalburst", "overheat"], pokeball: "cherishball"}, + {generation: 9, level: 75, nature: "Quiet", isHidden: true, perfectIVs: 4, moves: ["dracometeor", "earthpower", "fireblast", "steelbeam"]}, ], eventOnly: true, }, @@ -50472,7 +52793,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], bodypress: ["9M", "8M"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], brine: ["8M", "4M"], bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50482,18 +52803,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["6M", "5M", "4M"], dive: ["8M", "6M", "5M", "4T"], doubleteam: ["7M", "6M", "5M", "4M"], - dracometeor: ["9M", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], + dracometeor: ["9M", "9S13", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], dragonbreath: ["9L8", "8L8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], dragonclaw: ["9M", "8M", "8L40", "8S11", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28", "4S0"], dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], dragontail: ["9M", "7M", "6M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], earthpower: ["9M", "9L72", "8M", "8L72", "8S12", "7T", "7L33", "6T", "6L33", "6S5", "6S6", "5T", "5L33", "4T", "4L33", "4S1"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], - fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "9S13", "8M", "7M", "6M", "5M", "4M"], flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], fling: ["9M", "8M", "7M", "6M", "5M", "4M"], focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50501,14 +52822,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], hail: ["8M", "7M", "6M", "5M", "4M"], headbutt: ["4T"], healblock: ["4L50", "4S1"], heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M"], honeclaws: ["6M", "5M"], - hydropump: ["9M", "9L88", "8M", "8L88", "8S12", "7L50", "7S7", "7S8", "7S9", "7S10", "6L50", "6S5", "6S6", "5L50", "5S4", "4L42"], + hydropump: ["9M", "9L88", "9S13", "8M", "8L88", "8S12", "7L50", "7S7", "7S8", "7S9", "7S10", "6L50", "6S5", "6S6", "5L50", "5S4", "4L42"], hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], hypervoice: ["9M", "8M", "7T", "6T", "5T"], icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50520,18 +52841,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], powergem: ["9M", "9L56", "8M", "8L56", "7L19", "6L19", "5L19", "4L19"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M"], sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], secretpower: ["6M", "4M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], @@ -50551,7 +52872,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M", "4T"], takedown: ["9M"], terablast: ["9M"], - thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "9S13", "8M", "7M", "6M", "5M", "4M"], thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], @@ -50560,7 +52881,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { twister: ["4T"], waterfall: ["9M"], waterpulse: ["9M", "9L1", "8L1", "7T", "7L6", "6T", "6L6", "5L6", "4M", "4L6", "4S0"], - whirlpool: ["8M", "4M"], + whirlpool: ["9M", "8M", "4M"], }, eventData: [ {generation: 4, level: 47, shiny: 1, moves: ["waterpulse", "ancientpower", "dragonclaw", "spacialrend"]}, @@ -50576,6 +52897,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 50, moves: ["hydropump", "dracometeor", "spacialrend", "aurasphere"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["slash", "surf", "ancientpower", "dragonclaw"]}, {generation: 8, level: 70, nature: "Hasty", isHidden: true, moves: ["spacialrend", "hydropump", "aurasphere", "earthpower"], pokeball: "cherishball"}, + {generation: 9, level: 75, nature: "Modest", isHidden: true, perfectIVs: 4, moves: ["dracometeor", "thunder", "fireblast", "hydropump"]}, ], eventOnly: true, }, @@ -50590,7 +52912,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "8M"], bugbite: ["7T", "6T", "5T", "4T"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], captivate: ["4M"], confide: ["7M", "6M"], crunch: ["9M", "9L36", "8M", "8L36", "8S8", "7L33", "7S5", "7S6", "6L33", "6S4", "5L33", "4L33", "4S1"], @@ -50613,8 +52935,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M", "8M", "7M", "7S7", "6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hardpress: ["9M"], headbutt: ["4T"], - heatcrash: ["8M"], + heatcrash: ["9M", "8M"], heatwave: ["9M", "9L60", "8M", "8L60", "7T", "7L1", "7S7", "6T", "6L1", "5T", "5L81", "4T", "4L81"], heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M", "4M"], @@ -50624,9 +52947,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ironhead: ["9M", "9L30", "8M", "8L30", "8S8", "7T", "7L1", "6T", "6L1", "5T", "5L65", "5S3", "4T", "4L65", "4S0"], lavaplume: ["9L42", "8L42", "8S8", "7L49", "7S5", "7S6", "6L49", "6S4", "5L49", "5S3", "4L49", "4S0", "4S1"], leer: ["9L1", "8L1", "7L9", "6L9", "5L9", "4L9"], + lunge: ["9M"], magmastorm: ["9L72", "8L72", "7L1", "7S7", "6L1", "5L96", "4L96", "4S2"], metalclaw: ["9M", "9L6", "8L6"], - metalsound: ["9L48", "8L48", "8S8", "7L25", "6L25", "6S4", "5L25", "4L25", "4S1"], + metalsound: ["9M", "9L48", "8L48", "8S8", "7L25", "6L25", "6S4", "5L25", "4L25", "4S1"], mudslap: ["4T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], @@ -50646,7 +52970,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], sandstorm: ["9M"], scaryface: ["9M", "9L24", "8M", "8L24", "7L41", "7S5", "7S6", "6L41", "6S4", "5L41", "5S3", "4L41", "4S0", "4S1"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M", "4M"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], @@ -50686,85 +53010,88 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { aerialace: ["7M", "6M", "5M", "4M"], ancientpower: ["4T"], - avalanche: ["8M", "4M"], + avalanche: ["9M", "8M", "4M"], block: ["7T", "6T", "5T", "4T"], - bodypress: ["8M", "8L42"], - bodyslam: ["8M"], - brickbreak: ["8M", "7M", "6M", "5M", "4M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bodypress: ["9M", "9L42", "8M", "8L42"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], - confuseray: ["8L1", "7L1", "7S5", "7S6", "6L1", "5L1", "4L1", "4S0", "4S1"], - crushgrip: ["8L78", "8S8", "7L1", "7S7", "6L1", "5L75", "4L75", "4S2"], + confuseray: ["9M", "9L1", "8L1", "7L1", "7S5", "7S6", "6L1", "5L1", "4L1", "4S0", "4S1"], + crushgrip: ["9L78", "8L78", "8S8", "7L1", "7S7", "6L1", "5L75", "4L75", "4S2"], darkestlariat: ["8M"], dizzypunch: ["7L1", "7S5", "7S6", "6L1", "5L1", "4L1", "4S1"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - drainpunch: ["8M", "7T", "7S7", "6T", "5T", "4M"], - earthpower: ["8M", "7T", "6T", "5T", "4T"], - earthquake: ["8M", "7M", "6M", "5M", "4M"], - endure: ["8M", "4M"], - facade: ["8M", "7M", "6M", "5M", "4M"], - firepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - fling: ["8M", "7M", "6M", "5M", "4M"], - focusblast: ["8M", "7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], + drainpunch: ["9M", "8M", "7T", "7S7", "6T", "5T", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "9L12", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], foresight: ["7L1", "6L1", "6S4", "5L1", "4L1", "4S1"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["8M", "8L72", "8S8", "7M", "7L100", "6M", "6L100", "5M", "5L100", "4M", "4L100"], - gravity: ["7T", "6T", "5T", "4T"], - hammerarm: ["8L66", "8S8"], + gigaimpact: ["9M", "9L72", "8M", "8L72", "8S8", "7M", "7L100", "6M", "6L100", "5M", "5L100", "4M", "4L100"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L66", "8L66", "8S8"], + hardpress: ["9M"], headbutt: ["4T"], - heatcrash: ["8M"], - heavyslam: ["8M", "8L60", "7L1", "7S7", "6L1", "5L90"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "9L60", "8M", "8L60", "7L1", "7S7", "6L1", "5L90"], hiddenpower: ["7M", "6M", "5M", "4M"], - highhorsepower: ["8M"], - hyperbeam: ["8M", "7M", "6M", "5M", "4M"], - icepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - icywind: ["8M", "7T", "6T", "5T", "4T", "4S2"], - ironhead: ["8M", "7T", "6T", "5T", "4T", "4S2"], - knockoff: ["8L30", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "4S1"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "4S2"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T", "4S2"], + knockoff: ["9M", "9L30", "8L30", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "4S1"], megakick: ["8M"], - megapunch: ["8M", "8L36", "4L1"], + megapunch: ["9M", "9L36", "8M", "8L36", "4L1"], mudslap: ["4T"], naturalgift: ["4M"], naturepower: ["7M", "6M"], - payback: ["8M", "8L6", "7M", "7L65", "6M", "6L65", "5M", "5L65", "5S3"], - pound: ["8L1"], + payback: ["9L6", "8M", "8L6", "7M", "7L65", "6M", "6L65", "5M", "5L65", "5S3"], + pound: ["9L1", "8L1"], poweruppunch: ["6M"], - protect: ["8M", "8L24"], + protect: ["9M", "9L24", "8M", "8L24"], psychup: ["7M", "6M", "5M", "4M"], - raindance: ["8M", "7M", "6M", "5M", "4M"], - rest: ["8M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M", "4M"], revenge: ["8M", "8L12", "7L25", "7S5", "7S6", "6L25", "6S4", "5L25", "5S3", "4L25"], rockclimb: ["4M"], rockpolish: ["7M", "6M", "5M", "4M"], - rockslide: ["8M", "7M", "6M", "5M", "4M", "4S2"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "4S2"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M"], secretpower: ["6M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["8M", "7M", "6M", "5T", "4M"], - smackdown: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T", "4T"], - stomp: ["8L18", "4L1", "4S0"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "7M", "6M", "5M", "4M"], + stomp: ["9L18", "8L18", "4L1", "4S0"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], - substitute: ["8M", "7M", "6M", "5M", "4M"], - sunnyday: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], superpower: ["8M", "7T", "6T", "5T", "4T", "4L25", "4S0"], swagger: ["7M", "6M", "5M", "4M"], + terablast: ["9M"], terrainpulse: ["8T"], - thunder: ["8M", "7M", "6M", "5M", "4M"], - thunderbolt: ["8M", "7M", "6M", "5M", "4M"], - thunderpunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], - thunderwave: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - wideguard: ["8L48", "7L40", "6L40", "6S4", "5L40", "5S3"], - zenheadbutt: ["8M", "8L54", "8S8", "7T", "7L50", "7S5", "7S6", "7S7", "6T", "6L50", "6S4", "5T", "5L50", "5S3", "4T", "4L50", "4S0"], + wideguard: ["9L48", "8L48", "7L40", "6L40", "6S4", "5L40", "5S3"], + zenheadbutt: ["9M", "9L54", "8M", "8L54", "8S8", "7T", "7L50", "7S5", "7S6", "7S7", "6T", "6L50", "6S4", "5T", "5L50", "5S3", "4T", "4L50", "4S0"], }, eventData: [ {generation: 4, level: 70, shiny: 1, moves: ["confuseray", "stomp", "superpower", "zenheadbutt"]}, @@ -50787,13 +53114,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aquatail: ["7T", "6T", "5T", "4T"], aurasphere: ["9M", "9L56", "8M", "8L56", "7L37", "7S7", "6L37", "6S5", "6S6", "5L37", "5S4", "4L37"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], confuseray: ["9M"], + curse: ["9M"], cut: ["6M", "5M", "4M"], darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], defog: ["9L1", "8L1", "7T", "4M"], @@ -50805,7 +53133,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dragonpulse: ["9M", "8M", "7T", "6T", "5T", "5S4", "4M"], dragontail: ["9M", "7M", "6M", "5M"], dreameater: ["7M", "6M", "5M", "4M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], earthpower: ["9M", "9L70", "8M", "8L70", "7T", "7L33", "7S7", "6T", "6L33", "5T", "5L33", "4T", "4L33", "4S0"], earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], echoedvoice: ["7M", "6M", "5M"], @@ -50816,7 +53144,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], headbutt: ["4T"], healblock: ["4L50", "4S0"], hex: ["9M", "9L21", "8M", "8L21", "7L50", "6L50", "6S5", "5L50"], @@ -50832,17 +53160,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturalgift: ["4M"], ominouswind: ["7L6", "6L6", "5L6", "4T", "4L6", "4S1"], outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], - painsplit: ["9L49", "8L49", "7T", "6T", "5T", "4T"], + painsplit: ["9M", "9L49", "8L49", "7T", "6T", "5T", "4T"], payback: ["8M", "7M", "6M", "5M", "4M"], phantomforce: ["9M", "8M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M", "6M", "5M", "4M"], psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], psychup: ["7M", "6M", "5M", "4M"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], rest: ["9M", "8M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockclimb: ["4M"], rocksmash: ["6M", "5M", "4M"], round: ["8M", "7M", "6M", "5M"], @@ -50855,10 +53183,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowsneak: ["9L1", "8L1", "7L19", "6L19", "5L19", "4L19"], shockwave: ["7T", "6T", "4M"], silverwind: ["4M"], + skittersmack: ["9M"], slash: ["9L28", "8L28", "7L15", "6L15", "5L15", "4L15", "4S0"], sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], snore: ["8M", "7T", "6T", "5T", "4T"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], steelwing: ["8M", "7M", "6M", "4M"], stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], strength: ["6M", "5M", "4M"], @@ -50910,15 +53239,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dreameater: ["7M", "6M", "5M", "4M"], endure: ["9M", "8M", "4M"], energyball: ["9M", "8M", "7M", "6M", "5M", "5S2", "4M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], - futuresight: ["9L66", "8M", "8L66", "7L38", "7S4", "6L38", "6S3", "5L38", "5S1", "4L38", "4S0"], + futuresight: ["9M", "9L66", "8M", "8L66", "7L38", "7S4", "6L38", "6S3", "5L38", "5S1", "4L38", "4S0"], gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], - gravity: ["7T", "6T", "5T", "4T"], + gravity: ["9M", "7T", "6T", "5T", "4T"], guardswap: ["8M"], helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "5S2", "4M"], @@ -50943,7 +53272,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychicterrain: ["9M"], psychocut: ["9L36", "8M", "8L36", "8S5", "7L1", "6L1", "5L66", "5S1", "4L66"], psychoshift: ["8L24", "7L1", "6L1", "5L75", "4L75"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "8M", "8S5", "7M", "6M", "5M", "5S2"], raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], recycle: ["7T", "6T", "5T", "4M"], @@ -50988,60 +53317,72 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, phione: { learnset: { - acidarmor: ["7L31", "6L31", "5L31", "4L31"], + acidarmor: ["9L31", "7L31", "6L31", "5L31", "4L31"], + alluringvoice: ["9M"], ancientpower: ["4T"], - aquaring: ["7L54", "6L54", "5L54", "4L54"], - blizzard: ["7M", "6M", "5M", "4M"], + aquaring: ["9L54", "7L54", "6L54", "5L54", "4L54"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], bounce: ["7T", "6T", "5T", "4T"], brine: ["4M"], bubble: ["7L1", "6L1", "5L1", "4L1"], - bubblebeam: ["7L24", "6L24", "5L24", "4L24"], - charm: ["7L9", "6L9", "5L9", "4L9"], + bubblebeam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "4L9"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - dazzlinggleam: ["7M", "6M"], - dive: ["7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + dive: ["9L61", "7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], doubleteam: ["7M", "6M", "5M", "4M"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M", "4S0"], + grassknot: ["9M", "7M", "6M", "5M", "4M", "4S0"], hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], healbell: ["7T", "6T", "5T", "4T"], - helpinghand: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - icebeam: ["7M", "6M", "5M", "4M"], - icywind: ["7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], + hydropump: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lastresort: ["7T", "6T", "5T", "4T"], - liquidation: ["7T"], + liquidation: ["9M", "7T"], mudslap: ["4T"], naturalgift: ["4M"], - protect: ["7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], - raindance: ["7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69", "4S0"], - rest: ["7M", "6M", "5M", "4M", "4S0"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "9L69", "7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69", "4S0"], + rest: ["9M", "7M", "6M", "5M", "4M", "4S0"], return: ["7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M"], - scald: ["7M", "6M", "5M"], + scald: ["9M", "7M", "6M", "5M"], secretpower: ["6M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], - sleeptalk: ["7M", "6M", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - substitute: ["7M", "6M", "5M", "4M"], - supersonic: ["7L16", "6L16", "5L16", "4L16"], - surf: ["7M", "6M", "5M", "4M", "4S0"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9L16", "7L16", "6L16", "5L16", "4L16"], + surf: ["9M", "7M", "6M", "5M", "4M", "4S0"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], + swift: ["9M", "4T"], + takeheart: ["9L75"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], uproar: ["7T", "6T", "5T", "4T"], - uturn: ["7M", "6M", "5M", "4M"], - waterfall: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "7L46", "6T", "6L46", "5L46", "4M", "4L46"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L46", "7T", "7L46", "6T", "6L46", "5L46", "4M", "4L46"], watersport: ["7L1", "6L1", "5L1", "4L1"], - whirlpool: ["7L39", "6L39", "5L39", "4M", "4L39"], + weatherball: ["9M"], + whirlpool: ["9M", "9L39", "7L39", "6L39", "5L39", "4M", "4L39"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 4, level: 50, moves: ["grassknot", "raindance", "rest", "surf"], pokeball: "cherishball"}, @@ -51049,72 +53390,87 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, manaphy: { learnset: { - acidarmor: ["7L31", "6L31", "5L31", "4L31", "4S2"], + acidarmor: ["9L31", "7L31", "6L31", "5L31", "4L31", "4S2"], + alluringvoice: ["9M"], ancientpower: ["4T"], - aquaring: ["7L54", "7S6", "6L54", "5L54", "4L54", "4S3"], - blizzard: ["7M", "6M", "5M", "4M"], + aquaring: ["9L54", "7L54", "7S6", "6L54", "5L54", "4L54", "4S3"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], bounce: ["7T", "6T", "5T", "4T"], brine: ["4M"], bubble: ["7L1", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1"], - bubblebeam: ["7L24", "6L24", "5L24", "4L24"], - calmmind: ["7M", "6M", "5M", "4M"], - charm: ["7L9", "6L9", "5L9", "4L9"], + bubblebeam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "4L9"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - dazzlinggleam: ["7M", "6M"], - dive: ["7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + dive: ["9L61", "7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], doubleteam: ["7M", "6M", "5M", "4M"], - endure: ["4M"], - energyball: ["7M", "6M", "5M", "4M"], - facade: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], flash: ["6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], healbell: ["7T", "6T", "5T", "4T"], - heartswap: ["7L76", "7S6", "6L76", "6S4", "5L76", "4L76", "4S2", "4S3"], - helpinghand: ["7T", "6T", "5T", "4T"], + heartswap: ["9L1", "7L76", "7S6", "6L76", "6S4", "5L76", "4L76", "4S2", "4S3"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - icebeam: ["7M", "6M", "5M", "4M"], - icywind: ["7T", "6T", "5T", "4T"], - knockoff: ["7T", "6T", "5T", "4T"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], lastresort: ["7T", "6T", "5T", "4T"], - lightscreen: ["7M", "6M", "5M", "4M"], - liquidation: ["7T"], - mudslap: ["4T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "7T"], + mudslap: ["9M", "4T"], naturalgift: ["4M"], - protect: ["7M", "6M", "5M", "4M"], - psychic: ["7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], - raindance: ["7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69"], - reflect: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "9L69", "7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M"], - scald: ["7M", "6M", "5M"], + scald: ["9M", "7M", "6M", "5M"], secretpower: ["6M", "4M"], - shadowball: ["7M", "6M", "5M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], signalbeam: ["7T", "6T", "5T", "4T"], - skillswap: ["7T", "6T", "5T", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], + skillswap: ["9M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - substitute: ["7M", "6M", "5M", "4M"], - supersonic: ["7L16", "6L16", "5L16", "4L16"], - surf: ["7M", "6M", "5M", "4M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9L16", "7L16", "6L16", "5L16", "4L16"], + surf: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], - tailglow: ["7L1", "7S6", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1"], + swift: ["9M", "4T"], + tailglow: ["9L1", "7L1", "7S6", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1"], + takeheart: ["9L76"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], uproar: ["7T", "6T", "5T", "4T"], - uturn: ["7M", "6M", "5M", "4M"], - waterfall: ["7M", "6M", "5M", "4M"], - waterpulse: ["7T", "7L46", "7S6", "6T", "6L46", "5L46", "4M", "4L46", "4S2", "4S3"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L46", "7T", "7L46", "7S6", "6T", "6L46", "5L46", "4M", "4L46", "4S2", "4S3"], watersport: ["7L1", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1", "4S3"], - whirlpool: ["7L39", "6L39", "5L39", "4M", "4L39", "4S2"], + weatherball: ["9M"], + whirlpool: ["9M", "9L39", "7L39", "6L39", "5L39", "4M", "4L39", "4S2"], + zenheadbutt: ["9M"], }, eventData: [ {generation: 4, level: 5, moves: ["tailglow", "bubble", "watersport"]}, @@ -51130,94 +53486,101 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkrai: { learnset: { aerialace: ["7M", "6M", "5M", "4M"], - blizzard: ["7M", "6M", "5M", "4M"], - brickbreak: ["7M", "6M", "5M", "4M"], - calmmind: ["7M", "6M", "5M", "4M"], - chargebeam: ["7M", "6M", "5M", "4M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["9M"], cut: ["6M", "5M", "4M"], - darkpulse: ["7M", "7L93", "6M", "6L93", "6S5", "5T", "5L93", "4M", "4L93", "4S2"], - darkvoid: ["7L66", "7S7", "6L66", "6S5", "6S6", "5L66", "5S4", "4L66", "4S2"], - disable: ["7L1", "6L1", "5L1", "4L1"], - doubleteam: ["7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L47", "4S2", "4S3"], - drainpunch: ["7T", "6T", "5T", "4M"], - dreameater: ["7M", "7L84", "6M", "6L84", "6S5", "5M", "5L84", "4M", "4L84"], + darkpulse: ["9M", "9L93", "9S8", "7M", "7L93", "6M", "6L93", "6S5", "5T", "5L93", "4M", "4L93", "4S2"], + darkvoid: ["9L66", "7L66", "7S7", "6L66", "6S5", "6S6", "5L66", "5S4", "4L66", "4S2"], + disable: ["9L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["9L47", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L47", "4S2", "4S3"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["9L84", "9S8", "7M", "7L84", "6M", "6L84", "6S5", "5M", "5L84", "4M", "4L84"], embargo: ["7M", "6M", "5M", "4M", "4L75"], - endure: ["4M"], - facade: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], feintattack: ["7L29", "7S7", "6L29", "6S6", "5L29", "5S4", "4L29", "4S3"], flash: ["6M", "5M", "4M"], - fling: ["7M", "6M", "5M", "4M"], - focusblast: ["7M", "6M", "5M", "4M"], - focuspunch: ["7T", "6T", "4M"], - foulplay: ["7T", "6T", "5T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M", "4M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - haze: ["7L57", "6L57", "5L57", "4L57"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + haze: ["9M", "9L57", "7L57", "6L57", "5L57", "4L57"], headbutt: ["4T"], + hex: ["9M"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], - hypnosis: ["7L20", "6L20", "5L20", "4L20", "4S0", "4S1", "4S3"], - icebeam: ["7M", "6M", "5M", "4M"], - icywind: ["7T", "6T", "5T", "4T"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypnosis: ["9L20", "9S8", "7L20", "6L20", "5L20", "4L20", "4S0", "4S1", "4S3"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], incinerate: ["6M", "5M"], - knockoff: ["7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M"], lastresort: ["7T", "6T", "5T", "4T"], mudslap: ["4T"], - nastyplot: ["7L75", "6L75", "5L75", "4L75"], + nastyplot: ["9M", "9L75", "7L75", "6L75", "5L75", "4L75"], naturalgift: ["4M"], nightmare: ["7L38", "7S7", "6L38", "6S6", "5L38", "5S4", "4L38", "4S0", "4S1", "4S3"], - nightshade: ["4L1"], + nightshade: ["9M", "9L38", "4L1"], ominouswind: ["7L1", "7S7", "6L1", "6S6", "5L1", "5S4", "4T", "4L1"], payback: ["7M", "6M", "5M", "4M"], phantomforce: ["6S5"], - poisonjab: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M", "4M"], - psychic: ["7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + psyshock: ["9M"], pursuit: ["4L29", "4S0"], - quickattack: ["7L11", "6L11", "5L11", "4L11", "4S0"], - raindance: ["7M", "6M", "5M", "4M"], - rest: ["7M", "6M", "5M", "4M"], + quickattack: ["9L11", "7L11", "6L11", "5L11", "4L11", "4S0"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M"], roaroftime: ["4S1"], rockclimb: ["4M"], - rockslide: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M", "4M"], - shadowball: ["7M", "6M", "5M", "4M", "4S2"], - shadowclaw: ["7M", "6M", "5M", "4M"], + shadowball: ["9M", "9S8", "7M", "6M", "5M", "4M", "4S2"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], shockwave: ["7T", "6T", "4M"], - sleeptalk: ["7M", "6M", "5T", "4M"], - sludgebomb: ["7M", "6M", "5M", "4M"], - snarl: ["7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M"], + snarl: ["9M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], spacialrend: ["4S1"], - spite: ["7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M"], - substitute: ["7M", "6M", "5M", "4M"], - suckerpunch: ["4T"], - sunnyday: ["7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L29", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - swift: ["4T"], - swordsdance: ["7M", "6M", "5M", "4M"], - taunt: ["7M", "6M", "5M", "4M"], - thief: ["7M", "6M", "5M", "4M"], - throatchop: ["7T"], - thunder: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + throatchop: ["9M", "7T"], + thunder: ["9M", "7M", "6M", "5M", "4M"], thunderbolt: ["7M", "6M", "5M", "4M"], - thunderwave: ["7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], torment: ["7M", "6M", "5M", "4M"], toxic: ["7M", "6M", "5M", "4M"], - trick: ["7T", "6T", "5T", "4T"], - willowisp: ["7M", "6M", "5M", "4M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], wonderroom: ["7T", "6T", "5T"], - xscissor: ["7M", "6M", "5M", "4M"], + xscissor: ["9M", "7M", "6M", "5M", "4M"], }, eventData: [ {generation: 4, level: 40, shiny: 1, moves: ["quickattack", "hypnosis", "pursuit", "nightmare"]}, @@ -51228,73 +53591,84 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 50, moves: ["darkvoid", "darkpulse", "phantomforce", "dreameater"], pokeball: "cherishball"}, {generation: 6, level: 100, moves: ["darkvoid", "ominouswind", "nightmare", "feintattack"], pokeball: "cherishball"}, {generation: 7, level: 50, moves: ["darkvoid", "feintattack", "nightmare", "ominouswind"], pokeball: "cherishball"}, + {generation: 9, level: 50, moves: ["darkpulse", "shadowball", "hypnosis", "dreameater"], pokeball: "cherishball"}, ], eventOnly: true, }, shaymin: { learnset: { - aircutter: ["4T"], - airslash: ["7L64", "6L64", "6S3", "5L64", "4L64"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L64", "7L64", "6L64", "6S3", "5L64", "4L64"], aromatherapy: ["7L64", "6L64", "6S4", "5L64", "4L64", "4S0"], - bulletseed: ["4M"], + batonpass: ["9M"], + bulletseed: ["9M", "4M"], celebrate: ["7S5"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - dazzlinggleam: ["7M", "6M"], + dazzlinggleam: ["9M", "7M", "6M"], defensecurl: ["4L1"], + disarmingvoice: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], - earthpower: ["7T", "6T", "5T", "4T"], - endeavor: ["7T", "6T", "5T", "4T"], - endure: ["4M"], - energyball: ["7M", "7L73", "6M", "6L73", "6S4", "5M", "5L73", "4M", "4L73", "4S0"], - facade: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + endeavor: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + energyball: ["9M", "9L73", "7M", "7L73", "6M", "6L73", "6S4", "5M", "5L73", "4M", "4L73", "4S0"], + facade: ["9M", "7M", "6M", "5M", "4M"], flash: ["6M", "5M", "4M"], frustration: ["7M", "6M", "5M", "4M"], - gigadrain: ["7T", "6T", "5T", "4M"], - gigaimpact: ["7M", "6M", "5M", "4M"], - grassknot: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], grasswhistle: ["4L82"], - growth: ["7L1", "7S5", "6L1", "6S3", "5L1", "4L1", "4S1"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9L64"], + growth: ["9L1", "7L1", "7S5", "6L1", "6S3", "5L1", "4L1", "4S1"], headbutt: ["4T"], - healingwish: ["7L91", "6L91", "5L91", "4L91"], + healingwish: ["9L91", "7L91", "6L91", "5L91", "4L91"], hiddenpower: ["7M", "6M", "5M", "4M"], - hyperbeam: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T", "4T"], - leafstorm: ["7L91", "6L91", "5L91", "4L91"], - leechseed: ["7L19", "6L19", "5L19", "5S2", "4L19", "4S1"], + leafstorm: ["9M", "9L91", "7L91", "6L91", "5L91", "4L91"], + leechseed: ["9L19", "7L19", "6L19", "5L19", "5S2", "4L19", "4S1"], luckychant: ["4L91"], - magicalleaf: ["7L10", "6L10", "6S3", "5L10", "4L10", "4S1"], + magicalleaf: ["9M", "9L10", "7L10", "6L10", "6S3", "5L10", "4L10", "4S1"], mudslap: ["4T"], naturalgift: ["7L46", "6L46", "5L46", "4M", "4L46"], naturepower: ["7M", "6M"], ominouswind: ["4T"], - protect: ["7M", "6M", "5M", "4M"], - psychic: ["7M", "6M", "5M", "4M"], - psychup: ["7M", "6M", "5M", "4M"], - quickattack: ["7L28", "6L28", "5L28", "4L28"], - rest: ["7M", "6M", "5M", "4M"], + petalblizzard: ["9M"], + playrough: ["9M", "9L46"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], + quickattack: ["9L28", "7L28", "6L28", "5L28", "4L28"], + rest: ["9M", "7M", "6M", "5M", "4M"], return: ["7M", "7S5", "6M", "5M", "4M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M"], secretpower: ["6M", "4M"], - seedbomb: ["7T", "6T", "5T", "4T"], - seedflare: ["7L100", "7S5", "6L100", "6S3", "6S4", "5L100", "5S2", "4L100", "4S0"], - sleeptalk: ["7M", "6M", "5T", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seedflare: ["9L100", "7L100", "7S5", "6L100", "6S3", "6S4", "5L100", "5S2", "4L100", "4S0"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], snore: ["7T", "6T", "5T", "4T"], - solarbeam: ["7M", "6M", "5M", "4M"], - substitute: ["7M", "6M", "6S4", "5M", "4M", "4S0"], - sunnyday: ["7M", "6M", "5M", "4M"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "6S4", "5M", "4M", "4S0"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], - sweetkiss: ["7L82", "6L82", "5L82", "4L82"], - sweetscent: ["7L37", "6L37", "5L37", "5S2", "4L37"], - swift: ["4T"], - swordsdance: ["7M", "6M", "5M", "4M"], - synthesis: ["7T", "7L28", "6T", "6L28", "5T", "5L28", "5S2", "4T", "4L28", "4S1"], - tailwind: ["7T", "6T", "5T", "4T"], + sweetkiss: ["9L82", "7L82", "6L82", "5L82", "4L82"], + sweetscent: ["9L37", "7L37", "6L37", "5L37", "5S2", "4L37"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L28", "7T", "7L28", "6T", "6L28", "5T", "5L28", "5S2", "4T", "4L28", "4S1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M", "4M"], - worryseed: ["7T", "7L55", "6T", "6L55", "5T", "5L55", "4T", "4L55"], - zenheadbutt: ["7T", "6T", "5T", "4T"], + trailblaze: ["9M"], + worryseed: ["9L55", "7T", "7L55", "6T", "6L55", "5T", "5L55", "4T", "4L55"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], }, eventData: [ {generation: 4, level: 50, moves: ["seedflare", "aromatherapy", "substitute", "energyball"], pokeball: "cherishball"}, @@ -51340,6 +53714,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dazzlinggleam: ["9M"], defog: ["7T", "4M"], dive: ["6M", "4T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M", "4M"], dracometeor: ["9M", "7T", "6T", "5T", "4T"], dragonclaw: ["9M", "7M", "6M", "5M", "4M"], @@ -51365,12 +53740,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foulplay: ["9M"], frustration: ["7M", "6M", "5M", "4M"], furycutter: ["4T"], - futuresight: ["9L60", "7L60", "6L60", "5L60", "4L60"], + futuresight: ["9M", "9L60", "7L60", "6L60", "5L60", "4L60"], gigadrain: ["9M", "7T", "6T", "5T", "4M"], gigaimpact: ["9M", "7M", "6M", "5M", "4M"], grassknot: ["9M", "7M", "6M", "5M", "4M"], grassyterrain: ["9M"], - gravity: ["9L10", "7T", "7L10", "6T", "6L10", "5T", "5L10", "4T", "4L10"], + gravity: ["9M", "9L10", "7T", "7L10", "6T", "6L10", "5T", "5L10", "4T", "4L10"], gunkshot: ["9M"], hail: ["7M", "6M", "5M", "4M"], headbutt: ["4T"], @@ -51399,6 +53774,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { liquidation: ["9M", "7T"], magicalleaf: ["9M"], magiccoat: ["7T", "6T", "5T", "4T"], + meteorbeam: ["9M"], mistyterrain: ["9M"], mudslap: ["4T"], naturalgift: ["7L1", "6L1", "5L1", "4M", "4L1"], @@ -51413,7 +53789,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "7M", "6M", "5M", "4M"], psychic: ["9M", "7M", "6M", "5M", "4M"], psychicterrain: ["9M"], - psychup: ["7M", "6M", "5M", "4M"], + psychup: ["9M", "7M", "6M", "5M", "4M"], psyshock: ["9M", "7M", "6M", "5M"], punishment: ["7L1", "6L1", "5L1", "4L1"], quash: ["7M", "6M", "5M"], @@ -51425,7 +53801,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "6M", "5M", "4M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M", "4M"], - roar: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], roaroftime: ["4S0"], rockclimb: ["4M"], rockslide: ["9M", "7M", "6M", "5M", "4M"], @@ -51435,6 +53811,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { safeguard: ["7M", "6M", "5M", "4M"], sandstorm: ["9M", "7M", "6M", "5M", "4M"], scaryface: ["9M"], + scorchingsands: ["9M"], secretpower: ["6M", "4M"], seismictoss: ["9L1", "7L1", "6L1", "5L1", "4L1"], shadowball: ["9M", "7M", "6M", "5M", "4M"], @@ -51457,6 +53834,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["6M", "5M", "4M"], substitute: ["9M", "7M", "6M", "5M", "4M"], sunnyday: ["9M", "7M", "6M", "5M", "4M"], + supercellslam: ["9M"], surf: ["9M", "7M", "6M", "5M", "4M"], swagger: ["7M", "6M", "5M", "4M"], swift: ["9M", "4T"], @@ -51660,73 +54038,83 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, snivy: { learnset: { - aerialace: ["7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], aquatail: ["7T", "6T", "5T"], aromatherapy: ["5S0"], attract: ["7M", "6M", "5M"], bind: ["7T", "6T", "5T"], - calmmind: ["7M", "6M", "5M"], + bulletseed: ["9M"], + calmmind: ["9M", "7M", "6M", "5M"], captivate: ["7E", "6E", "5E"], - coil: ["7L31", "6L31", "5L31"], + coil: ["9L31", "7L31", "6L31", "5L31"], confide: ["7M", "6M"], cut: ["6M", "5M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - energyball: ["7M", "6M", "5M", "5S0"], - facade: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M", "5M", "5S0"], + facade: ["9M", "7M", "6M", "5M"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gastroacid: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], - gigadrain: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], - glare: ["7E", "6E", "5E"], - grassknot: ["7M", "6M", "5M"], - grasspledge: ["7T", "6T", "5T"], - grassyterrain: ["7E", "6E"], - growth: ["7L13", "6L13", "5L13", "5S0"], + gastroacid: ["9L37", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + gigadrain: ["9M", "9L34", "7T", "7L34", "6T", "6L34", "5T", "5L34"], + glare: ["9E", "7E", "6E", "5E"], + grassknot: ["9M", "7M", "6M", "5M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M", "7E", "6E"], + growth: ["9L13", "7L13", "6L13", "5L13", "5S0"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - irontail: ["7T", "7E", "6T", "6E", "5T", "5E"], - knockoff: ["7T", "6T", "5T"], - leafblade: ["7L28", "6L28", "5L28"], - leafstorm: ["7L43", "6L43", "5L43"], + irontail: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["9M", "7T", "6T", "5T"], + leafblade: ["9L28", "7L28", "6L28", "5L28"], + leafstorm: ["9M", "9L40", "7L43", "6L43", "5L43"], leaftornado: ["7L16", "6L16", "5L16"], - leechseed: ["7L19", "6L19", "5L19"], - leer: ["7L4", "6L4", "5L4"], - lightscreen: ["7M", "6M", "5M"], - magicalleaf: ["7E", "6E", "5E"], - meanlook: ["7E", "6E", "5E"], - megadrain: ["7L22", "6L22", "5L22"], - mirrorcoat: ["7E", "6E", "5E"], + leechseed: ["9L19", "7L19", "6L19", "5L19"], + leer: ["9L4", "7L4", "6L4", "5L4"], + lightscreen: ["9M", "7M", "6M", "5M"], + magicalleaf: ["9M", "9L16", "7E", "6E", "5E"], + meanlook: ["9E", "7E", "6E", "5E"], + megadrain: ["9L22", "7L22", "6L22", "5L22"], + mirrorcoat: ["9E", "7E", "6E", "5E"], naturalgift: ["7E", "6E", "5E"], naturepower: ["7M", "6M"], - protect: ["7M", "6M", "5M"], + petalblizzard: ["9M"], + protect: ["9M", "7M", "6M", "5M"], pursuit: ["7E", "6E", "5E"], - reflect: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["7T", "6T", "5T"], - slam: ["7L25", "6L25", "5L25"], - sleeptalk: ["7M", "6M", "5T"], + seedbomb: ["9M", "7T", "6T", "5T"], + slam: ["9L25", "7L25", "6L25", "5L25"], + sleeptalk: ["9M", "7M", "6M", "5T"], snatch: ["7T", "6T", "5T"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], - substitute: ["7M", "6M", "5M"], - sunnyday: ["7M", "6M", "5M"], + solarbeam: ["9M", "7M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - sweetscent: ["7E", "6E", "5E"], - swordsdance: ["7M", "6M", "5M"], - synthesis: ["7T", "6T", "5T", "5S0"], - tackle: ["7L1", "6L1", "5L1"], - taunt: ["7M", "6M", "5M"], + sweetscent: ["9E", "7E", "6E", "5E"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M", "5M"], + synthesis: ["9E", "7T", "6T", "5T", "5S0"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], torment: ["7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - twister: ["7E", "6E", "5E"], - vinewhip: ["7L7", "6L7", "5L7"], + trailblaze: ["9M"], + twister: ["9E", "7E", "6E", "5E"], + vinewhip: ["9L7", "7L7", "6L7", "5L7"], workup: ["7M"], worryseed: ["7T", "6T", "5T"], - wrap: ["7L10", "6L10", "5L10"], + wrap: ["9L10", "7L10", "6L10", "5L10"], wringout: ["7L37", "6L37", "5L37"], }, eventData: [ @@ -51735,133 +54123,161 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, servine: { learnset: { - aerialace: ["7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], aquatail: ["7T", "6T", "5T"], attract: ["7M", "6M", "5M"], bind: ["7T", "6T", "5T"], - calmmind: ["7M", "6M", "5M"], - coil: ["7L36", "6L36", "5L36"], + bulletseed: ["9M"], + calmmind: ["9M", "7M", "6M", "5M"], + coil: ["9L36", "7L36", "6L36", "5L36"], confide: ["7M", "6M"], cut: ["6M", "5M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - energyball: ["7M", "6M", "5M"], - facade: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gastroacid: ["7T", "7L48", "6T", "6L48", "5T", "5L48"], - gigadrain: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], - grassknot: ["7M", "6M", "5M"], - grasspledge: ["7T", "6T", "5T"], - growth: ["7L13", "6L13", "5L13"], + gastroacid: ["9L44", "7T", "7L48", "6T", "6L48", "5T", "5L48"], + gigadrain: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + grassknot: ["9M", "7M", "6M", "5M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L13", "7L13", "6L13", "5L13"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], irontail: ["7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - leafblade: ["7L32", "6L32", "5L32"], - leafstorm: ["7L52", "6L52", "5L52"], + knockoff: ["9M", "7T", "6T", "5T"], + leafblade: ["9L32", "7L32", "6L32", "5L32"], + leafstorm: ["9M", "9L48", "7L52", "6L52", "5L52"], leaftornado: ["7L16", "6L16", "5L16"], - leechseed: ["7L20", "6L20", "5L20"], - leer: ["7L1", "6L1", "5L1"], - lightscreen: ["7M", "6M", "5M"], - megadrain: ["7L24", "6L24", "5L24"], + leechseed: ["9L20", "7L20", "6L20", "5L20"], + leer: ["9L1", "7L1", "6L1", "5L1"], + lightscreen: ["9M", "7M", "6M", "5M"], + magicalleaf: ["9M", "9L16"], + megadrain: ["9L24", "7L24", "6L24", "5L24"], naturepower: ["7M", "6M"], - protect: ["7M", "6M", "5M"], - reflect: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + petalblizzard: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["7T", "6T", "5T"], - slam: ["7L28", "6L28", "5L28"], - sleeptalk: ["7M", "6M", "5T"], + seedbomb: ["9M", "7T", "6T", "5T"], + slam: ["9L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "7M", "6M", "5T"], snatch: ["7T", "6T", "5T"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], - substitute: ["7M", "6M", "5M"], - sunnyday: ["7M", "6M", "5M"], + solarbeam: ["9M", "7M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swordsdance: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M", "5M"], synthesis: ["7T", "6T", "5T"], - tackle: ["7L1", "6L1", "5L1"], - taunt: ["7M", "6M", "5M"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], torment: ["7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - vinewhip: ["7L1", "6L1", "5L1"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L1", "5L1"], workup: ["7M"], worryseed: ["7T", "6T", "5T"], - wrap: ["7L1", "6L1", "5L1"], + wrap: ["9L1", "7L1", "6L1", "5L1"], wringout: ["7L44", "6L44", "5L44"], }, }, serperior: { learnset: { - aerialace: ["7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], aquatail: ["7T", "6T", "5T"], attract: ["7M", "6M", "5M"], bind: ["7T", "6T", "5T"], + bodyslam: ["9M"], + breakingswipe: ["9M"], brutalswing: ["7M"], - calmmind: ["7M", "6M", "5M"], - coil: ["7L38", "6L38", "5L38"], + bulletseed: ["9M"], + calmmind: ["9M", "7M", "6M", "5M"], + coil: ["9L38", "7L38", "6L38", "5L38"], confide: ["7M", "6M"], cut: ["6M", "5M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dragonpulse: ["7T", "6T", "5T"], - dragontail: ["7M", "6M", "5M"], - energyball: ["7M", "6M", "5M"], - facade: ["7M", "6M", "5M"], + dragonpulse: ["9M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], flash: ["6M", "5M"], - frenzyplant: ["7T", "6T", "5T"], + frenzyplant: ["9M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M"], - gastroacid: ["7T", "7L56", "6T", "6L56", "5T", "5L56"], - gigadrain: ["7T", "7L44", "6T", "6L44", "6S1", "5T", "5L44", "5S0"], - gigaimpact: ["7M", "6M", "5M"], - grassknot: ["7M", "6M", "5M"], - grasspledge: ["7T", "6T", "5T"], - growth: ["7L13", "6L13", "5L13"], + gastroacid: ["9L50", "7T", "7L56", "6T", "6L56", "5T", "5L56"], + gigadrain: ["9M", "9L44", "7T", "7L44", "6T", "6L44", "6S1", "5T", "5L44", "5S0"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L13", "7L13", "6L13", "5L13"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], holdback: ["6S1"], - hyperbeam: ["7M", "6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M"], irontail: ["7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - leafblade: ["7L32", "6L32", "5L32"], - leafstorm: ["7L62", "6L62", "6S1", "5L62", "5S0"], + knockoff: ["9M", "7T", "6T", "5T"], + leafblade: ["9L32", "7L32", "6L32", "5L32"], + leafstorm: ["9M", "9L56", "7L62", "6L62", "6S1", "5L62", "5S0"], leaftornado: ["7L16", "6L16", "5L16"], - leechseed: ["7L20", "6L20", "5L20", "5S0"], - leer: ["7L1", "6L1", "5L1"], - lightscreen: ["7M", "6M", "5M"], - megadrain: ["7L24", "6L24", "5L24"], + leechseed: ["9L20", "7L20", "6L20", "5L20", "5S0"], + leer: ["9L1", "7L1", "6L1", "5L1"], + lightscreen: ["9M", "7M", "6M", "5M"], + magicalleaf: ["9M", "9L16"], + megadrain: ["9L24", "7L24", "6L24", "5L24"], naturepower: ["7M", "6M"], - outrage: ["7T", "6T", "5T"], - protect: ["7M", "6M", "5M"], - reflect: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + outrage: ["9M", "7T", "6T", "5T"], + petalblizzard: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], rocksmash: ["6M", "5M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M"], + scaleshot: ["9M"], + scaryface: ["9M"], secretpower: ["6M"], - seedbomb: ["7T", "6T", "5T"], - slam: ["7L28", "6L28", "5L28"], - sleeptalk: ["7M", "6M", "5T"], + seedbomb: ["9M", "7T", "6T", "5T"], + slam: ["9L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "7M", "6M", "5T"], snatch: ["7T", "6T", "5T"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], + solarbeam: ["9M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["7M", "6M", "5M", "5S0"], - sunnyday: ["7M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "5S0"], + sunnyday: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swordsdance: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M", "5M"], synthesis: ["7T", "6T", "5T"], - tackle: ["7L1", "6L1", "5L1"], - taunt: ["7M", "6M", "5M"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], torment: ["7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - vinewhip: ["7L1", "6L1", "5L1"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L1", "5L1"], workup: ["7M"], worryseed: ["7T", "6T", "5T"], - wrap: ["7L1", "6L1", "5L1"], + wrap: ["9L1", "7L1", "6L1", "5L1"], wringout: ["7L50", "6L50", "6S1", "5L50"], }, eventData: [ @@ -51871,226 +54287,274 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, tepig: { learnset: { - assurance: ["7L31", "6L31", "5L31"], + assurance: ["9L31", "7L31", "6L31", "5L31"], attract: ["7M", "6M", "5M"], - bodyslam: ["7E", "6E", "5E"], + bodyslam: ["9M", "7E", "6E", "5E"], burnup: ["7E"], confide: ["7M", "6M"], covet: ["7T", "7E", "6T", "6E", "5T", "5E"], - curse: ["7E", "6E", "5E"], - defensecurl: ["7L13", "6L13", "5L13"], + curse: ["9M", "7E", "6E", "5E"], + defensecurl: ["9L13", "7L13", "6L13", "5L13"], + dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], echoedvoice: ["7M", "6M", "5M"], - ember: ["7L7", "6L7", "5L7"], - endeavor: ["7T", "7E", "6T", "6E", "5T", "5E"], - facade: ["7M", "6M", "5M"], - fireblast: ["7M", "6M", "5M"], - firepledge: ["7T", "6T", "5T"], - flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], - flamethrower: ["7M", "7L33", "6M", "6L33", "5M", "5L33"], - flareblitz: ["7L43", "6L43", "5L43"], + ember: ["9L7", "7L7", "6L7", "5L7"], + endeavor: ["9M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "9L9"], + facade: ["9M", "7M", "6M", "5M"], + fireblast: ["9M", "7M", "6M", "5M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + flareblitz: ["9M", "9L43", "7L43", "6L43", "5L43"], frustration: ["7M", "6M", "5M"], - grassknot: ["7M", "6M", "5M"], - gyroball: ["7M", "6M", "5M"], - headsmash: ["7L37", "6L37", "5L37"], - heatcrash: ["7L27", "6L27", "5L27"], - heatwave: ["7T", "6T", "5T"], - heavyslam: ["7E", "6E", "5E"], - helpinghand: ["7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], + gyroball: ["9M", "7M", "6M", "5M"], + headsmash: ["9L37", "7L37", "6L37", "5L37"], + heatcrash: ["9M", "9L27", "7L27", "6L27", "5L27"], + heatwave: ["9M", "7T", "6T", "5T"], + heavyslam: ["9M", "7E", "6E", "5E"], + helpinghand: ["9M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T"], magnitude: ["7E", "6E", "5E"], + mudslap: ["9M"], odorsleuth: ["7L9", "6L9", "5L9"], - overheat: ["7M", "6M", "5M"], - protect: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + overheat: ["9M", "7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roar: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + roar: ["9M", "9L39", "7M", "7L39", "6M", "6L39", "5M", "5L39"], rocksmash: ["6M", "5M"], - rocktomb: ["7M", "6M", "5M"], - rollout: ["7L21", "6L21", "5L21"], + rocktomb: ["9M", "7M", "6M", "5M"], + rollout: ["9L21", "7L21", "6L21", "5L21"], round: ["7M", "6M", "5M"], secretpower: ["6M"], - sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E"], - smog: ["7L19", "6L19", "5L19"], + sleeptalk: ["9M", "7M", "7E", "6M", "6E", "5T", "5E"], + smog: ["9L19", "7L19", "6L19", "5L19"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], - stompingtantrum: ["7T"], + solarbeam: ["9M", "7M", "6M", "5M"], + stompingtantrum: ["9M", "7T"], strength: ["6M", "5M"], - substitute: ["7M", "6M", "5M"], - suckerpunch: ["7E", "6E"], - sunnyday: ["7M", "6M", "5M"], - superpower: ["7T", "7E", "6T", "6E", "5T", "5E"], + substitute: ["9M", "7M", "6M", "5M"], + suckerpunch: ["9E", "7E", "6E"], + sunnyday: ["9M", "7M", "6M", "5M"], + superpower: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], swagger: ["7M", "6M", "5M"], - tackle: ["7L1", "6L1", "5L1"], - tailwhip: ["7L3", "6L3", "5L3"], - takedown: ["7L25", "6L25", "5L25"], - taunt: ["7M", "6M", "5M"], - thrash: ["7E", "6E", "5E"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L3", "7L3", "6L3", "5L3"], + takedown: ["9M", "9L25", "7L25", "6L25", "5L25"], + taunt: ["9M", "7M", "6M", "5M"], + temperflare: ["9M"], + terablast: ["9M"], + thrash: ["9E", "7E", "6E", "5E"], toxic: ["7M", "6M", "5M"], - wildcharge: ["7M", "6M", "5M"], - willowisp: ["7M", "6M", "5M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M"], workup: ["7M"], - yawn: ["7E", "6E", "5E"], - zenheadbutt: ["7T", "6T"], + yawn: ["9E", "7E", "6E", "5E"], + zenheadbutt: ["9M", "7T", "6T"], }, }, pignite: { learnset: { - armthrust: ["7L1", "6L17", "5L17"], - assurance: ["7L36", "6L36", "5L36"], + armthrust: ["9L0", "7L1", "6L17", "5L17"], + assurance: ["9L36", "7L36", "6L36", "5L36"], attract: ["7M", "6M", "5M"], - brickbreak: ["7M", "6M", "5M"], - bulldoze: ["7M", "6M", "5M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M"], + bulkup: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + closecombat: ["9M"], + coaching: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - defensecurl: ["7L13", "6L13", "5L13"], + curse: ["9M"], + defensecurl: ["9L13", "7L13", "6L13", "5L13"], + dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M"], echoedvoice: ["7M", "6M", "5M"], - ember: ["7L1", "6L1", "5L1"], - endeavor: ["7T", "6T", "5T"], - facade: ["7M", "6M", "5M"], - fireblast: ["7M", "6M", "5M"], - firepledge: ["7T", "6T", "5T"], - firepunch: ["7T", "6T", "5T"], - flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], - flamethrower: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], - flareblitz: ["7L52", "6L52", "5L52"], - fling: ["7M", "6M", "5M"], - focusblast: ["7M", "6M", "5M"], - focuspunch: ["7T", "6T"], + ember: ["9L1", "7L1", "6L1", "5L1"], + endeavor: ["9M", "7T", "6T", "5T"], + endure: ["9M", "9L1"], + facade: ["9M", "7M", "6M", "5M"], + fireblast: ["9M", "7M", "6M", "5M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "6T", "5T"], + firespin: ["9M"], + flamecharge: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["9M", "9L39", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + flareblitz: ["9M", "9L52", "7L52", "6L52", "5L52"], + fling: ["9M", "7M", "6M", "5M"], + focusblast: ["9M", "7M", "6M", "5M"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M", "5M"], - grassknot: ["7M", "6M", "5M"], - gyroball: ["7M", "6M", "5M"], - headsmash: ["7L44", "6L44", "5L44"], - heatcrash: ["7L31", "6L31", "5L31"], - heatwave: ["7T", "6T", "5T"], - helpinghand: ["7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], + gyroball: ["9M", "7M", "6M", "5M"], + headsmash: ["9L44", "7L44", "6L44", "5L44"], + heatcrash: ["9M", "9L31", "7L31", "6L31", "5L31"], + heatwave: ["9M", "7T", "6T", "5T"], + heavyslam: ["9M"], + helpinghand: ["9M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["9M"], incinerate: ["6M", "5M"], irontail: ["7T", "6T", "5T"], - lowkick: ["7T", "6T", "5T"], - lowsweep: ["7M", "6M", "5M"], + knockoff: ["9M"], + lowkick: ["9M", "7T", "6T", "5T"], + lowsweep: ["9M", "7M", "6M", "5M"], + mudslap: ["9M"], odorsleuth: ["7L1", "6L1", "5L1"], - overheat: ["7M", "6M", "5M"], - poisonjab: ["7M", "6M", "5M"], + overheat: ["9M", "7M", "6M", "5M"], + poisonjab: ["9M", "7M", "6M", "5M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roar: ["7M", "7L47", "6M", "6L47", "5M", "5L47"], - rockslide: ["7M", "6M", "5M"], + reversal: ["9M"], + roar: ["9M", "9L47", "7M", "7L47", "6M", "6L47", "5M", "5L47"], + rockslide: ["9M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["7M", "6M", "5M"], - rollout: ["7L23", "6L23", "5L23"], + rocktomb: ["9M", "7M", "6M", "5M"], + rollout: ["9L23", "7L23", "6L23", "5L23"], round: ["7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M"], - sleeptalk: ["7M", "6M", "5T"], - smog: ["7L20", "6L20", "5L20"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smog: ["9L20", "7L20", "6L20", "5L20"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "6M", "5M"], + solarbeam: ["9M", "7M", "6M", "5M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["7M", "6M", "5M"], - sunnyday: ["7M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], superpower: ["7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], - tackle: ["7L1", "6L1", "5L1"], - tailwhip: ["7L1", "6L1", "5L1"], - takedown: ["7L28", "6L28", "5L28"], - taunt: ["7M", "6M", "5M"], - thunderpunch: ["7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M", "9L28", "7L28", "6L28", "5L28"], + taunt: ["9M", "7M", "6M", "5M"], + temperflare: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T"], toxic: ["7M", "6M", "5M"], - wildcharge: ["7M", "6M", "5M"], - willowisp: ["7M", "6M", "5M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M"], workup: ["7M", "5M"], - zenheadbutt: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], }, }, emboar: { learnset: { - armthrust: ["7L1", "6L17", "5L17"], - assurance: ["7L38", "6L38", "5L38"], + armthrust: ["9L1", "7L1", "6L17", "5L17"], + assurance: ["9L38", "7L38", "6L38", "5L38"], attract: ["7M", "6M", "5M"], - blastburn: ["7T", "6T", "5T"], + blastburn: ["9M", "7T", "6T", "5T"], block: ["7T", "6T", "5T"], - brickbreak: ["7M", "6M", "5M"], - bulkup: ["7M", "6M", "5M"], - bulldoze: ["7M", "6M", "5M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M"], + bulkup: ["9M", "7M", "6M", "5M"], + bulldoze: ["9M", "7M", "6M", "5M"], + closecombat: ["9M"], + coaching: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - defensecurl: ["7L13", "6L13", "5L13"], + curse: ["9M"], + defensecurl: ["9L13", "7L13", "6L13", "5L13"], + dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - earthquake: ["7M", "6M", "5M"], + drainpunch: ["9M"], + earthquake: ["9M", "7M", "6M", "5M"], echoedvoice: ["7M", "6M", "5M"], - ember: ["7L1", "6L1", "5L1"], - endeavor: ["7T", "6T", "5T"], - facade: ["7M", "6M", "5M"], - fireblast: ["7M", "6M", "5M"], - firepledge: ["7T", "6T", "5T"], - firepunch: ["7T", "6T", "5T"], - flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], - flamethrower: ["7M", "7L43", "6M", "6L43", "5M", "5L43"], - flareblitz: ["7L62", "6L62", "6S1", "5L62", "5S0"], - fling: ["7M", "6M", "5M"], - focusblast: ["7M", "6M", "5M"], - focuspunch: ["7T", "6T"], + ember: ["9L1", "7L1", "6L1", "5L1"], + endeavor: ["9M", "7T", "6T", "5T"], + endure: ["9M", "9L1"], + facade: ["9M", "7M", "6M", "5M"], + fireblast: ["9M", "7M", "6M", "5M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "6T", "5T"], + firespin: ["9M"], + flamecharge: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + flareblitz: ["9M", "9L62", "7L62", "6L62", "6S1", "5L62", "5S0"], + fling: ["9M", "7M", "6M", "5M"], + focusblast: ["9M", "7M", "6M", "5M"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["7M", "6M", "5M"], - grassknot: ["7M", "6M", "5M"], - gyroball: ["7M", "6M", "5M"], - hammerarm: ["7L1", "6L1", "5L1", "5S0"], - headsmash: ["7L50", "6L50", "6S1", "5L50", "5S0"], - heatcrash: ["7L31", "6L31", "5L31"], - heatwave: ["7T", "6T", "5T"], - helpinghand: ["7T", "6T", "5T"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + gyroball: ["9M", "7M", "6M", "5M"], + hammerarm: ["9L1", "7L1", "6L1", "5L1", "5S0"], + hardpress: ["9M"], + headsmash: ["9L50", "7L50", "6L50", "6S1", "5L50", "5S0"], + heatcrash: ["9M", "9L31", "7L31", "6L31", "5L31"], + heatwave: ["9M", "7T", "6T", "5T"], + heavyslam: ["9M"], + helpinghand: ["9M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["9M"], holdback: ["6S1"], - hyperbeam: ["7M", "6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M"], incinerate: ["6M", "5M"], - ironhead: ["7T", "6T", "5T"], + ironhead: ["9M", "7T", "6T", "5T"], irontail: ["7T", "6T", "5T"], - lowkick: ["7T", "6T", "5T"], - lowsweep: ["7M", "6M", "5M"], + knockoff: ["9M"], + lowkick: ["9M", "7T", "6T", "5T"], + lowsweep: ["9M", "7M", "6M", "5M"], + mudslap: ["9M"], odorsleuth: ["7L1", "6L1", "5L1"], - overheat: ["7M", "6M", "5M"], - poisonjab: ["7M", "6M", "5M"], + overheat: ["9M", "7M", "6M", "5M"], + poisonjab: ["9M", "7M", "6M", "5M"], poweruppunch: ["6M"], - protect: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roar: ["7M", "7L55", "6M", "6L55", "5M", "5L55"], - rockslide: ["7M", "6M", "5M"], + reversal: ["9M"], + roar: ["9M", "9L55", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + rockslide: ["9M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["7M", "6M", "5M"], - rollout: ["7L23", "6L23", "5L23"], + rocktomb: ["9M", "7M", "6M", "5M"], + rollout: ["9L23", "7L23", "6L23", "5L23"], round: ["7M", "6M", "5M"], - scald: ["7M", "6M", "5M"], + scald: ["9M", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M"], - sleeptalk: ["7M", "6M", "5T"], - smackdown: ["7M", "6M", "5M"], - smog: ["7L20", "6L20", "5L20"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], + smog: ["9L20", "7L20", "6L20", "5L20"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], - stompingtantrum: ["7T"], - stoneedge: ["7M", "6M", "5M"], + solarbeam: ["9M", "7M", "6M", "5M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["7M", "6M", "5M"], - sunnyday: ["7M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], superpower: ["7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], - tackle: ["7L1", "6L1", "5L1"], - tailwhip: ["7L1", "6L1", "5L1"], - takedown: ["7L28", "6L28", "6S1", "5L28"], - taunt: ["7M", "6M", "5M"], - thunderpunch: ["7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M", "9L28", "7L28", "6L28", "6S1", "5L28"], + taunt: ["9M", "7M", "6M", "5M"], + temperflare: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T"], toxic: ["7M", "6M", "5M"], - wildcharge: ["7M", "6M", "5M", "5S0"], - willowisp: ["7M", "6M", "5M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M", "5S0"], + willowisp: ["9M", "7M", "6M", "5M"], workup: ["7M", "5M"], - zenheadbutt: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], }, eventData: [ {generation: 5, level: 100, gender: "M", moves: ["flareblitz", "hammerarm", "wildcharge", "headsmash"], pokeball: "cherishball"}, @@ -52123,6 +54587,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "7M", "6M", "5M"], falseswipe: ["9M", "7M", "6M", "5M"], fling: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], focusenergy: ["9L13", "7L13", "6L13", "5L13"], frustration: ["7M", "6M", "5M"], furycutter: ["9L19", "7L19", "6L19", "5L19"], @@ -52134,7 +54599,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "7M", "6M", "5M"], icywind: ["9M", "7T", "6T", "5T"], irontail: ["7T", "6T", "5T"], - knockoff: ["9E"], + knockoff: ["9M", "9E"], liquidation: ["9M"], nightslash: ["9E", "7E", "6E", "5E"], protect: ["9M", "7M", "6M", "5M"], @@ -52172,6 +54637,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterpledge: ["9M", "7T", "6T", "5T"], waterpulse: ["9M", "9L23", "7T", "7L23", "6T", "6L23", "5L23"], watersport: ["7L11", "6L11", "5L11"], + whirlpool: ["9M"], workup: ["7M"], xscissor: ["9M", "7M", "6M", "5M"], }, @@ -52198,6 +54664,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "7M", "6M", "5M"], falseswipe: ["9M", "7M", "6M", "5M"], fling: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], focusenergy: ["9L13", "7L13", "6L13", "5L13"], frustration: ["7M", "6M", "5M"], furycutter: ["9L21", "7L21", "6L20", "5L20"], @@ -52209,6 +54676,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "7M", "6M", "5M"], icywind: ["9M", "7T", "6T", "5T"], irontail: ["7T", "6T", "5T"], + knockoff: ["9M"], liquidation: ["9M"], protect: ["9M", "7M", "6M", "5M"], raindance: ["9M", "7M", "6M", "5M"], @@ -52237,11 +54705,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], toxic: ["7M", "6M", "5M"], + vacuumwave: ["9M"], waterfall: ["9M", "7M", "6M", "5M"], watergun: ["9L1", "7L1", "6L1", "5L1"], waterpledge: ["9M", "7T", "6T", "5T"], waterpulse: ["9M", "9L26", "7T", "7L26", "6T", "6L25", "5L25"], watersport: ["7L1", "6L1", "5L1"], + whirlpool: ["9M"], workup: ["7M"], xscissor: ["9M", "7M", "6M", "5M"], }, @@ -52273,6 +54743,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "7M", "6M", "5M"], falseswipe: ["9M", "7M", "6M", "5M"], fling: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], focusenergy: ["9L13", "7L13", "6L13", "5L13"], frustration: ["7M", "6M", "5M"], furycutter: ["9L21", "7L21", "6L20", "5L20"], @@ -52288,7 +54759,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "7M", "6M", "5M", "5S0"], icywind: ["9M", "7T", "6T", "5T"], irontail: ["7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], liquidation: ["9M", "7T"], megahorn: ["9L1", "7L1", "6L1", "5L1", "5S0"], protect: ["9M", "7M", "6M", "5M"], @@ -52323,11 +54794,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], toxic: ["7M", "6M", "5M"], + upperhand: ["9M"], + vacuumwave: ["9M"], waterfall: ["9M", "7M", "6M", "5M"], watergun: ["9L1", "7L1", "6L1", "5L1"], waterpledge: ["9M", "7T", "6T", "5T"], waterpulse: ["9M", "9L25", "7T", "7L25", "6T", "6L25", "5L25"], watersport: ["7L1", "6L1", "5L1"], + whirlpool: ["9M"], workup: ["7M"], xscissor: ["9M", "7M", "6M", "5M"], }, @@ -52357,6 +54831,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M"], falseswipe: ["9M"], fling: ["9M"], + flipturn: ["9M"], focusenergy: ["9L13"], furycutter: ["9L21"], gigaimpact: ["9M"], @@ -52367,6 +54842,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], icebeam: ["9M"], icywind: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], liquidation: ["9M"], megahorn: ["9L1"], protect: ["9M"], @@ -52391,10 +54868,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], waterfall: ["9M"], watergun: ["9L1"], waterpledge: ["9M"], waterpulse: ["9M", "9L25"], + whirlpool: ["9M"], xscissor: ["9M"], }, }, @@ -53685,108 +56166,145 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, blitzle: { learnset: { - agility: ["7L36", "6L36", "5L36"], + agility: ["9M", "9L33", "7L36", "6L36", "5L36"], attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + bodyslam: ["9M"], bounce: ["7T", "6T", "5T"], - charge: ["7L8", "6L8", "5L8"], - chargebeam: ["7M", "6M", "5M"], + charge: ["9M", "9L8", "7L8", "6L8", "5L8"], + chargebeam: ["9M", "7M", "6M", "5M"], confide: ["7M", "6M"], - discharge: ["7L32", "6L32", "5L32"], - doubleedge: ["7E", "6E", "5E"], - doublekick: ["7E", "6E", "5E"], + discharge: ["9L29", "7L32", "6L32", "5L32"], + doubleedge: ["9M", "7E", "6E", "5E"], + doublekick: ["9E", "7E", "6E", "5E"], doubleteam: ["7M", "6M", "5M"], - endure: ["7E", "6E", "5E"], - facade: ["7M", "6M", "5M"], - feint: ["7E"], - flamecharge: ["7M", "7L18", "6M", "6L18", "5M", "5L18"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endeavor: ["9M"], + endure: ["9M", "7E", "6E", "5E"], + facade: ["9M", "7M", "6M", "5M"], + feint: ["9E", "7E"], + flamecharge: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L18"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - lightscreen: ["7M", "6M", "5M"], - lowkick: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M"], + lowkick: ["9M", "7T"], magnetrise: ["7T", "6T", "5T"], mefirst: ["7E", "6E", "5E"], - protect: ["7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M"], pursuit: ["7L22", "6L22", "5L22"], - quickattack: ["7L1", "6L1", "5L1"], + quickattack: ["9L1", "7L1", "6L1", "5L1"], rage: ["7E", "6E", "5E"], - raindance: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["7M", "6M", "5M"], - sandattack: ["7E", "6E", "5E"], - screech: ["7E", "6E", "5E"], + sandattack: ["9E", "7E", "6E", "5E"], + screech: ["9E", "7E", "6E", "5E"], secretpower: ["6M"], - shockwave: ["7T", "7L11", "7E", "6T", "6L11", "6E", "5L11", "5E"], + shockwave: ["9L11", "7T", "7L11", "7E", "6T", "6L11", "6E", "5L11", "5E"], signalbeam: ["7T", "6T", "5T"], - sleeptalk: ["7M", "6M", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smartstrike: ["9M"], snatch: ["7T", "7E", "6T", "6E"], snore: ["7T", "6T", "5T"], - spark: ["7L25", "6L25", "5L25"], - stomp: ["7L29", "6L29", "5L29"], - substitute: ["7M", "6M", "5M"], + spark: ["9L22", "7L25", "6L25", "5L25"], + stomp: ["9L25", "7L29", "6L29", "5L29"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M"], + supercellslam: ["9M"], swagger: ["7M", "6M", "5M"], - tailwhip: ["7L4", "6L4", "5L4"], - takedown: ["7E", "6E", "5E"], - thrash: ["7L43", "6L43", "5L43"], - thunder: ["7M", "6M", "5M"], - thunderbolt: ["7M", "6M", "5M"], - thunderwave: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + swift: ["9M"], + tailwhip: ["9L4", "7L4", "6L4", "5L4"], + takedown: ["9M", "7E", "6E", "5E"], + terablast: ["9M"], + thrash: ["9L40", "7L43", "6L43", "5L43"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "7M", "6M", "5M"], + thunderwave: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], toxic: ["7M", "6M", "5M"], - voltswitch: ["7M", "6M", "5M"], - wildcharge: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + trailblaze: ["9M"], + uproar: ["9M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "9L35", "7M", "7L39", "6M", "6L39", "5M", "5L39"], }, }, zebstrika: { learnset: { - agility: ["7L42", "6L42", "5L42"], + agility: ["9M", "9L42", "7L42", "6L42", "5L42"], allyswitch: ["7T"], attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + bodyslam: ["9M"], bounce: ["7T", "6T", "5T"], - charge: ["7L1", "6L1", "5L1"], - chargebeam: ["7M", "6M", "5M"], + bulldoze: ["9M"], + charge: ["9M", "9L1", "7L1", "6L1", "5L1"], + chargebeam: ["9M", "7M", "6M", "5M"], confide: ["7M", "6M"], - discharge: ["7L36", "6L36", "5L36"], + discharge: ["9L36", "7L36", "6L36", "5L36"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - facade: ["7M", "6M", "5M"], - flamecharge: ["7M", "7L18", "6M", "6L18", "5M", "5L18"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + electroweb: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + flamecharge: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L18"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["7M", "6M", "5M"], + gigaimpact: ["9M", "7M", "6M", "5M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - hyperbeam: ["7M", "6M", "5M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M"], iondeluge: ["7L1", "6L1"], laserfocus: ["7T"], - lightscreen: ["7M", "6M", "5M"], - lowkick: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M"], + lowkick: ["9M", "7T"], magnetrise: ["7T", "6T", "5T"], - overheat: ["7M", "6M", "5M"], - protect: ["7M", "6M", "5M"], + overheat: ["9M", "7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M"], pursuit: ["7L22", "6L22", "5L22"], - quickattack: ["7L1", "6L1", "5L1"], - raindance: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + quickattack: ["9L1", "7L1", "6L1", "5L1"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], + roar: ["9M"], rocksmash: ["6M", "5M"], round: ["7M", "6M", "5M"], secretpower: ["6M"], - shockwave: ["7T", "7L11", "6T", "6L11", "5L11"], + shockwave: ["9L11", "7T", "7L11", "6T", "6L11", "5L11"], signalbeam: ["7T", "6T", "5T"], - sleeptalk: ["7M", "6M", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smartstrike: ["9M"], snatch: ["7T", "6T"], snore: ["7T", "6T", "5T"], - spark: ["7L25", "6L25", "5L25"], - stomp: ["7L31", "6L31", "5L31"], - substitute: ["7M", "6M", "5M"], + spark: ["9L25", "7L25", "6L25", "5L25"], + stomp: ["9L31", "7L31", "6L31", "5L31"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M"], + supercellslam: ["9M"], swagger: ["7M", "6M", "5M"], - tailwhip: ["7L1", "6L1", "5L1"], - thrash: ["7L53", "6L53", "5L53"], - thunder: ["7M", "6M", "5M"], - thunderbolt: ["7M", "6M", "5M"], - thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L1"], + swift: ["9M"], + tailwhip: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thrash: ["9L53", "7L53", "6L53", "5L53"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "7M", "6M", "5M"], + thunderwave: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], toxic: ["7M", "6M", "5M"], - voltswitch: ["7M", "6M", "5M"], - wildcharge: ["7M", "7L47", "6M", "6L47", "5M", "5L47"], + trailblaze: ["9M"], + uproar: ["9M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "9L47", "7M", "7L47", "6M", "6L47", "5M", "5L47"], }, }, roggenrola: { @@ -54147,130 +56665,147 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, drilbur: { learnset: { - aerialace: ["7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], attract: ["8M", "7M", "6M", "5M"], - brickbreak: ["8M", "7M", "6M", "5M"], - bulldoze: ["8M", "7M", "6M", "5M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], - crushclaw: ["8L24", "7E", "6E", "5E"], + crushclaw: ["9L24", "8L24", "7E", "6E", "5E"], + curse: ["9M"], cut: ["6M", "5M"], - dig: ["8M", "8L32", "7L19", "6M", "6L19", "5M", "5L19"], + dig: ["9M", "9L32", "8M", "8L32", "7L19", "6M", "6L19", "5M", "5L19"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - drillrun: ["8M", "8L40", "7T", "7L43", "6T", "6L43", "5T", "5L43"], - earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "5L33"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - fissure: ["8L48", "7L47", "6L47", "5L47"], - fling: ["8M", "7M", "6M", "5M"], + drillrun: ["9M", "9L40", "8M", "8L40", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + earthpower: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fissure: ["9L48", "8L48", "7L47", "6L47", "5L47"], + fling: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - furyswipes: ["8L12", "7L12", "6L12", "5L12"], + furyswipes: ["9L12", "8L12", "7L12", "6L12", "5L12"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - highhorsepower: ["8M"], - honeclaws: ["8L8", "7L22", "6M", "6L22", "5M", "5L22"], - irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - metalclaw: ["8L16", "7L15", "6L15", "5L15"], - metalsound: ["8E", "7E", "6E", "5E", "5D"], - mudshot: ["8M"], - mudslap: ["8L1", "7L8", "6L8", "5L8"], + highhorsepower: ["9M", "8M"], + honeclaws: ["9L8", "8L8", "7L22", "6M", "6L22", "5M", "5L22"], + irondefense: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + metalclaw: ["9M", "9L16", "8L16", "7L15", "6L15", "5L15"], + metalsound: ["9M", "9E", "8E", "7E", "6E", "5E", "5D"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L8", "6L8", "5L8"], mudsport: ["7L1", "6L1", "5L1"], - poisonjab: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - rapidspin: ["8L1", "7L5", "7E", "6L5", "6E", "5L5", "5E", "5D"], - rest: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rapidspin: ["9L1", "8L1", "7L5", "7E", "6L5", "6E", "5L5", "5E", "5D"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], rockclimb: ["7E", "6E", "5E", "5D"], - rockslide: ["8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rockslide: ["9M", "9L28", "8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L40"], - sandtomb: ["8M"], - scorchingsands: ["8T"], - scratch: ["8L4", "7L1", "6L1", "5L1"], + sandstorm: ["9M", "9L20", "8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + sandtomb: ["9M", "8M"], + scorchingsands: ["9M", "8T"], + scratch: ["9L4", "8L4", "7L1", "6L1", "5L1"], secretpower: ["6M"], - shadowclaw: ["8M", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], skullbash: ["7E", "6E", "5E"], - slash: ["8E", "7L26", "6L26", "5L26"], - sleeptalk: ["8M", "7M", "6M", "5T"], + slash: ["9E", "8E", "7L26", "6L26", "5L26"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["8M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T"], - stealthrock: ["8M", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], strength: ["6M", "5M"], submission: ["8E", "7E", "6E", "5E"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], swagger: ["7M", "6M", "5M"], - swordsdance: ["8M", "8L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + swordsdance: ["9M", "9L36", "8M", "8L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - xscissor: ["8M", "7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], }, }, excadrill: { learnset: { - aerialace: ["7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], attract: ["8M", "7M", "6M", "5M"], - brickbreak: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], - crushclaw: ["8L24"], + crushclaw: ["9L24", "8L24"], + curse: ["9M"], cut: ["6M", "5M"], - dig: ["8M", "8L34", "7L19", "6M", "6L19", "5M", "5L19"], + dig: ["9M", "9L34", "8M", "8L34", "7L19", "6M", "6L19", "5M", "5L19"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - drillrun: ["8M", "8L46", "7T", "7L55", "6T", "6L55", "5T", "5L55"], - earthpower: ["8M", "7T", "6T", "5T"], - earthquake: ["8M", "8L52", "7M", "7L36", "6M", "6L36", "5M", "5L36"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - fissure: ["8L58", "7L62", "6L62", "5L62"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + drillrun: ["9M", "9L46", "8M", "8L46", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L52", "8M", "8L52", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fissure: ["9L58", "8L58", "7L62", "6L62", "5L62"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - furyswipes: ["8L12", "7L12", "6L12", "5L12"], - gigaimpact: ["8M", "7M", "6M", "5M"], + furyswipes: ["9L12", "8L12", "7L12", "6L12", "5L12"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - highhorsepower: ["8M"], - honeclaws: ["8L1", "7L22", "6M", "6L22", "5M", "5L22"], - horndrill: ["8L0", "7L1", "6L31", "5L31"], - hyperbeam: ["8M", "7M", "6M", "5M"], - irondefense: ["8M", "7T", "6T", "5T"], - ironhead: ["8M", "7T", "6T", "5T"], + highhorsepower: ["9M", "8M"], + honeclaws: ["9L1", "8L1", "7L22", "6M", "6L22", "5M", "5L22"], + horndrill: ["9L0", "8L0", "7L1", "6L31", "5L31"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T"], + ironhead: ["9M", "8M", "7T", "6T", "5T"], magnetrise: ["7T", "6T", "5T"], - metalclaw: ["8L16", "7L15", "6L15", "5L15"], - mudshot: ["8M"], - mudslap: ["8L1", "7L1", "6L1", "5L1"], + metalclaw: ["9M", "9L16", "8L16", "7L15", "6L15", "5L15"], + metalsound: ["9M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1"], mudsport: ["7L1", "6L1", "5L1"], - poisonjab: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - rapidspin: ["8L1", "7L1", "6L1", "5L1"], - rest: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rapidspin: ["9L1", "8L1", "7L1", "6L1", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockblast: ["8M"], - rockslide: ["8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "9L28", "8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], rototiller: ["7L1", "6L1"], round: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "8L20", "7M", "7L49", "6M", "6L49", "5M", "5L49"], - sandtomb: ["8M"], - scorchingsands: ["8T"], - scratch: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["9M", "9L20", "8M", "8L20", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + sandtomb: ["9M", "8M"], + scaryface: ["9M"], + scorchingsands: ["9M", "8T"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], secretpower: ["6M"], - shadowclaw: ["8M", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], slash: ["7L26", "6L26", "5L26"], - sleeptalk: ["8M", "7M", "6M", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["8M", "7M", "6M", "5M"], - smartstrike: ["8M", "7M"], + smartstrike: ["9M", "8M", "7M"], snore: ["8M", "7T", "6T", "5T"], - stealthrock: ["8M", "7T", "6T", "5T"], - steelbeam: ["8T"], - stompingtantrum: ["8M", "7T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + steelbeam: ["9M", "8T"], + stompingtantrum: ["9M", "8M", "7T"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], swagger: ["7M", "6M", "5M"], - swordsdance: ["8M", "8L40", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9M"], toxic: ["7M", "6M", "5M"], - xscissor: ["8M", "7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], }, encounters: [ {generation: 6, level: 30}, @@ -54399,76 +56934,82 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M"], bide: ["7L8", "6L8", "5L8"], block: ["7T", "6T", "5T"], - brickbreak: ["8M", "7M", "6M", "5M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], - bulkup: ["8M", "8L16", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + bulkup: ["9M", "9L16", "8M", "8L16", "7M", "7L28", "6M", "6L28", "5M", "5L28"], chipaway: ["7L24", "6L24", "5L24"], - coaching: ["8T"], + closecombat: ["9M"], + coaching: ["9M", "8T"], cometpunch: ["7E", "6E", "5E"], confide: ["7M", "6M"], - counter: ["8E", "7E", "6E", "5E"], - defog: ["8E"], - detect: ["8E", "7E", "6E", "5E"], - dig: ["8M", "6M", "5M"], + counter: ["9E", "8E", "7E", "6E", "5E"], + curse: ["9M"], + defog: ["9E", "8E"], + detect: ["9E", "8E", "7E", "6E", "5E"], + dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - dynamicpunch: ["8L32", "7L34", "6L34", "5L34"], - endure: ["8M", "7E", "6E", "5E"], - facade: ["8M", "7M", "6M", "5M"], - firepunch: ["8M", "7T", "6T", "5T"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focusenergy: ["8M", "8L12", "7L4", "6L4", "5L4"], - focuspunch: ["8L48", "7T", "7L46", "6T", "6L46", "5L46"], + drainpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + dynamicpunch: ["9L32", "8L32", "7L34", "6L34", "5L34"], + endure: ["9M", "8M", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L12", "8M", "8L12", "7L4", "6L4", "5L4"], + focuspunch: ["9M", "9L48", "8L48", "7T", "7L46", "6T", "6L46", "5L46"], forcepalm: ["7E", "6E", "5E"], foresight: ["7E", "6E", "5E"], frustration: ["7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - hammerarm: ["8L36", "7L40", "6L40", "5L40"], - helpinghand: ["8M", "7T", "6T", "5T"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L36", "8L36", "7L40", "6L40", "5L40"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], - icepunch: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - leer: ["8L1", "7L1", "6L1", "5L1"], - lowkick: ["8M", "8L4", "7T", "7L12", "6T", "6L12", "5T", "5L12"], - lowsweep: ["8M", "7M", "6M", "5M"], - machpunch: ["8E", "7E", "6E", "5E"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "9L4", "8M", "8L4", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + machpunch: ["9E", "8E", "7E", "6E", "5E"], megakick: ["8M"], megapunch: ["8M"], payback: ["8M", "7M", "6M", "5M"], - poisonjab: ["8M", "7M", "6M", "5M"], - pound: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], poweruppunch: ["8E", "7E", "6M"], - protect: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M", "7E", "6E", "5E"], - rockslide: ["8M", "8L20", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + reversal: ["9M", "8M", "7E", "6E", "5E"], + rockslide: ["9M", "9L20", "8M", "8L20", "7M", "7L31", "6M", "6L31", "5M", "5L31"], rocksmash: ["6M", "5M"], - rockthrow: ["8L8", "7L16", "6L16", "5L16"], - rocktomb: ["8M", "7M", "6M", "5M"], + rockthrow: ["9L8", "8L8", "7L16", "6L16", "5L16"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M", "8L28", "7L37", "6L37", "5L37"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L37", "6L37", "5L37"], secretpower: ["6M"], - slam: ["8L24"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smackdown: ["7M", "6M", "5M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], smellingsalts: ["7E", "6E", "5E"], snore: ["8M", "7T", "6T", "5T"], - stoneedge: ["8M", "8L40", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + stoneedge: ["9M", "9L40", "8M", "8L40", "7M", "7L43", "6M", "6L43", "5M", "5L43"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], - superpower: ["8M", "8L44", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L44", "8M", "8L44", "7T", "7L49", "6T", "6L49", "5T", "5L49"], swagger: ["7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], toxic: ["7M", "6M", "5M"], wakeupslap: ["7L20", "6L20", "5L20"], - wideguard: ["8E", "7E", "6E", "5E"], + wideguard: ["9E", "8E", "7E", "6E", "5E"], workup: ["8M", "7M", "5M"], }, }, @@ -54477,68 +57018,73 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M"], bide: ["7L1", "6L1", "5L1"], block: ["7T", "6T", "5T"], - brickbreak: ["8M", "7M", "6M", "5M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], - bulkup: ["8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + bulkup: ["9M", "9L16", "8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], chipaway: ["7L24", "6L24", "5L24"], - closecombat: ["8M"], - coaching: ["8T"], + closecombat: ["9M", "8M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - dig: ["8M", "6M", "5M"], + curse: ["9M"], + dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "6T", "5T", "5D"], - dynamicpunch: ["8L36", "7L37", "6L37", "5L37"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - firepunch: ["8M", "7T", "6T", "5T"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focusenergy: ["8M", "8L12", "7L1", "6L1", "5L1"], - focuspunch: ["8L60", "7T", "7L53", "6T", "6L53", "5L53"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "5D"], + dynamicpunch: ["9L36", "8L36", "7L37", "6L37", "5L37"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L12", "8M", "8L12", "7L1", "6L1", "5L1"], + focuspunch: ["9M", "9L60", "8L60", "7T", "7L53", "6T", "6L53", "5L53"], frustration: ["7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - hammerarm: ["8L42", "7L45", "6L45", "5L45"], - helpinghand: ["8M", "7T", "6T", "5T"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L42", "8L42", "7L45", "6L45", "5L45"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], - highhorsepower: ["8M"], - icepunch: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - leer: ["8L1", "7L1", "6L1", "5L1"], - lowkick: ["8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12", "5D"], - lowsweep: ["8M", "7M", "6M", "5M"], + highhorsepower: ["9M", "8M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "9L1", "8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12", "5D"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], machpunch: ["5D"], megakick: ["8M"], megapunch: ["8M"], payback: ["8M", "7M", "6M", "5M"], - poisonjab: ["8M", "7M", "6M", "5M"], - pound: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M"], - rockslide: ["8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + reversal: ["9M", "8M"], + rockslide: ["9M", "9L20", "8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], rocksmash: ["6M", "5M"], - rockthrow: ["8L1", "7L16", "6L16", "5L16"], - rocktomb: ["8M", "7M", "6M", "5M"], + rockthrow: ["9L1", "8L1", "7L16", "6L16", "5L16"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M", "8L30", "7L41", "6L41", "5L41"], + scaryface: ["9M", "9L30", "8M", "8L30", "7L41", "6L41", "5L41"], secretpower: ["6M"], - slam: ["8L24"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smackdown: ["7M", "6M", "5M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T"], - stoneedge: ["8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], - superpower: ["8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L54", "8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], swagger: ["7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], toxic: ["7M", "6M", "5M"], wakeupslap: ["7L20", "6L20", "5L20"], workup: ["8M", "7M", "5M"], @@ -54549,74 +57095,82 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M"], bide: ["7L1", "6L1", "5L1"], block: ["7T", "6T", "5T"], - brickbreak: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], - bulkup: ["8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], - bulldoze: ["8M", "7M", "6M", "5M"], + bulkup: ["9M", "9L16", "8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], chipaway: ["7L24", "6L24", "5L24"], - closecombat: ["8M"], - coaching: ["8T"], + closecombat: ["9M", "8M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - dig: ["8M", "6M", "5M"], + curse: ["9M"], + dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "6T", "5T"], - dynamicpunch: ["8L36", "7L37", "6L37", "5L37"], - earthquake: ["8M", "7M", "6M", "5M"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - firepunch: ["8M", "7T", "6T", "5T"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focusenergy: ["8M", "8L12", "7L1", "6L1", "5L1"], - focuspunch: ["8L60", "7T", "7L53", "6T", "6L53", "5L53"], + drainpunch: ["9M", "8M", "7T", "6T", "5T"], + dynamicpunch: ["9L36", "8L36", "7L37", "6L37", "5L37"], + earthquake: ["9M", "8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L12", "8M", "8L12", "7L1", "6L1", "5L1"], + focuspunch: ["9M", "9L60", "8L60", "7T", "7L53", "6T", "6L53", "5L53"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - hammerarm: ["8L42", "7L45", "6L45", "5L45"], - helpinghand: ["8M", "7T", "6T", "5T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L42", "8L42", "7L45", "6L45", "5L45"], + hardpress: ["9M"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], - highhorsepower: ["8M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - icepunch: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - leer: ["8L1", "7L1", "6L1", "5L1"], - lowkick: ["8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12"], - lowsweep: ["8M", "7M", "6M", "5M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "9L1", "8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M"], megapunch: ["8M"], payback: ["8M", "7M", "6M", "5M"], - poisonjab: ["8M", "7M", "6M", "5M"], - pound: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M"], - rockblast: ["8M"], - rockslide: ["8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + reversal: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "9L20", "8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], rocksmash: ["6M", "5M"], - rockthrow: ["8L1", "7L16", "6L16", "5L16"], - rocktomb: ["8M", "7M", "6M", "5M"], + rockthrow: ["9L1", "8L1", "7L16", "6L16", "5L16"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M", "8L30", "7L41", "6L41", "5L41"], + scaryface: ["9M", "9L30", "8M", "8L30", "7L41", "6L41", "5L41"], secretpower: ["6M"], - slam: ["8L24"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smackdown: ["7M", "6M", "5M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], - superpower: ["8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L54", "8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], swagger: ["7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], toxic: ["7M", "6M", "5M"], + upperhand: ["9M"], wakeupslap: ["7L20", "6L20", "5L20"], workup: ["8M", "7M", "5M"], }, @@ -54966,103 +57520,130 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["7E", "6E", "5E"], airslash: ["7E", "6E", "5E"], attract: ["7M", "6M", "5M"], - batonpass: ["7E", "6E", "5E"], - bugbite: ["7T", "7L8", "6T", "6L8", "5T", "5L8"], - bugbuzz: ["7L36", "6L36", "5L36"], + batonpass: ["9M", "7E", "6E", "5E"], + bugbite: ["9M", "9L8", "7T", "7L8", "6T", "6L8", "5T", "5L8"], + bugbuzz: ["9M", "9L36", "7L36", "6L36", "5L36"], calmmind: ["7M", "6M", "5M"], camouflage: ["7E", "6E", "5E"], + charm: ["9M"], confide: ["7M", "6M"], cut: ["6M", "5M"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], - electroweb: ["7T", "6T", "5T"], - endure: ["7L29", "6L29", "5L29"], - energyball: ["7M", "6M", "5M"], - facade: ["7M", "6M", "5M"], - flail: ["7L43", "6L43", "5L43"], + electroweb: ["9M", "7T", "6T", "5T"], + endure: ["9M", "9L29", "7L29", "6L29", "5L29"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], + flail: ["9L43", "7L43", "6L43", "5L43"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gigadrain: ["7T", "6T", "5T"], - grassknot: ["7M", "6M", "5M"], - grassyterrain: ["7E"], + gigadrain: ["9M", "7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "7E"], hiddenpower: ["7M", "6M", "5M"], - irondefense: ["7T", "6T", "5T"], + irondefense: ["9M", "7T", "6T", "5T"], lightscreen: ["7M", "6M", "5M"], + lunge: ["9M"], + magicalleaf: ["9M"], magiccoat: ["7T", "6T", "5T"], mefirst: ["7E", "6E", "5E"], mindreader: ["7E", "6E", "5E"], naturepower: ["7M", "6M"], payback: ["7M", "6M", "5M"], - protect: ["7M", "6M", "5M"], - razorleaf: ["7L15", "6L15", "5L15"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M"], + razorleaf: ["9L15", "7L15", "6L15", "5L15"], razorwind: ["7E", "6E", "5E"], - rest: ["7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M"], - screech: ["7E", "6E", "5E"], + screech: ["9E", "7E", "6E", "5E"], secretpower: ["6M"], - seedbomb: ["7T", "6T", "5T"], + seedbomb: ["9M", "7T", "6T", "5T"], signalbeam: ["7T", "6T", "5T"], silverwind: ["7E", "6E", "5E"], - sleeptalk: ["7M", "6M", "5T"], - snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], - stickyweb: ["7L31", "6L31"], - stringshot: ["7L1", "6L1", "5L1"], - strugglebug: ["7L22", "6M", "6L22", "5M", "5L22"], - substitute: ["7M", "6M", "5M"], - sunnyday: ["7M", "6M", "5M"], + skittersmack: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["9E", "7T", "6T", "5T"], + solarbeam: ["9M", "7M", "6M", "5M"], + stickyweb: ["9L31", "7L31", "6L31"], + stringshot: ["9L1", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "9L22", "7L22", "6M", "6L22", "5M", "5L22"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - synthesis: ["7T", "6T", "5T"], - tackle: ["7L1", "6L1", "5L1"], + switcheroo: ["9E"], + synthesis: ["9E", "7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - worryseed: ["7T", "6T", "5T"], + trailblaze: ["9M"], + worryseed: ["9E", "7T", "6T", "5T"], }, }, swadloon: { learnset: { attract: ["7M", "6M", "5M"], - bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + batonpass: ["9M"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + bugbuzz: ["9M", "9L36"], calmmind: ["7M", "6M", "5M"], + charm: ["9M"], confide: ["7M", "6M"], cut: ["6M", "5M"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], - electroweb: ["7T", "6T", "5T"], - energyball: ["7M", "6M", "5M"], - facade: ["7M", "6M", "5M"], + electroweb: ["9M", "7T", "6T", "5T"], + endure: ["9M", "9L29"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], + flail: ["9L43"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gigadrain: ["7T", "6T", "5T"], - grassknot: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], grasswhistle: ["7L1", "6L1", "5L1"], + grassyglide: ["9M"], + grassyterrain: ["9M"], hiddenpower: ["7M", "6M", "5M"], - irondefense: ["7T", "6T", "5T"], - lightscreen: ["7M", "6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + lunge: ["9M"], + magicalleaf: ["9M"], magiccoat: ["7T", "6T", "5T"], naturepower: ["7M", "6M"], payback: ["7M", "6M", "5M"], - protect: ["7M", "7L1", "6M", "6L20", "5M", "5L20"], - razorleaf: ["7L1", "6L1", "5L1"], - rest: ["7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "9L0", "7M", "7L1", "6M", "6L20", "5M", "5L20"], + raindance: ["9M"], + razorleaf: ["9L1", "7L1", "6L1", "5L1"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["7T", "6T", "5T"], + seedbomb: ["9M", "7T", "6T", "5T"], signalbeam: ["7T", "6T", "5T"], - sleeptalk: ["7M", "6M", "5T"], + skittersmack: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], - stringshot: ["7L1", "6L1", "5L1"], - strugglebug: ["6M", "5M"], - substitute: ["7M", "6M", "5M"], - sunnyday: ["7M", "6M", "5M"], + solarbeam: ["9M", "7M", "6M", "5M"], + stickyweb: ["9L31"], + stringshot: ["9L1", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "9L22", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], synthesis: ["7T", "6T", "5T"], - tackle: ["7L1", "6L1", "5L1"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], worryseed: ["7T", "6T", "5T"], }, encounters: [ @@ -55072,68 +57653,88 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leavanny: { learnset: { aerialace: ["7M", "6M", "5M"], + agility: ["9M"], + airslash: ["9M"], attract: ["7M", "6M", "5M"], - bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], - calmmind: ["7M", "6M", "5M"], + batonpass: ["9M"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + bugbuzz: ["9M"], + bulletseed: ["9M"], + calmmind: ["9M", "7M", "6M", "5M"], + charm: ["9M"], confide: ["7M", "6M"], cut: ["6M", "5M"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], - electroweb: ["7T", "6T", "5T"], - energyball: ["7M", "6M", "5M"], - entrainment: ["7L43", "6L43", "5L43"], - facade: ["7M", "6M", "5M"], - falseswipe: ["7M", "7L1", "6M", "6L1", "5M", "5L1"], - fellstinger: ["7L29", "6L34"], + electroweb: ["9M", "7T", "6T", "5T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M", "5M"], + entrainment: ["9L43", "7L43", "6L43", "5L43"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + fellstinger: ["9L29", "7L29", "6L34"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gigadrain: ["7T", "6T", "5T"], - gigaimpact: ["7M", "6M", "5M"], - grassknot: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], healbell: ["7T", "6T", "5T"], - helpinghand: ["7T", "7L32", "6T", "6L32", "5T", "5L32"], + helpinghand: ["9M", "9L32", "7T", "7L32", "6T", "6L32", "5T", "5L32"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], - hyperbeam: ["7M", "6M", "5M"], - irondefense: ["7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], + hyperbeam: ["9M", "7M", "6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], laserfocus: ["7T"], - leafblade: ["7L36", "6L36", "5L36"], - leafstorm: ["7L50", "6L50", "5L50"], - lightscreen: ["7M", "6M", "5M"], + leafblade: ["9L36", "7L36", "6L36", "5L36"], + leafstorm: ["9M", "9L50", "7L50", "6L50", "5L50"], + lightscreen: ["9M", "7M", "6M", "5M"], + lowkick: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M"], magiccoat: ["7T", "6T", "5T"], naturepower: ["7M", "6M"], payback: ["7M", "6M", "5M"], - poisonjab: ["7M", "6M", "5M"], - protect: ["7M", "6M", "5M"], - razorleaf: ["7L1", "6L1", "5L1"], - reflect: ["7M", "6M", "5M"], - rest: ["7M", "6M", "5M"], + poisonjab: ["9M", "7M", "6M", "5M"], + pollenpuff: ["9M"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M"], + razorleaf: ["9L1", "7L1", "6L1", "5L1"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["7T", "6T", "5T"], - shadowclaw: ["7M", "6M", "5M"], + seedbomb: ["9M", "7T", "6T", "5T"], + shadowclaw: ["9M", "7M", "6M", "5M"], signalbeam: ["7T", "6T", "5T"], - slash: ["7L1", "6L29", "5L29"], - sleeptalk: ["7M", "6M", "5T"], + skittersmack: ["9M"], + slash: ["9L0", "7L1", "6L29", "5L29"], + sleeptalk: ["9M", "7M", "6M", "5T"], snore: ["7T", "6T", "5T"], - solarbeam: ["7M", "6M", "5M"], + solarbeam: ["9M", "7M", "6M", "5M"], steelwing: ["7M", "6M"], - stringshot: ["7L1", "6L1", "5L1"], - strugglebug: ["7L22", "6M", "6L22", "5M", "5L22"], - substitute: ["7M", "6M", "5M"], - sunnyday: ["7M", "6M", "5M"], + stringshot: ["9L1", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "9L22", "7L22", "6M", "6L22", "5M", "5L22"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swordsdance: ["7M", "7L46", "6M", "6L46", "5M", "5L46"], + swordsdance: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L46"], synthesis: ["7T", "6T", "5T"], - tackle: ["7L1", "6L1", "5L1"], - throatchop: ["7T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9M", "7T"], toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + tripleaxel: ["9M"], worryseed: ["7T", "6T", "5T"], - xscissor: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + xscissor: ["9M", "9L39", "7M", "7L39", "6M", "6L39", "5M", "5L39"], }, encounters: [ {generation: 5, level: 20, isHidden: true}, @@ -55325,137 +57926,139 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cottonee: { learnset: { - absorb: ["8L1", "7L1", "6L1", "5L1"], + absorb: ["9L1", "8L1", "7L1", "6L1", "5L1"], attract: ["8M", "7M", "6M", "5M"], - beatup: ["8M", "7E", "6E", "5E"], + beatup: ["9E", "8M", "7E", "6E", "5E"], captivate: ["7E", "6E"], - charm: ["8M", "8L27", "7L28", "6L28", "5L28"], + charm: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28"], confide: ["7M", "6M"], - cottonguard: ["8L45", "7L37", "6L37", "5L37"], - cottonspore: ["8L33", "7L17", "6L17", "5L17"], + cottonguard: ["9L45", "8L45", "7L37", "6L37", "5L37"], + cottonspore: ["9L33", "8L33", "7L17", "6L17", "5L17"], covet: ["7T", "6T", "5T"], - dazzlinggleam: ["8M", "7M", "6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], defog: ["7T"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], - encore: ["8M", "7E", "6E", "5E", "5D"], - endeavor: ["8L42", "7T", "7L44", "6T", "6L44", "5T", "5L44"], - endure: ["8M"], - energyball: ["8M", "8L36", "7M", "7L35", "6M", "6L35", "5M", "5L35"], - facade: ["8M", "7M", "6M", "5M"], - fairywind: ["8L3", "7L1", "6L1"], - faketears: ["8M", "7E", "6E", "5E"], + encore: ["9M", "8M", "7E", "6E", "5E", "5D"], + endeavor: ["9M", "9L42", "8L42", "7T", "7L44", "6T", "6L44", "5T", "5L44"], + endure: ["9M", "8M"], + energyball: ["9M", "9L36", "8M", "8L36", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fairywind: ["9L3", "8L3", "7L1", "6L1"], + faketears: ["9M", "8M", "7E", "6E", "5E"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gigadrain: ["8M", "8L24", "7T", "7L26", "6T", "6L26", "5T", "5L26"], - grassknot: ["8M", "7M", "6M", "5M"], + gigadrain: ["9M", "9L24", "8M", "8L24", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], grasswhistle: ["7E", "6E", "5E"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - growth: ["8L18", "7L4", "6L4", "5L4"], - helpinghand: ["8M", "8L1", "7T", "7L31", "6T", "6L31", "5T", "5L31"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L18", "8L18", "7L4", "6L4", "5L4"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L31", "6T", "6L31", "5T", "5L31"], hiddenpower: ["7M", "6M", "5M"], knockoff: ["7T", "6T", "5T"], - leechseed: ["8L30", "7L8", "6L8", "5L8", "5D"], - megadrain: ["8L12", "7L13", "6L13", "5L13"], - memento: ["8E", "7E", "6E", "5E"], - mistyterrain: ["8M", "7E"], + leechseed: ["9L30", "8L30", "7L8", "6L8", "5L8", "5D"], + megadrain: ["9L12", "8L12", "7L13", "6L13", "5L13"], + memento: ["9E", "8E", "7E", "6E", "5E"], + mistyterrain: ["9M", "8M", "7E"], naturalgift: ["7E", "6E", "5E"], naturepower: ["8E", "7M", "6M"], - poisonpowder: ["8L21", "7L22", "6L22", "5L22"], - protect: ["8M", "7M", "6M", "5M"], - razorleaf: ["8L15", "7L19", "6L19", "5L19"], - rest: ["8M", "7M", "6M", "5M"], + poisonpowder: ["9L21", "8L21", "7L22", "6L22", "5L22"], + protect: ["9M", "8M", "7M", "6M", "5M"], + razorleaf: ["9L15", "8L15", "7L19", "6L19", "5L19"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["8M", "7T", "6T", "5T"], - sleeptalk: ["8M", "7M", "6M", "5T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5M", "5L46"], - stunspore: ["8L6", "7L10", "6L10", "5L10"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "8L39", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + solarbeam: ["9M", "9L48", "8M", "8L48", "7M", "7L46", "6M", "6L46", "5M", "5L46"], + stunspore: ["9L6", "8L6", "7L10", "6L10", "5L10"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "9L39", "8M", "8L39", "7M", "7L40", "6M", "6L40", "5M", "5L40"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - switcheroo: ["8E", "7E", "6E", "5E"], + swift: ["9M", "8M"], + switcheroo: ["9E", "8E", "7E", "6E", "5E"], tailwind: ["7T", "6T", "5T"], - taunt: ["8M", "7M", "6M", "5M"], - tickle: ["8E", "7E", "6E", "5E"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E"], toxic: ["7M", "6M", "5M"], - worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + worryseed: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], }, }, whimsicott: { learnset: { - absorb: ["8L1"], + absorb: ["9L1", "8L1"], attract: ["8M", "7M", "6M", "5M"], beatup: ["8M", "5S0"], - charm: ["8M", "8L1"], + charm: ["9M", "9L1", "8M", "8L1"], confide: ["7M", "6M"], - cottonguard: ["8L1"], - cottonspore: ["8L1", "7L1", "6L1", "5L1"], + cottonguard: ["9L1", "8L1"], + cottonspore: ["9L1", "8L1", "7L1", "6L1", "5L1"], covet: ["7T", "6T", "5T"], - dazzlinggleam: ["8M", "7M", "6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], defog: ["7T"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], - encore: ["8M"], - endeavor: ["8L1", "7T", "6T", "5T"], - endure: ["8M"], - energyball: ["8M", "8L1", "7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], - fairywind: ["8L1"], - faketears: ["8M"], + encore: ["9M", "8M"], + endeavor: ["9M", "9L1", "8L1", "7T", "6T", "5T"], + endure: ["9M", "8M"], + energyball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fairywind: ["9L1", "8L1"], + faketears: ["9M", "8M"], flash: ["6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gigadrain: ["8M", "8L1", "7T", "6T", "5T", "5S0"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - grassyglide: ["8T"], - grassyterrain: ["8M"], - growth: ["8L1", "7L1", "6L1", "5L1"], - gust: ["8L1", "7L10", "6L10", "5L10"], - helpinghand: ["8M", "8L1", "7T", "6T", "5T", "5S0"], + gigadrain: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "5S0"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "7L1", "6L1", "5L1"], + gust: ["9L1", "8L1", "7L10", "6L10", "5L10"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "5S0"], hiddenpower: ["7M", "6M", "5M"], - hurricane: ["8M", "8L1", "7L46", "6L46", "5L46"], - hyperbeam: ["8M", "7M", "6M", "5M"], + hurricane: ["9M", "9L1", "8M", "8L1", "7L46", "6L46", "5L46"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], knockoff: ["7T", "6T", "5T"], - leechseed: ["8L1", "7L1", "6L1", "5L1"], - lightscreen: ["8M", "7M", "6M", "5M"], - megadrain: ["8L1", "7L1", "6L1", "5L1"], - memento: ["8L1"], - mistyterrain: ["8M"], - moonblast: ["8L1", "7L50", "6L50"], + leechseed: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + megadrain: ["9L1", "8L1", "7L1", "6L1", "5L1"], + memento: ["9L1", "8L1"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L1", "8L1", "7L50", "6L50"], naturepower: ["7M", "6M"], - playrough: ["8M"], - poisonpowder: ["8L1"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - razorleaf: ["8L1"], - rest: ["8M", "7M", "6M", "5M"], + playrough: ["9M", "8M"], + poisonpowder: ["9L1", "8L1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + razorleaf: ["9L1", "8L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["8M", "7T", "6T", "5T"], - shadowball: ["8M", "7M", "6M", "5M"], - sleeptalk: ["8M", "7M", "6M", "5T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "8L1", "7M", "6M", "5M"], - stunspore: ["8L1"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "8L1", "7M", "6M", "5M"], + solarbeam: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + stunspore: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M", "5S0"], - swift: ["8M"], - tailwind: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], - taunt: ["8M", "7M", "6M", "5M"], - thief: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L1", "8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - trickroom: ["8M", "7M", "6M", "5M"], - uturn: ["8M", "7M", "6M", "5M"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], worryseed: ["7T", "6T", "5T"], }, eventData: [ @@ -55486,7 +58089,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L21", "8M", "8L21", "7T", "7L26", "6T", "6L26", "5T", "5L26"], grassknot: ["9M", "8M", "7M", "6M", "5M"], grasswhistle: ["7E", "6E", "5E"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], growth: ["9L1", "8L1", "7L4", "6L4", "5L4"], healbell: ["7T", "6T", "5T"], healingwish: ["9E", "8E", "7E", "6E", "5E"], @@ -55528,6 +58131,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { absorb: ["9L1", "8L1"], afteryou: ["9L1", "8L1", "7T", "6T", "5T"], + alluringvoice: ["9M"], aromatherapy: ["8L1"], attract: ["8M", "7M", "6M", "5M"], bulletseed: ["9M"], @@ -55547,7 +58151,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], gigaimpact: ["9M", "8M", "7M", "6M", "5M"], grassknot: ["9M", "8M", "7M", "6M", "5M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], growth: ["9L1", "8L1", "7L1", "6L1", "5L1"], healbell: ["7T", "6T", "5T"], @@ -55562,10 +58166,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicalleaf: ["9M", "9L5", "8M", "8L1"], megadrain: ["9L1", "8L1", "7L1", "6L1", "5L1"], naturepower: ["7M", "6M"], - petalblizzard: ["9L1", "8L1", "7L50", "6L50"], + petalblizzard: ["9M", "9L1", "8L1", "7L50", "6L50"], petaldance: ["9L0", "8L0", "7L46", "6L46", "5L46"], pollenpuff: ["9M", "8M"], protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M"], quiverdance: ["9L1", "8L1", "7L28", "6L28", "5L28"], rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], @@ -55578,7 +58183,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], solarbeam: ["9M", "8M", "7M", "6M", "5M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], stunspore: ["9L1", "8L1"], substitute: ["9M", "8M", "7M", "6M", "5M"], sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], @@ -55589,6 +58194,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "6M", "5M"], trailblaze: ["9M"], + weatherball: ["9M"], worryseed: ["7T", "6T", "5T"], }, }, @@ -55604,6 +58210,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["9M"], charm: ["9M"], closecombat: ["9M"], + coaching: ["9M"], defog: ["9L1"], encore: ["9M"], endure: ["9M"], @@ -55613,6 +58220,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L1"], gigaimpact: ["9M"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L1"], helpinghand: ["9M", "9L1"], @@ -55628,17 +58236,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megadrain: ["9L1"], megakick: ["9L1"], metronome: ["9M"], - petalblizzard: ["9L1"], + petalblizzard: ["9M", "9L1"], poisonjab: ["9M"], pollenpuff: ["9M"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], seedbomb: ["9M"], sleeppowder: ["9L1"], sleeptalk: ["9M"], solarbeam: ["9M"], - solarblade: ["9L1"], + solarblade: ["9M", "9L1"], stunspore: ["9L1"], substitute: ["9M"], sunnyday: ["9M", "9L1"], @@ -55648,7 +58257,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { teeterdance: ["9L1"], terablast: ["9M"], trailblaze: ["9M"], + tripleaxel: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], victorydance: ["9L0"], + weatherball: ["9M"], }, }, basculin: { @@ -55669,14 +58282,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L32", "8M", "8L32", "7L17", "6L24", "5L24"], cut: ["6M", "5M"], dive: ["8M", "6M", "5M"], - doubleedge: ["9L52", "8L52", "7L26", "6L36", "5L36"], + doubleedge: ["9M", "9L52", "8L52", "7L26", "6L36", "5L36"], doubleteam: ["7M", "6M", "5M"], - endeavor: ["9E", "8E", "7T", "6T", "5T"], + endeavor: ["9M", "9E", "8E", "7T", "6T", "5T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], finalgambit: ["9L40", "8L40", "7L38", "6L50", "5L51"], flail: ["9L8", "8L8", "7L34", "6L1", "5L46"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], frustration: ["7M", "6M", "5M"], gigaimpact: ["9M"], hail: ["8M", "7M", "6M", "5M"], @@ -55689,7 +58302,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icefang: ["9M", "8M"], icywind: ["9M", "8M", "7T", "6T", "5T"], liquidation: ["9M", "8M", "7T"], - muddywater: ["8M", "7E", "6E", "5E"], + muddywater: ["9M", "8M", "7E", "6E", "5E"], mudshot: ["9M", "8M", "7E", "6E", "5E"], protect: ["9M", "8M", "7M", "6M", "5M"], psychicfangs: ["9M", "8M"], @@ -55701,7 +58314,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reversal: ["9M", "8M"], round: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L20", "8M", "8L20", "7L30", "6L41", "5L41"], secretpower: ["6M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], @@ -55725,7 +58338,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "8L1", "7L1", "6L1", "5L1"], waterpulse: ["9M"], wavecrash: ["9L44"], - whirlpool: ["8M", "7E", "6E", "5E"], + whirlpool: ["9M", "8M", "7E", "6E", "5E"], zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "5D"], }, }, @@ -55737,11 +58350,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M"], chillingwater: ["9M"], crunch: ["9M", "9L32"], - doubleedge: ["9L52"], - endeavor: ["9E"], + doubleedge: ["9M", "9L52"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], flail: ["9L8"], + flipturn: ["9M"], headbutt: ["9L24"], headsmash: ["9L56"], hydropump: ["9M"], @@ -55750,11 +58364,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M"], lastrespects: ["9E"], liquidation: ["9M"], + muddywater: ["9M"], mudshot: ["9M"], protect: ["9M"], psychicfangs: ["9M"], raindance: ["9M"], rest: ["9M"], + scaleshot: ["9M"], scaryface: ["9M", "9L20"], sleeptalk: ["9M"], snowscape: ["9M"], @@ -55767,11 +58383,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "9L36"], terablast: ["9M"], thrash: ["9L48"], - uproar: ["9L40"], + uproar: ["9M", "9L40"], waterfall: ["9M"], watergun: ["9L1"], waterpulse: ["9M"], wavecrash: ["9L44"], + whirlpool: ["9M"], zenheadbutt: ["9M"], }, }, @@ -55784,10 +58401,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confuseray: ["9M"], crunch: ["9M", "9L32"], - doubleedge: ["9L52"], - endeavor: ["9E"], + doubleedge: ["9M", "9L52"], + endeavor: ["9M", "9E"], + endure: ["9M"], facade: ["9M"], flail: ["9L8"], + flipturn: ["9M"], gigaimpact: ["9M"], headbutt: ["9L24"], headsmash: ["9L56"], @@ -55799,31 +58418,38 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M"], lastrespects: ["9E"], liquidation: ["9M"], + muddywater: ["9M"], mudshot: ["9M"], nightshade: ["9M"], outrage: ["9M"], + painsplit: ["9M"], phantomforce: ["9M", "9L1"], protect: ["9M"], psychicfangs: ["9M"], raindance: ["9M"], rest: ["9M"], + scaleshot: ["9M"], scaryface: ["9M", "9L20"], shadowball: ["9M", "9L1"], sleeptalk: ["9M"], snowscape: ["9M"], soak: ["9L28"], + spite: ["9M"], substitute: ["9M"], surf: ["9M"], + swift: ["9M"], tackle: ["9L4"], tailwhip: ["9L1"], takedown: ["9M", "9L36"], terablast: ["9M"], thrash: ["9L48"], - uproar: ["9L40"], + uproar: ["9M", "9L40"], waterfall: ["9M"], watergun: ["9L1"], waterpulse: ["9M"], wavecrash: ["9L44"], + whirlpool: ["9M"], + zenheadbutt: ["9M"], }, }, basculegionf: { @@ -55835,10 +58461,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confuseray: ["9M"], crunch: ["9M", "9L32"], - doubleedge: ["9L52"], - endeavor: ["9E"], + doubleedge: ["9M", "9L52"], + endeavor: ["9M", "9E"], + endure: ["9M"], facade: ["9M"], flail: ["9L8"], + flipturn: ["9M"], gigaimpact: ["9M"], headbutt: ["9L24"], headsmash: ["9L56"], @@ -55850,31 +58478,38 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M"], lastrespects: ["9E"], liquidation: ["9M"], + muddywater: ["9M"], mudshot: ["9M"], nightshade: ["9M"], outrage: ["9M"], + painsplit: ["9M"], phantomforce: ["9M", "9L1"], protect: ["9M"], psychicfangs: ["9M"], raindance: ["9M"], rest: ["9M"], + scaleshot: ["9M"], scaryface: ["9M", "9L20"], shadowball: ["9M", "9L1"], sleeptalk: ["9M"], snowscape: ["9M"], soak: ["9L28"], + spite: ["9M"], substitute: ["9M"], surf: ["9M"], + swift: ["9M"], tackle: ["9L4"], tailwhip: ["9L1"], takedown: ["9M", "9L36"], terablast: ["9M"], thrash: ["9L48"], - uproar: ["9L40"], + uproar: ["9M", "9L40"], waterfall: ["9M"], watergun: ["9L1"], waterpulse: ["9M"], wavecrash: ["9L44"], + whirlpool: ["9M"], + zenheadbutt: ["9M"], }, }, sandile: { @@ -55890,10 +58525,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], counter: ["9E", "8E", "7E", "6E", "5E"], crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28"], + curse: ["9M"], cut: ["6M", "5M"], darkpulse: ["9M", "8M", "7M", "6M", "5T"], dig: ["9M", "9L21", "8M", "8L21", "7L31", "6M", "6L31", "5M", "5L31"], - doubleedge: ["9E", "8E", "7E", "6E", "5E"], + doubleedge: ["9M", "9E", "8E", "7E", "6E", "5E"], doubleteam: ["7M", "6M", "5M"], earthpower: ["9M", "8M", "7T", "6T", "5T"], earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L43", "6M", "6L43", "5M", "5L43"], @@ -55911,7 +58547,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { honeclaws: ["9L6", "8L6", "6M", "5M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], meanlook: ["7E", "6E", "5E"], mefirst: ["7E", "6E"], @@ -55925,25 +58561,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rockclimb: ["7E", "6E", "5E"], rockslide: ["9M", "8M", "7M", "6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], sandattack: ["9L3", "8L3", "7L7", "6L7", "5L7"], sandstorm: ["9M", "9L30", "8M", "8L30", "7M", "7L40", "6M", "6L40", "5M", "5L40"], - sandtomb: ["9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + sandtomb: ["9M", "9L9", "8M", "8L9", "7L13", "6L13", "5L13"], scaryface: ["9M", "9L12", "8M", "8L12", "7L34", "6L34", "5L34"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M"], shadowclaw: ["9M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M", "7M", "6M", "5M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], - spite: ["9E", "8E", "7T", "6T", "5T"], + spite: ["9M", "9E", "8E", "7T", "6T", "5T"], stealthrock: ["9M", "8M", "7T", "6T", "5T"], stompingtantrum: ["9M"], stoneedge: ["9M", "8M", "7M", "6M", "5M"], @@ -55969,26 +58605,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { beatup: ["8M"], bite: ["9L15", "8L15", "7L1", "6L1", "5L1"], bodyslam: ["9M"], + breakingswipe: ["9M"], brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28"], + curse: ["9M"], cut: ["6M", "5M"], darkpulse: ["9M", "8M", "7M", "6M", "5T"], dig: ["9M", "9L21", "8M", "8L21", "7L32", "6M", "6L32", "5M", "5L32"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], dragonclaw: ["9M"], dragontail: ["9M"], earthpower: ["9M", "8M", "7T", "6T", "5T"], earthquake: ["9M", "9L42", "8M", "8L42", "7M", "7L48", "6M", "6L48", "5M", "5L48"], embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], firefang: ["9M", "8M"], fling: ["9M", "8M", "7M", "6M", "5M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], foulplay: ["9M", "9L35", "8M", "8L35", "7T", "7L40", "6T", "6L40", "5T", "5L40"], frustration: ["7M", "6M", "5M"], grassknot: ["9M", "8M", "7M", "6M", "5M"], @@ -55997,8 +58637,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { honeclaws: ["9L1", "8L1", "6M", "5M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], lowkick: ["9M", "8M", "7T", "6T", "5T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], @@ -56015,25 +58655,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L44", "6M", "6L44", "5M", "5L44"], - sandtomb: ["9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + sandtomb: ["9M", "9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaleshot: ["9M"], scaryface: ["9M", "9L12", "8M", "8L12", "7L36", "6L36", "5L36"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M", "7M", "6M", "5M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], stealthrock: ["9M", "8M", "7T", "6T", "5T"], stompingtantrum: ["9M", "8M"], stoneedge: ["9M", "8M", "7M", "6M", "5M"], @@ -56061,6 +58702,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L15", "8L15", "7L1", "6L1", "5L1"], block: ["7T", "6T", "5T"], bodyslam: ["9M", "8M"], + breakingswipe: ["9M"], brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], bulkup: ["9M", "8M", "7M", "6M", "5M"], @@ -56069,10 +58711,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], counter: ["5D"], crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28", "5D"], + curse: ["9M"], cut: ["6M", "5M"], darkestlariat: ["8M"], darkpulse: ["9M", "8M", "7M", "6M", "5T"], dig: ["9M", "9L21", "8M", "8L21", "7L32", "6M", "6L32", "5M", "5L32"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], dragonclaw: ["9M", "8M", "7M", "6M", "5M"], dragonpulse: ["9M", "8M", "7T", "6T", "5T"], @@ -56080,13 +58724,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { earthpower: ["9M", "8M", "7T", "6T", "5T"], earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L54", "6M", "6L54", "5M", "5L54"], embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], firefang: ["9M", "8M"], fling: ["9M", "8M", "7M", "6M", "5M"], focusblast: ["9M", "8M", "7M", "6M", "5M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], foulplay: ["9M", "9L35", "8M", "8L35", "7T", "7L42", "6T", "6L42", "5T", "5L42"], frustration: ["7M", "6M", "5M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M"], @@ -56094,13 +58739,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gunkshot: ["9M"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], honeclaws: ["9L1", "8L1", "6M", "5M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], lowkick: ["9M", "8M", "7T", "6T", "5T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], @@ -56119,27 +58764,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L48", "6M", "6L48", "5M", "5L48"], - sandtomb: ["9L9", "8M", "8L9", "7L13", "6L13", "5L13"], - scaleshot: ["8T"], + sandtomb: ["9M", "9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L12", "8M", "8L12", "7L36", "6L36", "5L36"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M", "7M", "6M", "5M"], - smackdown: ["7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], stealthrock: ["9M", "8M", "7T", "6T", "5T"], stompingtantrum: ["9M", "8M", "7T"], stoneedge: ["9M", "8M", "7M", "6M", "5M"], @@ -56152,7 +58797,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M"], thrash: ["9L51", "8L51"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderfang: ["9M", "8M"], torment: ["9L18", "8L18", "7M", "7L10", "6M", "6L10", "5M", "5L10"], toxic: ["7M", "6M", "5M"], @@ -56668,95 +59313,107 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, scraggy: { learnset: { - acidspray: ["8E", "7E"], - amnesia: ["8M", "7E", "6E", "5E"], + acidspray: ["9M", "8E", "7E"], + amnesia: ["9M", "8M", "7E", "6E", "5E"], assurance: ["8M"], attract: ["8M", "7M", "6M", "5M"], - beatup: ["8M", "8L24"], - brickbreak: ["8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], - bulkup: ["8M", "7M", "6M", "5M"], + beatup: ["9L24", "8M", "8L24"], + brickbreak: ["9M", "9L32", "8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], chipaway: ["7L27", "6L27", "5L27"], - coaching: ["8T"], + closecombat: ["9M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - counter: ["8E", "7E", "6E", "5E"], - crunch: ["8M", "8L40", "7L38", "6L38", "5L38"], - darkpulse: ["8M", "7M", "6M", "5T"], - detect: ["8E", "7E", "6E", "5E"], - dig: ["8M", "6M", "5M"], + counter: ["9E", "8E", "7E", "6E", "5E"], + crunch: ["9M", "9L40", "8M", "8L40", "7L38", "6L38", "5L38"], + curse: ["9M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + detect: ["9E", "8E", "7E", "6E", "5E"], + dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dragonclaw: ["8M", "7M", "6M", "5M"], - dragondance: ["8M", "7E", "6E", "5E"], - dragonpulse: ["8M", "7T", "6T", "5T"], - dragontail: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M"], + dragondance: ["9M", "8M", "7E", "6E", "5E"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + drainpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], dualchop: ["7T", "6T", "5T"], - endure: ["8M"], - facade: ["8M", "8L16", "7M", "7L42", "6M", "6L42", "5M", "5L42"], - fakeout: ["8E", "7E", "6E", "5E", "5D"], - faketears: ["8M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "9L16", "8M", "8L16", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "5D"], + faketears: ["9M", "8M"], feintattack: ["7L9", "7E", "6L9", "6E", "5L9", "5E"], - firepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focuspunch: ["8L48", "7T", "7L48", "6T", "6L48", "5L49"], - foulplay: ["8M", "7T", "6T", "5T"], + firepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M", "9L48", "8L48", "7T", "7L48", "6T", "6L48", "5L49"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - headbutt: ["8L8", "7L1", "6L12", "5L12", "5S0"], - headsmash: ["8L52", "7L50", "6L50", "5L53"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + headbutt: ["9L8", "8L8", "7L1", "6L12", "5L12", "5S0"], + headsmash: ["9L52", "8L52", "7L50", "6L50", "5L53"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - highjumpkick: ["8L44", "7L31", "6L31", "5L31", "5S0"], - icepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + highjumpkick: ["9L44", "8L44", "7L31", "6L31", "5L31", "5S0"], + icepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], incinerate: ["6M", "5M"], - irondefense: ["8M", "7T", "6T", "5T"], - ironhead: ["8M", "7T", "6T", "5T"], + irondefense: ["9M", "8M", "7T", "6T", "5T"], + ironhead: ["9M", "8M", "7T", "6T", "5T"], irontail: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - lashout: ["8T"], - leer: ["8L1", "7L1", "6L1", "5L1", "5S0"], - lowkick: ["8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1", "5D", "5S0"], - lowsweep: ["8M", "7M", "6M", "5M"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + lowkick: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1", "5D", "5S0"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M"], megapunch: ["8M"], - payback: ["8M", "8L4", "7M", "7L20", "6M", "6L23", "5M", "5L23"], - poisonjab: ["8M", "7M", "6M", "5M"], + payback: ["9L4", "8M", "8L4", "7M", "7L20", "6M", "6L23", "5M", "5L23"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], poweruppunch: ["8E", "7E", "6M"], - protect: ["8M", "8L20", "7M", "6M", "5M"], - quickguard: ["8E", "7E", "6E"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "8L20", "7M", "6M", "5M"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rockclimb: ["7L45", "6L45", "5L45"], - rockslide: ["8M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L12", "7L5", "6L5", "5L5"], - scaryface: ["8M", "8L28", "7L34", "6L34", "5L34"], + sandattack: ["9L12", "8L12", "7L5", "6L5", "5L5"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L34", "6L34", "5L34"], secretpower: ["6M"], - sleeptalk: ["8M", "7M", "6M", "5T"], - sludgebomb: ["8M", "7M", "6M", "5M"], - smackdown: ["7M", "6M", "5M"], - snarl: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], spite: ["7T", "6T", "5T"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], - superfang: ["7T", "6T", "5T"], - swagger: ["8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], - taunt: ["8M", "7M", "6M", "5M"], - thief: ["8M"], - thunderpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - torment: ["7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superfang: ["9M", "7T", "6T", "5T"], + swagger: ["9L36", "8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M"], + throatchop: ["9M"], + thunderpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + torment: ["9L20", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], workup: ["8M", "7M", "5M"], - zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + zenheadbutt: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], }, eventData: [ {generation: 5, level: 1, gender: "M", nature: "Adamant", abilities: ["moxie"], moves: ["headbutt", "leer", "highjumpkick", "lowkick"], pokeball: "cherishball"}, @@ -56764,95 +59421,110 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, scrafty: { learnset: { - amnesia: ["8M"], + acidspray: ["9M"], + amnesia: ["9M", "8M"], assurance: ["8M"], attract: ["8M", "7M", "6M", "5M"], - beatup: ["8M", "8L24"], - brickbreak: ["8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], - bulkup: ["8M", "7M", "6M", "5M"], + beatup: ["9L24", "8M", "8L24"], + bodyslam: ["9M"], + brickbreak: ["9M", "9L32", "8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], chipaway: ["7L27", "6L27", "5L27"], - closecombat: ["8M"], - coaching: ["8T"], + closecombat: ["9M", "8M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - crunch: ["8M", "8L42", "7L38", "6L38", "5L38"], - darkpulse: ["8M", "7M", "6M", "5T"], - dig: ["8M", "6M", "5M"], + crunch: ["9M", "9L42", "8M", "8L42", "7L38", "6L38", "5L38"], + curse: ["9M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dragonclaw: ["8M", "7M", "6M", "5M"], - dragondance: ["8M"], - dragonpulse: ["8M", "7T", "6T", "5T"], - dragontail: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "6T", "5T", "5S0"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "5S0"], dualchop: ["7T", "6T", "5T"], - endure: ["8M"], - facade: ["8M", "8L16", "7M", "7L45", "6M", "6L45", "5M", "5L45"], - faketears: ["8M"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "9L16", "8M", "8L16", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + faketears: ["9M", "8M"], feintattack: ["7L1", "6L1", "5L1"], - firepunch: ["8M", "7T", "6T", "5T", "5S0"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focuspunch: ["8L54", "7T", "7L58", "6T", "6L58", "5L58"], - foulplay: ["8M", "7T", "6T", "5T"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "5S0"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M", "9L54", "8L54", "7T", "7L58", "6T", "6L58", "5L58"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - headbutt: ["8L1", "7L1", "6L12", "5L12"], - headsmash: ["8L60", "7L65", "6L65", "5L65"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + headbutt: ["9L1", "8L1", "7L1", "6L12", "5L12"], + headsmash: ["9L60", "8L60", "7L65", "6L65", "5L65"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - highjumpkick: ["8L48", "7L31", "6L31", "5L31"], - hyperbeam: ["8M", "7M", "6M", "5M"], - icepunch: ["8M", "7T", "6T", "5T"], + highjumpkick: ["9L48", "8L48", "7L31", "6L31", "5L31"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], incinerate: ["6M", "5M"], - irondefense: ["8M", "7T", "6T", "5T"], - ironhead: ["8M", "7T", "6T", "5T"], + irondefense: ["9M", "8M", "7T", "6T", "5T"], + ironhead: ["9M", "8M", "7T", "6T", "5T"], irontail: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - lashout: ["8T"], - leer: ["8L1", "7L1", "6L1", "5L1"], - lowkick: ["8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1"], - lowsweep: ["8M", "7M", "6M", "5M"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], megakick: ["8M"], megapunch: ["8M"], - outrage: ["8M", "7T", "6T", "5T"], - payback: ["8M", "8L1", "7M", "7L20", "6M", "6L23", "5M", "5L23", "5S0"], - poisonjab: ["8M", "7M", "6M", "5M"], + metronome: ["9M"], + outrage: ["9M", "8M", "7T", "6T", "5T"], + payback: ["9L1", "8M", "8L1", "7M", "7L20", "6M", "6L23", "5M", "5L23", "5S0"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], poweruppunch: ["6M"], - protect: ["8M", "8L20", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "8L20", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - roar: ["7M", "6M", "5M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M"], rockclimb: ["7L51", "6L51", "5L51"], - rockslide: ["8M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - sandattack: ["8L12", "7L1", "6L1", "5L1"], - scaryface: ["8M", "8L28", "7L34", "6L34", "5L34"], + sandattack: ["9L12", "8L12", "7L1", "6L1", "5L1"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L34", "6L34", "5L34"], secretpower: ["6M"], - sleeptalk: ["8M", "7M", "6M", "5T"], - sludgebomb: ["8M", "7M", "6M", "5M"], - smackdown: ["7M", "6M", "5M"], - snarl: ["8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], - stoneedge: ["8M", "7M", "6M", "5M"], + spite: ["9M", "7T", "6T", "5T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M", "5S0"], - sunnyday: ["8M", "7M", "6M", "5M"], - superfang: ["7T", "6T", "5T"], - swagger: ["8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], - taunt: ["8M", "7M", "6M", "5M"], - thief: ["8M", "7M", "6M", "5M"], - throatchop: ["8M", "7T"], - thunderpunch: ["8M", "7T", "6T", "5T"], - torment: ["7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "5S0"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superfang: ["9M", "7T", "6T", "5T"], + swagger: ["9L36", "8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["9M", "8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + torment: ["9L20", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], workup: ["8M", "7M", "5M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 50, gender: "M", nature: "Brave", abilities: ["moxie"], moves: ["firepunch", "payback", "drainpunch", "substitute"], pokeball: "cherishball"}, @@ -57693,7 +60365,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["8M"], attract: ["8M", "7M", "6M", "5M"], bounce: ["8M", "7T", "6T", "5T"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], calmmind: ["9M", "8M", "7M", "6M", "5M"], captivate: ["7E", "6E", "5E"], confide: ["7M", "6M"], @@ -57725,16 +60397,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M", "7T", "6T", "5T"], imprison: ["9M", "9L36", "8M", "8L36", "7L53", "6L53", "5L53"], incinerate: ["6M", "5M"], - knockoff: ["9L24", "8L24", "7T", "6T", "5T"], - lashout: ["8T"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], memento: ["9E", "8E", "7E", "6E", "5E"], nastyplot: ["9M", "9L44", "8M", "8L44", "7L49", "6L49", "5L49"], nightdaze: ["9L40", "8L40", "7L57", "6L57", "5L57"], nightshade: ["9M"], + painsplit: ["9M"], payback: ["8M", "7M", "6M", "5M"], protect: ["9M", "8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], punishment: ["7L45", "6L45", "5L45"], pursuit: ["7L5", "6L5", "5L5"], raindance: ["9M", "8M", "7M", "6M", "5M"], @@ -57742,20 +60415,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "9L16", "8M", "8L16", "7L21", "6L21", "5L21"], scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], secretpower: ["6M"], shadowball: ["9M", "8M", "7M", "6M", "5M"], shadowclaw: ["9M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M"], snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "7E", "6T", "6E", "5T", "5E"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], substitute: ["9M", "8M", "7M", "6M", "5M"], suckerpunch: ["9E", "8E", "7E", "6E", "5E"], sunnyday: ["9M", "8M", "7M", "6M", "5M"], @@ -57777,10 +60450,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { agility: ["9M", "9L32"], bittermalice: ["9L40"], + burningjealousy: ["9M"], calmmind: ["9M"], comeuppance: ["9E"], confuseray: ["9M"], - curse: ["9L16"], + curse: ["9M", "9L16"], darkpulse: ["9M"], detect: ["9E"], dig: ["9M"], @@ -57789,6 +60463,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M"], faketears: ["9M"], fling: ["9M"], + focuspunch: ["9M"], foulplay: ["9M", "9L48"], gigaimpact: ["9M"], hex: ["9M"], @@ -57796,24 +60471,29 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], icywind: ["9M"], imprison: ["9M"], - knockoff: ["9L24"], + knockoff: ["9M", "9L24"], + lashout: ["9M"], leer: ["9L1"], memento: ["9E"], nastyplot: ["9M", "9L44"], nightshade: ["9M"], + painsplit: ["9M"], phantomforce: ["9M"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], + roar: ["9M"], scratch: ["9L1"], shadowball: ["9M", "9L36"], shadowclaw: ["9M"], shadowsneak: ["9L12"], + skittersmack: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], snarl: ["9M"], snowscape: ["9M"], - spite: ["9L28"], + spite: ["9M", "9L28"], substitute: ["9M"], swift: ["9M"], takedown: ["9M"], @@ -57835,7 +60515,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], bounce: ["8M", "7T", "6T", "5T"], brickbreak: ["9M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], calmmind: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], confuseray: ["9M"], @@ -57846,7 +60526,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dig: ["9M", "8M", "6M", "5M"], doubleteam: ["7M", "6M", "5M"], embargo: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "5S0"], - encore: ["8M"], + encore: ["9M", "8M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], faketears: ["9M", "9L28", "8M", "8L28"], @@ -57867,9 +60547,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M", "7T", "6T", "5T"], imprison: ["9M", "9L40", "8M", "8L40", "7L1", "6L1", "5L59"], incinerate: ["6M", "5M"], - knockoff: ["9L24", "8L24", "7T", "6T", "5T"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T"], laserfocus: ["7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], lowkick: ["9M", "8M", "7T", "6T", "5T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], @@ -57879,10 +60559,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightdaze: ["9L46", "8L46", "7L1", "6L1", "5L64"], nightshade: ["9M"], nightslash: ["9L0", "8L0", "7L1", "6L30", "5L30"], + painsplit: ["9M"], payback: ["8M", "7M", "6M", "5M"], protect: ["9M", "8M", "7M", "6M", "5M"], psychic: ["9M"], - psychup: ["7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], punishment: ["7L49", "6L49", "6S2", "5L49", "5S0"], pursuit: ["7L1", "6L1", "5L1"], raindance: ["9M", "8M", "7M", "6M", "5M"], @@ -57890,7 +60571,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "8M", "8L16", "7L21", "6L21", "6S2", "5L21"], @@ -57898,13 +60579,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M"], shadowball: ["9M", "8M", "7M", "6M", "5M"], shadowclaw: ["9M", "8M", "7M", "6M", "5M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M", "6S1"], snarl: ["9M", "8M", "7M", "6M", "5M", "5S0"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], substitute: ["9M", "8M", "7M", "6M", "5M"], suckerpunch: ["6S1"], sunnyday: ["9M", "8M", "7M", "6M", "5M"], @@ -57915,9 +60596,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], torment: ["9L1", "8L1", "7M", "7L34", "6M", "6L34", "5M", "5L34"], - toxic: ["7M", "6M", "5M"], + toxic: ["9M", "7M", "6M", "5M"], trick: ["9M", "8M", "7T", "6T", "5T"], uproar: ["8M", "7T", "6T", "5T"], uturn: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], @@ -57938,10 +60619,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bittermalice: ["9L46", "9S0"], bodyslam: ["9M"], brickbreak: ["9M"], + burningjealousy: ["9M"], calmmind: ["9M"], confuseray: ["9M"], crunch: ["9M"], - curse: ["9L16"], + curse: ["9M", "9L16"], darkpulse: ["9M"], dig: ["9M"], endure: ["9M"], @@ -57950,6 +60632,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M"], fling: ["9M"], focusblast: ["9M"], + focuspunch: ["9M"], foulplay: ["9M", "9L58"], gigaimpact: ["9M"], grassknot: ["9M"], @@ -57961,27 +60644,33 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M"], icywind: ["9M"], imprison: ["9M"], - knockoff: ["9L24"], + knockoff: ["9M", "9L24"], + lashout: ["9M"], leer: ["9L1"], lowkick: ["9M"], lowsweep: ["9M"], nastyplot: ["9M", "9L52", "9S0"], nightshade: ["9M"], + painsplit: ["9M"], phantomforce: ["9M"], + poltergeist: ["9M"], protect: ["9M"], psychic: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], + roar: ["9M"], scaryface: ["9M"], scratch: ["9L1"], shadowball: ["9M", "9L40"], shadowclaw: ["9M", "9L0"], shadowsneak: ["9L12"], + skittersmack: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], snarl: ["9M"], snowscape: ["9M"], - spite: ["9L28"], + spite: ["9M", "9L28"], substitute: ["9M"], swift: ["9M"], swordsdance: ["9M"], @@ -57989,6 +60678,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L20"], terablast: ["9M", "9S0"], thief: ["9M"], + throatchop: ["9M"], torment: ["9L1"], trick: ["9M"], uturn: ["9M", "9L1"], @@ -58000,136 +60690,157 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, minccino: { learnset: { - afteryou: ["8L28", "7T", "7L49", "6T", "6L49", "5T", "5L49"], - aquatail: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + afteryou: ["9L28", "8L28", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + alluringvoice: ["9M"], + aquatail: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], attract: ["8M", "7M", "6M", "5M"], - babydolleyes: ["8L1", "7L3", "6L3"], - calmmind: ["8M", "7M", "6M", "5M"], + babydolleyes: ["9L1", "8L1", "7L3", "6L3"], + batonpass: ["9M"], + bulletseed: ["9M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], captivate: ["7L39", "6L39", "5L39"], - charm: ["8M", "8L16", "7L27", "6L27", "5L27"], + charm: ["9M", "9L16", "8M", "8L16", "7L27", "6L27", "5L27"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - dazzlinggleam: ["8M", "7M", "6M"], - dig: ["8M", "6M", "5M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + dig: ["9M", "8M", "6M", "5M"], doubleslap: ["7L13", "6L13", "5L13"], doubleteam: ["7M", "6M", "5M"], - echoedvoice: ["8L8", "7M", "7L33", "6M", "6L33", "5M", "5L33"], - encore: ["8M", "8L24", "7L15", "6L15", "5L15"], - endure: ["8M", "7E", "6E", "5E"], - facade: ["8M", "7M", "6M", "5M"], - faketears: ["8M", "7E", "6E", "5E"], - flail: ["8E", "7E", "6E", "5E"], - fling: ["8M", "7M", "6M", "5M"], + echoedvoice: ["9L8", "8L8", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + encore: ["9M", "9L24", "8M", "8L24", "7L15", "6L15", "5L15"], + endeavor: ["9M"], + endure: ["9M", "8M", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "8M", "7E", "6E", "5E"], + flail: ["9E", "8E", "7E", "6E", "5E"], + fling: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], growl: ["5L3"], - gunkshot: ["8M", "7T", "6T", "5T"], - helpinghand: ["8M", "8L4", "7T", "7L7", "6T", "6L7", "5T", "5L7"], + gunkshot: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M", "9L4", "8M", "8L4", "7T", "7L7", "6T", "6L7", "5T", "5L7"], hiddenpower: ["7M", "6M", "5M"], - hypervoice: ["8M", "8L44", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + hypervoice: ["9M", "9L44", "8M", "8L44", "7T", "7L43", "6T", "6L43", "5T", "5L43"], irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], - lastresort: ["8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], - mudslap: ["7E", "6E", "5E"], - playrough: ["8M"], - pound: ["8L1", "7L1", "6L1", "5L1"], - protect: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lastresort: ["9L48", "8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + mudslap: ["9M", "7E", "6E", "5E"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["8M", "7T", "6T", "5T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], shockwave: ["7T", "6T"], - sing: ["8L12", "7L21", "6L21", "5L21"], - slam: ["8L40", "7L37", "6L37", "5L37"], - sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + sing: ["9L12", "8L12", "7L21", "6L21", "5L21"], + slam: ["9L40", "8L40", "7L37", "6L37", "5L37"], + sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E"], snore: ["8M", "7T", "6T", "5T"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superfang: ["9M"], swagger: ["7M", "6M", "5M"], - swift: ["8M", "8L20", "7L19", "6L19", "5L19"], - tailslap: ["8M", "8L32", "7L25", "6L25", "5L25"], - tailwhip: ["8E", "7E", "6E", "5E"], - thief: ["8M", "7M", "6M", "5M"], - thunderbolt: ["8M", "7M", "6M", "5M"], - thunderwave: ["8M", "7M", "6M", "5M"], - tickle: ["8L36", "7L9", "6L9", "5L9"], + swift: ["9M", "9L20", "8M", "8L20", "7L19", "6L19", "5L19"], + tailslap: ["9L32", "8M", "8L32", "7L25", "6L25", "5L25"], + tailwhip: ["9E", "8E", "7E", "6E", "5E"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L36", "8L36", "7L9", "6L9", "5L9"], + tidyup: ["9E"], toxic: ["7M", "6M", "5M"], - tripleaxel: ["8T"], - uproar: ["8M", "7T", "6T", "5T"], - uturn: ["8M", "7M", "6M", "5M"], + trailblaze: ["9M"], + tripleaxel: ["9M", "8T"], + uproar: ["9M", "8M", "7T", "6T", "5T"], + uturn: ["9M", "8M", "7M", "6M", "5M"], wakeupslap: ["7L31", "6L31", "5L31"], workup: ["8M", "7M", "5M"], }, }, cinccino: { learnset: { - afteryou: ["8L1", "7T", "6T", "5T"], + afteryou: ["9L1", "8L1", "7T", "6T", "5T"], + alluringvoice: ["9M"], aquatail: ["7T", "6T", "5T"], attract: ["8M", "7M", "6M", "5M"], - babydolleyes: ["8L1"], - bulletseed: ["8M", "8L1", "7L1", "6L1", "5L1"], - calmmind: ["8M", "7M", "6M", "5M"], - charm: ["8M", "8L1"], + babydolleyes: ["9L1", "8L1"], + batonpass: ["9M"], + bulletseed: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], - dazzlinggleam: ["8M", "7M", "6M"], - dig: ["8M", "6M", "5M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - echoedvoice: ["8L1", "7M", "6M", "5M"], - encore: ["8M", "8L1"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - faketears: ["8M"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + echoedvoice: ["9L1", "8L1", "7M", "6M", "5M"], + encore: ["9M", "9L1", "8M", "8L1"], + endeavor: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - gunkshot: ["8M", "7T", "6T", "5T"], - helpinghand: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], hiddenpower: ["7M", "6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - hypervoice: ["8M", "8L1", "7T", "6T", "5T"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + icespinner: ["9M"], irontail: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], laserfocus: ["7T"], - lastresort: ["8L1", "7T", "6T", "5T"], - lightscreen: ["8M", "7M", "6M", "5M"], - playrough: ["8M"], - pound: ["8L1"], - protect: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + lastresort: ["9L1", "8L1", "7T", "6T", "5T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + mudslap: ["9M"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockblast: ["8M", "8L1", "7L1", "6L1", "5L1"], + rockblast: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - seedbomb: ["8M", "7T", "6T", "5T"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], shockwave: ["7T", "6T"], - sing: ["8L1", "7L1", "6L1", "5L1"], - slam: ["8L1"], - sleeptalk: ["8M", "7M", "6M", "5T"], + sing: ["9L1", "8L1", "7L1", "6L1", "5L1"], + slam: ["9L1", "8L1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superfang: ["9M"], swagger: ["7M", "6M", "5M"], - swift: ["8M", "8L1"], - tailslap: ["8M", "8L1", "7L1", "6L1", "5L1"], - thief: ["8M", "7M", "6M", "5M"], - thunder: ["8M", "7M", "6M", "5M"], - thunderbolt: ["8M", "7M", "6M", "5M"], - thunderwave: ["8M", "7M", "6M", "5M"], - tickle: ["8L1", "7L1", "6L1", "5L1"], + swift: ["9M", "9L1", "8M", "8L1"], + tailslap: ["9L0", "8M", "8L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunder: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L1", "8L1", "7L1", "6L1", "5L1"], toxic: ["7M", "6M", "5M"], - tripleaxel: ["8T"], - uproar: ["8M", "7T", "6T", "5T"], - uturn: ["8M", "7M", "6M", "5M"], + trailblaze: ["9M"], + tripleaxel: ["9M", "8T"], + uproar: ["9M", "8M", "7T", "6T", "5T"], + uturn: ["9M", "8M", "7M", "6M", "5M"], workup: ["8M", "7M", "5M"], }, }, @@ -58151,7 +60862,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M", "6M", "5M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M"], fakeout: ["9E", "8E"], faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L10"], @@ -58161,9 +60872,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "6M", "5M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M"], - futuresight: ["9L44", "8M", "8L44", "7L31", "6L31", "5L31"], + futuresight: ["9M", "9L44", "8M", "8L44", "7L31", "6L31", "5L31"], grassknot: ["9M", "8M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], + gravity: ["9M", "7T", "6T", "5T"], guardswap: ["8M"], healbell: ["7T", "6T", "5T"], healblock: ["7L33", "6L33", "5L33"], @@ -58185,8 +60896,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M", "6M", "5M"], psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], psychic: ["9M", "9L36", "8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["9L33", "8L33", "7M", "6M", "5M"], + psychup: ["9M", "9L33", "8L33", "7M", "6M", "5M"], psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], raindance: ["9M", "8M", "7M", "6M", "5M"], recycle: ["7T", "6T", "5T"], @@ -58242,7 +60954,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M", "6M", "5M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M"], faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L1"], feintattack: ["7L24", "6L24", "5L24"], @@ -58251,9 +60963,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "6M", "5M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M"], - futuresight: ["9L52", "8M", "8L52", "7L31", "6L31", "5L31", "5S0", "5S1"], + futuresight: ["9M", "9L52", "8M", "8L52", "7L31", "6L31", "5L31", "5S0", "5S1"], grassknot: ["9M", "8M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], + gravity: ["9M", "7T", "6T", "5T"], guardswap: ["8M"], healbell: ["7T", "6T", "5T"], healblock: ["7L34", "6L34", "5L34"], @@ -58273,8 +60985,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M", "6M", "5M"], psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], psychic: ["9M", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["9L35", "8L35", "7M", "6M", "5M"], + psychup: ["9M", "9L35", "8L35", "7M", "6M", "5M"], psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25", "5S0", "5S1"], raindance: ["9M", "8M", "7M", "6M", "5M"], recycle: ["7T", "6T", "5T"], @@ -58340,7 +61053,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M", "6M", "5M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "6M", "5M"], faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L1"], feintattack: ["7L24", "6L24", "5L24"], @@ -58350,10 +61063,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusblast: ["9M"], foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M"], - futuresight: ["9L56", "8M", "8L56", "7L31", "6L31", "5L31"], + futuresight: ["9M", "9L56", "8M", "8L56", "7L31", "6L31", "5L31"], gigaimpact: ["9M", "8M", "7M", "6M", "5M"], grassknot: ["9M", "8M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], + gravity: ["9M", "7T", "6T", "5T"], guardswap: ["8M"], healbell: ["7T", "6T", "5T"], healblock: ["7L34", "6L34", "5L34"], @@ -58376,8 +61089,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M", "6M", "5M"], psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["9L35", "8L35", "7M", "6M", "5M"], + psychup: ["9M", "9L35", "8L35", "7M", "6M", "5M"], psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], raindance: ["9M", "8M", "7M", "6M", "5M"], recycle: ["7T", "6T", "5T"], @@ -58421,158 +61135,166 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, solosis: { learnset: { - acidarmor: ["8E", "7E", "6E", "5E"], + acidarmor: ["9E", "8E", "7E", "6E", "5E"], afteryou: ["7T", "6T", "5T"], - allyswitch: ["8M", "8L28", "7T"], - astonish: ["8E", "7E", "6E", "5E"], + allyswitch: ["9L28", "8M", "8L28", "7T"], + astonish: ["9E", "8E", "7E", "6E", "5E"], attract: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M"], - charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L19", "6L19", "5L19"], confide: ["7M", "6M"], - confuseray: ["8E", "7E", "6E", "5E"], - confusion: ["8L1"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E"], + confusion: ["9L1", "8L1"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], embargo: ["7M", "6M", "5M"], - encore: ["8M"], - endeavor: ["8L8", "7T", "7L28", "6T", "6L28", "5T", "5L28"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M"], - expandingforce: ["8T"], + encore: ["9M", "8M"], + endeavor: ["9M", "9L8", "8L8", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["9M", "8T"], explosion: ["7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], flash: ["6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - futuresight: ["8M", "8L44", "7L31", "6L31", "5L31"], - gravity: ["7T", "6T", "5T"], + futuresight: ["9M", "9L44", "8M", "8L44", "7L31", "6L31", "5L31"], + gravity: ["9M", "7T", "6T", "5T"], guardswap: ["8M"], - gyroball: ["8M", "7M", "6M", "5M"], + gyroball: ["9M", "8M", "7M", "6M", "5M"], healblock: ["7L46", "6L46", "5L46"], - helpinghand: ["8M", "7T", "7E", "6T", "6E"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E"], hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], - imprison: ["8M", "7E", "6E", "5E"], + imprison: ["9M", "8M", "7E", "6E", "5E"], infestation: ["7M", "6M"], - irondefense: ["8M", "7T", "6T"], - lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + irondefense: ["9M", "8M", "7T", "6T"], + lightscreen: ["9M", "9L24", "8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], magiccoat: ["7T", "6T", "5T"], - nightshade: ["7E", "6E", "5E"], - painsplit: ["8L33", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + nightshade: ["9M", "7E", "6E", "5E"], + painsplit: ["9M", "9L33", "8L33", "7T", "7L33", "6T", "6L33", "5T", "5L33"], powerswap: ["8M"], - protect: ["8M", "8L1", "7M", "6M", "5M"], - psybeam: ["8L12"], - psychic: ["8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], - psychicterrain: ["8M"], - psychup: ["7M", "6M", "5M"], - psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12"], + psychic: ["9M", "9L36", "8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychicterrain: ["9M", "8M"], + psychup: ["9M", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], psywave: ["7L1", "6L1", "5L1"], - raindance: ["8M", "7M", "6M", "5M"], - recover: ["8L4", "7L24", "6L24", "5L24"], - reflect: ["8M", "8L24", "7M", "7L3", "6M", "6L3", "5M", "5L3"], - rest: ["8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recover: ["9L4", "8L4", "7L24", "6L24", "5L24"], + reflect: ["9M", "9L24", "8M", "8L24", "7M", "7L3", "6M", "6L3", "5M", "5L3"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roleplay: ["7T", "6T", "5T"], rollout: ["7L7", "6L7", "5L7"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["7E", "6M", "6E", "5E"], - shadowball: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T", "5T"], - skillswap: ["8M", "8L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], - sleeptalk: ["8M", "7M", "6M", "5T"], + skillswap: ["9M", "9L40", "8M", "8L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snatch: ["7T", "7L10", "6T", "6L10", "5T", "5L10"], snore: ["8M", "7T", "6T", "5T"], steelroller: ["8T"], - storedpower: ["8M"], - substitute: ["8M", "7M", "6M", "5M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], swagger: ["7M", "6M", "5M"], + swift: ["9M"], telekinesis: ["7T", "5M"], - thunder: ["8M", "7M", "6M", "5M"], - thunderwave: ["8M", "7M", "6M", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - trick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - trickroom: ["8M", "7M", "6M", "5M"], - wonderroom: ["8M", "8L48", "7T", "7L48", "6T", "6L48", "5T", "5L48"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + trick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + wonderroom: ["9L48", "8M", "8L48", "7T", "7L48", "6T", "6L48", "5T", "5L48"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, }, duosion: { learnset: { afteryou: ["7T", "6T", "5T"], - allyswitch: ["8M", "8L28", "7T"], + allyswitch: ["9L28", "8M", "8L28", "7T"], attract: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M"], - charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L19", "6L19", "5L19"], confide: ["7M", "6M"], - confusion: ["8L1"], + confuseray: ["9M"], + confusion: ["9L1", "8L1"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], embargo: ["7M", "6M", "5M"], - encore: ["8M"], - endeavor: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M"], - expandingforce: ["8T"], + encore: ["9M", "8M"], + endeavor: ["9M", "9L1", "8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["9M", "8T"], explosion: ["7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], flash: ["6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - futuresight: ["8M", "8L52", "7L31", "6L31", "5L31"], - gravity: ["7T", "6T", "5T"], + futuresight: ["9M", "9L52", "8M", "8L52", "7L31", "6L31", "5L31"], + gravity: ["9M", "7T", "6T", "5T"], guardswap: ["8M"], - gyroball: ["8M", "7M", "6M", "5M"], + gyroball: ["9M", "8M", "7M", "6M", "5M"], healblock: ["7L50", "6L50", "5L50"], - helpinghand: ["8M", "7T", "6T"], + helpinghand: ["9M", "8M", "7T", "6T"], hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], - imprison: ["8M", "5D"], + imprison: ["9M", "8M", "5D"], infestation: ["7M", "6M"], - irondefense: ["8M", "7T", "6T"], - lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + irondefense: ["9M", "8M", "7T", "6T"], + lightscreen: ["9M", "9L24", "8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], magiccoat: ["7T", "6T", "5T"], - painsplit: ["8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], + nightshade: ["9M"], + painsplit: ["9M", "9L35", "8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], powerswap: ["8M"], - protect: ["8M", "8L1", "7M", "6M", "5M"], - psybeam: ["8L12"], - psychic: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], - psychicterrain: ["8M"], - psychup: ["7M", "6M", "5M"], - psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["9M", "8M"], + psychup: ["9M", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], psywave: ["7L1", "6L1", "5L1"], - raindance: ["8M", "7M", "6M", "5M"], - recover: ["8L1", "7L24", "6L24", "5L24", "5D"], - reflect: ["8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], - rest: ["8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recover: ["9L1", "8L1", "7L24", "6L24", "5L24", "5D"], + reflect: ["9M", "9L24", "8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roleplay: ["7T", "6T", "5T"], rollout: ["7L1", "6L1", "5L1"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - shadowball: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T", "5T"], - skillswap: ["8M", "8L46", "7T", "7L43", "6T", "6L43", "5T", "5L43"], - sleeptalk: ["8M", "7M", "6M", "5T"], + skillswap: ["9M", "9L46", "8M", "8L46", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snatch: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], snore: ["8M", "7T", "6T", "5T"], steelroller: ["8T"], - storedpower: ["8M"], - substitute: ["8M", "7M", "6M", "5M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], swagger: ["7M", "6M", "5M"], + swift: ["9M"], telekinesis: ["7T", "5M"], - thunder: ["8M", "7M", "6M", "5M"], - thunderwave: ["8M", "7M", "6M", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - trick: ["8M", "7T", "6T", "5T", "5D"], - trickroom: ["8M", "7M", "6M", "5M"], - wonderroom: ["8M", "8L58", "7T", "7L53", "6T", "6L53", "5T", "5L53"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + trick: ["9M", "8M", "7T", "6T", "5T", "5D"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + wonderroom: ["9L58", "8M", "8L58", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, encounters: [ {generation: 5, level: 31}, @@ -58581,96 +61303,103 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reuniclus: { learnset: { afteryou: ["7T", "6T", "5T"], - allyswitch: ["8M", "8L28", "7T"], + allyswitch: ["9L28", "8M", "8L28", "7T"], attract: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M"], - charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + bodyslam: ["9M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L19", "6L19", "5L19"], confide: ["7M", "6M"], - confusion: ["8L1"], + confuseray: ["9M"], + confusion: ["9L1", "8L1"], dizzypunch: ["7L1", "6L41", "5L41"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "6T", "5T"], + drainpunch: ["9M", "8M", "7T", "6T", "5T"], dreameater: ["7M", "6M", "5M"], embargo: ["7M", "6M", "5M"], - encore: ["8M"], - endeavor: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M"], - expandingforce: ["8T"], + encore: ["9M", "8M"], + endeavor: ["9M", "9L1", "8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["9M", "8T"], explosion: ["7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], - firepunch: ["8M", "7T", "6T", "5T"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], flash: ["6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focuspunch: ["7T", "6T"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M", "5M"], - futuresight: ["8M", "8L56", "7L31", "6L31", "5L31"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], + futuresight: ["9M", "9L56", "8M", "8L56", "7L31", "6L31", "5L31"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], guardswap: ["8M"], - gyroball: ["8M", "7M", "6M", "5M"], - hammerarm: ["8L0"], + gyroball: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L0", "8L0"], healblock: ["7L54", "6L54", "5L54"], - helpinghand: ["8M", "7T", "6T", "5T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], - hyperbeam: ["8M", "7M", "6M", "5M"], - icepunch: ["8M", "7T", "6T", "5T"], - imprison: ["8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "8M"], infestation: ["7M", "6M"], - irondefense: ["8M", "7T", "6T"], - knockoff: ["7T", "6T", "5T"], + irondefense: ["9M", "8M", "7T", "6T"], + knockoff: ["9M", "7T", "6T", "5T"], laserfocus: ["7T"], - lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + lightscreen: ["9M", "9L24", "8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], magiccoat: ["7T", "6T", "5T"], megapunch: ["8M"], - painsplit: ["8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], + nightshade: ["9M"], + painsplit: ["9M", "9L35", "8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], powerswap: ["8M"], poweruppunch: ["6M"], - protect: ["8M", "8L1", "7M", "6M", "5M"], - psybeam: ["8L12"], - psychic: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], - psychicterrain: ["8M"], - psychup: ["7M", "6M", "5M"], - psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicnoise: ["9M"], + psychicterrain: ["9M", "8M"], + psychup: ["9M", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], psywave: ["7L1", "6L1", "5L1"], - raindance: ["8M", "7M", "6M", "5M"], - recover: ["8L1", "7L24", "6L24", "5L24"], - reflect: ["8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], - rest: ["8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recover: ["9L1", "8L1", "7L24", "6L24", "5L24"], + reflect: ["9M", "9L24", "8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roleplay: ["7T", "6T", "5T"], rollout: ["7L1", "6L1", "5L1"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - shadowball: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T", "5T"], - skillswap: ["8M", "8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], - sleeptalk: ["8M", "7M", "6M", "5T"], + skillswap: ["9M", "9L48", "8M", "8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snatch: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], snore: ["8M", "7T", "6T", "5T"], steelroller: ["8T"], - storedpower: ["8M"], + storedpower: ["9M", "8M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], superpower: ["8M", "7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], + swift: ["9M"], telekinesis: ["7T", "5M"], - thunder: ["8M", "7M", "6M", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T"], - thunderwave: ["8M", "7M", "6M", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - trick: ["8M", "7T", "6T", "5T"], - trickroom: ["8M", "7M", "6M", "5M"], - wonderroom: ["8M", "8L64", "7T", "7L59", "6T", "6L59", "5T", "5L59"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + wonderroom: ["9L64", "8M", "8L64", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, encounters: [ {generation: 5, level: 34}, @@ -58678,107 +61407,132 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, ducklett: { learnset: { - aerialace: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], - aircutter: ["7E", "6E", "5E"], - airslash: ["7L27", "6L27", "5L27"], - aquajet: ["7E"], - aquaring: ["7L24", "6L24", "5L24"], + aerialace: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + aircutter: ["9M", "7E", "6E", "5E"], + airslash: ["9M", "9L27", "7L27", "6L27", "5L27"], + aquajet: ["9E", "7E"], + aquaring: ["9L24", "7L24", "6L24", "5L24"], attract: ["7M", "6M", "5M"], - bravebird: ["7L41", "6L41", "5L41"], - brine: ["7E", "6E", "5E", "5D"], - bubblebeam: ["7L19", "6L19", "5L19"], + bravebird: ["9M", "9L41", "7L41", "6L41", "5L41"], + brine: ["9E", "7E", "6E", "5E", "5D"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19"], + chillingwater: ["9M"], confide: ["7M", "6M"], - defog: ["7T", "7L6", "6L6", "5L6", "5D"], - dive: ["6M", "5M"], + defog: ["9L6", "7T", "7L6", "6L6", "5L6", "5D"], + disarmingvoice: ["9M"], + dive: ["9E", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - endeavor: ["7T", "6T", "5T"], - facade: ["7M", "6M", "5M"], - featherdance: ["7L21", "6L21", "5L21"], - fly: ["7M", "6M", "5M"], + endeavor: ["9M", "9E", "7T", "6T", "5T"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + featherdance: ["9M", "9L21", "7L21", "6L21", "5L21"], + fly: ["9M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gust: ["7E", "6E", "5E"], + gust: ["9E", "7E", "6E", "5E"], hail: ["7M", "6M", "5M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - hurricane: ["7L46", "6L46", "5L46"], - icebeam: ["7M", "6M", "5M"], - icywind: ["7T", "6T", "5T"], - liquidation: ["7T"], + hurricane: ["9M", "9L46", "7L46", "6L46", "5L46"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + liquidation: ["9M", "7T"], luckychant: ["7E", "6E", "5E"], mefirst: ["7E", "6E", "5E", "5D"], mirrormove: ["7E", "6E", "5E"], mudsport: ["7E", "6E"], pluck: ["5M"], - protect: ["7M", "6M", "5M"], - raindance: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], - rest: ["7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roost: ["7M", "7L30", "6M", "6L30", "5T", "5L30"], + roost: ["9L30", "7M", "7L30", "6M", "6L30", "5T", "5L30"], round: ["7M", "6M", "5M"], scald: ["7M", "6M", "5M"], secretpower: ["6M"], - sleeptalk: ["7M", "6M", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], snore: ["7T", "6T", "5T"], - steelwing: ["7M", "7E", "6M", "6E", "5E"], - substitute: ["7M", "6M", "5M"], - surf: ["7M", "6M", "5M"], + steelwing: ["9E", "7M", "7E", "6M", "6E", "5E"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - tailwind: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + swift: ["9M"], + tailwind: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], uproar: ["7T", "6T", "5T"], - watergun: ["7L1", "6L1", "5L1"], - waterpulse: ["7T", "7L13", "6T", "6L13", "5L13"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpulse: ["9M", "9L13", "7T", "7L13", "6T", "6L13", "5L13"], watersport: ["7L3", "6L3", "5L3"], - wingattack: ["7L9", "6L9", "5L9"], + whirlpool: ["9M"], + wingattack: ["9L9", "7L9", "6L9", "5L9"], }, }, swanna: { learnset: { - aerialace: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], - airslash: ["7L27", "6L27", "5L27"], - aquaring: ["7L24", "6L24", "5L24"], + acrobatics: ["9M"], + aerialace: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + aircutter: ["9M"], + airslash: ["9M", "9L27", "7L27", "6L27", "5L27"], + alluringvoice: ["9M"], + aquaring: ["9L24", "7L24", "6L24", "5L24"], attract: ["7M", "6M", "5M"], - bravebird: ["7L47", "6L47", "5L47"], - bubblebeam: ["7L19", "6L19", "5L19"], + bravebird: ["9M", "9L47", "7L47", "6L47", "5L47"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19"], + chillingwater: ["9M"], confide: ["7M", "6M"], - defog: ["7T", "7L1", "6L1", "5L1"], + defog: ["9L1", "7T", "7L1", "6L1", "5L1"], + disarmingvoice: ["9M"], dive: ["6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - endeavor: ["7T", "6T", "5T"], - facade: ["7M", "6M", "5M"], - featherdance: ["7L21", "6L21", "5L21"], - fly: ["7M", "6M", "5M"], + endeavor: ["9M", "7T", "6T", "5T"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + featherdance: ["9M", "9L21", "7L21", "6L21", "5L21"], + flipturn: ["9M"], + fly: ["9M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["7M", "6M", "5M"], + gigaimpact: ["9M", "7M", "6M", "5M"], hail: ["7M", "6M", "5M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - hurricane: ["7L55", "6L55", "5L55"], - hyperbeam: ["7M", "6M", "5M"], - icebeam: ["7M", "6M", "5M"], - icywind: ["7T", "6T", "5T"], - liquidation: ["7T"], + hurricane: ["9M", "9L55", "7L55", "6L55", "5L55"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + knockoff: ["9M"], + liquidation: ["9M", "7T"], pluck: ["5M"], - protect: ["7M", "6M", "5M"], - raindance: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], - rest: ["7M", "6M", "5M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + rest: ["9M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roost: ["7M", "7L30", "6M", "6L30", "5T", "5L30"], + roost: ["9L30", "7M", "7L30", "6M", "6L30", "5T", "5L30"], round: ["7M", "6M", "5M"], scald: ["7M", "6M", "5M"], secretpower: ["6M"], skyattack: ["7T", "6T", "5T"], - sleeptalk: ["7M", "6M", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], snore: ["7T", "6T", "5T"], steelwing: ["7M", "6M"], - substitute: ["7M", "6M", "5M"], - surf: ["7M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - tailwind: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], + swift: ["9M"], + tailwind: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], uproar: ["7T", "6T", "5T"], - watergun: ["7L1", "6L1", "5L1"], - waterpulse: ["7T", "7L13", "6T", "6L13", "5L13"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpulse: ["9M", "9L13", "7T", "7L13", "6T", "6L13", "5L13"], watersport: ["7L1", "6L1", "5L1"], - wingattack: ["7L1", "6L1", "5L1"], + weatherball: ["9M"], + whirlpool: ["9M"], + wingattack: ["9L1", "7L1", "6L1", "5L1"], }, encounters: [ {generation: 6, level: 30}, @@ -58961,10 +61715,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { charm: ["9M", "9L32", "7L36", "6L36", "5L36"], confide: ["7M", "6M"], dig: ["9M"], - doubleedge: ["9L37", "7L46", "6L46", "5L46"], + doubleedge: ["9M", "9L37", "7L46", "6L46", "5L46"], doublekick: ["9L10", "7L10", "6L10", "5L10"], doubleteam: ["7M", "6M", "5M"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], facade: ["9M", "7M", "6M", "5M"], @@ -58975,6 +61730,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "7T", "6T", "5T"], grassknot: ["9M", "7M", "6M", "5M"], grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["9M"], grassyterrain: ["9M"], growl: ["9L4", "7L4", "6L4", "5L4"], headbutt: ["9E", "7E"], @@ -59036,12 +61792,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { camouflage: ["7L1", "6L1", "5L1"], charm: ["9M", "9L36", "7L36", "6L36", "5L36"], confide: ["7M", "6M"], + curse: ["9M"], cut: ["6M", "5M"], dig: ["9M"], - doubleedge: ["9L44", "7L52", "6L52", "5L52"], + doubleedge: ["9M", "9L44", "7L52", "6L52", "5L52"], doublekick: ["9L10", "7L10", "6L10", "5L10"], doubleteam: ["7M", "6M", "5M"], echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], facade: ["9M", "7M", "6M", "5M"], @@ -59052,10 +61810,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "7T", "6T", "5T"], gigaimpact: ["9M", "7M", "6M", "5M"], grassknot: ["9M", "7M", "6M", "5M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growl: ["9L1", "7L1", "6L1", "5L1"], helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["9M"], hornleech: ["9L0", "7L1", "6L37", "5L37"], hyperbeam: ["9M", "7M", "6M", "5M"], jumpkick: ["7L24", "6L24", "5L24"], @@ -59066,6 +61826,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicalleaf: ["9M"], megahorn: ["9L1", "7L1", "6L1", "5L1"], naturepower: ["7M", "7L44", "6M", "6L44", "5L44"], + petalblizzard: ["9M"], playrough: ["9M"], protect: ["9M", "7M", "6M", "5M"], raindance: ["9M", "7M", "6M", "5M"], @@ -59092,6 +61853,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "7L1", "6L1", "5L1"], takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], terablast: ["9M"], + throatchop: ["9M"], thunderwave: ["9M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], trailblaze: ["9M"], @@ -59362,7 +62124,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sweetscent: ["9L24", "8L24", "7L24", "6L24", "5L24"], synthesis: ["9L16", "8L16", "7T", "7L35", "6T", "6L35", "5T", "5L35"], terablast: ["9M"], - toxic: ["9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + toxic: ["9M", "9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], venoshock: ["9M", "8M", "7M", "6M", "5M"], worryseed: ["9E", "8E", "7T", "6T", "5T"], }, @@ -59424,7 +62186,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sweetscent: ["9L24", "8L24", "7L24", "6L24", "5L24"], synthesis: ["9L16", "8L16", "7T", "7L35", "6T", "6L35", "5T", "5L35"], terablast: ["9M"], - toxic: ["9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + toxic: ["9M", "9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], venoshock: ["9M", "8M", "7M", "6M", "5M"], worryseed: ["7T", "6T", "5T"], }, @@ -59594,6 +62356,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { alomomola: { learnset: { acrobatics: ["9M"], + alluringvoice: ["9M"], aquajet: ["9L9", "7L9", "6L9", "5L9"], aquaring: ["9L5", "7L5", "6L5", "5L5", "5D"], attract: ["7M", "6M", "5M"], @@ -59610,6 +62373,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M", "5M"], endure: ["9M", "9E", "7E", "6E", "5E"], facade: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], frustration: ["7M", "6M", "5M"], gigaimpact: ["9M"], hail: ["7M", "6M", "5M"], @@ -59628,7 +62392,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mirrorcoat: ["9E", "7E", "6E", "5E", "5D"], mist: ["9E", "7E", "6E", "5E"], mistyterrain: ["9M"], - painsplit: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + painsplit: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], playnice: ["9L1", "7L1"], playrough: ["9M"], pound: ["9L1", "7L1", "6L1", "5L1"], @@ -59641,7 +62405,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "6M", "5M"], round: ["7M", "6M", "5M"], safeguard: ["9L45", "7M", "7L45", "6M", "6L45", "5M", "5L45"], - scald: ["7M", "6M", "5M"], + scald: ["9M", "7M", "6M", "5M"], + scaleshot: ["9M"], secretpower: ["6M"], shadowball: ["9M", "7M", "6M", "5M"], skillswap: ["9M"], @@ -59660,7 +62425,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "7M", "6M", "5M"], waterpulse: ["9M", "9L25", "7T", "7L25", "6T", "6L25", "5L25"], watersport: ["7L1", "6L1", "5L1"], - whirlpool: ["9L49", "7L49"], + whirlpool: ["9M", "9L49", "7L49"], wideguard: ["9L13", "7L1", "6L1", "5L53"], wish: ["9L37", "7L37", "6L37", "5L37"], zenheadbutt: ["9M"], @@ -59668,140 +62433,149 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, joltik: { learnset: { - absorb: ["8L1", "7L1"], - agility: ["8M", "8L24", "7L37", "6L37", "5L37"], + absorb: ["9L1", "8L1", "7L1"], + agility: ["9M", "9L24", "8M", "8L24", "7L37", "6L37", "5L37"], attract: ["8M", "7M", "6M", "5M"], bounce: ["8M", "7T", "6T", "5T"], - bugbite: ["8L8", "7T", "7L18", "6T", "6L18", "5T", "5L18"], - bugbuzz: ["8M", "8L48", "7L48", "6L48", "5L48"], + bugbite: ["9M", "9L8", "8L8", "7T", "7L18", "6T", "6L18", "5T", "5L18"], + bugbuzz: ["9M", "9L48", "8M", "8L48", "7L48", "6L48", "5L48"], camouflage: ["7E", "6E"], - chargebeam: ["7M", "6M", "5M"], + chargebeam: ["9M", "7M", "6M", "5M"], confide: ["7M", "6M"], crosspoison: ["8M", "7E", "6E", "5E"], cut: ["6M", "5M"], disable: ["7E", "6E", "5E"], - discharge: ["8L37", "7L45", "6L45", "5L45"], - doubleteam: ["8E", "7M", "6M", "5M"], - electroball: ["8M", "8L20", "7L29", "6L29", "5L29"], - electroweb: ["8M", "8L4", "7T", "7L15", "6T", "6L15", "5T", "5L15"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], + discharge: ["9L37", "8L37", "7L45", "6L45", "5L45"], + doubleteam: ["9E", "8E", "7M", "6M", "5M"], + electroball: ["9M", "9L20", "8M", "8L20", "7L29", "6L29", "5L29"], + electroweb: ["9M", "9L4", "8M", "8L4", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], feintattack: ["7E", "6E", "5E"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - furycutter: ["8L1", "7L12", "6L12", "5L12"], - gastroacid: ["8L44", "7T", "7L23", "6T", "6L23", "5T", "5L23"], - gigadrain: ["8M", "7T", "6T", "5T"], + furycutter: ["9L1", "8L1", "7L12", "6L12", "5L12"], + gastroacid: ["9L44", "8L44", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + gigadrain: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - infestation: ["8E", "7M", "6M"], - leechlife: ["8M", "7M", "6L1", "5L1"], - lightscreen: ["8M", "7M", "6M", "5M"], - lunge: ["8E", "7E"], + infestation: ["9E", "8E", "7M", "6M"], + leechlife: ["9M", "8M", "7M", "6L1", "5L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M", "9E", "8E", "7E"], magnetrise: ["7T", "6T", "5T"], pinmissile: ["8M", "7E", "6E", "5E"], - poisonjab: ["8M", "7M", "6M", "5M"], - poisonsting: ["8E", "7E", "6E", "5E"], - protect: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + poisonsting: ["9E", "8E", "7E", "6E", "5E"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M"], pursuit: ["7E", "6E", "5E"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], risingvoltage: ["8T"], rockclimb: ["7E", "6E", "5E"], round: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L40", "7L7", "6L7", "5L7"], + screech: ["9L40", "8M", "8L40", "7L7", "6L7", "5L7"], secretpower: ["6M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], - skittersmack: ["8T"], - slash: ["8L32", "7L26", "6L26", "5L26"], - sleeptalk: ["8M", "7M", "6M", "5T"], + skittersmack: ["9M", "8T"], + slash: ["9L32", "8L32", "7L26", "6L26", "5L26"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], speedswap: ["8M"], spiderweb: ["7L1", "6L1", "5L1"], - stringshot: ["8L12", "7L1", "6L1", "5L1"], - strugglebug: ["8E", "6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - suckerpunch: ["8L28", "7L40", "6L40", "5L40"], + stringshot: ["9L12", "8L12", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "9E", "8E", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["9L28", "8L28", "7L40", "6L40", "5L40"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - thief: ["8M", "7M", "6M", "5M"], - thunderbolt: ["8M", "7M", "6M", "5M"], - thunderwave: ["8M", "8L16", "7M", "7L4", "6M", "6L4", "5M", "5L4"], + swift: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunder: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "9L16", "8M", "8L16", "7M", "7L4", "6M", "6L4", "5M", "5L4"], toxic: ["7M", "6M", "5M"], - voltswitch: ["8M", "7M", "6M", "5M"], - wildcharge: ["8M", "7M", "6M", "5M"], - xscissor: ["8M", "7M", "6M", "5M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], }, }, galvantula: { learnset: { - absorb: ["8L1", "7L1"], - agility: ["8M", "8L24", "7L40", "6L40", "5L40"], + absorb: ["9L1", "8L1", "7L1"], + agility: ["9M", "9L24", "8M", "8L24", "7L40", "6L40", "5L40"], attract: ["8M", "7M", "6M", "5M"], bounce: ["8M", "7T", "6T", "5T"], - bugbite: ["8L1", "7T", "7L18", "6T", "6L18", "5T", "5L18"], - bugbuzz: ["8M", "8L56", "7L60", "6L60", "5L60"], - chargebeam: ["7M", "6M", "5M"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L18", "6T", "6L18", "5T", "5L18"], + bugbuzz: ["9M", "9L56", "8M", "8L56", "7L60", "6L60", "5L60"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M"], confide: ["7M", "6M"], crosspoison: ["8M"], cut: ["6M", "5M"], disable: ["5D"], - discharge: ["8L39", "7L54", "6L54", "5L54"], + discharge: ["9L39", "8L39", "7L54", "6L54", "5L54"], doubleteam: ["7M", "6M", "5M"], - electroball: ["8M", "8L20", "7L29", "6L29", "5L29", "5D"], - electroweb: ["8M", "8L1", "7T", "7L15", "6T", "6L15", "5T", "5L15"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], + electroball: ["9M", "9L20", "8M", "8L20", "7L29", "6L29", "5L29", "5D"], + electroweb: ["9M", "9L1", "8M", "8L1", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - furycutter: ["8L1", "7L12", "6L12", "5L12"], - gastroacid: ["8L50", "7T", "7L23", "6T", "6L23", "5T", "5L23"], - gigadrain: ["8M", "7T", "6T", "5T"], - gigaimpact: ["8M", "7M", "6M", "5M"], + furycutter: ["9L1", "8L1", "7L12", "6L12", "5L12"], + gastroacid: ["9L50", "8L50", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + gigadrain: ["9M", "8M", "7T", "6T", "5T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], infestation: ["7M", "6M"], - leechlife: ["8M", "7M", "6L1", "5L1"], - lightscreen: ["8M", "7M", "6M", "5M"], + leechlife: ["9M", "8M", "7M", "6L1", "5L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], magnetrise: ["7T", "6T", "5T"], pinmissile: ["8M"], - poisonjab: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M"], pursuit: ["5D"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], risingvoltage: ["8T"], round: ["8M", "7M", "6M", "5M"], - screech: ["8M", "8L44", "7L7", "6L7", "5L7"], + screech: ["9L44", "8M", "8L44", "7L7", "6L7", "5L7"], secretpower: ["6M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], - skittersmack: ["8T"], - slash: ["8L32", "7L26", "6L26", "5L26"], - sleeptalk: ["8M", "7M", "6M", "5T"], + skittersmack: ["9M", "8T"], + slash: ["9L32", "8L32", "7L26", "6L26", "5L26"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], speedswap: ["8M"], spiderweb: ["7L1", "6L1", "5L1"], - stickyweb: ["8L0", "7L1", "6L1"], - stringshot: ["8L12", "7L1", "6L1", "5L1"], - strugglebug: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - suckerpunch: ["8L28", "7L46", "6L46", "5L46"], + stickyweb: ["9L0", "8L0", "7L1", "6L1"], + stringshot: ["9L12", "8L12", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["9L28", "8L28", "7L46", "6L46", "5L46"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - thief: ["8M", "7M", "6M", "5M"], - throatchop: ["8M", "7T"], - thunder: ["8M", "7M", "6M", "5M"], - thunderbolt: ["8M", "7M", "6M", "5M"], - thunderwave: ["8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + swift: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["9M", "8M", "7T"], + thunder: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "9L16", "8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], toxic: ["7M", "6M", "5M"], - voltswitch: ["8M", "7M", "6M", "5M"], - wildcharge: ["8M", "7M", "6M", "5M"], - xscissor: ["8M", "7M", "6M", "5M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], }, encounters: [ {generation: 6, level: 30}, @@ -60133,7 +62907,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, tynamo: { learnset: { + charge: ["9M"], chargebeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5L1"], + knockoff: ["9M"], magnetrise: ["7T", "6T", "5T"], spark: ["9L1", "7L1", "6L1", "5L1"], tackle: ["9L1", "7L1", "6L1", "5L1"], @@ -60151,6 +62927,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bind: ["9L9", "7T", "7L9", "6T", "6L9", "5T", "5L9"], bodyslam: ["9M"], bounce: ["7T", "6T", "5T"], + charge: ["9M"], chargebeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], coil: ["9L54", "7L54", "6L54", "5L54"], confide: ["7M", "6M"], @@ -60160,6 +62937,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M"], + electroweb: ["9M"], endure: ["9M"], facade: ["9M", "7M", "6M", "5M"], flash: ["6M", "5M"], @@ -60170,8 +62948,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["9L1", "7L1", "6L1", "5L1"], hiddenpower: ["7M", "6M", "5M"], irontail: ["7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], lightscreen: ["9M", "7M", "6M", "5M"], + lunge: ["9M"], magnetrise: ["7T", "6T", "5T"], protect: ["9M", "7M", "6M", "5M"], raindance: ["9M", "7M", "6M", "5M"], @@ -60186,12 +62965,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["7T", "6T", "5T"], spark: ["9L1", "7L1", "6L1", "5L1"], substitute: ["9M", "7M", "6M", "5M"], - superfang: ["7T", "6T", "5T"], + superfang: ["9M", "7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], takedown: ["9M"], terablast: ["9M"], thrash: ["9L74", "7L74", "6L74", "5L74"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunder: ["9M", "7M", "6M", "5M"], thunderbolt: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "5L44"], thunderfang: ["9M"], @@ -60217,6 +62996,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "7M", "6M", "5M"], bulkup: ["9M"], bulldoze: ["9M"], + charge: ["9M"], chargebeam: ["9M", "7M", "6M", "5M"], closecombat: ["9M"], coil: ["9L1", "7L1", "6L1"], @@ -60234,13 +63014,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M"], + electroweb: ["9M"], endure: ["9M"], facade: ["9M", "7M", "6M", "5M"], firepunch: ["9M", "7T", "6T", "5T"], flamethrower: ["9M", "7M", "6M", "5M"], flash: ["6M", "5M"], flashcannon: ["9M", "7M", "6M", "5M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M", "5M"], gastroacid: ["9L1", "7T", "7L1", "6T", "6L1", "5T"], gigadrain: ["9M", "7T", "6T", "5T"], @@ -60254,9 +63035,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "7M", "6M", "5M"], iondeluge: ["7L1", "6L1"], irontail: ["7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], lightscreen: ["9M", "7M", "6M", "5M"], liquidation: ["9M"], + lunge: ["9M"], magnetrise: ["7T", "6T", "5T"], outrage: ["9M", "7T", "6T"], poweruppunch: ["6M"], @@ -60279,14 +63061,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["6M", "5M"], substitute: ["9M", "7M", "6M", "5M"], sunnyday: ["9M"], - superfang: ["7T", "6T", "5T"], + supercellslam: ["9M"], + superfang: ["9M", "7T", "6T", "5T"], superpower: ["7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], swift: ["9M"], takedown: ["9M"], terablast: ["9M"], thrash: ["9L1", "7L1", "6L1"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunder: ["9M", "7M", "6M", "5M"], thunderbolt: ["9M", "7M", "6M", "5M"], thunderfang: ["9M"], @@ -60477,141 +63260,149 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { litwick: { learnset: { acid: ["7E", "6E", "5E"], - acidarmor: ["8E", "7E", "6E", "5E"], + acidarmor: ["9E", "8E", "7E", "6E", "5E"], allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L1", "5L1"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], attract: ["8M", "7M", "6M", "5M"], - burningjealousy: ["8T"], - calmmind: ["8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], captivate: ["7E", "6E", "5E"], - clearsmog: ["8E", "7E", "6E", "5E"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], confide: ["7M", "6M"], - confuseray: ["8L12", "7L10", "6L10", "5L10"], - curse: ["8L32", "7L43", "6L43", "5L43"], - darkpulse: ["8M", "7M", "6M", "5T"], + confuseray: ["9M", "9L12", "8L12", "7L10", "6L10", "5L10"], + curse: ["9M", "9L32", "8L32", "7L43", "6L43", "5L43"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], embargo: ["7M", "6M", "5M"], - ember: ["8L4", "7L1", "6L1", "5L1"], - endure: ["8M", "7E", "6E", "5E"], - energyball: ["8M", "7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], - fireblast: ["8M", "7M", "6M", "5M"], - firespin: ["8M", "8L24", "7L7", "6L7", "5L7"], + ember: ["9L4", "8L4", "7L1", "6L1", "5L1"], + endure: ["9M", "8M", "7E", "6E", "5E"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M", "9L24", "8M", "8L24", "7L7", "6L7", "5L7"], flameburst: ["7L20", "6L20", "5L20"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "7M", "6M", "5M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flareblitz: ["9M"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - haze: ["8E", "7E", "6E", "5E"], - heatwave: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - hex: ["8M", "8L16", "7L28", "6L28", "5L28"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E"], + heatwave: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + hex: ["9M", "9L16", "8M", "8L16", "7L28", "6L28", "5L28"], hiddenpower: ["7M", "6M", "5M"], - imprison: ["8M", "8L44", "7L24", "6L24", "5L24"], + imprison: ["9M", "9L44", "8M", "8L44", "7L24", "6L24", "5L24"], incinerate: ["6M", "5M"], - inferno: ["8L40", "7L38", "6L38", "5L38"], - memento: ["8L56", "7L33", "6L33", "5L33"], - minimize: ["8L8", "7L3", "6L3", "5L3"], + inferno: ["9L40", "8L40", "7L38", "6L38", "5L38"], + memento: ["9L56", "8L56", "7L33", "6L33", "5L33"], + minimize: ["9L8", "8L8", "7L3", "6L3", "5L3"], mysticalfire: ["8M"], - nightshade: ["8L28", "7L13", "6L13", "5L13"], - overheat: ["8M", "8L52", "7M", "7L61", "6M", "6L61", "5M", "5L61"], - painsplit: ["8L48", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + nightshade: ["9M", "9L28", "8L28", "7L13", "6L13", "5L13"], + overheat: ["9M", "9L52", "8M", "8L52", "7M", "7L61", "6M", "6L61", "5M", "5L61"], + painsplit: ["9M", "9L48", "8L48", "7T", "7L55", "6T", "6L55", "5T", "5L55"], payback: ["8M", "7M", "6M", "5M"], - poltergeist: ["8T"], - powersplit: ["8E", "7E", "6E"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + poltergeist: ["9M", "8T"], + powersplit: ["9E", "8E", "7E", "6E"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - shadowball: ["8M", "8L36", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + shadowball: ["9M", "9L36", "8M", "8L36", "7M", "7L49", "6M", "6L49", "5M", "5L49"], shockwave: ["7T", "6T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smog: ["8L1", "7L5", "6L5", "5L5"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smog: ["9L1", "8L1", "7L5", "6L5", "5L5"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "7M", "6M", "5M"], - spite: ["7T", "6T", "5T"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - trick: ["8M", "7T", "6T", "5T"], - trickroom: ["8M", "7M", "6M", "5M"], - willowisp: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9L20", "8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], }, }, lampent: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L1", "5L1"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], attract: ["8M", "7M", "6M", "5M"], - burningjealousy: ["8T"], - calmmind: ["8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], - confuseray: ["8L12", "7L10", "6L10", "5L10"], - curse: ["8L32", "7L45", "6L45", "5L45"], - darkpulse: ["8M", "7M", "6M", "5T"], + confuseray: ["9M", "9L12", "8L12", "7L10", "6L10", "5L10"], + curse: ["9M", "9L32", "8L32", "7L45", "6L45", "5L45"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], embargo: ["7M", "6M", "5M"], - ember: ["8L1", "7L1", "6L1", "5L1"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], - fireblast: ["8M", "7M", "6M", "5M"], - firespin: ["8M", "8L24", "7L7", "6L7", "5L7"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M", "9L24", "8M", "8L24", "7L7", "6L7", "5L7"], flameburst: ["7L20", "6L20", "5L20"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "7M", "6M", "5M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flareblitz: ["9M"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - heatwave: ["8M", "7T", "6T", "5T"], - hex: ["8M", "8L16", "7L28", "6L28", "5L28"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + hex: ["9M", "9L16", "8M", "8L16", "7L28", "6L28", "5L28"], hiddenpower: ["7M", "6M", "5M"], - imprison: ["8M", "8L46", "7L24", "6L24", "5L24"], + imprison: ["9M", "9L46", "8M", "8L46", "7L24", "6L24", "5L24"], incinerate: ["6M", "5M"], - inferno: ["8L40", "7L38", "6L38", "5L38"], - memento: ["8L64", "7L33", "6L33", "5L33"], - minimize: ["8L1", "7L1", "6L1", "5L1"], + inferno: ["9L40", "8L40", "7L38", "6L38", "5L38"], + lashout: ["9M"], + memento: ["9L64", "8L64", "7L33", "6L33", "5L33"], + minimize: ["9L1", "8L1", "7L1", "6L1", "5L1"], mysticalfire: ["8M"], - nightshade: ["8L28", "7L13", "6L13", "5L13"], - overheat: ["8M", "8L58", "7M", "7L69", "6M", "6L69", "5M", "5L69"], - painsplit: ["8L52", "7T", "7L61", "6T", "6L61", "5T", "5L61"], + nightshade: ["9M", "9L28", "8L28", "7L13", "6L13", "5L13"], + overheat: ["9M", "9L58", "8M", "8L58", "7M", "7L69", "6M", "6L69", "5M", "5L69"], + painsplit: ["9M", "9L52", "8L52", "7T", "7L61", "6T", "6L61", "5T", "5L61"], payback: ["8M", "7M", "6M", "5M"], - poltergeist: ["8T"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - shadowball: ["8M", "8L36", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + shadowball: ["9M", "9L36", "8M", "8L36", "7M", "7L53", "6M", "6L53", "5M", "5L53"], shockwave: ["7T", "6T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smog: ["8L1", "7L1", "6L1", "5L1"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smog: ["9L1", "8L1", "7L1", "6L1", "5L1"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "7M", "6M", "5M"], - spite: ["7T", "6T", "5T"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - trick: ["8M", "7T", "6T", "5T"], - trickroom: ["8M", "7M", "6M", "5M"], - willowisp: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9L20", "8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], }, encounters: [ {generation: 6, level: 30}, @@ -60620,71 +63411,77 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chandelure: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1"], + astonish: ["9L1", "8L1"], attract: ["8M", "7M", "6M", "5M"], - burningjealousy: ["8T"], - calmmind: ["8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], - confuseray: ["8L1", "7L1", "6L1", "5L1"], - curse: ["8L1"], - darkpulse: ["8M", "7M", "6M", "5T"], + confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1"], + curse: ["9M", "9L1", "8L1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], doubleteam: ["7M", "6M", "5M"], dreameater: ["7M", "6M", "5M"], embargo: ["7M", "6M", "5M"], - ember: ["8L1"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M", "5S0"], - facade: ["8M", "7M", "6M", "5M"], - fireblast: ["8M", "7M", "6M", "5M"], - firespin: ["8M", "8L1"], + ember: ["9L1", "8L1"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "5S0"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M", "9L1", "8M", "8L1"], flameburst: ["7L1", "6L1", "5L1"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "7M", "6M", "5M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flareblitz: ["9M"], flash: ["6M", "5M"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - heatwave: ["8M", "7T", "6T", "5T", "5S0"], - hex: ["8M", "8L1", "7L1", "6L1", "5L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "5S0"], + hex: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1"], hiddenpower: ["7M", "6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - imprison: ["8M", "8L1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + imprison: ["9M", "9L1", "8M", "8L1"], incinerate: ["6M", "5M"], - inferno: ["8L1"], + inferno: ["9L1", "8L1"], laserfocus: ["7T"], - memento: ["8L1"], - minimize: ["8L1"], + lashout: ["9M"], + memento: ["9L1", "8L1"], + minimize: ["9L1", "8L1"], mysticalfire: ["8M"], - nightshade: ["8L1"], - overheat: ["8M", "8L1", "7M", "6M", "5M"], - painsplit: ["8L1", "7T", "7L1", "6T", "6L1", "5T"], + nightshade: ["9M", "9L1", "8L1"], + overheat: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + painsplit: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T"], payback: ["8M", "7M", "6M", "5M"], - poltergeist: ["8T"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M", "5S0"], - psychup: ["7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "5S0"], + psychup: ["9M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - shadowball: ["8M", "8L1", "7M", "6M", "5M", "5S0"], + shadowball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "5S0"], shockwave: ["7T", "6T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smog: ["8L1", "7L1", "6L1", "5L1"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smog: ["9L1", "8L1", "7L1", "6L1", "5L1"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "7M", "6M", "5M"], - spite: ["7T", "6T", "5T"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - trick: ["8M", "7T", "6T", "5T"], - trickroom: ["8M", "7M", "6M", "5M"], - willowisp: ["8M", "8L1", "7M", "6M", "5M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], }, eventData: [ {generation: 5, level: 50, gender: "F", nature: "Modest", ivs: {spa: 31}, abilities: ["flashfire"], moves: ["heatwave", "shadowball", "energyball", "psychic"], pokeball: "cherishball"}, @@ -60697,7 +63494,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["9L9", "8M", "8L9", "7L7", "6L7", "5L7"], attract: ["8M", "7M", "6M", "5M"], bite: ["9L3", "8L3"], - breakingswipe: ["9L30", "8M"], + breakingswipe: ["9M", "9L30", "8M"], brickbreak: ["9M"], bulldoze: ["9M"], confide: ["7M", "6M"], @@ -60705,15 +63502,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L24", "8M", "8L24"], cut: ["6M", "5M"], dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S1"], dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32"], dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L41", "7E", "6T", "6L41", "6E", "5T", "5L41", "5E"], dragonrage: ["7L10", "6L10", "5L10", "5D", "5S0", "5S1", "5S2"], dragontail: ["9M"], dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13"], - endeavor: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + endeavor: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], endure: ["9M", "8M", "7E", "6E", "5E", "5S1"], facade: ["9M", "8M", "7M", "6M", "5M"], falseswipe: ["9M", "9L6", "8M", "8L6", "7M", "7L24", "6M", "6L24", "5M", "5L24"], @@ -60741,11 +63540,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M", "5S1"], reversal: ["9M", "8M", "7E", "6E", "5E"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "5S2"], secretpower: ["6M"], @@ -60784,22 +63583,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["9L9", "8M", "8L9", "7L1", "6L1", "5L1"], attract: ["8M", "7M", "6M", "5M"], bite: ["9L1", "8L1"], - breakingswipe: ["9L30", "8M"], + breakingswipe: ["9M", "9L30", "8M"], brickbreak: ["9M"], bulldoze: ["9M"], confide: ["7M", "6M"], crunch: ["9M", "9L24", "8M", "8L24"], cut: ["6M", "5M"], dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28"], dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32"], dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L42", "6T", "6L42", "5T", "5L42"], dragonrage: ["7L1", "6L1", "5L1"], dragontail: ["9M", "7M", "6M", "5M"], dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13"], - endeavor: ["7T", "6T", "5T"], + endeavor: ["9M", "7T", "6T", "5T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L24", "6M", "6L24", "5M", "5L24"], @@ -60824,11 +63625,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], reversal: ["9M", "8M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], secretpower: ["6M"], @@ -60866,7 +63667,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "6M", "5M"], bite: ["9L1", "8L1"], bodyslam: ["9M"], - breakingswipe: ["9L30", "8M"], + breakingswipe: ["9M", "9L30", "8M"], brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], @@ -60875,8 +63676,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L24", "8M", "8L24"], cut: ["6M", "5M"], dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28"], dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32", "5S0"], dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L42", "6T", "6L42", "5T", "5L42"], @@ -60884,7 +63687,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dragontail: ["9M", "7M", "6M", "5M"], dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13", "5S0"], earthquake: ["9M", "8M", "7M", "6M", "5M", "5S0"], - endeavor: ["7T", "6T", "5T"], + endeavor: ["9M", "7T", "6T", "5T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L24", "6M", "6L24", "5M", "5L24"], @@ -60914,12 +63717,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], reversal: ["9M", "8M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], secretpower: ["6M"], @@ -60971,11 +63774,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M", "5M"], echoedvoice: ["7M", "6M", "5M"], encore: ["9M", "8M", "7E", "6E", "5E"], + endeavor: ["9M"], endure: ["9M", "9L3", "8M", "8L3", "7L25", "6L25", "5L25"], facade: ["9M", "8M", "7M", "6M", "5M"], flail: ["9L24", "8L24", "7L36", "6L36", "5L36"], fling: ["9M", "8M", "7M", "6M", "5M"], - focuspunch: ["9E", "8E", "7T", "7E", "6T", "6E", "5E"], + focuspunch: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E"], frostbreath: ["9L18", "8L18", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], furyswipes: ["9L6", "8L6", "7L17", "6L17", "5L17"], @@ -60988,6 +63792,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "8M", "7M", "6M", "5M"], icefang: ["9M", "8M"], icepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + iciclespear: ["9M"], icywind: ["9M", "9L9", "8M", "8L9", "7T", "7L13", "6T", "6L13", "5T", "5L13", "5S0"], liquidation: ["9M"], lowkick: ["9M", "8M", "7T", "6T", "5T"], @@ -61058,19 +63863,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], crunch: ["9M"], + curse: ["9M"], cut: ["6M", "5M"], dig: ["9M", "8M", "6M", "5M"], dive: ["8M", "6M", "5M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], earthquake: ["9M"], echoedvoice: ["7M", "6M", "5M"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "9L1", "8M", "8L1", "7L25", "6L25", "5L25"], facade: ["9M", "8M", "7M", "6M", "5M"], flail: ["9L24", "8L24", "7L36", "6L36", "5L36"], fling: ["9M", "8M", "7M", "6M", "5M"], focusblast: ["9M", "8M", "7M", "6M", "5M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frostbreath: ["9L18", "8L18", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], furyswipes: ["9L1", "8L1", "7L17", "6L17", "5L17"], @@ -61078,6 +63886,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { grassknot: ["9M", "8M", "7M", "6M", "5M"], growl: ["9L1", "8L1", "7L1", "6L1", "5L1"], hail: ["8M", "8L30", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + hardpress: ["9M"], heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], @@ -61086,7 +63895,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icefang: ["9M", "8M"], icepunch: ["9M", "8M", "7T", "6T", "5T"], iciclecrash: ["9L0", "8L0", "7L1", "6L37", "5L37"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L9", "8M", "8L9", "7T", "7L1", "6T", "6L1", "5T", "5L1"], liquidation: ["9M", "8M"], lowkick: ["9M", "8M", "7T", "6T", "5T"], @@ -61104,7 +63913,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "9L36", "8M", "8L36", "7M", "7L41", "6M", "6L41", "5M", "5L41"], return: ["7M", "6M", "5M"], reversal: ["9M"], - roar: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], @@ -61130,7 +63939,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], thrash: ["9L33", "8L33", "7L1", "6L1", "5L59"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], toxic: ["7M", "6M", "5M"], trailblaze: ["9M"], waterpulse: ["9M", "7T", "6T"], @@ -61166,13 +63975,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "6M", "5M"], gigaimpact: ["9M"], hail: ["8M", "7M", "6M", "5M"], - haze: ["9L16", "8L20", "7L9", "6L1", "5L21"], + haze: ["9M", "9L16", "8L20", "7L9", "6L1", "5L21"], hiddenpower: ["7M", "6M", "5M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M"], icebeam: ["9M", "9L48", "8M", "8L48", "7M", "7L25", "6M", "6L33", "5M", "5L33"], iceshard: ["9L1", "8L1", "7L1", "6L1", "5L5"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L12", "8M", "8L16", "7T", "7L5", "6T", "6L17", "5T", "5L17"], irondefense: ["9M", "8M", "7T", "6T", "5T"], knockoff: ["7T", "6T", "5T"], @@ -61206,7 +64015,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], toxic: ["7M", "6M", "5M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], waterpulse: ["9M", "7T", "6T"], }, }, @@ -61477,170 +64286,182 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, mienfoo: { learnset: { - acrobatics: ["8M", "7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M"], - agility: ["8M"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], + agility: ["9M", "8M"], allyswitch: ["8M", "7T", "7E", "6E"], attract: ["8M", "7M", "6M", "5M"], - aurasphere: ["8M", "8L45", "7L61", "6L61", "5L61"], - batonpass: ["8M", "7E", "6E", "5E"], - bounce: ["8M", "8L51", "7T", "7L49", "6T", "6L49", "5T", "5L49"], - brickbreak: ["8M", "7M", "6M", "5M"], - bulkup: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "8L55", "7M", "7L25", "6M", "6L25", "5M", "5L25"], - closecombat: ["8M"], - coaching: ["8T"], + aurasphere: ["9M", "9L45", "8M", "8L45", "7L61", "6L61", "5L61"], + batonpass: ["9M", "8M", "7E", "6E", "5E"], + bounce: ["9L51", "8M", "8L51", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L55", "8M", "8L55", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + closecombat: ["9M", "8M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - detect: ["8L1", "7L9", "6L9", "5L9"], - dig: ["8M", "6M", "5M"], + detect: ["9L1", "8L1", "7L9", "6L9", "5L9"], + dig: ["9M", "8M", "6M", "5M"], doubleslap: ["7L17", "6L17", "5L17"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + drainpunch: ["9M", "9L35", "8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], dualchop: ["7T", "6T", "5T"], - endure: ["8M", "7E", "6E", "5E"], - facade: ["8M", "7M", "6M", "5M"], - fakeout: ["8L5", "7L13", "6L13", "5L13"], - feint: ["8E", "7E", "6E", "5E"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + endure: ["9M", "8M", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fakeout: ["9L5", "8L5", "7L13", "6L13", "5L13"], + feint: ["9E", "8E", "7E", "6E", "5E"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], focusenergy: ["8M"], - focuspunch: ["8E", "7T", "6T"], - forcepalm: ["8L25", "7L29", "6L29", "5L29"], + focuspunch: ["9M", "9E", "8E", "7T", "6T"], + forcepalm: ["9L25", "8L25", "7L29", "6L29", "5L29"], frustration: ["7M", "6M", "5M"], - furyswipes: ["8L15"], - grassknot: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M", "7T", "6T", "5T"], + furyswipes: ["9L15", "8L15"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], - highjumpkick: ["8L60", "7L50", "6L50", "5L53"], - honeclaws: ["8L40"], + highjumpkick: ["9L60", "8L60", "7L50", "6L50", "5L53"], + honeclaws: ["9L40", "8L40"], jumpkick: ["7L37", "6L37", "5L37"], - knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], - lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], - lowsweep: ["8M", "7M", "6M", "5M"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lowkick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], meditate: ["7L5", "6L5", "5L5"], mefirst: ["7E", "6E", "5E"], megakick: ["8M"], megapunch: ["8M"], payback: ["8M", "7M", "6M", "5M"], - poisonjab: ["8M", "7M", "6M", "5M"], - pound: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - quickguard: ["8L20", "7L45", "6L45", "5L45"], - raindance: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + quickguard: ["9L20", "8L20", "7L45", "6L45", "5L45"], + raindance: ["9M", "8M", "7M", "6M", "5M"], reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M", "8L10", "7L57", "6L57", "5L57"], + reversal: ["9M", "9L10", "8M", "8L10", "7L57", "6L57", "5L57"], rockslide: ["8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roleplay: ["7T", "6T", "5T"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - sleeptalk: ["8M", "7M", "6M", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], smellingsalts: ["7E", "6E", "5E"], snore: ["8M", "7T", "6T", "5T"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M", "7L21", "6L21", "5L21"], - swordsdance: ["8M", "7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M", "7L21", "6L21", "5L21"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - uturn: ["8M", "8L30", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + trailblaze: ["9M"], + upperhand: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30", "7M", "7L41", "6M", "6L41", "5M", "5L41"], vitalthrow: ["8E", "7E", "6E", "5E"], workup: ["8M", "7M", "5M"], }, }, mienshao: { learnset: { - acrobatics: ["8M", "7M", "6M", "5M"], - aerialace: ["7M", "6M", "5M"], - agility: ["8M"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], + agility: ["9M", "8M"], allyswitch: ["8M", "7T"], assurance: ["8M"], attract: ["8M", "7M", "6M", "5M"], - aurasphere: ["8M", "8L45", "7L1", "6L1", "5L70"], - batonpass: ["8M"], + aurasphere: ["9M", "9L45", "8M", "8L45", "7L1", "6L1", "5L70"], + batonpass: ["9M", "8M"], blazekick: ["8M"], - bounce: ["8M", "8L53", "7T", "7L49", "6T", "6L49", "5T", "5L49"], - brickbreak: ["8M", "7M", "6M", "5M"], + bounce: ["9L53", "8M", "8L53", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M"], - bulkup: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "8L59", "7M", "7L25", "6M", "6L25", "5M", "5L25"], - closecombat: ["8M"], - coaching: ["8T"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L59", "8M", "8L59", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + closecombat: ["9M", "8M"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], - detect: ["8L1", "7L1", "6L1", "5L1"], - dig: ["8M", "6M", "5M"], + detect: ["9L1", "8L1", "7L1", "6L1", "5L1"], + dig: ["9M", "8M", "6M", "5M"], + doubleedge: ["9M"], doubleslap: ["7L17", "6L17", "5L17"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + drainpunch: ["9M", "9L35", "8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], dualchop: ["7T", "7S0", "6T", "5T"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - fakeout: ["8L1", "7L1", "7S0", "6L1", "5L1"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fakeout: ["9L1", "8L1", "7L1", "7S0", "6L1", "5L1"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], focusenergy: ["8M"], - focuspunch: ["7T", "6T"], - forcepalm: ["8L25", "7L29", "6L29", "5L29"], + focuspunch: ["9M", "7T", "6T"], + forcepalm: ["9L25", "8L25", "7L29", "6L29", "5L29"], frustration: ["7M", "6M", "5M"], - furyswipes: ["8L15"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M", "7T", "6T", "5T"], + furyswipes: ["9L15", "8L15"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], - highjumpkick: ["8L66", "7L56", "7S0", "6L56", "5L56"], - honeclaws: ["8L40"], - hyperbeam: ["8M", "7M", "6M", "5M"], + highjumpkick: ["9L66", "8L66", "7L56", "7S0", "6L56", "5L56"], + honeclaws: ["9L40", "8L40"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icespinner: ["9M"], jumpkick: ["7L37", "6L37", "5L37"], - knockoff: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], laserfocus: ["7T"], - lowkick: ["8M", "7T", "6T", "5T"], - lowsweep: ["8M", "7M", "6M", "5M"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], meditate: ["7L1", "6L1", "5L1"], megakick: ["8M"], megapunch: ["8M"], payback: ["8M", "7M", "6M", "5M"], - poisonjab: ["8M", "7M", "6M", "5M"], - pound: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - quickguard: ["8L1"], - raindance: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + quickguard: ["9L1", "8L1"], + raindance: ["9M", "8M", "7M", "6M", "5M"], reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M", "8L1", "7L1", "6L1", "5L63"], + reversal: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L63"], rockslide: ["8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roleplay: ["7T", "6T", "5T"], round: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - sleeptalk: ["8M", "7M", "6M", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M", "7L21", "6L21", "5L21"], - swordsdance: ["8M", "7M", "6M", "5M"], - taunt: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M", "7L21", "6L21", "5L21"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - uturn: ["8M", "8L30", "7M", "7L41", "7S0", "6M", "6L41", "5M", "5L41"], - wideguard: ["8L20", "7L45", "6L45", "5L45"], + trailblaze: ["9M"], + tripleaxel: ["9M"], + upperhand: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30", "7M", "7L41", "7S0", "6M", "6L41", "5M", "5L41"], + vacuumwave: ["9M"], + wideguard: ["9L20", "8L20", "7L45", "6L45", "5L45"], workup: ["8M", "7M", "5M"], }, eventData: [ @@ -61748,179 +64569,203 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { golett: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L1", "5L1"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], block: ["7T", "6T", "5T"], - brickbreak: ["8M", "7M", "6M", "5M"], - bulldoze: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], - curse: ["8L16", "7L45", "6L40", "5L40"], - defensecurl: ["8L4", "7L1", "6L1", "5L1"], - dig: ["8M"], + confuseray: ["9M"], + curse: ["9M", "9L16", "8L16", "7L45", "6L40", "5L40"], + defensecurl: ["9L4", "8L4", "7L1", "6L1", "5L1"], + dig: ["9M", "8M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "6T", "5T"], - dynamicpunch: ["8L56", "7L35", "6L30", "5L30"], - earthpower: ["8M", "7T", "6T", "5T"], - earthquake: ["8M", "8L52", "7M", "7L50", "6M", "6L45", "5M", "5L45"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - firepunch: ["8M", "7T", "6T", "5T", "5D"], + drainpunch: ["9M", "8M", "7T", "6T", "5T"], + dynamicpunch: ["9L56", "8L56", "7L35", "6L30", "5L30"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L52", "8M", "8L52", "7M", "7L50", "6M", "6L45", "5M", "5L45"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "5D"], flash: ["6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focuspunch: ["7T", "7L61", "6T", "6L55", "5L55"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M", "7T", "7L61", "6T", "6L55", "5L55"], frustration: ["7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], - gyroball: ["8M", "7M", "6M", "5M"], - hammerarm: ["8L48", "7L55", "6L50", "5L50"], - heavyslam: ["8M", "8L40"], - helpinghand: ["8M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], + gyroball: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L48", "8L48", "7L55", "6L50", "5L50"], + heavyslam: ["9M", "9L40", "8M", "8L40"], + helpinghand: ["9M", "8M"], + hex: ["9M"], hiddenpower: ["7M", "6M", "5M"], - icebeam: ["8M", "7M", "6M", "5M"], - icepunch: ["8M", "7T", "6T", "5T"], - icywind: ["8M", "7T", "6T", "5T"], - imprison: ["8M"], - irondefense: ["8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], - lowkick: ["8M", "7T", "6T", "5T"], - lowsweep: ["8M", "7M", "6M", "5M"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + knockoff: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], magiccoat: ["7T", "6T", "5T"], magnitude: ["7L30", "6L25", "5L25"], megakick: ["8M"], - megapunch: ["8M", "8L32", "7L25", "6L21", "5L21"], - mudslap: ["8L1", "7L5", "6L5", "5L5"], - nightshade: ["8L20", "7L40", "6L35", "5L35"], - phantomforce: ["8M", "8L44"], - poltergeist: ["8T"], - pound: ["8L8", "7L1", "6L1", "5L1"], + megapunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L21", "5L21"], + mudslap: ["9M", "9L1", "8L1", "7L5", "6L5", "5L5"], + nightshade: ["9M", "9L20", "8L20", "7L40", "6L35", "5L35"], + phantomforce: ["9M", "9L44", "8M", "8L44"], + poltergeist: ["9M", "8T"], + pound: ["9L8", "8L8", "7L1", "6L1", "5L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], rockpolish: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], rollout: ["7L9", "6L9", "5L9", "5D"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - scorchingsands: ["8T"], + sandstorm: ["9M"], + scorchingsands: ["9M", "8T"], secretpower: ["6M"], selfdestruct: ["8M"], - shadowball: ["8M", "8L36", "7M", "6M", "5M"], - shadowpunch: ["8L12", "7L13", "6L13", "5L13"], + shadowball: ["9M", "9L36", "8M", "8L36", "7M", "6M", "5M"], + shadowpunch: ["9L12", "8L12", "7L13", "6L13", "5L13"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T", "5T"], - sleeptalk: ["8M", "7M", "6M", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M"], snore: ["8M", "7T", "6T", "5T"], - stealthrock: ["8M", "7T", "6T", "5T"], - stompingtantrum: ["8M", "8L24", "7L21"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "9L24", "8M", "8L24", "7L21"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], superpower: ["8M", "7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], + takedown: ["9M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T", "5D"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "5D"], toxic: ["7M", "6M", "5M"], }, }, golurk: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L1", "5L1"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], block: ["7T", "6T", "5T"], - bodypress: ["8M"], - bodyslam: ["8M"], - brickbreak: ["8M", "7M", "6M", "5M"], - bulldoze: ["8M", "7M", "6M", "5M"], - chargebeam: ["7M", "6M", "5M"], - closecombat: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + chargebeam: ["9M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], confide: ["7M", "6M"], - curse: ["8L16", "7L47", "6L40", "5L40"], + confuseray: ["9M"], + curse: ["9M", "9L16", "8L16", "7L47", "6L40", "5L40"], darkestlariat: ["8M"], - defensecurl: ["8L1", "7L1", "6L1", "5L1"], - dig: ["8M"], + defensecurl: ["9L1", "8L1", "7L1", "6L1", "5L1"], + dig: ["9M", "8M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - drainpunch: ["8M", "7T", "6T", "5T"], - dynamicpunch: ["8L64", "7L35", "6L30", "5L30"], - earthpower: ["8M", "7T", "6T", "5T"], - earthquake: ["8M", "8L58", "7M", "7L54", "6M", "6L50", "5M", "5L50"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - firepunch: ["8M", "7T", "6T", "5T"], + drainpunch: ["9M", "8M", "7T", "6T", "5T"], + dynamicpunch: ["9L64", "8L64", "7L35", "6L30", "5L30"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L58", "8M", "8L58", "7M", "7L54", "6M", "6L50", "5M", "5L50"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], flash: ["6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], - fly: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - focuspunch: ["8L1", "7T", "7L69", "6T", "6L1", "5L70"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M", "9L1", "8L1", "7T", "7L69", "6T", "6L1", "5L70"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], - gyroball: ["8M", "7M", "6M", "5M", "5S0"], - hammerarm: ["8L52", "7L61", "6L60", "5L60", "5S0"], - heatcrash: ["8M"], - heavyslam: ["8M", "8L40", "7L1", "6L43", "5L43"], - helpinghand: ["8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "5S0"], + hammerarm: ["9L52", "8L52", "7L61", "6L60", "5L60", "5S0"], + hardpress: ["9M"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "9L40", "8M", "8L40", "7L1", "6L43", "5L43"], + helpinghand: ["9M", "8M"], + hex: ["9M"], hiddenpower: ["7M", "6M", "5M"], - highhorsepower: ["8M", "8L1", "7L1"], - hyperbeam: ["8M", "7M", "6M", "5M", "5S0"], - icebeam: ["8M", "7M", "6M", "5M"], - icepunch: ["8M", "7T", "6T", "5T"], - icywind: ["8M", "7T", "6T", "5T"], - imprison: ["8M"], - irondefense: ["8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], - lowkick: ["8M", "7T", "6T", "5T"], - lowsweep: ["8M", "7M", "6M", "5M"], + highhorsepower: ["9M", "9L1", "8M", "8L1", "7L1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "5S0"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + knockoff: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], magiccoat: ["7T", "6T", "5T"], magnitude: ["7L30", "6L25", "5L25"], megakick: ["8M"], - megapunch: ["8M", "8L32", "7L25", "6L21", "5L21"], - mudslap: ["8L1", "7L1", "6L1", "5L1"], - nightshade: ["8L20", "7L40", "6L35", "5L35"], - phantomforce: ["8M", "8L46", "7L76", "6L1"], - poltergeist: ["8T"], - pound: ["8L1", "7L1", "6L1", "5L1"], + megapunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L21", "5L21"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1"], + nightshade: ["9M", "9L20", "8L20", "7L40", "6L35", "5L35"], + phantomforce: ["9M", "9L46", "8M", "8L46", "7L76", "6L1"], + poltergeist: ["9M", "8T"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], rockpolish: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], rollout: ["7L9", "6L9", "5L9"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - scorchingsands: ["8T"], + sandstorm: ["9M"], + scorchingsands: ["9M", "8T"], secretpower: ["6M"], selfdestruct: ["8M"], - shadowball: ["8M", "8L36", "7M", "6M", "5M"], - shadowpunch: ["8L12", "7L13", "6L13", "5L13", "5S0"], + shadowball: ["9M", "9L36", "8M", "8L36", "7M", "6M", "5M"], + shadowpunch: ["9L12", "8L12", "7L13", "6L13", "5L13", "5S0"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T", "5T"], - sleeptalk: ["8M", "7M", "6M", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "7M", "6M", "5M"], - stealthrock: ["8M", "7T", "6T", "5T"], - stompingtantrum: ["8M", "8L24", "7T", "7L21"], - stoneedge: ["8M", "7M", "6M", "5M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "9L24", "8M", "8L24", "7T", "7L21"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], superpower: ["8M", "7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], + takedown: ["9M"], telekinesis: ["7T", "5M"], - thief: ["8M", "7M", "6M", "5M"], - thunderbolt: ["8M", "7M", "6M", "5M"], - thunderpunch: ["8M", "7T", "6T", "5T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], toxic: ["7M", "6M", "5M"], - trick: ["8M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + trick: ["9M", "8M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 70, shiny: true, abilities: ["ironfist"], moves: ["shadowpunch", "hyperbeam", "gyroball", "hammerarm"], pokeball: "cherishball"}, @@ -61962,14 +64807,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ironhead: ["9M", "9L55", "8M", "8L55", "7T", "7L54", "6T", "6L54", "5T", "5L54"], knockoff: ["7T", "6T", "5T"], laserfocus: ["8L50"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L6", "6L6", "5L6"], lowkick: ["9M", "8M", "7T", "6T", "5T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], magnetrise: ["7T", "6T", "5T"], meanlook: ["9E", "8E", "7E", "6E", "5E"], metalclaw: ["9M", "9L10", "8L10", "7L25", "6L25", "5L25"], - metalsound: ["9L30", "8L30", "7L38", "6L38", "5L38"], + metalsound: ["9M", "9L30", "8L30", "7L38", "6L38", "5L38"], nightslash: ["9L40", "8L40", "7L49", "6L49", "5L49"], payback: ["8M", "7M", "6M", "5M"], poisonjab: ["9M", "8M", "7M", "6M", "5M"], @@ -61999,7 +64844,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], steelbeam: ["9M", "8T"], stoneedge: ["9M"], @@ -62052,14 +64897,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ironhead: ["9M", "9L57", "8M", "8L57", "7T", "7L1", "6T", "6L1", "5T", "5L57"], knockoff: ["7T", "6T", "5T"], laserfocus: ["8L50", "7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], lowkick: ["9M", "8M", "7T", "6T", "5T"], lowsweep: ["9M", "8M", "7M", "6M", "5M"], magnetrise: ["7T", "6T", "5T"], metalburst: ["9L1", "8L1", "7L1", "6L1", "5L1"], metalclaw: ["9M", "9L1", "8L1", "7L25", "6L25", "5L25"], - metalsound: ["9L30", "8L30", "7L38", "6L38", "5L38"], + metalsound: ["9M", "9L30", "8L30", "7L38", "6L38", "5L38"], nightslash: ["9L40", "8L40", "7L49", "6L49", "5L49"], payback: ["8M", "7M", "6M", "5M"], poisonjab: ["9M", "8M", "7M", "6M", "5M"], @@ -62088,7 +64933,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], stealthrock: ["9M", "8M", "7T", "6T", "5T"], steelbeam: ["9M", "8T"], stoneedge: ["9M", "8M", "7M", "6M", "5M"], @@ -62099,7 +64944,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M", "7M", "6M", "5M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderwave: ["9M", "8M", "7M", "6M", "5M"], torment: ["9L15", "8L15", "7M", "7L1", "6M", "6L1", "5M", "5L1"], toxic: ["7M", "6M", "5M"], @@ -62132,12 +64977,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "9L45"], ironhead: ["9M", "9L57"], kowtowcleave: ["9L0"], + lashout: ["9M"], leer: ["9L1"], lowkick: ["9M"], lowsweep: ["9M"], metalburst: ["9L1"], metalclaw: ["9M", "9L1"], - metalsound: ["9L30"], + metalsound: ["9M", "9L30"], nightslash: ["9L40"], poisonjab: ["9M"], protect: ["9M"], @@ -62153,6 +64999,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { slash: ["9L35"], sleeptalk: ["9M"], snarl: ["9M"], + spite: ["9M"], stealthrock: ["9M"], steelbeam: ["9M"], stoneedge: ["9M"], @@ -62162,6 +65009,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunderwave: ["9M"], torment: ["9L15"], xscissor: ["9M"], @@ -62265,10 +65113,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crushclaw: ["9L48", "8L48", "7L46", "6L46", "5L46"], cut: ["6M", "5M"], defog: ["9L60", "8L60", "7T", "7L32", "6L32", "5L32"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], + featherdance: ["9M"], fly: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], furyattack: ["7L5", "6L5", "5L5"], @@ -62333,10 +65183,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crushclaw: ["9L48", "8L48", "7L46", "6L46", "5L46"], cut: ["6M", "5M"], defog: ["9L64", "8L64", "7T", "7L32", "6L32", "5L32"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], + featherdance: ["9M"], fly: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], furyattack: ["7L1", "6L1", "5L1"], @@ -62413,10 +65265,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crushclaw: ["9L48"], dazzlinggleam: ["9M"], defog: ["9L64"], + doubleedge: ["9M"], + dualwingbeat: ["9M"], endure: ["9M"], esperwing: ["9L0"], + expandingforce: ["9M"], facade: ["9M"], + featherdance: ["9M"], fly: ["9M"], + futuresight: ["9M"], gigaimpact: ["9M"], heatwave: ["9M"], helpinghand: ["9M"], @@ -62432,7 +65289,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M"], psybeam: ["9M"], psychic: ["9M"], + psychicnoise: ["9M"], psychicterrain: ["9M"], + psychup: ["9M"], psyshock: ["9M"], raindance: ["9M"], rest: ["9M"], @@ -62456,6 +65315,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thrash: ["9L72"], uturn: ["9M"], + vacuumwave: ["9M"], whirlwind: ["9L42"], wingattack: ["9L1"], zenheadbutt: ["9M"], @@ -62464,142 +65324,161 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { vullaby: { learnset: { aerialace: ["7M", "6M", "5M"], - airslash: ["8M", "8L42", "7L41", "6L41", "5L41"], + aircutter: ["9M"], + airslash: ["9M", "9L42", "8M", "8L42", "7L41", "6L41", "5L41"], assurance: ["8M"], - attract: ["8M", "8L66", "7M", "6M", "5M"], + attract: ["9L66", "8M", "8L66", "7M", "6M", "5M"], block: ["7T", "6T", "5T"], - bravebird: ["8M", "8L72", "7L59", "6L59", "5L59"], + bravebird: ["9M", "9L72", "8M", "8L72", "7L59", "6L59", "5L59"], confide: ["7M", "6M"], cut: ["6M", "5M"], - darkpulse: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], - defog: ["8L60", "7T", "7L32", "6L32", "5L32"], + darkpulse: ["9M", "9L48", "8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], + defog: ["9L60", "8L60", "7T", "7L32", "6L32", "5L32"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], embargo: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - faketears: ["8M", "7E", "6E", "5E"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "8M", "7E", "6E", "5E"], + featherdance: ["9M"], feintattack: ["7L23", "6L23", "5L23"], - flatter: ["8L6", "7L19", "6L19", "5L19"], - fly: ["8M", "7M", "6M", "5M"], - foulplay: ["8M", "7T", "7E", "6T", "6E", "5T"], + flatter: ["9L6", "8L6", "7L19", "6L19", "5L19"], + fly: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T"], frustration: ["7M", "6M", "5M"], furyattack: ["7L5", "6L5", "5L5"], - gust: ["8L1", "7L1", "6L1", "5L1"], - heatwave: ["8M", "7T", "6T", "5T"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], incinerate: ["6M", "5M"], - irondefense: ["8M", "8L30", "5T"], - knockoff: ["8L24", "7T", "7E", "6T", "6E", "5T", "5E"], - lashout: ["8T"], - leer: ["8L1", "7L1", "6L1", "5L1"], - meanlook: ["8E", "7E", "6E", "5E"], + irondefense: ["9M", "9L30", "8M", "8L30", "5T"], + knockoff: ["9M", "9L24", "8L24", "7T", "7E", "6T", "6E", "5T", "5E"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + meanlook: ["9E", "8E", "7E", "6E", "5E"], mirrormove: ["7L64", "6L64", "5L64"], - nastyplot: ["8M", "8L54", "7L14", "6L14", "5L14"], + nastyplot: ["9M", "9L54", "8M", "8L54", "7L14", "6L14", "5L14"], payback: ["8M", "7M", "6M", "5M"], - pluck: ["8L12", "7L10", "6L10", "5M", "5L10"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], + pluck: ["9L12", "8L12", "7L10", "6L10", "5M", "5L10"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], punishment: ["7L28", "6L28", "5L28"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], - roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["9E", "8E", "7M", "7E", "6M", "6E", "5T", "5E"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M", "7E", "6E", "5E"], + scaryface: ["9M", "8M", "7E", "6E", "5E"], secretpower: ["6M"], - shadowball: ["8M", "7M", "6M", "5M"], - sleeptalk: ["8M", "7M", "6M", "5T"], - snarl: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], + spite: ["9M"], steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - tailwind: ["8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], - taunt: ["8M", "7M", "6M", "5M"], - thief: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["9M"], torment: ["7M", "6M", "5M"], - toxic: ["8E", "7M", "6M", "5M"], - uturn: ["8M", "7M", "6M", "5M"], - whirlwind: ["8L36", "7L55", "6L55", "5L55"], + toxic: ["9M", "9E", "8E", "7M", "6M", "5M"], + uproar: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L36", "8L36", "7L55", "6L55", "5L55"], }, }, mandibuzz: { learnset: { - aerialace: ["7M", "6M", "5M"], - airslash: ["8M", "8L42", "7L41", "6L41", "5L41"], + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M"], + aircutter: ["9M"], + airslash: ["9M", "9L42", "8M", "8L42", "7L41", "6L41", "5L41"], assurance: ["8M"], - attract: ["8M", "8L72", "7M", "6M", "5M"], + attract: ["9L72", "8M", "8L72", "7M", "6M", "5M"], block: ["7T", "6T", "5T"], - bonerush: ["8L0", "7L1", "6L1", "5L51"], - bravebird: ["8M", "8L80", "7L1", "6L1", "5L63"], + bonerush: ["9L0", "8L0", "7L1", "6L1", "5L51"], + bravebird: ["9M", "9L80", "8M", "8L80", "7L1", "6L1", "5L63"], confide: ["7M", "6M"], cut: ["6M", "5M"], - darkpulse: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], - defog: ["8L64", "7T", "7L32", "6L32", "5L32"], + darkpulse: ["9M", "9L48", "8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], + defog: ["9L64", "8L64", "7T", "7L32", "6L32", "5L32"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], embargo: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - faketears: ["8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "8M"], + featherdance: ["9M"], feintattack: ["7L23", "6L23", "5L23", "5S0"], - flatter: ["8L1", "7L19", "6L19", "5L19", "5S0"], - fly: ["8M", "7M", "6M", "5M"], - foulplay: ["8M", "7T", "6T", "5T"], + flatter: ["9L1", "8L1", "7L19", "6L19", "5L19", "5S0"], + fly: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], frustration: ["7M", "6M", "5M"], furyattack: ["7L1", "6L1", "5L1"], - gigaimpact: ["8M", "7M", "6M", "5M"], - gust: ["8L1", "7L1", "6L1", "5L1"], - heatwave: ["8M", "7T", "6T", "5T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], + hurricane: ["9M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], incinerate: ["6M", "5M"], - irondefense: ["8M", "8L30", "7T", "5T"], - knockoff: ["8L24", "7T", "6T", "5T"], - lashout: ["8T"], - leer: ["8L1", "7L1", "6L1", "5L1"], + irondefense: ["9M", "9L30", "8M", "8L30", "7T", "5T"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], mirrormove: ["7L1", "6L1", "5L70"], - nastyplot: ["8M", "8L57", "7L14", "6L14", "5L14", "5S0"], + nastyplot: ["9M", "9L57", "8M", "8L57", "7L14", "6L14", "5L14", "5S0"], payback: ["8M", "7M", "6M", "5M"], - pluck: ["8L1", "7L1", "6L1", "5M", "5L1", "5S0"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], + pluck: ["9L1", "8L1", "7L1", "6L1", "5M", "5L1", "5S0"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], punishment: ["7L28", "6L28", "5L28"], - raindance: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], retaliate: ["8M", "6M", "5M"], return: ["7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roost: ["7M", "6M", "5T"], round: ["8M", "7M", "6M", "5M"], - scaryface: ["8M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], secretpower: ["6M"], - shadowball: ["8M", "7M", "6M", "5M"], - skyattack: ["8L1", "7T", "6T", "5T"], - sleeptalk: ["8M", "7M", "6M", "5T"], - snarl: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + skyattack: ["9L1", "8L1", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], snatch: ["7T", "6T", "5T"], snore: ["8M", "7T", "6T", "5T"], + spite: ["9M"], steelwing: ["8M", "7M", "6M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - tailwind: ["8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], - taunt: ["8M", "7M", "6M", "5M"], - thief: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["9M"], torment: ["7M", "6M", "5M"], - toxic: ["8L1", "7M", "6M", "5M"], - uturn: ["8M", "7M", "6M", "5M"], - whirlwind: ["8L36", "7L1", "6L1", "5L57"], + toxic: ["9M", "9L1", "8L1", "7M", "6M", "5M"], + uproar: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L36", "8L36", "7L1", "6L1", "5L57"], }, eventData: [ {generation: 5, level: 25, gender: "F", isHidden: true, moves: ["pluck", "nastyplot", "flatter", "feintattack"]}, @@ -62774,6 +65653,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M", "5M"], dracometeor: ["9M", "8T", "7T", "6T", "5T"], dragonbreath: ["9L4", "8L4", "7L17", "6L17", "5L17"], + dragoncheer: ["9M"], dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], dragonrage: ["7L1", "6L1", "5L1", "5S0"], dragonrush: ["9L52", "8L52", "7L42", "6L42", "5L42"], @@ -62793,11 +65673,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nastyplot: ["9M", "9L56", "8M", "8L56"], outrage: ["9M", "9L60", "8M", "8L60", "7T", "7L62", "6T", "6L62", "5T", "5L62"], protect: ["9M", "8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M"], rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roar: ["9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + roar: ["9M", "9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], rocksmash: ["6M", "5M"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "9L36", "8M", "8L36", "7L50", "6L50", "5L52"], @@ -62808,7 +65688,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snarl: ["9M"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], strength: ["6M", "5M"], substitute: ["9M", "8M", "7M", "6M", "5M"], sunnyday: ["9M", "8M", "7M", "6M", "5M"], @@ -62846,6 +65726,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M", "5M"], dracometeor: ["9M", "8T", "7T", "6T", "5T"], dragonbreath: ["9L1", "8L1", "7L17", "6L17", "5L17"], + dragoncheer: ["9M"], dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], dragonrage: ["7L1", "6L1", "5L1"], dragonrush: ["9L54", "8L54", "7L42", "6L42", "5L42"], @@ -62862,14 +65743,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "9L48", "8M", "8L48", "7T", "7L64", "6T", "6L64", "5T", "5L64"], icefang: ["9M", "8M"], incinerate: ["6M", "5M"], + lashout: ["9M"], nastyplot: ["9M", "9L60", "8M", "8L60"], outrage: ["9M", "9L66", "8M", "8L66", "7T", "7L71", "6T", "6L71", "5T", "5L71"], protect: ["9M", "8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M"], rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roar: ["9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + roar: ["9M", "9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], rocksmash: ["6M", "5M"], round: ["8M", "7M", "6M", "5M"], scaryface: ["9M", "9L36", "8M", "8L36", "7L55", "6L55", "5L55"], @@ -62880,7 +65762,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snarl: ["9M"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], stompingtantrum: ["9M"], strength: ["6M", "5M"], substitute: ["9M", "8M", "7M", "6M", "5M"], @@ -62913,7 +65795,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { beatup: ["8M"], bite: ["9L1", "8L1", "7L1", "6L1", "5L1"], bodyslam: ["9M", "9L44", "8M", "8L44", "7L48", "6L48", "5L48"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], bulldoze: ["9M", "8M", "7M", "6M", "5M"], chargebeam: ["7M", "6M", "5M"], @@ -62925,12 +65807,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M", "5M"], dracometeor: ["9M", "8T", "7T", "6T", "5T"], dragonbreath: ["9L1", "8L1", "7L17", "6L17", "5L17", "5S0"], + dragoncheer: ["9M"], dragondance: ["9M", "8M"], dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], dragonrage: ["7L1", "6L1", "5L1"], dragonrush: ["9L54", "8L54", "7L42", "6L42", "6S1", "5L42"], dragontail: ["9M", "7M", "6M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], earthpower: ["9M", "8M", "7T", "6T", "5T"], earthquake: ["9M", "8M", "7M", "6M", "5M"], echoedvoice: ["7M", "6M", "5M"], @@ -62956,22 +65839,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icefang: ["9M", "8M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T"], + lashout: ["9M"], nastyplot: ["9M", "9L60", "8M", "8L60"], outrage: ["9M", "9L68", "8M", "8L68", "7T", "7L1", "6T", "6L1", "5T", "5L79"], payback: ["8M", "7M", "6M", "5M"], protect: ["9M", "8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], raindance: ["9M", "8M", "7M", "6M", "5M"], reflect: ["9M", "8M", "7M", "6M", "5M"], rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - roar: ["9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + roar: ["9M", "9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], rockslide: ["9M", "8M", "7M", "6M", "6S1", "5M"], rocksmash: ["6M", "5M"], rocktomb: ["9M", "8M", "7M", "6M", "5M"], roost: ["7M", "6M", "5T"], round: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L36", "8M", "8L36", "7L55", "6L55", "5L55"], screech: ["8M"], secretpower: ["6M"], @@ -62981,7 +65865,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snarl: ["9M", "8M"], snore: ["8M", "7T", "6T", "5T"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], stealthrock: ["9M"], steelwing: ["8M", "7M", "6M"], stompingtantrum: ["9M"], @@ -62998,7 +65882,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M", "7M", "6M", "5M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M", "5M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderfang: ["9M", "8M"], thunderwave: ["9M", "8M", "7M", "6M", "5M"], torment: ["7M", "6M", "5M"], @@ -63024,11 +65908,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { amnesia: ["9M", "9L54", "8M", "8L54", "7L80", "6L80", "5L80"], attract: ["8M"], bodyslam: ["9M"], - bugbite: ["9L24", "8L24", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + bugbite: ["9M", "9L24", "8L24", "7T", "7L40", "6T", "6L40", "5T", "5L40"], bugbuzz: ["9M", "9L42", "8M", "8L42", "7L70", "6L70", "5L70"], calmmind: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], - doubleedge: ["9L60", "8L60", "7L50", "6L50", "5L50"], + doubleedge: ["9M", "9L60", "8L60", "7L50", "6L50", "5L50"], doubleteam: ["7M", "6M", "5M"], ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], endure: ["9M", "8M", "7E", "6E", "5E"], @@ -63048,6 +65932,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M", "5M"], leechlife: ["9M", "9L36", "8M", "8L36", "7M", "6L10", "5L10"], lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], magnetrise: ["7T", "7E", "6T", "6E", "5T", "5E"], morningsun: ["9E", "7E", "6E", "5E"], overheat: ["9M", "8M", "7M", "6M", "5M"], @@ -63061,7 +65946,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["9L30", "8M", "8L30"], secretpower: ["6M"], signalbeam: ["7T", "6T", "5T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], solarbeam: ["9M", "8M", "7M", "6M", "5M"], @@ -63091,14 +65976,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { amnesia: ["9M", "9L54", "8M", "8L54", "7L1", "6L1"], attract: ["8M"], bodyslam: ["9M"], - bugbite: ["9L24", "8L24", "7T", "6T", "5T"], + bugbite: ["9M", "9L24", "8L24", "7T", "6T", "5T"], bugbuzz: ["9M", "9L42", "8M", "8L42", "7L1", "6L1", "5L70", "5S1"], calmmind: ["9M", "8M", "7M", "6M", "5M"], confide: ["7M", "6M"], defog: ["7T"], - doubleedge: ["9L1", "8L1"], + doubleedge: ["9M", "9L1", "8L1"], doubleteam: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], @@ -63121,6 +66006,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M", "5M"], leechlife: ["9M", "9L36", "8M", "8L36", "7M", "6L1", "5L1", "5S0"], lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], magnetrise: ["7T", "6T", "5T"], mysticalfire: ["8M"], overheat: ["9M", "8M", "7M", "6M", "5M", "5S1"], @@ -63140,7 +66026,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M"], signalbeam: ["7T", "6T", "5T"], silverwind: ["7L50", "6L50", "5L50"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], solarbeam: ["9M", "8M", "7M", "6M", "5M"], @@ -63171,77 +66057,88 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cobalion: { learnset: { - aerialace: ["7M", "6M", "5M"], - airslash: ["8M"], + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M", "8M"], + aurasphere: ["9M"], block: ["7T", "6T", "5T"], + bodypress: ["9M"], + bodyslam: ["9M"], bounce: ["8M", "7T", "6T", "5T"], - brickbreak: ["8M"], - calmmind: ["8M", "7M", "6M", "5M"], - closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], - coaching: ["8T"], + brickbreak: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "9L70", "9S6", "8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], cut: ["6M", "5M"], - doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleedge: ["9M"], + doublekick: ["9L21", "8L21", "7L1", "6L7", "5L7"], doubleteam: ["7M", "6M", "5M"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - falseswipe: ["8M", "7M", "6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + heavyslam: ["9M"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - irondefense: ["8M", "7T", "6T", "5T"], - ironhead: ["8M", "8L63", "8S5", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T"], + ironhead: ["9M", "9L63", "9S6", "8M", "8L63", "8S5", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], laserfocus: ["7T"], - leer: ["8L1", "7L1", "6L1", "5L1"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], magnetrise: ["7T", "6T", "5T"], megahorn: ["8M"], - metalburst: ["8L35", "7L1", "6L1", "5L67"], - metalclaw: ["8L7", "7L1", "6L13", "5L13"], - poisonjab: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - quickattack: ["8L1", "7L1", "7S4", "6L1", "5L1"], - quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], - retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + metalburst: ["9L35", "8L35", "7L1", "6L1", "5L67"], + metalclaw: ["9M", "9L7", "8L7", "7L1", "6L13", "5L13"], + metalsound: ["9M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + quickattack: ["9L1", "8L1", "7L1", "7S4", "6L1", "5L1"], + quickguard: ["9L14", "8L14", "7L42", "6L1", "5L55", "5S2"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L28", "8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M"], - roar: ["7M", "6M", "5M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "6M", "5M"], rockpolish: ["7M", "6M", "5M"], rocksmash: ["6M", "5M"], round: ["8M", "7M", "6M", "5M"], - sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + sacredsword: ["9L49", "9S6", "8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], safeguard: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M"], - scaryface: ["8M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], secretpower: ["6M"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smartstrike: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smartstrike: ["9M", "8M"], snore: ["8M", "7T", "6T", "5T"], - stealthrock: ["8M", "7T", "6T", "5T"], - steelbeam: ["8T"], - stoneedge: ["8M", "7M", "6M", "5M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + steelbeam: ["9M", "8T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], superpower: ["8M", "7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], - takedown: ["8L42", "7L7", "6L19", "5L19"], - taunt: ["8M", "7M", "6M", "5M"], - thunderwave: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L56", "9S6", "8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + takedown: ["9M", "9L42", "8L42", "7L7", "6L19", "5L19"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - voltswitch: ["8M", "7M", "6M", "5M"], - workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], - xscissor: ["8M", "7M", "6M", "5M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + upperhand: ["9M"], + vacuumwave: ["9M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + workup: ["9L1", "8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "ironhead", "sacredsword"]}, @@ -63250,80 +66147,87 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "ironhead", "sacredsword", "swordsdance"]}, {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "quickattack", "ironhead"]}, {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "ironhead", "closecombat"]}, + {generation: 9, level: 70, moves: ["closecombat", "ironhead", "swordsdance", "sacredsword"]}, ], eventOnly: true, }, terrakion: { learnset: { - aerialace: ["7M", "6M", "5M"], - airslash: ["8M"], + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M", "8M"], + aurasphere: ["9M"], block: ["7T", "6T", "5T"], - brickbreak: ["8M"], - bulldoze: ["8M", "7M", "6M", "5M"], - calmmind: ["8M", "7M", "6M", "5M"], - closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], - coaching: ["8T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "9L70", "9S6", "8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], cut: ["6M", "5M"], - doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleedge: ["9M"], + doublekick: ["9L21", "8L21", "7L1", "6L7", "5L7"], doubleteam: ["7M", "6M", "5M"], - earthpower: ["8M", "7T", "6T", "5T"], - earthquake: ["8M", "7M", "6M", "5M"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - falseswipe: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], hiddenpower: ["7M", "6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - ironhead: ["8M", "7T", "6T", "5T"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T"], laserfocus: ["7T"], - leer: ["8L1", "7L1", "6L1", "5L1"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], megahorn: ["8M"], - poisonjab: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - quickattack: ["8L1", "7L1", "6L1", "5L1"], - quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], - retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], + quickguard: ["9L14", "8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L28", "8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M"], - roar: ["7M", "6M", "5M"], - rockblast: ["8M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "6M", "5M"], + rockblast: ["9M", "8M"], rockpolish: ["7M", "6M", "5M"], - rockslide: ["8M", "8L35", "7M", "7L25", "7S4", "6M", "6L37", "6S3", "5M", "5L37", "5S0", "5S1"], + rockslide: ["9M", "9L35", "8M", "8L35", "7M", "7L25", "7S4", "6M", "6L37", "6S3", "5M", "5L37", "5S0", "5S1"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], round: ["8M", "7M", "6M", "5M"], - sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + sacredsword: ["9L49", "9S6", "8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], safeguard: ["8M", "7M", "6M", "5M"], - sandstorm: ["8M", "7M", "6M", "5M"], - scaryface: ["8M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], secretpower: ["6M"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smackdown: ["8L7", "7M", "7L1", "6M", "6L13", "5M", "5L13"], - smartstrike: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M", "9L7", "8L7", "7M", "7L1", "6M", "6L13", "5M", "5L13"], + smartstrike: ["9M", "8M"], snore: ["8M", "7T", "6T", "5T"], - stealthrock: ["8M", "7T", "6T", "5T"], - stompingtantrum: ["8M", "7T"], - stoneedge: ["8M", "8L63", "8S5", "7M", "7L55", "7S4", "6M", "6L67", "5M", "5L67"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L63", "9S6", "8M", "8L63", "8S5", "7M", "7L55", "7S4", "6M", "6L67", "5M", "5L67"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], superpower: ["8M", "7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], - takedown: ["8L42", "7L7", "6L19", "5L19"], - taunt: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L56", "9S6", "8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + takedown: ["9M", "9L42", "8L42", "7L7", "6L19", "5L19"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], - xscissor: ["8M", "7M", "6M", "5M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + upperhand: ["9M"], + workup: ["9L1", "8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "rockslide", "sacredsword"]}, @@ -63332,83 +66236,93 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "rockslide", "sacredsword", "swordsdance"]}, {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "rockslide", "stoneedge"]}, {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "stoneedge", "closecombat"]}, + {generation: 9, level: 70, moves: ["closecombat", "stoneedge", "swordsdance", "sacredsword"]}, ], eventOnly: true, }, virizion: { learnset: { - aerialace: ["7M", "6M", "5M"], - airslash: ["8M"], + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M", "8M"], + aurasphere: ["9M"], block: ["7T", "6T", "5T"], + bodyslam: ["9M"], bounce: ["8M", "7T", "6T", "5T"], - brickbreak: ["8M"], - calmmind: ["8M", "7M", "6M", "5M"], - closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], - coaching: ["8T"], + brickbreak: ["9M", "8M"], + bulletseed: ["9M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "9L70", "9S6", "8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], cut: ["6M", "5M"], - doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleedge: ["9M"], + doublekick: ["9L21", "8L21", "7L1", "6L7", "5L7"], doubleteam: ["7M", "6M", "5M"], - endure: ["8M"], - energyball: ["8M", "7M", "6M", "5M"], - facade: ["8M", "7M", "6M", "5M"], - falseswipe: ["8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], flash: ["6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gigadrain: ["8M", "8L35", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], - gigaimpact: ["8M", "7M", "6M", "5M"], - grassknot: ["8M", "7M", "6M", "5M"], - grassyglide: ["8T"], - helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyglide: ["9M", "8T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], hiddenpower: ["7M", "6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], laserfocus: ["7T"], - leafblade: ["8M", "8L63", "8S5", "7L1", "7S4", "6L1", "5L67"], - leafstorm: ["8M"], - leer: ["8L1", "7L1", "6L1", "5L1"], - lightscreen: ["8M", "7M", "6M", "5M"], - magicalleaf: ["8M", "8L7", "7L1", "6L13", "5L13"], + leafblade: ["9L63", "9S6", "8M", "8L63", "8S5", "7L1", "7S4", "6L1", "5L67"], + leafstorm: ["9M", "8M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "9L7", "8M", "8L7", "7L1", "6L13", "5L13"], megahorn: ["8M"], naturepower: ["7M", "6M"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - quickattack: ["8L1", "7L1", "6L1", "5L1"], - quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], - retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], + quickguard: ["9L14", "8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L28", "8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M"], - roar: ["7M", "6M", "5M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], round: ["8M", "7M", "6M", "5M"], - sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + sacredsword: ["9L49", "9S6", "8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], safeguard: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], secretpower: ["6M"], - seedbomb: ["8M", "7T", "6T", "5T"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smartstrike: ["8M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smartstrike: ["9M", "8M"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "7M", "6M", "5M"], - solarblade: ["8M"], - stoneedge: ["8M", "7M", "6M", "5M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + solarblade: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], superpower: ["8M", "7T", "6T", "5T"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], - synthesis: ["7T", "6T", "5T"], - takedown: ["8L42", "7L7", "6L19", "5L19"], - taunt: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L56", "9S6", "8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + synthesis: ["9L42", "7T", "6T", "5T"], + takedown: ["9M", "9L1", "8L42", "7L7", "6L19", "5L19"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + trailblaze: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + workup: ["9L1", "8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], worryseed: ["7T", "6T", "5T"], - xscissor: ["8M", "7M", "6M", "5M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "gigadrain", "sacredsword"]}, @@ -63417,6 +66331,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "gigadrain", "sacredsword", "swordsdance"]}, {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "gigadrain", "leafblade"]}, {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "leafblade", "closecombat"]}, + {generation: 9, level: 70, moves: ["closecombat", "leafblade", "swordsdance", "sacredsword"]}, ], eventOnly: true, }, @@ -63462,8 +66377,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "8M", "8S7", "7T", "6T", "5T"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], leer: ["9L5", "8L5"], metronome: ["9M"], nastyplot: ["9M", "8M"], @@ -63484,8 +66399,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skydrop: ["7M", "6M", "5M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M", "7M", "6M", "5M"], - sludgewave: ["8M", "7M", "6M", "5M"], - smackdown: ["7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T"], snowscape: ["9M"], strength: ["6M", "5M"], @@ -63501,9 +66416,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thrash: ["9L70", "8L70", "7L1", "6L1", "5L85"], torment: ["7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - uproar: ["9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + uproar: ["9M", "9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], uturn: ["9M", "8M", "7M", "6M", "5M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], }, eventData: [ {generation: 5, level: 40, shiny: 1, moves: ["revenge", "aircutter", "extrasensory", "agility"]}, @@ -63532,7 +66447,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M", "7M", "6M", "5M"], brutalswing: ["8M", "7M"], bulkup: ["9M", "8M", "7M", "6M", "5M"], - charge: ["9L30", "8L30", "7L49", "7S4", "7S5", "6L1", "5L55"], + charge: ["9M", "9L30", "8L30", "7L49", "7S4", "7S5", "6L1", "5L55"], chargebeam: ["9M", "7M", "6M", "5M"], confide: ["7M", "6M"], crunch: ["9M", "9L40", "8M", "8L40", "7L43", "7S4", "7S5", "6L49", "6S3", "5L49"], @@ -63543,7 +66458,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M"], electricterrain: ["9M"], electroball: ["9M", "8M"], - electroweb: ["8M", "7T", "6T"], + electroweb: ["9M", "8M", "7T", "6T"], embargo: ["7M", "6M", "5M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M", "5M"], @@ -63561,8 +66476,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "6M", "5M"], incinerate: ["6M", "5M"], irontail: ["8M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], leer: ["9L5", "8L5"], nastyplot: ["9M", "8M", "7L1", "7S4", "7S5", "7S6", "6L1", "5L61"], payback: ["8M", "7M", "6M", "5M"], @@ -63582,14 +66497,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skydrop: ["7M", "6M", "5M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M", "7M", "6M", "5M"], - sludgewave: ["8M", "8S7", "7M", "6M", "5M"], - smackdown: ["7M", "6M", "5M"], + sludgewave: ["9M", "8M", "8S7", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], smartstrike: ["9M", "8M", "7M"], snarl: ["9M"], snore: ["8M", "7T", "6T", "5T"], strength: ["6M", "5M"], substitute: ["9M", "8M", "7M", "6M", "5M"], sunnyday: ["9M"], + supercellslam: ["9M"], superpower: ["8M", "7T", "6T", "5T"], swagger: ["9L10", "8L10", "7M", "7L1", "6M", "6L7", "5M", "5L7"], takedown: ["9M"], @@ -63604,10 +66520,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "8M", "7M", "6M", "5M"], torment: ["7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - uproar: ["9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + uproar: ["9M", "9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], uturn: ["9M", "8M", "7M", "6M", "5M"], voltswitch: ["9M", "9L35", "8M", "8L35", "7M", "6M", "5M"], - weatherball: ["8M", "8S7"], + weatherball: ["9M", "8M", "8S7"], wildboltstorm: ["9L75"], wildcharge: ["9M", "8M", "7M", "6M", "5M", "5S2"], zenheadbutt: ["9M"], @@ -63629,90 +66545,98 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, reshiram: { learnset: { - ancientpower: ["8L1", "7L15", "6L15", "5L15"], - blueflare: ["8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], - bodypress: ["8M"], - breakingswipe: ["8M"], + ancientpower: ["9L1", "8L1", "7L15", "6L15", "5L15"], + blueflare: ["9L88", "8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], confide: ["7M", "6M"], - crunch: ["8M", "8L16", "7L71", "6L71", "5L71"], + crunch: ["9M", "9L16", "8M", "8L16", "7L71", "6L71", "5L71"], cut: ["6M", "5M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dracometeor: ["8T", "7T", "7S6", "6T", "5T", "5S2"], - dragonbreath: ["8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], - dragonclaw: ["8M", "8S7", "7M", "6M", "5M"], - dragondance: ["8M"], - dragonpulse: ["8M", "8L32", "7T", "7L54", "7S4", "7S5", "6T", "6L54", "5T", "5L54", "5S1"], + dracometeor: ["9M", "8T", "7T", "7S6", "6T", "5T", "5S2"], + dragonbreath: ["9L1", "8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "8M", "8S7", "7M", "6M", "5M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L32", "8M", "8L32", "7T", "7L54", "7S4", "7S5", "6T", "6L54", "5T", "5L54", "5S1"], dragonrage: ["7L1", "6L1", "5L1"], - dragontail: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], - earthpower: ["8M", "7T", "7S6", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "7S6", "6T", "5T"], echoedvoice: ["7M", "6M", "5M"], - endure: ["8M"], - extrasensory: ["8L24", "8S7", "7L43", "7S4", "7S5", "6L43", "6S3", "5L43", "5S0", "5S1"], - facade: ["8M", "7M", "6M", "5M"], - fireblast: ["8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], - firefang: ["8M", "8L1", "7L1", "6L1", "5L1"], - flamecharge: ["7M", "6M", "5M"], - flamethrower: ["8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], - flareblitz: ["8M"], - fling: ["8M", "7M", "6M", "5M"], - fly: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + extrasensory: ["9L24", "8L24", "8S7", "7L43", "7S4", "7S5", "6L43", "6S3", "5L43", "5S0", "5S1"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "9L64", "9S8", "8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + firespin: ["9M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L40", "9S8", "8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + flareblitz: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - fusionflare: ["8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], - gigaimpact: ["8M", "7M", "6M", "5M"], - heatcrash: ["8M"], - heatwave: ["8M", "7T", "6T", "5T"], - helpinghand: ["8M"], + fusionflare: ["9L48", "9S8", "8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - hypervoice: ["8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], - imprison: ["8M", "8L72", "7L64", "6L8", "5L8", "5S1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L56", "9S8", "8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + imprison: ["9M", "9L72", "8M", "8L72", "7L64", "6L8", "5L8", "5S1"], incinerate: ["6M", "5M"], laserfocus: ["7T"], - lightscreen: ["8M", "7M", "6M", "5M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], mist: ["5S2"], mysticalfire: ["8M"], - nobleroar: ["8L1", "8S7", "7L64"], - outrage: ["8M", "8L80", "7T", "7L85", "6T", "6L85", "5T", "5L85"], - overheat: ["8M", "7M", "6M", "5M"], + nobleroar: ["9L1", "8L1", "8S7", "7L64"], + outrage: ["9M", "9L80", "8M", "8L80", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + overheat: ["9M", "8M", "7M", "6M", "5M"], payback: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - raindance: ["8M"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], + roar: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roost: ["7M", "6M", "5T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], - scorchingsands: ["8T"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + scorchingsands: ["9M", "8T"], secretpower: ["6M"], - shadowball: ["8M", "7M", "6M", "5M"], - shadowclaw: ["8M", "7M", "6M", "5M"], - slash: ["8L8", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], - sleeptalk: ["8M", "7M", "6M", "5T"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + slash: ["9L8", "8L8", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], - solarbeam: ["8M", "7M", "6M", "5M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], steelwing: ["8M", "7M", "6M"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - tailwind: ["7T", "6T", "5T"], + swift: ["9M", "8M"], + tailwind: ["9M", "7T", "6T", "5T"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - weatherball: ["8M"], - willowisp: ["8M", "7M", "6M", "5M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 50, moves: ["dragonbreath", "slash", "extrasensory", "fusionflare"]}, @@ -63723,95 +66647,110 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["slash", "extrasensory", "fusionflare", "dragonpulse"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["fusionflare", "blueflare", "dracometeor", "earthpower"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["nobleroar", "extrasensory", "fusionflare", "dragonclaw"]}, + {generation: 9, level: 70, moves: ["fireblast", "hypervoice", "fusionflare", "flamethrower"]}, ], eventOnly: true, }, zekrom: { learnset: { - ancientpower: ["8L1", "7L15", "6L15", "5L15"], - bodypress: ["8M"], - boltstrike: ["8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], - breakingswipe: ["8M"], + ancientpower: ["9L1", "8L1", "7L15", "6L15", "5L15"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + boltstrike: ["9L88", "8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], + breakingswipe: ["9M", "8M"], + brickbreak: ["9M"], brutalswing: ["8M", "7M"], - chargebeam: ["7M", "6M", "5M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M"], confide: ["7M", "6M"], - crunch: ["8M", "8L16", "7L71", "6L71", "5L71"], + crunch: ["9M", "9L16", "8M", "8L16", "7L71", "6L71", "5L71"], cut: ["6M", "5M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M", "5M"], - dracometeor: ["8T", "7T", "6T", "5T"], - dragonbreath: ["8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], - dragonclaw: ["8M", "8L32", "8S7", "7M", "7L54", "7S4", "7S5", "6M", "6L54", "5M", "5L54", "5S1"], - dragondance: ["8M"], - dragonpulse: ["8M", "7T", "6T", "5T"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonbreath: ["9L1", "8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L32", "8M", "8L32", "8S7", "7M", "7L54", "7S4", "7S5", "6M", "6L54", "5M", "5L54", "5S1"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T"], dragonrage: ["7L1", "6L1", "5L1"], - dragontail: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], - earthpower: ["8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], echoedvoice: ["7M", "6M", "5M"], - electroball: ["8M"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], flash: ["6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], - fly: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M"], frustration: ["7M", "6M", "5M"], - fusionbolt: ["8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], - gigaimpact: ["8M", "7M", "6M", "5M"], - haze: ["5S2"], - helpinghand: ["8M"], + fusionbolt: ["9L48", "9S8", "8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + haze: ["9M", "5S2"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - hypervoice: ["8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], - imprison: ["8M", "8L72", "7L64", "6L8", "5L8", "5S1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L56", "9S8", "8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + imprison: ["9M", "9L72", "8M", "8L72", "7L64", "6L8", "5L8", "5S1"], laserfocus: ["7T"], - lightscreen: ["8M", "7M", "6M", "5M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], magnetrise: ["7T", "6T", "5T"], - nobleroar: ["8L1", "8S7", "7L64"], - outrage: ["8M", "8L80", "7T", "7L85", "7S6", "6T", "6L85", "5T", "5L85", "5S2"], + nobleroar: ["9L1", "8L1", "8S7", "7L64"], + outrage: ["9M", "9L80", "8M", "8L80", "7T", "7L85", "7S6", "6T", "6L85", "5T", "5L85", "5S2"], payback: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], risingvoltage: ["8T"], - rockslide: ["8M", "7M", "6M", "5M"], + roar: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roost: ["7M", "6M", "5T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], secretpower: ["6M"], - shadowball: ["8M", "7M", "6M", "5M"], - shadowclaw: ["8M", "7M", "6M", "5M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T", "5T"], - slash: ["8L8", "8S7", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], - sleeptalk: ["8M", "7M", "6M", "5T"], + slash: ["9L8", "8L8", "8S7", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["9M"], steelwing: ["8M", "7M", "6M"], - stoneedge: ["8M", "7M", "7S6", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "7S6", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], + supercellslam: ["9M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - tailwind: ["7T", "6T", "5T"], - thunder: ["8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], - thunderbolt: ["8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], - thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1"], - thunderpunch: ["8M", "7T", "6T", "5T"], - thunderwave: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "7T", "6T", "5T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "9L64", "9S8", "8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + thunderbolt: ["9M", "9L40", "9S8", "8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + thunderfang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], toxic: ["7M", "6M", "5M"], - voltswitch: ["8M", "7M", "6M", "5M"], - weatherball: ["8M"], - wildcharge: ["8M", "7M", "6M", "5M"], - zenheadbutt: ["8M", "8L24", "7T", "7L43", "7S4", "7S5", "6T", "6L43", "6S3", "5T", "5L43", "5S0", "5S1"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["9M", "8M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "9L24", "8M", "8L24", "7T", "7L43", "7S4", "7S5", "6T", "6L43", "6S3", "5T", "5L43", "5S0", "5S1"], }, eventData: [ {generation: 5, level: 50, moves: ["dragonbreath", "slash", "zenheadbutt", "fusionbolt"]}, @@ -63822,6 +66761,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["slash", "zenheadbutt", "fusionbolt", "dragonclaw"], pokeball: "cherishball"}, {generation: 7, level: 100, moves: ["fusionbolt", "boltstrike", "outrage", "stoneedge"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["nobleroar", "slash", "fusionbolt", "dragonclaw"]}, + {generation: 9, level: 70, moves: ["thunder", "hypervoice", "fusionbolt", "thunderbolt"]}, ], eventOnly: true, }, @@ -63853,7 +66793,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "6M", "5M"], gigaimpact: ["9M", "8M", "7M", "6M", "5M"], grassknot: ["9M", "8M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], + gravity: ["9M", "7T", "6T", "5T"], hammerarm: ["9L55", "8L55", "7L1", "6L1", "5L79"], hiddenpower: ["7M", "6M", "5M"], hyperbeam: ["9M", "8M", "7M", "6M", "5M"], @@ -63881,14 +66821,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M", "5M"], sandsearstorm: ["9L80"], sandstorm: ["9M", "9L60", "8M", "8L60", "7M", "7L55", "7S4", "6M", "6L61", "5M", "5L61", "5S0"], - sandtomb: ["9L1", "8M", "8L1", "8S5"], + sandtomb: ["9M", "9L1", "8M", "8L1", "8S5"], scaryface: ["9M", "8M"], + scorchingsands: ["9M"], secretpower: ["6M"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M", "7M", "6M", "5T"], sludgebomb: ["9M", "8M", "7M", "6M", "5M"], - sludgewave: ["8M", "7M", "6M", "5M"], - smackdown: ["9L1", "7M", "6M", "5M"], + sludgewave: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M", "9L1", "7M", "6M", "5M"], snore: ["8M", "7T", "6T", "5T"], stealthrock: ["9M", "8M", "7T", "6T", "5T"], stompingtantrum: ["9M"], @@ -63904,7 +66845,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "6M", "5M"], uturn: ["9M", "8M", "7M", "6M", "6S3", "5M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], }, eventData: [ {generation: 5, level: 70, shiny: 1, moves: ["rockslide", "earthquake", "sandstorm", "fissure"]}, @@ -63921,83 +66862,92 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, kyurem: { learnset: { - ancientpower: ["8L1", "7L15", "6L15", "5L15"], - blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], - bodypress: ["8M"], - breakingswipe: ["8M"], + aerialace: ["9M"], + ancientpower: ["9L1", "8L1", "7L15", "6L15", "5L15"], + avalanche: ["9M"], + blizzard: ["9M", "9L56", "9S6", "8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], confide: ["7M", "6M"], cut: ["6M", "5M"], doubleteam: ["7M", "6M", "5M"], - dracometeor: ["8T", "7T", "6T", "6S3", "5T"], - dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], - dragonclaw: ["8M", "7M", "6M", "5M"], - dragondance: ["8M"], - dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dracometeor: ["9M", "8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["9L1", "8L1", "7L29", "6L29", "6S2", "5L29"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L24", "8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], dragonrage: ["7L1", "6L1", "5L1"], - dragontail: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], - earthpower: ["8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], - fly: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - freezedry: ["8L1"], + endeavor: ["9M", "9L16", "8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + freezedry: ["9L1", "8L1"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], - glaciate: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L50", "5S0", "5S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + glaciate: ["9L80", "8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L50", "5S0", "5S1"], hail: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], - icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], - iciclespear: ["8M"], - icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], - imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], - ironhead: ["8M", "7T", "6T", "6S3", "5T"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L40", "9S6", "8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["9M", "9L32", "8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + icefang: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["9M", "9L64", "9S6", "8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["9M", "8M", "7T", "6T", "6S3", "5T"], laserfocus: ["7T"], - lightscreen: ["8M", "7M", "6M", "5M"], - nobleroar: ["8L1", "7L64"], - outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + nobleroar: ["9L1", "8L1", "7L64"], + outrage: ["9M", "9L72", "8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], payback: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], + roar: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roost: ["7M", "6M", "5T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], - scaryface: ["8M", "8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L43", "5S1"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L48", "9S6", "8M", "8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L43", "5S1"], secretpower: ["6M"], - shadowball: ["8M", "8S5", "7M", "6M", "5M"], - shadowclaw: ["8M", "7M", "6M", "5M"], - sheercold: ["8L88"], + shadowball: ["9M", "8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + sheercold: ["9L88", "8L88"], signalbeam: ["7T", "6T", "5T"], - slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], - sleeptalk: ["8M", "7M", "6M", "5T"], + slash: ["9L8", "8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], steelwing: ["8M", "7M", "6M"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - weatherball: ["8M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + weatherball: ["9M", "8M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 75, shiny: 1, moves: ["glaciate", "dragonpulse", "imprison", "endeavor"]}, @@ -64006,89 +66956,99 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, moves: ["glaciate", "scaryface", "dracometeor", "ironhead"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["slash", "scaryface", "glaciate", "dragonpulse"]}, {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "scaryface"]}, + {generation: 9, level: 70, moves: ["imprison", "blizzard", "scaryface", "hypervoice"]}, ], eventOnly: true, }, kyuremblack: { learnset: { - ancientpower: ["8L1", "7L15", "6L15", "5L15"], - blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], - bodypress: ["8M"], - breakingswipe: ["8M"], + aerialace: ["9M"], + ancientpower: ["9L1", "8L1", "7L15", "6L15", "5L15"], + avalanche: ["9M"], + blizzard: ["9M", "9L56", "9S6", "8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], confide: ["7M", "6M"], cut: ["6M", "5M"], doubleteam: ["7M", "6M", "5M"], - dracometeor: ["8T", "7T", "6T", "6S3", "5T"], - dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], - dragonclaw: ["8M", "7M", "6M", "5M"], - dragondance: ["8M"], - dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dracometeor: ["9M", "8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["9L1", "8L1", "7L29", "6L29", "6S2", "5L29"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L24", "8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], dragonrage: ["7L1", "6L1", "5L1"], - dragontail: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], - earthpower: ["8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], - fly: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - freezedry: ["8L1"], - freezeshock: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], + endeavor: ["9M", "9L16", "8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + freezedry: ["9L1", "8L1"], + freezeshock: ["9L80", "8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], frustration: ["7M", "6M", "5M"], - fusionbolt: ["8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L50", "5S1"], - gigaimpact: ["8M", "7M", "6M", "5M"], + fusionbolt: ["9L48", "9S6", "8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L43", "5S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], hail: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], - icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], - iciclespear: ["8M"], - icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], - imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], - ironhead: ["8M", "7T", "6T", "6S3", "5T"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L40", "9S6", "8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["9M", "9L32", "8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + icefang: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["9M", "9L64", "9S6", "8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["9M", "8M", "7T", "6T", "6S3", "5T"], laserfocus: ["7T"], - lightscreen: ["8M", "7M", "6M", "5M"], - nobleroar: ["8L1", "7L64"], - outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + nobleroar: ["9L1", "8L1", "7L64"], + outrage: ["9M", "9L72", "8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], payback: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], + roar: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roost: ["7M", "6M", "5T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], - scaryface: ["8M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M"], secretpower: ["6M"], - shadowball: ["8M", "8S5", "7M", "6M", "5M"], - shadowclaw: ["8M", "7M", "6M", "5M"], - sheercold: ["8L88"], + shadowball: ["9M", "8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + sheercold: ["9L88", "8L88"], signalbeam: ["7T", "6T", "5T"], - slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], - sleeptalk: ["8M", "7M", "6M", "5T"], + slash: ["9L8", "8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], steelwing: ["8M", "7M", "6M"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - weatherball: ["8M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + weatherball: ["9M", "8M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 75, shiny: 1, moves: ["freezeshock", "dragonpulse", "imprison", "endeavor"]}, @@ -64097,89 +67057,99 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, moves: ["freezeshock", "fusionbolt", "dracometeor", "ironhead"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["slash", "fusionbolt", "freezeshock", "dragonpulse"]}, {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "fusionbolt"]}, + {generation: 9, level: 70, moves: ["imprison", "blizzard", "fusionbolt", "hypervoice"]}, ], eventOnly: true, }, kyuremwhite: { learnset: { - ancientpower: ["8L1", "7L15", "6L15", "5L15"], - blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], - bodypress: ["8M"], - breakingswipe: ["8M"], + aerialace: ["9M"], + ancientpower: ["9L1", "8L1", "7L15", "6L15", "5L15"], + avalanche: ["9M"], + blizzard: ["9M", "9L56", "9S6", "8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], confide: ["7M", "6M"], cut: ["6M", "5M"], doubleteam: ["7M", "6M", "5M"], - dracometeor: ["8T", "7T", "6T", "6S3", "5T"], - dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], - dragonclaw: ["8M", "7M", "6M", "5M"], - dragondance: ["8M"], - dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dracometeor: ["9M", "8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["9L1", "8L1", "7L29", "6L29", "6S2", "5L29"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L24", "8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], dragonrage: ["7L1", "6L1", "5L1"], - dragontail: ["7M", "6M", "5M"], - dualwingbeat: ["8T"], - earthpower: ["8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], echoedvoice: ["7M", "6M", "5M"], - endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - flashcannon: ["8M", "7M", "6M", "5M"], - fling: ["8M", "7M", "6M", "5M"], - fly: ["8M", "7M", "6M", "5M"], - focusblast: ["8M", "7M", "6M", "5M"], - freezedry: ["8L1"], + endeavor: ["9M", "9L16", "8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + freezedry: ["9L1", "8L1"], frustration: ["7M", "6M", "5M"], - fusionflare: ["8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L50", "5S1"], - gigaimpact: ["8M", "7M", "6M", "5M"], + fusionflare: ["9L48", "9S6", "8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L43", "5S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], hail: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], - hyperbeam: ["8M", "7M", "6M", "5M"], - hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], - icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], - iceburn: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], - iciclespear: ["8M"], - icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], - imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], - ironhead: ["8M", "7T", "6T", "6S3", "5T"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L40", "9S6", "8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["9M", "9L32", "8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + iceburn: ["9L80", "8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], + icefang: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["9M", "9L64", "9S6", "8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["9M", "8M", "7T", "6T", "6S3", "5T"], laserfocus: ["7T"], - lightscreen: ["8M", "7M", "6M", "5M"], - nobleroar: ["8L1", "7L64"], - outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + nobleroar: ["9L1", "8L1", "7L64"], + outrage: ["9M", "9L72", "8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], payback: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychic: ["8M", "7M", "6M", "5M"], - raindance: ["8M", "7M", "6M", "5M"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], return: ["7M", "6M", "5M"], - rockslide: ["8M", "7M", "6M", "5M"], + roar: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], - rocktomb: ["8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], roost: ["7M", "6M", "5T"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M"], - scaleshot: ["8T"], - scaryface: ["8M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M"], secretpower: ["6M"], - shadowball: ["8M", "8S5", "7M", "6M", "5M"], - shadowclaw: ["8M", "7M", "6M", "5M"], - sheercold: ["8L88"], + shadowball: ["9M", "8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + sheercold: ["9L88", "8L88"], signalbeam: ["7T", "6T", "5T"], - slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], - sleeptalk: ["8M", "7M", "6M", "5T"], + slash: ["9L8", "8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], steelwing: ["8M", "7M", "6M"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - weatherball: ["8M"], - zenheadbutt: ["8M", "7T", "6T", "5T"], + weatherball: ["9M", "8M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], }, eventData: [ {generation: 5, level: 75, shiny: 1, moves: ["iceburn", "dragonpulse", "imprison", "endeavor"]}, @@ -64188,84 +67158,93 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, moves: ["iceburn", "fusionflare", "dracometeor", "ironhead"], pokeball: "cherishball"}, {generation: 7, level: 60, shiny: 1, moves: ["slash", "fusionflare", "iceburn", "dragonpulse"]}, {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "fusionflare"]}, + {generation: 9, level: 70, moves: ["imprison", "blizzard", "fusionflare", "hypervoice"]}, ], eventOnly: true, }, keldeo: { learnset: { - aerialace: ["7M", "6M", "5M"], - airslash: ["8M"], - aquajet: ["8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0", "5S1"], - aquatail: ["8L35", "7T", "7L37", "6T", "6L37", "5T", "5L37"], - aurasphere: ["8M"], + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M", "8M"], + aquajet: ["9L1", "8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0", "5S1"], + aquatail: ["9L35", "8L35", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + aurasphere: ["9M", "8M"], + batonpass: ["9M"], bounce: ["8M", "7T", "6T", "5T"], - brickbreak: ["8M"], - bubblebeam: ["8L7", "7L1", "6L13", "6S3", "5L13", "5S0"], - calmmind: ["8M", "7M", "6M", "5M"], - closecombat: ["8M", "8L70", "7L73", "6L73", "5L73"], - coaching: ["8T"], + brickbreak: ["9M", "8M"], + bubblebeam: ["9L7", "8L7", "7L1", "6L13", "6S3", "5L13", "5S0"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L70", "8M", "8L70", "7L73", "6L73", "5L73"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], covet: ["7T", "6T", "5T"], cut: ["6M", "5M"], - doublekick: ["8L21", "7L1", "6L7", "6S2", "6S3", "5L7", "5S0"], + doubleedge: ["9M"], + doublekick: ["9L21", "8L21", "7L1", "6L7", "6S2", "6S3", "5L7", "5S0"], doubleteam: ["7M", "6M", "5M"], endeavor: ["7T", "6T", "5T"], - endure: ["8M"], - facade: ["8M", "7M", "6M", "5M"], - falseswipe: ["8M", "7M", "6M", "5M"], - flipturn: ["8T"], - focusblast: ["8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + flipturn: ["9M", "8T"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], frustration: ["7M", "6M", "5M"], - gigaimpact: ["8M", "7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], hail: ["8M", "7M", "6M", "5M"], - helpinghand: ["8M", "8L1", "7T", "7L25", "6T", "6L25", "5T", "5L25"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L25", "6T", "6L25", "5T", "5L25"], hiddenpower: ["7M", "6M", "5M"], - hydropump: ["8M", "8L63", "8S4", "7L67", "6L67", "6S2", "5L67", "5S1"], - hyperbeam: ["8M", "7M", "6M", "5M"], - icywind: ["8M", "7T", "6T", "5T"], + hydropump: ["9M", "9L63", "8M", "8L63", "8S4", "7L67", "6L67", "6S2", "5L67", "5S1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icywind: ["9M", "8M", "7T", "6T", "5T"], lastresort: ["7T", "6T", "5T"], - leer: ["8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0"], - liquidation: ["8M", "7T"], - lowkick: ["8M", "7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0"], + liquidation: ["9M", "8M", "7T"], + lowkick: ["9M", "8M", "7T"], megahorn: ["8M"], - muddywater: ["8M"], - poisonjab: ["8M", "7M", "6M", "5M"], - protect: ["8M", "7M", "6M", "5M"], - psychup: ["7M", "6M", "5M"], - quickguard: ["8L14", "7L55", "6L55", "5L55"], - raindance: ["8M", "7M", "6M", "5M"], - reflect: ["8M", "7M", "6M", "5M"], - rest: ["8M", "7M", "6M", "5M"], - retaliate: ["8M", "8L28", "7L31", "6M", "6L31", "5M", "5L31"], + muddywater: ["9M", "8M"], + painsplit: ["9M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["9M", "7M", "6M", "5M"], + quickguard: ["9L14", "8L14", "7L55", "6L55", "5L55"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L28", "8M", "8L28", "7L31", "6M", "6L31", "5M", "5L31"], return: ["7M", "6M", "5M"], revenge: ["8M"], - reversal: ["8M"], - roar: ["7M", "6M", "5M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "6M", "5M"], rocksmash: ["6M", "5M"], round: ["8M", "7M", "6M", "5M"], - sacredsword: ["8L49", "8S4", "7L43", "6L43", "5L43", "5S1"], + sacredsword: ["9L49", "8L49", "8S4", "7L43", "6L43", "5L43", "5S1"], safeguard: ["8M", "7M", "6M", "5M"], scald: ["8M", "7M", "6M", "5M"], secretpower: ["6M"], - secretsword: ["8L1", "8S4", "7T", "6T", "5T"], - sleeptalk: ["8M", "7M", "6M", "5T"], - smartstrike: ["8M"], + secretsword: ["9L1", "8L1", "8S4", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smartstrike: ["9M", "8M"], snore: ["8M", "7T", "6T", "5T"], - stoneedge: ["8M", "7M", "6M", "5M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], strength: ["6M", "5M"], - substitute: ["8M", "7M", "6M", "5M"], - sunnyday: ["8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M"], superpower: ["8M", "7T", "6T", "5T"], - surf: ["8M", "7M", "6M", "5M"], + surf: ["9M", "8M", "7M", "6M", "5M"], swagger: ["7M", "6M", "5M"], - swift: ["8M"], - swordsdance: ["8M", "8L56", "8S4", "7M", "7L49", "6M", "6L49", "5M", "5L49", "5S1"], - takedown: ["8L42", "7L19", "6L19", "5L19"], - taunt: ["8M", "7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L56", "8M", "8L56", "8S4", "7M", "7L49", "6M", "6L49", "5M", "5L49", "5S1"], + takedown: ["9M", "9L42", "8L42", "7L19", "6L19", "5L19"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], toxic: ["7M", "6M", "5M"], - waterpulse: ["7T", "6T"], - workup: ["8M", "8L1", "7M", "7L61", "6L61", "5M", "5L61"], - xscissor: ["8M", "7M", "6M", "5M"], + trailblaze: ["9M"], + upperhand: ["9M"], + vacuumwave: ["9M"], + waterpulse: ["9M", "7T", "6T"], + workup: ["9L1", "8M", "8L1", "7M", "7L61", "6L61", "5M", "5L61"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], }, eventData: [ {generation: 5, level: 15, moves: ["aquajet", "leer", "doublekick", "bubblebeam"], pokeball: "cherishball"}, @@ -64282,6 +67261,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { meloetta: { learnset: { acrobatics: ["9M", "9L26", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + alluringvoice: ["9M"], allyswitch: ["7T"], batonpass: ["9M"], brickbreak: ["9M", "7M", "6M", "5M"], @@ -64290,6 +67270,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["7M", "6M", "5M"], charm: ["9M"], closecombat: ["9M", "9L78", "7L78", "7S2", "6L78", "5L78", "5S1"], + coaching: ["9M"], confide: ["7M", "6M"], confusion: ["9L1", "7L1", "6L11", "5L11", "5S0"], covet: ["7T", "6T", "5T"], @@ -64299,7 +67280,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { drainpunch: ["9M", "7T", "6T", "5T"], dreameater: ["7M", "6M", "5M"], dualchop: ["7T", "6T", "5T"], - echoedvoice: ["9L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + echoedvoice: ["9L36", "9S5", "7M", "7L36", "6M", "6L36", "5M", "5L36"], embargo: ["7M", "6M", "5M"], endure: ["9M"], energyball: ["9M", "7M", "6M", "5M"], @@ -64309,19 +67290,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M"], fling: ["9M", "7M", "6M", "5M"], focusblast: ["9M", "7M", "6M", "5M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M", "5M"], gigaimpact: ["9M", "7M", "6M", "5M"], grassknot: ["9M", "7M", "6M", "5M"], - gravity: ["7T", "6T", "5T"], + gravity: ["9M", "7T", "6T", "5T"], healbell: ["7T", "6T", "5T"], helpinghand: ["9M", "7T", "6T", "5T"], hiddenpower: ["7M", "6M", "5M"], honeclaws: ["6M", "5M"], hyperbeam: ["9M", "7M", "6M", "5M"], - hypervoice: ["9M", "9L64", "7T", "7L64", "6T", "6L64", "5T", "5L64"], + hypervoice: ["9M", "9L64", "9S4", "7T", "7L64", "6T", "6L64", "5T", "5L64"], icepunch: ["9M", "7T", "6T", "5T"], - knockoff: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], laserfocus: ["7T"], lastresort: ["7T", "6T", "5T"], lightscreen: ["9M", "7M", "6M", "5M"], @@ -64335,14 +67316,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { playrough: ["9M"], poweruppunch: ["6M"], protect: ["9M", "7M", "6M", "5M"], - psybeam: ["9M", "9L31", "7L31", "6L31", "5L31"], - psychic: ["9M", "9L57", "7M", "7L57", "7S2", "6M", "6L57", "5M", "5L57", "5S1"], - psychup: ["7M", "6M", "5M"], + psybeam: ["9M", "9L31", "9S5", "7L31", "6L31", "5L31"], + psychic: ["9M", "9L57", "9S4", "7M", "7L57", "7S2", "6M", "6L57", "5M", "5L57", "5S1"], + psychup: ["9M", "7M", "6M", "5M"], psyshock: ["9M", "7M", "6M", "5M"], quickattack: ["9L1", "7L1", "6L6", "5L6", "5S0"], raindance: ["9M", "7M", "6M", "5M"], recycle: ["7T", "6T", "5T"], - relicsong: ["9L50", "7T", "7S3", "6T", "5T"], + relicsong: ["9L50", "9S4", "9S5", "7T", "7S3", "6T", "5T"], rest: ["9M", "7M", "6M", "5M"], retaliate: ["6M", "5M"], return: ["7M", "6M", "5M"], @@ -64356,7 +67337,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "7M", "6M", "5M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T", "5T"], - sing: ["9L1", "7L1", "7S2", "7S3", "6L16", "5L16"], + sing: ["9L1", "9S4", "9S5", "7L1", "7S2", "7S3", "6L16", "5L16"], skillswap: ["9M", "7T", "6T", "5T"], sleeptalk: ["9M", "7M", "6M", "5T"], snatch: ["7T", "6T", "5T"], @@ -64378,6 +67359,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M", "5M"], trick: ["9M", "7T", "6T", "5T"], trickroom: ["9M", "7M", "6M", "5M"], + tripleaxel: ["9M"], uproar: ["7T", "6T", "5T"], uturn: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L43"], wakeupslap: ["7L50", "6L50", "5L50"], @@ -64390,6 +67372,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 5, level: 50, moves: ["round", "teeterdance", "psychic", "closecombat"], pokeball: "cherishball"}, {generation: 7, level: 15, moves: ["sing", "psychic", "closecombat"], pokeball: "cherishball"}, {generation: 7, level: 50, moves: ["sing", "celebrate", "round", "relicsong"], pokeball: "cherishball"}, + {generation: 9, level: 70, moves: ["relicsong", "hypervoice", "sing", "psychic"]}, + {generation: 9, level: 50, shiny: true, nature: "Modest", ivs: {hp: 20, atk: 20, def: 20, spa: 31, spd: 31, spe: 31}, moves: ["relicsong", "echoedvoice", "psybeam", "sing"], pokeball: "cherishball"}, ], eventOnly: true, }, @@ -64511,24 +67495,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "7M", "6M"], bulletseed: ["9M"], confide: ["7M", "6M"], - curse: ["9E", "7E", "6E"], + curse: ["9M", "9E", "7E", "6E"], cut: ["6M"], defensecurl: ["7E", "6E"], dig: ["9M", "6M"], doubleteam: ["7M", "6M"], drainpunch: ["9M", "7T", "6T"], dualchop: ["7T", "6T"], - endeavor: ["7T", "6T"], + endeavor: ["9M", "7T", "6T"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], flash: ["6M"], fling: ["9M", "7M", "6M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M"], gigadrain: ["9M", "7T", "6T"], grassknot: ["9M", "7M", "6M"], grasspledge: ["9M", "7T", "6T"], + grassyglide: ["9M"], grassyterrain: ["9M"], growl: ["9L1", "7L1", "6L1"], gyroball: ["7M", "6M"], @@ -64545,7 +67530,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { metalclaw: ["9M"], mudshot: ["9M", "9L35", "7L35", "6L35"], naturepower: ["7M", "6M"], - painsplit: ["9L45", "7T", "7L45", "6T", "6L45"], + painsplit: ["9M", "9L45", "7T", "7L45", "6T", "6L45"], payback: ["7M", "6M"], pinmissile: ["9L18", "7L18", "6L18"], poisonjab: ["9M", "7M", "6M"], @@ -64557,7 +67542,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "6M"], retaliate: ["6M"], return: ["7M", "6M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rockslide: ["9M", "7M", "6M"], rocksmash: ["6M"], rocktomb: ["9M", "7M", "6M"], @@ -64577,7 +67562,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["6M"], substitute: ["9M", "7M", "6M"], sunnyday: ["9M", "7M", "6M"], - superfang: ["9E", "7T", "6T"], + superfang: ["9M", "9E", "7T", "6T"], superpower: ["7T", "6T"], swagger: ["7M", "6M"], swift: ["9M"], @@ -64609,25 +67594,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "7M", "6M"], bulletseed: ["9M"], confide: ["7M", "6M"], + curse: ["9M"], cut: ["6M"], dig: ["9M", "6M"], doubleteam: ["7M", "6M"], drainpunch: ["9M", "7T", "6T"], dualchop: ["7T", "6T"], - endeavor: ["7T", "6T"], + endeavor: ["9M", "7T", "6T"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], flash: ["6M"], fling: ["9M", "7M", "6M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M"], gigadrain: ["9M", "7T", "6T"], grassknot: ["9M", "7M", "6M"], grasspledge: ["9M", "7T", "6T"], + grassyglide: ["9M"], grassyterrain: ["9M"], growl: ["9L1", "7L1", "6L1"], - gyroball: ["7M", "6M"], + gyroball: ["9M", "7M", "6M"], helpinghand: ["9M", "7T", "6T"], hiddenpower: ["7M", "6M"], honeclaws: ["6M"], @@ -64643,7 +67630,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M", "9L34", "7L39", "6L39"], naturepower: ["7M", "6M"], needlearm: ["7L1", "6L26"], - painsplit: ["9L47", "7T", "7L52", "6T", "6L52"], + painsplit: ["9M", "9L47", "7T", "7L52", "6T", "6L52"], payback: ["7M", "6M"], pinmissile: ["9L24", "7L19", "6L20"], poisonjab: ["9M", "7M", "6M"], @@ -64654,7 +67641,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "6M"], retaliate: ["6M"], return: ["7M", "6M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rockslide: ["9M", "7M", "6M"], rocksmash: ["6M"], rocktomb: ["9M", "7M", "6M"], @@ -64674,7 +67661,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["6M"], substitute: ["9M", "7M", "6M"], sunnyday: ["9M", "7M", "6M"], - superfang: ["7T", "6T"], + superfang: ["9M", "7T", "6T"], superpower: ["7T", "6T"], swagger: ["7M", "6M"], swift: ["9M"], @@ -64708,16 +67695,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "7M", "6M"], bulletseed: ["9M"], closecombat: ["9M"], + coaching: ["9M"], confide: ["7M", "6M"], crunch: ["9M"], + curse: ["9M"], cut: ["6M"], dig: ["9M", "6M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], dragonclaw: ["9M", "7M", "6M"], drainpunch: ["9M", "7T", "6T"], dualchop: ["7T", "6T"], earthquake: ["9M", "7M", "6M"], - endeavor: ["7T", "6T"], + endeavor: ["9M", "7T", "6T"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], @@ -64725,24 +67715,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M"], fling: ["9M", "7M", "6M"], focusblast: ["9M", "7M", "6M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frenzyplant: ["9M", "7T", "6T"], frustration: ["7M", "6M"], gigadrain: ["9M", "7T", "6T"], gigaimpact: ["9M", "9L78", "7M", "7L78", "6M", "6L70"], grassknot: ["9M", "7M", "6M"], grasspledge: ["9M", "7T", "6T"], + grassyglide: ["9M"], grassyterrain: ["9M"], growl: ["9L1", "7L1", "6L1"], - gyroball: ["7M", "6M"], + gyroball: ["9M", "7M", "6M"], hammerarm: ["9L1", "7L1", "6L1"], helpinghand: ["9M", "7T", "6T"], hiddenpower: ["7M", "6M"], + highhorsepower: ["9M"], honeclaws: ["6M"], hyperbeam: ["9M", "7M", "6M"], irondefense: ["9M", "7T", "6T"], ironhead: ["9M", "7T", "6T"], irontail: ["7T", "6T"], + knockoff: ["9M"], leafstorm: ["9M"], leechseed: ["9L15", "7L15", "6L15"], lowkick: ["9M", "7T", "6T"], @@ -64753,7 +67746,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["9M"], naturepower: ["7M", "6M"], needlearm: ["7L1", "6L26"], - painsplit: ["9L60", "7T", "7L60", "6T", "6L52"], + painsplit: ["9M", "9L60", "7T", "7L60", "6T", "6L52"], payback: ["7M", "6M"], pinmissile: ["9L19", "7L19", "6L20"], poisonjab: ["9M", "7M", "6M"], @@ -64765,7 +67758,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["6M"], return: ["7M", "6M"], reversal: ["9M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rockslide: ["9M", "7M", "6M"], rocksmash: ["6M"], rocktomb: ["9M", "7M", "6M"], @@ -64777,7 +67770,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "7M", "6M"], sleeptalk: ["9M", "7M", "6M"], sludgebomb: ["7M", "6M"], - smackdown: ["7M", "6M"], + smackdown: ["9M", "7M", "6M"], snore: ["7T", "6T"], solarbeam: ["9M", "7M", "6M"], spikes: ["9M"], @@ -64787,7 +67780,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["6M"], substitute: ["9M", "7M", "6M"], sunnyday: ["9M", "7M", "6M"], - superfang: ["7T", "6T"], + superfang: ["9M", "7T", "6T"], superpower: ["7T", "6T"], swagger: ["7M", "6M"], swift: ["9M"], @@ -64811,6 +67804,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { agility: ["9M"], attract: ["7M", "6M"], + burningjealousy: ["9M"], calmmind: ["9M"], charm: ["9M"], confide: ["7M", "6M"], @@ -64892,6 +67886,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M"], allyswitch: ["7T"], attract: ["7M", "6M"], + burningjealousy: ["9M"], calmmind: ["9M"], charm: ["9M"], confide: ["7M", "6M"], @@ -64978,6 +67973,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["7T"], attract: ["7M", "6M"], blastburn: ["9M", "7T", "6T"], + burningjealousy: ["9M"], calmmind: ["9M", "7M", "6M"], charm: ["9M"], confide: ["7M", "6M"], @@ -64992,6 +67988,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ember: ["9L1", "7L1", "6L5"], encore: ["9M"], endure: ["9M"], + expandingforce: ["9M"], facade: ["9M", "7M", "6M"], fireblast: ["9M", "9L74", "7M", "7L74", "6M", "6L61"], firepledge: ["9M", "7T", "6T"], @@ -65003,7 +68000,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusblast: ["9M"], foulplay: ["9M", "7T", "6T"], frustration: ["7M", "6M"], - futuresight: ["9L1", "7L1", "6L1"], + futuresight: ["9M", "9L1", "7L1", "6L1"], gigaimpact: ["9M", "7M", "6M"], grassknot: ["9M", "7M", "6M"], heatwave: ["9M", "7T", "6T"], @@ -65033,8 +68030,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "7M", "6M"], psybeam: ["9M", "9L18", "7L18", "6L18"], psychic: ["9M", "9L57", "7M", "7L57", "6M", "6L51"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["7M", "6M"], + psychup: ["9M", "7M", "6M"], psyshock: ["9M", "9L38", "7M", "7L38", "6M", "6L34"], raindance: ["9M", "7M", "6M"], recycle: ["7T", "6T"], @@ -65044,6 +68042,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { roleplay: ["9L1", "7T", "7L1", "6T", "6L1"], round: ["7M", "6M"], safeguard: ["7M", "6M"], + scorchingsands: ["9M"], scratch: ["9L1", "7L1", "6L1"], secretpower: ["6M"], shadowball: ["9M", "9L1", "7M", "7L1", "6M", "6L1"], @@ -65127,7 +68126,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["7M", "6M"], secretpower: ["6M"], sleeptalk: ["9M", "7M", "6M"], - smackdown: ["9L29", "7M", "7L29", "6M", "6L29"], + smackdown: ["9M", "9L29", "7M", "7L29", "6M", "6L29"], smokescreen: ["9L18", "7L18", "6L18"], snatch: ["7T", "6T"], snore: ["7T", "6T"], @@ -65209,7 +68208,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["7M", "6M"], secretpower: ["6M"], sleeptalk: ["9M", "7M", "6M"], - smackdown: ["9L33", "7M", "7L33", "6M", "6L33"], + smackdown: ["9M", "9L33", "7M", "7L33", "6M", "6L33"], smokescreen: ["9L19", "7L19", "6L20"], snatch: ["7T", "6T"], snore: ["7T", "6T"], @@ -65267,7 +68266,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { growl: ["9L1", "7L1", "6L1"], gunkshot: ["9M", "7T", "6T", "6S1"], happyhour: ["6S1"], - haze: ["9L1", "7L1", "6L56"], + haze: ["9M", "9L1", "7L1", "6L56"], helpinghand: ["9M"], hiddenpower: ["7M", "6M"], hydrocannon: ["9M", "7T", "6T", "6S1"], @@ -65300,7 +68299,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M"], shadowsneak: ["9L23", "7L23", "6L23", "6S0"], sleeptalk: ["9M", "7M", "6M"], - smackdown: ["7M", "6M"], + sludgewave: ["9M"], + smackdown: ["9M", "7M", "6M"], smokescreen: ["9L19", "7L19", "6L20"], snatch: ["7T", "6T"], snore: ["7T", "6T"], @@ -65320,12 +68320,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M"], toxicspikes: ["9M"], trailblaze: ["9M"], + upperhand: ["9M"], uturn: ["9M", "7M", "6M"], waterfall: ["9M", "7M", "6M"], watergun: ["9L1"], waterpledge: ["9M", "7T", "6T"], waterpulse: ["9M", "9L14", "7T", "7L14", "6T", "6L14"], watershuriken: ["9L0", "7L1", "6L36", "6S0"], + weatherball: ["9M"], workup: ["7M"], }, eventData: [ @@ -65333,9 +68335,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, isHidden: true, moves: ["hydrocannon", "gunkshot", "matblock", "happyhour"], pokeball: "cherishball"}, ], }, - greninjaash: { + greninjabond: { learnset: { - acrobatics: ["7M"], + acrobatics: ["9M", "7M"], aerialace: ["9M", "9L33", "7M", "7S0"], attract: ["7M"], blizzard: ["9M", "7M"], @@ -65360,7 +68362,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { grassknot: ["9M", "7M"], growl: ["9L1", "7L1"], gunkshot: ["9M", "7T"], - haze: ["9L1", "7L1"], + haze: ["9M", "9L1", "7L1"], helpinghand: ["9M"], hiddenpower: ["7M"], hydrocannon: ["9M", "7T"], @@ -65390,7 +68392,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["7M"], shadowsneak: ["9L23", "7L23"], sleeptalk: ["9M", "7M"], - smackdown: ["7M"], + sludgewave: ["9M"], + smackdown: ["9M", "7M"], smokescreen: ["9L19", "7L19"], snatch: ["7T"], snore: ["7T"], @@ -65401,6 +68404,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { surf: ["9M", "7M"], swagger: ["7M"], swift: ["9M"], + switcheroo: ["9E"], swordsdance: ["9M"], takedown: ["9M"], taunt: ["9M", "7M"], @@ -65409,12 +68413,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M"], toxicspikes: ["9M"], trailblaze: ["9M"], + upperhand: ["9M"], uturn: ["9M", "7M"], waterfall: ["9M", "7M"], watergun: ["9L1"], waterpledge: ["9M", "7T"], waterpulse: ["9M", "9L14", "7T", "7L14"], watershuriken: ["9L0", "7L1", "7S0"], + weatherball: ["9M"], workup: ["7M"], }, eventData: [ @@ -65594,11 +68600,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bravebird: ["9M"], confide: ["7M", "6M"], defog: ["9E", "8E", "7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], ember: ["9L10", "8L10"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], + featherdance: ["9M"], flail: ["9L15", "8L15", "7L16", "6L16"], flamecharge: ["9M", "9E", "8E", "7M", "7L34", "6M", "6L34"], flareblitz: ["9M"], @@ -65654,11 +68662,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bravebird: ["9M"], confide: ["7M", "6M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], ember: ["9L1", "8L1", "7L1", "6L17"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], + featherdance: ["9M"], feint: ["9L1", "8L1"], fireblast: ["9M", "8M", "7M", "6M"], firespin: ["9M", "8M"], @@ -65699,6 +68709,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwind: ["9M", "9L43", "8L43", "7T", "7L51", "6T", "6L51"], takedown: ["9M"], taunt: ["9M", "8M", "7M", "6M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M"], toxic: ["7M", "6M"], @@ -65722,11 +68733,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M", "8M", "7M", "6M"], confide: ["7M", "6M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], ember: ["9L1", "8L1", "7L1", "6L17"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], + featherdance: ["9M"], feint: ["9L1", "8L1"], fireblast: ["9M", "8M", "7M", "6M"], firespin: ["9M", "8M"], @@ -65771,9 +68784,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwind: ["9M", "9L47", "8L47", "7T", "7L55", "6T", "6L55"], takedown: ["9M"], taunt: ["9M", "8M", "7M", "6M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "6M"], toxic: ["7M", "6M"], + upperhand: ["9M"], uturn: ["9M", "8M", "7M", "6M"], willowisp: ["9M", "8M", "7M", "6M"], workup: ["8M", "7M"], @@ -65781,7 +68796,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, scatterbug: { learnset: { - bugbite: ["9L15", "7T", "7L15", "6T", "6L15"], + bugbite: ["9M", "9L15", "7T", "7L15", "6T", "6L15"], poisonpowder: ["9E", "7E", "6E"], pounce: ["9M"], ragepowder: ["9E", "7E", "6E"], @@ -65794,7 +68809,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, spewpa: { learnset: { - bugbite: ["7T", "6T"], + bugbite: ["9M", "7T", "6T"], electroweb: ["7T", "6T"], harden: ["9L1", "7L1", "6L1"], irondefense: ["9M", "7T", "6T"], @@ -65812,7 +68827,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { airslash: ["9M"], aromatherapy: ["7L31", "6L31"], attract: ["7M", "6M"], - bugbite: ["7T", "6T"], + bugbite: ["9M", "7T", "6T"], bugbuzz: ["9M", "9L35", "7L35", "6L35"], calmmind: ["7M", "6M"], confide: ["7M", "6M"], @@ -65855,6 +68870,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { safeguard: ["9L31", "7M", "7L41", "6M", "6L41"], secretpower: ["6M"], signalbeam: ["7T", "6T"], + skittersmack: ["9M"], sleeppowder: ["9L1", "7L1", "6L1"], sleeptalk: ["9M", "7M", "6M"], snore: ["7T", "6T"], @@ -65871,6 +68887,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "7M", "6M"], toxic: ["7M", "6M"], uturn: ["9M", "7M", "6M"], + weatherball: ["9M"], }, }, vivillonfancy: { @@ -66029,10 +69046,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L39", "7L39", "6L39"], darkpulse: ["7M", "6M"], dig: ["9M", "6M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], echoedvoice: ["9L33", "7M", "7L33", "6M", "6L33"], ember: ["9L5", "7L5", "6L5"], - endeavor: ["9L28", "7T", "7L28", "6T", "6L28"], + endeavor: ["9M", "9L28", "7T", "7L28", "6T", "6L28"], endure: ["9M"], entrainment: ["9E", "7E", "6E"], facade: ["9M", "7M", "6M"], @@ -66061,7 +69079,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "6M"], retaliate: ["6M"], return: ["7M", "6M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rocksmash: ["6M"], round: ["7M", "6M"], secretpower: ["6M"], @@ -66096,14 +69114,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], bounce: ["7T", "6T"], bulldoze: ["9M", "7M", "6M"], + burningjealousy: ["9M"], confide: ["7M", "6M"], crunch: ["9M", "9L42", "7L42", "6L42"], darkpulse: ["9M", "7M", "6M", "6S0"], dig: ["9M", "6M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], echoedvoice: ["9L33", "7M", "7L33", "6M", "6L33"], ember: ["9L1", "7L1", "6L5"], - endeavor: ["9L28", "7T", "7L28", "6T", "6L28"], + endeavor: ["9M", "9L28", "7T", "7L28", "6T", "6L28"], endure: ["9M"], facade: ["9M", "7M", "6M"], fireblast: ["9M", "7M", "6M", "6S0"], @@ -66133,7 +69153,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "6M"], retaliate: ["6M"], return: ["7M", "6M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rocksmash: ["6M"], round: ["7M", "6M"], secretpower: ["6M"], @@ -66150,6 +69170,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "7L1", "6L1"], takedown: ["9M", "9L20", "7L20", "6L20"], taunt: ["9M", "7M", "6M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "7M", "6M"], thunderfang: ["9M"], @@ -66169,6 +69190,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flabebe: { learnset: { afteryou: ["7T", "6T"], + alluringvoice: ["9M"], allyswitch: ["7T"], aromatherapy: ["7L33", "6L33"], attract: ["7M", "6M"], @@ -66186,7 +69208,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M"], drainingkiss: ["9M"], echoedvoice: ["7M", "6M"], - endeavor: ["9E", "7T", "6T"], + endeavor: ["9M", "9E", "7T", "6T"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], @@ -66206,7 +69228,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mistyterrain: ["9M", "9L37", "7L37", "6L37"], moonblast: ["9L41", "7L41", "6L41"], naturepower: ["7M", "6M"], - petalblizzard: ["9L28", "7L28", "6L28"], + petalblizzard: ["9M", "9L28", "7L28", "6L28"], petaldance: ["9L45", "7L45", "6L45"], pollenpuff: ["9M"], protect: ["9M", "7M", "6M"], @@ -66241,6 +69263,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { floette: { learnset: { afteryou: ["7T", "6T"], + alluringvoice: ["9M"], allyswitch: ["7T"], aromatherapy: ["7L38", "6L38"], attract: ["7M", "6M"], @@ -66255,7 +69278,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M"], drainingkiss: ["9M"], echoedvoice: ["7M", "6M"], - endeavor: ["7T", "6T"], + endeavor: ["9M", "7T", "6T"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], @@ -66276,7 +69299,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mistyterrain: ["9M", "9L43", "7L43", "6L43"], moonblast: ["9L46", "7L46", "6L46"], naturepower: ["7M", "6M"], - petalblizzard: ["9L33", "7L33", "6L33"], + petalblizzard: ["9M", "9L33", "7L33", "6L33"], petaldance: ["9L51", "7L51", "6L51"], pollenpuff: ["9M"], protect: ["9M", "7M", "6M"], @@ -66369,12 +69392,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { florges: { learnset: { afteryou: ["7T", "6T"], + alluringvoice: ["9M"], allyswitch: ["7T"], aromatherapy: ["7L1", "6L1"], attract: ["7M", "6M"], batonpass: ["9M"], calmmind: ["9M", "7M", "6M"], charm: ["9M"], + chillingwater: ["9M"], confide: ["7M", "6M"], covet: ["7T", "6T"], dazzlinggleam: ["9M", "7M", "6M"], @@ -66383,7 +69408,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M"], drainingkiss: ["9M"], echoedvoice: ["7M", "6M"], - endeavor: ["7T", "6T"], + endeavor: ["9M", "7T", "6T"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], @@ -66403,14 +69428,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicalleaf: ["9M", "9L1", "7L1", "6L1"], magiccoat: ["7T", "6T"], metronome: ["9M"], + mistyexplosion: ["9M"], mistyterrain: ["9M", "9L1", "7L1", "6L1"], moonblast: ["9L5", "7L1", "6L1"], naturepower: ["7M", "6M"], - petalblizzard: ["9L1", "7L1", "6L1"], + petalblizzard: ["9M", "9L1", "7L1", "6L1"], petaldance: ["9L1", "7L1", "6L1"], pollenpuff: ["9M"], protect: ["9M", "7M", "6M"], psychic: ["9M", "7M", "6M"], + psychicnoise: ["9M"], raindance: ["9M", "7M", "6M"], rest: ["9M", "7M", "6M"], return: ["7M", "6M"], @@ -66447,14 +69474,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], defensecurl: ["9E", "7E", "6E"], dig: ["9M", "6M"], - doubleedge: ["9L38", "7L38", "6L38"], + doubleedge: ["9M", "9L38", "7L38", "6L38"], doubleteam: ["7M", "6M"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], frustration: ["7M", "6M"], gigadrain: ["9M", "7T", "6T"], grassknot: ["9M", "7M", "6M"], + grassyglide: ["9M"], grassyterrain: ["9M", "9E", "7E"], growth: ["9L1", "7L1", "6L1"], helpinghand: ["9M"], @@ -66477,7 +69506,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "6M"], retaliate: ["6M"], return: ["7M", "6M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rockslide: ["9M", "7M", "6M"], rocksmash: ["6M"], rollout: ["9E", "7E", "6E"], @@ -66519,9 +69548,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["9M"], confide: ["7M", "6M"], dig: ["9M", "6M"], - doubleedge: ["9L40", "7L40", "6L40"], + doubleedge: ["9M", "9L40", "7L40", "6L40"], doubleteam: ["7M", "6M"], earthquake: ["9M", "9L1", "7M", "7L1", "6M", "6L60"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M", "7M", "6M"], facade: ["9M", "7M", "6M"], @@ -66529,10 +69559,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "7T", "6T"], gigaimpact: ["9M", "7M", "6M"], grassknot: ["9M", "7M", "6M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L1", "7L1", "6L1"], helpinghand: ["9M"], hiddenpower: ["7M", "6M"], + highhorsepower: ["9M"], hornleech: ["9L47", "7L47", "6L47"], hyperbeam: ["9M", "7M", "6M"], irontail: ["7T", "6T"], @@ -66552,7 +69584,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "7M", "6M"], retaliate: ["6M"], return: ["7M", "6M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rockslide: ["9M", "7M", "6M"], rocksmash: ["6M"], round: ["7M", "6M"], @@ -66573,6 +69605,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwhip: ["9L1", "7L1", "6L9"], takedown: ["9M", "9L22", "7L22", "6L22"], terablast: ["9M"], + throatchop: ["9M"], toxic: ["7M", "6M"], trailblaze: ["9M"], vinewhip: ["9L1", "7L1", "6L7"], @@ -66869,249 +69902,264 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assist: ["7E", "6E"], attract: ["8M", "7M", "6M"], barrier: ["7E", "6E"], - calmmind: ["8M", "7M", "6M"], - chargebeam: ["7M", "6M"], + calmmind: ["9M", "8M", "7M", "6M"], + chargebeam: ["9M", "7M", "6M"], + charm: ["9M"], confide: ["7M", "6M"], - confusion: ["8L9", "7L9", "6L9"], - covet: ["8L18", "7T", "7L5", "6T", "6L5"], + confusion: ["9L9", "8L9", "7L9", "6L9"], + covet: ["9L18", "8L18", "7T", "7L5", "6T", "6L5"], cut: ["6M"], - darkpulse: ["8M", "7M", "6M"], - disarmingvoice: ["8L6", "7L22", "6L22"], + darkpulse: ["9M", "8M", "7M", "6M"], + disarmingvoice: ["9M", "9L6", "8L6", "7L22", "6L22"], doubleteam: ["7M", "6M"], dreameater: ["7M", "6M"], echoedvoice: ["7M", "6M"], - endure: ["8M"], - energyball: ["8M", "7M", "6M"], - expandingforce: ["8T"], - facade: ["8M", "7M", "6M"], - fakeout: ["8L3", "7L19", "6L19"], - faketears: ["8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M", "6M"], + fakeout: ["9L3", "8L3", "7L19", "6L19"], + faketears: ["9M", "8M"], flash: ["6M"], frustration: ["7M", "6M"], - gravity: ["7T", "6T"], + gravity: ["9M", "7T", "6T"], healbell: ["7T", "6T"], - helpinghand: ["8M", "7T", "6T"], + helpinghand: ["9M", "8M", "7T", "6T"], hiddenpower: ["7M", "6M"], irontail: ["8M", "7T", "6T"], - leer: ["8L1", "7L1", "6L1"], - lightscreen: ["8M", "8L30", "7M", "7L13", "6M", "6L13"], + leer: ["9L1", "8L1", "7L1", "6L1"], + lightscreen: ["9M", "9L30", "8M", "8L30", "7M", "7L13", "6M", "6L13"], magiccoat: ["7T", "6T"], magicroom: ["8M", "7T", "6T"], - nastyplot: ["8M"], + nastyplot: ["9M", "8M"], payback: ["8M", "7M", "6M"], payday: ["8M"], - playrough: ["8M"], - protect: ["8M", "7M", "6M"], - psybeam: ["8L21", "7L17", "6L17"], - psychic: ["8M", "7M", "6M"], - psychup: ["7M", "6M"], - psyshock: ["8M", "8L33", "7M", "7L25", "6M", "6L25"], - raindance: ["8M", "7M", "6M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M"], + psybeam: ["9M", "9L21", "8L21", "7L17", "6L17"], + psychic: ["9M", "8M", "7M", "6M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M"], + psyshock: ["9M", "9L33", "8M", "8L33", "7M", "7L25", "6M", "6L25"], + raindance: ["9M", "8M", "7M", "6M"], recycle: ["7T", "6T"], - reflect: ["8M", "8L30", "7M", "6M"], - rest: ["8M", "7M", "6M"], + reflect: ["9M", "9L30", "8M", "8L30", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], roleplay: ["7T", "6T"], round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "6M"], - scratch: ["8L1", "7L1", "6L1"], + scratch: ["9L1", "8L1", "7L1", "6L1"], secretpower: ["6M"], + shadowball: ["9M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T"], - skillswap: ["8M", "7T"], - sleeptalk: ["8M", "7M", "6M"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M", "6M"], snatch: ["7T", "6T"], snore: ["8M", "7T", "6T"], - substitute: ["8M", "7M", "6M"], - sunnyday: ["8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], swagger: ["7M", "6M"], - swift: ["8M"], + swift: ["9M", "8M"], telekinesis: ["7T"], - thunderbolt: ["8M", "7M", "6M"], - thunderwave: ["8M", "7M", "6M"], - tickle: ["8E"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thunderwave: ["9M", "8M", "7M", "6M"], + tickle: ["9E", "8E"], torment: ["7M", "6M"], toxic: ["7M", "6M"], - trick: ["8M", "7T", "7E", "6T", "6E"], - trickroom: ["8M", "7M", "6M"], + trick: ["9M", "8M", "7T", "7E", "6T", "6E"], + trickroom: ["9M", "8M", "7M", "6M"], wonderroom: ["8M", "7T", "6T"], workup: ["8M", "7M"], - yawn: ["8E", "7E", "6E"], - zenheadbutt: ["8M", "7T", "6T"], + yawn: ["9E", "8E", "7E", "6E"], + zenheadbutt: ["9M", "8M", "7T", "6T"], }, }, meowstic: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "6M"], - calmmind: ["8M", "7M", "6M"], - chargebeam: ["7M", "6M"], - charm: ["8M", "8L15", "7L28", "6L28"], + batonpass: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], + chargebeam: ["9M", "7M", "6M"], + charm: ["9M", "9L15", "8M", "8L15", "7L28", "6L28"], confide: ["7M", "6M"], - confusion: ["8L9", "7L1", "6L9"], - covet: ["8L18", "7T", "7L1", "6T", "6L5"], + confusion: ["9L9", "8L9", "7L1", "6L9"], + covet: ["9L18", "8L18", "7T", "7L1", "6T", "6L5"], cut: ["6M"], - darkpulse: ["8M", "7M", "6M"], - dig: ["8M", "6M"], - disarmingvoice: ["8L1", "7L22", "6L22"], + darkpulse: ["9M", "8M", "7M", "6M"], + dig: ["9M", "8M", "6M"], + disarmingvoice: ["9M", "9L1", "8L1", "7L22", "6L22"], doubleteam: ["7M", "6M"], dreameater: ["7M", "6M"], echoedvoice: ["7M", "6M"], - endure: ["8M"], - energyball: ["8M", "7M", "6M"], - expandingforce: ["8T"], - facade: ["8M", "7M", "6M"], - fakeout: ["8L1", "7L19", "6L19"], - faketears: ["8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M", "6M"], + fakeout: ["9L1", "8L1", "7L19", "6L19"], + faketears: ["9M", "8M"], flash: ["6M"], frustration: ["7M", "6M"], - gigaimpact: ["8M", "7M", "6M"], - gravity: ["7T", "6T"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gravity: ["9M", "7T", "6T"], healbell: ["7T", "6T"], - helpinghand: ["8M", "8L12", "7T", "7L1", "6T", "6L1"], + helpinghand: ["9M", "9L12", "8M", "8L12", "7T", "7L1", "6T", "6L1"], hiddenpower: ["7M", "6M"], - hyperbeam: ["8M", "7M", "6M"], - imprison: ["8M", "8L44", "7L45", "6L45"], + hyperbeam: ["9M", "8M", "7M", "6M"], + imprison: ["9M", "9L44", "8M", "8L44", "7L45", "6L45"], irontail: ["8M", "7T", "6T"], - leer: ["8L1", "7L1", "6L1"], - lightscreen: ["8M", "8L34", "7M", "7L13", "6M", "6L13"], + leer: ["9L1", "8L1", "7L1", "6L1"], + lightscreen: ["9M", "9L34", "8M", "8L34", "7M", "7L13", "6M", "6L13"], magiccoat: ["7T", "6T"], magicroom: ["8M", "7T", "6T"], - meanlook: ["8L1", "7L1", "6L1"], + meanlook: ["9L1", "8L1", "7L1", "6L1"], miracleeye: ["7L31", "6L31"], - mistyterrain: ["8M", "8L59", "7L50", "6L50"], - nastyplot: ["8M"], + mistyterrain: ["9M", "9L59", "8M", "8L59", "7L50", "6L50"], + nastyplot: ["9M", "8M"], payback: ["8M", "7M", "6M"], payday: ["8M"], - playrough: ["8M"], + playrough: ["9M", "8M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M"], - psybeam: ["8L21", "7L17", "6L17"], - psychic: ["8M", "8L54", "7M", "7L40", "6M", "6L40"], - psychicterrain: ["8M"], - psychup: ["7M", "6M"], - psyshock: ["8M", "8L39", "7M", "7L25", "6M", "6L25"], - quickguard: ["8L49", "7L1", "6L1"], - raindance: ["8M", "7M", "6M"], + protect: ["9M", "8M", "7M", "6M"], + psybeam: ["9M", "9L21", "8L21", "7L17", "6L17"], + psychic: ["9M", "9L54", "8M", "8L54", "7M", "7L40", "6M", "6L40"], + psychicnoise: ["9M"], + psychicterrain: ["9M", "8M"], + psychup: ["9M", "7M", "6M"], + psyshock: ["9M", "9L39", "8M", "8L39", "7M", "7L25", "6M", "6L25"], + quickguard: ["9L49", "8L49", "7L1", "6L1"], + raindance: ["9M", "8M", "7M", "6M"], recycle: ["7T", "6T"], - reflect: ["8M", "8L34", "7M", "7L35", "6M", "6L35"], - rest: ["8M", "7M", "6M"], + reflect: ["9M", "9L34", "8M", "8L34", "7M", "7L35", "6M", "6L35"], + rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], - roleplay: ["8L29", "7T", "7L43", "6T", "6L43"], + roleplay: ["9L29", "8L29", "7T", "7L43", "6T", "6L43"], round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "6M"], - scratch: ["8L1", "7L1", "6L1"], + scratch: ["9L1", "8L1", "7L1", "6L1"], secretpower: ["6M"], - shadowball: ["8M", "7M", "6M"], + shadowball: ["9M", "8M", "7M", "6M"], shockwave: ["7T", "6T"], signalbeam: ["7T", "6T"], - skillswap: ["8M", "7T"], - sleeptalk: ["8M", "7M", "6M"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M", "6M"], snatch: ["7T", "6T"], snore: ["8M", "7T", "6T"], - substitute: ["8M", "7M", "6M"], - suckerpunch: ["8L24", "7L48", "6L48"], - sunnyday: ["8M", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "8M", "7M", "6M"], + suckerpunch: ["9L24", "8L24", "7L48", "6L48"], + sunnyday: ["9M", "8M", "7M", "6M"], swagger: ["7M", "6M"], - swift: ["8M"], + swift: ["9M", "8M"], tailslap: ["8M"], telekinesis: ["7T"], - thunderbolt: ["8M", "7M", "6M"], - thunderwave: ["8M", "7M", "6M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thunderwave: ["9M", "8M", "7M", "6M"], torment: ["7M", "6M"], toxic: ["7M", "6M"], - trick: ["8M", "7T", "6T"], - trickroom: ["8M", "7M", "6M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T"], + trickroom: ["9M", "8M", "7M", "6M"], wonderroom: ["8M", "7T", "6T"], workup: ["8M", "7M"], - zenheadbutt: ["8M", "7T", "6T"], + zenheadbutt: ["9M", "8M", "7T", "6T"], }, }, meowsticf: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "6M"], - calmmind: ["8M", "7M", "6M"], - chargebeam: ["8L15", "7M", "7L28", "6M", "6L28"], - charm: ["8M"], + batonpass: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], + chargebeam: ["9M", "9L15", "8L15", "7M", "7L28", "6M", "6L28"], + charm: ["9M", "8M"], confide: ["7M", "6M"], - confusion: ["8L9", "7L1", "6L9"], - covet: ["8L18", "7T", "7L1", "6L5"], + confusion: ["9L9", "8L9", "7L1", "6L9"], + covet: ["9L18", "8L18", "7T", "7L1", "6L5"], cut: ["6M"], - darkpulse: ["8M", "7M", "6M"], - dig: ["8M", "6M"], - disarmingvoice: ["8L1", "7L22", "6L22"], + darkpulse: ["9M", "8M", "7M", "6M"], + dig: ["9M", "8M", "6M"], + disarmingvoice: ["9M", "9L1", "8L1", "7L22", "6L22"], doubleteam: ["7M", "6M"], dreameater: ["7M", "6M"], echoedvoice: ["7M", "6M"], - endure: ["8M"], - energyball: ["8M", "7M", "6M"], - expandingforce: ["8T"], - extrasensory: ["8L44", "7L35", "6L35"], - facade: ["8M", "7M", "6M"], - fakeout: ["8L1", "7L19", "6L19"], - faketears: ["8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M"], + expandingforce: ["9M", "8T"], + extrasensory: ["9L44", "8L44", "7L35", "6L35"], + facade: ["9M", "8M", "7M", "6M"], + fakeout: ["9L1", "8L1", "7L19", "6L19"], + faketears: ["9M", "8M"], flash: ["6M"], frustration: ["7M", "6M"], - futuresight: ["8M", "8L59", "7L50", "6L50"], - gigaimpact: ["8M", "7M", "6M"], - gravity: ["7T"], + futuresight: ["9M", "9L59", "8M", "8L59", "7L50", "6L50"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gravity: ["9M", "7T"], healbell: ["7T"], - helpinghand: ["8M", "7T"], + helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M", "6M"], - hyperbeam: ["8M", "7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], irontail: ["8M", "7T"], - leer: ["8L1", "7L1", "6L1"], - lightscreen: ["8M", "8L34", "7M", "7L13", "6M", "6L13"], - magicalleaf: ["8M", "8L1", "7L1", "6L1"], + leer: ["9L1", "8L1", "7L1", "6L1"], + lightscreen: ["9M", "9L34", "8M", "8L34", "7M", "7L13", "6M", "6L13"], + magicalleaf: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], magiccoat: ["7T"], magicroom: ["8M", "7T"], mefirst: ["7L1", "6L1"], - nastyplot: ["8M"], + nastyplot: ["9M", "8M"], payback: ["8M", "7M", "6M"], payday: ["8M"], - playrough: ["8M"], + playrough: ["9M", "8M"], poweruppunch: ["6M"], - protect: ["8M", "7M", "6M"], - psybeam: ["8L21", "7L17", "6L17"], - psychic: ["8M", "8L54", "7M", "7L40", "6M", "6L40"], - psychicterrain: ["8M"], - psychup: ["7M", "6M"], - psyshock: ["8M", "8L39", "7M", "7L25", "6M", "6L25"], - raindance: ["8M", "7M", "6M"], + protect: ["9M", "8M", "7M", "6M"], + psybeam: ["9M", "9L21", "8L21", "7L17", "6L17"], + psychic: ["9M", "9L54", "8M", "8L54", "7M", "7L40", "6M", "6L40"], + psychicnoise: ["9M"], + psychicterrain: ["9M", "8M"], + psychup: ["9M", "7M", "6M"], + psyshock: ["9M", "9L39", "8M", "8L39", "7M", "7L25", "6M", "6L25"], + raindance: ["9M", "8M", "7M", "6M"], recycle: ["7T"], - reflect: ["8M", "8L34", "7M", "6M"], - rest: ["8M", "7M", "6M"], + reflect: ["9M", "9L34", "8M", "8L34", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], - roleplay: ["8L29", "7T", "7L43", "6L43"], + roleplay: ["9L29", "8L29", "7T", "7L43", "6L43"], round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "6M"], - scratch: ["8L1", "7L1", "6L1"], + scratch: ["9L1", "8L1", "7L1", "6L1"], secretpower: ["6M"], - shadowball: ["8M", "8L49", "7M", "7L31", "6M", "6L31"], + shadowball: ["9M", "9L49", "8M", "8L49", "7M", "7L31", "6M", "6L31"], shockwave: ["7T"], signalbeam: ["7T", "7L45", "6L45"], - skillswap: ["8M", "7T"], - sleeptalk: ["8M", "7M", "6M"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M", "6M"], snatch: ["7T"], snore: ["8M", "7T"], - storedpower: ["8M", "8L12", "7L1", "6L1"], - substitute: ["8M", "7M", "6M"], - suckerpunch: ["8L24", "7L48", "6L48"], - sunnyday: ["8M", "7M", "6M"], + storedpower: ["9M", "9L12", "8M", "8L12", "7L1", "6L1"], + substitute: ["9M", "8M", "7M", "6M"], + suckerpunch: ["9L24", "8L24", "7L48", "6L48"], + sunnyday: ["9M", "8M", "7M", "6M"], swagger: ["7M", "6M"], - swift: ["8M"], + swift: ["9M", "8M"], tailslap: ["8M"], telekinesis: ["7T"], - thunderbolt: ["8M", "7M", "6M"], - thunderwave: ["8M", "7M", "6M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thunderwave: ["9M", "8M", "7M", "6M"], torment: ["7M", "6M"], toxic: ["7M", "6M"], - trick: ["8M", "7T"], - trickroom: ["8M", "7M", "6M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + trickroom: ["9M", "8M", "7M", "6M"], wonderroom: ["8M", "7T"], workup: ["8M", "7M"], - zenheadbutt: ["8M", "7T"], + zenheadbutt: ["9M", "8M", "7T"], }, }, honedge: { @@ -67573,84 +70621,92 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, inkay: { learnset: { - acupressure: ["8E"], - aerialace: ["7M", "6M"], + acupressure: ["9E", "8E"], + aerialace: ["9M", "7M", "6M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "6M"], - batonpass: ["8M"], + batonpass: ["9M", "8M"], bind: ["7T", "6T"], - calmmind: ["8M", "7M", "6M"], + calmmind: ["9M", "8M", "7M", "6M"], camouflage: ["7E", "6E"], confide: ["7M", "6M"], constrict: ["7L1", "6L1"], cut: ["6M"], - darkpulse: ["8M", "7M", "6M"], - destinybond: ["8E", "7E", "6E"], - disable: ["8E"], + darkpulse: ["9M", "8M", "7M", "6M"], + destinybond: ["9E", "8E", "7E", "6E"], + disable: ["9E", "8E"], doubleteam: ["7M", "6M"], embargo: ["7M", "6M"], - endure: ["8M"], - expandingforce: ["8T"], - facade: ["8M", "7M", "6M"], - faketears: ["8M"], - flamethrower: ["8M", "7M", "6M"], + endure: ["9M", "8M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M", "6M"], + faketears: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "6M"], flash: ["6M"], flatter: ["7E", "6E"], - fling: ["8M", "7M", "6M"], - foulplay: ["8M", "8L33", "7T", "7L8", "6T", "6L8", "6S0"], + fling: ["9M", "8M", "7M", "6M"], + foulplay: ["9M", "9L33", "8M", "8L33", "7T", "7L8", "6T", "6L8", "6S0"], frustration: ["7M", "6M"], - futuresight: ["8M"], + futuresight: ["9M", "8M"], + gravity: ["9M"], guardswap: ["8M", "7E"], happyhour: ["6S0"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M"], - hypnosis: ["8L3", "7L18", "6L18", "6S0"], - knockoff: ["7T", "6T"], - lashout: ["8T"], - lightscreen: ["8M", "7M", "7L31", "6M", "6L31"], - liquidation: ["8M"], - nastyplot: ["8M"], - nightslash: ["8L24", "7L46", "6L46"], - payback: ["8M", "8L9", "7M", "7L27", "6M", "6L27"], - peck: ["8L1", "7L1", "6L1"], - pluck: ["8L12", "7L35", "6L35"], + hypnosis: ["9L3", "8L3", "7L18", "6L18", "6S0"], + knockoff: ["9M", "7T", "6T"], + lashout: ["9M", "8T"], + lightscreen: ["9M", "8M", "7M", "7L31", "6M", "6L31"], + liquidation: ["9M", "8M"], + lunge: ["9M"], + nastyplot: ["9M", "8M"], + nightslash: ["9L24", "8L24", "7L46", "6L46"], + payback: ["9L9", "8M", "8L9", "7M", "7L27", "6M", "6L27"], + peck: ["9L1", "8L1", "7L1", "6L1"], + pluck: ["9L12", "8L12", "7L35", "6L35"], powersplit: ["7E", "6E"], - protect: ["8M", "7M", "6M"], - psybeam: ["8L15", "7L21", "6L21"], - psychic: ["8M", "7M", "6M"], - psychocut: ["8M", "8L27", "7L39", "6L39"], - psychup: ["7M", "6M"], + protect: ["9M", "8M", "7M", "6M"], + psybeam: ["9M", "9L15", "8L15", "7L21", "6L21"], + psychic: ["9M", "8M", "7M", "6M"], + psychocut: ["9L27", "8M", "8L27", "7L39", "6L39"], + psychup: ["9M", "7M", "6M"], + psyshock: ["9M"], psywave: ["7L13", "6L13"], - raindance: ["8M", "7M", "6M"], - reflect: ["8M", "7M", "7L4", "6M", "6L4"], - rest: ["8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + reflect: ["9M", "8M", "7M", "7L4", "6M", "6L4"], + rest: ["9M", "8M", "7M", "6M"], retaliate: ["8M", "6M"], return: ["7M", "6M"], - rockslide: ["8M", "7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], roleplay: ["7T", "6T"], round: ["8M", "7M", "6M"], secretpower: ["6M"], simplebeam: ["7E", "6E"], - slash: ["8L21", "7L43", "6L43"], - sleeptalk: ["8M", "7M", "6M"], + skillswap: ["9M"], + slash: ["9L21", "8L21", "7L43", "6L43"], + sleeptalk: ["9M", "8M", "7M", "6M"], snatch: ["7T", "6T"], snore: ["8M", "7T", "6T"], - spite: ["7T", "6T"], - storedpower: ["8M"], - substitute: ["8M", "7M", "6M"], - sunnyday: ["8M", "7M", "6M"], - superpower: ["8M", "8L39", "7T", "7L48", "6T", "6L48"], - swagger: ["8L18", "7M", "7L12", "6M", "6L12"], - switcheroo: ["8L31", "7L23", "6L23"], - tackle: ["8L1", "7L1", "6L1"], - taunt: ["8M", "7M", "6M"], + spite: ["9M", "7T", "6T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["9L39", "8M", "8L39", "7T", "7L48", "6T", "6L48"], + swagger: ["9L18", "8L18", "7M", "7L12", "6M", "6L12"], + swift: ["9M"], + switcheroo: ["9L31", "8L31", "7L23", "6L23"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + taunt: ["9M", "8M", "7M", "6M"], telekinesis: ["7T"], - thief: ["8M", "7M", "6M"], - thunderbolt: ["8M", "7M", "6M"], - topsyturvy: ["8L36", "7L15", "6L15", "6S0"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + topsyturvy: ["9L36", "8L36", "7L15", "6L15", "6S0"], torment: ["7M", "6M"], toxic: ["7M", "6M"], - trickroom: ["8M", "7M", "6M"], - wrap: ["8L6"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M", "6M"], + wrap: ["9L6", "8L6"], }, eventData: [ {generation: 6, level: 10, moves: ["happyhour", "foulplay", "hypnosis", "topsyturvy"], pokeball: "cherishball"}, @@ -67658,85 +70714,94 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, malamar: { learnset: { - aerialace: ["7M", "6M"], + aerialace: ["9M", "7M", "6M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "6M"], - batonpass: ["8M"], + batonpass: ["9M", "8M"], bind: ["7T", "6T"], block: ["7T", "6T"], brutalswing: ["8M", "7M"], - calmmind: ["8M", "7M", "6M"], + calmmind: ["9M", "8M", "7M", "6M"], confide: ["7M", "6M"], constrict: ["7L1", "6L1"], cut: ["6M"], - darkpulse: ["8M", "7M", "6M"], + darkpulse: ["9M", "8M", "7M", "6M"], doubleteam: ["7M", "6M"], embargo: ["7M", "6M"], - endure: ["8M"], - expandingforce: ["8T"], - facade: ["8M", "7M", "6M", "6S0"], - faketears: ["8M"], - flamethrower: ["8M", "7M", "6M"], + endure: ["9M", "8M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M", "6M", "6S0"], + faketears: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "6M"], flash: ["6M"], - fling: ["8M", "7M", "6M"], - foulplay: ["8M", "8L37", "7T", "7L8", "6T", "6L8"], + fling: ["9M", "8M", "7M", "6M"], + foulplay: ["9M", "9L37", "8M", "8L37", "7T", "7L8", "6T", "6L8"], frustration: ["7M", "6M"], - futuresight: ["8M"], - gigaimpact: ["8M", "7M", "6M"], + futuresight: ["9M", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gravity: ["9M"], guardswap: ["8M"], + helpinghand: ["9M"], hiddenpower: ["7M", "6M"], - hyperbeam: ["8M", "7M", "6M"], - hypnosis: ["8L1", "7L18", "6L18"], - knockoff: ["7T", "6T", "6S0"], - lashout: ["8T"], - lightscreen: ["8M", "7M", "7L31", "6M", "6L31"], - liquidation: ["8M"], - nastyplot: ["8M"], - nightslash: ["8L24", "7L46", "6L46"], - payback: ["8M", "8L9", "7M", "7L27", "6M", "6L27"], - peck: ["8L1", "7L1", "6L1"], - pluck: ["8L12", "7L35", "6L35"], - protect: ["8M", "7M", "6M"], - psybeam: ["8L15", "7L21", "6L21"], - psychic: ["8M", "7M", "6M"], - psychocut: ["8M", "8L27", "7L39", "6L39"], - psychup: ["7M", "6M"], - psyshock: ["8M", "7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + hypnosis: ["9L1", "8L1", "7L18", "6L18"], + knockoff: ["9M", "7T", "6T", "6S0"], + lashout: ["9M", "8T"], + lightscreen: ["9M", "8M", "7M", "7L31", "6M", "6L31"], + liquidation: ["9M", "8M"], + lunge: ["9M"], + nastyplot: ["9M", "8M"], + nightslash: ["9L24", "8L24", "7L46", "6L46"], + payback: ["9L9", "8M", "8L9", "7M", "7L27", "6M", "6L27"], + peck: ["9L1", "8L1", "7L1", "6L1"], + pluck: ["9L12", "8L12", "7L35", "6L35"], + protect: ["9M", "8M", "7M", "6M"], + psybeam: ["9M", "9L15", "8L15", "7L21", "6L21"], + psychic: ["9M", "8M", "7M", "6M"], + psychicnoise: ["9M"], + psychocut: ["9L27", "8M", "8L27", "7L39", "6L39"], + psychup: ["9M", "7M", "6M"], + psyshock: ["9M", "8M", "7M", "6M"], psywave: ["7L13", "6L13"], - raindance: ["8M", "7M", "6M"], - reflect: ["8M", "7M", "7L1", "6M", "6L4"], - rest: ["8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + reflect: ["9M", "8M", "7M", "7L1", "6M", "6L4"], + rest: ["9M", "8M", "7M", "6M"], retaliate: ["8M", "6M"], return: ["7M", "6M"], - reversal: ["8M", "8L1", "7L1", "6L1"], - rockslide: ["8M", "7M", "6M", "6S0"], + reversal: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + rockslide: ["9M", "8M", "7M", "6M", "6S0"], roleplay: ["7T", "6T"], round: ["8M", "7M", "6M"], - scaryface: ["8M"], + scaryface: ["9M", "8M"], secretpower: ["6M"], signalbeam: ["7T", "6T"], - slash: ["8L21", "7L43", "6L43"], - sleeptalk: ["8M", "7M", "6M"], + skillswap: ["9M"], + slash: ["9L21", "8L21", "7L43", "6L43"], + sleeptalk: ["9M", "8M", "7M", "6M"], snatch: ["7T", "6T"], snore: ["8M", "7T", "6T"], - spite: ["7T", "6T"], - storedpower: ["8M"], - substitute: ["8M", "7M", "6M"], - sunnyday: ["8M", "7M", "6M"], - superpower: ["8M", "8L47", "7T", "7L48", "6T", "6L1", "6S0"], - swagger: ["8L18", "7M", "7L12", "6M", "6L12"], - switcheroo: ["8L33", "7L23", "6L23"], - tackle: ["8L1", "7L1", "6L1"], - taunt: ["8M", "7M", "6M"], + spite: ["9M", "7T", "6T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["9L47", "8M", "8L47", "7T", "7L48", "6T", "6L1", "6S0"], + swagger: ["9L18", "8L18", "7M", "7L12", "6M", "6L12"], + swift: ["9M"], + switcheroo: ["9L33", "8L33", "7L23", "6L23"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + taunt: ["9M", "8M", "7M", "6M"], telekinesis: ["7T"], - thief: ["8M", "7M", "6M"], - throatchop: ["8M", "7T"], - thunderbolt: ["8M", "7M", "6M"], - topsyturvy: ["8L42", "7L15", "6L15"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + throatchop: ["9M", "8M", "7T"], + thunderbolt: ["9M", "8M", "7M", "6M"], + topsyturvy: ["9L42", "8L42", "7L15", "6L15"], torment: ["7M", "6M"], toxic: ["7M", "6M"], - trickroom: ["8M", "7M", "6M"], - wrap: ["8L1"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M", "6M"], + wrap: ["9L1", "8L1"], }, eventData: [ {generation: 6, level: 50, nature: "Adamant", ivs: {hp: 31, atk: 31}, abilities: ["contrary"], moves: ["superpower", "knockoff", "facade", "rockslide"], pokeball: "cherishball"}, @@ -67956,16 +71021,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], feintattack: ["7L5", "6L5"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], frustration: ["7M", "6M"], gunkshot: ["9M", "8M", "7T", "6T"], hail: ["8M", "7M", "6M"], - haze: ["9E", "8E", "7E", "6E"], + haze: ["9M", "9E", "8E", "7E", "6E"], hiddenpower: ["7M", "6M"], hydropump: ["9M", "9L55", "8M", "8L55", "7L42", "6L42"], icywind: ["9M", "8M", "7T", "6T"], irontail: ["8M", "7T", "6T"], liquidation: ["9M"], + muddywater: ["9M"], mudshot: ["9M"], mudslap: ["9M"], outrage: ["9M", "8M", "7T", "6T"], @@ -67977,17 +71043,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "6M"], round: ["8M", "7M", "6M"], scald: ["8M", "7M", "6M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], secretpower: ["6M"], shadowball: ["9M", "8M", "7M", "6M"], shockwave: ["7T", "6T"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "9L50", "8M", "8L50", "7M", "7L38", "6M", "6L38"], - sludgewave: ["8M", "7M", "6M"], + sludgewave: ["9M", "8M", "7M", "6M"], smokescreen: ["9L1", "8L1", "7L1", "6L1"], snore: ["8M", "7T", "6T"], snowscape: ["9M"], + spite: ["9M"], substitute: ["9M", "8M", "7M", "6M"], surf: ["9M", "8M", "7M", "6M"], swagger: ["7M", "6M"], @@ -67997,7 +71064,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], thunderbolt: ["9M", "8M", "7M", "6M"], - toxic: ["9L35", "8L35", "7M", "7L32", "6M", "6L32"], + toxic: ["9M", "9L35", "8L35", "7M", "7L32", "6M", "6L32"], toxicspikes: ["9M", "8M", "7E", "6E"], twister: ["9E", "8E"], venomdrench: ["8M", "7E", "6E"], @@ -68005,6 +71072,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "8M", "7M", "6M"], watergun: ["9L10", "8L10", "7L1", "6L1"], waterpulse: ["9M", "9L30", "8L30", "7T", "7L25", "6T", "6L25"], + whirlpool: ["9M"], }, }, dragalge: { @@ -68026,18 +71094,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], feintattack: ["7L1", "6L5"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], focusblast: ["9M", "8M", "7M", "6M"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], gunkshot: ["9M", "8M", "7T", "6T"], hail: ["8M", "7M", "6M"], + haze: ["9M"], hiddenpower: ["7M", "6M"], hydropump: ["9M", "9L59", "8M", "8L59", "7L42", "6L42"], hyperbeam: ["9M", "8M", "7M", "6M"], icywind: ["9M", "8M", "7T", "6T"], irontail: ["8M", "7T", "6T"], liquidation: ["9M"], + muddywater: ["9M"], mudshot: ["9M"], mudslap: ["9M"], outrage: ["9M", "9L66", "8M", "8L66", "7T", "6T"], @@ -68048,18 +71118,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], round: ["8M", "7M", "6M"], - scald: ["8M", "7M", "6M"], - scaleshot: ["8T"], + scald: ["9M", "8M", "7M", "6M"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], secretpower: ["6M"], shadowball: ["9M", "8M", "7M", "6M"], shockwave: ["7T", "6T"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "9L52", "8M", "8L52", "7M", "7L38", "6M", "6L38"], - sludgewave: ["8M", "7M", "6M"], + sludgewave: ["9M", "8M", "7M", "6M"], smokescreen: ["9L1", "8L1", "7L1", "6L1"], snore: ["8M", "7T", "6T"], snowscape: ["9M"], + spite: ["9M"], substitute: ["9M", "8M", "7M", "6M"], surf: ["9M", "8M", "7M", "6M"], swagger: ["7M", "6M"], @@ -68070,7 +71141,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], thunder: ["9M", "8M", "7M", "6M"], thunderbolt: ["9M", "8M", "7M", "6M"], - toxic: ["9L35", "8L35", "7M", "7L32", "6M", "6L32"], + toxic: ["9M", "9L35", "8L35", "7M", "7L32", "6M", "6L32"], toxicspikes: ["9M", "8M"], twister: ["7L1", "6L1"], venomdrench: ["8M"], @@ -68078,6 +71149,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "8M", "7M", "6M"], watergun: ["9L1", "8L1", "7L1", "6L1"], waterpulse: ["9M", "9L30", "8L30", "7T", "7L25", "6T", "6L25"], + whirlpool: ["9M"], }, encounters: [ {generation: 6, level: 35}, @@ -68106,7 +71178,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M", "6M"], flail: ["9L10", "8L10", "7L16", "6L16"], flashcannon: ["9M", "8M", "7M", "6M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], frustration: ["7M", "6M"], helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E"], hiddenpower: ["7M", "6M"], @@ -68116,7 +71188,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "8M", "7T", "6T"], irontail: ["8M", "7T", "6T"], liquidation: ["9M"], - muddywater: ["9L50", "8M", "8L50", "7L48", "6L48"], + muddywater: ["9M", "9L50", "8M", "8L50", "7L48", "6L48"], mudshot: ["9M"], mudslap: ["9M"], pounce: ["9M"], @@ -68130,8 +71202,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["6M"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["8M", "7M", "6M"], - sludgewave: ["8M", "7M", "6M"], - smackdown: ["9L20", "8L20", "7M", "7L39", "6M", "6L39"], + sludgewave: ["9M", "8M", "7M", "6M"], + smackdown: ["9M", "9L20", "8L20", "7M", "7L39", "6M", "6L39"], snore: ["8M", "7T", "6T"], splash: ["9L1", "8L1", "7L1", "6L1"], substitute: ["9M", "8M", "7M", "6M"], @@ -68150,6 +71222,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "8L1", "7L1", "6L1"], waterpulse: ["9M", "9L30", "8L30", "7T", "7L34", "6T", "6L34"], watersport: ["7L7", "6L7"], + weatherball: ["9M"], }, }, clawitzer: { @@ -68175,7 +71248,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M", "6M"], flail: ["9L1", "8L1", "7L16", "6L16"], flashcannon: ["9M", "8M", "7M", "6M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], focusblast: ["9M", "8M", "7M", "6M"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], @@ -68190,7 +71263,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irontail: ["8M", "7T", "6T"], laserfocus: ["7T"], liquidation: ["9M", "8M", "7T"], - muddywater: ["9L56", "8M", "8L56", "7L57", "6L53"], + muddywater: ["9M", "9L56", "8M", "8L56", "7L57", "6L53"], mudshot: ["9M"], mudslap: ["9M"], pounce: ["9M"], @@ -68206,8 +71279,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "8M", "7M", "6M"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "8M", "7M", "6M"], - sludgewave: ["8M", "7M", "6M"], - smackdown: ["9L20", "8L20", "7M", "7L42", "6M", "6L42"], + sludgewave: ["9M", "8M", "7M", "6M"], + smackdown: ["9M", "9L20", "8L20", "7M", "7L42", "6M", "6L42"], snore: ["8M", "7T", "6T"], splash: ["9L1", "8L1", "7L1", "6L1"], substitute: ["9M", "8M", "7M", "6M"], @@ -68226,6 +71299,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "8L1", "7L1", "6L1"], waterpulse: ["9M", "9L30", "8L30", "7T", "7L34", "6T", "6L34"], watersport: ["7L1", "6L7"], + weatherball: ["9M"], }, encounters: [ {generation: 6, level: 35}, @@ -68712,6 +71786,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, sylveon: { learnset: { + alluringvoice: ["9M"], attract: ["8M", "7M", "6M"], babydolleyes: ["9L15", "8L15", "7L9", "6S1"], batonpass: ["9M", "9L1", "8M", "8L1"], @@ -68723,11 +71798,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], copycat: ["9L1", "8L1"], covet: ["9L1", "8L1", "7T", "6T"], + curse: ["9M"], cut: ["6M"], dazzlinggleam: ["9M", "8M", "7M", "6M"], dig: ["9M", "8M", "6M"], disarmingvoice: ["9M", "9L0", "8L0", "7L1", "6L1", "6S1"], - doubleedge: ["9L1", "8L1"], + doubleedge: ["9M", "9L1", "8L1"], doubleteam: ["7M", "6M"], drainingkiss: ["9M", "9L30", "8M", "8L30", "7L20", "7S2", "6L20", "6S1"], echoedvoice: ["7M", "6M"], @@ -68751,15 +71827,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["9M", "9L25", "8M", "8L25", "7M", "7L33", "6M", "6L33"], magicalleaf: ["9M", "8M"], magiccoat: ["7T", "6T"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "9L35", "8M", "8L35", "7L29", "6L29"], moonblast: ["9L50", "8L50", "7L37", "6L37"], + mudslap: ["9M"], mysticalfire: ["8M"], payday: ["8M"], playrough: ["9M", "8M"], protect: ["9M", "8M", "7M", "6M"], psychic: ["9M"], - psychup: ["9L45", "8L45", "7M", "7L45", "6M", "6L45"], + psychup: ["9M", "9L45", "8L45", "7M", "7L45", "6M", "6L45"], psyshock: ["9M", "8M", "7M", "7S2", "6M"], quickattack: ["9L10", "8L10", "7L13", "6L13", "6S1"], raindance: ["9M", "8M", "7M", "6M"], @@ -68767,6 +71844,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M"], retaliate: ["8M", "6M"], return: ["7M", "6M"], + roar: ["9M"], round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "6M"], sandattack: ["9L5", "8L5", "7L5", "6L5", "6S0"], @@ -68787,7 +71865,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "6M"], trailblaze: ["9M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], workup: ["8M", "7M"], }, eventData: [ @@ -68812,7 +71890,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "9L24", "8M", "7M", "6M"], bulkup: ["9M", "8M", "7M", "6M"], closecombat: ["9M", "8M"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M", "6M"], crosschop: ["9E", "8E"], cut: ["6M"], @@ -68822,21 +71900,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "6M"], drainpunch: ["9M", "8M", "7T", "6T"], dualchop: ["7T", "6T"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], encore: ["9M", "9L16", "8M", "8L16", "7L20", "6L20"], - endeavor: ["9L52", "8L52", "7T", "7L36", "6T", "6L36"], + endeavor: ["9M", "9L52", "8L52", "7T", "7L36", "6T", "6L36"], endure: ["9M", "8M"], entrainment: ["9E", "8E", "7E", "6E"], facade: ["9M", "8M", "7M", "6M"], falseswipe: ["9M", "8M", "7M", "6M"], - featherdance: ["9L20", "8L20", "7L40", "6L40"], + featherdance: ["9M", "9L20", "8L20", "7L40", "6L40"], feint: ["9E", "8E", "7E"], firepunch: ["9M", "8M", "7T", "6T"], fling: ["9M", "8M", "7M", "7L24", "6M", "6L24"], fly: ["9M", "8M", "7M", "6M"], flyingpress: ["9L44", "8L44", "7L28", "6L28"], focusblast: ["9M", "8M", "7M", "6M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], grassknot: ["9M", "8M", "7M", "6M"], @@ -68851,6 +71929,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lastresort: ["7T", "6T"], lowkick: ["9M", "8M", "7T", "6T"], lowsweep: ["9M", "8M", "7M", "6M"], + lunge: ["9M"], meanlook: ["9E", "8E"], mefirst: ["7E", "6E"], megakick: ["8M"], @@ -68893,11 +71972,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L32", "8M", "8L32", "7M", "6M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderpunch: ["9M", "8M", "7T", "6T"], torment: ["7M", "6M"], toxic: ["7M", "6M"], trailblaze: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], uturn: ["9M", "8M", "7M", "6M"], wingattack: ["9L4", "8L4", "7L8", "6L8"], workup: ["8M", "7M"], @@ -68911,7 +71992,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M"], allyswitch: ["8M", "7T"], attract: ["8M", "7M", "6M"], - charge: ["9L10", "8L10", "7L11", "6L11"], + charge: ["9M", "9L10", "8L10", "7L11", "6L11"], chargebeam: ["9M", "7M", "7L34", "6M", "6L34"], charm: ["9M", "9L20", "8M", "8L20", "7L14", "6L14"], confide: ["7M", "6M"], @@ -68925,7 +72006,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M", "7E", "6E"], electricterrain: ["9M", "8M"], electroball: ["9M", "8M"], - electroweb: ["8M", "7T", "6T"], + electroweb: ["9M", "8M", "7T", "6T"], + endeavor: ["9M"], endure: ["9M", "8M"], entrainment: ["9L55", "8L55", "7L39", "6L39"], facade: ["9M", "8M", "7M", "6M"], @@ -68962,7 +72044,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["9L35", "8M", "8L35", "7T", "7L31", "6T", "6L31"], substitute: ["9M", "8M", "7M", "6M"], sunnyday: ["9M", "8M", "7M", "6M"], - superfang: ["9L50", "8L50", "7T", "6T"], + superfang: ["9M", "9L50", "8L50", "7T", "6T"], swagger: ["7M", "6M"], swift: ["9M"], tackle: ["9L5", "8L5", "7L1", "6L1"], @@ -68995,8 +72077,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], covet: ["7T", "6T"], dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], earthpower: ["9M", "8M", "7T", "6T"], + endeavor: ["9M"], endure: ["9M", "8M"], explosion: ["7M", "6M"], facade: ["9M", "8M", "7M", "6M"], @@ -69005,10 +72089,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M"], frustration: ["7M", "6M"], gigaimpact: ["9M"], - gravity: ["7T", "6T"], + gravity: ["9M", "7T", "6T"], guardsplit: ["9L5", "8L5", "7L27", "6L27"], guardswap: ["8M"], - gyroball: ["8M", "7M", "6M"], + gyroball: ["9M", "8M", "7M", "6M"], hail: ["8M", "7M", "6M"], harden: ["9L1", "8L1", "7L1", "6L1"], heavyslam: ["9M"], @@ -69019,15 +72103,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["9M", "9L30", "8M", "8L30", "7M", "7L60", "6M", "6L60"], magiccoat: ["7T", "6T"], magnetrise: ["7T", "6T"], - meteorbeam: ["8T"], - mistyexplosion: ["8T"], + meteorbeam: ["9M", "8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M"], moonblast: ["9L55", "8L55", "7L50", "6L50"], naturepower: ["7M", "6M"], powergem: ["9M", "9L45", "8M", "8L45", "7L46", "6L46"], protect: ["9M", "8M", "7M", "6M"], psychic: ["9M", "8M", "7M", "6M"], - psychup: ["7M", "6M"], + psychup: ["9M", "7M", "6M"], raindance: ["9M"], reflect: ["9M", "8M", "7M", "7L18", "6M", "6L18"], rest: ["9M", "8M", "7M", "6M"], @@ -69040,12 +72124,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "7L70", "6M", "6L70"], sandstorm: ["9M", "8M", "7M", "6M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], secretpower: ["6M"], sharpen: ["7L8", "6L8"], skillswap: ["9M", "9L40", "8M", "8L40", "7T", "7L40", "6T", "6L40"], sleeptalk: ["9M", "8M", "7M", "6M"], - smackdown: ["9L10", "8L10", "7M", "7L12", "6M", "6L12"], + smackdown: ["9M", "9L10", "8L10", "7M", "7L12", "6M", "6L12"], snore: ["8M", "7T", "6T"], spikes: ["9M"], stealthrock: ["9M", "9L50", "8M", "8L50", "7T", "7L21", "6T", "6L21"], @@ -69076,7 +72160,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], counter: ["9E", "8E", "7E", "7S0", "6E"], - curse: ["9L41", "8L41", "7E", "6E"], + curse: ["9M", "9L41", "8L41", "7E", "6E"], doubleteam: ["7M", "6M"], dracometeor: ["9M", "8T", "7T", "6T"], dragonbreath: ["9L10", "8L10", "7L18", "6L18"], @@ -69089,7 +72173,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { infestation: ["7M", "6M"], irontail: ["8M", "7T", "7E", "6T", "6E"], lifedew: ["9E", "8E"], - muddywater: ["9L50", "8M", "8L50", "7L38", "6L38"], + muddywater: ["9M", "9L50", "8M", "8L50", "7L38", "6L38"], mudshot: ["9M", "8M"], outrage: ["9M", "8M", "7T", "6T"], poisontail: ["7E", "6E"], @@ -69101,10 +72185,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M"], secretpower: ["6M"], shockwave: ["7T", "6T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "8M", "7M", "6M"], - sludgewave: ["8M", "7M", "6M"], + sludgewave: ["9M", "8M", "7M", "6M"], snore: ["8M", "7T", "6T"], substitute: ["9M", "8M", "7M", "6M"], sunnyday: ["9M", "8M", "7M", "6M"], @@ -69134,7 +72218,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { charm: ["9M"], chillingwater: ["9M"], confide: ["7M", "6M"], - curse: ["9L43", "8L43"], + curse: ["9M", "9L43", "8L43"], doubleteam: ["7M", "6M"], dracometeor: ["9M", "8T", "7T", "6T"], dragonbreath: ["9L1", "8L1", "7L18", "6L18"], @@ -69147,7 +72231,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "8M", "7M", "6M"], infestation: ["7M", "6M"], irontail: ["8M", "7T", "6T"], - muddywater: ["9L56", "8M", "8L56", "7L38", "6L38"], + muddywater: ["9M", "9L56", "8M", "8L56", "7L38", "6L38"], mudshot: ["9M", "8M"], outrage: ["9M", "8M", "7T", "6T"], protect: ["9M", "9L15", "8M", "8L15", "7M", "7L9", "6M", "6L9"], @@ -69158,10 +72242,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M"], secretpower: ["6M"], shockwave: ["7T", "6T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "8M", "7M", "6M"], - sludgewave: ["8M", "7M", "6M"], + sludgewave: ["9M", "8M", "7M", "6M"], snore: ["8M", "7T", "6T"], substitute: ["9M", "8M", "7M", "6M"], sunnyday: ["9M", "8M", "7M", "6M"], @@ -69171,7 +72255,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thunder: ["9M"], thunderbolt: ["9M", "8M", "7M", "6M"], - toxic: ["7M", "6M"], + toxic: ["9M", "7M", "6M"], watergun: ["9L1", "8L1"], waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], }, @@ -69188,7 +72272,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], charm: ["9M"], chillingwater: ["9M"], - curse: ["9L43"], + curse: ["9M", "9L43"], dracometeor: ["9M"], dragonbreath: ["9L1"], dragonpulse: ["9M", "9L35"], @@ -69196,11 +72280,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M"], flail: ["9L20"], flashcannon: ["9M"], + gyroball: ["9M"], heavyslam: ["9M"], icebeam: ["9M"], icespinner: ["9M"], ironhead: ["9M", "9L49"], - muddywater: ["9L56"], + muddywater: ["9M", "9L56"], mudshot: ["9M"], outrage: ["9M"], protect: ["9M", "9L15"], @@ -69210,8 +72295,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M"], sandstorm: ["9M"], shelter: ["9L0"], + skittersmack: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], + sludgewave: ["9M"], steelbeam: ["9M"], substitute: ["9M"], sunnyday: ["9M"], @@ -69235,17 +72322,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "8M", "7M", "6M"], bodypress: ["9M", "8M"], bodyslam: ["9M", "9L49", "8M", "8L49", "7L32", "6L32"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], bubble: ["7L1", "6L1"], bulldoze: ["9M", "8M", "7M", "6M"], charm: ["9M"], chillingwater: ["9M"], confide: ["7M", "6M"], - curse: ["9L43", "8L43"], + curse: ["9M", "9L43", "8L43"], doubleteam: ["7M", "6M"], dracometeor: ["9M", "8T", "7T", "6T"], dragonbreath: ["9L1", "8L1", "7L18", "6L18"], + dragoncheer: ["9M"], dragonclaw: ["9M"], dragonpulse: ["9M", "8M", "8L35", "7T", "7L47", "6T", "6L47"], dragontail: ["9M", "7M", "6M"], @@ -69258,7 +72346,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flail: ["9L20", "8L20", "7L28", "6L28"], flamethrower: ["9M", "8M", "7M", "6M"], focusblast: ["9M", "8M", "7M", "6M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], hail: ["8M", "7M", "6M"], @@ -69269,10 +72357,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["6M"], infestation: ["7M", "6M"], irontail: ["8M", "7T", "6T"], + knockoff: ["9M"], laserfocus: ["7T"], megakick: ["8M"], megapunch: ["8M"], - muddywater: ["9L58", "8M", "8L58", "7L38", "6L38"], + muddywater: ["9M", "9L58", "8M", "8L58", "7L38", "6L38"], mudshot: ["9M", "8M"], outrage: ["9M", "8M", "7T", "7L1", "6T", "6L1"], poisontail: ["9M", "9L1", "8L1"], @@ -69284,12 +72373,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockslide: ["9M", "8M", "7M", "6M"], rocksmash: ["6M"], round: ["8M", "7M", "6M"], + scald: ["9M"], secretpower: ["6M"], shockwave: ["7T", "6T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "8M", "7M", "6M"], - sludgewave: ["8M", "7M", "6M"], + sludgewave: ["9M", "8M", "7M", "6M"], snore: ["8M", "7T", "6T"], stompingtantrum: ["9M", "8M", "7T"], strength: ["6M"], @@ -69305,10 +72395,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunder: ["9M", "8M", "7M", "6M"], thunderbolt: ["9M", "8M", "7M", "6M"], thunderpunch: ["9M", "8M", "7T", "6T"], - toxic: ["7M", "6M"], + toxic: ["9M", "7M", "6M"], watergun: ["9L1", "8L1"], waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], }, }, goodrahisui: { @@ -69318,12 +72408,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M"], bodypress: ["9M"], bodyslam: ["9M", "9L49"], + breakingswipe: ["9M"], bulldoze: ["9M"], charm: ["9M"], chillingwater: ["9M"], - curse: ["9L43"], + curse: ["9M", "9L43"], dracometeor: ["9M"], dragonbreath: ["9L1"], + dragoncheer: ["9M"], dragonclaw: ["9M"], dragonpulse: ["9M", "9L35"], dragontail: ["9M"], @@ -69337,6 +72429,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M"], flashcannon: ["9M"], gigaimpact: ["9M"], + gyroball: ["9M"], heavyslam: ["9M", "9L67"], hydropump: ["9M"], hyperbeam: ["9M"], @@ -69344,7 +72437,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icespinner: ["9M"], ironhead: ["9M", "9L49"], irontail: ["9L0"], - muddywater: ["9L58"], + knockoff: ["9M"], + lashout: ["9M"], + muddywater: ["9M", "9L58"], mudshot: ["9M"], outrage: ["9M"], protect: ["9M", "9L15"], @@ -69355,8 +72450,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sandstorm: ["9M"], scaryface: ["9M"], shelter: ["9L1"], + skittersmack: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], + sludgewave: ["9M"], steelbeam: ["9M"], stompingtantrum: ["9M"], substitute: ["9M"], @@ -69371,6 +72468,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M"], watergun: ["9L1"], waterpulse: ["9M", "9L25"], + weatherball: ["9M"], }, }, klefki: { @@ -69405,13 +72503,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magiccoat: ["7T", "6T"], magicroom: ["9L44", "8M", "8L44", "7T", "7L44", "6T", "6L44"], magnetrise: ["9E", "8E", "7T", "6T"], - metalsound: ["9L20", "8L20", "7L12", "6L12"], + metalsound: ["9M", "9L20", "8L20", "7L12", "6L12"], mirrorshot: ["7L34", "6L34"], mistyterrain: ["9M", "8M"], playrough: ["9M", "9L40", "8M", "8L40", "7L43", "6L43"], protect: ["9M", "8M", "7M", "6M"], psychic: ["9M", "8M", "7M", "6M"], - psychup: ["7M", "6M"], + psychup: ["9M", "7M", "6M"], psyshock: ["9M", "8M", "7M", "6M"], raindance: ["9M", "8M", "7M", "6M"], recycle: ["9L28", "8L28", "7T", "7L40", "6T", "6L40"], @@ -69422,6 +72520,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { safeguard: ["8M", "7M", "6M"], sandstorm: ["9M"], secretpower: ["6M"], + skittersmack: ["9M"], sleeptalk: ["9M", "8M", "7M", "6M"], snore: ["8M", "7T", "6T"], spikes: ["9M", "8M", "7L15", "6L15"], @@ -69443,139 +72542,237 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, phantump: { learnset: { - allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L5", "6L5"], + allyswitch: ["9E", "8M", "7T"], + astonish: ["9L1", "8L1", "7L5", "6L5"], attract: ["8M", "7M", "6M"], bestow: ["7E", "6E"], - branchpoke: ["8L4"], - bulldoze: ["8M", "7M", "6M"], + branchpoke: ["9L4", "8L4"], + bulldoze: ["9M", "8M", "7M", "6M"], confide: ["7M", "6M"], - confuseray: ["8L12", "7L1", "6L1"], - curse: ["8L32", "7L28", "6L28"], + confuseray: ["9M", "9L12", "8L12", "7L1", "6L1"], + curse: ["9M", "9L32", "8L32", "7L28", "6L28"], cut: ["6M"], - darkpulse: ["8M", "7M", "6M"], - destinybond: ["8L48", "7L39", "6L39"], - dig: ["8M", "6M"], - disable: ["8E"], + darkpulse: ["9M", "8M", "7M", "6M"], + destinybond: ["9L48", "8L48", "7L39", "6L39"], + dig: ["9M", "8M", "6M"], + disable: ["9E", "8E"], doubleteam: ["7M", "6M"], dreameater: ["7M", "6M"], - endure: ["8M"], - energyball: ["8M", "7M", "6M"], - facade: ["8M", "7M", "6M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], feintattack: ["7L19", "6L19"], - forestscurse: ["8L52", "7L35", "6L35"], - foulplay: ["8M", "7T", "6T"], + forestscurse: ["9L52", "8L52", "7L35", "6L35"], + foulplay: ["9M", "8M", "7T", "6T"], frustration: ["7M", "6M"], - gigadrain: ["8M", "7T", "6T"], - grassknot: ["8M", "7M", "6M"], - grassyglide: ["8T"], - growth: ["8L24", "7L8", "6L8"], + gigadrain: ["9M", "8M", "7T", "6T"], + grassknot: ["9M", "8M", "7M", "6M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growth: ["9L24", "8L24", "7L8", "6L8"], grudge: ["8E", "7E", "6E"], - hex: ["8M", "8L20"], + hex: ["9M", "9L20", "8M", "8L20"], hiddenpower: ["7M", "6M"], - hornleech: ["8L28", "7L54", "6L54"], - imprison: ["8M", "7E", "6E"], - ingrain: ["8L40", "7L13", "6L13"], - leechseed: ["8L8", "7L23", "6L23"], - magicalleaf: ["8M"], + hornleech: ["9L28", "8L28", "7L54", "6L54"], + imprison: ["9M", "8M", "7E", "6E"], + ingrain: ["9L40", "8L40", "7L13", "6L13"], + lashout: ["9M"], + leechseed: ["9L8", "8L8", "7L23", "6L23"], + magicalleaf: ["9M", "8M"], magiccoat: ["7T", "6T"], naturepower: ["7M", "6M"], - painsplit: ["7T", "6T"], - phantomforce: ["8M", "8L36", "7L45", "6L45"], - poisonjab: ["8M", "7M", "6M"], - poltergeist: ["8T"], + nightshade: ["9M"], + painsplit: ["9M", "7T", "6T"], + phantomforce: ["9M", "9L36", "8M", "8L36", "7L45", "6L45"], + poisonjab: ["9M", "8M", "7M", "6M"], + poltergeist: ["9M", "8T"], poweruppunch: ["7E"], - protect: ["8M", "7M", "6M"], - psychic: ["8M", "7M", "6M"], - reflect: ["8M", "7M", "6M"], - rest: ["8M", "7M", "6M"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychup: ["9M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], - rockslide: ["8M", "7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], rocksmash: ["6M"], roleplay: ["7T", "6T"], round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "6M"], secretpower: ["6M"], - seedbomb: ["8M", "7T", "6T"], - shadowball: ["8M", "7M", "6M"], - shadowclaw: ["8M", "7M", "6M"], - skillswap: ["8M", "7T", "6T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M"], + seedbomb: ["9M", "8M", "7T", "6T"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "8M", "7M", "6M"], + skillswap: ["9M", "8M", "7T", "6T"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], snore: ["8M", "7T", "6T"], - solarbeam: ["8M", "7M", "6M"], - spite: ["7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + spite: ["9M", "7T", "6T"], strength: ["6M"], - substitute: ["8M", "7M", "6M"], - suckerpunch: ["8E"], - sunnyday: ["8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + suckerpunch: ["9E", "8E"], + sunnyday: ["9M", "8M", "7M", "6M"], swagger: ["7M", "6M"], - tackle: ["8L1", "7L1", "6L1"], + tackle: ["9L1", "8L1", "7L1", "6L1"], telekinesis: ["7T"], - thief: ["8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], toxic: ["7M", "6M"], - trick: ["8M", "7T", "6T"], - trickroom: ["8M", "7M", "6M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T"], + trickroom: ["9M", "8M", "7M", "6M"], venomdrench: ["8M", "7E", "6E"], - willowisp: ["8M", "8L16", "7M", "7L31", "6M", "6L31"], - woodhammer: ["8L44", "7L49", "6L49"], + willowisp: ["9M", "9L16", "8M", "8L16", "7M", "7L31", "6M", "6L31"], + woodhammer: ["9L44", "8L44", "7L49", "6L49"], worryseed: ["7T", "6T"], }, }, trevenant: { learnset: { allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L5"], + astonish: ["9L1", "8L1", "7L1", "6L5"], attract: ["8M", "7M", "6M"], block: ["7T", "6T"], - branchpoke: ["8L1"], + branchpoke: ["9L1", "8L1"], brutalswing: ["8M", "7M"], - bulldoze: ["8M", "7M", "6M"], - calmmind: ["8M", "7M", "6M"], + bulldoze: ["9M", "8M", "7M", "6M"], + burningjealousy: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], confide: ["7M", "6M"], - confuseray: ["8L12", "7L1", "6L1"], - curse: ["8L32", "7L28", "6L28"], + confuseray: ["9M", "9L12", "8L12", "7L1", "6L1"], + curse: ["9M", "9L32", "8L32", "7L28", "6L28"], cut: ["6M"], + darkpulse: ["9M", "8M", "7M", "6M"], + destinybond: ["9L48", "8L48", "7L39", "6L39"], + dig: ["9M", "8M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "8M", "7T", "6T"], + dreameater: ["7M", "6M"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + feintattack: ["7L19", "6L19"], + focusblast: ["9M", "8M", "7M", "6M"], + forestscurse: ["9L52", "8L52", "7L35", "6L35"], + foulplay: ["9M", "8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "8M", "7T", "6T"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growth: ["9L24", "8L24", "7L1", "6L8"], + haze: ["9M"], + hex: ["9M", "9L20", "8M", "8L20"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hornleech: ["9L28", "8L28", "7L1", "6L1"], + hyperbeam: ["9M", "8M", "7M", "6M"], + imprison: ["9M", "8M"], + ingrain: ["9L40", "8L40", "7L13", "6L13"], + knockoff: ["9M"], + lashout: ["9M"], + leafstorm: ["9M", "8M"], + leechseed: ["9L1", "8L1", "7L23", "6L23"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T"], + naturepower: ["7M", "6M"], + nightshade: ["9M"], + painsplit: ["9M", "7T", "6T"], + phantomforce: ["9M", "9L36", "8M", "8L36", "7L45", "6L45"], + poisonjab: ["9M", "8M", "7M", "6M"], + poltergeist: ["9M", "8T"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychicnoise: ["9M"], + psychup: ["9M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L55"], + skillswap: ["9M", "8M", "7T", "6T"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + spite: ["9M", "7T", "6T"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["9M", "7M", "6M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T"], + trickroom: ["9M", "8M", "7M", "6M"], + venomdrench: ["8M"], + willowisp: ["9M", "9L16", "8M", "8L16", "7M", "7L31", "6M", "6L31"], + woodhammer: ["9L44", "8L44", "7L49", "6L49"], + worryseed: ["7T", "6T"], + xscissor: ["9M", "8M", "7M", "6M"], + }, + }, + pumpkaboo: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + bestow: ["7E", "6E"], + bulletseed: ["8M", "8L20", "7L26", "6L26"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["8L8", "7L1", "6L1"], + curse: ["8E", "7E"], darkpulse: ["8M", "7M", "6M"], - destinybond: ["8L48", "7L39", "6L39"], - dig: ["8M", "6M"], + destinybond: ["8E", "7E", "6E"], + disable: ["8E", "7E", "6E"], doubleteam: ["7M", "6M"], - drainpunch: ["8M", "7T", "6T"], dreameater: ["7M", "6M"], - earthquake: ["8M", "7M", "6M"], endure: ["8M"], energyball: ["8M", "7M", "6M"], + explosion: ["7M", "6M"], facade: ["8M", "7M", "6M"], - feintattack: ["7L19", "6L19"], - focusblast: ["8M", "7M", "6M"], - forestscurse: ["8L52", "7L35", "6L35"], + fireblast: ["8M", "7M", "6M"], + flamecharge: ["7M", "6M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], foulplay: ["8M", "7T", "6T"], frustration: ["7M", "6M"], gigadrain: ["8M", "7T", "6T"], - gigaimpact: ["8M", "7M", "6M"], grassknot: ["8M", "7M", "6M"], grassyglide: ["8T"], - growth: ["8L24", "7L1", "6L8"], - hex: ["8M", "8L20"], + gyroball: ["8M", "7M", "6M"], + hex: ["8M"], hiddenpower: ["7M", "6M"], - honeclaws: ["6M"], - hornleech: ["8L28", "7L1", "6L1"], - hyperbeam: ["8M", "7M", "6M"], imprison: ["8M"], - ingrain: ["8L40", "7L13", "6L13"], - leafstorm: ["8M"], - leechseed: ["8L1", "7L23", "6L23"], - magicalleaf: ["8M"], + incinerate: ["6M"], + leechseed: ["8L16", "7L20", "6L20"], + lightscreen: ["8M", "7M", "6M"], magiccoat: ["7T", "6T"], + mysticalfire: ["8M"], naturepower: ["7M", "6M"], - painsplit: ["7T", "6T"], - phantomforce: ["8M", "8L36", "7L45", "6L45"], - poisonjab: ["8M", "7M", "6M"], + painsplit: ["8L44", "7T", "7L42", "6T", "6L42"], poltergeist: ["8T"], - poweruppunch: ["6M"], protect: ["8M", "7M", "6M"], psychic: ["8M", "7M", "6M"], - reflect: ["8M", "7M", "6M"], + razorleaf: ["8L12", "7L16", "6L16"], rest: ["8M", "7M", "6M"], return: ["7M", "6M"], rockslide: ["8M", "7M", "6M"], @@ -69583,74 +72780,88 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { roleplay: ["7T", "6T"], round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "6M"], + scaryface: ["8M", "8L24", "7L4", "6L4"], secretpower: ["6M"], - seedbomb: ["8M", "7T", "6T"], - shadowball: ["8M", "7M", "6M"], - shadowclaw: ["8M", "8L0", "7M", "7L1", "6M", "6L55"], + seedbomb: ["8M", "8L32", "7T", "7L48", "6T", "6L48"], + shadowball: ["8M", "8L36", "7M", "7L36", "6M", "6L36"], + shadowsneak: ["8L4", "7L30", "6L30"], skillswap: ["8M", "7T", "6T"], skittersmack: ["8T"], sleeptalk: ["8M", "7M", "6M"], - snore: ["8M", "7T", "6T"], + sludgebomb: ["8M", "7M", "6M"], + snore: ["8M"], solarbeam: ["8M", "7M", "6M"], spite: ["7T", "6T"], - strength: ["6M"], substitute: ["8M", "7M", "6M"], sunnyday: ["8M", "7M", "6M"], swagger: ["7M", "6M"], - tackle: ["8L1", "7L1", "6L1"], + synthesis: ["7T", "6T"], telekinesis: ["7T"], thief: ["8M", "7M", "6M"], toxic: ["7M", "6M"], - trick: ["8M", "7T", "6T"], + trick: ["8M", "8L40", "7T", "7L1", "6T", "6L1"], + trickortreat: ["8L1", "7L23", "6L6"], trickroom: ["8M", "7M", "6M"], - venomdrench: ["8M"], - willowisp: ["8M", "8L16", "7M", "7L31", "6M", "6L31"], - woodhammer: ["8L44", "7L49", "6L49"], - worryseed: ["7T", "6T"], - xscissor: ["8M", "7M", "6M"], + willowisp: ["8M", "7M", "6M"], + worryseed: ["8L28", "7T", "7L11", "6T", "6L11"], }, }, - pumpkaboo: { + pumpkaboosuper: { + learnset: { + astonish: ["6S0"], + scaryface: ["6S0"], + shadowsneak: ["6S0"], + trickortreat: ["6S0"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["trickortreat", "astonish", "scaryface", "shadowsneak"], pokeball: "cherishball"}, + ], + }, + gourgeist: { learnset: { allyswitch: ["8M", "7T"], astonish: ["8L1", "7L1", "6L1"], attract: ["8M", "7M", "6M"], - bestow: ["7E", "6E"], + brutalswing: ["8M"], bulletseed: ["8M", "8L20", "7L26", "6L26"], chargebeam: ["7M", "6M"], confide: ["7M", "6M"], - confuseray: ["8L8", "7L1", "6L1"], - curse: ["8E", "7E"], + confuseray: ["8L1", "7L1", "6L1"], darkpulse: ["8M", "7M", "6M"], - destinybond: ["8E", "7E", "6E"], - disable: ["8E", "7E", "6E"], doubleteam: ["7M", "6M"], dreameater: ["7M", "6M"], endure: ["8M"], energyball: ["8M", "7M", "6M"], - explosion: ["7M", "6M"], + explosion: ["8L1", "7M", "7L1", "6M", "6L1"], facade: ["8M", "7M", "6M"], fireblast: ["8M", "7M", "6M"], flamecharge: ["7M", "6M"], flamethrower: ["8M", "7M", "6M"], flash: ["6M"], + focusblast: ["8M", "7M", "6M"], foulplay: ["8M", "7T", "6T"], frustration: ["7M", "6M"], gigadrain: ["8M", "7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], grassknot: ["8M", "7M", "6M"], grassyglide: ["8T"], gyroball: ["8M", "7M", "6M"], hex: ["8M"], hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], imprison: ["8M"], incinerate: ["6M"], leechseed: ["8L16", "7L20", "6L20"], lightscreen: ["8M", "7M", "6M"], magiccoat: ["7T", "6T"], + moonblast: ["8L1"], mysticalfire: ["8M"], + nastyplot: ["8M"], naturepower: ["7M", "6M"], painsplit: ["8L44", "7T", "7L42", "6T", "6L42"], + phantomforce: ["8M", "8L48", "7L1", "6L1"], poltergeist: ["8T"], + powerwhip: ["8M"], protect: ["8M", "7M", "6M"], psychic: ["8M", "7M", "6M"], razorleaf: ["8L12", "7L16", "6L16"], @@ -69661,103 +72872,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { roleplay: ["7T", "6T"], round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "6M"], - scaryface: ["8M", "8L24", "7L4", "6L4"], + scaryface: ["8M", "8L24", "7L1", "6L4"], secretpower: ["6M"], seedbomb: ["8M", "8L32", "7T", "7L48", "6T", "6L48"], shadowball: ["8M", "8L36", "7M", "7L36", "6M", "6L36"], - shadowsneak: ["8L4", "7L30", "6L30"], - skillswap: ["8M", "7T", "6T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M", "6M"], - sludgebomb: ["8M", "7M", "6M"], - snore: ["8M"], - solarbeam: ["8M", "7M", "6M"], - spite: ["7T", "6T"], - substitute: ["8M", "7M", "6M"], - sunnyday: ["8M", "7M", "6M"], - swagger: ["7M", "6M"], - synthesis: ["7T", "6T"], - telekinesis: ["7T"], - thief: ["8M", "7M", "6M"], - toxic: ["7M", "6M"], - trick: ["8M", "8L40", "7T", "7L1", "6T", "6L1"], - trickortreat: ["8L1", "7L23", "6L6"], - trickroom: ["8M", "7M", "6M"], - willowisp: ["8M", "7M", "6M"], - worryseed: ["8L28", "7T", "7L11", "6T", "6L11"], - }, - }, - pumpkaboosuper: { - learnset: { - astonish: ["6S0"], - scaryface: ["6S0"], - shadowsneak: ["6S0"], - trickortreat: ["6S0"], - }, - eventData: [ - {generation: 6, level: 50, moves: ["trickortreat", "astonish", "scaryface", "shadowsneak"], pokeball: "cherishball"}, - ], - }, - gourgeist: { - learnset: { - allyswitch: ["8M", "7T"], - astonish: ["8L1", "7L1", "6L1"], - attract: ["8M", "7M", "6M"], - brutalswing: ["8M"], - bulletseed: ["8M", "8L20", "7L26", "6L26"], - chargebeam: ["7M", "6M"], - confide: ["7M", "6M"], - confuseray: ["8L1", "7L1", "6L1"], - darkpulse: ["8M", "7M", "6M"], - doubleteam: ["7M", "6M"], - dreameater: ["7M", "6M"], - endure: ["8M"], - energyball: ["8M", "7M", "6M"], - explosion: ["8L1", "7M", "7L1", "6M", "6L1"], - facade: ["8M", "7M", "6M"], - fireblast: ["8M", "7M", "6M"], - flamecharge: ["7M", "6M"], - flamethrower: ["8M", "7M", "6M"], - flash: ["6M"], - focusblast: ["8M", "7M", "6M"], - foulplay: ["8M", "7T", "6T"], - frustration: ["7M", "6M"], - gigadrain: ["8M", "7T", "6T"], - gigaimpact: ["8M", "7M", "6M"], - grassknot: ["8M", "7M", "6M"], - grassyglide: ["8T"], - gyroball: ["8M", "7M", "6M"], - hex: ["8M"], - hiddenpower: ["7M", "6M"], - hyperbeam: ["8M", "7M", "6M"], - imprison: ["8M"], - incinerate: ["6M"], - leechseed: ["8L16", "7L20", "6L20"], - lightscreen: ["8M", "7M", "6M"], - magiccoat: ["7T", "6T"], - moonblast: ["8L1"], - mysticalfire: ["8M"], - nastyplot: ["8M"], - naturepower: ["7M", "6M"], - painsplit: ["8L44", "7T", "7L42", "6T", "6L42"], - phantomforce: ["8M", "8L48", "7L1", "6L1"], - poltergeist: ["8T"], - powerwhip: ["8M"], - protect: ["8M", "7M", "6M"], - psychic: ["8M", "7M", "6M"], - razorleaf: ["8L12", "7L16", "6L16"], - rest: ["8M", "7M", "6M"], - return: ["7M", "6M"], - rockslide: ["8M", "7M", "6M"], - rocksmash: ["6M"], - roleplay: ["7T", "6T"], - round: ["8M", "7M", "6M"], - safeguard: ["8M", "7M", "6M"], - scaryface: ["8M", "8L24", "7L1", "6L4"], - secretpower: ["6M"], - seedbomb: ["8M", "8L32", "7T", "7L48", "6T", "6L48"], - shadowball: ["8M", "8L36", "7M", "7L36", "6M", "6L36"], - shadowsneak: ["8L1", "7L30", "6L30"], + shadowsneak: ["8L1", "7L30", "6L30"], skillswap: ["8M", "7T", "6T"], skittersmack: ["8T"], sleeptalk: ["8M", "7M", "6M"], @@ -69793,8 +72912,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], crunch: ["9M", "9L33", "8M", "8L33"], - curse: ["9L9", "8L9", "7L22", "6L22"], - doubleedge: ["9L42", "8L42", "7L49", "6L49"], + curse: ["9M", "9L9", "8L9", "7L22", "6L22"], + doubleedge: ["9M", "9L42", "8L42", "7L49", "6L49"], doubleteam: ["7M", "6M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], @@ -69802,7 +72921,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["8M", "7M", "6M"], frostbreath: ["7M", "6M"], frustration: ["7M", "6M"], - gyroball: ["8M", "7M", "6M"], + gyroball: ["9M", "8M", "7M", "6M"], hail: ["8M", "7M", "6M"], harden: ["9L1", "8L1", "7L1", "6L1"], hiddenpower: ["7M", "6M"], @@ -69810,7 +72929,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "8M", "7M", "6M"], icefang: ["9M", "9L24", "8M", "8L24", "7L26", "6L26"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L12", "8M", "8L12", "7T", "7L10", "6T", "6L10"], irondefense: ["9M", "9L27", "8M", "8L27", "7T", "6T"], mirrorcoat: ["9E", "8E", "7E", "6E"], @@ -69859,8 +72978,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M", "6M"], crunch: ["9M", "9L33", "8M", "8L33", "7L1", "6L1"], - curse: ["9L9", "8L9", "7L22", "6L22"], - doubleedge: ["9L46", "8L46", "7L56", "6L56"], + curse: ["9M", "9L9", "8L9", "7L22", "6L22"], + doubleedge: ["9M", "9L46", "8L46", "7L56", "6L56"], doubleteam: ["7M", "6M"], earthquake: ["9M", "8M", "7M", "6M"], endure: ["9M", "8M"], @@ -69870,12 +72989,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frostbreath: ["7M", "6M"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], - gyroball: ["8M", "7M", "6M"], + gyroball: ["9M", "8M", "7M", "6M"], hail: ["8M", "7M", "6M"], harden: ["9L1", "8L1", "7L1", "6L1"], heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "8M", "7M", "6M"], iceball: ["7L30", "6L30"], @@ -69883,7 +73002,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icefang: ["9M", "9L24", "8M", "8L24", "7L26", "6L26"], icespinner: ["9M"], iciclecrash: ["9L51"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L12", "8M", "8L12", "7T", "7L10", "6T", "6L10"], irondefense: ["9M", "9L27", "8M", "8L27", "7T", "7L1", "6T", "6L1"], ironhead: ["9M", "8M", "7T", "6T"], @@ -69933,22 +73052,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M"], chillingwater: ["9M"], crunch: ["9M", "9L33"], - curse: ["9L9"], + curse: ["9M", "9L9"], dig: ["9M"], - doubleedge: ["9L46"], + doubleedge: ["9M", "9L46"], earthquake: ["9M"], endure: ["9M"], facade: ["9M"], gigaimpact: ["9M"], + gyroball: ["9M"], harden: ["9L1"], + hardpress: ["9M"], heavyslam: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], icebeam: ["9M"], icefang: ["9M", "9L24"], icespinner: ["9M"], + iciclespear: ["9M"], icywind: ["9M", "9L12"], irondefense: ["9M", "9L27"], ironhead: ["9M"], + meteorbeam: ["9M"], mountaingale: ["9L61"], powdersnow: ["9L1"], protect: ["9M", "9L15"], @@ -69994,7 +73118,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dragonpulse: ["9M", "8M", "7T", "6T"], dragonrush: ["9E", "8E"], dreameater: ["7M", "6M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M", "6M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], @@ -70027,11 +73151,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { steelwing: ["8M", "7M", "6M"], substitute: ["9M", "8M", "7M", "6M"], sunnyday: ["9M", "8M", "7M", "6M"], - superfang: ["9L32", "8L32", "7T", "7L43", "6T", "6L43"], + superfang: ["9M", "9L32", "8L32", "7T", "7L43", "6T", "6L43"], supersonic: ["9L8", "8L8", "7L1", "6L1"], swagger: ["7M", "6M"], swift: ["9M", "8M"], - switcheroo: ["7E", "6E"], + switcheroo: ["9E", "7E", "6E"], tackle: ["9L1", "8L1", "7L1", "6L1"], tailwind: ["9M", "9L49", "8L49", "7T", "7L35", "7E", "6T", "6L35", "6E"], takedown: ["9M"], @@ -70040,7 +73164,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "8M", "7M", "6M"], torment: ["7M", "6M"], toxic: ["7M", "6M"], - uproar: ["8M", "7T", "6T"], + uproar: ["9M", "8M", "7T", "6T"], uturn: ["9M", "8M", "7M", "6M"], waterpulse: ["7T", "6T"], whirlwind: ["9L28", "8L28", "7L40", "6L40"], @@ -70061,19 +73185,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L20", "8L20", "7L13", "6L13"], bodyslam: ["9M"], boomburst: ["9L62", "8L62", "7L1", "6L1"], + breakingswipe: ["9M"], brickbreak: ["9M", "8M", "7M", "6M"], confide: ["7M", "6M"], cut: ["6M"], darkpulse: ["9M", "8M", "7M", "6M"], defog: ["7T"], + doubleedge: ["9M"], doubleteam: ["9L12", "8L12", "7M", "6M"], dracometeor: ["9M", "8T", "7T", "6T"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M", "7M", "6M"], dragondance: ["9M", "8M"], dragonpulse: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1"], dragontail: ["9M"], dreameater: ["7M", "6M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M", "6M"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], @@ -70096,6 +73223,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { outrage: ["9M", "8M", "7T", "6T"], protect: ["9M", "8M", "7M", "6M"], psychic: ["9M", "8M", "7M", "6M"], + psychicnoise: ["9M"], razorwind: ["7L31", "6L31"], rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], @@ -70114,7 +73242,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { steelwing: ["8M", "7M", "6M"], substitute: ["9M", "8M", "7M", "6M"], sunnyday: ["9M", "8M", "7M", "6M"], - superfang: ["9L32", "8L32", "7T", "7L43", "6T", "6L43"], + superfang: ["9M", "9L32", "8L32", "7T", "7L43", "6T", "6L43"], supersonic: ["9L1", "8L1", "7L1", "6L1"], swagger: ["7M", "6M"], swift: ["9M", "8M"], @@ -70126,7 +73254,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "8M", "7M", "6M"], torment: ["7M", "6M"], toxic: ["7M", "6M"], - uproar: ["8M", "7T", "6T"], + uproar: ["9M", "8M", "7T", "6T"], uturn: ["9M", "8M", "7M", "6M"], waterpulse: ["9M", "7T", "6T"], whirlwind: ["9L28", "8L28", "7L40", "6L40"], @@ -70372,13 +73500,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eventData: [ {generation: 6, level: 70, moves: ["crunch", "earthquake", "camouflage", "dragonpulse"]}, {generation: 6, level: 100, moves: ["landswrath", "extremespeed", "glare", "outrage"], pokeball: "cherishball"}, - {generation: 7, level: 30, moves: ["safeguard", "dig", "bind", "landswrath"]}, // 10% + {generation: 7, level: 30, moves: ["safeguard", "dig", "bind", "landswrath"]}, {generation: 7, level: 50, moves: ["bind", "landswrath", "sandstorm", "haze"]}, {generation: 7, level: 50, isHidden: true, moves: ["bind", "landswrath", "sandstorm", "haze"]}, {generation: 7, level: 60, shiny: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, - {generation: 7, level: 60, shiny: true, isHidden: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, // 10% + {generation: 7, level: 60, shiny: true, isHidden: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, {generation: 7, level: 100, shiny: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, - {generation: 7, level: 100, shiny: true, isHidden: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, // 10% + {generation: 7, level: 100, shiny: true, isHidden: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, isHidden: true, moves: ["thousandarrows", "landswrath", "dragonpulse", "bind"]}, ], eventOnly: true, @@ -70401,11 +73529,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 7, level: 30, moves: ["safeguard", "dig", "bind", "landswrath"]}, - {generation: 7, level: 50, isHidden: true, moves: ["bind", "landswrath", "sandstorm", "haze"]}, // 50% + {generation: 7, level: 50, isHidden: true, moves: ["bind", "landswrath", "sandstorm", "haze"]}, {generation: 7, level: 50, isHidden: true, moves: ["safeguard", "dig", "bind", "landswrath"]}, {generation: 7, level: 60, shiny: true, isHidden: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, {generation: 7, level: 100, shiny: true, isHidden: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, - {generation: 8, level: 70, shiny: 1, isHidden: true, moves: ["thousandarrows", "landswrath", "dragonpulse", "bind"]}, // 50% + {generation: 8, level: 70, shiny: 1, isHidden: true, moves: ["thousandarrows", "landswrath", "dragonpulse", "bind"]}, ], eventOnly: true, }, @@ -70429,7 +73557,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { drainingkiss: ["9M", "8M"], earthpower: ["9M", "8M", "7T", "6T"], encore: ["9M", "8M"], - endeavor: ["7T", "6T"], + endeavor: ["9M", "7T", "6T"], endure: ["9M", "8M"], explosion: ["7M", "6M"], facade: ["9M", "8M", "7M", "6M"], @@ -70439,10 +73567,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], - gravity: ["7T", "6T"], + gravity: ["9M", "7T", "6T"], guardsplit: ["9L7", "8L7", "7L21", "6L27"], guardswap: ["8M"], - gyroball: ["8M", "7M", "6M"], + gyroball: ["9M", "8M", "7M", "6M"], hail: ["8M", "7M", "6M"], harden: ["9L1", "8L1", "7L1", "6L1"], healbell: ["7T", "6T"], @@ -70453,9 +73581,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lastresort: ["7T", "6T"], lightscreen: ["9M", "9L42", "8M", "8L42", "7M", "7L60", "6M", "6L60"], magnetrise: ["7T", "6T"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], metronome: ["9M", "8M"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], moonblast: ["9L77", "8L77", "7L50", "6L50", "6S0", "6S1"], mysticalfire: ["8M"], naturepower: ["7M", "6M"], @@ -70463,7 +73591,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powergem: ["9M", "9L63", "8M", "8L63", "7L40"], protect: ["9M", "8M", "7M", "6M"], psychic: ["9M", "8M", "7M", "6M"], - psychup: ["7M", "6M"], + psychup: ["9M", "7M", "6M"], psyshock: ["9M", "8M", "7M", "6M"], raindance: ["9M"], reflect: ["9M", "8M", "7M", "7L12", "6M", "6L18", "6S0", "6S1"], @@ -70476,12 +73604,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M", "6M"], safeguard: ["8M", "7M", "7L70", "6M", "6L70"], sandstorm: ["9M", "8M", "7M", "6M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], + scorchingsands: ["9M"], secretpower: ["6M"], sharpen: ["7L5", "6L8"], skillswap: ["9M", "9L56", "8M", "8L56", "7T", "7L35", "6T", "6L40"], sleeptalk: ["9M", "8M", "7M", "6M"], - smackdown: ["9L14", "8L14", "7M", "7L8", "6M", "6L12"], + smackdown: ["9M", "9L14", "8L14", "7M", "7L8", "6M", "6L12"], snore: ["8M", "7T", "6T"], snowscape: ["9M"], spikes: ["9M"], @@ -70518,7 +73647,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M", "6M"], confusion: ["9L1", "7L1", "6L1"], covet: ["7T", "6T"], - darkpulse: ["9M", "7M", "7L55", "6L55"], + darkpulse: ["9M", "9L55", "7M", "7L55", "6L55"], destinybond: ["9L1", "7L1", "6L1"], doubleteam: ["7M", "6M"], drainpunch: ["9M", "7T", "6T"], @@ -70527,17 +73656,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { embargo: ["7M", "6M"], endure: ["9M"], energyball: ["9M", "7M", "6M"], + expandingforce: ["9M"], facade: ["9M", "7M", "6M"], firepunch: ["9M", "7T", "6T"], flash: ["6M"], fling: ["9M", "7M", "6M"], focusblast: ["9M", "7M", "6M"], - focuspunch: ["7T", "6T"], + focuspunch: ["9M", "7T", "6T"], foulplay: ["9M", "7T", "6T"], frustration: ["7M", "6M"], + futuresight: ["9M"], gigaimpact: ["9M", "7M", "6M"], grassknot: ["9M", "7M", "6M"], - gravity: ["7T", "6T"], + gravity: ["9M", "7T", "6T"], guardsplit: ["9L29", "7L29", "6L29"], gunkshot: ["9M", "7T", "6T"], hiddenpower: ["7M", "6M"], @@ -70545,8 +73676,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperspacefury: ["9L85", "7L1", "6L1"], hyperspacehole: ["9L85", "7L1", "7S1", "6L1", "6S0"], icepunch: ["9M", "7T", "6T"], - knockoff: ["9L46", "7T", "7L46", "6T", "6L46"], + knockoff: ["9M", "9L46", "7T", "7L46", "6T", "6L46"], laserfocus: ["7T"], + lashout: ["9M"], lastresort: ["7T", "6T"], lightscreen: ["9M", "9L15", "7M", "7L15", "6M", "6L15"], magiccoat: ["7T", "7L10", "6T", "6L10"], @@ -70558,8 +73690,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "7M", "6M"], psybeam: ["9M", "9L19", "7L19", "6L15"], psychic: ["9M", "9L75", "7M", "7L75", "7S1", "6M", "6L75", "6S0"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["7M", "6M"], + psychup: ["9M", "7M", "6M"], psyshock: ["9M", "7M", "6M"], quash: ["7M", "6M"], raindance: ["9M", "7M", "6M"], @@ -70578,6 +73711,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shockwave: ["7T", "6T"], signalbeam: ["7T", "6T"], skillswap: ["9M", "9L25", "7T", "7L25", "6T", "6L25"], + skittersmack: ["9M"], sleeptalk: ["9M", "7M", "6M"], snatch: ["7T", "6T"], snore: ["7T", "6T"], @@ -70590,7 +73724,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { telekinesis: ["7T"], terablast: ["9M"], thief: ["9M", "7M", "6M"], - throatchop: ["7T"], + throatchop: ["9M", "7T"], thunderbolt: ["9M", "7M", "6M"], thunderpunch: ["9M", "7T", "6T"], thunderwave: ["9M", "7M", "6M"], @@ -70621,6 +73755,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["6M"], defog: ["7T"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M", "6M"], earthpower: ["9M", "8M", "7T", "6T"], earthquake: ["9M", "8M", "7M", "6M"], @@ -70639,9 +73774,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusenergy: ["8M"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], - gyroball: ["8M", "7M", "6M"], - haze: ["9L60", "8L60", "8S2", "7L11", "6L11"], - heatcrash: ["8M"], + gyroball: ["9M", "8M", "7M", "6M"], + haze: ["9M", "9L60", "8L60", "8S2", "7L11", "6L11"], + heatcrash: ["9M", "8M"], heatwave: ["9M", "8M", "7T", "6T"], heavyslam: ["9M", "8M"], hiddenpower: ["7M", "6M"], @@ -70658,21 +73793,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M", "8M"], rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], - roar: ["7M", "6M"], + roar: ["9M", "7M", "6M"], rockslide: ["9M", "8M", "7M", "6M"], rocksmash: ["6M"], rocktomb: ["9M"], round: ["8M", "7M", "6M"], sandstorm: ["9M", "8M", "7M", "6M"], - scald: ["9L48", "8M", "8L48", "7M", "7L32", "6M", "6L32"], + scald: ["9M", "9L48", "8M", "8L48", "7M", "7L32", "6M", "6L32"], scaryface: ["9M", "9L30", "8M", "8L30"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["6M"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "8M", "7M", "6M"], - sludgewave: ["8M", "7M", "6M"], - smackdown: ["7M", "6M"], + sludgewave: ["9M", "8M", "7M", "6M"], + smackdown: ["9M", "7M", "6M"], snore: ["8M", "7T", "6T"], solarbeam: ["9M", "8M", "7M", "6M"], steameruption: ["9L1", "8L72", "8S2", "7L1", "6L1", "6S0", "6S1"], @@ -70691,7 +73826,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "6M"], watergun: ["9L1", "8L1"], waterpulse: ["9M", "9L24", "8L24", "7T", "7L21", "6T", "6L21"], - weatherball: ["9L12", "8M", "8L12", "7L40", "6L40"], + weatherball: ["9M", "9L12", "8M", "8L12", "7L40", "6L40"], wildcharge: ["9M"], willowisp: ["9M", "8M", "7M", "6M"], }, @@ -70718,26 +73853,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { curse: ["7E"], defog: ["9E", "8E", "7T", "7E"], doubleteam: ["9E", "8E", "7M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], facade: ["9M", "8M", "7M"], falseswipe: ["9M", "8M", "7M"], - featherdance: ["9L33", "8L33", "7L39"], + featherdance: ["9M", "9L33", "8L33", "7L39"], foresight: ["7L18"], frustration: ["7M"], furyattack: ["7L29"], gigadrain: ["9M", "8M", "7T"], grassknot: ["9M", "8M", "7M"], grasspledge: ["9M", "8T", "7T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], growl: ["9L1", "8L1", "7L4"], - haze: ["7E"], + haze: ["9M", "7E"], helpinghand: ["9M"], hiddenpower: ["7M"], - knockoff: ["9E", "8E"], + knockoff: ["9M", "9E", "8E"], leafage: ["9L3", "8L3", "7L1"], leafblade: ["9L30", "8M", "8L30", "7L36"], leafstorm: ["9M"], @@ -70792,34 +73927,38 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bravebird: ["9M", "9L50", "8M", "8L50", "7L51"], bulletseed: ["9M"], confide: ["7M"], + confuseray: ["9M"], covet: ["7T"], defog: ["7T"], doubleteam: ["7M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], facade: ["9M", "8M", "7M"], falseswipe: ["9M", "8M", "7M"], - featherdance: ["9L45", "8L45", "7L46"], + featherdance: ["9M", "9L45", "8L45", "7L46"], foresight: ["7L19"], frustration: ["7M"], furyattack: ["7L33"], gigadrain: ["9M", "8M", "7T"], grassknot: ["9M", "8M", "7M"], grasspledge: ["9M", "8T", "7T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], growl: ["9L1", "8L1", "7L1"], + haze: ["9M"], helpinghand: ["9M"], hiddenpower: ["7M"], + knockoff: ["9M"], leafage: ["9L1", "8L1", "7L1"], leafblade: ["9L40", "8M", "8L40", "7L42"], leafstorm: ["9M"], - lightscreen: ["8M", "7M"], + lightscreen: ["9M", "8M", "7M"], magicalleaf: ["9M"], nastyplot: ["9M", "9L30", "8M", "8L30", "7L55"], naturepower: ["7M"], + nightshade: ["9M"], ominouswind: ["7L16"], peck: ["9L9", "8L9", "7L1"], pluck: ["9L25", "8L25", "7L24"], @@ -70870,15 +74009,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M"], confuseray: ["9M"], covet: ["7T"], + curse: ["9M"], defog: ["7T"], doubleteam: ["7M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], facade: ["9M", "8M", "7M"], falseswipe: ["9M", "8M", "7M"], - featherdance: ["9L51", "8L51", "7L49"], + featherdance: ["9M", "9L51", "8L51", "7L49"], foresight: ["7L19"], frenzyplant: ["9M", "8T", "7T"], frustration: ["7M"], @@ -70887,15 +74027,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M"], grassknot: ["9M", "8M", "7M"], grasspledge: ["9M", "8T", "7T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], growl: ["9L1", "8L1", "7L1"], + haze: ["9M"], helpinghand: ["9M"], hex: ["9M", "8M"], hiddenpower: ["7M"], hurricane: ["9M", "8M"], hyperbeam: ["9M", "8M"], imprison: ["9M", "8M"], + knockoff: ["9M"], laserfocus: ["7T"], leafage: ["9L1", "8L1", "7L1"], leafblade: ["9L44", "8M", "8L44", "7L44", "7S0"], @@ -70911,7 +74053,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { peck: ["9L9", "8L9", "7L1"], phantomforce: ["9M", "9L1", "8M", "8L1", "7L1", "7S0"], pluck: ["9L25", "8L25", "7L24"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M"], psychocut: ["8M"], raindance: ["9M"], @@ -70925,15 +74067,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "8M", "7M"], shadowclaw: ["9M", "8M", "7M"], shadowsneak: ["9L12", "8L12", "7L1", "7S0"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], skyattack: ["7T"], sleeptalk: ["9M", "8M", "7M"], - smackdown: ["7M"], + smackdown: ["9M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "8M", "7M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], spiritshackle: ["9L0", "8L0", "7L1"], - spite: ["9L1", "8L1", "7T"], + spite: ["9M", "9L1", "8L1", "7T"], steelwing: ["8M", "7M"], substitute: ["9M", "8M", "7M"], suckerpunch: ["9L37", "8L37", "7L38"], @@ -70968,28 +74110,37 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M", "9L30"], bulletseed: ["9M"], closecombat: ["9M"], + coaching: ["9M"], + confuseray: ["9M"], + dualwingbeat: ["9M"], endure: ["9M"], energyball: ["9M"], facade: ["9M"], falseswipe: ["9M"], - featherdance: ["9L51"], + featherdance: ["9M", "9L51"], focusblast: ["9M"], + focuspunch: ["9M"], frenzyplant: ["9M"], gigadrain: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], grasspledge: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growl: ["9L1"], + haze: ["9M"], helpinghand: ["9M"], hyperbeam: ["9M"], + knockoff: ["9M"], leafage: ["9L1"], leafblade: ["9L44"], leafstorm: ["9M", "9L1"], + lightscreen: ["9M"], lowkick: ["9M"], lowsweep: ["9M"], magicalleaf: ["9M"], nastyplot: ["9M"], + nightshade: ["9M"], peck: ["9L9"], pluck: ["9L25"], protect: ["9M"], @@ -71003,6 +74154,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M"], shadowsneak: ["9L12"], sleeptalk: ["9M"], + smackdown: ["9M"], solarbeam: ["9M"], substitute: ["9M"], suckerpunch: ["9L37"], @@ -71017,227 +74169,249 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], trailblaze: ["9M"], triplearrows: ["9L0"], + upperhand: ["9M"], uturn: ["9M", "9L1"], }, }, litten: { learnset: { - acrobatics: ["8M", "7M"], + acrobatics: ["9M", "8M", "7M"], attract: ["8M", "7M"], - bite: ["8L15", "7L22"], - bodyslam: ["8M", "7E"], - bulkup: ["8M", "7M"], + bite: ["9L15", "8L15", "7L22"], + bodyslam: ["9M", "8M", "7E"], + bulkup: ["9M", "8M", "7M"], confide: ["7M"], covet: ["7T"], - crunch: ["8M", "7E"], - doublekick: ["8L18", "7L16"], + crunch: ["9M", "8M", "7E"], + doubleedge: ["9M"], + doublekick: ["9L18", "8L18", "7L16"], doubleteam: ["7M"], - ember: ["8L3", "7L1"], - endeavor: ["7T"], - endure: ["8M"], - facade: ["8M", "7M"], - fakeout: ["8E", "7E"], - fireblast: ["8M", "7M"], - firefang: ["8M", "8L21", "7L14"], - firepledge: ["8T", "7T"], - firespin: ["8M"], - flamecharge: ["7M"], - flamethrower: ["8M", "8L30", "7M", "7L36"], - flareblitz: ["8M", "8L36", "7L43"], + ember: ["9L3", "8L3", "7L1"], + endeavor: ["9M", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["9E", "8E", "7E"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M", "9L21", "8M", "8L21", "7L14"], + firepledge: ["9M", "8T", "7T"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "7M"], + flamethrower: ["9M", "9L30", "8M", "8L30", "7M", "7L36"], + flareblitz: ["9M", "9L36", "8M", "8L36", "7L43"], frustration: ["7M"], - furyswipes: ["8L12", "7L29"], - growl: ["8L1", "7L4"], - heatwave: ["8M", "7T", "7E"], + furyswipes: ["9L12", "8L12", "7L29"], + growl: ["9L1", "8L1", "7L4"], + heatwave: ["9M", "8M", "7T", "7E"], + helpinghand: ["9M"], hiddenpower: ["7M"], - leechlife: ["8M", "7M"], + leechlife: ["9M", "8M", "7M"], leer: ["7L11"], - lick: ["8L6", "7L8"], - nastyplot: ["8M", "7E"], - outrage: ["8M", "7T", "7L46"], - overheat: ["8M", "7M"], - partingshot: ["8E"], + lick: ["9L6", "8L6", "7L8"], + nastyplot: ["9M", "8M", "7E"], + outrage: ["9M", "8M", "7T", "7L46"], + overheat: ["9M", "8M", "7M"], + partingshot: ["9E", "8E"], payday: ["8M"], - powertrip: ["8E", "7E"], - protect: ["8M", "7M"], - rest: ["8M", "7M"], + powertrip: ["9E", "8E", "7E"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], revenge: ["8M", "7E"], - roar: ["8L9", "7M", "7L18"], + roar: ["9M", "9L9", "8L9", "7M", "7L18"], round: ["8M", "7M"], - scaryface: ["8M", "8L24", "7L39"], - scratch: ["8L1", "7L1"], - shadowclaw: ["8M", "7M"], - sleeptalk: ["8M", "7M"], + scaryface: ["9M", "9L24", "8M", "8L24", "7L39"], + scratch: ["9L1", "8L1", "7L1"], + shadowclaw: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], - swagger: ["8L27", "7M", "7L25"], - swordsdance: ["8M", "7M"], - taunt: ["8M", "7M"], - thrash: ["8L33", "7L32"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["9L27", "8L27", "7M", "7L25"], + swordsdance: ["9M", "8M", "7M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + temperflare: ["9M"], + terablast: ["9M"], + thrash: ["9L33", "8L33", "7L32"], torment: ["7M"], toxic: ["7M"], - uturn: ["8M", "7M"], - willowisp: ["8M", "7M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M"], + willowisp: ["9M", "8M", "7M"], workup: ["8M", "7M"], }, }, torracat: { learnset: { - acrobatics: ["8M", "7M"], + acrobatics: ["9M", "8M", "7M"], attract: ["8M", "7M"], - bite: ["8L15", "7L24"], - bodyslam: ["8M"], - bulkup: ["8M", "7M"], + bite: ["9L15", "8L15", "7L24"], + bodyslam: ["9M", "8M"], + bulkup: ["9M", "8M", "7M"], confide: ["7M"], covet: ["7T"], - crunch: ["8M"], - doublekick: ["8L20", "7L16"], + crunch: ["9M", "8M"], + doubleedge: ["9M"], + doublekick: ["9L20", "8L20", "7L16"], doubleteam: ["7M"], dualchop: ["7T"], - ember: ["8L1", "7L1"], - endeavor: ["7T"], - endure: ["8M"], - facade: ["8M", "7M"], - fireblast: ["8M", "7M"], - firefang: ["8M", "8L25", "7L14"], - firepledge: ["8T", "7T"], - firespin: ["8M"], - flamecharge: ["7M"], - flamethrower: ["8M", "8L40", "7M", "7L42"], - flareblitz: ["8M", "8L50", "7L51"], + ember: ["9L1", "8L1", "7L1"], + endeavor: ["9M", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M", "9L25", "8M", "8L25", "7L14"], + firepledge: ["9M", "8T", "7T"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "7M"], + flamethrower: ["9M", "9L40", "8M", "8L40", "7M", "7L42"], + flareblitz: ["9M", "9L50", "8M", "8L50", "7L51"], frustration: ["7M"], - furyswipes: ["8L12", "7L33"], - growl: ["8L1", "7L1"], - heatwave: ["8M", "7T"], + furyswipes: ["9L12", "8L12", "7L33"], + growl: ["9L1", "8L1", "7L1"], + heatwave: ["9M", "8M", "7T"], + helpinghand: ["9M"], hiddenpower: ["7M"], - leechlife: ["8M", "7M"], + leechlife: ["9M", "8M", "7M"], leer: ["7L11"], - lick: ["8L1", "7L1"], - nastyplot: ["8M"], - outrage: ["8M", "7T", "7L55"], - overheat: ["8M", "7M"], + lick: ["9L1", "8L1", "7L1"], + nastyplot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "7L55"], + overheat: ["9M", "8M", "7M"], payday: ["8M"], - protect: ["8M", "7M"], - rest: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], revenge: ["8M"], - roar: ["8L9", "7M", "7L19"], + roar: ["9M", "9L9", "8L9", "7M", "7L19"], round: ["8M", "7M"], - scaryface: ["8M", "8L30", "7L46"], - scratch: ["8L1", "7L1"], - shadowclaw: ["8M", "7M"], - sleeptalk: ["8M", "7M"], + scaryface: ["9M", "9L30", "8M", "8L30", "7L46"], + scratch: ["9L1", "8L1", "7L1"], + shadowclaw: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], - swagger: ["8L35", "7M", "7L28"], - swordsdance: ["8M", "7M"], - taunt: ["8M", "7M"], - thrash: ["8L45", "7L37"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["9L35", "8L35", "7M", "7L28"], + swordsdance: ["9M", "8M", "7M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + temperflare: ["9M"], + terablast: ["9M"], + thrash: ["9L45", "8L45", "7L37"], torment: ["7M"], toxic: ["7M"], - uturn: ["8M", "7M"], - willowisp: ["8M", "7M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M"], + willowisp: ["9M", "8M", "7M"], workup: ["8M", "7M"], }, }, incineroar: { learnset: { - acrobatics: ["8M", "7M"], + acrobatics: ["9M", "8M", "7M"], + aerialace: ["9M"], assurance: ["8M"], attract: ["8M", "7M"], + batonpass: ["9M"], bind: ["7T"], - bite: ["8L15", "7L24"], - blastburn: ["8T", "7T"], + bite: ["9L15", "8L15", "7L24"], + blastburn: ["9M", "8T", "7T"], blazekick: ["8M"], - bodyslam: ["8M"], - brickbreak: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], brutalswing: ["8M", "7M"], - bulkup: ["8M", "8L1", "7M", "7L1"], - bulldoze: ["8M", "7M"], - burningjealousy: ["8T"], - closecombat: ["8M"], + bulkup: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + bulldoze: ["9M", "8M", "7M"], + burningjealousy: ["9M", "8T"], + closecombat: ["9M", "8M"], confide: ["7M"], covet: ["7T"], - crosschop: ["8L1", "7L66"], - crunch: ["8M"], - darkestlariat: ["8M", "8L0", "7L1", "7S0"], - darkpulse: ["8M", "7M"], - doublekick: ["8L20", "7L16"], + crosschop: ["9L1", "8L1", "7L66"], + crunch: ["9M", "8M"], + darkestlariat: ["9L0", "8M", "8L0", "7L1", "7S0"], + darkpulse: ["9M", "8M", "7M"], + doubleedge: ["9M"], + doublekick: ["9L20", "8L20", "7L16"], doubleteam: ["7M"], - drainpunch: ["8M", "7T"], + drainpunch: ["9M", "8M", "7T"], dualchop: ["7T"], - earthquake: ["8M", "7M"], + earthquake: ["9M", "8M", "7M"], embargo: ["7M"], - ember: ["8L1", "7L1"], - endeavor: ["7T"], - endure: ["8M"], - facade: ["8M", "7M"], + ember: ["9L1", "8L1", "7L1"], + endeavor: ["9M", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], fakeout: ["7S0"], - fireblast: ["8M", "7M"], - firefang: ["8M", "8L25", "7L14"], - firepledge: ["8T", "7T"], - firepunch: ["8M", "7T"], - firespin: ["8M"], - flamecharge: ["7M"], - flamethrower: ["8M", "8L44", "7M", "7L44"], - flareblitz: ["8M", "8L58", "7L55", "7S0"], - fling: ["8M", "7M"], - focusblast: ["8M", "7M"], - focuspunch: ["7T"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M", "9L25", "8M", "8L25", "7L14"], + firepledge: ["9M", "8T", "7T"], + firepunch: ["9M", "8M", "7T"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "7M"], + flamethrower: ["9M", "9L44", "8M", "8L44", "7M", "7L44"], + flareblitz: ["9M", "9L58", "8M", "8L58", "7L55", "7S0"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], frustration: ["7M"], - furyswipes: ["8L12", "7L33"], - gigaimpact: ["8M", "7M"], - growl: ["8L1", "7L1"], - heatcrash: ["8M"], - heatwave: ["8M", "7T"], + furyswipes: ["9L12", "8L12", "7L33"], + gigaimpact: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L1"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "8M", "7T"], + helpinghand: ["9M"], hiddenpower: ["7M"], - hyperbeam: ["8M", "7M"], - ironhead: ["8M", "7T"], - knockoff: ["7T"], - lashout: ["8T"], - leechlife: ["8M", "7M"], + hyperbeam: ["9M", "8M", "7M"], + ironhead: ["9M", "8M", "7T"], + knockoff: ["9M", "7T"], + lashout: ["9M", "8T"], + leechlife: ["9M", "8M", "7M"], leer: ["7L11"], - lick: ["8L1", "7L1"], - lowkick: ["8M", "7T"], - lowsweep: ["8M", "7M"], + lick: ["9L1", "8L1", "7L1"], + lowkick: ["9M", "8M", "7T"], + lowsweep: ["9M", "8M", "7M"], megakick: ["8M"], megapunch: ["8M"], - nastyplot: ["8M"], - outrage: ["8M", "7T", "7L60"], - overheat: ["8M", "7M"], + nastyplot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "7L60"], + overheat: ["9M", "8M", "7M"], payday: ["8M"], - protect: ["8M", "7M"], + protect: ["9M", "8M", "7M"], quash: ["7M"], - rest: ["8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], revenge: ["8M"], - reversal: ["8M"], - roar: ["8L9", "7M", "7L19"], + reversal: ["9M", "8M"], + roar: ["9M", "9L9", "8L9", "7M", "7L19"], round: ["8M", "7M"], - scaryface: ["8M", "8L30", "7L49"], - scorchingsands: ["8T"], - scratch: ["8L1", "7L1"], - shadowclaw: ["8M", "7M"], - sleeptalk: ["8M", "7M"], - snarl: ["8M", "7M"], + scaryface: ["9M", "9L30", "8M", "8L30", "7L49"], + scorchingsands: ["9M", "8T"], + scratch: ["9L1", "8L1", "7L1"], + shadowclaw: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], snatch: ["7T"], snore: ["8M", "7T"], - stompingtantrum: ["8M", "7T"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], + stompingtantrum: ["9M", "8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], superpower: ["8M", "7T"], - swagger: ["8L32", "7M", "7L28"], - swordsdance: ["8M", "7M"], - taunt: ["8M", "7M"], - thrash: ["8L51", "7L38"], - throatchop: ["8M", "8L1", "7T", "7L1"], - thunderpunch: ["8M", "7T"], + swagger: ["9L32", "8L32", "7M", "7L28"], + swordsdance: ["9M", "8M", "7M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L51", "8L51", "7L38"], + throatchop: ["9M", "9L1", "8M", "8L1", "7T", "7L1"], + thunderpunch: ["9M", "8M", "7T"], torment: ["7M"], toxic: ["7M"], - uturn: ["8M", "7M", "7S0"], - willowisp: ["8M", "7M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "7S0"], + willowisp: ["9M", "8M", "7M"], workup: ["8M", "7M"], }, eventData: [ @@ -71246,211 +74420,229 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, popplio: { learnset: { - acrobatics: ["8M", "7M"], - amnesia: ["8M", "7E"], - aquajet: ["8L9", "7L14"], - aquaring: ["8E", "7E"], + acrobatics: ["9M", "8M", "7M"], + amnesia: ["9M", "8M", "7E"], + aquajet: ["9L9", "8L9", "7L14"], + aquaring: ["9E", "8E", "7E"], aquatail: ["7T"], aromaticmist: ["7E"], attract: ["8M", "7M"], - babydolleyes: ["8L12", "7L11"], - blizzard: ["8M", "7M"], + babydolleyes: ["9L12", "8L12", "7L11"], + blizzard: ["9M", "8M", "7M"], brine: ["8M"], - bubblebeam: ["8L21", "7L22"], + bubblebeam: ["9L21", "8L21", "7L22"], captivate: ["7L39"], - charm: ["8M", "7E"], + charm: ["9M", "8M", "7E"], + chillingwater: ["9M"], confide: ["7M"], covet: ["7T"], - disarmingvoice: ["8L6", "7L8"], + disarmingvoice: ["9M", "9L6", "8L6", "7L8"], dive: ["8M"], doubleslap: ["7L29"], doubleteam: ["7M"], - drainingkiss: ["8M"], + drainingkiss: ["9M", "8M"], echoedvoice: ["7M"], - encore: ["8M", "8L24", "7L18"], - endure: ["8M"], - facade: ["8M", "7M"], - flipturn: ["8T"], + encore: ["9M", "9L24", "8M", "8L24", "7L18"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + flipturn: ["9M", "8T"], frustration: ["7M"], - growl: ["8L1", "7L4"], + growl: ["9L1", "8L1", "7L4"], hail: ["8M", "7M"], - helpinghand: ["8M", "7T"], + helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], - hydropump: ["8M", "8L36", "7L43"], - hypervoice: ["8M", "8L30", "7T", "7L32"], - icebeam: ["8M", "7M"], - icywind: ["8M", "8L15", "7T", "7L16"], + hydropump: ["9M", "9L36", "8M", "8L36", "7L43"], + hypervoice: ["9M", "9L30", "8M", "8L30", "7T", "7L32"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + icywind: ["9M", "9L15", "8M", "8L15", "7T", "7L16"], irontail: ["8M", "7T"], - lifedew: ["8E"], - mistyterrain: ["8M", "8L27", "7L46"], - moonblast: ["8L33", "7L36"], - perishsong: ["8E", "7E"], - playrough: ["8M"], - pound: ["8L1", "7L1"], - protect: ["8M", "7M"], - raindance: ["8M", "7M"], - rest: ["8M", "7M"], + lifedew: ["9E", "8E"], + mistyterrain: ["9M", "9L27", "8M", "8L27", "7L46"], + moonblast: ["9L33", "8L33", "7L36"], + perishsong: ["9E", "8E", "7E"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], round: ["8M", "7M"], scald: ["8M", "7M"], - sing: ["8L18", "7L25"], - sleeptalk: ["8M", "7M"], + sing: ["9L18", "8L18", "7L25"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - substitute: ["8M", "7M"], - surf: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], swagger: ["7M"], + swift: ["9M"], + terablast: ["9M"], toxic: ["7M"], - tripleaxel: ["8T"], - uproar: ["8M", "7T"], - waterfall: ["8M", "7M"], - watergun: ["8L3", "7L1"], - waterpledge: ["8T", "7T"], - waterpulse: ["7T"], - whirlpool: ["8M"], + tripleaxel: ["9M", "8T"], + uproar: ["9M", "8M", "7T"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L3", "8L3", "7L1"], + waterpledge: ["9M", "8T", "7T"], + waterpulse: ["9M", "7T"], + whirlpool: ["9M", "8M"], wonderroom: ["8M", "7T", "7E"], workup: ["8M", "7M"], }, }, brionne: { learnset: { - acrobatics: ["8M", "7M"], - amnesia: ["8M"], - aquajet: ["8L9", "7L14"], + acrobatics: ["9M", "8M", "7M"], + amnesia: ["9M", "8M"], + aquajet: ["9L9", "8L9", "7L14"], aquatail: ["7T"], attract: ["8M", "7M"], - babydolleyes: ["8L12", "7L11"], - blizzard: ["8M", "7M"], + babydolleyes: ["9L12", "8L12", "7L11"], + blizzard: ["9M", "8M", "7M"], + bodyslam: ["9M"], brine: ["8M"], - bubblebeam: ["8L25", "7L24"], + bubblebeam: ["9L25", "8L25", "7L24"], captivate: ["7L46"], - charm: ["8M"], + charm: ["9M", "8M"], + chillingwater: ["9M"], confide: ["7M"], covet: ["7T"], - disarmingvoice: ["8L1", "7L1"], + disarmingvoice: ["9M", "9L1", "8L1", "7L1"], dive: ["8M"], doubleslap: ["7L33"], doubleteam: ["7M"], - drainingkiss: ["8M"], + drainingkiss: ["9M", "8M"], echoedvoice: ["7M"], - encore: ["8M", "8L30", "7L19"], - endure: ["8M"], - facade: ["8M", "7M"], - flipturn: ["8T"], + encore: ["9M", "9L30", "8M", "8L30", "7L19"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + flipturn: ["9M", "8T"], frustration: ["7M"], - growl: ["8L1", "7L1"], + growl: ["9L1", "8L1", "7L1"], hail: ["8M", "7M"], - helpinghand: ["8M", "7T"], + helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], - hydropump: ["8M", "8L50", "7L51"], - hypervoice: ["8M", "8L40", "7T", "7L37"], - icebeam: ["8M", "7M"], - icywind: ["8M", "8L15", "7T", "7L16"], + hydropump: ["9M", "9L50", "8M", "8L50", "7L51"], + hypervoice: ["9M", "9L40", "8M", "8L40", "7T", "7L37"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + icywind: ["9M", "9L15", "8M", "8L15", "7T", "7L16"], irontail: ["8M", "7T"], - mistyterrain: ["8M", "8L35", "7L55"], - moonblast: ["8L45", "7L42"], - playrough: ["8M"], - pound: ["8L1", "7L1"], - protect: ["8M", "7M"], - raindance: ["8M", "7M"], - rest: ["8M", "7M"], + mistyterrain: ["9M", "9L35", "8M", "8L35", "7L55"], + moonblast: ["9L45", "8L45", "7L42"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], round: ["8M", "7M"], scald: ["8M", "7M"], - sing: ["8L20", "7L28"], - sleeptalk: ["8M", "7M"], + sing: ["9L20", "8L20", "7L28"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - substitute: ["8M", "7M"], - surf: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], swagger: ["7M"], + swift: ["9M"], + terablast: ["9M"], toxic: ["7M"], - tripleaxel: ["8T"], - uproar: ["8M", "7T"], - waterfall: ["8M", "7M"], - watergun: ["8L1", "7L1"], - waterpledge: ["8T", "7T"], - waterpulse: ["7T"], - whirlpool: ["8M"], + tripleaxel: ["9M", "8T"], + uproar: ["9M", "8M", "7T"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L1", "8L1", "7L1"], + waterpledge: ["9M", "8T", "7T"], + waterpulse: ["9M", "7T"], + whirlpool: ["9M", "8M"], wonderroom: ["8M", "7T"], workup: ["8M", "7M"], }, }, primarina: { learnset: { - acrobatics: ["8M", "7M"], - amnesia: ["8M"], - aquajet: ["8L9", "7L14"], + acrobatics: ["9M", "8M", "7M"], + alluringvoice: ["9M"], + amnesia: ["9M", "8M"], + aquajet: ["9L9", "8L9", "7L14"], aquatail: ["7T"], attract: ["8M", "7M"], - babydolleyes: ["8L12", "7L11"], - blizzard: ["8M", "7M"], + babydolleyes: ["9L12", "8L12", "7L11"], + blizzard: ["9M", "8M", "7M"], + bodyslam: ["9M"], brine: ["8M"], - bubblebeam: ["8L25", "7L24"], - calmmind: ["8M"], + bubblebeam: ["9L25", "8L25", "7L24"], + calmmind: ["9M", "8M"], captivate: ["7L49"], - charm: ["8M"], + charm: ["9M", "8M"], + chillingwater: ["9M"], confide: ["7M"], covet: ["7T"], - dazzlinggleam: ["8M", "7M"], - disarmingvoice: ["8L1", "7L1"], + dazzlinggleam: ["9M", "8M", "7M"], + disarmingvoice: ["9M", "9L1", "8L1", "7L1"], dive: ["8M"], doubleslap: ["7L33"], doubleteam: ["7M"], - drainingkiss: ["8M"], + drainingkiss: ["9M", "8M"], echoedvoice: ["7M"], - encore: ["8M", "8L30", "7L19"], - endure: ["8M"], - energyball: ["8M", "7M"], - facade: ["8M", "7M"], - flipturn: ["8T"], + encore: ["9M", "9L30", "8M", "8L30", "7L19"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flipturn: ["9M", "8T"], frustration: ["7M"], - gigaimpact: ["8M", "7M"], - growl: ["8L1", "7L1"], + gigaimpact: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L1"], hail: ["8M", "7M"], - helpinghand: ["8M", "7T"], + haze: ["9M"], + helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], - hydrocannon: ["8T", "7T"], - hydropump: ["8M", "8L58", "7L55"], - hyperbeam: ["8M"], - hypervoice: ["8M", "8L44", "7T", "7L38", "7S0"], - icebeam: ["8M", "7M"], - icywind: ["8M", "8L15", "7T", "7L16", "7S0"], + hydrocannon: ["9M", "8T", "7T"], + hydropump: ["9M", "9L58", "8M", "8L58", "7L55"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "9L44", "8M", "8L44", "7T", "7L38", "7S0"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + icywind: ["9M", "9L15", "8M", "8L15", "7T", "7L16", "7S0"], irontail: ["8M", "7T"], - lightscreen: ["8M", "7M"], - liquidation: ["8M", "7T"], + lightscreen: ["9M", "8M", "7M"], + liquidation: ["9M", "8M", "7T"], magiccoat: ["7T"], - mistyexplosion: ["8T"], - mistyterrain: ["8M", "8L37", "7L60"], - moonblast: ["8L51", "7L44", "7S0"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "9L37", "8M", "8L37", "7L60"], + moonblast: ["9L51", "8L51", "7L44", "7S0"], perishsong: ["7S0"], - playrough: ["8M"], - pound: ["8L1", "7L1"], - protect: ["8M", "7M"], - psychic: ["8M", "7M"], - psychup: ["7M"], - raindance: ["8M", "7M"], - reflect: ["8M", "7M"], - rest: ["8M", "7M"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], round: ["8M", "7M"], scald: ["8M", "7M"], - shadowball: ["8M", "7M"], - sing: ["8L20", "7L28"], - sleeptalk: ["8M", "7M"], + shadowball: ["9M", "8M", "7M"], + sing: ["9L20", "8L20", "7L28"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - sparklingaria: ["8L0", "7L1"], - storedpower: ["8M"], - substitute: ["8M", "7M"], - surf: ["8M", "7M"], + snowscape: ["9M"], + sparklingaria: ["9L0", "8L0", "7L1"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], swagger: ["7M"], + swift: ["9M"], + terablast: ["9M"], toxic: ["7M"], - tripleaxel: ["8T"], - uproar: ["8M", "7T"], - waterfall: ["8M", "7M"], - watergun: ["8L1", "7L1"], - waterpledge: ["8T", "7T"], - waterpulse: ["7T"], - weatherball: ["8M"], - whirlpool: ["8M"], + tripleaxel: ["9M", "8T"], + uproar: ["9M", "8M", "7T"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L1", "8L1", "7L1"], + waterpledge: ["9M", "8T", "7T"], + waterpulse: ["9M", "7T"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], wonderroom: ["8M", "7T"], workup: ["8M", "7M"], }, @@ -71460,157 +74652,199 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, pikipek: { learnset: { - aerialace: ["7M"], + acrobatics: ["9M"], + aerialace: ["9M", "7M"], + aircutter: ["9M"], + airslash: ["9M"], attract: ["7M"], - boomburst: ["7E"], - bravebird: ["7E"], - brickbreak: ["7M"], - bulletseed: ["7L31"], + boomburst: ["9E", "7E"], + bravebird: ["9M", "7E"], + brickbreak: ["9M", "7M"], + bulletseed: ["9M", "9L31", "7L31"], confide: ["7M"], defog: ["7T"], doubleteam: ["7M"], - drillpeck: ["7L27"], - echoedvoice: ["7M", "7L7"], - featherdance: ["7L33"], - flamecharge: ["7M"], - fly: ["7M"], + drillpeck: ["9L27", "7L27"], + dualwingbeat: ["9M"], + echoedvoice: ["9L7", "7M", "7L7"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M", "9L33", "7L33"], + flamecharge: ["9M", "7M"], + fly: ["9M", "7M"], frustration: ["7M"], - furyattack: ["7L21"], - growl: ["7L3"], - gunkshot: ["7T"], - heatwave: ["7T"], + furyattack: ["9L21", "7L21"], + growl: ["9L3", "7L3"], + gunkshot: ["9M", "9E", "7T"], + heatwave: ["9M", "7T"], + helpinghand: ["9M"], hiddenpower: ["7M"], - hypervoice: ["7T", "7L37"], - knockoff: ["7T"], + hypervoice: ["9M", "9L37", "7T", "7L37"], + knockoff: ["9M", "7T"], mirrormove: ["7E"], - peck: ["7L1"], - pluck: ["7L15"], - protect: ["7M"], - rest: ["7M"], + peck: ["9L1", "7L1"], + pluck: ["9L15", "7L15"], + protect: ["9M", "7M"], + rest: ["9M", "7M"], return: ["7M"], - rocksmash: ["7L9"], - roost: ["7M", "7L19"], + rocksmash: ["9L9", "7L9"], + roost: ["9L19", "7M", "7L19"], round: ["7M"], - screech: ["7L25"], - skyattack: ["7T"], - sleeptalk: ["7M"], - smackdown: ["7M"], + screech: ["9L25", "7L25"], + skyattack: ["9E", "7T"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "7M"], snore: ["7T"], steelwing: ["7M"], - substitute: ["7M"], - sunnyday: ["7M"], - supersonic: ["7L13"], + substitute: ["9M", "7M"], + sunnyday: ["9M", "7M"], + supersonic: ["9L13", "7L13"], swagger: ["7M"], - swordsdance: ["7M"], - tailwind: ["7T", "7E"], - thief: ["7M"], + swordsdance: ["9M", "7M"], + tailwind: ["9M", "7T", "7E"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M"], toxic: ["7M"], - uproar: ["7T", "7E"], - uturn: ["7M"], + uproar: ["9M", "7T", "7E"], + uturn: ["9M", "7M"], workup: ["7M"], }, }, trumbeak: { learnset: { - aerialace: ["7M"], + acrobatics: ["9M"], + aerialace: ["9M", "7M"], + aircutter: ["9M"], + airslash: ["9M"], attract: ["7M"], - brickbreak: ["7M"], - bulletseed: ["7L37"], + bravebird: ["9M"], + brickbreak: ["9M", "7M"], + bulletseed: ["9M", "9L37", "7L37"], confide: ["7M"], defog: ["7T"], doubleteam: ["7M"], - drillpeck: ["7L32"], - echoedvoice: ["7M", "7L1"], - featherdance: ["7L40"], - flamecharge: ["7M"], - fly: ["7M"], + drillpeck: ["9L32", "7L32"], + dualwingbeat: ["9M"], + echoedvoice: ["9L1", "7M", "7L1"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M", "9L40", "7L40"], + flamecharge: ["9M", "7M"], + fly: ["9M", "7M"], frustration: ["7M"], - furyattack: ["7L24"], - growl: ["7L1"], - gunkshot: ["7T"], - heatwave: ["7T"], + furyattack: ["9L24", "7L24"], + growl: ["9L1", "7L1"], + gunkshot: ["9M", "7T"], + heatwave: ["9M", "7T"], + helpinghand: ["9M"], hiddenpower: ["7M"], - hypervoice: ["7T", "7L45"], - knockoff: ["7T"], - peck: ["7L1"], - pluck: ["7L16"], - protect: ["7M"], - rest: ["7M"], + hypervoice: ["9M", "9L45", "7T", "7L45"], + knockoff: ["9M", "7T"], + peck: ["9L1", "7L1"], + pluck: ["9L16", "7L16"], + protect: ["9M", "7M"], + rest: ["9M", "7M"], return: ["7M"], - rockblast: ["7L1"], - rocksmash: ["7L1"], - roost: ["7M", "7L21"], + rockblast: ["9M", "9L1", "7L1"], + rocksmash: ["9L1", "7L1"], + roost: ["9L21", "7M", "7L21"], round: ["7M"], - screech: ["7L29"], + screech: ["9L29", "7L29"], skyattack: ["7T"], - sleeptalk: ["7M"], - smackdown: ["7M"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "7M"], snore: ["7T"], steelwing: ["7M"], - substitute: ["7M"], - sunnyday: ["7M"], - supersonic: ["7L13"], + substitute: ["9M", "7M"], + sunnyday: ["9M", "7M"], + supersonic: ["9L13", "7L13"], swagger: ["7M"], - swordsdance: ["7M"], - tailwind: ["7T"], - thief: ["7M"], + swift: ["9M"], + swordsdance: ["9M", "7M"], + tailwind: ["9M", "7T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M"], toxic: ["7M"], - uproar: ["7T"], - uturn: ["7M"], + uproar: ["9M", "7T"], + uturn: ["9M", "7M"], workup: ["7M"], }, }, toucannon: { learnset: { - aerialace: ["7M"], + acrobatics: ["9M"], + aerialace: ["9M", "7M"], + aircutter: ["9M"], + airslash: ["9M"], attract: ["7M"], - beakblast: ["7L1"], - brickbreak: ["7M"], - bulletseed: ["7L40"], + beakblast: ["9L0", "7L1"], + bravebird: ["9M"], + brickbreak: ["9M", "7M"], + bulletseed: ["9M", "9L40", "7L40"], confide: ["7M"], defog: ["7T"], doubleteam: ["7M"], - drillpeck: ["7L34"], - echoedvoice: ["7M", "7L1"], - featherdance: ["7L44"], - flamecharge: ["7M"], - flashcannon: ["7M"], - fly: ["7M"], + drillpeck: ["9L34", "7L34"], + dualwingbeat: ["9M"], + echoedvoice: ["9L1", "7M", "7L1"], + encore: ["9M"], + endeavor: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9M", "9L44", "7L44"], + flamecharge: ["9M", "7M"], + flashcannon: ["9M", "7M"], + fly: ["9M", "7M"], frustration: ["7M"], - furyattack: ["7L24"], - growl: ["7L1"], - gunkshot: ["7T"], - heatwave: ["7T"], + furyattack: ["9L24", "7L24"], + gigaimpact: ["9M"], + growl: ["9L1", "7L1"], + gunkshot: ["9M", "7T"], + heatwave: ["9M", "7T"], + helpinghand: ["9M"], hiddenpower: ["7M"], - hypervoice: ["7T", "7L50"], - knockoff: ["7T"], - overheat: ["7M"], - peck: ["7L1"], - pluck: ["7L16"], - protect: ["7M"], - rest: ["7M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L50", "7T", "7L50"], + knockoff: ["9M", "7T"], + overheat: ["9M", "7M"], + peck: ["9L1", "7L1"], + pluck: ["9L16", "7L16"], + protect: ["9M", "7M"], + psychup: ["9M"], + rest: ["9M", "7M"], return: ["7M"], - rockblast: ["7L1"], - rocksmash: ["7L1"], - roost: ["7M", "7L21"], + rockblast: ["9M", "9L1", "7L1"], + rocksmash: ["9L1", "7L1"], + roost: ["9L21", "7M", "7L21"], round: ["7M"], - screech: ["7L30"], - seedbomb: ["7T"], + scaryface: ["9M"], + screech: ["9L30", "7L30"], + seedbomb: ["9M", "7T"], skyattack: ["7T"], - sleeptalk: ["7M"], - smackdown: ["7M"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "7M"], snore: ["7T"], steelwing: ["7M"], - substitute: ["7M"], - sunnyday: ["7M"], - supersonic: ["7L13"], + substitute: ["9M", "7M"], + sunnyday: ["9M", "7M"], + supersonic: ["9L13", "7L13"], swagger: ["7M"], - swordsdance: ["7M"], - tailwind: ["7T"], - thief: ["7M"], + swift: ["9M"], + swordsdance: ["9M", "7M"], + tailwind: ["9M", "7T"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M"], + throatchop: ["9M"], toxic: ["7M"], - uproar: ["7T"], - uturn: ["7M"], + uproar: ["9M", "7T"], + uturn: ["9M", "7M"], workup: ["7M"], }, encounters: [ @@ -71627,10 +74861,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confide: ["7M"], crunch: ["9M", "9L34", "7L34"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M"], earthquake: ["7M"], echoedvoice: ["7M"], - endeavor: ["9E", "7T"], + endeavor: ["9M", "9E", "7T"], endure: ["9M"], facade: ["9M", "7M"], firefang: ["9M", "9E", "7E"], @@ -71666,7 +74901,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M", "7T"], substitute: ["9M", "7M"], sunnyday: ["9M"], - superfang: ["9L25", "7T", "7L25"], + superfang: ["9M", "9L25", "7T", "7L25"], swagger: ["7M"], tackle: ["9L1", "7L1"], takedown: ["9M", "9L28", "7L28"], @@ -71697,17 +74932,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M"], crunch: ["9M", "9L39", "7L39"], + curse: ["9M"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["7M"], dualchop: ["7T"], earthquake: ["9M", "7M"], echoedvoice: ["7M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M"], facade: ["9M", "7M"], firefang: ["9M"], firepunch: ["9M", "7T"], fling: ["9M", "7M"], + focuspunch: ["9M"], frustration: ["7M"], gigaimpact: ["9M"], helpinghand: ["9M"], @@ -71718,6 +74956,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "7T"], ironhead: ["9M", "7T"], irontail: ["7T"], + knockoff: ["9M"], lastresort: ["7T"], leer: ["9L1", "7L1"], lowsweep: ["9M"], @@ -71732,7 +74971,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "9L52", "7M", "7L55"], return: ["7M"], reversal: ["9M"], - roar: ["7M"], + roar: ["9M", "7M"], rocktomb: ["9M", "7M"], round: ["7M"], sandattack: ["9L1", "7L1"], @@ -71745,7 +74984,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M", "7T"], substitute: ["9M", "7M"], sunnyday: ["9M"], - superfang: ["9L27", "7T", "7L27"], + superfang: ["9M", "9L27", "7T", "7L27"], swagger: ["7M"], tackle: ["9L1", "7L1"], takedown: ["9M", "9L31", "7L31"], @@ -71837,141 +75076,162 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { acrobatics: ["8M", "7M", "7L19"], attract: ["8M", "7M"], - bite: ["8L15", "7L10"], - bugbite: ["8L10", "7T", "7L13"], - chargebeam: ["7M"], + batonpass: ["9M"], + bite: ["9L15", "8L15", "7L10"], + bugbite: ["9M", "9L10", "8L10", "7T", "7L13"], + charge: ["9M"], + chargebeam: ["9M", "7M"], confide: ["7M"], - crunch: ["8M", "8L35", "7L22"], - dig: ["8M", "8L40", "7L28"], - discharge: ["8E"], + crunch: ["9M", "9L35", "8M", "8L35", "7L22"], + dig: ["9M", "9L40", "8M", "8L40", "7L28"], + discharge: ["9E", "8E"], doubleteam: ["7M"], - electroweb: ["8M", "7T", "7E"], - endure: ["8M", "7E"], - facade: ["8M", "7M"], + electricterrain: ["9M"], + electroweb: ["9M", "8M", "7T", "7E"], + endure: ["9M", "8M", "7E"], + facade: ["9M", "8M", "7M"], frustration: ["7M"], - harden: ["8E", "7E"], + harden: ["9E", "8E", "7E"], hiddenpower: ["7M"], - lightscreen: ["8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], magnetrise: ["7T"], - mudshot: ["8M", "7E"], - mudslap: ["8L1", "7L7"], - poisonjab: ["8M", "7M"], - protect: ["8M", "7M"], - raindance: ["8M", "7M"], - rest: ["8M", "7M"], + mudshot: ["9M", "8M", "7E"], + mudslap: ["9M", "9L1", "8L1", "7L7"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], risingvoltage: ["8T"], round: ["8M", "7M"], screech: ["8M"], shockwave: ["7T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - spark: ["8L21", "7L16"], - stickyweb: ["8L25"], - stringshot: ["8L5", "7L4"], - substitute: ["8M", "7M"], + spark: ["9L21", "8L21", "7L16"], + stickyweb: ["9L25", "8L25"], + stringshot: ["9L5", "8L5", "7L4"], + strugglebug: ["9M"], + substitute: ["9M", "8M", "7M"], swagger: ["7M"], - thunderbolt: ["8M", "7M"], - thunderwave: ["8M", "7M"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], toxic: ["7M"], - visegrip: ["8L1", "7L1"], - voltswitch: ["8M", "7M"], - wildcharge: ["8M", "7M"], - xscissor: ["8M", "8L30", "7M", "7L25"], + visegrip: ["9L1", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + xscissor: ["9M", "9L30", "8M", "8L30", "7M", "7L25"], }, }, charjabug: { learnset: { acrobatics: ["8M", "7M", "7L19"], attract: ["8M", "7M"], - bite: ["8L15", "7L1"], - bugbite: ["8L1", "7T", "7L13"], - charge: ["8L0", "7L1"], - chargebeam: ["7M"], + batonpass: ["9M"], + bite: ["9L15", "8L15", "7L1"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L13"], + charge: ["9M", "9L0", "8L0", "7L1"], + chargebeam: ["9M", "7M"], confide: ["7M"], - crunch: ["8M", "8L43", "7L25"], - dig: ["8M", "8L50", "7L37"], - discharge: ["8L64", "7L43"], + crunch: ["9M", "9L43", "8M", "8L43", "7L25"], + dig: ["9M", "9L50", "8M", "8L50", "7L37"], + discharge: ["9L64", "8L64", "7L43"], doubleteam: ["7M"], - eerieimpulse: ["8M"], - electroball: ["8M"], - electroweb: ["8M", "7T"], - endure: ["8M"], - facade: ["8M", "7M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + electroweb: ["9M", "8M", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], frustration: ["7M"], hiddenpower: ["7M"], - irondefense: ["8M", "8L57", "7T", "7L49"], - lightscreen: ["8M", "7M"], + irondefense: ["9M", "9L57", "8M", "8L57", "7T", "7L49"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], magnetrise: ["7T"], - mudshot: ["8M"], - mudslap: ["8L1", "7L1"], - poisonjab: ["8M", "7M"], - protect: ["8M", "7M"], - raindance: ["8M", "7M"], - rest: ["8M", "7M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], risingvoltage: ["8T"], round: ["8M", "7M"], screech: ["8M"], shockwave: ["7T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - spark: ["8L23", "7L16"], - stickyweb: ["8L29"], - stringshot: ["8L1", "7L1"], - substitute: ["8M", "7M"], + spark: ["9L23", "8L23", "7L16"], + stickyweb: ["9L29", "8L29"], + stringshot: ["9L1", "8L1", "7L1"], + strugglebug: ["9M"], + substitute: ["9M", "8M", "7M"], swagger: ["7M"], - thunderbolt: ["8M", "7M"], - thunderwave: ["8M", "7M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], toxic: ["7M"], - visegrip: ["8L1", "7L1"], - voltswitch: ["8M", "7M"], - wildcharge: ["8M", "7M"], - xscissor: ["8M", "8L36", "7M", "7L31"], + visegrip: ["9L1", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + xscissor: ["9M", "9L36", "8M", "8L36", "7M", "7L31"], }, }, vikavolt: { learnset: { - acrobatics: ["8M", "7M", "7L19"], - agility: ["8M", "8L57", "7L49"], - airslash: ["8M", "7L1"], + acrobatics: ["9M", "8M", "7M", "7L19"], + agility: ["9M", "9L57", "8M", "8L57", "7L49"], + airslash: ["9M", "8M", "7L1"], attract: ["8M", "7M"], - bite: ["8L15", "7L1"], - bugbite: ["8L1", "7T", "7L13"], - bugbuzz: ["8M", "8L36", "7L31"], - charge: ["8L1", "7L1"], - chargebeam: ["7M"], + batonpass: ["9M"], + bite: ["9L15", "8L15", "7L1"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L13"], + bugbuzz: ["9M", "9L36", "8M", "8L36", "7L31"], + bulldoze: ["9M"], + charge: ["9M", "9L1", "8L1", "7L1"], + chargebeam: ["9M", "7M"], confide: ["7M"], - crunch: ["8M", "8L1"], - dig: ["8M", "8L1", "7L37"], - discharge: ["8L1"], + crunch: ["9M", "9L1", "8M", "8L1"], + dig: ["9M", "9L1", "8M", "8L1", "7L37"], + discharge: ["9L1", "8L1"], doubleteam: ["7M"], dualwingbeat: ["8T"], - eerieimpulse: ["8M"], - electroball: ["8M"], - electroweb: ["8M", "7T"], - endure: ["8M"], - energyball: ["8M", "7M"], - facade: ["8M", "7M"], - flashcannon: ["8M", "7M"], - fly: ["8M", "8L50"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + electroweb: ["9M", "8M", "7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M", "8M", "7M"], + fly: ["9M", "9L50", "8M", "8L50"], frustration: ["7M"], - gigaimpact: ["8M", "7M"], - guillotine: ["8L43", "7L25"], + gigaimpact: ["9M", "8M", "7M"], + guillotine: ["9L43", "8L43", "7L25"], hiddenpower: ["7M"], - hyperbeam: ["8M", "7M"], - irondefense: ["8M", "8L1", "7T"], + hyperbeam: ["9M", "8M", "7M"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T"], laserfocus: ["7T"], - lightscreen: ["8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], magnetrise: ["7T"], - mudshot: ["8M"], - mudslap: ["8L1", "7L1"], - poisonjab: ["8M", "7M"], - protect: ["8M", "7M"], - raindance: ["8M", "7M"], - rest: ["8M", "7M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], risingvoltage: ["8T"], roost: ["7M"], @@ -71979,25 +75239,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["8M"], shockwave: ["7T"], signalbeam: ["7T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], skydrop: ["7M"], - sleeptalk: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "7M"], - spark: ["8L23", "7L16"], - stickyweb: ["8L29"], - stringshot: ["8L1", "7L1"], - substitute: ["8M", "7M"], + solarbeam: ["9M", "8M", "7M"], + spark: ["9L23", "8L23", "7L16"], + stickyweb: ["9L29", "8L29"], + stringshot: ["9L1", "8L1", "7L1"], + strugglebug: ["9M"], + substitute: ["9M", "8M", "7M"], + supercellslam: ["9M"], swagger: ["7M"], - thunder: ["8M", "7M"], - thunderbolt: ["8M", "8L0", "7M", "7L1"], - thunderwave: ["8M", "7M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "9L0", "8M", "8L0", "7M", "7L1"], + thunderwave: ["9M", "8M", "7M"], toxic: ["7M"], - visegrip: ["8L1", "7L1"], - voltswitch: ["8M", "7M"], - wildcharge: ["8M", "7M"], - xscissor: ["8M", "8L1", "7M"], - zapcannon: ["8L64", "7L41"], + visegrip: ["9L1", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + xscissor: ["9M", "9L1", "8M", "8L1", "7M"], + zapcannon: ["9L64", "8L64", "7L41"], }, }, vikavolttotem: { @@ -72073,6 +75338,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "7M"], chillingwater: ["9M"], closecombat: ["9M", "9L49", "7L49"], + coaching: ["9M"], confide: ["7M"], crabhammer: ["9L37", "7L37"], dig: ["9M"], @@ -72082,12 +75348,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dualchop: ["7T"], dynamicpunch: ["9L45", "7L45"], earthquake: ["9M", "7M"], - endeavor: ["9E", "7T", "7E"], + endeavor: ["9M", "9E", "7T", "7E"], endure: ["9M"], facade: ["9M", "7M"], fling: ["9M", "7M"], focusblast: ["9M", "7M"], - focuspunch: ["9E", "7T"], + focuspunch: ["9M", "9E", "7T"], frostbreath: ["7M"], frustration: ["7M"], gunkshot: ["9M"], @@ -72096,6 +75362,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "7T"], irondefense: ["9M", "9L42", "7T", "7L42"], ironhead: ["9M", "7T"], + knockoff: ["9M"], leer: ["9L9", "7L9"], liquidation: ["9M"], mudshot: ["9M"], @@ -72128,6 +75395,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "7M"], thunderpunch: ["9M", "7T"], toxic: ["7M"], + upperhand: ["9M"], visegrip: ["9L1"], wideguard: ["9E", "7E"], workup: ["7M"], @@ -72151,6 +75419,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "7M"], chillingwater: ["9M"], closecombat: ["9M", "9L49", "7L49"], + coaching: ["9M"], confide: ["7M"], dig: ["9M"], dizzypunch: ["7L25"], @@ -72159,17 +75428,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dualchop: ["7T"], dynamicpunch: ["9L45", "7L45"], earthquake: ["9M", "7M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M"], facade: ["9M", "7M"], fling: ["9M", "7M"], focusblast: ["9M", "7M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frostbreath: ["7M"], frustration: ["7M"], gigaimpact: ["9M", "7M"], gunkshot: ["9M"], hail: ["7M"], + hardpress: ["9M"], helpinghand: ["9M"], hiddenpower: ["7M"], hyperbeam: ["9M"], @@ -72180,6 +75450,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M", "7T"], irondefense: ["9M", "9L42", "7T", "7L42"], ironhead: ["9M", "7T"], + knockoff: ["9M"], leer: ["9L1", "7L1"], liquidation: ["9M"], mudshot: ["9M"], @@ -72214,6 +75485,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M", "7M"], thunderpunch: ["9M", "7T"], toxic: ["7M"], + upperhand: ["9M"], workup: ["7M"], zenheadbutt: ["9M", "7T"], }, @@ -72225,6 +75497,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M", "9L43", "7L46"], aircutter: ["9M", "9L13", "7L13"], airslash: ["9M", "9L36", "7L36"], + alluringvoice: ["9M"], attract: ["9E", "7M"], batonpass: ["9M", "9L16", "7L16"], calmmind: ["9M", "7M"], @@ -72235,10 +75508,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { defog: ["9E", "7T"], doubleslap: ["7L23"], doubleteam: ["7M"], + dualwingbeat: ["9M"], embargo: ["7M"], endure: ["9M"], facade: ["9M", "7M"], - featherdance: ["9L20", "7L20"], + featherdance: ["9M", "9L20", "7L20"], flatter: ["9L33"], fly: ["9M", "7M"], frustration: ["7M"], @@ -72252,6 +75526,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pluck: ["9E", "7E"], pound: ["9L1", "7L1"], protect: ["9M", "7M"], + psychup: ["9M"], quash: ["7M"], quiverdance: ["9E"], raindance: ["9M"], @@ -72286,152 +75561,170 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cutiefly: { learnset: { - absorb: ["8L1", "7L1"], - acrobatics: ["8M", "7M"], + absorb: ["9L1", "8L1", "7L1"], + acrobatics: ["9M", "8M", "7M"], aerialace: ["7M"], afteryou: ["7T"], allyswitch: ["8M", "7T"], aromatherapy: ["8L30", "7L36"], - aromaticmist: ["8E"], + aromaticmist: ["9E", "8E"], attract: ["8M", "7M"], - batonpass: ["8M", "7E"], + batonpass: ["9M", "8M", "7E"], bestow: ["7E"], - bugbite: ["7T"], - bugbuzz: ["8M", "8L48", "7L26"], - calmmind: ["8M", "7M"], - charm: ["8M"], + bugbite: ["9M", "7T"], + bugbuzz: ["9M", "9L48", "8M", "8L48", "7L26"], + calmmind: ["9M", "8M", "7M"], + charm: ["9M", "8M"], confide: ["7M"], - covet: ["7T"], - dazzlinggleam: ["8M", "8L42", "7M", "7L31"], + covet: ["9L30", "7T"], + dazzlinggleam: ["9M", "9L42", "8M", "8L42", "7M", "7L31"], defog: ["7T"], doubleteam: ["7M"], - drainingkiss: ["8M", "8L18", "7L16"], + drainingkiss: ["9M", "9L18", "8M", "8L18", "7L16"], dreameater: ["7M"], dualwingbeat: ["8T"], - endure: ["8M"], - energyball: ["8M", "7M"], - facade: ["8M", "7M"], - fairywind: ["8L1", "7L4"], - faketears: ["8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + fairywind: ["9L1", "8L1", "7L4"], + faketears: ["9M", "8M"], frustration: ["7M"], - helpinghand: ["8M", "7T"], + grassknot: ["9M"], + helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], - imprison: ["8M"], + imprison: ["9M", "8M"], infestation: ["7M"], lastresort: ["7T"], - leechlife: ["8M", "7M"], - lightscreen: ["8M", "7M"], + leechlife: ["9M", "8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + magicalleaf: ["9M"], magicroom: ["8M", "7T"], - moonblast: ["8E", "7E"], - playrough: ["8M"], + moonblast: ["9E", "8E", "7E"], + playrough: ["9M", "8M"], + pollenpuff: ["9M"], + pounce: ["9M"], powder: ["7E"], - protect: ["8M", "7M"], - psychic: ["8M", "7M"], - psychup: ["7M"], - quiverdance: ["8L54", "7L41"], - reflect: ["8M", "7M"], - rest: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychup: ["9M", "7M"], + quiverdance: ["9L54", "8L54", "7L41"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], roost: ["7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], signalbeam: ["7T"], silverwind: ["7L13"], - skillswap: ["8M", "7T", "7E"], - sleeptalk: ["8M", "7M"], + skillswap: ["9M", "8M", "7T", "7E"], + skittersmack: ["9M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], speedswap: ["8M", "7E"], - stickyweb: ["8E", "7E"], - strugglebug: ["8L24", "7L10"], - stunspore: ["8L6", "7L7"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], + stickyweb: ["9E", "8E", "7E"], + strugglebug: ["9M", "9L24", "8L24", "7L10"], + stunspore: ["9L6", "8L6", "7L7"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], swagger: ["7M"], - sweetscent: ["8L12", "7L21"], - swift: ["8M"], - switcheroo: ["8L36"], - tailwind: ["7T"], + sweetscent: ["9L12", "8L12", "7L21"], + swift: ["9M", "8M"], + switcheroo: ["9L36", "8L36"], + tailwind: ["9M", "7T"], telekinesis: ["7T"], - thief: ["8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], toxic: ["7M"], - trick: ["8M", "7T"], - uturn: ["8M", "7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + uturn: ["9M", "8M", "7M"], wonderroom: ["8M", "7T"], }, }, ribombee: { learnset: { - absorb: ["8L1", "7L1"], - acrobatics: ["8M", "7M"], + absorb: ["9L1", "8L1", "7L1"], + acrobatics: ["9M", "8M", "7M"], aerialace: ["7M"], afteryou: ["7T"], + agility: ["9M"], + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], aromatherapy: ["8L32", "7L42"], attract: ["8M", "7M"], - batonpass: ["8M"], - bugbite: ["7T"], - bugbuzz: ["8M", "8L56", "7L28"], - calmmind: ["8M", "7M"], - charm: ["8M"], + batonpass: ["9M", "8M"], + bugbite: ["9M", "7T"], + bugbuzz: ["9M", "9L56", "8M", "8L56", "7L28"], + calmmind: ["9M", "8M", "7M"], + charm: ["9M", "8M"], confide: ["7M"], - covet: ["8L1", "7T"], - dazzlinggleam: ["8M", "8L48", "7M", "7L35"], + covet: ["9L32", "8L1", "7T"], + dazzlinggleam: ["9M", "9L48", "8M", "8L48", "7M", "7L35"], defog: ["7T"], doubleteam: ["7M"], - drainingkiss: ["8M", "8L18", "7L16"], + drainingkiss: ["9M", "9L18", "8M", "8L18", "7L16"], dreameater: ["7M"], - dualwingbeat: ["8T"], - endure: ["8M"], - energyball: ["8M", "7M"], - facade: ["8M", "7M"], - fairywind: ["8L1", "7L1"], - faketears: ["8M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + fairywind: ["9L1", "8L1", "7L1"], + faketears: ["9M", "8M"], frustration: ["7M"], - gigaimpact: ["8M"], - helpinghand: ["8M", "7T"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M"], + helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], - hyperbeam: ["8M"], - imprison: ["8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], infestation: ["7M"], lastresort: ["7T"], - leechlife: ["8M", "7M"], - lightscreen: ["8M", "7M"], - magicalleaf: ["8M"], + leechlife: ["9M", "8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], + magicalleaf: ["9M", "8M"], magicroom: ["8M", "7T"], naturepower: ["7M"], - playrough: ["8M"], - pollenpuff: ["8M", "8L0", "7L1"], - protect: ["8M", "7M"], - psychic: ["8M", "7M"], - psychup: ["7M"], - quiverdance: ["8L64", "7L49"], - reflect: ["8M", "7M"], - rest: ["8M", "7M"], + playrough: ["9M", "8M"], + pollenpuff: ["9M", "9L0", "8M", "8L0", "7L1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M"], + quiverdance: ["9L64", "8L64", "7L49"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], roost: ["7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], signalbeam: ["7T"], silverwind: ["7L13"], - skillswap: ["8M", "7T"], - sleeptalk: ["8M", "7M"], + skillswap: ["9M", "8M", "7T"], + skittersmack: ["9M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "7M"], + solarbeam: ["9M", "8M", "7M"], speedswap: ["8M"], - strugglebug: ["8L24", "7L1"], - stunspore: ["8L1", "7L1"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], + storedpower: ["9M"], + strugglebug: ["9M", "9L24", "8L24", "7L1"], + stunspore: ["9L1", "8L1", "7L1"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], swagger: ["7M"], - sweetscent: ["8L1", "7L21"], - swift: ["8M"], - switcheroo: ["8L40"], - tailwind: ["7T"], + sweetscent: ["9L1", "8L1", "7L21"], + swift: ["9M", "8M"], + switcheroo: ["9L40", "8L40"], + tailwind: ["9M", "7T"], + takedown: ["9M"], telekinesis: ["7T"], - thief: ["8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], toxic: ["7M"], - trick: ["8M", "7T"], - uturn: ["8M", "7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + uturn: ["9M", "8M", "7M"], wonderroom: ["8M", "7T"], }, }, @@ -72514,10 +75807,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L36", "8M", "8L36", "7L40"], crushclaw: ["7E"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["9L8", "8L8", "7M"], earthpower: ["9M", "8M", "7T"], echoedvoice: ["7M"], - endeavor: ["9E", "8E", "7T"], + endeavor: ["9M", "9E", "8E", "7T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], firefang: ["9M", "8M", "7E"], @@ -72538,7 +75832,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychicfangs: ["9M"], rest: ["9M", "8M", "7M"], return: ["7M"], - roar: ["9L28", "8L28", "7M", "7L26"], + roar: ["9M", "9L28", "8L28", "7M", "7L26"], rockclimb: ["7L45"], rockpolish: ["7M"], rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L34"], @@ -72555,7 +75849,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M", "8M", "7T"], stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L48"], substitute: ["9M", "8M", "7M"], - suckerpunch: ["7E"], + suckerpunch: ["9E", "7E"], swagger: ["7M"], swordsdance: ["9M", "8M"], tackle: ["9L1", "8L1", "7L1"], @@ -72581,10 +75875,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L36", "8M", "8L36", "7L40"], crushclaw: ["7E"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["9L8", "8L8", "7M"], earthpower: ["9M", "8M", "7T"], echoedvoice: ["7M"], - endeavor: ["9E", "8E", "7T"], + endeavor: ["9M", "9E", "8E", "7T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], firefang: ["9M", "8M", "7E", "7S0"], @@ -72606,7 +75901,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychicfangs: ["9M"], rest: ["9M", "8M", "7M"], return: ["7M"], - roar: ["9L28", "8L28", "7M", "7L26"], + roar: ["9M", "9L28", "8L28", "7M", "7L26"], rockclimb: ["7L45"], rockpolish: ["7M"], rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L34"], @@ -72623,7 +75918,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M", "8M", "7T"], stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L48"], substitute: ["9M", "8M", "7M"], - suckerpunch: ["7E"], + suckerpunch: ["9E", "7E"], swagger: ["7M"], swordsdance: ["9M", "8M"], tackle: ["9L1", "8L1", "7L1", "7S1", "7S0"], @@ -72658,11 +75953,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { covet: ["7T"], crunch: ["9M", "9L42", "8M", "8L42", "7L40"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["9L1", "8L1", "7M"], drillrun: ["9M", "8M", "7T"], earthpower: ["9M", "8M", "7T"], echoedvoice: ["7M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], firefang: ["9M", "8M"], @@ -72686,7 +75982,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { quickguard: ["9L1", "8L1", "7L1"], rest: ["9M", "8M", "7M"], return: ["7M"], - roar: ["9L30", "8L30", "7M", "7L26"], + roar: ["9M", "9L30", "8L30", "7M", "7L26"], rockblast: ["9M", "8M"], rockclimb: ["7L45"], rockpolish: ["7M"], @@ -72735,17 +76031,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { covet: ["7T"], crunch: ["9M", "9L42", "8M", "8L42", "7L40"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["9L1", "8L1", "7M"], dualchop: ["7T"], earthpower: ["9M", "8M", "7T"], echoedvoice: ["7M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M", "9L1", "8M", "8L1"], facade: ["9M", "8M", "7M"], firefang: ["9M", "8M", "7S0"], firepunch: ["9M", "8M", "7T"], fling: ["9M"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], foulplay: ["9M", "8M", "7T"], frustration: ["7M"], gigaimpact: ["9M", "8M"], @@ -72756,8 +76053,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "8M", "7T"], ironhead: ["9M", "8M", "7T"], irontail: ["8M", "7T"], + knockoff: ["9M"], laserfocus: ["7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], lastresort: ["7T"], leer: ["9L1", "8L1", "7L1"], lowsweep: ["9M", "8M"], @@ -72774,7 +76072,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M"], revenge: ["8M"], reversal: ["9M", "9L1", "8M", "8L1", "7L1"], - roar: ["9L30", "8L30", "7M", "7L26"], + roar: ["9M", "9L30", "8L30", "7M", "7L26"], rockblast: ["9M", "8M"], rockclimb: ["7L45"], rockpolish: ["7M"], @@ -72801,11 +76099,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], terablast: ["9M"], - throatchop: ["8M", "7T"], + throatchop: ["9M", "8M", "7T"], thunderfang: ["9M", "8M"], thunderpunch: ["9M", "8M", "7T"], toxic: ["7M"], trailblaze: ["9M"], + upperhand: ["9M"], uproar: ["8M", "7T"], zenheadbutt: ["9M", "8M", "7T"], }, @@ -72818,6 +76117,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { accelerock: ["9L1", "8L1", "7L1"], attract: ["8M", "7M"], bite: ["9L20", "8L20", "7L1"], + bodyslam: ["9M"], brickbreak: ["9M", "8M", "7M"], bulkup: ["9M", "8M", "7M"], bulldoze: ["9M"], @@ -72829,11 +76129,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L42", "8M", "8L42", "7L40"], crushclaw: ["9L0", "8L0"], dig: ["9M"], + doubleedge: ["9M"], doubleteam: ["9L1", "8L1", "7M"], drillrun: ["9M", "8M", "7T"], earthpower: ["9M", "8M", "7T"], echoedvoice: ["7M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M", "9L1", "8M", "8L1"], facade: ["9M", "8M", "7M"], firefang: ["9M", "8M"], @@ -72849,6 +76150,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irontail: ["8M", "7T"], lastresort: ["7T"], leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], odorsleuth: ["7L18"], outrage: ["9M", "8M", "7T"], playrough: ["9M", "8M"], @@ -72859,7 +76161,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M"], return: ["7M"], reversal: ["9M", "9L1", "8M", "8L1"], - roar: ["9L30", "8L30", "7M", "7L26"], + roar: ["9M", "9L30", "8L30", "7M", "7L26"], rockblast: ["9M", "8M"], rockclimb: ["7L45"], rockpolish: ["7M"], @@ -72886,6 +76188,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L1", "8M", "8L1", "7M"], terablast: ["9M"], thrash: ["7L1"], + throatchop: ["9M"], thunderfang: ["9M", "8M"], toxic: ["7M"], trailblaze: ["9M"], @@ -72968,7 +76271,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gastroacid: ["7T"], gunkshot: ["9M", "8M", "7T"], hail: ["8M", "7M"], - haze: ["9E", "8E", "7E"], + haze: ["9M", "9E", "8E", "7E"], hiddenpower: ["7M"], hydropump: ["9M", "8M"], icebeam: ["9M", "8M", "7M"], @@ -72978,10 +76281,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "8M", "7T"], knockoff: ["7T"], liquidation: ["9M", "9L35", "8M", "8L35", "7T", "7L49"], + lunge: ["9M"], magiccoat: ["7T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], - painsplit: ["7T"], + painsplit: ["9M", "7T"], payback: ["8M", "7M"], peck: ["9L1", "8L1", "7L5"], pinmissile: ["9L25", "8M", "8L25", "7L45"], @@ -72998,7 +76302,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["8M", "7M"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M", "7M"], - sludgewave: ["8M", "7M"], + sludgewave: ["9M", "8M", "7M"], snatch: ["7T"], snore: ["8M", "7T"], spikecannon: ["7L29"], @@ -73010,7 +76314,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M"], swallow: ["9E", "8E", "7E", "7S0"], terablast: ["9M"], - toxic: ["9L50", "8L50", "7M", "7L21", "7S0"], + toxic: ["9M", "9L50", "8L50", "7M", "7L21", "7S0"], toxicspikes: ["9M", "9L30", "8M", "8L30", "7L13"], venomdrench: ["8M", "8L40", "7L41"], venoshock: ["9M", "9L15", "8M", "8L15", "7M", "7L25"], @@ -73045,6 +76349,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M"], gunkshot: ["9M", "8M", "7T"], hail: ["8M", "7M"], + haze: ["9M"], hex: ["9M", "8M"], hiddenpower: ["7M"], hydropump: ["9M", "8M"], @@ -73057,10 +76362,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { knockoff: ["7T"], lightscreen: ["8M", "7M"], liquidation: ["9M", "9L35", "8M", "8L35", "7T", "7L58"], + lunge: ["9M"], magiccoat: ["7T"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], - painsplit: ["7T"], + painsplit: ["9M", "7T"], payback: ["8M", "7M"], peck: ["9L1", "8L1", "7L1"], pinmissile: ["9L25", "8M", "8L25", "7L51"], @@ -73078,8 +76384,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M", "7M"], - sludgewave: ["8M", "7M"], - smackdown: ["7M"], + sludgewave: ["9M", "8M", "7M"], + smackdown: ["9M", "7M"], snatch: ["7T"], snore: ["8M", "7T"], spikecannon: ["7L29"], @@ -73088,7 +76394,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { surf: ["9M", "8M", "7M"], swagger: ["7M"], terablast: ["9M"], - toxic: ["9L56", "8L56", "7M", "7L21"], + toxic: ["9M", "9L56", "8L56", "7M", "7L21"], toxicspikes: ["9M", "9L30", "8M", "8L30", "7L1"], venomdrench: ["8M", "8L42", "7L44"], venoshock: ["9M", "9L15", "8M", "8L15", "7M", "7L25"], @@ -73105,19 +76411,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "8M", "7E"], confide: ["7M"], counter: ["9L24", "8L24", "7L36"], - doubleedge: ["9E", "8E", "7E"], + curse: ["9M"], + doubleedge: ["9M", "9E", "8E", "7E"], doublekick: ["9L8", "8L8", "7L15"], doubleteam: ["7M"], earthpower: ["9M", "8M", "7T"], earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L38"], - endeavor: ["9E", "7T"], + endeavor: ["9M", "9E", "7T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fissure: ["9E", "8E"], frustration: ["7M"], heavyslam: ["9M", "9L32", "8M", "8L32", "7L31"], hiddenpower: ["7M"], - highhorsepower: ["9L28", "8M", "8L28", "7L24"], + highhorsepower: ["9M", "9L28", "8M", "8L28", "7L24"], irondefense: ["9M", "9L4", "8M", "8L4", "7T", "7L29"], ironhead: ["9M", "8M", "7T"], lowkick: ["9M", "8M", "7T"], @@ -73131,16 +76438,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M"], rest: ["9M", "8M", "7M"], return: ["7M"], - roar: ["9E", "8E", "7M"], + roar: ["9M", "9E", "8E", "7M"], rockslide: ["9M", "8M", "7M"], rocksmash: ["9L1", "8L1"], rocktomb: ["9M", "8M", "7M"], rototiller: ["7L8"], round: ["8M", "7M"], sandstorm: ["9M", "8M", "7M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], sleeptalk: ["9M", "8M", "7M"], - smackdown: ["9E", "8E"], + smackdown: ["9M", "9E", "8E"], snore: ["8M", "7T"], stealthrock: ["9M", "8M", "7T"], stomp: ["9L16", "8L16", "7L17"], @@ -73166,11 +76473,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "8M"], confide: ["7M"], counter: ["9L24", "8L24", "7L42"], + curse: ["9M"], + doubleedge: ["9M"], doublekick: ["9L1", "8L1", "7L15"], doubleteam: ["7M"], earthpower: ["9M", "8M", "7T"], earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L47"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], focusblast: ["9M", "8M", "7M"], @@ -73178,11 +76487,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M"], heavyslam: ["9M", "9L34", "8M", "8L34", "7L34"], hiddenpower: ["7M"], - highhorsepower: ["9L28", "8M", "8L28", "7L24"], + highhorsepower: ["9M", "9L28", "8M", "8L28", "7L24"], hyperbeam: ["9M", "8M"], irondefense: ["9M", "9L1", "8M", "8L1", "7T", "7L29"], ironhead: ["9M", "8M", "7T"], - lashout: ["8T"], + lashout: ["9M", "8T"], lowkick: ["9M", "8M", "7T"], lowsweep: ["9M", "8M", "7M"], megakick: ["9L46", "8M", "8L46", "7L55"], @@ -73194,16 +76503,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M"], return: ["7M"], revenge: ["8M"], - roar: ["7M"], + roar: ["9M", "7M"], rockslide: ["9M", "8M", "7M"], rocksmash: ["9L1", "8L1"], rocktomb: ["9M", "8M", "7M"], rototiller: ["7L1"], round: ["8M", "7M"], sandstorm: ["9M", "8M", "7M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scaryface: ["9M", "8M"], sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9M"], snore: ["8M", "7T"], stealthrock: ["9M", "8M", "7T"], stomp: ["9L16", "8L16", "7L17"], @@ -73224,124 +76534,139 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, dewpider: { learnset: { - aquaring: ["8L16", "7L24"], + aquaring: ["9L16", "8L16", "7L24"], attract: ["8M", "7M"], aurorabeam: ["7E"], - bite: ["8L8", "7L21"], - blizzard: ["8M", "7M"], + bite: ["9L8", "8L8", "7L21"], + blizzard: ["9M", "8M", "7M"], bubble: ["7L1"], - bubblebeam: ["8L12", "7L16"], - bugbite: ["8L4", "7T", "7L13"], - bugbuzz: ["8M"], + bubblebeam: ["9L12", "8L12", "7L16"], + bugbite: ["9M", "9L4", "8L4", "7T", "7L13"], + bugbuzz: ["9M", "8M"], + chillingwater: ["9M"], confide: ["7M"], - crunch: ["8M", "8L24", "7L32"], + crunch: ["9M", "9L24", "8M", "8L24", "7L32"], doubleteam: ["7M"], - endure: ["8M"], - entrainment: ["8L32", "7L48"], - facade: ["8M", "7M"], + endeavor: ["9M"], + endure: ["9M", "8M"], + entrainment: ["9L32", "8L32", "7L48"], + facade: ["9M", "8M", "7M"], frostbreath: ["7M"], frustration: ["7M"], - gigadrain: ["8M", "7T"], - headbutt: ["8L20"], + gigadrain: ["9M", "8M", "7T"], + headbutt: ["9L20", "8L20"], hiddenpower: ["7M"], - icebeam: ["8M", "7M"], - icywind: ["8M", "7T"], - infestation: ["8L1", "7M", "7L5"], - irondefense: ["8M", "7T"], - leechlife: ["8M", "8L44", "7M", "7L29"], - liquidation: ["8M", "8L40", "7T", "7L45"], - lunge: ["8L36", "7L37"], + hydropump: ["9M"], + icebeam: ["9M", "8M", "7M"], + icywind: ["9M", "8M", "7T"], + infestation: ["9L1", "8L1", "7M", "7L5"], + irondefense: ["9M", "8M", "7T"], + leechlife: ["9M", "9L44", "8M", "8L44", "7M", "7L29"], + liquidation: ["9M", "9L40", "8M", "8L40", "7T", "7L45"], + lunge: ["9M", "9L36", "8L36", "7L37"], magiccoat: ["7T"], magicroom: ["8M", "7T"], - mirrorcoat: ["8L48", "7L40"], - poisonjab: ["8M", "7M"], - powersplit: ["8E", "7E"], - protect: ["8M", "7M"], - raindance: ["8M", "7M"], - rest: ["8M", "7M"], + mirrorcoat: ["9L48", "8L48", "7L40"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + powersplit: ["9E", "8E", "7E"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], round: ["8M", "7M"], scald: ["8M", "7M"], signalbeam: ["7T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - soak: ["8L28"], + soak: ["9L28", "8L28"], spiderweb: ["7L8"], - spitup: ["8E", "7E"], - stickyweb: ["8E", "7E"], - stockpile: ["8E", "7E"], - substitute: ["8M", "7M"], - surf: ["8M", "7M"], + spitup: ["9E", "8E", "7E"], + stickyweb: ["9E", "8E", "7E"], + stockpile: ["9E", "8E", "7E"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], swagger: ["7M"], + terablast: ["9M"], toxic: ["7M"], - waterfall: ["8M", "7M"], - watergun: ["8L1"], - waterpulse: ["7T"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T"], watersport: ["7L1"], wonderroom: ["8M", "7T"], - xscissor: ["8M", "7M"], + xscissor: ["9M", "8M", "7M"], }, }, araquanid: { learnset: { - aquaring: ["8L16", "7L26"], + aquaring: ["9L16", "8L16", "7L26"], attract: ["8M", "7M"], - bite: ["8L1", "7L21"], - blizzard: ["8M", "7M"], + bite: ["9L1", "8L1", "7L21"], + blizzard: ["9M", "8M", "7M"], + bodyslam: ["9M"], bubble: ["7L1"], - bubblebeam: ["8L12", "7L16"], - bugbite: ["8L1", "7T", "7L1"], - bugbuzz: ["8M"], + bubblebeam: ["9L12", "8L12", "7L16"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L1"], + bugbuzz: ["9M", "8M"], + chillingwater: ["9M"], confide: ["7M"], - crunch: ["8M", "8L26", "7L38"], + crunch: ["9M", "9L26", "8M", "8L26", "7L38"], dive: ["8M"], doubleteam: ["7M"], - endure: ["8M"], - entrainment: ["8L38", "7L62"], - facade: ["8M", "7M"], + endeavor: ["9M"], + endure: ["9M", "8M"], + entrainment: ["9L38", "8L38", "7L62"], + facade: ["9M", "8M", "7M"], frostbreath: ["7M"], frustration: ["7M"], - gigadrain: ["8M", "7T"], - headbutt: ["8L20"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M"], + headbutt: ["9L20", "8L20"], hiddenpower: ["7M"], - hydropump: ["8M"], - icebeam: ["8M", "7M"], - icywind: ["8M", "7T"], - infestation: ["8L1", "7M", "7L1"], - irondefense: ["8M", "7T"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + icebeam: ["9M", "8M", "7M"], + icywind: ["9M", "8M", "7T"], + infestation: ["9L1", "8L1", "7M", "7L1"], + irondefense: ["9M", "8M", "7T"], laserfocus: ["7T"], - leechlife: ["8M", "8L56", "7M", "7L33"], - liquidation: ["8M", "8L50", "7T", "7L57"], - lunge: ["8L44", "7L45"], + leechlife: ["9M", "9L56", "8M", "8L56", "7M", "7L33"], + liquidation: ["9M", "9L50", "8M", "8L50", "7T", "7L57"], + lunge: ["9M", "9L44", "8L44", "7L45"], magiccoat: ["7T"], magicroom: ["8M", "7T"], - mirrorcoat: ["8L62", "7L50"], - poisonjab: ["8M", "7M"], - protect: ["8M", "7M"], - raindance: ["8M", "7M"], - reflect: ["8M", "7M"], - rest: ["8M", "7M"], + mirrorcoat: ["9L62", "8L62", "7L50"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], scald: ["8M", "7M"], + scaryface: ["9M"], signalbeam: ["7T"], - skittersmack: ["8T"], - sleeptalk: ["8M", "7M"], + skittersmack: ["9M", "8T"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - soak: ["8L32", "7L1"], + soak: ["9L32", "8L32", "7L1"], spiderweb: ["7L1"], - substitute: ["8M", "7M"], - surf: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], swagger: ["7M"], + terablast: ["9M"], toxic: ["7M"], - waterfall: ["8M", "7M"], - watergun: ["8L1"], - waterpulse: ["7T"], - wideguard: ["8L1", "7L1"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T"], + wideguard: ["9L1", "8L1", "7L1"], wonderroom: ["8M", "7T"], - xscissor: ["8M", "7M"], + xscissor: ["9M", "8M", "7M"], }, }, araquanidtotem: { @@ -73406,7 +76731,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { aromatherapy: ["8E", "7E"], attract: ["8M", "7M"], - bugbite: ["7T"], + bugbite: ["9M", "7T"], bulletseed: ["9M", "8M"], confide: ["7M"], defog: ["9E", "8E", "7T", "7E"], @@ -73421,7 +76746,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furycutter: ["9L1", "8L1", "7L1"], gigadrain: ["9M", "8M", "7T", "7E"], grassknot: ["9M", "8M", "7M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], growth: ["9L5", "8L5", "7L14"], hiddenpower: ["7M"], @@ -73433,6 +76758,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicalleaf: ["9M", "8M"], naturepower: ["7M"], payback: ["8M", "7M"], + petalblizzard: ["9M"], poisonjab: ["8M", "7M"], protect: ["9M", "8M", "7M"], razorleaf: ["9L15", "8L15", "7L10"], @@ -73442,12 +76768,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { safeguard: ["8M", "7M"], seedbomb: ["9M", "8M", "7T"], signalbeam: ["7T"], + skittersmack: ["9M"], slash: ["9L25", "8L25", "7L32"], sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "9L50", "8M", "8L50", "7M", "7L41"], substitute: ["9M", "8M", "7M"], sunnyday: ["9M", "9L45", "8M", "8L45", "7M", "7L46"], + superpower: ["9E"], swagger: ["7M"], sweetscent: ["9L20", "8L20", "7L37"], swordsdance: ["9M", "8M", "7M"], @@ -73456,7 +76784,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M"], trailblaze: ["9M"], - weatherball: ["8M", "7E"], + weatherball: ["9M", "8M", "7E"], worryseed: ["9E", "8E", "7T"], xscissor: ["9M", "9L30", "8M", "8L30", "7M"], }, @@ -73466,7 +76794,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["7M"], attract: ["8M", "7M"], brickbreak: ["9M", "8M", "7M"], - bugbite: ["7T"], + bugbite: ["9M", "7T"], bulletseed: ["9M", "8M"], confide: ["7M"], crosspoison: ["8M"], @@ -73483,13 +76811,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T"], gigaimpact: ["9M", "8M", "7M"], grassknot: ["9M", "8M", "7M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], growth: ["9L1", "8L1", "7L1"], hiddenpower: ["7M"], hyperbeam: ["9M", "8M", "7M"], ingrain: ["9L1", "8L1", "7L19"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], leafage: ["9L1", "8L1", "7L1"], leafblade: ["9L44", "8M", "8L44", "7L23"], @@ -73500,7 +76828,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { naturepower: ["7M"], nightslash: ["9L1", "8L1", "7L1"], payback: ["8M", "7M"], - petalblizzard: ["9L0", "8L0", "7L1"], + petalblizzard: ["9M", "9L0", "8L0", "7L1"], poisonjab: ["9M", "8M", "7M"], pollenpuff: ["9M"], protect: ["9M", "8M", "7M"], @@ -73514,11 +76842,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], seedbomb: ["9M", "8M", "7T"], signalbeam: ["7T"], + skittersmack: ["9M"], slash: ["9L25", "8L25", "7L32"], sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "9L1", "8M", "8L1", "7M"], - solarblade: ["9L63", "8M", "8L63", "7L47"], + solarblade: ["9M", "9L63", "8M", "8L63", "7L47"], substitute: ["9M", "8M", "7M"], sunnyday: ["9M", "9L51", "8M", "8L51", "7M", "7L55"], superpower: ["8M", "7T"], @@ -73530,7 +76859,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M"], trailblaze: ["9M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], worryseed: ["7T"], xscissor: ["9M", "9L30", "8M", "8L30", "7M", "7L1"], }, @@ -73727,6 +77056,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M"], beatup: ["8M"], belch: ["9E", "8E", "7E"], + burningjealousy: ["9M"], confide: ["7M"], covet: ["7T"], doubleslap: ["7L21"], @@ -73735,14 +77065,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L48"], dragonrage: ["7L13"], ember: ["9L10", "8L10", "7L5"], - endeavor: ["9L55", "8L60"], + endeavor: ["9M", "9L55", "8L60"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["9E", "8E", "7E"], fireblast: ["9M", "8M", "7M"], firefang: ["9M"], flameburst: ["7L24"], - flamecharge: ["7M"], + flamecharge: ["9M", "7M"], flamethrower: ["9M", "9L45", "8M", "8L50", "7M", "7L40"], flareblitz: ["9M"], fling: ["9M", "8M", "7M"], @@ -73754,7 +77084,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M"], incinerate: ["9L30", "8L30"], irontail: ["8M", "7T"], - knockoff: ["7T", "7E"], + knockoff: ["9M", "7T", "7E"], leechlife: ["9M", "8M", "7M"], mudslap: ["9M", "9E", "8E"], nastyplot: ["9M", "9L25", "8M", "8L25", "7L32"], @@ -73769,14 +77099,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M"], round: ["8M", "7M"], sandattack: ["9E", "8E", "7E"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], scratch: ["9L1", "8L1", "7L1"], shadowclaw: ["9M", "8M", "7M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M", "7M"], - sludgewave: ["8M", "7M"], + sludgewave: ["9M", "8M", "7M"], smog: ["9L5", "8L5", "7L16"], snatch: ["7T", "7E"], snore: ["8M", "7T"], @@ -73787,11 +77117,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M"], takedown: ["9M"], taunt: ["9M", "8M", "7M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M"], thunderwave: ["9M", "8M"], torment: ["7M"], - toxic: ["9L50", "8L55", "7M", "7L29"], + toxic: ["9M", "9L50", "8L55", "7M", "7L29"], toxicspikes: ["9M"], trailblaze: ["9M"], venomdrench: ["8M", "8L45", "7L45"], @@ -73807,7 +77138,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M"], beatup: ["8M"], bodyslam: ["9M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], + burningjealousy: ["9M"], captivate: ["7L1"], confide: ["7M"], corrosivegas: ["8T"], @@ -73816,14 +77148,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { disable: ["9L1", "8L1", "7L1"], doubleslap: ["7L21"], doubleteam: ["7M"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M", "7M"], dragondance: ["9M", "8M"], dragonpulse: ["9M", "9L44", "8M", "8L44", "7T", "7L56"], dragonrage: ["7L13"], - dragontail: ["7M"], + dragontail: ["9M", "7M"], ember: ["9L1", "8L1", "7L1"], encore: ["9M", "9L1", "8M", "8L1", "7L1"], - endeavor: ["9L1", "8L1"], + endeavor: ["9M", "9L1", "8L1"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], fakeout: ["7S0"], @@ -73832,7 +77165,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firefang: ["9M"], firelash: ["9L0", "8L0"], flameburst: ["7L24"], - flamecharge: ["7M"], + flamecharge: ["9M", "7M"], flamethrower: ["9M", "9L51", "8M", "8L58", "7M", "7L44", "7S0"], flareblitz: ["9M", "8M"], fling: ["9M", "8M", "7M"], @@ -73847,7 +77180,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M"], incinerate: ["9L30", "8L30"], irontail: ["8M", "7T"], - knockoff: ["9L1", "8L1", "7T"], + knockoff: ["9M", "9L1", "8L1", "7T"], laserfocus: ["7T"], leechlife: ["9M", "8M", "7M"], mudslap: ["9M"], @@ -73863,14 +77196,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M"], return: ["7M"], round: ["8M", "7M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], scratch: ["9L1", "8L1"], shadowclaw: ["9M", "8M", "7M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M", "7M", "7S0"], - sludgewave: ["8M", "7M"], + sludgewave: ["9M", "8M", "7M"], smog: ["9L1", "8L1", "7L16"], snatch: ["7T"], snore: ["8M", "7T"], @@ -73881,11 +77214,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M"], takedown: ["9M"], taunt: ["9M", "8M", "7M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M"], thunderwave: ["9M", "8M"], torment: ["9L1", "8L1", "7M", "7L1"], - toxic: ["9L58", "8L65", "7M", "7L29", "7S0"], + toxic: ["9M", "9L58", "8L65", "7M", "7L29", "7S0"], toxicspikes: ["9M"], trailblaze: ["9M"], venomdrench: ["8M", "8L51", "7L51"], @@ -74121,7 +77455,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dazzlinggleam: ["9M", "8M", "7M"], doubleteam: ["7M"], drainingkiss: ["9M", "8M"], - endeavor: ["9E", "8E", "7T"], + endeavor: ["9M", "9E", "8E", "7T"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], facade: ["9M", "8M", "7M"], @@ -74131,7 +77465,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T"], grassknot: ["9M", "8M", "7M"], grasswhistle: ["7E"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], @@ -74177,14 +77511,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bounce: ["8M", "7T"], bulletseed: ["9M"], captivate: ["7L37"], + celebrate: ["9S1"], charm: ["9M", "8M"], confide: ["7M"], covet: ["7T"], - dazzlinggleam: ["9M", "8M", "7M"], + dazzlinggleam: ["9M", "9S1", "8M", "7M"], doubleslap: ["7L1", "7S0"], doubleteam: ["7M"], drainingkiss: ["9M", "8M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], facade: ["9M", "8M", "7M"], @@ -74193,7 +77528,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M"], gigadrain: ["9M", "8M", "7T"], grassknot: ["9M", "8M", "7M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], @@ -74204,6 +77539,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicalleaf: ["9M", "9L22", "8M", "8L22", "7L21", "7S0"], naturepower: ["7M"], payback: ["8M", "7M"], + petalblizzard: ["9M"], playnice: ["9L1", "8L1", "7L1"], playrough: ["9M", "8M"], protect: ["9M", "8M", "7M"], @@ -74218,10 +77554,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "8M", "7M"], - splash: ["9L1", "8L1", "7L1"], + splash: ["9L1", "9S1", "8L1", "7L1"], stomp: ["9L28", "8L28", "7L29"], substitute: ["9M", "8M", "7M"], - sunnyday: ["9M", "8M", "7M"], + sunnyday: ["9M", "9S1", "8M", "7M"], swagger: ["7M"], sweetscent: ["9L16", "8L16", "7L17", "7S0"], swift: ["9M"], @@ -74231,12 +77567,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M"], trailblaze: ["9M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], worryseed: ["7T"], zenheadbutt: ["9M", "8M", "7T"], }, eventData: [ {generation: 7, level: 20, nature: "Naive", abilities: ["leafguard"], moves: ["magicalleaf", "doubleslap", "sweetscent"], pokeball: "cherishball"}, + {generation: 9, level: 50, abilities: ["leafguard"], moves: ["celebrate", "sunnyday", "splash", "dazzlinggleam"], pokeball: "cherishball"}, ], }, tsareena: { @@ -74255,7 +77592,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleslap: ["7L1"], doubleteam: ["7M"], drainingkiss: ["9M", "8M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], facade: ["9M", "8M", "7M"], @@ -74265,13 +77602,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T"], gigaimpact: ["9M", "8M", "7M"], grassknot: ["9M", "8M", "7M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], highjumpkick: ["9L58", "8L58", "7L49"], hyperbeam: ["9M", "8M"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], laserfocus: ["7T"], leafstorm: ["9M", "9L46", "8M", "8L52", "7L45"], lightscreen: ["9M", "8M", "7M"], @@ -74281,6 +77618,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megakick: ["8M"], naturepower: ["7M"], payback: ["8M", "7M"], + petalblizzard: ["9M"], playnice: ["9L1", "8L1"], playrough: ["9M", "8M"], powerwhip: ["9L1", "8M", "8L1", "7L53"], @@ -74297,7 +77635,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "8M", "7M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], splash: ["9L1", "8L1", "7L1"], stomp: ["9L28", "8L28", "7L29"], substitute: ["9M", "8M", "7M"], @@ -74312,7 +77650,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M"], trailblaze: ["9M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], tropkick: ["9L0", "8L0", "7L1"], uturn: ["9M", "8M", "7M"], worryseed: ["7T"], @@ -74321,83 +77659,89 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, comfey: { learnset: { - acrobatics: ["8M", "7M"], - afteryou: ["8E", "7T", "7E"], + acrobatics: ["9M", "8M", "7M"], + afteryou: ["9E", "8E", "7T", "7E"], + alluringvoice: ["9M"], allyswitch: ["8M", "7T"], - amnesia: ["8M", "7E"], + amnesia: ["9M", "8M", "7E"], aromatherapy: ["8L36", "7L43"], attract: ["8M", "7M"], - bind: ["7T"], - bulletseed: ["8M"], - calmmind: ["8M", "7M"], + bind: ["9L36", "7T"], + bulletseed: ["9M", "8M"], + calmmind: ["9M", "8M", "7M"], celebrate: ["7S0"], - charm: ["8M"], + charm: ["9M", "9L12", "8M"], confide: ["7M"], covet: ["7T"], - dazzlinggleam: ["8M", "7M"], + dazzlinggleam: ["9M", "8M", "7M"], defog: ["7T"], + disarmingvoice: ["9M"], doubleteam: ["7M"], - drainingkiss: ["8M", "8L9", "7L7", "7S0"], + drainingkiss: ["9M", "9L9", "8M", "8L9", "7L7", "7S0"], echoedvoice: ["7M"], - encore: ["8M"], - endure: ["8M", "7E"], - energyball: ["8M", "7M"], - facade: ["8M", "7M"], - fling: ["8M", "7M"], - floralhealing: ["8L30", "7L37"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7E"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + floralhealing: ["9L30", "8L30", "7L37"], flowershield: ["8L12", "7L1"], frustration: ["7M"], - gigadrain: ["8M", "7T"], - grassknot: ["8M", "8L24", "7M", "7L34"], - grassyglide: ["8T"], - grassyterrain: ["8M", "8L48", "7L46"], - growth: ["8L1", "7L13"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "9L24", "8M", "8L24", "7M", "7L34"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "9L48", "8M", "8L48", "7L46"], + growth: ["9L1", "8L1", "7L13"], healbell: ["7T"], - helpinghand: ["8M", "8L6", "7T", "7L1"], + helpinghand: ["9M", "9L6", "8M", "8L6", "7T", "7L1"], hiddenpower: ["7M"], - hyperbeam: ["8M", "7M"], + hyperbeam: ["9M", "8M", "7M"], + knockoff: ["9M"], leaftornado: ["8E"], - leechseed: ["8L21", "7L4", "7S0"], - lightscreen: ["8M", "7M"], + leechseed: ["9L21", "8L21", "7L4", "7S0"], + lightscreen: ["9M", "8M", "7M"], luckychant: ["7E"], - magicalleaf: ["8M", "8L15", "7L10", "7S0"], + magicalleaf: ["9M", "9L15", "8M", "8L15", "7L10", "7S0"], magiccoat: ["7T"], naturalgift: ["7L22"], naturepower: ["7M"], - painsplit: ["7T"], - petalblizzard: ["8L33", "7L25"], - petaldance: ["8L45", "7L40"], - playrough: ["8M", "8L39", "7L49"], - pollenpuff: ["8M"], - protect: ["8M", "7M"], - psychup: ["7M"], - rest: ["8M", "7M"], + painsplit: ["9M", "7T"], + petalblizzard: ["9M", "9L33", "8L33", "7L25"], + petaldance: ["9L45", "8L45", "7L40"], + playrough: ["9M", "9L39", "8M", "8L39", "7L49"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychup: ["9M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], roleplay: ["7T"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - seedbomb: ["8M", "7T"], - sleeptalk: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "7M"], - storedpower: ["8M"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], + solarbeam: ["9M", "8M", "7M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], swagger: ["7M"], - sweetkiss: ["8L27", "7L19"], - sweetscent: ["8L42", "7L31"], - synthesis: ["8L18", "7T", "7L28"], - tailwind: ["7T"], - taunt: ["8M", "7M"], + sweetkiss: ["9L27", "8L27", "7L19"], + sweetscent: ["9L42", "8L42", "7L31"], + swift: ["9M"], + synthesis: ["9L18", "8L18", "7T", "7L28"], + tailwind: ["9M", "7T"], + taunt: ["9M", "8M", "7M"], telekinesis: ["7T"], - thief: ["8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], toxic: ["7M"], - trick: ["8M", "7T"], - trickroom: ["8M", "7M"], - uturn: ["8M", "7M"], - vinewhip: ["8L3", "7L1"], - worryseed: ["8E", "7T"], - wrap: ["8L1", "7L16"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + trickroom: ["9M", "8M", "7M"], + uturn: ["9M", "8M", "7M"], + vinewhip: ["9L3", "8L3", "7L1"], + worryseed: ["9E", "8E", "7T"], + wrap: ["9L1", "8L1", "7L16"], }, eventData: [ {generation: 7, level: 10, nature: "Jolly", moves: ["celebrate", "leechseed", "drainingkiss", "magicalleaf"], pokeball: "cherishball"}, @@ -74424,9 +77768,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { earthquake: ["9M", "8M", "7M"], embargo: ["7M"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], extrasensory: ["9E", "8E", "7E"], facade: ["9M", "8M", "7M"], feintattack: ["7L22"], @@ -74434,15 +77779,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusblast: ["9M", "8M", "7M"], foulplay: ["9M", "9L55", "8M", "8L55", "7T", "7L36", "7S1"], frustration: ["7M"], - futuresight: ["9L60", "8M", "8L60", "7L46"], + futuresight: ["9M", "9L60", "8M", "8L60", "7L46"], gigaimpact: ["9M", "8M", "7M"], - gravity: ["7T"], + gravity: ["9M", "7T"], hiddenpower: ["7M"], hyperbeam: ["9M", "8M"], hypervoice: ["9M"], imprison: ["9M", "8M"], instruct: ["9L50", "8L50", "7L32", "7S0", "7S1"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], lastresort: ["9E", "8E"], lightscreen: ["9M", "8M", "7M"], magiccoat: ["7T"], @@ -74451,13 +77796,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megapunch: ["8M"], nastyplot: ["9M", "9L30", "8M", "8L30", "7L25"], naturepower: ["7M"], - painsplit: ["7T"], + painsplit: ["9M", "7T"], payback: ["8M", "7M"], protect: ["9M", "8M", "7M"], psybeam: ["9M"], psychic: ["9M", "9L45", "8M", "8L45", "7M", "7L43", "7S0"], + psychicnoise: ["9M"], psychicterrain: ["9M", "8M", "7E", "7S0"], - psychup: ["9L20", "8L20", "7M", "7L18"], + psychup: ["9M", "9L20", "8L20", "7M", "7L18"], psyshock: ["9M", "8M", "7M"], quash: ["9L25", "8L25", "7M", "7L11"], raindance: ["9M", "8M", "7M"], @@ -74517,14 +77863,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "8M", "7M"], chillingwater: ["9M"], closecombat: ["9M", "9L50", "8M", "8L50", "7L43", "7S1"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M"], counter: ["9E", "8E"], - doubleedge: ["9L45", "8L45", "7L36"], + curse: ["9M"], + doubleedge: ["9M", "9L45", "8L45", "7L36"], doubleteam: ["7M"], drainpunch: ["9M", "8M", "7T"], earthquake: ["9M", "8M", "7M"], - electroweb: ["8M", "7T"], + electroweb: ["9M", "8M", "7T"], endeavor: ["7T"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M"], @@ -74533,23 +77880,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "9L30", "8M", "8L30", "7M", "7L39", "7S0"], focusblast: ["9M", "8M", "7M"], focusenergy: ["9L10", "8M", "8L10", "7L11"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frustration: ["7M"], gigaimpact: ["9M", "9L60", "8M", "8L60", "7M", "7L50"], grassknot: ["9M", "8M", "7M"], gunkshot: ["9M", "8M", "7T", "7S1"], - gyroball: ["8M", "7M"], + gyroball: ["9M", "8M", "7M"], hiddenpower: ["7M"], hyperbeam: ["9M", "8M", "7M"], ironhead: ["9M", "8M", "7T", "7E"], irontail: ["8M", "7T"], - knockoff: ["9E", "8E", "7T", "7S1"], + knockoff: ["9M", "9E", "8E", "7T", "7S1"], laserfocus: ["7T"], leer: ["9L1", "8L1", "7L4"], lowkick: ["9M"], lowsweep: ["9M", "8M", "7M"], megakick: ["8M"], megapunch: ["8M"], + painsplit: ["9M"], payback: ["8M", "7M"], protect: ["9M", "8M", "7M"], quickattack: ["9E", "8E", "7E"], @@ -74570,7 +77918,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "8M", "7M"], shockwave: ["7T"], sleeptalk: ["9M", "8M", "7M"], - smackdown: ["7M"], + smackdown: ["9M", "7M"], snatch: ["7T"], snore: ["8M", "7T"], substitute: ["9M", "8M", "7M"], @@ -74585,8 +77933,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thrash: ["9L40", "8L40", "7L29"], toxic: ["7M"], trailblaze: ["9M"], - uproar: ["8M", "7T"], + upperhand: ["9M"], + uproar: ["9M", "8M", "7T"], uturn: ["9M", "8M", "7M", "7S1"], + vacuumwave: ["9M"], vitalthrow: ["8E", "7E"], workup: ["8M", "7M"], }, @@ -74736,7 +78086,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M"], confuseray: ["9M"], - curse: ["9E", "8E", "7E"], + curse: ["9M", "9E", "8E", "7E"], destinybond: ["9E", "8E", "7E"], doubleteam: ["7M"], earthpower: ["9M", "9L50", "8M", "8L50", "7T", "7L45"], @@ -74748,7 +78098,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M"], frustration: ["7M"], gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7L36"], - gravity: ["7T"], + gravity: ["9M", "7T"], harden: ["9L1", "8L1", "7L1"], hex: ["9M"], hiddenpower: ["7M"], @@ -74760,8 +78110,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M", "8M"], mudslap: ["9M"], nightshade: ["9M"], - painsplit: ["7T"], - poltergeist: ["8T"], + painsplit: ["9M", "7T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M"], psychic: ["9M", "8M", "7M"], raindance: ["9M"], @@ -74775,16 +78125,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M"], sandattack: ["9L20", "8L20", "7L9"], sandstorm: ["9M", "9L60", "8M", "8L60", "7M", "7L54"], - sandtomb: ["9L10", "8M", "8L10", "7L14"], + sandtomb: ["9M", "9L10", "8M", "8L10", "7L14"], scaryface: ["9M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], shadowball: ["9M", "9L45", "8M", "8L45", "7M", "7L41"], shoreup: ["9L55", "8L55", "7L50"], skillswap: ["9M", "8M", "7T"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M"], snore: ["8M", "7T"], - spite: ["7T"], + spite: ["9M", "7T"], spitup: ["9E", "8E", "7E"], stealthrock: ["9M", "8M", "7T"], stockpile: ["9E", "8E", "7E"], @@ -74812,6 +78162,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], confide: ["7M"], confuseray: ["9M"], + curse: ["9M"], doubleteam: ["7M"], earthpower: ["9M", "9L54", "8M", "8L54", "7T", "7L47"], earthquake: ["9M", "8M", "7M"], @@ -74824,7 +78175,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M"], gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7L36"], gigaimpact: ["9M", "8M", "7M"], - gravity: ["7T"], + gravity: ["9M", "7T"], harden: ["9L1", "8L1", "7L1"], hex: ["9M"], hiddenpower: ["7M"], @@ -74837,8 +78188,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M", "8M"], mudslap: ["9M"], nightshade: ["9M"], - painsplit: ["7T"], - poltergeist: ["8T"], + painsplit: ["9M", "7T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M"], psychic: ["9M", "8M", "7M"], quash: ["7M"], @@ -74853,16 +78204,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M"], sandattack: ["9L20", "8L20", "7L1"], sandstorm: ["9M", "9L68", "8M", "8L68", "7M", "7L60"], - sandtomb: ["9L1", "8M", "8L1", "7L14"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L14"], scaryface: ["9M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], shadowball: ["9M", "9L47", "8M", "8L47", "7M", "7L41"], shoreup: ["9L61", "8L61", "7L54"], skillswap: ["9M", "8M", "7T"], sleeptalk: ["9M", "8M", "7M"], sludgebomb: ["9M", "8M", "7M"], snore: ["8M", "7T"], - spite: ["7T"], + spite: ["9M", "7T"], stealthrock: ["9M", "8M", "7T"], stoneedge: ["9M", "8M", "7M"], substitute: ["9M", "8M", "7M"], @@ -75079,64 +78430,70 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, minior: { learnset: { - acrobatics: ["7M"], - ancientpower: ["7L17"], + acrobatics: ["9M", "7M"], + ancientpower: ["9L17", "7L17"], attract: ["7M"], autotomize: ["7L31"], - bulldoze: ["7M"], - calmmind: ["7M"], - chargebeam: ["7M"], + bulldoze: ["9M", "7M"], + calmmind: ["9M", "7M"], + chargebeam: ["9M", "7M"], confide: ["7M"], - confuseray: ["7L10"], - cosmicpower: ["7L36"], - dazzlinggleam: ["7M"], - defensecurl: ["7L3"], - doubleedge: ["7L43"], + confuseray: ["9M", "9L10", "7L10"], + cosmicpower: ["9L36", "7L36"], + dazzlinggleam: ["9M", "7M"], + defensecurl: ["9L3", "7L3"], + doubleedge: ["9M", "9L43", "7L43"], doubleteam: ["7M"], - earthquake: ["7M"], - endeavor: ["7T"], - explosion: ["7M", "7L50"], - facade: ["7M"], + earthpower: ["9M"], + earthquake: ["9M", "7M"], + endeavor: ["9M", "7T"], + endure: ["9M"], + explosion: ["9L50", "7M", "7L50"], + facade: ["9M", "7M"], frustration: ["7M"], - gigaimpact: ["7M"], - gravity: ["7T"], - gyroball: ["7M"], + gigaimpact: ["9M", "7M"], + gravity: ["9M", "7T"], + gyroball: ["9M", "7M"], hiddenpower: ["7M"], - hyperbeam: ["7M"], - ironhead: ["7T"], + hyperbeam: ["9M", "7M"], + ironhead: ["9M", "7T"], lastresort: ["7T"], - lightscreen: ["7M"], + lightscreen: ["9M", "7M"], magnetrise: ["7T"], - powergem: ["7L38"], - protect: ["7M"], - psychic: ["7M"], + meteorbeam: ["9M"], + powergem: ["9M", "9L38", "7L38"], + protect: ["9M", "7M"], + psychic: ["9M", "7M"], psychup: ["7M"], - reflect: ["7M"], - rest: ["7M"], + reflect: ["9M", "7M"], + rest: ["9M", "7M"], return: ["7M"], - rockpolish: ["7M"], - rockslide: ["7M"], - rocktomb: ["7M"], - rollout: ["7L8"], + rockblast: ["9M"], + rockpolish: ["9L31", "7M"], + rockslide: ["9M", "7M"], + rocktomb: ["9M", "7M"], + rollout: ["9L8", "7L8"], round: ["7M"], safeguard: ["7M"], - sandstorm: ["7M"], - selfdestruct: ["7L22"], - shellsmash: ["7L45"], - sleeptalk: ["7M"], + sandstorm: ["9M", "7M"], + scorchingsands: ["9M"], + selfdestruct: ["9L22", "7L22"], + shellsmash: ["9L45", "7L45"], + sleeptalk: ["9M", "7M"], snore: ["7T"], - solarbeam: ["7M"], - stealthrock: ["7T", "7L24"], - stoneedge: ["7M"], - substitute: ["7M"], + solarbeam: ["9M", "7M"], + stealthrock: ["9M", "9L24", "7T", "7L24"], + stoneedge: ["9M", "7M"], + substitute: ["9M", "7M"], swagger: ["7M"], - swift: ["7L15"], - tackle: ["7L1"], - takedown: ["7L29"], + swift: ["9M", "9L15", "7L15"], + tackle: ["9L1", "7L1"], + takedown: ["9M", "9L29", "7L29"], telekinesis: ["7T"], + terablast: ["9M"], toxic: ["7M"], - uturn: ["7M"], - zenheadbutt: ["7T"], + uturn: ["9M", "7M"], + zenheadbutt: ["9M", "7T"], }, }, komala: { @@ -75150,10 +78507,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { calmmind: ["9M", "7M"], charm: ["9M", "9E", "7E"], confide: ["7M"], + curse: ["9M"], defensecurl: ["9L1", "7L1"], + doubleedge: ["9M"], doubleteam: ["7M"], earthquake: ["9M", "7M"], - endeavor: ["7T"], + endeavor: ["9M", "7T"], endure: ["9M"], facade: ["9M", "7M"], flail: ["9L26", "7L26"], @@ -75165,7 +78524,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], icespinner: ["9M"], ironhead: ["9M", "7T"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], lastresort: ["7T"], lowkick: ["9M"], lowsweep: ["9M", "7M"], @@ -75173,7 +78532,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { payback: ["7M"], playrough: ["9M", "9E", "7E"], protect: ["9M", "7M"], - psychup: ["9L36", "7M", "7L36"], + psychup: ["9M", "9L36", "7M", "7L36"], quash: ["7M"], raindance: ["9M"], rapidspin: ["9L11", "7L11"], @@ -75195,6 +78554,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "7M"], suckerpunch: ["9L31", "7L31"], sunnyday: ["9M", "7M"], + superfang: ["9M"], superpower: ["9E", "7T"], swagger: ["7M"], swallow: ["9L6", "7L6"], @@ -75458,17 +78818,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { babydolleyes: ["9L18", "8L18", "7L10", "7S0"], beatup: ["8M"], bulkup: ["9M", "8M", "7M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], chargebeam: ["7M"], charm: ["9M", "9L48", "8M", "8L48", "7L28"], confide: ["7M"], confuseray: ["9M"], copycat: ["9L1", "8L1", "7L1", "7S0", "7S1"], covet: ["7T"], - curse: ["9E", "8E", "7E"], + curse: ["9M", "9E", "9S3", "8E", "7E"], darkpulse: ["9M", "8M", "7M"], dazzlinggleam: ["9M", "8M", "7M"], - destinybond: ["9E", "8E", "7E", "7S2"], + destinybond: ["9E", "9S3", "8E", "7E", "7S2"], doubleteam: ["9L12", "8L12", "7M", "7L5"], drainingkiss: ["9M", "8M"], drainpunch: ["9M", "8M", "7T"], @@ -75495,14 +78855,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mistyterrain: ["9M"], nightmare: ["7E"], nightshade: ["9M"], - painsplit: ["9L60", "8L60", "7T", "7L50"], + painsplit: ["9M", "9L60", "8L60", "7T", "7L50"], payback: ["8M", "7M"], - phantomforce: ["9M", "8M"], + phantomforce: ["9M", "9S3", "8M"], playrough: ["9M", "9L54", "8M", "8L54", "7L46", "7S1"], pounce: ["9M"], protect: ["9M", "8M", "7M"], psychic: ["9M", "8M", "7M"], - psychup: ["7M"], + psychup: ["9M", "7M"], raindance: ["9M"], rest: ["9M", "8M", "7M"], return: ["7M"], @@ -75517,7 +78877,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M"], snatch: ["7T", "7S2"], snore: ["8M", "7T"], - spite: ["7T"], + spite: ["9M", "7T"], splash: ["9L1", "8L1", "7L1", "7S0"], substitute: ["9M", "8M", "7M", "7S1"], sunnyday: ["9M"], @@ -75529,7 +78889,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M", "7M"], thunder: ["9M", "8M", "7M"], - thunderbolt: ["9M", "8M", "7M"], + thunderbolt: ["9M", "9S3", "8M", "7M"], thunderwave: ["9M", "8M", "7M"], toxic: ["7M"], trailblaze: ["9M"], @@ -75544,6 +78904,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 10, moves: ["copycat", "babydolleyes", "splash", "astonish"], pokeball: "cherishball"}, {generation: 7, level: 10, shiny: true, moves: ["astonish", "playrough", "copycat", "substitute"], pokeball: "cherishball"}, {generation: 7, level: 50, shiny: true, moves: ["mimic", "snatch", "trick", "destinybond"], pokeball: "cherishball"}, + {generation: 9, level: 25, moves: ["thunderbolt", "destinybond", "phantomforce", "curse"], pokeball: "cherishball"}, ], }, mimikyutotem: { @@ -75643,8 +79004,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dreameater: ["7M"], embargo: ["7M"], endure: ["9M"], + expandingforce: ["9M"], facade: ["9M", "7M"], fling: ["7M"], + flipturn: ["9M"], frostbreath: ["7M"], frustration: ["7M"], gigaimpact: ["9M", "7M"], @@ -75659,12 +79022,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { liquidation: ["9M", "7T"], magiccoat: ["7T"], magicroom: ["7T"], - painsplit: ["7T"], + painsplit: ["9M", "7T"], payback: ["7M"], poisonfang: ["9E", "7E"], protect: ["9M", "7M"], psychic: ["9M", "7M"], psychicfangs: ["9M", "9L41", "7L41"], + psychicnoise: ["9M"], psychicterrain: ["9M"], psyshock: ["9M", "9L25"], psywave: ["7L25"], @@ -75683,7 +79047,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snatch: ["7T"], snore: ["7T"], substitute: ["9M", "7M"], - superfang: ["9E"], + superfang: ["9M", "9E"], surf: ["9M", "7M"], swagger: ["7M"], swordsdance: ["9M", "7M"], @@ -75701,6 +79065,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "7L1"], waterpulse: ["9M", "9E", "7T", "7E"], wavecrash: ["9L44"], + whirlpool: ["9M"], wonderroom: ["7T"], }, }, @@ -75885,229 +79250,259 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aquatail: ["7T"], attract: ["8M", "7M"], bide: ["7L9"], - brickbreak: ["8M", "7M"], - bulkup: ["8M", "7M"], - bulldoze: ["8M", "7M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], confide: ["7M"], - counter: ["8E", "7E"], + counter: ["9E", "8E", "7E"], doubleteam: ["7M"], - dracometeor: ["8T", "7T"], - dragonbreath: ["8E", "7E"], - dragonclaw: ["8M", "8L32", "7M", "7L41"], - dragondance: ["8M", "8L40", "7L49"], - dragonpulse: ["8M", "7T"], - dragontail: ["8L8", "7M", "7L17"], + dracometeor: ["9M", "8T", "7T"], + dragonbreath: ["9E", "8E", "7E"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L41"], + dragondance: ["9M", "9L40", "8M", "8L40", "7L49"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "9L8", "8L8", "7M", "7L17"], dualchop: ["7T"], - earthquake: ["8M", "7M"], + earthquake: ["9M", "8M", "7M"], echoedvoice: ["7M"], - endure: ["8M"], - facade: ["8M", "7M"], - falseswipe: ["8M", "7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], fling: ["8M"], - focusblast: ["8M", "7M"], - focuspunch: ["8E"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "9E", "8E"], frustration: ["7M"], - headbutt: ["8L16", "7L25"], + headbutt: ["9L16", "8L16", "7L25"], hiddenpower: ["7M"], - irondefense: ["8M", "8L28", "7T", "7L37"], - ironhead: ["8M", "7T"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L37"], + ironhead: ["9M", "8M", "7T"], irontail: ["8M", "7T"], - leer: ["8L1", "7L5"], - lowkick: ["8M", "7T"], - nobleroar: ["8L36", "7L45"], - outrage: ["8M", "8L44", "7T", "7L53"], + leer: ["9L1", "8L1", "7L5"], + lowkick: ["9M", "8M", "7T"], + nobleroar: ["9L36", "8L36", "7L45"], + outrage: ["9M", "9L44", "8M", "8L44", "7T", "7L53"], payback: ["8M", "7M"], - protect: ["8M", "8L4", "7M", "7L13"], - rest: ["8M", "7M"], + protect: ["9M", "9L4", "8M", "8L4", "7M", "7L13"], + rest: ["9M", "8M", "7M"], return: ["7M"], - reversal: ["8M", "7E"], - roar: ["7M"], - rockslide: ["8M", "7M"], - rocktomb: ["8M", "7M"], + reversal: ["9M", "8M", "7E"], + roar: ["9M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - sandstorm: ["8M", "7M"], - scaleshot: ["8T"], - scaryface: ["8M", "8L12", "7L21"], - screech: ["8M", "8L24", "7L33"], - shadowclaw: ["8M", "7M"], - sleeptalk: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L21"], + screech: ["9L24", "8M", "8L24", "7L33"], + shadowclaw: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - substitute: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], swagger: ["7M"], - swordsdance: ["8M", "7M"], - tackle: ["8L1", "7L1"], - taunt: ["8M", "7M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], toxic: ["7M"], uproar: ["8M", "7T"], - workup: ["8M", "8L20", "7M", "7L29"], - xscissor: ["8M", "7M"], + workup: ["9L20", "8M", "8L20", "7M", "7L29"], + xscissor: ["9M", "8M", "7M"], }, }, hakamoo: { learnset: { - aerialace: ["7M"], + aerialace: ["9M", "7M"], aquatail: ["7T"], attract: ["8M", "7M"], autotomize: ["8L1", "7L1"], bide: ["7L1"], - brickbreak: ["8M", "7M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + brickbreak: ["9M", "8M", "7M"], brutalswing: ["8M", "7M"], - bulkup: ["8M", "7M"], - bulldoze: ["8M", "7M"], - closecombat: ["8M", "8L56", "7L63"], - coaching: ["8T"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + closecombat: ["9M", "9L56", "8M", "8L56", "7L63"], + coaching: ["9M", "8T"], confide: ["7M"], + doubleedge: ["9M"], doubleteam: ["7M"], - dracometeor: ["8T", "7T"], - dragonclaw: ["8M", "8L32", "7M", "7L43"], - dragondance: ["8M", "8L44", "7L53"], - dragonpulse: ["8M", "7T"], - dragontail: ["8L1", "7M", "7L17"], - drainpunch: ["8M", "7T"], + dracometeor: ["9M", "8T", "7T"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L43"], + dragondance: ["9M", "9L44", "8M", "8L44", "7L53"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "9L1", "8L1", "7M", "7L17"], + drainpunch: ["9M", "8M", "7T"], dualchop: ["7T"], - earthquake: ["8M", "7M"], + earthquake: ["9M", "8M", "7M"], echoedvoice: ["7M"], - endure: ["8M"], - facade: ["8M", "7M"], - falseswipe: ["8M", "7M"], - fling: ["8M", "7M"], - focusblast: ["8M", "7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M"], frustration: ["7M"], - headbutt: ["8L16", "7L25"], + headbutt: ["9L16", "8L16", "7L25"], hiddenpower: ["7M"], - irondefense: ["8M", "8L28", "7T", "7L38"], - ironhead: ["8M", "7T"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L38"], + ironhead: ["9M", "8M", "7T"], irontail: ["8M", "7T"], - leer: ["8L1", "7L1"], - lowkick: ["8M", "7T"], + leer: ["9L1", "8L1", "7L1"], + lowkick: ["9M", "8M", "7T"], megakick: ["8M"], megapunch: ["8M"], - nobleroar: ["8L38", "7L48"], - outrage: ["8M", "8L50", "7T", "7L58"], + metalclaw: ["9M"], + nobleroar: ["9L38", "8L38", "7L48"], + outrage: ["9M", "9L50", "8M", "8L50", "7T", "7L58"], payback: ["8M", "7M"], - protect: ["8M", "8L1", "7M", "7L1"], - rest: ["8M", "7M"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + rest: ["9M", "8M", "7M"], return: ["7M"], - reversal: ["8M"], - roar: ["7M"], - rockslide: ["8M", "7M"], - rocktomb: ["8M", "7M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - sandstorm: ["8M", "7M"], - scaleshot: ["8T"], - scaryface: ["8M", "8L12", "7L21"], - screech: ["8M", "8L24", "7L33"], - shadowclaw: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L21"], + screech: ["9L24", "8M", "8L24", "7L33"], + shadowclaw: ["9M", "8M", "7M"], skyuppercut: ["7L1"], - sleeptalk: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - substitute: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], swagger: ["7M"], - swordsdance: ["8M", "7M"], - tackle: ["8L1", "7L1"], - taunt: ["8M", "7M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + throatchop: ["9M"], toxic: ["7M"], + upperhand: ["9M"], uproar: ["8M", "7T"], - workup: ["8M", "8L20", "7M", "7L29"], - xscissor: ["8M", "7M"], + vacuumwave: ["9M"], + workup: ["9L20", "8M", "8L20", "7M", "7L29"], + xscissor: ["9M", "8M", "7M"], }, }, kommoo: { learnset: { - aerialace: ["7M"], + aerialace: ["9M", "7M"], aquatail: ["7T"], attract: ["8M", "7M"], - aurasphere: ["8M"], + aurasphere: ["9M", "8M"], autotomize: ["8L1", "7L1"], - bellydrum: ["8L1", "7L1"], + bellydrum: ["9L1", "8L1", "7L1"], bide: ["7L1"], - bodypress: ["8M"], - boomburst: ["8L76"], - breakingswipe: ["8M"], - brickbreak: ["8M", "7M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + boomburst: ["9L76", "8L76"], + breakingswipe: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], brutalswing: ["8M", "7M"], - bulkup: ["8M", "7M"], - bulldoze: ["8M", "7M"], - clangingscales: ["8L0", "7L1"], - clangoroussoul: ["8L68"], - closecombat: ["8M", "8L60", "7L75"], - coaching: ["8T"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + clangingscales: ["9L0", "8L0", "7L1"], + clangoroussoul: ["9L68", "8L68"], + closecombat: ["9M", "9L60", "8M", "8L60", "7L75"], + coaching: ["9M", "8T"], confide: ["7M"], + doubleedge: ["9M"], doubleteam: ["7M"], - dracometeor: ["8T", "7T"], - dragonclaw: ["8M", "8L32", "7M", "7L43"], - dragondance: ["8M", "8L44", "7L59"], - dragonpulse: ["8M", "7T"], - dragontail: ["8L1", "7M", "7L17"], - drainpunch: ["8M", "7T"], + dracometeor: ["9M", "8T", "7T"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L43"], + dragondance: ["9M", "9L44", "8M", "8L44", "7L59"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "9L1", "8L1", "7M", "7L17"], + drainpunch: ["9M", "8M", "7T"], dualchop: ["7T"], - earthquake: ["8M", "7M"], + earthquake: ["9M", "8M", "7M"], echoedvoice: ["7M"], - endeavor: ["7T"], - endure: ["8M"], - facade: ["8M", "7M"], - falseswipe: ["8M", "7M"], - firepunch: ["8M", "7T"], - flamethrower: ["8M", "7M"], - flashcannon: ["8M", "7M"], - fling: ["8M", "7M"], - focusblast: ["8M", "7M"], - focuspunch: ["7T"], + endeavor: ["9M", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + firepunch: ["9M", "8M", "7T"], + flamethrower: ["9M", "8M", "7M"], + flashcannon: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], frustration: ["7M"], - gigaimpact: ["8M", "7M"], - headbutt: ["8L16", "7L25"], + gigaimpact: ["9M", "8M", "7M"], + headbutt: ["9L16", "8L16", "7L25"], + helpinghand: ["9M"], hiddenpower: ["7M"], - hyperbeam: ["8M", "7M"], - hypervoice: ["8M", "7T"], - icepunch: ["8M", "7T"], - irondefense: ["8M", "8L28", "7T", "7L38"], - ironhead: ["8M", "7T"], + hyperbeam: ["9M", "8M", "7M"], + hypervoice: ["9M", "8M", "7T"], + icepunch: ["9M", "8M", "7T"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L38"], + ironhead: ["9M", "8M", "7T"], irontail: ["8M", "7T"], laserfocus: ["7T"], - leer: ["8L1", "7L1"], - lowkick: ["8M", "7T"], + leer: ["9L1", "8L1", "7L1"], + lowkick: ["9M", "8M", "7T"], megakick: ["8M"], megapunch: ["8M"], - nobleroar: ["8L38", "7L51"], - outrage: ["8M", "8L52", "7T", "7L67"], + metalclaw: ["9M"], + metalsound: ["9M"], + nobleroar: ["9L38", "8L38", "7L51"], + outrage: ["9M", "9L52", "8M", "8L52", "7T", "7L67"], payback: ["8M", "7M"], - poisonjab: ["8M", "7M"], - protect: ["8M", "8L1", "7M", "7L1"], - rest: ["8M", "7M"], + poisonjab: ["9M", "8M", "7M"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + raindance: ["9M"], + rest: ["9M", "8M", "7M"], return: ["7M"], revenge: ["8M"], - reversal: ["8M"], - roar: ["7M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M"], rockpolish: ["7M"], - rockslide: ["8M", "7M"], - rocktomb: ["8M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - sandstorm: ["8M", "7M"], - scaleshot: ["8T"], - scaryface: ["8M", "8L12", "7L21"], - screech: ["8M", "8L24", "7L33"], - shadowclaw: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L21"], + screech: ["9L24", "8M", "8L24", "7L33"], + shadowclaw: ["9M", "8M", "7M"], shockwave: ["7T"], skyuppercut: ["7L1"], - sleeptalk: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - stealthrock: ["8M", "7T"], - stompingtantrum: ["8M", "7T"], - substitute: ["8M", "7M"], + stealthrock: ["9M", "8M", "7T"], + stompingtantrum: ["9M", "8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], superpower: ["8M", "7T"], swagger: ["7M"], - swordsdance: ["8M", "7M"], - tackle: ["8L1", "7L1"], - taunt: ["8M", "7M"], - thunderpunch: ["8M", "7T"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + throatchop: ["9M"], + thunderpunch: ["9M", "8M", "7T"], toxic: ["7M"], + upperhand: ["9M"], uproar: ["8M", "7T"], + vacuumwave: ["9M"], waterpulse: ["7T"], - workup: ["8M", "8L20", "7M", "7L29"], - xscissor: ["8M", "7M"], + workup: ["9L20", "8M", "8L20", "7M", "7L29"], + xscissor: ["9M", "8M", "7M"], }, encounters: [ {generation: 7, level: 41}, @@ -76541,8 +79936,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cosmog: { learnset: { - splash: ["8L1", "8S1", "7L1", "7S0"], - teleport: ["8L1", "8S1", "7L23"], + splash: ["9L1", "8L1", "8S1", "7L1", "7S0"], + teleport: ["9L1", "8L1", "8S1", "7L23"], }, eventData: [ {generation: 7, level: 5, moves: ["splash"]}, @@ -76552,186 +79947,193 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cosmoem: { learnset: { - cosmicpower: ["8M", "8L0", "7L1"], - teleport: ["8L1", "7L1"], + cosmicpower: ["9L0", "8M", "8L0", "7L1"], + teleport: ["9L1", "8L1", "7L1"], }, }, solgaleo: { learnset: { - agility: ["8M"], - bulldoze: ["8M", "7M"], - calmmind: ["8M", "7M"], - closecombat: ["8M"], + agility: ["9M", "8M"], + bodyslam: ["9M"], + bulldoze: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M"], + closecombat: ["9M", "8M"], confide: ["7M"], - cosmicpower: ["8M", "8L1", "7L1", "7S0", "7S1"], - crunch: ["8M", "8L42", "7L37", "7S0", "7S1"], + cosmicpower: ["9L1", "8M", "8L1", "7L1", "7S0", "7S1"], + crunch: ["9M", "9L42", "8M", "8L42", "7L37", "7S0", "7S1"], + doubleedge: ["9M"], doubleteam: ["7M"], - earthquake: ["8M", "7M"], - endeavor: ["7T"], - endure: ["8M"], - expandingforce: ["8T"], - facade: ["8M", "7M"], - fireblast: ["8M", "7M"], - firespin: ["8M", "8S3"], - flamecharge: ["7M"], - flamethrower: ["8M", "7M"], - flareblitz: ["8M", "8L70", "7L61"], - flashcannon: ["8M", "8L28", "7M", "7L23"], - focusblast: ["8M", "7M"], + earthquake: ["9M", "8M", "7M"], + endeavor: ["9M", "7T"], + endure: ["9M", "8M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M"], + fireblast: ["9M", "8M", "7M"], + firespin: ["9M", "8M", "8S3"], + flamecharge: ["9M", "7M"], + flamethrower: ["9M", "8M", "7M"], + flareblitz: ["9M", "9L70", "9S4", "8M", "8L70", "7L61"], + flashcannon: ["9M", "9L28", "8M", "8L28", "7M", "7L23"], + focusblast: ["9M", "8M", "7M"], frustration: ["7M"], - futuresight: ["8M"], - gigaimpact: ["8M", "8L84", "7M", "7L73"], - gyroball: ["8M", "7M"], - heatcrash: ["8M"], - heavyslam: ["8M"], - helpinghand: ["8M"], + futuresight: ["9M", "8M"], + gigaimpact: ["9M", "9L84", "8M", "8L84", "7M", "7L73"], + gyroball: ["9M", "8M", "7M"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "8M"], hiddenpower: ["7M"], - hyperbeam: ["8M", "7M"], - hypervoice: ["8M", "7T"], - irondefense: ["8M", "7T"], - ironhead: ["8M", "8L7", "7T", "7L7"], + hyperbeam: ["9M", "8M", "7M"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "9L7", "8M", "8L7", "7T", "7L7"], irontail: ["8M", "8S3", "7T"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], lastresort: ["7T"], - lightscreen: ["8M", "7M"], - metalburst: ["8L49", "7L43"], - metalclaw: ["8L1", "7L1"], - metalsound: ["8L14", "7L13"], - meteorbeam: ["8T"], - morningsun: ["8L35", "7L31", "7S2"], + lightscreen: ["9M", "8M", "7M"], + metalburst: ["9L49", "9S4", "8L49", "7L43"], + metalclaw: ["9M", "9L1", "8L1", "7L1"], + metalsound: ["9M", "9L14", "8L14", "7L13"], + meteorbeam: ["9M", "8T"], + morningsun: ["9L35", "8L35", "7L31", "7S2"], mysticalfire: ["8M"], - nobleroar: ["8L1", "8S3", "7L59", "7S2"], - outrage: ["8M", "7T"], - protect: ["8M", "7M"], - psychic: ["8M", "7M"], - psychicfangs: ["8M"], - psychup: ["7M"], - psyshock: ["8M", "7M"], - reflect: ["8M", "7M"], - rest: ["8M", "7M"], + nobleroar: ["9L1", "8L1", "8S3", "7L59", "7S2"], + outrage: ["9M", "8M", "7T"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + psychup: ["9M", "7M"], + psyshock: ["9M", "8M", "7M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], - roar: ["7M"], - rockslide: ["8M", "7M"], - rocktomb: ["8M", "7M"], + roar: ["9M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - scaryface: ["8M"], + scaryface: ["9M", "8M"], shockwave: ["7T"], - sleeptalk: ["8M", "7M"], - snarl: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "8L63", "7M", "7L47"], - steelbeam: ["8T"], + solarbeam: ["9M", "9L63", "9S4", "8M", "8L63", "7M", "7L47"], + steelbeam: ["9M", "8T"], steelroller: ["8T"], - stoneedge: ["8M", "7M"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], - sunsteelstrike: ["8L0", "7L1", "7S0", "7S1", "7S2"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + sunsteelstrike: ["9L0", "8L0", "7L1", "7S0", "7S1", "7S2"], superpower: ["8M", "7T"], swagger: ["7M"], - swift: ["8M"], - teleport: ["8L1", "7L1"], - thunder: ["8M", "7M"], - thunderbolt: ["8M", "7M"], + swift: ["9M", "8M"], + takedown: ["9M"], + teleport: ["9L1", "8L1", "7L1"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "8M", "7M"], thunderwave: ["8M", "7M"], toxic: ["7M"], - trickroom: ["8M", "7M"], + trickroom: ["9M", "8M", "7M"], wakeupslap: ["7L1"], - wideguard: ["8L77", "7L67"], - wildcharge: ["8M", "8L56", "7M"], + wideguard: ["9L77", "8L77", "7L67"], + wildcharge: ["9M", "9L56", "9S4", "8M", "8L56", "7M"], workup: ["8M", "7M"], - zenheadbutt: ["8M", "8L21", "8S3", "7T", "7L19", "7S0", "7S1", "7S2"], + zenheadbutt: ["9M", "9L21", "8M", "8L21", "8S3", "7T", "7L19", "7S0", "7S1", "7S2"], }, eventData: [ {generation: 7, level: 55, moves: ["sunsteelstrike", "cosmicpower", "crunch", "zenheadbutt"]}, {generation: 7, level: 60, moves: ["sunsteelstrike", "cosmicpower", "crunch", "zenheadbutt"]}, {generation: 7, level: 60, shiny: true, moves: ["sunsteelstrike", "zenheadbutt", "nobleroar", "morningsun"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["zenheadbutt", "firespin", "irontail", "nobleroar"]}, + {generation: 9, level: 70, moves: ["flareblitz", "solarbeam", "wildcharge", "metalburst"]}, ], }, lunala: { learnset: { - acrobatics: ["8M", "7M"], - aerialace: ["7M"], - agility: ["8M"], - airslash: ["8M", "8L21", "7L19"], - blizzard: ["8M", "7M"], - calmmind: ["8M", "7M"], - chargebeam: ["7M"], + acrobatics: ["9M", "8M", "7M"], + aerialace: ["9M", "7M"], + agility: ["9M", "8M"], + airslash: ["9M", "9L21", "8M", "8L21", "7L19"], + blizzard: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M"], + chargebeam: ["9M", "7M"], confide: ["7M"], - confuseray: ["8L14", "7L13"], - confusion: ["8L1", "7L1"], - cosmicpower: ["8M", "8L1", "7L1", "7S0", "7S1"], - dazzlinggleam: ["8M", "7M"], + confuseray: ["9M", "9L14", "8L14", "7L13"], + confusion: ["9L1", "8L1", "7L1"], + cosmicpower: ["9L1", "8M", "8L1", "7L1", "7S0", "7S1"], + dazzlinggleam: ["9M", "8M", "7M"], defog: ["7T"], doubleteam: ["7M"], - dreameater: ["8L70", "7M", "7L59"], - dualwingbeat: ["8T"], - endure: ["8M"], - expandingforce: ["8T"], - facade: ["8M", "7M"], - fly: ["8M", "7M"], - focusblast: ["8M", "7M"], + dreameater: ["9L70", "9S4", "8L70", "7M", "7L59"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M"], + fly: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], frustration: ["7M"], - futuresight: ["8M"], - gigaimpact: ["8M", "7M"], - heatwave: ["8M", "7T"], - helpinghand: ["8M"], - hex: ["8M"], + futuresight: ["9M", "8M"], + gigaimpact: ["9M", "8M", "7M"], + heatwave: ["9M", "8M", "7T"], + helpinghand: ["9M", "8M"], + hex: ["9M", "8M"], hiddenpower: ["7M"], - hyperbeam: ["8M", "8L84", "7M", "7L73"], - hypnosis: ["8L1", "7L1"], - icebeam: ["8M", "7M"], - icywind: ["8M", "7T"], - lightscreen: ["8M", "7M"], + hyperbeam: ["9M", "8M", "8L84", "7M", "7L73"], + hypnosis: ["9L1", "8L1", "7L1"], + icebeam: ["9M", "8M", "7M"], + icywind: ["9M", "8M", "7T"], + lightscreen: ["9M", "8M", "7M"], magiccoat: ["8L49", "8S3", "7T", "7L43"], magicroom: ["8M", "7T"], - meteorbeam: ["8T"], - moonblast: ["8L56", "8S3", "7L47", "7S2"], - moongeistbeam: ["8L0", "7L1", "7S0", "7S1", "7S2"], - moonlight: ["8L35", "7L31", "7S2"], - nightdaze: ["8L42", "7L37", "7S0", "7S1"], - nightshade: ["8L7", "7L7"], - phantomforce: ["8M", "8L63", "7L61"], - poltergeist: ["8T"], - protect: ["8M", "7M"], - psychic: ["8M", "7M"], + meteorbeam: ["9M", "8T"], + moonblast: ["9L56", "9S4", "8L56", "8S3", "7L47", "7S2"], + moongeistbeam: ["9L0", "8L0", "7L1", "7S0", "7S1", "7S2"], + moonlight: ["9L35", "8L35", "7L31", "7S2"], + nightdaze: ["9L42", "8L42", "7L37", "7S0", "7S1"], + nightshade: ["9M", "9L7", "8L7", "7L7"], + phantomforce: ["9M", "9L63", "9S4", "8M", "8L63", "7L61"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "9L49", "9S4", "8M", "7M"], psychocut: ["8M"], - psychup: ["7M"], - psyshock: ["8M", "7M", "7S2"], - reflect: ["8M", "7M"], - rest: ["8M", "7M"], + psychup: ["9M", "7M"], + psyshock: ["9M", "8M", "7M", "7S2"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], roar: ["7M"], roost: ["7M"], round: ["8M", "7M"], safeguard: ["8M", "7M"], - scaryface: ["8M"], - shadowball: ["8M", "8L28", "8S3", "7M", "7L23", "7S0", "7S1"], - shadowclaw: ["8M", "7M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "9L28", "8M", "8L28", "8S3", "7M", "7L23", "7S0", "7S1"], + shadowclaw: ["9M", "8M", "7M"], shockwave: ["7T"], signalbeam: ["7T"], skyattack: ["7T"], skydrop: ["7M"], - sleeptalk: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "7M"], - spite: ["7T"], - substitute: ["8M", "7M"], - sunnyday: ["8M", "7M"], + solarbeam: ["9M", "8M", "7M"], + spite: ["9M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], swagger: ["7M"], - swift: ["8M", "8S3"], - tailwind: ["7T"], + swift: ["9M", "8M", "8S3"], + tailwind: ["9M", "7T"], telekinesis: ["7T"], - teleport: ["8L1", "7L1"], - thunder: ["8M", "7M"], - thunderbolt: ["8M", "7M"], + teleport: ["9L1", "8L1", "7L1"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "8M", "7M"], thunderwave: ["8M", "7M"], toxic: ["7M"], - trick: ["8M", "7T"], - trickroom: ["8M", "7M"], - wideguard: ["8L77", "7L67"], - willowisp: ["8M", "7M"], + trick: ["9M", "8M", "7T"], + trickroom: ["9M", "8M", "7M"], + wideguard: ["9L77", "8L77", "7L67"], + willowisp: ["9M", "8M", "7M"], wonderroom: ["8M", "7T"], workup: ["8M", "7M"], }, @@ -76740,6 +80142,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 7, level: 60, moves: ["moongeistbeam", "cosmicpower", "nightdaze", "shadowball"]}, {generation: 7, level: 60, shiny: true, moves: ["moongeistbeam", "psyshock", "moonblast", "moonlight"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["shadowball", "moonblast", "magiccoat", "swift"]}, + {generation: 9, level: 70, moves: ["dreameater", "phantomforce", "moonblast", "psychic"]}, ], }, nihilego: { @@ -77261,116 +80664,122 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, necrozma: { learnset: { - aerialace: ["7M"], + aerialace: ["9M", "7M"], allyswitch: ["8M", "7T"], autotomize: ["8L80", "8S3", "7L47"], + bodyslam: ["9M"], breakingswipe: ["8M"], - brickbreak: ["8M", "7M"], + brickbreak: ["9M", "8M", "7M"], brutalswing: ["8M", "7M"], - bulldoze: ["8M", "7M"], - calmmind: ["8M", "7M"], - chargebeam: ["8L1", "8S3", "7M", "7L1"], + bulldoze: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M"], + chargebeam: ["9M", "9L1", "8L1", "8S3", "7M", "7L1"], confide: ["7M"], - confusion: ["8L1", "7L1"], + confusion: ["9L1", "8L1", "7L1"], cosmicpower: ["8M"], - darkpulse: ["8M", "7M"], + darkpulse: ["9M", "8M", "7M"], doubleteam: ["7M"], - dragondance: ["8M"], - dragonpulse: ["8M", "7T"], - earthpower: ["8M", "7T"], - earthquake: ["8M", "7M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T"], + earthpower: ["9M", "8M", "7T"], + earthquake: ["9M", "8M", "7M"], embargo: ["7M"], - endure: ["8M"], - expandingforce: ["8T"], - facade: ["8M", "7M"], - flashcannon: ["8M", "7M"], - fling: ["8M", "7M"], + endure: ["9M", "8M"], + expandingforce: ["9M", "8T"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], frustration: ["7M"], - futuresight: ["8M"], - gigaimpact: ["8M", "7M"], - gravity: ["8L1", "7T", "7L31"], - gyroball: ["8M", "7M"], - heatwave: ["8M", "7T"], + futuresight: ["9M", "8M"], + gigaimpact: ["9M", "8M", "7M"], + gravity: ["9M", "9L80", "8L1", "7T", "7L31"], + gyroball: ["9M", "8M", "7M"], + heatwave: ["9M", "8M", "7T"], hiddenpower: ["7M"], - hyperbeam: ["8M", "7M"], - hypervoice: ["8M", "7T"], - imprison: ["8M"], - irondefense: ["8M", "8L56", "7T", "7L59", "7S0", "7S1"], - ironhead: ["8M", "7T"], - knockoff: ["7T"], - lightscreen: ["8M", "7M", "7S2"], + hyperbeam: ["9M", "8M", "7M"], + hypervoice: ["9M", "8M", "7T"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L56", "9S4", "8M", "8L56", "7T", "7L59", "7S0", "7S1"], + ironhead: ["9M", "8M", "7T"], + knockoff: ["9M", "7T"], + lightscreen: ["9M", "8M", "7M", "7S2"], magnetrise: ["7T"], - metalclaw: ["8L1", "7L1"], - meteorbeam: ["8T"], + metalclaw: ["9M", "9L1", "8L1", "7L1"], + meteorbeam: ["9M", "8T"], mirrorshot: ["7L1"], - moonlight: ["8L1", "7L1", "7S2"], - morningsun: ["8L1", "7L1"], - nightslash: ["8L24", "7L23", "7S1"], - outrage: ["8M", "7T"], - photongeyser: ["8L72", "7L50", "7S1"], - powergem: ["8M", "8L64", "8S3", "7L43", "7S1"], - prismaticlaser: ["8L88", "7L73", "7S0"], - protect: ["8M", "7M"], - psychic: ["8M", "7M"], - psychicfangs: ["8M"], - psychocut: ["8M", "8L32", "8S3", "7L37"], - psyshock: ["8M", "7M"], + moonlight: ["9L1", "8L1", "7L1", "7S2"], + morningsun: ["9L1", "8L1", "7L1"], + nightslash: ["9L24", "8L24", "7L23", "7S1"], + outrage: ["9M", "8M", "7T"], + photongeyser: ["9L72", "8L72", "7L50", "7S1"], + powergem: ["9M", "9L64", "9S4", "8M", "8L64", "8S3", "7L43", "7S1"], + prismaticlaser: ["9L88", "8L88", "7L73", "7S0"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + psychocut: ["9L32", "8M", "8L32", "8S3", "7L37"], + psyshock: ["9M", "8M", "7M"], recycle: ["7T"], - reflect: ["8M", "7M"], - rest: ["8M", "7M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], return: ["7M"], - rockblast: ["8M", "8L48", "7L19"], + rockblast: ["9M", "9L48", "9S4", "8M", "8L48", "7L19"], rockpolish: ["7M"], - rockslide: ["8M", "7M"], - rocktomb: ["8M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], round: ["8M", "7M"], - scaryface: ["8M"], - shadowclaw: ["8M", "7M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + shadowclaw: ["9M", "8M", "7M"], shockwave: ["7T"], signalbeam: ["7T"], - slash: ["8L16", "7L7"], - sleeptalk: ["8M", "7M"], - smartstrike: ["8M", "7M"], + slash: ["9L16", "8L16", "7L7"], + sleeptalk: ["9M", "8M", "7M"], + smartstrike: ["9M", "8M", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "7M"], - stealthrock: ["8M", "8L8", "7T", "7L53", "7S0"], - stoneedge: ["8M", "7M"], - storedpower: ["8M", "8L40", "7L13"], - substitute: ["8M", "7M", "7S2"], + solarbeam: ["9M", "8M", "7M"], + stealthrock: ["9M", "9L8", "8M", "8L8", "7T", "7L53", "7S0"], + stoneedge: ["9M", "8M", "7M"], + storedpower: ["9M", "9L40", "9S4", "8M", "8L40", "7L13"], + substitute: ["9M", "8M", "7M", "7S2"], + sunnyday: ["9M"], swagger: ["7M"], - swordsdance: ["8M", "7M"], + swift: ["9M"], + swordsdance: ["9M", "8M", "7M"], telekinesis: ["7T"], - thief: ["8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], thunderwave: ["8M", "7M"], toxic: ["7M"], - trickroom: ["8M", "7M"], + trickroom: ["9M", "8M", "7M"], wringout: ["7L67", "7S0"], - xscissor: ["8M", "7M"], + xscissor: ["9M", "8M", "7M"], }, eventData: [ {generation: 7, level: 75, moves: ["stealthrock", "irondefense", "wringout", "prismaticlaser"]}, {generation: 7, level: 65, moves: ["photongeyser", "irondefense", "powergem", "nightslash"]}, {generation: 7, level: 75, shiny: true, moves: ["lightscreen", "substitute", "moonlight"], pokeball: "cherishball"}, {generation: 8, level: 70, shiny: 1, moves: ["psychocut", "chargebeam", "powergem", "autotomize"]}, + {generation: 9, level: 70, moves: ["powergem", "irondefense", "rockblast", "storedpower"]}, ], eventOnly: true, }, necrozmaduskmane: { learnset: { - sunsteelstrike: ["8R", "7R"], + sunsteelstrike: ["9R", "8R", "7R"], }, eventOnly: true, }, necrozmadawnwings: { learnset: { - moongeistbeam: ["8R", "7R"], + moongeistbeam: ["9R", "8R", "7R"], }, eventOnly: true, }, necrozmaultra: { learnset: { - moongeistbeam: ["8R", "7R"], - sunsteelstrike: ["8R", "7R"], + moongeistbeam: ["9R", "8R", "7R"], + sunsteelstrike: ["9R", "8R", "7R"], }, }, magearna: { @@ -77395,7 +80804,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { echoedvoice: ["7M"], eerieimpulse: ["9M", "8M"], electroball: ["9M", "8M"], - electroweb: ["8M"], + electroweb: ["9M", "8M"], embargo: ["7M"], encore: ["9M", "8M"], endure: ["9M", "8M"], @@ -77410,8 +80819,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gearup: ["8L24", "7L1"], gigaimpact: ["9M", "8M", "7M"], grassknot: ["9M", "8M", "7M"], + gravity: ["9M"], guardswap: ["8M"], - gyroball: ["9L1", "8M", "8L1", "7M"], + gyroball: ["9M", "9L1", "8M", "8L1", "7M"], healbell: ["7T"], heartswap: ["7L89"], heavyslam: ["9M"], @@ -77429,11 +80839,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { luckychant: ["7L9", "7S0"], magneticflux: ["9L24"], magnetrise: ["7T"], + metalsound: ["9M"], mindreader: ["8L42", "7L33"], mirrorshot: ["7L25"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M"], - painsplit: ["9L78", "8L78", "7T", "7L65"], + painsplit: ["9M", "9L78", "8L78", "7T", "7L65"], playrough: ["9M"], powerswap: ["8M"], protect: ["9M", "8M", "7M"], @@ -77501,7 +80912,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { drainingkiss: ["9M", "8M"], eerieimpulse: ["9M", "8M"], electroball: ["9M", "8M"], - electroweb: ["8M"], + electroweb: ["9M", "8M"], encore: ["9M", "8M"], endure: ["9M", "8M"], energyball: ["9M", "8M"], @@ -77513,8 +80924,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gearup: ["8L24"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "8M"], + gravity: ["9M"], guardswap: ["8M"], - gyroball: ["9L1", "8M", "8L1"], + gyroball: ["9M", "9L1", "8M", "8L1"], heavyslam: ["9M"], helpinghand: ["9M", "9L1", "8M", "8L1"], hyperbeam: ["9M", "8M"], @@ -77526,10 +80938,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["9M", "8M"], lockon: ["9L42"], magneticflux: ["9L24"], + metalsound: ["9M"], mindreader: ["8L42"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M"], - painsplit: ["9L78", "8L78"], + painsplit: ["9M", "9L78", "8L78"], playrough: ["9M"], powerswap: ["8M"], protect: ["9M", "8M"], @@ -78122,7 +81535,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { branchpoke: ["9L6", "8L6"], bulletseed: ["9M"], drainpunch: ["9M", "8M"], - endeavor: ["9L36", "8L36"], + endeavor: ["9M", "9L36", "8L36"], endure: ["9M", "8M"], energyball: ["9M", "8M"], facade: ["9M", "8M"], @@ -78133,12 +81546,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M"], grassknot: ["9M", "8M"], grasspledge: ["9M", "8T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], growl: ["9L1", "8L1"], growth: ["9E", "8E"], hammerarm: ["9E", "8E"], - knockoff: ["9L20", "8L20"], + knockoff: ["9M", "9L20", "8L20"], leafstorm: ["9M"], leechseed: ["9E", "8E"], lowkick: ["9M", "8M"], @@ -78157,7 +81570,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M"], snore: ["8M"], solarbeam: ["9M", "8M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], strength: ["9E", "8E"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], @@ -78168,7 +81581,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], trailblaze: ["9M"], - uproar: ["9L28", "8M", "8L28"], + uproar: ["9M", "9L28", "8M", "8L28"], uturn: ["9M", "8M"], woodhammer: ["9L32", "8L32"], workup: ["8M"], @@ -78183,9 +81596,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], branchpoke: ["9L1", "8L1"], bulletseed: ["9M"], + doubleedge: ["9M"], doublehit: ["9L0", "8L0"], drainpunch: ["9M", "8M"], - endeavor: ["9L48", "8L48"], + endeavor: ["9M", "9L48", "8L48"], endure: ["9M", "8M"], energyball: ["9M", "8M"], facade: ["9M", "8M"], @@ -78195,10 +81609,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M"], grassknot: ["9M", "8M"], grasspledge: ["9M", "8T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], growl: ["9L1", "8L1"], - knockoff: ["9L24", "8L24"], + knockoff: ["9M", "9L24", "8L24"], leafstorm: ["9M"], lowkick: ["9M", "8M"], magicalleaf: ["9M", "8M"], @@ -78216,7 +81630,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M"], snore: ["8M"], solarbeam: ["9M", "8M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], swift: ["9M", "8M"], @@ -78226,7 +81640,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], trailblaze: ["9M"], - uproar: ["9L36", "8M", "8L36"], + uproar: ["9M", "9L36", "8M", "8L36"], uturn: ["9M", "8M"], woodhammer: ["9L42", "8L42"], workup: ["8M"], @@ -78247,12 +81661,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "8M"], bulletseed: ["9M", "8M"], darkestlariat: ["8M"], + doubleedge: ["9M"], doublehit: ["9L1", "8L1"], drainpunch: ["9M", "8M"], drumbeating: ["9L0", "8L0"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M"], - endeavor: ["9L54", "8L54"], + endeavor: ["9M", "9L54", "8L54"], endure: ["9M", "8M"], energyball: ["9M", "8M"], facade: ["9M", "8M"], @@ -78260,18 +81675,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M"], focusblast: ["9M", "8M"], focusenergy: ["8M"], + focuspunch: ["9M"], frenzyplant: ["9M", "8T"], gigadrain: ["9M", "8M"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "8M"], grasspledge: ["9M", "8T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "9L1", "8M", "8L1"], growl: ["9L1", "8L1"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M"], hypervoice: ["9M", "8M"], - knockoff: ["9L24", "8L24"], + knockoff: ["9M", "9L24", "8L24"], leafstorm: ["9M", "8M"], lowkick: ["9M", "8M"], lowsweep: ["9M"], @@ -78293,7 +81709,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M"], snore: ["8M"], solarbeam: ["9M", "8M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], stompingtantrum: ["9M", "8M"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], @@ -78305,7 +81721,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], trailblaze: ["9M"], - uproar: ["9L38", "8M", "8L38"], + uproar: ["9M", "9L38", "8M", "8L38"], uturn: ["9M", "8M"], woodhammer: ["9L46", "8L46"], workup: ["8M"], @@ -78321,8 +81737,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M", "8M"], blazekick: ["8M"], bounce: ["9L32", "8M", "8L32"], + burningjealousy: ["9M"], counter: ["9L28", "8L28"], - doubleedge: ["9L36", "8L36"], + doubleedge: ["9M", "9L36", "8L36"], doublekick: ["9L12", "8L12"], electroball: ["9M", "8M"], ember: ["9L6", "8L6"], @@ -78358,11 +81775,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "8M"], suckerpunch: ["9E", "8E"], sunnyday: ["9M", "8M"], - superfang: ["9E", "8E"], + superfang: ["9M", "9E", "8E"], swift: ["9M", "8M"], tackle: ["9L1", "8L1"], takedown: ["9M"], taunt: ["9M", "8M"], + temperflare: ["9M"], terablast: ["9M"], trailblaze: ["9M"], uturn: ["9M", "8M"], @@ -78380,8 +81798,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blazekick: ["8M"], bounce: ["9L42", "8M", "8L42"], bulkup: ["9M", "8M"], + burningjealousy: ["9M"], counter: ["9L36", "8L36"], - doubleedge: ["9L48", "8L48"], + doubleedge: ["9M", "9L48", "8L48"], doublekick: ["9L12", "8L12"], electroball: ["9M", "8M"], ember: ["9L1", "8L1"], @@ -78414,14 +81833,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], + superfang: ["9M"], swift: ["9M", "8M"], swordsdance: ["9M"], tackle: ["9L1", "8L1"], takedown: ["9M"], taunt: ["9M", "8M"], + temperflare: ["9M"], terablast: ["9M"], trailblaze: ["9M"], uturn: ["9M", "8M"], + weatherball: ["9M"], workup: ["8M"], }, }, @@ -78437,10 +81859,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blazekick: ["8M"], bounce: ["9L46", "8M", "8L46"], bulkup: ["9M", "8M"], - coaching: ["8T"], + burningjealousy: ["9M"], + coaching: ["9M", "8T"], counter: ["9L38", "8L38"], courtchange: ["9L62", "8L62"], - doubleedge: ["9L54", "8L54"], + doubleedge: ["9M", "9L54", "8L54"], doublekick: ["9L12", "8L12"], electroball: ["9M", "8M"], ember: ["9L1", "8L1"], @@ -78479,21 +81902,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { revenge: ["8M"], reversal: ["9M", "8M"], round: ["8M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], shadowball: ["9M", "8M"], sleeptalk: ["9M", "8M"], + smackdown: ["9M"], snarl: ["9M", "8M"], snore: ["8M"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], + superfang: ["9M"], swift: ["9M", "8M"], swordsdance: ["9M"], tackle: ["9L1", "8L1"], takedown: ["9M"], taunt: ["9M", "8M"], + temperflare: ["9M"], terablast: ["9M"], trailblaze: ["9M"], uturn: ["9M", "8M"], + weatherball: ["9M"], willowisp: ["9M"], workup: ["8M"], zenheadbutt: ["9M", "8M"], @@ -78514,13 +81941,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M"], fellstinger: ["9E", "8E"], growl: ["9L1", "8L1"], - haze: ["9E", "8E"], + haze: ["9M", "9E", "8E"], hydropump: ["9M"], iceshard: ["9E", "8E"], lightscreen: ["9M", "8M"], liquidation: ["9M", "9L28", "8M", "8L28"], mist: ["9E", "8E"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], pound: ["9L1", "8L1"], protect: ["9M", "8M"], @@ -78544,8 +81971,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L6", "8L6"], waterpledge: ["9M", "8T"], waterpulse: ["9M", "9L12", "8L12"], - weatherball: ["8M"], - whirlpool: ["8M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], workup: ["8M"], }, }, @@ -78561,10 +81988,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M"], fling: ["9M", "8M"], growl: ["9L1", "8L1"], + haze: ["9M"], hydropump: ["9M"], lightscreen: ["9M", "8M"], liquidation: ["9M", "9L36", "8M", "8L36"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], pound: ["9L1", "8L1"], protect: ["9M", "8M"], @@ -78588,8 +82016,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { watergun: ["9L1", "8L1"], waterpledge: ["9M", "8T"], waterpulse: ["9M", "9L12", "8L12"], - weatherball: ["8M"], - whirlpool: ["8M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], workup: ["8M"], }, }, @@ -78604,38 +82032,43 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bind: ["9L1", "8L1"], blizzard: ["9M", "8M"], bounce: ["8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], chillingwater: ["9M"], darkpulse: ["9M", "8M"], dive: ["8M"], endure: ["9M", "8M"], facade: ["9M", "8M"], fling: ["9M", "8M"], + flipturn: ["9M"], focusenergy: ["8M"], gigaimpact: ["9M", "8M"], growl: ["9L1", "8L1"], + haze: ["9M"], hydrocannon: ["9M", "8T"], hydropump: ["9M", "9L62", "8M", "8L62"], hyperbeam: ["9M", "8M"], icebeam: ["9M", "8M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "8M"], lightscreen: ["9M", "8M"], liquidation: ["9M", "9L38", "8M", "8L38"], metronome: ["9M", "8M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], pound: ["9L1", "8L1"], protect: ["9M", "8M"], + psychup: ["9M"], raindance: ["9M", "9L54", "8M", "8L54"], reflect: ["9M", "8M"], rest: ["9M", "8M"], round: ["8M"], safeguard: ["8M"], - scald: ["8M"], + scald: ["9M", "8M"], scaleshot: ["8T"], shadowball: ["9M", "8M"], + skittersmack: ["9M"], sleeptalk: ["9M", "8M"], + smackdown: ["9M"], snipeshot: ["9L0", "8L0"], snore: ["8M"], snowscape: ["9M"], @@ -78650,12 +82083,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tearfullook: ["9L19", "8L19"], terablast: ["9M"], uturn: ["9M", "9L30", "8M", "8L30"], + vacuumwave: ["9M"], waterfall: ["9M", "8M"], watergun: ["9L1", "8L1"], waterpledge: ["9M", "8T"], waterpulse: ["9M", "9L12", "8L12"], - weatherball: ["8M"], - whirlpool: ["8M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], workup: ["8M"], }, }, @@ -78672,12 +82106,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["9M", "9L35", "8M", "8L35"], counter: ["9L30", "8L30"], crunch: ["9M", "8M"], + curse: ["9M"], defensecurl: ["9E", "8E"], dig: ["9M", "8M"], + doubleedge: ["9M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], fling: ["9M", "8M"], - gyroball: ["8M"], + gyroball: ["9M", "8M"], hypervoice: ["9M", "8M"], irontail: ["8M"], lastresort: ["9E", "8E"], @@ -78695,7 +82132,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stockpile: ["9L15", "8L15"], stuffcheeks: ["9L10", "8L10"], substitute: ["9M", "8M"], - superfang: ["9L40", "8L40"], + superfang: ["9M", "9L40", "8L40"], swallow: ["9L15", "8L15"], tackle: ["9L1", "8L1"], tailslap: ["8M"], @@ -78722,18 +82159,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { counter: ["9L34", "8L34"], covet: ["9L0", "8L0"], crunch: ["9M", "8M"], + curse: ["9M"], dig: ["9M", "8M"], + doubleedge: ["9M"], earthquake: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], firefang: ["9M", "8M"], fling: ["9M", "8M"], gigaimpact: ["9M", "8M"], - gyroball: ["8M"], + gyroball: ["9M", "8M"], + highhorsepower: ["9M"], hyperbeam: ["9M", "8M"], hypervoice: ["9M", "8M"], icefang: ["9M", "8M"], irontail: ["8M"], + knockoff: ["9M"], mudshot: ["9M", "8M"], mudslap: ["9M"], payback: ["8M"], @@ -78751,7 +82193,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stuffcheeks: ["9L1", "8L1"], substitute: ["9M", "8M"], sunnyday: ["9M"], - superfang: ["9L48", "8L48"], + superfang: ["9M", "9L48", "8L48"], superpower: ["8M"], swallow: ["9L15", "8L15"], swordsdance: ["9M", "8M"], @@ -78762,6 +82204,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M"], thunderfang: ["9M", "8M"], + trailblaze: ["9M"], uproar: ["8M"], wildcharge: ["9M", "8M"], }, @@ -78777,7 +82220,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bravebird: ["9M", "9L36", "8M", "8L36"], defog: ["9E", "8E"], drillpeck: ["9L28", "8L28"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M"], facade: ["9M", "8M"], faketears: ["9M", "8M"], @@ -78804,7 +82247,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skyattack: ["9E", "8E"], sleeptalk: ["9M", "8M"], snore: ["8M"], - spite: ["9E", "8E"], + spite: ["9M", "9E", "8E"], substitute: ["9M", "8M"], swagger: ["9L32", "8L32"], swift: ["9M", "8M"], @@ -78827,7 +82270,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M"], bravebird: ["9M", "9L46", "8M", "8L46"], drillpeck: ["9L34", "8L34"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M"], facade: ["9M", "8M"], faketears: ["9M", "8M"], @@ -78851,6 +82294,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M", "9L28", "8M", "8L28"], sleeptalk: ["9M", "8M"], snore: ["8M"], + spite: ["9M"], substitute: ["9M", "8M"], sunnyday: ["9M"], swagger: ["9L40", "8L40"], @@ -78876,8 +82320,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "8M"], bravebird: ["9M", "9L50", "8M", "8L50"], bulkup: ["9M", "8M"], + curse: ["9M"], + doubleedge: ["9M"], drillpeck: ["9L34", "8L34"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M"], facade: ["9M", "8M"], faketears: ["9M", "8M"], @@ -78895,7 +82341,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leer: ["9L1", "8L1"], lightscreen: ["9M", "8M"], metalclaw: ["9M"], - metalsound: ["9L1", "8L1"], + metalsound: ["9M", "9L1", "8L1"], nastyplot: ["9M", "8M"], payback: ["8M"], peck: ["9L1", "8L1"], @@ -78913,6 +82359,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { screech: ["9L1", "8M"], sleeptalk: ["9M", "8M"], snore: ["8M"], + spite: ["9M"], steelbeam: ["9M", "8T"], steelwing: ["9L0", "8M", "8L0"], substitute: ["9M", "8M"], @@ -79318,7 +82765,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaleshot: ["8T"], scaryface: ["9M"], shellsmash: ["9E"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], skullbash: ["8E"], sleeptalk: ["9M", "8M"], snore: ["8M"], @@ -79331,7 +82778,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M"], watergun: ["9L1", "8L1"], waterpulse: ["9M"], - whirlpool: ["8M"], + whirlpool: ["9M", "8M"], }, }, drednaw: { @@ -79348,6 +82795,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L1", "8M", "8L1"], dig: ["9M", "8M"], dive: ["8M"], + doubleedge: ["9M"], + dragontail: ["9M"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M"], endure: ["9M", "8M"], @@ -79356,7 +82805,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M"], headbutt: ["9L21", "8L21"], headsmash: ["9L66", "8L66"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hydropump: ["9M", "8M"], hyperbeam: ["9M", "8M"], icebeam: ["9M", "8M"], @@ -79367,8 +82816,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { jawlock: ["9L39", "8L39"], liquidation: ["9M", "9L48", "8M", "8L48"], megahorn: ["8M"], - meteorbeam: ["8T"], - muddywater: ["8M"], + meteorbeam: ["9M", "8T"], + muddywater: ["9M", "8M"], mudshot: ["9M", "8M"], payback: ["8M"], poisonjab: ["9M", "8M"], @@ -79383,11 +82832,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "9L0", "8M", "8L0"], round: ["8M"], sandstorm: ["9M", "8M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], scald: ["8M"], scaleshot: ["8T"], scaryface: ["9M", "8M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M"], smartstrike: ["9M", "8M"], snore: ["8M"], @@ -79395,17 +82844,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M", "8M"], stoneedge: ["9M", "8M"], substitute: ["9M", "8M"], + superfang: ["9M"], superpower: ["8M"], surf: ["9M", "8M"], swordsdance: ["9M", "8M"], tackle: ["9L1", "8L1"], takedown: ["9M"], terablast: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], waterfall: ["9M", "8M"], watergun: ["9L1", "8L1"], waterpulse: ["9M"], - whirlpool: ["8M"], + whirlpool: ["9M", "8M"], }, }, yamper: { @@ -79504,16 +82954,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["9E", "8E"], bodyslam: ["9M"], bulldoze: ["9M"], + curse: ["9M"], dig: ["9M", "8M"], endure: ["9M", "8M"], explosion: ["9E", "8E"], facade: ["9M", "8M"], - gyroball: ["8M"], - heatcrash: ["9L35", "8M", "8L35"], + gyroball: ["9M", "8M"], + heatcrash: ["9M", "9L35", "8M", "8L35"], incinerate: ["9L25", "8L25"], irondefense: ["9M", "8M"], ironhead: ["9M", "8M"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], mudslap: ["9M", "9E", "8E"], powergem: ["9M"], protect: ["9M", "8M"], @@ -79526,10 +82977,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M"], round: ["8M"], sandstorm: ["9M", "8M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M"], - smackdown: ["9L10", "8L10"], + smackdown: ["9M", "9L10", "8L10"], smokescreen: ["9L1", "8L1"], snore: ["8M"], spikes: ["9M", "8M"], @@ -79538,6 +82989,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "8M"], tackle: ["9L1", "8L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], willowisp: ["9M", "8M"], }, @@ -79550,6 +83002,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], bulldoze: ["9M"], burnup: ["8L55"], + curse: ["9M"], dig: ["9M", "8M"], endure: ["9M", "8M"], facade: ["9M", "8M"], @@ -79558,15 +83011,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamecharge: ["9M", "9L0", "8L0"], flamethrower: ["9M", "8M"], flareblitz: ["9M", "8M"], - gyroball: ["8M"], - heatcrash: ["9L41", "8M", "8L41"], + gyroball: ["9M", "8M"], + heatcrash: ["9M", "9L41", "8M", "8L41"], heatwave: ["9M", "8M"], heavyslam: ["9M", "8M"], highhorsepower: ["8M"], incinerate: ["9L27", "8L27"], irondefense: ["9M", "8M"], ironhead: ["9M", "8M"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], mudslap: ["9M"], overheat: ["9M", "8M"], powergem: ["9M"], @@ -79580,12 +83033,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M"], round: ["8M"], sandstorm: ["9M", "8M"], - sandtomb: ["8M"], - scald: ["8M"], - scorchingsands: ["8T"], + sandtomb: ["9M", "8M"], + scald: ["9M", "8M"], + scorchingsands: ["9M", "8T"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M"], - smackdown: ["9L1", "8L1"], + smackdown: ["9M", "9L1", "8L1"], smokescreen: ["9L1", "8L1"], snore: ["8M"], spikes: ["9M", "8M"], @@ -79595,6 +83048,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M"], tackle: ["9L1", "8L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], willowisp: ["9M", "8M"], }, @@ -79607,6 +83061,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "8M"], bulldoze: ["9M", "8M"], burnup: ["8L63"], + curse: ["9M"], dig: ["9M", "8M"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M"], @@ -79619,18 +83074,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "8M"], flareblitz: ["9M", "8M"], gigaimpact: ["9M", "8M"], - gyroball: ["8M"], - heatcrash: ["9L45", "8M", "8L45"], + gyroball: ["9M", "8M"], + heatcrash: ["9M", "9L45", "8M", "8L45"], heatwave: ["9M", "8M"], heavyslam: ["9M", "8M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M"], incinerate: ["9L27", "8L27"], irondefense: ["9M", "8M"], ironhead: ["9M", "8M"], megakick: ["8M"], megapunch: ["8M"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], + mudslap: ["9M"], overheat: ["9M", "8M"], powergem: ["9M"], protect: ["9M", "8M"], @@ -79643,12 +83099,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M"], round: ["8M"], sandstorm: ["9M", "8M"], - sandtomb: ["8M"], - scald: ["8M"], - scorchingsands: ["8T"], + sandtomb: ["9M", "8M"], + scald: ["9M", "8M"], + scorchingsands: ["9M", "8T"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M"], - smackdown: ["9L1", "8L1"], + smackdown: ["9M", "9L1", "8L1"], smokescreen: ["9L1", "8L1"], snore: ["8M"], solarbeam: ["9M", "8M"], @@ -79660,6 +83116,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "8L1"], takedown: ["9M"], tarshot: ["9L0", "8L0"], + temperflare: ["9M"], terablast: ["9M"], willowisp: ["9M", "8M"], }, @@ -79693,7 +83150,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dragondance: ["9M", "9L24", "8M", "8L24"], dragonpulse: ["9M", "9L28", "8M", "8L28"], dragonrush: ["9L44", "8L44"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], + endeavor: ["9M"], endure: ["9M", "8M"], energyball: ["9M", "8M"], facade: ["9M", "8M"], @@ -79702,7 +83160,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "8M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], gravapple: ["9L32", "8L32"], growth: ["9L1", "8L1"], @@ -79744,7 +83202,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "9L32", "8M", "8L32"], bulldoze: ["9M", "8M"], bulletseed: ["9M", "9L20", "8M", "8L20"], - curse: ["9L4", "8L4"], + curse: ["9M", "9L4", "8L4"], dracometeor: ["9M", "8T"], dragonpulse: ["9M", "9L40", "8M", "8L40"], dragontail: ["9M"], @@ -79755,14 +83213,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "8M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M"], growth: ["9L1", "8L1"], - gyroball: ["8M"], + gyroball: ["9M", "8M"], headbutt: ["9L0", "8L0"], heavyslam: ["9M", "8M"], helpinghand: ["9M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M"], irondefense: ["9M", "9L36", "8M", "8L36"], ironhead: ["9M"], @@ -79828,12 +83286,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M"], sandattack: ["9L1", "8L1"], sandstorm: ["9M", "9L35", "8M", "8L35"], - sandtomb: ["9L50", "8M", "8L50"], - scaleshot: ["8T"], + sandtomb: ["9M", "9L50", "8M", "8L50"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], screech: ["8M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], slam: ["9L40", "8L40"], sleeptalk: ["9M", "8M"], snore: ["8M"], @@ -79857,13 +83315,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { drillrun: ["9M", "8M"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], firefang: ["9M", "8M"], gigaimpact: ["9M", "8M"], glare: ["9L25", "8L25"], headbutt: ["9L20", "8L20"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hurricane: ["9M", "8M"], hyperbeam: ["9M", "8M"], irondefense: ["9M", "8M"], @@ -79881,12 +83340,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M"], sandattack: ["9L1", "8L1"], sandstorm: ["9M", "9L35", "8M", "8L35"], - sandtomb: ["9L51", "8M", "8L51"], - scaleshot: ["8T"], + sandtomb: ["9M", "9L51", "8M", "8L51"], + scaleshot: ["9M", "8T"], scaryface: ["9M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], screech: ["8M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], skullbash: ["8L1"], slam: ["9L42", "8L42"], sleeptalk: ["9M", "8M"], @@ -79903,57 +83362,67 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cramorant: { learnset: { - aerialace: ["8E"], - agility: ["8M"], - airslash: ["8M"], - amnesia: ["8M", "8L42"], - aquaring: ["8E"], + acrobatics: ["9M"], + aerialace: ["9M", "9E", "8E"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + amnesia: ["9M", "9L42", "8M", "8L42"], + aquacutter: ["9E"], + aquaring: ["9E", "8E"], assurance: ["8M"], attract: ["8M"], - belch: ["8L1"], - blizzard: ["8M"], - bravebird: ["8M"], - defog: ["8E"], - dive: ["8M", "8L28"], - drillpeck: ["8L35"], - dualwingbeat: ["8T"], - endure: ["8M"], - facade: ["8M"], - featherdance: ["8E"], - fly: ["8M"], - furyattack: ["8L14"], - gigaimpact: ["8M"], - hurricane: ["8M"], - hydropump: ["8M", "8L56"], - hyperbeam: ["8M"], - icebeam: ["8M"], - icywind: ["8M"], - liquidation: ["8M"], - peck: ["8L1"], - pluck: ["8L21"], - protect: ["8M"], - raindance: ["8M"], - rest: ["8M"], - reversal: ["8M"], - roost: ["8E"], + belch: ["9L1", "8L1"], + blizzard: ["9M", "8M"], + bravebird: ["9M", "8M"], + chillingwater: ["9M"], + defog: ["9E", "8E"], + dive: ["9L28", "8M", "8L28"], + drillpeck: ["9L35", "8L35"], + dualwingbeat: ["9M", "8T"], + endeavor: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + featherdance: ["9M", "9E", "8E"], + fly: ["9M", "8M"], + furyattack: ["9L14", "8L14"], + gigaimpact: ["9M", "8M"], + hurricane: ["9M", "8M"], + hydropump: ["9M", "9L56", "8M", "8L56"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icywind: ["9M", "8M"], + liquidation: ["9M", "8M"], + peck: ["9L1", "8L1"], + pluck: ["9L21", "8L21"], + pounce: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + roost: ["9E", "8E"], round: ["8M"], scald: ["8M"], - sleeptalk: ["8M"], + sleeptalk: ["9M", "8M"], snore: ["8M"], - spitup: ["8L1"], + spitup: ["9L1", "8L1"], steelwing: ["8M"], - stockpile: ["8L1"], - substitute: ["8M"], + stockpile: ["9L1", "8L1"], + substitute: ["9M", "8M"], superpower: ["8M"], - surf: ["8M"], - swallow: ["8L1"], - thief: ["8M"], - thrash: ["8L49"], - throatchop: ["8M"], - uproar: ["8M"], - watergun: ["8L7"], - weatherball: ["8M"], - whirlpool: ["8M"], + surf: ["9M", "8M"], + swallow: ["9L1", "8L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L49", "8L49"], + throatchop: ["9M", "8M"], + uproar: ["9M", "8M"], + watergun: ["9L7", "8L7"], + waterpulse: ["9M"], + weatherball: ["9M", "8M"], + whirlpool: ["9M", "8M"], }, }, arrokuda: { @@ -79970,10 +83439,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "8M"], crunch: ["9M", "9L36", "8M", "8L36"], dive: ["9L24", "8M", "8L24"], - doubleedge: ["9L48", "8L48"], + doubleedge: ["9M", "9L48", "8L48"], drillrun: ["9M", "8M"], endure: ["9M", "8M"], facade: ["9M", "8M"], + flipturn: ["9M"], focusenergy: ["9L30", "8M"], furyattack: ["9L6", "8L6"], hydropump: ["9M"], @@ -79989,7 +83459,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M"], round: ["8M"], scald: ["8M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], slash: ["9E", "8E"], sleeptalk: ["9M", "8M"], snore: ["8M"], @@ -79999,10 +83469,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thrash: ["9E", "8E"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], waterfall: ["9M", "8M"], waterpulse: ["9M"], - whirlpool: ["8M"], + whirlpool: ["9M", "8M"], }, }, barraskewda: { @@ -80019,11 +83489,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "8M"], crunch: ["9M", "9L40", "8M", "8L40"], dive: ["9L24", "8M", "8L24"], - doubleedge: ["9L56", "8L56"], + doubleedge: ["9M", "9L56", "8L56"], drillrun: ["9M", "8M"], endure: ["9M", "8M"], facade: ["9M", "8M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], focusenergy: ["9L32", "8M"], furyattack: ["9L1", "8L1"], gigaimpact: ["9M", "8M"], @@ -80041,7 +83511,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M"], round: ["8M"], scald: ["8M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "8M"], sleeptalk: ["9M", "8M"], snore: ["8M"], @@ -80050,10 +83520,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M"], takedown: ["9M"], terablast: ["9M"], - throatchop: ["9L1", "8M", "8L1"], + throatchop: ["9M", "9L1", "8M", "8L1"], waterfall: ["9M", "8M"], waterpulse: ["9M"], - whirlpool: ["8M"], + whirlpool: ["9M", "8M"], }, }, toxel: { @@ -80063,12 +83533,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { belch: ["9L1", "8L1"], charm: ["9M"], encore: ["9M", "8M"], - endeavor: ["9E", "8E"], + endeavor: ["9M", "9E", "8E"], endure: ["9M", "8M"], facade: ["9M", "8M"], flail: ["9L1", "8L1", "8S0"], growl: ["9L1", "8L1", "8S0"], - metalsound: ["9E", "8E"], + metalsound: ["9M", "9E", "8E"], nuzzle: ["9L1", "8L1", "8S0"], poweruppunch: ["8E"], protect: ["9M", "8M"], @@ -80081,7 +83551,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], }, eventData: [ - {generation: 8, level: 1, isHidden: false, moves: ["nuzzle", "growl", "flail", "acid"], pokeball: "luxuryball"}, + {generation: 8, level: 1, isHidden: true, moves: ["nuzzle", "growl", "flail", "acid"], pokeball: "luxuryball"}, ], }, toxtricity: { @@ -80092,7 +83562,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { belch: ["9L1", "8L1"], boomburst: ["9L48", "8L48", "8S0"], brickbreak: ["9M"], - charge: ["9L4", "8L4"], + charge: ["9M", "9L4", "8L4"], chargebeam: ["9M"], charm: ["9M"], discharge: ["9L36", "8L36"], @@ -80100,7 +83570,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M", "8L1"], electricterrain: ["9M"], electroball: ["9M", "8M"], + electroweb: ["9M"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], firepunch: ["9M", "8M"], @@ -80116,6 +83588,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leer: ["9L1", "8L1"], megakick: ["8M"], megapunch: ["8M"], + metalsound: ["9M"], metronome: ["9M"], nobleroar: ["9L1", "8L1"], nuzzle: ["9L1", "8L1"], @@ -80124,6 +83597,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poisonjab: ["9M", "9L40", "8M", "8L40"], poisontail: ["9M"], protect: ["9M", "8M"], + psychicnoise: ["9M"], raindance: ["9M"], rest: ["9M", "8M"], risingvoltage: ["8T", "8S0"], @@ -80134,7 +83608,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shockwave: ["9L8", "8L8"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M"], - sludgewave: ["8M", "8S0"], + sludgewave: ["9M", "8M", "8S0"], snarl: ["9M", "8M"], snore: ["8M"], spark: ["9L0", "8L0"], @@ -80148,17 +83622,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tearfullook: ["9L1", "8L1"], terablast: ["9M"], thief: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunder: ["9M", "8M"], thunderbolt: ["9M", "8M"], thunderfang: ["9M"], thunderpunch: ["9M", "8M"], thundershock: ["9L1", "8L1"], thunderwave: ["9M", "8M"], - toxic: ["9L32", "8L32"], + toxic: ["9M", "9L32", "8L32"], toxicspikes: ["9M"], trailblaze: ["9M"], - uproar: ["8M"], + uproar: ["9M", "8M"], venoshock: ["9M", "8M", "8L20"], voltswitch: ["9M", "8M"], wildcharge: ["9M", "8M"], @@ -80175,7 +83649,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { belch: ["9L1", "8L1"], boomburst: ["9L48", "8L48"], brickbreak: ["9M"], - charge: ["9L4", "8L4"], + charge: ["9M", "9L4", "8L4"], chargebeam: ["9M"], charm: ["9M"], discharge: ["9L36", "8L36"], @@ -80183,7 +83657,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M", "8L1"], electricterrain: ["9M"], electroball: ["9M", "8M"], + electroweb: ["9M"], encore: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], firepunch: ["9M", "8M"], @@ -80200,6 +83676,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magneticflux: ["9L52", "8L52"], megakick: ["8M"], megapunch: ["8M"], + metalsound: ["9M"], metronome: ["9M"], nobleroar: ["9L1", "8L1"], nuzzle: ["9L1", "8L1"], @@ -80208,6 +83685,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poisonjab: ["9M", "9L40", "8M", "8L40"], poisontail: ["9M"], protect: ["9M", "8M"], + psychicnoise: ["9M"], raindance: ["9M"], rest: ["9M", "8M"], risingvoltage: ["8T"], @@ -80217,7 +83695,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shockwave: ["9L8", "8L8"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M"], - sludgewave: ["8M"], + sludgewave: ["9M", "8M"], snarl: ["9M", "8M"], snore: ["8M"], spark: ["9L0", "8L0"], @@ -80231,17 +83709,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tearfullook: ["9L1", "8L1"], terablast: ["9M"], thief: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunder: ["9M", "8M"], thunderbolt: ["9M", "8M"], thunderfang: ["9M"], thunderpunch: ["9M", "8M"], thundershock: ["9L1", "8L1"], thunderwave: ["9M", "8M"], - toxic: ["9L32", "8L32"], + toxic: ["9M", "9L32", "8L32"], toxicspikes: ["9M"], trailblaze: ["9M"], - uproar: ["8M"], + uproar: ["9M", "8M"], venomdrench: ["8M", "8L20"], venoshock: ["9M"], voltswitch: ["9M", "8M"], @@ -80448,6 +83926,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M", "8M"], calmmind: ["9M"], confuseray: ["9M"], + curse: ["9M"], darkpulse: ["9M", "8M"], endure: ["9M", "8M"], facade: ["9M", "8M"], @@ -80463,7 +83942,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightshade: ["9M"], payback: ["8M"], phantomforce: ["9M", "8M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "8L18"], psybeam: ["9M"], psychic: ["9M", "8M"], @@ -80475,6 +83954,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skillswap: ["9M"], sleeptalk: ["9M", "8M"], snore: ["8M"], + spite: ["9M"], storedpower: ["9M", "8M"], substitute: ["9M", "8M"], suckerpunch: ["9L24", "8L24"], @@ -80497,6 +83977,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { calmmind: ["9M"], celebrate: ["8S0"], confuseray: ["9M"], + curse: ["9M"], darkpulse: ["9M"], endure: ["9M"], facade: ["9M"], @@ -80511,6 +83992,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nastyplot: ["9M", "9L42"], nightshade: ["9M"], phantomforce: ["9M"], + poltergeist: ["9M"], protect: ["9M"], psybeam: ["9M"], psychic: ["9M"], @@ -80520,6 +84002,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shellsmash: ["9L60"], skillswap: ["9M"], sleeptalk: ["9M"], + spite: ["9M"], storedpower: ["9M"], substitute: ["9M"], suckerpunch: ["9L24"], @@ -80543,7 +84026,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M", "8M"], calmmind: ["9M"], confuseray: ["9M"], - curse: ["9L66", "8L66"], + curse: ["9M", "9L66", "8L66"], darkpulse: ["9M", "8M"], endure: ["9M", "8M"], facade: ["9M", "8M"], @@ -80560,9 +84043,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { metronome: ["9M", "8M"], nastyplot: ["9M", "9L42", "8M", "8L42"], nightshade: ["9M"], + painsplit: ["9M"], payback: ["8M"], phantomforce: ["9M", "8M"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "9L18", "8M", "8L18"], psybeam: ["9M"], psychic: ["9M", "8M"], @@ -80576,6 +84060,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skillswap: ["9M"], sleeptalk: ["9M", "8M"], snore: ["8M"], + spite: ["9M"], storedpower: ["9M", "8M"], strengthsap: ["9L1", "8L1"], substitute: ["9M", "8M"], @@ -80605,8 +84090,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { disarmingvoice: ["9M", "9L10", "8L10"], drainingkiss: ["9M", "8M"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], + futuresight: ["9M"], gigadrain: ["9M", "8M"], healingwish: ["9L45", "8L45"], healpulse: ["9L25", "8L25"], @@ -80625,6 +84111,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M", "9L20", "8L20"], psychic: ["9M", "9L40", "8M", "8L40"], psychicterrain: ["9M"], + psychup: ["9M"], psyshock: ["9M", "8M"], quash: ["9E", "8E"], reflect: ["9M"], @@ -80658,8 +84145,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { disarmingvoice: ["9M", "9L1", "8L1"], drainingkiss: ["9M", "8M"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], + futuresight: ["9M"], gigadrain: ["9M", "8M"], healingwish: ["9L51", "8L51"], healpulse: ["9L25", "8L25"], @@ -80677,6 +84165,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M", "9L20", "8L20"], psychic: ["9M", "9L44", "8M", "8L44"], psychicterrain: ["9M"], + psychup: ["9M"], psyshock: ["9M", "8M"], reflect: ["9M"], rest: ["9M", "8M"], @@ -80710,11 +84199,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { disarmingvoice: ["9M", "9L1", "8L1"], drainingkiss: ["9M", "8M"], endure: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], - futuresight: ["8M"], + futuresight: ["9M", "8M"], gigadrain: ["9M", "8M"], gigaimpact: ["9M", "8M"], + gravity: ["9M"], guardswap: ["8M"], healingwish: ["9L55", "8L55"], healpulse: ["9L25", "8L25"], @@ -80727,9 +84217,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicpowder: ["9L64", "8L64"], magicroom: ["8M"], metronome: ["9M"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M"], mysticalfire: ["8M"], + painsplit: ["9M"], playnice: ["9L1", "8L1"], playrough: ["9M", "8M"], powerswap: ["8M"], @@ -80737,8 +84228,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M"], psybeam: ["9M", "9L20", "8L20"], psychic: ["9M", "9L46", "8M", "8L46"], + psychicnoise: ["9M"], psychicterrain: ["9M"], psychocut: ["9L0", "8M", "8L0"], + psychup: ["9M"], psyshock: ["9M", "8M"], reflect: ["9M"], rest: ["9M", "8M"], @@ -80765,7 +84258,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["9L16", "8M", "8L16"], attract: ["8M"], bite: ["9L4", "8L4"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], chillingwater: ["9M"], confide: ["9L1", "8L1"], darkpulse: ["9M", "9L33", "8M", "8L33"], @@ -80779,7 +84272,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flatter: ["9L8", "8L8"], fling: ["9M"], foulplay: ["9M", "9L44", "8M", "8L44"], - lashout: ["8T"], + lashout: ["9M", "8T"], leechlife: ["9M", "8M"], lightscreen: ["9M"], lowkick: ["9M", "8M"], @@ -80806,6 +84299,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M"], terablast: ["9M"], thief: ["9M", "8M"], + throatchop: ["9M"], thunderwave: ["9M", "8M"], torment: ["9L28", "8L28"], trailblaze: ["9M"], @@ -80818,7 +84312,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["9L16", "8M", "8L16"], attract: ["8M"], bite: ["9L1", "8L1"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], chillingwater: ["9M"], confide: ["9L1", "8L1"], darkpulse: ["9M", "9L35", "8M", "8L35"], @@ -80834,7 +84328,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M"], foulplay: ["9M", "9L52", "8M", "8L52"], imprison: ["9M"], - lashout: ["8T"], + lashout: ["9M", "8T"], leechlife: ["9M", "8M"], lightscreen: ["9M", "8M"], lowkick: ["9M", "8M"], @@ -80861,7 +84355,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M"], terablast: ["9M"], thief: ["9M", "8M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunderwave: ["9M", "8M"], torment: ["9L28", "8L28"], trailblaze: ["9M"], @@ -80878,7 +84372,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "8M"], brickbreak: ["9M", "8M"], bulkup: ["9M", "9L1", "8M", "8L1"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], chillingwater: ["9M"], confide: ["9L1", "8L1"], crunch: ["9M", "8M"], @@ -80897,15 +84391,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M"], focusblast: ["9M", "8M"], focusenergy: ["8M"], + focuspunch: ["9M"], foulplay: ["9M", "9L56", "8M", "8L56"], gigaimpact: ["9M", "8M"], hammerarm: ["9L64", "8L64"], hyperbeam: ["9M", "8M"], icepunch: ["9M", "8M"], imprison: ["9M"], - lashout: ["8T"], + lashout: ["9M", "8T"], leechlife: ["9M", "8M"], - lightscreen: ["9M", "8M"], + lightscreen: ["9M", "9S0", "8M"], lowkick: ["9M", "8M"], lowsweep: ["9M", "8M"], megakick: ["8M"], @@ -80918,7 +84413,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poweruppunch: ["8L1"], powerwhip: ["8M"], protect: ["9M", "8M"], - reflect: ["9M", "8M"], + reflect: ["9M", "9S0", "8M"], rest: ["9M", "8M"], retaliate: ["8M"], revenge: ["8M"], @@ -80927,7 +84422,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "8M"], sleeptalk: ["9M", "8M"], snore: ["8M"], - spiritbreak: ["9L0", "8L0"], + spiritbreak: ["9L0", "9S0", "8L0"], stompingtantrum: ["9M", "8M"], substitute: ["9M", "8M"], suckerpunch: ["9L24", "8L24"], @@ -80937,97 +84432,107 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M"], terablast: ["9M"], thief: ["9M", "8M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunderpunch: ["9M", "8M"], - thunderwave: ["9M", "8M"], + thunderwave: ["9M", "9S0", "8M"], torment: ["9L28", "8L28"], trailblaze: ["9M"], trick: ["9M", "8M"], uproar: ["8M"], wonderroom: ["8M"], }, + eventData: [ + {generation: 9, level: 50, nature: "Calm", shiny: true, abilities: ["prankster"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["thunderwave", "spiritbreak", "reflect", "lightscreen"], pokeball: "cherishball"}, + ], }, milcery: { learnset: { - acidarmor: ["8L30"], + acidarmor: ["9L30", "8L30"], aromatherapy: ["8L20"], - aromaticmist: ["8L1"], - attract: ["8M", "8L25", "8S0"], - babydolleyes: ["8E"], + aromaticmist: ["9L1", "8L1"], + attract: ["9L25", "8M", "8L25", "8S0"], + babydolleyes: ["9E", "8E"], celebrate: ["8S0"], - charm: ["8M"], - dazzlinggleam: ["8M", "8L35"], - drainingkiss: ["8M", "8L15"], - endure: ["8M"], - entrainment: ["8L50", "8S0"], - facade: ["8M"], + charm: ["9M", "9L20", "8M"], + dazzlinggleam: ["9M", "9L35", "8M", "8L35"], + drainingkiss: ["9M", "9L15", "8M", "8L15"], + endure: ["9M", "8M"], + entrainment: ["9L50", "8L50", "8S0"], + facade: ["9M", "8M"], fling: ["8M"], - helpinghand: ["8M"], - lastresort: ["8E", "8S0"], - mistyterrain: ["8M", "8L45"], - protect: ["8M"], - recover: ["8L40"], - rest: ["8M"], + helpinghand: ["9M", "8M"], + lastresort: ["9E", "8E", "8S0"], + mistyterrain: ["9M", "9L45", "8M", "8L45"], + protect: ["9M", "8M"], + recover: ["9L40", "8L40"], + rest: ["9M", "8M"], round: ["8M"], - sleeptalk: ["8M"], + sleeptalk: ["9M", "8M"], snore: ["8M"], - storedpower: ["8M"], - substitute: ["8M"], - sweetkiss: ["8L5"], - sweetscent: ["8L10"], - tackle: ["8L1"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sweetkiss: ["9L5", "8L5"], + sweetscent: ["9L10", "8L10"], + tackle: ["9L1", "8L1"], + terablast: ["9M"], }, eventData: [ - {generation: 8, level: 5, nature: "Hardy", isHidden: false, moves: ["celebrate", "lastresort", "entrainment", "attract"], pokeball: "cherishball"}, + {generation: 8, level: 5, nature: "Hardy", isHidden: true, moves: ["celebrate", "lastresort", "entrainment", "attract"], pokeball: "cherishball"}, ], }, alcremie: { learnset: { - acidarmor: ["8L30"], + acidarmor: ["9L30", "8L30"], + alluringvoice: ["9M"], aromatherapy: ["8L20"], - aromaticmist: ["8L1"], - attract: ["8M", "8L25"], - calmmind: ["8M"], - charm: ["8M"], - dazzlinggleam: ["8M", "8L35"], - decorate: ["8L0"], - drainingkiss: ["8M", "8L15"], - drainpunch: ["8M"], - encore: ["8M"], - endure: ["8M"], - energyball: ["8M"], - entrainment: ["8L50"], - facade: ["8M"], - faketears: ["8M"], - fling: ["8M"], - gigadrain: ["8M"], - gigaimpact: ["8M"], - helpinghand: ["8M"], - hyperbeam: ["8M"], - imprison: ["8M"], - lightscreen: ["8M"], - magicalleaf: ["8M"], + aromaticmist: ["9L1", "8L1"], + attract: ["9L25", "8M", "8L25"], + calmmind: ["9M", "8M"], + charm: ["9M", "9L20", "8M"], + dazzlinggleam: ["9M", "9L35", "8M", "8L35"], + decorate: ["9L0", "8L0"], + disarmingvoice: ["9M"], + drainingkiss: ["9M", "9L15", "8M", "8L15"], + drainpunch: ["9M", "8M"], + encore: ["9M", "8M"], + endeavor: ["9M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + entrainment: ["9L50", "8L50"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + fling: ["9M", "8M"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], magicroom: ["8M"], - metronome: ["8M"], - mistyexplosion: ["8T"], - mistyterrain: ["8M", "8L45"], + metronome: ["9M", "8M"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "9L45", "8M", "8L45"], mysticalfire: ["8M"], - playrough: ["8M"], - protect: ["8M"], - psychic: ["8M"], - psyshock: ["8M"], - recover: ["8L40"], - rest: ["8M"], + painsplit: ["9M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + psychic: ["9M", "8M"], + psychup: ["9M"], + psyshock: ["9M", "8M"], + recover: ["9L40", "8L40"], + rest: ["9M", "8M"], round: ["8M"], safeguard: ["8M"], - sleeptalk: ["8M"], + sleeptalk: ["9M", "8M"], snore: ["8M"], - solarbeam: ["8M"], - storedpower: ["8M"], - substitute: ["8M"], - sweetkiss: ["8L1"], - sweetscent: ["8L1"], - tackle: ["8L1"], + solarbeam: ["9M", "8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sweetkiss: ["9L1", "8L1"], + sweetscent: ["9L1", "8L1"], + tackle: ["9L1", "8L1"], + terablast: ["9M"], triattack: ["8M"], wonderroom: ["8M"], }, @@ -81042,8 +84547,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M"], bulkup: ["9M", "9L20", "8M", "8L20"], closecombat: ["9M", "9L50", "8M", "8L50"], - coaching: ["8T"], + coaching: ["9M", "8T"], counter: ["9L60", "8L60"], + endeavor: ["9M"], endure: ["9M", "9L25", "8M", "8L25"], facade: ["9M", "8M"], falseswipe: ["9M", "8M"], @@ -81053,14 +84559,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M"], headbutt: ["9L15", "8L15"], helpinghand: ["9M", "8M"], + highhorsepower: ["9M"], hyperbeam: ["9M", "8M"], irondefense: ["9M", "9L45", "8M", "8L45"], ironhead: ["9M", "8M"], + knockoff: ["9M"], + lunge: ["9M"], megahorn: ["9L55", "8M", "8L55"], noretreat: ["9L40", "8L40"], payback: ["8M"], poisonjab: ["9M", "8M"], protect: ["9M", "9L1", "8M", "8L1"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M", "8M"], retaliate: ["8M"], @@ -81081,8 +84591,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "8L1"], takedown: ["9M"], terablast: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], trailblaze: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], zenheadbutt: ["9M", "8M"], }, }, @@ -81094,13 +84606,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], brine: ["8M"], bubblebeam: ["9L25", "8L25"], - charge: ["9L10", "8L10"], + charge: ["9M", "9L10", "8L10"], chargebeam: ["9M"], chillingwater: ["9M"], - curse: ["9L35", "8L35"], + curse: ["9M", "9L35", "8L35"], discharge: ["9L60", "8L60"], electricterrain: ["9M", "9L40", "8M", "8L40"], electroball: ["9M"], + electroweb: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], furyattack: ["9L15", "8L15"], @@ -81110,7 +84623,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], liquidation: ["9M", "8M"], memento: ["9E", "8E"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], + painsplit: ["9M"], payback: ["8M"], peck: ["9L1", "8L1"], pinmissile: ["8M"], @@ -81122,7 +84636,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reversal: ["9M", "8M"], risingvoltage: ["8T"], round: ["8M"], - scald: ["8M"], + scald: ["9M", "8M"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M"], snore: ["8M"], @@ -81130,11 +84644,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { spikes: ["9M", "8M"], substitute: ["9M", "8M"], suckerpunch: ["9E", "8E"], + supercellslam: ["9M"], surf: ["9M", "8M"], swift: ["9M"], takedown: ["9M"], terablast: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunder: ["9M", "8M"], thunderbolt: ["9M", "8M"], thundershock: ["9L1", "8L1"], @@ -81150,20 +84665,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snom: { learnset: { attract: ["8M"], - bugbite: ["9E", "8E"], + bugbite: ["9M", "9E", "8E"], bugbuzz: ["9M", "8M"], endure: ["8M"], facade: ["9M", "8M"], fairywind: ["9E", "8E"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "8M"], + lunge: ["9M"], mirrorcoat: ["9E", "8E"], pounce: ["9M"], powdersnow: ["9L1", "8L1"], protect: ["9M", "8M"], rest: ["9M", "8M"], round: ["8M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M"], snore: ["8M"], strugglebug: ["9M", "9L1", "8L1"], @@ -81180,6 +84696,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { auroraveil: ["9L36", "8L36"], avalanche: ["9M", "8M"], blizzard: ["9M", "9L40", "8M", "8L40"], + bugbite: ["9M"], bugbuzz: ["9M", "9L32", "8M", "8L32"], calmmind: ["9M", "8M"], dazzlinggleam: ["9M", "8M"], @@ -81187,7 +84704,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dualwingbeat: ["8T"], endure: ["9M", "8M"], facade: ["9M", "8M"], - featherdance: ["9L21", "8L21"], + featherdance: ["9M", "9L21", "8L21"], gigadrain: ["9M", "8M"], gigaimpact: ["9M", "8M"], hail: ["8M", "8L28"], @@ -81196,12 +84713,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M"], icebeam: ["9M", "8M"], icespinner: ["9M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L0", "8M", "8L0"], imprison: ["9M", "8M"], infestation: ["9L8", "8L8"], leechlife: ["9M", "8M"], lightscreen: ["9M", "8M"], + lunge: ["9M"], mist: ["9L12", "8L12"], playrough: ["9M", "8M"], pounce: ["9M"], @@ -81212,7 +84730,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M"], round: ["8M"], safeguard: ["8M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M"], snore: ["8M"], snowscape: ["9M", "9L28"], @@ -81223,9 +84741,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwind: ["9M", "9L44", "8L44"], takedown: ["9M"], terablast: ["9M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], uturn: ["9M", "8M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], wideguard: ["9L48", "8L48"], }, }, @@ -81239,24 +84757,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M", "9L42", "8M", "8L42"], brutalswing: ["8M"], bulldoze: ["9M", "8M"], - curse: ["9E", "8E"], + curse: ["9M", "9E", "8E"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], gigaimpact: ["9M", "8M"], - gravity: ["9L18", "8L18"], - heatcrash: ["8M"], + gravity: ["9M", "9L18", "8L18"], + hardpress: ["9M"], + heatcrash: ["9M", "8M"], heavyslam: ["9M", "9L54", "8M", "8L54"], + highhorsepower: ["9M"], hyperbeam: ["9M", "8M"], imprison: ["9M", "8M"], irondefense: ["9M", "8M"], lowkick: ["9M"], lowsweep: ["9M"], megakick: ["9L66", "8M", "8L66"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], powergem: ["9M"], protect: ["9M", "8M"], + psychup: ["9M"], rest: ["9M", "8M"], rockblast: ["9M", "8M"], rockpolish: ["9L6", "8L6"], @@ -81266,9 +84788,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M"], safeguard: ["8M"], sandstorm: ["9M", "8M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M"], + smackdown: ["9M"], snore: ["8M"], stealthrock: ["9M", "9L30", "8M", "8L30"], stomp: ["9L24", "8L24"], @@ -81297,9 +84820,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brine: ["8M"], chillingwater: ["9M"], dive: ["8M"], - doubleedge: ["9E", "8E"], + doubleedge: ["9M", "9E", "8E"], endure: ["9M", "8M"], facade: ["9M", "8M"], + featherdance: ["9M"], + flipturn: ["9M"], freezedry: ["9L36", "8L36"], gigaimpact: ["9M"], hail: ["8M", "8L42"], @@ -81311,7 +84836,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M"], icespinner: ["9M"], iciclecrash: ["9E", "8E"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "9L18", "8M", "8L18"], irondefense: ["9M", "8M"], ironhead: ["9M", "8M"], @@ -81335,8 +84860,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], waterfall: ["9M", "8M"], waterpulse: ["9M"], - weatherball: ["9L12", "8M", "8L12"], - whirlpool: ["8M"], + weatherball: ["9M", "9L12", "8M", "8L12"], + whirlpool: ["9M", "8M"], zenheadbutt: ["9M", "8M"], }, }, @@ -81355,11 +84880,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M", "9L5", "8M", "8L5"], endure: ["9M", "8M"], energyball: ["9M", "8M"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], extrasensory: ["9E", "8E"], facade: ["9M", "8M"], fakeout: ["9E", "8E"], futuresight: ["8M"], + gravity: ["9M"], healingwish: ["9L30"], helpinghand: ["9M", "9L20", "8M", "8L20"], hypervoice: ["9M", "8M"], @@ -81377,8 +84903,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M"], psybeam: ["9M", "9L15", "8L15"], psychic: ["9M", "9L35", "8M", "8L35"], + psychicnoise: ["9M"], psychicterrain: ["9M", "9L50", "8M", "8L50"], - psychup: ["9E", "8E"], + psychup: ["9M", "9E", "8E"], psyshock: ["9M", "8M"], rest: ["9M", "8M"], round: ["8M"], @@ -81401,6 +84928,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, indeedeef: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M"], aromatherapy: ["8L30"], attract: ["8M"], @@ -81438,7 +84966,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychic: ["9M", "9L35", "9S0", "8M", "8L35"], psychicterrain: ["9M", "9L50", "8M", "8L50"], psychoshift: ["8E"], - psychup: ["9E", "8E"], + psychup: ["9M", "9E", "8E"], psyshock: ["9M", "8M"], reflect: ["9M", "8M"], rest: ["9M", "8M"], @@ -81455,7 +84983,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], terrainpulse: ["8T"], trick: ["9M", "8M"], - trickroom: ["9S0"], + trickroom: ["9M", "9S0"], zenheadbutt: ["9M", "8M"], }, eventData: [ @@ -81464,70 +84992,80 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, morpeko: { learnset: { - agility: ["8M", "8L40"], + agility: ["9M", "9L40", "8M", "8L40"], assurance: ["8M"], attract: ["8M"], - aurawheel: ["8L55"], - bite: ["8L25"], - brickbreak: ["8M"], - bulletseed: ["8M", "8L45"], - charge: ["8E"], - crunch: ["8M", "8L50"], - darkpulse: ["8M"], - electricterrain: ["8M"], - electroball: ["8M"], - electroweb: ["8M"], - endure: ["8M"], - facade: ["8M"], - fakeout: ["8E"], - faketears: ["8M"], - firefang: ["8M"], - flatter: ["8L20"], - fling: ["8M"], - foulplay: ["8M"], - icefang: ["8M"], - lashout: ["8T"], - leer: ["8L5"], - nastyplot: ["8M"], - outrage: ["8M"], - partingshot: ["8E"], + aurawheel: ["9L55", "8L55"], + batonpass: ["9M"], + bite: ["9L25", "8L25"], + brickbreak: ["9M", "8M"], + bulletseed: ["9M", "9L45", "8M", "8L45"], + charge: ["9M", "9E", "8E"], + chargebeam: ["9M"], + crunch: ["9M", "9L50", "8M", "8L50"], + darkpulse: ["9M", "8M"], + doubleedge: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["9M", "8M"], + endeavor: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + faketears: ["9M", "8M"], + firefang: ["9M", "8M"], + flatter: ["9L20", "8L20"], + fling: ["9M", "8M"], + foulplay: ["9M", "8M"], + icefang: ["9M", "8M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leer: ["9L5", "8L5"], + nastyplot: ["9M", "8M"], + outrage: ["9M", "8M"], + partingshot: ["9E", "8E"], payback: ["8M"], - powertrip: ["8L10"], - protect: ["8M"], - psychicfangs: ["8M"], - quash: ["8E"], - quickattack: ["8L15"], - rapidspin: ["8E"], - rest: ["8M"], + powertrip: ["9L10", "8L10"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quash: ["9E", "8E"], + quickattack: ["9L15", "8L15"], + rapidspin: ["9E", "8E"], + rest: ["9M", "8M"], revenge: ["8M"], + reversal: ["9M"], risingvoltage: ["8T"], round: ["8M"], - scaryface: ["8M"], - seedbomb: ["8M"], - sleeptalk: ["8M"], - snarl: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], snore: ["8M"], - spark: ["8L30"], - stompingtantrum: ["8M"], - substitute: ["8M"], - superfang: ["8E"], - swagger: ["8E"], - swift: ["8M"], - tailwhip: ["8L1"], - taunt: ["8M"], - thief: ["8M"], - thrash: ["8L60"], - thunder: ["8M"], - thunderbolt: ["8M"], - thunderfang: ["8M"], - thunderpunch: ["8M"], - thundershock: ["8L1"], - thunderwave: ["8M"], - tickle: ["8E"], - torment: ["8L35"], - uproar: ["8M"], - voltswitch: ["8M"], - wildcharge: ["8M"], + spark: ["9L30", "8L30"], + spite: ["9M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + superfang: ["9M", "9E", "8E"], + swagger: ["9E", "8E"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L60", "8L60"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + tickle: ["9E", "8E"], + torment: ["9L35", "8L35"], + uproar: ["9M", "8M"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], }, }, cufant: { @@ -81539,12 +85077,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M"], brutalswing: ["8M"], bulldoze: ["9M", "9L15", "8M", "8L15"], - curse: ["9E", "8E"], + curse: ["9M", "9E", "8E"], defensecurl: ["9E", "8E"], dig: ["9M", "9L30", "8M", "8L30"], - doubleedge: ["9E", "8E"], + doubleedge: ["9M", "9E", "8E"], earthpower: ["9M", "8M"], earthquake: ["9M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], fissure: ["9E", "8E"], @@ -81552,7 +85091,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M"], growl: ["9L1", "8L1"], heavyslam: ["9M"], - highhorsepower: ["9L50", "8M", "8L50"], + highhorsepower: ["9M", "9L50", "8M", "8L50"], irondefense: ["9M", "9L25", "8M", "8L25"], ironhead: ["9M", "9L40", "8M", "8L40"], megakick: ["8M"], @@ -81598,21 +85137,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M"], brutalswing: ["8M"], bulldoze: ["9M", "9L15", "8M", "8L15"], + curse: ["9M"], dig: ["9M", "9L30", "8M", "8L30"], + doubleedge: ["9M"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M"], + endeavor: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], flashcannon: ["9M", "8M"], fling: ["9M", "8M"], gigaimpact: ["9M", "8M"], growl: ["9L1", "8L1"], - heatcrash: ["8M"], + hardpress: ["9M"], + heatcrash: ["9M", "8M"], heavyslam: ["9M", "9L0", "8M", "8L0"], - highhorsepower: ["9L58", "8M", "8L58"], + highhorsepower: ["9M", "9L58", "8M", "8L58"], hyperbeam: ["9M", "8M"], irondefense: ["9M", "9L25", "8M", "8L25"], ironhead: ["9M", "9L44", "8M", "8L44"], + knockoff: ["9M"], megakick: ["8M"], mudshot: ["9M", "8M"], outrage: ["9M", "8M"], @@ -81632,6 +85176,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["8M"], screech: ["8M"], sleeptalk: ["9M", "8M"], + smackdown: ["9M"], snarl: ["9M", "8M"], snore: ["8M"], stealthrock: ["9M", "8M"], @@ -81642,6 +85187,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stoneedge: ["9M", "8M"], strength: ["9L37", "8L37"], substitute: ["9M", "8M"], + supercellslam: ["9M"], superpower: ["9L65", "8M", "8L65"], tackle: ["9L1", "8L1"], takedown: ["9M"], @@ -81894,59 +85440,65 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { duraludon: { learnset: { attract: ["8M"], - bodypress: ["8M"], - bodyslam: ["8M"], - breakingswipe: ["8M", "8L24"], - brickbreak: ["8M"], - darkpulse: ["8M"], - dracometeor: ["8T"], - dragonclaw: ["8M", "8L48"], - dragonpulse: ["8M"], - dragontail: ["8L30"], - endure: ["8M"], - facade: ["8M"], - flashcannon: ["8M", "8L54"], - foulplay: ["8M"], - gigaimpact: ["8M"], - gyroball: ["8M"], - heavyslam: ["8M"], - honeclaws: ["8L12"], - hyperbeam: ["8M", "8L66"], - irondefense: ["8M", "8L36"], - ironhead: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + breakingswipe: ["9M", "9L24", "8M", "8L24"], + brickbreak: ["9M", "8M"], + darkpulse: ["9M", "8M"], + doubleedge: ["9M"], + dracometeor: ["9M", "8T"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L48", "8M", "8L48"], + dragonpulse: ["9M", "8M"], + dragontail: ["9M", "9L30", "8L30"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flashcannon: ["9M", "9L54", "8M", "8L54"], + focusenergy: ["9L42"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gyroball: ["9M", "8M"], + heavyslam: ["9M", "8M"], + honeclaws: ["9L12", "8L12"], + hyperbeam: ["9M", "9L66", "8M", "8L66"], + irondefense: ["9M", "9L36", "8M", "8L36"], + ironhead: ["9M", "8M"], laserfocus: ["8L42"], - leer: ["8L1"], - lightscreen: ["8M"], - metalburst: ["8L60"], - metalclaw: ["8L1"], - metalsound: ["8L18"], - mirrorcoat: ["8E"], - nightslash: ["8E"], - outrage: ["8M"], - protect: ["8M"], - reflect: ["8M"], - rest: ["8M"], - rockslide: ["8M"], - rocksmash: ["8L6"], - rocktomb: ["8M"], + leer: ["9L1", "8L1"], + lightscreen: ["9M", "8M"], + metalburst: ["9L60", "8L60"], + metalclaw: ["9M", "9L1", "8L1"], + metalsound: ["9M", "9L18", "8L18"], + mirrorcoat: ["9E", "8E"], + nightslash: ["9E", "8E"], + outrage: ["9M", "8M"], + protect: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + roar: ["9M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L6", "8L6"], + rocktomb: ["9M", "8M"], round: ["8M"], - scaryface: ["8M"], + scaryface: ["9M", "8M"], screech: ["8M"], - slash: ["8E"], - sleeptalk: ["8M"], - snarl: ["8M"], + slash: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], snore: ["8M"], - solarbeam: ["8M"], - stealthrock: ["8M"], - steelbeam: ["8T"], + solarbeam: ["9M", "8M"], + stealthrock: ["9M", "8M"], + steelbeam: ["9M", "8T"], steelroller: ["8T"], stompingtantrum: ["8M"], - stoneedge: ["8M"], - substitute: ["8M"], - swordsdance: ["8M"], - thunder: ["8M"], - thunderbolt: ["8M"], - thunderwave: ["8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderwave: ["9M", "8M"], }, }, dreepy: { @@ -81956,7 +85508,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M", "8M"], bite: ["9L1", "8L1"], confuseray: ["9M", "9E", "8E"], - curse: ["9E", "8E"], + curse: ["9M", "9E", "8E"], disable: ["9E", "8E"], doubleteam: ["9E", "8E"], dracometeor: ["9M", "8T"], @@ -81990,12 +85542,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M", "8M"], beatup: ["8M"], bite: ["9L1", "8L1"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brine: ["8M"], + confuseray: ["9M"], + curse: ["9M"], dive: ["8M"], - doubleedge: ["9L66", "8L66"], + doubleedge: ["9M", "9L66", "8L66"], doublehit: ["9L30", "8L30"], dracometeor: ["9M", "8T"], + dragoncheer: ["9M"], dragondance: ["9M", "9L42", "8M", "8L42"], dragonpulse: ["9M", "9L0", "8M", "8L0"], dragonrush: ["9L61", "8L61"], @@ -82052,16 +85607,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { beatup: ["8M"], bite: ["9L1", "8L1"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brine: ["8M"], + confuseray: ["9M"], + curse: ["9M"], dive: ["8M"], - doubleedge: ["9L70", "8L70"], + doubleedge: ["9M", "9L70", "8L70"], doublehit: ["9L30", "8L30"], dracometeor: ["9M", "8T"], dragonbreath: ["9L1", "8L1"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M"], dragondance: ["9M", "9L42", "8M", "8L42"], - dragondarts: ["9L0", "8L0"], + dragondarts: ["9L0", "9S0", "8L0"], dragonpulse: ["9M", "8M"], dragonrush: ["9L63", "8L63"], dragontail: ["9M"], @@ -82081,7 +85639,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lockon: ["9L6", "8L6"], nightshade: ["9M"], outrage: ["9M", "8M"], - phantomforce: ["9M", "9L48", "8M", "8L48"], + phantomforce: ["9M", "9L48", "9S0", "8M", "8L48"], pounce: ["9M"], protect: ["9M", "8M"], psychicfangs: ["9M", "8M"], @@ -82101,15 +85659,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { surf: ["9M", "8M"], swift: ["9M", "8M"], takedown: ["9M", "9L54", "8L54"], - terablast: ["9M"], + terablast: ["9M", "9S0"], thief: ["9M", "8M"], thunder: ["9M", "8M"], thunderbolt: ["9M", "8M"], thunderwave: ["9M", "8M"], triattack: ["8M"], - uturn: ["9M", "9L36", "8M", "8L36"], + uturn: ["9M", "9L36", "9S0", "8M", "8L36"], willowisp: ["9M", "8M"], }, + eventData: [ + {generation: 9, level: 50, gender: "M", nature: "Jolly", perfectIVs: 6, abilities: ["clearbody"], moves: ["dragondarts", "phantomforce", "uturn", "terablast"], pokeball: "cherishball"}, + ], }, zacian: { learnset: { @@ -82164,7 +85725,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M"], snarl: ["9M", "8M"], snore: ["8M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], steelbeam: ["9M", "8T"], substitute: ["9M", "8M"], swift: ["9M", "8M"], @@ -82197,7 +85758,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], brickbreak: ["9M"], closecombat: ["9M", "9L77", "8M", "8L77", "8S1"], - coaching: ["8T"], + coaching: ["9M", "8T"], crunch: ["9M", "9L55", "8M", "8L55", "8S0"], dazzlinggleam: ["9M", "8M"], dig: ["9M", "8M"], @@ -82236,6 +85797,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M"], revenge: ["8M"], reversal: ["9M", "8M"], + roar: ["9M"], round: ["8M"], safeguard: ["8M"], sandstorm: ["9M"], @@ -82294,10 +85856,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M", "8M"], fly: ["9M", "8M"], gigaimpact: ["9M", "8M"], + gravity: ["9M"], gunkshot: ["9M"], hyperbeam: ["9M", "9L80", "8M", "8L80"], lightscreen: ["9M", "8M"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], mysticalfire: ["8M"], outrage: ["9M", "9L88"], payback: ["8M"], @@ -82314,14 +85877,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "8M"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M", "8S1"], - sludgewave: ["8M"], + sludgewave: ["9M", "8M"], snore: ["8M"], solarbeam: ["9M", "8M"], substitute: ["9M", "8M"], sunnyday: ["9M"], takedown: ["9M"], terablast: ["9M"], - toxic: ["9L8", "8L8"], + toxic: ["9M", "9L8", "8L8"], toxicspikes: ["9M", "8M"], venomdrench: ["8M"], venoshock: ["9M", "9L16", "8M", "8L16"], @@ -82338,21 +85901,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["9M", "9L12", "8L12"], attract: ["8M"], bodyslam: ["9M", "8M"], - brickbreak: ["9M", "9L24", "8M", "8L24"], + brickbreak: ["9M", "9L24", "9S1", "8M", "8L24"], bulkup: ["9M", "9L32", "8M", "8L32"], closecombat: ["9M", "9L48", "8M", "8L48"], coaching: ["8T"], counter: ["9L44", "8L44"], - detect: ["9L28", "8L28"], + detect: ["9L28", "9S1", "8L28"], dig: ["9M", "8M"], + doubleedge: ["9M"], dynamicpunch: ["9L40", "8L40"], endure: ["9M", "9L4", "8M", "8L4", "8S0"], facade: ["9M", "8M"], firepunch: ["9M", "8M"], fling: ["9M"], focusenergy: ["9L8", "8M", "8L8", "8S0"], - focuspunch: ["9L52", "8L52"], - headbutt: ["9L20", "8L20"], + focuspunch: ["9M", "9L52", "8L52"], + headbutt: ["9L20", "9S1", "8L20"], helpinghand: ["9M", "8M"], icepunch: ["9M", "8M"], ironhead: ["9M", "9L36", "8M", "8L36"], @@ -82369,7 +85933,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reversal: ["9M", "8M"], rocksmash: ["9L1", "8L1", "8S0"], round: ["8M"], - scaryface: ["9M", "9L16", "8M", "8L16"], + scaryface: ["9M", "9L16", "9S1", "8M", "8L16"], sleeptalk: ["9M", "8M"], snore: ["8M"], substitute: ["9M", "8M"], @@ -82383,8 +85947,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { zenheadbutt: ["9M", "8M"], }, eventData: [ - // TODO get actual event data {generation: 8, level: 10, perfectIVs: 3, moves: ["rocksmash", "leer", "endure", "focusenergy"]}, + {generation: 9, level: 30, moves: ["detect", "brickbreak", "headbutt", "scaryface"]}, ], eventOnly: true, }, @@ -82401,13 +85965,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "9L24", "8M", "8L24"], bulkup: ["9M", "9L32", "8M", "8L32"], closecombat: ["9M", "9L48", "8M", "8L48"], - coaching: ["8T"], + coaching: ["9M", "8T"], counter: ["9L44", "8L44"], crunch: ["9M", "8M"], darkestlariat: ["8M"], darkpulse: ["9M", "8M"], detect: ["9L28", "8L28"], dig: ["9M", "8M"], + doubleedge: ["9M"], drainpunch: ["9M", "8M"], dynamicpunch: ["9L40", "8L40"], endure: ["9M", "9L1", "8M", "8L1"], @@ -82417,7 +85982,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M"], focusblast: ["9M", "8M"], focusenergy: ["9L1", "8M", "8L1"], - focuspunch: ["9L52", "8L52"], + focuspunch: ["9M", "9L52", "8L52"], foulplay: ["9M", "8M"], gigaimpact: ["9M", "8M"], headbutt: ["9L20", "8L20"], @@ -82425,7 +85990,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M"], irondefense: ["9M", "8M"], ironhead: ["9M", "9L36", "8M", "8L36"], - lashout: ["8T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1"], lowkick: ["9M", "8M"], lowsweep: ["9M", "8M"], @@ -82439,6 +86004,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M"], revenge: ["8M"], reversal: ["9M", "8M"], + roar: ["9M"], rockslide: ["9M", "8M"], rocksmash: ["9L1", "8L1"], rocktomb: ["9M", "8M"], @@ -82456,7 +86022,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M", "8M"], terablast: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunderpunch: ["9M", "8M"], trailblaze: ["9M"], uturn: ["9M", "8M"], @@ -82479,11 +86045,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M", "9L32", "8M", "8L32"], chillingwater: ["9M"], closecombat: ["9M", "9L48", "8M", "8L48"], - coaching: ["8T"], + coaching: ["9M", "8T"], counter: ["9L44", "8L44"], detect: ["9L28", "8L28"], dig: ["9M", "8M"], dive: ["8M"], + doubleedge: ["9M"], drainpunch: ["9M", "8M"], dynamicpunch: ["9L40", "8L40"], endure: ["9M", "9L1", "8M", "8L1"], @@ -82493,7 +86060,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M"], focusblast: ["9M", "8M"], focusenergy: ["9L1", "8M", "8L1"], - focuspunch: ["9L52", "8L52"], + focuspunch: ["9M", "9L52", "8L52"], gigaimpact: ["9M", "8M"], headbutt: ["9L20", "8L20"], helpinghand: ["9M", "8M"], @@ -82535,7 +86102,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], uturn: ["9M", "8M"], waterfall: ["9M", "8M"], - whirlpool: ["8M"], + whirlpool: ["9M", "8M"], workup: ["8M"], zenheadbutt: ["9M", "8M"], }, @@ -82557,17 +86124,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkestlariat: ["8M"], darkpulse: ["9M", "8M"], dig: ["9M", "8M"], + doubleedge: ["9M"], drainpunch: ["9M", "8M"], encore: ["9M", "8M"], endure: ["9M", "8M"], energyball: ["9M", "9L60", "8M", "8L60"], facade: ["9M", "8M"], fling: ["9M", "8M"], + focuspunch: ["9M"], furyswipes: ["9L24", "8L24"], gigadrain: ["9M", "8M"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "9L36", "8M", "8L36"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], growth: ["9L18", "8L18"], hammerarm: ["9L72", "8L72"], @@ -82576,7 +86145,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M"], irontail: ["8M"], junglehealing: ["9L90", "8L90"], - lashout: ["8T"], + knockoff: ["9M"], + lashout: ["9M", "8T"], leafstorm: ["9M"], leer: ["9L6", "8L6"], lowkick: ["9M", "8M"], @@ -82587,10 +86157,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M", "8M"], nastyplot: ["9M", "8M"], payback: ["8M"], + petalblizzard: ["9M"], powerwhip: ["9L84", "8M", "8L84", "8S0"], protect: ["9M", "8M"], rest: ["9M", "8M"], revenge: ["8M"], + roar: ["9M"], rockslide: ["9M", "8M"], rocktomb: ["9M", "8M"], round: ["8M"], @@ -82601,7 +86173,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M", "8S0"], snore: ["8M"], solarbeam: ["9M", "8M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], stompingtantrum: ["9M", "8M"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], @@ -82615,7 +86187,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M"], thrash: ["9L78", "8L78"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], trailblaze: ["9M"], uturn: ["9M", "9L48", "8M", "8L48"], vinewhip: ["9L12", "8L12"], @@ -82642,17 +86214,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkestlariat: ["8M"], darkpulse: ["9M", "8M"], dig: ["9M", "8M"], + doubleedge: ["9M"], drainpunch: ["9M", "8M"], encore: ["9M", "8M"], endure: ["9M", "8M"], energyball: ["9M", "9L60", "8M", "8L60", "8S0"], facade: ["9M", "8M"], fling: ["9M", "8M"], + focuspunch: ["9M"], furyswipes: ["9L24", "8L24"], gigadrain: ["9M", "8M"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "9L36", "8M", "8L36"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], growth: ["9L18", "8L18"], hammerarm: ["9L72", "8L72", "8S0"], @@ -82661,7 +86235,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M"], irontail: ["8M"], junglehealing: ["9L90", "8L90", "8S0"], - lashout: ["8T"], + knockoff: ["9M"], + lashout: ["9M", "8T"], leafstorm: ["9M"], leer: ["9L6", "8L6"], lowkick: ["9M", "8M"], @@ -82672,10 +86247,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M", "8M"], nastyplot: ["9M", "8M"], payback: ["8M"], + petalblizzard: ["9M"], powerwhip: ["9L84", "8M", "8L84", "8S0"], protect: ["9M", "8M"], rest: ["9M", "8M"], revenge: ["8M"], + roar: ["9M"], rockslide: ["9M", "8M"], rocktomb: ["9M", "8M"], round: ["8M"], @@ -82686,7 +86263,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M"], snore: ["8M"], solarbeam: ["9M", "8M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], stompingtantrum: ["9M", "8M"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], @@ -82700,7 +86277,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M"], thrash: ["9L78", "8L78"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], trailblaze: ["9M"], uturn: ["9M", "9L48", "8M", "8L48"], vinewhip: ["9L12", "8L12"], @@ -82718,11 +86295,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["8M"], bodyslam: ["9M", "8M"], bounce: ["8M"], + charge: ["9M"], chargebeam: ["9M"], eerieimpulse: ["9M", "8M"], electricterrain: ["9M", "8M"], electroball: ["9M", "8M"], - electroweb: ["9L6", "8M", "8L6"], + electroweb: ["9M", "9L6", "8M", "8L6"], endure: ["9M", "8M"], explosion: ["9L78", "8L78"], extremespeed: ["9L30", "8L30"], @@ -82745,6 +86323,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M"], snore: ["8M"], substitute: ["9M", "8M"], + supercellslam: ["9M"], swift: ["9M", "8M"], takedown: ["9M"], terablast: ["9M"], @@ -82768,10 +86347,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["9L12", "8L12"], bite: ["9L6", "8L6"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], crunch: ["9M", "9L30", "8M", "8L30"], dracometeor: ["9M", "8T"], dragonbreath: ["9L18", "8L18"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L36", "8M", "8L36", "8S0"], dragondance: ["9M", "9L48", "8M", "8L48"], dragonenergy: ["9L66", "8L66", "8S0"], @@ -82795,7 +86375,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M"], reversal: ["9M", "8M"], round: ["8M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], selfdestruct: ["8M"], sleeptalk: ["9M", "8M"], snore: ["8M"], @@ -82823,21 +86403,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "8M"], closecombat: ["9M", "8M"], crunch: ["9M", "8M"], - doubleedge: ["9L66", "8L66", "8S0"], + curse: ["9M"], + doubleedge: ["9M", "9L66", "9S1", "8L66", "8S0"], doublekick: ["9L6", "8L6"], endure: ["9M", "8M"], facade: ["9M", "8M"], gigaimpact: ["9M", "8M"], hail: ["8M"], heavyslam: ["9M", "8M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M"], icebeam: ["9M", "8M"], iciclecrash: ["9L36", "8L36", "8S0"], iciclespear: ["8M"], icywind: ["9M", "8M"], - irondefense: ["9M", "9L48", "8M", "8L48"], - lashout: ["8T"], + irondefense: ["9M", "9L48", "9S1", "8M", "8L48"], + lashout: ["9M", "8T"], megahorn: ["8M"], mist: ["9L30", "8L30"], mudshot: ["9M", "8M"], @@ -82845,6 +86426,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { payback: ["8M"], protect: ["9M", "8M"], rest: ["9M", "8M"], + roar: ["9M"], round: ["8M"], scaryface: ["9M", "8M"], sleeptalk: ["9M", "8M"], @@ -82860,10 +86442,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L1", "8L1"], tailwhip: ["9L1", "8L1"], takedown: ["9M", "9L42", "8L42"], - taunt: ["9M", "9L60", "8M", "8L60", "8S0"], + taunt: ["9M", "9L60", "9S1", "8M", "8L60", "8S0"], terablast: ["9M"], - thrash: ["9L54", "8L54"], - throatchop: ["8M"], + thrash: ["9L54", "9S1", "8L54"], + throatchop: ["9M", "8M"], torment: ["9L24", "8L24"], trailblaze: ["9M"], uproar: ["8M"], @@ -82871,36 +86453,40 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 8, level: 75, moves: ["taunt", "doubleedge", "swordsdance", "iciclecrash"]}, + {generation: 9, level: 70, moves: ["doubleedge", "taunt", "thrash", "irondefense"]}, ], eventOnly: true, }, spectrier: { learnset: { - agility: ["9M", "9L48", "8M", "8L48"], + agility: ["9M", "9L48", "9S1", "8M", "8L48"], assurance: ["8M"], bodyslam: ["9M", "8M"], bulldoze: ["9M", "8M"], calmmind: ["9M", "8M"], confuseray: ["9M", "9L24", "8L24"], crunch: ["9M", "8M"], + curse: ["9M"], darkpulse: ["9M", "8M"], - disable: ["9L60", "8L60", "8S0"], - doubleedge: ["9L66", "8L66", "8S0"], + disable: ["9L60", "9S1", "8L60", "8S0"], + doubleedge: ["9M", "9L66", "9S1", "8L66", "8S0"], doublekick: ["9L6", "8L6"], drainingkiss: ["9M"], endure: ["9M", "8M"], facade: ["9M", "8M"], foulplay: ["9M", "8M"], gigaimpact: ["9M", "8M"], - haze: ["9L30", "8L30"], + haze: ["9M", "9L30", "8L30"], hex: ["9M", "9L12", "8M", "8L12"], hyperbeam: ["9M", "8M"], - lashout: ["8T"], + lashout: ["9M", "8T"], mudshot: ["9M", "8M"], nastyplot: ["9M", "9L72", "8M", "8L72", "8S0"], nightshade: ["9M"], + painsplit: ["9M"], payback: ["8M"], phantomforce: ["9M", "8M"], + poltergeist: ["9M"], protect: ["9M", "8M"], psychic: ["9M"], psychocut: ["8M"], @@ -82920,12 +86506,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "9L42", "8L42"], taunt: ["9M", "8M"], terablast: ["9M"], - thrash: ["9L54", "8L54", "8S0"], + thrash: ["9L54", "9S1", "8L54", "8S0"], uproar: ["8M"], willowisp: ["9M", "8M"], }, eventData: [ {generation: 8, level: 75, moves: ["thrash", "doubleedge", "disable", "nastyplot"]}, + {generation: 9, level: 70, moves: ["doubleedge", "disable", "thrash", "agility"]}, ], eventOnly: true, }, @@ -82943,13 +86530,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M", "8M"], endure: ["9M", "8M"], energyball: ["9M", "9L48", "8M", "8L48"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], - futuresight: ["9L88", "8M", "8L88"], + futuresight: ["9M", "9L88", "8M", "8L88"], gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "8M"], grassyterrain: ["9M", "9L40", "8M"], + gravity: ["9M"], growth: ["9L1", "8L1"], guardswap: ["8M"], healpulse: ["9L72", "8L72"], @@ -82973,6 +86561,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M", "9L56", "8M", "8L56", "8S0"], psychicterrain: ["9M", "9L40", "8M"], + psychup: ["9M"], psyshock: ["9M", "9L24", "8M", "8L24"], reflect: ["9M", "8M"], rest: ["9M", "8M"], @@ -82985,7 +86574,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M"], snore: ["8M"], solarbeam: ["9M", "9L80", "8M", "8L80"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], speedswap: ["8M"], storedpower: ["9M", "8M"], substitute: ["9M", "8M"], @@ -83021,35 +86610,37 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "8M"], confusion: ["9L1", "8L1"], crunch: ["9M", "8M"], - doubleedge: ["9L1", "8L1"], + curse: ["9M"], + doubleedge: ["9M", "9L1", "8L1"], doublekick: ["9L1", "8L1"], drainingkiss: ["9M", "8M"], encore: ["9M", "8M"], endure: ["9M", "8M"], energyball: ["9M", "9L48", "8M", "8L48"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], - futuresight: ["9L88", "8M", "8L88"], + futuresight: ["9M", "9L88", "8M", "8L88"], gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], gigaimpact: ["9M", "8M"], glaciallance: ["9L1", "8L1", "8S0"], grassknot: ["9M", "8M"], grassyterrain: ["9M", "9L40", "8M"], + gravity: ["9M"], growth: ["9L1", "8L1"], guardswap: ["8M"], hail: ["8M"], healpulse: ["9L72", "8L72"], heavyslam: ["9M", "8M"], helpinghand: ["9M", "9L32", "8M", "8L32"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M"], icebeam: ["9M", "8M"], iciclecrash: ["9L1", "8L1"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "8M"], imprison: ["9M", "8M"], irondefense: ["9M", "9L1", "8M", "8L1", "8S0"], - lashout: ["8T"], + lashout: ["9M", "8T"], leafstorm: ["9M", "8M"], leechseed: ["9L64", "8L64"], lifedew: ["9L8", "8L8"], @@ -83071,9 +86662,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M", "9L56", "8M", "8L56", "8S0"], psychicterrain: ["9M", "9L40", "8M"], + psychup: ["9M"], psyshock: ["9M", "9L24", "8M", "8L24"], reflect: ["9M", "8M"], rest: ["9M", "8M"], + roar: ["9M"], round: ["8M"], safeguard: ["8M"], scaryface: ["9M", "8M"], @@ -83085,7 +86678,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M"], snowscape: ["9M"], solarbeam: ["9M", "9L80", "8M", "8L80"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], speedswap: ["8M"], stomp: ["9L1", "8L1"], stompingtantrum: ["9M", "8M"], @@ -83101,7 +86694,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L1", "8M", "8L1"], terablast: ["9M"], thrash: ["9L1", "8L1"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], torment: ["9L1", "8L1"], trailblaze: ["9M"], triattack: ["8M"], @@ -83131,31 +86724,33 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9M", "9L1", "8L1"], confusion: ["9L1", "8L1"], crunch: ["9M", "8M"], + curse: ["9M"], darkpulse: ["9M", "8M"], disable: ["9L1", "8L1"], - doubleedge: ["9L1", "8L1"], + doubleedge: ["9M", "9L1", "8L1"], doublekick: ["9L1", "8L1"], drainingkiss: ["9M", "8M"], encore: ["9M", "8M"], endure: ["9M", "8M"], energyball: ["9M", "9L48", "8M", "8L48"], - expandingforce: ["8T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M"], foulplay: ["9M", "8M"], - futuresight: ["9L88", "8M", "8L88"], + futuresight: ["9M", "9L88", "8M", "8L88"], gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], gigaimpact: ["9M", "8M"], grassknot: ["9M", "8M"], grassyterrain: ["9M", "9L40", "8M"], + gravity: ["9M"], growth: ["9L1", "8L1"], guardswap: ["8M"], - haze: ["9L1", "8L1"], + haze: ["9M", "9L1", "8L1"], healpulse: ["9L72", "8L72"], helpinghand: ["9M", "9L32", "8M", "8L32"], hex: ["9M", "9L1", "8M", "8L1"], hyperbeam: ["9M", "8M"], imprison: ["9M", "8M"], - lashout: ["8T"], + lashout: ["9M", "8T"], leafstorm: ["9M", "8M"], leechseed: ["9L64", "8L64"], lifedew: ["9L8", "8L8"], @@ -83167,6 +86762,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M", "8M"], nastyplot: ["9M", "9L1", "8M", "8L1"], nightshade: ["9M"], + painsplit: ["9M"], payback: ["8M"], payday: ["8M"], phantomforce: ["9M", "8M"], @@ -83178,6 +86774,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychic: ["9M", "9L56", "8M", "8L56", "8S0"], psychicterrain: ["9M", "9L40", "8M"], psychocut: ["8M"], + psychup: ["9M"], psyshock: ["9M", "9L24", "8M", "8L24"], reflect: ["9M", "8M"], rest: ["9M", "8M"], @@ -83191,7 +86788,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M"], snore: ["8M"], solarbeam: ["9M", "9L80", "8M", "8L80"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], speedswap: ["8M"], stomp: ["9L1", "8L1"], stompingtantrum: ["9M", "8M"], @@ -83221,6 +86818,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { enamorus: { learnset: { agility: ["9M"], + alluringvoice: ["9M"], astonish: ["9L1"], bodyslam: ["9M"], calmmind: ["9M"], @@ -83243,6 +86841,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { imprison: ["9M", "9L30"], irondefense: ["9M", "9L25"], ironhead: ["9M"], + mistyexplosion: ["9M"], mistyterrain: ["9M"], moonblast: ["9L65"], mysticalfire: ["9L35"], @@ -83250,6 +86849,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { playrough: ["9M"], protect: ["9M"], psychic: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], scaryface: ["9M"], @@ -83265,13 +86865,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], torment: ["9L5"], twister: ["9L15"], - uproar: ["9L50"], + uproar: ["9M", "9L50"], + weatherball: ["9M"], zenheadbutt: ["9M"], }, }, enamorustherian: { learnset: { agility: ["9M"], + alluringvoice: ["9M"], astonish: ["9L1"], bodyslam: ["9M"], calmmind: ["9M"], @@ -83294,6 +86896,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { imprison: ["9M", "9L30"], irondefense: ["9M", "9L25"], ironhead: ["9M"], + mistyexplosion: ["9M"], mistyterrain: ["9M"], moonblast: ["9L65"], mysticalfire: ["9L35"], @@ -83301,6 +86904,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { playrough: ["9M"], protect: ["9M"], psychic: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], scaryface: ["9M"], @@ -83316,7 +86920,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], torment: ["9L5"], twister: ["9L15"], - uproar: ["9L50"], + uproar: ["9M", "9L50"], + weatherball: ["9M"], zenheadbutt: ["9M"], }, }, @@ -83337,6 +86942,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M"], grassknot: ["9M"], grasspledge: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], helpinghand: ["9M"], honeclaws: ["9L10"], @@ -83346,7 +86952,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicalleaf: ["9M", "9L13"], mudslap: ["9M"], nastyplot: ["9M"], - petalblizzard: ["9E"], + petalblizzard: ["9M", "9E"], playrough: ["9M", "9L36"], protect: ["9M"], quickattack: ["9L15"], @@ -83386,6 +86992,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M"], grassknot: ["9M"], grasspledge: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], helpinghand: ["9M"], honeclaws: ["9L10"], @@ -83396,6 +87003,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magicalleaf: ["9M", "9L13"], mudslap: ["9M"], nastyplot: ["9M"], + petalblizzard: ["9M"], playrough: ["9M", "9L42"], protect: ["9M"], quickattack: ["9L15"], @@ -83431,7 +87039,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], darkpulse: ["9M"], disarmingvoice: ["9M"], - doubleteam: ["9M"], + doubleteam: ["9M", "9L1"], endure: ["9M"], energyball: ["9M", "9L42"], facade: ["9M"], @@ -83444,11 +87052,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M"], grassknot: ["9M"], grasspledge: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M", "9L58"], helpinghand: ["9M"], honeclaws: ["9L10"], hyperbeam: ["9M"], - knockoff: ["9L52"], + knockoff: ["9M", "9L52"], + lashout: ["9M"], leafage: ["9L1"], leafstorm: ["9M", "9L64"], lowkick: ["9M"], @@ -83457,10 +87067,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudslap: ["9M"], nastyplot: ["9M"], nightslash: ["9L38"], + petalblizzard: ["9M"], playrough: ["9M", "9L47"], pollenpuff: ["9M"], powergem: ["9M"], protect: ["9M"], + psychup: ["9M"], quickattack: ["9L15"], rest: ["9M"], scratch: ["9L1"], @@ -83479,11 +87091,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunderpunch: ["9M"], toxicspikes: ["9M"], trailblaze: ["9M"], - trick: ["9M"], + trick: ["9M", "9L1"], trickroom: ["9M"], + tripleaxel: ["9M"], uturn: ["9M", "9L24"], worryseed: ["9L29"], }, @@ -83494,7 +87108,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L12"], bodyslam: ["9M"], crunch: ["9M"], - curse: ["9E"], + curse: ["9M", "9E"], dig: ["9M"], disarmingvoice: ["9M"], ember: ["9L1"], @@ -83518,7 +87132,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { overheat: ["9M"], protect: ["9M"], rest: ["9M"], - roar: ["9L25"], + roar: ["9M", "9L25"], round: ["9L7"], seedbomb: ["9M"], slackoff: ["9E"], @@ -83529,6 +87143,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M"], tackle: ["9L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thunderfang: ["9M"], willowisp: ["9M"], @@ -83541,9 +87156,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L12"], bodyslam: ["9M"], crunch: ["9M"], + curse: ["9M"], dig: ["9M"], disarmingvoice: ["9M"], ember: ["9L1"], + encore: ["9M"], endure: ["9M"], facade: ["9M"], fireblast: ["9M", "9L47"], @@ -83564,7 +87181,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { overheat: ["9M"], protect: ["9M"], rest: ["9M"], - roar: ["9L28"], + roar: ["9M", "9L28"], round: ["9L10"], seedbomb: ["9M"], sleeptalk: ["9M"], @@ -83574,6 +87191,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M"], tackle: ["9L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thunderfang: ["9M"], willowisp: ["9M", "9L42"], @@ -83583,10 +87201,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, skeledirge: { learnset: { + alluringvoice: ["9M"], bite: ["9L15"], blastburn: ["9M"], bodyslam: ["9M"], crunch: ["9M"], + curse: ["9M"], dig: ["9M"], disarmingvoice: ["9M"], earthpower: ["9M"], @@ -83603,6 +87223,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "9L32"], flareblitz: ["9M"], gigaimpact: ["9M"], + heatcrash: ["9M"], heatwave: ["9M"], helpinghand: ["9M"], hex: ["9M", "9L47"], @@ -83616,11 +87237,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightshade: ["9M"], outrage: ["9M"], overheat: ["9M", "9L64"], + poltergeist: ["9M"], protect: ["9M"], rest: ["9M"], - roar: ["9L28"], + roar: ["9M", "9L28"], round: ["9L10"], scaryface: ["9M", "9L12"], + scorchingsands: ["9M"], seedbomb: ["9M"], shadowball: ["9M", "9L38"], shadowclaw: ["9M"], @@ -83633,10 +87256,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M"], tackle: ["9L1"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thunderfang: ["9M"], torchsong: ["9L0"], willowisp: ["9M", "9L47"], + yawn: ["9L1"], zenheadbutt: ["9M"], }, }, @@ -83667,16 +87292,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mistyterrain: ["9M"], pound: ["9L1"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rapidspin: ["9E"], rest: ["9M"], roost: ["9E"], + sleeptalk: ["9M"], + substitute: ["9M"], surf: ["9M"], swift: ["9M"], takedown: ["9M"], terablast: ["9M"], watergun: ["9L1"], waterpledge: ["9M"], + whirlpool: ["9M"], wingattack: ["9L10"], workup: ["9L7"], }, @@ -83697,7 +87326,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M"], endure: ["9M"], facade: ["9M"], - featherdance: ["9L48"], + featherdance: ["9M", "9L48"], + flipturn: ["9M"], focusenergy: ["9L32"], growl: ["9L1"], helpinghand: ["9M"], @@ -83708,15 +87338,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mistyterrain: ["9M"], pound: ["9L1"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], surf: ["9M"], swift: ["9M"], takedown: ["9M"], terablast: ["9M"], + tripleaxel: ["9M"], watergun: ["9L1"], waterpledge: ["9M"], waterpulse: ["9M", "9L17"], + whirlpool: ["9M"], wingattack: ["9L10"], workup: ["9L7"], }, @@ -83737,14 +87372,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M"], chillingwater: ["9M"], closecombat: ["9M", "9L58"], + coaching: ["9M"], counter: ["9L1"], disarmingvoice: ["9M"], doublehit: ["9L1"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], - featherdance: ["9L52"], + featherdance: ["9M", "9L52"], fling: ["9M"], + flipturn: ["9M"], focusenergy: ["9L32"], gigaimpact: ["9M"], growl: ["9L1"], @@ -83755,6 +87393,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], icespinner: ["9M"], icywind: ["9M"], + knockoff: ["9M"], liquidation: ["9M", "9L47"], lowkick: ["9M"], lowsweep: ["9M", "9L17"], @@ -83762,6 +87401,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mistyterrain: ["9M"], pound: ["9L1"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], reversal: ["9M"], @@ -83773,11 +87413,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], + tripleaxel: ["9M"], + upperhand: ["9M"], uturn: ["9M"], watergun: ["9L1"], waterpledge: ["9M"], waterpulse: ["9M", "9L17"], wavecrash: ["9L64"], + whirlpool: ["9M"], wingattack: ["9L10"], workup: ["9L7"], }, @@ -83788,19 +87431,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M"], bulletseed: ["9M"], chillingwater: ["9M"], - covet: ["9L15"], - dig: ["9M", "9L17"], + covet: ["9L15", "9S0"], + curse: ["9M"], + dig: ["9M", "9L17", "9S0"], disarmingvoice: ["9M", "9L5"], - doubleedge: ["9L35"], + doubleedge: ["9M", "9L35"], echoedvoice: ["9L8"], - endeavor: ["9E"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], headbutt: ["9L21"], helpinghand: ["9M"], hypervoice: ["9M"], ironhead: ["9M"], - mudshot: ["9M", "9L12"], + mudshot: ["9M", "9L12", "9S0"], mudslap: ["9M"], playrough: ["9M"], protect: ["9M"], @@ -83813,18 +87457,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stuffcheeks: ["9E"], substitute: ["9M"], sunnyday: ["9M"], + superfang: ["9M"], swallow: ["9E"], tackle: ["9L1"], tailwhip: ["9L1"], takedown: ["9M", "9L27"], - terablast: ["9M"], + terablast: ["9M", "9S0"], thief: ["9M"], trailblaze: ["9M"], - uproar: ["9L32"], + uproar: ["9M", "9L32"], workup: ["9L30"], yawn: ["9L24"], zenheadbutt: ["9M"], }, + eventData: [ + {generation: 9, level: 15, gender: "M", isHidden: true, moves: ["terablast", "mudshot", "covet", "dig"], pokeball: "cherishball"}, + ], }, oinkologne: { learnset: { @@ -83835,20 +87483,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["9M"], chillingwater: ["9M"], covet: ["9L15"], + curse: ["9M"], dig: ["9M", "9L17"], disarmingvoice: ["9M", "9L5"], - doubleedge: ["9L42"], + doubleedge: ["9M", "9L42"], earthpower: ["9M", "9L48"], echoedvoice: ["9L8"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M"], facade: ["9M"], gigaimpact: ["9M"], headbutt: ["9L23"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], ironhead: ["9M"], + lashout: ["9M"], mudshot: ["9M", "9L12"], mudslap: ["9M"], playrough: ["9M"], @@ -83860,13 +87512,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M"], substitute: ["9M"], sunnyday: ["9M"], + superfang: ["9M"], tackle: ["9L1"], tailwhip: ["9L1"], takedown: ["9M", "9L26"], terablast: ["9M"], thief: ["9M"], trailblaze: ["9M"], - uproar: ["9L38"], + uproar: ["9M", "9L38"], workup: ["9L34"], yawn: ["9L27"], zenheadbutt: ["9M"], @@ -83881,20 +87534,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulletseed: ["9M"], chillingwater: ["9M"], covet: ["9L12"], + curse: ["9M"], dig: ["9M", "9L15"], disarmingvoice: ["9M", "9L3"], - doubleedge: ["9L39"], + doubleedge: ["9M", "9L39"], earthpower: ["9M", "9L45"], echoedvoice: ["9L6"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M"], facade: ["9M"], gigaimpact: ["9M"], headbutt: ["9L17"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], ironhead: ["9M"], + lashout: ["9M"], mudshot: ["9M", "9L9"], mudslap: ["9M"], playrough: ["9M"], @@ -83906,13 +87563,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M"], substitute: ["9M"], sunnyday: ["9M"], + superfang: ["9M"], tackle: ["9L1"], tailwhip: ["9L1"], takedown: ["9M", "9L28"], terablast: ["9M"], thief: ["9M"], trailblaze: ["9M"], - uproar: ["9L34"], + uproar: ["9M", "9L34"], workup: ["9L30"], yawn: ["9L23"], zenheadbutt: ["9M"], @@ -83923,7 +87581,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["9L8"], block: ["9L18"], bodyslam: ["9M"], - bugbite: ["9L14"], + bugbite: ["9M", "9L14"], bugbuzz: ["9M"], bulletseed: ["9M"], circlethrow: ["9L36"], @@ -83937,8 +87595,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M"], grassknot: ["9M"], headbutt: ["9L25"], + knockoff: ["9M"], leechlife: ["9M"], - lunge: ["9E"], + lunge: ["9M", "9E"], memento: ["9E"], poisonjab: ["9M"], pounce: ["9M"], @@ -83946,7 +87605,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M"], shadowclaw: ["9M"], - skittersmack: ["9L44"], + skittersmack: ["9M", "9L44"], sleeptalk: ["9M"], spikes: ["9M"], stickyweb: ["9L29"], @@ -83959,7 +87618,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["9L40"], + throatchop: ["9M", "9L40"], toxicspikes: ["9M"], trailblaze: ["9M"], xscissor: ["9M"], @@ -83972,11 +87631,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["9L19"], bodyslam: ["9M"], brickbreak: ["9M"], - bugbite: ["9L14"], + bugbite: ["9M", "9L14"], bugbuzz: ["9M"], bulletseed: ["9M"], circlethrow: ["9L41"], counter: ["9L24"], + electroweb: ["9M"], endure: ["9M"], facade: ["9M"], falseswipe: ["9M"], @@ -83987,8 +87647,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M"], grassknot: ["9M"], headbutt: ["9L28"], + knockoff: ["9M"], leechlife: ["9M"], lowkick: ["9M"], + lunge: ["9M"], + painsplit: ["9M"], poisonjab: ["9M"], pounce: ["9M"], protect: ["9M"], @@ -83999,7 +87662,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], shadowclaw: ["9M"], silktrap: ["9L0"], - skittersmack: ["9L49"], + skittersmack: ["9M", "9L49"], sleeptalk: ["9M"], spikes: ["9M"], stickyweb: ["9L33"], @@ -84012,9 +87675,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["9L45"], + throatchop: ["9M", "9L45"], toxicspikes: ["9M"], trailblaze: ["9M"], + upperhand: ["9M"], uturn: ["9M"], xscissor: ["9M"], }, @@ -84024,7 +87688,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M", "9L30"], assurance: ["9L9"], astonish: ["9L6"], - bugbite: ["9L22"], + bugbite: ["9M", "9L22"], bugbuzz: ["9M"], counter: ["9E"], doublekick: ["9L11"], @@ -84039,7 +87703,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M"], screech: ["9L14"], - skittersmack: ["9E"], + skittersmack: ["9M", "9E"], sleeptalk: ["9M"], strugglebug: ["9M", "9L4"], substitute: ["9M"], @@ -84063,10 +87727,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { axekick: ["9L53"], bounce: ["9L48"], brickbreak: ["9M"], - bugbite: ["9L22"], + bugbite: ["9M", "9L22"], bugbuzz: ["9M"], darkpulse: ["9M"], detect: ["9L1"], + doubleedge: ["9M"], doublekick: ["9L11"], endure: ["9M", "9L18"], facade: ["9M"], @@ -84074,11 +87739,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firstimpression: ["9L44"], fling: ["9M"], gigaimpact: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], leechlife: ["9M"], leer: ["9L1"], lowkick: ["9M", "9L1"], lowsweep: ["9M"], - lunge: ["9L0"], + lunge: ["9M", "9L0"], pounce: ["9M"], protect: ["9M"], raindance: ["9M"], @@ -84086,7 +87753,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reversal: ["9M"], scaryface: ["9M"], screech: ["9L14"], + skittersmack: ["9M"], sleeptalk: ["9M"], + spite: ["9M"], strugglebug: ["9M", "9L4"], substitute: ["9M"], suckerpunch: ["9L40"], @@ -84097,7 +87766,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["9L36"], + throatchop: ["9M", "9L36"], trailblaze: ["9M"], uturn: ["9M"], xscissor: ["9M"], @@ -84105,7 +87774,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, rellor: { learnset: { - bugbite: ["9L20"], + bugbite: ["9M", "9L20"], bugbuzz: ["9M"], cosmicpower: ["9E"], defensecurl: ["9L1"], @@ -84116,7 +87785,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gunkshot: ["9M"], irondefense: ["9M"], leechlife: ["9M"], - lunge: ["9L35"], + lunge: ["9M", "9L35"], memento: ["9E"], mudshot: ["9M", "9L15"], mudslap: ["9M"], @@ -84127,6 +87796,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M"], rollout: ["9L11"], sandattack: ["9L4"], + skittersmack: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], strugglebug: ["9M", "9L7"], @@ -84135,13 +87805,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M", "9L24"], terablast: ["9M"], thief: ["9M"], - weatherball: ["9E"], + weatherball: ["9M", "9E"], xscissor: ["9M"], }, }, rabsca: { learnset: { - bugbite: ["9L20"], + bugbite: ["9M", "9L20"], bugbuzz: ["9M", "9L45"], calmmind: ["9M"], confuseray: ["9M"], @@ -84153,10 +87823,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { electroball: ["9M"], endure: ["9M"], energyball: ["9M"], + expandingforce: ["9M"], extrasensory: ["9L29"], facade: ["9M"], fling: ["9M"], + futuresight: ["9M"], gigaimpact: ["9M"], + gravity: ["9M"], guardswap: ["9L40"], gunkshot: ["9M"], hyperbeam: ["9M"], @@ -84164,17 +87837,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M"], leechlife: ["9M"], lightscreen: ["9M"], - lunge: ["9L35"], + lunge: ["9M", "9L35"], mudshot: ["9M"], mudslap: ["9M"], + poltergeist: ["9M"], pounce: ["9M"], powergem: ["9M"], powerswap: ["9L40"], protect: ["9M"], psybeam: ["9M", "9L15"], psychic: ["9M", "9L50"], + psychicnoise: ["9M"], psychicterrain: ["9M"], - psychup: ["9L1"], + psychup: ["9M", "9L1"], psyshock: ["9M"], raindance: ["9M"], reflect: ["9M"], @@ -84187,6 +87862,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sandstorm: ["9M"], shadowball: ["9M"], skillswap: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], speedswap: ["9L40"], @@ -84200,6 +87876,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], trick: ["9M"], trickroom: ["9M"], + weatherball: ["9M"], xscissor: ["9M"], zenheadbutt: ["9M"], }, @@ -84215,7 +87892,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { destinybond: ["9E"], dig: ["9M", "9L16"], disable: ["9E"], - doubleedge: ["9L52"], + doubleedge: ["9M", "9L52"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], firefang: ["9M"], @@ -84230,13 +87908,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M"], mudslap: ["9M"], nightshade: ["9M"], + painsplit: ["9M"], phantomforce: ["9M", "9L41"], playrough: ["9M", "9L32"], + poltergeist: ["9M"], protect: ["9M"], psychicfangs: ["9M"], raindance: ["9M"], rest: ["9M", "9L24"], - roar: ["9L9"], + roar: ["9M", "9L9"], sandstorm: ["9M"], scaryface: ["9M"], shadowball: ["9M"], @@ -84253,6 +87933,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], thunderfang: ["9M"], trick: ["9M"], + uproar: ["9M"], yawn: ["9E"], }, }, @@ -84265,7 +87946,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9M"], crunch: ["9M", "9L28"], dig: ["9M", "9L16"], - doubleedge: ["9L58"], + doubleedge: ["9M", "9L58"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], firefang: ["9M"], @@ -84281,13 +87963,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { mudshot: ["9M"], mudslap: ["9M"], nightshade: ["9M"], + painsplit: ["9M"], phantomforce: ["9M", "9L46"], playrough: ["9M", "9L36"], + poltergeist: ["9M"], protect: ["9M"], psychicfangs: ["9M"], raindance: ["9M"], rest: ["9M", "9L24"], - roar: ["9L9"], + roar: ["9M", "9L9"], sandstorm: ["9M"], scaryface: ["9M"], shadowball: ["9M"], @@ -84303,6 +87987,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], thunderfang: ["9M"], trick: ["9M"], + uproar: ["9M"], willowisp: ["9M"], }, }, @@ -84350,7 +88035,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], trick: ["9M"], trickroom: ["9M"], - uproar: ["9L34"], + uproar: ["9M", "9L34"], uturn: ["9M"], zenheadbutt: ["9M"], }, @@ -84368,11 +88053,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confusion: ["9L5"], dazzlinggleam: ["9M", "9L43"], disarmingvoice: ["9M", "9L11"], + doubleedge: ["9M"], drillpeck: ["9L1"], endure: ["9M"], energyball: ["9M"], + expandingforce: ["9M"], facade: ["9M"], - featherdance: ["9L1"], + featherdance: ["9M", "9L1"], flashcannon: ["9M"], foulplay: ["9M"], gigaimpact: ["9M"], @@ -84394,6 +88081,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M", "9L19"], psychic: ["9M", "9L49"], psychicterrain: ["9M"], + psychup: ["9M"], psyshock: ["9M"], quickattack: ["9L15"], raindance: ["9M"], @@ -84413,7 +88101,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], trick: ["9M"], trickroom: ["9M"], - uproar: ["9L34"], + uproar: ["9M", "9L34"], uturn: ["9M"], zenheadbutt: ["9M"], }, @@ -84432,18 +88120,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9M"], confusion: ["9L5"], crunch: ["9M", "9L37"], + curse: ["9M"], dazzlinggleam: ["9M"], + doubleedge: ["9M"], doublehit: ["9L28"], earthquake: ["9M"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M"], + expandingforce: ["9M"], facade: ["9M"], foulplay: ["9M"], + futuresight: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], + gravity: ["9M"], growl: ["9L1"], guardswap: ["9L1"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], imprison: ["9M"], @@ -84457,11 +88152,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M", "9L19"], psychic: ["9M", "9L50"], psychicfangs: ["9M"], + psychicnoise: ["9M"], psychicterrain: ["9M"], + psychup: ["9M"], psyshock: ["9M"], raindance: ["9M"], reflect: ["9M"], rest: ["9M"], + roar: ["9M"], shadowball: ["9M"], skillswap: ["9M"], sleeptalk: ["9M"], @@ -84482,6 +88180,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trick: ["9M"], trickroom: ["9M"], twinbeam: ["9L32"], + uproar: ["9M"], zenheadbutt: ["9M"], }, }, @@ -84504,6 +88203,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M"], liquidation: ["9M", "9L40"], memento: ["9E"], + muddywater: ["9M"], mudshot: ["9M"], mudslap: ["9M", "9L4"], protect: ["9M"], @@ -84520,9 +88220,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M"], takedown: ["9M"], terablast: ["9M"], - throatchop: ["9L36"], + throatchop: ["9M", "9L36"], watergun: ["9L1"], waterpulse: ["9M", "9L20"], + whirlpool: ["9M"], wrap: ["9L8"], }, }, @@ -84545,8 +88246,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], icebeam: ["9M"], liquidation: ["9M", "9L54"], + muddywater: ["9M"], mudshot: ["9M"], mudslap: ["9M", "9L1"], + painsplit: ["9M"], protect: ["9M"], raindance: ["9M"], rest: ["9M"], @@ -84561,10 +88264,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M"], takedown: ["9M"], terablast: ["9M"], - throatchop: ["9L48"], + throatchop: ["9M", "9L48"], tripledive: ["9L30"], watergun: ["9L1"], waterpulse: ["9M", "9L20"], + whirlpool: ["9M"], wrap: ["9L1"], }, }, @@ -84577,9 +88281,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M"], chillingwater: ["9M"], crunch: ["9M"], - curse: ["9E"], + curse: ["9M", "9E"], dive: ["9L20"], - doubleedge: ["9L60"], + doubleedge: ["9M", "9L60"], earthquake: ["9M"], endure: ["9M"], facade: ["9M"], @@ -84627,10 +88331,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], chillingwater: ["9M"], crunch: ["9M", "9L50"], + doubleedge: ["9M"], drillrun: ["9M"], + endeavor: ["9M"], endure: ["9M"], + expandingforce: ["9M"], filletaway: ["9L30"], finalgambit: ["9L55"], + flipturn: ["9M"], focusenergy: ["9L15"], gigaimpact: ["9M"], hydropump: ["9M"], @@ -84640,6 +88348,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icywind: ["9M"], liquidation: ["9M", "9L45"], nightslash: ["9L35"], + painsplit: ["9M"], pluck: ["9L7"], protect: ["9M"], psychic: ["9M"], @@ -84649,6 +88358,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], recover: ["9E"], rest: ["9M"], + scaleshot: ["9M"], slash: ["9L20"], sleeptalk: ["9M"], snowscape: ["9M"], @@ -84687,7 +88397,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M"], fling: ["9M"], focusenergy: ["9L10"], - haze: ["9E"], + haze: ["9M", "9E"], helpinghand: ["9M"], hydropump: ["9M", "9L50"], icebeam: ["9M"], @@ -84695,6 +88405,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { liquidation: ["9M"], mist: ["9L44"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], sleeptalk: ["9M"], @@ -84731,15 +88442,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { drainingkiss: ["9M"], drainpunch: ["9M"], encore: ["9M", "9L34"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], fling: ["9M"], - flipturn: ["9L0"], + flipturn: ["9M", "9L0"], focusblast: ["9M"], focusenergy: ["9L10"], - focuspunch: ["9L55"], + focuspunch: ["9M", "9L55"], gigaimpact: ["9M"], grassknot: ["9M"], + hardpress: ["9M"], + haze: ["9M", "9S0"], helpinghand: ["9M"], hydropump: ["9M", "9L50"], hyperbeam: ["9M"], @@ -84748,11 +88462,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M"], icywind: ["9M"], ironhead: ["9M"], - jetpunch: ["9L1"], + jetpunch: ["9L1", "9S0"], liquidation: ["9M"], mist: ["9L44"], outrage: ["9M"], - protect: ["9M"], + protect: ["9M", "9S0"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], reversal: ["9M"], @@ -84764,12 +88479,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], + throatchop: ["9M"], waterfall: ["9M"], watergun: ["9L1"], waterpulse: ["9M"], - wavecrash: ["9L61"], + wavecrash: ["9L61", "9S0"], + whirlpool: ["9M"], zenheadbutt: ["9M"], }, + eventData: [ + {generation: 9, level: 50, gender: "F", nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 17, spd: 31, spe: 31}, moves: ["jetpunch", "wavecrash", "haze", "protect"], pokeball: "cherishball"}, + ], }, smoliv: { learnset: { @@ -84797,6 +88517,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seedbomb: ["9M", "9L27"], sleeptalk: ["9M"], solarbeam: ["9M"], + solarblade: ["9M"], strengthsap: ["9E"], substitute: ["9M"], sunnyday: ["9M"], @@ -84807,7 +88528,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], terrainpulse: ["9L38"], trailblaze: ["9M"], - weatherball: ["9E"], + weatherball: ["9M", "9E"], }, }, dolliv: { @@ -84835,6 +88556,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seedbomb: ["9M", "9L29"], sleeptalk: ["9M"], solarbeam: ["9M"], + solarblade: ["9M"], substitute: ["9M"], sunnyday: ["9M"], sweetscent: ["9L1"], @@ -84843,11 +88565,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], terrainpulse: ["9L42"], trailblaze: ["9M"], + weatherball: ["9M"], }, }, arboliva: { learnset: { absorb: ["9L5"], + alluringvoice: ["9M"], bulletseed: ["9M"], charm: ["9M"], dazzlinggleam: ["9M"], @@ -84873,10 +88597,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megadrain: ["9L20"], metronome: ["9M"], mirrorcoat: ["9L1"], - petalblizzard: ["9L52"], + petalblizzard: ["9M", "9L52"], petaldance: ["9L58"], pollenpuff: ["9M"], protect: ["9M"], + psychup: ["9M"], razorleaf: ["9L10"], reflect: ["9M"], rest: ["9M"], @@ -84884,6 +88609,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seedbomb: ["9M", "9L29"], sleeptalk: ["9M"], solarbeam: ["9M"], + solarblade: ["9M"], substitute: ["9M"], sunnyday: ["9M"], sweetscent: ["9L1"], @@ -84892,6 +88618,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], terrainpulse: ["9L46"], trailblaze: ["9M"], + weatherball: ["9M"], }, }, capsakid: { @@ -84899,11 +88626,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L4"], bulletseed: ["9M", "9L21"], crunch: ["9M", "9L38"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M"], facade: ["9M"], gigadrain: ["9M"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L10"], headbutt: ["9L24"], @@ -84926,6 +88655,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M"], substitute: ["9M"], sunnyday: ["9M", "9L17"], + superfang: ["9M"], takedown: ["9M"], terablast: ["9M"], thief: ["9M"], @@ -84938,7 +88668,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { bite: ["9L4"], bulletseed: ["9M", "9L21"], + burningjealousy: ["9M"], crunch: ["9M", "9L38"], + endeavor: ["9M"], endure: ["9M"], energyball: ["9M"], facade: ["9M"], @@ -84948,11 +88680,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L10"], headbutt: ["9L24"], helpinghand: ["9M"], hyperbeam: ["9M"], + lashout: ["9M"], leafage: ["9L1"], leafstorm: ["9M"], leer: ["9L1"], @@ -84970,7 +88704,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M"], substitute: ["9M"], sunnyday: ["9M", "9L17"], + superfang: ["9M"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M"], trailblaze: ["9M"], @@ -84982,7 +88718,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tadbulb: { learnset: { acidspray: ["9M"], - charge: ["9L17"], + charge: ["9M", "9L17"], chargebeam: ["9M"], chillingwater: ["9M"], confuseray: ["9M"], @@ -84990,11 +88726,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "9L40"], electroball: ["9M"], + electroweb: ["9M"], endure: ["9M"], flail: ["9L25"], hypervoice: ["9M"], lightscreen: ["9M"], - muddywater: ["9E"], + muddywater: ["9M", "9E"], mudshot: ["9M", "9L24"], mudslap: ["9M", "9L1"], paraboliccharge: ["9E"], @@ -85017,7 +88754,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { voltswitch: ["9M"], watergun: ["9L11"], waterpulse: ["9M"], - weatherball: ["9L36"], + weatherball: ["9M", "9L36"], wildcharge: ["9M"], zapcannon: ["9L50"], }, @@ -85025,7 +88762,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bellibolt: { learnset: { acidspray: ["9M"], - charge: ["9L17"], + charge: ["9M", "9L17"], chargebeam: ["9M"], chillingwater: ["9M"], confuseray: ["9M"], @@ -85033,12 +88770,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "9L40"], electroball: ["9M"], + electroweb: ["9M"], endure: ["9M"], flail: ["9L25"], gigaimpact: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], lightscreen: ["9M"], + muddywater: ["9M"], mudshot: ["9M", "9L24"], mudslap: ["9M", "9L1"], protect: ["9M"], @@ -85050,6 +88789,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { spark: ["9L21"], substitute: ["9M"], suckerpunch: ["9L45"], + supercellslam: ["9M"], swift: ["9M"], tackle: ["9L1"], terablast: ["9M"], @@ -85057,10 +88797,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M"], thundershock: ["9L7"], thunderwave: ["9M"], + toxic: ["9M"], voltswitch: ["9M"], watergun: ["9L11"], waterpulse: ["9M"], - weatherball: ["9L36"], + weatherball: ["9M", "9L36"], wildcharge: ["9M"], zapcannon: ["9L50"], }, @@ -85071,21 +88812,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["9L10"], bodyslam: ["9M"], bulldoze: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], endure: ["9M"], facade: ["9M"], flashcannon: ["9M"], gunkshot: ["9M", "9L50"], - gyroball: ["9L17"], - haze: ["9E"], + gyroball: ["9M", "9L17"], + haze: ["9M", "9E"], headbutt: ["9L21"], irondefense: ["9M"], ironhead: ["9M", "9L28"], lick: ["9L1"], + metalsound: ["9M"], partingshot: ["9E"], poisongas: ["9L1"], poisonjab: ["9M", "9L36"], protect: ["9M"], raindance: ["9M"], + rest: ["9M"], sandstorm: ["9M"], scaryface: ["9M"], screech: ["9L25"], @@ -85093,6 +88838,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], sludge: ["9L13"], sludgebomb: ["9M"], + sludgewave: ["9M"], smog: ["9L4"], spinout: ["9L46"], steelbeam: ["9M"], @@ -85104,9 +88850,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], torment: ["9E"], - toxic: ["9E"], + toxic: ["9M", "9E"], toxicspikes: ["9M"], - uproar: ["9L41"], + uproar: ["9M", "9L41"], venoshock: ["9M"], zenheadbutt: ["9M"], }, @@ -85117,22 +88863,30 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { assurance: ["9L10"], bodyslam: ["9M"], bulldoze: ["9M"], + curse: ["9M"], + doubleedge: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], flashcannon: ["9M"], gigaimpact: ["9M"], gunkshot: ["9M", "9L58"], - gyroball: ["9L17"], + gyroball: ["9M", "9L17"], + hardpress: ["9M"], + haze: ["9M"], headbutt: ["9L21"], heavyslam: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], irondefense: ["9M"], - ironhead: ["9M", "9L28"], + ironhead: ["9M", "9L28", "9S0"], + lashout: ["9M"], lick: ["9L1"], magnetrise: ["9L1"], + metalsound: ["9M"], overheat: ["9M"], poisongas: ["9L1"], - poisonjab: ["9M", "9L36"], + poisonjab: ["9M", "9L36", "9S0"], protect: ["9M"], raindance: ["9M"], rest: ["9M"], @@ -85143,21 +88897,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], sludge: ["9L13"], sludgebomb: ["9M"], + sludgewave: ["9M"], smog: ["9L4"], spinout: ["9L52"], steelbeam: ["9M"], substitute: ["9M"], sunnyday: ["9M"], - swagger: ["9L32"], + swagger: ["9L32", "9S0"], takedown: ["9M"], taunt: ["9M", "9L7"], - terablast: ["9M"], + temperflare: ["9M"], + terablast: ["9M", "9S0"], thief: ["9M"], + toxic: ["9M"], toxicspikes: ["9M"], - uproar: ["9L46"], + uproar: ["9M", "9L46"], venoshock: ["9M"], zenheadbutt: ["9M"], }, + eventData: [ + {generation: 9, level: 50, gender: "F", nature: "Naughty", abilities: ["clearbody"], ivs: {hp: 20, atk: 31, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["ironhead", "swagger", "poisonjab", "terablast"], pokeball: "healball"}, + ], }, orthworm: { learnset: { @@ -85165,8 +88925,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], bulldoze: ["9M", "9L16"], coil: ["9E"], - curse: ["9E"], + curse: ["9M", "9E"], dig: ["9M", "9L30"], + doubleedge: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L47"], endure: ["9M"], @@ -85177,11 +88938,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headbutt: ["9S0"], heavyslam: ["9M"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], irondefense: ["9M", "9L38"], ironhead: ["9M", "9L21"], irontail: ["9L43", "9S0"], metalburst: ["9E"], + metalsound: ["9M"], mudshot: ["9M"], mudslap: ["9M", "9L7"], protect: ["9M"], @@ -85190,9 +88953,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockslide: ["9M"], rocktomb: ["9M"], sandstorm: ["9M", "9L34", "9S0"], + sandtomb: ["9M"], shedtail: ["9L52"], sleeptalk: ["9M"], - smackdown: ["9L12"], + smackdown: ["9M", "9L12"], spikes: ["9M"], stealthrock: ["9M"], steelbeam: ["9M"], @@ -85221,6 +88985,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { copycat: ["9L41"], crunch: ["9M"], dig: ["9M"], + doubleedge: ["9M"], doublehit: ["9L14"], echoedvoice: ["9L5"], encore: ["9M", "9L22"], @@ -85246,7 +89011,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], substitute: ["9M"], sunnyday: ["9M"], - superfang: ["9L11"], + superfang: ["9M", "9L11"], swift: ["9M"], switcheroo: ["9E"], takedown: ["9M"], @@ -85264,6 +89029,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aerialace: ["9M"], agility: ["9M"], babydolleyes: ["9L1"], + batonpass: ["9M"], beatup: ["9L41"], bulletseed: ["9M", "9L18"], charm: ["9M", "9L37"], @@ -85271,6 +89037,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { copycat: ["9L46"], crunch: ["9M"], dig: ["9M"], + doubleedge: ["9M"], doublehit: ["9L14"], echoedvoice: ["9L5"], encore: ["9M", "9L22"], @@ -85298,59 +89065,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], substitute: ["9M"], sunnyday: ["9M"], - superfang: ["9L11"], - swift: ["9M"], - takedown: ["9M"], - taunt: ["9M"], - terablast: ["9M"], - thief: ["9M"], - thunderwave: ["9M"], - tidyup: ["9L1"], - trailblaze: ["9M"], - uturn: ["9M"], - waterpulse: ["9M"], - }, - }, - mausholdfour: { - learnset: { - aerialace: ["9M"], - agility: ["9M"], - babydolleyes: ["9L1"], - beatup: ["9L41"], - bulletseed: ["9M", "9L18"], - charm: ["9M", "9L37"], - chillingwater: ["9M"], - copycat: ["9L46"], - crunch: ["9M"], - dig: ["9M"], - doublehit: ["9L14"], - echoedvoice: ["9L5"], - encore: ["9M", "9L22"], - endure: ["9M"], - facade: ["9M"], - faketears: ["9M"], - followme: ["9L1"], - gigaimpact: ["9M"], - grassknot: ["9M"], - helpinghand: ["9M", "9L8"], - hyperbeam: ["9M"], - hypervoice: ["9M", "9L33"], - lowkick: ["9M"], - lowsweep: ["9M"], - mudshot: ["9M"], - mudslap: ["9M"], - playrough: ["9M", "9L29"], - populationbomb: ["9L53"], - pound: ["9L1"], - protect: ["9M"], - raindance: ["9M"], - rest: ["9M"], - seedbomb: ["9M"], - shadowclaw: ["9M"], - sleeptalk: ["9M"], - substitute: ["9M"], - sunnyday: ["9M"], - superfang: ["9L11"], + superfang: ["9M", "9L11"], swift: ["9M"], takedown: ["9M"], taunt: ["9M"], @@ -85375,7 +89090,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M"], charm: ["9M"], chillingwater: ["9M"], - doubleedge: ["9L49"], + curse: ["9M"], + doubleedge: ["9M", "9L49"], earthquake: ["9M"], echoedvoice: ["9L9"], endure: ["9M"], @@ -85385,6 +89101,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { growl: ["9L6"], heavyslam: ["9M"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], icebeam: ["9M"], @@ -85392,7 +89109,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { iceshard: ["9L12"], icespinner: ["9M", "9L44"], iciclecrash: ["9E"], + iciclespear: ["9M"], icywind: ["9M"], + knockoff: ["9M"], liquidation: ["9M"], playrough: ["9M"], powdersnow: ["9L1"], @@ -85413,16 +89132,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, cetitan: { learnset: { - amnesia: ["9M", "9L40"], + amnesia: ["9M", "9L40", "9S0"], avalanche: ["9M", "9L27"], blizzard: ["9M", "9L53"], bodypress: ["9M"], - bodyslam: ["9M", "9L36"], + bodyslam: ["9M", "9L36", "9S0"], bounce: ["9L31"], bulldoze: ["9M"], charm: ["9M"], chillingwater: ["9M"], - doubleedge: ["9L49"], + curse: ["9M"], + doubleedge: ["9M", "9L49", "9S0"], earthquake: ["9M"], echoedvoice: ["9L9"], endure: ["9M"], @@ -85430,16 +89150,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flail: ["9L25"], gigaimpact: ["9M"], growl: ["9L6"], + hardpress: ["9M"], heavyslam: ["9M"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], icebeam: ["9M"], icefang: ["9M"], icepunch: ["9M"], iceshard: ["9L12"], - icespinner: ["9M", "9L44"], + icespinner: ["9M", "9L44", "9S0"], + iciclespear: ["9M"], icywind: ["9M"], + knockoff: ["9M"], liquidation: ["9M"], playrough: ["9M"], powdersnow: ["9L1"], @@ -85455,6 +89179,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], waterpulse: ["9M"], }, + eventData: [ + {generation: 9, moves: ["bodyslam", "amnesia", "icespinner", "doubleedge"]}, + ], }, frigibax: { learnset: { @@ -85479,7 +89206,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "9L40"], icefang: ["9M", "9L29"], iciclecrash: ["9L48"], - iciclespear: ["9E"], + iciclespear: ["9M", "9E"], icywind: ["9M", "9L6"], leer: ["9L1"], outrage: ["9M"], @@ -85517,6 +89244,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "9L45"], icefang: ["9M", "9L29"], iciclecrash: ["9L55"], + iciclespear: ["9M"], icywind: ["9M", "9L6"], ironhead: ["9M"], leer: ["9L1"], @@ -85542,13 +89270,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M"], bodypress: ["9M"], bodyslam: ["9M"], - breakingswipe: ["9L1"], + breakingswipe: ["9M", "9L1"], brickbreak: ["9M"], bulldoze: ["9M"], crunch: ["9M", "9L55"], dig: ["9M"], + doubleedge: ["9M"], dracometeor: ["9M"], dragonbreath: ["9L12"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L35"], dragondance: ["9M"], dragonpulse: ["9M"], @@ -85559,13 +89289,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { falseswipe: ["9M"], focusenergy: ["9L18"], gigaimpact: ["9M"], - glaiverush: ["9L0"], + glaiverush: ["9L0", "9S0"], helpinghand: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], icebeam: ["9M", "9L48"], icefang: ["9M", "9L29"], - iceshard: ["9L1"], + iceshard: ["9L1", "9S0"], iciclecrash: ["9L62"], + iciclespear: ["9M", "9S0"], icywind: ["9M", "9L6"], ironhead: ["9M"], leer: ["9L1"], @@ -85573,6 +89305,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M"], raindance: ["9M"], rest: ["9M"], + scaleshot: ["9M", "9S0"], scaryface: ["9M"], sleeptalk: ["9M"], snowscape: ["9M", "9L1"], @@ -85585,6 +89318,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderfang: ["9M"], zenheadbutt: ["9M"], }, + eventData: [ + {generation: 9, level: 54, moves: ["glaiverush", "scaleshot", "iciclespear", "iceshard"], pokeball: "cherishball"}, + ], }, tatsugiri: { learnset: { @@ -85592,6 +89328,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chillingwater: ["9M"], counter: ["9E"], dracometeor: ["9M"], + dragoncheer: ["9M"], dragondance: ["9M"], dragonpulse: ["9M", "9L52", "9S0"], endure: ["9M"], @@ -85602,9 +89339,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hydropump: ["9M"], hyperbeam: ["9M"], icywind: ["9M", "9S0"], + lunge: ["9M"], memento: ["9L34"], mirrorcoat: ["9L47"], - muddywater: ["9L39", "9S0"], + muddywater: ["9M", "9L39", "9S0"], nastyplot: ["9M", "9L43"], outrage: ["9M"], protect: ["9M"], @@ -85621,11 +89359,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], watergun: ["9L1"], waterpulse: ["9M", "9L17"], + whirlpool: ["9M"], }, eventData: [ {generation: 9, level: 57, gender: "M", nature: "Quiet", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["muddywater", "icywind", "taunt", "dragonpulse"]}, ], }, + tatsugiristretchy: { + learnset: { + celebrate: ["9S0"], + dracometeor: ["9S0"], + helpinghand: ["9S0"], + muddywater: ["9S0"], + }, + eventData: [ + {generation: 9, level: 50, moves: ["dracometeor", "muddywater", "helpinghand", "celebrate"], pokeball: "cherishball"}, + ], + }, cyclizar: { learnset: { acrobatics: ["9M"], @@ -85634,14 +89384,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aquatail: ["9E"], bite: ["9L23"], bodyslam: ["9M"], - breakingswipe: ["9L14"], + breakingswipe: ["9M", "9L14"], crunch: ["9M"], - doubleedge: ["9L51"], + doubleedge: ["9M", "9L51"], dracometeor: ["9M"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L36"], dragonpulse: ["9M", "9L45"], dragonrush: ["9L57"], dragontail: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], firefang: ["9M"], @@ -85652,7 +89404,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icespinner: ["9M"], ironhead: ["9M"], irontail: ["9E"], - knockoff: ["9E"], + knockoff: ["9M", "9E"], mudshot: ["9M"], mudslap: ["9M"], outrage: ["9M"], @@ -85663,19 +89415,23 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rapidspin: ["9L7"], rest: ["9M"], + scaleshot: ["9M"], shedtail: ["9L31"], shiftgear: ["9L40"], sleeptalk: ["9M"], substitute: ["9M"], sunnyday: ["9M"], + supercellslam: ["9M"], tackle: ["9L1"], takedown: ["9M"], taunt: ["9M", "9L11"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M"], thunderbolt: ["9M"], thunderfang: ["9M"], trailblaze: ["9M"], + uproar: ["9M"], uturn: ["9M", "9L27"], wildcharge: ["9M"], }, @@ -85685,7 +89441,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M", "9L40"], batonpass: ["9M"], bite: ["9L19"], - charge: ["9L8"], + celebrate: ["9S0"], + charge: ["9M", "9L8"], chargebeam: ["9M"], charm: ["9M"], crunch: ["9M"], @@ -85694,13 +89451,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M"], + electroweb: ["9M"], encore: ["9M"], endure: ["9M"], entrainment: ["9L31"], facade: ["9M"], fakeout: ["9E"], fling: ["9M"], - growl: ["9L1"], + growl: ["9L1", "9S0"], helpinghand: ["9M"], machpunch: ["9E"], metalclaw: ["9M"], @@ -85716,20 +89474,24 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { spark: ["9L23"], substitute: ["9M"], sunnyday: ["9M"], + superfang: ["9M"], sweetkiss: ["9E"], swift: ["9M"], takedown: ["9M"], - terablast: ["9M"], + terablast: ["9M", "9S0"], thief: ["9M"], thunder: ["9M"], thunderbolt: ["9M"], thunderfang: ["9M"], - thundershock: ["9L3"], + thundershock: ["9L3", "9S0"], thunderwave: ["9M", "9L27"], voltswitch: ["9M"], wildcharge: ["9M", "9L44"], wish: ["9E"], }, + eventData: [ + {generation: 9, level: 5, moves: ["thundershock", "growl", "terablast", "celebrate"], pokeball: "cherishball"}, + ], }, pawmo: { learnset: { @@ -85737,22 +89499,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { armthrust: ["9L0"], batonpass: ["9M"], bite: ["9L19"], - charge: ["9L8"], + charge: ["9M", "9L8"], chargebeam: ["9M"], charm: ["9M"], + coaching: ["9M"], crunch: ["9M"], dig: ["9M", "9L15"], discharge: ["9L42"], eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M"], + electroweb: ["9M"], encore: ["9M"], endure: ["9M"], entrainment: ["9L38"], facade: ["9M"], fling: ["9M"], + focuspunch: ["9M"], growl: ["9L1"], helpinghand: ["9M"], + knockoff: ["9M"], lowkick: ["9M"], lowsweep: ["9M"], metalclaw: ["9M"], @@ -85768,6 +89534,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { spark: ["9L23"], substitute: ["9M"], sunnyday: ["9M"], + superfang: ["9M"], swift: ["9M"], takedown: ["9M"], terablast: ["9M"], @@ -85778,6 +89545,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderpunch: ["9M"], thundershock: ["9L3"], thunderwave: ["9M", "9L27"], + upperhand: ["9M"], voltswitch: ["9M"], wildcharge: ["9M", "9L52"], }, @@ -85791,17 +89559,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodypress: ["9M"], brickbreak: ["9M"], bulkup: ["9M"], - charge: ["9L8"], + charge: ["9M", "9L8"], chargebeam: ["9M"], charm: ["9M"], closecombat: ["9M", "9L44"], + coaching: ["9M"], crunch: ["9M"], dig: ["9M", "9L15"], discharge: ["9L49"], + doubleedge: ["9M"], doubleshock: ["9L60"], eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M"], + electroweb: ["9M"], encore: ["9M"], endure: ["9M"], entrainment: ["9L39"], @@ -85809,12 +89580,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firepunch: ["9M"], fling: ["9M"], focusblast: ["9M"], + focuspunch: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], growl: ["9L1"], helpinghand: ["9M"], hyperbeam: ["9M"], icepunch: ["9M"], + knockoff: ["9M"], lowkick: ["9M"], lowsweep: ["9M"], metalclaw: ["9M"], @@ -85834,16 +89607,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { spark: ["9L23"], substitute: ["9M"], sunnyday: ["9M"], + supercellslam: ["9M"], + superfang: ["9M"], swift: ["9M"], takedown: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], thunder: ["9M"], thunderbolt: ["9M"], thunderfang: ["9M"], thunderpunch: ["9M"], thundershock: ["9L3"], thunderwave: ["9M", "9L29"], + upperhand: ["9M"], voltswitch: ["9M"], wildcharge: ["9M", "9L1"], }, @@ -85856,16 +89633,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aircutter: ["9M"], airslash: ["9M"], bravebird: ["9M"], + charge: ["9M"], chargebeam: ["9M"], discharge: ["9L43"], - dualwingbeat: ["9L27"], + dualwingbeat: ["9M", "9L27"], eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M"], - endeavor: ["9E"], + electroweb: ["9M"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], - featherdance: ["9E"], + featherdance: ["9M", "9E"], fly: ["9M"], growl: ["9L1"], hurricane: ["9M"], @@ -85889,10 +89668,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M"], thundershock: ["9L4"], thunderwave: ["9M"], - uproar: ["9L19"], + uproar: ["9M", "9L19"], uturn: ["9M"], voltswitch: ["9M", "9L37"], - weatherball: ["9E"], + weatherball: ["9M", "9E"], wildcharge: ["9M"], }, }, @@ -85904,14 +89683,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aircutter: ["9M"], airslash: ["9M"], bravebird: ["9M"], + charge: ["9M"], chargebeam: ["9M"], discharge: ["9L48"], - dualwingbeat: ["9L30"], + dualwingbeat: ["9M", "9L30"], eerieimpulse: ["9M"], electricterrain: ["9M"], electroball: ["9M", "9L0"], + electroweb: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], + featherdance: ["9M"], fly: ["9M"], gigaimpact: ["9M"], growl: ["9L1"], @@ -85927,6 +89710,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], spark: ["9L15"], substitute: ["9M"], + supercellslam: ["9M"], swift: ["9M"], tailwind: ["9M"], takedown: ["9M"], @@ -85935,9 +89719,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M"], thundershock: ["9L4"], thunderwave: ["9M"], - uproar: ["9L19"], + uproar: ["9M", "9L19"], uturn: ["9M"], voltswitch: ["9M", "9L43"], + weatherball: ["9M"], wildcharge: ["9M"], }, }, @@ -85948,12 +89733,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { aircutter: ["9M"], airslash: ["9M"], bravebird: ["9M"], + curse: ["9M"], darkpulse: ["9M"], drillrun: ["9M"], - dualwingbeat: ["9L42"], + dualwingbeat: ["9M", "9L42"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], - featherdance: ["9E"], + featherdance: ["9M", "9E"], fly: ["9M"], foulplay: ["9M"], gigaimpact: ["9M"], @@ -85963,7 +89750,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], hypervoice: ["9M"], icywind: ["9M"], - knockoff: ["9L53"], + knockoff: ["9M", "9L53"], + lashout: ["9M"], leer: ["9L1"], memento: ["9L1"], nastyplot: ["9M"], @@ -85974,7 +89762,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powergem: ["9M"], powertrip: ["9E"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], + rest: ["9M"], rockblast: ["9M"], rockslide: ["9M", "9L47"], rockthrow: ["9L11", "9S0"], @@ -86011,10 +89801,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { airslash: ["9M"], bravebird: ["9M", "9L42"], copycat: ["9L27"], - doubleedge: ["9E"], + doubleedge: ["9M", "9E"], + dualwingbeat: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M", "9L34"], faketears: ["9M"], + featherdance: ["9M"], finalgambit: ["9E"], flatter: ["9E"], fly: ["9M", "9L30"], @@ -86027,6 +89820,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hurricane: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], + lashout: ["9M"], mimic: ["9L1"], partingshot: ["9E"], peck: ["9L1"], @@ -86047,7 +89841,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M"], torment: ["9L10"], - uproar: ["9L24"], + uproar: ["9M", "9L24"], uturn: ["9M"], }, }, @@ -86066,8 +89860,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { detect: ["9L9"], doublekick: ["9L5"], doubleteam: ["9E"], + dualwingbeat: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], + featherdance: ["9M"], feint: ["9L21"], fling: ["9M"], fly: ["9M"], @@ -86078,11 +89875,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { liquidation: ["9M"], lowkick: ["9M", "9L18"], lowsweep: ["9M"], + lunge: ["9M"], megakick: ["9L39"], payback: ["9L27"], peck: ["9L1"], pounce: ["9M"], protect: ["9M"], + psychup: ["9M"], quickguard: ["9E"], rest: ["9M"], reversal: ["9M"], @@ -86096,7 +89895,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], thief: ["9M"], - throatchop: ["9L48"], + throatchop: ["9M", "9L48"], + upperhand: ["9M"], uturn: ["9M"], waterpulse: ["9M"], wideguard: ["9L44"], @@ -86113,7 +89913,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crabhammer: ["9E"], dig: ["9M"], earthpower: ["9M"], - endeavor: ["9E"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], flail: ["9L37"], @@ -86122,11 +89922,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { guillotine: ["9L56"], harden: ["9L6"], helpinghand: ["9M"], - highhorsepower: ["9L47"], + highhorsepower: ["9M", "9L47"], hyperbeam: ["9M"], irondefense: ["9M", "9L51"], - knockoff: ["9E"], + knockoff: ["9M", "9E"], metalclaw: ["9M", "9L17"], + meteorbeam: ["9M"], mudshot: ["9M"], mudslap: ["9M"], powergem: ["9M"], @@ -86142,7 +89943,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sandstorm: ["9M"], scaryface: ["9M"], shadowclaw: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M"], + smackdown: ["9M"], stealthrock: ["9M"], stompingtantrum: ["9M"], stoneedge: ["9M"], @@ -86150,8 +89953,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M"], swordsdance: ["9M", "9L33"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], trailblaze: ["9M"], visegrip: ["9L1", "9S0"], xscissor: ["9M", "9L29"], @@ -86165,7 +89970,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["9E"], bodyslam: ["9M"], bulldoze: ["9M"], - curse: ["9E"], + curse: ["9M", "9E"], dig: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L40"], @@ -86179,6 +89984,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { helpinghand: ["9M"], irondefense: ["9M", "9L20"], ironhead: ["9M"], + meteorbeam: ["9M"], mudshot: ["9M", "9L7"], powergem: ["9M", "9E"], protect: ["9M"], @@ -86190,7 +89996,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockthrow: ["9L5"], sandstorm: ["9M"], sleeptalk: ["9M"], - smackdown: ["9L10"], + smackdown: ["9M", "9L10"], stealthrock: ["9M", "9L33"], stompingtantrum: ["9M"], stoneedge: ["9M", "9L45"], @@ -86207,7 +90013,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodypress: ["9M"], bodyslam: ["9M"], bulldoze: ["9M"], + curse: ["9M"], dig: ["9M"], + doubleedge: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L45"], endure: ["9M"], @@ -86221,6 +90029,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], irondefense: ["9M", "9L20"], ironhead: ["9M"], + meteorbeam: ["9M"], mudshot: ["9M", "9L7"], powergem: ["9M"], protect: ["9M"], @@ -86233,7 +90042,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { saltcure: ["9L0"], sandstorm: ["9M"], sleeptalk: ["9M"], - smackdown: ["9L10"], + smackdown: ["9M", "9L10"], stealthrock: ["9M", "9L38"], stompingtantrum: ["9M"], stoneedge: ["9M", "9L51"], @@ -86253,7 +90062,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], brickbreak: ["9M"], bulldoze: ["9M"], + curse: ["9M"], dig: ["9M"], + doubleedge: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L49"], endure: ["9M"], @@ -86262,9 +90073,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firepunch: ["9M"], flashcannon: ["9M"], fling: ["9M"], + focuspunch: ["9M"], gigaimpact: ["9M"], + gravity: ["9M"], hammerarm: ["9L0"], harden: ["9L1"], + hardpress: ["9M"], headbutt: ["9L16"], heavyslam: ["9M", "9L44"], helpinghand: ["9M"], @@ -86272,6 +90086,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M"], irondefense: ["9M"], ironhead: ["9M"], + meteorbeam: ["9M"], mudshot: ["9M", "9L7"], powergem: ["9M"], protect: ["9M", "9S0"], @@ -86286,6 +90101,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { saltcure: ["9L24", "9S0"], sandstorm: ["9M"], sleeptalk: ["9M"], + smackdown: ["9M"], stealthrock: ["9M", "9L40"], stompingtantrum: ["9M"], stoneedge: ["9M", "9L54"], @@ -86317,6 +90133,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M"], lightscreen: ["9M"], memento: ["9E"], + meteorbeam: ["9M"], mudshot: ["9M"], powergem: ["9M", "9L37"], protect: ["9M"], @@ -86329,18 +90146,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockthrow: ["9L1"], rocktomb: ["9M"], sandstorm: ["9M", "9L26"], + sandtomb: ["9M"], selfdestruct: ["9L29"], sleeptalk: ["9M"], sludgebomb: ["9M"], - sludgewave: ["9L46"], - smackdown: ["9L1"], + sludgewave: ["9M", "9L46"], + smackdown: ["9M", "9L1"], spikes: ["9M"], stealthrock: ["9M", "9L18"], stoneedge: ["9M"], substitute: ["9M"], sunnyday: ["9M"], terablast: ["9M"], - toxic: ["9E"], + toxic: ["9M", "9E"], toxicspikes: ["9M"], venoshock: ["9M", "9L22"], }, @@ -86363,6 +90181,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], irondefense: ["9M"], lightscreen: ["9M"], + meteorbeam: ["9M"], mortalspin: ["9L0"], mudshot: ["9M"], powergem: ["9M", "9L39"], @@ -86376,11 +90195,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockthrow: ["9L1"], rocktomb: ["9M"], sandstorm: ["9M", "9L26"], + sandtomb: ["9M"], selfdestruct: ["9L29"], sleeptalk: ["9M"], sludgebomb: ["9M"], - sludgewave: ["9L50"], - smackdown: ["9L1"], + sludgewave: ["9M", "9L50"], + smackdown: ["9M", "9L1"], solarbeam: ["9M"], spikes: ["9M"], spikyshield: ["9L1"], @@ -86389,6 +90209,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M"], sunnyday: ["9M"], terablast: ["9M"], + toxic: ["9M"], toxicspikes: ["9M", "9L1"], venoshock: ["9M", "9L22"], }, @@ -86402,7 +90223,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { copycat: ["9E"], crosspoison: ["9E"], dig: ["9M"], + doubleedge: ["9M"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], flatter: ["9L18"], @@ -86411,7 +90234,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furyswipes: ["9L8"], gunkshot: ["9M", "9L45"], helpinghand: ["9M"], - knockoff: ["9L40"], + knockoff: ["9M", "9L40"], leer: ["9L1"], metronome: ["9M"], mudshot: ["9M"], @@ -86422,15 +90245,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poisonjab: ["9M", "9L29"], pounce: ["9M"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], scratch: ["9L1"], + skittersmack: ["9M"], slash: ["9L21"], sleeptalk: ["9M"], sludgebomb: ["9M"], + sludgewave: ["9M"], substitute: ["9M", "9L36"], sunnyday: ["9M"], - superfang: ["9E"], + superfang: ["9M", "9E"], swagger: ["9E"], switcheroo: ["9L11"], swordsdance: ["9M"], @@ -86438,7 +90264,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L33"], terablast: ["9M"], thief: ["9M"], - toxic: ["9E"], + throatchop: ["9M"], + toxic: ["9M", "9E"], trailblaze: ["9M"], uturn: ["9M", "9L25"], venoshock: ["9M"], @@ -86451,7 +90278,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { batonpass: ["9M"], dig: ["9M"], doodle: ["9L0"], + doubleedge: ["9M"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], flatter: ["9L18"], @@ -86461,7 +90290,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M"], gunkshot: ["9M", "9L51"], helpinghand: ["9M"], - knockoff: ["9L45"], + knockoff: ["9M", "9L45"], leer: ["9L1"], lowkick: ["9M"], lowsweep: ["9M"], @@ -86474,22 +90303,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poisontail: ["9M"], pounce: ["9M"], protect: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], scaryface: ["9M"], scratch: ["9L1"], shadowclaw: ["9M"], + skittersmack: ["9M"], slash: ["9L21"], sleeptalk: ["9M"], sludgebomb: ["9M"], + sludgewave: ["9M"], substitute: ["9M", "9L40"], sunnyday: ["9M"], + superfang: ["9M"], switcheroo: ["9L11"], swordsdance: ["9M"], takedown: ["9M"], taunt: ["9M", "9L37"], terablast: ["9M"], thief: ["9M"], + throatchop: ["9M"], + toxic: ["9M"], trailblaze: ["9M"], uturn: ["9M", "9L25"], venoshock: ["9M"], @@ -86499,17 +90334,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fidough: { learnset: { agility: ["9M"], + alluringvoice: ["9M"], babydolleyes: ["9L15"], batonpass: ["9M", "9L26"], bite: ["9L11"], bodyslam: ["9M"], - charm: ["9M", "9L36"], + charm: ["9M", "9L36", "9S0"], copycat: ["9E"], covet: ["9L8"], crunch: ["9M", "9L40"], dazzlinggleam: ["9M"], dig: ["9M"], - doubleedge: ["9L33"], + doubleedge: ["9M", "9L33"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], firefang: ["9M"], @@ -86518,16 +90355,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { howl: ["9E"], icefang: ["9M"], lastresort: ["9L45"], - lick: ["9L3"], + lick: ["9L3", "9S0"], mistyterrain: ["9M"], mudshot: ["9M"], mudslap: ["9M"], - playrough: ["9M", "9L18"], + playrough: ["9M", "9L18", "9S0"], protect: ["9M"], psychicfangs: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], - roar: ["9L30"], + roar: ["9M", "9L30"], sleeptalk: ["9M"], snarl: ["9M"], stompingtantrum: ["9M"], @@ -86535,7 +90373,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M"], sweetscent: ["9E"], tackle: ["9L1"], - tailwhip: ["9L6"], + tailwhip: ["9L6", "9S0"], takedown: ["9M"], terablast: ["9M"], thunderfang: ["9M"], @@ -86544,10 +90382,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { workup: ["9L22"], yawn: ["9E"], }, + eventData: [ + {generation: 9, level: 5, moves: ["playrough", "charm", "lick", "tailwhip"], pokeball: "cherishball"}, + ], }, dachsbun: { learnset: { agility: ["9M"], + alluringvoice: ["9M"], babydolleyes: ["9L15"], batonpass: ["9M", "9L29"], bite: ["9L11"], @@ -86558,8 +90400,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { crunch: ["9M", "9L47"], dazzlinggleam: ["9M"], dig: ["9M"], - doubleedge: ["9L38"], + doubleedge: ["9M", "9L38"], drainingkiss: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], firefang: ["9M"], @@ -86576,9 +90419,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { playrough: ["9M", "9L18"], protect: ["9M"], psychicfangs: ["9M"], + psychup: ["9M"], raindance: ["9M"], rest: ["9M"], - roar: ["9L33"], + roar: ["9M", "9L33"], scaryface: ["9M"], sleeptalk: ["9M"], snarl: ["9M"], @@ -86603,8 +90447,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkpulse: ["9M"], destinybond: ["9E"], dig: ["9M"], - doubleedge: ["9L49"], - endeavor: ["9E"], + doubleedge: ["9M", "9L49"], + endeavor: ["9M", "9E"], endure: ["9M"], facade: ["9M"], faketears: ["9M"], @@ -86614,6 +90458,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { honeclaws: ["9L10"], icefang: ["9M"], jawlock: ["9L43"], + lashout: ["9M"], leer: ["9L1"], lick: ["9L4"], payback: ["9L26"], @@ -86624,7 +90469,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M"], retaliate: ["9E"], reversal: ["9M", "9L39"], - roar: ["9L18"], + roar: ["9M", "9L18"], scaryface: ["9M", "9L1"], sleeptalk: ["9M"], snarl: ["9M", "9L7"], @@ -86647,9 +90492,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { charm: ["9M"], comeuppance: ["9L0"], crunch: ["9M", "9L34"], + curse: ["9M"], darkpulse: ["9M"], dig: ["9M"], - doubleedge: ["9L55"], + doubleedge: ["9M", "9L55"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], faketears: ["9M"], @@ -86662,9 +90509,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M"], icefang: ["9M"], jawlock: ["9L48"], + lashout: ["9M"], leer: ["9L1"], lick: ["9L4"], outrage: ["9M", "9L60"], + painsplit: ["9M"], payback: ["9L26"], playrough: ["9M"], protect: ["9M"], @@ -86672,10 +90521,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M"], rest: ["9M"], reversal: ["9M", "9L43"], - roar: ["9L18"], + roar: ["9M", "9L18"], scaryface: ["9M", "9L1"], sleeptalk: ["9M"], snarl: ["9M", "9L7"], + spite: ["9M"], substitute: ["9M"], sunnyday: ["9M"], swagger: ["9L39"], @@ -86697,7 +90547,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["9E"], bulletseed: ["9M", "9L13"], confuseray: ["9M"], - curse: ["9L45"], + curse: ["9M", "9L45"], defensecurl: ["9L1"], disable: ["9L29"], endure: ["9M"], @@ -86705,6 +90555,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M"], gigadrain: ["9M", "9L40"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], hex: ["9M", "9L21"], infestation: ["9L17"], @@ -86712,8 +90563,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leechseed: ["9E"], megadrain: ["9L25"], nightshade: ["9M"], - painsplit: ["9L50"], + painsplit: ["9M", "9L50"], phantomforce: ["9M", "9L35"], + poltergeist: ["9M"], pounce: ["9M"], powerwhip: ["9L55"], protect: ["9M"], @@ -86727,6 +90579,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], solarbeam: ["9M"], spikes: ["9M"], + spite: ["9M"], strengthsap: ["9E"], substitute: ["9M"], terablast: ["9M"], @@ -86740,7 +90593,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { astonish: ["9L1"], bulletseed: ["9M", "9L13"], confuseray: ["9M"], - curse: ["9L45"], + curse: ["9M", "9L45"], defensecurl: ["9L1"], disable: ["9L29"], endure: ["9M"], @@ -86749,6 +90602,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L40"], gigaimpact: ["9M"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], hex: ["9M", "9L21"], hyperbeam: ["9M"], @@ -86756,8 +90610,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leafstorm: ["9M"], megadrain: ["9L25"], nightshade: ["9M"], - painsplit: ["9L50"], + painsplit: ["9M", "9L50"], phantomforce: ["9M", "9L35"], + poltergeist: ["9M"], pounce: ["9M"], powerwhip: ["9L55"], protect: ["9M"], @@ -86767,9 +90622,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], seedbomb: ["9M"], shadowball: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M"], solarbeam: ["9M"], spikes: ["9M"], + spite: ["9M"], substitute: ["9M"], terablast: ["9M"], thief: ["9M"], @@ -86778,27 +90635,29 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, gimmighoul: { learnset: { - astonish: ["9L1", "9S0"], + astonish: ["9L1", "9S2", "9S0"], confuseray: ["9M"], endure: ["9M"], - hex: ["9M"], + hex: ["9M", "9S1"], lightscreen: ["9M"], nastyplot: ["9M"], nightshade: ["9M"], - powergem: ["9M"], + powergem: ["9M", "9S1"], protect: ["9M"], reflect: ["9M"], rest: ["9M"], - shadowball: ["9M"], + shadowball: ["9M", "9S1"], sleeptalk: ["9M"], substitute: ["9M"], - tackle: ["9L1", "9S0"], - takedown: ["9M"], + tackle: ["9L1", "9S2", "9S0"], + takedown: ["9M", "9S1"], terablast: ["9M"], thief: ["9M"], }, eventData: [ {generation: 9, level: 5, moves: ["astonish", "tackle"]}, + {generation: 9, level: 75, shiny: 1, perfectIVs: 4, moves: ["takedown", "shadowball", "hex", "powergem"]}, + {generation: 9, level: 5, nature: "Timid", ivs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 31}, moves: ["astonish", "tackle"]}, ], eventOnly: true, }, @@ -86813,6 +90672,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M"], fling: ["9M"], focusblast: ["9M"], + focuspunch: ["9M"], gigaimpact: ["9M"], heavyslam: ["9M"], hex: ["9M"], @@ -86823,9 +90683,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lowsweep: ["9M"], makeitrain: ["9L56"], memento: ["9L70"], - metalsound: ["9L28"], + metalsound: ["9M", "9L28"], nastyplot: ["9M", "9L63"], nightshade: ["9M", "9L7"], + poltergeist: ["9M"], powergem: ["9M", "9L49"], protect: ["9M"], psychic: ["9M"], @@ -86859,9 +90720,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { closecombat: ["9M", "9L63"], defensecurl: ["9L1"], dig: ["9M"], + doubleedge: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L49", "9S1"], - endeavor: ["9L70"], + endeavor: ["9M", "9L70"], endure: ["9M"], facade: ["9M"], firefang: ["9M"], @@ -86870,12 +90732,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { headlongrush: ["9L91"], headsmash: ["9L84"], heavyslam: ["9M"], + highhorsepower: ["9M"], hornattack: ["9L1"], hyperbeam: ["9M"], icefang: ["9M"], icespinner: ["9M"], ironhead: ["9M"], - knockoff: ["9L42", "9S0", "9S1"], + knockoff: ["9M", "9L42", "9S0", "9S1"], megahorn: ["9L77"], mudshot: ["9M"], mudslap: ["9M"], @@ -86885,21 +90748,26 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rapidspin: ["9L21", "9S0"], rest: ["9M"], reversal: ["9M"], + roar: ["9M"], rockslide: ["9M"], rocktomb: ["9M"], rollout: ["9L1"], sandstorm: ["9M"], scaryface: ["9M"], sleeptalk: ["9M"], + smackdown: ["9M"], smartstrike: ["9M"], stealthrock: ["9M"], stompingtantrum: ["9M", "9L35", "9S0", "9S1"], stoneedge: ["9M"], substitute: ["9M"], sunnyday: ["9M", "9L1"], + supercellslam: ["9M"], takedown: ["9M"], taunt: ["9M", "9L14"], + temperflare: ["9M"], terablast: ["9M"], + throatchop: ["9M"], thunderfang: ["9M"], zenheadbutt: ["9M"], }, @@ -86921,6 +90789,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9M"], crunch: ["9M"], darkpulse: ["9M"], + doubleedge: ["9M"], earthpower: ["9M"], endure: ["9M"], energyball: ["9M"], @@ -86933,6 +90802,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hex: ["9M"], hyperbeam: ["9M"], ingrain: ["9L70"], + lashout: ["9M"], leafstorm: ["9M"], magicalleaf: ["9M"], megadrain: ["9L14"], @@ -86971,6 +90841,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodypress: ["9M"], bodyslam: ["9M"], bulldoze: ["9M", "9L14"], + charge: ["9M"], chargebeam: ["9M", "9L21"], discharge: ["9L56"], earthpower: ["9M", "9L63"], @@ -86978,17 +90849,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "9L1"], electroball: ["9M"], + electroweb: ["9M"], endure: ["9M"], facade: ["9M"], flashcannon: ["9M"], gigaimpact: ["9M"], - gravity: ["9L77"], + gravity: ["9M", "9L77"], heavyslam: ["9M", "9L42", "9S0"], + highhorsepower: ["9M"], hyperbeam: ["9M"], irondefense: ["9M"], lightscreen: ["9M"], magneticflux: ["9L91"], - metalsound: ["9L49", "9S0"], + metalsound: ["9M", "9L49", "9S0"], mirrorcoat: ["9L70"], mudshot: ["9M"], powergem: ["9M"], @@ -86996,6 +90869,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { reflect: ["9M"], rest: ["9M"], sandstorm: ["9M"], + sandtomb: ["9M"], + scorchingsands: ["9M"], screech: ["9L35", "9S0"], sleeptalk: ["9M"], spark: ["9L7"], @@ -87004,6 +90879,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M"], substitute: ["9M"], sunnyday: ["9M", "9L1"], + supercellslam: ["9M"], supersonic: ["9L1"], swift: ["9M"], takedown: ["9M"], @@ -87036,9 +90912,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dazzlinggleam: ["9M"], dig: ["9M"], disable: ["9L1"], + doubleedge: ["9M"], drainpunch: ["9M"], encore: ["9M"], endure: ["9M"], + expandingforce: ["9M"], facade: ["9M"], faketears: ["9M"], fireblast: ["9M"], @@ -87049,7 +90927,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusblast: ["9M"], gigaimpact: ["9M"], grassknot: ["9M"], - gyroball: ["9L77"], + gyroball: ["9M", "9L77"], helpinghand: ["9M"], howl: ["9L7"], hyperbeam: ["9M"], @@ -87060,6 +90938,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { imprison: ["9M"], lightscreen: ["9M"], metronome: ["9M"], + mistyexplosion: ["9M"], mistyterrain: ["9M"], nobleroar: ["9L14"], perishsong: ["9L84"], @@ -87069,11 +90948,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M"], psychicfangs: ["9M", "9L56"], + psychicnoise: ["9M"], psychicterrain: ["9M"], + psychup: ["9M"], psyshock: ["9M"], raindance: ["9M"], reflect: ["9M"], rest: ["9M", "9L35", "9S0"], + roar: ["9M"], rocktomb: ["9M"], sandstorm: ["9M"], scaryface: ["9M"], @@ -87094,6 +90976,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M"], trick: ["9M"], trickroom: ["9M"], + uproar: ["9M"], waterpulse: ["9M"], wish: ["9L70"], zenheadbutt: ["9M"], @@ -87122,26 +91005,27 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hex: ["9M"], hyperbeam: ["9M"], hypervoice: ["9M"], - icywind: ["9M"], + icywind: ["9M", "9S1"], imprison: ["9M"], magicalleaf: ["9M"], meanlook: ["9L14"], memento: ["9L21"], mistyterrain: ["9M"], - moonblast: ["9L84"], + moonblast: ["9L84", "9S1"], mysticalfire: ["9L49", "9S0"], nightshade: ["9M"], - painsplit: ["9L77"], + painsplit: ["9M", "9L77"], perishsong: ["9L91"], phantomforce: ["9M", "9L70"], - powergem: ["9M", "9L56"], + poltergeist: ["9M"], + powergem: ["9M", "9L56", "9S1"], protect: ["9M"], psybeam: ["9M", "9L7"], psyshock: ["9M", "9L63"], rest: ["9M"], - shadowball: ["9M", "9L42", "9S0"], + shadowball: ["9M", "9L42", "9S0", "9S1"], sleeptalk: ["9M"], - spite: ["9L1"], + spite: ["9M", "9L1"], storedpower: ["9M"], substitute: ["9M"], sunnyday: ["9M", "9L1"], @@ -87156,6 +91040,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 9, level: 52, shiny: 1, moves: ["shadowball", "mysticalfire", "wish", "dazzlinggleam"]}, + {generation: 9, level: 75, shiny: 1, perfectIVs: 4, moves: ["shadowball", "moonblast", "powergem", "icywind"]}, ], eventOnly: true, }, @@ -87166,11 +91051,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodypress: ["9M"], bodyslam: ["9M"], brickbreak: ["9M"], - bugbite: ["9L1"], + bugbite: ["9M", "9L1"], bugbuzz: ["9M"], bulkup: ["9M", "9L56"], closecombat: ["9M"], - dualwingbeat: ["9L63"], + curse: ["9M"], + doubleedge: ["9M"], + dualwingbeat: ["9M", "9L63"], earthquake: ["9M"], ember: ["9L1"], endure: ["9M"], @@ -87181,14 +91068,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M"], gigaimpact: ["9M"], gust: ["9L1"], + heatcrash: ["9M"], heatwave: ["9M"], heavyslam: ["9M"], + highhorsepower: ["9M"], hurricane: ["9M"], hyperbeam: ["9M"], leechlife: ["9M", "9L84"], lowkick: ["9M"], lowsweep: ["9M", "9L28", "9S0"], - lunge: ["9L42", "9S0"], + lunge: ["9M", "9L42", "9S0"], morningsun: ["9L35", "9S0"], poisonpowder: ["9L7"], protect: ["9M"], @@ -87196,6 +91085,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M"], reversal: ["9M"], sandstorm: ["9M"], + skittersmack: ["9M"], sleeptalk: ["9M"], stomp: ["9L21"], stompingtantrum: ["9M"], @@ -87204,6 +91094,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M", "9L1"], superpower: ["9L49", "9S0"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thrash: ["9L91"], trailblaze: ["9M"], @@ -87226,18 +91117,19 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L1"], bodypress: ["9M"], bodyslam: ["9M"], - breakingswipe: ["9L1"], + breakingswipe: ["9M", "9L1"], brickbreak: ["9M"], crunch: ["9M"], darkpulse: ["9M"], dig: ["9M"], - doubleedge: ["9L91"], + doubleedge: ["9M", "9L91"], dracometeor: ["9M"], dragonbreath: ["9L1"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L28", "9S0"], - dragondance: ["9M", "9L56"], + dragondance: ["9M", "9L56", "9S1"], dragonpulse: ["9M"], - dragonrush: ["9L63"], + dragonrush: ["9L63", "9S1"], dragontail: ["9M"], earthquake: ["9M"], endure: ["9M"], @@ -87246,7 +91138,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firefang: ["9M"], firespin: ["9M"], flamethrower: ["9M", "9L42", "9S0"], - fly: ["9M", "9L70"], + fly: ["9M", "9L70", "9S1"], focusenergy: ["9L1"], gigaimpact: ["9M"], headbutt: ["9L14"], @@ -87258,15 +91150,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { incinerate: ["9L7"], ironhead: ["9M"], jawlock: ["9L1"], + knockoff: ["9M"], + lashout: ["9M"], leer: ["9L1"], metalclaw: ["9M"], - nightslash: ["9L49", "9S0"], + nightslash: ["9L49", "9S1", "9S0"], outrage: ["9M"], protect: ["9M"], rest: ["9M"], + roar: ["9M"], rockslide: ["9M"], roost: ["9L84"], - scaleshot: ["9L1"], + scaleshot: ["9M", "9L1"], scaryface: ["9M", "9L21"], shadowclaw: ["9M"], sleeptalk: ["9M"], @@ -87279,7 +91174,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], - throatchop: ["9L77"], + throatchop: ["9M", "9L77"], thunderfang: ["9M"], uturn: ["9M"], xscissor: ["9M"], @@ -87287,6 +91182,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, eventData: [ {generation: 9, level: 52, shiny: 1, moves: ["zenheadbutt", "flamethrower", "nightslash", "dragonclaw"]}, + {generation: 9, level: 75, perfectIVs: 3, moves: ["nightslash", "dragondance", "dragonrush", "fly"], pokeball: "friendball"}, ], eventOnly: true, }, @@ -87296,23 +91192,28 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], bulldoze: ["9M", "9L7"], defensecurl: ["9L1"], + doubleedge: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L49", "9S1"], electricterrain: ["9M", "9L1"], electroball: ["9M"], - endeavor: ["9L70"], + endeavor: ["9M", "9L70"], facade: ["9M"], flashcannon: ["9M"], gigaimpact: ["9M", "9L84"], + gyroball: ["9M"], + hardpress: ["9M"], heavyslam: ["9M", "9L56", "9S1"], + highhorsepower: ["9M"], hornattack: ["9L1"], hyperbeam: ["9M"], icefang: ["9M"], icespinner: ["9M"], irondefense: ["9M"], ironhead: ["9M", "9L28", "9S0"], - knockoff: ["9L42", "9S0", "9S1"], + knockoff: ["9M", "9L42", "9S0", "9S1"], megahorn: ["9L77"], + metalsound: ["9M"], mudshot: ["9M"], mudslap: ["9M"], protect: ["9M"], @@ -87323,6 +91224,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rollout: ["9L1"], sandstorm: ["9M"], scaryface: ["9M"], + sleeptalk: ["9M"], smartstrike: ["9M"], stealthrock: ["9M"], steelbeam: ["9M"], @@ -87330,6 +91232,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stompingtantrum: ["9M", "9L35", "9S0", "9S1"], stoneedge: ["9M"], substitute: ["9M"], + supercellslam: ["9M"], takedown: ["9M"], terablast: ["9M"], thunder: ["9M"], @@ -87373,8 +91276,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hurricane: ["9M", "9L77"], hyperbeam: ["9M"], lightscreen: ["9M"], - lunge: ["9L28", "9S0"], - metalsound: ["9L63"], + lunge: ["9M", "9L28", "9S0"], + metalsound: ["9M", "9L63"], + meteorbeam: ["9M"], morningsun: ["9L70"], overheat: ["9M", "9L91"], pounce: ["9M"], @@ -87383,7 +91287,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M"], screech: ["9L35", "9S0"], sleeptalk: ["9M"], - sludgewave: ["9L49", "9S0"], + sludgewave: ["9M", "9L49", "9S0"], solarbeam: ["9M"], strugglebug: ["9M", "9L7"], substitute: ["9M"], @@ -87391,6 +91295,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M"], takedown: ["9M", "9L21"], terablast: ["9M"], + toxic: ["9M"], toxicspikes: ["9M"], uturn: ["9M"], venoshock: ["9M"], @@ -87409,9 +91314,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bodyslam: ["9M"], brickbreak: ["9M"], bulldoze: ["9M"], - charge: ["9L49", "9S0"], + charge: ["9M", "9L49", "9S0"], closecombat: ["9M", "9L63"], detect: ["9L70"], + doubleedge: ["9M"], drainpunch: ["9M"], earthquake: ["9M"], electricterrain: ["9M", "9L1"], @@ -87422,9 +91328,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M"], focusblast: ["9M"], focusenergy: ["9L1"], - focuspunch: ["9L91"], + focuspunch: ["9M", "9L91"], forcepalm: ["9L35", "9S0"], gigaimpact: ["9M"], + hardpress: ["9M"], heavyslam: ["9M", "9L77"], hyperbeam: ["9M"], icepunch: ["9M"], @@ -87446,6 +91353,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], stompingtantrum: ["9M"], substitute: ["9M"], + supercellslam: ["9M"], swordsdance: ["9M"], tackle: ["9L1"], takedown: ["9M"], @@ -87472,9 +91380,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["9M"], crunch: ["9M", "9L35", "9S0"], darkpulse: ["9M", "9L70"], + doubleedge: ["9M"], dragonbreath: ["9L21", "9S0"], + dragoncheer: ["9M"], dragonpulse: ["9M", "9L84"], dragontail: ["9M"], + dualwingbeat: ["9M"], earthpower: ["9M"], electricterrain: ["9M", "9L1"], endure: ["9M"], @@ -87493,12 +91404,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "9L91"], hypervoice: ["9M", "9L42", "9S0"], ironhead: ["9M"], - knockoff: ["9L63"], + knockoff: ["9M", "9L63"], + lashout: ["9M"], + metalsound: ["9M"], + meteorbeam: ["9M"], outrage: ["9M", "9L77"], protect: ["9M"], raindance: ["9M"], rest: ["9M"], - roar: ["9L7"], + roar: ["9M", "9L7"], rocktomb: ["9M"], scaryface: ["9M"], sleeptalk: ["9M"], @@ -87509,6 +91423,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], + throatchop: ["9M"], triattack: ["9L1"], uturn: ["9M"], workup: ["9L1"], @@ -87525,12 +91440,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M"], bodypress: ["9M"], bodyslam: ["9M"], + breakingswipe: ["9M"], brickbreak: ["9M"], bulldoze: ["9M"], - charge: ["9L35", "9S0"], + charge: ["9M", "9L35", "9S0"], chargebeam: ["9M"], crunch: ["9M"], + curse: ["9M"], dig: ["9M"], + doubleedge: ["9M"], dragonclaw: ["9M"], dragondance: ["9M"], dragontail: ["9M"], @@ -87539,6 +91457,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M"], electricterrain: ["9M", "9L1"], electroball: ["9M"], + electroweb: ["9M"], endure: ["9M"], facade: ["9M"], fireblast: ["9M"], @@ -87549,6 +91468,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusblast: ["9M"], gigaimpact: ["9M", "9L91"], heavyslam: ["9M"], + highhorsepower: ["9M"], hyperbeam: ["9M"], icebeam: ["9M"], icefang: ["9M", "9L1"], @@ -87557,6 +91477,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ironhead: ["9M"], lowkick: ["9M"], metalclaw: ["9M"], + meteorbeam: ["9M"], pinmissile: ["9L63"], powergem: ["9M"], protect: ["9M"], @@ -87567,8 +91488,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rockthrow: ["9L1"], rocktomb: ["9M", "9L21"], sandstorm: ["9M", "9L49", "9S0"], + sandtomb: ["9M"], scaryface: ["9M"], screech: ["9L7"], + sleeptalk: ["9M"], + smackdown: ["9M"], snarl: ["9M"], spikes: ["9M"], stealthrock: ["9M", "9L77"], @@ -87576,6 +91500,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { stoneedge: ["9M", "9L84"], substitute: ["9M"], sunnyday: ["9M"], + supercellslam: ["9M"], swordsdance: ["9M"], takedown: ["9M"], taunt: ["9M"], @@ -87609,7 +91534,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M"], facade: ["9M"], fling: ["9M"], - flipturn: ["9L49", "9S0"], + flipturn: ["9M", "9L49", "9S0"], freezedry: ["9L42", "9S0"], gigaimpact: ["9M"], helpinghand: ["9M", "9L35", "9S0"], @@ -87635,7 +91560,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thief: ["9M"], uturn: ["9M"], waterpulse: ["9M"], - whirlpool: ["9L14"], + whirlpool: ["9M", "9L14"], }, eventData: [ {generation: 9, level: 52, shiny: 1, moves: ["drillpeck", "helpinghand", "freezedry", "flipturn"]}, @@ -87650,7 +91575,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M"], calmmind: ["9M"], chargebeam: ["9M"], - closecombat: ["9M", "9L63"], + closecombat: ["9M", "9L63", "9S1"], + coaching: ["9M"], confuseray: ["9M"], dazzlinggleam: ["9M", "9L28", "9S0"], destinybond: ["9L77"], @@ -87661,13 +91587,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { encore: ["9M"], endure: ["9M"], energyball: ["9M"], + expandingforce: ["9M"], falseswipe: ["9M"], feint: ["9L14"], firepunch: ["9M"], fling: ["9M"], focusblast: ["9M"], furycutter: ["9L1"], - futuresight: ["9L21"], + futuresight: ["9M", "9L21"], gigaimpact: ["9M"], grassknot: ["9M"], helpinghand: ["9M"], @@ -87678,15 +91605,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M"], icywind: ["9M"], imprison: ["9M"], - knockoff: ["9L70"], - leafblade: ["9L49", "9S0"], + knockoff: ["9M", "9L70", "9S1"], + leafblade: ["9L49", "9S1", "9S0"], lightscreen: ["9M"], liquidation: ["9M"], lowkick: ["9M"], magicalleaf: ["9M"], metronome: ["9M"], mistyterrain: ["9M"], - moonblast: ["9L56"], + moonblast: ["9L56", "9S1"], nightslash: ["9L42", "9S0"], poisonjab: ["9M"], protect: ["9M"], @@ -87694,6 +91621,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psychic: ["9M"], psychicterrain: ["9M"], psychocut: ["9L35", "9S0"], + psychup: ["9M"], psyshock: ["9M"], quickguard: ["9L84"], reflect: ["9M"], @@ -87711,17 +91639,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swordsdance: ["9M"], taunt: ["9M"], terablast: ["9M"], + throatchop: ["9M"], thunderbolt: ["9M"], thunderpunch: ["9M"], thunderwave: ["9M"], trick: ["9M"], trickroom: ["9M"], + vacuumwave: ["9M"], wideguard: ["9L84"], xscissor: ["9M"], zenheadbutt: ["9M"], }, eventData: [ {generation: 9, level: 52, shiny: 1, moves: ["psychocut", "nightslash", "leafblade", "dazzlinggleam"]}, + {generation: 9, level: 75, perfectIVs: 3, moves: ["leafblade", "moonblast", "closecombat", "knockoff"], pokeball: "friendball"}, ], eventOnly: true, }, @@ -87732,6 +91663,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "9L20"], darkpulse: ["9M", "9L40"], dig: ["9M"], + doubleedge: ["9M"], earthpower: ["9M"], earthquake: ["9M", "9L70"], endure: ["9M"], @@ -87741,6 +91673,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { heavyslam: ["9M"], hex: ["9M"], hyperbeam: ["9M"], + lashout: ["9M"], meanlook: ["9L1"], memento: ["9L65"], mudshot: ["9M"], @@ -87752,12 +91685,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M"], ruination: ["9L50", "9S0"], sandstorm: ["9M"], - sandtomb: ["9L1"], + sandtomb: ["9M", "9L1"], scaryface: ["9M"], sleeptalk: ["9M"], snarl: ["9M"], spikes: ["9M", "9L5"], - spite: ["9L1"], + spite: ["9M", "9L1"], stealthrock: ["9M"], stomp: ["9L15"], stompingtantrum: ["9M", "9L45", "9S0"], @@ -87768,7 +91701,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L30"], terablast: ["9M"], thrash: ["9L35"], - throatchop: ["9L55", "9S0"], + throatchop: ["9M", "9L55", "9S0"], whirlwind: ["9L25"], zenheadbutt: ["9M"], }, @@ -87790,7 +91723,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M"], falseswipe: ["9M"], gigaimpact: ["9M"], - haze: ["9L15"], + haze: ["9M", "9L15"], hex: ["9M"], hyperbeam: ["9M"], icefang: ["9M"], @@ -87798,6 +91731,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icespinner: ["9M"], iciclecrash: ["9L45", "9S0"], icywind: ["9M", "9L5"], + lashout: ["9M"], meanlook: ["9L1"], mist: ["9L15"], nightslash: ["9L35"], @@ -87815,14 +91749,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], snarl: ["9M"], snowscape: ["9M", "9L30"], - spite: ["9L1"], + spite: ["9M", "9L1"], substitute: ["9M"], suckerpunch: ["9L55", "9S0"], swordsdance: ["9M", "9L25"], takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], - throatchop: ["9L70"], + throatchop: ["9M", "9L70"], }, eventData: [ {generation: 9, level: 60, moves: ["iciclecrash", "ruination", "suckerpunch", "sacredsword"]}, @@ -87848,7 +91782,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hex: ["9M"], hyperbeam: ["9M"], ingrain: ["9L35"], - knockoff: ["9L70"], + knockoff: ["9M", "9L70"], + lashout: ["9M"], leafstorm: ["9M", "9L75"], leechseed: ["9L25"], lightscreen: ["9M"], @@ -87871,7 +91806,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], snarl: ["9M"], solarbeam: ["9M"], - spite: ["9L1"], + solarblade: ["9M"], + spite: ["9M", "9L1"], stunspore: ["9L15"], substitute: ["9M"], sunnyday: ["9M"], @@ -87890,6 +91826,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chiyu: { learnset: { bounce: ["9L55", "9S0"], + burningjealousy: ["9M"], confuseray: ["9M", "9L30"], crunch: ["9M"], darkpulse: ["9M", "9L40"], @@ -87908,6 +91845,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M"], incinerate: ["9L25"], inferno: ["9L65"], + lashout: ["9M"], lavaplume: ["9L45", "9S0"], lightscreen: ["9M"], meanlook: ["9L1"], @@ -87923,12 +91861,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], sleeptalk: ["9M"], snarl: ["9M"], - spite: ["9L1"], + spite: ["9M", "9L1"], substitute: ["9M"], sunnyday: ["9M"], swagger: ["9L60", "9S0"], takedown: ["9M"], taunt: ["9M"], + temperflare: ["9M"], terablast: ["9M"], willowisp: ["9M", "9L15"], zenheadbutt: ["9M"], @@ -87945,7 +91884,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["9L14"], bodypress: ["9M"], bodyslam: ["9M"], - breakingswipe: ["9L1"], + breakingswipe: ["9M", "9L1"], brickbreak: ["9M", "9L28"], bulkup: ["9M", "9S1"], bulldoze: ["9M"], @@ -87954,11 +91893,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { counter: ["9L70"], crunch: ["9M"], dig: ["9M"], + doubleedge: ["9M"], dracometeor: ["9M"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L42"], dragonpulse: ["9M"], dragontail: ["9M"], drainpunch: ["9M", "9L21"], + dualwingbeat: ["9M"], endure: ["9M", "9S0"], facade: ["9M"], fireblast: ["9M"], @@ -87968,7 +91910,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flamethrower: ["9M", "9L49", "9S0", "9S1"], flareblitz: ["9M", "9L91"], focusblast: ["9M"], + focuspunch: ["9M"], gigaimpact: ["9M", "9L98", "9S1"], + heatcrash: ["9M"], heatwave: ["9M"], heavyslam: ["9M"], helpinghand: ["9M"], @@ -87977,6 +91921,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ironhead: ["9M"], lowkick: ["9M"], lowsweep: ["9M"], + meteorbeam: ["9M"], mudshot: ["9M"], mudslap: ["9M"], outrage: ["9M", "9L77"], @@ -87984,7 +91929,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M"], rest: ["9M"], reversal: ["9M"], + roar: ["9M"], rocksmash: ["9L7"], + scaleshot: ["9M"], scaryface: ["9M"], screech: ["9L63"], shadowclaw: ["9M"], @@ -87997,8 +91944,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swordsdance: ["9M"], takedown: ["9M"], taunt: ["9M"], + temperflare: ["9M"], terablast: ["9M", "9S0"], thunderfang: ["9M"], + uproar: ["9M"], uturn: ["9M"], wildcharge: ["9M"], zenheadbutt: ["9M"], @@ -88015,7 +91964,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { agility: ["9M", "9L35"], bodyslam: ["9M"], calmmind: ["9M"], - charge: ["9L14", "9S1"], + charge: ["9M", "9L14", "9S1"], chargebeam: ["9M"], confuseray: ["9M"], crunch: ["9M"], @@ -88023,6 +91972,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { discharge: ["9L28"], dracometeor: ["9M"], dragonbreath: ["9L1"], + dragoncheer: ["9M"], dragonclaw: ["9M"], dragonpulse: ["9M", "9L42"], dragontail: ["9M"], @@ -88038,7 +91988,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { helpinghand: ["9M"], hyperbeam: ["9M", "9L98", "9S1"], lightscreen: ["9M"], - metalsound: ["9L63"], + metalsound: ["9M", "9L63"], mirrorcoat: ["9L70"], outrage: ["9M", "9L77"], overheat: ["9M", "9L91"], @@ -88053,6 +92003,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M"], solarbeam: ["9M"], substitute: ["9M"], + supercellslam: ["9M"], swordsdance: ["9M"], takedown: ["9M"], taunt: ["9M"], @@ -88080,6 +92031,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { covet: ["9L11"], drainingkiss: ["9M", "9L17"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], fairywind: ["9L1"], @@ -88092,9 +92044,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foulplay: ["9M"], helpinghand: ["9M"], icehammer: ["9E"], - knockoff: ["9L52"], + knockoff: ["9M", "9L52"], lightscreen: ["9M"], metalclaw: ["9M", "9L8"], + metalsound: ["9M"], metronome: ["9M"], playrough: ["9M", "9L35"], pounce: ["9M"], @@ -88106,7 +92059,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocksmash: ["9L14"], rocktomb: ["9M"], skillswap: ["9M"], - skittersmack: ["9L47"], + skittersmack: ["9M", "9L47"], slam: ["9L27"], sleeptalk: ["9M"], stealthrock: ["9M"], @@ -88129,6 +92082,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { covet: ["9L11"], drainingkiss: ["9M", "9L17"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], fairywind: ["9L1"], @@ -88139,9 +92093,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M"], foulplay: ["9M"], helpinghand: ["9M"], - knockoff: ["9L52"], + knockoff: ["9M", "9L52"], lightscreen: ["9M"], metalclaw: ["9M", "9L8"], + metalsound: ["9M"], metronome: ["9M"], playrough: ["9M", "9L35"], pounce: ["9M"], @@ -88152,7 +92107,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocksmash: ["9L14"], rocktomb: ["9M"], skillswap: ["9M"], - skittersmack: ["9L47"], + skittersmack: ["9M", "9L47"], slam: ["9L27"], sleeptalk: ["9M"], stealthrock: ["9M"], @@ -88176,6 +92131,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { covet: ["9L11"], drainingkiss: ["9M", "9L17"], encore: ["9M"], + endeavor: ["9M"], endure: ["9M"], facade: ["9M"], fairywind: ["9L1"], @@ -88186,11 +92142,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M"], foulplay: ["9M"], gigatonhammer: ["9L0"], + hardpress: ["9M"], heavyslam: ["9M"], helpinghand: ["9M"], - knockoff: ["9L52"], + knockoff: ["9M", "9L52"], lightscreen: ["9M"], metalclaw: ["9M", "9L8"], + metalsound: ["9M"], metronome: ["9M"], playrough: ["9M", "9L35"], pounce: ["9M"], @@ -88201,9 +92159,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocksmash: ["9L14"], rocktomb: ["9M"], skillswap: ["9M"], - skittersmack: ["9L47"], + skittersmack: ["9M", "9L47"], slam: ["9L27"], sleeptalk: ["9M"], + smackdown: ["9M"], stealthrock: ["9M"], steelbeam: ["9M"], stoneedge: ["9M"], @@ -88217,12 +92176,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, charcadet: { learnset: { - astonish: ["9L1"], + astonish: ["9L1", "9S0"], + celebrate: ["9S0"], clearsmog: ["9L8"], confuseray: ["9M"], destinybond: ["9E"], disable: ["9E"], - ember: ["9L1"], + ember: ["9L1", "9S0"], endure: ["9M"], facade: ["9M"], fireblast: ["9M"], @@ -88238,14 +92198,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { nightshade: ["9M", "9L20"], overheat: ["9M"], protect: ["9M"], + rest: ["9M"], sleeptalk: ["9M"], - spite: ["9E"], + spite: ["9M", "9E"], substitute: ["9M"], sunnyday: ["9M"], takedown: ["9M"], - terablast: ["9M"], + terablast: ["9M", "9S0"], willowisp: ["9M", "9L16"], }, + eventData: [ + {generation: 9, level: 5, moves: ["ember", "astonish", "terablast", "celebrate"], pokeball: "cherishball"}, + ], }, armarouge: { learnset: { @@ -88262,7 +92226,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ember: ["9L1"], endure: ["9M"], energyball: ["9M"], - expandingforce: ["9L56"], + expandingforce: ["9M", "9L56"], facade: ["9M"], fireblast: ["9M"], firespin: ["9M", "9L12"], @@ -88279,6 +92243,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lavaplume: ["9L32"], leer: ["9L1"], lightscreen: ["9M"], + meteorbeam: ["9M"], mysticalfire: ["9L1"], nightshade: ["9M", "9L20"], overheat: ["9M"], @@ -88286,12 +92251,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { psybeam: ["9M"], psychic: ["9M"], psychicterrain: ["9M"], + psychup: ["9M"], psyshock: ["9M", "9L0"], reflect: ["9M"], rest: ["9M"], + scorchingsands: ["9M"], shadowball: ["9M"], sleeptalk: ["9M"], solarbeam: ["9M"], + spite: ["9M"], storedpower: ["9M"], substitute: ["9M"], sunnyday: ["9M"], @@ -88300,6 +92268,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], trick: ["9M"], trickroom: ["9M"], + weatherball: ["9M"], wideguard: ["9L1"], willowisp: ["9M", "9L16"], }, @@ -88314,6 +92283,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { clearsmog: ["9L8"], closecombat: ["9M"], confuseray: ["9M"], + curse: ["9M"], dragonclaw: ["9M"], ember: ["9L1"], endure: ["9M"], @@ -88339,8 +92309,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { overheat: ["9M"], phantomforce: ["9M"], poisonjab: ["9M"], + poltergeist: ["9M"], protect: ["9M"], psychocut: ["9L56"], + psychup: ["9M"], quickguard: ["9L1"], reflect: ["9M"], rest: ["9M"], @@ -88348,7 +92320,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "9L0"], shadowsneak: ["9L1"], sleeptalk: ["9M"], - solarblade: ["9L1"], + solarblade: ["9M", "9L1"], + spite: ["9M"], storedpower: ["9M"], substitute: ["9M"], sunnyday: ["9M"], @@ -88356,6 +92329,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], + throatchop: ["9M"], + vacuumwave: ["9M"], willowisp: ["9M", "9L16"], xscissor: ["9M"], }, @@ -88375,18 +92350,21 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foulplay: ["9M"], gigadrain: ["9M", "9L44"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L40"], hex: ["9M", "9L28"], - knockoff: ["9E"], + knockoff: ["9M", "9E"], leafstorm: ["9M"], leechseed: ["9E"], lightscreen: ["9M"], + lunge: ["9M"], magicalleaf: ["9M"], megadrain: ["9L16"], mirrorcoat: ["9E"], mudshot: ["9M", "9L24"], mudslap: ["9M", "9L1"], + painsplit: ["9M"], poisonpowder: ["9L8"], powerwhip: ["9L52"], protect: ["9M"], @@ -88411,7 +92389,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M"], terablast: ["9M"], tickle: ["9E"], - toxic: ["9E"], + toxic: ["9M", "9E"], toxicspikes: ["9M"], trailblaze: ["9M"], trickroom: ["9M"], @@ -88434,16 +92412,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L48"], gigaimpact: ["9M"], grassknot: ["9M"], + grassyglide: ["9M"], grassyterrain: ["9M"], growth: ["9L44"], hex: ["9M", "9L28"], hyperbeam: ["9M"], + knockoff: ["9M"], leafstorm: ["9M"], lightscreen: ["9M"], + lunge: ["9M"], magicalleaf: ["9M"], megadrain: ["9L16"], mudshot: ["9M", "9L24"], mudslap: ["9M", "9L1"], + painsplit: ["9M"], poisonpowder: ["9L8"], powerwhip: ["9L58"], protect: ["9M"], @@ -88454,6 +92436,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scaryface: ["9M"], screech: ["9L20"], seedbomb: ["9M", "9L34"], + skittersmack: ["9M"], sleeptalk: ["9M"], sludgebomb: ["9M"], solarbeam: ["9M"], @@ -88466,6 +92449,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tackle: ["9L15"], taunt: ["9M"], terablast: ["9M"], + toxic: ["9M"], toxicspikes: ["9M"], trailblaze: ["9M"], trickroom: ["9M"], @@ -88477,13 +92461,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { agility: ["9M"], aquajet: ["9L1"], - bite: ["9L07"], + bite: ["9L7", "9L07"], bodyslam: ["9M"], - breakingswipe: ["9L35"], + breakingswipe: ["9M", "9L35"], chillingwater: ["9M"], crunch: ["9M"], + doubleedge: ["9M"], dracometeor: ["9M"], dragonbreath: ["9L28"], + dragoncheer: ["9M"], dragonclaw: ["9M"], dragondance: ["9M"], dragonpulse: ["9M", "9L63", "9S0"], @@ -88493,12 +92479,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M"], firefang: ["9M"], flamethrower: ["9M", "9L77", "9S0"], + flipturn: ["9M"], gigaimpact: ["9M"], honeclaws: ["9L1"], hurricane: ["9M"], hydropump: ["9M", "9L84"], hydrosteam: ["9L56", "9S0"], hyperbeam: ["9M"], + knockoff: ["9M"], leer: ["9L1"], liquidation: ["9M"], lowkick: ["9M"], @@ -88508,7 +92496,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M"], raindance: ["9M"], rest: ["9M"], - roar: ["9L1"], + roar: ["9M", "9L1"], + scald: ["9M"], scaryface: ["9M"], sleeptalk: ["9M"], snarl: ["9M"], @@ -88521,6 +92510,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { twister: ["9L1"], waterfall: ["9M"], waterpulse: ["9M", "9L14"], + weatherball: ["9M"], + whirlpool: ["9M"], }, eventData: [ {generation: 9, level: 75, perfectIVs: 3, moves: ["hydrosteam", "dragonpulse", "nobleroar", "flamethrower"]}, @@ -88536,6 +92527,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M"], calmmind: ["9M"], closecombat: ["9M", "9L63"], + coaching: ["9M"], + doubleedge: ["9M"], electricterrain: ["9M", "9L1"], endure: ["9M"], energyball: ["9M"], @@ -88546,6 +92539,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M"], grassknot: ["9M"], grassyterrain: ["9M"], + gravity: ["9M"], helpinghand: ["9M", "9L1"], hyperbeam: ["9M"], imprison: ["9M", "9L70"], @@ -88553,8 +92547,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leafblade: ["9L49", "9S0"], leafstorm: ["9M"], leer: ["9L1"], - magicalleaf: ["9M", "9L07"], + magicalleaf: ["9M", "9L7", "9L07"], megahorn: ["9L77", "9S0"], + metalsound: ["9M"], nightslash: ["9L28"], protect: ["9M"], psyblade: ["9L56", "9S0"], @@ -88570,13 +92565,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M"], smartstrike: ["9M"], solarbeam: ["9M"], - solarblade: ["9L91"], + solarblade: ["9M", "9L91"], substitute: ["9M"], swift: ["9M"], swordsdance: ["9M", "9L35", "9S0"], takedown: ["9M"], taunt: ["9M"], terablast: ["9M"], + throatchop: ["9M"], trailblaze: ["9M"], wildcharge: ["9M"], workup: ["9L1"], @@ -88587,13 +92583,996 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ], eventOnly: true, }, + dipplin: { + learnset: { + astonish: ["9L1"], + bodyslam: ["9M"], + bugbite: ["9M"], + bulletseed: ["9M", "9L20"], + doublehit: ["9L0"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragoncheer: ["9M"], + dragonpulse: ["9M", "9L32"], + dragontail: ["9M", "9L4"], + endure: ["9M"], + energyball: ["9M", "9L40"], + facade: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L8"], + gyroball: ["9M"], + hyperbeam: ["9M"], + infestation: ["9L1"], + leafstorm: ["9M"], + outrage: ["9M"], + pollenpuff: ["9M"], + pounce: ["9M"], + protect: ["9M", "9L16"], + recover: ["9L36"], + recycle: ["9L1"], + reflect: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M", "9L44"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + syrupbomb: ["9L28"], + takedown: ["9M"], + terablast: ["9M"], + withdraw: ["9L1"], + }, + }, + poltchageist: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + curse: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M", "9L42"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + poltchageistartisan: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + curse: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M", "9L42"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + sinistcha: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + curse: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + matchagotcha: ["9L0"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + strengthsap: ["9L42"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + sinistchamasterpiece: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + curse: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + matchagotcha: ["9L0"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + painsplit: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychup: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + strengthsap: ["9L42"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + okidogi: { + learnset: { + bite: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9L48", "9S0"], + bulkup: ["9M", "9L1"], + closecombat: ["9M"], + counter: ["9L32"], + crunch: ["9M", "9L56", "9S0"], + curse: ["9M"], + dig: ["9M"], + doubleedge: ["9M"], + drainpunch: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + forcepalm: ["9L24"], + gigaimpact: ["9M", "9L72"], + gunkshot: ["9M"], + hardpress: ["9M"], + highhorsepower: ["9M"], + howl: ["9L8"], + hyperbeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + ironhead: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M", "9L1"], + lowsweep: ["9M"], + metalclaw: ["9M"], + outrage: ["9M"], + poisonfang: ["9L16"], + poisonjab: ["9M", "9L40", "9S0"], + poisontail: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + snarl: ["9M"], + spite: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + superpower: ["9L64", "9S0"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + toxic: ["9M"], + upperhand: ["9M"], + uproar: ["9M"], + }, + eventData: [ + {generation: 9, level: 70, moves: ["superpower", "crunch", "brutalswing", "poisonjab"]}, + ], + eventOnly: true, + }, + munkidori: { + learnset: { + acidspray: ["9M"], + batonpass: ["9M"], + calmmind: ["9M"], + clearsmog: ["9L24"], + confuseray: ["9M"], + confusion: ["9L1"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9L1"], + flatter: ["9L1"], + fling: ["9M"], + focusblast: ["9M"], + futuresight: ["9M", "9L64", "9S0"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M", "9L8"], + hex: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + metronome: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M", "9L56", "9S0"], + nightshade: ["9M"], + partingshot: ["9L72"], + poisonjab: ["9M", "9L32"], + poltergeist: ["9M"], + protect: ["9M"], + psybeam: ["9M", "9L16"], + psychic: ["9M", "9L40", "9S0"], + psychicnoise: ["9M"], + psychicterrain: ["9M"], + psychup: ["9M"], + psyshock: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M", "9L48", "9S0"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + swift: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + uproar: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + }, + eventData: [ + {generation: 9, level: 70, moves: ["futuresight", "nastyplot", "sludgewave", "psychic"]}, + ], + eventOnly: true, + }, + fezandipiti: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + alluringvoice: ["9M"], + attract: ["9L16"], + beatup: ["9L48", "9S0"], + bravebird: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + crosspoison: ["9L32"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + disarmingvoice: ["9M", "9L1"], + doublekick: ["9L1"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + flatter: ["9L56", "9S0"], + fly: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + heatwave: ["9M"], + hex: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + moonblast: ["9L72"], + nastyplot: ["9M"], + peck: ["9L1"], + playrough: ["9M"], + poisongas: ["9L1"], + poisonjab: ["9M"], + poisontail: ["9M"], + protect: ["9M"], + psychup: ["9M"], + quickattack: ["9L8"], + rest: ["9M"], + roost: ["9L64", "9S0"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + spite: ["9M"], + substitute: ["9M"], + swagger: ["9L56", "9S0"], + swift: ["9M"], + swordsdance: ["9M"], + tailslap: ["9L40"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M"], + uproar: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + wingattack: ["9L24"], + }, + eventData: [ + {generation: 9, level: 70, moves: ["roost", "flatter", "swagger", "beatup"]}, + ], + eventOnly: true, + }, + ogerpon: { + learnset: { + brickbreak: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + counter: ["9L1"], + doublekick: ["9L1"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + fling: ["9M"], + focusenergy: ["9L6"], + followme: ["9L1"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9S1"], + growth: ["9L12", "9S0"], + helpinghand: ["9M"], + hornleech: ["9L1"], + ivycudgel: ["9L30", "9S1", "9S0"], + knockoff: ["9M"], + lashout: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L1"], + lowkick: ["9M", "9S1"], + lowsweep: ["9M", "9L24"], + magicalleaf: ["9M"], + playrough: ["9M"], + powerwhip: ["9L54"], + protect: ["9M"], + quickattack: ["9L1"], + raindance: ["9M"], + rest: ["9M"], + retaliate: ["9L1"], + reversal: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + slam: ["9L18", "9S1", "9S0"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + spikes: ["9M"], + spikyshield: ["9L48"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L60"], + swordsdance: ["9M"], + synthesis: ["9L42"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + throatchop: ["9M", "9L36"], + trailblaze: ["9M"], + uturn: ["9M"], + vinewhip: ["9L1", "9S0"], + woodhammer: ["9L66"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 20, nature: "Lonely", ivs: {hp: 31, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["ivycudgel", "slam", "growth", "vinewhip"]}, + {generation: 9, level: 70, nature: "Lonely", ivs: {hp: 31, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["ivycudgel", "lowkick", "slam", "grassyterrain"]}, + ], + eventOnly: true, + }, + ogerponhearthflame: { + eventOnly: true, + }, + ogerponwellspring: { + eventOnly: true, + }, + ogerponcornerstone: { + eventOnly: true, + }, + archaludon: { + learnset: { + aurasphere: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M", "9L24"], + brickbreak: ["9M"], + darkpulse: ["9M"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L48"], + dragonpulse: ["9M"], + dragontail: ["9M", "9L30"], + earthquake: ["9M"], + electroshot: ["9L0"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M", "9L54"], + focusenergy: ["9L42"], + foulplay: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + hardpress: ["9M"], + heavyslam: ["9M"], + honeclaws: ["9L12"], + hyperbeam: ["9M", "9L66"], + irondefense: ["9M", "9L36"], + ironhead: ["9M"], + leer: ["9L1"], + lightscreen: ["9M"], + metalburst: ["9L60"], + metalclaw: ["9M", "9L1"], + metalsound: ["9M", "9L18"], + meteorbeam: ["9M"], + outrage: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L6"], + rocktomb: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + }, + }, + hydrapple: { + learnset: { + astonish: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + bugbite: ["9M"], + bulletseed: ["9M", "9L20"], + curse: ["9M"], + doubleedge: ["9M"], + doublehit: ["9L1"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragoncheer: ["9M"], + dragonpulse: ["9M", "9L32"], + dragontail: ["9M", "9L4"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L40"], + facade: ["9M"], + ficklebeam: ["9L0"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L8"], + gyroball: ["9M"], + heavyslam: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + infestation: ["9L1"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + nastyplot: ["9M"], + outrage: ["9M"], + pollenpuff: ["9M"], + pounce: ["9M"], + powerwhip: ["9L54"], + protect: ["9M", "9L16"], + raindance: ["9M"], + recover: ["9L36"], + recycle: ["9L1"], + reflect: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M", "9L44"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + syrupbomb: ["9L28"], + takedown: ["9M"], + terablast: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + yawn: ["9L1"], + }, + }, + gougingfire: { + learnset: { + ancientpower: ["9L1"], + bite: ["9L21"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + bulldoze: ["9M"], + burningbulwark: ["9L49", "9S0"], + crunch: ["9M"], + crushclaw: ["9L35"], + doubleedge: ["9M"], + doublekick: ["9L1"], + dracometeor: ["9M"], + dragoncheer: ["9M"], + dragonclaw: ["9M", "9L28"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragonrush: ["9L56", "9S0"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M", "9L63", "9S0"], + firefang: ["9M", "9L7"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M", "9L84"], + gigaimpact: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + howl: ["9L14"], + hyperbeam: ["9M"], + incinerate: ["9L1"], + ironhead: ["9M"], + lavaplume: ["9L70", "9S0"], + leer: ["9L1"], + morningsun: ["9L42"], + nobleroar: ["9L1"], + outrage: ["9M", "9L77"], + overheat: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + ragingfury: ["9L91"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + scorchingsands: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snarl: ["9M"], + stomp: ["9L1"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + takedown: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + weatherball: ["9M"], + }, + eventData: [ + {generation: 9, level: 75, ivs: {hp: 20, atk: 20, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["lavaplume", "fireblast", "dragonrush", "burningbulwark"]}, + ], + eventOnly: true, + }, + ragingbolt: { + learnset: { + ancientpower: ["9L1"], + bodypress: ["9M", "9L84"], + bodyslam: ["9M"], + breakingswipe: ["9M"], + calmmind: ["9M", "9L42"], + charge: ["9M", "9L7"], + chargebeam: ["9M"], + crunch: ["9M"], + discharge: ["9L28"], + doubleedge: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L14"], + dragoncheer: ["9M"], + dragonhammer: ["9L56", "9S0"], + dragonpulse: ["9M", "9L70", "9S0"], + dragontail: ["9M", "9L35"], + earthquake: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L21"], + electroball: ["9M"], + electroweb: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + outrage: ["9M"], + protect: ["9M"], + rest: ["9M"], + risingvoltage: ["9L63", "9S0"], + roar: ["9M"], + scaryface: ["9M"], + shockwave: ["9L1"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stomp: ["9L1"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + supercellslam: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M", "9L91"], + thunderbolt: ["9M"], + thunderclap: ["9L49", "9S0"], + thunderfang: ["9M"], + thunderwave: ["9M"], + twister: ["9L1"], + voltswitch: ["9M"], + weatherball: ["9M"], + wildcharge: ["9M"], + zapcannon: ["9L77"], + }, + eventData: [ + {generation: 9, level: 75, ivs: {hp: 20, atk: 20, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["dragonpulse", "risingvoltage", "dragonhammer", "thunderclap"]}, + ], + eventOnly: true, + }, + ironboulder: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L21"], + airslash: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + counter: ["9L35"], + doubleedge: ["9M"], + earthquake: ["9M"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M", "9L91"], + hornattack: ["9L1"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + leer: ["9L1"], + megahorn: ["9L70", "9S0"], + meteorbeam: ["9M"], + mightycleave: ["9L56", "9S0"], + poisonjab: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychocut: ["9L28"], + psyshock: ["9M"], + quickattack: ["9L7"], + quickguard: ["9L77"], + rest: ["9M"], + rockblast: ["9M"], + rockthrow: ["9L1"], + rocktomb: ["9M", "9L42"], + sacredsword: ["9L49", "9S0"], + sandstorm: ["9M"], + scaryface: ["9M"], + slash: ["9L14"], + sleeptalk: ["9M"], + solarblade: ["9M"], + stoneedge: ["9M", "9L84"], + substitute: ["9M"], + swordsdance: ["9M", "9L63", "9S0"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + throatchop: ["9M"], + wildcharge: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 75, ivs: {hp: 20, atk: 20, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["megahorn", "swordsdance", "mightycleave", "sacredsword"]}, + ], + eventOnly: true, + }, + ironcrown: { + learnset: { + agility: ["9M"], + airslash: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + confusion: ["9L1"], + doubleedge: ["9M"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + expandingforce: ["9M"], + facade: ["9M"], + flashcannon: ["9M", "9L42"], + focusblast: ["9M"], + futuresight: ["9M", "9L63", "9S0"], + gigaimpact: ["9M"], + gravity: ["9M"], + heavyslam: ["9M"], + hyperbeam: ["9M", "9L91"], + irondefense: ["9M", "9L21"], + ironhead: ["9M"], + leer: ["9L1"], + metalburst: ["9L84"], + metalclaw: ["9M", "9L1"], + metalsound: ["9M"], + protect: ["9M"], + psychic: ["9M"], + psychicnoise: ["9M"], + psychocut: ["9L35"], + psyshock: ["9M", "9L28"], + quickguard: ["9L77"], + rest: ["9M"], + sacredsword: ["9L49", "9S0"], + scaryface: ["9M"], + slash: ["9L14"], + sleeptalk: ["9M"], + smartstrike: ["9M", "9L7"], + solarblade: ["9M"], + steelbeam: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + supercellslam: ["9M"], + swordsdance: ["9M"], + tachyoncutter: ["9L56", "9S0"], + takedown: ["9M"], + terablast: ["9M"], + voltswitch: ["9M", "9L70", "9S0"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 75, ivs: {hp: 20, atk: 20, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["voltswitch", "futuresight", "tachyoncutter", "sacredsword"]}, + ], + eventOnly: true, + }, + terapagos: { + learnset: { + ancientpower: ["9L10"], + aurasphere: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + bugbuzz: ["9M"], + calmmind: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + doubleedge: ["9M", "9L70"], + dragonpulse: ["9M"], + earthpower: ["9M", "9L40", "9S0"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + gyroball: ["9M", "9L90"], + headbutt: ["9L20"], + heatcrash: ["9M"], + heavyslam: ["9M", "9L50"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M"], + meteorbeam: ["9M"], + powergem: ["9M"], + protect: ["9M", "9L30"], + raindance: ["9M"], + rapidspin: ["9L1"], + rest: ["9M"], + roar: ["9M"], + rockpolish: ["9L80"], + rockslide: ["9M"], + scorchingsands: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + supercellslam: ["9M"], + surf: ["9M"], + takedown: ["9M"], + terastarstorm: ["9L60", "9S0"], + thunder: ["9M"], + thunderbolt: ["9M"], + toxic: ["9M"], + triattack: ["9L1"], + waterpulse: ["9M", "9S0"], + weatherball: ["9M"], + wildcharge: ["9M"], + withdraw: ["9L1"], + zenheadbutt: ["9M", "9S0"], + }, + eventData: [ + {generation: 9, level: 85, gender: "M", nature: "Hardy", ivs: {hp: 31, atk: 15, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["terastarstorm", "zenheadbutt", "earthpower", "waterpulse"]}, + ], + eventOnly: true, + }, + pecharunt: { + learnset: { + acidspray: ["9M"], + astonish: ["9L1"], + curse: ["9M"], + defensecurl: ["9L1"], + destinybond: ["9L16"], + endure: ["9M"], + faketears: ["9M", "9L24"], + foulplay: ["9M"], + gunkshot: ["9M"], + hex: ["9M"], + imprison: ["9M"], + malignantchain: ["9L48", "9S0"], + meanlook: ["9L1"], + memento: ["9L1"], + nastyplot: ["9M", "9L64", "9S0"], + nightshade: ["9M"], + partingshot: ["9L32"], + phantomforce: ["9M"], + poisongas: ["9L1"], + poltergeist: ["9M"], + protect: ["9M"], + recover: ["9L72"], + rest: ["9M"], + rollout: ["9L1"], + shadowball: ["9M", "9L40", "9S0"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9M"], + smog: ["9L1"], + spite: ["9M"], + substitute: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L56", "9S0"], + venoshock: ["9M"], + withdraw: ["9L8"], + }, + eventData: [ + {generation: 9, level: 88, nature: "Timid", moves: ["nastyplot", "toxic", "malignantchain", "shadowball"]}, + ], + eventOnly: true, + }, syclar: { learnset: { absorb: ["9L1", "8L1", "7L1"], attract: ["8M", "7M", "4M"], avalanche: ["9M", "9L31", "8M", "8L31", "7L48", "4M"], blizzard: ["9M", "8M", "7M", "4M"], - bugbite: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbite: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], bugbuzz: ["9M", "9L50", "8M", "8L50", "7L43", "4L42"], captivate: ["4M"], confide: ["7M"], @@ -88608,7 +93587,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fellstinger: ["9E", "8E", "7E"], fling: ["9M", "8M", "7M", "4M"], focusenergy: ["9L25", "8M", "8L25", "7L10", "4L13"], - focuspunch: ["7T"], + focuspunch: ["9M", "7T"], frostbreath: ["7M"], frustration: ["7M", "4M"], furyattack: ["9L5", "8L5", "7L14", "4L1"], @@ -88653,7 +93632,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "4M"], swift: ["9M", "8M"], swordsdance: ["9M", "8M", "7M", "4M"], - tailglow: ["7E", "4E"], + tailglow: ["9E", "7E", "6E", "5E", "4E"], taunt: ["9M", "8M", "7M", "4M"], terablast: ["9M"], toxic: ["7M", "4M"], @@ -88671,7 +93650,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "8M", "7M", "4M"], brickbreak: ["9M", "8M", "7M", "4M"], brutalswing: ["8M", "7M"], - bugbite: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], bugbuzz: ["9M", "9L60", "8M", "8L60", "7L46", "4L42"], bulldoze: ["9M", "8M", "7M"], captivate: ["4M"], @@ -88681,7 +93660,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { cut: ["4M"], doubleedge: ["4T"], doubleteam: ["7M", "4M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], earthpower: ["9M", "8M", "4T"], earthquake: ["9M", "8M", "7M", "4M"], endure: ["9M", "8M", "4M"], @@ -88690,7 +93669,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { fling: ["9M", "8M", "7M", "4M"], focusblast: ["9M", "8M", "7M", "4M"], focusenergy: ["9L25", "8M", "8L25", "7L10", "4L8"], - focuspunch: ["6T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], frostbreath: ["7M"], frustration: ["7M", "4M"], furyattack: ["9L1", "8L1", "7L14", "4L1"], @@ -88706,7 +93685,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { iceshard: ["9L15", "8L15", "7L5", "4L5"], icespinner: ["9M"], iciclecrash: ["9L53", "8L53", "7L41"], - iciclespear: ["9L1", "8M", "8L1", "7L1"], + iciclespear: ["9M", "9L1", "8M", "8L1", "7L1"], icywind: ["9M", "9L20", "8M", "8L20", "7L19", "4T", "4L18"], leechlife: ["9M", "8M", "7M", "4L1"], leer: ["9L1", "8L1", "7L1", "4L1"], @@ -88728,7 +93707,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sheercold: ["9L67", "8L67", "5L59", "4L60"], signalbeam: ["7T"], silverwind: ["4M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], slash: ["9L39", "8L39", "7L28", "4L14"], sleeptalk: ["9M", "8M", "7M", "4M"], snore: ["8M", "4T"], @@ -88747,7 +93726,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "4M"], trailblaze: ["9M"], - tripleaxel: ["8T"], + tripleaxel: ["9M", "8T"], uturn: ["9M", "8M", "7M", "4M"], waterpulse: ["9M", "6T", "4M"], xscissor: ["9M", "9L46", "8M", "8L46", "7M", "7L32", "4M", "4L27"], @@ -88755,110 +93734,123 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, revenankh: { learnset: { - ancientpower: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], - armthrust: ["9L5", "8L5", "7L13", "4L18"], - attract: ["8M", "7M", "4M"], - bide: ["7L1", "4L1"], - bind: ["7T"], - bodypress: ["9M", "8M"], + ancientpower: ["9E", "8E", "7E", "6E", "5E", "4E"], + armthrust: ["9L4", "8L4", "7L8", "6L8", "5L8", "4L8"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bind: ["7T", "6T", "5T"], bodyslam: ["9M", "8M"], - brickbreak: ["9M", "8M", "7M", "4M"], - brutalswing: ["8M", "7M"], - bulkup: ["9M", "8M", "7M", "4M"], - bulldoze: ["9M", "8M", "7M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], captivate: ["4M"], - closecombat: ["9M"], + closecombat: ["9M", "8M"], coaching: ["8T"], - confide: ["7M"], + confide: ["7M", "6M"], confuseray: ["9M"], - counter: ["9E", "8E", "7E", "4T"], - curse: ["9E", "8E", "7E", "4E"], - destinybond: ["9E", "8E", "7E", "4E"], - doubleteam: ["7M", "4M"], - drainpunch: ["9M", "9L50", "8M", "8L55", "7M", "4M"], - dreameater: ["7M", "4M"], - dualchop: ["7T"], - earthquake: ["9M", "8M", "7M", "4M"], - embargo: ["7M", "4M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9L36", "8L36", "7L28", "6L28", "5L28", "4L28"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + destinybond: ["9E", "8E", "7E", "6E", "5E", "4E"], + detect: ["9L8", "8L8", "7L11", "6L11", "5L11", "4L11"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["8M", "7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], endure: ["9M", "8M", "4M"], - facade: ["9M", "8M", "7M", "4M"], - fling: ["9M", "8M", "7M", "4M"], - focusblast: ["9M", "8M", "7M", "4M"], - focuspunch: ["9L75", "8L75", "7T", "4M"], - forcepalm: ["9E", "8E", "7E", "4E"], - frustration: ["7M", "4M"], - gigaimpact: ["9M", "8M", "7M", "4M"], - glare: ["9L35", "8L35", "7L26", "4L26"], - hammerarm: ["9L60", "8L65", "7L57", "4L44"], - headbutt: ["7T"], - helpinghand: ["9M", "8M", "7T", "4T"], - hex: ["9M", "8M", "7E"], - hiddenpower: ["7M", "4M"], - highhorsepower: ["8M"], - hyperbeam: ["9M", "8M", "7M", "4M"], - icepunch: ["9M", "8M", "7T", "4T"], - knockoff: ["9L40", "8L40", "7T", "4T"], - machpunch: ["9E", "8E", "7E", "4E"], - meanlook: ["9L25", "8L25", "7L18", "4L23"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "9L56", "8L60", "7T", "6T", "4M"], + forcepalm: ["9L28", "8L28", "7L15", "6L15", "5L15", "4L15"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + glare: ["9L24", "8L24", "7L21", "6L21", "5L21", "4L21"], + grudge: ["8L52", "7L55", "6L55", "5L55", "4L49"], + hammerarm: ["9L48", "8L48", "7L49", "6L49", "5L49", "4L44"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L32", "8M", "8L32", "7L44", "6L44", "5L44"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L40", "8L40", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + machpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], + meanlook: ["9L16", "8L16", "7L5", "6L5", "5L5", "4L5"], megapunch: ["8M"], - memento: ["9E", "8E", "7E", "4E"], - metronome: ["9M", "8M", "7E", "4T"], - mimic: ["7E", "4E"], - moonlight: ["9L45", "8L45", "7L62", "4L62"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E"], + metronome: ["9M", "8M"], + moonlight: ["9L44", "8L44", "7L66", "6L66", "5L66", "4L60"], mudslap: ["9M", "4T"], - nastyplot: ["9M", "8M", "7E", "4E"], + nastyplot: ["9M", "8M", "7E", "6E", "5E", "4E"], naturalgift: ["4M"], - ominouswind: ["7E", "4T", "4E"], - painsplit: ["7T", "4T"], - payback: ["9L20", "8M", "8L20", "7L38", "4M"], - poltergeist: ["9L65", "8T"], - poweruppunch: ["7M"], - powerwhip: ["9L70", "8M", "8L70", "7L52", "4L38"], - protect: ["9M", "8M", "7M", "4M"], - psychup: ["7M", "4M"], - punishment: ["7L71", "4L52"], - quickguard: ["9L15", "8L15", "7L48"], - raindance: ["9M", "8M", "7M", "4M"], - rest: ["9M", "8M", "7M", "4M"], - retaliate: ["8M", "7M"], - return: ["7M", "4M"], - revenge: ["8M", "8L50", "7L33", "4L33"], + nightshade: ["9M"], + ominouswind: ["7E", "6E", "5E", "4T", "4E"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + phantomforce: ["9M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poltergeist: ["9M", "8T"], + poweruppunch: ["6M"], + powerwhip: ["9L52", "8L56", "7L60", "6L60", "5L60", "4L55"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + punishment: ["7L33", "6L33", "5L33", "4L33"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], reversal: ["9M", "8M"], - rockslide: ["9M", "8M", "7M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], rocksmash: ["6M", "5M", "4M"], - rocktomb: ["9M", "8M", "7M", "7L23", "4M", "4L13"], - round: ["8M", "7M"], - safeguard: ["8M", "7M", "4M"], - sandstorm: ["9M", "8M", "7M", "4M"], - sandtomb: ["9L1", "8M", "8L1", "7L5", "4L5"], - secretpower: ["7M", "4M"], - shadowball: ["9M", "8M", "7M", "4M"], - shadowclaw: ["9M", "8M", "7M"], - shadowpunch: ["9L30", "8L30", "7L29", "4L29"], - shadowsneak: ["9L10", "8L10", "7E", "4E"], - sleeptalk: ["9M", "8M", "7M", "4M"], - smackdown: ["7M"], - snore: ["8M", "7T"], - spite: ["7T", "4T"], + rocktomb: ["9M", "8M", "7M", "7L18", "6M", "6L18", "5M", "5L18", "4M", "4L18"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "9L12", "8M", "8L12", "7L39", "6L39", "5L39", "4L39"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowpunch: ["9L20", "8L20", "7L25", "6L25", "5L25", "4L25"], + shadowsneak: ["9E", "8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], strength: ["6M", "5M", "4M"], - substitute: ["9M", "8M", "7M", "4M"], - suckerpunch: ["9L55", "8L60", "4T"], - sunnyday: ["9M", "8M", "7M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], superpower: ["8M", "7T", "6T", "5T", "4T"], - swagger: ["7M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], takedown: ["9M"], - taunt: ["9M", "8M", "7M", "4M"], - telekinesis: ["7M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], terablast: ["9M"], - thunderpunch: ["9M"], - torment: ["7M", "4M"], - toxic: ["7M", "4M"], - trick: ["9M", "8M", "7T", "4T"], - vacuumwave: ["4T"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + upperhand: ["9M"], + vacuumwave: ["9M", "4T"], willowisp: ["9M", "8M", "7M"], - workup: ["8M", "7M"], - wrap: ["9L1", "8L1", "7L1", "4L1"], - wringout: ["7L66", "4L9"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + wrap: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], }, }, embirch: { @@ -88891,11 +93883,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L20", "8M", "8L20", "7T", "7L32", "4M", "4L21"], grassknot: ["9M", "8M", "7M", "4M"], grasswhistle: ["7E", "4E"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M", "7E"], growth: ["9L12", "8L12", "7L28", "4L5"], headbutt: ["4T"], - heatcrash: ["9L44", "8M", "8L44"], + heatcrash: ["9M", "9L44", "8M", "8L44"], heatwave: ["9M", "8M", "7T", "4T"], hiddenpower: ["7M", "4M"], incinerate: ["7M"], @@ -88922,7 +93914,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "4M"], round: ["8M", "7M"], safeguard: ["8M", "7M", "4M"], - sandtomb: ["8M", "7L23", "7E", "4E"], + sandtomb: ["9M", "8M", "7L23", "7E", "4E"], secretpower: ["4M"], seedbomb: ["9M", "9L28", "8M", "8L28", "7T", "4T"], sleeptalk: ["9M", "8M", "7M", "4M"], @@ -88957,7 +93949,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["7T", "4T"], bulldoze: ["9M", "8M", "7M"], bulletseed: ["9M", "9L1", "8M", "8L1", "7L1", "4M", "4L1"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], confide: ["7M"], counter: ["4T"], doubleedge: ["9L56", "8L56", "7L1", "4T"], @@ -88983,11 +93975,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "4M"], gigadrain: ["9M", "9L20", "8M", "8L20", "7L32", "4M", "4L21"], grassknot: ["9M", "8M", "7M", "4M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], growth: ["9L12", "8L12", "7L28", "4L5"], headbutt: ["4T"], - heatcrash: ["9L62", "8M", "8L62"], + heatcrash: ["9M", "9L62", "8M", "8L62"], heatwave: ["9M", "8M", "7T", "4T"], hiddenpower: ["7M", "4M"], incinerate: ["7M"], @@ -89016,7 +94008,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "4M"], round: ["8M", "7M"], safeguard: ["8M", "7M", "4M"], - sandtomb: ["8M"], + sandtomb: ["9M", "8M"], secretpower: ["7M", "4M"], seedbomb: ["9M", "9L32", "8M", "8L32", "7L23", "4T"], sleeptalk: ["9M", "8M", "7M", "4M"], @@ -89051,12 +94043,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["7T", "4T"], bulldoze: ["9M", "8M", "7M"], bulletseed: ["9M", "9L1", "8M", "8L1", "7L1", "4M", "4L1"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], burnup: ["8L72", "7L68"], confide: ["7M"], counter: ["4T"], doubleedge: ["9L1", "8L1", "4T"], doubleteam: ["7M", "4M"], + dragoncheer: ["9M"], dragondance: ["9M", "8M"], dragonpulse: ["9M", "8M", "7T"], dragontail: ["9M", "7M"], @@ -89079,15 +94072,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L20", "8M", "8L20", "7L32", "4M", "4L21"], gigaimpact: ["9M", "8M", "7M", "4M"], grassknot: ["9M", "8M", "7M", "4M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], growth: ["9L12", "8L12", "7L28", "4L5"], headbutt: ["4T"], - heatcrash: ["9L64", "8M", "8L64", "7L41"], + heatcrash: ["9M", "9L64", "8M", "8L64", "7L41"], heatwave: ["9M", "8M", "7T", "4T"], heavyslam: ["9M", "8M"], hiddenpower: ["7M", "4M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M", "7M", "4M"], incinerate: ["7M"], irondefense: ["9M", "9L41", "8M", "8L41", "7L37", "4T", "4L42"], @@ -89116,14 +94109,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rocktomb: ["9M", "8M", "7M", "4M"], round: ["8M", "7M"], safeguard: ["8M", "7M", "4M"], - sandtomb: ["8M"], - scorchingsands: ["8T"], + sandtomb: ["9M", "8M"], + scorchingsands: ["9M", "8T"], secretpower: ["7M", "4M"], seedbomb: ["9M", "9L32", "8M", "8L32", "7L23", "4T"], sleeptalk: ["9M", "8M", "7M", "4M"], snore: ["8M", "4T"], solarbeam: ["9M", "8M", "7M", "4M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], stealthrock: ["9M", "8M", "7T", "4M"], strength: ["6M", "5M", "4M"], substitute: ["9M", "8M", "7M", "4M"], @@ -89134,6 +94127,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swordsdance: ["9M", "8M", "7M", "4M"], synthesis: ["9L27", "8L27", "7L14", "4T", "4L48"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], terrainpulse: ["8T"], toxic: ["7M", "4M"], @@ -89177,7 +94171,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "4M"], icespinner: ["9M"], icywind: ["9M", "8M", "7T", "4T"], - knockoff: ["9L24", "8L24", "7L14", "4T", "4L14"], + knockoff: ["9M", "9L24", "8L24", "7L14", "4T", "4L14"], lightscreen: ["9M", "8M", "7M", "4M"], luckychant: ["7L55", "4L59"], magicroom: ["9E", "8M", "7E"], @@ -89199,7 +94193,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M"], safeguard: ["9L44", "8M", "8L44", "7M", "7L9", "4M", "4L9"], sandstorm: ["9M", "8M", "7M", "4M"], - sandtomb: ["8M", "7E", "4E"], + sandtomb: ["9M", "8M", "7E", "6E", "5E", "4E"], secretpower: ["7M", "4M"], selfdestruct: ["9E", "8M"], shadowball: ["9M", "8M", "7M", "4M"], @@ -89220,7 +94214,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "8M", "7M"], terablast: ["9M"], thief: ["9M", "8M", "7M"], - toxic: ["9L40", "8L40", "7M", "4M"], + toxic: ["9M", "9L40", "8L40", "7M", "6M", "5M", "4M"], toxicspikes: ["9M", "9L20", "8M", "8L20", "7L39", "4L39"], trickroom: ["9M", "8M", "7M", "4M"], twister: ["4T"], @@ -89260,7 +94254,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "4M"], gastroacid: ["9L1", "8L1", "7T", "4T"], gigaimpact: ["9M", "8M", "7M", "4M"], - gravity: ["9L50", "8L50", "7L47", "4T", "4L49"], + gravity: ["9M", "9L50", "8L50", "7L47", "4T", "4L49"], gunkshot: ["9M", "9L62", "8M", "8L62"], gust: ["9L1", "8L1", "7L1", "4L1"], healblock: ["7L54", "4L53"], @@ -89269,7 +94263,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M", "4M"], icespinner: ["9M"], icywind: ["9M", "8M", "7T", "4T"], - knockoff: ["9L24", "8L24", "7L14", "4T", "4L14"], + knockoff: ["9M", "9L24", "8L24", "7L14", "4T", "4L14"], lightscreen: ["9M", "8M", "7M", "4M"], luckychant: ["7L65", "4L67"], magicroom: ["8M"], @@ -89282,7 +94276,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poisonjab: ["9M", "8M", "7M", "4M"], pounce: ["9M"], protect: ["9M", "8M", "7M", "4M"], - psychup: ["7M", "4M"], + psychup: ["9M", "7M", "4M"], raindance: ["9M", "8M", "7M", "4M"], rapidspin: ["9L16", "8L16", "7L9", "4L9"], reflect: ["9M", "8M", "7M", "4M"], @@ -89297,16 +94291,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M", "7M"], safeguard: ["9L1", "8M", "8L1", "7M", "4M"], sandstorm: ["9M", "8M", "7M", "4M"], - sandtomb: ["8M"], - scorchingsands: ["8T"], + sandtomb: ["9M", "8M"], + scorchingsands: ["9M", "8T"], secretpower: ["7M", "4M"], selfdestruct: ["8M"], shadowball: ["9M", "8M", "7M", "4M"], skillswap: ["9M", "8M", "7M", "4M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "4M"], sludgebomb: ["9M", "9L38", "8M", "8L38", "7M", "7L35", "4M", "4L35"], - sludgewave: ["8M", "7M"], + sludgewave: ["9M", "8M", "7M"], smartstrike: ["9M", "8M"], snatch: ["7M", "4M"], snore: ["8M", "7T", "4T"], @@ -89324,10 +94318,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], thief: ["9M", "8M", "7M", "4M"], torment: ["7M", "4M"], - toxic: ["9L44", "8L44", "7M", "4M"], + toxic: ["9M", "9L44", "8L44", "7M", "6M", "5M", "4M"], toxicspikes: ["9M", "9L20", "8M", "8L20", "7L41", "4L41"], trickroom: ["9M", "8M", "7M", "4M"], twister: ["4T"], + upperhand: ["9M"], uturn: ["9M", "8M", "7M", "4M"], venoshock: ["9M", "8M", "7M"], whirlwind: ["9L32", "8L32", "7L25", "4L25"], @@ -89391,7 +94386,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["7M", "4M"], shadowball: ["9M", "8M", "7M", "4M"], sleeptalk: ["9M", "8M", "7M", "4M"], - smackdown: ["9L1", "8L1", "7M"], + smackdown: ["9M", "9L1", "8L1", "7M"], snore: ["8M", "7T", "4T"], speedswap: ["8M"], stealthrock: ["9M", "8M", "7T", "4M"], @@ -89404,7 +94399,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "4M"], trick: ["9M", "8M", "7T", "4T"], - vacuumwave: ["9L24", "8L24", "7L60", "4T"], + vacuumwave: ["9M", "9L24", "8L24", "7L60", "4T"], zenheadbutt: ["9M", "8M", "7T"], }, }, @@ -89464,7 +94459,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["7M", "4M"], shadowball: ["9M", "8M", "7M", "4M"], sleeptalk: ["9M", "8M", "7M", "4M"], - smackdown: ["9L1", "8L1", "7M"], + smackdown: ["9M", "9L1", "8L1", "7M"], smartstrike: ["9M", "8M"], snore: ["8M", "7T", "4T"], speedswap: ["8M", "7L55"], @@ -89478,7 +94473,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "4M"], trick: ["9M", "8M", "7T", "4T"], - vacuumwave: ["9L24", "8L24", "7L60", "4T"], + vacuumwave: ["9M", "9L24", "8L24", "7L60", "4T"], zenheadbutt: ["9M", "8M", "7T"], }, }, @@ -89544,7 +94539,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["7M", "4M"], shadowball: ["9M", "8M", "7M", "4M"], sleeptalk: ["9M", "8M", "7M", "4M"], - smackdown: ["9L1", "8L1", "7M"], + smackdown: ["9M", "9L1", "8L1", "7M"], smartstrike: ["9M", "8M", "7M"], snore: ["8M", "7T", "4T"], speedswap: ["8M", "7L56"], @@ -89558,8 +94553,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], toxic: ["7M", "4M"], trick: ["9M", "8M", "7T", "4T"], - vacuumwave: ["9L24", "8L24", "7L60", "4T"], - weatherball: ["9L1", "8M", "8L1", "7L1", "4L1"], + vacuumwave: ["9M", "9L24", "8L24", "7L60", "4T"], + weatherball: ["9M", "9L1", "8M", "8L1", "7L1", "4L1"], zenheadbutt: ["9M", "8M", "7T"], }, }, @@ -89593,7 +94588,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M", "4M"], falseswipe: ["9M", "8M"], fling: ["9M", "8M", "7M", "4M"], - focuspunch: ["9L52", "8L52", "7L59", "4M", "4L67"], + focuspunch: ["9M", "9L52", "8L52", "7L59", "4M", "4L67"], foulplay: ["9M", "8M", "7T"], frustration: ["7M", "4M"], hail: ["8M", "7M", "4M"], @@ -89602,7 +94597,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "8M", "7M", "4M"], icepunch: ["9M", "8M", "7T", "4T"], icywind: ["9M", "8M", "7T", "4T"], - knockoff: ["9L24", "8L24", "7T", "4T"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T", "4T"], lashout: ["8T"], liquidation: ["9M", "9L40"], lowkick: ["9M", "8M", "7T", "4T"], @@ -89624,7 +94619,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "7M"], return: ["7M", "4M"], revenge: ["8M", "8L28", "7L42", "4L41"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockslide: ["9M", "8M", "7M", "4M"], rocksmash: ["4M"], rocktomb: ["9M", "8M", "7M", "4M"], @@ -89685,7 +94680,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chipaway: ["7L30"], circlethrow: ["9L1", "8L1", "7L1"], closecombat: ["9M", "8M"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M"], crosschop: ["7M"], crosspoison: ["8M"], @@ -89700,12 +94695,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { falseswipe: ["9M", "8M"], fling: ["9M", "8M", "7M", "4M"], focusblast: ["9M", "8M", "7M", "4M"], - focuspunch: ["9L60", "8L60", "7L73", "4M", "4L67"], + focuspunch: ["9M", "9L60", "8L60", "7L73", "4M", "4L67"], foulplay: ["9M", "8M", "7T"], frustration: ["7M", "4M"], gigaimpact: ["9M", "8M", "7M", "4M"], gunkshot: ["9M", "8M", "7T", "4T"], hail: ["8M", "7M", "4M"], + hardpress: ["9M"], headbutt: ["9L36", "8L36", "4T"], hiddenpower: ["7M", "4M"], hydropump: ["9M", "8M"], @@ -89713,14 +94709,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icebeam: ["9M", "8M", "7M", "4M"], icepunch: ["9M", "8M", "7T", "4T"], icywind: ["9M", "8M", "7T", "4T"], - knockoff: ["9L24", "8L24", "7T", "4T"], + knockoff: ["9M", "9L24", "8L24", "7T", "4T"], lashout: ["8T"], liquidation: ["9M", "9L42"], lowkick: ["9M", "8M", "7T", "4T"], lowsweep: ["9M", "8M", "7M"], machpunch: ["9L16", "8L16", "7L35", "4L32"], megapunch: ["8M"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudslap: ["9M", "4T"], naturalgift: ["4M"], poisonjab: ["9M", "8M", "7M"], @@ -89733,7 +94729,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "7M"], return: ["7M", "4M"], revenge: ["8M", "8L28", "7L46", "4L41"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockslide: ["9M", "8M", "7M", "4M"], rocksmash: ["4M"], rocktomb: ["9M", "8M", "7M", "4M"], @@ -89742,7 +94738,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["8M", "8L42", "7M", "7L40"], scaryface: ["9M", "8M"], secretpower: ["7M", "4M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "4M"], sludgebomb: ["9M", "8M", "7M", "4M"], smokescreen: ["9L12", "8L12", "7L7", "4L7"], @@ -89761,7 +94757,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L32", "8M", "8L32", "7M", "7L24", "4M", "4L36"], terablast: ["9M"], thief: ["9M", "9L1", "8M", "8L1", "7M", "7L51", "4M", "4L47"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunderpunch: ["9M", "8M", "7T", "4T"], torment: ["7M", "4M"], toxic: ["7M", "4M"], @@ -89769,7 +94765,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { waterfall: ["9M", "8M", "7M", "4M"], watergun: ["9L1", "8L1"], waterpulse: ["9M", "7T", "4M"], - whirlpool: ["8M", "4M"], + whirlpool: ["9M", "8M", "4M"], wideguard: ["9L54", "8L54", "7L62"], workup: ["8M", "7M"], wrap: ["9L1", "8L1", "7L1", "4L1"], @@ -89812,7 +94808,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icepunch: ["9M", "8M", "7T", "4T"], icywind: ["9M", "8M", "7T", "4T"], irontail: ["9E", "8M", "7E", "6E", "5E", "4M"], - knockoff: ["9L36", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L36", "7T", "6T", "5T", "4T"], lastresort: ["7T", "4T"], lick: ["9L4", "8L4", "7L6", "4L6"], magiccoat: ["7T", "4T"], @@ -89828,7 +94824,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { payback: ["8M", "7M", "4M"], perishsong: ["9L48", "8L48", "7L56", "4L55"], playrough: ["9M", "8M", "7E"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M", "4M"], psychoshift: ["8E", "7E", "4E"], psychup: ["7M", "4M"], @@ -89837,7 +94833,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { retaliate: ["8M", "7M"], return: ["7M", "4M"], revenge: ["8M", "8L36", "7L39", "4L44"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], round: ["8M", "7M"], safeguard: ["8M", "7M", "4M"], scratch: ["9L1", "8L1", "7L1", "4L1"], @@ -89849,7 +94845,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "4M"], snatch: ["7M", "4M"], snore: ["8M", "7T", "4T"], - spite: ["9L12", "8L12", "7T", "4T"], + spite: ["9M", "9L12", "8L12", "7T", "6T", "5T", "4T"], substitute: ["9M", "8M", "7M", "4M"], suckerpunch: ["9E", "8E", "7E", "4T"], sunnyday: ["9M", "8M", "7M", "4M"], @@ -89889,7 +94885,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { dreameater: ["7M", "4M"], earthquake: ["9M", "8M", "7M", "4M"], embargo: ["7M", "4M"], - endeavor: ["7T", "4T"], + encore: ["9M"], + endeavor: ["9M", "7T", "4T"], facade: ["9M", "8M", "7M", "4M"], fakeout: ["9L1", "8L1", "7L27", "4L35"], falseswipe: ["9M", "8M", "7M", "4M"], @@ -89911,7 +94908,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irondefense: ["9M", "8M", "7T", "4T"], ironhead: ["9M", "9L40", "8M", "8L40", "7L43", "4T"], irontail: ["8M", "4M"], - knockoff: ["9L36", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L36", "7T", "6T", "5T", "4T"], lastresort: ["7T", "4T"], lick: ["9L1", "8L1", "7L6", "4L6"], lowkick: ["9M", "8M", "7T", "4T"], @@ -89927,15 +94924,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { payback: ["8M", "7M", "4M"], perishsong: ["9L52", "8L52", "7L56", "4L55"], playrough: ["9M", "8M", "7E"], - poltergeist: ["8T"], + poltergeist: ["9M", "8T"], protect: ["9M", "8M", "7M", "4M"], - psychup: ["7M", "4M"], + psychup: ["9M", "7M", "4M"], raindance: ["9M", "8M", "7M", "4M"], rest: ["9M", "8M", "7M", "4M"], retaliate: ["8M", "7M"], return: ["7M", "4M"], revenge: ["8M", "8L36", "7L39", "4L44"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], round: ["8M", "7M"], safeguard: ["8M", "7M", "4M"], scratch: ["9L1", "8L1", "7L1", "4L1"], @@ -89944,17 +94941,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L35", "4M", "4L40"], shadowsneak: ["9L16", "8L16", "7L18", "4L18"], shadowstrike: ["9L44", "8L44", "7L48", "4L49"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "4M"], snatch: ["7M", "4M"], snore: ["8M", "7T", "4T"], - spite: ["9L12", "8L12", "7T", "4T"], + spite: ["9M", "9L12", "8L12", "7T", "6T", "5T", "4T"], steelbeam: ["9M", "8T"], strengthsap: ["9L1"], substitute: ["9M", "8M", "7M", "4M"], suckerpunch: ["4T"], sunnyday: ["9M", "8M", "7M", "4M"], - superfang: ["7T", "4T"], + superfang: ["9M", "7T", "6T", "5T", "4T"], superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["7M", "4M"], tailwhip: ["9L1", "8L1", "7L1", "4L1"], @@ -89967,6 +94964,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["7M", "4M"], trick: ["9M", "9L1", "8M", "8L1", "7T", "4T"], trickroom: ["9M", "8M", "7M", "4M"], + upperhand: ["9M"], uturn: ["9M", "8M", "7M", "4M"], willowisp: ["9M", "8M", "7M", "4M"], }, @@ -89979,7 +94977,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bide: ["7L1", "4L1"], blizzard: ["9M", "8M", "7M", "4M"], captivate: ["4M"], - charge: ["9L12", "8L12", "7L11", "4L11"], + charge: ["9M", "9L12", "8L12", "7L11", "4L11"], chargebeam: ["9M", "7M", "4M"], chillingwater: ["9M"], confide: ["7M"], @@ -90022,7 +95020,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "4M"], return: ["7M", "4M"], risingvoltage: ["8T"], - roar: ["9E", "8E", "7M", "4M"], + roar: ["9M", "9E", "8E", "7M", "6M", "5M", "4M"], round: ["8M", "7M"], sandstorm: ["9M", "8M", "7M", "4M"], secretpower: ["7M", "4M"], @@ -90054,7 +95052,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { voltswitch: ["9M", "8M", "7M"], waterfall: ["9M", "8M", "7M", "4M"], waterpulse: ["9M", "7T", "4M"], - weatherball: ["9E", "8M"], + weatherball: ["9M", "9E", "8M"], whirlwind: ["9L16", "8L16", "7L1", "4L1"], wildcharge: ["9M", "8M", "7M"], zapcannon: ["9L44", "8L44", "7L59", "4L59"], @@ -90068,7 +95066,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bide: ["7L1", "4L1"], blizzard: ["9M", "8M", "7M", "4M"], captivate: ["4M"], - charge: ["9L12", "8L12", "7L11", "4L11"], + charge: ["9M", "9L12", "8L12", "7L11", "4L11"], chargebeam: ["9M", "7M", "4M"], chillingwater: ["9M"], confide: ["7M"], @@ -90118,7 +95116,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "4M"], return: ["7M", "4M"], risingvoltage: ["8T"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], round: ["8M", "7M"], sandstorm: ["9M", "8M", "7M", "4M"], secretpower: ["7M", "4M"], @@ -90151,7 +95149,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { voltswitch: ["9M", "8M", "7M"], waterfall: ["9M", "8M", "7M", "4M"], waterpulse: ["9M", "7T", "4M"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], whirlwind: ["9L16", "8L16", "7L1", "4L1"], wildcharge: ["9M", "8M", "7M"], zapcannon: ["9L52", "8L52", "7L59", "4L59"], @@ -90167,7 +95165,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { breakingswipe: ["9L1", "8M"], bulldoze: ["9M", "8M", "7M"], captivate: ["4M"], - charge: ["9L12", "8L12", "7L11", "4L11"], + charge: ["9M", "9L12", "8L12", "7L11", "4L11"], chargebeam: ["9M", "7M", "4M"], chillingwater: ["9M"], confide: ["7M"], @@ -90176,6 +95174,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["7M", "4M"], dracometeor: ["9M", "8T", "7T", "4T"], dragonbreath: ["9L20", "8L20", "7L29"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M", "7M", "4M"], dragonpulse: ["9M", "8M", "7T", "4M"], dragonrage: ["7L24", "4L7"], @@ -90184,7 +95183,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M"], electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], electroball: ["9M", "8M"], - electroweb: ["8M", "7T"], + electroweb: ["9M", "8M", "7T"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "4M"], fireblast: ["9M", "8M", "7M", "4M"], @@ -90209,7 +95208,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { irontail: ["8M", "7T"], lightscreen: ["9M", "8M", "7M", "4M"], lockon: ["9L56", "8L56"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], mudslap: ["9M", "4T"], naturalgift: ["4M"], naturepower: ["7M"], @@ -90220,7 +95219,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "4M"], return: ["7M", "4M"], risingvoltage: ["8T"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], round: ["8M", "7M"], sandstorm: ["9M", "8M", "7M", "4M"], secretpower: ["7M", "4M"], @@ -90234,6 +95233,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strength: ["4M"], substitute: ["9M", "8M", "7M", "4M"], sunnyday: ["9M", "8M", "7M", "4M"], + supercellslam: ["9M"], surf: ["9M", "8M", "7M", "4M"], swagger: ["7M"], swift: ["9M", "8M", "4T"], @@ -90254,7 +95254,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { voltswitch: ["9M", "8M", "7M"], waterfall: ["9M", "8M", "7M", "4M"], waterpulse: ["9M", "7T", "4M"], - weatherball: ["8M", "7L42"], + weatherball: ["9M", "8M", "7L42"], whirlwind: ["9L16", "8L16", "7L1", "4L1"], wildcharge: ["9M", "8M", "7M"], zapcannon: ["9L56", "8L56", "7L59", "4L59"], @@ -90296,10 +95296,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { foulplay: ["9M", "8M", "7T"], frustration: ["7M", "4M"], hiddenpower: ["7M", "4M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], icespinner: ["9M"], irontail: ["8M", "7T", "4M"], - knockoff: ["9L25", "8L25", "7T", "4T"], + knockoff: ["9M", "9L25", "8L25", "7T", "6T", "5T", "4T"], leer: ["9L1", "8L1", "7L1", "4L1"], magnitude: ["7L32", "4L42"], mudshot: ["9M"], @@ -90314,14 +95314,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "4M"], retaliate: ["8M", "7M"], return: ["7M", "4M"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockslide: ["9M", "8M", "7M", "4M"], rocksmash: ["7M", "4M"], rocktomb: ["9M", "8M", "7M"], rollout: ["4T"], round: ["8M", "7M"], sandstorm: ["9M", "8M", "7M", "4M"], - sandtomb: ["9L10", "8M", "8L10", "7E", "4E"], + sandtomb: ["9M", "9L10", "8M", "8L10", "7E", "6E", "5E", "4E"], scorchingsands: ["8T"], screech: ["8M", "7E", "4E"], secretpower: ["7M", "4M"], @@ -90384,14 +95384,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M", "4M"], headlongrush: ["9L63"], hiddenpower: ["7M", "4M"], - highhorsepower: ["9L1", "8M", "8L1", "7L1"], + highhorsepower: ["9M", "9L1", "8M", "8L1", "7L1"], hornattack: ["9L1", "8L1", "7L5", "4L6"], horndrill: ["9L70", "8L63", "7L74", "4L70"], hyperbeam: ["9M", "8M", "7M", "4M"], icespinner: ["9M"], irontail: ["8M", "7T", "4M"], - knockoff: ["9L25", "8L25", "7T", "4T"], - lashout: ["8T"], + knockoff: ["9M", "9L25", "8L25", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], leer: ["9L1", "8L1", "7L1", "4L1"], magnitude: ["7L32", "4L42"], megahorn: ["9L56", "8M", "8L56", "7L64", "4L63"], @@ -90407,15 +95407,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "4M"], retaliate: ["8M", "7M"], return: ["7M", "4M"], - roar: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], rockslide: ["9M", "8M", "7M", "4M"], rocksmash: ["7M", "4M"], rocktomb: ["9M", "8M", "7M"], rollout: ["4T"], round: ["8M", "7M"], sandstorm: ["9M", "8M", "7M", "4M"], - sandtomb: ["9L1", "8M", "8L1"], - scorchingsands: ["8T"], + sandtomb: ["9M", "9L1", "8M", "8L1"], + scorchingsands: ["9M", "8T"], screech: ["8M"], secretpower: ["7M", "4M"], sleeptalk: ["9M", "8M", "7M", "4M"], @@ -90431,11 +95431,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["9M", "8M", "7M", "4M"], suckerpunch: ["4T"], sunnyday: ["9M", "8M", "7M", "4M"], + supercellslam: ["9M"], superpower: ["8M", "7T", "6T", "5T", "4T"], swagger: ["7M", "4M"], swallow: ["9L42", "8L42", "7L53", "4L48"], takedown: ["9M"], taunt: ["9M", "8M", "7M", "4M"], + temperflare: ["9M"], terablast: ["9M"], thunderfang: ["9M", "8M"], torment: ["7M"], @@ -90446,7 +95448,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protowatt: { learnset: { bubble: ["7L1", "4L1"], - charge: ["9L1", "8L1", "7L1", "4L1"], + charge: ["9M", "9L1", "8L1", "7L1", "4L1"], confuseray: ["9M", "9L10", "8L10", "7L11", "4L11"], counter: ["9E", "8E", "7E", "4E"], entrainment: ["9E", "8E", "7E"], @@ -90466,12 +95468,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { aquatail: ["9L50", "8L50", "7L1"], attract: ["8M", "7M", "4M"], - blizzard: ["9M", "8M", "7M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M"], bubble: ["7L1", "4L1"], bubblebeam: ["9L0", "8L0", "7L28", "4L28"], bulldoze: ["9M", "8M", "7M"], captivate: ["4M"], - charge: ["9L1", "8L1", "7L1", "4L1"], + charge: ["9M", "9L1", "8L1", "7L1", "4L1"], chillingwater: ["9M"], confide: ["7M"], confuseray: ["9M", "9L1", "8L1", "7L11", "4L11"], @@ -90486,7 +95488,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { eerieimpulse: ["9M", "8M"], electricterrain: ["9M", "8M"], electroball: ["9M", "8M"], - electroweb: ["8M", "7T"], + electroweb: ["9M", "8M", "7T"], endure: ["9M", "8M", "4M"], facade: ["9M", "8M", "7M", "4M"], flash: ["4M"], @@ -90497,12 +95499,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M", "4M"], guillotine: ["9L60", "8L60", "7L57", "4L57"], hail: ["8M", "7M", "4M"], - heartswap: ["7L53", "4L46"], + heartswap: ["9S0", "7L53", "4L46"], helpinghand: ["9M", "8M", "7T", "4T"], hiddenpower: ["7M", "4M"], hyperbeam: ["9M", "8M", "7M", "4M"], - icebeam: ["9M", "8M", "7M", "4M"], - icepunch: ["9M", "8M", "7T", "4T"], + icebeam: ["9M", "9S0", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], iceshard: ["9L1", "8L1", "7L1", "4L1"], icywind: ["9M", "8M", "7T", "4T"], imprison: ["9M", "9L20", "8M", "8L20", "7L17", "4L17"], @@ -90534,12 +95536,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snowscape: ["9M"], speedswap: ["8M"], substitute: ["9M", "8M", "7M", "4M"], - surf: ["9M", "8M", "7M", "4M"], + surf: ["9M", "9S0", "8M", "7M", "4M"], swagger: ["7M"], swift: ["9M", "8M", "4T"], terablast: ["9M"], thunder: ["9M", "9L55", "8M", "8L55", "7M", "7L63", "4M", "4L63"], - thunderbolt: ["9M", "8M", "7M", "4M"], + thunderbolt: ["9M", "9S0", "8M", "7M", "4M"], thunderpunch: ["9M", "8M", "7T", "4T"], thundershock: ["9L1", "8L1", "7L5", "4L5"], thunderwave: ["9M", "8M", "7M", "4M"], @@ -90552,6 +95554,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { whirlpool: ["9L35", "8M", "7M", "4M"], wildcharge: ["9M", "9L45", "8M", "8L45", "7M", "7L53"], }, + eventData: [ + {generation: 9, level: 50, moves: ["surf", "thunderbolt", "icebeam", "heartswap"], pokeball: "pokeball"}, + ], }, voodoll: { learnset: { @@ -90562,9 +95567,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "4M"], aurasphere: ["9M", "9L36", "8M", "8L36", "7L45", "4L45"], batonpass: ["9M", "8M", "7E", "4E"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], captivate: ["4M"], - charge: ["9L20", "8L20", "7L19", "4L19"], + charge: ["9M", "9L20", "8L20", "7L19", "4L19"], confide: ["7M"], copycat: ["9L4", "8L4", "7L1", "4L1"], counter: ["9E", "8E", "7E", "4T"], @@ -90584,8 +95589,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["7M", "4M"], hypervoice: ["9M", "8M", "7T"], imprison: ["9M", "8M", "7E", "4E"], - knockoff: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], - lashout: ["8T"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lashout: ["9M", "8T"], machpunch: ["9E", "8E", "7E", "4E"], magiccoat: ["7T", "4T"], magicroom: ["8M", "7T"], @@ -90619,7 +95624,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M", "7M"], snatch: ["4M"], snore: ["8M", "7T", "4T"], - spite: ["9L12", "8L12", "7T", "7L11", "6T", "5T", "4T", "4L11"], + spite: ["9M", "9L12", "8L12", "7T", "7L11", "6T", "5T", "4T", "4L11"], strength: ["7M", "4M"], substitute: ["9M", "8M", "7M", "7L50", "4M", "4L50"], suckerpunch: ["9E", "8E"], @@ -90634,8 +95639,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "8M", "7M", "4M"], torment: ["9L33", "7M", "6M", "5M", "4M"], toxic: ["7M", "4M"], - uproar: ["8M", "7T", "4T"], - vacuumwave: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + vacuumwave: ["9M", "9E", "8E", "7E", "6E", "5E", "4T", "4E"], voltswitch: ["9M"], workup: ["8M", "7M"], wrap: ["9L1", "8L1", "7L1", "4L1"], @@ -90655,11 +95660,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brutalswing: ["8M"], bulkup: ["8M", "7M", "4M"], bulldoze: ["8M", "7M"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], captivate: ["4M"], - charge: ["9L20", "8L20", "7L19", "4L19"], + charge: ["9M", "9L20", "8L20", "7L19", "4L19"], closecombat: ["9M", "9L64", "8M", "8L64", "7L35", "4L35"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M"], copycat: ["9L1", "8L1", "7L1", "4L1"], counter: ["4T"], @@ -90676,7 +95681,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flashcannon: ["9M", "8M", "7M"], fling: ["9M", "8M", "7M", "4M"], focusblast: ["9M", "8M", "7M", "4M"], - focuspunch: ["7T", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], followme: ["9L1", "8L1", "7L20", "4L20"], foulplay: ["9M", "9L58", "8M", "8L58", "7L61"], frustration: ["7M", "4M"], @@ -90688,8 +95693,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hypervoice: ["9M", "8M", "7T"], icepunch: ["9M", "8M", "7T", "4T"], imprison: ["9M", "8M"], - knockoff: ["7T", "6T", "5T", "4T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], lowkick: ["9M", "8M", "7T", "4T"], lowsweep: ["9M", "8M", "7M"], magiccoat: ["7T", "4T"], @@ -90722,7 +95727,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snarl: ["9M", "8M", "7M"], snatch: ["4M"], snore: ["8M", "7T", "4T"], - spite: ["9L12", "8L12", "7T", "7L1", "6T", "5T", "4T", "4L1"], + spite: ["9M", "9L12", "8L12", "7T", "7L1", "6T", "5T", "4T", "4L1"], stoneedge: ["9M", "8M", "7M", "4M"], strength: ["7M", "4M"], substitute: ["9M", "8M", "7M", "7L50", "4M", "4L50"], @@ -90730,6 +95735,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "4M"], taunt: ["9M", "8M", "7M", "4M"], tearfullook: ["9L24", "8L24", "7L22"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "4M"], throatchop: ["9L1", "8M", "8L1"], @@ -90738,8 +95744,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "8M", "7M", "4M"], torment: ["9L35", "7M", "6M", "5M", "4M"], toxic: ["7M", "4M"], - uproar: ["8M", "7T", "4T"], - vacuumwave: ["4T"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + vacuumwave: ["9M", "4T"], voltswitch: ["9M"], workup: ["8M", "7M"], wrap: ["9L1", "8L1", "7L1", "4L1"], @@ -90772,15 +95778,15 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { furyswipes: ["9L9", "8L9", "7L18", "5L1"], grassknot: ["9M", "8M", "7M", "5M"], harden: ["9L1", "8L1", "7L4", "5L9"], - haze: ["9E", "8E", "7E", "5E"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M", "5M"], hypervoice: ["9M", "9L33", "8M", "8L33", "7L36", "5L36"], irontail: ["8M", "7T"], - mudslap: ["9M"], megakick: ["8M"], megapunch: ["8M"], memento: ["9E", "8E", "7E", "5E"], + mudslap: ["9M"], naturepower: ["8E", "7M", "7E", "5E"], poweruppunch: ["8L3", "6M"], protect: ["9M", "8M", "7M", "5M"], @@ -90792,7 +95798,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "5M"], revenge: ["8M"], reversal: ["9M", "8M"], - roar: ["9L18", "8L18", "7M", "7L23", "7E", "5M", "5L23", "5E"], + roar: ["9M", "9L18", "8L18", "7M", "7L23", "7E", "6M", "6E", "5M", "5L23", "5E"], rockslide: ["9M", "8M", "7M", "5M"], rocksmash: ["9L12", "8L12", "7T", "7L9", "6M", "5M", "5L18"], rocktomb: ["9M", "8M", "7M", "5M"], @@ -90838,11 +95844,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulkup: ["9M", "9L1", "8M", "8L1", "7M", "5M"], bulldoze: ["9M", "8M", "7M", "5M"], closecombat: ["9M", "8M"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7M"], confuseray: ["9M", "7M"], doubleteam: ["7M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], earthquake: ["9M", "8M", "7M", "5M"], echoedvoice: ["7M", "5M"], endure: ["9M", "8M"], @@ -90858,6 +95864,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M", "5M"], grassknot: ["9M", "8M", "7M", "5M"], harden: ["9L1", "8L1", "7L1", "5L1"], + haze: ["9M"], healingwish: ["9L46", "8L46", "7L60", "5L60"], heatwave: ["9M", "8M", "7L42", "5L45"], helpinghand: ["9M", "8M", "7T"], @@ -90879,7 +95886,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "5M"], revenge: ["8M"], reversal: ["9M", "8M"], - roar: ["9L1", "8L1", "7M", "5M"], + roar: ["9M", "9L1", "8L1", "7M", "6M", "5M"], rockslide: ["9M", "8M", "7M", "5M"], rocksmash: ["9L1", "8L1", "6M", "5M"], rocktomb: ["9M", "8M", "7M", "5M"], @@ -90906,7 +95913,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { taunt: ["9M", "9L1", "8M", "8L1", "7M", "5M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "5M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], toxic: ["7M", "5M"], trailblaze: ["9M"], whirlwind: ["9L18", "8L18", "7L23", "5L23"], @@ -90934,7 +95941,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { grassknot: ["9M", "8M", "7M", "5M"], grassyglide: ["8T"], grassyterrain: ["9M", "9L32", "8M", "8L32", "7L22"], - gravity: ["9E", "8E", "7E", "6T", "5E"], + gravity: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], hex: ["9M", "9L16", "8M", "8L16", "7L18", "5L25"], hiddenpower: ["7M", "5M"], ingrain: ["9E", "8E", "7E", "5E"], @@ -90962,13 +95969,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { seedbomb: ["9M", "9L24", "8M", "8L24", "7T", "7L39"], shadowball: ["9M", "9L36", "8M", "8L36", "7M", "7L43", "5M", "5L44"], shadowsneak: ["9L4", "8L4", "7L4", "5L13"], - shellsmash: ["9E"], - sketch: ["7E", "5E"], + sketch: ["9S0", "5E"], skittersmack: ["8T"], sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "8M", "7M", "5M"], - spite: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + spite: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], substitute: ["9M", "8M", "7M", "5M"], sunnyday: ["9M", "8M", "7M", "5M"], swagger: ["7M", "5M"], @@ -90983,6 +95989,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { willowisp: ["9M", "9L20", "8M", "8L20", "7M", "7L15", "5M", "5L19"], worryseed: ["7T"], }, + eventData: [ + {generation: 9, level: 1, shiny: 1, moves: ["sketch"]}, + ], }, necturna: { learnset: { @@ -91000,13 +96009,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M", "5M"], flash: ["6M", "5M"], frustration: ["7M", "5M"], - futuresight: ["8M"], + futuresight: ["9M", "8M"], gigadrain: ["8M", "6T"], gigaimpact: ["9M", "8M", "7M", "5M"], grassknot: ["9M", "8M", "7M", "5M"], grassyglide: ["8T"], grassyterrain: ["9M", "9L34", "8M", "8L34", "7L34"], - gravity: ["6T"], + gravity: ["9M", "7T", "6T", "5T"], hex: ["9M", "9L16", "8M", "8L16", "7L28", "5L25"], hiddenpower: ["7M", "5M"], hornleech: ["9L0", "8L0", "7L1", "5L31"], @@ -91026,7 +96035,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { powerwhip: ["9L52", "8M", "8L52", "7L56", "5L60"], protect: ["9M", "8M", "7M", "5M"], psychic: ["9M", "8M", "7M", "5M"], - psychup: ["7M", "5M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "5M"], rest: ["9M", "8M", "7M", "5M"], return: ["7M", "5M"], round: ["8M", "7M", "5M"], @@ -91035,16 +96045,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "9L40", "8M", "8L40", "7M", "7L50", "5M", "5L50"], shadowclaw: ["9M", "8M", "7M", "5M"], shadowsneak: ["9L1", "8L1", "7L6", "5L13"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "8M", "7M", "5M"], - solarblade: ["8M"], - spite: ["7T", "6T", "5T"], + solarblade: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T"], stoneedge: ["9M", "8M", "7M", "5M"], substitute: ["9M", "8M", "7M", "5M"], sunnyday: ["9M", "8M", "7M", "5M"], - superfang: ["9L1", "8L1", "7L1", "6T", "5L1"], + superfang: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "5T", "5L1"], swagger: ["7M", "5M"], telekinesis: ["6M", "5M"], terablast: ["9M"], @@ -91115,7 +96125,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["7M"], selfdestruct: ["8M"], shockwave: ["7T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M", "7E", "5E"], sludgebomb: ["9M", "8M", "7M", "5M"], sludgewave: ["9L36", "8M", "8L36", "7M", "5M"], @@ -91132,7 +96142,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunder: ["9M", "8M", "7M", "5M"], thunderbolt: ["9M", "8M", "7M", "5M"], thunderwave: ["9M", "8M", "7M", "5M"], - toxic: ["9L64", "8L64", "7M", "5M"], + toxic: ["9M", "9L64", "8L64", "7M", "6M", "5M"], toxicspikes: ["9M", "9L44", "8M", "8L44", "7L44", "5L41"], trick: ["9M", "8M", "7E", "6T", "5E"], venomdrench: ["8M", "7E"], @@ -91146,7 +96156,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["8M", "5M"], ancientpower: ["9L21", "8L21", "7L44", "5L44"], attract: ["8M", "7M", "5M"], - bugbite: ["9L15", "8L15", "7T", "7L7", "5T", "5L7"], + bugbite: ["9M", "9L15", "8L15", "7T", "7L7", "6T", "5T", "5L7"], bugbuzz: ["9M", "8M", "7E", "5E"], calmmind: ["9M"], closecombat: ["9M", "8M", "7E", "5E"], @@ -91209,7 +96219,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sunnyday: ["9M", "9L3", "8M", "8L3", "7M", "7L14", "5M", "5L14"], swagger: ["7M", "5M"], tackle: ["9L1", "8L1", "7L1", "5L1"], - tailglow: ["7L60"], + tailglow: ["9E", "7L60"], telekinesis: ["5M"], terablast: ["9M"], toxic: ["7M", "5M"], @@ -91228,7 +96238,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { allyswitch: ["8M", "5M"], ancientpower: ["9L21", "8L21", "7L47", "5L47"], attract: ["8M", "7M", "5M"], - bugbite: ["9L15", "8L15", "7T", "7L7", "5T", "5L7"], + bugbite: ["9M", "9L15", "8L15", "7T", "7L7", "6T", "5T", "5L7"], bugbuzz: ["9M", "8M"], calmmind: ["9M"], closecombat: ["9M", "8M"], @@ -91309,19 +96319,20 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { ancientpower: ["9L21", "8L21", "7L47", "5L47"], attract: ["8M", "7M", "5M"], blizzard: ["9M", "8M", "7M", "5M"], - bugbite: ["9L15", "8L15", "7T", "5T"], + bugbite: ["9M", "9L15", "8L15", "7T", "6T", "5T"], bugbuzz: ["8M"], calmmind: ["9M"], closecombat: ["9M", "8M"], confide: ["7M"], cut: ["6M", "5M"], doubleteam: ["9L9", "8L9", "7M", "5M"], + dragoncheer: ["9M"], dragondance: ["9M", "9L1", "8M", "8L1", "7L1", "5L1"], dreameater: ["7M", "5M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], echoedvoice: ["7M", "5M"], - electroweb: ["8M", "7T", "5T"], - expandingforce: ["8T"], + electroweb: ["9M", "8M", "7T", "5T"], + expandingforce: ["9M", "8T"], facade: ["9M", "8M", "7M", "5M"], finalgambit: ["9L61", "8L61", "5L41"], flash: ["6M", "5M"], @@ -91350,6 +96361,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pounce: ["9M"], protect: ["9M", "8M", "7M", "5M"], psychic: ["9M", "9L47", "8M", "8L47", "7M", "5M"], + psychicnoise: ["9M"], psychicterrain: ["9M", "9L0", "8M", "8L0", "7L1"], psychup: ["7M", "5M"], psyshock: ["9M", "8M", "7M", "5M"], @@ -91368,7 +96380,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { signalbeam: ["7T"], silverwind: ["7L1", "5L1"], skillswap: ["9M", "8M", "7T", "5T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], snowscape: ["9M"], @@ -91421,14 +96433,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T", "5T"], glare: ["9L32", "8L32", "7L1", "7E", "5E"], grassknot: ["9M", "9L16", "8M", "8L16", "7M", "7L15", "5M", "5L18"], - grassyglide: ["8T"], - haze: ["9E", "8E", "7E", "5E"], + grassyglide: ["9M", "8T"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E"], healbell: ["7T", "5T"], hiddenpower: ["7M", "5M"], icefang: ["9M", "8M", "7E"], irontail: ["8M", "7T", "5T"], - knockoff: ["9E", "8E", "7T", "6T", "5T"], - lashout: ["8T"], + knockoff: ["9M", "9E", "8E", "7T", "6T", "5T"], + lashout: ["9M", "8T"], leafblade: ["9L36", "8M", "8L36", "7L26", "5L34"], leer: ["9L1", "8L1", "7L1"], nastyplot: ["9M", "8M"], @@ -91446,9 +96458,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "5M"], retaliate: ["8M", "7M", "5M"], return: ["7M", "5M"], - roar: ["7M", "5M"], + roar: ["9M", "7M", "6M", "5M"], round: ["8M", "7M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L12", "8M", "8L12", "7L11", "7E", "5E"], screech: ["9E", "8M", "7E", "5E"], secretpower: ["7M"], @@ -91460,7 +96472,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { snore: ["8M", "7T", "5T"], solarbeam: ["9M", "8M", "7M", "5M"], spikyshield: ["9L40", "8L40", "7L40"], - spite: ["9E", "7T", "6T", "5T"], + spite: ["9M", "9E", "7T", "6T", "5T"], strength: ["6M", "5M"], stunspore: ["9E", "8E", "7E", "5E"], substitute: ["9M", "8M", "7M", "5M"], @@ -91477,7 +96489,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { trailblaze: ["9M"], uturn: ["9M", "8M", "7M", "5M"], vinewhip: ["9L4", "8L4", "7L5", "5L1"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], wildcharge: ["9M", "8M", "7M", "5M"], worryseed: ["7T", "5T"], wrap: ["9L1", "8L1", "7L1", "5L1"], @@ -91489,13 +96501,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M", "7M", "5M"], beatup: ["8M"], bind: ["7T", "5T"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M", "7M"], confide: ["7M"], crunch: ["9M", "9L28", "8M", "8L28", "7L43", "5L42"], cut: ["6M", "5M"], darkpulse: ["9M", "8M", "7M", "5T"], doubleteam: ["7M", "5M"], + dragoncheer: ["9M"], dragontail: ["9M", "7M", "5M"], endure: ["9M", "8M"], energyball: ["9M", "8M", "7M", "5M"], @@ -91507,15 +96520,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M", "5M"], glare: ["9L32", "8L32", "7L38"], grassknot: ["9M", "9L16", "8M", "8L16", "7M", "7L20", "5M", "5L18"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], gravapple: ["9L0", "8L0"], + haze: ["9M"], healbell: ["7T", "5T"], hiddenpower: ["7M", "5M"], hyperbeam: ["9M", "8M", "7M", "5M"], icefang: ["9M", "8M"], irontail: ["8M", "7T", "5T"], - knockoff: ["7T", "6T", "5T"], - lashout: ["8T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], leafblade: ["9L38", "8M", "8L38", "7L34", "5L36"], leer: ["9L1", "8L1", "7L1"], nastyplot: ["9M", "8M"], @@ -91532,22 +96546,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "5M"], retaliate: ["8M", "7M", "5M"], return: ["7M", "5M"], - roar: ["7M", "5M"], + roar: ["9M", "7M", "6M", "5M"], round: ["8M", "7M", "5M"], - scaleshot: ["8T"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L12", "8M", "8L12", "7L15"], screech: ["8M"], secretpower: ["7M"], seedbomb: ["9M", "8M", "7T", "5T"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], slam: ["9L24", "8L24", "7L29", "5L30"], sleeptalk: ["9M", "8M", "7M", "5T"], snarl: ["9M", "8M", "7M", "5M"], snore: ["8M", "7T", "5T"], solarbeam: ["9M", "8M", "7M", "5M"], - solarblade: ["9L62", "8M", "8L62", "7L66"], + solarblade: ["9M", "9L62", "8M", "8L62", "7L66"], spikyshield: ["9L44", "8L44", "7L52"], - spite: ["7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], strength: ["6M", "5M"], substitute: ["9M", "8M", "7M", "5M"], suckerpunch: ["9L20", "8L20", "7L24", "5L25"], @@ -91555,15 +96569,16 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M", "5M"], synthesis: ["7T", "6T", "5T"], taunt: ["9M", "8M", "7M", "5M"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "8M", "7M", "5M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunderfang: ["9M", "8M"], toxic: ["7M", "6M", "5M"], trailblaze: ["9M"], uturn: ["9M", "8M", "7M", "5M"], vinewhip: ["9L1", "8L1", "7L6", "5L1"], - weatherball: ["8M"], + weatherball: ["9M", "8M"], wildcharge: ["9M", "8M", "7M", "5M"], worryseed: ["7T", "5T"], wrap: ["9L1", "8L1", "7L1", "5L1"], @@ -91600,7 +96615,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hurricane: ["9M", "9L48", "8M", "8L48", "5L53"], irondefense: ["9M", "8M"], ironhead: ["9M", "8M", "5T"], - knockoff: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], leer: ["9L1", "8L1", "5L1"], metalclaw: ["9M", "9L12", "8L12", "5L13"], metalsound: ["9E", "8E", "7E", "5E"], @@ -91625,7 +96640,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skyattack: ["5T"], skydrop: ["5M"], sleeptalk: ["9M", "8M", "5T"], - smackdown: ["5M"], + smackdown: ["9M", "7M", "6M", "5M"], snatch: ["5T"], snore: ["8M", "5T"], steelbeam: ["9M", "8T"], @@ -91666,7 +96681,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { detect: ["9L32", "8L32", "7L26", "5L26"], doubleteam: ["7M", "5M"], drainpunch: ["9M", "8M", "7T", "5T"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endeavor: ["7T", "6T", "5T"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "5M"], @@ -91675,12 +96690,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "5M"], gigaimpact: ["9M", "8M", "7M", "5M"], growl: ["9L1", "8L1", "7L5", "5L5"], + hardpress: ["9M"], hiddenpower: ["7M", "5M"], hurricane: ["9M", "9L62", "8M", "8L62", "7L64", "5L58"], hyperbeam: ["9M", "8M", "7M", "5M"], irondefense: ["9M", "8M"], ironhead: ["9M", "8M", "7T", "5T"], - knockoff: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], leer: ["9L1", "8L1", "7L1", "5L1"], megapunch: ["8M"], metalclaw: ["9M", "9L12", "8L12", "7L13", "5L13"], @@ -91702,7 +96718,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skyattack: ["9L68", "8L68", "7T", "5T"], skydrop: ["7M", "5M"], sleeptalk: ["9M", "8M", "7M", "5T"], - smackdown: ["7M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], snatch: ["7T", "5T"], snore: ["8M", "7T", "5T"], steelbeam: ["9M", "8T"], @@ -91715,10 +96731,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwind: ["9M", "9L44", "8L44", "5T", "5L48"], takedown: ["9M"], terablast: ["9M"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], toxic: ["7M", "5M"], + upperhand: ["9M"], waterpulse: ["9M", "7T"], - whirlpool: ["8M"], + whirlpool: ["9M", "8M"], wingattack: ["9L24", "8L24", "7L22", "5L22"], }, }, @@ -91750,7 +96767,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "6L1"], flashcannon: ["9M", "8M", "6M"], fling: ["9M", "8M", "6M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], frustration: ["6M"], heatwave: ["9M", "8M", "6L48"], hiddenpower: ["6M"], @@ -91772,7 +96789,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "6M"], return: ["6M"], round: ["8M", "6M"], - scald: ["8M", "7M", "6M", "6L28"], + scald: ["9M", "8M", "7M", "6M", "6L28"], scaryface: ["9M", "8M", "7E", "6E"], scorchingsands: ["8T"], skittersmack: ["8T"], @@ -91823,7 +96840,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["7L1", "6M", "6L1"], flashcannon: ["9M", "8M", "7M", "6M"], fling: ["9M", "8M", "7M", "6M"], - flipturn: ["8T"], + flipturn: ["9M", "8T"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], heatwave: ["9M", "8M", "7L51", "6T", "6L51"], @@ -91835,7 +96852,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { leechlife: ["9M", "8M", "7M", "6L1"], liquidation: ["9M", "8M"], memento: ["9L68", "8L68", "7L66", "6L66"], - muddywater: ["8M"], + muddywater: ["9M", "8M"], overheat: ["9M", "8M", "7M", "6M"], payback: ["8M", "7M", "6M"], pounce: ["9M"], @@ -91847,9 +96864,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M", "7M", "6M"], return: ["7M", "6M"], round: ["8M", "7M", "6M"], - scald: ["9L0", "8M", "8L0", "7M", "7L28", "6M", "6L28"], + scald: ["9M", "9L0", "8M", "8L0", "7M", "7L28", "6M", "6L28"], scaryface: ["9M", "8M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], secretpower: ["7M"], skittersmack: ["8T"], sleeptalk: ["9M", "8M", "7M", "6M"], @@ -91897,7 +96914,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "6M"], flashcannon: ["9M", "8M", "6M"], frustration: ["6M"], - haze: ["9E", "8E", "7E", "6E"], + haze: ["9M", "9E", "8E", "7E", "6E"], hiddenpower: ["6M"], iondeluge: ["6L26"], irontail: ["9M", "8M"], @@ -91932,7 +96949,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M", "8M", "6M"], thundershock: ["9L1", "8L1", "6L1"], thunderwave: ["9M", "9L16", "8M", "8L16", "6M", "6L19"], - toxic: ["9E", "8E", "6M"], + toxic: ["9M", "9E", "8E", "7M", "6M"], venomdrench: ["8M", "7E"], venoshock: ["9M", "8M", "6M"], waterpulse: ["9M", "9E", "8E", "7E", "6E"], @@ -91965,13 +96982,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], electrify: ["9L46", "8L46"], electroball: ["9M", "8M"], - electroweb: ["8M", "7T"], + electroweb: ["9M", "8M", "7T"], encore: ["9M", "9L12", "8M", "8L12", "7L16", "6L16"], endure: ["9M", "8M"], facade: ["9M", "8M", "7M", "6M"], flashcannon: ["9M", "8M", "7M", "6M"], frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], + haze: ["9M"], hiddenpower: ["7M", "6M"], hyperbeam: ["9M", "8M", "7M", "6M"], iondeluge: ["7L26", "6L26"], @@ -91998,6 +97016,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sludgewave: ["9L52", "8M", "8L52", "7M", "6M"], snore: ["8M", "7T"], substitute: ["9M", "8M", "7M", "6M"], + supercellslam: ["9M"], supersonic: ["9L1", "8L1", "7L1", "6L1"], surf: ["9M"], swagger: ["9L58", "8L58", "7M", "7L56", "6M", "6L56"], @@ -92007,7 +97026,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderbolt: ["9M", "8M", "7M", "6M"], thundershock: ["9L1", "8L1", "7L1", "6L1"], thunderwave: ["9M", "9L16", "8M", "8L16", "7M", "7L19", "6M", "6L19"], - toxic: ["7M", "6M"], + toxic: ["9M", "7M", "6M"], venomdrench: ["8M"], venoshock: ["9M", "8M", "7M", "6M"], waterpulse: ["9M", "6T"], @@ -92044,7 +97063,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["6M"], gust: ["9L6", "8L6", "6L1"], hail: ["8M", "6M"], - haze: ["9E", "8E", "7E", "6E"], + haze: ["9M", "9E", "8E", "7E", "6E"], hiddenpower: ["6M"], hurricane: ["9M", "8M"], hydropump: ["9M", "9L39", "8M", "8L39", "6L50"], @@ -92068,7 +97087,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["6M"], rocksmash: ["6M"], round: ["8M", "6M"], - scald: ["8M", "6M"], + scald: ["9M", "8M", "7M", "6M"], scaryface: ["9M", "9L15", "8M", "8L15", "6L1"], screech: ["8M"], secretpower: ["6M"], @@ -92118,6 +97137,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["6M"], gust: ["9L1", "8L1", "6L1"], hail: ["8M", "6M"], + haze: ["9M"], heavyslam: ["9M", "8M"], hiddenpower: ["6M"], hurricane: ["9M", "8M"], @@ -92144,8 +97164,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["6M"], rocksmash: ["6M"], round: ["8M", "6M"], - scald: ["8M", "6M"], - scaleshot: ["8T"], + scald: ["9M", "8M", "7M", "6M"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L15", "8M", "8L15", "6L1"], screech: ["8M"], secretpower: ["6M"], @@ -92178,7 +97198,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "8M", "7M", "6M"], bodypress: ["9M", "8M"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brine: ["9L28", "8M", "8L28", "7L45", "6L45"], brutalswing: ["8M", "7M"], bubblebeam: ["9L24", "8L24", "7L25", "6L25"], @@ -92202,6 +97222,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M", "6M"], gust: ["9L1", "8L1", "7L1", "6L1"], hail: ["8M", "7M", "6M"], + hardpress: ["9M"], + haze: ["9M"], heavyslam: ["9M", "9L66", "8M", "8L66", "7L1"], hiddenpower: ["7M", "6M"], hurricane: ["9M", "8M", "7L64", "6L64"], @@ -92229,8 +97251,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M", "6M"], rocksmash: ["7M", "6M"], round: ["8M", "7M", "6M"], - scald: ["8M", "7M", "6M"], - scaleshot: ["8T"], + scald: ["9M", "8M", "7M", "6M"], + scaleshot: ["9M", "8T"], scaryface: ["9M", "9L15", "8M", "8L15", "7L1", "6L1"], screech: ["8M"], secretpower: ["7M"], @@ -92284,7 +97306,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M", "6M"], gigaimpact: ["9M", "8M", "7M", "6M"], grassknot: ["9M", "8M", "7M", "6M"], - gravity: ["7T", "6T"], + gravity: ["9M", "7T", "6T"], gunkshot: ["9M", "9L64", "8M", "8L64", "7L56", "6T", "6L56"], helpinghand: ["9M", "8M", "6T"], hex: ["9M", "9L48", "8M", "8L48", "7L44", "6L44"], @@ -92296,7 +97318,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { knockoff: ["9E"], lightscreen: ["9M", "8M"], magicroom: ["8M", "6T"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], metronome: ["9M", "8M"], payback: ["8M", "7M", "6M"], pinmissile: ["8M"], @@ -92325,8 +97347,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M", "6M"], sludge: ["9L44", "8L44", "7L28", "6L28"], sludgebomb: ["9M", "8M", "7M", "6M"], - sludgewave: ["8M", "8L60", "7M", "6M"], - smackdown: ["9L24", "8L24", "7M", "7L23", "6M", "6L23"], + sludgewave: ["9M", "8M", "8L60", "7M", "6M"], + smackdown: ["9M", "9L24", "8L24", "7M", "7L23", "6M", "6L23"], snatch: ["6T"], snore: ["8M", "6T"], stealthrock: ["9M", "8M", "6T"], @@ -92374,7 +97396,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hiddenpower: ["6M"], magicroom: ["8M"], metronome: ["9M", "8M"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], moonblast: ["9L30", "8L30", "6L36"], nightmare: ["6L42"], @@ -92403,7 +97425,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], torment: ["9L33", "8L33", "6M"], toxic: ["6M"], - uproar: ["8M"], + uproar: ["9M", "8M"], + vacuumwave: ["9M"], wakeupslap: ["6L10"], wideguard: ["9E", "8E", "7E", "6E"], wish: ["9E", "8E", "7E", "6E"], @@ -92424,7 +97447,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { celebrate: ["6S0"], charm: ["9M", "9L9", "8M", "8L1"], closecombat: ["9M", "9L42", "8M", "8L42", "7L53", "6L53"], - coaching: ["8T"], + coaching: ["9M", "8T"], confide: ["7L25", "6L25"], crushclaw: ["9L0", "8L0", "7M", "6M"], dazzlinggleam: ["9M", "8M", "7M", "6M"], @@ -92456,7 +97479,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megakick: ["8M"], megapunch: ["8M"], metronome: ["9M", "8M", "6S0"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], moonblast: ["9L33", "8L33", "7L49", "6L49"], nightmare: ["7L57", "6L57"], @@ -92465,7 +97488,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { poweruppunch: ["8L9", "7M", "6M"], protect: ["9M", "8M", "7M", "6M"], psychic: ["9M"], - psychup: ["7M", "6M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M", "6M"], rest: ["9M", "9L27", "8M", "8L27", "7M", "7L41", "6M", "6L41"], retaliate: ["8M", "7M", "6M"], return: ["7M", "6M"], @@ -92477,7 +97501,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { secretpower: ["7M"], sleeptalk: ["9M", "8M", "7M", "6M"], sludgebomb: ["9M", "8M", "7M", "6M"], - sludgewave: ["8M", "7M", "6M"], + sludgewave: ["9M", "8M", "7M", "6M"], snarl: ["9M", "8M", "7M", "6M"], snore: ["9L27", "8M", "8L27", "6T"], speedswap: ["8M"], @@ -92492,7 +97516,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { terablast: ["9M"], torment: ["9L36", "8L36", "7M", "6M"], toxic: ["7M", "6M"], - uproar: ["8M"], + upperhand: ["9M"], + uproar: ["9M", "8M"], + vacuumwave: ["9M"], wakeupslap: ["7L13", "6L13"], workup: ["8M", "7M"], yawn: ["9L1", "8L1", "7L9", "6L9"], @@ -92518,6 +97544,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { doubleteam: ["9L25", "8L25", "7M"], dracometeor: ["9M", "8T", "7T"], dragonbreath: ["9L20", "8L20", "7L19"], + dragoncheer: ["9M"], dragonclaw: ["9M", "9L35", "8M", "8L35", "7M", "7L23"], dragonpulse: ["9M", "8M", "7T"], dragonrage: ["7L12"], @@ -92534,9 +97561,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M"], gastroacid: ["7T"], gigaimpact: ["9M", "8M", "7M"], - gravity: ["7T"], + gravity: ["9M", "7T"], growl: ["9L1", "8L1", "7L1"], - haze: ["9L40", "8L40", "7L37"], + haze: ["9M", "9L40", "8L40", "7L37"], healblock: ["7L30"], helpinghand: ["9M", "8M", "7T"], hex: ["9M", "8M"], @@ -92558,21 +97585,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { protect: ["9M", "8M", "7M"], psychic: ["9M", "8M", "7M"], psychicfangs: ["9M", "9L50", "8M", "8L50", "7L32"], - psychup: ["7M"], + psychicnoise: ["9M"], + psychup: ["9M", "7M"], raindance: ["9M", "8M", "7M"], rest: ["9M", "8M", "7M"], return: ["7M"], rockslide: ["9M", "8M", "7M"], rocktomb: ["9M", "8M", "7M"], round: ["8M", "7M"], - sandtomb: ["9E", "8M", "7E"], + sandtomb: ["9M", "9E", "8M", "7E"], shadowball: ["9M", "8M", "7M"], shadowclaw: ["9M", "8M", "7M"], sleeptalk: ["9M", "8M", "7M"], smartstrike: ["9M", "8M", "7M"], snore: ["9L1", "8M", "8L1", "7T", "7L1"], spiritshackle: ["9L45", "8L45", "7L1"], - spite: ["7T", "7E"], + spite: ["9M", "7T", "7E"], stoneedge: ["9M", "8M", "7M"], substitute: ["8M", "7M"], surf: ["9M", "8M", "7M"], @@ -92580,13 +97608,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], taunt: ["9M"], telekinesis: ["7T"], + temperflare: ["9M"], terablast: ["9M"], - throatchop: ["8M", "7T"], - toxic: ["7M"], + throatchop: ["9M", "8M", "7T"], + toxic: ["9M", "7M"], toxicspikes: ["9M", "8M", "7L28"], trickroom: ["9M", "8M", "7M"], venoshock: ["9M", "8M", "7M"], - whirlpool: ["8M", "7E"], + whirlpool: ["9M", "8M", "7E"], wrap: ["9L1", "8L1", "7L1"], zenheadbutt: ["9M", "8M", "7T"], }, @@ -92610,10 +97639,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M"], gigadrain: ["9M", "9L40", "8M", "8L40", "7T"], grassknot: ["9M", "8M", "7M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M", "7E"], - gravity: ["7T"], - gyroball: ["8M", "7M"], + gravity: ["9M", "7T"], + gyroball: ["9M", "8M", "7M"], harden: ["9L1"], healingwish: ["9E", "8E", "7E"], heavyslam: ["9M", "8M"], @@ -92626,7 +97655,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { luckychant: ["7L17"], magicalleaf: ["9M", "9L25", "8M", "8L25", "7L19"], magiccoat: ["7T"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M", "7E"], moonblast: ["9L60", "8L60", "7L44"], naturalgift: ["7L31"], @@ -92689,10 +97718,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "9L40", "8M", "8L40", "7T"], gigaimpact: ["9M", "8M", "7M"], grassknot: ["9M", "8M", "7M"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], - gravity: ["7T"], - gyroball: ["8M", "7M"], + gravity: ["9M", "7T"], + gyroball: ["9M", "8M", "7M"], harden: ["9L1"], heavyslam: ["9M", "9L60", "8M", "8L60", "7L42"], helpinghand: ["9M", "9L1", "8M", "8L1", "7T"], @@ -92708,7 +97737,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { magiccoat: ["7T"], magicroom: ["8M", "7T"], metronome: ["9M", "8M"], - mistyexplosion: ["8T"], + mistyexplosion: ["9M", "8T"], mistyterrain: ["9M", "8M"], moonblast: ["9L65", "8L65", "7L49"], naturalgift: ["7L31"], @@ -92727,7 +97756,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shoreup: ["9L1", "8L1", "7L1"], sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], - solarbeam: ["8M", "7M"], + solarbeam: ["9M", "8M", "7M"], solarblade: ["9M", "8M"], substitute: ["9M", "8M", "7M"], sunnyday: ["9M", "9L50", "8M", "8L50", "7M", "7L35"], @@ -92768,12 +97797,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T"], grassknot: ["9M", "8M", "7M"], grasspledge: ["9M", "8T", "7T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], hypervoice: ["9M", "8M", "7T"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], leafage: ["9L3", "8L3", "7L1"], leafstorm: ["9M", "8M"], leechseed: ["9L21", "8L21", "7L26"], @@ -92808,7 +97837,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thundershock: ["9L6", "8L6", "7L7"], toxic: ["7M"], trailblaze: ["9M"], - uproar: ["9E", "8M", "7T", "7E"], + uproar: ["9M", "9E", "8M", "7T", "7E"], voltswitch: ["9M", "8M", "7M"], wildcharge: ["9M", "9L36", "8M", "8L36", "7T", "7L38"], workup: ["8M", "7M"], @@ -92840,12 +97869,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigadrain: ["9M", "8M", "7T"], grassknot: ["9M", "8M", "7M"], grasspledge: ["9M", "8T", "7T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "8M", "7T"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], hypervoice: ["9M", "8M", "7T"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], leafage: ["9L1", "8L1", "7L1"], leafstorm: ["9M", "8M"], leechseed: ["9L25", "8L25", "7L26"], @@ -92866,7 +97895,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "8M", "7M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], spark: ["9L30", "8L30", "7L22"], substitute: ["9M", "8M", "7M"], sunnyday: ["9M", "8M", "7M"], @@ -92884,7 +97913,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunderwave: ["9M", "8M", "7M"], toxic: ["7M"], trailblaze: ["9M"], - uproar: ["8M", "7T"], + uproar: ["9M", "8M", "7T"], voltswitch: ["9M", "8M", "7M"], wildcharge: ["9M", "9L50", "8M", "8L50", "7T", "7L40"], workup: ["8M", "7M"], @@ -92909,7 +97938,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { echoedvoice: ["7M"], eerieimpulse: ["9M", "8M"], electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], - electroweb: ["8M", "7T"], + electroweb: ["9M", "8M", "7T"], endeavor: ["7T"], endure: ["9M", "8M"], energyball: ["9M", "9L1", "8M", "8L1", "7M"], @@ -92922,7 +97951,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M", "7M"], grassknot: ["9M", "8M", "7M"], grasspledge: ["9M", "8T", "7T"], - grassyglide: ["8T"], + grassyglide: ["9M", "8T"], grassyterrain: ["9M", "9L1", "8M", "8L1", "7L1"], helpinghand: ["9M", "8M", "7T"], hiddenpower: ["7M"], @@ -92930,7 +97959,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M"], hyperdrill: ["9L1"], hypervoice: ["9M", "8M", "7T"], - knockoff: ["7T"], + knockoff: ["9M", "7T"], leafage: ["9L1", "8L1", "7L1"], leafstorm: ["9M", "8M"], leechseed: ["9L25", "8L25", "7L28"], @@ -92952,10 +97981,11 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], solarbeam: ["9M", "8M", "7M"], - solarblade: ["8M"], + solarblade: ["9M", "8M"], spark: ["9L30", "8L30", "7L24"], substitute: ["9M", "8M", "7M"], sunnyday: ["9M", "8M", "7M"], + supercellslam: ["9M"], swagger: ["7M"], swift: ["9M", "8M"], swordsdance: ["9M", "8M", "7M"], @@ -92964,14 +97994,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { takedown: ["9M"], terablast: ["9M"], terrainpulse: ["8T"], - throatchop: ["8M"], + throatchop: ["9M", "8M"], thunder: ["9M", "8M", "7M"], thunderbolt: ["9M", "8M", "7M"], thundershock: ["9L1", "8L1", "7L1"], thunderwave: ["9M", "8M", "7M"], toxic: ["7M"], trailblaze: ["9M"], - uproar: ["8M", "7T"], + uproar: ["9M", "8M", "7T"], voltswitch: ["9M", "8M", "7M"], wildcharge: ["9M", "9L58", "8M", "8L58", "7T", "7L42", "7S0"], workup: ["8M", "7M"], @@ -93030,8 +98060,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M"], roar: ["7M"], round: ["8M", "7M"], - sandtomb: ["8M", "7E"], - scaleshot: ["8T"], + sandtomb: ["9M", "8M", "7E"], + scaleshot: ["9M", "8T"], scorchingsands: ["8T"], scratch: ["9L1", "8L1", "7L1"], screech: ["9L30", "8M", "8L30", "7L44"], @@ -93049,7 +98079,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwhip: ["9L1", "8L1", "7L4"], taunt: ["9M", "8M", "7M"], terablast: ["9M"], - toxic: ["9L36", "8L36", "7M"], + toxic: ["9M", "9L36", "8L36", "7M"], trailblaze: ["9M"], venomdrench: ["8M"], willowisp: ["9M", "8M", "7M"], @@ -93064,7 +98094,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M", "7M"], bulkup: ["9M", "8M", "7M"], bulldoze: ["9M", "9L35", "8M", "8L35", "7M", "7L19"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], camouflage: ["7L35"], clearsmog: ["9L20", "8L20", "7L26"], confide: ["7M"], @@ -93104,8 +98134,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M"], roar: ["7M"], round: ["8M", "7M"], - sandtomb: ["8M"], - scaleshot: ["8T"], + sandtomb: ["9M", "8M"], + scaleshot: ["9M", "8T"], scorchingsands: ["8T"], scratch: ["9L1", "8L1", "7L1"], screech: ["9L45", "8M", "8L45", "7L46"], @@ -93124,7 +98154,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { tailwhip: ["9L1", "8L1", "7L1"], taunt: ["9M", "8M", "7M"], terablast: ["9M"], - toxic: ["9L55", "8L55", "7M"], + toxic: ["9M", "9L55", "8L55", "7M"], trailblaze: ["9M"], venomdrench: ["8M"], willowisp: ["9M", "8M", "7M"], @@ -93140,7 +98170,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { brickbreak: ["9M", "8M", "7M"], bulkup: ["9M", "8M", "7M"], bulldoze: ["9M", "9L35", "8M", "8L35", "7M", "7L20"], - burningjealousy: ["8T"], + burningjealousy: ["9M", "8T"], camouflage: ["7L38", "7S0"], celebrate: ["7S0"], circlethrow: ["9L1", "8L1", "7L1"], @@ -93151,6 +98181,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { defog: ["7T"], dig: ["9M", "9L1", "8M", "8L1"], doubleteam: ["7M"], + dragoncheer: ["9M"], earthpower: ["9M", "8M", "7T"], earthquake: ["9M", "9L56", "8M", "8L56", "7M", "7L54"], ember: ["9L1", "8L1", "7L1"], @@ -93172,10 +98203,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { frustration: ["7M"], gigaimpact: ["9M", "8M", "7M"], gunkshot: ["9M", "8M", "7T"], - heatcrash: ["8M"], + heatcrash: ["9M", "8M"], heatwave: ["9M", "8M", "7T"], hiddenpower: ["7M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M", "7M"], incinerate: ["9L15", "8L15"], irontail: ["8M", "7T"], @@ -93195,9 +98226,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { return: ["7M"], roar: ["7M"], round: ["8M", "7M"], - sandtomb: ["8M"], - scaleshot: ["8T"], - scorchingsands: ["8T"], + sandtomb: ["9M", "8M"], + scaleshot: ["9M", "8T"], + scorchingsands: ["9M", "8T"], scratch: ["9L1", "8L1", "7L1"], screech: ["9L49", "8M", "8L49", "7L49"], sleeptalk: ["9M", "8M", "7M"], @@ -93215,8 +98246,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swagger: ["7M"], tailwhip: ["9L1", "8L1", "7L1"], taunt: ["9M", "8M", "7M"], + temperflare: ["9M"], terablast: ["9M"], - toxic: ["9L63", "8L63", "7M"], + toxic: ["9M", "9L63", "8L63", "7M"], trailblaze: ["9M"], venomdrench: ["8M"], willowisp: ["9M", "8M", "7M"], @@ -93235,7 +98267,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { blizzard: ["9M", "8M", "7M"], bodyslam: ["9M", "8M"], brine: ["9L21", "8M", "8L21", "7L25"], - bugbite: ["7T"], + bugbite: ["9M", "7T"], bugbuzz: ["9M", "9L33", "8M", "8L33", "7L38"], captivate: ["7L40"], charm: ["9M", "9L9", "8M", "8L9", "7L10"], @@ -93321,7 +98353,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["7T"], bodyslam: ["9M", "8M"], brine: ["9L25", "8M", "8L25", "7L26"], - bugbite: ["7T"], + bugbite: ["9M", "7T"], bugbuzz: ["9M", "9L50", "8M", "8L50", "7L42"], captivate: ["7L48"], charm: ["9M", "9L9", "8M", "8L9", "7L10"], @@ -93399,6 +98431,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { }, snaelstrom: { learnset: { + alluringvoice: ["9M"], allyswitch: ["8M"], aquajet: ["9L12", "8L12", "7L17"], aquaring: ["9L1", "8L1", "7L1"], @@ -93407,7 +98440,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { block: ["7T"], bodyslam: ["9M", "8M"], brine: ["9L25", "8M", "8L25", "7L27"], - bugbite: ["7T"], + bugbite: ["9M", "7T"], bugbuzz: ["9M", "9L58", "8M", "8L58", "7L48"], captivate: ["7L56"], celebrate: ["7S0"], @@ -93424,7 +98457,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { endure: ["9M", "8M"], facade: ["9M", "8M", "7M"], frustration: ["7M"], - futuresight: ["8M"], + futuresight: ["9M", "8M"], gigaimpact: ["9M", "8M", "7M"], growl: ["9L1", "8L1", "7L1"], guardswap: ["8M"], @@ -93437,7 +98470,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M", "7M"], hypervoice: ["9M", "8M"], icebeam: ["9M", "8M", "7M"], - iciclespear: ["8M"], + iciclespear: ["9M", "8M"], icywind: ["9M", "8M", "7T"], infestation: ["7M"], leechlife: ["9M", "8M", "7M", "7S0"], @@ -93461,7 +98494,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { scald: ["8M", "7M"], signalbeam: ["7T"], skillswap: ["9M", "8M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M", "7M"], snore: ["8M", "7T"], snowscape: ["9M"], @@ -93510,9 +98543,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M", "7M"], flashcannon: ["9M", "9L28", "8M", "8L28", "7M", "7L41"], frustration: ["7M"], - gravity: ["9L24", "7T"], + gravity: ["9M", "9L24", "7T"], guardsplit: ["9L16", "8L16", "7L21"], - gyroball: ["9L12", "8M", "8L12", "7M", "7L17"], + gyroball: ["9M", "9L12", "8M", "8L12", "7M", "7L17"], healingwish: ["9L40", "8L40", "7L46"], heavyslam: ["9M"], helpinghand: ["9M", "8M", "7T"], @@ -93566,21 +98599,22 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bulldoze: ["9M", "8M", "7M"], confide: ["7M"], destinybond: ["9L52", "8L52", "7L64"], - doomdesire: ["8L0", "7L1"], + doomdesire: ["9S0", "8L0", "7L1"], doubleteam: ["7M"], drillrun: ["9M", "8M", "7T"], - earthpower: ["9M", "9L58", "8M", "8L58", "7T", "7L40"], + earthpower: ["9M", "9L58", "9S0", "8M", "8L58", "7T", "7L40"], earthquake: ["9M", "8M", "7M", "7L57"], embargo: ["7M"], endure: ["9M", "8M"], explosion: ["7M"], facade: ["9M", "8M", "7M"], - flashcannon: ["9M", "9L28", "8M", "8L28", "7M", "7L45"], + flashcannon: ["9M", "9L28", "9S0", "8M", "8L28", "7M", "7L45"], frustration: ["7M"], gigaimpact: ["9M", "8M", "7M"], - gravity: ["9L24", "7T"], + gravity: ["9M", "9L24", "7T"], guardsplit: ["9L16", "8L16", "7L25"], - gyroball: ["9L12", "8M", "8L12", "7M", "7L20"], + gyroball: ["9M", "9L12", "8M", "8L12", "7M", "7L20"], + hardpress: ["9M"], healingwish: ["9L46", "8L46", "7L50"], heavyslam: ["9M"], helpinghand: ["9M", "8M", "7T"], @@ -93603,9 +98637,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { pound: ["9L1", "8L1", "7L1"], powersplit: ["9L16", "8L16", "7L25"], protect: ["9M", "8M", "7M"], - psychup: ["7M"], + psychup: ["9M", "7M"], quash: ["9L20", "8L20", "7M"], - rapidspin: ["9L1", "8L1", "7L1"], + rapidspin: ["9L1", "9S0", "8L1", "7L1"], recycle: ["7T"], rest: ["9M", "8M", "7M"], return: ["7M"], @@ -93627,6 +98661,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { wonderroom: ["8M", "7T"], workup: ["8M", "7M"], }, + eventData: [ + {generation: 9, level: 50, moves: ["doomdesire", "flashcannon", "earthpower", "rapidspin"], pokeball: "pokeball"}, + ], }, solotl: { learnset: { @@ -93698,16 +98735,18 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { acrobatics: ["9M", "8M"], agility: ["9M", "8M"], + alluringvoice: ["9M"], allyswitch: ["8M"], attract: ["8M"], batonpass: ["9M", "9L1", "8M", "8L1"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], bulldoze: ["9M", "8M"], charm: ["9M", "9L20", "8M", "8L20"], cosmicpower: ["9L28", "8M", "8L28"], dazzlinggleam: ["9M", "8M"], dracometeor: ["8T"], dragonbreath: ["9L1", "8L1"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M"], dragonpulse: ["9M", "9L44", "8M", "8L44"], dragonrush: ["9L56", "8L56"], @@ -93734,7 +98773,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { lightscreen: ["9M", "8M"], magicalleaf: ["9M", "8M"], magiccoat: ["8L1"], - meteorbeam: ["8T"], + meteorbeam: ["9M", "8T"], metronome: ["9M", "8M"], mysticalfire: ["9L0", "8M", "8L0"], outrage: ["9M", "8M"], @@ -93745,7 +98784,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { rest: ["9M", "8M"], round: ["8M"], safeguard: ["9L32", "8M"], - scorchingsands: ["8T"], + scorchingsands: ["9M", "8T"], sleeptalk: ["9M", "8M"], snore: ["8M"], solarbeam: ["9M", "8M"], @@ -93772,7 +98811,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { bite: ["9L8", "8L8"], bodyslam: ["9M", "8M"], breakingswipe: ["8M"], - bugbite: ["9L16", "8L16"], + bugbite: ["9M", "9L16", "8L16"], bugbuzz: ["9M", "9L24", "8M", "8L24"], corrosivegas: ["8T"], crunch: ["9M", "9L36", "8M", "8L36"], @@ -93789,12 +98828,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { firefang: ["9M", "8M"], firstimpression: ["9E", "8E"], flashcannon: ["9M", "8M"], - haze: ["9L28", "8L28"], + haze: ["9M", "9L28", "8L28"], icefang: ["9M", "8M"], ironhead: ["9M", "8M"], irontail: ["8M"], leechlife: ["9M", "8M"], - lunge: ["9L44", "8L44"], + lunge: ["9M", "9L44", "8L44"], megahorn: ["9E", "8M"], outrage: ["9M", "8M"], pinmissile: ["8M"], @@ -93818,13 +98857,13 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strugglebug: ["9M", "9L1", "8L1"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], - superfang: ["9L32", "8L32"], + superfang: ["9M", "9L32", "8L32"], superpower: ["8M"], swordsdance: ["9M", "8M"], taunt: ["9M", "8M"], terablast: ["9M"], thunderfang: ["9M", "8M"], - uproar: ["8M"], + uproar: ["9M", "8M"], workup: ["8M"], xscissor: ["9M", "8M"], }, @@ -93835,9 +98874,9 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { attract: ["8M"], bite: ["9L1", "8L1"], bodyslam: ["9M", "8M"], - breakingswipe: ["8M"], + breakingswipe: ["9M", "8M"], brutalswing: ["8M"], - bugbite: ["9L16", "8L16"], + bugbite: ["9M", "9L16", "8L16"], bugbuzz: ["9M", "9L24", "8M", "8L24"], bulldoze: ["9M", "8M"], closecombat: ["9M", "8M"], @@ -93846,11 +98885,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { darkpulse: ["9M", "8M"], dracometeor: ["9M", "8T"], dragonbreath: ["9L1", "8L1"], + dragoncheer: ["9M"], dragonclaw: ["9M", "8M"], - dragonhammer: ["8L0"], + dragonhammer: ["9M", "8L0"], dragonpulse: ["9M", "9L46", "8M", "8L46"], dragontail: ["9M"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], earthpower: ["9M", "8M"], earthquake: ["9M", "8M"], endure: ["9M", "8M"], @@ -93860,14 +98900,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { focusblast: ["9M", "8M"], gigaimpact: ["9M", "9L58", "8M", "8L58"], gunkshot: ["9M", "8M"], - haze: ["9L28", "8L28"], - highhorsepower: ["8M"], + haze: ["9M", "9L28", "8L28"], + highhorsepower: ["9M", "8M"], hyperbeam: ["9M", "8M"], icefang: ["9M", "8M"], ironhead: ["9M", "8M"], irontail: ["8M"], leechlife: ["9M", "8M"], - lunge: ["9L52", "8L52"], + lunge: ["9M", "9L52", "8L52"], megahorn: ["8M"], nastyplot: ["9M", "8M"], outrage: ["9M", "8M"], @@ -93879,10 +98919,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { raindance: ["9M", "8M"], rest: ["9M", "8M"], round: ["8M"], - scaleshot: ["9L0"], + scaleshot: ["9M", "9L0"], scaryface: ["9M", "8M"], screech: ["8M"], - skittersmack: ["8T"], + skittersmack: ["9M", "8T"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M"], smog: ["9L12", "8L12"], @@ -93891,7 +98931,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { strugglebug: ["9M", "9L1", "8L1"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], - superfang: ["9L34", "8L34"], + superfang: ["9M", "9L34", "8L34"], superpower: ["8M"], swordsdance: ["9M", "8M"], taunt: ["9M", "8M"], @@ -93899,7 +98939,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { thunder: ["9M", "8M"], thunderbolt: ["9M", "8M"], thunderfang: ["9M", "8M"], - uproar: ["8M"], + uproar: ["9M", "8M"], uturn: ["9M", "8M"], wildcharge: ["9M", "8M"], workup: ["8M"], @@ -93910,6 +98950,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { learnset: { acidspray: ["9M", "9L1", "8L1"], aerialace: ["9M", "9L10", "8L10"], + alluringvoice: ["9M"], aromatherapy: ["8L60"], assurance: ["8M"], attract: ["8M"], @@ -93940,7 +98981,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { icefang: ["9M", "9L20", "8M", "8L20"], imprison: ["9M", "9L25", "8M", "8L25"], knockoff: ["9L1", "8L1"], - lashout: ["8T"], + lashout: ["9M", "8T"], lifedew: ["9L40", "8L40"], lightscreen: ["9M", "8M"], metalclaw: ["9M", "9L5", "8L5"], @@ -93951,6 +98992,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { payday: ["8M"], playrough: ["9M", "9L65", "8M"], protect: ["9M", "8M"], + psychicnoise: ["9M"], recover: ["9L1", "8L1", "8S0"], reflect: ["9M", "8M"], rest: ["9M", "8M"], @@ -93962,10 +99004,10 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { shadowball: ["9M", "8M"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M"], - sludgewave: ["8M"], + sludgewave: ["9M", "8M"], snarl: ["9M", "8M"], snore: ["8M"], - spite: ["9L15", "8L15"], + spite: ["9M", "9L15", "8L15"], stompingtantrum: ["9M", "9L30", "8M", "8L30"], substitute: ["9M", "8M"], sunnyday: ["9M", "8M"], @@ -93979,7 +99021,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { toxic: ["9L55", "8L55"], toxicspikes: ["9M", "8M"], trailblaze: ["9M"], - uproar: ["8M"], + uproar: ["9M", "8M"], venomdrench: ["8M"], wideguard: ["9L50", "8L50"], }, @@ -94002,7 +99044,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { confuseray: ["9L10", "8L10"], darkpulse: ["9M", "8M"], drillpeck: ["9L35", "8L35"], - dualwingbeat: ["8T"], + dualwingbeat: ["9M", "8T"], endure: ["9M", "8M"], facade: ["9M", "8M"], fly: ["9M", "8M"], @@ -94016,8 +99058,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { hyperbeam: ["9M", "8M"], imprison: ["9M", "8M"], irondefense: ["9M", "8M"], - knockoff: ["9E", "8E"], - lashout: ["8T"], + knockoff: ["9M", "9E", "8E"], + lashout: ["9M", "8T"], magicalleaf: ["9M", "8M"], magicroom: ["8M"], meanlook: ["9E", "8E"], @@ -94042,7 +99084,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { skillswap: ["9M", "8M"], sleeptalk: ["9M", "8M"], sludgebomb: ["9M", "8M"], - sludgewave: ["8M"], + sludgewave: ["9M", "8M"], snore: ["8M"], stealthrock: ["9M", "8M"], steelwing: ["8M"], @@ -94050,6 +99092,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swift: ["9M", "8M"], tailwind: ["9M"], takedown: ["9M"], + temperflare: ["9M"], terablast: ["9M"], thunderwave: ["9M", "8M"], toxic: ["9L30", "8L30"], @@ -94075,7 +99118,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { facade: ["9M", "8M"], fissure: ["9L44", "8L44"], heavyslam: ["9M", "8M"], - highhorsepower: ["8M"], + highhorsepower: ["9M", "9E", "8M"], megakick: ["8M"], mudshot: ["9M", "8M"], painsplit: ["9E", "8E"], @@ -94088,7 +99131,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M"], sandattack: ["9L1", "8L1"], sandstorm: ["9M", "9L20", "8M", "8L20"], - sandtomb: ["9L14", "8M", "8L4"], + sandtomb: ["9M", "9L14", "8M", "8L4"], scorchingsands: ["8T"], sleeptalk: ["9M", "8M"], snore: ["8M"], @@ -94126,7 +99169,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { gigaimpact: ["9M", "8M"], healbell: ["8L1"], heavyslam: ["9M", "8M"], - highhorsepower: ["9E", "8M"], + highhorsepower: ["9M", "8M"], hornleech: ["9L1", "8L1"], hyperbeam: ["9M", "8M"], lashout: ["8T"], @@ -94142,8 +99185,8 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { round: ["8M"], sandattack: ["9L1", "8L1"], sandstorm: ["9M", "9L1", "8M", "8L1"], - sandtomb: ["9L1", "8M", "8L1"], - scorchingsands: ["8T"], + sandtomb: ["9M", "9L1", "8M", "8L1"], + scorchingsands: ["9M", "8T"], sleeptalk: ["9M", "8M"], snore: ["8M"], spitup: ["9L1", "8L1"], @@ -94157,12 +99200,368 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { swordsdance: ["9M", "8M"], tackle: ["9L1", "8L1"], taunt: ["9M", "9L1", "8M", "8L1"], + temperflare: ["9M"], terablast: ["9M"], thief: ["9M", "9L1", "8M", "8L1"], watergun: ["9L1", "8L1"], waterpulse: ["9M"], }, }, + ababo: { + learnset: { + bodyslam: ["9M"], + bulkup: ["9M"], + charm: ["9M", "9L20"], + copycat: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L4"], + disable: ["9L16"], + disarmingvoice: ["9M", "9L12"], + drainingkiss: ["9M"], + endure: ["9M"], + explosion: ["9E"], + extremespeed: ["9E"], + facade: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + playrough: ["9M"], + pound: ["9L1"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seismictoss: ["9E"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9L8"], + takedown: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + wildcharge: ["9M"], + wish: ["9E"], + }, + }, + scattervein: { + learnset: { + batonpass: ["9M"], + bodyslam: ["9M"], + brutalswing: ["9L12"], + bulkup: ["9M"], + charm: ["9M", "9L1"], + copycat: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L1"], + disable: ["9L1"], + disarmingvoice: ["9M", "9L1"], + doubleedge: ["9L44"], + drainingkiss: ["9M"], + echoedvoice: ["9L8"], + endure: ["9M"], + energyball: ["9M"], + explosion: ["9E"], + extremespeed: ["9E"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + lashout: ["9M"], + lifedew: ["9L24"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L36"], + moonlight: ["9L28"], + playrough: ["9M"], + pound: ["9L1"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + safeguard: ["9L32"], + screech: ["9L40"], + seismictoss: ["9E"], + shadowball: ["9M"], + slam: ["9L20"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9L1"], + tailwhip: ["9L4"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + tickle: ["9L16"], + trailblaze: ["9M"], + trick: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + wish: ["9E"], + wrap: ["9L1"], + zenheadbutt: ["9M"], + }, + }, + hemogoblin: { + learnset: { + batonpass: ["9M"], + bodyslam: ["9M"], + brutalswing: ["9L1"], + bulkup: ["9M"], + burningjealousy: ["9M"], + charm: ["9M", "9L1"], + copycat: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L1"], + disable: ["9L1"], + disarmingvoice: ["9M", "9L1"], + doubleedge: ["9L1"], + drainingkiss: ["9M"], + echoedvoice: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + lashout: ["9M"], + lifedew: ["9L1"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L1"], + moonlight: ["9L1"], + overheat: ["9M"], + playrough: ["9M"], + pound: ["9L1"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + safeguard: ["9L1"], + screech: ["9L1"], + shadowball: ["9M"], + slam: ["9L1"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + temperflare: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + tickle: ["9L1"], + trailblaze: ["9M"], + trick: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + wrap: ["9L1"], + zenheadbutt: ["9M"], + }, + }, + cresceidon: { + learnset: { + amnesia: ["9M"], + aquaring: ["9L10"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L35"], + bulldoze: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + doubleedge: ["9M", "9L60"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + haze: ["9M","9L40"], + healingwish: ["9E"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + mist: ["9L25"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L55"], + muddywater: ["9M"], + playrough: ["9M"], + pound: ["9L1"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + recover: ["9L50"], + rest: ["9M"], + scald: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + soak: ["9L30"], + spitup: ["9E"], + splash: ["9L1"], + stockpile: ["9E"], + substitute: ["9M"], + surf: ["9M", "9L45"], + swallow: ["9E"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderwave: ["9M"], + waterfall: ["9M"], + watergun: ["9L5"], + waterpulse: ["9M", "9L20"], + wavecrash: ["9L65"], + weatherball: ["9M"], + whirlpool: ["9M"], + wideguard: ["9L15"], + wish: ["9E"], + zenheadbutt: ["9M"], + }, + }, + chuggalong: { + learnset: { + acidspray: ["9M"], + bite: ["9L1"], + bodyslam: ["9M"], + bulldoze: ["9M"], + celebrate: ["9S0"], + clangingscales: ["9L52"], + clangoroussoul: ["9L64"], + crunch: ["9M", "9L32"], + destinybond: ["9E"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragoncheer: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M", "9L1", "9S0"], + dragonpulse: ["9M", "9L36"], + dragonrush: ["9E"], + dragontail: ["9M", "9L1", "9S0"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M", "9L58"], + healbell: ["9E"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L46"], + ironhead: ["9M"], + lastresort: ["9E"], + metalsound: ["9M"], + nobleroar: ["9E"], + outrage: ["9M"], + poisongas: ["9L1"], + poisonjab: ["9M"], + poisontail: ["9M"], + protect: ["9M", "9L24"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M", "9L28"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + sludge: ["9L20"], + sludgebomb: ["9M", "9L41", "9S0"], + sludgewave: ["9M"], + smog: ["9L1"], + snarl: ["9M"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M", "9L12"], + terablast: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + venoshock: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, shiny: true, abilities: ["armortail"], moves: ["celebrate", "dragontail", "sludgebomb", "dragondance"], pokeball: "cherishball"}, + ], + }, + shox: { + learnset: { + bodyslam: ["9M"], + discharge: ["9M"], + doubleedge: ["9M"], + endure: ["9M"], + facade: ["9M"], + glare: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + knockoff: ["9M"], + milkdrink: ["9M"], + nuzzle: ["9M"], + protect: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + superfang: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderwave: ["9M"], + thunderbolt: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, pokestarsmeargle: { eventData: [ {generation: 5, level: 60, gender: "M", abilities: ["owntempo"], moves: ["mindreader", "guillotine", "tailwhip", "gastroacid"]}, diff --git a/data/mods/fullpotential/abilities.ts b/data/mods/fullpotential/abilities.ts index 60df6850dc09..fbd32c84044b 100644 --- a/data/mods/fullpotential/abilities.ts +++ b/data/mods/fullpotential/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { unaware: { inherit: true, onAnyModifyBoost(boosts, pokemon) { diff --git a/data/mods/gen1/conditions.ts b/data/mods/gen1/conditions.ts index fe5eebb4368b..150081088830 100644 --- a/data/mods/gen1/conditions.ts +++ b/data/mods/gen1/conditions.ts @@ -8,7 +8,7 @@ * under certain conditions and re-applied under other conditions. */ -export const Conditions: {[id: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { brn: { name: 'brn', effectType: 'Status', @@ -164,7 +164,7 @@ export const Conditions: {[id: string]: ModdedConditionData} = { onStart(target) { target.removeVolatile('mustrecharge'); }, - onBeforeMovePriority: 4, + onBeforeMovePriority: 8, onBeforeMove(pokemon) { if (!this.runEvent('Flinch', pokemon)) { return; @@ -187,7 +187,7 @@ export const Conditions: {[id: string]: ModdedConditionData} = { partiallytrapped: { name: 'partiallytrapped', duration: 2, - onBeforeMovePriority: 4, + onBeforeMovePriority: 9, onBeforeMove(pokemon) { this.add('cant', pokemon, 'partiallytrapped'); return false; @@ -216,6 +216,7 @@ export const Conditions: {[id: string]: ModdedConditionData} = { mustrecharge: { inherit: true, duration: 0, + onBeforeMovePriority: 7, onStart() {}, }, lockedmove: { diff --git a/data/mods/gen1/formats-data.ts b/data/mods/gen1/formats-data.ts index 5212e716c813..3c430213f809 100644 --- a/data/mods/gen1/formats-data.ts +++ b/data/mods/gen1/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, @@ -6,7 +6,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, venusaur: { - tier: "UU", + tier: "NU", }, charmander: { tier: "LC", @@ -21,7 +21,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, wartortle: { - tier: "NFE", + tier: "ZU", }, blastoise: { tier: "NU", @@ -33,7 +33,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "PU", + tier: "ZU", }, weedle: { tier: "LC", @@ -42,7 +42,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beedrill: { - tier: "PU", + tier: "ZU", }, pidgey: { tier: "LC", @@ -51,7 +51,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, pidgeot: { - tier: "PU", + tier: "ZU", }, rattata: { tier: "LC", @@ -69,19 +69,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, arbok: { - tier: "PU", + tier: "ZU", }, pikachu: { tier: "LC", }, raichu: { - tier: "NUBL", + tier: "UU", }, sandshrew: { tier: "LC", }, sandslash: { - tier: "PU", + tier: "ZU", }, nidoranf: { tier: "LC", @@ -105,13 +105,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, clefable: { - tier: "NU", + tier: "UU", }, vulpix: { tier: "LC", }, ninetales: { - tier: "NU", + tier: "UU", }, jigglypuff: { tier: "LC", @@ -123,7 +123,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, golbat: { - tier: "PU", + tier: "ZU", }, oddish: { tier: "LC", @@ -138,7 +138,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, parasect: { - tier: "PU", + tier: "ZU", }, venonat: { tier: "LC", @@ -162,13 +162,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, golduck: { - tier: "NUBL", + tier: "NU", }, mankey: { tier: "LC", }, primeape: { - tier: "PU", + tier: "ZU", }, growlithe: { tier: "LC", @@ -177,16 +177,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "PU", }, poliwag: { - tier: "LC", + tier: "ZU", }, poliwhirl: { - tier: "NUBL", + tier: "NU", }, poliwrath: { - tier: "NUBL", + tier: "NU", }, abra: { - tier: "LC", + tier: "PU", }, kadabra: { tier: "UU", @@ -210,10 +210,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, victreebel: { - tier: "UU", + tier: "OU", }, tentacool: { - tier: "LC", + tier: "ZU", }, tentacruel: { tier: "UU", @@ -222,19 +222,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, graveler: { - tier: "NFE", + tier: "PU", }, golem: { - tier: "NU", + tier: "UU", }, ponyta: { - tier: "LC", + tier: "ZU", }, rapidash: { tier: "PU", }, slowpoke: { - tier: "LC", + tier: "ZU", }, slowbro: { tier: "OU", @@ -243,10 +243,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, magneton: { - tier: "PU", + tier: "ZU", }, farfetchd: { - tier: "PU", + tier: "ZU", }, doduo: { tier: "LC", @@ -264,7 +264,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, muk: { - tier: "PU", + tier: "ZU", }, shellder: { tier: "LC", @@ -273,7 +273,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, gastly: { - tier: "LC", + tier: "PU", }, haunter: { tier: "UU", @@ -282,13 +282,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, onix: { - tier: "PU", + tier: "ZU", }, drowzee: { - tier: "LC", + tier: "ZU", }, hypno: { - tier: "UU", + tier: "UUBL", }, krabby: { tier: "LC", @@ -300,7 +300,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, electrode: { - tier: "NU", + tier: "UU", }, exeggcute: { tier: "NU", @@ -312,22 +312,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, marowak: { - tier: "PU", + tier: "ZU", }, hitmonlee: { - tier: "PU", + tier: "ZU", }, hitmonchan: { - tier: "PU", + tier: "ZU", }, lickitung: { - tier: "PU", + tier: "ZU", }, koffing: { tier: "LC", }, weezing: { - tier: "PU", + tier: "ZU", }, rhyhorn: { tier: "LC", @@ -357,7 +357,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "PU", }, staryu: { - tier: "LC", + tier: "PU", }, starmie: { tier: "OU", @@ -366,7 +366,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, scyther: { - tier: "PU", + tier: "ZU", }, jynx: { tier: "OU", @@ -375,7 +375,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, magmar: { - tier: "PU", + tier: "ZU", }, pinsir: { tier: "PU", @@ -390,10 +390,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, lapras: { - tier: "UU", + tier: "UUBL", }, ditto: { - tier: "PU", + tier: "ZU", }, eevee: { tier: "LC", @@ -405,13 +405,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, flareon: { - tier: "PU", + tier: "ZU", }, porygon: { tier: "PU", }, omanyte: { - tier: "LC", + tier: "ZU", }, omastar: { tier: "UU", @@ -423,13 +423,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, aerodactyl: { - tier: "UU", + tier: "NU", }, snorlax: { tier: "OU", }, articuno: { - tier: "UU", + tier: "UUBL", }, zapdos: { tier: "OU", @@ -441,7 +441,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dragonair: { - tier: "NFE", + tier: "ZU", }, dragonite: { tier: "UU", diff --git a/data/mods/gen1/moves.ts b/data/mods/gen1/moves.ts index d974cebbf720..38565a0bc0b8 100644 --- a/data/mods/gen1/moves.ts +++ b/data/mods/gen1/moves.ts @@ -3,7 +3,7 @@ * Some moves have had major changes, such as Bite's typing. */ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { acid: { inherit: true, secondary: { @@ -80,7 +80,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { self: { volatileStatus: 'partialtrappinglock', }, - // FIXME: onBeforeMove(pokemon, target) {target.removeVolatile('mustrecharge')} + onTryMove(source, target) { + if (target.volatiles['mustrecharge']) { + target.removeVolatile('mustrecharge'); + this.hint("In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.", true); + } + }, onHit(target, source) { /** * The duration of the partially trapped must be always renewed to 2 @@ -136,7 +141,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { self: { volatileStatus: 'partialtrappinglock', }, - // FIXME: onBeforeMove(pokemon, target) {target.removeVolatile('mustrecharge')} + onTryMove(source, target) { + if (target.volatiles['mustrecharge']) { + target.removeVolatile('mustrecharge'); + this.hint("In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.", true); + } + }, onHit(target, source) { /** * The duration of the partially trapped must be always renewed to 2 @@ -207,6 +217,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { return 2 * this.lastDamage; }, + flags: {contact: 1, protect: 1, metronome: 1}, }, crabhammer: { inherit: true, @@ -235,7 +246,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Disable", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'disable', onTryHit(target) { // This function should not return if the checks are met. Adding && undefined ensures this happens. @@ -255,7 +266,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { onEnd(pokemon) { this.add('-end', pokemon, 'Disable'); }, - onBeforeMovePriority: 7, + onBeforeMovePriority: 6, onBeforeMove(pokemon, target, move) { pokemon.volatiles['disable'].time--; if (!pokemon.volatiles['disable'].time) { @@ -313,7 +324,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { self: { volatileStatus: 'partialtrappinglock', }, - // FIXME: onBeforeMove(pokemon, target) {target.removeVolatile('mustrecharge')} + onTryMove(source, target) { + if (target.volatiles['mustrecharge']) { + target.removeVolatile('mustrecharge'); + this.hint("In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.", true); + } + }, onHit(target, source) { /** * The duration of the partially trapped must be always renewed to 2 @@ -378,7 +394,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { pokemon.cureStatus(true); } if (pokemon.status === 'tox') { - pokemon.setStatus('psn'); + pokemon.setStatus('psn', null, null, true); } pokemon.updateSpeed(); // should only clear a specific set of volatiles @@ -469,7 +485,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Light Screen", pp: 30, priority: 0, - flags: {}, + flags: {metronome: 1}, volatileStatus: 'lightscreen', onTryHit(pokemon) { if (pokemon.volatiles['lightscreen']) { @@ -484,12 +500,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { target: "self", type: "Psychic", }, - metronome: { - inherit: true, - noMetronome: ["Metronome", "Struggle"], - }, mimic: { inherit: true, + flags: {protect: 1, bypasssub: 1, metronome: 1}, onHit(target, source) { const moveslot = source.moves.indexOf('mimic'); if (moveslot < 0) return false; @@ -627,9 +640,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { heal: null, onHit(target) { if (target.hp === target.maxhp) return false; - // Fail when health is 255 or 511 less than max - if (target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511) || target.hp === target.maxhp) { - this.hint("In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256."); + // Fail when health is 255 or 511 less than max, unless it is divisible by 256 + if ( + target.hp === target.maxhp || + ((target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511)) && target.hp % 256 !== 0) + ) { + this.hint( + "In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256, " + + "unless the current hp is also divisible by 256." + ); return false; } this.heal(Math.floor(target.maxhp / 2), target, target); @@ -643,7 +662,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Reflect", pp: 20, priority: 0, - flags: {}, + flags: {metronome: 1}, volatileStatus: 'reflect', onTryHit(pokemon) { if (pokemon.volatiles['reflect']) { @@ -664,9 +683,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { onTry() {}, onHit(target, source, move) { if (target.hp === target.maxhp) return false; - // Fail when health is 255 or 511 less than max - if (target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511)) { - this.hint("In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256."); + // Fail when health is 255 or 511 less than max, unless it is divisible by 256 + if ( + target.hp === target.maxhp || + ((target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511)) && target.hp % 256 !== 0) + ) { + this.hint( + "In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256, " + + "unless the current hp is also divisible by 256." + ); return false; } if (!target.setStatus('slp', source, move)) return false; @@ -762,9 +787,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { heal: null, onHit(target) { if (target.hp === target.maxhp) return false; - // Fail when health is 255 or 511 less than max - if (target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511) || target.hp === target.maxhp) { - this.hint("In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256."); + // Fail when health is 255 or 511 less than max, unless it is divisible by 256 + if ( + target.hp === target.maxhp || + ((target.hp === (target.maxhp - 255) || target.hp === (target.maxhp - 511)) && target.hp % 256 !== 0) + ) { + this.hint( + "In Gen 1, recovery moves fail if (user's maximum HP - user's current HP + 1) is divisible by 256, " + + "unless the current hp is also divisible by 256." + ); return false; } this.heal(Math.floor(target.maxhp / 2), target, target); @@ -784,6 +815,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Substitute", pp: 10, priority: 0, + flags: {metronome: 1}, volatileStatus: 'substitute', onTryHit(target) { if (target.volatiles['substitute']) { @@ -881,7 +913,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { secondary: null, target: "self", type: "Normal", - flags: {}, }, superfang: { inherit: true, @@ -923,7 +954,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { self: { volatileStatus: 'partialtrappinglock', }, - // FIXME: onBeforeMove(pokemon, target) {target.removeVolatile('mustrecharge')} + onTryMove(source, target) { + if (target.volatiles['mustrecharge']) { + target.removeVolatile('mustrecharge'); + this.hint("In Gen 1, partial trapping moves negate the recharge turn of Hyper Beam, even if they miss.", true); + } + }, onHit(target, source) { /** * The duration of the partially trapped must be always renewed to 2 diff --git a/data/mods/gen1/pokedex.ts b/data/mods/gen1/pokedex.ts index 2287635fb39f..f918ae1928cb 100644 --- a/data/mods/gen1/pokedex.ts +++ b/data/mods/gen1/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { missingno: { inherit: true, baseStats: {hp: 33, atk: 136, def: 0, spa: 6, spd: 6, spe: 29}, diff --git a/data/mods/gen1/random-data.json b/data/mods/gen1/random-data.json deleted file mode 100644 index 56a46ba7ac75..000000000000 --- a/data/mods/gen1/random-data.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "bulbasaur": { - "moves": ["bodyslam", "sleeppowder"], - "essentialMove": "razorleaf", - "exclusiveMoves": ["megadrain", "swordsdance", "swordsdance"] - }, - "ivysaur": { - "moves": ["bodyslam", "sleeppowder", "swordsdance"], - "essentialMove": "razorleaf" - }, - "venusaur": { - "moves": ["bodyslam", "hyperbeam", "sleeppowder", "swordsdance"], - "essentialMove": "razorleaf" - }, - "charmander": { - "moves": ["bodyslam", "slash"], - "essentialMove": "fireblast", - "exclusiveMoves": ["counter", "seismictoss"], - "comboMoves": ["bodyslam", "fireblast", "submission", "swordsdance"] - }, - "charmeleon": { - "moves": ["bodyslam", "slash"], - "essentialMove": "fireblast", - "exclusiveMoves": ["counter", "swordsdance"], - "comboMoves": ["bodyslam", "fireblast", "submission", "swordsdance"] - }, - "charizard": { - "moves": ["bodyslam", "earthquake", "slash"], - "essentialMove": "fireblast", - "comboMoves": ["hyperbeam", "swordsdance"] - }, - "squirtle": { - "moves": ["blizzard", "hydropump", "seismictoss", "surf"], - "exclusiveMoves": ["bodyslam", "counter"] - }, - "wartortle": { - "moves": ["blizzard", "bodyslam", "hydropump", "surf"], - "exclusiveMoves": ["counter", "rest", "seismictoss"] - }, - "blastoise": { - "moves": ["blizzard", "bodyslam", "hydropump", "surf"], - "exclusiveMoves": ["earthquake", "rest"] - }, - "butterfree": { - "moves": ["psychic", "sleeppowder", "stunspore"], - "exclusiveMoves": ["megadrain", "psywave"] - }, - "beedrill": { - "moves": ["megadrain", "swordsdance", "twineedle"], - "exclusiveMoves": ["doubleedge", "doubleedge", "hyperbeam"], - "comboMoves": ["agility", "hyperbeam", "swordsdance", "twineedle"] - }, - "pidgey": { - "moves": ["agility", "doubleedge", "skyattack"], - "exclusiveMoves": ["mimic", "mirrormove", "reflect", "sandattack", "substitute", "quickattack", "toxic"] - }, - "pidgeotto": { - "moves": ["agility", "doubleedge", "skyattack"], - "exclusiveMoves": ["mimic", "mirrormove", "reflect", "sandattack", "substitute", "quickattack", "toxic"] - }, - "pidgeot": { - "moves": ["agility", "doubleedge", "hyperbeam"], - "exclusiveMoves": ["mimic", "mirrormove", "reflect", "sandattack", "skyattack", "skyattack", "substitute", "quickattack", "toxic"] - }, - "rattata": { - "moves": ["blizzard", "bodyslam"], - "essentialMove": "superfang", - "exclusiveMoves": ["thunderbolt", "thunderbolt", "quickattack"] - }, - "raticate": { - "moves": ["blizzard", "bodyslam", "hyperbeam"], - "essentialMove": "superfang" - }, - "spearow": { - "moves": ["agility", "doubleedge", "drillpeck"], - "exclusiveMoves": ["leer", "mimic", "mirrormove", "substitute", "toxic"] - }, - "fearow": { - "moves": ["agility", "doubleedge", "drillpeck", "hyperbeam"] - }, - "ekans": { - "moves": ["bodyslam", "earthquake", "glare", "rockslide"] - }, - "arbok": { - "moves": ["earthquake", "glare", "hyperbeam"], - "exclusiveMoves": ["bodyslam", "rockslide"] - }, - "pikachu": { - "moves": ["surf", "thunderwave"], - "essentialMove": "thunderbolt", - "exclusiveMoves": ["agility", "bodyslam", "seismictoss", "thunder"] - }, - "raichu": { - "moves": ["surf", "thunderwave"], - "essentialMove": "thunderbolt", - "exclusiveMoves": ["agility", "bodyslam", "hyperbeam", "seismictoss", "thunder"] - }, - "sandshrew": { - "moves": ["bodyslam", "rockslide", "swordsdance"], - "essentialMove": "earthquake" - }, - "sandslash": { - "moves": ["bodyslam", "rockslide", "swordsdance"], - "essentialMove": "earthquake" - }, - "nidoranf": { - "moves": ["blizzard", "bodyslam", "thunderbolt"], - "exclusiveMoves": ["doubleedge", "doublekick"] - }, - "nidorina": { - "moves": ["blizzard", "bodyslam", "thunderbolt"], - "exclusiveMoves": ["bubblebeam", "doubleedge", "doublekick"] - }, - "nidoqueen": { - "moves": ["blizzard", "bodyslam", "thunderbolt"], - "essentialMove": "earthquake" - }, - "nidoranm": { - "moves": ["blizzard", "bodyslam", "thunderbolt"], - "exclusiveMoves": ["doubleedge", "doublekick"] - }, - "nidorino": { - "moves": ["blizzard", "bodyslam", "thunderbolt"], - "exclusiveMoves": ["bubblebeam", "doubleedge", "doublekick"] - }, - "nidoking": { - "moves": ["blizzard", "bodyslam"], - "essentialMove": "earthquake", - "exclusiveMoves": ["rockslide", "thunder", "thunderbolt"] - }, - "clefairy": { - "moves": ["bodyslam", "thunderbolt", "thunderwave"], - "essentialMove": "blizzard", - "exclusiveMoves": ["counter", "psychic", "seismictoss", "sing", "sing"] - }, - "clefable": { - "moves": ["bodyslam", "thunderbolt", "thunderwave"], - "essentialMove": "blizzard", - "exclusiveMoves": ["counter", "hyperbeam", "psychic", "sing", "sing"] - }, - "vulpix": { - "moves": ["bodyslam", "confuseray", "fireblast"], - "exclusiveMoves": ["flamethrower", "reflect", "substitute"] - }, - "ninetales": { - "moves": ["bodyslam", "confuseray", "fireblast"], - "exclusiveMoves": ["flamethrower", "hyperbeam", "reflect", "substitute"] - }, - "jigglypuff": { - "moves": ["blizzard", "bodyslam", "seismictoss", "thunderwave"], - "exclusiveMoves": ["counter", "sing"] - }, - "wigglytuff": { - "moves": ["blizzard", "bodyslam", "thunderwave"], - "exclusiveMoves": ["counter", "hyperbeam", "sing"] - }, - "zubat": { - "moves": ["confuseray", "doubleedge", "megadrain", "toxic"] - }, - "golbat": { - "moves": ["confuseray", "doubleedge", "hyperbeam", "megadrain"] - }, - "oddish": { - "moves": ["doubleedge", "sleeppowder"], - "essentialMove": "megadrain", - "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] - }, - "gloom": { - "moves": ["doubleedge", "sleeppowder"], - "essentialMove": "megadrain", - "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] - }, - "vileplume": { - "moves": ["bodyslam", "sleeppowder", "stunspore", "swordsdance"], - "essentialMove": "megadrain" - }, - "paras": { - "moves": ["bodyslam", "megadrain"], - "essentialMove": "spore", - "exclusiveMoves": ["growth", "slash", "stunspore", "stunspore", "swordsdance"] - }, - "parasect": { - "moves": ["bodyslam", "megadrain"], - "essentialMove": "spore", - "exclusiveMoves": ["growth", "hyperbeam", "slash", "stunspore", "stunspore", "swordsdance"] - }, - "venonat": { - "moves": ["psychic", "sleeppowder", "stunspore"], - "exclusiveMoves": ["doubleedge", "megadrain", "psywave"] - }, - "venomoth": { - "moves": ["psychic", "sleeppowder", "stunspore"], - "exclusiveMoves": ["doubleedge", "megadrain", "megadrain"] - }, - "diglett": { - "moves": ["bodyslam", "rockslide", "slash"], - "essentialMove": "earthquake" - }, - "dugtrio": { - "moves": ["bodyslam", "rockslide", "slash"], - "essentialMove": "earthquake" - }, - "meowth": { - "moves": ["bodyslam", "bubblebeam"], - "essentialMove": "slash", - "exclusiveMoves": ["thunder", "thunderbolt"] - }, - "persian": { - "moves": ["bodyslam", "bubblebeam"], - "essentialMove": "slash", - "exclusiveMoves": ["hyperbeam", "hyperbeam", "thunder", "thunderbolt"] - }, - "psyduck": { - "moves": ["amnesia", "blizzard"], - "essentialMove": "surf", - "exclusiveMoves": ["bodyslam", "hydropump", "rest", "seismictoss"] - }, - "golduck": { - "moves": ["amnesia", "blizzard"], - "essentialMove": "surf", - "exclusiveMoves": ["bodyslam", "hydropump", "rest", "seismictoss"] - }, - "mankey": { - "moves": ["bodyslam", "rockslide", "submission"], - "exclusiveMoves": ["counter", "megakick"] - }, - "primeape": { - "moves": ["bodyslam", "rockslide", "submission"], - "exclusiveMoves": ["counter", "hyperbeam", "hyperbeam"] - }, - "growlithe": { - "moves": ["bodyslam", "fireblast", "flamethrower", "reflect"] - }, - "arcanine": { - "moves": ["bodyslam", "fireblast", "hyperbeam"], - "exclusiveMoves": ["flamethrower", "reflect"] - }, - "poliwag": { - "moves": ["blizzard", "surf"], - "essentialMove": "amnesia", - "exclusiveMoves": ["hypnosis", "hypnosis", "psychic"] - }, - "poliwhirl": { - "moves": ["blizzard", "surf"], - "essentialMove": "amnesia", - "exclusiveMoves": ["counter", "hypnosis", "hypnosis", "psychic"] - }, - "poliwrath": { - "moves": ["blizzard", "bodyslam", "earthquake", "submission"], - "essentialMove": "surf", - "exclusiveMoves": ["hypnosis", "hypnosis", "psychic"], - "comboMoves": ["amnesia", "blizzard"] - }, - "abra": { - "moves": ["psychic", "seismictoss", "thunderwave"], - "exclusiveMoves": ["counter", "reflect"] - }, - "kadabra": { - "moves": ["psychic", "recover", "thunderwave"], - "exclusiveMoves": ["counter", "reflect", "reflect", "seismictoss", "seismictoss"] - }, - "alakazam": { - "moves": ["psychic", "recover", "thunderwave"], - "exclusiveMoves": ["counter", "reflect", "reflect", "seismictoss", "seismictoss"] - }, - "machop": { - "moves": ["bodyslam", "earthquake", "submission"], - "exclusiveMoves": ["counter", "rockslide", "rockslide"] - }, - "machoke": { - "moves": ["bodyslam", "earthquake", "submission"], - "exclusiveMoves": ["counter", "rockslide", "rockslide"] - }, - "machamp": { - "moves": ["bodyslam", "earthquake", "submission"], - "exclusiveMoves": ["counter", "hyperbeam", "rockslide", "rockslide"] - }, - "bellsprout": { - "moves": ["doubleedge", "sleeppowder", "stunspore", "swordsdance"], - "essentialMove": "razorleaf" - }, - "weepinbell": { - "moves": ["doubleedge", "sleeppowder", "stunspore", "swordsdance"], - "essentialMove": "razorleaf" - }, - "victreebel": { - "moves": ["bodyslam", "sleeppowder", "stunspore"], - "essentialMove": "razorleaf", - "comboMoves": ["hyperbeam", "swordsdance"] - }, - "tentacool": { - "moves": ["barrier", "hydropump", "surf"], - "essentialMove": "blizzard", - "exclusiveMoves": ["megadrain", "megadrain"], - "comboMoves": ["hydropump", "surf"] - }, - "tentacruel": { - "moves": ["blizzard", "hydropump", "hyperbeam", "surf"], - "essentialMove": "swordsdance" - }, - "geodude": { - "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] - }, - "graveler": { - "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] - }, - "golem": { - "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] - }, - "ponyta": { - "moves": ["agility", "bodyslam", "fireblast", "reflect"] - }, - "rapidash": { - "moves": ["agility", "bodyslam", "fireblast", "hyperbeam"] - }, - "slowpoke": { - "moves": ["earthquake", "surf"], - "essentialMove": "thunderwave", - "exclusiveMoves": ["blizzard", "psychic", "rest"], - "comboMoves": ["amnesia", "surf"] - }, - "slowbro": { - "moves": ["amnesia", "surf", "thunderwave"], - "exclusiveMoves": ["blizzard", "psychic", "rest", "rest"] - }, - "magnemite": { - "moves": ["thunder", "thunderbolt", "thunderwave"], - "exclusiveMoves": ["doubleedge", "mimic", "substitute", "toxic"] - }, - "magneton": { - "moves": ["thunder", "thunderbolt", "thunderwave"], - "exclusiveMoves": ["doubleedge", "hyperbeam", "hyperbeam", "mimic", "substitute", "toxic"] - }, - "farfetchd": { - "moves": ["agility", "bodyslam", "swordsdance"], - "essentialMove": "slash" - }, - "doduo": { - "moves": ["agility", "bodyslam", "doubleedge", "drillpeck"] - }, - "dodrio": { - "moves": ["agility", "bodyslam", "drillpeck", "hyperbeam"] - }, - "seel": { - "moves": ["blizzard", "bodyslam", "surf"], - "exclusiveMoves": ["mimic", "rest"] - }, - "dewgong": { - "moves": ["blizzard", "bodyslam", "surf"], - "exclusiveMoves": ["hyperbeam", "mimic", "rest", "rest"] - }, - "grimer": { - "moves": ["bodyslam", "sludge"], - "essentialMove": "explosion", - "exclusiveMoves": ["fireblast", "megadrain", "megadrain", "screech"] - }, - "muk": { - "moves": ["bodyslam", "sludge"], - "essentialMove": "explosion", - "exclusiveMoves": ["fireblast", "hyperbeam", "megadrain", "megadrain"] - }, - "shellder": { - "moves": ["blizzard", "doubleedge", "explosion", "surf"] - }, - "cloyster": { - "moves": ["blizzard", "explosion", "surf"], - "exclusiveMoves": ["doubleedge", "hyperbeam", "hyperbeam"] - }, - "gastly": { - "moves": ["explosion", "megadrain", "nightshade", "psychic"], - "essentialMove": "thunderbolt", - "exclusiveMoves": ["confuseray", "hypnosis", "hypnosis"] - }, - "haunter": { - "moves": ["explosion", "megadrain", "nightshade", "psychic"], - "essentialMove": "thunderbolt", - "exclusiveMoves": ["confuseray", "hypnosis", "hypnosis"] - }, - "gengar": { - "moves": ["explosion", "megadrain", "nightshade", "psychic"], - "essentialMove": "thunderbolt", - "exclusiveMoves": ["confuseray", "hypnosis", "hypnosis"] - }, - "onix": { - "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] - }, - "drowzee": { - "moves": ["hypnosis", "psychic", "thunderwave"], - "exclusiveMoves": ["counter", "reflect", "rest", "seismictoss", "seismictoss"] - }, - "hypno": { - "moves": ["hypnosis", "psychic", "thunderwave"], - "exclusiveMoves": ["counter", "reflect", "rest", "rest", "seismictoss", "seismictoss"] - }, - "krabby": { - "moves": ["blizzard", "bodyslam", "crabhammer", "swordsdance"] - }, - "kingler": { - "moves": ["bodyslam", "crabhammer", "hyperbeam", "swordsdance"] - }, - "voltorb": { - "moves": ["explosion", "thunderbolt", "thunderwave"], - "exclusiveMoves": ["screech", "thunder", "toxic"] - }, - "electrode": { - "moves": ["explosion", "thunderbolt", "thunderwave"], - "exclusiveMoves": ["hyperbeam", "screech", "thunder", "toxic"] - }, - "exeggcute": { - "moves": ["sleeppowder", "stunspore"], - "essentialMove": "psychic", - "exclusiveMoves": ["doubleedge", "explosion", "explosion"] - }, - "exeggutor": { - "moves": ["explosion", "psychic", "sleeppowder"], - "exclusiveMoves": ["doubleedge", "eggbomb", "hyperbeam", "megadrain", "megadrain", "stunspore", "stunspore", "stunspore"] - }, - "cubone": { - "moves": ["blizzard", "bodyslam", "earthquake", "seismictoss"] - }, - "marowak": { - "moves": ["blizzard", "bodyslam", "earthquake", "seismictoss"] - }, - "hitmonlee": { - "moves": ["bodyslam", "highjumpkick", "seismictoss"], - "exclusiveMoves": ["counter", "counter", "meditate"] - }, - "hitmonchan": { - "moves": ["bodyslam", "seismictoss", "submission"], - "exclusiveMoves": ["agility", "counter", "counter"] - }, - "lickitung": { - "moves": ["hyperbeam", "swordsdance"], - "essentialMove": "bodyslam", - "exclusiveMoves": ["blizzard", "earthquake", "earthquake", "earthquake"] - }, - "koffing": { - "moves": ["explosion", "fireblast", "sludge", "thunderbolt"] - }, - "weezing": { - "moves": ["explosion", "fireblast", "sludge", "thunderbolt"] - }, - "rhyhorn": { - "moves": ["bodyslam", "earthquake", "rockslide", "substitute"] - }, - "rhydon": { - "moves": ["bodyslam", "earthquake", "rockslide"], - "exclusiveMoves": ["hyperbeam", "substitute", "substitute"] - }, - "chansey": { - "moves": ["icebeam", "thunderwave"], - "essentialMove": "softboiled", - "exclusiveMoves": ["counter", "reflect", "seismictoss", "sing", "thunderbolt", "thunderbolt", "thunderbolt"] - }, - "tangela": { - "moves": ["bodyslam", "sleeppowder"], - "essentialMove": "megadrain", - "exclusiveMoves": ["growth", "stunspore", "stunspore", "stunspore", "swordsdance", "swordsdance"] - }, - "kangaskhan": { - "moves": ["bodyslam", "earthquake", "hyperbeam"], - "exclusiveMoves": ["counter", "rockslide", "rockslide", "surf"] - }, - "horsea": { - "moves": ["agility", "blizzard"], - "essentialMove": "surf", - "exclusiveMoves": ["doubleedge", "hydropump", "smokescreen"] - }, - "seadra": { - "moves": ["agility", "blizzard"], - "essentialMove": "surf", - "exclusiveMoves": ["doubleedge", "hydropump", "hyperbeam", "smokescreen"] - }, - "goldeen": { - "moves": ["agility", "blizzard", "doubleedge", "surf"] - }, - "seaking": { - "moves": ["blizzard", "doubleedge", "surf"], - "exclusiveMoves": ["agility", "agility", "hyperbeam"] - }, - "staryu": { - "moves": ["blizzard", "thunderbolt", "thunderwave"], - "essentialMove": "recover", - "exclusiveMoves": ["hydropump", "surf", "surf"] - }, - "starmie": { - "moves": ["blizzard", "thunderbolt", "thunderwave"], - "essentialMove": "recover", - "exclusiveMoves": ["hydropump", "psychic", "surf", "surf"] - }, - "mrmime": { - "moves": ["psychic", "seismictoss", "thunderbolt", "thunderwave"] - }, - "scyther": { - "moves": ["agility", "hyperbeam", "slash", "swordsdance"] - }, - "jynx": { - "moves": ["blizzard", "lovelykiss", "psychic"], - "exclusiveMoves": ["bodyslam", "counter", "counter", "mimic", "seismictoss"] - }, - "electabuzz": { - "moves": ["psychic", "seismictoss", "thunderbolt", "thunderwave"] - }, - "magmar": { - "moves": ["bodyslam", "confuseray", "fireblast"], - "exclusiveMoves": ["hyperbeam", "psychic"] - }, - "pinsir": { - "moves": ["bodyslam", "hyperbeam", "swordsdance"], - "exclusiveMoves": ["seismictoss", "submission", "submission"] - }, - "tauros": { - "moves": ["bodyslam", "earthquake", "hyperbeam"], - "exclusiveMoves": ["blizzard", "blizzard", "blizzard", "thunderbolt"] - }, - "gyarados": { - "moves": ["blizzard", "bodyslam", "hyperbeam", "thunderbolt"], - "exclusiveMoves": ["hydropump", "surf"] - }, - "lapras": { - "moves": ["bodyslam", "confuseray", "rest", "sing", "surf"], - "essentialMove": "blizzard", - "exclusiveMoves": ["thunderbolt", "thunderbolt"] - }, - "ditto": { - "level": 100, - "moves": ["transform"] - }, - "eevee": { - "moves": ["doubleedge", "quickattack", "reflect"], - "essentialMove": "bodyslam", - "exclusiveMoves": ["bide", "mimic", "sandattack", "tailwhip"] - }, - "vaporeon": { - "moves": ["blizzard", "rest"], - "essentialMove": "surf", - "exclusiveMoves": ["bodyslam", "hydropump", "mimic"] - }, - "jolteon": { - "moves": ["bodyslam", "thunderbolt", "thunderwave"], - "exclusiveMoves": ["agility", "agility", "doublekick", "pinmissile", "pinmissile"] - }, - "flareon": { - "moves": ["bodyslam", "fireblast", "hyperbeam", "quickattack"] - }, - "porygon": { - "moves": ["blizzard", "thunderwave"], - "essentialMove": "recover", - "exclusiveMoves": ["doubleedge", "psychic", "thunderbolt", "triattack"] - }, - "omanyte": { - "moves": ["bodyslam", "hydropump", "rest", "surf"], - "essentialMove": "blizzard" - }, - "omastar": { - "moves": ["blizzard", "hydropump", "seismictoss", "surf"], - "exclusiveMoves": ["bodyslam", "rest"] - }, - "kabuto": { - "moves": ["blizzard", "bodyslam", "slash", "surf"] - }, - "kabutops": { - "moves": ["hyperbeam", "surf", "swordsdance"], - "exclusiveMoves": ["bodyslam", "slash"] - }, - "aerodactyl": { - "moves": ["doubleedge", "fireblast", "hyperbeam", "skyattack"] - }, - "snorlax": { - "moves": ["bodyslam", "rest", "selfdestruct", "thunderbolt"], - "essentialMove": "amnesia", - "exclusiveMoves": ["blizzard", "blizzard"], - "comboMoves": ["bodyslam", "earthquake", "hyperbeam", "selfdestruct"] - }, - "articuno": { - "moves": ["agility", "hyperbeam", "icebeam", "mimic", "reflect"], - "essentialMove": "blizzard", - "comboMoves": ["icebeam", "reflect", "rest"] - }, - "zapdos": { - "moves": ["agility", "drillpeck", "thunderbolt", "thunderwave"] - }, - "moltres": { - "moves": ["agility", "fireblast", "hyperbeam"], - "exclusiveMoves": ["doubleedge", "reflect", "skyattack"] - }, - "dratini": { - "moves": ["bodyslam", "hyperbeam", "thunderbolt", "thunderwave"], - "essentialMove": "blizzard" - }, - "dragonair": { - "moves": ["bodyslam", "hyperbeam", "thunderbolt", "thunderwave"], - "essentialMove": "blizzard" - }, - "dragonite": { - "moves": ["bodyslam", "hyperbeam", "thunderbolt", "thunderwave"], - "essentialMove": "blizzard" - }, - "mewtwo": { - "level": 62, - "moves": ["blizzard", "recover", "thunderbolt"], - "essentialMove": "amnesia", - "exclusiveMoves": ["psychic", "psychic"], - "comboMoves": ["barrier", "rest"] - }, - "mew": { - "moves": ["blizzard", "earthquake", "thunderbolt", "thunderwave"], - "essentialMove": "psychic", - "exclusiveMoves": ["explosion", "softboiled", "softboiled"], - "comboMoves": ["earthquake", "hyperbeam", "swordsdance"] - } -} diff --git a/data/mods/gen1/rulesets.ts b/data/mods/gen1/rulesets.ts index 192b1ad48fb3..942fe0f4fe55 100644 --- a/data/mods/gen1/rulesets.ts +++ b/data/mods/gen1/rulesets.ts @@ -1,8 +1,8 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { effectType: 'ValidatorRule', name: 'Standard', - ruleset: ['Obtainable', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], + ruleset: ['Obtainable', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], banlist: ['Dig', 'Fly'], }, '350cupmod': { diff --git a/data/mods/gen1/scripts.ts b/data/mods/gen1/scripts.ts index a5c6a61f95ff..21f1d9d67a81 100644 --- a/data/mods/gen1/scripts.ts +++ b/data/mods/gen1/scripts.ts @@ -17,8 +17,9 @@ export const Scripts: ModdedBattleScriptsData = { gen: 1, init() { for (const i in this.data.Pokedex) { - (this.data.Pokedex[i] as any).gender = 'N'; - (this.data.Pokedex[i] as any).eggGroups = null; + const poke = this.modData('Pokedex', i); + poke.gender = 'N'; + poke.eggGroups = null; } }, // BattlePokemon scripts. @@ -122,9 +123,22 @@ export const Scripts: ModdedBattleScriptsData = { // This function is the main one when running a move. // It deals with the beforeMove event. // It also deals with how PP reduction works on gen 1. - runMove(moveOrMoveName, pokemon, targetLoc, sourceEffect) { + runMove(moveOrMoveName, pokemon, targetLoc, options) { + let sourceEffect = options?.sourceEffect; const target = this.battle.getTarget(pokemon, moveOrMoveName, targetLoc); - const move = this.battle.dex.getActiveMove(moveOrMoveName); + let move = this.battle.dex.getActiveMove(moveOrMoveName); + + // If a faster partial trapping move misses against a user of Hyper Beam during a recharge turn, + // the user of Hyper Beam will automatically use Hyper Beam during that turn. + const autoHyperBeam = ( + move.id === 'recharge' && !pokemon.volatiles['mustrecharge'] && !pokemon.volatiles['partiallytrapped'] + ); + if (autoHyperBeam) { + move = this.battle.dex.getActiveMove('hyperbeam'); + this.battle.hint(`In Gen 1, If a faster partial trapping move misses against a user of Hyper Beam during a recharge turn, ` + + `the user of Hyper Beam will automatically use Hyper Beam during that turn.`, true); + } + if (target?.subFainted) target.subFainted = null; this.battle.setActiveMove(move, pokemon, target); @@ -155,14 +169,17 @@ export const Scripts: ModdedBattleScriptsData = { pokemon.deductPP(pokemon.volatiles['twoturnmove'].originalMove, null, target); } } - if (pokemon.volatiles['partialtrappinglock'] && target !== pokemon.volatiles['partialtrappinglock'].locked) { + if ( + (pokemon.volatiles['partialtrappinglock'] && target !== pokemon.volatiles['partialtrappinglock'].locked) || + autoHyperBeam + ) { const moveSlot = pokemon.moveSlots.find(ms => ms.id === move.id); if (moveSlot && moveSlot.pp < 0) { moveSlot.pp = 63; this.battle.hint("In Gen 1, if a player is forced to use a move with 0 PP, the move will underflow to have 63 PP."); } } - this.useMove(move, pokemon, target, sourceEffect); + this.useMove(move, pokemon, {target, sourceEffect}); // Restore PP if the move is the first turn of a charging move. Save the move from which PP should be deducted if the move succeeds. if (pokemon.volatiles['twoturnmove']) { pokemon.deductPP(move, -1, target); @@ -171,7 +188,9 @@ export const Scripts: ModdedBattleScriptsData = { }, // This function deals with AfterMoveSelf events. // This leads with partial trapping moves shenanigans after the move has been used. - useMove(moveOrMoveName, pokemon, target, sourceEffect) { + useMove(moveOrMoveName, pokemon, options) { + let sourceEffect = options?.sourceEffect; + let target = options?.target; if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; const baseMove = this.battle.dex.moves.get(moveOrMoveName); let move = this.battle.dex.getActiveMove(baseMove); @@ -194,7 +213,7 @@ export const Scripts: ModdedBattleScriptsData = { // The charging turn of a two-turn move does not update pokemon.lastMove if (!TWO_TURN_MOVES.includes(move.id) || pokemon.volatiles['twoturnmove']) pokemon.lastMove = move; - const moveResult = this.useMoveInner(moveOrMoveName, pokemon, target, sourceEffect); + const moveResult = this.useMoveInner(moveOrMoveName, pokemon, {target, sourceEffect}); if (move.id !== 'metronome') { if (move.id !== 'mirrormove' || @@ -240,7 +259,9 @@ export const Scripts: ModdedBattleScriptsData = { }, // This is the function that actually uses the move, running ModifyMove events. // It uses the move and then deals with the effects after the move. - useMoveInner(moveOrMoveName, pokemon, target, sourceEffect) { + useMoveInner(moveOrMoveName, pokemon, options) { + let sourceEffect = options?.sourceEffect; + let target = options?.target; if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; const baseMove = this.battle.dex.moves.get(moveOrMoveName); let move = this.battle.dex.getActiveMove(baseMove); @@ -903,7 +924,8 @@ export const Scripts: ModdedBattleScriptsData = { // Type effectiveness. // In Gen 1, type effectiveness is applied against each of the target's types. for (const targetType of target.types) { - const typeMod = this.battle.dex.getEffectiveness(type, targetType); + let typeMod = this.battle.dex.getEffectiveness(type, targetType); + typeMod = this.battle.runEvent('Effectiveness', this.battle, targetType, move, typeMod); if (typeMod > 0) { // Super effective against targetType damage *= 20; diff --git a/data/mods/gen1/typechart.ts b/data/mods/gen1/typechart.ts index 85d83e1804c8..d90271e37f8e 100644 --- a/data/mods/gen1/typechart.ts +++ b/data/mods/gen1/typechart.ts @@ -6,7 +6,7 @@ * Psychic was immune to ghost */ -export const TypeChart: {[k: string]: ModdedTypeData | null} = { +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { bug: { damageTaken: { Bug: 0, diff --git a/data/mods/gen1jpn/conditions.ts b/data/mods/gen1jpn/conditions.ts index 6538f881525d..09499f5a443b 100644 --- a/data/mods/gen1jpn/conditions.ts +++ b/data/mods/gen1jpn/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { invulnerability: { // Dig/Fly name: 'invulnerability', diff --git a/data/mods/gen1jpn/moves.ts b/data/mods/gen1jpn/moves.ts index b4c1163815e6..c865231b9d45 100644 --- a/data/mods/gen1jpn/moves.ts +++ b/data/mods/gen1jpn/moves.ts @@ -2,7 +2,7 @@ * The japanese version of Blizzard in Gen 1 had a 30% chance to freeze */ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { blizzard: { inherit: true, secondary: { diff --git a/data/mods/gen1jpn/rulesets.ts b/data/mods/gen1jpn/rulesets.ts index e2c4658ec43e..cd12e27ecfdc 100644 --- a/data/mods/gen1jpn/rulesets.ts +++ b/data/mods/gen1jpn/rulesets.ts @@ -1,13 +1,13 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { effectType: 'ValidatorRule', name: 'Standard', - ruleset: ['Obtainable', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], + ruleset: ['Obtainable', 'Desync Clause Mod', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], banlist: ['Dig', 'Fly'], }, - nintendocup1997movelegality: { + nc1997movelegality: { effectType: 'ValidatorRule', - name: 'Nintendo Cup 1997 Move Legality', + name: 'NC 1997 Move Legality', desc: "Bans move combinations on Pok\u00e9mon that would only be obtainable in Pok\u00e9mon Yellow.", banlist: [ // https://www.smogon.com/forums/threads/rby-and-gsc-illegal-movesets.78638/ diff --git a/data/mods/gen1stadium/conditions.ts b/data/mods/gen1stadium/conditions.ts index cf34f690d577..b7c6a0fe296b 100644 --- a/data/mods/gen1stadium/conditions.ts +++ b/data/mods/gen1stadium/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { brn: { name: 'brn', effectType: 'Status', diff --git a/data/mods/gen1stadium/formats-data.ts b/data/mods/gen1stadium/formats-data.ts index bfea94eb4f21..b80dfef904a2 100644 --- a/data/mods/gen1stadium/formats-data.ts +++ b/data/mods/gen1stadium/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, diff --git a/data/mods/gen1stadium/moves.ts b/data/mods/gen1stadium/moves.ts index bdd0ebcead0a..a7bb04d3170b 100644 --- a/data/mods/gen1stadium/moves.ts +++ b/data/mods/gen1stadium/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { bide: { inherit: true, priority: 0, diff --git a/data/mods/gen1stadium/rulesets.ts b/data/mods/gen1stadium/rulesets.ts index b105e7f5cda9..716eb00d5abc 100644 --- a/data/mods/gen1stadium/rulesets.ts +++ b/data/mods/gen1stadium/rulesets.ts @@ -1,7 +1,7 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { effectType: 'ValidatorRule', name: 'Standard', - ruleset: ['Obtainable', 'Stadium Sleep Clause', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Exact HP Mod', 'Cancel Mod'], + ruleset: ['Obtainable', 'Stadium Sleep Clause', 'Freeze Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Exact HP Mod', 'Cancel Mod'], }, }; diff --git a/data/mods/gen1stadium/scripts.ts b/data/mods/gen1stadium/scripts.ts index 11dc3bfbc6f4..90a0b055ef18 100644 --- a/data/mods/gen1stadium/scripts.ts +++ b/data/mods/gen1stadium/scripts.ts @@ -36,6 +36,9 @@ export const Scripts: ModdedBattleScriptsData = { this.modifyStat!(statName, [100, 66, 50, 40, 33, 28, 25][-this.boosts[statName]] / 100); } } + if (this.modifiedStats![statName] > 999) { + this.modifiedStats![statName] = 999; + } } }, // Stadium's fixed boosting function. @@ -69,7 +72,8 @@ export const Scripts: ModdedBattleScriptsData = { }, actions: { inherit: true, - runMove(moveOrMoveName, pokemon, targetLoc, sourceEffect) { + runMove(moveOrMoveName, pokemon, targetLoc, options) { + let sourceEffect = options?.sourceEffect; const move = this.dex.getActiveMove(moveOrMoveName); const target = this.battle.getTarget(pokemon, move, targetLoc); if (target?.subFainted) target.subFainted = null; @@ -99,12 +103,14 @@ export const Scripts: ModdedBattleScriptsData = { } else { sourceEffect = move; } - this.battle.actions.useMove(move, pokemon, target, sourceEffect); + this.battle.actions.useMove(move, pokemon, {target, sourceEffect}); }, // This function deals with AfterMoveSelf events. // This leads with partial trapping moves shenanigans after the move has been used. - useMove(moveOrMoveName, pokemon, target, sourceEffect) { - const moveResult = this.useMoveInner(moveOrMoveName, pokemon, target, sourceEffect); + useMove(moveOrMoveName, pokemon, options) { + let sourceEffect = options?.sourceEffect; + let target = options?.target; + const moveResult = this.useMoveInner(moveOrMoveName, pokemon, {target, sourceEffect}); if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; const baseMove = this.battle.dex.moves.get(moveOrMoveName); @@ -161,7 +167,9 @@ export const Scripts: ModdedBattleScriptsData = { }, // This is the function that actually uses the move, running ModifyMove events. // It uses the move and then deals with the effects after the move. - useMoveInner(moveOrMoveName, pokemon, target, sourceEffect) { + useMoveInner(moveOrMoveName, pokemon, options) { + let sourceEffect = options?.sourceEffect; + let target = options?.target; if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; const baseMove = this.battle.dex.moves.get(moveOrMoveName); let move = this.battle.dex.getActiveMove(baseMove); @@ -688,7 +696,7 @@ export const Scripts: ModdedBattleScriptsData = { } // When either attack or defense are higher than 256, they are both divided by 4 and moded by 256. - // This is what cuases the roll over bugs. + // This is what causes the rollover bugs. if (attack >= 256 || defense >= 256) { attack = this.battle.clampIntRange(Math.floor(attack / 4) % 256, 1); // Defense isn't checked on the cartridge, but we don't want those / 0 bugs on the sim. diff --git a/data/mods/gen2/conditions.ts b/data/mods/gen2/conditions.ts index 16dbd0136079..08f6a70a3eae 100644 --- a/data/mods/gen2/conditions.ts +++ b/data/mods/gen2/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { brn: { name: 'brn', effectType: 'Status', diff --git a/data/mods/gen2/formats-data.ts b/data/mods/gen2/formats-data.ts index 772d3c350157..4e29b25453f5 100644 --- a/data/mods/gen2/formats-data.ts +++ b/data/mods/gen2/formats-data.ts @@ -1,9 +1,9 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, ivysaur: { - tier: "NFE", + tier: "ZU", }, venusaur: { tier: "UUBL", @@ -12,7 +12,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, charmeleon: { - tier: "NFE", + tier: "ZU", }, charizard: { tier: "UUBL", @@ -21,7 +21,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, wartortle: { - tier: "NFE", + tier: "ZU", }, blastoise: { tier: "UU", @@ -33,7 +33,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "NU", + tier: "ZU", }, weedle: { tier: "LC", @@ -42,7 +42,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beedrill: { - tier: "NU", + tier: "ZUBL", }, pidgey: { tier: "LC", @@ -90,7 +90,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, nidorina: { - tier: "NFE", + tier: "ZU", }, nidoqueen: { tier: "UU", @@ -108,7 +108,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, clefairy: { - tier: "NFE", + tier: "PU", }, clefable: { tier: "UUBL", @@ -132,7 +132,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, golbat: { - tier: "NFE", + tier: "PU", }, crobat: { tier: "UU", @@ -153,22 +153,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, parasect: { - tier: "NU", + tier: "ZU", }, venonat: { tier: "LC", }, venomoth: { - tier: "NU", + tier: "PU", }, diglett: { - tier: "LC", + tier: "ZU", }, dugtrio: { tier: "NU", }, meowth: { - tier: "LC", + tier: "ZU", }, persian: { tier: "NU", @@ -192,10 +192,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, poliwag: { - tier: "LC", + tier: "ZU", }, poliwhirl: { - tier: "NU", + tier: "ZUBL", }, poliwrath: { tier: "NUBL", @@ -204,19 +204,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, abra: { - tier: "LC", + tier: "PU", }, kadabra: { tier: "UU", }, alakazam: { - tier: "UUBL", + tier: "OU", }, machop: { tier: "LC", }, machoke: { - tier: "NU", + tier: "PU", }, machamp: { tier: "OU", @@ -225,19 +225,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, weepinbell: { - tier: "NFE", + tier: "ZU", }, victreebel: { tier: "UU", }, tentacool: { - tier: "NU", + tier: "ZU", }, tentacruel: { tier: "UUBL", }, geodude: { - tier: "LC", + tier: "ZU", }, graveler: { tier: "NU", @@ -246,13 +246,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, ponyta: { - tier: "LC", + tier: "PU", }, rapidash: { tier: "NU", }, slowpoke: { - tier: "NU", + tier: "ZU", }, slowbro: { tier: "UU", @@ -270,7 +270,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, doduo: { - tier: "LC", + tier: "ZU", }, dodrio: { tier: "UU", @@ -282,10 +282,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, grimer: { - tier: "LC", + tier: "ZU", }, muk: { - tier: "UUBL", + tier: "UU", }, shellder: { tier: "LC", @@ -294,7 +294,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, gastly: { - tier: "NU", + tier: "PU", }, haunter: { tier: "UU", @@ -303,13 +303,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, onix: { - tier: "LC", + tier: "ZU", }, steelix: { tier: "OU", }, drowzee: { - tier: "LC", + tier: "PU", }, hypno: { tier: "UU", @@ -321,7 +321,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, voltorb: { - tier: "NU", + tier: "ZU", }, electrode: { tier: "UU", @@ -333,7 +333,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, cubone: { - tier: "NU", + tier: "PU", }, marowak: { tier: "OU", @@ -345,22 +345,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, hitmonchan: { - tier: "NU", + tier: "PUBL", }, hitmontop: { - tier: "NU", + tier: "PU", }, lickitung: { tier: "NU", }, koffing: { - tier: "LC", + tier: "ZU", }, weezing: { tier: "NU", }, rhyhorn: { - tier: "LC", + tier: "PU", }, rhydon: { tier: "OU", @@ -372,7 +372,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, tangela: { - tier: "NU", + tier: "PU", }, kangaskhan: { tier: "UUBL", @@ -381,7 +381,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, seadra: { - tier: "NU", + tier: "PU", }, kingdra: { tier: "UUBL", @@ -390,10 +390,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, seaking: { - tier: "NU", + tier: "PU", }, staryu: { - tier: "LC", + tier: "ZUBL", }, starmie: { tier: "OU", @@ -414,13 +414,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, elekid: { - tier: "NU", + tier: "PU", }, electabuzz: { tier: "UU", }, magby: { - tier: "LC", + tier: "ZU", }, magmar: { tier: "NU", @@ -441,16 +441,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UUBL", }, ditto: { - tier: "NU", + tier: "ZU", }, eevee: { - tier: "LC", + tier: "ZUBL", }, vaporeon: { tier: "OU", }, jolteon: { - tier: "UUBL", + tier: "OU", }, flareon: { tier: "NU", @@ -468,7 +468,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UUBL", }, omanyte: { - tier: "LC", + tier: "ZU", }, omastar: { tier: "UU", @@ -480,7 +480,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, aerodactyl: { - tier: "UUBL", + tier: "UU", }, snorlax: { tier: "OU", @@ -513,7 +513,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, bayleef: { - tier: "NU", + tier: "ZU", }, meganium: { tier: "UUBL", @@ -522,7 +522,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, quilava: { - tier: "NFE", + tier: "ZU", }, typhlosion: { tier: "UUBL", @@ -531,7 +531,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, croconaw: { - tier: "NFE", + tier: "ZU", }, feraligatr: { tier: "NUBL", @@ -540,13 +540,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, furret: { - tier: "NU", + tier: "PUBL", }, hoothoot: { tier: "LC", }, noctowl: { - tier: "NU", + tier: "PU", }, ledyba: { tier: "LC", @@ -558,7 +558,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, ariados: { - tier: "NU", + tier: "PU", }, chinchou: { tier: "NU", @@ -570,7 +570,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, togetic: { - tier: "NU", + tier: "ZU", }, natu: { tier: "LC", @@ -582,7 +582,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, flaaffy: { - tier: "NU", + tier: "PU", }, ampharos: { tier: "UU", @@ -606,16 +606,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, aipom: { - tier: "NU", + tier: "ZU", }, sunkern: { tier: "LC", }, sunflora: { - tier: "NU", + tier: "PU", }, yanma: { - tier: "NU", + tier: "ZU", }, wooper: { tier: "LC", @@ -624,16 +624,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, murkrow: { - tier: "NU", + tier: "PU", }, misdreavus: { tier: "OU", }, unown: { - tier: "NU", + tier: "ZU", }, wobbuffet: { - tier: "NU", + tier: "ZU", }, girafarig: { tier: "UU", @@ -666,7 +666,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, sneasel: { - tier: "NU", + tier: "PU", }, teddiursa: { tier: "LC", @@ -678,7 +678,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, magcargo: { - tier: "NU", + tier: "PU", }, swinub: { tier: "LC", @@ -687,7 +687,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, corsola: { - tier: "NU", + tier: "PU", }, remoraid: { tier: "LC", @@ -696,10 +696,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, delibird: { - tier: "NU", + tier: "PU", }, mantine: { - tier: "NU", + tier: "ZU", }, skarmory: { tier: "OU", diff --git a/data/mods/gen2/items.ts b/data/mods/gen2/items.ts index fe8a5c944ce5..d264e3e4fed6 100644 --- a/data/mods/gen2/items.ts +++ b/data/mods/gen2/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { berryjuice: { inherit: true, isNonstandard: null, diff --git a/data/mods/gen2/learnsets.ts b/data/mods/gen2/learnsets.ts index 02475fa2b99b..335338db4e5c 100644 --- a/data/mods/gen2/learnsets.ts +++ b/data/mods/gen2/learnsets.ts @@ -1,4 +1,4 @@ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { missingno: { learnset: { blizzard: ["1M"], diff --git a/data/mods/gen2/moves.ts b/data/mods/gen2/moves.ts index aafbf472bd1d..634f0e89341f 100644 --- a/data/mods/gen2/moves.ts +++ b/data/mods/gen2/moves.ts @@ -2,7 +2,7 @@ * Gen 2 moves */ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { aeroblast: { inherit: true, critRatio: 3, @@ -231,7 +231,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, explosion: { inherit: true, - noSketch: true, + flags: {protect: 1, mirror: 1, metronome: 1, noparentalbond: 1, nosketch: 1}, }, flail: { inherit: true, @@ -398,21 +398,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, meanlook: { inherit: true, - flags: {reflectable: 1, mirror: 1}, + flags: {reflectable: 1, mirror: 1, metronome: 1}, }, metronome: { inherit: true, - flags: {failencore: 1}, - noMetronome: [ - "Counter", "Destiny Bond", "Detect", "Endure", "Metronome", "Mimic", "Mirror Coat", "Protect", "Sketch", "Sleep Talk", "Struggle", "Thief", - ], - noSketch: true, + flags: {failencore: 1, nosketch: 1}, }, mimic: { inherit: true, accuracy: 100, - noSketch: true, - flags: {protect: 1, bypasssub: 1, allyanim: 1, failencore: 1, noassist: 1}, + flags: {protect: 1, bypasssub: 1, allyanim: 1, failencore: 1, noassist: 1, nosketch: 1}, }, mindreader: { inherit: true, @@ -439,7 +434,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mirrormove: { inherit: true, - flags: {failencore: 1}, + flags: {metronome: 1, failencore: 1, nosketch: 1}, onHit(pokemon) { const noMirror = ['metronome', 'mimic', 'mirrormove', 'sketch', 'sleeptalk', 'transform']; const target = pokemon.side.foe.active[0]; @@ -452,7 +447,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { } this.actions.useMove(lastMove, pokemon); }, - noSketch: true, }, mist: { num: 54, @@ -462,7 +456,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Mist", pp: 30, priority: 0, - flags: {}, + flags: {metronome: 1}, volatileStatus: 'mist', condition: { onStart(pokemon) { @@ -730,11 +724,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, selfdestruct: { inherit: true, - noSketch: true, + flags: {protect: 1, mirror: 1, metronome: 1, noparentalbond: 1, nosketch: 1}, }, sketch: { inherit: true, - flags: {bypasssub: 1, failencore: 1, noassist: 1}, + flags: {bypasssub: 1, failencore: 1, noassist: 1, nosketch: 1}, onHit() { // Sketch always fails in Link Battles this.add('-nothing'); @@ -760,7 +754,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, sleeptalk: { inherit: true, - flags: {failencore: 1, nosleeptalk: 1}, + flags: {failencore: 1, nosleeptalk: 1, nosketch: 1}, onHit(pokemon) { const moves = []; for (const moveSlot of pokemon.moveSlots) { @@ -775,7 +769,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { if (!randomMove) return false; this.actions.useMove(randomMove, pokemon); }, - noSketch: true, }, solarbeam: { inherit: true, @@ -787,7 +780,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, spiderweb: { inherit: true, - flags: {reflectable: 1, mirror: 1}, + flags: {reflectable: 1, mirror: 1, metronome: 1}, }, spikes: { inherit: true, @@ -937,7 +930,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, transform: { inherit: true, - noSketch: true, + flags: {bypasssub: 1, metronome: 1, failencore: 1, nosketch: 1}, }, triattack: { inherit: true, diff --git a/data/mods/gen2/pokedex.ts b/data/mods/gen2/pokedex.ts index af117f0082b1..3fc7613f8dde 100644 --- a/data/mods/gen2/pokedex.ts +++ b/data/mods/gen2/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { unown: { inherit: true, cosmeticFormes: ["Unown-B", "Unown-C", "Unown-D", "Unown-E", "Unown-F", "Unown-G", "Unown-H", "Unown-I", "Unown-J", "Unown-K", "Unown-L", "Unown-M", "Unown-N", "Unown-O", "Unown-P", "Unown-Q", "Unown-R", "Unown-S", "Unown-T", "Unown-U", "Unown-V", "Unown-W", "Unown-X", "Unown-Y", "Unown-Z"], diff --git a/data/mods/gen2/random-data.json b/data/mods/gen2/random-data.json deleted file mode 100644 index cfaa45a9b6b8..000000000000 --- a/data/mods/gen2/random-data.json +++ /dev/null @@ -1,425 +0,0 @@ -{ - "venusaur": { - "moves": ["growth", "hiddenpowerfire", "hiddenpowerice", "leechseed", "razorleaf", "sleeppowder", "synthesis"] - }, - "charizard": { - "moves": ["bellydrum", "earthquake", "fireblast", "hyperbeam", "rockslide"] - }, - "blastoise": { - "moves": ["icebeam", "rapidspin", "rest", "sleeptalk", "surf", "toxic", "zapcannon"] - }, - "butterfree": { - "moves": ["nightmare", "psychic", "sleeppowder", "stunspore", "substitute"] - }, - "beedrill": { - "moves": ["agility", "hiddenpowerground", "sludgebomb", "substitute", "swordsdance"] - }, - "pidgeot": { - "moves": ["curse", "hiddenpowerground", "reflect", "rest", "return", "sleeptalk", "toxic", "whirlwind"] - }, - "raticate": { - "moves": ["irontail", "rest", "return", "sleeptalk", "superfang"] - }, - "fearow": { - "moves": ["doubleedge", "drillpeck", "hiddenpowerground", "rest", "sleeptalk", "substitute"] - }, - "arbok": { - "moves": ["curse", "earthquake", "glare", "haze", "rest", "sludgebomb"] - }, - "pikachu": { - "moves": ["encore", "hiddenpowerice", "substitute", "surf", "thunderbolt"] - }, - "raichu": { - "moves": ["encore", "hiddenpowerice", "rest", "sleeptalk", "surf", "thunder", "thunderbolt"] - }, - "sandslash": { - "moves": ["earthquake", "hiddenpowerbug", "rockslide", "substitute", "swordsdance"] - }, - "nidoqueen": { - "moves": ["earthquake", "fireblast", "icebeam", "lovelykiss", "moonlight", "thunder"] - }, - "nidoking": { - "moves": ["earthquake", "fireblast", "icebeam", "lovelykiss", "morningsun", "thunder"] - }, - "clefable": { - "moves": ["bellydrum", "encore", "fireblast", "moonlight", "return", "shadowball"] - }, - "ninetales": { - "moves": ["confuseray", "fireblast", "hiddenpowergrass", "hypnosis", "sunnyday"] - }, - "wigglytuff": { - "moves": ["bodyslam", "charm", "curse", "doubleedge", "fireblast", "rest", "sleeptalk", "thunderwave"] - }, - "vileplume": { - "moves": ["hiddenpowergrass", "moonlight", "sleeppowder", "sludgebomb", "stunspore", "swordsdance"] - }, - "parasect": { - "moves": ["bodyslam", "gigadrain", "hiddenpowerbug", "spore", "swordsdance", "synthesis"] - }, - "venomoth": { - "moves": ["disable", "gigadrain", "psychic", "sleeppowder", "sludgebomb", "stunspore"] - }, - "dugtrio": { - "moves": ["earthquake", "rockslide", "sludgebomb", "substitute", "swagger"] - }, - "persian": { - "moves": ["bodyslam", "hypnosis", "irontail", "rest", "return", "thunder"] - }, - "golduck": { - "moves": ["crosschop", "hiddenpowerelectric", "hydropump", "hypnosis", "icebeam", "psychic", "surf"] - }, - "primeape": { - "moves": ["crosschop", "doubleedge", "hiddenpowerghost", "meditate", "rest", "rockslide", "substitute"] - }, - "arcanine": { - "moves": ["bodyslam", "crunch", "extremespeed", "fireblast", "hiddenpowergrass", "rest", "sleeptalk"] - }, - "poliwrath": { - "moves": ["bellydrum", "bodyslam", "earthquake", "lovelykiss"] - }, - "alakazam": { - "moves": ["encore", "firepunch", "icepunch", "psychic", "recover", "thunderpunch", "thunderwave"] - }, - "machamp": { - "moves": ["bodyslam", "crosschop", "curse", "earthquake", "hiddenpowerghost", "rest", "rockslide", "sleeptalk"] - }, - "victreebel": { - "moves": ["hiddenpowerground", "razorleaf", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"] - }, - "tentacruel": { - "moves": ["hydropump", "sludgebomb", "substitute", "swordsdance"] - }, - "golem": { - "moves": ["curse", "earthquake", "explosion", "fireblast", "rapidspin", "rockslide"] - }, - "rapidash": { - "moves": ["bodyslam", "fireblast", "hiddenpowergrass", "hypnosis", "sunnyday"] - }, - "slowbro": { - "moves": ["fireblast", "psychic", "rest", "sleeptalk", "surf", "thunderwave", "toxic"] - }, - "magneton": { - "moves": ["hiddenpowerice", "substitute", "thunderbolt", "thunderwave"] - }, - "farfetchd": { - "moves": ["agility", "batonpass", "return", "swordsdance"] - }, - "dodrio": { - "moves": ["doubleedge", "drillpeck", "hiddenpowerground", "rest", "substitute"] - }, - "dewgong": { - "moves": ["bodyslam", "encore", "icebeam", "rest", "sleeptalk", "surf", "toxic"] - }, - "muk": { - "moves": ["curse", "explosion", "fireblast", "hiddenpowerground", "sludgebomb"] - }, - "cloyster": { - "moves": ["explosion", "icebeam", "spikes", "surf", "toxic"] - }, - "gengar": { - "moves": ["destinybond", "explosion", "firepunch", "hypnosis", "icepunch", "thunderbolt"] - }, - "hypno": { - "moves": ["hypnosis", "lightscreen", "psychic", "reflect", "seismictoss", "thunderwave"] - }, - "kingler": { - "moves": ["hiddenpowerground", "rest", "return", "surf", "swordsdance"] - }, - "electrode": { - "moves": ["explosion", "hiddenpowerice", "lightscreen", "reflect", "thunderbolt", "thunderwave"] - }, - "exeggutor": { - "moves": ["explosion", "gigadrain", "hiddenpowerfire", "psychic", "sleeppowder", "stunspore", "synthesis"] - }, - "marowak": { - "moves": ["earthquake", "hiddenpowerbug", "rockslide", "swordsdance"] - }, - "hitmonlee": { - "moves": ["bodyslam", "hiddenpowerghost", "highjumpkick", "meditate", "rest"] - }, - "hitmonchan": { - "moves": ["bodyslam", "counter", "curse", "hiddenpowerghost", "highjumpkick"] - }, - "lickitung": { - "moves": ["bodyslam", "earthquake", "fireblast", "rest", "sleeptalk", "swordsdance"] - }, - "weezing": { - "moves": ["explosion", "fireblast", "hiddenpowergrass", "painsplit", "sludgebomb", "thunder"] - }, - "rhydon": { - "moves": ["curse", "earthquake", "fireblast", "rest", "roar", "rockslide", "sleeptalk", "zapcannon"] - }, - "tangela": { - "moves": ["gigadrain", "growth", "hiddenpowerice", "sleeppowder", "synthesis"] - }, - "kangaskhan": { - "moves": ["bodyslam", "curse", "earthquake", "rest", "return", "roar", "sleeptalk"] - }, - "seaking": { - "moves": ["agility", "return", "substitute", "surf", "swordsdance"] - }, - "starmie": { - "moves": ["psychic", "rapidspin", "recover", "surf", "thunderbolt", "thunderwave"] - }, - "mrmime": { - "moves": ["encore", "firepunch", "hypnosis", "icepunch", "psychic", "thief", "thunderbolt", "thunderwave"] - }, - "scyther": { - "moves": ["batonpass", "hiddenpowerbug", "hiddenpowerground", "swordsdance", "wingattack"] - }, - "jynx": { - "moves": ["icebeam", "lovelykiss", "nightmare", "psychic", "substitute", "thief"] - }, - "electabuzz": { - "moves": ["crosschop", "icepunch", "psychic", "pursuit", "thunder", "thunderbolt"] - }, - "magmar": { - "moves": ["crosschop", "fireblast", "hiddenpowerground", "sunnyday", "thief", "thunderpunch"] - }, - "pinsir": { - "moves": ["bodyslam", "doubleedge", "hiddenpowerbug", "rest", "submission", "swordsdance"] - }, - "tauros": { - "moves": ["curse", "doubleedge", "earthquake", "rest", "return", "sleeptalk"] - }, - "gyarados": { - "moves": ["bodyslam", "doubleedge", "hiddenpowerflying", "hydropump", "rest", "sleeptalk", "thunder"] - }, - "lapras": { - "moves": ["icebeam", "rest", "sing", "sleeptalk", "surf", "thunder", "thunderbolt", "toxic"] - }, - "ditto": { - "level": 83, - "moves": ["transform"] - }, - "vaporeon": { - "moves": ["growth", "hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] - }, - "jolteon": { - "moves": ["batonpass", "growth", "hiddenpowerice", "hiddenpowerwater", "substitute", "thunderbolt", "thunderwave"] - }, - "flareon": { - "moves": ["batonpass", "doubleedge", "fireblast", "growth", "hiddenpowergrass", "zapcannon"] - }, - "omastar": { - "moves": ["hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] - }, - "kabutops": { - "moves": ["ancientpower", "hiddenpowerground", "return", "submission", "surf", "swordsdance"] - }, - "aerodactyl": { - "moves": ["ancientpower", "curse", "earthquake", "hiddenpowerflying", "reflect", "whirlwind"] - }, - "snorlax": { - "moves": ["curse", "doubleedge", "earthquake", "fireblast", "lovelykiss", "rest", "return", "sleeptalk"] - }, - "articuno": { - "moves": ["hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "toxic"] - }, - "zapdos": { - "moves": ["hiddenpowerice", "rest", "sleeptalk", "thunder"] - }, - "moltres": { - "moves": ["fireblast", "hiddenpowergrass", "rest", "sleeptalk", "sunnyday"] - }, - "dragonite": { - "moves": ["haze", "hiddenpowerflying", "icebeam", "lightscreen", "reflect", "rest", "thunder"] - }, - "mewtwo": { - "moves": ["fireblast", "icebeam", "psychic", "recover", "thunderbolt", "thunderwave"] - }, - "mew": { - "moves": ["earthquake", "explosion", "psychic", "shadowball", "softboiled", "submission", "swordsdance"] - }, - "meganium": { - "moves": ["hiddenpowerfire", "leechseed", "lightscreen", "razorleaf", "reflect", "synthesis"] - }, - "typhlosion": { - "moves": ["earthquake", "fireblast", "rest", "sleeptalk", "thunderpunch"] - }, - "feraligatr": { - "moves": ["crunch", "earthquake", "icebeam", "rest", "rockslide", "sleeptalk", "surf"] - }, - "furret": { - "moves": ["curse", "doubleedge", "rest", "shadowball", "sleeptalk", "surf"] - }, - "noctowl": { - "moves": ["hypnosis", "nightshade", "reflect", "thief", "toxic", "whirlwind"] - }, - "ledian": { - "moves": ["agility", "barrier", "batonpass", "lightscreen"] - }, - "ariados": { - "moves": ["batonpass", "curse", "sludgebomb", "spiderweb"] - }, - "crobat": { - "moves": ["gigadrain", "haze", "hiddenpowerground", "rest", "whirlwind", "wingattack"] - }, - "lanturn": { - "moves": ["icebeam", "raindance", "rest", "sleeptalk", "surf", "thunder"] - }, - "togetic": { - "moves": ["fireblast", "solarbeam", "sunnyday", "zapcannon"] - }, - "xatu": { - "moves": ["drillpeck", "haze", "hiddenpowergrass", "hiddenpowerwater", "psychic", "rest", "sleeptalk", "thief"] - }, - "ampharos": { - "moves": ["firepunch", "hiddenpowerice", "lightscreen", "reflect", "rest", "sleeptalk", "thunderbolt", "thunderwave"] - }, - "bellossom": { - "moves": ["doubleedge", "hiddenpowerfire", "leechseed", "moonlight", "razorleaf", "sleeppowder", "stunspore"] - }, - "azumarill": { - "moves": ["perishsong", "rest", "surf", "whirlpool"] - }, - "sudowoodo": { - "moves": ["curse", "earthquake", "rest", "rockslide", "selfdestruct", "sleeptalk"] - }, - "politoed": { - "moves": ["growth", "hiddenpowerelectric", "icebeam", "lovelykiss", "rest", "sleeptalk", "surf"] - }, - "jumpluff": { - "moves": ["gigadrain", "hiddenpowerice", "hiddenpowerwater", "leechseed", "sleeppowder", "stunspore"] - }, - "aipom": { - "moves": ["agility", "batonpass", "curse", "return", "shadowball"] - }, - "sunflora": { - "moves": ["growth", "hiddenpowerfire", "hiddenpowerwater", "razorleaf", "synthesis"] - }, - "yanma": { - "moves": ["gigadrain", "hiddenpowerbug", "hiddenpowerflying", "return", "screech", "thief"] - }, - "quagsire": { - "moves": ["bellydrum", "bodyslam", "earthquake", "rest", "surf"] - }, - "espeon": { - "moves": ["batonpass", "bite", "growth", "hiddenpowerfire", "morningsun", "psychic", "substitute"] - }, - "umbreon": { - "moves": ["batonpass", "growth", "hiddenpowerdark", "meanlook", "moonlight"] - }, - "murkrow": { - "moves": ["drillpeck", "haze", "hiddenpowerdark", "hiddenpowerfire", "pursuit", "thief", "toxic"] - }, - "slowking": { - "moves": ["fireblast", "psychic", "rest", "sleeptalk", "surf", "thunderwave", "toxic"] - }, - "misdreavus": { - "moves": ["meanlook", "painsplit", "perishsong", "psychic", "shadowball", "thief", "thunderbolt"] - }, - "unown": { - "level": 87, - "moves": ["hiddenpowerpsychic"] - }, - "wobbuffet": { - "level": 83, - "moves": ["counter", "mimic", "mirrorcoat", "safeguard"] - }, - "girafarig": { - "moves": ["crunch", "curse", "earthquake", "psychic", "rest", "return", "thunderbolt"] - }, - "forretress": { - "moves": ["doubleedge", "explosion", "hiddenpowerbug", "rapidspin", "reflect", "spikes", "toxic"] - }, - "dunsparce": { - "moves": ["curse", "flamethrower", "rest", "return", "sleeptalk", "thunder", "thunderbolt"] - }, - "gligar": { - "moves": ["counter", "earthquake", "hiddenpowerflying", "screech", "thief"] - }, - "steelix": { - "moves": ["curse", "earthquake", "explosion", "irontail", "rest", "roar", "sleeptalk", "toxic"] - }, - "granbull": { - "moves": ["curse", "healbell", "hiddenpowerground", "lovelykiss", "rest", "return", "sleeptalk"] - }, - "qwilfish": { - "moves": ["curse", "haze", "hydropump", "sludgebomb", "spikes"] - }, - "scizor": { - "moves": ["agility", "batonpass", "hiddenpowerbug", "return", "swordsdance"] - }, - "shuckle": { - "moves": ["defensecurl", "rest", "rollout", "toxic"] - }, - "heracross": { - "moves": ["curse", "earthquake", "megahorn", "rest", "seismictoss", "sleeptalk"] - }, - "sneasel": { - "moves": ["icebeam", "moonlight", "return", "screech", "shadowball", "thief"] - }, - "ursaring": { - "moves": ["curse", "earthquake", "rest", "return", "roar", "sleeptalk"] - }, - "magcargo": { - "moves": ["curse", "earthquake", "fireblast", "rest", "rockslide", "sleeptalk"] - }, - "piloswine": { - "moves": ["ancientpower", "bodyslam", "curse", "earthquake", "icebeam", "rest", "sleeptalk"] - }, - "corsola": { - "moves": ["curse", "recover", "rockslide", "surf", "toxic"] - }, - "octillery": { - "moves": ["flamethrower", "hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] - }, - "delibird": { - "moves": ["hiddenpowerflying", "icebeam", "rapidspin", "spikes", "thief"] - }, - "mantine": { - "moves": ["haze", "hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf", "toxic"] - }, - "skarmory": { - "moves": ["curse", "drillpeck", "rest", "sleeptalk", "toxic"] - }, - "houndoom": { - "moves": ["crunch", "fireblast", "pursuit", "solarbeam", "sunnyday"] - }, - "kingdra": { - "moves": ["dragonbreath", "hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] - }, - "donphan": { - "moves": ["ancientpower", "curse", "earthquake", "hiddenpowerbug", "rapidspin", "rest", "roar", "sleeptalk"] - }, - "porygon2": { - "moves": ["curse", "doubleedge", "icebeam", "recover", "return", "thunderbolt", "thunderwave"] - }, - "stantler": { - "moves": ["confuseray", "curse", "earthquake", "rest", "return", "sleeptalk"] - }, - "smeargle": { - "moves": ["agility", "batonpass", "spikes", "spore"] - }, - "hitmontop": { - "moves": ["curse", "hiddenpowerghost", "highjumpkick", "rest", "sleeptalk"] - }, - "miltank": { - "moves": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink"] - }, - "blissey": { - "moves": ["flamethrower", "healbell", "icebeam", "present", "sing", "softboiled", "toxic"] - }, - "raikou": { - "moves": ["crunch", "hiddenpowerice", "hiddenpowerwater", "reflect", "rest", "roar", "sleeptalk", "thunder", "thunderbolt"] - }, - "entei": { - "moves": ["fireblast", "hiddenpowerrock", "return", "solarbeam", "sunnyday"] - }, - "suicune": { - "moves": ["hiddenpowerelectric", "icebeam", "rest", "roar", "sleeptalk", "surf", "toxic"] - }, - "tyranitar": { - "moves": ["crunch", "curse", "earthquake", "fireblast", "pursuit", "rest", "roar", "rockslide", "surf"] - }, - "lugia": { - "moves": ["aeroblast", "curse", "earthquake", "icebeam", "recover", "whirlwind"] - }, - "hooh": { - "moves": ["curse", "earthquake", "hiddenpowerflying", "recover", "sacredfire", "thunder", "thunderbolt"] - }, - "celebi": { - "moves": ["hiddenpowergrass", "healbell", "leechseed", "psychic", "recover", "toxic"] - } -} diff --git a/data/mods/gen2/random-teams.ts b/data/mods/gen2/random-teams.ts deleted file mode 100644 index 4892ea668837..000000000000 --- a/data/mods/gen2/random-teams.ts +++ /dev/null @@ -1,313 +0,0 @@ -import RandomGen3Teams from '../gen3/random-teams'; -import {PRNG, PRNGSeed} from '../../../sim/prng'; -import type {MoveCounter, OldRandomBattleSpecies} from '../gen8/random-teams'; - -export class RandomGen2Teams extends RandomGen3Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); - - constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { - super(format, prng); - this.moveEnforcementCheckers = { - Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), - Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), - Flying: (movePool, moves, abilities, types, counter) => !counter.get('Flying') && types.has('Ground'), - Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), - Ice: (movePool, moves, abilities, types, counter) => !counter.get('Ice'), - Normal: (movePool, moves, abilities, types, counter) => !counter.get('Normal') && counter.setupType === 'Physical', - Psychic: (movePool, moves, abilities, types, counter) => !counter.get('Psychic') && types.has('Grass'), - Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.baseStats.atk > 60, - Water: (movePool, moves, abilities, types, counter) => !counter.get('Water'), - }; - } - - shouldCullMove( - move: Move, - types: Set, - moves: Set, - abilities = {}, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - ): {cull: boolean, isSetup?: boolean} { - const restTalk = moves.has('rest') && moves.has('sleeptalk'); - - switch (move.id) { - // Set up once and only if we have the moves for it - case 'bellydrum': case 'curse': case 'meditate': case 'screech': case 'swordsdance': - return { - cull: ( - (counter.setupType !== 'Physical' || counter.get('physicalsetup') > 1) || - (!counter.get('Physical') || counter.damagingMoves.size < 2 && !moves.has('batonpass') && !moves.has('sleeptalk')) - ), - isSetup: true, - }; - - // Not very useful without their supporting moves - case 'batonpass': - return {cull: !counter.setupType && !counter.get('speedsetup') && !moves.has('meanlook')}; - case 'meanlook': - return {cull: movePool.includes('perishsong')}; - case 'nightmare': - return {cull: !moves.has('lovelykiss') && !moves.has('sleeppowder')}; - case 'swagger': - return {cull: !moves.has('substitute')}; - - // Bad after setup - case 'charm': case 'counter': - return {cull: !!counter.setupType}; - case 'haze': - return {cull: !!counter.setupType || restTalk}; - case 'reflect': case 'lightscreen': - return {cull: !!counter.setupType || moves.has('rest')}; - - // Ineffective to have both - case 'doubleedge': - return {cull: moves.has('bodyslam') || moves.has('return')}; - case 'explosion': case 'selfdestruct': - return {cull: moves.has('softboiled') || restTalk}; - case 'extremespeed': - return {cull: moves.has('bodyslam') || restTalk}; - case 'hyperbeam': - return {cull: moves.has('rockslide')}; - case 'rapidspin': - return {cull: !!teamDetails.rapidSpin || !!counter.setupType || moves.has('sleeptalk')}; - case 'return': - return {cull: moves.has('bodyslam')}; - case 'surf': - return {cull: moves.has('hydropump')}; - case 'thunder': - return {cull: moves.has('thunderbolt')}; - case 'razorleaf': - return {cull: moves.has('swordsdance') && movePool.includes('sludgebomb')}; - case 'icebeam': - return {cull: moves.has('dragonbreath')}; - case 'seismictoss': - return {cull: moves.has('rest') || moves.has('sleeptalk')}; - case 'destinybond': - return {cull: moves.has('explosion')}; - case 'pursuit': - return {cull: moves.has('crunch') && moves.has('solarbeam')}; - case 'thief': - return {cull: moves.has('rest') || moves.has('substitute')}; - case 'irontail': - return {cull: types.has('Ground') && movePool.includes('earthquake')}; - - // Status and illegal move rejections - case 'confuseray': case 'encore': case 'roar': case 'whirlwind': - return {cull: restTalk}; - case 'lovelykiss': - return {cull: ['healbell', 'moonlight', 'morningsun', 'sleeptalk'].some(m => moves.has(m))}; - case 'sleeptalk': - return {cull: moves.has('curse') && counter.get('stab') >= 2}; - case 'softboiled': - return {cull: movePool.includes('swordsdance')}; - case 'spikes': - return {cull: !!teamDetails.spikes}; - case 'substitute': - return {cull: moves.has('agility') || moves.has('rest')}; - case 'synthesis': - return {cull: moves.has('explosion')}; - case 'thunderwave': - return {cull: moves.has('thunder') || moves.has('toxic')}; - } - - return {cull: false}; - } - - getItem( - ability: string, - types: Set, - moves: Set, - counter: MoveCounter, - species: Species, - ) { - // First, the high-priority items - if (species.name === 'Ditto') return 'Metal Powder'; - if (species.name === 'Farfetch\u2019d') return 'Stick'; - if (species.name === 'Marowak') return 'Thick Club'; - if (species.name === 'Pikachu') return 'Light Ball'; - if (species.name === 'Unown') return 'Twisted Spoon'; - if (moves.has('thief')) return ''; - - // Medium priority - if (moves.has('rest') && !moves.has('sleeptalk')) return 'Mint Berry'; - if ( - (moves.has('bellydrum') || moves.has('swordsdance')) && - species.baseStats.spe >= 60 && !types.has('Ground') && - !moves.has('sleeptalk') && !moves.has('substitute') && - this.randomChance(1, 2) - ) { - return 'Miracle Berry'; - } - - // Default to Leftovers - return 'Leftovers'; - } - - randomSet(species: string | Species, teamDetails: RandomTeamsTypes.TeamDetails = {}): RandomTeamsTypes.RandomSet { - species = this.dex.species.get(species); - - const data = this.randomData[species.id]; - const movePool = (data.moves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice(); - const rejectedPool: string[] = []; - const moves = new Set(); - - let ivs = {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}; - let availableHP = 0; - for (const setMoveid of movePool) { - if (setMoveid.startsWith('hiddenpower')) availableHP++; - } - - const types = new Set(species.types); - - let counter; - // We use a special variable to track Hidden Power - // so that we can check for all Hidden Powers at once - let hasHiddenPower = false; - - do { - // Choose next 4 moves from learnset/viable moves and add them to moves list: - while (moves.size < this.maxMoveCount && movePool.length) { - const moveid = this.sampleNoReplace(movePool); - if (moveid.startsWith('hiddenpower')) { - availableHP--; - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - while (moves.size < this.maxMoveCount && rejectedPool.length) { - const moveid = this.sampleNoReplace(rejectedPool); - if (moveid.startsWith('hiddenpower')) { - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - counter = this.queryMoves(moves, species.types, new Set(), movePool); - - // Iterate through the moves again, this time to cull them: - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - let {cull, isSetup} = this.shouldCullMove(move, types, moves, {}, counter, movePool, teamDetails); - - // This move doesn't satisfy our setup requirements: - if (counter.setupType === 'Physical' && move.category === 'Special' && !counter.get('Physical')) { - cull = true; - } - - - // Reject Status, non-STAB, or low basepower moves - const moveIsRejectable = ( - (move.category !== 'Status' || !move.flags.heal) && - // These moves cannot be rejected in favor of a forced move - !['batonpass', 'sleeptalk', 'spikes', 'sunnyday'].includes(move.id) && - (move.category === 'Status' || !types.has(move.type) || (move.basePower && move.basePower < 40)) - ); - - if (!cull && !isSetup && moveIsRejectable && (counter.setupType || !move.stallingMove)) { - // There may be more important moves that this Pokemon needs - if ( - // Pokemon should usually have at least one STAB move - ( - !counter.get('stab') && - !counter.get('damage') && - !types.has('Ghost') && - counter.get('physicalpool') + counter.get('specialpool') > 0 - ) || (movePool.includes('megahorn') || (movePool.includes('softboiled') && moves.has('present'))) || - // Rest + Sleep Talk should be selected together - ((moves.has('rest') && movePool.includes('sleeptalk')) || (moves.has('sleeptalk') && movePool.includes('rest'))) || - // Sunny Day + Solar Beam should be selected together - (moves.has('sunnyday') && movePool.includes('solarbeam') || - (moves.has('solarbeam') && movePool.includes('sunnyday'))) || - ['milkdrink', 'recover', 'spore'].some(m => movePool.includes(m)) - ) { - cull = true; - } else { - // Pokemon should have moves that benefit their typing - for (const type of types) { - if (this.moveEnforcementCheckers[type]?.(movePool, moves, new Set(), types, counter, species, teamDetails)) cull = true; - } - } - } - - // Remove rejected moves from the move list - if ( - cull && - (movePool.length - availableHP || availableHP && (move.id === 'hiddenpower' || !hasHiddenPower)) - ) { - if (move.category !== 'Status' && !move.damage && (move.id !== 'hiddenpower' || !availableHP)) { - rejectedPool.push(moveid); - } - moves.delete(moveid); - if (moveid.startsWith('hiddenpower')) hasHiddenPower = false; - break; - } - - if (cull && rejectedPool.length) { - moves.delete(moveid); - if (moveid.startsWith('hiddenpower')) hasHiddenPower = false; - break; - } - } - } while (moves.size < this.maxMoveCount && (movePool.length || rejectedPool.length)); - - // Adjust IVs for Hidden Power - for (const setMoveid of moves) { - if (!setMoveid.startsWith('hiddenpower')) continue; - const hpType = setMoveid.substr(11, setMoveid.length); - - const hpIVs: {[k: string]: Partial} = { - dragon: {def: 28}, - ice: {def: 26}, - psychic: {def: 24}, - electric: {atk: 28}, - grass: {atk: 28, def: 28}, - water: {atk: 28, def: 26}, - fire: {atk: 28, def: 24}, - steel: {atk: 26}, - ghost: {atk: 26, def: 28}, - bug: {atk: 26, def: 26}, - rock: {atk: 26, def: 24}, - ground: {atk: 24}, - poison: {atk: 24, def: 28}, - flying: {atk: 24, def: 26}, - fighting: {atk: 24, def: 24}, - }; - if (hpIVs[hpType]) { - ivs = {...ivs, ...hpIVs[hpType]}; - } - - if (ivs.atk === 28 || ivs.atk === 24) ivs.hp = 14; - if (ivs.def === 28 || ivs.def === 24) ivs.hp -= 8; - } - - const levelScale: {[k: string]: number} = { - NU: 73, - NUBL: 71, - UU: 69, - UUBL: 67, - OU: 65, - Uber: 61, - }; - - const level = this.adjustLevel || data.level || levelScale[species.tier] || 80; - - return { - name: species.name, - species: species.name, - moves: Array.from(moves), - ability: 'No Ability', - evs: {hp: 255, atk: 255, def: 255, spa: 255, spd: 255, spe: 255}, - ivs, - item: this.getItem('None', types, moves, counter, species), - level, - // No shiny chance because Gen 2 shinies have bad IVs - shiny: false, - gender: species.gender ? species.gender : 'M', - }; - } -} - -export default RandomGen2Teams; diff --git a/data/mods/gen2/rulesets.ts b/data/mods/gen2/rulesets.ts index 5cb180880265..55a717528727 100644 --- a/data/mods/gen2/rulesets.ts +++ b/data/mods/gen2/rulesets.ts @@ -1,4 +1,6 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +import type {Learnset} from "../../../sim/dex-species"; + +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { obtainablemoves: { inherit: true, banlist: [ @@ -26,7 +28,7 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { standard: { effectType: 'ValidatorRule', name: 'Standard', - ruleset: ['Obtainable', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Items Clause', 'Evasion Moves Clause', 'Endless battle Clause', 'HP Percentage Mod', 'Cancel Mod'], + ruleset: ['Obtainable', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Items Clause', 'Evasion Moves Clause', 'Endless battle Clause', 'HP Percentage Mod', 'Cancel Mod'], banlist: [ 'Hypnosis + Mean Look', 'Hypnosis + Spider Web', @@ -40,9 +42,9 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { 'Spore + Spider Web', ], }, - nintendocup2000movelegality: { + nc2000movelegality: { effectType: 'ValidatorRule', - name: 'Nintendo Cup 2000 Move Legality', + name: 'NC 2000 Move Legality', desc: "Prevents Pok\u00e9mon from having moves that would only be obtainable in Pok\u00e9mon Crystal.", onValidateSet(set) { const illegalCombos: {[speciesid: string]: {[moveid: string]: 'E' | 'L' | 'S'}} = { @@ -74,34 +76,31 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { magneton: {triattack: 'L'}, cloyster: {spikes: 'L'}, }; + + const moveSources: NonNullable = Object.fromEntries( + set.moves.map(move => [this.toID(move), []]) + ); + + const species = this.dex.species.get(set.species); + for (const {learnset} of this.dex.species.getFullLearnset(species.id)) { + for (const moveid in moveSources) { + moveSources[moveid].push(...(learnset[moveid] || [])); + } + } + const notUsableAsTM = ['icebeam', 'flamethrower', 'thunderbolt']; - const species = this.dex.species.get(set.species || set.name); - const learnsetData = {...(this.dex.data.Learnsets[species.id]?.learnset || {})}; const legalityList = illegalCombos[species.id]; const problems = []; - let prevo = species.prevo; - while (prevo) { - const prevoSpecies = this.dex.species.get(prevo); - const prevoLsetData = this.dex.data.Learnsets[prevoSpecies.id]?.learnset || {}; - for (const moveid in prevoLsetData) { - if (!(moveid in learnsetData)) { - learnsetData[moveid] = prevoLsetData[moveid]; - } else { - learnsetData[moveid].push(...prevoLsetData[moveid]); - } - } - prevo = prevoSpecies.prevo; - } for (const moveid of set.moves.map(this.toID)) { // Diglett Magnemite Shellder - if (!learnsetData[moveid]) continue; + if (!moveSources[moveid]) continue; if (legalityList) { - const list = learnsetData[moveid].filter(x => !x.includes(legalityList[moveid])); + const list = moveSources[moveid].filter(x => !x.includes(legalityList[moveid])); if (!list.length) { switch (legalityList[moveid]) { case 'L': // Converted to a set to remove duplicate entries - const levels = new Set(learnsetData[moveid].filter(x => x.includes(legalityList[moveid])).map(x => x.slice(2))); + const levels = new Set(moveSources[moveid].filter(x => x.includes(legalityList[moveid])).map(x => x.slice(2))); problems.push( `${species.name} can't learn ${this.dex.moves.get(moveid).name}.`, `(It learns ${this.dex.moves.get(moveid).name} in Pok\u00e9mon Crystal at the following levels: ${[...levels].join(', ')})` @@ -123,7 +122,7 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { } } for (const id of notUsableAsTM) { - if (moveid === id && learnsetData[id] && !learnsetData[id].filter(x => !x.includes('2T')).length) { + if (moveid === id && moveSources[id] && !moveSources[id].filter(x => !x.includes('2T')).length) { problems.push(`${species.name} can't learn ${this.dex.moves.get(id).name}.`); } } diff --git a/data/mods/gen2/scripts.ts b/data/mods/gen2/scripts.ts index 964e34e3076f..f35160ef2b57 100644 --- a/data/mods/gen2/scripts.ts +++ b/data/mods/gen2/scripts.ts @@ -89,10 +89,10 @@ export const Scripts: ModdedBattleScriptsData = { }, actions: { inherit: true, - runMove(moveOrMoveName, pokemon, targetLoc, sourceEffect) { + runMove(moveOrMoveName, pokemon, targetLoc, options) { let move = this.dex.getActiveMove(moveOrMoveName); let target = this.battle.getTarget(pokemon, move, targetLoc); - if (!sourceEffect && move.id !== 'struggle') { + if (!options?.sourceEffect && move.id !== 'struggle') { const changedMove = this.battle.runEvent('OverrideAction', pokemon, target, move); if (changedMove && changedMove !== true) { move = this.dex.getActiveMove(changedMove); @@ -135,7 +135,7 @@ export const Scripts: ModdedBattleScriptsData = { } } pokemon.moveUsed(move); - this.battle.actions.useMove(move, pokemon, target, sourceEffect); + this.battle.actions.useMove(move, pokemon, {target, sourceEffect: options?.sourceEffect}); this.battle.singleEvent('AfterMove', move, null, pokemon, target, move); if (!move.selfSwitch && pokemon.side.foe.active[0].hp) this.battle.runEvent('AfterMoveSelf', pokemon, target, move); }, @@ -302,7 +302,7 @@ export const Scripts: ModdedBattleScriptsData = { } if (move.recoil && move.totalDamage) { - this.battle.damage(this.calcRecoilDamage(move.totalDamage, move), pokemon, target, 'recoil'); + this.battle.damage(this.calcRecoilDamage(move.totalDamage, move, pokemon), pokemon, target, 'recoil'); } return damage; }, @@ -545,11 +545,11 @@ export const Scripts: ModdedBattleScriptsData = { // Checking for the move's Critical Hit ratio let critRatio = this.battle.runEvent('ModifyCritRatio', source, target, move, move.critRatio || 0); critRatio = this.battle.clampIntRange(critRatio, 0, 5); - const critMult = [0, 16, 8, 4, 3, 2]; + const critMult = [0, 17, 32, 64, 85, 128]; let isCrit = move.willCrit || false; if (typeof move.willCrit === 'undefined') { if (critRatio) { - isCrit = this.battle.randomChance(1, critMult[critRatio]); + isCrit = this.battle.random(256) < critMult[critRatio]; } } diff --git a/data/mods/gen2/typechart.ts b/data/mods/gen2/typechart.ts index eb62f8447d3b..de3df304e62d 100644 --- a/data/mods/gen2/typechart.ts +++ b/data/mods/gen2/typechart.ts @@ -1,4 +1,4 @@ -export const TypeChart: {[k: string]: ModdedTypeData} = { +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { fire: { inherit: true, damageTaken: { diff --git a/data/mods/gen2doubles/formats-data.ts b/data/mods/gen2doubles/formats-data.ts new file mode 100644 index 000000000000..d29beb0e9866 --- /dev/null +++ b/data/mods/gen2doubles/formats-data.ts @@ -0,0 +1,898 @@ +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { + bulbasaur: { + tier: "LC", + }, + ivysaur: { + tier: "NFE", + }, + venusaur: { + tier: "OU", + doublesTier: "DOU", + }, + charmander: { + tier: "LC", + }, + charmeleon: { + tier: "NFE", + }, + charizard: { + tier: "OU", + doublesTier: "DOU", + }, + squirtle: { + tier: "LC", + }, + wartortle: { + tier: "NFE", + }, + blastoise: { + tier: "OU", + doublesTier: "DOU", + }, + caterpie: { + tier: "LC", + }, + metapod: { + tier: "NFE", + }, + butterfree: { + tier: "OU", + doublesTier: "DOU", + }, + weedle: { + tier: "LC", + }, + kakuna: { + tier: "NFE", + }, + beedrill: { + tier: "OU", + doublesTier: "DOU", + }, + pidgey: { + tier: "LC", + }, + pidgeotto: { + tier: "NFE", + }, + pidgeot: { + tier: "OU", + doublesTier: "DOU", + }, + rattata: { + tier: "LC", + }, + raticate: { + tier: "OU", + doublesTier: "DOU", + }, + spearow: { + tier: "LC", + }, + fearow: { + tier: "OU", + doublesTier: "DOU", + }, + ekans: { + tier: "LC", + }, + arbok: { + tier: "OU", + doublesTier: "DOU", + }, + pichu: { + tier: "LC", + }, + pikachu: { + tier: "OU", + doublesTier: "NFE", + }, + raichu: { + tier: "OU", + doublesTier: "DOU", + }, + sandshrew: { + tier: "LC", + }, + sandslash: { + tier: "OU", + doublesTier: "DOU", + }, + nidoranf: { + tier: "LC", + }, + nidorina: { + tier: "NFE", + }, + nidoqueen: { + tier: "OU", + doublesTier: "DOU", + }, + nidoranm: { + tier: "LC", + }, + nidorino: { + tier: "NFE", + }, + nidoking: { + tier: "OU", + doublesTier: "DOU", + }, + cleffa: { + tier: "LC", + }, + clefairy: { + tier: "NFE", + }, + clefable: { + tier: "OU", + doublesTier: "DOU", + }, + vulpix: { + tier: "LC", + }, + ninetales: { + tier: "OU", + doublesTier: "DOU", + }, + igglybuff: { + tier: "LC", + }, + jigglypuff: { + tier: "NFE", + }, + wigglytuff: { + tier: "OU", + doublesTier: "DOU", + }, + zubat: { + tier: "LC", + }, + golbat: { + tier: "NFE", + }, + crobat: { + tier: "OU", + doublesTier: "DOU", + }, + oddish: { + tier: "LC", + }, + gloom: { + tier: "NFE", + }, + vileplume: { + tier: "OU", + doublesTier: "DOU", + }, + bellossom: { + tier: "OU", + doublesTier: "DOU", + }, + paras: { + tier: "LC", + }, + parasect: { + tier: "OU", + doublesTier: "DOU", + }, + venonat: { + tier: "LC", + }, + venomoth: { + tier: "OU", + doublesTier: "DOU", + }, + diglett: { + tier: "LC", + }, + dugtrio: { + tier: "OU", + doublesTier: "DOU", + }, + meowth: { + tier: "LC", + }, + persian: { + tier: "OU", + doublesTier: "DOU", + }, + psyduck: { + tier: "LC", + }, + golduck: { + tier: "OU", + doublesTier: "DOU", + }, + mankey: { + tier: "LC", + }, + primeape: { + tier: "OU", + doublesTier: "DOU", + }, + growlithe: { + tier: "LC", + }, + arcanine: { + tier: "OU", + doublesTier: "DOU", + }, + poliwag: { + tier: "LC", + }, + poliwhirl: { + tier: "NFE", + }, + poliwrath: { + tier: "OU", + doublesTier: "DOU", + }, + politoed: { + tier: "OU", + doublesTier: "DOU", + }, + abra: { + tier: "LC", + }, + kadabra: { + tier: "OU", + doublesTier: "NFE", + }, + alakazam: { + tier: "OU", + doublesTier: "DOU", + }, + machop: { + tier: "LC", + }, + machoke: { + tier: "NFE", + }, + machamp: { + tier: "OU", + doublesTier: "DOU", + }, + bellsprout: { + tier: "LC", + }, + weepinbell: { + tier: "NFE", + }, + victreebel: { + tier: "OU", + doublesTier: "DOU", + }, + tentacool: { + tier: "LC", + }, + tentacruel: { + tier: "OU", + doublesTier: "DOU", + }, + geodude: { + tier: "LC", + }, + graveler: { + tier: "NFE", + }, + golem: { + tier: "OU", + doublesTier: "DOU", + }, + ponyta: { + tier: "LC", + }, + rapidash: { + tier: "OU", + doublesTier: "DOU", + }, + slowpoke: { + tier: "LC", + }, + slowbro: { + tier: "OU", + doublesTier: "DOU", + }, + slowking: { + tier: "OU", + doublesTier: "DOU", + }, + magnemite: { + tier: "LC", + }, + magneton: { + tier: "OU", + doublesTier: "DOU", + }, + farfetchd: { + tier: "OU", + doublesTier: "DOU", + }, + doduo: { + tier: "LC", + }, + dodrio: { + tier: "OU", + doublesTier: "DOU", + }, + seel: { + tier: "LC", + }, + dewgong: { + tier: "OU", + doublesTier: "DOU", + }, + grimer: { + tier: "LC", + }, + muk: { + tier: "OU", + doublesTier: "DOU", + }, + shellder: { + tier: "LC", + }, + cloyster: { + tier: "OU", + doublesTier: "DOU", + }, + gastly: { + tier: "LC", + }, + haunter: { + tier: "OU", + doublesTier: "DOU", + }, + gengar: { + tier: "OU", + doublesTier: "DOU", + }, + onix: { + tier: "LC", + }, + steelix: { + tier: "OU", + doublesTier: "DOU", + }, + drowzee: { + tier: "LC", + }, + hypno: { + tier: "OU", + doublesTier: "DOU", + }, + krabby: { + tier: "LC", + }, + kingler: { + tier: "OU", + doublesTier: "DOU", + }, + voltorb: { + tier: "LC", + }, + electrode: { + tier: "OU", + doublesTier: "DOU", + }, + exeggcute: { + tier: "LC", + }, + exeggutor: { + tier: "OU", + doublesTier: "DOU", + }, + cubone: { + tier: "LC", + }, + marowak: { + tier: "OU", + doublesTier: "DOU", + }, + tyrogue: { + tier: "LC", + }, + hitmonlee: { + tier: "OU", + doublesTier: "DOU", + }, + hitmonchan: { + tier: "OU", + doublesTier: "DOU", + }, + hitmontop: { + tier: "OU", + doublesTier: "DOU", + }, + lickitung: { + tier: "OU", + doublesTier: "DOU", + }, + koffing: { + tier: "LC", + }, + weezing: { + tier: "OU", + doublesTier: "DOU", + }, + rhyhorn: { + tier: "LC", + }, + rhydon: { + tier: "OU", + doublesTier: "DOU", + }, + chansey: { + tier: "OU", + doublesTier: "NFE", + }, + blissey: { + tier: "OU", + doublesTier: "DOU", + }, + tangela: { + tier: "OU", + doublesTier: "DOU", + }, + kangaskhan: { + tier: "OU", + doublesTier: "DOU", + }, + horsea: { + tier: "LC", + }, + seadra: { + tier: "NFE", + }, + kingdra: { + tier: "OU", + doublesTier: "DOU", + }, + goldeen: { + tier: "LC", + }, + seaking: { + tier: "OU", + doublesTier: "DOU", + }, + staryu: { + tier: "LC", + }, + starmie: { + tier: "OU", + doublesTier: "DOU", + }, + mrmime: { + tier: "OU", + doublesTier: "DOU", + }, + scyther: { + tier: "OU", + doublesTier: "NFE", + }, + scizor: { + tier: "OU", + doublesTier: "DOU", + }, + smoochum: { + tier: "LC", + }, + jynx: { + tier: "OU", + doublesTier: "DOU", + }, + elekid: { + tier: "LC", + }, + electabuzz: { + tier: "OU", + doublesTier: "DOU", + }, + magby: { + tier: "LC", + }, + magmar: { + tier: "OU", + doublesTier: "DOU", + }, + pinsir: { + tier: "OU", + doublesTier: "DOU", + }, + tauros: { + tier: "OU", + doublesTier: "DOU", + }, + magikarp: { + tier: "LC", + }, + gyarados: { + tier: "OU", + doublesTier: "DOU", + }, + lapras: { + tier: "OU", + doublesTier: "DOU", + }, + ditto: { + tier: "OU", + doublesTier: "DOU", + }, + eevee: { + tier: "LC", + }, + vaporeon: { + tier: "OU", + doublesTier: "DOU", + }, + jolteon: { + tier: "OU", + doublesTier: "DOU", + }, + flareon: { + tier: "OU", + doublesTier: "DOU", + }, + espeon: { + tier: "OU", + doublesTier: "DOU", + }, + umbreon: { + tier: "OU", + doublesTier: "DOU", + }, + porygon: { + tier: "LC", + }, + porygon2: { + tier: "OU", + doublesTier: "DOU", + }, + omanyte: { + tier: "LC", + }, + omastar: { + tier: "OU", + doublesTier: "DOU", + }, + kabuto: { + tier: "LC", + }, + kabutops: { + tier: "OU", + doublesTier: "DOU", + }, + aerodactyl: { + tier: "OU", + doublesTier: "DOU", + }, + snorlax: { + tier: "OU", + doublesTier: "DOU", + }, + articuno: { + tier: "OU", + doublesTier: "DOU", + }, + zapdos: { + tier: "OU", + doublesTier: "DOU", + }, + moltres: { + tier: "OU", + doublesTier: "DOU", + }, + dratini: { + tier: "LC", + }, + dragonair: { + tier: "NFE", + }, + dragonite: { + tier: "OU", + doublesTier: "DOU", + }, + mewtwo: { + tier: "Uber", + doublesTier: "DUber", + }, + mew: { + tier: "Uber", + doublesTier: "DUber", + }, + chikorita: { + tier: "LC", + }, + bayleef: { + tier: "NFE", + }, + meganium: { + tier: "OU", + doublesTier: "DOU", + }, + cyndaquil: { + tier: "LC", + }, + quilava: { + tier: "NFE", + }, + typhlosion: { + tier: "OU", + doublesTier: "DOU", + }, + totodile: { + tier: "LC", + }, + croconaw: { + tier: "NFE", + }, + feraligatr: { + tier: "OU", + doublesTier: "DOU", + }, + sentret: { + tier: "LC", + }, + furret: { + tier: "OU", + doublesTier: "DOU", + }, + hoothoot: { + tier: "LC", + }, + noctowl: { + tier: "OU", + doublesTier: "DOU", + }, + ledyba: { + tier: "LC", + }, + ledian: { + tier: "OU", + doublesTier: "DOU", + }, + spinarak: { + tier: "LC", + }, + ariados: { + tier: "OU", + doublesTier: "DOU", + }, + chinchou: { + tier: "LC", + }, + lanturn: { + tier: "OU", + doublesTier: "DOU", + }, + togepi: { + tier: "LC", + }, + togetic: { + tier: "OU", + doublesTier: "DOU", + }, + natu: { + tier: "LC", + }, + xatu: { + tier: "OU", + doublesTier: "DOU", + }, + mareep: { + tier: "LC", + }, + flaaffy: { + tier: "NFE", + }, + ampharos: { + tier: "OU", + doublesTier: "DOU", + }, + marill: { + tier: "LC", + }, + azumarill: { + tier: "OU", + doublesTier: "DOU", + }, + sudowoodo: { + tier: "OU", + doublesTier: "DOU", + }, + hoppip: { + tier: "LC", + }, + skiploom: { + tier: "NFE", + }, + jumpluff: { + tier: "OU", + doublesTier: "DOU", + }, + aipom: { + tier: "OU", + doublesTier: "DOU", + }, + sunkern: { + tier: "LC", + }, + sunflora: { + tier: "OU", + doublesTier: "DOU", + }, + yanma: { + tier: "OU", + doublesTier: "DOU", + }, + wooper: { + tier: "LC", + }, + quagsire: { + tier: "OU", + doublesTier: "DOU", + }, + murkrow: { + tier: "OU", + doublesTier: "DOU", + }, + misdreavus: { + tier: "OU", + doublesTier: "DOU", + }, + unown: { + tier: "OU", + doublesTier: "DOU", + }, + wobbuffet: { + tier: "OU", + doublesTier: "DOU", + }, + girafarig: { + tier: "OU", + doublesTier: "DOU", + }, + pineco: { + tier: "LC", + }, + forretress: { + tier: "OU", + doublesTier: "DOU", + }, + dunsparce: { + tier: "OU", + doublesTier: "DOU", + }, + gligar: { + tier: "OU", + doublesTier: "DOU", + }, + snubbull: { + tier: "LC", + }, + granbull: { + tier: "OU", + doublesTier: "DOU", + }, + qwilfish: { + tier: "OU", + doublesTier: "DOU", + }, + shuckle: { + tier: "OU", + doublesTier: "DOU", + }, + heracross: { + tier: "OU", + doublesTier: "DOU", + }, + sneasel: { + tier: "OU", + doublesTier: "DOU", + }, + teddiursa: { + tier: "LC", + }, + ursaring: { + tier: "OU", + doublesTier: "DOU", + }, + slugma: { + tier: "LC", + }, + magcargo: { + tier: "OU", + doublesTier: "DOU", + }, + swinub: { + tier: "LC", + }, + piloswine: { + tier: "OU", + doublesTier: "DOU", + }, + corsola: { + tier: "OU", + doublesTier: "DOU", + }, + remoraid: { + tier: "LC", + }, + octillery: { + tier: "OU", + doublesTier: "DOU", + }, + delibird: { + tier: "OU", + doublesTier: "DOU", + }, + mantine: { + tier: "OU", + doublesTier: "DOU", + }, + skarmory: { + tier: "OU", + doublesTier: "DOU", + }, + houndour: { + tier: "LC", + }, + houndoom: { + tier: "OU", + doublesTier: "DOU", + }, + phanpy: { + tier: "LC", + }, + donphan: { + tier: "OU", + doublesTier: "DOU", + }, + stantler: { + tier: "OU", + doublesTier: "DOU", + }, + smeargle: { + tier: "OU", + doublesTier: "DOU", + }, + miltank: { + tier: "OU", + doublesTier: "DOU", + }, + raikou: { + tier: "OU", + doublesTier: "DOU", + }, + entei: { + tier: "OU", + doublesTier: "DOU", + }, + suicune: { + tier: "OU", + doublesTier: "DOU", + }, + larvitar: { + tier: "LC", + }, + pupitar: { + tier: "NFE", + }, + tyranitar: { + tier: "OU", + doublesTier: "DOU", + }, + lugia: { + tier: "Uber", + doublesTier: "DUber", + }, + hooh: { + tier: "Uber", + doublesTier: "DUber", + }, + celebi: { + tier: "Uber", + doublesTier: "DUber", + }, +}; diff --git a/data/mods/gen2doubles/moves.ts b/data/mods/gen2doubles/moves.ts new file mode 100644 index 000000000000..a3d1f50d887f --- /dev/null +++ b/data/mods/gen2doubles/moves.ts @@ -0,0 +1,49 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + encore: { + inherit: true, + condition: { + durationCallback() { + return this.random(3, 7); + }, + onStart(target) { + const lockedMove = target.lastMoveEncore?.id || ''; + const moveIndex = lockedMove ? target.moves.indexOf(lockedMove) : -1; + if (moveIndex < 0 || target.lastMoveEncore?.flags['failencore'] || target.moveSlots[moveIndex].pp <= 0) { + // it failed + return false; + } + this.effectState.move = lockedMove; + this.add('-start', target, 'Encore'); + }, + onOverrideAction(pokemon) { + return this.effectState.move; + }, + onModifyMove(move, pokemon) { + if (['normal', 'any', 'adjacentFoe'].includes(move.target)) { + move.target = 'randomNormal'; + } + }, + onResidualOrder: 13, + onResidual(target) { + const lockedMoveIndex = target.moves.indexOf(this.effectState.move); + if (lockedMoveIndex >= 0 && target.moveSlots[lockedMoveIndex].pp <= 0) { + // early termination if you run out of PP + target.removeVolatile('encore'); + } + }, + onEnd(target) { + this.add('-end', target, 'Encore'); + }, + onDisableMove(pokemon) { + if (!this.effectState.move || !pokemon.hasMove(this.effectState.move)) { + return; + } + for (const moveSlot of pokemon.moveSlots) { + if (moveSlot.id !== this.effectState.move) { + pokemon.disableMove(moveSlot.id); + } + } + }, + }, + }, +}; diff --git a/data/mods/gen2doubles/rulesets.ts b/data/mods/gen2doubles/rulesets.ts new file mode 100644 index 000000000000..1f5fa12e139e --- /dev/null +++ b/data/mods/gen2doubles/rulesets.ts @@ -0,0 +1,19 @@ +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { + standarddoubles: { + effectType: 'ValidatorRule', + name: 'Standard Doubles', + ruleset: ['Obtainable', 'Sleep Clause Mod', 'Freeze Clause Mod', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless battle Clause', 'HP Percentage Mod', 'Cancel Mod'], + banlist: [ + 'Hypnosis + Mean Look', + 'Hypnosis + Spider Web', + 'Lovely Kiss + Mean Look', + 'Lovely Kiss + Spider Web', + 'Sing + Mean Look', + 'Sing + Spider Web', + 'Sleep Powder + Mean Look', + 'Sleep Powder + Spider Web', + 'Spore + Mean Look', + 'Spore + Spider Web', + ], + }, +}; diff --git a/data/mods/gen2doubles/scripts.ts b/data/mods/gen2doubles/scripts.ts new file mode 100644 index 000000000000..75b256fe7d4f --- /dev/null +++ b/data/mods/gen2doubles/scripts.ts @@ -0,0 +1,319 @@ +export const Scripts: ModdedBattleScriptsData = { + inherit: 'gen2', + gen: 2, + pokemon: { + inherit: true, + getStat(statName, unboosted, unmodified, fastReturn) { + // @ts-ignore - type checking prevents 'hp' from being passed, but we're paranoid + if (statName === 'hp') throw new Error("Please read `maxhp` directly"); + + // base stat + let stat = this.storedStats[statName]; + + // Stat boosts. + if (!unboosted) { + let boost = this.boosts[statName]; + if (boost > 6) boost = 6; + if (boost < -6) boost = -6; + if (boost >= 0) { + const boostTable = [1, 1.5, 2, 2.5, 3, 3.5, 4]; + stat = Math.floor(stat * boostTable[boost]); + } else { + const numerators = [100, 66, 50, 40, 33, 28, 25]; + stat = Math.floor(stat * numerators[-boost] / 100); + } + } + + if (this.status === 'par' && statName === 'spe') { + stat = Math.floor(stat / 4); + } + + if (!unmodified) { + // Burn attack drop is checked when you get the attack stat upon switch in and used until switch out. + if (this.status === 'brn' && statName === 'atk') { + stat = Math.floor(stat / 2); + } + } + + // Gen 2 caps stats at 999 and min is 1. + stat = this.battle.clampIntRange(stat, 1, 999); + if (fastReturn) return stat; + + // Screens + if (!unboosted) { + if ( + (statName === 'def' && this.side.sideConditions['reflect']) || + (statName === 'spd' && this.side.sideConditions['lightscreen']) + ) { + if (this.side.active.length === 1) { + stat *= 2; + } else { + stat *= 1.5; + } + } + } + + // Handle boosting items + if ( + (['Cubone', 'Marowak'].includes(this.baseSpecies.name) && this.item === 'thickclub' && statName === 'atk') || + (this.baseSpecies.name === 'Pikachu' && this.item === 'lightball' && statName === 'spa') + ) { + stat *= 2; + } else if (this.baseSpecies.name === 'Ditto' && this.item === 'metalpowder' && ['def', 'spd'].includes(statName)) { + stat = Math.floor(stat * 1.5); + } + + return stat; + }, + }, + actions: { + inherit: true, + getDamage(source, target, move, suppressMessages) { + // First of all, we get the move. + if (typeof move === 'string') { + move = this.dex.getActiveMove(move); + } else if (typeof move === 'number') { + move = { + basePower: move, + type: '???', + category: 'Physical', + willCrit: false, + flags: {}, + } as unknown as ActiveMove; + } + + // Let's test for immunities. + if (!move.ignoreImmunity || (move.ignoreImmunity !== true && !move.ignoreImmunity[move.type])) { + if (!target.runImmunity(move.type, true)) { + return false; + } + } + + // Is it an OHKO move? + if (move.ohko) { + return target.maxhp; + } + + // We edit the damage through move's damage callback + if (move.damageCallback) { + return move.damageCallback.call(this.battle, source, target); + } + + // We take damage from damage=level moves + if (move.damage === 'level') { + return source.level; + } + + // If there's a fix move damage, we run it + if (move.damage) { + return move.damage; + } + + // We check the category and typing to calculate later on the damage + move.category = this.battle.getCategory(move); + // '???' is typeless damage: used for Struggle and Confusion etc + if (!move.type) move.type = '???'; + const type = move.type; + + // We get the base power and apply basePowerCallback if necessary + let basePower: number | false | null | undefined = move.basePower; + if (move.basePowerCallback) { + basePower = move.basePowerCallback.call(this.battle, source, target, move); + } + + // We check for Base Power + if (!basePower) { + if (basePower === 0) return; // Returning undefined means not dealing damage + return basePower; + } + basePower = this.battle.clampIntRange(basePower, 1); + + // Checking for the move's Critical Hit ratio + let critRatio = this.battle.runEvent('ModifyCritRatio', source, target, move, move.critRatio || 0); + critRatio = this.battle.clampIntRange(critRatio, 0, 5); + const critMult = [0, 17, 32, 64, 85, 128]; + let isCrit = move.willCrit || false; + if (typeof move.willCrit === 'undefined') { + if (critRatio) { + isCrit = this.battle.random(256) < critMult[critRatio]; + } + } + + if (isCrit && this.battle.runEvent('CriticalHit', target, null, move)) { + target.getMoveHitData(move).crit = true; + } + + // Happens after crit calculation + if (basePower) { + // confusion damage + if (move.isConfusionSelfHit) { + move.type = move.baseMoveType!; + basePower = this.battle.runEvent('BasePower', source, target, move, basePower, true); + move.type = '???'; + } else { + basePower = this.battle.runEvent('BasePower', source, target, move, basePower, true); + } + if (basePower && move.basePowerModifier) { + basePower *= move.basePowerModifier; + } + } + if (!basePower) return 0; + basePower = this.battle.clampIntRange(basePower, 1); + + // We now check for attacker and defender + let level = source.level; + + // Using Beat Up + if (move.allies) { + this.battle.add('-activate', source, 'move: Beat Up', '[of] ' + move.allies[0].name); + level = move.allies[0].level; + } + + const attacker = move.overrideOffensivePokemon === 'target' ? target : source; + const defender = move.overrideDefensivePokemon === 'source' ? source : target; + + const isPhysical = move.category === 'Physical'; + const atkType: StatIDExceptHP = move.overrideOffensiveStat || (isPhysical ? 'atk' : 'spa'); + const defType: StatIDExceptHP = move.overrideDefensiveStat || (isPhysical ? 'def' : 'spd'); + + let unboosted = false; + let noburndrop = false; + + if (isCrit) { + if (!suppressMessages) this.battle.add('-crit', target); + // Stat level modifications are ignored if they are neutral to or favour the defender. + // Reflect and Light Screen defensive boosts are only ignored if stat level modifications were also ignored as a result of that. + if (attacker.boosts[atkType] <= defender.boosts[defType]) { + unboosted = true; + noburndrop = true; + } + } + + let attack = attacker.getStat(atkType, unboosted, noburndrop); + let defense = defender.getStat(defType, unboosted); + + // Using Beat Up + if (move.allies) { + attack = move.allies[0].species.baseStats.atk; + move.allies.shift(); + defense = defender.species.baseStats.def; + } + + // Moves that ignore offense and defense respectively. + if (move.ignoreOffensive) { + this.battle.debug('Negating (sp)atk boost/penalty.'); + // The attack drop from the burn is only applied when attacker's attack level is higher than defender's defense level. + attack = attacker.getStat(atkType, true, true); + } + + if (move.ignoreDefensive) { + this.battle.debug('Negating (sp)def boost/penalty.'); + defense = target.getStat(defType, true, true); + } + + if (move.id === 'present') { + const typeIndexes: {[k: string]: number} = { + Normal: 0, Fighting: 1, Flying: 2, Poison: 3, Ground: 4, Rock: 5, Bug: 7, Ghost: 8, Steel: 9, + Fire: 20, Water: 21, Grass: 22, Electric: 23, Psychic: 24, Ice: 25, Dragon: 26, Dark: 27, + }; + attack = 10; + + const attackerLastType = attacker.getTypes().slice(-1)[0]; + const defenderLastType = defender.getTypes().slice(-1)[0]; + + defense = typeIndexes[attackerLastType] || 1; + level = typeIndexes[defenderLastType] || 1; + this.battle.hint("Gen 2 Present has a glitched damage calculation using the secondary types of the Pokemon for the Attacker's Level and Defender's Defense.", true); + } + + // When either attack or defense are higher than 256, they are both divided by 4 and modded by 256. + // This is what causes the rollover bugs. + if (attack >= 256 || defense >= 256) { + if (attack >= 1024 || defense >= 1024) { + this.battle.hint("In Gen 2, a stat will roll over to a small number if it is larger than 1024."); + } + attack = this.battle.clampIntRange(Math.floor(attack / 4) % 256, 1); + defense = this.battle.clampIntRange(Math.floor(defense / 4) % 256, 1); + } + + // Self destruct moves halve defense at this point. + if (move.selfdestruct && defType === 'def') { + defense = this.battle.clampIntRange(Math.floor(defense / 2), 1); + } + + // Let's go with the calculation now that we have what we need. + // We do it step by step just like the game does. + let damage = level * 2; + damage = Math.floor(damage / 5); + damage += 2; + damage *= basePower; + damage *= attack; + damage = Math.floor(damage / defense); + damage = Math.floor(damage / 50); + if (isCrit) damage *= 2; + damage = Math.floor(this.battle.runEvent('ModifyDamage', attacker, defender, move, damage)); + damage = this.battle.clampIntRange(damage, 1, 997); + damage += 2; + + // Weather modifiers + if ( + (type === 'Water' && this.battle.field.isWeather('raindance')) || + (type === 'Fire' && this.battle.field.isWeather('sunnyday')) + ) { + damage = Math.floor(damage * 1.5); + } else if ( + ((type === 'Fire' || move.id === 'solarbeam') && this.battle.field.isWeather('raindance')) || + (type === 'Water' && this.battle.field.isWeather('sunnyday')) + ) { + damage = Math.floor(damage / 2); + } + + // STAB damage bonus, the "???" type never gets STAB + if (type !== '???' && source.hasType(type)) { + damage += Math.floor(damage / 2); + } + + // Type effectiveness + const totalTypeMod = target.runEffectiveness(move); + // Super effective attack + if (totalTypeMod > 0) { + if (!suppressMessages) this.battle.add('-supereffective', target); + damage *= 2; + if (totalTypeMod >= 2) { + damage *= 2; + } + } + // Resisted attack + if (totalTypeMod < 0) { + if (!suppressMessages) this.battle.add('-resisted', target); + damage = Math.floor(damage / 2); + if (totalTypeMod <= -2) { + damage = Math.floor(damage / 2); + } + } + + // Attempting to add correct spread damage nerf + const {targets} = source.getMoveTargets(move, target); + if (targets.length > 1) move.spreadHit = true; + if (move.spreadHit && move.target === 'allAdjacentFoes') { + const spreadModifier = move.spreadModifier || 0.5; + this.battle.debug('Spread modifier: ' + spreadModifier); + damage = this.battle.modify(damage, spreadModifier); + } + + // Apply random factor if damage is greater than 1, except for Flail and Reversal + if (!move.noDamageVariance && damage > 1) { + damage *= this.battle.random(217, 256); + damage = Math.floor(damage / 255); + } + + // If damage is less than 1, we return 1 + if (basePower && !Math.floor(damage)) { + return 1; + } + + // We are done, this is the final damage + return damage; + }, + }, +}; diff --git a/data/mods/gen2stadium2/conditions.ts b/data/mods/gen2stadium2/conditions.ts index 8d6dae2eff78..3ced97f51a3c 100644 --- a/data/mods/gen2stadium2/conditions.ts +++ b/data/mods/gen2stadium2/conditions.ts @@ -4,7 +4,7 @@ * a volatile along with them to keep track of if their respective stat changes should be factored * in during stat calculations or not. */ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { brn: { name: 'brn', effectType: 'Status', diff --git a/data/mods/gen2stadium2/items.ts b/data/mods/gen2stadium2/items.ts index bf2a797ed2c2..990e14c2a468 100644 --- a/data/mods/gen2stadium2/items.ts +++ b/data/mods/gen2stadium2/items.ts @@ -1,5 +1,5 @@ // Gen 2 Stadium fixes Dragon Fang and Dragon Scale having the wrong effects. -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { dragonfang: { inherit: true, onModifyDamage(damage, source, target, move) { diff --git a/data/mods/gen2stadium2/moves.ts b/data/mods/gen2stadium2/moves.ts index acf213c3f168..9a34450484de 100644 --- a/data/mods/gen2stadium2/moves.ts +++ b/data/mods/gen2stadium2/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { // Belly Drum no longer boosts attack by 2 stages if under 50% health. bellydrum: { inherit: true, diff --git a/data/mods/gen2stadium2/rulesets.ts b/data/mods/gen2stadium2/rulesets.ts index 58a4b280b25f..0bbab70192e9 100644 --- a/data/mods/gen2stadium2/rulesets.ts +++ b/data/mods/gen2stadium2/rulesets.ts @@ -1,8 +1,8 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { effectType: 'ValidatorRule', name: 'Standard', - ruleset: ['Obtainable', 'Team Preview', 'Stadium Sleep Clause', 'Freeze Clause Mod', 'Self-KO Clause', 'Species Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Exact HP Mod', 'Cancel Mod', 'Stadium Items Clause'], + ruleset: ['Obtainable', 'Team Preview', 'Stadium Sleep Clause', 'Freeze Clause Mod', 'Self-KO Clause', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Exact HP Mod', 'Cancel Mod', 'Stadium Items Clause'], }, selfkoclause: { effectType: 'Rule', diff --git a/data/mods/gen2stadium2/scripts.ts b/data/mods/gen2stadium2/scripts.ts index baa37ee97d0e..6992fc9d4315 100644 --- a/data/mods/gen2stadium2/scripts.ts +++ b/data/mods/gen2stadium2/scripts.ts @@ -239,7 +239,7 @@ export const Scripts: ModdedBattleScriptsData = { // If a pokemon caused the other to faint with a recoil move and only one pokemon remains on both sides, // recoil damage will not be taken. if (move.recoil && move.totalDamage && (pokemon.side.pokemonLeft > 1 || target.side.pokemonLeft > 1 || target.hp)) { - this.battle.damage(this.calcRecoilDamage(move.totalDamage, move), pokemon, target, 'recoil'); + this.battle.damage(this.calcRecoilDamage(move.totalDamage, move, pokemon), pokemon, target, 'recoil'); } return damage; }, diff --git a/data/mods/gen3/abilities.ts b/data/mods/gen3/abilities.ts index 1265649cb4d9..3d2bd5b5e6f7 100644 --- a/data/mods/gen3/abilities.ts +++ b/data/mods/gen3/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { cutecharm: { inherit: true, onDamagingHit(damage, target, source, move) { @@ -51,6 +51,19 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } }, }, + forecast: { + inherit: true, + flags: {}, + }, + hustle: { + inherit: true, + onSourceModifyAccuracy(accuracy, target, source, move) { + const physicalTypes = ['Normal', 'Fighting', 'Flying', 'Poison', 'Ground', 'Rock', 'Bug', 'Ghost', 'Steel']; + if (physicalTypes.includes(move.type) && typeof accuracy === 'number') { + return this.chainModify([3277, 4096]); + } + }, + }, intimidate: { inherit: true, onStart(pokemon) { @@ -79,12 +92,13 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, lightningrod: { onFoeRedirectTarget(target, source, source2, move) { - if (move.type !== 'Electric') return; + // don't count Hidden Power as Electric-type + if (this.dex.moves.get(move.id).type !== 'Electric') return; if (this.validTarget(this.effectState.target, source, move.target)) { return this.effectState.target; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Lightning Rod", rating: 0, num: 32, @@ -162,19 +176,17 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, trace: { inherit: true, - onUpdate(pokemon) { + onUpdate() {}, + onStart(pokemon) { if (!pokemon.isStarted) return; const target = pokemon.side.randomFoe(); if (!target || target.fainted) return; const ability = target.getAbility(); - const bannedAbilities = ['forecast', 'multitype', 'trace']; - if (bannedAbilities.includes(target.ability)) { - return; - } if (pokemon.setAbility(ability)) { this.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target); } }, + flags: {}, }, truant: { inherit: true, diff --git a/data/mods/gen3/conditions.ts b/data/mods/gen3/conditions.ts index b2daf4308749..381451eab155 100644 --- a/data/mods/gen3/conditions.ts +++ b/data/mods/gen3/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { slp: { name: 'slp', effectType: 'Status', diff --git a/data/mods/gen3/formats-data.ts b/data/mods/gen3/formats-data.ts index 050ec6fba72b..e7efcd5cd48b 100644 --- a/data/mods/gen3/formats-data.ts +++ b/data/mods/gen3/formats-data.ts @@ -1,9 +1,9 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, ivysaur: { - tier: "NFE", + tier: "PU", }, venusaur: { tier: "UUBL", @@ -12,7 +12,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, charmeleon: { - tier: "NFE", + tier: "PU", }, charizard: { tier: "OU", @@ -21,7 +21,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, wartortle: { - tier: "NFE", + tier: "ZU", }, blastoise: { tier: "UU", @@ -33,7 +33,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "PU", + tier: "ZU", }, weedle: { tier: "LC", @@ -42,13 +42,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beedrill: { - tier: "PU", + tier: "ZU", }, pidgey: { tier: "LC", }, pidgeotto: { - tier: "NFE", + tier: "ZU", }, pidgeot: { tier: "NU", @@ -78,7 +78,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, raichu: { - tier: "UU", + tier: "RU", }, sandshrew: { tier: "LC", @@ -99,7 +99,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, nidorino: { - tier: "NFE", + tier: "ZU", }, nidoking: { tier: "UU", @@ -111,13 +111,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, clefable: { - tier: "UU", + tier: "RU", }, vulpix: { tier: "LC", }, ninetales: { - tier: "UU", + tier: "RU", }, igglybuff: { tier: "LC", @@ -141,7 +141,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gloom: { - tier: "NFE", + tier: "ZU", }, vileplume: { tier: "UU", @@ -153,7 +153,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, parasect: { - tier: "PU", + tier: "ZU", }, venonat: { tier: "LC", @@ -171,7 +171,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, persian: { - tier: "UU", + tier: "RU", }, psyduck: { tier: "LC", @@ -183,10 +183,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, primeape: { - tier: "UU", + tier: "RU", }, growlithe: { - tier: "LC", + tier: "ZU", }, arcanine: { tier: "UU", @@ -195,16 +195,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, poliwhirl: { - tier: "NFE", + tier: "ZUBL", }, poliwrath: { - tier: "UU", + tier: "RU", }, politoed: { - tier: "UU", + tier: "RU", }, abra: { - tier: "LC", + tier: "ZU", }, kadabra: { tier: "UUBL", @@ -228,10 +228,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, victreebel: { - tier: "UU", + tier: "RU", }, tentacool: { - tier: "LC", + tier: "ZU", }, tentacruel: { tier: "UU", @@ -240,16 +240,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, graveler: { - tier: "NFE", + tier: "PU", }, golem: { tier: "UU", }, ponyta: { - tier: "LC", + tier: "ZU", }, rapidash: { - tier: "UU", + tier: "RU", }, slowpoke: { tier: "LC", @@ -261,16 +261,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, magnemite: { - tier: "LC", + tier: "ZU", }, magneton: { tier: "OU", }, farfetchd: { - tier: "PU", + tier: "ZU", }, doduo: { - tier: "LC", + tier: "ZU", }, dodrio: { tier: "UUBL", @@ -294,7 +294,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, gastly: { - tier: "LC", + tier: "PU", }, haunter: { tier: "NU", @@ -303,13 +303,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, onix: { - tier: "LC", + tier: "ZU", }, steelix: { tier: "UUBL", }, drowzee: { - tier: "LC", + tier: "ZU", }, hypno: { tier: "UU", @@ -321,7 +321,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "PU", }, voltorb: { - tier: "LC", + tier: "ZU", }, electrode: { tier: "UU", @@ -333,7 +333,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UUBL", }, cubone: { - tier: "LC", + tier: "ZU", }, marowak: { tier: "UUBL", @@ -354,13 +354,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "PU", }, koffing: { - tier: "LC", + tier: "ZU", }, weezing: { tier: "UUBL", }, rhyhorn: { - tier: "LC", + tier: "ZU", }, rhydon: { tier: "UUBL", @@ -378,10 +378,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, horsea: { - tier: "LC", + tier: "ZU", }, seadra: { - tier: "NFE", + tier: "PU", }, kingdra: { tier: "UUBL", @@ -390,16 +390,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, seaking: { - tier: "PU", + tier: "ZU", }, staryu: { - tier: "LC", + tier: "ZU", }, starmie: { tier: "OU", }, mrmime: { - tier: "UU", + tier: "RU", }, scyther: { tier: "UU", @@ -408,13 +408,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UUBL", }, smoochum: { - tier: "LC", + tier: "ZU", }, jynx: { tier: "UUBL", }, elekid: { - tier: "LC", + tier: "ZU", }, electabuzz: { tier: "UU", @@ -423,7 +423,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, magmar: { - tier: "UU", + tier: "RU", }, pinsir: { tier: "UU", @@ -438,10 +438,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, lapras: { - tier: "UUBL", + tier: "UU", }, ditto: { - tier: "PU", + tier: "ZU", }, eevee: { tier: "LC", @@ -462,13 +462,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UUBL", }, porygon: { - tier: "LC", + tier: "ZU", }, porygon2: { tier: "UUBL", }, omanyte: { - tier: "LC", + tier: "PU", }, omastar: { tier: "UU", @@ -477,7 +477,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, kabutops: { - tier: "UU", + tier: "RU", }, aerodactyl: { tier: "OU", @@ -498,7 +498,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dragonair: { - tier: "NFE", + tier: "PU", }, dragonite: { tier: "UUBL", @@ -516,13 +516,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, meganium: { - tier: "UU", + tier: "RU", }, cyndaquil: { - tier: "LC", + tier: "ZU", }, quilava: { - tier: "NFE", + tier: "ZU", }, typhlosion: { tier: "UUBL", @@ -546,22 +546,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, noctowl: { - tier: "PU", + tier: "ZU", }, ledyba: { tier: "LC", }, ledian: { - tier: "PU", + tier: "ZU", }, spinarak: { tier: "LC", }, ariados: { - tier: "PU", + tier: "ZU", }, chinchou: { - tier: "LC", + tier: "ZU", }, lanturn: { tier: "UU", @@ -576,13 +576,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, xatu: { - tier: "UU", + tier: "RU", }, mareep: { tier: "LC", }, flaaffy: { - tier: "NFE", + tier: "ZU", }, ampharos: { tier: "UU", @@ -594,7 +594,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, azumarill: { - tier: "UU", + tier: "RU", }, sudowoodo: { tier: "NU", @@ -606,19 +606,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, jumpluff: { - tier: "UUBL", + tier: "RUBL", }, aipom: { - tier: "PU", + tier: "ZU", }, sunkern: { tier: "LC", }, sunflora: { - tier: "PU", + tier: "ZU", }, yanma: { - tier: "PU", + tier: "ZUBL", }, wooper: { tier: "LC", @@ -633,7 +633,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, unown: { - tier: "PU", + tier: "ZU", }, wynaut: { tier: "Uber", @@ -645,7 +645,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, pineco: { - tier: "LC", + tier: "PU", }, forretress: { tier: "OU", @@ -672,7 +672,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, sneasel: { - tier: "UU", + tier: "RU", }, teddiursa: { tier: "LC", @@ -690,10 +690,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, piloswine: { - tier: "PU", + tier: "PUBL", }, corsola: { - tier: "PU", + tier: "ZU", }, remoraid: { tier: "LC", @@ -702,16 +702,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, delibird: { - tier: "PU", + tier: "ZU", }, mantine: { - tier: "UU", + tier: "RU", }, skarmory: { tier: "OU", }, houndour: { - tier: "LC", + tier: "PU", }, houndoom: { tier: "UUBL", @@ -723,7 +723,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UUBL", }, stantler: { - tier: "UU", + tier: "RU", }, smeargle: { tier: "UUBL", @@ -762,7 +762,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, grovyle: { - tier: "NFE", + tier: "PU", }, sceptile: { tier: "UUBL", @@ -771,7 +771,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, combusken: { - tier: "NFE", + tier: "PU", }, blaziken: { tier: "UUBL", @@ -780,7 +780,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, marshtomp: { - tier: "NFE", + tier: "PU", }, swampert: { tier: "OU", @@ -789,13 +789,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, mightyena: { - tier: "PU", + tier: "ZU", }, zigzagoon: { - tier: "LC", + tier: "NFE", }, linoone: { - tier: "UU", + tier: "UUBL", }, wurmple: { tier: "LC", @@ -804,19 +804,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beautifly: { - tier: "PU", + tier: "ZU", }, cascoon: { tier: "NFE", }, dustox: { - tier: "PU", + tier: "ZU", }, lotad: { tier: "LC", }, lombre: { - tier: "NFE", + tier: "ZU", }, ludicolo: { tier: "UUBL", @@ -828,10 +828,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, shiftry: { - tier: "UU", + tier: "RU", }, taillow: { - tier: "LC", + tier: "ZU", }, swellow: { tier: "UUBL", @@ -855,7 +855,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, masquerain: { - tier: "PU", + tier: "ZU", }, shroomish: { tier: "LC", @@ -876,10 +876,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, ninjask: { - tier: "UU", + tier: "RUBL", }, shedinja: { - tier: "PU", + tier: "ZUBL", }, whismur: { tier: "LC", @@ -888,7 +888,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, exploud: { - tier: "UU", + tier: "RU", }, makuhita: { tier: "LC", @@ -897,13 +897,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UUBL", }, nosepass: { - tier: "PU", + tier: "ZU", }, skitty: { tier: "LC", }, delcatty: { - tier: "PU", + tier: "ZU", }, sableye: { tier: "NU", @@ -915,13 +915,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, lairon: { - tier: "NFE", + tier: "ZUBL", }, aggron: { - tier: "UU", + tier: "RU", }, meditite: { - tier: "LC", + tier: "ZU", }, medicham: { tier: "UUBL", @@ -939,10 +939,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "PU", }, volbeat: { - tier: "PU", + tier: "ZU", }, illumise: { - tier: "PU", + tier: "ZU", }, roselia: { tier: "NU", @@ -957,10 +957,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sharpedo: { - tier: "UU", + tier: "RU", }, wailmer: { - tier: "LC", + tier: "ZU", }, wailord: { tier: "NU", @@ -969,7 +969,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, camerupt: { - tier: "UU", + tier: "RU", }, torkoal: { tier: "NU", @@ -981,13 +981,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "UU", }, spinda: { - tier: "PU", + tier: "ZU", }, trapinch: { - tier: "LC", + tier: "PU", }, vibrava: { - tier: "NFE", + tier: "PU", }, flygon: { tier: "OU", @@ -1035,13 +1035,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, lileep: { - tier: "LC", + tier: "ZU", }, cradily: { tier: "UU", }, anorith: { - tier: "LC", + tier: "ZU", }, armaldo: { tier: "UUBL", @@ -1053,16 +1053,16 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", }, castform: { - tier: "PU", + tier: "ZU", }, castformsunny: { - tier: "PU", + tier: "ZU", }, castformrainy: { - tier: "PU", + tier: "ZU", }, castformsnowy: { - tier: "PU", + tier: "ZU", }, kecleon: { tier: "NU", @@ -1071,25 +1071,25 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, banette: { - tier: "UU", + tier: "RU", }, duskull: { - tier: "LC", + tier: "PU", }, dusclops: { tier: "UUBL", }, tropius: { - tier: "PU", + tier: "ZU", }, chimecho: { tier: "NU", }, absol: { - tier: "UU", + tier: "RU", }, snorunt: { - tier: "LC", + tier: "ZU", }, glalie: { tier: "NU", @@ -1098,13 +1098,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sealeo: { - tier: "NFE", + tier: "PU", }, walrein: { tier: "UU", }, clamperl: { - tier: "LC", + tier: "ZU", }, huntail: { tier: "NU", @@ -1116,13 +1116,13 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NU", }, luvdisc: { - tier: "PU", + tier: "ZU", }, bagon: { tier: "LC", }, shelgon: { - tier: "NFE", + tier: "ZUBL", }, salamence: { tier: "OU", diff --git a/data/mods/gen3/items.ts b/data/mods/gen3/items.ts index 1570b31ced3e..f3bc45365e95 100644 --- a/data/mods/gen3/items.ts +++ b/data/mods/gen3/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { aguavberry: { inherit: true, onUpdate() {}, @@ -28,7 +28,7 @@ export const Items: {[k: string]: ModdedItemData} = { onResidualSubOrder: 4, onResidual(pokemon) { if (pokemon.hp <= pokemon.maxhp / 2) { - if (this.runEvent('TryHeal', pokemon) && pokemon.useItem()) { + if (this.runEvent('TryHeal', pokemon, null, this.effect, 20) && pokemon.useItem()) { this.heal(20); } } diff --git a/data/mods/gen3/moves.ts b/data/mods/gen3/moves.ts index b1d3ff51f893..84efa1dbb19e 100644 --- a/data/mods/gen3/moves.ts +++ b/data/mods/gen3/moves.ts @@ -2,7 +2,7 @@ * Gen 3 moves */ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { absorb: { inherit: true, pp: 20, @@ -18,7 +18,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, ancientpower: { inherit: true, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + }, + assist: { + inherit: true, + flags: {metronome: 1, noassist: 1, nosleeptalk: 1}, }, astonish: { inherit: true, @@ -196,7 +200,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { disable: { inherit: true, accuracy: 55, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'disable', condition: { durationCallback() { @@ -253,7 +257,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Doom Desire", basePower: 120, category: "Physical", - flags: {}, + flags: {metronome: 1, futuremove: 1}, willCrit: false, type: '???', } as unknown as ActiveMove; @@ -269,7 +273,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, damage: damage, category: "Physical", - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, effectType: 'Move', type: '???', }, @@ -335,11 +339,33 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, fakeout: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, }, feintattack: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, + }, + flail: { + inherit: true, + basePowerCallback(pokemon) { + const ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1); + let bp; + if (ratio < 2) { + bp = 200; + } else if (ratio < 5) { + bp = 150; + } else if (ratio < 10) { + bp = 100; + } else if (ratio < 17) { + bp = 80; + } else if (ratio < 33) { + bp = 40; + } else { + bp = 20; + } + this.debug('BP: ' + bp); + return bp; + }, }, flash: { inherit: true, @@ -473,6 +499,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mirrormove: { inherit: true, + flags: {metronome: 1, failencore: 1, nosleeptalk: 1, noassist: 1}, onTryHit() { }, onHit(pokemon) { const noMirror = [ @@ -517,7 +544,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, overheat: { inherit: true, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, }, petaldance: { inherit: true, @@ -527,13 +554,35 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, pp: 20, }, + reversal: { + inherit: true, + basePowerCallback(pokemon) { + const ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1); + let bp; + if (ratio < 2) { + bp = 200; + } else if (ratio < 5) { + bp = 150; + } else if (ratio < 10) { + bp = 100; + } else if (ratio < 17) { + bp = 80; + } else if (ratio < 33) { + bp = 40; + } else { + bp = 20; + } + this.debug('BP: ' + bp); + return bp; + }, + }, rocksmash: { inherit: true, basePower: 20, }, sketch: { inherit: true, - flags: {bypasssub: 1, failencore: 1, noassist: 1, failmimic: 1}, + flags: {bypasssub: 1, failencore: 1, noassist: 1, failmimic: 1, nosketch: 1}, }, sleeptalk: { inherit: true, @@ -591,7 +640,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, struggle: { inherit: true, - flags: {contact: 1, protect: 1, noassist: 1, failencore: 1, failmimic: 1}, + flags: {contact: 1, protect: 1, noassist: 1, failencore: 1, failmimic: 1, nosketch: 1}, accuracy: 100, recoil: [1, 4], struggleRecoil: false, @@ -602,7 +651,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, taunt: { inherit: true, - flags: {protect: 1, bypasssub: 1}, + flags: {protect: 1, bypasssub: 1, metronome: 1}, condition: { duration: 2, onStart(target) { @@ -630,11 +679,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, teeterdance: { inherit: true, - flags: {protect: 1}, + flags: {protect: 1, metronome: 1}, }, tickle: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, uproar: { inherit: true, diff --git a/data/mods/gen3/random-data.json b/data/mods/gen3/random-data.json deleted file mode 100644 index 57e7f5df17eb..000000000000 --- a/data/mods/gen3/random-data.json +++ /dev/null @@ -1,882 +0,0 @@ -{ - "venusaur": { - "level": 82, - "moves": ["curse", "earthquake", "hiddenpowerrock", "leechseed", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"] - }, - "charizard": { - "level": 80, - "moves": ["bellydrum", "dragondance", "earthquake", "fireblast", "hiddenpowerflying", "substitute"] - }, - "blastoise": { - "level": 84, - "moves": ["earthquake", "icebeam", "mirrorcoat", "rest", "roar", "sleeptalk", "surf", "toxic"] - }, - "butterfree": { - "level": 91, - "moves": ["gigadrain", "hiddenpowerfire", "morningsun", "psychic", "sleeppowder", "stunspore", "toxic"] - }, - "beedrill": { - "level": 90, - "moves": ["brickbreak", "doubleedge", "endure", "hiddenpowerbug", "sludgebomb", "swordsdance"] - }, - "pidgeot": { - "level": 88, - "moves": ["aerialace", "hiddenpowerground", "quickattack", "return", "substitute", "toxic"] - }, - "raticate": { - "level": 88, - "moves": ["endeavor", "hiddenpowerground", "quickattack", "return", "reversal", "shadowball", "substitute"] - }, - "fearow": { - "level": 84, - "moves": ["agility", "batonpass", "drillpeck", "hiddenpowerground", "quickattack", "return", "substitute"] - }, - "arbok": { - "level": 90, - "moves": ["doubleedge", "earthquake", "hiddenpowerfire", "rest", "rockslide", "sleeptalk", "sludgebomb"] - }, - "pikachu": { - "level": 88, - "moves": ["hiddenpowerice", "substitute", "surf", "thunderbolt"] - }, - "raichu": { - "level": 84, - "moves": ["encore", "focuspunch", "hiddenpowergrass", "hiddenpowerice", "substitute", "surf", "thunderbolt", "thunderwave"] - }, - "sandslash": { - "level": 84, - "moves": ["earthquake", "hiddenpowerbug", "rapidspin", "rockslide", "swordsdance", "toxic"] - }, - "nidoqueen": { - "level": 84, - "moves": ["earthquake", "fireblast", "icebeam", "shadowball", "sludgebomb", "superpower"] - }, - "nidoking": { - "level": 84, - "moves": ["earthquake", "fireblast", "icebeam", "megahorn", "sludgebomb", "substitute", "thunderbolt"] - }, - "clefable": { - "level": 84, - "moves": ["calmmind", "counter", "icebeam", "return", "shadowball", "softboiled", "thunderbolt", "thunderwave"] - }, - "ninetales": { - "level": 83, - "moves": ["fireblast", "flamethrower", "hiddenpowergrass", "hypnosis", "substitute", "toxic", "willowisp"] - }, - "wigglytuff": { - "level": 90, - "moves": ["fireblast", "icebeam", "protect", "return", "thunderbolt", "toxic", "wish"] - }, - "vileplume": { - "level": 85, - "moves": ["aromatherapy", "hiddenpowerfire", "sleeppowder", "sludgebomb", "solarbeam", "sunnyday", "synthesis"] - }, - "parasect": { - "level": 91, - "moves": ["aromatherapy", "gigadrain", "hiddenpowerbug", "return", "spore", "stunspore", "swordsdance"] - }, - "venomoth": { - "level": 88, - "moves": ["batonpass", "hiddenpowerground", "signalbeam", "sleeppowder", "sludgebomb", "substitute"] - }, - "dugtrio": { - "level": 81, - "moves": ["aerialace", "earthquake", "hiddenpowerbug", "rockslide", "substitute"] - }, - "persian": { - "level": 84, - "moves": ["fakeout", "hiddenpowerground", "hypnosis", "irontail", "return", "shadowball", "substitute"] - }, - "golduck": { - "level": 83, - "moves": ["calmmind", "hiddenpowergrass", "hydropump", "hypnosis", "icebeam", "substitute", "surf"] - }, - "primeape": { - "level": 85, - "moves": ["bulkup", "crosschop", "earthquake", "hiddenpowerghost", "rockslide", "substitute"] - }, - "arcanine": { - "level": 83, - "moves": ["extremespeed", "fireblast", "flamethrower", "hiddenpowergrass", "rest", "sleeptalk", "toxic"] - }, - "poliwrath": { - "level": 84, - "moves": ["brickbreak", "bulkup", "hiddenpowerghost", "hydropump", "hypnosis", "icebeam", "substitute"] - }, - "alakazam": { - "level": 81, - "moves": ["calmmind", "encore", "firepunch", "icepunch", "psychic", "recover", "substitute"] - }, - "machamp": { - "level": 83, - "moves": ["bulkup", "crosschop", "earthquake", "hiddenpowerghost", "rest", "rockslide", "sleeptalk"] - }, - "victreebel": { - "level": 84, - "moves": ["hiddenpowerfire", "sleeppowder", "sludgebomb", "solarbeam", "sunnyday"] - }, - "tentacruel": { - "level": 83, - "moves": ["gigadrain", "haze", "hydropump", "icebeam", "rapidspin", "surf", "toxic"] - }, - "golem": { - "level": 84, - "moves": ["doubleedge", "earthquake", "explosion", "hiddenpowerbug", "rockslide", "toxic"] - }, - "rapidash": { - "level": 84, - "moves": ["fireblast", "hiddenpowergrass", "hiddenpowerrock", "substitute", "toxic"] - }, - "slowbro": { - "level": 82, - "moves": ["calmmind", "fireblast", "icebeam", "psychic", "rest", "sleeptalk", "surf", "thunderwave"] - }, - "magneton": { - "level": 81, - "moves": ["hiddenpowergrass", "hiddenpowerice", "rest", "sleeptalk", "thunderbolt", "toxic"] - }, - "farfetchd": { - "level": 91, - "moves": ["agility", "batonpass", "hiddenpowerflying", "return", "swordsdance"] - }, - "dodrio": { - "level": 82, - "moves": ["drillpeck", "flail", "hiddenpowerground", "quickattack", "return", "substitute"] - }, - "dewgong": { - "level": 88, - "moves": ["encore", "hiddenpowergrass", "icebeam", "rest", "sleeptalk", "surf", "toxic"] - }, - "muk": { - "level": 84, - "moves": ["brickbreak", "curse", "explosion", "fireblast", "hiddenpowerghost", "rest", "sludgebomb"] - }, - "cloyster": { - "level": 80, - "moves": ["explosion", "icebeam", "rapidspin", "spikes", "surf", "toxic"] - }, - "gengar": { - "level": 79, - "moves": ["destinybond", "explosion", "firepunch", "hypnosis", "icepunch", "substitute", "thunderbolt", "willowisp"] - }, - "hypno": { - "level": 84, - "moves": ["batonpass", "calmmind", "firepunch", "hypnosis", "protect", "psychic", "toxic", "wish"] - }, - "kingler": { - "level": 90, - "moves": ["doubleedge", "hiddenpowerghost", "hiddenpowerground", "surf", "swordsdance"] - }, - "electrode": { - "level": 84, - "moves": ["explosion", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderbolt", "thunderwave", "toxic"] - }, - "exeggutor": { - "level": 82, - "moves": ["explosion", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "psychic", "sleeppowder", "solarbeam", "sunnyday"] - }, - "marowak": { - "level": 82, - "moves": ["bonemerang", "doubleedge", "earthquake", "rockslide", "swordsdance"] - }, - "hitmonlee": { - "level": 85, - "moves": ["bulkup", "earthquake", "hiddenpowerghost", "highjumpkick", "machpunch", "rockslide", "substitute"] - }, - "hitmonchan": { - "level": 88, - "moves": ["bulkup", "earthquake", "hiddenpowerghost", "machpunch", "rapidspin", "skyuppercut", "toxic"] - }, - "lickitung": { - "level": 90, - "moves": ["counter", "healbell", "protect", "return", "seismictoss", "toxic", "wish"] - }, - "weezing": { - "level": 82, - "moves": ["explosion", "fireblast", "haze", "painsplit", "sludgebomb", "toxic", "willowisp"] - }, - "rhydon": { - "level": 83, - "moves": ["doubleedge", "earthquake", "megahorn", "rockslide", "substitute", "swordsdance"] - }, - "tangela": { - "level": 90, - "moves": ["hiddenpowergrass", "leechseed", "morningsun", "sleeppowder", "stunspore"] - }, - "kangaskhan": { - "level": 84, - "moves": ["earthquake", "fakeout", "focuspunch", "rest", "return", "shadowball", "substitute", "toxic"] - }, - "seaking": { - "level": 90, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "megahorn", "raindance"] - }, - "starmie": { - "level": 79, - "moves": ["hydropump", "icebeam", "psychic", "recover", "surf", "thunderbolt"] - }, - "mrmime": { - "level": 84, - "moves": ["barrier", "batonpass", "calmmind", "encore", "firepunch", "hypnosis", "psychic", "substitute", "thunderbolt"] - }, - "scyther": { - "level": 84, - "moves": ["aerialace", "batonpass", "hiddenpowerground", "hiddenpowerrock", "quickattack", "silverwind", "swordsdance"] - }, - "jynx": { - "level": 82, - "moves": ["calmmind", "hiddenpowerfire", "icebeam", "lovelykiss", "psychic", "substitute"] - }, - "electabuzz": { - "level": 84, - "moves": ["crosschop", "firepunch", "focuspunch", "hiddenpowergrass", "icepunch", "substitute", "thunderbolt"] - }, - "magmar": { - "level": 84, - "moves": ["crosschop", "fireblast", "flamethrower", "hiddenpowergrass", "psychic", "substitute", "thunderpunch"] - }, - "pinsir": { - "level": 83, - "moves": ["earthquake", "hiddenpowerbug", "return", "rockslide", "swordsdance"] - }, - "tauros": { - "level": 79, - "moves": ["doubleedge", "earthquake", "hiddenpowerghost", "hiddenpowerrock", "return"] - }, - "gyarados": { - "level": 79, - "moves": ["doubleedge", "dragondance", "earthquake", "hiddenpowerflying", "hydropump", "taunt"] - }, - "lapras": { - "level": 82, - "moves": ["healbell", "icebeam", "rest", "sleeptalk", "surf", "thunderbolt", "toxic"] - }, - "ditto": { - "level": 100, - "moves": ["transform"] - }, - "vaporeon": { - "level": 82, - "moves": ["icebeam", "protect", "surf", "toxic", "wish"] - }, - "jolteon": { - "level": 80, - "moves": ["batonpass", "hiddenpowerice", "substitute", "thunderbolt", "toxic", "wish"] - }, - "flareon": { - "level": 88, - "moves": ["doubleedge", "fireblast", "hiddenpowergrass", "protect", "shadowball", "toxic", "wish"] - }, - "omastar": { - "level": 84, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "raindance", "spikes", "surf"] - }, - "kabutops": { - "level": 84, - "moves": ["brickbreak", "doubleedge", "hiddenpowerground", "rockslide", "surf", "swordsdance"] - }, - "aerodactyl": { - "level": 79, - "moves": ["doubleedge", "earthquake", "hiddenpowerflying", "rockslide", "substitute"] - }, - "snorlax": { - "level": 77, - "moves": ["bodyslam", "curse", "earthquake", "rest", "return", "selfdestruct", "shadowball", "sleeptalk"] - }, - "articuno": { - "level": 82, - "moves": ["healbell", "hiddenpowerfire", "icebeam", "protect", "rest", "roar", "sleeptalk", "toxic"] - }, - "zapdos": { - "level": 78, - "moves": ["agility", "batonpass", "hiddenpowerice", "substitute", "thunderbolt", "thunderwave", "toxic"] - }, - "moltres": { - "level": 80, - "moves": ["fireblast", "flamethrower", "hiddenpowergrass", "morningsun", "substitute", "toxic", "willowisp"] - }, - "dragonite": { - "level": 81, - "moves": ["doubleedge", "dragondance", "earthquake", "flamethrower", "healbell", "hiddenpowerflying", "icebeam", "substitute"] - }, - "mewtwo": { - "level": 73, - "moves": ["calmmind", "flamethrower", "icebeam", "psychic", "recover", "substitute", "thunderbolt"] - }, - "mew": { - "level": 76, - "moves": ["calmmind", "explosion", "flamethrower", "icebeam", "psychic", "softboiled", "thunderbolt", "thunderwave", "transform"] - }, - "meganium": { - "level": 84, - "moves": ["bodyslam", "hiddenpowergrass", "leechseed", "synthesis", "toxic"] - }, - "typhlosion": { - "level": 82, - "moves": ["fireblast", "flamethrower", "focuspunch", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderpunch"] - }, - "feraligatr": { - "level": 84, - "moves": ["earthquake", "hiddenpowerflying", "hydropump", "rockslide", "swordsdance"] - }, - "furret": { - "level": 90, - "moves": ["doubleedge", "quickattack", "return", "reversal", "shadowball", "substitute", "trick"] - }, - "noctowl": { - "level": 90, - "moves": ["hypnosis", "psychic", "reflect", "toxic", "whirlwind"] - }, - "ledian": { - "level": 92, - "moves": ["agility", "batonpass", "lightscreen", "reflect", "silverwind", "swordsdance", "toxic"] - }, - "ariados": { - "level": 90, - "moves": ["agility", "batonpass", "signalbeam", "sludgebomb", "spiderweb", "toxic"] - }, - "crobat": { - "level": 82, - "moves": ["aerialace", "haze", "hiddenpowerground", "shadowball", "sludgebomb", "taunt", "toxic"] - }, - "lanturn": { - "level": 84, - "moves": ["confuseray", "icebeam", "rest", "sleeptalk", "surf", "thunderbolt", "thunderwave", "toxic"] - }, - "togetic": { - "level": 90, - "moves": ["charm", "encore", "flamethrower", "seismictoss", "softboiled", "thunderwave", "toxic"] - }, - "xatu": { - "level": 84, - "moves": ["batonpass", "calmmind", "hiddenpowerfire", "psychic", "reflect", "wish"] - }, - "ampharos": { - "level": 84, - "moves": ["firepunch", "healbell", "hiddenpowergrass", "hiddenpowerice", "thunderbolt", "toxic"] - }, - "bellossom": { - "level": 88, - "moves": ["hiddenpowergrass", "leechseed", "moonlight", "sleeppowder", "sludgebomb", "stunspore"] - }, - "azumarill": { - "level": 85, - "moves": ["brickbreak", "encore", "hiddenpowerghost", "hydropump", "return"] - }, - "sudowoodo": { - "level": 89, - "moves": ["brickbreak", "doubleedge", "earthquake", "explosion", "rockslide", "toxic"] - }, - "politoed": { - "level": 84, - "moves": ["hiddenpowergrass", "hypnosis", "icebeam", "rest", "surf", "toxic"] - }, - "jumpluff": { - "level": 83, - "moves": ["encore", "hiddenpowerflying", "leechseed", "sleeppowder", "substitute", "toxic"] - }, - "aipom": { - "level": 90, - "moves": ["batonpass", "doubleedge", "focuspunch", "shadowball", "substitute", "thunderwave"] - }, - "sunflora": { - "level": 91, - "moves": ["hiddenpowerfire", "leechseed", "razorleaf", "synthesis", "toxic"] - }, - "yanma": { - "level": 90, - "moves": ["hiddenpowerflying", "hypnosis", "reversal", "shadowball", "substitute"] - }, - "quagsire": { - "level": 84, - "moves": ["counter", "curse", "earthquake", "hiddenpowerrock", "icebeam", "rest", "surf", "toxic"] - }, - "espeon": { - "level": 81, - "moves": ["batonpass", "calmmind", "hiddenpowerfire", "morningsun", "psychic", "reflect"] - }, - "umbreon": { - "level": 82, - "moves": ["batonpass", "hiddenpowerdark", "protect", "toxic", "wish"] - }, - "murkrow": { - "level": 89, - "moves": ["doubleedge", "drillpeck", "hiddenpowerfighting", "hiddenpowerground", "meanlook", "perishsong", "protect", "shadowball", "substitute"] - }, - "slowking": { - "level": 84, - "moves": ["calmmind", "flamethrower", "icebeam", "psychic", "rest", "sleeptalk", "surf", "thunderwave"] - }, - "misdreavus": { - "level": 84, - "moves": ["calmmind", "hiddenpowerice", "meanlook", "perishsong", "protect", "substitute", "thunderbolt", "toxic"] - }, - "unown": { - "level": 100, - "moves": ["hiddenpowerpsychic"] - }, - "wobbuffet": { - "level": 77, - "moves": ["counter", "destinybond", "encore", "mirrorcoat"] - }, - "girafarig": { - "level": 84, - "moves": ["agility", "batonpass", "calmmind", "psychic", "substitute", "thunderbolt", "thunderwave", "wish"] - }, - "forretress": { - "level": 80, - "moves": ["earthquake", "explosion", "hiddenpowerbug", "rapidspin", "spikes", "toxic"] - }, - "dunsparce": { - "level": 88, - "moves": ["bodyslam", "curse", "headbutt", "rest", "rockslide", "shadowball", "thunderwave"] - }, - "gligar": { - "level": 84, - "moves": ["earthquake", "hiddenpowerflying", "irontail", "quickattack", "rockslide", "substitute", "swordsdance"] - }, - "steelix": { - "level": 82, - "moves": ["doubleedge", "earthquake", "explosion", "hiddenpowerrock", "irontail", "rest", "roar", "toxic"] - }, - "granbull": { - "level": 84, - "moves": ["bulkup", "earthquake", "healbell", "overheat", "rest", "return", "shadowball", "thunderwave"] - }, - "qwilfish": { - "level": 84, - "moves": ["destinybond", "hydropump", "selfdestruct", "shadowball", "sludgebomb", "spikes", "swordsdance"] - }, - "scizor": { - "level": 82, - "moves": ["agility", "batonpass", "hiddenpowerground", "hiddenpowerrock", "morningsun", "silverwind", "steelwing", "swordsdance"] - }, - "shuckle": { - "level": 91, - "moves": ["encore", "rest", "toxic", "wrap"] - }, - "heracross": { - "level": 80, - "moves": ["brickbreak", "focuspunch", "megahorn", "rest", "rockslide", "sleeptalk", "substitute", "swordsdance"] - }, - "sneasel": { - "level": 84, - "moves": ["brickbreak", "doubleedge", "hiddenpowerflying", "shadowball", "substitute", "swordsdance"] - }, - "ursaring": { - "level": 82, - "moves": ["earthquake", "focuspunch", "hiddenpowerghost", "return", "swordsdance"] - }, - "magcargo": { - "level": 90, - "moves": ["fireblast", "hiddenpowergrass", "rest", "sleeptalk", "toxic", "yawn"] - }, - "piloswine": { - "level": 90, - "moves": ["doubleedge", "earthquake", "icebeam", "protect", "rockslide", "toxic"] - }, - "corsola": { - "level": 91, - "moves": ["calmmind", "icebeam", "recover", "surf", "toxic"] - }, - "octillery": { - "level": 88, - "moves": ["fireblast", "hiddenpowergrass", "icebeam", "rockblast", "surf", "thunderwave"] - }, - "delibird": { - "level": 91, - "moves": ["aerialace", "focuspunch", "hiddenpowerground", "icebeam", "quickattack"] - }, - "mantine": { - "level": 84, - "moves": ["haze", "hiddenpowergrass", "icebeam", "raindance", "rest", "sleeptalk", "surf", "toxic"] - }, - "skarmory": { - "level": 80, - "moves": ["drillpeck", "hiddenpowerground", "protect", "rest", "sleeptalk", "spikes", "toxic", "whirlwind"] - }, - "houndoom": { - "level": 82, - "moves": ["crunch", "fireblast", "flamethrower", "hiddenpowergrass", "pursuit", "willowisp"] - }, - "kingdra": { - "level": 82, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "raindance", "substitute", "surf"] - }, - "donphan": { - "level": 82, - "moves": ["earthquake", "rapidspin", "rest", "rockslide", "sleeptalk", "toxic"] - }, - "porygon2": { - "level": 82, - "moves": ["icebeam", "recover", "return", "thunderbolt", "thunderwave", "toxic"] - }, - "stantler": { - "level": 84, - "moves": ["earthquake", "hypnosis", "return", "shadowball", "thunderbolt"] - }, - "smeargle": { - "level": 84, - "moves": ["encore", "explosion", "spikes", "spore"] - }, - "hitmontop": { - "level": 84, - "moves": ["bulkup", "earthquake", "hiddenpowerghost", "highjumpkick", "machpunch", "rockslide", "toxic"] - }, - "miltank": { - "level": 81, - "moves": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "toxic"] - }, - "blissey": { - "level": 80, - "moves": ["aromatherapy", "calmmind", "icebeam", "seismictoss", "softboiled", "thunderbolt", "thunderwave", "toxic"] - }, - "raikou": { - "level": 79, - "moves": ["calmmind", "crunch", "hiddenpowergrass", "hiddenpowerice", "rest", "sleeptalk", "substitute", "thunderbolt"] - }, - "entei": { - "level": 82, - "moves": ["bodyslam", "calmmind", "fireblast", "flamethrower", "hiddenpowergrass", "hiddenpowerice", "solarbeam", "substitute", "sunnyday"] - }, - "suicune": { - "level": 77, - "moves": ["calmmind", "icebeam", "rest", "sleeptalk", "substitute", "surf", "toxic"] - }, - "tyranitar": { - "level": 79, - "moves": ["dragondance", "earthquake", "fireblast", "focuspunch", "hiddenpowerbug", "icebeam", "pursuit", "rockslide", "substitute"] - }, - "lugia": { - "level": 73, - "moves": ["aeroblast", "calmmind", "earthquake", "icebeam", "recover", "substitute", "thunderbolt", "toxic"] - }, - "hooh": { - "level": 74, - "moves": ["calmmind", "earthquake", "recover", "sacredfire", "substitute", "thunderbolt", "toxic"] - }, - "celebi": { - "level": 79, - "moves": ["batonpass", "calmmind", "healbell", "hiddenpowergrass", "leechseed", "psychic", "recover"] - }, - "sceptile": { - "level": 82, - "moves": ["focuspunch", "hiddenpowerice", "leafblade", "leechseed", "substitute", "thunderpunch"] - }, - "blaziken": { - "level": 82, - "moves": ["endure", "fireblast", "hiddenpowerice", "reversal", "rockslide", "skyuppercut", "swordsdance", "thunderpunch"] - }, - "swampert": { - "level": 80, - "moves": ["earthquake", "hydropump", "icebeam", "protect", "rest", "rockslide", "sleeptalk", "surf", "toxic"] - }, - "mightyena": { - "level": 90, - "moves": ["crunch", "doubleedge", "healbell", "hiddenpowerfighting", "protect", "shadowball", "toxic"] - }, - "linoone": { - "level": 84, - "moves": ["bellydrum", "extremespeed", "flail", "hiddenpowerground", "shadowball", "substitute"] - }, - "beautifly": { - "level": 91, - "moves": ["hiddenpowerbug", "hiddenpowerflying", "morningsun", "stunspore", "substitute", "toxic"] - }, - "dustox": { - "level": 91, - "moves": ["hiddenpowerground", "lightscreen", "moonlight", "sludgebomb", "toxic", "whirlwind"] - }, - "ludicolo": { - "level": 82, - "moves": ["hiddenpowergrass", "icebeam", "leechseed", "raindance", "substitute", "surf"] - }, - "shiftry": { - "level": 85, - "moves": ["brickbreak", "explosion", "shadowball", "swordsdance"] - }, - "swellow": { - "level": 82, - "moves": ["aerialace", "doubleedge", "hiddenpowerfighting", "hiddenpowerground", "quickattack", "return"] - }, - "pelipper": { - "level": 88, - "moves": ["icebeam", "protect", "rest", "sleeptalk", "surf", "toxic"] - }, - "gardevoir": { - "level": 82, - "moves": ["calmmind", "firepunch", "hypnosis", "psychic", "substitute", "thunderbolt", "willowisp"] - }, - "masquerain": { - "level": 90, - "moves": ["hydropump", "icebeam", "stunspore", "substitute", "toxic"] - }, - "breloom": { - "level": 81, - "moves": ["focuspunch", "hiddenpowerghost", "hiddenpowerrock", "leechseed", "machpunch", "skyuppercut", "spore", "substitute", "swordsdance"] - }, - "vigoroth": { - "level": 87, - "moves": ["brickbreak", "bulkup", "earthquake", "return", "shadowball", "slackoff"] - }, - "slaking": { - "level": 81, - "moves": ["doubleedge", "earthquake", "focuspunch", "return", "shadowball"] - }, - "ninjask": { - "level": 84, - "moves": ["aerialace", "batonpass", "hiddenpowerrock", "protect", "silverwind", "substitute", "swordsdance"] - }, - "shedinja": { - "level": 90, - "moves": ["agility", "batonpass", "hiddenpowerground", "shadowball", "silverwind", "toxic"] - }, - "exploud": { - "level": 84, - "moves": ["earthquake", "flamethrower", "icebeam", "overheat", "return", "shadowball", "substitute"] - }, - "hariyama": { - "level": 82, - "moves": ["bulkup", "crosschop", "fakeout", "hiddenpowerghost", "rest", "rockslide", "sleeptalk"] - }, - "nosepass": { - "level": 91, - "moves": ["earthquake", "explosion", "rockslide", "thunderwave", "toxic"] - }, - "delcatty": { - "level": 91, - "moves": ["batonpass", "doubleedge", "healbell", "thunderwave", "wish"] - }, - "sableye": { - "level": 89, - "moves": ["knockoff", "recover", "seismictoss", "shadowball", "toxic"] - }, - "mawile": { - "level": 91, - "moves": ["batonpass", "brickbreak", "focuspunch", "hiddenpowersteel", "rockslide", "substitute", "swordsdance", "toxic"] - }, - "aggron": { - "level": 84, - "moves": ["doubleedge", "earthquake", "focuspunch", "irontail", "rockslide", "substitute", "thunderwave", "toxic"] - }, - "medicham": { - "level": 82, - "moves": ["brickbreak", "bulkup", "recover", "rockslide", "shadowball", "substitute"] - }, - "manectric": { - "level": 84, - "moves": ["crunch", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderbolt", "thunderwave"] - }, - "plusle": { - "level": 88, - "moves": ["agility", "batonpass", "encore", "hiddenpowergrass", "substitute", "thunderbolt", "toxic"] - }, - "minun": { - "level": 90, - "moves": ["batonpass", "encore", "hiddenpowerice", "lightscreen", "substitute", "thunderbolt", "wish"] - }, - "volbeat": { - "level": 91, - "moves": ["batonpass", "icepunch", "tailglow", "thunderbolt"] - }, - "illumise": { - "level": 90, - "moves": ["batonpass", "encore", "icepunch", "substitute", "thunderwave", "wish"] - }, - "roselia": { - "level": 90, - "moves": ["aromatherapy", "gigadrain", "hiddenpowerfire", "spikes", "stunspore", "synthesis"] - }, - "swalot": { - "level": 90, - "moves": ["encore", "explosion", "hiddenpowerground", "icebeam", "sludgebomb", "toxic", "yawn"] - }, - "sharpedo": { - "level": 84, - "moves": ["crunch", "earthquake", "endure", "hiddenpowerflying", "hydropump", "icebeam", "return"] - }, - "wailord": { - "level": 88, - "moves": ["hiddenpowergrass", "icebeam", "rest", "selfdestruct", "sleeptalk", "surf", "toxic"] - }, - "camerupt": { - "level": 84, - "moves": ["earthquake", "explosion", "fireblast", "rest", "rockslide", "sleeptalk", "toxic"] - }, - "torkoal": { - "level": 88, - "moves": ["explosion", "fireblast", "flamethrower", "hiddenpowergrass", "rest", "toxic", "yawn"] - }, - "grumpig": { - "level": 84, - "moves": ["calmmind", "firepunch", "icywind", "psychic", "substitute", "taunt"] - }, - "spinda": { - "level": 91, - "moves": ["bodyslam", "encore", "focuspunch", "shadowball", "substitute", "teeterdance", "toxic"] - }, - "flygon": { - "level": 80, - "moves": ["dragonclaw", "earthquake", "fireblast", "hiddenpowerbug", "rockslide", "substitute", "toxic"] - }, - "cacturne": { - "level": 89, - "moves": ["focuspunch", "hiddenpowerdark", "leechseed", "needlearm", "spikes", "substitute", "thunderpunch"] - }, - "altaria": { - "level": 84, - "moves": ["dragonclaw", "dragondance", "earthquake", "fireblast", "flamethrower", "haze", "hiddenpowerflying", "rest", "toxic"] - }, - "zangoose": { - "level": 82, - "moves": ["brickbreak", "quickattack", "return", "shadowball", "swordsdance"] - }, - "seviper": { - "level": 90, - "moves": ["crunch", "doubleedge", "earthquake", "flamethrower", "hiddenpowergrass", "sludgebomb"] - }, - "lunatone": { - "level": 84, - "moves": ["batonpass", "calmmind", "explosion", "hypnosis", "icebeam", "psychic"] - }, - "solrock": { - "level": 84, - "moves": ["earthquake", "explosion", "overheat", "reflect", "rockslide", "shadowball"] - }, - "whiscash": { - "level": 87, - "moves": ["earthquake", "hiddenpowerbug", "icebeam", "rest", "rockslide", "sleeptalk", "spark", "surf", "toxic"] - }, - "crawdaunt": { - "level": 88, - "moves": ["brickbreak", "crunch", "doubleedge", "hiddenpowerghost", "icebeam", "surf"] - }, - "claydol": { - "level": 80, - "moves": ["earthquake", "explosion", "icebeam", "psychic", "rapidspin", "toxic"] - }, - "cradily": { - "level": 84, - "moves": ["barrier", "earthquake", "hiddenpowergrass", "mirrorcoat", "recover", "rockslide", "toxic"] - }, - "armaldo": { - "level": 82, - "moves": ["doubleedge", "earthquake", "hiddenpowerbug", "rockslide", "swordsdance"] - }, - "milotic": { - "level": 79, - "moves": ["icebeam", "mirrorcoat", "recover", "surf", "toxic"] - }, - "castform": { - "level": 90, - "moves": ["flamethrower", "icebeam", "substitute", "thunderbolt", "thunderwave"] - }, - "kecleon": { - "level": 88, - "moves": ["brickbreak", "return", "shadowball", "thunderwave", "trick"] - }, - "banette": { - "level": 84, - "moves": ["destinybond", "endure", "hiddenpowerfighting", "knockoff", "shadowball", "willowisp"] - }, - "dusclops": { - "level": 84, - "moves": ["focuspunch", "icebeam", "painsplit", "rest", "shadowball", "sleeptalk", "substitute", "willowisp"] - }, - "tropius": { - "level": 90, - "moves": ["hiddenpowerfire", "solarbeam", "sunnyday", "synthesis"] - }, - "chimecho": { - "level": 88, - "moves": ["calmmind", "healbell", "hiddenpowerfire", "lightscreen", "psychic", "reflect", "toxic", "yawn"] - }, - "absol": { - "level": 85, - "moves": ["batonpass", "hiddenpowerfighting", "quickattack", "shadowball", "swordsdance"] - }, - "glalie": { - "level": 87, - "moves": ["earthquake", "explosion", "icebeam", "spikes", "toxic"] - }, - "walrein": { - "level": 84, - "moves": ["encore", "hiddenpowergrass", "icebeam", "rest", "sleeptalk", "surf", "toxic"] - }, - "huntail": { - "level": 88, - "moves": ["doubleedge", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"] - }, - "gorebyss": { - "level": 84, - "moves": ["hiddenpowerelectric", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"] - }, - "relicanth": { - "level": 88, - "moves": ["doubleedge", "earthquake", "hiddenpowerflying", "rest", "rockslide", "sleeptalk", "toxic"] - }, - "luvdisc": { - "level": 92, - "moves": ["icebeam", "protect", "substitute", "surf", "sweetkiss", "toxic"] - }, - "salamence": { - "level": 78, - "moves": ["brickbreak", "dragondance", "earthquake", "fireblast", "hiddenpowerflying", "rockslide"] - }, - "metagross": { - "level": 79, - "moves": ["agility", "earthquake", "explosion", "meteormash", "psychic", "rockslide"] - }, - "regirock": { - "level": 82, - "moves": ["curse", "earthquake", "explosion", "rest", "rockslide", "superpower", "thunderwave"] - }, - "regice": { - "level": 82, - "moves": ["explosion", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave", "toxic"] - }, - "registeel": { - "level": 82, - "moves": ["rest", "seismictoss", "sleeptalk", "toxic"] - }, - "latias": { - "level": 76, - "moves": ["calmmind", "dragonclaw", "hiddenpowerfire", "recover", "refresh", "toxic"] - }, - "latios": { - "level": 75, - "moves": ["calmmind", "dragonclaw", "hiddenpowerfire", "psychic", "recover", "thunderbolt"] - }, - "kyogre": { - "level": 73, - "moves": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder"] - }, - "groudon": { - "level": 73, - "moves": ["earthquake", "hiddenpowerbug", "overheat", "rockslide", "substitute", "swordsdance", "thunderwave"] - }, - "rayquaza": { - "level": 74, - "moves": ["dragondance", "earthquake", "extremespeed", "hiddenpowerflying", "overheat", "rockslide"] - }, - "jirachi": { - "level": 77, - "moves": ["bodyslam", "calmmind", "firepunch", "icepunch", "protect", "psychic", "substitute", "thunderbolt", "wish"] - }, - "deoxys": { - "level": 76, - "moves": ["extremespeed", "firepunch", "icebeam", "psychoboost", "shadowball", "superpower"] - }, - "deoxysattack": { - "level": 76, - "moves": ["extremespeed", "firepunch", "psychoboost", "shadowball", "superpower"] - }, - "deoxysdefense": { - "level": 76, - "moves": ["nightshade", "recover", "spikes", "taunt", "toxic"] - }, - "deoxysspeed": { - "level": 76, - "moves": ["calmmind", "icebeam", "psychic", "recover", "spikes", "taunt", "toxic"] - } -} diff --git a/data/mods/gen3/random-teams.ts b/data/mods/gen3/random-teams.ts deleted file mode 100644 index 8fe0075e7fc2..000000000000 --- a/data/mods/gen3/random-teams.ts +++ /dev/null @@ -1,695 +0,0 @@ -import RandomGen4Teams from '../gen4/random-teams'; -import {Utils} from '../../../lib'; -import {PRNG, PRNGSeed} from '../../../sim/prng'; -import type {MoveCounter, OldRandomBattleSpecies} from '../gen8/random-teams'; - -export class RandomGen3Teams extends RandomGen4Teams { - battleHasDitto: boolean; - battleHasWobbuffet: boolean; - - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); - - constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { - super(format, prng); - this.battleHasDitto = false; - this.battleHasWobbuffet = false; - this.moveEnforcementCheckers = { - Bug: (movePool, moves, abilities, types, counter, species) => ( - movePool.includes('megahorn') || (!species.types[1] && movePool.includes('hiddenpowerbug')) - ), - Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), - Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), - Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), - Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), - Normal: (movePool, moves, abilities, types, counter, species) => { - if (species.id === 'blissey' && movePool.includes('softboiled')) return true; - return !counter.get('Normal') && counter.setupType === 'Physical'; - }, - Psychic: (movePool, moves, abilities, types, counter, species) => ( - types.has('Psychic') && - (movePool.includes('psychic') || movePool.includes('psychoboost')) && - species.baseStats.spa >= 100 - ), - Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.baseStats.atk >= 100, - Water: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Water') && counter.setupType !== 'Physical' && species.baseStats.spa >= 60 - ), - // If the Pokémon has this move, the other move will be forced - protect: movePool => movePool.includes('wish'), - sunnyday: movePool => movePool.includes('solarbeam'), - sleeptalk: movePool => movePool.includes('rest'), - }; - } - - shouldCullMove( - move: Move, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - ): {cull: boolean, isSetup?: boolean} { - const restTalk = moves.has('rest') && moves.has('sleeptalk'); - - switch (move.id) { - // Set up once and only if we have the moves for it - case 'bulkup': case 'curse': case 'dragondance': case 'swordsdance': - return { - cull: ( - (counter.setupType !== 'Physical' || counter.get('physicalsetup') > 1) || - (counter.get('Physical') + counter.get('physicalpool') < 2 && !moves.has('batonpass') && !restTalk) - ), - isSetup: true, - }; - case 'calmmind': - return { - cull: ( - counter.setupType !== 'Special' || - (counter.get('Special') + counter.get('specialpool') < 2 && !moves.has('batonpass') && - !moves.has('refresh') && !restTalk) - ), - isSetup: true, - }; - case 'agility': - return { - cull: (counter.damagingMoves.size < 2 && !moves.has('batonpass')) || moves.has('substitute') || restTalk, - isSetup: !counter.setupType, - }; - - // Not very useful without their supporting moves - case 'amnesia': case 'sleeptalk': - if (moves.has('roar') || moves.has('whirlwind')) return {cull: true}; - if (!moves.has('rest')) return {cull: true}; - if (movePool.length > 1) { - const rest = movePool.indexOf('rest'); - if (rest >= 0) this.fastPop(movePool, rest); - } - break; - case 'barrier': - return {cull: !moves.has('calmmind') && !moves.has('batonpass') && !moves.has('mirrorcoat')}; - case 'batonpass': - return {cull: ( - (!counter.setupType && !counter.get('speedsetup')) && - ['meanlook', 'spiderweb', 'substitute', 'wish'].every(m => !moves.has(m)) - )}; - case 'endeavor': case 'flail': case 'reversal': - return {cull: restTalk || (!moves.has('endure') && !moves.has('substitute'))}; - case 'endure': - return {cull: movePool.includes('destinybond')}; - case 'extremespeed': case 'raindance': case 'sunnyday': - return {cull: counter.damagingMoves.size < 2 || moves.has('rest')}; - case 'focuspunch': - return {cull: ( - (counter.damagingMoves.size < 2 || moves.has('rest') || counter.setupType && !moves.has('spore')) || - (!moves.has('substitute') && (counter.get('Physical') < 4 || moves.has('fakeout'))) || - // Breloom likes to have coverage - (species.id === 'breloom' && (moves.has('machpunch') || moves.has('skyuppercut'))) - )}; - case 'moonlight': - return {cull: moves.has('wish') || moves.has('protect')}; - case 'perishsong': - return {cull: !moves.has('meanlook') && !moves.has('spiderweb')}; - case 'protect': - return {cull: !abilities.has('Speed Boost') && ['perishsong', 'toxic', 'wish'].every(m => !moves.has(m))}; - case 'refresh': - return {cull: !counter.setupType}; - case 'rest': - return {cull: ( - movePool.includes('sleeptalk') || - (!moves.has('sleeptalk') && (!!counter.get('recovery') || movePool.includes('curse'))) - )}; - case 'solarbeam': - if (movePool.length > 1) { - const sunnyday = movePool.indexOf('sunnyday'); - if (sunnyday >= 0) this.fastPop(movePool, sunnyday); - } - return {cull: !moves.has('sunnyday')}; - - // Bad after setup - case 'aromatherapy': case 'healbell': - return {cull: moves.has('rest') || !!teamDetails.statusCure}; - case 'confuseray': - return {cull: !!counter.setupType || restTalk}; - case 'counter': case 'mirrorcoat': - return {cull: !!counter.setupType || ['rest', 'substitute', 'toxic'].some(m => moves.has(m))}; - case 'destinybond': - return {cull: !!counter.setupType || moves.has('explosion') || moves.has('selfdestruct')}; - case 'doubleedge': case 'facade': case 'fakeout': case 'waterspout': - return {cull: ( - (!types.has(move.type) && counter.get('Status') >= 1) || - (move.id === 'doubleedge' && moves.has('return')) - )}; - case 'encore': case 'painsplit': case 'recover': case 'yawn': - return {cull: restTalk}; - case 'explosion': case 'machpunch': case 'selfdestruct': - // Snorlax doesn't want to roll selfdestruct as its only STAB move - const snorlaxCase = species.id === 'snorlax' && !moves.has('return') && !moves.has('bodyslam'); - return {cull: snorlaxCase || moves.has('rest') || moves.has('substitute') || !!counter.get('recovery')}; - case 'haze': - return {cull: !!counter.setupType || moves.has('raindance') || restTalk}; - case 'icywind': case 'pursuit': case 'superpower': case 'transform': - return {cull: !!counter.setupType || moves.has('rest')}; - case 'leechseed': - return {cull: !!counter.setupType || moves.has('explosion')}; - case 'stunspore': - return {cull: moves.has('sunnyday') || moves.has('toxic')}; - case 'lightscreen': - return {cull: !!counter.setupType || !!counter.get('speedsetup')}; - case 'meanlook': case 'spiderweb': - return {cull: !!counter.get('speedsetup') || (!moves.has('batonpass') && !moves.has('perishsong'))}; - case 'morningsun': - return {cull: counter.get('speedsetup') >= 1}; - case 'quickattack': - return {cull: ( - !!counter.get('speedsetup') || - moves.has('substitute') || - (!types.has('Normal') && !!counter.get('Status')) - )}; - case 'rapidspin': - return {cull: !!counter.setupType || moves.has('rest') || !!teamDetails.rapidSpin}; - case 'reflect': - return {cull: !!counter.setupType || !!counter.get('speedsetup')}; - case 'roar': case 'whirlwind': - return {cull: moves.has('sleeptalk') || moves.has('rest')}; - case 'seismictoss': - return {cull: !!counter.setupType || moves.has('thunderbolt')}; - case 'spikes': - return {cull: !!counter.setupType || moves.has('substitute') || restTalk || !!teamDetails.spikes}; - case 'substitute': - const restOrDD = moves.has('rest') || (moves.has('dragondance') && !moves.has('bellydrum')); - // This cull condition otherwise causes mono-solarbeam Entei - return {cull: restOrDD || (species.id !== 'entei' && !moves.has('batonpass') && movePool.includes('calmmind'))}; - case 'thunderwave': - return {cull: !!counter.setupType || moves.has('bodyslam') || - moves.has('substitute') && movePool.includes('toxic') || restTalk}; - case 'toxic': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - ['endure', 'focuspunch', 'raindance', 'yawn', 'hypnosis'].some(m => moves.has(m)) - )}; - case 'trick': - return {cull: counter.get('Status') > 1}; - case 'willowisp': - return {cull: !!counter.setupType || moves.has('hypnosis') || moves.has('toxic')}; - - // Bit redundant to have both - case 'bodyslam': - return {cull: moves.has('return') && !!counter.get('Status')}; - case 'headbutt': - return {cull: !moves.has('bodyslam') && !moves.has('thunderwave')}; - case 'return': - return {cull: ( - moves.has('endure') || - (moves.has('substitute') && moves.has('flail')) || - (moves.has('bodyslam') && !counter.get('Status')) - )}; - case 'fireblast': - return {cull: moves.has('flamethrower') && !!counter.get('Status')}; - case 'flamethrower': - return {cull: moves.has('fireblast') && !counter.get('Status')}; - case 'overheat': - return {cull: moves.has('flamethrower') || moves.has('substitute')}; - case 'hydropump': - return {cull: moves.has('surf') && !!counter.get('Status')}; - case 'surf': - return {cull: moves.has('hydropump') && !counter.get('Status')}; - case 'gigadrain': - return {cull: moves.has('morningsun') || moves.has('toxic')}; - case 'hiddenpower': - const stabCondition = types.has(move.type) && counter.get(move.type) > 1 && ( - (moves.has('substitute') && !counter.setupType && !moves.has('toxic')) || - // This otherwise causes STABless meganium - (species.id !== 'meganium' && moves.has('toxic') && !moves.has('substitute')) || - restTalk - ); - return {cull: stabCondition || (move.type === 'Grass' && moves.has('sunnyday') && moves.has('solarbeam'))}; - case 'brickbreak': case 'crosschop': case 'skyuppercut': - return {cull: moves.has('substitute') && (moves.has('focuspunch') || movePool.includes('focuspunch'))}; - case 'earthquake': - return {cull: moves.has('bonemerang')}; - } - - return {cull: false}; - } - - - getItem( - ability: string, - types: Set, - moves: Set, - counter: MoveCounter, - species: Species - ) { - // First, the high-priority items - if (species.name === 'Ditto') return this.sample(['Metal Powder', 'Quick Claw']); - if (species.name === 'Farfetch\u2019d') return 'Stick'; - if (species.name === 'Marowak') return 'Thick Club'; - if (species.name === 'Pikachu') return 'Light Ball'; - if (species.name === 'Shedinja') return 'Lum Berry'; - if (species.name === 'Unown') return 'Twisted Spoon'; - - if (moves.has('trick')) return 'Choice Band'; - if (moves.has('rest') && !moves.has('sleeptalk') && !['Early Bird', 'Natural Cure', 'Shed Skin'].includes(ability)) { - return 'Chesto Berry'; - } - - // Medium priority items - if (moves.has('dragondance') && ability !== 'Natural Cure') return 'Lum Berry'; - if ((moves.has('bellydrum') && counter.get('Physical') - counter.get('priority') > 1) || ( - ((moves.has('swordsdance') && counter.get('Status') < 2) || (moves.has('bulkup') && moves.has('substitute'))) && - !counter.get('priority') && - species.baseStats.spe >= 60 && species.baseStats.spe <= 95 - )) { - return 'Salac Berry'; - } - if (moves.has('endure') || ( - moves.has('substitute') && - ['bellydrum', 'endeavor', 'flail', 'reversal'].some(m => moves.has(m)) - )) { - return ( - species.baseStats.spe <= 100 && ability !== 'Speed Boost' && !counter.get('speedsetup') && !moves.has('focuspunch') - ) ? 'Salac Berry' : 'Liechi Berry'; - } - if (moves.has('substitute') && counter.get('Physical') >= 3 && species.baseStats.spe >= 120) return 'Liechi Berry'; - if ((moves.has('substitute') || moves.has('raindance')) && counter.get('Special') >= 3) return 'Petaya Berry'; - if (counter.get('Physical') >= 4 && !moves.has('fakeout')) return 'Choice Band'; - if (counter.get('Physical') >= 3 && !moves.has('rapidspin') && ( - ['fireblast', 'icebeam', 'overheat'].some(m => moves.has(m)) || - Array.from(moves).some(m => { - const moveData = this.dex.moves.get(m); - return moveData.category === 'Special' && types.has(moveData.type); - }) - )) { - return 'Choice Band'; - } - if (moves.has('psychoboost')) return 'White Herb'; - - // Default to Leftovers - return 'Leftovers'; - } - - shouldCullAbility( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - ) { - switch (ability) { - case 'Chlorophyll': - return !moves.has('sunnyday') && !teamDetails['sun']; - case 'Compound Eyes': - return !counter.get('inaccurate'); - case 'Hustle': - return counter.get('Physical') < 2; - case 'Lightning Rod': - return species.types.includes('Ground'); - case 'Overgrow': - return !counter.get('Grass'); - case 'Rock Head': - return !counter.get('recoil'); - case 'Sand Veil': - return !teamDetails['sand']; - case 'Serene Grace': - return species.id === 'blissey'; - case 'Soundproof': case 'Sturdy': - // Electrode prefers Static, and Sturdy is bad. - return true; - case 'Swift Swim': - return !moves.has('raindance') && !teamDetails['rain']; - case 'Swarm': - return !counter.get('Bug'); - case 'Torrent': - return !counter.get('Water'); - case 'Water Absorb': - return abilities.has('Swift Swim'); - } - - return false; - } - - randomSet(species: string | Species, teamDetails: RandomTeamsTypes.TeamDetails = {}): RandomTeamsTypes.RandomSet { - species = this.dex.species.get(species); - let forme = species.name; - - const data = this.randomData[species.id]; - - if (typeof species.battleOnly === 'string') forme = species.battleOnly; - - const movePool = (data.moves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice(); - const rejectedPool = []; - const moves = new Set(); - let ability = ''; - const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; - const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; - let availableHP = 0; - for (const setMoveid of movePool) { - if (setMoveid.startsWith('hiddenpower')) availableHP++; - } - - const types = new Set(species.types); - - const abilities = new Set(Object.values(species.abilities)); - - let counter: MoveCounter; - // We use a special variable to track Hidden Power - // so that we can check for all Hidden Powers at once - let hasHiddenPower = false; - - do { - // Choose next 4 moves from learnset/viable moves and add them to moves list: - while (moves.size < this.maxMoveCount && movePool.length) { - const moveid = this.sampleNoReplace(movePool); - if (moveid.startsWith('hiddenpower')) { - availableHP--; - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - while (moves.size < this.maxMoveCount && rejectedPool.length) { - const moveid = this.sampleNoReplace(rejectedPool); - if (moveid.startsWith('hiddenpower')) { - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - counter = this.queryMoves(moves, species.types, abilities, movePool); - - // Iterate through the moves again, this time to cull them: - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - - let {cull, isSetup} = this.shouldCullMove(move, types, moves, abilities, counter, movePool, teamDetails, species); - - // This move doesn't satisfy our setup requirements: - if ( - (counter.setupType === 'Physical' && move.category === 'Special' && !types.has(move.type) && move.type !== 'Fire') || - (counter.setupType === 'Special' && move.category === 'Physical' && moveid !== 'superpower') - ) { - cull = true; - } - const moveIsRejectable = ( - !move.weather && - (move.category !== 'Status' || !move.flags.heal) && - (counter.setupType || !move.stallingMove) && - // These moves cannot be rejected in favor of a forced move - !['batonpass', 'sleeptalk', 'solarbeam', 'substitute', 'sunnyday'].includes(moveid) && - (move.category === 'Status' || !types.has(move.type) || (move.basePower && move.basePower < 40 && !move.multihit)) - ); - // Pokemon should usually have at least one STAB move - const requiresStab = ( - !counter.get('stab') && - !moves.has('seismictoss') && !moves.has('nightshade') && - species.id !== 'castform' && species.id !== 'umbreon' && - // If a Flying-type has Psychic, it doesn't need STAB - !(moves.has('psychic') && types.has('Flying')) && - !(types.has('Ghost') && species.baseStats.spa > species.baseStats.atk) && - !( - // With Calm Mind, Lugia and pure Normal-types are fine without STAB - counter.setupType === 'Special' && ( - species.id === 'lugia' || - (types.has('Normal') && species.types.length < 2) - ) - ) && - !( - // With Swords Dance, Dark-types and pure Water-types are fine without STAB - counter.setupType === 'Physical' && - ((types.has('Water') && species.types.length < 2) || types.has('Dark')) - ) && - counter.get('physicalpool') + counter.get('specialpool') > 0 - ); - - const runEnforcementChecker = (checkerName: string) => { - if (!this.moveEnforcementCheckers[checkerName]) return false; - return this.moveEnforcementCheckers[checkerName]( - movePool, moves, abilities, types, counter, species as Species, teamDetails - ); - }; - - if (!cull && !isSetup && moveIsRejectable) { - // There may be more important moves that this Pokemon needs - if ( - requiresStab || - (counter.setupType && counter.get(counter.setupType) < 2 && !moves.has('refresh')) || - (moves.has('substitute') && movePool.includes('morningsun')) || - ['meteormash', 'spore', 'recover'].some(m => movePool.includes(m)) - ) { - cull = true; - } else { - // Pokemon should have moves that benefit their typing and their other moves - for (const type of types) { - if (runEnforcementChecker(type)) { - cull = true; - } - } - for (const m of moves) { - if (runEnforcementChecker(m)) cull = true; - } - } - } - - // Sleep Talk shouldn't be selected without Rest - if (moveid === 'rest' && cull) { - const sleeptalk = movePool.indexOf('sleeptalk'); - if (sleeptalk >= 0) { - if (movePool.length < 2) { - cull = false; - } else { - this.fastPop(movePool, sleeptalk); - } - } - } - - // Remove rejected moves from the move list - const moveIsHP = moveid.startsWith('hiddenpower'); - if ( - cull && - (movePool.length - availableHP || availableHP && (moveIsHP || !hasHiddenPower)) - ) { - if (move.category !== 'Status' && !move.damage && (!moveIsHP || !availableHP)) { - rejectedPool.push(moveid); - } - if (moveIsHP) hasHiddenPower = false; - moves.delete(moveid); - break; - } - if (cull && rejectedPool.length) { - if (moveIsHP) hasHiddenPower = false; - moves.delete(moveid); - break; - } - } - } while (moves.size < this.maxMoveCount && (movePool.length || rejectedPool.length)); - - if (hasHiddenPower) { - let hpType; - for (const move of moves) { - if (move.startsWith('hiddenpower')) hpType = move.substr(11); - } - if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); - const HPivs = this.dex.types.get(hpType).HPivs; - let iv: StatID; - for (iv in HPivs) { - ivs[iv] = HPivs[iv]!; - } - } - - const abilityData = Array.from(abilities).map(a => this.dex.abilities.get(a)).filter(a => a.gen === 3); - Utils.sortBy(abilityData, abil => -abil.rating); - let ability0 = abilityData[0]; - let ability1 = abilityData[1]; - if (abilityData[1]) { - if (ability0.rating <= ability1.rating && this.randomChance(1, 2)) { - [ability0, ability1] = [ability1, ability0]; - } else if (ability0.rating - 0.6 <= ability1.rating && this.randomChance(2, 3)) { - [ability0, ability1] = [ability1, ability0]; - } - ability = ability0.name; - - while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) { - if (ability === ability0.name && ability1.rating > 1) { - ability = ability1.name; - } else { - // Default to the highest rated ability if all are rejected - ability = abilityData[0].name; - break; - } - } - } else { - ability = abilityData[0].name; - } - - const item = this.getItem(ability, types, moves, counter, species); - const level = this.adjustLevel || data.level || (species.nfe ? 90 : 80); - - // Prepare optimal HP - let hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); - if (moves.has('substitute') && ['endeavor', 'flail', 'reversal'].some(m => moves.has(m))) { - // Endeavor/Flail/Reversal users should be able to use four Substitutes - if (hp % 4 === 0) evs.hp -= 4; - } else if (moves.has('substitute') && (item === 'Salac Berry' || item === 'Petaya Berry' || item === 'Liechi Berry')) { - // Other pinch berry holders should have berries activate after three Substitutes - while (hp % 4 > 0) { - evs.hp -= 4; - hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); - } - } - - // Minimize confusion damage - if (!counter.get('Physical') && !moves.has('transform')) { - evs.atk = 0; - ivs.atk = hasHiddenPower ? ivs.atk - 28 : 0; - } - - return { - name: species.baseSpecies, - species: forme, - gender: species.gender, - moves: Array.from(moves), - ability: ability, - evs: evs, - ivs: ivs, - item: item, - level, - shiny: this.randomChance(1, 1024), - }; - } - - randomTeam() { - this.enforceNoDirectCustomBanlistChanges(); - - const seed = this.prng.seed; - const ruleTable = this.dex.formats.getRuleTable(this.format); - const pokemon: RandomTeamsTypes.RandomSet[] = []; - - // For Monotype - const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); - const typePool = this.dex.types.names(); - const type = this.forceMonotype || this.sample(typePool); - - const baseFormes: {[k: string]: number} = {}; - const tierCount: {[k: string]: number} = {}; - const typeCount: {[k: string]: number} = {}; - const typeComboCount: {[k: string]: number} = {}; - const typeWeaknesses: {[k: string]: number} = {}; - const teamDetails: RandomTeamsTypes.TeamDetails = {}; - - const pokemonPool = this.getPokemonPool(type, pokemon, isMonotype); - - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - if (!species.exists || !this.randomData[species.id]?.moves) continue; - // Limit to one of each species (Species Clause) - if (baseFormes[species.baseSpecies]) continue; - - // Limit to one Wobbuffet per battle (not just per team) - if (species.name === 'Wobbuffet' && this.battleHasWobbuffet) continue; - // Limit to one Ditto per battle in Gen 2 - if (this.dex.gen < 3 && species.name === 'Ditto' && this.battleHasDitto) continue; - - const tier = species.tier; - const types = species.types; - const typeCombo = types.slice().sort().join(); - - if (!isMonotype && !this.forceMonotype) { - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - - // Limit two Pokemon per tier - if (tierCount[tier] >= 2 * limitFactor) continue; - - // Limit two of any type - let skip = false; - for (const typeName of types) { - if (typeCount[typeName] >= 2 * limitFactor) { - skip = true; - break; - } - } - if (skip) continue; - - // Limit three weak to any type - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; - if (typeWeaknesses[typeName] >= 3 * limitFactor) { - skip = true; - break; - } - } - } - if (skip) continue; - - // Limit one of any type combination - if (!this.forceMonotype && typeComboCount[typeCombo] >= 1 * limitFactor) continue; - } - - // Okay, the set passes, add it to our team - const set = this.randomSet(species, teamDetails); - pokemon.push(set); - - // Now that our Pokemon has passed all checks, we can increment our counters - baseFormes[species.baseSpecies] = 1; - - // Increment tier counter - if (tierCount[tier]) { - tierCount[tier]++; - } else { - tierCount[tier] = 1; - } - - // Increment type counters - for (const typeName of types) { - if (typeName in typeCount) { - typeCount[typeName]++; - } else { - typeCount[typeName] = 1; - } - } - if (typeCombo in typeComboCount) { - typeComboCount[typeCombo]++; - } else { - typeComboCount[typeCombo] = 1; - } - - // Increment weakness counter - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - typeWeaknesses[typeName]++; - } - } - - // Updateeam details - if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; - if (set.ability === 'Sand Stream') teamDetails.sand = 1; - if (set.moves.includes('spikes')) teamDetails.spikes = 1; - if (set.moves.includes('rapidspin')) teamDetails.rapidSpin = 1; - if (set.moves.includes('aromatherapy') || set.moves.includes('healbell')) teamDetails.statusCure = 1; - - // In Gen 3, Shadow Tag users can prevent each other from switching out, possibly causing and endless battle or at least causing a long stall war - // To prevent this, we prevent more than one Wobbuffet in a single battle. - if (set.ability === 'Shadow Tag') this.battleHasWobbuffet = true; - if (species.id === 'ditto') this.battleHasDitto = true; - } - - if (pokemon.length < this.maxTeamSize && !isMonotype && !this.forceMonotype && pokemon.length < 12) { - throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); - } - - return pokemon; - } -} - -export default RandomGen3Teams; diff --git a/data/mods/gen3/rulesets.ts b/data/mods/gen3/rulesets.ts index 8169d853c299..1f10237c4bc2 100644 --- a/data/mods/gen3/rulesets.ts +++ b/data/mods/gen3/rulesets.ts @@ -1,4 +1,4 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { effectType: 'ValidatorRule', name: 'Standard', diff --git a/data/mods/gen3/scripts.ts b/data/mods/gen3/scripts.ts index f85af9d99eb6..9cacecfc4963 100644 --- a/data/mods/gen3/scripts.ts +++ b/data/mods/gen3/scripts.ts @@ -17,7 +17,9 @@ export const Scripts: ModdedBattleScriptsData = { inherit: true, getActionSpeed() { let speed = this.getStat('spe', false, false); - if (this.battle.field.getPseudoWeather('trickroom')) { + const trickRoomCheck = this.battle.ruleTable.has('twisteddimensionmod') ? + !this.battle.field.getPseudoWeather('trickroom') : this.battle.field.getPseudoWeather('trickroom'); + if (trickRoomCheck) { speed = -speed; } if (this.battle.quickClawRoll && this.hasItem('quickclaw')) { @@ -70,12 +72,17 @@ export const Scripts: ModdedBattleScriptsData = { baseDamage = Math.floor(this.battle.runEvent('ModifyDamagePhase2', pokemon, target, move, baseDamage)); // STAB - if (move.forceSTAB || type !== '???' && pokemon.hasType(type)) { - // The "???" type never gets STAB - // Not even if you Roost in Gen 4 and somehow manage to use - // Struggle in the same turn. - // (On second thought, it might be easier to get a MissingNo.) - baseDamage = this.battle.modify(baseDamage, move.stab || 1.5); + // The "???" type never gets STAB + // Not even if you Roost in Gen 4 and somehow manage to use + // Struggle in the same turn. + // (On second thought, it might be easier to get a MissingNo.) + if (type !== '???') { + let stab: number | [number, number] = 1; + if (move.forceSTAB || pokemon.hasType(type)) { + stab = 1.5; + } + stab = this.battle.runEvent('ModifySTAB', pokemon, target, move, stab); + baseDamage = this.battle.modify(baseDamage, stab); } // types let typeMod = target.runEffectiveness(move); @@ -110,7 +117,9 @@ export const Scripts: ModdedBattleScriptsData = { return Math.floor(baseDamage); }, - useMoveInner(moveOrMoveName, pokemon, target, sourceEffect, zMove) { + useMoveInner(moveOrMoveName, pokemon, options) { + let sourceEffect = options?.sourceEffect; + let target = options?.target; if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; if (sourceEffect && sourceEffect.id === 'instruct') sourceEffect = null; @@ -451,7 +460,7 @@ export const Scripts: ModdedBattleScriptsData = { } if (move.recoil && move.totalDamage) { - this.battle.damage(this.calcRecoilDamage(move.totalDamage, move), pokemon, target, 'recoil'); + this.battle.damage(this.calcRecoilDamage(move.totalDamage, move, pokemon), pokemon, target, 'recoil'); } if (target && pokemon !== target) target.gotAttacked(move, damage, pokemon); diff --git a/data/mods/gen4/abilities.ts b/data/mods/gen4/abilities.ts index f72c7dab9d3e..2e71d1a2eab9 100644 --- a/data/mods/gen4/abilities.ts +++ b/data/mods/gen4/abilities.ts @@ -1,8 +1,10 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { airlock: { inherit: true, onSwitchIn() {}, - onStart() {}, + onStart(pokemon) { + pokemon.abilityState.ending = false; + }, }, angerpoint: { inherit: true, @@ -35,7 +37,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { cloudnine: { inherit: true, onSwitchIn() {}, - onStart() {}, + onStart(pokemon) { + pokemon.abilityState.ending = false; + }, }, colorchange: { inherit: true, @@ -68,6 +72,23 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } }, }, + download: { + inherit: true, + onStart(pokemon) { + let totaldef = 0; + let totalspd = 0; + for (const target of pokemon.foes()) { + if (target.volatiles.substitute) continue; + totaldef += target.getStat('def', false, true); + totalspd += target.getStat('spd', false, true); + } + if (totaldef && totaldef >= totalspd) { + this.boost({spa: 1}); + } else if (totalspd) { + this.boost({atk: 1}); + } + }, + }, effectspore: { inherit: true, onDamagingHit(damage, target, source, move) { @@ -134,6 +155,11 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { return this.chainModify(1.5); } }, + flags: {breakable: 1}, + }, + forecast: { + inherit: true, + flags: {notrace: 1}, }, forewarn: { inherit: true, @@ -163,10 +189,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { frisk: { inherit: true, onStart(pokemon) { - for (const target of pokemon.foes()) { - if (target.item && !target.itemState.knockedOff) { - this.add('-item', target, target.getItem().name, '[from] ability: Frisk', '[of] ' + pokemon, '[identify]'); - } + const target = pokemon.side.randomFoe(); + if (target?.item && !target.itemState.knockedOff) { + this.add('-item', '', target.getItem().name, '[from] ability: Frisk', '[of] ' + pokemon); } }, }, @@ -385,7 +410,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { boosts[key]! *= 2; } }, - isBreakable: true, + flags: {breakable: 1}, name: "Simple", rating: 4, num: 86, @@ -481,7 +506,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { return this.chainModify(0.5); } }, - isBreakable: true, + flags: {breakable: 1}, name: "Thick Fat", rating: 3.5, num: 47, @@ -513,6 +538,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { this.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target); } }, + flags: {notrace: 1}, }, unburden: { inherit: true, @@ -532,7 +558,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { inherit: true, onTryHit(target, source, move) { if (move.id === 'firefang') { - this.hint("In Gen 4, Fire Fang is always able to hit through Wonder Guard."); + this.hint("In Gen 4, Fire Fang is always able to hit through Wonder Guard.", true, target.side); return; } if (target === source || move.category === 'Status' || move.type === '???' || move.id === 'struggle') return; diff --git a/data/mods/gen4/conditions.ts b/data/mods/gen4/conditions.ts index a7e0c62c594b..576737c7e4c6 100644 --- a/data/mods/gen4/conditions.ts +++ b/data/mods/gen4/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { brn: { inherit: true, onResidualOrder: 10, diff --git a/data/mods/gen4/formats-data.ts b/data/mods/gen4/formats-data.ts index 93566ced1607..4065adac334a 100644 --- a/data/mods/gen4/formats-data.ts +++ b/data/mods/gen4/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, diff --git a/data/mods/gen4/items.ts b/data/mods/gen4/items.ts index fd9357387c03..7dac3b389a89 100644 --- a/data/mods/gen4/items.ts +++ b/data/mods/gen4/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { adamantorb: { inherit: true, onBasePower(basePower, user, target, move) { @@ -113,15 +113,35 @@ export const Items: {[k: string]: ModdedItemData} = { } }, }, + dracoplate: { + inherit: true, + onTakeItem: true, + }, + dreadplate: { + inherit: true, + onTakeItem: true, + }, + earthplate: { + inherit: true, + onTakeItem: true, + }, fastball: { inherit: true, isNonstandard: null, }, + fistplate: { + inherit: true, + onTakeItem: true, + }, flameorb: { inherit: true, onResidualOrder: 10, onResidualSubOrder: 20, }, + flameplate: { + inherit: true, + onTakeItem: true, + }, focussash: { inherit: true, onDamage() { }, @@ -156,10 +176,22 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + icicleplate: { + inherit: true, + onTakeItem: true, + }, + insectplate: { + inherit: true, + onTakeItem: true, + }, ironball: { inherit: true, onEffectiveness() {}, }, + ironplate: { + inherit: true, + onTakeItem: true, + }, kingsrock: { inherit: true, onModifyMove(move) { @@ -250,6 +282,10 @@ export const Items: {[k: string]: ModdedItemData} = { } }, }, + meadowplate: { + inherit: true, + onTakeItem: true, + }, mentalherb: { inherit: true, fling: { @@ -306,6 +342,10 @@ export const Items: {[k: string]: ModdedItemData} = { }, }, }, + mindplate: { + inherit: true, + onTakeItem: true, + }, moonball: { inherit: true, isNonstandard: null, @@ -325,6 +365,18 @@ export const Items: {[k: string]: ModdedItemData} = { } }, }, + skyplate: { + inherit: true, + onTakeItem: true, + }, + splashplate: { + inherit: true, + onTakeItem: true, + }, + spookyplate: { + inherit: true, + onTakeItem: true, + }, sportball: { inherit: true, isNonstandard: null, @@ -342,6 +394,10 @@ export const Items: {[k: string]: ModdedItemData} = { onResidualOrder: 10, onResidualSubOrder: 20, }, + stoneplate: { + inherit: true, + onTakeItem: true, + }, thickclub: { inherit: true, onModifyAtk(atk, pokemon) { @@ -355,6 +411,10 @@ export const Items: {[k: string]: ModdedItemData} = { onResidualOrder: 10, onResidualSubOrder: 20, }, + toxicplate: { + inherit: true, + onTakeItem: true, + }, widelens: { inherit: true, onSourceModifyAccuracyPriority: 4, @@ -364,6 +424,10 @@ export const Items: {[k: string]: ModdedItemData} = { } }, }, + zapplate: { + inherit: true, + onTakeItem: true, + }, zoomlens: { inherit: true, onSourceModifyAccuracyPriority: 4, diff --git a/data/mods/gen4/moves.ts b/data/mods/gen4/moves.ts index 29556e122e4b..e38589fcf941 100644 --- a/data/mods/gen4/moves.ts +++ b/data/mods/gen4/moves.ts @@ -1,7 +1,7 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { acupressure: { inherit: true, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onHit(target) { if (target.volatiles['substitute']) { return false; @@ -35,7 +35,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, aquaring: { inherit: true, - flags: {}, + flags: {metronome: 1}, condition: { onStart(pokemon) { this.add('-start', pokemon, 'Aqua Ring'); @@ -180,7 +180,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, conversion: { inherit: true, - flags: {}, + flags: {metronome: 1}, onHit(target) { const possibleTypes = target.moveSlots.map(moveSlot => { const move = this.dex.moves.get(moveSlot.id); @@ -220,7 +220,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, curse: { inherit: true, - flags: {}, + flags: {metronome: 1}, onModifyMove(move, source, target) { if (!source.hasType('Ghost')) { delete move.volatileStatus; @@ -246,7 +246,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, defog: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, detect: { inherit: true, @@ -274,7 +274,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { disable: { inherit: true, accuracy: 80, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'disable', condition: { durationCallback() { @@ -332,7 +332,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Doom Desire", basePower: 120, category: "Special", - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, willCrit: false, type: '???', } as unknown as ActiveMove; @@ -348,7 +348,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, damage: damage, category: "Special", - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, effectType: 'Move', type: '???', }, @@ -374,7 +374,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, embargo: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onTryHit(pokemon) { if (pokemon.ability === 'multitype' || pokemon.item === 'griseousorb') { return false; @@ -395,7 +395,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, encore: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1, failencore: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1, failencore: 1}, volatileStatus: 'encore', condition: { durationCallback() { @@ -476,7 +476,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, flail: { inherit: true, - basePowerCallback(pokemon, target) { + basePowerCallback(pokemon) { const ratio = Math.max(Math.floor(pokemon.hp * 64 / pokemon.maxhp), 1); let bp; if (ratio < 2) { @@ -500,6 +500,37 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, recoil: [1, 3], }, + fling: { + inherit: true, + onPrepareHit(target, source, move) { + if (source.ignoringItem()) return false; + if (source.hasAbility('multitype')) return false; + const item = source.getItem(); + if (!this.singleEvent('TakeItem', item, source.itemState, source, source, move, item)) return false; + if (!item.fling) return false; + move.basePower = item.fling.basePower; + this.debug('BP: ' + move.basePower); + if (item.isBerry) { + move.onHit = function (foe) { + if (this.singleEvent('Eat', item, null, foe, null, null)) { + this.runEvent('EatItem', foe, null, null, item); + if (item.id === 'leppaberry') foe.staleness = 'external'; + } + if (item.onEat) foe.ateBerry = true; + }; + } else if (item.fling.effect) { + move.onHit = item.fling.effect; + } else { + if (!move.secondaries) move.secondaries = []; + if (item.fling.status) { + move.secondaries.push({status: item.fling.status}); + } else if (item.fling.volatileStatus) { + move.secondaries.push({volatileStatus: item.fling.volatileStatus}); + } + } + source.addVolatile('fling'); + }, + }, focuspunch: { inherit: true, priorityChargeCallback() {}, @@ -517,7 +548,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, foresight: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, furycutter: { inherit: true, @@ -546,7 +577,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { name: "Future Sight", basePower: 80, category: "Special", - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, willCrit: false, type: '???', } as unknown as ActiveMove; @@ -562,7 +593,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 0, damage: damage, category: "Special", - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, effectType: 'Move', type: '???', }, @@ -674,7 +705,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, healblock: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, condition: { duration: 5, durationCallback(target, source, effect) { @@ -715,7 +746,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, healingwish: { inherit: true, - flags: {heal: 1}, + flags: {heal: 1, metronome: 1}, onAfterMove(pokemon) { pokemon.switchFlag = true; }, @@ -752,7 +783,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, imprison: { inherit: true, - flags: {bypasssub: 1}, + flags: {bypasssub: 1, metronome: 1}, onTryHit(pokemon) { for (const target of pokemon.foes()) { for (const move of pokemon.moves) { @@ -802,7 +833,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { const item = target.getItem(); if (this.runEvent('TakeItem', target, source, move, item)) { target.itemState.knockedOff = true; - this.add('-enditem', target, item.name, '[from] move: Knock Off'); + this.add('-enditem', target, item.name, '[from] move: Knock Off', '[of] ' + source); this.hint("In Gens 3-4, Knock Off only makes the target's item unusable; it cannot obtain a new item.", true); } }, @@ -875,7 +906,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, luckychant: { inherit: true, - flags: {}, + flags: {metronome: 1}, condition: { duration: 5, onSideStart(side) { @@ -890,7 +921,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, lunardance: { inherit: true, - flags: {heal: 1}, + flags: {heal: 1, metronome: 1}, onAfterMove(pokemon) { pokemon.switchFlag = true; }, @@ -931,7 +962,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { target.removeVolatile('magiccoat'); const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; - this.actions.useMove(newMove, target, source); + this.actions.useMove(newMove, target, {target: source}); return null; }, }, @@ -942,7 +973,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, magnetrise: { inherit: true, - flags: {gravity: 1}, + flags: {gravity: 1, metronome: 1}, volatileStatus: 'magnetrise', condition: { duration: 5, @@ -971,19 +1002,16 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, metalburst: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, }, metronome: { inherit: true, flags: {noassist: 1, failcopycat: 1, nosleeptalk: 1, failmimic: 1}, - noMetronome: [ - "Assist", "Chatter", "Copycat", "Counter", "Covet", "Destiny Bond", "Detect", "Endure", "Feint", "Focus Punch", "Follow Me", "Helping Hand", "Me First", "Metronome", "Mimic", "Mirror Coat", "Mirror Move", "Protect", "Sketch", "Sleep Talk", "Snatch", "Struggle", "Switcheroo", "Thief", "Trick", - ], }, mimic: { inherit: true, flags: { - protect: 1, bypasssub: 1, allyanim: 1, noassist: 1, failcopycat: 1, failencore: 1, failinstruct: 1, failmimic: 1, + protect: 1, allyanim: 1, noassist: 1, failcopycat: 1, failencore: 1, failinstruct: 1, failmimic: 1, }, onHit(target, source) { if (source.transformed || !target.lastMove || target.volatiles['substitute']) { @@ -1015,7 +1043,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, miracleeye: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, mirrormove: { inherit: true, @@ -1091,19 +1119,21 @@ export const Moves: {[k: string]: ModdedMoveData} = { mudsport: { inherit: true, condition: { - noCopy: true, onStart(pokemon) { this.add('-start', pokemon, 'move: Mud Sport'); }, - onBasePowerPriority: 3, + onAnyBasePowerPriority: 3, onAnyBasePower(basePower, user, target, move) { - if (move.type === 'Electric') return this.chainModify(0.5); + if (move.type === 'Electric') { + this.debug('Mud Sport weaken'); + return this.chainModify(0.5); + } }, }, }, naturepower: { inherit: true, - flags: {}, + flags: {metronome: 1}, onHit(pokemon) { this.actions.useMove('triattack', pokemon); }, @@ -1127,7 +1157,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, odorsleuth: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, outrage: { inherit: true, @@ -1178,7 +1208,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, powertrick: { inherit: true, - flags: {}, + flags: {metronome: 1}, }, protect: { inherit: true, @@ -1205,7 +1235,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, psychup: { inherit: true, - flags: {snatch: 1, bypasssub: 1}, + flags: {snatch: 1, bypasssub: 1, metronome: 1}, }, pursuit: { inherit: true, @@ -1257,7 +1287,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, recycle: { inherit: true, - flags: {}, + flags: {metronome: 1}, }, reflect: { inherit: true, @@ -1289,7 +1319,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, reversal: { inherit: true, - basePowerCallback(pokemon, target) { + basePowerCallback(pokemon) { const ratio = Math.max(Math.floor(pokemon.hp * 64 / pokemon.maxhp), 1); let bp; if (ratio < 2) { @@ -1311,7 +1341,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, roar: { inherit: true, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, }, rockblast: { inherit: true, @@ -1321,8 +1351,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, onTryHit(target, source) { if (target.ability === source.ability || source.hasItem('griseousorb')) return false; - const bannedTargetAbilities = ['multitype', 'wonderguard']; - if (bannedTargetAbilities.includes(target.ability) || source.ability === 'multitype') { + if (target.getAbility().flags['failroleplay'] || source.ability === 'multitype') { return false; } }, @@ -1389,13 +1418,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, sketch: { inherit: true, - flags: {bypasssub: 1, allyanim: 1, failencore: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: { + bypasssub: 1, allyanim: 1, failencore: 1, noassist: 1, + failcopycat: 1, failinstruct: 1, failmimic: 1, nosketch: 1, + }, onHit(target, source) { - const disallowedMoves = ['chatter', 'sketch', 'struggle']; if (source.transformed || !target.lastMove || target.volatiles['substitute']) { return false; } - if (disallowedMoves.includes(target.lastMove.id) || source.moves.includes(target.lastMove.id)) { + if (target.lastMove.flags['nosketch'] || source.moves.includes(target.lastMove.id)) { return false; } const sketchIndex = source.moves.indexOf('sketch'); @@ -1455,22 +1486,27 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, }, + snore: { + inherit: true, + flags: {protect: 1, mirror: 1, sound: 1, metronome: 1}, + }, spikes: { inherit: true, - flags: {}, + flags: {metronome: 1, mustpressure: 1}, }, spite: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, stealthrock: { inherit: true, - flags: {}, + flags: {metronome: 1, mustpressure: 1}, }, struggle: { inherit: true, flags: { - contact: 1, protect: 1, failencore: 1, failmefirst: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + contact: 1, protect: 1, failencore: 1, failmefirst: 1, + noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, nosketch: 1, }, onModifyMove(move) { move.type = '???'; @@ -1513,7 +1549,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add('-activate', target, 'Substitute', '[damage]'); } if (move.recoil && damage) { - this.damage(this.actions.calcRecoilDamage(damage, move), source, target, 'recoil'); + this.damage(this.actions.calcRecoilDamage(damage, move, source), source, target, 'recoil'); } if (move.drain) { this.heal(Math.ceil(damage * move.drain[0] / move.drain[1]), source, target, 'drain'); @@ -1536,6 +1572,12 @@ export const Moves: {[k: string]: ModdedMoveData} = { } }, }, + swallow: { + inherit: true, + onTry(source) { + return !!source.volatiles['stockpile']; + }, + }, switcheroo: { inherit: true, onTryHit(target, source, move) { @@ -1594,7 +1636,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, taunt: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, condition: { durationCallback() { return this.random(3, 6); @@ -1631,7 +1673,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, torment: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, toxic: { inherit: true, @@ -1639,7 +1681,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, toxicspikes: { inherit: true, - flags: {}, + flags: {metronome: 1, mustpressure: 1}, condition: { // this is a side condition onSideStart(side) { @@ -1668,7 +1710,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, transform: { inherit: true, - flags: {bypasssub: 1, failencore: 1}, + flags: {bypasssub: 1, metronome: 1, failencore: 1}, }, trick: { inherit: true, @@ -1749,13 +1791,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { watersport: { inherit: true, condition: { - noCopy: true, onStart(pokemon) { this.add('-start', pokemon, 'move: Water Sport'); }, - onBasePowerPriority: 3, + onAnyBasePowerPriority: 3, onAnyBasePower(basePower, user, target, move) { - if (move.type === 'Fire') return this.chainModify(0.5); + if (move.type === 'Fire') { + this.debug('Water Sport weaken'); + return this.chainModify(0.5); + } }, }, }, @@ -1766,11 +1810,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, whirlwind: { inherit: true, - flags: {protect: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, wish: { inherit: true, - flags: {heal: 1}, + flags: {heal: 1, metronome: 1}, slotCondition: 'Wish', condition: { duration: 2, diff --git a/data/mods/gen4/pokedex.ts b/data/mods/gen4/pokedex.ts index b2d37153ffa5..633ee04652b2 100644 --- a/data/mods/gen4/pokedex.ts +++ b/data/mods/gen4/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { milotic: { inherit: true, evoType: 'levelExtra', diff --git a/data/mods/gen4/random-data.json b/data/mods/gen4/random-data.json deleted file mode 100644 index bdbbda4b8bbe..000000000000 --- a/data/mods/gen4/random-data.json +++ /dev/null @@ -1,1190 +0,0 @@ -{ - "venusaur": { - "level": 84, - "moves": ["earthquake", "hiddenpowerice", "leafstorm", "leechseed", "powerwhip", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"] - }, - "charizard": { - "level": 85, - "moves": ["airslash", "dragonpulse", "fireblast", "flamethrower", "hiddenpowergrass", "roost"] - }, - "blastoise": { - "level": 84, - "moves": ["icebeam", "rapidspin", "rest", "roar", "sleeptalk", "surf", "toxic"] - }, - "butterfree": { - "level": 89, - "moves": ["bugbuzz", "safeguard", "sleeppowder", "stunspore", "uturn"] - }, - "beedrill": { - "level": 90, - "moves": ["brickbreak", "poisonjab", "swordsdance", "toxicspikes", "uturn", "xscissor"] - }, - "pidgeot": { - "level": 88, - "moves": ["bravebird", "doubleedge", "heatwave", "pursuit", "quickattack", "uturn"] - }, - "raticate": { - "level": 88, - "moves": ["crunch", "facade", "protect", "suckerpunch", "swordsdance", "uturn"] - }, - "fearow": { - "level": 88, - "moves": ["doubleedge", "drillpeck", "heatwave", "pursuit", "quickattack", "return", "uturn"] - }, - "arbok": { - "level": 89, - "moves": ["aquatail", "crunch", "earthquake", "glare", "gunkshot", "poisonjab", "seedbomb", "switcheroo"] - }, - "pikachu": { - "level": 88, - "moves": ["grassknot", "hiddenpowerice", "substitute", "surf", "thunderbolt", "volttackle"] - }, - "raichu": { - "level": 88, - "moves": ["encore", "focusblast", "focuspunch", "grassknot", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"] - }, - "sandslash": { - "level": 88, - "moves": ["earthquake", "nightslash", "rapidspin", "stealthrock", "stoneedge", "substitute", "swordsdance"] - }, - "nidoqueen": { - "level": 87, - "moves": ["earthquake", "fireblast", "icebeam", "roar", "stealthrock", "toxicspikes"] - }, - "nidoking": { - "level": 84, - "moves": ["earthquake", "fireblast", "icebeam", "megahorn", "stealthrock", "suckerpunch", "thunderbolt"] - }, - "clefable": { - "level": 84, - "moves": ["calmmind", "doubleedge", "fireblast", "icebeam", "softboiled", "stealthrock", "thunderbolt"] - }, - "ninetales": { - "level": 87, - "moves": ["energyball", "fireblast", "flamethrower", "hiddenpowerrock", "hypnosis", "nastyplot"] - }, - "wigglytuff": { - "level": 88, - "moves": ["bodyslam", "doubleedge", "fireblast", "healbell", "protect", "seismictoss", "stealthrock", "thunderwave", "toxic", "wish"] - }, - "vileplume": { - "level": 88, - "moves": ["energyball", "hiddenpowerfire", "moonlight", "sleeppowder", "sludgebomb", "solarbeam", "sunnyday"] - }, - "parasect": { - "level": 90, - "moves": ["leechseed", "seedbomb", "spore", "stunspore", "synthesis", "xscissor"] - }, - "venomoth": { - "level": 88, - "moves": ["bugbuzz", "psychic", "roost", "sleeppowder", "stunspore", "substitute", "toxicspikes", "uturn"] - }, - "dugtrio": { - "level": 84, - "moves": ["earthquake", "nightslash", "stealthrock", "stoneedge", "substitute", "suckerpunch"] - }, - "persian": { - "level": 88, - "moves": ["bite", "fakeout", "hypnosis", "nastyplot", "return", "swift", "taunt", "uturn", "waterpulse"] - }, - "golduck": { - "level": 88, - "moves": ["calmmind", "encore", "hiddenpowergrass", "hydropump", "icebeam", "psychic", "surf"] - }, - "primeape": { - "level": 84, - "moves": ["closecombat", "encore", "icepunch", "punishment", "stoneedge", "uturn"] - }, - "arcanine": { - "level": 84, - "moves": ["extremespeed", "flareblitz", "hiddenpowergrass", "morningsun", "thunderfang", "toxic", "willowisp"] - }, - "poliwrath": { - "level": 88, - "moves": ["brickbreak", "bulkup", "encore", "focuspunch", "icepunch", "rest", "sleeptalk", "substitute", "toxic", "waterfall"] - }, - "alakazam": { - "level": 84, - "moves": ["encore", "focusblast", "hiddenpowerfire", "psychic", "shadowball", "signalbeam", "substitute", "trick"] - }, - "machamp": { - "level": 80, - "moves": ["bulkup", "bulletpunch", "dynamicpunch", "icepunch", "payback", "stoneedge", "substitute"] - }, - "victreebel": { - "level": 88, - "moves": ["leafblade", "leafstorm", "sleeppowder", "sludgebomb", "solarbeam", "suckerpunch", "sunnyday", "weatherball"] - }, - "tentacruel": { - "level": 82, - "moves": ["hydropump", "icebeam", "rapidspin", "sludgebomb", "surf", "toxicspikes"] - }, - "golem": { - "level": 88, - "moves": ["earthquake", "explosion", "hammerarm", "stealthrock", "stoneedge", "suckerpunch"] - }, - "rapidash": { - "level": 87, - "moves": ["flareblitz", "hypnosis", "megahorn", "morningsun", "willowisp"] - }, - "slowbro": { - "level": 84, - "moves": ["calmmind", "psychic", "rest", "slackoff", "sleeptalk", "surf", "thunderwave", "toxic", "trickroom"] - }, - "farfetchd": { - "level": 100, - "moves": ["heatwave", "leafblade", "nightslash", "return", "swordsdance", "uturn"] - }, - "dodrio": { - "level": 88, - "moves": ["bravebird", "doubleedge", "pursuit", "quickattack", "return", "roost"] - }, - "dewgong": { - "level": 89, - "moves": ["encore", "icebeam", "raindance", "rest", "surf", "toxic"] - }, - "muk": { - "level": 88, - "moves": ["brickbreak", "curse", "explosion", "gunkshot", "icepunch", "payback", "poisonjab", "rest", "shadowsneak", "sleeptalk"] - }, - "cloyster": { - "level": 85, - "moves": ["explosion", "iceshard", "rapidspin", "rockblast", "spikes", "surf", "toxicspikes"] - }, - "gengar": { - "level": 80, - "moves": ["focusblast", "hiddenpowerfire", "hypnosis", "painsplit", "shadowball", "sludgebomb", "substitute", "thunderbolt", "trick"] - }, - "hypno": { - "level": 88, - "moves": ["protect", "seismictoss", "thunderwave", "toxic", "wish"] - }, - "kingler": { - "level": 88, - "moves": ["agility", "crabhammer", "return", "superpower", "swordsdance", "xscissor"] - }, - "electrode": { - "level": 88, - "moves": ["explosion", "hiddenpowerice", "signalbeam", "taunt", "thunderbolt"] - }, - "exeggutor": { - "level": 84, - "moves": ["explosion", "hiddenpowerfire", "leafstorm", "psychic", "sleeppowder", "solarbeam", "sunnyday", "synthesis"] - }, - "marowak": { - "level": 88, - "moves": ["doubleedge", "earthquake", "firepunch", "substitute", "swordsdance", "thunderpunch"] - }, - "hitmonlee": { - "level": 84, - "moves": ["closecombat", "earthquake", "machpunch", "stoneedge", "substitute", "suckerpunch"] - }, - "hitmonchan": { - "level": 87, - "moves": ["bulkup", "closecombat", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"] - }, - "weezing": { - "level": 85, - "moves": ["fireblast", "painsplit", "rest", "sleeptalk", "sludgebomb", "thunderbolt", "willowisp"] - }, - "kangaskhan": { - "level": 84, - "moves": ["doubleedge", "earthquake", "fakeout", "focuspunch", "hammerarm", "return", "substitute", "suckerpunch"] - }, - "seaking": { - "level": 89, - "moves": ["icebeam", "megahorn", "raindance", "return", "waterfall"] - }, - "starmie": { - "level": 80, - "moves": ["hydropump", "icebeam", "psychic", "rapidspin", "recover", "surf", "thunderbolt"] - }, - "mrmime": { - "level": 88, - "moves": ["batonpass", "encore", "focusblast", "nastyplot", "psychic", "shadowball", "substitute", "taunt", "thunderbolt"] - }, - "scyther": { - "level": 84, - "moves": ["aerialace", "brickbreak", "bugbite", "pursuit", "quickattack", "roost", "swordsdance", "uturn"] - }, - "jynx": { - "level": 87, - "moves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psychic", "substitute"] - }, - "pinsir": { - "level": 87, - "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance", "xscissor"] - }, - "tauros": { - "level": 85, - "moves": ["doubleedge", "earthquake", "payback", "pursuit", "return", "stoneedge"] - }, - "gyarados": { - "level": 80, - "moves": ["bounce", "dragondance", "earthquake", "icefang", "rest", "sleeptalk", "stoneedge", "waterfall"] - }, - "lapras": { - "level": 88, - "moves": ["healbell", "hydropump", "icebeam", "surf", "thunderbolt", "toxic"] - }, - "ditto": { - "level": 100, - "moves": ["transform"] - }, - "vaporeon": { - "level": 82, - "moves": ["icebeam", "protect", "roar", "surf", "toxic", "wish"] - }, - "jolteon": { - "level": 82, - "moves": ["batonpass", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderbolt", "yawn"] - }, - "flareon": { - "level": 90, - "moves": ["fireblast", "hiddenpowergrass", "lavaplume", "protect", "superpower", "toxic", "wish"] - }, - "omastar": { - "level": 84, - "moves": ["earthpower", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "spikes", "stealthrock", "surf"] - }, - "kabutops": { - "level": 84, - "moves": ["aquajet", "rapidspin", "stealthrock", "stoneedge", "superpower", "swordsdance", "waterfall"] - }, - "aerodactyl": { - "level": 80, - "moves": ["earthquake", "rockslide", "roost", "stealthrock", "stoneedge", "taunt"] - }, - "snorlax": { - "level": 82, - "moves": ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest", "return", "selfdestruct", "sleeptalk", "whirlwind"] - }, - "articuno": { - "level": 86, - "moves": ["healbell", "icebeam", "roar", "roost", "substitute", "toxic"] - }, - "zapdos": { - "level": 79, - "moves": ["heatwave", "hiddenpowergrass", "hiddenpowerice", "roost", "substitute", "thunderbolt", "toxic", "uturn"] - }, - "moltres": { - "level": 84, - "moves": ["airslash", "fireblast", "flamethrower", "hiddenpowergrass", "roost", "substitute", "toxic", "uturn"] - }, - "dragonite": { - "level": 80, - "moves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "extremespeed", "fireblast", "firepunch", "outrage", "roost", "superpower"] - }, - "mewtwo": { - "level": 73, - "moves": ["aurasphere", "calmmind", "fireblast", "icebeam", "psychic", "recover", "selfdestruct", "substitute", "taunt", "willowisp"] - }, - "mew": { - "level": 76, - "moves": ["aurasphere", "explosion", "flamethrower", "nastyplot", "psychic", "softboiled", "stealthrock", "taunt", "uturn", "willowisp"] - }, - "meganium": { - "level": 88, - "moves": ["aromatherapy", "energyball", "leechseed", "lightscreen", "reflect", "synthesis", "toxic"] - }, - "typhlosion": { - "level": 86, - "moves": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"] - }, - "feraligatr": { - "level": 84, - "moves": ["aquajet", "dragondance", "earthquake", "icepunch", "lowkick", "return", "swordsdance", "waterfall"] - }, - "furret": { - "level": 89, - "moves": ["aquatail", "brickbreak", "doubleedge", "firepunch", "return", "shadowclaw", "suckerpunch", "trick", "uturn"] - }, - "noctowl": { - "level": 91, - "moves": ["nightshade", "reflect", "roost", "toxic", "whirlwind"] - }, - "ledian": { - "level": 91, - "moves": ["encore", "knockoff", "lightscreen", "reflect", "roost", "toxic", "uturn"] - }, - "ariados": { - "level": 90, - "moves": ["bugbite", "poisonjab", "shadowsneak", "suckerpunch", "toxicspikes"] - }, - "crobat": { - "level": 82, - "moves": ["bravebird", "heatwave", "nastyplot", "roost", "sludgebomb", "superfang", "taunt", "uturn"] - }, - "lanturn": { - "level": 84, - "moves": ["confuseray", "discharge", "healbell", "icebeam", "surf", "thunderwave", "toxic"] - }, - "xatu": { - "level": 88, - "moves": ["calmmind", "grassknot", "heatwave", "hiddenpowerfighting", "psychic", "roost", "trick", "uturn", "wish"] - }, - "ampharos": { - "level": 88, - "moves": ["discharge", "focusblast", "healbell", "hiddenpowerice", "lightscreen", "reflect", "signalbeam", "thunderbolt"] - }, - "bellossom": { - "level": 89, - "moves": ["hiddenpowerfire", "leafstorm", "moonlight", "sleeppowder", "sludgebomb", "solarbeam", "sunnyday"] - }, - "azumarill": { - "level": 84, - "moves": ["aquajet", "doubleedge", "icepunch", "return", "superpower", "waterfall"] - }, - "sudowoodo": { - "level": 89, - "moves": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"] - }, - "politoed": { - "level": 88, - "moves": ["encore", "focusblast", "hiddenpowergrass", "hydropump", "icebeam", "protect", "surf", "toxic"] - }, - "jumpluff": { - "level": 88, - "moves": ["bounce", "encore", "grassknot", "leechseed", "sleeppowder", "stunspore", "substitute", "toxic", "uturn"] - }, - "sunflora": { - "level": 90, - "moves": ["earthpower", "hiddenpowerice", "leafstorm", "sludgebomb", "synthesis"] - }, - "quagsire": { - "level": 88, - "moves": ["earthquake", "encore", "icepunch", "recover", "toxic", "waterfall", "yawn"] - }, - "espeon": { - "level": 86, - "moves": ["batonpass", "calmmind", "hiddenpowerfire", "morningsun", "psychic", "shadowball", "substitute"] - }, - "umbreon": { - "level": 82, - "moves": ["curse", "healbell", "moonlight", "payback", "protect", "toxic", "wish"] - }, - "slowking": { - "level": 88, - "moves": ["icebeam", "nastyplot", "psychic", "slackoff", "surf", "thunderwave", "toxic", "trickroom"] - }, - "unown": { - "level": 100, - "moves": ["hiddenpowerpsychic"] - }, - "wobbuffet": { - "level": 78, - "moves": ["counter", "destinybond", "encore", "mirrorcoat"] - }, - "girafarig": { - "level": 89, - "moves": ["batonpass", "calmmind", "hiddenpowerfighting", "psychic", "thunderbolt"] - }, - "forretress": { - "level": 80, - "moves": ["earthquake", "explosion", "gyroball", "rapidspin", "spikes", "stealthrock", "toxicspikes"] - }, - "dunsparce": { - "level": 90, - "moves": ["bite", "bodyslam", "earthquake", "headbutt", "rockslide", "roost", "thunderwave"] - }, - "steelix": { - "level": 84, - "moves": ["earthquake", "explosion", "gyroball", "roar", "stealthrock", "stoneedge", "toxic"] - }, - "granbull": { - "level": 88, - "moves": ["bodyslam", "closecombat", "crunch", "earthquake", "firepunch", "healbell", "return", "thunderwave", "toxic"] - }, - "qwilfish": { - "level": 84, - "moves": ["destinybond", "explosion", "poisonjab", "spikes", "thunderwave", "toxicspikes", "waterfall"] - }, - "scizor": { - "level": 80, - "moves": ["bugbite", "bulletpunch", "pursuit", "roost", "superpower", "swordsdance", "uturn"] - }, - "shuckle": { - "level": 89, - "moves": ["encore", "knockoff", "rest", "stealthrock", "toxic"] - }, - "heracross": { - "level": 82, - "moves": ["closecombat", "megahorn", "nightslash", "stoneedge", "substitute", "swordsdance"] - }, - "ursaring": { - "level": 84, - "moves": ["closecombat", "crunch", "earthquake", "facade", "protect", "swordsdance"] - }, - "magcargo": { - "level": 89, - "moves": ["fireblast", "hiddenpowerrock", "lavaplume", "recover", "stealthrock", "toxic", "willowisp"] - }, - "corsola": { - "level": 90, - "moves": ["explosion", "recover", "stealthrock", "surf", "toxic"] - }, - "octillery": { - "level": 88, - "moves": ["energyball", "fireblast", "icebeam", "surf", "thunderwave"] - }, - "delibird": { - "level": 100, - "moves": ["aerialace", "brickbreak", "icepunch", "iceshard", "rapidspin", "seedbomb"] - }, - "mantine": { - "level": 88, - "moves": ["rest", "sleeptalk", "surf", "toxic"] - }, - "skarmory": { - "level": 80, - "moves": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"] - }, - "houndoom": { - "level": 84, - "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"] - }, - "kingdra": { - "level": 80, - "moves": ["dracometeor", "dragondance", "hydropump", "icebeam", "outrage", "rest", "sleeptalk", "substitute", "waterfall"] - }, - "donphan": { - "level": 84, - "moves": ["assurance", "earthquake", "iceshard", "rapidspin", "seedbomb", "stealthrock", "stoneedge"] - }, - "porygon2": { - "level": 87, - "moves": ["discharge", "icebeam", "recover", "toxic", "triattack"] - }, - "stantler": { - "level": 88, - "moves": ["earthquake", "energyball", "hypnosis", "megahorn", "return", "suckerpunch"] - }, - "smeargle": { - "level": 83, - "moves": ["counter", "spikes", "spore", "stealthrock", "uturn"] - }, - "hitmontop": { - "level": 85, - "moves": ["bulkup", "closecombat", "machpunch", "rapidspin", "stoneedge", "suckerpunch", "toxic"] - }, - "miltank": { - "level": 83, - "moves": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "stealthrock"] - }, - "blissey": { - "level": 80, - "moves": ["aromatherapy", "flamethrower", "icebeam", "protect", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic", "wish"] - }, - "raikou": { - "level": 79, - "moves": ["aurasphere", "calmmind", "hiddenpowerice", "shadowball", "thunderbolt"] - }, - "entei": { - "level": 84, - "moves": ["extremespeed", "flareblitz", "hiddenpowergrass", "ironhead", "stoneedge"] - }, - "suicune": { - "level": 80, - "moves": ["calmmind", "hiddenpowerelectric", "icebeam", "rest", "roar", "sleeptalk", "surf"] - }, - "tyranitar": { - "level": 80, - "moves": ["crunch", "dragondance", "earthquake", "fireblast", "firepunch", "icebeam", "icepunch", "pursuit", "stealthrock", "stoneedge", "superpower"] - }, - "lugia": { - "level": 74, - "moves": ["aeroblast", "calmmind", "earthpower", "icebeam", "roost", "substitute", "toxic", "whirlwind"] - }, - "hooh": { - "level": 75, - "moves": ["bravebird", "earthquake", "punishment", "roost", "sacredfire", "substitute"] - }, - "celebi": { - "level": 80, - "moves": ["earthpower", "energyball", "hiddenpowerfire", "leafstorm", "leechseed", "nastyplot", "psychic", "recover", "stealthrock", "substitute", "thunderwave", "uturn"] - }, - "sceptile": { - "level": 84, - "moves": ["earthquake", "energyball", "focusblast", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "leechseed", "substitute"] - }, - "blaziken": { - "level": 84, - "moves": ["agility", "fireblast", "flareblitz", "stoneedge", "superpower", "thunderpunch", "vacuumwave"] - }, - "swampert": { - "level": 80, - "moves": ["earthquake", "icebeam", "icepunch", "roar", "stealthrock", "stoneedge", "waterfall"] - }, - "mightyena": { - "level": 89, - "moves": ["crunch", "firefang", "suckerpunch", "superfang", "taunt", "toxic"] - }, - "linoone": { - "level": 86, - "moves": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"] - }, - "beautifly": { - "level": 90, - "moves": ["bugbuzz", "hiddenpowerground", "psychic", "uturn"] - }, - "dustox": { - "level": 91, - "moves": ["bugbuzz", "protect", "roost", "toxic", "whirlwind"] - }, - "ludicolo": { - "level": 84, - "moves": ["energyball", "icebeam", "leechseed", "raindance", "substitute", "surf"] - }, - "shiftry": { - "level": 88, - "moves": ["darkpulse", "explosion", "hiddenpowerfire", "leafstorm", "lowkick", "seedbomb", "solarbeam", "suckerpunch", "sunnyday", "swordsdance"] - }, - "swellow": { - "level": 84, - "moves": ["bravebird", "facade", "protect", "quickattack", "uturn"] - }, - "pelipper": { - "level": 88, - "moves": ["airslash", "hiddenpowergrass", "hydropump", "roost", "surf", "toxic", "uturn"] - }, - "gardevoir": { - "level": 88, - "moves": ["calmmind", "focusblast", "psychic", "shadowball", "taunt", "thunderbolt", "willowisp"] - }, - "masquerain": { - "level": 89, - "moves": ["agility", "airslash", "batonpass", "bugbuzz", "hydropump", "roost"] - }, - "breloom": { - "level": 80, - "moves": ["facade", "focuspunch", "leechseed", "machpunch", "seedbomb", "spore", "stoneedge", "substitute", "swordsdance"] - }, - "vigoroth": { - "level": 88, - "moves": ["bulkup", "earthquake", "encore", "lowkick", "nightslash", "return", "slackoff", "substitute", "suckerpunch"] - }, - "slaking": { - "level": 86, - "moves": ["doubleedge", "earthquake", "firepunch", "icepunch", "nightslash", "pursuit", "return"] - }, - "ninjask": { - "level": 83, - "moves": ["batonpass", "protect", "substitute", "swordsdance", "xscissor"] - }, - "shedinja": { - "level": 89, - "moves": ["batonpass", "shadowsneak", "swordsdance", "willowisp", "xscissor"] - }, - "exploud": { - "level": 88, - "moves": ["crunch", "earthquake", "fireblast", "icebeam", "return", "surf"] - }, - "hariyama": { - "level": 84, - "moves": ["bulletpunch", "closecombat", "facade", "fakeout", "focuspunch", "icepunch", "payback", "stoneedge", "substitute"] - }, - "delcatty": { - "level": 91, - "moves": ["healbell", "protect", "return", "sing", "thunderwave", "wish"] - }, - "sableye": { - "level": 91, - "moves": ["recover", "seismictoss", "taunt", "toxic", "willowisp"] - }, - "mawile": { - "level": 91, - "moves": ["batonpass", "focuspunch", "ironhead", "substitute", "suckerpunch", "swordsdance"] - }, - "aggron": { - "level": 85, - "moves": ["aquatail", "earthquake", "headsmash", "icepunch", "lowkick", "rockpolish"] - }, - "medicham": { - "level": 87, - "moves": ["bulletpunch", "fakeout", "highjumpkick", "icepunch", "psychocut", "thunderpunch", "trick"] - }, - "manectric": { - "level": 88, - "moves": ["flamethrower", "hiddenpowergrass", "overheat", "switcheroo", "thunderbolt"] - }, - "plusle": { - "level": 88, - "moves": ["batonpass", "encore", "hiddenpowerice", "nastyplot", "thunderbolt"] - }, - "minun": { - "level": 88, - "moves": ["batonpass", "encore", "hiddenpowerice", "nastyplot", "thunderbolt"] - }, - "volbeat": { - "level": 90, - "moves": ["batonpass", "bugbuzz", "encore", "substitute", "tailglow"] - }, - "illumise": { - "level": 89, - "moves": ["bugbuzz", "encore", "hiddenpowerground", "hiddenpowerice", "thunderbolt", "uturn", "wish"] - }, - "swalot": { - "level": 89, - "moves": ["earthquake", "encore", "explosion", "icebeam", "sludgebomb", "toxic", "yawn"] - }, - "sharpedo": { - "level": 87, - "moves": ["aquajet", "crunch", "earthquake", "hiddenpowergrass", "hydropump", "icebeam", "waterfall"] - }, - "wailord": { - "level": 88, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "selfdestruct", "surf", "waterspout"] - }, - "camerupt": { - "level": 88, - "moves": ["earthpower", "earthquake", "explosion", "fireblast", "lavaplume", "rockpolish", "stealthrock", "stoneedge"] - }, - "torkoal": { - "level": 88, - "moves": ["earthquake", "explosion", "lavaplume", "rapidspin", "stealthrock", "toxic", "yawn"] - }, - "grumpig": { - "level": 88, - "moves": ["calmmind", "focusblast", "healbell", "psychic", "shadowball", "thunderwave", "toxic"] - }, - "spinda": { - "level": 100, - "moves": ["bodyslam", "encore", "shadowball", "teeterdance", "toxic"] - }, - "flygon": { - "level": 80, - "moves": ["dragonclaw", "earthquake", "fireblast", "firepunch", "outrage", "roost", "stoneedge", "uturn"] - }, - "cacturne": { - "level": 89, - "moves": ["encore", "focuspunch", "lowkick", "seedbomb", "spikes", "substitute", "suckerpunch", "swordsdance"] - }, - "altaria": { - "level": 85, - "moves": ["dragonclaw", "dragondance", "earthquake", "fireblast", "healbell", "outrage", "roost"] - }, - "zangoose": { - "level": 87, - "moves": ["closecombat", "quickattack", "return", "shadowclaw", "swordsdance"] - }, - "seviper": { - "level": 88, - "moves": ["aquatail", "darkpulse", "earthquake", "flamethrower", "sludgebomb", "suckerpunch", "switcheroo"] - }, - "lunatone": { - "level": 89, - "moves": ["batonpass", "calmmind", "earthpower", "psychic", "shadowball", "substitute"] - }, - "solrock": { - "level": 89, - "moves": ["earthquake", "explosion", "rockpolish", "stealthrock", "stoneedge", "zenheadbutt"] - }, - "whiscash": { - "level": 88, - "moves": ["dragondance", "earthquake", "stoneedge", "waterfall"] - }, - "crawdaunt": { - "level": 88, - "moves": ["crunch", "dragondance", "superpower", "waterfall", "xscissor"] - }, - "claydol": { - "level": 84, - "moves": ["earthquake", "explosion", "icebeam", "psychic", "rapidspin", "stealthrock"] - }, - "cradily": { - "level": 88, - "moves": ["curse", "earthquake", "recover", "rest", "rockslide", "seedbomb", "sleeptalk", "stealthrock", "toxic"] - }, - "armaldo": { - "level": 88, - "moves": ["earthquake", "rapidspin", "rockpolish", "stealthrock", "stoneedge", "swordsdance", "toxic", "xscissor"] - }, - "milotic": { - "level": 83, - "moves": ["haze", "icebeam", "recover", "rest", "sleeptalk", "surf", "toxic"] - }, - "castform": { - "level": 100, - "moves": ["energyball", "fireblast", "icebeam", "shadowball", "thunderbolt"] - }, - "kecleon": { - "level": 89, - "moves": ["aquatail", "recover", "return", "stealthrock", "thunderwave", "toxic"] - }, - "banette": { - "level": 89, - "moves": ["destinybond", "hiddenpowerfighting", "shadowclaw", "shadowsneak", "taunt", "thunderwave", "willowisp"] - }, - "tropius": { - "level": 90, - "moves": ["aerialace", "curse", "dragondance", "earthquake", "leafblade", "leafstorm", "leechseed", "roost", "swordsdance", "toxic", "whirlwind"] - }, - "chimecho": { - "level": 90, - "moves": ["calmmind", "hiddenpowerfire", "psychic", "recover", "signalbeam", "thunderwave", "yawn"] - }, - "absol": { - "level": 84, - "moves": ["nightslash", "psychocut", "pursuit", "suckerpunch", "superpower", "swordsdance"] - }, - "glalie": { - "level": 88, - "moves": ["earthquake", "explosion", "icebeam", "spikes", "taunt"] - }, - "walrein": { - "level": 88, - "moves": ["encore", "icebeam", "protect", "rest", "roar", "sleeptalk", "surf", "toxic"] - }, - "huntail": { - "level": 88, - "moves": ["doubleedge", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "suckerpunch", "surf"] - }, - "gorebyss": { - "level": 88, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"] - }, - "relicanth": { - "level": 88, - "moves": ["doubleedge", "earthquake", "headsmash", "rockpolish", "stealthrock", "waterfall"] - }, - "luvdisc": { - "level": 91, - "moves": ["icebeam", "protect", "surf", "sweetkiss", "toxic"] - }, - "salamence": { - "level": 76, - "moves": ["dracometeor", "dragondance", "earthquake", "fireblast", "outrage", "roost"] - }, - "metagross": { - "level": 79, - "moves": ["agility", "bulletpunch", "earthquake", "explosion", "meteormash", "stealthrock", "zenheadbutt"] - }, - "regirock": { - "level": 87, - "moves": ["earthquake", "explosion", "rest", "rockslide", "sleeptalk", "stealthrock", "thunderwave"] - }, - "regice": { - "level": 85, - "moves": ["focusblast", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave"] - }, - "registeel": { - "level": 83, - "moves": ["curse", "ironhead", "rest", "sleeptalk", "stealthrock", "thunderwave", "toxic"] - }, - "latias": { - "level": 79, - "moves": ["calmmind", "dragonpulse", "psychic", "refresh", "roost", "surf"] - }, - "latios": { - "level": 76, - "moves": ["calmmind", "dracometeor", "dragonpulse", "hiddenpowerfire", "psychic", "roost", "surf", "thunderbolt", "trick"] - }, - "kyogre": { - "level": 73, - "moves": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder", "waterspout"] - }, - "groudon": { - "level": 75, - "moves": ["earthquake", "firepunch", "rockpolish", "stealthrock", "stoneedge", "swordsdance", "toxic"] - }, - "rayquaza": { - "level": 75, - "moves": ["dragonclaw", "dragondance", "earthquake", "extremespeed", "outrage", "overheat", "swordsdance"] - }, - "jirachi": { - "level": 77, - "moves": ["bodyslam", "calmmind", "firepunch", "flashcannon", "icepunch", "ironhead", "psychic", "stealthrock", "substitute", "thunderbolt", "uturn", "wish"] - }, - "deoxys": { - "level": 76, - "moves": ["extremespeed", "icebeam", "psychoboost", "spikes", "stealthrock", "superpower"] - }, - "deoxysattack": { - "level": 75, - "moves": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "shadowball", "stealthrock", "superpower"] - }, - "deoxysdefense": { - "level": 76, - "moves": ["recover", "seismictoss", "spikes", "stealthrock", "taunt", "toxic"] - }, - "deoxysspeed": { - "level": 77, - "moves": ["lightscreen", "psychoboost", "reflect", "spikes", "stealthrock", "superpower", "taunt"] - }, - "torterra": { - "level": 85, - "moves": ["earthquake", "leechseed", "roar", "rockpolish", "stealthrock", "stoneedge", "synthesis", "woodhammer"] - }, - "infernape": { - "level": 79, - "moves": ["closecombat", "flareblitz", "grassknot", "hiddenpowerice", "machpunch", "stealthrock", "stoneedge", "swordsdance", "uturn"] - }, - "empoleon": { - "level": 80, - "moves": ["agility", "grassknot", "hiddenpowerelectric", "hydropump", "icebeam", "roar", "stealthrock", "surf"] - }, - "staraptor": { - "level": 82, - "moves": ["bravebird", "closecombat", "doubleedge", "pursuit", "quickattack", "return", "roost", "substitute", "uturn"] - }, - "bibarel": { - "level": 90, - "moves": ["curse", "quickattack", "rest", "waterfall"] - }, - "kricketune": { - "level": 91, - "moves": ["brickbreak", "nightslash", "return", "swordsdance", "xscissor"] - }, - "luxray": { - "level": 88, - "moves": ["crunch", "icefang", "protect", "roar", "superpower", "thunderbolt", "toxic"] - }, - "roserade": { - "level": 80, - "moves": ["energyball", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "rest", "sleeppowder", "sludgebomb", "spikes", "toxicspikes"] - }, - "rampardos": { - "level": 88, - "moves": ["earthquake", "firepunch", "icebeam", "rockpolish", "stoneedge", "zenheadbutt"] - }, - "bastiodon": { - "level": 88, - "moves": ["earthquake", "metalburst", "protect", "roar", "rockslide", "stealthrock", "toxic"] - }, - "wormadam": { - "level": 91, - "moves": ["hiddenpowerice", "hiddenpowerrock", "leafstorm", "psychic", "signalbeam"] - }, - "wormadamsandy": { - "level": 90, - "moves": ["earthquake", "rest", "sleeptalk", "toxic"] - }, - "wormadamtrash": { - "level": 88, - "moves": ["gyroball", "protect", "stealthrock", "toxic"] - }, - "mothim": { - "level": 88, - "moves": ["airslash", "bugbuzz", "hiddenpowerfighting", "hiddenpowerground", "shadowball", "uturn"] - }, - "vespiquen": { - "level": 91, - "moves": ["attackorder", "defendorder", "protect", "roost", "substitute", "toxic"] - }, - "pachirisu": { - "level": 90, - "moves": ["discharge", "lightscreen", "superfang", "toxic", "uturn"] - }, - "floatzel": { - "level": 87, - "moves": ["aquajet", "batonpass", "bulkup", "crunch", "icepunch", "return", "taunt", "waterfall"] - }, - "cherrim": { - "level": 90, - "moves": ["aromatherapy", "energyball", "hiddenpowerfire", "hiddenpowerground", "synthesis", "toxic"] - }, - "cherrimsunshine": { - "level": 90, - "moves": ["hiddenpowerice", "solarbeam", "sunnyday", "weatherball"] - }, - "gastrodon": { - "level": 88, - "moves": ["earthpower", "icebeam", "recover", "surf", "toxic"] - }, - "ambipom": { - "level": 84, - "moves": ["fakeout", "lowkick", "payback", "pursuit", "return", "uturn"] - }, - "drifblim": { - "level": 87, - "moves": ["calmmind", "hiddenpowerfighting", "rest", "shadowball", "substitute", "thunderbolt"] - }, - "lopunny": { - "level": 88, - "moves": ["batonpass", "encore", "healingwish", "return", "substitute", "thunderwave", "toxic"] - }, - "mismagius": { - "level": 84, - "moves": ["hiddenpowerfighting", "nastyplot", "painsplit", "shadowball", "substitute", "taunt", "thunderbolt", "trick", "willowisp"] - }, - "honchkrow": { - "level": 82, - "moves": ["bravebird", "heatwave", "pursuit", "suckerpunch", "superpower"] - }, - "purugly": { - "level": 88, - "moves": ["fakeout", "return", "shadowclaw", "suckerpunch", "taunt", "uturn"] - }, - "skuntank": { - "level": 87, - "moves": ["crunch", "explosion", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"] - }, - "bronzong": { - "level": 80, - "moves": ["earthquake", "explosion", "gyroball", "hypnosis", "lightscreen", "payback", "reflect", "stealthrock"] - }, - "chatot": { - "level": 88, - "moves": ["encore", "heatwave", "hiddenpowergrass", "hypervoice", "nastyplot", "uturn"] - }, - "spiritomb": { - "level": 85, - "moves": ["calmmind", "darkpulse", "hiddenpowerfighting", "rest", "sleeptalk", "willowisp"] - }, - "garchomp": { - "level": 76, - "moves": ["dragonclaw", "earthquake", "fireblast", "outrage", "stealthrock", "stoneedge", "substitute", "swordsdance"] - }, - "lucario": { - "level": 80, - "moves": ["agility", "closecombat", "crunch", "extremespeed", "icepunch", "stoneedge", "swordsdance"] - }, - "hippowdon": { - "level": 80, - "moves": ["earthquake", "icefang", "roar", "slackoff", "stealthrock", "stoneedge", "toxic"] - }, - "drapion": { - "level": 84, - "moves": ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes", "whirlwind"] - }, - "toxicroak": { - "level": 84, - "moves": ["crosschop", "focuspunch", "icepunch", "substitute", "suckerpunch", "swordsdance"] - }, - "carnivine": { - "level": 89, - "moves": ["powerwhip", "return", "sleeppowder", "substitute", "swordsdance", "synthesis"] - }, - "lumineon": { - "level": 89, - "moves": ["hiddenpowerelectric", "hiddenpowergrass", "icebeam", "raindance", "surf", "uturn"] - }, - "abomasnow": { - "level": 82, - "moves": ["blizzard", "earthquake", "energyball", "hiddenpowerfire", "iceshard", "leechseed", "substitute", "woodhammer"] - }, - "weavile": { - "level": 79, - "moves": ["icepunch", "iceshard", "lowkick", "nightslash", "pursuit", "swordsdance"] - }, - "magnezone": { - "level": 80, - "moves": ["explosion", "flashcannon", "hiddenpowergrass", "hiddenpowerice", "magnetrise", "substitute", "thunderbolt"] - }, - "lickilicky": { - "level": 88, - "moves": ["aquatail", "bodyslam", "earthquake", "explosion", "healbell", "protect", "return", "wish"] - }, - "rhyperior": { - "level": 84, - "moves": ["earthquake", "icepunch", "megahorn", "rockpolish", "stealthrock", "stoneedge"] - }, - "tangrowth": { - "level": 84, - "moves": ["earthquake", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "powerwhip", "rockslide", "sleeppowder", "stunspore", "swordsdance", "synthesis"] - }, - "electivire": { - "level": 82, - "moves": ["crosschop", "earthquake", "flamethrower", "hiddenpowergrass", "icepunch", "thunderbolt"] - }, - "magmortar": { - "level": 88, - "moves": ["fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderbolt"] - }, - "togekiss": { - "level": 82, - "moves": ["airslash", "aurasphere", "fireblast", "healbell", "nastyplot", "roost", "thunderwave"] - }, - "yanmega": { - "level": 82, - "moves": ["airslash", "bugbuzz", "hiddenpowerfire", "hiddenpowerground", "protect", "uturn"] - }, - "leafeon": { - "level": 84, - "moves": ["batonpass", "doubleedge", "healbell", "leafblade", "substitute", "swordsdance", "synthesis", "yawn"] - }, - "glaceon": { - "level": 88, - "moves": ["hiddenpowerfire", "hiddenpowerground", "icebeam", "protect", "shadowball", "toxic", "wish"] - }, - "gliscor": { - "level": 80, - "moves": ["earthquake", "roost", "stealthrock", "stoneedge", "swordsdance", "taunt", "toxic", "uturn"] - }, - "mamoswine": { - "level": 82, - "moves": ["earthquake", "endeavor", "iceshard", "stealthrock", "stoneedge", "superpower"] - }, - "porygonz": { - "level": 82, - "moves": ["agility", "darkpulse", "hiddenpowerfighting", "icebeam", "nastyplot", "thunderbolt", "triattack", "trick"] - }, - "gallade": { - "level": 82, - "moves": ["closecombat", "icepunch", "nightslash", "psychocut", "shadowsneak", "stoneedge", "swordsdance", "trick"] - }, - "probopass": { - "level": 88, - "moves": ["earthpower", "powergem", "stealthrock", "thunderwave", "toxic"] - }, - "dusknoir": { - "level": 83, - "moves": ["earthquake", "focuspunch", "icebeam", "painsplit", "shadowsneak", "substitute", "willowisp"] - }, - "froslass": { - "level": 82, - "moves": ["destinybond", "icebeam", "shadowball", "spikes", "taunt"] - }, - "rotomheat": { - "level": 80, - "moves": ["discharge", "lightscreen", "overheat", "painsplit", "reflect", "shadowball", "thunderbolt", "trick", "willowisp"] - }, - "rotomwash": { - "level": 80, - "moves": ["discharge", "hydropump", "lightscreen", "reflect", "rest", "shadowball", "sleeptalk", "thunderbolt", "trick", "willowisp"] - }, - "rotomfrost": { - "level": 80, - "moves": ["blizzard", "discharge", "lightscreen", "reflect", "rest", "shadowball", "sleeptalk", "thunderbolt", "trick", "willowisp"] - }, - "rotomfan": { - "level": 80, - "moves": ["discharge", "lightscreen", "painsplit", "reflect", "rest", "shadowball", "sleeptalk", "thunderbolt", "willowisp"] - }, - "rotommow": { - "level": 80, - "moves": ["discharge", "leafstorm", "lightscreen", "painsplit", "reflect", "shadowball", "thunderbolt", "trick", "willowisp"] - }, - "rotom": { - "level": 84, - "moves": ["hiddenpowerfighting", "hiddenpowerfire", "shadowball", "thunderbolt", "trick"] - }, - "uxie": { - "level": 83, - "moves": ["lightscreen", "psychic", "reflect", "stealthrock", "thunderwave", "uturn", "yawn"] - }, - "mesprit": { - "level": 84, - "moves": ["calmmind", "hiddenpowerfire", "icebeam", "psychic", "stealthrock", "substitute", "thunderbolt", "thunderwave", "uturn"] - }, - "azelf": { - "level": 80, - "moves": ["explosion", "fireblast", "flamethrower", "hiddenpowerfighting", "nastyplot", "psychic", "stealthrock", "thunderbolt", "uturn"] - }, - "dialga": { - "level": 73, - "moves": ["aurasphere", "bulkup", "dracometeor", "dragonclaw", "earthquake", "fireblast", "outrage", "rest", "sleeptalk", "stealthrock", "thunderbolt", "toxic"] - }, - "palkia": { - "level": 73, - "moves": ["aurasphere", "dracometeor", "fireblast", "hydropump", "spacialrend", "surf", "thunderbolt"] - }, - "heatran": { - "level": 79, - "moves": ["dragonpulse", "earthpower", "explosion", "fireblast", "hiddenpowergrass", "lavaplume", "protect", "roar", "stealthrock", "substitute", "toxic"] - }, - "regigigas": { - "level": 87, - "moves": ["confuseray", "earthquake", "firepunch", "return", "substitute", "thunderwave", "toxic"] - }, - "giratinaorigin": { - "level": 74, - "moves": ["aurasphere", "calmmind", "dracometeor", "dragonpulse", "outrage", "shadowball", "shadowsneak", "substitute", "willowisp"] - }, - "giratina": { - "level": 73, - "moves": ["calmmind", "dragonpulse", "rest", "roar", "shadowball", "sleeptalk", "willowisp"] - }, - "cresselia": { - "level": 82, - "moves": ["calmmind", "hiddenpowerfire", "icebeam", "lightscreen", "moonlight", "psychic", "reflect", "substitute", "thunderwave", "toxic"] - }, - "phione": { - "level": 88, - "moves": ["icebeam", "raindance", "rest", "surf", "toxic"] - }, - "manaphy": { - "level": 76, - "moves": ["energyball", "icebeam", "surf", "tailglow"] - }, - "darkrai": { - "level": 73, - "moves": ["darkpulse", "darkvoid", "focusblast", "nastyplot", "substitute"] - }, - "shaymin": { - "level": 81, - "moves": ["earthpower", "hiddenpowerfire", "hiddenpowerice", "leechseed", "rest", "seedflare", "substitute"] - }, - "shayminsky": { - "level": 75, - "moves": ["airslash", "earthpower", "hiddenpowerfire", "hiddenpowerice", "leechseed", "seedflare", "substitute"] - }, - "arceus": { - "level": 71, - "moves": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"] - }, - "arceusbug": { - "level": 71, - "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover"] - }, - "arceusdark": { - "level": 71, - "moves": ["calmmind", "focusblast", "judgment", "recover", "refresh"] - }, - "arceusdragon": { - "level": 71, - "moves": ["calmmind", "flamethrower", "judgment", "recover", "refresh", "willowisp"] - }, - "arceuselectric": { - "level": 71, - "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover"] - }, - "arceusfighting": { - "level": 71, - "moves": ["calmmind", "darkpulse", "icebeam", "judgment", "recover"] - }, - "arceusfire": { - "level": 71, - "moves": ["calmmind", "earthpower", "judgment", "recover", "thunderbolt"] - }, - "arceusflying": { - "level": 71, - "moves": ["calmmind", "earthpower", "judgment", "recover", "refresh"] - }, - "arceusghost": { - "level": 71, - "moves": ["calmmind", "focusblast", "judgment", "recover", "willowisp"] - }, - "arceusgrass": { - "level": 71, - "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover", "thunderwave"] - }, - "arceusground": { - "level": 71, - "moves": ["calmmind", "icebeam", "judgment", "recover", "thunderbolt"] - }, - "arceusice": { - "level": 71, - "moves": ["calmmind", "earthpower", "flamethrower", "judgment", "recover", "thunderbolt"] - }, - "arceuspoison": { - "level": 71, - "moves": ["calmmind", "earthpower", "judgment", "recover", "willowisp"] - }, - "arceuspsychic": { - "level": 71, - "moves": ["calmmind", "focusblast", "judgment", "recover", "shadowball"] - }, - "arceusrock": { - "level": 71, - "moves": ["calmmind", "earthpower", "judgment", "recover", "refresh", "willowisp"] - }, - "arceussteel": { - "level": 71, - "moves": ["calmmind", "earthpower", "judgment", "recover", "willowisp"] - }, - "arceuswater": { - "level": 71, - "moves": ["calmmind", "icebeam", "judgment", "recover", "refresh", "thunderbolt", "willowisp"] - } -} diff --git a/data/mods/gen4/random-teams.ts b/data/mods/gen4/random-teams.ts deleted file mode 100644 index adeeb1e88288..000000000000 --- a/data/mods/gen4/random-teams.ts +++ /dev/null @@ -1,873 +0,0 @@ -import RandomGen5Teams from '../gen5/random-teams'; -import {Utils} from '../../../lib'; -import {toID} from '../../../sim/dex'; -import {PRNG} from '../../../sim'; -import type {MoveCounter, OldRandomBattleSpecies} from '../gen8/random-teams'; - - -// These moves can be used even if we aren't setting up to use them: -const SetupException = ['dracometeor', 'overheat']; - -// Give recovery moves priority over certain other defensive status moves -const recoveryMoves = [ - 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'painsplit', 'recover', 'rest', 'roost', - 'slackoff', 'softboiled', 'synthesis', 'wish', -]; -const defensiveStatusMoves = ['aromatherapy', 'haze', 'healbell', 'roar', 'whirlwind', 'willowisp', 'yawn']; -export class RandomGen4Teams extends RandomGen5Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); - - constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { - super(format, prng); - this.moveEnforcementCheckers = { - Bug: (movePool, moves, abilities, types, counter) => ( - (movePool.includes('bugbuzz') || movePool.includes('megahorn')) - ), - Dark: (movePool, moves, abilities, types, counter) => ( - !counter.get('damage') && - (!counter.get('Dark') || (counter.get('Dark') < 2 && moves.has('pursuit') && movePool.includes('suckerpunch')))), - Dragon: (movePool, moves, abilities, types, counter) => !counter.get('Dragon'), - Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), - Fighting: (movePool, moves, abilities, types, counter) => ( - !counter.get('Fighting') && - (!!counter.setupType || !counter.get('Status') || movePool.includes('closecombat') || movePool.includes('highjumpkick')) - ), - Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), - Flying: (movePool, moves, abilities, types, counter) => !counter.get('Flying') && ( - (counter.setupType !== 'Special' && movePool.includes('bravebird')) || - (abilities.has('Serene Grace') && movePool.includes('airslash')) - ), - Grass: (movePool, moves, abilities, types, counter) => ( - !counter.get('Grass') && - ['leafblade', 'leafstorm', 'seedflare', 'woodhammer'].some(m => movePool.includes(m)) - ), - Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), - Ice: (movePool, moves, abilities, types, counter) => ( - !counter.get('Ice') && (!types.has('Water') || !counter.get('Water')) - ), - Rock: (movePool, moves, abilities, types, counter) => ( - !counter.get('Rock') && (movePool.includes('headsmash') || movePool.includes('stoneedge')) - ), - Steel: (movePool, moves, abilities, types, counter) => !counter.get('Steel') && movePool.includes('meteormash'), - Water: (movePool, moves, abilities, types, counter) => ( - !counter.get('Water') && (moves.has('raindance') || !types.has('Ice') || !counter.get('Ice')) - ), - Adaptability: (movePool, moves, abilities, types, counter, species) => ( - !counter.setupType && - species.types.length > 1 && - (!counter.get(species.types[0]) || !counter.get(species.types[1])) - ), - Guts: (movePool, moves, abilities, types) => types.has('Normal') && movePool.includes('facade'), - 'Slow Start': movePool => movePool.includes('substitute'), - protect: movePool => movePool.includes('wish'), - wish: movePool => movePool.includes('protect'), - }; - } - shouldCullMove( - move: Move, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - ): {cull: boolean, isSetup?: boolean} { - const restTalk = moves.has('rest') && moves.has('sleeptalk'); - - switch (move.id) { - // Not very useful without their supporting moves - case 'batonpass': - return {cull: !counter.setupType && !counter.get('speedsetup') && !moves.has('substitute')}; - case 'eruption': case 'waterspout': - return {cull: counter.get('Physical') + counter.get('Special') < 4}; - case 'focuspunch': - return {cull: !moves.has('substitute') || counter.damagingMoves.size < 2 || moves.has('hammerarm')}; - case 'lightscreen': - if (movePool.length > 1) { - const screen = movePool.indexOf('reflect'); - if (screen >= 0) { - this.fastPop(movePool, screen); - return {cull: true}; - } - } - return {cull: false}; - case 'raindance': - return {cull: abilities.has('Hydration') ? !moves.has('rest') : counter.get('Physical') + counter.get('Special') < 2}; - case 'reflect': - if (movePool.length > 1) { - const screen = movePool.indexOf('lightscreen'); - if (screen >= 0) { - this.fastPop(movePool, screen); - return {cull: true}; - } - } - return {cull: false}; - case 'refresh': - return {cull: !(moves.has('calmmind') && (moves.has('recover') || moves.has('roost')))}; - case 'rest': - return {cull: movePool.includes('sleeptalk') || (abilities.has('Hydration') && !moves.has('raindance')) || - moves.has('reflect') && moves.has('lightscreen')}; - case 'sleeptalk': - if (movePool.length > 1) { - const rest = movePool.indexOf('rest'); - if (rest >= 0) this.fastPop(movePool, rest); - } - return {cull: !moves.has('rest')}; - case 'sunnyday': - return {cull: !moves.has('solarbeam')}; - case 'weatherball': - return {cull: !moves.has('raindance') && !moves.has('sunnyday')}; - - // Set up once and only if we have the moves for it - case 'bellydrum': case 'bulkup': case 'curse': case 'dragondance': case 'swordsdance': - const notEnoughPhysicalMoves = ( - counter.get('Physical') + counter.get('physicalpool') < 2 && - !moves.has('batonpass') && - (!moves.has('rest') || !moves.has('sleeptalk')) - ); - const badPhysicalMoveset = counter.setupType !== 'Physical' || counter.get('physicalsetup') > 1; - return {cull: moves.has('sunnyday') || notEnoughPhysicalMoves || badPhysicalMoveset, isSetup: true}; - case 'calmmind': case 'nastyplot': case 'tailglow': - const notEnoughSpecialMoves = ( - counter.get('Special') + counter.get('specialpool') < 2 && - !moves.has('batonpass') && - (!moves.has('rest') || !moves.has('sleeptalk')) - ); - const badSpecialMoveset = counter.setupType !== 'Special' || counter.get('specialsetup') > 1; - return {cull: notEnoughSpecialMoves || badSpecialMoveset, isSetup: true}; - case 'agility': case 'rockpolish': - return {cull: restTalk || (counter.damagingMoves.size < 2 && !moves.has('batonpass')), isSetup: !counter.setupType}; - - // Bad after setup - case 'destinybond': - return {cull: !!counter.setupType || moves.has('explosion')}; - case 'explosion': case 'selfdestruct': - return {cull: ( - counter.setupType === 'Special' || - Array.from(moves).some(id => recoveryMoves.includes(id) || defensiveStatusMoves.includes(id)) || - ['batonpass', 'protect', 'substitute'].some(m => moves.has(m)) - )}; - case 'foresight': case 'roar': case 'whirlwind': - return {cull: !!counter.setupType && !abilities.has('Speed Boost')}; - case 'healingwish': case 'lunardance': - return {cull: !!counter.setupType || moves.has('rest') || moves.has('substitute')}; - case 'protect': - return {cull: ( - ['rest', 'softboiled'].some(m => moves.has(m)) || - !['Guts', 'Quick Feet', 'Speed Boost'].some(abil => abilities.has(abil)) && - !['toxic', 'wish'].some(m => moves.has(m)) - )}; - case 'wish': - return {cull: ( - !['batonpass', 'ironhead', 'moonlight', 'protect', 'softboiled', 'uturn'].some(m => moves.has(m)) && - !movePool.includes('protect') - )}; - case 'moonlight': - return {cull: (moves.has('wish') && (moves.has('protect') || movePool.includes('protect')))}; - case 'rapidspin': - return {cull: !!teamDetails.rapidSpin || (!!counter.setupType && counter.get('Physical') + counter.get('Special') < 2)}; - case 'fakeout': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('substitute')}; - case 'spikes': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('substitute')}; - case 'stealthrock': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - moves.has('rest') || moves.has('substitute') || - !!teamDetails.stealthRock - )}; - case 'switcheroo': case 'trick': - return {cull: ( - counter.get('Physical') + counter.get('Special') < 3 || - !!counter.setupType || - ['fakeout', 'lightscreen', 'reflect', 'suckerpunch', 'trickroom'].some(m => moves.has(m)) - )}; - case 'toxic': case 'toxicspikes': - return {cull: ( - !!counter.setupType || !!counter.get('speedsetup') || !!teamDetails.toxicSpikes || moves.has('willowisp') - )}; - case 'trickroom': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - counter.damagingMoves.size < 2 || - moves.has('lightscreen') || moves.has('reflect') || - restTalk - )}; - case 'uturn': - return {cull: ( - (abilities.has('Speed Boost') && moves.has('protect')) || - !!counter.setupType || - !!counter.get('speedsetup') || - moves.has('batonpass') || moves.has('substitute') - )}; - - // Bit redundant to have both - // Attacks: - case 'bodyslam': case 'slash': - return {cull: moves.has('facade') || moves.has('return')}; - case 'bugbite': - return {cull: moves.has('uturn')}; - case 'doubleedge': - return {cull: ['bodyslam', 'facade', 'return'].some(m => moves.has(m))}; - case 'endeavor': - return {cull: !isLead}; - case 'facade': - return {cull: moves.has('substitute')}; - case 'headbutt': - return {cull: !moves.has('bodyslam') && !moves.has('thunderwave')}; - case 'swift': - return {cull: counter.setupType !== 'Special'}; - case 'quickattack': - return {cull: moves.has('thunderwave')}; - case 'firepunch': case 'flamethrower': - return {cull: moves.has('fireblast') || moves.has('overheat') && !counter.setupType}; - case 'flareblitz': - return {cull: moves.has('superpower') && !!counter.get('speedsetup')}; - case 'lavaplume': case 'fireblast': - if (move.id === 'fireblast' && moves.has('lavaplume') && !counter.get('speedsetup')) return {cull: true}; - if (move.id === 'lavaplume' && moves.has('fireblast') && counter.get('speedsetup')) return {cull: true}; - if (moves.has('flareblitz') && counter.setupType !== 'Special' && - (!moves.has('superpower') || !counter.get('speedsetup'))) return {cull: true}; - break; - case 'overheat': - return {cull: counter.setupType === 'Special' || ['batonpass', 'fireblast', 'flareblitz'].some(m => moves.has(m))}; - case 'aquajet': - return {cull: moves.has('dragondance') || (moves.has('waterfall') && counter.get('Physical') < 3)}; - case 'hydropump': - return {cull: moves.has('surf')}; - case 'waterfall': - return {cull: ( - moves.has('aquatail') || - (counter.setupType !== 'Physical' && (moves.has('hydropump') || moves.has('surf'))) - )}; - case 'chargebeam': - return {cull: moves.has('thunderbolt') && counter.get('Special') < 3}; - case 'discharge': - return {cull: moves.has('thunderbolt') || moves.has('shadowball')}; - case 'energyball': - return {cull: ( - moves.has('woodhammer') || - (moves.has('sunnyday') && moves.has('solarbeam')) || - (moves.has('leafstorm') && counter.get('Physical') + counter.get('Special') < 4) - )}; - case 'grassknot': case 'leafblade': case 'seedbomb': - return {cull: moves.has('woodhammer') || (moves.has('sunnyday') && moves.has('solarbeam'))}; - case 'leafstorm': - return {cull: ( - !!counter.setupType || - moves.has('batonpass') || - moves.has('powerwhip') || - moves.has('leafblade') || - (moves.has('sunnyday') && moves.has('solarbeam')) - )}; - case 'solarbeam': - return {cull: counter.setupType === 'Physical' || !moves.has('sunnyday')}; - case 'icepunch': - return {cull: !counter.setupType && moves.has('icebeam')}; - case 'aurasphere': case 'drainpunch': case 'focusblast': - return {cull: moves.has('closecombat') && counter.setupType !== 'Special'}; - case 'brickbreak': case 'closecombat': case 'crosschop': case 'lowkick': - return {cull: moves.has('substitute') && moves.has('focuspunch')}; - case 'machpunch': - return {cull: (counter.damagingMoves.size <= counter.get('Fighting'))}; - case 'seismictoss': - return {cull: moves.has('nightshade') || counter.get('Physical') + counter.get('Special') >= 1}; - case 'superpower': - return {cull: moves.has('dragondance') || !!counter.get('speedsetup') && !types.has('Fighting')}; - case 'gunkshot': - return {cull: moves.has('poisonjab')}; - case 'earthpower': - return {cull: moves.has('earthquake')}; - case 'airslash': - return {cull: !counter.setupType && moves.has('bravebird')}; - case 'zenheadbutt': - return {cull: moves.has('psychocut')}; - case 'rockblast': case 'rockslide': - return {cull: moves.has('stoneedge')}; - case 'shadowclaw': case 'shadowsneak': - return {cull: moves.has('suckerpunch') && !types.has('Ghost')}; - case 'dracometeor': - return {cull: moves.has('calmmind') || restTalk || (!!counter.setupType && counter.get('stab') < 2)}; - case 'dragonclaw': - return {cull: moves.has('outrage')}; - case 'dragonpulse': - return {cull: moves.has('dracometeor') || moves.has('outrage')}; - case 'crunch': case 'nightslash': - return {cull: moves.has('suckerpunch') && !types.has('Dark')}; - case 'pursuit': - return {cull: !!counter.setupType || moves.has('payback')}; - case 'flashcannon': - return {cull: (moves.has('ironhead') || movePool.includes('ironhead')) && counter.setupType !== 'Special'}; - - // Status: - case 'encore': - return {cull: ['roar', 'taunt', 'whirlwind'].some(m => moves.has(m)) || restTalk}; - case 'haze': case 'taunt': - return {cull: restTalk}; - case 'healbell': - // Ampharos doesn't want both - return {cull: moves.has('reflect') && moves.has('lightscreen')}; - case 'leechseed': case 'painsplit': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('rest')}; - case 'recover': case 'slackoff': - return {cull: restTalk}; - case 'stunspore': - return {cull: ( - !!counter.setupType || - moves.has('toxic') || - movePool.includes('sleeppowder') || - movePool.includes('spore') - )}; - case 'substitute': - return {cull: ['lightscreen', 'pursuit', 'rapidspin', 'reflect', 'rest', 'taunt'].some(m => moves.has(m))}; - case 'thunderwave': - return {cull: ( - !!counter.setupType || - moves.has('toxic') || - moves.has('trickroom') || - (moves.has('bodyslam') && abilities.has('Serene Grace')) - )}; - case 'yawn': - return {cull: moves.has('thunderwave') || moves.has('toxic')}; - } - return {cull: false}; - } - - shouldCullAbility( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - ) { - switch (ability) { - case 'Anger Point': case 'Ice Body': case 'Steadfast': case 'Unaware': - return true; - case 'Blaze': - return !counter.get('Fire'); - case 'Chlorophyll': - return !moves.has('sunnyday') && !teamDetails.sun; - case 'Compound Eyes': case 'No Guard': - return !counter.get('inaccurate'); - case 'Early Bird': - return !moves.has('rest'); - case 'Gluttony': - return !moves.has('bellydrum'); - case 'Hustle': - return counter.get('Physical') < 2; - case 'Mold Breaker': - return !moves.has('earthquake'); - case 'Overgrow': - return !counter.get('Grass'); - case 'Reckless': case 'Rock Head': - return !counter.get('recoil'); - case 'Sand Veil': - return !teamDetails.sand; - case 'Serene Grace': - return !counter.get('serenegrace') || species.id === 'blissey'; - case 'Simple': - return !counter.setupType && !moves.has('cosmicpower'); - case 'Skill Link': - return !counter.get('skilllink'); - case 'Snow Cloak': - return !teamDetails.hail; - case 'Solar Power': - return !counter.get('Special') || !moves.has('sunnyday') && !teamDetails.sun; - case 'Speed Boost': - return moves.has('uturn'); - case 'Swift Swim': - return !moves.has('raindance') && !teamDetails.rain; - case 'Swarm': - return !counter.get('Bug'); - case 'Synchronize': - return counter.get('Status') < 2; - case 'Technician': - return !counter.get('technician') || moves.has('toxic'); - case 'Thick Fat': - return (moves.has('facade') || moves.has('fakeout')) && abilities.has('Guts'); - case 'Tinted Lens': - return moves.has('protect'); - case 'Torrent': - return !counter.get('Water'); - } - - return false; - } - - getHighPriorityItem( - ability: string, - types: Set, - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - ): string | undefined { - if (species.requiredItem) return species.requiredItem; - if (species.requiredItems) return this.sample(species.requiredItems); - if (species.name === 'Ditto') return this.sample(['Salac Berry', 'Sitrus Berry']); - if (species.name === 'Farfetch\u2019d' && counter.get('Physical') < 4) return 'Stick'; - if (species.name === 'Marowak') return 'Thick Club'; - if (species.name === 'Pikachu') return 'Light Ball'; - if (species.name === 'Shedinja' || species.name === 'Smeargle') return 'Focus Sash'; - if (species.name === 'Unown') return 'Choice Specs'; - if (species.name === 'Wobbuffet') { - return moves.has('destinybond') ? 'Custap Berry' : this.sample(['Leftovers', 'Sitrus Berry']); - } - - if (moves.has('switcheroo') || moves.has('trick')) { - if ( - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - !counter.get('priority') && - this.randomChance(2, 3) - ) { - return 'Choice Scarf'; - } else { - return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; - } - } - if (moves.has('bellydrum')) return 'Sitrus Berry'; - if (ability === 'Magic Guard' || ability === 'Speed Boost' && counter.get('Status') < 2) return 'Life Orb'; - if (ability === 'Poison Heal' || ability === 'Toxic Boost') return 'Toxic Orb'; - - if (moves.has('rest') && !moves.has('sleeptalk') && ability !== 'Natural Cure' && ability !== 'Shed Skin') { - return (moves.has('raindance') && ability === 'Hydration') ? 'Damp Rock' : 'Chesto Berry'; - } - if (moves.has('raindance') && ability === 'Swift Swim' && counter.get('Status') < 2) return 'Life Orb'; - if (moves.has('sunnyday')) return (ability === 'Chlorophyll' && counter.get('Status') < 2) ? 'Life Orb' : 'Heat Rock'; - if (moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; - if ((ability === 'Guts' || ability === 'Quick Feet') && moves.has('facade')) return 'Toxic Orb'; - if (ability === 'Unburden') return 'Sitrus Berry'; - if (species.baseStats.hp + species.baseStats.def + species.baseStats.spd <= 150) { - return isLead ? 'Focus Sash' : 'Life Orb'; - } - if (moves.has('endeavor')) return 'Focus Sash'; - } - - getMediumPriorityItem( - ability: string, - moves: Set, - counter: MoveCounter, - species: Species, - isDoubles: boolean, - isLead: boolean - ): string | undefined { - if ( - ability === 'Slow Start' || - ['curse', 'leechseed', 'protect', 'roar', 'sleeptalk', 'whirlwind'].some(m => moves.has(m)) || - (ability === 'Serene Grace' && ['bodyslam', 'headbutt', 'ironhead'].some(m => moves.has(m))) - ) { - return 'Leftovers'; - } - - if (counter.get('Physical') >= 4 && !moves.has('fakeout') && !moves.has('rapidspin') && !moves.has('suckerpunch')) { - return ( - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - !counter.get('priority') && !moves.has('bodyslam') && this.randomChance(2, 3) - ) ? 'Choice Scarf' : 'Choice Band'; - } - - if ( - (counter.get('Special') >= 4 || ( - counter.get('Special') >= 3 && - ['batonpass', 'uturn', 'waterspout', 'selfdestruct'].some(m => moves.has(m)) - )) && - !moves.has('chargebeam') - ) { - return ( - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - ability !== 'Speed Boost' && !counter.get('priority') && this.randomChance(2, 3) - ) ? 'Choice Scarf' : 'Choice Specs'; - } - - if (moves.has('outrage') && counter.setupType) return 'Lum Berry'; - if (moves.has('substitute')) { - return (counter.damagingMoves.size < 2 || - !counter.get('drain') && - (counter.damagingMoves.size < 3 || species.baseStats.hp >= 60 || species.baseStats.def + species.baseStats.spd >= 180) - ) ? 'Leftovers' : 'Life Orb'; - } - if (ability === 'Guts') return 'Toxic Orb'; - if ( - isLead && - !counter.get('recoil') && - !Array.from(moves).some(id => !!recoveryMoves.includes(id)) && - species.baseStats.hp + species.baseStats.def + species.baseStats.spd < 225 - ) { - return 'Focus Sash'; - } - if (counter.get('Dark') >= 3) return 'Black Glasses'; - if (counter.damagingMoves.size >= 4) { - return ( - counter.get('Normal') || counter.get('Dragon') > 1 || moves.has('chargebeam') || moves.has('suckerpunch') - ) ? 'Life Orb' : 'Expert Belt'; - } - if (counter.damagingMoves.size >= 3 && !moves.has('superfang') && !moves.has('metalburst')) { - const totalBulk = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; - return ( - counter.get('speedsetup') || counter.get('priority') || - moves.has('dragondance') || moves.has('trickroom') || - totalBulk < 235 || - (species.baseStats.spe >= 70 && (totalBulk < 260 || (!!counter.get('recovery') && totalBulk < 285))) - ) ? 'Life Orb' : 'Leftovers'; - } - } - - getLowPriorityItem( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - ) { - if (types.has('Poison')) return 'Black Sludge'; - if (this.dex.getEffectiveness('Rock', species) >= 1 || moves.has('roar')) return 'Leftovers'; - if (counter.get('Status') <= 1 && ['metalburst', 'rapidspin', 'superfang'].every(m => !moves.has(m))) return 'Life Orb'; - return 'Leftovers'; - } - - randomSet( - species: string | Species, - teamDetails: RandomTeamsTypes.TeamDetails = {}, - isLead = false - ): RandomTeamsTypes.RandomSet { - species = this.dex.species.get(species); - let forme = species.name; - - if (typeof species.battleOnly === 'string') forme = species.battleOnly; - - if (species.cosmeticFormes) { - forme = this.sample([species.name].concat(species.cosmeticFormes)); - } - - const data = this.randomData[species.id]; - const movePool = (data.moves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice(); - const rejectedPool: string[] = []; - const moves = new Set(); - let ability = ''; - let item: string | undefined; - const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; - const ivs: SparseStatsTable = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; - - const types = new Set(species.types); - - const abilities = new Set(Object.values(species.abilities)); - - let availableHP = 0; - for (const setMoveid of movePool) { - if (setMoveid.startsWith('hiddenpower')) availableHP++; - } - - let counter: MoveCounter; - let hasHiddenPower = false; - - do { - // Choose next 4 moves from learnset/viable moves and add them to moves list: - while (moves.size < this.maxMoveCount && movePool.length) { - const moveid = this.sampleNoReplace(movePool); - if (moveid.startsWith('hiddenpower')) { - availableHP--; - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - while (moves.size < this.maxMoveCount && rejectedPool.length) { - const moveid = this.sampleNoReplace(rejectedPool); - if (moveid.startsWith('hiddenpower')) { - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - counter = this.queryMoves(moves, species.types, abilities, movePool); - if (types.has('Dark') && moves.has('suckerpunch') && species.types.length === 1) { - counter.add('stab'); - } - - // Iterate through the moves again, this time to cull them: - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - - let {cull, isSetup} = this.shouldCullMove( - move, types, moves, abilities, counter, - movePool, teamDetails, species, isLead - ); - - // Increased/decreased priority moves are unneeded with moves that boost only speed - if (move.priority !== 0 && !!counter.get('speedsetup')) cull = true; - - // This move doesn't satisfy our setup requirements: - if ( - (move.category === 'Physical' && counter.setupType === 'Special') || - (move.category === 'Special' && counter.setupType === 'Physical') - ) { - // Reject STABs last in case the setup type changes later on - if ( - !SetupException.includes(moveid) && - (!types.has(move.type) || counter.get('stab') > 1 || counter.get(move.category) < 2) - ) { - cull = true; - } - } - if ( - counter.setupType && !isSetup && move.category !== counter.setupType && - counter.get(counter.setupType) < 2 && !moves.has('batonpass') - ) { - // Mono-attacking with setup and RestTalk or recovery + status healing is allowed - if ( - moveid !== 'rest' && moveid !== 'sleeptalk' && - !(recoveryMoves.includes(moveid) && (moves.has('healbell') || moves.has('refresh'))) && - !((moveid === 'healbell' || moveid === 'refresh') && Array.from(moves).some(id => recoveryMoves.includes(id))) && ( - // Reject Status moves only if there is nothing else to reject - move.category !== 'Status' || ( - counter.get(counter.setupType) + counter.get('Status') > 3 && - counter.get('physicalsetup') + counter.get('specialsetup') < 2 - ) - ) - ) { - cull = true; - } - } - if ( - moveid === 'hiddenpower' && - counter.setupType === 'Special' && - species.types.length > 1 && - counter.get('Special') <= 2 && - !types.has(move.type) && - !counter.get('Physical') && - counter.get('specialpool') && - (!(types.has('Ghost') && move.type === 'Fighting' || types.has('Electric') && move.type === 'Ice')) - ) { - // Hidden Power isn't good enough - cull = true; - } - - // Reject defensive status moves if a reliable recovery move is available but not selected. - // Toxic is only defensive if used with another status move other than Protect (Toxic + 3 attacks and Toxic + Protect are ok). - if ( - !Array.from(moves).some(id => recoveryMoves.includes(id)) && - movePool.some(id => recoveryMoves.includes(id)) && ( - defensiveStatusMoves.includes(moveid) || - (moveid === 'toxic' && ((counter.get('Status') > 1 && !moves.has('protect')) || counter.get('Status') > 2)) - ) - ) { - cull = true; - } - - const runEnforcementChecker = (checkerName: string) => { - if (!this.moveEnforcementCheckers[checkerName]) return false; - return this.moveEnforcementCheckers[checkerName]( - movePool, moves, abilities, types, counter, species as Species, teamDetails - ); - }; - - const moveIsRejectable = ( - !move.weather && - !move.damage && - (move.category !== 'Status' || !move.flags.heal) && - (move.category === 'Status' || !types.has(move.type) || (move.basePower && move.basePower < 40 && !move.multihit)) && - // These moves cannot be rejected in favor of a forced move - !['judgment', 'lightscreen', 'reflect', 'sleeptalk'].includes(moveid) && - // Setup-supported moves should only be rejected under specific circumstances - (counter.get('physicalsetup') + counter.get('specialsetup') < 2 && ( - !counter.setupType || counter.setupType === 'Mixed' || - (move.category !== counter.setupType && move.category !== 'Status') || - counter.get(counter.setupType) + counter.get('Status') > 3 - )) - ); - - if (!cull && !isSetup && moveIsRejectable) { - // There may be more important moves that this Pokemon needs - const canRollForcedMoves = ( - // These moves should always be rolled - movePool.includes('spore') || (!Array.from(moves).some(id => recoveryMoves.includes(id)) && ( - movePool.includes('softboiled') && !moves.has('explosion') || - (species.baseSpecies === 'Arceus' && movePool.includes('recover')) - )) - ); - // Pokemon should usually have at least one STAB move - const requiresStab = ( - !counter.get('stab') && !counter.get('damage') && ( - species.types.length > 1 || - (species.types[0] !== 'Normal' && species.types[0] !== 'Psychic') || - !moves.has('icebeam') || - species.baseStats.spa >= species.baseStats.spd - ) - ); - if ( - canRollForcedMoves || - requiresStab || - (species.requiredMove && movePool.includes(toID(species.requiredMove))) || - (counter.get('defensesetup') && !counter.get('recovery') && !moves.has('rest')) - ) { - cull = true; - } else { - // Pokemon should have moves that benefit their typing or ability - for (const type of types) { - if (runEnforcementChecker(type)) cull = true; - } - for (const abil of abilities) { - if (runEnforcementChecker(abil)) cull = true; - } - for (const m of moves) { - if (runEnforcementChecker(m)) cull = true; - } - } - } - - // Sleep Talk shouldn't be selected without Rest - if (moveid === 'rest' && cull) { - const sleeptalk = movePool.indexOf('sleeptalk'); - if (sleeptalk >= 0) { - if (movePool.length < 2) { - cull = false; - } else { - this.fastPop(movePool, sleeptalk); - } - } - } - - // Remove rejected moves from the move list - if (cull && ( - movePool.length - availableHP || availableHP && (moveid.startsWith('hiddenpower') || !hasHiddenPower) - )) { - if (move.category !== 'Status' && (!moveid.startsWith('hiddenpower') || !availableHP)) rejectedPool.push(moveid); - moves.delete(moveid); - if (moveid.startsWith('hiddenpower')) hasHiddenPower = false; - break; - } - if (cull && rejectedPool.length) { - moves.delete(moveid); - if (moveid.startsWith('hiddenpower')) hasHiddenPower = false; - break; - } - } - } while (moves.size < this.maxMoveCount && (movePool.length || rejectedPool.length)); - - if (hasHiddenPower) { - let hpType; - for (const move of moves) { - if (move.startsWith('hiddenpower')) { - hpType = move.substr(11); - break; - } - } - if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); - const HPivs = this.dex.types.get(hpType).HPivs; - let iv: StatID; - for (iv in HPivs) { - ivs[iv] = HPivs[iv]!; - } - } - - const abilityData = Array.from(abilities).map(a => this.dex.abilities.get(a)); - Utils.sortBy(abilityData, abil => -abil.rating); - - let ability0 = abilityData[0]; - let ability1 = abilityData[1]; - if (abilityData[1]) { - if (ability0.rating <= ability1.rating && this.randomChance(1, 2)) { - [ability0, ability1] = [ability1, ability0]; - } else if (ability0.rating - 0.6 <= ability1.rating && this.randomChance(2, 3)) { - [ability0, ability1] = [ability1, ability0]; - } - ability = ability0.name; - - while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) { - if (ability === ability0.name && ability1.rating >= 1) { - ability = ability1.name; - } else { - // Default to the highest rated ability if all are rejected - ability = abilityData[0].name; - break; - } - } - - if (abilities.has('Hydration') && moves.has('raindance') && moves.has('rest')) { - ability = 'Hydration'; - } else if (abilities.has('Swift Swim') && moves.has('raindance')) { - ability = 'Swift Swim'; - } else if (abilities.has('Technician') && moves.has('machpunch') && types.has('Fighting') && counter.get('stab') < 2) { - ability = 'Technician'; - } - } else { - ability = ability0.name; - } - - item = this.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead); - if (item === undefined) item = this.getMediumPriorityItem(ability, moves, counter, species, false, isLead); - if (item === undefined) { - item = this.getLowPriorityItem(ability, types, moves, abilities, counter, teamDetails, species); - } - - // For Trick / Switcheroo - if (item === 'Leftovers' && types.has('Poison')) { - item = 'Black Sludge'; - } - - const level = this.adjustLevel || data.level || (species.nfe ? 90 : 80); - - // Prepare optimal HP - let hp = Math.floor( - Math.floor( - 2 * species.baseStats.hp + (ivs.hp || 31) + Math.floor(evs.hp / 4) + 100 - ) * level / 100 + 10 - ); - if (moves.has('substitute') && item === 'Sitrus Berry') { - // Two Substitutes should activate Sitrus Berry - while (hp % 4 > 0) { - evs.hp -= 4; - hp = Math.floor( - Math.floor( - 2 * species.baseStats.hp + (ivs.hp || 31) + Math.floor(evs.hp / 4) + 100 - ) * level / 100 + 10 - ); - } - } else if (moves.has('bellydrum') && item === 'Sitrus Berry') { - // Belly Drum should activate Sitrus Berry - if (hp % 2 > 0) evs.hp -= 4; - } else { - // Maximize number of Stealth Rock switch-ins - const srWeakness = this.dex.getEffectiveness('Rock', species); - if (srWeakness > 0 && hp % (4 / srWeakness) === 0) evs.hp -= 4; - } - - // Minimize confusion damage - if (!counter.get('Physical') && !moves.has('transform')) { - evs.atk = 0; - ivs.atk = hasHiddenPower ? (ivs.atk || 31) - 28 : 0; - } - - if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { - evs.spe = 0; - ivs.spe = hasHiddenPower ? (ivs.spe || 31) - 28 : 0; - } - - return { - name: species.baseSpecies, - species: forme, - gender: species.gender, - shiny: this.randomChance(1, 1024), - moves: Array.from(moves), - ability, - evs, - ivs, - item, - level, - }; - } -} - -export default RandomGen4Teams; diff --git a/data/mods/gen4/rulesets.ts b/data/mods/gen4/rulesets.ts index 584655085433..68bdc862268a 100644 --- a/data/mods/gen4/rulesets.ts +++ b/data/mods/gen4/rulesets.ts @@ -1,11 +1,11 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { inherit: true, ruleset: ['Obtainable', 'Sleep Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Items Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], }, flatrules: { inherit: true, - ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'Item Clause', 'Adjust Level Down = 50', 'Cancel Mod'], + ruleset: ['Obtainable', 'Species Clause', 'Nickname Clause', 'Item Clause = 1', 'Adjust Level Down = 50', 'Cancel Mod'], }, teampreview: { inherit: true, @@ -13,8 +13,9 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { this.add('clearpoke'); for (const pokemon of this.getAllPokemon()) { const details = pokemon.details.replace(', shiny', '') - .replace(/(Arceus|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') - .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*'); // Hacked-in Crowned formes will be revealed + .replace(/(Arceus|Genesect|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') + .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*') // Hacked-in Crowned formes will be revealed + .replace(/(Greninja)(?!-Ash)/g, '$1-*'); // Hacked-in Greninja-Ash will be revealed this.add('poke', pokemon.side.id, details, pokemon.item ? 'item' : ''); } this.makeRequest('teampreview'); diff --git a/data/mods/gen4/scripts.ts b/data/mods/gen4/scripts.ts index 0e7bbd58e1bc..a9279586fb30 100644 --- a/data/mods/gen4/scripts.ts +++ b/data/mods/gen4/scripts.ts @@ -47,12 +47,17 @@ export const Scripts: ModdedBattleScriptsData = { baseDamage = this.battle.randomizer(baseDamage); // STAB - if (move.forceSTAB || type !== '???' && pokemon.hasType(type)) { - // The "???" type never gets STAB - // Not even if you Roost in Gen 4 and somehow manage to use - // Struggle in the same turn. - // (On second thought, it might be easier to get a MissingNo.) - baseDamage = this.battle.modify(baseDamage, move.stab || 1.5); + // The "???" type never gets STAB + // Not even if you Roost in Gen 4 and somehow manage to use + // Struggle in the same turn. + // (On second thought, it might be easier to get a MissingNo.) + if (type !== '???') { + let stab: number | [number, number] = 1; + if (move.forceSTAB || pokemon.hasType(type)) { + stab = 1.5; + } + stab = this.battle.runEvent('ModifySTAB', pokemon, target, move, stab); + baseDamage = this.battle.modify(baseDamage, stab); } // types let typeMod = target.runEffectiveness(move); diff --git a/data/mods/gen4pt/formats-data.ts b/data/mods/gen4pt/formats-data.ts index b7409463658a..8fc4ca29bf34 100644 --- a/data/mods/gen4pt/formats-data.ts +++ b/data/mods/gen4pt/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { pichuspikyeared: { isNonstandard: "Future", tier: "Illegal", diff --git a/data/mods/gen4pt/learnsets.ts b/data/mods/gen4pt/learnsets.ts index 99c945027f13..b0a69fbc204f 100644 --- a/data/mods/gen4pt/learnsets.ts +++ b/data/mods/gen4pt/learnsets.ts @@ -1,4 +1,4 @@ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { bulbasaur: { inherit: true, learnset: { @@ -17432,7 +17432,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { raikou: { inherit: true, learnset: { - aurasphere: ["4S3"], bite: ["4L1", "3L1"], bodyslam: ["3T"], calmmind: ["4M", "4L78", "3M", "3L81"], @@ -17445,7 +17444,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { doubleteam: ["4M", "3M"], endure: ["4M", "3T"], extrasensory: ["4L64"], - extremespeed: ["4S3"], facade: ["4M", "3M"], flash: ["4M", "3M"], frustration: ["4M", "3M"], @@ -17489,8 +17487,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { thundershock: ["4L8", "3L11", "3S0"], thunderwave: ["4M", "3T"], toxic: ["4M", "3M"], - weatherball: ["4S3"], - zapcannon: ["4S3"], }, }, entei: { @@ -17499,7 +17495,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { bite: ["4L1", "3L1"], bodyslam: ["3T"], calmmind: ["4M", "4L78", "3M", "3L81"], - crushclaw: ["4S3"], cut: ["4M", "3M"], dig: ["4M", "3M"], doubleedge: ["3T"], @@ -17508,19 +17503,16 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { endure: ["4M", "3T"], eruption: ["4L85"], extrasensory: ["4L64"], - extremespeed: ["4S3"], facade: ["4M", "3M"], fireblast: ["4M", "4L71", "3M", "3L71"], firefang: ["4L50"], firespin: ["4L22", "4S2", "3L31", "3S0", "3S1"], flamethrower: ["4M", "4L36", "4S2", "3M", "3L51", "3S1"], - flareblitz: ["4S3"], flash: ["4M", "3M"], frustration: ["4M", "3M"], gigaimpact: ["4M"], heatwave: ["4T"], hiddenpower: ["4M", "3M"], - howl: ["4S3"], hyperbeam: ["4M", "3M"], ironhead: ["4T"], irontail: ["4M", "3M"], @@ -17559,8 +17551,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { suicune: { inherit: true, learnset: { - airslash: ["4S3"], - aquaring: ["4S3"], aurorabeam: ["4L29", "4S2", "3L41", "3S0", "3S1"], avalanche: ["4M"], bite: ["4L1", "3L1"], @@ -17576,7 +17566,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { doubleteam: ["4M", "3M"], endure: ["4M", "3T"], extrasensory: ["4L64"], - extremespeed: ["4S3"], facade: ["4M", "3M"], frustration: ["4M", "3M"], gigaimpact: ["4M"], @@ -17609,7 +17598,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { sandstorm: ["4M", "3M"], secretpower: ["4M", "3M"], shadowball: ["4M"], - sheercold: ["4S3"], signalbeam: ["4T"], sleeptalk: ["4M", "3T"], snore: ["4T", "3T"], @@ -27216,13 +27204,13 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { bodyslam: ["3T"], calmmind: ["4M", "3M"], chargebeam: ["4M"], - confusion: ["4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], + confusion: ["4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], cosmicpower: ["4L60", "3L45"], defensecurl: ["3T"], doomdesire: ["4L70", "3L50"], doubleedge: ["4L40", "3T", "3L35"], doubleteam: ["4M", "3M"], - dracometeor: ["4S12"], + dracometeor: ["4S4"], drainpunch: ["4M"], dreameater: ["4M", "3T"], dynamicpunch: ["3T"], @@ -27239,7 +27227,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { grassknot: ["4M"], gravity: ["4L45"], healingwish: ["4L50"], - helpinghand: ["4T", "4L15", "3L15", "3S10"], + helpinghand: ["4T", "4L15", "3L15", "3S2"], hiddenpower: ["4M", "3M"], hyperbeam: ["4M", "3M"], icepunch: ["4T", "3T"], @@ -27254,13 +27242,13 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { naturalgift: ["4M"], nightmare: ["3T"], protect: ["4M", "3M"], - psychic: ["4M", "4L20", "3M", "3L20", "3S10"], + psychic: ["4M", "4L20", "3M", "3L20", "3S2"], psychup: ["4M", "3T"], raindance: ["4M", "3M"], recycle: ["4M"], reflect: ["4M", "3M"], - refresh: ["4L25", "3L25", "3S10"], - rest: ["4M", "4L5", "4S11", "4S12", "3M", "3L5", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9", "3S10"], + refresh: ["4L25", "3L25", "3S2"], + rest: ["4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], return: ["4M", "3M"], safeguard: ["4M", "3M"], sandstorm: ["4M", "3M"], @@ -27286,7 +27274,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { uproar: ["4T"], uturn: ["4M"], waterpulse: ["4M", "3M"], - wish: ["4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], + wish: ["4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], zenheadbutt: ["4T", "4L35"], }, }, @@ -31694,7 +31682,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { heatran: { inherit: true, learnset: { - ancientpower: ["4T", "4L1", "4S2"], + ancientpower: ["4T", "4L1"], attract: ["4M"], captivate: ["4M"], crunch: ["4L33", "4S1"], @@ -31702,10 +31690,9 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { dig: ["4M"], doubleteam: ["4M"], dragonpulse: ["4M"], - earthpower: ["4T", "4L73", "4S2"], + earthpower: ["4T", "4L73"], earthquake: ["4M"], endure: ["4M"], - eruption: ["4S2"], explosion: ["4M"], facade: ["4M"], fireblast: ["4M"], @@ -31722,7 +31709,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { ironhead: ["4T", "4L65", "4S0"], lavaplume: ["4L49", "4S0", "4S1"], leer: ["4L9"], - magmastorm: ["4L96", "4S2"], + magmastorm: ["4L96"], metalsound: ["4L25", "4S1"], mudslap: ["4T"], naturalgift: ["4M"], diff --git a/data/mods/gen5/abilities.ts b/data/mods/gen5/abilities.ts index ba9dd5d9268d..a51c64b58abe 100644 --- a/data/mods/gen5/abilities.ts +++ b/data/mods/gen5/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { anticipation: { inherit: true, onStart(pokemon) { @@ -21,7 +21,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { onStart(pokemon) { const target = pokemon.side.randomFoe(); if (target?.item) { - this.add('-item', target, target.getItem().name, '[from] ability: Frisk', '[of] ' + pokemon); + this.add('-item', '', target.getItem().name, '[from] ability: Frisk', '[of] ' + pokemon); } }, }, @@ -52,6 +52,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { overcoat: { inherit: true, onTryHit() {}, + flags: {}, rating: 0.5, }, sapsipper: { diff --git a/data/mods/gen5/conditions.ts b/data/mods/gen5/conditions.ts index 8c8758936e2f..5193df8eeca9 100644 --- a/data/mods/gen5/conditions.ts +++ b/data/mods/gen5/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { slp: { inherit: true, onSwitchIn(target) { diff --git a/data/mods/gen5/formats-data.ts b/data/mods/gen5/formats-data.ts index eaa960064d25..2354f267e290 100644 --- a/data/mods/gen5/formats-data.ts +++ b/data/mods/gen5/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, @@ -37,7 +37,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, weedle: { @@ -47,7 +47,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beedrill: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, pidgey: { @@ -57,28 +57,28 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, pidgeot: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, rattata: { tier: "LC", }, raticate: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, spearow: { tier: "LC", }, fearow: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, ekans: { tier: "LC", }, arbok: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, pichu: { @@ -88,7 +88,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, raichu: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, sandshrew: { @@ -142,7 +142,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, wigglytuff: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, zubat: { @@ -167,14 +167,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, bellossom: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, paras: { tier: "LC", }, parasect: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, venonat: { @@ -195,7 +195,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, persian: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, psyduck: { @@ -265,8 +265,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, tentacool: { - tier: "PU", - doublesTier: "LC", + tier: "LC", }, tentacruel: { tier: "OU", @@ -312,7 +311,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, farfetchd: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, doduo: { @@ -326,21 +325,21 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dewgong: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, grimer: { tier: "LC", }, muk: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, shellder: { tier: "LC", }, cloyster: { - tier: "OU", + tier: "Uber", doublesTier: "DOU", }, gastly: { @@ -365,14 +364,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, hypno: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, krabby: { tier: "LC", }, kingler: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, voltorb: { @@ -393,7 +392,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, marowak: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, tyrogue: { @@ -444,7 +443,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "NFE", }, blissey: { - tier: "(OU)", + tier: "OU", doublesTier: "DUU", }, tangela: { @@ -473,7 +472,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, seaking: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, staryu: { @@ -487,7 +486,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, mrmime: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, scyther: { @@ -561,7 +560,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, flareon: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, espeon: { @@ -573,11 +572,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, leafeon: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, glaceon: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, porygon: { @@ -617,7 +616,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, articuno: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, zapdos: { @@ -653,7 +652,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, meganium: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, cyndaquil: { @@ -680,28 +679,28 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, furret: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, hoothoot: { tier: "LC", }, noctowl: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, ledyba: { tier: "LC", }, ledian: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, spinarak: { tier: "LC", }, ariados: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, chinchou: { @@ -722,8 +721,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, natu: { - tier: "PU", - doublesTier: "LC", + tier: "LC", }, xatu: { tier: "UU", @@ -753,7 +751,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sudowoodo: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, hoppip: { @@ -777,7 +775,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sunflora: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, yanma: { @@ -795,8 +793,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, murkrow: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, honchkrow: { tier: "UU", @@ -811,7 +808,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, unown: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, wynaut: { @@ -822,7 +819,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, girafarig: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, pineco: { @@ -833,7 +830,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, dunsparce: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, gligar: { @@ -848,7 +845,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, granbull: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, qwilfish: { @@ -856,7 +853,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, shuckle: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, heracross: { @@ -864,8 +861,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, sneasel: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, weavile: { tier: "UU", @@ -882,7 +878,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, magcargo: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, swinub: { @@ -897,18 +893,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, corsola: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, remoraid: { tier: "LC", }, octillery: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, delibird: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, mantyke: { @@ -937,7 +933,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, stantler: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, smeargle: { @@ -1017,7 +1013,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, mightyena: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, zigzagoon: { @@ -1034,14 +1030,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beautifly: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, cascoon: { tier: "NFE", }, dustox: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, lotad: { @@ -1075,7 +1071,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, pelipper: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, ralts: { @@ -1096,7 +1092,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, masquerain: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, shroomish: { @@ -1114,7 +1110,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "NFE", }, slaking: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, nincada: { @@ -1125,7 +1121,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, shedinja: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, whismur: { @@ -1135,7 +1131,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, exploud: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, makuhita: { @@ -1156,7 +1152,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, delcatty: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, sableye: { @@ -1192,11 +1188,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, plusle: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, minun: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, volbeat: { @@ -1204,7 +1200,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, illumise: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, budew: { @@ -1222,7 +1218,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, swalot: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, carvanha: { @@ -1236,7 +1232,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, wailord: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, numel: { @@ -1254,11 +1250,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, grumpig: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, spinda: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, trapinch: { @@ -1290,22 +1286,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, seviper: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, lunatone: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, solrock: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, barboach: { tier: "LC", }, whiscash: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, corphish: { @@ -1344,7 +1340,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, castform: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, castformsunny: { @@ -1353,7 +1349,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { }, castformsnowy: {}, kecleon: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, shuppet: { @@ -1375,14 +1371,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, tropius: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, chingling: { tier: "LC", }, chimecho: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, absol: { @@ -1393,7 +1389,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, glalie: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, froslass: { @@ -1407,7 +1403,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, walrein: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, clamperl: { @@ -1426,7 +1422,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, luvdisc: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, bagon: { @@ -1463,7 +1459,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, latias: { - tier: "(OU)", + tier: "OU", doublesTier: "DUU", }, latios: { @@ -1516,8 +1512,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, monferno: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, infernape: { tier: "(OU)", @@ -1547,14 +1542,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, bibarel: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, kricketot: { tier: "LC", }, kricketune: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, shinx: { @@ -1564,7 +1559,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, luxray: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, cranidos: { @@ -1585,30 +1580,30 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, wormadam: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, wormadamsandy: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, wormadamtrash: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, mothim: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, combee: { tier: "LC", }, vespiquen: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, pachirisu: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, buizel: { @@ -1622,7 +1617,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, cherrim: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, cherrimsunshine: {}, @@ -1644,7 +1639,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, lopunny: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, glameow: { @@ -1662,15 +1657,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, bronzor: { - tier: "PU", - doublesTier: "LC", + tier: "LC", }, bronzong: { tier: "UU", doublesTier: "DOU", }, chatot: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, spiritomb: { @@ -1681,8 +1675,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gabite: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, garchomp: { tier: "OU", @@ -1700,7 +1693,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, hippowdon: { - tier: "(OU)", + tier: "OU", doublesTier: "DUU", }, skorupi: { @@ -1714,18 +1707,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, toxicroak: { - tier: "OU", + tier: "(OU)", doublesTier: "DOU", }, carnivine: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, finneon: { tier: "LC", }, lumineon: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, snover: { @@ -1784,7 +1777,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, regigigas: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, giratina: { @@ -1800,7 +1793,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, phione: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, manaphy: { @@ -1893,7 +1886,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, watchog: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, lillipup: { @@ -1924,7 +1917,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, simisear: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, panpour: { @@ -1948,7 +1941,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, unfezant: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, blitzle: { @@ -2022,7 +2015,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, leavanny: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, venipede: { @@ -2061,8 +2054,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, krokorok: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, krookodile: { tier: "UU", @@ -2080,16 +2072,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, dwebble: { - tier: "PU", - doublesTier: "LC", + tier: "LC", }, crustle: { tier: "RU", doublesTier: "DUU", }, scraggy: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, scrafty: { tier: "UU", @@ -2156,8 +2146,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, duosion: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, reuniclus: { tier: "OU", @@ -2177,7 +2166,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, vanilluxe: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, deerling: { @@ -2188,7 +2177,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, emolga: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, karrablast: { @@ -2235,8 +2224,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, klang: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, klinklang: { tier: "RU", @@ -2273,8 +2261,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, fraxure: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, haxorus: { tier: "(OU)", @@ -2284,7 +2271,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, beartic: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, cryogonal: { @@ -2346,7 +2333,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, heatmor: { - tier: "(PU)", + tier: "PU", doublesTier: "DUU", }, durant: { @@ -2357,11 +2344,10 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, zweilous: { - tier: "PU", - doublesTier: "NFE", + tier: "NFE", }, hydreigon: { - tier: "OU", + tier: "(OU)", doublesTier: "DOU", }, larvesta: { diff --git a/data/mods/gen5/items.ts b/data/mods/gen5/items.ts index d2beff78ebb4..34cfe9b68c50 100644 --- a/data/mods/gen5/items.ts +++ b/data/mods/gen5/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { aguavberry: { inherit: true, naturalGift: { diff --git a/data/mods/gen5/moves.ts b/data/mods/gen5/moves.ts index d5d0263d0a6d..43c03e139344 100644 --- a/data/mods/gen5/moves.ts +++ b/data/mods/gen5/moves.ts @@ -1,7 +1,7 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { absorb: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, }, acidarmor: { inherit: true, @@ -76,11 +76,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, block: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, }, bounce: { inherit: true, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1}, + flags: {contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, metronome: 1, nosleeptalk: 1}, }, bubble: { inherit: true, @@ -88,7 +88,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, bugbuzz: { inherit: true, - flags: {protect: 1, mirror: 1, sound: 1}, + flags: {protect: 1, mirror: 1, sound: 1, metronome: 1}, }, camouflage: { inherit: true, @@ -111,7 +111,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { chance: 10, volatileStatus: 'confusion', }, - flags: {protect: 1, sound: 1, distance: 1, noassist: 1, failcopycat: 1, failmefirst: 1, nosleeptalk: 1, failmimic: 1}, + flags: { + protect: 1, sound: 1, distance: 1, noassist: 1, failcopycat: 1, + failmefirst: 1, nosleeptalk: 1, failmimic: 1, nosketch: 1, + }, }, conversion: { inherit: true, @@ -168,11 +171,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, dig: { inherit: true, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, nosleeptalk: 1}, + flags: {contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1, nosleeptalk: 1}, }, dive: { inherit: true, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, nosleeptalk: 1}, + flags: {contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1, nosleeptalk: 1}, }, dracometeor: { inherit: true, @@ -184,15 +187,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, drainpunch: { inherit: true, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, }, dreameater: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, }, echoedvoice: { inherit: true, - flags: {protect: 1, mirror: 1, sound: 1}, + flags: {protect: 1, mirror: 1, sound: 1, metronome: 1}, }, electroball: { inherit: true, @@ -217,7 +220,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, finalgambit: { inherit: true, - flags: {contact: 1, protect: 1}, + flags: {contact: 1, protect: 1, metronome: 1}, }, fireblast: { inherit: true, @@ -240,7 +243,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, fly: { inherit: true, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1}, + flags: {contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, metronome: 1}, }, followme: { inherit: true, @@ -282,7 +285,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { basePower: 100, category: "Special", priority: 0, - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, ignoreImmunity: false, effectType: 'Move', type: 'Psychic', @@ -294,7 +297,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, gigadrain: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, }, glare: { inherit: true, @@ -302,7 +305,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, grasswhistle: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, metronome: 1}, }, grasspledge: { inherit: true, @@ -317,7 +320,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, growl: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, metronome: 1}, }, growth: { inherit: true, @@ -338,7 +341,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, healbell: { inherit: true, - flags: {snatch: 1, sound: 1}, + flags: {snatch: 1, sound: 1, metronome: 1}, onHit(target, source) { this.add('-activate', source, 'move: Heal Bell'); const allies = [...target.side.pokemon, ...target.side.allySide?.pokemon || []]; @@ -435,7 +438,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, hornleech: { inherit: true, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, }, hurricane: { inherit: true, @@ -447,7 +450,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, hypervoice: { inherit: true, - flags: {protect: 1, mirror: 1, sound: 1}, + flags: {protect: 1, mirror: 1, sound: 1, metronome: 1}, }, icebeam: { inherit: true, @@ -474,7 +477,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, leechlife: { inherit: true, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, }, lick: { inherit: true, @@ -523,15 +526,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, meanlook: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, }, megadrain: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, }, metalsound: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, metronome: 1}, }, meteormash: { inherit: true, @@ -555,31 +558,22 @@ export const Moves: {[k: string]: ModdedMoveData} = { type: "Normal", }, mudsport: { - num: 300, - accuracy: true, - basePower: 0, - category: "Status", - name: "Mud Sport", - pp: 15, - priority: 0, - flags: {}, + inherit: true, + pseudoWeather: undefined, volatileStatus: 'mudsport', - onTryHitField(target, source) { - if (source.volatiles['mudsport']) return false; - }, condition: { noCopy: true, onStart(pokemon) { - this.add("-start", pokemon, 'Mud Sport'); + this.add('-start', pokemon, 'Mud Sport'); }, onAnyBasePowerPriority: 1, onAnyBasePower(basePower, user, target, move) { - if (move.type === 'Electric') return this.chainModify([1352, 4096]); + if (move.type === 'Electric') { + this.debug('mud sport weaken'); + return this.chainModify([1352, 4096]); + } }, }, - secondary: null, - target: "all", - type: "Ground", }, muddywater: { inherit: true, @@ -599,7 +593,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, perishsong: { inherit: true, - flags: {sound: 1, distance: 1}, + flags: {sound: 1, distance: 1, metronome: 1}, }, pinmissile: { inherit: true, @@ -717,7 +711,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { roar: { inherit: true, accuracy: 100, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, }, rocktomb: { inherit: true, @@ -727,7 +721,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, round: { inherit: true, - flags: {protect: 1, mirror: 1, sound: 1}, + flags: {protect: 1, mirror: 1, sound: 1, metronome: 1}, }, sacredsword: { inherit: true, @@ -739,7 +733,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, screech: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, metronome: 1}, }, secretpower: { inherit: true, @@ -752,11 +746,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, shadowforce: { inherit: true, - flags: {contact: 1, charge: 1, mirror: 1, nosleeptalk: 1}, + flags: {contact: 1, charge: 1, mirror: 1, metronome: 1, nosleeptalk: 1}, }, sing: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, metronome: 1}, }, skillswap: { inherit: true, @@ -778,7 +772,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, skydrop: { inherit: true, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1}, + flags: {contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, metronome: 1, nosleeptalk: 1}, onTryHit(target, source, move) { if (target.fainted) return false; if (source.removeVolatile(move.id)) { @@ -890,7 +884,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { this.add('-activate', target, 'Substitute', '[damage]'); } if (move.recoil && damage) { - this.damage(this.actions.calcRecoilDamage(damage, move), source, target, 'recoil'); + this.damage(this.actions.calcRecoilDamage(damage, move, source), source, target, 'recoil'); } if (move.drain) { this.heal(Math.ceil(damage * move.drain[0] / move.drain[1]), source, target, 'drain'); @@ -910,7 +904,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, supersonic: { inherit: true, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, metronome: 1}, }, surf: { inherit: true, @@ -962,7 +956,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, uproar: { inherit: true, - flags: {protect: 1, mirror: 1, sound: 1, nosleeptalk: 1}, + flags: {protect: 1, mirror: 1, sound: 1, metronome: 1, nosleeptalk: 1}, }, vinewhip: { inherit: true, @@ -985,36 +979,27 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, }, watersport: { - num: 346, - accuracy: true, - basePower: 0, - category: "Status", - name: "Water Sport", - pp: 15, - priority: 0, - flags: {}, + inherit: true, + pseudoWeather: undefined, volatileStatus: 'watersport', - onTryHitField(target, source) { - if (source.volatiles['watersport']) return false; - }, condition: { noCopy: true, onStart(pokemon) { - this.add("-start", pokemon, 'move: Water Sport'); + this.add('-start', pokemon, 'move: Water Sport'); }, onAnyBasePowerPriority: 1, onAnyBasePower(basePower, user, target, move) { - if (move.type === 'Fire') return this.chainModify([1352, 4096]); + if (move.type === 'Fire') { + this.debug('water sport weaken'); + return this.chainModify([1352, 4096]); + } }, }, - secondary: null, - target: "all", - type: "Water", }, whirlwind: { inherit: true, accuracy: 100, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, }, wideguard: { inherit: true, diff --git a/data/mods/gen5/pokedex.ts b/data/mods/gen5/pokedex.ts index 6783c558f84b..06f3e54db589 100644 --- a/data/mods/gen5/pokedex.ts +++ b/data/mods/gen5/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { bulbasaur: { inherit: true, maleOnlyHidden: true, diff --git a/data/mods/gen5/random-data.json b/data/mods/gen5/random-data.json deleted file mode 100644 index c146711c1d15..000000000000 --- a/data/mods/gen5/random-data.json +++ /dev/null @@ -1,1569 +0,0 @@ -{ - "venusaur": { - "level": 83, - "moves": ["hiddenpowerfire", "hiddenpowerice", "leechseed", "naturepower", "powerwhip", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"] - }, - "charizard": { - "level": 86, - "moves": ["airslash", "dragonpulse", "fireblast", "focusblast", "hiddenpowergrass", "roost"] - }, - "blastoise": { - "level": 83, - "moves": ["icebeam", "protect", "rapidspin", "scald", "toxic"] - }, - "butterfree": { - "level": 90, - "moves": ["bugbuzz", "hiddenpowerrock", "psychic", "quiverdance", "sleeppowder", "substitute"] - }, - "beedrill": { - "level": 92, - "moves": ["drillrun", "poisonjab", "tailwind", "toxicspikes", "uturn"] - }, - "pidgeot": { - "level": 90, - "moves": ["bravebird", "heatwave", "quickattack", "return", "roost", "uturn", "workup"] - }, - "raticate": { - "level": 90, - "moves": ["crunch", "facade", "flamewheel", "suckerpunch", "swordsdance", "uturn"] - }, - "fearow": { - "level": 90, - "moves": ["doubleedge", "drillpeck", "drillrun", "pursuit", "quickattack", "return", "roost", "uturn"] - }, - "arbok": { - "level": 90, - "moves": ["aquatail", "coil", "earthquake", "glare", "gunkshot", "rest", "seedbomb", "suckerpunch"] - }, - "pikachu": { - "level": 90, - "moves": ["extremespeed", "grassknot", "hiddenpowerice", "voltswitch", "volttackle"] - }, - "raichu": { - "level": 90, - "moves": ["encore", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"] - }, - "sandslash": { - "level": 85, - "moves": ["earthquake", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "xscissor"] - }, - "nidoqueen": { - "level": 82, - "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"] - }, - "nidoking": { - "level": 82, - "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"] - }, - "clefable": { - "level": 84, - "moves": ["calmmind", "doubleedge", "icebeam", "softboiled", "stealthrock", "thunderbolt", "thunderwave"] - }, - "ninetales": { - "level": 80, - "moves": ["fireblast", "nastyplot", "painsplit", "solarbeam", "substitute", "willowisp"] - }, - "wigglytuff": { - "level": 90, - "moves": ["doubleedge", "fireblast", "healbell", "protect", "stealthrock", "toxic", "wish"] - }, - "vileplume": { - "level": 88, - "moves": ["aromatherapy", "gigadrain", "hiddenpowerfire", "leechseed", "sleeppowder", "sludgebomb", "synthesis"] - }, - "parasect": { - "level": 91, - "moves": ["aromatherapy", "leechseed", "seedbomb", "spore", "stunspore", "synthesis", "xscissor"] - }, - "venomoth": { - "level": 84, - "moves": ["bugbuzz", "quiverdance", "roost", "sleeppowder", "substitute"] - }, - "dugtrio": { - "level": 82, - "moves": ["aerialace", "earthquake", "stealthrock", "stoneedge"] - }, - "persian": { - "level": 90, - "moves": ["bite", "fakeout", "return", "switcheroo", "taunt", "uturn", "waterpulse"] - }, - "golduck": { - "level": 88, - "moves": ["calmmind", "encore", "focusblast", "hydropump", "icebeam", "psyshock", "scald"] - }, - "primeape": { - "level": 86, - "moves": ["closecombat", "honeclaws", "icepunch", "stoneedge", "uturn"] - }, - "arcanine": { - "level": 82, - "moves": ["closecombat", "extremespeed", "flareblitz", "hiddenpowergrass", "morningsun", "wildcharge", "willowisp"] - }, - "poliwrath": { - "level": 85, - "moves": ["circlethrow", "rest", "scald", "sleeptalk"] - }, - "alakazam": { - "level": 80, - "moves": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball"] - }, - "machamp": { - "level": 82, - "moves": ["bulkup", "bulletpunch", "dynamicpunch", "icepunch", "payback", "stoneedge"] - }, - "victreebel": { - "level": 88, - "moves": ["powerwhip", "sleeppowder", "sludgebomb", "suckerpunch", "sunnyday", "weatherball"] - }, - "tentacruel": { - "level": 80, - "moves": ["gigadrain", "icebeam", "protect", "rapidspin", "scald", "toxic", "toxicspikes"] - }, - "golem": { - "level": 86, - "moves": ["earthquake", "explosion", "rockblast", "stealthrock", "suckerpunch", "toxic"] - }, - "rapidash": { - "level": 88, - "moves": ["drillrun", "flareblitz", "megahorn", "morningsun", "wildcharge", "willowisp"] - }, - "slowbro": { - "level": 82, - "moves": ["calmmind", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"] - }, - "farfetchd": { - "level": 100, - "moves": ["bravebird", "leafblade", "quickattack", "return", "swordsdance"] - }, - "dodrio": { - "level": 88, - "moves": ["bravebird", "pursuit", "quickattack", "return", "roost"] - }, - "dewgong": { - "level": 90, - "moves": ["icebeam", "protect", "rest", "sleeptalk", "surf", "toxic"] - }, - "muk": { - "level": 90, - "moves": ["brickbreak", "curse", "firepunch", "gunkshot", "icepunch", "poisonjab", "rest", "shadowsneak"] - }, - "cloyster": { - "level": 80, - "moves": ["hydropump", "iceshard", "iciclespear", "rapidspin", "rockblast", "shellsmash", "spikes"] - }, - "gengar": { - "level": 80, - "moves": ["focusblast", "shadowball", "sludgewave", "substitute", "trick", "willowisp"] - }, - "hypno": { - "level": 90, - "moves": ["foulplay", "protect", "psychic", "thunderwave", "toxic", "wish"] - }, - "kingler": { - "level": 90, - "moves": ["agility", "crabhammer", "return", "superpower", "swordsdance", "xscissor"] - }, - "electrode": { - "level": 87, - "moves": ["foulplay", "hiddenpowergrass", "hiddenpowerice", "taunt", "thunderbolt", "voltswitch"] - }, - "exeggutor": { - "level": 86, - "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "protect", "psychic", "sleeppowder", "substitute"] - }, - "marowak": { - "level": 90, - "moves": ["bonemerang", "doubleedge", "earthquake", "firepunch", "stealthrock", "stoneedge"] - }, - "hitmonlee": { - "level": 84, - "moves": ["closecombat", "earthquake", "fakeout", "stoneedge", "suckerpunch"] - }, - "hitmonchan": { - "level": 85, - "moves": ["bulkup", "closecombat", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"] - }, - "weezing": { - "level": 87, - "moves": ["fireblast", "haze", "painsplit", "sludgebomb", "willowisp"] - }, - "rhydon": { - "level": 84, - "moves": ["earthquake", "megahorn", "stealthrock", "stoneedge", "toxic"] - }, - "chansey": { - "level": 82, - "moves": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "toxic"] - }, - "kangaskhan": { - "level": 86, - "moves": ["doubleedge", "earthquake", "fakeout", "focuspunch", "return", "substitute", "suckerpunch"] - }, - "seaking": { - "level": 90, - "moves": ["drillrun", "icebeam", "megahorn", "return", "waterfall"] - }, - "starmie": { - "level": 80, - "moves": ["hydropump", "icebeam", "psyshock", "rapidspin", "recover", "scald", "thunderbolt", "trick"] - }, - "mrmime": { - "level": 90, - "moves": ["encore", "focusblast", "nastyplot", "psychic", "substitute", "thunderbolt"] - }, - "scyther": { - "level": 84, - "moves": ["aerialace", "brickbreak", "bugbite", "quickattack", "roost", "swordsdance"] - }, - "jynx": { - "level": 86, - "moves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psyshock", "substitute", "trick"] - }, - "pinsir": { - "level": 86, - "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance", "xscissor"] - }, - "tauros": { - "level": 85, - "moves": ["doubleedge", "earthquake", "pursuit", "retaliate", "stoneedge"] - }, - "gyarados": { - "level": 80, - "moves": ["dragondance", "earthquake", "icefang", "stoneedge", "waterfall"] - }, - "lapras": { - "level": 86, - "moves": ["healbell", "hydropump", "icebeam", "substitute", "thunderbolt", "toxic"] - }, - "ditto": { - "level": 86, - "moves": ["transform"] - }, - "vaporeon": { - "level": 82, - "moves": ["icebeam", "protect", "roar", "scald", "toxic", "wish"] - }, - "jolteon": { - "level": 81, - "moves": ["hiddenpowerice", "signalbeam", "thunderbolt", "voltswitch"] - }, - "flareon": { - "level": 90, - "moves": ["facade", "flamecharge", "rest", "sleeptalk"] - }, - "omastar": { - "level": 84, - "moves": ["hiddenpowergrass", "icebeam", "shellsmash", "spikes", "stealthrock", "surf"] - }, - "kabutops": { - "level": 84, - "moves": ["aquajet", "rapidspin", "stealthrock", "stoneedge", "superpower", "swordsdance", "waterfall"] - }, - "aerodactyl": { - "level": 84, - "moves": ["aquatail", "doubleedge", "earthquake", "roost", "stealthrock", "stoneedge", "taunt"] - }, - "snorlax": { - "level": 82, - "moves": ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest"] - }, - "articuno": { - "level": 87, - "moves": ["hurricane", "icebeam", "roost", "substitute", "toxic"] - }, - "zapdos": { - "level": 82, - "moves": ["heatwave", "hiddenpowerice", "roost", "substitute", "thunderbolt", "toxic", "uturn"] - }, - "moltres": { - "level": 84, - "moves": ["fireblast", "hiddenpowergrass", "hurricane", "roost", "substitute", "toxic", "uturn", "willowisp"] - }, - "dragonair": { - "level": 90, - "moves": ["dragondance", "outrage", "rest", "sleeptalk", "waterfall"] - }, - "dragonite": { - "level": 78, - "moves": ["dragondance", "earthquake", "extremespeed", "firepunch", "outrage", "roost"] - }, - "mewtwo": { - "level": 73, - "moves": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"] - }, - "mew": { - "level": 81, - "moves": ["aurasphere", "fireblast", "nastyplot", "psychic", "softboiled", "stealthrock", "taunt", "uturn", "willowisp"] - }, - "meganium": { - "level": 90, - "moves": ["aromatherapy", "dragontail", "gigadrain", "leechseed", "lightscreen", "reflect", "synthesis", "toxic"] - }, - "typhlosion": { - "level": 84, - "moves": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"] - }, - "feraligatr": { - "level": 84, - "moves": ["aquajet", "dragondance", "earthquake", "icepunch", "superpower", "swordsdance", "waterfall"] - }, - "furret": { - "level": 90, - "moves": ["aquatail", "doubleedge", "firepunch", "shadowclaw", "trick", "uturn"] - }, - "noctowl": { - "level": 91, - "moves": ["airslash", "magiccoat", "nightshade", "roost", "toxic", "whirlwind"] - }, - "ledian": { - "level": 92, - "moves": ["encore", "lightscreen", "reflect", "roost", "toxic", "uturn"] - }, - "ariados": { - "level": 92, - "moves": ["poisonjab", "suckerpunch", "toxicspikes", "xscissor"] - }, - "crobat": { - "level": 82, - "moves": ["bravebird", "heatwave", "roost", "sludgebomb", "superfang", "taunt", "toxic", "uturn"] - }, - "lanturn": { - "level": 84, - "moves": ["healbell", "icebeam", "scald", "thunderbolt", "thunderwave", "voltswitch"] - }, - "xatu": { - "level": 82, - "moves": ["heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"] - }, - "ampharos": { - "level": 86, - "moves": ["agility", "focusblast", "healbell", "hiddenpowergrass", "hiddenpowerice", "thunderbolt", "toxic", "voltswitch"] - }, - "bellossom": { - "level": 90, - "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "leafstorm", "leechseed", "sleeppowder", "stunspore", "synthesis"] - }, - "azumarill": { - "level": 83, - "moves": ["aquajet", "doubleedge", "icepunch", "superpower", "waterfall"] - }, - "sudowoodo": { - "level": 90, - "moves": ["earthquake", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"] - }, - "politoed": { - "level": 81, - "moves": ["encore", "focusblast", "hiddenpowergrass", "hypnosis", "icebeam", "protect", "scald", "toxic"] - }, - "jumpluff": { - "level": 88, - "moves": ["acrobatics", "encore", "energyball", "leechseed", "sleeppowder", "uturn"] - }, - "sunflora": { - "level": 91, - "moves": ["earthpower", "encore", "gigadrain", "hiddenpowerrock", "solarbeam", "sunnyday"] - }, - "quagsire": { - "level": 84, - "moves": ["earthquake", "encore", "recover", "scald", "toxic"] - }, - "espeon": { - "level": 81, - "moves": ["calmmind", "hiddenpowerfire", "morningsun", "psychic", "psyshock", "signalbeam"] - }, - "umbreon": { - "level": 82, - "moves": ["foulplay", "protect", "toxic", "wish"] - }, - "murkrow": { - "level": 88, - "moves": ["foulplay", "roost", "taunt", "thunderwave", "toxic"] - }, - "slowking": { - "level": 84, - "moves": ["calmmind", "fireblast", "grassknot", "icebeam", "psychic", "slackoff", "surf", "trickroom"] - }, - "unown": { - "level": 100, - "moves": ["hiddenpowerpsychic"] - }, - "wobbuffet": { - "level": 84, - "moves": ["counter", "destinybond", "encore", "mirrorcoat"] - }, - "girafarig": { - "level": 90, - "moves": ["calmmind", "hiddenpowerfire", "hypervoice", "psychic", "psyshock", "thunderbolt"] - }, - "forretress": { - "level": 80, - "moves": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"] - }, - "dunsparce": { - "level": 91, - "moves": ["bite", "bodyslam", "coil", "glare", "headbutt", "rockslide", "roost"] - }, - "gligar": { - "level": 82, - "moves": ["earthquake", "roost", "stealthrock", "taunt", "toxic", "uturn"] - }, - "steelix": { - "level": 84, - "moves": ["curse", "earthquake", "gyroball", "roar", "stealthrock", "stoneedge", "toxic"] - }, - "granbull": { - "level": 90, - "moves": ["closecombat", "crunch", "healbell", "return", "thunderwave", "toxic"] - }, - "qwilfish": { - "level": 85, - "moves": ["destinybond", "poisonjab", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"] - }, - "scizor": { - "level": 80, - "moves": ["bugbite", "bulletpunch", "pursuit", "roost", "superpower", "swordsdance", "uturn"] - }, - "shuckle": { - "level": 90, - "moves": ["encore", "knockoff", "protect", "stealthrock", "toxic"] - }, - "heracross": { - "level": 82, - "moves": ["closecombat", "earthquake", "facade", "megahorn", "stoneedge"] - }, - "ursaring": { - "level": 88, - "moves": ["closecombat", "crunch", "earthquake", "facade", "protect", "swordsdance"] - }, - "magcargo": { - "level": 90, - "moves": ["hiddenpowerrock", "lavaplume", "recover", "stealthrock", "toxic"] - }, - "corsola": { - "level": 90, - "moves": ["powergem", "recover", "scald", "stealthrock", "toxic"] - }, - "octillery": { - "level": 90, - "moves": ["energyball", "fireblast", "hydropump", "icebeam", "thunderwave"] - }, - "delibird": { - "level": 100, - "moves": ["aerialace", "icebeam", "iceshard", "rapidspin"] - }, - "mantine": { - "level": 89, - "moves": ["airslash", "hydropump", "icebeam", "raindance", "rest", "scald", "sleeptalk"] - }, - "skarmory": { - "level": 80, - "moves": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"] - }, - "houndoom": { - "level": 82, - "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"] - }, - "kingdra": { - "level": 82, - "moves": ["dracometeor", "dragondance", "hiddenpowerelectric", "hydropump", "icebeam", "outrage", "raindance", "waterfall"] - }, - "donphan": { - "level": 82, - "moves": ["earthquake", "headsmash", "iceshard", "rapidspin", "seedbomb", "stealthrock"] - }, - "porygon2": { - "level": 82, - "moves": ["discharge", "icebeam", "recover", "toxic", "triattack"] - }, - "stantler": { - "level": 90, - "moves": ["doubleedge", "earthquake", "jumpkick", "megahorn", "suckerpunch"] - }, - "smeargle": { - "level": 84, - "moves": ["memento", "spikes", "spore", "stealthrock", "whirlwind"] - }, - "hitmontop": { - "level": 83, - "moves": ["closecombat", "machpunch", "rapidspin", "stoneedge", "suckerpunch", "toxic"] - }, - "miltank": { - "level": 85, - "moves": ["bodyslam", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"] - }, - "blissey": { - "level": 82, - "moves": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"] - }, - "raikou": { - "level": 81, - "moves": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt", "voltswitch"] - }, - "entei": { - "level": 84, - "moves": ["bulldoze", "extremespeed", "flareblitz", "hiddenpowergrass", "stoneedge"] - }, - "suicune": { - "level": 82, - "moves": ["calmmind", "hiddenpowerelectric", "hydropump", "icebeam", "rest", "roar", "scald", "sleeptalk"] - }, - "tyranitar": { - "level": 80, - "moves": ["crunch", "fireblast", "pursuit", "stealthrock", "stoneedge", "superpower"] - }, - "lugia": { - "level": 75, - "moves": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"] - }, - "hooh": { - "level": 75, - "moves": ["bravebird", "earthquake", "roost", "sacredfire", "substitute", "toxic"] - }, - "celebi": { - "level": 80, - "moves": ["earthpower", "gigadrain", "hiddenpowerice", "leafstorm", "nastyplot", "psychic", "recover", "stealthrock", "uturn"] - }, - "sceptile": { - "level": 84, - "moves": ["acrobatics", "earthquake", "leafblade", "substitute", "swordsdance"] - }, - "blaziken": { - "level": 76, - "moves": ["flareblitz", "highjumpkick", "protect", "stoneedge", "swordsdance"] - }, - "swampert": { - "level": 82, - "moves": ["earthquake", "icebeam", "protect", "roar", "scald", "stealthrock", "toxic"] - }, - "mightyena": { - "level": 91, - "moves": ["crunch", "facade", "firefang", "howl", "suckerpunch"] - }, - "linoone": { - "level": 88, - "moves": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"] - }, - "beautifly": { - "level": 91, - "moves": ["bugbuzz", "hiddenpowerground", "psychic", "quiverdance"] - }, - "dustox": { - "level": 90, - "moves": ["bugbuzz", "quiverdance", "roost", "sludgebomb"] - }, - "ludicolo": { - "level": 86, - "moves": ["gigadrain", "hydropump", "icebeam", "raindance", "scald"] - }, - "shiftry": { - "level": 88, - "moves": ["darkpulse", "hiddenpowerfire", "leafstorm", "naturepower", "seedbomb", "suckerpunch", "swordsdance"] - }, - "swellow": { - "level": 86, - "moves": ["bravebird", "facade", "protect", "quickattack", "uturn"] - }, - "pelipper": { - "level": 90, - "moves": ["hurricane", "icebeam", "roost", "scald", "tailwind", "toxic", "uturn"] - }, - "gardevoir": { - "level": 86, - "moves": ["calmmind", "focusblast", "painsplit", "psychic", "substitute", "thunderbolt", "trick", "willowisp"] - }, - "masquerain": { - "level": 90, - "moves": ["airslash", "bugbuzz", "hydropump", "quiverdance", "roost"] - }, - "breloom": { - "level": 80, - "moves": ["bulletseed", "machpunch", "spore", "stoneedge", "swordsdance"] - }, - "vigoroth": { - "level": 88, - "moves": ["bulkup", "earthquake", "return", "slackoff", "taunt", "toxic"] - }, - "slaking": { - "level": 88, - "moves": ["earthquake", "nightslash", "pursuit", "retaliate", "return"] - }, - "ninjask": { - "level": 86, - "moves": ["aerialace", "substitute", "swordsdance", "xscissor"] - }, - "shedinja": { - "level": 90, - "moves": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"] - }, - "exploud": { - "level": 90, - "moves": ["fireblast", "focusblast", "hypervoice", "lowkick", "surf"] - }, - "hariyama": { - "level": 84, - "moves": ["bulletpunch", "closecombat", "facade", "fakeout", "stoneedge"] - }, - "delcatty": { - "level": 91, - "moves": ["doubleedge", "fakeout", "icebeam", "suckerpunch", "thunderwave"] - }, - "sableye": { - "level": 84, - "moves": ["foulplay", "nightshade", "recover", "taunt", "willowisp"] - }, - "mawile": { - "level": 89, - "moves": ["firefang", "ironhead", "stealthrock", "suckerpunch", "swordsdance"] - }, - "aggron": { - "level": 84, - "moves": ["aquatail", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock", "thunderwave"] - }, - "medicham": { - "level": 84, - "moves": ["bulletpunch", "highjumpkick", "icepunch", "thunderpunch", "trick", "zenheadbutt"] - }, - "manectric": { - "level": 84, - "moves": ["flamethrower", "hiddenpowerice", "overheat", "switcheroo", "thunderbolt", "voltswitch"] - }, - "plusle": { - "level": 90, - "moves": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"] - }, - "minun": { - "level": 90, - "moves": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"] - }, - "volbeat": { - "level": 89, - "moves": ["bugbuzz", "encore", "roost", "thunderwave", "uturn"] - }, - "illumise": { - "level": 90, - "moves": ["bugbuzz", "encore", "roost", "substitute", "thunderwave", "wish"] - }, - "swalot": { - "level": 90, - "moves": ["earthquake", "encore", "painsplit", "protect", "sludgebomb", "toxic"] - }, - "sharpedo": { - "level": 82, - "moves": ["crunch", "earthquake", "icebeam", "protect", "waterfall", "zenheadbutt"] - }, - "wailord": { - "level": 90, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "surf", "waterspout"] - }, - "camerupt": { - "level": 86, - "moves": ["earthquake", "hiddenpowergrass", "lavaplume", "roar", "stealthrock"] - }, - "torkoal": { - "level": 86, - "moves": ["earthquake", "lavaplume", "protect", "rapidspin", "stealthrock", "toxic", "yawn"] - }, - "grumpig": { - "level": 90, - "moves": ["focusblast", "healbell", "psychic", "shadowball", "thunderwave", "trick", "whirlwind"] - }, - "spinda": { - "level": 91, - "moves": ["return", "suckerpunch", "superpower", "trickroom"] - }, - "flygon": { - "level": 82, - "moves": ["earthquake", "firepunch", "outrage", "roost", "stoneedge", "superpower", "uturn"] - }, - "cacturne": { - "level": 86, - "moves": ["drainpunch", "seedbomb", "spikes", "substitute", "suckerpunch", "swordsdance"] - }, - "altaria": { - "level": 86, - "moves": ["dracometeor", "dragondance", "earthquake", "fireblast", "healbell", "outrage", "roost"] - }, - "zangoose": { - "level": 86, - "moves": ["closecombat", "facade", "nightslash", "quickattack", "swordsdance"] - }, - "seviper": { - "level": 90, - "moves": ["earthquake", "flamethrower", "gigadrain", "sludgebomb", "suckerpunch", "switcheroo"] - }, - "lunatone": { - "level": 90, - "moves": ["earthpower", "hiddenpowerrock", "moonlight", "psychic", "stealthrock", "toxic"] - }, - "solrock": { - "level": 90, - "moves": ["explosion", "lightscreen", "morningsun", "reflect", "rockslide", "stealthrock", "willowisp"] - }, - "whiscash": { - "level": 90, - "moves": ["dragondance", "earthquake", "icebeam", "waterfall"] - }, - "crawdaunt": { - "level": 85, - "moves": ["crunch", "dragondance", "superpower", "waterfall"] - }, - "claydol": { - "level": 83, - "moves": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"] - }, - "cradily": { - "level": 86, - "moves": ["earthquake", "recover", "rockslide", "seedbomb", "stealthrock", "swordsdance", "toxic"] - }, - "armaldo": { - "level": 87, - "moves": ["aquatail", "earthquake", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "xscissor"] - }, - "milotic": { - "level": 82, - "moves": ["dragontail", "haze", "icebeam", "recover", "scald", "toxic"] - }, - "castformsunny": { - "level": 100, - "moves": ["icebeam", "solarbeam", "sunnyday", "weatherball"] - }, - "castformrainy": { - "level": 100, - "moves": ["icebeam", "raindance", "thunder", "weatherball"] - }, - "kecleon": { - "level": 91, - "moves": ["foulplay", "recover", "stealthrock", "thunderwave", "toxic"] - }, - "banette": { - "level": 88, - "moves": ["pursuit", "shadowclaw", "shadowsneak", "trick", "willowisp"] - }, - "dusclops": { - "level": 82, - "moves": ["nightshade", "rest", "sleeptalk", "willowisp"] - }, - "tropius": { - "level": 90, - "moves": ["airslash", "leechseed", "protect", "substitute", "toxic"] - }, - "chimecho": { - "level": 92, - "moves": ["calmmind", "healingwish", "psychic", "recover", "shadowball", "toxic", "yawn"] - }, - "absol": { - "level": 84, - "moves": ["fireblast", "nightslash", "psychocut", "pursuit", "suckerpunch", "superpower", "swordsdance"] - }, - "glalie": { - "level": 90, - "moves": ["earthquake", "explosion", "icebeam", "spikes", "taunt"] - }, - "walrein": { - "level": 90, - "moves": ["encore", "icebeam", "protect", "roar", "surf", "toxic"] - }, - "huntail": { - "level": 87, - "moves": ["icebeam", "return", "shellsmash", "waterfall"] - }, - "gorebyss": { - "level": 85, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"] - }, - "relicanth": { - "level": 88, - "moves": ["doubleedge", "earthquake", "headsmash", "stealthrock", "waterfall"] - }, - "luvdisc": { - "level": 100, - "moves": ["icebeam", "protect", "surf", "sweetkiss", "toxic"] - }, - "salamence": { - "level": 80, - "moves": ["aquatail", "brickbreak", "dracometeor", "dragondance", "earthquake", "fireblast", "outrage", "roost"] - }, - "metagross": { - "level": 82, - "moves": ["agility", "bulletpunch", "earthquake", "meteormash", "pursuit", "stealthrock", "zenheadbutt"] - }, - "regirock": { - "level": 86, - "moves": ["drainpunch", "protect", "rockslide", "stealthrock", "thunderwave", "toxic"] - }, - "regice": { - "level": 86, - "moves": ["focusblast", "icebeam", "rest", "rockpolish", "sleeptalk", "thunderbolt"] - }, - "registeel": { - "level": 82, - "moves": ["curse", "ironhead", "protect", "rest", "sleeptalk", "stealthrock", "toxic"] - }, - "latias": { - "level": 81, - "moves": ["calmmind", "dracometeor", "healingwish", "hiddenpowerfire", "psyshock", "roost", "surf"] - }, - "latios": { - "level": 79, - "moves": ["dracometeor", "hiddenpowerfire", "psyshock", "roost", "surf", "trick"] - }, - "kyogre": { - "level": 73, - "moves": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder", "waterspout"] - }, - "groudon": { - "level": 76, - "moves": ["earthquake", "firepunch", "stealthrock", "stoneedge", "swordsdance", "thunderwave"] - }, - "rayquaza": { - "level": 76, - "moves": ["dracometeor", "dragondance", "earthquake", "extremespeed", "outrage", "swordsdance", "vcreate"] - }, - "jirachi": { - "level": 79, - "moves": ["bodyslam", "firepunch", "icepunch", "ironhead", "substitute", "uturn", "wish"] - }, - "deoxys": { - "level": 76, - "moves": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "stealthrock", "superpower"] - }, - "deoxysattack": { - "level": 75, - "moves": ["extremespeed", "hiddenpowerfire", "icebeam", "psychoboost", "stealthrock", "superpower"] - }, - "deoxysdefense": { - "level": 78, - "moves": ["magiccoat", "recover", "seismictoss", "spikes", "taunt", "toxic"] - }, - "deoxysspeed": { - "level": 76, - "moves": ["icebeam", "lightscreen", "psychoboost", "reflect", "spikes", "stealthrock", "superpower", "taunt"] - }, - "torterra": { - "level": 88, - "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "synthesis", "woodhammer"] - }, - "infernape": { - "level": 81, - "moves": ["closecombat", "flareblitz", "hiddenpowerice", "machpunch", "overheat", "swordsdance", "thunderpunch", "uturn"] - }, - "empoleon": { - "level": 82, - "moves": ["agility", "grassknot", "hydropump", "icebeam", "protect", "scald", "stealthrock", "toxic"] - }, - "staraptor": { - "level": 82, - "moves": ["bravebird", "closecombat", "doubleedge", "quickattack", "roost", "uturn"] - }, - "bibarel": { - "level": 90, - "moves": ["curse", "quickattack", "rest", "waterfall"] - }, - "kricketune": { - "level": 92, - "moves": ["brickbreak", "bugbite", "nightslash", "return", "swordsdance"] - }, - "luxray": { - "level": 90, - "moves": ["crunch", "facade", "icefang", "superpower", "voltswitch", "wildcharge"] - }, - "roserade": { - "level": 82, - "moves": ["gigadrain", "hiddenpowerfire", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"] - }, - "rampardos": { - "level": 88, - "moves": ["crunch", "earthquake", "firepunch", "headsmash", "rockpolish", "superpower"] - }, - "bastiodon": { - "level": 87, - "moves": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"] - }, - "wormadam": { - "level": 91, - "moves": ["gigadrain", "hiddenpowerrock", "leafstorm", "protect", "signalbeam", "toxic"] - }, - "wormadamsandy": { - "level": 90, - "moves": ["earthquake", "protect", "rockblast", "stealthrock", "toxic"] - }, - "wormadamtrash": { - "level": 90, - "moves": ["ironhead", "protect", "stealthrock", "toxic"] - }, - "mothim": { - "level": 91, - "moves": ["airslash", "bugbuzz", "hiddenpowerground", "quiverdance", "substitute"] - }, - "vespiquen": { - "level": 92, - "moves": ["attackorder", "protect", "roost", "substitute", "toxic"] - }, - "pachirisu": { - "level": 90, - "moves": ["protect", "superfang", "thunderwave", "toxic", "voltswitch"] - }, - "floatzel": { - "level": 86, - "moves": ["aquajet", "bulkup", "crunch", "icepunch", "switcheroo", "taunt", "waterfall"] - }, - "cherrim": { - "level": 91, - "moves": ["energyball", "healingwish", "hiddenpowerrock", "hiddenpowerfire", "naturepower"] - }, - "gastrodon": { - "level": 81, - "moves": ["earthquake", "icebeam", "recover", "scald", "toxic"] - }, - "ambipom": { - "level": 82, - "moves": ["fakeout", "lowkick", "pursuit", "return", "switcheroo", "uturn"] - }, - "drifblim": { - "level": 86, - "moves": ["acrobatics", "destinybond", "disable", "shadowball", "substitute", "willowisp"] - }, - "lopunny": { - "level": 90, - "moves": ["firepunch", "healingwish", "icepunch", "jumpkick", "return", "switcheroo", "thunderpunch"] - }, - "mismagius": { - "level": 82, - "moves": ["hiddenpowerfighting", "nastyplot", "shadowball", "substitute", "taunt", "thunderbolt", "willowisp"] - }, - "honchkrow": { - "level": 82, - "moves": ["bravebird", "heatwave", "pursuit", "roost", "substitute", "suckerpunch", "superpower"] - }, - "purugly": { - "level": 88, - "moves": ["fakeout", "hypnosis", "return", "suckerpunch", "uturn"] - }, - "skuntank": { - "level": 86, - "moves": ["crunch", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"] - }, - "bronzong": { - "level": 81, - "moves": ["earthquake", "hypnosis", "psychic", "stealthrock", "toxic"] - }, - "chatot": { - "level": 90, - "moves": ["chatter", "heatwave", "hiddenpowerground", "hypervoice", "nastyplot", "substitute", "uturn"] - }, - "spiritomb": { - "level": 84, - "moves": ["calmmind", "darkpulse", "foulplay", "rest", "shadowsneak", "sleeptalk", "willowisp"] - }, - "garchomp": { - "level": 77, - "moves": ["aquatail", "earthquake", "fireblast", "outrage", "stealthrock", "stoneedge", "swordsdance"] - }, - "lucario": { - "level": 82, - "moves": ["closecombat", "crunch", "extremespeed", "icepunch", "swordsdance"] - }, - "hippowdon": { - "level": 82, - "moves": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"] - }, - "drapion": { - "level": 84, - "moves": ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes"] - }, - "toxicroak": { - "level": 80, - "moves": ["drainpunch", "icepunch", "poisonjab", "substitute", "suckerpunch", "swordsdance"] - }, - "carnivine": { - "level": 91, - "moves": ["leechseed", "powerwhip", "return", "sleeppowder", "substitute", "swordsdance"] - }, - "lumineon": { - "level": 90, - "moves": ["icebeam", "protect", "scald", "toxic", "uturn"] - }, - "abomasnow": { - "level": 82, - "moves": ["blizzard", "earthquake", "hiddenpowerfire", "iceshard", "leechseed", "woodhammer"] - }, - "weavile": { - "level": 82, - "moves": ["icepunch", "iceshard", "lowkick", "nightslash", "pursuit", "swordsdance"] - }, - "magnezone": { - "level": 81, - "moves": ["flashcannon", "hiddenpowerfire", "thunderbolt", "toxic", "voltswitch"] - }, - "lickilicky": { - "level": 86, - "moves": ["bodyslam", "earthquake", "healbell", "powerwhip", "protect", "swordsdance", "toxic", "wish"] - }, - "rhyperior": { - "level": 82, - "moves": ["earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge"] - }, - "tangrowth": { - "level": 84, - "moves": ["earthquake", "hiddenpowerfire", "leechseed", "powerwhip", "rockslide", "sleeppowder", "synthesis"] - }, - "electivire": { - "level": 84, - "moves": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"] - }, - "magmortar": { - "level": 84, - "moves": ["fireblast", "focusblast", "hiddenpowergrass", "substitute", "thunderbolt"] - }, - "togekiss": { - "level": 82, - "moves": ["airslash", "aurasphere", "nastyplot", "roost", "thunderwave"] - }, - "yanmega": { - "level": 82, - "moves": ["airslash", "bugbuzz", "hiddenpowerground", "protect", "uturn"] - }, - "leafeon": { - "level": 90, - "moves": ["leafblade", "return", "swordsdance", "xscissor"] - }, - "glaceon": { - "level": 90, - "moves": ["hiddenpowerground", "icebeam", "protect", "shadowball", "toxic", "wish"] - }, - "gliscor": { - "level": 80, - "moves": ["earthquake", "icefang", "protect", "roost", "substitute", "swordsdance", "taunt", "toxic"] - }, - "mamoswine": { - "level": 79, - "moves": ["earthquake", "iceshard", "iciclecrash", "stealthrock", "superpower"] - }, - "porygonz": { - "level": 82, - "moves": ["agility", "darkpulse", "hiddenpowerfighting", "icebeam", "nastyplot", "thunderbolt", "triattack", "trick"] - }, - "gallade": { - "level": 84, - "moves": ["closecombat", "drainpunch", "nightslash", "substitute", "swordsdance", "trick", "zenheadbutt"] - }, - "probopass": { - "level": 86, - "moves": ["earthpower", "powergem", "stealthrock", "toxic", "voltswitch"] - }, - "dusknoir": { - "level": 84, - "moves": ["earthquake", "icepunch", "painsplit", "shadowsneak", "trick", "willowisp"] - }, - "froslass": { - "level": 82, - "moves": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"] - }, - "rotom": { - "level": 84, - "moves": ["hiddenpowerice", "painsplit", "shadowball", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomheat": { - "level": 82, - "moves": ["hiddenpowergrass", "overheat", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] - }, - "rotomwash": { - "level": 80, - "moves": ["hiddenpowerice", "hydropump", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] - }, - "rotomfrost": { - "level": 88, - "moves": ["blizzard", "hiddenpowerfire", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomfan": { - "level": 86, - "moves": ["airslash", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotommow": { - "level": 84, - "moves": ["hiddenpowerfire", "leafstorm", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"] - }, - "uxie": { - "level": 84, - "moves": ["healbell", "lightscreen", "memento", "psychic", "reflect", "stealthrock", "thunderwave", "uturn", "yawn"] - }, - "mesprit": { - "level": 83, - "moves": ["calmmind", "hiddenpowerfire", "icebeam", "psychic", "stealthrock", "thunderbolt", "trick", "uturn"] - }, - "azelf": { - "level": 82, - "moves": ["energyball", "fireblast", "nastyplot", "psychic", "stealthrock", "taunt", "trick", "uturn"] - }, - "dialga": { - "level": 73, - "moves": ["aurasphere", "dracometeor", "dragontail", "fireblast", "stealthrock", "thunderbolt"] - }, - "palkia": { - "level": 75, - "moves": ["dracometeor", "dragontail", "fireblast", "hydropump", "spacialrend", "surf", "thunderbolt"] - }, - "heatran": { - "level": 80, - "moves": ["earthpower", "fireblast", "flashcannon", "hiddenpowerice", "lavaplume", "protect", "roar", "stealthrock", "toxic"] - }, - "regigigas": { - "level": 87, - "moves": ["confuseray", "return", "rockslide", "substitute", "thunderwave"] - }, - "giratinaorigin": { - "level": 76, - "moves": ["dracometeor", "earthquake", "hiddenpowerfire", "shadowsneak", "willowisp"] - }, - "giratina": { - "level": 75, - "moves": ["calmmind", "dragonpulse", "dragontail", "rest", "sleeptalk", "willowisp"] - }, - "cresselia": { - "level": 83, - "moves": ["calmmind", "hiddenpowerfighting", "moonlight", "psychic", "thunderwave", "toxic"] - }, - "phione": { - "level": 90, - "moves": ["healbell", "icebeam", "scald", "toxic", "uturn"] - }, - "manaphy": { - "level": 76, - "moves": ["energyball", "icebeam", "surf", "tailglow"] - }, - "darkrai": { - "level": 73, - "moves": ["darkpulse", "darkvoid", "focusblast", "nastyplot", "substitute"] - }, - "shaymin": { - "level": 82, - "moves": ["earthpower", "hiddenpowerfire", "leechseed", "psychic", "rest", "seedflare"] - }, - "shayminsky": { - "level": 76, - "moves": ["airslash", "earthpower", "hiddenpowerfire", "hiddenpowerice", "leechseed", "seedflare", "substitute"] - }, - "arceus": { - "level": 73, - "moves": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"] - }, - "arceusbug": { - "level": 73, - "moves": ["earthquake", "recover", "stoneedge", "swordsdance", "xscissor"] - }, - "arceusdark": { - "level": 73, - "moves": ["calmmind", "judgment", "recover", "refresh"] - }, - "arceusdragon": { - "level": 73, - "moves": ["earthquake", "extremespeed", "outrage", "recover", "swordsdance"] - }, - "arceuselectric": { - "level": 73, - "moves": ["calmmind", "icebeam", "judgment", "recover"] - }, - "arceusfighting": { - "level": 73, - "moves": ["calmmind", "darkpulse", "icebeam", "judgment", "recover"] - }, - "arceusfire": { - "level": 73, - "moves": ["calmmind", "fireblast", "judgment", "recover", "thunderbolt"] - }, - "arceusflying": { - "level": 73, - "moves": ["calmmind", "earthpower", "judgment", "recover", "substitute"] - }, - "arceusghost": { - "level": 73, - "moves": ["calmmind", "focusblast", "judgment", "recover", "roar", "willowisp"] - }, - "arceusgrass": { - "level": 73, - "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover", "thunderwave"] - }, - "arceusground": { - "level": 73, - "moves": ["calmmind", "icebeam", "judgment", "recover", "willowisp"] - }, - "arceusice": { - "level": 73, - "moves": ["calmmind", "fireblast", "icebeam", "recover", "thunderbolt"] - }, - "arceuspoison": { - "level": 73, - "moves": ["flamethrower", "icebeam", "recover", "sludgebomb", "stealthrock", "willowisp"] - }, - "arceuspsychic": { - "level": 73, - "moves": ["calmmind", "darkpulse", "focusblast", "judgment", "recover"] - }, - "arceusrock": { - "level": 73, - "moves": ["earthquake", "recover", "stoneedge", "swordsdance"] - }, - "arceussteel": { - "level": 73, - "moves": ["calmmind", "judgment", "recover", "thunderbolt", "willowisp"] - }, - "arceuswater": { - "level": 73, - "moves": ["brickbreak", "extremespeed", "recover", "swordsdance", "waterfall"] - }, - "victini": { - "level": 82, - "moves": ["blueflare", "boltstrike", "energyball", "focusblast", "glaciate", "trick", "uturn", "vcreate"] - }, - "serperior": { - "level": 86, - "moves": ["calmmind", "dragonpulse", "gigadrain", "hiddenpowerfire", "leechseed", "substitute"] - }, - "emboar": { - "level": 84, - "moves": ["earthquake", "fireblast", "flareblitz", "grassknot", "headsmash", "superpower", "wildcharge"] - }, - "samurott": { - "level": 86, - "moves": ["aquajet", "grassknot", "icebeam", "megahorn", "superpower", "swordsdance", "waterfall"] - }, - "watchog": { - "level": 90, - "moves": ["crunch", "hypnosis", "return", "substitute", "superfang", "swordsdance"] - }, - "stoutland": { - "level": 88, - "moves": ["crunch", "return", "superpower", "thunderwave", "wildcharge"] - }, - "liepard": { - "level": 86, - "moves": ["darkpulse", "encore", "hiddenpowerfire", "nastyplot", "thunderwave"] - }, - "simisage": { - "level": 88, - "moves": ["focusblast", "gigadrain", "hiddenpowerrock", "leechseed", "nastyplot", "substitute"] - }, - "simisear": { - "level": 89, - "moves": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"] - }, - "simipour": { - "level": 88, - "moves": ["focusblast", "hiddenpowergrass", "hydropump", "icebeam", "nastyplot", "substitute"] - }, - "musharna": { - "level": 86, - "moves": ["calmmind", "healbell", "hiddenpowerground", "moonlight", "psychic", "signalbeam", "toxic", "trickroom"] - }, - "unfezant": { - "level": 90, - "moves": ["hypnosis", "pluck", "return", "roost", "tailwind", "uturn"] - }, - "zebstrika": { - "level": 88, - "moves": ["hiddenpowergrass", "overheat", "thunderbolt", "voltswitch", "wildcharge"] - }, - "gigalith": { - "level": 86, - "moves": ["earthquake", "explosion", "rockblast", "stealthrock", "stoneedge", "superpower"] - }, - "swoobat": { - "level": 88, - "moves": ["airslash", "calmmind", "heatwave", "roost", "storedpower"] - }, - "excadrill": { - "level": 80, - "moves": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"] - }, - "audino": { - "level": 88, - "moves": ["doubleedge", "healbell", "magiccoat", "protect", "toxic", "wish"] - }, - "conkeldurr": { - "level": 80, - "moves": ["bulkup", "drainpunch", "icepunch", "machpunch", "thunderpunch"] - }, - "seismitoad": { - "level": 86, - "moves": ["earthquake", "hydropump", "raindance", "sludgebomb", "stealthrock", "toxic"] - }, - "throh": { - "level": 88, - "moves": ["bulkup", "icepunch", "payback", "rest", "sleeptalk", "stormthrow"] - }, - "sawk": { - "level": 86, - "moves": ["bulkup", "closecombat", "earthquake", "icepunch", "stoneedge"] - }, - "leavanny": { - "level": 90, - "moves": ["leafblade", "swordsdance", "synthesis", "xscissor"] - }, - "scolipede": { - "level": 86, - "moves": ["aquatail", "earthquake", "megahorn", "rockslide", "spikes", "swordsdance"] - }, - "whimsicott": { - "level": 84, - "moves": ["encore", "gigadrain", "leechseed", "stunspore", "taunt", "uturn"] - }, - "lilligant": { - "level": 84, - "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"] - }, - "basculinbluestriped": { - "level": 86, - "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"] - }, - "basculin": { - "level": 86, - "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"] - }, - "krookodile": { - "level": 81, - "moves": ["crunch", "earthquake", "pursuit", "stealthrock", "stoneedge", "superpower"] - }, - "darmanitan": { - "level": 82, - "moves": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"] - }, - "maractus": { - "level": 89, - "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "spikes", "toxic"] - }, - "crustle": { - "level": 84, - "moves": ["earthquake", "rockblast", "shellsmash", "spikes", "stealthrock", "stoneedge", "xscissor"] - }, - "scrafty": { - "level": 81, - "moves": ["crunch", "dragondance", "highjumpkick", "icepunch", "zenheadbutt"] - }, - "sigilyph": { - "level": 84, - "moves": ["cosmicpower", "psychoshift", "roost", "storedpower"] - }, - "cofagrigus": { - "level": 83, - "moves": ["haze", "hiddenpowerfighting", "nastyplot", "painsplit", "shadowball", "trickroom", "willowisp"] - }, - "carracosta": { - "level": 86, - "moves": ["aquajet", "earthquake", "icebeam", "shellsmash", "stealthrock", "stoneedge", "waterfall"] - }, - "archeops": { - "level": 83, - "moves": ["acrobatics", "earthquake", "headsmash", "pluck", "roost", "stoneedge", "uturn"] - }, - "garbodor": { - "level": 86, - "moves": ["drainpunch", "gunkshot", "haze", "painsplit", "spikes", "toxicspikes"] - }, - "zoroark": { - "moves": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "uturn"] - }, - "cinccino": { - "level": 82, - "moves": ["bulletseed", "rockblast", "tailslap", "uturn"] - }, - "gothitelle": { - "level": 83, - "moves": ["calmmind", "hiddenpowerfighting", "psychic", "rest", "thunderbolt", "trick"] - }, - "reuniclus": { - "level": 81, - "moves": ["calmmind", "focusblast", "psychic", "recover", "shadowball", "trickroom"] - }, - "swanna": { - "level": 88, - "moves": ["hurricane", "icebeam", "raindance", "roost", "surf"] - }, - "vanilluxe": { - "level": 90, - "moves": ["autotomize", "explosion", "flashcannon", "hiddenpowerground", "icebeam"] - }, - "sawsbuck": { - "level": 86, - "moves": ["doubleedge", "hornleech", "megahorn", "naturepower", "return", "substitute", "swordsdance"] - }, - "emolga": { - "level": 89, - "moves": ["acrobatics", "encore", "roost", "thunderbolt", "toxic", "uturn"] - }, - "escavalier": { - "level": 84, - "moves": ["ironhead", "megahorn", "pursuit", "return", "swordsdance"] - }, - "amoonguss": { - "level": 84, - "moves": ["clearsmog", "gigadrain", "hiddenpowerfire", "spore", "stunspore", "synthesis"] - }, - "jellicent": { - "level": 81, - "moves": ["icebeam", "recover", "scald", "shadowball", "toxic", "willowisp"] - }, - "alomomola": { - "level": 86, - "moves": ["protect", "scald", "toxic", "waterfall", "wish"] - }, - "galvantula": { - "level": 84, - "moves": ["bugbuzz", "gigadrain", "hiddenpowerice", "thunder", "voltswitch"] - }, - "ferrothorn": { - "level": 80, - "moves": ["gyroball", "leechseed", "powerwhip", "protect", "spikes", "stealthrock", "toxic"] - }, - "klinklang": { - "level": 84, - "moves": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"] - }, - "eelektross": { - "level": 86, - "moves": ["flamethrower", "gigadrain", "hiddenpowerice", "superpower", "thunderbolt", "uturn"] - }, - "beheeyem": { - "level": 88, - "moves": ["hiddenpowerfighting", "psychic", "thunderbolt", "trick", "trickroom"] - }, - "chandelure": { - "level": 82, - "moves": ["calmmind", "energyball", "fireblast", "hiddenpowerfighting", "shadowball", "substitute"] - }, - "haxorus": { - "level": 80, - "moves": ["aquatail", "dragondance", "earthquake", "outrage", "superpower", "swordsdance"] - }, - "beartic": { - "level": 90, - "moves": ["aquajet", "iciclecrash", "stoneedge", "superpower", "swordsdance"] - }, - "cryogonal": { - "level": 85, - "moves": ["hiddenpowerfire", "icebeam", "rapidspin", "recover", "toxic"] - }, - "accelgor": { - "level": 84, - "moves": ["bugbuzz", "encore", "focusblast", "gigadrain", "hiddenpowerrock", "spikes", "yawn"] - }, - "stunfisk": { - "level": 88, - "moves": ["discharge", "earthpower", "foulplay", "rest", "scald", "sleeptalk", "stealthrock", "toxic"] - }, - "mienshao": { - "level": 82, - "moves": ["highjumpkick", "stoneedge", "substitute", "swordsdance", "uturn"] - }, - "druddigon": { - "level": 84, - "moves": ["dragontail", "earthquake", "glare", "outrage", "stealthrock", "suckerpunch", "superpower"] - }, - "golurk": { - "level": 86, - "moves": ["drainpunch", "earthquake", "icepunch", "rockpolish", "shadowpunch", "stealthrock"] - }, - "bisharp": { - "level": 82, - "moves": ["ironhead", "lowkick", "nightslash", "suckerpunch", "swordsdance"] - }, - "bouffalant": { - "level": 85, - "moves": ["earthquake", "headcharge", "megahorn", "stoneedge", "swordsdance"] - }, - "braviary": { - "level": 86, - "moves": ["bravebird", "bulkup", "return", "roost", "superpower", "uturn"] - }, - "mandibuzz": { - "level": 86, - "moves": ["bravebird", "foulplay", "roost", "taunt", "toxic", "whirlwind"] - }, - "heatmor": { - "level": 90, - "moves": ["fireblast", "gigadrain", "suckerpunch", "superpower"] - }, - "durant": { - "level": 83, - "moves": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"] - }, - "hydreigon": { - "level": 80, - "moves": ["darkpulse", "dracometeor", "flamethrower", "focusblast", "roost", "uturn"] - }, - "volcarona": { - "level": 79, - "moves": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerground", "quiverdance", "roost"] - }, - "cobalion": { - "level": 81, - "moves": ["closecombat", "hiddenpowerice", "ironhead", "stealthrock", "stoneedge", "swordsdance", "taunt", "thunderwave", "voltswitch"] - }, - "terrakion": { - "level": 79, - "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance"] - }, - "virizion": { - "level": 82, - "moves": ["closecombat", "leafblade", "stoneedge", "swordsdance"] - }, - "tornadus": { - "level": 82, - "moves": ["acrobatics", "bulkup", "focusblast", "heatwave", "hurricane", "superpower", "taunt", "uturn"] - }, - "tornadustherian": { - "level": 76, - "moves": ["focusblast", "heatwave", "hurricane", "superpower", "uturn"] - }, - "thundurus": { - "level": 76, - "moves": ["focusblast", "hiddenpowerice", "nastyplot", "thunderbolt", "thunderwave", "voltswitch"] - }, - "thundurustherian": { - "level": 80, - "moves": ["agility", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"] - }, - "reshiram": { - "level": 76, - "moves": ["blueflare", "dracometeor", "roost", "stoneedge", "tailwind"] - }, - "zekrom": { - "level": 76, - "moves": ["boltstrike", "dracometeor", "focusblast", "honeclaws", "outrage", "roost", "substitute", "voltswitch"] - }, - "landorus": { - "level": 76, - "moves": ["earthpower", "focusblast", "psychic", "rockpolish", "rockslide", "sludgewave"] - }, - "landorustherian": { - "level": 80, - "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "superpower", "swordsdance", "uturn"] - }, - "kyurem": { - "level": 79, - "moves": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage", "roost", "substitute"] - }, - "kyuremblack": { - "level": 79, - "moves": ["dragonclaw", "earthpower", "fusionbolt", "icebeam", "roost", "substitute"] - }, - "kyuremwhite": { - "level": 75, - "moves": ["dracometeor", "earthpower", "focusblast", "fusionflare", "icebeam", "roost", "substitute"] - }, - "keldeo": { - "level": 79, - "moves": ["calmmind", "hiddenpowergrass", "hydropump", "icywind", "scald", "secretsword", "substitute"] - }, - "meloetta": { - "level": 82, - "moves": ["calmmind", "focusblast", "psychic", "shadowball", "uturn"] - }, - "meloettapirouette": { - "level": 82, - "moves": ["closecombat", "icepunch", "relicsong", "return", "shadowclaw"] - }, - "genesect": { - "level": 76, - "moves": ["bugbuzz", "flamethrower", "icebeam", "ironhead", "rockpolish", "thunderbolt", "uturn"] - } -} diff --git a/data/mods/gen5/random-teams.ts b/data/mods/gen5/random-teams.ts deleted file mode 100644 index 6c3731e2a406..000000000000 --- a/data/mods/gen5/random-teams.ts +++ /dev/null @@ -1,955 +0,0 @@ -import RandomGen6Teams from '../gen6/random-teams'; -import {Utils} from '../../../lib'; -import {toID} from '../../../sim/dex'; -import {PRNG} from '../../../sim'; -import type {MoveCounter, OldRandomBattleSpecies} from '../gen8/random-teams'; - -export class RandomGen5Teams extends RandomGen6Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); - - constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { - super(format, prng); - this.moveEnforcementCheckers = { - lead: (movePool, moves, abilities, types, counter) => ( - movePool.includes('stealthrock') && - !!counter.get('Status') && - !counter.setupType && - !counter.get('speedsetup') && - !moves.has('substitute') - ), - Dark: (movePool, moves, abilities, types, counter) => !counter.get('Dark'), - Dragon: (movePool, moves, abilities, types, counter) => !counter.get('Dragon'), - Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric') || movePool.includes('thunder'), - Fighting: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Fighting') && - (species.baseStats.atk >= 90 || abilities.has('Pure Power') || !!counter.setupType || !counter.get('Status')) - ), - Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), - Flying: (movePool, moves, abilities, types, counter) => ( - !counter.get('Flying') && (types.has('Normal') || abilities.has('Serene Grace')) - ), - Ghost: (movePool, moves, abilities, types, counter) => !types.has('Dark') && !counter.get('Ghost'), - Grass: movePool => (['hornleech', 'seedflare', 'woodhammer'].some(m => movePool.includes(m))), - Ground: (movePool, moves, abilities, types, counter) => ( - !counter.get('Ground') && !moves.has('rest') && !moves.has('sleeptalk') - ), - Ice: (movePool, moves, abilities, types, counter) => !counter.get('Ice'), - Normal: (movePool, moves, abilities, types, counter, species) => ( - movePool.includes('return') && species.baseStats.atk > 80 - ), - Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.baseStats.atk >= 80, - Steel: (movePool, moves, abilities, types, counter) => !counter.get('Steel') && abilities.has('Technician'), - Water: (movePool, moves, abilities, types, counter) => ( - !counter.get('Water') || (abilities.has('Adaptability') && movePool.includes('waterfall')) - ), - Contrary: (movePool, moves, abilities, types, counter, species, teamDetails) => ( - !counter.get('contrary') && species.name !== 'Shuckle' - ), - Guts: (movePool, moves, abilities, types) => types.has('Normal') && movePool.includes('facade'), - 'Slow Start': movePool => movePool.includes('substitute'), - }; - } - - shouldCullMove( - move: Move, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - ): {cull: boolean, isSetup?: boolean} { - const hasRestTalk = moves.has('rest') && moves.has('sleeptalk'); - switch (move.id) { - // Not very useful without their supporting moves - case 'endeavor': - return {cull: !isLead}; - case 'focuspunch': - return {cull: !moves.has('substitute') || counter.damagingMoves.size < 2 || moves.has('swordsdance')}; - case 'lightscreen': - if (movePool.length > 1) { - const screen = movePool.indexOf('reflect'); - if (screen >= 0) this.fastPop(movePool, screen); - } - return {cull: !moves.has('reflect')}; - case 'reflect': - if (movePool.length > 1) { - const screen = movePool.indexOf('lightscreen'); - if (screen >= 0) this.fastPop(movePool, screen); - } - return {cull: !moves.has('lightscreen')}; - case 'rest': - return {cull: movePool.includes('sleeptalk')}; - case 'sleeptalk': - if (movePool.length > 1) { - const rest = movePool.indexOf('rest'); - if (rest >= 0) this.fastPop(movePool, rest); - } - return {cull: !moves.has('rest')}; - case 'storedpower': - return {cull: !counter.setupType && !moves.has('cosmicpower')}; - case 'weatherball': - return {cull: !moves.has('sunnyday')}; - - // Set up once and only if we have the moves for it - case 'bellydrum': case 'bulkup': case 'coil': case 'curse': case 'dragondance': case 'honeclaws': case 'swordsdance': - return {cull: (counter.setupType !== 'Physical' || counter.get('physicalsetup') > 1 || ( - counter.get('Physical') + counter.get('physicalpool') < 2 && - !hasRestTalk - )), isSetup: true}; - case 'calmmind': case 'nastyplot': case 'tailglow': - return {cull: (counter.setupType !== 'Special' || counter.get('specialsetup') > 1 || ( - counter.get('Special') + counter.get('specialpool') < 2 && - !hasRestTalk - )), isSetup: true}; - case 'growth': case 'shellsmash': case 'workup': - const moveTotal = counter.damagingMoves.size + counter.get('physicalpool') + counter.get('specialpool'); - return { - cull: ( - counter.setupType !== 'Mixed' || - counter.get('mixedsetup') > 1 || - moveTotal < 2 || - (move.id === 'growth' && !moves.has('sunnyday')) - ), - isSetup: true, - }; - case 'agility': case 'autotomize': case 'rockpolish': - return { - cull: ( - (counter.damagingMoves.size < 2 && !counter.setupType) || - hasRestTalk - ), - isSetup: !counter.setupType, - }; - - // Bad after setup - case 'bulletpunch': - return {cull: !!counter.get('speedsetup')}; - case 'circlethrow': case 'dragontail': - return {cull: moves.has('substitute') || (!!counter.setupType && !moves.has('rest') && !moves.has('sleeptalk'))}; - case 'fakeout': case 'healingwish': - return {cull: !!counter.setupType || !!counter.get('recovery') || moves.has('substitute')}; - case 'haze': case 'magiccoat': case 'pursuit': case 'spikes': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('rest') || moves.has('trickroom')}; - case 'iceshard': - return {cull: moves.has('shellsmash')}; - case 'leechseed': case 'roar': case 'whirlwind': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('dragontail')}; - case 'nightshade': case 'seismictoss': case 'superfang': - return {cull: !!counter.setupType || counter.damagingMoves.size > 1}; - case 'protect': - return {cull: ( - moves.has('rest') || - (counter.setupType && !abilities.has('Speed Boost') && !moves.has('wish')) || - moves.has('lightscreen') && moves.has('reflect') - )}; - case 'rapidspin': - return {cull: moves.has('shellsmash') || (!!counter.setupType && counter.get('Status') >= 2)}; - case 'stealthrock': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('rest') || !!teamDetails.stealthRock}; - case 'switcheroo': case 'trick': - return {cull: ( - counter.get('Physical') + counter.get('Special') < 3 || - ['fakeout', 'rapidspin', 'suckerpunch'].some(m => moves.has(m)) - )}; - case 'toxic': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('trickroom')}; - case 'toxicspikes': - return {cull: !!counter.setupType || !!teamDetails.toxicSpikes}; - case 'trickroom': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - counter.damagingMoves.size < 2 || - moves.has('lightscreen') || moves.has('reflect') - )}; - case 'uturn': - // Infernape doesn't want mixed sets with U-turn - const infernapeCase = species.id === 'infernape' && !!counter.get('Special'); - return {cull: !!counter.setupType || !!counter.get('speedsetup') || infernapeCase}; - case 'voltswitch': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - ['magnetrise', 'uturn'].some(m => moves.has(m)) - )}; - - // Ineffective having both - // Attacks: - case 'bugbite': - return {cull: moves.has('uturn')}; - case 'crunch': - return {cull: !types.has('Dark') && moves.has('suckerpunch')}; - case 'dragonpulse': case 'spacialrend': - return {cull: moves.has('dracometeor') || moves.has('outrage')}; - case 'thunderbolt': - return {cull: moves.has('wildcharge')}; - case 'drainpunch': case 'focusblast': - return {cull: moves.has('closecombat') || moves.has('lowkick')}; - case 'blueflare': case 'flareblitz': case 'fierydance': case 'flamethrower': case 'lavaplume': - return {cull: ['fireblast', 'overheat', 'vcreate'].some(m => moves.has(m))}; - case 'bravebird': case 'pluck': - return {cull: moves.has('acrobatics') || moves.has('hurricane')}; - case 'acrobatics': - return {cull: !counter.setupType && moves.has('hurricane')}; - case 'hurricane': - return {cull: !!counter.setupType && moves.has('acrobatics')}; - case 'gigadrain': - return {cull: (!counter.setupType && moves.has('leafstorm')) || - ['petaldance', 'powerwhip'].some(m => moves.has(m))}; - case 'solarbeam': - return {cull: (!abilities.has('Drought') && !moves.has('sunnyday')) || moves.has('gigadrain')}; - case 'leafstorm': - return {cull: !!counter.setupType && (moves.has('gigadrain') || moves.has('seedbomb'))}; - case 'seedbomb': - return {cull: !counter.setupType && (moves.has('leafstorm'))}; - case 'bonemerang': case 'earthpower': - return {cull: moves.has('earthquake')}; - case 'extremespeed': case 'headsmash': - return {cull: moves.has('roost')}; - case 'facade': - return {cull: moves.has('suckerpunch') && !types.has('Normal')}; - case 'hydropump': - return {cull: moves.has('waterfall') && !!counter.setupType}; - case 'judgment': - return {cull: counter.setupType !== 'Special' && counter.get('stab') > 1}; - case 'return': - return {cull: moves.has('doubleedge')}; - case 'rockblast': - return {cull: moves.has('stoneedge')}; - case 'poisonjab': - return {cull: moves.has('gunkshot')}; - case 'psychic': - return {cull: moves.has('psyshock')}; - case 'scald': case 'surf': - return {cull: moves.has('hydropump') || moves.has('waterfall')}; - case 'shadowball': - // mono-Psychic types with Calm Mind shouldn't have Shadow Ball as their only coverage - // Chimecho is exempt since Shadow Ball is its only coverage move - return {cull: types.has('Psychic') && types.size < 2 && counter.get('Special') < 3 && - moves.has('calmmind') && species.id !== 'chimecho'}; - case 'waterfall': - return {cull: moves.has('hydropump') && !counter.setupType && !moves.has('raindance') && !teamDetails.rain}; - case 'waterspout': - return {cull: !!counter.get('Status')}; - - // Status: - case 'encore': case 'icepunch': case 'raindance': case 'suckerpunch': - return {cull: moves.has('thunderwave') || hasRestTalk}; - case 'glare': case 'headbutt': - return {cull: moves.has('bodyslam')}; - case 'healbell': - return {cull: !!counter.get('speedsetup') || moves.has('magiccoat')}; - case 'moonlight': case 'painsplit': case 'recover': case 'roost': case 'softboiled': case 'synthesis': - // Prevent Roost + Protect on Gliscor - const gliscorCase = species.id === 'gliscor' && moves.has('protect'); - return {cull: ['leechseed', 'rest', 'wish'].some(m => moves.has(m)) || gliscorCase}; - case 'substitute': - return {cull: ( - (moves.has('doubleedge') && !abilities.has('rockhead')) || - ['pursuit', 'rest', 'superpower', 'uturn', 'voltswitch'].some(m => moves.has(m)) || - // Sceptile wants Swords Dance - (moves.has('acrobatics') && moves.has('earthquake')) || - movePool.includes('shiftgear') - )}; - case 'thunderwave': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - hasRestTalk || - moves.has('discharge') || moves.has('trickroom') - )}; - case 'willowisp': - return {cull: moves.has('lavaplume') || moves.has('scald') && !types.has('Ghost')}; - } - - return {cull: false}; - } - - shouldCullAbility( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species - ): boolean { - switch (ability) { - case 'Anger Point': case 'Gluttony': case 'Keen Eye': case 'Moody': - case 'Sand Veil': case 'Snow Cloak': case 'Steadfast': case 'Weak Armor': - return true; - case 'Analytic': case 'Download': case 'Hyper Cutter': - return species.nfe; - case 'Chlorophyll': case 'Solar Power': - return (!moves.has('sunnyday') && !teamDetails.sun); - case 'Compound Eyes': case 'No Guard': - return !counter.get('inaccurate'); - case 'Contrary': case 'Iron Fist': case 'Skill Link': - return !counter.get(toID(ability)); - case 'Defiant': case 'Moxie': - return !counter.get('Physical'); - case 'Flash Fire': - return abilities.has('Drought'); - case 'Guts': - return (species.id === 'heracross'); - case 'Hydration': case 'Rain Dish': case 'Swift Swim': - return (!moves.has('raindance') && !teamDetails.rain); - case 'Hustle': - return counter.get('Physical') < 2; - case 'Ice Body': - return !teamDetails.hail; - case 'Immunity': - return abilities.has('Toxic Boost'); - case 'Intimidate': - return moves.has('rest') || species.id === 'staraptor'; - case 'Lightning Rod': - return species.types.includes('Ground'); - case 'Limber': - return species.types.includes('Electric'); - case 'Mold Breaker': - return (abilities.has('Adaptability') || moves.has('rest') && moves.has('sleeptalk')); - case 'Overgrow': - return !counter.get('Grass'); - case 'Poison Heal': - return (abilities.has('Technician') && !!counter.get('technician')); - case 'Prankster': - return !counter.get('Status'); - case 'Pressure': case 'Synchronize': - return (counter.get('Status') < 2 || abilities.has('Trace')); - case 'Reckless': case 'Rock Head': - return (!counter.get('recoil') || abilities.has('Sap Sipper')); - case 'Regenerator': - return abilities.has('Magic Guard'); - case 'Sand Force': case 'Sand Rush': - return !teamDetails.sand; - case 'Serene Grace': - return (!counter.get('serenegrace') || species.id === 'blissey'); - case 'Sheer Force': - return (!counter.get('sheerforce') || abilities.has('Guts')); - case 'Sturdy': - return (!!counter.get('recoil') && !counter.get('recovery')); - case 'Swarm': - return !counter.get('Bug'); - case 'Technician': - return (!counter.get('technician') || moves.has('tailslap')); - case 'Tinted Lens': - return (abilities.has('Insomnia') || abilities.has('Magic Guard') || moves.has('protect')); - case 'Unaware': - return (!!counter.setupType || abilities.has('Magic Guard')); - case 'Unburden': - return species.baseStats.spe > 100 && !moves.has('acrobatics'); - case 'Water Absorb': - return (abilities.has('Drizzle') || abilities.has('Unaware') || abilities.has('Volt Absorb')); - } - - return false; - } - - getHighPriorityItem( - ability: string, - types: Set, - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean - ): string | undefined { - if (species.requiredItem) return species.requiredItem; - if (species.requiredItems) return this.sample(species.requiredItems); - - if (species.name === 'Marowak') return 'Thick Club'; - if (species.name === 'Farfetch\u2019d') return 'Stick'; - if (species.name === 'Pikachu') return 'Light Ball'; - if (species.name === 'Shedinja' || species.name === 'Smeargle') return 'Focus Sash'; - if (species.name === 'Unown') return 'Choice Specs'; - if (species.name === 'Wobbuffet' && moves.has('destinybond') && this.randomChance(1, 2)) return 'Custap Berry'; - if (ability === 'Imposter') return 'Choice Scarf'; - if (moves.has('switcheroo') || moves.has('trick')) { - if (species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && !counter.get('priority')) { - return 'Choice Scarf'; - } else { - return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; - } - } - if (species.nfe) return 'Eviolite'; - if (moves.has('shellsmash')) return 'White Herb'; - if (ability === 'Harvest' || moves.has('bellydrum')) return 'Sitrus Berry'; - if ((ability === 'Magic Guard' || ability === 'Sheer Force') && counter.damagingMoves.size > 1) return 'Life Orb'; - if ( - ability === 'Poison Heal' || - ability === 'Toxic Boost' || - (ability === 'Quick Feet' && moves.has('facade')) - ) { - return 'Toxic Orb'; - } - if (moves.has('psychoshift')) return 'Flame Orb'; - if (moves.has('rest') && !moves.has('sleeptalk') && ability !== 'Natural Cure' && ability !== 'Shed Skin') { - return 'Chesto Berry'; - } - if (ability === 'Guts' && moves.has('facade')) { - return (types.has('Fire') || moves.has('uturn') || moves.has('voltswitch')) ? 'Toxic Orb' : 'Flame Orb'; - } - if (moves.has('raindance')) return (ability === 'Forecast') ? 'Damp Rock' : 'Life Orb'; - if (moves.has('sunnyday')) return (ability === 'Forecast' || ability === 'Flower Gift') ? 'Heat Rock' : 'Life Orb'; - if (moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; - if (moves.has('acrobatics')) return 'Flying Gem'; - if (ability === 'Unburden') return moves.has('fakeout') ? 'Normal Gem' : `${species.types[0]} Gem`; - } - - getLowPriorityItem( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - ): string | undefined { - if ( - ability === 'Speed Boost' && - !moves.has('substitute') && - counter.get('Physical') + counter.get('Special') > 2 - ) { - return 'Life Orb'; - } - if ( - counter.get('Physical') >= 4 && - ['dragontail', 'fakeout', 'flamecharge'].every(m => !moves.has(m)) && - !moves.has('suckerpunch') && - (!moves.has('rapidspin') || this.dex.getEffectiveness('Rock', species) < 1) - ) { - return ( - (species.baseStats.atk >= 100 || abilities.has('Huge Power')) && - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - !counter.get('priority') && - this.randomChance(2, 3) - ) ? 'Choice Scarf' : 'Choice Band'; - } - if (counter.get('Special') >= 4 || (counter.get('Special') >= 3 && moves.has('uturn'))) { - return ( - species.baseStats.spa >= 100 && - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - !moves.has('uturn') && - (ability === 'Download' || this.randomChance(2, 3)) - ) ? 'Choice Scarf' : 'Choice Specs'; - } - - if (counter.setupType && moves.has('outrage')) return 'Lum Berry'; - if (this.dex.getEffectiveness('Ground', species) >= 2 && ability !== 'Levitate') return 'Air Balloon'; - if (counter.get('Dark') >= 3) return 'Black Glasses'; - if (species.name === 'Palkia' && (moves.has('dracometeor') || moves.has('spacialrend'))) { - return 'Lustrous Orb'; - } - if ( - types.has('Poison') || - ['bodyslam', 'dragontail', 'protect', 'scald', 'sleeptalk', 'substitute'].some(m => moves.has(m)) - ) { - return 'Leftovers'; - } - if (counter.damagingMoves.size >= 4 && ability !== 'Sturdy') { - return moves.has('uturn') ? 'Expert Belt' : 'Life Orb'; - } - if ( - isLead && - counter.get('hazards') && - !counter.get('recovery') && - ability !== 'Regenerator' && - species.baseStats.hp + species.baseStats.def + species.baseStats.spd <= 275 - ) { - return ability === 'Sturdy' ? 'Custap Berry' : 'Focus Sash'; - } - if (moves.has('voltswitch') && species.baseStats.spe <= 90) { - return 'Leftovers'; - } - if ( - counter.damagingMoves.size >= 3 && - species.baseStats.spe >= 40 && - species.baseStats.hp + species.baseStats.def + species.baseStats.spd <= 275 && - ability !== 'Sturdy' && - !moves.has('rapidspin') && !moves.has('uturn') - ) { - return 'Life Orb'; - } - } - - randomSet( - species: string | Species, - teamDetails: RandomTeamsTypes.TeamDetails = {}, - isLead = false - ): RandomTeamsTypes.RandomSet { - species = this.dex.species.get(species); - let forme = species.name; - - if (typeof species.battleOnly === 'string') { - // Only change the forme. The species has custom moves, and may have different typing and requirements. - forme = species.battleOnly; - } - if (species.cosmeticFormes) { - forme = this.sample([species.name].concat(species.cosmeticFormes)); - } - - const data = this.randomData[species.id]; - - const movePool = (data.moves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice(); - const rejectedPool = []; - const moves = new Set(); - let ability = ''; - - const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; - const ivs: SparseStatsTable = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; - const types = new Set(species.types); - const abilities = new Set(Object.values(species.abilities)); - if (species.unreleasedHidden) abilities.delete(species.abilities.H); - - let availableHP = 0; - for (const setMoveid of movePool) { - if (setMoveid.startsWith('hiddenpower')) availableHP++; - } - - let counter: MoveCounter; - // We use a special variable to track Hidden Power - // so that we can check for all Hidden Powers at once - let hasHiddenPower = false; - - do { - // Choose next 4 moves from learnset/viable moves and add them to moves list: - while (moves.size < this.maxMoveCount && movePool.length) { - const moveid = this.sampleNoReplace(movePool); - if (moveid.startsWith('hiddenpower')) { - availableHP--; - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - while (moves.size < this.maxMoveCount && rejectedPool.length) { - const moveid = this.sampleNoReplace(rejectedPool); - if (moveid.startsWith('hiddenpower')) { - if (hasHiddenPower) { - continue; - } - hasHiddenPower = true; - } - moves.add(moveid); - } - - counter = this.queryMoves(moves, species.types, abilities, movePool); - - // Iterate through the moves again, this time to cull them: - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - - let {cull, isSetup} = this.shouldCullMove( - move, types, moves, abilities, counter, movePool, - teamDetails, species, isLead - ); - - // This move doesn't satisfy our setup requirements: - if ( - (move.category === 'Physical' && counter.setupType === 'Special') || - (move.category === 'Special' && counter.setupType === 'Physical') - ) { - // Reject STABs last in case the setup type changes later on - const stabs = counter.get(species.types[0]) + (counter.get(species.types[1]) || 0); - if (!types.has(move.type) || stabs > 1 || counter.get(move.category) < 2) cull = true; - } - if ( - !isSetup && - counter.setupType && - counter.setupType !== 'Mixed' && - move.category !== counter.setupType && - counter.get(counter.setupType) < 2 && - (move.category !== 'Status' || !move.flags.heal) && - moveid !== 'sleeptalk' && ( - move.category !== 'Status' || ( - counter.get(counter.setupType) + counter.get('Status') > 3 && - counter.get('physicalsetup') + counter.get('specialsetup') < 2 - ) - ) - ) { - // Mono-attacking with setup and RestTalk is allowed - // Reject Status moves only if there is nothing else to reject - cull = true; - } - - if ( - counter.setupType === 'Special' && - moveid === 'hiddenpower' && - species.types.length > 1 && - counter.get('Special') <= 2 && - !types.has(move.type) && - !counter.get('Physical') && - counter.get('specialpool') - ) { - // Hidden Power isn't good enough - cull = true; - } - - const runEnforcementChecker = (checkerName: string) => { - if (!this.moveEnforcementCheckers[checkerName]) return false; - return this.moveEnforcementCheckers[checkerName]( - movePool, moves, abilities, types, counter, species as Species, teamDetails - ); - }; - // Pokemon should have moves that benefit their Type/Ability/Weather, as well as moves required by its forme - if ( - !cull && - !['judgment', 'lightscreen', 'quiverdance', 'reflect', 'sleeptalk'].includes(moveid) && - !isSetup && !move.weather && !move.damage && (move.category !== 'Status' || !move.flags.heal) && ( - move.category === 'Status' || - !types.has(move.type) || - move.basePower && move.basePower < 40 && !move.multihit - ) && (counter.get('physicalsetup') + counter.get('specialsetup') < 2 && ( - !counter.setupType || - counter.setupType === 'Mixed' || - (move.category !== counter.setupType && move.category !== 'Status') || - counter.get(counter.setupType) + counter.get('Status') > 3 - )) - ) { - if ( - ( - !counter.get('stab') && - !counter.get('damage') && ( - species.types.length > 1 || - (species.types[0] !== 'Normal' && species.types[0] !== 'Psychic') || - !moves.has('icebeam') || - species.baseStats.spa >= species.baseStats.spd - ) - ) || ( - !counter.get('recovery') && - !counter.setupType && - ['healingwish', 'trick', 'trickroom'].every(m => !moves.has(m)) && - !abilities.has('Poison Heal') && - (counter.get('Status') || (species.nfe && !!counter.get('Status'))) && - (['recover', 'roost', 'slackoff', 'softboiled'].some(m => movePool.includes(m))) - ) || ( - (movePool.includes('moonlight') && types.size < 2 && !moves.has('trickroom')) || - movePool.includes('darkvoid') || - movePool.includes('milkdrink') || - movePool.includes('quiverdance') || - (species.requiredMove && movePool.includes(toID(species.requiredMove))) - ) || ( - isLead && runEnforcementChecker('lead') - ) - ) { - cull = true; - } else { - for (const type of types) { - if (runEnforcementChecker(type)) { - cull = true; - } - } - for (const abil of abilities) { - if (runEnforcementChecker(abil)) { - cull = true; - } - } - } - } - - // Sleep Talk shouldn't be selected without Rest - if (moveid === 'rest' && cull) { - const sleeptalk = movePool.indexOf('sleeptalk'); - if (sleeptalk >= 0) { - if (movePool.length < 2) { - cull = false; - } else { - this.fastPop(movePool, sleeptalk); - } - } - } - - // Remove rejected moves from the move list - const isHP = moveid.startsWith('hiddenpower'); - if ( - cull && - (movePool.length - availableHP || availableHP && (isHP || !hasHiddenPower)) - ) { - if ( - move.category !== 'Status' && !move.damage && !move.flags.charge && - (!isHP || !availableHP) - ) rejectedPool.push(moveid); - moves.delete(moveid); - if (isHP) hasHiddenPower = false; - break; - } - if (cull && rejectedPool.length) { - moves.delete(moveid); - if (moveid.startsWith('hiddenpower')) hasHiddenPower = false; - break; - } - } - } while (moves.size < this.maxMoveCount && (movePool.length || rejectedPool.length)); - - if (hasHiddenPower) { - let hpType; - for (const move of moves) { - if (move.startsWith('hiddenpower')) hpType = move.substr(11); - } - if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); - const HPivs = this.dex.types.get(hpType).HPivs; - let iv: StatID; - for (iv in HPivs) { - ivs[iv] = HPivs[iv]; - } - } - - - const abilityData = Array.from(abilities).map(a => this.dex.abilities.get(a)); - Utils.sortBy(abilityData, abil => -abil.rating); - - if (abilityData.length > 1) { - // Sort abilities by rating with an element of randomness - if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) { - [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]]; - } - if (abilityData[0].rating <= abilityData[1].rating) { - if (this.randomChance(1, 2)) [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating) { - if (this.randomChance(2, 3)) [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } - - // Start with the first abiility and work our way through, culling as we go - ability = abilityData[0].name; - - - while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) { - if (ability === abilityData[0].name && abilityData[1].rating >= 1) { - ability = abilityData[1].name; - } else if (ability === abilityData[1].name && abilityData[2] && abilityData[2].rating >= 1) { - ability = abilityData[2].name; - } else { - ability = abilityData[0].name; - break; - } - } - - if (abilities.has('Guts') && moves.has('facade') && (ability !== 'Quick Feet' || !counter.setupType)) { - ability = 'Guts'; - } else if (abilities.has('Prankster') && counter.get('Status') > 1) { - ability = 'Prankster'; - } else if (abilities.has('Quick Feet') && moves.has('facade')) { - ability = 'Quick Feet'; - } else if (abilities.has('Swift Swim') && moves.has('raindance')) { - ability = 'Swift Swim'; - } - if (species.name === 'Altaria') ability = 'Natural Cure'; - } else { - ability = abilityData[0].name; - } - - let item = this.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead); - if (item === undefined) { - item = this.getLowPriorityItem(ability, types, moves, abilities, counter, teamDetails, species, isLead); - } - if (item === undefined) item = 'Leftovers'; - if (item === 'Leftovers' && types.has('Poison')) { - item = 'Black Sludge'; - } - - const level = this.adjustLevel || data.level || (species.nfe ? 90 : 80); - - // Prepare optimal HP - const srWeakness = this.dex.getEffectiveness('Rock', species); - while (evs.hp > 1) { - const hp = Math.floor( - Math.floor( - 2 * species.baseStats.hp + (ivs.hp || 31) + Math.floor(evs.hp / 4) + 100 - ) * level / 100 + 10 - ); - if (moves.has('bellydrum') && item === 'Sitrus Berry') { - // Belly Drum should activate Sitrus Berry - if (hp % 2 === 0) break; - } else { - // Maximize number of Stealth Rock switch-ins - if (srWeakness <= 0 || hp % (4 / srWeakness) > 0) break; - } - evs.hp -= 4; - } - - // Minimize confusion damage - if (!counter.get('Physical') && !moves.has('transform')) { - evs.atk = 0; - ivs.atk = hasHiddenPower ? (ivs.atk || 31) - 28 : 0; - } - - if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { - evs.spe = 0; - ivs.spe = hasHiddenPower ? (ivs.spe || 31) - 28 : 0; - } - - return { - name: species.baseSpecies, - species: forme, - gender: species.gender, - shiny: this.randomChance(1, 1024), - moves: Array.from(moves), - ability, - evs, - ivs, - item, - level, - }; - } - - randomTeam() { - this.enforceNoDirectCustomBanlistChanges(); - - const seed = this.prng.seed; - const ruleTable = this.dex.formats.getRuleTable(this.format); - const pokemon: RandomTeamsTypes.RandomSet[] = []; - - // For Monotype - const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); - const typePool = this.dex.types.names(); - const type = this.forceMonotype || this.sample(typePool); - - const baseFormes: {[k: string]: number} = {}; - const tierCount: {[k: string]: number} = {}; - const typeCount: {[k: string]: number} = {}; - const typeComboCount: {[k: string]: number} = {}; - const typeWeaknesses: {[k: string]: number} = {}; - const teamDetails: RandomTeamsTypes.TeamDetails = {}; - - const pokemonPool = this.getPokemonPool(type, pokemon, isMonotype); - - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - if (!species.exists || !this.randomData[species.id]?.moves) continue; - - // Limit to one of each species (Species Clause) - if (baseFormes[species.baseSpecies]) continue; - - // Adjust rate for species with multiple sets - switch (species.baseSpecies) { - case 'Arceus': - if (this.randomChance(16, 17) && !isMonotype) continue; - break; - case 'Rotom': - if (this.gen < 5 && this.randomChance(5, 6) && !isMonotype) continue; - break; - case 'Basculin': case 'Castform': case 'Meloetta': - if (this.randomChance(1, 2) && this.gen === 5) continue; - break; - case 'Cherrim': - if (this.randomChance(1, 2) && this.gen === 4) continue; - break; - } - - // Illusion shouldn't be in the last slot - if (species.name === 'Zoroark' && pokemon.length > 4) continue; - - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - const tier = species.tier; - - // Limit two Pokemon per tier - if (this.gen === 5 && !isMonotype && !this.forceMonotype && tierCount[tier] >= 2 * limitFactor) continue; - - const set = this.randomSet(species, teamDetails, pokemon.length === 0); - - const types = species.types; - - if (!isMonotype && !this.forceMonotype) { - // Limit two of any type - let skip = false; - for (const typeName of types) { - if (typeCount[typeName] >= 2 * limitFactor) { - skip = true; - break; - } - } - if (skip) continue; - - // Limit three weak to any type - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; - if (typeWeaknesses[typeName] >= 3 * limitFactor) { - skip = true; - break; - } - } - } - if (skip) continue; - } - - // Limit one of any type combination, two in Monotype - let typeCombo = types.slice().sort().join(); - if (set.ability === 'Drought' || set.ability === 'Drizzle' || set.ability === 'Sand Stream') { - // Drought, Drizzle and Sand Stream don't count towards the type combo limit - typeCombo = set.ability; - if (typeCombo in typeComboCount) continue; - } else if (!this.forceMonotype) { - if (typeComboCount[typeCombo] >= (isMonotype ? 2 : 1) * limitFactor) continue; - } - - // Okay, the set passes, add it to our team - pokemon.push(set); - - if (pokemon.length === this.maxTeamSize) { - // Set Zoroark's level to be the same as the last Pokemon - const illusion = teamDetails.illusion; - if (illusion) pokemon[illusion - 1].level = pokemon[this.maxTeamSize - 1].level; - break; - } - - // Now that our Pokemon has passed all checks, we can increment our counters - baseFormes[species.baseSpecies] = 1; - - // Increment tier counter - if (tierCount[tier]) { - tierCount[tier]++; - } else { - tierCount[tier] = 1; - } - - // Increment type counters - for (const typeName of types) { - if (typeName in typeCount) { - typeCount[typeName]++; - } else { - typeCount[typeName] = 1; - } - } - if (typeCombo in typeComboCount) { - typeComboCount[typeCombo]++; - } else { - typeComboCount[typeCombo] = 1; - } - - // Increment weakness counter - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - typeWeaknesses[typeName]++; - } - } - - // Team details - if (set.ability === 'Snow Warning' || set.moves.includes('hail')) teamDetails.hail = 1; - if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; - if (set.ability === 'Sand Stream') teamDetails.sand = 1; - if (set.moves.includes('stealthrock')) teamDetails.stealthRock = 1; - if (set.moves.includes('toxicspikes')) teamDetails.toxicSpikes = 1; - if (set.moves.includes('rapidspin')) teamDetails.rapidSpin = 1; - - // For setting Zoroark's level - if (set.ability === 'Illusion') teamDetails.illusion = pokemon.length; - } - if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { - throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); - } - - return pokemon; - } -} - -export default RandomGen5Teams; diff --git a/data/mods/gen5/rulesets.ts b/data/mods/gen5/rulesets.ts index 304801110721..09d83f76357e 100644 --- a/data/mods/gen5/rulesets.ts +++ b/data/mods/gen5/rulesets.ts @@ -1,4 +1,4 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { inherit: true, ruleset: [ @@ -19,8 +19,9 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { this.add('clearpoke'); for (const pokemon of this.getAllPokemon()) { const details = pokemon.details.replace(', shiny', '') - .replace(/(Arceus|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') - .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*'); // Hacked-in Crowned formes will be revealed + .replace(/(Arceus|Genesect|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') + .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*') // Hacked-in Crowned formes will be revealed + .replace(/(Greninja)(?!-Ash)/g, '$1-*'); // Hacked-in Greninja-Ash will be revealed const item = pokemon.item.includes('mail') ? 'mail' : pokemon.item ? 'item' : ''; this.add('poke', pokemon.side.id, details, item); } diff --git a/data/mods/gen5/typechart.ts b/data/mods/gen5/typechart.ts index e8e04f803e4a..cc0df5951fee 100644 --- a/data/mods/gen5/typechart.ts +++ b/data/mods/gen5/typechart.ts @@ -1,4 +1,4 @@ -export const TypeChart: {[k: string]: ModdedTypeData | null} = { +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { electric: { inherit: true, damageTaken: { diff --git a/data/mods/gen5bw1/formats-data.ts b/data/mods/gen5bw1/formats-data.ts index 454df83921b6..6b7fb16a1c21 100644 --- a/data/mods/gen5bw1/formats-data.ts +++ b/data/mods/gen5bw1/formats-data.ts @@ -1,4 +1,85 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { + venusaur: { + tier: "OU", + }, + dugtrio: { + tier: "OU", + }, + cloyster: { + tier: "OU", + }, + chansey: { + tier: "OU", + }, + vaporeon: { + tier: "OU", + }, + jolteon: { + tier: "OU", + }, + espeon: { + tier: "OU", + }, + donphan: { + tier: "OU", + }, + froslass: { + tier: "UU", + }, + metagross: { + tier: "OU", + }, + deoxysdefense: { + tier: "UUBL", + }, + infernape: { + tier: "OU", + }, + lucario: { + tier: "OU", + }, + hippowdon: { + tier: "UUBL", + }, + toxicroak: { + tier: "OU", + }, + snover: { + tier: "UUBL", + }, + abomasnow: { + tier: "UUBL", + }, + garchomp: { + tier: "Uber", + }, + excadrill: { + tier: "Uber", + }, + scrafty: { + tier: "OU", + }, + gothitelle: { + tier: "PU", + }, + chandelure: { + tier: "UU", + }, + haxorus: { + tier: "OU", + }, + mienshao: { + tier: "OU", + }, + hydreigon: { + tier: "OU", + }, + virizion: { + tier: "OU", + }, + tornadus: { + tier: "OU", + }, tornadustherian: { isNonstandard: "Future", tier: "Illegal", @@ -7,6 +88,9 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { isNonstandard: "Future", tier: "Illegal", }, + landorus: { + tier: "OU", + }, landorustherian: { isNonstandard: "Future", tier: "Illegal", diff --git a/data/mods/gen5bw1/items.ts b/data/mods/gen5bw1/items.ts index 40a15d8e56b8..4ea2feedacbf 100644 --- a/data/mods/gen5bw1/items.ts +++ b/data/mods/gen5bw1/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { apicotberry: { inherit: true, isNonstandard: "Unobtainable", diff --git a/data/mods/gen5bw1/learnsets.ts b/data/mods/gen5bw1/learnsets.ts index ed749bc42f1a..da74e3059e2b 100644 --- a/data/mods/gen5bw1/learnsets.ts +++ b/data/mods/gen5bw1/learnsets.ts @@ -1,4 +1,4 @@ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { bulbasaur: { inherit: true, learnset: { @@ -2472,7 +2472,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { attract: ["5M", "4M", "3M"], bestow: ["5L25"], blizzard: ["5M", "4M", "3M"], - bodyslam: ["5L40", "3T"], + bodyslam: ["3T"], bounce: ["4T"], brickbreak: ["5M", "4M", "3M"], calmmind: ["5M", "4M", "3M"], @@ -3130,7 +3130,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { superfang: ["5D", "4T"], supersonic: ["5L5", "5D", "4L5", "3L6"], swagger: ["5M", "4M", "3T"], - swift: ["5L24", "4T", "3T"], + swift: ["4T", "3T"], tailwind: ["4T"], taunt: ["5M", "4M", "3M"], thief: ["5M", "4M", "3M"], @@ -3197,7 +3197,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { superfang: ["4T"], supersonic: ["5L1", "4L1", "3L1"], swagger: ["5M", "4M", "3T"], - swift: ["5L24", "4T", "3T"], + swift: ["4T", "3T"], tailwind: ["4T"], taunt: ["5M", "4M", "3M"], thief: ["5M", "4M", "3M"], @@ -3266,7 +3266,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { superfang: ["4T", "4S0"], supersonic: ["5L1", "4L1", "3L1"], swagger: ["5M", "4M", "3T"], - swift: ["5L24", "4T", "3T"], + swift: ["4T", "3T"], tailwind: ["4T"], taunt: ["5M", "4M", "3M"], thief: ["5M", "4M", "3M"], @@ -4045,7 +4045,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { substitute: ["5M", "4M", "3T"], sunnyday: ["5M", "4M", "3M"], swagger: ["5M", "4M", "3T", "3L61"], - swift: ["5L28", "4T", "3T"], + swift: ["4T", "3T"], switcheroo: ["5L1", "4L1"], taunt: ["5M", "5L25", "4M", "4L25", "3M"], thief: ["5M", "4M", "3M"], @@ -4064,7 +4064,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { learnset: { aerialace: ["5M", "4M", "3M"], amnesia: ["5L48", "4L44"], - aquatail: ["5L32", "4T"], + aquatail: ["4T"], attract: ["5M", "4M", "3M"], blizzard: ["5M", "4M", "3M"], bodyslam: ["3T"], @@ -4158,7 +4158,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { aerialace: ["5M", "4M", "3M"], amnesia: ["5L56", "4L50"], aquajet: ["5L1", "4L1"], - aquatail: ["5L32", "4T"], + aquatail: ["4T"], attract: ["5M", "4M", "3M"], blizzard: ["5M", "4M", "3M"], bodyslam: ["3T"], @@ -9492,7 +9492,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { fling: ["5M", "4M"], focusblast: ["5M", "4M"], frustration: ["5M", "4M"], - gigadrain: ["5L36", "4M"], + gigadrain: ["4M"], gigaimpact: ["5M", "4M"], grassknot: ["5M", "4M"], growth: ["5L12", "4L12"], @@ -9958,7 +9958,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { inherit: true, learnset: { blizzard: ["5M", "4M", "3M"], - brine: ["5L36", "4M"], + brine: ["4M"], bubblebeam: ["5L28", "4L28", "3L28"], camouflage: ["5L19", "4L19", "3L19"], cosmicpower: ["5L55", "4L51", "3L42", "3S0"], @@ -11351,7 +11351,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { curse: ["5E", "4E", "3E"], detect: ["5E", "4E"], dig: ["5M", "4M", "3M"], - doubleedge: ["5L37", "3T"], + doubleedge: ["3T"], doubleteam: ["5M", "4M", "3M"], echoedvoice: ["5M", "5S2"], endure: ["5E", "4M", "4E", "3T", "3E"], @@ -15431,7 +15431,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { frustration: ["5M", "4M", "3M"], hail: ["5M", "4M", "3M"], headbutt: ["4T"], - helpinghand: ["5L16", "4T"], + helpinghand: ["4T"], hiddenpower: ["5M", "4M", "3M"], icebeam: ["5M", "4M", "3M"], icywind: ["4T", "3T"], @@ -15502,7 +15502,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { grassknot: ["5M", "4M"], hail: ["5M", "4M", "3M"], headbutt: ["4T"], - helpinghand: ["5L16", "4T"], + helpinghand: ["4T"], hiddenpower: ["5M", "4M", "3M"], hydropump: ["5L42", "4L42", "3L45"], icebeam: ["5M", "4M", "3M"], @@ -15578,7 +15578,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { grassknot: ["5M", "4M"], hail: ["5M", "4M", "3M"], headbutt: ["4T"], - helpinghand: ["5L16", "4T"], + helpinghand: ["4T"], hiddenpower: ["5M", "4M", "3M"], hydropump: ["5L54", "4L54", "3L57"], hyperbeam: ["5M", "4M", "3M"], @@ -15607,7 +15607,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { snore: ["4T", "3T"], strength: ["5M", "4M", "3M"], substitute: ["5M", "4M", "3T"], - superpower: ["5L42", "4T"], + superpower: ["4T"], surf: ["5M", "4M", "3M"], swagger: ["5M", "4M", "3T"], swift: ["4T", "3T"], @@ -15690,7 +15690,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { calmmind: ["5M", "4M", "3M"], captivate: ["4M"], copycat: ["5L1", "4L1"], - counter: ["5L33", "3T"], + counter: ["3T"], curse: ["5E"], defensecurl: ["5E", "4E", "3T"], dig: ["5M", "4M", "3M"], @@ -16127,7 +16127,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { captivate: ["4M"], curse: ["5E", "4E", "3E"], cut: ["5M", "4M", "3M"], - doubleedge: ["5L37", "3T"], + doubleedge: ["3T"], doubleteam: ["5M", "4M", "3M"], earthpower: ["5D", "4T"], encore: ["5E", "4E", "3E"], @@ -16182,7 +16182,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { bulletseed: ["5L21", "4M", "4L21", "3M", "3L25"], captivate: ["4M"], cut: ["5M", "4M", "3M"], - doubleedge: ["5L37", "3T"], + doubleedge: ["3T"], doubleteam: ["5M", "4M", "3M"], earthpower: ["4T"], endeavor: ["4T"], @@ -16191,7 +16191,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { facade: ["5M", "4M", "3M"], flash: ["5M", "4M", "3M"], frustration: ["5M", "4M", "3M"], - gigadrain: ["5L22", "4M", "3M"], + gigadrain: ["4M", "3M"], gigaimpact: ["5M", "4M"], grassknot: ["5M", "4M"], grasswhistle: ["5L13", "4L13"], @@ -16205,7 +16205,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { lightscreen: ["5M", "4M", "3M"], megadrain: ["5L5", "4L5"], mimic: ["3T"], - naturalgift: ["5L31", "4M"], + naturalgift: ["4M"], petaldance: ["5L33", "4L33", "3L37"], pound: ["5L1", "4L1", "3L1"], protect: ["5M", "4M", "3M"], @@ -17102,12 +17102,12 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { curse: ["5E", "4E", "3E"], defensecurl: ["5L4", "4L5", "3T", "3L4"], dig: ["5M", "5L53", "4M", "4L45", "3M"], - doubleedge: ["5L34", "3T"], + doubleedge: ["3T"], doubleteam: ["5M", "4M", "3M"], dreameater: ["5M", "4M", "3T"], earthquake: ["5M", "4M", "3M"], endeavor: ["5L58", "4T", "4L49", "3L41"], - endure: ["5L40", "4M", "3T"], + endure: ["4M", "3T"], facade: ["5M", "4M", "3M"], fireblast: ["5M", "4M", "3M"], flail: ["5L63", "4L53", "3L44"], @@ -17686,7 +17686,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { bodyslam: ["3T"], brickbreak: ["5M", "5L19", "4M", "4L19", "3M", "3L23"], bugbite: ["4T"], - bulkup: ["5M", "4M", "3M"], + bulkup: ["4M", "3M"], bulldoze: ["5M"], captivate: ["4M"], closecombat: ["5L37", "4L37"], @@ -17834,7 +17834,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { slash: ["5L38", "4L35", "3L50"], sleeptalk: ["4M", "3T"], snarl: ["5E"], - snatch: ["5L40", "4M", "3M"], + snatch: ["4M", "3M"], snore: ["4T", "3T"], spite: ["5E", "4T", "4E", "3E"], strength: ["5M", "4M", "3M"], @@ -17919,7 +17919,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { shadowball: ["5M", "4M"], shadowclaw: ["5M", "4M"], sleeptalk: ["4M"], - snatch: ["5L40", "4M"], + snatch: ["4M"], snore: ["4T"], spite: ["4T"], strength: ["5M", "4M"], @@ -18477,7 +18477,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { earthpower: ["5L53", "4T", "4L53"], earthquake: ["5M", "4M", "3M"], endeavor: ["4T"], - endure: ["5L35", "4M", "3T"], + endure: ["4M", "3T"], explosion: ["5M", "4M", "3T"], facade: ["5M", "4M", "3M"], frustration: ["5M", "4M", "3M"], @@ -21939,7 +21939,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { learnset: { aerialace: ["5M", "5L42", "4M", "4L42", "3M"], agility: ["5L37", "5E", "4L37", "4E", "3L55", "3E"], - aircutter: ["5L33", "4T"], + aircutter: ["4T"], airslash: ["5L47", "4L47"], aquaring: ["5E", "4E"], attract: ["5M", "4M", "3M"], @@ -22006,7 +22006,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { aircutter: ["4T"], attract: ["5M", "4M", "3M"], blizzard: ["5M", "4M", "3M"], - brine: ["5L34", "4M"], + brine: ["4M"], captivate: ["4M"], defog: ["4M"], doubleedge: ["3T"], @@ -26035,7 +26035,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { hyperbeam: ["5M", "5L57", "4M", "4L57", "3M", "3L57"], mimic: ["3T"], mudshot: ["5E", "4E"], - mudslap: ["5L13", "4T", "3T"], + mudslap: ["4T", "3T"], naturalgift: ["4M"], protect: ["5M", "4M", "3M"], quickattack: ["5E", "4E", "3E"], @@ -26079,7 +26079,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { dracometeor: ["5T", "4T"], dragonbreath: ["5L35", "4L35", "3L35"], dragonpulse: ["4M"], - earthpower: ["5L39", "4T"], + earthpower: ["4T"], earthquake: ["5M", "4M", "3M"], endure: ["4M", "3T"], facade: ["5M", "4M", "3M"], @@ -26093,7 +26093,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { hiddenpower: ["5M", "4M", "3M"], hyperbeam: ["5M", "5L57", "4M", "4L57", "3M", "3L57"], mimic: ["3T"], - mudslap: ["5L13", "4T", "3T"], + mudslap: ["4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], outrage: ["4T"], @@ -26150,7 +26150,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { dragonclaw: ["5M", "5L45", "4M", "4L45", "4S1", "3M"], dragonpulse: ["4M"], dragontail: ["5M", "5L65"], - earthpower: ["5L39", "4T"], + earthpower: ["4T"], earthquake: ["5M", "4M", "4S1", "3M"], endure: ["4M", "3T"], facade: ["5M", "4M", "3M"], @@ -26171,7 +26171,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { incinerate: ["5M"], irontail: ["4M", "3M"], mimic: ["3T"], - mudslap: ["5L13", "4T", "3T"], + mudslap: ["4T", "3T"], naturalgift: ["4M"], ominouswind: ["4T"], outrage: ["4T"], @@ -30363,13 +30363,13 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { bodyslam: ["3T"], calmmind: ["5M", "4M", "3M"], chargebeam: ["5M", "4M"], - confusion: ["5L1", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], - cosmicpower: ["5L60", "5S15", "4L60", "3L45"], + confusion: ["5L1", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + cosmicpower: ["5L60", "5S7", "4L60", "3L45"], defensecurl: ["3T"], doomdesire: ["5L70", "4L70", "3L50"], doubleedge: ["5L40", "4L40", "3T", "3L35"], doubleteam: ["5M", "4M", "3M"], - dracometeor: ["5S14", "4S12"], + dracometeor: ["5S6", "4S4"], drainpunch: ["4M"], dreameater: ["5M", "4M", "3T"], dynamicpunch: ["3T"], @@ -30386,8 +30386,8 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { grassknot: ["5M", "4M"], gravity: ["5L45", "4T", "4L45"], headbutt: ["4T"], - healingwish: ["5L50", "5S13", "5S15", "5S16", "4L50"], - helpinghand: ["5L15", "4T", "4L15", "3L15", "3S10"], + healingwish: ["5L50", "5S5", "5S7", "5S8", "4L50"], + helpinghand: ["5L15", "4T", "4L15", "3L15", "3S2"], hiddenpower: ["5M", "4M", "3M"], hyperbeam: ["5M", "4M", "3M"], icepunch: ["4T", "3T"], @@ -30403,15 +30403,15 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { naturalgift: ["4M"], nightmare: ["3T"], protect: ["5M", "4M", "3M"], - psychic: ["5M", "5L20", "5S13", "4M", "4L20", "3M", "3L20", "3S10"], + psychic: ["5M", "5L20", "5S5", "4M", "4L20", "3M", "3L20", "3S2"], psychup: ["5M", "4M", "3T"], psyshock: ["5M"], raindance: ["5M", "4M", "3M"], recycle: ["4M"], reflect: ["5M", "4M", "3M"], - refresh: ["5L25", "4L25", "3L25", "3S10"], - rest: ["5M", "5L5", "4M", "4L5", "4S11", "4S12", "3M", "3L5", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9", "3S10"], - return: ["5M", "5S16", "4M", "3M"], + refresh: ["5L25", "4L25", "3L25", "3S2"], + rest: ["5M", "5L5", "4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], + return: ["5M", "5S8", "4M", "3M"], round: ["5M"], safeguard: ["5M", "4M", "3M"], sandstorm: ["5M", "4M", "3M"], @@ -30426,7 +30426,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { substitute: ["5M", "4M", "3T"], sunnyday: ["5M", "4M", "3M"], swagger: ["5M", "4M", "3T"], - swift: ["5L10", "5S13", "5S16", "4T", "4L10", "3T", "3L10"], + swift: ["5L10", "5S5", "5S8", "4T", "4L10", "3T", "3L10"], telekinesis: ["5M"], thunder: ["5M", "4M", "3M"], thunderbolt: ["5M", "4M", "3M"], @@ -30438,7 +30438,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { uproar: ["4T"], uturn: ["5M", "4M"], waterpulse: ["4M", "3M"], - wish: ["5L1", "5S14", "5S15", "5S16", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], + wish: ["5L1", "5S6", "5S7", "5S8", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], zenheadbutt: ["5L35", "4T", "4L35"], }, }, @@ -43943,120 +43943,6 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { toxic: ["5M"], }, }, - kyuremblack: { - inherit: true, - learnset: { - ancientpower: ["5L15"], - blizzard: ["5M", "5L78"], - cut: ["5M"], - doubleteam: ["5M"], - dracometeor: ["5T"], - dragonbreath: ["5L29"], - dragonclaw: ["5M"], - dragonpulse: ["5L57", "5S0", "5S1"], - dragonrage: ["5L1"], - dragontail: ["5M"], - echoedvoice: ["5M"], - endeavor: ["5L71", "5S0"], - facade: ["5M"], - flashcannon: ["5M"], - fling: ["5M"], - fly: ["5M"], - focusblast: ["5M"], - freezeshock: ["5L43", "5S0", "5S1"], - frustration: ["5M"], - fusionbolt: ["5L50", "5S1"], - gigaimpact: ["5M"], - hail: ["5M"], - hiddenpower: ["5M"], - honeclaws: ["5M"], - hyperbeam: ["5M"], - hypervoice: ["5L92"], - icebeam: ["5M", "5L22"], - icywind: ["5L1"], - imprison: ["5L8", "5S0", "5S1"], - lightscreen: ["5M"], - outrage: ["5L85"], - payback: ["5M"], - protect: ["5M"], - psychic: ["5M"], - raindance: ["5M"], - reflect: ["5M"], - rest: ["5M"], - return: ["5M"], - rockslide: ["5M"], - rocksmash: ["5M"], - rocktomb: ["5M"], - round: ["5M"], - safeguard: ["5M"], - shadowball: ["5M"], - shadowclaw: ["5M"], - slash: ["5L36"], - stoneedge: ["5M"], - strength: ["5M"], - substitute: ["5M"], - sunnyday: ["5M"], - swagger: ["5M"], - toxic: ["5M"], - }, - }, - kyuremwhite: { - inherit: true, - learnset: { - ancientpower: ["5L15"], - blizzard: ["5M", "5L78"], - cut: ["5M"], - doubleteam: ["5M"], - dracometeor: ["5T"], - dragonbreath: ["5L29"], - dragonclaw: ["5M"], - dragonpulse: ["5L57", "5S0", "5S1"], - dragonrage: ["5L1"], - dragontail: ["5M"], - echoedvoice: ["5M"], - endeavor: ["5L71", "5S0"], - facade: ["5M"], - flashcannon: ["5M"], - fling: ["5M"], - fly: ["5M"], - focusblast: ["5M"], - frustration: ["5M"], - fusionflare: ["5L50", "5S1"], - gigaimpact: ["5M"], - hail: ["5M"], - hiddenpower: ["5M"], - honeclaws: ["5M"], - hyperbeam: ["5M"], - hypervoice: ["5L92"], - icebeam: ["5M", "5L22"], - iceburn: ["5L43", "5S0", "5S1"], - icywind: ["5L1"], - imprison: ["5L8", "5S0", "5S1"], - lightscreen: ["5M"], - outrage: ["5L85"], - payback: ["5M"], - protect: ["5M"], - psychic: ["5M"], - raindance: ["5M"], - reflect: ["5M"], - rest: ["5M"], - return: ["5M"], - rockslide: ["5M"], - rocksmash: ["5M"], - rocktomb: ["5M"], - round: ["5M"], - safeguard: ["5M"], - shadowball: ["5M"], - shadowclaw: ["5M"], - slash: ["5L36"], - stoneedge: ["5M"], - strength: ["5M"], - substitute: ["5M"], - sunnyday: ["5M"], - swagger: ["5M"], - toxic: ["5M"], - }, - }, keldeo: { inherit: true, learnset: { diff --git a/data/mods/gen5bw1/pokedex.ts b/data/mods/gen5bw1/pokedex.ts index bbc0175826d5..742f17ea99ff 100644 --- a/data/mods/gen5bw1/pokedex.ts +++ b/data/mods/gen5bw1/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { weedle: { inherit: true, unreleasedHidden: true, @@ -43,6 +43,10 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, unreleasedHidden: true, }, + ditto: { + inherit: true, + unreleasedHidden: true, + }, snorlax: { inherit: true, unreleasedHidden: true, @@ -63,6 +67,14 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, unreleasedHidden: true, }, + lugia: { + inherit: true, + unreleasedHidden: true, + }, + hooh: { + inherit: true, + unreleasedHidden: true, + }, wurmple: { inherit: true, unreleasedHidden: true, @@ -187,6 +199,18 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, unreleasedHidden: true, }, + dialga: { + inherit: true, + unreleasedHidden: true, + }, + palkia: { + inherit: true, + unreleasedHidden: true, + }, + giratina: { + inherit: true, + unreleasedHidden: true, + }, patrat: { inherit: true, unreleasedHidden: true, @@ -195,7 +219,7 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, unreleasedHidden: true, }, - lillpup: { + lillipup: { inherit: true, unreleasedHidden: true, }, @@ -359,7 +383,7 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, unreleasedHidden: true, }, - lillgant: { + lilligant: { inherit: true, unreleasedHidden: true, }, diff --git a/data/mods/gen6/abilities.ts b/data/mods/gen6/abilities.ts index def809f0ac31..5d91c41eb83d 100644 --- a/data/mods/gen6/abilities.ts +++ b/data/mods/gen6/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { aerilate: { inherit: true, onBasePower(basePower, pokemon, target, move) { @@ -54,6 +54,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { move.type = 'Normal'; } }, + onBasePower() {}, rating: -1, }, parentalbond: { @@ -121,6 +122,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, zenmode: { inherit: true, - isPermanent: false, + flags: {failroleplay: 1, noentrain: 1, notrace: 1}, }, }; diff --git a/data/mods/gen6/conditions.ts b/data/mods/gen6/conditions.ts index 33997b63c15f..fedfe5dafae7 100644 --- a/data/mods/gen6/conditions.ts +++ b/data/mods/gen6/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { brn: { inherit: true, onResidual(pokemon) { diff --git a/data/mods/gen6/formats-data.ts b/data/mods/gen6/formats-data.ts index 8df8a45971a2..eb91b9423077 100644 --- a/data/mods/gen6/formats-data.ts +++ b/data/mods/gen6/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, @@ -52,7 +52,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, weedle: { @@ -62,7 +62,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beedrill: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, beedrillmega: { @@ -76,7 +76,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, pidgeot: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pidgeotmega: { @@ -87,14 +87,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, raticate: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, spearow: { tier: "LC", }, fearow: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, ekans: { @@ -108,30 +108,31 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, pikachu: { - tier: "NFE", + tier: "ZU", + doublesTier: "(DUU)", }, pikachucosplay: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachurockstar: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachubelle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachupopstar: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachuphd: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachulibre: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, raichu: { @@ -190,7 +191,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, wigglytuff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, zubat: { @@ -215,14 +216,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, bellossom: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, paras: { tier: "LC", }, parasect: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, venonat: { @@ -243,14 +244,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, persian: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, psyduck: { tier: "LC", }, golduck: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mankey: { @@ -278,7 +279,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, politoed: { - tier: "(PU)", + tier: "ZU", doublesTier: "DOU", }, abra: { @@ -368,7 +369,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, farfetchd: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, doduo: { @@ -382,7 +383,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dewgong: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, grimer: { @@ -429,7 +430,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, hypno: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, krabby: { @@ -541,7 +542,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, seaking: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, staryu: { @@ -625,7 +626,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, ditto: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, eevee: { @@ -656,7 +657,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, glaceon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, porygon: { @@ -744,7 +745,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, meganium: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cyndaquil: { @@ -771,28 +772,28 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, furret: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, hoothoot: { tier: "LC", }, noctowl: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, ledyba: { tier: "LC", }, ledian: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, spinarak: { tier: "LC", }, ariados: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, chinchou: { @@ -848,7 +849,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sudowoodo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, hoppip: { @@ -858,7 +859,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, jumpluff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, aipom: { @@ -872,7 +873,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sunflora: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, yanma: { @@ -905,18 +906,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, unown: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, wynaut: { tier: "LC", }, wobbuffet: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, girafarig: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pineco: { @@ -927,7 +928,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, dunsparce: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gligar: { @@ -980,7 +981,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, magcargo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, swinub: { @@ -995,18 +996,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, corsola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, remoraid: { tier: "LC", }, octillery: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, delibird: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mantyke: { @@ -1039,7 +1040,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, stantler: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, smeargle: { @@ -1135,7 +1136,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, mightyena: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, zigzagoon: { @@ -1152,14 +1153,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beautifly: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cascoon: { tier: "NFE", }, dustox: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lotad: { @@ -1222,7 +1223,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, masquerain: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, shroomish: { @@ -1240,7 +1241,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "NFE", }, slaking: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, nincada: { @@ -1251,7 +1252,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, shedinja: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, whismur: { @@ -1282,7 +1283,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, delcatty: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, sableye: { @@ -1338,19 +1339,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, plusle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, minun: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, volbeat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, illumise: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, budew: { @@ -1368,7 +1369,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, swalot: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, carvanha: { @@ -1386,7 +1387,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, wailord: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, numel: { @@ -1412,7 +1413,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, spinda: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, trapinch: { @@ -1448,22 +1449,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, seviper: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lunatone: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, solrock: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, barboach: { tier: "LC", }, whiscash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, corphish: { @@ -1502,7 +1503,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, castform: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, castformsunny: { @@ -1519,7 +1520,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, banette: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, banettemega: { @@ -1537,14 +1538,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, tropius: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, chingling: { tier: "LC", }, chimecho: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, absol: { @@ -1559,7 +1560,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, glalie: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, glaliemega: { @@ -1577,14 +1578,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, walrein: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, clamperl: { tier: "LC", }, huntail: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gorebyss: { @@ -1596,7 +1597,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, luvdisc: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, bagon: { @@ -1742,14 +1743,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, bibarel: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, kricketot: { tier: "LC", }, kricketune: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, shinx: { @@ -1759,7 +1760,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, luxray: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cranidos: { @@ -1773,37 +1774,37 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, bastiodon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, burmy: { tier: "LC", }, wormadam: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, wormadamsandy: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, wormadamtrash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mothim: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, combee: { tier: "LC", }, vespiquen: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pachirisu: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, buizel: { @@ -1817,7 +1818,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, cherrim: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cherrimsunshine: { @@ -1840,7 +1841,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, lopunny: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lopunnymega: { @@ -1851,7 +1852,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, purugly: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, stunky: { @@ -1924,7 +1925,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, carnivine: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, finneon: { @@ -1994,7 +1995,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, regigigas: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, giratina: { @@ -2008,7 +2009,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, phione: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, manaphy: { @@ -2103,7 +2104,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, watchog: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lillipup: { @@ -2127,21 +2128,21 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, simisage: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pansear: { tier: "LC", }, simisear: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, panpour: { tier: "LC", }, simipour: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, munna: { @@ -2158,7 +2159,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, unfezant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, blitzle: { @@ -2175,14 +2176,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, gigalith: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, woobat: { tier: "LC", }, swoobat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, drilbur: { @@ -2289,7 +2290,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, maractus: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, dwebble: { @@ -2359,7 +2360,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, gothitelle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, solosis: { @@ -2386,18 +2387,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, vanilluxe: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, deerling: { tier: "LC", }, sawsbuck: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, emolga: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, karrablast: { @@ -2481,7 +2482,8 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, fraxure: { - tier: "NFE", + tier: "ZUBL", + doublesTier: "NFE", }, haxorus: { tier: "UU", @@ -2491,7 +2493,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, beartic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cryogonal: { @@ -2555,7 +2557,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, heatmor: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, durant: { @@ -2752,7 +2754,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gogoat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pancham: { @@ -2763,18 +2765,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, furfrou: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, espurr: { tier: "LC", }, meowstic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, meowsticf: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, honedge: { @@ -2862,11 +2864,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, dedenne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, carbink: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, goomy: { @@ -2903,15 +2905,15 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gourgeist: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gourgeistsmall: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gourgeistlarge: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gourgeistsuper: { diff --git a/data/mods/gen6/items.ts b/data/mods/gen6/items.ts index 6b822fe8d5b2..ebf483dd329c 100644 --- a/data/mods/gen6/items.ts +++ b/data/mods/gen6/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { aguavberry: { inherit: true, onUpdate(pokemon) { diff --git a/data/mods/gen6/learnsets.ts b/data/mods/gen6/learnsets.ts index ec925e49ccd5..0c25790ff3ea 100644 --- a/data/mods/gen6/learnsets.ts +++ b/data/mods/gen6/learnsets.ts @@ -1,4 +1,4 @@ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { tomohawk: { inherit: true, learnset: { diff --git a/data/mods/gen6/moves.ts b/data/mods/gen6/moves.ts index 21fa1dbcb21d..01a560af818d 100644 --- a/data/mods/gen6/moves.ts +++ b/data/mods/gen6/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { allyswitch: { inherit: true, priority: 1, @@ -201,7 +201,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, rockblast: { inherit: true, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, }, sheercold: { inherit: true, diff --git a/data/mods/gen6/pokedex.ts b/data/mods/gen6/pokedex.ts index f43974752d84..8bf3af4e713e 100644 --- a/data/mods/gen6/pokedex.ts +++ b/data/mods/gen6/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { charizardmegax: { inherit: true, color: "Red", @@ -348,7 +348,7 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { }, revenankh: { inherit: true, - abilities: {0: "Shed Skin", 1: "Air Lock"}, + abilities: {0: "Air Lock", H: "Shed Skin"}, }, pyroak: { inherit: true, diff --git a/data/mods/gen6/random-data.json b/data/mods/gen6/random-data.json deleted file mode 100644 index 20e417f84b3b..000000000000 --- a/data/mods/gen6/random-data.json +++ /dev/null @@ -1,2418 +0,0 @@ -{ - "venusaur": { - "level": 83, - "moves": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "powerwhip", "protect", "sleeppowder", "sludgebomb"] - }, - "venusaurmega": { - "level": 80, - "moves": ["earthquake", "gigadrain", "hiddenpowerfire", "sleeppowder", "sludgebomb", "synthesis"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "powerwhip", "protect", "sleeppowder", "sludgebomb"] - }, - "charizardmegax": { - "level": 79, - "moves": ["dragonclaw", "dragondance", "earthquake", "flareblitz", "roost", "willowisp"], - "doublesMoves": ["dragonclaw", "dragondance", "earthquake", "flareblitz", "rockslide", "roost", "substitute"] - }, - "charizard": { - "level": 85, - "moves": ["airslash", "earthquake", "fireblast", "roost", "willowisp"], - "doublesMoves": ["airslash", "dragonpulse", "fireblast", "heatwave", "overheat", "protect", "roost", "tailwind"] - }, - "charizardmegay": { - "level": 79, - "moves": ["airslash", "dragonpulse", "fireblast", "focusblast", "roost", "solarbeam"], - "doublesMoves": ["airslash", "fireblast", "focusblast", "heatwave", "protect", "roost", "solarbeam"] - }, - "blastoise": { - "level": 84, - "moves": ["dragontail", "icebeam", "rapidspin", "roar", "scald", "toxic"], - "doublesMoves": ["fakeout", "followme", "hydropump", "icebeam", "icywind", "muddywater", "protect", "scald", "waterspout"] - }, - "blastoisemega": { - "level": 82, - "moves": ["aurasphere", "darkpulse", "hydropump", "icebeam", "rapidspin", "scald"], - "doublesMoves": ["aurasphere", "darkpulse", "fakeout", "followme", "hydropump", "icebeam", "icywind", "muddywater", "protect", "scald"] - }, - "butterfree": { - "level": 88, - "moves": ["bugbuzz", "energyball", "psychic", "quiverdance", "sleeppowder"], - "doublesMoves": ["bugbuzz", "protect", "psychic", "quiverdance", "shadowball", "sleeppowder", "substitute"] - }, - "beedrill": { - "level": 88, - "moves": ["endeavor", "knockoff", "poisonjab", "tailwind", "toxicspikes", "uturn"], - "doublesMoves": ["brickbreak", "drillrun", "knockoff", "poisonjab", "protect", "stringshot", "uturn", "xscissor"] - }, - "beedrillmega": { - "level": 83, - "moves": ["drillrun", "knockoff", "poisonjab", "swordsdance", "uturn", "xscissor"], - "doublesMoves": ["drillrun", "knockoff", "poisonjab", "protect", "substitute", "uturn", "xscissor"] - }, - "pidgeot": { - "level": 88, - "moves": ["bravebird", "defog", "heatwave", "return", "roost", "uturn"], - "doublesMoves": ["bravebird", "doubleedge", "heatwave", "protect", "return", "tailwind", "uturn"] - }, - "pidgeotmega": { - "level": 81, - "moves": ["defog", "heatwave", "hurricane", "roost", "uturn"], - "doublesMoves": ["heatwave", "hurricane", "protect", "tailwind", "uturn"] - }, - "raticate": { - "level": 88, - "moves": ["facade", "flamewheel", "protect", "suckerpunch", "swordsdance", "uturn"], - "doublesMoves": ["crunch", "facade", "flamewheel", "protect", "suckerpunch", "uturn"] - }, - "fearow": { - "level": 88, - "moves": ["doubleedge", "drillpeck", "drillrun", "pursuit", "return", "uturn"], - "doublesMoves": ["doubleedge", "drillpeck", "drillrun", "protect", "quickattack", "return", "uturn"] - }, - "arbok": { - "level": 88, - "moves": ["aquatail", "coil", "earthquake", "gunkshot", "rest", "suckerpunch"], - "doublesMoves": ["aquatail", "crunch", "earthquake", "gunkshot", "protect", "rest", "rockslide", "suckerpunch"] - }, - "pikachu": { - "level": 90, - "moves": ["extremespeed", "grassknot", "hiddenpowerice", "knockoff", "surf", "voltswitch", "volttackle"], - "doublesMoves": ["brickbreak", "discharge", "encore", "extremespeed", "fakeout", "grassknot", "hiddenpowerice", "knockoff", "protect", "substitute", "thunderbolt", "voltswitch", "volttackle"] - }, - "raichu": { - "level": 88, - "moves": ["encore", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], - "doublesMoves": ["encore", "extremespeed", "fakeout", "focusblast", "grassknot", "hiddenpowerice", "knockoff", "protect", "substitute", "thunderbolt"] - }, - "sandslash": { - "level": 87, - "moves": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "toxic"], - "doublesMoves": ["earthquake", "knockoff", "protect", "rockslide", "stoneedge", "swordsdance", "xscissor"] - }, - "nidoqueen": { - "level": 82, - "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"], - "doublesMoves": ["earthpower", "fireblast", "icebeam", "protect", "sludgebomb"] - }, - "nidoking": { - "level": 82, - "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"], - "doublesMoves": ["earthpower", "fireblast", "focusblast", "icebeam", "protect", "sludgebomb", "thunderbolt"] - }, - "clefable": { - "level": 80, - "moves": ["calmmind", "fireblast", "moonblast", "softboiled", "stealthrock", "thunderwave"], - "doublesMoves": ["dazzlinggleam", "fireblast", "followme", "lightscreen", "moonblast", "protect", "reflect", "safeguard", "softboiled", "thunderwave"] - }, - "ninetales": { - "level": 84, - "moves": ["fireblast", "hiddenpowerice", "nastyplot", "solarbeam", "substitute", "willowisp"], - "doublesMoves": ["fireblast", "heatwave", "protect", "solarbeam", "substitute", "willowisp"] - }, - "wigglytuff": { - "level": 88, - "moves": ["dazzlinggleam", "fireblast", "healbell", "lightscreen", "reflect", "stealthrock"], - "doublesMoves": ["dazzlinggleam", "fireblast", "hypervoice", "icebeam", "knockoff", "lightscreen", "protect", "reflect", "thunderwave"] - }, - "vileplume": { - "level": 86, - "moves": ["aromatherapy", "gigadrain", "hiddenpowerfire", "sleeppowder", "sludgebomb", "synthesis"], - "doublesMoves": ["dazzlinggleam", "gigadrain", "hiddenpowerfire", "moonblast", "protect", "sleeppowder", "sludgebomb", "stunspore"] - }, - "parasect": { - "level": 90, - "moves": ["knockoff", "leechseed", "seedbomb", "spore", "substitute", "xscissor"], - "doublesMoves": ["knockoff", "leechseed", "protect", "ragepowder", "seedbomb", "spore", "stunspore", "wideguard", "xscissor"] - }, - "venomoth": { - "level": 84, - "moves": ["bugbuzz", "quiverdance", "sleeppowder", "sludgebomb", "substitute"], - "doublesMoves": ["bugbuzz", "gigadrain", "protect", "psychic", "quiverdance", "ragepowder", "roost", "sleeppowder", "sludgebomb", "substitute"] - }, - "dugtrio": { - "level": 83, - "moves": ["earthquake", "reversal", "stealthrock", "stoneedge", "substitute", "suckerpunch"], - "doublesMoves": ["earthquake", "protect", "rockslide", "stoneedge", "suckerpunch"] - }, - "persian": { - "level": 88, - "moves": ["fakeout", "knockoff", "return", "taunt", "uturn"], - "doublesMoves": ["fakeout", "feint", "hypnosis", "knockoff", "protect", "return", "taunt", "uturn"] - }, - "golduck": { - "level": 88, - "moves": ["calmmind", "encore", "hydropump", "icebeam", "psyshock", "scald", "substitute"], - "doublesMoves": ["encore", "focusblast", "hiddenpowergrass", "hydropump", "icebeam", "icywind", "protect", "psychic", "scald", "surf"] - }, - "primeape": { - "level": 86, - "moves": ["closecombat", "earthquake", "encore", "gunkshot", "icepunch", "stoneedge", "uturn"], - "doublesMoves": ["closecombat", "earthquake", "icepunch", "poisonjab", "protect", "punishment", "rockslide", "stoneedge", "taunt", "uturn"] - }, - "arcanine": { - "level": 82, - "moves": ["closecombat", "extremespeed", "flareblitz", "morningsun", "roar", "toxic", "wildcharge", "willowisp"], - "doublesMoves": ["closecombat", "extremespeed", "flareblitz", "protect", "snarl", "wildcharge", "willowisp"] - }, - "poliwrath": { - "level": 86, - "moves": ["circlethrow", "focusblast", "hydropump", "icepunch", "raindance", "rest", "scald", "sleeptalk"], - "doublesMoves": ["bellydrum", "brickbreak", "earthquake", "encore", "icepunch", "protect", "rockslide", "waterfall"] - }, - "alakazammega": { - "level": 82, - "moves": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball", "substitute"], - "doublesMoves": ["dazzlinggleam", "encore", "focusblast", "protect", "psychic", "psyshock", "shadowball", "substitute"] - }, - "alakazam": { - "level": 82, - "moves": ["focusblast", "hiddenpowerfire", "hiddenpowerice", "psychic", "psyshock", "shadowball"], - "doublesMoves": ["dazzlinggleam", "encore", "focusblast", "protect", "psychic", "psyshock", "shadowball", "substitute"] - }, - "machamp": { - "level": 82, - "moves": ["bulletpunch", "dynamicpunch", "heavyslam", "knockoff", "stoneedge", "substitute"], - "doublesMoves": ["bulletpunch", "dynamicpunch", "icepunch", "knockoff", "protect", "rockslide", "stoneedge", "wideguard"] - }, - "victreebel": { - "level": 89, - "moves": ["knockoff", "powerwhip", "sleeppowder", "sludgebomb", "solarbeam", "suckerpunch", "sunnyday", "weatherball"], - "doublesMoves": ["growth", "knockoff", "powerwhip", "protect", "sleeppowder", "sludgebomb", "solarbeam", "suckerpunch", "sunnyday", "weatherball"] - }, - "tentacruel": { - "level": 82, - "moves": ["acidspray", "knockoff", "rapidspin", "scald", "sludgebomb", "toxicspikes"], - "doublesMoves": ["acidspray", "dazzlinggleam", "gigadrain", "icebeam", "knockoff", "muddywater", "protect", "scald", "sludgebomb"] - }, - "golem": { - "level": 88, - "moves": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic"], - "doublesMoves": ["earthquake", "firepunch", "hammerarm", "protect", "rockslide", "stoneedge", "suckerpunch"] - }, - "rapidash": { - "level": 88, - "moves": ["drillrun", "flareblitz", "morningsun", "wildcharge", "willowisp"], - "doublesMoves": ["drillrun", "flamecharge", "flareblitz", "hypnosis", "megahorn", "protect", "wildcharge", "willowisp"] - }, - "slowbro": { - "level": 80, - "moves": ["fireblast", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], - "doublesMoves": ["fireblast", "grassknot", "icebeam", "protect", "psychic", "psyshock", "scald", "slackoff", "thunderwave", "trickroom"] - }, - "slowbromega": { - "level": 80, - "moves": ["calmmind", "fireblast", "icebeam", "psyshock", "scald", "slackoff"], - "doublesMoves": ["fireblast", "grassknot", "icebeam", "protect", "psychic", "psyshock", "scald", "slackoff", "thunderwave", "trickroom"] - }, - "farfetchd": { - "level": 91, - "moves": ["bravebird", "knockoff", "leafblade", "return", "swordsdance"], - "doublesMoves": ["bravebird", "leafblade", "nightslash", "protect", "return", "swordsdance"] - }, - "dodrio": { - "level": 88, - "moves": ["bravebird", "doubleedge", "knockoff", "quickattack", "return", "roost"], - "doublesMoves": ["bravebird", "doubleedge", "protect", "quickattack", "return"] - }, - "dewgong": { - "level": 88, - "moves": ["encore", "icebeam", "protect", "surf", "toxic"], - "doublesMoves": ["encore", "fakeout", "icebeam", "perishsong", "protect", "surf", "toxic"] - }, - "muk": { - "level": 88, - "moves": ["curse", "firepunch", "gunkshot", "icepunch", "memento", "poisonjab", "shadowsneak"], - "doublesMoves": ["brickbreak", "firepunch", "gunkshot", "icepunch", "poisonjab", "protect", "shadowsneak"] - }, - "cloyster": { - "level": 82, - "moves": ["hydropump", "iceshard", "iciclespear", "rapidspin", "rockblast", "shellsmash", "spikes"], - "doublesMoves": ["hydropump", "iciclespear", "protect", "razorshell", "rockblast", "shellsmash"] - }, - "gengar": { - "level": 80, - "moves": ["disable", "focusblast", "shadowball", "sludgewave", "substitute", "trick", "willowisp"], - "doublesMoves": ["dazzlinggleam", "disable", "focusblast", "hypnosis", "protect", "shadowball", "sludgebomb", "substitute", "taunt", "willowisp"] - }, - "gengarmega": { - "level": 77, - "moves": ["destinybond", "disable", "focusblast", "perishsong", "protect", "shadowball", "sludgewave", "taunt"], - "doublesMoves": ["dazzlinggleam", "disable", "focusblast", "hypnosis", "protect", "shadowball", "sludgebomb", "substitute", "taunt", "willowisp"] - }, - "hypno": { - "level": 88, - "moves": ["foulplay", "protect", "psychic", "seismictoss", "thunderwave", "toxic", "wish"], - "doublesMoves": ["dazzlinggleam", "foulplay", "hypnosis", "protect", "psychic", "seismictoss", "thunderwave", "trickroom", "wish"] - }, - "kingler": { - "level": 88, - "moves": ["agility", "crabhammer", "knockoff", "rockslide", "superpower", "swordsdance", "xscissor"], - "doublesMoves": ["crabhammer", "knockoff", "protect", "rockslide", "substitute", "superpower", "wideguard", "xscissor"] - }, - "electrode": { - "level": 88, - "moves": ["foulplay", "hiddenpowergrass", "hiddenpowerice", "signalbeam", "taunt", "thunderbolt", "voltswitch"], - "doublesMoves": ["discharge", "foulplay", "hiddenpowerice", "protect", "taunt", "thunderwave", "voltswitch"] - }, - "exeggutor": { - "level": 88, - "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "psychic", "sleeppowder", "substitute"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "leechseed", "protect", "psychic", "psyshock", "sleeppowder", "substitute", "trickroom"] - }, - "marowak": { - "level": 88, - "moves": ["bonemerang", "doubleedge", "earthquake", "knockoff", "stealthrock", "stoneedge", "substitute"], - "doublesMoves": ["bonemerang", "doubleedge", "earthquake", "firepunch", "protect", "rockslide", "substitute", "swordsdance"] - }, - "hitmonlee": { - "level": 84, - "moves": ["fakeout", "highjumpkick", "knockoff", "machpunch", "poisonjab", "rapidspin", "stoneedge"], - "doublesMoves": ["blazekick", "earthquake", "fakeout", "highjumpkick", "knockoff", "machpunch", "protect", "rockslide", "wideguard"] - }, - "hitmonchan": { - "level": 86, - "moves": ["bulkup", "drainpunch", "firepunch", "icepunch", "machpunch", "rapidspin"], - "doublesMoves": ["drainpunch", "earthquake", "fakeout", "firepunch", "icepunch", "machpunch", "protect", "rockslide", "thunderpunch"] - }, - "weezing": { - "level": 86, - "moves": ["fireblast", "painsplit", "sludgebomb", "toxicspikes", "willowisp"], - "doublesMoves": ["explosion", "fireblast", "painsplit", "protect", "sludgebomb", "thunderbolt", "toxic", "willowisp"] - }, - "rhydon": { - "level": 86, - "moves": ["earthquake", "megahorn", "stealthrock", "stoneedge", "toxic"] - }, - "chansey": { - "level": 81, - "moves": ["healbell", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic", "wish"], - "doublesMoves": ["aromatherapy", "helpinghand", "lightscreen", "protect", "seismictoss", "softboiled", "thunderwave", "toxic", "wish"] - }, - "kangaskhan": { - "level": 86, - "moves": ["crunch", "drainpunch", "earthquake", "fakeout", "return", "suckerpunch"], - "doublesMoves": ["crunch", "doubleedge", "drainpunch", "earthquake", "fakeout", "protect", "return", "suckerpunch"] - }, - "kangaskhanmega": { - "level": 76, - "moves": ["crunch", "earthquake", "fakeout", "poweruppunch", "return", "seismictoss", "suckerpunch"], - "doublesMoves": ["crunch", "doubleedge", "drainpunch", "earthquake", "fakeout", "poweruppunch", "protect", "return", "suckerpunch"] - }, - "seaking": { - "level": 88, - "moves": ["drillrun", "icebeam", "knockoff", "megahorn", "raindance", "waterfall"], - "doublesMoves": ["drillrun", "icebeam", "icywind", "knockoff", "megahorn", "protect", "surf", "waterfall"] - }, - "starmie": { - "level": 80, - "moves": ["hydropump", "icebeam", "psyshock", "rapidspin", "recover", "scald", "thunderbolt"], - "doublesMoves": ["hydropump", "icebeam", "protect", "psychic", "psyshock", "recover", "scald", "surf", "thunderbolt"] - }, - "mrmime": { - "level": 88, - "moves": ["dazzlinggleam", "encore", "focusblast", "healingwish", "nastyplot", "psyshock", "shadowball"], - "doublesMoves": ["dazzlinggleam", "encore", "fakeout", "hiddenpowerfighting", "icywind", "protect", "teeterdance", "thunderbolt", "thunderwave", "wideguard"] - }, - "scyther": { - "level": 86, - "moves": ["aerialace", "brickbreak", "bugbite", "knockoff", "quickattack", "roost", "swordsdance", "uturn"], - "doublesMoves": ["aerialace", "brickbreak", "bugbite", "feint", "knockoff", "protect", "quickattack", "swordsdance", "uturn"] - }, - "jynx": { - "level": 86, - "moves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psychic", "psyshock", "substitute", "trick"], - "doublesMoves": ["hiddenpowerfighting", "icebeam", "lovelykiss", "protect", "psychic", "psyshock", "shadowball", "substitute"] - }, - "pinsir": { - "level": 85, - "moves": ["closecombat", "earthquake", "knockoff", "stealthrock", "stoneedge", "xscissor"], - "doublesMoves": ["closecombat", "earthquake", "protect", "rockslide", "substitute", "swordsdance", "xscissor"] - }, - "pinsirmega": { - "level": 78, - "moves": ["closecombat", "earthquake", "quickattack", "return", "swordsdance"], - "doublesMoves": ["closecombat", "earthquake", "feint", "protect", "quickattack", "return", "rockslide", "substitute", "swordsdance"] - }, - "tauros": { - "level": 85, - "moves": ["bodyslam", "doubleedge", "earthquake", "rockslide", "zenheadbutt"], - "doublesMoves": ["doubleedge", "earthquake", "protect", "return", "rockslide", "stoneedge", "zenheadbutt"] - }, - "gyarados": { - "level": 80, - "moves": ["bounce", "dragondance", "earthquake", "stoneedge", "substitute", "waterfall"], - "doublesMoves": ["bounce", "dragondance", "earthquake", "icefang", "protect", "stoneedge", "substitute", "taunt", "thunderwave", "waterfall"] - }, - "gyaradosmega": { - "level": 80, - "moves": ["crunch", "dragondance", "earthquake", "icefang", "substitute", "waterfall"], - "doublesMoves": ["bounce", "dragondance", "earthquake", "icefang", "protect", "stoneedge", "substitute", "taunt", "thunderwave", "waterfall"] - }, - "lapras": { - "level": 88, - "moves": ["freezedry", "healbell", "hydropump", "icebeam", "thunderbolt", "toxic"], - "doublesMoves": ["healbell", "hydropump", "icebeam", "iceshard", "icywind", "protect", "substitute", "surf", "thunderbolt"] - }, - "ditto": { - "level": 86, - "moves": ["transform"] - }, - "vaporeon": { - "level": 82, - "moves": ["healbell", "icebeam", "protect", "scald", "toxic", "wish"], - "doublesMoves": ["helpinghand", "hydropump", "icebeam", "muddywater", "protect", "scald", "toxic", "wish"] - }, - "jolteon": { - "level": 83, - "moves": ["hiddenpowerice", "shadowball", "signalbeam", "thunderbolt", "voltswitch"], - "doublesMoves": ["helpinghand", "hiddenpowergrass", "hiddenpowerice", "protect", "signalbeam", "substitute", "thunderbolt", "voltswitch"] - }, - "flareon": { - "level": 88, - "moves": ["facade", "flamecharge", "flareblitz", "quickattack", "superpower"], - "doublesMoves": ["facade", "flamecharge", "flareblitz", "helpinghand", "protect", "superpower", "wish"] - }, - "omastar": { - "level": 86, - "moves": ["earthpower", "hydropump", "icebeam", "shellsmash", "spikes", "stealthrock"], - "doublesMoves": ["earthpower", "hiddenpowerelectric", "hydropump", "icebeam", "muddywater", "protect", "shellsmash"] - }, - "kabutops": { - "level": 86, - "moves": ["aquajet", "knockoff", "rapidspin", "stoneedge", "swordsdance", "waterfall"], - "doublesMoves": ["aquajet", "knockoff", "protect", "rockslide", "stoneedge", "superpower", "swordsdance", "waterfall"] - }, - "aerodactyl": { - "level": 84, - "moves": ["defog", "doubleedge", "earthquake", "pursuit", "roost", "stealthrock", "stoneedge", "taunt"], - "doublesMoves": ["aquatail", "earthquake", "icefang", "protect", "rockslide", "skydrop", "stoneedge", "tailwind", "taunt", "wideguard"] - }, - "aerodactylmega": { - "level": 80, - "moves": ["aerialace", "aquatail", "earthquake", "firefang", "honeclaws", "roost", "stoneedge"], - "doublesMoves": ["aerialace", "earthquake", "icefang", "ironhead", "protect", "rockslide", "skydrop", "stoneedge", "tailwind", "taunt", "wideguard"] - }, - "snorlax": { - "level": 82, - "moves": ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest", "return", "sleeptalk", "whirlwind"], - "doublesMoves": ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "icepunch", "protect", "return", "selfdestruct"] - }, - "articuno": { - "level": 87, - "moves": ["freezedry", "hurricane", "icebeam", "roost", "substitute", "toxic"], - "doublesMoves": ["freezedry", "hurricane", "protect", "roost", "substitute", "tailwind"] - }, - "zapdos": { - "level": 80, - "moves": ["defog", "heatwave", "hiddenpowerice", "roost", "thunderbolt", "toxic", "uturn"], - "doublesMoves": ["discharge", "heatwave", "hiddenpowergrass", "hiddenpowerice", "protect", "tailwind", "thunderbolt"] - }, - "moltres": { - "level": 84, - "moves": ["fireblast", "hiddenpowergrass", "hurricane", "roost", "substitute", "toxic", "willowisp"], - "doublesMoves": ["airslash", "fireblast", "heatwave", "hiddenpowergrass", "hurricane", "protect", "roost", "substitute", "tailwind", "uturn", "willowisp"] - }, - "dragonite": { - "level": 77, - "moves": ["dragondance", "earthquake", "extremespeed", "firepunch", "outrage", "roost"], - "doublesMoves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "extremespeed", "firepunch", "protect", "roost", "skydrop", "substitute", "superpower"] - }, - "mewtwo": { - "level": 74, - "moves": ["aurasphere", "calmmind", "fireblast", "icebeam", "psystrike", "recover"], - "doublesMoves": ["aurasphere", "calmmind", "fireblast", "icebeam", "protect", "psystrike", "recover", "substitute", "taunt", "thunderbolt", "willowisp"] - }, - "mewtwomegax": { - "level": 73, - "moves": ["bulkup", "drainpunch", "icebeam", "stoneedge", "taunt", "zenheadbutt"] - }, - "mewtwomegay": { - "level": 73, - "moves": ["aurasphere", "calmmind", "fireblast", "icebeam", "psystrike", "recover", "shadowball", "taunt", "willowisp"] - }, - "mew": { - "level": 80, - "moves": ["aurasphere", "defog", "earthpower", "icebeam", "knockoff", "nastyplot", "psyshock", "roost", "stealthrock", "taunt", "willowisp"], - "doublesMoves": ["aurasphere", "fakeout", "fireblast", "helpinghand", "icebeam", "nastyplot", "protect", "psyshock", "roost", "tailwind", "taunt", "thunderbolt", "transform", "willowisp"] - }, - "meganium": { - "level": 88, - "moves": ["aromatherapy", "dragontail", "gigadrain", "leechseed", "lightscreen", "reflect", "synthesis", "toxic"], - "doublesMoves": ["aromatherapy", "dragontail", "gigadrain", "healpulse", "leechseed", "lightscreen", "petalblizzard", "protect", "reflect", "synthesis", "toxic"] - }, - "typhlosion": { - "level": 84, - "moves": ["eruption", "extrasensory", "fireblast", "focusblast", "hiddenpowergrass"], - "doublesMoves": ["eruption", "extrasensory", "fireblast", "focusblast", "heatwave", "hiddenpowergrass", "protect"] - }, - "feraligatr": { - "level": 82, - "moves": ["aquajet", "crunch", "dragondance", "earthquake", "icepunch", "swordsdance", "waterfall"], - "doublesMoves": ["aquajet", "crunch", "dragondance", "earthquake", "icepunch", "protect", "swordsdance", "waterfall"] - }, - "furret": { - "level": 88, - "moves": ["aquatail", "doubleedge", "firepunch", "knockoff", "trick", "uturn"], - "doublesMoves": ["doubleedge", "firepunch", "followme", "helpinghand", "icepunch", "knockoff", "protect", "suckerpunch", "superfang", "uturn"] - }, - "noctowl": { - "level": 89, - "moves": ["airslash", "defog", "nightshade", "roost", "toxic", "whirlwind"], - "doublesMoves": ["airslash", "heatwave", "hypervoice", "hypnosis", "protect", "roost", "tailwind"] - }, - "ledian": { - "level": 91, - "moves": ["knockoff", "lightscreen", "reflect", "roost", "toxic", "uturn"], - "doublesMoves": ["bugbuzz", "encore", "knockoff", "lightscreen", "protect", "reflect", "tailwind", "uturn"] - }, - "ariados": { - "level": 88, - "moves": ["megahorn", "poisonjab", "stickyweb", "suckerpunch", "toxicspikes"], - "doublesMoves": ["megahorn", "poisonjab", "protect", "ragepowder", "stickyweb", "stringshot"] - }, - "crobat": { - "level": 82, - "moves": ["bravebird", "defog", "roost", "superfang", "taunt", "toxic", "uturn"], - "doublesMoves": ["bravebird", "crosspoison", "protect", "superfang", "tailwind", "taunt", "uturn"] - }, - "lanturn": { - "level": 86, - "moves": ["healbell", "hydropump", "icebeam", "scald", "thunderbolt", "thunderwave", "toxic", "voltswitch"], - "doublesMoves": ["discharge", "hiddenpowergrass", "hydropump", "icebeam", "protect", "scald", "surf", "thunderbolt", "thunderwave"] - }, - "xatu": { - "level": 86, - "moves": ["calmmind", "heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"], - "doublesMoves": ["grassknot", "heatwave", "lightscreen", "protect", "psychic", "reflect", "roost", "tailwind", "thunderwave", "uturn"] - }, - "ampharos": { - "level": 87, - "moves": ["focusblast", "healbell", "hiddenpowerice", "lightscreen", "reflect", "thunderbolt", "toxic", "voltswitch"], - "doublesMoves": ["discharge", "dragonpulse", "focusblast", "hiddenpowergrass", "hiddenpowerice", "protect", "thunderbolt"] - }, - "ampharosmega": { - "level": 83, - "moves": ["agility", "dragonpulse", "focusblast", "healbell", "thunderbolt", "voltswitch"], - "doublesMoves": ["discharge", "dragonpulse", "focusblast", "hiddenpowergrass", "hiddenpowerice", "protect", "thunderbolt"] - }, - "bellossom": { - "level": 89, - "moves": ["gigadrain", "hiddenpowerfire", "sleeppowder", "sunnyday", "synthesis"], - "doublesMoves": ["dazzlinggleam", "gigadrain", "hiddenpowerfire", "moonblast", "protect", "sleeppowder", "sludgebomb", "solarbeam", "stunspore", "sunnyday"] - }, - "azumarill": { - "level": 80, - "moves": ["aquajet", "bellydrum", "knockoff", "playrough", "superpower", "waterfall"], - "doublesMoves": ["aquajet", "bellydrum", "knockoff", "playrough", "protect", "superpower", "waterfall"] - }, - "sudowoodo": { - "level": 88, - "moves": ["earthquake", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"], - "doublesMoves": ["earthquake", "explosion", "helpinghand", "protect", "rockslide", "stealthrock", "stoneedge", "suckerpunch", "woodhammer"] - }, - "politoed": { - "level": 84, - "moves": ["encore", "icebeam", "protect", "rest", "scald", "toxic"], - "doublesMoves": ["encore", "focusblast", "helpinghand", "hiddenpowergrass", "hydropump", "hypnosis", "icebeam", "icywind", "protect", "scald"] - }, - "jumpluff": { - "level": 88, - "moves": ["acrobatics", "encore", "leechseed", "seedbomb", "sleeppowder", "substitute", "swordsdance", "toxic", "uturn"], - "doublesMoves": ["encore", "gigadrain", "helpinghand", "leechseed", "protect", "ragepowder", "sleeppowder", "uturn"] - }, - "sunflora": { - "level": 90, - "moves": ["earthpower", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "sludgebomb"], - "doublesMoves": ["earthpower", "encore", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "protect", "solarbeam", "sunnyday"] - }, - "quagsire": { - "level": 88, - "moves": ["earthquake", "encore", "icebeam", "recover", "scald", "toxic"], - "doublesMoves": ["curse", "earthquake", "icepunch", "icywind", "protect", "rockslide", "scald", "waterfall", "yawn"] - }, - "espeon": { - "level": 82, - "moves": ["calmmind", "dazzlinggleam", "morningsun", "psychic", "psyshock", "shadowball", "substitute"], - "doublesMoves": ["dazzlinggleam", "helpinghand", "hiddenpowerfighting", "protect", "psychic", "psyshock", "shadowball", "substitute", "wish"] - }, - "umbreon": { - "level": 82, - "moves": ["foulplay", "healbell", "protect", "toxic", "wish"], - "doublesMoves": ["foulplay", "healbell", "helpinghand", "moonlight", "protect", "snarl", "wish"] - }, - "slowking": { - "level": 84, - "moves": ["dragontail", "fireblast", "icebeam", "nastyplot", "psychic", "psyshock", "scald", "slackoff", "thunderwave", "toxic", "trickroom"], - "doublesMoves": ["fireblast", "grassknot", "icebeam", "protect", "psychic", "psyshock", "scald", "slackoff", "thunderwave", "trickroom"] - }, - "unown": { - "level": 100, - "moves": ["hiddenpowerpsychic"] - }, - "wobbuffet": { - "level": 82, - "moves": ["counter", "destinybond", "encore", "mirrorcoat"] - }, - "girafarig": { - "level": 88, - "moves": ["hypervoice", "nastyplot", "psychic", "psyshock", "substitute", "thunderbolt"], - "doublesMoves": ["agility", "hypervoice", "nastyplot", "protect", "psychic", "psyshock", "thunderbolt"] - }, - "forretress": { - "level": 82, - "moves": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], - "doublesMoves": ["drillrun", "gyroball", "protect", "rockslide", "stealthrock", "toxic", "voltswitch"] - }, - "dunsparce": { - "level": 88, - "moves": ["bite", "bodyslam", "coil", "glare", "headbutt", "rockslide", "roost"], - "doublesMoves": ["bite", "bodyslam", "coil", "glare", "headbutt", "protect", "rockslide"] - }, - "gligar": { - "level": 82, - "moves": ["defog", "earthquake", "knockoff", "roost", "stealthrock", "toxic", "uturn"] - }, - "steelix": { - "level": 86, - "moves": ["earthquake", "ironhead", "roar", "rockslide", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "explosion", "ironhead", "protect", "rockslide", "stealthrock"] - }, - "steelixmega": { - "level": 84, - "moves": ["dragontail", "earthquake", "heavyslam", "roar", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "explosion", "heavyslam", "protect", "rockslide", "stealthrock"] - }, - "granbull": { - "level": 85, - "moves": ["crunch", "earthquake", "healbell", "playrough", "thunderwave"], - "doublesMoves": ["crunch", "earthquake", "playrough", "protect", "rockslide", "snarl", "thunderwave"] - }, - "qwilfish": { - "level": 84, - "moves": ["destinybond", "painsplit", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"], - "doublesMoves": ["destinybond", "poisonjab", "protect", "swordsdance", "taunt", "thunderwave", "waterfall"] - }, - "scizor": { - "level": 80, - "moves": ["bugbite", "bulletpunch", "defog", "knockoff", "pursuit", "roost", "superpower", "swordsdance", "uturn"], - "doublesMoves": ["bugbite", "bulletpunch", "feint", "knockoff", "protect", "roost", "superpower", "swordsdance", "uturn"] - }, - "scizormega": { - "level": 79, - "moves": ["bugbite", "bulletpunch", "defog", "knockoff", "roost", "superpower", "swordsdance", "uturn"], - "doublesMoves": ["bugbite", "bulletpunch", "feint", "knockoff", "protect", "roost", "superpower", "swordsdance", "uturn"] - }, - "shuckle": { - "level": 84, - "moves": ["encore", "knockoff", "stealthrock", "stickyweb", "toxic"], - "doublesMoves": ["encore", "guardsplit", "helpinghand", "knockoff", "powersplit", "stealthrock", "stickyweb", "toxic"] - }, - "heracross": { - "level": 82, - "moves": ["closecombat", "earthquake", "knockoff", "megahorn", "stoneedge", "swordsdance"], - "doublesMoves": ["closecombat", "earthquake", "knockoff", "megahorn", "protect", "stoneedge", "swordsdance"] - }, - "heracrossmega": { - "level": 80, - "moves": ["closecombat", "pinmissile", "rockblast", "substitute", "swordsdance"], - "doublesMoves": ["bulletseed", "closecombat", "earthquake", "knockoff", "pinmissile", "protect", "rockblast", "swordsdance"] - }, - "ursaring": { - "level": 87, - "moves": ["closecombat", "crunch", "facade", "protect", "swordsdance"], - "doublesMoves": ["closecombat", "crunch", "earthquake", "facade", "protect", "swordsdance"] - }, - "magcargo": { - "level": 89, - "moves": ["ancientpower", "earthpower", "fireblast", "hiddenpowergrass", "lavaplume", "recover", "shellsmash", "stealthrock", "toxic"], - "doublesMoves": ["ancientpower", "earthpower", "fireblast", "heatwave", "hiddenpowergrass", "protect", "shellsmash", "stealthrock", "willowisp"] - }, - "corsola": { - "level": 90, - "moves": ["powergem", "recover", "scald", "stealthrock", "toxic"], - "doublesMoves": ["earthpower", "icebeam", "icywind", "powergem", "protect", "scald", "stealthrock"] - }, - "octillery": { - "level": 88, - "moves": ["energyball", "fireblast", "gunkshot", "hydropump", "icebeam", "rockblast", "scald"], - "doublesMoves": ["chargebeam", "energyball", "fireblast", "hydropump", "icebeam", "protect", "surf"] - }, - "delibird": { - "level": 100, - "moves": ["destinybond", "freezedry", "icywind", "rapidspin", "spikes"], - "doublesMoves": ["aerialace", "brickbreak", "fakeout", "icepunch", "iceshard", "protect"] - }, - "mantine": { - "level": 88, - "moves": ["airslash", "defog", "rest", "scald", "sleeptalk", "toxic"], - "doublesMoves": ["airslash", "helpinghand", "hydropump", "icebeam", "protect", "raindance", "scald", "surf", "tailwind", "wideguard"] - }, - "skarmory": { - "level": 80, - "moves": ["bravebird", "defog", "roost", "spikes", "stealthrock", "whirlwind"], - "doublesMoves": ["bravebird", "feint", "ironhead", "protect", "skydrop", "tailwind", "taunt"] - }, - "houndoom": { - "level": 84, - "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"], - "doublesMoves": ["darkpulse", "heatwave", "hiddenpowerfighting", "nastyplot", "protect", "suckerpunch"] - }, - "houndoommega": { - "level": 83, - "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "taunt"], - "doublesMoves": ["darkpulse", "heatwave", "hiddenpowergrass", "nastyplot", "protect", "taunt"] - }, - "kingdra": { - "level": 84, - "moves": ["dracometeor", "dragondance", "hydropump", "icebeam", "outrage", "raindance", "waterfall"], - "doublesMoves": ["dracometeor", "dragonpulse", "focusenergy", "hydropump", "icebeam", "muddywater", "protect"] - }, - "donphan": { - "level": 82, - "moves": ["earthquake", "iceshard", "knockoff", "rapidspin", "stealthrock", "stoneedge"], - "doublesMoves": ["earthquake", "iceshard", "knockoff", "protect", "rockslide", "stealthrock"] - }, - "porygon2": { - "level": 82, - "moves": ["discharge", "icebeam", "recover", "toxic", "triattack"], - "doublesMoves": ["discharge", "icebeam", "protect", "recover", "shadowball", "triattack"] - }, - "stantler": { - "level": 88, - "moves": ["doubleedge", "earthquake", "jumpkick", "megahorn", "suckerpunch"], - "doublesMoves": ["earthquake", "jumpkick", "megahorn", "protect", "return", "suckerpunch"] - }, - "smeargle": { - "level": 88, - "moves": ["destinybond", "spore", "stealthrock", "stickyweb", "whirlwind"], - "doublesMoves": ["fakeout", "followme", "helpinghand", "kingsshield", "spore", "tailwind", "transform", "wideguard"] - }, - "hitmontop": { - "level": 84, - "moves": ["closecombat", "rapidspin", "stoneedge", "suckerpunch", "toxic"], - "doublesMoves": ["closecombat", "fakeout", "feint", "helpinghand", "machpunch", "suckerpunch", "wideguard"] - }, - "miltank": { - "level": 86, - "moves": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], - "doublesMoves": ["bodyslam", "curse", "earthquake", "healbell", "helpinghand", "protect", "thunderwave"] - }, - "blissey": { - "level": 82, - "moves": ["healbell", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"], - "doublesMoves": ["aromatherapy", "flamethrower", "helpinghand", "icebeam", "protect", "seismictoss", "softboiled", "thunderwave", "toxic", "wish"] - }, - "raikou": { - "level": 80, - "moves": ["aurasphere", "calmmind", "extrasensory", "hiddenpowerice", "substitute", "thunderbolt", "voltswitch"], - "doublesMoves": ["calmmind", "extrasensory", "hiddenpowerice", "protect", "snarl", "substitute", "thunderbolt"] - }, - "entei": { - "level": 81, - "moves": ["bulldoze", "extremespeed", "flareblitz", "sacredfire", "stoneedge"], - "doublesMoves": ["bulldoze", "extremespeed", "flareblitz", "ironhead", "protect", "sacredfire", "stoneedge"] - }, - "suicune": { - "level": 82, - "moves": ["calmmind", "hiddenpowergrass", "icebeam", "rest", "scald", "sleeptalk"], - "doublesMoves": ["calmmind", "hiddenpowergrass", "hydropump", "icebeam", "protect", "scald", "snarl", "tailwind"] - }, - "tyranitar": { - "level": 79, - "moves": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "stealthrock", "stoneedge"], - "doublesMoves": ["crunch", "earthquake", "firepunch", "icepunch", "protect", "rockslide", "stealthrock", "stoneedge"] - }, - "tyranitarmega": { - "level": 79, - "moves": ["crunch", "dragondance", "earthquake", "icepunch", "stoneedge"], - "doublesMoves": ["crunch", "dragondance", "earthquake", "icepunch", "protect", "rockslide", "stoneedge"] - }, - "lugia": { - "level": 75, - "moves": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"], - "doublesMoves": ["aeroblast", "calmmind", "icebeam", "protect", "psychic", "roost", "skydrop", "substitute", "tailwind"] - }, - "hooh": { - "level": 74, - "moves": ["bravebird", "earthquake", "roost", "sacredfire", "substitute", "toxic"], - "doublesMoves": ["bravebird", "earthquake", "protect", "roost", "sacredfire", "skydrop", "substitute", "tailwind", "toxic"] - }, - "celebi": { - "level": 82, - "moves": ["earthpower", "gigadrain", "hiddenpowerfire", "leafstorm", "nastyplot", "psychic", "recover", "thunderwave", "uturn"], - "doublesMoves": ["earthpower", "gigadrain", "hiddenpowerfire", "leafstorm", "leechseed", "nastyplot", "protect", "psychic", "recover", "thunderwave", "uturn"] - }, - "sceptile": { - "level": 86, - "moves": ["focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "leechseed", "substitute"], - "doublesMoves": ["focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "protect", "substitute"] - }, - "sceptilemega": { - "level": 82, - "moves": ["dragonpulse", "earthquake", "focusblast", "gigadrain", "hiddenpowerfire", "leafblade", "outrage", "substitute", "swordsdance"], - "doublesMoves": ["dragonpulse", "focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "protect", "substitute"] - }, - "blaziken": { - "level": 76, - "moves": ["fireblast", "hiddenpowerice", "highjumpkick", "knockoff", "protect"] - }, - "blazikenmega": { - "level": 76, - "moves": ["flareblitz", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance"] - }, - "swampert": { - "level": 82, - "moves": ["earthquake", "icebeam", "protect", "roar", "scald", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "icebeam", "icywind", "muddywater", "protect", "rockslide", "scald", "stealthrock", "waterfall", "wideguard"] - }, - "swampertmega": { - "level": 82, - "moves": ["earthquake", "icepunch", "raindance", "superpower", "waterfall"], - "doublesMoves": ["earthquake", "icepunch", "protect", "raindance", "superpower", "waterfall"] - }, - "mightyena": { - "level": 88, - "moves": ["crunch", "firefang", "irontail", "playrough", "suckerpunch"], - "doublesMoves": ["crunch", "firefang", "playrough", "protect", "suckerpunch", "taunt"] - }, - "linoone": { - "level": 87, - "moves": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"], - "doublesMoves": ["bellydrum", "extremespeed", "protect", "seedbomb", "shadowclaw"] - }, - "beautifly": { - "level": 89, - "moves": ["bugbuzz", "energyball", "hiddenpowerfighting", "psychic", "quiverdance"], - "doublesMoves": ["aircutter", "bugbuzz", "gigadrain", "hiddenpowerrock", "protect", "quiverdance", "stringshot", "tailwind"] - }, - "dustox": { - "level": 88, - "moves": ["bugbuzz", "defog", "quiverdance", "roost", "sludgebomb", "uturn"], - "doublesMoves": ["bugbuzz", "protect", "quiverdance", "shadowball", "sludgebomb", "stringshot", "strugglebug", "tailwind"] - }, - "ludicolo": { - "level": 86, - "moves": ["focusblast", "gigadrain", "hydropump", "icebeam", "raindance", "scald"], - "doublesMoves": ["fakeout", "gigadrain", "hydropump", "icebeam", "protect", "raindance", "surf"] - }, - "shiftry": { - "level": 86, - "moves": ["defog", "knockoff", "leafblade", "leafstorm", "lowkick", "suckerpunch", "swordsdance"], - "doublesMoves": ["fakeout", "knockoff", "leafblade", "leafstorm", "lowkick", "protect", "suckerpunch", "swordsdance"] - }, - "swellow": { - "level": 85, - "moves": ["bravebird", "facade", "protect", "quickattack", "uturn"], - "doublesMoves": ["bravebird", "facade", "protect", "quickattack", "uturn"] - }, - "pelipper": { - "level": 89, - "moves": ["defog", "hurricane", "knockoff", "roost", "scald", "toxic", "uturn"], - "doublesMoves": ["hurricane", "knockoff", "protect", "scald", "surf", "tailwind", "wideguard"] - }, - "gardevoir": { - "level": 82, - "moves": ["calmmind", "focusblast", "moonblast", "psychic", "shadowball", "substitute", "thunderbolt", "willowisp"], - "doublesMoves": ["dazzlinggleam", "focusblast", "helpinghand", "moonblast", "protect", "psyshock", "shadowball", "taunt", "thunderbolt", "trickroom", "willowisp"] - }, - "gardevoirmega": { - "level": 80, - "moves": ["calmmind", "focusblast", "hypervoice", "psyshock", "substitute", "taunt", "willowisp"], - "doublesMoves": ["calmmind", "focusblast", "hypervoice", "protect", "psyshock", "shadowball", "thunderbolt"] - }, - "masquerain": { - "level": 88, - "moves": ["airslash", "bugbuzz", "hydropump", "quiverdance", "stickyweb"], - "doublesMoves": ["airslash", "bugbuzz", "hydropump", "protect", "quiverdance", "roost", "strugglebug", "tailwind"] - }, - "breloom": { - "level": 80, - "moves": ["bulletseed", "machpunch", "rocktomb", "spore", "swordsdance"], - "doublesMoves": ["bulletseed", "drainpunch", "helpinghand", "machpunch", "protect", "rocktomb", "spore"] - }, - "slaking": { - "level": 86, - "moves": ["earthquake", "firepunch", "gigaimpact", "nightslash", "pursuit", "retaliate"], - "doublesMoves": ["doubleedge", "earthquake", "hammerarm", "nightslash", "retaliate", "rockslide"] - }, - "ninjask": { - "level": 90, - "moves": ["aerialace", "nightslash", "swordsdance", "uturn", "xscissor"], - "doublesMoves": ["aerialace", "nightslash", "protect", "swordsdance", "xscissor"] - }, - "shedinja": { - "level": 88, - "moves": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"] - }, - "exploud": { - "level": 84, - "moves": ["boomburst", "fireblast", "focusblast", "icebeam", "surf"], - "doublesMoves": ["boomburst", "fireblast", "focusblast", "hypervoice", "icebeam", "protect", "surf"] - }, - "hariyama": { - "level": 86, - "moves": ["bulkup", "bulletpunch", "closecombat", "icepunch", "knockoff", "stoneedge"], - "doublesMoves": ["bulletpunch", "closecombat", "fakeout", "helpinghand", "icepunch", "knockoff", "protect", "stoneedge", "wideguard"] - }, - "delcatty": { - "level": 89, - "moves": ["doubleedge", "fakeout", "healbell", "suckerpunch", "thunderwave", "wildcharge"], - "doublesMoves": ["doubleedge", "fakeout", "helpinghand", "playrough", "protect", "suckerpunch", "thunderwave", "wildcharge"] - }, - "sableye": { - "level": 84, - "moves": ["foulplay", "knockoff", "recover", "taunt", "toxic", "willowisp"], - "doublesMoves": ["fakeout", "foulplay", "helpinghand", "knockoff", "protect", "recover", "snarl", "taunt", "willowisp"] - }, - "sableyemega": { - "level": 79, - "moves": ["calmmind", "darkpulse", "recover", "shadowball", "willowisp"], - "doublesMoves": ["darkpulse", "fakeout", "knockoff", "protect", "shadowball", "willowisp"] - }, - "mawile": { - "level": 88, - "moves": ["ironhead", "knockoff", "playrough", "stealthrock", "suckerpunch", "swordsdance"], - "doublesMoves": ["firefang", "ironhead", "knockoff", "playrough", "protect", "substitute", "suckerpunch", "swordsdance"] - }, - "mawilemega": { - "level": 78, - "moves": ["firefang", "focuspunch", "ironhead", "knockoff", "playrough", "substitute", "suckerpunch", "swordsdance"], - "doublesMoves": ["firefang", "ironhead", "knockoff", "playrough", "protect", "substitute", "suckerpunch", "swordsdance"] - }, - "aggron": { - "level": 86, - "moves": ["aquatail", "autotomize", "earthquake", "headsmash", "heavyslam", "stealthrock"], - "doublesMoves": ["aquatail", "earthquake", "headsmash", "heavyslam", "lowkick", "protect", "rockslide", "stealthrock"] - }, - "aggronmega": { - "level": 82, - "moves": ["earthquake", "heavyslam", "roar", "stoneedge", "stealthrock", "thunderwave", "toxic"], - "doublesMoves": ["aquatail", "earthquake", "heavyslam", "lowkick", "protect", "rockslide"] - }, - "medicham": { - "level": 84, - "moves": ["bulletpunch", "drainpunch", "highjumpkick", "icepunch", "zenheadbutt"], - "doublesMoves": ["bulletpunch", "drainpunch", "fakeout", "highjumpkick", "icepunch", "protect", "zenheadbutt"] - }, - "medichammega": { - "level": 80, - "moves": ["fakeout", "highjumpkick", "icepunch", "thunderpunch", "zenheadbutt"], - "doublesMoves": ["bulletpunch", "drainpunch", "fakeout", "highjumpkick", "icepunch", "protect", "zenheadbutt"] - }, - "manectric": { - "level": 86, - "moves": ["flamethrower", "hiddenpowergrass", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], - "doublesMoves": ["flamethrower", "hiddenpowergrass", "hiddenpowerice", "overheat", "protect", "snarl", "thunderbolt", "voltswitch"] - }, - "manectricmega": { - "level": 80, - "moves": ["hiddenpowergrass", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], - "doublesMoves": ["flamethrower", "hiddenpowergrass", "hiddenpowerice", "overheat", "protect", "snarl", "thunderbolt", "voltswitch"] - }, - "plusle": { - "level": 88, - "moves": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], - "doublesMoves": ["encore", "helpinghand", "hiddenpowerice", "nastyplot", "protect", "substitute", "thunderbolt"] - }, - "minun": { - "level": 88, - "moves": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], - "doublesMoves": ["encore", "helpinghand", "hiddenpowerice", "nastyplot", "protect", "substitute", "thunderbolt"] - }, - "volbeat": { - "level": 88, - "moves": ["encore", "roost", "tailwind", "thunderwave", "uturn"], - "doublesMoves": ["encore", "helpinghand", "protect", "stringshot", "strugglebug", "tailwind", "thunderwave"] - }, - "illumise": { - "level": 88, - "moves": ["bugbuzz", "encore", "roost", "thunderwave", "uturn", "wish"], - "doublesMoves": ["bugbuzz", "encore", "helpinghand", "protect", "tailwind", "thunderbolt", "uturn"] - }, - "swalot": { - "level": 88, - "moves": ["earthquake", "encore", "icebeam", "painsplit", "sludgebomb", "toxic", "yawn"], - "doublesMoves": ["earthquake", "encore", "gunkshot", "icebeam", "protect", "sludgebomb", "yawn"] - }, - "sharpedo": { - "level": 83, - "moves": ["crunch", "earthquake", "icebeam", "protect", "waterfall"], - "doublesMoves": ["crunch", "destinybond", "earthquake", "icebeam", "protect", "waterfall"] - }, - "sharpedomega": { - "level": 82, - "moves": ["crunch", "destinybond", "icefang", "protect", "waterfall", "zenheadbutt"] - }, - "wailord": { - "level": 88, - "moves": ["hiddenpowerfire", "hiddenpowergrass", "hydropump", "icebeam", "waterspout"], - "doublesMoves": ["hiddenpowerfire", "hiddenpowergrass", "hydropump", "icebeam", "protect", "waterspout"] - }, - "camerupt": { - "level": 88, - "moves": ["earthpower", "fireblast", "hiddenpowergrass", "lavaplume", "roar", "rockpolish", "stealthrock", "stoneedge"], - "doublesMoves": ["earthpower", "eruption", "fireblast", "heatwave", "hiddenpowergrass", "protect", "rockpolish"] - }, - "cameruptmega": { - "level": 84, - "moves": ["ancientpower", "earthpower", "fireblast", "stealthrock", "toxic", "willowisp"], - "doublesMoves": ["earthpower", "eruption", "fireblast", "heatwave", "protect", "rockslide"] - }, - "torkoal": { - "level": 88, - "moves": ["earthpower", "lavaplume", "rapidspin", "stealthrock", "yawn"], - "doublesMoves": ["earthpower", "fireblast", "heatwave", "hiddenpowergrass", "protect", "shellsmash", "willowisp"] - }, - "grumpig": { - "level": 88, - "moves": ["focusblast", "healbell", "lightscreen", "psychic", "reflect", "thunderwave", "toxic", "whirlwind"], - "doublesMoves": ["focusblast", "lightscreen", "protect", "psychic", "psyshock", "reflect", "taunt", "thunderwave", "trickroom"] - }, - "spinda": { - "level": 99, - "moves": ["icepunch", "rest", "return", "sleeptalk", "suckerpunch", "superpower"], - "doublesMoves": ["doubleedge", "fakeout", "protect", "return", "suckerpunch", "superpower", "trickroom"] - }, - "flygon": { - "level": 84, - "moves": ["defog", "earthquake", "fireblast", "outrage", "roost", "stoneedge", "uturn"], - "doublesMoves": ["dragonclaw", "earthquake", "feint", "fireblast", "firepunch", "protect", "rockslide", "tailwind", "uturn"] - }, - "cacturne": { - "level": 88, - "moves": ["darkpulse", "drainpunch", "focusblast", "seedbomb", "spikes", "suckerpunch", "swordsdance"], - "doublesMoves": ["drainpunch", "seedbomb", "spikyshield", "substitute", "suckerpunch", "swordsdance"] - }, - "altaria": { - "level": 88, - "moves": ["dracometeor", "dragondance", "earthquake", "fireblast", "outrage", "roost", "toxic"], - "doublesMoves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "fireblast", "protect", "tailwind"] - }, - "altariamega": { - "level": 81, - "moves": ["dragondance", "earthquake", "fireblast", "healbell", "hypervoice", "return", "roost"], - "doublesMoves": ["doubleedge", "dragonclaw", "dragondance", "earthquake", "fireblast", "protect", "return"] - }, - "zangoose": { - "level": 86, - "moves": ["closecombat", "facade", "knockoff", "quickattack", "swordsdance"], - "doublesMoves": ["closecombat", "facade", "knockoff", "protect", "quickattack"] - }, - "seviper": { - "level": 88, - "moves": ["darkpulse", "earthquake", "flamethrower", "gigadrain", "poisonjab", "sludgewave", "suckerpunch", "switcheroo"], - "doublesMoves": ["aquatail", "earthquake", "flamethrower", "gigadrain", "glare", "poisonjab", "protect", "sludgebomb", "suckerpunch"] - }, - "lunatone": { - "level": 88, - "moves": ["ancientpower", "calmmind", "earthpower", "icebeam", "moonlight", "psychic", "rockpolish", "stealthrock", "toxic"], - "doublesMoves": ["ancientpower", "calmmind", "earthpower", "helpinghand", "icebeam", "moonlight", "protect", "psychic", "rockpolish", "trickroom"] - }, - "solrock": { - "level": 88, - "moves": ["explosion", "earthquake", "lightscreen", "morningsun", "reflect", "rockslide", "stealthrock", "willowisp"], - "doublesMoves": ["helpinghand", "protect", "rockslide", "stoneedge", "trickroom", "willowisp", "zenheadbutt"] - }, - "whiscash": { - "level": 88, - "moves": ["dragondance", "earthquake", "stoneedge", "waterfall", "zenheadbutt"], - "doublesMoves": ["dragondance", "earthquake", "protect", "stoneedge", "waterfall", "zenheadbutt"] - }, - "crawdaunt": { - "level": 82, - "moves": ["aquajet", "crabhammer", "dragondance", "knockoff", "superpower", "swordsdance"], - "doublesMoves": ["aquajet", "crabhammer", "crunch", "dragondance", "knockoff", "protect", "superpower", "swordsdance"] - }, - "claydol": { - "level": 86, - "moves": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"], - "doublesMoves": ["earthpower", "earthquake", "icebeam", "protect", "psychic", "trickroom"] - }, - "cradily": { - "level": 87, - "moves": ["curse", "gigadrain", "recover", "rockslide", "seedbomb", "stealthrock", "toxic"], - "doublesMoves": ["curse", "earthquake", "protect", "recover", "rockslide", "seedbomb", "swordsdance"] - }, - "armaldo": { - "level": 88, - "moves": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "toxic", "xscissor"], - "doublesMoves": ["knockoff", "protect", "rockslide", "stoneedge", "stringshot", "swordsdance", "xscissor"] - }, - "milotic": { - "level": 82, - "moves": ["dragontail", "icebeam", "recover", "rest", "scald", "sleeptalk", "toxic"], - "doublesMoves": ["dragontail", "hiddenpowergrass", "hydropump", "hypnosis", "icebeam", "protect", "recover", "scald"] - }, - "castformsunny": { - "level": 100, - "moves": ["icebeam", "solarbeam", "sunnyday", "weatherball"] - }, - "castformrainy": { - "level": 100, - "moves": ["hurricane", "raindance", "thunder", "weatherball"] - }, - "castformsnowy": { - "level": 100, - "moves": ["blizzard", "fireblast", "hail", "thunderbolt"] - }, - "kecleon": { - "level": 86, - "moves": ["drainpunch", "fakeout", "knockoff", "recover", "shadowsneak", "stealthrock", "suckerpunch"], - "doublesMoves": ["drainpunch", "fakeout", "knockoff", "protect", "recover", "shadowsneak", "suckerpunch", "trickroom"] - }, - "banette": { - "level": 88, - "moves": ["destinybond", "knockoff", "shadowclaw", "shadowsneak", "suckerpunch", "taunt", "willowisp"], - "doublesMoves": ["knockoff", "protect", "shadowclaw", "shadowsneak", "suckerpunch", "willowisp"] - }, - "banettemega": { - "level": 84, - "moves": ["destinybond", "knockoff", "shadowclaw", "suckerpunch", "taunt", "willowisp"], - "doublesMoves": ["destinybond", "knockoff", "protect", "shadowclaw", "suckerpunch", "taunt", "willowisp"] - }, - "tropius": { - "level": 88, - "moves": ["airslash", "gigadrain", "leechseed", "protect", "substitute", "toxic"], - "doublesMoves": ["airslash", "earthquake", "gigadrain", "hiddenpowerfire", "leechseed", "protect", "roost", "sunnyday", "tailwind"] - }, - "chimecho": { - "level": 89, - "moves": ["calmmind", "healbell", "healingwish", "psychic", "recover", "shadowball", "taunt", "yawn"], - "doublesMoves": ["dazzlinggleam", "helpinghand", "protect", "psychic", "recover", "shadowball", "taunt", "thunderwave", "trickroom"] - }, - "absol": { - "level": 84, - "moves": ["knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], - "doublesMoves": ["fireblast", "knockoff", "playrough", "protect", "suckerpunch", "superpower", "swordsdance"] - }, - "absolmega": { - "level": 82, - "moves": ["icebeam", "knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], - "doublesMoves": ["fireblast", "knockoff", "playrough", "protect", "suckerpunch", "superpower", "swordsdance"] - }, - "glalie": { - "level": 88, - "moves": ["earthquake", "explosion", "icebeam", "iceshard", "spikes", "superfang", "taunt"], - "doublesMoves": ["earthquake", "icebeam", "iceshard", "protect", "taunt"] - }, - "glaliemega": { - "level": 84, - "moves": ["earthquake", "explosion", "freezedry", "iceshard", "return", "spikes"], - "doublesMoves": ["crunch", "earthquake", "explosion", "freezedry", "iceshard", "protect", "return"] - }, - "walrein": { - "level": 88, - "moves": ["icebeam", "protect", "roar", "superfang", "surf", "toxic"], - "doublesMoves": ["icebeam", "icywind", "protect", "roar", "superfang", "surf"] - }, - "huntail": { - "level": 86, - "moves": ["icebeam", "shellsmash", "suckerpunch", "waterfall"], - "doublesMoves": ["icefang", "protect", "shellsmash", "suckerpunch", "waterfall"] - }, - "gorebyss": { - "level": 87, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"], - "doublesMoves": ["hiddenpowergrass", "icebeam", "protect", "shellsmash", "substitute", "surf"] - }, - "relicanth": { - "level": 88, - "moves": ["doubleedge", "earthquake", "headsmash", "stealthrock", "toxic", "waterfall"], - "doublesMoves": ["doubleedge", "earthquake", "headsmash", "protect", "rockslide", "waterfall"] - }, - "luvdisc": { - "level": 100, - "moves": ["icebeam", "protect", "scald", "sweetkiss", "toxic"] - }, - "salamence": { - "level": 82, - "moves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "fireblast", "outrage", "roost"], - "doublesMoves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "fireblast", "hydropump", "protect", "rockslide", "tailwind"] - }, - "salamencemega": { - "level": 75, - "moves": ["doubleedge", "dracometeor", "dragondance", "earthquake", "fireblast", "return", "roost"], - "doublesMoves": ["doubleedge", "dracometeor", "dragonclaw", "dragondance", "earthquake", "fireblast", "protect", "return"] - }, - "metagross": { - "level": 82, - "moves": ["agility", "bulletpunch", "earthquake", "explosion", "icepunch", "meteormash", "stealthrock", "thunderpunch", "zenheadbutt"], - "doublesMoves": ["bulletpunch", "earthquake", "explosion", "hammerarm", "icepunch", "meteormash", "protect", "thunderpunch", "zenheadbutt"] - }, - "metagrossmega": { - "level": 79, - "moves": ["agility", "earthquake", "hammerarm", "icepunch", "meteormash", "zenheadbutt"], - "doublesMoves": ["earthquake", "icepunch", "meteormash", "protect", "thunderpunch", "zenheadbutt"] - }, - "regirock": { - "level": 86, - "moves": ["curse", "drainpunch", "earthquake", "rest", "stealthrock", "stoneedge", "thunderwave", "toxic"], - "doublesMoves": ["curse", "drainpunch", "protect", "rockslide", "stealthrock", "stoneedge", "thunderwave"] - }, - "regice": { - "level": 88, - "moves": ["focusblast", "icebeam", "rest", "rockpolish", "sleeptalk", "thunderbolt", "thunderwave"], - "doublesMoves": ["focusblast", "icebeam", "icywind", "protect", "rockpolish", "thunderbolt", "thunderwave"] - }, - "registeel": { - "level": 84, - "moves": ["curse", "ironhead", "rest", "sleeptalk", "stealthrock", "toxic"], - "doublesMoves": ["curse", "ironhead", "protect", "rest", "seismictoss", "stealthrock", "thunderwave"] - }, - "latiasmega": { - "level": 80, - "moves": ["calmmind", "dracometeor", "hiddenpowerfire", "psyshock", "roost", "surf"], - "doublesMoves": ["dragonpulse", "healpulse", "helpinghand", "lightscreen", "protect", "psychic", "reflect", "tailwind"] - }, - "latias": { - "level": 80, - "moves": ["defog", "dracometeor", "healingwish", "hiddenpowerfire", "psyshock", "roost"], - "doublesMoves": ["dragonpulse", "healpulse", "helpinghand", "lightscreen", "protect", "psychic", "reflect", "tailwind"] - }, - "latiosmega": { - "level": 80, - "moves": ["calmmind", "dracometeor", "earthquake", "hiddenpowerfire", "psyshock", "roost"], - "doublesMoves": ["dracometeor", "dragonpulse", "hiddenpowerfire", "protect", "psyshock", "substitute", "surf", "tailwind", "thunderbolt"] - }, - "latios": { - "level": 80, - "moves": ["calmmind", "dracometeor", "hiddenpowerfire", "psyshock", "roost", "trick"], - "doublesMoves": ["dracometeor", "dragonpulse", "hiddenpowerfire", "protect", "psyshock", "substitute", "surf", "tailwind", "thunderbolt", "trick"] - }, - "kyogre": { - "level": 73, - "moves": ["icebeam", "originpulse", "scald", "thunder", "waterspout"], - "doublesMoves": ["calmmind", "icebeam", "muddywater", "originpulse", "protect", "rest", "sleeptalk", "thunder", "waterspout"] - }, - "kyogreprimal": { - "level": 75, - "moves": ["calmmind", "icebeam", "originpulse", "rest", "scald", "sleeptalk", "thunder"], - "doublesMoves": ["calmmind", "icebeam", "muddywater", "originpulse", "protect", "rest", "sleeptalk", "thunder", "waterspout"] - }, - "groudon": { - "level": 76, - "moves": ["earthquake", "firepunch", "lavaplume", "roar", "stealthrock", "stoneedge", "thunderwave", "toxic"], - "doublesMoves": ["dragonclaw", "firepunch", "precipiceblades", "protect", "rockpolish", "rockslide", "stoneedge", "swordsdance"] - }, - "groudonprimal": { - "level": 73, - "moves": ["dragontail", "firepunch", "lavaplume", "precipiceblades", "rockpolish", "stealthrock", "stoneedge", "swordsdance"], - "doublesMoves": ["firepunch", "lavaplume", "overheat", "precipiceblades", "protect", "rockpolish", "rockslide", "stoneedge", "swordsdance"] - }, - "rayquaza": { - "level": 76, - "moves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "extremespeed", "outrage", "vcreate"], - "doublesMoves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "extremespeed", "protect", "tailwind", "vcreate"] - }, - "rayquazamega": { - "level": 67, - "moves": ["dragonascent", "dragondance", "earthquake", "extremespeed", "vcreate"], - "doublesMoves": ["dragonascent", "dragonclaw", "dragondance", "earthquake", "extremespeed", "protect", "swordsdance", "vcreate"] - }, - "jirachi": { - "level": 80, - "moves": ["bodyslam", "firepunch", "icepunch", "ironhead", "stealthrock", "substitute", "toxic", "uturn", "wish"], - "doublesMoves": ["bodyslam", "followme", "helpinghand", "icywind", "ironhead", "protect", "thunderwave", "trickroom", "uturn", "zenheadbutt"] - }, - "deoxys": { - "level": 76, - "moves": ["extremespeed", "firepunch", "knockoff", "psychoboost", "spikes", "stealthrock", "superpower", "taunt"], - "doublesMoves": ["extremespeed", "firepunch", "icebeam", "knockoff", "protect", "psychoboost", "psyshock", "superpower", "thunderbolt"] - }, - "deoxysattack": { - "level": 76, - "moves": ["extremespeed", "firepunch", "icebeam", "knockoff", "psychoboost", "stealthrock", "superpower"], - "doublesMoves": ["extremespeed", "firepunch", "icebeam", "knockoff", "protect", "psychoboost", "superpower", "thunderbolt"] - }, - "deoxysdefense": { - "level": 78, - "moves": ["knockoff", "recover", "seismictoss", "spikes", "stealthrock", "taunt", "toxic"], - "doublesMoves": ["lightscreen", "protect", "recover", "reflect", "seismictoss", "stealthrock", "taunt", "trickroom"] - }, - "deoxysspeed": { - "level": 77, - "moves": ["knockoff", "magiccoat", "psychoboost", "spikes", "stealthrock", "superpower", "taunt"], - "doublesMoves": ["icebeam", "knockoff", "lightscreen", "protect", "psychoboost", "reflect", "superpower", "taunt"] - }, - "torterra": { - "level": 86, - "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "synthesis", "woodhammer"], - "doublesMoves": ["earthquake", "protect", "rockpolish", "rockslide", "stoneedge", "wideguard", "woodhammer"] - }, - "infernape": { - "level": 82, - "moves": ["closecombat", "fireblast", "flareblitz", "grassknot", "machpunch", "stealthrock", "stoneedge", "uturn"], - "doublesMoves": ["closecombat", "fakeout", "feint", "flareblitz", "grassknot", "heatwave", "machpunch", "protect", "stoneedge", "taunt", "thunderpunch", "uturn"] - }, - "empoleon": { - "level": 82, - "moves": ["defog", "flashcannon", "grassknot", "hydropump", "icebeam", "roar", "scald", "stealthrock", "toxic"], - "doublesMoves": ["flashcannon", "grassknot", "hiddenpowerelectric", "icebeam", "icywind", "protect", "scald", "surf"] - }, - "staraptor": { - "level": 82, - "moves": ["bravebird", "closecombat", "doubleedge", "quickattack", "uturn"], - "doublesMoves": ["bravebird", "closecombat", "doubleedge", "protect", "quickattack", "tailwind", "uturn"] - }, - "bibarel": { - "level": 89, - "moves": ["curse", "quickattack", "rest", "return", "stealthrock", "waterfall"], - "doublesMoves": ["curse", "protect", "quickattack", "rest", "return", "waterfall"] - }, - "kricketune": { - "level": 88, - "moves": ["endeavor", "knockoff", "stickyweb", "taunt", "toxic", "xscissor"], - "doublesMoves": ["bugbite", "knockoff", "protect", "stickyweb", "taunt"] - }, - "luxray": { - "level": 88, - "moves": ["crunch", "facade", "icefang", "superpower", "voltswitch", "wildcharge"], - "doublesMoves": ["crunch", "facade", "icefang", "protect", "superpower", "voltswitch", "wildcharge"] - }, - "roserade": { - "level": 83, - "moves": ["gigadrain", "hiddenpowerfire", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "leafstorm", "protect", "sleeppowder", "sludgebomb"] - }, - "rampardos": { - "level": 88, - "moves": ["crunch", "earthquake", "firepunch", "headsmash", "rockpolish", "rockslide"], - "doublesMoves": ["crunch", "earthquake", "headsmash", "protect", "rockslide", "stoneedge", "zenheadbutt"] - }, - "bastiodon": { - "level": 88, - "moves": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"], - "doublesMoves": ["guardsplit", "metalburst", "protect", "stealthrock", "stoneedge", "wideguard"] - }, - "wormadam": { - "level": 91, - "moves": ["gigadrain", "hiddenpowerrock", "protect", "signalbeam", "synthesis", "toxic"], - "doublesMoves": ["gigadrain", "hiddenpowerice", "hiddenpowerrock", "leafstorm", "protect", "signalbeam", "stringshot"] - }, - "wormadamsandy": { - "level": 88, - "moves": ["earthquake", "protect", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "protect", "rockblast", "stringshot", "suckerpunch"] - }, - "wormadamtrash": { - "level": 88, - "moves": ["flashcannon", "protect", "stealthrock", "toxic"], - "doublesMoves": ["flashcannon", "protect", "stringshot", "strugglebug"] - }, - "mothim": { - "level": 88, - "moves": ["airslash", "bugbuzz", "energyball", "quiverdance", "uturn"], - "doublesMoves": ["airslash", "bugbuzz", "gigadrain", "protect", "quiverdance", "roost"] - }, - "vespiquen": { - "level": 91, - "moves": ["infestation", "protect", "roost", "toxic", "uturn"], - "doublesMoves": ["attackorder", "healorder", "protect", "stringshot", "strugglebug", "tailwind"] - }, - "pachirisu": { - "level": 89, - "moves": ["nuzzle", "superfang", "thunderbolt", "toxic", "uturn"], - "doublesMoves": ["followme", "helpinghand", "nuzzle", "protect", "superfang", "thunderbolt", "uturn"] - }, - "floatzel": { - "level": 88, - "moves": ["aquajet", "brickbreak", "bulkup", "icepunch", "substitute", "taunt", "waterfall"], - "doublesMoves": ["aquajet", "crunch", "icepunch", "protect", "raindance", "switcheroo", "taunt", "waterfall"] - }, - "cherrim": { - "level": 89, - "moves": ["dazzlinggleam", "energyball", "healingwish", "hiddenpowerfire", "hiddenpowerice", "synthesis"], - "doublesMoves": ["gigadrain", "protect", "solarbeam", "sunnyday", "weatherball"] - }, - "cherrimsunshine": { - "doublesMoves": ["gigadrain", "protect", "solarbeam", "sunnyday", "weatherball"] - }, - "gastrodon": { - "level": 86, - "moves": ["clearsmog", "earthquake", "icebeam", "recover", "scald", "toxic"], - "doublesMoves": ["earthpower", "icebeam", "icywind", "muddywater", "protect", "recover", "scald"] - }, - "ambipom": { - "level": 84, - "moves": ["fakeout", "knockoff", "lowkick", "return", "seedbomb", "switcheroo", "uturn"], - "doublesMoves": ["doublehit", "fakeout", "icepunch", "knockoff", "lowkick", "protect", "return", "uturn"] - }, - "drifblim": { - "level": 88, - "moves": ["acrobatics", "destinybond", "hex", "shadowball", "substitute", "willowisp"], - "doublesMoves": ["destinybond", "hiddenpowerfighting", "hypnosis", "protect", "shadowball", "substitute", "thunderbolt", "willowisp"] - }, - "lopunny": { - "level": 88, - "moves": ["healingwish", "highjumpkick", "icepunch", "return", "switcheroo"], - "doublesMoves": ["encore", "fakeout", "firepunch", "highjumpkick", "icepunch", "protect", "return", "switcheroo"] - }, - "lopunnymega": { - "level": 80, - "moves": ["fakeout", "highjumpkick", "icepunch", "return", "substitute"], - "doublesMoves": ["encore", "fakeout", "highjumpkick", "icepunch", "protect", "return"] - }, - "mismagius": { - "level": 86, - "moves": ["dazzlinggleam", "destinybond", "nastyplot", "painsplit", "shadowball", "substitute", "taunt", "thunderbolt", "willowisp"], - "doublesMoves": ["dazzlinggleam", "nastyplot", "protect", "shadowball", "substitute", "taunt", "thunderbolt", "willowisp"] - }, - "honchkrow": { - "level": 84, - "moves": ["bravebird", "heatwave", "pursuit", "roost", "suckerpunch", "superpower"], - "doublesMoves": ["bravebird", "heatwave", "protect", "roost", "substitute", "suckerpunch", "superpower"] - }, - "purugly": { - "level": 88, - "moves": ["fakeout", "knockoff", "quickattack", "return", "suckerpunch", "uturn"], - "doublesMoves": ["fakeout", "knockoff", "protect", "quickattack", "return", "suckerpunch", "uturn"] - }, - "skuntank": { - "level": 86, - "moves": ["crunch", "defog", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"], - "doublesMoves": ["crunch", "fireblast", "playrough", "poisonjab", "protect", "snarl", "suckerpunch", "taunt"] - }, - "bronzong": { - "level": 84, - "moves": ["earthquake", "explosion", "ironhead", "lightscreen", "reflect", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "explosion", "gyroball", "lightscreen", "protect", "reflect", "trickroom"] - }, - "chatot": { - "level": 88, - "moves": ["boomburst", "chatter", "heatwave", "hiddenpowerground", "nastyplot", "substitute", "uturn"], - "doublesMoves": ["boomburst", "chatter", "encore", "heatwave", "hypervoice", "nastyplot", "protect", "substitute", "uturn"] - }, - "spiritomb": { - "level": 85, - "moves": ["calmmind", "darkpulse", "psychic", "pursuit", "rest", "shadowsneak", "sleeptalk", "willowisp"], - "doublesMoves": ["darkpulse", "foulplay", "icywind", "painsplit", "protect", "shadowsneak", "snarl", "willowisp"] - }, - "garchomp": { - "level": 79, - "moves": ["dragonclaw", "earthquake", "fireblast", "firefang", "outrage", "stealthrock", "stoneedge", "swordsdance"], - "doublesMoves": ["dragonclaw", "earthquake", "protect", "rockslide", "stoneedge", "substitute", "swordsdance"] - }, - "garchompmega": { - "level": 80, - "moves": ["dracometeor", "earthquake", "fireblast", "outrage", "stoneedge", "swordsdance"], - "doublesMoves": ["dragonclaw", "earthquake", "fireblast", "protect", "rockslide", "stoneedge", "substitute", "swordsdance"] - }, - "lucario": { - "level": 82, - "moves": ["aurasphere", "closecombat", "crunch", "darkpulse", "extremespeed", "flashcannon", "icepunch", "nastyplot", "swordsdance", "vacuumwave"], - "doublesMoves": ["aurasphere", "bulletpunch", "closecombat", "crunch", "darkpulse", "extremespeed", "flashcannon", "followme", "icepunch", "protect", "vacuumwave"] - }, - "lucariomega": { - "level": 77, - "moves": ["aurasphere", "bulletpunch", "closecombat", "crunch", "darkpulse", "flashcannon", "icepunch", "nastyplot", "swordsdance"], - "doublesMoves": ["aurasphere", "bulletpunch", "closecombat", "crunch", "darkpulse", "extremespeed", "flashcannon", "followme", "icepunch", "protect", "vacuumwave"] - }, - "hippowdon": { - "level": 80, - "moves": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"], - "doublesMoves": ["earthquake", "protect", "rockslide", "slackoff", "stealthrock", "stoneedge"] - }, - "drapion": { - "level": 84, - "moves": ["earthquake", "knockoff", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes", "whirlwind"], - "doublesMoves": ["aquatail", "earthquake", "knockoff", "poisonjab", "protect", "snarl", "swordsdance", "taunt"] - }, - "toxicroak": { - "level": 82, - "moves": ["drainpunch", "gunkshot", "icepunch", "substitute", "suckerpunch", "swordsdance"], - "doublesMoves": ["drainpunch", "fakeout", "gunkshot", "icepunch", "knockoff", "protect", "substitute", "suckerpunch", "swordsdance"] - }, - "carnivine": { - "level": 89, - "moves": ["knockoff", "powerwhip", "return", "sleeppowder", "substitute", "swordsdance"], - "doublesMoves": ["knockoff", "leechseed", "powerwhip", "protect", "ragepowder", "return", "sleeppowder", "substitute", "swordsdance"] - }, - "lumineon": { - "level": 88, - "moves": ["defog", "icebeam", "scald", "toxic", "uturn"], - "doublesMoves": ["icebeam", "protect", "raindance", "surf", "tailwind", "toxic", "uturn"] - }, - "abomasnow": { - "level": 86, - "moves": ["blizzard", "earthquake", "focuspunch", "gigadrain", "iceshard", "leechseed", "substitute", "woodhammer"], - "doublesMoves": ["blizzard", "earthquake", "focusblast", "gigadrain", "iceshard", "protect", "woodhammer"] - }, - "abomasnowmega": { - "level": 84, - "moves": ["blizzard", "earthquake", "gigadrain", "hiddenpowerfire", "iceshard", "woodhammer"], - "doublesMoves": ["blizzard", "earthquake", "focusblast", "gigadrain", "iceshard", "protect", "woodhammer"] - }, - "weavile": { - "level": 80, - "moves": ["iceshard", "iciclecrash", "knockoff", "lowkick", "pursuit", "swordsdance"], - "doublesMoves": ["fakeout", "feint", "iceshard", "iciclecrash", "knockoff", "lowkick", "protect", "swordsdance", "taunt"] - }, - "magnezone": { - "level": 81, - "moves": ["flashcannon", "hiddenpowerfire", "substitute", "thunderbolt", "voltswitch"], - "doublesMoves": ["discharge", "electroweb", "flashcannon", "hiddenpowerfire", "hiddenpowerice", "protect", "substitute", "thunderbolt", "voltswitch"] - }, - "lickilicky": { - "level": 88, - "moves": ["bodyslam", "dragontail", "earthquake", "explosion", "healbell", "knockoff", "powerwhip", "protect", "swordsdance", "wish"], - "doublesMoves": ["bodyslam", "dragontail", "earthquake", "explosion", "healbell", "knockoff", "powerwhip", "protect", "rockslide", "toxic", "wish"] - }, - "rhyperior": { - "level": 84, - "moves": ["dragontail", "earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge"], - "doublesMoves": ["earthquake", "hammerarm", "megahorn", "protect", "rockslide", "stealthrock", "stoneedge"] - }, - "tangrowth": { - "level": 82, - "moves": ["earthquake", "gigadrain", "hiddenpowerfire", "knockoff", "leafstorm", "rockslide", "sleeppowder", "synthesis"], - "doublesMoves": ["earthquake", "focusblast", "gigadrain", "hiddenpowerice", "knockoff", "leechseed", "powerwhip", "protect", "ragepowder", "sleeppowder"] - }, - "electivire": { - "level": 86, - "moves": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], - "doublesMoves": ["crosschop", "earthquake", "flamethrower", "followme", "icepunch", "protect", "substitute", "wildcharge"] - }, - "magmortar": { - "level": 86, - "moves": ["earthquake", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderbolt"], - "doublesMoves": ["fireblast", "focusblast", "followme", "heatwave", "hiddenpowergrass", "hiddenpowerice", "protect", "taunt", "thunderbolt", "willowisp"] - }, - "togekiss": { - "level": 82, - "moves": ["airslash", "aurasphere", "defog", "healbell", "nastyplot", "roost", "thunderwave"], - "doublesMoves": ["airslash", "dazzlinggleam", "followme", "nastyplot", "protect", "roost", "tailwind", "thunderwave"] - }, - "yanmega": { - "level": 83, - "moves": ["airslash", "bugbuzz", "gigadrain", "protect", "uturn"] - }, - "leafeon": { - "level": 88, - "moves": ["healbell", "knockoff", "leafblade", "swordsdance", "synthesis", "xscissor"], - "doublesMoves": ["helpinghand", "knockoff", "leafblade", "protect", "substitute", "swordsdance", "xscissor"] - }, - "glaceon": { - "level": 88, - "moves": ["healbell", "hiddenpowerground", "icebeam", "protect", "shadowball", "toxic", "wish"], - "doublesMoves": ["healbell", "helpinghand", "hiddenpowerground", "icebeam", "protect", "shadowball", "wish"] - }, - "gliscor": { - "level": 80, - "moves": ["earthquake", "knockoff", "protect", "roost", "stealthrock", "taunt", "toxic", "uturn"], - "doublesMoves": ["earthquake", "knockoff", "protect", "stoneedge", "substitute", "tailwind", "taunt"] - }, - "mamoswine": { - "level": 81, - "moves": ["earthquake", "iceshard", "iciclecrash", "knockoff", "stealthrock", "superpower"], - "doublesMoves": ["earthquake", "iceshard", "iciclecrash", "knockoff", "protect", "rockslide", "superpower"] - }, - "porygonz": { - "level": 82, - "moves": ["agility", "darkpulse", "icebeam", "nastyplot", "thunderbolt", "triattack", "trick"], - "doublesMoves": ["agility", "darkpulse", "hiddenpowerfighting", "nastyplot", "protect", "triattack", "trick"] - }, - "gallade": { - "level": 84, - "moves": ["closecombat", "icepunch", "knockoff", "shadowsneak", "swordsdance", "trick", "zenheadbutt"], - "doublesMoves": ["closecombat", "drainpunch", "helpinghand", "icepunch", "knockoff", "protect", "shadowsneak", "stoneedge", "trick", "trickroom", "zenheadbutt"] - }, - "gallademega": { - "level": 81, - "moves": ["closecombat", "drainpunch", "knockoff", "substitute", "swordsdance", "zenheadbutt"], - "doublesMoves": ["closecombat", "drainpunch", "icepunch", "knockoff", "protect", "stoneedge", "swordsdance", "zenheadbutt"] - }, - "probopass": { - "level": 88, - "moves": ["earthpower", "flashcannon", "stealthrock", "thunderwave", "toxic", "voltswitch"], - "doublesMoves": ["earthpower", "helpinghand", "powergem", "protect", "stealthrock", "thunderwave", "voltswitch", "wideguard"] - }, - "dusknoir": { - "level": 88, - "moves": ["earthquake", "icepunch", "painsplit", "shadowsneak", "substitute", "willowisp"], - "doublesMoves": ["earthquake", "helpinghand", "icepunch", "painsplit", "protect", "shadowsneak", "trickroom", "willowisp"] - }, - "froslass": { - "level": 84, - "moves": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"], - "doublesMoves": ["destinybond", "icebeam", "protect", "shadowball", "taunt", "thunderwave"] - }, - "rotom": { - "level": 86, - "moves": ["hiddenpowerice", "painsplit", "shadowball", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"], - "doublesMoves": ["electroweb", "hiddenpowerice", "painsplit", "protect", "shadowball", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomheat": { - "level": 82, - "moves": ["hiddenpowerice", "overheat", "painsplit", "thunderbolt", "voltswitch", "willowisp"], - "doublesMoves": ["electroweb", "hiddenpowerice", "overheat", "painsplit", "protect", "substitute", "thunderbolt", "voltswitch", "willowisp"] - }, - "rotomwash": { - "level": 80, - "moves": ["hydropump", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], - "doublesMoves": ["electroweb", "hiddenpowergrass", "hiddenpowerice", "hydropump", "painsplit", "protect", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomfrost": { - "level": 87, - "moves": ["blizzard", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], - "doublesMoves": ["blizzard", "electroweb", "painsplit", "protect", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomfan": { - "level": 87, - "moves": ["airslash", "painsplit", "thunderbolt", "voltswitch", "willowisp"], - "doublesMoves": ["airslash", "discharge", "electroweb", "hiddenpowerice", "painsplit", "protect", "substitute", "thunderbolt", "voltswitch", "willowisp"] - }, - "rotommow": { - "level": 84, - "moves": ["hiddenpowerfire", "hiddenpowerice", "leafstorm", "thunderbolt", "trick", "voltswitch"], - "doublesMoves": ["electroweb", "hiddenpowerfire", "leafstorm", "painsplit", "protect", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "uxie": { - "level": 83, - "moves": ["healbell", "knockoff", "psychic", "stealthrock", "thunderwave", "uturn", "yawn"], - "doublesMoves": ["healbell", "helpinghand", "protect", "psyshock", "skillswap", "stealthrock", "thunderbolt", "thunderwave", "uturn", "yawn"] - }, - "mesprit": { - "level": 86, - "moves": ["calmmind", "energyball", "healingwish", "hiddenpowerfire", "icebeam", "psychic", "psyshock", "signalbeam", "stealthrock", "uturn"], - "doublesMoves": ["calmmind", "helpinghand", "icebeam", "knockoff", "protect", "psychic", "substitute", "thunderbolt", "trick", "uturn"] - }, - "azelf": { - "level": 80, - "moves": ["dazzlinggleam", "explosion", "fireblast", "knockoff", "nastyplot", "psyshock", "stealthrock", "taunt"], - "doublesMoves": ["dazzlinggleam", "fireblast", "icepunch", "knockoff", "nastyplot", "protect", "psychic", "taunt", "thunderbolt", "uturn", "zenheadbutt"] - }, - "dialga": { - "level": 76, - "moves": ["dracometeor", "fireblast", "flashcannon", "roar", "stealthrock", "thunderbolt", "toxic"], - "doublesMoves": ["aurasphere", "dracometeor", "dragonpulse", "earthpower", "fireblast", "flashcannon", "protect", "thunderbolt"] - }, - "palkia": { - "level": 76, - "moves": ["dracometeor", "dragontail", "fireblast", "hydropump", "spacialrend", "thunderwave"], - "doublesMoves": ["dracometeor", "fireblast", "hydropump", "protect", "spacialrend", "surf", "thunderbolt"] - }, - "heatran": { - "level": 80, - "moves": ["earthpower", "fireblast", "flashcannon", "lavaplume", "protect", "roar", "stealthrock", "toxic"], - "doublesMoves": ["earthpower", "eruption", "heatwave", "protect", "substitute", "willowisp"] - }, - "regigigas": { - "level": 86, - "moves": ["confuseray", "drainpunch", "knockoff", "return", "substitute", "thunderwave"], - "doublesMoves": ["earthquake", "icywind", "knockoff", "return", "rockslide", "substitute", "thunderwave", "wideguard"] - }, - "giratinaorigin": { - "level": 76, - "moves": ["defog", "dracometeor", "dragontail", "earthquake", "shadowball", "shadowsneak", "toxic", "willowisp"], - "doublesMoves": ["aurasphere", "calmmind", "dracometeor", "dragonpulse", "earthquake", "hiddenpowerfire", "protect", "shadowball", "shadowsneak", "substitute", "tailwind", "willowisp"] - }, - "giratina": { - "level": 76, - "moves": ["dragonpulse", "dragontail", "rest", "roar", "shadowball", "sleeptalk", "willowisp"], - "doublesMoves": ["calmmind", "dragonpulse", "dragontail", "icywind", "protect", "shadowball", "tailwind", "willowisp"] - }, - "cresselia": { - "level": 82, - "moves": ["calmmind", "icebeam", "moonblast", "moonlight", "psychic", "psyshock", "substitute", "thunderwave", "toxic"], - "doublesMoves": ["helpinghand", "icebeam", "icywind", "lightscreen", "moonblast", "moonlight", "protect", "psyshock", "reflect", "skillswap", "thunderwave", "trickroom"] - }, - "phione": { - "level": 88, - "moves": ["healbell", "icebeam", "knockoff", "scald", "toxic", "uturn"], - "doublesMoves": ["helpinghand", "icebeam", "icywind", "protect", "raindance", "rest", "scald", "uturn"] - }, - "manaphy": { - "level": 79, - "moves": ["energyball", "icebeam", "surf", "tailglow"], - "doublesMoves": ["energyball", "helpinghand", "icebeam", "icywind", "protect", "scald", "surf", "tailglow"] - }, - "darkrai": { - "level": 74, - "moves": ["darkpulse", "darkvoid", "focusblast", "nastyplot", "sludgebomb", "substitute"], - "doublesMoves": ["darkpulse", "focusblast", "nastyplot", "protect", "snarl", "substitute"] - }, - "shaymin": { - "level": 84, - "moves": ["airslash", "earthpower", "leechseed", "psychic", "rest", "seedflare", "substitute"], - "doublesMoves": ["airslash", "earthpower", "hiddenpowerfire", "leechseed", "protect", "rest", "seedflare", "substitute", "tailwind"] - }, - "shayminsky": { - "level": 76, - "moves": ["airslash", "earthpower", "hiddenpowerice", "leechseed", "seedflare", "substitute"], - "doublesMoves": ["airslash", "earthpower", "hiddenpowerice", "leechseed", "protect", "rest", "seedflare", "substitute", "tailwind"] - }, - "arceus": { - "level": 74, - "moves": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"], - "doublesMoves": ["earthquake", "extremespeed", "protect", "recover", "shadowclaw", "swordsdance"] - }, - "arceusbug": { - "level": 74, - "moves": ["earthquake", "ironhead", "recover", "stoneedge", "swordsdance", "xscissor"], - "doublesMoves": ["earthquake", "ironhead", "protect", "recover", "stoneedge", "swordsdance", "xscissor"] - }, - "arceusdark": { - "level": 74, - "moves": ["calmmind", "fireblast", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "focusblast", "judgment", "protect", "recover", "safeguard", "snarl", "willowisp"] - }, - "arceusdragon": { - "level": 74, - "moves": ["defog", "earthquake", "extremespeed", "fireblast", "judgment", "outrage", "recover", "swordsdance", "willowisp"], - "doublesMoves": ["dragonclaw", "earthquake", "extremespeed", "protect", "recover", "swordsdance"] - }, - "arceuselectric": { - "level": 74, - "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover"], - "doublesMoves": ["calmmind", "icebeam", "judgment", "protect", "recover"] - }, - "arceusfairy": { - "level": 74, - "moves": ["calmmind", "defog", "earthpower", "judgment", "recover", "toxic", "willowisp"], - "doublesMoves": ["calmmind", "earthpower", "judgment", "protect", "recover", "thunderbolt", "willowisp"] - }, - "arceusfighting": { - "level": 74, - "moves": ["calmmind", "icebeam", "judgment", "recover", "shadowball", "stoneedge"], - "doublesMoves": ["calmmind", "icebeam", "judgment", "protect", "recover", "shadowball", "willowisp"] - }, - "arceusfire": { - "level": 74, - "moves": ["calmmind", "fireblast", "icebeam", "recover", "thunderbolt"], - "doublesMoves": ["calmmind", "heatwave", "judgment", "protect", "recover", "thunderbolt", "willowisp"] - }, - "arceusflying": { - "level": 74, - "moves": ["calmmind", "earthpower", "fireblast", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "judgment", "protect", "recover", "safeguard", "substitute", "tailwind"] - }, - "arceusghost": { - "level": 74, - "moves": ["brickbreak", "defog", "extremespeed", "judgment", "recover", "shadowclaw", "shadowforce", "swordsdance", "toxic"], - "doublesMoves": ["brickbreak", "calmmind", "focusblast", "judgment", "protect", "recover", "shadowforce", "swordsdance", "willowisp"] - }, - "arceusgrass": { - "level": 74, - "moves": ["calmmind", "fireblast", "icebeam", "judgment", "recover"], - "doublesMoves": ["calmmind", "earthpower", "icebeam", "judgment", "protect", "recover", "safeguard", "thunderwave"] - }, - "arceusground": { - "level": 74, - "moves": ["earthquake", "icebeam", "recover", "stealthrock", "stoneedge", "swordsdance", "toxic"], - "doublesMoves": ["calmmind", "earthquake", "icebeam", "judgment", "protect", "recover", "rockslide", "stoneedge", "swordsdance"] - }, - "arceusice": { - "level": 74, - "moves": ["calmmind", "fireblast", "judgment", "recover", "thunderbolt"], - "doublesMoves": ["calmmind", "focusblast", "icywind", "judgment", "protect", "recover", "thunderbolt"] - }, - "arceuspoison": { - "level": 74, - "moves": ["calmmind", "defog", "fireblast", "icebeam", "recover", "sludgebomb"], - "doublesMoves": ["calmmind", "earthpower", "heatwave", "judgment", "protect", "recover", "sludgebomb", "willowisp"] - }, - "arceuspsychic": { - "level": 74, - "moves": ["calmmind", "fireblast", "icebeam", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "focusblast", "judgment", "protect", "psyshock", "recover", "willowisp"] - }, - "arceusrock": { - "level": 74, - "moves": ["earthquake", "judgment", "recover", "stealthrock", "stoneedge", "swordsdance", "willowisp"], - "doublesMoves": ["earthquake", "protect", "recover", "rockslide", "stoneedge", "swordsdance"] - }, - "arceussteel": { - "level": 74, - "moves": ["defog", "earthquake", "ironhead", "judgment", "recover", "roar", "stoneedge", "swordsdance", "willowisp"], - "doublesMoves": ["calmmind", "judgment", "protect", "recover", "willowisp"] - }, - "arceuswater": { - "level": 74, - "moves": ["calmmind", "defog", "icebeam", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "fireblast", "icebeam", "icywind", "judgment", "protect", "recover", "surf"] - }, - "victini": { - "level": 81, - "moves": ["blueflare", "boltstrike", "energyball", "glaciate", "uturn", "vcreate", "zenheadbutt"], - "doublesMoves": ["blueflare", "boltstrike", "focusblast", "protect", "psychic", "uturn", "vcreate"] - }, - "serperior": { - "level": 80, - "moves": ["dragonpulse", "glare", "hiddenpowerfire", "leafstorm", "leechseed", "substitute"], - "doublesMoves": ["dragonpulse", "hiddenpowerfire", "leafstorm", "protect", "substitute", "taunt"] - }, - "emboar": { - "level": 84, - "moves": ["fireblast", "flareblitz", "grassknot", "headsmash", "suckerpunch", "superpower", "wildcharge"], - "doublesMoves": ["flamecharge", "flareblitz", "headsmash", "heatwave", "protect", "rockslide", "superpower", "wildcharge"] - }, - "samurott": { - "level": 86, - "moves": ["aquajet", "grassknot", "hydropump", "icebeam", "megahorn", "superpower", "swordsdance", "waterfall"], - "doublesMoves": ["aquajet", "helpinghand", "hiddenpowergrass", "hydropump", "icebeam", "protect", "scald", "taunt"] - }, - "watchog": { - "level": 89, - "moves": ["hypnosis", "knockoff", "return", "substitute", "superfang", "swordsdance"], - "doublesMoves": ["hypnosis", "knockoff", "protect", "return", "substitute", "superfang", "swordsdance"] - }, - "stoutland": { - "level": 87, - "moves": ["crunch", "icefang", "return", "superpower", "wildcharge"], - "doublesMoves": ["crunch", "icefang", "protect", "return", "superpower", "wildcharge"] - }, - "liepard": { - "level": 86, - "moves": ["copycat", "encore", "knockoff", "playrough", "substitute", "thunderwave", "uturn"], - "doublesMoves": ["encore", "fakeout", "knockoff", "playrough", "protect", "substitute", "suckerpunch", "thunderwave", "uturn"] - }, - "simisage": { - "level": 88, - "moves": ["focusblast", "gigadrain", "hiddenpowerice", "knockoff", "leafstorm", "nastyplot", "substitute", "superpower"], - "doublesMoves": ["focusblast", "gigadrain", "helpinghand", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "nastyplot", "protect", "substitute", "synthesis", "taunt"] - }, - "simisear": { - "level": 88, - "moves": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"], - "doublesMoves": ["fireblast", "focusblast", "grassknot", "heatwave", "hiddenpowerground", "nastyplot", "protect", "substitute", "taunt"] - }, - "simipour": { - "level": 88, - "moves": ["focusblast", "hydropump", "icebeam", "nastyplot", "substitute"], - "doublesMoves": ["helpinghand", "hydropump", "icebeam", "nastyplot", "protect", "substitute", "surf", "taunt"] - }, - "musharna": { - "level": 88, - "moves": ["calmmind", "healbell", "moonlight", "psychic", "psyshock", "signalbeam", "thunderwave"], - "doublesMoves": ["healbell", "helpinghand", "hiddenpowerfighting", "moonlight", "protect", "psychic", "psyshock", "signalbeam", "thunderwave", "trickroom"] - }, - "unfezant": { - "level": 88, - "moves": ["hypnosis", "nightslash", "pluck", "return", "roost", "tailwind", "uturn"], - "doublesMoves": ["nightslash", "pluck", "protect", "return", "roost", "tailwind", "taunt", "uturn"] - }, - "zebstrika": { - "level": 88, - "moves": ["hiddenpowergrass", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch", "wildcharge"], - "doublesMoves": ["hiddenpowergrass", "overheat", "protect", "voltswitch", "wildcharge"] - }, - "gigalith": { - "level": 86, - "moves": ["earthquake", "explosion", "stealthrock", "stoneedge", "superpower"], - "doublesMoves": ["autotomize", "earthquake", "explosion", "protect", "rockslide", "stealthrock", "stoneedge", "superpower", "wideguard"] - }, - "swoobat": { - "level": 88, - "moves": ["airslash", "calmmind", "heatwave", "roost", "storedpower"], - "doublesMoves": ["airslash", "calmmind", "gigadrain", "heatwave", "protect", "psychic", "tailwind"] - }, - "excadrill": { - "level": 80, - "moves": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"], - "doublesMoves": ["drillrun", "earthquake", "ironhead", "protect", "rockslide", "substitute", "swordsdance"] - }, - "audinomega": { - "level": 88, - "moves": ["calmmind", "dazzlinggleam", "fireblast", "healbell", "protect", "wish"], - "doublesMoves": ["dazzlinggleam", "healbell", "healpulse", "helpinghand", "hypervoice", "protect", "thunderwave", "trickroom"] - }, - "audino": { - "level": 88, - "moves": ["doubleedge", "encore", "healbell", "knockoff", "protect", "toxic", "wish"], - "doublesMoves": ["doubleedge", "healbell", "healpulse", "helpinghand", "lightscreen", "protect", "reflect", "thunderwave", "trickroom"] - }, - "conkeldurr": { - "level": 83, - "moves": ["bulkup", "drainpunch", "facade", "icepunch", "knockoff", "machpunch"], - "doublesMoves": ["drainpunch", "icepunch", "knockoff", "machpunch", "protect", "wideguard"] - }, - "seismitoad": { - "level": 84, - "moves": ["earthquake", "hydropump", "knockoff", "raindance", "scald", "sludgebomb", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "hiddenpowerelectric", "hydropump", "icywind", "muddywater", "protect", "sludgebomb"] - }, - "throh": { - "level": 88, - "moves": ["bulkup", "circlethrow", "icepunch", "knockoff", "rest", "sleeptalk", "stormthrow"], - "doublesMoves": ["circlethrow", "helpinghand", "icepunch", "knockoff", "protect", "stormthrow", "wideguard"] - }, - "sawk": { - "level": 84, - "moves": ["bulkup", "closecombat", "earthquake", "icepunch", "knockoff", "poisonjab"], - "doublesMoves": ["closecombat", "icepunch", "knockoff", "protect", "rockslide"] - }, - "leavanny": { - "level": 88, - "moves": ["knockoff", "leafblade", "stickyweb", "swordsdance", "xscissor"], - "doublesMoves": ["leafblade", "poisonjab", "protect", "stickyweb", "swordsdance", "xscissor"] - }, - "scolipede": { - "level": 82, - "moves": ["earthquake", "megahorn", "poisonjab", "protect", "rockslide", "spikes", "swordsdance", "toxicspikes"], - "doublesMoves": ["aquatail", "megahorn", "poisonjab", "protect", "rockslide", "substitute", "superpower", "swordsdance"] - }, - "whimsicott": { - "level": 83, - "moves": ["encore", "energyball", "leechseed", "memento", "moonblast", "stunspore", "tailwind", "taunt", "toxic", "uturn"], - "doublesMoves": ["dazzlinggleam", "encore", "gigadrain", "helpinghand", "leechseed", "moonblast", "protect", "stunspore", "substitute", "tailwind", "taunt", "uturn"] - }, - "lilligant": { - "level": 86, - "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"], - "doublesMoves": ["gigadrain", "helpinghand", "hiddenpowerfire", "hiddenpowerice", "hiddenpowerrock", "petaldance", "protect", "quiverdance", "sleeppowder"] - }, - "basculin": { - "level": 88, - "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"], - "doublesMoves": ["aquajet", "crunch", "doubleedge", "protect", "superpower", "waterfall"] - }, - "basculinbluestriped": { - "level": 88, - "moves": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"], - "doublesMoves": ["aquajet", "crunch", "doubleedge", "protect", "superpower", "waterfall"] - }, - "krookodile": { - "level": 82, - "moves": ["earthquake", "knockoff", "pursuit", "stealthrock", "stoneedge", "superpower"], - "doublesMoves": ["earthquake", "knockoff", "protect", "stoneedge", "superpower"] - }, - "darmanitan": { - "level": 82, - "moves": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"], - "doublesMoves": ["earthquake", "firepunch", "flareblitz", "protect", "rockslide", "superpower", "uturn"] - }, - "maractus": { - "level": 89, - "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "spikes", "spikyshield", "suckerpunch", "toxic"], - "doublesMoves": ["gigadrain", "grassyterrain", "helpinghand", "hiddenpowerfire", "leechseed", "spikyshield", "suckerpunch"] - }, - "crustle": { - "level": 87, - "moves": ["earthquake", "shellsmash", "spikes", "stealthrock", "stoneedge", "xscissor"], - "doublesMoves": ["earthquake", "protect", "rockslide", "shellsmash", "stoneedge", "xscissor"] - }, - "scrafty": { - "level": 84, - "moves": ["bulkup", "dragondance", "drainpunch", "highjumpkick", "icepunch", "knockoff", "rest"], - "doublesMoves": ["drainpunch", "fakeout", "icepunch", "knockoff", "protect", "stoneedge"] - }, - "sigilyph": { - "level": 84, - "moves": ["cosmicpower", "psychoshift", "roost", "storedpower"], - "doublesMoves": ["airslash", "energyball", "heatwave", "icebeam", "protect", "psyshock", "shadowball", "tailwind"] - }, - "cofagrigus": { - "level": 84, - "moves": ["haze", "hiddenpowerfighting", "nastyplot", "painsplit", "shadowball", "toxicspikes", "trickroom", "willowisp"], - "doublesMoves": ["hiddenpowerfighting", "nastyplot", "painsplit", "protect", "shadowball", "trickroom", "willowisp"] - }, - "carracosta": { - "level": 88, - "moves": ["aquajet", "earthquake", "hydropump", "shellsmash", "stoneedge"], - "doublesMoves": ["aquajet", "earthquake", "protect", "rockslide", "shellsmash", "stoneedge", "waterfall", "wideguard"] - }, - "archeops": { - "level": 85, - "moves": ["acrobatics", "aquatail", "earthquake", "endeavor", "headsmash", "stoneedge", "uturn"], - "doublesMoves": ["acrobatics", "earthquake", "protect", "rockslide", "stoneedge", "tailwind", "taunt", "uturn"] - }, - "garbodor": { - "level": 86, - "moves": ["drainpunch", "gunkshot", "haze", "painsplit", "spikes", "toxic", "toxicspikes"], - "doublesMoves": ["drainpunch", "explosion", "gunkshot", "painsplit", "protect", "rockblast", "seedbomb"] - }, - "zoroark": { - "moves": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "sludgebomb", "trick"], - "doublesMoves": ["darkpulse", "flamethrower", "focusblast", "knockoff", "nastyplot", "protect", "suckerpunch", "uturn"] - }, - "cinccino": { - "level": 84, - "moves": ["bulletseed", "knockoff", "rockblast", "tailslap", "uturn"], - "doublesMoves": ["aquatail", "bulletseed", "knockoff", "protect", "rockblast", "tailslap", "uturn"] - }, - "gothitelle": { - "level": 82, - "moves": ["calmmind", "hiddenpowerfighting", "psychic", "rest", "sleeptalk", "toxic"], - "doublesMoves": ["energyball", "healpulse", "hiddenpowerfighting", "lightscreen", "protect", "psychic", "psyshock", "reflect", "shadowball", "taunt", "thunderbolt", "trickroom"] - }, - "reuniclus": { - "level": 83, - "moves": ["calmmind", "focusblast", "psychic", "psyshock", "recover", "shadowball", "trickroom"], - "doublesMoves": ["energyball", "focusblast", "helpinghand", "hiddenpowerfire", "protect", "psychic", "psyshock", "shadowball", "trickroom"] - }, - "swanna": { - "level": 88, - "moves": ["airslash", "defog", "hurricane", "icebeam", "raindance", "roost", "scald"], - "doublesMoves": ["airslash", "hurricane", "icebeam", "protect", "raindance", "roost", "scald", "surf", "tailwind"] - }, - "vanilluxe": { - "level": 88, - "moves": ["autotomize", "explosion", "flashcannon", "freezedry", "hiddenpowerground", "icebeam"], - "doublesMoves": ["autotomize", "flashcannon", "freezedry", "hiddenpowerground", "icebeam", "protect", "taunt"] - }, - "sawsbuck": { - "level": 88, - "moves": ["hornleech", "jumpkick", "return", "substitute", "swordsdance"], - "doublesMoves": ["hornleech", "jumpkick", "protect", "return", "substitute", "swordsdance", "synthesis"] - }, - "emolga": { - "level": 88, - "moves": ["acrobatics", "encore", "knockoff", "roost", "thunderbolt", "toxic", "uturn"], - "doublesMoves": ["airslash", "encore", "helpinghand", "protect", "roost", "substitute", "tailwind", "thunderbolt"] - }, - "escavalier": { - "level": 84, - "moves": ["drillrun", "ironhead", "knockoff", "megahorn", "pursuit", "swordsdance"], - "doublesMoves": ["drillrun", "ironhead", "knockoff", "megahorn", "protect", "swordsdance"] - }, - "amoonguss": { - "level": 81, - "moves": ["foulplay", "gigadrain", "hiddenpowerfire", "sludgebomb", "spore", "synthesis"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "protect", "ragepowder", "sludgebomb", "spore", "stunspore", "synthesis"] - }, - "jellicent": { - "level": 84, - "moves": ["icebeam", "recover", "scald", "shadowball", "taunt", "toxic", "willowisp"], - "doublesMoves": ["icebeam", "icywind", "protect", "recover", "scald", "shadowball", "trickroom", "waterspout", "willowisp"] - }, - "alomomola": { - "level": 84, - "moves": ["knockoff", "protect", "scald", "toxic", "wish"], - "doublesMoves": ["helpinghand", "icywind", "knockoff", "protect", "scald", "wideguard", "wish"] - }, - "galvantula": { - "level": 82, - "moves": ["bugbuzz", "gigadrain", "hiddenpowerice", "stickyweb", "thunder", "voltswitch"], - "doublesMoves": ["bugbuzz", "gigadrain", "hiddenpowerice", "protect", "stickyweb", "thunder", "voltswitch"] - }, - "ferrothorn": { - "level": 80, - "moves": ["gyroball", "knockoff", "leechseed", "powerwhip", "protect", "spikes", "stealthrock"], - "doublesMoves": ["gyroball", "knockoff", "leechseed", "powerwhip", "protect", "stealthrock"] - }, - "klinklang": { - "level": 86, - "moves": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"], - "doublesMoves": ["geargrind", "protect", "return", "shiftgear", "wildcharge"] - }, - "eelektross": { - "level": 84, - "moves": ["flamethrower", "gigadrain", "hiddenpowerice", "knockoff", "superpower", "thunderbolt", "uturn"], - "doublesMoves": ["flamethrower", "gigadrain", "knockoff", "protect", "thunderbolt", "uturn", "voltswitch"] - }, - "beheeyem": { - "level": 89, - "moves": ["hiddenpowerfighting", "nastyplot", "psychic", "psyshock", "signalbeam", "thunderbolt", "trick", "trickroom"], - "doublesMoves": ["hiddenpowerfighting", "nastyplot", "protect", "psychic", "recover", "signalbeam", "thunderbolt", "trick", "trickroom"] - }, - "chandelure": { - "level": 82, - "moves": ["calmmind", "energyball", "fireblast", "hiddenpowerground", "painsplit", "shadowball", "substitute", "trick"], - "doublesMoves": ["energyball", "heatwave", "hiddenpowerice", "overheat", "protect", "shadowball", "trick"] - }, - "haxorus": { - "level": 80, - "moves": ["dragondance", "earthquake", "outrage", "poisonjab", "swordsdance"], - "doublesMoves": ["dragonclaw", "dragondance", "earthquake", "poisonjab", "protect", "substitute", "swordsdance"] - }, - "beartic": { - "level": 88, - "moves": ["aquajet", "iciclecrash", "nightslash", "stoneedge", "superpower", "swordsdance"], - "doublesMoves": ["aquajet", "iciclecrash", "nightslash", "protect", "stoneedge", "superpower", "swordsdance"] - }, - "cryogonal": { - "level": 88, - "moves": ["freezedry", "haze", "hiddenpowerground", "icebeam", "rapidspin", "recover", "toxic"], - "doublesMoves": ["freezedry", "hiddenpowerground", "icebeam", "icywind", "protect", "recover", "reflect"] - }, - "accelgor": { - "level": 84, - "moves": ["bugbuzz", "encore", "energyball", "focusblast", "hiddenpowerrock", "spikes", "yawn"], - "doublesMoves": ["bugbuzz", "encore", "focusblast", "gigadrain", "hiddenpowerrock", "protect", "sludgebomb", "yawn"] - }, - "stunfisk": { - "level": 88, - "moves": ["discharge", "earthpower", "foulplay", "rest", "sleeptalk", "stealthrock", "toxic"], - "doublesMoves": ["discharge", "earthpower", "electroweb", "protect", "scald", "stealthrock"] - }, - "mienshao": { - "level": 82, - "moves": ["fakeout", "highjumpkick", "knockoff", "poisonjab", "stoneedge", "swordsdance", "uturn"], - "doublesMoves": ["drainpunch", "fakeout", "feint", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance", "uturn", "wideguard"] - }, - "druddigon": { - "level": 85, - "moves": ["dragontail", "earthquake", "firepunch", "glare", "gunkshot", "outrage", "stealthrock", "suckerpunch", "taunt"], - "doublesMoves": ["dragonclaw", "earthquake", "firepunch", "glare", "protect", "suckerpunch", "superpower", "thunderpunch"] - }, - "golurk": { - "level": 86, - "moves": ["dynamicpunch", "earthquake", "icepunch", "rockpolish", "shadowpunch", "stealthrock", "stoneedge"], - "doublesMoves": ["dynamicpunch", "earthquake", "icepunch", "protect", "rockpolish", "shadowpunch", "stoneedge"] - }, - "bisharp": { - "level": 80, - "moves": ["ironhead", "knockoff", "lowkick", "suckerpunch", "swordsdance"], - "doublesMoves": ["brickbreak", "ironhead", "knockoff", "protect", "substitute", "suckerpunch", "swordsdance"] - }, - "bouffalant": { - "level": 88, - "moves": ["earthquake", "headcharge", "megahorn", "stoneedge", "superpower", "swordsdance"], - "doublesMoves": ["earthquake", "headcharge", "megahorn", "protect", "stoneedge", "superpower", "swordsdance"] - }, - "braviary": { - "level": 84, - "moves": ["bravebird", "bulkup", "return", "roost", "substitute", "superpower", "uturn"], - "doublesMoves": ["bravebird", "bulkup", "protect", "return", "rockslide", "roost", "skydrop", "superpower", "tailwind", "uturn"] - }, - "mandibuzz": { - "level": 82, - "moves": ["bravebird", "defog", "foulplay", "roost", "taunt", "toxic", "uturn"], - "doublesMoves": ["bravebird", "knockoff", "protect", "roost", "snarl", "tailwind", "taunt", "uturn"] - }, - "heatmor": { - "level": 88, - "moves": ["fireblast", "gigadrain", "knockoff", "suckerpunch", "superpower"], - "doublesMoves": ["fireblast", "focusblast", "gigadrain", "heatwave", "protect", "suckerpunch"] - }, - "durant": { - "level": 83, - "moves": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"], - "doublesMoves": ["honeclaws", "ironhead", "protect", "rockslide", "superpower", "xscissor"] - }, - "hydreigon": { - "level": 82, - "moves": ["darkpulse", "dracometeor", "fireblast", "flashcannon", "roost", "superpower", "uturn"], - "doublesMoves": ["darkpulse", "dracometeor", "dragonpulse", "earthpower", "fireblast", "flashcannon", "protect", "roost", "superpower", "tailwind", "uturn"] - }, - "volcarona": { - "level": 80, - "moves": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerice", "quiverdance", "roost"], - "doublesMoves": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "heatwave", "hiddenpowerice", "protect", "quiverdance", "ragepowder", "roost", "tailwind", "willowisp"] - }, - "cobalion": { - "level": 81, - "moves": ["closecombat", "ironhead", "stealthrock", "stoneedge", "substitute", "swordsdance", "taunt", "voltswitch"], - "doublesMoves": ["closecombat", "ironhead", "protect", "stoneedge", "substitute", "swordsdance", "thunderwave"] - }, - "terrakion": { - "level": 82, - "moves": ["closecombat", "earthquake", "quickattack", "stoneedge", "substitute", "swordsdance"], - "doublesMoves": ["closecombat", "earthquake", "protect", "rockslide", "stoneedge", "substitute"] - }, - "virizion": { - "level": 83, - "moves": ["closecombat", "leafblade", "stoneedge", "swordsdance"], - "doublesMoves": ["closecombat", "leafblade", "protect", "stoneedge", "swordsdance", "synthesis", "taunt"] - }, - "tornadus": { - "level": 82, - "moves": ["acrobatics", "bulkup", "knockoff", "rest", "sleeptalk", "superpower", "tailwind"], - "doublesMoves": ["airslash", "focusblast", "heatwave", "hurricane", "protect", "skydrop", "substitute", "superpower", "tailwind", "taunt", "uturn"] - }, - "tornadustherian": { - "level": 80, - "moves": ["heatwave", "hurricane", "knockoff", "superpower", "taunt", "uturn"], - "doublesMoves": ["airslash", "focusblast", "heatwave", "hurricane", "protect", "skydrop", "tailwind", "taunt", "uturn"] - }, - "thundurus": { - "level": 80, - "moves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "knockoff", "nastyplot", "substitute", "taunt", "thunderbolt", "thunderwave"], - "doublesMoves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "knockoff", "nastyplot", "protect", "substitute", "taunt", "thunderbolt", "thunderwave"] - }, - "thundurustherian": { - "level": 81, - "moves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], - "doublesMoves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "protect", "thunderbolt", "voltswitch"] - }, - "reshiram": { - "level": 76, - "moves": ["blueflare", "dracometeor", "earthpower", "roost", "stoneedge", "toxic"], - "doublesMoves": ["blueflare", "dracometeor", "dragonpulse", "flamecharge", "heatwave", "protect", "roost", "tailwind"] - }, - "zekrom": { - "level": 76, - "moves": ["boltstrike", "dracometeor", "dragonclaw", "honeclaws", "outrage", "roost", "substitute", "voltswitch"], - "doublesMoves": ["boltstrike", "dracometeor", "dragonclaw", "fusionbolt", "honeclaws", "protect", "roost", "substitute", "tailwind", "voltswitch"] - }, - "landorus": { - "level": 76, - "moves": ["calmmind", "earthpower", "focusblast", "knockoff", "psychic", "rockpolish", "rockslide", "sludgewave", "stealthrock"], - "doublesMoves": ["earthpower", "focusblast", "hiddenpowerice", "protect", "psychic", "rockslide", "sludgebomb"] - }, - "landorustherian": { - "level": 80, - "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "superpower", "swordsdance", "uturn"], - "doublesMoves": ["earthquake", "knockoff", "protect", "rockslide", "stoneedge", "superpower", "uturn"] - }, - "kyurem": { - "level": 81, - "moves": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage", "roost", "substitute"], - "doublesMoves": ["dracometeor", "dragonpulse", "earthpower", "focusblast", "glaciate", "icebeam", "protect", "roost", "substitute"] - }, - "kyuremblack": { - "level": 79, - "moves": ["dragonclaw", "earthpower", "fusionbolt", "icebeam", "outrage", "roost", "substitute"], - "doublesMoves": ["dragonclaw", "earthpower", "fusionbolt", "honeclaws", "icebeam", "protect", "roost", "substitute"] - }, - "kyuremwhite": { - "level": 76, - "moves": ["dracometeor", "earthpower", "focusblast", "fusionflare", "icebeam", "roost", "toxic"], - "doublesMoves": ["dracometeor", "dragonpulse", "earthpower", "focusblast", "fusionflare", "icebeam", "protect", "roost"] - }, - "keldeo": { - "level": 80, - "moves": ["calmmind", "hiddenpowerelectric", "hydropump", "icywind", "scald", "secretsword", "substitute"], - "doublesMoves": ["hiddenpowerelectric", "hiddenpowerflying", "hydropump", "icywind", "protect", "secretsword", "substitute", "surf", "taunt"] - }, - "meloetta": { - "level": 83, - "moves": ["calmmind", "focusblast", "hypervoice", "psyshock", "shadowball", "trick", "uturn"], - "doublesMoves": ["calmmind", "focusblast", "hypervoice", "protect", "psyshock", "shadowball", "thunderbolt"] - }, - "meloettapirouette": { - "level": 83, - "moves": ["closecombat", "knockoff", "relicsong", "return"], - "doublesMoves": ["closecombat", "knockoff", "protect", "relicsong", "return"] - }, - "genesect": { - "level": 76, - "moves": ["blazekick", "extremespeed", "flamethrower", "icebeam", "ironhead", "shiftgear", "technoblast", "thunderbolt", "uturn"], - "doublesMoves": ["blazekick", "bugbuzz", "extremespeed", "flamethrower", "icebeam", "ironhead", "protect", "shiftgear", "thunderbolt", "uturn"] - }, - "chesnaught": { - "level": 83, - "moves": ["drainpunch", "leechseed", "spikes", "spikyshield", "synthesis", "woodhammer"], - "doublesMoves": ["hammerarm", "leechseed", "rockslide", "spikyshield", "stoneedge", "synthesis", "woodhammer"] - }, - "delphox": { - "level": 84, - "moves": ["calmmind", "fireblast", "grassknot", "psyshock", "shadowball", "switcheroo"], - "doublesMoves": ["calmmind", "dazzlinggleam", "fireblast", "grassknot", "heatwave", "protect", "psyshock", "shadowball", "switcheroo"] - }, - "greninja": { - "level": 77, - "moves": ["gunkshot", "hydropump", "icebeam", "spikes", "taunt", "toxicspikes", "uturn"], - "doublesMoves": ["darkpulse", "hydropump", "icebeam", "matblock", "protect", "surf", "taunt", "uturn"] - }, - "diggersby": { - "level": 82, - "moves": ["agility", "earthquake", "knockoff", "quickattack", "return", "swordsdance", "uturn", "wildcharge"], - "doublesMoves": ["earthquake", "protect", "quickattack", "return", "uturn", "wildcharge"] - }, - "talonflame": { - "level": 80, - "moves": ["bravebird", "flareblitz", "roost", "swordsdance", "tailwind", "uturn", "willowisp"], - "doublesMoves": ["bravebird", "flareblitz", "protect", "roost", "swordsdance", "tailwind", "taunt", "uturn", "willowisp"] - }, - "vivillon": { - "level": 86, - "moves": ["energyball", "hurricane", "quiverdance", "sleeppowder", "substitute"], - "doublesMoves": ["bugbuzz", "hurricane", "protect", "quiverdance", "roost", "sleeppowder"] - }, - "pyroar": { - "level": 86, - "moves": ["darkpulse", "fireblast", "hypervoice", "solarbeam", "sunnyday", "willowisp"], - "doublesMoves": ["fireblast", "hypervoice", "protect", "solarbeam", "sunnyday", "willowisp"] - }, - "floetteeternal": { - "level": 80, - "moves": ["hiddenpowerfire", "hiddenpowerground", "lightofruin", "moonblast", "psychic"], - "doublesMoves": ["aromatherapy", "calmmind", "dazzlinggleam", "lightofruin", "protect", "psychic", "wish"] - }, - "florges": { - "level": 82, - "moves": ["aromatherapy", "calmmind", "moonblast", "protect", "synthesis", "toxic", "wish"], - "doublesMoves": ["aromatherapy", "calmmind", "dazzlinggleam", "moonblast", "protect", "psychic", "wish"] - }, - "gogoat": { - "level": 88, - "moves": ["bulkup", "earthquake", "hornleech", "leechseed", "milkdrink", "rockslide", "substitute"], - "doublesMoves": ["brickbreak", "bulkup", "earthquake", "hornleech", "leechseed", "milkdrink", "protect", "rockslide"] - }, - "pangoro": { - "level": 84, - "moves": ["drainpunch", "gunkshot", "icepunch", "knockoff", "partingshot", "superpower"], - "doublesMoves": ["circlethrow", "crunch", "earthquake", "hammerarm", "icepunch", "partingshot", "poisonjab", "protect"] - }, - "furfrou": { - "level": 87, - "moves": ["cottonguard", "rest", "return", "substitute", "suckerpunch", "thunderwave", "toxic", "uturn"], - "doublesMoves": ["cottonguard", "protect", "return", "snarl", "suckerpunch", "thunderwave", "uturn", "wildcharge"] - }, - "meowstic": { - "level": 88, - "moves": ["healbell", "lightscreen", "psychic", "reflect", "thunderwave", "toxic", "yawn"], - "doublesMoves": ["fakeout", "lightscreen", "protect", "psychic", "reflect", "safeguard", "thunderwave"] - }, - "meowsticf": { - "level": 88, - "moves": ["calmmind", "energyball", "psychic", "psyshock", "shadowball", "thunderbolt"], - "doublesMoves": ["darkpulse", "energyball", "fakeout", "helpinghand", "protect", "psyshock", "signalbeam", "thunderbolt"] - }, - "doublade": { - "level": 82, - "moves": ["ironhead", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], - "doublesMoves": ["ironhead", "protect", "rockslide", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"] - }, - "aegislash": { - "level": 77, - "moves": ["flashcannon", "hiddenpowerice", "kingsshield", "shadowball", "shadowsneak"], - "doublesMoves": ["flashcannon", "hiddenpowerice", "kingsshield", "shadowball", "shadowsneak"] - }, - "aegislashblade": { - "level": 77, - "moves": ["ironhead", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], - "doublesMoves": ["ironhead", "kingsshield", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"] - }, - "aromatisse": { - "level": 86, - "moves": ["aromatherapy", "moonblast", "protect", "toxic", "wish"], - "doublesMoves": ["aromatherapy", "healpulse", "moonblast", "protect", "thunderbolt", "trickroom", "wish"] - }, - "slurpuff": { - "level": 80, - "moves": ["bellydrum", "drainpunch", "playrough", "return"], - "doublesMoves": ["bellydrum", "dazzlinggleam", "drainpunch", "flamethrower", "playrough", "protect", "psychic", "return", "surf"] - }, - "malamar": { - "level": 85, - "moves": ["knockoff", "psychocut", "rest", "sleeptalk", "superpower"], - "doublesMoves": ["knockoff", "protect", "psychocut", "rockslide", "superpower", "trickroom"] - }, - "barbaracle": { - "level": 86, - "moves": ["crosschop", "earthquake", "razorshell", "shellsmash", "stealthrock", "stoneedge"], - "doublesMoves": ["crosschop", "earthquake", "protect", "razorshell", "rockslide", "shellsmash"] - }, - "dragalge": { - "level": 85, - "moves": ["dracometeor", "dragonpulse", "focusblast", "hiddenpowerfire", "scald", "sludgewave", "toxicspikes"], - "doublesMoves": ["dracometeor", "dragonpulse", "focusblast", "hiddenpowerfire", "protect", "scald", "sludgebomb"] - }, - "clawitzer": { - "level": 84, - "moves": ["aurasphere", "darkpulse", "icebeam", "scald", "uturn", "waterpulse"], - "doublesMoves": ["aurasphere", "darkpulse", "helpinghand", "icebeam", "muddywater", "protect", "uturn", "waterpulse"] - }, - "heliolisk": { - "level": 82, - "moves": ["darkpulse", "hiddenpowerice", "hypervoice", "raindance", "surf", "thunderbolt", "voltswitch"], - "doublesMoves": ["darkpulse", "hiddenpowerice", "protect", "raindance", "surf", "thunder", "thunderbolt", "voltswitch"] - }, - "tyrantrum": { - "level": 84, - "moves": ["dragonclaw", "dragondance", "earthquake", "headsmash", "outrage", "stealthrock", "superpower"], - "doublesMoves": ["dragonclaw", "dragondance", "earthquake", "firefang", "headsmash", "icefang", "protect", "rockslide"] - }, - "aurorus": { - "level": 86, - "moves": ["ancientpower", "blizzard", "earthpower", "freezedry", "hypervoice", "stealthrock", "thunderwave"], - "doublesMoves": ["ancientpower", "flashcannon", "freezedry", "hypervoice", "icywind", "protect", "thunderwave"] - }, - "sylveon": { - "level": 82, - "moves": ["calmmind", "hiddenpowerfire", "hypervoice", "protect", "psyshock", "wish"], - "doublesMoves": ["calmmind", "helpinghand", "hiddenpowerground", "hypervoice", "protect", "psyshock", "shadowball", "wish"] - }, - "hawlucha": { - "level": 82, - "moves": ["acrobatics", "highjumpkick", "roost", "stoneedge", "substitute", "swordsdance"], - "doublesMoves": ["encore", "highjumpkick", "protect", "skydrop", "stoneedge", "swordsdance", "uturn"] - }, - "dedenne": { - "level": 88, - "moves": ["grassknot", "hiddenpowerice", "nuzzle", "recycle", "substitute", "thunderbolt", "toxic"], - "doublesMoves": ["grassknot", "helpinghand", "hiddenpowerice", "nuzzle", "protect", "thunderbolt", "uturn", "voltswitch"] - }, - "carbink": { - "level": 88, - "moves": ["explosion", "lightscreen", "moonblast", "powergem", "reflect", "stealthrock"], - "doublesMoves": ["explosion", "lightscreen", "moonblast", "powergem", "protect", "reflect", "trickroom"] - }, - "goodra": { - "level": 82, - "moves": ["dracometeor", "dragontail", "earthquake", "fireblast", "powerwhip", "sludgebomb", "thunderbolt"], - "doublesMoves": ["dracometeor", "dragonpulse", "fireblast", "focusblast", "icebeam", "muddywater", "protect", "thunderbolt"] - }, - "klefki": { - "level": 82, - "moves": ["foulplay", "lightscreen", "playrough", "reflect", "spikes", "thunderwave", "toxic"], - "doublesMoves": ["dazzlinggleam", "flashcannon", "lightscreen", "playrough", "protect", "reflect", "safeguard", "substitute", "thunderwave"] - }, - "trevenant": { - "level": 88, - "moves": ["earthquake", "hornleech", "rest", "rockslide", "shadowclaw", "trickroom", "woodhammer"], - "doublesMoves": ["earthquake", "hornleech", "leechseed", "protect", "rockslide", "shadowclaw", "trickroom", "willowisp", "woodhammer"] - }, - "gourgeistsmall": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["explosion", "leechseed", "painsplit", "phantomforce", "protect", "seedbomb", "shadowsneak", "willowisp"] - }, - "gourgeistlarge": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["explosion", "leechseed", "painsplit", "phantomforce", "protect", "seedbomb", "shadowsneak", "trickroom", "willowisp"] - }, - "gourgeist": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["explosion", "leechseed", "painsplit", "phantomforce", "protect", "seedbomb", "shadowsneak", "willowisp"] - }, - "gourgeistsuper": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["explosion", "leechseed", "painsplit", "phantomforce", "protect", "seedbomb", "shadowsneak", "trickroom", "willowisp"] - }, - "avalugg": { - "level": 88, - "moves": ["avalanche", "earthquake", "rapidspin", "recover", "roar", "toxic"], - "doublesMoves": ["avalanche", "earthquake", "protect", "recover"] - }, - "noivern": { - "level": 84, - "moves": ["boomburst", "dracometeor", "flamethrower", "hurricane", "roost", "switcheroo", "taunt", "uturn"], - "doublesMoves": ["airslash", "boomburst", "dracometeor", "dragonpulse", "flamethrower", "focusblast", "hurricane", "protect", "roost", "switcheroo", "tailwind", "taunt", "uturn"] - }, - "xerneas": { - "level": 73, - "moves": ["focusblast", "geomancy", "hiddenpowerfire", "moonblast", "psyshock", "thunderbolt"], - "doublesMoves": ["closecombat", "dazzlinggleam", "focusblast", "geomancy", "hiddenpowerfire", "protect", "psyshock", "rockslide", "thunder", "thunderbolt"] - }, - "yveltal": { - "level": 74, - "moves": ["darkpulse", "foulplay", "knockoff", "oblivionwing", "roost", "suckerpunch", "taunt", "toxic", "uturn"], - "doublesMoves": ["darkpulse", "focusblast", "hurricane", "oblivionwing", "protect", "roost", "skydrop", "snarl", "suckerpunch", "taunt"] - }, - "zygarde": { - "level": 79, - "moves": ["dragondance", "earthquake", "extremespeed", "glare", "outrage", "stoneedge"], - "doublesMoves": ["coil", "dragondance", "extremespeed", "glare", "landswrath", "protect", "rockslide", "stoneedge"] - }, - "diancie": { - "level": 84, - "moves": ["diamondstorm", "earthpower", "hiddenpowerfire", "lightscreen", "moonblast", "reflect", "stealthrock"], - "doublesMoves": ["calmmind", "dazzlinggleam", "diamondstorm", "lightscreen", "moonblast", "protect", "psychic", "reflect", "safeguard", "substitute"] - }, - "dianciemega": { - "level": 79, - "moves": ["calmmind", "diamondstorm", "earthpower", "hiddenpowerfire", "moonblast", "protect"], - "doublesMoves": ["calmmind", "dazzlinggleam", "diamondstorm", "earthpower", "hiddenpowerfire", "moonblast", "protect", "psyshock"] - }, - "hoopa": { - "level": 84, - "moves": ["focusblast", "nastyplot", "psyshock", "shadowball", "trick"], - "doublesMoves": ["focusblast", "hyperspacehole", "protect", "psychic", "shadowball", "trickroom"] - }, - "hoopaunbound": { - "level": 77, - "moves": ["darkpulse", "drainpunch", "focusblast", "gunkshot", "hyperspacefury", "nastyplot", "psychic", "substitute", "trick", "zenheadbutt"], - "doublesMoves": ["darkpulse", "drainpunch", "focusblast", "gunkshot", "hyperspacefury", "icepunch", "protect", "psychic", "zenheadbutt"] - }, - "volcanion": { - "level": 80, - "moves": ["earthpower", "fireblast", "hiddenpowerice", "sludgewave", "steameruption", "substitute", "superpower"], - "doublesMoves": ["earthquake", "heatwave", "protect", "rockslide", "sludgebomb", "steameruption", "substitute"] - } -} diff --git a/data/mods/gen6/random-teams.ts b/data/mods/gen6/random-teams.ts deleted file mode 100644 index e7e41e471edb..000000000000 --- a/data/mods/gen6/random-teams.ts +++ /dev/null @@ -1,1403 +0,0 @@ -import {MoveCounter, TeamData, OldRandomBattleSpecies} from '../gen8/random-teams'; -import RandomGen7Teams, {BattleFactorySpecies} from '../gen7/random-teams'; -import {PRNG, PRNGSeed} from '../../../sim/prng'; -import {Utils} from '../../../lib'; -import {toID} from '../../../sim/dex'; - -export class RandomGen6Teams extends RandomGen7Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); - - constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { - super(format, prng); - this.noStab = [...this.noStab, 'aquajet', 'fakeout', 'iceshard', 'machpunch', 'quickattack', 'vacuumwave']; - - this.moveEnforcementCheckers = { - Bug: (movePool, moves, abilities, types, counter) => (['megahorn', 'pinmissile'].some(m => movePool.includes(m)) || - !counter.get('Bug') && abilities.has('Tinted Lens')), - Dark: (movePool, moves, abilities, types, counter, species) => ( - (!counter.get('Dark') && !abilities.has('Protean')) - ), - Dragon: (movePool, moves, abilities, types, counter) => ( - !counter.get('Dragon') && - !abilities.has('Aerilate') && - !abilities.has('Pixilate') && - !moves.has('dragonascent') && - !moves.has('rest') && - !moves.has('sleeptalk') - ), - Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), - Fairy: (movePool, moves, abilities, types, counter) => ( - !counter.get('Fairy') && !abilities.has('Pixilate') && (!!counter.setupType || !counter.get('Status')) - ), - Fighting: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Fighting') && ( - species.baseStats.atk >= 110 || - abilities.has('Justified') || abilities.has('Unburden') || - !!counter.setupType || !counter.get('Status') - ) - ), - Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire') || - ['eruption', 'quiverdance'].some(m => movePool.includes(m)), - Flying: (movePool, moves, abilities, types, counter) => ( - !counter.get('Flying') && ( - abilities.has('Gale Wings') || - abilities.has('Serene Grace') || - (types.has('Normal') && movePool.includes('bravebird')) - ) - ), - Ghost: (movePool, moves, abilities, types, counter) => !types.has('Dark') && !counter.get('Ghost'), - Grass: (movePool, moves, abilities, types, counter) => ( - !counter.get('Grass') && !types.has('Fairy') && !types.has('Poison') && !types.has('Steel') - ), - Ground: (movePool, moves, abilities, types, counter) => ( - !counter.get('Ground') && !moves.has('rest') && !moves.has('sleeptalk') - ), - Ice: (movePool, moves, abilities, types, counter) => !counter.get('Ice') && !abilities.has('Refrigerate'), - Normal: movePool => movePool.includes('facade'), - Poison: (movePool, moves, abilities, types, counter) => ( - !counter.get('Poison') && - (!!counter.setupType || abilities.has('Adaptability') || abilities.has('Sheer Force') || movePool.includes('gunkshot')) - ), - Psychic: (movePool, moves, abilities, types, counter, species) => ( - !!counter.get('Psychic') && - !types.has('Flying') && - !abilities.has('Pixilate') && - counter.get('stab') < species.types.length - ), - Rock: (movePool, moves, abilities, types, counter) => ( - !counter.get('Rock') && - !types.has('Fairy') && - (abilities.has('Rock Head') || counter.setupType === 'Physical') - ), - Steel: (movePool, moves, abilities, types, counter) => ( - !counter.get('Steel') && (abilities.has('Technician') || movePool.includes('meteormash')) - ), - Water: (movePool, moves, abilities, types, counter) => ( - (!counter.get('Water') || !counter.get('stab')) && - !abilities.has('Protean') - ), - Adaptability: (movePool, moves, abilities, types, counter, species) => ( - !counter.setupType && - species.types.length > 1 && - (!counter.get(species.types[0]) || !counter.get(species.types[1])) - ), - Aerilate: (movePool, moves, abilities, types, counter) => !counter.get('Normal'), - Pixilate: (movePool, moves, abilities, types, counter) => !counter.get('Normal'), - Refrigerate: (movePool, moves, abilities, types, counter) => !moves.has('blizzard') && !counter.get('Normal'), - Contrary: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('contrary') && species.name !== 'Shuckle' - ), - 'Bad Dreams': movePool => movePool.includes('darkvoid'), - 'Slow Start': movePool => movePool.includes('substitute'), - protect: movePool => movePool.includes('wish'), - wish: (movePool, moves, abilities, types, counter, species) => ( - species.baseStats.hp < 110 && !abilities.has('Regenerator') && movePool.includes('protect') - ), - }; - } - - shouldCullMove( - move: Move, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - ): {cull: boolean, isSetup?: boolean} { - const restTalk = moves.has('rest') && moves.has('sleeptalk'); - - if (move.priority > 0 && counter.get('speedsetup')) return {cull: true}; - - switch (move.id) { - // Not very useful without their supporting moves - case 'cottonguard': case 'defendorder': - return {cull: !counter.get('recovery') && !moves.has('rest')}; - case 'focuspunch': - return {cull: !moves.has('substitute') || counter.damagingMoves.size < 2}; - case 'lightscreen': - if (movePool.length > 1) { - const screen = movePool.indexOf('reflect'); - if (screen >= 0) this.fastPop(movePool, screen); - } - return {cull: !moves.has('reflect')}; - case 'perishsong': - return {cull: !moves.has('protect')}; - case 'reflect': - if (movePool.length > 1) { - const screen = movePool.indexOf('lightscreen'); - if (screen >= 0) this.fastPop(movePool, screen); - } - return {cull: !moves.has('lightscreen')}; - case 'rest': - return {cull: movePool.includes('sleeptalk')}; - case 'sleeptalk': - if (movePool.length > 1) { - const rest = movePool.indexOf('rest'); - if (rest >= 0) this.fastPop(movePool, rest); - } - return {cull: !moves.has('rest')}; - case 'storedpower': - return {cull: !counter.setupType}; - case 'switcheroo': case 'trick': - return {cull: counter.get('Physical') + counter.get('Special') < 3 || !!counter.get('priority')}; - - // Set up once and only if we have the moves for it - case 'bellydrum': case 'bulkup': case 'coil': case 'curse': case 'dragondance': case 'honeclaws': case 'swordsdance': - return {cull: ( - (move.id === 'bellydrum' && !abilities.has('Unburden') && !counter.get('priority')) || - (counter.get('Physical') + counter.get('physicalpool') < 2 && (!moves.has('rest') || !moves.has('sleeptalk'))) || ( - (counter.setupType !== 'Physical' || counter.get('physicalsetup') > 1) && - (!moves.has('growth') || moves.has('sunnyday')) - ) - ), isSetup: true}; - case 'calmmind': case 'geomancy': case 'nastyplot': case 'tailglow': - if (types.has('Dark') && moves.has('darkpulse')) { - counter.setupType = 'Special'; - return {cull: false, isSetup: true}; - } - return {cull: ( - counter.setupType !== 'Special' || - counter.get('specialsetup') > 1 || - (counter.get('Special') + counter.get('specialpool') < 2 && (!moves.has('rest') || !moves.has('sleeptalk'))) - ), isSetup: true}; - case 'quiverdance': - return {cull: false, isSetup: true}; - case 'growth': case 'shellsmash': case 'workup': - return {cull: ( - counter.setupType !== 'Mixed' || - counter.get('mixedsetup') > 1 || - counter.damagingMoves.size + counter.get('physicalpool') + counter.get('specialpool') < 2 || - (move.id === 'growth' && !moves.has('sunnyday')) - ), isSetup: true}; - case 'agility': case 'autotomize': case 'rockpolish': case 'shiftgear': - return {cull: counter.damagingMoves.size < 2 || restTalk, isSetup: !counter.setupType}; - case 'flamecharge': - return {cull: ( - moves.has('dracometeor') || - moves.has('overheat') || - (counter.damagingMoves.size < 3 && !counter.setupType) - )}; - - // Bad after setup - case 'circlethrow': case 'dragontail': - return {cull: ( - (!!counter.setupType && ((!moves.has('rest') && !moves.has('sleeptalk')) || moves.has('stormthrow'))) || - (!!counter.get('speedsetup') || ['encore', 'raindance', 'roar', 'trickroom', 'whirlwind'].some(m => moves.has(m))) || - (counter.get(move.type) > 1 && counter.get('Status') > 1) || - (abilities.has('Sheer Force') && !!counter.get('sheerforce')) - )}; - case 'defog': - return {cull: ( - !!counter.setupType || - moves.has('spikes') || moves.has('stealthrock') || - restTalk || - !!teamDetails.defog - )}; - case 'fakeout': case 'tailwind': - return {cull: !!counter.setupType || ['substitute', 'switcheroo', 'trick'].some(m => moves.has(m))}; - case 'foulplay': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - counter.get('Dark') > 2 || - moves.has('clearsmog') || - restTalk || - (!!counter.get('priority') && counter.damagingMoves.size - 1 === counter.get('priority')) - )}; - case 'haze': case 'spikes': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('trickroom')}; - case 'healbell': case 'technoblast': - return {cull: !!counter.get('speedsetup')}; - case 'healingwish': case 'memento': - return {cull: !!counter.setupType || !!counter.get('recovery') || moves.has('substitute')}; - case 'iceshard': - return {cull: moves.has('shellsmash')}; - case 'leechseed': case 'roar': case 'whirlwind': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('dragontail')}; - case 'nightshade': case 'seismictoss': - return {cull: ( - (!abilities.has("Parental Bond") && (counter.damagingMoves.size > 1 || !!counter.setupType)) || - moves.has('poweruppunch') - )}; - case 'protect': - const screens = moves.has('lightscreen') && moves.has('reflect'); - return {cull: ( - moves.has('rest') || screens || (!!counter.setupType && !moves.has('wish')) || - (!['Guts', 'Harvest', 'Poison Heal', 'Quick Feet', 'Speed Boost'].some(abil => abilities.has(abil)) && - !['leechseed', 'perishsong', 'toxic', 'wish'].some(m => moves.has(m)) && - !['sharpedomega', 'dianciemega'].includes(species.id)) - )}; - case 'pursuit': - return {cull: ( - moves.has('nightslash') || - !!counter.setupType || - counter.get('Status') > 1 || - counter.get('Dark') > 2 || - (moves.has('knockoff') && !types.has('Dark')) - )}; - case 'rapidspin': - return {cull: !!counter.setupType || !!teamDetails.rapidSpin}; - case 'superfang': - return {cull: !!counter.setupType}; - case 'stealthrock': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - ['rest', 'substitute', 'trickroom'].some(m => moves.has(m)) || - !!teamDetails.stealthRock - )}; - case 'stickyweb': - return {cull: !!teamDetails.stickyWeb}; - case 'toxicspikes': - return {cull: !!counter.setupType || !!teamDetails.toxicSpikes}; - case 'trickroom': - return {cull: ( - moves.has('lightscreen') || moves.has('reflect') || - !!counter.setupType || - !!counter.get('speedsetup') || - counter.damagingMoves.size < 2 - )}; - case 'uturn': - return {cull: ( - !!counter.setupType || !!counter.get('speedsetup') || - (abilities.has('Speed Boost') && moves.has('protect')) || - (abilities.has('Protean') && counter.get('Status') > 2) - )}; - case 'voltswitch': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('raindance') || moves.has('uturn')}; - case 'wish': - return {cull: ( - species.baseStats.hp < 110 && - !abilities.has('Regenerator') && - !movePool.includes('protect') && - !['ironhead', 'protect', 'spikyshield', 'uturn'].some(m => moves.has(m)) - )}; - - // Bit redundant to have both - // Attacks: - case 'bugbite': case 'bugbuzz': case 'signalbeam': - return {cull: moves.has('uturn') && !counter.setupType && !abilities.has('Tinted Lens')}; - case 'darkpulse': - return {cull: ['crunch', 'knockoff', 'hyperspacefury'].some(m => moves.has(m)) && counter.setupType !== 'Special'}; - case 'suckerpunch': - return {cull: ( - counter.damagingMoves.size < 2 || - (counter.get('Dark') > 1 && !types.has('Dark')) || - moves.has('glare') || - restTalk - )}; - case 'dragonclaw': - return {cull: moves.has('dragontail') || moves.has('outrage')}; - case 'dracometeor': - return {cull: moves.has('swordsdance') || counter.setupType === 'Physical' && counter.get('Dragon') > 1}; - case 'dragonpulse': case 'spacialrend': - return {cull: moves.has('dracometeor') || moves.has('outrage') || (moves.has('dragontail') && !counter.setupType)}; - case 'outrage': - return {cull: moves.has('dracometeor') && counter.damagingMoves.size < 3}; - case 'thunderbolt': - return {cull: moves.has('discharge') || (moves.has('voltswitch') && moves.has('wildcharge'))}; - case 'dazzlinggleam': - return {cull: moves.has('playrough') && counter.setupType !== 'Special'}; - case 'aurasphere': case 'focusblast': - return {cull: restTalk || ((moves.has('closecombat') || moves.has('superpower')) && counter.setupType !== 'Special')}; - case 'drainpunch': - return {cull: ( - (!moves.has('bulkup') && (moves.has('closecombat') || moves.has('highjumpkick'))) || - ((moves.has('focusblast') || moves.has('superpower')) && counter.setupType !== 'Physical') - )}; - case 'closecombat': case 'highjumpkick': - return {cull: ( - (moves.has('bulkup') && moves.has('drainpunch')) || ( - counter.setupType === 'Special' && - (moves.has('aurasphere') || moves.has('focusblast') || movePool.includes('aurasphere')) - ) - )}; - case 'machpunch': - return {cull: types.has('Fighting') && counter.get('stab') < species.types.length && !abilities.has('Technician')}; - case 'stormthrow': - return {cull: moves.has('circlethrow') && restTalk}; - case 'superpower': - const isSetup = abilities.has('Contrary'); - return {cull: (counter.get('Fighting') > 1 && !!counter.setupType) || (restTalk && !isSetup), isSetup}; - case 'vacuumwave': - return {cull: (moves.has('closecombat') || moves.has('machpunch')) && counter.setupType !== 'Special'}; - case 'fierydance': case 'firefang': case 'flamethrower': - return {cull: ( - (move.id === 'flamethrower' && moves.has('drainpunch') && counter.setupType !== 'Special') || - moves.has('blazekick') || - moves.has('overheat') || - ((moves.has('fireblast') || moves.has('lavaplume')) && counter.setupType !== 'Physical') - )}; - case 'fireblast': - return {cull: ( - (moves.has('flareblitz') && counter.setupType !== 'Special') || - (moves.has('lavaplume') && !counter.setupType && !counter.get('speedsetup')) - )}; - case 'lavaplume': - return {cull: moves.has('firepunch') || moves.has('fireblast') && (!!counter.setupType || !!counter.get('speedsetup'))}; - case 'airslash': case 'hurricane': - return {cull: ( - [(move.id === 'hurricane' ? 'airslash' : 'hurricane'), 'acrobatics', 'bravebird'].some(m => moves.has(m)) - )}; - case 'shadowball': - return {cull: moves.has('darkpulse') || (moves.has('hex') && moves.has('willowisp'))}; - case 'shadowclaw': - return {cull: ( - moves.has('shadowforce') || - moves.has('shadowsneak') || - (moves.has('shadowball') && counter.setupType !== 'Physical') - )}; - case 'shadowsneak': - return {cull: restTalk || (types.has('Ghost') && species.types.length > 1 && counter.get('stab') < 2)}; - case 'hex': - return {cull: moves.has('shadowball') && !moves.has('willowisp')}; - case 'gigadrain': case 'powerwhip': - return {cull: ( - moves.has('seedbomb') || - moves.has('petaldance') || - (moves.has('sunnyday') && moves.has('solarbeam')) || - (counter.get('Special') < 4 && !counter.setupType && moves.has('leafstorm')) - )}; - case 'leafblade': case 'woodhammer': - return {cull: ( - (moves.has('hornleech') && counter.get('Physical') < 4) || - (moves.has('gigadrain') && counter.setupType !== 'Physical') - )}; - case 'leafstorm': - return {cull: counter.get('Grass') > 1 && !!counter.setupType}; - case 'solarbeam': - return {cull: ( - (!abilities.has('Drought') && !moves.has('sunnyday')) || - moves.has('gigadrain') || - moves.has('leafstorm') - )}; - case 'bonemerang': case 'earthpower': case 'precipiceblades': - return {cull: moves.has('earthquake')}; - case 'earthquake': - return {cull: moves.has('closecombat') && abilities.has('Aerilate')}; - case 'freezedry': - return {cull: moves.has('icebeam') || moves.has('icywind') || counter.get('stab') < species.types.length}; - case 'bodyslam': case 'return': - return {cull: ( - moves.has('doubleedge') || - (moves.has('glare') && moves.has('headbutt')) || - (move.id === 'return' && moves.has('bodyslam')) - )}; - case 'endeavor': - return {cull: !isLead && !abilities.has('Defeatist')}; - case 'explosion': - return {cull: ( - !!counter.setupType || - (abilities.has('Refrigerate') && (moves.has('freezedry') || movePool.includes('return'))) || - moves.has('wish') - )}; - case 'extremespeed': - return {cull: counter.setupType !== 'Physical' && moves.has('vacuumwave')}; - case 'hiddenpower': - return {cull: ( - moves.has('rest') || - (!counter.get('stab') && counter.damagingMoves.size < 2) || - // Force Moonblast on Special-setup Fairies - (counter.setupType === 'Special' && types.has('Fairy') && movePool.includes('moonblast')) - )}; - case 'hypervoice': - return {cull: moves.has('blizzard') || moves.has('return')}; - case 'judgment': - return {cull: counter.setupType !== 'Special' && counter.get('stab') > 1}; - case 'quickattack': - return {cull: ( - (types.has('Normal') && (!counter.get('stab') || counter.get('Normal') > 2)) || - (types.has('Rock') && !!counter.get('Status')) - )}; - case 'weatherball': - return {cull: !moves.has('raindance') && !moves.has('sunnyday')}; - case 'poisonjab': - return {cull: moves.has('gunkshot')}; - case 'acidspray': case 'sludgewave': - return {cull: moves.has('poisonjab') || moves.has('sludgebomb')}; - case 'psychic': - return {cull: moves.has('psyshock')}; - case 'psychocut': case 'zenheadbutt': - return {cull: ( - ((moves.has('psychic') || moves.has('psyshock')) && counter.setupType !== 'Physical') || - (abilities.has('Contrary') && !counter.setupType && !!counter.get('physicalpool')) - )}; - case 'psyshock': - const psychic = movePool.indexOf('psychic'); - if (psychic >= 0) this.fastPop(movePool, psychic); - return {cull: false}; - case 'headsmash': - return {cull: moves.has('stoneedge')}; - case 'rockblast': case 'rockslide': - return {cull: moves.has('headsmash') || moves.has('stoneedge')}; - case 'bulletpunch': - return {cull: moves.has('substitute')}; - case 'hydropump': - return {cull: ( - moves.has('razorshell') || - moves.has('waterfall') || - (moves.has('scald') && (counter.get('Special') < 4 || species.types.length > 1 && counter.get('stab') < 3)) || - restTalk - )}; - case 'originpulse': case 'surf': - return {cull: moves.has('hydropump') || moves.has('scald')}; - case 'scald': - return {cull: ( - moves.has('waterfall') || - moves.has('waterpulse') || - (species.id === 'quagsire' && movePool.includes('recover')) - )}; - - // Status: - case 'glare': case 'headbutt': - return {cull: moves.has('bodyslam') || !moves.has('glare')}; - case 'stunspore': case 'thunderwave': - const otherStatus = ['discharge', 'spore', 'toxic', 'trickroom', 'yawn'].some(m => moves.has(m)); - return {cull: !!counter.setupType || !!counter.get('speedsetup') || restTalk || otherStatus}; - case 'toxic': - return {cull: ( - !!counter.setupType || - ['hypnosis', 'sleeppowder', 'toxicspikes', 'willowisp', 'yawn', 'raindance', 'flamecharge'].some(m => moves.has(m)) - )}; - case 'raindance': - return {cull: ( - counter.get('Physical') + counter.get('Special') < 2 || - (!types.has('Water') && !counter.get('Water')) || - restTalk - )}; - case 'sunnyday': - const cull = ( - counter.get('Physical') + counter.get('Special') < 2 || - (!abilities.has('Chlorophyll') && !abilities.has('Flower Gift') && !moves.has('solarbeam')) || - restTalk - ); - - if (cull && movePool.length > 1) { - const solarbeam = movePool.indexOf('solarbeam'); - if (solarbeam >= 0) this.fastPop(movePool, solarbeam); - if (movePool.length > 1) { - const weatherball = movePool.indexOf('weatherball'); - if (weatherball >= 0) this.fastPop(movePool, weatherball); - } - } - - return {cull}; - case 'milkdrink': case 'moonlight': case 'painsplit': case 'recover': case 'roost': case 'synthesis': - return {cull: ( - ['leechseed', 'rest'].some(m => moves.has(m)) || - (moves.has('wish') && (moves.has('protect') || movePool.includes('protect'))) - )}; - case 'safeguard': - return {cull: moves.has('destinybond')}; - case 'substitute': - const moveBasedCull = ['copycat', 'dragondance', 'shiftgear'].some(m => movePool.includes(m)); - return {cull: ( - ['dracometeor', 'pursuit', 'rest', 'taunt', 'uturn', 'voltswitch', 'whirlwind'].some(m => moves.has(m)) || - (moves.has('leafstorm') && !abilities.has('Contrary')) || moveBasedCull - )}; - } - - return {cull: false}; - } - - shouldCullAbility( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species - ): boolean { - switch (ability) { - case 'Flare Boost': case 'Gluttony': case 'Moody': case 'Snow Cloak': case 'Steadfast': case 'Magician': - return true; - case 'Contrary': case 'Iron Fist': case 'Skill Link': case 'Strong Jaw': - return !counter.get(toID(ability)); - case 'Aerilate': case 'Pixilate': case 'Refrigerate': - return !counter.get('Normal'); - case 'Analytic': case 'Download': case 'Hyper Cutter': - return species.nfe; - case 'Battle Armor': case 'Sturdy': - return (!!counter.get('recoil') && !counter.get('recovery')); - case 'Chlorophyll': case 'Leaf Guard': - return ( - species.baseStats.spe > 100 || - abilities.has('Harvest') || - (!moves.has('sunnyday') && !teamDetails.sun) - ); - case 'Competitive': - return (!counter.get('Special') || moves.has('rest') && moves.has('sleeptalk')); - case 'Compound Eyes': case 'No Guard': - return !counter.get('inaccurate'); - case 'Defiant': case 'Moxie': - return (!counter.get('Physical') || moves.has('dragontail')); - case 'Flash Fire': - return abilities.has('Drought'); - case 'Harvest': - return abilities.has('Frisk'); - case 'Hustle': - return counter.get('Physical') < 2; - case 'Hydration': case 'Rain Dish': case 'Swift Swim': - return ( - species.baseStats.spe > 100 || !moves.has('raindance') && !teamDetails.rain || - !moves.has('raindance') && ['Rock Head', 'Water Absorb'].some(abil => abilities.has(abil)) - ); - case 'Ice Body': - return !teamDetails.hail; - case 'Immunity': case 'Snow Warning': - return (moves.has('facade') || moves.has('hypervoice')); - case 'Intimidate': - return (moves.has('bodyslam') || moves.has('rest') || abilities.has('Reckless') && counter.get('recoil') > 1); - case 'Lightning Rod': - return ( - species.types.includes('Ground') || - (!!teamDetails.rain || moves.has('raindance')) && abilities.has('Swift Swim') - ); - case 'Limber': - return species.types.includes('Electric'); - case 'Magnet Pull': - return (!types.has('Electric') && !moves.has('earthpower')); - case 'Mold Breaker': - return ( - moves.has('acrobatics') || - abilities.has('Adaptability') || - (abilities.has('Sheer Force') && !!counter.get('sheerforce')) - ); - case 'Overgrow': - return !counter.get('Grass'); - case 'Poison Heal': - return (abilities.has('Technician') && !!counter.get('technician')); - case 'Prankster': - return !counter.get('Status'); - case 'Pressure': case 'Synchronize': - return (counter.get('Status') < 2 || !!counter.get('recoil') || !!species.isMega); - case 'Reckless': case 'Rock Head': - return (!counter.get('recoil') || !!species.isMega); - case 'Regenerator': - return abilities.has('Magic Guard'); - case 'Sand Force': case 'Sand Rush': case 'Sand Veil': - return !teamDetails.sand; - case 'Scrappy': - return !species.types.includes('Normal'); - case 'Serene Grace': - return (!counter.get('serenegrace') || species.name === 'Blissey'); - case 'Sheer Force': - return (!counter.get('sheerforce') || moves.has('doubleedge') || abilities.has('Guts') || !!species.isMega); - case 'Simple': - return (!counter.setupType && !moves.has('flamecharge')); - case 'Solar Power': - return (!counter.get('Special') || !teamDetails.sun || !!species.isMega); - case 'Speed Boost': - return moves.has('uturn'); - case 'Swarm': - return (!counter.get('Bug') || !!species.isMega); - case 'Sweet Veil': - return types.has('Grass'); - case 'Technician': - return (!counter.get('technician') || moves.has('tailslap') || !!species.isMega); - case 'Tinted Lens': - return ( - moves.has('protect') || - abilities.has('Prankster') || - counter.get('damage') >= counter.damagingMoves.size || - (counter.get('Status') > 2 && !counter.setupType) - ); - case 'Torrent': - return (!counter.get('Water') || !!species.isMega); - case 'Unaware': - return (!!counter.setupType || species.id === 'clefable' && moves.has('stealthrock')); - case 'Unburden': - return (!!species.isMega || abilities.has('Prankster') || !counter.setupType && !moves.has('acrobatics')); - case 'Water Absorb': - return (moves.has('raindance') || ['Drizzle', 'Unaware', 'Volt Absorb'].some(a => abilities.has(a))); - case 'Weak Armor': - return counter.setupType !== 'Physical'; - } - - return false; - } - - getHighPriorityItem( - ability: string, - types: Set, - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean - ): string | undefined { - if (species.requiredItem) return species.requiredItem; - if (species.requiredItems) return this.sample(species.requiredItems); - - // First, the extra high-priority items - if (species.name === 'Marowak') return 'Thick Club'; - if (species.name === 'Dedenne') return 'Petaya Berry'; - if (species.name === 'Deoxys-Attack') return (isLead && moves.has('stealthrock')) ? 'Focus Sash' : 'Life Orb'; - if (species.name === 'Farfetch\u2019d') return 'Stick'; - if (species.name === 'Genesect' && moves.has('technoblast')) return 'Douse Drive'; - if (species.baseSpecies === 'Pikachu') return 'Light Ball'; - if (species.name === 'Shedinja' || species.name === 'Smeargle') return 'Focus Sash'; - if (species.name === 'Unfezant' && counter.get('Physical') >= 2) return 'Scope Lens'; - if (species.name === 'Unown') return 'Choice Specs'; - if (species.name === 'Wobbuffet') return 'Custap Berry'; - if (ability === 'Harvest') return 'Sitrus Berry'; - if (ability === 'Imposter') return 'Choice Scarf'; - if (moves.has('switcheroo') || moves.has('trick')) { - if (ability === 'Klutz') { - return 'Assault Vest'; - } else if (species.baseStats.spe >= 60 && species.baseStats.spe <= 108) { - return 'Choice Scarf'; - } else { - return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; - } - } - if (species.nfe) return (ability === 'Technician' && counter.get('Physical') >= 4) ? 'Choice Band' : 'Eviolite'; - if (moves.has('copycat') && counter.get('Physical') >= 3) return 'Choice Band'; - if (moves.has('bellydrum')) return 'Sitrus Berry'; - if ( - moves.has('geomancy') || - (moves.has('solarbeam') && ability !== 'Drought' && !moves.has('sunnyday') && !teamDetails.sun) - ) { - return 'Power Herb'; - } - if (moves.has('shellsmash')) { - return (ability === 'Solid Rock' && !!counter.get('priority')) ? 'Weakness Policy' : 'White Herb'; - } - if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk')) { - return moves.has('drainpunch') ? 'Flame Orb' : 'Toxic Orb'; - } - if ( - (ability === 'Magic Guard' && counter.damagingMoves.size > 1) || - (ability === 'Sheer Force' && !!counter.get('sheerforce')) - ) { - return 'Life Orb'; - } - if (moves.has('psychoshift')) return 'Flame Orb'; - if (ability === 'Poison Heal') return 'Toxic Orb'; - if (ability === 'Unburden') { - if (moves.has('fakeout')) { - return 'Normal Gem'; - } else if (['dracometeor', 'leafstorm', 'overheat'].some(m => moves.has(m))) { - return 'White Herb'; - } else if (moves.has('substitute') || counter.setupType) { - return 'Sitrus Berry'; - } else { - return 'Red Card'; - } - } - if (moves.has('acrobatics')) return ''; // not undefined - we want "no item" - if (moves.has('raindance')) return (ability === 'Forecast') ? 'Damp Rock' : 'Life Orb'; - if (moves.has('sunnyday')) return (ability === 'Forecast') ? 'Heat Rock' : 'Life Orb'; - if (moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; - if (moves.has('rest') && !moves.has('sleeptalk') && ability !== 'Natural Cure' && ability !== 'Shed Skin') { - return 'Chesto Berry'; - } - } - - getMediumPriorityItem( - ability: string, - moves: Set, - counter: MoveCounter, - species: Species, - isDoubles: boolean, - isLead: boolean - ): string | undefined { - const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; - const scarfReqs = species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && !counter.get('priority'); - - if ( - (ability === 'Speed Boost' || ability === 'Stance Change') && - counter.get('Physical') + counter.get('Special') > 2 - ) { - return 'Life Orb'; - } - if ( - counter.get('Physical') >= 4 && - ['bodyslam', 'dragontail', 'fakeout', 'flamecharge', 'rapidspin', 'suckerpunch'].every(m => !moves.has(m)) - ) { - return ( - (species.baseStats.atk >= 100 || ability === 'Huge Power') && - scarfReqs && - this.randomChance(2, 3) - ) ? 'Choice Scarf' : 'Choice Band'; - } - if ( - counter.get('Special') >= 4 && - !moves.has('acidspray') && !moves.has('clearsmog') && !moves.has('fierydance') - ) { - return ( - species.baseStats.spa >= 100 && - scarfReqs && - this.randomChance(2, 3) - ) ? 'Choice Scarf' : 'Choice Specs'; - } - if ( - counter.get('Physical') >= 3 && - moves.has('defog') && - scarfReqs && - !moves.has('foulplay') - ) { - return 'Choice Scarf'; - } - - if (counter.get('Special') >= 3 && moves.has('uturn') && !moves.has('acidspray')) return 'Choice Specs'; - if ( - ability === 'Slow Start' || - ['bite', 'clearsmog', 'curse', 'protect', 'sleeptalk'].some(m => moves.has(m)) || - species.name.includes('Rotom-') - ) { - return 'Leftovers'; - } - - if (['endeavor', 'flail', 'reversal'].some(m => moves.has(m)) && ability !== 'Sturdy') { - return (ability === 'Defeatist') ? 'Expert Belt' : 'Focus Sash'; - } - if (moves.has('outrage') && counter.setupType) return 'Lum Berry'; - if (moves.has('substitute')) return counter.damagingMoves.size > 2 && !!counter.get('drain') ? 'Life Orb' : 'Leftovers'; - if (this.dex.getEffectiveness('Ground', species) >= 2 && ability !== 'Levitate' && !moves.has('magnetrise')) { - return 'Air Balloon'; - } - if ((ability === 'Iron Barbs' || ability === 'Rough Skin') && this.randomChance(1, 2)) return 'Rocky Helmet'; - if ( - counter.get('Physical') + counter.get('Special') >= 4 && - species.baseStats.spd >= 50 && - defensiveStatTotal >= 235 - ) { - return 'Assault Vest'; - } - if (species.name === 'Palkia' && (moves.has('dracometeor') || moves.has('spacialrend')) && moves.has('hydropump')) { - return 'Lustrous Orb'; - } - if (species.types.includes('Normal') && moves.has('fakeout') && counter.get('Normal') >= 2) return 'Silk Scarf'; - if (counter.damagingMoves.size >= 4) { - return (counter.get('Dragon') || moves.has('suckerpunch') || counter.get('Normal')) ? 'Life Orb' : 'Expert Belt'; - } - if (counter.damagingMoves.size >= 3 && counter.get('speedsetup') && defensiveStatTotal >= 300) return 'Weakness Policy'; - if ( - isLead && - ability !== 'Regenerator' && ability !== 'Sturdy' && - !counter.get('recoil') && !counter.get('recovery') && - defensiveStatTotal < 255 - ) { - return 'Focus Sash'; - } - } - - getLowPriorityItem( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean - ): string | undefined { - const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; - - if (ability === 'Gale Wings' && moves.has('bravebird')) return 'Sharp Beak'; - if (moves.has('stickyweb') && ability === 'Sturdy') return 'Mental Herb'; - if (ability === 'Serene Grace' && moves.has('airslash') && species.baseStats.spe > 100) return 'Metronome'; - if (ability === 'Sturdy' && moves.has('explosion') && !counter.get('speedsetup')) return 'Custap Berry'; - if (ability === 'Super Luck') return 'Scope Lens'; - if ( - counter.damagingMoves.size >= 3 && ability !== 'Sturdy' && - (species.baseStats.spe >= 90 || !moves.has('voltswitch')) && - ['acidspray', 'dragontail', 'foulplay', 'rapidspin', 'superfang', 'uturn'].every(m => !moves.has(m)) - ) { - return ( - counter.get('speedsetup') || - moves.has('trickroom') || - (species.baseStats.spe > 40 && defensiveStatTotal <= 275) - ) ? 'Life Orb' : 'Leftovers'; - } - } - - randomSet( - species: string | Species, - teamDetails: RandomTeamsTypes.TeamDetails = {}, - isLead = false - ): RandomTeamsTypes.RandomSet { - species = this.dex.species.get(species); - let forme = species.name; - - if (typeof species.battleOnly === 'string') { - // Only change the forme. The species has custom moves, and may have different typing and requirements. - forme = species.battleOnly; - } - if (species.cosmeticFormes) { - forme = this.sample([species.name].concat(species.cosmeticFormes)); - } - - const data = this.randomData[species.id]; - - const movePool = (data?.moves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice(); - const rejectedPool = []; - let ability = ''; - - const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; - const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; - - const types = new Set(species.types); - let abilities = new Set(Object.values(species.abilities)); - if (species.unreleasedHidden) abilities.delete(species.abilities.H); - let availableHP = 0; - for (const setMoveid of movePool) { - if (setMoveid.startsWith('hiddenpower')) availableHP++; - } - - // These moves can be used even if we aren't setting up to use them: - const SetupException = ['closecombat', 'diamondstorm', 'extremespeed', 'suckerpunch', 'superpower']; - - const moves = new Set(); - let counter: MoveCounter; - // We use a special variable to track Hidden Power - // so that we can check for all Hidden Powers at once - let hasHiddenPower = false; - - do { - // Choose next 4 moves from learnset/viable moves and add them to moves list: - while (moves.size < this.maxMoveCount && movePool.length) { - const moveid = this.sampleNoReplace(movePool); - if (moveid.startsWith('hiddenpower')) { - availableHP--; - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - while (moves.size < this.maxMoveCount && rejectedPool.length) { - const moveid = this.sampleNoReplace(rejectedPool); - if (moveid.startsWith('hiddenpower')) { - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - counter = this.queryMoves(moves, species.types, abilities, movePool); - - // Iterate through the moves again, this time to cull them: - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - - let {cull, isSetup} = this.shouldCullMove( - move, types, moves, abilities, counter, movePool, - teamDetails, species, isLead - ); - - // This move doesn't satisfy our setup requirements: - if ( - (move.category === 'Physical' && counter.setupType === 'Special') || - (move.category === 'Special' && counter.setupType === 'Physical') - ) { - // Reject STABs last in case the setup type changes later on - const stabs = counter.get(species.types[0]) + counter.get(species.types[1]); - if ( - !SetupException.includes(moveid) && - (!types.has(move.type) || stabs > 1 || counter.get(move.category) < 2) - ) cull = true; - } - if ( - counter.setupType && !isSetup && counter.setupType !== 'Mixed' && move.category !== counter.setupType && - counter.get(counter.setupType) < 2 && (move.category !== 'Status' || !move.flags.heal) && - moveid !== 'sleeptalk' && !types.has('Dark') && !moves.has('darkpulse') && ( - move.category !== 'Status' || ( - counter.get(counter.setupType) + counter.get('Status') > 3 && - counter.get('physicalsetup') + counter.get('specialsetup') < 2 - ) - ) - ) { - // Mono-attacking with setup and RestTalk is allowed - // Reject Status moves only if there is nothing else to reject - cull = true; - } - - if ( - counter.setupType === 'Special' && - moveid === 'hiddenpower' && - species.types.length > 1 && - counter.get('Special') <= 2 && - !types.has(move.type) && - !counter.get('Physical') && - counter.get('specialpool') - ) { - // Hidden Power isn't good enough - cull = true; - } - - const runEnforcementChecker = (checkerName: string) => { - if (!this.moveEnforcementCheckers[checkerName]) return false; - return this.moveEnforcementCheckers[checkerName]( - movePool, moves, abilities, types, counter, species as Species, teamDetails - ); - }; - - // Pokemon should have moves that benefit their Type/Ability/Weather, as well as moves required by its forme - if ( - !cull && !isSetup && !move.weather && !move.stallingMove && !move.damage && - (move.category !== 'Status' || !move.flags.heal) && - !['judgment', 'sleeptalk', 'toxic', 'lightscreen', 'reflect'].includes(moveid) && - (counter.get('physicalsetup') + counter.get('specialsetup') < 2 && ( - !counter.setupType || counter.setupType === 'Mixed' || - (move.category !== counter.setupType && move.category !== 'Status') || - counter.get(counter.setupType) + counter.get('Status') > 3 - )) && ( - move.category === 'Status' || - !types.has(move.type) || - (move.basePower && move.basePower < 40 && !move.multihit) - ) - ) { - if ( - (!counter.get('stab') && !moves.has('nightshade') && !moves.has('seismictoss') && ( - species.types.length > 1 || - (species.types[0] !== 'Normal' && species.types[0] !== 'Psychic') || - !moves.has('icebeam') || - species.baseStats.spa >= species.baseStats.spd) - ) || - (!counter.get('recovery') && !counter.setupType && - ['healingwish', 'switcheroo', 'trick', 'trickroom'].every(m => !moves.has(m)) && - (['recover', 'roost', 'slackoff', 'softboiled'].some(m => movePool.includes(m))) && - counter.get('Status') - ) || - movePool.includes('milkdrink') || - (movePool.includes('moonlight') && types.size < 2) || - (movePool.includes('stickyweb') && !counter.setupType && !teamDetails.stickyWeb) || - (species.requiredMove && movePool.includes(toID(species.requiredMove))) || - (moves.has('suckerpunch') && counter.get('stab') < species.types.length) || - (movePool.includes('quiverdance') && ['defog', 'uturn', 'stickyweb'].every(m => !moves.has(m)) && - counter.get('Special') < 4) - ) { - cull = true; - } else { - for (const type of types) { - if (runEnforcementChecker(type)) { - cull = true; - } - } - for (const abil of abilities) { - if (runEnforcementChecker(abil)) { - cull = true; - } - } - for (const m of moves) { - if (runEnforcementChecker(m)) { - cull = true; - } - } - } - } - - // Sleep Talk shouldn't be selected without Rest - if (moveid === 'rest' && cull) { - const sleeptalk = movePool.indexOf('sleeptalk'); - if (sleeptalk >= 0) { - if (movePool.length < 2) { - cull = false; - } else { - this.fastPop(movePool, sleeptalk); - } - } - } - - // Remove cull moves from the move list - if (cull && ( - movePool.length - availableHP || - (availableHP && (moveid.startsWith('hiddenpower') || !hasHiddenPower)) - )) { - if ( - move.category !== 'Status' && - !move.damage && !move.flags.charge && - (!moveid.startsWith('hiddenpower') || !availableHP) - ) rejectedPool.push(moveid); - moves.delete(moveid); - if (moveid.startsWith('hiddenpower')) hasHiddenPower = false; - break; - } - - if (cull && rejectedPool.length) { - moves.delete(moveid); - if (moveid.startsWith('hiddenpower')) hasHiddenPower = false; - break; - } - } - } while (moves.size < this.maxMoveCount && (movePool.length || rejectedPool.length)); - - if (hasHiddenPower) { - let hpType; - for (const move of moves) { - if (move.startsWith('hiddenpower')) { - hpType = move.substr(11); - break; - } - } - if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); - const HPivs = this.dex.types.get(hpType).HPivs; - let iv: StatID; - for (iv in HPivs) { - ivs[iv] = HPivs[iv]!; - } - } - - // Moveset modifications - if (moves.has('autotomize') && moves.has('heavyslam')) { - moves.delete('autotomize'); - moves.add('rockpolish'); - } - if (moves.has('raindance') && moves.has('thunderbolt')) { - moves.delete('thunderbolt'); - moves.add('thunder'); - } - - if (species.battleOnly && !species.requiredAbility) { - abilities = new Set(Object.values(this.dex.species.get(species.battleOnly as string).abilities)); - } - const abilityData = [...abilities].map(a => this.dex.abilities.get(a)); - Utils.sortBy(abilityData, abil => -abil.rating); - - if (abilityData.length > 1) { - // Sort abilities by rating with an element of randomness - if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) { - [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]]; - } - if (abilityData[0].rating <= abilityData[1].rating && this.randomChance(1, 2)) { - [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating && this.randomChance(2, 3)) { - [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } - - // Start with the first abiility and work our way through, culling as we go - ability = abilityData[0].name; - - while (this.shouldCullAbility(ability, types, moves, abilities, counter, movePool, teamDetails, species)) { - if (ability === abilityData[0].name && abilityData[1].rating >= 1) { - ability = abilityData[1].name; - } else if (ability === abilityData[1].name && abilityData[2] && abilityData[2].rating >= 1) { - ability = abilityData[2].name; - } else { - // Default to the highest rated ability if all are rejected - ability = abilityData[0].name; - break; - } - } - - if ( - abilities.has('Guts') && - ability !== 'Quick Feet' && - (moves.has('facade') || moves.has('protect') || (moves.has('rest') && moves.has('sleeptalk'))) - ) { - ability = 'Guts'; - } else if (abilities.has('Moxie') && counter.get('Physical') > 3) { - ability = 'Moxie'; - } - if (species.name === 'Ambipom' && !counter.get('technician')) { - // If it doesn't qualify for Technician, Skill Link is useless on it - ability = 'Pickup'; - } else if (species.name === 'Lopunny' && moves.has('switcheroo') && this.randomChance(2, 3)) { - ability = 'Klutz'; - } - if (species.name === 'Altaria') ability = 'Natural Cure'; - } else { - ability = abilityData[0].name; - } - - let item = this.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead); - if (item === undefined) item = this.getMediumPriorityItem(ability, moves, counter, species, false, isLead); - if (item === undefined) { - item = this.getLowPriorityItem(ability, types, moves, abilities, counter, teamDetails, species, isLead); - } - if (item === undefined) item = 'Leftovers'; - - // For Trick / Switcheroo - if (item === 'Leftovers' && types.has('Poison')) { - item = 'Black Sludge'; - } - - const level = this.adjustLevel || data.level || (species.nfe ? 90 : 80); - - // Prepare optimal HP - const srWeakness = this.dex.getEffectiveness('Rock', species); - while (evs.hp > 1) { - const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); - if (moves.has('substitute') && moves.has('reversal')) { - // Reversal users should be able to use four Substitutes - if (hp % 4 > 0) break; - } else if (moves.has('substitute') && (item === 'Petaya Berry' || item === 'Sitrus Berry')) { - // Three Substitutes should activate Petaya Berry for Dedenne - // Two Substitutes should activate Sitrus Berry - if (hp % 4 === 0) break; - } else if (moves.has('bellydrum') && item === 'Sitrus Berry') { - // Belly Drum should activate Sitrus Berry - if (hp % 2 === 0) break; - } else { - // Maximize number of Stealth Rock switch-ins - if (srWeakness <= 0 || hp % (4 / srWeakness) > 0) break; - } - evs.hp -= 4; - } - - // Minimize confusion damage - if (!counter.get('Physical') && !moves.has('copycat') && !moves.has('transform')) { - evs.atk = 0; - ivs.atk = hasHiddenPower ? ivs.atk - 30 : 0; - } - - if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { - evs.spe = 0; - ivs.spe = hasHiddenPower ? ivs.spe - 30 : 0; - } - - return { - name: species.baseSpecies, - species: forme, - gender: species.gender, - moves: Array.from(moves), - ability: ability, - evs: evs, - ivs: ivs, - item: item, - level, - shiny: this.randomChance(1, 1024), - }; - } - - randomFactorySets: {[format: string]: {[species: string]: BattleFactorySpecies}} = require('./factory-sets.json'); - - randomFactorySet( - species: Species, - teamData: RandomTeamsTypes.FactoryTeamDetails, - tier: string - ): RandomTeamsTypes.RandomFactorySet | null { - const id = toID(species.name); - // const flags = this.randomFactorySets[tier][id].flags; - const setList = this.randomFactorySets[tier][id].sets; - - const itemsMax: {[k: string]: number} = {choicespecs: 1, choiceband: 1, choicescarf: 1}; - const movesMax: {[k: string]: number} = { - rapidspin: 1, batonpass: 1, stealthrock: 1, defog: 1, spikes: 1, toxicspikes: 1, - }; - const requiredMoves: {[k: string]: string} = {stealthrock: 'hazardSet', rapidspin: 'hazardClear', defog: 'hazardClear'}; - const weatherAbilitiesRequire: {[k: string]: string} = { - hydration: 'raindance', swiftswim: 'raindance', - leafguard: 'sunnyday', solarpower: 'sunnyday', chlorophyll: 'sunnyday', - sandforce: 'sandstorm', sandrush: 'sandstorm', sandveil: 'sandstorm', - snowcloak: 'hail', - }; - const weatherAbilities = ['drizzle', 'drought', 'snowwarning', 'sandstream']; - - // Build a pool of eligible sets, given the team partners - // Also keep track of sets with moves the team requires - let effectivePool: {set: AnyObject, moveVariants?: number[], itemVariants?: number, abilityVariants?: number}[] = []; - const priorityPool = []; - for (const curSet of setList) { - if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; - - const itemData = this.dex.items.get(curSet.item); - if (teamData.megaCount && teamData.megaCount > 0 && itemData.megaStone) continue; // reject 2+ mega stones - if (itemsMax[itemData.id] && teamData.has[itemData.id] >= itemsMax[itemData.id]) continue; - - const abilityState = this.dex.abilities.get(curSet.ability); - if (weatherAbilitiesRequire[abilityState.id] && teamData.weather !== weatherAbilitiesRequire[abilityState.id]) continue; - if (teamData.weather && weatherAbilities.includes(abilityState.id)) continue; // reject 2+ weather setters - - let reject = false; - let hasRequiredMove = false; - const curSetVariants = []; - for (const move of curSet.moves) { - const variantIndex = this.random(move.length); - const moveId = toID(move[variantIndex]); - if (movesMax[moveId] && teamData.has[moveId] >= movesMax[moveId]) { - reject = true; - break; - } - if (requiredMoves[moveId] && !teamData.has[requiredMoves[moveId]]) { - hasRequiredMove = true; - } - curSetVariants.push(variantIndex); - } - if (reject) continue; - effectivePool.push({set: curSet, moveVariants: curSetVariants}); - if (hasRequiredMove) priorityPool.push({set: curSet, moveVariants: curSetVariants}); - } - if (priorityPool.length) effectivePool = priorityPool; - - if (!effectivePool.length) { - if (!teamData.forceResult) return null; - for (const curSet of setList) { - effectivePool.push({set: curSet}); - } - } - - const setData = this.sample(effectivePool); - const moves = []; - for (const [i, moveSlot] of setData.set.moves.entries()) { - moves.push(setData.moveVariants ? moveSlot[setData.moveVariants[i]] : this.sample(moveSlot)); - } - - return { - name: setData.set.name || species.baseSpecies, - species: setData.set.species, - gender: setData.set.gender || species.gender || (this.randomChance(1, 2) ? 'M' : 'F'), - item: setData.set.item || '', - ability: setData.set.ability || species.abilities['0'], - shiny: typeof setData.set.shiny === 'undefined' ? this.randomChance(1, 1024) : setData.set.shiny, - level: this.adjustLevel || 100, - happiness: typeof setData.set.happiness === 'undefined' ? 255 : setData.set.happiness, - evs: setData.set.evs || {hp: 84, atk: 84, def: 84, spa: 84, spd: 84, spe: 84}, - ivs: setData.set.ivs || {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, - nature: setData.set.nature || 'Serious', - moves: moves, - }; - } - - randomFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { - this.enforceNoDirectCustomBanlistChanges(); - - const forceResult = (depth >= 12); - - // The teams generated depend on the tier choice in such a way that - // no exploitable information is leaked from rolling the tier in getTeam(p1). - if (!this.factoryTier) this.factoryTier = this.sample(['Uber', 'OU', 'UU', 'RU', 'NU', 'PU']); - const chosenTier = this.factoryTier; - - const pokemon = []; - - const pokemonPool = Object.keys(this.randomFactorySets[chosenTier]); - - const teamData: TeamData = { - typeCount: {}, typeComboCount: {}, baseFormes: {}, megaCount: 0, has: {}, forceResult, - weaknesses: {}, resistances: {}, - }; - const requiredMoveFamilies = ['hazardSet', 'hazardClear']; - const requiredMoves: {[k: string]: string} = {stealthrock: 'hazardSet', rapidspin: 'hazardClear', defog: 'hazardClear'}; - const weatherAbilitiesSet: {[k: string]: string} = { - drizzle: 'raindance', drought: 'sunnyday', snowwarning: 'hail', sandstream: 'sandstorm', - }; - const resistanceAbilities: {[k: string]: string[]} = { - dryskin: ['Water'], waterabsorb: ['Water'], stormdrain: ['Water'], - flashfire: ['Fire'], heatproof: ['Fire'], - lightningrod: ['Electric'], motordrive: ['Electric'], voltabsorb: ['Electric'], - sapsipper: ['Grass'], - thickfat: ['Ice', 'Fire'], - levitate: ['Ground'], - }; - - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - if (!species.exists) continue; - - const speciesFlags = this.randomFactorySets[chosenTier][species.id].flags; - - // Limit to one of each species (Species Clause) - if (teamData.baseFormes[species.baseSpecies]) continue; - - // Limit the number of Megas to one - if (!teamData.megaCount) teamData.megaCount = 0; - if (teamData.megaCount >= 1 && speciesFlags.megaOnly) continue; - - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - - // Limit 2 of any type - const types = species.types; - let skip = false; - for (const type of types) { - if (teamData.typeCount[type] >= 2 * limitFactor && this.randomChance(4, 5)) { - skip = true; - break; - } - } - if (skip) continue; - - const set = this.randomFactorySet(species, teamData, chosenTier); - if (!set) continue; - - // Limit 1 of any type combination - let typeCombo = types.slice().sort().join(); - if (set.ability === 'Drought' || set.ability === 'Drizzle') { - // Drought and Drizzle don't count towards the type combo limit - typeCombo = set.ability; - } - if (teamData.typeComboCount[typeCombo] >= 1 * limitFactor) continue; - - // Okay, the set passes, add it to our team - pokemon.push(set); - - // Now that our Pokemon has passed all checks, we can update team data: - for (const type of types) { - if (type in teamData.typeCount) { - teamData.typeCount[type]++; - } else { - teamData.typeCount[type] = 1; - } - } - teamData.typeComboCount[typeCombo] = (teamData.typeComboCount[typeCombo] + 1) || 1; - - teamData.baseFormes[species.baseSpecies] = 1; - - const itemData = this.dex.items.get(set.item); - if (itemData.megaStone) teamData.megaCount++; - if (itemData.id in teamData.has) { - teamData.has[itemData.id]++; - } else { - teamData.has[itemData.id] = 1; - } - - const abilityState = this.dex.abilities.get(set.ability); - if (abilityState.id in weatherAbilitiesSet) { - teamData.weather = weatherAbilitiesSet[abilityState.id]; - } - - for (const move of set.moves) { - const moveId = toID(move); - if (moveId in teamData.has) { - teamData.has[moveId]++; - } else { - teamData.has[moveId] = 1; - } - if (moveId in requiredMoves) { - teamData.has[requiredMoves[moveId]] = 1; - } - } - - for (const typeName of this.dex.types.names()) { - // Cover any major weakness (3+) with at least one resistance - if (teamData.resistances[typeName] >= 1) continue; - if (resistanceAbilities[abilityState.id]?.includes(typeName) || !this.dex.getImmunity(typeName, types)) { - // Heuristic: assume that Pokemon with these abilities don't have (too) negative typing. - teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; - if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; - continue; - } - const typeMod = this.dex.getEffectiveness(typeName, types); - if (typeMod < 0) { - teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; - if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; - } else if (typeMod > 0) { - teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; - } - } - } - if (pokemon.length < this.maxTeamSize) return this.randomFactoryTeam(side, ++depth); - - // Quality control - if (!teamData.forceResult) { - for (const requiredFamily of requiredMoveFamilies) { - if (!teamData.has[requiredFamily]) return this.randomFactoryTeam(side, ++depth); - } - for (const type in teamData.weaknesses) { - if (teamData.weaknesses[type] >= 3) return this.randomFactoryTeam(side, ++depth); - } - } - - return pokemon; - } -} - -export default RandomGen6Teams; diff --git a/data/mods/gen6/typechart.ts b/data/mods/gen6/typechart.ts index 9ea29b6bb00e..e267f56e4509 100644 --- a/data/mods/gen6/typechart.ts +++ b/data/mods/gen6/typechart.ts @@ -1,4 +1,4 @@ -export const TypeChart: {[k: string]: ModdedTypeData} = { +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { dark: { inherit: true, damageTaken: { diff --git a/data/mods/gen6xy/formats-data.ts b/data/mods/gen6xy/formats-data.ts index 6d6becbc0fc4..959b35b549db 100644 --- a/data/mods/gen6xy/formats-data.ts +++ b/data/mods/gen6xy/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { beedrillmega: { isNonstandard: "Future", tier: "Illegal", diff --git a/data/mods/gen6xy/items.ts b/data/mods/gen6xy/items.ts index 989b05429628..6f0871f2a456 100644 --- a/data/mods/gen6xy/items.ts +++ b/data/mods/gen6xy/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { altarianite: { inherit: true, isNonstandard: "Future", diff --git a/data/mods/gen6xy/learnsets.ts b/data/mods/gen6xy/learnsets.ts index cd5270584d65..63b66371c538 100644 --- a/data/mods/gen6xy/learnsets.ts +++ b/data/mods/gen6xy/learnsets.ts @@ -1,4 +1,4 @@ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { bulbasaur: { inherit: true, learnset: { @@ -31885,14 +31885,14 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { calmmind: ["6M", "5M", "4M", "3M"], chargebeam: ["6M", "5M", "4M"], confide: ["6M"], - confusion: ["6L1", "6S18", "6S20", "6S21", "5L1", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], - cosmicpower: ["6L60", "6S19", "5L60", "5S15", "4L60", "3L45"], + confusion: ["6L1", "6S10", "6S12", "6S13", "5L1", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + cosmicpower: ["6L60", "6S11", "5L60", "5S7", "4L60", "3L45"], dazzlinggleam: ["6M"], defensecurl: ["3T"], doomdesire: ["6L70", "5L70", "4L70", "3L50"], doubleedge: ["6L40", "5L40", "4L40", "3T", "3L35"], doubleteam: ["6M", "5M", "4M", "3M"], - dracometeor: ["5S14", "4S12"], + dracometeor: ["5S6", "4S4"], drainpunch: ["5T", "4M"], dreameater: ["6M", "5M", "4M", "3T"], dynamicpunch: ["3T"], @@ -31903,15 +31903,15 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { flash: ["6M", "5M", "4M", "3M"], flashcannon: ["6M", "5M", "4M"], fling: ["6M", "5M", "4M"], - followme: ["5S14"], + followme: ["5S6"], frustration: ["6M", "5M", "4M", "3M"], futuresight: ["6L55", "5L55", "4L55", "3L40"], gigaimpact: ["6M", "5M", "4M"], grassknot: ["6M", "5M", "4M"], gravity: ["6L45", "5T", "5L45", "4T", "4L45"], headbutt: ["4T"], - healingwish: ["6L50", "6S17", "5L50", "5S13", "5S15", "5S16", "4L50"], - helpinghand: ["6L15", "6S18", "5T", "5L15", "4T", "4L15", "3L15", "3S10"], + healingwish: ["6L50", "6S9", "5L50", "5S5", "5S7", "5S8", "4L50"], + helpinghand: ["6L15", "6S10", "5T", "5L15", "4T", "4L15", "3L15", "3S2"], hiddenpower: ["6M", "5M", "4M", "3M"], hyperbeam: ["6M", "5M", "4M", "3M"], icepunch: ["5T", "4T", "3T"], @@ -31922,24 +31922,24 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { lightscreen: ["6M", "5M", "4M", "3M"], magiccoat: ["5T", "4T"], magicroom: ["5T"], - meteormash: ["5S13", "5S14", "5S15"], + meteormash: ["5S5", "5S6", "5S7"], metronome: ["3T"], mimic: ["3T"], - moonblast: ["6S17"], + moonblast: ["6S9"], mudslap: ["4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], poweruppunch: ["6M"], protect: ["6M", "5M", "4M", "3M"], - psychic: ["6M", "6L20", "5M", "5L20", "5S13", "4M", "4L20", "3M", "3L20", "3S10"], + psychic: ["6M", "6L20", "5M", "5L20", "5S5", "4M", "4L20", "3M", "3L20", "3S2"], psychup: ["6M", "5M", "4M", "3T"], psyshock: ["6M", "5M"], raindance: ["6M", "5M", "4M", "3M"], recycle: ["5T", "4M"], reflect: ["6M", "5M", "4M", "3M"], - refresh: ["6L25", "5L25", "4L25", "3L25", "3S10"], - rest: ["6M", "6L5", "6S21", "5M", "5L5", "4M", "4L5", "4S11", "4S12", "3M", "3L5", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9", "3S10"], - return: ["6M", "6S18", "5M", "5S16", "4M", "3M"], + refresh: ["6L25", "5L25", "4L25", "3L25", "3S2"], + rest: ["6M", "6L5", "6S13", "5M", "5L5", "4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], + return: ["6M", "6S10", "5M", "5S8", "4M", "3M"], round: ["6M", "5M"], safeguard: ["6M", "5M", "4M", "3M"], sandstorm: ["6M", "5M", "4M", "3M"], @@ -31954,7 +31954,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { substitute: ["6M", "5M", "4M", "3T"], sunnyday: ["6M", "5M", "4M", "3M"], swagger: ["6M", "5M", "4M", "3T"], - swift: ["6L10", "6S17", "6S20", "5L10", "5S13", "5S16", "4T", "4L10", "3T", "3L10"], + swift: ["6L10", "6S9", "6S12", "5L10", "5S5", "5S8", "4T", "4L10", "3T", "3L10"], telekinesis: ["5M"], thunder: ["6M", "5M", "4M", "3M"], thunderbolt: ["6M", "5M", "4M", "3M"], @@ -31966,7 +31966,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { uproar: ["5T", "4T"], uturn: ["6M", "5M", "4M"], waterpulse: ["4M", "3M"], - wish: ["6L1", "6S17", "6S18", "6S19", "6S20", "6S21", "5L1", "5S14", "5S15", "5S16", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], + wish: ["6L1", "6S9", "6S10", "6S11", "6S12", "6S13", "5L1", "5S6", "5S7", "5S8", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], zenheadbutt: ["6L35", "5T", "5L35", "4T", "4L35"], }, }, diff --git a/data/mods/gen6xy/moves.ts b/data/mods/gen6xy/moves.ts index f2017d6446e9..6f0e1aa8dbc2 100644 --- a/data/mods/gen6xy/moves.ts +++ b/data/mods/gen6xy/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { dragonascent: { inherit: true, isNonstandard: "Future", diff --git a/data/mods/gen6xy/pokedex.ts b/data/mods/gen6xy/pokedex.ts index 579941112037..228ab61532e9 100644 --- a/data/mods/gen6xy/pokedex.ts +++ b/data/mods/gen6xy/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { pikachu: { inherit: true, formeOrder: ["Pikachu"], diff --git a/data/mods/gen7/abilities.ts b/data/mods/gen7/abilities.ts index 13cdad8bd6a4..6d57c8da206d 100644 --- a/data/mods/gen7/abilities.ts +++ b/data/mods/gen7/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { disguise: { inherit: true, onDamage(damage, target, source, effect) { @@ -24,21 +24,17 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, darkaura: { inherit: true, - isBreakable: true, + flags: {breakable: 1}, }, fairyaura: { inherit: true, - isBreakable: true, + flags: {breakable: 1}, }, innerfocus: { inherit: true, rating: 1, onTryBoost() {}, }, - intimidate: { - inherit: true, - rating: 4, - }, moody: { inherit: true, onResidual(pokemon) { diff --git a/data/mods/gen7/formats-data.ts b/data/mods/gen7/formats-data.ts index 2237c5de289d..4fc2cef0cb26 100644 --- a/data/mods/gen7/formats-data.ts +++ b/data/mods/gen7/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, @@ -52,7 +52,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, weedle: { @@ -62,7 +62,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beedrill: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, beedrillmega: { @@ -76,7 +76,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, pidgeot: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pidgeotmega: { @@ -90,67 +90,68 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, raticate: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, raticatealola: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, raticatealolatotem: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, spearow: { tier: "LC", }, fearow: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, ekans: { tier: "LC", }, arbok: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pichu: { tier: "LC", }, pikachu: { - tier: "NFE", + tier: "ZU", + doublesTier: "(DUU)", }, pikachuoriginal: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachuhoenn: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachusinnoh: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachuunova: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachukalos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachualola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pikachupartner: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, raichu: { - tier: "(PU)", + tier: "ZU", doublesTier: "DUU", }, raichualola: { @@ -164,7 +165,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sandslash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, sandslashalola: { @@ -223,7 +224,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, wigglytuff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, zubat: { @@ -248,14 +249,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, bellossom: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, paras: { tier: "LC", }, parasect: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, venonat: { @@ -272,7 +273,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dugtrio: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, dugtrioalola: { @@ -286,7 +287,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, persian: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, persianalola: { @@ -297,7 +298,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, golduck: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mankey: { @@ -321,18 +322,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, poliwrath: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, politoed: { - tier: "(PU)", + tier: "ZU", doublesTier: "DOU", }, abra: { tier: "LC", }, kadabra: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", }, alakazam: { tier: "UUBL", @@ -382,18 +384,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, golem: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, golemalola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, ponyta: { tier: "LC", }, rapidash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, slowpoke: { @@ -423,7 +425,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, farfetchd: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, doduo: { @@ -437,7 +439,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dewgong: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, grimer: { @@ -447,7 +449,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, muk: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mukalola: { @@ -491,7 +493,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, hypno: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, krabby: { @@ -505,14 +507,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, electrode: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, exeggcute: { tier: "LC", }, exeggutor: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, exeggutoralola: { @@ -523,7 +525,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, marowak: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, marowakalola: { @@ -553,7 +555,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, lickilicky: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, koffing: { @@ -615,7 +617,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, seaking: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, staryu: { @@ -629,7 +631,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, mrmime: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, scyther: { @@ -648,7 +650,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, jynx: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, elekid: { @@ -658,7 +660,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, electivire: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, magby: { @@ -672,7 +674,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, pinsir: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pinsirmega: { @@ -695,11 +697,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, lapras: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, ditto: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, eevee: { @@ -714,7 +716,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, flareon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, espeon: { @@ -726,11 +728,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, leafeon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, glaceon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, porygon: { @@ -818,7 +820,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, meganium: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cyndaquil: { @@ -845,28 +847,28 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, furret: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, hoothoot: { tier: "LC", }, noctowl: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, ledyba: { tier: "LC", }, ledian: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, spinarak: { tier: "LC", }, ariados: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, chinchou: { @@ -900,7 +902,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, ampharos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, ampharosmega: { @@ -921,7 +923,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sudowoodo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, hoppip: { @@ -931,7 +933,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, jumpluff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, aipom: { @@ -945,7 +947,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sunflora: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, yanma: { @@ -977,18 +979,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, unown: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, wynaut: { tier: "LC", }, wobbuffet: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, girafarig: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pineco: { @@ -999,7 +1001,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, dunsparce: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gligar: { @@ -1014,7 +1016,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, granbull: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, qwilfish: { @@ -1022,7 +1024,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, shuckle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, heracross: { @@ -1045,14 +1047,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, ursaring: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, slugma: { tier: "LC", }, magcargo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, swinub: { @@ -1067,18 +1069,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, corsola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, remoraid: { tier: "LC", }, octillery: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, delibird: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mantyke: { @@ -1111,11 +1113,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, stantler: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, smeargle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, miltank: { @@ -1178,7 +1180,8 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, combusken: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", }, blaziken: { tier: "Uber", @@ -1206,7 +1209,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, mightyena: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, zigzagoon: { @@ -1223,14 +1226,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beautifly: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cascoon: { tier: "NFE", }, dustox: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lotad: { @@ -1250,7 +1253,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, shiftry: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, taillow: { @@ -1293,7 +1296,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, masquerain: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, shroomish: { @@ -1310,18 +1313,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, slaking: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, nincada: { tier: "LC", }, ninjask: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, shedinja: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, whismur: { @@ -1345,14 +1348,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, probopass: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, skitty: { tier: "LC", }, delcatty: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, sableye: { @@ -1364,7 +1367,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, mawile: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mawilemega: { @@ -1408,19 +1411,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, plusle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, minun: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, volbeat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, illumise: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, budew: { @@ -1438,7 +1441,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, swalot: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, carvanha: { @@ -1456,14 +1459,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, wailord: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, numel: { tier: "LC", }, camerupt: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cameruptmega: { @@ -1471,18 +1474,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, torkoal: { - tier: "(PU)", + tier: "ZU", doublesTier: "DUU", }, spoink: { tier: "LC", }, grumpig: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, spinda: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, trapinch: { @@ -1499,14 +1502,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, cacturne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, swablu: { tier: "LC", }, altaria: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, altariamega: { @@ -1518,22 +1521,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, seviper: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lunatone: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, solrock: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, barboach: { tier: "LC", }, whiscash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, corphish: { @@ -1554,14 +1557,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, cradily: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, anorith: { tier: "LC", }, armaldo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, feebas: { @@ -1572,7 +1575,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, castform: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, castformsunny: { @@ -1582,14 +1585,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { castformsnowy: { }, kecleon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, shuppet: { tier: "LC", }, banette: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, banettemega: { @@ -1600,21 +1603,22 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dusclops: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", }, dusknoir: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, tropius: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, chingling: { tier: "LC", }, chimecho: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, absol: { @@ -1629,7 +1633,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, glalie: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, glaliemega: { @@ -1647,26 +1651,26 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, walrein: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, clamperl: { tier: "LC", }, huntail: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gorebyss: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, relicanth: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, luvdisc: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, bagon: { @@ -1702,7 +1706,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, regice: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, registeel: { @@ -1776,7 +1780,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, torterra: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, chimchar: { @@ -1813,14 +1817,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, bibarel: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, kricketot: { tier: "LC", }, kricketune: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, shinx: { @@ -1830,65 +1834,65 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, luxray: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cranidos: { tier: "LC", }, rampardos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, shieldon: { tier: "LC", }, bastiodon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, burmy: { tier: "LC", }, wormadam: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, wormadamsandy: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, wormadamtrash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mothim: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, combee: { tier: "LC", }, vespiquen: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pachirisu: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, buizel: { tier: "LC", }, floatzel: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cherubi: { tier: "LC", }, cherrim: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cherrimsunshine: { @@ -1904,14 +1908,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, drifblim: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, buneary: { tier: "LC", }, lopunny: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lopunnymega: { @@ -1922,7 +1926,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, purugly: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, stunky: { @@ -1933,14 +1937,15 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, bronzor: { - tier: "LC", + tier: "ZU", + doublesTier: "LC", }, bronzong: { tier: "RU", doublesTier: "DUU", }, chatot: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, spiritomb: { @@ -1994,14 +1999,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, carnivine: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, finneon: { tier: "LC", }, lumineon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, snover: { @@ -2032,7 +2037,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, rotomfan: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, rotommow: { @@ -2064,7 +2069,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, regigigas: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, giratina: { @@ -2078,7 +2083,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, phione: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, manaphy: { @@ -2173,7 +2178,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, watchog: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lillipup: { @@ -2197,21 +2202,21 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, simisage: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pansear: { tier: "LC", }, simisear: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, panpour: { tier: "LC", }, simipour: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, munna: { @@ -2228,14 +2233,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, unfezant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, blitzle: { tier: "LC", }, zebstrika: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, roggenrola: { @@ -2252,7 +2257,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, swoobat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, drilbur: { @@ -2292,7 +2297,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, throh: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, sawk: { @@ -2306,7 +2311,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, leavanny: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, venipede: { @@ -2334,11 +2339,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, basculin: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, basculinbluestriped: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, sandile: { @@ -2359,14 +2364,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, maractus: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, dwebble: { tier: "LC", }, crustle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, scraggy: { @@ -2429,7 +2434,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, gothitelle: { - tier: "(PU)", + tier: "ZU", doublesTier: "DOU", }, solosis: { @@ -2446,7 +2451,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, swanna: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, vanillite: { @@ -2463,11 +2468,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, sawsbuck: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, emolga: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, karrablast: { @@ -2534,7 +2539,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, beheeyem: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, litwick: { @@ -2561,7 +2566,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, beartic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, cryogonal: { @@ -2576,7 +2581,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, stunfisk: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, mienfoo: { @@ -2598,14 +2603,15 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, pawniard: { - tier: "LC", + tier: "ZU", + doublesTier: "LC", }, bisharp: { tier: "UU", doublesTier: "DUU", }, bouffalant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, rufflet: { @@ -2623,7 +2629,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, heatmor: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, durant: { @@ -2767,7 +2773,12 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "OU", doublesTier: "DUU", }, + greninjabond: { + tier: "OU", + doublesTier: "DUU", + }, greninjaash: { + isNonstandard: null, tier: "OU", doublesTier: "DUU", }, @@ -2831,7 +2842,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gogoat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pancham: { @@ -2842,18 +2853,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, furfrou: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, espurr: { tier: "LC", }, meowstic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, meowsticf: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, honedge: { @@ -2941,11 +2952,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, dedenne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, carbink: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, goomy: { @@ -2966,7 +2977,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, trevenant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, pumpkaboo: { @@ -2982,26 +2993,26 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gourgeist: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gourgeistsmall: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gourgeistlarge: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gourgeistsuper: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, bergmite: { tier: "LC", }, avalugg: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, noibat: { @@ -3088,18 +3099,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, toucannon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, yungoos: { tier: "LC", }, gumshoos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, gumshoostotem: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, grubbin: { @@ -3120,11 +3131,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, crabominable: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, oricorio: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, oricoriopompom: { @@ -3132,7 +3143,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, oricoriopau: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, oricoriosensu: { @@ -3161,7 +3172,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, lycanrocmidnight: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, lycanrocdusk: { @@ -3169,13 +3180,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, wishiwashi: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, wishiwashischool: { }, mareanie: { - tier: "LC", + tier: "ZU", + doublesTier: "LC", }, toxapex: { tier: "OU", @@ -3214,7 +3226,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, shiinotic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, salandit: { @@ -3250,7 +3262,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, oranguru: { - tier: "(PU)", + tier: "ZU", doublesTier: "DUU", }, passimian: { @@ -3272,31 +3284,31 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, pyukumuku: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, typenull: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "NFE", }, silvally: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallybug: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallydark: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallydragon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyelectric: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyfairy: { @@ -3304,15 +3316,15 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, silvallyfighting: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyfire: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyflying: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyghost: { @@ -3320,27 +3332,27 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, silvallygrass: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyground: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyice: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallypoison: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallypsychic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallyrock: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, silvallysteel: { @@ -3348,7 +3360,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "(DUU)", }, silvallywater: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, minior: { @@ -3357,11 +3369,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { }, miniormeteor: {}, komala: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", }, turtonator: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", }, togedemaru: { diff --git a/data/mods/gen7/items.ts b/data/mods/gen7/items.ts index 9df136abc2eb..ba2a647e3599 100644 --- a/data/mods/gen7/items.ts +++ b/data/mods/gen7/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { abomasite: { inherit: true, isNonstandard: null, @@ -60,6 +60,12 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: "Unobtainable", }, + bignugget: { + inherit: true, + fling: { + basePower: 30, + }, + }, blastoisinite: { inherit: true, isNonstandard: null, @@ -74,7 +80,7 @@ export const Items: {[k: string]: ModdedItemData} = { }, blukberry: { inherit: true, - isNonstandard: "Unobtainable", + isNonstandard: null, }, buggem: { inherit: true, @@ -445,7 +451,7 @@ export const Items: {[k: string]: ModdedItemData} = { }, pinapberry: { inherit: true, - isNonstandard: "Unobtainable", + isNonstandard: null, }, pinsirite: { inherit: true, diff --git a/data/mods/gen7/moves.ts b/data/mods/gen7/moves.ts index 850efdb363bb..bb1b097a9534 100644 --- a/data/mods/gen7/moves.ts +++ b/data/mods/gen7/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { "10000000voltthunderbolt": { inherit: true, isNonstandard: null, @@ -153,7 +153,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, dive: { inherit: true, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1}, + flags: { + contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, + }, }, dizzypunch: { inherit: true, @@ -167,6 +169,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, + dragonhammer: { + inherit: true, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + }, dragonrage: { inherit: true, isNonstandard: null, @@ -497,7 +503,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, howl: { inherit: true, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { atk: 1, }, @@ -642,12 +648,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - metronome: { - inherit: true, - noMetronome: [ - "After You", "Assist", "Baneful Bunker", "Beak Blast", "Belch", "Bestow", "Celebrate", "Chatter", "Copycat", "Counter", "Covet", "Crafty Shield", "Destiny Bond", "Detect", "Diamond Storm", "Dragon Ascent", "Endure", "Feint", "Fleur Cannon", "Focus Punch", "Follow Me", "Freeze Shock", "Helping Hand", "Hold Hands", "Hyperspace Fury", "Hyperspace Hole", "Ice Burn", "Instruct", "King's Shield", "Light of Ruin", "Mat Block", "Me First", "Metronome", "Mimic", "Mind Blown", "Mirror Coat", "Mirror Move", "Nature Power", "Origin Pulse", "Photon Geyser", "Plasma Fists", "Precipice Blades", "Protect", "Quash", "Quick Guard", "Rage Powder", "Relic Song", "Secret Sword", "Shell Trap", "Sketch", "Sleep Talk", "Snarl", "Snatch", "Snore", "Spectral Thief", "Spiky Shield", "Spotlight", "Steam Eruption", "Struggle", "Switcheroo", "Techno Blast", "Thief", "Thousand Arrows", "Thousand Waves", "Transform", "Trick", "V-create", "Wide Guard", - ], - }, miracleeye: { inherit: true, isNonstandard: null, @@ -660,6 +660,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, + moongeistbeam: { + inherit: true, + flags: {protect: 1, mirror: 1, metronome: 1}, + }, moonlight: { inherit: true, onHit(pokemon) { @@ -724,6 +728,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, + naturesmadness: { + inherit: true, + flags: {protect: 1, mirror: 1, metronome: 1}, + }, needlearm: { inherit: true, isNonstandard: null, @@ -750,7 +758,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, pollenpuff: { inherit: true, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, onHit(target, source) { if (source.isAlly(target)) { if (!this.heal(Math.floor(target.baseMaxhp * 0.5))) { @@ -1024,6 +1032,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, + sunsteelstrike: { + inherit: true, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + }, supersonicskystrike: { inherit: true, isNonstandard: null, diff --git a/data/mods/gen7/pokedex.ts b/data/mods/gen7/pokedex.ts index f94f6ec63005..b4662fc1b2e3 100644 --- a/data/mods/gen7/pokedex.ts +++ b/data/mods/gen7/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { pikachuoriginal: { inherit: true, abilities: {0: "Static"}, diff --git a/data/mods/gen7/random-data.json b/data/mods/gen7/random-data.json deleted file mode 100644 index 250feef20731..000000000000 --- a/data/mods/gen7/random-data.json +++ /dev/null @@ -1,2882 +0,0 @@ -{ - "venusaur": { - "level": 84, - "moves": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "powerwhip", "protect", "sleeppowder", "sludgebomb"] - }, - "venusaurmega": { - "level": 82, - "moves": ["earthquake", "gigadrain", "hiddenpowerfire", "sleeppowder", "sludgebomb", "synthesis"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "powerwhip", "protect", "sleeppowder", "sludgebomb"] - }, - "charizard": { - "level": 87, - "moves": ["airslash", "earthquake", "fireblast", "holdhands", "roost"], - "doublesMoves": ["airslash", "fireblast", "focusblast", "heatwave", "holdhands", "protect", "roost"] - }, - "charizardmegax": { - "level": 80, - "moves": ["dragonclaw", "dragondance", "earthquake", "flareblitz", "roost", "willowisp"], - "doublesMoves": ["dragonclaw", "dragondance", "flareblitz", "rockslide", "roost", "thunderpunch"] - }, - "charizardmegay": { - "level": 80, - "moves": ["airslash", "dragonpulse", "fireblast", "focusblast", "roost", "solarbeam"], - "doublesMoves": ["airslash", "fireblast", "focusblast", "heatwave", "protect", "solarbeam"] - }, - "blastoise": { - "level": 86, - "moves": ["dragontail", "icebeam", "rapidspin", "roar", "scald", "toxic"], - "doublesMoves": ["fakeout", "followme", "icywind", "muddywater", "protect", "rapidspin", "scald"] - }, - "blastoisemega": { - "level": 84, - "moves": ["aurasphere", "darkpulse", "icebeam", "rapidspin", "waterpulse"], - "doublesMoves": ["aurasphere", "darkpulse", "fakeout", "icebeam", "muddywater", "protect", "waterpulse"] - }, - "butterfree": { - "level": 88, - "moves": ["airslash", "bugbuzz", "energyball", "quiverdance", "sleeppowder"], - "doublesMoves": ["airslash", "bugbuzz", "protect", "quiverdance", "sleeppowder"] - }, - "beedrill": { - "level": 89, - "moves": ["endeavor", "knockoff", "poisonjab", "tailwind", "toxicspikes", "uturn"], - "doublesMoves": ["knockoff", "poisonjab", "protect", "tailwind", "toxicspikes", "uturn"] - }, - "beedrillmega": { - "level": 81, - "moves": ["drillrun", "knockoff", "poisonjab", "swordsdance", "uturn", "xscissor"], - "doublesMoves": ["drillrun", "knockoff", "poisonjab", "protect", "uturn", "xscissor"] - }, - "pidgeot": { - "level": 88, - "moves": ["bravebird", "defog", "heatwave", "return", "roost", "uturn"], - "doublesMoves": ["bravebird", "doubleedge", "heatwave", "protect", "return", "tailwind", "uturn"] - }, - "pidgeotmega": { - "level": 81, - "moves": ["defog", "heatwave", "hurricane", "roost", "uturn"], - "doublesMoves": ["heatwave", "hurricane", "protect", "tailwind", "uturn"] - }, - "raticate": { - "level": 88, - "moves": ["facade", "protect", "stompingtantrum", "suckerpunch", "swordsdance", "uturn"], - "doublesMoves": ["crunch", "facade", "protect", "stompingtantrum", "suckerpunch", "uturn"] - }, - "raticatealola": { - "level": 88, - "moves": ["doubleedge", "knockoff", "return", "suckerpunch", "swordsdance"], - "doublesMoves": ["doubleedge", "knockoff", "protect", "suckerpunch", "uturn"] - }, - "fearow": { - "level": 88, - "moves": ["doubleedge", "drillpeck", "drillrun", "pursuit", "return", "uturn"], - "doublesMoves": ["doubleedge", "drillpeck", "drillrun", "protect", "quickattack", "return", "uturn"] - }, - "arbok": { - "level": 88, - "moves": ["aquatail", "coil", "earthquake", "gunkshot", "rest", "suckerpunch"], - "doublesMoves": ["aquatail", "coil", "gunkshot", "protect", "stompingtantrum", "suckerpunch"] - }, - "pikachu": { - "level": 91, - "moves": ["extremespeed", "grassknot", "hiddenpowerice", "knockoff", "surf", "voltswitch", "volttackle"], - "doublesMoves": ["encore", "fakeout", "grassknot", "hiddenpowerice", "knockoff", "protect", "voltswitch", "volttackle"] - }, - "raichu": { - "level": 88, - "moves": ["encore", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], - "doublesMoves": ["encore", "fakeout", "focusblast", "grassknot", "hiddenpowerice", "protect", "thunderbolt", "voltswitch"] - }, - "raichualola": { - "level": 87, - "moves": ["focusblast", "nastyplot", "psyshock", "surf", "thunderbolt", "voltswitch"], - "doublesMoves": ["fakeout", "grassknot", "nastyplot", "protect", "psyshock", "thunderbolt", "voltswitch"] - }, - "sandslash": { - "level": 89, - "moves": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "toxic"], - "doublesMoves": ["earthquake", "knockoff", "protect", "stealthrock", "stoneedge", "swordsdance"] - }, - "sandslashalola": { - "level": 89, - "moves": ["earthquake", "iciclecrash", "ironhead", "knockoff", "rapidspin", "stealthrock", "swordsdance"], - "doublesMoves": ["drillrun", "iciclecrash", "ironhead", "protect", "swordsdance"] - }, - "nidoqueen": { - "level": 84, - "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"], - "doublesMoves": ["earthpower", "icebeam", "protect", "sludgebomb", "stealthrock"] - }, - "nidoking": { - "level": 82, - "moves": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"], - "doublesMoves": ["earthpower", "fireblast", "icebeam", "protect", "sludgebomb"] - }, - "clefable": { - "level": 80, - "moves": ["calmmind", "fireblast", "moonblast", "softboiled", "stealthrock", "thunderwave"], - "doublesMoves": ["dazzlinggleam", "fireblast", "followme", "helpinghand", "moonblast", "protect", "softboiled", "thunderwave"] - }, - "ninetales": { - "level": 84, - "moves": ["fireblast", "hiddenpowerice", "nastyplot", "solarbeam", "substitute", "willowisp"], - "doublesMoves": ["fireblast", "heatwave", "nastyplot", "protect", "solarbeam", "willowisp"] - }, - "ninetalesalola": { - "level": 82, - "moves": ["auroraveil", "blizzard", "freezedry", "hiddenpowerfire", "moonblast", "nastyplot"], - "doublesMoves": ["auroraveil", "blizzard", "encore", "freezedry", "hiddenpowerfire", "moonblast", "protect"] - }, - "wigglytuff": { - "level": 88, - "moves": ["dazzlinggleam", "fireblast", "healbell", "lightscreen", "reflect", "stealthrock"], - "doublesMoves": ["dazzlinggleam", "fireblast", "hypervoice", "protect", "stealthrock", "thunderwave"] - }, - "vileplume": { - "level": 86, - "moves": ["aromatherapy", "gigadrain", "hiddenpowerfire", "sleeppowder", "sludgebomb", "strengthsap"], - "doublesMoves": ["energyball", "hiddenpowerfire", "protect", "sleeppowder", "sludgebomb", "strengthsap"] - }, - "parasect": { - "level": 90, - "moves": ["knockoff", "leechlife", "leechseed", "seedbomb", "spore", "substitute"], - "doublesMoves": ["knockoff", "leechlife", "leechseed", "protect", "ragepowder", "seedbomb", "spore", "wideguard"] - }, - "venomoth": { - "level": 84, - "moves": ["bugbuzz", "quiverdance", "sleeppowder", "sludgebomb", "substitute"], - "doublesMoves": ["bugbuzz", "protect", "quiverdance", "ragepowder", "sleeppowder", "sludgebomb"] - }, - "dugtrio": { - "level": 82, - "moves": ["earthquake", "reversal", "stealthrock", "stoneedge", "substitute", "suckerpunch"], - "doublesMoves": ["earthquake", "protect", "rockslide", "stoneedge", "suckerpunch"] - }, - "dugtrioalola": { - "level": 88, - "moves": ["earthquake", "ironhead", "stealthrock", "stoneedge", "substitute", "suckerpunch", "toxic"], - "doublesMoves": ["earthquake", "ironhead", "protect", "rockslide", "stoneedge", "suckerpunch"] - }, - "persian": { - "level": 88, - "moves": ["fakeout", "knockoff", "return", "taunt", "uturn"], - "doublesMoves": ["fakeout", "hypnosis", "knockoff", "protect", "return", "taunt", "uturn"] - }, - "persianalola": { - "level": 87, - "moves": ["darkpulse", "hypnosis", "nastyplot", "powergem", "thunderbolt"], - "doublesMoves": ["fakeout", "foulplay", "hiddenpowerfighting", "icywind", "partingshot", "protect", "snarl"] - }, - "golduck": { - "level": 88, - "moves": ["calmmind", "encore", "hydropump", "icebeam", "psyshock", "scald", "substitute"], - "doublesMoves": ["calmmind", "encore", "focusblast", "hydropump", "icebeam", "protect", "scald"] - }, - "primeape": { - "level": 88, - "moves": ["closecombat", "earthquake", "gunkshot", "icepunch", "stoneedge", "uturn"], - "doublesMoves": ["closecombat", "icepunch", "poisonjab", "protect", "rockslide", "stompingtantrum", "stoneedge", "taunt", "uturn"] - }, - "arcanine": { - "level": 84, - "moves": ["closecombat", "extremespeed", "flareblitz", "morningsun", "roar", "toxic", "wildcharge", "willowisp"], - "doublesMoves": ["closecombat", "extremespeed", "flareblitz", "protect", "snarl", "wildcharge", "willowisp"] - }, - "poliwrath": { - "level": 88, - "moves": ["circlethrow", "focusblast", "hydropump", "icepunch", "raindance", "rest", "scald", "sleeptalk"], - "doublesMoves": ["circlethrow", "encore", "icywind", "protect", "scald", "superpower", "toxic"] - }, - "alakazam": { - "level": 82, - "moves": ["focusblast", "hiddenpowerfire", "psychic", "psyshock", "shadowball"], - "doublesMoves": ["dazzlinggleam", "encore", "focusblast", "protect", "psychic", "shadowball"] - }, - "alakazammega": { - "level": 80, - "moves": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball", "substitute"], - "doublesMoves": ["calmmind", "encore", "focusblast", "protect", "psychic", "shadowball"] - }, - "machamp": { - "level": 84, - "moves": ["bulletpunch", "closecombat", "dynamicpunch", "facade", "knockoff", "stoneedge"], - "doublesMoves": ["bulletpunch", "closecombat", "facade", "knockoff", "protect", "stoneedge", "wideguard"] - }, - "victreebel": { - "level": 89, - "moves": ["hiddenpowerfire", "poisonjab", "powerwhip", "sleeppowder", "sludgebomb", "strengthsap", "suckerpunch", "swordsdance"], - "doublesMoves": ["growth", "knockoff", "powerwhip", "protect", "sleeppowder", "sludgebomb", "solarbeam", "suckerpunch", "sunnyday", "weatherball"] - }, - "tentacruel": { - "level": 82, - "moves": ["acidspray", "knockoff", "rapidspin", "scald", "sludgebomb", "toxicspikes"], - "doublesMoves": ["acidspray", "knockoff", "muddywater", "protect", "rapidspin", "scald", "sludgebomb"] - }, - "golem": { - "level": 88, - "moves": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic"], - "doublesMoves": ["earthquake", "protect", "rockslide", "stealthrock", "stoneedge", "suckerpunch"] - }, - "golemalola": { - "level": 88, - "moves": ["earthquake", "firepunch", "stealthrock", "stoneedge", "wildcharge"], - "doublesMoves": ["doubleedge", "protect", "rockslide", "stealthrock", "stompingtantrum", "stoneedge"] - }, - "rapidash": { - "level": 88, - "moves": ["flareblitz", "highhorsepower", "morningsun", "wildcharge", "willowisp"], - "doublesMoves": ["flareblitz", "highhorsepower", "hypnosis", "protect", "wildcharge", "willowisp"] - }, - "slowbro": { - "level": 84, - "moves": ["fireblast", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], - "doublesMoves": ["protect", "psychic", "psyshock", "scald", "slackoff", "thunderwave", "toxic"] - }, - "slowbromega": { - "level": 84, - "moves": ["calmmind", "fireblast", "psyshock", "scald", "slackoff"], - "doublesMoves": ["fireblast", "icebeam", "protect", "psychic", "psyshock", "scald", "slackoff", "trickroom"] - }, - "farfetchd": { - "level": 90, - "moves": ["bravebird", "knockoff", "leafblade", "return", "swordsdance"], - "doublesMoves": ["bravebird", "knockoff", "leafblade", "protect", "return", "swordsdance"] - }, - "dodrio": { - "level": 86, - "moves": ["bravebird", "jumpkick", "knockoff", "quickattack", "return", "swordsdance"], - "doublesMoves": ["bravebird", "knockoff", "protect", "quickattack", "return", "swordsdance"] - }, - "dewgong": { - "level": 88, - "moves": ["encore", "icebeam", "perishsong", "protect", "surf", "toxic"], - "doublesMoves": ["encore", "fakeout", "helpinghand", "icebeam", "icywind", "liquidation", "protect", "toxic"] - }, - "muk": { - "level": 88, - "moves": ["curse", "firepunch", "gunkshot", "icepunch", "memento", "poisonjab", "shadowsneak"], - "doublesMoves": ["firepunch", "gunkshot", "icepunch", "poisonjab", "protect", "shadowsneak"] - }, - "mukalola": { - "level": 82, - "moves": ["curse", "firepunch", "gunkshot", "icepunch", "knockoff", "poisonjab", "pursuit", "shadowsneak"], - "doublesMoves": ["gunkshot", "knockoff", "poisonjab", "protect", "shadowsneak", "snarl", "stoneedge"] - }, - "cloyster": { - "level": 83, - "moves": ["hydropump", "iciclespear", "rapidspin", "rockblast", "shellsmash", "spikes"], - "doublesMoves": ["hydropump", "iciclespear", "protect", "rockblast", "shellsmash"] - }, - "gengar": { - "level": 82, - "moves": ["disable", "focusblast", "painsplit", "shadowball", "sludgewave", "substitute", "willowisp"], - "doublesMoves": ["focusblast", "protect", "shadowball", "sludgebomb", "taunt", "willowisp"] - }, - "gengarmega": { - "level": 77, - "moves": ["destinybond", "disable", "focusblast", "perishsong", "protect", "shadowball", "sludgewave", "taunt"], - "doublesMoves": ["disable", "focusblast", "hypnosis", "protect", "shadowball", "sludgebomb", "willowisp"] - }, - "hypno": { - "level": 89, - "moves": ["foulplay", "protect", "psychic", "seismictoss", "thunderwave", "toxic", "wish"], - "doublesMoves": ["hypnosis", "protect", "psychic", "seismictoss", "thunderwave"] - }, - "kingler": { - "level": 88, - "moves": ["agility", "knockoff", "liquidation", "rockslide", "superpower", "swordsdance", "xscissor"], - "doublesMoves": ["agility", "knockoff", "liquidation", "protect", "rockslide", "wideguard", "xscissor"] - }, - "electrode": { - "level": 88, - "moves": ["foulplay", "hiddenpowergrass", "hiddenpowerice", "signalbeam", "taunt", "thunderbolt", "voltswitch"], - "doublesMoves": ["foulplay", "protect", "taunt", "thunderbolt", "thunderwave", "voltswitch"] - }, - "exeggutor": { - "level": 88, - "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "psychic", "sleeppowder", "substitute"], - "doublesMoves": ["energyball", "hiddenpowerfire", "leechseed", "protect", "psychic", "sleeppowder", "substitute", "trickroom"] - }, - "exeggutoralola": { - "level": 87, - "moves": ["dracometeor", "flamethrower", "gigadrain", "leafstorm", "trickroom"], - "doublesMoves": ["dracometeor", "dragonhammer", "flamethrower", "leafstorm", "protect", "trickroom", "woodhammer"] - }, - "marowak": { - "level": 88, - "moves": ["bonemerang", "doubleedge", "earthquake", "knockoff", "stealthrock", "stoneedge", "substitute"], - "doublesMoves": ["bonemerang", "doubleedge", "firepunch", "protect", "rockslide", "stealthrock", "swordsdance"] - }, - "marowakalola": { - "level": 84, - "moves": ["bonemerang", "flamecharge", "flareblitz", "shadowbone", "stoneedge", "substitute", "willowisp"], - "doublesMoves": ["bonemerang", "flareblitz", "protect", "shadowbone", "stoneedge", "willowisp"] - }, - "hitmonlee": { - "level": 86, - "moves": ["highjumpkick", "knockoff", "machpunch", "poisonjab", "rapidspin", "stoneedge"], - "doublesMoves": ["closecombat", "fakeout", "knockoff", "machpunch", "protect", "rockslide"] - }, - "hitmonchan": { - "level": 88, - "moves": ["bulkup", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"], - "doublesMoves": ["drainpunch", "fakeout", "firepunch", "icepunch", "machpunch", "protect"] - }, - "weezing": { - "level": 86, - "moves": ["fireblast", "painsplit", "sludgebomb", "toxicspikes", "willowisp"], - "doublesMoves": ["fireblast", "painsplit", "protect", "sludgebomb", "toxicspikes", "willowisp"] - }, - "rhydon": { - "level": 86, - "moves": ["earthquake", "megahorn", "stealthrock", "stoneedge", "toxic"] - }, - "chansey": { - "level": 81, - "moves": ["healbell", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic", "wish"], - "doublesMoves": ["helpinghand", "protect", "seismictoss", "softboiled", "thunderwave", "toxic"] - }, - "kangaskhan": { - "level": 88, - "moves": ["crunch", "drainpunch", "earthquake", "fakeout", "return", "suckerpunch"], - "doublesMoves": ["crunch", "doubleedge", "drainpunch", "earthquake", "fakeout", "protect", "return", "suckerpunch"] - }, - "kangaskhanmega": { - "level": 76, - "moves": ["bodyslam", "crunch", "fakeout", "seismictoss", "suckerpunch"], - "doublesMoves": ["drainpunch", "earthquake", "fakeout", "poweruppunch", "protect", "return", "suckerpunch"] - }, - "seaking": { - "level": 89, - "moves": ["drillrun", "icebeam", "knockoff", "megahorn", "raindance", "waterfall"], - "doublesMoves": ["drillrun", "icywind", "knockoff", "megahorn", "protect", "waterfall"] - }, - "starmie": { - "level": 83, - "moves": ["hydropump", "icebeam", "psyshock", "rapidspin", "recover", "scald", "thunderbolt"], - "doublesMoves": ["hydropump", "icebeam", "protect", "psychic", "psyshock", "scald", "thunderbolt"] - }, - "mrmime": { - "level": 88, - "moves": ["dazzlinggleam", "encore", "focusblast", "healingwish", "nastyplot", "psyshock", "shadowball"], - "doublesMoves": ["dazzlinggleam", "encore", "fakeout", "followme", "hiddenpowerfighting", "icywind", "protect", "psychic", "thunderbolt", "thunderwave", "wideguard"] - }, - "scyther": { - "level": 87, - "moves": ["aerialace", "brickbreak", "bugbite", "knockoff", "roost", "swordsdance", "uturn"], - "doublesMoves": ["aerialace", "brickbreak", "bugbite", "feint", "knockoff", "protect", "swordsdance", "uturn"] - }, - "jynx": { - "level": 88, - "moves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psychic", "psyshock", "substitute", "trick"], - "doublesMoves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "protect", "psychic", "psyshock"] - }, - "pinsir": { - "level": 88, - "moves": ["closecombat", "earthquake", "knockoff", "stealthrock", "stoneedge", "xscissor"], - "doublesMoves": ["closecombat", "feint", "knockoff", "protect", "rockslide", "xscissor"] - }, - "pinsirmega": { - "level": 80, - "moves": ["closecombat", "earthquake", "quickattack", "return", "swordsdance"], - "doublesMoves": ["closecombat", "feint", "protect", "quickattack", "return", "rockslide", "swordsdance"] - }, - "tauros": { - "level": 87, - "moves": ["bodyslam", "doubleedge", "earthquake", "rockslide", "zenheadbutt"], - "doublesMoves": ["doubleedge", "protect", "return", "rockslide", "stompingtantrum", "stoneedge", "zenheadbutt"] - }, - "gyarados": { - "level": 79, - "moves": ["bounce", "dragondance", "earthquake", "stoneedge", "substitute", "waterfall"], - "doublesMoves": ["bounce", "dragondance", "protect", "stoneedge", "thunderwave", "waterfall"] - }, - "gyaradosmega": { - "level": 80, - "moves": ["crunch", "dragondance", "earthquake", "icefang", "substitute", "waterfall"], - "doublesMoves": ["crunch", "dragondance", "icefang", "protect", "taunt", "thunderwave", "waterfall"] - }, - "lapras": { - "level": 88, - "moves": ["freezedry", "healbell", "hydropump", "icebeam", "protect", "thunderbolt", "toxic"], - "doublesMoves": ["freezedry", "helpinghand", "hydropump", "iceshard", "icywind", "protect"] - }, - "ditto": { - "level": 87, - "moves": ["transform"] - }, - "vaporeon": { - "level": 86, - "moves": ["icebeam", "protect", "roar", "scald", "toxic", "wish"], - "doublesMoves": ["helpinghand", "icywind", "muddywater", "protect", "scald", "toxic"] - }, - "jolteon": { - "level": 84, - "moves": ["hiddenpowerice", "shadowball", "signalbeam", "thunderbolt", "voltswitch"], - "doublesMoves": ["helpinghand", "hiddenpowergrass", "hiddenpowerice", "protect", "signalbeam", "thunderbolt", "voltswitch"] - }, - "flareon": { - "level": 88, - "moves": ["facade", "flamecharge", "flareblitz", "quickattack", "superpower"], - "doublesMoves": ["facade", "flamecharge", "flareblitz", "protect", "superpower"] - }, - "omastar": { - "level": 87, - "moves": ["earthpower", "hydropump", "icebeam", "shellsmash", "spikes", "stealthrock"], - "doublesMoves": ["earthpower", "hiddenpowerelectric", "hydropump", "icebeam", "muddywater", "protect", "shellsmash"] - }, - "kabutops": { - "level": 88, - "moves": ["aquajet", "knockoff", "liquidation", "rapidspin", "stoneedge", "swordsdance"], - "doublesMoves": ["aquajet", "knockoff", "liquidation", "protect", "rockslide", "stoneedge", "swordsdance"] - }, - "aerodactyl": { - "level": 86, - "moves": ["defog", "doubleedge", "earthquake", "pursuit", "roost", "stealthrock", "stoneedge", "taunt"], - "doublesMoves": ["earthquake", "protect", "rockslide", "skydrop", "stoneedge", "tailwind", "wideguard"] - }, - "aerodactylmega": { - "level": 81, - "moves": ["aerialace", "aquatail", "earthquake", "firefang", "honeclaws", "roost", "stoneedge"], - "doublesMoves": ["aquatail", "protect", "rockslide", "skydrop", "stoneedge", "tailwind", "wideguard"] - }, - "snorlax": { - "level": 84, - "moves": ["bodyslam", "crunch", "curse", "earthquake", "firepunch", "pursuit", "rest", "return", "sleeptalk"], - "doublesMoves": ["bodyslam", "crunch", "curse", "highhorsepower", "protect", "rest", "return"] - }, - "articuno": { - "level": 88, - "moves": ["freezedry", "hurricane", "roost", "substitute", "toxic"], - "doublesMoves": ["freezedry", "hurricane", "protect", "roost", "tailwind"] - }, - "zapdos": { - "level": 80, - "moves": ["defog", "discharge", "heatwave", "hiddenpowerice", "roost", "toxic", "uturn"], - "doublesMoves": ["heatwave", "hiddenpowergrass", "hiddenpowerice", "protect", "roost", "tailwind", "thunderbolt"] - }, - "moltres": { - "level": 82, - "moves": ["fireblast", "hurricane", "roost", "substitute", "toxic", "willowisp"], - "doublesMoves": ["airslash", "fireblast", "heatwave", "hurricane", "protect", "tailwind", "uturn", "willowisp"] - }, - "dragonite": { - "level": 79, - "moves": ["dragondance", "earthquake", "extremespeed", "firepunch", "fly", "outrage"], - "doublesMoves": ["dragonclaw", "dragondance", "extremespeed", "firepunch", "fly", "protect", "roost", "superpower"] - }, - "mewtwo": { - "level": 75, - "moves": ["aurasphere", "calmmind", "fireblast", "icebeam", "psystrike", "recover"], - "doublesMoves": ["aurasphere", "calmmind", "fireblast", "icebeam", "protect", "psystrike"] - }, - "mewtwomegax": { - "level": 73, - "moves": ["bulkup", "drainpunch", "icebeam", "stoneedge", "taunt", "zenheadbutt"], - "doublesMoves": ["bulkup", "drainpunch", "icebeam", "stoneedge", "taunt", "zenheadbutt"] - }, - "mewtwomegay": { - "level": 73, - "moves": ["aurasphere", "calmmind", "fireblast", "icebeam", "psystrike", "recover", "shadowball"], - "doublesMoves": ["aurasphere", "calmmind", "fireblast", "icebeam", "psystrike", "taunt", "willowisp"] - }, - "mew": { - "level": 82, - "moves": ["aurasphere", "defog", "earthpower", "icebeam", "knockoff", "nastyplot", "psyshock", "roost", "stealthrock", "taunt", "willowisp"], - "doublesMoves": ["fakeout", "fireblast", "helpinghand", "icebeam", "protect", "psyshock", "roost", "tailwind", "taunt", "transform", "willowisp"] - }, - "meganium": { - "level": 88, - "moves": ["aromatherapy", "dragontail", "gigadrain", "leechseed", "lightscreen", "reflect", "synthesis", "toxic"], - "doublesMoves": ["dragontail", "energyball", "healpulse", "leafstorm", "leechseed", "protect", "toxic"] - }, - "typhlosion": { - "level": 86, - "moves": ["eruption", "extrasensory", "fireblast", "focusblast", "hiddenpowergrass"], - "doublesMoves": ["eruption", "extrasensory", "focusblast", "heatwave", "hiddenpowergrass"] - }, - "feraligatr": { - "level": 82, - "moves": ["aquajet", "crunch", "dragondance", "earthquake", "icepunch", "liquidation", "swordsdance"], - "doublesMoves": ["aquajet", "crunch", "dragondance", "icepunch", "liquidation", "protect"] - }, - "furret": { - "level": 89, - "moves": ["aquatail", "doubleedge", "firepunch", "knockoff", "trick", "uturn"], - "doublesMoves": ["doubleedge", "followme", "helpinghand", "knockoff", "protect", "superfang", "uturn"] - }, - "noctowl": { - "level": 89, - "moves": ["airslash", "defog", "heatwave", "hurricane", "hypervoice", "roost", "whirlwind"], - "doublesMoves": ["airslash", "heatwave", "hypervoice", "hypnosis", "protect", "roost", "tailwind"] - }, - "ledian": { - "level": 90, - "moves": ["knockoff", "lightscreen", "reflect", "roost", "toxic", "uturn"], - "doublesMoves": ["bugbuzz", "encore", "knockoff", "lightscreen", "protect", "reflect", "tailwind", "uturn"] - }, - "ariados": { - "level": 88, - "moves": ["megahorn", "poisonjab", "stickyweb", "suckerpunch", "toxicspikes"], - "doublesMoves": ["megahorn", "poisonjab", "protect", "ragepowder", "stickyweb", "toxicthread"] - }, - "crobat": { - "level": 82, - "moves": ["bravebird", "defog", "roost", "superfang", "taunt", "toxic", "uturn"], - "doublesMoves": ["bravebird", "protect", "superfang", "tailwind", "taunt", "uturn"] - }, - "lanturn": { - "level": 88, - "moves": ["healbell", "hiddenpowergrass", "hydropump", "icebeam", "scald", "toxic", "voltswitch"], - "doublesMoves": ["icebeam", "protect", "scald", "thunderbolt", "thunderwave", "toxic"] - }, - "xatu": { - "level": 87, - "moves": ["calmmind", "heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"], - "doublesMoves": ["heatwave", "protect", "psychic", "roost", "tailwind", "thunderwave", "uturn"] - }, - "ampharos": { - "level": 88, - "moves": ["focusblast", "healbell", "hiddenpowerice", "lightscreen", "reflect", "thunderbolt", "toxic", "voltswitch"], - "doublesMoves": ["focusblast", "hiddenpowergrass", "hiddenpowerice", "protect", "thunderbolt", "thunderwave"] - }, - "ampharosmega": { - "level": 84, - "moves": ["agility", "dragonpulse", "focusblast", "healbell", "thunderbolt", "voltswitch"], - "doublesMoves": ["dragonpulse", "focusblast", "hiddenpowergrass", "hiddenpowerice", "protect", "thunderbolt"] - }, - "bellossom": { - "level": 88, - "moves": ["gigadrain", "hiddenpowerground", "moonblast", "quiverdance", "sleeppowder", "strengthsap"], - "doublesMoves": ["energyball", "moonblast", "quiverdance", "sleeppowder", "strengthsap"] - }, - "azumarill": { - "level": 80, - "moves": ["aquajet", "bellydrum", "knockoff", "liquidation", "playrough", "superpower"], - "doublesMoves": ["aquajet", "knockoff", "liquidation", "playrough", "protect", "superpower"] - }, - "sudowoodo": { - "level": 88, - "moves": ["earthquake", "headsmash", "stealthrock", "suckerpunch", "toxic", "woodhammer"], - "doublesMoves": ["headsmash", "helpinghand", "protect", "stealthrock", "stompingtantrum", "suckerpunch", "woodhammer"] - }, - "politoed": { - "level": 84, - "moves": ["encore", "icebeam", "protect", "rest", "scald", "toxic"], - "doublesMoves": ["encore", "helpinghand", "hypnosis", "icywind", "protect", "scald"] - }, - "jumpluff": { - "level": 88, - "moves": ["acrobatics", "encore", "leechseed", "seedbomb", "sleeppowder", "strengthsap", "substitute", "swordsdance", "toxic", "uturn"], - "doublesMoves": ["encore", "energyball", "helpinghand", "leechseed", "protect", "ragepowder", "sleeppowder", "strengthsap", "uturn"] - }, - "sunflora": { - "level": 89, - "moves": ["earthpower", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "sludgebomb"], - "doublesMoves": ["earthpower", "encore", "energyball", "helpinghand", "hiddenpowerfire", "protect", "solarbeam", "sunnyday"] - }, - "quagsire": { - "level": 84, - "moves": ["earthquake", "encore", "icebeam", "recover", "scald", "toxic"], - "doublesMoves": ["earthquake", "icywind", "protect", "recover", "scald", "toxic"] - }, - "espeon": { - "level": 84, - "moves": ["calmmind", "dazzlinggleam", "morningsun", "psychic", "psyshock", "shadowball"], - "doublesMoves": ["calmmind", "dazzlinggleam", "helpinghand", "protect", "psychic", "shadowball"] - }, - "umbreon": { - "level": 84, - "moves": ["foulplay", "protect", "toxic", "wish"], - "doublesMoves": ["foulplay", "helpinghand", "moonlight", "protect", "snarl"] - }, - "slowking": { - "level": 86, - "moves": ["dragontail", "fireblast", "icebeam", "nastyplot", "psyshock", "scald", "slackoff", "thunderwave", "toxic", "trickroom"], - "doublesMoves": ["fireblast", "protect", "psychic", "psyshock", "scald", "trickroom"] - }, - "unown": { - "level": 100, - "moves": ["hiddenpowerpsychic"] - }, - "wobbuffet": { - "level": 82, - "moves": ["counter", "destinybond", "encore", "mirrorcoat"], - "doublesMoves": ["charm", "counter", "encore", "mirrorcoat"] - }, - "girafarig": { - "level": 89, - "moves": ["hypervoice", "nastyplot", "psychic", "psyshock", "substitute", "thunderbolt"], - "doublesMoves": ["hypervoice", "nastyplot", "protect", "psychic", "psyshock", "thunderbolt"] - }, - "forretress": { - "level": 84, - "moves": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], - "doublesMoves": ["gyroball", "protect", "stealthrock", "toxic", "voltswitch"] - }, - "dunsparce": { - "level": 89, - "moves": ["bite", "bodyslam", "coil", "glare", "headbutt", "rockslide", "roost"], - "doublesMoves": ["bite", "bodyslam", "coil", "glare", "headbutt", "protect", "rockslide"] - }, - "gligar": { - "level": 82, - "moves": ["defog", "earthquake", "knockoff", "roost", "stealthrock", "toxic", "uturn"] - }, - "steelix": { - "level": 86, - "moves": ["earthquake", "ironhead", "roar", "rockslide", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "headsmash", "heavyslam", "protect", "stealthrock", "wideguard"] - }, - "steelixmega": { - "level": 82, - "moves": ["dragontail", "earthquake", "heavyslam", "roar", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "heavyslam", "protect", "rockslide", "stealthrock"] - }, - "granbull": { - "level": 88, - "moves": ["crunch", "earthquake", "healbell", "playrough", "thunderwave"], - "doublesMoves": ["playrough", "protect", "snarl", "stompingtantrum", "thunderwave"] - }, - "qwilfish": { - "level": 88, - "moves": ["destinybond", "liquidation", "painsplit", "spikes", "taunt", "thunderwave", "toxicspikes"], - "doublesMoves": ["destinybond", "liquidation", "poisonjab", "protect", "swordsdance", "taunt", "thunderwave"] - }, - "scizor": { - "level": 82, - "moves": ["bugbite", "bulletpunch", "knockoff", "pursuit", "superpower", "swordsdance", "uturn"], - "doublesMoves": ["bugbite", "bulletpunch", "feint", "knockoff", "protect", "superpower", "swordsdance", "uturn"] - }, - "scizormega": { - "level": 79, - "moves": ["bugbite", "bulletpunch", "defog", "knockoff", "roost", "superpower", "swordsdance", "uturn"], - "doublesMoves": ["bugbite", "bulletpunch", "feint", "knockoff", "protect", "roost", "superpower", "swordsdance", "uturn"] - }, - "shuckle": { - "level": 88, - "moves": ["encore", "knockoff", "stealthrock", "stickyweb", "toxic"], - "doublesMoves": ["encore", "guardsplit", "helpinghand", "knockoff", "stealthrock", "stickyweb", "toxic"] - }, - "heracross": { - "level": 84, - "moves": ["closecombat", "facade", "knockoff", "megahorn", "stoneedge", "swordsdance"], - "doublesMoves": ["closecombat", "facade", "knockoff", "megahorn", "protect", "swordsdance"] - }, - "heracrossmega": { - "level": 82, - "moves": ["closecombat", "pinmissile", "rockblast", "substitute", "swordsdance"], - "doublesMoves": ["bulletseed", "closecombat", "knockoff", "pinmissile", "protect", "rockblast", "swordsdance"] - }, - "ursaring": { - "level": 87, - "moves": ["closecombat", "crunch", "facade", "protect", "swordsdance"], - "doublesMoves": ["closecombat", "crunch", "facade", "protect", "swordsdance"] - }, - "magcargo": { - "level": 89, - "moves": ["ancientpower", "earthpower", "fireblast", "hiddenpowergrass", "lavaplume", "recover", "shellsmash", "stealthrock", "toxic"], - "doublesMoves": ["earthpower", "fireblast", "heatwave", "incinerate", "protect", "stealthrock", "willowisp"] - }, - "corsola": { - "level": 89, - "moves": ["powergem", "recover", "scald", "stealthrock", "toxic"], - "doublesMoves": ["icywind", "powergem", "protect", "scald", "stealthrock", "toxic"] - }, - "octillery": { - "level": 88, - "moves": ["energyball", "fireblast", "gunkshot", "hydropump", "icebeam", "rockblast", "scald"], - "doublesMoves": ["energyball", "fireblast", "hydropump", "icebeam", "protect"] - }, - "delibird": { - "level": 100, - "moves": ["destinybond", "freezedry", "icywind", "rapidspin", "spikes"], - "doublesMoves": ["aerialace", "brickbreak", "fakeout", "icepunch", "iceshard", "protect"] - }, - "mantine": { - "level": 85, - "moves": ["airslash", "defog", "roost", "scald", "toxic"], - "doublesMoves": ["defog", "helpinghand", "protect", "scald", "tailwind", "toxic", "wideguard"] - }, - "skarmory": { - "level": 80, - "moves": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"], - "doublesMoves": ["bravebird", "feint", "ironhead", "protect", "skydrop", "stealthrock", "tailwind", "taunt"] - }, - "houndoom": { - "level": 88, - "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"], - "doublesMoves": ["darkpulse", "heatwave", "nastyplot", "protect", "suckerpunch"] - }, - "houndoommega": { - "level": 84, - "moves": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "taunt"], - "doublesMoves": ["darkpulse", "heatwave", "hiddenpowergrass", "nastyplot", "protect", "taunt"] - }, - "kingdra": { - "level": 86, - "moves": ["dracometeor", "hydropump", "icebeam", "raindance", "waterfall"], - "doublesMoves": ["dracometeor", "dragonpulse", "hydropump", "icebeam", "muddywater", "protect", "raindance"] - }, - "donphan": { - "level": 84, - "moves": ["earthquake", "iceshard", "knockoff", "rapidspin", "stealthrock", "stoneedge"], - "doublesMoves": ["earthquake", "iceshard", "knockoff", "protect", "rapidspin", "rockslide", "stealthrock"] - }, - "porygon2": { - "level": 84, - "moves": ["discharge", "icebeam", "recover", "toxic", "triattack"], - "doublesMoves": ["allyswitch", "icebeam", "protect", "recover", "thunderbolt", "thunderwave", "triattack"] - }, - "stantler": { - "level": 88, - "moves": ["doubleedge", "earthquake", "jumpkick", "megahorn", "suckerpunch"], - "doublesMoves": ["earthquake", "jumpkick", "megahorn", "protect", "return", "suckerpunch"] - }, - "smeargle": { - "level": 88, - "moves": ["destinybond", "spore", "stealthrock", "stickyweb", "whirlwind"], - "doublesMoves": ["fakeout", "followme", "helpinghand", "kingsshield", "spore", "stickyweb", "tailwind", "transform", "wideguard"] - }, - "hitmontop": { - "level": 87, - "moves": ["closecombat", "rapidspin", "stoneedge", "suckerpunch", "toxic"], - "doublesMoves": ["closecombat", "fakeout", "feint", "helpinghand", "machpunch", "rapidspin", "suckerpunch", "wideguard"] - }, - "miltank": { - "level": 86, - "moves": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], - "doublesMoves": ["bodyslam", "curse", "helpinghand", "milkdrink", "protect", "stompingtantrum", "thunderwave"] - }, - "blissey": { - "level": 82, - "moves": ["healbell", "seismictoss", "softboiled", "stealthrock", "toxic"], - "doublesMoves": ["helpinghand", "protect", "seismictoss", "softboiled", "thunderwave", "toxic"] - }, - "raikou": { - "level": 83, - "moves": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt", "voltswitch"], - "doublesMoves": ["calmmind", "hiddenpowerice", "protect", "snarl", "thunderbolt"] - }, - "entei": { - "level": 83, - "moves": ["extremespeed", "flareblitz", "sacredfire", "stompingtantrum", "stoneedge"], - "doublesMoves": ["extremespeed", "flareblitz", "protect", "sacredfire", "stompingtantrum", "stoneedge"] - }, - "suicune": { - "level": 82, - "moves": ["calmmind", "hiddenpowergrass", "icebeam", "rest", "scald", "sleeptalk"], - "doublesMoves": ["icebeam", "scald", "snarl", "tailwind", "toxic"] - }, - "tyranitar": { - "level": 80, - "moves": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "stealthrock", "stoneedge"], - "doublesMoves": ["crunch", "fireblast", "icebeam", "protect", "rockslide", "stealthrock", "stompingtantrum", "stoneedge"] - }, - "tyranitarmega": { - "level": 79, - "moves": ["crunch", "dragondance", "earthquake", "icepunch", "stoneedge"], - "doublesMoves": ["crunch", "dragondance", "earthquake", "icepunch", "protect", "rockslide", "stoneedge"] - }, - "lugia": { - "level": 76, - "moves": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"], - "doublesMoves": ["aeroblast", "protect", "psychic", "roost", "skydrop", "tailwind", "toxic"] - }, - "hooh": { - "level": 75, - "moves": ["bravebird", "defog", "earthquake", "roost", "sacredfire", "substitute", "toxic"], - "doublesMoves": ["bravebird", "earthpower", "protect", "roost", "sacredfire", "skydrop", "tailwind", "toxic"] - }, - "celebi": { - "level": 82, - "moves": ["earthpower", "gigadrain", "hiddenpowerfire", "leafstorm", "nastyplot", "psychic", "recover", "thunderwave", "uturn"], - "doublesMoves": ["earthpower", "energyball", "nastyplot", "protect", "psychic", "recover", "thunderwave", "uturn"] - }, - "sceptile": { - "level": 86, - "moves": ["focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "leechseed", "substitute"], - "doublesMoves": ["energyball", "focusblast", "hiddenpowerfire", "hiddenpowerice", "protect"] - }, - "sceptilemega": { - "level": 84, - "moves": ["dragonpulse", "earthquake", "focusblast", "gigadrain", "hiddenpowerfire", "leafblade", "outrage", "substitute", "swordsdance"], - "doublesMoves": ["dragonpulse", "energyball", "focusblast", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "protect"] - }, - "blaziken": { - "level": 77, - "moves": ["fireblast", "hiddenpowerice", "highjumpkick", "knockoff", "protect"] - }, - "blazikenmega": { - "level": 76, - "moves": ["flareblitz", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance"] - }, - "swampert": { - "level": 82, - "moves": ["earthquake", "icebeam", "protect", "roar", "scald", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "icywind", "muddywater", "protect", "scald", "stealthrock", "wideguard"] - }, - "swampertmega": { - "level": 80, - "moves": ["earthquake", "icepunch", "raindance", "superpower", "waterfall"], - "doublesMoves": ["earthquake", "icepunch", "protect", "raindance", "waterfall"] - }, - "mightyena": { - "level": 88, - "moves": ["crunch", "firefang", "irontail", "playrough", "suckerpunch"], - "doublesMoves": ["crunch", "firefang", "playrough", "protect", "suckerpunch", "taunt"] - }, - "linoone": { - "level": 84, - "moves": ["bellydrum", "extremespeed", "shadowclaw", "stompingtantrum"], - "doublesMoves": ["bellydrum", "extremespeed", "protect", "shadowclaw", "stompingtantrum"] - }, - "beautifly": { - "level": 90, - "moves": ["bugbuzz", "energyball", "hiddenpowerfighting", "psychic", "quiverdance"], - "doublesMoves": ["aircutter", "bugbuzz", "protect", "quiverdance", "stringshot", "tailwind"] - }, - "dustox": { - "level": 89, - "moves": ["bugbuzz", "defog", "quiverdance", "roost", "sludgebomb", "uturn"], - "doublesMoves": ["bugbuzz", "protect", "sludgebomb", "stringshot", "strugglebug", "tailwind"] - }, - "ludicolo": { - "level": 89, - "moves": ["focusblast", "gigadrain", "hydropump", "icebeam", "raindance", "scald"], - "doublesMoves": ["fakeout", "gigadrain", "hydropump", "icebeam", "protect", "raindance"] - }, - "shiftry": { - "level": 88, - "moves": ["defog", "knockoff", "leafstorm", "lowkick", "seedbomb", "suckerpunch", "swordsdance"], - "doublesMoves": ["fakeout", "knockoff", "leafblade", "leafstorm", "protect", "suckerpunch", "swordsdance"] - }, - "swellow": { - "level": 84, - "moves": ["bravebird", "facade", "protect", "quickattack", "uturn"], - "doublesMoves": ["bravebird", "facade", "protect", "quickattack", "uturn"] - }, - "pelipper": { - "level": 86, - "moves": ["defog", "hurricane", "hydropump", "knockoff", "roost", "scald", "uturn"], - "doublesMoves": ["hurricane", "protect", "scald", "tailwind", "uturn", "wideguard"] - }, - "gardevoir": { - "level": 84, - "moves": ["calmmind", "focusblast", "moonblast", "psychic", "shadowball", "substitute", "thunderbolt", "willowisp"], - "doublesMoves": ["dazzlinggleam", "focusblast", "helpinghand", "moonblast", "protect", "psyshock"] - }, - "gardevoirmega": { - "level": 82, - "moves": ["calmmind", "focusblast", "hypervoice", "psyshock", "substitute", "taunt", "willowisp"], - "doublesMoves": ["calmmind", "focusblast", "hypervoice", "protect", "psyshock"] - }, - "masquerain": { - "level": 88, - "moves": ["airslash", "bugbuzz", "hydropump", "quiverdance", "stickyweb"], - "doublesMoves": ["airslash", "bugbuzz", "hydropump", "protect", "quiverdance", "stickyweb", "strugglebug", "tailwind"] - }, - "breloom": { - "level": 82, - "moves": ["bulletseed", "machpunch", "rocktomb", "spore", "swordsdance"], - "doublesMoves": ["bulletseed", "machpunch", "protect", "rocktomb", "spore"] - }, - "slaking": { - "level": 86, - "moves": ["earthquake", "firepunch", "gigaimpact", "nightslash", "pursuit", "retaliate"], - "doublesMoves": ["doubleedge", "earthquake", "hammerarm", "nightslash", "retaliate", "rockslide"] - }, - "ninjask": { - "level": 88, - "moves": ["aerialace", "dig", "leechlife", "nightslash", "swordsdance", "uturn"], - "doublesMoves": ["aerialace", "dig", "leechlife", "protect", "swordsdance"] - }, - "shedinja": { - "level": 88, - "moves": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"], - "doublesMoves": ["allyswitch", "protect", "shadowsneak", "swordsdance", "willowisp", "xscissor"] - }, - "exploud": { - "level": 86, - "moves": ["boomburst", "fireblast", "focusblast", "icebeam", "surf"], - "doublesMoves": ["boomburst", "fireblast", "focusblast", "hypervoice", "icebeam", "protect"] - }, - "hariyama": { - "level": 86, - "moves": ["bulkup", "bulletpunch", "closecombat", "icepunch", "knockoff", "stoneedge"], - "doublesMoves": ["bulletpunch", "closecombat", "facade", "fakeout", "helpinghand", "knockoff", "protect", "wideguard"] - }, - "delcatty": { - "level": 90, - "moves": ["doubleedge", "fakeout", "healbell", "suckerpunch", "thunderwave", "wildcharge"], - "doublesMoves": ["doubleedge", "fakeout", "helpinghand", "protect", "suckerpunch", "thunderwave"] - }, - "sableye": { - "level": 89, - "moves": ["foulplay", "recover", "taunt", "toxic", "willowisp"], - "doublesMoves": ["fakeout", "foulplay", "helpinghand", "protect", "recover", "snarl", "taunt", "willowisp"] - }, - "sableyemega": { - "level": 83, - "moves": ["calmmind", "darkpulse", "recover", "shadowball", "willowisp"], - "doublesMoves": ["fakeout", "knockoff", "protect", "recover", "shadowball", "willowisp"] - }, - "mawile": { - "level": 88, - "moves": ["ironhead", "knockoff", "playrough", "stealthrock", "suckerpunch", "swordsdance"], - "doublesMoves": ["ironhead", "knockoff", "playrough", "protect", "suckerpunch", "swordsdance"] - }, - "mawilemega": { - "level": 80, - "moves": ["firefang", "focuspunch", "ironhead", "knockoff", "playrough", "substitute", "suckerpunch", "swordsdance"], - "doublesMoves": ["ironhead", "knockoff", "playrough", "protect", "suckerpunch", "swordsdance"] - }, - "aggron": { - "level": 88, - "moves": ["aquatail", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock"], - "doublesMoves": ["headsmash", "heavyslam", "protect", "stealthrock", "stompingtantrum"] - }, - "aggronmega": { - "level": 82, - "moves": ["earthquake", "heavyslam", "roar", "stealthrock", "stoneedge", "thunderwave", "toxic"], - "doublesMoves": ["heavyslam", "protect", "rockslide", "stealthrock", "stompingtantrum", "toxic"] - }, - "medicham": { - "level": 86, - "moves": ["bulletpunch", "drainpunch", "highjumpkick", "icepunch", "zenheadbutt"], - "doublesMoves": ["bulletpunch", "drainpunch", "fakeout", "highjumpkick", "icepunch", "protect", "zenheadbutt"] - }, - "medichammega": { - "level": 80, - "moves": ["fakeout", "highjumpkick", "icepunch", "thunderpunch", "zenheadbutt"], - "doublesMoves": ["bulletpunch", "drainpunch", "fakeout", "highjumpkick", "icepunch", "protect", "zenheadbutt"] - }, - "manectric": { - "level": 88, - "moves": ["flamethrower", "hiddenpowergrass", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], - "doublesMoves": ["flamethrower", "hiddenpowergrass", "hiddenpowerice", "protect", "snarl", "switcheroo", "thunderbolt", "voltswitch"] - }, - "manectricmega": { - "level": 82, - "moves": ["hiddenpowergrass", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], - "doublesMoves": ["flamethrower", "hiddenpowergrass", "hiddenpowerice", "protect", "snarl", "thunderbolt", "voltswitch"] - }, - "plusle": { - "level": 89, - "moves": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], - "doublesMoves": ["encore", "helpinghand", "hiddenpowerice", "nastyplot", "protect", "thunderbolt"] - }, - "minun": { - "level": 90, - "moves": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], - "doublesMoves": ["encore", "helpinghand", "hiddenpowerice", "nastyplot", "protect", "thunderbolt"] - }, - "volbeat": { - "level": 88, - "moves": ["defog", "encore", "roost", "tailwind", "thunderwave", "uturn"], - "doublesMoves": ["encore", "helpinghand", "protect", "stringshot", "strugglebug", "tailwind", "thunderwave", "uturn"] - }, - "illumise": { - "level": 89, - "moves": ["bugbuzz", "defog", "encore", "roost", "thunderwave", "uturn", "wish"], - "doublesMoves": ["bugbuzz", "encore", "helpinghand", "protect", "tailwind", "thunderwave"] - }, - "swalot": { - "level": 88, - "moves": ["earthquake", "encore", "icebeam", "painsplit", "sludgebomb", "toxic", "yawn"], - "doublesMoves": ["encore", "icebeam", "poisongas", "protect", "sludgebomb", "yawn"] - }, - "sharpedo": { - "level": 84, - "moves": ["crunch", "earthquake", "icebeam", "protect", "waterfall"], - "doublesMoves": ["crunch", "icebeam", "liquidation", "protect", "psychicfangs"] - }, - "sharpedomega": { - "level": 82, - "moves": ["crunch", "destinybond", "icefang", "protect", "psychicfangs", "waterfall"], - "doublesMoves": ["crunch", "icefang", "liquidation", "protect", "psychicfangs"] - }, - "wailord": { - "level": 89, - "moves": ["hiddenpowerfire", "hiddenpowergrass", "hydropump", "icebeam", "waterspout"], - "doublesMoves": ["hiddenpowerfire", "hiddenpowergrass", "hydropump", "icebeam", "waterspout"] - }, - "camerupt": { - "level": 88, - "moves": ["earthpower", "fireblast", "hiddenpowergrass", "lavaplume", "roar", "rockpolish", "stealthrock", "stoneedge"], - "doublesMoves": ["earthpower", "fireblast", "heatwave", "incinerate", "protect", "stealthrock"] - }, - "cameruptmega": { - "level": 87, - "moves": ["ancientpower", "earthpower", "fireblast", "stealthrock", "toxic", "willowisp"], - "doublesMoves": ["earthpower", "fireblast", "heatwave", "protect", "rockslide"] - }, - "torkoal": { - "level": 84, - "moves": ["earthpower", "fireblast", "lavaplume", "rapidspin", "shellsmash", "solarbeam", "stealthrock", "yawn"], - "doublesMoves": ["earthpower", "fireblast", "heatwave", "protect", "solarbeam", "willowisp"] - }, - "grumpig": { - "level": 88, - "moves": ["focusblast", "healbell", "lightscreen", "psychic", "reflect", "thunderwave", "toxic", "whirlwind"], - "doublesMoves": ["focusblast", "lightscreen", "protect", "psychic", "reflect", "taunt", "thunderwave"] - }, - "spinda": { - "level": 100, - "moves": ["encore", "return", "rockslide", "superpower"], - "doublesMoves": ["fakeout", "protect", "return", "suckerpunch", "superpower", "trickroom"] - }, - "flygon": { - "level": 84, - "moves": ["defog", "dragondance", "earthquake", "firepunch", "outrage", "roost", "uturn"], - "doublesMoves": ["dragonclaw", "dragondance", "earthquake", "fireblast", "protect", "tailwind", "uturn"] - }, - "cacturne": { - "level": 88, - "moves": ["darkpulse", "drainpunch", "focusblast", "gigadrain", "seedbomb", "spikes", "suckerpunch", "swordsdance"], - "doublesMoves": ["drainpunch", "seedbomb", "spikyshield", "substitute", "suckerpunch", "swordsdance"] - }, - "altaria": { - "level": 88, - "moves": ["defog", "dracometeor", "earthquake", "fireblast", "roost", "toxic"], - "doublesMoves": ["dracometeor", "dragonclaw", "fireblast", "protect", "tailwind"] - }, - "altariamega": { - "level": 82, - "moves": ["dragondance", "earthquake", "fireblast", "healbell", "return", "roost"], - "doublesMoves": ["doubleedge", "dragondance", "earthquake", "fireblast", "protect", "return"] - }, - "zangoose": { - "level": 88, - "moves": ["closecombat", "facade", "knockoff", "quickattack", "swordsdance"], - "doublesMoves": ["closecombat", "facade", "knockoff", "protect", "quickattack"] - }, - "seviper": { - "level": 88, - "moves": ["darkpulse", "earthquake", "flamethrower", "gigadrain", "poisonjab", "sludgewave", "suckerpunch", "switcheroo", "swordsdance"], - "doublesMoves": ["aquatail", "earthquake", "flamethrower", "gigadrain", "glare", "poisonjab", "protect", "sludgebomb", "suckerpunch"] - }, - "lunatone": { - "level": 88, - "moves": ["earthpower", "icebeam", "moonblast", "moonlight", "powergem", "psychic", "rockpolish", "stealthrock", "toxic"], - "doublesMoves": ["earthpower", "helpinghand", "powergem", "protect", "psychic", "trickroom"] - }, - "solrock": { - "level": 88, - "moves": ["earthquake", "morningsun", "rockslide", "stealthrock", "willowisp"], - "doublesMoves": ["helpinghand", "protect", "rockslide", "stealthrock", "stoneedge", "willowisp", "zenheadbutt"] - }, - "whiscash": { - "level": 88, - "moves": ["dragondance", "earthquake", "stoneedge", "waterfall", "zenheadbutt"], - "doublesMoves": ["dragondance", "earthquake", "protect", "stoneedge", "waterfall", "zenheadbutt"] - }, - "crawdaunt": { - "level": 82, - "moves": ["aquajet", "crabhammer", "dragondance", "knockoff", "superpower", "swordsdance"], - "doublesMoves": ["aquajet", "crabhammer", "dragondance", "knockoff", "protect", "superpower", "swordsdance"] - }, - "claydol": { - "level": 89, - "moves": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"], - "doublesMoves": ["allyswitch", "earthpower", "protect", "rapidspin", "stealthrock", "toxic"] - }, - "cradily": { - "level": 88, - "moves": ["curse", "gigadrain", "recover", "rockslide", "seedbomb", "stealthrock", "toxic"], - "doublesMoves": ["gigadrain", "protect", "recover", "rockslide", "stealthrock", "stringshot", "toxic"] - }, - "armaldo": { - "level": 88, - "moves": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "toxic", "xscissor"], - "doublesMoves": ["knockoff", "protect", "rockslide", "stoneedge", "stringshot", "swordsdance", "xscissor"] - }, - "milotic": { - "level": 84, - "moves": ["dragontail", "icebeam", "recover", "scald", "toxic"], - "doublesMoves": ["hypnosis", "icywind", "protect", "recover", "scald"] - }, - "castformsunny": { - "level": 100, - "moves": ["fireblast", "icebeam", "solarbeam", "sunnyday"] - }, - "castformrainy": { - "level": 100, - "moves": ["hurricane", "hydropump", "raindance", "thunder"] - }, - "castformsnowy": { - "level": 100, - "moves": ["blizzard", "fireblast", "hail", "thunderbolt"] - }, - "kecleon": { - "level": 88, - "moves": ["drainpunch", "fakeout", "knockoff", "recover", "shadowsneak", "stealthrock", "suckerpunch"], - "doublesMoves": ["drainpunch", "fakeout", "knockoff", "protect", "shadowsneak", "trickroom"] - }, - "banette": { - "level": 89, - "moves": ["destinybond", "knockoff", "shadowclaw", "shadowsneak", "suckerpunch", "taunt", "willowisp"], - "doublesMoves": ["knockoff", "protect", "shadowclaw", "shadowsneak", "willowisp"] - }, - "banettemega": { - "level": 85, - "moves": ["destinybond", "knockoff", "shadowclaw", "suckerpunch", "taunt", "willowisp"], - "doublesMoves": ["destinybond", "knockoff", "protect", "shadowclaw", "suckerpunch", "taunt", "willowisp"] - }, - "tropius": { - "level": 89, - "moves": ["airslash", "gigadrain", "leechseed", "protect", "substitute", "toxic"], - "doublesMoves": ["airslash", "gigadrain", "leechseed", "protect", "roost", "tailwind"] - }, - "chimecho": { - "level": 89, - "moves": ["calmmind", "healbell", "healingwish", "psychic", "recover", "shadowball", "taunt", "yawn"], - "doublesMoves": ["helpinghand", "protect", "psychic", "recover", "taunt", "thunderwave", "trickroom"] - }, - "absol": { - "level": 88, - "moves": ["knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], - "doublesMoves": ["knockoff", "playrough", "protect", "suckerpunch", "superpower", "swordsdance"] - }, - "absolmega": { - "level": 83, - "moves": ["icebeam", "knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], - "doublesMoves": ["fireblast", "knockoff", "playrough", "protect", "suckerpunch", "superpower", "swordsdance"] - }, - "glalie": { - "level": 88, - "moves": ["earthquake", "explosion", "icebeam", "iceshard", "spikes", "superfang", "taunt"], - "doublesMoves": ["earthquake", "freezedry", "icebeam", "iceshard", "protect", "taunt"] - }, - "glaliemega": { - "level": 85, - "moves": ["earthquake", "explosion", "freezedry", "iceshard", "return", "spikes"], - "doublesMoves": ["earthquake", "explosion", "freezedry", "iceshard", "protect", "return"] - }, - "walrein": { - "level": 88, - "moves": ["icebeam", "protect", "roar", "superfang", "surf", "toxic"], - "doublesMoves": ["brine", "icywind", "protect", "superfang"] - }, - "huntail": { - "level": 87, - "moves": ["icebeam", "shellsmash", "suckerpunch", "waterfall"], - "doublesMoves": ["icebeam", "protect", "shellsmash", "suckerpunch", "waterfall"] - }, - "gorebyss": { - "level": 85, - "moves": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"], - "doublesMoves": ["hiddenpowergrass", "hydropump", "icebeam", "protect", "shellsmash"] - }, - "relicanth": { - "level": 88, - "moves": ["doubleedge", "earthquake", "headsmash", "stealthrock", "toxic", "waterfall"], - "doublesMoves": ["doubleedge", "earthquake", "headsmash", "protect", "rockslide", "waterfall"] - }, - "luvdisc": { - "level": 100, - "moves": ["icebeam", "protect", "scald", "sweetkiss", "toxic"], - "doublesMoves": ["healpulse", "icebeam", "icywind", "protect", "scald", "sweetkiss", "toxic"] - }, - "salamence": { - "level": 79, - "moves": ["dragondance", "earthquake", "fireblast", "fly", "outrage", "roost"], - "doublesMoves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "fireblast", "fly", "protect", "tailwind"] - }, - "salamencemega": { - "level": 75, - "moves": ["doubleedge", "dracometeor", "dragondance", "earthquake", "fireblast", "return", "roost"], - "doublesMoves": ["doubleedge", "dracometeor", "dragonclaw", "dragondance", "earthquake", "fireblast", "protect", "return"] - }, - "metagross": { - "level": 83, - "moves": ["agility", "bulletpunch", "earthquake", "explosion", "icepunch", "meteormash", "stealthrock", "thunderpunch", "zenheadbutt"], - "doublesMoves": ["agility", "bulletpunch", "icepunch", "meteormash", "protect", "stompingtantrum", "thunderpunch", "zenheadbutt"] - }, - "metagrossmega": { - "level": 76, - "moves": ["agility", "earthquake", "hammerarm", "icepunch", "meteormash", "zenheadbutt"], - "doublesMoves": ["icepunch", "meteormash", "protect", "stompingtantrum", "thunderpunch", "zenheadbutt"] - }, - "regirock": { - "level": 88, - "moves": ["curse", "drainpunch", "rest", "rockslide", "stealthrock", "stoneedge", "thunderwave", "toxic"], - "doublesMoves": ["curse", "drainpunch", "protect", "rest", "rockslide", "stealthrock", "stoneedge", "thunderwave"] - }, - "regice": { - "level": 88, - "moves": ["focusblast", "icebeam", "rest", "rockpolish", "sleeptalk", "thunderbolt", "thunderwave"], - "doublesMoves": ["icebeam", "icywind", "protect", "rockpolish", "thunderbolt", "thunderwave"] - }, - "registeel": { - "level": 84, - "moves": ["curse", "ironhead", "rest", "sleeptalk", "stealthrock", "toxic"], - "doublesMoves": ["curse", "ironhead", "protect", "rest", "seismictoss", "stealthrock", "thunderwave"] - }, - "latias": { - "level": 82, - "moves": ["dracometeor", "healingwish", "hiddenpowerfire", "psychic", "trick"], - "doublesMoves": ["dracometeor", "healpulse", "helpinghand", "protect", "psyshock", "tailwind"] - }, - "latiasmega": { - "level": 80, - "moves": ["calmmind", "defog", "dracometeor", "psyshock", "roost", "surf"], - "doublesMoves": ["dragonpulse", "healpulse", "helpinghand", "protect", "psychic", "tailwind"] - }, - "latios": { - "level": 82, - "moves": ["dracometeor", "hiddenpowerfire", "psyshock", "surf", "thunderbolt", "trick"], - "doublesMoves": ["dracometeor", "dragonpulse", "hiddenpowerfire", "protect", "psyshock", "tailwind", "trick"] - }, - "latiosmega": { - "level": 82, - "moves": ["calmmind", "dracometeor", "hiddenpowerfire", "psyshock", "roost"], - "doublesMoves": ["dracometeor", "dragonpulse", "hiddenpowerfire", "protect", "psyshock", "tailwind"] - }, - "kyogre": { - "level": 73, - "moves": ["icebeam", "originpulse", "scald", "thunder", "waterspout"], - "doublesMoves": ["calmmind", "icebeam", "originpulse", "protect", "thunder", "waterspout"] - }, - "kyogreprimal": { - "level": 75, - "moves": ["calmmind", "icebeam", "originpulse", "rest", "scald", "sleeptalk", "thunder"], - "doublesMoves": ["calmmind", "icebeam", "originpulse", "protect", "thunder"] - }, - "groudon": { - "level": 76, - "moves": ["dragonclaw", "earthquake", "firepunch", "lavaplume", "roar", "stealthrock", "stoneedge", "thunderwave"], - "doublesMoves": ["firepunch", "precipiceblades", "protect", "rockpolish", "rockslide", "stoneedge", "swordsdance"] - }, - "groudonprimal": { - "level": 73, - "moves": ["firepunch", "lavaplume", "precipiceblades", "rockpolish", "stealthrock", "stoneedge", "swordsdance"], - "doublesMoves": ["firepunch", "precipiceblades", "protect", "rockpolish", "rockslide", "stoneedge", "swordsdance"] - }, - "rayquaza": { - "level": 75, - "moves": ["dracometeor", "dragondance", "earthquake", "extremespeed", "outrage", "vcreate"], - "doublesMoves": ["dracometeor", "dragonclaw", "dragondance", "earthquake", "extremespeed", "protect", "tailwind", "vcreate"] - }, - "rayquazamega": { - "level": 67, - "moves": ["dragonascent", "dragondance", "earthquake", "extremespeed", "vcreate"], - "doublesMoves": ["dragonascent", "dragonclaw", "dragondance", "earthquake", "extremespeed", "protect", "swordsdance", "vcreate"] - }, - "jirachi": { - "level": 80, - "moves": ["bodyslam", "firepunch", "ironhead", "stealthrock", "substitute", "toxic", "uturn", "wish"], - "doublesMoves": ["bodyslam", "followme", "helpinghand", "icywind", "ironhead", "protect", "thunderwave", "uturn"] - }, - "deoxys": { - "level": 76, - "moves": ["extremespeed", "firepunch", "icebeam", "knockoff", "psychoboost", "stealthrock", "superpower"], - "doublesMoves": ["extremespeed", "firepunch", "icebeam", "knockoff", "protect", "psychoboost", "superpower"] - }, - "deoxysattack": { - "level": 76, - "moves": ["extremespeed", "firepunch", "icebeam", "knockoff", "psychoboost", "superpower"], - "doublesMoves": ["extremespeed", "firepunch", "icebeam", "knockoff", "protect", "psychoboost", "superpower"] - }, - "deoxysdefense": { - "level": 79, - "moves": ["knockoff", "recover", "seismictoss", "spikes", "stealthrock", "taunt", "toxic"], - "doublesMoves": ["lightscreen", "protect", "recover", "reflect", "seismictoss", "stealthrock", "taunt", "trickroom"] - }, - "deoxysspeed": { - "level": 78, - "moves": ["knockoff", "magiccoat", "psychoboost", "spikes", "stealthrock", "superpower", "taunt"], - "doublesMoves": ["knockoff", "lightscreen", "protect", "psychoboost", "reflect", "superpower", "taunt"] - }, - "torterra": { - "level": 88, - "moves": ["earthquake", "rockpolish", "stealthrock", "stoneedge", "synthesis", "woodhammer"], - "doublesMoves": ["earthquake", "protect", "rockpolish", "rockslide", "stoneedge", "wideguard", "woodhammer"] - }, - "infernape": { - "level": 82, - "moves": ["closecombat", "fireblast", "flareblitz", "focusblast", "grassknot", "nastyplot", "stealthrock", "stoneedge", "swordsdance", "uturn", "vacuumwave"], - "doublesMoves": ["closecombat", "fakeout", "feint", "flareblitz", "grassknot", "heatwave", "protect", "stoneedge", "taunt", "uturn"] - }, - "empoleon": { - "level": 82, - "moves": ["defog", "flashcannon", "grassknot", "hydropump", "icebeam", "roar", "scald", "stealthrock", "toxic"], - "doublesMoves": ["defog", "flashcannon", "grassknot", "icywind", "protect", "scald"] - }, - "staraptor": { - "level": 82, - "moves": ["bravebird", "closecombat", "doubleedge", "quickattack", "uturn"], - "doublesMoves": ["bravebird", "closecombat", "doubleedge", "protect", "quickattack", "tailwind", "uturn"] - }, - "bibarel": { - "level": 88, - "moves": ["aquajet", "liquidation", "quickattack", "return", "swordsdance"], - "doublesMoves": ["aquajet", "liquidation", "quickattack", "return", "swordsdance"] - }, - "kricketune": { - "level": 88, - "moves": ["endeavor", "knockoff", "leechlife", "stickyweb", "taunt", "toxic"], - "doublesMoves": ["knockoff", "leechlife", "protect", "stickyweb", "taunt"] - }, - "luxray": { - "level": 88, - "moves": ["crunch", "facade", "icefang", "superpower", "voltswitch", "wildcharge"], - "doublesMoves": ["crunch", "helpinghand", "icefang", "protect", "superpower", "voltswitch", "wildcharge"] - }, - "roserade": { - "level": 84, - "moves": ["gigadrain", "hiddenpowerfire", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "leafstorm", "protect", "sleeppowder", "sludgebomb"] - }, - "rampardos": { - "level": 88, - "moves": ["crunch", "earthquake", "firepunch", "headsmash", "rockpolish", "rockslide"], - "doublesMoves": ["crunch", "earthquake", "headsmash", "protect", "rockslide", "stoneedge", "zenheadbutt"] - }, - "bastiodon": { - "level": 88, - "moves": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"], - "doublesMoves": ["guardsplit", "metalburst", "protect", "stealthrock", "stoneedge", "wideguard"] - }, - "wormadam": { - "level": 91, - "moves": ["bugbuzz", "gigadrain", "hiddenpowerrock", "leafstorm", "quiverdance"], - "doublesMoves": ["bugbuzz", "gigadrain", "leafstorm", "protect", "stringshot"] - }, - "wormadamsandy": { - "level": 88, - "moves": ["earthquake", "protect", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "protect", "rockblast", "stringshot", "suckerpunch"] - }, - "wormadamtrash": { - "level": 88, - "moves": ["flashcannon", "protect", "stealthrock", "toxic"], - "doublesMoves": ["bugbuzz", "flashcannon", "protect", "stringshot", "strugglebug", "suckerpunch"] - }, - "mothim": { - "level": 89, - "moves": ["airslash", "bugbuzz", "energyball", "quiverdance", "uturn"], - "doublesMoves": ["airslash", "bugbuzz", "energyball", "protect", "quiverdance"] - }, - "vespiquen": { - "level": 89, - "moves": ["infestation", "protect", "roost", "toxic", "uturn"], - "doublesMoves": ["attackorder", "healorder", "protect", "stringshot", "strugglebug", "tailwind"] - }, - "pachirisu": { - "level": 89, - "moves": ["nuzzle", "superfang", "thunderbolt", "toxic", "uturn"], - "doublesMoves": ["followme", "helpinghand", "nuzzle", "protect", "superfang", "thunderbolt", "uturn"] - }, - "floatzel": { - "level": 88, - "moves": ["aquajet", "brickbreak", "bulkup", "icepunch", "liquidation", "substitute", "taunt"], - "doublesMoves": ["aquajet", "icepunch", "liquidation", "protect", "switcheroo", "taunt"] - }, - "cherrim": { - "level": 90, - "moves": ["dazzlinggleam", "energyball", "healingwish", "hiddenpowerfire", "synthesis"] - }, - "cherrimsunshine": { - "level": 90, - "moves": ["gigadrain", "hiddenpowerice", "solarbeam", "sunnyday", "weatherball"], - "doublesMoves": ["gigadrain", "helpinghand", "solarbeam", "sunnyday", "weatherball"] - }, - "gastrodon": { - "level": 88, - "moves": ["earthquake", "icebeam", "recover", "scald", "toxic"], - "doublesMoves": ["earthpower", "icywind", "muddywater", "protect", "recover", "scald"] - }, - "ambipom": { - "level": 86, - "moves": ["fakeout", "knockoff", "lowkick", "return", "seedbomb", "switcheroo", "uturn"], - "doublesMoves": ["fakeout", "icepunch", "knockoff", "lowkick", "protect", "return", "uturn"] - }, - "drifblim": { - "level": 87, - "moves": ["acrobatics", "destinybond", "hex", "shadowball", "substitute", "willowisp"], - "doublesMoves": ["acrobatics", "destinybond", "hypnosis", "protect", "shadowball", "thunderbolt", "willowisp"] - }, - "lopunny": { - "level": 88, - "moves": ["highjumpkick", "icepunch", "return", "switcheroo"], - "doublesMoves": ["encore", "fakeout", "firepunch", "helpinghand", "protect", "return", "switcheroo", "thunderwave"] - }, - "lopunnymega": { - "level": 80, - "moves": ["fakeout", "highjumpkick", "icepunch", "return", "substitute"], - "doublesMoves": ["encore", "fakeout", "highjumpkick", "icepunch", "protect", "return"] - }, - "mismagius": { - "level": 86, - "moves": ["dazzlinggleam", "destinybond", "nastyplot", "painsplit", "shadowball", "substitute", "taunt", "thunderbolt", "willowisp"], - "doublesMoves": ["dazzlinggleam", "nastyplot", "protect", "shadowball", "taunt", "thunderbolt", "willowisp"] - }, - "honchkrow": { - "level": 84, - "moves": ["bravebird", "heatwave", "pursuit", "roost", "suckerpunch", "superpower"], - "doublesMoves": ["bravebird", "heatwave", "protect", "roost", "suckerpunch", "superpower"] - }, - "purugly": { - "level": 88, - "moves": ["fakeout", "knockoff", "quickattack", "return", "suckerpunch", "uturn"], - "doublesMoves": ["fakeout", "knockoff", "protect", "quickattack", "return", "uturn"] - }, - "skuntank": { - "level": 88, - "moves": ["crunch", "defog", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"], - "doublesMoves": ["crunch", "fireblast", "poisonjab", "protect", "snarl", "suckerpunch", "taunt"] - }, - "bronzong": { - "level": 84, - "moves": ["earthquake", "explosion", "ironhead", "lightscreen", "reflect", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "explosion", "gyroball", "lightscreen", "protect", "reflect", "trickroom"] - }, - "chatot": { - "level": 88, - "moves": ["boomburst", "chatter", "heatwave", "hiddenpowerground", "nastyplot", "substitute", "uturn"], - "doublesMoves": ["boomburst", "chatter", "encore", "heatwave", "hypervoice", "nastyplot", "protect", "uturn"] - }, - "spiritomb": { - "level": 90, - "moves": ["calmmind", "darkpulse", "psychic", "pursuit", "rest", "shadowsneak", "sleeptalk", "willowisp"], - "doublesMoves": ["foulplay", "icywind", "protect", "shadowsneak", "snarl", "willowisp"] - }, - "garchomp": { - "level": 80, - "moves": ["dragonclaw", "earthquake", "fireblast", "firefang", "outrage", "stealthrock", "stoneedge", "swordsdance"], - "doublesMoves": ["dragonclaw", "earthquake", "protect", "rockslide", "stoneedge", "swordsdance"] - }, - "garchompmega": { - "level": 80, - "moves": ["dracometeor", "earthquake", "fireblast", "outrage", "stoneedge", "swordsdance"], - "doublesMoves": ["dragonclaw", "earthquake", "fireblast", "protect", "rockslide", "stoneedge", "swordsdance"] - }, - "lucario": { - "level": 82, - "moves": ["aurasphere", "closecombat", "crunch", "darkpulse", "extremespeed", "flashcannon", "meteormash", "nastyplot", "swordsdance", "vacuumwave"], - "doublesMoves": ["closecombat", "darkpulse", "extremespeed", "icepunch", "meteormash", "protect"] - }, - "lucariomega": { - "level": 76, - "moves": ["aurasphere", "closecombat", "extremespeed", "flashcannon", "icepunch", "meteormash", "nastyplot", "swordsdance", "vacuumwave"], - "doublesMoves": ["closecombat", "darkpulse", "extremespeed", "icepunch", "meteormash", "protect", "swordsdance"] - }, - "hippowdon": { - "level": 82, - "moves": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"], - "doublesMoves": ["earthquake", "protect", "rockslide", "slackoff", "stealthrock", "stoneedge", "whirlwind"] - }, - "drapion": { - "level": 84, - "moves": ["aquatail", "earthquake", "knockoff", "poisonjab", "pursuit", "swordsdance", "taunt", "toxicspikes", "whirlwind"], - "doublesMoves": ["aquatail", "knockoff", "poisonjab", "protect", "snarl", "swordsdance", "taunt"] - }, - "toxicroak": { - "level": 84, - "moves": ["drainpunch", "gunkshot", "icepunch", "substitute", "suckerpunch", "swordsdance"], - "doublesMoves": ["drainpunch", "fakeout", "gunkshot", "icepunch", "protect", "suckerpunch", "swordsdance"] - }, - "carnivine": { - "level": 91, - "moves": ["knockoff", "powerwhip", "return", "sleeppowder", "substitute", "swordsdance"], - "doublesMoves": ["knockoff", "powerwhip", "protect", "ragepowder", "return", "sleeppowder", "swordsdance"] - }, - "lumineon": { - "level": 88, - "moves": ["defog", "icebeam", "scald", "toxic", "uturn"], - "doublesMoves": ["defog", "icebeam", "protect", "scald", "tailwind", "toxic", "uturn"] - }, - "abomasnow": { - "level": 88, - "moves": ["blizzard", "earthquake", "focuspunch", "gigadrain", "iceshard", "leechseed", "substitute", "woodhammer"], - "doublesMoves": ["blizzard", "earthquake", "gigadrain", "iceshard", "protect", "woodhammer"] - }, - "abomasnowmega": { - "level": 86, - "moves": ["blizzard", "earthquake", "gigadrain", "hiddenpowerfire", "iceshard", "woodhammer"], - "doublesMoves": ["blizzard", "earthquake", "gigadrain", "iceshard", "protect", "woodhammer"] - }, - "weavile": { - "level": 81, - "moves": ["iceshard", "iciclecrash", "knockoff", "lowkick", "pursuit", "swordsdance"], - "doublesMoves": ["fakeout", "iceshard", "iciclecrash", "knockoff", "lowkick", "protect", "swordsdance"] - }, - "magnezone": { - "level": 81, - "moves": ["flashcannon", "hiddenpowerfire", "substitute", "thunderbolt", "voltswitch"], - "doublesMoves": ["electroweb", "flashcannon", "hiddenpowerfire", "protect", "thunderbolt", "voltswitch"] - }, - "lickilicky": { - "level": 88, - "moves": ["bodyslam", "dragontail", "earthquake", "explosion", "healbell", "knockoff", "powerwhip", "protect", "swordsdance", "wish"], - "doublesMoves": ["bodyslam", "dragontail", "explosion", "knockoff", "powerwhip", "protect", "stompingtantrum"] - }, - "rhyperior": { - "level": 84, - "moves": ["dragontail", "earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge"], - "doublesMoves": ["earthquake", "icepunch", "megahorn", "protect", "rockslide", "stealthrock", "stoneedge"] - }, - "tangrowth": { - "level": 82, - "moves": ["earthquake", "gigadrain", "hiddenpowerfire", "knockoff", "leafstorm", "rockslide", "sleeppowder", "synthesis"], - "doublesMoves": ["earthquake", "focusblast", "gigadrain", "hiddenpowerice", "knockoff", "leechseed", "powerwhip", "protect", "ragepowder", "sleeppowder"] - }, - "electivire": { - "level": 88, - "moves": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], - "doublesMoves": ["crosschop", "flamethrower", "followme", "icepunch", "protect", "stompingtantrum", "wildcharge"] - }, - "magmortar": { - "level": 86, - "moves": ["earthquake", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderbolt"], - "doublesMoves": ["fireblast", "followme", "heatwave", "hiddenpowergrass", "hiddenpowerice", "protect", "taunt", "thunderbolt", "willowisp"] - }, - "togekiss": { - "level": 82, - "moves": ["airslash", "aurasphere", "defog", "healbell", "nastyplot", "roost", "thunderwave"], - "doublesMoves": ["airslash", "dazzlinggleam", "followme", "nastyplot", "protect", "roost", "tailwind", "thunderwave"] - }, - "yanmega": { - "level": 84, - "moves": ["airslash", "bugbuzz", "gigadrain", "protect", "uturn"] - }, - "leafeon": { - "level": 88, - "moves": ["healbell", "knockoff", "leafblade", "swordsdance", "synthesis", "xscissor"], - "doublesMoves": ["helpinghand", "knockoff", "leafblade", "protect", "swordsdance", "xscissor"] - }, - "glaceon": { - "level": 88, - "moves": ["healbell", "hiddenpowerground", "icebeam", "protect", "shadowball", "toxic", "wish"], - "doublesMoves": ["helpinghand", "hiddenpowerground", "icebeam", "protect", "toxic"] - }, - "gliscor": { - "level": 80, - "moves": ["earthquake", "knockoff", "protect", "roost", "stealthrock", "taunt", "toxic", "uturn"], - "doublesMoves": ["earthquake", "facade", "knockoff", "protect", "tailwind", "taunt"] - }, - "mamoswine": { - "level": 82, - "moves": ["earthquake", "endeavor", "iceshard", "iciclecrash", "knockoff", "stealthrock", "superpower"], - "doublesMoves": ["earthquake", "iceshard", "iciclecrash", "knockoff", "protect", "rockslide", "superpower"] - }, - "porygonz": { - "level": 83, - "moves": ["icebeam", "nastyplot", "shadowball", "thunderbolt", "triattack", "trick"], - "doublesMoves": ["darkpulse", "icebeam", "nastyplot", "protect", "thunderbolt", "triattack", "trick"] - }, - "gallade": { - "level": 88, - "moves": ["bulkup", "closecombat", "drainpunch", "icepunch", "knockoff", "shadowsneak", "substitute", "zenheadbutt"], - "doublesMoves": ["closecombat", "helpinghand", "icepunch", "knockoff", "protect", "shadowsneak", "trick", "zenheadbutt"] - }, - "gallademega": { - "level": 81, - "moves": ["closecombat", "icepunch", "knockoff", "swordsdance", "zenheadbutt"], - "doublesMoves": ["closecombat", "drainpunch", "icepunch", "knockoff", "protect", "swordsdance", "zenheadbutt"] - }, - "probopass": { - "level": 88, - "moves": ["earthpower", "flashcannon", "stealthrock", "thunderwave", "toxic", "voltswitch"], - "doublesMoves": ["flashcannon", "helpinghand", "powergem", "protect", "stealthrock", "thunderwave", "wideguard"] - }, - "dusknoir": { - "level": 88, - "moves": ["earthquake", "icepunch", "painsplit", "shadowsneak", "substitute", "willowisp"], - "doublesMoves": ["allyswitch", "helpinghand", "icepunch", "painsplit", "protect", "shadowsneak", "trickroom", "willowisp"] - }, - "froslass": { - "level": 82, - "moves": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"], - "doublesMoves": ["destinybond", "icebeam", "protect", "shadowball", "taunt", "thunderwave", "willowisp"] - }, - "rotom": { - "level": 86, - "moves": ["hiddenpowerice", "painsplit", "shadowball", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"], - "doublesMoves": ["electroweb", "hiddenpowerice", "protect", "shadowball", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomheat": { - "level": 82, - "moves": ["hiddenpowerice", "overheat", "painsplit", "thunderbolt", "voltswitch", "willowisp"], - "doublesMoves": ["electroweb", "overheat", "protect", "thunderbolt", "voltswitch", "willowisp"] - }, - "rotomwash": { - "level": 81, - "moves": ["defog", "hydropump", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], - "doublesMoves": ["electroweb", "hydropump", "protect", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomfrost": { - "level": 88, - "moves": ["blizzard", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], - "doublesMoves": ["blizzard", "electroweb", "protect", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "rotomfan": { - "level": 87, - "moves": ["airslash", "defog", "painsplit", "thunderbolt", "voltswitch", "willowisp"], - "doublesMoves": ["airslash", "electroweb", "protect", "thunderbolt", "voltswitch", "willowisp"] - }, - "rotommow": { - "level": 84, - "moves": ["hiddenpowerfire", "hiddenpowerice", "leafstorm", "thunderbolt", "trick", "voltswitch"], - "doublesMoves": ["electroweb", "hiddenpowerfire", "leafstorm", "protect", "thunderbolt", "trick", "voltswitch", "willowisp"] - }, - "uxie": { - "level": 84, - "moves": ["healbell", "knockoff", "psychic", "stealthrock", "thunderwave", "uturn", "yawn"], - "doublesMoves": ["helpinghand", "knockoff", "protect", "psychic", "stealthrock", "thunderwave", "uturn", "yawn"] - }, - "mesprit": { - "level": 86, - "moves": ["calmmind", "energyball", "healingwish", "hiddenpowerfire", "icebeam", "psychic", "psyshock", "signalbeam", "stealthrock", "uturn"], - "doublesMoves": ["calmmind", "helpinghand", "icebeam", "knockoff", "protect", "psychic", "thunderbolt", "trick", "uturn"] - }, - "azelf": { - "level": 82, - "moves": ["dazzlinggleam", "explosion", "fireblast", "knockoff", "nastyplot", "psyshock", "stealthrock", "taunt"], - "doublesMoves": ["fireblast", "knockoff", "nastyplot", "protect", "psychic", "taunt", "thunderbolt", "uturn"] - }, - "dialga": { - "level": 76, - "moves": ["dracometeor", "fireblast", "flashcannon", "roar", "stealthrock", "thunderbolt", "toxic"], - "doublesMoves": ["dracometeor", "dragonpulse", "earthpower", "fireblast", "flashcannon", "protect", "thunderbolt"] - }, - "palkia": { - "level": 76, - "moves": ["dracometeor", "fireblast", "hydropump", "spacialrend", "thunderwave"], - "doublesMoves": ["dracometeor", "fireblast", "hydropump", "protect", "spacialrend", "thunderbolt"] - }, - "heatran": { - "level": 80, - "moves": ["earthpower", "flashcannon", "lavaplume", "magmastorm", "protect", "roar", "stealthrock", "toxic"], - "doublesMoves": ["earthpower", "flashcannon", "heatwave", "protect", "willowisp"] - }, - "regigigas": { - "level": 88, - "moves": ["confuseray", "drainpunch", "knockoff", "return", "substitute", "thunderwave"], - "doublesMoves": ["icywind", "knockoff", "return", "substitute", "thunderwave", "wideguard"] - }, - "giratinaorigin": { - "level": 76, - "moves": ["defog", "dracometeor", "earthquake", "hex", "shadowsneak", "thunderwave", "willowisp"], - "doublesMoves": ["dracometeor", "dragonpulse", "protect", "shadowball", "shadowsneak", "tailwind", "willowisp"] - }, - "giratina": { - "level": 76, - "moves": ["calmmind", "dragonpulse", "rest", "roar", "shadowball", "sleeptalk", "willowisp"], - "doublesMoves": ["calmmind", "dragonpulse", "dragontail", "protect", "shadowball", "tailwind", "willowisp"] - }, - "cresselia": { - "level": 84, - "moves": ["calmmind", "icebeam", "moonblast", "moonlight", "psychic", "psyshock", "substitute", "thunderwave", "toxic"], - "doublesMoves": ["allyswitch", "helpinghand", "icywind", "moonblast", "moonlight", "protect", "psyshock", "thunderwave", "trickroom"] - }, - "phione": { - "level": 88, - "moves": ["healbell", "icebeam", "knockoff", "scald", "toxic", "uturn"], - "doublesMoves": ["helpinghand", "icywind", "protect", "scald", "uturn"] - }, - "manaphy": { - "level": 80, - "moves": ["energyball", "icebeam", "surf", "tailglow"], - "doublesMoves": ["energyball", "helpinghand", "icebeam", "protect", "scald", "surf", "tailglow"] - }, - "darkrai": { - "level": 76, - "moves": ["darkpulse", "focusblast", "hypnosis", "nastyplot", "sludgebomb", "trick"], - "doublesMoves": ["darkpulse", "focusblast", "nastyplot", "protect", "sludgebomb", "snarl"] - }, - "shaymin": { - "level": 84, - "moves": ["airslash", "earthpower", "leechseed", "psychic", "rest", "seedflare", "substitute"], - "doublesMoves": ["airslash", "earthpower", "leechseed", "protect", "rest", "seedflare", "substitute", "tailwind"] - }, - "shayminsky": { - "level": 76, - "moves": ["airslash", "earthpower", "hiddenpowerice", "leechseed", "seedflare", "substitute"], - "doublesMoves": ["airslash", "earthpower", "hiddenpowerice", "protect", "rest", "seedflare", "tailwind"] - }, - "arceus": { - "level": 75, - "moves": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"], - "doublesMoves": ["earthquake", "extremespeed", "protect", "recover", "shadowclaw", "swordsdance"] - }, - "arceusbug": { - "level": 75, - "moves": ["earthquake", "ironhead", "recover", "stoneedge", "swordsdance", "xscissor"], - "doublesMoves": ["earthquake", "ironhead", "protect", "recover", "stoneedge", "swordsdance", "xscissor"] - }, - "arceusdark": { - "level": 75, - "moves": ["calmmind", "fireblast", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "focusblast", "judgment", "protect", "recover", "snarl", "willowisp"] - }, - "arceusdragon": { - "level": 75, - "moves": ["defog", "earthquake", "extremespeed", "fireblast", "judgment", "outrage", "recover", "swordsdance", "willowisp"], - "doublesMoves": ["dragonclaw", "earthquake", "extremespeed", "protect", "recover", "swordsdance"] - }, - "arceuselectric": { - "level": 75, - "moves": ["calmmind", "earthpower", "icebeam", "judgment", "recover"], - "doublesMoves": ["calmmind", "icebeam", "judgment", "protect", "recover"] - }, - "arceusfairy": { - "level": 75, - "moves": ["calmmind", "defog", "earthpower", "judgment", "recover", "toxic", "willowisp"], - "doublesMoves": ["calmmind", "defog", "earthpower", "judgment", "protect", "recover", "thunderbolt", "willowisp"] - }, - "arceusfighting": { - "level": 75, - "moves": ["calmmind", "icebeam", "judgment", "recover", "roar", "shadowball", "stoneedge"], - "doublesMoves": ["calmmind", "icebeam", "judgment", "protect", "recover", "shadowball", "willowisp"] - }, - "arceusfire": { - "level": 75, - "moves": ["calmmind", "fireblast", "icebeam", "recover", "roar", "thunderbolt"], - "doublesMoves": ["calmmind", "heatwave", "judgment", "protect", "recover", "thunderbolt", "willowisp"] - }, - "arceusflying": { - "level": 75, - "moves": ["calmmind", "earthpower", "fireblast", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "earthpower", "judgment", "protect", "recover", "tailwind"] - }, - "arceusghost": { - "level": 75, - "moves": ["brickbreak", "defog", "extremespeed", "judgment", "recover", "shadowclaw", "shadowforce", "swordsdance", "toxic"], - "doublesMoves": ["brickbreak", "calmmind", "focusblast", "judgment", "protect", "recover", "shadowforce", "swordsdance", "willowisp"] - }, - "arceusgrass": { - "level": 75, - "moves": ["calmmind", "fireblast", "icebeam", "judgment", "recover"], - "doublesMoves": ["calmmind", "heatwave", "icebeam", "judgment", "protect", "recover", "thunderwave"] - }, - "arceusground": { - "level": 75, - "moves": ["earthquake", "icebeam", "recover", "stealthrock", "stoneedge", "swordsdance", "toxic"], - "doublesMoves": ["calmmind", "earthquake", "icebeam", "judgment", "protect", "recover", "rockslide", "stoneedge", "swordsdance"] - }, - "arceusice": { - "level": 75, - "moves": ["calmmind", "fireblast", "judgment", "recover", "thunderbolt"], - "doublesMoves": ["calmmind", "focusblast", "icywind", "judgment", "protect", "recover", "thunderbolt"] - }, - "arceuspoison": { - "level": 75, - "moves": ["calmmind", "defog", "fireblast", "icebeam", "recover", "sludgebomb"], - "doublesMoves": ["calmmind", "earthpower", "heatwave", "judgment", "protect", "recover", "sludgebomb", "willowisp"] - }, - "arceuspsychic": { - "level": 75, - "moves": ["calmmind", "fireblast", "icebeam", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "focusblast", "judgment", "protect", "psyshock", "recover", "willowisp"] - }, - "arceusrock": { - "level": 75, - "moves": ["earthquake", "judgment", "recover", "stealthrock", "stoneedge", "swordsdance", "willowisp"], - "doublesMoves": ["earthquake", "protect", "recover", "rockslide", "stoneedge", "swordsdance"] - }, - "arceussteel": { - "level": 75, - "moves": ["defog", "earthquake", "ironhead", "judgment", "recover", "roar", "stoneedge", "swordsdance", "willowisp"], - "doublesMoves": ["calmmind", "earthpower", "judgment", "protect", "recover", "willowisp"] - }, - "arceuswater": { - "level": 75, - "moves": ["calmmind", "defog", "icebeam", "judgment", "recover", "toxic"], - "doublesMoves": ["calmmind", "fireblast", "icebeam", "icywind", "judgment", "protect", "recover", "surf"] - }, - "victini": { - "level": 80, - "moves": ["blueflare", "boltstrike", "focusblast", "grassknot", "uturn", "vcreate", "zenheadbutt"], - "doublesMoves": ["blueflare", "boltstrike", "protect", "psychic", "uturn", "vcreate"] - }, - "serperior": { - "level": 80, - "moves": ["dragonpulse", "glare", "hiddenpowerfire", "leafstorm", "leechseed", "substitute"], - "doublesMoves": ["dragonpulse", "hiddenpowerfire", "leafstorm", "protect", "taunt"] - }, - "emboar": { - "level": 86, - "moves": ["fireblast", "flareblitz", "grassknot", "headsmash", "suckerpunch", "superpower", "wildcharge"], - "doublesMoves": ["flareblitz", "headsmash", "heatwave", "protect", "rockslide", "superpower", "wildcharge"] - }, - "samurott": { - "level": 86, - "moves": ["aquajet", "grassknot", "hydropump", "icebeam", "liquidation", "megahorn", "sacredsword", "swordsdance"], - "doublesMoves": ["aquajet", "helpinghand", "hiddenpowergrass", "hydropump", "icebeam", "protect", "scald", "taunt"] - }, - "watchog": { - "level": 89, - "moves": ["hypnosis", "knockoff", "return", "substitute", "superfang", "swordsdance"], - "doublesMoves": ["hypnosis", "knockoff", "protect", "return", "superfang", "swordsdance"] - }, - "stoutland": { - "level": 88, - "moves": ["crunch", "icefang", "return", "superpower", "wildcharge"], - "doublesMoves": ["crunch", "protect", "return", "superpower", "wildcharge"] - }, - "liepard": { - "level": 88, - "moves": ["copycat", "encore", "knockoff", "playrough", "substitute", "thunderwave", "uturn"], - "doublesMoves": ["encore", "fakeout", "knockoff", "playrough", "protect", "suckerpunch", "thunderwave", "uturn"] - }, - "simisage": { - "level": 88, - "moves": ["focusblast", "gigadrain", "hiddenpowerice", "knockoff", "leafstorm", "nastyplot", "substitute", "superpower"], - "doublesMoves": ["focusblast", "gigadrain", "helpinghand", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "nastyplot", "spikyshield", "taunt"] - }, - "simisear": { - "level": 88, - "moves": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"], - "doublesMoves": ["fireblast", "focusblast", "grassknot", "heatwave", "nastyplot", "protect", "taunt"] - }, - "simipour": { - "level": 88, - "moves": ["focusblast", "hydropump", "icebeam", "nastyplot", "substitute"], - "doublesMoves": ["helpinghand", "hydropump", "icebeam", "nastyplot", "protect", "taunt"] - }, - "musharna": { - "level": 88, - "moves": ["calmmind", "healbell", "moonlight", "psychic", "psyshock", "signalbeam", "thunderwave"], - "doublesMoves": ["helpinghand", "hypnosis", "moonlight", "protect", "psychic", "signalbeam", "thunderwave", "trickroom"] - }, - "unfezant": { - "level": 88, - "moves": ["hypnosis", "nightslash", "pluck", "return", "roost", "tailwind", "uturn"], - "doublesMoves": ["nightslash", "pluck", "protect", "return", "roost", "tailwind", "taunt", "uturn"] - }, - "zebstrika": { - "level": 88, - "moves": ["hiddenpowergrass", "overheat", "thunderbolt", "voltswitch", "wildcharge"], - "doublesMoves": ["hiddenpowergrass", "overheat", "protect", "voltswitch", "wildcharge"] - }, - "gigalith": { - "level": 84, - "moves": ["earthquake", "explosion", "stealthrock", "stoneedge", "superpower"], - "doublesMoves": ["protect", "rockslide", "stealthrock", "stompingtantrum", "stoneedge", "superpower", "wideguard"] - }, - "swoobat": { - "level": 88, - "moves": ["airslash", "calmmind", "heatwave", "roost", "storedpower"], - "doublesMoves": ["airslash", "calmmind", "heatwave", "protect", "psychic", "tailwind"] - }, - "excadrill": { - "level": 80, - "moves": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"], - "doublesMoves": ["drillrun", "earthquake", "ironhead", "protect", "rockslide", "swordsdance"] - }, - "audino": { - "level": 89, - "moves": ["doubleedge", "encore", "healbell", "protect", "toxic", "wish"], - "doublesMoves": ["healpulse", "helpinghand", "hypervoice", "protect", "thunderwave", "trickroom"] - }, - "audinomega": { - "level": 89, - "moves": ["calmmind", "dazzlinggleam", "fireblast", "healbell", "protect", "wish"], - "doublesMoves": ["dazzlinggleam", "healpulse", "helpinghand", "hypervoice", "protect", "thunderwave", "trickroom"] - }, - "conkeldurr": { - "level": 82, - "moves": ["bulkup", "drainpunch", "facade", "knockoff", "machpunch"], - "doublesMoves": ["drainpunch", "facade", "knockoff", "machpunch", "protect"] - }, - "seismitoad": { - "level": 86, - "moves": ["earthquake", "hydropump", "knockoff", "raindance", "scald", "sludgewave", "stealthrock", "toxic"], - "doublesMoves": ["earthquake", "hydropump", "muddywater", "protect", "raindance", "sludgebomb"] - }, - "throh": { - "level": 88, - "moves": ["bulkup", "circlethrow", "icepunch", "knockoff", "rest", "sleeptalk", "stormthrow"], - "doublesMoves": ["circlethrow", "helpinghand", "icepunch", "knockoff", "protect", "stormthrow"] - }, - "sawk": { - "level": 88, - "moves": ["bulkup", "closecombat", "earthquake", "icepunch", "knockoff", "poisonjab", "stoneedge"], - "doublesMoves": ["closecombat", "icepunch", "knockoff", "protect", "rockslide"] - }, - "leavanny": { - "level": 88, - "moves": ["knockoff", "leafblade", "stickyweb", "swordsdance", "xscissor"], - "doublesMoves": ["leafblade", "protect", "stickyweb", "swordsdance", "xscissor"] - }, - "scolipede": { - "level": 82, - "moves": ["earthquake", "megahorn", "poisonjab", "protect", "spikes", "swordsdance", "toxicspikes"], - "doublesMoves": ["aquatail", "megahorn", "poisonjab", "protect", "rockslide", "superpower", "swordsdance"] - }, - "whimsicott": { - "level": 86, - "moves": ["defog", "encore", "leechseed", "memento", "moonblast", "stunspore", "tailwind", "taunt", "toxic", "uturn"], - "doublesMoves": ["dazzlinggleam", "defog", "encore", "gigadrain", "helpinghand", "leechseed", "moonblast", "protect", "stunspore", "substitute", "tailwind", "taunt", "uturn"] - }, - "lilligant": { - "level": 88, - "moves": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"], - "doublesMoves": ["gigadrain", "helpinghand", "hiddenpowerfire", "hiddenpowerice", "hiddenpowerrock", "petaldance", "protect", "quiverdance", "sleeppowder"] - }, - "basculin": { - "level": 87, - "moves": ["aquajet", "crunch", "headsmash", "liquidation", "superpower"], - "doublesMoves": ["aquajet", "icebeam", "liquidation", "muddywater", "protect", "superpower"] - }, - "basculinbluestriped": { - "level": 87, - "moves": ["aquajet", "crunch", "headsmash", "liquidation", "superpower"], - "doublesMoves": ["aquajet", "icebeam", "liquidation", "muddywater", "protect", "superpower"] - }, - "krookodile": { - "level": 82, - "moves": ["earthquake", "knockoff", "pursuit", "stealthrock", "stoneedge", "superpower"], - "doublesMoves": ["earthquake", "knockoff", "protect", "stoneedge", "superpower"] - }, - "darmanitan": { - "level": 84, - "moves": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"], - "doublesMoves": ["earthquake", "flareblitz", "protect", "rockslide", "superpower", "uturn"] - }, - "maractus": { - "level": 89, - "moves": ["gigadrain", "hiddenpowerfire", "leechseed", "spikes", "spikyshield", "suckerpunch", "toxic"], - "doublesMoves": ["energyball", "helpinghand", "hiddenpowerfire", "leechseed", "spikyshield", "suckerpunch"] - }, - "crustle": { - "level": 85, - "moves": ["earthquake", "shellsmash", "spikes", "stealthrock", "stoneedge", "xscissor"], - "doublesMoves": ["earthquake", "protect", "rockslide", "shellsmash", "stoneedge", "xscissor"] - }, - "scrafty": { - "level": 86, - "moves": ["bulkup", "dragondance", "drainpunch", "highjumpkick", "icepunch", "knockoff", "rest"], - "doublesMoves": ["drainpunch", "fakeout", "icepunch", "knockoff", "protect", "superfang"] - }, - "sigilyph": { - "level": 86, - "moves": ["airslash", "calmmind", "heatwave", "icebeam", "psychic", "psyshock", "roost"], - "doublesMoves": ["airslash", "calmmind", "heatwave", "protect", "psyshock", "tailwind"] - }, - "cofagrigus": { - "level": 87, - "moves": ["haze", "hiddenpowerfighting", "nastyplot", "painsplit", "shadowball", "toxicspikes", "trickroom", "willowisp"], - "doublesMoves": ["hiddenpowerfighting", "nastyplot", "protect", "shadowball", "trickroom", "willowisp"] - }, - "carracosta": { - "level": 88, - "moves": ["aquajet", "earthquake", "liquidation", "shellsmash", "stoneedge"], - "doublesMoves": ["aquajet", "earthquake", "liquidation", "protect", "rockslide", "shellsmash", "stoneedge", "wideguard"] - }, - "archeops": { - "level": 87, - "moves": ["acrobatics", "aquatail", "earthquake", "endeavor", "headsmash", "stoneedge", "uturn"], - "doublesMoves": ["acrobatics", "earthpower", "protect", "rockslide", "stoneedge", "tailwind", "taunt", "uturn"] - }, - "garbodor": { - "level": 86, - "moves": ["gunkshot", "haze", "painsplit", "spikes", "stompingtantrum", "toxic", "toxicspikes"], - "doublesMoves": ["drainpunch", "gunkshot", "painsplit", "protect", "toxicspikes"] - }, - "zoroark": { - "moves": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "sludgebomb", "trick"], - "doublesMoves": ["darkpulse", "flamethrower", "focusblast", "knockoff", "nastyplot", "protect", "suckerpunch", "uturn"] - }, - "cinccino": { - "level": 88, - "moves": ["bulletseed", "knockoff", "rockblast", "tailslap", "uturn"], - "doublesMoves": ["bulletseed", "knockoff", "protect", "rockblast", "tailslap", "uturn"] - }, - "gothitelle": { - "level": 85, - "moves": ["charm", "confide", "rest", "taunt"], - "doublesMoves": ["charm", "healpulse", "protect", "psychic", "shadowball", "taunt", "thunderbolt", "trickroom"] - }, - "reuniclus": { - "level": 85, - "moves": ["calmmind", "focusblast", "psychic", "psyshock", "recover", "shadowball", "trickroom"], - "doublesMoves": ["focusblast", "helpinghand", "protect", "psychic", "shadowball", "trickroom"] - }, - "swanna": { - "level": 88, - "moves": ["bravebird", "defog", "hurricane", "icebeam", "raindance", "roost", "scald"], - "doublesMoves": ["bravebird", "hurricane", "icebeam", "protect", "scald", "tailwind"] - }, - "vanilluxe": { - "level": 86, - "moves": ["autotomize", "blizzard", "explosion", "flashcannon", "freezedry", "hiddenpowerground"], - "doublesMoves": ["autotomize", "blizzard", "flashcannon", "freezedry", "hiddenpowerground", "protect", "taunt"] - }, - "sawsbuck": { - "level": 88, - "moves": ["hornleech", "jumpkick", "return", "substitute", "swordsdance"], - "doublesMoves": ["hornleech", "jumpkick", "protect", "return", "swordsdance"] - }, - "emolga": { - "level": 88, - "moves": ["acrobatics", "encore", "knockoff", "roost", "thunderbolt", "toxic", "uturn"], - "doublesMoves": ["airslash", "encore", "helpinghand", "protect", "roost", "tailwind", "thunderbolt"] - }, - "escavalier": { - "level": 84, - "moves": ["drillrun", "ironhead", "knockoff", "megahorn", "pursuit", "swordsdance"], - "doublesMoves": ["drillrun", "ironhead", "knockoff", "megahorn", "protect", "swordsdance"] - }, - "amoonguss": { - "level": 83, - "moves": ["clearsmog", "foulplay", "gigadrain", "hiddenpowerfire", "sludgebomb", "spore", "synthesis"], - "doublesMoves": ["gigadrain", "hiddenpowerfire", "protect", "ragepowder", "sludgebomb", "spore", "stunspore"] - }, - "jellicent": { - "level": 88, - "moves": ["icebeam", "recover", "scald", "shadowball", "taunt", "toxic", "willowisp"], - "doublesMoves": ["icywind", "protect", "recover", "scald", "shadowball", "trickroom", "willowisp"] - }, - "alomomola": { - "level": 84, - "moves": ["knockoff", "protect", "scald", "toxic", "wish"], - "doublesMoves": ["helpinghand", "icywind", "knockoff", "protect", "scald", "wideguard"] - }, - "galvantula": { - "level": 84, - "moves": ["bugbuzz", "gigadrain", "hiddenpowerice", "stickyweb", "thunder", "voltswitch"], - "doublesMoves": ["bugbuzz", "energyball", "hiddenpowerice", "protect", "stickyweb", "thunder", "voltswitch"] - }, - "ferrothorn": { - "level": 79, - "moves": ["gyroball", "leechseed", "powerwhip", "protect", "spikes", "stealthrock"], - "doublesMoves": ["gyroball", "knockoff", "leechseed", "powerwhip", "protect", "stealthrock"] - }, - "klinklang": { - "level": 86, - "moves": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"], - "doublesMoves": ["geargrind", "protect", "return", "shiftgear", "wildcharge"] - }, - "eelektross": { - "level": 88, - "moves": ["flamethrower", "gigadrain", "hiddenpowerice", "knockoff", "superpower", "thunderbolt", "uturn"], - "doublesMoves": ["flamethrower", "gigadrain", "knockoff", "protect", "thunderbolt", "uturn", "voltswitch"] - }, - "beheeyem": { - "level": 88, - "moves": ["hiddenpowerfighting", "nastyplot", "psychic", "psyshock", "signalbeam", "thunderbolt", "trick", "trickroom"], - "doublesMoves": ["hiddenpowerfighting", "protect", "psychic", "recover", "signalbeam", "thunderbolt", "trick", "trickroom"] - }, - "chandelure": { - "level": 83, - "moves": ["calmmind", "energyball", "fireblast", "hiddenpowerground", "shadowball", "substitute", "trick"], - "doublesMoves": ["energyball", "heatwave", "overheat", "protect", "shadowball", "trick"] - }, - "haxorus": { - "level": 81, - "moves": ["dragondance", "earthquake", "outrage", "poisonjab", "swordsdance", "taunt"], - "doublesMoves": ["dragonclaw", "dragondance", "earthquake", "poisonjab", "protect", "swordsdance", "taunt"] - }, - "beartic": { - "level": 88, - "moves": ["aquajet", "iciclecrash", "nightslash", "stoneedge", "superpower", "swordsdance"], - "doublesMoves": ["aquajet", "iciclecrash", "protect", "stoneedge", "superpower", "swordsdance"] - }, - "cryogonal": { - "level": 88, - "moves": ["freezedry", "haze", "hiddenpowerground", "icebeam", "rapidspin", "recover", "toxic"], - "doublesMoves": ["freezedry", "hiddenpowerground", "icebeam", "icywind", "protect", "recover"] - }, - "accelgor": { - "level": 86, - "moves": ["bugbuzz", "encore", "energyball", "focusblast", "hiddenpowerrock", "spikes", "toxicspikes", "yawn"], - "doublesMoves": ["bugbuzz", "encore", "energyball", "focusblast", "hiddenpowerrock", "protect", "sludgebomb", "yawn"] - }, - "stunfisk": { - "level": 88, - "moves": ["discharge", "earthpower", "rest", "scald", "sleeptalk", "stealthrock", "toxic"], - "doublesMoves": ["discharge", "earthpower", "electroweb", "protect", "scald", "stealthrock"] - }, - "mienshao": { - "level": 84, - "moves": ["fakeout", "highjumpkick", "knockoff", "poisonjab", "stoneedge", "swordsdance", "uturn"], - "doublesMoves": ["drainpunch", "fakeout", "feint", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance", "uturn"] - }, - "druddigon": { - "level": 86, - "moves": ["dragontail", "earthquake", "firepunch", "glare", "gunkshot", "outrage", "stealthrock", "suckerpunch"], - "doublesMoves": ["dragonclaw", "earthquake", "firepunch", "glare", "protect", "suckerpunch", "superpower", "thunderpunch"] - }, - "golurk": { - "level": 88, - "moves": ["dynamicpunch", "earthquake", "icepunch", "rockpolish", "shadowpunch", "stealthrock"], - "doublesMoves": ["dynamicpunch", "earthquake", "icepunch", "protect", "rockpolish", "shadowpunch", "stoneedge"] - }, - "bisharp": { - "level": 82, - "moves": ["ironhead", "knockoff", "lowkick", "suckerpunch", "swordsdance"], - "doublesMoves": ["ironhead", "knockoff", "protect", "suckerpunch", "swordsdance"] - }, - "bouffalant": { - "level": 88, - "moves": ["earthquake", "headcharge", "megahorn", "stoneedge", "superpower", "swordsdance"], - "doublesMoves": ["headcharge", "megahorn", "protect", "stompingtantrum", "stoneedge", "superpower", "swordsdance"] - }, - "braviary": { - "level": 86, - "moves": ["bravebird", "bulkup", "return", "roost", "substitute", "superpower", "uturn"], - "doublesMoves": ["bravebird", "protect", "return", "skydrop", "superpower", "tailwind", "uturn"] - }, - "mandibuzz": { - "level": 84, - "moves": ["bravebird", "defog", "foulplay", "roost", "taunt", "toxic", "uturn"], - "doublesMoves": ["bravebird", "knockoff", "protect", "roost", "snarl", "tailwind", "taunt", "uturn"] - }, - "heatmor": { - "level": 88, - "moves": ["fireblast", "focusblast", "gigadrain", "knockoff", "suckerpunch"], - "doublesMoves": ["firelash", "gigadrain", "incinerate", "protect", "suckerpunch", "superpower"] - }, - "durant": { - "level": 83, - "moves": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"], - "doublesMoves": ["honeclaws", "ironhead", "protect", "rockslide", "superpower", "xscissor"] - }, - "hydreigon": { - "level": 82, - "moves": ["darkpulse", "dracometeor", "earthpower", "fireblast", "flashcannon", "roost", "superpower", "uturn"], - "doublesMoves": ["darkpulse", "dracometeor", "fireblast", "flashcannon", "protect", "tailwind", "uturn"] - }, - "volcarona": { - "level": 79, - "moves": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerground", "quiverdance", "roost"], - "doublesMoves": ["bugbuzz", "fierydance", "gigadrain", "heatwave", "protect", "quiverdance", "tailwind"] - }, - "cobalion": { - "level": 81, - "moves": ["closecombat", "ironhead", "stealthrock", "stoneedge", "swordsdance", "voltswitch"], - "doublesMoves": ["closecombat", "ironhead", "protect", "stoneedge", "swordsdance", "thunderwave"] - }, - "terrakion": { - "level": 81, - "moves": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance"], - "doublesMoves": ["closecombat", "protect", "rockslide", "stompingtantrum", "stoneedge", "taunt"] - }, - "virizion": { - "level": 83, - "moves": ["closecombat", "leafblade", "stoneedge", "swordsdance"], - "doublesMoves": ["closecombat", "leafblade", "protect", "stoneedge", "swordsdance", "taunt"] - }, - "tornadus": { - "level": 83, - "moves": ["defog", "grassknot", "heatwave", "hurricane", "superpower", "tailwind", "uturn"], - "doublesMoves": ["heatwave", "hurricane", "protect", "skydrop", "superpower", "tailwind", "taunt", "uturn"] - }, - "tornadustherian": { - "level": 80, - "moves": ["heatwave", "hurricane", "knockoff", "superpower", "taunt", "uturn"], - "doublesMoves": ["heatwave", "hurricane", "protect", "skydrop", "tailwind", "taunt", "uturn"] - }, - "thundurus": { - "level": 82, - "moves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "knockoff", "nastyplot", "substitute", "taunt", "thunderbolt", "thunderwave"], - "doublesMoves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "knockoff", "nastyplot", "protect", "taunt", "thunderbolt", "thunderwave"] - }, - "thundurustherian": { - "level": 82, - "moves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], - "doublesMoves": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "protect", "thunderbolt", "voltswitch"] - }, - "reshiram": { - "level": 76, - "moves": ["blueflare", "dracometeor", "dragonpulse", "flamecharge", "roost", "stoneedge", "toxic"], - "doublesMoves": ["blueflare", "dracometeor", "dragonpulse", "flamecharge", "heatwave", "protect", "roost", "tailwind"] - }, - "zekrom": { - "level": 76, - "moves": ["boltstrike", "dracometeor", "dragonclaw", "honeclaws", "outrage", "roost", "substitute", "voltswitch"], - "doublesMoves": ["boltstrike", "dracometeor", "dragonclaw", "honeclaws", "protect", "roost", "tailwind"] - }, - "landorus": { - "level": 77, - "moves": ["calmmind", "earthpower", "focusblast", "knockoff", "psychic", "rockpolish", "rockslide", "sludgewave", "stealthrock"], - "doublesMoves": ["earthpower", "focusblast", "hiddenpowerice", "protect", "psychic", "rockslide", "sludgebomb"] - }, - "landorustherian": { - "level": 80, - "moves": ["earthquake", "fly", "rockpolish", "stealthrock", "stoneedge", "superpower", "swordsdance", "uturn"], - "doublesMoves": ["earthquake", "fly", "knockoff", "protect", "rockslide", "stoneedge", "superpower", "swordsdance", "uturn"] - }, - "kyurem": { - "level": 83, - "moves": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage", "roost", "substitute"], - "doublesMoves": ["dracometeor", "dragonpulse", "earthpower", "glaciate", "icebeam", "protect", "roost"] - }, - "kyuremblack": { - "level": 80, - "moves": ["dragonclaw", "earthpower", "fusionbolt", "icebeam", "outrage", "roost", "substitute"], - "doublesMoves": ["dragonclaw", "earthpower", "fusionbolt", "icebeam", "protect", "roost"] - }, - "kyuremwhite": { - "level": 77, - "moves": ["dracometeor", "earthpower", "focusblast", "fusionflare", "icebeam", "roost", "toxic"], - "doublesMoves": ["dracometeor", "dragonpulse", "earthpower", "fusionflare", "icebeam", "protect", "roost"] - }, - "keldeo": { - "level": 80, - "moves": ["calmmind", "hiddenpowerelectric", "hiddenpowerflying", "hydropump", "icywind", "scald", "secretsword", "substitute"], - "doublesMoves": ["calmmind", "hiddenpowerelectric", "hiddenpowerflying", "hydropump", "icywind", "protect", "secretsword", "taunt"] - }, - "meloetta": { - "level": 84, - "moves": ["calmmind", "focusblast", "hypervoice", "psyshock", "shadowball", "trick", "uturn"], - "doublesMoves": ["calmmind", "focusblast", "hypervoice", "protect", "psyshock", "shadowball"] - }, - "meloettapirouette": { - "level": 84, - "moves": ["closecombat", "knockoff", "relicsong", "return"], - "doublesMoves": ["closecombat", "knockoff", "protect", "relicsong", "return"] - }, - "genesect": { - "level": 76, - "moves": ["blazekick", "extremespeed", "flamethrower", "icebeam", "ironhead", "shiftgear", "technoblast", "thunderbolt", "uturn"], - "doublesMoves": ["bugbuzz", "extremespeed", "flamethrower", "icebeam", "ironhead", "protect", "technoblast", "thunderbolt", "uturn"] - }, - "chesnaught": { - "level": 83, - "moves": ["drainpunch", "leechseed", "spikes", "spikyshield", "synthesis", "woodhammer"], - "doublesMoves": ["hammerarm", "leechseed", "rockslide", "spikyshield", "stoneedge", "woodhammer"] - }, - "delphox": { - "level": 86, - "moves": ["calmmind", "fireblast", "grassknot", "psyshock", "shadowball", "switcheroo"], - "doublesMoves": ["calmmind", "fireblast", "grassknot", "heatwave", "protect", "psyshock", "switcheroo"] - }, - "greninja": { - "level": 80, - "moves": ["gunkshot", "hydropump", "icebeam", "spikes", "taunt", "toxicspikes", "uturn"], - "doublesMoves": ["darkpulse", "gunkshot", "hydropump", "icebeam", "matblock", "protect", "taunt", "uturn"] - }, - "greninjaash": { - "level": 80, - "moves": ["darkpulse", "hydropump", "icebeam", "uturn", "watershuriken"] - }, - "diggersby": { - "level": 82, - "moves": ["agility", "earthquake", "knockoff", "quickattack", "return", "swordsdance", "uturn", "wildcharge"], - "doublesMoves": ["earthquake", "knockoff", "protect", "quickattack", "return", "uturn"] - }, - "talonflame": { - "level": 84, - "moves": ["bravebird", "flareblitz", "overheat", "roost", "swordsdance", "uturn", "willowisp"], - "doublesMoves": ["bravebird", "flareblitz", "protect", "roost", "swordsdance", "tailwind", "taunt", "uturn", "willowisp"] - }, - "vivillon": { - "level": 86, - "moves": ["energyball", "hurricane", "quiverdance", "sleeppowder", "substitute"], - "doublesMoves": ["bugbuzz", "hurricane", "protect", "quiverdance", "sleeppowder"] - }, - "pyroar": { - "level": 88, - "moves": ["darkpulse", "fireblast", "hypervoice", "solarbeam", "sunnyday", "willowisp"], - "doublesMoves": ["fireblast", "hypervoice", "protect", "solarbeam", "sunnyday", "willowisp"] - }, - "floetteeternal": { - "level": 80, - "moves": ["hiddenpowerfire", "hiddenpowerground", "lightofruin", "moonblast", "psychic"], - "doublesMoves": ["calmmind", "dazzlinggleam", "hiddenpowerfire", "lightofruin", "protect", "psychic"] - }, - "florges": { - "level": 84, - "moves": ["aromatherapy", "defog", "moonblast", "protect", "synthesis", "toxic", "wish"], - "doublesMoves": ["calmmind", "dazzlinggleam", "defog", "helpinghand", "moonblast", "protect", "psychic"] - }, - "gogoat": { - "level": 88, - "moves": ["bulkup", "earthquake", "hornleech", "leechseed", "milkdrink", "rockslide", "substitute"], - "doublesMoves": ["brickbreak", "bulkup", "earthquake", "hornleech", "leechseed", "milkdrink", "protect", "rockslide"] - }, - "pangoro": { - "level": 86, - "moves": ["bulletpunch", "drainpunch", "icepunch", "knockoff", "superpower", "swordsdance"], - "doublesMoves": ["gunkshot", "hammerarm", "icepunch", "knockoff", "partingshot", "protect"] - }, - "furfrou": { - "level": 87, - "moves": ["cottonguard", "rest", "return", "substitute", "suckerpunch", "thunderwave", "toxic", "uturn"], - "doublesMoves": ["cottonguard", "protect", "return", "snarl", "thunderwave", "uturn"] - }, - "meowstic": { - "level": 88, - "moves": ["healbell", "lightscreen", "psychic", "reflect", "thunderwave", "toxic", "yawn"], - "doublesMoves": ["fakeout", "lightscreen", "protect", "psychic", "reflect", "thunderwave"] - }, - "meowsticf": { - "level": 88, - "moves": ["calmmind", "energyball", "psychic", "psyshock", "shadowball", "thunderbolt"], - "doublesMoves": ["darkpulse", "energyball", "fakeout", "helpinghand", "nastyplot", "protect", "psychic", "thunderbolt"] - }, - "doublade": { - "level": 82, - "moves": ["ironhead", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], - "doublesMoves": ["ironhead", "protect", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"] - }, - "aegislash": { - "level": 77, - "moves": ["flashcannon", "hiddenpowerice", "kingsshield", "shadowball", "shadowsneak", "toxic"], - "doublesMoves": ["flashcannon", "hiddenpowerice", "kingsshield", "shadowball", "shadowsneak"] - }, - "aegislashblade": { - "level": 77, - "moves": ["ironhead", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], - "doublesMoves": ["ironhead", "kingsshield", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"] - }, - "aromatisse": { - "level": 89, - "moves": ["calmmind", "moonblast", "rest", "sleeptalk", "toxic"], - "doublesMoves": ["healpulse", "moonblast", "protect", "thunderbolt", "trickroom"] - }, - "slurpuff": { - "level": 83, - "moves": ["bellydrum", "drainpunch", "playrough", "return"], - "doublesMoves": ["bellydrum", "drainpunch", "playrough", "protect", "return"] - }, - "malamar": { - "level": 84, - "moves": ["happyhour", "knockoff", "psychocut", "rest", "sleeptalk", "superpower"], - "doublesMoves": ["knockoff", "protect", "psychocut", "rockslide", "superpower", "trickroom"] - }, - "barbaracle": { - "level": 85, - "moves": ["earthquake", "liquidation", "lowkick", "shellsmash", "stoneedge"], - "doublesMoves": ["crosschop", "liquidation", "protect", "rockslide", "shellsmash"] - }, - "dragalge": { - "level": 84, - "moves": ["dracometeor", "dragonpulse", "focusblast", "hiddenpowerfire", "scald", "sludgewave", "toxicspikes"], - "doublesMoves": ["dracometeor", "dragonpulse", "focusblast", "hiddenpowerfire", "protect", "scald", "sludgebomb"] - }, - "clawitzer": { - "level": 86, - "moves": ["aurasphere", "darkpulse", "icebeam", "scald", "uturn", "waterpulse"], - "doublesMoves": ["aurasphere", "darkpulse", "helpinghand", "icebeam", "muddywater", "protect", "uturn", "waterpulse"] - }, - "heliolisk": { - "level": 86, - "moves": ["darkpulse", "hiddenpowerice", "hypervoice", "raindance", "surf", "thunderbolt", "voltswitch"], - "doublesMoves": ["darkpulse", "grassknot", "hypervoice", "protect", "thunderbolt", "voltswitch"] - }, - "tyrantrum": { - "level": 84, - "moves": ["dragonclaw", "dragondance", "earthquake", "headsmash", "outrage", "stealthrock", "superpower"], - "doublesMoves": ["dragonclaw", "dragondance", "earthquake", "headsmash", "protect", "rockslide"] - }, - "aurorus": { - "level": 88, - "moves": ["ancientpower", "blizzard", "earthpower", "freezedry", "hypervoice", "stealthrock", "thunderwave"], - "doublesMoves": ["ancientpower", "earthpower", "freezedry", "hypervoice", "icywind", "protect", "thunderwave"] - }, - "sylveon": { - "level": 83, - "moves": ["calmmind", "hiddenpowerfire", "hypervoice", "protect", "psyshock", "wish"], - "doublesMoves": ["helpinghand", "hiddenpowerground", "hypervoice", "protect", "psyshock", "shadowball"] - }, - "hawlucha": { - "level": 80, - "moves": ["acrobatics", "highjumpkick", "skyattack", "substitute", "swordsdance"], - "doublesMoves": ["acrobatics", "encore", "highjumpkick", "protect", "swordsdance"] - }, - "dedenne": { - "level": 88, - "moves": ["protect", "recycle", "thunderbolt", "toxic"], - "doublesMoves": ["eerieimpulse", "helpinghand", "nuzzle", "recycle", "superfang", "thunderbolt"] - }, - "carbink": { - "level": 88, - "moves": ["explosion", "lightscreen", "moonblast", "powergem", "reflect", "stealthrock"], - "doublesMoves": ["explosion", "lightscreen", "moonblast", "protect", "reflect", "stealthrock", "trickroom"] - }, - "goodra": { - "level": 84, - "moves": ["dracometeor", "dragontail", "earthquake", "fireblast", "powerwhip", "sludgebomb", "thunderbolt"], - "doublesMoves": ["dracometeor", "dragonpulse", "fireblast", "muddywater", "powerwhip", "protect", "thunderbolt"] - }, - "klefki": { - "level": 82, - "moves": ["dazzlinggleam", "foulplay", "magnetrise", "spikes", "thunderwave", "toxic"], - "doublesMoves": ["dazzlinggleam", "foulplay", "lightscreen", "playrough", "protect", "reflect", "thunderwave"] - }, - "trevenant": { - "level": 88, - "moves": ["earthquake", "hornleech", "rockslide", "shadowclaw", "trickroom", "woodhammer"], - "doublesMoves": ["hornleech", "leechseed", "protect", "rockslide", "shadowclaw", "trickroom", "willowisp", "woodhammer"] - }, - "gourgeistsmall": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["leechseed", "phantomforce", "protect", "seedbomb", "shadowsneak", "willowisp"] - }, - "gourgeistlarge": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["leechseed", "phantomforce", "protect", "seedbomb", "shadowsneak", "trickroom", "willowisp"] - }, - "gourgeist": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["leechseed", "phantomforce", "protect", "seedbomb", "shadowsneak", "willowisp"] - }, - "gourgeistsuper": { - "level": 88, - "moves": ["leechseed", "seedbomb", "shadowsneak", "substitute", "synthesis", "willowisp"], - "doublesMoves": ["leechseed", "phantomforce", "protect", "seedbomb", "shadowsneak", "trickroom", "willowisp"] - }, - "avalugg": { - "level": 88, - "moves": ["avalanche", "earthquake", "rapidspin", "recover", "roar", "toxic"], - "doublesMoves": ["avalanche", "earthquake", "protect", "recover"] - }, - "noivern": { - "level": 84, - "moves": ["boomburst", "dracometeor", "flamethrower", "hurricane", "roost", "switcheroo", "taunt", "uturn"], - "doublesMoves": ["dracometeor", "flamethrower", "hurricane", "protect", "switcheroo", "tailwind", "taunt", "uturn"] - }, - "xerneas": { - "level": 73, - "moves": ["focusblast", "geomancy", "hiddenpowerfire", "moonblast", "psyshock", "thunderbolt"], - "doublesMoves": ["closecombat", "dazzlinggleam", "focusblast", "geomancy", "hiddenpowerfire", "protect", "psyshock", "rockslide", "thunderbolt"] - }, - "yveltal": { - "level": 75, - "moves": ["darkpulse", "focusblast", "foulplay", "knockoff", "oblivionwing", "roost", "suckerpunch", "taunt", "toxic", "uturn"], - "doublesMoves": ["darkpulse", "heatwave", "oblivionwing", "protect", "roost", "skydrop", "snarl", "suckerpunch", "taunt"] - }, - "zygarde": { - "level": 74, - "moves": ["dragondance", "extremespeed", "outrage", "substitute", "thousandarrows"], - "doublesMoves": ["coil", "dragondance", "extremespeed", "glare", "protect", "rockslide", "stoneedge", "thousandarrows"] - }, - "zygarde10": { - "level": 84, - "moves": ["coil", "extremespeed", "irontail", "outrage", "thousandarrows"], - "doublesMoves": ["dragondance", "extremespeed", "irontail", "protect", "thousandarrows"] - }, - "diancie": { - "level": 84, - "moves": ["diamondstorm", "earthpower", "lightscreen", "moonblast", "reflect", "stealthrock"], - "doublesMoves": ["calmmind", "dazzlinggleam", "diamondstorm", "earthpower", "moonblast", "protect"] - }, - "dianciemega": { - "level": 78, - "moves": ["calmmind", "diamondstorm", "earthpower", "hiddenpowerfire", "moonblast"], - "doublesMoves": ["calmmind", "dazzlinggleam", "diamondstorm", "earthpower", "hiddenpowerfire", "moonblast", "protect", "psyshock"] - }, - "hoopa": { - "level": 85, - "moves": ["focusblast", "nastyplot", "psyshock", "shadowball", "trick"], - "doublesMoves": ["focusblast", "hyperspacehole", "protect", "shadowball", "trickroom"] - }, - "hoopaunbound": { - "level": 82, - "moves": ["darkpulse", "drainpunch", "focusblast", "gunkshot", "hyperspacefury", "icepunch", "nastyplot", "psychic", "substitute", "trick", "zenheadbutt"], - "doublesMoves": ["darkpulse", "drainpunch", "focusblast", "gunkshot", "hyperspacefury", "icepunch", "protect", "psychic", "zenheadbutt"] - }, - "volcanion": { - "level": 82, - "moves": ["earthpower", "fireblast", "sludgebomb", "steameruption", "substitute", "superpower"], - "doublesMoves": ["earthpower", "heatwave", "protect", "sludgebomb", "steameruption"] - }, - "decidueye": { - "level": 86, - "moves": ["leafblade", "roost", "shadowsneak", "spiritshackle", "swordsdance", "uturn"], - "doublesMoves": ["bravebird", "leafblade", "protect", "spiritshackle", "suckerpunch"] - }, - "incineroar": { - "level": 85, - "moves": ["darkestlariat", "earthquake", "fakeout", "flareblitz", "knockoff", "uturn"], - "doublesMoves": ["fakeout", "flareblitz", "knockoff", "snarl", "taunt", "uturn", "willowisp"] - }, - "primarina": { - "level": 82, - "moves": ["energyball", "hiddenpowerfire", "hydropump", "moonblast", "psychic", "scald"], - "doublesMoves": ["hypervoice", "icebeam", "moonblast", "protect", "psychic"] - }, - "toucannon": { - "level": 88, - "moves": ["beakblast", "boomburst", "brickbreak", "bulletseed", "roost"], - "doublesMoves": ["beakblast", "bulletseed", "protect", "rockblast", "tailwind"] - }, - "gumshoos": { - "level": 89, - "moves": ["crunch", "earthquake", "firepunch", "return", "uturn"], - "doublesMoves": ["crunch", "protect", "return", "superfang", "uturn"] - }, - "vikavolt": { - "level": 86, - "moves": ["agility", "bugbuzz", "energyball", "hiddenpowerice", "thunderbolt", "voltswitch"], - "doublesMoves": ["bugbuzz", "hiddenpowerice", "protect", "stringshot", "thunderbolt", "voltswitch"] - }, - "crabominable": { - "level": 88, - "moves": ["closecombat", "earthquake", "icehammer", "stoneedge"], - "doublesMoves": ["closecombat", "earthquake", "icehammer", "protect", "stoneedge", "wideguard"] - }, - "oricorio": { - "level": 88, - "moves": ["calmmind", "hurricane", "revelationdance", "roost", "toxic", "uturn"], - "doublesMoves": ["airslash", "hurricane", "protect", "revelationdance", "tailwind"] - }, - "oricoriopompom": { - "level": 88, - "moves": ["calmmind", "hurricane", "revelationdance", "roost", "toxic", "uturn"], - "doublesMoves": ["airslash", "hurricane", "protect", "revelationdance", "tailwind"] - }, - "oricoriopau": { - "level": 89, - "moves": ["calmmind", "hurricane", "revelationdance", "roost", "toxic", "uturn"], - "doublesMoves": ["airslash", "hurricane", "protect", "revelationdance", "tailwind"] - }, - "oricoriosensu": { - "level": 88, - "moves": ["calmmind", "hurricane", "revelationdance", "roost", "toxic", "uturn"], - "doublesMoves": ["airslash", "hurricane", "protect", "revelationdance", "tailwind"] - }, - "ribombee": { - "level": 84, - "moves": ["bugbuzz", "hiddenpowerfire", "moonblast", "quiverdance", "roost", "stickyweb"], - "doublesMoves": ["moonblast", "pollenpuff", "protect", "quiverdance", "stickyweb"] - }, - "lycanroc": { - "level": 86, - "moves": ["accelerock", "drillrun", "firefang", "stoneedge", "swordsdance"], - "doublesMoves": ["accelerock", "crunch", "firefang", "protect", "stoneedge", "taunt"] - }, - "lycanrocmidnight": { - "level": 87, - "moves": ["firepunch", "stealthrock", "stoneedge", "suckerpunch", "swordsdance"], - "doublesMoves": ["protect", "stoneedge", "suckerpunch", "swordsdance", "taunt"] - }, - "lycanrocdusk": { - "level": 84, - "moves": ["accelerock", "drillrun", "firefang", "return", "stoneedge", "swordsdance"], - "doublesMoves": ["accelerock", "drillrun", "firefang", "protect", "rockslide", "stoneedge"] - }, - "wishiwashischool": { - "level": 88, - "moves": ["earthquake", "hiddenpowergrass", "hydropump", "icebeam", "scald"], - "doublesMoves": ["earthquake", "endeavor", "helpinghand", "hiddenpowergrass", "hydropump", "icebeam", "protect"] - }, - "toxapex": { - "level": 80, - "moves": ["banefulbunker", "haze", "recover", "scald", "toxicspikes"], - "doublesMoves": ["banefulbunker", "haze", "recover", "scald", "toxicspikes", "wideguard"] - }, - "mudsdale": { - "level": 87, - "moves": ["closecombat", "earthquake", "heavyslam", "rockslide", "stealthrock"], - "doublesMoves": ["closecombat", "heavyslam", "highhorsepower", "protect", "rockslide"] - }, - "araquanid": { - "level": 83, - "moves": ["liquidation", "lunge", "mirrorcoat", "stickyweb", "toxic"], - "doublesMoves": ["liquidation", "lunge", "protect", "stickyweb", "wideguard"] - }, - "lurantis": { - "level": 89, - "moves": ["hiddenpowerice", "knockoff", "leafstorm", "superpower", "synthesis"], - "doublesMoves": ["hiddenpowerice", "knockoff", "leafstorm", "protect", "superpower"] - }, - "shiinotic": { - "level": 88, - "moves": ["gigadrain", "leechseed", "moonblast", "spore", "strengthsap"], - "doublesMoves": ["gigadrain", "leechseed", "moonblast", "protect", "spore", "strengthsap"] - }, - "salazzle": { - "level": 84, - "moves": ["fireblast", "hiddenpowergrass", "nastyplot", "sludgewave"], - "doublesMoves": ["encore", "fakeout", "flamethrower", "hiddenpowergrass", "hiddenpowerground", "protect", "sludgebomb", "taunt"] - }, - "bewear": { - "level": 84, - "moves": ["doubleedge", "hammerarm", "icepunch", "return", "shadowclaw", "swordsdance"], - "doublesMoves": ["doubleedge", "hammerarm", "icepunch", "protect", "wideguard"] - }, - "tsareena": { - "level": 85, - "moves": ["highjumpkick", "knockoff", "powerwhip", "rapidspin", "synthesis", "uturn"], - "doublesMoves": ["feint", "knockoff", "playrough", "powerwhip", "protect", "uturn"] - }, - "comfey": { - "level": 86, - "moves": ["aromatherapy", "drainingkiss", "synthesis", "toxic", "uturn"], - "doublesMoves": ["drainingkiss", "floralhealing", "taunt", "toxic", "uturn"] - }, - "oranguru": { - "level": 88, - "moves": ["focusblast", "nastyplot", "psyshock", "thunderbolt", "trickroom"], - "doublesMoves": ["foulplay", "instruct", "protect", "psychic", "trickroom"] - }, - "passimian": { - "level": 85, - "moves": ["closecombat", "earthquake", "gunkshot", "knockoff", "rockslide", "uturn"], - "doublesMoves": ["closecombat", "knockoff", "protect", "rockslide", "taunt", "uturn"] - }, - "golisopod": { - "level": 84, - "moves": ["aquajet", "firstimpression", "knockoff", "liquidation", "spikes"], - "doublesMoves": ["aquajet", "firstimpression", "leechlife", "liquidation", "protect", "wideguard"] - }, - "palossand": { - "level": 87, - "moves": ["earthpower", "shadowball", "shoreup", "stealthrock", "toxic"], - "doublesMoves": ["earthpower", "protect", "shadowball", "shoreup", "stealthrock", "toxic"] - }, - "pyukumuku": { - "level": 88, - "moves": ["block", "recover", "soak", "toxic"], - "doublesMoves": ["counter", "helpinghand", "lightscreen", "memento", "reflect"] - }, - "typenull": { - "level": 87, - "moves": ["rest", "return", "sleeptalk", "swordsdance", "uturn"] - }, - "silvally": { - "level": 88, - "moves": ["crunch", "doubleedge", "flamecharge", "flamethrower", "icebeam", "ironhead", "return", "swordsdance", "uturn"], - "doublesMoves": ["crunch", "doubleedge", "explosion", "flamecharge", "icebeam", "partingshot", "protect", "swordsdance", "uturn"] - }, - "silvallybug": { - "level": 88, - "moves": ["defog", "flamethrower", "icebeam", "thunderbolt", "uturn"], - "doublesMoves": ["flamethrower", "icebeam", "protect", "thunderbolt", "thunderwave", "uturn"] - }, - "silvallydark": { - "level": 88, - "moves": ["flamecharge", "ironhead", "multiattack", "swordsdance"], - "doublesMoves": ["icebeam", "multiattack", "partingshot", "protect", "snarl", "thunderwave", "uturn"] - }, - "silvallydragon": { - "level": 88, - "moves": ["dracometeor", "flamecharge", "flamethrower", "icebeam", "ironhead", "multiattack", "swordsdance", "uturn"], - "doublesMoves": ["flamethrower", "icebeam", "multiattack", "partingshot", "protect", "thunderwave", "uturn"] - }, - "silvallyelectric": { - "level": 88, - "moves": ["flamethrower", "icebeam", "multiattack", "partingshot", "toxic"], - "doublesMoves": ["icebeam", "partingshot", "protect", "snarl", "thunderbolt", "thunderwave", "uturn"] - }, - "silvallyfairy": { - "level": 88, - "moves": ["flamethrower", "multiattack", "partingshot", "rockslide", "thunderwave"], - "doublesMoves": ["flamethrower", "icebeam", "multiattack", "partingshot", "protect", "thunderwave", "uturn"] - }, - "silvallyfighting": { - "level": 88, - "moves": ["flamecharge", "ironhead", "multiattack", "shadowclaw", "swordsdance"], - "doublesMoves": ["flamecharge", "multiattack", "protect", "rockslide", "swordsdance"] - }, - "silvallyfire": { - "level": 88, - "moves": ["defog", "icebeam", "multiattack", "thunderbolt", "uturn"], - "doublesMoves": ["flamethrower", "icebeam", "protect", "snarl", "thunderbolt", "thunderwave", "uturn"] - }, - "silvallyflying": { - "level": 88, - "moves": ["flamethrower", "ironhead", "multiattack", "partingshot", "thunderwave"], - "doublesMoves": ["flamecharge", "ironhead", "multiattack", "partingshot", "protect", "swordsdance", "thunderwave", "uturn"] - }, - "silvallyghost": { - "level": 88, - "moves": ["flamethrower", "icebeam", "multiattack", "partingshot", "toxic"], - "doublesMoves": ["icebeam", "multiattack", "partingshot", "protect", "uturn"] - }, - "silvallygrass": { - "level": 88, - "moves": ["flamethrower", "icebeam", "multiattack", "partingshot", "toxic"], - "doublesMoves": ["flamethrower", "icebeam", "multiattack", "partingshot", "protect", "thunderwave", "uturn"] - }, - "silvallyground": { - "level": 88, - "moves": ["flamecharge", "multiattack", "rockslide", "swordsdance"], - "doublesMoves": ["flamecharge", "icebeam", "multiattack", "protect", "rockslide", "swordsdance", "thunderbolt"] - }, - "silvallyice": { - "level": 88, - "moves": ["flamethrower", "multiattack", "thunderbolt", "toxic", "uturn"], - "doublesMoves": ["icebeam", "partingshot", "protect", "thunderbolt", "thunderwave", "uturn"] - }, - "silvallypoison": { - "level": 88, - "moves": ["flamethrower", "icebeam", "multiattack", "partingshot", "toxic"], - "doublesMoves": ["flamethrower", "icebeam", "multiattack", "partingshot", "protect", "thunderwave", "uturn"] - }, - "silvallypsychic": { - "level": 88, - "moves": ["flamethrower", "multiattack", "partingshot", "rockslide", "thunderwave"], - "doublesMoves": ["flamethrower", "multiattack", "partingshot", "protect", "thunderwave", "uturn"] - }, - "silvallyrock": { - "level": 88, - "moves": ["flamethrower", "grasspledge", "multiattack", "partingshot", "toxic"], - "doublesMoves": ["flamethrower", "icebeam", "partingshot", "protect", "rockslide", "uturn"] - }, - "silvallysteel": { - "level": 88, - "moves": ["crunch", "defog", "flamethrower", "multiattack", "thunderbolt"], - "doublesMoves": ["flamecharge", "multiattack", "partingshot", "protect", "rockslide", "swordsdance", "uturn"] - }, - "silvallywater": { - "level": 88, - "moves": ["defog", "icebeam", "multiattack", "partingshot", "thunderbolt"], - "doublesMoves": ["flamethrower", "icebeam", "multiattack", "partingshot", "protect", "thunderbolt", "thunderwave", "uturn"] - }, - "minior": { - "level": 83, - "moves": ["acrobatics", "earthquake", "powergem", "shellsmash"], - "doublesMoves": ["acrobatics", "earthquake", "powergem", "protect", "shellsmash"] - }, - "komala": { - "level": 88, - "moves": ["earthquake", "playrough", "return", "suckerpunch", "uturn", "woodhammer"], - "doublesMoves": ["playrough", "protect", "return", "shadowclaw", "suckerpunch", "swordsdance", "uturn", "woodhammer"] - }, - "turtonator": { - "level": 88, - "moves": ["dracometeor", "dragonpulse", "dragontail", "earthquake", "explosion", "fireblast", "shellsmash"], - "doublesMoves": ["dracometeor", "dragonpulse", "fireblast", "protect", "shellsmash"] - }, - "togedemaru": { - "level": 86, - "moves": ["ironhead", "nuzzle", "spikyshield", "uturn", "wish", "zingzap"], - "doublesMoves": ["encore", "fakeout", "ironhead", "nuzzle", "spikyshield", "uturn", "zingzap"] - }, - "mimikyu": { - "level": 79, - "moves": ["playrough", "shadowclaw", "shadowsneak", "swordsdance", "taunt"], - "doublesMoves": ["playrough", "protect", "shadowclaw", "shadowsneak", "swordsdance", "willowisp"] - }, - "bruxish": { - "level": 86, - "moves": ["aquajet", "crunch", "icefang", "liquidation", "psychicfangs", "swordsdance"], - "doublesMoves": ["aquajet", "crunch", "liquidation", "protect", "psychicfangs", "swordsdance"] - }, - "drampa": { - "level": 88, - "moves": ["dracometeor", "dragonpulse", "fireblast", "glare", "hypervoice", "roost", "thunderbolt"], - "doublesMoves": ["dracometeor", "dragonpulse", "fireblast", "glare", "hypervoice", "protect", "roost"] - }, - "dhelmise": { - "level": 87, - "moves": ["anchorshot", "earthquake", "knockoff", "powerwhip", "rapidspin", "synthesis"], - "doublesMoves": ["anchorshot", "knockoff", "powerwhip", "protect", "rapidspin"] - }, - "kommoo": { - "level": 77, - "moves": ["clangingscales", "closecombat", "dragondance", "outrage", "poisonjab"], - "doublesMoves": ["clangingscales", "closecombat", "dragondance", "poisonjab"] - }, - "tapukoko": { - "level": 79, - "moves": ["bravebird", "dazzlinggleam", "defog", "naturesmadness", "thunderbolt", "uturn"], - "doublesMoves": ["dazzlinggleam", "hiddenpowerice", "naturesmadness", "protect", "skydrop", "taunt", "thunderbolt", "uturn"] - }, - "tapulele": { - "level": 80, - "moves": ["calmmind", "focusblast", "hiddenpowerfire", "moonblast", "psychic", "psyshock"], - "doublesMoves": ["dazzlinggleam", "focusblast", "moonblast", "protect", "psychic", "taunt"] - }, - "tapubulu": { - "level": 81, - "moves": ["bulkup", "hornleech", "megahorn", "stoneedge", "superpower", "woodhammer"], - "doublesMoves": ["hornleech", "naturesmadness", "protect", "stoneedge", "superpower", "woodhammer"] - }, - "tapufini": { - "level": 80, - "moves": ["calmmind", "hydropump", "icebeam", "moonblast", "scald", "taunt"], - "doublesMoves": ["healpulse", "moonblast", "muddywater", "naturesmadness", "protect", "swagger", "taunt"] - }, - "solgaleo": { - "level": 76, - "moves": ["earthquake", "flareblitz", "morningsun", "stoneedge", "sunsteelstrike", "zenheadbutt"], - "doublesMoves": ["flareblitz", "morningsun", "protect", "sunsteelstrike", "wideguard", "zenheadbutt"] - }, - "lunala": { - "level": 75, - "moves": ["calmmind", "focusblast", "moonblast", "moongeistbeam", "psyshock", "roost"], - "doublesMoves": ["moonblast", "moongeistbeam", "protect", "psychic", "roost", "wideguard"] - }, - "nihilego": { - "level": 82, - "moves": ["grassknot", "powergem", "sludgewave", "stealthrock", "thunderbolt", "toxicspikes"], - "doublesMoves": ["grassknot", "hiddenpowerice", "powergem", "protect", "sludgebomb", "thunderbolt"] - }, - "buzzwole": { - "level": 81, - "moves": ["drainpunch", "earthquake", "leechlife", "poisonjab", "stoneedge", "superpower"], - "doublesMoves": ["drainpunch", "icepunch", "leechlife", "poisonjab", "protect", "superpower"] - }, - "pheromosa": { - "level": 76, - "moves": ["highjumpkick", "icebeam", "poisonjab", "throatchop", "uturn"], - "doublesMoves": ["bugbuzz", "highjumpkick", "icebeam", "poisonjab", "protect", "speedswap", "uturn"] - }, - "xurkitree": { - "level": 82, - "moves": ["dazzlinggleam", "electricterrain", "energyball", "hiddenpowerice", "thunderbolt", "voltswitch"], - "doublesMoves": ["energyball", "hiddenpowerice", "hypnosis", "protect", "tailglow", "thunderbolt"] - }, - "celesteela": { - "level": 80, - "moves": ["airslash", "autotomize", "earthquake", "fireblast", "heavyslam", "leechseed", "protect"], - "doublesMoves": ["earthquake", "fireblast", "heavyslam", "leechseed", "protect", "wideguard"] - }, - "kartana": { - "level": 77, - "moves": ["knockoff", "leafblade", "sacredsword", "smartstrike", "swordsdance"], - "doublesMoves": ["knockoff", "leafblade", "protect", "sacredsword", "smartstrike", "swordsdance"] - }, - "guzzlord": { - "level": 88, - "moves": ["dracometeor", "earthquake", "fireblast", "heavyslam", "knockoff"], - "doublesMoves": ["dracometeor", "fireblast", "knockoff", "protect", "wideguard"] - }, - "necrozma": { - "level": 84, - "moves": ["calmmind", "heatwave", "moonlight", "photongeyser", "stealthrock"], - "doublesMoves": ["calmmind", "earthpower", "heatwave", "moonlight", "photongeyser"] - }, - "necrozmaduskmane": { - "level": 73, - "moves": ["autotomize", "earthquake", "knockoff", "photongeyser", "sunsteelstrike", "swordsdance"], - "doublesMoves": ["earthquake", "knockoff", "photongeyser", "rockslide", "sunsteelstrike", "swordsdance"] - }, - "necrozmadawnwings": { - "level": 74, - "moves": ["calmmind", "heatwave", "moongeistbeam", "photongeyser", "powergem", "trickroom"] - }, - "magearna": { - "level": 79, - "moves": ["calmmind", "flashcannon", "fleurcannon", "focusblast", "ironhead", "shiftgear", "thunderbolt"], - "doublesMoves": ["aurasphere", "dazzlinggleam", "flashcannon", "fleurcannon", "protect", "trickroom", "voltswitch"] - }, - "marshadow": { - "level": 73, - "moves": ["bulkup", "closecombat", "icepunch", "rocktomb", "shadowsneak", "spectralthief"], - "doublesMoves": ["bulkup", "closecombat", "icepunch", "protect", "shadowsneak", "spectralthief"] - }, - "naganadel": { - "level": 76, - "moves": ["dracometeor", "dragonpulse", "fireblast", "nastyplot", "sludgewave", "uturn"], - "doublesMoves": ["dracometeor", "dragonpulse", "fireblast", "protect", "sludgebomb", "tailwind", "uturn"] - }, - "stakataka": { - "level": 84, - "moves": ["earthquake", "gyroball", "stealthrock", "stoneedge", "superpower", "trickroom"], - "doublesMoves": ["earthquake", "gyroball", "rockslide", "stealthrock", "stoneedge", "superpower", "trickroom"] - }, - "blacephalon": { - "level": 80, - "moves": ["calmmind", "explosion", "fireblast", "hiddenpowerice", "shadowball", "trick"], - "doublesMoves": ["fireblast", "heatwave", "hiddenpowerice", "protect", "shadowball", "willowisp"] - }, - "zeraora": { - "level": 81, - "moves": ["closecombat", "grassknot", "hiddenpowerice", "knockoff", "plasmafists", "voltswitch", "workup"], - "doublesMoves": ["closecombat", "fakeout", "grassknot", "hiddenpowerice", "knockoff", "plasmafists", "protect", "voltswitch"] - } -} diff --git a/data/mods/gen7/random-teams.ts b/data/mods/gen7/random-teams.ts deleted file mode 100644 index 6336b8b3b90e..000000000000 --- a/data/mods/gen7/random-teams.ts +++ /dev/null @@ -1,2223 +0,0 @@ -import {MoveCounter, RandomGen8Teams, TeamData, OldRandomBattleSpecies} from '../gen8/random-teams'; -import {PRNG, PRNGSeed} from '../../../sim/prng'; -import {Utils} from '../../../lib'; -import {toID} from '../../../sim/dex'; - -export interface BattleFactorySpecies { - flags: {megaOnly?: 1, zmoveOnly?: 1, limEevee?: 1}; - sets: BattleFactorySet[]; -} -interface BattleFactorySet { - species: string; - item: string; - ability: string; - nature: string; - moves: string[]; - evs?: Partial; - ivs?: Partial; -} - -const ZeroAttackHPIVs: {[k: string]: SparseStatsTable} = { - grass: {hp: 30, spa: 30}, - fire: {spa: 30, spe: 30}, - ice: {def: 30}, - ground: {spa: 30, spd: 30}, - fighting: {def: 30, spa: 30, spd: 30, spe: 30}, - electric: {def: 30, spe: 30}, - psychic: {spe: 30}, - flying: {spa: 30, spd: 30, spe: 30}, - rock: {def: 30, spd: 30, spe: 30}, -}; - -export class RandomGen7Teams extends RandomGen8Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); - - constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { - super(format, prng); - - this.noStab = [...this.noStab, 'voltswitch']; - - this.moveEnforcementCheckers = { - Bug: (movePool, moves, abilities, types, counter) => (['megahorn', 'pinmissile'].some(m => movePool.includes(m)) || - !counter.get('Bug') && abilities.has('Tinted Lens')), - Dark: (movePool, moves, abilities, types, counter, species) => ( - (!counter.get('Dark') && !abilities.has('Protean')) || - (moves.has('pursuit') && species.types.length > 1 && counter.get('Dark') === 1) - ), - Dragon: (movePool, moves, abilities, types, counter) => ( - !counter.get('Dragon') && - !abilities.has('Aerilate') && !abilities.has('Pixilate') && - !moves.has('dragonascent') && !moves.has('fly') && !moves.has('rest') && !moves.has('sleeptalk') - ), - Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric') || movePool.includes('thunder'), - Fairy: (movePool, moves, abilities, types, counter) => ( - (!counter.get('Fairy') && !types.has('Flying') && !abilities.has('Pixilate')) - ), - Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting') || !counter.get('stab'), - Fire: (movePool, moves, abilities, types, counter) => ( - !counter.get('Fire') || ['eruption', 'quiverdance'].some(m => movePool.includes(m)) || - moves.has('flamecharge') && (movePool.includes('flareblitz') || movePool.includes('blueflare')) - ), - Flying: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Flying') && ( - species.id === 'rotomfan' || - abilities.has('Gale Wings') || - abilities.has('Serene Grace') || ( - types.has('Normal') && (movePool.includes('beakblast') || movePool.includes('bravebird')) - ) - ) - ), - Ghost: (movePool, moves, abilities, types, counter) => ( - (!counter.get('Ghost') || movePool.includes('spectralthief')) && - !types.has('Dark') && - !abilities.has('Steelworker') - ), - Grass: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Grass') && (species.baseStats.atk >= 100 || movePool.includes('leafstorm')) - ), - Ground: (movePool, moves, abilities, types, counter) => ( - !counter.get('Ground') && !moves.has('rest') && !moves.has('sleeptalk') - ), - Ice: (movePool, moves, abilities, types, counter) => ( - !abilities.has('Refrigerate') && ( - !counter.get('Ice') || - movePool.includes('iciclecrash') || - (abilities.has('Snow Warning') && movePool.includes('blizzard')) - ) - ), - Normal: movePool => movePool.includes('facade'), - Poison: (movePool, moves, abilities, types, counter) => ( - !counter.get('Poison') && - (!!counter.setupType || abilities.has('Adaptability') || abilities.has('Sheer Force') || movePool.includes('gunkshot')) - ), - Psychic: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Psychic') && ( - abilities.has('Psychic Surge') || - movePool.includes('psychicfangs') || - (!types.has('Steel') && !types.has('Flying') && !abilities.has('Pixilate') && - counter.get('stab') < species.types.length) - ) - ), - Rock: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Rock') && - !types.has('Fairy') && - (counter.setupType === 'Physical' || species.baseStats.atk >= 105 || abilities.has('Rock Head')) - ), - Steel: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Steel') && (species.baseStats.atk >= 100 || abilities.has('Steelworker')) - ), - Water: (movePool, moves, abilities, types, counter, species) => ( - (!counter.get('Water') && !abilities.has('Protean')) || - !counter.get('stab') || - movePool.includes('crabhammer') || - (abilities.has('Huge Power') && movePool.includes('aquajet')) - ), - Adaptability: (movePool, moves, abilities, types, counter, species) => ( - !counter.setupType && - species.types.length > 1 && - (!counter.get(species.types[0]) || !counter.get(species.types[1])) - ), - Contrary: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('contrary') && species.name !== 'Shuckle' - ), - 'Slow Start': movePool => movePool.includes('substitute'), - protect: movePool => movePool.includes('wish'), - wish: (movePool, moves, abilities, types, counter, species) => ( - species.baseStats.hp < 110 && !abilities.has('Regenerator') && movePool.includes('protect') - ), - }; - } - - shouldCullMove( - move: Move, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean - ): {cull: boolean, isSetup?: boolean} { - const hasRestTalk = moves.has('rest') && moves.has('sleeptalk'); - switch (move.id) { - // Not very useful without their supporting moves - case 'clangingscales': case 'electricterrain': case 'happyhour': case 'holdhands': - return { - cull: !!teamDetails.zMove || hasRestTalk, - isSetup: move.id === 'happyhour' || move.id === 'holdhands', - }; - case 'cottonguard': case 'defendorder': - return {cull: !counter.get('recovery') && !moves.has('rest')}; - case 'bounce': case 'dig': case 'fly': - return {cull: !!teamDetails.zMove || counter.setupType !== 'Physical'}; - case 'focuspunch': - return {cull: !moves.has('substitute') || counter.damagingMoves.size < 2}; - case 'icebeam': - return {cull: abilities.has('Tinted Lens') && !!counter.get('Status')}; - case 'lightscreen': - if (movePool.length > 1) { - const screen = movePool.indexOf('reflect'); - if (screen >= 0) this.fastPop(movePool, screen); - } - return {cull: !moves.has('reflect')}; - case 'perishsong': - return {cull: !moves.has('protect')}; - case 'reflect': - if (movePool.length > 1) { - const screen = movePool.indexOf('lightscreen'); - if (screen >= 0) this.fastPop(movePool, screen); - } - return {cull: !moves.has('calmmind') && !moves.has('lightscreen')}; - case 'rest': - return {cull: movePool.includes('sleeptalk')}; - case 'sleeptalk': - if (movePool.length > 1) { - const rest = movePool.indexOf('rest'); - if (rest >= 0) this.fastPop(movePool, rest); - } - return {cull: !moves.has('rest')}; - case 'storedpower': - return {cull: !counter.setupType}; - case 'switcheroo': case 'trick': - return {cull: ( - counter.get('Physical') + counter.get('Special') < 3 || - ['electroweb', 'snarl', 'suckerpunch'].some(m => moves.has(m)) - )}; - - // Set up once and only if we have the moves for it - case 'bellydrum': case 'bulkup': case 'coil': case 'curse': case 'dragondance': case 'honeclaws': case 'swordsdance': - return {cull: ( - counter.setupType !== 'Physical' || - counter.get('physicalsetup') > 1 || - (counter.get('Physical') + counter.get('physicalpool') < 2 && !hasRestTalk) || - (move.id === 'bulkup' && hasRestTalk) || - (move.id === 'bellydrum' && !abilities.has('Unburden') && !counter.get('priority')) - ), isSetup: true}; - case 'calmmind': case 'geomancy': case 'nastyplot': case 'tailglow': - if (types.has('Dark') && moves.has('darkpulse')) { - counter.setupType = 'Special'; - return {cull: false, isSetup: true}; - } - return {cull: ( - counter.setupType !== 'Special' || - counter.get('specialsetup') > 1 || - (counter.get('Special') + counter.get('specialpool') < 2 && !hasRestTalk) - ), isSetup: true}; - case 'growth': case 'shellsmash': case 'workup': - return {cull: ( - counter.setupType !== 'Mixed' || - counter.get('mixedsetup') > 1 || - counter.damagingMoves.size + counter.get('physicalpool') + counter.get('specialpool') < 2 || - (move.id === 'growth' && !moves.has('sunnyday')) - ), isSetup: true}; - case 'agility': case 'autotomize': case 'rockpolish': case 'shiftgear': - return {cull: counter.damagingMoves.size < 2 || hasRestTalk, isSetup: !counter.setupType}; - case 'flamecharge': - return {cull: ( - moves.has('dracometeor') || - moves.has('overheat') || - (counter.damagingMoves.size < 3 && !counter.setupType) - )}; - - // Bad after setup - case 'circlethrow': case 'dragontail': - return {cull: ( - !!counter.get('speedsetup') || - (isDoubles && moves.has('superpower')) || - (!!counter.setupType && ((!moves.has('rest') && !moves.has('sleeptalk')) || moves.has('stormthrow'))) || - ['encore', 'raindance', 'roar', 'trickroom', 'whirlwind'].some(m => moves.has(m)) || - (counter.get(move.type) > 1 && counter.get('Status') > 1) || - (abilities.has('Sheer Force') && !!counter.get('sheerforce')) - )}; - case 'defog': - return {cull: !!counter.setupType || moves.has('spikes') || moves.has('stealthrock') || !!teamDetails.defog}; - case 'fakeout': case 'tailwind': - return {cull: !!counter.setupType || ['substitute', 'switcheroo', 'trick'].some(m => moves.has(m))}; - case 'foulplay': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - counter.get('Dark') > 2 || - moves.has('clearsmog') || - (!!counter.get('priority') && counter.damagingMoves.size - 1 === counter.get('priority')) || - hasRestTalk - )}; - case 'haze': case 'spikes': - return {cull: !!counter.setupType || !!counter.get('speedsetup') || moves.has('trickroom')}; - case 'healbell': case 'technoblast': - return {cull: !!counter.get('speedsetup')}; - case 'healingwish': case 'memento': - return {cull: !!counter.setupType || !!counter.get('recovery') || moves.has('substitute')}; - case 'helpinghand': case 'superfang': case 'yawn': - return {cull: !!counter.setupType}; - case 'icywind': case 'stringshot': - return {cull: !!counter.get('speedsetup') || moves.has('trickroom')}; - case 'leechseed': case 'roar': case 'whirlwind': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - moves.has('dragontail') || - (isDoubles && (movePool.includes('protect') || movePool.includes('spikyshield'))) - )}; - case 'protect': - const doublesCondition = ( - moves.has('fakeout') || - (moves.has('tailwind') && moves.has('roost')) || - movePool.includes('bellydrum') || - movePool.includes('shellsmash') - ); - const singlesCondition = ( - (counter.setupType && !moves.has('wish')) || - (!['Guts', 'Harvest', 'Poison Heal', 'Quick Feet', 'Speed Boost'].some(abil => abilities.has(abil)) && - !['leechseed', 'perishsong', 'toxic', 'wish'].some(m => moves.has(m)) && - species.id !== 'sharpedomega') - ); - return {cull: ( - (isDoubles ? doublesCondition : singlesCondition) || - !!counter.get('speedsetup') || - moves.has('rest') || moves.has('roar') || moves.has('whirlwind') || - (moves.has('lightscreen') && moves.has('reflect')) - )}; - case 'pursuit': - return {cull: ( - !!counter.setupType || - counter.get('Status') > 1 || - counter.get('Dark') > 2 || - (moves.has('knockoff') && !types.has('Dark')) - )}; - case 'rapidspin': - return {cull: !!counter.setupType || !!teamDetails.rapidSpin}; - case 'reversal': - return {cull: moves.has('substitute') && !!teamDetails.zMove}; - case 'seismictoss': - return {cull: !abilities.has('Parental Bond') && (counter.damagingMoves.size > 1 || !!counter.setupType)}; - case 'stealthrock': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - ['rest', 'substitute', 'trickroom'].some(m => moves.has(m)) || - !!teamDetails.stealthRock - )}; - case 'stickyweb': - return {cull: !!teamDetails.stickyWeb}; - case 'toxicspikes': - return {cull: !!counter.setupType || !!teamDetails.toxicSpikes}; - case 'trickroom': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - counter.damagingMoves.size < 2 || - moves.has('lightscreen') || - moves.has('reflect') - )}; - case 'uturn': - return {cull: ( - (abilities.has('Speed Boost') && moves.has('protect')) || - (abilities.has('Protean') && counter.get('Status') > 2) || - !!counter.setupType || - !!counter.get('speedsetup') - )}; - case 'voltswitch': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - ['electricterrain', 'raindance', 'uturn'].some(m => moves.has(m)) - )}; - case 'wish': - return {cull: ( - species.baseStats.hp < 110 && - !abilities.has('Regenerator') && - !movePool.includes('protect') && - !['ironhead', 'protect', 'spikyshield', 'uturn'].some(m => moves.has(m)) - )}; - - // Bit redundant to have both - // Attacks: - case 'bugbite': case 'bugbuzz': case 'infestation': case 'signalbeam': - return {cull: moves.has('uturn') && !counter.setupType && !abilities.has('Tinted Lens')}; - case 'darkestlariat': case 'nightslash': - return {cull: moves.has('knockoff') || moves.has('pursuit')}; - case 'darkpulse': - return {cull: ['crunch', 'knockoff', 'hyperspacefury'].some(m => moves.has(m)) && counter.setupType !== 'Special'}; - case 'suckerpunch': - return {cull: counter.damagingMoves.size < 2 || moves.has('glare') || !types.has('Dark') && counter.get('Dark') > 1}; - case 'dracometeor': - return {cull: hasRestTalk}; - case 'dragonpulse': case 'spacialrend': - return {cull: moves.has('dracometeor') || moves.has('outrage') || (moves.has('dragontail') && !counter.setupType)}; - case 'outrage': - return {cull: ( - moves.has('dragonclaw') || - (moves.has('dracometeor') && counter.damagingMoves.size < 3) || - (moves.has('clangingscales') && !teamDetails.zMove) - )}; - case 'thunderbolt': - return {cull: ['discharge', 'wildcharge'].some(m => moves.has(m))}; - case 'moonblast': - return {cull: isDoubles && moves.has('dazzlinggleam')}; - case 'aurasphere': case 'focusblast': - return {cull: ( - hasRestTalk || - ((moves.has('closecombat') || moves.has('superpower')) && counter.setupType !== 'Special') - )}; - case 'drainpunch': - return {cull: ( - (!moves.has('bulkup') && (moves.has('closecombat') || moves.has('highjumpkick'))) || - ((moves.has('focusblast') || moves.has('superpower')) && counter.setupType !== 'Physical') - )}; - case 'closecombat': case 'highjumpkick': - return {cull: ( - (moves.has('bulkup') && moves.has('drainpunch')) || - (counter.setupType === 'Special' && ['aurasphere', 'focusblast'].some(m => moves.has(m) || movePool.includes(m))) - )}; - case 'dynamicpunch': case 'vacuumwave': - return {cull: (moves.has('closecombat') || moves.has('facade')) && counter.setupType !== 'Special'}; - case 'stormthrow': - return {cull: moves.has('circlethrow') && hasRestTalk}; - case 'superpower': - return { - cull: (counter.get('Fighting') > 1 && !!counter.setupType) || (hasRestTalk && !abilities.has('Contrary')), - isSetup: abilities.has('Contrary'), - }; - case 'fierydance': case 'heatwave': - return {cull: moves.has('fireblast') && (!!counter.get('Status') || isDoubles)}; - case 'firefang': case 'firepunch': case 'flamethrower': - return {cull: ( - ['blazekick', 'heatwave', 'overheat'].some(m => moves.has(m)) || - ((moves.has('fireblast') || moves.has('lavaplume')) && counter.setupType !== 'Physical') - )}; - case 'fireblast': case 'magmastorm': - return {cull: ( - (moves.has('flareblitz') && counter.setupType !== 'Special') || - (moves.has('lavaplume') && !counter.setupType && !counter.get('speedsetup')) - )}; - case 'lavaplume': - return {cull: moves.has('firepunch') || moves.has('fireblast') && (!!counter.setupType || !!counter.get('speedsetup'))}; - case 'overheat': - return {cull: ['fireblast', 'flareblitz', 'lavaplume'].some(m => moves.has(m))}; - case 'hurricane': - return {cull: moves.has('bravebird') || moves.has('airslash') && !!counter.get('Status')}; - case 'hex': - return {cull: !moves.has('thunderwave') && !moves.has('willowisp')}; - case 'shadowball': - return {cull: moves.has('darkpulse') || (moves.has('hex') && moves.has('willowisp'))}; - case 'shadowclaw': - return {cull: ( - moves.has('shadowforce') || - moves.has('shadowsneak') || - (moves.has('shadowball') && counter.setupType !== 'Physical') - )}; - case 'shadowsneak': - return {cull: ( - moves.has('trick') || - hasRestTalk || - (types.has('Ghost') && species.types.length > 1 && counter.get('stab') < 2) - )}; - case 'gigadrain': - return {cull: ( - moves.has('petaldance') || - moves.has('powerwhip') || - (!isDoubles && moves.has('seedbomb')) || - (moves.has('leafstorm') && counter.get('Special') < 4 && !counter.setupType && !moves.has('trickroom')) - )}; - case 'leafblade': case 'woodhammer': - return {cull: ( - (moves.has('gigadrain') && counter.setupType !== 'Physical') || - (moves.has('hornleech') && !!counter.setupType) - )}; - case 'leafstorm': - return {cull: ( - moves.has('trickroom') || - (isDoubles && moves.has('energyball')) || - (counter.get('Grass') > 1 && !!counter.setupType) - )}; - case 'seedbomb': - return {cull: moves.has('leafstorm') || isDoubles && moves.has('gigadrain')}; - case 'solarbeam': - return {cull: ( - (!abilities.has('Drought') && !moves.has('sunnyday')) || - moves.has('gigadrain') || - moves.has('leafstorm') - )}; - case 'bonemerang': case 'precipiceblades': - return {cull: moves.has('earthquake')}; - case 'earthpower': - return {cull: moves.has('earthquake') && counter.setupType !== 'Special'}; - case 'earthquake': - return {cull: isDoubles && moves.has('highhorsepower') || moves.has('closecombat') && abilities.has('Aerilate')}; - case 'freezedry': - return {cull: ( - moves.has('icebeam') || moves.has('icywind') || counter.get('stab') < species.types.length || - (moves.has('blizzard') && !!counter.setupType) - )}; - case 'bodyslam': case 'return': - return {cull: ( - moves.has('doubleedge') || - (moves.has('glare') && moves.has('headbutt')) || - (move.id === 'return' && moves.has('bodyslam')) - )}; - case 'endeavor': - return {cull: !isLead && !abilities.has('Defeatist')}; - case 'explosion': - return {cull: ( - !!counter.setupType || - moves.has('wish') || - (abilities.has('Refrigerate') && (moves.has('freezedry') || movePool.includes('return'))) - )}; - case 'extremespeed': case 'skyattack': - return {cull: moves.has('substitute') || counter.setupType !== 'Physical' && moves.has('vacuumwave')}; - case 'facade': - return {cull: moves.has('bulkup') || hasRestTalk}; - case 'hiddenpower': - return {cull: ( - moves.has('rest') || - (!counter.get('stab') && counter.damagingMoves.size < 2) || - // Force Moonblast on Special-setup Fairies - (counter.setupType === 'Special' && types.has('Fairy') && movePool.includes('moonblast')) - )}; - case 'hypervoice': - return {cull: moves.has('blizzard')}; - case 'judgment': - return {cull: counter.setupType !== 'Special' && counter.get('stab') > 1}; - case 'quickattack': - return {cull: ( - !!counter.get('speedsetup') || - (types.has('Rock') && !!counter.get('Status')) || - moves.has('feint') || - (types.has('Normal') && !counter.get('stab')) - )}; - case 'weatherball': - return {cull: !moves.has('raindance') && !moves.has('sunnyday')}; - case 'poisonjab': - return {cull: moves.has('gunkshot')}; - case 'acidspray': case 'sludgewave': - return {cull: moves.has('poisonjab') || moves.has('sludgebomb')}; - case 'psychic': - return {cull: moves.has('psyshock')}; - case 'psychocut': case 'zenheadbutt': - return {cull: ( - ((moves.has('psychic') || moves.has('psyshock')) && counter.setupType !== 'Physical') || - (abilities.has('Contrary') && !counter.setupType && !!counter.get('physicalpool')) - )}; - case 'psyshock': - const psychic = movePool.indexOf('psychic'); - if (psychic >= 0) this.fastPop(movePool, psychic); - return {cull: false}; - case 'headsmash': - return {cull: moves.has('stoneedge') || isDoubles && moves.has('rockslide')}; - case 'rockblast': case 'rockslide': - return {cull: (moves.has('headsmash') || moves.has('stoneedge')) && !isDoubles}; - case 'stoneedge': - return {cull: moves.has('rockslide') || (species.id === 'machamp' && !moves.has('dynamicpunch'))}; - case 'bulletpunch': - return {cull: types.has('Steel') && counter.get('stab') < 2 && !abilities.has('Technician')}; - case 'flashcannon': - return {cull: (moves.has('ironhead') || moves.has('meteormash')) && counter.setupType !== 'Special'}; - case 'hydropump': - return {cull: ( - moves.has('liquidation') || - moves.has('waterfall') || - hasRestTalk || ( - moves.has('scald') && - ((counter.get('Special') < 4 && !moves.has('uturn')) || (species.types.length > 1 && counter.get('stab') < 3)) - ) - )}; - case 'muddywater': - return {cull: isDoubles && (moves.has('scald') || moves.has('hydropump'))}; - case 'originpulse': case 'surf': - return {cull: moves.has('hydropump') || moves.has('scald')}; - case 'scald': - return {cull: ['liquidation', 'waterfall', 'waterpulse'].some(m => moves.has(m))}; - - // Status: - case 'electroweb': case 'stunspore': case 'thunderwave': - return {cull: ( - !!counter.setupType || - !!counter.get('speedsetup') || - hasRestTalk || - ['discharge', 'spore', 'toxic', 'trickroom', 'yawn'].some(m => moves.has(m)) - )}; - case 'glare': case 'headbutt': - return {cull: moves.has('bodyslam') || !moves.has('glare')}; - case 'toxic': - const otherStatus = ['hypnosis', 'sleeppowder', 'toxicspikes', 'willowisp', 'yawn'].some(m => moves.has(m)); - return {cull: otherStatus || !!counter.setupType || moves.has('flamecharge') || moves.has('raindance')}; - case 'raindance': - return {cull: ( - counter.get('Physical') + counter.get('Special') < 2 || - hasRestTalk || - moves.has('rest') || - (!types.has('Water') && !counter.get('Water')) - )}; - case 'sunnyday': - const cull = ( - counter.get('Physical') + counter.get('Special') < 2 || - (!abilities.has('Chlorophyll') && !abilities.has('Flower Gift') && !moves.has('solarbeam')) || - hasRestTalk - ); - - if (cull && movePool.length > 1) { - const solarbeam = movePool.indexOf('solarbeam'); - if (solarbeam >= 0) this.fastPop(movePool, solarbeam); - if (movePool.length > 1) { - const weatherball = movePool.indexOf('weatherball'); - if (weatherball >= 0) this.fastPop(movePool, weatherball); - } - } - - return {cull}; - case 'painsplit': case 'recover': case 'roost': case 'synthesis': - return {cull: ( - moves.has('leechseed') || moves.has('rest') || - (moves.has('wish') && (moves.has('protect') || movePool.includes('protect'))) - )}; - case 'substitute': - const moveBasedCull = ['copycat', 'dragondance', 'shiftgear'].some(m => movePool.includes(m)); - return {cull: ( - moves.has('dracometeor') || - (moves.has('leafstorm') && !abilities.has('Contrary')) || - ['encore', 'pursuit', 'rest', 'taunt', 'uturn', 'voltswitch', 'whirlwind'].some(m => moves.has(m)) || - moveBasedCull - )}; - case 'powersplit': - return {cull: moves.has('guardsplit')}; - case 'wideguard': - return {cull: moves.has('protect')}; - case 'bravebird': - // Hurricane > Brave Bird in the rain - return {cull: (moves.has('raindance') || abilities.has('Drizzle')) && movePool.includes('hurricane')}; - } - return {cull: false}; - } - - shouldCullAbility( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isDoubles: boolean - ): boolean { - switch (ability) { - case 'Battle Bond': case 'Dazzling': case 'Flare Boost': case 'Hyper Cutter': - case 'Ice Body': case 'Innards Out': case 'Moody': case 'Steadfast': case 'Magician': - return true; - case 'Aerilate': case 'Galvanize': case 'Pixilate': case 'Refrigerate': - return !counter.get('Normal'); - case 'Analytic': case 'Download': - return species.nfe; - case 'Battle Armor': case 'Sturdy': - return (!!counter.get('recoil') && !counter.get('recovery')); - case 'Chlorophyll': case 'Leaf Guard': - return ( - species.baseStats.spe > 100 || - abilities.has('Harvest') || - (!moves.has('sunnyday') && !teamDetails.sun) - ); - case 'Competitive': - return (!counter.get('Special') || moves.has('sleeptalk') && moves.has('rest')); - case 'Compound Eyes': case 'No Guard': - return !counter.get('inaccurate'); - case 'Contrary': case 'Iron Fist': case 'Skill Link': case 'Strong Jaw': - return !counter.get(toID(ability)); - case 'Defiant': case 'Justified': case 'Moxie': - return !counter.get('Physical') || moves.has('dragontail'); - case 'Flash Fire': - return abilities.has('Drought'); - case 'Gluttony': - return !moves.has('bellydrum'); - case 'Harvest': - return abilities.has('Frisk'); - case 'Hustle': - return counter.get('Physical') < 2; - case 'Hydration': case 'Rain Dish': case 'Swift Swim': - return ( - species.baseStats.spe > 100 || !moves.has('raindance') && !teamDetails.rain || - !moves.has('raindance') && ['Rock Head', 'Water Absorb'].some(abil => abilities.has(abil)) - ); - case 'Slush Rush': case 'Snow Cloak': - return !teamDetails.hail; - case 'Immunity': case 'Snow Warning': - return (moves.has('facade') || moves.has('hypervoice')); - case 'Intimidate': - return (moves.has('bodyslam') || moves.has('rest') || abilities.has('Reckless') && counter.get('recoil') > 1); - case 'Lightning Rod': - return ( - species.types.includes('Ground') || - (!!teamDetails.rain || moves.has('raindance')) && abilities.has('Swift Swim') - ); - case 'Limber': - return species.types.includes('Electric'); - case 'Liquid Voice': - return !counter.get('sound'); - case 'Magic Guard': case 'Speed Boost': - return (abilities.has('Tinted Lens') && (!counter.get('Status') || moves.has('uturn'))); - case 'Magnet Pull': - return (!!counter.get('Normal') || !types.has('Electric') && !moves.has('earthpower')); - case 'Mold Breaker': - return ( - moves.has('acrobatics') || moves.has('sleeptalk') || - abilities.has('Adaptability') || abilities.has('Iron Fist') || - (abilities.has('Sheer Force') && !!counter.get('sheerforce')) - ); - case 'Overgrow': - return !counter.get('Grass'); - case 'Poison Heal': - return (abilities.has('Technician') && !!counter.get('technician')); - case 'Power Construct': - return species.forme === '10%'; - case 'Prankster': - return !counter.get('Status'); - case 'Pressure': case 'Synchronize': - return (counter.get('Status') < 2 || !!counter.get('recoil') || !!species.isMega); - case 'Regenerator': - return abilities.has('Magic Guard'); - case 'Quick Feet': - return moves.has('bellydrum'); - case 'Reckless': case 'Rock Head': - return (!counter.get('recoil') || !!species.isMega); - case 'Sand Force': case 'Sand Rush': case 'Sand Veil': - return !teamDetails.sand; - case 'Scrappy': - return !species.types.includes('Normal'); - case 'Serene Grace': - return (!counter.get('serenegrace') || species.name === 'Blissey'); - case 'Sheer Force': - return (!counter.get('sheerforce') || moves.has('doubleedge') || abilities.has('Guts') || !!species.isMega); - case 'Simple': - return (!counter.setupType && !moves.has('flamecharge')); - case 'Solar Power': - return (!counter.get('Special') || !teamDetails.sun || !!species.isMega); - case 'Swarm': - return (!counter.get('Bug') || !!species.isMega); - case 'Sweet Veil': - return types.has('Grass'); - case 'Technician': - return (!counter.get('technician') || moves.has('tailslap') || !!species.isMega); - case 'Tinted Lens': - return ( - moves.has('protect') || !!counter.get('damage') || - (counter.get('Status') > 2 && !counter.setupType) || - abilities.has('Prankster') || - (abilities.has('Magic Guard') && !!counter.get('Status')) - ); - case 'Torrent': - return (!counter.get('Water') || !!species.isMega); - case 'Unaware': - return (!!counter.setupType || abilities.has('Magic Guard')); - case 'Unburden': - return (!!species.isMega || abilities.has('Prankster') || !counter.setupType && !moves.has('acrobatics')); - case 'Water Absorb': - return moves.has('raindance') || ['Drizzle', 'Unaware', 'Volt Absorb'].some(abil => abilities.has(abil)); - case 'Weak Armor': - return counter.setupType !== 'Physical'; - } - - return false; - } - - getHighPriorityItem( - ability: string, - types: Set, - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean - ): string | undefined { - if (species.requiredItems) { - if ( - species.baseSpecies === 'Arceus' && - (moves.has('judgment') || !counter.get(species.types[0]) || teamDetails.zMove) - ) { - // Judgment doesn't change type with Z-Crystals - return species.requiredItems[0]; - } - return this.sample(species.requiredItems); - } - - // First, the extra high-priority items - if (species.name === 'Dedenne') return moves.has('substitute') ? 'Petaya Berry' : 'Sitrus Berry'; - if (species.name === 'Deoxys-Attack') return (isLead && moves.has('stealthrock')) ? 'Focus Sash' : 'Life Orb'; - if (species.name === 'Farfetch\u2019d') return 'Stick'; - if (species.name === 'Genesect' && moves.has('technoblast')) return 'Douse Drive'; - if (species.baseSpecies === 'Marowak') return 'Thick Club'; - if (species.name === 'Pikachu') return 'Light Ball'; - if (species.name === 'Shedinja' || species.name === 'Smeargle') return 'Focus Sash'; - if (species.name === 'Unfezant' && counter.get('Physical') >= 2) return 'Scope Lens'; - if (species.name === 'Unown') return 'Choice Specs'; - if (species.name === 'Wobbuffet') return 'Custap Berry'; - if (ability === 'Harvest' || ability === 'Emergency Exit' && !!counter.get('Status')) return 'Sitrus Berry'; - if (ability === 'Imposter') return 'Choice Scarf'; - if (ability === 'Poison Heal') return 'Toxic Orb'; - if (species.nfe) return (ability === 'Technician' && counter.get('Physical') >= 4) ? 'Choice Band' : 'Eviolite'; - if (moves.has('switcheroo') || moves.has('trick')) { - if (species.baseStats.spe >= 60 && species.baseStats.spe <= 108) { - return 'Choice Scarf'; - } else { - return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; - } - } - if (moves.has('bellydrum')) { - if (ability === 'Gluttony') { - return `${this.sample(['Aguav', 'Figy', 'Iapapa', 'Mago', 'Wiki'])} Berry`; - } else if (species.baseStats.spe <= 50 && !teamDetails.zMove && this.randomChance(1, 2)) { - return 'Normalium Z'; - } else { - return 'Sitrus Berry'; - } - } - if (moves.has('copycat') && counter.get('Physical') >= 3) return 'Choice Band'; - if (moves.has('geomancy') || moves.has('skyattack')) return 'Power Herb'; - if (moves.has('shellsmash')) { - return (ability === 'Solid Rock' && !!counter.get('priority')) ? 'Weakness Policy' : 'White Herb'; - } - if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk')) { - return (types.has('Fire') || ability === 'Quick Feet' || ability === 'Toxic Boost') ? 'Toxic Orb' : 'Flame Orb'; - } - if ( - (ability === 'Magic Guard' && counter.damagingMoves.size > 1) || - (ability === 'Sheer Force' && counter.get('sheerforce')) - ) { - return 'Life Orb'; - } - if (ability === 'Unburden') return moves.has('fakeout') ? 'Normal Gem' : 'Sitrus Berry'; - if (moves.has('acrobatics')) return ''; - if (moves.has('electricterrain') || ability === 'Electric Surge' && moves.has('thunderbolt')) return 'Electrium Z'; - if ( - moves.has('happyhour') || - moves.has('holdhands') || - (moves.has('encore') && ability === 'Contrary') - ) return 'Normalium Z'; - if (moves.has('raindance')) { - if (species.baseSpecies === 'Castform' && !teamDetails.zMove) { - return 'Waterium Z'; - } else { - return (ability === 'Forecast') ? 'Damp Rock' : 'Life Orb'; - } - } - if (moves.has('sunnyday')) { - if ((species.baseSpecies === 'Castform' || species.baseSpecies === 'Cherrim') && !teamDetails.zMove) { - return 'Firium Z'; - } else { - return (ability === 'Forecast') ? 'Heat Rock' : 'Life Orb'; - } - } - - if (moves.has('solarbeam') && ability !== 'Drought' && !moves.has('sunnyday') && !teamDetails.sun) { - return !teamDetails.zMove ? 'Grassium Z' : 'Power Herb'; - } - - if (moves.has('auroraveil') || moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; - if ( - moves.has('rest') && !moves.has('sleeptalk') && - ability !== 'Natural Cure' && ability !== 'Shed Skin' && ability !== 'Shadow Tag' - ) { - return 'Chesto Berry'; - } - - // Z-Moves - if (!teamDetails.zMove) { - if (species.name === 'Decidueye' && moves.has('spiritshackle') && counter.setupType) { - return 'Decidium Z'; - } - if (species.name === 'Kommo-o') return moves.has('clangingscales') ? 'Kommonium Z' : 'Dragonium Z'; - if (species.baseSpecies === 'Lycanroc' && moves.has('stoneedge') && counter.setupType) { - return 'Lycanium Z'; - } - if (species.name === 'Marshadow' && moves.has('spectralthief') && counter.setupType) { - return 'Marshadium Z'; - } - if (species.name === 'Necrozma-Dusk-Mane' || species.name === 'Necrozma-Dawn-Wings') { - if (moves.has('autotomize') && moves.has('sunsteelstrike')) { - return 'Solganium Z'; - } else if (moves.has('trickroom') && moves.has('moongeistbeam')) { - return 'Lunalium Z'; - } else { - return 'Ultranecrozium Z'; - } - } - - if (species.name === 'Mimikyu' && moves.has('playrough') && counter.setupType) return 'Mimikium Z'; - if (species.name === 'Raichu-Alola' && moves.has('thunderbolt') && counter.setupType) return 'Aloraichium Z'; - if (moves.has('bugbuzz') && counter.setupType && species.baseStats.spa > 100) return 'Buginium Z'; - if ( - (moves.has('darkpulse') && ability === 'Fur Coat' && counter.setupType) || - (moves.has('suckerpunch') && ability === 'Moxie' && counter.get('Dark') < 2) - ) { - return 'Darkinium Z'; - } - if (moves.has('outrage') && counter.setupType && !moves.has('fly')) return 'Dragonium Z'; - if (moves.has('fleurcannon') && !!counter.get('speedsetup')) return 'Fairium Z'; - if ( - (moves.has('focusblast') && types.has('Fighting') && counter.setupType) || - (moves.has('reversal') && moves.has('substitute')) - ) { - return 'Fightinium Z'; - } - if ( - moves.has('fly') || - (moves.has('hurricane') && species.baseStats.spa >= 125 && (!!counter.get('Status') || moves.has('superpower'))) || - ((moves.has('bounce') || moves.has('bravebird')) && counter.setupType) - ) { - return 'Flyinium Z'; - } - if (moves.has('shadowball') && counter.setupType && ability === 'Beast Boost') return 'Ghostium Z'; - if ( - moves.has('sleeppowder') && types.has('Grass') && - counter.setupType && species.baseStats.spe <= 70 - ) { - return 'Grassium Z'; - } - if (moves.has('magmastorm')) return 'Firium Z'; - if (moves.has('dig')) return 'Groundium Z'; - if (moves.has('photongeyser') && counter.setupType) return 'Psychium Z'; - if (moves.has('stoneedge') && types.has('Rock') && moves.has('swordsdance')) return 'Rockium Z'; - if (moves.has('hydropump') && ability === 'Battle Bond' && moves.has('uturn')) return 'Waterium Z'; - if ((moves.has('hail') || (moves.has('blizzard') && ability !== 'Snow Warning'))) return 'Icium Z'; - } - } - - getMediumPriorityItem( - ability: string, - moves: Set, - counter: MoveCounter, - species: Species, - isDoubles: boolean, - isLead: boolean - ): string | undefined { - const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; - - if ( - (ability === 'Speed Boost' || ability === 'Stance Change' || species.name === 'Pheromosa') && - counter.get('Physical') + counter.get('Special') > 2 && - !moves.has('uturn') - ) { - return 'Life Orb'; - } - - if (isDoubles && moves.has('uturn') && counter.get('Physical') === 4 && !moves.has('fakeout')) { - return ( - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - !counter.get('priority') && this.randomChance(1, 2) - ) ? 'Choice Scarf' : 'Choice Band'; - } - if (isDoubles && counter.get('Special') === 4 && (moves.has('waterspout') || moves.has('eruption'))) { - return 'Choice Scarf'; - } - - if ( - !isDoubles && - counter.get('Physical') >= 4 && - ['bodyslam', 'dragontail', 'fakeout', 'flamecharge', 'rapidspin', 'suckerpunch'].every(m => !moves.has(m)) - ) { - return ( - (species.baseStats.atk >= 100 || ability === 'Huge Power') && - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - !counter.get('priority') && - this.randomChance(2, 3) - ) ? 'Choice Scarf' : 'Choice Band'; - } - if ( - !isDoubles && - (counter.get('Special') >= 4 || (counter.get('Special') >= 3 && moves.has('uturn'))) && - !moves.has('acidspray') && !moves.has('clearsmog') - ) { - return ( - species.baseStats.spa >= 100 && - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - ability !== 'Tinted Lens' && - !counter.get('Physical') && !counter.get('priority') && - this.randomChance(2, 3) - ) ? 'Choice Scarf' : 'Choice Specs'; - } - if ( - !isDoubles && - counter.get('Physical') >= 3 && - moves.has('defog') && - !moves.has('foulplay') && - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - !counter.get('priority') - ) { - return 'Choice Scarf'; - } - if (!isDoubles && ( - ability === 'Drizzle' || - ability === 'Slow Start' || - species.name.includes('Rotom-') || - ['aromatherapy', 'bite', 'clearsmog', 'curse', 'protect', 'sleeptalk'].some(m => moves.has(m))) - ) { - return 'Leftovers'; - } - if (['endeavor', 'flail', 'reversal'].some(m => moves.has(m)) && ability !== 'Sturdy') { - return (ability === 'Defeatist') ? 'Expert Belt' : 'Focus Sash'; - } - if (moves.has('outrage') && counter.setupType) return 'Lum Berry'; - if ( - isDoubles && - counter.damagingMoves.size >= 3 && - species.baseStats.spe >= 70 && - ability !== 'Multiscale' && ability !== 'Sturdy' && [ - 'acidspray', 'electroweb', 'fakeout', 'feint', 'flamecharge', 'icywind', - 'incinerate', 'naturesmadness', 'rapidspin', 'snarl', 'suckerpunch', 'uturn', - ].every(m => !moves.has(m)) - ) { - return defensiveStatTotal >= 275 ? 'Sitrus Berry' : 'Life Orb'; - } - - if (moves.has('substitute')) return counter.damagingMoves.size > 2 && !!counter.get('drain') ? 'Life Orb' : 'Leftovers'; - if ( - !isDoubles && - this.dex.getEffectiveness('Ground', species) >= 2 && - ability !== 'Levitate' && - !moves.has('magnetrise') - ) { - return 'Air Balloon'; - } - if ((ability === 'Iron Barbs' || ability === 'Rough Skin') && this.randomChance(1, 2)) return 'Rocky Helmet'; - if ( - counter.get('Physical') + counter.get('Special') >= 4 && - species.baseStats.spd >= 50 && defensiveStatTotal >= 235 - ) { - return 'Assault Vest'; - } - if (species.name === 'Palkia' && (moves.has('dracometeor') || moves.has('spacialrend')) && moves.has('hydropump')) { - return 'Lustrous Orb'; - } - if (species.types.includes('Normal') && moves.has('fakeout') && counter.get('Normal') >= 2) return 'Silk Scarf'; - if (counter.damagingMoves.size >= 4) { - return (counter.get('Dragon') || moves.has('suckerpunch') || counter.get('Normal')) ? 'Life Orb' : 'Expert Belt'; - } - if (counter.damagingMoves.size >= 3 && !!counter.get('speedsetup') && defensiveStatTotal >= 300) { - return 'Weakness Policy'; - } - if ( - !isDoubles && isLead && - !['Regenerator', 'Sturdy'].includes(ability) && - !counter.get('recoil') && !counter.get('recovery') && - defensiveStatTotal < 255 - ) { - return 'Focus Sash'; - } - } - - getLowPriorityItem( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean - ): string | undefined { - // This is the "REALLY can't think of a good item" cutoff - if (moves.has('stickyweb') && ability === 'Sturdy') return 'Mental Herb'; - if (ability === 'Serene Grace' && moves.has('airslash') && species.baseStats.spe > 100) return 'Metronome'; - if (ability === 'Sturdy' && moves.has('explosion') && !counter.get('speedsetup')) return 'Custap Berry'; - if (ability === 'Super Luck') return 'Scope Lens'; - if ( - !isDoubles && - counter.damagingMoves.size >= 3 && - ability !== 'Sturdy' && - (species.baseStats.spe >= 90 || !moves.has('voltswitch')) && - ['acidspray', 'dragontail', 'foulplay', 'rapidspin', 'superfang', 'uturn'].every(m => !moves.has(m)) && ( - counter.get('speedsetup') || - moves.has('trickroom') || - (species.baseStats.spe > 40 && species.baseStats.hp + species.baseStats.def + species.baseStats.spd < 275) - ) - ) { - return 'Life Orb'; - } - } - - randomSet( - species: string | Species, - teamDetails: RandomTeamsTypes.TeamDetails = {}, - isLead = false, - isDoubles = false - ): RandomTeamsTypes.RandomSet { - species = this.dex.species.get(species); - let forme = species.name; - - if (typeof species.battleOnly === 'string') { - // Only change the forme. The species has custom moves, and may have different typing and requirements. - forme = species.battleOnly; - } - if (species.cosmeticFormes) { - forme = this.sample([species.name].concat(species.cosmeticFormes)); - } - - const data = this.randomData[species.id]; - - const randMoves = isDoubles ? - (data.doublesMoves || data.moves) : - data.moves; - const movePool = (randMoves || Object.keys(Dex.species.getLearnset(species.id)!)).slice(); - if (this.format.gameType === 'multi') { - // Random Multi Battle uses doubles move pools, but Ally Switch fails in multi battles - const allySwitch = movePool.indexOf('allyswitch'); - if (allySwitch > -1) { - if (movePool.length > this.maxMoveCount) { - this.fastPop(movePool, allySwitch); - } else { - // Ideally, we'll never get here, but better to have a move that usually does nothing than one that always does - movePool[allySwitch] = 'sleeptalk'; - } - } - } - const rejectedPool = []; - const moves = new Set(); - let ability = ''; - - const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; - const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; - - const types = new Set(species.types); - const abilities = new Set(); - for (const abilityName of Object.values(species.abilities)) { - if (abilityName === species.abilities.S || (species.unreleasedHidden && abilityName === species.abilities.H)) continue; - abilities.add(abilityName); - } - - let availableHP = 0; - for (const moveid of movePool) { - if (moveid.startsWith('hiddenpower')) availableHP++; - } - - // These moves can be used even if we aren't setting up to use them: - const SetupException = ['closecombat', 'diamondstorm', 'extremespeed', 'superpower', 'clangingscales']; - - let counter: MoveCounter; - // We use a special variable to track Hidden Power - // so that we can check for all Hidden Powers at once - let hasHiddenPower = false; - - do { - // Choose next 4 moves from learnset/viable moves and add them to moves list: - while (moves.size < this.maxMoveCount && movePool.length) { - const moveid = this.sampleNoReplace(movePool); - if (moveid.startsWith('hiddenpower')) { - availableHP--; - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - while (moves.size < this.maxMoveCount && rejectedPool.length) { - const moveid = this.sampleNoReplace(rejectedPool); - if (moveid.startsWith('hiddenpower')) { - if (hasHiddenPower) continue; - hasHiddenPower = true; - } - moves.add(moveid); - } - - counter = this.queryMoves(moves, species.types, abilities, movePool); - const runEnforcementChecker = (checkerName: string) => { - if (!this.moveEnforcementCheckers[checkerName]) return false; - return this.moveEnforcementCheckers[checkerName]( - movePool, moves, abilities, types, counter, species as Species, teamDetails - ); - }; - - // Iterate through the moves again, this time to cull them: - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - - let {cull, isSetup} = this.shouldCullMove( - move, types, moves, abilities, counter, movePool, teamDetails, - species, isLead, isDoubles - ); - - // This move doesn't satisfy our setup requirements: - if ( - (move.category === 'Physical' && counter.setupType === 'Special') || - (move.category === 'Special' && counter.setupType === 'Physical') - ) { - // Reject STABs last in case the setup type changes later on - const stabs = counter.get(species.types[0]) + (counter.get(species.types[1]) || 0); - if ( - !SetupException.includes(moveid) && - (!types.has(move.type) || stabs > 1 || counter.get(move.category) < 2) - ) cull = true; - } - // Hidden Power isn't good enough - if ( - counter.setupType === 'Special' && - moveid === 'hiddenpower' && - species.types.length > 1 && - counter.get('Special') <= 2 && - !types.has(move.type) && - !counter.get('Physical') && - counter.get('specialpool') - ) { - cull = true; - } - - const singlesEnforcement = ( - !['judgment', 'lightscreen', 'quiverdance', 'reflect', 'sleeptalk', 'toxic'].includes(moveid) && ( - move.category !== 'Status' || - // should allow Meganium to cull a recovery move for the sake of STAB - !(move.flags.heal && species.id !== 'meganium') - ) - ); - // Pokemon should have moves that benefit their Type/Ability/Weather, as well as moves required by its forme - if ( - !cull && - !move.damage && - !isSetup && - !move.weather && - !move.stallingMove && - (isDoubles || singlesEnforcement) && ( - !counter.setupType || counter.setupType === 'Mixed' || - (move.category !== counter.setupType && move.category !== 'Status') || - (counter.get(counter.setupType) + counter.get('Status') > 3 && !counter.get('hazards')) - ) && ( - move.category === 'Status' || - !types.has(move.type) || - (move.basePower && move.basePower < 40 && !move.multihit) - ) - ) { - if ( - (!counter.get('stab') && !moves.has('nightshade') && !moves.has('seismictoss') && ( - species.types.length > 1 || - (species.types[0] !== 'Normal' && species.types[0] !== 'Psychic') || - !moves.has('icebeam') || - species.baseStats.spa >= species.baseStats.spd - )) || ( - moves.has('suckerpunch') && !abilities.has('Contrary') && - counter.get('stab') < species.types.length && species.id !== 'honchkrow' - ) || ( - (['recover', 'roost', 'slackoff', 'softboiled'].some(m => movePool.includes(m))) && - counter.get('Status') && - !counter.setupType && - ['healingwish', 'switcheroo', 'trick', 'trickroom'].every(m => !moves.has(m)) - ) || ( - movePool.includes('milkdrink') || - movePool.includes('shoreup') || - (movePool.includes('moonlight') && types.size < 2) || - (movePool.includes('stickyweb') && !counter.setupType && !teamDetails.stickyWeb) || - (movePool.includes('quiverdance') && ['defog', 'uturn', 'stickyweb'].every(m => !moves.has(m)) && - counter.get('Special') < 4) - ) || ( - isLead && - movePool.includes('stealthrock') && - counter.get('Status') && !counter.setupType && - !counter.get('speedsetup') && !moves.has('substitute') - ) || ( - species.requiredMove && movePool.includes(toID(species.requiredMove)) - ) || ( - !counter.get('Normal') && - (abilities.has('Aerilate') || abilities.has('Pixilate') || (abilities.has('Refrigerate') && !moves.has('blizzard'))) - ) - ) { - cull = true; - } else { - for (const type of types) { - if (runEnforcementChecker(type)) { - cull = true; - } - } - for (const abil of abilities) { - if (runEnforcementChecker(abil)) { - cull = true; - } - } - for (const m of moves) { - if (runEnforcementChecker(m)) { - cull = true; - } - } - } - } - - // Sleep Talk shouldn't be selected without Rest - if (moveid === 'rest' && cull) { - const sleeptalk = movePool.indexOf('sleeptalk'); - if (sleeptalk >= 0) { - if (movePool.length < 2) { - cull = false; - } else { - this.fastPop(movePool, sleeptalk); - } - } - } - - // Remove rejected moves from the move list - const moveIsHP = moveid.startsWith('hiddenpower'); - if (cull && ( - movePool.length - availableHP || - (availableHP && (moveIsHP || !hasHiddenPower)) - )) { - if ( - move.category !== 'Status' && - !move.damage && - !move.flags.charge && - (!moveIsHP || !availableHP) - ) { - rejectedPool.push(moveid); - } - if (moveIsHP) hasHiddenPower = false; - moves.delete(moveid); - break; - } - - if (cull && rejectedPool.length) { - if (moveIsHP) hasHiddenPower = false; - moves.delete(moveid); - break; - } - } - } while (moves.size < this.maxMoveCount && (movePool.length || rejectedPool.length)); - - // Moveset modifications - if (species.id === 'celesteela' && moves.has('autotomize') && moves.has('heavyslam')) { - moves.delete('heavyslam'); - moves.add('flashcannon'); - } - if (moves.has('raindance') && moves.has('thunderbolt') && !isDoubles) { - moves.delete('thunderbolt'); - moves.add('thunder'); - } - if (moves.has('workup') && !counter.get('Special') && species.id === 'zeraora') { - moves.delete('workup'); - moves.add('bulkup'); - } - - const battleOnly = species.battleOnly && !species.requiredAbility; - const baseSpecies: Species = battleOnly ? this.dex.species.get(species.battleOnly as string) : species; - - const abilityData = Object.values(baseSpecies.abilities).map(a => this.dex.abilities.get(a)); - Utils.sortBy(abilityData, abil => -abil.rating); - - if (abilityData[1]) { - // Sort abilities by rating with an element of randomness - if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) { - [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]]; - } - if (abilityData[0].rating <= abilityData[1].rating && this.randomChance(1, 2)) { - [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating && this.randomChance(2, 3)) { - [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } - ability = abilityData[0].name; - - while (this.shouldCullAbility( - ability, types, moves, abilities, counter, movePool, teamDetails, species, isDoubles - )) { - if (ability === abilityData[0].name && abilityData[1].rating >= 1) { - ability = abilityData[1].name; - } else if (ability === abilityData[1].name && abilityData[2] && abilityData[2].rating >= 1) { - ability = abilityData[2].name; - } else { - // Default to the highest rated ability if all are rejected - ability = abilityData[0].name; - break; - } - } - - if ( - abilities.has('Guts') && - ability !== 'Quick Feet' && - (moves.has('facade') || (moves.has('protect') && !isDoubles) || (moves.has('sleeptalk') && moves.has('rest'))) - ) { - ability = 'Guts'; - } else if (abilities.has('Moxie') && (counter.get('Physical') > 3 || moves.has('bounce')) && !isDoubles) { - ability = 'Moxie'; - } else if (isDoubles) { - if (abilities.has('Intimidate') && !battleOnly) ability = 'Intimidate'; - if (abilities.has('Guts') && ability !== 'Intimidate') ability = 'Guts'; - if (abilities.has('Storm Drain')) ability = 'Storm Drain'; - if (abilities.has('Harvest')) ability = 'Harvest'; - if (abilities.has('Unburden') && ability !== 'Prankster' && !species.isMega) ability = 'Unburden'; - } - if (species.name === 'Ambipom' && !counter.get('technician')) { - // If it doesn't qualify for Technician, Skill Link is useless on it - ability = 'Pickup'; - } - if (species.name === 'Raticate-Alola') ability = 'Hustle'; - if (species.name === 'Altaria') ability = 'Natural Cure'; - } else { - ability = abilityData[0].name; - } - - if (species.name === 'Genesect' && moves.has('technoblast')) forme = 'Genesect-Douse'; - - if ( - !moves.has('photongeyser') && - !teamDetails.zMove && - (species.name === 'Necrozma-Dusk-Mane' || species.name === 'Necrozma-Dawn-Wings') - ) { - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - if (move.category === 'Status' || types.has(move.type)) continue; - moves.delete(moveid); - moves.add('photongeyser'); - break; - } - } - - let item = this.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles); - if (item === undefined) item = this.getMediumPriorityItem(ability, moves, counter, species, isDoubles, isLead); - if (item === undefined) { - item = this.getLowPriorityItem(ability, types, moves, abilities, counter, teamDetails, species, isLead, isDoubles); - } - - // fallback - if (item === undefined) item = isDoubles ? 'Sitrus Berry' : 'Leftovers'; - // For Trick / Switcheroo - if (item === 'Leftovers' && types.has('Poison')) { - item = 'Black Sludge'; - } - - let level: number; - if (this.adjustLevel) { - level = this.adjustLevel; - } else if (!isDoubles) { - level = data.level || (species.nfe ? 90 : 80); - } else { - // We choose level based on BST. Min level is 70, max level is 99. 600+ BST is 70, less than 300 is 99. Calculate with those values. - // Every 10.34 BST adds a level from 70 up to 99. Results are floored. Uses the Mega's stats if holding a Mega Stone - const baseStats = species.baseStats; - - let bst = species.bst; - // If Wishiwashi, use the school-forme's much higher stats - if (species.baseSpecies === 'Wishiwashi') bst = this.dex.species.get('wishiwashischool').bst; - // Adjust levels of mons based on abilities (Pure Power, Sheer Force, etc.) and also Eviolite - // For the stat boosted, treat the Pokemon's base stat as if it were multiplied by the boost. (Actual effective base stats are higher.) - const speciesAbility = (baseSpecies === species ? ability : species.abilities[0]); - if (speciesAbility === 'Huge Power' || speciesAbility === 'Pure Power') { - bst += baseStats.atk; - } else if (speciesAbility === 'Parental Bond') { - bst += 0.25 * (counter.get('Physical') > counter.get('Special') ? baseStats.atk : baseStats.spa); - } else if (speciesAbility === 'Protean') { - bst += 0.3 * (counter.get('Physical') > counter.get('Special') ? baseStats.atk : baseStats.spa); - } else if (speciesAbility === 'Fur Coat') { - bst += baseStats.def; - } else if (speciesAbility === 'Slow Start') { - bst -= baseStats.atk / 2 + baseStats.spe / 2; - } else if (speciesAbility === 'Truant') { - bst *= 2 / 3; - } - if (item === 'Eviolite') { - bst += 0.5 * (baseStats.def + baseStats.spd); - } else if (item === 'Light Ball') { - bst += baseStats.atk + baseStats.spa; - } - level = 70 + Math.floor(((600 - Utils.clampIntRange(bst, 300, 600)) / 10.34)); - } - - // Prepare optimal HP - const srWeakness = this.dex.getEffectiveness('Rock', species); - while (evs.hp > 1) { - const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); - if (moves.has('substitute') && moves.has('reversal')) { - // Reversal users should be able to use four Substitutes - if (hp % 4 > 0) break; - } else if (moves.has('substitute') && ( - item === 'Petaya Berry' || item === 'Sitrus Berry' || - (ability === 'Power Construct' && item !== 'Leftovers') - )) { - // Three Substitutes should activate Petaya Berry for Dedenne - // Two Substitutes should activate Sitrus Berry or Power Construct - if (hp % 4 === 0) break; - } else if (moves.has('bellydrum') && (item === 'Sitrus Berry' || ability === 'Gluttony')) { - // Belly Drum should activate Sitrus Berry - if (hp % 2 === 0) break; - } else { - // Maximize number of Stealth Rock switch-ins - if (srWeakness <= 0 || hp % (4 / srWeakness) > 0) break; - } - evs.hp -= 4; - } - - // Minimize confusion damage - if (!counter.get('Physical') && !moves.has('copycat') && !moves.has('transform')) { - evs.atk = 0; - ivs.atk = 0; - } - - // Ensure Nihilego's Beast Boost gives it Special Attack boosts instead of Special Defense - if (forme === 'Nihilego') evs.spd -= 32; - - if (ability === 'Beast Boost' && counter.get('Special') < 1) { - evs.spa = 0; - ivs.spa = 0; - } - - // Fix IVs for non-Bottle Cap-able sets - if (hasHiddenPower && level < 100) { - let hpType; - for (const move of moves) { - if (move.startsWith('hiddenpower')) hpType = move.substr(11); - } - if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); - const HPivs = ivs.atk === 0 ? ZeroAttackHPIVs[hpType] : this.dex.types.get(hpType).HPivs; - let iv: StatID; - for (iv in HPivs) { - ivs[iv] = HPivs[iv]!; - } - } - - if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { - evs.spe = 0; - ivs.spe = (hasHiddenPower && level < 100) ? ivs.spe - 30 : 0; - } - - return { - name: species.baseSpecies, - species: forme, - gender: species.gender, - shiny: this.randomChance(1, 1024), - moves: Array.from(moves), - ability, - evs, - ivs, - item, - level, - }; - } - - randomTeam() { - this.enforceNoDirectCustomBanlistChanges(); - - const seed = this.prng.seed; - const ruleTable = this.dex.formats.getRuleTable(this.format); - const pokemon = []; - - // For Monotype - const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); - const typePool = this.dex.types.names(); - const type = this.forceMonotype || this.sample(typePool); - - const baseFormes: {[k: string]: number} = {}; - let hasMega = false; - - const tierCount: {[k: string]: number} = {}; - const typeCount: {[k: string]: number} = {}; - const typeComboCount: {[k: string]: number} = {}; - const typeWeaknesses: {[k: string]: number} = {}; - const teamDetails: RandomTeamsTypes.TeamDetails = {}; - - // We make at most two passes through the potential Pokemon pool when creating a team - if the first pass doesn't - // result in a team of six Pokemon we perform a second iteration relaxing as many restrictions as possible. - for (const restrict of [true, false]) { - if (pokemon.length >= this.maxTeamSize) break; - const pokemonPool = this.getPokemonPool(type, pokemon, isMonotype); - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - - // Check if the forme has moves for random battle - if (this.format.gameType === 'singles') { - if (!this.randomData[species.id]?.moves) continue; - } else { - if (!this.randomData[species.id]?.doublesMoves) continue; - } - if (!species.exists) continue; - - // Limit to one of each species (Species Clause) - if (baseFormes[species.baseSpecies]) continue; - - // Limit one Mega per team - if (hasMega && species.isMega) continue; - - // Adjust rate for species with multiple sets - switch (species.baseSpecies) { - case 'Arceus': case 'Silvally': - if (this.randomChance(8, 9) && !isMonotype) continue; - break; - case 'Oricorio': - if (this.randomChance(3, 4)) continue; - break; - case 'Castform': case 'Floette': - if (this.randomChance(2, 3)) continue; - break; - case 'Aegislash': case 'Basculin': case 'Gourgeist': case 'Groudon': case 'Kyogre': case 'Meloetta': - if (this.randomChance(1, 2)) continue; - break; - case 'Cherrim': case 'Greninja': - if (this.gen >= 7 && this.randomChance(1, 2)) continue; - break; - } - if (species.otherFormes && !hasMega && ( - species.otherFormes.includes(species.name + '-Mega') || - species.otherFormes.includes(species.name + '-Mega-X') - )) { - continue; - } - - const tier = species.tier; - const types = species.types; - const typeCombo = types.slice().sort().join(); - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - - if (restrict && !species.isMega) { - // Limit one Pokemon per tier, two for Monotype - if ( - (tierCount[tier] >= (isMonotype || this.forceMonotype ? 2 : 1) * limitFactor) && - !this.randomChance(1, Math.pow(5, tierCount[tier])) - ) { - continue; - } - - if (!isMonotype && !this.forceMonotype) { - // Limit two of any type - let skip = false; - for (const typeName of types) { - if (typeCount[typeName] >= 2 * limitFactor) { - skip = true; - break; - } - } - if (skip) continue; - - // Limit three weak to any type - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; - if (typeWeaknesses[typeName] >= 3 * limitFactor) { - skip = true; - break; - } - } - } - if (skip) continue; - } - - // Limit one of any type combination, two in Monotype - if (!this.forceMonotype && typeComboCount[typeCombo] >= (isMonotype ? 2 : 1) * limitFactor) continue; - } - - const set = this.randomSet( - species, - teamDetails, - pokemon.length === this.maxTeamSize - 1, - this.format.gameType !== 'singles' - ); - - const item = this.dex.items.get(set.item); - - // Limit one Z-Move per team - if (item.zMove && teamDetails.zMove) continue; - - // Zoroark copies the last Pokemon - if (set.ability === 'Illusion') { - if (pokemon.length < 1) continue; - set.level = pokemon[pokemon.length - 1].level; - } - - // Okay, the set passes, add it to our team - pokemon.unshift(set); - - // Don't bother tracking details for the last Pokemon - if (pokemon.length === this.maxTeamSize) break; - - // Now that our Pokemon has passed all checks, we can increment our counters - baseFormes[species.baseSpecies] = 1; - - // Increment tier counter - if (tierCount[tier]) { - tierCount[tier]++; - } else { - tierCount[tier] = 1; - } - - // Increment type counters - for (const typeName of types) { - if (typeName in typeCount) { - typeCount[typeName]++; - } else { - typeCount[typeName] = 1; - } - } - if (typeCombo in typeComboCount) { - typeComboCount[typeCombo]++; - } else { - typeComboCount[typeCombo] = 1; - } - - // Increment weakness counter - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - typeWeaknesses[typeName]++; - } - } - - // Track what the team has - if (item.megaStone || species.name === 'Rayquaza-Mega') hasMega = true; - if (item.zMove) teamDetails.zMove = 1; - if (set.ability === 'Snow Warning' || set.moves.includes('hail')) teamDetails.hail = 1; - if (set.moves.includes('raindance') || set.ability === 'Drizzle' && !item.onPrimal) teamDetails.rain = 1; - if (set.ability === 'Sand Stream') teamDetails.sand = 1; - if (set.moves.includes('sunnyday') || set.ability === 'Drought' && !item.onPrimal) teamDetails.sun = 1; - if (set.moves.includes('spikes')) teamDetails.spikes = (teamDetails.spikes || 0) + 1; - if (set.moves.includes('stealthrock')) teamDetails.stealthRock = 1; - if (set.moves.includes('stickyweb')) teamDetails.stickyWeb = 1; - if (set.moves.includes('toxicspikes')) teamDetails.toxicSpikes = 1; - if (set.moves.includes('defog')) teamDetails.defog = 1; - if (set.moves.includes('rapidspin')) teamDetails.rapidSpin = 1; - } - } - if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { - throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); - } - - return pokemon; - } - - randomFactorySets: {[format: string]: {[species: string]: BattleFactorySpecies}} = require('./factory-sets.json'); - - randomFactorySet( - species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails, tier: string - ): RandomTeamsTypes.RandomFactorySet | null { - const id = toID(species.name); - const setList = this.randomFactorySets[tier][id].sets; - - const itemsMax: {[k: string]: number} = { - choicespecs: 1, - choiceband: 1, - choicescarf: 1, - }; - const movesMax: {[k: string]: number} = { - rapidspin: 1, - batonpass: 1, - stealthrock: 1, - defog: 1, - spikes: 1, - toxicspikes: 1, - }; - const requiredMoves: {[k: string]: string} = { - stealthrock: 'hazardSet', - rapidspin: 'hazardClear', - defog: 'hazardClear', - }; - const weatherAbilitiesRequire: {[k: string]: string} = { - hydration: 'raindance', swiftswim: 'raindance', - leafguard: 'sunnyday', solarpower: 'sunnyday', chlorophyll: 'sunnyday', - sandforce: 'sandstorm', sandrush: 'sandstorm', sandveil: 'sandstorm', - slushrush: 'hail', snowcloak: 'hail', - }; - const weatherAbilities = ['drizzle', 'drought', 'snowwarning', 'sandstream']; - - // Build a pool of eligible sets, given the team partners - // Also keep track of sets with moves the team requires - let effectivePool: {set: AnyObject, moveVariants?: number[]}[] = []; - const priorityPool = []; - for (const curSet of setList) { - if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; - - const item = this.dex.items.get(curSet.item); - if (teamData.megaCount && teamData.megaCount > 0 && item.megaStone) continue; // reject 2+ mega stones - if (teamData.zCount && teamData.zCount > 0 && item.zMove) continue; // reject 2+ Z stones - if (itemsMax[item.id] && teamData.has[item.id] >= itemsMax[item.id]) continue; - - const ability = this.dex.abilities.get(curSet.ability); - if (weatherAbilitiesRequire[ability.id] && teamData.weather !== weatherAbilitiesRequire[ability.id]) continue; - if (teamData.weather && weatherAbilities.includes(ability.id)) continue; // reject 2+ weather setters - - let reject = false; - let hasRequiredMove = false; - const curSetVariants = []; - for (const move of curSet.moves) { - const variantIndex = this.random(move.length); - const moveId = toID(move[variantIndex]); - if (movesMax[moveId] && teamData.has[moveId] >= movesMax[moveId]) { - reject = true; - break; - } - if (requiredMoves[moveId] && !teamData.has[requiredMoves[moveId]]) { - hasRequiredMove = true; - } - curSetVariants.push(variantIndex); - } - if (reject) continue; - effectivePool.push({set: curSet, moveVariants: curSetVariants}); - if (hasRequiredMove) priorityPool.push({set: curSet, moveVariants: curSetVariants}); - } - if (priorityPool.length) effectivePool = priorityPool; - - if (!effectivePool.length) { - if (!teamData.forceResult) return null; - for (const curSet of setList) { - effectivePool.push({set: curSet}); - } - } - - const setData = this.sample(effectivePool); - const moves = []; - for (const [i, moveSlot] of setData.set.moves.entries()) { - moves.push(setData.moveVariants ? moveSlot[setData.moveVariants[i]] : this.sample(moveSlot)); - } - - - const item = this.sampleIfArray(setData.set.item); - const ability = this.sampleIfArray(setData.set.ability); - const nature = this.sampleIfArray(setData.set.nature); - const level = this.adjustLevel || setData.set.level || (tier === "LC" ? 5 : 100); - - return { - name: setData.set.name || species.baseSpecies, - species: setData.set.species, - gender: setData.set.gender || species.gender || (this.randomChance(1, 2) ? 'M' : 'F'), - item: item || '', - ability: ability || species.abilities['0'], - shiny: typeof setData.set.shiny === 'undefined' ? this.randomChance(1, 1024) : setData.set.shiny, - level, - happiness: typeof setData.set.happiness === 'undefined' ? 255 : setData.set.happiness, - evs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0, ...setData.set.evs}, - ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31, ...setData.set.ivs}, - nature: nature || 'Serious', - moves, - }; - } - - randomFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { - this.enforceNoDirectCustomBanlistChanges(); - - const forceResult = (depth >= 12); - const isMonotype = !!this.forceMonotype || this.dex.formats.getRuleTable(this.format).has('sametypeclause'); - - // The teams generated depend on the tier choice in such a way that - // no exploitable information is leaked from rolling the tier in getTeam(p1). - if (!this.factoryTier) { - this.factoryTier = isMonotype ? 'Mono' : this.sample(['Uber', 'OU', 'UU', 'RU', 'NU', 'PU', 'LC']); - } else if (isMonotype && this.factoryTier !== 'Mono') { - // I don't think this can ever happen? - throw new Error(`Can't generate a Monotype Battle Factory set in a battle with factory tier ${this.factoryTier}`); - } - - const tierValues: {[k: string]: number} = { - Uber: 5, - OU: 4, UUBL: 4, - UU: 3, RUBL: 3, - RU: 2, NUBL: 2, - NU: 1, PUBL: 1, - PU: 0, - }; - - const pokemon = []; - const pokemonPool = Object.keys(this.randomFactorySets[this.factoryTier]); - - const typePool = this.dex.types.names(); - const type = this.sample(typePool); - - const teamData: TeamData = { - typeCount: {}, typeComboCount: {}, baseFormes: {}, megaCount: 0, zCount: 0, - has: {}, forceResult: forceResult, weaknesses: {}, resistances: {}, - }; - const requiredMoveFamilies = ['hazardSet', 'hazardClear']; - const requiredMoves: {[k: string]: string} = { - stealthrock: 'hazardSet', - rapidspin: 'hazardClear', - defog: 'hazardClear', - }; - const weatherAbilitiesSet: {[k: string]: string} = { - drizzle: 'raindance', - drought: 'sunnyday', - snowwarning: 'hail', - sandstream: 'sandstorm', - }; - const resistanceAbilities: {[k: string]: string[]} = { - dryskin: ['Water'], waterabsorb: ['Water'], stormdrain: ['Water'], - flashfire: ['Fire'], heatproof: ['Fire'], - lightningrod: ['Electric'], motordrive: ['Electric'], voltabsorb: ['Electric'], - sapsipper: ['Grass'], - thickfat: ['Ice', 'Fire'], - levitate: ['Ground'], - }; - - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - if (!species.exists) continue; - - // Lessen the need of deleting sets of Pokemon after tier shifts - if ( - this.factoryTier in tierValues && species.tier in tierValues && - tierValues[species.tier] > tierValues[this.factoryTier] - ) continue; - - const speciesFlags = this.randomFactorySets[this.factoryTier][species.id].flags; - - // Limit to one of each species (Species Clause) - if (teamData.baseFormes[species.baseSpecies]) continue; - - // Limit the number of Megas to one - if (!teamData.megaCount) teamData.megaCount = 0; - if (teamData.megaCount >= 1 && speciesFlags.megaOnly) continue; - - const set = this.randomFactorySet(species, teamData, this.factoryTier); - if (!set) continue; - - const itemData = this.dex.items.get(set.item); - - // Actually limit the number of Megas to one - if (teamData.megaCount >= 1 && itemData.megaStone) continue; - - // Limit the number of Z moves to one - if (teamData.zCount && teamData.zCount >= 1 && itemData.zMove) continue; - - let types = species.types; - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - - // Enforce Monotype - if (isMonotype) { - // Prevents Mega Evolutions from breaking the type limits - if (itemData.megaStone) { - const megaSpecies = this.dex.species.get(itemData.megaStone); - if (types.length > megaSpecies.types.length) types = [species.types[0]]; - // Only check the second type because a Mega Evolution should always share the first type with its base forme. - if (megaSpecies.types[1] && types[1] && megaSpecies.types[1] !== types[1]) { - types = [megaSpecies.types[0]]; - } - } - if (!types.includes(type)) continue; - } else { - // If not Monotype, limit to two of each type - let skip = false; - for (const typeName of types) { - if (teamData.typeCount[typeName] >= 2 * limitFactor && this.randomChance(4, 5)) { - skip = true; - break; - } - } - if (skip) continue; - - // Limit 1 of any type combination - let typeCombo = types.slice().sort().join(); - if (set.ability + '' === 'Drought' || set.ability + '' === 'Drizzle') { - // Drought and Drizzle don't count towards the type combo limit - typeCombo = set.ability + ''; - } - if (teamData.typeComboCount[typeCombo] >= 1 * limitFactor) continue; - } - - // Okay, the set passes, add it to our team - pokemon.push(set); - const typeCombo = types.slice().sort().join(); - // Now that our Pokemon has passed all checks, we can update team data: - for (const typeName of types) { - if (typeName in teamData.typeCount) { - teamData.typeCount[typeName]++; - } else { - teamData.typeCount[typeName] = 1; - } - } - teamData.typeComboCount[typeCombo] = (teamData.typeComboCount[typeCombo] + 1) || 1; - - teamData.baseFormes[species.baseSpecies] = 1; - - if (itemData.megaStone) teamData.megaCount++; - if (itemData.zMove) { - if (!teamData.zCount) teamData.zCount = 0; - teamData.zCount++; - } - if (itemData.id in teamData.has) { - teamData.has[itemData.id]++; - } else { - teamData.has[itemData.id] = 1; - } - - const abilityState = this.dex.abilities.get(set.ability); - if (abilityState.id in weatherAbilitiesSet) { - teamData.weather = weatherAbilitiesSet[abilityState.id]; - } - - for (const move of set.moves) { - const moveId = toID(move); - if (moveId in teamData.has) { - teamData.has[moveId]++; - } else { - teamData.has[moveId] = 1; - } - if (moveId in requiredMoves) { - teamData.has[requiredMoves[moveId]] = 1; - } - } - - for (const typeName of this.dex.types.names()) { - // Cover any major weakness (3+) with at least one resistance - if (teamData.resistances[typeName] >= 1) continue; - if (resistanceAbilities[abilityState.id]?.includes(typeName) || !this.dex.getImmunity(typeName, types)) { - // Heuristic: assume that Pokémon with these abilities don't have (too) negative typing. - teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; - if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; - continue; - } - const typeMod = this.dex.getEffectiveness(typeName, types); - if (typeMod < 0) { - teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; - if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; - } else if (typeMod > 0) { - teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; - } - } - } - if (pokemon.length < this.maxTeamSize) return this.randomFactoryTeam(side, ++depth); - - // Quality control - if (!teamData.forceResult) { - for (const requiredFamily of requiredMoveFamilies) { - if (!teamData.has[requiredFamily]) return this.randomFactoryTeam(side, ++depth); - } - for (const typeName in teamData.weaknesses) { - if (teamData.weaknesses[typeName] >= 3) return this.randomFactoryTeam(side, ++depth); - } - } - - return pokemon; - } - - randomBSSFactorySets: AnyObject = require('./bss-factory-sets.json'); - - randomBSSFactorySet( - species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails - ): RandomTeamsTypes.RandomFactorySet | null { - const id = toID(species.name); - // const flags = this.randomBSSFactorySets[tier][id].flags; - const setList = this.randomBSSFactorySets[id].sets; - - const movesMax: {[k: string]: number} = { - batonpass: 1, - stealthrock: 1, - spikes: 1, - toxicspikes: 1, - doubleedge: 1, - trickroom: 1, - }; - const requiredMoves: {[k: string]: number} = {}; - const weatherAbilitiesRequire: {[k: string]: string} = { - swiftswim: 'raindance', - sandrush: 'sandstorm', sandveil: 'sandstorm', - }; - const weatherAbilities = ['drizzle', 'drought', 'snowwarning', 'sandstream']; - - // Build a pool of eligible sets, given the team partners - // Also keep track of sets with moves the team requires - let effectivePool: {set: AnyObject, moveVariants?: number[], itemVariants?: number, abilityVariants?: number}[] = []; - const priorityPool = []; - for (const curSet of setList) { - if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; - - const item = this.dex.items.get(curSet.item); - if (teamData.megaCount && teamData.megaCount > 1 && item.megaStone) continue; // reject 3+ mega stones - if (teamData.zCount && teamData.zCount > 1 && item.zMove) continue; // reject 3+ Z stones - if (teamData.has[item.id]) continue; // Item clause - - const ability = this.dex.abilities.get(curSet.ability); - if (weatherAbilitiesRequire[ability.id] && teamData.weather !== weatherAbilitiesRequire[ability.id]) continue; - if (teamData.weather && weatherAbilities.includes(ability.id)) continue; // reject 2+ weather setters - - if (curSet.species === 'Aron' && teamData.weather !== 'sandstorm') continue; // reject Aron without a Sand Stream user - - let reject = false; - let hasRequiredMove = false; - const curSetVariants = []; - for (const move of curSet.moves) { - const variantIndex = this.random(move.length); - const moveId = toID(move[variantIndex]); - if (movesMax[moveId] && teamData.has[moveId] >= movesMax[moveId]) { - reject = true; - break; - } - if (requiredMoves[moveId] && !teamData.has[requiredMoves[moveId]]) { - hasRequiredMove = true; - } - curSetVariants.push(variantIndex); - } - if (reject) continue; - effectivePool.push({set: curSet, moveVariants: curSetVariants}); - if (hasRequiredMove) priorityPool.push({set: curSet, moveVariants: curSetVariants}); - } - if (priorityPool.length) effectivePool = priorityPool; - - if (!effectivePool.length) { - if (!teamData.forceResult) return null; - for (const curSet of setList) { - effectivePool.push({set: curSet}); - } - } - - const setData = this.sample(effectivePool); - const moves = []; - for (const [i, moveSlot] of setData.set.moves.entries()) { - moves.push(setData.moveVariants ? moveSlot[setData.moveVariants[i]] : this.sample(moveSlot)); - } - - return { - name: setData.set.nickname || setData.set.name || species.baseSpecies, - species: setData.set.species, - gender: setData.set.gender || species.gender || (this.randomChance(1, 2) ? 'M' : 'F'), - item: this.sampleIfArray(setData.set.item) || '', - ability: setData.set.ability || species.abilities['0'], - shiny: typeof setData.set.shiny === 'undefined' ? this.randomChance(1, 1024) : setData.set.shiny, - level: setData.set.level || 50, - happiness: typeof setData.set.happiness === 'undefined' ? 255 : setData.set.happiness, - evs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0, ...setData.set.evs}, - ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31, ...setData.set.ivs}, - nature: setData.set.nature || 'Serious', - moves, - }; - } - - randomBSSFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { - this.enforceNoDirectCustomBanlistChanges(); - - const forceResult = (depth >= 4); - - const pokemon = []; - - const pokemonPool = Object.keys(this.randomBSSFactorySets); - - const teamData: TeamData = { - typeCount: {}, typeComboCount: {}, baseFormes: {}, megaCount: 0, zCount: 0, - eeveeLimCount: 0, has: {}, forceResult, weaknesses: {}, resistances: {}, - }; - const requiredMoveFamilies: string[] = []; - const requiredMoves: {[k: string]: string} = {}; - const weatherAbilitiesSet: {[k: string]: string} = { - drizzle: 'raindance', - drought: 'sunnyday', - snowwarning: 'hail', - sandstream: 'sandstorm', - }; - const resistanceAbilities: {[k: string]: string[]} = { - waterabsorb: ['Water'], - flashfire: ['Fire'], - lightningrod: ['Electric'], voltabsorb: ['Electric'], - thickfat: ['Ice', 'Fire'], - levitate: ['Ground'], - }; - - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - if (!species.exists) continue; - - const speciesFlags = this.randomBSSFactorySets[species.id].flags; - if (!teamData.megaCount) teamData.megaCount = 0; - - // Limit to one of each species (Species Clause) - if (teamData.baseFormes[species.baseSpecies]) continue; - - // Limit the number of Megas + Z-moves to 3 - if (teamData.megaCount + (teamData.zCount ? teamData.zCount : 0) >= 3 && speciesFlags.megaOnly) continue; - - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - - // Limit 2 of any type - const types = species.types; - let skip = false; - for (const type of types) { - if (teamData.typeCount[type] >= 2 * limitFactor && this.randomChance(4, 5)) { - skip = true; - break; - } - } - if (skip) continue; - - // Restrict Eevee with certain Pokemon - if (speciesFlags.limEevee) { - if (!teamData.eeveeLimCount) teamData.eeveeLimCount = 0; - teamData.eeveeLimCount++; - } - if (teamData.eeveeLimCount && teamData.eeveeLimCount >= 1 && speciesFlags.limEevee) continue; - - const set = this.randomBSSFactorySet(species, teamData); - if (!set) continue; - - // Limit 1 of any type combination - let typeCombo = types.slice().sort().join(); - if (set.ability === 'Drought' || set.ability === 'Drizzle') { - // Drought and Drizzle don't count towards the type combo limit - typeCombo = set.ability; - } - if (teamData.typeComboCount[typeCombo] >= 1 * limitFactor) continue; - - // Okay, the set passes, add it to our team - pokemon.push(set); - - // Now that our Pokemon has passed all checks, we can update team data: - for (const type of types) { - if (type in teamData.typeCount) { - teamData.typeCount[type]++; - } else { - teamData.typeCount[type] = 1; - } - } - teamData.typeComboCount[typeCombo] = (teamData.typeComboCount[typeCombo] + 1) || 1; - - teamData.baseFormes[species.baseSpecies] = 1; - - // Limit Mega and Z-move - const itemData = this.dex.items.get(set.item); - if (itemData.megaStone) teamData.megaCount++; - if (itemData.zMove) { - if (!teamData.zCount) teamData.zCount = 0; - teamData.zCount++; - } - teamData.has[itemData.id] = 1; - - const abilityState = this.dex.abilities.get(set.ability); - if (abilityState.id in weatherAbilitiesSet) { - teamData.weather = weatherAbilitiesSet[abilityState.id]; - } - - for (const move of set.moves) { - const moveId = toID(move); - if (moveId in teamData.has) { - teamData.has[moveId]++; - } else { - teamData.has[moveId] = 1; - } - if (moveId in requiredMoves) { - teamData.has[requiredMoves[moveId]] = 1; - } - } - - for (const typeName of this.dex.types.names()) { - // Cover any major weakness (3+) with at least one resistance - if (teamData.resistances[typeName] >= 1) continue; - if (resistanceAbilities[abilityState.id]?.includes(typeName) || !this.dex.getImmunity(typeName, types)) { - // Heuristic: assume that Pokémon with these abilities don't have (too) negative typing. - teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; - if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; - continue; - } - const typeMod = this.dex.getEffectiveness(typeName, types); - if (typeMod < 0) { - teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; - if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; - } else if (typeMod > 0) { - teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; - } - } - } - if (pokemon.length < this.maxTeamSize) return this.randomBSSFactoryTeam(side, ++depth); - - // Quality control - if (!teamData.forceResult) { - for (const requiredFamily of requiredMoveFamilies) { - if (!teamData.has[requiredFamily]) return this.randomBSSFactoryTeam(side, ++depth); - } - for (const type in teamData.weaknesses) { - if (teamData.weaknesses[type] >= 3) return this.randomBSSFactoryTeam(side, ++depth); - } - } - - return pokemon; - } -} - -export default RandomGen7Teams; diff --git a/data/mods/gen7/rulesets.ts b/data/mods/gen7/rulesets.ts index d23a5a1b1d3e..7114fc638baa 100644 --- a/data/mods/gen7/rulesets.ts +++ b/data/mods/gen7/rulesets.ts @@ -1,4 +1,4 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { inherit: true, ruleset: ['Obtainable', 'Team Preview', 'Sleep Clause Mod', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Moody Clause', 'Evasion Items Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod'], @@ -36,8 +36,9 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { this.add('clearpoke'); for (const pokemon of this.getAllPokemon()) { const details = pokemon.details.replace(', shiny', '') - .replace(/(Arceus|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') - .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*'); // Hacked-in Crowned formes will be revealed + .replace(/(Arceus|Genesect|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') + .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*') // Hacked-in Crowned formes will be revealed + .replace(/(Greninja)(?!-Ash)/g, '$1-*'); // Hacked-in Greninja-Ash will be revealed this.add('poke', pokemon.side.id, details, pokemon.item ? 'item' : ''); } this.makeRequest('teampreview'); diff --git a/data/mods/gen7letsgo/formats-data.ts b/data/mods/gen7letsgo/formats-data.ts index 7c6b2d686521..ef7851adb1d1 100644 --- a/data/mods/gen7letsgo/formats-data.ts +++ b/data/mods/gen7letsgo/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, @@ -6,7 +6,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, venusaur: { - tier: "UU", + tier: "OU", doublesTier: "DOU", }, venusaurmega: { @@ -20,7 +20,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, charizard: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, charizardmegax: { @@ -28,7 +28,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, charizardmegay: { - tier: "UU", + tier: "RUBL", doublesTier: "DOU", }, squirtle: { @@ -38,7 +38,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, blastoise: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, blastoisemega: { @@ -52,7 +52,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, weedle: { @@ -62,7 +62,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, beedrill: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, beedrillmega: { @@ -76,7 +76,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, pidgeot: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, pidgeotmega: { @@ -90,25 +90,25 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, raticate: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, raticatealola: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, spearow: { tier: "LC", }, fearow: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, ekans: { tier: "LC", }, arbok: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, pikachu: { @@ -120,11 +120,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, raichu: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, raichualola: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, sandshrew: { @@ -165,7 +165,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, clefable: { - tier: "UU", + tier: "OU", doublesTier: "DOU", }, vulpix: { @@ -175,7 +175,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, ninetales: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, ninetalesalola: { @@ -193,7 +193,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, golbat: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, oddish: { @@ -210,7 +210,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, parasect: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, venonat: { @@ -241,18 +241,18 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, persian: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, persianalola: { - tier: "OU", + tier: "UU", doublesTier: "DOU", }, psyduck: { tier: "LC", }, golduck: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, mankey: { @@ -290,7 +290,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, alakazammega: { - tier: "OU", + tier: "Uber", doublesTier: "DOU", }, machop: { @@ -300,7 +300,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, machamp: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, bellsprout: { @@ -337,14 +337,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, golemalola: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, ponyta: { tier: "LC", }, rapidash: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, slowpoke: { @@ -362,11 +362,11 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, magneton: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, farfetchd: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, doduo: { @@ -380,7 +380,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, dewgong: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, grimer: { @@ -390,7 +390,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, muk: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, mukalola: { @@ -419,21 +419,21 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, onix: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, drowzee: { tier: "LC", }, hypno: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, krabby: { tier: "LC", }, kingler: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, voltorb: { @@ -458,30 +458,30 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, marowak: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, marowakalola: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, hitmonlee: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, hitmonchan: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, lickitung: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, koffing: { tier: "LC", }, weezing: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, rhyhorn: { @@ -492,15 +492,15 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, chansey: { - tier: "OU", + tier: "UU", doublesTier: "DOU", }, tangela: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, kangaskhan: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, kangaskhanmega: { @@ -511,14 +511,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, seadra: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, goldeen: { tier: "LC", }, seaking: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, staryu: { @@ -529,23 +529,23 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, mrmime: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, scyther: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, jynx: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, electabuzz: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, magmar: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, pinsir: { @@ -564,7 +564,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gyarados: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, gyaradosmega: { @@ -576,7 +576,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, ditto: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, eevee: { @@ -588,19 +588,19 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, vaporeon: { - tier: "UU", + tier: "OU", doublesTier: "DOU", }, jolteon: { - tier: "UU", + tier: "OU", doublesTier: "DOU", }, flareon: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, porygon: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, omanyte: { @@ -630,7 +630,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, articuno: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, zapdos: { @@ -648,7 +648,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, dragonite: { - tier: "OU", + tier: "UU", doublesTier: "DOU", }, mewtwo: { @@ -669,7 +669,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { }, meltan: { isNonstandard: null, - tier: "UU", + tier: "RU", doublesTier: "DOU", }, melmetal: { diff --git a/data/mods/gen7letsgo/learnsets.ts b/data/mods/gen7letsgo/learnsets.ts index 72886a9cbbc5..d6001762a63b 100644 --- a/data/mods/gen7letsgo/learnsets.ts +++ b/data/mods/gen7letsgo/learnsets.ts @@ -1,6 +1,6 @@ /* eslint-disable max-len */ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { bulbasaur: { learnset: { doubleedge: ["7L32"], diff --git a/data/mods/gen7letsgo/moves.ts b/data/mods/gen7letsgo/moves.ts index 949a6b8c9ec0..552a0df8c87b 100644 --- a/data/mods/gen7letsgo/moves.ts +++ b/data/mods/gen7letsgo/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { absorb: { inherit: true, basePower: 40, @@ -42,9 +42,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { desc: "A random move that was introduced in gen 1 is selected for use, other than Counter, Mimic, Mirror Move, Struggle, or Transform.", shortDesc: "Picks a random move from gen 1.", onHit(target, source, effect) { - const moves = this.dex.moves.all().filter( - move => !move.realMove && move.gen === 1 && !effect.noMetronome!.includes(move.name) - ); + const moves = this.dex.moves.all().filter(move => move.gen === 1 && move.flags['metronome']); let randomMove = ''; if (moves.length) { moves.sort((a, b) => a.num - b.num); diff --git a/data/mods/gen7letsgo/pokedex.ts b/data/mods/gen7letsgo/pokedex.ts index e9fc3dd1dd86..08b995f3cb74 100644 --- a/data/mods/gen7letsgo/pokedex.ts +++ b/data/mods/gen7letsgo/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { pichu: { inherit: true, evos: [], diff --git a/data/mods/gen7letsgo/rulesets.ts b/data/mods/gen7letsgo/rulesets.ts new file mode 100644 index 000000000000..841cfc49ba3f --- /dev/null +++ b/data/mods/gen7letsgo/rulesets.ts @@ -0,0 +1,10 @@ +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { + standard: { + inherit: true, + ruleset: ['Adjust Level = 50', 'Obtainable', 'Team Preview', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'HP Percentage Mod', 'Cancel Mod', 'Sleep Clause Mod'], + }, + standarddoubles: { + inherit: true, + ruleset: ['Adjust Level = 50', 'Obtainable', 'Team Preview', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'HP Percentage Mod', 'Cancel Mod'], + }, +}; diff --git a/data/mods/gen7letsgo/scripts.ts b/data/mods/gen7letsgo/scripts.ts index 7083f9bbf422..16fa5913cce3 100644 --- a/data/mods/gen7letsgo/scripts.ts +++ b/data/mods/gen7letsgo/scripts.ts @@ -1,11 +1,62 @@ +function checkMegaForme(species: Species, forme: string, battle: Battle) { + const baseSpecies = battle.dex.species.get(species.baseSpecies); + const altForme = battle.dex.species.get(`${baseSpecies.name}-${forme}`); + if ( + altForme.exists && !battle.ruleTable.isBannedSpecies(altForme) && + !battle.ruleTable.isBanned('pokemontag:mega') + ) { + return altForme.name; + } + return null; +} + export const Scripts: ModdedBattleScriptsData = { inherit: 'gen7', init() { this.modData('Abilities', 'noability').isNonstandard = null; for (const i in this.data.Pokedex) { this.modData('Pokedex', i).abilities = {0: 'No Ability'}; + delete this.modData('Pokedex', i).requiredItem; } }, + actions: { + canMegaEvo(pokemon) { + return checkMegaForme(pokemon.baseSpecies, 'Mega', this.battle); + }, + canMegaEvoX(pokemon) { + return checkMegaForme(pokemon.baseSpecies, 'Mega-X', this.battle); + }, + canMegaEvoY(pokemon) { + return checkMegaForme(pokemon.baseSpecies, 'Mega-Y', this.battle); + }, + runMegaEvo(pokemon) { + const speciesid = pokemon.canMegaEvo || pokemon.canMegaEvoX || pokemon.canMegaEvoY; + if (!speciesid) return false; + + pokemon.formeChange(speciesid, null, true); + this.battle.add('-mega', pokemon, this.dex.species.get(speciesid).baseSpecies); + + // Limit one mega evolution + for (const ally of pokemon.side.pokemon) { + ally.canMegaEvo = null; + ally.canMegaEvoX = null; + ally.canMegaEvoY = null; + } + + this.battle.runEvent('AfterMega', pokemon); + return true; + }, + runMegaEvoX(pokemon) { + if (!pokemon.canMegaEvoX) return false; + pokemon.canMegaEvoY = null; + return this.runMegaEvo(pokemon); + }, + runMegaEvoY(pokemon) { + if (!pokemon.canMegaEvoY) return false; + pokemon.canMegaEvoX = null; + return this.runMegaEvo(pokemon); + }, + }, /** * Given a table of base stats and a pokemon set, return the actual stats. */ diff --git a/data/mods/gen7pokebilities/abilities.ts b/data/mods/gen7pokebilities/abilities.ts new file mode 100644 index 000000000000..edffea067633 --- /dev/null +++ b/data/mods/gen7pokebilities/abilities.ts @@ -0,0 +1,117 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + mummy: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (target.ability === 'mummy') { + const sourceAbility = source.getAbility(); + if (sourceAbility.flags['cantsuppress'] || sourceAbility.id === 'mummy') { + return; + } + if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) { + const oldAbility = source.setAbility('mummy', target); + if (oldAbility) { + this.add('-activate', target, 'ability: Mummy', this.dex.abilities.get(oldAbility).name, '[of] ' + source); + } + } + } else { + const possibleAbilities = [source.ability, ...(source.m.innates || [])] + .filter(val => !this.dex.abilities.get(val).flags['cantsuppress'] && val !== 'mummy'); + if (!possibleAbilities.length) return; + if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) { + const abil = this.sample(possibleAbilities); + if (abil === source.ability) { + const oldAbility = source.setAbility('mummy', target); + if (oldAbility) { + this.add('-activate', target, 'ability: Mummy', this.dex.abilities.get(oldAbility).name, '[of] ' + source); + } + } else { + source.removeVolatile('ability:' + abil); + source.addVolatile('ability:mummy', source); + if (abil) { + this.add('-activate', target, 'ability: Mummy', this.dex.abilities.get(abil).name, '[of] ' + source); + } + } + } + } + }, + }, + powerofalchemy: { + inherit: true, + onAllyFaint(ally) { + const pokemon = this.effectState.target; + if (!pokemon.hp) return; + const isAbility = pokemon.ability === 'powerofalchemy'; + let possibleAbilities = [ally.ability]; + if (ally.m.innates) possibleAbilities.push(...ally.m.innates); + const additionalBannedAbilities = [pokemon.ability, ...(pokemon.m.innates || [])]; + possibleAbilities = possibleAbilities + .filter(val => !this.dex.abilities.get(val).flags['noreceiver'] && !additionalBannedAbilities.includes(val)); + if (!possibleAbilities.length) return; + const ability = this.dex.abilities.get(possibleAbilities[this.random(possibleAbilities.length)]); + this.add('-ability', pokemon, ability, '[from] ability: Power of Alchemy', '[of] ' + ally); + if (isAbility) { + pokemon.setAbility(ability); + } else { + pokemon.removeVolatile("ability:powerofalchemy"); + pokemon.addVolatile("ability:" + ability, pokemon); + } + }, + }, + receiver: { + inherit: true, + onAllyFaint(ally) { + const pokemon = this.effectState.target; + if (!pokemon.hp) return; + const isAbility = pokemon.ability === 'receiver'; + let possibleAbilities = [ally.ability]; + if (ally.m.innates) possibleAbilities.push(...ally.m.innates); + const additionalBannedAbilities = [pokemon.ability, ...(pokemon.m.innates || [])]; + possibleAbilities = possibleAbilities + .filter(val => !this.dex.abilities.get(val).flags['noreceiver'] && !additionalBannedAbilities.includes(val)); + if (!possibleAbilities.length) return; + const ability = this.dex.abilities.get(possibleAbilities[this.random(possibleAbilities.length)]); + this.add('-ability', pokemon, ability, '[from] ability: Receiver', '[of] ' + ally); + if (isAbility) { + pokemon.setAbility(ability); + } else { + pokemon.removeVolatile("ability:receiver"); + pokemon.addVolatile("ability:" + ability, pokemon); + } + }, + }, + trace: { + inherit: true, + onUpdate(pokemon) { + if (!pokemon.isStarted) return; + const isAbility = pokemon.ability === 'trace'; + const possibleTargets: Pokemon[] = []; + for (const target of pokemon.side.foe.active) { + if (target && !target.fainted) { + possibleTargets.push(target); + } + } + while (possibleTargets.length) { + const rand = this.random(possibleTargets.length); + const target = possibleTargets[rand]; + let possibleAbilities = [target.ability]; + if (target.m.innates) possibleAbilities.push(...target.m.innates); + const additionalBannedAbilities = [pokemon.ability, ...(pokemon.m.innates || [])]; + possibleAbilities = possibleAbilities + .filter(val => !this.dex.abilities.get(val).flags['notrace'] && !additionalBannedAbilities.includes(val)); + if (!possibleAbilities.length) { + possibleTargets.splice(rand, 1); + continue; + } + const ability = this.dex.abilities.get(this.sample(possibleAbilities)); + this.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target); + if (isAbility) { + pokemon.setAbility(ability); + } else { + pokemon.removeVolatile("ability:trace"); + pokemon.addVolatile("ability:" + ability, pokemon); + } + return; + } + }, + }, +}; diff --git a/data/mods/gen7pokebilities/moves.ts b/data/mods/gen7pokebilities/moves.ts new file mode 100644 index 000000000000..c473cb8bba8d --- /dev/null +++ b/data/mods/gen7pokebilities/moves.ts @@ -0,0 +1,17 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + gastroacid: { + inherit: true, + condition: { + // Ability suppression implemented in Pokemon.ignoringAbility() within sim/pokemon.js + onStart(pokemon) { + this.add('-endability', pokemon); + this.singleEvent('End', pokemon.getAbility(), pokemon.abilityState, pokemon, pokemon, 'gastroacid'); + if (pokemon.m.innates) { + for (const innate of pokemon.m.innates) { + pokemon.removeVolatile("ability" + innate); + } + } + }, + }, + }, +}; diff --git a/data/mods/gen7pokebilities/scripts.ts b/data/mods/gen7pokebilities/scripts.ts new file mode 100644 index 000000000000..b0199e4bad6b --- /dev/null +++ b/data/mods/gen7pokebilities/scripts.ts @@ -0,0 +1,216 @@ +export const Scripts: ModdedBattleScriptsData = { + inherit: 'gen7', + field: { + suppressingWeather() { + for (const pokemon of this.battle.getAllActive()) { + if (pokemon && !pokemon.fainted && !pokemon.ignoringAbility() && + (pokemon.getAbility().suppressWeather || + pokemon.m.innates?.some((k: string) => this.battle.dex.abilities.get(k).suppressWeather))) { + return true; + } + } + return false; + }, + }, + pokemon: { + ignoringAbility() { + // Check if any active pokemon have the ability Neutralizing Gas + let neutralizinggas = false; + for (const pokemon of this.battle.getAllActive()) { + // can't use hasAbility because it would lead to infinite recursion + if ( + (pokemon.ability === ('neutralizinggas' as ID) || pokemon.m.innates?.some((k: string) => k === 'neutralizinggas')) && + !pokemon.volatiles['gastroacid'] && !pokemon.abilityState.ending + ) { + neutralizinggas = true; + break; + } + } + + return !!( + (this.battle.gen >= 5 && !this.isActive) || + ((this.volatiles['gastroacid'] || + (neutralizinggas && (this.ability !== ('neutralizinggas' as ID) || + this.m.innates?.some((k: string) => k === 'neutralizinggas')) + )) && !this.getAbility().flags['cantsuppress'] + ) + ); + }, + hasAbility(ability) { + if (this.ignoringAbility()) return false; + if (Array.isArray(ability)) return ability.some(abil => this.hasAbility(abil)); + ability = this.battle.toID(ability); + return this.ability === ability || !!this.volatiles['ability:' + ability]; + }, + transformInto(pokemon, effect) { + const species = pokemon.species; + if (pokemon.fainted || this.illusion || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) || + (pokemon.transformed && this.battle.gen >= 2) || (this.transformed && this.battle.gen >= 5) || + species.name === 'Eternatus-Eternamax') { + return false; + } + + if (!this.setSpecies(species, effect, true)) return false; + + this.transformed = true; + this.weighthg = pokemon.weighthg; + + const types = pokemon.getTypes(true, true); + this.setType(pokemon.volatiles['roost'] ? pokemon.volatiles['roost'].typeWas : types, true); + this.addedType = pokemon.addedType; + this.knownType = this.isAlly(pokemon) && pokemon.knownType; + this.apparentType = pokemon.apparentType; + + let statName: StatIDExceptHP; + for (statName in this.storedStats) { + this.storedStats[statName] = pokemon.storedStats[statName]; + if (this.modifiedStats) this.modifiedStats[statName] = pokemon.modifiedStats![statName]; // Gen 1: Copy modified stats. + } + this.moveSlots = []; + this.set.ivs = (this.battle.gen >= 5 ? this.set.ivs : pokemon.set.ivs); + this.hpType = (this.battle.gen >= 5 ? this.hpType : pokemon.hpType); + this.hpPower = (this.battle.gen >= 5 ? this.hpPower : pokemon.hpPower); + this.timesAttacked = pokemon.timesAttacked; + for (const moveSlot of pokemon.moveSlots) { + let moveName = moveSlot.move; + if (moveSlot.id === 'hiddenpower') { + moveName = 'Hidden Power ' + this.hpType; + } + this.moveSlots.push({ + move: moveName, + id: moveSlot.id, + pp: moveSlot.maxpp === 1 ? 1 : 5, + maxpp: this.battle.gen >= 5 ? (moveSlot.maxpp === 1 ? 1 : 5) : moveSlot.maxpp, + target: moveSlot.target, + disabled: false, + used: false, + virtual: true, + }); + } + let boostName: BoostID; + for (boostName in pokemon.boosts) { + this.boosts[boostName] = pokemon.boosts[boostName]; + } + if (this.battle.gen >= 6) { + // we need to be sure to remove all the overlapping crit volatiles before trying to add any of them + const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus']; + for (const volatile of volatilesToCopy) this.removeVolatile(volatile); + for (const volatile of volatilesToCopy) { + if (pokemon.volatiles[volatile]) { + this.addVolatile(volatile); + if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers; + if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType; + } + } + } + if (effect) { + this.battle.add('-transform', this, pokemon, '[from] ' + effect.fullname); + } else { + this.battle.add('-transform', this, pokemon); + } + if (this.terastallized && this.terastallized !== this.apparentType) { + this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]'); + this.apparentType = this.terastallized; + } + if (this.battle.gen > 2) { + this.setAbility(pokemon.ability, this, true); + if (this.m.innates) { + for (const innate of this.m.innates) { + this.removeVolatile('ability:' + innate); + } + } + if (pokemon.m.innates) { + for (const innate of pokemon.m.innates) { + this.addVolatile('ability:' + innate, this); + } + } + } + + // Change formes based on held items (for Transform) + // Only ever relevant in Generation 4 since Generation 3 didn't have item-based forme changes + if (this.battle.gen === 4) { + if (this.species.num === 487) { + // Giratina formes + if (this.species.name === 'Giratina' && this.item === 'griseousorb') { + this.formeChange('Giratina-Origin'); + } else if (this.species.name === 'Giratina-Origin' && this.item !== 'griseousorb') { + this.formeChange('Giratina'); + } + } + if (this.species.num === 493) { + // Arceus formes + const item = this.getItem(); + const targetForme = (item?.onPlate ? 'Arceus-' + item.onPlate : 'Arceus'); + if (this.species.name !== targetForme) { + this.formeChange(targetForme); + } + } + } + + return true; + }, + /** + * Changes this Pokemon's forme to match the given speciesId (or species). + * This function handles all changes to stats, ability, type, species, etc. + * as well as sending all relevant messages sent to the client. + */ + formeChange(speciesId, source, isPermanent, message) { + if (!source) source = this.battle.effect; + + const rawSpecies = this.battle.dex.species.get(speciesId); + + const species = this.setSpecies(rawSpecies, source); + if (!species) return false; + + if (this.battle.gen <= 2) return true; + + // The species the opponent sees + const apparentSpecies = + this.illusion ? this.illusion.species.name : species.baseSpecies; + if (isPermanent) { + this.baseSpecies = rawSpecies; + this.details = species.name + (this.level === 100 ? '' : ', L' + this.level) + + (this.gender === '' ? '' : ', ' + this.gender) + (this.set.shiny ? ', shiny' : ''); + this.battle.add('detailschange', this, (this.illusion || this).details); + if (source.effectType === 'Item') { + this.canTerastallize = null; // National Dex behavior + if (source.zMove) { + this.battle.add('-burst', this, apparentSpecies, species.requiredItem); + this.moveThisTurnResult = true; // Ultra Burst counts as an action for Truant + } else if (source.onPrimal) { + if (this.illusion) { + this.ability = ''; + this.battle.add('-primal', this.illusion); + } else { + this.battle.add('-primal', this); + } + } else { + this.battle.add('-mega', this, apparentSpecies, species.requiredItem); + this.moveThisTurnResult = true; // Mega Evolution counts as an action for Truant + } + } else if (source.effectType === 'Status') { + // Shaymin-Sky -> Shaymin + this.battle.add('-formechange', this, species.name, message); + } + } else { + if (source.effectType === 'Ability') { + this.battle.add('-formechange', this, species.name, message, `[from] ability: ${source.name}`); + } else { + this.battle.add('-formechange', this, this.illusion ? this.illusion.species.name : species.name, message); + } + } + if (isPermanent && !['disguise', 'iceface', 'ability:disguise', 'ability:iceface'].includes(source.id)) { + if (this.illusion) { + this.ability = ''; // Don't allow Illusion to wear off + } + this.setAbility(species.abilities['0'], null, true); + this.baseAbility = this.ability; + } + if (this.terastallized && this.terastallized !== this.apparentType) { + this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]'); + this.apparentType = this.terastallized; + } + return true; + }, + }, +}; diff --git a/data/mods/gen7sm/formats-data.ts b/data/mods/gen7sm/formats-data.ts index 72f38d3b9433..aa488e96c544 100644 --- a/data/mods/gen7sm/formats-data.ts +++ b/data/mods/gen7sm/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { pikachupartner: { isNonstandard: "Future", tier: "Illegal", diff --git a/data/mods/gen7sm/items.ts b/data/mods/gen7sm/items.ts index bca4ea102a7a..cd8a7a72ed69 100644 --- a/data/mods/gen7sm/items.ts +++ b/data/mods/gen7sm/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { kommoniumz: { inherit: true, isNonstandard: "Future", diff --git a/data/mods/gen7sm/learnsets.ts b/data/mods/gen7sm/learnsets.ts index d8d5dc36af60..c29ff4ae3b72 100644 --- a/data/mods/gen7sm/learnsets.ts +++ b/data/mods/gen7sm/learnsets.ts @@ -1,4 +1,4 @@ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { bulbasaur: { inherit: true, learnset: { @@ -34830,14 +34830,14 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { calmmind: ["7M", "6M", "5M", "4M", "3M"], chargebeam: ["7M", "6M", "5M", "4M"], confide: ["7M", "6M"], - confusion: ["7L1", "6L1", "6S18", "6S20", "6S21", "5L1", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], - cosmicpower: ["7L60", "6L60", "6S19", "5L60", "5S15", "4L60", "3L45"], + confusion: ["7L1", "6L1", "6S10", "6S12", "6S13", "5L1", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + cosmicpower: ["7L60", "6L60", "6S11", "5L60", "5S7", "4L60", "3L45"], dazzlinggleam: ["7M", "6M"], defensecurl: ["3T"], doomdesire: ["7L70", "6L70", "5L70", "4L70", "3L50"], doubleedge: ["7L40", "6L40", "5L40", "4L40", "3T", "3L35"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dracometeor: ["5S14", "4S12"], + dracometeor: ["5S6", "4S4"], drainpunch: ["6T", "5T", "4M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], dynamicpunch: ["3T"], @@ -34848,17 +34848,17 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { flash: ["6M", "5M", "4M", "3M"], flashcannon: ["7M", "6M", "5M", "4M"], fling: ["7M", "6M", "5M", "4M"], - followme: ["5S14"], + followme: ["5S6"], frustration: ["7M", "6M", "5M", "4M", "3M"], futuresight: ["7L55", "6L55", "5L55", "4L55", "3L40"], gigaimpact: ["7M", "6M", "5M", "4M"], grassknot: ["7M", "6M", "5M", "4M"], gravity: ["7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], - happyhour: ["6S20"], + happyhour: ["6S12"], headbutt: ["4T"], - healingwish: ["7L50", "7S22", "6L50", "6S17", "5L50", "5S13", "5S15", "5S16", "4L50"], - heartstamp: ["6S19"], - helpinghand: ["7L15", "6T", "6L15", "6S18", "5T", "5L15", "4T", "4L15", "3L15", "3S10"], + healingwish: ["7L50", "7S14", "6L50", "6S9", "5L50", "5S5", "5S7", "5S8", "4L50"], + heartstamp: ["6S11"], + helpinghand: ["7L15", "6T", "6L15", "6S10", "5T", "5L15", "4T", "4L15", "3L15", "3S2"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hyperbeam: ["7M", "6M", "5M", "4M", "3M"], icepunch: ["6T", "5T", "4T", "3T"], @@ -34869,25 +34869,25 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { lightscreen: ["7M", "6M", "5M", "4M", "3M"], magiccoat: ["6T", "5T", "4T"], magicroom: ["6T", "5T"], - meteormash: ["5S13", "5S14", "5S15"], + meteormash: ["5S5", "5S6", "5S7"], metronome: ["3T"], mimic: ["3T"], - moonblast: ["6S17"], + moonblast: ["6S9"], mudslap: ["4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - playrough: ["6S19"], + playrough: ["6S11"], poweruppunch: ["6M"], protect: ["7M", "6M", "5M", "4M", "3M"], - psychic: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "5S13", "4M", "4L20", "3M", "3L20", "3S10"], + psychic: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "5S5", "4M", "4L20", "3M", "3L20", "3S2"], psychup: ["7M", "6M", "5M", "4M", "3T"], psyshock: ["7M", "6M", "5M"], raindance: ["7M", "6M", "5M", "4M", "3M"], recycle: ["6T", "5T", "4M"], reflect: ["7M", "6M", "5M", "4M", "3M"], - refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S10"], - rest: ["7M", "7L30", "7L5", "7S22", "6M", "6L5", "6S21", "5M", "5L5", "4M", "4L5", "4S11", "4S12", "3M", "3L5", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9", "3S10"], - return: ["7M", "6M", "6S18", "5M", "5S16", "4M", "3M"], + refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S2"], + rest: ["7M", "7L30", "7L5", "7S14", "6M", "6L5", "6S13", "5M", "5L5", "4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], + return: ["7M", "6M", "6S10", "5M", "5S8", "4M", "3M"], round: ["7M", "6M", "5M"], safeguard: ["7M", "6M", "5M", "4M", "3M"], sandstorm: ["7M", "6M", "5M", "4M", "3M"], @@ -34902,7 +34902,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { substitute: ["7M", "6M", "5M", "4M", "3T"], sunnyday: ["7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["7L10", "7S22", "6L10", "6S17", "6S20", "5L10", "5S13", "5S16", "4T", "4L10", "3T", "3L10"], + swift: ["7L10", "7S14", "6L10", "6S9", "6S12", "5L10", "5S5", "5S8", "4T", "4L10", "3T", "3L10"], telekinesis: ["5M"], thunder: ["7M", "6M", "5M", "4M", "3M"], thunderbolt: ["7M", "6M", "5M", "4M", "3M"], @@ -34914,7 +34914,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { uproar: ["6T", "5T", "4T"], uturn: ["7M", "6M", "5M", "4M"], waterpulse: ["6T", "4M", "3M"], - wish: ["7L1", "7S22", "6L1", "6S17", "6S18", "6S19", "6S20", "6S21", "5L1", "5S14", "5S15", "5S16", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], + wish: ["7L1", "7S14", "6L1", "6S9", "6S10", "6S11", "6S12", "6S13", "5L1", "5S6", "5S7", "5S8", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], zenheadbutt: ["7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], }, }, @@ -51836,7 +51836,7 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { workup: ["7M"], }, }, - greninjaash: { + greninjabond: { inherit: true, learnset: { acrobatics: ["7M"], diff --git a/data/mods/gen7sm/moves.ts b/data/mods/gen7sm/moves.ts index 7f79335e2a73..5a42912cac18 100644 --- a/data/mods/gen7sm/moves.ts +++ b/data/mods/gen7sm/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { mindblown: { inherit: true, isNonstandard: "Future", diff --git a/data/mods/gen7sm/pokedex.ts b/data/mods/gen7sm/pokedex.ts index b9cbd2d0c38a..630e47e8ab77 100644 --- a/data/mods/gen7sm/pokedex.ts +++ b/data/mods/gen7sm/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { litten: { inherit: true, unreleasedHidden: true, diff --git a/data/mods/gen8/abilities.ts b/data/mods/gen8/abilities.ts index be86472d790b..b43d0032258d 100644 --- a/data/mods/gen8/abilities.ts +++ b/data/mods/gen8/abilities.ts @@ -32,7 +32,7 @@ Ratings and how they work: */ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { noability: { inherit: true, rating: 0.1, @@ -107,7 +107,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { if (effect?.effectType !== 'Move') { return; } - if (source.species.id === 'greninja' && source.hp && !source.transformed && source.side.foePokemonLeft()) { + if (source.species.id === 'greninjabond' && source.hp && !source.transformed && source.side.foePokemonLeft()) { this.add('-activate', source, 'ability: Battle Bond'); source.formeChange('Greninja-Ash', this.effect, true); } @@ -172,6 +172,24 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, competitive: { inherit: true, + onAfterEachBoost(boost, target, source, effect) { + if (!source || target.isAlly(source)) { + if (effect.id === 'stickyweb') { + this.hint("In Gen 8, Court Change Sticky Web counts as lowering your own Speed, and Competitive only affects stats lowered by foes.", true, source.side); + } + return; + } + let statsLowered = false; + let i: BoostID; + for (i in boost) { + if (boost[i]! < 0) { + statsLowered = true; + } + } + if (statsLowered) { + this.boost({spa: 2}, target, target, null, false, true); + } + }, rating: 2.5, }, compoundeyes: { @@ -231,6 +249,24 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, defiant: { inherit: true, + onAfterEachBoost(boost, target, source, effect) { + if (!source || target.isAlly(source)) { + if (effect.id === 'stickyweb') { + this.hint("In Gen 8, Court Change Sticky Web counts as lowering your own Speed, and Defiant only affects stats lowered by foes.", true, source.side); + } + return; + } + let statsLowered = false; + let i: BoostID; + for (i in boost) { + if (boost[i]! < 0) { + statsLowered = true; + } + } + if (statsLowered) { + this.boost({atk: 2}, target, target, null, false, true); + } + }, rating: 2.5, }, deltastream: { @@ -371,6 +407,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, gulpmissile: { inherit: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, notransform: 1}, rating: 2.5, }, guts: { @@ -387,6 +424,15 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, heatproof: { inherit: true, + onSourceModifyAtk() {}, + onSourceModifySpA() {}, + onSourceBasePowerPriority: 18, + onSourceBasePower(basePower, attacker, defender, move) { + if (move.type === 'Fire') { + this.debug('Heatproof BP weaken'); + return this.chainModify(0.5); + } + }, rating: 2, }, heavymetal: { @@ -431,6 +477,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, illuminate: { inherit: true, + onTryBoost() {}, + onModifyMove() {}, + flags: {}, rating: 0, }, illusion: { @@ -503,7 +552,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { libero: { inherit: true, onPrepareHit(source, target, move) { - if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return; + if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch' || move.callsMove) return; const type = move.type; if (type && type !== '???' && source.getTypes().join() !== type) { if (!source.setType(type)) return; @@ -579,7 +628,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, mirrorarmor: { inherit: true, - rating: 2, + rating: 2.5, }, mistysurge: { inherit: true, @@ -724,7 +773,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { protean: { inherit: true, onPrepareHit(source, target, move) { - if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return; + if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch' || move.callsMove) return; const type = move.type; if (type && type !== '???' && source.getTypes().join() !== type) { if (!source.setType(type)) return; @@ -1059,10 +1108,22 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, trace: { inherit: true, - rating: 2.5, + rating: 3, }, transistor: { inherit: true, + onModifyAtk(atk, attacker, defender, move) { + if (move.type === 'Electric') { + this.debug('Transistor boost'); + return this.chainModify(1.5); + } + }, + onModifySpA(atk, attacker, defender, move) { + if (move.type === 'Electric') { + this.debug('Transistor boost'); + return this.chainModify(1.5); + } + }, rating: 3.5, }, triage: { @@ -1139,6 +1200,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { }, wonderguard: { inherit: true, + flags: {failroleplay: 1, noreceiver: 1, failskillswap: 1, breakable: 1}, rating: 5, }, wonderskin: { diff --git a/data/mods/gen8/formats-data.ts b/data/mods/gen8/formats-data.ts index add5d978d8c0..373fb35bd0cd 100644 --- a/data/mods/gen8/formats-data.ts +++ b/data/mods/gen8/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: SpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, @@ -77,7 +77,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, butterfree: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -180,7 +180,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachu: { - tier: "NFE", + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", }, pikachucosplay: { isNonstandard: "Past", @@ -207,37 +209,37 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, pikachuoriginal: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachuhoenn: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachusinnoh: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachuunova: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachukalos: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachualola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pikachupartner: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -252,12 +254,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "(Uber)", }, pikachuworld: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, raichu: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -310,7 +312,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, clefairy: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, clefable: { tier: "OU", @@ -325,7 +329,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "LC", }, ninetales: { - tier: "(PU)", + tier: "ZU", doublesTier: "DUU", natDexTier: "RU", }, @@ -341,7 +345,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, wigglytuff: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -368,7 +372,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, bellossom: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -399,12 +403,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, dugtrio: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, dugtrioalola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -424,17 +428,17 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "(Uber)", }, persian: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, persianalola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, perrserker: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -442,7 +446,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, golduck: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -479,12 +483,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, poliwrath: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, politoed: { - tier: "(PU)", + tier: "ZU", doublesTier: "DUU", natDexTier: "RU", }, @@ -581,12 +585,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, rapidash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, rapidashgalar: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -635,7 +639,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "OU", }, farfetchd: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -700,7 +704,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "LC", }, haunter: { - tier: "NFE", + tier: "ZUBL", + doublesTier: "NFE", + natDexTier: "NFE", }, gengar: { tier: "UUBL", @@ -777,7 +783,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, exeggutor: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -790,7 +796,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, marowak: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -813,7 +819,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, hitmonchan: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -826,7 +832,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lickilicky: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -847,7 +853,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, rhydon: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, rhyperior: { tier: "RU", @@ -877,7 +885,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RUBL", }, kangaskhan: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -901,7 +909,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, seaking: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -917,7 +925,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, mrmime: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -925,7 +933,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, mrrime: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -948,7 +956,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, jynx: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -959,7 +967,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, electivire: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -970,12 +978,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, magmortar: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, pinsir: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1003,7 +1011,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UUBL", }, lapras: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1014,7 +1022,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "(Uber)", }, ditto: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1042,7 +1050,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, flareon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1057,12 +1065,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, leafeon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, glaceon: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1096,7 +1104,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, kabutops: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1125,7 +1133,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "(Uber)", }, articuno: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1248,7 +1256,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, noctowl: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1334,7 +1342,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, sudowoodo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1420,7 +1428,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, wobbuffet: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1440,7 +1448,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, dunsparce: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1465,7 +1473,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, qwilfish: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1474,7 +1482,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, shuckle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1489,7 +1497,8 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UUBL", }, sneasel: { - tier: "NFE", + tier: "ZUBL", + doublesTier: "NFE", natDexTier: "LC", }, sneaselhisui: { @@ -1525,7 +1534,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, piloswine: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, mamoswine: { tier: "UU", @@ -1533,7 +1544,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UU", }, corsola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1542,7 +1553,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "LC", }, cursola: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1550,12 +1561,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, octillery: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, delibird: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1608,7 +1619,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, miltank: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1767,7 +1778,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, ludicolo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1778,7 +1789,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, shiftry: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1865,12 +1876,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, ninjask: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, shedinja: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1916,7 +1927,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, sableye: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1926,7 +1937,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UUBL", }, mawile: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -1970,7 +1981,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, manectric: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2037,7 +2048,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, wailord: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2101,7 +2112,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, altaria: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2121,12 +2132,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, lunatone: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, solrock: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2134,7 +2145,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, whiscash: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2158,7 +2169,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, cradily: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2166,7 +2177,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, armaldo: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2219,7 +2230,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, dusknoir: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2252,7 +2263,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, glalie: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2262,7 +2273,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, froslass: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2273,7 +2284,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, walrein: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2293,7 +2304,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, relicanth: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2340,7 +2351,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, regice: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2511,7 +2522,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, luxray: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2564,7 +2575,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, vespiquen: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2588,7 +2599,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "LC", }, cherrim: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2607,7 +2618,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "LC", }, drifblim: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2615,7 +2626,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lopunny: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2638,7 +2649,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, skuntank: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2656,7 +2667,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, spiritomb: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2732,7 +2743,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, abomasnow: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2742,7 +2753,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, rotom: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2757,12 +2768,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UU", }, rotomfrost: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, rotomfan: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2772,7 +2783,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, uxie: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2810,7 +2821,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "OU", }, regigigas: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2981,7 +2992,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, stoutland: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -2989,7 +3000,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, liepard: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3027,7 +3038,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, musharna: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3038,7 +3049,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, unfezant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3068,7 +3079,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "LC", }, swoobat: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3094,7 +3105,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, gurdurr: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, conkeldurr: { tier: "UU", @@ -3113,12 +3126,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, throh: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, sawk: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3160,7 +3173,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lilligant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3169,12 +3182,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, basculin: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, basculinbluestriped: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3220,7 +3233,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, maractus: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3228,7 +3241,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, crustle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3253,12 +3266,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, cofagrigus: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, runerigus: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3266,7 +3279,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, carracosta: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3324,7 +3337,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, gothitelle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3371,7 +3384,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, emolga: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3429,7 +3442,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, klinklang: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3452,7 +3465,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, beheeyem: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3482,12 +3495,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, beartic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, cryogonal: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3495,17 +3508,17 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, accelgor: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, stunfisk: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, stunfiskgalar: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3539,7 +3552,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RUBL", }, bouffalant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3557,8 +3570,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", }, vullaby: { - tier: "NFE", - natDexTier: "LC", + tier: "LC", }, mandibuzz: { tier: "UU", @@ -3566,7 +3578,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UU", }, heatmor: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3749,11 +3761,14 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "Illegal", natDexTier: "OU", }, - greninjaash: { + greninjabond: { isNonstandard: "Past", tier: "Illegal", natDexTier: "OU", }, + greninjaash: { + isNonstandard: "Past", + }, bunnelby: { tier: "LC", }, @@ -3850,12 +3865,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, meowstic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, meowsticf: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3898,7 +3913,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, malamar: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3946,7 +3961,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, aurorus: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3956,12 +3971,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UUBL", }, dedenne: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, carbink: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -3993,7 +4008,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, trevenant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4010,22 +4025,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, gourgeist: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, gourgeistsmall: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, gourgeistlarge: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, gourgeistsuper: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4033,7 +4048,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, avalugg: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4177,7 +4192,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, vikavolt: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4242,7 +4257,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, lycanrocmidnight: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4291,7 +4306,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, lurantis: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4304,7 +4319,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, shiinotic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4346,7 +4361,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, oranguru: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4367,12 +4382,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, palossand: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pyukumuku: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4380,27 +4395,27 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, silvally: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallybug: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallydark: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallydragon: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, silvallyelectric: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4410,17 +4425,17 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, silvallyfighting: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallyfire: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallyflying: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4430,7 +4445,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, silvallygrass: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4440,22 +4455,22 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, silvallyice: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallypoison: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallypsychic: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, silvallyrock: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4465,7 +4480,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, silvallywater: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4483,7 +4498,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, turtonator: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4670,7 +4685,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "UU", }, meltan: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4689,7 +4704,9 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, thwackey: { - tier: "NFE", + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", }, rillaboom: { tier: "OU", @@ -4740,7 +4757,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, greedent: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4768,7 +4785,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, orbeetle: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4782,7 +4799,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, thievul: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4798,7 +4815,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, dubwool: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4806,7 +4823,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, drednaw: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4820,7 +4837,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, boltund: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4831,7 +4848,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "NFE", }, coalossal: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4845,7 +4862,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, flapple: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4856,7 +4873,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "(Uber)", }, appletun: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4881,17 +4898,17 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "(Uber)", }, cramorant: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, cramorantgulping: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, cramorantgorging: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4932,7 +4949,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, centiskorch: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4946,7 +4963,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, grapploct: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -4999,7 +5016,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { tier: "LC", }, alcremie: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5010,12 +5027,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "(Uber)", }, falinks: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, pincurchin: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5028,12 +5045,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, stonjourner: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, eiscue: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5048,12 +5065,12 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, morpeko: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, morpekohangry: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5087,7 +5104,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, arctovish: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5185,7 +5202,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "RU", }, glastrier: { - tier: "(PU)", + tier: "ZUBL", doublesTier: "(DUU)", natDexTier: "RU", }, @@ -5195,7 +5212,7 @@ export const FormatsData: {[k: string]: SpeciesFormatsData} = { natDexTier: "Uber", }, calyrex: { - tier: "(PU)", + tier: "ZU", doublesTier: "(DUU)", natDexTier: "RU", }, diff --git a/data/mods/gen8/items.ts b/data/mods/gen8/items.ts index d3eaea880170..59dc8c70a595 100644 --- a/data/mods/gen8/items.ts +++ b/data/mods/gen8/items.ts @@ -1,12 +1,8 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { adamantcrystal: { inherit: true, isNonstandard: "Future", }, - adamantorb: { - inherit: true, - isNonstandard: null, - }, berryjuice: { inherit: true, isNonstandard: null, @@ -51,6 +47,10 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + dracoplate: { + inherit: true, + isNonstandard: "Past", + }, dragonmemory: { inherit: true, isNonstandard: null, @@ -59,10 +59,18 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + dreadplate: { + inherit: true, + isNonstandard: "Past", + }, dubiousdisc: { inherit: true, isNonstandard: null, }, + earthplate: { + inherit: true, + isNonstandard: "Past", + }, electirizer: { inherit: true, isNonstandard: null, @@ -87,6 +95,14 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + fistplate: { + inherit: true, + isNonstandard: "Past", + }, + flameplate: { + inherit: true, + isNonstandard: "Past", + }, flowersweet: { inherit: true, isNonstandard: null, @@ -115,14 +131,6 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, - galaricacuff: { - inherit: true, - isNonstandard: null, - }, - galaricawreath: { - inherit: true, - isNonstandard: null, - }, ghostmemory: { inherit: true, isNonstandard: null, @@ -137,7 +145,6 @@ export const Items: {[k: string]: ModdedItemData} = { }, griseousorb: { inherit: true, - isNonstandard: null, onTakeItem(item, pokemon, source) { if (source?.baseSpecies.num === 487 || pokemon.baseSpecies.num === 487) { return false; @@ -155,6 +162,18 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + icicleplate: { + inherit: true, + isNonstandard: "Past", + }, + insectplate: { + inherit: true, + isNonstandard: "Past", + }, + ironplate: { + inherit: true, + isNonstandard: "Past", + }, jabocaberry: { inherit: true, isNonstandard: null, @@ -179,10 +198,6 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: "Future", }, - lustrousorb: { - inherit: true, - isNonstandard: null, - }, machobrace: { inherit: true, isNonstandard: null, @@ -195,6 +210,10 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + meadowplate: { + inherit: true, + isNonstandard: "Past", + }, metalpowder: { inherit: true, isNonstandard: null, @@ -203,11 +222,11 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, - oddincense: { + mindplate: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", }, - pixieplate: { + oddincense: { inherit: true, isNonstandard: null, }, @@ -215,10 +234,6 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, - prismscale: { - inherit: true, - isNonstandard: null, - }, protector: { inherit: true, isNonstandard: null, @@ -231,9 +246,9 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, - reapercloth: { + razorfang: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", }, ribbonsweet: { inherit: true, @@ -255,22 +270,10 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, - rustedshield: { - inherit: true, - isNonstandard: null, - }, - rustedsword: { - inherit: true, - isNonstandard: null, - }, sachet: { inherit: true, isNonstandard: null, }, - safariball: { - inherit: true, - isNonstandard: null, - }, seaincense: { inherit: true, isNonstandard: null, @@ -279,18 +282,26 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, - souldew: { + skyplate: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", }, - sportball: { + splashplate: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", + }, + spookyplate: { + inherit: true, + isNonstandard: "Past", }, starsweet: { inherit: true, isNonstandard: null, }, + stoneplate: { + inherit: true, + isNonstandard: "Past", + }, strawberrysweet: { inherit: true, isNonstandard: null, @@ -307,6 +318,10 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + toxicplate: { + inherit: true, + isNonstandard: "Past", + }, tr00: { inherit: true, isNonstandard: null, @@ -723,4 +738,8 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + zapplate: { + inherit: true, + isNonstandard: "Past", + }, }; diff --git a/data/mods/gen8/learnsets.ts b/data/mods/gen8/learnsets.ts index f0b173174a2e..ad2ee795440f 100644 --- a/data/mods/gen8/learnsets.ts +++ b/data/mods/gen8/learnsets.ts @@ -1,4 +1,4 @@ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { vivillonfancy: { inherit: true, eventOnly: true, diff --git a/data/mods/gen8/moves.ts b/data/mods/gen8/moves.ts index 6db2c57e0070..2a22dafba506 100644 --- a/data/mods/gen8/moves.ts +++ b/data/mods/gen8/moves.ts @@ -1,18 +1,8 @@ -export const Moves: {[k: string]: ModdedMoveData} = { - aeroblast: { - inherit: true, - isNonstandard: null, - }, +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { allyswitch: { inherit: true, - stallingMove: false, + // Prevents setting the volatile used to check for Ally Switch failure onPrepareHit() {}, - onHit(pokemon) { - const newPosition = (pokemon.position === 0 ? pokemon.side.active.length - 1 : 0); - if (!pokemon.side.active[newPosition]) return false; - if (pokemon.side.active[newPosition].fainted) return false; - this.swapPosition(pokemon, newPosition, '[from] move: Ally Switch'); - }, }, anchorshot: { inherit: true, @@ -26,10 +16,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1}, }, - aurawheel: { - inherit: true, - isNonstandard: null, - }, auroraveil: { inherit: true, onTry() { @@ -40,6 +26,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, + beakblast: { + inherit: true, + isNonstandard: "Past", + }, belch: { inherit: true, flags: {protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1}, @@ -50,19 +40,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { if (this.field.isWeather('hail')) move.accuracy = true; }, }, - blueflare: { - inherit: true, - isNonstandard: null, - }, boltbeak: { inherit: true, isNonstandard: null, }, - boltstrike: { + bonemerang: { inherit: true, isNonstandard: null, }, - bonemerang: { + burnup: { inherit: true, isNonstandard: null, }, @@ -105,25 +91,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, flags: { protect: 1, mirror: 1, sound: 1, distance: 1, bypasssub: 1, - noassist: 1, failcopycat: 1, failinstruct: 1, failmefirst: 1, nosleeptalk: 1, failmimic: 1, + noassist: 1, failcopycat: 1, failinstruct: 1, failmefirst: 1, nosleeptalk: 1, failmimic: 1, nosketch: 1, }, }, - clangingscales: { - inherit: true, - isNonstandard: null, - }, - clangoroussoul: { - inherit: true, - isNonstandard: null, - }, - conversion: { - inherit: true, - isNonstandard: null, - }, - conversion2: { - inherit: true, - isNonstandard: null, - }, copycat: { inherit: true, flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1}, @@ -132,7 +102,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - cosmicpower: { + corrosivegas: { inherit: true, isNonstandard: null, }, @@ -140,10 +110,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - crushgrip: { - inherit: true, - isNonstandard: null, - }, curse: { inherit: true, onModifyMove(move, source, target) { @@ -153,13 +119,14 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, target: "randomNormal", }, - decorate: { + cut: { inherit: true, isNonstandard: null, }, - doomdesire: { + darkvoid: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, }, doubleironbash: { inherit: true, @@ -167,7 +134,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, dragonhammer: { inherit: true, - isNonstandard: null, + flags: {contact: 1, protect: 1, mirror: 1}, }, dualchop: { inherit: true, @@ -186,10 +153,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - floralhealing: { - inherit: true, - isNonstandard: null, - }, flowershield: { inherit: true, isNonstandard: null, @@ -209,7 +172,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { // The animation leak target itself isn't "accurate"; the target it reveals is as if Fly weren't a charge movee // (Fly, like all other charge moves, will actually target slots on its charging turn, relevant for things like Follow Me) // We use a generic single-target move to represent this - if (this.gameType === 'doubles' || this.gameType === 'multi') { + if (this.sides.length > 2) { const animatedTarget = attacker.getMoveTargets(this.dex.getActiveMove('aerialace'), defender).targets[0]; if (animatedTarget) { this.hint(`${move.name}'s animation targeted ${animatedTarget.name}`); @@ -219,25 +182,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { return null; }, }, - forestscurse: { - inherit: true, - isNonstandard: null, - }, - freezeshock: { - inherit: true, - isNonstandard: null, - }, - fusionbolt: { - inherit: true, - isNonstandard: null, - }, - fusionflare: { - inherit: true, - isNonstandard: null, - }, futuresight: { inherit: true, - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, }, geargrind: { inherit: true, @@ -255,10 +202,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, basePower: 130, }, - glaciate: { - inherit: true, - isNonstandard: null, - }, grassyglide: { inherit: true, basePower: 70, @@ -275,30 +218,28 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - healbell: { - inherit: true, - isNonstandard: null, - }, heartswap: { inherit: true, isNonstandard: "Past", }, + holdback: { + inherit: true, + isNonstandard: null, + }, holdhands: { inherit: true, + isNonstandard: null, flags: {bypasssub: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1}, }, hyperspacefury: { inherit: true, isNonstandard: "Past", + flags: {mirror: 1, bypasssub: 1}, }, hyperspacehole: { inherit: true, isNonstandard: "Past", }, - iceburn: { - inherit: true, - isNonstandard: null, - }, icehammer: { inherit: true, isNonstandard: "Past", @@ -333,7 +274,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, lusterpurge: { inherit: true, - isNonstandard: null, + basePower: 70, }, magiccoat: { inherit: true, @@ -455,11 +396,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { }, mistball: { inherit: true, - isNonstandard: null, - }, - moongeistbeam: { - inherit: true, - isNonstandard: null, + basePower: 70, }, multiattack: { inherit: true, @@ -490,10 +427,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - photongeyser: { - inherit: true, - isNonstandard: null, - }, plasmafists: { inherit: true, isNonstandard: null, @@ -502,9 +435,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - prismaticlaser: { + psychoboost: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", }, psychoshift: { inherit: true, @@ -534,18 +467,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - rockwrecker: { - inherit: true, - isNonstandard: null, - }, roost: { inherit: true, pp: 10, }, - sacredfire: { - inherit: true, - isNonstandard: null, - }, searingshot: { inherit: true, isNonstandard: null, @@ -554,6 +479,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, + seedflare: { + inherit: true, + isNonstandard: "Past", + }, shadowbone: { inherit: true, isNonstandard: null, @@ -566,9 +495,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, pp: 10, }, - simplebeam: { + sketch: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", }, skullbash: { inherit: true, @@ -590,19 +519,24 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, pp: 10, }, - sparklingaria: { - inherit: true, - isNonstandard: null, - }, spectralthief: { inherit: true, isNonstandard: null, }, - stormthrow: { + stickyweb: { inherit: true, - isNonstandard: null, + condition: { + onSideStart(side) { + this.add('-sidestart', side, 'move: Sticky Web'); + }, + onEntryHazard(pokemon) { + if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return; + this.add('-activate', pokemon, 'move: Sticky Web'); + this.boost({spe: -1}, pokemon, this.effectState.source, this.dex.getActiveMove('stickyweb')); + }, + }, }, - strangesteam: { + stormthrow: { inherit: true, isNonstandard: null, }, @@ -610,9 +544,9 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - sunsteelstrike: { + tailglow: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", }, technoblast: { inherit: true, @@ -626,15 +560,15 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: null, }, - topsyturvy: { + toxicthread: { inherit: true, - isNonstandard: null, + isNonstandard: "Past", }, trickortreat: { inherit: true, isNonstandard: null, }, - triplekick: { + vcreate: { inherit: true, isNonstandard: null, }, diff --git a/data/mods/gen8/pokedex.ts b/data/mods/gen8/pokedex.ts index 896703678358..40bfb40478d3 100644 --- a/data/mods/gen8/pokedex.ts +++ b/data/mods/gen8/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { growlithehisui: { inherit: true, abilities: {0: "Intimidate", 1: "Flash Fire", H: "Justified"}, @@ -15,6 +15,22 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Inner Focus", 1: "Keen Eye", H: "Poison Touch"}, }, + shiftry: { + inherit: true, + abilities: {0: "Chlorophyll", 1: "Early Bird", H: "Pickpocket"}, + }, + piplup: { + inherit: true, + abilities: {0: "Torrent", H: "Defiant"}, + }, + prinplup: { + inherit: true, + abilities: {0: "Torrent", H: "Defiant"}, + }, + empoleon: { + inherit: true, + abilities: {0: "Torrent", H: "Defiant"}, + }, gallade: { inherit: true, abilities: {0: "Steadfast", H: "Justified"}, @@ -45,6 +61,10 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { prevo: undefined, evoLevel: undefined, }, + vivillonpokeball: { + inherit: true, + abilities: {0: "Shield Dust", 1: "Compound Eyes"}, + }, sliggoohisui: { inherit: true, abilities: {0: "Sap Sipper", 1: "Overcoat", H: "Gooey"}, @@ -96,4 +116,9 @@ export const Pokedex: {[k: string]: ModdedSpeciesData} = { inherit: true, abilities: {0: "Healer", H: "Contrary"}, }, + kitsunoh: { + inherit: true, + baseStats: {hp: 80, atk: 103, def: 85, spa: 55, spd: 80, spe: 110}, + abilities: {0: "Frisk", 1: "Limber", H: "Iron Fist"}, + }, }; diff --git a/data/mods/gen8/rulesets.ts b/data/mods/gen8/rulesets.ts index db5dcf9f8f36..58b0abca1fb4 100644 --- a/data/mods/gen8/rulesets.ts +++ b/data/mods/gen8/rulesets.ts @@ -1,4 +1,4 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { standard: { inherit: true, ruleset: [ @@ -17,4 +17,133 @@ export const Rulesets: {[k: string]: ModdedFormatData} = { 'Obtainable', 'Team Preview', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'Dynamax Clause', 'HP Percentage Mod', 'Cancel Mod', 'Overflow Stat Mod', ], }, + teampreview: { + inherit: true, + onTeamPreview() { + this.add('clearpoke'); + for (const pokemon of this.getAllPokemon()) { + const details = pokemon.details.replace(', shiny', '') + .replace(/(Arceus|Greninja|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') + .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*'); // Hacked-in Crowned formes will be revealed + this.add('poke', pokemon.side.id, details, ''); + } + this.makeRequest('teampreview'); + }, + }, + tiershiftmod: { + inherit: true, + desc: `Pokémon below OU get their stats, excluding HP, boosted. UU/RUBL get +10, RU/NUBL get +20, NU/PUBL get +30, and PU or lower get +40.`, + onModifySpecies(species, target, source, effect) { + if (!species.baseStats) return; + const boosts: {[tier: string]: number} = { + uu: 10, + rubl: 10, + ru: 20, + nubl: 20, + nu: 30, + publ: 30, + pu: 40, + zubl: 40, + zu: 40, + nfe: 40, + lc: 40, + }; + let tier: string = this.toID(species.tier); + if (!(tier in boosts)) return; + // Non-Pokemon bans in lower tiers + if (target) { + if (target.set.item === 'lightclay') return; + if (['drizzle', 'drought', 'slushrush'].includes(target.set.ability) && boosts[tier] > 20) tier = 'nubl'; + } + const pokemon = this.dex.deepClone(species); + pokemon.bst = pokemon.baseStats['hp']; + const boost = boosts[tier]; + let statName: StatID; + for (statName in pokemon.baseStats as StatsTable) { + if (statName === 'hp') continue; + pokemon.baseStats[statName] = this.clampIntRange(pokemon.baseStats[statName] + boost, 1, 255); + pokemon.bst += pokemon.baseStats[statName]; + } + return pokemon; + }, + }, + bonustypemod: { + inherit: true, + desc: `Pokémon can be nicknamed the name of a type to have that type added onto their current ones.`, + onBegin() { + this.add('rule', 'Bonus Type Mod: Pok\u00e9mon can be nicknamed the name of a type to have that type added onto their current ones.'); + }, + onModifySpecies(species, target, source, effect) { + if (!target) return; // Chat command + if (effect && ['imposter', 'transform'].includes(effect.id)) return; + const typesSet = new Set(species.types); + const bonusType = this.dex.types.get(target.set.name); + if (bonusType.exists) typesSet.add(bonusType.name); + return {...species, types: [...typesSet]}; + }, + }, + godlygiftmod: { + inherit: true, + onValidateTeam(team) { + const gods = new Set(); + for (const set of team) { + let species = this.dex.species.get(set.species); + if (typeof species.battleOnly === 'string') species = this.dex.species.get(species.battleOnly); + if (["Zacian", "Zamazenta"].includes(species.baseSpecies) && this.toID(set.item).startsWith('rusted')) { + species = this.dex.species.get(set.species + "-Crowned"); + } + if (set.item && this.dex.items.get(set.item).megaStone) { + const item = this.dex.items.get(set.item); + if (item.megaEvolves === species.baseSpecies) { + species = this.dex.species.get(item.megaStone); + } + } + if ( + ['ag', 'uber'].includes(this.toID(this.ruleTable.has('standardnatdex') ? species.natDexTier : species.tier)) || + this.toID(set.ability) === 'powerconstruct' + ) { + gods.add(species.name); + } + } + if (gods.size > 1) { + return [`You have too many Gods.`, `(${Array.from(gods).join(', ')} are Gods.)`]; + } + }, + onModifySpeciesPriority: 3, + onModifySpecies(species, target, source) { + if (source || !target?.side) return; + const god = target.side.team.find(set => { + let godSpecies = this.dex.species.get(set.species); + const isNatDex = this.format.ruleTable?.has('standardnatdex'); + const validator = this.dex.formats.getRuleTable( + this.dex.formats.get(`gen${this.gen}${isNatDex && this.gen >= 8 ? 'nationaldex' : 'ou'}`) + ); + if (this.toID(set.ability) === 'powerconstruct') { + return true; + } + if (set.item) { + const item = this.dex.items.get(set.item); + if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone); + if (["Zacian", "Zamazenta"].includes(godSpecies.baseSpecies) && item.id.startsWith('rusted')) { + godSpecies = this.dex.species.get(set.species + "-Crowned"); + } + } + const isBanned = validator.isBannedSpecies(godSpecies); + return isBanned; + }) || target.side.team[0]; + const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)]; + const newSpecies = this.dex.deepClone(species); + let godSpecies = this.dex.species.get(god.species); + if (typeof godSpecies.battleOnly === 'string') { + godSpecies = this.dex.species.get(godSpecies.battleOnly); + } + newSpecies.bst -= newSpecies.baseStats[stat]; + newSpecies.baseStats[stat] = godSpecies.baseStats[stat]; + if (this.gen === 1 && (stat === 'spa' || stat === 'spd')) { + newSpecies.baseStats['spa'] = newSpecies.baseStats['spd'] = godSpecies.baseStats[stat]; + } + newSpecies.bst += newSpecies.baseStats[stat]; + return newSpecies; + }, + }, }; diff --git a/data/mods/gen8/typechart.ts b/data/mods/gen8/typechart.ts new file mode 100644 index 000000000000..8ddf618a16a0 --- /dev/null +++ b/data/mods/gen8/typechart.ts @@ -0,0 +1,6 @@ +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { + stellar: { + inherit: true, + isNonstandard: 'Future', + }, +}; diff --git a/data/mods/gen8bdsp/abilities.ts b/data/mods/gen8bdsp/abilities.ts index 5833384bb002..d05958a97529 100644 --- a/data/mods/gen8bdsp/abilities.ts +++ b/data/mods/gen8bdsp/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { asoneglastrier: { inherit: true, isNonstandard: "Past", diff --git a/data/mods/gen8bdsp/formats-data.ts b/data/mods/gen8bdsp/formats-data.ts index c6d80e8f596c..6e9af81dcc1e 100644 --- a/data/mods/gen8bdsp/formats-data.ts +++ b/data/mods/gen8bdsp/formats-data.ts @@ -1,5 +1,5 @@ // TODO: alphabetize move names. I'm trying to implement this on a low-quality laptop under time pressure, so I haven't bothered doing so. -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { bulbasaur: { tier: "LC", }, @@ -223,7 +223,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, arcanine: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, poliwag: { @@ -257,7 +257,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, machamp: { - tier: "RU", + tier: "UU", doublesTier: "DUU", }, bellsprout: { @@ -274,7 +274,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, tentacruel: { - tier: "UU", + tier: "RU", doublesTier: "DUU", }, geodude: { @@ -505,7 +505,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, jynx: { - tier: "NU", + tier: "NUBL", doublesTier: "DUU", }, elekid: { @@ -540,7 +540,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gyarados: { - tier: "RUBL", + tier: "UU", doublesTier: "DOU", }, lapras: { @@ -567,7 +567,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, espeon: { - tier: "UU", + tier: "RU", doublesTier: "DUU", }, umbreon: { @@ -611,7 +611,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, munchlax: { - tier: "NFE", + tier: "LC", }, snorlax: { tier: "UU", @@ -644,7 +644,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUber", }, mew: { - tier: "UU", + tier: "OU", doublesTier: "DUU", }, chikorita: { @@ -770,7 +770,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, ambipom: { - tier: "UU", + tier: "RU", doublesTier: "DUU", }, sunkern: { @@ -930,7 +930,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, donphan: { - tier: "OU", + tier: "UU", doublesTier: "DUU", }, stantler: { @@ -946,7 +946,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, raikou: { - tier: "UUBL", + tier: "UU", doublesTier: "DOU", }, entei: { @@ -954,7 +954,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DOU", }, suicune: { - tier: "UU", + tier: "OU", doublesTier: "DOU", }, larvitar: { @@ -964,7 +964,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, tyranitar: { - tier: "OU", + tier: "UU", doublesTier: "DOU", }, lugia: { @@ -976,7 +976,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUber", }, celebi: { - tier: "UUBL", + tier: "OU", doublesTier: "DOU", }, treecko: { @@ -1209,7 +1209,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "NFE", }, roserade: { - tier: "UU", + tier: "OU", doublesTier: "DUU", }, gulpin: { @@ -1241,14 +1241,14 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, torkoal: { - tier: "UU", + tier: "RU", doublesTier: "DOU", }, spoink: { tier: "LC", }, grumpig: { - tier: "PU", + tier: "PUBL", doublesTier: "DUU", }, spinda: { @@ -1334,7 +1334,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, milotic: { - tier: "UU", + tier: "OU", doublesTier: "DOU", }, castform: { @@ -1370,7 +1370,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, chimecho: { - tier: "PUBL", + tier: "PU", doublesTier: "DUU", }, absol: { @@ -1470,7 +1470,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUber", }, jirachi: { - tier: "OU", + tier: "UU", doublesTier: "DUU", }, deoxys: { @@ -1615,7 +1615,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { tier: "LC", }, gastrodon: { - tier: "RU", + tier: "UU", doublesTier: "DOU", }, drifloon: { @@ -1742,7 +1742,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUU", }, uxie: { - tier: "UU", + tier: "RU", doublesTier: "DUU", }, mesprit: { @@ -1778,7 +1778,7 @@ export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { doublesTier: "DUber", }, cresselia: { - tier: "RUBL", + tier: "UU", doublesTier: "DOU", }, phione: { diff --git a/data/mods/gen8bdsp/items.ts b/data/mods/gen8bdsp/items.ts index 2a462c91f1ce..73c6951b68fd 100644 --- a/data/mods/gen8bdsp/items.ts +++ b/data/mods/gen8bdsp/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { absorbbulb: { inherit: true, isNonstandard: "Past", @@ -15,15 +15,19 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: "Past", }, + beastball: { + inherit: true, + isNonstandard: "Past", + }, berrysweet: { inherit: true, isNonstandard: "Past", }, - bindingband: { + bignugget: { inherit: true, isNonstandard: "Past", }, - beastball: { + bindingband: { inherit: true, isNonstandard: "Past", }, diff --git a/data/mods/gen8bdsp/learnsets.ts b/data/mods/gen8bdsp/learnsets.ts index 4cea60b95cdd..e12a208af1f8 100644 --- a/data/mods/gen8bdsp/learnsets.ts +++ b/data/mods/gen8bdsp/learnsets.ts @@ -1,6 +1,6 @@ /* eslint-disable max-len */ -export const Learnsets: {[k: string]: ModdedLearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { bulbasaur: { learnset: { amnesia: ["8E"], @@ -24396,27 +24396,27 @@ export const Learnsets: {[k: string]: ModdedLearnsetData} = { }, rotomheat: { learnset: { - overheat: ["8T"], + overheat: ["8R"], }, }, rotomwash: { learnset: { - hydropump: ["8T"], + hydropump: ["8R"], }, }, rotomfrost: { learnset: { - blizzard: ["8T"], + blizzard: ["8R"], }, }, rotomfan: { learnset: { - airslash: ["8T"], + airslash: ["8R"], }, }, rotommow: { learnset: { - leafstorm: ["8T"], + leafstorm: ["8R"], }, }, uxie: { diff --git a/data/mods/gen8bdsp/moves.ts b/data/mods/gen8bdsp/moves.ts index 8926f4d90a53..70ac8215ff7f 100644 --- a/data/mods/gen8bdsp/moves.ts +++ b/data/mods/gen8bdsp/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { accelerock: { inherit: true, isNonstandard: "Past", @@ -123,6 +123,10 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, isNonstandard: "Past", }, + dragonhammer: { + inherit: true, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + }, drumbeating: { inherit: true, isNonstandard: "Past", @@ -615,9 +619,6 @@ export const Moves: {[k: string]: ModdedMoveData} = { inherit: true, desc: "A random move is selected for use, other than After You, Belch, Body Press, Chatter, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Ascent, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Life Dew, Metronome, Mimic, Mirror Coat, Nature Power, Origin Pulse, Precipice Blades, Protect, Quash, Quick Guard, Rage Powder, Sketch, Sleep Talk, Snarl, Snore, Spiky Shield, Struggle, Switcheroo, Thief, Transform, Trick, or Wide Guard.", shortDesc: "Picks a random move.", - noMetronome: [ - "After You", "Belch", "Body Press", "Chatter", "Copycat", "Counter", "Covet", "Destiny Bond", "Detect", "Dragon Ascent", "Endure", "Feint", "Focus Punch", "Follow Me", "Helping Hand", "Life Dew", "Metronome", "Mimic", "Mirror Coat", "Nature Power", "Origin Pulse", "Precipice Blades", "Protect", "Quash", "Quick Guard", "Rage Powder", "Sketch", "Sleep Talk", "Snarl", "Snore", "Spiky Shield", "Struggle", "Switcheroo", "Thief", "Transform", "Trick", "Wide Guard", - ], }, mindblown: { inherit: true, diff --git a/data/mods/gen8bdsp/pokedex.ts b/data/mods/gen8bdsp/pokedex.ts index 7d65904d2578..a804a714cc72 100644 --- a/data/mods/gen8bdsp/pokedex.ts +++ b/data/mods/gen8bdsp/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { eevee: { inherit: true, evos: ["Vaporeon", "Jolteon", "Flareon", "Espeon", "Umbreon", "Leafeon", "Glaceon"], diff --git a/data/mods/gen8bdsp/rulesets.ts b/data/mods/gen8bdsp/rulesets.ts deleted file mode 100644 index c48b1cd3d786..000000000000 --- a/data/mods/gen8bdsp/rulesets.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { - obtainablemoves: { - inherit: true, - banlist: [ - // No valid fathers and can't get in Grand Underground - 'Taillow + Boomburst', 'Swellow + Boomburst', - 'Plusle + Tearful Look', - 'Minun + Tearful Look', - 'Luvdisc + Heal Pulse', - 'Starly + Detect', 'Staravia + Detect', 'Staraptor + Detect', - 'Chatot + Boomburst', 'Chatot + Encore', - 'Spiritomb + Foul Play', - 'Munchlax + Power-Up Punch', 'Snorlax + Power-Up Punch', - ], - }, -}; diff --git a/data/mods/gen8dlc1/abilities.ts b/data/mods/gen8dlc1/abilities.ts index 243ebe173bb9..cee6dfe06a03 100644 --- a/data/mods/gen8dlc1/abilities.ts +++ b/data/mods/gen8dlc1/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { asoneglastrier: { inherit: true, isNonstandard: "Unobtainable", diff --git a/data/mods/gen8dlc1/formats-data.ts b/data/mods/gen8dlc1/formats-data.ts index abc765612d71..16b18855d70f 100644 --- a/data/mods/gen8dlc1/formats-data.ts +++ b/data/mods/gen8dlc1/formats-data.ts @@ -1,4 +1,4 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { pikachuworld: { isNonstandard: "Unobtainable", tier: "Unreleased", diff --git a/data/mods/gen8dlc1/items.ts b/data/mods/gen8dlc1/items.ts index 1b4862efd0cd..571eb872f6b6 100644 --- a/data/mods/gen8dlc1/items.ts +++ b/data/mods/gen8dlc1/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { adamantorb: { inherit: true, isNonstandard: "Unobtainable", diff --git a/data/mods/gen8dlc1/learnsets.ts b/data/mods/gen8dlc1/learnsets.ts index 418be62ad4c7..85bdd920dbb5 100644 --- a/data/mods/gen8dlc1/learnsets.ts +++ b/data/mods/gen8dlc1/learnsets.ts @@ -1,6 +1,6 @@ /* eslint-disable max-len */ -export const Learnsets: {[speciesid: string]: LearnsetData} = { +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { bulbasaur: { learnset: { amnesia: ["8M", "7E", "6E", "5E", "4E"], @@ -40891,14 +40891,14 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { chargebeam: ["7M", "6M", "5M", "4M"], charm: ["8M"], confide: ["7M", "6M"], - confusion: ["8L1", "7L1", "6L1", "6S18", "6S20", "6S21", "5L1", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], - cosmicpower: ["8M", "8L84", "7L60", "6L60", "6S19", "5L60", "5S15", "4L60", "3L45"], + confusion: ["8L1", "7L1", "6L1", "6S10", "6S12", "6S13", "5L1", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + cosmicpower: ["8M", "8L84", "7L60", "6L60", "6S11", "5L60", "5S7", "4L60", "3L45"], dazzlinggleam: ["8M", "7M", "6M"], defensecurl: ["3T"], doomdesire: ["8L98", "7L70", "6L70", "5L70", "4L70", "3L50"], doubleedge: ["8L77", "7L40", "6L40", "5L40", "4L40", "3T", "3L35"], doubleteam: ["7M", "6M", "5M", "4M", "3M"], - dracometeor: ["5S14", "4S12"], + dracometeor: ["5S6", "4S4"], drainpunch: ["8M", "7T", "6T", "5T", "4M"], dreameater: ["7M", "6M", "5M", "4M", "3T"], dynamicpunch: ["3T"], @@ -40911,17 +40911,17 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { flash: ["6M", "5M", "4M", "3M"], flashcannon: ["8M", "7M", "6M", "5M", "4M"], fling: ["8M", "7M", "6M", "5M", "4M"], - followme: ["5S14"], + followme: ["5S6"], frustration: ["7M", "6M", "5M", "4M", "3M"], futuresight: ["8M", "8L70", "7L55", "6L55", "5L55", "4L55", "3L40"], gigaimpact: ["8M", "7M", "6M", "5M", "4M"], grassknot: ["8M", "7M", "6M", "5M", "4M"], gravity: ["8L35", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], - happyhour: ["6S20"], + happyhour: ["6S12"], headbutt: ["4T"], - healingwish: ["8L56", "7L50", "7S22", "6L50", "6S17", "5L50", "5S13", "5S15", "5S16", "4L50"], - heartstamp: ["6S19"], - helpinghand: ["8M", "8L14", "7T", "7L15", "6T", "6L15", "6S18", "5T", "5L15", "4T", "4L15", "3L15", "3S10"], + healingwish: ["8L56", "7L50", "7S14", "6L50", "6S9", "5L50", "5S5", "5S7", "5S8", "4L50"], + heartstamp: ["6S11"], + helpinghand: ["8M", "8L14", "7T", "7L15", "6T", "6L15", "6S10", "5T", "5L15", "4T", "4L15", "3L15", "3S2"], hiddenpower: ["7M", "6M", "5M", "4M", "3M"], hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], @@ -40938,25 +40938,25 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { megakick: ["8M"], megapunch: ["8M"], meteorbeam: ["8T"], - meteormash: ["8L49", "5S13", "5S14", "5S15"], + meteormash: ["8L49", "5S5", "5S6", "5S7"], metronome: ["8M", "3T"], mimic: ["3T"], - moonblast: ["6S17"], + moonblast: ["6S9"], mudslap: ["4T", "3T"], naturalgift: ["4M"], nightmare: ["3T"], - playrough: ["8M", "6S19"], + playrough: ["8M", "6S11"], poweruppunch: ["6M"], protect: ["8M", "7M", "6M", "5M", "4M", "3M"], - psychic: ["8M", "8L42", "7M", "7L20", "6M", "6L20", "5M", "5L20", "5S13", "4M", "4L20", "3M", "3L20", "3S10"], + psychic: ["8M", "8L42", "7M", "7L20", "6M", "6L20", "5M", "5L20", "5S5", "4M", "4L20", "3M", "3L20", "3S2"], psychup: ["7M", "6M", "5M", "4M", "3T"], psyshock: ["8M", "7M", "6M", "5M"], raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], recycle: ["7T", "6T", "5T", "4M"], reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], - refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S10"], - rest: ["8M", "8L63", "7M", "7L30", "7S22", "6M", "6L5", "6S21", "5M", "5L5", "4M", "4L5", "4S11", "4S12", "3M", "3L5", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9", "3S10"], - return: ["7M", "6M", "6S18", "5M", "5S16", "4M", "3M"], + refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S2"], + rest: ["8M", "8L63", "7M", "7L30", "7S14", "6M", "6L5", "6S13", "5M", "5L5", "4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], + return: ["7M", "6M", "6S10", "5M", "5S8", "4M", "3M"], round: ["8M", "7M", "6M", "5M"], safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -40973,7 +40973,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], swagger: ["7M", "6M", "5M", "4M", "3T"], - swift: ["8M", "8L7", "7L10", "7S22", "6L10", "6S17", "6S20", "5L10", "5S13", "5S16", "4T", "4L10", "3T", "3L10"], + swift: ["8M", "8L7", "7L10", "7S14", "6L10", "6S9", "6S12", "5L10", "5S5", "5S8", "4T", "4L10", "3T", "3L10"], telekinesis: ["7T", "5M"], thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], @@ -40985,20 +40985,12 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { uproar: ["8M", "7T", "6T", "5T", "4T"], uturn: ["8M", "7M", "6M", "5M", "4M"], waterpulse: ["7T", "6T", "4M", "3M"], - wish: ["8L1", "7L1", "7S22", "6L1", "6S17", "6S18", "6S19", "6S20", "6S21", "5L1", "5S14", "5S15", "5S16", "4L1", "4S11", "4S12", "3L1", "3S0", "3S1", "3S2", "3S3", "3S4", "3S5", "3S6", "3S7", "3S8", "3S9"], + wish: ["8L1", "7L1", "7S14", "6L1", "6S9", "6S10", "6S11", "6S12", "6S13", "5L1", "5S6", "5S7", "5S8", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], zenheadbutt: ["8M", "8L28", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], }, eventData: [ {generation: 3, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Bashful", ivs: {hp: 24, atk: 3, def: 30, spa: 12, spd: 16, spe: 11}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Careful", ivs: {hp: 10, atk: 0, def: 10, spa: 10, spd: 26, spe: 12}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Docile", ivs: {hp: 19, atk: 7, def: 10, spa: 19, spd: 10, spe: 16}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Hasty", ivs: {hp: 3, atk: 12, def: 12, spa: 7, spd: 11, spe: 9}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Jolly", ivs: {hp: 11, atk: 8, def: 6, spa: 14, spd: 5, spe: 20}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Lonely", ivs: {hp: 31, atk: 23, def: 26, spa: 29, spd: 18, spe: 5}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Naughty", ivs: {hp: 21, atk: 31, def: 31, spa: 18, spd: 24, spe: 19}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Serious", ivs: {hp: 29, atk: 10, def: 31, spa: 25, spd: 23, spe: 21}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, - {generation: 3, level: 5, shiny: true, nature: "Timid", ivs: {hp: 15, atk: 28, def: 29, spa: 3, spd: 0, spe: 7}, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, {generation: 3, level: 30, moves: ["helpinghand", "psychic", "refresh", "rest"], pokeball: "pokeball"}, {generation: 4, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "cherishball"}, {generation: 4, level: 5, moves: ["wish", "confusion", "rest", "dracometeor"], pokeball: "cherishball"}, @@ -60182,7 +60174,7 @@ export const Learnsets: {[speciesid: string]: LearnsetData} = { {generation: 6, level: 100, isHidden: true, moves: ["hydrocannon", "gunkshot", "matblock", "happyhour"], pokeball: "cherishball"}, ], }, - greninjaash: { + greninjabond: { learnset: { acrobatics: ["7M"], aerialace: ["7M", "7S0"], diff --git a/data/mods/gen8dlc1/moves.ts b/data/mods/gen8dlc1/moves.ts index 06f3ba95b997..c981ebaabc11 100644 --- a/data/mods/gen8dlc1/moves.ts +++ b/data/mods/gen8dlc1/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { aeroblast: { inherit: true, isNonstandard: "Unobtainable", diff --git a/data/mods/gen8dlc1/pokedex.ts b/data/mods/gen8dlc1/pokedex.ts index 4a72e653f0f7..16ae1b096702 100644 --- a/data/mods/gen8dlc1/pokedex.ts +++ b/data/mods/gen8dlc1/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { pumpkaboosmall: { inherit: true, unreleasedHidden: true, diff --git a/data/mods/gen8dlc1/rulesets.ts b/data/mods/gen8dlc1/rulesets.ts index 13489be369cf..41a37960bccc 100644 --- a/data/mods/gen8dlc1/rulesets.ts +++ b/data/mods/gen8dlc1/rulesets.ts @@ -1,4 +1,4 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { teampreview: { inherit: true, onBattleStart() { diff --git a/data/mods/gen8joltemons/abilities.ts b/data/mods/gen8joltemons/abilities.ts deleted file mode 100644 index 5c25e342fa05..000000000000 --- a/data/mods/gen8joltemons/abilities.ts +++ /dev/null @@ -1,2240 +0,0 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { - schooling: { - onStart(pokemon) { - if (pokemon.baseSpecies.baseSpecies !== 'Wishiwashi' || pokemon.level < 20 || pokemon.transformed) return; - if (pokemon.hp > pokemon.maxhp / 4 || pokemon.hasItem('graduationscale')) { - if (pokemon.species.id === 'wishiwashi') { - pokemon.formeChange('Wishiwashi-School'); - } - } else { - if (pokemon.species.id === 'wishiwashischool') { - pokemon.formeChange('Wishiwashi'); - } - } - }, - onResidualOrder: 27, - onResidual(pokemon) { - if ( - pokemon.baseSpecies.baseSpecies !== 'Wishiwashi' || pokemon.level < 20 || - pokemon.transformed || !pokemon.hp - ) return; - if (pokemon.hp > pokemon.maxhp / 4 || pokemon.hasItem('graduationscale')) { - if (pokemon.species.id === 'wishiwashi') { - pokemon.formeChange('Wishiwashi-School'); - } - } else { - if (pokemon.species.id === 'wishiwashischool') { - pokemon.formeChange('Wishiwashi'); - } - } - }, - inherit: true, - }, - lightpower: { - onModifySpAPriority: 5, - onModifySpA(spa) { - return this.chainModify(2); - }, - name: "Light Power", - shortDesc: "This Pokemon's Special Attack is doubled.", - rating: 5, - }, - raindish: { - onResidualOrder: 5, - onResidualSubOrder: 2, - onResidual(pokemon) { - if (this.field.isWeather(['raindance', 'primordialsea'])) return; - this.heal(pokemon.maxhp / 16); - }, - onWeather(target, source, effect) { - if (effect.id === 'raindance' || effect.id === 'primordialsea') { - this.heal(target.baseMaxhp / 8); - } - }, - name: "Rain Dish", - shortDesc: "Heals 6.25% of user's max HP at the end of each turn. Heals 12.5% in Rain.", - num: 44, - rating: 3, - }, - icebody: { - onResidualOrder: 5, - onResidualSubOrder: 2, - onResidual(pokemon) { - if (this.field.isWeather('hail')) return; - this.heal(pokemon.maxhp / 16); - }, - onWeather(target, source, effect) { - if (effect.id === 'hail') { - this.heal(target.baseMaxhp / 8); - } - }, - name: "Ice Body", - shortDesc: "Heals 6.25% of user's max HP at the end of each turn. Heals 12.5% in Hail.", - num: 115, - rating: 3, - }, - sweetveil: { - name: "Sweet Veil", - shortDesc: "This Pokemon and its allies can't fall asleep. This Pokemon heals 1/8 of its max HP if it's holding Honey.", - onAllySetStatus(status, target, source, effect) { - if (status.id === 'slp') { - this.debug('Sweet Veil interrupts sleep'); - const effectHolder = this.effectState.target; - this.add('-block', target, 'ability: Sweet Veil', '[of] ' + effectHolder); - return null; - } - }, - onAllyTryAddVolatile(status, target) { - if (status.id === 'yawn') { - this.debug('Sweet Veil blocking yawn'); - const effectHolder = this.effectState.target; - this.add('-block', target, 'ability: Sweet Veil', '[of] ' + effectHolder); - return null; - } - }, - onResidualOrder: 26, - onResidualSubOrder: 1, - onResidual(pokemon) { - if (pokemon.hasItem('honey')) { - this.heal(pokemon.baseMaxhp / 8); - } - }, - rating: 2, - num: 175, - }, - libero: { - shortDesc: "Non-STAB moves have 1.2x power.", - onBasePowerPriority: 23, - onBasePower(basePower, pokemon, target, move) { - if (!pokemon.hasType(move.type)) { - return this.chainModify(1.2); - } - }, - name: "Libero", - rating: 4.5, - num: 236, - }, - moody: { - shortDesc: "This Pokemon's lowest stat goes up by 1 every turn.", - onResidualOrder: 26, - onResidualSubOrder: 1, - onResidual(pokemon) { - if (pokemon.activeTurns) { - let statName = 'atk'; - let worstStat = 3000; // The highest possible stat number (with boosts) is 2,676 - let s: StatIDExceptHP; - for (s in pokemon.storedStats) { - if (pokemon.storedStats[s] >= worstStat) continue; - statName = s; - worstStat = pokemon.storedStats[s]; - } - this.boost({[statName]: 1}, pokemon, pokemon); - } - }, - name: "Moody", - rating: 3, - num: 141, - }, - stickyhold: { - onTakeItem(item, pokemon, source) { - if (this.suppressingAbility(pokemon) || !pokemon.hp || pokemon.item === 'stickybarb') return; - if (!this.activeMove) throw new Error("Battle.activeMove is null"); - if ((source && source !== pokemon) || this.activeMove.id === 'knockoff') { - this.add('-activate', pokemon, 'ability: Sticky Hold'); - return false; - } - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.name === 'Knock Off') { - this.debug('Sticky Hold weaken'); - return this.chainModify(0.67); - } - }, - onTryHit(pokemon, target, move) { - if (move.name === 'Poltergeist') { - this.add('-immune', pokemon, '[from] ability: Sticky Hold'); - return null; - } - }, - name: "Sticky Hold", - rating: 2, - num: 60, - }, - watercompaction: { - shortDesc: "This Pokemon's Defense goes up 2 stages when hit by a Water-type move; Water immunity.", - onTryHitPriority: 1, - onTryHit(target, source, move) { - if (target !== source && move.type === 'Water') { - if (!this.boost({def: 2})) { - this.add('-immune', target, '[from] ability: Water Compaction'); - } - return null; - } - }, - onAllyTryHitSide(target, source, move) { - if (target === this.effectState.target || target.side !== source.side) return; - if (move.type === 'Water') { - this.boost({def: 2}, this.effectState.target); - } - }, - name: "Water Compaction", - rating: 3, - num: 195, - }, - ironfist: { - shortDesc: "This Pokemon's punch attacks have 1.25x power and don't make contact. Sucker Punch is not boosted.", - onBasePowerPriority: 23, - onBasePower(basePower, attacker, defender, move) { - if (move.flags['punch']) { - this.debug('Iron Fist boost'); - return this.chainModify([0x1400, 0x1000]); - } - }, - onModifyMove(move) { - if (move.flags['punch']) { - delete move.flags['contact']; - } - }, - name: "Iron Fist", - rating: 3, - num: 89, - }, - overclock: { - shortDesc: "This Pokemon's moves that lower its stats have 1.3x power.", - onBasePowerPriority: 23, - onBasePower(basePower, attacker, defender, move) { - const statLoweringMoves = [ - 'Draco Meteor', 'Fleur Cannon', 'Leaf Storm', 'Overheat', 'Psycho Boost', 'Superpower', - 'Lightning Lance', 'Clanging Scales', 'Close Combat', 'Dragon Ascent', 'Hyperspace Fury', - 'Scale Shot', 'V-create', 'Hammer Arm', 'Ice Hammer', - ]; - if (statLoweringMoves.includes(move.name)) { - return this.chainModify(1.3); - } - }, - name: "Overclock", - rating: 4, - }, - pricklycoat: { - shortDesc: "This Pokemon sets a layer of Spikes when hit by a contact move, or Toxic Spikes if it's a Poison-type or hit by a Poison-type move.", - onDamagingHitOrder: 1, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact']) { - this.add('-ability', target, 'Prickly Coat'); - if (move.type === 'Poison' || target.hasType('Poison')) { - target.side.foe.addSideCondition('toxicspikes'); - } else { - target.side.foe.addSideCondition('spikes'); - } - } - }, - name: "Prickly Coat", - rating: 3, - }, - sandveil: { - desc: "If Sandstorm is active, this Pokemon's SpD is multiplied by 1.5. This Pokemon takes no damage from Sandstorm.", - shortDesc: "If Sandstorm is active, this Pokemon's SpD is boosted 1.5x; immunity to Sandstorm.", - onImmunity(type, pokemon) { - if (type === 'sandstorm') return false; - }, - onModifySpD(spd, pokemon) { - if (this.field.isWeather('sandstorm')) { - return this.chainModify(1.5); - } - }, - name: "Sand Veil", - rating: 3, - num: 146, - }, - snowcloak: { - desc: "If Hail is active, this Pokemon's Ice, Water, and Fairy-type moves deal 1.3x damage. This Pokemon takes no damage from Hail.", - shortDesc: "This Pokemon's Ice/Water/Fairy attacks deal 1.3x damage in Hail; immunity to Hail.", - onImmunity(type, pokemon) { - if (type === 'hail') return false; - }, - onBasePowerPriority: 21, - onBasePower(basePower, attacker, defender, move) { - if (this.field.isWeather('hail')) { - if (move.type === 'Ice' || move.type === 'Water' || move.type === 'Fairy') { - this.debug('Snow Cloak boost'); - return this.chainModify([0x14CD, 0x1000]); - } - } - }, - name: "Snow Cloak", - rating: 3, - num: 81, - }, - powerofalchemy: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - isPermanent: true, - name: "Power of Alchemy", - rating: 0, - num: 223, - }, - powerofalchemymukalola: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onModifyMove(move) { - if (!move || !move.flags['contact'] || move.target === 'self') return; - if (!move.secondaries) { - move.secondaries = []; - } - move.secondaries.push({ - chance: 30, - status: 'psn', - ability: this.dex.abilities.get('poisontouch'), - }); - }, - onSourceAfterFaint(length, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.add('-activate', source, 'ability: Scavenge'); - this.heal(source.baseMaxhp / 3, source, source, effect); - } - }, - isPermanent: true, - name: "Power of Alchemy (Muk-Alola)", - rating: 5, - }, - merciless: { - shortDesc: "This Pokemon's attacks are critical hits if the target is statused.", - onModifyCritRatio(critRatio, source, target) { - if (target?.status) return 5; - }, - name: "Merciless", - rating: 1.5, - num: 196, - }, - pastelveil: { - shortDesc: "This Pokemon and its allies cannot be poisoned. Poison-type moves have 0.5x power against this Pokemon and its allies. On switch-in, cures poisoned allies.", - onStart(pokemon) { - for (const ally of pokemon.allies()) { - if (['psn', 'tox'].includes(ally.status)) { - this.add('-activate', pokemon, 'ability: Pastel Veil'); - ally.cureStatus(); - } - } - }, - onUpdate(pokemon) { - if (['psn', 'tox'].includes(pokemon.status)) { - this.add('-activate', pokemon, 'ability: Pastel Veil'); - pokemon.cureStatus(); - } - }, - onAllySwitchIn(pokemon) { - if (['psn', 'tox'].includes(pokemon.status)) { - this.add('-activate', this.effectState.target, 'ability: Pastel Veil'); - pokemon.cureStatus(); - } - }, - onSetStatus(status, target, source, effect) { - if (!['psn', 'tox'].includes(status.id)) return; - if ((effect as Move)?.status) { - this.add('-immune', target, '[from] ability: Pastel Veil'); - } - return false; - }, - onAllySetStatus(status, target, source, effect) { - if (!['psn', 'tox'].includes(status.id)) return; - if ((effect as Move)?.status) { - const effectHolder = this.effectState.target; - this.add('-block', target, 'ability: Pastel Veil', '[of] ' + effectHolder); - } - return false; - }, - onSourceModifyAtkPriority: 6, - onSourceModifyAtk(atk, attacker, defender, move) { - if (move.type === 'Poison') { - this.debug('Pastel Veil weaken'); - return this.chainModify(0.5); - } - }, - onSourceModifySpAPriority: 5, - onSourceModifySpA(atk, attacker, defender, move) { - if (move.type === 'Poison') { - this.debug('Pastel Veil weaken'); - return this.chainModify(0.5); - } - }, - name: "Pastel Veil", - rating: 2, - num: 257, - }, - gravitation: { - shortDesc: "On switch-in, this Pokemon summons Gravity.", - onStart(source) { - this.add('-ability', source, 'Gravitation'); - this.field.addPseudoWeather('gravity', source, source.getAbility()); - }, - name: "Gravitation", - rating: 4, - }, - buzzoff: { - shortDesc: "This Pokemon switches out after using a Bug-type move.", - onModifyMove(move, pokemon) { - if (move.type === 'Bug') { - move.selfSwitch = true; - this.add('-ability', pokemon, 'Buzz Off'); - } - }, - name: "Buzz Off", - rating: 4.5, - }, - magmaarmor: { - onUpdate(pokemon) { - if (pokemon.status === 'frz') { - this.add('-activate', pokemon, 'ability: Magma Armor'); - pokemon.cureStatus(); - } - }, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - if (type === 'frz') return false; - }, - onSourceModifyAtkPriority: 6, - onSourceModifyAtk(atk, attacker, defender, move) { - if (move.type === 'Ice' || move.type === 'Water') { - this.debug('Magma Armor weaken'); - return this.chainModify(0.5); - } - }, - onSourceModifySpAPriority: 5, - onSourceModifySpA(atk, attacker, defender, move) { - if (move.type === 'Ice' || move.type === 'Water') { - this.debug('Magma Armor weaken'); - return this.chainModify(0.5); - } - }, - name: "Magma Armor", - rating: 2, - num: 40, - shortDesc: "Water/Ice-type moves against this Pokemon deal damage with a halved attacking stat. Hail & Freeze immunity.", - }, - leafguard: { - onSetStatus(status, target, source, effect) { - if (['sunnyday', 'desolateland'].includes(target.effectiveWeather())) { - if ((effect as Move)?.status) { - this.add('-immune', target, '[from] ability: Leaf Guard'); - } - return false; - } - }, - onTryAddVolatile(status, target) { - if ((status.id === 'yawn' || status.id === 'flinch') && - ['sunnyday', 'desolateland'].includes(target.effectiveWeather())) { - this.add('-immune', target, '[from] ability: Leaf Guard'); - return null; - } - }, - onSourceModifyAtkPriority: 6, - onSourceModifyAtk(atk, attacker, defender, move) { - if (move.type === 'Flying' || move.type === 'Bug') { - this.debug('Leaf Guard weaken'); - return this.chainModify(0.5); - } - }, - onSourceModifySpAPriority: 5, - onSourceModifySpA(atk, attacker, defender, move) { - if (move.type === 'Flying' || move.type === 'Bug') { - this.debug('Leaf Guard weaken'); - return this.chainModify(0.5); - } - }, - name: "Leaf Guard", - rating: 0.5, - num: 102, - shortDesc: "Flying/Bug-type moves against this Pokemon deal damage with a halved attacking stat. Can't be statused or flinched by others in Sun.", - }, - - soullink: { - onDamagingHitOrder: 1, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact'] && !source.hasType('Ghost') && source.addType('Ghost')) { - this.add('-start', source, 'typeadd', 'Ghost', '[from] ability: Soul Link'); - } - }, - name: "Soul Link", - shortDesc: "Pokémon that make contact with this Pokémon have the Ghost-type added to their existing typings until they switch out (Trick-or-Treat effect).", - rating: 2.5, - }, - wanderingspirit: { - shortDesc: "On switch-in, swaps ability with the opponent.", - onSwitchIn(pokemon) { - this.effectState.switchingIn = true; - }, - onStart(pokemon) { - if (pokemon.foes().some( - foeActive => foeActive && foeActive.isAdjacent(pokemon) && foeActive.ability === 'noability' - ) || ![ - 'spiritomb', 'spectrier', 'yamaskgalar', 'runerigus', 'cofagrigus', 'cacturne', 'hoopa', 'marowak', 'rotom', - ].includes(pokemon.species.id)) { - this.effectState.gaveUp = true; - } - }, - onUpdate(pokemon) { - if (!pokemon.isStarted || this.effectState.gaveUp) return; - if (!this.effectState.switchingIn) return; - const possibleTargets = pokemon.foes().filter(foeActive => foeActive && foeActive.isAdjacent(pokemon)); - while (possibleTargets.length) { - let rand = 0; - if (possibleTargets.length > 1) rand = this.random(possibleTargets.length); - const target = possibleTargets[rand]; - const ability = target.getAbility(); - const additionalBannedAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'wanderingspirit', - 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode', 'concussion', 'gorillatactics', 'counterfeit', - ]; - if (target.getAbility().isPermanent || additionalBannedAbilities.includes(target.ability)) { - possibleTargets.splice(rand, 1); - continue; - } - target.setAbility('wanderingspirit', pokemon); - pokemon.setAbility(ability); - this.add('-activate', pokemon, 'ability: Wandering Spirit', ability.name, 'Wandering Spirit', '[of] ' + target); - return; - } - }, - name: "Wandering Spirit", - rating: 4, - num: 254, - }, - honeygather: { - name: "Honey Gather", - shortDesc: "At the end of each turn, if this Pokemon has no item, it gets Honey. Knock Off doesn't get boosted against Pokemon with this ability.", - onResidualOrder: 26, - onResidualSubOrder: 1, - onResidual(pokemon) { - if (pokemon.hp && !pokemon.item) { - pokemon.setItem('honey'); - this.add('-item', pokemon, pokemon.getItem(), '[from] ability: Honey Gather'); - } - if (pokemon.hasItem('honey')) { - this.heal(pokemon.baseMaxhp / 8); - } - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.name === 'Knock Off') { - this.debug('Honey Gather weaken'); - return this.chainModify(0.67); - } - }, - rating: 3, - num: 118, - }, - hydration: { - shortDesc: "This Pokemon has its status cured at the end of each turn if Rain Dance is active or it gets hit by a Water move; Water immunity. Heals 12.5% HP if hit by a Water move.", - onResidualOrder: 5, - onResidualSubOrder: 4, - onResidual(pokemon) { - if (pokemon.status && ['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) { - this.debug('hydration'); - this.add('-activate', pokemon, 'ability: Hydration'); - this.add('-message', `Hydration activated!`); - pokemon.cureStatus(); - } - }, - onTryHit(target, source, move) { - if (target !== source && move.type === 'Water') { - if (!this.heal(target.baseMaxhp / 8) || !target.cureStatus()) { - this.add('-immune', target, '[from] ability: Hydration'); - } - return null; - } - }, - name: "Hydration", - rating: 1.5, - num: 93, - }, - parentalbond: { - onPrepareHit(source, target, move) { - if (move.category === 'Status' || move.selfdestruct || move.multihit) return; - const noParentalBond = [ - 'endeavor', 'seismictoss', 'psywave', 'nightshade', 'sonicboom', 'dragonrage', - 'superfang', 'naturesmadness', 'bide', 'counter', 'mirrorcoat', 'metalburst', - ]; - if (noParentalBond.includes(move.id)) return; - if (!move.spreadHit && !move.isZ && !move.isMax) { - move.multihit = 2; - move.multihitType = 'parentalbond'; - } - }, - onBasePowerPriority: 7, - onBasePower(basePower, pokemon, target, move) { - if (move.multihitType === 'parentalbond' && move.hit > 1) return this.chainModify(0.25); - }, - onSourceModifySecondaries(secondaries, target, source, move) { - if (move.multihitType === 'parentalbond' && move.id === 'secretpower' && move.hit < 2) { - // hack to prevent accidentally suppressing King's Rock/Razor Fang - return secondaries.filter(effect => effect.volatileStatus === 'flinch'); - } - }, - name: "Parental Bond", - rating: 4.5, - num: 184, - }, - scavenge: { - shortDesc: "This Pokemon's heals 33% of its HP when another Pokemon faints.", - onSourceAfterFaint(length, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.add('-activate', source, 'ability: Scavenge'); - this.heal(source.baseMaxhp / 3, source, source, effect); - } - }, - name: "Scavenge", - rating: 3.5, - }, - unimpressed: { - shortDesc: "Moves used against this Pokemon don't receive STAB.", - onSourceModifyDamage(damage, source, target, move) { - if (source.hasType(move.type)) { - this.debug('Unimpressed weaken'); - return this.chainModify(source.hasAbility('adaptability') ? 0.5 : 0.67); - } - }, - name: "Unimpressed", - rating: 3.5, - }, - counterfeit: { - shortDesc: "On switch-in, identifies and copies the effect of the opponent's held item.", - onStart(pokemon) { - if (pokemon.foes().some( - foeActive => foeActive && foeActive.isAdjacent(pokemon) && !foeActive.item - )) { - this.effectState.gaveUp = true; - } - }, - onUpdate(pokemon) { - if (!pokemon.isStarted || this.effectState.gaveUp) return; - const possibleTargets = pokemon.foes().filter(foeActive => foeActive && foeActive.isAdjacent(pokemon)); - while (possibleTargets.length) { - let rand = 0; - if (possibleTargets.length > 1) rand = this.random(possibleTargets.length); - const target = possibleTargets[rand]; - const item = target.getItem(); - const additionalBannedItems = [ - // Zen Mode included here for compatability with Gen 5-6 - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', - 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode', - ]; - if (!this.singleEvent('TakeItem', item, target.itemState, target, pokemon, this.effect, item) || - additionalBannedItems.includes(target.item)) { - possibleTargets.splice(rand, 1); - continue; - } - this.add('-ability', pokemon, item, '[from] ability: Counterfeit', '[of] ' + target); - pokemon.setAbility(item as unknown as Ability); - return; - } - }, - name: "Counterfeit", - rating: 3.5, - }, - optimistic: { - onTryBoost(boost, target, source, effect) { - if (source && target !== source) return; - let showMsg = false; - let i: BoostID; - for (i in boost) { - if (boost[i]! < 0) { - delete boost[i]; - showMsg = true; - } - } - if (showMsg && !(effect as ActiveMove).secondaries && effect.id !== 'octolock') { - this.add("-fail", target, "unboost", "[from] ability: Optimistic", "[of] " + target); - } - }, - shortDesc: "This Pokemon can't lower its own stats.", - name: "Optimistic", - rating: 5, - }, - rivalry: { - onBasePowerPriority: 24, - onBasePower(basePower, pokemon, target) { - if (target.hasType(pokemon.getTypes())) { - return this.chainModify(1.33); - } - }, - name: "Rivalry", - rating: 0, - num: 79, - shortDesc: "This Pokemon's moves deal 1.33x damage to targets that share a type with it.", - }, - vaporcontrol: { - onUpdate(pokemon) { - if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather()) && !pokemon.side.getSideCondition('mist')) { - this.actions.useMove("Mist", pokemon); - } - }, - onBasePowerPriority: 21, - onBasePower(basePower, attacker, defender, move) { - if ((this.field.isWeather('sunnyday') || this.field.isWeather('desolateland')) && - move.type === 'Water') { - this.debug('Vapor Control boost'); - return this.chainModify(1.5); - } - }, - shortDesc: "If Sun is active, 1.5x power Water moves and sets Mist; Ignores Sun Water drop.", - name: "Vapor Control", - rating: 3, - }, - // Edited by proxy - oblivious: { - onUpdate(pokemon) { - if (pokemon.volatiles['attract']) { - this.add('-activate', pokemon, 'ability: Oblivious'); - pokemon.removeVolatile('attract'); - this.add('-end', pokemon, 'move: Attract', '[from] ability: Oblivious'); - } - if (pokemon.volatiles['taunt']) { - this.add('-activate', pokemon, 'ability: Oblivious'); - pokemon.removeVolatile('taunt'); - // Taunt's volatile already sends the -end message when removed - } - if (pokemon.volatiles['trashtalk']) { - this.add('-activate', pokemon, 'ability: Oblivious'); - pokemon.removeVolatile('trashtalk'); - } - }, - onImmunity(type, pokemon) { - if (type === 'attract' || type === 'trashtalk') return false; - }, - onTryHit(pokemon, target, move) { - if (move.id === 'attract' || move.id === 'captivate' || move.id === 'taunt') { - this.add('-immune', pokemon, '[from] ability: Oblivious'); - return null; - } - }, - name: "Oblivious", - rating: 1.5, - num: 12, - }, - aromaveil: { - onAllyTryAddVolatile(status, target, source, effect) { - if (['attract', 'disable', 'encore', 'healblock', 'taunt', 'torment', 'trashtalk'].includes(status.id)) { - if (effect.effectType === 'Move') { - const effectHolder = this.effectState.target; - this.add('-block', target, 'ability: Aroma Veil', '[of] ' + effectHolder); - } - return null; - } - }, - name: "Aroma Veil", - rating: 2, - num: 165, - }, - trace: { - onStart(pokemon) { - if (pokemon.foes().some( - foeActive => foeActive && foeActive.isAdjacent(pokemon) && foeActive.ability === 'noability' - )) { - this.effectState.gaveUp = true; - } - }, - onUpdate(pokemon) { - if (!pokemon.isStarted || this.effectState.gaveUp) return; - const possibleTargets = pokemon.foes().filter(foeActive => foeActive && foeActive.isAdjacent(pokemon)); - while (possibleTargets.length) { - let rand = 0; - if (possibleTargets.length > 1) rand = this.random(possibleTargets.length); - const target = possibleTargets[rand]; - const ability = target.getAbility(); - const additionalBannedAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', - 'powerofalchemy', 'receiver', 'trace', 'zenmode', 'wanderingspirit', - ]; - if (target.getAbility().isPermanent || additionalBannedAbilities.includes(target.ability)) { - possibleTargets.splice(rand, 1); - continue; - } - this.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target); - pokemon.setAbility(ability); - return; - } - }, - name: "Trace", - rating: 2.5, - num: 36, - }, - concussion: { - name: "Concussion", - shortDesc: "While this Pokemon is active, the opponents' held items have no effect.", - onStart(source) { - let activated = false; - for (const pokemon of source.foes()) { - if (!activated) { - this.add('-ability', source, 'Concussion'); - } - activated = true; - if (!pokemon.volatiles['embargo'] && !pokemon.hasItem('morningblossom')) { - pokemon.addVolatile('embargo'); - } - } - }, - onAnySwitchIn(pokemon) { - const source = this.effectState.target; - if (pokemon === source) return; - for (const target of source.foes()) { - if (!target.volatiles['embargo'] && !target.hasItem('morningblossom')) { - target.addVolatile('embargo'); - } - } - }, - onEnd(pokemon) { - for (const target of pokemon.foes()) { - target.removeVolatile('embargo'); - } - }, - rating: 4, - }, - gorillatactics: { - name: "Gorilla Tactics", - shortDesc: "While this Pokemon is active, the opponents' held items have no effect.", - onStart(source) { - let activated = false; - for (const pokemon of source.foes()) { - if (!activated) { - this.add('-ability', source, 'Gorilla Tactics'); - } - activated = true; - if (!pokemon.volatiles['embargo'] && !pokemon.hasItem('morningblossom')) { - pokemon.addVolatile('embargo'); - } - } - }, - onAnySwitchIn(pokemon) { - const source = this.effectState.target; - if (pokemon === source) return; - for (const target of source.foes()) { - if (!target.volatiles['embargo'] && !target.hasItem('morningblossom')) { - target.addVolatile('embargo'); - } - } - }, - onEnd(pokemon) { - for (const target of pokemon.foes()) { - target.removeVolatile('embargo'); - } - }, - rating: 4, - num: 255, - }, - toxicboost: { - shortDesc: "1.5x Attack and Defense while poisoned; Immune to poison status damage.", - onBasePowerPriority: 19, - onBasePower(basePower, attacker, defender, move) { - if ((attacker.status === 'psn' || attacker.status === 'tox') && move.category === 'Physical') { - return this.chainModify(1.5); - } - }, - onModifyDefPriority: 6, - onModifyDef(def, pokemon) { - if (pokemon.status === 'psn' || pokemon.status === 'tox') { - return this.chainModify(1.5); - } - }, - onDamagePriority: 1, - onDamage(damage, target, source, effect) { - if (effect.id === 'psn' || effect.id === 'tox') { - return false; - } - }, - name: "Toxic Boost", - rating: 2.5, - num: 137, - }, - flareboost: { - shortDesc: "1.5x SpA and SpD while burned; Immune to burn damage.", - onBasePowerPriority: 19, - onBasePower(basePower, attacker, defender, move) { - if (attacker.status === 'brn' && move.category === 'Special') { - return this.chainModify(1.5); - } - }, - onModifySpDPriority: 6, - onModifySpD(spd, pokemon) { - if (pokemon.status === 'brn') { - return this.chainModify(1.5); - } - }, - onDamagePriority: 1, - onDamage(damage, target, source, effect) { - if (effect.id === 'brn') { - return false; - } - }, - name: "Flare Boost", - rating: 2.5, - num: 138, - }, - // The other Power of Alchemies - powerofalchemyweezing: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Neutralizing Gas'); - pokemon.abilityState.ending = false; - for (const target of this.getAllActive()) { - if (target.illusion) { - this.singleEvent('End', this.dex.abilities.get('Illusion'), target.abilityState, target, pokemon, 'neutralizinggas'); - } - if (target.volatiles['slowstart']) { - delete target.volatiles['slowstart']; - this.add('-end', target, 'Slow Start', '[silent]'); - } - } - }, - onEnd(source) { - // FIXME this happens before the pokemon switches out, should be the opposite order. - // Not an easy fix since we cant use a supported event. Would need some kind of special event that - // gathers events to run after the switch and then runs them when the ability is no longer accessible. - // (If your tackling this, do note extreme weathers have the same issue) - - // Mark this pokemon's ability as ending so Pokemon#ignoringAbility skips it - source.abilityState.ending = true; - for (const pokemon of this.getAllActive()) { - if (pokemon !== source) { - // Will be suppressed by Pokemon#ignoringAbility if needed - this.singleEvent('Start', pokemon.getAbility(), pokemon.abilityState, pokemon); - } - } - }, - isPermanent: true, - name: "Power of Alchemy (Weezing)", - rating: 5, - }, - powerofalchemyalcremie: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onTakeItem(item, pokemon, source) { - if (this.suppressingAbility(pokemon) || !pokemon.hp || pokemon.item === 'stickybarb') return; - if (!this.activeMove) throw new Error("Battle.activeMove is null"); - if ((source && source !== pokemon) || this.activeMove.id === 'knockoff') { - this.add('-activate', pokemon, 'ability: Sticky Hold'); - return false; - } - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.name === 'Knock Off') { - this.debug('Sticky Hold weaken'); - return this.chainModify(0.67); - } - }, - onTryHit(pokemon, target, move) { - if (move.name === 'Poltergeist') { - this.add('-immune', pokemon, '[from] ability: Sticky Hold'); - return null; - } - }, - onAllySetStatus(status, target, source, effect) { - if (status.id === 'slp') { - this.debug('Sweet Veil interrupts sleep'); - const effectHolder = this.effectState.target; - this.add('-block', target, 'ability: Sweet Veil', '[of] ' + effectHolder); - return null; - } - }, - onAllyTryAddVolatile(status, target) { - if (status.id === 'yawn') { - this.debug('Sweet Veil blocking yawn'); - const effectHolder = this.effectState.target; - this.add('-block', target, 'ability: Sweet Veil', '[of] ' + effectHolder); - return null; - } - }, - onResidualOrder: 26, - onResidualSubOrder: 1, - onResidual(pokemon) { - if (pokemon.hasItem('honey')) { - this.heal(pokemon.baseMaxhp / 8); - } - }, - isPermanent: true, - name: "Power of Alchemy (Alcremie)", - rating: 5, - }, - powerofalchemymismagius: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - isPermanent: true, - name: "Power of Alchemy (Mismagius)", - rating: 5, - }, - powerofalchemyslowkinggalar: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onStart(pokemon) { - for (const ally of pokemon.allies()) { - ally.clearBoosts(); - this.add('-clearboost', ally, '[from] ability: Curious Medicine', '[of] ' + pokemon); - } - }, - onSwitchOut(pokemon) { - pokemon.heal(pokemon.baseMaxhp / 3); - }, - isPermanent: true, - name: "Power of Alchemy (Slowking-Galar)", - rating: 5, - }, - powerofalchemyditto: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onUpdate(pokemon) { - if (pokemon.status === 'par') { - this.add('-activate', pokemon, 'ability: Limber'); - pokemon.cureStatus(); - } - }, - onSetStatus(status, target, source, effect) { - if (status.id !== 'par') return; - if ((effect as Move)?.status) { - this.add('-immune', target, '[from] ability: Limber'); - } - return false; - }, - onSwitchIn(pokemon) { - this.effectState.switchingIn = true; - }, - onStart(pokemon) { - // Imposter does not activate when Skill Swapped or when Neutralizing Gas leaves the field - if (!this.effectState.switchingIn) return; - const target = pokemon.foes()[pokemon.foes().length - 1 - pokemon.position]; - if (target) { - pokemon.transformInto(target, this.dex.abilities.get('powerofalchemyditto')); - } - this.effectState.switchingIn = false; - }, - isPermanent: true, - name: "Power of Alchemy (Ditto)", - rating: 5, - }, - powerofalchemyvanillite: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - }, - onModifyDef(def, pokemon) { - if (this.field.isWeather('hail')) { - return this.chainModify(1.25); - } - }, - onModifySpD(spd, pokemon) { - if (this.field.isWeather('hail')) { - return this.chainModify(1.25); - } - }, - onResidualOrder: 5, - onResidualSubOrder: 2, - onResidual(pokemon) { - if (this.field.isWeather('hail')) return; - this.heal(pokemon.maxhp / 16); - }, - onWeather(target, source, effect) { - if (effect.id === 'hail') { - this.heal(target.baseMaxhp / 8); - } - }, - isPermanent: true, - name: "Power of Alchemy (Vanillite)", - rating: 5, - }, - powerofalchemyvanilluxe: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onStart(source) { - this.field.setWeather('hail'); - }, - onResidualOrder: 5, - onResidualSubOrder: 2, - onResidual(pokemon) { - if (this.field.isWeather('hail')) return; - this.heal(pokemon.maxhp / 16); - }, - onWeather(target, source, effect) { - if (effect.id === 'hail') { - this.heal(target.baseMaxhp / 8); - } - }, - isPermanent: true, - name: "Power of Alchemy (Vanilluxe)", - rating: 5, - }, - powerofalchemytypenull: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onStart(pokemon) { - this.add('-ability', pokemon, 'Pressure'); - }, - onDeductPP(target, source) { - if (target.side === source.side) return; - return 1; - }, - onCriticalHit: false, - isPermanent: true, - name: "Power of Alchemy (Type: Null)", - rating: 5, - }, - powerofalchemysilvally: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onStart(pokemon) { - let totaldef = 0; - let totalspd = 0; - for (const target of pokemon.foes()) { - if (!target || target.fainted) continue; - totaldef += target.getStat('def', false, true); - totalspd += target.getStat('spd', false, true); - } - if (totaldef && totaldef >= totalspd) { - this.boost({spa: 1}); - } else if (totalspd) { - this.boost({atk: 1}); - } - }, - isPermanent: true, - name: "Power of Alchemy (Silvally)", - rating: 5, - }, - powerofalchemyvaporeon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onResidualOrder: 5, - onResidualSubOrder: 4, - onResidual(pokemon) { - if (pokemon.status && ['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) { - this.debug('hydration'); - this.add('-activate', pokemon, 'ability: Hydration'); - this.add('-message', `Hydration activated!`); - pokemon.cureStatus(); - } - }, - onTryHit(target, source, move) { - if (target !== source && move.type === 'Water') { - if (!this.heal(target.baseMaxhp / 2.667) || !target.cureStatus()) { - this.add('-immune', target, '[from] ability: Power of Alchemy (Vaporeon)'); - } - return null; - } - }, - isPermanent: true, - name: "Power of Alchemy (Vaporeon)", - rating: 5, - }, - powerofalchemyjolteon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onTryHit(target, source, move) { - if (target !== source && move.type === 'Electric') { - if (!this.heal(target.baseMaxhp / 4)) { - this.add('-immune', target, '[from] ability: Volt Absorb'); - } - return null; - } - }, - onDamagingHitOrder: 1, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact']) { - this.add('-ability', target, 'Prickly Coat'); - if (move.type === 'Poison' || target.hasType('Poison')) { - target.side.foe.addSideCondition('toxicspikes'); - } else { - target.side.foe.addSideCondition('spikes'); - } - } - }, - isPermanent: true, - name: "Power of Alchemy (Jolteon)", - rating: 5, - }, - powerofalchemyflareon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onTryHit(target, source, move) { - if (target !== source && move.type === 'Fire') { - move.accuracy = true; - if (!target.addVolatile('flashfire')) { - this.add('-immune', target, '[from] ability: Flash Fire'); - } - return null; - } - }, - onSourceModifyDamage(damage, source, target, move) { - let mod = 1; - if (move.type === 'Fire') mod *= 2; - if (move.flags['contact']) mod /= 2; - return this.chainModify(mod); - }, - isPermanent: true, - name: "Power of Alchemy (Flareon)", - rating: 5, - }, - powerofalchemyespeon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onBasePowerPriority: 21, - onBasePower(basePower, pokemon) { - let boosted = true; - for (const target of this.getAllActive()) { - if (target === pokemon) continue; - if (this.queue.willMove(target)) { - boosted = false; - break; - } - } - if (boosted) { - this.debug('Analytic boost'); - return this.chainModify([0x14CD, 0x1000]); - } - }, - onTryHitPriority: 1, - onTryHit(target, source, move) { - if (target === source || move.hasBounced || !move.flags['reflectable']) { - return; - } - const newMove = this.dex.getActiveMove(move.id); - newMove.hasBounced = true; - newMove.pranksterBoosted = false; - this.actions.useMove(newMove, target, source); - return null; - }, - onAllyTryHitSide(target, source, move) { - if (target.side === source.side || move.hasBounced || !move.flags['reflectable']) { - return; - } - const newMove = this.dex.getActiveMove(move.id); - newMove.hasBounced = true; - newMove.pranksterBoosted = false; - this.actions.useMove(newMove, this.effectState.target, source); - return null; - }, - condition: { - duration: 1, - }, - isPermanent: true, - name: "Power of Alchemy (Espeon)", - rating: 5, - }, - powerofalchemyumbreon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onModifyCritRatio(critRatio, source, target) { - if (target?.status) return 5; - }, - isPermanent: true, - name: "Power of Alchemy (Umbreon)", - rating: 5, - }, - powerofalchemyleafeon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onSetStatus(status, target, source, effect) { - if (['sunnyday', 'desolateland'].includes(target.effectiveWeather())) { - if ((effect as Move)?.status) { - this.add('-immune', target, '[from] ability: Leaf Guard'); - } - return false; - } - }, - onTryAddVolatile(status, target) { - if ((status.id === 'yawn' || status.id === 'flinch') && - ['sunnyday', 'desolateland'].includes(target.effectiveWeather())) { - this.add('-immune', target, '[from] ability: Leaf Guard'); - return null; - } - }, - onSourceModifyAtkPriority: 6, - onSourceModifyAtk(atk, attacker, defender, move) { - if (move.type === 'Flying' || move.type === 'Bug') { - this.debug('Leaf Guard weaken'); - return this.chainModify(0.5); - } - }, - onSourceModifySpAPriority: 5, - onSourceModifySpA(atk, attacker, defender, move) { - if (move.type === 'Flying' || move.type === 'Bug') { - this.debug('Leaf Guard weaken'); - return this.chainModify(0.5); - } - }, - onModifySpe(spe, pokemon) { - if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) { - return this.chainModify(2); - } - }, - isPermanent: true, - name: "Power of Alchemy (Leafeon)", - rating: 5, - }, - powerofalchemyglaceon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onStart(source) { - this.field.setWeather('hail'); - }, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - }, - onBasePowerPriority: 21, - onBasePower(basePower, attacker, defender, move) { - if (this.field.isWeather('hail')) { - if (move.type === 'Ice' || move.type === 'Water' || move.type === 'Fairy') { - this.debug('Snow Cloak boost'); - return this.chainModify([0x14CD, 0x1000]); - } - } - }, - isPermanent: true, - name: "Power of Alchemy (Glaceon)", - rating: 5, - }, - powerofalchemysylveon: { - shortDesc: "All of this Pokemon's abilities are active at once.", - onPreStart(pokemon) { - this.add('-ability', pokemon, 'Power of Alchemy'); - }, - onCheckShow(pokemon) { - // This is complicated - // For the most part, in-game, it's obvious whether or not Natural Cure activated, - // since you can see how many of your opponent's pokemon are statused. - // The only ambiguous situation happens in Doubles/Triples, where multiple pokemon - // that could have Natural Cure switch out, but only some of them get cured. - if (pokemon.side.active.length === 1) return; - if (pokemon.showCure === true || pokemon.showCure === false) return; - - const cureList = []; - let noCureCount = 0; - for (const curPoke of pokemon.side.active) { - // pokemon not statused - if (!curPoke || !curPoke.status) { - // this.add('-message', "" + curPoke + " skipped: not statused or doesn't exist"); - continue; - } - if (curPoke.showCure) { - // this.add('-message', "" + curPoke + " skipped: Natural Cure already known"); - continue; - } - const species = curPoke.species; - // pokemon can't get Natural Cure - if (!Object.values(species.abilities).includes('Natural Cure')) { - // this.add('-message', "" + curPoke + " skipped: no Natural Cure"); - continue; - } - // pokemon's ability is known to be Natural Cure - if (!species.abilities['1'] && !species.abilities['H']) { - // this.add('-message', "" + curPoke + " skipped: only one ability"); - continue; - } - // pokemon isn't switching this turn - if (curPoke !== pokemon && !this.queue.willSwitch(curPoke)) { - // this.add('-message', "" + curPoke + " skipped: not switching"); - continue; - } - - if (curPoke.hasAbility('naturalcure')) { - // this.add('-message', "" + curPoke + " confirmed: could be Natural Cure (and is)"); - cureList.push(curPoke); - } else { - // this.add('-message', "" + curPoke + " confirmed: could be Natural Cure (but isn't)"); - noCureCount++; - } - } - - if (!cureList.length || !noCureCount) { - // It's possible to know what pokemon were cured - for (const pkmn of cureList) { - pkmn.showCure = true; - } - } else { - // It's not possible to know what pokemon were cured - - // Unlike a -hint, this is real information that battlers need, so we use a -message - this.add('-message', "(" + cureList.length + " of " + pokemon.side.name + "'s pokemon " + (cureList.length === 1 ? "was" : "were") + " cured by Natural Cure.)"); - - for (const pkmn of cureList) { - pkmn.showCure = false; - } - } - }, - onSwitchOut(pokemon) { - if (!pokemon.status) return; - - // if pokemon.showCure is undefined, it was skipped because its ability - // is known - if (pokemon.showCure === undefined) pokemon.showCure = true; - - if (pokemon.showCure) this.add('-curestatus', pokemon, pokemon.status, '[from] ability: Natural Cure'); - pokemon.setStatus(''); - - // only reset .showCure if it's false - // (once you know a Pokemon has Natural Cure, its cures are always known) - if (!pokemon.showCure) pokemon.showCure = undefined; - }, - onModifyTypePriority: -1, - onModifyType(move, pokemon) { - const noModifyType = [ - 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball', - ]; - if (move.type === 'Normal' && !noModifyType.includes(move.id) && !(move.isZ && move.category !== 'Status')) { - move.type = 'Fairy'; - move.typeChangerBoosted = this.effect; - } - }, - onBasePowerPriority: 23, - onBasePower(basePower, pokemon, target, move) { - if (move.typeChangerBoosted === this.effect) return this.chainModify([0x1333, 0x1000]); - }, - isPermanent: true, - name: "Power of Alchemy (Sylveon)", - rating: 5, - }, - // Counterfeit Stuff, never ask me for anything ever again - lifeorb: { - onModifyDamage(damage, source, target, move) { - return this.chainModify(1.3); - }, - onAfterMoveSecondarySelf(source, target, move) { - if (source && source !== target && move && move.category !== 'Status') { - this.add('-ability', source, 'Life Orb'); - this.damage(source.baseMaxhp / 10, source, source); - } - }, - name: "Life Orb", - }, - assaultvest: { - onModifySpDPriority: 1, - onModifySpD(spd) { - return this.chainModify(1.5); - }, - onDisableMove(pokemon) { - for (const moveSlot of pokemon.moveSlots) { - if (this.dex.moves.get(moveSlot.move).category === 'Status') { - pokemon.disableMove(moveSlot.id); - } - } - }, - name: "Assault Vest", - }, - choiceband: { - onStart(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - onBeforeMove(pokemon, target, move) { - if (move.isZOrMaxPowered || move.id === 'struggle') return; - if (pokemon.abilityState.choiceLock && pokemon.abilityState.choiceLock !== move.id) { - // Fails unless ability is being ignored (these events will not run), no PP lost. - this.addMove('move', pokemon, move.name); - this.attrLastMove('[still]'); - this.debug("Disabled by Choice Band"); - this.add('-fail', pokemon); - return false; - } - }, - onModifyMove(move, pokemon) { - if (pokemon.abilityState.choiceLock || move.isZOrMaxPowered || move.id === 'struggle') return; - pokemon.abilityState.choiceLock = move.id; - }, - onModifyAtkPriority: 1, - onModifyAtk(atk, pokemon) { - if (pokemon.volatiles['dynamax']) return; - // PLACEHOLDER - this.debug('Choice Band Atk Boost'); - return this.chainModify(1.5); - }, - onDisableMove(pokemon) { - if (!pokemon.abilityState.choiceLock) return; - if (pokemon.volatiles['dynamax']) return; - for (const moveSlot of pokemon.moveSlots) { - if (moveSlot.id !== pokemon.abilityState.choiceLock) { - pokemon.disableMove(moveSlot.id, false, this.effectState.sourceEffect); - } - } - }, - onEnd(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - name: "Choice Band", - }, - choicespecs: { - name: "Choice Specs", - shortDesc: "This Pokemon's Sp. Atk is 1.5x, but it can only select the first move it executes.", - onStart(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - onBeforeMove(pokemon, target, move) { - if (move.isZOrMaxPowered || move.id === 'struggle') return; - if (pokemon.abilityState.choiceLock && pokemon.abilityState.choiceLock !== move.id) { - // Fails unless ability is being ignored (these events will not run), no PP lost. - this.addMove('move', pokemon, move.name); - this.attrLastMove('[still]'); - this.debug("Disabled by Choice Specs"); - this.add('-fail', pokemon); - return false; - } - }, - onModifyMove(move, pokemon) { - if (pokemon.abilityState.choiceLock || move.isZOrMaxPowered || move.id === 'struggle') return; - pokemon.abilityState.choiceLock = move.id; - }, - onModifySpAPriority: 5, - onModifySpA(atk, pokemon, move) { - if (pokemon.volatiles['dynamax']) return; - // PLACEHOLDER - this.debug('Choice Specs Sp. Atk Boost'); - return this.chainModify(1.5); - }, - onDisableMove(pokemon) { - if (!pokemon.abilityState.choiceLock) return; - if (pokemon.volatiles['dynamax']) return; - for (const moveSlot of pokemon.moveSlots) { - if (moveSlot.id !== pokemon.abilityState.choiceLock) { - pokemon.disableMove(moveSlot.id, false, this.effectState.sourceEffect); - } - } - }, - onEnd(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - }, - choicescarf: { - onStart(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - onBeforeMove(pokemon, target, move) { - if (move.isZOrMaxPowered || move.id === 'struggle') return; - if (pokemon.abilityState.choiceLock && pokemon.abilityState.choiceLock !== move.id) { - // Fails unless ability is being ignored (these events will not run), no PP lost. - this.addMove('move', pokemon, move.name); - this.attrLastMove('[still]'); - this.debug("Disabled by Choice Scarf"); - this.add('-fail', pokemon); - return false; - } - }, - onModifyMove(move, pokemon) { - if (pokemon.abilityState.choiceLock || move.isZOrMaxPowered || move.id === 'struggle') return; - pokemon.abilityState.choiceLock = move.id; - }, - onModifySpe(spe, pokemon) { - if (pokemon.volatiles['dynamax']) return; - // PLACEHOLDER - this.debug('Choice Scarf Spe Boost'); - return this.chainModify(1.5); - }, - onDisableMove(pokemon) { - if (!pokemon.abilityState.choiceLock) return; - if (pokemon.volatiles['dynamax']) return; - for (const moveSlot of pokemon.moveSlots) { - if (moveSlot.id !== pokemon.abilityState.choiceLock) { - pokemon.disableMove(moveSlot.id, false, this.effectState.sourceEffect); - } - } - }, - onEnd(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - name: "Choice Scarf", - }, - eviolite: { - onModifyDefPriority: 2, - onModifyDef(def, pokemon) { - if (pokemon.baseSpecies.nfe) { - return this.chainModify(1.5); - } - }, - onModifySpDPriority: 2, - onModifySpD(spd, pokemon) { - if (pokemon.baseSpecies.nfe) { - return this.chainModify(1.5); - } - }, - name: "Eviolite", - }, - eviolith: { - onModifyAtkPriority: 2, - onModifyAtk(atk, pokemon) { - if (pokemon.baseSpecies.nfe) { - return this.chainModify(1.5); - } - }, - onModifySpAPriority: 2, - onModifySpA(spa, pokemon) { - if (pokemon.baseSpecies.nfe) { - return this.chainModify(1.5); - } - }, - name: "Eviolith", - }, - momentumarmor: { - onModifyAtkPriority: 1, - onModifyAtk(atk, pokemon) { - const def = pokemon.getStat('def', false, true); - const newAtk = atk + (def / 4); - return newAtk; - }, - name: "Momentum Armor", - }, - shellbell: { - onAfterMoveSecondarySelfPriority: -1, - onAfterMoveSecondarySelf(pokemon, target, move) { - if (move.category !== 'Status') { - this.heal(pokemon.baseMaxhp / 8); - } - }, - name: "Shell Bell", - }, - cursedbelt: { - onAfterMoveSecondarySelf(target, source, move) { - if (move.category === 'Status') { - target.addVolatile('disable'); - } - }, - onModifyDamage(damage, source, target, move) { - if (source.volatiles['disable']) { - return this.chainModify(1.2); - } - }, - name: "Cursed Belt", - }, - focussash: { - onStart(pokemon) { - pokemon.addVolatile('focussash'); - }, - condition: { - onDamagePriority: -100, - onDamage(damage, target, source, effect) { - if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') { - this.add('-ability', target, 'Focus Sash'); - target.removeVolatile('focussash'); - return target.hp - 1; - } - }, - }, - name: "Focus Sash", - }, - leftovers: { - onResidualOrder: 5, - onResidualSubOrder: 5, - onResidual(pokemon) { - this.heal(pokemon.baseMaxhp / 16); - }, - name: "Leftovers", - }, - rockyhelmet: { - onDamagingHitOrder: 2, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact']) { - this.damage(source.baseMaxhp / 6, source, target); - } - }, - name: "Rocky Helmet", - }, - blacksludge: { - onResidualOrder: 5, - onResidualSubOrder: 5, - onResidual(pokemon) { - if (pokemon.hasType('Poison')) { - this.heal(pokemon.baseMaxhp / 16); - } else { - this.damage(pokemon.baseMaxhp / 8); - } - }, - name: "Black Sludge", - }, - reapercloth: { - onResidualOrder: 5, - onResidualSubOrder: 5, - onResidual(pokemon) { - if (pokemon.hasType('Ghost')) { - this.heal(pokemon.baseMaxhp / 16); - } - }, - onDisableMove(pokemon) { - if (!pokemon.hasType('Ghost') && pokemon.lastMove && pokemon.lastMove.id !== 'struggle') { - pokemon.disableMove(pokemon.lastMove.id); - } - }, - name: "Reaper Cloth", - }, - flameorb: { - onResidualOrder: 26, - onResidualSubOrder: 2, - onResidual(pokemon) { - pokemon.trySetStatus('brn', pokemon); - }, - name: "Flame Orb", - }, - toxicorb: { - onResidualOrder: 26, - onResidualSubOrder: 2, - onResidual(pokemon) { - pokemon.trySetStatus('tox', pokemon); - }, - name: "Toxic Orb", - }, - widelens: { - onSourceModifyAccuracyPriority: 4, - onSourceModifyAccuracy(accuracy) { - if (typeof accuracy === 'number') { - return accuracy * 1.2; - } - }, - name: "Wide Lens", - }, - zoomlens: { - onSourceModifyAccuracyPriority: 4, - onSourceModifyAccuracy(accuracy, target) { - if (typeof accuracy === 'number' && (!this.queue.willMove(target) || target.newlySwitched)) { - this.debug('Zoom Lens boosting accuracy'); - return accuracy * 1.5; - } - }, - name: "Zoom Lens", - }, - protector: { - onSourceModifyDamage(damage, source, target, move) { - if (target.getMoveHitData(move).typeMod > 0) { - this.debug('Protector neutralize'); - return this.chainModify(0.75); - } - }, - name: "Protector", - }, - quickclaw: { - onFractionalPriorityPriority: -2, - onFractionalPriority(priority, pokemon) { - if (priority <= 0 && this.randomChance(1, 5)) { - this.add('-activate', pokemon, 'ability: Quick Claw'); - return 0.1; - } - }, - name: "Quick Claw", - }, - shedshell: { - onTrapPokemonPriority: -10, - onTrapPokemon(pokemon) { - pokemon.trapped = pokemon.maybeTrapped = false; - }, - name: "Shed Shell", - }, - scopelens: { - onModifyCritRatio(critRatio) { - return critRatio + 1; - }, - name: "Scope Lens", - }, - razorclaw: { - onModifyCritRatio(critRatio) { - return critRatio + 1; - }, - name: "Razor Claw", - }, - whippeddream: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fairy') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Whipped Dream", - }, - pixieplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fairy') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Pixie Plate", - }, - blackbelt: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fighting') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Black Belt", - }, - blackglasses: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Dark') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Black Glasses", - }, - charcoal: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fire') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Charcoal", - }, - dragonfang: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Dragon') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Dragon Fang", - }, - hardstone: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Rock') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Hard Stone", - }, - magnet: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Electric') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Magnet", - }, - metalcoat: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Steel') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Metal Coat", - }, - miracleseed: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Grass') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Miracle Seed", - }, - mysticwater: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Water') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Mystic Water", - }, - nevermeltice: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Ice') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Never-Melt Ice", - }, - poisonbarb: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Poison') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Poison Barb", - }, - sharpbeak: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Flying') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Sharp Beak", - }, - silkscarf: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Normal') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Silk Scarf", - }, - softsand: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Ground') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Soft Sand", - }, - spelltag: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Ghost') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Spell Tag", - }, - twistedspoon: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Psychic') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Twisted Spoon", - }, - silverpowder: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Bug') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Silver Powder", - }, - protectivepads: { - onModifyMove(move) { - delete move.flags['contact']; - }, - name: "Protective Pads", - }, - safetygoggles: { - onImmunity(type, pokemon) { - if (type === 'sandstorm' || type === 'hail' || type === 'powder') return false; - }, - onTryHit(pokemon, source, move) { - if (move.flags['powder'] && pokemon !== source && this.dex.getImmunity('powder', pokemon)) { - this.add('-activate', pokemon, 'ability: Safety Goggles', move.name); - return null; - } - }, - name: "Safety Goggles", - }, - bigroot: { - onTryHealPriority: 1, - onTryHeal(damage, target, source, effect) { - const heals = ['drain', 'leechseed', 'ingrain', 'aquaring', 'strengthsap']; - if (heals.includes(effect.id)) { - return this.chainModify([0x14CC, 0x1000]); - } - }, - name: "Big Root", - }, - utilityumbrella: { - onImmunity(type, pokemon) { - if (type === 'sandstorm' || type === 'hail') return false; - }, - onWeather(target, source, effect) { - if (this.field.isWeather(['sunnyday', 'desolateland', 'hail', 'raindance', 'primordialsea', 'sandstorm'])) { - this.heal(target.baseMaxhp / 12); - } - }, - name: "Utility Umbrella", - }, - soulblade: { - onModifyDamage(damage, source, target, move) { - return this.chainModify([0x1199, 0x1000]); - }, - name: "Soul Blade", - }, - fistplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fighting') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Fist Plate", - }, - dreadplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Dark') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Dread Plate", - }, - flameplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fire') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Flame Plate", - }, - dracoplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Dragon') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Draco Plate", - }, - stoneplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Rock') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Stone Plate", - }, - rockincense: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Rock') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Rock Incense", - }, - zapplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Electric') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Zap Plate", - }, - ironplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Steel') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Iron Plate", - }, - meadowplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Grass') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Meadow Plate", - }, - roseincense: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Grass') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Rose Incense", - }, - splashplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Water') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Splash Plate", - }, - seaincense: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Water') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Sea Incense", - }, - waveincense: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Water') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Wave Incense", - }, - icicleplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Ice') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Icicle Plate", - }, - toxicplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Poison') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Toxic Plate", - }, - skyplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Flying') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Sky Plate", - }, - earthplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Ground') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Earth Plate", - }, - spookyplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Ghost') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Spooky Plate", - }, - mindplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Psychic') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Mind Plate", - }, - oddincense: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Psychic') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Odd Incense", - }, - insectplate: { - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Bug') { - return this.chainModify([0x1333, 0x1000]); - } - }, - name: "Insect Plate", - }, - fullincense: { - onFractionalPriority: -0.1, - name: "Full Incense", - }, - laggingtail: { - onFractionalPriority: -0.1, - name: "Lagging Tail", - }, - muscleband: { - onBasePowerPriority: 16, - onBasePower(basePower, user, target, move) { - if (move.category === 'Physical') { - return this.chainModify([0x1199, 0x1000]); - } - }, - name: "Muscle Band", - }, - wiseglasses: { - onBasePowerPriority: 16, - onBasePower(basePower, user, target, move) { - if (move.category === 'Special') { - return this.chainModify([0x1199, 0x1000]); - } - }, - name: "Wise Glasses", - }, - focusband: { - onDamage(damage, target, source, effect) { - if (this.randomChance(1, 10) && damage >= target.hp && effect && effect.effectType === 'Move') { - this.add("-activate", target, "ability: Focus Band"); - return target.hp - 1; - } - }, - name: "Focus Band", - }, - metronome: { - onStart(pokemon) { - pokemon.addVolatile('metronome'); - }, - condition: { - onStart(pokemon) { - this.effectState.lastMove = ''; - this.effectState.numConsecutive = 0; - }, - onTryMovePriority: -2, - onTryMove(pokemon, target, move) { - if (!pokemon.hasItem('metronome')) { - pokemon.removeVolatile('metronome'); - return; - } - if (this.effectState.lastMove === move.id && pokemon.moveLastTurnResult) { - this.effectState.numConsecutive++; - } else if (pokemon.volatiles['twoturnmove'] && this.effectState.lastMove !== move.id) { - this.effectState.numConsecutive = 1; - } else { - this.effectState.numConsecutive = 0; - } - this.effectState.lastMove = move.id; - }, - onModifyDamage(damage, source, target, move) { - const dmgMod = [0x1000, 0x1333, 0x1666, 0x1999, 0x1CCC, 0x2000]; - const numConsecutive = this.effectState.numConsecutive > 5 ? 5 : this.effectState.numConsecutive; - return this.chainModify([dmgMod[numConsecutive], 0x1000]); - }, - }, - name: "Metronome", - }, -}; diff --git a/data/mods/gen8joltemons/conditions.ts b/data/mods/gen8joltemons/conditions.ts deleted file mode 100644 index 88c882a7e73c..000000000000 --- a/data/mods/gen8joltemons/conditions.ts +++ /dev/null @@ -1,174 +0,0 @@ -export const Conditions: {[k: string]: ConditionData} = { - silvally: { - name: 'Silvally', - onTypePriority: 1, - onType(types, pokemon) { - if (pokemon.transformed || - !(pokemon.ability === 'rkssystem' || pokemon.ability === 'powerofalchemysilvally') && this.gen >= 8) { - return types; - } - let type: string | undefined = 'Normal'; - if (pokemon.ability === 'rkssystem' || pokemon.ability === 'powerofalchemysilvally') { - type = pokemon.getItem().onMemory; - if (!type) { - type = 'Normal'; - } - } - return [type]; - }, - }, - raindance: { - name: 'RainDance', - effectType: 'Weather', - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('damprock')) { - return 8; - } - return 5; - }, - onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella') || attacker.hasItem('utilityumbrella') || - defender.hasAbility('utilityumbrella') || attacker.hasAbility('utilityumbrella')) return; - if (move.type === 'Water') { - this.debug('rain water boost'); - return this.chainModify(1.5); - } - if (move.type === 'Fire') { - this.debug('rain fire suppress'); - return this.chainModify(0.5); - } - }, - onStart(battle, source, effect) { - if (effect?.effectType === 'Ability') { - if (this.gen <= 5) this.effectState.duration = 0; - this.add('-weather', 'RainDance', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-weather', 'RainDance'); - } - }, - onResidualOrder: 1, - onResidual() { - this.add('-weather', 'RainDance', '[upkeep]'); - this.eachEvent('Weather'); - }, - onEnd() { - this.add('-weather', 'none'); - }, - }, - primordialsea: { - name: 'PrimordialSea', - effectType: 'Weather', - duration: 0, - onTryMovePriority: 1, - onTryMove(attacker, defender, move) { - if (move.type === 'Fire' && move.category !== 'Status' && - !attacker.hasItem('utilityumbrella') && !attacker.hasAbility('utilityumbrella')) { - this.debug('Primordial Sea fire suppress'); - this.add('-fail', attacker, move, '[from] Primordial Sea'); - this.attrLastMove('[still]'); - return null; - } - }, - onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella') || attacker.hasItem('utilityumbrella') || - defender.hasAbility('utilityumbrella') || attacker.hasAbility('utilityumbrella')) return; - if (move.type === 'Water') { - this.debug('Rain water boost'); - return this.chainModify(1.5); - } - }, - onStart(battle, source, effect) { - this.add('-weather', 'PrimordialSea', '[from] ability: ' + effect, '[of] ' + source); - }, - onResidualOrder: 1, - onResidual() { - this.add('-weather', 'PrimordialSea', '[upkeep]'); - this.eachEvent('Weather'); - }, - onEnd() { - this.add('-weather', 'none'); - }, - }, - sunnyday: { - name: 'SunnyDay', - effectType: 'Weather', - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('heatrock')) { - return 8; - } - return 5; - }, - onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella') || attacker.hasItem('utilityumbrella') || - defender.hasAbility('utilityumbrella') || attacker.hasAbility('utilityumbrella')) return; - if (move.type === 'Fire') { - this.debug('Sunny Day fire boost'); - return this.chainModify(1.5); - } - if (move.type === 'Water' && !attacker.hasAbility('vaporcontrol')) { - this.debug('Sunny Day water suppress'); - return this.chainModify(0.5); - } - }, - onStart(battle, source, effect) { - if (effect?.effectType === 'Ability') { - if (this.gen <= 5) this.effectState.duration = 0; - this.add('-weather', 'SunnyDay', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-weather', 'SunnyDay'); - } - }, - onImmunity(type, pokemon) { - if (pokemon.hasItem('utilityumbrella')) return; - if (type === 'frz') return false; - }, - onResidualOrder: 1, - onResidual() { - this.add('-weather', 'SunnyDay', '[upkeep]'); - this.eachEvent('Weather'); - }, - onEnd() { - this.add('-weather', 'none'); - }, - }, - desolateland: { - name: 'DesolateLand', - effectType: 'Weather', - duration: 0, - onTryMovePriority: 1, - onTryMove(attacker, defender, move) { - if (move.type === 'Water' && move.category !== 'Status' && - !attacker.hasItem('utilityumbrella') && !attacker.hasAbility('utilityumbrella')) { - this.debug('Desolate Land water suppress'); - this.add('-fail', attacker, move, '[from] Desolate Land'); - this.attrLastMove('[still]'); - return null; - } - }, - onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella') || attacker.hasItem('utilityumbrella') || - defender.hasAbility('utilityumbrella') || attacker.hasAbility('utilityumbrella')) return; - if (move.type === 'Fire') { - this.debug('Sunny Day fire boost'); - return this.chainModify(1.5); - } - }, - onStart(battle, source, effect) { - this.add('-weather', 'DesolateLand', '[from] ability: ' + effect, '[of] ' + source); - }, - onImmunity(type, pokemon) { - if (pokemon.hasItem('utilityumbrella') || pokemon.hasAbility('utilityumbrella')) return; - if (type === 'frz') return false; - }, - onResidualOrder: 1, - onResidual() { - this.add('-weather', 'DesolateLand', '[upkeep]'); - this.eachEvent('Weather'); - }, - onEnd() { - this.add('-weather', 'none'); - }, - }, -}; diff --git a/data/mods/gen8joltemons/formats-data.ts b/data/mods/gen8joltemons/formats-data.ts deleted file mode 100644 index c4a325a33f73..000000000000 --- a/data/mods/gen8joltemons/formats-data.ts +++ /dev/null @@ -1,2694 +0,0 @@ -export const FormatsData: {[k: string]: SpeciesFormatsData} = { - alakazammega: { - tier: "OU", - doublesTier: "DOU", - }, - arceus: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusbug: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusdragon: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusdark: { - tier: "Uber", - doublesTier: "DOU", - }, - arceuselectric: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusfairy: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusfire: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusfighting: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusflying: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusground: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusgrass: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusghost: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusice: { - tier: "Uber", - doublesTier: "DOU", - }, - arceuspsychic: { - tier: "Uber", - doublesTier: "DOU", - }, - arceusrock: { - tier: "Uber", - doublesTier: "DOU", - }, - arceuspoison: { - tier: "Uber", - doublesTier: "DOU", - }, - arceuswater: { - tier: "Uber", - doublesTier: "DOU", - }, - arceussteel: { - tier: "Uber", - doublesTier: "DOU", - }, - blastoisemega: { - tier: "Uber", - doublesTier: "DOU", - }, - blazikenmega: { - tier: "Uber", - doublesTier: "DOU", - }, - calyrexice: { - tier: "Uber", - doublesTier: "DOU", - }, - calyrexshadow: { - tier: "Uber", - doublesTier: "DOU", - }, - cinderace: { - tier: "UU", - doublesTier: "DOU", - }, - darkrai: { - tier: "Uber", - doublesTier: "DOU", - }, - darmanitangalar: { - tier: "UU", - doublesTier: "DOU", - }, - deoxysattack: { - tier: "Uber", - doublesTier: "DOU", - }, - deoxys: { - tier: "Uber", - doublesTier: "DOU", - }, - deoxysspeed: { - tier: "Uber", - doublesTier: "DOU", - }, - dialga: { - tier: "Uber", - doublesTier: "DOU", - }, - dracovish: { - tier: "Uber", - doublesTier: "DOU", - }, - dragapult: { - tier: "OU", - doublesTier: "DOU", - }, - eternatus: { - tier: "Uber", - doublesTier: "DOU", - }, - genesect: { - tier: "Uber", - doublesTier: "DOU", - }, - gengarmega: { - tier: "Uber", - doublesTier: "DOU", - }, - giratina: { - tier: "Uber", - doublesTier: "DOU", - }, - giratinaorigin: { - tier: "Uber", - doublesTier: "DOU", - }, - groudon: { - tier: "Uber", - doublesTier: "DOU", - }, - hooh: { - tier: "Uber", - doublesTier: "DOU", - }, - kangaskhanmega: { - tier: "UU", - doublesTier: "DOU", - }, - kyogre: { - tier: "Uber", - doublesTier: "DOU", - }, - kyuremblack: { - tier: "Uber", - doublesTier: "DOU", - }, - kyuremwhite: { - tier: "Uber", - doublesTier: "DOU", - }, - landorus: { - tier: "Uber", - doublesTier: "DOU", - }, - lucariomega: { - tier: "UUBL", - doublesTier: "DOU", - }, - lugia: { - tier: "Uber", - doublesTier: "DOU", - }, - lunala: { - tier: "Uber", - doublesTier: "DOU", - }, - magearna: { - tier: "Uber", - doublesTier: "DOU", - }, - marshadow: { - tier: "Uber", - doublesTier: "DOU", - }, - metagrossmega: { - tier: "Uber", - doublesTier: "DOU", - }, - mewtwo: { - tier: "Uber", - doublesTier: "DOU", - }, - naganadel: { - tier: "Uber", - doublesTier: "DOU", - }, - mewtwomegax: { - tier: "Uber", - doublesTier: "DOU", - }, - mewtwomegay: { - tier: "Uber", - doublesTier: "DOU", - }, - necrozmadawnwings: { - tier: "Uber", - doublesTier: "DOU", - }, - necrozmaduskmane: { - tier: "Uber", - doublesTier: "DOU", - }, - necrozmaultra: { - tier: "Uber", - doublesTier: "DOU", - }, - palkia: { - tier: "Uber", - doublesTier: "DOU", - }, - pheromosa: { - tier: "Uber", - doublesTier: "DOU", - }, - rayquaza: { - tier: "Uber", - doublesTier: "DOU", - }, - rayquazamega: { - tier: "AG", - doublesTier: "DOU", - }, - reshiram: { - tier: "Uber", - doublesTier: "DOU", - }, - salamencemega: { - tier: "Uber", - doublesTier: "DOU", - }, - shayminsky: { - tier: "UU", - doublesTier: "DOU", - }, - solgaleo: { - tier: "Uber", - doublesTier: "DOU", - }, - spectrier: { - tier: "Uber", - doublesTier: "DOU", - }, - tornadustherian: { - tier: "OU", - doublesTier: "DOU", - }, - urshifu: { - tier: "Uber", - doublesTier: "DOU", - }, - xerneas: { - tier: "Uber", - doublesTier: "DOU", - }, - yveltal: { - tier: "Uber", - doublesTier: "DOU", - }, - zacian: { - tier: "AG", - doublesTier: "DOU", - }, - zaciancrowned: { - tier: "AG", - doublesTier: "DOU", - }, - zamazenta: { - tier: "Uber", - doublesTier: "DOU", - }, - zamazentacrowned: { - tier: "Uber", - doublesTier: "DOU", - }, - zekrom: { - tier: "Uber", - doublesTier: "DOU", - }, - zygarde: { - tier: "Uber", - doublesTier: "DOU", - }, - zygardecomplete: { - tier: "Uber", - doublesTier: "DOU", - }, - genesectburn: { - tier: "Uber", - doublesTier: "DOU", - }, - genesectshock: { - tier: "Uber", - doublesTier: "DOU", - }, - genesectchill: { - tier: "Uber", - doublesTier: "DOU", - }, - genesectdouse: { - tier: "Uber", - doublesTier: "DOU", - }, - groudonprimal: { - tier: "Uber", - doublesTier: "DOU", - }, - kyogreprimal: { - tier: "Uber", - doublesTier: "DOU", - }, - darmanitangalarzen: { - tier: "OU", - doublesTier: "DOU", - }, - darmanitanzen: { - tier: "UU", - doublesTier: "DOU", - }, - meloettapirouette: { - tier: "UU", - doublesTier: "DOU", - }, - blissey: { - tier: "OU", - doublesTier: "DOU", - }, - chansey: { - tier: "UU", - doublesTier: "DOU", - }, - charizardmegax: { - tier: "UUBL", - doublesTier: "DOU", - }, - charizardmegay: { - tier: "UUBL", - doublesTier: "DOU", - }, - clefable: { - tier: "OU", - doublesTier: "DOU", - }, - corviknight: { - tier: "OU", - doublesTier: "DOU", - }, - excadrill: { - tier: "UU", - doublesTier: "DOU", - }, - ferrothorn: { - tier: "OU", - doublesTier: "DOU", - }, - garchompmega: { - tier: "OU", - doublesTier: "DOU", - }, - garchomp: { - tier: "OU", - doublesTier: "DOU", - }, - gliscor: { - tier: "OU", - doublesTier: "DOU", - }, - greninja: { - tier: "UU", - doublesTier: "DOU", - }, - greninjaash: { - tier: "OU", - doublesTier: "DOU", - }, - heatran: { - tier: "OU", - doublesTier: "DOU", - }, - kartana: { - tier: "OU", - doublesTier: "DOU", - }, - kommoo: { - tier: "UU", - doublesTier: "DOU", - }, - kyurem: { - tier: "OU", - doublesTier: "DOU", - }, - landorustherian: { - tier: "OU", - doublesTier: "DOU", - }, - lopunnymega: { - tier: "OU", - doublesTier: "DOU", - }, - magnezone: { - tier: "OU", - doublesTier: "DOU", - }, - mawilemega: { - tier: "OU", - doublesTier: "DOU", - }, - pelipper: { - tier: "OU", - doublesTier: "DOU", - }, - rillaboom: { - tier: "UU", - doublesTier: "DOU", - }, - scizormega: { - tier: "OU", - doublesTier: "DOU", - }, - serperior: { - tier: "OU", - doublesTier: "DOU", - }, - slowbro: { - tier: "OU", - doublesTier: "DOU", - }, - swampertmega: { - tier: "OU", - doublesTier: "DOU", - }, - tapufini: { - tier: "OU", - doublesTier: "DOU", - }, - tapukoko: { - tier: "OU", - doublesTier: "DOU", - }, - tapulele: { - tier: "OU", - doublesTier: "DOU", - }, - toxapex: { - tier: "OU", - doublesTier: "DOU", - }, - tyranitar: { - tier: "UU", - doublesTier: "DOU", - }, - tyranitarmega: { - tier: "UUBL", - doublesTier: "DOU", - }, - victini: { - tier: "OU", - doublesTier: "DOU", - }, - volcarona: { - tier: "OU", - doublesTier: "DOU", - }, - weavile: { - tier: "OU", - doublesTier: "DOU", - }, - zapdos: { - tier: "OU", - doublesTier: "DOU", - }, - silvally: { - tier: "RU", - doublesTier: "DOU", - }, - silvallybug: { - tier: "RU", - doublesTier: "DOU", - }, - silvallydragon: { - tier: "RU", - doublesTier: "DOU", - }, - silvallydark: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyelectric: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyfairy: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyfire: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyfighting: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyflying: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyground: { - tier: "RU", - doublesTier: "DOU", - }, - silvallygrass: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyghost: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyice: { - tier: "RU", - doublesTier: "DOU", - }, - silvallypsychic: { - tier: "RU", - doublesTier: "DOU", - }, - silvallyrock: { - tier: "RU", - doublesTier: "DOU", - }, - silvallypoison: { - tier: "RU", - doublesTier: "DOU", - }, - silvallywater: { - tier: "RU", - doublesTier: "DOU", - }, - silvallysteel: { - tier: "RU", - doublesTier: "DOU", - }, - aerodactylmega: { - tier: "UUBL", - doublesTier: "DOU", - }, - alakazam: { - tier: "UU", - doublesTier: "DOU", - }, - blacephalon: { - tier: "OU", - doublesTier: "DOU", - }, - blaziken: { - tier: "UUBL", - doublesTier: "DOU", - }, - dianciemega: { - tier: "UUBL", - doublesTier: "DOU", - }, - gallademega: { - tier: "OU", - doublesTier: "DOU", - }, - gardevoirmega: { - tier: "UUBL", - doublesTier: "DOU", - }, - gengar: { - tier: "UUBL", - doublesTier: "DOU", - }, - gyarados: { - tier: "UU", - doublesTier: "DOU", - }, - gyaradosmega: { - tier: "OU", - doublesTier: "DOU", - }, - hawlucha: { - tier: "UUBL", - doublesTier: "DOU", - }, - heracrossmega: { - tier: "UUBL", - doublesTier: "DOU", - }, - hoopaunbound: { - tier: "UUBL", - doublesTier: "DOU", - }, - hydreigon: { - tier: "UUBL", - doublesTier: "DOU", - }, - jirachi: { - tier: "UU", - doublesTier: "DOU", - }, - latias: { - tier: "UU", - doublesTier: "DOU", - }, - latiasmega: { - tier: "OU", - doublesTier: "DOU", - }, - latios: { - tier: "UUBL", - doublesTier: "DOU", - }, - latiosmega: { - tier: "UUBL", - doublesTier: "DOU", - }, - manaphy: { - tier: "OU", - doublesTier: "DOU", - }, - medichammega: { - tier: "OU", - doublesTier: "DOU", - }, - melmetal: { - tier: "OU", - doublesTier: "DOU", - }, - mew: { - tier: "UU", - doublesTier: "DOU", - }, - moltresgalar: { - tier: "OU", - doublesTier: "DOU", - }, - pinsirmega: { - tier: "UUBL", - doublesTier: "DOU", - }, - sableye: { - tier: "RU", - doublesTier: "DOU", - }, - slowbromega: { - tier: "OU", - doublesTier: "DOU", - }, - slowkinggalar: { - tier: "OU", - doublesTier: "DOU", - }, - thundurus: { - tier: "UU", - doublesTier: "DOU", - }, - thundurustherian: { - tier: "UU", - doublesTier: "DOU", - }, - venusaurmega: { - tier: "UUBL", - doublesTier: "DOU", - }, - xurkitree: { - tier: "UU", - doublesTier: "DOU", - }, - zapdosgalar: { - tier: "OU", - doublesTier: "DOU", - }, - aegislash: { - tier: "UU", - doublesTier: "DOU", - }, - altariamega: { - tier: "UU", - doublesTier: "DOU", - }, - amoonguss: { - tier: "UU", - doublesTier: "DOU", - }, - azumarill: { - tier: "UU", - doublesTier: "DOU", - }, - beedrillmega: { - tier: "OU", - doublesTier: "DOU", - }, - breloom: { - tier: "UU", - doublesTier: "DOU", - }, - celesteela: { - tier: "OU", - doublesTier: "DOU", - }, - chandelure: { - tier: "UU", - doublesTier: "DOU", - }, - donphan: { - tier: "RU", - doublesTier: "DOU", - }, - dracozolt: { - tier: "UU", - doublesTier: "DOU", - }, - dragonite: { - tier: "UU", - doublesTier: "DOU", - }, - feraligatr: { - tier: "RU", - doublesTier: "DOU", - }, - gastrodon: { - tier: "UU", - doublesTier: "DOU", - }, - hatterene: { - tier: "UU", - doublesTier: "DOU", - }, - hippowdon: { - tier: "UU", - doublesTier: "DOU", - }, - infernape: { - tier: "UU", - doublesTier: "DOU", - }, - keldeo: { - tier: "UU", - doublesTier: "DOU", - }, - keldeoresolute: { - tier: "UU", - doublesTier: "DOU", - }, - krookodile: { - tier: "UU", - doublesTier: "DOU", - }, - mamoswine: { - tier: "UU", - doublesTier: "DOU", - }, - mandibuzz: { - tier: "UU", - doublesTier: "DOU", - }, - manectricmega: { - tier: "UU", - doublesTier: "DOU", - }, - mienshao: { - tier: "UU", - doublesTier: "DOU", - }, - moltres: { - tier: "RU", - doublesTier: "DOU", - }, - nidoking: { - tier: "OU", - doublesTier: "DOU", - }, - nidoqueen: { - tier: "UU", - doublesTier: "DOU", - }, - nihilego: { - tier: "UU", - doublesTier: "DOU", - }, - quagsire: { - tier: "UU", - doublesTier: "DOU", - }, - regieleki: { - tier: "UU", - doublesTier: "DOU", - }, - ribombee: { - tier: "UU", - doublesTier: "DOU", - }, - rotomheat: { - tier: "UU", - doublesTier: "DOU", - }, - rotomwash: { - tier: "OU", - doublesTier: "DOU", - }, - salamence: { - tier: "UU", - doublesTier: "DOU", - }, - scizor: { - tier: "UU", - doublesTier: "DOU", - }, - skarmory: { - tier: "UU", - doublesTier: "DOU", - }, - slowking: { - tier: "UU", - doublesTier: "DOU", - }, - swampert: { - tier: "UU", - doublesTier: "DOU", - }, - talonflame: { - tier: "RU", - doublesTier: "DOU", - }, - tangrowth: { - tier: "UU", - doublesTier: "DOU", - }, - tornadus: { - tier: "RUBL", - doublesTier: "DOU", - }, - umbreon: { - tier: "RU", - doublesTier: "DOU", - }, - urshifurapidstrike: { - tier: "UU", - doublesTier: "DOU", - }, - abomasnow: { - tier: "RU", - doublesTier: "DOU", - }, - abomasnowmega: { - tier: "RU", - doublesTier: "DOU", - }, - absol: { - tier: "RU", - doublesTier: "DOU", - }, - absolmega: { - tier: "RUBL", - doublesTier: "DOU", - }, - aerodactyl: { - tier: "RU", - doublesTier: "DOU", - }, - accelgor: { - tier: "RU", - doublesTier: "DOU", - }, - aggron: { - tier: "RU", - doublesTier: "DOU", - }, - aggronmega: { - tier: "UU", - doublesTier: "DOU", - }, - alcremie: { - tier: "RU", - doublesTier: "DOU", - }, - alomomola: { - tier: "UU", - doublesTier: "DOU", - }, - altaria: { - tier: "RU", - doublesTier: "DOU", - }, - ambipom: { - tier: "RU", - doublesTier: "DOU", - }, - ampharos: { - tier: "RU", - doublesTier: "DOU", - }, - ampharosmega: { - tier: "UU", - doublesTier: "DOU", - }, - appletun: { - tier: "RU", - doublesTier: "DOU", - }, - araquanid: { - tier: "RU", - doublesTier: "DOU", - }, - arbok: { - tier: "RU", - doublesTier: "DOU", - }, - arcanine: { - tier: "RU", - doublesTier: "DOU", - }, - archeops: { - tier: "UU", - doublesTier: "DOU", - }, - arctovish: { - tier: "RU", - doublesTier: "DOU", - }, - arctozolt: { - tier: "OU", - doublesTier: "DOU", - }, - ariados: { - tier: "RU", - doublesTier: "DOU", - }, - armaldo: { - tier: "RU", - doublesTier: "DOU", - }, - aromatisse: { - tier: "RU", - doublesTier: "DOU", - }, - articuno: { - tier: "RU", - doublesTier: "DOU", - }, - articunogalar: { - tier: "UU", - doublesTier: "DOU", - }, - audino: { - tier: "RU", - doublesTier: "DOU", - }, - audinomega: { - tier: "UU", - doublesTier: "DOU", - }, - aurorus: { - tier: "RU", - doublesTier: "DOU", - }, - avalugg: { - tier: "UU", - doublesTier: "DOU", - }, - azelf: { - tier: "UU", - doublesTier: "DOU", - }, - banette: { - tier: "RU", - doublesTier: "DOU", - }, - banettemega: { - tier: "UU", - doublesTier: "DOU", - }, - barbaracle: { - tier: "RU", - doublesTier: "DOU", - }, - barraskewda: { - tier: "UU", - doublesTier: "DOU", - }, - basculin: { - tier: "RU", - doublesTier: "DOU", - }, - basculinbluestriped: { - tier: "RU", - doublesTier: "DOU", - }, - bastiodon: { - tier: "RU", - doublesTier: "DOU", - }, - beautifly: { - tier: "RU", - doublesTier: "DOU", - }, - beedrill: { - tier: "RU", - doublesTier: "DOU", - }, - beheeyem: { - tier: "RU", - doublesTier: "DOU", - }, - bellossom: { - tier: "RU", - doublesTier: "DOU", - }, - bewear: { - tier: "RU", - doublesTier: "DOU", - }, - bibarel: { - tier: "RU", - doublesTier: "DOU", - }, - bisharp: { - tier: "UU", - doublesTier: "DOU", - }, - blastoise: { - tier: "RU", - doublesTier: "DOU", - }, - boltund: { - tier: "RU", - doublesTier: "DOU", - }, - bouffalant: { - tier: "RU", - doublesTier: "DOU", - }, - braviary: { - tier: "RU", - doublesTier: "DOU", - }, - bronzong: { - tier: "RU", - doublesTier: "DOU", - }, - bruxish: { - tier: "RU", - doublesTier: "DOU", - }, - butterfree: { - tier: "RU", - doublesTier: "DOU", - }, - buzzwole: { - tier: "OU", - doublesTier: "DOU", - }, - cacturne: { - tier: "RU", - doublesTier: "DOU", - }, - calyrex: { - tier: "RU", - doublesTier: "DOU", - }, - camerupt: { - tier: "RU", - doublesTier: "DOU", - }, - cameruptmega: { - tier: "UU", - doublesTier: "DOU", - }, - carbink: { - tier: "RU", - doublesTier: "DOU", - }, - carnivine: { - tier: "RU", - doublesTier: "DOU", - }, - carracosta: { - tier: "RU", - doublesTier: "DOU", - }, - castform: { - tier: "RU", - doublesTier: "DOU", - }, - celebi: { - tier: "RU", - doublesTier: "DOU", - }, - centiskorch: { - tier: "UU", - doublesTier: "DOU", - }, - charizard: { - tier: "RU", - doublesTier: "DOU", - }, - chatot: { - tier: "RU", - doublesTier: "DOU", - }, - cherrim: { - tier: "RU", - doublesTier: "DOU", - }, - chesnaught: { - tier: "UU", - doublesTier: "DOU", - }, - chimecho: { - tier: "RU", - doublesTier: "DOU", - }, - cinccino: { - tier: "RU", - doublesTier: "DOU", - }, - clawitzer: { - tier: "RU", - doublesTier: "DOU", - }, - claydol: { - tier: "RU", - doublesTier: "DOU", - }, - cloyster: { - tier: "RU", - doublesTier: "DOU", - }, - coalossal: { - tier: "RU", - doublesTier: "DOU", - }, - cobalion: { - tier: "UU", - doublesTier: "DOU", - }, - cofagrigus: { - tier: "RU", - doublesTier: "DOU", - }, - comfey: { - tier: "RU", - doublesTier: "DOU", - }, - conkeldurr: { - tier: "RUBL", - doublesTier: "DOU", - }, - copperajah: { - tier: "RU", - doublesTier: "DOU", - }, - corsola: { - tier: "RU", - doublesTier: "DOU", - }, - corsolagalar: { - tier: "RU", - doublesTier: "DOU", - }, - cursola: { - tier: "RU", - doublesTier: "DOU", - }, - crabominable: { - tier: "RU", - doublesTier: "DOU", - }, - typenull: { - tier: "RU", - doublesTier: "DOU", - }, - darmanitan: { - tier: "UU", - doublesTier: "DOU", - }, - decidueye: { - tier: "UU", - doublesTier: "DOU", - }, - dedenne: { - tier: "RU", - doublesTier: "DOU", - }, - delcatty: { - tier: "RU", - doublesTier: "DOU", - }, - delibird: { - tier: "RU", - doublesTier: "DOU", - }, - delphox: { - tier: "RU", - doublesTier: "DOU", - }, - deoxysdefense: { - tier: "UU", - doublesTier: "DOU", - }, - dewgong: { - tier: "RU", - doublesTier: "DOU", - }, - dhelmise: { - tier: "RU", - doublesTier: "DOU", - }, - diancie: { - tier: "RU", - doublesTier: "DOU", - }, - diggersby: { - tier: "UU", - doublesTier: "DOU", - }, - ditto: { - tier: "RU", - doublesTier: "DOU", - }, - dodrio: { - tier: "UU", - doublesTier: "DOU", - }, - dragalge: { - tier: "RU", - doublesTier: "DOU", - }, - drampa: { - tier: "RU", - doublesTier: "DOU", - }, - drapion: { - tier: "RU", - doublesTier: "DOU", - }, - drednaw: { - tier: "RU", - doublesTier: "DOU", - }, - drifblim: { - tier: "RU", - doublesTier: "DOU", - }, - druddigon: { - tier: "RU", - doublesTier: "DOU", - }, - dubwool: { - tier: "RU", - doublesTier: "DOU", - }, - dugtrio: { - tier: "RU", - doublesTier: "DOU", - }, - dugtrioalola: { - tier: "RU", - doublesTier: "DOU", - }, - dunsparce: { - tier: "RU", - doublesTier: "DOU", - }, - duraludon: { - tier: "RU", - doublesTier: "DOU", - }, - durant: { - tier: "RUBL", - doublesTier: "DOU", - }, - dusknoir: { - tier: "UU", - doublesTier: "DOU", - }, - dustox: { - tier: "RU", - doublesTier: "DOU", - }, - eelektross: { - tier: "UU", - doublesTier: "DOU", - }, - eiscue: { - tier: "RU", - doublesTier: "DOU", - }, - eldegoss: { - tier: "RU", - doublesTier: "DOU", - }, - electivire: { - tier: "RU", - doublesTier: "DOU", - }, - electrode: { - tier: "RU", - doublesTier: "DOU", - }, - emboar: { - tier: "RU", - doublesTier: "DOU", - }, - emolga: { - tier: "RU", - doublesTier: "DOU", - }, - empoleon: { - tier: "UU", - doublesTier: "DOU", - }, - entei: { - tier: "RU", - doublesTier: "DOU", - }, - escavalier: { - tier: "RU", - doublesTier: "DOU", - }, - espeon: { - tier: "RU", - doublesTier: "DOU", - }, - exeggutor: { - tier: "RU", - doublesTier: "DOU", - }, - exeggutoralola: { - tier: "RU", - doublesTier: "DOU", - }, - exploud: { - tier: "RU", - doublesTier: "DOU", - }, - falinks: { - tier: "RU", - doublesTier: "DOU", - }, - farfetchd: { - tier: "RU", - doublesTier: "DOU", - }, - farfetchdgalar: { - tier: "RU", - doublesTier: "DOU", - }, - fearow: { - tier: "RU", - doublesTier: "DOU", - }, - flapple: { - tier: "UU", - doublesTier: "DOU", - }, - flareon: { - tier: "RU", - doublesTier: "DOU", - }, - floatzel: { - tier: "RU", - doublesTier: "DOU", - }, - florges: { - tier: "UU", - doublesTier: "DOU", - }, - flygon: { - tier: "RU", - doublesTier: "DOU", - }, - forretress: { - tier: "RU", - doublesTier: "DOU", - }, - froslass: { - tier: "RU", - doublesTier: "DOU", - }, - frosmoth: { - tier: "RU", - doublesTier: "DOU", - }, - furfrou: { - tier: "RU", - doublesTier: "DOU", - }, - furret: { - tier: "RU", - doublesTier: "DOU", - }, - gallade: { - tier: "RU", - doublesTier: "DOU", - }, - galvantula: { - tier: "RU", - doublesTier: "DOU", - }, - garbodor: { - tier: "RU", - doublesTier: "DOU", - }, - gardevoir: { - tier: "RU", - doublesTier: "DOU", - }, - gigalith: { - tier: "RU", - doublesTier: "DOU", - }, - girafarig: { - tier: "RU", - doublesTier: "DOU", - }, - glaceon: { - tier: "RU", - doublesTier: "DOU", - }, - glalie: { - tier: "RU", - doublesTier: "DOU", - }, - glaliemega: { - tier: "RU", - doublesTier: "DOU", - }, - glastrier: { - tier: "RU", - doublesTier: "DOU", - }, - gogoat: { - tier: "RU", - doublesTier: "DOU", - }, - golduck: { - tier: "RU", - doublesTier: "DOU", - }, - golem: { - tier: "RU", - doublesTier: "DOU", - }, - golemalola: { - tier: "RU", - doublesTier: "DOU", - }, - golisopod: { - tier: "RU", - doublesTier: "DOU", - }, - golurk: { - tier: "RU", - doublesTier: "DOU", - }, - goodra: { - tier: "UU", - doublesTier: "DOU", - }, - gorebyss: { - tier: "RU", - doublesTier: "DOU", - }, - gothitelle: { - tier: "RU", - doublesTier: "DOU", - }, - gourgeist: { - tier: "RU", - doublesTier: "DOU", - }, - gourgeistsmall: { - tier: "OU", - doublesTier: "DOU", - }, - gourgeistlarge: { - tier: "RU", - doublesTier: "DOU", - }, - gourgeistsuper: { - tier: "RU", - doublesTier: "DOU", - }, - granbull: { - tier: "RU", - doublesTier: "DOU", - }, - grapploct: { - tier: "RU", - doublesTier: "DOU", - }, - greedent: { - tier: "RU", - doublesTier: "DOU", - }, - grimmsnarl: { - tier: "RU", - doublesTier: "DOU", - }, - grumpig: { - tier: "RU", - doublesTier: "DOU", - }, - gumshoos: { - tier: "RU", - doublesTier: "DOU", - }, - guzzlord: { - tier: "UU", - doublesTier: "DOU", - }, - hariyama: { - tier: "UU", - doublesTier: "DOU", - }, - haxorus: { - tier: "UU", - doublesTier: "DOU", - }, - heatmor: { - tier: "RU", - doublesTier: "DOU", - }, - heliolisk: { - tier: "RU", - doublesTier: "DOU", - }, - heracross: { - tier: "RUBL", - doublesTier: "DOU", - }, - hitmonchan: { - tier: "RU", - doublesTier: "DOU", - }, - hitmonlee: { - tier: "RU", - doublesTier: "DOU", - }, - hitmontop: { - tier: "RU", - doublesTier: "DOU", - }, - honchkrow: { - tier: "UU", - doublesTier: "DOU", - }, - hoopa: { - tier: "RU", - doublesTier: "DOU", - }, - houndoommega: { - tier: "OU", - doublesTier: "DOU", - }, - houndoom: { - tier: "RU", - doublesTier: "DOU", - }, - huntail: { - tier: "RU", - doublesTier: "DOU", - }, - hypno: { - tier: "RU", - doublesTier: "DOU", - }, - illumise: { - tier: "RU", - doublesTier: "DOU", - }, - incineroar: { - tier: "RU", - doublesTier: "DOU", - }, - indeedee: { - tier: "RU", - doublesTier: "DOU", - }, - indeedeef: { - tier: "RU", - doublesTier: "DOU", - }, - inteleon: { - tier: "RU", - doublesTier: "DOU", - }, - jellicent: { - tier: "RU", - doublesTier: "DOU", - }, - jolteon: { - tier: "RU", - doublesTier: "DOU", - }, - jumpluff: { - tier: "RU", - doublesTier: "DOU", - }, - jynx: { - tier: "RU", - doublesTier: "DOU", - }, - kabutops: { - tier: "RU", - doublesTier: "DOU", - }, - kangaskhan: { - tier: "RU", - doublesTier: "DOU", - }, - kecleon: { - tier: "RU", - doublesTier: "DOU", - }, - kingdra: { - tier: "RU", - doublesTier: "DOU", - }, - kingler: { - tier: "RU", - doublesTier: "DOU", - }, - klefki: { - tier: "RU", - doublesTier: "DOU", - }, - klinklang: { - tier: "RU", - doublesTier: "DOU", - }, - klang: { - tier: "NFE", - doublesTier: "DOU", - }, - komala: { - tier: "RU", - doublesTier: "DOU", - }, - kricketune: { - tier: "RU", - doublesTier: "DOU", - }, - lanturn: { - tier: "RU", - doublesTier: "DOU", - }, - lapras: { - tier: "RU", - doublesTier: "DOU", - }, - leafeon: { - tier: "RU", - doublesTier: "DOU", - }, - leavanny: { - tier: "RU", - doublesTier: "DOU", - }, - ledian: { - tier: "RU", - doublesTier: "DOU", - }, - lickilicky: { - tier: "RU", - doublesTier: "DOU", - }, - liepard: { - tier: "RU", - doublesTier: "DOU", - }, - lilligant: { - tier: "RU", - doublesTier: "DOU", - }, - linoone: { - tier: "RU", - doublesTier: "DOU", - }, - lopunny: { - tier: "RU", - doublesTier: "DOU", - }, - lucario: { - tier: "RU", - doublesTier: "DOU", - }, - ludicolo: { - tier: "RU", - doublesTier: "DOU", - }, - lumineon: { - tier: "UU", - doublesTier: "DOU", - }, - lunatone: { - tier: "RU", - doublesTier: "DOU", - }, - luvdisc: { - tier: "RU", - doublesTier: "DOU", - }, - luxray: { - tier: "RU", - doublesTier: "DOU", - }, - lycanroc: { - tier: "RU", - doublesTier: "DOU", - }, - lycanrocdusk: { - tier: "UU", - doublesTier: "DOU", - }, - lycanrocmidnight: { - tier: "RU", - doublesTier: "DOU", - }, - machamp: { - tier: "RU", - doublesTier: "DOU", - }, - magcargo: { - tier: "RU", - doublesTier: "DOU", - }, - magmortar: { - tier: "UU", - doublesTier: "DOU", - }, - malamar: { - tier: "RU", - doublesTier: "DOU", - }, - manectric: { - tier: "RU", - doublesTier: "DOU", - }, - mantine: { - tier: "RU", - doublesTier: "DOU", - }, - maractus: { - tier: "RU", - doublesTier: "DOU", - }, - marowak: { - tier: "UU", - doublesTier: "DOU", - }, - marowakalola: { - tier: "RU", - doublesTier: "DOU", - }, - masquerain: { - tier: "RU", - doublesTier: "DOU", - }, - mawile: { - tier: "RU", - doublesTier: "DOU", - }, - medicham: { - tier: "RU", - doublesTier: "DOU", - }, - meganium: { - tier: "RU", - doublesTier: "DOU", - }, - meloetta: { - tier: "UU", - doublesTier: "DOU", - }, - meltan: { - tier: "RU", - doublesTier: "DOU", - }, - meowstic: { - tier: "RU", - doublesTier: "DOU", - }, - meowsticf: { - tier: "RU", - doublesTier: "DOU", - }, - mesprit: { - tier: "UU", - doublesTier: "DOU", - }, - metagross: { - tier: "UU", - doublesTier: "DOU", - }, - mightyena: { - tier: "RU", - doublesTier: "DOU", - }, - milotic: { - tier: "RU", - doublesTier: "DOU", - }, - miltank: { - tier: "RU", - doublesTier: "DOU", - }, - mimikyu: { - tier: "UU", - doublesTier: "DOU", - }, - minior: { - tier: "RU", - doublesTier: "DOU", - }, - minun: { - tier: "RU", - doublesTier: "DOU", - }, - mismagius: { - tier: "RU", - doublesTier: "DOU", - }, - morpeko: { - tier: "RU", - doublesTier: "DOU", - }, - mothim: { - tier: "RU", - doublesTier: "DOU", - }, - mrmime: { - tier: "RU", - doublesTier: "DOU", - }, - mrrime: { - tier: "RU", - doublesTier: "DOU", - }, - mudsdale: { - tier: "RU", - doublesTier: "DOU", - }, - muk: { - tier: "UU", - doublesTier: "DOU", - }, - mukalola: { - tier: "OU", - doublesTier: "DOU", - }, - musharna: { - tier: "RU", - doublesTier: "DOU", - }, - necrozma: { - tier: "RUBL", - doublesTier: "DOU", - }, - ninetales: { - tier: "RU", - doublesTier: "DOU", - }, - ninetalesalola: { - tier: "OU", - doublesTier: "DOU", - }, - ninjask: { - tier: "RU", - doublesTier: "DOU", - }, - noctowl: { - tier: "RU", - doublesTier: "DOU", - }, - noivern: { - tier: "RU", - doublesTier: "DOU", - }, - obstagoon: { - tier: "RUBL", - doublesTier: "DOU", - }, - octillery: { - tier: "RU", - doublesTier: "DOU", - }, - omastar: { - tier: "RU", - doublesTier: "DOU", - }, - oranguru: { - tier: "RU", - doublesTier: "DOU", - }, - orbeetle: { - tier: "RU", - doublesTier: "DOU", - }, - oricorio: { - tier: "RU", - doublesTier: "DOU", - }, - oricoriopau: { - tier: "RU", - doublesTier: "DOU", - }, - oricoriopompom: { - tier: "RU", - doublesTier: "DOU", - }, - oricoriosensu: { - tier: "RU", - doublesTier: "DOU", - }, - pachirisu: { - tier: "RU", - doublesTier: "DOU", - }, - palossand: { - tier: "RU", - doublesTier: "DOU", - }, - pangoro: { - tier: "RU", - doublesTier: "DOU", - }, - parasect: { - tier: "RU", - doublesTier: "DOU", - }, - passimian: { - tier: "RU", - doublesTier: "DOU", - }, - perrserker: { - tier: "RU", - doublesTier: "DOU", - }, - persian: { - tier: "RU", - doublesTier: "DOU", - }, - persianalola: { - tier: "RU", - doublesTier: "DOU", - }, - phione: { - tier: "RU", - doublesTier: "DOU", - }, - pidgeot: { - tier: "RU", - doublesTier: "DOU", - }, - pidgeotmega: { - tier: "UU", - doublesTier: "DOU", - }, - pikachu: { - tier: "RU", - doublesTier: "DOU", - }, - pikachualola: { - tier: "RU", - doublesTier: "DOU", - }, - pikachuhoenn: { - tier: "RU", - doublesTier: "DOU", - }, - pikachukalos: { - tier: "RU", - doublesTier: "DOU", - }, - pikachuoriginal: { - tier: "RU", - doublesTier: "DOU", - }, - pikachupartner: { - tier: "RU", - doublesTier: "DOU", - }, - pikachusinnoh: { - tier: "RU", - doublesTier: "DOU", - }, - pikachuunova: { - tier: "RU", - doublesTier: "DOU", - }, - pikachuworld: { - tier: "RU", - doublesTier: "DOU", - }, - pincurchin: { - tier: "RU", - doublesTier: "DOU", - }, - pinsir: { - tier: "RU", - doublesTier: "DOU", - }, - plusle: { - tier: "RU", - doublesTier: "DOU", - }, - politoed: { - tier: "RU", - doublesTier: "DOU", - }, - poliwrath: { - tier: "RU", - doublesTier: "DOU", - }, - polteageist: { - tier: "UU", - doublesTier: "DOU", - }, - polteageistantique: { - tier: "UU", - doublesTier: "DOU", - }, - porygonz: { - tier: "UU", - doublesTier: "DOU", - }, - primarina: { - tier: "UU", - doublesTier: "DOU", - }, - primeape: { - tier: "RU", - doublesTier: "DOU", - }, - probopass: { - tier: "RU", - doublesTier: "DOU", - }, - purugly: { - tier: "RU", - doublesTier: "DOU", - }, - pyroar: { - tier: "RU", - doublesTier: "DOU", - }, - pyukumuku: { - tier: "UU", - doublesTier: "DOU", - }, - qwilfish: { - tier: "RU", - doublesTier: "DOU", - }, - raichu: { - tier: "RU", - doublesTier: "DOU", - }, - raichualola: { - tier: "RU", - doublesTier: "DOU", - }, - raikou: { - tier: "UU", - doublesTier: "DOU", - }, - rampardos: { - tier: "RU", - doublesTier: "DOU", - }, - ferroseed: { - tier: "RU", - doublesTier: "DOU", - }, - rapidashgalar: { - tier: "RU", - doublesTier: "DOU", - }, - rapidash: { - tier: "RU", - doublesTier: "DOU", - }, - raticate: { - tier: "RU", - doublesTier: "DOU", - }, - raticatealola: { - tier: "RU", - doublesTier: "DOU", - }, - regice: { - tier: "RU", - doublesTier: "DOU", - }, - regidrago: { - tier: "RU", - doublesTier: "DOU", - }, - regigigas: { - tier: "UU", - doublesTier: "DOU", - }, - regirock: { - tier: "RU", - doublesTier: "DOU", - }, - registeel: { - tier: "RU", - doublesTier: "DOU", - }, - reuniclus: { - tier: "UU", - doublesTier: "DOU", - }, - rhyperior: { - tier: "UU", - doublesTier: "DOU", - }, - roserade: { - tier: "RU", - doublesTier: "DOU", - }, - rotom: { - tier: "RU", - doublesTier: "DOU", - }, - rotomfan: { - tier: "RU", - doublesTier: "DOU", - }, - rotommow: { - tier: "UU", - doublesTier: "DOU", - }, - rotomfrost: { - tier: "RU", - doublesTier: "DOU", - }, - runerigus: { - tier: "UU", - doublesTier: "DOU", - }, - salazzle: { - tier: "RU", - doublesTier: "DOU", - }, - samurott: { - tier: "UU", - doublesTier: "DOU", - }, - sandaconda: { - tier: "RU", - doublesTier: "DOU", - }, - sandslash: { - tier: "RU", - doublesTier: "DOU", - }, - sandslashalola: { - tier: "RU", - doublesTier: "DOU", - }, - sawk: { - tier: "RU", - doublesTier: "DOU", - }, - sawsbuck: { - tier: "RU", - doublesTier: "DOU", - }, - sceptile: { - tier: "RU", - doublesTier: "DOU", - }, - sceptilemega: { - tier: "RU", - doublesTier: "DOU", - }, - scolipede: { - tier: "RUBL", - doublesTier: "DOU", - }, - scrafty: { - tier: "RU", - doublesTier: "DOU", - }, - seaking: { - tier: "RU", - doublesTier: "DOU", - }, - seismitoad: { - tier: "RU", - doublesTier: "DOU", - }, - seviper: { - tier: "RU", - doublesTier: "DOU", - }, - sharpedo: { - tier: "RU", - doublesTier: "DOU", - }, - sharpedomega: { - tier: "UU", - doublesTier: "DOU", - }, - shaymin: { - tier: "RU", - doublesTier: "DOU", - }, - shedinja: { - tier: "UU", - doublesTier: "DOU", - }, - shiftry: { - tier: "RU", - doublesTier: "DOU", - }, - shiinotic: { - tier: "RU", - doublesTier: "DOU", - }, - shuckle: { - tier: "RU", - doublesTier: "DOU", - }, - sigilyph: { - tier: "RU", - doublesTier: "DOU", - }, - simipour: { - tier: "RU", - doublesTier: "DOU", - }, - simisage: { - tier: "RU", - doublesTier: "DOU", - }, - simisear: { - tier: "RU", - doublesTier: "DOU", - }, - sirfetchd: { - tier: "RU", - doublesTier: "DOU", - }, - skuntank: { - tier: "RU", - doublesTier: "DOU", - }, - slaking: { - tier: "RU", - doublesTier: "DOU", - }, - slowbrogalar: { - tier: "RUBL", - doublesTier: "DOU", - }, - slurpuff: { - tier: "RU", - doublesTier: "DOU", - }, - smeargle: { - tier: "RU", - doublesTier: "DOU", - }, - snorlax: { - tier: "RU", - doublesTier: "DOU", - }, - solrock: { - tier: "RU", - doublesTier: "DOU", - }, - spinda: { - tier: "RU", - doublesTier: "DOU", - }, - spiritomb: { - tier: "RU", - doublesTier: "DOU", - }, - stakataka: { - tier: "UU", - doublesTier: "DOU", - }, - stantler: { - tier: "RU", - doublesTier: "DOU", - }, - staraptor: { - tier: "RUBL", - doublesTier: "DOU", - }, - starmie: { - tier: "UU", - doublesTier: "DOU", - }, - steelix: { - tier: "RU", - doublesTier: "DOU", - }, - steelixmega: { - tier: "UU", - doublesTier: "DOU", - }, - stonjourner: { - tier: "RU", - doublesTier: "DOU", - }, - stoutland: { - tier: "RU", - doublesTier: "DOU", - }, - stunfisk: { - tier: "RU", - doublesTier: "DOU", - }, - stunfiskgalar: { - tier: "RU", - doublesTier: "DOU", - }, - sudowoodo: { - tier: "RU", - doublesTier: "DOU", - }, - suicune: { - tier: "RU", - doublesTier: "DOU", - }, - sunflora: { - tier: "RU", - doublesTier: "DOU", - }, - swalot: { - tier: "RU", - doublesTier: "DOU", - }, - swanna: { - tier: "RU", - doublesTier: "DOU", - }, - swellow: { - tier: "RU", - doublesTier: "DOU", - }, - swoobat: { - tier: "RU", - doublesTier: "DOU", - }, - sylveon: { - tier: "UU", - doublesTier: "DOU", - }, - tapubulu: { - tier: "UU", - doublesTier: "DOU", - }, - tauros: { - tier: "RU", - doublesTier: "DOU", - }, - tentacruel: { - tier: "UU", - doublesTier: "DOU", - }, - terrakion: { - tier: "UUBL", - doublesTier: "DOU", - }, - thievul: { - tier: "RU", - doublesTier: "DOU", - }, - throh: { - tier: "RU", - doublesTier: "DOU", - }, - togedemaru: { - tier: "UU", - doublesTier: "DOU", - }, - togekiss: { - tier: "RU", - doublesTier: "DOU", - }, - torkoal: { - tier: "UU", - doublesTier: "DOU", - }, - torterra: { - tier: "RU", - doublesTier: "DOU", - }, - toucannon: { - tier: "RU", - doublesTier: "DOU", - }, - toxicroak: { - tier: "RU", - doublesTier: "DOU", - }, - toxtricity: { - tier: "RU", - doublesTier: "DOU", - }, - toxtricitylowkey: { - tier: "RU", - doublesTier: "DOU", - }, - trevenant: { - tier: "RU", - doublesTier: "DOU", - }, - tropius: { - tier: "RU", - doublesTier: "DOU", - }, - tsareena: { - tier: "RU", - doublesTier: "DOU", - }, - turtonator: { - tier: "RU", - doublesTier: "DOU", - }, - typhlosion: { - tier: "UU", - doublesTier: "DOU", - }, - tyrantrum: { - tier: "RU", - doublesTier: "DOU", - }, - unfezant: { - tier: "RU", - doublesTier: "DOU", - }, - unown: { - tier: "RU", - doublesTier: "DOU", - }, - ursaring: { - tier: "RU", - doublesTier: "DOU", - }, - uxie: { - tier: "UU", - doublesTier: "DOU", - }, - vanilluxe: { - tier: "RU", - doublesTier: "DOU", - }, - vaporeon: { - tier: "RU", - doublesTier: "DOU", - }, - venomoth: { - tier: "RUBL", - doublesTier: "DOU", - }, - venusaur: { - tier: "UU", - doublesTier: "DOU", - }, - vespiquen: { - tier: "RU", - doublesTier: "DOU", - }, - victreebel: { - tier: "RU", - doublesTier: "DOU", - }, - vikavolt: { - tier: "RU", - doublesTier: "DOU", - }, - vileplume: { - tier: "RU", - doublesTier: "DOU", - }, - virizion: { - tier: "RU", - doublesTier: "DOU", - }, - vivillon: { - tier: "RU", - doublesTier: "DOU", - }, - volbeat: { - tier: "RU", - doublesTier: "DOU", - }, - volcanion: { - tier: "OU", - doublesTier: "DOU", - }, - wailord: { - tier: "RU", - doublesTier: "DOU", - }, - vivillonfancy: { - tier: "RU", - doublesTier: "DOU", - }, - vivillonpokeball: { - tier: "RU", - doublesTier: "DOU", - }, - walrein: { - tier: "RU", - doublesTier: "DOU", - }, - watchog: { - tier: "RU", - doublesTier: "DOU", - }, - weezing: { - tier: "RU", - doublesTier: "DOU", - }, - weezinggalar: { - tier: "RU", - doublesTier: "DOU", - }, - whimsicott: { - tier: "RU", - doublesTier: "DOU", - }, - whiscash: { - tier: "RU", - doublesTier: "DOU", - }, - wigglytuff: { - tier: "RU", - doublesTier: "DOU", - }, - wishiwashi: { - tier: "OU", - doublesTier: "DOU", - }, - wormadam: { - tier: "RU", - doublesTier: "DOU", - }, - wormadamsandy: { - tier: "UU", - doublesTier: "DOU", - }, - wormadamtrash: { - tier: "RU", - doublesTier: "DOU", - }, - xatu: { - tier: "RU", - doublesTier: "DOU", - }, - yanmega: { - tier: "RU", - doublesTier: "DOU", - }, - zangoose: { - tier: "RU", - doublesTier: "DOU", - }, - zarude: { - tier: "UU", - doublesTier: "DOU", - }, - zarudedada: { - tier: "OU", - doublesTier: "DOU", - }, - zeraora: { - tier: "OU", - doublesTier: "DOU", - }, - zoroark: { - tier: "RU", - doublesTier: "DOU", - }, - zygarde10: { - tier: "UU", - doublesTier: "DOU", - }, - porygon2: { - tier: "RU", - doublesTier: "DOU", - }, - crawdaunt: { - tier: "UU", - doublesTier: "DOU", - }, - cresselia: { - tier: "OU", - doublesTier: "DOU", - }, - doublade: { - tier: "UU", - doublesTier: "DOU", - }, - magneton: { - tier: "UU", - doublesTier: "DOU", - }, - scyther: { - tier: "RU", - doublesTier: "DOU", - }, - beartic: { - tier: "RU", - doublesTier: "DOU", - }, - cradily: { - tier: "RU", - doublesTier: "DOU", - }, - cramorant: { - tier: "RU", - doublesTier: "DOU", - }, - crustle: { - tier: "RU", - doublesTier: "DOU", - }, - cryogonal: { - tier: "RU", - doublesTier: "DOU", - }, - lurantis: { - tier: "RU", - doublesTier: "DOU", - }, - relicanth: { - tier: "RU", - doublesTier: "DOU", - }, - wobbuffet: { - tier: "RU", - doublesTier: "DOU", - }, - sandshrewalola: { - tier: "LC", - doublesTier: "DOU", - }, - zebstrika: { - tier: "RU", - doublesTier: "DOU", - }, - clamperl: { - tier: "LC", - doublesTier: "DOU", - }, - sableyemega: { - tier: "UUBL", - doublesTier: "DOU", - }, - sneasel: { - tier: "RU", - doublesTier: "DOU", - }, - crobat: { - tier: "RU", - doublesTier: "DOU", - }, -}; diff --git a/data/mods/gen8joltemons/items.ts b/data/mods/gen8joltemons/items.ts deleted file mode 100644 index ee9a75725725..000000000000 --- a/data/mods/gen8joltemons/items.ts +++ /dev/null @@ -1,833 +0,0 @@ -export const Items: {[itemid: string]: ModdedItemData} = { - boomerang: { - name: "Boomerang", - fling: { - basePower: 120, - }, - num: -1001, - gen: 8, - desc: "Comes back to the user when flung.", - }, - momentumarmor: { - name: "Momentum Armor", - fling: { - basePower: 80, - }, - onModifyAtkPriority: 1, - onModifyAtk(atk, pokemon) { - const def = pokemon.getStat('def', false, true); - const newAtk = atk + (def / 4); - return newAtk; - }, - num: -1002, - gen: 8, - desc: "Boosts the user's Attack by 25% of its Defense.", - }, - shellbell: { - name: "Shell Bell", - spritenum: 438, - fling: { - basePower: 40, - }, - onAfterMoveSecondarySelfPriority: -1, - onAfterMoveSecondarySelf(pokemon, target, move) { - if (move.category !== 'Status') { - this.heal(pokemon.baseMaxhp / 8); - } - }, - num: 253, - gen: 3, - desc: "The holder heals 12.5% of their max HP upon successfully damaging a Pokemon with an attack.", - }, - honey: { - name: "Honey", - fling: { - basePower: 30, - }, - num: -1003, - gen: 4, - shortDesc: "Pokemon with the ability Honey Gather or Sweet Veil heal 12.5% when holding this item.", - }, - eviolith: { - name: "Eviolith", - spritenum: 130, - fling: { - basePower: 40, - }, - onModifyAtkPriority: 2, - onModifyAtk(atk, pokemon) { - if (pokemon.baseSpecies.nfe) { - return this.chainModify(1.5); - } - }, - onModifySpAPriority: 2, - onModifySpA(spa, pokemon) { - if (pokemon.baseSpecies.nfe) { - return this.chainModify(1.5); - } - }, - num: -1004, - gen: 8, - desc: "If holder's species can evolve, its Atk and Sp. Atk are 1.5x.", - }, - reliccharm: { - name: "Relic Charm", - spritenum: 390, - onSwitchIn(pokemon) { - if (pokemon.isActive && pokemon.baseSpecies.name === 'Meloetta') { - pokemon.formeChange('Meloetta-Pirouette'); - } - }, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fighting') { - return this.chainModify([0x1333, 0x1000]); - } - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Meloetta') return false; - return true; - }, - itemUser: ["Meloetta"], - num: -1005, - gen: 8, - desc: "If held by Meloetta: Pirouette Forme on entry, 1.2x power Fighting-type attacks.", - }, - chillpill: { - name: "Chill Pill", - spritenum: 390, - onStart(pokemon) { - if (pokemon.isActive && pokemon.baseSpecies.name === 'Darmanitan') { - if (!pokemon.species.name.includes('Galar')) { - if (pokemon.species.id !== 'darmanitanzen') pokemon.formeChange('Darmanitan-Zen'); - pokemon.setAbility('psychicsurge', pokemon, true); - } else { - if (pokemon.species.id !== 'darmanitangalarzen') pokemon.formeChange('Darmanitan-Galar-Zen'); - pokemon.setAbility('snowwarning', pokemon, true); - } - } - }, - onBasePower(basePower, user, target, move) { - if (move && ( - (user.species.id === 'darmanitanzen' && move.type === 'Psychic') || - (user.species.id === 'darmanitangalarzen') && (move.type === 'Fire') - )) { - return this.chainModify([0x1333, 0x1000]); - } - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Darmanitan') return false; - return true; - }, - itemUser: ["Darmanitan"], - num: -1006, - gen: 8, - desc: "If held by Darmanitan: Zen Mode and Psychic Terrain on entry, 1.2x power Psychic-type attacks.", - }, - chillpillg: { - name: "Chill Pill G", - spritenum: 390, - onStart(pokemon) { - this.add('-item', pokemon, 'Chill Pill'); - if (pokemon.baseSpecies.baseSpecies === 'Darmanitan' && pokemon.species.name.includes('Galar')) { - this.add('-formechange', pokemon, 'Darmanitan-Galar-Zen', '[msg]'); - pokemon.formeChange("Darmanitan-Galar-Zen"); - const oldAbility = pokemon.setAbility('snowwarning', pokemon, true); - if (oldAbility) { - this.add('-activate', pokemon, 'ability: Snow Warning', oldAbility, '[of] ' + pokemon); - } - } - }, - onBasePower(basePower, user, target, move) { - if (move && user.species.id === 'darmanitangalarzen' && move.type === 'Fire') { - return this.chainModify([0x1333, 0x1000]); - } - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Darmanitan') return false; - return true; - }, - itemUser: ["Darmanitan-Galar"], - num: -1006, - gen: 8, - desc: "If held by Darmanitan: Zen Mode and Hail on entry, 1.2x power Fire-type attacks.", - }, - graduationscale: { - name: "Graduation Scale", - onStart(pokemon) { - pokemon.setAbility('intimidate', pokemon, true); - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Wishiwashi') return false; - return true; - }, - fling: { - basePower: 20, - }, - onBasePowerPriority: 6, - onBasePower(basePower, user, target, move) { - if (move && user.baseSpecies.num === 746 && move.type === 'Water') { - return this.chainModify([0x1333, 0x1000]); - } - }, - gen: 7, - desc: "If holder is a Wishiwashi, it becomes School Form. Its ability becomes Intimidate. Water moves are boosted by 1.2x", - }, - blunderpolicy: { - name: "Blunder Policy", - spritenum: 716, - fling: { - basePower: 80, - }, - onUpdate(pokemon) { - if (pokemon.moveThisTurnResult === false) { - this.boost({spe: 2}); - pokemon.useItem(); - } - }, - // Item activation located in scripts.js - num: 1121, - gen: 8, - desc: "+2 Speed if the holder's move fails. Single use.", - }, - lightball: { - name: "Light Ball", - spritenum: 251, - fling: { - basePower: 30, - status: 'par', - }, - onModifyAtkPriority: 1, - onModifyAtk(atk, pokemon) { - if (['Pikachu', 'Raichu', 'Togedemaru', 'Morpeko'].includes((pokemon.baseSpecies.baseSpecies))) { - return this.chainModify(1.5); - } - }, - onModifyDefPriority: 1, - onModifyDef(def, pokemon) { - if (['Emolga', 'Dedenne', 'Togedemaru', 'Pachirisu'].includes(pokemon.baseSpecies.baseSpecies)) { - return this.chainModify(1.5); - } - }, - onModifySpAPriority: 1, - onModifySpA(spa, pokemon) { - if (['Pikachu', 'Raichu', 'Raichu-Alola', 'Plusle', 'Dedenne'].includes(pokemon.baseSpecies.baseSpecies)) { - return this.chainModify(1.5); - } - }, - onModifySpDPriority: 1, - onModifySpD(spd, pokemon) { - if (['Plusle', 'Minun', 'Pachirisu', 'Morpeko'].includes(pokemon.baseSpecies.baseSpecies)) { - return this.chainModify(1.5); - } - }, - onModifySpePriority: 1, - onModifySpe(spe, pokemon) { - if (['Pikachu', 'Minun', 'Emolga'].includes(pokemon.baseSpecies.baseSpecies)) { - return this.chainModify(1.5); - } - }, - itemUser: ["Pikachu", "Raichu", "Plusle", "Minun", "Emolga", "Morpeko", "Dedenne", "Togedemaru"], - num: 236, - gen: 2, - desc: "If held by Pikachu, Raichu, or a Pikaclone, 2 of its stats are boosted 1.5x.", - }, - /* - soulblade: { - name: "Soul Blade", - spritenum: 297, - fling: { - basePower: 100, - }, - onModifyDamage(damage, source, target, move) { - return this.chainModify([0x1199, 0x1000]); - }, - gen: 8, - desc: "(Non-functional placeholder) The holder's moves deal 1.1x damage + .2x for every KO it has.", - }, - */ - mentalherb: { - name: "Mental Herb", - spritenum: 285, - fling: { - basePower: 10, - effect(pokemon) { - const conditions = ['attract', 'taunt', 'encore', 'torment', 'disable', 'healblock', 'trashtalk']; - for (const firstCondition of conditions) { - if (pokemon.volatiles[firstCondition]) { - for (const secondCondition of conditions) { - pokemon.removeVolatile(secondCondition); - if (firstCondition === 'attract' && secondCondition === 'attract') { - this.add('-end', pokemon, 'move: Attract', '[from] item: Mental Herb'); - } - } - return; - } - } - }, - }, - onUpdate(pokemon) { - const conditions = ['attract', 'taunt', 'encore', 'torment', 'disable', 'healblock', 'trashtalk']; - for (const firstCondition of conditions) { - if (pokemon.volatiles[firstCondition]) { - if (!pokemon.useItem()) return; - for (const secondCondition of conditions) { - pokemon.removeVolatile(secondCondition); - if (firstCondition === 'attract' && secondCondition === 'attract') { - this.add('-end', pokemon, 'move: Attract', '[from] item: Mental Herb'); - } - } - return; - } - } - }, - num: 219, - gen: 3, - }, - morningblossom: { - name: "Morning Blossom", - spritenum: 297, - fling: { - basePower: 10, - }, - onSwitchIn(pokemon) { - if (pokemon.isActive && pokemon.baseSpecies.name === 'Cherrim') { - this.field.setWeather('desolateland'); - } - }, - onSwitchOut(pokemon) { - this.field.clearWeather(); - }, - onFaint(pokemon) { - this.field.clearWeather(); - }, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Grass') { - return this.chainModify([0x1333, 0x1000]); - } - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Cherrim') return false; - return true; - }, - onUpdate(pokemon) { - if (pokemon.volatiles['embargo']) { - this.add('-activate', pokemon, 'item: Morning Blossom'); - pokemon.removeVolatile('embargo'); - // Taunt's volatile already sends the -end message when removed - } - }, - onTryHit(pokemon, target, move) { - if (move.id === 'embargo') { - this.add('-immune', pokemon, '[from] item: Morning Blossom'); - return null; - } - }, - itemUser: ["Cherrim"], - gen: 8, - desc: "If held by Cherrim: Desolate Land on entry, 1.2x power Grass-type attacks.", - }, - absorbbulb: { - name: "Absorb Bulb", - spritenum: 2, - fling: { - basePower: 30, - }, - onDamagingHit(damage, target, source, move) { - if (move.type === 'Water') { - target.useItem(); - } - }, - boosts: { - def: 1, - spa: 1, - spd: 1, - }, - num: 545, - gen: 5, - desc: "Raises holder's Def, SpA, & SpD by 1 stage if hit by a Water-type attack. Single use.", - }, - cellbattery: { - name: "Cell Battery", - spritenum: 60, - fling: { - basePower: 30, - }, - onDamagingHit(damage, target, source, move) { - if (move.type === 'Electric') { - target.useItem(); - } - }, - boosts: { - atk: 1, - spe: 1, - accuracy: 1, - }, - num: 546, - gen: 5, - desc: "Raises holder's Atk, Spe, & Acc by 1 stage if hit by an Electric-type attack. Single use.", - }, - luminousmoss: { - name: "Luminous Moss", - spritenum: 595, - fling: { - basePower: 30, - }, - onDamagingHit(damage, target, source, move) { - if (move.type === 'Grass') { - target.useItem(); - } - }, - boosts: { - spa: 2, - spd: 2, - }, - num: 648, - gen: 6, - desc: "Raises holder's SpA & SpD by 2 stages if hit by a Grass-type attack. Single use.", - }, - snowball: { - name: "Snowball", - spritenum: 606, - fling: { - basePower: 30, - }, - onDamagingHit(damage, target, source, move) { - if (move.type === 'Ice') { - target.useItem(); - } - }, - boosts: { - atk: 2, - def: 2, - }, - num: 649, - gen: 6, - desc: "Raises holder's Atk & Def by 2 stages if hit by an Ice-type attack. Single use.", - }, - coalengine: { - name: "Coal Engine", - spritenum: 297, - fling: { - basePower: 60, - }, - onStart(pokemon) { - if (pokemon.side.getSideCondition('stealthrock') && !pokemon.ignoringItem()) { - pokemon.useItem(); - this.boost({spe: 1}, pokemon); - } - }, - gen: 8, - desc: "If Stealth Rock is on the field, damage is ignored, and the user's Speed is raised by 1. Single use.", - }, - tartapple: { - name: "Tart Apple", - spritenum: 712, - fling: { - basePower: 20, - }, - onModifySpe(spe, pokemon) { - if (pokemon.baseSpecies.baseSpecies === 'Flapple') { - return this.chainModify(1.5); - } - }, - onStart(pokemon) { - if (pokemon.baseSpecies.baseSpecies === 'Flapple') { - this.boost({accuracy: 2}); - } - }, - itemUser: ["Flapple"], - num: 1117, - gen: 8, - desc: "If the holder is Flapple: 1.5x Speed and +2 Accuracy.", - }, - sweetapple: { - name: "Sweet Apple", - spritenum: 711, - fling: { - basePower: 20, - }, - onResidualOrder: 5, - onResidualSubOrder: 5, - onResidual(pokemon) { - if (pokemon.baseSpecies.name === 'Appletun') { - this.heal(pokemon.baseMaxhp / 8); - } - }, - onSourceModifyAtkPriority: 6, - onSourceModifyAtk(atk, attacker, defender, move) { - if (move.type === 'Poison') { - this.debug('Sweet Apple weaken'); - return this.chainModify(0.5); - } - }, - onSourceModifySpAPriority: 5, - onSourceModifySpA(atk, attacker, defender, move) { - if (move.type === 'Poison') { - this.debug('Sweet Apple weaken'); - return this.chainModify(0.5); - } - }, - onDamage(damage, target, source, effect) { - if (effect && (effect.id === 'tox' || effect.id === 'psn')) { - return damage / 2; - } - }, - num: 1116, - gen: 8, - desc: "If the holder is Appletun: Heals 12.5% HP every turn and takes 50% damage from Poison moves and poison status.", - }, - protector: { - name: "Protector", - spritenum: 367, - fling: { - basePower: 100, - }, - onSourceModifyDamage(damage, source, target, move) { - if (target.getMoveHitData(move).typeMod > 0 && !target.hasAbility('solidrock') && !target.hasAbility('filter')) { - this.debug('Protector neutralize'); - return this.chainModify(0.75); - } - }, - num: 321, - gen: 4, - desc: "Super effective attacks deal 3/4 damage to the holder.", - }, - powerherb: { - onChargeMove(pokemon, target, move) { - if (pokemon.useItem()) { - this.debug('power herb - remove charge turn for ' + move.id); - this.attrLastMove('[still]'); - this.addMove('-anim', pokemon, move.name, target); - return false; // skip charge turn - } - }, - onUpdate(pokemon) { - if (pokemon.volatiles['mustrecharge']) { - pokemon.removeVolatile('mustrecharge'); - pokemon.useItem(); - } - }, - name: "Power Herb", - spritenum: 358, - fling: { - basePower: 10, - }, - num: 271, - gen: 4, - desc: "Holder's two-turn moves and recharge complete in one turn (except Sky Drop). Single use.", - }, - pillow: { - name: "Pillow", - spritenum: 242, - fling: { - basePower: 10, - // status: 'slp', Fixed - }, - onResidualOrder: 5, - onResidualSubOrder: 5, - onResidual(pokemon) { - if (pokemon.status === 'slp' || pokemon.hasAbility('comatose')) { - this.heal(pokemon.baseMaxhp / 8); - } - }, - /* - onStart(pokemon) { - if (pokemon.status === 'slp' || pokemon.hasAbility('comatose')) { - pokemon.addVolatile('pillow'); - } - }, - condition: { - onTryMovePriority: -2, - onTryMove(pokemon, target, move) { - if (!pokemon.hasItem('pillow') || (pokemon.status !== 'slp' && !pokemon.hasAbility('comatose'))) { - pokemon.removeVolatile('pillow'); - return; - } - if (pokemon.status === 'slp' || pokemon.hasAbility('comatose')) { - this.useMove("Sleep Talk", pokemon); - } - }, - }, - */ - gen: 8, - desc: "(Bugged) Holder heals 12.5% HP while asleep. If asleep, calls a random attack.", - }, - reapercloth: { - name: "Reaper Cloth", - spritenum: 385, - fling: { - basePower: 100, - }, - onResidualOrder: 5, - onResidualSubOrder: 5, - onResidual(pokemon) { - if (pokemon.hasType('Ghost')) { - this.heal(pokemon.baseMaxhp / 16); - } - }, - onDisableMove(pokemon) { - if (!pokemon.hasType('Ghost') && pokemon.lastMove && pokemon.lastMove.id !== 'struggle') { - pokemon.disableMove(pokemon.lastMove.id); - } - }, - onTakeItem(item, source) { - if (source.hasType('Ghost')) return false; - return true; - }, - num: 325, - gen: 4, - desc: "Each turn, if holder is a Ghost type, restores 1/16 max HP; is Tormented if not.", - }, - chilipepper: { - name: "Chili Pepper", - spritenum: 13, - fling: { - basePower: 10, - status: 'brn', - }, - onSetStatus(status, target, source, effect) { - if (status.id !== 'brn') return; - if ((effect as Move)?.status) { - this.add('-immune', target, '[from] item: Chili Pepper'); - } - return false; - }, - onUpdate(pokemon) { - if (pokemon.status === 'frz') { - this.add('-activate', pokemon, 'item: Chili Pepper'); - pokemon.cureStatus(); - pokemon.useItem(); - } - }, - desc: "The holder is immune to burns. Thaws the user and is consumed if the holder is frozen.", - }, - widelens: { - name: "Wide Lens", - spritenum: 537, - fling: { - basePower: 10, - }, - onSourceModifyAccuracyPriority: 4, - onSourceModifyAccuracy(accuracy) { - if (typeof accuracy === 'number') { - return accuracy * 1.2; - } - }, - num: 265, - gen: 4, - desc: "The accuracy of attacks by the holder is 1.2x.", - }, - zoomlens: { - name: "Zoom Lens", - spritenum: 574, - fling: { - basePower: 10, - }, - onSourceModifyAccuracyPriority: 4, - onSourceModifyAccuracy(accuracy, target) { - if (typeof accuracy === 'number' && (!this.queue.willMove(target) || target.newlySwitched)) { - this.debug('Zoom Lens boosting accuracy'); - return accuracy * 1.5; - } - }, - num: 276, - gen: 4, - desc: "The accuracy of attacks by the holder is 1.5x if it moves lasts or the foe switches.", - }, - whippeddream: { - name: "Whipped Dream", - spritenum: 692, - fling: { - basePower: 30, - }, - onBasePowerPriority: 15, - onBasePower(basePower, user, target, move) { - if (move && move.type === 'Fairy') { - return this.chainModify([0x1333, 0x1000]); - } - }, - num: 646, - gen: 6, - desc: "Holder's Fairy-type attacks have 1.2x power.", - }, - ironball: { - name: "Iron Ball", - spritenum: 224, - fling: { - basePower: 130, - }, - onEffectiveness(typeMod, target, type, move) { - if (!target) return; - if (target.volatiles['ingrain'] || target.volatiles['smackdown'] || this.field.getPseudoWeather('gravity')) return; - if (move.type === 'Ground' && target.hasType('Flying')) return 0; - }, - // airborneness negation implemented in sim/pokemon.js:Pokemon#isGrounded - num: 278, - gen: 4, - desc: "Holder's use of Gravity lasts 8 turns instead of 5. Grounds holder.", - }, - cursedbelt: { - name: "Cursed Belt", - spritenum: 13, - fling: { - basePower: 10, - }, - onAfterMoveSecondarySelf(target, source, move) { - if (move.category === 'Status') { - target.addVolatile('disable'); - } - }, - onModifyDamage(damage, source, target, move) { - if (source.volatiles['disable']) { - return this.chainModify(1.2); - } - }, - desc: "When the holder uses a status move, it is disabled. Moves deal 1.2x damage while a move is disabled.", - }, - utilityumbrella: { - name: "Utility Umbrella", - spritenum: 718, - fling: { - basePower: 60, - }, - onImmunity(type, pokemon) { - if (type === 'sandstorm' || type === 'hail') return false; - }, - onWeather(target, source, effect) { - if (this.field.isWeather(['sunnyday', 'desolateland', 'hail', 'raindance', 'primordialsea', 'sandstorm'])) { - this.heal(target.baseMaxhp / 12); - } - }, - // Other effects implemented in statuses.js, moves.js, and abilities.js - num: 1123, - gen: 8, - desc: "The holder ignores rain- and sun-based effects & weather damage. Heals 1/12 of its max HP in weather.", - }, - nightlightball: { - name: "Nightlight Ball", - spritenum: 251, - fling: { - basePower: 90, - status: 'brn', - }, - onStart(pokemon) { - this.add('-item', pokemon, 'Nightlight Ball'); - this.add('-message', `Mimikyu's Nightlight Ball has a sinister sheen!`); - }, - onModifyAtkPriority: 1, - onModifyAtk(atk, pokemon) { - if (pokemon.baseSpecies.baseSpecies === 'Mimikyu') { - return this.chainModify(1.3); - } - }, - onModifyDefPriority: 1, - onModifyDef(def, pokemon) { - if (pokemon.baseSpecies.baseSpecies === 'Mimikyu') { - return this.chainModify(1.3); - } - }, - onTryHit(target, source, move) { - if (target !== source && move.type === 'Electric' && target.baseSpecies.baseSpecies === 'Mimikyu') { - if (!this.heal(target.baseMaxhp / 4)) { - this.add('-immune', target, '[from] item: Nightlight Ball'); - } - return null; - } - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Mimikyu') return false; - return true; - }, - itemUser: ["Mimikyu"], - desc: "If held by Mimikyu: 1.3x Atk and Def, Heals 1/4 of its max HP when hit by Electric moves.", - }, - seawaterbead: { - name: "Seawater Bead", - spritenum: 251, - fling: { - basePower: 30, - }, - onModifyDefPriority: 2, - onModifyDef(def, pokemon) { - if (pokemon.baseSpecies.baseSpecies === 'Phione') { - return this.chainModify(1.5); - } - }, - onModifySpDPriority: 2, - onModifySpD(spd, pokemon) { - if (pokemon.baseSpecies.baseSpecies === 'Phione') { - return this.chainModify(1.5); - } - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Phione') return false; - return true; - }, - itemUser: ["Phione"], - desc: "If held by Phione: 1.5x Defense & Special Defense.", - }, - sacredropes: { - name: "Sacred Ropes", - spritenum: 251, - fling: { - basePower: 130, - }, - onStart(pokemon) { - this.add('-item', pokemon, 'Sacred Ropes'); - this.add('-message', `Regigigas is adorned with continent-towing ropes!`); - }, - onSwitchIn(pokemon) { - if (pokemon.isActive && pokemon.baseSpecies.baseSpecies === 'Regigigas') { - const oldAbility = pokemon.setAbility('thickfat', pokemon, true); - if (oldAbility) { - this.add('-activate', pokemon, 'ability: Thick Fat', oldAbility, '[of] ' + pokemon); - } - } - }, - onSourceModifyAtkPriority: 6, - onSourceModifyAtk(atk, attacker, defender, move) { - if ((move.type === 'Fighting' || move.type === 'Rock') && - defender.baseSpecies.baseSpecies === 'Regigigas') { - this.debug('Sacred Ropes weaken'); - return this.chainModify(0.75); - } - }, - onSourceModifySpAPriority: 5, - onSourceModifySpA(atk, attacker, defender, move) { - if ((move.type === 'Fighting' || move.type === 'Rock') && - defender.baseSpecies.baseSpecies === 'Regigigas') { - this.debug('Sacred Ropes weaken'); - return this.chainModify(0.75); - } - }, - onTakeItem(item, source) { - if (source.baseSpecies.baseSpecies === 'Regigigas') return false; - return true; - }, - itemUser: ["Regigigas"], - desc: "If held by Regigigas: Ability becomes Thick Fat, takes 0.75x damage from Fighting and Rock moves.", - }, - // soul blades - soulblade: { - name: "Soul Blade", - spritenum: 297, - fling: { - basePower: 100, - }, - onModifyDamage(damage, source, target, move) { - const soulBladePower = [[0x1199, 0x1000], [0x14CC, 0x1000], 1.5, 1.7, 1.9, 2.1]; - const soulBladeLevel = source.m.soulBladeLevel || 1; - return this.chainModify(soulBladePower[soulBladeLevel - 1]); - }, - onSourceAfterFaint(length, target, source, effect) { - if (effect && effect.effectType === 'Move') { - if (!source.m.soulBladeLevel) source.m.soulBladeLevel = 1; - if (source.m.soulBladeLevel < 6) this.add('-activate', source, 'item: Soul Blade'); - source.m.soulBladeLevel += 1; - if (source.m.soulBladeLevel > 6) source.m.soulBladeLevel = 6; - } - }, - gen: 8, - desc: "The holder's moves deal 1.1x damage + .2x for every KO it has.", - }, -}; diff --git a/data/mods/gen8joltemons/learnsets.ts b/data/mods/gen8joltemons/learnsets.ts deleted file mode 100644 index bbc2b6eb4f89..000000000000 --- a/data/mods/gen8joltemons/learnsets.ts +++ /dev/null @@ -1,170 +0,0 @@ -/* eslint-disable max-len */ - -export const Learnsets: {[k: string]: LearnsetData} = { - articunogalar: { - learnset: { - agility: ["8M", "8L20"], - airslash: ["8M"], - allyswitch: ["8M"], - ancientpower: ["8L25"], - bravebird: ["8M"], - calmmind: ["8M"], - confusion: ["8L5"], - dreameater: ["8L50"], - dualwingbeat: ["8T"], - endure: ["8M"], - expandingforce: ["8T"], - facade: ["8M"], - fly: ["8M"], - freezingglare: ["8L45", "8S0", "8S1"], - futuresight: ["8M", "8L65"], - gigaimpact: ["8M"], - guardswap: ["8M"], - gust: ["8L1"], - hurricane: ["8M", "8L55", "8S0", "8S1"], - hyperbeam: ["8M"], - hypervoice: ["8M"], - hypnosis: ["8L15"], - imprison: ["8M"], - lightscreen: ["8M"], - mindreader: ["8L60"], - powerswap: ["8M"], - protect: ["8M"], - psychic: ["8M"], - psychocut: ["8M", "8L35", "8S0", "8S1"], - psychoshift: ["8L1", "8S0", "8S1"], - psyshock: ["8M"], - recover: ["8L40"], - reflect: ["8M", "8L10"], - rest: ["8M"], - round: ["8M"], - scaryface: ["8M"], - shadowball: ["8M"], - skillswap: ["8M"], - sleeptalk: ["8M"], - snore: ["8M"], - steelwing: ["8M"], - storedpower: ["8M"], - substitute: ["8M"], - swift: ["8M"], - tailwind: ["8L30"], - trickroom: ["8M", "8L70"], - uturn: ["8M"], - }, - eventData: [ - {generation: 8, level: 70, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"]}, - {generation: 8, level: 70, shiny: true, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"], pokeball: "cherishball"}, - ], - eventOnly: true, - }, - zapdosgalar: { - learnset: { - acrobatics: ["8M"], - agility: ["8M", "8L20"], - ancientpower: ["8L25"], - assurance: ["8M"], - blazekick: ["8M"], - bounce: ["8M"], - bravebird: ["8M"], - brickbreak: ["8M", "8L30"], - bulkup: ["8M", "8L50"], - closecombat: ["8M", "8L65"], - coaching: ["8T"], - counter: ["8L55"], - detect: ["8L60"], - drillpeck: ["8L35", "8S0", "8S1"], - dualwingbeat: ["8T"], - endure: ["8M"], - facade: ["8M"], - fly: ["8M"], - focusenergy: ["8M", "8L1", "8S0", "8S1"], - gigaimpact: ["8M"], - hurricane: ["8M"], - hyperbeam: ["8M"], - lightscreen: ["8M", "8L10"], - lowkick: ["8M"], - lowsweep: ["8M"], - megakick: ["8M"], - payback: ["8M"], - peck: ["8L1"], - pluck: ["8L15"], - protect: ["8M"], - quickguard: ["8L40"], - rest: ["8M"], - retaliate: ["8M"], - revenge: ["8M"], - reversal: ["8M", "8L70", "8S0", "8S1"], - rocksmash: ["8L5"], - round: ["8M"], - scaryface: ["8M"], - screech: ["8M"], - sleeptalk: ["8M"], - snore: ["8M"], - steelwing: ["8M"], - stompingtantrum: ["8M"], - substitute: ["8M"], - superpower: ["8M"], - swift: ["8M"], - taunt: ["8M"], - throatchop: ["8M"], - thunderouskick: ["8L45", "8S0", "8S1"], - uturn: ["8M"], - }, - eventData: [ - {generation: 8, level: 70, moves: ["thunderouskick", "drillpeck", "reversal", "focusenergy"]}, - {generation: 8, level: 70, shiny: true, moves: ["thunderouskick", "drillpeck", "reversal", "focusenergy"], pokeball: "cherishball"}, - ], - eventOnly: true, - }, - moltresgalar: { - learnset: { - afteryou: ["8L40"], - agility: ["8M", "8L20"], - airslash: ["8M", "8L35"], - ancientpower: ["8L25"], - assurance: ["8M"], - bravebird: ["8M"], - darkpulse: ["8M"], - dualwingbeat: ["8T"], - endure: ["8M", "8L60"], - facade: ["8M"], - fierywrath: ["8L45", "8S0", "8S1"], - fly: ["8M"], - foulplay: ["8M"], - gigaimpact: ["8M"], - gust: ["8L1"], - hex: ["8M"], - hurricane: ["8M", "8L55", "8S0", "8S1"], - hyperbeam: ["8M"], - hypervoice: ["8M"], - imprison: ["8M"], - lashout: ["8T"], - leer: ["8L1"], - memento: ["8L65"], - nastyplot: ["8M", "8L50", "8S0", "8S1"], - payback: ["8M", "8L5"], - protect: ["8M"], - rest: ["8M"], - round: ["8M"], - safeguard: ["8M", "8L10"], - scaryface: ["8M"], - shadowball: ["8M"], - skyattack: ["8L70"], - sleeptalk: ["8M"], - snarl: ["8M"], - snore: ["8M"], - steelwing: ["8M"], - substitute: ["8M"], - suckerpunch: ["8L30", "8S0", "8S1"], - swift: ["8M"], - taunt: ["8M"], - uturn: ["8M"], - wingattack: ["8L15"], - }, - eventData: [ - {generation: 8, level: 70, moves: ["fierywrath", "hurricane", "suckerpunch", "nastyplot"]}, - {generation: 8, level: 70, shiny: true, moves: ["fierywrath", "hurricane", "suckerpunch", "nastyplot"], pokeball: "cherishball"}, - ], - eventOnly: true, - }, -}; diff --git a/data/mods/gen8joltemons/moves.ts b/data/mods/gen8joltemons/moves.ts deleted file mode 100644 index c7b14b08b1cc..000000000000 --- a/data/mods/gen8joltemons/moves.ts +++ /dev/null @@ -1,1490 +0,0 @@ -export const Moves: {[k: string]: ModdedMoveData} = { - toxicthread: { - num: 672, - accuracy: 100, - basePower: 0, - category: "Status", - shortDesc: "Badly poisons and lowers the target's Speed by 2", - name: "Toxic Thread", - pp: 20, - priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, - status: 'tox', - boosts: { - spe: -2, - }, - secondary: null, - target: "normal", - type: "Poison", - zMove: {boost: {spe: 1}}, - contestType: "Tough", - }, - meltingpoint: { - accuracy: 100, - basePower: 80, - category: "Special", - shortDesc: "Replaces the user's Ice-type with Water. 1.5x power when used by Ice-types. Soaks foe.", - name: "Melting Point", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Scald", target); - this.add('-anim', source, "Acid Armor", target); - }, - onBasePower(basePower, pokemon, target) { - if (pokemon.hasType('Ice')) { - return this.chainModify(1.5); - } - }, - onHit(target) { - if (target.getTypes().join() === 'Water' || !target.setType('Water')) { - // Soak should animate even when it fails. - // Returning false would suppress the animation. - this.add('-fail', target); - return null; - } - this.add('-start', target, 'typechange', 'Water'); - }, - self: { - onHit(pokemon) { - if (pokemon.hasType('Water')) { - pokemon.setType(pokemon.getTypes(true).map(type => type === "Ice" ? "???" : type)); - this.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[from] move: Melting Point'); - } else { - pokemon.setType(pokemon.getTypes(true).map(type => type === "Ice" ? "Water" : type)); - this.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[from] move: Melting Point'); - } - }, - }, - secondary: null, - target: "normal", - type: "Water", - contestType: "Clever", - }, - /* - reconstruct: { - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "(Bugged) Charges turn 1. Heals 50% and resets lowered stats turn 2.", - name: "Reconstruct", - pp: 10, - priority: 0, - flags: {charge: 1, heal: 1}, - heal: [1, 2], - beforeTurnCallback(pokemon) { - pokemon.addVolatile('reconstruct'); - }, - condition: { - duration: 2, - onStart(pokemon) { - this.add('-start', pokemon, 'move: Reconstruct'); - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.category === 'Special' || move.category === 'Physical') { - return this.chainModify(0.5); - } - }, - onTryMove(attacker, defender, move) { - if (attacker.removeVolatile(move.id)) return; - this.add('-prepare', attacker, move.name); - if (!this.runEvent('ChargeMove', attacker, defender, move)) return; - attacker.addVolatile('twoturnmove', defender); - return null; - }, - }, - onAfterMove(pokemon) { - pokemon.removeVolatile('reconstruct'); - }, - self: { - onHit(pokemon) { - const boosts: SparseBoostsTable = {}; - let i: BoostName; - for (i in pokemon.boosts) { - if (pokemon.boosts[i] < 0) { - boosts[i] = 0; - } - } - pokemon.setBoost(boosts); - this.add('-clearnegativeboost', pokemon, '[silent]'); - this.add('-message', pokemon.name + "'s negative stat changes were removed!"); - }, - }, - secondary: null, - target: "self", - type: "Steel", - }, - reconstruct: { - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "Charges turn 1. Heals 50% and resets lowered stats turn 2.", - name: "Reconstruct", - pp: 10, - priority: 0, - flags: {charge: 1, heal: 1}, - heal: [1, 2], - onTryMove(attacker, defender, move) { - if (attacker.removeVolatile(move.id)) { - return; - } - this.add('-prepare', attacker, move.name); - if (!this.runEvent('ChargeMove', attacker, defender, move)) { - return; - } - attacker.addVolatile('twoturnmove', defender); - return null; - }, - self: { - onHit(pokemon) { - const boosts: SparseBoostsTable = {}; - let i: BoostName; - for (i in pokemon.boosts) { - if (pokemon.boosts[i] < 0) { - boosts[i] = 0; - } - } - pokemon.setBoost(boosts); - this.add('-clearnegativeboost', pokemon, '[silent]'); - this.add('-message', pokemon.name + "'s negative stat changes were removed!"); - }, - }, - secondary: null, - target: "self", - type: "Steel", - }, - */ - reconstruct: { - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "Charges turn 1. Heals 50% and resets lowered stats turn 2.", - name: "Reconstruct", - pp: 10, - priority: 5, - flags: {charge: 1, heal: 1}, - volatileStatus: 'reconstruct', - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Recover", target); - }, - beforeMoveCallback(pokemon) { - if (pokemon.volatiles['reconstruct']) return true; - }, - condition: { - duration: 2, - onLockMove: 'reconstruct', - onStart(pokemon) { - this.effectState.totalDamage = 0; - this.add('-start', pokemon, 'move: Reconstruct'); - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.category === 'Special' || move.category === 'Physical') { - return this.chainModify(0.5); - } - }, - onBeforeMove(pokemon, target, move) { - if (this.effectState.duration === 1) { - this.add('-end', pokemon, 'move: Reconstruct'); - const moveData: Partial = { - id: 'reconstruct' as ID, - name: "Reconstruct", - accuracy: true, - category: "Status", - priority: 0, - flags: {charge: 1, heal: 1}, - heal: [1, 2], - effectType: 'Move', - type: 'Steel', - }; - this.actions.tryMoveHit(target, pokemon, moveData as ActiveMove); - return false; - } - this.add('-activate', pokemon, 'move: Reconstruct'); - }, - onMoveAborted(pokemon) { - pokemon.removeVolatile('reconstruct'); - }, - onEnd(pokemon) { - this.add('-end', pokemon, 'move: Reconstruct', '[silent]'); - }, - }, - self: { - onHit(pokemon) { - const boosts: SparseBoostsTable = {}; - let i: BoostID; - for (i in pokemon.boosts) { - if (pokemon.boosts[i] < 0) { - boosts[i] = 0; - } - } - pokemon.setBoost(boosts); - this.add('-clearnegativeboost', pokemon, '[silent]'); - this.add('-message', pokemon.name + "'s negative stat changes were removed!"); - }, - }, - secondary: null, - target: "self", - type: "Steel", - contestType: "Tough", - }, - focusblast: { - num: 411, - accuracy: 70, - basePower: 120, - category: "Special", - shortDesc: "10% chance to lower the foe's SpD. Never misses if the user moves last.", - name: "Focus Blast", - pp: 5, - priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, - onModifyMove(move, source, target) { - if (target && (target.newlySwitched || !this.queue.willMove(target))) move.accuracy = true; - }, - secondary: { - chance: 10, - boosts: { - spd: -1, - }, - }, - target: "normal", - type: "Fighting", - contestType: "Cool", - }, - /* - aridabsorption: { - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "(Placeholder, Currently a Life Dew clone)", - name: "Arid Absorption", - pp: 10, - priority: 0, - flags: {snatch: 1, heal: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Shore Up", target); - }, - heal: [1, 4], - secondary: null, - target: "self", - type: "Ground", - }, -*/ - aridabsorption: { - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "Heals by 33% of its max HP +33% and +1 Atk for every active Water-type.", - name: "Arid Absorption", - pp: 10, - priority: 0, - flags: {snatch: 1, heal: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Shore Up", target); - }, - self: { - onHit(pokemon, source, move) { - this.heal(source.baseMaxhp / 3, source, pokemon); - }, - }, - onHitField(target, source) { - if (target.hasType('Water')) { - this.heal(source.baseMaxhp / 3, source, target); - this.boost({atk: 1}, source); - } - if (source.hasType('Water')) { - this.heal(source.baseMaxhp / 3, source, target); - this.boost({atk: 1}, source); - this.damage(source.baseMaxhp / 3, source, target); - } - }, - secondary: null, - target: "all", - type: "Ground", - }, - rototiller: { - num: 563, - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "Raises Atk/Def of grounded Grass types by 1, sets Grassy Terrain.", - name: "Rototiller", - pp: 10, - priority: 0, - flags: {distance: 1, nonsky: 1}, - onHitField(target, source) { - this.field.setTerrain('grassyterrain'); - const targets: Pokemon[] = []; - let anyAirborne = false; - for (const pokemon of this.getAllActive()) { - if (!pokemon.runImmunity('Ground')) { - this.add('-immune', pokemon); - anyAirborne = true; - continue; - } - if (pokemon.hasType('Grass')) { - // This move affects every grounded Grass-type Pokemon in play. - targets.push(pokemon); - } - } - if (!targets.length && !anyAirborne) return false; // Fails when there are no grounded Grass types or airborne Pokemon - for (const pokemon of targets) { - this.boost({atk: 1, def: 1}, pokemon, source); - } - }, - secondary: null, - target: "all", - type: "Ground", - zMove: {boost: {atk: 1}}, - contestType: "Tough", - }, - armthrust: { - num: 292, - accuracy: 100, - basePower: 25, - category: "Physical", - name: "Arm Thrust", - pp: 20, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, - multihit: [2, 5], - secondary: null, - target: "normal", - type: "Fighting", - contestType: "Tough", - }, - counterspell: { - accuracy: 100, - basePower: 110, - category: "Special", - shortDesc: "Uses target's SpA stat in damage calculation. -1 priority.", - name: "Counterspell", - pp: 15, - priority: -1, - flags: {protect: 1, mirror: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Psybeam", target); - }, - overrideOffensivePokemon: 'target', - secondary: null, - target: "normal", - type: "Fairy", - contestType: "Clever", - }, - lightninglance: { - accuracy: 100, - basePower: 110, - category: "Physical", - shortDesc: "Lowers the user's Attack and Sp. Def by 1.", - name: "Lightning Lance", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, defrost: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Charge", target); - this.add('-anim', source, "Sacred Sword", target); - }, - self: { - boosts: { - atk: -1, - spd: -1, - }, - }, - secondary: null, - target: "normal", - type: "Electric", - contestType: "Cool", - }, - lifedew: { - num: 791, - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "Heals the user by 50% of its max HP; 66% in Rain.", - name: "Life Dew", - pp: 10, - priority: 0, - flags: {snatch: 1, heal: 1, bypasssub: 1}, - onHit(pokemon) { - let factor = 0.5; - if (this.field.isWeather('raindance')) { - factor = 0.667; - } - return !!this.heal(this.modify(pokemon.maxhp, factor)); - }, - secondary: null, - target: "allies", - type: "Water", - }, - trashtalk: { - accuracy: 100, - basePower: 85, - category: "Special", - shortDesc: "Prevents the target from using status moves for 1 turn.", - name: "Trash Talk", - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Confide", target); - this.add('-anim', source, "Gunk Shot", target); - }, - volatileStatus: 'trashtalk', - condition: { - duration: 1, - onStart(target) { - this.add('-singleturn', target, 'move: Trash Talk'); - }, - onResidualOrder: 12, - onEnd(target) { - this.add('-end', target, 'move: Trash Talk'); - }, - onBeforeMovePriority: 5, - onBeforeMove(attacker, defender, move) { - if (!move.isZ && !move.isMax && move.category === 'Status' && move.id !== 'mefirst') { - this.add('cant', attacker, 'move: Trash Talk', move); - return false; - } - }, - }, - secondary: null, - target: "normal", - type: "Poison", - contestType: "Cool", - }, - deafeningshriek: { - accuracy: 100, - basePower: 100, - category: "Special", - shortDesc: "Target becomes immune to sound moves after being hit.", - name: "Deafening Shriek", - pp: 5, - priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Hyper Voice", target); - this.add('-anim', source, "Boomburst", target); - }, - volatileStatus: 'deafeningshriek', - condition: { - onStart(target) { - this.add('-start', target, 'move: Deafening Shriek'); - }, - onTryHitPriority: 3, - onTryHit(target, source, move) { - if (move.target !== 'self' && move.flags['sound']) { - this.add('-immune', target, '[from] move: Deafening Shriek'); - return null; - } - }, - }, - target: "normal", - type: "Ghost", - contestType: "Cool", - }, - enchantedpunch: { - accuracy: 100, - basePower: 80, - category: "Physical", - overrideDefensiveStat: 'spd', - shortDesc: "Damages target based on Sp. Def, not Defense.", - name: "Enchanted Punch", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, contact: 1, punch: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Meteor Mash", target); - }, - secondary: null, - target: "normal", - type: "Fairy", - contestType: "Beautiful", - }, - electroball: { - num: 486, - accuracy: 100, - basePower: 80, - category: "Special", - name: "Electro Ball", - pp: 10, - priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, - overrideOffensiveStat: 'spe', - secondary: null, - target: "normal", - type: "Electric", - contestType: "Clever", - shortDesc: "Uses user's Spe stat as SpA in damage calculation.", - }, - firepunch: { - num: 7, - accuracy: 100, - basePower: 85, - category: "Physical", - name: "Fire Punch", - pp: 15, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, - secondary: { - chance: 10, - status: 'brn', - }, - target: "normal", - type: "Fire", - contestType: "Tough", - }, - icepunch: { - num: 8, - accuracy: 100, - basePower: 85, - category: "Physical", - name: "Ice Punch", - pp: 15, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, - secondary: { - chance: 10, - status: 'frz', - }, - target: "normal", - type: "Ice", - contestType: "Beautiful", - }, - thunderpunch: { - num: 9, - accuracy: 100, - basePower: 85, - category: "Physical", - name: "Thunder Punch", - pp: 15, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, - secondary: { - chance: 10, - status: 'par', - }, - target: "normal", - type: "Electric", - contestType: "Cool", - }, - skyuppercut: { - num: 327, - accuracy: 100, - basePower: 70, - category: "Physical", - shortDesc: "Hits Flying-types super effectively. Can hit Pokemon using Bounce, Fly, or Sky Drop.", - name: "Sky Uppercut", - pp: 15, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, - onEffectiveness(typeMod, target, type) { - if (type === 'Flying') return 1; - }, - secondary: null, - target: "normal", - type: "Fighting", - contestType: "Cool", - }, - crushclaw: { - inherit: true, - accuracy: 100, - basePower: 20, - shortDesc: "Hits twice. Lowers the target's Def after each hit.", - pp: 20, - multihit: 2, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - type: "Dark", - maxMove: {basePower: 100}, - }, - poisondart: { - accuracy: true, - basePower: 40, - category: "Physical", - shortDesc: "Usually goes first. 10% chance to poison foe.", - name: "Poison Dart", - pp: 30, - priority: 1, - flags: {protect: 1, mirror: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Poison Sting", target); - }, - secondary: { - chance: 10, - status: 'psn', - }, - target: "normal", - type: "Poison", - contestType: "Cool", - }, - acidicfists: { - accuracy: 100, - basePower: 90, - category: "Physical", - shortDesc: "Destroys screens, unless the target is immune. 10% poison chance.", - name: "Acidic Fists", - pp: 10, - priority: 0, - flags: {punch: 1, contact: 1, protect: 1, mirror: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Poison Jab", target); - this.add('-anim', source, "Corrosive Gas", target); - }, - onTryHit(pokemon) { - // will shatter screens through sub, before you hit - if (pokemon.runImmunity('Poison')) { - pokemon.side.removeSideCondition('reflect'); - pokemon.side.removeSideCondition('lightscreen'); - pokemon.side.removeSideCondition('auroraveil'); - } - }, - secondary: { - chance: 10, - status: 'psn', - }, - target: "normal", - type: "Poison", - contestType: "Cool", - }, - mudspike: { - num: 398, - accuracy: 100, - basePower: 85, - category: "Physical", - shortDesc: "10% poison chance, 30% if the user is a Poison-type", - name: "Mud Spike", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Muddy Water", target); - this.add('-anim', source, "Corrosive Gas", target); - }, - onModifyMove(move, pokemon) { - if (!pokemon.hasType('Poison')) return; - if (!move.secondaries) move.secondaries = []; - move.secondaries = move.secondaries.filter(s => s.chance !== 10 && s.status !== 'psn'); - move.secondaries.push({ - chance: 30, - status: 'psn', - }); - }, - secondary: { - chance: 10, - status: 'psn', - }, - target: "normal", - type: "Ground", - contestType: "Tough", - }, - bonemerang: { - num: 155, - accuracy: 100, - basePower: 50, - category: "Physical", - shortDesc: "(Bugged) First hit has +1 priority, second hit has -1 priority.", - name: "Bonemerang", - pp: 10, - priority: 1, - flags: {protect: 1, mirror: 1}, - onModifyMove(move) { - if (move.hit !== 1) move.priority = -1; - }, - secondary: null, - target: "normal", - type: "Ground", - maxMove: {basePower: 130}, - contestType: "Tough", - }, - rashpowder: { - accuracy: 75, - basePower: 0, - category: "Status", - shortDesc: "Burns the target.", - name: "Rash Powder", - pp: 30, - priority: 0, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Spore", target); - }, - status: 'brn', - secondary: null, - target: "normal", - type: "Grass", - zMove: {boost: {def: 1}}, - contestType: "Clever", - }, - payback: { - num: 371, - accuracy: 100, - basePower: 50, - basePowerCallback(pokemon, target, move) { - if (this.queue.willMove(target)) { - this.debug('Payback NOT boosted'); - return move.basePower; - } - this.debug('Payback damage boost'); - return move.basePower * 2; - }, - category: "Physical", - shortDesc: "Power doubles if the user moves last or the foe switches.", - name: "Payback", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - secondary: null, - target: "normal", - type: "Dark", - contestType: "Tough", - }, - revenge: { - num: 279, - accuracy: 100, - basePower: 50, - basePowerCallback(pokemon, target, move) { - if (this.queue.willMove(target)) { - this.debug('Revenge NOT boosted'); - return move.basePower; - } - this.debug('Revenge damage boost'); - return move.basePower * 2; - }, - category: "Physical", - shortDesc: "Power doubles if the user moves last or the foe switches.", - name: "Revenge", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - secondary: null, - target: "normal", - type: "Fighting", - contestType: "Tough", - }, - avalanche: { - num: 419, - accuracy: 100, - basePower: 50, - basePowerCallback(pokemon, target, move) { - if (this.queue.willMove(target)) { - this.debug('Avalanche NOT boosted'); - return move.basePower; - } - this.debug('Avalanche damage boost'); - return move.basePower * 2; - }, - category: "Physical", - shortDesc: "Power doubles if the user moves last or the foe switches.", - name: "Avalanche", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - secondary: null, - target: "normal", - type: "Ice", - contestType: "Beautiful", - }, - technoblast: { - num: 546, - accuracy: 100, - basePower: 90, - onBasePower(basePower, source) { - if (source.hasItem(['burndrive', 'dousedrive', 'chilldrive', 'shockdrive'])) { - return this.chainModify(1.2); - } - }, - category: "Special", - shortDesc: "Type varies based on the held Drive. 1.2x power when holding a Drive.", - name: "Techno Blast", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, pulse: 1, bullet: 1}, - onModifyType(move, pokemon) { - if (pokemon.ignoringItem()) return; - move.type = this.runEvent('Drive', pokemon, null, move, 'Normal'); - }, - secondary: null, - target: "normal", - type: "Normal", - contestType: "Cool", - }, - aggravate: { - accuracy: 100, - basePower: 85, - category: "Physical", - shortDesc: "If the target is statused, applies Taunt.", - name: "Aggravate", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Power Trip", target); - }, - secondary: { - chance: 100, - onHit(target, source, move) { - if (target.status) { - return !!target.addVolatile('taunt'); - } - return false; - }, - }, - target: "normal", - type: "Dark", - contestType: "Clever", - }, - curse: { - num: 174, - accuracy: true, - basePower: 0, - category: "Status", - shortDesc: "Curses if Ghost, else -1 Spe, +2 Atk, +1 Def.", - name: "Curse", - pp: 10, - priority: 0, - flags: {}, - volatileStatus: 'curse', - onModifyMove(move, source, target) { - if (!source.hasType('Ghost')) { - move.target = move.nonGhostTarget as MoveTarget; - } - }, - onTryHit(target, source, move) { - if (!source.hasType('Ghost')) { - delete move.volatileStatus; - move.self = {boosts: {spe: -1, atk: 2, def: 1}}; - } else if ((move.volatileStatus && target.volatiles['curse']) || target.hasType(['Normal', 'Ghost']) || - target.volatiles['protect'] || target.volatiles['spikyshield'] || target.volatiles['banefulbunker']) { - return false; - } - }, - condition: { - onStart(target) { - this.add('-start', target, 'move: Curse'); - }, - onResidualOrder: 8, - onResidual(pokemon) { - const target = this.effectState.source.side.active[pokemon.volatiles['curse'].sourcePosition]; - if (!target || target.fainted || target.hp <= 0) { - this.debug('Nothing to curse'); - return; - } - const damage = this.damage(pokemon.baseMaxhp / 8, pokemon, target); - if (damage) { - this.heal(damage, target, pokemon); - } - }, - }, - onTryImmunity(target) { - return (!target.hasType('Normal') || !target.hasType('Ghost')); - }, - secondary: null, - target: "randomNormal", - nonGhostTarget: "self", - type: "Ghost", - zMove: {effect: 'curse'}, - contestType: "Tough", - }, - octazooka: { - num: 190, - accuracy: 100, - basePower: 75, - category: "Special", - shortDesc: "100% chance to lower the target's Evasion by 1.", - name: "Octazooka", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, pulse: 1, bullet: 1}, - secondary: { - chance: 100, - boosts: { - evasion: -1, - }, - }, - target: "normal", - type: "Water", - contestType: "Tough", - }, - signalbeam: { - num: 324, - accuracy: 100, - basePower: 75, - category: "Special", - shortDesc: "100% chance to lower the target's Speed by 1.", - name: "Signal Beam", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - secondary: { - chance: 100, - boosts: { - spe: -1, - }, - }, - target: "normal", - type: "Bug", - contestType: "Tough", - }, - aurorabeam: { - num: 62, - accuracy: 100, - basePower: 75, - category: "Special", - shortDesc: "100% chance to lower the target's Attack by 1.", - name: "Aurora Beam", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - secondary: { - chance: 100, - boosts: { - atk: -1, - }, - }, - target: "normal", - type: "Ice", - contestType: "Tough", - }, - venoshock: { - num: 474, - accuracy: 100, - basePower: 65, - basePowerCallback(pokemon, target, move) { - if (target.status || target.hasAbility('comatose')) return move.basePower * 2; - return move.basePower; - }, - category: "Special", - shortDesc: "Power doubles if the target has a status ailment.", - name: "Venoshock", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - secondary: null, - target: "normal", - type: "Poison", - contestType: "Beautiful", - }, - attackorder: { - num: 454, - accuracy: 100, - basePower: 75, - basePowerCallback(pokemon, target, move) { - if (target.status || target.hasAbility('comatose')) return move.basePower * 2; - return move.basePower; - }, - category: "Physical", - shortDesc: "Power doubles if the target has a status ailment.", - name: "Attack Order", - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - secondary: null, - target: "normal", - type: "Flying", - contestType: "Clever", - }, - smother: { - accuracy: 100, - basePower: 65, - basePowerCallback(pokemon, target, move) { - if (target.newlySwitched || this.queue.willMove(target)) { - this.debug('Smother damage boost'); - return move.basePower * 1.5; - } - this.debug('Smother NOT boosted'); - return move.basePower; - }, - category: "Physical", - shortDesc: "The target must move last next turn. 1.5x if the user moves first.", - name: "Smother", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Wrap", target); - }, - onHit(target, source) { - target.addVolatile('smother', source); - }, - condition: { - duration: 2, - onStart(target) { - this.add('-start', target, 'Smother', '[silent]'); - }, - onFractionalPriority: -0.1, - onResidualOrder: 22, - onEnd(target) { - this.add('-end', target, 'Smother', '[silent]'); - }, - }, - secondary: null, - target: "normal", - type: "Fairy", - contestType: "Clever", - }, - fierydance: { - num: 552, - accuracy: 100, - basePower: 85, - category: "Special", - name: "Fiery Dance", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, - secondary: { - chance: 50, - self: { - boosts: { - spa: 1, - }, - }, - }, - target: "normal", - type: "Fire", - contestType: "Beautiful", - }, - snowmanjazz: { - accuracy: 100, - basePower: 85, - category: "Special", - shortDesc: "50% chance to raise the user's Sp. Atk by 1.", - name: "Snowman Jazz", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Quiver Dance", target); - this.add('-anim', source, "Ice Beam", target); - }, - secondary: { - chance: 50, - self: { - boosts: { - spa: 1, - }, - }, - }, - target: "normal", - type: "Ice", - contestType: "Beautiful", - }, - moonlitwaltz: { - accuracy: 100, - basePower: 85, - category: "Special", - shortDesc: "50% chance to raise the user's Sp. Atk by 1.", - name: "Moonlit Waltz", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Quiver Dance", target); - this.add('-anim', source, "Dark Pulse", target); - }, - secondary: { - chance: 50, - self: { - boosts: { - spa: 1, - }, - }, - }, - target: "normal", - type: "Dark", - contestType: "Beautiful", - }, - petaldance: { - num: 80, - accuracy: 100, - basePower: 85, - category: "Special", - shortDesc: "50% chance to raise the user's Sp. Atk by 1.", - name: "Petal Dance", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, - secondary: { - chance: 50, - self: { - boosts: { - spa: 1, - }, - }, - }, - target: "normal", - type: "Grass", - contestType: "Beautiful", - }, - skysoiree: { - accuracy: 100, - basePower: 85, - category: "Special", - shortDesc: "50% chance to raise the user's Sp. Atk by 1.", - name: "Sky Soiree", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Quiver Dance", target); - this.add('-anim', source, "Gust", target); - }, - secondary: { - chance: 50, - self: { - boosts: { - spa: 1, - }, - }, - }, - target: "normal", - type: "Flying", - contestType: "Beautiful", - }, - shadowpunch: { - num: 325, - accuracy: true, - basePower: 80, - category: "Physical", - shortDesc: "Ignores burn, screens, and Substitute.", - name: "Shadow Punch", - pp: 20, - priority: 0, - flags: {protect: 1, mirror: 1, punch: 1}, - onBasePower(basePower, pokemon) { - if (pokemon.status === 'brn') { - return this.chainModify(2); - } - }, - infiltrates: true, - secondary: null, - target: "normal", - type: "Ghost", - contestType: "Clever", - }, - bouncybubble: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Bubble", target); - }, - }, - buzzybuzz: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Discharge", target); - }, - }, - sizzlyslide: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Flame Charge", target); - }, - }, - glitzyglow: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Psychic", target); - }, - }, - baddybad: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Photon Geyser", target); - }, - }, - freezyfrost: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Blizzard", target); - }, - }, - sappyseed: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Horn Leech", target); - }, - }, - sparklyswirl: { - inherit: true, - isNonstandard: null, - onPrepareHit(target, source, move) { - this.attrLastMove('[still]'); - this.add('-anim', source, "Dazzling Gleam", target); - }, - }, - // stuff that needs to be edited because of other stuff - fling: { - num: 374, - accuracy: 100, - basePower: 0, - category: "Physical", - name: "Fling", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, allyanim: 1}, - onPrepareHit(target, source, move) { - if (source.ignoringItem()) return false; - const item = source.getItem(); - if (!this.singleEvent('TakeItem', item, source.itemState, source, source, move, item)) return false; - if (!item.fling) return false; - move.basePower = item.fling.basePower; - if (item.isBerry) { - move.onHit = function (foe) { - if (this.singleEvent('Eat', item, null, foe, null, null)) { - this.runEvent('EatItem', foe, null, null, item); - if (item.id === 'leppaberry') foe.staleness = 'external'; - } - if (item.onEat) foe.ateBerry = true; - }; - } else if (item.fling.effect) { - move.onHit = item.fling.effect; - } else { - if (!move.secondaries) move.secondaries = []; - if (item.fling.status) { - move.secondaries.push({status: item.fling.status}); - } else if (item.fling.volatileStatus) { - move.secondaries.push({volatileStatus: item.fling.volatileStatus}); - } - } - source.addVolatile('fling'); - if (item.id === 'boomerang') { - source.removeVolatile('fling'); - } - }, - condition: { - onUpdate(pokemon) { - const item = pokemon.getItem(); - pokemon.setItem(''); - pokemon.lastItem = item.id; - pokemon.usedItemThisTurn = true; - this.add('-enditem', pokemon, item.name, '[from] move: Fling'); - this.runEvent('AfterUseItem', pokemon, null, null, item); - pokemon.removeVolatile('fling'); - }, - }, - secondary: null, - target: "normal", - type: "Dark", - contestType: "Cute", - }, - knockoff: { - num: 282, - accuracy: 100, - basePower: 65, - category: "Physical", - name: "Knock Off", - pp: 20, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onBasePower(basePower, source, target, move) { - const item = target.getItem(); - if (!this.singleEvent('TakeItem', item, target.itemState, target, target, move, item)) return; - if (item.id && item.id !== 'boomerang') { - return this.chainModify(1.5); - } - }, - onAfterHit(target, source) { - if (source.hp) { - const item = target.takeItem(); - if (item) { - this.add('-enditem', target, item.name, '[from] move: Knock Off', '[of] ' + source); - if (item.id === 'boomerang') { - this.add('-item', target, this.dex.items.get(item), '[from] item: Boomerang'); - target.setItem(item); - } - } - } - }, - secondary: null, - target: "normal", - type: "Dark", - contestType: "Clever", - }, - stealthrock: { - inherit: true, - condition: { - // this is a side condition - onStart(side) { - this.add('-sidestart', side, 'move: Stealth Rock'); - }, - onSwitchIn(pokemon) { - if ( - pokemon.hasItem('heavydutyboots') || pokemon.hasItem('coalengine') - ) return; - const typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6); - this.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8); - }, - }, - }, - gravity: { - num: 356, - accuracy: true, - basePower: 0, - category: "Status", - name: "Gravity", - pp: 5, - priority: 0, - flags: {nonsky: 1}, - pseudoWeather: 'gravity', - condition: { - duration: 5, - durationCallback(source, effect) { - if (source?.hasAbility('persistent')) { - this.add('-activate', source, 'ability: Persistent', effect); - return 7; - } else if (source && source.hasItem('ironball')) { - return 8; - } - return 5; - }, - onStart() { - this.add('-fieldstart', 'move: Gravity'); - for (const pokemon of this.getAllActive()) { - let applies = false; - if (pokemon.removeVolatile('bounce') || pokemon.removeVolatile('fly')) { - applies = true; - this.queue.cancelMove(pokemon); - pokemon.removeVolatile('twoturnmove'); - } - if (pokemon.volatiles['skydrop']) { - applies = true; - this.queue.cancelMove(pokemon); - - if (pokemon.volatiles['skydrop'].source) { - this.add('-end', pokemon.volatiles['twoturnmove'].source, 'Sky Drop', '[interrupt]'); - } - pokemon.removeVolatile('skydrop'); - pokemon.removeVolatile('twoturnmove'); - } - if (pokemon.volatiles['magnetrise']) { - applies = true; - delete pokemon.volatiles['magnetrise']; - } - if (pokemon.volatiles['telekinesis']) { - applies = true; - delete pokemon.volatiles['telekinesis']; - } - if (applies) this.add('-activate', pokemon, 'move: Gravity'); - } - }, - onModifyAccuracy(accuracy) { - if (typeof accuracy !== 'number') return; - return accuracy * 5 / 3; - }, - onDisableMove(pokemon) { - for (const moveSlot of pokemon.moveSlots) { - if (this.dex.moves.get(moveSlot.id).flags['gravity']) { - pokemon.disableMove(moveSlot.id); - } - } - }, - // groundedness implemented in battle.engine.js:BattlePokemon#isGrounded - onBeforeMovePriority: 6, - onBeforeMove(pokemon, target, move) { - if (move.flags['gravity']) { - this.add('cant', pokemon, 'move: Gravity', move); - return false; - } - }, - onResidualOrder: 22, - onEnd() { - this.add('-fieldend', 'move: Gravity'); - }, - }, - secondary: null, - target: "all", - type: "Psychic", - zMove: {boost: {spa: 1}}, - contestType: "Clever", - }, - rapidspin: { - num: 229, - accuracy: 100, - basePower: 50, - category: "Physical", - name: "Rapid Spin", - pp: 40, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onAfterHit(target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); - } - if (pokemon.hp && pokemon.removeVolatile('curse')) { - this.add('-end', pokemon, 'Curse', '[from] move: Rapid Spin', '[of] ' + pokemon); - } - const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); - } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); - } - }, - onAfterSubDamage(damage, target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); - } - if (pokemon.hp && pokemon.removeVolatile('curse')) { - this.add('-end', pokemon, 'Curse', '[from] move: Rapid Spin', '[of] ' + pokemon); - } - const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); - } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); - } - }, - secondary: { - chance: 100, - self: { - boosts: { - spe: 1, - }, - }, - }, - target: "normal", - type: "Normal", - contestType: "Cool", - }, -}; diff --git a/data/mods/gen8joltemons/pokedex.ts b/data/mods/gen8joltemons/pokedex.ts deleted file mode 100644 index 51243c72e851..000000000000 --- a/data/mods/gen8joltemons/pokedex.ts +++ /dev/null @@ -1,1438 +0,0 @@ -export const Pokedex: {[speciesid: string]: ModdedSpeciesData} = { - moltresgalar: { - inherit: true, - abilities: {0: "Berserk", H: "Regenerator"}, - }, - zapdosgalar: { - inherit: true, - abilities: {0: "Defiant", H: "Intimidate"}, - }, - articunogalar: { - inherit: true, - abilities: {0: "Competitive", H: "Magic Bounce"}, - }, - magmortar: { - inherit: true, - types: ["Fire", "Fighting"], - abilities: {0: "Flame Body", 1: "Magma Armor", H: "Neutralizing Gas"}, - }, - magmar: { - inherit: true, - abilities: {0: "Flame Body", 1: "Magma Armor", H: "Vital Spirit"}, - }, - magby: { - inherit: true, - abilities: {0: "Flame Body", 1: "Magma Armor", H: "Vital Spirit"}, - }, - sandslashalola: { - inherit: true, - abilities: {0: "Ice Body", 1: "Prickly Coat", H: "Slush Rush"}, - }, - ninetalesalola: { - inherit: true, - abilities: {0: "Snow Cloak", 1: "Ice Body", H: "Snow Warning"}, - }, - volbeat: { - inherit: true, - abilities: {0: "Light Power", 1: "Swarm", H: "Prankster"}, - }, - solrock: { - inherit: true, - abilities: {0: "Levitate", H: "Light Power"}, - }, - pachirisu: { - inherit: true, - abilities: {0: "Light Power", 1: "Pickup", H: "Volt Absorb"}, - }, - lumineon: { - inherit: true, - abilities: {0: "Swift Swim", 1: "Storm Drain", H: "Light Power"}, - }, - froslass: { - inherit: true, - abilities: {0: "Soul Link", 1: "Ice Body", H: "Merciless"}, - }, - watchog: { - inherit: true, - abilities: {0: "Light Power", 1: "Keen Eye", H: "Analytic"}, - }, - simipour: { - inherit: true, - abilities: {0: "Gorilla Tactics", 1: "Rain Dish", H: "Torrent"}, - }, - simisear: { - inherit: true, - abilities: {0: "Gorilla Tactics", 1: "Optimistic", H: "Blaze"}, - }, - simisage: { - inherit: true, - abilities: {0: "Gorilla Tactics", 1: "Rivalry", H: "Overgrow"}, - }, - gigalith: { - inherit: true, - abilities: {0: "Sturdy", 1: "Sand Stream", H: "Light Power"}, - }, - jellicent: { - inherit: true, - abilities: {0: "Hydration", 1: "Sticky Hold", H: "Merciless"}, - }, - cryogonal: { - inherit: true, - abilities: {0: "Levitate", 1: "Vapor Control", H: "Ice Body"}, - }, - gourgeist: { - inherit: true, - abilities: {0: "Soul Link", 1: "Frisk", H: "Light Power"}, - }, - gourgeistsmall: { - inherit: true, - abilities: {0: "Soul Link", 1: "Frisk", H: "Light Power"}, - }, - gourgeistlarge: { - inherit: true, - abilities: {0: "Soul Link", 1: "Frisk", H: "Light Power"}, - }, - gourgeistsuper: { - inherit: true, - abilities: {0: "Soul Link", 1: "Frisk", H: "Light Power"}, - }, - crabominable: { - inherit: true, - abilities: {0: "Hyper Cutter", 1: "Iron Fist", H: "Ice Body"}, - }, - grapploct: { - inherit: true, - abilities: {0: "Limber", 1: "Rain Dish", H: "Technician"}, - }, - polteageist: { - inherit: true, - abilities: {0: "Weak Armor", 1: "Rain Dish", H: "Counterfeit"}, - }, - polteageistantique: { - inherit: true, - abilities: {0: "Weak Armor", 1: "Rain Dish", H: "Unimpressed"}, - }, - glastrier: { - inherit: true, - abilities: {0: "Chilling Neigh", H: "Ice Body"}, - }, - spectrier: { - inherit: true, - abilities: {0: "Grim Neigh", H: "Wandering Spirit"}, - }, - rotom: { - inherit: true, - abilities: {0: "Levitate", 1: "Wandering Spirit", H: "Unburden"}, - }, - rotomheat: { - inherit: true, - abilities: {0: "Levitate", 1: "Counterfeit", H: "Flame Body"}, - }, - rotomwash: { - inherit: true, - abilities: {0: "Levitate", 1: "Counterfeit", H: "Water Absorb"}, - }, - rotomfrost: { - inherit: true, - abilities: {0: "Levitate", 1: "Counterfeit", H: "Refrigerate"}, - }, - rotomfan: { - inherit: true, - abilities: {0: "Levitate", 1: "Counterfeit", H: "Speed Boost"}, - }, - rotommow: { - inherit: true, - abilities: {0: "Levitate", 1: "Counterfeit", H: "Grassy Surge"}, - }, - ampharos: { - inherit: true, - abilities: {0: "Static", 1: "Plus", H: "Mold Breaker"}, - }, - ampharosmega: { - inherit: true, - abilities: {0: "Fluffy"}, - }, - meganium: { - inherit: true, - types: ["Grass", "Fairy"], - abilities: {0: "Overgrow", H: "Flower Veil"}, - }, - garbodor: { - inherit: true, - abilities: {0: "Stench", 1: "Sticky Hold", H: "Aftermath"}, - }, - duosion: { - inherit: true, - abilities: {0: "Sticky Hold", 1: "Magic Guard", H: "Regenerator"}, - }, - reuniclus: { - inherit: true, - abilities: {0: "Sticky Hold", 1: "Magic Guard", H: "Regenerator"}, - }, - deoxys: { - inherit: true, - abilities: {0: "Pressure", H: "Sticky Hold"}, - }, - deoxysattack: { - inherit: true, - abilities: {0: "Pressure", H: "Sticky Hold"}, - }, - deoxysdefense: { - inherit: true, - abilities: {0: "Pressure", H: "Sticky Hold"}, - }, - deoxysspeed: { - inherit: true, - abilities: {0: "Pressure", H: "Sticky Hold"}, - }, - umbreon: { - inherit: true, - abilities: {0: "Corrosion", 1: "Merciless", H: "Power of Alchemy (Umbreon)"}, - }, - alcremie: { - inherit: true, - abilities: {0: "Sweet Veil", 1: "Sticky Hold", H: "Power of Alchemy (Alcremie)"}, - }, - milcery: { - inherit: true, - abilities: {0: "Sweet Veil", 1: "Sticky Hold", H: "Aroma Veil"}, - }, - mantine: { - inherit: true, - abilities: {0: "Swift Swim", 1: "Hydration", H: "Sticky Hold"}, - }, - melmetal: { - inherit: true, - abilities: {0: "Iron Fist", H: "Sticky Hold"}, - }, - mesprit: { - inherit: true, - types: ["Psychic", "Fairy"], - abilities: {0: "Levitate", 1: "Moody", H: "Prankster"}, - }, - azelf: { - inherit: true, - types: ["Psychic", "Fighting"], - abilities: {0: "Levitate", 1: "Competitive", H: "Moxie"}, - }, - dartrix: { - inherit: true, - abilities: {0: "Overgrow", H: "Moody"}, - }, - decidueye: { - inherit: true, - abilities: {0: "Overgrow", H: "Moody"}, - }, - steenee: { - inherit: true, - abilities: {0: "Leaf Guard", 1: "Moody", H: "Sweet Veil"}, - }, - malamar: { - inherit: true, - abilities: {0: "Contrary", 1: "Suction Cups", H: "Moody"}, - }, - hypno: { - inherit: true, - abilities: {0: "Insomnia", 1: "Forewarn", H: "Moody"}, - }, - spinda: { - inherit: true, - abilities: {0: "Moody", 1: "Tangled Feet", H: "Contrary"}, - }, - passimian: { - inherit: true, - abilities: {0: "Receiver", 1: "Libero", H: "Defiant"}, - }, - electrode: { - inherit: true, - abilities: {0: "Libero", 1: "Counterfeit", H: "Aftermath"}, - }, - dubwool: { - inherit: true, - abilities: {0: "Fluffy", 1: "Libero", H: "Bulletproof"}, - }, - jumpluff: { - inherit: true, - abilities: {0: "Leaf Guard", 1: "Libero", H: "Infiltrator"}, - }, - lucario: { - inherit: true, - abilities: {0: "Libero", 1: "Inner Focus", H: "Rivalry"}, - }, - wigglytuff: { - inherit: true, - abilities: {0: "Cute Charm", 1: "Competitive", H: "Libero"}, - }, - electivire: { - inherit: true, - types: ["Electric", "Dark"], - abilities: {0: "Motor Drive", 1: "Libero", H: "Iron Fist"}, - }, - eevee: { - inherit: true, - abilities: {0: "Run Away", 1: "Adaptability", H: "Libero"}, - }, - plusle: { - inherit: true, - abilities: {0: "Plus", 1: "Libero", H: "Lightning Rod"}, - }, - minun: { - inherit: true, - abilities: {0: "Minus", 1: "Libero", H: "Volt Absorb"}, - }, - cacnea: { - inherit: true, - abilities: {0: "Sand Veil", 1: "Water Compaction", H: "Water Absorb"}, - }, - cacturne: { - inherit: true, - abilities: {0: "Wandering Spirit", 1: "Water Compaction", H: "Prickly Coat"}, - }, - lileep: { - inherit: true, - abilities: {0: "Suction Cups", 1: "Water Compaction", H: "Storm Drain"}, - }, - cradily: { - inherit: true, - abilities: {0: "Suction Cups", 1: "Water Compaction", H: "Storm Drain"}, - }, - stunfisk: { - inherit: true, - abilities: {0: "Static", 1: "Water Compaction", H: "Sand Veil"}, - }, - phanpy: { - inherit: true, - abilities: {0: "Pickup", 1: "Water Compaction", H: "Sand Veil"}, - }, - donphan: { - inherit: true, - abilities: {0: "Sturdy", 1: "Water Compaction", H: "Sand Veil"}, - }, - muk: { - inherit: true, - abilities: {0: "Regenerator", 1: "Sticky Hold", H: "Poison Touch"}, - }, - mukalola: { - inherit: true, - abilities: {0: "Poison Touch", 1: "Scavenge", H: "Power of Alchemy (Muk-Alola)"}, - }, - mismagius: { - inherit: true, - types: ["Ghost", "Fairy"], - abilities: {0: "Levitate", 1: "Power of Alchemy (Mismagius)", H: "Corrosion"}, - }, - samurott: { - inherit: true, - types: ["Water", "Fighting"], - abilities: {0: "Torrent", H: "Shell Armor"}, - }, - dewott: { - inherit: true, - types: ["Water", "Fighting"], - abilities: {0: "Torrent", H: "No Guard"}, - }, - oshawott: { - inherit: true, - abilities: {0: "Torrent", H: "No Guard"}, - }, - buzzwole: { - inherit: true, - abilities: {0: "Beast Boost", H: "Iron Fist"}, - }, - metagross: { - inherit: true, - abilities: {0: "Clear Body", 1: "Iron Fist", H: "Neuroforce"}, - }, - metang: { - inherit: true, - abilities: {0: "Clear Body", 1: "Iron Fist", H: "Neuroforce"}, - }, - metagrossmega: { - inherit: true, - abilities: {0: "Neuroforce"}, - }, - poliwrath: { - inherit: true, - abilities: {0: "Water Absorb", 1: "Iron Fist", H: "Swift Swim"}, - }, - toxicroak: { - inherit: true, - abilities: {0: "Iron Fist", 1: "Dry Skin", H: "Poison Touch"}, - }, - lucariomega: { - inherit: true, - abilities: {0: "Iron Fist"}, - }, - zebstrika: { - inherit: true, - abilities: {0: "Overclock", 1: "Motor Drive", H: "Sap Sipper"}, - }, - manectric: { - inherit: true, - abilities: {0: "Static", 1: "Lightning Rod", H: "Overclock"}, - }, - celebi: { - inherit: true, - abilities: {0: "Natural Cure", H: "Overclock"}, - }, - braviary: { - inherit: true, - abilities: {0: "Optimistic", 1: "Sheer Force", H: "Defiant"}, - }, - haxorus: { - inherit: true, - abilities: {0: "Overclock", 1: "Mold Breaker", H: "Rivalry"}, - }, - duraludon: { - inherit: true, - abilities: {0: "Light Metal", 1: "Heavy Metal", H: "Overclock"}, - }, - hydreigon: { - inherit: true, - abilities: {0: "Levitate", H: "Overclock"}, - }, - gallademega: { - inherit: true, - abilities: {0: "Overclock"}, - }, - exeggutoralola: { - inherit: true, - abilities: {0: "Frisk", 1: "Optimistic", H: "Harvest"}, - }, - infernape: { - inherit: true, - abilities: {0: "Blaze", H: "Overclock"}, - }, - blazikenmega: { - inherit: true, - abilities: {0: "Overclock"}, - }, - magearna: { - inherit: true, - abilities: {0: "Soul-Heart", H: "Overclock"}, - }, - magearnaoriginal: { - inherit: true, - abilities: {0: "Soul-Heart", H: "Overclock"}, - }, - dialga: { - inherit: true, - abilities: {0: "Pressure", 1: "Overclock", H: "Telepathy"}, - }, - slowbromega: { - inherit: true, - abilities: {0: "Prickly Coat"}, - }, - omastar: { - inherit: true, - abilities: {0: "Swift Swim", 1: "Prickly Coat", H: "Weak Armor"}, - }, - corsolagalar: { - inherit: true, - abilities: {0: "Weak Armor", 1: "Prickly Coat", H: "Cursed Body"}, - }, - cursola: { - inherit: true, - abilities: {0: "Weak Armor", 1: "Prickly Coat", H: "Perish Body"}, - }, - corsola: { - inherit: true, - abilities: {0: "Prickly Coat", 1: "Natural Cure", H: "Regenerator"}, - }, - qwilfish: { - inherit: true, - abilities: {0: "Prickly Coat", 1: "Swift Swim", H: "Intimidate"}, - }, - roselia: { - inherit: true, - abilities: {0: "Natural Cure", 1: "Prickly Coat", H: "Leaf Guard"}, - }, - roserade: { - inherit: true, - abilities: {0: "Natural Cure", 1: "Prickly Coat", H: "Technician"}, - }, - maractus: { - inherit: true, - abilities: {0: "Prickly Coat", 1: "Chlorophyll", H: "Storm Drain"}, - }, - chesnaught: { - inherit: true, - abilities: {0: "Overgrow", H: "Prickly Coat"}, - }, - sandslash: { - inherit: true, - abilities: {0: "Sand Veil", 1: "Prickly Coat", H: "Sand Rush"}, - }, - pincurchin: { - inherit: true, - abilities: {0: "Lightning Rod", 1: "Prickly Coat", H: "Electric Surge"}, - }, - jolteon: { - inherit: true, - abilities: {0: "Volt Absorb", 1: "Prickly Coat", H: "Power of Alchemy (Jolteon)"}, - }, - toxapex: { - inherit: true, - abilities: {0: "Merciless", 1: "Prickly Coat", H: "Regenerator"}, - }, - poipole: { - inherit: true, - abilities: {0: "Beast Boost", H: "Prickly Coat"}, - }, - naganadel: { - inherit: true, - abilities: {0: "Beast Boost", H: "Prickly Coat"}, - }, - bastiodon: { - inherit: true, - abilities: {0: "Sturdy", 1: "Sand Veil", H: "Soundproof"}, - }, - regirock: { - inherit: true, - abilities: {0: "Clear Body", 1: "Sand Veil", H: "Sturdy"}, - }, - vibrava: { - inherit: true, - abilities: {0: "Levitate", H: "Sand Veil"}, - }, - flygon: { - inherit: true, - abilities: {0: "Levitate", H: "Sand Veil"}, - }, - sandile: { - inherit: true, - abilities: {0: "Intimidate", 1: "Moxie", H: "Sand Veil"}, - }, - krokorok: { - inherit: true, - abilities: {0: "Intimidate", 1: "Moxie", H: "Sand Veil"}, - }, - krookodile: { - inherit: true, - abilities: {0: "Intimidate", 1: "Moxie", H: "Concussion"}, - }, - weezing: { - inherit: true, - abilities: {0: "Levitate", 1: "Neutralizing Gas", H: "Power of Alchemy (Weezing)"}, - }, - weezinggalar: { - inherit: true, - abilities: {0: "Levitate", 1: "Neutralizing Gas", H: "Power of Alchemy (Weezing)"}, - }, - slowkinggalar: { - inherit: true, - abilities: {0: "Curious Medicine", 1: "Power of Alchemy (Slowking-Galar)", H: "Regenerator"}, - }, - ditto: { - inherit: true, - abilities: {0: "Limber", 1: "Power of Alchemy (Ditto)", H: "Imposter"}, - }, - vanillite: { - inherit: true, - abilities: {0: "Ice Body", 1: "Snow Cloak", H: "Power of Alchemy (Vanillite)"}, - }, - vanillish: { - inherit: true, - abilities: {0: "Ice Body", 1: "Snow Cloak", H: "Power of Alchemy (Vanillite)"}, - }, - vanilluxe: { - inherit: true, - abilities: {0: "Ice Body", 1: "Snow Warning", H: "Power of Alchemy (Vanilluxe)"}, - }, - cyndaquil: { - inherit: true, - abilities: {0: "Blaze", H: "Magma Armor"}, - }, - quilava: { - inherit: true, - abilities: {0: "Blaze", H: "Magma Armor"}, - }, - typhlosion: { - inherit: true, - types: ["Fire", "Ground"], - abilities: {0: "Blaze", H: "Neuroforce"}, - }, - feraligatr: { - inherit: true, - types: ["Water", "Dark"], - }, - centiskorch: { - inherit: true, - abilities: {0: "Flash Fire", 1: "Intimidate", H: "Sticky Hold"}, - }, - houndoom: { - inherit: true, - abilities: {0: "Scavenge", 1: "Flash Fire", H: "Solar Power"}, - }, - houndoommega: { - inherit: true, - abilities: {0: "Sheer Force"}, - }, - blacephalon: { - inherit: true, - abilities: {0: "Beast Boost", H: "Regenerator"}, - }, - chandelure: { - inherit: true, - abilities: {0: "Flash Fire", 1: "Merciless", H: "Infiltrator"}, - }, - salazzle: { - inherit: true, - abilities: {0: "Corrosion", 1: "Merciless", H: "Oblivious"}, - }, - skorupi: { - inherit: true, - abilities: {0: "Buzz Off", 1: "Sniper", H: "Keen Eye"}, - }, - drapion: { - inherit: true, - abilities: {0: "Buzz Off", 1: "Sniper", H: "Merciless"}, - }, - trevenant: { - inherit: true, - abilities: {0: "Leaf Guard", 1: "Merciless", H: "Harvest"}, - }, - skuntank: { - inherit: true, - abilities: {0: "Neutralizing Gas", 1: "Aftermath", H: "Merciless"}, - }, - seviper: { - inherit: true, - abilities: {0: "Rivalry", 1: "Merciless", H: "Infiltrator"}, - }, - zangoose: { - inherit: true, - abilities: {0: "Rivalry", 1: "Immunity", H: "Toxic Boost"}, - }, - honchkrow: { - inherit: true, - abilities: {0: "Counterfeit", 1: "Merciless", H: "Moxie"}, - }, - smeargle: { - inherit: true, - abilities: {0: "Pastel Veil", 1: "Technician", H: "Moody"}, - }, - florges: { - inherit: true, - abilities: {0: "Flower Veil", 1: "Pastel Veil", H: "Symbiosis"}, - }, - sylveon: { - inherit: true, - abilities: {0: "Natural Cure", 1: "Pixilate", H: "Power of Alchemy (Sylveon)"}, - }, - vivillon: { - inherit: true, - abilities: {0: "Pastel Veil", 1: "Compound Eyes", H: "Friend Guard"}, - }, - bruxish: { - inherit: true, - abilities: {0: "Dazzling", 1: "Strong Jaw", H: "Pastel Veil"}, - }, - milotic: { - inherit: true, - abilities: {0: "Marvel Scale", 1: "Competitive", H: "Pastel Veil"}, - }, - kecleon: { - inherit: true, - abilities: {0: "Color Change", 1: "Pastel Veil", H: "Protean"}, - }, - aromatisse: { - inherit: true, - abilities: {0: "Unimpressed", 1: "Pastel Veil", H: "Aroma Veil"}, - }, - lilligant: { - inherit: true, - abilities: {0: "Chlorophyll", 1: "Optimistic", H: "Pastel Veil"}, - }, - calyrex: { - inherit: true, - abilities: {0: "Unnerve", H: "Neuroforce"}, - }, - uxie: { - inherit: true, - types: ["Psychic", "Steel"], - abilities: {0: "Levitate", 1: "Neuroforce", H: "Filter"}, - }, - necrozma: { - inherit: true, - abilities: {0: "Prism Armor", H: "Neuroforce"}, - }, - lapras: { - inherit: true, - abilities: {0: "Water Absorb", 1: "Neuroforce", H: "Hydration"}, - }, - psyduck: { - inherit: true, - abilities: {0: "Neuroforce", 1: "Cloud Nine", H: "Swift Swim"}, - }, - golduck: { - inherit: true, - abilities: {0: "Neuroforce", 1: "Vapor Control", H: "Swift Swim"}, - }, - nihilego: { - inherit: true, - abilities: {0: "Beast Boost", H: "Neuroforce"}, - }, - chatot: { - inherit: true, - abilities: {0: "Keen Eye", 1: "Tangled Feet", H: "Neuroforce"}, - }, - wishiwashischool: { - inherit: true, - types: ["Water", "Dragon"], - }, - paras: { - inherit: true, - abilities: {0: "Effect Spore", 1: "Dry Skin", H: "Buzz Off"}, - }, - parasect: { - inherit: true, - abilities: {0: "Effect Spore", 1: "Hydration", H: "Buzz Off"}, - }, - spinarak: { - inherit: true, - abilities: {0: "Buzz Off", 1: "Insomnia", H: "Sniper"}, - }, - ariados: { - inherit: true, - abilities: {0: "Buzz Off", 1: "Merciless", H: "Sniper"}, - }, - combee: { - inherit: true, - abilities: {0: "Honey Gather", 1: "Buzz Off", H: "Hustle"}, - }, - vespiquen: { - inherit: true, - abilities: {0: "Parental Bond", 1: "Buzz Off", H: "Honey Gather"}, - }, - sewaddle: { - inherit: true, - abilities: {0: "Swarm", 1: "Chlorophyll", H: "Buzz Off"}, - }, - swadloon: { - inherit: true, - abilities: {0: "Swarm", 1: "Chlorophyll", H: "Buzz Off"}, - }, - leavanny: { - inherit: true, - abilities: {0: "Parental Bond", 1: "Leaf Guard", H: "Buzz Off"}, - }, - joltik: { - inherit: true, - abilities: {0: "Compound Eyes", 1: "Unnerve", H: "Swarm"}, - }, - galvantula: { - inherit: true, - abilities: {0: "Compound Eyes", 1: "Unnerve", H: "Swarm"}, - }, - pheromosa: { - inherit: true, - abilities: {0: "Beast Boost", H: "Buzz Off"}, - }, - vikavolt: { - inherit: true, - abilities: {0: "Levitate", H: "Scavenge"}, - }, - starmie: { - inherit: true, - abilities: {0: "Gravitation", 1: "Natural Cure", H: "Analytic"}, - }, - forretress: { - inherit: true, - abilities: {0: "Sturdy", 1: "Gravitation", H: "Overcoat"}, - }, - steelixmega: { - inherit: true, - abilities: {0: "Gravitation"}, - }, - baltoy: { - inherit: true, - abilities: {0: "Levitate", 1: "Gravitation", H: "Water Compaction"}, - }, - claydol: { - inherit: true, - abilities: {0: "Levitate", 1: "Gravitation", H: "Water Compaction"}, - }, - torterra: { - inherit: true, - abilities: {0: "Overgrow", H: "Gravitation"}, - }, - cresselia: { - inherit: true, - types: ["Psychic", "Fairy"], - abilities: {0: "Levitate", 1: "Cloud Nine", H: "Gravitation"}, - }, - giratina: { - inherit: true, - abilities: {0: "Pressure", 1: "Gravitation", H: "Telepathy"}, - }, - elgyem: { - inherit: true, - abilities: {0: "Gravitation", 1: "Synchronize", H: "Analytic"}, - }, - beheeyem: { - inherit: true, - abilities: {0: "Gravitation", 1: "Synchronize", H: "Analytic"}, - }, - orbeetle: { - inherit: true, - abilities: {0: "Swarm", 1: "Frisk", H: "Gravitation"}, - }, - stonjourner: { - inherit: true, - abilities: {0: "Power Spot", H: "Gravitation"}, - }, - rhyhorn: { - inherit: true, - abilities: {0: "Lightning Rod", 1: "Rock Head", H: "Magma Armor"}, - }, - rhydon: { - inherit: true, - abilities: {0: "Lightning Rod", 1: "Rock Head", H: "Magma Armor"}, - }, - rhyperior: { - inherit: true, - abilities: {0: "Lightning Rod", 1: "Solid Rock", H: "Magma Armor"}, - }, - diglettalola: { - inherit: true, - abilities: {0: "Magma Armor", 1: "Tangling Hair", H: "Sand Force"}, - }, - dugtrioalola: { - inherit: true, - abilities: {0: "Magma Armor", 1: "Tangling Hair", H: "Sand Force"}, - }, - turtonator: { - inherit: true, - abilities: {0: "Shell Armor", 1: "Optimistic", H: "Magma Armor"}, - }, - entei: { - inherit: true, - abilities: {0: "Pressure", 1: "Magma Armor", H: "Inner Focus"}, - }, - suicune: { - inherit: true, - abilities: {0: "Pressure", 1: "Hydration", H: "Inner Focus"}, - }, - torkoal: { - inherit: true, - abilities: {0: "White Smoke", 1: "Drought", H: "Magma Armor"}, - }, - crustle: { - inherit: true, - abilities: {0: "Sturdy", 1: "Magma Armor", H: "Weak Armor"}, - }, - archeops: { - inherit: true, - abilities: {0: "Defeatist", H: "Early Bird"}, - }, - celesteela: { - inherit: true, - abilities: {0: "Beast Boost", H: "Flare Boost"}, - }, - zarude: { - inherit: true, - abilities: {0: "Natural Cure", H: "Leaf Guard"}, - }, - zarudedada: { - inherit: true, - abilities: {0: "Parental Bond", H: "Leaf Guard"}, - }, - shiftry: { - inherit: true, - abilities: {0: "Chlorophyll", 1: "Leaf Guard", H: "Optimistic"}, - }, - appletun: { - inherit: true, - abilities: {0: "Ripen", 1: "Leaf Guard", H: "Thick Fat"}, - }, - tropius: { - inherit: true, - abilities: {0: "Chlorophyll", 1: "Leaf Guard", H: "Harvest"}, - }, - exeggutor: { - inherit: true, - abilities: {0: "Chlorophyll", 1: "Leaf Guard", H: "Harvest"}, - }, - virizion: { - inherit: true, - abilities: {0: "Justified", H: "Leaf Guard"}, - }, - shayminsky: { - inherit: true, - abilities: {0: "Leaf Guard"}, - }, - victreebel: { - inherit: true, - abilities: {0: "Chlorophyll", 1: "Leaf Guard", H: "Gluttony"}, - }, - sirfetchd: { - inherit: true, - abilities: {0: "Steadfast", 1: "Leaf Guard", H: "Scrappy"}, - }, - banette: { - inherit: true, - abilities: {0: "Insomnia", 1: "Soul Link", H: "Cursed Body"}, - }, - spiritomb: { - inherit: true, - abilities: {0: "Pressure", 1: "Soul Link", H: "Wandering Spirit"}, - }, - hoopa: { - inherit: true, - abilities: {0: "Magician", H: "Wandering Spirit"}, - }, - hoopaunbound: { - inherit: true, - abilities: {0: "Magician", H: "Soul Link"}, - }, - honedge: { - inherit: true, - abilities: {0: "No Guard", 1: "Rivalry", H: "Soul Link"}, - }, - doublade: { - inherit: true, - abilities: {0: "No Guard", 1: "Rivalry", H: "Soul Link"}, - }, - dusclops: { - inherit: true, - types: ["Ghost", "Fighting"], - abilities: {0: "Pressure", 1: "Soul Link", H: "Iron Fist"}, - }, - dusknoir: { - inherit: true, - types: ["Ghost", "Fighting"], - abilities: {0: "Pressure", 1: "Soul Link", H: "Iron Fist"}, - }, - gardevoir: { - inherit: true, - abilities: {0: "Synchronize", 1: "Trace", H: "Soul Link"}, - }, - marowakalola: { - inherit: true, - abilities: {0: "Soul Link", 1: "Lightning Rod", H: "Rock Head"}, - }, - marowak: { - inherit: true, - abilities: {0: "Wandering Spirit", 1: "Lightning Rod", H: "Battle Armor"}, - }, - cofagrigus: { - inherit: true, - abilities: {0: "Mummy", H: "Wandering Spirit"}, - }, - goodra: { - inherit: true, - types: ["Dragon", "Poison"], - abilities: {0: "Sticky Hold", 1: "Neuroforce", H: "Gooey"}, - }, - sliggoo: { - inherit: true, - types: ["Dragon", "Poison"], - abilities: {0: "Sticky Hold", 1: "Hydration", H: "Gooey"}, - }, - dodrio: { - inherit: true, - types: ["Ground", "Flying"], - abilities: {0: "Analytic", 1: "Early Bird", H: "Moody"}, - }, - beedrillmega: { - inherit: true, - types: ["Bug", "Ground"], - abilities: {0: "Adaptability"}, - }, - heracross: { - inherit: true, - abilities: {0: "Honey Gather", 1: "Guts", H: "Moxie"}, - }, - beautifly: { - inherit: true, - abilities: {0: "Swarm", 1: "Honey Gather", H: "Rivalry"}, - }, - dustox: { - inherit: true, - abilities: {0: "Shield Dust", 1: "Honey Gather", H: "Compound Eyes"}, - }, - cherubi: { - inherit: true, - abilities: {0: "Chlorophyll", H: "Honey Gather"}, - }, - snorlax: { - inherit: true, - abilities: {0: "Honey Gather", 1: "Thick Fat", H: "Gluttony"}, - }, - ursaring: { - inherit: true, - abilities: {0: "Guts", 1: "Quick Feet", H: "Honey Gather"}, - }, - surskit: { - inherit: true, - abilities: {0: "Swift Swim", 1: "Honey Gather", H: "Rain Dish"}, - }, - masquerain: { - inherit: true, - abilities: {0: "Intimidate", 1: "Honey Gather", H: "Unnerve"}, - }, - burmy: { - inherit: true, - abilities: {0: "Shed Skin", 1: "Honey Gather", H: "Overcoat"}, - }, - wormadam: { - inherit: true, - abilities: {0: "Simple", 1: "Honey Gather", H: "Overcoat"}, - }, - wormadamsandy: { - inherit: true, - abilities: {0: "Fur Coat", 1: "Honey Gather", H: "Overcoat"}, - }, - wormadamtrash: { - inherit: true, - abilities: {0: "Thick Fat", 1: "Honey Gather", H: "Overcoat"}, - }, - mothim: { - inherit: true, - abilities: {0: "Swarm", 1: "Honey Gather", H: "Tinted Lens"}, - }, - armaldo: { - inherit: true, - abilities: {0: "Battle Armor", 1: "Hydration", H: "Swift Swim"}, - }, - politoed: { - inherit: true, - abilities: {0: "Hydration", 1: "Damp", H: "Drizzle"}, - }, - kangaskhan: { - inherit: true, - abilities: {0: "Early Bird", 1: "Scrappy", H: "Parental Bond"}, - }, - eelektross: { - inherit: true, - types: ["Electric", "Poison"], - abilities: {0: "Levitate", 1: "Neuroforce", H: "Swift Swim"}, - }, - audinomega: { - inherit: true, - abilities: {0: "Fairy Aura"}, - }, - guzzlord: { - inherit: true, - abilities: {0: "Beast Boost", H: "Honey Gather"}, - }, - breloom: { - inherit: true, - abilities: {0: "Toxic Boost", 1: "Technician", H: "Poison Heal"}, - }, - hariyama: { - inherit: true, - abilities: {0: "Thick Fat", 1: "Toxic Boost", H: "Sheer Force"}, - }, - gligar: { - inherit: true, - abilities: {0: "Hyper Cutter", 1: "Sand Veil", H: "Toxic Boost"}, - }, - seismitoad: { - inherit: true, - abilities: {0: "Swift Swim", 1: "Toxic Boost", H: "Water Absorb"}, - }, - heliolisk: { - inherit: true, - abilities: {0: "Dry Skin", 1: "Flare Boost", H: "Solar Power"}, - }, - sunflora: { - inherit: true, - abilities: {0: "Chlorophyll", 1: "Optimistic", H: "Flare Boost"}, - }, - darmanitan: { - inherit: true, - abilities: {0: "Sheer Force", 1: "Gorilla Tactics", H: "Zen Mode"}, - }, - darmanitanzen: { - inherit: true, - abilities: {0: "Sheer Force", 1: "Gorilla Tactics", H: "Zen Mode"}, - }, - primeape: { - inherit: true, - abilities: {0: "Vital Spirit", 1: "Gorilla Tactics", H: "Defiant"}, - }, - oranguru: { - inherit: true, - abilities: {0: "Inner Focus", 1: "Gorilla Tactics", H: "Symbiosis"}, - }, - bewear: { - inherit: true, - abilities: {0: "Fluffy", 1: "Concussion", H: "Unnerve"}, - }, - terrakion: { - inherit: true, - abilities: {0: "Justified", H: "Concussion"}, - }, - pangoro: { - inherit: true, - abilities: {0: "Iron Fist", 1: "Concussion", H: "Scrappy"}, - }, - scrafty: { - inherit: true, - abilities: {0: "Shed Skin", 1: "Moxie", H: "Concussion"}, - }, - eternatus: { - inherit: true, - abilities: {0: "Pressure", H: "Concussion"}, - }, - swoobat: { - inherit: true, - abilities: {0: "Concussion", 1: "Klutz", H: "Simple"}, - }, - druddigon: { - inherit: true, - abilities: {0: "Rough Skin", 1: "Sheer Force", H: "Concussion"}, - }, - victini: { - inherit: true, - abilities: {0: "Victory Star", H: "Neuroforce"}, - }, - garchompmega: { - inherit: true, - abilities: {0: "Neuroforce"}, - }, - raikou: { - inherit: true, - abilities: {0: "Pressure", 1: "Neuroforce", H: "Inner Focus"}, - }, - banettemega: { - inherit: true, - types: ["Ghost", "Steel"], - abilities: {0: "Counterfeit"}, - }, - silvally: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - typenull: { - inherit: true, - abilities: {0: "Battle Armor", 1: "Pressure", H: "Power of Alchemy (Type: Null)"}, - }, - gyaradosmega: { - inherit: true, - abilities: {0: "Rain Dish"}, - }, - amoonguss: { - inherit: true, - abilities: {0: "Effect Spore", 1: "Counterfeit", H: "Regenerator"}, - }, - klefki: { - inherit: true, - abilities: {0: "Prankster", 1: "Counterfeit", H: "Magician"}, - }, - liepard: { - inherit: true, - abilities: {0: "Counterfeit", 1: "Unburden", H: "Prankster"}, - }, - stunfiskgalar: { - inherit: true, - abilities: {0: "Mimicry", H: "Counterfeit"}, - }, - sudowoodo: { - inherit: true, - abilities: {0: "Counterfeit", 1: "Rock Head", H: "Rattled"}, - }, - grimmsnarl: { - inherit: true, - abilities: {0: "Prankster", 1: "Counterfeit", H: "Pickpocket"}, - }, - absol: { - inherit: true, - abilities: {0: "Scavenge", 1: "Super Luck", H: "Justified"}, - }, - luxray: { - inherit: true, - abilities: {0: "Scavenge", 1: "Intimidate", H: "Guts"}, - }, - mandibuzz: { - inherit: true, - abilities: {0: "Big Pecks", 1: "Overcoat", H: "Scavenge"}, - }, - mightyena: { - inherit: true, - abilities: {0: "Intimidate", 1: "Quick Feet", H: "Scavenge"}, - }, - purugly: { - inherit: true, - abilities: {0: "Scavenge", 1: "Unimpressed", H: "Defiant"}, - }, - raticate: { - inherit: true, - abilities: {0: "Scavenge", 1: "Guts", H: "Hustle"}, - }, - raticatealola: { - inherit: true, - abilities: {0: "Scavenge", 1: "Hustle", H: "Thick Fat"}, - }, - staraptor: { - inherit: true, - abilities: {0: "Intimidate", 1: "Scavenge", H: "Reckless"}, - }, - remoraid: { - inherit: true, - abilities: {0: "Scavenge", 1: "Sniper", H: "Moody"}, - }, - octillery: { - inherit: true, - abilities: {0: "Scavenge", 1: "Sniper", H: "Moody"}, - }, - sneasel: { - inherit: true, - abilities: {0: "Inner Focus", 1: "Keen Eye", H: "Snow Cloak"}, - }, - weavile: { - inherit: true, - abilities: {0: "Pressure", 1: "Pickpocket", H: "Snow Cloak"}, - }, - linoone: { - inherit: true, - abilities: {0: "Scavenge", 1: "Gluttony", H: "Quick Feet"}, - }, - whiscash: { - inherit: true, - abilities: {0: "Unimpressed", 1: "Anticipation", H: "Hydration"}, - }, - vileplume: { - inherit: true, - abilities: {0: "Chlorophyll", 1: "Unimpressed", H: "Effect Spore"}, - }, - empoleon: { - inherit: true, - abilities: {0: "Torrent", H: "Competitive"}, - }, - espurr: { - inherit: true, - abilities: {0: "Keen Eye", 1: "Infiltrator", H: "Unimpressed"}, - }, - tsareena: { - inherit: true, - abilities: {0: "Leaf Guard", 1: "Queenly Majesty", H: "Unimpressed"}, - }, - wailord: { - inherit: true, - abilities: {0: "Water Veil", 1: "Unimpressed", H: "Pressure"}, - }, - mudsdale: { - inherit: true, - abilities: {0: "Unimpressed", 1: "Stamina", H: "Inner Focus"}, - }, - cobalion: { - inherit: true, - abilities: {0: "Justified", H: "Unimpressed"}, - }, - lickilicky: { - inherit: true, - abilities: {0: "Unimpressed", 1: "Oblivious", H: "Cloud Nine"}, - }, - musharna: { - inherit: true, - abilities: {0: "Forewarn", 1: "Synchronize", H: "Unimpressed"}, - }, - vaporeon: { - inherit: true, - abilities: {0: "Water Absorb", 1: "Hydration", H: "Power of Alchemy (Vaporeon)"}, - }, - flareon: { - inherit: true, - abilities: {0: "Flash Fire", 1: "Fluffy", H: "Power of Alchemy (Flareon)"}, - }, - espeon: { - inherit: true, - abilities: {0: "Analytic", 1: "Magic Bounce", H: "Power of Alchemy (Espeon)"}, - }, - leafeon: { - inherit: true, - abilities: {0: "Leaf Guard", 1: "Chlorophyll", H: "Power of Alchemy (Leafeon)"}, - }, - glaceon: { - inherit: true, - abilities: {0: "Snow Cloak", 1: "Snow Warning", H: "Power of Alchemy (Glaceon)"}, - }, - keldeo: { - inherit: true, - abilities: {0: "Justified", H: "Vapor Control"}, - }, - keldeoresolute: { - inherit: true, - abilities: {0: "Justified", H: "Vapor Control"}, - }, - gastrodon: { - inherit: true, - abilities: {0: "Sticky Hold", 1: "Storm Drain", H: "Vapor Control"}, - }, - swanna: { - inherit: true, - abilities: {0: "Vapor Control", 1: "Big Pecks", H: "Hydration"}, - }, - volcanion: { - inherit: true, - abilities: {0: "Water Absorb", H: "Vapor Control"}, - }, - walrein: { - inherit: true, - abilities: {0: "Thick Fat", 1: "Ice Body", H: "Vapor Control"}, - }, - floatzel: { - inherit: true, - abilities: {0: "Swift Swim", 1: "Vapor Control", H: "Water Veil"}, - }, - cloyster: { - inherit: true, - abilities: {0: "Vapor Control", 1: "Skill Link", H: "Overcoat"}, - }, - pyroar: { - inherit: true, - abilities: {0: "Rivalry", 1: "Optimistic", H: "Moxie"}, - }, - crobat: { - inherit: true, - abilities: {0: "Inner Focus", 1: "Optimistic", H: "Infiltrator"}, - }, - noivern: { - inherit: true, - abilities: {0: "Frisk", 1: "Optimistic", H: "Scavenge"}, - }, - meloetta: { - inherit: true, - abilities: {0: "Serene Grace", H: "Optimistic"}, - }, - meloettapirouette: { - inherit: true, - abilities: {0: "Serene Grace", H: "Optimistic"}, - }, - sceptilemega: { - inherit: true, - abilities: {0: "Optimistic"}, - }, - kartana: { - inherit: true, - abilities: {0: "Beast Boost", H: "Light Power"}, - }, - salamence: { - inherit: true, - abilities: {0: "Intimidate", 1: "Rivalry", H: "Moxie"}, - }, - girafarig: { - inherit: true, - abilities: {0: "Inner Focus", 1: "Rivalry", H: "Sap Sipper"}, - }, - fearow: { - inherit: true, - abilities: {0: "Keen Eye", 1: "Rivalry", H: "Sniper"}, - }, - tauros: { - inherit: true, - abilities: {0: "Intimidate", 1: "Rivalry", H: "Sheer Force"}, - }, - basculin: { - inherit: true, - abilities: {0: "Reckless", 1: "Adaptability", H: "Rivalry"}, - }, - basculinbluestriped: { - inherit: true, - abilities: {0: "Rock Head", 1: "Adaptability", H: "Rivalry"}, - }, - arctovish: { - inherit: true, - abilities: {0: "Water Absorb", 1: "Snow Cloak", H: "Slush Rush"}, - }, - darmanitangalar: { - inherit: true, - abilities: {0: "Gorilla Tactics", 1: "Snow Cloak", H: "Zen Mode"}, - }, - darmanitangalarzen: { - inherit: true, - abilities: {0: "Gorilla Tactics", 1: "Snow Cloak", H: "Zen Mode"}, - }, - xurkitree: { - inherit: true, - abilities: {0: "Beast Boost", H: "Counterfeit"}, - }, - stakataka: { - inherit: true, - abilities: {0: "Beast Boost", H: "Sand Veil"}, - }, - diancie: { - inherit: true, - abilities: {0: "Clear Body", H: "Sand Veil"}, - }, - carbink: { - inherit: true, - abilities: {0: "Clear Body", 1: "Sturdy", H: "Sand Veil"}, - }, - shuckle: { - inherit: true, - abilities: {0: "Sturdy", 1: "Sand Veil", H: "Contrary"}, - }, - // silvally moment - silvallybug: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallydark: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallydragon: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyelectric: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyfairy: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyfighting: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyfire: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyflying: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyghost: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallygrass: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyground: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyice: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallypoison: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallypsychic: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallyrock: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallysteel: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, - silvallywater: { - inherit: true, - abilities: {0: "RKS System", 1: "Download", H: "Power of Alchemy (Silvally)"}, - }, -}; diff --git a/data/mods/gen8joltemons/random-data.json b/data/mods/gen8joltemons/random-data.json deleted file mode 100644 index b5357e89f680..000000000000 --- a/data/mods/gen8joltemons/random-data.json +++ /dev/null @@ -1,1850 +0,0 @@ -{ - "venusaur": { - "moves": ["sunnyday", "weatherball", "solarbeam", "earthpower"] - }, - "venusaurmega": { - "moves": ["rashpowder", "sludgebomb", "gigadrain", "synthesis"] - }, - "charizard": { - "moves": ["roost", "fireblast", "hurricane", "defog"] - }, - "charizardmegax": { - "moves": ["dragondance", "flareblitz", "dragonclaw", "thunderpunch"] - }, - "charizardmegay": { - "moves": ["weatherball", "focusblast", "solarbeam", "roost"] - }, - "blastoise": { - "moves": ["scald", "rapidspin", "lifedew", "flipturn"] - }, - "butterfree": { - "moves": ["quiverdance", "hurricane", "substitute", "sleeppowder"] - }, - "beedrillmega": { - "moves": ["uturn", "knockoff", "mudspike", "toxicthread"] - }, - "beedrill": { - "moves": ["swordsdance", "poisondart", "xscissor", "mudspike"] - }, - "pidgeot": { - "moves": ["doubleedge", "bravebird", "uturn", "quickattack"] - }, - "pidgeotmega": { - "moves": ["heatwave", "hurricane", "roost", "uturn"] - }, - "raticate": { - "moves": ["facade", "uturn", "suckerpunch", "stompingtantrum"] - }, - "raticatealola": { - "moves": ["swordsdance", "knockoff", "suckerpunch", "doubleedge"] - }, - "fearow": { - "moves": ["bravebird", "drillrun", "uturn", "rapidspin"] - }, - "arbok": { - "moves": ["coil", "gunkshot", "earthquake", "suckerpunch"] - }, - "pikachu": { - "moves": ["electroball", "petaldance", "surf", "voltswitch"] - }, - "raichu": { - "moves": ["volttackle", "fakeout", "extremespeed", "knockoff"] - }, - "raichualola": { - "moves": ["electroball", "psychic", "focusblast", "nastyplot"] - }, - "sandslashalola": { - "moves": ["swordsdance", "earthquake", "tripleaxel", "ironhead"] - }, - "sandslash": { - "moves": ["aridabsorption", "earthquake", "knockoff", "swordsdance"] - }, - "nidoqueen": { - "moves": ["acidicfists", "mudspike", "poisondart", "firepunch"] - }, - "nidoking": { - "moves": ["acidicfists", "mudspike", "poisondart", "icepunch"] - }, - "clefable": { - "moves": ["moonblast", "lifedew", "stealthrock", "flamethrower"] - }, - "ninetalesalola": { - "moves": ["auroraveil", "blizzard", "moonblast", "freezedry"] - }, - "ninetales": { - "moves": ["nastyplot", "fireblast", "solarbeam", "scorchingsands"] - }, - "wigglytuff": { - "moves": ["geomancy", "dazzlinggleam", "focusblast", "thunderbolt"] - }, - "vileplume": { - "moves": ["rashpowder", "strengthsap", "sludgebomb", "gigadrain"] - }, - "parasect": { - "moves": ["spore", "leechlife", "mudspike", "synthesis"] - }, - "venomoth": { - "moves": ["quiverdance", "sleeppowder", "bugbuzz", "sludgebomb"] - }, - "dugtrioalola": { - "moves": ["earthquake", "stoneedge", "suckerpunch", "ironhead"] - }, - "dugtrio": { - "moves": ["earthquake", "stoneedge", "suckerpunch", "memento"] - }, - "persian": { - "moves": ["fakeout", "doubleedge", "crushclaw", "uturn"] - }, - "persianalola": { - "moves": ["darkpulse", "trashtalk", "nastyplot", "thunderbolt"] - }, - "golduck": { - "moves": ["hydropump", "icebeam", "petaldance", "flipturn", "focusblast"] - }, - "primeape": { - "moves": ["closecombat", "aggravate", "uturn", "gunkshot"] - }, - "arcanine": { - "moves": ["flareblitz", "closecombat", "extremespeed", "morningsun"] - }, - "poliwrath": { - "moves": ["liquidation", "closecombat", "acidicfists", "flipturn"] - }, - "alakazam": { - "moves": ["psychic", "focusblast", "dazzlinggleam", "calmmind"] - }, - "alakazammega": { - "moves": ["psychic", "shadowball", "focusblast", "recover"] - }, - "machamp": { - "moves": ["dynamicpunch", "stoneedge", "bulletpunch", "knockoff"] - }, - "victreebel": { - "moves": ["swordsdance", "powerwhip", "poisonjab", "mudspike"] - }, - "tentacruel": { - "moves": ["scald", "rapidspin", "knockoff", "sludgebomb"] - }, - "golem": { - "moves": ["stealthrock", "stoneedge", "earthquake", "rapidspin"] - }, - "golemalola": { - "moves": ["lightninglance", "firepunch", "earthquake", "rapidspin"] - }, - "rapidash": { - "moves": ["swordsdance", "flareblitz", "highhorsepower", "wildcharge"] - }, - "rapidashgalar": { - "moves": ["swordsdance", "playrough", "highhorsepower", "morningsun"] - }, - "slowbromega": { - "moves": ["scald", "futuresight", "slackoff", "teleport"] - }, - "slowbro": { - "moves": ["scald", "futuresight", "slackoff", "teleport"] - }, - "slowbrogalar": { - "moves": ["nastyplot", "shellsidearm", "psychic", "focusblast"] - }, - "magneton": { - "moves": ["thunderbolt", "flashcannon", "hiddenpowerfire", "voltswitch"] - }, - "farfetchd": { - "moves": ["bravebird", "closecombat", "uturn", "leafblade"] - }, - "dodrio": { - "moves": ["earthquake", "bravebird", "tripleaxel", "jumpkick"] - }, - "dewgong": { - "moves": ["whirlpool", "lifedew", "perishsong", "protect"] - }, - "muk": { - "moves": ["recover", "acidicfists", "mudspike", "curse"] - }, - "mukalola": { - "moves": ["knockoff", "recover", "acidicfists", "pursuit"] - }, - "cloyster": { - "moves": ["shellsmash", "iciclespear", "rockblast", "liquidation"] - }, - "gengar": { - "moves": ["shadowball", "sludgewave", "nastyplot", "focusblast"] - }, - "gengarmega": { - "moves": ["hex", "trashtalk", "substitute", "toxic"] - }, - "hypno": { - "moves": ["bellydrum", "zenheadbutt", "hypnosis", "drainpunch"] - }, - "kingler": { - "moves": ["liquidation", "mudspike", "rockslide", "swordsdance"] - }, - "electrode": { - "moves": ["electroball", "rapidspin", "technoblast", "voltswitch"] - }, - "exeggutoralola": { - "moves": ["leafstorm", "dracometeor", "flamethrower", "trickroom"] - }, - "exeggutor": { - "moves": ["leafstorm", "psychic", "hiddenpowerfire", "gigadrain"] - }, - "marowakalola": { - "moves": ["bonemerang", "poltergeist", "flareblitz", "swordsdance"] - }, - "marowak": { - "moves": ["bonemerang", "earthquake", "knockoff", "swordsdance"] - }, - "hitmonlee": { - "moves": ["closecombat", "knockoff", "stoneedge", "poisonjab"] - }, - "hitmonchan": { - "moves": ["drainpunch", "shadowpunch", "machpunch", "icepunch"] - }, - "weezing": { - "moves": ["trashtalk", "flamethrower", "willowisp", "painsplit"] - }, - "weezinggalar": { - "moves": ["strangesteam", "willowisp", "sludgebomb", "defog"] - }, - "rhydon": { - "moves": ["earthquake", "megahorn", "stealthrock", "stoneedge", "toxic"] - }, - "chansey": { - "moves": ["softboiled", "teleport", "toxic", "seismictoss"] - }, - "kangaskhan": { - "moves": ["fakeout", "doubleedge", "suckerpunch", "poweruppunch"] - }, - "kangaskhanmega": { - "moves": ["fakeout", "suckerpunch", "doubleedge", "poweruppunch"] - }, - "seaking": { - "moves": ["swordsdance", "waterfall", "lightninglance", "megahorn"] - }, - "starmie": { - "moves": ["hydropump", "blizzard", "flipturn", "thunder"] - }, - "mrmime": { - "moves": ["trick", "focusblast", "dazzlinggleam", "psychic"] - }, - "mrmimegalar": { - "moves": ["focusblast", "freezedry", "nastyplot", "psychic", "rapidspin"] - }, - "scyther": { - "moves": ["dualwingbeat", "uturn", "swordsdance", "knockoff"] - }, - "jynx": { - "moves": ["lovelykiss", "snowmanjazz", "focusblast", "nastyplot"] - }, - "pinsir": { - "moves": ["swordsdance", "xscissor", "closecombat", "earthquake"] - }, - "pinsirmega": { - "moves": ["swordsdance", "quickattack", "closecombat", "doubleedge"] - }, - "tauros": { - "moves": ["bodyslam", "aggravate", "closecombat", "ironhead"] - }, - "gyaradosmega": { - "moves": ["waterfall", "crunch", "rapidspin", "lifedew"] - }, - "gyarados": { - "moves": ["dragondance", "waterfall", "earthquake", "powerwhip"] - }, - "lapras": { - "moves": ["meltingpoint", "icebeam", "thunderbolt", "lifedew"] - }, - "ditto": { - "moves": ["transform"] - }, - "vaporeon": { - "moves": ["scald", "teleport", "lifedew", "toxic"] - }, - "jolteon": { - "moves": ["thunderbolt", "buzzybuzz", "aurorabeam", "spikes", "voltswitch"] - }, - "flareon": { - "moves": ["firelash", "morningsun", "teleport", "sizzlyslide"] - }, - "omastar": { - "moves": ["shellsmash", "earthpower", "hydropump", "icebeam"] - }, - "kabutops": { - "moves": ["swordsdance", "liquidation", "stoneedge", "superpower"] - }, - "aerodactyl": { - "moves": ["dragondance", "stoneedge", "dualwingbeat", "icefang"] - }, - "aerodactylmega": { - "moves": ["dualwingbeat", "stoneedge", "earthquake", "roost"] - }, - "snorlax": { - "moves": ["bodyslam", "curse", "payback", "earthquake"] - }, - "articunogalar": { - "moves": ["hurricane", "defog", "recover", "uturn"] - }, - "articuno": { - "moves": ["meltingpoint", "freezedry", "hurricane", "uturn"] - }, - "zapdosgalar": { - "moves": ["thunderouskick", "bravebird", "crushclaw", "uturn"] - }, - "zapdos": { - "moves": ["thunderbolt", "hurricane", "heatwave", "uturn"] - }, - "moltresgalar": { - "moves": ["fierywrath", "toxic", "defog", "uturn"] - }, - "moltres": { - "moves": ["roost", "fireblast", "hurricane", "hiddenpowergrass"] - }, - "dragonite": { - "moves": ["dragondance", "dualwingbeat", "firepunch", "icepunch"] - }, - "mew": { - "moves": ["nastyplot", "psychic", "focusblast", "thunder"] - }, - "meganium": { - "moves": ["curse", "lifedew", "petalblizzard", "earthquake"] - }, - "typhlosion": { - "moves": ["eruption", "fireblast", "earthpower", "meteorbeam"] - }, - "feraligatr": { - "moves": ["swordsdance", "liquidation", "aggravate", "suckerpunch"] - }, - "furret": { - "moves": ["coil", "doubleedge", "knockoff", "firepunch"] - }, - "noctowl": { - "moves": ["nastyplot", "hurricane", "roost", "heatwave"] - }, - "ledian": { - "moves": ["reflect", "lightscreen", "uturn", "skysoiree"] - }, - "ariados": { - "moves": ["stickyweb", "megahorn", "toxicthread", "suckerpunch"] - }, - "crobat": { - "moves": ["crosspoison", "curse", "bravebird", "aggravate"] - }, - "lanturn": { - "moves": ["scald", "voltswitch", "protect", "toxic", "discharge"] - }, - "xatu": { - "moves": ["psychic", "roost", "teleport", "heatwave"] - }, - "ampharos": { - "moves": ["slackoff", "discharge", "hiddenpowerice", "voltswitch"] - }, - "ampharosmega": { - "moves": ["slackoff", "dracometeor", "focusblast", "thunderbolt"] - }, - "bellossom": { - "moves": ["quiverdance", "strengthsap", "gigadrain", "moonlitwaltz"] - }, - "azumarill": { - "moves": ["bellydrum", "aquajet", "enchantedpunch", "mudspike"] - }, - "sudowoodo": { - "moves": ["headsmash", "stealthrock", "earthquake", "woodhammer"] - }, - "politoed": { - "moves": ["scald", "lifedew", "icebeam", "flipturn"] - }, - "jumpluff": { - "moves": ["skysoiree", "uturn", "strengthsap", "sleeppowder"] - }, - "sunflora": { - "moves": ["leafstorm", "earthpower", "hiddenpowerfire", "gigadrain"] - }, - "quagsire": { - "moves": ["scald", "earthquake", "recover", "curse"] - }, - "espeon": { - "moves": ["psychic", "focusblast", "meteorbeam", "shadowball"] - }, - "umbreon": { - "moves": ["aggravate", "toxicthread", "teleport", "moonlight"] - }, - "slowkinggalar": { - "moves": ["futuresight", "sludgebomb", "scald", "fireblast"] - }, - "slowking": { - "moves": ["scald", "futuresight", "slackoff", "teleport"] - }, - "unown": { - "moves": ["hiddenpowerpsychic"] - }, - "wobbuffet": { - "moves": ["counter", "mirrorcoat", "encore", "destinybond"] - }, - "girafarig": { - "moves": ["nastyplot", "hypervoice", "psychic", "focusblast"] - }, - "forretress": { - "moves": ["spikes", "rapidspin", "voltswitch", "gyroball"] - }, - "dunsparce": { - "moves": ["coil", "glare", "headbutt", "roost"] - }, - "steelixmega": { - "moves": ["aridabsorption", "stealthrock", "irontail", "earthquake"] - }, - "steelix": { - "moves": ["aridabsorption", "curse", "heavyslam", "earthquake"] - }, - "granbull": { - "moves": ["smother", "thunderwave", "earthquake", "healbell"] - }, - "qwilfish": { - "moves": ["swordsdance", "liquidation", "poisondart", "mudspike"] - }, - "scizor": { - "moves": ["swordsdance", "bulletpunch", "uturn", "knockoff"] - }, - "scizormega": { - "moves": ["bulkup", "bulletpunch", "knockoff", "roost"] - }, - "shuckle": { - "moves": ["aridabsorption", "stealthrock", "toxicthread", "knockoff"] - }, - "heracross": { - "moves": ["swordsdance", "megahorn", "closecombat", "knockoff"] - }, - "heracrossmega": { - "moves": ["armthrust", "pinmissile", "knockoff", "swordsdance"] - }, - "sneasel": { - "moves": ["knockoff", "tripleaxel", "iceshard", "pursuit"] - }, - "ursaring": { - "moves": ["facade", "closecombat", "payback", "swordsdance"] - }, - "magcargo": { - "moves": ["lavaplume", "earthpower", "recover", "stealthrock"] - }, - "corsolagalar": { - "moves": ["stealthrock", "nightshade", "willowisp", "strengthsap"] - }, - "corsola": { - "moves": ["stealthrock", "lifedew", "scald", "earthpower"] - }, - "octillery": { - "moves": ["hydropump", "fireblast", "icebeam", "energyball"] - }, - "delibird": { - "moves": ["spikes", "tripleaxel", "bravebird", "drillrun"] - }, - "mantine": { - "moves": ["scald", "roost", "toxic", "defog"] - }, - "skarmory": { - "moves": ["bodypress", "roost", "spikes", "irondefense"] - }, - "houndoom": { - "moves": ["darkpulse", "fireblast", "trashtalk", "hiddenpowergrass"] - }, - "houndoommega": { - "moves": ["darkpulse", "fireblast", "trashtalk", "nastyplot"] - }, - "kingdra": { - "moves": ["hydropump", "icebeam", "dracometeor", "flipturn"] - }, - "donphan": { - "moves": ["earthquake", "knockoff", "rapidspin", "iceshard"] - }, - "porygon2": { - "moves": ["icebeam", "foulplay", "recover", "thunderwave"] - }, - "stantler": { - "moves": ["doubleedge", "suckerpunch", "earthquake", "jumpkick"] - }, - "smeargle": { - "moves": ["stickyweb", "stealthrock", "spore", "rapidspin"] - }, - "hitmontop": { - "moves": ["rapidspin", "tripleaxel", "closecombat", "payback"] - }, - "miltank": { - "moves": ["milkdrink", "bodyslam", "curse", "bodypress"] - }, - "blissey": { - "moves": ["lifedew", "teleport", "stealthrock", "counterspell"] - }, - "raikou": { - "moves": ["thunderbolt", "aurorabeam", "aurasphere", "voltswitch"] - }, - "entei": { - "moves": ["sacredfire", "extremespeed", "stoneedge", "flareblitz"] - }, - "suicune": { - "moves": ["calmmind", "scald", "substitute", "protect"] - }, - "tyranitar": { - "moves": ["stealthrock", "stoneedge", "crunch", "pursuit"] - }, - "tyranitarmega": { - "moves": ["dragondance", "stoneedge", "crunch", "icepunch"] - }, - "celebi": { - "moves": ["leafstorm", "earthpower", "nastyplot", "psychic"] - }, - "sceptilemega": { - "moves": ["leafstorm", "dragonpulse", "focusblast", "toxic"] - }, - "sceptile": { - "moves": ["swordsdance", "earthquake", "leafblade", "rockslide"] - }, - "blazikenmega": { - "moves": ["overheat", "closecombat", "uturn", "protect"] - }, - "blaziken": { - "moves": ["flareblitz", "closecombat", "thunderpunch", "swordsdance"] - }, - "swampert": { - "moves": ["flipturn", "earthquake", "toxic", "stealthrock"] - }, - "swampertmega": { - "moves": ["liquidation", "flipturn", "earthquake", "acidicfists"] - }, - "mightyena": { - "moves": ["aggravate", "suckerpunch", "irontail", "playrough"] - }, - "linoone": { - "moves": ["bellydrum", "extremespeed", "seedbomb", "stompingtantrum"] - }, - "beautifly": { - "moves": ["quiverdance", "skysoiree", "bugbuzz", "hiddenpowerground"] - }, - "dustox": { - "moves": ["rashpowder", "venoshock", "roost", "moonlitwaltz"] - }, - "ludicolo": { - "moves": ["hydropump", "petaldance", "icebeam", "flipturn"] - }, - "shiftry": { - "moves": ["leafstorm", "moonlitwaltz", "focusblast", "nastyplot"] - }, - "swellow": { - "moves": ["boomburst", "hurricane", "heatwave", "uturn"] - }, - "pelipper": { - "moves": ["scald", "roost", "defog", "uturn"] - }, - "gardevoir": { - "moves": ["trick", "psychic", "moonblast", "mysticalfire"] - }, - "gardevoirmega": { - "moves": ["hypervoice", "rapidspin", "psyshock", "focusblast"] - }, - "masquerain": { - "moves": ["stickyweb", "skysoiree", "hydropump", "quiverdance"] - }, - "breloom": { - "moves": ["swordsdance", "spore", "machpunch", "bulletseed"] - }, - "slaking": { - "moves": ["doubleedge", "aggravate", "earthquake", "lowkick"] - }, - "ninjask": { - "moves": ["swordsdance", "uturn", "dualwingbeat", "mudspike"] - }, - "shedinja": { - "moves": ["hex", "toxic", "curse", "protect"] - }, - "exploud": { - "moves": ["boomburst", "focusblast", "overheat", "hydropump"] - }, - "hariyama": { - "moves": ["closecombat", "fakeout", "icepunch", "knockoff"] - }, - "delcatty": { - "moves": ["fakeout", "doubleedge", "suckerpunch", "thunderwave"] - }, - "sableye": { - "moves": ["recover", "substitute", "knockoff", "curse"] - }, - "sableyemega": { - "moves": ["recover", "knockoff", "willowisp", "taunt"] - }, - "mawile": { - "moves": ["stealthrock", "playrough", "superfang", "toxic"] - }, - "mawilemega": { - "moves": ["enchantedpunch", "icepunch", "thunderpunch", "firefang"] - }, - "aggron": { - "moves": ["headsmash", "heavyslam", "earthquake", "icepunch"] - }, - "aggronmega": { - "moves": ["reconstruct", "stealthrock", "heavyslam", "earthquake"] - }, - "medicham": { - "moves": ["fakeout", "highjumpkick", "enchantedpunch", "icepunch"] - }, - "medichammega": { - "moves": ["fakeout", "highjumpkick", "shadowpunch", "skyuppercut"] - }, - "manectric": { - "moves": ["thunderbolt", "overheat", "voltswitch", "switcheroo"] - }, - "manectricmega": { - "moves": ["thunderbolt", "overheat", "hiddenpowerice", "voltswitch"] - }, - "plusle": { - "moves": ["nastyplot", "thunderbolt", "hiddenpowerice", "grassknot"] - }, - "minun": { - "moves": ["nastyplot", "batonpass", "thunderbolt", "hiddenpowerice"] - }, - "volbeat": { - "moves": ["tailglow", "batonpass", "bugbuzz", "thunderbolt"] - }, - "illumise": { - "moves": ["roost", "thunderwave", "uturn", "bugbuzz"] - }, - "swalot": { - "moves": ["acidicfists", "earthquake", "icepunch", "aggravate"] - }, - "sharpedo": { - "moves": ["liquidation", "aggravate", "closecombat", "protect"] - }, - "sharpedomega": { - "moves": ["icefang", "crunch", "closecombat", "protect"] - }, - "wailord": { - "moves": ["liquidation", "lifedew", "curse", "earthquake"] - }, - "camerupt": { - "moves": ["fireblast", "earthpower", "stealthrock", "aridabsorption"] - }, - "cameruptmega": { - "moves": ["fireblast", "earthpower", "stealthrock", "aridabsorption"] - }, - "torkoal": { - "moves": ["stealthrock", "lavaplume", "bodypress", "aridabsorption"] - }, - "grumpig": { - "moves": ["psychic", "focusblast", "shadowball", "trick"] - }, - "spinda": { - "moves": ["fakeout", "doubleedge", "superpower", "suckerpunch"] - }, - "flygon": { - "moves": ["earthquake", "outrage", "stoneedge", "dragondance"] - }, - "cacturne": { - "moves": ["spikes", "seedbomb", "aggravate", "suckerpunch"] - }, - "altaria": { - "moves": ["defog", "roost", "skysoiree", "flamethrower"] - }, - "altariamega": { - "moves": ["roost", "dragondance", "return", "earthquake"] - }, - "zangoose": { - "moves": ["facade", "quickattack", "knockoff", "closecombat"] - }, - "seviper": { - "moves": ["swordsdance", "poisondart", "poisonjab", "knockoff", "earthquake"] - }, - "lunatone": { - "moves": ["meteorbeam", "psyshock", "earthpower", "rockpolish"] - }, - "solrock": { - "moves": ["swordsdance", "stoneedge", "flareblitz", "earthquake"] - }, - "whiscash": { - "moves": ["dragondance", "liquidation", "earthquake", "stoneedge"] - }, - "crawdaunt": { - "moves": ["swordsdance", "knockoff", "crabhammer", "aquajet"] - }, - "claydol": { - "moves": ["rapidspin", "stealthrock", "scorchingsands", "teleport"] - }, - "cradily": { - "moves": ["stealthrock", "recover", "gigadrain", "toxic"] - }, - "armaldo": { - "moves": ["rapidspin", "stoneedge", "knockoff", "aridabsorption"] - }, - "milotic": { - "moves": ["scald", "lifedew", "flipturn", "dragontail"] - }, - "castform": { - "moves": ["raindance", "hydropump", "snowmanjazz", "thunder"] - }, - "kecleon": { - "moves": ["knockoff", "mudspike", "suckerpunch", "drainpunch"] - }, - "banette": { - "moves": ["swordsdance", "poltergeist", "gunkshot", "superpower"] - }, - "banettemega": { - "moves": ["shiftgear", "poltergeist", "ironhead", "superpower"] - }, - "tropius": { - "moves": ["dragondance", "roost", "earthquake", "leafblade"] - }, - "chimecho": { - "moves": ["healingwish", "psychic", "recover", "thunderwave"] - }, - "absol": { - "moves": ["nightslash", "stoneedge", "suckerpunch", "psychocut"] - }, - "absolmega": { - "moves": ["closecombat", "knockoff", "playrough", "suckerpunch"] - }, - "glalie": { - "moves": ["iceshard", "iciclecrash", "earthquake", "protect"] - }, - "glaliemega": { - "moves": ["spikes", "doubleedge", "earthquake", "explosion"] - }, - "walrein": { - "moves": ["meltingpoint", "toxic", "superfang", "protect"] - }, - "huntail": { - "moves": ["waterfall", "shellsmash", "suckerpunch", "icefang"] - }, - "gorebyss": { - "moves": ["shellsmash", "hydropump", "icebeam", "hiddenpowergrass"] - }, - "relicanth": { - "moves": ["curse", "liquidation", "headsmash", "earthquake"] - }, - "luvdisc": { - "moves": ["scald", "icebeam", "mistyexplosion", "flipturn"] - }, - "salamence": { - "moves": ["dracometeor", "hurricane", "flamethrower", "roost"] - }, - "metagross": { - "moves": ["meteormash", "icepunch", "thunderpunch", "bulletpunch"] - }, - "metagrossmega": { - "moves": ["meteormash", "thunderpunch", "icepunch", "earthquake"] - }, - "regirock": { - "moves": ["curse", "rockblast", "bodypress", "reconstruct"] - }, - "regice": { - "moves": ["icebeam", "focusblast", "thunderbolt", "rockpolish"] - }, - "registeel": { - "moves": ["bodypress", "reconstruct", "heavyslam", "stealthrock"] - }, - "latias": { - "moves": ["defog", "healingwish", "dracometeor", "psychic"] - }, - "latiasmega": { - "moves": ["calmmind", "psyshock", "mysticalfire", "roost"] - }, - "latios": { - "moves": ["calmmind", "agility", "psychic", "aurasphere"] - }, - "latiosmega": { - "moves": ["psychic", "aurasphere", "icebeam", "recover"] - }, - "kyogre": { - "moves": ["waterspout", "thunder", "icebeam", "originpulse"] - }, - "kyogreprimal": { - "moves": ["calmmind", "thunder", "icebeam", "originpulse"] - }, - "groudon": { - "moves": ["precipiceblades", "heatcrash", "swordsdance", "aridabsorption"] - }, - "groudonprimal": { - "moves": ["precipiceblades", "heatcrash", "stealthrock", "aridabsorption"] - }, - "rayquaza": { - "moves": ["hurricane", "focusblast", "icebeam", "thunderbolt"] - }, - "rayquazamega": { - "moves": ["dragonascent", "vcreate", "extremespeed", "swordsdance"] - }, - "jirachi": { - "moves": ["ironhead", "uturn", "icepunch", "trick"] - }, - "deoxysdefense": { - "moves": ["nightshade", "cosmicpower", "taunt", "recover"] - }, - "torterra": { - "moves": ["swordsdance", "woodhammer", "earthquake", "avalanche"] - }, - "infernape": { - "moves": ["overheat", "closecombat", "gunkshot", "uturn"] - }, - "empoleon": { - "moves": ["scald", "lifedew", "flipturn", "flashcannon"] - }, - "staraptor": { - "moves": ["bravebird", "doubleedge", "closecombat", "uturn"] - }, - "bibarel": { - "moves": ["swordsdance", "rapidspin", "liquidation", "return"] - }, - "kricketune": { - "moves": ["leechlife", "stickyweb", "taunt", "brickbreak"] - }, - "luxray": { - "moves": ["lightninglance", "superpower", "voltswitch", "icefang"] - }, - "roserade": { - "moves": ["spikes", "gigadrain", "sludgebomb", "hiddenpowerfire"] - }, - "rampardos": { - "moves": ["headsmash", "firepunch", "superpower", "zenheadbutt"] - }, - "bastiodon": { - "moves": ["reconstruct", "rockslide", "metalburst", "stealthrock"] - }, - "wormadam": { - "moves": ["quiverdance", "gigadrain", "earthpower", "thunderbolt"] - }, - "wormadamsandy": { - "moves": ["spikes", "recover", "earthquake", "uturn"] - }, - "wormadamtrash": { - "moves": ["rapidspin", "flashcannon", "uturn", "stealthrock"] - }, - "mothim": { - "moves": ["lunge", "mudspike", "uturn", "roost"] - }, - "vespiquen": { - "moves": ["attackorder", "toxicthread", "healorder", "signalbeam"] - }, - "pachirisu": { - "moves": ["electroball", "hiddenpowerice", "grassknot", "voltswitch"] - }, - "floatzel": { - "moves": ["liquidation", "flipturn", "icepunch", "lowkick"] - }, - "cherrim": { - "moves": ["solarblade", "weatherball", "growth", "hiddenpowerground"] - }, - "gastrodon": { - "moves": ["recover", "scald", "earthpower", "toxic"] - }, - "ambipom": { - "moves": ["tailslap", "armthrust", "knockoff", "uturn"] - }, - "drifblim": { - "moves": ["shadowball", "calmmind", "strengthsap", "thunderbolt"] - }, - "lopunny": { - "moves": ["return", "closecombat", "switcheroo", "healingwish"] - }, - "lopunnymega": { - "moves": ["fakeout", "return", "closecombat", "uturn"] - }, - "mismagius": { - "moves": ["hex", "toxic", "moonblast", "taunt"] - }, - "honchkrow": { - "moves": ["suckerpunch", "aggravate", "bravebird", "superpower"] - }, - "purugly": { - "moves": ["fakeout", "bodyslam", "knockoff", "uturn"] - }, - "skuntank": { - "moves": ["strengthsap", "willowisp", "knockoff", "partingshot"] - }, - "bronzong": { - "moves": ["stealthrock", "heavyslam", "earthquake", "toxic"] - }, - "chatot": { - "moves": ["boomburst", "skysoiree", "heatwave", "nastyplot"] - }, - "spiritomb": { - "moves": ["poltergeist", "suckerpunch", "pursuit", "willowisp"] - }, - "garchompmega": { - "moves": ["swordsdance", "earthquake", "scaleshot", "firefang"] - }, - "garchomp": { - "moves": ["earthquake", "dracometeor", "fireblast", "aridabsorption"] - }, - "lucario": { - "moves": ["swordsdance", "closecombat", "meteormash", "extremespeed"] - }, - "lucariomega": { - "moves": ["swordsdance", "closecombat", "meteormash", "skyuppercut"] - }, - "hippowdon": { - "moves": ["slackoff", "earthquake", "stealthrock", "stoneedge"] - }, - "drapion": { - "moves": ["knockoff", "poisonjab", "pursuit", "earthquake"] - }, - "toxicroak": { - "moves": ["swordsdance", "gunkshot", "armthrust", "suckerpunch"] - }, - "carnivine": { - "moves": ["swordsdance", "powerwhip", "knockoff", "mudspike"] - }, - "lumineon": { - "moves": ["surf", "icebeam", "hiddenpowergrass", "uturn"] - }, - "abomasnow": { - "moves": ["blizzard", "auroraveil", "leafstorm", "focusblast"] - }, - "abomasnowmega": { - "moves": ["rototiller", "grassyglide", "avalanche", "rockslide"] - }, - "weavile": { - "moves": ["knockoff", "tripleaxel", "iceshard", "swordsdance"] - }, - "magnezone": { - "moves": ["thunderbolt", "hiddenpowerfire", "flashcannon", "voltswitch"] - }, - "lickilicky": { - "moves": ["wish", "rapidspin", "protect", "knockoff"] - }, - "rhyperior": { - "moves": ["aridabsorption", "rapidspin", "earthquake", "stoneedge"] - }, - "tangrowth": { - "moves": ["gigadrain", "knockoff", "focusblast", "smother"] - }, - "electivire": { - "moves": ["thunderpunch", "knockoff", "icepunch", "suckerpunch"] - }, - "magmortar": { - "moves": ["fireblast", "focusblast", "recover", "thunderbolt"] - }, - "togekiss": { - "moves": ["nastyplot", "skysoiree", "flamethrower", "roost"] - }, - "yanmega": { - "moves": ["bugbuzz", "airslash", "gigadrain", "uturn"] - }, - "leafeon": { - "moves": ["sappyseed", "strengthsap", "teleport", "mudspike"] - }, - "glaceon": { - "moves": ["blizzard", "freezedry", "meltingpoint", "hiddenpowerfire"] - }, - "gliscor": { - "moves": ["uturn", "earthquake", "knockoff", "roost"] - }, - "mamoswine": { - "moves": ["iceshard", "earthquake", "iciclecrash", "superpower"] - }, - "porygonz": { - "moves": ["technoblast", "shadowball", "icebeam", "nastyplot"] - }, - "gallademega": { - "moves": ["closecombat", "knockoff", "swordsdance", "tripleaxel"] - }, - "gallade": { - "moves": ["swordsdance", "closecombat", "knockoff", "rapidspin"] - }, - "probopass": { - "moves": ["stealthrock", "powergem", "earthpower", "aurorabeam"] - }, - "dusknoir": { - "moves": ["poltergeist", "bodypress", "strengthsap", "icepunch"] - }, - "froslass": { - "moves": ["snowmanjazz", "spikes", "taunt", "shadowball"] - }, - "rotom": { - "moves": ["nastyplot", "thunderbolt", "shadowball", "painsplit"] - }, - "rotomheat": { - "moves": ["nastyplot", "overheat", "discharge", "painsplit"] - }, - "rotomwash": { - "moves": ["voltswitch", "hydropump", "defog", "willowisp"] - }, - "rotomfrost": { - "moves": ["hypervoice", "thunderbolt", "voltswitch", "nastyplot"] - }, - "rotomfan": { - "moves": ["nastyplot", "electroball", "airslash", "protect"] - }, - "rotommow": { - "moves": ["thunderbolt", "leafstorm", "voltswitch", "trick"] - }, - "uxie": { - "moves": ["stealthrock", "teleport", "doomdesire", "taunt"] - }, - "mesprit": { - "moves": ["psychic", "moonblast", "hiddenpowerfire", "nastyplot"] - }, - "azelf": { - "moves": ["psychic", "focusblast", "thunderbolt", "uturn"] - }, - "dialga": { - "moves": ["dracometeor", "flashcannon", "fireblast", "stealthrock"] - }, - "palkia": { - "moves": ["hydropump", "spacialrend", "thunder", "fireblast"] - }, - "heatran": { - "moves": ["stealthrock", "earthpower", "magmastorm", "flashcannon"] - }, - "regigigas": { - "moves": ["return", "earthquake", "knockoff", "reconstruct"] - }, - "giratina": { - "moves": ["defog", "curse", "willowisp", "rest"] - }, - "giratinaorigin": { - "moves": ["poltergeist", "shadowsneak", "dracometeor", "earthquake"] - }, - "cresselia": { - "moves": ["moonblast", "psyshock", "moonlight", "calmmind"] - }, - "phione": { - "moves": ["scald", "knockoff", "uturn", "lifedew"] - }, - "manaphy": { - "moves": ["tailglow", "surf", "psychic", "energyball"] - }, - "darkrai": { - "moves": ["hypnosis", "moonlitwaltz", "focusblast", "nastyplot"] - }, - "shayminsky": { - "moves": ["seedflare", "skysoiree", "earthpower", "healingwish"] - }, - "shaymin": { - "moves": ["seedflare", "earthpower", "substitute", "leechseed"] - }, - "victini": { - "moves": ["vcreate", "boltstrike", "glaciate", "uturn"] - }, - "serperior": { - "moves": ["leafstorm", "hiddenpowerfire", "substitute", "glare"] - }, - "emboar": { - "moves": ["flareblitz", "revenge", "earthquake", "suckerpunch"] - }, - "samurott": { - "moves": ["shellsmash", "hydropump", "focusblast", "blizzard"] - }, - "watchog": { - "moves": ["focusblast", "shadowball", "nastyplot", "thunder"] - }, - "stoutland": { - "moves": ["return", "superpower", "playrough", "bonemerang"] - }, - "liepard": { - "moves": ["nastyplot", "darkpulse", "trashtalk", "copycat"] - }, - "simisage": { - "moves": ["rototiller", "seedbomb", "superpower", "knockoff"] - }, - "simisear": { - "moves": ["nastyplot", "overheat", "focusblast", "grassknot"] - }, - "simipour": { - "moves": ["hydropump", "icebeam", "focusblast", "flipturn"] - }, - "musharna": { - "moves": ["lifedew", "calmmind", "psyshock", "moonblast"] - }, - "unfezant": { - "moves": ["uturn", "quickattack", "aggravate", "bravebird"] - }, - "zebstrika": { - "moves": ["lightninglance", "hiddenpowerice", "overheat", "voltswitch"] - }, - "gigalith": { - "moves": ["stealthrock", "stoneedge", "avalanche", "earthquake"] - }, - "swoobat": { - "moves": ["calmmind", "roost", "storedpower", "skysoiree"] - }, - "excadrill": { - "moves": ["swordsdance", "earthquake", "ironhead", "aridabsorption"] - }, - "audinomega": { - "moves": ["calmmind", "lifedew", "moonblast", "flamethrower"] - }, - "audino": { - "moves": ["lifedew", "toxic", "knockoff", "healbell"] - }, - "gurdurr": { - "moves": ["bulkup", "defog", "drainpunch", "knockoff", "machpunch"] - }, - "conkeldurr": { - "moves": ["closecombat", "knockoff", "machpunch", "icepunch"] - }, - "seismitoad": { - "moves": ["stealthrock", "earthquake", "scald", "toxic"] - }, - "throh": { - "moves": ["circlethrow", "knockoff", "rest", "sleeptalk"] - }, - "sawk": { - "moves": ["closecombat", "knockoff", "poisonjab", "skyuppercut"] - }, - "leavanny": { - "moves": ["stickyweb", "xscissor", "knockoff", "leafblade"] - }, - "scolipede": { - "moves": ["swordsdance", "earthquake", "megahorn", "poisonjab"] - }, - "whimsicott": { - "moves": ["rashpowder", "uturn", "moonblast", "energyball"] - }, - "lilligant": { - "moves": ["quiverdance", "leafstorm", "hiddenpowerfire", "sleeppowder"] - }, - "basculin": { - "moves": ["flipturn", "liquidation", "superpower", "psychicfangs"] - }, - "basculinbluestriped": { - "moves": ["hydropump", "flipturn", "icebeam", "finalgambit"] - }, - "krookodile": { - "moves": ["rapidspin", "earthquake", "knockoff", "aridabsorption"] - }, - "darmanitan": { - "moves": ["flareblitz", "thunderpunch", "uturn", "earthquake"] - }, - "darmanitanzen": { - "moves": ["fireblast", "expandingforce", "uturn", "focusblast"] - }, - "darmanitangalar": { - "moves": ["icepunch", "flareblitz", "uturn", "earthquake"] - }, - "darmanitangalarzen": { - "moves": ["icepunch", "flareblitz", "uturn", "earthquake"] - }, - "maractus": { - "moves": ["rototiller", "grassyglide", "knockoff", "drainpunch"] - }, - "crustle": { - "moves": ["shellsmash", "stoneedge", "earthquake", "spikes"] - }, - "scrafty": { - "moves": ["curse", "knockoff", "drainpunch", "acidicfists"] - }, - "sigilyph": { - "moves": ["psychic", "heatwave", "roost", "defog", "dazzlinggleam"] - }, - "cofagrigus": { - "moves": ["shadowball", "bodypress", "irondefense", "willowisp"] - }, - "carracosta": { - "moves": ["shellsmash", "stoneedge", "aquajet", "liquidation"] - }, - "archeops": { - "moves": ["stoneedge", "bravebird", "uturn", "earthquake"] - }, - "garbodor": { - "moves": ["gunkshot", "mudspike", "spikes", "corrosivegas"] - }, - "zoroark": { - "moves": ["nastyplot", "trashtalk", "moonlitwaltz", "flamethrower"] - }, - "cinccino": { - "moves": ["tailslap", "bulletseed", "uturn", "rockblast"] - }, - "gothitelle": { - "moves": ["cosmicpower", "storedpower", "rest", "sleeptalk"] - }, - "reuniclus": { - "moves": ["calmmind", "recover", "psyshock", "focusblast"] - }, - "swanna": { - "moves": ["hurricane", "scald", "flipturn", "icebeam"] - }, - "vanilluxe": { - "moves": ["blizzard", "hiddenpowerfire", "freezedry", "meltingpoint"] - }, - "sawsbuck": { - "moves": ["rototiller", "hornleech", "doubleedge", "jumpkick"] - }, - "emolga": { - "moves": ["electroball", "energyball", "voltswitch", "roost"] - }, - "escavalier": { - "moves": ["curse", "ironhead", "revenge", "knockoff"] - }, - "amoonguss": { - "moves": ["gigadrain", "spore", "venoshock", "hiddenpowerfire"] - }, - "jellicent": { - "moves": ["willowisp", "hex", "scald", "strengthsap"] - }, - "alomomola": { - "moves": ["scald", "wish", "flipturn", "toxic"] - }, - "galvantula": { - "moves": ["stickyweb", "bugbuzz", "voltswitch", "thunder"] - }, - "ferrothorn": { - "moves": ["spikes", "powerwhip", "knockoff", "leechseed"] - }, - "klang": { - "moves": ["geargrind", "rapidspin", "voltswitch", "toxic"] - }, - "klinklang": { - "moves": ["geargrind", "shiftgear", "electroball", "substitute"] - }, - "eelektross": { - "moves": ["lightninglance", "gunkshot", "uturn", "icepunch"] - }, - "beheeyem": { - "moves": ["teleport", "psychic", "thunderbolt", "signalbeam"] - }, - "chandelure": { - "moves": ["shadowball", "fireblast", "energyball", "hex"] - }, - "haxorus": { - "moves": ["swordsdance", "scaleshot", "closecombat", "poisonjab"] - }, - "beartic": { - "moves": ["swordsdance", "icepunch", "thunderpunch", "superpower"] - }, - "cryogonal": { - "moves": ["icebeam", "meltingpoint", "recover", "defog"] - }, - "accelgor": { - "moves": ["spikes", "bugbuzz", "focusblast", "sludgebomb"] - }, - "stunfisk": { - "moves": ["flipturn", "stealthrock", "discharge", "earthpower"] - }, - "stunfiskgalar": { - "moves": ["earthquake", "stealthrock", "stoneedge", "toxic"] - }, - "mienshao": { - "moves": ["closecombat", "icepunch", "knockoff", "uturn"] - }, - "druddigon": { - "moves": ["dragontail", "glare", "stealthrock", "earthquake"] - }, - "golurk": { - "moves": ["poltergeist", "closecombat", "earthquake", "trick"] - }, - "bisharp": { - "moves": ["swordsdance", "knockoff", "suckerpunch", "ironhead"] - }, - "bouffalant": { - "moves": ["headcharge", "closecombat", "payback", "earthquake"] - }, - "braviary": { - "moves": ["bravebird", "closecombat", "roost", "curse"] - }, - "mandibuzz": { - "moves": ["foulplay", "roost", "defog", "uturn"] - }, - "heatmor": { - "moves": ["curse", "firelash", "suckerpunch", "drainpunch"] - }, - "durant": { - "moves": ["firstimpression", "ironhead", "superpower", "mudspike"] - }, - "hydreigon": { - "moves": ["dracometeor", "darkpulse", "trashtalk", "superpower"] - }, - "volcarona": { - "moves": ["bugbuzz", "fierydance", "psychic", "quiverdance"] - }, - "cobalion": { - "moves": ["stealthrock", "bodypress", "ironhead", "voltswitch"] - }, - "terrakion": { - "moves": ["accelerock", "stoneedge", "earthquake", "closecombat"] - }, - "virizion": { - "moves": ["sleeppowder", "swordsdance", "powerwhip", "closecombat"] - }, - "tornadus": { - "moves": ["nastyplot", "hurricane", "focusblast", "darkpulse"] - }, - "tornadustherian": { - "moves": ["hurricane", "focusblast", "heatwave", "nastyplot", "uturn"] - }, - "thundurus": { - "moves": ["lightninglance", "uturn", "knockoff", "superpower"] - }, - "thundurustherian": { - "moves": ["nastyplot", "thunderbolt", "focusblast", "hiddenpowerice"] - }, - "landorustherian": { - "moves": ["earthquake", "uturn", "stoneedge", "stealthrock"] - }, - "kyurem": { - "moves": ["icebeam", "freezedry", "roost", "earthpower"] - }, - "kyuremblack": { - "moves": ["dragondance", "iciclespear", "fusionbolt", "fling"] - }, - "kyuremwhite": { - "moves": ["icebeam", "freezedry", "earthpower", "fusionflare"] - }, - "keldeo": { - "moves": ["calmmind", "taunt", "scald", "secretsword"] - }, - "keldeoresolute": { - "moves": ["hydropump", "secretsword", "aurorabeam", "flipturn"] - }, - "meloetta": { - "moves": ["psychic", "fierydance", "moonlitwaltz", "uturn"] - }, - "meloettapirouette": { - "moves": ["return", "closecombat", "knockoff", "rapidspin"] - }, - "chesnaught": { - "moves": ["spikes", "synthesis", "woodhammer", "drainpunch"] - }, - "delphox": { - "moves": ["calmmind", "fierydance", "psyshock", "focusblast"] - }, - "greninja": { - "moves": ["spikes", "hydropump", "icebeam", "uturn"] - }, - "greninjaash": { - "moves": ["hydropump", "darkpulse", "watershuriken", "spikes"] - }, - "diggersby": { - "moves": ["uturn", "return", "earthquake", "skyuppercut"] - }, - "talonflame": { - "moves": ["bravebird", "roost", "flareblitz", "uturn"] - }, - "vivillon": { - "moves": ["quiverdance", "hurricane", "sleeppowder", "substitute"] - }, - "pyroar": { - "moves": ["overheat", "hypervoice", "hiddenpowergrass", "fireblast"] - }, - "florges": { - "moves": ["moonblast", "lifedew", "hiddenpowerfire", "calmmind"] - }, - "gogoat": { - "moves": ["bulkup", "hornleech", "earthquake", "milkdrink"] - }, - "pangoro": { - "moves": ["closecombat", "knockoff", "acidicfists", "partingshot"] - }, - "furfrou": { - "moves": ["return", "thunderwave", "uturn", "suckerpunch"] - }, - "meowstic": { - "moves": ["lightscreen", "reflect", "thunderwave", "psyshock"] - }, - "meowsticf": { - "moves": ["psychic", "signalbeam", "thunderbolt", "nastyplot"] - }, - "doublade": { - "moves": ["swordsdance", "shadowclaw", "shadowsneak", "closecombat"] - }, - "aegislash": { - "moves": ["shadowball", "closecombat", "ironhead", "kingsshield"] - }, - "aegislashblade": { - "moves": ["closecombat", "ironhead", "shadowclaw", "shadowsneak", "swordsdance"] - }, - "aromatisse": { - "moves": ["moonblast", "trickroom", "thunderbolt", "nastyplot"] - }, - "slurpuff": { - "moves": ["bellydrum", "enchantedpunch", "firepunch", "thunderpunch"] - }, - "malamar": { - "moves": ["knockoff", "superpower", "flipturn", "psychocut"] - }, - "barbaracle": { - "moves": ["shellsmash", "liquidation", "icepunch", "crosschop"] - }, - "dragalge": { - "moves": ["dracometeor", "sludgewave", "focusblast", "flipturn"] - }, - "clawitzer": { - "moves": ["octazooka", "aurasphere", "technoblast", "darkpulse"] - }, - "heliolisk": { - "moves": ["thunderbolt", "surf", "voltswitch", "hypervoice"] - }, - "tyrantrum": { - "moves": ["dragondance", "headsmash", "earthquake", "scaleshot"] - }, - "aurorus": { - "moves": ["ancientpower", "blizzard", "earthpower", "freezedry", "stealthrock", "thunderwave"] - }, - "sylveon": { - "moves": ["sparklyswirl", "moonlight", "lovelykiss", "mysticalfire"] - }, - "hawlucha": { - "moves": ["closecombat", "acrobatics", "swordsdance", "substitute"] - }, - "dedenne": { - "moves": ["voltswitch", "thunderbolt", "dazzlinggleam", "hiddenpowerice"] - }, - "carbink": { - "moves": ["moonblast", "toxic", "stealthrock", "reconstruct"] - }, - "goodra": { - "moves": ["dracometeor", "sludgewave", "fireblast", "lifedew"] - }, - "klefki": { - "moves": ["spikes", "dazzlinggleam", "thunderwave", "foulplay"] - }, - "trevenant": { - "moves": ["rototiller", "poltergeist", "grassyglide", "drainpunch"] - }, - "gourgeist": { - "moves": ["poltergeist", "powerwhip", "shadowsneak", "synthesis"] - }, - "gourgeistsmall": { - "moves": ["deafeningshriek", "energyball", "focusblast", "nastyplot"] - }, - "gourgeistlarge": { - "moves": ["poltergeist", "powerwhip", "willowisp", "synthesis"] - }, - "gourgeistsuper": { - "moves": ["deafeningshriek", "energyball", "fireblast", "trickroom"] - }, - "avalugg": { - "moves": ["avalanche", "recover", "bodypress", "rapidspin"] - }, - "noivern": { - "moves": ["dracometeor", "hurricane", "uturn", "flamethrower"] - }, - "xerneas": { - "moves": ["geomancy", "focusblast", "moonblast", "lifedew"] - }, - "yveltal": { - "moves": ["knockoff", "oblivionwing", "taunt", "defog"] - }, - "zygarde10": { - "moves": ["thousandarrows", "toxic", "extremespeed", "outrage"] - }, - "diancie": { - "moves": ["trickroom", "diamondstorm", "moonblast", "bodypress"] - }, - "dianciemega": { - "moves": ["diamondstorm", "moonblast", "earthpower", "stealthrock"] - }, - "hoopa": { - "moves": ["nastyplot", "psychic", "focusblast", "shadowball"] - }, - "hoopaunbound": { - "moves": ["hyperspacefury", "gunkshot", "firepunch", "enchantedpunch"] - }, - "volcanion": { - "moves": ["steameruption", "fireblast", "earthpower", "aridabsorption"] - }, - "decidueye": { - "moves": ["swordsdance", "leafblade", "spiritshackle", "bravebird"] - }, - "incineroar": { - "moves": ["knockoff", "flareblitz", "rapidspin", "partingshot"] - }, - "primarina": { - "moves": ["hydropump", "moonblast", "snowmanjazz", "flipturn"] - }, - "toucannon": { - "moves": ["boomburst", "heatwave", "skysoiree", "roost"] - }, - "gumshoos": { - "moves": ["return", "uturn", "payback", "earthquake"] - }, - "vikavolt": { - "moves": ["agility", "thunderbolt", "bugbuzz", "energyball"] - }, - "crabominable": { - "moves": ["drainpunch", "icehammer", "earthquake", "thunderpunch"] - }, - "oricorio": { - "moves": ["revelationdance", "hurricane", "petaldance", "calmmind"] - }, - "oricoriopompom": { - "moves": ["revelationdance", "hurricane", "snowmanjazz", "calmmind"] - }, - "oricoriopau": { - "moves": ["revelationdance", "hurricane", "moonlitwaltz", "calmmind"] - }, - "oricoriosensu": { - "moves": ["revelationdance", "skysoiree", "hiddenpowerfighting", "calmmind"] - }, - "ribombee": { - "moves": ["stickyweb", "moonblast", "uturn", "rashpowder"] - }, - "lycanroc": { - "moves": ["accelerock", "stoneedge", "closecombat", "stealthrock"] - }, - "lycanrocmidnight": { - "moves": ["bonemerang", "stoneedge", "closecombat", "swordsdance"] - }, - "lycanrocdusk": { - "moves": ["accelerock", "stoneedge", "closecombat", "swordsdance"] - }, - "wishiwashischool": { - "moves": ["earthquake", "hydropump", "icebeam", "scald", "uturn"] - }, - "wishiwashi": { - "moves": ["scald", "coreenforcer", "recover", "uturn"] - }, - "toxapex": { - "moves": ["toxic", "recover", "scald", "haze"] - }, - "mudsdale": { - "moves": ["aridabsorption", "earthquake", "avalanche", "stealthrock"] - }, - "araquanid": { - "moves": ["substitute", "liquidation", "toxicthread", "leechlife"] - }, - "lurantis": { - "moves": ["leafstorm", "superpower", "defog", "synthesis"] - }, - "shiinotic": { - "moves": ["strengthsap", "moonblast", "spore", "gigadrain"] - }, - "salazzle": { - "moves": ["nastyplot", "sludgewave", "fierydance", "hiddenpowergrass"] - }, - "bewear": { - "moves": ["curse", "doubleedge", "drainpunch", "darkestlariat"] - }, - "tsareena": { - "moves": ["tropkick", "rapidspin", "knockoff", "uturn", "tripleaxel"] - }, - "comfey": { - "moves": ["calmmind", "drainingkiss", "substitute", "leechseed"] - }, - "oranguru": { - "moves": ["nastyplot", "psychic", "focusblast", "trickroom"] - }, - "passimian": { - "moves": ["closecombat", "knockoff", "icepunch", "uturn"] - }, - "golisopod": { - "moves": ["firstimpression", "spikes", "liquidation", "crushclaw"] - }, - "palossand": { - "moves": ["shoreup", "scorchingsands", "hex", "toxic"] - }, - "pyukumuku": { - "moves": ["rest", "recover", "block", "spite"] - }, - "typenull": { - "moves": ["uturn", "return", "rest", "sleeptalk"] - }, - "silvally": { - "moves": ["multiattack", "explosion", "earthquake", "uturn"] - }, - "silvallybug": { - "moves": ["multiattack", "blazekick", "earthquake", "uturn"] - }, - "silvallydark": { - "moves": ["multiattack", "pursuit", "ironhead", "uturn"] - }, - "silvallydragon": { - "moves": ["dracometeor", "trashtalk", "flamethrower", "partingshot"] - }, - "silvallyelectric": { - "moves": ["thunderbolt", "icebeam", "flamethrower", "uturn"] - }, - "silvallyfairy": { - "moves": ["multiattack", "defog", "toxic", "uturn"] - }, - "silvallyfighting": { - "moves": ["multiattack", "aggravate", "earthquake", "swordsdance"] - }, - "silvallyfire": { - "moves": ["multiattack", "flamecharge", "earthquake", "swordsdance"] - }, - "silvallyflying": { - "moves": ["multiattack", "crushclaw", "earthquake", "defog"] - }, - "silvallyghost": { - "moves": ["multiattack", "superpower", "earthquake", "uturn"] - }, - "silvallygrass": { - "moves": ["multiattack", "blazekick", "earthquake", "partingshot"] - }, - "silvallyground": { - "moves": ["multiattack", "flamecharge", "rockslide", "swordsdance"] - }, - "silvallyice": { - "moves": ["icebeam", "flamethrower", "thunderbolt", "partingshot"] - }, - "silvallypoison": { - "moves": ["poisonfang", "defog", "earthquake", "partingshot"] - }, - "silvallypsychic": { - "moves": ["multiattack", "blazekick", "earthquake", "explosion"] - }, - "silvallyrock": { - "moves": ["multiattack", "superpower", "earthquake", "swordsdance"] - }, - "silvallysteel": { - "moves": ["multiattack", "defog", "earthquake", "uturn"] - }, - "silvallywater": { - "moves": ["surf", "defog", "thunderbolt", "partingshot"] - }, - "minior": { - "moves": ["shellsmash", "acrobatics", "stoneedge", "earthquake"] - }, - "komala": { - "moves": ["return", "curse", "suckerpunch", "firepunch"] - }, - "turtonator": { - "moves": ["shellsmash", "overheat", "dracometeor", "scorchingsands"] - }, - "togedemaru": { - "moves": ["lightninglance", "ironhead", "uturn", "fakeout"] - }, - "mimikyu": { - "moves": ["swordsdance", "shadowpunch", "shadowsneak", "playrough"] - }, - "bruxish": { - "moves": ["liquidation", "psychicfangs", "icefang", "flipturn"] - }, - "drampa": { - "moves": ["dracometeor", "hypervoice", "focusblast", "fireblast"] - }, - "dhelmise": { - "moves": ["rototiller", "poltergeist", "grassyglide", "rapidspin"] - }, - "kommoo": { - "moves": ["clangoroussoul", "clangingscales", "focusblast", "boomburst"] - }, - "tapukoko": { - "moves": ["wildcharge", "enchantedpunch", "bravebird", "uturn"] - }, - "tapulele": { - "moves": ["psyshock", "psychic", "focusblast", "moonblast"] - }, - "tapubulu": { - "moves": ["swordsdance", "woodhammer", "superpower", "enchantedpunch"] - }, - "tapufini": { - "moves": ["defog", "scald", "moonblast", "taunt"] - }, - "nihilego": { - "moves": ["meteorbeam", "sludgewave", "grassknot", "powergem"] - }, - "buzzwole": { - "moves": ["closecombat", "thunderpunch", "icepunch", "roost"] - }, - "pheromosa": { - "moves": ["bugbuzz", "focusblast", "icebeam", "shockwave"] - }, - "xurkitree": { - "moves": ["hypnosis", "thunderbolt", "energyball", "tailglow"] - }, - "celesteela": { - "moves": ["autotomize", "fireblast", "airslash", "flashcannon"] - }, - "kartana": { - "moves": ["swordsdance", "leafblade", "knockoff", "sacredsword"] - }, - "guzzlord": { - "moves": ["partingshot", "glare", "knockoff", "earthquake"] - }, - "necrozma": { - "moves": ["photongeyser", "earthquake", "xscissor", "dragondance"] - }, - "magearna": { - "moves": ["fleurcannon", "voltswitch", "icebeam", "focusblast"] - }, - "magearnaoriginal": { - "moves": ["agility", "calmmind", "flashcannon", "fleurcannon"] - }, - "naganadel": { - "moves": ["rapidspin", "dracometeor", "sludgewave", "flamethrower"] - }, - "stakataka": { - "moves": ["trickroom", "gyroball", "stoneedge", "earthquake"] - }, - "blacephalon": { - "moves": ["shadowball", "overheat", "flamethrower", "electroball"] - }, - "zeraora": { - "moves": ["electroball", "closecombat", "hiddenpowerice", "voltswitch"] - }, - "melmetal": { - "moves": ["doubleironbash", "thunderwave", "icepunch", "armthrust"] - }, - "rillaboom": { - "moves": ["grassyglide", "woodhammer", "knockoff", "uturn"] - }, - "cinderace": { - "moves": ["pyroball", "suckerpunch", "uturn", "highjumpkick"] - }, - "inteleon": { - "moves": ["hydropump", "icebeam", "signalbeam", "uturn"] - }, - "greedent": { - "moves": ["curse", "bodyslam", "firepunch", "smother"] - }, - "corviknight": { - "moves": ["uturn", "bravebird", "defog", "roost"] - }, - "orbeetle": { - "moves": ["hypnosis", "stickyweb", "uturn", "bodypress"] - }, - "thievul": { - "moves": ["nastyplot", "darkpulse", "trashtalk", "burningjealousy"] - }, - "eldegoss": { - "moves": ["lifedew", "sleeppowder", "gigadrain", "leechseed"] - }, - "dubwool": { - "moves": ["cottonguard", "bodypress", "rest", "rapidspin"] - }, - "drednaw": { - "moves": ["swordsdance", "liquidation", "stoneedge", "earthquake"] - }, - "boltund": { - "moves": ["thunderfang", "firefang", "crunch", "voltswitch"] - }, - "coalossal": { - "moves": ["stealthrock", "flamethrower", "rapidspin", "aridabsorption"] - }, - "flapple": { - "moves": ["gravapple", "dragonrush", "uturn", "suckerpunch"] - }, - "appletun": { - "moves": ["recover", "appleacid", "bodypress", "leechseed"] - }, - "sandaconda": { - "moves": ["aridabsorption", "earthquake", "glare", "stealthrock"] - }, - "cramorant": { - "moves": ["surf", "attackorder", "roost", "endure"] - }, - "barraskewda": { - "moves": ["liquidation", "closecombat", "poisonjab", "flipturn"] - }, - "toxtricity": { - "moves": ["boomburst", "overdrive", "shiftgear", "technoblast"] - }, - "centiskorch": { - "moves": ["firelash", "uturn", "recover", "firstimpression"] - }, - "grapploct": { - "moves": ["closecombat", "suckerpunch", "flipturn", "acidicfists"] - }, - "polteageist": { - "moves": ["shellsmash", "shadowball", "gigadrain", "storedpower"] - }, - "polteageistantique": { - "moves": ["strengthsap", "hex", "willowisp", "curse"] - }, - "hatterene": { - "moves": ["lifedew", "nuzzle", "mysticalfire", "dazzlinggleam"] - }, - "grimmsnarl": { - "moves": ["bulkup", "payback", "playrough", "suckerpunch"] - }, - "obstagoon": { - "moves": ["obstruct", "facade", "knockoff", "closecombat"] - }, - "perrserker": { - "moves": ["ironhead", "closecombat", "uturn", "fakeout"] - }, - "cursola": { - "moves": ["shadowball", "hydropump", "earthpower", "burningjealousy"] - }, - "sirfetchd": { - "moves": ["closecombat", "firstimpression", "lightninglance", "knockoff"] - }, - "mrrime": { - "moves": ["rapidspin", "focusblast", "icebeam", "psychic"] - }, - "runerigus": { - "moves": ["aridabsorption", "poltergeist", "bodypress", "willowisp"] - }, - "alcremie": { - "moves": ["dazzlinggleam", "mysticalfire", "rapidspin", "recover"] - }, - "falinks": { - "moves": ["noretreat", "closecombat", "throatchop", "poisonjab"] - }, - "pincurchin": { - "moves": ["risingvoltage", "recover", "spikes", "signalbeam"] - }, - "frosmoth": { - "moves": ["quiverdance", "bugbuzz", "meltingpoint", "snowmanjazz"] - }, - "stonjourner": { - "moves": ["stoneedge", "heatcrash", "earthquake", "stealthrock"] - }, - "eiscue": { - "moves": ["bellydrum", "icepunch", "liquidation", "zenheadbutt"] - }, - "indeedee": { - "moves": ["expandingforce", "hypervoice", "mysticalfire", "trick"] - }, - "indeedeef": { - "moves": ["expandingforce", "dazzlinggleam", "lifedew", "calmmind"] - }, - "morpeko": { - "moves": ["aurawheel", "partingshot", "protect", "seedbomb"] - }, - "copperajah": { - "moves": ["heavyslam", "powerwhip", "stoneedge", "heatcrash"] - }, - "dracozolt": { - "moves": ["boltbeak", "fireblast", "earthquake", "dracometeor"] - }, - "arctozolt": { - "moves": ["boltbeak", "iciclecrash", "freezedry", "lowkick"] - }, - "dracovish": { - "moves": ["fishiousrend", "crunch", "psychicfangs", "earthquake"] - }, - "arctovish": { - "moves": ["fishiousrend", "iciclecrash", "freezedry", "meltingpoint"] - }, - "duraludon": { - "moves": ["dracometeor", "flashcannon", "technoblast", "stealthrock"] - }, - "dragapult": { - "moves": ["dracometeor", "shadowball", "uturn", "flamethrower"] - }, - "zacian": { - "moves": ["playrough", "closecombat", "lightninglance", "swordsdance"] - }, - "zaciancrowned": { - "moves": ["playrough", "closecombat", "lightninglance", "behemothblade"] - }, - "zamazenta": { - "moves": ["crunch", "closecombat", "howl", "wildcharge"] - }, - "zamazentacrowned": { - "moves": ["reconstruct", "closecombat", "crunch", "behemothbash"] - }, - "urshifu": { - "moves": ["wickedblow", "closecombat", "uturn", "icepunch"] - }, - "urshifurapidstrike": { - "moves": ["closecombat", "surgingstrikes", "uturn", "thunderpunch"] - }, - "zarude": { - "moves": ["bulkup", "powerwhip", "aggravate", "junglehealing"] - }, - "zarudedada": { - "moves": ["powerwhip", "aggravate", "uturn", "closecombat"] - }, - "regieleki": { - "moves": ["lightninglance", "voltswitch", "rapidspin", "explosion"] - }, - "regidrago": { - "moves": ["dragonenergy", "dracometeor", "dragonpulse", "explosion"] - }, - "glastrier": { - "moves": ["swordsdance", "avalanche", "highhorsepower", "closecombat"] - }, - "spectrier": { - "moves": ["substitute", "curse", "shadowball", "calmmind"] - }, - "calyrex": { - "moves": ["rototiller", "seedbomb", "zenheadbutt", "batonpass"] - } -} diff --git a/data/mods/gen8joltemons/random-teams.ts b/data/mods/gen8joltemons/random-teams.ts deleted file mode 100644 index 2e08692e44be..000000000000 --- a/data/mods/gen8joltemons/random-teams.ts +++ /dev/null @@ -1,290 +0,0 @@ -import {Species} from '../../../sim/dex-species'; -import {MoveCounter, RandomGen8Teams, OldRandomBattleSpecies} from '../gen8/random-teams'; - -export class RandomJoltemonsTeams extends RandomGen8Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); - - shouldCullAbility( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isDoubles: boolean, - isNoDynamax: boolean - ): boolean { - if ([ - 'Immunity', 'Innards Out', 'Insomnia', 'Misty Surge', - 'Quick Feet', 'Snow Cloak', 'Steadfast', 'Steam Engine', - ].includes(ability)) return true; - - switch (ability) { - // Abilities which are primarily useful for certain moves - case 'Contrary': case 'Serene Grace': case 'Skill Link': case 'Strong Jaw': - return !counter.get(this.dex.toID(ability)); - case 'Analytic': - return (moves.has('rapidspin') || species.nfe || isDoubles); - case 'Blaze': - return (isDoubles && abilities.has('Solar Power')) || (!isDoubles && !isNoDynamax && species.id === 'charizard'); - case 'Buzz Off': - return !counter.has('Bug'); - case 'Chlorophyll': - return (species.baseStats.spe > 100 || !counter.get('Fire') && !moves.has('sunnyday') && !teamDetails.sun); - case 'Cloud Nine': - return (!isNoDynamax || species.id !== 'golduck'); - case 'Competitive': - return (counter.get('Special') < 2 || (moves.has('rest') && moves.has('sleeptalk'))); - case 'Compound Eyes': case 'No Guard': - return !counter.get('inaccurate'); - case 'Cursed Body': - return abilities.has('Infiltrator'); - case 'Defiant': - return !counter.get('Physical'); - case 'Download': - return (counter.damagingMoves.size < 3 || moves.has('trick')); - case 'Early Bird': - return (types.has('Grass') && isDoubles); - case 'Flash Fire': - return (this.dex.getEffectiveness('Fire', species) < -1 || abilities.has('Drought')); - case 'Frisk': - return abilities.has('Light Power') && counter.get('Physical') < 2 || abilities.has('Optimistic'); - case 'Gluttony': - return !moves.has('bellydrum'); - case 'Guts': - return (!moves.has('facade') && !moves.has('sleeptalk') && !species.nfe); - case 'Harvest': case 'Pastel Veil': - return (abilities.has('Frisk') && !isDoubles) || abilities.has('Optimistic'); - case 'Hustle': case 'Inner Focus': - return (counter.get('Physical') < 2 || abilities.has('Iron Fist')); - case 'Infiltrator': - return (moves.has('rest') && moves.has('sleeptalk')) || (isDoubles && abilities.has('Clear Body')); - case 'Intimidate': - if (species.id === 'salamence' && moves.has('dragondance')) return true; - return ['bodyslam', 'bounce', 'tripleaxel'].some(m => moves.has(m)); - case 'Iron Fist': - return (counter.get('ironfist') < 2 || moves.has('dynamicpunch')); - case 'Justified': - return (isDoubles && abilities.has('Inner Focus')); - case 'Light Power': - return abilities.has('Beast Boost') || counter.get('Physical') > 2; - case 'Lightning Rod': - return (species.types.includes('Ground') || (!isNoDynamax && counter.setupType === 'Physical')); - case 'Limber': - return species.types.includes('Electric') || moves.has('facade'); - case 'Liquid Voice': - return !moves.has('hypervoice'); - case 'Magic Guard': - // For Sigilyph - return (abilities.has('Tinted Lens') && !counter.get('Status') && !isDoubles); - case 'Mold Breaker': - return ( - abilities.has('Adaptability') || abilities.has('Scrappy') || (abilities.has('Unburden') && !!counter.setupType) || - (abilities.has('Sheer Force') && !!counter.get('sheerforce')) - ); - case 'Moxie': - return (counter.get('Physical') < 2 || moves.has('stealthrock') || moves.has('defog')); - case 'Overgrow': - return !counter.get('Grass'); - case 'Own Tempo': - return !moves.has('petaldance') || abilities.has('Swift Swim'); - case 'Power Construct': - return (species.forme === '10%' && !isDoubles); - case 'Prankster': - return !counter.get('Status'); - case 'Pressure': - return (!!counter.setupType || counter.get('Status') < 2 || isDoubles); - case 'Refrigerate': - return !counter.get('Normal'); - case 'Regenerator': - // For Reuniclus - return abilities.has('Magic Guard'); - case 'Reckless': - return !counter.get('recoil') || moves.has('curse'); - case 'Rock Head': - return !counter.get('recoil'); - case 'Sand Force': case 'Sand Veil': - return !teamDetails.sand; - case 'Sand Rush': - return (!teamDetails.sand && (isNoDynamax || !counter.setupType || !counter.get('Rock') || moves.has('rapidspin'))); - case 'Sap Sipper': - // For Drampa, which wants Berserk with Roost - return moves.has('roost'); - case 'Scrappy': - return (moves.has('earthquake') && species.id === 'miltank'); - case 'Screen Cleaner': - return !!teamDetails.screens; - case 'Shed Skin': - // For Scrafty - return moves.has('dragondance'); - case 'Sheer Force': - return (!counter.get('sheerforce') || abilities.has('Guts') || (species.id === 'druddigon' && !isDoubles)); - case 'Shell Armor': - return ( - (counter.setupType && abilities.has('Optimistic')) || - (species.id === 'omastar' && (moves.has('spikes') || moves.has('stealthrock'))) - ); - case 'Slush Rush': - return (!teamDetails.hail && !abilities.has('Swift Swim')); - case 'Sniper': - // Inteleon wants Torrent unless it is Gmax - return (species.name === 'Inteleon' || (counter.get('Water') > 1 && !moves.has('focusenergy'))); - case 'Solar Power': - return (isNoDynamax && !teamDetails.sun); - case 'Soul Link': - return abilities.has('Light Power') && counter.get('Physical') < 2; - case 'Speed Boost': - return (isNoDynamax && species.id === 'ninjask'); - case 'Steely Spirit': - return (moves.has('fakeout') && !isDoubles); - case 'Sturdy': - return (moves.has('bulkup') || !!counter.get('recoil') || (!isNoDynamax && abilities.has('Solid Rock'))); - case 'Swarm': - return (!counter.get('Bug') || !!counter.get('recovery')); - case 'Sweet Veil': - return types.has('Grass'); - case 'Swift Swim': - if (isNoDynamax) { - const neverWantsSwim = !moves.has('raindance') && [ - 'Intimidate', 'Rock Head', 'Water Absorb', - ].some(m => abilities.has(m)); - const noSwimIfNoRain = !moves.has('raindance') && [ - 'Cloud Nine', 'Lightning Rod', 'Intimidate', 'Rock Head', 'Sturdy', 'Water Absorb', 'Weak Armor', - ].some(m => abilities.has(m)); - return teamDetails.rain ? neverWantsSwim : noSwimIfNoRain; - } - return (!moves.has('raindance') && ( - ['Intimidate', 'Rock Head', 'Slush Rush', 'Water Absorb'].some(abil => abilities.has(abil)) || - (abilities.has('Lightning Rod') && !counter.setupType) - )); - case 'Synchronize': - return counter.get('Status') < 3; - case 'Technician': - return ( - !counter.get('technician') || - moves.has('tailslap') || - abilities.has('Punk Rock') || - // For Doubles Alolan Persian - movePool.includes('snarl') - ); - case 'Tinted Lens': - return ( - // For Sigilyph - moves.has('defog') || - // For Butterfree - (moves.has('hurricane') && abilities.has('Compound Eyes')) || - (counter.get('Status') > 2 && !counter.setupType) - ); - case 'Torrent': - // For Inteleon-Gmax and Primarina - return (moves.has('focusenergy') || moves.has('hypervoice')); - case 'Tough Claws': - // For Perrserker - return (types.has('Steel') && !moves.has('fakeout')); - case 'Unaware': - // For Swoobat and Clefable - return (!!counter.setupType || moves.has('fireblast')); - case 'Unburden': - return (abilities.has('Prankster') || !counter.setupType && !isDoubles); - case 'Vapor Control': - return !teamDetails.sun; - case 'Volt Absorb': - return (this.dex.getEffectiveness('Electric', species) < -1); - case 'Water Absorb': - return ( - moves.has('raindance') || - ['Drizzle', 'Strong Jaw', 'Unaware', 'Volt Absorb'].some(abil => abilities.has(abil)) - ); - case 'Weak Armor': - // The Speed less than 50 case is intended for Cursola, but could apply to any slow Pokémon. - return ( - (!isNoDynamax && species.baseStats.spe > 50) || - species.id === 'skarmory' || - moves.has('shellsmash') || moves.has('rapidspin') - ); - } - - return false; - } - - getHighPriorityItem( - ability: string, - types: Set, - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean - ) { - if (ability === 'Honey Gather') return 'Red Card'; - if (ability === 'Scavenge') return 'Soul Blade'; - if (ability === 'Sweet Veil') return 'Honey'; - - if (['stakataka', 'buzzwole', 'donphan'].includes(species.id)) return 'Momentum Armor'; - if (['scyther', 'sneasel', 'magneton'].includes(species.id)) return 'Eviolith'; - if (species.id === 'appletun') return 'Sweet Apple'; - if (species.id.startsWith('darmanitan') && counter.get('Special') > 2) return 'Chill Pill'; - if (species.id === 'castform' && (moves.has('raindance') || moves.has('sunnyday'))) return 'Cursed Belt'; - if (species.id === 'cherrim') return 'Morning Blossom'; - if (species.id === 'flapple') return 'Tart Apple'; - if (species.id === 'meloetta' && counter.get('Physical') > 2) return 'Relic Charm'; - if (species.id === 'mimikyu') return 'Nightlight Ball'; - if (species.id === 'phione') return 'Seawater Bead'; - if (species.id === 'regigigas') return 'Sacred Ropes'; - if (species.id === 'swoobat') return 'Coal Engine'; - if (species.id === 'wishiwashi') return 'Graduation Scale'; - if ([ - 'pikachu', 'raichu', 'raichualola', 'plusle', 'minun', 'pachirisu', - 'emolga', 'dedenne', 'togedemaru', 'morpeko', - ].includes(species.id)) return 'Light Ball'; - - return super.getHighPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles); - } - - getMediumPriorityItem( - ability: string, - moves: Set, - counter: MoveCounter, - species: Species, - isLead: boolean, - isDoubles: boolean, - isNoDynamax: boolean - ) { - const item = super.getMediumPriorityItem(ability, moves, counter, species, isLead, isDoubles, isNoDynamax); - if (counter.setupType === 'Physical' && counter.get('Status') < 2 && !item) return 'Cursed Belt'; - return item; - } - - getLowPriorityItem( - ability: string, - types: Set, - moves: Set, - abilities: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - isNoDynamax: boolean - ) { - const item = super.getLowPriorityItem( - ability, - types, - moves, - abilities, - counter, - teamDetails, - species, - isLead, - isDoubles, - isNoDynamax - ); - if (item === 'Leftovers' && types.has('Ghost')) return 'Reaper Cloth'; - return item; - } -} - -export default RandomJoltemonsTeams; diff --git a/data/mods/gen8joltemons/rulesets.ts b/data/mods/gen8joltemons/rulesets.ts deleted file mode 100644 index df872b807a72..000000000000 --- a/data/mods/gen8joltemons/rulesets.ts +++ /dev/null @@ -1,43 +0,0 @@ -export const Rulesets: {[k: string]: ModdedFormatData} = { - megadatamod: { - effectType: 'Rule', - name: 'Mega Data Mod', - desc: 'Gives data on stats, Ability and types when a Pokémon Mega Evolves or undergoes Ultra Burst.', - onSwitchIn(pokemon) { - if (pokemon.illusion) { - if (pokemon.illusion.species.forme.startsWith('Mega') || pokemon.illusion.species.forme.startsWith('Ultra')) { - this.add('-start', pokemon, 'typechange', pokemon.illusion.getTypes(true).join('/'), '[silent]'); - } - } else { - if (pokemon.species.forme.startsWith('Mega') || pokemon.species.forme.startsWith('Ultra')) { - this.add('-start', pokemon, 'typechange', pokemon.getTypes(true).join('/'), '[silent]'); - } - } - }, - onDamagingHit(damage, target, source, move) { - if (target.hasAbility('illusion')) { - if (target.species.forme.startsWith('Mega') || target.species.forme.startsWith('Ultra')) { - this.add('-start', target, 'typechange', target.getTypes(true).join('/'), '[silent]'); - } else { - const types = target.baseSpecies.types; - if (target.getTypes().join() === types.join()) { - this.add('-end', target, 'typechange', '[silent]'); - } - } - } - }, - onAfterMega(pokemon) { - this.add('-start', pokemon, 'typechange', pokemon.getTypes(true).join('/'), '[silent]'); - const species = this.dex.species.get(pokemon.species.name); - const abilities = species.abilities; - const baseStats = species.baseStats; - const type = species.types[0]; - if (species.types[1]) { - const type2 = species.types[1]; - this.add(`raw|
  • ` + species.name + ` ${type}${type2} ` + abilities[0] + `HP
    ` + baseStats.hp + `
    Atk
    ` + baseStats.atk + `
    Def
    ` + baseStats.def + `
    SpA
    ` + baseStats.spa + `
    SpD
    ` + baseStats.spd + `
    Spe
    ` + baseStats.spe + `
`); - } else { - this.add(`raw|
  • ` + species.name + ` ${type} ` + abilities[0] + `HP
    ` + baseStats.hp + `
    Atk
    ` + baseStats.atk + `
    Def
    ` + baseStats.def + `
    SpA
    ` + baseStats.spa + `
    SpD
    ` + baseStats.spd + `
    Spe
    ` + baseStats.spe + `
`); - } - }, - }, -}; diff --git a/data/mods/gen8joltemons/scripts.ts b/data/mods/gen8joltemons/scripts.ts deleted file mode 100644 index 21fe63935a2b..000000000000 --- a/data/mods/gen8joltemons/scripts.ts +++ /dev/null @@ -1,1655 +0,0 @@ -import {RESTORATIVE_BERRIES} from "../../../sim/pokemon"; - -export const Scripts: ModdedBattleScriptsData = { - inherit: 'gen8', - gen: 8, - actions: { - canMegaEvo(pokemon) { - const altForme = pokemon.baseSpecies.otherFormes && this.dex.species.get(pokemon.baseSpecies.otherFormes[0]); - const item = pokemon.getItem(); - if ( - altForme?.isMega && altForme?.requiredMove && - pokemon.baseMoves.includes(this.dex.toID(altForme.requiredMove)) && !item.zMove - ) { - return altForme.name; - } - if (item.name === "Slowbronite" && pokemon.baseSpecies.name === "Slowbro-Galar") { - return null; - } - return item.megaStone; - }, - modifyDamage(baseDamage, pokemon, target, move, suppressMessages) { - const tr = this.battle.trunc; - if (!move.type) move.type = '???'; - const type = move.type; - - baseDamage += 2; - - // multi-target modifier (doubles only) - if (move.spreadHit) { - // multi-target modifier (doubles only) - const spreadModifier = move.spreadModifier || (this.battle.gameType === 'freeforall' ? 0.5 : 0.75); - this.battle.debug('Spread modifier: ' + spreadModifier); - baseDamage = this.battle.modify(baseDamage, spreadModifier); - } else if (move.multihitType === 'parentalbond' && move.hit > 1) { - // Parental Bond modifier - const bondModifier = this.battle.gen > 6 ? 0.25 : 0.5; - this.battle.debug(`Parental Bond modifier: ${bondModifier}`); - baseDamage = this.battle.modify(baseDamage, bondModifier); - } - - // weather modifier - baseDamage = this.battle.runEvent('WeatherModifyDamage', pokemon, target, move, baseDamage); - - // crit - not a modifier - const isCrit = target.getMoveHitData(move).crit; - if (isCrit) { - baseDamage = tr(baseDamage * (move.critModifier || (this.battle.gen >= 6 ? 1.5 : 2))); - } - - // random factor - also not a modifier - baseDamage = this.battle.randomizer(baseDamage); - - // STAB - if (move.forceSTAB || (type !== '???' && pokemon.hasType(type))) { - // The "???" type never gets STAB - // Not even if you Roost in Gen 4 and somehow manage to use - // Struggle in the same turn. - // (On second thought, it might be easier to get a MissingNo.) - baseDamage = this.battle.modify(baseDamage, move.stab || 1.5); - } - // types - let typeMod = target.runEffectiveness(move); - typeMod = this.battle.clampIntRange(typeMod, -6, 6); - target.getMoveHitData(move).typeMod = typeMod; - if (typeMod > 0) { - if (!suppressMessages) this.battle.add('-supereffective', target); - - for (let i = 0; i < typeMod; i++) { - baseDamage *= 2; - } - } - if (typeMod < 0) { - if (!suppressMessages) this.battle.add('-resisted', target); - - for (let i = 0; i > typeMod; i--) { - baseDamage = tr(baseDamage / 2); - } - } - - if (isCrit && !suppressMessages) this.battle.add('-crit', target); - - if (pokemon.status === 'brn' && move.category === 'Physical' && !pokemon.hasAbility('guts')) { - if (this.battle.gen < 6 || move.id !== 'facade' || move.id !== 'shadowpunch') { - baseDamage = this.battle.modify(baseDamage, 0.5); - } - } - - // Generation 5, but nothing later, sets damage to 1 before the final damage modifiers - if (this.battle.gen === 5 && !baseDamage) baseDamage = 1; - - // Final modifier. Modifiers that modify damage after min damage check, such as Life Orb. - baseDamage = this.battle.runEvent('ModifyDamage', pokemon, target, move, baseDamage); - - if (move.isZOrMaxPowered && target.getMoveHitData(move).zBrokeProtect) { - baseDamage = this.battle.modify(baseDamage, 0.25); - this.battle.add('-zbroken', target); - } - - // Generation 6-7 moves the check for minimum 1 damage after the final modifier... - if (this.battle.gen !== 5 && !baseDamage) return 1; - - // ...but 16-bit truncation happens even later, and can truncate to 0 - return tr(baseDamage, 16); - }, - }, - pokemon: { - isGrounded(negateImmunity = false) { - if ('gravity' in this.battle.field.pseudoWeather) return true; - if ('ingrain' in this.volatiles && this.battle.gen >= 4) return true; - if ('smackdown' in this.volatiles) return true; - const item = (this.ignoringItem() ? '' : this.item); - if (item === 'ironball') return true; - // If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded. - if (!negateImmunity && this.hasType('Flying') && !('roost' in this.volatiles)) return false; - if ( - this.hasAbility(['levitate', 'powerofalchemyweezing', 'powerofalchemymismagius']) && - !this.battle.suppressingAbility(this) - ) return null; - if ('magnetrise' in this.volatiles) return false; - if ('telekinesis' in this.volatiles) return false; - return item !== 'airballoon'; - }, - ignoringAbility() { - // Check if any active pokemon have the ability Neutralizing Gas - let neutralizinggas = false; - let powerofalchemyweezing = false; - for (const pokemon of this.battle.getAllActive()) { - // can't use hasAbility because it would lead to infinite recursion - if (pokemon.ability === ('neutralizinggas' as ID) || - ( - pokemon.ability === ('powerofalchemyweezing' as ID) && - !pokemon.volatiles['gastroacid'] && - !pokemon.abilityState.ending - ) - ) { - neutralizinggas = true; - powerofalchemyweezing = true; - break; - } - } - - return !!( - (this.battle.gen >= 5 && !this.isActive) || - ((this.volatiles['gastroacid'] || - (neutralizinggas && this.ability !== ('neutralizinggas' as ID)) || - (powerofalchemyweezing && this.ability !== ('powerofalchemyweezing' as ID)) - ) && !this.getAbility().isPermanent) - ); - }, - setStatus( - status: string | Condition, - source: Pokemon | null = null, - sourceEffect: Effect | null = null, - ignoreImmunities = false - ) { - if (!this.hp) return false; - status = this.battle.dex.conditions.get(status); - if (this.battle.event) { - if (!source) source = this.battle.event.source; - if (!sourceEffect) sourceEffect = this.battle.effect; - } - if (!source) source = this; - - if (this.status === status.id) { - if ((sourceEffect as Move)?.status === this.status) { - this.battle.add('-fail', this, this.status); - } else if ((sourceEffect as Move)?.status) { - this.battle.add('-fail', source); - this.battle.attrLastMove('[still]'); - } - return false; - } - if (!ignoreImmunities && status.id && - !(source?.hasAbility([ - 'corrosion', 'powerofalchemymismagius', 'powerofalchemyumbreon', - ]) && ['tox', 'psn'].includes(status.id))) { - // the game currently never ignores immunities - if (!this.runStatusImmunity(status.id === 'tox' ? 'psn' : status.id)) { - this.battle.debug('immune to status'); - if ((sourceEffect as Move)?.status) { - this.battle.add('-immune', this); - } - return false; - } - } - const prevStatus = this.status; - const prevStatusState = this.statusState; - if (status.id) { - const result: boolean = this.battle.runEvent('SetStatus', this, source, sourceEffect, status); - if (!result) { - this.battle.debug('set status [' + status.id + '] interrupted'); - return result; - } - } - this.status = status.id; - this.statusState = {id: status.id, target: this}; - if (source) this.statusState.source = source; - if (status.duration) this.statusState.duration = status.duration; - if (status.durationCallback) { - this.statusState.duration = status.durationCallback.call(this.battle, this, source, sourceEffect); - } - - if (status.id && !this.battle.singleEvent('Start', status, this.statusState, this, source, sourceEffect)) { - this.battle.debug('status start [' + status.id + '] interrupted'); - // cancel the setstatus - this.status = prevStatus; - this.statusState = prevStatusState; - return false; - } - if (status.id && !this.battle.runEvent('AfterSetStatus', this, source, sourceEffect, status)) { - return false; - } - return true; - }, - getAbility() { - const item = this.battle.dex.items.getByID(this.ability); - return item.exists ? item as Effect as Ability : this.battle.dex.abilities.getByID(this.ability); - }, - hasItem(item) { - if (this.ignoringItem()) return false; - if (!Array.isArray(item)) { - item = this.battle.toID(item); - return item === this.item || item === this.ability; - } - item = item.map(this.battle.toID); - return item.includes(this.item) || item.includes(this.ability); - }, - eatItem(force, source, sourceEffect) { - if (!this.item || this.itemState.knockedOff) return false; - if ((!this.hp && this.item !== 'jabocaberry' && this.item !== 'rowapberry') || !this.isActive) return false; - - if (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect; - if (!source && this.battle.event && this.battle.event.target) source = this.battle.event.target; - const item = this.getItem(); - if ( - this.battle.runEvent('UseItem', this, null, null, item) && - (force || this.battle.runEvent('TryEatItem', this, null, null, item)) - ) { - this.battle.add('-enditem', this, item, '[eat]'); - - this.battle.singleEvent('Eat', item, this.itemState, this, source, sourceEffect); - this.battle.runEvent('EatItem', this, null, null, item); - - if (RESTORATIVE_BERRIES.has(item.id)) { - switch (this.pendingStaleness) { - case 'internal': - if (this.staleness !== 'external') this.staleness = 'internal'; - break; - case 'external': - this.staleness = 'external'; - break; - } - this.pendingStaleness = undefined; - } - if (this.item === item.id) { - this.lastItem = this.item; - this.item = ''; - this.itemState = {id: '', target: this}; - } - if (this.ability === item.id) { - this.lastItem = this.ability; - this.baseAbility = this.ability = ''; - this.abilityState = {id: '', target: this}; - } - this.usedItemThisTurn = true; - this.ateBerry = true; - this.battle.runEvent('AfterUseItem', this, null, null, item); - return true; - } - return false; - }, - useItem(source, sourceEffect) { - if ((!this.hp && !this.getItem().isGem) || !this.isActive) return false; - if (!this.item || this.itemState.knockedOff) return false; - - if (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect; - if (!source && this.battle.event && this.battle.event.target) source = this.battle.event.target; - const item = this.getItem(); - if (this.battle.runEvent('UseItem', this, null, null, item)) { - switch (item.id) { - case 'redcard': - this.battle.add('-enditem', this, item, '[of] ' + source); - break; - default: - if (item.isGem) { - this.battle.add('-enditem', this, item, '[from] gem'); - } else { - this.battle.add('-enditem', this, item); - } - break; - } - if (item.boosts) { - this.battle.boost(item.boosts, this, source, item); - } - - this.battle.singleEvent('Use', item, this.itemState, this, source, sourceEffect); - - if (this.item === item.id) { - this.lastItem = this.item; - this.item = ''; - this.itemState = {id: '', target: this}; - } - if (this.ability === item.id) { - this.lastItem = this.ability; - this.baseAbility = this.ability = ''; - this.abilityState = {id: '', target: this}; - } - this.usedItemThisTurn = true; - this.battle.runEvent('AfterUseItem', this, null, null, item); - return true; - } - return false; - }, - setAbility(ability, source, isFromFormeChange) { - if (this.battle.dex.items.get(this.ability).exists) return false; - return Object.getPrototypeOf(this).setAbility.call(this, ability, source, isFromFormeChange); - }, - }, - - init() { - this.modData('Learnsets', 'wigglytuff').learnset.geomancy = ['8L1']; - this.modData('Learnsets', 'articunogalar').learnset.defog = ['8L1']; - this.modData('Learnsets', 'zapdosgalar').learnset.defog = ['8L1']; - this.modData('Learnsets', 'moltresgalar').learnset.defog = ['8L1']; - this.modData('Learnsets', 'articunogalar').learnset.toxic = ['8L1']; - this.modData('Learnsets', 'articunogalar').learnset.heatwave = ['8L1']; - this.modData('Learnsets', 'zapdosgalar').learnset.toxic = ['8L1']; - this.modData('Learnsets', 'moltresgalar').learnset.toxic = ['8L1']; - this.modData('Learnsets', 'magmortar').learnset.recover = ['8L1']; - this.modData('Learnsets', 'girafarig').learnset.focusblast = ['8L1']; - this.modData('Learnsets', 'zarude').learnset.focusblast = ['8L1']; - this.modData('Learnsets', 'zarudedada').learnset.focusblast = ['8L1']; - this.modData('Learnsets', 'samurott').learnset.focusblast = ['8L1']; - this.modData('Learnsets', 'jirachi').learnset.focusblast = ['8L1']; - this.modData('Learnsets', 'delphox').learnset.focusblast = ['8L1']; - this.modData('Learnsets', 'ninetalesalola').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'sandslashalola').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'abomasnow').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'arctozolt').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'arctovish').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'avalugg').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'articuno').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'crabominable').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'cryogonal').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'dewgong').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'froslass').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'frosmoth').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'glaceon').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'glalie').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'glastrier').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'jynx').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'lapras').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'mrrime').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'vanilluxe').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'walrein').learnset.meltingpoint = ['8L1']; - this.modData('Learnsets', 'spinarak').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'weedle').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'wurmple').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'venonat').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'combee').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'volbeat').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'illumise').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'shuckle').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'surskit').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'bulbasaur').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'joltik').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'dewpider').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'slowbrogalar').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'tentacool').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'poipole').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'umbreon').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'tangrowth').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'accelgor').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'leavanny').learnset.toxicthread = ['8L1']; - this.modData('Learnsets', 'anorith').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'croagunk').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'cubone').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'diglett').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'diglettalola').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'drilbur').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'geodude').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'geodudealola').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'gible').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'gligar').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'groudon').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'helioptile').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'jynx').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'mudbray').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'numel').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'lileep').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'onix').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'paras').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'rhyhorn').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'rolycoly').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'salandit').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'sandile').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'sandshrew').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'shuckle').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'silicobra').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'torkoal').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'trapinch').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'volcanion').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'wormadamsandy').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'yamaskgalar').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'solrock').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'lunatone').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'minior').learnset.aridabsorption = ['8L1']; - this.modData('Learnsets', 'aegislash').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'aggron').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'arceus').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'bastiodon').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'bronzong').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'carbink').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'celesteela').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'copperajah').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'dialga').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'duraludon').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'empoleon').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'escavalier').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'forretress').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'genesect').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'jirachi').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'kartana').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'klinklang').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'magearna').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'magnezone').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'melmetal').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'necrozma').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'probopass').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'regice').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'regigigas').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'registeel').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'regirock').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'scizor').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'skarmory').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'solgaleo').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'stakataka').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'steelix').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'wormadamtrash').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'wormadam').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'wormadamsandy').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'zamazenta').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'reuniclus').learnset.reconstruct = ['8L1']; - this.modData('Learnsets', 'porygon').learnset.reconstruct = ['8L1']; - delete this.modData('Learnsets', 'alakazam').learnset.nastyplot; - this.modData('Learnsets', 'meganium').learnset.wish = ['8L1']; - this.modData('Learnsets', 'meganium').learnset.weatherball = ['8L1']; - this.modData('Learnsets', 'meganium').learnset.bodypress = ['8L1']; - this.modData('Learnsets', 'ampharos').learnset.dracometeor = ['8L1']; - this.modData('Learnsets', 'ampharos').learnset.slackoff = ['8L1']; - this.modData('Learnsets', 'ambipom').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'breloom').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'grapploct').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'sawk').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'infernape').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'scrafty').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'hitmonchan').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'crabominable').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'machamp').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'conkeldurr').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'melmetal').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'pangoro').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'ledian').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'toxicroak').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'mukalola').learnset.armthrust = ['8L1']; - this.modData('Learnsets', 'trevenant').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'exeggcute').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'landorus').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'thundurus').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'tornadus').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'ferrothorn').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'calyrex').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'dhelmise').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'leafeon').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'meganium').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'torterra').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'dubwool').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'sawsbuck').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'comfey').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'maractus').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'abomasnow').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'scolipede').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'regigigas').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'simisage').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'simisear').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'simipour').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'sirfetchd').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'skiddo').learnset.rototiller = ['8L1']; - this.modData('Learnsets', 'chansey').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'umbreon').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'milotic').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'amoonguss').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'mismagius').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'braixen').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'murkrow').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'ninetales').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'lumineon').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'volbeat').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'solrock').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'pachirisu').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'gigalith').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'watchog').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'gourgeist').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'zekrom').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'electivire').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'golemalola').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'luxray').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'thundurus').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'eelektross').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'zeraora').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'pincurchin').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'arctozolt').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'dracozolt').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'regieleki').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'zebstrika').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'togedemaru').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'toxtricitylowkey').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'morpeko').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'zapdos').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'raichualola').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'raichu').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'raikou').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'xurkitree').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'marowak').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'marowakalola').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'rhydon').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'goldeen').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'manectric').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'terrakion').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'virizion').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'keldeo').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'cobalion').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'sirfetchd').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'escavalier').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'celesteela').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'zacian').learnset.lightninglance = ['8L1']; - this.modData('Learnsets', 'cleffa').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'ralts').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'mawile').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'tapukoko').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'tapulele').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'tapubulu').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'tapufini').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'azurill').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'diancie').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'flabebe').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'snubbull').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'impidimp').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'hatenna').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'ninetalesalola').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'primarina').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'klefki').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'mimikyu').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'togepi').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'weezinggalar').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'swirlix').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'comfey').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'carbink').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'sylveon').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'spritzee').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'cutiefly').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'cottonee').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'milcery').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'dedenne').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'mimejr').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'ponytagalar').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'morelull').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'igglybuff').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'xerneas').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'magearna').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'zacian').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'hoopa').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'latias').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'latios').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'meditite').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'slowpoke').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'slowpokegalar').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'abra').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'victini').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'articunogalar').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'azelf').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'bruxish').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'chingling').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'delphox').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'deoxys').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'girafarig').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'spoink').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'drowzee').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'jirachi').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'mew').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'beldum').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'necrozma').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'solosis').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'cresselia').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'indeedee').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'indeedeef').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'sigilyph').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'bronzor').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'celebi').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'espeon').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'starmie').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'raichualola').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'calyrex').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'baltoy').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'mesprit').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'natu').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'elgyem').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'exeggcute').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'gothita').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'smoochum').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'lunatone').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'inkay').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'espurr').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'munna').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'oranguru').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'dottler').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'woobat').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'uxie').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'mewtwo').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'lugia').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'arceus').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'solgaleo').learnset.counterspell = ['8L1']; - this.modData('Learnsets', 'lunala').learnset.counterspell = ['8L1']; - this.modData("Learnsets", "oshawott").learnset.firstimpression = ["8L1"]; - this.modData("Learnsets", "dewott").learnset.brickbreak = ["8L1"]; - this.modData("Learnsets", "dewott").learnset.closecombat = ["8L1"]; - this.modData("Learnsets", "samurott").learnset.shellsmash = ["8L1"]; - this.modData("Learnsets", "samurott").learnset.drillrun = ["8L1"]; - this.modData("Learnsets", "muk").learnset.recover = ["8L1"]; - this.modData("Learnsets", "muk").learnset.stealthrock = ["8L1"]; - this.modData("Learnsets", "mukalola").learnset.recover = ["8L1"]; - this.modData("Learnsets", "mukalola").learnset.toxicspikes = ["8L1"]; - this.modData("Learnsets", "mismagius").learnset.moonblast = ["8L1"]; - this.modData("Learnsets", "mismagius").learnset.partingshot = ["8L1"]; - this.modData("Learnsets", "mismagius").learnset.toxicspikes = ["8L1"]; - this.modData("Learnsets", "mismagius").learnset.venoshock = ["8L1"]; - this.modData('Learnsets', 'mismagius').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'primarina').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'froslass').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'chatot').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'cursola').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'exploud').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'gourgeist').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'drifblim').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'guzzlord').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'banette').learnset.deafeningshriek = ['8L1']; - this.modData('Learnsets', 'ludicolo').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'politoed').learnset.lifedew = ['8L1']; - // this.modData('Learnsets', 'alomomola').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'luvdisc').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'florges').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'xerneas').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'empoleon').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'phione').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'indeedee').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'indeedeef').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'comfey').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'eldegoss').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'seel').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'meganium').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'wailmer').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'panpour').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'misdreavus').learnset.lifedew = ['8L1']; - // this.modData('Learnsets', 'hoopa').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'morelull').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'munna').learnset.lifedew = ['8L1']; - this.modData('Learnsets', 'litten').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'zigzagoongalar').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'silvally').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'pancham').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'chatot').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'morpeko').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'persianalola').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'thievul').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'trubbish').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'articunogalar').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'muk').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'toxtricitylowkey').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'muk').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'mukalola').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'weezing').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'crobat').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'toxicroak').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'scrafty').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'simisage').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'salandit').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'yveltal').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'sneasel').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'hoopa').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'zweilous').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'krookodile').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'cacturne').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'houndoom').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'zoroark').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'slowkinggalar').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'gastly').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'liepard').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'malamar').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'vullaby').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'zarude').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'zarudedada').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'seviper').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'zangoose').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'gulpin').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'skuntank').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'rattataalola').learnset.trashtalk = ['8L1']; - this.modData('Learnsets', 'bruxish').learnset.trashtalk = ['8L1']; - this.modData("Learnsets", "meganium").learnset.playrough = ["8L1"]; - this.modData("Learnsets", "meganium").learnset.moonblast = ["8L1"]; - this.modData("Learnsets", "meganium").learnset.drainingkiss = ["8L1"]; - this.modData("Learnsets", "meganium").learnset.superpower = ["8L1"]; - this.modData("Learnsets", "meganium").learnset.dazzlinggleam = ["8L1"]; - this.modData("Learnsets", "typhlosion").learnset.earthpower = ["8L1"]; - this.modData("Learnsets", "typhlosion").learnset.meteorbeam = ["8L1"]; - this.modData("Learnsets", "typhlosion").learnset.scorchingsands = ["8L1"]; - this.modData("Learnsets", "typhlosion").learnset.stealthrock = ["8L1"]; - this.modData("Learnsets", "feraligatr").learnset.suckerpunch = ["8L1"]; - this.modData("Learnsets", "feraligatr").learnset.pursuit = ["8L1"]; - this.modData("Learnsets", "feraligatr").learnset.scaleshot = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.scaleshot = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.recover = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.suckerpunch = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.firstimpression = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.uturn = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.earthquake = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.toxic = ["8L1"]; - this.modData("Learnsets", "centiskorch").learnset.rapidspin = ["8L1"]; - this.modData("Learnsets", "blacephalon").learnset.headbutt = ["8L1"]; - this.modData("Learnsets", "blacephalon").learnset.headcharge = ["8L1"]; - this.modData('Learnsets', 'tapukoko').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'tapulele').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'tapufini').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'tapubulu').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'clefairy').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'wigglytuff').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'hatterene').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'grimmsnarl').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'mrmime').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'golett').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'ledian').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'hitmonchan').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'trevenant').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'haunter').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'shroomish').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'infernape').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'meditite').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'slurpuff').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'shiinotic').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'aromatisse').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'regigigas').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'ralts').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'whimsicott').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'mawile').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'azumarill').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'granbull').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'dusclops').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'jirachi').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'reuniclus').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'audino').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'marshadow').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'hoopa').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'sableye').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'mesprit').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'uxie').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'azelf').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'delphox').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'celebi').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'victini').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'mew').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'mewtwo').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'abra').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'diancie').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'wooper').learnset.enchantedpunch = ['8L1']; - this.modData('Learnsets', 'golemalola').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'passimian').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'klinklang').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'jumpluff').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'raikou').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'eelektrik').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'blacephalon').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'zebstrika').learnset.electroball = ['8L1']; - this.modData('Learnsets', 'diggersby').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'dusknoir').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'grapploct').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'passimian').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'machamp').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'sawk').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'throh').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'lurantis').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'metagross').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'pignite').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'aipom').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'golurk').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'ledian').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'regigigas').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'poliwhirl').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'primeape').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'hawlucha').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'toxicroak').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'eelektross').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'mienshao').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'thundurus').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'tornadus').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'medicham').learnset.skyuppercut = ['8L1']; - this.modData('Learnsets', 'hariyama').learnset.skyuppercut = ['8L1']; - delete this.modData('Learnsets', 'lopunny').learnset.skyuppercut; - delete this.modData('Learnsets', 'buneary').learnset.skyuppercut; - delete this.modData('Learnsets', 'tapukoko').learnset.electroball; - delete this.modData('Learnsets', 'regieleki').learnset.electroball; - this.modData('Learnsets', 'slurpuff').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'greedent').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'komala').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'indeedee').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'indeedeef').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'passimian').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'darmanitan').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'beartic').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'mienfoo').learnset.thunderpunch = ['8L1']; - this.modData('Learnsets', 'slurpuff').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'greedent').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'komala').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'indeedee').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'indeedeef').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'passimian').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'cherrim').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'mienfoo').learnset.firepunch = ['8L1']; - this.modData('Learnsets', 'slurpuff').learnset.icepunch = ['8L1']; - this.modData('Learnsets', 'greedent').learnset.icepunch = ['8L1']; - this.modData('Learnsets', 'komala').learnset.icepunch = ['8L1']; - this.modData('Learnsets', 'indeedee').learnset.icepunch = ['8L1']; - this.modData('Learnsets', 'indeedeef').learnset.icepunch = ['8L1']; - this.modData('Learnsets', 'passimian').learnset.icepunch = ['8L1']; - this.modData('Learnsets', 'barbaracle').learnset.icepunch = ['8L1']; - this.modData('Learnsets', 'mienfoo').learnset.icepunch = ['8L1']; - this.modData("Learnsets", "wishiwashi").learnset.recover = ["8L1"]; - this.modData("Learnsets", "wishiwashi").learnset.outrage = ["8L1"]; - this.modData("Learnsets", "wishiwashi").learnset.dragondance = ["8L1"]; - this.modData("Learnsets", "wishiwashi").learnset.dragonpulse = ["8L1"]; - this.modData("Learnsets", "wishiwashi").learnset.dracometeor = ["8L1"]; - this.modData("Learnsets", "wishiwashi").learnset.coreenforcer = ["8L1"]; - this.modData("Learnsets", "azelf").learnset.aurasphere = ["8L1"]; - this.modData("Learnsets", "azelf").learnset.focusblast = ["8L1"]; - this.modData("Learnsets", "azelf").learnset.reversal = ["8L1"]; - this.modData("Learnsets", "azelf").learnset.vacuumwave = ["8L1"]; - this.modData("Learnsets", "azelf").learnset.forcepalm = ["8L1"]; - this.modData("Learnsets", "mesprit").learnset.taunt = ["8L1"]; - this.modData("Learnsets", "mesprit").learnset.moonblast = ["8L1"]; - this.modData("Learnsets", "mesprit").learnset.spiritbreak = ["8L1"]; - this.modData("Learnsets", "mesprit").learnset.fairylock = ["8L1"]; - this.modData("Learnsets", "mesprit").learnset.defog = ["8L1"]; - this.modData("Learnsets", "uxie").learnset.flashcannon = ["8L1"]; - this.modData("Learnsets", "uxie").learnset.disable = ["8L1"]; - this.modData("Learnsets", "uxie").learnset.doomdesire = ["8L1"]; - this.modData("Learnsets", "uxie").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "uxie").learnset.steelbeam = ["8L1"]; - this.modData("Learnsets", "uxie").learnset.reconstruct = ["8L1"]; - delete this.modData('Learnsets', 'melmetal').learnset.thunderpunch; - this.modData('Learnsets', 'fearow').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'graveler').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'graveleralola').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'voltorb').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'rhydon').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'totodile').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'hoppip').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'miltank').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'dunsparce').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'kirlia').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'spheal').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'bidoof').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'burmy').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'floatzel').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'lickilicky').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'whirlipede').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'sandile').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'minccino').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'klink').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'incineroar').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'poipole').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'wooloo').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'barraskewda').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'alcremie').learnset.rapidspin = ['8L1']; - this.modData('Learnsets', 'meowth').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'meowthalola').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'meowthgalar').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'krabby').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'zapdosgalar').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'totodile').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'ursaring').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'gligar').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'corphish').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'absol').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'metang').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'drapion').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'dwebble').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'krokorok').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'beartic').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'binacle').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'clawitzer').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'pangoro').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'trevenant').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'yveltal').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'incineroar').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'crabrawler').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'golisopod').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'bewear').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'guzzlord').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'necrozma').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'zeraora').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'hatterene').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'zarude').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'zarudedada').learnset.crushclaw = ['8L1']; - this.modData('Learnsets', 'poliwag').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'seel').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'qwilfish').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'lotad').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'huntail').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'gorebyss').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'luvdisc').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'anorith').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'piplup').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'bidoof').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'buizel').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'finneon').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'croagunk').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'phione').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'oshawott').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'panpour').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'alomomola').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'ducklett').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'stunfisk').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'eelektrik').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'inkay').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'bruxish').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'golisopod').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'grapploct').learnset.flipturn = ['8L1']; - this.modData('Learnsets', 'meganium').learnset.highhorsepower = ['8L1']; - this.modData('Learnsets', 'celesteela').learnset.thunderbolt = ['8L1']; - this.modData('Learnsets', 'archeops').learnset.bravebird = ['8L1']; - this.modData('Learnsets', 'archeops').learnset.hurricane = ['8L1']; - this.modData('Learnsets', 'weedle').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'nidoranm').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'slowbrogalar').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'mareanie').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'ekans').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'spinarak').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'wurmple').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'nidoranf').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'nihilego').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'seviper').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'tentacool').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'venonat').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'victreebel').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'venipede').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'zubat').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'roselia').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'toxtricitylowkey').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'skorupi').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'croagunk').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'trubbish').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'qwilfish').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'stunky').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'poipole').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'gligar').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'sandshrew').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'sandshrewalola').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'cacnea').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'vespiquen').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'breloom').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'decidueye').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'buzzwole').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'spearow').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'heracross').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'omastar').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'accelgor').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'pincurchin').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'seismitoad').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'froakie').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'skrelp').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'cloyster').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'frillish').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'octillery').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'clobbopus').learnset.poisondart = ['8L1']; - this.modData('Learnsets', 'accelgor').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'trubbish').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'goodra').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'grimer').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'grimeralola').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'nidoking').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'nidoqueen').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'pancham').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'reuniclus').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'swalot').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'croagunk').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'haunter').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'guzzlord').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'hitmonchan').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'breloom').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'seismitoad').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'scraggy').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'marshtomp').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'toxtricitylowkey').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'poliwrath').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'quagsire').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'clobbopus').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'eelektross').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'deoxys').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'tsareena').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'shiinotic').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'gloom').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'ludicolo').learnset.acidicfists = ['8L1']; - this.modData('Learnsets', 'tangela').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'foongus').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'oddish').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'butterfree').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'cherrim').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'gossifleur').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'exeggcute').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'hoppip').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'paras').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'morelull').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'venonat').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'bellsprout').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'spewpa').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'carnivine').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'petilil').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'budew').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'shroomish').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'cottonee').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'bulbasaur').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'chikorita').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'dustox').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'mothim').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'beautifly').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'cutiefly').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'volcarona').learnset.rashpowder = ['8L1']; - this.modData('Learnsets', 'voltorb').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'klefki').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'flabebe').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'dedenne').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'luvdisc').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'togetic').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'altaria').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'castform').learnset.mistyexplosion = ['8L1']; - this.modData('Learnsets', 'mandibuzz').learnset.bonemerang = ['8L1']; - this.modData('Learnsets', 'houndour').learnset.bonemerang = ['8L1']; - this.modData('Learnsets', 'stoutland').learnset.bonemerang = ['8L1']; - this.modData('Learnsets', 'lycanroc').learnset.bonemerang = ['8L1']; - this.modData('Learnsets', 'lycanrocdusk').learnset.bonemerang = ['8L1']; - this.modData('Learnsets', 'lycanrocmidnight').learnset.bonemerang = ['8L1']; - this.modData('Learnsets', 'lucario').learnset.bonemerang = ['8L1']; - this.modData('Learnsets', 'bulbasaur').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'ekans').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'nidoranm').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'nidoranf').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'bellsprout').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'paras').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'poliwag').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'grimer').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'grimeralola').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'slowbrogalar').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'vileplume').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'diglett').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'diglettalola').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'spinarak').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'wooper').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'yanma').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'qwilfish').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'swinub').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'shuckle').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'mudkip').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'nincada').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'corphish').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'surskit').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'barboach').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'baltoy').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'anorith').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'stunky').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'burmy').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'shellos').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'croagunk').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'skorupi').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'carnivine').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'venipede').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'tympole').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'trubbish').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'shelmet').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'stunfisk').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'golett').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'eelektrik').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'durant').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'bunnelby').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'goomy').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'grubbin').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'wimpod').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'mudbray').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'poipole').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'buzzwole').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'gulpin').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'bidoof').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'marill').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'kecleon').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'tangela').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'crabrawler').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'karrablast').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'krabby').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'dwebble').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'tropius').learnset.mudspike = ['8L1']; - this.modData('Learnsets', 'corsolagalar').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'munchlax').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'stonjourner').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'wailmer').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'jigglypuff').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'pincurchin').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'golett').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'heatran').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'gastly').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'azelf').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'volcanion').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'spheal').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'cyndaquil').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'skwovet').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'geodude').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'geodudealola').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'voltorb').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'koffing').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'pineco').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'seedot').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'lunatone').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'solrock').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'baltoy').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'drifloon').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'stunky').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'roggenrola').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'trubbish').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'ferroseed').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'silvally').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'minior').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'turtonator').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'magnemite').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'grimer').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'grimeralola').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'exeggcute').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'bonsly').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'onix').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'qwilfish').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'corsola').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'nosepass').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'gulpin').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'numel').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'glalie').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'bronzor').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'lickitung').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'solosis').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'vanillite').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'cryogonal').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'rolycoly').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'regirock').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'regice').learnset.selfdestruct = ['8L1']; - this.modData('Learnsets', 'registeel').learnset.selfdestruct = ['8L1']; - this.modData("Learnsets", "dusclops").learnset.bodypress = ["8L1"]; - this.modData("Learnsets", "dusclops").learnset.drainpunch = ["8L1"]; - this.modData("Learnsets", "dusclops").learnset.strengthsap = ["8L1"]; - this.modData("Learnsets", "magmortar").learnset.aurasphere = ["8L1"]; - this.modData("Learnsets", "magmortar").learnset.sludgebomb = ["8L1"]; - this.modData("Learnsets", "magmortar").learnset.dragonpulse = ["8L1"]; - this.modData("Learnsets", "magmortar").learnset.vacuumwave = ["8L1"]; - this.modData("Learnsets", "electivire").learnset.knockoff = ["8L1"]; - this.modData("Learnsets", "electivire").learnset.suckerpunch = ["8L1"]; - this.modData("Learnsets", "electivire").learnset.swordsdance = ["8L1"]; - this.modData("Learnsets", "electivire").learnset.closecombat = ["8L1"]; - this.modData("Learnsets", "electivire").learnset.machpunch = ["8L1"]; - this.modData("Learnsets", "electivire").learnset.drainpunch = ["8L1"]; - this.modData("Learnsets", "electivire").learnset.meteormash = ["8L1"]; - this.modData("Learnsets", "sliggoo").learnset.corrosivegas = ["8L1"]; - this.modData("Learnsets", "dodrio").learnset.earthquake = ["8L1"]; - this.modData("Learnsets", "dodrio").learnset.highhorsepower = ["8L1"]; - this.modData("Learnsets", "dodrio").learnset.tripleaxel = ["8L1"]; - this.modData("Learnsets", "cresselia").learnset.haze = ["8L1"]; - this.modData("Learnsets", "cresselia").learnset.defog = ["8L1"]; - this.modData("Learnsets", "beedrill").learnset.mudspike = ["8L1"]; - this.modData('Learnsets', 'vigoroth').learnset.payback = ['8L1']; - this.modData('Learnsets', 'incineroar').learnset.payback = ['8L1']; - this.modData('Learnsets', 'grimmsnarl').learnset.payback = ['8L1']; - this.modData('Learnsets', 'breloom').learnset.payback = ['8L1']; - this.modData('Learnsets', 'tyrogue').learnset.payback = ['8L1']; - this.modData('Learnsets', 'tepig').learnset.payback = ['8L1']; - this.modData('Learnsets', 'munchlax').learnset.payback = ['8L1']; - this.modData('Learnsets', 'banette').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'dusclops').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'vigoroth').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'breloom').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'tepig').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'mimikyu').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'leafeon').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'flareon').learnset.revenge = ['8L1']; - this.modData('Learnsets', 'donphan').learnset.avalanche = ['8L1']; - this.modData('Learnsets', 'steelix').learnset.avalanche = ['8L1']; - this.modData('Learnsets', 'gigalith').learnset.avalanche = ['8L1']; - this.modData('Learnsets', 'forretress').learnset.avalanche = ['8L1']; - this.modData('Learnsets', 'torterra').learnset.avalanche = ['8L1']; - this.modData('Learnsets', 'whiscash').learnset.avalanche = ['8L1']; - this.modData('Learnsets', 'mudsdale').learnset.avalanche = ['8L1']; - this.modData('Learnsets', 'snorlax').learnset.avalanche = ['8L1']; - delete this.modData('Learnsets', 'houndoom').learnset.sludgebomb; - delete this.modData('Learnsets', 'houndour').learnset.sludgebomb; - this.modData('Learnsets', 'litten').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'zigzagoongalar').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'silvally').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'pancham').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'chatot').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'morpeko').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'persianalola').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'thievul').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'trubbish').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'articunogalar').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'muk').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'mukalola').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'weezing').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'crobat').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'toxicroak').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'scrafty').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'simisage').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'salandit').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'yveltal').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'sneasel').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'hoopa').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'zweilous').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'hydreigon').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'krookodile').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'cacturne').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'houndoom').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'zoroark').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'slowkinggalar').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'gastly').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'liepard').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'malamar').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'vullaby').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'zarude').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'zarudedada').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'seviper').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'zangoose').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'gulpin').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'skuntank').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'liepard').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'rattataalola').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'bruxish').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'ariados').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'persian').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'perrserker').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'primeape').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'tauros').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'feraligatr').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'slowbrogalar').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'honchkrow').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'entei').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'mightyena').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'shiftry').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'slaking').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'sharpedo').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'walrein').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'luxray').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'purugly').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'abomasnow').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'mesprit').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'unfezant').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'darmanitan').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'beartic').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'tornadus').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'thundurus').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'tsareena').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'corviknight').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'drapion').learnset.aggravate = ['8L1']; - this.modData('Learnsets', 'porygon').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'klink').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'elgyem').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'metang').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'voltorb').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'clauncher').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'slowbrogalar').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'duraludon').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'silvally').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'mewtwo').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'magearna').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'toxtricitylowkey').learnset.technoblast = ['8L1']; - this.modData('Learnsets', 'magmortar').learnset.technoblast = ['8L1']; - delete this.modData('Learnsets', 'scyther').learnset.curse; - delete this.modData('Learnsets', 'scizor').learnset.curse; - this.modData('Learnsets', 'scyther').learnset.bulkup = ['8L1']; - this.modData('Learnsets', 'scizor').learnset.bulkup = ['8L1']; - this.modData('Learnsets', 'spectrier').learnset.curse = ['8L1']; - this.modData('Learnsets', 'dhelmise').learnset.curse = ['8L1']; - this.modData('Learnsets', 'jellicent').learnset.curse = ['8L1']; - this.modData('Learnsets', 'giratina').learnset.curse = ['8L1']; - this.modData('Learnsets', 'hoopa').learnset.curse = ['8L1']; - this.modData('Learnsets', 'marshadow').learnset.curse = ['8L1']; - this.modData('Learnsets', 'sableye').learnset.curse = ['8L1']; - this.modData('Learnsets', 'shedinja').learnset.curse = ['8L1']; - this.modData('Learnsets', 'audino').learnset.curse = ['8L1']; - this.modData('Learnsets', 'bewear').learnset.curse = ['8L1']; - this.modData('Learnsets', 'bouffalant').learnset.curse = ['8L1']; - this.modData('Learnsets', 'braviary').learnset.curse = ['8L1']; - this.modData('Learnsets', 'claydol').learnset.curse = ['8L1']; - this.modData('Learnsets', 'crabominable').learnset.curse = ['8L1']; - this.modData('Learnsets', 'escavalier').learnset.curse = ['8L1']; - this.modData('Learnsets', 'greedent').learnset.curse = ['8L1']; - this.modData('Learnsets', 'gumshoos').learnset.curse = ['8L1']; - this.modData('Learnsets', 'kecleon').learnset.curse = ['8L1']; - this.modData('Learnsets', 'komala').learnset.curse = ['8L1']; - this.modData('Learnsets', 'relicanth').learnset.curse = ['8L1']; - this.modData('Learnsets', 'scrafty').learnset.curse = ['8L1']; - this.modData('Learnsets', 'watchog').learnset.curse = ['8L1']; - this.modData('Learnsets', 'toucannon').learnset.curse = ['8L1']; - this.modData("Learnsets", "eelektross").learnset.poisonjab = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.gunkshot = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.surf = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.sludgebomb = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.toxicspikes = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.liquidation = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.venoshock = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.icepunch = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.toxicthread = ["8L1"]; - this.modData("Learnsets", "eelektross").learnset.scald = ["8L1"]; - this.modData("Learnsets", "audino").learnset.moonblast = ["8L1"]; - this.modData("Learnsets", "audino").learnset.counterspell = ["8L1"]; - this.modData("Learnsets", "guzzlord").learnset.glare = ["8L1"]; - this.modData("Learnsets", "guzzlord").learnset.nastyplot = ["8L1"]; - this.modData("Learnsets", "guzzlord").learnset.partingshot = ["8L1"]; - this.modData("Learnsets", "guzzlord").learnset.slackoff = ["8L1"]; - this.modData("Learnsets", "banette").learnset.poltergeist = ["8L1"]; - this.modData("Learnsets", "banette").learnset.metalclaw = ["8L1"]; - this.modData("Learnsets", "banette").learnset.bulletpunch = ["8L1"]; - this.modData("Learnsets", "banette").learnset.ironhead = ["8L1"]; - this.modData("Learnsets", "banette").learnset.smartstrike = ["8L1"]; - this.modData("Learnsets", "banette").learnset.swordsdance = ["8L1"]; - this.modData("Learnsets", "banette").learnset.shiftgear = ["8L1"]; - this.modData("Learnsets", "banette").learnset.irondefense = ["8L1"]; - this.modData("Learnsets", "banette").learnset.superpower = ["8L1"]; - this.modData("Learnsets", "gyarados").learnset.lifedew = ["8L1"]; - this.modData("Learnsets", "gyarados").learnset.pursuit = ["8L1"]; - this.modData("Learnsets", "gyarados").learnset.rapidspin = ["8L1"]; - this.modData("Learnsets", "typenull").learnset.wildcharge = ["8L1"]; - this.modData("Learnsets", "typenull").learnset.superpower = ["8L1"]; - this.modData("Learnsets", "silvally").learnset.wildcharge = ["8L1"]; - this.modData("Learnsets", "silvally").learnset.superpower = ["8L1"]; - this.modData("Learnsets", "silvally").learnset.earthquake = ["8L1"]; - this.modData("Learnsets", "silvally").learnset.blazekick = ["8L1"]; - this.modData("Learnsets", "wormadam").learnset.recover = ["8L1"]; - this.modData("Learnsets", "wormadam").learnset.thunderbolt = ["8L1"]; - this.modData("Learnsets", "wormadam").learnset.earthpower = ["8L1"]; - this.modData("Learnsets", "wormadam").learnset.uturn = ["8L1"]; - this.modData("Learnsets", "wormadamsandy").learnset.recover = ["8L1"]; - this.modData("Learnsets", "wormadamsandy").learnset.spikes = ["8L1"]; - this.modData("Learnsets", "wormadamsandy").learnset.stickyweb = ["8L1"]; - this.modData("Learnsets", "wormadamsandy").learnset.uturn = ["8L1"]; - this.modData("Learnsets", "wormadamtrash").learnset.spikes = ["8L1"]; - this.modData("Learnsets", "wormadamtrash").learnset.thunderbolt = ["8L1"]; - this.modData("Learnsets", "wormadamtrash").learnset.earthpower = ["8L1"]; - this.modData("Learnsets", "wormadamtrash").learnset.uturn = ["8L1"]; - this.modData('Learnsets', 'clauncher').learnset.octazooka = ['8L1']; - this.modData('Learnsets', 'inteleon').learnset.octazooka = ['8L1']; - this.modData('Learnsets', 'inkay').learnset.octazooka = ['8L1']; - this.modData('Learnsets', 'mantine').learnset.octazooka = ['8L1']; - this.modData('Learnsets', 'inteleon').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'toxtricity').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'dottler').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'hatenna').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'pincurchin').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'boltund').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'ponytagalar').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'slowpokegalar').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'frosmoth').learnset.signalbeam = ['8L1']; - this.modData('Learnsets', 'raikou').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'jolteon').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'keldeo').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'chinchou').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'beheeyem').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'staryu').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'glaceon').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'empoleon').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'nosepass').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'articuno').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'lugia').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'lapras').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'regice').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'jynx').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'gigalith').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'xurkitree').learnset.aurorabeam = ['8L1']; - this.modData('Learnsets', 'palossand').learnset.hex = ['8L1']; - this.modData('Learnsets', 'hatterene').learnset.hex = ['8L1']; - this.modData('Learnsets', 'delphox').learnset.hex = ['8L1']; - this.modData('Learnsets', 'seadra').learnset.venoshock = ['8L1']; - this.modData('Learnsets', 'shiinotic').learnset.venoshock = ['8L1']; - this.modData('Learnsets', 'umbreon').learnset.venoshock = ['8L1']; - this.modData('Learnsets', 'sandshrew').learnset.venoshock = ['8L1']; - this.modData('Learnsets', 'falinks').learnset.attackorder = ['8L1']; - this.modData('Learnsets', 'honchkrow').learnset.attackorder = ['8L1']; - this.modData('Learnsets', 'bisharp').learnset.attackorder = ['8L1']; - this.modData('Learnsets', 'cramorant').learnset.attackorder = ['8L1']; - delete this.modData('Learnsets', 'gastly').learnset.curse; - delete this.modData('Learnsets', 'haunter').learnset.curse; - delete this.modData('Learnsets', 'gengar').learnset.curse; - delete this.modData('Learnsets', 'dreepy').learnset.curse; - delete this.modData('Learnsets', 'drakloak').learnset.curse; - delete this.modData('Learnsets', 'dragapult').learnset.curse; - delete this.modData('Learnsets', 'misdreavus').learnset.curse; - delete this.modData('Learnsets', 'mismagius').learnset.curse; - delete this.modData('Learnsets', 'pumpkaboo').learnset.curse; - delete this.modData('Learnsets', 'gourgeist').learnset.curse; - delete this.modData('Learnsets', 'litwick').learnset.curse; - delete this.modData('Learnsets', 'lampent').learnset.curse; - delete this.modData('Learnsets', 'chandelure').learnset.curse; - delete this.modData('Learnsets', 'mimikyu').learnset.curse; - delete this.modData('Learnsets', 'decidueye').learnset.curse; - delete this.modData('Learnsets', 'dartrix').learnset.curse; - delete this.modData('Learnsets', 'rowlet').learnset.curse; - this.modData("Learnsets", "keldeo").learnset.vacuumwave = ["8L1"]; - this.modData("Learnsets", "keldeo").learnset.highjumpkick = ["8L1"]; - this.modData("Learnsets", "keldeo").learnset.bulkup = ["8L1"]; - this.modData("Learnsets", "keldeo").learnset.aurasphere = ["8L1"]; - this.modData("Learnsets", "keldeo").learnset.brine = ["8L1"]; - this.modData("Learnsets", "keldeo").learnset.aquaring = ["8L1"]; - // this.modData("Learnsets", "keldeo").learnset.lifedew = ["8L1"]; - this.modData("Learnsets", "keldeo").learnset.signalbeam = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.vacuumwave = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.highjumpkick = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.bulkup = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.aurasphere = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.kingsshield = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.doomdesire = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.bodypress = ["8L1"]; - this.modData("Learnsets", "cobalion").learnset.reconstruct = ["8L1"]; - this.modData("Learnsets", "terrakion").learnset.vacuumwave = ["8L1"]; - this.modData("Learnsets", "terrakion").learnset.highjumpkick = ["8L1"]; - this.modData("Learnsets", "terrakion").learnset.bulkup = ["8L1"]; - this.modData("Learnsets", "terrakion").learnset.aurasphere = ["8L1"]; - this.modData("Learnsets", "terrakion").learnset.accelerock = ["8L1"]; - this.modData("Learnsets", "terrakion").learnset.spikes = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.vacuumwave = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.highjumpkick = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.bulkup = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.aurasphere = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.hornleech = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.powerwhip = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.spikyshield = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.sleeppowder = ["8L1"]; - this.modData("Learnsets", "virizion").learnset.rashpowder = ["8L1"]; - this.modData("Learnsets", "vaporeon").learnset.meltingpoint = ["8L1"]; - this.modData("Learnsets", "vaporeon").learnset.lifedew = ["8L1"]; - this.modData("Learnsets", "vaporeon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "vaporeon").learnset.bouncybubble = ["8L1"]; - this.modData("Learnsets", "jolteon").learnset.lightinglance = ["8L1"]; - this.modData("Learnsets", "jolteon").learnset.spikes = ["8L1"]; - this.modData("Learnsets", "jolteon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "jolteon").learnset.buzzybuzz = ["8L1"]; - this.modData("Learnsets", "flareon").learnset.firelash = ["8L1"]; - this.modData("Learnsets", "flareon").learnset.morningsun = ["8L1"]; - this.modData("Learnsets", "flareon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "flareon").learnset.sizzlyslide = ["8L1"]; - this.modData("Learnsets", "espeon").learnset.focusblast = ["8L1"]; - this.modData("Learnsets", "espeon").learnset.meteorbeam = ["8L1"]; - this.modData("Learnsets", "espeon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "espeon").learnset.glitzyglow = ["8L1"]; - this.modData("Learnsets", "umbreon").learnset.aggravate = ["8L1"]; - this.modData("Learnsets", "umbreon").learnset.toxicspikes = ["8L1"]; - this.modData("Learnsets", "umbreon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "umbreon").learnset.baddybad = ["8L1"]; - this.modData("Learnsets", "glaceon").learnset.dazzlinggleam = ["8L1"]; - this.modData("Learnsets", "glaceon").learnset.calmmind = ["8L1"]; - this.modData("Learnsets", "glaceon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "glaceon").learnset.freezyfrost = ["8L1"]; - this.modData("Learnsets", "leafeon").learnset.mudspike = ["8L1"]; - this.modData("Learnsets", "leafeon").learnset.strengthsap = ["8L1"]; - this.modData("Learnsets", "leafeon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "leafeon").learnset.sappyseed = ["8L1"]; - this.modData("Learnsets", "sylveon").learnset.moonlight = ["8L1"]; - this.modData("Learnsets", "sylveon").learnset.lovelykiss = ["8L1"]; - this.modData("Learnsets", "sylveon").learnset.teleport = ["8L1"]; - this.modData("Learnsets", "sylveon").learnset.sparklyswirl = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.knockoff = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.willowisp = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.thunderwave = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.swordsdance = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.gunkshot = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.blazekick = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.aromatherapy = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.bulkup = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.superpower = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.partingshot = ["8L1"]; - this.modData("Learnsets", "skuntank").learnset.strengthsap = ["8L1"]; - this.modData('Learnsets', 'alcremie').learnset.smother = ['8L1']; - this.modData('Learnsets', 'alomomola').learnset.smother = ['8L1']; - this.modData('Learnsets', 'altaria').learnset.smother = ['8L1']; - this.modData('Learnsets', 'ambipom').learnset.smother = ['8L1']; - this.modData('Learnsets', 'audino').learnset.smother = ['8L1']; - this.modData('Learnsets', 'azumarill').learnset.smother = ['8L1']; - this.modData('Learnsets', 'bewear').learnset.smother = ['8L1']; - this.modData('Learnsets', 'chansey').learnset.smother = ['8L1']; - this.modData('Learnsets', 'cinccino').learnset.smother = ['8L1']; - this.modData('Learnsets', 'clefable').learnset.smother = ['8L1']; - this.modData('Learnsets', 'diggersby').learnset.smother = ['8L1']; - this.modData('Learnsets', 'dubwool').learnset.smother = ['8L1']; - this.modData('Learnsets', 'electivire').learnset.smother = ['8L1']; - this.modData('Learnsets', 'florges').learnset.smother = ['8L1']; - this.modData('Learnsets', 'garbodor').learnset.smother = ['8L1']; - this.modData('Learnsets', 'gardevoir').learnset.smother = ['8L1']; - this.modData('Learnsets', 'gastrodon').learnset.smother = ['8L1']; - this.modData('Learnsets', 'goodra').learnset.smother = ['8L1']; - this.modData('Learnsets', 'granbull').learnset.smother = ['8L1']; - this.modData('Learnsets', 'grapploct').learnset.smother = ['8L1']; - this.modData('Learnsets', 'greedent').learnset.smother = ['8L1']; - this.modData('Learnsets', 'grimmsnarl').learnset.smother = ['8L1']; - this.modData('Learnsets', 'guzzlord').learnset.smother = ['8L1']; - this.modData('Learnsets', 'hariyama').learnset.smother = ['8L1']; - this.modData('Learnsets', 'hatterene').learnset.smother = ['8L1']; - this.modData('Learnsets', 'hawlucha').learnset.smother = ['8L1']; - this.modData('Learnsets', 'honchkrow').learnset.smother = ['8L1']; - this.modData('Learnsets', 'incineroar').learnset.smother = ['8L1']; - this.modData('Learnsets', 'kangaskhan').learnset.smother = ['8L1']; - this.modData('Learnsets', 'lopunny').learnset.smother = ['8L1']; - this.modData('Learnsets', 'mantine').learnset.smother = ['8L1']; - this.modData('Learnsets', 'miltank').learnset.smother = ['8L1']; - // this.modData('Learnsets', 'mimikyu').learnset.smother = ['8L1']; - this.modData('Learnsets', 'muk').learnset.smother = ['8L1']; - this.modData('Learnsets', 'mukalola').learnset.smother = ['8L1']; - this.modData('Learnsets', 'nidoqueen').learnset.smother = ['8L1']; - this.modData('Learnsets', 'regigigas').learnset.smother = ['8L1']; - this.modData('Learnsets', 'sandaconda').learnset.smother = ['8L1']; - this.modData('Learnsets', 'seviper').learnset.smother = ['8L1']; - this.modData('Learnsets', 'slaking').learnset.smother = ['8L1']; - this.modData('Learnsets', 'slurpuff').learnset.smother = ['8L1']; - this.modData('Learnsets', 'snorlax').learnset.smother = ['8L1']; - this.modData('Learnsets', 'swalot').learnset.smother = ['8L1']; - this.modData('Learnsets', 'tangrowth').learnset.smother = ['8L1']; - this.modData('Learnsets', 'throh').learnset.smother = ['8L1']; - this.modData('Learnsets', 'togekiss').learnset.smother = ['8L1']; - this.modData('Learnsets', 'wailord').learnset.smother = ['8L1']; - this.modData('Learnsets', 'wigglytuff').learnset.smother = ['8L1']; - this.modData('Learnsets', 'zygarde').learnset.smother = ['8L1']; - this.modData('Learnsets', 'milotic').learnset.smother = ['8L1']; - this.modData('Learnsets', 'purugly').learnset.smother = ['8L1']; - this.modData('Learnsets', 'jellicent').learnset.smother = ['8L1']; - this.modData('Learnsets', 'dragonite').learnset.smother = ['8L1']; - this.modData('Learnsets', 'arbok').learnset.smother = ['8L1']; - this.modData('Learnsets', 'lickilicky').learnset.smother = ['8L1']; - this.modData('Learnsets', 'salazzle').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'torchic').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'victini').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'pansear').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'darumaka').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'braixen').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'spinda').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'flareon').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'marowakalola').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'cherrim').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'bellossom').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'solgaleo').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.fierydance = ['8L1']; - this.modData('Learnsets', 'crabominable').learnset.shadowpunch = ['8L1']; - this.modData('Learnsets', 'pangoro').learnset.shadowpunch = ['8L1']; - this.modData('Learnsets', 'hoopa').learnset.shadowpunch = ['8L1']; - this.modData('Learnsets', 'mimikyu').learnset.shadowpunch = ['8L1']; - this.modData('Learnsets', 'hitmonchan').learnset.shadowpunch = ['8L1']; - this.modData('Learnsets', 'medicham').learnset.shadowpunch = ['8L1']; - this.modData('Learnsets', 'toxicroak').learnset.shadowpunch = ['8L1']; - this.modData('Learnsets', 'snover').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'mrmimegalar').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'smoochum').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'darumakagalar').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'snorunt').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'frosmoth').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'spinda').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'glaceon').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'lotad').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'cryogonal').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'crabominable').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'castform').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'brionne').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'oricorio').learnset.snowmanjazz = ['8L1']; - this.modData('Learnsets', 'impidimp').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'nuzleaf').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'spinda').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'zorua').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'sneasel').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'morelull').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'oddish').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'umbreon').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'teddiursa').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'clefairy').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'cresselia').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'darkrai').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'lunala').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'lunatone').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'primarina').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'cacnea').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'dustox').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'frosmoth').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'volbeat').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'illumise').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'venomoth').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'oricorio').learnset.moonlitwaltz = ['8L1']; - this.modData('Learnsets', 'pansage').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'lotad').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'spinda').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'leafeon').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'psyduck').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'pichu').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'igglybuff').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'cleffa').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'smoochum').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'mimejr').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'kirlia').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'shaymin').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'steenee').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'hoppip').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'oricorio').learnset.petaldance = ['8L1']; - this.modData('Learnsets', 'swablu').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'chatot').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'oricorio').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'delibird').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'spinda').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'ducklett').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'meloetta').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'pidove').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'pidgey').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'pikipek').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'beautifly').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'vivillon').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'butterfree').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'masquerain').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'mothim').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'swoobat').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'togekiss').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'shaymin').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'vespiquen').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'ledian').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'woobat').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'castform').learnset.skysoiree = ['8L1']; - this.modData('Learnsets', 'hoppip').learnset.skysoiree = ['8L1']; - this.modData("Learnsets", "gourgeist").learnset.disarmingvoice = ["8L1"]; - delete this.modData('Learnsets', 'gourgeist').learnset.moonblast; - }, -}; diff --git a/data/mods/gen8linked/conditions.ts b/data/mods/gen8linked/conditions.ts index fd5f5d625a17..de549ffb2a11 100644 --- a/data/mods/gen8linked/conditions.ts +++ b/data/mods/gen8linked/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { slp: { inherit: true, onBeforeMove(pokemon, target, move) { diff --git a/data/mods/gen8linked/items.ts b/data/mods/gen8linked/items.ts index 59c64c736c17..2765c2ed4ad7 100644 --- a/data/mods/gen8linked/items.ts +++ b/data/mods/gen8linked/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { leppaberry: { inherit: true, onUpdate(pokemon) { diff --git a/data/mods/gen8linked/moves.ts b/data/mods/gen8linked/moves.ts index a2253dd52414..db0878bba43a 100644 --- a/data/mods/gen8linked/moves.ts +++ b/data/mods/gen8linked/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { pursuit: { inherit: true, beforeTurnCallback(pokemon, target) { @@ -25,7 +25,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { const move = this.dex.getActiveMove(action.linked?.[0] || action.move); if (move.category !== 'Status' && !move.flags['failmefirst']) { pokemon.addVolatile('mefirst'); - this.actions.useMove(move, pokemon, target); + this.actions.useMove(move, pokemon, {target}); return null; } } @@ -143,7 +143,7 @@ export const Moves: {[k: string]: ModdedMoveData} = { if (!move || !move.flags['mirror'] || move.isZ || move.isMax) { return false; } - this.actions.useMove(move.id, pokemon, target); + this.actions.useMove(move.id, pokemon, {target}); return null; }, }, @@ -384,11 +384,11 @@ export const Moves: {[k: string]: ModdedMoveData} = { if (!lastMove) return false; const possibleTypes = []; const attackType = lastMove.type; - for (const type in this.dex.data.TypeChart) { - if (source.hasType(type)) continue; - const typeCheck = this.dex.data.TypeChart[type].damageTaken[attackType]; + for (const typeName of this.dex.types.names()) { + if (source.hasType(typeName)) continue; + const typeCheck = this.dex.types.get(typeName).damageTaken[attackType]; if (typeCheck === 2 || typeCheck === 3) { - possibleTypes.push(type); + possibleTypes.push(typeName); } } if (!possibleTypes.length) { diff --git a/data/mods/gen8linked/scripts.ts b/data/mods/gen8linked/scripts.ts index 14d752564015..ed19a3000e13 100644 --- a/data/mods/gen8linked/scripts.ts +++ b/data/mods/gen8linked/scripts.ts @@ -115,8 +115,10 @@ export const Scripts: ModdedBattleScriptsData = { } return; } - this.actions.runMove(action.move, action.pokemon, action.targetLoc, action.sourceEffect, - action.zmove, undefined, action.maxMove, action.originalTarget); + this.actions.runMove(action.move, action.pokemon, action.targetLoc, { + sourceEffect: action.sourceEffect, zMove: action.zmove, + maxMove: action.maxMove, originalTarget: action.originalTarget, + }); break; case 'megaEvo': this.actions.runMegaEvo(action.pokemon); @@ -303,15 +305,22 @@ export const Scripts: ModdedBattleScriptsData = { return false; }, actions: { - runMove(moveOrMoveName, pokemon, targetLoc, sourceEffect, zMove, externalMove, maxMove, originalTarget) { + runMove(moveOrMoveName, pokemon, targetLoc, options) { pokemon.activeMoveActions++; + const zMove = options?.zMove; + const maxMove = options?.maxMove; + const externalMove = options?.externalMove; + const originalTarget = options?.originalTarget; + let sourceEffect = options?.sourceEffect; let target = this.battle.getTarget(pokemon, maxMove || zMove || moveOrMoveName, targetLoc, originalTarget); let baseMove = this.dex.getActiveMove(moveOrMoveName); + const priority = baseMove.priority; const pranksterBoosted = baseMove.pranksterBoosted; if (baseMove.id !== 'struggle' && !zMove && !maxMove && !externalMove) { const changedMove = this.battle.runEvent('OverrideAction', pokemon, target, baseMove); if (changedMove && changedMove !== true) { baseMove = this.dex.getActiveMove(changedMove); + baseMove.priority = priority; if (pranksterBoosted) baseMove.pranksterBoosted = pranksterBoosted; target = this.battle.getRandomTarget(pokemon, baseMove); } @@ -388,7 +397,7 @@ export const Scripts: ModdedBattleScriptsData = { this.battle.add('-zpower', pokemon); pokemon.side.zMoveUsed = true; } - const moveDidSomething = this.useMove(baseMove, pokemon, target, sourceEffect, zMove, maxMove); + const moveDidSomething = this.useMove(baseMove, pokemon, {target, sourceEffect, zMove, maxMove}); this.battle.lastSuccessfulMoveThisTurn = moveDidSomething ? this.battle.activeMove && this.battle.activeMove.id : null; if (this.battle.activeMove) move = this.battle.activeMove; this.battle.singleEvent('AfterMove', move, null, pokemon, target, move); @@ -415,7 +424,8 @@ export const Scripts: ModdedBattleScriptsData = { if (dancer.fainted) continue; this.battle.add('-activate', dancer, 'ability: Dancer'); const dancersTarget = !target!.isAlly(dancer) && pokemon.isAlly(dancer) ? target! : pokemon; - this.runMove(move.id, dancer, dancer.getLocOf(dancersTarget), this.dex.abilities.get('dancer'), undefined, true); + this.runMove(move.id, dancer, dancer.getLocOf(dancersTarget), + {sourceEffect: this.dex.abilities.get('dancer'), externalMove: true}); } } if (noLock && pokemon.volatiles['lockedmove']) delete pokemon.volatiles['lockedmove']; diff --git a/data/mods/gen9dlc1/abilities.ts b/data/mods/gen9dlc1/abilities.ts new file mode 100644 index 000000000000..de6d8f837808 --- /dev/null +++ b/data/mods/gen9dlc1/abilities.ts @@ -0,0 +1,108 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + commander: { + inherit: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, + }, + gulpmissile: { + inherit: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, notransform: 1}, + }, + protosynthesis: { + inherit: true, + condition: { + noCopy: true, + onStart(pokemon, source, effect) { + if (effect?.name === 'Booster Energy') { + this.effectState.fromBooster = true; + this.add('-activate', pokemon, 'ability: Protosynthesis', '[fromitem]'); + } else { + this.add('-activate', pokemon, 'ability: Protosynthesis'); + } + this.effectState.bestStat = pokemon.getBestStat(false, true); + this.add('-start', pokemon, 'protosynthesis' + this.effectState.bestStat); + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, pokemon) { + if (this.effectState.bestStat !== 'atk') return; + this.debug('Protosynthesis atk boost'); + return this.chainModify([5325, 4096]); + }, + onModifyDefPriority: 6, + onModifyDef(def, pokemon) { + if (this.effectState.bestStat !== 'def') return; + this.debug('Protosynthesis def boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpAPriority: 5, + onModifySpA(spa, pokemon) { + if (this.effectState.bestStat !== 'spa') return; + this.debug('Protosynthesis spa boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpDPriority: 6, + onModifySpD(spd, pokemon) { + if (this.effectState.bestStat !== 'spd') return; + this.debug('Protosynthesis spd boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpe(spe, pokemon) { + if (this.effectState.bestStat !== 'spe') return; + this.debug('Protosynthesis spe boost'); + return this.chainModify(1.5); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Protosynthesis'); + }, + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1, cantsuppress: 1}, + }, + quarkdrive: { + inherit: true, + condition: { + noCopy: true, + onStart(pokemon, source, effect) { + if (effect?.name === 'Booster Energy') { + this.effectState.fromBooster = true; + this.add('-activate', pokemon, 'ability: Quark Drive', '[fromitem]'); + } else { + this.add('-activate', pokemon, 'ability: Quark Drive'); + } + this.effectState.bestStat = pokemon.getBestStat(false, true); + this.add('-start', pokemon, 'quarkdrive' + this.effectState.bestStat); + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, pokemon) { + if (this.effectState.bestStat !== 'atk') return; + this.debug('Quark Drive atk boost'); + return this.chainModify([5325, 4096]); + }, + onModifyDefPriority: 6, + onModifyDef(def, pokemon) { + if (this.effectState.bestStat !== 'def') return; + this.debug('Quark Drive def boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpAPriority: 5, + onModifySpA(spa, pokemon) { + if (this.effectState.bestStat !== 'spa') return; + this.debug('Quark Drive spa boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpDPriority: 6, + onModifySpD(spd, pokemon) { + if (this.effectState.bestStat !== 'spd') return; + this.debug('Quark Drive spd boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpe(spe, pokemon) { + if (this.effectState.bestStat !== 'spe') return; + this.debug('Quark Drive spe boost'); + return this.chainModify(1.5); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Quark Drive'); + }, + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1, cantsuppress: 1}, + }, +}; diff --git a/data/mods/gen9dlc1/formats-data.ts b/data/mods/gen9dlc1/formats-data.ts new file mode 100644 index 000000000000..bd8f196cf624 --- /dev/null +++ b/data/mods/gen9dlc1/formats-data.ts @@ -0,0 +1,5816 @@ +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { + bulbasaur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ivysaur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + venusaur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + venusaurmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + venusaurgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + charmander: { + tier: "LC", + }, + charmeleon: { + tier: "NFE", + }, + charizard: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + charizardmegax: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + charizardmegay: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + charizardgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + squirtle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wartortle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + blastoise: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + blastoisemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + blastoisegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + caterpie: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + metapod: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + butterfree: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + butterfreegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + weedle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kakuna: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + beedrill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + beedrillmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + pidgey: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pidgeotto: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + pidgeot: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pidgeotmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rattata: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rattataalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + raticate: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + raticatealola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + raticatealolatotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + spearow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + fearow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ekans: { + tier: "LC", + }, + arbok: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pichu: { + tier: "LC", + }, + pichuspikyeared: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachu: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachucosplay: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachurockstar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachubelle: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachupopstar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuphd: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachulibre: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuoriginal: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachuhoenn: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachusinnoh: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachuunova: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachukalos: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachualola: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachupartner: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachustarter: { + isNonstandard: "LGPE", + tier: "Illegal", + }, + pikachugmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuworld: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + raichu: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + raichualola: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sandshrew: { + tier: "LC", + }, + sandshrewalola: { + tier: "LC", + }, + sandslash: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sandslashalola: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nidoranf: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + nidorina: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + nidoqueen: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + nidoranm: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + nidorino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + nidoking: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cleffa: { + tier: "LC", + }, + clefairy: { + tier: "NFE", + doublesTier: "DUU", + natDexTier: "NFE", + }, + clefable: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + vulpix: { + tier: "NFE", + }, + vulpixalola: { + tier: "NFE", + }, + ninetales: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + ninetalesalola: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "UU", + }, + igglybuff: { + tier: "LC", + }, + jigglypuff: { + tier: "NFE", + }, + wigglytuff: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + zubat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + golbat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + crobat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + oddish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + gloom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + vileplume: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + bellossom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + paras: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + parasect: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + venonat: { + tier: "LC", + }, + venomoth: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + diglett: { + tier: "NFE", + }, + diglettalola: { + tier: "LC", + }, + dugtrio: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dugtrioalola: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + meowth: { + tier: "LC", + }, + meowthalola: { + tier: "LC", + }, + meowthgalar: { + tier: "LC", + }, + meowthgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + persian: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + persianalola: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + perrserker: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + psyduck: { + tier: "LC", + }, + golduck: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mankey: { + tier: "LC", + }, + primeape: { + tier: "PUBL", + doublesTier: "NFE", + natDexTier: "NFE", + }, + growlithe: { + tier: "LC", + }, + growlithehisui: { + tier: "NFE", + }, + arcanine: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + arcaninehisui: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "RU", + }, + poliwag: { + tier: "LC", + }, + poliwhirl: { + tier: "NFE", + }, + poliwrath: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + politoed: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + abra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kadabra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + alakazam: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + alakazammega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + machop: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + machoke: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + machamp: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + machampgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + bellsprout: { + tier: "LC", + }, + weepinbell: { + tier: "NFE", + }, + victreebel: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tentacool: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tentacruel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + geodude: { + tier: "LC", + }, + geodudealola: { + tier: "LC", + }, + graveler: { + tier: "NFE", + }, + graveleralola: { + tier: "NFE", + }, + golem: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + golemalola: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ponyta: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ponytagalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rapidash: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rapidashgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + slowpoke: { + tier: "LC", + }, + slowpokegalar: { + tier: "LC", + }, + slowbro: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + slowbromega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + slowbrogalar: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + slowking: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + slowkinggalar: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + magnemite: { + tier: "LC", + }, + magneton: { + tier: "PUBL", + doublesTier: "NFE", + natDexTier: "NFE", + }, + magnezone: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + farfetchd: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + farfetchdgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sirfetchd: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + doduo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dodrio: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + seel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dewgong: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + grimer: { + tier: "LC", + }, + grimeralola: { + tier: "LC", + }, + muk: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mukalola: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shellder: { + tier: "LC", + }, + cloyster: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gastly: { + tier: "NFE", + }, + haunter: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + gengar: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + gengarmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "AG", + }, + gengargmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + onix: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + steelix: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + steelixmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + drowzee: { + tier: "LC", + }, + hypno: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + krabby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kingler: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kinglergmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + voltorb: { + tier: "LC", + }, + voltorbhisui: { + tier: "LC", + }, + electrode: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + electrodehisui: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + exeggcute: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + exeggutor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + exeggutoralola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cubone: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + marowak: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + marowakalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + marowakalolatotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tyrogue: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + hitmonlee: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + hitmonchan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + hitmontop: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lickitung: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lickilicky: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + koffing: { + tier: "LC", + }, + weezing: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + weezinggalar: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rhyhorn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rhydon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + rhyperior: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + happiny: { + tier: "LC", + }, + chansey: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "UU", + }, + blissey: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tangela: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tangrowth: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kangaskhan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kangaskhanmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + horsea: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + seadra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + kingdra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + goldeen: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + seaking: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + staryu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + starmie: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mimejr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + mrmime: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mrmimegalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + mrrime: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + scyther: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + scizor: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + scizormega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + kleavor: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "UU", + }, + smoochum: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + jynx: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + elekid: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + electabuzz: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + electivire: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + magby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + magmar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + magmortar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pinsir: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pinsirmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + tauros: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + taurospaldeacombat: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + taurospaldeablaze: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + taurospaldeaaqua: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + magikarp: { + tier: "LC", + }, + gyarados: { + tier: "RUBL", + doublesTier: "DUU", + natDexTier: "UUBL", + }, + gyaradosmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + lapras: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + laprasgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + ditto: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + eevee: { + tier: "LC", + }, + eeveestarter: { + isNonstandard: "LGPE", + tier: "Illegal", + }, + eeveegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + vaporeon: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + jolteon: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flareon: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + espeon: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + umbreon: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + leafeon: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + glaceon: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sylveon: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + porygon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + porygon2: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + porygonz: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + omanyte: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + omastar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kabuto: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kabutops: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + aerodactyl: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + aerodactylmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + munchlax: { + tier: "LC", + }, + snorlax: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + snorlaxgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + articuno: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + articunogalar: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + zapdos: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + zapdosgalar: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + moltres: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + moltresgalar: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + dratini: { + tier: "LC", + }, + dragonair: { + tier: "NFE", + }, + dragonite: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + mewtwo: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + mewtwomegax: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + mewtwomegay: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + mew: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + chikorita: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bayleef: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + meganium: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cyndaquil: { + tier: "LC", + }, + quilava: { + tier: "NFE", + }, + typhlosion: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + typhlosionhisui: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + totodile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + croconaw: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + feraligatr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sentret: { + tier: "LC", + }, + furret: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + hoothoot: { + tier: "LC", + }, + noctowl: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ledyba: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ledian: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + spinarak: { + tier: "LC", + }, + ariados: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + chinchou: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lanturn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + togepi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + togetic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + togekiss: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + natu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + xatu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mareep: { + tier: "LC", + }, + flaaffy: { + tier: "NFE", + }, + ampharos: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ampharosmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + azurill: { + tier: "LC", + }, + marill: { + tier: "NFE", + }, + azumarill: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + bonsly: { + tier: "LC", + }, + sudowoodo: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + hoppip: { + tier: "LC", + }, + skiploom: { + tier: "NFE", + }, + jumpluff: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + aipom: { + tier: "NFE", + }, + ambipom: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sunkern: { + tier: "LC", + }, + sunflora: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + yanma: { + tier: "NFE", + }, + yanmega: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + wooper: { + tier: "LC", + }, + wooperpaldea: { + tier: "LC", + }, + quagsire: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + murkrow: { + tier: "NFE", + doublesTier: "DUU", + }, + honchkrow: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + misdreavus: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + mismagius: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + unown: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wynaut: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wobbuffet: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + girafarig: { + tier: "NFE", + }, + farigiraf: { + tier: "PU", + doublesTier: "DOU", + natDexTier: "RU", + }, + pineco: { + tier: "LC", + }, + forretress: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dunsparce: { + tier: "NFE", + }, + dudunsparce: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gligar: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + gliscor: { + tier: "Uber", + doublesTier: "DUU", + natDexTier: "OU", + }, + snubbull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + granbull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + qwilfish: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + qwilfishhisui: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + overqwil: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shuckle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + heracross: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + heracrossmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + sneasel: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + sneaselhisui: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + weavile: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UUBL", + }, + sneasler: { + tier: "Uber", + doublesTier: "(DUU)", + natDexTier: "Uber", + }, + teddiursa: { + tier: "LC", + }, + ursaring: { + tier: "ZUBL", + doublesTier: "NFE", + natDexTier: "NFE", + }, + ursaluna: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "OU", + }, + ursalunabloodmoon: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + slugma: { + tier: "LC", + }, + magcargo: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + swinub: { + tier: "LC", + }, + piloswine: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + mamoswine: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + corsola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + corsolagalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cursola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + remoraid: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + octillery: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + delibird: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mantyke: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + mantine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + skarmory: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + houndour: { + tier: "LC", + }, + houndoom: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + houndoommega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + phanpy: { + tier: "LC", + }, + donphan: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + stantler: { + tier: "NFE", + }, + wyrdeer: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + smeargle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + miltank: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + raikou: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + entei: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + suicune: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + larvitar: { + tier: "LC", + }, + pupitar: { + tier: "NFE", + }, + tyranitar: { + tier: "RU", + doublesTier: "DOU", + natDexTier: "UU", + }, + tyranitarmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + lugia: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + hooh: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + celebi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + treecko: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + grovyle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + sceptile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sceptilemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + torchic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + combusken: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + blaziken: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + blazikenmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + mudkip: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + marshtomp: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + swampert: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + swampertmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + poochyena: { + tier: "LC", + }, + mightyena: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + zigzagoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + zigzagoongalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + linoone: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + linoonegalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + obstagoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wurmple: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + silcoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + beautifly: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cascoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + dustox: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lotad: { + tier: "LC", + }, + lombre: { + tier: "NFE", + }, + ludicolo: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + seedot: { + tier: "LC", + }, + nuzleaf: { + tier: "NFE", + }, + shiftry: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + taillow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + swellow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wingull: { + tier: "LC", + }, + pelipper: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "OU", + }, + ralts: { + tier: "LC", + }, + kirlia: { + tier: "NFE", + }, + gardevoir: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gardevoirmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + gallade: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gallademega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + surskit: { + tier: "LC", + }, + masquerain: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shroomish: { + tier: "LC", + }, + breloom: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + slakoth: { + tier: "LC", + }, + vigoroth: { + tier: "NFE", + }, + slaking: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nincada: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ninjask: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + shedinja: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "AG", + }, + whismur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + loudred: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + exploud: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + makuhita: { + tier: "LC", + }, + hariyama: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nosepass: { + tier: "LC", + }, + probopass: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + skitty: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + delcatty: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sableye: { + tier: "PU", + doublesTier: "DUU", + natDexTier: "RU", + }, + sableyemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + mawile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mawilemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + aron: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lairon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + aggron: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + aggronmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + meditite: { + tier: "NFE", + }, + medicham: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + medichammega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + electrike: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + manectric: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + manectricmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + plusle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + minun: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + volbeat: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + illumise: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + budew: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + roselia: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + roserade: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gulpin: { + tier: "LC", + }, + swalot: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + carvanha: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sharpedo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sharpedomega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wailmer: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wailord: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + numel: { + tier: "LC", + }, + camerupt: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cameruptmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + torkoal: { + tier: "RU", + doublesTier: "DOU", + natDexTier: "RU", + }, + spoink: { + tier: "LC", + }, + grumpig: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + spinda: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + trapinch: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + vibrava: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + flygon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cacnea: { + tier: "LC", + }, + cacturne: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + swablu: { + tier: "LC", + }, + altaria: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + altariamega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + zangoose: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + seviper: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lunatone: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + solrock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + barboach: { + tier: "LC", + }, + whiscash: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + corphish: { + tier: "LC", + }, + crawdaunt: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + baltoy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + claydol: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lileep: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cradily: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + anorith: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + armaldo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + feebas: { + tier: "LC", + }, + milotic: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + castform: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + castformsunny: { + isNonstandard: "Past", + }, + castformrainy: { + isNonstandard: "Past", + }, + castformsnowy: { + isNonstandard: "Past", + }, + kecleon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + shuppet: { + tier: "LC", + }, + banette: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + banettemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + duskull: { + tier: "LC", + }, + dusclops: { + tier: "NFE", + }, + dusknoir: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tropius: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + chingling: { + tier: "LC", + }, + chimecho: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + absol: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + absolmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + snorunt: { + tier: "LC", + }, + glalie: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + glaliemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + froslass: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + spheal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sealeo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + walrein: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + clamperl: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + huntail: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gorebyss: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + relicanth: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + luvdisc: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bagon: { + tier: "LC", + }, + shelgon: { + tier: "NFE", + }, + salamence: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + salamencemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + beldum: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + metang: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + metagross: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + metagrossmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + regirock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + regice: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + registeel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + latias: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + latiasmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + latios: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + latiosmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + kyogre: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + kyogreprimal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + groudon: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + groudonprimal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + rayquaza: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + rayquazamega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "AG", + }, + jirachi: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + deoxys: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + deoxysattack: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + deoxysdefense: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + deoxysspeed: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + turtwig: { + tier: "LC", + }, + grotle: { + tier: "NFE", + }, + torterra: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + chimchar: { + tier: "LC", + }, + monferno: { + tier: "NFE", + }, + infernape: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + piplup: { + tier: "LC", + }, + prinplup: { + tier: "NFE", + }, + empoleon: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + starly: { + tier: "LC", + }, + staravia: { + tier: "NFE", + }, + staraptor: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bidoof: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bibarel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kricketot: { + tier: "LC", + }, + kricketune: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shinx: { + tier: "LC", + }, + luxio: { + tier: "NFE", + }, + luxray: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cranidos: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rampardos: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + shieldon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bastiodon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + burmy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wormadam: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wormadamsandy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wormadamtrash: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mothim: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + combee: { + tier: "LC", + }, + vespiquen: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pachirisu: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + buizel: { + tier: "LC", + }, + floatzel: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cherubi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cherrim: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cherrimsunshine: { + isNonstandard: "Past", + }, + shellos: { + tier: "LC", + }, + gastrodon: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UU", + }, + drifloon: { + tier: "LC", + }, + drifblim: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + buneary: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lopunny: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lopunnymega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + glameow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + purugly: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stunky: { + tier: "LC", + }, + skuntank: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bronzor: { + tier: "LC", + }, + bronzong: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + chatot: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + spiritomb: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gible: { + tier: "LC", + }, + gabite: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + garchomp: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + garchompmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "(OU)", + }, + riolu: { + tier: "LC", + }, + lucario: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lucariomega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + hippopotas: { + tier: "LC", + }, + hippowdon: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + skorupi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + drapion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + croagunk: { + tier: "LC", + }, + toxicroak: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + carnivine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + finneon: { + tier: "LC", + }, + lumineon: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + snover: { + tier: "LC", + }, + abomasnow: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + abomasnowmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rotom: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotomheat: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotomwash: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + rotomfrost: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotomfan: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotommow: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + uxie: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mesprit: { + tier: "PUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + azelf: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dialga: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + dialgaorigin: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + palkia: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + palkiaorigin: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + heatran: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + regigigas: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + giratina: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + giratinaorigin: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + cresselia: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "RU", + }, + phione: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + manaphy: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UUBL", + }, + darkrai: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + shaymin: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shayminsky: { + tier: "Uber", + doublesTier: "(DUU)", + natDexTier: "Uber", + }, + arceus: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + victini: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + snivy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + servine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + serperior: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + tepig: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pignite: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + emboar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + oshawott: { + tier: "LC", + }, + dewott: { + tier: "NFE", + }, + samurott: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + samurotthisui: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + patrat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + watchog: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lillipup: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + herdier: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + stoutland: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + purrloin: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + liepard: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pansage: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + simisage: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pansear: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + simisear: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + panpour: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + simipour: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + munna: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + musharna: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pidove: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tranquill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + unfezant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + blitzle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + zebstrika: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + roggenrola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + boldore: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + gigalith: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + woobat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + swoobat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + drilbur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + excadrill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + audino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + audinomega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + timburr: { + tier: "LC", + }, + gurdurr: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + conkeldurr: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + tympole: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + palpitoad: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + seismitoad: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + throh: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sawk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sewaddle: { + tier: "LC", + }, + swadloon: { + tier: "NFE", + }, + leavanny: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + venipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + whirlipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + scolipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cottonee: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + whimsicott: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + petilil: { + tier: "LC", + }, + lilligant: { + tier: "PUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lilliganthisui: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + basculin: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + basculegion: { + tier: "RU", + doublesTier: "DUber", + natDexTier: "RU", + }, + basculegionf: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + sandile: { + tier: "LC", + }, + krokorok: { + tier: "NFE", + }, + krookodile: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + darumaka: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + darumakagalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + darmanitan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + darmanitanzen: { + isNonstandard: "Past", + }, + darmanitangalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + darmanitangalarzen: { + isNonstandard: "Past", + }, + maractus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + dwebble: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + crustle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + scraggy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + scrafty: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sigilyph: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + yamask: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + yamaskgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cofagrigus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + runerigus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tirtouga: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + carracosta: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + archen: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + archeops: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + trubbish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + garbodor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + garbodorgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + zorua: { + tier: "LC", + }, + zoruahisui: { + tier: "LC", + }, + zoroark: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + zoroarkhisui: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + minccino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cinccino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gothita: { + tier: "LC", + }, + gothorita: { + tier: "NFE", + }, + gothitelle: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + solosis: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + duosion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + reuniclus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ducklett: { + tier: "LC", + }, + swanna: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + vanillite: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + vanillish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + vanilluxe: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + deerling: { + tier: "LC", + }, + sawsbuck: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + emolga: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + karrablast: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + escavalier: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + foongus: { + tier: "LC", + }, + amoonguss: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "UU", + }, + frillish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + jellicent: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + alomomola: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + joltik: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + galvantula: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ferroseed: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ferrothorn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + klink: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + klang: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + klinklang: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tynamo: { + tier: "LC", + }, + eelektrik: { + tier: "NFE", + }, + eelektross: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + elgyem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + beheeyem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + litwick: { + tier: "LC", + }, + lampent: { + tier: "NFE", + }, + chandelure: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + axew: { + tier: "LC", + }, + fraxure: { + tier: "NFE", + }, + haxorus: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cubchoo: { + tier: "LC", + }, + beartic: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cryogonal: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shelmet: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + accelgor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stunfisk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stunfiskgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mienfoo: { + tier: "LC", + }, + mienshao: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + druddigon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + golett: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + golurk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pawniard: { + tier: "LC", + }, + bisharp: { + tier: "RU", + doublesTier: "NFE", + natDexTier: "UU", + }, + bouffalant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rufflet: { + tier: "NFE", + }, + braviary: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + braviaryhisui: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + vullaby: { + tier: "LC", + }, + mandibuzz: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + heatmor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + durant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + deino: { + tier: "LC", + }, + zweilous: { + tier: "NFE", + }, + hydreigon: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + larvesta: { + tier: "LC", + }, + volcarona: { + tier: "Uber", + doublesTier: "DUU", + natDexTier: "OU", + }, + cobalion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + terrakion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + virizion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tornadus: { + tier: "NU", + doublesTier: "DOU", + natDexTier: "RU", + }, + tornadustherian: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UUBL", + }, + thundurus: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + thundurustherian: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + reshiram: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + zekrom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + landorus: { + tier: "Uber", + doublesTier: "DUU", + natDexTier: "Uber", + }, + landorustherian: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + kyurem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + kyuremblack: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + kyuremwhite: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + keldeo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + keldeoresolute: { + isNonstandard: "Past", + }, + meloetta: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + genesect: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectburn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectchill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectdouse: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectshock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + chespin: { + tier: "LC", + }, + quilladin: { + tier: "NFE", + }, + chesnaught: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fennekin: { + tier: "LC", + }, + braixen: { + tier: "NFE", + }, + delphox: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + froakie: { + tier: "LC", + }, + frogadier: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + greninja: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + greninjaash: { + isNonstandard: "Past", + tier: "Illegal", + }, + bunnelby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + diggersby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + fletchling: { + tier: "LC", + }, + fletchinder: { + tier: "NFE", + }, + talonflame: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "UU", + }, + scatterbug: { + tier: "LC", + }, + spewpa: { + tier: "NFE", + }, + vivillon: { + tier: "PUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + litleo: { + tier: "LC", + }, + pyroar: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flabebe: { + tier: "LC", + }, + floette: { + tier: "NFE", + }, + floetteeternal: { + isNonstandard: "Past", + tier: "Illegal", + }, + florges: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + skiddo: { + tier: "LC", + }, + gogoat: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pancham: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pangoro: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + furfrou: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + espurr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + meowstic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + meowsticf: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + honedge: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + doublade: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + aegislash: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + aegislashblade: { + isNonstandard: "Past", + }, + spritzee: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + aromatisse: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + swirlix: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + slurpuff: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + inkay: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + malamar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + binacle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + barbaracle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + skrelp: { + tier: "LC", + }, + dragalge: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + clauncher: { + tier: "LC", + }, + clawitzer: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + helioptile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + heliolisk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tyrunt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tyrantrum: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + amaura: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + aurorus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + hawlucha: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + dedenne: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + carbink: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + goomy: { + tier: "LC", + }, + sliggoo: { + tier: "NFE", + }, + sliggoohisui: { + tier: "NFE", + }, + goodra: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + goodrahisui: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + klefki: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + phantump: { + tier: "LC", + }, + trevenant: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pumpkaboo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pumpkaboosmall: { + isNonstandard: "Past", + }, + pumpkaboolarge: { + isNonstandard: "Past", + }, + pumpkaboosuper: { + isNonstandard: "Past", + }, + gourgeist: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gourgeistsmall: { + isNonstandard: "Past", + }, + gourgeistlarge: { + isNonstandard: "Past", + }, + gourgeistsuper: { + isNonstandard: "Past", + }, + bergmite: { + tier: "LC", + }, + avalugg: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + avalugghisui: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + noibat: { + tier: "LC", + }, + noivern: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + xerneas: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + xerneasneutral: { + isNonstandard: "Custom", // can't be used in battle + tier: "Illegal", + }, + yveltal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + zygarde: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + zygarde10: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + zygardecomplete: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + diancie: { + tier: "RU", + doublesTier: "DOU", + natDexTier: "RU", + }, + dianciemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + hoopa: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + hoopaunbound: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + volcanion: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "RU", + }, + rowlet: { + tier: "LC", + }, + dartrix: { + tier: "NFE", + }, + decidueye: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + decidueyehisui: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + litten: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + torracat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + incineroar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + popplio: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + brionne: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + primarina: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pikipek: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + trumbeak: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + toucannon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + yungoos: { + tier: "LC", + }, + gumshoos: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gumshoostotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + grubbin: { + tier: "LC", + }, + charjabug: { + tier: "NFE", + }, + vikavolt: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + vikavolttotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + crabrawler: { + tier: "LC", + }, + crabominable: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricorio: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricoriopompom: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricoriopau: { + tier: "PUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricoriosensu: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cutiefly: { + tier: "NFE", + }, + ribombee: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ribombeetotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rockruff: { + tier: "LC", + }, + rockruffdusk: { + tier: "LC", + }, + lycanroc: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lycanrocmidnight: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lycanrocdusk: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + wishiwashi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wishiwashischool: { + isNonstandard: "Past", + }, + mareanie: { + tier: "LC", + }, + toxapex: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + mudbray: { + tier: "LC", + }, + mudsdale: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dewpider: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + araquanid: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + araquanidtotem: { + isNonstandard: "Past", + }, + fomantis: { + tier: "LC", + }, + lurantis: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lurantistotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + morelull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + shiinotic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + salandit: { + tier: "LC", + }, + salazzle: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + salazzletotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stufful: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bewear: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + bounsweet: { + tier: "LC", + }, + steenee: { + tier: "NFE", + }, + tsareena: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + comfey: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + oranguru: { + tier: "ZU", + doublesTier: "DUU", + natDexTier: "RU", + }, + passimian: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + wimpod: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + golisopod: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sandygast: { + tier: "LC", + }, + palossand: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pyukumuku: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + typenull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + silvally: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallybug: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallydark: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallydragon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyelectric: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyfairy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyfighting: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyfire: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyflying: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyghost: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallygrass: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyground: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyice: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallypoison: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallypsychic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyrock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallysteel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallywater: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + minior: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + miniormeteor: { + isNonstandard: "Past", + }, + komala: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + turtonator: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + togedemaru: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + togedemarutotem: { + isNonstandard: "Past", + }, + mimikyu: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mimikyutotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mimikyubustedtotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + bruxish: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + drampa: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + dhelmise: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + jangmoo: { + tier: "LC", + }, + hakamoo: { + tier: "NFE", + }, + kommoo: { + tier: "UUBL", + doublesTier: "DOU", + natDexTier: "OU", + }, + kommoototem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + tapukoko: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + tapulele: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + tapubulu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tapufini: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + cosmog: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cosmoem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + solgaleo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + lunala: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + nihilego: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + buzzwole: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pheromosa: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + xurkitree: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + celesteela: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + kartana: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + guzzlord: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + necrozma: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + necrozmaduskmane: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + necrozmadawnwings: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + necrozmaultra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + magearna: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + marshadow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + poipole: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + naganadel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + stakataka: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + blacephalon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + zeraora: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + meltan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + melmetal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + melmetalgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + grookey: { + tier: "LC", + }, + thwackey: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + rillaboom: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + rillaboomgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + scorbunny: { + tier: "LC", + }, + raboot: { + tier: "NFE", + }, + cinderace: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + cinderacegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + sobble: { + tier: "LC", + }, + drizzile: { + tier: "NFE", + }, + inteleon: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + inteleongmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + skwovet: { + tier: "LC", + }, + greedent: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rookidee: { + tier: "LC", + }, + corvisquire: { + tier: "NFE", + }, + corviknight: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + corviknightgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + blipbug: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dottler: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + orbeetle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + orbeetlegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + nickit: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + thievul: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gossifleur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + eldegoss: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wooloo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dubwool: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + chewtle: { + tier: "LC", + }, + drednaw: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + drednawgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + yamper: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + boltund: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rolycoly: { + tier: "LC", + }, + carkol: { + tier: "NFE", + }, + coalossal: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + coalossalgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + applin: { + tier: "LC", + }, + flapple: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flapplegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + appletun: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + appletungmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dipplin: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + silicobra: { + tier: "LC", + }, + sandaconda: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sandacondagmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + cramorant: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + arrokuda: { + tier: "LC", + }, + barraskewda: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + toxel: { + tier: "LC", + }, + toxtricity: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + toxtricitygmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxtricitylowkeygmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + sizzlipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + centiskorch: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + centiskorchgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + clobbopus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + grapploct: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sinistea: { + tier: "LC", + }, + polteageist: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + hatenna: { + tier: "LC", + }, + hattrem: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + hatterene: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + hatterenegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + impidimp: { + tier: "LC", + }, + morgrem: { + tier: "NFE", + }, + grimmsnarl: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "UU", + }, + grimmsnarlgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + milcery: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + alcremie: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + alcremiegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + falinks: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pincurchin: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + snom: { + tier: "LC", + }, + frosmoth: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + stonjourner: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + eiscue: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + indeedee: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + indeedeef: { + tier: "ZU", + doublesTier: "DOU", + natDexTier: "RU", + }, + morpeko: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cufant: { + tier: "LC", + }, + copperajah: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + copperajahgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dracozolt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + arctozolt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + dracovish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + arctovish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + duraludon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + duraludongmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dreepy: { + tier: "LC", + }, + drakloak: { + tier: "NFE", + }, + dragapult: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "Uber", + }, + zacian: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + zaciancrowned: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + zamazenta: { + tier: "OU", + doublesTier: "DUber", + natDexTier: "OU", + }, + zamazentacrowned: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + eternatus: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + eternatuseternamax: { + isNonstandard: "Past", + tier: "Illegal", + }, + kubfu: { + tier: "NFE", + }, + urshifu: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + urshifurapidstrike: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "OU", + }, + urshifugmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + urshifurapidstrikegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + zarude: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + regieleki: { + tier: "Uber", + doublesTier: "DUU", + natDexTier: "Uber", + }, + regidrago: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + glastrier: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + spectrier: { + tier: "Uber", + doublesTier: "(DUU)", + natDexTier: "Uber", + }, + calyrex: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + calyrexice: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + calyrexshadow: { + tier: "AG", + doublesTier: "DUber", + natDexTier: "AG", + }, + enamorus: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "UU", + }, + enamorustherian: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sprigatito: { + tier: "LC", + }, + floragato: { + tier: "NFE", + }, + meowscarada: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UU", + }, + fuecoco: { + tier: "LC", + }, + crocalor: { + tier: "NFE", + }, + skeledirge: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + quaxly: { + tier: "LC", + }, + quaxwell: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + quaquaval: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lechonk: { + tier: "LC", + }, + oinkologne: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oinkolognef: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tarountula: { + tier: "LC", + }, + spidops: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nymble: { + tier: "LC", + }, + lokix: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rellor: { + tier: "LC", + }, + rabsca: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + greavard: { + tier: "LC", + }, + houndstone: { + tier: "PU", + doublesTier: "DUU", + natDexTier: "RU", + }, + flittle: { + tier: "NFE", + }, + espathra: { + tier: "Uber", + doublesTier: "(DUU)", + natDexTier: "Uber", + }, + wiglett: { + tier: "LC", + }, + wugtrio: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dondozo: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UUBL", + }, + veluza: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + finizen: { + tier: "LC", + }, + palafin: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + smoliv: { + tier: "LC", + }, + dolliv: { + tier: "NFE", + }, + arboliva: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + capsakid: { + tier: "LC", + }, + scovillain: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tadbulb: { + tier: "LC", + }, + bellibolt: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + varoom: { + tier: "LC", + }, + revavroom: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + orthworm: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tandemaus: { + tier: "LC", + }, + maushold: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + cetoddle: { + tier: "LC", + }, + cetitan: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + frigibax: { + tier: "LC", + }, + arctibax: { + tier: "NFE", + }, + baxcalibur: { + tier: "Uber", + doublesTier: "DUU", + natDexTier: "Uber", + }, + tatsugiri: { + tier: "NU", + doublesTier: "DUber", + natDexTier: "RU", + }, + cyclizar: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pawmi: { + tier: "LC", + }, + pawmo: { + tier: "NFE", + }, + pawmot: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + wattrel: { + tier: "LC", + }, + kilowattrel: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bombirdier: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + squawkabilly: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flamigo: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + klawf: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nacli: { + tier: "LC", + }, + naclstack: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + garganacl: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + glimmet: { + tier: "LC", + }, + glimmora: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + shroodle: { + tier: "LC", + }, + grafaiai: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fidough: { + tier: "LC", + }, + dachsbun: { + tier: "ZU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + maschiff: { + tier: "LC", + }, + mabosstiff: { + tier: "ZUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bramblin: { + tier: "LC", + }, + brambleghast: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gimmighoul: { + tier: "LC", + }, + gimmighoulroaming: { + tier: "LC", + }, + gholdengo: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "Uber", + }, + greattusk: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + brutebonnet: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + sandyshocks: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + screamtail: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fluttermane: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + slitherwing: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + roaringmoon: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + irontreads: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + ironmoth: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "UU", + }, + ironhands: { + tier: "UUBL", + doublesTier: "DOU", + natDexTier: "UU", + }, + ironjugulis: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ironthorns: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ironbundle: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + ironvaliant: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + tinglu: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + chienpao: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + wochien: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + chiyu: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + koraidon: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "AG", + }, + miraidon: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "AG", + }, + tinkatink: { + tier: "LC", + }, + tinkatuff: { + tier: "ZU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + tinkaton: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + charcadet: { + tier: "LC", + }, + armarouge: { + tier: "RU", + doublesTier: "DOU", + natDexTier: "RU", + }, + ceruledge: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + toedscool: { + tier: "LC", + }, + toedscruel: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + kingambit: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "Uber", + }, + clodsire: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + annihilape: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + walkingwake: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "Uber", + }, + ironleaves: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + poltchageist: { + tier: "LC", + }, + sinistcha: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "UU", + }, + okidogi: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + munkidori: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fezandipiti: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ogerpon: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ogerponwellspring: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + ogerponhearthflame: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + ogerponcornerstone: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "UUBL", + }, + archaludon: { + isNonstandard: "Future", + tier: "Illegal", + }, + hydrapple: { + isNonstandard: "Future", + tier: "Illegal", + }, + gougingfire: { + isNonstandard: "Future", + tier: "Illegal", + }, + ragingbolt: { + isNonstandard: "Future", + tier: "Illegal", + }, + ironboulder: { + isNonstandard: "Future", + tier: "Illegal", + }, + ironcrown: { + isNonstandard: "Future", + tier: "Illegal", + }, + terapagos: { + isNonstandard: "Future", + tier: "Illegal", + }, + terapagosterastal: { + isNonstandard: "Future", + tier: "Illegal", + }, + terapagosstellar: { + isNonstandard: "Future", + tier: "Illegal", + }, + pecharunt: { + isNonstandard: "Future", + tier: "Illegal", + }, +}; diff --git a/data/mods/gen9dlc1/items.ts b/data/mods/gen9dlc1/items.ts new file mode 100644 index 000000000000..d1e16c3a9b4a --- /dev/null +++ b/data/mods/gen9dlc1/items.ts @@ -0,0 +1,75 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + berrysweet: { + inherit: true, + isNonstandard: "Past", + }, + cloversweet: { + inherit: true, + isNonstandard: "Past", + }, + dragonscale: { + inherit: true, + isNonstandard: "Past", + }, + dubiousdisc: { + inherit: true, + isNonstandard: "Past", + }, + electirizer: { + inherit: true, + isNonstandard: "Past", + }, + eviolite: { + inherit: true, + onModifyDef(def, pokemon) { + if (pokemon.baseSpecies.nfe || pokemon.baseSpecies.id === 'dipplin') { + return this.chainModify(1.5); + } + }, + onModifySpD(spd, pokemon) { + if (pokemon.baseSpecies.nfe || pokemon.baseSpecies.id === 'dipplin') { + return this.chainModify(1.5); + } + }, + }, + flowersweet: { + inherit: true, + isNonstandard: "Past", + }, + lovesweet: { + inherit: true, + isNonstandard: "Past", + }, + magmarizer: { + inherit: true, + isNonstandard: "Past", + }, + metalalloy: { + inherit: true, + isNonstandard: "Future", + }, + protector: { + inherit: true, + isNonstandard: "Past", + }, + ribbonsweet: { + inherit: true, + isNonstandard: "Past", + }, + souldew: { + inherit: true, + isNonstandard: "Past", + }, + starsweet: { + inherit: true, + isNonstandard: "Past", + }, + strawberrysweet: { + inherit: true, + isNonstandard: "Past", + }, + upgrade: { + inherit: true, + isNonstandard: "Past", + }, +}; diff --git a/data/mods/gen9dlc1/learnsets.ts b/data/mods/gen9dlc1/learnsets.ts new file mode 100644 index 000000000000..d04f2dc841db --- /dev/null +++ b/data/mods/gen9dlc1/learnsets.ts @@ -0,0 +1,96703 @@ +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { + missingno: { + learnset: { + blizzard: ["3L1"], + bubblebeam: ["3L1"], + cut: ["3L1"], + doubleedge: ["3L1"], + earthquake: ["3L1"], + fissure: ["3L1"], + fly: ["3L1"], + icebeam: ["3L1"], + megakick: ["3L1"], + megapunch: ["3L1"], + psychic: ["3L1"], + rage: ["3L1"], + razorwind: ["3L1"], + rest: ["3L1"], + seismictoss: ["3L1"], + skyattack: ["3L1"], + submission: ["3L1"], + substitute: ["3L1"], + swordsdance: ["3L1"], + takedown: ["3L1"], + teleport: ["3L1"], + thunder: ["3L1"], + thunderwave: ["3L1"], + toxic: ["3L1"], + triattack: ["3L1"], + watergun: ["3L1"], + }, + }, + bulbasaur: { + learnset: { + amnesia: ["8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + block: ["5S3"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["6S5"], + charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + doubleedge: ["8L33", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "5S3"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["5S3"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grasswhistle: ["7E", "6E", "5E", "4E", "3E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + growl: ["8L1", "8V", "7L3", "7V", "6L3", "6S4", "6S5", "5L3", "5S2", "4L3", "3L4", "3S1"], + growth: ["8L6", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L32", "3S0"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["8E", "7E", "6E", "5E", "4E"], + knockoff: ["7T", "6T", "5T", "4T"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8L9", "8V", "7L7", "7V", "6L7", "6S4", "5L7", "5S2", "4L7", "3L7", "3S1"], + lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + magicalleaf: ["8M", "7E", "6E", "5E", "4E", "3E"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], + outrage: ["8V"], + petaldance: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "6S4", "5L13", "4L13", "3L15"], + powerwhip: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8L12", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L20"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["7E", "6E", "5E", "4E"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L46", "3S0"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L24", "7L21", "7V", "6L21", "5L21", "4L21", "3L25", "3S0"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["8L27", "7T", "7L33", "7V", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L39", "3S0"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "6S5", "5L1", "5S2", "4L1", "3L1", "3S1"], + takedown: ["8L21", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + toxic: ["8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + vinewhip: ["8L3", "8V", "7L7", "7V", "6L9", "6S4", "5L9", "5S2", "4L9", "3L10", "3S1"], + weatherball: ["8M", "5S3"], + workup: ["8M", "7M"], + worryseed: ["8L30", "7T", "7L31", "6T", "6L31", "5T", "5L31", "4T", "4L31"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["sweetscent", "growth", "solarbeam", "synthesis"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "leechseed", "vinewhip"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "growl", "leechseed", "vinewhip"]}, + {generation: 5, level: 1, shiny: 1, ivs: {def: 31}, moves: ["falseswipe", "block", "frenzyplant", "weatherball"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["growl", "leechseed", "vinewhip", "poisonpowder"], pokeball: "cherishball"}, + {generation: 6, level: 5, isHidden: true, moves: ["tackle", "growl", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + ivysaur: { + learnset: { + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + doubleedge: ["8L45", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + growth: ["8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L38"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leafstorm: ["8M"], + leechseed: ["8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + outrage: ["8V"], + poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + powerwhip: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L20", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L50", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L56"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["8L35", "7T", "7L39", "7V", "6T", "6L39", "5T", "5L39", "4T", "4L39", "3L47"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + vinewhip: ["8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L10"], + weatherball: ["8M"], + workup: ["8M", "7M"], + worryseed: ["8L40", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L36"], + }, + }, + venusaur: { + learnset: { + amnesia: ["8M", "8V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "7V", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + doubleedge: ["8L51", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M"], + earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["8T", "7T", "6T", "6S0", "5T", "4T", "3T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "6S0", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + growth: ["8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L41"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leafstorm: ["8M"], + leechseed: ["8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + petalblizzard: ["8L0", "7L50", "6L50"], + petaldance: ["8L1", "8V", "7L1", "6L32", "5L32", "4L32"], + poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + powerwhip: ["8M", "8V"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L20", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L58", "8V", "7M", "7L53", "7V", "6M", "6L53", "6S0", "5M", "5L53", "4M", "4L53", "3M", "3L65"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["8L37", "7T", "7L45", "7V", "6T", "6L45", "6S0", "5T", "5L45", "4T", "4L45", "3L53"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + terrainpulse: ["8T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + vinewhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["8M"], + workup: ["8M", "7M"], + worryseed: ["8L44", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], + }, + eventData: [ + {generation: 6, level: 100, isHidden: true, moves: ["solarbeam", "frenzyplant", "synthesis", "grasspledge"], pokeball: "cherishball"}, + ], + }, + charmander: { + learnset: { + acrobatics: ["8M", "5S6"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["7E", "6E"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + bellydrum: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blastburn: ["5S6"], + block: ["5S6"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["6S8"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], + crunch: ["9M", "8M", "7E", "6E", "5E", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L12", "8L12", "7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5E"], + dragonrage: ["8V", "7L16", "7V", "6L16", "6S7", "5L16", "4L16", "3L43"], + dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], + dragontail: ["9M", "9E", "8E"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L4", "8L4", "8V", "7L7", "7V", "6L7", "6S7", "5L7", "5S4", "4L7", "3L7", "3S0"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "5S6"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L17", "8M", "8L17", "7L25", "6L25", "5L25", "4L25"], + firepledge: ["9M", "8T", "7T", "6T", "5T"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "9L32", "8M", "8L32", "8V", "7L43", "7V", "6L43", "5L43", "4L37", "3L49"], + flameburst: ["7L28", "6L28", "5L28"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L24", "8M", "8L24", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L34", "3M", "3L31"], + flareblitz: ["9M", "9L40", "8M", "8L40", "7E", "6E", "5E", "4E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8V"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S7", "6S8", "5L1", "5S4", "4L1", "3L1", "3S0"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "4S1", "4S2", "4S3", "4S5", "3M"], + honeclaws: ["6M", "5M"], + howl: ["4S1", "4S2", "4S3", "4S5"], + incinerate: ["6M", "5M"], + inferno: ["9L36", "8L36", "7L46", "6L46", "5L46"], + irontail: ["9E", "8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metalclaw: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3L13"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "7E", "7V", "6E", "5T", "5E", "4E", "3E"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["4S1", "4S2", "4S3", "4S5"], + rage: ["7V", "3L19"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "4S1", "4S2", "4S3", "4S5", "3M"], + roar: ["9M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L19", "7V", "6L19", "5L19", "4L19", "3L25"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S8", "5L1", "5S4", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["9L20", "8L20", "8V", "7L34", "7V", "6L34", "5L34", "4L28", "3L37"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L8", "8L8", "8V", "7L10", "7V", "6L10", "6S7", "5L10", "5S4", "4L10", "3L13"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wingattack: ["8E"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "growl", "ember"], pokeball: "pokeball"}, + {generation: 4, level: 40, gender: "M", nature: "Mild", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 4, level: 40, gender: "M", nature: "Naive", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 4, level: 40, gender: "M", nature: "Naughty", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["scratch", "growl", "ember", "smokescreen"]}, + {generation: 4, level: 40, gender: "M", nature: "Hardy", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 5, level: 1, shiny: 1, ivs: {spe: 31}, moves: ["falseswipe", "block", "blastburn", "acrobatics"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["growl", "ember", "smokescreen", "dragonrage"], pokeball: "cherishball"}, + {generation: 6, level: 5, isHidden: true, moves: ["scratch", "growl", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + charmeleon: { + learnset: { + acrobatics: ["8M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + crunch: ["9M", "8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L12", "8L12", "7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T"], + dragonrage: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L48"], + dragontail: ["9M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L19", "8M", "8L19", "7L28", "6L28", "5L28", "4L28"], + firepledge: ["9M", "8T", "7T", "6T", "5T"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "8M", "8L42", "8V", "7L50", "7V", "6L50", "5L50", "4L43", "3L55"], + flameburst: ["7L32", "6L32", "5L32"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L30", "8M", "8L30", "8V", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L39", "3M", "3L34"], + flareblitz: ["9M", "9L54", "8M", "8L54"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8V"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + inferno: ["9L48", "8L48", "7L54", "6L54", "5L54"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metalclaw: ["3L13"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "5T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V", "3L20"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L37", "8M", "8L37", "7L21", "7V", "6L21", "5L21", "4L21", "3L27"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["9L24", "8L24", "8V", "7L39", "7V", "6L39", "5L39", "4L32", "3L41"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M"], + }, + }, + charizard: { + learnset: { + acrobatics: ["9M", "9S11", "8M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L0", "8M", "8L0", "8V", "7L1", "6L1", "6S1", "6S2", "5L1", "4L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bellydrum: ["9S11"], + bide: ["7V"], + blastburn: ["9M", "8T", "7T", "6T", "6S4", "5T", "4T", "3T"], + blazekick: ["8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crunch: ["9M", "9S11", "8M", "8V"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + defog: ["7T", "4M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L12", "8L12", "7V"], + dragonclaw: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "7S6", "7S7", "6M", "6L1", "6S2", "5M", "5L1", "4M", "4L1", "3M"], + dragondance: ["9M", "8M", "7S9"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L17", "7V", "7S6", "7S7", "7S8", "6L17", "6S2", "5L17", "4L17", "3L54", "3S0"], + dragontail: ["9M", "8V", "8S10", "7M", "6M", "5M"], + dualwingbeat: ["8T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "7S9", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S5", "5L1", "4L1", "3L1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L19", "8M", "8L19", "7L28", "6L28", "6S1", "6S2", "5L28", "4L28"], + firepledge: ["9M", "8T", "7T", "6T", "6S4", "5T"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "9L46", "8M", "8L46", "8V", "7L56", "7V", "6L56", "6S5", "5L56", "4L49", "3L64", "3S0"], + fissure: ["7V"], + flameburst: ["7L32", "6L32", "6S1", "6S5", "5L32"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L30", "8M", "8L30", "8V", "8S10", "7M", "7L47", "7V", "7S8", "6M", "6L47", "6S5", "5M", "5L47", "4M", "4L42", "3M", "3L34"], + flareblitz: ["9M", "9L62", "9S11", "8M", "8L62", "8V", "7L1", "7S6", "7S7", "7S9", "6L1", "6S4", "5L77", "4L66"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "8V", "7M", "7V", "7S6", "7S7", "7S9", "6M", "5M", "4M", "3M"], + focusblast: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8V"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L71", "4T", "4L59", "3L1"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdhands: ["6S3"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + inferno: ["9L54", "8L54", "7L62", "6L62", "6S1", "5L62"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metalclaw: ["3L1"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + overheat: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V", "3L20"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "7V"], + scaleshot: ["8T"], + scaryface: ["9M", "9L39", "8M", "8L39", "7L21", "7V", "6L21", "6S4", "5L21", "4L21", "3L27"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "8S10", "7V", "7S8", "3T"], + shadowclaw: ["9M", "8M", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + skullbash: ["7V"], + skydrop: ["7M", "6M", "5M"], + slash: ["9L24", "8L24", "8V", "8S10", "7L41", "7V", "7S8", "6L41", "5L41", "4L32", "3L44", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "8L1", "8V", "7L10", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "6S3", "5M", "4M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wingattack: ["8V", "7L1", "7V", "6L36", "5L36", "4L36", "3L36", "3S0"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["wingattack", "slash", "dragonrage", "firespin"], pokeball: "pokeball"}, + {generation: 6, level: 36, gender: "M", moves: ["firefang", "flameburst", "airslash", "inferno"], pokeball: "cherishball"}, + {generation: 6, level: 36, gender: "M", moves: ["firefang", "airslash", "dragonclaw", "dragonrage"], pokeball: "cherishball"}, + {generation: 6, level: 36, shiny: true, gender: "M", moves: ["overheat", "solarbeam", "focusblast", "holdhands"], pokeball: "cherishball"}, + {generation: 6, level: 100, isHidden: true, moves: ["flareblitz", "blastburn", "scaryface", "firepledge"], pokeball: "cherishball"}, + {generation: 6, level: 36, gender: "M", nature: "Serious", moves: ["flamethrower", "ember", "firespin", "flameburst"], pokeball: "cherishball"}, + {generation: 7, level: 40, nature: "Jolly", moves: ["dragonclaw", "dragonrage", "fly", "flareblitz"], pokeball: "cherishball"}, + {generation: 7, level: 40, gender: "M", nature: "Jolly", moves: ["flareblitz", "dragonclaw", "fly", "dragonrage"], pokeball: "cherishball"}, + {generation: 7, level: 40, gender: "M", nature: "Adamant", moves: ["flamethrower", "dragonrage", "slash", "seismictoss"], pokeball: "pokeball"}, + {generation: 7, level: 50, moves: ["dragondance", "flareblitz", "fly", "earthquake"], pokeball: "cherishball"}, + {generation: 8, level: 50, gender: "M", nature: "Adamant", moves: ["flamethrower", "dragontail", "slash", "seismictoss"], pokeball: "pokeball"}, + {generation: 9, level: 50, nature: "Adamant", ivs: {hp: 20, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["crunch", "flareblitz", "acrobatics", "bellydrum"], pokeball: "pokeball"}, + ], + }, + squirtle: { + learnset: { + aquajet: ["8E", "7E", "6E", "5E", "4E"], + aquaring: ["8E", "7E", "6E", "5E", "4E"], + aquatail: ["8L24", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M", "7E", "6E"], + bide: ["7V"], + bite: ["8L12", "8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L18"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["5S2"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bubble: ["8V", "7L13", "7V", "6L13", "6S3", "5L7", "5S1", "4L7", "3L7", "3S0"], + bubblebeam: ["8V", "7V"], + captivate: ["4M"], + celebrate: ["6S4"], + confide: ["7M", "6M"], + confusion: ["7V"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "7E", "6T", "6E"], + dynamicpunch: ["7V", "3T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8E", "7E", "6E", "5E", "4E"], + falseswipe: ["8M", "5S2"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["5S2"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydrocannon: ["5S2"], + hydropump: ["8M", "8L33", "8V", "7L40", "7V", "6L40", "5L40", "4L37", "3L47"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L30", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4T", "4L34"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lifedew: ["8E"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mirrorcoat: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mist: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + outrage: ["8V"], + poweruppunch: ["6M"], + protect: ["8M", "8L18", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L28"], + rage: ["7V"], + raindance: ["8M", "8L21", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L34", "3M", "3L33"], + rapidspin: ["8L9", "7L19", "7V", "6L19", "5L19", "4L19", "3L23"], + reflect: ["8V", "7V"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8V"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L27"], + skullbash: ["8L36", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L40"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "6S4", "5L1", "5S1", "4L1", "3L1", "3S0"], + tailwhip: ["8L1", "8V", "7L4", "7V", "6L4", "6S3", "6S4", "5L4", "5S1", "4L4", "3L4", "3S0"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L3", "8V", "7L7", "7V", "6L7", "6S3", "5L13", "4L13", "3L13"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L15", "7T", "7L25", "6T", "6L25", "5L25", "4M", "4L25", "3M"], + waterspout: ["8E", "7E", "6E", "5E", "4E"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L6", "8V", "7L10", "7V", "6L10", "6S3", "5L10", "5S1", "4L10", "3L10", "3S0"], + workup: ["8M", "7M"], + yawn: ["8E", "7E", "6E", "5E", "4E", "3E"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "tailwhip", "bubble", "withdraw"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "tailwhip", "bubble", "withdraw"]}, + {generation: 5, level: 1, shiny: 1, ivs: {hp: 31}, moves: ["falseswipe", "block", "hydrocannon", "followme"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["tailwhip", "watergun", "withdraw", "bubble"], pokeball: "cherishball"}, + {generation: 6, level: 5, isHidden: true, moves: ["tackle", "tailwhip", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + wartortle: { + learnset: { + aquatail: ["8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + bide: ["7V"], + bite: ["8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bubble: ["8V", "7L13", "7V", "6L13", "5L1", "4L1", "3L1"], + bubblebeam: ["8V", "7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T"], + dynamicpunch: ["7V", "3T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "8V", "7L49", "7V", "6L48", "5L48", "4L44", "3L53"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L40", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8V"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31"], + rage: ["7V"], + raindance: ["8M", "8L25", "7M", "7L45", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L40", "3M", "3L37"], + rapidspin: ["8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8V"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L35"], + skullbash: ["8L50", "8V", "7L37", "7V", "6L36", "5L36", "4L36", "3L45"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L10"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + blastoise: { + learnset: { + aquajet: ["8V"], + aquatail: ["8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + avalanche: ["8M", "4M"], + bide: ["7V"], + bite: ["8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bubble: ["8V", "7L13", "7V", "6L13", "5L1", "4L1", "3L1"], + bubblebeam: ["8V", "7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + crunch: ["8M"], + curse: ["7V"], + darkpulse: ["8M", "8V", "7M", "6M"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T"], + dragontail: ["8V", "7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8V"], + falseswipe: ["8M"], + fissure: ["7V"], + flashcannon: ["8M", "8L0", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydrocannon: ["8T", "7T", "6T", "6S1", "5T", "4T", "3T"], + hydropump: ["8M", "8L49", "8V", "7L60", "7V", "6L60", "6S1", "5L60", "4L53", "3L68", "3S0"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L42", "7T", "7L47", "6T", "6L46", "6S1", "5T", "5L46", "4T", "4L46"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + liquidation: ["8M", "7T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31", "3S0"], + rage: ["7V"], + raindance: ["8M", "8L25", "7M", "7L54", "7V", "6M", "6L53", "5M", "5L53", "4M", "4L46", "3M", "3L42", "3S0"], + rapidspin: ["8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L35"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["8L56", "8V", "7L40", "7V", "6L39", "5L39", "4L39", "3L55", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + terrainpulse: ["8T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpledge: ["8T", "7T", "6T", "6S1", "5T"], + waterpulse: ["8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["protect", "raindance", "skullbash", "hydropump"], pokeball: "pokeball"}, + {generation: 6, level: 100, isHidden: true, moves: ["hydropump", "hydrocannon", "irondefense", "waterpledge"], pokeball: "cherishball"}, + ], + }, + caterpie: { + learnset: { + bugbite: ["8L9", "7T", "7L9", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + electroweb: ["8M", "7T", "6T", "5T"], + snore: ["7T", "6T", "5T", "4T"], + stringshot: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 3}, + {generation: 3, level: 3}, + ], + }, + metapod: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["8M", "7T", "6T", "5T"], + harden: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 1, level: 4}, + {generation: 2, level: 4}, + {generation: 3, level: 4}, + {generation: 4, level: 3}, + {generation: 6, level: 4}, + {generation: 7, level: 3}, + ], + }, + butterfree: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M", "3S0"], + aircutter: ["5D", "4T"], + airslash: ["8M", "8L24", "8V", "7L43"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + bide: ["7V"], + bugbite: ["8L1", "7T", "6T", "5T", "4T"], + bugbuzz: ["8M", "8L32", "8V", "7L31", "6L42", "5L42", "4L40"], + captivate: ["7L37", "6L40", "5L40", "4M", "4L36"], + confide: ["7M", "6M"], + confusion: ["8L8", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + curse: ["7V"], + defog: ["7T", "4M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dreameater: ["8V", "7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L0", "8V", "7L1", "7V", "6L16", "5L16", "4L16", "3L28"], + harden: ["8L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + irondefense: ["8M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + morningsun: ["3S0"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + ominouswind: ["4T"], + poisonpowder: ["8L12", "8V", "7L13", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L16", "8V", "7L17", "7V", "6L24", "5L24", "4L24", "3L34"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + psychup: ["7M", "6M", "5M", "4M"], + psywave: ["7V"], + quiverdance: ["8L44", "8V", "7L47", "6L46", "5L46"], + rage: ["7V"], + ragepowder: ["8L40", "7L35", "6L34", "5L34"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "5D", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L28", "7M", "7L25", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L34", "3M", "3L40"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L19", "6L28", "5L28", "4M", "4L28", "3L47"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeppowder: ["8L12", "8V", "7L13", "7V", "6L12", "5L12", "4L12", "3L15", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["8L1", "4T"], + strugglebug: ["6M", "5M"], + stunspore: ["8L12", "8V", "7L13", "7V", "6L12", "5L12", "4L12", "3L14"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["8L4", "8V", "7L23", "7V", "6L18", "5L18", "4L18", "3L18"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1"], + tailwind: ["8L36", "7T", "7L41", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + takedown: ["7V"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + venoshock: ["8M", "7M", "6M", "5M"], + whirlwind: ["8L20", "8V", "7L29", "7V", "6L22", "5L22", "4L22", "3L23"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["morningsun", "psychic", "sleeppowder", "aerialace"]}, + ], + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 6}, + {generation: 7, level: 9}, + ], + }, + weedle: { + learnset: { + bugbite: ["7T", "7L9", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + electroweb: ["7T", "6T", "5T"], + poisonsting: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + stringshot: ["8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 3}, + {generation: 3, level: 3}, + ], + }, + kakuna: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["7T", "6T", "5T"], + harden: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 1, level: 4}, + {generation: 2, level: 4}, + {generation: 3, level: 4}, + {generation: 4, level: 3}, + {generation: 6, level: 4}, + {generation: 7, level: 3}, + ], + }, + beedrill: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L38", "7V", "6L31", "5L31", "4L31", "3L40"], + aircutter: ["5D", "4T"], + assurance: ["7L26", "6L34", "5L34", "4L34"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bide: ["7V"], + brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + bugbite: ["7T", "6T", "5T", "4T"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8V", "7T", "6T", "5T"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "3L45"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "6M", "5M", "4M"], + fellstinger: ["7L44", "6L45"], + flash: ["6M", "5M", "4M"], + focusenergy: ["8V", "7L20", "7V", "6L13", "5L13", "4L13", "3L15"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + furycutter: ["7V", "5D", "4T", "3T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["8V"], + payback: ["7M", "6M", "5M", "4M"], + peck: ["8V"], + pinmissile: ["8V", "7L32", "7V", "6L28", "5L28", "4L28", "3L35"], + poisonjab: ["8V", "7M", "7L35", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L17", "7V", "6L22", "5L22", "4L22", "3L30"], + rage: ["8V", "7L14", "7V", "6L19", "5L19", "4L19", "3L25"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["4M"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["7V", "4T", "3T"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T", "3S0"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["7L29", "6L25", "5L25", "4L25"], + twineedle: ["8V", "7L1", "7V", "6L16", "5L16", "4L16", "3L20", "3S0"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + venoshock: ["7M", "7L23", "6M", "5M"], + xscissor: ["8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["batonpass", "sludgebomb", "twineedle", "swordsdance"]}, + ], + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 6}, + ], + }, + pidgey: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L39"], + aircutter: ["7E", "6E", "5E", "4T", "4E", "3E"], + airslash: ["8V", "7L49", "7E", "6L49", "6E", "5L49", "5E", "4L49", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bravebird: ["7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["7L25", "6L25", "5L25", "4L25", "3L31"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gust: ["8V", "7L9", "7V", "6L9", "5L9", "5D", "4L9", "3L9"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["7L53", "6L53", "5L53"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L45", "7V", "6L45", "5L45", "4L45", "3L47"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickattack: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L13"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7V"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L37", "6M", "6L37", "5T", "5L37", "4M", "4L37"], + round: ["7M", "6M", "5M"], + sandattack: ["8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L5"], + secretpower: ["6M", "5D", "4M", "3M"], + skyattack: ["7T", "7V", "6T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7E", "7V", "6M", "6E", "5E", "5D", "4M", "4E", "3M", "3E"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["7L21", "6L21", "5L21", "4T", "4L21"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + wingattack: ["8V", "7L33", "7V", "6L33", "5L33", "4L33", "3L25"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 2}, + {generation: 2, level: 2}, + {generation: 3, level: 2}, + ], + }, + pidgeotto: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L32", "7V", "6L32", "5L32", "4L32", "3L43"], + aircutter: ["4T"], + airslash: ["8V", "7L57", "6L57", "5L57", "4L57"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["7L27", "6L27", "5L27", "4L27", "3L34", "3S0"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gust: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["7L62", "6L62", "5L62"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L52", "7V", "6L52", "5L52", "4L52", "3L52"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L13"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7V"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L42", "6M", "6L42", "5T", "5L42", "4M", "4L42"], + round: ["7M", "6M", "5M"], + sandattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7V", "6T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M", "3S0"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4T", "4L47"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["7L22", "6L22", "5L22", "4T", "4L22"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L20"], + wingattack: ["8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L27", "3S0"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 30, abilities: ["keeneye"], moves: ["refresh", "wingattack", "steelwing", "featherdance"]}, + ], + encounters: [ + {generation: 1, level: 9}, + {generation: 2, level: 7}, + {generation: 3, level: 7}, + {generation: 4, level: 7}, + ], + }, + pidgeot: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L32", "7V", "6L32", "5L32", "4L32", "3L48"], + aircutter: ["4T"], + airslash: ["8V", "7L62", "6L62", "5L62", "4L62"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["7L27", "6L27", "5L27", "4L27", "3L34"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["7L1", "6L1", "5L68"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L56", "7V", "6L56", "5L56", "5S0", "4L56", "3L62"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7V"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], + round: ["7M", "6M", "5M"], + sandattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "5S0", "4T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7L50", "6T", "6L50", "5T", "5L50", "4T", "4L50"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["7L22", "6L22", "5L22", "4T", "4L22"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["8V", "7L17", "7V", "6L17", "5L17", "5S0", "4L17", "3L20"], + wingattack: ["8V", "7L38", "7V", "6L38", "5L38", "5S0", "4L38", "3L27"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 5, level: 61, gender: "M", nature: "Naughty", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, abilities: ["keeneye"], moves: ["whirlwind", "wingattack", "skyattack", "mirrormove"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 29}, + ], + }, + rattata: { + learnset: { + assurance: ["7L19", "6L25", "5L25", "4L25"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8V", "7L10", "7E", "7V", "6L10", "6E", "5L10", "5E", "4L10", "4E", "3E"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + bubblebeam: ["7V"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["7T", "6T", "5T"], + crunch: ["8V", "7L22", "6L22", "5L22", "4L22"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "7L34", "6T", "6L34", "5T", "5L34", "4T", "4L34", "3L41"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["7E", "6E", "5E"], + flamewheel: ["7E", "7V", "6E", "5E", "4E", "3E"], + focusenergy: ["8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L20"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperfang: ["8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L13"], + icebeam: ["8V", "7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + mefirst: ["7E", "6E", "5E", "5D", "4E"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L13", "7V", "6L13", "5L13", "4L13", "3L27"], + quickattack: ["8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L7"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E"], + reversal: ["7E", "7V", "6E", "5E", "4E", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + screech: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V", "7L25", "6L19", "5L19", "4T", "4L19"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L34"], + swagger: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8V", "7M", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 1, level: 2}, + {generation: 2, level: 2}, + {generation: 3, level: 2}, + ], + }, + rattataalola: { + learnset: { + assurance: ["7L19"], + attract: ["7M"], + bite: ["8V", "7L10"], + blizzard: ["8V", "7M"], + confide: ["7M"], + counter: ["7E"], + covet: ["7T"], + crunch: ["8V", "7L22"], + darkpulse: ["8V", "7M"], + dig: ["8V"], + doubleedge: ["8V", "7L31"], + doubleteam: ["7M"], + embargo: ["7M"], + endeavor: ["7T", "7L34"], + facade: ["8V", "7M"], + finalgambit: ["7E"], + focusenergy: ["8V", "7L7"], + frustration: ["7M"], + furyswipes: ["7E"], + grassknot: ["7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperfang: ["8V", "7L16"], + icebeam: ["8V", "7M"], + icywind: ["7T"], + irontail: ["8V", "7T"], + lastresort: ["7T"], + mefirst: ["7E"], + protect: ["8V", "7M"], + pursuit: ["7L13"], + quash: ["7M"], + quickattack: ["8V", "7L4"], + raindance: ["7M"], + rest: ["8V", "7M"], + return: ["7M"], + revenge: ["7E"], + reversal: ["7E"], + round: ["7M"], + shadowball: ["8V", "7M"], + shadowclaw: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + sludgebomb: ["8V", "7M"], + snarl: ["7M"], + snatch: ["7T", "7E"], + snore: ["7T"], + stockpile: ["7E"], + substitute: ["8V", "7M"], + suckerpunch: ["8V", "7L25"], + sunnyday: ["7M"], + superfang: ["8V", "7T", "7L28"], + swagger: ["7M"], + swallow: ["7E"], + switcheroo: ["7E"], + tackle: ["8V", "7L1"], + tailwhip: ["8V", "7L1"], + taunt: ["8V", "7M"], + thief: ["7M"], + torment: ["7M"], + toxic: ["8V", "7M"], + uproar: ["7T", "7E"], + uturn: ["8V", "7M"], + zenheadbutt: ["7T"], + }, + }, + raticate: { + learnset: { + assurance: ["7L19", "6L29", "5L29", "4L29"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8V", "7L10", "6L10", "5L10", "4L10"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + bubblebeam: ["7V"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["8V", "3T"], + covet: ["7T", "6T", "5T"], + crunch: ["8V", "7L24", "6L24", "5L24", "4L24"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7L39", "7V", "6L39", "5L39", "4L39", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "7L44", "6T", "6L44", "5T", "5L44", "4T", "4L44", "3L50"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8V", "7L1", "7V", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8V"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperfang: ["8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L13", "3S0"], + icebeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L13", "7V", "6L13", "5L13", "4L13", "3L30"], + quickattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L1", "7V", "6L20", "5L20", "4L20", "3L20", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V", "7L29", "6L19", "5L19", "4T", "4L19"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "7L34", "7V", "6T", "6L34", "5T", "5L34", "4T", "4L34", "3L40", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + swordsdance: ["8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunder: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8V", "7M", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 34, moves: ["refresh", "superfang", "scaryface", "hyperfang"]}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 6}, + {generation: 4, level: 13}, + ], + }, + raticatealola: { + learnset: { + assurance: ["7L19"], + attract: ["7M"], + bite: ["8V", "7L10"], + blizzard: ["8V", "7M"], + bulkup: ["8V", "7M"], + confide: ["7M"], + counter: ["8V"], + covet: ["7T"], + crunch: ["8V", "7L24"], + darkpulse: ["8V", "7M"], + dig: ["8V"], + doubleedge: ["8V", "7L39"], + doubleteam: ["7M"], + embargo: ["7M"], + endeavor: ["7T", "7L44"], + facade: ["8V", "7M"], + focusenergy: ["8V", "7L1"], + frustration: ["7M"], + furyswipes: ["8V"], + gigaimpact: ["7M"], + grassknot: ["7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperbeam: ["8V", "7M"], + hyperfang: ["8V", "7L16"], + icebeam: ["8V", "7M"], + icywind: ["7T"], + irontail: ["8V", "7T"], + knockoff: ["7T"], + lastresort: ["7T"], + protect: ["8V", "7M"], + pursuit: ["7L13"], + quash: ["7M"], + quickattack: ["8V", "7L1"], + raindance: ["7M"], + rest: ["8V", "7M"], + return: ["7M"], + roar: ["7M"], + round: ["7M"], + scaryface: ["7L1"], + shadowball: ["8V", "7M"], + shadowclaw: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + sludgebomb: ["8V", "7M"], + sludgewave: ["7M"], + snarl: ["7M"], + snatch: ["7T"], + snore: ["7T"], + stompingtantrum: ["7T"], + substitute: ["8V", "7M"], + suckerpunch: ["8V", "7L29"], + sunnyday: ["7M"], + superfang: ["8V", "7T", "7L34"], + swagger: ["7M"], + swordsdance: ["8V", "7M", "7L1"], + tackle: ["8V", "7L1"], + tailwhip: ["8V", "7L1"], + taunt: ["8V", "7M"], + thief: ["7M"], + throatchop: ["7T"], + torment: ["7M"], + toxic: ["8V", "7M"], + uproar: ["7T"], + uturn: ["8V", "7M"], + venoshock: ["7M"], + zenheadbutt: ["7T"], + }, + encounters: [ + {generation: 7, level: 17}, + ], + }, + raticatealolatotem: { + learnset: { + assurance: ["7L19", "7S0"], + attract: ["7M"], + bite: ["7L10", "7S0"], + blizzard: ["7M"], + bulkup: ["7M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["7L24"], + darkpulse: ["7M"], + doubleedge: ["7L39"], + doubleteam: ["7M"], + embargo: ["7M"], + endeavor: ["7T", "7L44"], + facade: ["7M"], + focusenergy: ["7L1"], + frustration: ["7M"], + gigaimpact: ["7M"], + grassknot: ["7M"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + hyperfang: ["7L16", "7S0"], + icebeam: ["7M"], + icywind: ["7T"], + irontail: ["7T"], + knockoff: ["7T"], + lastresort: ["7T"], + protect: ["7M"], + pursuit: ["7L13", "7S0"], + quash: ["7M"], + quickattack: ["7L1"], + raindance: ["7M"], + rest: ["7M"], + return: ["7M"], + roar: ["7M"], + round: ["7M"], + scaryface: ["7L1"], + shadowball: ["7M"], + shadowclaw: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + sludgebomb: ["7M"], + sludgewave: ["7M"], + snarl: ["7M"], + snatch: ["7T"], + snore: ["7T"], + stompingtantrum: ["7T"], + substitute: ["7M"], + suckerpunch: ["7L29"], + sunnyday: ["7M"], + superfang: ["7T", "7L34"], + swagger: ["7M"], + swordsdance: ["7M", "7L1"], + tackle: ["7L1"], + tailwhip: ["7L1"], + taunt: ["7M"], + thief: ["7M"], + throatchop: ["7T"], + torment: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + venoshock: ["7M"], + zenheadbutt: ["7T"], + }, + eventData: [ + {generation: 7, level: 20, perfectIVs: 3, moves: ["bite", "pursuit", "hyperfang", "assurance"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + spearow: { + learnset: { + aerialace: ["7M", "7L15", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L25", "3S0"], + agility: ["8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L43"], + aircutter: ["4T"], + assurance: ["7L22", "6L29", "5L29", "4L29"], + astonish: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L36", "7V", "6L37", "5L37", "4L37", "3L37"], + drillrun: ["8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "7V", "6M", "5M", "4E", "3E", "3S0"], + featherdance: ["7E", "6E", "5E", "4E"], + feintattack: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8V", "7L29"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L11", "7V", "6L9", "5L9", "4L9", "3L13"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + leer: ["8V", "7L4", "7V", "6L5", "5L5", "4L5", "3L7", "3S0"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L18", "7V", "6L21", "5L21", "4L21", "3L31"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L8", "7V", "6L13", "5L13", "4L13", "3L19"], + quickattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "7V", "6E", "5E"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L32", "6M", "6L33", "5T", "5L33", "4M", "4L33"], + round: ["7M", "6M", "5M"], + scaryface: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3T", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7E", "7V", "6M", "6E", "5E", "5D", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8V", "7E", "7V", "6E", "5E", "4E", "3E"], + twister: ["4T"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["7E", "7V", "6E", "5E", "4E"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 22, moves: ["batonpass", "falseswipe", "leer", "aerialace"]}, + ], + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 2}, + {generation: 3, level: 3}, + ], + }, + fearow: { + learnset: { + aerialace: ["7M", "7L15", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M"], + agility: ["8V", "7L27", "7V", "6L29", "5L29", "4L29", "3L47"], + aircutter: ["4T"], + assurance: ["7L23", "6L35", "5L35", "4L35"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L41", "7V", "6L47", "5L47", "4L47", "3L40"], + drillrun: ["8V", "7T", "7L1", "6T", "6L1", "5T", "5L53"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "6M", "5M"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8V", "7L32"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L11", "7V", "6L1", "5L1", "4L1", "3L1"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L18", "7V", "6L23", "5L23", "4L23", "3L32"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L1", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L1", "7V", "6L13", "5L13", "4L13", "3L26"], + quickattack: ["8V"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L36", "6M", "6L41", "5T", "5L41", "4M", "4L41"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8V"], + twister: ["4T"], + uproar: ["7T", "6T", "5T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["7V"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 19}, + {generation: 2, level: 7}, + {generation: 4, level: 7}, + ], + }, + ekans: { + learnset: { + acid: ["9L20", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L32"], + acidspray: ["9M", "9L28", "7L28", "6L28", "5L28"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + belch: ["9L38", "7L38", "6L38"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bite: ["9L9", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L13", "3S0"], + bodyslam: ["7V", "3T"], + brutalswing: ["7M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + coil: ["9L44", "7L44", "6L44", "5L44"], + confide: ["7M", "6M"], + crunch: ["9M", "7V"], + curse: ["7V"], + darkpulse: ["9M", "8V", "7M", "6M", "5T", "5D", "4M"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["7E", "6E", "5E", "4E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M"], + fissure: ["7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["9L36", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L33"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + glare: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20"], + gunkshot: ["9M", "9L49", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L41"], + haze: ["9M", "9L41", "8V", "7L41", "7V", "6L41", "5L41", "4L36", "3L44"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + irontail: ["8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["9M"], + lashout: ["9M"], + leechlife: ["9M"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudbomb: ["7L33", "6L33", "5L33", "4L28"], + mudshot: ["9M"], + mudslap: ["9M"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poisonfang: ["9E", "7E", "6E", "5E", "4E", "3E"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L4", "8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L8", "3S0", "3S1"], + poisontail: ["9M", "9E", "7E", "6E", "5E", "4E"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaleshot: ["9M"], + scaryface: ["9M", "9E", "7E", "6E", "5E", "4E"], + screech: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L25"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slam: ["8V", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9L33", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["7M", "6M", "5M"], + snarl: ["9M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + spitup: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], + stockpile: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "7E", "6E", "5E"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], + switcheroo: ["9E", "7E", "6E", "5E", "4E"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + wrap: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + }, + eventData: [ + {generation: 3, level: 14, gender: "F", nature: "Docile", ivs: {hp: 26, atk: 28, def: 6, spa: 14, spd: 30, spe: 11}, abilities: ["shedskin"], moves: ["leer", "wrap", "poisonsting", "bite"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["wrap", "leer", "poisonsting"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 6}, + {generation: 2, level: 4}, + ], + }, + arbok: { + learnset: { + acid: ["9L20", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L38"], + acidspray: ["9M", "9L32", "7L32", "6L32", "5L32"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L48", "7L48", "6L48"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bite: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + bodyslam: ["9M", "7V", "3T"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + coil: ["9L56", "7L56", "6L56", "5L56"], + confide: ["7M", "6M"], + crunch: ["9M", "9L0", "8V", "7L1", "6L22", "5L22", "4L22"], + curse: ["7V"], + darkpulse: ["9M", "8V", "7M", "6M", "5T", "4M"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["9M", "8V", "7M", "6M", "5M"], + earthquake: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + fissure: ["7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["9L44", "7T", "7L44", "6T", "6L44", "5T", "5L44", "4T", "4L42"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + glare: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20", "3S0"], + gunkshot: ["9M", "9L63", "7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L56"], + haze: ["9M", "9L51", "8V", "7L51", "7V", "6L51", "5L51", "4L48", "3L56"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + infestation: ["7M", "6M"], + irontail: ["8V", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], + lashout: ["9M"], + leechlife: ["9M"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudbomb: ["7L39", "6L39", "5L39", "4L34"], + mudshot: ["9M"], + mudslap: ["9M"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poisontail: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L28"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slam: ["8V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9L39", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + sludgewave: ["7M", "6M", "5M"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + spitup: ["9L27", "7L27", "6L27", "5L27", "4L28", "3L46"], + stockpile: ["9L27", "7L27", "6L27", "5L27", "4L28", "3L46"], + stompingtantrum: ["9M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L27", "7L27", "6L27", "5L27", "4L28", "3L46"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + wrap: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 3, level: 33, moves: ["refresh", "sludgebomb", "glare", "bite"]}, + ], + encounters: [ + {generation: 2, level: 10}, + {generation: 4, level: 10}, + ], + }, + pichu: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bestow: ["7E", "6E", "5E"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "8M", "3T"], + captivate: ["4M"], + charge: ["9M", "9E", "9S6", "8E", "7E", "6E", "5E", "4E", "4S5", "3E"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2", "3S3"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + disarmingvoice: ["9M", "9E", "8E", "7E", "6E"], + doubleedge: ["3T"], + doubleslap: ["7E", "7V", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + electricterrain: ["9M", "8M", "7E"], + electroball: ["9M"], + electroweb: ["8M", "7T", "6T"], + encore: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + endeavor: ["4S5"], + endure: ["9M", "9S6", "8M", "7E", "7V", "6E", "5E", "4M", "4S5", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], + flail: ["9E", "8E", "7E", "6E", "5E", "4E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + followme: ["3S3"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M", "4S4"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9S6", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L16", "8M", "8L16", "7L13", "6L13", "5L18", "4L18"], + naturalgift: ["4M"], + nuzzle: ["9L12", "8L12"], + playnice: ["9L4", "8L4"], + playrough: ["9M", "8M"], + present: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "4S4", "3M"], + reversal: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L8", "8L8", "7L10", "7V", "6L10", "5L13", "4L13", "3L11"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9L1", "8L1", "7L5", "7V", "6L5", "5L5", "4L5", "3L6"], + takedown: ["9M"], + teeterdance: ["3S2"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "4S4", "3M"], + thunderpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5E", "4E"], + thundershock: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2", "3S3"], + thunderwave: ["9M", "8M", "7M", "7L18", "7V", "6M", "6L13", "5M", "5L10", "4M", "4L10", "3T", "3L8"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + volttackle: ["9R", "9S6", "8R", "7R", "6E", "5E", "4E", "4S4", "4S5", "3E"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E", "3S1"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "surf"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "teeterdance"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "followme"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 4, level: 1, moves: ["volttackle", "thunderbolt", "grassknot", "return"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: true, gender: "M", nature: "Jolly", moves: ["charge", "volttackle", "endeavor", "endure"], pokeball: "cherishball"}, + {generation: 9, level: 30, shiny: true, gender: "M", nature: "Jolly", moves: ["charge", "volttackle", "endure", "helpinghand"], pokeball: "cherishball"}, + ], + }, + pichuspikyeared: { + learnset: { + attract: ["4M"], + captivate: ["4M"], + chargebeam: ["4M"], + charm: ["4L1"], + doubleteam: ["4M"], + endure: ["4M"], + facade: ["4M"], + flash: ["4M"], + fling: ["4M"], + frustration: ["4M"], + grassknot: ["4M"], + headbutt: ["4T"], + helpinghand: ["4T", "4S0"], + hiddenpower: ["4M"], + irontail: ["4M"], + lightscreen: ["4M"], + magnetrise: ["4T"], + mudslap: ["4T"], + nastyplot: ["4L18"], + naturalgift: ["4M"], + painsplit: ["4S0"], + protect: ["4M"], + raindance: ["4M"], + rest: ["4M"], + return: ["4M"], + rollout: ["4T"], + secretpower: ["4M"], + shockwave: ["4M"], + signalbeam: ["4T"], + sleeptalk: ["4M"], + snore: ["4T"], + substitute: ["4M"], + swagger: ["4M", "4S0"], + sweetkiss: ["4L13"], + swift: ["4T"], + tailwhip: ["4L5"], + thunder: ["4M"], + thunderbolt: ["4M"], + thundershock: ["4L1"], + thunderwave: ["4M", "4L10"], + toxic: ["4M"], + uproar: ["4T"], + volttackle: ["4S0"], + }, + eventData: [ + {generation: 4, level: 30, gender: "F", nature: "Naughty", moves: ["helpinghand", "volttackle", "swagger", "painsplit"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachu: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "8V", "7L45", "7V", "6L37", "6S41", "5L37", "4L34", "3L33", "3S0", "3S8"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bestow: ["7S44", "6S42"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "5S26", "4M", "3M"], + calmmind: ["8V"], + captivate: ["4M"], + celebrate: ["9S55", "8S50", "8S51", "8S52", "7S43", "7S48", "6S31", "6S41"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1", "6S36"], + confide: ["7M", "6M"], + counter: ["7S48", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + discharge: ["9L32", "8L32", "7L34", "7S47", "6L34", "5L42", "4L37"], + doubleedge: ["7V", "3T"], + doublekick: ["8V"], + doubleteam: ["9L8", "8L8", "8V", "7M", "7L23", "7V", "6M", "6L21", "6S32", "5M", "5L21", "4M", "4L18", "4S13", "3M", "3L15"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "8S52", "7L13", "6L13", "6S32", "6S37", "5L18", "5S23", "5S24", "5S30"], + electroweb: ["8M", "7T", "6T"], + encore: ["9M", "8M", "8S52", "6S39", "5S23"], + endeavor: ["6S39"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["5S26"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["6S39"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21", "6L21", "5L34", "5S29", "4L29"], + flash: ["7V", "6M", "6S40", "5M", "4M", "4S13", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9S53", "7S49", "6S41", "5S24", "5S27", "3S2", "3S4", "3S6"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "5S25", "5S26", "5S27", "4M", "4S13"], + growl: ["9L1", "8L1", "8V", "7L5", "7V", "7S43", "7S46", "6L5", "6S31", "5L1", "4L1", "3L1", "3S1", "3S2", "3S3", "3S4", "3S5", "3S10"], + happyhour: ["7S45", "7S46", "6S40"], + headbutt: ["8V", "7V", "5S28", "4T"], + heartstamp: ["6S34"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdhands: ["7S44", "7S45", "6S33", "6S34", "6S35", "6S40", "6S42"], + irontail: ["9L28", "9S54", "8M", "8V", "7T", "7V", "6T", "6S37", "5T", "5S24", "5S30", "4M", "4S21", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["4S18"], + lightscreen: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L53", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L42", "4S11", "3M", "3L50", "3S0", "3S6", "3S7", "3S8"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "6S32", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + naturalgift: ["4M"], + nuzzle: ["9L1", "8L1", "7L29", "7S47", "6L23", "6S36", "6S38"], + payday: ["8M", "8V", "7V"], + playnice: ["9L1", "9S55", "8L1", "8S50", "7L7", "7S43", "7S44", "7S45", "6L7", "6S31", "6S35", "6S36", "6S38", "6S40", "6S42"], + playrough: ["9M", "9S54", "8M"], + present: ["9S55", "4S12", "4S15", "4S17", "4S18", "4S20", "4S22"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S27", "4M", "4S14", "4S16", "3M"], + quickattack: ["9L1", "9S53", "8L1", "8V", "8S50", "7L10", "7V", "7S43", "7S46", "7S49", "6L10", "6S31", "6S32", "6S33", "6S34", "6S37", "5L13", "5S24", "5S25", "5S29", "5S30", "4L13", "4S11", "4S12", "4S15", "4S17", "4S18", "4S20", "4S21", "4S22", "3L11"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "8V", "7V"], + refresh: ["7S48"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4S19", "3M"], + return: ["7M", "7V", "7S44", "6M", "6S42", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8S52", "5S23"], + skullbash: ["7V"], + slam: ["8L28", "8V", "7L37", "7V", "7S47", "6L26", "5L26", "4L21", "3L20"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "4S19", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "4S19", "3T"], + spark: ["9L20", "8L20", "7L26", "6L26"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "6S35", "5M", "4M", "3T"], + surf: ["9M", "9S54", "8M", "7S47", "7S49", "6S33", "6S41", "4S9", "4S11", "4S14", "4S16", "3S3", "3S5", "3S7"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1", "6S36"], + sweetscent: ["7S48"], + swift: ["9M", "8M", "8S51", "7V", "4T", "3T"], + tailwhip: ["9L1", "9S53", "8L1", "8V", "7L1", "7V", "6L1", "6S38", "5L5", "5S28", "4L5", "4S9", "4S12", "4S15", "4S17", "4S20", "4S22", "3L6", "3S1", "3S2", "3S3", "3S4", "3S10"], + takedown: ["9M", "7V"], + teeterdance: ["7S45", "6S38", "5S23"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "9S54", "8M", "8L44", "8V", "7M", "7L58", "7V", "6M", "6L50", "6S35", "5M", "5L50", "5S25", "4M", "4L45", "4S14", "4S16", "3M", "3L41", "3S0", "3S6", "3S7", "3S8"], + thunderbolt: ["9M", "9L36", "9S55", "8M", "8L36", "8V", "8S51", "7M", "7L42", "7V", "7S49", "6M", "6L29", "6S33", "6S34", "6S37", "5M", "5L29", "5S26", "5S27", "5S30", "4M", "4L26", "4S11", "4S13", "4S18", "4S21", "3M", "3L26", "3S0", "3S6", "3S7", "3S8"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thundershock: ["9L1", "9S53", "8L1", "8V", "8S50", "7L1", "7V", "7S46", "6L1", "5L1", "5S28", "4L1", "4S12", "4S15", "4S20", "4S22", "3L1", "3S1", "3S5", "3S10"], + thunderwave: ["9M", "9L4", "8M", "8L4", "8V", "7M", "7L18", "7V", "6M", "6L13", "5M", "5L10", "5S28", "4M", "4L10", "4S9", "4S17", "3T", "3L8", "3S1", "3S2", "3S3", "3S4", "3S5", "3S10"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M", "5S29"], + volttackle: ["7T", "6S39", "5S25", "5S29", "4S9", "4S21"], + wildcharge: ["9M", "8M", "7M", "7L50", "6M", "6L50", "5M"], + wish: ["8S51"], + yawn: ["4S19"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["thunderbolt", "agility", "thunder", "lightscreen"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["thundershock", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["fly", "tailwhip", "growl", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["surf", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["fly", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["thundershock", "growl", "thunderwave", "surf"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["thunderbolt", "thunder", "lightscreen", "fly"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["thunderbolt", "thunder", "lightscreen", "surf"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["thunderbolt", "thunder", "lightscreen", "agility"], pokeball: "pokeball"}, + {generation: 4, level: 10, gender: "F", nature: "Hardy", moves: ["surf", "volttackle", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["thundershock", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Hardy", moves: ["surf", "thunderbolt", "lightscreen", "quickattack"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "F", nature: "Bashful", moves: ["present", "quickattack", "thundershock", "tailwhip"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "M", nature: "Jolly", moves: ["grassknot", "thunderbolt", "flash", "doubleteam"], pokeball: "pokeball"}, + {generation: 4, level: 40, gender: "M", nature: "Modest", moves: ["surf", "thunder", "protect"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "F", nature: "Bashful", moves: ["quickattack", "thundershock", "tailwhip", "present"], pokeball: "cherishball"}, + {generation: 4, level: 40, gender: "M", nature: "Mild", moves: ["surf", "thunder", "protect"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "F", nature: "Bashful", moves: ["present", "quickattack", "thunderwave", "tailwhip"], pokeball: "cherishball"}, + {generation: 4, level: 30, gender: "M", nature: "Naughty", moves: ["lastresort", "present", "thunderbolt", "quickattack"], pokeball: "cherishball"}, + {generation: 4, level: 50, gender: "M", nature: "Relaxed", moves: ["rest", "sleeptalk", "yawn", "snore"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "M", nature: "Docile", moves: ["present", "quickattack", "thundershock", "tailwhip"], pokeball: "cherishball"}, + {generation: 4, level: 50, gender: "M", nature: "Naughty", moves: ["volttackle", "irontail", "quickattack", "thunderbolt"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "M", nature: "Bashful", moves: ["present", "quickattack", "thundershock", "tailwhip"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "F", isHidden: true, moves: ["sing", "teeterdance", "encore", "electroball"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["fly", "irontail", "electroball", "quickattack"], pokeball: "cherishball"}, + {generation: 5, level: 100, shiny: 1, gender: "F", moves: ["thunder", "volttackle", "grassknot", "quickattack"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, gender: "F", moves: ["extremespeed", "thunderbolt", "grassknot", "brickbreak"], pokeball: "cherishball"}, + {generation: 5, level: 50, gender: "F", nature: "Timid", isHidden: true, moves: ["fly", "thunderbolt", "grassknot", "protect"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["thundershock", "tailwhip", "thunderwave", "headbutt"]}, + {generation: 5, level: 100, gender: "M", isHidden: true, moves: ["volttackle", "quickattack", "feint", "voltswitch"], pokeball: "cherishball"}, + {generation: 5, level: 50, gender: "M", nature: "Brave", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["celebrate", "growl", "playnice", "quickattack"], pokeball: "cherishball"}, + {generation: 6, level: 22, moves: ["quickattack", "electroball", "doubleteam", "megakick"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["thunderbolt", "quickattack", "surf", "holdhands"], pokeball: "cherishball"}, + {generation: 6, level: 10, gender: "F", moves: ["thunderbolt", "quickattack", "heartstamp", "holdhands"], pokeball: "healball"}, + {generation: 6, level: 36, shiny: true, isHidden: true, moves: ["thunder", "substitute", "playnice", "holdhands"], pokeball: "cherishball"}, + {generation: 6, level: 10, gender: "F", moves: ["playnice", "charm", "nuzzle", "sweetkiss"], pokeball: "cherishball"}, + {generation: 6, level: 50, gender: "M", nature: "Naughty", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "cherishball"}, + {generation: 6, level: 10, shiny: true, moves: ["teeterdance", "playnice", "tailwhip", "nuzzle"], pokeball: "cherishball"}, + {generation: 6, level: 10, perfectIVs: 2, isHidden: true, moves: ["fakeout", "encore", "volttackle", "endeavor"], pokeball: "cherishball"}, + {generation: 6, level: 99, moves: ["happyhour", "playnice", "holdhands", "flash"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["fly", "surf", "agility", "celebrate"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["bestow", "holdhands", "return", "playnice"], pokeball: "healball"}, + {generation: 7, level: 10, nature: "Jolly", moves: ["celebrate", "growl", "playnice", "quickattack"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["bestow", "holdhands", "return", "playnice"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["holdhands", "playnice", "teeterdance", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["growl", "quickattack", "thundershock", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 40, shiny: 1, perfectIVs: 3, moves: ["nuzzle", "discharge", "slam", "surf"], pokeball: "pokeball"}, + {generation: 7, level: 5, moves: ["celebrate", "sweetscent", "counter", "refresh"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["fly", "surf", "thunderbolt", "quickattack"], pokeball: "cherishball"}, + {generation: 8, level: 5, gender: "M", nature: "Serious", moves: ["celebrate", "playnice", "thundershock", "quickattack"], pokeball: "cherishball"}, + {generation: 8, level: 21, gender: "M", nature: "Brave", moves: ["thunderbolt", "swift", "wish", "celebrate"], pokeball: "cherishball"}, + {generation: 8, level: 25, isHidden: true, moves: ["sing", "encore", "celebrate", "electroball"], pokeball: "cherishball"}, + {generation: 9, level: 5, moves: ["fly", "tailwhip", "thundershock", "quickattack"], pokeball: "pokeball"}, + {generation: 9, level: 100, gender: "M", nature: "Quiet", perfectIVs: 6, isHidden: true, moves: ["thunder", "surf", "playrough", "irontail"], pokeball: "pokeball"}, + {generation: 9, level: 25, gender: "M", ivs: {hp: 25, atk: 25, def: 25, spa: 25, spd: 25, spe: 25}, moves: ["celebrate", "playnice", "present", "thunderbolt"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 4}, + {generation: 3, level: 3}, + ], + }, + pikachucosplay: { + learnset: { + agility: ["6L45"], + attract: ["6M"], + brickbreak: ["6M"], + chargebeam: ["6M"], + confide: ["6M"], + covet: ["6T"], + dig: ["6M"], + discharge: ["6L34"], + doubleteam: ["6M", "6L23"], + echoedvoice: ["6M"], + electroball: ["6L13", "6S0"], + electroweb: ["6T"], + facade: ["6M"], + feint: ["6L21"], + flash: ["6M"], + fling: ["6M"], + focuspunch: ["6T"], + frustration: ["6M"], + grassknot: ["6M"], + growl: ["6L5"], + helpinghand: ["6T"], + hiddenpower: ["6M"], + irontail: ["6T"], + knockoff: ["6T"], + lightscreen: ["6M", "6L53"], + magnetrise: ["6T"], + nuzzle: ["6L29"], + playnice: ["6L7"], + protect: ["6M"], + quickattack: ["6L10", "6S0"], + raindance: ["6M"], + rest: ["6M"], + return: ["6M"], + rocksmash: ["6M"], + round: ["6M"], + secretpower: ["6M"], + shockwave: ["6T"], + signalbeam: ["6T"], + slam: ["6L37"], + sleeptalk: ["6M"], + snore: ["6T"], + spark: ["6L26"], + strength: ["6M"], + substitute: ["6M"], + swagger: ["6M"], + tailwhip: ["6L1"], + thunder: ["6M", "6L58"], + thunderbolt: ["6M", "6L42"], + thunderpunch: ["6T"], + thundershock: ["6L1", "6S0"], + thunderwave: ["6M", "6L18", "6S0"], + toxic: ["6M"], + voltswitch: ["6M"], + wildcharge: ["6M", "6L50"], + }, + eventData: [ + {generation: 6, level: 20, perfectIVs: 3, moves: ["quickattack", "electroball", "thunderwave", "thundershock"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachurockstar: { + learnset: { + meteormash: ["6R"], + }, + eventOnly: true, + }, + pikachubelle: { + learnset: { + iciclecrash: ["6R"], + }, + eventOnly: true, + }, + pikachupopstar: { + learnset: { + drainingkiss: ["6R"], + }, + eventOnly: true, + }, + pikachuphd: { + learnset: { + electricterrain: ["6R"], + }, + eventOnly: true, + }, + pikachulibre: { + learnset: { + flyingpress: ["6R"], + }, + eventOnly: true, + }, + pikachuoriginal: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45", "7S0"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["9M", "8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58", "7S0"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 1, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "agility"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachuhoenn: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["9M", "8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58", "7S0"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 6, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "irontail"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachusinnoh: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["9M", "8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T", "7S0"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 10, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachuunova: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["9M", "8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T", "7S0"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 14, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachukalos: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["9M", "8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13", "7S0"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 17, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachualola: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["9M", "8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13", "7S0"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 20, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachupartner: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["9M", "8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58", "7S0"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 21, shiny: 1, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "irontail"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: true, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachustarter: { + learnset: { + agility: ["8V", "7L27"], + brickbreak: ["8V", "7M"], + calmmind: ["8V", "7M"], + dig: ["8V", "7M"], + doublekick: ["8V", "7L9"], + doubleteam: ["8V", "7L12"], + facade: ["8V", "7M"], + floatyfall: ["8V", "7T"], + growl: ["8V", "7L1", "7S0"], + headbutt: ["8V", "7M"], + helpinghand: ["8V", "7M"], + irontail: ["8V", "7M"], + lightscreen: ["8V", "7M", "7L18"], + payday: ["8V", "7M"], + pikapapow: ["8V", "7T"], + protect: ["8V", "7M"], + quickattack: ["8V", "7L6"], + reflect: ["8V", "7M"], + rest: ["8V", "7M"], + seismictoss: ["8V", "7M"], + slam: ["8V", "7L24"], + splishysplash: ["8V", "7T"], + substitute: ["8V", "7M"], + tailwhip: ["8V", "7L3", "7S0"], + thunder: ["8V", "7M", "7L30"], + thunderbolt: ["8V", "7M", "7L21"], + thunderpunch: ["8V", "7M"], + thundershock: ["8V", "7L1", "7S0"], + thunderwave: ["8V", "7M", "7L15"], + toxic: ["8V", "7M"], + zippyzap: ["8V", "7T"], + }, + eventData: [ + {generation: 7, level: 5, perfectIVs: 6, moves: ["thundershock", "tailwhip", "growl"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachuworld: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24"], + attract: ["8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + charge: ["8E"], + chargebeam: ["9M"], + charm: ["9M", "9L1", "8M", "8L1"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32"], + doubleteam: ["9L8", "8L8"], + drainingkiss: ["9M", "8M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12"], + electroweb: ["8M", "8S1", "8S0"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16"], + flail: ["8E"], + fling: ["9M", "8M"], + grassknot: ["9M", "8M"], + growl: ["9L1", "8L1"], + helpinghand: ["9M", "8M"], + irontail: ["9L28", "8M", "8S1", "8S0"], + lightscreen: ["9M", "9L40", "8M", "8L40"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1"], + payday: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M"], + quickattack: ["9L1", "8L1", "8S1", "8S0"], + raindance: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + slam: ["8L28"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spark: ["9L20", "8L20"], + substitute: ["9M", "8M"], + surf: ["9M", "8M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "8S0"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L4", "8M", "8L4"], + tickle: ["8E"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M"], + volttackle: ["8S0"], + wildcharge: ["9M", "8M"], + wish: ["8E"], + }, + eventData: [ + {generation: 8, level: 25, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 80, nature: "Hardy", ivs: {hp: 31, atk: 30, def: 30, spa: 31, spd: 30, spe: 31}, moves: ["thunderbolt", "quickattack", "irontail", "electroweb"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + raichu: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + calmmind: ["8V"], + captivate: ["4M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + discharge: ["9L1", "8L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["9L1", "8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L1", "8M", "8L1"], + electroweb: ["8M", "7T", "6T"], + encore: ["9M", "8M", "8V"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8V"], + faketears: ["9M"], + feint: ["9L1", "8L1"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7V"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["9L1", "8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L1", "8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + naturalgift: ["4M"], + nuzzle: ["9L1", "8L1"], + payday: ["8M", "8V", "7V"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slam: ["8L1"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spark: ["9L1", "8L1"], + speedswap: ["8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "9L5", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + thunderpunch: ["9M", "9L0", "8M", "8L0", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thundershock: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + }, + raichualola: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M"], + calmmind: ["9M", "8M", "8V", "7M"], + charge: ["9M"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M", "8V"], + discharge: ["9L1", "8L1"], + doubleteam: ["9L1", "8L1", "8V", "7M"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L1", "8M", "8L1"], + electroweb: ["8M", "7T"], + encore: ["9M", "8M", "8V"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M"], + fakeout: ["8V"], + faketears: ["9M"], + feint: ["9L1", "8L1"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "8V"], + headbutt: ["8V"], + helpinghand: ["9M", "8M", "8V", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + irontail: ["9L1", "8M", "8V", "7T"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1"], + payday: ["8M", "8V"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "8V", "7M"], + psychic: ["9M", "9L0", "8M", "8L0", "8V", "7M", "7L1"], + psychicterrain: ["9M"], + psyshock: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "7L1"], + raindance: ["9M", "8M", "7M"], + recycle: ["7T"], + reflect: ["9M", "8M", "8V", "7M"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seismictoss: ["8V"], + shockwave: ["7T"], + signalbeam: ["7T"], + skillswap: ["9M"], + slam: ["8L1"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L1", "8L1"], + speedswap: ["8M", "7L1"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "8V", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "8V", "7L1"], + takedown: ["9M"], + telekinesis: ["7T"], + teleport: ["8V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunder: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + thunderbolt: ["9M", "9L5", "8M", "8L1", "8V", "7M", "7L1"], + thunderpunch: ["9M", "8M", "8V", "7T"], + thundershock: ["9L1", "8L1", "8V", "7L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + toxic: ["8V", "7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + }, + }, + sandshrew: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L27", "8M", "8L27"], + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + covet: ["7T", "6T", "5T"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L3", "4L3", "3T", "3L6", "3S0"], + detect: ["7V"], + dig: ["9M", "9L33", "8M", "8L33", "8V", "7L30", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L45", "8M", "8L45", "8V", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + fissure: ["7V"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9L12", "8L12", "7L11", "7V", "6L11", "5L25", "4T", "4L25", "3T"], + furyswipes: ["9L24", "8L24", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L37"], + gyroball: ["9M", "9L36", "8M", "8L36", "7M", "7L34", "6M", "6L34", "5M", "5L33", "4M", "4L33"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + honeclaws: ["9E", "8E", "7E", "6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leechlife: ["9M", "8M"], + lowkick: ["9M"], + magnitude: ["7L14", "6L14", "5L17"], + metalclaw: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E"], + mudslap: ["9M", "9E", "8E", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "8E", "7E", "6E", "5E", "4E"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L3", "8L3", "8V", "7L5", "7V", "6L5", "5L9", "4L9", "3L17", "3S0"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rapidspin: ["9L15", "8L15", "7L9", "7E", "7V", "6L9", "6E", "5L13", "5E", "4L13", "4E", "3E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["7E", "6E", "5E", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L9", "8L9", "7L7", "7V", "6L7", "5L21", "4T", "4L21", "3T"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + sandattack: ["9L6", "8L6", "8V", "7L3", "7V", "6L3", "5L7", "5D", "4L7", "3L11", "3S0"], + sandstorm: ["9M", "9L42", "8M", "8L42", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L37", "4M", "4L37", "3M", "3L53"], + sandtomb: ["9M", "8M", "7L23", "6L23", "5L27", "4L27", "3L45"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["9L30", "8L30", "8V", "7L26", "7V", "6L26", "5L31", "4L31", "3L23"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "5D", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L21", "8M", "8L21", "8V", "7L17", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L30"], + swordsdance: ["9M", "9L39", "8M", "8L39", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L38", "4M", "4E", "3T", "3E"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["8M"], + xscissor: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 12, gender: "M", nature: "Docile", ivs: {hp: 4, atk: 23, def: 8, spa: 31, spd: 1, spe: 25}, moves: ["scratch", "defensecurl", "sandattack", "poisonsting"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 6}, + ], + }, + sandshrewalola: { + learnset: { + aerialace: ["9M", "7M"], + amnesia: ["9M", "8M", "7E"], + aquatail: ["7T"], + attract: ["8M", "7M"], + auroraveil: ["7M"], + avalanche: ["9M", "8M"], + bide: ["8V", "7L3", "7S0"], + blizzard: ["9M", "9L45", "8M", "8L45", "8V", "7M", "7L46"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M"], + bulldoze: ["9M", "8M", "7M"], + chipaway: ["7E"], + confide: ["7M"], + counter: ["9E", "8E", "7E"], + covet: ["7T"], + crushclaw: ["9E", "8E", "7E"], + curse: ["9E", "8E", "7E"], + defensecurl: ["9L1", "8L1", "8V", "7L1"], + dig: ["9M", "8M", "8V"], + doubleteam: ["7M"], + earthquake: ["9M", "8M", "8V", "7M"], + endure: ["9M", "8M", "7E"], + facade: ["9M", "8M", "8V", "7M"], + flail: ["9E", "8E", "7E"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frostbreath: ["7M"], + frustration: ["7M"], + furycutter: ["9L12", "8L12", "7L11"], + furyswipes: ["9L24", "8L24", "8V", "7L20"], + gyroball: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], + hail: ["8M", "8L42", "7M", "7L42"], + headbutt: ["8V"], + hiddenpower: ["7M"], + honeclaws: ["9E", "8E", "7E"], + iceball: ["7L7", "7S0"], + icebeam: ["9M", "8V"], + icepunch: ["9M", "8M", "8V", "7T"], + iceshard: ["9E", "8V"], + icespinner: ["9M"], + iciclecrash: ["7E"], + iciclespear: ["9M", "8M", "7E"], + icywind: ["9M", "8M", "7T"], + irondefense: ["9M", "9L27", "8M", "8L27", "7T", "7L23"], + ironhead: ["9M", "9L33", "8M", "8L33", "7T", "7L30"], + irontail: ["8M", "8V", "7T"], + knockoff: ["9M", "7T"], + leechlife: ["9M", "8M", "7M"], + lowkick: ["9M"], + metalclaw: ["9M", "9L18", "8L18", "7L14", "7E"], + mirrorcoat: ["9E", "8V"], + mist: ["9L3", "8L3"], + nightslash: ["9E", "8E", "7E"], + poisonjab: ["9M", "8M", "8V", "7M"], + powdersnow: ["9L6", "8L6", "7L5", "7S0"], + protect: ["9M", "8M", "8V", "7M"], + rapidspin: ["9L15", "8L15", "7L9", "7S0"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M"], + rollout: ["9L9", "8L9"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scratch: ["9L1", "8L1", "8V", "7L1"], + seismictoss: ["8V"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["9L30", "8L30", "8V", "7L26"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M", "9L42"], + stealthrock: ["9M", "8M", "8V", "7T"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + superfang: ["9M", "7T"], + swagger: ["7M"], + swift: ["9M", "9L21", "8M", "8L21", "8V", "7L17"], + swordsdance: ["9M", "9L39", "8M", "8L39", "8V", "7M", "7L38"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M"], + tripleaxel: ["8T"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M", "8V", "7M"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["rapidspin", "iceball", "powdersnow", "bide"], pokeball: "cherishball"}, + ], + }, + sandslash: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8V", "3T"], + covet: ["7T", "6T", "5T"], + crushclaw: ["9L1", "8L1", "7L1", "6L22", "5L22", "4L22"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + detect: ["7V"], + dig: ["9M", "9L41", "8M", "8L41", "8V", "7L33", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["9M", "8M", "8V"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L61", "8M", "8L61", "8V", "7M", "7L53", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + fissure: ["7V"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9L12", "8L12", "7L11", "7V", "6L11", "5L28", "4T", "4L28", "3T"], + furyswipes: ["9L26", "8L26", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + gyroball: ["9M", "9L46", "8M", "8L46", "7M", "7L38", "6M", "6L34", "5M", "5L45", "4M", "4L45"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leechlife: ["9M", "8M"], + lowkick: ["9M"], + magnitude: ["7L14", "6L14", "5L17"], + metalclaw: ["9M"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + pinmissile: ["8M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L9", "4L9", "3L17"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rapidspin: ["9L15", "8L15", "7L9", "6L9", "5L13", "4L13"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L9", "8L9", "7L7", "7V", "6L7", "5L21", "4T", "4L21", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["9M", "9L56", "8M", "8L56", "7M", "7L48", "7V", "6M", "6L42", "5M", "5L52", "4M", "4L52", "3M", "3L62"], + sandtomb: ["9M", "9L31", "8M", "8L31", "7L24", "6L23", "5L33", "4L33", "3L52"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["9L36", "8L36", "8V", "7L28", "7V", "6L26", "5L40", "4L40", "3L24"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L21", "8M", "8L21", "8V", "7L17", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L33"], + swordsdance: ["9M", "9L51", "8M", "8L51", "8V", "7M", "7L43", "7V", "6M", "6L38", "5M", "5L38", "4M", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["8M"], + xscissor: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 2, level: 10}, + {generation: 4, level: 10}, + ], + }, + sandslashalola: { + learnset: { + aerialace: ["9M", "7M"], + agility: ["9M", "8M"], + amnesia: ["9M", "8M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + auroraveil: ["7M"], + avalanche: ["9M", "8M"], + bide: ["8V"], + blizzard: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M"], + bulldoze: ["9M", "8M", "7M"], + confide: ["7M"], + counter: ["8V"], + covet: ["7T"], + defensecurl: ["9L1", "8L1", "8V", "7L1"], + dig: ["9M", "8M", "8V"], + doubleteam: ["7M"], + drillrun: ["9M", "8M", "8V", "7T"], + earthquake: ["9M", "8M", "8V", "7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + falseswipe: ["9M"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frostbreath: ["7M"], + frustration: ["7M"], + furycutter: ["9L1", "8L1"], + furyswipes: ["9L1", "8L1"], + gigaimpact: ["9M", "8M", "7M"], + gyroball: ["9M", "9L1", "8M", "8L1", "7M"], + hail: ["8M", "8L1", "7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + iceball: ["7L1"], + icebeam: ["9M", "8V"], + icepunch: ["9M", "8M", "8V", "7T"], + iceshard: ["8V"], + icespinner: ["9M"], + iciclecrash: ["9L1", "8L1", "7L1"], + iciclespear: ["9M", "9L0", "8M", "8L0", "7L1"], + icywind: ["9M", "8M", "7T"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T"], + ironhead: ["9M", "9L1", "8M", "8L1", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["9M", "7T"], + leechlife: ["9M", "8M", "7M"], + lowkick: ["9M"], + metalburst: ["9L1", "8L1", "7L1"], + metalclaw: ["9M", "9L1", "8L1", "7L1"], + mist: ["9L1", "8L1"], + pinmissile: ["8M"], + poisonjab: ["9M", "8M", "8V", "7M"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M", "8V", "7M"], + rapidspin: ["9L1", "8L1"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M"], + rollout: ["9L1", "8L1"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scratch: ["9L1", "8L1", "8V"], + seismictoss: ["8V"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["9L1", "8L1", "7L1"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M", "9L1"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "8M", "8V", "7T"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + superfang: ["9M", "7T"], + swagger: ["7M"], + swift: ["9M", "9L1", "8M", "8L1"], + swordsdance: ["9M", "9L1", "8M", "8L1", "7M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M"], + tripleaxel: ["8T"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M", "8V", "7M"], + }, + }, + nidoranf: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bite: ["8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L20"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + captivate: ["7L43", "6L43", "5L43", "4M", "4L43"], + charm: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crunch: ["8M", "8L50", "8V", "7L37", "6L37", "5L37", "4L37", "3L47"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doublekick: ["8L25", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L55"], + echoedvoice: ["7M", "6M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L45", "7L33", "6L33", "5L33", "4L33", "3L38"], + focusenergy: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8L15", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L30"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L35", "8V", "7T", "7L25", "6T", "6L25", "5T", "5L25", "4T", "4L25", "3L23"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poisonfang: ["8E", "7L45", "6L45", "5L45", "4L45"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + poisontail: ["8E", "7E", "6E", "5E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["5D"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "6T", "5T", "5D", "4T"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + tailwhip: ["8L10", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + takedown: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["8M", "7M", "6M", "5M"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 1, level: 2}, + ], + }, + nidorina: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + bite: ["8L36", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L22"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L50", "6L50", "5L50", "4M", "4L50"], + charm: ["8M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "8L64", "8V", "7L43", "6L43", "5L43", "4L43", "3L53"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L29", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L71"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L57", "7L38", "6L38", "5L38", "4L38", "3L43"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8L15", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L34"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L43", "8V", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L26"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poisonfang: ["7L58", "6L58", "5L58", "4L58"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L18"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + tailwhip: ["8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L50", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L22", "7L35", "6L35", "5L35", "4L35"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 4, level: 15, pokeball: "safariball"}, + ], + }, + nidoqueen: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + beatup: ["8M"], + bide: ["7V"], + bite: ["8L1"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "8V", "7L35", "7V", "6L35", "6S0", "5L35", "4L23", "3T", "3L22"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["8M"], + chipaway: ["7L23", "6L23", "5L23"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crunch: ["8M", "8L1"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L1", "7L1", "7V", "6L1", "6S0", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8V", "7M", "6M", "5M"], + drillrun: ["8M", "8V", "7T", "6T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "8L1", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8L1"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hex: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + payday: ["8M", "8V", "7V"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "6S0", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["8M", "8L0", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L58", "4T", "4L58", "3L43"], + supersonic: ["8V"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "6S0", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 6, level: 41, perfectIVs: 2, abilities: ["poisonpoint"], moves: ["tailwhip", "doublekick", "poisonsting", "bodyslam"], pokeball: "cherishball"}, + ], + }, + nidoranm: { + learnset: { + amnesia: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + captivate: ["7L43", "6L43", "5L43", "4M", "4L43"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + confusion: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doublekick: ["8L25", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + earthpower: ["8M", "8L55"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L45", "7L33", "6L33", "5L33", "4L33", "3L38"], + focusenergy: ["8M", "8L10", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L15", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L30"], + headbutt: ["8V", "7V", "4T"], + headsmash: ["8E", "7E", "6E", "5E", "4E"], + helpinghand: ["8M", "8L35", "8V", "7T", "7L25", "6T", "6L25", "5T", "5L25", "4T", "4L25", "3L23"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hornattack: ["8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L20"], + horndrill: ["8E", "8V", "7L45", "7V", "6L45", "5L45", "4L45", "3L47"], + icebeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + peck: ["8L5", "8V", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + poisonjab: ["8M", "8L50", "8V", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + poisontail: ["8E", "7E", "6E", "5E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8E", "7E", "6E", "5E", "4T", "4E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "5D", "4T"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + takedown: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8E"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["8M", "7M", "6M", "5M"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 1, level: 2}, + ], + }, + nidorino: { + learnset: { + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L50", "6L50", "5L50", "4M", "4L50"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L29", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + earthpower: ["8M", "8L71"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L57", "7L38", "6L38", "5L38", "4L38", "3L43"], + focusenergy: ["8M", "8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L15", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L34"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L43", "8V", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L26"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hornattack: ["8L36", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L22"], + horndrill: ["8V", "7L58", "7V", "6L58", "5L58", "4L58", "3L53"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + peck: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["8M", "8L64", "8V", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L18"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L50", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L22", "7L35", "6L35", "5L35", "4L35"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 4, level: 15, pokeball: "safariball"}, + ], + }, + nidoking: { + learnset: { + amnesia: ["8M"], + aquatail: ["7T", "7S0", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + beatup: ["8M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L23", "6L23", "5L23"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8V", "7M", "6M", "5M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "8L1", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + earthquake: ["8M", "8V", "7M", "7V", "7S0", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L1"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hex: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hornattack: ["8L1", "7V"], + horndrill: ["7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["8L1", "8V"], + megahorn: ["8M", "8L0", "8V", "7L1", "6L1", "5L58", "4L58", "3L43"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + payday: ["8M", "8V", "7V"], + peck: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["8M", "8L1", "8V", "7M", "7S0", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + supersonic: ["8V"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8V", "7L35", "7V", "6L35", "5L35", "4L23", "3L22"], + throatchop: ["8M", "7T", "7S0"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 7, level: 68, abilities: ["poisonpoint"], moves: ["earthquake", "poisonjab", "throatchop", "aquatail"], pokeball: "cherishball"}, + ], + }, + cleffa: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + aromatherapy: ["8E", "7E", "6E", "5E", "5D", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M"], + captivate: ["4M"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L13", "6L13", "5L13", "4L13"], + counter: ["3T"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["7V"], + dazzlinggleam: ["9M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M", "9L12", "8L12"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "9L16", "8M", "8L16", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L4"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "4E"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + healpulse: ["9E", "8E", "7E", "6E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M", "8M", "7L16", "6L16", "5L16", "4L16", "3L17"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mistyterrain: ["9M", "8M", "7E", "6E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + present: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["9L4", "8L4", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "8L1", "7E", "7V", "6E", "5E", "4E", "3E"], + storedpower: ["9M", "8M", "7E", "6E", "5E"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L8", "8L8", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + swift: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["9E", "8E", "7E", "6E", "5E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + clefairy: { + learnset: { + afteryou: ["9L12", "8L12", "7T", "7L58", "6T", "6L1", "5T", "5L52"], + allyswitch: ["8M"], + amnesia: ["9M", "8M", "8V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bestow: ["7L19", "6L19", "5L25"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "8V", "7L40", "7V", "6L40", "5L40", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + cosmicpower: ["9L40", "8M", "8L40", "7L34", "6L34", "5L28", "4L25", "3L33"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3T", "3L25"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M", "9L1", "8L1", "7L1", "6L1"], + doubleedge: ["7V", "3T"], + doubleslap: ["8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["9M", "8T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "9L8", "8M", "8L1", "8V", "7L1", "7V", "6L1", "5L4", "4L4", "3L5"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L36", "8L36", "8S0", "7L16", "6L16", "5L16", "4L16", "3L17"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L28", "8L28", "7T", "7L49", "6T", "6L49", "5T", "5L37", "4T", "4L34"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["9L48", "8L48", "7L55", "6L1", "5L49", "4L46"], + helpinghand: ["9M", "8M", "8V", "8S0", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "8S0", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lifedew: ["9L16", "8L16"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5L46", "4M", "4L40", "3M", "3L41"], + luckychant: ["7L37", "6L37", "5L31", "4L28"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + meteorbeam: ["8T"], + meteormash: ["9L32", "8L32", "7L50", "6L50", "5L55", "4L43", "3L45"], + metronome: ["9M", "9L20", "8M", "8L20", "8V", "8S1", "7L31", "7V", "6L31", "5L34", "4L31", "3T", "3L29"], + mimic: ["7V", "3T"], + minimize: ["8L8", "8V", "7L25", "7V", "6L25", "5L19", "4L19", "3L21"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L44", "8L44", "8V", "8S1", "7L46", "6L46"], + moonlight: ["9L24", "8L24", "8S1", "7L43", "7V", "6L43", "5L40", "4L37", "3L37"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + playrough: ["9M", "8M", "8V"], + pound: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "8S0", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["9L1", "8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L9"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "8L1"], + spotlight: ["7L1"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "9L4", "8M", "8L4", "7L28", "6L28", "5L43"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M"], + wakeupslap: ["7L22", "6L22", "5L22", "4L22"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "8S1", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 8, level: 50, gender: "F", shiny: true, nature: "Bold", isHidden: true, ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["followme", "icywind", "helpinghand", "protect"], pokeball: "cherishball"}, + {generation: 8, level: 15, gender: "M", nature: "Modest", abilities: ["cutecharm"], moves: ["metronome", "moonblast", "zenheadbutt", "moonlight"], pokeball: "moonball"}, + ], + encounters: [ + {generation: 1, level: 8}, + ], + }, + clefable: { + learnset: { + afteryou: ["9L1", "8L1", "7T", "6T", "5T"], + allyswitch: ["8M"], + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + cosmicpower: ["9L1", "8M", "8L1"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M", "9L1", "8L1", "7L1", "6L1"], + doubleedge: ["7V", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["9M", "8T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "9L1", "8M", "8L1"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L1", "8L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "8L1", "7T", "6T", "5T", "4T"], + growl: ["9L1", "8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["9L1", "8L1"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + meteorbeam: ["8T"], + meteormash: ["9L1", "8L1"], + metronome: ["9M", "9L1", "8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + mimic: ["7V", "3T"], + minimize: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L1", "8L1"], + moonlight: ["9L1", "8L1", "7V"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + playrough: ["9M", "8M", "8V"], + pound: ["9L1", "8L1", "8V"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "8L1"], + spotlight: ["7L1"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "9L1", "8M", "8L1"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + uproar: ["9M", "8M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + vulpix: { + learnset: { + agility: ["9M", "8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9E", "8E", "7L9", "6L9"], + batonpass: ["9M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + burningjealousy: ["9M", "8T"], + captivate: ["7L47", "7E", "6L47", "6E", "5L41", "4M", "4L37"], + charm: ["9M", "3S1"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L20", "8L20", "8V", "7L12", "7V", "6L12", "5L17", "4L17", "3L21"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "5D", "4M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M", "3S1"], + disable: ["9L4", "8L4", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4E"], + extrasensory: ["9L28", "8L28", "7L31", "7E", "6L31", "6E", "5L51", "5E", "4L44", "4E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L23", "7E", "7V", "6L20", "6E", "5L20", "5E", "4E", "3E"], + fireblast: ["9M", "9L52", "8M", "8L56", "8V", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L54", "4M", "4L47", "3M"], + firespin: ["9M", "9L40", "8M", "8L40", "8V", "7L15", "7V", "6L12", "5L14", "4L34", "3L41"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flameburst: ["7L28", "6L23", "5L24"], + flamecharge: ["9M", "9E", "8E", "7M", "6M", "5M"], + flamethrower: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L36", "7V", "6M", "6L34", "5M", "5L37", "4M", "4L24", "3M", "3L29"], + flareblitz: ["9M", "8M", "7E", "6E", "5E", "4E"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grudge: ["8L52", "7L44", "6L44", "5L47", "4L41", "3L37"], + headbutt: ["8V", "7V", "4T"], + healingwish: ["9E"], + heatwave: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E", "3S1"], + helpinghand: ["9M"], + hex: ["9M", "8M", "7L26", "7E", "6L26", "6E", "5L28", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + imprison: ["9M", "9L36", "8M", "8L36", "7L39", "6L18", "5L21", "4L21", "3L25"], + incinerate: ["9L16", "8L16", "6M", "5M"], + inferno: ["9L48", "8L48", "7L50", "6L50", "5L44"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + memento: ["9E", "8E"], + mimic: ["7V", "3T"], + mysticalfire: ["8M"], + nastyplot: ["9M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "7L18", "6M", "6L18", "5M", "5L34", "4M", "4L31"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3E"], + quickattack: ["9L8", "8L8", "8V", "7L10", "7V", "6L10", "5L11", "4L11", "3L13", "3S0"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "9E", "8E", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "5D", "4M", "4L7", "3M", "3L9", "3S0"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L44", "8M", "8L44", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L27", "4M", "4L27", "3M", "3L33"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "9L12", "8L12", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["8V"], + tailslap: ["8M", "7E", "6E", "5E"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L5", "3S0"], + takedown: ["9M", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "9L24", "8M", "8L24", "8V", "7M", "7L20", "6M", "6L20", "5M", "5L31", "4M", "4L14", "3L17", "3S0"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 18, gender: "F", nature: "Quirky", ivs: {hp: 15, atk: 6, def: 3, spa: 25, spd: 13, spe: 22}, moves: ["tailwhip", "roar", "quickattack", "willowisp"], pokeball: "pokeball"}, + {generation: 3, level: 18, moves: ["charm", "heatwave", "ember", "dig"]}, + ], + encounters: [ + {generation: 1, level: 18}, + ], + }, + vulpixalola: { + learnset: { + agility: ["9M", "8M", "7E"], + aquatail: ["7T"], + attract: ["8M", "7M"], + aurorabeam: ["9L24", "8L24", "8V", "7L28"], + auroraveil: ["9L44", "8L44", "7M"], + babydolleyes: ["9E", "8E", "7L9", "7S0"], + batonpass: ["9M"], + blizzard: ["9M", "9L52", "8M", "8L56", "8V", "7M", "7L42"], + bodyslam: ["9M", "8M"], + captivate: ["7L47"], + celebrate: ["7S0"], + charm: ["9M", "8M", "7E"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M", "9L20", "8L20", "8V", "7L12"], + covet: ["7T"], + darkpulse: ["9M", "8M", "8V", "7M"], + dazzlinggleam: ["9M", "8V"], + dig: ["9M", "8M", "8V"], + disable: ["9L4", "8L4", "7E"], + disarmingvoice: ["9M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M", "7E"], + endure: ["9M", "8M"], + extrasensory: ["9L28", "8L28", "7L31", "7E"], + facade: ["9M", "8M", "8V", "7M"], + faketears: ["9M"], + feintattack: ["7L23"], + flail: ["9E", "8E", "7E"], + foulplay: ["9M", "8M", "8V", "7T"], + freezedry: ["9L48", "8E", "7E"], + frostbreath: ["7M"], + frustration: ["7M"], + grudge: ["8L52", "7L44"], + hail: ["8M", "7M"], + headbutt: ["8V"], + healbell: ["7T"], + helpinghand: ["9M"], + hex: ["9M", "8M", "7L26"], + hiddenpower: ["7M"], + howl: ["9E", "8E", "7E"], + hypnosis: ["9E", "8E", "7E"], + icebeam: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L36"], + iceshard: ["9L8", "8L8", "8V", "7L10", "7S0"], + iciclespear: ["9M"], + icywind: ["9M", "9L16", "8M", "8L16", "7T", "7L15"], + imprison: ["9M", "9L36", "8M", "8L36", "7L39"], + irontail: ["8M", "8V", "7T"], + mist: ["9L40", "8L40", "8V", "7L20"], + mistyterrain: ["9M"], + moonblast: ["9E", "8E", "7E"], + nastyplot: ["9M"], + painsplit: ["7T"], + payback: ["8M", "7M", "7L18"], + playrough: ["9M"], + powdersnow: ["9L1", "8L1", "7L1", "7S1"], + powerswap: ["8M", "7E"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["7M"], + raindance: ["9M", "8M", "7M"], + reflect: ["8V"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + roar: ["9M", "9E", "8E", "8V", "7M", "7L7"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "7L34"], + secretpower: ["7E"], + sheercold: ["8L48", "7L50"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + spite: ["9M", "9L12", "8L12", "7T", "7E"], + storedpower: ["9M"], + substitute: ["9M", "8M", "8V", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + tackle: ["8V"], + tailslap: ["8M", "7E"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7S0"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["8V", "7M"], + weatherball: ["9M", "8M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["celebrate", "tailwhip", "babydolleyes", "iceshard"], pokeball: "cherishball"}, + {generation: 7, level: 10, gender: "F", nature: "Modest", moves: ["powdersnow"], pokeball: "cherishball"}, + ], + }, + ninetales: { + learnset: { + agility: ["9M", "8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L1", "8L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "6M", "5M", "4M"], + ember: ["9L1", "8L1", "8V", "7V", "5L1", "4L1", "3L1"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "9L1", "8M", "8L1", "7V", "3L45"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5M", "4M", "3M"], + flareblitz: ["9M", "8M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grudge: ["8L1"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "5S0", "4T"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8V"], + imprison: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + incinerate: ["9L1", "8L1", "6M", "5M"], + inferno: ["9L1", "8L1"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + mimic: ["7V", "3T"], + mysticalfire: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["4T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M", "5S0"], + quickattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L1", "8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "5M", "5S0", "4M"], + spite: ["9M", "9L1", "8L1", "7T", "6T", "5T", "4T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["8V"], + tailslap: ["8M"], + tailwhip: ["9L1", "8L1", "8V", "7V"], + takedown: ["9M", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "9L1", "8M", "8L1", "8V", "7M", "6M", "5M", "5S0", "4M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Bold", ivs: {def: 31}, isHidden: true, moves: ["heatwave", "solarbeam", "psyshock", "willowisp"], pokeball: "cherishball"}, + ], + }, + ninetalesalola: { + learnset: { + agility: ["9M", "8M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + aurorabeam: ["9L1", "8L1"], + auroraveil: ["9L1", "8L1", "7M"], + avalanche: ["9M", "8M"], + batonpass: ["9M"], + blizzard: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + bodyslam: ["9M", "8M"], + calmmind: ["9M", "8M", "8V", "7M"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M", "9L1", "8L1", "7L1"], + covet: ["7T"], + darkpulse: ["9M", "8M", "8V", "7M"], + dazzlinggleam: ["9M", "9L0", "8M", "8L0", "8V", "7M", "7L1"], + dig: ["9M", "8M", "8V"], + disable: ["9L1", "8L1"], + disarmingvoice: ["9M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + dreameater: ["8V", "7M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "8V", "7M"], + faketears: ["9M", "8M"], + foulplay: ["9M", "8M", "8V", "7T"], + freezedry: ["9L1"], + frostbreath: ["7M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M", "7M"], + grudge: ["8L1"], + hail: ["8M", "7M"], + headbutt: ["8V"], + healbell: ["7T"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + hypnosis: ["8V"], + icebeam: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1"], + iceshard: ["9L1", "8L1", "8V", "7L1"], + iciclespear: ["9M"], + icywind: ["9M", "9L1", "8M", "8L1", "7T"], + imprison: ["9M", "9L1", "8M", "8L1", "7L1"], + irontail: ["8M", "8V", "7T"], + laserfocus: ["7T"], + mist: ["9L1", "8L1", "8V"], + mistyterrain: ["9M", "8M"], + nastyplot: ["9M", "9L1", "8M", "8L1", "8V", "7L1"], + painsplit: ["7T"], + payback: ["8M", "7M"], + playrough: ["9M"], + powdersnow: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["7M"], + psyshock: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + reflect: ["8V"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + roar: ["9M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "7L1"], + sheercold: ["8L1"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + solarbeam: ["8M"], + spite: ["9M", "9L1", "8L1", "7T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "8V", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + tackle: ["8V"], + tailslap: ["8M"], + tailwhip: ["9L1", "8L1", "8V"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["8V", "7M"], + tripleaxel: ["8T"], + weatherball: ["9M", "8M"], + wonderroom: ["8M", "7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + igglybuff: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + captivate: ["7E", "6E", "5E", "4M"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L11", "6L11", "5L17", "4L17"], + counter: ["3T"], + covet: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["7V"], + dazzlinggleam: ["9M"], + defensecurl: ["9L4", "8L4", "7L3", "7V", "6L3", "5L5", "4L5", "3T", "3L4", "3S0"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disable: ["9L16", "8L16"], + disarmingvoice: ["9M", "9L12", "8L12"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healpulse: ["9E", "8E", "7E", "6E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lastresort: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mistyterrain: ["9M", "8M", "7E", "6E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + perishsong: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L5", "7V", "6L5", "5L9", "4L9", "3L9"], + present: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + punishment: ["7E", "6E", "5E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["9E", "8E", "7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L8", "8L8", "7L9", "7V", "6L9", "5L13", "4L13", "3L14"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["3S0"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["sing", "charm", "defensecurl", "tickle"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + jigglypuff: { + learnset: { + allyswitch: ["8M", "7T"], + amnesia: ["9M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bide: ["8V", "7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L24", "8M", "8L24", "8V", "7L32", "7V", "6L33", "5L33", "4L29", "3T", "3L34"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["9M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["7V", "3T"], + covet: ["9L8", "8L8", "7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["9M"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7L3", "7V", "6L3", "5L5", "4L5", "3T", "3L4"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L1", "8L1", "8V", "7L14", "7V", "6L13", "5L13", "4L13", "3L14"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["9L44", "8L44", "8V", "7L45", "7V", "6L49", "5L53", "4L49", "3T", "3L49"], + doubleslap: ["8V", "7L17", "7V", "6L18", "5L25", "4L21", "3L24"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["9L4", "8L4", "7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L32", "8M", "8L32", "7M", "7L35", "6M", "6L37", "5M", "5L37", "4M", "4L33"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L36", "8M", "8L36", "7T", "7L41", "6T", "6L44", "5T", "5L49", "4L45", "3L44"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["9L28", "8L28", "8V", "7L38", "7V", "6L37", "5L45", "4L41", "3T", "3L39"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + playnice: ["7L9", "6L8"], + playrough: ["9M", "8M", "8L40", "8V"], + pound: ["9L1", "8L1", "8V", "7L5", "7V", "6L5", "5L9", "4L9", "3L9"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L30", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L25", "3M", "3L29"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7L20", "7V", "6L21", "5L21", "4T", "4L17", "3T", "3L19"], + round: ["9L16", "8M", "8L16", "7M", "7L22", "6M", "6L17", "5M", "5L17"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spitup: ["9L12", "8L12", "7L25"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stockpile: ["9L12", "8L12", "7L25"], + storedpower: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L12", "8L12", "7L25"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + uproar: ["9M", "8M"], + wakeupslap: ["7L27", "6L28", "5L41", "4L37"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 3}, + {generation: 3, level: 3}, + ], + }, + wigglytuff: { + learnset: { + allyswitch: ["8M", "7T"], + amnesia: ["9M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bide: ["8V", "7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L1", "8M", "8L1", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["9M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["7V", "3T"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["9M"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleedge: ["9L1", "8L1", "7L1", "7V", "6L1", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["9L1", "8L1", "7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["9L1", "8L1", "7V", "3T"], + minimize: ["8V"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + playrough: ["9M", "9L5", "8M", "8L1", "8V", "7L1", "6L1"], + pound: ["9L1", "8L1", "8V"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["9L1", "8M", "8L1", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spitup: ["9L1", "8L1"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stockpile: ["9L1", "8L1"], + storedpower: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L1", "8L1"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + uproar: ["9M", "8M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 1, level: 22}, + ], + }, + zubat: { + learnset: { + absorb: ["8L1", "8V", "7L1"], + acrobatics: ["8M", "7M", "6M", "6L30", "5M", "5L33"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + aircutter: ["8L25", "7L19", "6L19", "5L25", "4T", "4L25", "3L31"], + airslash: ["8M", "8L50", "8V", "7L41", "6L41", "5L45", "4L41"], + assurance: ["8M"], + astonish: ["8L5", "7L7", "6L7", "5L9", "4L9", "3L6"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8L30", "8V", "7L11", "7V", "6L11", "5L13", "4L13", "3L16"], + bravebird: ["8M", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L45", "8V", "7L17", "7V", "6L17", "5L21", "4L21", "3L26"], + crunch: ["8M"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defog: ["8E", "7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fly: ["8M", "8V", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + gust: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["8L35", "8V", "7L35", "7V", "6L35", "5L41", "4L37", "3L46"], + headbutt: ["8V"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8E", "7E", "6E", "5E", "5D", "4E"], + leechlife: ["8M", "8L55", "8V", "7M", "7L31", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L10", "7L29", "7V", "6L29", "5L29", "4L29", "3L36"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + poisonfang: ["8L15", "7L25", "6L25", "5L37", "4L33", "3L41"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + quickguard: ["8L20", "7L43", "6L43"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "5D", "4T"], + supersonic: ["8L1", "8V", "7L5", "7V", "6L4", "5L5", "5D", "4L5", "3L6"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8V", "7L23", "7V", "6L23", "5L24", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["8M", "8L40", "7M", "7L37", "6M", "6L37", "5M"], + whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["8E", "8V", "7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + encounters: [ + {generation: 1, level: 6}, + {generation: 2, level: 2}, + ], + }, + golbat: { + learnset: { + absorb: ["8L1", "8V", "7L1"], + acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L39"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + aircutter: ["8L27", "7L19", "6L19", "5L27", "4T", "4L27", "3L35"], + airslash: ["8M", "8L62", "8V", "7L48", "6L48", "5L57", "4L51"], + assurance: ["8M"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8L34", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L16"], + bravebird: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L55", "8V", "7L17", "7V", "6L17", "5L21", "4L21", "3L28"], + crunch: ["8M", "8V"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "8V", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + haze: ["8L41", "8V", "7L40", "7V", "6L40", "5L51", "4L45", "3L56"], + headbutt: ["8V"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + leechlife: ["8M", "8L69", "8V", "7M", "7L35", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L1", "7L32", "7V", "6L32", "5L33", "4L33", "3L42"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + poisonfang: ["8L15", "7L27", "6L27", "5L45", "4L39", "3L49"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V"], + quickguard: ["8L20", "7L51", "6L51"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + supersonic: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8V", "7L24", "7V", "6L24", "5L24", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + venomdrench: ["8M"], + venoshock: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M"], + whirlwind: ["8V", "7V"], + wingattack: ["8V", "7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 2, level: 13}, + {generation: 3, level: 5}, + {generation: 4, level: 10}, + {generation: 6, level: 19, maxEggMoves: 1}, + {generation: 7, level: 20}, + ], + }, + crobat: { + learnset: { + absorb: ["8L1", "7L1"], + acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L39"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + aircutter: ["8L27", "7L19", "6L19", "5L27", "4T", "4L27", "3L35"], + airslash: ["8M", "8L62", "7L48", "7S1", "6L48", "5L57", "4L51", "4S0"], + assurance: ["8M"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["8L34", "7L1", "7V", "6L1", "5L13", "4L13", "3L16"], + bravebird: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L55", "7L17", "7V", "6L17", "5L21", "4L21", "3L28"], + crosspoison: ["8M", "8L0", "7L1", "6L1", "5L1", "4L1"], + crunch: ["8M"], + curse: ["7V"], + darkpulse: ["8M", "7M", "7S1", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + haze: ["8L41", "7L40", "7V", "6L40", "5L51", "4L45", "3L56"], + heatwave: ["8M", "7T", "6T", "5T", "4T", "4S0"], + hex: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + leechlife: ["8M", "8L69", "7M", "7L35", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L1", "7L32", "7V", "6L32", "5L33", "4L33", "3L42"], + mimic: ["3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + poisonfang: ["8L15", "7L27", "6L27", "5L45", "4L39", "3L49"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickguard: ["8L20", "7L51", "6L51"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "7S1", "6M", "5M", "4M", "4S0", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T", "4S0"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7L24", "7V", "6L24", "5L24", "4T", "3T"], + tailwind: ["8L1", "7T", "6T", "5T", "4T"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L1", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + venomdrench: ["8M"], + venoshock: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M"], + wingattack: ["7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 30, gender: "M", nature: "Timid", moves: ["heatwave", "airslash", "sludgebomb", "superfang"], pokeball: "cherishball"}, + {generation: 7, level: 64, gender: "M", moves: ["airslash", "toxic", "darkpulse", "sludgebomb"], pokeball: "cherishball"}, + ], + }, + oddish: { + learnset: { + absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + acid: ["8L4", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L23", "3S0"], + afteryou: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L20", "7T", "7L31", "7V", "6T", "6L31", "5T", "5L37", "5D", "4M", "4L37", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L32", "7L47", "6L45"], + growth: ["8L1", "8V", "7L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8E", "7E", "6E", "5E", "4E", "3E"], + leechseed: ["8E", "3S1"], + luckychant: ["7L23", "6L23", "5L25", "4L25"], + megadrain: ["8L12", "8V", "7L19", "7V", "6L19", "5L21", "4L21"], + mimic: ["7V", "3T"], + moonblast: ["8L28", "8V", "7L43", "6L43"], + moonlight: ["8L36", "7L27", "7V", "6L27", "5L33", "4L33", "3L32"], + naturalgift: ["7L39", "6L29", "5L29", "4M", "4L29"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E"], + petaldance: ["8L40", "7L51", "7V", "6L41", "5L41", "4L41", "3L39"], + poisonpowder: ["8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L14", "3S0"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + strengthsap: ["8E", "7E"], + stunspore: ["8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16", "3S0"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L8", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L7"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + synthesis: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + takedown: ["7V"], + teeterdance: ["8E", "7E", "6E", "5E", "5D", "4E"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["8L24", "8V", "7M", "7L35", "7V", "6M", "6L35", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 26, gender: "M", nature: "Quirky", ivs: {hp: 23, atk: 24, def: 20, spa: 21, spd: 9, spe: 16}, moves: ["poisonpowder", "stunspore", "sleeppowder", "acid"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["absorb", "leechseed"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 12}, + ], + }, + gloom: { + learnset: { + absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + acid: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L24", "3S0"], + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L20", "7T", "7L34", "7V", "6T", "6L34", "5T", "5L47", "4M", "4L47", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L38", "7L54", "6L54"], + growth: ["8L1", "8V", "7L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + luckychant: ["7L24", "6L24", "5L29", "4L29"], + megadrain: ["8L12", "8V", "7L19", "7V", "6L19", "5L23", "4L23"], + mimic: ["7V", "3T"], + moonblast: ["8L32", "8V"], + moonlight: ["8L44", "7L29", "7V", "6L29", "5L41", "4L41", "3L35", "3S0"], + naturalgift: ["7L44", "6L35", "5L35", "4M", "4L35"], + naturepower: ["7M", "6M"], + petalblizzard: ["7L49", "6L49"], + petaldance: ["8L50", "7L59", "7V", "6L53", "5L53", "4L53", "3L44", "3S0"], + poisonpowder: ["8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stunspore: ["8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + toxic: ["8L26", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["sleeppowder", "acid", "moonlight", "petaldance"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 2, level: 14}, + {generation: 4, level: 14}, + {generation: 6, level: 18, maxEggMoves: 1}, + ], + }, + vileplume: { + learnset: { + absorb: ["8L1", "8V", "7V", "3L1"], + acid: ["8L1", "8V", "7V"], + afteryou: ["7T", "6T", "5T"], + aromatherapy: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L1"], + growth: ["8L1", "8V"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + megadrain: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + moonblast: ["8L1"], + moonlight: ["8L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L0", "7L49", "6L49"], + petaldance: ["8L1", "8V", "7L59", "7V", "6L53", "5L53", "4L53", "3L44"], + poisonpowder: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + pollenpuff: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L1", "7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7L69", "7V", "6M", "6L64", "5M", "5L65", "4M", "4L65", "3M"], + stunspore: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L1", "7V"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + toxic: ["8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + bellossom: { + learnset: { + absorb: ["8L1", "7V", "3L1"], + acid: ["8L1"], + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L1"], + growth: ["8L1"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + leafblade: ["8M", "7L1", "6L1", "5L1", "4L1"], + leafstorm: ["8M", "7L1", "6L1", "5L53", "4L53"], + magicalleaf: ["8M", "7L1", "6L23", "5L23", "4L23", "3L1"], + megadrain: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mimic: ["3T"], + moonblast: ["8L1"], + moonlight: ["8L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L0", "7L49", "6L49"], + petaldance: ["8L1", "7L59", "7V", "3L44"], + playrough: ["8M"], + poisonpowder: ["8L1"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quiverdance: ["8L1", "7L39"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L1"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3L55"], + stunspore: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + toxic: ["8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + paras: { + learnset: { + absorb: ["8V", "7L11"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + agility: ["7E", "6E", "5E", "4E"], + aromatherapy: ["7L43", "6L43", "5L43", "4L38", "3L49"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + brickbreak: ["8V", "7M", "6M", "5M", "4M"], + bugbite: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crosspoison: ["7E", "6E", "5E", "5D", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "7V", "6M", "5M", "4M", "4E", "3E", "3S0"], + fellstinger: ["7E", "6E"], + flail: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7L17", "7V", "6L17", "5L17", "4T", "3T"], + furyswipes: ["8V"], + gigadrain: ["7T", "7L38", "7V", "6T", "6L38", "5T", "5L38", "4M", "4L33", "3M", "3L43"], + grassknot: ["7M", "6M", "5M", "4M"], + grassyterrain: ["7E"], + growth: ["8V", "7L33", "7V", "6L33", "5L33", "4L27", "3L37"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8V", "7M", "7V", "6L11", "5L11", "4L11", "3L19"], + leechseed: ["7E", "6E", "5E"], + lightscreen: ["8V", "7M", "7V", "6M", "5M", "4E", "3E"], + megadrain: ["8V", "7V"], + metalclaw: ["7E", "6E", "5E", "4E"], + mimic: ["7V", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + poisonpowder: ["8V", "7L6", "7V", "6L6", "5L6", "4L6", "3L13"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["7E", "7V", "6E", "5E", "4E", "3E"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + ragepowder: ["7L49", "6L49", "5L49"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rototiller: ["7E", "6E"], + round: ["7M", "6M", "5M"], + scratch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slash: ["8V", "7L27", "7V", "6L27", "5L27", "4L22", "3L31", "3S0"], + sleeppowder: ["8V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spore: ["8V", "7L22", "7V", "6L22", "5L22", "4L17", "3L25", "3S0"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + stunspore: ["8V", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L7"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7E", "7V", "6E", "5E", "4E", "3E"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "5D", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + wideguard: ["7E", "6E"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8V", "7M", "7L54", "6M", "6L54", "5M", "5L54", "4M", "4L43"], + }, + eventData: [ + {generation: 3, level: 28, abilities: ["effectspore"], moves: ["refresh", "spore", "slash", "falseswipe"]}, + ], + encounters: [ + {generation: 1, level: 8}, + ], + }, + parasect: { + learnset: { + absorb: ["8V", "7L1"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + aromatherapy: ["7L51", "6L51", "5L51", "4L47", "3L59"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + brickbreak: ["8V", "7M", "6M", "5M", "4M"], + bugbite: ["7T", "6T", "5T", "4T"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crosspoison: ["7L1", "6L1", "5L1", "4L1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "6M", "5M", "4M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7L17", "7V", "6L17", "5L17", "4T", "3T"], + furyswipes: ["8V"], + gigadrain: ["7T", "7L44", "7V", "6T", "6L44", "5T", "5L44", "4M", "4L39", "3M", "3L51"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growth: ["8V", "7L37", "7V", "6L37", "5L37", "4L30", "3L43"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8V", "7M", "7V", "6L1", "5L1", "4L1", "3L19"], + leechseed: ["8V"], + lightscreen: ["8V", "7M", "6M", "5M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poisonpowder: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + ragepowder: ["7L59", "6L59", "5L59"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scratch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8V"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slash: ["8V", "7L29", "7V", "6L29", "5L29", "4L22", "3L35"], + sleeppowder: ["8V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spore: ["8V", "7L22", "7V", "6L22", "5L22", "4L17", "3L27"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + stunspore: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8V", "7M", "7L66", "6M", "6L66", "5M", "5L66", "4M", "4L55"], + }, + encounters: [ + {generation: 1, level: 13}, + {generation: 2, level: 5}, + ], + }, + venonat: { + learnset: { + acidspray: ["9M"], + agility: ["9M", "9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + bugbite: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbuzz: ["9M", "9L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L11", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L17"], + curse: ["7V"], + disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "4E", "3M", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leechlife: ["9M", "9L35", "8V", "7M", "7L35", "7V", "6L17", "5L17", "4L17", "3L25"], + lunge: ["9M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + morningsun: ["9E", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightshade: ["9M"], + poisonfang: ["9L41", "7L41", "6L41", "5L41", "4L41"], + poisonpowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L20"], + pounce: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L17", "8V", "7L17", "7V", "6L25", "5L25", "4L25", "3L33"], + psychic: ["9M", "9L47", "8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L41"], + psywave: ["7V"], + rage: ["7V"], + ragepowder: ["9E", "7E", "6E", "5E"], + reflect: ["8V", "7V"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + screech: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + signalbeam: ["7T", "7L25", "7E", "6T", "6L35", "6E", "5T", "5L35", "5E", "4T", "4L35", "4E", "3E"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + sleeppowder: ["9L29", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L36"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + stunspore: ["9L23", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L28"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9L5", "8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L9"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9E", "7E", "6E", "5E", "4E"], + venoshock: ["9M", "9E", "7M", "6M", "5M"], + zenheadbutt: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + }, + encounters: [ + {generation: 1, level: 13}, + ], + }, + venomoth: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8V"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L0"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bide: ["7V"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L25", "8V", "7L1", "6L1", "5L59", "4L59"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L11", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L17"], + curse: ["7V"], + defog: ["7T", "4M"], + disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gust: ["8V", "7L1", "7V", "6L31", "5L31", "4L31", "3L31"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leechlife: ["9M", "9L37", "8V", "7M", "7L37", "7V", "6L17", "5L17", "4L17", "3L25"], + lunge: ["9M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["4T"], + poisonfang: ["9L47", "7L47", "6L47", "5L47", "4L47"], + poisonpowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L20"], + pounce: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L17", "8V", "7L17", "7V", "6L25", "5L25", "4L25", "3L36"], + psychic: ["9M", "9L55", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L55", "3M", "3L52", "3S0"], + psywave: ["7V"], + quiverdance: ["9L1", "8V", "7L1", "6L1", "5L63"], + rage: ["7V"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + screech: ["8V"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7L25", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + silverwind: ["7L1", "6L1", "5L1", "4M", "4L1", "3L1", "3S0"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeppowder: ["9L29", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L42"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + stunspore: ["9L23", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L28"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T", "3S0"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + twister: ["4T"], + uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], + venoshock: ["9M", "7M", "6M", "5M"], + whirlwind: ["7V"], + zenheadbutt: ["9M", "9L41", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + }, + eventData: [ + {generation: 3, level: 32, abilities: ["shielddust"], moves: ["refresh", "silverwind", "substitute", "psychic"]}, + ], + encounters: [ + {generation: 1, level: 30}, + {generation: 2, level: 10}, + {generation: 4, level: 8}, + {generation: 6, level: 30}, + ], + }, + diglett: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + assurance: ["8M"], + astonish: ["9L8", "8L8", "7L7", "7E", "6L7", "6E", "5L7", "5E", "4L7", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18", "6M", "6L18", "5M", "5L18"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "9L32", "8M", "8L32", "8V", "7L31", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L18", "3M", "3L17"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L36", "8M", "8L36", "7T", "7L28", "6T", "6L29", "5T", "5L29", "4T", "4L26"], + earthquake: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L39", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L37", "3M", "3L41"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + finalgambit: ["9E", "8E", "7E", "6E", "5E"], + fissure: ["9L44", "8L44", "8V", "7L43", "7V", "6L45", "5L45", "4L40", "3L49"], + foulplay: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8V", "3L21"], + growl: ["9L4", "8L4", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L5"], + headbutt: ["9E", "8E", "8V", "7E", "6E", "5E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["9E", "8E", "6M", "5M"], + magnitude: ["7L14", "7V", "6L15", "5L15", "4L12", "3L9"], + memento: ["9E", "8E", "7E", "6E", "5E"], + mimic: ["7V", "3T"], + mudbomb: ["7L25", "7E", "6L26", "6E", "5L26", "5E", "4L29", "4E"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10", "7V", "6L12", "5L12", "4T", "4L15", "3T", "3L25"], + naturalgift: ["4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M", "7E", "6E", "5E", "4E"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + sandstorm: ["9M", "9L28", "8M", "8L28", "7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L24", "8L24", "8V", "7L35", "7V", "6L37", "5L37", "4L34", "3L33"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + smackdown: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L20", "8L20", "8V", "7L22", "6L23", "5L23", "4T", "4L23"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["9M", "8M", "7E", "6E", "5T", "5E", "4E", "3E"], + workup: ["8M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 2}, + ], + }, + diglettalola: { + learnset: { + aerialace: ["7M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + ancientpower: ["9E", "8E", "7E"], + assurance: ["8M"], + astonish: ["9L8", "8L8", "7L7", "7S0"], + attract: ["8M", "7M"], + beatup: ["8M", "7E"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18"], + charm: ["9M"], + confide: ["7M"], + dig: ["9M", "9L32", "8M", "8L32", "8V", "7L31"], + doubleteam: ["7M"], + earthpower: ["9M", "9L36", "8M", "8L36", "7T", "7L28"], + earthquake: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L39"], + echoedvoice: ["7M"], + endure: ["9M", "8M", "7E"], + facade: ["9M", "8M", "8V", "7M"], + feintattack: ["7E"], + finalgambit: ["9E", "8E", "7E"], + fissure: ["9L44", "8L44", "8V", "7L43"], + flashcannon: ["9M", "8M", "8V", "7M"], + foulplay: ["9M"], + frustration: ["7M"], + furyswipes: ["8V"], + growl: ["9L4", "8L4", "8V", "7L4", "7S0"], + headbutt: ["9E", "8E", "8V", "7E"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + honeclaws: ["9E", "8E"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "9L24", "8M", "8L24", "7T", "7L35"], + magnitude: ["7L14"], + memento: ["9E", "8E", "7E"], + metalclaw: ["9M", "9L1", "8L1", "7L1", "7S0"], + metalsound: ["9E", "8E", "7E"], + mudbomb: ["7L25"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10", "7S0"], + protect: ["9M", "8M", "8V", "7M"], + pursuit: ["7E"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + reversal: ["9M", "8M", "7E"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "8V", "7L1"], + sandstorm: ["9M", "9L28", "8M", "8L28", "7M"], + sandtomb: ["9M"], + scaryface: ["9M"], + scorchingsands: ["8T"], + scratch: ["8V"], + screech: ["8M"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["8V"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "8V", "7M"], + smackdown: ["9M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8V", "7T"], + steelbeam: ["9M", "8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "8V", "7M"], + suckerpunch: ["9L20", "8L20", "8V", "7L22"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thrash: ["9E", "8E", "7E"], + toxic: ["8V", "7M"], + uproar: ["8M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 10, abilities: ["tanglinghair"], moves: ["mudslap", "astonish", "growl", "metalclaw"], pokeball: "cherishball"}, + ], + }, + dugtrio: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L7", "6L7", "5L7", "4L7"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18", "6M", "6L18", "5M", "5L18"], + captivate: ["4M"], + charm: ["9M", "3S0"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "9L36", "8M", "8L36", "8V", "7L35", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L18", "3M", "3L17"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L42", "8M", "8L42", "7T", "7L30", "6T", "6L33", "5T", "5L33", "4T", "4L28"], + earthquake: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L47", "7V", "6M", "6L50", "5M", "5L50", "4M", "4L45", "3M", "3L51", "3S0"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9L54", "8L54", "8V", "7L53", "7V", "6L57", "5L57", "4L50", "3L64"], + foulplay: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8V", "3L21"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + magnitude: ["7L14", "7V", "6L15", "5L15", "4L12", "3L9"], + mimic: ["7V", "3T"], + mudbomb: ["7L25", "6L28", "5L28", "4L33"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10", "7V", "6L12", "5L12", "4T", "4L15", "3T", "3L25"], + naturalgift: ["4M"], + nightslash: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["9M", "9L30", "8M", "8L30", "7M", "6M", "5M", "4M", "3S0"], + sandtomb: ["9M", "9L0", "8M", "8L0", "7L1", "6L26", "5L26", "4L26", "3L26"], + scaryface: ["9M"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L24", "8L24", "8V", "7L41", "7V", "6L45", "5L45", "4L40", "3L38"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L20", "8L20", "8V", "7L22", "6L23", "5L23", "4T", "4L23"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["9L1", "8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + uproar: ["9M", "8M", "5T"], + workup: ["8M"], + }, + eventData: [ + {generation: 3, level: 40, moves: ["charm", "earthquake", "sandstorm", "triattack"]}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 5}, + {generation: 4, level: 19}, + ], + }, + dugtrioalola: { + learnset: { + aerialace: ["7M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L7"], + attract: ["8M", "7M"], + beatup: ["8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18"], + charm: ["9M"], + confide: ["7M"], + dig: ["9M", "9L36", "8M", "8L36", "8V", "7L35"], + doubleteam: ["7M"], + earthpower: ["9M", "9L42", "8M", "8L42", "7T", "7L30"], + earthquake: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L47"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + fissure: ["9L54", "8L54", "8V", "7L53"], + flashcannon: ["9M", "8M", "8V", "7M"], + foulplay: ["9M"], + frustration: ["7M"], + furyswipes: ["8V"], + gigaimpact: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "8V", "7L1"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "9L24", "8M", "8L24", "7T", "7L41"], + magnitude: ["7L14"], + metalclaw: ["9M", "9L1", "8L1", "7L1"], + mudbomb: ["7L25"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10"], + nightslash: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "8V", "7M"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M", "7M"], + rototiller: ["7L1"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "8V", "7L1"], + sandstorm: ["9M", "9L30", "8M", "8L30", "7M"], + sandtomb: ["9M", "9L0", "8M", "8L0", "7L1"], + scaryface: ["9M"], + scorchingsands: ["8T"], + scratch: ["8V"], + screech: ["8M", "8V"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["8V"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "8V", "7M"], + sludgewave: ["8M", "7M"], + smackdown: ["9M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8V", "7T"], + steelbeam: ["9M", "8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "8V", "7M"], + suckerpunch: ["9L20", "8L20", "8V", "7L22"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + toxic: ["8V", "7M"], + triattack: ["9L1", "8M", "8L1", "8V", "7L1"], + uproar: ["9M", "8M"], + workup: ["8M", "7M"], + }, + }, + meowth: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + amnesia: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + assist: ["7E", "6E", "5E", "4E", "4S5", "3E"], + assurance: ["9L24", "8M", "8L24", "7L41", "6L41", "5L41", "4L41"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L16", "8L16", "8V", "7L6", "7V", "6L6", "6S7", "5L6", "4L6", "4S4", "3L10", "3S2", "3S3"], + bodyslam: ["9M", "8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L46", "6L46", "5L46", "4M", "4L46"], + charm: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["9E", "8E", "7T", "6T", "5T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "8V", "7L9", "6L9", "6S7", "5L9", "4L9", "4S4", "4S5", "3L43"], + faketears: ["9M"], + falseswipe: ["9M"], + feint: ["9L4", "8L4", "8V", "7L50", "6L50", "5L54", "4L54"], + feintattack: ["7L22", "7V", "6L22", "5L22", "4L22", "3L25"], + flail: ["9E", "8E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L29", "8L29", "8V", "7L14", "7V", "6L14", "5L14", "5S6", "4L14", "4S4", "3L36"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + happyhour: ["6S7"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + lastresort: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + metalclaw: ["9M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L40", "8M", "8L40", "8V", "7L38", "6L38", "5L38", "5S6", "4L38"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightslash: ["7L49", "6L49", "5L49", "4L49"], + odorsleuth: ["7E", "6E", "5E", "4E"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["9L12", "8M", "8L12", "8V", "7L30", "7V", "6L30", "5L30", "4L30", "4S5", "3L18", "3S3"], + petaldance: ["3S0"], + playrough: ["9M", "9L44", "8M", "8L44", "8V"], + powergem: ["9M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + punishment: ["7E", "6E", "5E", "4E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["9L8", "8L8", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "4S5", "3L1", "3S0", "3S1", "3S2"], + screech: ["9L32", "8M", "8L32", "8V", "7L17", "7V", "6L17", "6S7", "5L17", "4L17", "4S4", "3L31"], + secretpower: ["6M", "5D", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["5S6", "3S3"], + skullbash: ["7V"], + slash: ["9L36", "8L36", "8V", "7L33", "7V", "6L33", "5L33", "4L33", "3L40", "3S3"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "5S6", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T", "3L45"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9E", "8E", "7E", "6E", "5E", "4E"], + takedown: ["9M", "7V"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["scratch", "growl", "petaldance"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["scratch", "growl"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["scratch", "growl", "bite"], pokeball: "pokeball"}, + {generation: 3, level: 22, moves: ["sing", "slash", "payday", "bite"]}, + {generation: 4, level: 21, gender: "F", nature: "Jolly", abilities: ["pickup"], moves: ["bite", "fakeout", "furyswipes", "screech"], pokeball: "cherishball"}, + {generation: 4, level: 10, gender: "M", nature: "Jolly", abilities: ["pickup"], moves: ["fakeout", "payday", "assist", "scratch"], pokeball: "cherishball"}, + {generation: 5, level: 15, gender: "M", abilities: ["pickup"], moves: ["furyswipes", "sing", "nastyplot", "snatch"], pokeball: "cherishball"}, + {generation: 6, level: 20, abilities: ["pickup"], moves: ["happyhour", "screech", "bite", "fakeout"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 10}, + {generation: 3, level: 3, gender: "M", nature: "Naive", ivs: {hp: 4, atk: 5, def: 4, spa: 5, spd: 4, spe: 4}, abilities: ["pickup"], pokeball: "pokeball"}, + ], + }, + meowthalola: { + learnset: { + aerialace: ["9M", "7M"], + agility: ["9M"], + amnesia: ["9M", "8M", "7E"], + assist: ["7E"], + assurance: ["9L24", "8M", "8L24", "7L41"], + attract: ["8M", "7M"], + bite: ["9L16", "8L16", "8V", "7L6"], + bodyslam: ["9M", "8M"], + captivate: ["7L46"], + charm: ["9M", "8M", "7E"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + covet: ["9E", "8E", "7T", "7E"], + darkpulse: ["9M", "8M", "8V", "7M", "7L55"], + dig: ["9M", "8M"], + doubleteam: ["7M"], + dreameater: ["8V", "7M"], + echoedvoice: ["7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + fakeout: ["9L1", "8L1", "8V", "7L9"], + faketears: ["9M"], + feint: ["9L4", "8L4", "8V", "7L50"], + feintattack: ["7L22"], + flail: ["9E", "8E", "7E"], + flatter: ["9E", "8E", "7E"], + foulplay: ["9M", "8M", "8V", "7T", "7E"], + frustration: ["7M"], + furyswipes: ["9L29", "8L29", "8V", "7L14"], + growl: ["9L1", "8L1", "8V", "7L1"], + gunkshot: ["9M", "8M", "7T"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hypervoice: ["9M", "8M", "7T"], + hypnosis: ["9E", "8E", "7E"], + icywind: ["9M", "8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["9M", "7T"], + lashout: ["9M", "8T"], + lastresort: ["7T"], + metalclaw: ["9M"], + nastyplot: ["9M", "9L40", "8M", "8L40", "8V", "7L38"], + nightslash: ["9L36", "8L36", "7L49"], + partingshot: ["9E", "8E", "7E"], + payback: ["8M", "7M"], + payday: ["9L12", "8M", "8L12", "8V", "7L30"], + playrough: ["9M", "9L44", "8M", "8L44", "8V"], + powergem: ["9M"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["7M"], + punishment: ["7E"], + quash: ["7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "8V", "7M"], + retaliate: ["8M"], + return: ["7M"], + round: ["8M", "7M"], + scratch: ["9L8", "8L8", "8V", "7L1"], + screech: ["9L32", "8M", "8L32", "8V", "7L17"], + seedbomb: ["9M", "8M", "7T"], + shadowball: ["9M", "8M", "8V", "7M"], + shadowclaw: ["9M", "8M", "7M"], + shockwave: ["7T"], + slash: ["8V", "7L33"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M"], + snatch: ["7T", "7E"], + snore: ["8M", "7T"], + spite: ["9M", "9E", "8E", "7T", "7E"], + substitute: ["9M", "8M", "8V", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M"], + thunderbolt: ["9M", "8M", "8V", "7M"], + thunderwave: ["9M"], + torment: ["7M"], + toxic: ["8V", "7M"], + trailblaze: ["9M"], + uproar: ["8M", "7T"], + uturn: ["9M", "8M", "8V", "7M"], + waterpulse: ["7T"], + workup: ["8M", "7M"], + }, + }, + meowthgalar: { + learnset: { + aerialace: ["9M"], + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M"], + charm: ["9M"], + covet: ["9E", "8E"], + crunch: ["9M", "8M"], + curse: ["9E", "8E"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + doubleedge: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1", "8S0"], + faketears: ["9M"], + falseswipe: ["9M"], + flail: ["9E", "8E"], + flashcannon: ["9M"], + fling: ["9M"], + foulplay: ["9M", "8M"], + furyswipes: ["9L29", "8L29"], + growl: ["9L1", "8L1", "8S0"], + gunkshot: ["9M", "8M"], + gyroball: ["9M", "8M"], + helpinghand: ["9M"], + honeclaws: ["9L4", "8L4", "8S0"], + hypervoice: ["9M", "8M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + irontail: ["8M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + metalclaw: ["9M", "9L16", "8L16"], + metalsound: ["9L40", "8L40"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + nightslash: ["9E", "8E"], + payback: ["8M"], + payday: ["9L12", "8M", "8L12", "8S0"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + round: ["8M"], + scratch: ["9L8", "8L8"], + screech: ["9L32", "8M", "8L32"], + seedbomb: ["9M", "8M"], + shadowball: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + slash: ["9L36", "8L36"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9M", "9E", "8E"], + stealthrock: ["9M"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swagger: ["9L24", "8L24"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L44", "8L44"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + xscissor: ["9M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["fakeout", "growl", "honeclaws", "payday"], pokeball: "cherishball"}, + ], + }, + persian: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + amnesia: ["9M", "8M", "8V"], + assurance: ["9L24", "8M", "8L24", "7L49", "6L49", "5L49", "4L49"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L16", "8L16", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L56", "6L56", "5L56", "4M", "4L56"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L55"], + faketears: ["9M"], + falseswipe: ["9M"], + feint: ["9L1", "8L1", "8V", "7L65", "6L65", "5L68", "4L68"], + feintattack: ["7L22", "7V", "6L22", "5L22", "4L22", "3L25"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L31", "8L31", "8V", "7L14", "7V", "6L14", "5L14", "4L14", "3L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["8V"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + lastresort: ["7T", "6T", "5T", "4T"], + metalclaw: ["9M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L48", "8M", "8L48", "8V", "7L44", "6L44", "5L44", "4L44"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightslash: ["7L61", "6L61", "5L61", "4L61"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["9L12", "8M", "8L12", "8V", "7V", "3L18"], + playrough: ["9M", "9L54", "8M", "8L54", "8V", "7L1", "6L1"], + powergem: ["9M", "9L0", "8M", "8L0", "7L32", "6L32", "5L32", "4L32"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L36", "8M", "8L36", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L34"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skittersmack: ["8T"], + skullbash: ["7V"], + slash: ["9L42", "8L42", "8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L49"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T", "3L61"], + swift: ["9M", "8M", "8V", "7L1", "7V", "6L28", "5L28", "4T", "3T"], + switcheroo: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "7V"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 18}, + {generation: 4, level: 19}, + ], + }, + persianalola: { + learnset: { + aerialace: ["9M", "7M"], + agility: ["9M"], + amnesia: ["9M", "8M", "8V"], + assurance: ["9L24", "8M", "8L24", "7L49"], + attract: ["8M", "7M"], + beatup: ["8M"], + bite: ["9L16", "8L16", "8V", "7L1"], + bodyslam: ["9M", "8M"], + burningjealousy: ["9M", "8T"], + captivate: ["7L56"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + covet: ["7T"], + darkpulse: ["9M", "8M", "8V", "7M", "7L69"], + dig: ["9M", "8M"], + doubleteam: ["7M"], + dreameater: ["8V", "7M"], + echoedvoice: ["7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + fakeout: ["9L1", "8L1", "8V", "7L1"], + faketears: ["9M", "8M"], + feint: ["9L1", "8L1", "8V", "7L65"], + feintattack: ["7L22"], + foulplay: ["9M", "8M", "8V", "7T"], + frustration: ["7M"], + furyswipes: ["9L31", "8L31", "8V", "7L14"], + gigaimpact: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "8V", "7L1"], + gunkshot: ["9M", "8M", "7T"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + hypervoice: ["9M", "8M", "7T"], + hypnosis: ["8V"], + icywind: ["9M", "8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["9M", "7T"], + lashout: ["9M", "8T"], + lastresort: ["7T"], + metalclaw: ["9M"], + nastyplot: ["9M", "9L48", "8M", "8L48", "8V", "7L44"], + nightslash: ["9L42", "8L42", "7L61"], + payback: ["8M", "7M"], + payday: ["9L12", "8M", "8L12", "8V"], + playrough: ["9M", "9L54", "8M", "8L54", "8V", "7L1"], + powergem: ["9M", "9L0", "8M", "8L0", "7L32"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["7M"], + quash: ["9L1", "8L1", "7M", "7L1"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "8V", "7M"], + retaliate: ["8M"], + return: ["7M"], + roar: ["9M", "7M"], + round: ["8M", "7M"], + scratch: ["9L1", "8L1", "8V", "7L1"], + screech: ["9L36", "8M", "8L36", "8V", "7L17"], + seedbomb: ["9M", "8M", "7T"], + shadowball: ["9M", "8M", "8V", "7M"], + shadowclaw: ["9M", "8M", "7M"], + shockwave: ["7T"], + skittersmack: ["8T"], + slash: ["8V", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9M"], + snarl: ["9M", "8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spite: ["9M", "7T"], + substitute: ["9M", "8M", "8V", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M", "8V", "7L1"], + switcheroo: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M"], + thunderbolt: ["9M", "8M", "8V", "7M"], + thunderwave: ["9M"], + torment: ["7M"], + toxic: ["8V", "7M"], + trailblaze: ["9M"], + uproar: ["8M", "7T"], + uturn: ["9M", "8M", "8V", "7M"], + waterpulse: ["7T"], + workup: ["8M", "7M"], + }, + }, + perrserker: { + learnset: { + aerialace: ["9M"], + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M"], + falseswipe: ["9M"], + flashcannon: ["9M"], + fling: ["9M", "8M"], + foulplay: ["9M", "8M"], + furyswipes: ["9L31", "8L31"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + gyroball: ["9M", "8M"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + honeclaws: ["9L1", "8L1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1"], + ironhead: ["9M", "9L0", "8M", "8L0"], + irontail: ["8M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + metalburst: ["9L1", "8L1"], + metalclaw: ["9M", "9L16", "8L16"], + metalsound: ["9L48", "8L48"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + payday: ["9L12", "8M", "8L12"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + round: ["8M"], + scratch: ["9L1", "8L1"], + screech: ["9L36", "8M", "8L36"], + seedbomb: ["9M", "8M"], + shadowball: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + slash: ["9L42", "8L42"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swagger: ["9L24", "8L24"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L54", "8L54"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + xscissor: ["9M"], + }, + }, + psyduck: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + amnesia: ["9M", "9L34", "8M", "8L34", "8V", "7L37", "6L43", "5L48", "4L44"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L29", "5T", "5L32", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "5D", "4M"], + bubblebeam: ["7V"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + clearsmog: ["9E", "8E", "7E", "6E"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + confusion: ["9L6", "8L6", "8V", "7L10", "7V", "6L11", "5L18", "4L18", "3L16", "3S0"], + counter: ["7V", "3T"], + crosschop: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L14", "4L14", "3L10", "3S0"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M", "7E", "6E", "5E", "5D", "4E"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L27", "4L27", "3L40"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M", "8L36", "8V", "7L40", "7V", "6L46", "5L53", "4L48", "3L50"], + hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + liquidation: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["7V", "3T"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudshot: ["9M"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["3S1"], + nastyplot: ["9M"], + naturalgift: ["4M"], + payday: ["8M", "8V", "7V"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9E", "8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3E"], + psychup: ["9L30", "8L30", "7M", "7L34", "7V", "6M", "6L39", "5M", "5L40", "4M", "4L35", "3T", "3L31"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L31", "4L31", "3L23", "3S0"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + simplebeam: ["9E", "8E", "7E", "6E"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["9L27", "8L27", "7L31", "6L36", "5L35"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + synchronoise: ["7E", "6E", "5E"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L5", "4L5", "3L5", "3S0", "3S1"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + vacuumwave: ["9M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L3", "8L3", "8V", "7L7", "7V", "6L8", "5L9", "4L9"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L22", "4M", "4L22", "3M"], + watersport: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["9L39", "8M", "8L39", "7T", "7L43", "6T", "6L50", "5T", "5L57"], + worryseed: ["7T", "6T", "5T", "4T"], + yawn: ["9E", "8E", "7E", "6E", "5E", "4E"], + zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L29", "5T", "5L44", "4T", "4L40"], + }, + eventData: [ + {generation: 3, level: 27, gender: "M", nature: "Lax", ivs: {hp: 31, atk: 16, def: 12, spa: 29, spd: 31, spe: 14}, abilities: ["damp"], moves: ["tailwhip", "confusion", "disable", "screech"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["watersport", "scratch", "tailwhip", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + golduck: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + amnesia: ["9M", "9L36", "8M", "8L36", "8V", "7L41", "6L49", "5L56", "4L50"], + aquajet: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L32", "5T", "5L32", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charm: ["3S0"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "8V", "7L10", "7V", "6L11", "5L18", "4L18", "3L16"], + counter: ["7V", "3T"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L14", "4L14", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M", "8V", "7S1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L27", "4L27", "3L44"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "9L40", "8M", "8L40", "8V", "7L46", "7V", "7S1", "6L54", "5L63", "4L56", "3L58"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M"], + liquidation: ["9M", "8M", "7T"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + mefirst: ["7L1"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + payday: ["8M", "8V", "7V"], + powergem: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8V"], + psychic: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + psychup: ["9L30", "8L30", "7M", "7L36", "7V", "6M", "6L43", "5M", "5L44", "4M", "4L37", "3T", "3L31", "3S0"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "7S1", "6M", "5M"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L31", "4L31", "3L23"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["9L27", "8L27", "7L31", "6L38", "5L37"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + vacuumwave: ["9M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L22", "4M", "4L22", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["9L45", "8M", "8L45", "7T", "7L51", "6T", "6L60", "5T", "5L69"], + worryseed: ["7T", "6T", "5T", "4T"], + yawn: ["8V"], + zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L25", "5T", "5L50", "4T", "4L44"], + }, + eventData: [ + {generation: 3, level: 33, moves: ["charm", "waterfall", "psychup", "brickbreak"]}, + {generation: 7, level: 50, gender: "M", nature: "Timid", ivs: {hp: 31, atk: 30, def: 31, spa: 31, spd: 31, spe: 31}, isHidden: true, moves: ["hydropump", "scald", "encore", "protect"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 25, pokeball: "safariball"}, + {generation: 4, level: 10}, + ], + }, + mankey: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + assurance: ["9L26", "7L26", "6L25", "5L25", "4L25"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["9M", "9L33", "7L36", "7E", "6L49", "6E", "5L49", "5E", "4L49", "4E"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + crosschop: ["9L22", "7L22", "7V", "6L37", "5L37", "4L37", "3L31"], + curse: ["9E", "7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9E", "7E", "6E", "5E", "4E"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["9L48", "7L50", "6L53", "5L53"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L21"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L5", "8V", "7L5", "7V", "6L9", "5L9", "4L9", "3L16"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], + karatechop: ["8V", "7L8", "7V", "6L13", "5L13", "4L13", "3L11"], + lashout: ["9M"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "9L8", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1", "3L6"], + lowsweep: ["9M", "7M", "6M", "5M"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7E", "6E"], + outrage: ["9M", "9L44", "8V", "7T", "7L47", "6T", "5T", "4T"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + payday: ["8V", "7V"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + powertrip: ["7E"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7V", "3T"], + punishment: ["7L29", "6L45", "5L45", "4L45"], + pursuit: ["7L12"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E", "4E", "3E"], + reversal: ["9M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + rockclimb: ["4M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L36", "8V", "7L40", "7V", "6L21", "5L21", "4L21", "3L41"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["9L12", "8V", "7L15", "7V", "6L17", "5L17", "4L17", "3T", "3L26"], + shadowclaw: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["7T", "7V", "6T", "3T"], + spite: ["9M", "9E", "7T", "6T", "5T", "4T"], + stompingtantrum: ["9M", "9L40", "7T", "7L43"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L17", "7M", "7L19", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L36"], + swift: ["9M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L29", "8V", "7L33", "7V", "6L41", "5L41", "4L41", "3L46"], + thunder: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["4T"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 3, level: 2}, + ], + }, + primeape: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + assurance: ["9L26", "7L26", "6L25", "5L25", "4L25"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["9M", "9L39", "7L39", "6L59", "5L59", "4L59"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["9L22", "7L22", "7V", "6L41", "5L41", "4L41", "3L35", "3S0"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "8V"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["9L57", "7L1", "6L1", "5L63"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L21", "3S0"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L5", "8V", "7L5", "7V", "6L9", "5L9", "4L9", "3L16"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8V", "7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], + karatechop: ["8V", "7L8", "7V", "6L13", "5L13", "4L13", "3L11"], + lashout: ["9M"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "9L8", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L53", "8V", "7T", "7L53", "6T", "5T", "4T"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + payday: ["8V", "7V"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7V", "3T"], + punishment: ["7L30", "6L53", "5L53", "4L53"], + pursuit: ["7L12"], + rage: ["8V", "7L1", "7V", "6L28", "5L28", "4L28", "3L1"], + ragefist: ["9L35"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "3S0"], + rockclimb: ["4M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L44", "8V", "7L44", "7V", "6L21", "5L21", "4L21", "3L53"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["9L15", "8V", "7L15", "7V", "6L17", "5L17", "4L17", "3T", "3L26"], + shadowclaw: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["7T", "7V", "6T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "9L48", "7T", "7L48"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L17", "7M", "7L19", "7V", "6M", "6L35", "5M", "5L35", "4M", "4L35", "3T", "3L44"], + swift: ["9M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L30", "8V", "7L35", "7V", "6L47", "5L47", "4L47", "3L62"], + throatchop: ["7T"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 34, abilities: ["vitalspirit"], moves: ["helpinghand", "crosschop", "focusenergy", "reversal"]}, + ], + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 15}, + ], + }, + annihilape: { + learnset: { + acrobatics: ["9M"], + assurance: ["9L26"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M", "9L39"], + counter: ["9L1"], + crosschop: ["9L22"], + dig: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + finalgambit: ["9L57"], + firepunch: ["9M"], + fling: ["9M", "9L1"], + focusblast: ["9M"], + focusenergy: ["9L1"], + focuspunch: ["9M"], + furyswipes: ["9L5"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + lashout: ["9M"], + leer: ["9L1"], + lowkick: ["9M", "9L8"], + lowsweep: ["9M"], + metronome: ["9M"], + nightshade: ["9M"], + outrage: ["9M", "9L53"], + overheat: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + ragefist: ["9L35"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + scratch: ["9L1"], + screech: ["9L44"], + seedbomb: ["9M"], + seismictoss: ["9L12"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9L0"], + sleeptalk: ["9M"], + smackdown: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "9L48"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L17"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L30"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + uproar: ["9M"], + uturn: ["9M"], + vacuumwave: ["9M"], + }, + }, + growlithe: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L30", "7V", "6L30", "5L42", "4L39", "3L43"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L8", "8L8", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S1", "3S2"], + bodyslam: ["9M", "8M", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + burnup: ["7E"], + captivate: ["4M"], + charm: ["9M", "3S2"], + closecombat: ["9M", "8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + covet: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["9M", "9L32", "8M", "8L32", "8V", "7L39", "7E", "7V", "6L39", "6E", "5L45", "5E", "4L42", "4E", "3E"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], + doublekick: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonrage: ["7V"], + ember: ["9L1", "8L1", "8V", "7L6", "7V", "6L6", "5L6", "4L6", "3L7", "3S1"], + endure: ["9M", "8M", "7V", "5D", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L24", "8M", "8L24", "7L21", "6L21", "5L28", "4L28"], + firespin: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + flameburst: ["7L28", "6L28", "5L31"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L39", "4M", "4L34", "3M", "3L49", "3S2"], + flamewheel: ["9L12", "8L12", "7L17", "7V", "6L17", "5L20", "4L20", "3L31", "3S0"], + flareblitz: ["9M", "9L56", "8M", "8L56", "8V", "7L45", "7E", "6L45", "6E", "5L56", "5E", "4L48", "4E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "8V", "7T", "7L41", "7E", "6T", "6L41", "6E", "5T", "5L51", "5E", "4T", "4L45", "4E", "3E"], + helpinghand: ["9M", "9L16", "8M", "8L16", "8V", "7T", "7L12", "6T", "6L12", "5T", "5L17", "4T", "4L17", "3L37"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L4", "8L4", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L8", "7V", "6L8", "5L9", "4L9", "3L13", "3S0"], + mimic: ["7V", "3T"], + morningsun: ["9E", "8E", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + odorsleuth: ["7L10", "6L10", "5L14", "4L14", "3L19", "3S0"], + outrage: ["9M", "8M", "8V", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M", "9L48", "8M", "8L48", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M", "8M"], + rage: ["7V"], + ragingfury: ["9E"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["9L28", "8M", "8L28", "7L32", "6M", "6L32", "5M", "5L48"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L52", "8M", "8L52", "7L19", "6L19", "5L25", "4L25"], + roar: ["9M", "9L44", "8L44", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M", "3L1", "3S1"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "9L36", "8L36", "8V", "7L23", "7V", "6L23", "5L34", "4L31", "3L25", "3S0", "3S2"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thrash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + thunderfang: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 32, gender: "F", nature: "Quiet", ivs: {hp: 11, atk: 24, def: 28, spa: 1, spd: 20, spe: 2}, abilities: ["intimidate"], moves: ["leer", "odorsleuth", "takedown", "flamewheel"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["bite", "roar", "ember"], pokeball: "pokeball"}, + {generation: 3, level: 28, moves: ["charm", "flamethrower", "bite", "takedown"]}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + growlithehisui: { + learnset: { + agility: ["9M"], + bite: ["9L8", "9S0"], + bodyslam: ["9M"], + closecombat: ["9M"], + covet: ["9E"], + crunch: ["9M", "9L32"], + dig: ["9M"], + doubleedge: ["9E"], + doublekick: ["9E"], + ember: ["9L1", "9S0"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L24"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L40"], + flamewheel: ["9L12", "9S0"], + flareblitz: ["9M", "9L56"], + headsmash: ["9E"], + heatwave: ["9M"], + helpinghand: ["9M", "9L16"], + howl: ["9L4", "9S0"], + leer: ["9L1"], + morningsun: ["9E"], + outrage: ["9M"], + overheat: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + rest: ["9M"], + retaliate: ["9L28"], + reversal: ["9M", "9L52"], + roar: ["9M", "9L44"], + rockblast: ["9M"], + rockslide: ["9M", "9L48"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + smartstrike: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9E"], + thunderfang: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + }, + eventData: [ + {generation: 9, level: 15, isHidden: true, nature: "Jolly", ivs: {hp: 31, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["flamewheel", "bite", "howl", "ember"], pokeball: "pokeball"}, + ], + }, + arcanine: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L1", "8M", "8L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L1", "8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + burnup: ["8L1"], + captivate: ["4M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M", "9L1", "8M", "8L1", "4S0"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["7V"], + ember: ["9L1", "8L1", "8V", "7V", "3L1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["9L0", "9S2", "8L0", "7L34", "7V", "7S1", "6L34", "5L39", "4L39", "4S0", "3L49"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L5", "8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], + flamewheel: ["9L1", "8L1", "7V"], + flareblitz: ["9M", "9L1", "9S2", "8M", "8L1", "7S1", "4S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + heatcrash: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L1", "8L1"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["4T"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M", "9L1", "8M", "8L1", "8V"], + protect: ["9M", "9S2", "8M", "8V", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M", "8M"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["9L1", "8M", "8L1", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L1", "8M", "8L1"], + roar: ["9M", "9L1", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "9L1", "8L1", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1", "4S0"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9S2", "8M", "8V", "7M", "7S1", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 50, abilities: ["intimidate"], moves: ["flareblitz", "thunderfang", "crunch", "extremespeed"], pokeball: "cherishball"}, + {generation: 7, level: 50, abilities: ["intimidate"], moves: ["flareblitz", "extremespeed", "willowisp", "protect"], pokeball: "cherishball"}, + {generation: 9, level: 50, shiny: true, gender: "F", nature: "Adamant", abilities: ["intimidate"], ivs: {hp: 31, atk: 31, def: 31, spa: 8, spd: 31, spe: 31}, moves: ["flareblitz", "extremespeed", "willowisp", "protect"], pokeball: "cherishball"}, + ], + }, + arcaninehisui: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L1"], + bite: ["9L1"], + bodyslam: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + crunch: ["9M", "9L1"], + dig: ["9M"], + dragonpulse: ["9M"], + ember: ["9L1"], + endure: ["9M"], + extremespeed: ["9L0"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L1"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L5"], + flamewheel: ["9L1"], + flareblitz: ["9M", "9L1"], + gigaimpact: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M", "9L1"], + howl: ["9L1"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + leer: ["9L1"], + outrage: ["9M"], + overheat: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + ragingfury: ["9L64"], + rest: ["9M"], + retaliate: ["9L1"], + reversal: ["9M", "9L1"], + roar: ["9M", "9L1"], + rockblast: ["9M"], + rockslide: ["9M", "9L1"], + rockthrow: ["9L1"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + smartstrike: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M", "9L1"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + }, + }, + poliwag: { + learnset: { + amnesia: ["9M", "7V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["9L48", "8L48", "7L31", "7V", "6L31", "5L31", "4L31", "3L37"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L30", "8M", "8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L31"], + bubble: ["8V", "7L11", "7V", "6L11", "5L5", "4L5", "3L1", "3S0"], + bubblebeam: ["9L18", "8L18", "8V", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3E"], + bulldoze: ["9M", "8M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L54", "8L54", "7V", "3T"], + doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L19"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L36", "8M", "8L36"], + encore: ["9M", "8M", "7E", "6E", "5E", "4E"], + endeavor: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + focuspunch: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L42", "8M", "8L42", "8V", "7L38", "7V", "6L38", "5L38", "4L38", "3L43"], + hypnosis: ["9L1", "8L1", "8V", "7L8", "7V", "6L8", "5L8", "5D", "4L8", "3L7"], + iceball: ["7E", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M"], + lowkick: ["9M", "8V"], + mimic: ["7V", "3T"], + mindreader: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mist: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + mudbomb: ["7L41", "6L41", "5L41", "4L41"], + muddywater: ["9E", "8M"], + mudshot: ["9M", "9L12", "8M", "8L12", "7L28", "7E", "6L28", "6E", "5L28", "5E", "4L28", "4E"], + mudslap: ["9M"], + naturalgift: ["4M"], + pound: ["9L6", "8L6", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "9L24", "8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L25"], + refresh: ["7E", "6E", "5E", "4E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + splash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["3S0"], + swift: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wakeupslap: ["7L35", "6L35", "5L35", "4L35"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7L5", "7V", "6L5", "5L11", "4L11", "3L13"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E", "3E"], + weatherball: ["9M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "sweetkiss"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 5}, + {generation: 2, level: 3}, + ], + }, + poliwhirl: { + learnset: { + amnesia: ["9M", "7V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["9L56", "8L56", "7L37", "7V", "6L37", "5L37", "4L37", "3L43"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L32", "8M", "8L32", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L35"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubble: ["8V", "7L11", "7V", "6L11", "5L1", "4L1", "3L1"], + bubblebeam: ["9L18", "8L18", "8V", "7L27", "7V", "6L27", "5L27", "4L27"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L66", "8L66", "7V", "3T"], + doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L19"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L40", "8M", "8L40"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L48", "8M", "8L48", "8V", "7L48", "7V", "6L48", "5L48", "4L48", "3L51"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M"], + lowkick: ["9M", "8V"], + lowsweep: ["9M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudbomb: ["7L53", "6L53", "5L53", "4L53"], + muddywater: ["8M"], + mudshot: ["9M", "9L1", "8M", "8L1", "7L32", "6L32", "5L32", "4L32"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + pound: ["9L1", "8L1", "8V"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "9L24", "8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L27"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wakeupslap: ["7L43", "6L43", "5L43", "4L43"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L11", "4L11", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1"], + weatherball: ["9M"], + whirlpool: ["8M", "7V", "4M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 20}, + {generation: 4, level: 10}, + {generation: 7, level: 24}, + {generation: 7, level: 22, gender: "F", nature: "Naughty", abilities: ["damp"], pokeball: "pokeball"}, + ], + }, + poliwrath: { + learnset: { + amnesia: ["9M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bellydrum: ["9L1", "8L1"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L1", "8M", "8L1", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + bubble: ["8V"], + bubblebeam: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + circlethrow: ["9L1", "8L1", "7L1", "6L1", "5L53"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + darkestlariat: ["8M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L1", "8L1", "7V", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M"], + dualchop: ["7T"], + dynamicpunch: ["9L0", "8L1", "7L32", "7V", "6L32", "5L32", "4L43", "3T"], + earthpower: ["9M", "9L1", "8M", "8L1"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M", "8V"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + hydropump: ["9M", "9L1", "8M", "8L1", "3S0"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + knockoff: ["9M"], + liquidation: ["9M", "8M"], + lowkick: ["9M"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], + mimic: ["7V", "3T"], + mindreader: ["8L1", "7L43", "7V", "6L43", "5L43", "4L53", "3L51"], + mist: ["8V"], + muddywater: ["8M"], + mudshot: ["9M", "9L1", "8M", "8L1"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + pound: ["9L1", "8L1", "8V"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M", "7V"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["9M", "4T"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "8V", "7V", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 42, moves: ["helpinghand", "hydropump", "raindance", "brickbreak"]}, + ], + }, + politoed: { + learnset: { + amnesia: ["9M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["9L1", "8L1"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L1", "8M", "8L1", "3T"], + bounce: ["9L0", "8M", "8L0", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L1", "8L1", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "9L1", "8M", "8L1"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L1", "8M", "8L1", "7T", "7L48", "6T", "6L48", "5T", "5L48", "4L48"], + hypnosis: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M", "8M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M", "9L1", "8M", "8L1"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + pound: ["9L1", "8L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "5S0", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M", "5S0"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3T", "3L51"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7V", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Calm", ivs: {hp: 31, atk: 13, def: 31, spa: 5, spd: 31, spe: 5}, isHidden: true, moves: ["scald", "icebeam", "perishsong", "protect"], pokeball: "cherishball"}, + ], + }, + abra: { + learnset: { + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8E"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "5D", "4T"], + guardsplit: ["8E", "7E", "6E", "5E"], + guardswap: ["8M", "7E", "6E", "5E", "4E"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + irontail: ["8M", "8V", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + magiccoat: ["8E", "7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + powerswap: ["8M"], + powertrick: ["7E", "6E", "5E", "4E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M", "7E"], + psychoshift: ["7E", "6E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + speedswap: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 1, level: 6}, + ], + }, + kadabra: { + learnset: { + allyswitch: ["8M", "8L15", "7T", "7L36", "6L24", "5M", "5L24"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + calmmind: ["8M", "8L50", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dig: ["8V", "7V"], + disable: ["8L1", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L18"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["8V", "7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L45", "7L43", "7V", "6L43", "5L48", "4L42", "3L30"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "6T", "5T", "4M", "3M"], + kinesis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + miracleeye: ["7L23", "6L22", "5L22", "4L22"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8V"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L5", "8V", "7L21", "7V", "6L21", "5L28", "4L24", "3L21"], + psychic: ["8M", "8L35", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L46", "4M", "4L40", "3M", "3L36"], + psychicterrain: ["8M"], + psychocut: ["8M", "8L20", "7L28", "6L28", "5L40", "4L34"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L30", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L25", "8V", "7L31", "7V", "6L31", "5L36", "4L30", "3L25"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8L10", "8V", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L30", "4M", "4L28", "3M", "3L23"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8L40", "7T", "7L41", "6T", "6L41", "5T", "5L42", "4T", "4L36", "3L33"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + speedswap: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "7L33", "6L33", "5M", "5L34"], + teleport: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "7L46", "6T", "6L46", "5T", "5L52", "4T", "4L46", "3L43"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 15}, + {generation: 7, level: 11, pokeball: "pokeball"}, + ], + }, + alakazam: { + learnset: { + allyswitch: ["8M", "8L15", "7T", "7L36", "6L24", "5M", "5L24"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + calmmind: ["8M", "8L50", "8V", "7M", "7L41", "6M", "6L41", "5M", "5L42", "4M", "4L36", "3M", "3L33", "3S0"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dig: ["8V", "7V"], + disable: ["8L1", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L18"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["8M", "8V"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["8V", "7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L45", "7L43", "7V", "6L43", "5L48", "4L42", "3L30", "3S0"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["8M"], + irontail: ["8M", "8V", "7T", "6T", "5T", "4M", "3M"], + kinesis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + miracleeye: ["7L23", "6L22", "5L22", "4L22"], + nastyplot: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8V"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L5", "8V", "7L21", "7V", "6L21", "5L28", "4L24", "3L21"], + psychic: ["8M", "8L35", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L46", "4M", "4L40", "3M", "3L36", "3S0"], + psychicterrain: ["8M"], + psychocut: ["8M", "8L20", "7L28", "6L28", "5L40", "4L34"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L30", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L25", "8V", "7L31", "7V", "6L31", "5L36", "4L30", "3L25"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8L10", "8V", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L30", "4M", "4L28", "3M", "3L23"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8L40", "7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + speedswap: ["8M"], + storedpower: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "7L33", "6L33", "5M", "5L34"], + teleport: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "7L46", "6T", "6L46", "5T", "5L52", "4T", "4L46", "3L43", "3S0"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["futuresight", "calmmind", "psychic", "trick"], pokeball: "pokeball"}, + ], + }, + machop: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L36", "8V", "7M", "7L37", "6M", "6L37", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8E", "7E", "6E", "5E", "5D", "4E"], + captivate: ["4M"], + closecombat: ["8M", "7E", "6E", "5E", "4E"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crosschop: ["8L48", "7L39", "7V", "6L39", "5L43", "4L37", "3L40"], + curse: ["7V"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L52", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["8L32", "7T", "7L31", "6T", "6L31", "5T"], + dynamicpunch: ["8L44", "7L45", "7V", "6L45", "5L49", "4L46", "3T", "3L49"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L4", "8V", "7L3", "7V", "6L3", "5L7", "4L7", "3L7"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L9", "7V", "6L9", "5L19", "4L13", "3L22"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["8M", "7E", "6E", "5E"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + incinerate: ["6M", "5M"], + karatechop: ["8V", "7L7", "7V", "6L7", "5L10", "4L10", "3L13"], + knockoff: ["8L16", "7T", "7L21", "7E", "6T", "6L21", "6E", "5T", "5E"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + lowkick: ["8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1", "3L1"], + lowsweep: ["8M", "8L12", "7M", "7L13", "6M", "6L13", "5M", "5L13"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + powertrick: ["7E", "6E", "5E", "4E"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickguard: ["8E", "7E", "6E"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L8", "7L19", "6L19", "5L25", "4L22", "3L25"], + reversal: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollingkick: ["7E", "7V", "6E", "5E", "4E", "3E"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L43", "7V", "6L43", "5L46", "4L43", "3L43"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L40", "8V", "7L15", "7V", "6L15", "5L22", "4L19", "3T", "3L19"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["8L29", "7V", "6M", "5M", "4M", "3M"], + submission: ["8E", "8V", "7L33", "7V", "6L33", "5L34", "4L31", "3L37"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["8L24", "7L25", "7V", "6L25", "5L31", "4L25", "3L31"], + wakeupslap: ["7L27", "6L27", "5L37", "4L34"], + workup: ["8M", "7M", "5M"], + }, + encounters: [ + {generation: 1, level: 15}, + ], + }, + machoke: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L42", "8V", "7M", "7L43", "6M", "6L43", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + crosschop: ["8L60", "7L47", "7V", "6L44", "5L44", "4L40", "3L46"], + curse: ["7V"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L66", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["8L36", "7T", "7L33", "6T", "6L33", "5T"], + dynamicpunch: ["8L54", "7L57", "7V", "6L55", "5L55", "4L51", "3T", "3L59"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L9", "7V", "6L9", "5L19", "5S0", "4L13", "3L22"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["8M"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + karatechop: ["8V", "7L1", "7V", "6L1", "5L1", "4L10", "3L13"], + knockoff: ["8L16", "7T", "7L21", "6T", "6L21", "5T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + lowkick: ["8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lowsweep: ["8M", "8L12", "7M", "7L13", "6M", "6L13", "5M", "5L13", "5S0"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L1", "7L19", "6L19", "5L25", "5S0", "4L22", "3L25"], + reversal: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L53", "7V", "6L51", "5L51", "4L44", "3L51"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L48", "8V", "7L15", "7V", "6L15", "5L22", "5S0", "4L19", "3T", "3L19"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["8L31", "7V", "6M", "5M", "4M", "3M"], + submission: ["8V", "7L37", "7V", "6L36", "5L36", "4L32", "3L41"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["8L24", "7L25", "7V", "6L25", "5L32", "4L25", "3L33"], + wakeupslap: ["7L27", "6L27", "5L40", "4L36"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["lowsweep", "foresight", "seismictoss", "revenge"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 2, level: 14}, + {generation: 4, level: 14}, + ], + }, + machamp: { + learnset: { + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L42", "8V", "7M", "7L43", "7S3", "6M", "6L43", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crosschop: ["8L60", "7L47", "7V", "6L44", "5L44", "4L40", "3L46"], + crosspoison: ["8M"], + curse: ["7V"], + darkestlariat: ["8M"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "6S2", "5M", "4M", "3M"], + doubleedge: ["8L66", "7V", "7S3", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["8L36", "7T", "7L33", "6T", "6L33", "5T"], + dynamicpunch: ["8L54", "7L57", "7V", "6L55", "6S1", "6S2", "5L55", "4L51", "3T", "3L59"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M", "8V"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L9", "7V", "6L9", "5L19", "4L13", "3L22", "3S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["8M"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + karatechop: ["8V", "7L1", "7V", "6L1", "5L1", "4L10", "3L13"], + knockoff: ["8L16", "7T", "7L21", "6T", "6L21", "6S1", "5T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + lowkick: ["8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lowsweep: ["8M", "8L12", "7M", "7L13", "6M", "6L13", "5M", "5L13"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickguard: ["7S3"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L1", "7L19", "6L19", "5L25", "4L22", "3L25", "3S0"], + reversal: ["8M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L53", "7V", "6L51", "5L51", "4L44", "3L51"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L48", "8V", "7L15", "7V", "6L15", "6S2", "5L22", "4L19", "3T", "3L19", "3S0"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "6S1", "5M", "4M"], + strength: ["8L31", "8V", "7L1", "7V", "7S3", "6M", "5M", "4M", "3M"], + submission: ["8V", "7L37", "7V", "6L36", "5L36", "4L32", "3L41"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["8L24", "7L25", "7V", "6L25", "5L32", "4L25", "3L33", "3S0"], + wakeupslap: ["7L27", "6L27", "5L40", "4L36"], + wideguard: ["8L1", "7L1", "6L1", "6S1", "5L1"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 38, gender: "M", nature: "Quiet", ivs: {hp: 9, atk: 23, def: 25, spa: 20, spd: 15, spe: 10}, abilities: ["guts"], moves: ["seismictoss", "foresight", "revenge", "vitalthrow"], pokeball: "pokeball"}, + {generation: 6, level: 50, shiny: true, gender: "M", nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, abilities: ["noguard"], moves: ["dynamicpunch", "stoneedge", "wideguard", "knockoff"], pokeball: "cherishball"}, + {generation: 6, level: 39, gender: "M", nature: "Hardy", abilities: ["noguard"], moves: ["seismictoss", "dynamicpunch", "dig", "focusenergy"], pokeball: "cherishball"}, + {generation: 7, level: 34, gender: "F", nature: "Brave", ivs: {atk: 31}, abilities: ["guts"], moves: ["strength", "bulkup", "quickguard", "doubleedge"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 16}, + {generation: 2, level: 5}, + ], + }, + bellsprout: { + learnset: { + acid: ["9L23", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L23"], + acidspray: ["9M", "7E", "6E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["7E", "6E"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bulletseed: ["9M", "7E", "6E", "5E", "4M", "3M"], + captivate: ["4M"], + clearsmog: ["9E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["9L35", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + gigadrain: ["9M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L7", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L6", "3S1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["9E", "7E", "6E", "5E", "4E", "3E"], + knockoff: ["9M", "9L27", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + leafstorm: ["9M"], + leechlife: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + lunge: ["9M"], + magicalleaf: ["9M", "7E", "6E", "5E", "4E", "3E"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + poisonjab: ["9M", "9L41", "8V", "7M", "7L41"], + poisonpowder: ["9L15", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + pounce: ["9M"], + powerwhip: ["9L52", "7E", "6E", "5E"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["9L39", "8V", "7L39", "7V", "6L39", "5L39", "4L39", "3L37"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "5D", "4T"], + slam: ["9L47", "8V", "7L47", "7V", "6L41", "5L41", "4L41", "3L45"], + sleeppowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + strengthsap: ["9E", "7E"], + stunspore: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L29", "7L29", "7V", "6L29", "5L29", "4L29", "3L30"], + swordsdance: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + synthesis: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + takedown: ["7V"], + teeterdance: ["3S0"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + tickle: ["9E", "7E", "6E", "5E", "4E"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + weatherball: ["9M", "7E", "6E", "5E", "4E"], + worryseed: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + wrap: ["9L11", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L11"], + wringout: ["7L50", "6L47", "5L47", "4L47"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["vinewhip", "teeterdance"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["vinewhip", "growth"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 12}, + {generation: 2, level: 3}, + ], + }, + weepinbell: { + learnset: { + acid: ["9L24", "8V", "7L24", "7V", "6L23", "5L23", "4L23", "3L24"], + acidspray: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bodyslam: ["9M"], + bugbite: ["9M", "5T"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["9L39", "7T", "7L39", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + knockoff: ["9M", "9L29", "7T", "7L29", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + leafstorm: ["9M"], + leechlife: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M", "3S0"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + morningsun: ["3S0"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poisonjab: ["9M", "9L47", "8V", "7M", "7L47"], + poisonpowder: ["9L15", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + pounce: ["9M"], + powerwhip: ["9L58"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["9L44", "8V", "7L44", "7V", "6L39", "5L39", "4L39", "3L42"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + slam: ["9L54", "8V", "7L54", "7V", "6L41", "5L41", "4L41", "3L54"], + sleeppowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stunspore: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L32", "7L32", "7V", "6L29", "5L29", "4L29", "3L33", "3S0"], + swift: ["9M"], + swordsdance: ["9M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + wringout: ["7L58", "6L47", "5L47", "4L47"], + }, + eventData: [ + {generation: 3, level: 32, moves: ["morningsun", "magicalleaf", "sludgebomb", "sweetscent"]}, + ], + encounters: [ + {generation: 2, level: 12}, + {generation: 4, level: 10}, + ], + }, + victreebel: { + learnset: { + acid: ["8V", "7V"], + acidspray: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bodyslam: ["9M", "7V", "3T"], + bugbite: ["9M", "5T"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + clearsmog: ["8V"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["9L1", "7T", "6T", "5T", "4T"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["8V"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leafblade: ["9L44", "7L44", "6L47", "5L47", "4L47"], + leafstorm: ["9M", "9L0", "7L32", "6L47", "5L47", "4L47"], + leaftornado: ["7L1", "6L27", "5L27"], + leechlife: ["9M", "8V"], + lunge: ["9M"], + magicalleaf: ["9M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poisonjab: ["9M", "8V", "7M"], + poisonpowder: ["7V"], + pounce: ["9M"], + powerwhip: ["9L1", "8V"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeppowder: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spitup: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + stockpile: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + stunspore: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V", "4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sweetscent: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swift: ["9M"], + swordsdance: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + vinewhip: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["8V", "7V"], + }, + }, + tentacool: { + learnset: { + acid: ["8L4", "8V", "7L10", "7V", "6L10", "5L12", "4L12", "3L19"], + acidarmor: ["8L32"], + acidspray: ["7L22", "6L22", "5L26"], + acupressure: ["8E", "7E", "6E", "5E", "5D", "4E"], + aquaring: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + barrier: ["8V", "7L28", "7V", "6L28", "5L29", "4L26", "3L36"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "7L34", "6L34", "4M"], + brutalswing: ["8M"], + bubble: ["7E", "6E", "5E"], + bubblebeam: ["8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E", "3E"], + constrict: ["8V", "7L7", "7V", "6L7", "5L8", "4L8", "3L12"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hex: ["8M", "8L28", "7L40", "6L40", "5L43"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L48", "8V", "7L46", "7V", "6L46", "5L47", "4L40", "3L49"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + magiccoat: ["7T", "6T", "5T", "4T"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mirrorcoat: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8L36", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L33"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + scald: ["8M", "8V", "7M", "6M", "5M"], + screech: ["8M", "8L20", "8V", "7L37", "7V", "6L37", "5L40", "4L36", "3L43"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "8L44", "7M", "7L43", "6M", "6L43", "5M", "5L50"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L12", "8V", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L6"], + surf: ["8M", "8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "7L13", "6L13", "5L15", "4L15"], + venoshock: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7V"], + waterpulse: ["8L16", "7T", "7L16", "6T", "6L16", "5L33", "4M", "4L29", "3M"], + whirlpool: ["8M", "7V", "4M"], + wrap: ["8L8", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], + wringout: ["7L49", "6L49", "5L54", "4L43"], + }, + encounters: [ + {generation: 1, level: 5}, + ], + }, + tentacruel: { + learnset: { + acid: ["8L1", "8V", "7L1", "7V", "6L1", "5L12", "4L12", "3L19"], + acidarmor: ["8L34"], + acidspray: ["7L22", "6L22", "5L26"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V", "7L28", "7V", "6L28", "5L29", "4L26", "3L38"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "7L36", "6L36", "4M"], + brutalswing: ["8M"], + bubblebeam: ["8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8V"], + headbutt: ["8V"], + hex: ["8M", "8L28", "7L44", "6L44", "5L47"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L58", "8V", "7L52", "7V", "6L52", "5L52", "4L49", "3L55"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + magiccoat: ["7T", "6T", "5T", "4T"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mirrorcoat: ["8V"], + muddywater: ["8M"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8L40", "8V", "7M", "7L32", "6M", "6L32", "5M", "5L38", "4M", "4L36"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + reflecttype: ["8L1", "7L1", "6L1"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + screech: ["8M", "8L20", "8V", "7L40", "7V", "6L40", "5L43", "4L42", "3L47"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "8L52", "7M", "7L48", "6M", "6L48", "5M", "5L56"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L12", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["8M", "8L46", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "7L13", "6L13", "5L15", "4L15"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7V"], + waterpulse: ["8L16", "7T", "7L16", "6T", "6L16", "5L34", "4M", "4L29", "3M"], + whirlpool: ["8M", "7V", "4M"], + wrap: ["8L1", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], + wringout: ["7L1", "6L1", "5L61", "4L55"], + }, + encounters: [ + {generation: 1, level: 20}, + {generation: 2, level: 20}, + {generation: 3, level: 20}, + {generation: 4, level: 15}, + {generation: 6, level: 21, maxEggMoves: 1}, + ], + }, + geodude: { + learnset: { + ancientpower: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["7E", "6E", "5E"], + bide: ["8V", "7V"], + block: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L12", "7M", "7L22", "6M", "6L22", "5M", "5L32"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E"], + defensecurl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3T", "3L1"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L40", "8V", "7L40", "7V", "6L40", "5L46", "4L36", "3T", "3L46"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["9E", "7V", "3T"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L34", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L39", "4M", "4L29", "3M", "3L36"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + explosion: ["9L36", "8V", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L43", "4M", "4L32", "3T", "3L41"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flail: ["9E", "7E", "6E", "5E", "4E"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], + hammerarm: ["9E", "7E", "6E", "5E", "4E"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], + megapunch: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + mudsport: ["7L4", "6L4", "5L4", "4L4", "3L6"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "9L30", "7L30", "6L22", "5L22", "4L25", "3L31"], + rockclimb: ["7E", "6E", "5E", "5D", "4M"], + rockpolish: ["9L6", "7M", "7L6", "6M", "6L6", "5M", "5L8", "4M", "4L8"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L16", "8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L11"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L26"], + round: ["7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["9L24", "8V", "7L24", "7V", "6L24", "5L29", "4L18", "3T", "3L21"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L25"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "9L28", "8V", "7T", "7L28", "6T", "6L28", "5T", "5L36", "5D", "4M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L50", "4M", "4L39"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8V", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wideguard: ["9E", "7E", "6E"], + }, + encounters: [ + {generation: 1, level: 7}, + {generation: 2, level: 2}, + ], + }, + geodudealola: { + learnset: { + attract: ["7M"], + autotomize: ["7E"], + bide: ["8V"], + block: ["9E", "7T", "7E"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M"], + charge: ["9M", "9L4", "7L4"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + counter: ["9E", "7E"], + curse: ["9E", "7E"], + defensecurl: ["9L1", "8V", "7L1"], + dig: ["9M", "8V"], + discharge: ["9L34", "7L34"], + doubleedge: ["9L40", "8V", "7L40"], + doubleteam: ["7M"], + earthpower: ["9M", "7T"], + earthquake: ["9M", "8V", "7M"], + electroweb: ["7T"], + endure: ["9M", "9E", "7E"], + explosion: ["9L36", "8V", "7M", "7L36"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flail: ["9E", "7E"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + gyroball: ["9M", "7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + highhorsepower: ["9M"], + irondefense: ["9M", "7T"], + magnetrise: ["7T", "7E"], + mudshot: ["9M"], + mudslap: ["9M"], + naturepower: ["7M"], + protect: ["9M", "8V", "7M"], + rest: ["9M", "8V", "7M"], + return: ["7M"], + rockblast: ["9M", "9L30", "7L30"], + rockclimb: ["7E"], + rockpolish: ["9L6", "7M", "7L6"], + rockslide: ["9M", "8V", "7M"], + rockthrow: ["9L16", "8V", "7L16"], + rocktomb: ["9M", "7M"], + rollout: ["9L10", "7L10"], + round: ["7M"], + sandstorm: ["9M", "7M"], + screech: ["9E", "7E"], + seismictoss: ["8V"], + selfdestruct: ["9L24", "8V", "7L24"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "9L18", "7M", "7L18"], + snore: ["7T"], + spark: ["9L12", "7L12"], + stealthrock: ["9M", "9L28", "8V", "7T", "7L28"], + stoneedge: ["9M", "9L42", "7M", "7L42"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + superpower: ["8V", "7T"], + swagger: ["7M"], + tackle: ["9L1", "8V", "7L1"], + takedown: ["9M", "8V"], + terablast: ["9M"], + thunder: ["9M", "8V", "7M"], + thunderbolt: ["9M", "8V", "7M"], + thunderpunch: ["9M", "9L22", "8V", "7T", "7L22"], + thundershock: ["8V"], + thunderwave: ["9M", "8V"], + toxic: ["8V", "7M"], + voltswitch: ["9M", "7M"], + wideguard: ["9E", "7E"], + wildcharge: ["9M"], + zapcannon: ["9E"], + }, + }, + graveler: { + learnset: { + ancientpower: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L12", "7M", "7L22", "6M", "6L22", "5M", "5L36"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L50", "8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L44", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["7M", "6M", "5M", "4M"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + ironhead: ["9M"], + magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "9L34", "7L34", "6L22", "5L22", "4L27", "3L37"], + rockclimb: ["4M"], + rockpolish: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L16", "8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L29"], + round: ["7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["9L24", "8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L27"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8V", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + }, + encounters: [ + {generation: 2, level: 23}, + {generation: 4, level: 16, pokeball: "safariball"}, + {generation: 6, level: 24}, + ], + }, + graveleralola: { + learnset: { + allyswitch: ["7T"], + attract: ["7M"], + bide: ["8V"], + block: ["7T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M"], + charge: ["9M", "9L1", "7L1"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + defensecurl: ["9L1", "8V", "7L1"], + dig: ["9M", "8V"], + discharge: ["9L40", "7L40"], + doubleedge: ["9L50", "8V", "7L50"], + doubleteam: ["7M"], + earthpower: ["9M", "7T"], + earthquake: ["9M", "8V", "7M"], + electricterrain: ["9M"], + electroweb: ["7T"], + endure: ["9M"], + explosion: ["9L44", "8V", "7M", "7L44"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + gyroball: ["9M", "7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + highhorsepower: ["9M"], + irondefense: ["9M", "7T"], + magnetrise: ["7T"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + naturepower: ["7M"], + protect: ["9M", "8V", "7M"], + rest: ["9M", "8V", "7M"], + return: ["7M"], + rockblast: ["9M", "9L34", "7L34"], + rockpolish: ["9L1", "7M", "7L1"], + rockslide: ["9M", "8V", "7M"], + rockthrow: ["9L16", "8V", "7L16"], + rocktomb: ["9M", "7M"], + rollout: ["9L10", "7L10"], + round: ["7M"], + sandstorm: ["9M", "7M"], + scaryface: ["9M"], + seismictoss: ["8V"], + selfdestruct: ["9L24", "8V", "7L24"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "9L18", "7M", "7L18"], + snore: ["7T"], + spark: ["9L12", "7L12"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + superpower: ["8V", "7T"], + swagger: ["7M"], + tackle: ["9L1", "8V", "7L1"], + takedown: ["9M", "8V"], + terablast: ["9M"], + thunder: ["9M", "8V", "7M"], + thunderbolt: ["9M", "8V", "7M"], + thunderpunch: ["9M", "9L22", "8V", "7T", "7L22"], + thundershock: ["8V"], + thunderwave: ["9M", "8V"], + toxic: ["8V", "7M"], + voltswitch: ["9M", "7M"], + wildcharge: ["9M"], + }, + }, + golem: { + learnset: { + ancientpower: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L36"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L50", "8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L44", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["9M", "9L1", "7L1", "6L1", "5L69"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], + megakick: ["7V", "3T"], + megapunch: ["8V", "7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "9L34", "7L34", "6L22", "5L22", "4L27", "3L37"], + rockclimb: ["4M"], + rockpolish: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L16", "8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "4L22", "3T", "3L29"], + round: ["7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["9L24", "8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L18", "7M", "7L18", "6M", "6L18", "5M", "5L27"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], + steamroller: ["7L10", "6L10", "5L18"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8V", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + }, + }, + golemalola: { + learnset: { + allyswitch: ["7T"], + attract: ["7M"], + bide: ["8V"], + block: ["7T"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M"], + charge: ["9M", "9L1", "7L1"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + defensecurl: ["9L1", "8V", "7L1"], + dig: ["9M", "8V"], + discharge: ["9L40", "7L40"], + doubleedge: ["9L50", "8V", "7L50"], + doubleteam: ["7M"], + earthpower: ["9M", "7T"], + earthquake: ["9M", "8V", "7M"], + echoedvoice: ["7M"], + electricterrain: ["9M"], + electroweb: ["7T"], + endure: ["9M"], + explosion: ["9L44", "8V", "7M", "7L44"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + gigaimpact: ["9M", "7M"], + gyroball: ["9M", "7M"], + headbutt: ["8V"], + heavyslam: ["9M", "9L1", "7L1"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8V", "7M"], + irondefense: ["9M", "7T"], + ironhead: ["9M", "7T"], + magnetrise: ["7T"], + megapunch: ["8V"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + naturepower: ["7M"], + protect: ["9M", "8V", "7M"], + rest: ["9M", "8V", "7M"], + return: ["7M"], + roar: ["9M", "7M"], + rockblast: ["9M", "9L34", "7L34"], + rockpolish: ["9L1", "7M", "7L1"], + rockslide: ["9M", "8V", "7M"], + rockthrow: ["9L16", "8V", "7L16"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandstorm: ["9M", "7M"], + scaryface: ["9M"], + seismictoss: ["8V"], + selfdestruct: ["9L24", "8V", "7L24"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "9L18", "7M", "7L18"], + snore: ["7T"], + spark: ["9L12", "7L12"], + stealthrock: ["9M", "9L30", "8V", "7T", "7L30"], + steamroller: ["7L10"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L54", "7M", "7L54"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + superpower: ["8V", "7T"], + swagger: ["7M"], + tackle: ["9L1", "8V", "7L1"], + takedown: ["9M", "8V"], + terablast: ["9M"], + thunder: ["9M", "8V", "7M"], + thunderbolt: ["9M", "8V", "7M"], + thunderpunch: ["9M", "9L22", "8V", "7T", "7L22"], + thundershock: ["8V"], + thunderwave: ["9M", "8V"], + toxic: ["8V", "7M"], + voltswitch: ["9M", "7M"], + wildcharge: ["9M", "7M"], + }, + }, + ponyta: { + learnset: { + agility: ["8M", "8L20", "8V", "7L37", "7V", "6L37", "5L37", "4L33", "3L38"], + allyswitch: ["8M", "7T", "7E", "6E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bounce: ["8M", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L42", "3L45"], + captivate: ["7E", "6E", "5E", "4M"], + charm: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doublekick: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L10", "8V", "7L9", "7V", "6L9", "5L9", "4L10", "3L14"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L50", "8V", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L37", "3M", "3L53"], + firespin: ["8M", "8L35", "8V", "7L25", "7V", "6L25", "5L25", "4L24", "3L25"], + flamecharge: ["8L15", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flamewheel: ["8L25", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L15", "4E", "3E"], + flareblitz: ["8M", "8L55", "8V", "7L49", "6L49", "5L49", "4L46"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M", "7E"], + horndrill: ["8E", "7E", "7V", "6E", "5E", "4E"], + hypnosis: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + inferno: ["8L45", "7L33", "6L33", "5L33"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + mimic: ["7V", "3T"], + morningsun: ["8E", "7E", "6E", "5E", "4E"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + playrough: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V", "7V", "3L1"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + stomp: ["8L30", "8V", "7L17", "7V", "6L17", "5L17", "4L19", "3L19"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + tailwhip: ["8L5", "8V", "7L4", "7V", "6L4", "5L4", "4L6", "3L9"], + takedown: ["8L41", "8V", "7L29", "7V", "6L29", "5L29", "4L28", "3L31"], + thrash: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 1, level: 28}, + ], + }, + ponytagalar: { + learnset: { + agility: ["8M", "8L20"], + allyswitch: ["8M"], + attract: ["8M"], + bodyslam: ["8M"], + bounce: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confusion: ["8L10", "8S0"], + dazzlinggleam: ["8M", "8L45"], + doubleedge: ["8E"], + doublekick: ["8E"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + fairywind: ["8L15", "8S0"], + futuresight: ["8M"], + growl: ["8L1", "8S0"], + healingwish: ["8L55"], + healpulse: ["8L35"], + highhorsepower: ["8M"], + horndrill: ["8E"], + hypnosis: ["8E"], + imprison: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + morningsun: ["8E"], + mysticalfire: ["8M"], + playrough: ["8M"], + protect: ["8M"], + psybeam: ["8L25"], + psychic: ["8M", "8L50"], + rest: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8L30"], + storedpower: ["8M"], + substitute: ["8M"], + swift: ["8M"], + tackle: ["8L1", "8S0"], + tailwhip: ["8L5"], + takedown: ["8L41"], + thrash: ["8E"], + wildcharge: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["tackle", "growl", "confusion", "fairywind"], pokeball: "cherishball"}, + ], + }, + rapidash: { + learnset: { + agility: ["8M", "8L20", "8V", "7L37", "7V", "6L37", "5L37", "4L33", "3L38"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "3S0"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bounce: ["8M", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L47", "3L50"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doublekick: ["8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L56", "8V", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L37", "3M", "3L63"], + firespin: ["8M", "8L35", "8V", "7L25", "7V", "6L25", "5L25", "4L24", "3L25"], + flamecharge: ["8L15", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + flamewheel: ["8L25", "7L13", "6L13", "5L13", "4L15"], + flareblitz: ["8M", "8L63", "8V", "7L49", "6L49", "5L49", "4L56"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L1", "7V", "6L40", "5L40", "4L40", "3L40"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + horndrill: ["8V", "7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8V"], + incinerate: ["6M", "5M"], + inferno: ["8L49", "7L33", "6L33", "5L33"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T"], + megahorn: ["8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1"], + mimic: ["7V", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + payday: ["8M"], + playrough: ["8M"], + poisonjab: ["8M", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["8M", "8L0", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + solarblade: ["8M"], + stomp: ["8L30", "8V", "7L17", "7V", "6L17", "5L17", "4L19", "3L19"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M"], + tackle: ["8L1", "8V", "7V", "3L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L43", "8V", "7L29", "7V", "6L29", "5L29", "4L28", "3L31"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 40, moves: ["batonpass", "solarbeam", "sunnyday", "flamethrower"]}, + ], + encounters: [ + {generation: 2, level: 14, gender: "M"}, + {generation: 3, level: 37}, + ], + }, + rapidashgalar: { + learnset: { + agility: ["8M", "8L20"], + allyswitch: ["8M"], + attract: ["8M"], + batonpass: ["8M"], + bodyslam: ["8M"], + bounce: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confusion: ["8L1"], + dazzlinggleam: ["8M", "8L49"], + drillrun: ["8M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + fairywind: ["8L15"], + futuresight: ["8M"], + gigaimpact: ["8M"], + growl: ["8L1"], + healingwish: ["8L63"], + healpulse: ["8L35"], + highhorsepower: ["8M"], + hyperbeam: ["8M"], + imprison: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + magicroom: ["8M"], + megahorn: ["8M", "8L1"], + mistyterrain: ["8M"], + mysticalfire: ["8M"], + payday: ["8M"], + playrough: ["8M"], + protect: ["8M"], + psybeam: ["8L25"], + psychic: ["8M", "8L56"], + psychicterrain: ["8M"], + psychocut: ["8M", "8L0"], + quickattack: ["8L1"], + rest: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + smartstrike: ["8M"], + snore: ["8M"], + stomp: ["8L30"], + storedpower: ["8M"], + substitute: ["8M"], + swift: ["8M"], + swordsdance: ["8M"], + tackle: ["8L1"], + tailwhip: ["8L1"], + takedown: ["8L43"], + throatchop: ["8M"], + trickroom: ["8M"], + wildcharge: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + slowpoke: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L27", "8M", "8L27", "8V", "7L41", "7V", "6L41", "5L41", "4L43", "3L36"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + belch: ["9E", "8E", "7E", "6E"], + bellydrum: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + bodyslam: ["9M", "8M", "7V", "3T"], + brine: ["8M", "5D", "4M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L12", "8L12", "8V", "7L14", "7V", "6L14", "5L14", "5S2", "4L15", "3L17", "3S0"], + curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L19", "5L19", "5S2", "4L20", "3L24", "3S0"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L3", "8L3", "8V", "7L5", "7V", "6L5", "5L5", "4L6", "3L6", "3S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["9L21", "8L21", "8V", "7L23", "7V", "6L23", "5L23", "5S2", "4T", "4L25", "3L29", "3S0"], + healpulse: ["9L45", "8L45", "7L58", "6L58", "5L58"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mefirst: ["7E", "6E", "5E", "4E"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M", "8V", "7V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L48", "3M", "3L40"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "9L42", "8M", "8L42", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L53", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3M", "3E"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + slackoff: ["9L33", "8L33", "7L36", "6L36", "5L36", "4L39"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + snowscape: ["9M"], + stomp: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9L30", "8M", "8L30", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + takedown: ["9M", "7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L6", "8L6", "8V", "7L9", "7V", "6L9", "5L9", "4L11", "3L13", "3S0"], + waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "5S2", "4M", "4L29", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "4M"], + wonderroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + yawn: ["9L9", "8L9", "8V", "7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L24", "8M", "8L24", "7T", "7L32", "7E", "6T", "6L32", "6E", "5T", "5L32", "5E", "4T", "4L34", "4E"], + }, + eventData: [ + {generation: 3, level: 31, gender: "F", nature: "Naive", ivs: {hp: 17, atk: 11, def: 19, spa: 20, spd: 5, spe: 10}, abilities: ["oblivious"], moves: ["watergun", "confusion", "disable", "headbutt"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["curse", "yawn", "tackle", "growl"], pokeball: "pokeball"}, + {generation: 5, level: 30, moves: ["confusion", "disable", "headbutt", "waterpulse"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + slowpokegalar: { + learnset: { + acid: ["9L6", "8L6"], + amnesia: ["9M", "9L27", "8M", "8L27"], + attract: ["8M"], + avalanche: ["9M"], + belch: ["9E", "8E"], + bellydrum: ["9E", "8E"], + blizzard: ["9M", "8M"], + block: ["9E", "8E"], + bodyslam: ["9M", "8M"], + brine: ["8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + chillingwater: ["9M"], + confusion: ["9L12", "8L12"], + curse: ["9L1", "8L1"], + dig: ["9M", "8M"], + disable: ["9L15", "8L15"], + dive: ["8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["8M"], + grassknot: ["9M", "8M"], + growl: ["9L3", "8L3"], + hail: ["8M"], + headbutt: ["9L21", "8L21"], + healpulse: ["9L45", "8L45"], + helpinghand: ["9M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irontail: ["8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M"], + mudshot: ["9M", "8M"], + payday: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39"], + psyshock: ["9M", "8M"], + raindance: ["9M", "9L42", "8M", "8L42"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scald: ["8M"], + shadowball: ["9M", "8M"], + skillswap: ["9M", "8M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + stomp: ["9E", "8E"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + surf: ["9M", "9L30", "8M", "8L30"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + waterfall: ["9M"], + waterpulse: ["9M", "9L18", "8L18"], + weatherball: ["9M", "8M"], + whirlpool: ["8M"], + wonderroom: ["8M"], + yawn: ["9L9", "8L9"], + zenheadbutt: ["9M", "9L24", "8M", "8L24"], + }, + }, + slowbro: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L27", "8M", "8L27", "8V", "7L43", "7V", "6L43", "5L43", "4L47", "3L36"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L12", "8L12", "8V", "7L14", "7V", "6L14", "5L14", "4L15", "3L17"], + counter: ["7V", "3T"], + curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L19", "5L19", "4L20", "3L24"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + futuresight: ["9L1", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["9L21", "8L21", "8V", "7L23", "7V", "6L23", "5L23", "4T", "4L25", "3L29"], + healpulse: ["9L51", "8L51", "7L1", "6L1", "5L68"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "6S0", "5T", "4M", "3M"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M", "8V", "7V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L54", "3M", "3L44"], + psychicterrain: ["9M", "8M"], + psychup: ["9L41", "8L41", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L62", "4M", "4L67", "3T", "3L55"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "9L46", "8M", "8L46", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L61", "3M"], + razorshell: ["8M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["9M", "8M", "8V", "7M", "6M", "6S0", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + slackoff: ["9L33", "8L33", "7L36", "6L36", "6S0", "5L36", "4L41"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + stomp: ["8V"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9L30", "8M", "8L30", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "6S0", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L11", "3L13"], + waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "4M", "4L29", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "4M"], + withdraw: ["9L1", "8L1", "8V", "7L1", "7V", "6L37", "5L37", "4L37", "3L37"], + wonderroom: ["8M", "7T", "6T", "5T"], + yawn: ["9L9", "8L9", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L24", "8M", "8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4T", "4L34"], + }, + eventData: [ + {generation: 6, level: 100, nature: "Quiet", abilities: ["oblivious"], moves: ["scald", "trickroom", "slackoff", "irontail"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 1, level: 23}, + {generation: 2, level: 20}, + {generation: 3, level: 32}, + {generation: 4, level: 15}, + {generation: 5, level: 35}, + {generation: 7, level: 15}, + ], + }, + slowbrogalar: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M"], + amnesia: ["9M", "9L27", "8M", "8L27"], + attract: ["8M"], + avalanche: ["9M", "8M"], + blizzard: ["9M", "8M"], + bodypress: ["9M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brine: ["8M"], + brutalswing: ["8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + chillingwater: ["9M"], + confusion: ["9L12", "8L12"], + curse: ["9L1", "8L1"], + dig: ["9M", "8M"], + disable: ["9L15", "8L15"], + dive: ["8M"], + drainpunch: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M"], + hail: ["8M"], + haze: ["9M"], + headbutt: ["9L21", "8L21"], + healpulse: ["9L45", "8L45"], + helpinghand: ["9M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icefang: ["9M"], + icepunch: ["9M", "8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M"], + irontail: ["8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "8M"], + payday: ["8M"], + poisonjab: ["9M", "8M"], + powergem: ["9M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39"], + psyshock: ["9M", "8M"], + raindance: ["9M", "9L42", "8M", "8L42"], + razorshell: ["8M"], + rest: ["9M", "8M"], + rockblast: ["9M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["9M"], + scald: ["8M"], + scaryface: ["9M"], + shadowball: ["9M", "8M"], + shellsidearm: ["9L0", "8L0"], + skillswap: ["9M", "8M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + smackdown: ["9M"], + snore: ["8M"], + snowscape: ["9M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + surf: ["9M", "9L30", "8M", "8L30"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + toxic: ["9M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + venoshock: ["9M", "8M"], + waterfall: ["9M"], + watergun: ["8L1"], + waterpulse: ["9M", "9L18", "8L18"], + weatherball: ["9M", "8M"], + whirlpool: ["8M"], + withdraw: ["9L1", "8L1"], + wonderroom: ["8M"], + yawn: ["9L9", "8L9"], + zenheadbutt: ["9M", "9L24", "8M", "8L24"], + }, + }, + slowking: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["7T"], + amnesia: ["9M", "9L27", "8M", "8L27"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + chillyreception: ["9L1"], + confide: ["7M", "6M"], + confusion: ["9L12", "8L12", "7L14", "7V", "6L14", "5L14", "4L15", "3L17"], + counter: ["3T"], + curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "7L19", "7V", "6L19", "5L19", "4L20", "3L24"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["7M", "6M", "5M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + futuresight: ["9L1", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L5", "7V", "6L5", "5L5", "4L6", "3L6"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["9L21", "8L21", "7L23", "7V", "6L23", "5L23", "4T", "4L25", "3L29"], + healpulse: ["9L45", "8L45", "7L1", "6L1", "5L58"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "8M", "8L1", "7L36", "6L36", "5L36", "4L39"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M"], + powergem: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L48", "3M", "3L40"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "9L42", "8M", "8L42", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["9M", "8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9L30", "8M", "8L30", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L43", "3T", "3L36"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + trumpcard: ["7L49", "6L49", "5L49", "4L53"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "7L9", "7V", "6L9", "5L9", "4L11", "3L13"], + waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "4M", "4L29", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + yawn: ["9L9", "8L9", "7L1", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4T", "4L34"], + }, + }, + slowkinggalar: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M"], + amnesia: ["9M", "9L27", "8M", "8L27"], + attract: ["8M"], + avalanche: ["9M", "8M"], + blizzard: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brine: ["8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + chillingwater: ["9M"], + chillyreception: ["9L1"], + confusion: ["9L12", "8L12"], + curse: ["9L1", "8L1"], + dig: ["9M", "8M"], + disable: ["9L15", "8L15"], + dive: ["8M"], + drainpunch: ["9M", "8M"], + earthquake: ["9M", "8M"], + eeriespell: ["9L0", "8L0"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firepunch: ["9M"], + flamethrower: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["9L1", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M"], + hail: ["8M"], + headbutt: ["9L21", "8L21"], + healpulse: ["9L45", "8L45"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icepunch: ["8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M"], + irontail: ["8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M"], + lowsweep: ["9M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + payday: ["8M"], + poisonjab: ["9M"], + powergem: ["9M", "9L1", "8M", "8L1"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39"], + psyshock: ["9M", "8M"], + raindance: ["9M", "9L42", "8M", "8L42"], + razorshell: ["8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scald: ["8M"], + scaryface: ["9M"], + shadowball: ["9M", "8M"], + skillswap: ["9M", "8M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + snarl: ["9M"], + snore: ["8M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + surf: ["9M", "9L30", "8M", "8L30"], + swagger: ["9L1", "8L1"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M", "8M"], + toxic: ["9M", "9L1"], + toxicspikes: ["9M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + venomdrench: ["8M"], + venoshock: ["9M", "8M"], + waterfall: ["9M", "9L1"], + waterpulse: ["9M", "9L18", "8L18"], + weatherball: ["9M", "8M"], + whirlpool: ["8M"], + wonderroom: ["8M"], + yawn: ["9L9", "8L9"], + zenheadbutt: ["9M", "9L24", "8M", "8L24"], + }, + }, + magnemite: { + learnset: { + bide: ["7V"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["7V"], + discharge: ["9L36", "8L36", "7L37", "6L37", "5L43", "4L38"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], + electroweb: ["9E", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["9E", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L35", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gravity: ["9M", "7T", "6T", "5T", "5D", "4T"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L47", "6M", "6L47", "5M", "5L54", "4M", "4L49"], + headbutt: ["8V"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + lightscreen: ["9M", "9L44", "8M", "8L44", "8V", "7M", "7L13", "6M", "5M", "4M"], + lockon: ["9L48", "8L48", "7L41", "7V", "6L41", "5L30", "4L27", "3L32"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L11", "6L17", "5L18", "4L30"], + magnetrise: ["9L28", "8L28", "7T", "7L43", "6T", "6L43", "5T", "5L49", "4T", "4L46"], + metalsound: ["9L40", "8L40", "7L25", "6L25", "5L1", "5D", "4L1", "3L1"], + mimic: ["7V", "3T"], + mirrorshot: ["7L23", "6L23", "5L46", "4L43"], + naturalgift: ["4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + screech: ["9L24", "8M", "8L24", "8V", "7L35", "7V", "6L35", "5L38", "4L33", "3L44"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L17", "7V", "6L11", "5L14", "4L14", "3L16"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22", "3L26"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9L4", "8L4", "8V", "7L1", "7V", "6L4", "5L11", "4L11", "3L11"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T", "3L38"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L1", "8L1", "8V", "7L5", "7V", "6L7", "5L6", "5D", "4L6", "3L6"], + thunderwave: ["9M", "9L8", "8M", "8L8", "8V", "7M", "7L11", "7V", "6M", "6L13", "5M", "5L17", "4M", "4L17", "3T", "3L21"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L52", "8L52", "7L49", "7V", "6L49", "5L59", "4L54", "3L50"], + }, + encounters: [ + {generation: 1, level: 16}, + ], + }, + magneton: { + learnset: { + bide: ["7V"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["7V"], + discharge: ["9L40", "8L40", "7L43", "6L43", "5L46", "4L40"], + doubleedge: ["7V", "3T", "3S0"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "9L34", "8M", "8L34", "8V", "7M", "7L33", "6M", "6L33", "5M", "5L39", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], + headbutt: ["8V"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + lightscreen: ["9M", "9L52", "8M", "8L52", "8V", "7M", "7L13", "6M", "5M", "4M"], + lockon: ["9L58", "8L58", "7L49", "7V", "6L49", "5L30", "4L27", "3L35"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L1", "6L17", "5L34", "4L30"], + magnetrise: ["9L28", "8L28", "7T", "7L53", "6T", "6L53", "5T", "5L54", "4T", "4L50"], + metalsound: ["9L46", "8L46", "7L25", "6L25", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mirrorshot: ["7L23", "6L23", "5L50", "4L46"], + naturalgift: ["4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + screech: ["9L24", "8M", "8L24", "8V", "7L39", "7V", "6L39", "5L40", "4L34", "3L53"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L17", "7V", "6L1", "5L14", "4L14", "3L16"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22", "3L26"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L13", "5M", "5L17", "4M", "4L17", "3T", "3L21"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["9L0", "8M", "8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L44"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L64", "8L64", "7L1", "7V", "6L1", "5L66", "4L60", "3L62"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["refresh", "doubleedge", "raindance", "thunder"]}, + ], + encounters: [ + {generation: 2, level: 5}, + {generation: 3, level: 26}, + {generation: 4, level: 17, pokeball: "safariball"}, + ], + }, + magnezone: { + learnset: { + allyswitch: ["8M", "7T"], + barrier: ["7L1", "6L1", "5L1", "4L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + discharge: ["9L40", "8L40", "7L43", "6L43", "5L46", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "9L34", "8M", "8L34", "7M", "7L33", "6M", "6L33", "5M", "5L39", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "9L52", "8M", "8L52", "7M", "7L13", "6M", "5M", "4M"], + lockon: ["9L58", "8L58", "7L49", "6L49", "5L30", "4L27"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L1", "6L17", "5L34", "4L30"], + magneticflux: ["9L1", "8L1", "7L1", "6L1"], + magnetrise: ["9L28", "8L28", "7T", "7L53", "6T", "6L53", "5T", "5L54", "4T", "4L50"], + metalsound: ["9L46", "8L46", "7L25", "6L25", "5L1", "4L1"], + mirrorcoat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + mirrorshot: ["7L23", "6L23", "5L50", "4L46"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + screech: ["9L24", "8M", "8L24", "7L39", "6L39", "5L40", "4L34"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + sonicboom: ["7L17", "6L1", "5L14", "4L14"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + supersonic: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thundershock: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L13", "5M", "5L17", "4M", "4L17"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["9L1", "8M", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L64", "8L64", "7L1", "6L1", "5L66", "4L60"], + }, + }, + farfetchd: { + learnset: { + acrobatics: ["8M", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + aerialace: ["8L20", "7M", "7L9", "6M", "6L9", "5M", "5L13", "4M", "4L13", "3M", "3S1"], + agility: ["8M", "8L60", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L36"], + aircutter: ["8L25", "7L21", "6L21", "5L21", "4T", "4L21"], + airslash: ["8M", "8L50", "8V", "7L49", "6L49", "5L49", "4L37"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "3S1"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bravebird: ["8M", "8L65", "7L1", "6L1", "5L55"], + brutalswing: ["8M", "7M"], + captivate: ["4M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + covet: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["8L15", "8V", "7V", "6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L35", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L43", "3L46"], + featherdance: ["8E", "7E", "6E", "5E", "4E", "3E"], + feint: ["8E", "8V", "7L43", "6L43", "5L43", "4L43"], + finalgambit: ["8E", "7E"], + firstimpression: ["8E", "7E"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fly: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M", "8V"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L16"], + furycutter: ["8L10", "7L1", "6L1", "5L1", "5D", "4T", "4L1", "3L26"], + gust: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L9", "4T", "4L9", "3L21"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafblade: ["8M", "8L55", "7E", "6E", "5E", "5D", "4E"], + leer: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L11"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["7E", "7V", "6E", "5E", "4T", "4E", "3T"], + naturalgift: ["4M"], + nightslash: ["8E", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4L33", "4E"], + ominouswind: ["4T"], + peck: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["5M", "4M"], + poisonjab: ["8M", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quickattack: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + razorleaf: ["8V"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "7E", "6E", "5E"], + roost: ["8E", "8V", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L6"], + secretpower: ["6M", "4M", "3M"], + simplebeam: ["8E", "7E", "6E"], + skullbash: ["7V"], + skyattack: ["8E", "8V", "7T", "6T", "5T"], + slash: ["8L40", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L41", "3S1"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarblade: ["8M"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "4E", "3M", "3E"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M", "8L45", "8V", "7M", "7L25", "7V", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3T", "3L31", "3S1"], + tailwind: ["7T", "6T", "5T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + whirlwind: ["7V"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + yawn: ["3S0"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["yawn", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 36, moves: ["batonpass", "slash", "swordsdance", "aerialace"]}, + ], + encounters: [ + {generation: 1, level: 3}, + {generation: 3, level: 3, gender: "M", nature: "Adamant", ivs: {hp: 20, atk: 25, def: 21, spa: 24, spd: 15, spe: 20}, abilities: ["keeneye"], pokeball: "pokeball"}, + ], + }, + farfetchdgalar: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["8M"], + bravebird: ["8M", "8L65"], + brickbreak: ["8M", "8L40"], + brutalswing: ["8M", "8L20"], + closecombat: ["8M"], + counter: ["8E"], + covet: ["8E"], + curse: ["8E"], + defog: ["8L35"], + detect: ["8L25"], + doubleedge: ["8E"], + dualwingbeat: ["8T"], + endure: ["8M"], + facade: ["8M"], + feint: ["8E"], + finalgambit: ["8L60"], + flail: ["8E"], + focusenergy: ["8M"], + furycutter: ["8L10"], + helpinghand: ["8M"], + knockoff: ["8L30"], + leafblade: ["8M", "8L55"], + leer: ["8L5"], + nightslash: ["8E"], + peck: ["8L1"], + poisonjab: ["8M"], + protect: ["8M"], + quickattack: ["8E"], + quickguard: ["8E"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + rocksmash: ["8L15"], + round: ["8M"], + sandattack: ["8L1"], + simplebeam: ["8E"], + skyattack: ["8E"], + slam: ["8L50"], + sleeptalk: ["8M"], + snore: ["8M"], + solarblade: ["8M"], + steelwing: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M"], + swordsdance: ["8M", "8L45"], + throatchop: ["8M"], + workup: ["8M"], + }, + }, + sirfetchd: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["8M"], + bravebird: ["8M", "8L65"], + brickbreak: ["8M", "8L40"], + brutalswing: ["8M", "8L20", "8S0"], + closecombat: ["8M"], + coaching: ["8T"], + defog: ["8L35"], + detect: ["8L25", "8S0"], + dualwingbeat: ["8T"], + endure: ["8M"], + facade: ["8M"], + finalgambit: ["8L60"], + firstimpression: ["8L1"], + focusenergy: ["8M"], + furycutter: ["8L1", "8S0"], + grassyglide: ["8T"], + helpinghand: ["8M"], + irondefense: ["8M", "8L0"], + knockoff: ["8L30"], + leafblade: ["8M", "8L55"], + leer: ["8L1"], + meteorassault: ["8L70", "8S0"], + peck: ["8L1"], + poisonjab: ["8M"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + rocksmash: ["8L15"], + round: ["8M"], + sandattack: ["8L1"], + slam: ["8L50"], + sleeptalk: ["8M"], + snore: ["8M"], + solarblade: ["8M"], + steelwing: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M"], + swordsdance: ["8M", "8L45"], + throatchop: ["8M"], + workup: ["8M"], + }, + eventData: [ + {generation: 8, level: 80, gender: "M", nature: "Brave", abilities: ["steadfast"], ivs: {hp: 30, atk: 31, def: 31, spa: 30, spd: 30, spe: 31}, moves: ["meteorassault", "brutalswing", "furycutter", "detect"], pokeball: "pokeball"}, + ], + }, + doduo: { + learnset: { + acupressure: ["7L33", "6L28", "5L28", "4L28"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L26", "7V", "6L33", "5L37", "4L37", "3L45"], + aircutter: ["4T"], + assurance: ["7E", "6E", "5E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + bravebird: ["7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doublehit: ["7L22", "6L25", "5L32", "4L32"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L43", "7V", "6L37", "5L41", "4L41", "3L37"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L47", "7E", "6T", "6L45", "6E", "5T", "5L46", "5E", "4T", "4L46", "4E", "3E"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + flail: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L13"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + jumpkick: ["8V", "7L40"], + knockoff: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mirrormove: ["7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L19", "6L21", "5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L15", "7V", "6L17", "5L19", "4L19", "3L9"], + quickattack: ["8V", "7L5", "7E", "7V", "6L5", "6E", "5L5", "5E", "4L5", "4E", "3E"], + rage: ["8V", "7L8", "7V", "6L9", "5L10", "4L10", "3L25"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "5D", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + skyattack: ["7V", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + swordsdance: ["8V", "7M", "7L36"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8V", "7L50", "6L49", "5L50"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["7V", "3L21"], + uproar: ["7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L33"], + whirlwind: ["7V"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 18}, + {generation: 2, level: 4}, + ], + }, + dodrio: { + learnset: { + acupressure: ["7L34", "6L28", "5L28", "4L28"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L26", "7V", "6L35", "5L41", "4L41", "3L60", "3S0"], + aircutter: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doublehit: ["7L22"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L47", "7V", "6L41", "5L47", "4L47", "3L47", "3S0"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L52", "6T", "6L53", "5T", "5L54", "4T", "4L54"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L1"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + jumpkick: ["8V", "7L43"], + knockoff: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mirrormove: ["8V"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L19", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L15", "7V", "6L17", "5L19", "4L19", "3L1"], + quickattack: ["8V", "7L1", "6L1", "5L1", "4L1"], + rage: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L25"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + stompingtantrum: ["7T"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["8V"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + swordsdance: ["8V", "7M", "7L38"], + takedown: ["7V"], + taunt: ["8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8V", "7L56", "6L59", "5L60"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8V", "7L1", "7V", "6L25", "5L34", "4L34", "3L21", "3S0"], + uproar: ["7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L38"], + whirlwind: ["7V"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 34, moves: ["batonpass", "drillpeck", "agility", "triattack"]}, + ], + encounters: [ + {generation: 1, level: 29}, + {generation: 2, level: 10, gender: "F"}, + {generation: 2, level: 30}, + {generation: 3, level: 29, pokeball: "safariball"}, + {generation: 4, level: 15, gender: "F", nature: "Impish", ivs: {hp: 20, atk: 20, def: 20, spa: 15, spd: 15, spe: 15}, abilities: ["runaway"], pokeball: "pokeball"}, + ], + }, + seel: { + learnset: { + aquajet: ["8V", "7L31", "6L31", "5L31", "4L31"], + aquaring: ["7L23", "6L23", "5L23", "4L23"], + aquatail: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L21"], + belch: ["7E", "6E"], + bide: ["7V"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + disable: ["7E", "7V", "6E", "5E", "4E", "3E"], + dive: ["7L41", "6M", "6L41", "5M", "5L41", "4T", "4L41", "3M"], + doubleedge: ["8V", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8V", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3E"], + endure: ["7V", "4M", "3T"], + entrainment: ["7E", "6E"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["7E", "6E", "5E", "4E", "3E"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L9"], + hail: ["7M", "7L53", "6M", "6L53", "5M", "5L53", "4M", "3M"], + headbutt: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4T", "4L1", "3L1"], + helpinghand: ["8V", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["7E", "7V", "6E", "5E", "4E", "3E"], + icebeam: ["8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L41", "3S0"], + iceshard: ["8V", "7L17", "6L17", "5L17", "4L17"], + iciclespear: ["7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["7T", "7L11", "7V", "6T", "6L11", "5T", "5L11", "4T", "4L11", "3T", "3L17"], + irontail: ["8V", "7T", "7E", "6T", "6E", "5T", "5E"], + lick: ["7E", "7V", "6E", "5E", "4E", "3E"], + megahorn: ["8V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + payday: ["8V", "7V"], + peck: ["7V"], + perishsong: ["7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L51", "7V", "6M", "6L51", "5M", "5L51", "4M", "4L51", "3M", "3L49", "3S0"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + skullbash: ["7V"], + slam: ["7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["7M", "7E", "7V", "6M", "6E", "5T", "5E", "5D", "4M", "3T"], + smartstrike: ["7M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spitup: ["7E", "6E", "5E", "4E"], + stockpile: ["7E", "6E", "5E", "4E"], + strength: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["7E", "6E", "5E", "4E"], + takedown: ["8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7L7", "6L7", "5L7", "4L7"], + whirlpool: ["7V", "4M"], + }, + eventData: [ + {generation: 3, level: 23, abilities: ["thickfat"], moves: ["helpinghand", "surf", "safeguard", "icebeam"]}, + ], + encounters: [ + {generation: 1, level: 22}, + ], + }, + dewgong: { + learnset: { + aquajet: ["8V", "7L31", "6L31", "5L31", "4L31"], + aquaring: ["7L23", "6L23", "5L23", "4L23"], + aquatail: ["7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L43"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L1"], + avalanche: ["4M"], + bide: ["7V"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["7L45", "6M", "6L45", "5M", "5L45", "4T", "4L41", "3M"], + doubleedge: ["8V", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8V", "7L13", "6L13", "5L13", "4L13"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8V"], + fling: ["7M", "6M", "5M", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["7M", "7L65", "6M", "6L65", "5M", "5L65", "4M", "3M"], + headbutt: ["8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + helpinghand: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["8V", "7V"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L47", "3M", "3L51"], + iceshard: ["8V", "7L17", "6L17", "5L17", "4L17"], + icywind: ["7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + irontail: ["8V", "7T", "6T", "5T"], + liquidation: ["7T"], + megahorn: ["8V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + payday: ["8V", "7V"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L61", "7V", "6M", "6L61", "5M", "5L61", "4M", "4L51", "3M", "3L64"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["7L1", "6L34", "5L34", "4L34", "3L34"], + signalbeam: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["7M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["8V", "7L39", "7V", "6L39", "5L39", "4L37", "3L42"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["7V", "4M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 5}, + {generation: 3, level: 32}, + {generation: 5, level: 30}, + {generation: 6, level: 30, maxEggMoves: 1}, + ], + }, + grimer: { + learnset: { + acidarmor: ["9L43", "8V", "7L43", "7V", "6L40", "5L39", "4L39", "3L34"], + acidspray: ["9M", "9E", "7E", "6E", "5E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L46", "7L46", "6L46"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + dig: ["9M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L8"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "7L26", "6M", "6L26", "5M", "5L28", "4M", "4L28"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L49", "4T", "4L44"], + harden: ["9L4", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L4"], + haze: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + headbutt: ["8V"], + helpinghand: ["9M", "8V", "3S0"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + lick: ["7E", "7V", "6E", "5E", "4E", "3E"], + meanlook: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + megadrain: ["8V", "7V"], + memento: ["9L48", "7L48", "6L48", "5L52", "4L49", "3L53"], + metronome: ["9M"], + mimic: ["7V", "3T"], + minimize: ["9L21", "8V", "7L21", "7V", "6L18", "5L17", "4L17", "3L19", "3S0"], + mudbomb: ["7L18", "6L18", "5L23", "4L23"], + mudshot: ["9M", "9L18"], + mudslap: ["9M", "9L7", "7L7", "7V", "6L7", "5L7", "4T", "4L7", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + poisongas: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8V", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M", "7E", "6E", "5E"], + screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L33", "4L33", "3L26"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "6M", "5M", "4M"], + shadowpunch: ["9E", "7E", "6E", "5E", "4E", "3E", "3S0"], + shadowsneak: ["9E", "7E", "6E", "5E", "5D", "4E"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L20", "4L20", "3L13"], + sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L36", "4M", "4L36", "3M", "3L43", "3S0"], + sludgewave: ["9L32", "7M", "7L32", "6M", "6L32", "5M", "5L44"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spitup: ["9E", "7E", "6E", "5E", "4E"], + stockpile: ["9E", "7E", "6E", "5E", "4E"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9E", "7E", "6E", "5E", "4E"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 23, moves: ["helpinghand", "sludgebomb", "shadowpunch", "minimize"]}, + ], + encounters: [ + {generation: 1, level: 23}, + ], + }, + grimeralola: { + learnset: { + acidarmor: ["9L43", "8V", "7L43"], + acidspray: ["9M", "9L15", "7L15"], + assurance: ["9E", "7E"], + attract: ["7M"], + belch: ["9L46", "7L46"], + bite: ["9L7", "8V", "7L7", "7S0"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["7M"], + clearsmog: ["9E", "7E"], + confide: ["7M"], + crunch: ["9M", "9L32", "8V", "7L32"], + curse: ["9E", "7E"], + darkpulse: ["9M"], + dig: ["9M", "8V"], + disable: ["9L12", "8V", "7L12"], + doubleteam: ["7M"], + drainpunch: ["9M"], + embargo: ["7M"], + endure: ["9M"], + explosion: ["7M"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M", "7L26"], + frustration: ["7M"], + gastroacid: ["7T"], + gigadrain: ["9M", "7T"], + gigaimpact: ["9M"], + gunkshot: ["9M", "9L40", "7T", "7L40"], + harden: ["9L4", "8V", "7L4", "7S0"], + headbutt: ["8V"], + helpinghand: ["9M", "8V"], + hex: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + icepunch: ["9M", "8V", "7T"], + imprison: ["9M", "7E"], + infestation: ["7M"], + knockoff: ["9M", "9L29", "7T", "7L29"], + meanlook: ["9E", "7E"], + megadrain: ["8V"], + memento: ["9L48", "7L48"], + metronome: ["9M"], + minimize: ["9L21", "8V", "7L21"], + mudshot: ["9M"], + mudslap: ["9M"], + painsplit: ["7T"], + payback: ["7M"], + poisonfang: ["9L18", "7L18"], + poisongas: ["9L1", "8V", "7L1", "7S0"], + poisonjab: ["9M", "8V", "7M"], + pound: ["9L1", "8V", "7L1", "7S0"], + poweruppunch: ["7E"], + protect: ["9M", "8V", "7M"], + pursuit: ["7E"], + quash: ["7M"], + raindance: ["9M", "7M"], + recycle: ["9E"], + rest: ["9M", "8V", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8V", "7M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandstorm: ["9M"], + scaryface: ["9M", "7E"], + screech: ["9L37", "8V", "7L37"], + selfdestruct: ["8V"], + shadowball: ["9M", "8V", "7M"], + shadowsneak: ["9E", "7E"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + sludgebomb: ["9M", "8V", "7M"], + sludgewave: ["7M"], + snarl: ["9M", "7M"], + snore: ["7T"], + spite: ["9M", "9E", "7T", "7E"], + spitup: ["9E", "7E"], + stockpile: ["9E", "7E"], + stoneedge: ["9M", "7M"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + swagger: ["7M"], + swallow: ["9E", "7E"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M", "8V", "7T"], + torment: ["7M"], + toxic: ["9M", "9L26", "8V", "7M"], + venoshock: ["9M", "7M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 7, level: 10, abilities: ["poisontouch"], moves: ["bite", "harden", "poisongas", "pound"], pokeball: "cherishball"}, + ], + }, + muk: { + learnset: { + acidarmor: ["9L46", "8V", "7L46", "7V", "6L43", "5L42", "4L44", "3L34"], + acidspray: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L52", "7L52", "6L52"], + bide: ["7V"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["7V"], + darkpulse: ["9M", "8V", "7M", "6M", "5T", "4M"], + dig: ["9M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L8"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "7L26", "6M", "6L26", "5M", "5L28", "4M", "4L28"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L58", "4T", "4L54"], + harden: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + haze: ["9M", "8V"], + headbutt: ["8V"], + helpinghand: ["9M", "8V"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + knockoff: ["9M"], + lashout: ["9M"], + lunge: ["9M"], + megadrain: ["8V", "7V"], + memento: ["9L57", "7L57", "6L57", "5L64", "4L65", "3L61"], + metronome: ["9M"], + mimic: ["7V", "3T"], + minimize: ["9L21", "8V", "7L21", "7V", "6L18", "5L17", "4L17", "3L19"], + moonblast: ["8V"], + mudbomb: ["7L18", "6L18", "5L23", "4L23"], + mudshot: ["9M", "9L18"], + mudslap: ["9M", "9L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + poisongas: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L33", "4L33", "3L26"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L20", "4L20", "3L13"], + sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L36", "4M", "4L36", "3M", "3L47"], + sludgewave: ["9L32", "7M", "7L32", "6M", "6L32", "5M", "5L50"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + venomdrench: ["7L1", "6L38"], + venoshock: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 1, level: 25}, + {generation: 2, level: 5}, + {generation: 3, level: 32}, + {generation: 4, level: 15}, + {generation: 5, level: 5}, + {generation: 5, level: 35, isHidden: true}, + {generation: 6, level: 30}, + ], + }, + mukalola: { + learnset: { + acidarmor: ["9L46", "8V", "7L46"], + acidspray: ["9M", "9L15", "7L15"], + attract: ["7M"], + belch: ["9L52", "7L52"], + bite: ["9L1", "8V", "7L1"], + block: ["7T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], + brutalswing: ["7M"], + confide: ["7M"], + crunch: ["9M", "9L32", "8V", "7L32"], + darkpulse: ["9M", "8V", "7M"], + dig: ["9M", "8V"], + disable: ["9L12", "8V", "7L12"], + doubleteam: ["7M"], + drainpunch: ["9M"], + embargo: ["7M"], + endure: ["9M"], + explosion: ["7M"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M", "7L26"], + focusblast: ["9M", "7M"], + focuspunch: ["9M", "7T"], + foulplay: ["8V"], + frustration: ["7M"], + gastroacid: ["7T"], + gigadrain: ["9M", "7T"], + gigaimpact: ["9M", "7M"], + gunkshot: ["9M", "9L40", "7T", "7L40"], + harden: ["9L1", "8V", "7L1"], + haze: ["9M", "8V"], + headbutt: ["8V"], + helpinghand: ["9M", "8V"], + hex: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8V", "7M"], + icepunch: ["9M", "8V", "7T"], + imprison: ["9M"], + infestation: ["7M"], + knockoff: ["9M", "9L29", "7T", "7L29"], + lashout: ["9M"], + megadrain: ["8V"], + memento: ["9L57", "7L57"], + metronome: ["9M"], + minimize: ["9L21", "8V", "7L21"], + moonblast: ["8V"], + mudshot: ["9M"], + mudslap: ["9M"], + painsplit: ["7T"], + payback: ["7M"], + poisonfang: ["9L18", "7L18"], + poisongas: ["9L1", "8V", "7L1"], + poisonjab: ["9M", "8V", "7M"], + pound: ["9L1", "8V", "7L1"], + protect: ["9M", "8V", "7M"], + quash: ["7M"], + raindance: ["9M", "7M"], + recycle: ["7T"], + rest: ["9M", "8V", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8V", "7M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L37", "8V", "7L37"], + selfdestruct: ["8V"], + shadowball: ["9M", "8V", "7M"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + sludgebomb: ["9M", "8V", "7M"], + sludgewave: ["7M"], + snarl: ["9M", "7M"], + snore: ["7T"], + spite: ["9M", "7T"], + stoneedge: ["9M", "7M"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M", "8V", "7T"], + torment: ["7M"], + toxic: ["9M", "9L26", "8V", "7M"], + venomdrench: ["7L1"], + venoshock: ["9M", "7M"], + zenheadbutt: ["9M"], + }, + }, + shellder: { + learnset: { + aquaring: ["9E", "8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9L24", "8L24", "8V", "7L37", "7V", "6L37", "5L37", "4L32", "3L17", "3S0", "3S2"], + avalanche: ["9M", "8M", "7E", "6E", "5E"], + barrier: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "7L44", "6L44", "5L44", "4M", "4L44"], + bubblebeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + captivate: ["4M"], + chillingwater: ["9M"], + clamp: ["8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L41"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L48", "8M", "8L48", "8V", "7L61", "6L61", "5L61"], + icebeam: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L52", "4M", "4L49", "3M", "3L49"], + iceshard: ["9L8", "8L8", "8V", "7L28", "6L28", "5L28", "4L28"], + icespinner: ["9M"], + iciclespear: ["9M", "8M", "7L13", "7E", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3L8", "3E", "3S0", "3S1"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L40"], + leer: ["9L12", "8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L33"], + lifedew: ["9E", "8E"], + liquidation: ["9M", "8M", "7T"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "9L28", "8M", "8L28", "8V", "7M", "7L16", "7V", "6M", "6L16", "5M", "5L16", "4M", "4L16", "3M", "3L25"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["7E", "7V", "6E", "5E", "4E", "3E"], + razorshell: ["9L32", "8M", "8L32", "7L32", "6L32", "5L32"], + reflect: ["8V", "7V"], + refresh: ["3S2"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M", "7E", "6E", "5E", "4E"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shellsmash: ["9L44", "8L44", "8V", "7L56", "6L56", "5L56"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikes: ["9M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["9L20", "8L20", "8V", "7L8", "7V", "6L8", "5L8", "4L8", "3L9", "3S0"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + takedown: ["9M", "7E", "7V", "6E", "5E", "4E", "3E", "3S2"], + teleport: ["8V", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + triattack: ["8M", "8V", "7V"], + twineedle: ["7E", "6E", "5E"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["9L16", "8M", "8L16", "7L40", "7V", "6L40", "5L40", "4M", "4L37"], + withdraw: ["9L4", "8L4", "8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L1", "3S0", "3S1"], + }, + eventData: [ + {generation: 3, level: 24, gender: "F", nature: "Brave", ivs: {hp: 5, atk: 19, def: 18, spa: 5, spd: 11, spe: 13}, abilities: ["shellarmor"], moves: ["withdraw", "iciclespear", "supersonic", "aurorabeam"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", abilities: ["shellarmor"], moves: ["tackle", "withdraw", "iciclespear"], pokeball: "pokeball"}, + {generation: 3, level: 29, abilities: ["shellarmor"], moves: ["refresh", "takedown", "surf", "aurorabeam"]}, + ], + encounters: [ + {generation: 1, level: 10}, + ], + }, + cloyster: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + avalanche: ["9M", "8M", "4M"], + barrier: ["8V"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + captivate: ["4M"], + chillingwater: ["9M"], + clamp: ["7V"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "5S0", "4M", "3M"], + hydropump: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + iceshard: ["9L1", "8L1"], + icespinner: ["9M"], + iciclecrash: ["9L1", "8L1", "7L50", "6L50", "5L52"], + iciclespear: ["9M", "9L0", "8M", "8L0", "5S0"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "4T"], + leer: ["9L1", "8L1", "8V"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M", "7T"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["8M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + protect: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["9L5", "8M", "8L1", "5S0"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M", "5S0"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shellsmash: ["9L1", "8L1", "7L1", "6L1"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M", "8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikecannon: ["8V", "7L13", "7V", "6L13", "5L13", "4L40", "3L41"], + spikes: ["9M", "9L1", "8M", "8L1", "7L28", "7V", "6L28", "5L28", "4L28", "3L33"], + steelroller: ["8T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + triattack: ["8M", "8V", "7V"], + twineedle: ["8V"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "8V", "7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["9L1", "8M", "8L1", "7V", "4M"], + withdraw: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 5, level: 30, gender: "M", nature: "Naughty", abilities: ["skilllink"], moves: ["iciclespear", "rockblast", "hiddenpower", "razorshell"], pokeball: "pokeball"}, + ], + }, + gastly: { + learnset: { + acidspray: ["9M"], + allyswitch: ["8M", "7T"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L21"], + corrosivegas: ["8T"], + curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + darkpulse: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L36", "6M", "6L36", "5T", "5L36", "4M", "4L36"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + destinybond: ["9L44", "8L44", "7L40", "7V", "6L40", "5L40", "4L40", "3L33"], + disable: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["9L48", "8L48", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L28"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + grudge: ["8E", "7E", "6E", "5E", "4E", "3E"], + gunkshot: ["9M"], + haze: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hex: ["9M", "9L24", "8M", "8L24", "7L43", "6L43", "5L43"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L4", "8L4", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + icepunch: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + lick: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L8", "8L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L13"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7L47", "7V", "6L47", "5L47", "4L43", "3T", "3L41"], + nightshade: ["9M", "9L28", "8L28", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L16"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L26", "6M", "6L26", "5M", "5L26", "4M", "4L26"], + perishsong: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + poisongas: ["8V"], + poisonjab: ["9M", "8M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["9E", "8E", "7E", "6E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M", "7E", "6E", "5E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L36"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "5D"], + smog: ["9E", "8E", "8V", "7E", "6E", "5E"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "9L16", "8L16", "7T", "7L5", "7V", "6T", "6L5", "5T", "5L5", "4T", "4L5", "3L8"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L32", "8L32", "8V", "7L22", "6L22", "5L22", "4T", "4L22"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7V"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9E", "8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "4E", "3E"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 18}, + ], + }, + haunter: { + learnset: { + acidspray: ["9M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "5L19", "5S0", "4L19", "3L21"], + corrosivegas: ["8T"], + curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + darkpulse: ["9M", "9L42", "8M", "8L42", "8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + destinybond: ["9L54", "8L54", "7L50", "7V", "6L50", "5L50", "4L50", "3L39"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["9L60", "8L60", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3T", "3L31"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gunkshot: ["9M"], + haze: ["9M"], + headbutt: ["8V"], + hex: ["9M", "9L24", "8M", "8L24", "7L55", "6L55", "5L55"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + lick: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L1", "8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L13"], + megadrain: ["8V", "7V"], + metronome: ["9M"], + mimic: ["7V", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7L61", "7V", "6L61", "5L61", "4L55", "3T", "3L53"], + nightshade: ["9M", "9L30", "8L30", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L16"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S0", "4M", "4L28"], + phantomforce: ["9M"], + poisongas: ["8V"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3M", "3L45"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowpunch: ["9L0", "8L0", "7L1", "6L25", "5L25", "5S0", "4L25", "3L25"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M"], + smog: ["8V"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L36", "8L36", "8V", "7L22", "6L22", "5L22", "5S0", "4T", "4L22"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7V"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["confuseray", "suckerpunch", "shadowpunch", "payback"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 20}, + {generation: 2, level: 15}, + {generation: 3, level: 20}, + {generation: 4, level: 16}, + ], + }, + gengar: { + learnset: { + acidspray: ["9M"], + allyswitch: ["8M", "7T"], + astonish: ["6S4"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "6S1", "6S2", "6S4", "5L19", "4L19", "3L21", "3S0"], + corrosivegas: ["8T"], + counter: ["7V", "3T"], + curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13", "3S0"], + darkpulse: ["9M", "9L42", "8M", "8L42", "8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], + dazzlinggleam: ["9M", "8M", "8V", "8S7", "7M", "6M"], + destinybond: ["9L54", "8L54", "7L50", "7V", "6L50", "6S3", "5L50", "4L50", "3L39"], + disable: ["8V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["9L60", "8L60", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3T", "3L31"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + haze: ["9M", "8V"], + headbutt: ["8V", "7V", "4T"], + hex: ["9M", "9L24", "8M", "8L24", "7L55", "6L55", "5L55"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "6S5", "6S6", "5M", "4M", "3M"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S5", "6S6", "5L1", "4L1", "3L1"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], + infestation: ["7M", "6M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lick: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L1", "8L1", "7L8", "7V", "6L8", "6S5", "6S6", "5L8", "4L8", "3L13"], + megadrain: ["8V", "7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], + mimic: ["7V", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7L61", "7V", "6L61", "5L61", "4L55", "3T", "3L53"], + nightshade: ["9M", "9L30", "8L30", "8V", "7L15", "7V", "6L15", "6S2", "5L15", "4L15", "3L16", "3S0"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + perishsong: ["9L1", "8L1"], + phantomforce: ["9M", "8M"], + poisongas: ["8V"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poltergeist: ["9M", "8T"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "6S1", "6S5", "6S6", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["9L1", "8L1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9L48", "8M", "8L48", "8V", "8S7", "7M", "7L33", "7V", "6M", "6L33", "6S3", "6S4", "5M", "5L33", "4M", "4L33", "3M", "3L45"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowpunch: ["9L1", "8L1", "7L1", "6L25", "6S1", "6S2", "5L25", "4L25", "3L25"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "8S7", "7M", "6M", "6S3", "5M", "4M", "3M"], + sludgewave: ["8M", "6S4"], + smog: ["8V"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1", "3S0"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L36", "8L36", "8V", "7L22", "6L22", "6S1", "6S2", "5L22", "4T", "4L22"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "8S7", "7M", "6M", "6S3", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 23, gender: "F", nature: "Hardy", ivs: {hp: 19, atk: 14, def: 0, spa: 14, spd: 17, spe: 27}, moves: ["spite", "curse", "nightshade", "confuseray"], pokeball: "pokeball"}, + {generation: 6, level: 25, nature: "Timid", moves: ["psychic", "confuseray", "suckerpunch", "shadowpunch"], pokeball: "cherishball"}, + {generation: 6, level: 25, moves: ["nightshade", "confuseray", "suckerpunch", "shadowpunch"], pokeball: "cherishball"}, + {generation: 6, level: 50, moves: ["shadowball", "sludgebomb", "willowisp", "destinybond"], pokeball: "cherishball"}, + {generation: 6, level: 25, shiny: true, moves: ["shadowball", "sludgewave", "confuseray", "astonish"], pokeball: "duskball"}, + {generation: 6, level: 50, shiny: true, gender: "M", moves: ["meanlook", "hypnosis", "psychic", "hyperbeam"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["meanlook", "hypnosis", "psychic", "hyperbeam"], pokeball: "cherishball"}, + {generation: 8, level: 80, gender: "M", nature: "Naughty", abilities: ["cursedbody"], ivs: {hp: 30, atk: 30, def: 30, spa: 31, spd: 31, spe: 31}, moves: ["shadowball", "sludgebomb", "dazzlinggleam", "willowisp"], pokeball: "pokeball"}, + ], + }, + onix: { + learnset: { + ancientpower: ["4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5D", "4L1", "3L8"], + block: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["8L16", "7L4", "7V", "6L4", "5L46", "4L38"], + defensecurl: ["8E", "7E", "6E", "5E", "4E"], + dig: ["8M", "8L44", "8V", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "3M"], + doubleedge: ["8L56", "8V", "7L49", "7V", "6L49", "5L57", "4L46", "3T", "3L56"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L12", "7L25", "6L25", "5L41", "4L33", "3L30"], + dragondance: ["8M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8E", "8V", "7M", "6M", "5M"], + drillrun: ["8M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "7L20", "6M", "6L20", "5M", "4M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], + headbutt: ["8V", "7V", "4T"], + headsmash: ["8E"], + heavyslam: ["8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8L48", "8V", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L49", "4M", "4L38", "3M", "3L45"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + rage: ["8V", "7L13", "7V", "6L13", "5L14", "4L14", "3L23"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "7E", "6E", "5E", "4E"], + rockclimb: ["7E", "6E", "5E", "5D", "4M"], + rockpolish: ["8L8", "7M", "7L19", "6M", "6L19", "5M", "5L30", "4M", "4L30"], + rockslide: ["8M", "8L20", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8L1", "8V", "7L7", "7V", "6L7", "5L9", "4L9", "3L12"], + rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L17", "4M", "4L17", "3M"], + rollout: ["8E", "7E", "6E", "5E", "4T", "4E"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L40", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L25", "4M", "4L22", "3M", "3L33"], + sandtomb: ["8M", "8L28", "7L37", "6L37", "5L54", "4L41", "3L49"], + scaryface: ["8M"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "8V", "7L31", "7V", "6L31", "5L6", "4L6", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + skullbash: ["7V"], + slam: ["8L36", "8V", "7L28", "7V", "6L28", "5L33", "4L25", "3L37"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8L32", "8V", "7T", "7L16", "7E", "6T", "6L16", "6E", "5T", "5L38", "5E", "5D", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L62", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + wideguard: ["8E", "7E"], + }, + encounters: [ + {generation: 1, level: 13}, + ], + }, + steelix: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["8L8", "7L19", "6L19", "5L30"], + bind: ["8L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4L1", "3L8"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "7L37", "7V", "6L37", "5L54", "4L41", "3L49"], + curse: ["8L16", "7L4", "7V", "6L4", "5L46", "4L38"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8L44", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "3M"], + doubleedge: ["8L56", "7L49", "6L49", "5L57", "4L46", "3T", "3L56"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L12", "7L25", "7V", "6L25", "5L41", "4L33", "3L30"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + drillrun: ["8M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "7L20", "6M", "6L20", "5M", "4M"], + harden: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], + headbutt: ["7V", "4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + irondefense: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8L48", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L49", "4M", "4L38", "3M", "3L45"], + magnetrise: ["8L60", "7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + psychup: ["7M", "6M", "5M", "4M"], + rage: ["7L13", "7V", "6L13", "5L14", "4L14", "3L23"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["8L1", "7M", "6M", "5M", "4M", "4L30"], + rockslide: ["8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8L1", "7L7", "7V", "6L7", "5L9", "4L9", "3L12"], + rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L17", "4M", "4L17", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L40", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L25", "4M", "4L22", "3M", "3L33"], + sandtomb: ["8M", "8L28"], + scaryface: ["8M"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "7L31", "7V", "6L31", "5L6", "4L6", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + slam: ["8L36", "7L28", "7V", "6L28", "5L33", "4L25", "3L37"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8L32", "7T", "7L16", "6T", "6L16", "5T", "5L38", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L62", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + }, + }, + drowzee: { + learnset: { + allyswitch: ["7T"], + assist: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + bellydrum: ["3S0"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["9L9", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L11"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8V", "7M", "6M"], + disable: ["9L5", "8V", "7L5", "7V", "6L5", "5L5", "4L7", "3L7"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + drainpunch: ["9M", "7T", "6T", "5T", "5D", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flatter: ["9E", "7E", "6E", "5E", "4E"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L49", "7L61", "7V", "6L61", "5L61", "4L53", "3L45"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + guardswap: ["9E", "7E", "6E", "5E", "4E"], + haze: ["9M"], + headbutt: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4T", "4L15", "3L17"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + icepunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + imprison: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + meditate: ["8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L27"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + nastyplot: ["9M", "9L41", "8V", "7L53", "7E", "6L53", "6E", "5L53", "5E", "4L43", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + poisongas: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L18", "3L21"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + powersplit: ["9E", "7E"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L21", "8V", "7L25", "6L25", "5L25", "4L26"], + psychic: ["9M", "9L37", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L40", "3M", "3L31"], + psychicterrain: ["9M", "7E"], + psychocut: ["9E", "7E", "6E", "5E", "5D", "4E"], + psychup: ["9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L29", "3T", "3L37"], + psyshock: ["9M", "9L45", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + storedpower: ["9M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L33", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L37", "3T", "3L41"], + swift: ["9M"], + synchronoise: ["7L37", "6L37", "5L37"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8V", "7V"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + wakeupslap: ["7L29"], + wish: ["3S0"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L29", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["insomnia"], moves: ["bellydrum", "wish"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 9}, + ], + }, + hypno: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V"], + batonpass: ["9M", "3S0"], + bide: ["7V"], + bodypress: ["9M"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8V", "7M", "6M"], + disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L56", "7L1", "7V", "6L1", "5L61", "4L69", "3L57"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + haze: ["9M"], + headbutt: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4T", "4L15", "3L17"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + knockoff: ["9M"], + lightscreen: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + meditate: ["8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L29", "3S0"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + nastyplot: ["9M", "9L47", "8V", "7L1", "6L1", "5L53", "4L55"], + naturalgift: ["4M"], + nightmare: ["7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + nightshade: ["9M"], + poisongas: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L18", "3L21"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L21", "8V", "7L25", "6L25", "5L25", "4L28"], + psychic: ["9M", "9L42", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L50", "3M", "3L35", "3S0"], + psychicterrain: ["9M"], + psychup: ["9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L43"], + psyshock: ["9M", "9L51", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + storedpower: ["9M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L37", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L45", "3T", "3L49"], + swift: ["9M"], + switcheroo: ["9L1", "7L1", "6L1", "5L1", "4L1"], + synchronoise: ["7L37", "6L37", "5L37"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8V", "7V"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + wakeupslap: ["7L29"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L32", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L64"], + }, + eventData: [ + {generation: 3, level: 34, abilities: ["insomnia"], moves: ["batonpass", "psychic", "meditate", "shadowball"]}, + ], + encounters: [ + {generation: 2, level: 16}, + {generation: 4, level: 16}, + ], + }, + krabby: { + learnset: { + agility: ["8M", "7E", "6E", "5E", "4E"], + allyswitch: ["8M", "7T", "7E", "6E"], + amnesia: ["8M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7E", "7V", "6E", "5E"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M"], + brine: ["8M", "7L39", "6L39", "5L39", "4M", "4L39"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L20", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + captivate: ["4M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + crabhammer: ["8L44", "8V", "7L41", "7V", "6L41", "5L41", "4L41", "3L45"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "4E", "3M", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + flail: ["8L29", "7L45", "7E", "7V", "6L45", "6E", "5L45", "5E", "4L45", "4E", "3L49", "3E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + guillotine: ["8L48", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L34"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8E"], + harden: ["8L4", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L16"], + haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + leer: ["8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L5"], + liquidation: ["8M", "7T"], + metalclaw: ["8L8", "7L21", "6L21", "5L21", "4L21"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L12", "7L19", "6L19", "5L19", "4L19", "3L23"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + nightslash: ["8E"], + protect: ["8M", "8L16", "8V", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L38"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M", "8L32"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "5D", "4M", "3M"], + slam: ["8L36", "8V", "7L35", "7E", "7V", "6L35", "6E", "5L35", "5E", "4L35", "4E", "3E"], + slash: ["8E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stomp: ["8L24", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L27"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8L40", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["7E", "6E", "5E", "4E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + visegrip: ["8V", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L12"], + watergun: ["8L1", "7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 1, level: 10}, + ], + }, + kingler: { + learnset: { + agility: ["8M", "8V"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "8V"], + ancientpower: ["4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M"], + brine: ["8M", "7L51", "6L51", "5L51", "4M", "4L51"], + brutalswing: ["8M"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L20", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + captivate: ["4M"], + confide: ["7M", "6M"], + crabhammer: ["8L54", "8V", "7L56", "7V", "6L56", "5L56", "4L56", "3L57"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + flail: ["8L31", "7L63", "6L63", "5L63", "4L63", "3L65"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + guillotine: ["8L60", "8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L38"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8L1"], + harden: ["8L1", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L9", "3L1"], + liquidation: ["8M", "7T"], + metalclaw: ["8L1", "7L21", "6L21", "5L21", "4L21", "3L1"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L12", "7L19", "6L19", "5L19", "4L19", "3L23"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + protect: ["8M", "8L16", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L42"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M", "8L36"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + slam: ["8L42", "8V", "7L44", "6L44", "5L44", "4L44"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stomp: ["8L24", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L27"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8L48", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + visegrip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + watergun: ["8L1", "7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wideguard: ["8L1", "7L1", "6L1", "5L1"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 3, level: 25}, + {generation: 4, level: 22}, + ], + }, + voltorb: { + learnset: { + agility: ["9M"], + bide: ["7V"], + charge: ["9M", "9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + chargebeam: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L26"], + confide: ["7M", "6M"], + curse: ["7V"], + discharge: ["9L37", "7L37", "6L37"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M", "9L6", "7L6", "6L6"], + electricterrain: ["9M"], + electroball: ["9M", "9L22", "7L22", "6L22", "5L29"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L41", "8V", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L47", "4M", "4L43", "3T", "3L46"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["9M", "9L46", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L40"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + lightscreen: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L22", "3M", "3L37"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetrise: ["9L34", "7T", "7L34", "6T", "6L34", "5T", "5L40", "4T", "4L36"], + metalsound: ["9E"], + mimic: ["7V", "3T"], + mirrorcoat: ["9L50", "8V", "7L48", "7V", "6L48", "5L50", "4L47", "3L49", "3S0"], + naturalgift: ["5D", "4M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["9E"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["9L11", "7L11", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L32"], + round: ["7M", "6M", "5M"], + screech: ["9L13", "8V", "7L13", "7V", "6L13", "5L19", "4L19", "3L8"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["9L26", "8V", "7L26", "7V", "6L26", "5L33", "4L29", "3T", "3L27"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L4", "7V", "6L4", "5L8", "4L8", "3L15"], + spark: ["9L9", "7L9", "6L9", "5L12", "4L12", "3L21", "3S0"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8V", "7L20", "7V", "6L20", "5L36", "4T", "4L33", "3T", "3L42", "3S0"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L5", "4L5", "3L1"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L4", "8V"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 19, moves: ["refresh", "mirrorcoat", "spark", "swift"]}, + ], + encounters: [ + {generation: 1, level: 14}, + {generation: 1, level: 40}, + ], + }, + voltorbhisui: { + learnset: { + agility: ["9M"], + bulletseed: ["9M", "9L9"], + charge: ["9M", "9L1"], + chargebeam: ["9M", "9L16"], + discharge: ["9L34"], + electricterrain: ["9M"], + electroball: ["9M", "9L22"], + endure: ["9M"], + energyball: ["9M", "9L29"], + explosion: ["9L41"], + facade: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9L50"], + gyroball: ["9M", "9L46"], + leafstorm: ["9M"], + leechseed: ["9E"], + protect: ["9M"], + raindance: ["9M"], + recycle: ["9E"], + reflect: ["9M"], + rest: ["9M"], + rollout: ["9L11"], + screech: ["9L13"], + seedbomb: ["9M", "9L34"], + selfdestruct: ["9L26"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + stunspore: ["9L6"], + substitute: ["9M"], + swift: ["9M", "9L20"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + worryseed: ["9E"], + }, + }, + electrode: { + learnset: { + agility: ["9M"], + bide: ["7V"], + charge: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + chargebeam: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L26"], + confide: ["7M", "6M"], + curse: ["7V"], + discharge: ["9L41", "7L41", "6L41"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M", "9L1", "7L1", "6L6"], + electricterrain: ["9M"], + electroball: ["9M", "9L22", "7L22", "6L22", "5L29"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L47", "8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L57", "4M", "4L51", "3T", "3L54"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "9L54", "7M", "7L54", "6M", "6L51", "5M", "5L51", "4M", "4L46"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + lightscreen: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L22", "3M", "3L41"], + magiccoat: ["7T", "6T", "5T", "4T"], + magneticflux: ["9L1", "7L1", "6L1"], + magnetrise: ["9L36", "7T", "7L36", "6T", "6L36", "5T", "5L46", "4T", "4L40"], + mimic: ["7V", "3T"], + mirrorcoat: ["9L58", "8V", "7L58", "7V", "6L58", "5L62", "4L57", "3L59"], + naturalgift: ["4M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["9L11", "7L11", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L34"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9L13", "8V", "7L13", "7V", "6L13", "5L19", "4L19", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["9L26", "8V", "7L26", "7V", "6L26", "5L35", "4L29", "3T", "3L27"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + spark: ["9L9", "7L9", "6L1", "5L1", "4L1", "3L21"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8V", "7L20", "7V", "6L20", "5L40", "4T", "4L35", "3T", "3L48"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L1", "8V"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 23}, + {generation: 3, level: 3, nature: "Hasty", ivs: {hp: 19, atk: 16, def: 18, spa: 25, spd: 25, spe: 19}, abilities: ["static"], pokeball: "pokeball"}, + {generation: 4, level: 23}, + ], + }, + electrodehisui: { + learnset: { + agility: ["9M"], + bulletseed: ["9M", "9L9"], + charge: ["9M", "9L1"], + chargebeam: ["9M", "9L16"], + chloroblast: ["9L0"], + discharge: ["9L34"], + electricterrain: ["9M"], + electroball: ["9M", "9L22"], + endure: ["9M"], + energyball: ["9M", "9L29"], + explosion: ["9L41"], + facade: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9L50"], + gyroball: ["9M", "9L46"], + hyperbeam: ["9M"], + leafstorm: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rollout: ["9L11"], + scaryface: ["9M"], + screech: ["9L13"], + seedbomb: ["9M", "9L34"], + selfdestruct: ["9L26"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + stunspore: ["9L6"], + substitute: ["9M"], + swift: ["9M", "9L20"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, + exeggcute: { + learnset: { + absorb: ["8L1"], + ancientpower: ["8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrage: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + bestow: ["7L50", "6L50", "5L53"], + bide: ["7V"], + block: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + bulletseed: ["8M", "8L30", "7L17", "6L17", "5L17", "4M", "4L17", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8L20", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L19"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + eggbomb: ["7V"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + extrasensory: ["8L40", "7L47", "6L47", "5L47"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "8L35", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + infestation: ["7M", "6M"], + ingrain: ["8E", "7E", "6E", "5E", "4E", "3E"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8L10", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L13"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E", "4E"], + megadrain: ["8L15", "8V", "7V"], + mimic: ["7V", "3T"], + moonlight: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + naturalgift: ["7L37", "7E", "6L37", "6E", "5L37", "5E", "4M", "4L37"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E"], + nightmare: ["7V", "3T"], + poisonpowder: ["8E", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8V"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "5L47", "4M", "4L47", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psywave: ["7V"], + rage: ["7V"], + reflect: ["8M", "8L5", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "4M", "4L7", "4E", "3M", "3L7", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeppowder: ["8E", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L37"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L55", "8V", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stunspore: ["8E", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L25"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["3S0"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8L25", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "8L45", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + wish: ["3S0"], + worryseed: ["8L50", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["sweetscent", "wish"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 20}, + ], + }, + exeggutor: { + learnset: { + absorb: ["8L1"], + ancientpower: ["4T", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrage: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bide: ["7V"], + block: ["7T", "6T", "5T"], + bulldoze: ["8M"], + bulletseed: ["8M", "8L1", "4M", "3M"], + calmmind: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + eggbomb: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L31"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + extrasensory: ["8L1"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + infestation: ["7M", "6M"], + leafstorm: ["8M", "8L1", "7L47", "6L47", "5L47", "4L47"], + leechseed: ["8L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + magicalleaf: ["8M"], + megadrain: ["8L1", "8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightmare: ["7V", "3T"], + powerswap: ["8M"], + powerwhip: ["8V"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L1", "7M", "7L17", "6M", "6L17", "5M", "5L17"], + psywave: ["7V"], + rage: ["7V"], + reflect: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + selfdestruct: ["8M", "8V", "7V", "3T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stomp: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stunspore: ["8V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8L1", "7T", "6T", "5T", "4T"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "8L1"], + woodhammer: ["8L1", "7L37", "6L37", "5L37", "4L37"], + worryseed: ["8L1", "7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 46, moves: ["refresh", "psychic", "hypnosis", "ancientpower"]}, + ], + }, + exeggutoralola: { + learnset: { + absorb: ["8L1"], + attract: ["8M", "7M"], + barrage: ["8V", "7L1"], + block: ["7T"], + breakingswipe: ["8M"], + brickbreak: ["8M", "8V", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + bulletseed: ["8M", "8L1"], + celebrate: ["7S0"], + confide: ["7M"], + confusion: ["8L1", "8V", "7L1"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T", "7S0"], + dragonhammer: ["8L0", "7L1"], + dragonpulse: ["8M", "8V", "7T"], + dragontail: ["8V", "7M"], + dreameater: ["8V", "7M"], + earthquake: ["8M", "8V", "7M"], + eggbomb: ["8V", "7L27"], + endure: ["8M"], + energyball: ["8M", "7M"], + explosion: ["7M"], + extrasensory: ["8L1"], + facade: ["8M", "8V", "7M"], + flamethrower: ["8M", "8V", "7M"], + frustration: ["7M"], + gigadrain: ["8M", "8L1", "7T"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + gravity: ["7T"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8V", "7M"], + hypnosis: ["8L1", "8V", "7L1"], + infestation: ["7M"], + ironhead: ["8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + leafstorm: ["8M", "8L1", "7L47", "7S0"], + leechseed: ["8L1"], + lightscreen: ["8M", "8V", "7M"], + lowkick: ["8M", "7T"], + magicalleaf: ["8M"], + megadrain: ["8L1", "8V"], + naturepower: ["7M"], + outrage: ["8M", "8V", "7T"], + powerswap: ["8M", "7S0"], + powerwhip: ["8M", "8V"], + protect: ["8M", "8V", "7M"], + psychic: ["8M", "8V", "7M"], + psychup: ["7M"], + psyshock: ["8M", "8L1", "7M", "7L17"], + reflect: ["8M", "8L1", "8V", "7M"], + rest: ["8M", "8V", "7M"], + return: ["7M"], + round: ["8M", "7M"], + seedbomb: ["8M", "8L1", "7T", "7L1"], + selfdestruct: ["8M", "8V"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "8V", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "8L1", "8V", "7M"], + stompingtantrum: ["8M", "7T"], + stunspore: ["8V"], + substitute: ["8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "8V", "7T"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + synthesis: ["8L1", "7T"], + telekinesis: ["7T"], + teleport: ["8V"], + terrainpulse: ["8T"], + thief: ["8M", "7M"], + toxic: ["8V", "7M"], + trickroom: ["8M", "7M"], + uproar: ["8M", "8L1"], + woodhammer: ["8L1", "7L37"], + worryseed: ["8L1", "7T"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, gender: "M", nature: "Modest", isHidden: true, moves: ["powerswap", "celebrate", "leafstorm", "dracometeor"], pokeball: "cherishball"}, + ], + }, + cubone: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + boneclub: ["8V", "7L7", "7V", "6L7", "5L7", "5D", "4L7", "3L9"], + bonemerang: ["8L40", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L25"], + bonerush: ["8L29", "7L51", "7V", "6L37", "5L37", "4L37", "3L41"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["8E", "7E", "7V"], + detect: ["8E", "7E", "7V", "6E", "5E", "4E"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L48", "8V", "7L43", "7V", "6L43", "5L43", "4L43", "3T", "3L45"], + doublekick: ["8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L36", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L8", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3L33"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M", "4L33"], + focusenergy: ["8M", "8L32", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L21"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L12", "8V", "7L11", "7V", "6L11", "5L11", "4T", "4L11", "3L13"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leer: ["8E", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + lowkick: ["8M", "7T", "6T", "5T", "5D", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["8L1", "7V", "4T", "3T"], + naturalgift: ["4M"], + perishsong: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "8L16", "7L47", "6M", "6L47", "5M", "5L47"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "8L24", "7L37"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + tailwhip: ["8L4", "8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L5"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8L44", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L37"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + watergun: ["7V"], + }, + encounters: [ + {generation: 1, level: 16}, + ], + }, + marowak: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + boneclub: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bonemerang: ["8L48", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L25"], + bonerush: ["8L31", "7L65", "7V", "6L43", "5L43", "4L43", "3L53"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L60", "8V", "7L53", "7V", "6L53", "5L53", "4L53", "3T", "3L61"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L42", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L49"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3L39"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "8L20", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L36", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L21"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L12", "8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leer: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["8L1", "7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L32"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "8L16", "7L59", "6M", "6L59", "5M", "5L59"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T", "3S0"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + sing: ["3S0"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "8L24", "7T", "7L43"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + swordsdance: ["8M", "8V", "7M", "6M", "5M", "4M", "3T", "3S0"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8L54", "8V", "7L33", "7V", "6L33", "5L33", "4L33", "3L46"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + watergun: ["7V"], + }, + eventData: [ + {generation: 3, level: 44, moves: ["sing", "earthquake", "swordsdance", "rockslide"]}, + ], + encounters: [ + {generation: 1, level: 24}, + {generation: 2, level: 12}, + {generation: 4, level: 14}, + ], + }, + marowakalola: { + learnset: { + aerialace: ["7M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M"], + blizzard: ["8M", "8V", "7M"], + bodyslam: ["8M"], + boneclub: ["8V", "7L1"], + bonemerang: ["8L48", "8V", "7L21"], + bonerush: ["8L31", "7L65"], + brickbreak: ["8M", "8V", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + burningjealousy: ["8T"], + confide: ["7M"], + darkpulse: ["8M", "8V", "7M"], + dig: ["8M", "8V"], + doubleedge: ["8L1"], + doubleteam: ["7M"], + dreameater: ["8V", "7M"], + earthpower: ["8M", "7T"], + earthquake: ["8M", "8V", "7M"], + echoedvoice: ["7M"], + endeavor: ["8L42", "7T", "7L49"], + endure: ["8M"], + facade: ["8M", "8V", "7M"], + falseswipe: ["8M", "8L1", "7M"], + fireblast: ["8M", "8V", "7M"], + firepunch: ["8M", "8V", "7T"], + firespin: ["8M", "8L1", "8V"], + flamecharge: ["7M"], + flamethrower: ["8M", "8V", "7M"], + flamewheel: ["8L12", "7L1"], + flareblitz: ["8M", "8L60", "8V", "7L53"], + fling: ["8M", "8L20", "7M", "7L37"], + focusblast: ["8M", "7M"], + focusenergy: ["8M", "8L1"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + growl: ["8L1", "8V", "7L1"], + headbutt: ["8L1", "8V"], + heatwave: ["8M", "7T"], + hex: ["8M", "8L16", "7L17"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8V", "7M"], + icebeam: ["8M", "8V", "7M"], + icywind: ["8M", "7T"], + imprison: ["8M"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leer: ["8V", "7L13"], + lowkick: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["8L1"], + outrage: ["8M", "8V", "7T"], + painsplit: ["7T"], + poltergeist: ["8T"], + protect: ["8M", "8V", "7M"], + rage: ["8V"], + raindance: ["8M", "7M"], + rest: ["8M", "8V", "7M"], + retaliate: ["8M", "8L1", "7L59"], + return: ["7M"], + rockslide: ["8M", "8V", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scorchingsands: ["8T"], + screech: ["8M", "8V"], + seismictoss: ["8V"], + shadowball: ["8M", "8V", "7M"], + shadowbone: ["8L0", "7L27"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + spite: ["7T"], + stealthrock: ["8M", "8V", "7T"], + stompingtantrum: ["8M", "8L24", "7T", "7L43"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "8V", "7M"], + tailwhip: ["8L1", "8V", "7L1"], + thief: ["8M", "7M"], + thrash: ["8L54", "8V", "7L33"], + throatchop: ["8M", "7T"], + thunder: ["8M", "8V", "7M"], + thunderbolt: ["8M", "8V", "7M"], + thunderpunch: ["8M", "8V", "7T"], + toxic: ["8V", "7M"], + uproar: ["8M", "7T"], + willowisp: ["8M", "8L36", "8V", "7M", "7L23"], + }, + }, + marowakalolatotem: { + learnset: { + aerialace: ["7M"], + allyswitch: ["7T"], + attract: ["7M"], + blizzard: ["7M"], + boneclub: ["7L1"], + bonemerang: ["7L21", "7S0"], + bonerush: ["7L65"], + brickbreak: ["7M"], + brutalswing: ["7M"], + bulldoze: ["7M"], + confide: ["7M"], + darkpulse: ["7M"], + doubleteam: ["7M"], + dreameater: ["7M"], + earthpower: ["7T"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["7T", "7L49"], + facade: ["7M"], + falseswipe: ["7M"], + fireblast: ["7M"], + firepunch: ["7T"], + flamecharge: ["7M"], + flamethrower: ["7M"], + flamewheel: ["7L1"], + flareblitz: ["7L53"], + fling: ["7M", "7L37"], + focusblast: ["7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["7M"], + growl: ["7L1"], + heatwave: ["7T"], + hex: ["7L17", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + icebeam: ["7M"], + icywind: ["7T"], + irondefense: ["7T"], + ironhead: ["7T"], + irontail: ["7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leer: ["7L13", "7S0"], + lowkick: ["7T"], + outrage: ["7T"], + painsplit: ["7T"], + protect: ["7M"], + raindance: ["7M"], + rest: ["7M"], + retaliate: ["7L59"], + return: ["7M"], + rockslide: ["7M"], + rocktomb: ["7M"], + round: ["7M"], + sandstorm: ["7M"], + shadowball: ["7M"], + shadowbone: ["7L27"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + spite: ["7T"], + stealthrock: ["7T"], + stompingtantrum: ["7T", "7L43"], + stoneedge: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwhip: ["7L1"], + thief: ["7M"], + thrash: ["7L33"], + throatchop: ["7T"], + thunder: ["7M"], + thunderbolt: ["7M"], + thunderpunch: ["7T"], + toxic: ["7M"], + uproar: ["7T"], + willowisp: ["7M", "7L23", "7S0"], + }, + eventData: [ + {generation: 7, level: 25, perfectIVs: 3, moves: ["leer", "hex", "bonemerang", "willowisp"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + tyrogue: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + feint: ["8E", "7E", "6E", "5E", "5D"], + focusenergy: ["8M", "8L1"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "8L1", "7T", "7L1", "7E", "6T", "6L1", "6E", "5T", "5L1", "5E", "4T", "4L1", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highjumpkick: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + laserfocus: ["7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + machpunch: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + megakick: ["8M", "3T"], + megapunch: ["8M"], + mimic: ["3T"], + mindreader: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + vacuumwave: ["8E", "7E", "6E", "5E", "4T", "4E"], + workup: ["8M", "7M", "5M"], + }, + }, + hitmonlee: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + bide: ["7V"], + blazekick: ["8M", "8L24", "7L45", "6L45", "5L45", "4L41"], + bodyslam: ["8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["8M", "8L0", "8V", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L20"], + bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M", "8L36", "7L1", "6L1", "5L57", "4L53"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doublekick: ["8L4", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "8L12", "7L49", "7V", "6L49", "5L49", "4M", "4L45", "3T", "3L41"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1"], + feint: ["8L1", "8V", "7L25", "6L25", "5L25", "4L25"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L21"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L37", "7V", "6L37", "5L37", "4L37", "3L36"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highjumpkick: ["8L44", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L26", "3S0"], + jumpkick: ["8V", "7L1", "7V", "6L13", "5L13", "4L13", "3L16"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lowkick: ["8M", "8L8", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "8L1", "7M", "6M", "5M"], + meditate: ["8V", "7L1", "7V", "6L5", "5L5", "4L5", "3L6"], + megakick: ["8M", "8L32", "8V", "7L1", "7V", "6L1", "5L53", "4L49", "3T", "3L46", "3S0"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mindreader: ["8L28", "7L33", "7V", "6L33", "5L33", "4L33", "3L31", "3S0"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + reversal: ["8M", "8L40", "7L1", "7V", "6L1", "5L61", "4L57", "3L51"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollingkick: ["8V", "7L1", "7V", "6L9", "5L9", "4L9", "3L11"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + vacuumwave: ["4T"], + wideguard: ["8L21", "7L41", "6L41", "5L41"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 38, abilities: ["limber"], moves: ["refresh", "highjumpkick", "mindreader", "megakick"]}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + hitmonchan: { + learnset: { + agility: ["8M", "8L28", "8V", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8L1", "7L16", "6L16", "5L16", "4L16"], + captivate: ["4M"], + closecombat: ["8M", "8L36", "7L1", "6L1", "5L66", "4L56"], + coaching: ["8T"], + cometpunch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + confide: ["7M", "6M"], + counter: ["8L40", "8V", "7L1", "7V", "6L1", "5L61", "4L51", "3T", "3L50"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["8L12", "7L50", "7V", "6L50", "5L51", "4L46", "3L44"], + dizzypunch: ["8V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "8L0", "7T", "6T", "5T", "4M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1"], + feint: ["8L1", "8V", "7L21", "6L21", "5L21", "4L21"], + firepunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V"], + focuspunch: ["8L44", "7T", "7L1", "6T", "6L1", "5L56", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + laserfocus: ["7T"], + leer: ["8V"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + machpunch: ["8L4", "7L1", "7V", "6L16", "5L16", "4L16", "3L20"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "8L32", "8V", "7L46", "7V", "6L46", "5L46", "4L41", "3T", "3L38", "3S0"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mindreader: ["3S0"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["8L8", "6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L1", "7V", "6L11", "5L11", "4L11", "3L13"], + quickguard: ["8L21", "7L31", "6L31", "5L31"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + skyuppercut: ["7L41", "6L41", "5L41", "4L36", "3L32", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8V", "7V", "4T", "3T"], + tackle: ["8L1"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + vacuumwave: ["8L1", "7L26", "6L26", "5L26", "4T", "4L26"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 38, abilities: ["keeneye"], moves: ["helpinghand", "skyuppercut", "mindreader", "megapunch"]}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + hitmontop: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "8L28", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bulkup: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M", "8L36", "7L1", "6L1", "5L55", "5S0", "4L51"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8L40", "7L28", "7V", "6L28", "5L28", "4L28", "3T", "3L31"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["8L12", "7L1", "7V", "6L50", "5L51", "4L46", "3L43"], + dig: ["8M", "8L32", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "5T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["8L44", "7T", "7L1", "6T", "6L1", "5T", "5L60", "4T", "4L55", "3L49"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1", "5S0"], + feint: ["8L1", "7L24", "6L33", "5L33", "4L33"], + focusblast: ["8M"], + focusenergy: ["8M", "8L1", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "8L8", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L42"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "8L1", "7T", "6T", "5T", "5S0", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L1", "7V", "6L10", "5L10", "4L10", "3L13"], + quickattack: ["8L4", "7L1", "7V", "6L15", "5L15", "4L15", "3L19"], + quickguard: ["8L21", "7L46", "6L46", "5L46"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8L1", "7L19", "7V", "6L24", "5L24", "4L24", "3L25"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollingkick: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8L24", "5S0", "4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + tripleaxel: ["8T"], + triplekick: ["8L0", "7L33", "7V", "6L19", "5L19", "4L19", "3L20"], + twister: ["4T"], + uproar: ["8M"], + vacuumwave: ["4T"], + wideguard: ["8L21", "7L46", "6L46", "5L46"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 55, gender: "M", nature: "Adamant", abilities: ["intimidate"], moves: ["fakeout", "closecombat", "suckerpunch", "helpinghand"]}, + ], + }, + lickitung: { + learnset: { + acid: ["8V"], + amnesia: ["8M", "7E", "6E", "5E", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["8E", "7E", "6E"], + bellydrum: ["8L60", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bind: ["8V", "7T", "6T", "5T"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L37", "6L37", "5L37"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3T", "3L12", "3S1"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8L24", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L34"], + doubleedge: ["7V", "3T", "3S1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["8V", "7M", "6M", "5M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8V", "7V", "4T"], + healbell: ["3S0"], + helpinghand: ["8M", "8V", "3S1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["8L36", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3L18"], + lick: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + magnitude: ["7E", "7V", "6E", "5E", "4E", "3E"], + mefirst: ["7L41", "6L41", "5L41", "4L37"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + poweruppunch: ["6M"], + powerwhip: ["8M", "8L54", "8V", "7L53", "6L53", "5L53", "4L49"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["7L45", "6L45", "5L45", "4L41", "3L51"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["5D", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L6", "7L33", "7V", "6L33", "5L33", "4T", "4L33", "3T", "3S1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + screech: ["8M", "8L42", "8V", "7L49", "7V", "6L49", "5L49", "4L45", "3L45"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + slam: ["8L48", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L40"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "5D", "4M", "4E", "3T", "3E"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + steelroller: ["8T"], + stomp: ["8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L23"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["8L12", "7L5", "7V", "6L5", "5L5", "4L5", "3L7"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8E", "8V", "7E"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + wrap: ["8L18", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L29"], + wringout: ["7L57", "6L57", "5L57", "4L53"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["healbell", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 38, moves: ["helpinghand", "doubleedge", "defensecurl", "rollout"]}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + lickilicky: { + learnset: { + amnesia: ["8M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bellydrum: ["8L60"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L37", "6L37", "5L37"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + defensecurl: ["8L1", "7L9", "6L9", "5L9", "4L9"], + dig: ["8M", "6M", "5M", "4M"], + disable: ["8L24", "7L25", "6L25", "5L25", "4L25"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragontail: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "7T", "6T", "5T", "4T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "7L61", "6M", "6L61", "5M", "5L61", "4M", "4L57"], + headbutt: ["4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "6T", "5T", "4T"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["8L36", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + lick: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mefirst: ["7L41", "6L41", "5L41", "4L37"], + megakick: ["8M"], + megapunch: ["8M"], + muddywater: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + powerwhip: ["8M", "8L54", "7L1", "6L1", "5L53", "4L49"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + refresh: ["7L45", "6L45", "5L45", "4L41"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["8L1", "7L33", "6L33", "5L33", "4T", "4L33"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M"], + screech: ["8M", "8L42", "7L49", "6L49", "5L49", "4L45"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slam: ["8L48", "7L29", "6L29", "5L29", "4L29"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + steelroller: ["8T"], + stomp: ["8L30", "7L21", "6L21", "5L21", "4L21"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + supersonic: ["8L1", "7L5", "6L5", "5L5", "4L5"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + wrap: ["8L18", "7L17", "6L17", "5L17", "4L17"], + wringout: ["7L1", "6L1", "5L57", "4L53"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + koffing: { + learnset: { + acidspray: ["9M"], + assurance: ["9L16", "8M", "8L16", "7L12", "6L12", "5L15", "4L15"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L40", "8L40", "7L42", "6L42"], + bide: ["7V"], + bodyslam: ["9M"], + captivate: ["4M"], + clearsmog: ["9L12", "8L12", "8V", "7L15", "6L15", "5L19"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "5D", "4M"], + destinybond: ["9L52", "8L52", "7L40", "7E", "7V", "6L40", "6E", "5L51", "5E", "4L46", "4E", "3L45", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["9L44", "8L44", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L42", "4M", "4L37", "3T", "3L41"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grudge: ["8E", "7E", "6E", "5E", "4E"], + gunkshot: ["9M"], + gyroball: ["9M", "8M", "7M", "7L29", "6M", "6L29", "5M", "5L37", "4M", "4L33"], + haze: ["9M", "9L24", "8L24", "8V", "7L26", "7V", "6L26", "5L33", "4L28", "3L33"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + memento: ["9L48", "8L48", "7L45", "6L45", "5L55", "4L51", "3L49"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + painsplit: ["9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisongas: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + psywave: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["9L28", "8M", "8L28", "8V", "7L23", "7V", "6L23", "5L24", "4L19", "3T", "3L17"], + shadowball: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L20", "8L20", "8V", "7L18", "7V", "6L18", "5L28", "4L24", "3L21"], + sludgebomb: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L46", "4M", "4L42", "3M"], + sludgewave: ["8M", "5D"], + smog: ["9L4", "8L4", "8V", "7L4", "7V", "6L4", "5L6", "5D", "4L6", "3L9"], + smokescreen: ["9L8", "8L8", "7L7", "7V", "6L7", "5L10", "4L10", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + spitup: ["9E", "8E", "7E", "6E", "5E"], + stockpile: ["9E", "8E", "7E", "6E", "5E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9E", "8E", "7E", "6E", "5E"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L36", "8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M", "7E", "6E"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M", "7E"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "4E", "3E"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 30}, + ], + }, + weezing: { + learnset: { + acidspray: ["9M"], + assurance: ["9L16", "8M", "8L16", "7L12", "6L12", "5L15", "4L15"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L44", "8L44", "7L51", "6L50"], + bide: ["7V"], + bodyslam: ["9M"], + captivate: ["4M"], + clearsmog: ["9L12", "8L12", "8V", "7L15", "6L15", "5L19"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["7V"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + destinybond: ["9L62", "8L62", "7L46", "7V", "6L46", "5L59", "4L55", "3L51"], + doublehit: ["9L0", "8L0", "7L1", "6L29", "5L39", "4L33"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["9L50", "8L50", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L46", "4M", "4L40", "3T", "3L44"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + gyroball: ["9M", "8M", "7M", "7L29", "6M", "5M", "4M"], + haze: ["9M", "9L24", "8L24", "8V", "7L26", "7V", "6L26", "5L33", "4L28", "3L33"], + headbutt: ["8V"], + heatwave: ["9M", "9L1", "8M", "8L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + memento: ["9L56", "8L56", "7L57", "6L54", "5L65", "4L63", "3L58"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisongas: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["9L28", "8M", "8L28", "8V", "7L23", "7V", "6L23", "5L24", "4L19", "3T", "3L1"], + shadowball: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L20", "8L20", "8V", "7L18", "7V", "6L18", "5L28", "4L24", "3L21"], + sludgebomb: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L52", "4M", "4L48", "3M"], + sludgewave: ["8M"], + smog: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + smokescreen: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "9L38", "8L38", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 16}, + {generation: 3, level: 32}, + {generation: 4, level: 15, pokeball: "safariball"}, + ], + }, + weezinggalar: { + learnset: { + acidspray: ["9M"], + aromatherapy: ["8L24"], + aromaticmist: ["9L1", "8L1"], + assurance: ["9L16", "8M", "8L16"], + attract: ["8M"], + belch: ["9L44", "8L44"], + bodyslam: ["9M"], + brutalswing: ["8M"], + clearsmog: ["9L12", "8L12"], + corrosivegas: ["8T"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "8M"], + defog: ["9L1", "8L1"], + destinybond: ["9L62", "8L62"], + doublehit: ["9L0", "8L0"], + endure: ["9M", "8M"], + explosion: ["9L50", "8L50"], + facade: ["9M", "8M"], + fairywind: ["9L24", "8L1"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gunkshot: ["9M"], + gyroball: ["9M", "8M"], + haze: ["9M", "9L1", "8L1"], + heatwave: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M"], + memento: ["9L56", "8L56"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "9L68", "8M", "8L68"], + overheat: ["9M", "8M"], + payback: ["8M"], + playrough: ["9M", "8M"], + poisongas: ["9L1", "8L1"], + protect: ["9M", "8M"], + psybeam: ["9M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M"], + screech: ["8M"], + selfdestruct: ["9L28", "8M", "8L28"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + sludge: ["9L20", "8L20"], + sludgebomb: ["9M", "9L32", "8M", "8L32"], + sludgewave: ["8M"], + smog: ["9L1", "8L1"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + spite: ["9M"], + strangesteam: ["9L1", "8L1"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + toxic: ["9M", "9L38", "8L38"], + toxicspikes: ["9M", "8M"], + uproar: ["8M"], + venomdrench: ["8M"], + venoshock: ["9M", "8M"], + willowisp: ["9M", "8M"], + wonderroom: ["8M"], + }, + }, + rhyhorn: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + bulldoze: ["8M", "8L10", "7M", "7L21", "6M", "6L21", "5M", "5L30"], + captivate: ["4M"], + chipaway: ["7L25", "6L25", "5L34"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + crunch: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "5D", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragonrush: ["8E", "7E", "6E", "5E", "4E"], + drillrun: ["8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L45"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L45", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L56", "4M", "4L49", "3M", "3L52"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7E", "6E", "5E", "4E"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L5", "7V", "6L5", "5L12", "4L13", "3L15"], + guardsplit: ["8E", "7E", "6E"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hornattack: ["8L15", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + horndrill: ["8L60", "8V", "7L53", "7V", "6L53", "5L63", "4L37", "3L38"], + icebeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "7E", "6E", "5E", "4E"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["7V"], + magnitude: ["7E", "7V", "6E", "5E", "4E", "3E"], + megahorn: ["8M", "8L55", "8V", "7L49", "6L49", "5L67", "4L57", "3L57"], + metalburst: ["8E", "7E", "6E"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], + rockclimb: ["7E", "6E", "5E", "4M"], + rockpolish: ["8E", "7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L20", "7L9", "7V", "6L9", "5L19", "4L21", "3L24"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L5", "7M", "7L13", "6M", "6L13"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stomp: ["8L25", "8V", "7L17", "7V", "6L8", "5L8", "4L9", "3L10"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L50", "7M", "7L41", "6M", "6L41", "5M", "5L52", "4M", "4L45"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + tackle: ["8L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L43"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thrash: ["7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "7E", "6E", "5E", "4E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 20}, + ], + }, + rhydon: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + breakingswipe: ["8M"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "8L1", "7M", "7L21", "6M", "6L21", "5M", "5L30"], + captivate: ["4M"], + chipaway: ["7L25", "6L25", "5L34"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crunch: ["8M", "8V"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8V", "7M", "6M", "5M"], + drillrun: ["8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L47"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L47", "8V", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L62", "4M", "4L49", "3M", "3L58", "3S0"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["8M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8L0", "7L1", "6L42", "5L42", "4L42"], + headbutt: ["8V", "7V", "4T"], + heatcrash: ["8M"], + heavyslam: ["8M"], + helpinghand: ["8M", "8V", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hornattack: ["8L15", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + horndrill: ["8L68", "8V", "7L1", "7V", "6L1", "5L71", "4L37", "3L38"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["8M"], + icepunch: ["8M", "8V", "7T", "6T", "5T", "4T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megahorn: ["8M", "8L61", "8V", "7L55", "6L1", "5L77", "4L57", "3L66", "3S0"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M", "8V", "7V"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L20", "7L1", "7V", "6L1", "5L19", "4L21", "3L24", "3S0"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stomp: ["8L25", "8V", "7L17", "7V", "6L1", "5L1", "4L1", "3L1"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L46"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["8M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + watergun: ["7V"], + whirlpool: ["8M", "4M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 46, moves: ["helpinghand", "megahorn", "scaryface", "earthquake"]}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 4, level: 41}, + {generation: 6, level: 30}, + ], + }, + rhyperior: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "8L1", "7M", "7L21", "6M", "6L21", "5M"], + captivate: ["4M"], + chipaway: ["7L25", "6L25", "5L30"], + confide: ["7M", "6M"], + crunch: ["8M"], + cut: ["6M", "5M", "4M"], + dig: ["8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + drillrun: ["8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L47"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L47", "7M", "7L48", "6M", "6L48", "5M", "5L62", "4M", "4L49"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + firefang: ["8M"], + firepunch: ["8M", "7T", "6T", "5T", "4T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L1", "6L1", "5L1", "4L1"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8L1", "7L1", "6L42", "5L42", "4L42"], + headbutt: ["4T"], + heatcrash: ["8M"], + heavyslam: ["8M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["8M"], + hornattack: ["8L15", "7L1", "6L1", "5L1", "4L1"], + horndrill: ["8L68", "7L1", "6L1", "5L71", "4L37"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icefang: ["8M"], + icepunch: ["8M", "7T", "6T", "5T", "4T"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + irondefense: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + megahorn: ["8M", "8L61", "7L55", "6L1", "5L77", "4L57"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + mudshot: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M"], + poisonjab: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M", "4M"], + rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rockwrecker: ["8L75", "7L1", "6L1", "5L86", "4L61"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["8M", "8L20", "7L1", "6L1", "5L19", "4L21"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stomp: ["8L25", "7L17", "6L1", "5L1", "4L1"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + tackle: ["8L1"], + tailwhip: ["8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["8L40", "7L37", "6L37", "5L41", "4L33"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderfang: ["8M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + whirlpool: ["8M", "4M"], + }, + }, + happiny: { + learnset: { + aromatherapy: ["8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "6L1", "5L1", "4L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L5", "6L5", "5L5", "4L5"], + counter: ["7E", "6E", "5E", "4E"], + covet: ["9L16", "8L16", "7T", "6T", "5T"], + defensecurl: ["9L4", "8L4"], + disarmingvoice: ["9M", "9L12", "8L12"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healbell: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + metronome: ["9M", "8M", "7E", "6E", "5E", "4E"], + minimize: ["8L1"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["7E", "6E", "5E", "4M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + present: ["9E", "8E", "7E", "6E", "5E", "4E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + refresh: ["7L9", "6L9", "5L9", "4L9"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seismictoss: ["9E", "8E"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["9L8", "8L8", "7L12", "6L12", "5L12", "4L12"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + chansey: { + learnset: { + allyswitch: ["8M", "7T"], + aromatherapy: ["8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bestow: ["7L20", "6L20", "5L20"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["8V"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1", "8S3"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["7E", "7V", "6E", "5E", "5D", "4E", "3T"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L31", "3T", "3L41"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleedge: ["9L40", "8L40", "8V", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L57"], + doubleslap: ["8V", "7L12", "7V", "6L12", "5L12", "4L16", "3L17"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["9L8", "8L8", "7M", "6M", "5M"], + eggbomb: ["8V", "7L42", "7V", "6L42", "5L42", "4L38", "3L35"], + electricterrain: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L20", "8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L27"], + focusblast: ["9M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + healingwish: ["9L52", "8L52", "7L50", "6L50", "5L50", "4L42"], + healpulse: ["9L28", "8L28", "7L38", "6L38", "5L38"], + helpinghand: ["9M", "9L32", "8M", "8L32", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L48", "8L48", "7T", "6T", "5T", "4T"], + lifedew: ["9L12", "8L12"], + lightscreen: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L34", "3M", "3L49"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["7V", "3T"], + minimize: ["8L1", "8V", "7L23", "7V", "6L23", "5L23", "4L20", "3L23"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + pound: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + poweruppunch: ["6M"], + present: ["8E", "8S3", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8V", "7V"], + refresh: ["7L9", "6L9", "5L9", "4L9", "3L9", "3S1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8E", "8V", "7E", "7V", "6E", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L16", "8L16", "8V", "7L31", "7V", "6L31", "5L31", "4L23", "3L29"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M", "3S2"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + softboiled: ["9L44", "8L44", "8V", "8S3", "7L16", "7V", "6L16", "5L16", "4L12", "3T", "3L13", "3S2"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1", "8S3", "3S2"], + sweetscent: ["3S0"], + swift: ["9M"], + tailwhip: ["9L4", "8L4", "8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L5", "3S1"], + takedown: ["9M", "9L24", "8L24", "8V", "7L27", "7V", "6L27", "5L27"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + uproar: ["8M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["sweetscent", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["pound", "growl", "tailwhip", "refresh"], pokeball: "pokeball"}, + {generation: 3, level: 39, moves: ["sweetkiss", "thunderbolt", "softboiled", "skillswap"]}, + {generation: 8, level: 7, moves: ["present", "sweetkiss", "charm", "softboiled"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 7}, + ], + }, + blissey: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bestow: ["7L20", "6L20", "5L20"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["3T"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L31", "3T", "3L33"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleedge: ["9L40", "8L40", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L47"], + doubleslap: ["7L12", "7V", "6L12", "5L12", "4L16", "3L13"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["9L8", "8L8", "7M", "6M", "5M"], + eggbomb: ["7L42", "7V", "6L42", "5L42", "4L38", "3L28"], + electricterrain: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L20", "8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L27"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + growl: ["7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["9L52", "8L52", "7L50", "6L50", "5L50", "4L42"], + healpulse: ["9L28", "8L28", "7L38", "6L38", "5L38"], + helpinghand: ["9M", "9L32", "8M", "8L32", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L48", "8L48", "7T", "6T", "5T", "4T"], + lifedew: ["9L12", "8L12"], + lightscreen: ["9M", "9L36", "8M", "8L36", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L34", "3M", "3L40"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + minimize: ["8L1", "7L23", "7V", "6L23", "5L23", "4L20", "3L18"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pound: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + refresh: ["7L9", "6L9", "5L9", "5S0", "4L9", "3L7"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L16", "8L16", "7L31", "7V", "6L31", "5L31", "4L23", "3L23"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + softboiled: ["9L44", "8L44", "7L16", "7V", "6L16", "5L16", "4L12", "3T", "3L10"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + tailwhip: ["9L4", "8L4", "7L5", "7V", "6L5", "5L5", "5S0", "4L5", "3L4"], + takedown: ["9M", "9L24", "8L24", "7L27", "6L27", "5L27"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M"], + trick: ["9M"], + uproar: ["8M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 10, isHidden: true, moves: ["pound", "growl", "tailwhip", "refresh"]}, + ], + }, + tangela: { + learnset: { + absorb: ["8L1", "8V", "7L10", "7V", "6L10", "5L8", "4L8", "3L10"], + amnesia: ["8M", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + ancientpower: ["8L24", "7L38", "6L38", "5L36", "4T", "4L33"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["8L1", "8V", "7T", "7L17", "7V", "6T", "6L17", "5T", "5L22", "4L22", "3L28"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "8L32", "7T", "7L36", "7E", "7V", "6T", "6L36", "6E", "5T", "5L36", "5E", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L56", "7L48", "6L48"], + growth: ["8L8", "8V", "7L20", "7V", "6L20", "5L12", "4L12", "3L13"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8L52", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L33", "4T", "4L36"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8E", "8V", "7E", "6E", "5E", "5D", "4E", "3E"], + megadrain: ["8L12", "8V", "7L23", "7E", "7V", "6L23", "6E", "5L26", "5E", "4L26", "4E", "3L31", "3E"], + mimic: ["7V", "3T"], + morningsun: ["3S0"], + naturalgift: ["7L33", "7E", "6L33", "6E", "5L40", "5E", "4M", "4L40"], + naturepower: ["8E", "7M", "7E", "6E", "5E", "4E", "3E"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonpowder: ["8L20", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L19"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + powerwhip: ["8M", "8L48", "8V", "7L50", "6L50", "5L54", "4L54"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rage: ["7V"], + ragepowder: ["8E", "7E", "6E", "5E"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "5D", "4T"], + shockwave: ["7T", "6T", "4M"], + skullbash: ["7V"], + slam: ["8L40", "8V", "7L41", "7V", "6L41", "5L43", "4L43", "3L40"], + sleeppowder: ["8L36", "8V", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L4"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + stunspore: ["8L4", "8V", "7L30", "7V", "6L30", "5L29", "4L29", "3L37"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["8L44", "7L44", "6L44", "5L47", "4L47", "3L46"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vinewhip: ["8L16", "8V", "7L7", "7V", "6L7", "5L19", "4L19", "3L22"], + wakeupslap: ["7E"], + worryseed: ["7T", "6T", "5T", "4T"], + wringout: ["7L46", "6L46", "5L50", "4L50"], + }, + eventData: [ + {generation: 3, level: 30, abilities: ["chlorophyll"], moves: ["morningsun", "solarbeam", "sunnyday", "ingrain"]}, + ], + encounters: [ + {generation: 1, level: 13}, + ], + }, + tangrowth: { + learnset: { + absorb: ["8L1", "7L10", "6L10", "5L8", "4L8"], + aerialace: ["7M", "6M", "5M", "4M"], + amnesia: ["8M"], + ancientpower: ["8L24", "7L40", "6L40", "5L36", "4T", "4L33", "4S0"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bind: ["8L1", "7T", "7L17", "6T", "6L17", "5T", "5L22", "4L22"], + block: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L57"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "8L32", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L56", "7L50", "6L50"], + growth: ["8L1", "7L20", "6L20", "5L12", "4L12"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + ingrain: ["8L52", "7L1", "6L1", "5L1", "4L1"], + knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L33", "4T", "4L36"], + leafstorm: ["8M"], + megadrain: ["8L12", "7L23", "6L23", "5L26", "4L26"], + morningsun: ["4S0"], + mudslap: ["4T"], + naturalgift: ["7L33", "6L33", "5L40", "4M", "4L40", "4S0"], + naturepower: ["7M", "6M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonpowder: ["8L20", "7L14", "6L14", "5L15", "4L15"], + powerswap: ["8M"], + powerwhip: ["8M", "8L48", "7L53", "6L53", "5L54", "4L54"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shockwave: ["7T", "6T", "4M"], + slam: ["8L40", "7L43", "6L43", "5L43", "4L43"], + sleeppowder: ["8L36", "7L4", "6L4", "5L5", "4L5"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + solarblade: ["8M"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + stunspore: ["8L1", "7L30", "6L30", "5L29", "4L29"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "4S0"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + thief: ["8M", "7M", "6M", "5M", "4M"], + tickle: ["8L44", "7L46", "6L46", "5L47", "4L47"], + toxic: ["7M", "6M", "5M", "4M"], + vinewhip: ["8L16", "7L7", "6L7", "5L19", "4L19"], + worryseed: ["7T", "6T", "5T", "4T"], + wringout: ["7L49", "6L49", "5L50", "4L50"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Brave", moves: ["sunnyday", "morningsun", "ancientpower", "naturalgift"], pokeball: "cherishball"}, + ], + }, + kangaskhan: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + beatup: ["8M"], + bide: ["7V"], + bite: ["8L12", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L7", "3S1"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L31", "6L31", "5L31"], + circlethrow: ["8E", "7E", "6E", "5E"], + cometpunch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + covet: ["7T", "6T", "5T"], + crunch: ["8M", "8L36", "8V", "7L37", "6L37", "5L37", "4L31"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dizzypunch: ["8V", "7L34", "7V", "6L34", "5L34", "4L25", "3L43", "3S2"], + doubleedge: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + doublehit: ["8L32", "7L19", "6L19", "5L19", "4L43"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "5D", "4M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "6S3", "5M", "4M", "3M", "3S2"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + endure: ["8M", "8L40", "7L43", "7V", "6L43", "5L43", "4M", "4L34", "3T", "3L37"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L8", "8V", "7L7", "6L7", "6S3", "5L7", "5D", "4L7", "3L19"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L20", "7E", "7V", "6E", "5E", "4E", "3E"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L4"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8L24", "8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["8L52"], + leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "8V", "7L25", "7V", "6L25", "5L25", "4L19", "3T", "3L25"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8L48", "8V", "7T", "7L46", "6T", "6L46", "5T", "5L46", "4T", "4L37"], + pound: ["8L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7L22", "7V", "6L22", "5L22", "4L22", "3L31"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "6S3", "5M", "4M", "3M"], + reversal: ["8M", "8L44", "7L50", "7V", "6L50", "5L55", "4L49", "3L49"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["3S2"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stomp: ["8L16", "7E", "7V", "6E", "5E", "4E", "3E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["8L28", "8V", "7L49", "6L49", "6S3", "5L49", "4T", "4L46"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tailwhip: ["8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L13", "3S2"], + takedown: ["7V"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + yawn: ["3S0"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["earlybird"], moves: ["yawn", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 10, abilities: ["earlybird"], moves: ["cometpunch", "leer", "bite"], pokeball: "pokeball"}, + {generation: 3, level: 35, abilities: ["earlybird"], moves: ["sing", "earthquake", "tailwhip", "dizzypunch"]}, + {generation: 6, level: 50, abilities: ["scrappy"], moves: ["fakeout", "return", "earthquake", "suckerpunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 25}, + ], + }, + horsea: { + learnset: { + agility: ["8M", "8L30", "8V", "7L36", "7V", "6L23", "5L23", "4L23", "3L36"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7L31", "6L30", "5L30", "5D", "4M", "4L30"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "5S0", "4L1", "3L1"], + bubblebeam: ["8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], + captivate: ["4M"], + clearsmog: ["8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["7V"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L20", "7E", "7V", "6E", "5E", "4E", "3E"], + dragondance: ["8M", "8L50", "7L46", "6L38", "5L38", "4L38", "3L50"], + dragonpulse: ["8M", "8L40", "8V", "7T", "7L41", "6T", "6L41", "5T", "5L42", "4M", "4L42"], + dragonrage: ["7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "8V", "7L52", "7V", "6L35", "5L35", "4L35", "3L43"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["8L35"], + leer: ["8L1", "8V", "7L9", "7V", "6L8", "5L8", "4L8", "3L15"], + liquidation: ["8M"], + mimic: ["7V", "3T"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + octazooka: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + outrage: ["8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "8L55", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "6E", "5E", "4E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L5", "8V", "7L5", "7V", "6L4", "5L4", "4L4", "3L8"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + splash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8L10", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L13", "7V", "6L1", "5L11", "4L11", "3L22"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["bubble"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + seadra: { + learnset: { + agility: ["8M", "8L30", "8V", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7L31", "6L30", "5L30", "4M", "4L30"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], + captivate: ["4M"], + clearsmog: ["8V"], + confide: ["7M", "6M"], + curse: ["7V"], + disable: ["8V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L20", "7V"], + dragondance: ["8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], + dragonpulse: ["8M", "8L44", "8V", "7T", "7L45", "6T", "6L45", "5T", "5L57", "4M", "4L57"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L51", "8V", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["8L37", "7T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + liquidation: ["8M"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 45, abilities: ["poisonpoint"], moves: ["leer", "watergun", "twister", "agility"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 20}, + {generation: 2, level: 20}, + {generation: 3, level: 25}, + {generation: 4, level: 15}, + ], + }, + kingdra: { + learnset: { + agility: ["8M", "8L30", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + breakingswipe: ["8M"], + brine: ["8M", "7L31", "6L30", "5L30", "4M", "4L30"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L25", "7L21", "6L18", "5L18", "4L18"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "6T", "5T", "5S1", "4T"], + dragonbreath: ["8L20", "7V"], + dragondance: ["8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], + dragonpulse: ["8M", "8L44", "7T", "7L45", "6T", "6L1", "5T", "5L57", "5S1", "4M", "4L57"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L15", "7L26", "6L14", "5L14", "4L14"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hydropump: ["8M", "8L51", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["8L37", "7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + liquidation: ["8M"], + mimic: ["3T"], + muddywater: ["8M", "5S1"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "7V", "6M", "5M", "5S1", "4M", "3M"], + quash: ["7M", "6M", "5M"], + raindance: ["8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "8L1", "7V", "4M"], + yawn: ["8L1", "7L1", "6L1", "5L1", "4L1"], + }, + eventData: [ + {generation: 3, level: 50, abilities: ["swiftswim"], moves: ["leer", "watergun", "twister", "agility"], pokeball: "pokeball"}, + {generation: 5, level: 50, gender: "M", nature: "Timid", ivs: {hp: 31, atk: 17, def: 8, spa: 31, spd: 11, spe: 31}, abilities: ["swiftswim"], moves: ["dracometeor", "muddywater", "dragonpulse", "protect"], pokeball: "cherishball"}, + ], + }, + goldeen: { + learnset: { + acupressure: ["8E"], + agility: ["8M", "8L20", "8V", "7L29", "7V", "6L29", "5L47", "4L47", "3L52"], + aquaring: ["8L25", "7L21", "6L21", "5L27", "4L27"], + aquatail: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7E", "6E", "5E", "4E"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L13", "7V", "6L13", "5L21", "4L21", "3L24"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L24", "7V", "6L24", "5L31", "4L31", "3L29"], + furycutter: ["4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["8L15", "8V", "7L8", "7V", "6L8", "5L11", "4L11", "3L15"], + horndrill: ["8L50", "8V", "7L37", "7V", "6L37", "5L41", "4L41", "3L43"], + hydropump: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + knockoff: ["7T", "6T", "5T", "4T"], + megahorn: ["8M", "8L45", "8V", "7L45", "6L45", "5L57", "4L51", "3L57"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E", "4T", "4E"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + peck: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + quickattack: ["8V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E"], + skullbash: ["7E", "7V", "6E", "5E"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8L40", "7L40", "6L40", "5L51"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L5", "8V", "7L5", "7V", "6L5", "5L7", "4L7", "3L10"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8L35", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L37", "4M", "4L37", "3M", "3L38"], + watergun: ["7V"], + waterpulse: ["8L10", "7T", "7L16", "6T", "6L16", "5L17", "5D", "4M", "4L17", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + whirlpool: ["8M", "4M"], + }, + encounters: [ + {generation: 1, level: 5}, + ], + }, + seaking: { + learnset: { + agility: ["8M", "8L20", "8V", "7L29", "7V", "6L29", "5L56", "4L56", "3L61"], + aquaring: ["8L25", "7L21", "6L21", "5L27", "4L27"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + endure: ["8M", "7V", "5D", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L13", "7V", "6L13", "5L21", "4L21", "3L24"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L24", "7V", "6L24", "5L31", "4L31", "3L29"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["8L15", "8V", "7L8", "7V", "6L8", "5L11", "4L11", "3L15"], + horndrill: ["8L58", "8V", "7L40", "7V", "6L40", "5L47", "4L47", "3L49"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + knockoff: ["7T", "6T", "5T", "4T"], + megahorn: ["8M", "8L51", "8V", "7L1", "6L1", "5L72", "4L63", "3L69"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + peck: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["8M", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8V"], + quickattack: ["8V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T"], + skullbash: ["8V", "7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8L44", "7L46", "6L46", "5L63"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8L37", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L40", "4M", "4L40", "3M", "3L41"], + watergun: ["7V"], + waterpulse: ["8L1", "7T", "7L16", "6T", "6L16", "5L17", "5D", "4M", "4L17", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + whirlpool: ["8M", "4M"], + }, + encounters: [ + {generation: 1, level: 23}, + {generation: 2, level: 10}, + {generation: 3, level: 20}, + {generation: 4, level: 10}, + {generation: 6, level: 26, maxEggMoves: 1}, + {generation: 7, level: 10}, + ], + }, + staryu: { + learnset: { + attract: ["7V"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L28", "7L28", "6L28", "5L36", "4M"], + bubblebeam: ["8V", "7L18", "7V", "6L18", "5L28", "4L28", "3L28"], + camouflage: ["7L22", "6L15", "5L19", "4L19", "3L19"], + confide: ["7M", "6M"], + confuseray: ["8L8", "8V", "7L40", "6L40"], + cosmicpower: ["8M", "8L52", "7L49", "6L48", "5L55", "4L51", "3L42", "3S0"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "7L24", "6M", "6L24", "5M", "5L37", "4M", "4L37"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L56", "8V", "7L53", "7V", "6L52", "5L60", "4L55", "3L46", "3S0"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + lightscreen: ["8M", "8L32", "8V", "7M", "7L46", "7V", "6M", "6L33", "5M", "5L42", "4M", "4L42", "3M", "3L37", "3S0"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + minimize: ["8L16", "8V", "7L31", "7V", "6L25", "5L33", "4L33", "3L33", "3S0"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["8M", "8L36", "7L37", "6L37", "5L51", "4L46"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L24"], + psychic: ["8M", "8L40", "8V", "7M", "7L42", "7V", "6M", "6L42", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["8V", "7L13", "7V", "6L13"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8L12", "7L7", "7V", "6L7", "5L10", "4L10", "3L10", "3S1"], + recover: ["8L48", "8V", "7L10", "7V", "6L10", "5L15", "4L15", "3L15", "3S1"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["7L35", "6L35", "5L46"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8L44", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L20", "8V", "7L16", "7V", "6L16", "5L24", "4T", "4L24", "3T", "3L24"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + teleport: ["8V", "7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + twister: ["4T"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L4", "8V", "7L4", "7V", "6L4", "5L6", "5D", "4L6", "3L6", "3S1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["minimize", "lightscreen", "cosmicpower", "hydropump"], pokeball: "pokeball"}, + {generation: 3, level: 18, nature: "Timid", ivs: {hp: 10, atk: 3, def: 22, spa: 24, spd: 3, spe: 18}, abilities: ["illuminate"], moves: ["harden", "watergun", "rapidspin", "recover"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + starmie: { + learnset: { + agility: ["8M"], + allyswitch: ["8M", "7T"], + attract: ["7V"], + avalanche: ["8M", "4M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L1", "4M"], + bubblebeam: ["7V"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L40", "7V", "6L22", "5L28", "4L28", "3L33"], + cosmicpower: ["8M", "8L1"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + endure: ["8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7V"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L1", "7L1", "6L1"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lightscreen: ["8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + minimize: ["8L1"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["8M", "8L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L1"], + psychic: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["8V", "7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + recover: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spotlight: ["7L1"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + tackle: ["8L1", "8V", "7V"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 41, moves: ["refresh", "waterfall", "icebeam", "recover"]}, + ], + }, + mimejr: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + barrier: ["7L1", "6L1", "5L1", "4L1"], + batonpass: ["8M", "8L4", "7L46", "6L46", "5L46", "4L46"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + calmmind: ["8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "7E", "6E", "5E", "4E"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E"], + confusion: ["8L12", "7L1", "6L1", "5L1", "4L1"], + copycat: ["8L1", "7L4", "6L4", "5L4", "4L4"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "8L44"], + doubleslap: ["7L11", "6L11", "5L15", "4L15"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["8M", "8L8", "7L18", "6L18", "5L11", "4L11"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fakeout: ["8E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["8M", "7E", "6E", "5E", "4E"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healingwish: ["7E", "6E", "5E", "4E"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypnosis: ["8E", "7E", "6E", "5E", "4E"], + icywind: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + infestation: ["7M", "6M"], + lightscreen: ["8M", "8L36", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + meditate: ["7L8", "6L8", "5L8", "4L8"], + mimic: ["8L32", "7L15", "7E", "6L15", "6E", "5L18", "5E", "4L18", "4E"], + mistyterrain: ["8M"], + mudslap: ["4T"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + pound: ["8L1", "7L1"], + powersplit: ["8E", "7E", "6E", "5E"], + protect: ["8M", "8L20", "7M", "6M", "5M", "4M"], + psybeam: ["8L28", "7L25", "6L25", "5L25", "4L25"], + psychic: ["8M", "8L48", "7M", "7L39", "6M", "6L39", "5M", "5L39", "4M", "4L39"], + psychicterrain: ["8M", "7E"], + psychup: ["7M", "6M", "5M", "4M", "4E"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + recycle: ["8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4M", "4L32"], + reflect: ["8M", "8L36", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["8L16", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L50"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + suckerpunch: ["8L40"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + teeterdance: ["8L52", "7E", "6E", "5E", "4E"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + tickle: ["8E", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["8M", "7T", "7L36", "7E", "6T", "6L36", "6E", "5T", "5L36", "5E", "4T", "4L36", "4E"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + wakeupslap: ["7E", "6E", "5E", "4E"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + }, + mrmime: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + batonpass: ["8M", "8L1", "7L46", "7V", "6L46", "5L46", "4L46", "3L47"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E"], + confusion: ["8L12", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], + copycat: ["8L1", "7L4", "6L4", "5L4", "4L4"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8L44", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleslap: ["8V", "7L11", "7V", "6L11", "5L15", "4L15", "3L15"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V"], + encore: ["8M", "8L1", "8V", "7L18", "7V", "6L18", "5L11", "4L11", "3L25", "3S0"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8E", "7E", "6E", "5E", "4E", "3E"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["3S0"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + lightscreen: ["8M", "8L36", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L19"], + magicalleaf: ["8M", "7L1", "6L1", "5L1", "4L1", "3L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + meditate: ["8V", "7L8", "7V", "6L8", "5L8", "4L8", "3L12"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["8L32", "8V", "7L15", "7E", "7V", "6L15", "6E", "5L18", "5E", "4L18", "4E", "3T", "3E"], + mistyterrain: ["8M", "7L1", "6L1"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pound: ["8L1", "8V", "7L1"], + powersplit: ["8E", "7E", "6E", "5E"], + powerswap: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L28", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L29"], + psychic: ["8M", "8L48", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3M", "3L43", "3S0"], + psychicterrain: ["8M", "7E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["8V", "7L15", "7V", "6L15", "5L15"], + quickguard: ["8L1", "7L1", "6L1", "5L1"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4M", "4L32", "3L33"], + reflect: ["8M", "8L36", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L19"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8L16", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43", "3L40"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L50", "7V", "6M", "6L50", "5M", "5L50", "4M", "4L50", "3M", "3L50"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "5D", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + storedpower: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3T", "3L8"], + suckerpunch: ["8L40"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + teeterdance: ["8L52", "7E", "6E", "5E", "5D", "4E"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T", "3S0"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + tickle: ["8E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "7L36", "7E", "6T", "6L36", "6E", "5T", "5L36", "5E", "4T", "4L36", "4E", "3L36", "3E"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M"], + wakeupslap: ["7E", "6E", "5E", "4E"], + wideguard: ["8L1", "7L1", "6L1", "5L1"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 42, abilities: ["soundproof"], moves: ["followme", "psychic", "encore", "thunderpunch"]}, + ], + encounters: [ + {generation: 1, level: 6}, + ], + }, + mrmimegalar: { + learnset: { + allyswitch: ["8M", "8L16"], + attract: ["8M"], + avalanche: ["8M"], + batonpass: ["8M", "8L1"], + blizzard: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confuseray: ["8E"], + confusion: ["8L12", "8S0"], + copycat: ["8L1", "8S0"], + dazzlinggleam: ["8M", "8L1"], + doublekick: ["8L24"], + drainpunch: ["8M"], + encore: ["8M", "8L1", "8S0"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + fakeout: ["8E"], + fling: ["8M"], + focusblast: ["8M"], + foulplay: ["8M"], + freezedry: ["8L44"], + futuresight: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + guardswap: ["8M"], + hail: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypnosis: ["8L32"], + icebeam: ["8M"], + icepunch: ["8M"], + iceshard: ["8L1", "8S0"], + iciclespear: ["8M"], + icywind: ["8M", "8L20"], + irondefense: ["8M"], + lightscreen: ["8M", "8L1"], + magicroom: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M"], + mimic: ["8L1"], + mirrorcoat: ["8L36"], + mistyterrain: ["8M", "8L1"], + nastyplot: ["8M"], + payback: ["8M"], + pound: ["8L1"], + powersplit: ["8E"], + powerswap: ["8M"], + protect: ["8M", "8L1"], + psybeam: ["8L28"], + psychic: ["8M", "8L48"], + psychicterrain: ["8M"], + psyshock: ["8M"], + raindance: ["8M"], + rapidspin: ["8L1"], + recycle: ["8L1"], + reflect: ["8M", "8L1"], + rest: ["8M"], + roleplay: ["8L1"], + round: ["8M"], + safeguard: ["8M", "8L1"], + screech: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stompingtantrum: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L40"], + sunnyday: ["8M"], + taunt: ["8M"], + teeterdance: ["8L52"], + thief: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + tickle: ["8E"], + trick: ["8M"], + trickroom: ["8M"], + tripleaxel: ["8T"], + uproar: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["copycat", "encore", "iceshard", "confusion"], pokeball: "cherishball"}, + ], + }, + mrrime: { + learnset: { + afteryou: ["8L1"], + allyswitch: ["8M", "8L16"], + attract: ["8M"], + avalanche: ["8M"], + batonpass: ["8M", "8L1"], + blizzard: ["8M"], + block: ["8L1"], + bodyslam: ["8M"], + brickbreak: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confusion: ["8L12"], + copycat: ["8L1"], + dazzlinggleam: ["8M", "8L1"], + doublekick: ["8L24"], + drainpunch: ["8M"], + encore: ["8M", "8L1"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + faketears: ["8M", "8L1"], + fling: ["8M"], + focusblast: ["8M"], + foulplay: ["8M"], + freezedry: ["8L44"], + futuresight: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + guardswap: ["8M"], + hail: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypnosis: ["8L32"], + icebeam: ["8M"], + icepunch: ["8M"], + iceshard: ["8L1"], + iciclespear: ["8M"], + icywind: ["8M", "8L20"], + irondefense: ["8M"], + lightscreen: ["8M", "8L1"], + magicroom: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M"], + mimic: ["8L1"], + mirrorcoat: ["8L36"], + mistyterrain: ["8M", "8L1"], + nastyplot: ["8M"], + payback: ["8M"], + pound: ["8L1"], + powerswap: ["8M"], + protect: ["8M", "8L1"], + psybeam: ["8L28"], + psychic: ["8M", "8L48"], + psychicterrain: ["8M"], + psyshock: ["8M"], + raindance: ["8M"], + rapidspin: ["8L1"], + recycle: ["8L1"], + reflect: ["8M", "8L1"], + rest: ["8M"], + roleplay: ["8L1"], + round: ["8M"], + safeguard: ["8M", "8L1"], + screech: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + slackoff: ["8L1"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stompingtantrum: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L40"], + sunnyday: ["8M"], + taunt: ["8M"], + teeterdance: ["8L52"], + thief: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + tripleaxel: ["8T"], + uproar: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + scyther: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L32", "8M", "8L32", "8V", "7L17", "7V", "6L17", "5L17", "5S2", "4L17", "3L21"], + aircutter: ["9M"], + airslash: ["9M", "9L36", "8M", "8L36", "8V", "7L50", "6L50", "5L53", "4L53"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "8M", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defog: ["9E", "8E", "7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doublehit: ["9L20", "8L20", "7L49", "6L49", "5L49", "4L49"], + doubleteam: ["9L16", "8L16", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L41"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L8", "8M", "8L8", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L13", "3L16"], + feint: ["9E", "8E", "8V", "7L61", "6L61", "5L61", "4L61"], + focusenergy: ["9L28", "8M", "8L28", "8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L6", "3S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9L4", "8L4", "7L25", "7V", "6L25", "5L25", "5S2", "4T", "4L25", "3T", "3L46"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["8L44", "7T"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + lunge: ["9M"], + mimic: ["7V", "3T"], + morningsun: ["3S1"], + naturalgift: ["4M"], + nightslash: ["9E", "8E", "7L45", "7E", "6L45", "6E", "5L45", "5E", "4L45", "4E"], + ominouswind: ["4T"], + pounce: ["9M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + pursuit: ["7L9", "7V", "6L9", "5L9", "4L9", "3L11"], + quickattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + quickguard: ["9E", "8E", "7E", "6E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7L33", "7E", "7V", "6L33", "6E", "5L33", "5E", "4L33", "4E", "3E", "3S1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E", "3S1"], + skullbash: ["7V"], + slash: ["9L24", "8L24", "8V", "7L29", "7V", "6L29", "5L29", "5S2", "4L29", "3L31", "3S1"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L44", "8M", "8L48", "8V", "7M", "7L57", "7V", "6M", "6L57", "5M", "5L57", "4M", "4L57", "3T", "3L36"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "7L1", "6L1", "5L1", "4L1"], + wingattack: ["9L12", "8L12", "8V", "7L21", "7V", "6L21", "5L21", "5S2", "4L21", "3L26"], + xscissor: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["swarm"], moves: ["quickattack", "leer", "focusenergy"], pokeball: "pokeball"}, + {generation: 3, level: 40, abilities: ["swarm"], moves: ["morningsun", "razorwind", "silverwind", "slash"]}, + {generation: 5, level: 30, moves: ["agility", "wingattack", "furycutter", "slash"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 1, level: 25}, + ], + }, + scizor: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "6S5", "5M", "4M", "3M"], + agility: ["9M", "9L1", "8M", "8L1", "7L17", "7V", "6L17", "6S5", "6S6", "5L17", "4L17", "4S1", "3L21"], + aircutter: ["9M"], + airslash: ["9M", "9L1", "8M", "8L1"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bugbite: ["9M", "7T", "6T", "5T", "5S2", "4T"], + bugbuzz: ["9M", "8M"], + bulletpunch: ["9L0", "8L0", "7L1", "6L1", "6S7", "5L1", "5S2", "4L1"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doublehit: ["9L20", "8L20", "7L49", "6L49", "6S4", "5L49", "4L49"], + doubleteam: ["9L16", "8L16", "7M", "7V", "6M", "5M", "4M", "3M", "3L41"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L13", "7V", "6M", "6L13", "6S5", "6S6", "5M", "5L13", "4M", "4L13", "3L16"], + feint: ["7L1", "6L1", "5L61", "4L61"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L28", "8M", "8L28", "7L5", "7V", "6L5", "5L5", "5S3", "4L5", "3L6"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9L1", "8L1", "7L25", "7V", "6L25", "6S5", "6S6", "5L25", "4T", "4L25", "3T", "3L46", "3S0"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "9L32", "8M", "8L32", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37", "4S1", "3L41"], + ironhead: ["9M", "9L36", "8M", "8L36", "7T", "7L50", "6T", "6L50", "6S4", "5T", "5L53", "4T", "4L53"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["8L44", "7T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S3", "4L1", "3L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], + metalclaw: ["9M", "9L12", "8L12", "7L21", "7V", "6L21", "6S6", "5L21", "4L21", "3L26", "3S0"], + mimic: ["3T"], + naturalgift: ["4M"], + nightslash: ["7L45", "6L45", "6S4", "5L45", "4L45"], + ominouswind: ["4T"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + pursuit: ["7L9", "7V", "6L9", "5L9", "5S3", "4L9", "3L11"], + quickattack: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7L33", "6L33", "5L33", "4L33"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "6S7", "5T", "5S2", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["4M"], + slash: ["9L24", "8L24", "7L29", "7V", "6L29", "5L29", "4L29", "3L31", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelbeam: ["9M", "8T"], + steelwing: ["8M", "7M", "7V", "6M", "5S3", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L44", "8M", "8L48", "7M", "7L57", "7V", "6M", "6L57", "6S7", "5M", "5L57", "5S2", "4M", "4L57", "4S1", "3T", "3L36", "3S0"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "6S7", "5M", "4M"], + vacuumwave: ["9M"], + venoshock: ["8M", "7M", "6M", "5M"], + wingattack: ["9L1", "8L1"], + xscissor: ["9M", "9L40", "8M", "8L40", "7M", "7L41", "6M", "6L41", "6S4", "5M", "5L41", "4M", "4L41", "4S1"], + }, + eventData: [ + {generation: 3, level: 50, gender: "M", abilities: ["swarm"], moves: ["furycutter", "metalclaw", "swordsdance", "slash"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Adamant", abilities: ["swarm"], moves: ["xscissor", "swordsdance", "irondefense", "agility"], pokeball: "cherishball"}, + {generation: 5, level: 100, gender: "M", abilities: ["technician"], moves: ["bulletpunch", "bugbite", "roost", "swordsdance"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "focusenergy", "pursuit", "steelwing"]}, + {generation: 6, level: 50, gender: "M", moves: ["xscissor", "nightslash", "doublehit", "ironhead"], pokeball: "cherishball"}, + {generation: 6, level: 25, nature: "Adamant", abilities: ["technician"], moves: ["aerialace", "falseswipe", "agility", "furycutter"], pokeball: "cherishball"}, + {generation: 6, level: 25, moves: ["metalclaw", "falseswipe", "agility", "furycutter"], pokeball: "cherishball"}, + {generation: 6, level: 50, abilities: ["technician"], moves: ["bulletpunch", "swordsdance", "roost", "uturn"], pokeball: "cherishball"}, + ], + }, + kleavor: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L32"], + aircutter: ["9M"], + airslash: ["9M"], + batonpass: ["9M"], + brickbreak: ["9M"], + bugbite: ["9M"], + bugbuzz: ["9M"], + closecombat: ["9M"], + doublehit: ["9L20"], + doubleteam: ["9L16"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M", "9L8"], + focusenergy: ["9L28"], + furycutter: ["9L4"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + leer: ["9L1"], + lightscreen: ["9M"], + lunge: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9L1"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L36"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + slash: ["9L24"], + sleeptalk: ["9M"], + smackdown: ["9M", "9L12"], + stealthrock: ["9M"], + stoneaxe: ["9L0"], + stoneedge: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M", "9L44"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + vacuumwave: ["9M"], + xscissor: ["9M", "9L40"], + }, + }, + smoochum: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + auroraveil: ["7M"], + avalanche: ["8M", "7L35", "6L35", "5L35", "4M", "4L31"], + blizzard: ["8M", "8L48", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L48", "4M", "4L45", "3M", "3L57"], + bodyslam: ["8M", "3T"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["7E", "6E", "5E", "5D", "4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L12", "7L15", "7V", "6L15", "5L15", "4L15", "3L21"], + copycat: ["8L8", "7L41", "6L41", "5L41", "4L38"], + counter: ["3T"], + covet: ["8L16", "7T", "6T", "5T"], + curse: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8E", "7E", "6E", "5E", "4E", "3E"], + faketears: ["8M", "8L24", "7L28", "6L28", "5L28", "4L25", "3L37"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + healbell: ["7T", "6T", "5T", "4T"], + heartstamp: ["7L21", "6L21", "5L21"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8L28", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lick: ["8L1", "7L5", "7V", "6L5", "5L5", "4L5", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L31", "6L31", "5L31", "4L28"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + meanlook: ["8L40", "7L25", "7V", "6L25", "5L25", "4L21", "3L33"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "3T"], + mimic: ["3T"], + miracleeye: ["7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["8L44", "7L45", "7V", "6L45", "5L45", "4L41", "3L49"], + pound: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + powdersnow: ["8L4", "7L11", "7V", "6L11", "5L11", "4L11", "3L13"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L32", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L38", "4M", "4L35", "3M", "3L45"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8E", "7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L20", "7L18", "7V", "6L18", "5L18", "4L18", "3L25"], + skillswap: ["8M", "7T", "6T", "5T", "5D", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L36", "7L8", "7V", "6L8", "5L8", "5D", "4L8", "3L9"], + sweetscent: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + wakeupslap: ["7E", "6E", "5E"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8E", "7E", "6E", "5E", "4E", "3E"], + wonderroom: ["8M", "7T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + jynx: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + auroraveil: ["7M"], + avalanche: ["8M", "7L39", "6L39", "5L39", "4M", "4L33"], + bide: ["7V"], + blizzard: ["8M", "8L58", "8V", "7M", "7L60", "7V", "6M", "6L60", "5M", "5L60", "4M", "4L55", "3M", "3L67"], + bodyslam: ["8M", "8V", "7L44", "7V", "6L44", "5L44", "4L39", "3T", "3L51"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L12", "8V"], + copycat: ["8L1"], + counter: ["7V", "3T"], + covet: ["8L16", "7T", "6T", "5T"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L21"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M", "7L1", "6L1"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M", "8L24", "7L28", "6L28", "5L28", "4L25", "3L41"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heartstamp: ["7L21", "6L21", "5L21"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8L28", "8V", "7T", "7L18", "7V", "6T", "6L18", "5T", "5L18", "4T", "4L18", "3T", "3L25"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lick: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lovelykiss: ["8L40", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + meanlook: ["8L46", "7L25", "7V", "6L25", "5L25", "4L21", "3L35"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["8L52", "7L1", "7V", "6L1", "5L55", "4L49", "3L57"], + pound: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + powdersnow: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L34", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8V"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L20"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L1"], + sweetscent: ["7V"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["7V"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + uproar: ["8M"], + wakeupslap: ["7L33", "6L33", "5L33", "4L28"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["8M", "7T"], + wringout: ["7L49", "6L49", "5L49", "4L44"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 20, nature: "Mild", ivs: {hp: 18, atk: 17, def: 18, spa: 22, spd: 25, spe: 21}, abilities: ["oblivious"], pokeball: "pokeball"}, + {generation: 4, level: 22}, + {generation: 7, level: 9}, + ], + }, + elekid: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charge: ["8L8"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E", "3S0"], + curse: ["7V"], + detect: ["7V"], + discharge: ["8L32", "7L33", "6L33", "5L41", "4L34"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + electroball: ["8M", "7L22", "6L22", "5L31"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8E", "7E", "6E", "5E", "4E"], + firepunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hammerarm: ["8E", "7E", "6E", "5E"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], + karatechop: ["7E", "7V", "6E", "5E", "4E", "3E"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8L44", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L25", "3M", "3L17"], + lowkick: ["8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L11", "4T", "4L10"], + magnetrise: ["7T", "6T", "5T", "5D", "4T"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollingkick: ["7E", "7V", "6E", "5E", "4E", "3E"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L24", "7L36", "7V", "6L36", "5L51", "4L43", "3L33"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "5L21", "4M", "4L19", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L12", "7L12", "7V", "6L12", "5L16", "4T", "4L16", "3T", "3L25"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L56", "4M", "4L46", "3M", "3L49"], + thunderbolt: ["8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L46", "4M", "4L37", "3M", "3L41"], + thunderpunch: ["8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L36", "4T", "4L28", "3T", "3L9", "3S0"], + thundershock: ["8L4", "7L5", "6L5", "5L6", "5D", "4L7"], + thunderwave: ["8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 20, moves: ["icepunch", "firepunch", "thunderpunch", "crosschop"], pokeball: "pokeball"}, + ], + }, + electabuzz: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charge: ["8L1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["3S1"], + curse: ["7V"], + detect: ["7V"], + discharge: ["8L34", "7L36", "6L36", "5L44", "4L37"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + electroball: ["8M", "7L22", "6L22", "5L32"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["3S1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "8L64", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lightscreen: ["8M", "8L52", "8V", "7M", "7L26", "7V", "6M", "6L26", "6S4", "5M", "5L26", "5S3", "4M", "4L25", "4S2", "3M", "3L17"], + lowkick: ["8M", "8L40", "8V", "7T", "7L8", "6T", "6L8", "6S4", "5T", "5L11", "5S3", "4T", "4L10", "4S2"], + lowsweep: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + quickattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L24", "8V", "7L42", "7V", "6L42", "5L56", "4L52", "3L36"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "6S4", "5L21", "5S3", "4M", "4L19", "4S2", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L12", "8V", "7L12", "7V", "6L12", "5L16", "5S3", "4T", "4L16", "3T", "3L25"], + takedown: ["7V"], + taunt: ["8V"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L62", "4M", "4L58", "3M", "3L58"], + thunderbolt: ["8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L50", "4M", "4L43", "3M", "3L47", "3S1"], + thunderpunch: ["8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L38", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], + thundershock: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + thunderwave: ["8M", "8L20", "8V", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "3T", "3S1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["quickattack", "leer", "thunderpunch"], pokeball: "pokeball"}, + {generation: 3, level: 43, moves: ["followme", "crosschop", "thunderwave", "thunderbolt"]}, + {generation: 4, level: 30, gender: "M", nature: "Naughty", moves: ["lowkick", "shockwave", "lightscreen", "thunderpunch"], pokeball: "pokeball"}, + {generation: 5, level: 30, moves: ["lowkick", "swift", "shockwave", "lightscreen"], pokeball: "cherishball"}, + {generation: 6, level: 30, gender: "M", isHidden: true, moves: ["lowkick", "shockwave", "lightscreen", "thunderpunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 33}, + {generation: 2, level: 15}, + {generation: 4, level: 15}, + {generation: 7, level: 25}, + ], + }, + electivire: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charge: ["8L1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crosschop: ["4S0"], + darkestlariat: ["8M"], + dig: ["8M", "6M", "5M", "4M"], + discharge: ["8L34", "7L36", "6L36", "5L44", "4L37", "4S1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "4S0"], + electricterrain: ["8M", "7L1", "6L1"], + electroball: ["8M", "7L22", "6L22", "5L32"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L68", "4M", "4L67"], + headbutt: ["4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "4S0"], + iondeluge: ["7L1", "6L1"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["8M", "8L52", "7M", "7L26", "6M", "6L26", "5M", "5L26", "4M", "4L25", "4S1"], + lowkick: ["8M", "8L40", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + lowsweep: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L24", "7L42", "6L42", "5L56", "4L52"], + secretpower: ["6M", "4M"], + shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "5L21", "4M", "4L19"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "8L12", "7L12", "6L12", "5L16", "4T", "4L16"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L62", "4M", "4L58"], + thunderbolt: ["8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L50", "4M", "4L43", "4S1"], + thunderpunch: ["8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L38", "4T", "4L28", "4S0", "4S1"], + thundershock: ["8L1", "7L1", "6L1", "5L1", "4L1"], + thunderwave: ["8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M"], + voltswitch: ["8M", "7M", "6M", "5M"], + weatherball: ["8M"], + wildcharge: ["8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Adamant", moves: ["thunderpunch", "icepunch", "crosschop", "earthquake"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Serious", moves: ["lightscreen", "thunderpunch", "discharge", "thunderbolt"], pokeball: "cherishball"}, + ], + }, + magby: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + belch: ["8E", "7E", "6E"], + bellydrum: ["7E", "6E", "5E", "4E"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + clearsmog: ["8L12", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8L20", "7L26", "7V", "6L26", "5L25", "4L25", "3L43"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + ember: ["8L4", "7L5", "7V", "6L5", "5L7", "5D", "4L7", "3L1"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L12", "6L12", "5L16", "4L16"], + fireblast: ["8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L49", "4M", "4L46", "3M", "3L49"], + firepunch: ["8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L34", "4T", "4L28", "3T", "3L19"], + firespin: ["8M", "7L15", "6L15", "5L19", "4L19"], + flameburst: ["7L22", "6L22", "5L28"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L43", "4M", "4L37", "3M", "3L37"], + flamewheel: ["8L16"], + flareblitz: ["8M", "7E", "6E", "5E", "4E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "7E", "6E", "5E"], + focuspunch: ["8E", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "5D", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + karatechop: ["7E", "7V", "6E", "5E", "4E", "3E"], + lavaplume: ["8L32", "7L33", "6L33", "5L37", "4L34"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L7"], + lowkick: ["8M", "8L36"], + machpunch: ["8E", "7E", "6E", "5E", "4E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M", "7E", "6E"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L24"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + smokescreen: ["8L8", "7L8", "7V", "6L8", "5L10", "4L10", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L44", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L46", "4M", "4L43", "3M", "3L31"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3T", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + magmar: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + burningjealousy: ["8T"], + captivate: ["4M"], + clearsmog: ["8L12", "8V", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8L20", "8V", "7L26", "7V", "6L26", "6S4", "5L26", "5S3", "4L25", "4S2", "3L49"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["3S1"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + ember: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L12", "6L12", "5L16", "5S3", "4L16"], + fireblast: ["8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L62", "4M", "4L54", "3M", "3L57", "3S1"], + firepunch: ["8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L38", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], + firespin: ["8M", "8V", "7L15", "6L15", "6S4", "5L21", "5S3", "4L19", "4S2"], + flameburst: ["7L22", "6L22", "5L32"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L50", "4M", "4L41", "3M", "3L41"], + flamewheel: ["8L16"], + flareblitz: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["3S1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L64", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lavaplume: ["8L34", "7L36", "6L36", "5L44", "4L36"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lowkick: ["8M", "8L40", "8V", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L24"], + scorchingsands: ["8T"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + smokescreen: ["8L1", "8V", "7L8", "7V", "6L8", "6S4", "5L11", "5S3", "4L10", "4S2", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L52", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L56", "4M", "4L49", "3M", "3L33"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + taunt: ["8V"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T", "3S1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["leer", "smog", "firepunch", "ember"], pokeball: "pokeball"}, + {generation: 3, level: 36, moves: ["followme", "fireblast", "crosschop", "thunderpunch"]}, + {generation: 4, level: 30, gender: "M", nature: "Quiet", moves: ["smokescreen", "firespin", "confuseray", "firepunch"], pokeball: "pokeball"}, + {generation: 5, level: 30, moves: ["smokescreen", "feintattack", "firespin", "confuseray"], pokeball: "cherishball"}, + {generation: 6, level: 30, gender: "M", isHidden: true, moves: ["smokescreen", "firespin", "confuseray", "firepunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 34}, + {generation: 2, level: 14}, + {generation: 4, level: 14}, + {generation: 7, level: 16}, + ], + }, + magmortar: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + captivate: ["4M"], + clearsmog: ["8L12", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8L20", "7L26", "6L26", "5L26", "4L25", "4S1"], + covet: ["7T", "6T", "5T"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + ember: ["8L1", "7L1", "6L1", "5L1", "4L1"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L12", "6L12", "5L16", "4L16"], + fireblast: ["8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L62", "4M", "4L58"], + firepunch: ["8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L38", "4T", "4L28", "4S1"], + firespin: ["8M", "7L15", "6L15", "5L21", "4L19"], + flameburst: ["7L22", "6L22", "5L32"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L50", "4M", "4L43", "4S0", "4S1"], + flamewheel: ["8L16"], + flareblitz: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L68", "4M", "4L67", "4S0"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + lavaplume: ["8L34", "7L36", "6L36", "5L44", "4L37", "4S1"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["8M", "8L40", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["4T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M", "4S0"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L24"], + scorchingsands: ["8T"], + screech: ["8M"], + secretpower: ["6M", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smog: ["8L1", "7L1", "6L1", "5L1", "4L1"], + smokescreen: ["8L1", "7L1", "6L1", "5L1", "4L1"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "4S0"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "8L52", "7M", "7L42", "6M", "6L42", "5M", "5L56", "4M", "4L52"], + swagger: ["7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 50, gender: "F", nature: "Modest", moves: ["flamethrower", "psychic", "hyperbeam", "solarbeam"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Hardy", moves: ["confuseray", "firepunch", "lavaplume", "flamethrower"], pokeball: "cherishball"}, + ], + }, + pinsir: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["8L8", "8V", "7T", "7L4", "7V", "6T", "6L4", "5T", "5L4", "4L4", "3L7"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "7L26", "6M", "6L18", "5M", "5L21", "4M", "4L21", "3M", "3L31"], + brutalswing: ["8M", "7M"], + bugbite: ["8L16", "7T", "7E", "6T", "6E", "5T", "5E"], + bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M", "7E", "6E", "5E", "5D", "4E"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublehit: ["8L24", "7L22", "6L22"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "8V", "7M", "6M", "6S1", "6S2", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M", "4E", "3E", "3S0"], + feint: ["8E", "7E", "6E", "6S2", "5E", "4E"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L4", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + guillotine: ["8L48", "8V", "7L50", "7V", "6L47", "5L47", "4L47", "3L37", "3S0"], + harden: ["8L1", "8V", "7L11", "7V", "6L11", "5L13", "4L13", "3L19"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + mefirst: ["7E", "6E", "5E", "5D"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + outrage: ["8V"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8E", "7E", "6E", "6S2", "5E", "4E"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "6S1", "5M", "4M", "3M"], + revenge: ["8M", "7L15", "6L15", "5L18", "4L18", "3L25"], + reversal: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L12", "8V", "7L8", "7V", "6L8", "5L8", "4L8", "3T", "3L13"], + slash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "7M", "6M", "6S1", "5M", "4M"], + stormthrow: ["8L20", "7L36", "6L33", "5L33"], + strength: ["8L36", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + submission: ["8L44", "8V", "7L33", "7V", "6L26", "5L42", "4L42", "3L43", "3S0"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L52", "8V", "7T", "7L47", "7E", "6T", "6L43", "6E", "5T", "5L52", "5E", "4T", "4L52"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8L40", "8V", "7M", "7L40", "7V", "6M", "6L40", "6S2", "5M", "5L38", "4M", "4L38", "3T", "3L49"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8E", "8V", "7L43", "6L36", "5L35", "4L35"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + visegrip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + vitalthrow: ["8L28", "7L18", "6L18", "5L25", "4L25"], + xscissor: ["8M", "8L32", "8V", "7M", "7L29", "6M", "6L29", "6S1", "5M", "5L30", "4M", "4L30"], + }, + eventData: [ + {generation: 3, level: 35, abilities: ["hypercutter"], moves: ["helpinghand", "guillotine", "falseswipe", "submission"]}, + {generation: 6, level: 50, gender: "F", nature: "Adamant", moves: ["xscissor", "earthquake", "stoneedge", "return"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Jolly", isHidden: true, moves: ["earthquake", "swordsdance", "feint", "quickattack"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 1, level: 20}, + ], + }, + tauros: { + learnset: { + assurance: ["9L15", "8M", "8L15"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T", "3S2"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + curse: ["9E", "7V"], + dig: ["9M"], + doubleedge: ["9L55", "8L55", "8V", "7L63", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + endeavor: ["9E", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "9L60", "8M", "8L60", "7M", "7L63", "6M", "6L63", "5M", "5L63", "4M", "4L55"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + hornattack: ["9L20", "8L20", "8V", "7L8", "7V", "6L8", "5L8", "4L8", "3L8", "3S0", "3S1"], + horndrill: ["7V"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + lashout: ["9M", "8T"], + leer: ["8V", "7V"], + megahorn: ["8M"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + payback: ["9L10", "8M", "8L10", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L15", "7V", "6L15", "5L15", "4L15", "3L19", "3S0"], + rage: ["8V", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L4", "3S0", "3S1"], + ragingbull: ["9L35"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S2"], + rest: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "4L19", "3M", "3L34"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockclimb: ["5D", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L25", "8M", "8L25", "7L11", "7V", "6L11", "5L11", "4L11", "3L13", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M", "8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stomp: ["7V"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L45", "8L45", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L48", "4M", "4L41", "3T", "3L26"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + tailwhip: ["9L1", "8L1", "8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L1", "3S1", "3S2"], + takedown: ["9M", "8L35", "8V", "7L35", "7V", "6L41", "5L41", "4L35", "3L53"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50", "8L50", "8V", "7L50", "7V", "6L50", "5L55", "4L48", "3L43"], + throatchop: ["8M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["9L5", "8M", "8L5", "7M", "7L29", "6L29", "5M", "5L29"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L30", "8M", "8L30", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L29"], + }, + eventData: [ + {generation: 3, level: 25, nature: "Docile", ivs: {hp: 14, atk: 19, def: 12, spa: 17, spd: 5, spe: 26}, abilities: ["intimidate"], moves: ["rage", "hornattack", "scaryface", "pursuit"], pokeball: "safariball"}, + {generation: 3, level: 10, abilities: ["intimidate"], moves: ["tackle", "tailwhip", "rage", "hornattack"], pokeball: "pokeball"}, + {generation: 3, level: 46, abilities: ["intimidate"], moves: ["refresh", "earthquake", "tailwhip", "bodyslam"]}, + ], + encounters: [ + {generation: 1, level: 21}, + ], + }, + taurospaldeacombat: { + learnset: { + assurance: ["9L15"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M", "9L60"], + curse: ["9E"], + dig: ["9M"], + doubleedge: ["9L55"], + doublekick: ["9L10"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L20"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + outrage: ["9M"], + protect: ["9M"], + ragingbull: ["9L35"], + raindance: ["9M"], + rest: ["9M", "9L40"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L25"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swagger: ["9L45"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50"], + trailblaze: ["9M"], + wildcharge: ["9M"], + workup: ["9L5"], + zenheadbutt: ["9M", "9L30"], + }, + }, + taurospaldeablaze: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M", "9L60"], + curse: ["9E"], + dig: ["9M"], + doublekick: ["9L10"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M", "9L15"], + flamethrower: ["9M"], + flareblitz: ["9M", "9L55"], + gigaimpact: ["9M"], + headbutt: ["9L20"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + ragingbull: ["9L35"], + raindance: ["9M"], + rest: ["9M", "9L40"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L25"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L45"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50"], + trailblaze: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + workup: ["9L5"], + zenheadbutt: ["9M", "9L30"], + }, + }, + taurospaldeaaqua: { + learnset: { + aquajet: ["9L15"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L60"], + curse: ["9E"], + dig: ["9M"], + doublekick: ["9L10"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L20"], + highhorsepower: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + outrage: ["9M"], + protect: ["9M"], + ragingbull: ["9L35"], + raindance: ["9M"], + rest: ["9M", "9L40"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L25"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swagger: ["9L45"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50"], + trailblaze: ["9M"], + waterpulse: ["9M"], + wavecrash: ["9L55"], + wildcharge: ["9M"], + workup: ["9L5"], + zenheadbutt: ["9M", "9L30"], + }, + }, + magikarp: { + learnset: { + bounce: ["8M", "7T", "7S7", "6T", "5T", "5D", "5S5", "4T"], + celebrate: ["6S6"], + flail: ["9L25", "8L25", "7L30", "7V", "6L30", "5L30", "5S5", "4L30", "3L30"], + happyhour: ["6S6"], + hydropump: ["8M", "5S5"], + splash: ["9L1", "8L1", "8V", "7L1", "7V", "7S7", "6L1", "6S6", "5L1", "5D", "5S5", "4L1", "4S0", "4S1", "4S2", "4S3", "4S4", "3L1"], + tackle: ["9L15", "8L15", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L15"], + }, + eventData: [ + {generation: 4, level: 5, gender: "M", nature: "Relaxed", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 6, gender: "F", nature: "Rash", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 7, gender: "F", nature: "Hardy", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 5, gender: "F", nature: "Lonely", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 4, gender: "M", nature: "Modest", moves: ["splash"], pokeball: "pokeball"}, + {generation: 5, level: 99, shiny: true, gender: "M", moves: ["flail", "hydropump", "bounce", "splash"], pokeball: "cherishball"}, + {generation: 6, level: 1, shiny: 1, moves: ["splash", "celebrate", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 19, shiny: true, moves: ["splash", "bounce"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + gyarados: { + learnset: { + aquatail: ["9L32", "8L32", "7T", "7L30", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bide: ["7V"], + bind: ["8V"], + bite: ["9L0", "8L0", "8V", "7L1", "7V", "6L20", "6S1", "5L20", "4L20", "3L20"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["9L12", "8M", "8L12", "4M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L24", "8M", "8L24", "8V", "7L39", "6L41"], + curse: ["7V"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragondance: ["9M", "9L36", "8M", "8L36", "7L45", "6L44", "6S0", "5L44", "4L44", "3L50"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L36", "7V", "6L23", "5L23", "4L23", "3L25"], + dragontail: ["9M", "8V", "7M", "6M", "5M"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "6S0", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L44", "8M", "8L44", "7L48"], + hydropump: ["9M", "9L40", "8M", "8L40", "8V", "7L42", "7V", "6L41", "5L41", "4L41", "3L40"], + hyperbeam: ["9M", "9L52", "8M", "8L52", "8V", "7M", "7L54", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L55"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L8", "8M", "8L8", "7L27", "6L32", "6S0", "6S1", "5L32", "4L32"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "6S1", "5T", "4T"], + irontail: ["8M", "8V", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "8V", "7L21", "7V", "6L26", "5L26", "4L26", "3L30"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + powerwhip: ["8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7V"], + raindance: ["9M", "9L28", "8M", "8L28", "7M", "7L51", "7V", "6M", "6L38", "5M", "5L38", "4M", "4L38", "3M", "3L45"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["9M", "8M", "8V", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L16", "8M", "8L16", "7L33"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + splash: ["9L1", "8L1"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1", "7V"], + takedown: ["9M", "7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L48", "8L48", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "7L24", "7V", "6L29", "5L29", "4T", "4L29", "3L35"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "9L21", "8M", "8L21", "8V", "7M", "7V", "6M", "6S0", "6S1", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["9L4", "8M", "8L4", "7V", "4M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["waterfall", "earthquake", "icefang", "dragondance"], pokeball: "cherishball"}, + {generation: 6, level: 20, shiny: true, moves: ["waterfall", "bite", "icefang", "ironhead"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 15}, + {generation: 3, level: 5}, + {generation: 4, level: 10}, + {generation: 5, level: 1}, + {generation: 7, level: 10}, + ], + }, + lapras: { + learnset: { + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["7V"], + avalanche: ["8M", "7E", "6E", "5E", "4M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L40", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3T", "3L13"], + brine: ["8M", "8L35", "7L37", "6L37", "5L37", "4M", "4L37"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confuseray: ["8L25", "8V", "7L7", "7V", "6L7", "5L7", "5D", "4L7", "3L19"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragondance: ["8M", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dragonrage: ["7V"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["8E", "7E", "6E", "5E", "4E"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + freezedry: ["8E", "7E", "6E"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "6E", "5E"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T", "3S0"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + hydropump: ["8M", "8L55", "8V", "7L47", "7V", "6L47", "5L49", "4L49", "3L49", "3S0"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "8L45", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], + iceshard: ["8L20", "8V", "7L10", "6L10", "5L10", "4L10"], + icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lifedew: ["8L15"], + liquidation: ["8M"], + megahorn: ["8M", "8V"], + mimic: ["7V", "3T"], + mist: ["8L10", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L7"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + perishsong: ["8L60", "7L27", "7V", "6L27", "5L27", "4L27", "3L25"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "8L50", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L37", "3S0"], + reflect: ["8V", "7V"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L65", "7L50", "6L50", "5L55", "4L55", "3L55"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7V"], + sparklingaria: ["8E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L30", "7T", "7L14", "6T", "6L14", "5L14", "4M", "4L14", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M", "4E"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 44, moves: ["hydropump", "raindance", "blizzard", "healbell"]}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + ditto: { + learnset: { + transform: ["9L1", "8L1", "8V", "7L1", "7V", "7S0", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["transform"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 12}, + {generation: 2, level: 10}, + {generation: 3, level: 23}, + {generation: 4, level: 10}, + {generation: 5, level: 45}, + {generation: 6, level: 30}, + {generation: 7, level: 25}, + ], + }, + eevee: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "5S2", "4M", "4S0", "3M"], + babydolleyes: ["9L15", "8L15", "7L9", "7S5", "6L9", "6S3", "6S4"], + batonpass: ["9M", "9L35", "8M", "8L35", "7L33", "7V", "6L33", "5L36", "4L36", "3L36"], + bide: ["7V"], + bite: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L29", "4L29", "4S0", "3L30"], + bodyslam: ["9M", "8M", "7V", "3T"], + calmmind: ["9M"], + captivate: ["7E", "6E", "4M"], + celebrate: ["8S6", "7S5", "6S3"], + charm: ["9M", "9L45", "8M", "8L45", "7L29", "7E", "7V", "6L29", "6E", "5L29", "5E", "5D", "4E", "3E"], + confide: ["7M", "6M"], + copycat: ["9L30", "8L30"], + covet: ["9L1", "8L1", "8S6", "7T", "7L1", "7E", "6T", "6L23", "6E", "5T", "5L21", "5E", "4E", "4S0"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + detect: ["9E", "8E", "7E", "7V", "6E", "5E", "4E"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L50", "8L50", "8V", "7L37", "7V", "6L37", "5L37", "3T"], + doublekick: ["9E", "8E", "8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M", "5S2"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "4E"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "4S1", "3E"], + focusenergy: ["8M", "7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L15", "4L15", "3L16"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "8S6", "7T", "7L1", "6T", "6L1", "6S4", "5T", "5L1", "4T", "4L1", "4S0", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "4S1", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + mimic: ["7V", "3T"], + mudslap: ["9M", "9E", "8E", "7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + payday: ["8M", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "6S4", "5L22", "4L22", "4S1", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + refresh: ["7L20", "6L20"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "5S2", "4M", "3M"], + roar: ["9M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "7S5", "6L5", "6S3", "5L8", "5D", "4L8", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sing: ["5S2"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7E", "6E", "5E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8M", "8L20", "8V", "7L17", "7V", "6L10", "6S3", "6S4", "5D", "4T", "3T"], + synchronoise: ["7E", "6E", "5E"], + tackle: ["9L1", "8L1", "8V", "8S6", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L40", "8L40", "8V", "7L25", "7V", "6L25", "5L43", "4L43", "3L42"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trumpcard: ["7L45", "6L45", "5L57", "4L57", "4S1"], + weatherball: ["9M", "8M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + workup: ["8M", "7M", "5M"], + yawn: ["9E", "8E", "7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 4, level: 10, gender: "F", nature: "Lonely", abilities: ["adaptability"], moves: ["covet", "bite", "helpinghand", "attract"], pokeball: "cherishball"}, + {generation: 4, level: 50, shiny: true, gender: "M", nature: "Hardy", abilities: ["adaptability"], moves: ["irontail", "trumpcard", "flail", "quickattack"], pokeball: "cherishball"}, + {generation: 5, level: 50, gender: "F", nature: "Hardy", abilities: ["adaptability"], moves: ["sing", "return", "echoedvoice", "attract"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["celebrate", "sandattack", "babydolleyes", "swift"], pokeball: "cherishball"}, + {generation: 6, level: 15, shiny: true, isHidden: true, moves: ["swift", "quickattack", "babydolleyes", "helpinghand"], pokeball: "cherishball"}, + {generation: 7, level: 10, nature: "Jolly", moves: ["celebrate", "sandattack", "babydolleyes"], pokeball: "cherishball"}, + {generation: 8, level: 5, gender: "M", nature: "Docile", abilities: ["runaway"], moves: ["celebrate", "covet", "helpinghand", "tackle"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 25}, + ], + }, + eeveestarter: { + learnset: { + baddybad: ["8V", "7T"], + bite: ["8V", "7L17"], + bouncybubble: ["8V", "7T"], + buzzybuzz: ["8V", "7T"], + dig: ["8V", "7M"], + doubleedge: ["8V", "7L28"], + doublekick: ["8V", "7L10"], + facade: ["8V", "7M"], + freezyfrost: ["8V", "7T"], + glitzyglow: ["8V", "7T"], + growl: ["8V", "7L1", "7S0"], + headbutt: ["8V", "7M"], + helpinghand: ["8V", "7M", "7L31"], + irontail: ["8V", "7M"], + payday: ["8V", "7M"], + protect: ["8V", "7M"], + quickattack: ["8V", "7L6"], + reflect: ["8V", "7M"], + rest: ["8V", "7M"], + sandattack: ["8V", "7L14"], + sappyseed: ["8V", "7T"], + shadowball: ["8V", "7M"], + sizzlyslide: ["8V", "7T"], + sparklyswirl: ["8V", "7T"], + substitute: ["8V", "7M"], + swift: ["8V", "7L21"], + tackle: ["8V", "7L1", "7S0"], + tailwhip: ["8V", "7L3", "7S0"], + takedown: ["8V", "7L24"], + toxic: ["8V", "7M"], + veeveevolley: ["8V", "7T"], + }, + eventData: [ + {generation: 7, level: 5, perfectIVs: 6, moves: ["tackle", "tailwhip", "growl"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + vaporeon: { + learnset: { + acidarmor: ["9L45", "8L45", "8V", "7L29", "7V", "6L29", "5L64", "4L64", "3L47"], + aquaring: ["9L35", "8L35", "7L25", "6L25", "5L43", "4L43"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9L30", "8L30", "8V", "7L20", "7V", "6L20", "5L36", "4L36", "3L36"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bide: ["7V"], + bite: ["9L1", "8L1", "7V", "5L29", "4L29", "3L30"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L1", "8L1", "7V", "3T"], + doublekick: ["8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + flipturn: ["9M", "8T"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M", "9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L57", "4L57", "3L42"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L50", "8M", "8L50", "8V", "7L45", "7V", "6L45", "5L71", "4L71", "3L52"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + liquidation: ["9M", "8M"], + mimic: ["7V", "3T"], + mist: ["7V"], + muddywater: ["9L40", "8M", "8L40", "7L37", "6L37", "5L78", "4L78"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + payday: ["8M", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], + scald: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], + waterpulse: ["9M", "9L25", "8L25", "7T", "7L17", "6T", "6L17", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + yawn: ["8V"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "watergun"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["scald", "icebeam", "raindance", "rest"], pokeball: "cherishball"}, + ], + }, + jolteon: { + learnset: { + agility: ["9M", "9L45", "8M", "8L45", "8V", "7L29", "7V", "6L29", "5L64", "4L64", "3L47"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bide: ["7V"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M", "7V", "3T"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charge: ["9M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + discharge: ["9L40", "8L40", "7L37", "6L37", "5L78", "4L78"], + doubleedge: ["9L1", "8L1", "7V", "3T"], + doublekick: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L29", "4L29", "3L30"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + falseswipe: ["9M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lightscreen: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + payday: ["8M", "8V"], + pinmissile: ["9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L36", "4L36", "3L36"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1", "7V"], + terablast: ["9M"], + thunder: ["9M", "9L50", "8M", "8L50", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L71", "4M", "4L71", "3M", "3L52"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], + thundershock: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], + thunderwave: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L57", "4M", "4L57", "3T", "3L42"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M", "8M", "7M", "7S2", "6M", "5M"], + weatherball: ["9M", "8M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + yawn: ["8V"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "thundershock"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", moves: ["thunderbolt", "shadowball", "lightscreen", "voltswitch"], pokeball: "cherishball"}, + ], + }, + flareon: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bide: ["7V"], + bite: ["9L25", "8L25", "7L17", "7V", "6L17", "5L29", "4L29", "3L30"], + bodyslam: ["9M", "8M", "7V", "3T"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "8L1", "7V", "3T"], + doublekick: ["8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5L71", "4M", "4L71", "3M"], + firefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], + firespin: ["9M", "9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L36", "4L36", "3L36"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L52"], + flareblitz: ["9M", "9L50", "8M", "8L50", "8V", "7L45", "7S2", "6L45"], + focusenergy: ["8M", "8V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lavaplume: ["9L40", "8L40", "7L37", "6L37", "5L78", "4L78"], + leer: ["7V", "3L47"], + mimic: ["7V", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + payday: ["8M", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "7S2", "6L13", "5L22", "4L22", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], + scaryface: ["9M", "9L45", "8M", "8L45", "7L29", "6L29", "5L64", "4L64"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L57", "4L57", "3L42"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M"], + workup: ["8M", "7M", "5M"], + yawn: ["8V"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "ember"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["flareblitz", "facade", "willowisp", "quickattack"], pokeball: "cherishball"}, + ], + }, + espeon: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["6S2"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L0", "8L0", "7L1", "7V", "6L9", "6S2", "5L15", "4L15", "3L16"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["9M", "8M", "7M", "7S3", "6M"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "8L1", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L50", "8M", "8L50", "7L25", "6L25", "5L43", "4L43"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M"], + growl: ["9L1", "8L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mimic: ["3T"], + morningsun: ["9L30", "8L30", "7L33", "7V", "6L33", "5L71", "4L71", "3L52", "3S0"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M"], + powergem: ["9M"], + powerswap: ["9L35", "8M", "8L35", "7L45", "6L45", "5L78", "4L78"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L25", "8L25", "7L20", "7V", "6L20", "5L36", "4L36", "3L36", "3S0"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "7V", "7S3", "6M", "6L37", "5M", "5L64", "4M", "4L64", "3M", "3L47", "3S0"], + psychicfangs: ["9M", "8M"], + psychicterrain: ["9M"], + psychup: ["9L45", "8L45", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L57", "4M", "4L57", "3T", "3L42", "3S0"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + quickattack: ["9L10", "8L10", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "7M", "7S3", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L8", "5S1", "4L8", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8M", "8L20", "7L17", "7V", "6L17", "5L29", "4T", "4L29", "3T", "3L30"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunderwave: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + weatherball: ["9M", "8M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["psybeam", "psychup", "psychic", "morningsun"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "confusion"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["psychic", "dazzlinggleam", "shadowball", "reflect"], pokeball: "cherishball"}, + ], + }, + umbreon: { + learnset: { + assurance: ["9L25", "8M", "8L25", "7L25", "6L25", "5L25", "4L43"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S2"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L20", "8L20", "7L17", "7V", "6L17", "5L17", "4L29", "3L30"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + crunch: ["9M", "8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "9L40", "8M", "8L40", "7M", "6M", "5T", "4M"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "8L1", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + feintattack: ["7L20", "7V", "6L20", "5L21", "4L36", "3L36", "3S0"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1"], + guardswap: ["9L35", "8M", "8L35", "7L45", "6L45", "5L45", "4L78"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], + lightscreen: ["9M"], + meanlook: ["9L50", "8L50", "7L37", "7V", "6L37", "5L37", "4L57", "3L42", "3S0"], + mimic: ["3T"], + moonlight: ["9L30", "8L30", "7L33", "7V", "7S3", "6L33", "5L33", "4L71", "3L52", "3S0"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M"], + protect: ["9M", "8M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L1", "7V", "6L9", "6S2", "5L15", "4L15", "3L16"], + quickattack: ["9L10", "8L10", "7L13", "7V", "6L13", "5L13", "4L22", "3L23"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L8", "5S1", "4L8", "3L8"], + scaryface: ["9M"], + screech: ["9L45", "8M", "8L45", "7L29", "7V", "6L29", "5L29", "4L64", "3L47", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "9L0", "8M", "8L0", "7M", "7S3", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M"], + throatchop: ["8M", "7T"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + weatherball: ["9M", "8M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["feintattack", "meanlook", "screech", "moonlight"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "pursuit"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", moves: ["snarl", "toxic", "protect", "moonlight"], pokeball: "cherishball"}, + ], + }, + leafeon: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M"], + bulletseed: ["9M", "8M", "4M"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigadrain: ["9M", "9L40", "8M", "8L40", "7T", "7L25", "6T", "6L25", "5T", "5L43", "4M", "4L43"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L17", "6L17", "5L57", "4L57"], + grassyglide: ["9M", "8T"], + growl: ["9L1", "8L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + leafblade: ["9L50", "8M", "8L50", "7L45", "7S2", "6L45", "5L71", "4L71"], + leafstorm: ["9M", "8M"], + leechseed: ["9L20", "8L20"], + magicalleaf: ["9M", "9L25", "8M", "8L25", "7L20", "6L20", "5L36", "4L36"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payday: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "5L22", "4L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L0", "8L0", "7L1", "6L9", "6S1", "5L15", "4L15"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L8", "5S0", "4L8"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + solarblade: ["9M", "8M"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "9L35", "8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L64", "4M", "4L64"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L1", "8M", "8L1", "4T"], + swordsdance: ["9M", "9L45", "8M", "8L45", "7M", "7L29", "7S2", "6M", "6L29", "5M", "5L78", "4M", "4L78"], + synthesis: ["9L30", "8L30", "7T", "7L33", "7S2", "6T", "6L33", "5T", "5L29", "4T", "4L29"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], + takedown: ["9M", "9L1", "8L1"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + weatherball: ["9M", "8M"], + workup: ["8M", "7M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "razorleaf"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["leafblade", "swordsdance", "sunnyday", "synthesis"], pokeball: "cherishball"}, + ], + }, + glaceon: { + learnset: { + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + auroraveil: ["7M", "7S2"], + avalanche: ["9M", "8M", "4M"], + babydolleyes: ["9L15", "8L15", "7L9"], + barrier: ["7L29", "6L29", "5L78", "4L78"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L25", "8L25", "7L17", "6L17", "5L29", "4L29"], + blizzard: ["9M", "9L50", "8M", "8L50", "7M", "7L45", "7S2", "6M", "6L45", "5M", "5L71", "4M", "4L71"], + bodyslam: ["9M", "8M"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + focusenergy: ["8M"], + freezedry: ["9L40", "8L40"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M"], + growl: ["9L1", "8L1"], + hail: ["8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L64", "4M", "4L64"], + haze: ["9M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], + iceshard: ["9L20", "8L20", "7L25", "6L25", "5L36", "4L36"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L9", "6S1", "5T", "5L15", "4T", "4L15"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + mirrorcoat: ["9L45", "8L45", "7L33", "6L33", "5L57", "4L57"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + payday: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "5L22", "4L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L8", "5S0", "4L8"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "7S2", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M", "9L35"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L1", "8M", "8L1", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], + takedown: ["9M", "9L1", "8L1"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["9M", "8M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "icywind"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", moves: ["blizzard", "shadowball", "hail", "auroraveil"], pokeball: "cherishball"}, + ], + }, + porygon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L30", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], + allyswitch: ["8M", "7T"], + barrier: ["8V"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + conversion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + conversion2: ["8L25", "8S1", "7L1", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + defensecurl: ["7V"], + discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + eerieimpulse: ["8M"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lockon: ["8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], + magiccoat: ["8L50", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4T", "4L56"], + magnetrise: ["8L10", "8S1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L20", "8V", "8S1", "7L7", "7V", "6L7", "5L7", "5S0", "4L7", "3L12"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L35", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], + recycle: ["8L5", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sharpen: ["8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L24"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + speedswap: ["8M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["7V"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["8L15", "8S1"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8L45", "8V", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["8L60", "7L62", "7V", "6L62", "5L62", "4L62", "3L48"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 10, isHidden: true, moves: ["tackle", "conversion", "sharpen", "psybeam"]}, + {generation: 8, level: 25, isHidden: true, moves: ["magnetrise", "thundershock", "psybeam", "conversion2"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 18}, + ], + }, + porygon2: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L30", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], + allyswitch: ["8M", "7T"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + conversion: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + conversion2: ["8L25", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + defensecurl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L24"], + discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + eerieimpulse: ["8M"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L65", "7M", "7L67", "7V", "6M", "6L67", "5M", "5L67", "4M", "4L67", "3M"], + icebeam: ["8M", "8S0", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lockon: ["8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], + magiccoat: ["8L50", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L56"], + magnetrise: ["8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + mimic: ["3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L20", "7L7", "7V", "6L7", "5L7", "4L7", "3L12"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L35", "8S0", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], + recycle: ["8L1", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + speedswap: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + telekinesis: ["7T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8S0", "7M", "6M", "5M", "4M", "3M"], + thundershock: ["8L15"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8L45", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "8S0", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["8L60", "7L1", "7V", "6L1", "5L62", "4L62", "3L48"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 8, level: 50, nature: "Sassy", abilities: ["download"], ivs: {hp: 31, atk: 0, spe: 0}, moves: ["recover", "trickroom", "icebeam", "thunderbolt"], pokeball: "cherishball"}, + ], + }, + porygonz: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "8L30", "7L12", "6L12", "5L12", "4L12"], + allyswitch: ["8M", "7T"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + conversion: ["8L1", "7L1", "6L1", "5L1", "4L1"], + conversion2: ["8L25", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["8L1"], + discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["8M"], + electroweb: ["8M", "7T", "6T", "5T"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L34"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "8L65", "7M", "7L67", "6M", "6L67", "5M", "5L67", "4M", "4L67"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + lastresort: ["7T", "6T", "5T", "4T"], + lockon: ["8L55", "7L45", "6L45", "5L45", "4L45"], + magiccoat: ["8L50", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L56"], + magnetrise: ["8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + nastyplot: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psybeam: ["8L20", "7L7", "6L7", "5L7", "4L7"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + recover: ["8L35", "7L18", "6L18", "5L18", "4L18"], + recycle: ["8L1", "7T", "6T", "5T", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + speedswap: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thundershock: ["8L15"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["8M", "8L45", "7L50", "6L50", "5L51", "4L51"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + wonderroom: ["8M", "7T", "5T"], + zapcannon: ["8L60", "7L1", "6L1", "5L62", "4L62"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + omanyte: { + learnset: { + ancientpower: ["8L30", "7L37", "7V", "6L37", "5L37", "4T", "4L37", "3L49"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7E", "7V", "6E", "5E"], + bind: ["8L1", "7T", "6T", "5T"], + bite: ["8E", "8V", "7L7", "7V", "6L7", "5L7", "5D", "5S0", "4L7", "3L13"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brine: ["8M", "8L35", "7L28", "6L28", "5L28", "4M", "4L28"], + bubblebeam: ["8E", "7E", "7V", "6E", "5E", "5S0", "4E", "3E"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["7V"], + hydropump: ["8M", "8L60", "8V", "7L55", "7V", "6L55", "5L55", "4L52", "3L55"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + leer: ["8L20", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L31"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + muddywater: ["8M", "7E", "6E", "5E", "5D", "4E"], + mudshot: ["8M", "8L25", "7L25", "6L25", "5L25", "4L25", "3L25"], + naturalgift: ["4M"], + protect: ["8M", "8L41", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L37"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + reflecttype: ["8E", "7E", "6E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L45", "7L46", "6L46", "5L46", "4L46"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L5", "7L16", "7V", "6L16", "5L16", "4T", "4L16", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L10"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shellsmash: ["8L55", "8V", "7L50", "6L50", "5L52"], + slam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikecannon: ["7V"], + spikes: ["8M", "7E", "6E", "5E", "4E", "3E"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "5S0", "4E", "3E"], + surf: ["8M", "8L50", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["8E", "7L43", "6L43", "5L43", "4L43", "3L43"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "7E", "6E", "5E", "4E"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L15", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L19"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M"], + withdraw: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + wringout: ["7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["swiftswim"], moves: ["bubblebeam", "supersonic", "withdraw", "bite"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + omastar: { + learnset: { + ancientpower: ["8L30", "7L37", "7V", "6L37", "5L37", "4T", "4L37", "3L55"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bind: ["8L1", "7T", "6T", "5T"], + bite: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brine: ["8M", "8L35", "7L28", "6L28", "5L28", "4M", "4L28"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + crunch: ["8M", "8L0"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["7V"], + horndrill: ["7V"], + hydropump: ["8M", "8L70", "8V", "7L1", "7V", "6L1", "5L75", "4L67", "3L65"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + leer: ["8L20", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L31"], + liquidation: ["8M"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["8M", "8L25", "7L25", "6L25", "5L25", "4L25", "3L25"], + naturalgift: ["4M"], + pinmissile: ["8M"], + protect: ["8M", "8L43", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L37"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L49", "7L56", "6L56", "5L56", "4L56"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L16", "7V", "6L16", "5L16", "4T", "4L16", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L63", "8V", "7L67", "6L67", "5L67"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikecannon: ["8V", "7L1", "7V", "6L40", "5L40", "4L40", "3L40"], + spikes: ["8M"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8V"], + surf: ["8M", "8L56", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["7L48", "6L48", "5L48", "4L48", "3L46"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L15", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + }, + kabuto: { + learnset: { + absorb: ["8L1", "8V", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L13"], + aerialace: ["7M", "3M"], + ancientpower: ["8L30", "7L46", "7V", "6L46", "5L46", "4T", "4L46", "3L55"], + aquajet: ["8L15", "8V", "7L31", "6L31", "5L31", "4L31"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brine: ["8M", "8L35", "4M"], + bubblebeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "5S0", "4E", "3E"], + curse: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "5S0", "4M", "4E", "3M", "3E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7L26", "7V", "6L26", "5L26", "4M", "4L26", "3T", "3L37"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M", "7V"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + leechlife: ["8M", "8L45", "8V"], + leer: ["8L20", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L19"], + liquidation: ["8M", "8L50"], + megadrain: ["8E", "8V", "7L36", "7V", "6L36", "5L36", "4L36", "3L49"], + metalsound: ["8L55", "7L41", "6L41", "5L41", "4L41", "3L43"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L25", "7L16", "7E", "6L16", "6E", "5L16", "5E", "4L16", "4E", "3L25"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["8M", "8L41", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L10", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scratch: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + slash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "5D", "4M"], + stoneedge: ["8M", "8L60"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["8E", "7E", "7V", "6E"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wringout: ["7L50", "6L50", "5L51", "4L51"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["battlearmor"], moves: ["confuseray", "dig", "scratch", "harden"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + kabutops: { + learnset: { + absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8L30", "7L54", "7V", "6L54", "5L54", "4T", "4L54", "3L65"], + aquajet: ["8L15", "8V", "7L31", "6L31", "5L31", "4L31"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L35", "4M"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8V"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7L26", "7V", "6L26", "5L26", "4M", "4L26", "3T", "3L37"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feint: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T", "3L1"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M", "7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8M", "8L49", "8V"], + leer: ["8L20", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8L56", "7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megadrain: ["8V", "7L36", "7V", "6L36", "5L36", "4L36", "3L55"], + megakick: ["8M", "7V", "3T"], + metalsound: ["8L63", "7L45", "6L45", "5L45", "4L45", "3L46"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L25", "7L16", "6L16", "5L16", "4L16", "3L25"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightslash: ["8L1", "7L1", "6L1", "5L72", "4L72"], + protect: ["8M", "8L43", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + slash: ["8L0", "8V", "7L1", "7V", "6L40", "5L40", "4L40", "3L40"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "8L70", "7M", "6M", "5M", "4M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wringout: ["7L63", "6L63", "5L63", "4L63"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + }, + aerodactyl: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L50", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L8"], + aircutter: ["4T"], + ancientpower: ["8L1", "7L25", "7V", "7S1", "6L25", "5L25", "4T", "4L25", "3L29"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M", "7E", "6E", "5E", "5D", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L15"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + celebrate: ["7S1"], + confide: ["7M", "6M"], + crunch: ["8M", "8L30", "8V", "7L33", "6L33", "5L33", "4L33"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["7V"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7L1", "6L1", "5L1", "5S0", "4L1"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "8L60", "7M", "7L81", "6M", "6L81", "5M", "5L81", "4M", "4L73"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["8M"], + hyperbeam: ["8M", "8L55", "8V", "7M", "7L65", "7V", "6M", "6L65", "5M", "5L65", "4M", "4L57", "3M", "3L50"], + icefang: ["8M", "7L1", "6L1", "5L1", "5S0", "4L1"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "8L35", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L49"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["8L25", "8V", "7M", "7L9", "7V", "6M", "6L9", "5M", "5L9", "4M", "4L9", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "7S1", "6M", "5M", "4M"], + rockslide: ["8M", "8L20", "8V", "7M", "7L73", "6M", "6L73", "5M", "5L73", "4M", "4L65", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["8E", "8V", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L15", "7L1", "7V", "6L1", "5L1", "4L1", "3L36"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "7L49", "6M", "6L49", "5M", "5L49"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "5D", "4M"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "5S0", "4M", "4E", "3M", "3E"], + stoneedge: ["8M", "8L45", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L22"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + takedown: ["8L40", "8V", "7L41", "7V", "6L41", "5L41", "4L41", "3L43"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "7L1", "6L1", "5L1", "5S0", "4L1"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wideguard: ["8E", "7E", "7S1", "6E"], + wingattack: ["8L10", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["pressure"], moves: ["steelwing", "icefang", "firefang", "thunderfang"], pokeball: "cherishball"}, + {generation: 7, level: 50, isHidden: true, moves: ["ancientpower", "rockpolish", "wideguard", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + munchlax: { + learnset: { + afteryou: ["7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["9M", "9L36", "8M", "8L36", "7L9", "6L9", "5L9", "4L9"], + attract: ["8M", "7M", "6M", "5M", "4M"], + belch: ["9E", "8E", "7E", "6E"], + bellydrum: ["9L48", "8L48", "7L44", "6L44"], + bite: ["9L16", "8L16"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "9L28", "8M", "8L28", "7L25", "6L25", "5L36", "4L33"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "8M", "7E", "6E", "5E", "4E"], + chillingwater: ["9M"], + chipaway: ["7L17", "6L17", "5L25"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + covet: ["9L12", "8L12", "7T", "6T", "5T"], + crunch: ["9M"], + curse: ["9E", "8E", "7E", "6E", "5E", "4E", "4S1"], + defensecurl: ["9L4", "8L4", "7L4", "6L4", "5L4", "4L4", "4S0"], + dig: ["9M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + fissure: ["9E", "8E"], + flail: ["9L44", "8L44"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "9L32", "8M", "8L32", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L36"], + focuspunch: ["9M", "7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + happyhour: ["7S2"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + holdback: ["7S2"], + hydropump: ["8M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + lastresort: ["9L52", "8L52", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L49"], + lick: ["9L1", "9S3", "8L1", "7L1", "7E", "6L1", "6E", "5L12", "5E", "4L12", "4E"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "9L40", "8M", "8L40", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], + mudslap: ["9M", "4T"], + naturalgift: ["7L49", "7E", "6L49", "6E", "5L49", "5E", "4M", "4L44"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "4S1"], + payday: ["8M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["9L8", "8L8", "7T", "7L1", "6T", "6L1", "5T", "5L17", "4M", "4L17"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rollout: ["7L36", "6L36", "5L44", "4T", "4L41"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + screech: ["9L24", "8M", "8L24", "7L20", "6L20", "5L20", "4L20"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "7E", "6E", "5E", "4S0"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "7L50", "6T", "6L1", "5T", "5L52"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stockpile: ["9L20", "8L20", "7L28", "6L28", "5L28", "4L25"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9L20", "8L20", "7L33", "6L33", "5L33", "4L28"], + tackle: ["9L1", "9S3", "8L1", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + whirlpool: ["8M", "4M"], + whirlwind: ["7E", "6E", "5E", "4E"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 4, level: 5, moves: ["metronome", "tackle", "defensecurl", "selfdestruct"]}, + {generation: 4, level: 5, gender: "F", nature: "Relaxed", abilities: ["thickfat"], moves: ["metronome", "odorsleuth", "tackle", "curse"], pokeball: "cherishball"}, + {generation: 7, level: 5, abilities: ["thickfat"], moves: ["tackle", "metronome", "holdback", "happyhour"], pokeball: "cherishball"}, + {generation: 9, level: 1, shiny: true, gender: "M", isHidden: true, nature: "Impish", moves: ["lick", "tackle"], pokeball: "pokeball"}, + ], + }, + snorlax: { + learnset: { + afteryou: ["7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["9M", "9L36", "8M", "8L36", "8V", "7L9", "7V", "6L9", "5L9", "5D", "4L9", "3L5"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L52", "8L52", "7E", "6E"], + bellydrum: ["9L48", "8L48", "7L44", "7V", "6L44", "5L17", "4L17", "3L13"], + bide: ["7V"], + bite: ["9L16", "8L16"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["9L1", "8L1", "7T", "7L41", "7S1", "6T", "6L41", "5T", "5L41", "4T", "4L36", "3L37"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L28", "8M", "8L28", "8V", "7L25", "7V", "7S1", "6L25", "5L36", "4L33", "3T", "3L33", "3S0"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + celebrate: ["7S1"], + charm: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + chillingwater: ["9M"], + chipaway: ["7L17", "6L17", "5L25"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + covet: ["9L1", "8L1", "7T", "6T", "5T", "3L42"], + crunch: ["9M", "9L24", "8M", "8L24", "8V", "7L49", "6L49", "5L49", "4L44"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E", "3S0"], + darkestlariat: ["8M"], + defensecurl: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L9"], + dig: ["9M"], + doubleedge: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + fissure: ["8E", "7E", "7V", "6E", "5E", "4E", "3E", "3S0"], + flail: ["9L1", "8L1"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["8E"], + gigaimpact: ["9M", "9L56", "8M", "8L56", "7M", "7L35", "6M", "6L57", "5M", "5L57", "4M", "4L49"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L44", "8L44"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T", "3L17"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L50", "6L50", "5L52"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "9L40", "8M", "8L40", "7L57"], + hydropump: ["8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L51"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lastresort: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + lick: ["9L1", "8L1", "8V", "7L12", "7E", "7V", "6L12", "6E", "5L12", "5E", "4L12", "4E", "3E"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "9L1", "8M", "8L1", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + payday: ["8M", "8V", "7V"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7V", "3T"], + psywave: ["7V"], + pursuit: ["7E", "6E", "5E", "4E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["9L1", "8L1", "7T", "6T", "5T", "5D", "4M"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L25", "3M", "3L25"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7L36", "7V", "6L36", "5L44", "4T", "4L41", "3T", "3L46"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + screech: ["9L1", "8M", "8L1", "8V"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "9L20", "8M", "8L20", "7M", "7L33", "7V", "6M", "6L33", "5T", "5L33", "4M", "4L28", "3T", "3L37"], + smackdown: ["9M", "7M", "6M", "5M"], + snatch: ["7T"], + snore: ["9L20", "8M", "8L20", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3T", "3L28"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + steelroller: ["8T"], + stockpile: ["9L1", "8L1"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "8M", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L1", "8L1"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], + terrainpulse: ["8T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "8M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + whirlwind: ["7E", "6E", "5E", "4E"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + yawn: ["9L12", "8L12", "8V", "7L20", "6L20", "5L20", "4L20", "3L21"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 43, moves: ["refresh", "fissure", "curse", "bodyslam"]}, + {generation: 7, level: 30, abilities: ["thickfat"], moves: ["sunnyday", "block", "bodyslam", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + articuno: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L36", "7V", "6L36", "5L36", "4L36", "4S3", "4S4", "3L25", "3S0", "3S1"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + ancientpower: ["9L25", "8L25", "7L29", "7S7", "6L29", "5L29", "4T", "4L29"], + auroraveil: ["7M"], + avalanche: ["9M", "8M", "4M"], + bide: ["7V"], + blizzard: ["9M", "9L65", "8M", "8L65", "8V", "7M", "7L78", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L73"], + bravebird: ["9M", "8M"], + bubblebeam: ["7V"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["3S2"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + freezedry: ["9L35", "8L35", "8S8", "7L43", "7S7", "6L1", "6S6"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L50", "7M", "7L57", "7S7", "6M", "6L57", "6S5", "6S6", "5M", "5L85", "4M", "4L85", "3M"], + haze: ["9M", "9L60", "3S2"], + headbutt: ["8V"], + healbell: ["3S2"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L55", "8M", "8L55", "8S8", "7L92", "6L1", "5L92"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9L45", "8M", "8L45", "8V", "8S8", "7M", "7L71", "7V", "6M", "6L43", "6S5", "6S6", "5M", "5L43", "4M", "4L43", "4S3", "4S4", "3M", "3L49", "3S0", "3S1", "3S2"], + iceshard: ["9L15", "8L15", "8V", "7L15", "6L15", "5L15", "4L15"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + leer: ["8V"], + lightscreen: ["9M"], + mimic: ["7V", "3T"], + mindreader: ["8L60", "7L22", "7V", "6L22", "5L22", "4L22", "4S4", "3L37", "3S0", "3S1"], + mirrorcoat: ["8V"], + mist: ["9L1", "8L1", "8V", "8S8", "7L8", "7V", "6L8", "5L8", "4L8", "4S4", "3L13", "3S0"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["7V"], + pluck: ["5M", "4M"], + powdersnow: ["9L5", "8L5", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L50", "7V", "7S7", "6M", "6L50", "6S5", "6S6", "5M", "5L50", "4M", "4L50", "4S3", "3M", "3L61", "3S1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["9L70", "8L70", "7L99", "6L1", "5L78", "4L78", "3L85"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M", "9L50"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "9L30", "8L30", "7T", "7L64", "6T", "6L1", "6S5", "5T", "5L64", "4T", "4L64"], + takedown: ["9M", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tripleaxel: ["8T"], + twister: ["4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlwind: ["7V"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["mist", "agility", "mindreader", "icebeam"]}, + {generation: 3, level: 70, moves: ["agility", "mindreader", "icebeam", "reflect"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["icebeam", "healbell", "extrasensory", "haze"]}, + {generation: 4, level: 60, shiny: 1, moves: ["agility", "icebeam", "reflect", "roost"]}, + {generation: 4, level: 50, shiny: 1, moves: ["mist", "agility", "mindreader", "icebeam"]}, + {generation: 6, level: 70, moves: ["icebeam", "reflect", "hail", "tailwind"]}, + {generation: 6, level: 70, isHidden: true, moves: ["freezedry", "icebeam", "hail", "reflect"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "freezedry", "reflect", "hail"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "freezedry", "hurricane", "mist"]}, + ], + encounters: [ + {generation: 1, level: 50}, + ], + eventOnly: true, + }, + articunogalar: { + learnset: { + agility: ["9M", "9L20", "8M", "8L20"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + allyswitch: ["8M"], + ancientpower: ["9L25", "8L25"], + bravebird: ["9M", "8M"], + calmmind: ["9M", "8M"], + confusion: ["9L5", "8L5"], + doubleteam: ["9L60"], + dreameater: ["9L50", "8L50"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fly: ["9M", "8M"], + freezingglare: ["9L45", "8L45", "8S0", "8S1"], + futuresight: ["9L65", "8M", "8L65"], + gigaimpact: ["9M", "8M"], + guardswap: ["8M"], + gust: ["9L1", "8L1"], + helpinghand: ["9M"], + hurricane: ["9M", "9L55", "8M", "8L55", "8S0", "8S1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + hypnosis: ["9L15", "8L15"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + mindreader: ["8L60"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "8M"], + psychocut: ["9L35", "8M", "8L35", "8S0", "8S1"], + psychoshift: ["8L1", "8S0", "8S1"], + psyshock: ["9M", "8M"], + raindance: ["9M"], + recover: ["9L40", "8L40"], + reflect: ["9M", "9L10", "8M", "8L10"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + steelwing: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L30", "8L30"], + takedown: ["9M"], + terablast: ["9M"], + trick: ["9M"], + trickroom: ["9M", "9L70", "8M", "8L70"], + uturn: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 70, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"]}, + {generation: 8, level: 70, shiny: true, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zapdos: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "8S8", "7L43", "7V", "6L43", "6S5", "6S6", "5L43", "4L43", "4S3", "4S4", "3L25", "3S0", "3S1"], + aircutter: ["9M", "4T"], + ancientpower: ["9L25", "8L25", "7L29", "7S7", "6L29", "5L29", "4T", "4L29"], + batonpass: ["9M", "8M", "3S2"], + bide: ["7V"], + bravebird: ["9M", "8M", "8S8"], + charge: ["9M", "9L30", "8L30", "7L36", "6L36", "5L36", "4L36", "4S3", "3L61", "3S1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["9L60", "8L60", "7L15", "7V", "6L15", "5L15", "4L15", "4S4", "3L37", "3S0", "3S1"], + discharge: ["9L45", "8L45", "7L50", "7S7", "6L50", "6S5", "6S6", "5L50", "4L50", "4S3"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["9L35", "8L35", "8V", "8S8", "7L71", "7V", "6L1", "5L71", "4L71", "4S4", "3L49", "3S0", "3S1"], + dualwingbeat: ["9M", "8T"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["3S2"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M"], + headbutt: ["8V"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8V"], + lightscreen: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L64", "7V", "6M", "6L64", "6S5", "5M", "5L64", "4M", "4L64", "3M", "3L73"], + magneticflux: ["9L65", "8L65", "7L92"], + metalsound: ["3S2"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["9L15", "8L15", "7L22", "7S7", "6L22", "5M", "5L22", "4M", "4L22"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L50", "8M", "8L50", "7M", "7L57", "7V", "7S7", "6M", "6L57", "6S5", "6S6", "5M", "5L85", "4M", "4L85", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "9L55", "8M", "8L55", "8V", "8S8", "7M", "7L78", "7V", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L85"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + thundershock: ["9L5", "8L5", "8V", "7L1", "7V", "6L1", "6S6", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L8", "7V", "6M", "6L8", "5M", "5L8", "4M", "4L8", "4S4", "3T", "3L13", "3S0"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["9M", "8M"], + whirlwind: ["7V"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L70", "8L70", "7L99", "7V", "6L1", "5L92"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["thunderwave", "agility", "detect", "drillpeck"]}, + {generation: 3, level: 70, moves: ["agility", "detect", "drillpeck", "charge"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["thunderbolt", "extrasensory", "batonpass", "metalsound"]}, + {generation: 4, level: 60, shiny: 1, moves: ["charge", "agility", "discharge", "roost"]}, + {generation: 4, level: 50, shiny: 1, moves: ["thunderwave", "agility", "detect", "drillpeck"]}, + {generation: 6, level: 70, moves: ["agility", "discharge", "raindance", "lightscreen"]}, + {generation: 6, level: 70, isHidden: true, moves: ["discharge", "thundershock", "raindance", "agility"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "discharge", "pluck", "raindance"]}, + {generation: 8, level: 70, shiny: 1, moves: ["thunder", "drillpeck", "bravebird", "agility"]}, + ], + encounters: [ + {generation: 1, level: 50}, + ], + eventOnly: true, + }, + zapdosgalar: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M"], + agility: ["9M", "9L20", "8M", "8L20"], + ancientpower: ["9L25", "8L25"], + assurance: ["8M"], + blazekick: ["8M"], + bounce: ["8M"], + bravebird: ["9M", "8M"], + brickbreak: ["9M", "9L30", "8M", "8L30"], + bulkup: ["9M", "9L50", "8M", "8L50"], + closecombat: ["9M", "9L65", "8M", "8L65"], + coaching: ["8T"], + counter: ["9L55", "8L55"], + detect: ["9L60", "8L60"], + drillpeck: ["9L35", "8L35", "8S0", "8S1"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1", "8S0", "8S1"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + knockoff: ["9M"], + lightscreen: ["9M", "9L10", "8M", "8L10"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L15", "8L15"], + protect: ["9M", "8M"], + quickguard: ["9L40", "8L40"], + raindance: ["9M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "9L70", "8M", "8L70", "8S0", "8S1"], + rocksmash: ["9L5", "8L5"], + round: ["8M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + screech: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + steelwing: ["8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superpower: ["8M"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + throatchop: ["8M"], + thunderouskick: ["9L45", "8L45", "8S0", "8S1"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 70, moves: ["thunderouskick", "drillpeck", "reversal", "focusenergy"]}, + {generation: 8, level: 70, shiny: true, moves: ["thunderouskick", "drillpeck", "reversal", "focusenergy"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + moltres: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "4S4", "3L25", "3S0", "3S1"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L35", "8M", "8L35", "8V", "7L50", "7S7", "6L50", "6S5", "5L50", "4L50", "4S3"], + ancientpower: ["9L25", "8L25", "7L29", "7S7", "6L29", "5L29", "4T", "4L29"], + bide: ["7V"], + bravebird: ["9M", "8M"], + burningjealousy: ["9M", "8T"], + burnup: ["8L65", "7L99"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M", "8T"], + ember: ["9L5", "8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "9L60", "8M", "8L60", "7L22", "7V", "6L22", "5L22", "4M", "4L22", "4S4", "3T", "3L37", "3S0", "3S1"], + extrasensory: ["3S2"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M", "8V", "8S8", "7L8", "7V", "6L8", "5L8", "4L8", "4S4", "3L13", "3S0"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "8V", "7M", "7L36", "7V", "7S7", "6M", "6L36", "5M", "5L36", "4M", "4L36", "4S3", "4S4", "3M", "3L49", "3S0", "3S1", "3S2"], + flareblitz: ["9M", "8M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1"], + headbutt: ["8V"], + heatwave: ["9M", "9L45", "8M", "8L45", "8V", "8S8", "7T", "7L64", "6T", "6L1", "6S5", "6S6", "5T", "5L64", "4T", "4L64", "3L73"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L55", "8M", "8L55", "7L92", "6L1", "5L92"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["9L30", "8L30", "6M", "5M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "8V", "8S8", "7V"], + mimic: ["7V", "3T"], + morningsun: ["3S2"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + overheat: ["9M", "9L65", "8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["7V"], + pluck: ["5M", "4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L10", "8M", "8L10", "7M", "7L43", "7V", "6M", "6L43", "6S5", "6S6", "5M", "5L43", "4M", "4L43", "4S3", "3M", "3L61", "3S1"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["9L70", "8L70", "8V", "7T", "7L78", "7V", "6T", "6L1", "6S6", "5T", "5L78", "4T", "4L78", "3T", "3L85"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7L71", "6M", "6L71", "5M", "5L71", "4M", "4L71"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L50", "8M", "8L50", "7M", "7L57", "7V", "7S7", "6M", "6L57", "6S5", "6S6", "5M", "5L85", "4M", "4L85", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + weatherball: ["9M", "8M"], + whirlwind: ["7V"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3S2"], + wingattack: ["9L15", "8L15", "8V", "8S8", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["firespin", "agility", "endure", "flamethrower"]}, + {generation: 3, level: 70, moves: ["agility", "endure", "flamethrower", "safeguard"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["extrasensory", "morningsun", "willowisp", "flamethrower"]}, + {generation: 4, level: 60, shiny: 1, moves: ["flamethrower", "safeguard", "airslash", "roost"]}, + {generation: 4, level: 50, shiny: 1, moves: ["firespin", "agility", "endure", "flamethrower"]}, + {generation: 6, level: 70, moves: ["safeguard", "airslash", "sunnyday", "heatwave"]}, + {generation: 6, level: 70, isHidden: true, moves: ["skyattack", "heatwave", "sunnyday", "safeguard"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "flamethrower", "airslash", "sunnyday"]}, + {generation: 8, level: 70, shiny: 1, moves: ["heatwave", "wingattack", "leer", "firespin"]}, + ], + encounters: [ + {generation: 1, level: 50}, + ], + eventOnly: true, + }, + moltresgalar: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + afteryou: ["9L40", "8L40"], + agility: ["9M", "9L20", "8M", "8L20"], + airslash: ["9M", "9L35", "8M", "8L35"], + ancientpower: ["9L25", "8L25"], + assurance: ["8M"], + bravebird: ["9M", "8M"], + darkpulse: ["9M", "8M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "9L60", "8M", "8L60"], + facade: ["9M", "8M"], + fierywrath: ["9L45", "8L45", "8S0", "8S1"], + fly: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gust: ["9L1", "8L1"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hurricane: ["9M", "9L55", "8M", "8L55", "8S0", "8S1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + imprison: ["9M", "8M"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1"], + memento: ["9L65", "8L65"], + nastyplot: ["9M", "9L50", "8M", "8L50", "8S0", "8S1"], + payback: ["9L5", "8M", "8L5"], + protect: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["9L10", "8M", "8L10"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "8M"], + skyattack: ["9L70", "8L70"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + spite: ["9M"], + steelwing: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L30", "8L30", "8S0", "8S1"], + sunnyday: ["9M"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M"], + uturn: ["9M", "8M"], + wingattack: ["9L15", "8L15"], + }, + eventData: [ + {generation: 8, level: 70, moves: ["fierywrath", "hurricane", "suckerpunch", "nastyplot"]}, + {generation: 8, level: 70, shiny: true, moves: ["fierywrath", "hurricane", "suckerpunch", "nastyplot"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + dratini: { + learnset: { + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L36"], + aquajet: ["9E", "8E", "7E", "6E", "5E"], + aquatail: ["9L31", "8L31", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L31"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + dragondance: ["9M", "9L50", "8M", "8L50", "7L51", "7E", "6L51", "6E", "5L51", "5E", "4L45", "4E", "3E"], + dragonpulse: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], + dragonrush: ["9L35", "8L35", "7L41", "7E", "6L41", "6E", "5L41", "5E", "4L35", "4E"], + dragontail: ["9M", "9L15", "8L15", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["9E", "8E", "7E", "7V", "6E", "5E", "4E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L60", "8M", "8L60", "8V", "7M", "7L61", "7V", "6M", "6L61", "5M", "5L61", "4M", "4L55", "3M", "3L57"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + mimic: ["7V", "3T"], + mist: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + outrage: ["9M", "9L55", "8M", "8L55", "8V", "7T", "7L55", "7V", "6T", "6L55", "5T", "5L55", "4T", "4L51", "3L50"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L45", "8M", "8L45", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L40", "8M", "8L40", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L41", "3M", "3L43"], + scaleshot: ["9M", "8T"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + slam: ["9L25", "8L25", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L29"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L5", "7V", "6M", "6L5", "5M", "5L5", "5D", "4M", "4L5", "3T", "3L8"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L5", "8L5", "7L11", "7V", "6L11", "5L11", "4T", "4L11", "3L15"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], + whirlpool: ["8M", "4M"], + wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 10}, + ], + }, + dragonair: { + learnset: { + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L38"], + aquatail: ["9L33", "8L33", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L33"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["7V"], + dragondance: ["9M", "9L60", "8M", "8L60", "7L61", "6L61", "5L61", "4L53"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], + dragonrush: ["9L39", "8L39", "7L47", "6L47", "5L47", "4L39"], + dragontail: ["9M", "9L15", "8L15", "8V", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["7V"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L74", "8M", "8L74", "8V", "7M", "7L75", "7V", "6M", "6L75", "5M", "5L75", "4M", "4L67", "3M", "3L65"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L67", "8M", "8L67", "8V", "7T", "7L67", "7V", "6T", "6L67", "5T", "5L67", "4T", "4L61", "3L56"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L53", "8M", "8L53", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L46", "8M", "8L46", "7M", "7L53", "7V", "6M", "6L53", "5M", "5L53", "4M", "4L47", "3M", "3L47"], + scaleshot: ["9M", "8T"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + slam: ["9L25", "8L25", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L29"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["8M", "4M"], + wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 25, pokeball: "safariball"}, + {generation: 4, level: 15}, + {generation: 7, level: 10}, + ], + }, + dragonite: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L25", "7V", "6L25", "6S8", "5L25", "4L25", "3L38", "3S0"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + aquajet: ["8V"], + aquatail: ["9L33", "8L33", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L33"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["6S8"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + detect: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "8S9", "7T", "6T", "5T", "4T", "4S2"], + dragonbreath: ["7V"], + dragonclaw: ["9M", "8M", "8S9", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "9L62", "8M", "8L62", "8S9", "7L61", "6L61", "6S7", "5L61", "5S3", "4L53", "4S2", "3S1"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], + dragonrush: ["9L39", "8L39", "7L47", "6L47", "5L47", "5S4", "5S5", "4L39"], + dragontail: ["9M", "9L15", "8L15", "8V", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + dualwingbeat: ["8T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S1"], + encore: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["9L1", "8L1", "6S7", "5S3", "5S5"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S6", "4M", "3M"], + firepunch: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5S3", "4T", "4L1", "3T"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["3S1"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + hurricane: ["9M", "9L0", "8M", "8L0", "8S9", "7L1", "6L1", "6S7", "5L81"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L80", "8M", "8L80", "8V", "7M", "7L75", "7V", "6M", "6L75", "6S8", "5M", "5L75", "5S6", "4M", "4L73", "3M", "3L75", "3S1"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M"], + lowkick: ["9M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mimic: ["7V", "3T"], + mist: ["8V"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["9M", "9L41", "8M", "8L41", "8V", "7T", "7L67", "7V", "6T", "6L67", "6S7", "5T", "5L67", "5S3", "5S6", "4T", "4L64", "4S2", "3L61", "3S0"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L53", "8M", "8L53", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["9L1", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5T", "5L1", "4M", "4L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L46", "8M", "8L46", "7M", "7L53", "7V", "6M", "6L53", "5M", "5L53", "5S4", "5S5", "5S6", "4M", "4L47", "3M", "3L47", "3S0"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + skydrop: ["7M", "6M", "5M"], + slam: ["9L25", "8L25", "8V", "7L21", "7V", "6L21", "6S8", "5L21", "4L21", "3L29"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4S2", "3M"], + thunderpunch: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5S4", "4T", "4L1", "3T"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["8M", "7V", "4M"], + wingattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L55", "5L55", "5S4", "5S5", "4L55", "3L55", "3S0"], + wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["agility", "safeguard", "wingattack", "outrage"], pokeball: "pokeball"}, + {generation: 3, level: 55, moves: ["healbell", "hyperbeam", "dragondance", "earthquake"]}, + {generation: 4, level: 50, gender: "M", nature: "Mild", moves: ["dracometeor", "thunderbolt", "outrage", "dragondance"], pokeball: "cherishball"}, + {generation: 5, level: 100, gender: "M", isHidden: true, moves: ["extremespeed", "firepunch", "dragondance", "outrage"], pokeball: "cherishball"}, + {generation: 5, level: 55, gender: "M", isHidden: true, moves: ["dragonrush", "safeguard", "wingattack", "thunderpunch"]}, + {generation: 5, level: 55, gender: "M", isHidden: true, moves: ["dragonrush", "safeguard", "wingattack", "extremespeed"]}, + {generation: 5, level: 50, gender: "M", nature: "Brave", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["fireblast", "safeguard", "outrage", "hyperbeam"], pokeball: "cherishball"}, + {generation: 6, level: 55, gender: "M", isHidden: true, moves: ["dragondance", "outrage", "hurricane", "extremespeed"], pokeball: "cherishball"}, + {generation: 6, level: 62, gender: "M", ivs: {hp: 31, def: 31, spa: 31, spd: 31}, moves: ["agility", "slam", "barrier", "hyperbeam"], pokeball: "cherishball"}, + {generation: 8, level: 80, gender: "F", nature: "Jolly", abilities: ["innerfocus"], ivs: {hp: 30, atk: 31, def: 30, spa: 30, spd: 31, spe: 31}, moves: ["dragonclaw", "dracometeor", "hurricane", "dragondance"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 5, level: 50}, + {generation: 7, level: 10}, + ], + }, + mewtwo: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + amnesia: ["9M", "9L32", "8M", "8L32", "8V", "7L79", "7V", "6L79", "5L50", "4L57", "4S1", "3L77"], + ancientpower: ["9L8", "8L8"], + aquatail: ["7T", "6T", "5T", "4T"], + aurasphere: ["9M", "9L40", "9S8", "8M", "8L40", "7L70", "6L70", "6S4", "6S5", "5L93", "5S2", "4L100"], + avalanche: ["9M", "8M", "4M"], + barrier: ["8V", "7L64", "7V", "6L64", "6S4", "5L1", "4L8", "3L11"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "8S7", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9S8", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "8V"], + confusion: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + darkpulse: ["9M"], + detect: ["7V"], + disable: ["9L1", "8L1", "8V", "8S7", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + dive: ["8M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + electroball: ["9M", "8M", "5S2"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L88", "8M", "8L88", "7L15", "7V", "6L15", "5L15", "4L22", "3L44"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + guardswap: ["9L56", "8M", "8L56", "7L43", "6L43", "5L57", "4L64", "4S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healpulse: ["5S3"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "8M", "5S3"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9S8", "8M", "8V", "7M", "7V", "6M", "5M", "5S3", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], + laserfocus: ["8L1", "7T", "7L1"], + lashout: ["9M"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mefirst: ["7L93", "6L93", "5L71", "4L79"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], + mimic: ["7V", "3T"], + miracleeye: ["7L29", "6L29", "5L29", "4L36"], + mist: ["9L64", "8L64", "8V", "7L86", "7V", "6L86", "5L36", "4L43", "3L22"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + payday: ["8M", "8V", "7V"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + powergem: ["9M"], + powerswap: ["9L56", "8M", "8L56", "7L43", "6L43", "5L57", "4L64", "4S1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8V"], + psychic: ["9M", "9L48", "8M", "8L48", "8V", "8S7", "7M", "7L57", "7V", "7S6", "6M", "6L57", "6S4", "6S5", "5M", "5L64", "4M", "4L71", "3M", "3L66", "3S0"], + psychicterrain: ["9M", "8M"], + psychocut: ["9L16", "8M", "8L16", "7L36", "7S6", "6L36", "5L43", "4L50", "4S1"], + psychup: ["7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L29", "3T", "3L33"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psystrike: ["9L72", "9S8", "8L72", "7L100", "6L100", "6S5", "5L100", "5S2", "5S3"], + psywave: ["8V", "7L1", "7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L80", "8L80", "8V", "8S7", "7L50", "7V", "7S6", "6L50", "6S4", "6S5", "5L79", "4L86", "3L44", "3S0"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L86", "4M", "4L93", "3M", "3L55", "3S0"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S2", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + speedswap: ["8M"], + spite: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "8V", "7L8", "7V", "7S6", "6L8", "5L8", "4T", "4L15", "3T", "3L22", "3S0"], + takedown: ["9M", "7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["9M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["swift", "recover", "safeguard", "psychic"]}, + {generation: 4, level: 70, shiny: 1, moves: ["psychocut", "amnesia", "powerswap", "guardswap"]}, + {generation: 5, level: 70, moves: ["psystrike", "shadowball", "aurasphere", "electroball"], pokeball: "cherishball"}, + {generation: 5, level: 100, nature: "Timid", ivs: {spa: 31, spe: 31}, isHidden: true, moves: ["psystrike", "icebeam", "healpulse", "hurricane"], pokeball: "cherishball"}, + {generation: 6, level: 70, moves: ["recover", "psychic", "barrier", "aurasphere"]}, + {generation: 6, level: 100, shiny: true, isHidden: true, moves: ["psystrike", "psychic", "recover", "aurasphere"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["psychic", "recover", "swift", "psychocut"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "disable", "recover", "blizzard"]}, + {generation: 9, level: 100, nature: "Modest", perfectIVs: 6, isHidden: true, moves: ["psystrike", "aurasphere", "icebeam", "calmmind"]}, + ], + encounters: [ + {generation: 1, level: 70}, + ], + eventOnly: true, + }, + mew: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + agility: ["9M", "8M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9S26", "8M"], + allyswitch: ["8M", "7T", "5M"], + amnesia: ["9M", "9L10", "8M", "8L10", "8V", "7L60", "6L60", "5L60", "4L60", "4S17"], + ancientpower: ["9L30", "8L30", "7L50", "7V", "6L50", "5L50", "4T", "4L50", "4S14", "3L50"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["9M", "9L90", "9S26", "8M", "8L90", "7L100", "6L100", "5L100", "4L100", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19"], + auroraveil: ["7M"], + avalanche: ["9M", "8M", "4M"], + barrier: ["8V", "7L40", "7S24", "6L40", "5L40", "4L40", "4S15"], + batonpass: ["9M", "9L20", "8M", "8L20", "7L80", "6L80", "5L80", "4L80"], + beatup: ["8M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blastburn: ["9M"], + blazekick: ["8M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bravebird: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "8M"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "4M", "3M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["8V"], + corrosivegas: ["8T"], + cosmicpower: ["8M"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + crosspoison: ["8M"], + crunch: ["9M", "8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "9S26", "8M", "8V", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "9S26", "8M", "8V", "7M", "6M"], + defensecurl: ["7V", "3T"], + defog: ["7T", "4M"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M"], + dragonbreath: ["7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9S26", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["7V"], + dragontail: ["9M", "8V", "7M", "6M", "5M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + drillrun: ["9M", "8M", "8V", "7T", "6T", "5T"], + dualchop: ["7T", "6T", "5T"], + dualwingbeat: ["9M", "8T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "9S26", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "8M"], + eggbomb: ["7V"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T", "6T", "5T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "9S26", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["3S2", "3S3"], + faketears: ["9M", "8M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["3S4", "3S5"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M"], + firepledge: ["9M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "8M"], + fissure: ["7V"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["9M", "8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["9M", "8T"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frenzyplant: ["9M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + futuresight: ["8M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + guardswap: ["8M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + hurricane: ["9M", "8M"], + hydrocannon: ["9M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9S26", "8M", "7T", "6T", "5T"], + hypnosis: ["4S20", "3S6", "3S7"], + icebeam: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "9L70", "8M", "8L70"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafblade: ["8M"], + leafstorm: ["9M", "8M"], + leechlife: ["9M", "8M", "7M"], + lifedew: ["9L40", "9S26", "8L40"], + lightscreen: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + liquidation: ["9M", "8M", "7T"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T", "4T"], + mefirst: ["7L70", "6L70", "5L70", "4L70"], + megadrain: ["8V", "7V"], + megahorn: ["8M", "8V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "4S16", "3T", "3L20", "3S0"], + metalclaw: ["9M"], + meteorbeam: ["8T"], + metronome: ["9M", "9L60", "8M", "8L60", "8V", "7L20", "7V", "7S24", "6L20", "5L20", "4L20", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19", "3T", "3L30", "3S0"], + mimic: ["8V", "7V", "3T"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["9M", "9L50", "8M", "8L50", "8V", "7L90", "6L90", "5L90", "4L90"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightmare: ["7V", "3T"], + nightshade: ["9M", "3S8", "3S9"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M", "8V", "7V"], + phantomforce: ["9M", "8M"], + pinmissile: ["8M"], + playrough: ["9M", "8M", "8V"], + pluck: ["5M", "4M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poisontail: ["9M"], + pollenpuff: ["9M", "9S26", "8M"], + poltergeist: ["9M", "8T"], + pounce: ["9M"], + pound: ["9L1", "8L1", "8V", "8S25", "7L1", "7V", "7S23", "6L1", "6S22", "5L1", "4L1", "4S21", "3L1", "3S0", "3S1"], + powergem: ["9M", "9S26", "8M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + powerwhip: ["8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L100", "8M", "8L100", "8V", "7M", "7L30", "7V", "7S24", "6M", "6L30", "5M", "5L30", "4M", "4L30", "4S19", "3M", "3L40"], + psychicfangs: ["9M", "8M"], + psychicterrain: ["9M", "8M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "9S26", "8M", "7M", "6M", "5M"], + psywave: ["8V", "7V"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M"], + razorwind: ["7V"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["9L1", "8L1", "7L1", "6L1", "5L1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "4S20", "3M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T", "3S10", "3S11"], + rollout: ["7V", "4T", "3T"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], + scald: ["9M", "8M", "8V", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + skullbash: ["7V"], + skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], + smartstrike: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + softboiled: ["7V", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + solarblade: ["9M", "8M"], + speedswap: ["8M"], + spikes: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + steelroller: ["8T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "9S26", "8M", "8V", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T", "4S20"], + tailslap: ["8M"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19", "4S20"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M"], + trailblaze: ["9M"], + transform: ["9L80", "8L80", "8V", "7L1", "7V", "7S24", "6L1", "5L1", "4L1", "4S18", "3L10", "3S0", "3S1"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + twister: ["4T"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpledge: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "7V", "4M"], + whirlwind: ["7V"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + zapcannon: ["7V", "3S12", "3S13"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 30, shiny: 1, moves: ["pound", "transform", "megapunch", "metronome"]}, + {generation: 3, level: 10, moves: ["pound", "transform"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["fakeout"]}, + {generation: 3, level: 10, moves: ["fakeout"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["feintattack"]}, + {generation: 3, level: 10, moves: ["feintattack"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["hypnosis"]}, + {generation: 3, level: 10, moves: ["hypnosis"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["nightshade"]}, + {generation: 3, level: 10, moves: ["nightshade"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["roleplay"]}, + {generation: 3, level: 10, moves: ["roleplay"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["zapcannon"]}, + {generation: 3, level: 10, moves: ["zapcannon"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["ancientpower", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["barrier", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["megapunch", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["amnesia", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["transform", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["psychic", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["synthesis", "return", "hypnosis", "teleport"], pokeball: "cherishball"}, + {generation: 4, level: 5, moves: ["pound"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["pound"], pokeball: "cherishball"}, + {generation: 7, level: 5, perfectIVs: 5, moves: ["pound"], pokeball: "pokeball"}, + {generation: 7, level: 50, moves: ["psychic", "barrier", "metronome", "transform"], pokeball: "cherishball"}, + {generation: 8, level: 1, moves: ["pound"], pokeball: "pokeball"}, + {generation: 9, level: 5, moves: ["pollenpuff", "darkpulse", "dragonpulse", "thunderbolt", "dazzlinggleam", "aurasphere", "flamethrower", "airslash", "shadowball", "energyball", "earthpower", "icebeam", "hypervoice", "sludgebomb", "psyshock", "powergem", "flashcannon", "surf", "swift", "lightscreen", "lifedew"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + chikorita: { + learnset: { + ancientpower: ["7E", "7V", "6E", "5E", "4T", "4E", "3E", "3S1"], + aromatherapy: ["7L42", "7E", "6L42", "6E", "5L42", "5E", "4L42", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L34", "7E", "7V", "6L34", "6E", "5L34", "5E", "4L34", "4E", "3T", "3L29"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flail: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["3S1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + grasswhistle: ["7E", "6E", "5E", "4E", "3E"], + grassyterrain: ["7E", "6E"], + growl: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + headbutt: ["7V", "4T"], + healpulse: ["7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["7E", "6E", "5E", "4E", "3E"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leafstorm: ["7E", "6E", "5E", "4E"], + leechseed: ["7E", "7V", "6E", "5E", "4E", "3E"], + lightscreen: ["7M", "7L31", "7V", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L36"], + magicalleaf: ["7L20", "6L20", "5L20", "4L20"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L23", "6L23", "5L23", "4M", "4L23"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], + poisonpowder: ["7L9", "7V", "6L9", "5L9", "4L9", "3L15"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["7L6", "7V", "6L6", "5L6", "4L6", "3L8", "3S0"], + reflect: ["7M", "7L17", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L12"], + refresh: ["7E", "6E", "5E"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3M", "3L43"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L45", "3M", "3L50"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L28", "7V", "6L28", "5L28", "4L28"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L22"], + tackle: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + vinewhip: ["7E", "7V", "6E", "5E", "4E", "3E"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + wringout: ["7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "razorleaf"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["tackle", "growl", "ancientpower", "frenzyplant"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["tackle", "growl"], pokeball: "cherishball"}, + ], + }, + bayleef: { + learnset: { + ancientpower: ["4T"], + aromatherapy: ["7L50", "6L50", "5L50", "4L50"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L40", "7V", "6L40", "5L40", "4L40", "3T", "3L31"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + growl: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["7M", "7L36", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L39"], + magicalleaf: ["7L22", "6L22", "5L22", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L26", "6L26", "5L26", "4M", "4L26"], + naturepower: ["7M", "6M"], + poisonpowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L47"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L55"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L32", "7V", "6L32", "5L32", "4L32"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L23"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + meganium: { + learnset: { + ancientpower: ["4T"], + aromatherapy: ["7L60", "6L60", "5L60", "4L60"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L46", "7V", "6L46", "6S0", "5L46", "4L46", "3T", "3L31"], + bulldoze: ["7M", "6M", "5M"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["7M", "6M", "5M"], + earthquake: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["7T", "6T", "5T", "4T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + growl: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L41"], + magicalleaf: ["7L22", "6L22", "5L22", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L26", "6L26", "5L26", "4M", "4L26"], + naturepower: ["7M", "6M"], + outrage: ["7T", "6T", "5T", "4T"], + petalblizzard: ["7L1", "6L1"], + petaldance: ["7L1", "6L32", "5L32", "4L32"], + poisonpowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L51"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7L66", "7V", "6M", "6L66", "6S0", "5M", "5L66", "4M", "4L66", "3M", "3L61"], + stompingtantrum: ["7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L34", "7V", "6L34", "5L34", "4L34"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "7L12", "7V", "6T", "6L12", "6S0", "5T", "5L12", "4T", "4L12", "3L23"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 6, level: 50, isHidden: true, moves: ["solarbeam", "sunnyday", "synthesis", "bodyslam"], pokeball: "pokeball"}, + ], + }, + cyndaquil: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + blastburn: ["3S1"], + bodyslam: ["9M", "3T"], + burningjealousy: ["9M"], + burnup: ["7L58"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["9E", "7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L22", "7L22", "7V", "6L22", "5L22", "4L22", "3T"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L55", "7L55", "7E", "6L55", "6E", "5L55", "5E", "4L46", "4E", "3T"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L12"], + endure: ["9M", "7V", "4M", "3T"], + eruption: ["9L64", "7L64", "6L58", "5L58", "4L49"], + extrasensory: ["9E", "7E", "6E", "5E", "4E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M"], + firepledge: ["9M", "7T", "6T", "5T"], + firespin: ["9M"], + flameburst: ["7E", "6E", "5E"], + flamecharge: ["9M", "9L28", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + flamethrower: ["9M", "9L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L37", "3M", "3L46"], + flamewheel: ["9L19", "7L19", "7V", "6L19", "5L19", "4L19", "3L27"], + flareblitz: ["9M", "7E", "6E", "5E", "4E"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9E", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + inferno: ["9L46", "7L46", "6L46", "5L46"], + ironhead: ["9M"], + irontail: ["7V"], + lavaplume: ["9L37", "7L37", "6L37", "5L37", "4L31"], + leer: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "7E", "6M", "6E", "5E"], + overheat: ["9M", "9L58", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L13", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3L19", "3E"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], + roar: ["9M"], + rollout: ["9L49", "7L49", "7V", "6L49", "5L49", "4T", "4L40", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L6", "7L6", "7V", "6L6", "5L6", "4L4", "3L6", "3S0"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + submission: ["7V"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L31", "7L31", "7V", "6L31", "5L31", "4T", "4L28", "3T", "3L36"], + tackle: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["7E", "7V", "6E", "5E", "4E", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "leer", "smokescreen"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["tackle", "leer", "reversal", "blastburn"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["tackle", "leer"], pokeball: "cherishball"}, + ], + }, + quilava: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + burningjealousy: ["9M"], + burnup: ["7L68"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L24", "7L24", "7V", "6L24", "5L24", "4L24", "3T"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L64", "7L64", "6L64", "5L64", "4L53", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L12"], + endure: ["9M", "7V", "4M", "3T"], + eruption: ["9L75", "7L75", "6L68", "5L68", "4L57"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M"], + firepledge: ["9M", "7T", "6T", "5T"], + firespin: ["9M"], + flamecharge: ["9M", "9L35", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + flamethrower: ["9M", "9L46", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L42", "3M", "3L54"], + flamewheel: ["9L20", "7L20", "7V", "6L20", "5L20", "4L20", "3L31"], + flareblitz: ["9M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + inferno: ["9L53", "7L53", "6L53", "5L53"], + ironhead: ["9M"], + irontail: ["7V"], + lavaplume: ["9L42", "7L42", "6L42", "5L42", "4L35"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "9L68", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["9L57", "7L57", "7V", "6L57", "5L57", "4T", "4L46", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L31", "7L31", "7V", "6L31", "5L31", "4T", "4L31", "3T", "3L42"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M"], + zenheadbutt: ["9M"], + }, + }, + typhlosion: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + blastburn: ["9M", "7T", "6T", "5T", "4T"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + burningjealousy: ["9M"], + burnup: ["7L74"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L24", "7L24", "7V", "6L24", "5L24", "4L24", "3T"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "7L1", "6L1", "5L69", "4L53", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "7V", "4M", "3T"], + eruption: ["9L1", "7L1", "6L1", "5L74", "4L57"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M"], + flamecharge: ["9M", "9L35", "7M", "7L35", "6M", "6L35", "6S1", "5M", "5L35"], + flamethrower: ["9M", "9L48", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L48", "4M", "4L42", "3M", "3L60", "3S0"], + flamewheel: ["9L20", "7L20", "7V", "6L20", "6S1", "5L20", "4L20", "3L31", "3S0"], + flareblitz: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + inferno: ["9L56", "7L56", "6L56", "5L56"], + ironhead: ["9M"], + irontail: ["7V"], + laserfocus: ["7T"], + lavaplume: ["9L43", "7L43", "6L43", "5L43", "4L35"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "9L74", "7M", "6M", "6S1", "5M", "4M", "3M"], + playrough: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21", "3S0"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9L61", "7L61", "7V", "6L61", "5L61", "4T", "4L46", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stompingtantrum: ["9M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L31", "7L31", "7V", "6L31", "6S1", "5L31", "4T", "4L31", "3T", "3L45", "3S0"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["7T"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["quickattack", "flamewheel", "swift", "flamethrower"], pokeball: "pokeball"}, + {generation: 6, level: 50, isHidden: true, moves: ["overheat", "flamewheel", "flamecharge", "swift"], pokeball: "pokeball"}, + ], + }, + typhlosionhisui: { + learnset: { + aerialace: ["9M"], + blastburn: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + defensecurl: ["9L24"], + dig: ["9M"], + doubleedge: ["9L1"], + earthquake: ["9M"], + ember: ["9L1"], + endure: ["9M"], + eruption: ["9L1"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepledge: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M", "9L35"], + flamethrower: ["9M", "9L48"], + flamewheel: ["9L20"], + flareblitz: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M", "9L1"], + heatwave: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + infernalparade: ["9L0"], + inferno: ["9L56"], + ironhead: ["9M"], + lavaplume: ["9L43"], + leer: ["9L1"], + lowkick: ["9M"], + nightshade: ["9M"], + overheat: ["9M", "9L74"], + playrough: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + quickattack: ["9L13"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rollout: ["9L61"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + smokescreen: ["9L1"], + solarbeam: ["9M"], + spite: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M", "9L31"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + totodile: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["7E", "7V", "6E", "5E", "4T", "4E", "3E"], + aquajet: ["7E", "6E", "5E", "4E"], + aquatail: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L20"], + blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "7E", "6T", "6E", "5T", "5E"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chipaway: ["7L29", "6L29", "5L29"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["7L27", "7E", "7V", "6L27", "6E", "5L27", "5E", "4L27", "4E", "3E", "3S1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonclaw: ["7M", "6M", "5M", "4E", "3E"], + dragondance: ["7E", "6E", "5E", "4E"], + dynamicpunch: ["7V", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7E", "6E", "5E"], + flail: ["7L22", "6L22", "5L22", "4L22"], + flatter: ["7E", "6E"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydrocannon: ["3S1"], + hydropump: ["7L50", "7E", "7V", "6L50", "6E", "5L50", "5E", "4L43", "4E", "3L52", "3E"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L20", "6L20", "5L20", "4L20"], + icepunch: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L8", "7V", "6L8", "5L8", "4L8", "3L7", "3S0"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L27"], + scratch: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + screech: ["7L36", "7V", "6L36", "5L36", "4L34", "3L43"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slash: ["7L34", "7V", "6L34", "5L34", "4L29", "3L35"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + superpower: ["7T", "7L48", "6T", "6L48", "5T", "5L48", "4T", "4L41"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + thrash: ["7L41", "7E", "7V", "6L41", "6E", "5L41", "5E", "4L22", "4E", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L6", "7V", "6L6", "5L6", "4L6", "3L13"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["7V", "4M"], + workup: ["7M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "leer", "rage"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["scratch", "leer", "crunch", "hydrocannon"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["scratch", "leer"], pokeball: "cherishball"}, + ], + }, + croconaw: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + aquatail: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4L42"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chipaway: ["7L33", "6L33", "5L33"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["7L30", "6L30", "5L30", "4L30"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonclaw: ["7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flail: ["7L24", "6L24", "5L24", "4L24"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + hail: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["7L60", "7V", "6L60", "5L60", "4L51", "3L55"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L21", "6L21", "5L21", "4L21"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L8", "7V", "6L8", "5L8", "4L8", "3L1"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L28"], + scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7L42", "7V", "6L42", "5L42", "4L39", "3L45"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slash: ["7L39", "7V", "6L39", "5L39", "4L33", "3L37"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + superpower: ["7T", "7L57", "6T", "6L57", "5T", "5L57", "4T", "4L48"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + thrash: ["7L48", "6L48", "5L48", "4L24"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["7V", "4M"], + workup: ["7M"], + }, + }, + feraligatr: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7L1", "6L30", "5L30", "4L30"], + ancientpower: ["4T"], + aquatail: ["7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L50"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["4M"], + bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L37", "6L37", "5L37"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["7L32", "6L32", "6S0", "5L32", "4L32"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonclaw: ["7M", "6M", "5M", "4M", "3M"], + dragonpulse: ["7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flail: ["7L24", "6L24", "5L24", "4L24"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydrocannon: ["7T", "6T", "5T", "4T"], + hydropump: ["7L76", "7V", "6L76", "5L76", "4L63", "3L58"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L21", "6L21", "5L21", "4L21"], + icepunch: ["7T", "7V", "6T", "6S0", "5T", "4T", "3T"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["7T"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L28"], + scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7L50", "7V", "6L50", "6S0", "5L50", "4L45", "3L47"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slash: ["7L45", "7V", "6L45", "5L45", "4L37", "3L38"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + superpower: ["7T", "7L71", "6T", "6L71", "5T", "5L71", "4T", "4L58"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + thrash: ["7L58", "6L58", "5L58", "4L24"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + waterfall: ["7M", "6M", "6S0", "5M", "4M", "3M"], + watergun: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["7V", "4M"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 50, isHidden: true, moves: ["icepunch", "crunch", "waterfall", "screech"], pokeball: "pokeball"}, + ], + }, + sentret: { + learnset: { + amnesia: ["9M", "9L36", "7L36", "7V", "6L36", "5L36", "4L36", "3L49"], + aquatail: ["7T", "6T", "5T", "4T"], + assist: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9E", "7E"], + batonpass: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], + blizzard: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + captivate: ["7E", "6E", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "7E", "6E", "5E", "4E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L4", "7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L4"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L42", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "7V", "5D", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L19", "7L19", "6L19", "5L19", "4L19", "3L31"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L12"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9L16", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16", "3L17"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["9M", "9L47", "7T", "7L47", "6T", "6L47", "5T", "5L47", "4L47"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + mefirst: ["7L42", "6L42", "5L42", "4L42"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + playrough: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickattack: ["9L7", "7L7", "7V", "6L7", "5L7", "4L7", "3L7"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L28", "7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L40"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slam: ["9L25", "7L25", "7V", "6L25", "5L25", "4L25", "3L24"], + slash: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["9L31", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["7V"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + tidyup: ["9E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["4M"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 2, level: 2}, + ], + }, + furret: { + learnset: { + agility: ["9M", "9L0", "7L1"], + amnesia: ["9M", "9L42", "7L42", "7V", "6L42", "5L42", "4L42", "3L59"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9L46", "7L46", "6L46", "5L46", "4L46"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], + chillingwater: ["9M"], + coil: ["9L1", "7L1"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L50", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + followme: ["9L21", "7L21", "6L21", "5L21", "4L21", "3L37"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L12"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9L17", "7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L19"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L56", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4L56"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + mefirst: ["7L50", "6L50", "5L50", "4L50"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + playrough: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L32", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L48"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slam: ["9L28", "7L28", "7V", "6L28", "5L28", "4L28", "3L28"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L36", "7L36", "6L36", "5L36", "4T", "4L36"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["4M"], + workup: ["7M", "5M"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 2, level: 6}, + {generation: 4, level: 6}, + ], + }, + hoothoot: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L18", "8M", "8L18", "7L31", "6L33", "5L33", "4L29"], + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bravebird: ["9M"], + calmmind: ["9M", "8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L9", "8L9", "7L10", "7V", "6L21", "5L21", "4L21", "3L34"], + curse: ["7V"], + defog: ["9L15", "8E", "7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["9L39", "8L39", "7M", "7L46", "7V", "6M", "6L57", "5M", "5L57", "4M", "4L49", "3T", "3L48"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["9L6", "8L6", "7M", "7L13", "6M", "6L25", "5M", "5L25"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L21", "8L21", "7L22", "6L45", "5L45", "4L37"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "3M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L6", "3S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "8M", "7E"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L36", "8L36", "7L4", "7V", "6L5", "5L5", "4L5", "3L16"], + imprison: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meanlook: ["7E"], + mimic: ["3T"], + mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], + moonblast: ["9L33", "8L33", "7L40"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M", "9E", "8E", "7E", "6E", "5E", "5D", "4E"], + ominouswind: ["4T"], + peck: ["9L1", "8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L11"], + pluck: ["5M", "4M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychoshift: ["8L15", "7L19", "6L49", "5L49", "4L41"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["9M", "9L12", "8M", "8L12", "7M", "7L28", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L22"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["9L30", "8L30", "7M", "7L37", "6M", "6L53", "5T", "5L53", "4M", "4L45"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + skillswap: ["9M"], + skyattack: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3T", "3E"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "3T"], + spite: ["9M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + synchronoise: ["7L43", "6L41", "5L41"], + tackle: ["9L3", "8L3", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L24", "8L24", "7L25", "7V", "6L29", "5L29", "4L25", "3L28"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["9M", "9L27", "8M", "8L27", "7T", "7L34", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + whirlwind: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "7L16", "6T", "6L37", "5T", "5L37", "4T", "4L33"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "foresight"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 2, level: 2}, + ], + }, + noctowl: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L18", "8M", "8L18", "7L35", "6L37", "5L37", "4L32"], + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M"], + bravebird: ["9M"], + calmmind: ["9M", "8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L9", "8L9", "7L10", "7V", "6L22", "5L22", "4L22", "3L41"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["9L53", "8L53", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L67", "4M", "4L57", "3T", "3L57"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["9L1", "8L1", "7M", "7L13", "6M", "6L27", "5M", "5L27"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["9L23", "8L23", "7L23", "6L52", "5L52", "4L42"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "3M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L48", "8L48", "7L1", "7V", "6L1", "5L1", "4L1", "3L16"], + imprison: ["9M", "8M"], + laserfocus: ["7T"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + moonblast: ["9L43", "8L43", "7L47"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + ominouswind: ["4T"], + peck: ["9L1", "8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L1"], + pluck: ["5M", "4M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychoshift: ["8L15", "7L19", "6L57", "5L57", "4L47"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "9L12", "8M", "8L12", "7M", "7L31", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L25"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["9L38", "8L38", "7M", "7L43", "6M", "6L62", "5T", "5L62", "4M", "4L52"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + skillswap: ["9M"], + skyattack: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "3T"], + spite: ["9M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + synchronoise: ["7L51", "6L47", "5L47"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L28", "8L28", "7L27", "7V", "6L32", "5L32", "4L27", "3L33"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["9M", "9L33", "8M", "8L33", "7T", "7L39", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "7L16", "6T", "6L42", "5T", "5L42", "4T", "4L37"], + }, + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 5}, + {generation: 7, level: 19}, + ], + }, + ledyba: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M", "3S0"], + agility: ["7L29", "7V", "6L30", "5L30", "4L30", "3L43"], + aircutter: ["4T"], + airslash: ["7L36"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7L26", "7V", "6L22", "5L22", "4L22", "3L29"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + bugbuzz: ["7L33", "7E", "6L41", "6E", "5L41", "5E", "4L41", "4E"], + captivate: ["4M"], + cometpunch: ["7L22", "7V", "6L9", "5L9", "5D", "4L9", "3L15"], + confide: ["7M", "6M"], + counter: ["7E"], + curse: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dizzypunch: ["7E", "6E", "5E"], + doubleedge: ["7L40", "7V", "6L38", "5L38", "4L38", "3T", "3L50"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dynamicpunch: ["7V", "3T"], + encore: ["7E", "6E", "5E", "4E"], + endure: ["7E", "7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lightscreen: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L22"], + machpunch: ["7L15", "6L17", "5L17", "4L17"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["7E", "7V", "6E", "5E", "4E", "3E", "3S0"], + reflect: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L22"], + refresh: ["3S0"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L22"], + screech: ["7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["7L19", "7E", "6L25", "6E", "5L25", "5E", "4M", "4L25", "4E", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["7L5", "7V", "6L6", "5L6", "4L6", "3L8", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["7L8", "7V", "6L33", "5L33", "4T", "4L33", "3T", "3L36"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7E", "6T", "6E", "5T", "4T"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "7V", "6T", "5T", "5D", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["refresh", "psybeam", "aerialace", "supersonic"]}, + ], + encounters: [ + {generation: 2, level: 3}, + ], + }, + ledian: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7L33", "7V", "6L36", "5L36", "4L36", "3L51"], + aircutter: ["4T"], + airslash: ["7L42"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7L29", "7V", "6L24", "5L24", "4L24", "3L33"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L38", "6L53", "5L53", "4L53"], + captivate: ["4M"], + cometpunch: ["7L24", "7V", "6L1", "5L1", "4L1", "3L15"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T"], + dig: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7L47", "7V", "6L48", "5L48", "4L48", "3T", "3L60"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "6T", "5T", "4M"], + dynamicpunch: ["7V", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L24"], + machpunch: ["7L15", "6L17", "5L17", "4L17"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L24"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L24"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["7L20", "6L29", "5L29", "4M", "4L29"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["7L1", "7V", "6L41", "5L41", "4T", "4L41", "3T", "3L42"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 5}, + ], + }, + spinarak: { + learnset: { + absorb: ["9L5", "7L5"], + acidspray: ["9M"], + agility: ["9M", "9L29", "7L33", "7V", "6L33", "5L33", "4L33", "3L45"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "7T", "6T", "5T", "5D", "4T"], + bugbuzz: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L8", "5L8", "4L8", "3L11"], + crosspoison: ["9L44", "7L47", "6L47", "5L47"], + curse: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M", "3S0"], + disable: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "7E", "6T", "6E", "5T", "5E", "5D"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L22", "7L22", "7V", "6L22", "5L22", "4L22", "3L30"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + infestation: ["9L8", "7M", "7L8", "6M"], + knockoff: ["9M"], + leechlife: ["9M", "7M", "7V", "6L12", "5L12", "4L12", "3L23"], + lunge: ["9M", "9E", "7E"], + megahorn: ["9E", "7E", "6E"], + mimic: ["3T"], + naturalgift: ["4M"], + nightshade: ["9M", "9L15", "7L15", "7V", "6L15", "5L15", "4L15", "3L17", "3S0"], + nightslash: ["9E", "7E", "6E", "5E"], + pinmissile: ["9L33", "7L36", "6L36", "5L36", "4L36"], + poisonjab: ["9M", "9L40", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43", "4E"], + poisonsting: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + pounce: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["7E", "7V", "6E", "5E", "4E", "3E"], + psychic: ["9M", "9L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L53"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + ragepowder: ["9E", "7E", "6E", "5E"], + refresh: ["3S0"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M", "9L12", "7L12", "7V", "6L5", "5L5", "4L5", "3L6"], + screech: ["7V"], + secretpower: ["6M", "4M", "3M"], + shadowsneak: ["9L19", "7L19", "6L19", "5L19", "4L19"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E", "3S0"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sonicboom: ["7E", "7V", "6E", "5E", "4E", "3E"], + spiderweb: ["7L29", "7V", "6L29", "5L29", "4L29", "3L37"], + spite: ["9M"], + stickyweb: ["9L47", "7L50", "6L50"], + stringshot: ["9L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L26", "7L26", "6L26", "5L26", "4T", "4L26"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "7E", "6E", "5E", "4E"], + toxicthread: ["9L51", "7L54"], + trailblaze: ["9M"], + twineedle: ["7E", "6E", "5E"], + venoshock: ["9M", "7M", "6M", "5M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 3, level: 14, moves: ["refresh", "dig", "signalbeam", "nightshade"]}, + ], + encounters: [ + {generation: 2, level: 3}, + ], + }, + ariados: { + learnset: { + absorb: ["9L1", "7L1"], + acidspray: ["9M"], + agility: ["9M", "9L31", "7L37", "7V", "6L37", "5L37", "4L37", "3L53"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + crosspoison: ["9L50", "9S0", "7L55", "6L55", "5L55"], + curse: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "6T", "5T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fellstinger: ["9L1", "7L1", "6L1"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["9L1", "7L1"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L23", "7L23", "7V", "6L23", "5L23", "4L23", "3L34"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["9L8", "7M", "7L8", "6M"], + knockoff: ["9M"], + leechlife: ["9M", "7M", "7V", "6L12", "5L12", "4L12", "3L25"], + lunge: ["9M"], + mimic: ["3T"], + naturalgift: ["4M"], + nightshade: ["9M", "9L15", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + pinmissile: ["9L35", "7L41", "6L41", "5L41", "4L41"], + poisonjab: ["9M", "9L46", "9S0", "7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L50"], + poisonsting: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pounce: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "9L41", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L63"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M", "9L12", "7L12", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7V"], + secretpower: ["6M", "4M", "3M"], + shadowsneak: ["9L19", "7L19", "6L19", "5L19", "4L19"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + smartstrike: ["9M", "7M"], + snore: ["7T", "7V", "6T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + spiderweb: ["7L32", "7V", "6L32", "5L32", "4L32", "3L43"], + spite: ["9M"], + stickyweb: ["9L54", "9S0", "7L58", "6L58"], + stompingtantrum: ["7T"], + stringshot: ["9L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L28", "7L28", "6L28", "5L28", "4T", "4L28"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["9M", "9L0", "7M", "7L1"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + toxicthread: ["9L59", "9S0", "7L63"], + trailblaze: ["9M"], + venomdrench: ["7L1", "6L1"], + venoshock: ["9M", "7M", "6M", "5M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 9, level: 65, gender: "M", nature: "Hardy", abilities: ["swarm"], ivs: {hp: 20, atk: 20, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["toxicthread", "stickyweb", "crosspoison", "poisonjab"]}, + ], + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 5}, + {generation: 6, level: 19, maxEggMoves: 1}, + ], + }, + chinchou: { + learnset: { + agility: ["8M", "7E", "6E", "5E", "4E"], + amnesia: ["8M", "7E", "6E", "5E", "5D", "4E", "3E"], + aquaring: ["8L32", "7L42", "6L42", "5L42", "4L39"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L12", "7L20", "6L20", "5L31", "4L28"], + captivate: ["4M"], + charge: ["8L24", "7L50", "6L50", "5L50", "4L45", "3L49"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["8L16", "7L17", "7V", "6L17", "5L12", "4L17", "3L29"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + discharge: ["8L28", "7L34", "6L34", "5L39", "4L34"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + electroball: ["8M", "8L4", "7L9", "6L9", "5L28"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L36", "7L31", "7E", "7V", "6L9", "6E", "5L9", "5E", "4L9", "4E", "3L13", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L44", "7L45", "7V", "6L45", "5L45", "4L42", "3L41"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + iondeluge: ["7L47", "6L47"], + mimic: ["3T"], + mist: ["8E", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8E", "7E", "6E", "5E", "4E"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], + signalbeam: ["7T", "7L28", "6T", "6L28", "5T", "5L34", "4T", "4L31"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8E", "7E", "6E"], + spark: ["8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["8L40", "7L39", "7V", "6L23", "5L23", "4L23", "3L37"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8L8", "7M", "7L6", "7V", "6M", "6L6", "5M", "5L6", "5D", "4M", "4L6", "3T", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L12", "7V", "6L1", "5L17", "4L12", "3L17"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M", "4E"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + }, + lanturn: { + learnset: { + agility: ["8M"], + amnesia: ["8M"], + aquaring: ["8L36", "7L47", "6L47", "5L52", "4L47"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "4M"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L12", "7L20", "6L20", "5L35", "4L30"], + captivate: ["4M"], + charge: ["8L24", "7L58", "6L58", "5L64", "4L57", "3L61"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["8L16", "7L17", "7V", "6L17", "5L17", "4L17", "3L32"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + discharge: ["8L30", "7L37", "6L37", "5L47", "4L40"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M", "8L1", "7L1", "6L1"], + electroball: ["8M", "8L1", "7L1", "6L1", "5L30"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L42", "7L33", "7V", "6L9", "5L9", "4L9", "3L13"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L54", "7L51", "7V", "6L51", "5L57", "4L52", "3L50"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + iondeluge: ["7L54", "6L54"], + mimic: ["3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L40", "4T", "4L35"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spark: ["8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], + spitup: ["8L0", "7L1", "6L27", "5L27", "4L27"], + spotlight: ["7L1"], + stockpile: ["8L0", "7L1", "6L27", "5L27", "4L27"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["8L0", "7L1", "6L27", "5L27", "4L27"], + takedown: ["8L48", "7L43", "7V", "6L23", "5L23", "4L23", "3L43"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L12", "7V", "6L1", "5L12", "4L12", "3L17"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 4, level: 20}, + {generation: 6, level: 26, maxEggMoves: 1}, + {generation: 7, level: 10}, + ], + }, + togepi: { + learnset: { + aerialace: ["8E"], + afteryou: ["8L28", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + ancientpower: ["8L16", "7L33", "6L33", "5L33", "4T", "4L33", "3L21", "3S1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L44", "7L41", "6L41", "5L41", "4L42", "3L41"], + bestow: ["7L25", "6L25", "5L25"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + charm: ["8M", "8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + doubleedge: ["8L32", "7L45", "7V", "6L45", "5L45", "4L46", "3T", "3L37"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "7L17", "7V", "6L17", "5L17", "4L19", "3L17"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8E", "7E", "6E", "5E", "4E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + followme: ["8L40", "7L21", "6L21", "5L21", "4L24", "3L25", "3S1"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["8M", "3S1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + lastresort: ["8L48", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L51"], + lifedew: ["8L8"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E", "5D", "4E"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "8L24", "7L5", "7V", "6L5", "5L5", "5D", "4L6", "3T", "3L4", "3S0"], + mimic: ["3T"], + mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], + morningsun: ["8E", "7E", "6E", "5E"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + peck: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + playrough: ["8M"], + pound: ["8L1"], + present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychoshift: ["8E", "7E", "6E", "5E", "4E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L33"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + storedpower: ["8M", "7E", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L4", "7L9", "7V", "6L9", "5L9", "4L10", "3L9", "3S0"], + swift: ["8M", "7V", "4T", "3T"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "3S1"], + trick: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["8M", "7T", "6T", "5T", "5D", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8L52", "7L29", "6L29", "5L29", "4L28", "3L29"], + workup: ["8M", "7M", "5M"], + yawn: ["8L20", "7L13", "6L13", "5L13", "4L15", "3L13", "3S0"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 20, gender: "F", abilities: ["serenegrace"], moves: ["metronome", "charm", "sweetkiss", "yawn"], pokeball: "pokeball"}, + {generation: 3, level: 25, moves: ["triattack", "followme", "ancientpower", "helpinghand"]}, + ], + }, + togetic: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["8L28", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + aircutter: ["4T"], + ancientpower: ["8L16", "7L33", "6L33", "5L33", "4T", "4L33", "3L21"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L44", "7L41", "6L41", "5L41", "4L42", "3L41"], + bestow: ["7L25", "6L25", "5L25"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M", "8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["7V", "3T"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["8L32", "7L45", "7V", "6L45", "5L45", "4L46", "3T", "3L37"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "7L17", "7V", "6L17", "5L17", "4L19", "3L17"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["8L0", "7L14", "6L14"], + fireblast: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["8L40", "7L21", "6L21", "5L21", "4L24", "3L25"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + lastresort: ["8L48", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L51"], + lifedew: ["8L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["8M", "7L1", "6L1", "5L1", "4L1", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "8L24", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playrough: ["8M"], + pound: ["8L1"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L33"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skyattack: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + uproar: ["8M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8L52", "7L29", "6L29", "5L29", "4L28", "3L29"], + workup: ["8M", "7M", "5M"], + yawn: ["8L20", "7L13", "6L13", "5L13", "4L15", "3L13"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + togekiss: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + afteryou: ["8L1", "7T", "7L1", "6T", "6L1"], + aircutter: ["4T"], + airslash: ["8M", "8L0", "7L1", "6L1", "5L1", "5S0", "4L1"], + allyswitch: ["8M"], + amnesia: ["8M"], + ancientpower: ["8L1", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["8M", "8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + batonpass: ["8M", "8L1"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["8L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["8M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M"], + extremespeed: ["8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fairywind: ["8L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + fly: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + followme: ["8L1"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + hypervoice: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + laserfocus: ["7T"], + lastresort: ["8L1", "7T", "6T", "5T", "4T"], + lifedew: ["8L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magicalleaf: ["8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M", "8L1"], + mudslap: ["4T"], + mysticalfire: ["8M"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playrough: ["8M"], + pluck: ["5M", "4M"], + pound: ["8L1"], + present: ["5S0"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["4T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L1", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skyattack: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + steelwing: ["8M", "7M", "6M", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["8L1"], + swift: ["8M", "4T"], + tailwind: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["8M", "8L1"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + uproar: ["8M"], + waterpulse: ["7T", "6T", "4M"], + wish: ["8L1"], + workup: ["8M", "7M", "5M"], + yawn: ["8L1"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["extremespeed", "aurasphere", "airslash", "present"]}, + ], + }, + natu: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M", "3S0"], + aircutter: ["4T"], + airslash: ["8M"], + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "3S0"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L15", "7L23", "7V", "6L23", "5L23", "4L23", "3L40"], + cosmicpower: ["8M"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + drillpeck: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L45", "7L44", "7V", "6L36", "5L36", "4L36", "3L30", "3S0"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M", "8L35", "7L47", "6L47", "5L47", "4L44"], + haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + imprison: ["8M"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L12", "6L12", "5L12", "4L12"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mefirst: ["7L50", "6L20", "5L20", "4L20"], + mimic: ["3T"], + miracleeye: ["7L36", "6L17", "5L17", "4L17"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8L20", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L10", "3S0"], + ominouswind: ["7L20", "6L20", "5L44", "4T", "4L39"], + painsplit: ["7T", "6T", "5T", "4T"], + peck: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["5M", "4M"], + powerswap: ["8M", "8L30", "7L47", "6L47", "5L47", "4L44"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L35", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L50", "4M", "4L47", "3M", "3L50"], + psychoshift: ["8L26", "7L39", "6L33", "5L33", "4L33"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + quickattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + simplebeam: ["8E", "7E", "6E"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + skyattack: ["7T", "6T", "3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "4E", "3M", "3E"], + storedpower: ["8M", "8L5", "7L17", "6L17", "5L39"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8E", "7E", "6E", "5E", "4T", "4E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + synchronoise: ["7E", "6E", "5E"], + tailwind: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + teleport: ["8L10", "7L9", "7V", "6L9", "5L9", "4L9", "3L20"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + wish: ["8L40", "7L28", "6L28", "5L28", "4L28", "3L30"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 22, moves: ["batonpass", "futuresight", "nightshade", "aerialace"]}, + ], + }, + xatu: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + airslash: ["8M", "8L0", "7L1", "6L25"], + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L15", "7L23", "7V", "6L23", "5L23", "4L23", "3L50"], + cosmicpower: ["8M"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L55", "7L49", "7V", "6L42", "5L42", "4L42", "3L35"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M", "8L34", "7L53", "6L53", "5L59", "4L54"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + imprison: ["8M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L12", "6L12", "5L12", "4L12"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mefirst: ["7L57", "6L20", "5L20", "4L20"], + mimic: ["3T"], + miracleeye: ["7L39", "6L17", "5L17", "4L17"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8L20", "7L1", "7V", "6L1", "5L6", "4L6", "3L10"], + ominouswind: ["7L20", "6L20", "5L54", "4T", "4L47"], + painsplit: ["7T", "6T", "5T", "4T"], + peck: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["5M", "4M"], + powerswap: ["8M", "8L34", "7L53", "6L53", "5L54", "4L54"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L41", "7M", "7L35", "7V", "6M", "6L35", "5M", "5L66", "4M", "4L59", "3M", "3L65"], + psychoshift: ["8L28", "7L43", "6L37", "5L37", "4L37"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T", "3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + storedpower: ["8M", "8L1", "7L17", "6L17", "5L47"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L27", "4T", "4L27"], + telekinesis: ["7T", "5M"], + teleport: ["8L1", "7L1", "7V", "6L1", "5L9", "4L9", "3L20"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + wish: ["8L48", "7L29", "6L29", "5L30", "4L30", "3L35"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 16, gender: "M", nature: "Modest", ivs: {hp: 15, atk: 20, def: 15, spa: 20, spd: 20, spe: 20}, abilities: ["synchronize"], pokeball: "pokeball"}, + {generation: 6, level: 24, maxEggMoves: 1}, + {generation: 7, level: 21}, + ], + }, + mareep: { + learnset: { + afteryou: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + agility: ["9M", "9E", "7E", "6E", "5E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "7E", "7V", "6E", "5E", "4E", "3T", "3E", "3S2"], + captivate: ["4M"], + charge: ["9M", "9L15", "7L15", "7E", "6L15", "6E", "5L23", "5E", "4L23", "4E", "3E"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L25", "7L25", "6L25", "5L25"], + cottonguard: ["9L36", "7L36", "6L36", "5L32"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L19", "4L19", "3L23", "3S0"], + curse: ["7V"], + dazzlinggleam: ["9M", "9L39"], + defensecurl: ["7V", "3T"], + dig: ["9M"], + discharge: ["9L32", "7L32", "6L32", "5L37", "4L28"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "9E", "7E", "6E"], + electricterrain: ["9M", "9E", "7E", "6E"], + electroball: ["9M", "9L22", "7L22", "6L22", "5L28"], + electroweb: ["9E", "7T", "6T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flatter: ["9E", "7E", "6E", "5E", "4E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L5", "4L5", "3L1", "3S1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T", "3S2"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdback: ["6S3"], + irontail: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + lightscreen: ["9M", "9L43", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L46", "4M", "4L37", "3M", "3L30"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + naturalgift: ["4M"], + odorsleuth: ["7E", "6E", "5E", "4E", "3E"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L50", "4L41"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "7V", "5D", "4E", "3E"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7V", "6M", "5M", "4E", "3E"], + sandattack: ["7E", "6E", "5E", "4E"], + screech: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "5D", "4M", "3M"], + signalbeam: ["7T", "7L39", "6T", "6L39", "5T", "5L41", "4T", "4L32"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "6S3", "5L1", "4L1", "3L1", "3S1"], + takedown: ["9M", "9L18", "7L18", "7E", "7V", "6L18", "6E", "5L18", "5E", "4E", "3E"], + terablast: ["9M"], + thunder: ["9M", "9L46", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L55", "4M", "4L46", "3M", "3L37", "3S0"], + thunderbolt: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L8", "7L8", "7V", "6L8", "6S3", "5L10", "5D", "4L10", "3L9", "3S0", "3S1", "3S2"], + thunderwave: ["9M", "9L4", "7M", "7L4", "7V", "6M", "6L4", "6S3", "5M", "5L14", "4M", "4L14", "3T", "3L16", "3S0", "3S2"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 37, gender: "F", moves: ["thunder", "thundershock", "thunderwave", "cottonspore"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "thundershock"], pokeball: "pokeball"}, + {generation: 3, level: 17, moves: ["healbell", "thundershock", "thunderwave", "bodyslam"]}, + {generation: 6, level: 10, moves: ["holdback", "tackle", "thunderwave", "thundershock"], pokeball: "cherishball"}, + ], + }, + flaaffy: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charge: ["9M", "9L16", "7L16", "6L16", "5L25", "4L25"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L29", "7L29", "6L29", "5L29"], + cottonguard: ["9L43", "7L43", "6L43", "5L36"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L20", "4L20", "3L27"], + counter: ["3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "9L47"], + defensecurl: ["7V", "3T"], + dig: ["9M"], + discharge: ["9L38", "7L38", "6L38", "5L42", "4L31"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L31"], + electroweb: ["7T", "6T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "9L52", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L53", "4M", "4L42", "3M", "3L36"], + lowkick: ["9M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + powergem: ["9M", "9L34", "7L34", "6L34", "5L59", "4L47"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4T", "4L36"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thunder: ["9M", "9L56", "7M", "7L56", "7V", "6M", "6L56", "5M", "5L65", "4M", "4L53", "3M", "3L45"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + thundershock: ["9L6", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L9", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L14", "4M", "4L14", "3T", "3L18"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 7, level: 11, pokeball: "pokeball"}, + ], + }, + ampharos: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + charge: ["9M", "9L16", "7L16", "6L16", "5L25", "4L25"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L29", "7L29", "6L29", "5L29"], + cottonguard: ["9L46", "7L46", "6L46", "5L40"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L20", "4L20", "3L27"], + counter: ["3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "9L51"], + defensecurl: ["7V", "3T"], + dig: ["9M"], + discharge: ["9L40", "7L40", "6L40", "5L48", "4L34"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["9M", "9L1", "7T", "7L1", "6T", "6L1"], + dragontail: ["9M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L33"], + electroweb: ["7T", "6T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M"], + iondeluge: ["7L1", "6L1"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L57", "7M", "7L57", "7V", "6M", "6L57", "5M", "5L63", "4M", "4L51", "3M", "3L42"], + lowkick: ["9M"], + magneticflux: ["9L1", "7L1", "6L1"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + outrage: ["9M", "7T", "6T", "5T", "4T"], + powergem: ["9M", "9L35", "7L35", "6L35", "5L71", "4L59"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L51", "6T", "6L51", "5T", "5L55", "4T", "4L42"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thunder: ["9M", "9L62", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L79", "4M", "4L68", "3M", "3L57"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "9L0", "7T", "7L1", "7V", "6T", "6L30", "5T", "5L30", "4T", "4L30", "3T", "3L30"], + thundershock: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["9L1", "7L1", "7V", "6L1"], + }, + }, + azurill: { + learnset: { + aquajet: ["9E", "8E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bellydrum: ["9E", "8E"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E", "3T"], + bounce: ["9L15", "8M", "8L15", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + brutalswing: ["8M"], + bubble: ["7L7", "6L7", "5L10", "4L10", "3L10"], + bubblebeam: ["9L6", "8L6", "7L13", "6L13", "5L13"], + camouflage: ["7E", "6E"], + captivate: ["4M"], + charm: ["9M", "9L9", "8M", "8L9", "7L10", "6L10", "5L2", "4L2", "3L3"], + confide: ["7M", "6M"], + copycat: ["9E", "8E", "7E", "6E"], + covet: ["7T", "6T", "5T"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + helpinghand: ["9M", "9L3", "8M", "8L3", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + mimic: ["3T"], + muddywater: ["8M", "7E", "6E", "5E"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + perishsong: ["9E", "8E"], + present: ["9E", "8E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sing: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + slam: ["9L12", "8L12", "7L20", "7E", "6L20", "6E", "5L15", "5E", "4L15", "4E", "3L15", "3E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + soak: ["9E", "8E", "7E", "6E", "5E"], + splash: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9E", "8E"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwhip: ["9L1", "8L1", "7L2", "6L2", "5L7", "4L7", "3L6"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L18", "4L18", "3L21"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7L5", "7E", "6L5", "6E", "5L5", "5E"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + marill: { + learnset: { + amnesia: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + aquajet: ["8E", "7E", "6E", "5E", "5D", "4E"], + aquaring: ["9L24", "8L24", "7L28", "6L28", "5L23", "4L23"], + aquatail: ["9L19", "8L19", "7T", "7L20", "6T", "6L20", "5T", "5L37", "4T", "4L37"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E", "3T"], + bounce: ["9L15", "8M", "8L15", "7T", "6T", "5T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bubble: ["7L7", "6L7", "5L1"], + bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L18", "4L18", "3L21"], + bulldoze: ["9M"], + camouflage: ["7E", "6E"], + captivate: ["4M"], + charm: ["9M", "9L9", "8M", "8L9"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["8E"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["9L1", "8L1", "7L10", "7V", "6L10", "5L2", "5D", "4L2", "3T", "3L3"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L33", "8L33", "7L37", "7V", "6L23", "5L27", "4L27", "3T", "3L28"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foresight: ["7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L30", "8M", "8L30", "7L47", "6L40", "5L42", "4L42", "3L45"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "7V", "6M", "5M", "4E", "3E"], + liquidation: ["9M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M"], + mimic: ["3T"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + muddywater: ["8M", "7E", "6E", "5E"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + perishsong: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + playrough: ["9M", "9L21", "8M", "8L21", "7L23", "6L23"], + poweruppunch: ["6M"], + present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L27", "8M", "8L27", "7M", "7L31", "7V", "6M", "6L31", "5M", "5L32", "4M", "4L32", "3M", "3L36"], + refresh: ["7E", "6E", "5E", "4E"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L15"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sing: ["8E"], + slam: ["9L12", "8L12"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["8E"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + superpower: ["9L36", "8M", "8L36", "7T", "7L40", "7E", "6T", "6L37", "6E", "5T", "5L37", "5E", "4T", "4E"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L2", "7V", "6L2", "5L7", "4L7", "3L6"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["8E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L10", "4L10", "3L10"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L5", "7E", "6L5", "6E", "5L5", "5E"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + azumarill: { + learnset: { + amnesia: ["9M", "8M"], + aquaring: ["9L30", "8L30", "7L31", "6L31", "5L27", "4L27"], + aquatail: ["9L21", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L47", "4T", "4L47"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["9L15", "8M", "8L15", "7T", "6T", "5T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bubble: ["7L7", "6L7", "5L1"], + bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L20", "4L20", "3L24"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "9L9", "8M", "8L9"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["9L1", "8L1", "7L10", "7V", "6L10", "5L1", "4L1", "3T", "3L1"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L45", "8L45", "7L42", "7V", "6L25", "5L33", "4L33", "3T", "3L34"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L40", "8M", "8L40", "7L55", "6L46", "5L54", "4L54", "3L57"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + liquidation: ["9M", "8M", "7T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M"], + mimic: ["3T"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + playrough: ["9M", "9L25", "8M", "8L25", "7L25", "6L25"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L35", "8M", "8L35", "7M", "7L35", "7V", "6M", "6L35", "5M", "5L40", "4M", "4L40", "3M", "3L45"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L15"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + slam: ["9L12", "8L12"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + steelroller: ["8T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["9L50", "8M", "8L50", "7T", "7L46", "6T", "6L42", "5T", "5L42", "4T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L1", "6L1", "5L1"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + }, + encounters: [ + {generation: 5, level: 5}, + {generation: 6, level: 16, maxEggMoves: 1}, + ], + }, + bonsly: { + learnset: { + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + block: ["9L12", "8L12", "7T", "7L29", "6T", "6L26", "5T", "5L22", "4T", "4L22"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + counter: ["9L40", "8L40", "7L36", "6L33"], + covet: ["7T", "6T", "5T"], + curse: ["9E", "8E", "7E", "6E", "5E"], + defensecurl: ["9E", "8E", "7E", "6E", "5E", "4E"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9L44", "8L44", "7L43", "6L40", "5L46", "4L46"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + feintattack: ["7L19", "6L19", "5L25", "4L25"], + flail: ["9L4", "8L4", "7L5", "6L5", "5L6", "4L6"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + grassknot: ["9M"], + harden: ["9E", "8E", "7E", "6E", "5E", "4E"], + headbutt: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + lowkick: ["9M", "9L36", "8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L9", "4T", "4L9"], + mimic: ["9L16", "8L16", "7L15", "6L15", "5L17", "4L17"], + mudshot: ["9M"], + mudslap: ["9M"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockpolish: ["9E", "8E", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "6M", "6L29", "5M", "5L33", "4M", "4L33"], + rockthrow: ["9L8", "8L8", "7L12", "6L12", "5L14", "4L14"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L30", "4M", "4L30"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M", "7E", "6E", "5E", "4E"], + slam: ["5L38", "4L38"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L41", "4T", "4L41"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + tearfullook: ["9L24", "8L24", "7L22"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + sudowoodo: { + learnset: { + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["9L12", "8L12", "7T", "7L29", "6T", "6L26", "5T", "5L22", "4T", "4L22", "3L33"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + counter: ["9L40", "8L40", "7L36", "6L33", "5L33", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["8E", "7E", "7V", "6E", "5E"], + defensecurl: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L44", "8L44", "7L43", "6L40", "5L46", "4L46", "3T", "3L57"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9L1", "8M", "8L1"], + feintattack: ["7L19", "7V", "6L19", "5L25", "4L25", "3L41"], + firepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + flail: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L9"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + hammerarm: ["9L1", "8L1", "7L50", "6L47", "5L49", "4L49"], + harden: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8E", "7E", "7V", "6E", "5E", "4T", "4E"], + headsmash: ["9L48", "8L48", "7L54"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "8M"], + lowkick: ["9M", "9L36", "8M", "8L36", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L17"], + lowsweep: ["9M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + meteorbeam: ["8T"], + mimic: ["9L16", "8L16", "7L15", "7V", "6L15", "5L17", "4L17", "3T", "3L1"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + powergem: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M"], + rockpolish: ["8E", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "7V", "6M", "6L29", "5M", "5L33", "4M", "4L33", "3T", "3L25"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L30", "4M", "4L30", "3M"], + roleplay: ["7T", "6T", "5T", "5D", "4T"], + rollout: ["8E", "7E", "7V", "6E", "5E", "5D", "4T", "4E", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + slam: ["9L0", "8L0", "7L1", "7V", "6L15", "5L38", "4L38", "3L49"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L1", "8M", "8L1", "7M", "7L47", "6M", "6L43", "5M", "5L43", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L41", "4T", "4L41"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + tearfullook: ["9L24", "8L24", "7L22"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + woodhammer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + }, + }, + hoppip: { + learnset: { + absorb: ["9L6", "7L1"], + acrobatics: ["9M", "9L24", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + amnesia: ["7E", "7V", "6E", "5E", "4E", "3E"], + aromatherapy: ["7E", "6E", "5E", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bounce: ["9L35", "7T", "7L46", "6T", "6L46", "5T", "5L46", "5D", "4T", "4L40"], + bulletseed: ["9M", "9L12", "7L19", "6L19", "5L19", "5D", "4M", "4L19", "3M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confusion: ["7E", "7V", "6E", "5E", "4E", "3E"], + cottonguard: ["9E", "7E", "6E", "5E"], + cottonspore: ["9L27", "7L34", "7V", "6L34", "5L34", "4L28", "3L25"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + doubleedge: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["9L8", "7L10", "6L10"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L32", "7T", "7L43", "7V", "6T", "6L43", "5T", "5L43", "4M", "4L37", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M", "9E", "7E", "6E"], + growl: ["7V"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leafstorm: ["9M"], + leechseed: ["9L19", "7L22", "7V", "6L22", "5L22", "4L22", "3L20"], + lightscreen: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L22", "7L25", "7V", "6L25", "5L25", "4L25", "3L30"], + memento: ["9L38", "7L49", "6L49", "5L49", "4L43"], + mimic: ["3T"], + naturalgift: ["4M"], + payday: ["7V"], + poisonpowder: ["9L10", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4E", "3E"], + ragepowder: ["9E", "7L31", "6L31", "5L31"], + raindance: ["9M"], + reflect: ["9M", "7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + silverwind: ["4M"], + sleeppowder: ["9L10", "7L16", "7V", "6L16", "5L16", "4L16", "3L17"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + strengthsap: ["9E", "7E"], + stunspore: ["9L10", "7L14", "7V", "6L14", "5L14", "4L14", "3L15"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + switcheroo: ["9E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L15", "7T", "7L4", "7V", "6T", "6L4", "5T", "5L4", "5D", "4T", "4L4", "3L5"], + tackle: ["9L1", "7L8", "7V", "6L8", "5L10", "4L10", "3L10"], + tailwhip: ["9L4", "7L6", "7V", "6L6", "5L7", "4L7", "3L5"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "9L29", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L31"], + worryseed: ["9E", "7T", "7L40", "7E", "6T", "6L40", "6E", "5T", "5L40", "5E", "4T", "4L34", "4E"], + }, + encounters: [ + {generation: 2, level: 3}, + ], + }, + skiploom: { + learnset: { + absorb: ["9L1", "7L1"], + acrobatics: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bounce: ["9L41", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4T", "4L48"], + bulletseed: ["9M", "9L15", "7L20", "6L20", "5L20", "4M", "4L20", "3M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + cottonspore: ["9L31", "7L40", "7V", "6L40", "5L40", "4L32", "3L29"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["9L10", "7L10", "6L10"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L37", "7T", "7L52", "7V", "6T", "6L52", "5T", "5L52", "4M", "4L44", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leafstorm: ["9M"], + leechseed: ["9L20", "7L24", "7V", "6L24", "5L24", "4L24", "3L22"], + lightscreen: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L24", "7L28", "7V", "6L28", "5L28", "4L28", "3L36"], + memento: ["9L44", "7L60", "6L60", "5L60", "4L52"], + mimic: ["3T"], + naturalgift: ["4M"], + poisonpowder: ["9L12", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M"], + ragepowder: ["7L36", "6L36", "5L36"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + silverwind: ["4M"], + sleeppowder: ["9L12", "7L16", "7V", "6L16", "5L16", "4L16", "3L17"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + stunspore: ["9L12", "7L14", "7V", "6L14", "5L14", "4L14", "3L15"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + tackle: ["9L8", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "9L34", "7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L36"], + worryseed: ["7T", "7L48", "6T", "6L48", "5T", "5L48", "4T", "4L40"], + }, + encounters: [ + {generation: 4, level: 12}, + ], + }, + jumpluff: { + learnset: { + absorb: ["9L1", "7L1"], + acrobatics: ["9M", "9L30", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bounce: ["9L49", "7T", "7L64", "6T", "6L64", "5T", "5L64", "4T", "4L48"], + bulletseed: ["9M", "9L15", "7L20", "6L20", "5L20", "5S0", "4M", "4L20", "3M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + cottonspore: ["9L35", "7L44", "7V", "6L44", "5L44", "4L32", "3L33"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["9L10", "7L10", "6L10"], + falseswipe: ["5S0"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L43", "7T", "7L59", "7V", "6T", "6L59", "5T", "5L59", "4M", "4L44", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leafstorm: ["9M"], + leechseed: ["9L20", "7L24", "7V", "6L24", "5L24", "5S0", "4L24", "3L22"], + lightscreen: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L24", "7L29", "7V", "6L29", "5L29", "4L28", "3L44"], + memento: ["9L55", "7L69", "6L69", "5L69", "4L52"], + mimic: ["3T"], + naturalgift: ["4M"], + poisonpowder: ["9L12", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M"], + ragepowder: ["7L39", "6L39", "5L39"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + silverwind: ["4M"], + sleeppowder: ["9L12", "7L16", "7V", "6L16", "5L16", "5S0", "4L16", "3L17"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + stunspore: ["9L12", "7L14", "7V", "6L14", "5L14", "4L14", "3L15"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + tackle: ["9L8", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "9L39", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L36"], + worryseed: ["7T", "7L54", "6T", "6L54", "5T", "5L54", "4T", "4L40"], + }, + eventData: [ + {generation: 5, level: 27, gender: "M", isHidden: true, moves: ["falseswipe", "sleeppowder", "bulletseed", "leechseed"]}, + ], + }, + aipom: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L29", "7L29", "7E", "7V", "6L29", "6E", "5L29", "5E", "4L29", "4E", "3L50", "3E"], + astonish: ["9L8", "7L8", "6L8", "5L8", "4L8", "3L13"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9L11", "7L11", "7V", "6L11", "5L11", "4L11", "3L18"], + beatup: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + bounce: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublehit: ["9L32", "7L32", "6L32", "5L32", "4L32"], + doubleslap: ["7E", "7V", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "7E", "6E", "5E", "5D", "4E"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + fling: ["9M", "9L36", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L18", "7L18", "7V", "6L18", "5L18", "4L18", "3L31"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["9E", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["9L43", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickguard: ["9E", "7E", "6E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L4", "7L4", "7V", "6L4", "5L4", "4L4", "3L6", "3S0"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + screech: ["9L25", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L43", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slam: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L22", "7L22", "7V", "6L22", "5L22", "4T", "4L22", "3T", "3L38"], + switcheroo: ["9E", "7E", "6E", "5E"], + tailslap: ["7E"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["9L15", "7L15", "6L15", "5L15", "4L15", "3L25"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "tailwhip", "sandattack"], pokeball: "pokeball"}, + ], + }, + ambipom: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M", "9L29", "7L29", "6L29", "5L29", "4L29"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M", "9L11", "7L11", "6L11", "5L11", "4L11"], + bounce: ["7T", "6T", "5T", "4T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "6M", "5M", "4M"], + doublehit: ["9L32", "7L32", "6L32", "5L32", "4L32"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualchop: ["7L1"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "7T", "6T", "5T", "4T"], + fling: ["9M", "9L36", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + focuspunch: ["9M", "7T", "6T", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["9L18", "7L18", "6L18", "5L18", "4L18"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["9L43", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L25", "7L25", "6L25", "5L25", "4L25"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L22", "7L22", "6L22", "5L22", "4T", "4L22"], + tailwhip: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + tickle: ["9L15", "7L15", "6L15", "5L15", "4L15"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + workup: ["7M", "5M"], + }, + }, + sunkern: { + learnset: { + absorb: ["9L7", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + afteryou: ["7T", "6T", "5T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7E", "6E", "5E"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L34", "7L37", "6L37", "5L37", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "5D", "4T"], + encore: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + endeavor: ["9L25", "7T", "7L25", "6T", "6L25", "5T", "5L21", "4T", "4L21", "3L25"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L22", "7T", "7L22", "7V", "6T", "6L22", "5T", "5L41", "4M", "4L41", "3M", "3L42"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L7", "7E", "6L7", "6E", "5L13", "5E", "4L13", "4E", "3E"], + grassyterrain: ["9M", "9E", "7E", "6E"], + growth: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L6", "3S0"], + helpinghand: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["9E", "7L4", "7E", "6L4", "6E", "5L9", "5E", "4L9", "4E", "3L18"], + leafstorm: ["9M"], + leechseed: ["9E", "7L13", "7E", "6L13", "6E", "5L17", "5E", "4L17", "4E", "3E"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + megadrain: ["9L10", "7L10", "7V", "6L10", "5L5", "5D", "4L5", "3L13"], + mimic: ["3T"], + morningsun: ["9E", "7E", "6E", "5E"], + naturalgift: ["7L31", "7E", "6L31", "6E", "5L31", "5E", "4M"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + razorleaf: ["9L16", "7L16", "6L16", "5L29", "4L29"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9L39", "7T", "7L43", "6T", "6L43", "5T", "5L45", "4T", "4L45"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L31", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L37", "4M", "4L37", "3M", "3L30"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7E", "7V", "6E", "5E", "5D", "4E"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L28", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L33", "4T", "4L33", "3L37"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + weatherball: ["9M"], + worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["chlorophyll"], moves: ["absorb", "growth"], pokeball: "pokeball"}, + ], + }, + sunflora: { + learnset: { + absorb: ["9L7", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + afteryou: ["7T", "6T", "5T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bulletseed: ["9M", "9L25", "7L25", "6L25", "5L21", "4M", "4L21", "3M", "3L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["9M"], + doubleedge: ["9L34", "7L37", "6L37", "5L37", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flowershield: ["7L1", "6L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L22", "7T", "7L22", "7V", "6T", "6L22", "5T", "5L22", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L7", "6L7", "5L13", "4L13"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L6"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["9L4", "7L4", "6L4", "5L9", "4L9", "3L18"], + leafstorm: ["9M", "9L43", "7L43", "6L43", "5L45", "4L43"], + leechseed: ["9L13", "7L13", "6L13", "5L17", "4L17"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + megadrain: ["9L10", "7L10", "6L10", "5L5", "4L5"], + mimic: ["3T"], + naturalgift: ["7L31", "6L31", "5L31", "4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L50", "7L50", "6L50"], + petaldance: ["9L28", "7L28", "7V", "6L28", "5L33", "4L33", "3L37"], + pound: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + razorleaf: ["9L16", "7L16", "7V", "6L16", "5L29", "4L29", "3L13"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L31", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L41", "4M", "4L41", "3M", "3L42"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L39", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L37", "4M", "4L37", "3M", "3L30"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + weatherball: ["9M"], + worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25"], + }, + }, + yanma: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "9L14", "4T"], + airslash: ["9M", "9L54", "7L54", "6L54", "5L54", "4L54"], + ancientpower: ["9L33", "7L33", "6L33", "5L33", "4T", "4L33"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bugbite: ["9M", "9L30", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L57", "7L57", "6L57", "5L57", "4L57"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["9L17", "7L17", "7V", "6L17", "5L17", "4L17", "3L25"], + doubleedge: ["9E", "7E", "6E", "5E", "3T"], + doubleteam: ["9L11", "7M", "7L11", "7V", "6M", "6L11", "5M", "5L11", "4M", "4L11", "3M", "3L12"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9E", "7E", "6E", "5E", "5D", "4E"], + feintattack: ["7E", "6E", "5E", "4E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L38", "7L38", "6L38", "5L38", "4L38", "3L23"], + leechlife: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + lunge: ["9M"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pounce: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L30", "7E", "6L30", "6E", "5L30", "5E", "4L30", "4E"], + quickattack: ["9L6", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L6"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + screech: ["9L46", "7L46", "7V", "6L46", "5L46", "4L46", "3L49"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sonicboom: ["7L14", "7V", "6L14", "5L14", "4L14", "3L17"], + steelwing: ["7M", "6M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9L22", "7L22", "7V", "6L22", "5L22", "4L22", "3L31"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["9M", "9L27", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27", "3L34"], + uturn: ["9M", "9L49", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L49"], + whirlwind: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["9L43", "7L43", "7V", "6L43", "5L43", "4L43", "3L39"], + }, + }, + yanmega: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L1", "7L1", "6L1", "5L54", "4L49"], + ancientpower: ["9L33", "7L33", "6L33", "5L33", "4T", "4L33"], + attract: ["7M", "6M", "5M", "4M"], + bugbite: ["9M", "9L30", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["9M", "9L1", "7L1", "6L1", "5L57", "4L54"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M"], + defog: ["7T", "4M"], + detect: ["9L17", "7L17", "6L17", "5L17", "4L17"], + doubleteam: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + dreameater: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + feint: ["9L38", "7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + leechlife: ["9M", "7M"], + lunge: ["9M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["9L1", "7L1", "6L1", "5L1", "4L1"], + ominouswind: ["4T"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + pursuit: ["7L30", "6L30", "5L30", "4L30"], + quickattack: ["9L14", "7L1", "6L1", "5L1", "4L1"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9L46", "7L46", "6L46", "5L46", "4L43"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + slash: ["9L43", "7L43", "6L43", "5L43", "4L38"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + sonicboom: ["7L14", "6L14", "5L14", "4L14"], + steelwing: ["7M", "6M", "4M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9L22", "7L22", "6L22", "5L22", "4L22"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["9M", "9L27", "7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + uturn: ["9M", "9L49", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L46"], + }, + }, + wooper: { + learnset: { + acidspray: ["9M", "9E", "8E", "7E", "6E", "5E"], + afteryou: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["9M", "9L32", "8M", "8L32", "7L23", "7V", "6L23", "5L23", "4L23", "3L21"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + aquatail: ["9L24", "8L24", "7T", "6T", "5T", "5D", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doublekick: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3M", "3L36"], + eerieimpulse: ["8M", "7E", "6E"], + encore: ["9M", "8M", "7E", "6E", "5E", "4E"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + guardswap: ["8M", "7E", "6E"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M", "9L12", "8L12", "7L43", "7V", "6L43", "5L43", "4L43", "3L51"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + liquidation: ["9M"], + mimic: ["3T"], + mist: ["9L12", "8L12", "7L43", "7V", "6L43", "5L43", "4L43", "3L51"], + mudbomb: ["7L19", "6L19", "5L19", "4L19"], + muddywater: ["9L28", "8M", "8L28", "7L47", "6L47", "5L47", "4L47"], + mudshot: ["9M", "9L8", "8M", "8L8", "7L9", "6L9", "5L9", "4L9", "3L16"], + mudslap: ["9M", "7V", "4T", "3T"], + mudsport: ["7L5", "7E", "6L5", "6E", "5L5", "5E", "4L5", "4E", "3E"], + naturalgift: ["4M"], + poweruppunch: ["8E", "7E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L4", "8M", "8L4", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L41"], + recover: ["9E", "8E", "7E", "6E", "5E", "4E"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + slam: ["9L16", "8L16", "7L15", "7V", "6L15", "5L15", "4L15", "3L11"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikes: ["9M"], + spitup: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + stealthrock: ["9M"], + stockpile: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L36", "8L36", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + yawn: ["9L21", "8L21", "7L29", "6L29", "5L29", "4L29", "3L31"], + }, + encounters: [ + {generation: 2, level: 4}, + ], + }, + wooperpaldea: { + learnset: { + acidspray: ["9M", "9E"], + afteryou: ["9E"], + amnesia: ["9M", "9L32"], + ancientpower: ["9E"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + counter: ["9E"], + curse: ["9E"], + dig: ["9M"], + doublekick: ["9E"], + earthpower: ["9M"], + earthquake: ["9M", "9L40"], + endure: ["9M"], + facade: ["9M"], + gunkshot: ["9M"], + haze: ["9M", "9E"], + helpinghand: ["9M"], + hydropump: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + mist: ["9E"], + mudshot: ["9M", "9L1"], + mudslap: ["9M"], + poisonjab: ["9M", "9L24"], + poisontail: ["9M", "9L8"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9E"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + slam: ["9L16"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L28"], + spikes: ["9M"], + spitup: ["9E"], + stealthrock: ["9M"], + stockpile: ["9E"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swallow: ["9E"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L36"], + toxicspikes: ["9M", "9L12"], + trailblaze: ["9M"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M"], + yawn: ["9L21"], + }, + }, + quagsire: { + learnset: { + acidspray: ["9M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L40", "8M", "8L40", "7L24", "7V", "6L24", "5L24", "4L24", "3L23"], + ancientpower: ["4T"], + aquatail: ["9L28", "8L28", "7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L52", "8M", "8L52", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L42"], + eerieimpulse: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M", "9L12", "8L12", "7L48", "7V", "6L48", "5L48", "4L48", "3L61"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + liquidation: ["9M", "8M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mist: ["9L12", "8L12", "7L48", "7V", "6L48", "5L48", "4L48", "3L61"], + mudbomb: ["7L19", "6L19", "5L19", "4L19"], + muddywater: ["9L34", "8M", "8L34", "7L53", "6L53", "5L53", "4L53"], + mudshot: ["9M", "9L1", "8M", "8L1", "7L9", "6L9", "5L9", "4L9", "3L16"], + mudslap: ["9M", "7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L41", "3M", "3L49"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + slam: ["9L16", "8L16", "7L15", "7V", "6L15", "5L15", "4L15", "3L11"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + toxic: ["9M", "9L46", "8L46", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + yawn: ["9L23", "8L23", "7L31", "6L31", "5L31", "4L31", "3L35"], + }, + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 10}, + ], + }, + clodsire: { + learnset: { + acidspray: ["9M"], + amnesia: ["9M", "9L0"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L48"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + haze: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + megahorn: ["9L36"], + mudshot: ["9M", "9L8"], + mudslap: ["9M"], + poisonjab: ["9M", "9L24"], + poisonsting: ["9L1"], + poisontail: ["9M", "9L12"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + slam: ["9L16"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L30"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + surf: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L40"], + toxicspikes: ["9M", "9L4"], + trailblaze: ["9M"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M"], + yawn: ["9L21"], + zenheadbutt: ["9M"], + }, + }, + murkrow: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + assurance: ["9L25", "7L25", "7E", "6L25", "6E", "5L25", "5E", "4L25"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L9", "3S0"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bravebird: ["9M", "9E", "7E", "6E", "5E", "4E"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3E"], + curse: ["7V"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + drillpeck: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + dualwingbeat: ["9M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9E", "7E", "6E", "5E", "4E", "3E"], + feintattack: ["7L35", "7E", "7V", "6L35", "6E", "5L35", "5E", "4L35", "4E", "3L35"], + flatter: ["9E", "7E", "6E"], + fly: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "9L40", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + gust: ["9L5"], + haze: ["9M", "9L11", "7L11", "7V", "6L11", "5L11", "4L11", "3L22"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + lashout: ["9M"], + meanlook: ["9L35", "7L41", "7V", "6L41", "5L41", "4L41", "3L48"], + mimic: ["3T"], + mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M", "9L21", "7L21", "7V", "6L21", "5L21", "4L21", "3L27"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + peck: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + perishsong: ["9E", "7E", "6E", "5E", "4E", "3E"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychoshift: ["7E", "6E", "5E", "4E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L5", "7V", "6L5", "5L5", "4L5", "3L14"], + quash: ["9L60", "7M", "7L65", "6M", "6L65", "5M", "5L65"], + quickattack: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9E", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + skyattack: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3T", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L50", "7L55", "6L55", "5L55", "4T", "4L45"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tailwind: ["9M", "7T", "7L50", "6T", "6L50", "5T", "5L51", "4T"], + takedown: ["9M"], + taunt: ["9M", "9L31", "7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L40"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["9L55", "7M", "7L61", "6M", "6L61", "5M", "5L61", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M"], + whirlwind: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["9L15", "7L15", "7E", "7V", "6L15", "6E", "5L15", "5E", "4L15", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["insomnia"], moves: ["peck", "astonish"], pokeball: "pokeball"}, + ], + }, + honchkrow: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + comeuppance: ["9L65"], + confide: ["7M", "6M"], + confuseray: ["9M"], + darkpulse: ["9M", "9L55", "7M", "7L75", "6M", "6L75", "5T", "5L75", "4M", "4L55"], + defog: ["7T", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fly: ["9M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + haze: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + heatwave: ["9M", "7T", "7S0", "6T", "5T", "4T"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "7S0", "6T", "5T"], + incinerate: ["6M", "5M"], + lashout: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "9L35", "7L35", "6L35", "5L35", "4L35"], + naturalgift: ["4M"], + nightshade: ["9M"], + nightslash: ["9L1", "7L1", "7S0", "6L1", "5L55", "4L45"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + pursuit: ["7L1", "6L1", "5L1", "4L1"], + quash: ["9L1", "7M", "7L65", "6M", "6L65", "5M", "5L65"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + skyattack: ["7T", "7S0", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + steelwing: ["7M", "6M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L1", "7L1", "6L1", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + swift: ["4T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M"], + wingattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + }, + eventData: [ + {generation: 7, level: 65, gender: "M", abilities: ["superluck"], moves: ["nightslash", "skyattack", "heatwave", "icywind"], pokeball: "cherishball"}, + ], + }, + misdreavus: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + allyswitch: ["7T"], + astonish: ["9L10", "7L10", "6L10", "5L10", "4L10", "3L11"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + burningjealousy: ["9M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L14", "7L14", "7V", "6L14", "5L14", "4L14", "3L17"], + confusion: ["9L1"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + destinybond: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + grudge: ["7L50", "6L50", "5L50", "4L46", "3L53"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hex: ["9M", "9L23", "7L23", "6L23", "5L23"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + inferno: ["5D"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + meanlook: ["9L19", "7L19", "7V", "6L19", "5L19", "4L19", "3L23"], + mefirst: ["7E", "6E"], + memento: ["9E", "7E", "6E", "5E", "4E"], + mimic: ["3T"], + nastyplot: ["9M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + ominouswind: ["7E", "6E", "5E", "4T", "4E"], + painsplit: ["9L32", "7T", "7L32", "7V", "6T", "6L32", "5T", "5L32", "4T", "4L28", "3L37"], + payback: ["9L37", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L32"], + perishsong: ["9L46", "7L46", "7V", "6L46", "5L46", "4L41", "3L45"], + phantomforce: ["9M"], + poltergeist: ["9M"], + powergem: ["9M", "9L50", "7L55", "6L55", "5L55", "4L50"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L28", "7L28", "7V", "6L28", "5L28", "4L23", "3L30"], + psychic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["9M"], + psywave: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "9L41", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L37", "3M"], + shadowsneak: ["9E", "7E", "6E", "5E", "4E"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spite: ["9M", "9E", "7T", "7L5", "7E", "7V", "6T", "6L5", "6E", "5T", "5L5", "5E", "4T", "4L5", "4E", "3L6", "3S0"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "7E", "6E", "5E", "4T", "4E"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + wonderroom: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["growl", "psywave", "spite"], pokeball: "pokeball"}, + ], + }, + mismagius: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + allyswitch: ["7T"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["7M", "6M", "5M", "4M"], + burningjealousy: ["9M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], + flash: ["6M", "5M", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + laserfocus: ["7T"], + lashout: ["9M"], + luckychant: ["7L1", "6L1", "5L1", "4L1"], + magicalleaf: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + mysticalfire: ["9L1", "7L1", "6L1"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + phantomforce: ["9M", "9L1", "7L1", "6L1"], + poltergeist: ["9M"], + powergem: ["9M", "9L1", "7L1", "6L1"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M"], + psywave: ["7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + skillswap: ["9M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + wonderroom: ["7T", "6T", "5T"], + }, + }, + unown: { + learnset: { + hiddenpower: ["7M", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 2, level: 5}, + {generation: 3, level: 25}, + {generation: 4, level: 5}, + {generation: 6, level: 32}, + ], + }, + wynaut: { + learnset: { + amnesia: ["8M", "8L1"], + charm: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + counter: ["8L1", "7L15", "6L15", "5L15", "4L15", "3L15"], + destinybond: ["8L1", "7L15", "6L15", "5L15", "4L15", "3L15"], + encore: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + mirrorcoat: ["8L1", "7L15", "6L15", "5L15", "4L15", "3L15"], + safeguard: ["8M", "8L1", "7M", "7L15", "6M", "6L15", "5L15", "4L15", "3L15"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + tickle: ["3S0"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["splash", "charm", "encore", "tickle"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + wobbuffet: { + learnset: { + amnesia: ["8M", "8L1"], + charm: ["8M", "8L1", "5D"], + counter: ["8L0", "7L1", "7V", "6L1", "6S2", "6S3", "5L1", "4L1", "3L1", "3S0", "3S1"], + destinybond: ["8L0", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + encore: ["8M", "8L1", "5D"], + mirrorcoat: ["8L0", "7L1", "7V", "6L1", "6S3", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + safeguard: ["8M", "8L0", "7M", "7L1", "7V", "6M", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + splash: ["8L1"], + }, + eventData: [ + {generation: 3, level: 5, moves: ["counter", "mirrorcoat", "safeguard", "destinybond"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["counter", "mirrorcoat", "safeguard", "destinybond"], pokeball: "pokeball"}, + {generation: 6, level: 10, gender: "M", moves: ["counter"], pokeball: "cherishball"}, + {generation: 6, level: 15, gender: "M", moves: ["counter", "mirrorcoat"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 2, level: 5}, + {generation: 4, level: 3}, + ], + }, + girafarig: { + learnset: { + agility: ["9M", "9L23", "7L23", "7V", "6L14", "5L14", "4L14", "3L31"], + allyswitch: ["9E", "7T"], + amnesia: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + assurance: ["9L10", "7L10", "6L10", "5L28", "4L28"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L7"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9L41", "7L41", "7V", "6L23", "5L23", "4L23", "3L37"], + beatup: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "3T"], + bulldoze: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L5", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L13"], + crunch: ["9M", "9L37", "7L37", "7V", "6L37", "5L46", "4L46", "3L49"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleedge: ["3T"], + doublehit: ["9L28", "7L28", "6L28", "5L32", "4L32"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + gigaimpact: ["9M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + guardswap: ["9L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M", "7T", "6T", "5T"], + imprison: ["9M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M"], + magiccoat: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + meanlook: ["9E", "7E", "6E", "5E"], + mimic: ["3T"], + mirrorcoat: ["9E", "7E", "6E", "5E", "5D", "4E"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L46", "7L46", "6L46"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + odorsleuth: ["7L5", "6L5", "5L5", "4L5", "3L25"], + powerswap: ["9L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L19", "7L19", "7V", "6L19", "5L19", "4L19", "3L43"], + psychic: ["9M", "9L50", "7M", "7L50", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M"], + psychicfangs: ["9M", "7E"], + psychicterrain: ["9M", "7E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "6E", "5E", "4E"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stomp: ["9L14", "7L14", "7V", "6L10", "5L10", "4L10", "3L19"], + stompingtantrum: ["9M", "7T"], + storedpower: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + twinbeam: ["9L32"], + uproar: ["9M", "9E", "7T", "6T", "5T", "4T"], + wish: ["9E", "7E", "6E", "5E", "4E", "3E"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "7T", "7L32", "6T", "6L32", "5T", "5L41", "4T", "4L41"], + }, + }, + pineco: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7L20", "7V", "6L20", "5L20", "4L17", "3L29"], + bodyslam: ["9M", "3T"], + bugbite: ["9M", "9L9", "7T", "7L9", "6T", "6L9", "5T", "5L9", "4T", "4L9"], + bugbuzz: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E", "3S1"], + curse: ["9L23", "7V"], + defensecurl: ["7V", "3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L45", "7L45", "7E", "7V", "6L45", "6E", "5L45", "5E", "4L42", "4E", "3T", "3L50"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["9M", "7T", "6T", "5T"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + explosion: ["9L34", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L31", "3T", "3L36"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gravity: ["9M", "7T", "6T", "5T", "5D", "4T"], + gyroball: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L39"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icespinner: ["9M"], + irondefense: ["9M", "9L39", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L34"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lunge: ["9M"], + mimic: ["3T"], + naturalgift: ["7L23", "6L23", "5L23", "4M", "4L20"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L28"], + pinmissile: ["9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], + poisonjab: ["9M"], + pounce: ["9M"], + powertrick: ["9E", "7E", "6E", "5E", "4E"], + protect: ["9M", "9L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1", "3S0"], + raindance: ["9M"], + rapidspin: ["9L17", "7L17", "7V", "6L17", "5L17", "4L12", "3L22"], + reflect: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3M", "3E"], + refresh: ["3S1"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E", "4E"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9L20", "7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + selfdestruct: ["9L6", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3T", "3L8", "3S0"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L28", "7L28", "7V", "6L28", "5L28", "4L23", "3L43", "3S1"], + stealthrock: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + takedown: ["9M", "9L12", "7L12", "7V", "6L12", "5L12", "4L9", "3L15"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9E", "7E", "6E", "5E", "5D", "4E"], + venoshock: ["9M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "protect", "selfdestruct"], pokeball: "pokeball"}, + {generation: 3, level: 20, moves: ["refresh", "pinmissile", "spikes", "counter"]}, + ], + }, + forretress: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["7L1", "6L32", "5L32"], + bide: ["7L20", "7V", "6L20", "5L20", "4L17", "3L29"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["9L23", "7V"], + defensecurl: ["7V", "3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L50", "7L50", "7V", "6L56", "5L56", "4L50", "3T", "3L59"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["9M", "7T", "6T", "5T"], + earthpower: ["9M"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L36", "7M", "7L36", "7V", "6M", "6L42", "5M", "5L42", "4M", "4L33", "3T", "3L39"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "9L46", "7M", "7L46", "6M", "6L50", "5M", "5L50", "4M", "4L45"], + headbutt: ["7V", "4T"], + heavyslam: ["9M", "9L0", "7L1", "6L1", "5L70"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + icespinner: ["9M"], + irondefense: ["9M", "9L42", "7T", "7L42", "6T", "6L46", "5T", "5L46", "4T", "4L38"], + ironhead: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lunge: ["9M"], + magnetrise: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L60", "4T", "4L57"], + mimic: ["3T"], + mirrorshot: ["7L1", "6L31", "5L31", "4L31"], + naturalgift: ["7L23", "6L23", "5L23", "4M", "4L20"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L32", "7M", "7L32", "6M", "6L36", "5M", "5L36", "4M", "4L28"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M", "9L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + raindance: ["9M"], + rapidspin: ["9L17", "7L17", "7V", "6L17", "5L17", "4L12", "3L22"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9L20", "7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + selfdestruct: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L28", "7L28", "7V", "6L28", "5L28", "4L23", "3L49"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L12", "7L12", "7V", "6L12", "5L12", "4L1", "3L15"], + telekinesis: ["7T"], + terablast: ["9M"], + thunderwave: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + venoshock: ["9M", "7M", "6M", "5M"], + voltswitch: ["9M", "7M", "6M", "5M"], + zapcannon: ["9L1", "7L1", "6L1", "5L64", "4L62", "3L31"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + dunsparce: { + learnset: { + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], + airslash: ["9M", "8M", "7L41"], + amnesia: ["9M", "8M"], + ancientpower: ["9L20", "8L20", "7L16", "7E", "7V", "6L19", "6E", "5L48", "5E", "4T", "4L41", "4E", "3E"], + aquatail: ["9E", "8E", "7T", "6T", "5T", "4T"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + bind: ["7T", "6T", "5T"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "8L32", "7L18", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + coil: ["9L44", "8L48", "7L28", "6L37", "5L43"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L4", "5D", "4L5", "3T", "3L4"], + dig: ["9M", "8M", "7L31", "7V", "6M", "6L31", "5M", "5L53", "4M", "4L45", "3M"], + doubleedge: ["9L48", "8L52", "7L36", "6L34", "5L34", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonrush: ["9L40", "8L44", "7L43"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + drillrun: ["9M", "9L24", "8M", "8L24", "7T", "7L21", "6T", "6L43", "5T", "5L43"], + dualwingbeat: ["8T"], + earthpower: ["9M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9L52", "8L56", "7T", "7L38", "6T", "6L46", "5T", "5L58", "4T", "4L49", "3L41"], + endure: ["9M", "8M", "7L46", "7V", "6L40", "5L40", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1", "7L48", "6L49", "5L63", "4L53", "3L44"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + glare: ["9L12", "8L12", "7L33", "7V", "6L28", "5L12", "4L13", "3L14"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + helpinghand: ["9M", "8M"], + hex: ["9M", "8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hyperdrill: ["9L32"], + hypervoice: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icespinner: ["9M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["9E", "8E", "7T", "6T", "5T", "4T"], + lunge: ["9M"], + magiccoat: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "9L4", "8L4", "7L13", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poisontail: ["9M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L8", "7V", "6L10", "5L24", "4L25", "3L24"], + rage: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L8", "8L8", "7L3", "7V", "6L4", "5L16", "4T", "4L17", "3T", "3L21"], + roost: ["9L36", "8L40", "7M", "7L23", "6M", "6L25", "5T", "5L33", "4M", "4L33"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + screech: ["9L16", "8M", "8L16", "7L11", "7V", "6L13", "5L28", "4L29", "3L31"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + smartstrike: ["9M"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9M", "7T", "7L6", "7V", "6T", "6L7", "5T", "5L20", "4T", "4L21", "3L21"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M", "8L36", "7L26", "7V", "6L22", "5L38", "4L37", "3L34"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E", "4E"], + uproar: ["9M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + yawn: ["9L28", "8L28", "7L13", "6L16", "5L8", "4L9", "3L11"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + dudunsparce: { + learnset: { + agility: ["9M"], + airslash: ["9M"], + amnesia: ["9M"], + ancientpower: ["9L20"], + batonpass: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + boomburst: ["9L62"], + bulldoze: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + coil: ["9L44"], + defensecurl: ["9L1"], + dig: ["9M"], + doubleedge: ["9L48"], + dragonrush: ["9L40"], + dragontail: ["9M"], + drillrun: ["9M", "9L24"], + dualwingbeat: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9L52"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flail: ["9L1"], + flamethrower: ["9M"], + gigaimpact: ["9M"], + glare: ["9L12"], + gyroball: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hurricane: ["9M", "9L56"], + hyperbeam: ["9M"], + hyperdrill: ["9L32"], + hypervoice: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + lunge: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "9L4"], + outrage: ["9M"], + poisonjab: ["9M"], + poisontail: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + rollout: ["9L8"], + roost: ["9L36"], + sandstorm: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9L16"], + shadowball: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + toxic: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + yawn: ["9L28"], + zenheadbutt: ["9M"], + }, + }, + gligar: { + learnset: { + acrobatics: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L27"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "7E", "6E", "5E", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "7E", "6E", "5E", "4E"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bugbite: ["7T", "6T", "5T"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crabhammer: ["9L45"], + crosspoison: ["9E", "7E", "6E", "5E", "4E"], + crunch: ["9M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["9E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["3T"], + dualwingbeat: ["9M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "7M", "6M", "5M", "4M"], + feint: ["9E", "7E", "6E", "5E", "5D", "4E"], + feintattack: ["7L19", "7V", "6L19", "5L23", "4L23", "3L28"], + firefang: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9L16", "7L16", "7V", "6L16", "5L20", "4T", "4L20", "3T"], + guillotine: ["7L55", "7V", "6L55", "5L49", "4L45", "3L52"], + gunkshot: ["9M"], + harden: ["9L7", "7L7", "7V", "6L7", "5L9", "4L9", "3L13"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + honeclaws: ["6M", "5M"], + icefang: ["9M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "9L10", "7T", "7L10", "6T", "6L10", "5T", "5L12", "4T", "4L12"], + lunge: ["9M"], + metalclaw: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M"], + naturalgift: ["4M"], + nightslash: ["9E", "7E", "6E", "5E", "4E"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + poisontail: ["9M", "9L19", "7E", "6E", "5E"], + powertrick: ["7E", "6E", "5E", "4E"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + quickattack: ["9L13", "7L13", "7V", "6L13", "5L16", "4L16", "3L20"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "7V", "6E", "5E", "4E", "3E"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["9L4", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L6", "3S0"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "7E", "6E", "5E", "4E", "3E"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9L35", "7L35", "7V", "6L35", "5L31", "4L27", "3L44"], + secretpower: ["6M", "4M", "3M"], + skyuppercut: ["7L45", "6L45", "5L45"], + slash: ["9L27", "7L27", "7V", "6L27", "5L34", "4L31", "3L36"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelwing: ["7M", "6M", "4M", "3M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunderfang: ["9M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + uturn: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L42", "4M", "4L38"], + venoshock: ["9M", "7M", "6M", "5M"], + wingattack: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L42"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["poisonsting", "sandattack"], pokeball: "pokeball"}, + ], + }, + gliscor: { + learnset: { + acrobatics: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L27"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brutalswing: ["7M"], + bugbite: ["7T", "6T", "5T"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crabhammer: ["9L45"], + crunch: ["9M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "7M", "6M", "5M", "4M"], + feintattack: ["7L19", "6L19", "5L23", "4L23"], + firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + fling: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9L16", "7L16", "6L16", "5L20", "4T", "4L20"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + guillotine: ["7L1", "6L1", "5L49", "4L45"], + gunkshot: ["9M"], + harden: ["9L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["9M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["9M", "9L19", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + lunge: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + nightslash: ["9L27", "7L27", "6L27", "5L34", "4L31"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + poisontail: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M"], + quickattack: ["9L13", "7L13", "6L13", "5L16", "4L16"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + scaryface: ["9M"], + screech: ["9L35", "7L35", "6L35", "5L31", "4L27"], + secretpower: ["6M", "4M"], + skyattack: ["7T", "6T", "5T", "4T"], + skyuppercut: ["7L45", "6L45", "5L45"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M"], + snore: ["7T", "6T", "5T", "4T"], + spikes: ["9M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelwing: ["7M", "6M", "4M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + throatchop: ["7T"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "7M", "6M", "5M", "4M"], + toxicspikes: ["9M"], + uturn: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L42", "4M", "4L38"], + venoshock: ["9M", "7M", "6M", "5M"], + xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L42"], + }, + }, + snubbull: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L7", "7V", "6L7", "5L7", "4L7", "3L13"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bulkup: ["7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + charm: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L8", "3S0"], + closecombat: ["7E", "6E", "5E", "5D", "4E"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crunch: ["7L49", "7E", "7V", "6L49", "6E", "5L49", "5E", "4L49", "4E", "3L53", "3E"], + curse: ["7V"], + dazzlinggleam: ["7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["7E", "6E", "5E", "5D", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7E", "6E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fireblast: ["7M", "6M", "5M", "4M", "3M"], + firefang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7L19", "7V", "6L19", "5L19", "4T", "4L19"], + healbell: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icefang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["7V"], + lick: ["7L13", "7V", "6L13", "5L13", "4L13", "3L19"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["7E", "6E", "5E", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], + playrough: ["7L37", "6L37"], + poweruppunch: ["6M"], + present: ["7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L31", "7V", "6L31", "5L31", "4L31", "3L34"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7L25", "7V", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L26"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snarl: ["7M", "6M", "5M"], + snore: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L4", "3S0"], + takedown: ["7V", "5L37", "4L37", "3L43"], + taunt: ["7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderfang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "scaryface", "tailwhip", "charm"], pokeball: "pokeball"}, + ], + }, + granbull: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L7", "7V", "6L7", "5L7", "4L7", "3L13"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bulkup: ["7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + charm: ["7L1", "7V", "6L1", "5L1", "4L1", "3L8"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crunch: ["7L59", "6L59", "5L59", "4L59", "3L61"], + curse: ["7V"], + dazzlinggleam: ["7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fireblast: ["7M", "6M", "5M", "4M", "3M"], + firefang: ["7L1", "6L1", "5L1", "4L1"], + firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["7L19", "7V", "6L19", "5L19", "4T", "4L19"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icefang: ["7L1", "6L1", "5L1", "4L1"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lick: ["7L13", "7V", "6L13", "5L13", "4L13", "3L19"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["7T", "7L1", "6T", "6L1", "5T", "5L67"], + overheat: ["7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "7L51", "6M", "6L51", "5M", "5L51", "4M", "4L51"], + playrough: ["7L43", "6L43"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L35", "7V", "6L35", "5L35", "4L35", "3L38"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L28"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + snarl: ["7M", "6M", "5M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L4"], + takedown: ["7V", "5L43", "4L43", "3L49"], + taunt: ["7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderfang: ["7L1", "6L1", "5L1", "4L1"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 15}, + ], + }, + qwilfish: { + learnset: { + acidspray: ["9M", "9E", "8E", "7E", "6E", "5E"], + acupressure: ["9L52", "8L60"], + agility: ["9M"], + aquajet: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + aquatail: ["9L48", "8L56", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], + assurance: ["8M"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barbbarrage: ["9E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["9L24", "8M", "8L24", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4M", "4L33"], + bubble: ["7L13", "6L13"], + bubblebeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + destinybond: ["9L56", "8L66", "7L1", "6L1", "5L53", "4L53", "3L45"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fellstinger: ["9L12", "8L12", "7L1", "6L1"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flipturn: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["9L4", "8L4", "7L9", "7V", "6L9", "5L9", "4L9", "3L9", "3S0"], + haze: ["9M", "9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["7V", "4T"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M", "7L1", "7V", "6L1", "5L57", "4L57", "3L37"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + minimize: ["9L16", "8L16", "7L9", "7V", "6L9", "5L9", "4L9", "3L9", "3S0"], + mudshot: ["9M"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["9L32", "8M", "8L32", "7L37", "7V", "6L37", "5L37", "4L37", "3L21"], + poisonjab: ["9M", "9L28", "8M", "8L40", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L49", "4E"], + poisonsting: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L28", "7L29", "6L29", "5L29", "4L29", "3L25"], + reversal: ["9M", "8M"], + rollout: ["7L17", "7V", "6L17", "5L17", "4T", "4L17", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "5D", "4M", "3M"], + selfdestruct: ["9E", "8M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + spite: ["9M"], + spitup: ["9L40", "8L44", "7L25", "6L25", "5L25", "4L25"], + steelroller: ["8T"], + stockpile: ["9L40", "8L44", "7L25", "6L25", "5L25", "4L25"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + takedown: ["9M", "8L48", "7L41", "7V", "6L41", "5L41", "4L41", "3L33"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + throatchop: ["8M", "7T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["9M", "9L44", "8L52", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9L36", "8M", "8L36", "7L21", "6L21", "5L21", "4L21"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L8", "8L8", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "poisonsting", "harden", "minimize"], pokeball: "pokeball"}, + ], + }, + qwilfishhisui: { + learnset: { + acidspray: ["9M", "9E"], + acupressure: ["9L52"], + agility: ["9M"], + aquajet: ["9E"], + aquatail: ["9E"], + astonish: ["9E"], + barbbarrage: ["9L28"], + bite: ["9L8"], + blizzard: ["9M"], + brine: ["9L24"], + bubblebeam: ["9E"], + chillingwater: ["9M"], + crunch: ["9M", "9L48"], + darkpulse: ["9M"], + destinybond: ["9L56"], + endure: ["9M"], + facade: ["9M"], + fellstinger: ["9L12"], + flail: ["9E"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + gyroball: ["9M"], + harden: ["9L4"], + haze: ["9M", "9E"], + hex: ["9M"], + hydropump: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + minimize: ["9L16"], + mudshot: ["9M"], + pinmissile: ["9L32"], + poisonjab: ["9M"], + poisonsting: ["9L1"], + poisontail: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + selfdestruct: ["9E"], + shadowball: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + spikes: ["9M", "9L20"], + spite: ["9M"], + spitup: ["9L40"], + stockpile: ["9L40"], + substitute: ["9M"], + supersonic: ["9E"], + surf: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L44"], + toxicspikes: ["9M", "9L36"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M", "9E"], + }, + }, + overqwil: { + learnset: { + acidspray: ["9M"], + acupressure: ["9L52"], + agility: ["9M"], + barbbarrage: ["9L28"], + bite: ["9L8"], + blizzard: ["9M"], + brine: ["9L24"], + chillingwater: ["9M"], + crunch: ["9M", "9L48"], + darkpulse: ["9M"], + destinybond: ["9L56"], + endure: ["9M"], + facade: ["9M"], + fellstinger: ["9L12"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + gyroball: ["9M"], + harden: ["9L4"], + haze: ["9M"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + minimize: ["9L16"], + mudshot: ["9M"], + pinmissile: ["9L32"], + poisonjab: ["9M"], + poisonsting: ["9L1"], + poisontail: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + smartstrike: ["9M"], + spikes: ["9M", "9L20"], + spite: ["9M"], + spitup: ["9L40"], + stockpile: ["9L40"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L44"], + toxicspikes: ["9M", "9L36"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M"], + }, + }, + shuckle: { + learnset: { + acid: ["8E", "7E", "6E", "5E"], + acupressure: ["8E", "7E", "6E", "5E", "4E"], + afteryou: ["7T", "6T", "5T"], + ancientpower: ["4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7L1", "7V", "6L1", "5L1", "4L1", "3L28"], + bind: ["7T", "6T", "5T"], + bodyslam: ["8M", "3T"], + bugbite: ["8L30", "7T", "7L42", "6T", "6L42", "5T", "5L49", "4T", "4L40"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + covet: ["8E"], + curse: ["7V"], + defensecurl: ["8E", "7V", "3T"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M", "7L5", "7V", "6L5", "5L7", "5D", "4L9", "3L14", "3S1"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["8E", "7E", "6E", "5E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["8L45", "7T", "7L27", "6T", "6L27", "5T", "5L31", "4T", "4L35"], + guardsplit: ["8L35", "7L45", "6L45", "5L55"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["8E", "7M", "6M"], + irondefense: ["8M"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["7E", "7V", "6E", "5E", "4T", "4E", "3T"], + naturalgift: ["4M"], + powersplit: ["8L35", "7L45", "6L45", "5L55"], + powertrick: ["8L55", "7L31", "6L31", "5L43", "4L48"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L25", "7M", "7L20", "7V", "6M", "6L20", "5M", "5L25", "4M", "4L27", "3M", "3L37"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + rockblast: ["8M", "7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L40", "7M", "7L38", "6M", "6L38", "5M", "5L38", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8L15", "7L23", "6L23", "5L23"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L5", "7L1", "7V", "6L1", "5L37", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L20", "7M", "7L16", "7V", "6M", "6L16", "5M", "5L19", "4M", "4L14", "3M", "3L23"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + shellsmash: ["8L65", "7L34", "6L34", "5L34", "5D"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stickyweb: ["8L50", "7L1", "6L1"], + stoneedge: ["8M", "8L60", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["8L10", "7L12", "6M", "6L12", "5M", "5L1"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T", "3S1"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + toxic: ["8E", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + venoshock: ["8M", "7M", "6M", "5M"], + withdraw: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + wrap: ["8L1", "7L9", "7V", "6L9", "5L13", "4L22", "3L9", "3S0"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["sturdy"], moves: ["constrict", "withdraw", "wrap"], pokeball: "pokeball"}, + {generation: 3, level: 20, abilities: ["sturdy"], moves: ["substitute", "toxic", "sludgebomb", "encore"], pokeball: "pokeball"}, + ], + }, + heracross: { + learnset: { + aerialace: ["9M", "9L15", "8L15", "7M", "7L10", "6M", "6L10", "5M", "5L13", "4M", "4L13"], + armthrust: ["9L1", "7L1", "6L1"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "9L30", "8M", "8L30", "7M", "7L28", "6M", "6L25", "5M", "5L19", "4M", "4L19", "3M", "3L23"], + brutalswing: ["8M", "7M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "7L1", "6L1", "6S0", "6S1"], + captivate: ["4M"], + chipaway: ["7L16", "6L16", "5L16"], + closecombat: ["9M", "9L60", "8M", "8L60", "7L43", "6L34", "6S0", "5L37", "4L37"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["9L25", "8L25", "7L19", "7V", "6L19", "5L25", "4L25", "3T", "3L30"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "6S1", "5M", "4M", "3M"], + endure: ["9M", "9L10", "8M", "8L10", "7L1", "7V", "6L1", "5L1", "4M", "4L1", "3T", "3L11"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], + feint: ["9E", "8E", "7L7", "6L7", "5L49", "4L49"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["9L5", "8L5", "7L25", "7V", "6L7", "5L7", "4L7", "3L17"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + harden: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + hornattack: ["9L20", "8L20", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L6"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lunge: ["9M"], + megahorn: ["9L55", "8M", "8L55", "7L37", "7E", "7V", "6L37", "6E", "6S0", "5L55", "5E", "4L55", "3L53"], + mimic: ["3T"], + naturalgift: ["4M"], + nightslash: ["9E", "8E", "7L1", "6L1", "5L1", "4L1"], + pinmissile: ["9L35", "8M", "8L35", "7L31", "6L31", "6S0", "6S1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "7E", "6E", "5E", "4E"], + reversal: ["9M", "8M", "7L46", "7V", "6L43", "5L43", "4L43", "3L45"], + rockblast: ["9M", "8M", "7E", "6E", "6S1"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["9E", "8E", "7E", "6E", "5E", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + smartstrike: ["9M", "8M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["9M", "9L50", "8M", "8L50", "7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8E", "7L34", "7V", "6L28", "5L31", "4L31", "3L37"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L45", "8L45"], + throatchop: ["9L40", "8M", "8L40", "7T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + vacuumwave: ["9M", "4T"], + venoshock: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 6, level: 50, gender: "F", nature: "Adamant", moves: ["bulletseed", "pinmissile", "closecombat", "megahorn"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Adamant", abilities: ["guts"], moves: ["pinmissile", "bulletseed", "earthquake", "rockblast"], pokeball: "cherishball"}, + ], + }, + sneasel: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L48", "8M", "8L48", "7L20", "7V", "6L20", "5L24", "4L24", "3L36"], + assist: ["7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "7E", "6E", "5E", "4M"], + beatup: ["9L42", "8M", "8L42", "7L28", "7V", "6L28", "5L42", "4L38", "3L57"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublehit: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + faketears: ["9M", "8M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9E", "8E", "7E", "6E", "5E"], + feintattack: ["7L10", "7V", "6L10", "5L14", "4L14", "3L22"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L30", "8L30", "7L16", "7V", "6L16", "5L21", "4L21", "3L29"], + gigaimpact: ["9M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L35"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3T"], + iceshard: ["9E", "8E", "7L47", "7E", "6L47", "6E", "5L51", "5E", "4L49", "4E"], + iciclecrash: ["9E", "8E", "7E", "6E"], + iciclespear: ["9M"], + icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "7V", "6T", "6L14", "5T", "5L28", "4T", "4L28", "3T", "3L43"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L18", "8L18", "7L22", "7V", "6L22", "5L49", "4L42", "3L64"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + punishment: ["7L44", "7E", "6L44", "6E", "5L44", "5E", "4E"], + pursuit: ["7E", "6E", "5E", "4E"], + quickattack: ["9L12", "8L12", "7L8", "7V", "6L8", "5L8", "4L8", "3L8", "3S0"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + screech: ["9L54", "8M", "8L54", "7L32", "7V", "6L32", "5L10", "4L10", "3L15"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L60", "8L60", "7L35", "7V", "6L35", "5L38", "4L35", "3L50"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "7L40", "6T", "6L40", "5T", "5L40", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spite: ["9M", "9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "9L6", "8M", "8L6", "7M", "7L1", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M", "3L1", "3S0"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T", "7E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + waterpulse: ["9M"], + whirlpool: ["8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "leer", "taunt", "quickattack"], pokeball: "pokeball"}, + ], + }, + sneaselhisui: { + learnset: { + acidspray: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L48"], + brickbreak: ["9M", "9L30"], + bulkup: ["9M"], + calmmind: ["9M"], + closecombat: ["9M", "9L60"], + counter: ["9E"], + dig: ["9M"], + doublehit: ["9E"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9E"], + falseswipe: ["9M"], + feint: ["9E"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + honeclaws: ["9L36"], + lashout: ["9M"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M", "9L18"], + nastyplot: ["9M"], + nightslash: ["9E"], + poisonjab: ["9M", "9L24"], + poisontail: ["9M"], + protect: ["9M"], + quickattack: ["9L12"], + quickguard: ["9E"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rocksmash: ["9L1"], + scratch: ["9L1"], + screech: ["9L54"], + shadowball: ["9M"], + shadowclaw: ["9M"], + slash: ["9L42"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + spite: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + switcheroo: ["9E"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L6"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + vacuumwave: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + weavile: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M", "9L1", "8M", "8L1"], + assurance: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["9M", "8M", "4M"], + batonpass: ["9M"], + beatup: ["9L1", "8M", "8L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "8M", "7M", "6M", "6S1", "5M", "4M", "4S0"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "9L66", "8M", "8L66", "7M", "7L47", "6M", "6L47", "5T", "5L51", "4M", "4L49"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fakeout: ["4S0"], + faketears: ["9M", "8M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L10", "6L10", "5L14", "4L14"], + fling: ["9M", "9L42", "8M", "8L42", "7M", "7L28", "6M", "6L28", "5M", "5L42", "4M", "4L38"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["9L30", "8L30", "7L16", "6L16", "5L21", "4L21"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L35"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "6S1", "5T", "4T"], + iceshard: ["9L1", "8L1", "4S0"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "6T", "6L14", "5T", "5L28", "4T", "4L28"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L18", "8L18", "7L22", "6L22", "5L49", "4L42"], + metronome: ["9M"], + mudslap: ["4T"], + nastyplot: ["9M", "9L48", "8M", "8L48", "7L20", "6L20", "5L24", "4L24"], + naturalgift: ["4M"], + nightslash: ["9L60", "8L60", "7L35", "6L35", "6S1", "5L35", "4L35", "4S0"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M"], + punishment: ["7L44", "6L44"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + reversal: ["9M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L54", "8M", "8L54", "7L32", "6L32", "5L10", "4L10"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L1", "8L1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "7L40", "6T", "6L40", "5T", "5L40", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + waterpulse: ["9M"], + whirlpool: ["8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "6S1", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 30, gender: "M", nature: "Jolly", moves: ["fakeout", "iceshard", "nightslash", "brickbreak"], pokeball: "cherishball"}, + {generation: 6, level: 48, gender: "M", perfectIVs: 2, moves: ["nightslash", "icepunch", "brickbreak", "xscissor"], pokeball: "cherishball"}, + ], + }, + sneasler: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L48"], + brickbreak: ["9M", "9L30"], + bulkup: ["9M"], + calmmind: ["9M"], + closecombat: ["9M", "9L60"], + dig: ["9M"], + direclaw: ["9L0"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + firepunch: ["9M"], + fling: ["9M", "9L1"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + honeclaws: ["9L36"], + hyperbeam: ["9M"], + lashout: ["9M"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M", "9L18"], + nastyplot: ["9M"], + poisonjab: ["9M", "9L24"], + poisontail: ["9M"], + protect: ["9M"], + quickattack: ["9L12"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L1"], + rocktomb: ["9M"], + scratch: ["9L1"], + screech: ["9L54"], + shadowball: ["9M"], + shadowclaw: ["9M"], + slash: ["9L42"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + spite: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L6"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + vacuumwave: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + teddiursa: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + babydolleyes: ["9L1", "7L1", "6L1"], + bellydrum: ["9E", "7E", "6E", "5E", "4E"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "9L33", "7L36", "6L36", "5L36", "4L36"], + chipaway: ["7E", "6E", "5E"], + closecombat: ["9M", "9E", "7E", "6E", "5E", "4E"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + crosschop: ["9E", "7E", "6E", "5E", "4E"], + crunch: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9E", "7L1", "7E", "6L1", "6E", "5L1", "5E", "5D", "4L1", "4E", "3L19", "3E"], + feintattack: ["7L15", "7V", "6L15", "5L15", "4L15", "3L25"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L57", "4M", "4L57"], + focusenergy: ["7V"], + focuspunch: ["9M", "7T", "6T", "5D", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9E", "7V", "4T", "3T"], + furyswipes: ["9L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L13"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["7V", "5L1", "4L1", "3L1", "3S0"], + lick: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L7", "3S0", "3S1"], + lowkick: ["9M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7E", "6E", "5E", "4E"], + payback: ["9L13", "7M", "6M", "5M", "4M"], + playnice: ["9L25", "7L25", "6L25"], + playrough: ["9M", "9L29", "7E", "6E"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S1"], + rest: ["9M", "9L37", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L31"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slash: ["9L22", "7L29", "7V", "6L29", "5L29", "4L29", "3L37"], + sleeptalk: ["9M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + smackdown: ["9M"], + snore: ["9L37", "7T", "7L43", "7V", "6T", "6L43", "5T", "5L43", "4T", "4L43", "3T", "3L43"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L17", "7L22", "6L22", "5L22", "4L22"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L41", "7L50", "7V", "6L50", "5L50", "4L50", "3L49"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M"], + workup: ["7M", "5M"], + yawn: ["9E", "7E", "6E", "5E", "4E", "3E"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["pickup"], moves: ["scratch", "leer", "lick"], pokeball: "pokeball"}, + {generation: 3, level: 11, abilities: ["pickup"], moves: ["refresh", "metalclaw", "lick", "return"]}, + ], + encounters: [ + {generation: 2, level: 2}, + ], + }, + ursaring: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "4M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + crunch: ["9M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L19"], + feintattack: ["7L15", "7V", "6L15", "5L15", "4L15", "3L25"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L1"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L64", "7L1", "6L1", "5L67", "4L67"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "9L48"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lick: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["9L13", "7M", "6M", "5M", "4M"], + playnice: ["9L25", "7L25", "6L25"], + playrough: ["9M", "9L29"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L41", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L31"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M", "9L35", "7L38", "6L38", "5L38", "4L38"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slash: ["9L22", "7L29", "7V", "6L29", "5L29", "4L29", "3L37"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["9L41", "7T", "7L49", "7V", "6T", "6L49", "5T", "5L49", "4T", "4L49", "3T", "3L43"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L17", "7L22", "6L22", "5L22", "4L22"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L56", "7L58", "7V", "6L58", "5L58", "4L58", "3L49"], + throatchop: ["7T"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 25}, + ], + }, + ursaluna: { + learnset: { + aerialace: ["9M"], + avalanche: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + covet: ["9L1"], + crunch: ["9M"], + dig: ["9M"], + drainpunch: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M", "9L1"], + firepunch: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + furyswipes: ["9L8"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hammerarm: ["9L64"], + headlongrush: ["9L0"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M", "9L48"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icepunch: ["9M"], + leer: ["9L1"], + lick: ["9L1"], + lowkick: ["9M"], + metalclaw: ["9M"], + metronome: ["9M"], + payback: ["9L13"], + playnice: ["9L25"], + playrough: ["9M", "9L29"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L41"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M", "9L35"], + scratch: ["9L1"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + slash: ["9L22"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snore: ["9L41"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L17"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L56"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + }, + }, + ursalunabloodmoon: { + learnset: { + avalanche: ["9M"], + bellydrum: ["9E"], + bloodmoon: ["9L70", "9S0"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M", "9S0"], + closecombat: ["9E"], + counter: ["9E"], + crosschop: ["9E"], + crunch: ["9M", "9E"], + dig: ["9M"], + doubleedge: ["9E"], + earthpower: ["9M", "9L48", "9S0"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9E"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + furycutter: ["9E"], + furyswipes: ["9L8"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hammerarm: ["9L64"], + harden: ["9L17"], + headlongrush: ["9L1"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icepunch: ["9M"], + leer: ["9L1"], + lick: ["9L1"], + lowkick: ["9M"], + metalclaw: ["9M", "9E"], + moonblast: ["9L56"], + moonlight: ["9L1"], + mudshot: ["9M"], + nightslash: ["9E"], + payback: ["9L13"], + playnice: ["9L25"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L41"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M", "9L35"], + scratch: ["9L1"], + seedbomb: ["9M"], + seismictoss: ["9E"], + shadowclaw: ["9M"], + slash: ["9L22", "9S0"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snarl: ["9M"], + snore: ["9L41"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + vacuumwave: ["9M"], + yawn: ["9E"], + }, + eventData: [ + {generation: 9, level: 70, nature: "Hardy", perfectIVs: 3, moves: ["bloodmoon", "earthpower", "slash", "calmmind"]}, + ], + eventOnly: true, + }, + slugma: { + learnset: { + acidarmor: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L36", "7L36", "7V", "6L32", "5L32", "4L31", "3L29"], + ancientpower: ["9L22", "7L22", "6L22", "5L28", "4T", "4L26"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L41", "7L41", "7V", "6L41", "5L46", "4L46", "3T", "3L50"], + bulldoze: ["9M"], + captivate: ["4M"], + clearsmog: ["9L20", "7L20", "6L20"], + confide: ["7M", "6M"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L50", "7T", "7L50", "7E", "6T", "6L50", "6E", "5T", "5L55", "5E", "4T", "4L56"], + earthquake: ["9M"], + ember: ["9L6", "7L6", "7V", "6L5", "5L5", "5D", "4L8", "3L8"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M"], + flameburst: ["7L27", "6L23", "5L23"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L48", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L50", "4M", "4L53", "3M", "3L36"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + guardswap: ["9E", "7E", "6E"], + harden: ["9L13", "7L13", "7V", "6L13", "5L14", "4L16", "3L22"], + heatcrash: ["9M"], + heatwave: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + incinerate: ["9L27", "7L15", "6M", "6L15", "5M"], + inferno: ["9E", "7E", "6E", "5E", "5D"], + infestation: ["7M", "6M"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + lavaplume: ["9L34", "7L34", "6L34", "5L37", "4L38"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + memento: ["9E", "7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L43", "7L43", "6L19", "5L19", "4L23"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockslide: ["9M", "9L29", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L41", "4M", "4L41", "3T", "3L43"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L8", "7L8", "7V", "6L8", "5L10", "4L11", "3L15"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9E", "7E", "7V", "6E", "5E", "4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + smog: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + smokescreen: ["9E", "7E", "6E", "5E", "4E"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spitup: ["7E", "6E", "5E", "4E"], + stealthrock: ["9M"], + stockpile: ["9E", "7E", "6E", "5E", "4E"], + stoneedge: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["7E", "6E", "5E", "4E"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + }, + }, + magcargo: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L36", "7L36", "7V", "6L32", "5L32", "4L31", "3L29"], + ancientpower: ["9L22", "7L22", "6L22", "5L28", "4T", "4L26"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9L43", "7L43", "7V", "6L43", "5L52", "4L52", "3T", "3L60"], + bulldoze: ["9M", "7M", "6M", "5M"], + burningjealousy: ["9M"], + captivate: ["4M"], + clearsmog: ["9L20", "7L20", "6L20"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L67", "4T", "4L66"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M"], + flameburst: ["7L27", "6L23", "5L23"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L54", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L59", "4M", "4L61", "3M", "3L36", "3S0"], + flareblitz: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], + harden: ["9L13", "7L13", "7V", "6L13", "5L14", "4L16", "3L22"], + heatcrash: ["9M"], + heatwave: ["9M", "7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["9L27", "7L15", "6M", "6L15", "5M"], + infestation: ["7M", "6M"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + lavaplume: ["9L34", "7L34", "6L34", "5L37", "4L40"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L47", "7L47", "6L19", "5L19", "4L23"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L29", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L44", "4M", "4L45", "3T", "3L48"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + shellsmash: ["9L0", "7L1", "6L38", "5L38"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + smog: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 3, level: 38, moves: ["refresh", "heatwave", "earthquake", "flamethrower"]}, + ], + encounters: [ + {generation: 3, level: 25}, + {generation: 6, level: 30}, + ], + }, + swinub: { + learnset: { + amnesia: ["9M", "9L35", "8M", "8L35", "7L48", "7V", "6L48", "5L49", "4L49", "3L55"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4T", "4E", "3E", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "7E", "6E", "5E"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "9L50", "8M", "8L50", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L46"], + bodyslam: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "3S0"], + confide: ["7M", "6M"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L45", "8M", "8L45", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "9L25", "8M", "8L25", "7L14", "7V", "6L14", "5L16", "4M", "4L16", "3T", "3L19"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9E", "8E", "7E", "6E", "5E", "4E"], + flail: ["9L10", "8L10", "7L40", "6L40", "5L40"], + freezedry: ["9E", "8E", "7E", "6E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M"], + iceshard: ["9L15", "8L15", "7L24", "6L24", "5L28", "4L28"], + iciclecrash: ["9E", "8E", "7E", "6E", "5E"], + iciclespear: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["9M", "9L30", "8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L25", "4T", "4L25", "3T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mist: ["9L20", "8L20", "7L35", "7V", "6L35", "5L40", "4L40", "3L37", "3S0"], + mudbomb: ["7L18", "6L18", "5L20", "4L20"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E", "3E", "3S0"], + mudslap: ["9M", "9L1", "8L1", "7L11", "7V", "6L11", "5L13", "4T", "4L13", "3T"], + mudsport: ["7L5", "6L5", "5L4", "4L4"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + powdersnow: ["9L5", "8L5", "7L8", "7V", "6L8", "5L8", "4L8", "3L10"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L40", "8L40", "7L28", "7E", "7V", "6L28", "6E", "5L32", "5E", "4L32", "4E", "3L28", "3E"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + }, + eventData: [ + {generation: 3, level: 22, abilities: ["oblivious"], moves: ["charm", "ancientpower", "mist", "mudshot"]}, + ], + }, + piloswine: { + learnset: { + amnesia: ["9M", "9L37", "8M", "8L37", "7L58", "7V", "6L58", "5L65", "4L65", "3L70"], + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "9L58", "8M", "8L58", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L56", "4M", "4L56", "3M", "3L56"], + bodyslam: ["9M", "8M", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L51", "8M", "8L51", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L40", "4M", "4L40", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "9L25", "8M", "8L25", "7L14", "7V", "6L14", "5L16", "4M", "4L16", "3T", "3L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["7L1", "7V", "6L33", "5L33", "4L33", "3L33"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + hornattack: ["3L1"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L0", "8M", "8L0", "7L24", "6L24", "5L28", "4L28"], + iceshard: ["9L15", "8L15"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L30", "8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L25", "4T", "4L25", "3T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mist: ["9L20", "8L20", "7L37", "7V", "6L37", "5L48", "4L48", "3L42"], + mudbomb: ["7L18", "6L18", "5L20", "4L20"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L11", "7V", "6L11", "5L13", "4T", "4L13", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + peck: ["7L1", "6L1", "5L1", "4L1"], + powdersnow: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9L44", "8L44", "7L28", "7V", "6L28", "5L32", "4L32", "3L28"], + terablast: ["9M"], + thrash: ["9L65", "8L65", "7L41", "6L41", "5L41"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + mamoswine: { + learnset: { + amnesia: ["9M", "9L37", "8M", "8L37"], + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "9L58", "8M", "8L58", "7M", "7L52", "6M", "6L52", "5M", "5L56", "4M", "4L56"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doublehit: ["9L0", "8L0", "7L33", "6L33", "5L33", "5S0", "4L33"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L51", "8M", "8L51", "7M", "7L46", "6M", "6L46", "6S1", "5M", "5L40", "4M", "4L40"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "9L25", "8M", "8L25", "7L14", "6L14", "5L16", "4M", "4L16"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flail: ["9L1", "8L1"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L1"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "7L21", "6M", "6L21", "5M", "5L25", "5S0", "4M", "4L25"], + haze: ["9M"], + headbutt: ["4T"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "8M", "8L1", "7L24", "6L24", "5L28", "5S0", "4L28"], + iceshard: ["9L15", "8L15"], + iciclecrash: ["6S1"], + iciclespear: ["9M", "8M", "6S1"], + icywind: ["9M", "9L30", "8M", "8L30", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + mist: ["9L20", "8L20", "7L37", "6L37", "5L48", "4L48"], + mudbomb: ["7L18", "6L18", "5L20", "4L20"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L11", "6L11", "5L13", "4T", "4L13"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1"], + peck: ["7L1", "6L1", "5L1", "4L1"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M", "8M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "6S1", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "8M", "7L1", "6L1", "5L65", "4L65"], + secretpower: ["6M", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9L44", "8L44", "7L28", "6L28", "5L32", "5S0", "4L32"], + terablast: ["9M"], + thrash: ["9L65", "8L65", "7L41", "6L41", "5L41"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + }, + eventData: [ + {generation: 5, level: 34, gender: "M", isHidden: true, moves: ["hail", "icefang", "takedown", "doublehit"]}, + {generation: 6, level: 50, shiny: true, gender: "M", nature: "Adamant", isHidden: true, moves: ["iciclespear", "earthquake", "iciclecrash", "rockslide"], pokeball: "pokeball"}, + ], + }, + corsola: { + learnset: { + amnesia: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + ancientpower: ["8L20", "7L17", "7V", "6L17", "5L32", "4T", "4L32", "3L45"], + aquaring: ["8L10", "7L38", "7E", "6L38", "6E", "5L37", "5E", "4L37", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "6E", "5E", "4E", "3E"], + bide: ["7E", "6E", "5E"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brine: ["8M", "7L27", "6L27", "4M"], + bubble: ["7L4", "7V", "6L4", "5L8", "5D", "4L8", "3L12"], + bubblebeam: ["8L25", "7L10", "7V", "6L10", "5L25", "4L25", "3L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + camouflage: ["7E", "6E"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E"], + defensecurl: ["7V", "3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L45", "7T", "7L47", "6T", "6L47", "5T", "5L53", "4T", "4L53"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "8L15", "7L35", "7V", "6L35", "5L35", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L50", "6L50", "5L52"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "7L1", "7V", "6L1", "5L4", "4L4", "3L6"], + headbutt: ["7V", "4T"], + headsmash: ["8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + iciclespear: ["8M", "7E", "6E", "5E", "4E", "3E"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + ingrain: ["7E", "6E", "5E", "4E", "3E"], + irondefense: ["8M", "7T", "7L29", "6T", "6L29", "5T", "5L29"], + lifedew: ["8L35"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + liquidation: ["8M", "7T", "7E"], + luckychant: ["7L23", "6L23", "5L28", "4L28"], + magiccoat: ["7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["3T"], + mirrorcoat: ["8L55", "7L45", "7V", "6L45", "5L48", "4L48", "3L39"], + mist: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["3S0"], + naturalgift: ["4M"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], + powergem: ["8M", "8L40", "7L41", "7S1", "6L41", "5L44", "4L44"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L50", "7L8", "7V", "6L8", "5L13", "4L13", "3L17"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L13", "6L13", "5L16", "4L16", "3L17"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "7L31", "6L31", "5L20", "4L20", "3L34"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikecannon: ["7L20", "7V", "6L20", "5L40", "4L40", "3L28"], + stealthrock: ["8M", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "7V", "7S1", "6L1", "5L1", "4L1", "3L1", "3S0"], + throatchop: ["8M", "7T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L5"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["tackle", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 7, level: 50, gender: "F", nature: "Serious", abilities: ["hustle"], moves: ["tackle", "powergem"], pokeball: "ultraball"}, + ], + }, + corsolagalar: { + learnset: { + amnesia: ["8M"], + ancientpower: ["8L20"], + astonish: ["8L5", "8S0"], + attract: ["8M"], + blizzard: ["8M"], + bodyslam: ["8M"], + brine: ["8M"], + bulldoze: ["8M"], + calmmind: ["8M"], + confuseray: ["8E"], + curse: ["8L30"], + destinybond: ["8E"], + dig: ["8M"], + disable: ["8L10", "8S0"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + grudge: ["8L50"], + hail: ["8M"], + harden: ["8L1"], + haze: ["8E"], + headsmash: ["8E"], + hex: ["8M", "8L25"], + hydropump: ["8M"], + icebeam: ["8M"], + iciclespear: ["8M"], + icywind: ["8M"], + irondefense: ["8M"], + lightscreen: ["8M"], + liquidation: ["8M"], + meteorbeam: ["8T"], + mirrorcoat: ["8L55"], + naturepower: ["8E"], + nightshade: ["8L45"], + powergem: ["8M", "8L40"], + protect: ["8M"], + psychic: ["8M"], + raindance: ["8M"], + reflect: ["8M"], + rest: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + scald: ["8M"], + screech: ["8M"], + selfdestruct: ["8M"], + shadowball: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + spite: ["8L15", "8S0"], + stealthrock: ["8M"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + strengthsap: ["8L35"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + tackle: ["8L1", "8S0"], + throatchop: ["8M"], + waterpulse: ["8E"], + whirlpool: ["8M"], + willowisp: ["8M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["tackle", "astonish", "disable", "spite"], pokeball: "cherishball"}, + ], + }, + cursola: { + learnset: { + amnesia: ["8M"], + ancientpower: ["8L20"], + astonish: ["8L1"], + attract: ["8M"], + blizzard: ["8M"], + bodyslam: ["8M"], + brine: ["8M"], + bulldoze: ["8M"], + burningjealousy: ["8T"], + calmmind: ["8M"], + curse: ["8L30"], + dig: ["8M"], + disable: ["8L1"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + grudge: ["8L50"], + hail: ["8M"], + harden: ["8L1"], + hex: ["8M", "8L25"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icebeam: ["8M"], + iciclespear: ["8M"], + icywind: ["8M"], + irondefense: ["8M"], + leechlife: ["8M"], + lightscreen: ["8M"], + liquidation: ["8M"], + meteorbeam: ["8T"], + mirrorcoat: ["8L55"], + nightshade: ["8L45"], + perishsong: ["8L1"], + pinmissile: ["8M"], + poltergeist: ["8T"], + powergem: ["8M", "8L40"], + protect: ["8M"], + psychic: ["8M"], + raindance: ["8M"], + reflect: ["8M"], + rest: ["8M"], + revenge: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + scald: ["8M"], + screech: ["8M"], + selfdestruct: ["8M"], + shadowball: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + spite: ["8L15"], + stealthrock: ["8M"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + strengthsap: ["8L35"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + tackle: ["8L1"], + throatchop: ["8M"], + whirlpool: ["8M"], + willowisp: ["8M"], + }, + }, + remoraid: { + learnset: { + acidspray: ["8E", "7E", "6E", "5E"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L16", "7L14", "7E", "7V", "6L14", "6E", "5L14", "5E", "4L14", "4E", "3L22", "3E"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "5D", "4M"], + bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L19", "4L19", "3L22"], + bulletseed: ["8M", "8L28", "7L38", "6L38", "5L27", "4M", "4L27"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + entrainment: ["7E", "6E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "6E", "5E", "4E"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M", "8L8", "7L22", "7V", "6L22", "5L23", "4L23", "3L33"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + helpinghand: ["8M", "8L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L36", "7L42", "6L42", "5L42"], + hyperbeam: ["8M", "8L44", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L45", "4M", "4L45", "3M", "3L55"], + icebeam: ["8M", "8L32", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L40", "4M", "4L40", "3M", "3L44"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + lockon: ["8L24", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L11"], + mimic: ["3T"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + octazooka: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L12", "7L10", "7V", "6L10", "5L10", "4L10", "3L22"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "7E", "6E", "5E", "5D", "4E", "3E"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + signalbeam: ["7T", "7L30", "6T", "6L30", "5T", "5L36", "4T", "4L36"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + soak: ["8L40", "7L50", "6L50", "5L49"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7E", "7V", "6E", "5E", "4T", "3T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L4", "7T", "7L26", "7E", "6T", "6L26", "6E", "5L32", "5E", "4M", "4L32", "3M"], + waterspout: ["8E", "7E", "6E", "5E", "4E"], + whirlpool: ["8M", "7V", "4M"], + }, + }, + octillery: { + learnset: { + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L16", "7L1", "7V", "6L1", "5L1", "4L1", "3L22"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "4M"], + bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L19", "4L19", "3L22"], + bulletseed: ["8M", "8L30", "7L46", "6L46", "5L29", "4M", "4L29", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L1", "5L1", "4L1", "3L11"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "7L22", "7V", "6L22", "5L23", "4L23", "3L38"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gunkshot: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + helpinghand: ["8M", "8L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L42", "7L52", "6L52", "5L52"], + hyperbeam: ["8M", "8L54", "7M", "7L58", "7V", "6M", "6L58", "5M", "5L55", "4M", "4L55", "4S0", "3M", "3L70"], + icebeam: ["8M", "8L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L48", "4M", "4L48", "4S0", "3M", "3L54"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + liquidation: ["8M"], + lockon: ["8L24"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + octazooka: ["8L0", "7L1", "7V", "6L25", "5L25", "4L25", "4S0", "3L25"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L22"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L42", "4T", "4L42", "4S0"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8L48", "7L64", "6L64", "5L61"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L1", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wrap: ["8L1"], + wringout: ["7L28", "6L28", "5L36", "4L36"], + }, + eventData: [ + {generation: 4, level: 50, gender: "F", nature: "Serious", abilities: ["suctioncups"], moves: ["octazooka", "icebeam", "signalbeam", "hyperbeam"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 19}, + {generation: 7, level: 10}, + ], + }, + delibird: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + auroraveil: ["9E", "8E", "7M"], + avalanche: ["9M", "8M", "4M"], + batonpass: ["9M", "8M"], + bestow: ["7E", "6E", "5E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bravebird: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "3T"], + curse: ["7V"], + defog: ["7T", "4M"], + destinybond: ["9E", "8E", "7E", "6E"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["9L25", "8L25", "7L25"], + drillrun: ["9M", "8M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + focuspunch: ["9M", "7T", "6T", "5D", "4M", "3M"], + foulplay: ["9M"], + freezedry: ["9E", "8E", "7E", "6E"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + happyhour: ["6S1"], + haze: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + iceball: ["7E", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + iceshard: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "3T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + memento: ["9E", "8E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + poweruppunch: ["6M"], + present: ["9L1", "8L1", "7L1", "7V", "6L1", "6S1", "5L1", "5D", "4L1", "3L1", "3S0"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["7T", "6T", "5T", "4T", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "3T"], + snowscape: ["9M"], + spikes: ["9M", "8M", "7E", "6E"], + splash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + steelwing: ["8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["present"], pokeball: "pokeball"}, + {generation: 6, level: 10, abilities: ["vitalspirit"], moves: ["present", "happyhour"], pokeball: "cherishball"}, + ], + }, + mantyke: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "8L20", "7L32", "6L32", "5L19", "4L19"], + aircutter: ["4T"], + airslash: ["8M", "8L32", "7L36", "6L36", "5L36"], + amnesia: ["8M", "7E", "6E", "5E"], + aquaring: ["8L36", "7L39", "6L39", "5L46", "4L46"], + attract: ["8M", "7M", "6M", "5M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bounce: ["8M", "8L40", "7T", "7L46", "6T", "6L46", "5T", "5L40", "4T", "4L40"], + bubble: ["7L1", "6L1", "5L1", "4L1"], + bubblebeam: ["8L24", "7L7", "6L7", "5L10", "4L10"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7L11", "6L11", "5L37", "4L37"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + haze: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8L28", "7L16", "6L16", "5L13", "4T", "4L13"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["8M", "8L48", "7L49", "7E", "6L49", "6E", "5L49", "5E", "4L49", "4E"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + mudsport: ["7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4E"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + slam: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + splash: ["8E", "7E", "6E", "5E", "4E"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + supersonic: ["8L4", "7L3", "6L3", "5L4", "4L4"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["8E", "7T", "7E", "6E"], + takedown: ["8L44", "7L27", "6L27", "5L31", "4L31"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["8E", "7E", "6E", "5E", "4E"], + waterfall: ["8M", "7M", "6M", "5M", "4M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L28", "4M", "4L28"], + watersport: ["7E", "6E", "5E", "4E"], + whirlpool: ["8M", "4M"], + wideguard: ["8L16", "7L23", "7E", "6L23", "6E", "5L23", "5E"], + wingattack: ["8L8", "7L14", "6L14", "5L22", "4L22"], + }, + }, + mantine: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L20", "7L32", "7V", "6L32", "5L19", "4L19", "3L29"], + aircutter: ["5D", "4T"], + airslash: ["8M", "8L32", "7L36", "6L36", "5L36"], + amnesia: ["8M", "7E", "6E", "5E"], + aquaring: ["8L36", "7L39", "6L39", "5L46", "4L46"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L40", "7T", "7L46", "6T", "6L46", "5T", "5L40", "4T", "4L40"], + brine: ["8M", "4M"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + bubblebeam: ["8L24", "7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "8L1", "7L1", "6L1", "5L1", "4M", "4L1"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7L11", "7V", "6L11", "5L37", "4L37", "3L50"], + curse: ["7V"], + defog: ["7T", "4M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8L28", "7L16", "7V", "6L16", "5L13", "4T", "4L13"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hydropump: ["8M", "8L48", "7L49", "7E", "7V", "6L49", "6E", "5L49", "5E", "4L49", "4E", "3E"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + liquidation: ["8M", "7T"], + mimic: ["3T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "5D", "4E"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3E"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + roost: ["8L1", "7M", "7L1"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + signalbeam: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + slam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + splash: ["8E", "7E", "6E", "5E", "4E"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L8", "3S0"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwind: ["8E", "7T", "6T", "5T", "4T"], + takedown: ["8L44", "7L27", "7V", "6L27", "5L31", "4L31", "3L22"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L28", "4M", "4L28", "3M", "3L43"], + watersport: ["7E", "6E", "5E", "4E"], + whirlpool: ["8M", "7V", "4M"], + wideguard: ["8L16", "7L23", "7E", "6L23", "6E", "5L23", "5E"], + wingattack: ["8L1", "7L14", "7V", "6L14", "5L22", "4L22", "3L36"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "bubble", "supersonic"], pokeball: "pokeball"}, + ], + }, + skarmory: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L16", "7L31", "7V", "6L12", "5L12", "4L12", "3L16"], + aircutter: ["8E", "7L12", "6L12", "5L23", "4T", "4L23", "3L29"], + airslash: ["8M", "7L45", "6L42", "5L42", "4L39"], + assurance: ["8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["8L32", "7L50", "6L39", "5L39"], + bodypress: ["8M"], + bravebird: ["8M", "8L52", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8L36", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + dualwingbeat: ["8T"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8E", "7L20", "6L20", "5L20", "4L20"], + flash: ["6M", "5M", "4M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L8", "7L17", "7V", "6L17", "5L17", "4L17", "3L26"], + furycutter: ["4T"], + guardswap: ["8M", "7E", "6E", "5E", "4E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + irondefense: ["8M", "8L48", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + metalclaw: ["8L12", "7L9", "6L9"], + metalsound: ["8L40", "7L42", "6L31", "5L31", "4L31", "3L45"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["8E", "7L53", "6L50", "5L50", "4L45"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + peck: ["8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + pluck: ["5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + roost: ["8E", "7M", "6M", "5T", "5D", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L4", "7L6", "7V", "6L6", "5L6", "4L6", "3L10"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + skydrop: ["7M", "6M", "5M"], + slash: ["8L24", "7L39", "6L39", "5L45", "4L42"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["8M", "8L44", "7L28", "6L28", "5L28", "4L27", "3L42"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + steelbeam: ["8T"], + steelwing: ["8M", "8L28", "7M", "7L34", "7V", "6M", "6L34", "5L34", "4M", "4L34", "3M", "3L32"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7L23", "7V", "6L9", "5L9", "4T", "4L9", "3T", "3L13"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + tailwind: ["7T", "6T", "5T", "4T"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["8L20"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + houndour: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["9L25", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L27", "4E", "3E"], + bite: ["9L16", "7L16", "7V", "6L16", "5L16", "4L17", "3L25"], + bodyslam: ["9M", "3T"], + burningjealousy: ["9M"], + captivate: ["4M"], + charm: ["3S1"], + comeuppance: ["9L37"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crunch: ["9M", "9L49", "7L49", "7V", "6L49", "5L49", "4L48", "3L49"], + curse: ["7V"], + darkpulse: ["9M", "7M", "6M", "5T", "5D", "4M"], + destinybond: ["9E", "7E", "6E"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L40"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9E", "7E", "6E", "5E", "5D", "4E"], + feintattack: ["7L32", "7V", "6L32", "5L32", "4L35", "3L37", "3S1"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L28", "7L28", "7E", "6L28", "6E", "5L28", "5E", "4L30", "4E"], + firespin: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L44", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L43", "3M", "3L43"], + flareblitz: ["9M"], + foulplay: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L4", "7L4", "6L4", "5L4", "5D", "4L4", "3L7", "3S0"], + hypervoice: ["9M", "7T", "6T", "5T"], + incinerate: ["9L20", "6M", "5M"], + inferno: ["9L56", "7L56", "6L56", "5L56"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + lashout: ["9M"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M", "9L52", "7L52", "7E", "6L52", "6E", "5L52", "5E", "4L53", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + odorsleuth: ["7L20", "6L20", "5L20", "4L22", "3L31"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + punishment: ["7E", "6E", "5E", "4E"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + roar: ["9M", "9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19", "3S1"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + smog: ["9L8", "7L8", "7V", "6L8", "5L8", "4L9", "3L13"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9M", "9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "7E", "6E", "5E", "4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9E", "7E", "6E", "5E", "4E"], + torment: ["9L32", "7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["leer", "ember", "howl"], pokeball: "pokeball"}, + {generation: 3, level: 17, moves: ["charm", "feintattack", "ember", "roar"]}, + ], + }, + houndoom: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["9L26", "7L26", "6L26", "5L26", "4L28"], + bite: ["9L16", "7L16", "7V", "6L16", "5L16", "4L17", "3L27"], + bodyslam: ["9M", "3T"], + burningjealousy: ["9M"], + captivate: ["4M"], + comeuppance: ["9L41"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["9M", "9L56", "7L56", "7V", "6L56", "5L56", "4L54", "3L59"], + curse: ["7V"], + darkpulse: ["9M", "7M", "6M", "6S0", "5T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L44"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L35", "7V", "6L35", "5L35", "4L38", "3L43"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L30", "7L30", "6L30", "5L30", "4L32"], + firespin: ["9M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L50", "7M", "7L50", "7V", "6M", "6L50", "6S0", "5M", "5L50", "4M", "4L48", "3M", "3L51"], + flareblitz: ["9M"], + foulplay: ["9M", "9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + incinerate: ["9L20", "6M", "5M"], + inferno: ["9L62", "7L1", "6L1", "5L65"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lashout: ["9M"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "7L1", "6L1", "5L60", "4L60"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + odorsleuth: ["7L20", "6L20", "5L20", "4L22", "3L35"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["9M", "9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + smog: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["9L35", "7M", "6M", "5M", "4M", "3M"], + toxic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Timid", abilities: ["flashfire"], moves: ["flamethrower", "darkpulse", "solarbeam", "sludgebomb"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + phanpy: { + learnset: { + ancientpower: ["9E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + bulldoze: ["9M", "9L15", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + curse: ["7V"], + defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L9"], + dig: ["9M"], + doubleedge: ["9L42", "7L42", "7V", "6L42", "5L42", "4L42", "3T", "3L49"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + endure: ["9M", "9L19", "7L19", "7V", "6L19", "5L28", "4M", "4L28", "3T", "3L41"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9E", "7E", "6E", "5E", "4E", "3E"], + flail: ["9L6", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L17"], + focusenergy: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + headsmash: ["9E", "7E", "6E", "5E", "4E"], + heavyslam: ["9M", "9E", "7E", "6E", "5E", "5D"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "9E", "7E"], + hypervoice: ["9M", "7T", "6T", "5T"], + iceshard: ["9E", "7E", "6E", "5E", "4E"], + ironhead: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4L37"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7E", "7V", "6E", "5E", "4T", "3T"], + naturalgift: ["7L15", "6L15", "5L19", "4M", "4L19"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + playrough: ["9M", "9E", "7E", "6E"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L33"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "5D", "4T"], + slam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + snore: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L28", "7L28", "7V", "6L10", "5L10", "4L10", "3L25"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + watergun: ["7V"], + }, + encounters: [ + {generation: 2, level: 2}, + ], + }, + donphan: { + learnset: { + ancientpower: ["4T"], + assurance: ["9L15", "7L15", "6L15", "5L31", "4L31"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bounce: ["7T", "6T", "5T", "4T"], + brutalswing: ["7M"], + bulldoze: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L9"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L43", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L46", "4M", "4L46", "3M", "3L49"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + flail: ["7V", "4L1", "3L17"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["9L0", "7L1", "7V", "6L25", "5L25", "4L25", "3L25"], + gigaimpact: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L54", "4M", "4L54"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hornattack: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M"], + icespinner: ["9M"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + knockoff: ["9M", "9L19", "7T", "7L19", "6T", "6L10", "5T", "5L10", "4T", "4L10"], + lastresort: ["7T", "6T", "5T"], + magnitude: ["7L30", "6L19", "5L19", "4L19"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["3L1"], + playrough: ["9M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rapidspin: ["9L6", "7L6", "7V", "6L6", "5L6", "4L6", "3L41"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L33"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], + scaryface: ["9M", "9L37", "7L37", "6L37", "5L39", "4L39"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + slam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + smartstrike: ["9M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "9L30", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + }, + encounters: [ + {generation: 6, level: 24, maxEggMoves: 1}, + ], + }, + stantler: { + learnset: { + agility: ["9M"], + astonish: ["9L7", "7L7", "6L7", "5L7", "4L7", "3L11"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "3T"], + bounce: ["7T", "6T", "5T", "4T"], + bulldoze: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "9L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L47"], + captivate: ["7L50", "6L50", "5L53", "4M", "4L49"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L23", "7L23", "7V", "6L23", "5L23", "4L23", "3L41"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M"], + disable: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + doubleedge: ["9L55", "3T"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + earthpower: ["9M"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + extrasensory: ["9E", "7E", "6E", "5E", "4E", "3E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hypnosis: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L17"], + imprison: ["9M", "9L49", "7L49", "6L49", "5L49", "4L43"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + jumpkick: ["7L43", "6L43", "5L43"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["9L3", "7L3", "7V", "6L3", "5L3", "4L3", "3L7", "3S0"], + lightscreen: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + lunge: ["9M"], + magicroom: ["7T", "6T", "5T"], + mefirst: ["7L1", "7E", "6L1", "6E", "5L55", "5E", "4L53"], + megahorn: ["9E", "7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshieldbash: ["9E"], + psyshock: ["9M", "7M", "6M", "5M"], + rage: ["7E", "6E", "5E"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["9L32", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L31"], + round: ["7M", "6M", "5M"], + sandattack: ["9L16", "7L16", "7V", "6L16", "5L16", "4L16", "3L27"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "6T", "5T", "5D", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9M", "9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + stomp: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + takedown: ["9M", "9L21", "7L21", "7V", "6L21", "5L21", "4L21", "3L37"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9E", "7E", "6E", "5E", "4E"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + wildcharge: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["9M", "9L37", "7T", "7L38", "7E", "6T", "6L38", "6E", "5T", "5L38", "5E", "4T", "4L38", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["intimidate"], moves: ["tackle", "leer"], pokeball: "pokeball"}, + ], + }, + wyrdeer: { + learnset: { + agility: ["9M"], + astonish: ["9L7"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M", "9L27"], + chargebeam: ["9M"], + confuseray: ["9M", "9L23"], + dig: ["9M"], + doubleedge: ["9L55"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9L10"], + imprison: ["9M", "9L49"], + leer: ["9L3"], + lightscreen: ["9M"], + lunge: ["9M"], + megahorn: ["9L62"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psyshieldbash: ["9L0"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + roleplay: ["9L32"], + sandattack: ["9L16"], + scaryface: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stomp: ["9L13"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L21"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M", "9L37"], + }, + }, + smeargle: { + learnset: { + captivate: ["5D"], + falseswipe: ["5S1"], + flamethrower: ["6S2"], + furyswipes: ["6S2"], + meanlook: ["5S1"], + odorsleuth: ["5S1"], + seismictoss: ["6S2"], + sketch: ["7L1", "7V", "6L1", "6S2", "5L1", "5D", "4L1", "3L1", "3S0"], + sleeptalk: ["5D"], + spore: ["5S1"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["owntempo"], moves: ["sketch"], pokeball: "pokeball"}, + {generation: 5, level: 50, gender: "F", nature: "Jolly", ivs: {atk: 31, spe: 31}, abilities: ["technician"], moves: ["falseswipe", "spore", "odorsleuth", "meanlook"], pokeball: "cherishball"}, + {generation: 6, level: 40, gender: "M", nature: "Jolly", abilities: ["owntempo"], moves: ["sketch", "furyswipes", "seismictoss", "flamethrower"], pokeball: "cherishball"}, + ], + }, + miltank: { + learnset: { + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + belch: ["8E", "7E", "6E"], + bide: ["7L15", "7V", "6L15", "5L15", "4L15", "3L26"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L40", "7L24", "7V", "6L24", "5L24", "4L24", "3T", "3L43"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + charm: ["8M", "8L50"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + defensecurl: ["8L10", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3T", "3L8"], + dizzypunch: ["7E", "6E", "5E", "4E"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["8E", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L3", "7V", "6L3", "5L3", "4L3", "3L4"], + gyroball: ["8M", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8L25", "7V", "4T"], + healbell: ["8L20", "7T", "7L48", "7V", "6T", "6L48", "5T", "5L48", "4T", "4L48", "3L53"], + heartstamp: ["7E", "6E", "5E"], + heavyslam: ["8M"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M", "8L55"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "3T"], + milkdrink: ["8L35", "7L11", "7V", "6L11", "6S0", "5L11", "4L11", "3L19"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + playrough: ["8M", "8L45"], + poweruppunch: ["6M"], + present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + punishment: ["7E", "6E", "5E", "4E"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L5", "7L19", "7V", "6L19", "6S0", "5L19", "4T", "4L19", "3T", "3L34"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stomp: ["8L15", "7L8", "7V", "6L8", "6S0", "5L8", "4L8", "3L13"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wakeupslap: ["7L50", "6L50", "5L55", "4L55"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "8L30", "7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + }, + eventData: [ + {generation: 6, level: 20, perfectIVs: 3, abilities: ["scrappy"], moves: ["rollout", "attract", "stomp", "milkdrink"], pokeball: "cherishball"}, + ], + }, + raikou: { + learnset: { + agility: ["8M"], + aurasphere: ["8M", "4S3"], + bite: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L18", "7M", "7L78", "7S7", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + charge: ["8L1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42", "7L43", "7V", "7S5", "7S6", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + discharge: ["8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + electricterrain: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L48", "7L1", "7S7", "6L1", "5L64", "4L64"], + extremespeed: ["8L1", "8S8", "4S3"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["8L36", "8S8"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quash: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + raindance: ["8M", "8L66", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M"], + reflect: ["8M", "8L60", "7M", "7L36", "7V", "7S5", "7S6", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spark: ["8L6", "7L29", "7V", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + throatchop: ["8M", "7T"], + thunder: ["8M", "8L72", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L71", "3M", "3L71"], + thunderbolt: ["8M", "8S8", "7M", "7S7", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "8L30", "7L50", "7S5", "7S6", "6L50", "6S4", "5L50", "4L50"], + thundershock: ["8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["8M", "7M", "7S7", "6M", "5M"], + weatherball: ["8M", "8S8", "4S3"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L78", "7V", "4S3"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["thundershock", "roar", "quickattack", "spark"]}, + {generation: 3, level: 70, moves: ["quickattack", "spark", "reflect", "crunch"], pokeball: "pokeball"}, + {generation: 4, level: 40, shiny: 1, moves: ["roar", "quickattack", "spark", "reflect"]}, + {generation: 4, level: 30, shiny: true, nature: "Rash", moves: ["zapcannon", "aurasphere", "extremespeed", "weatherball"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["spark", "reflect", "crunch", "thunderfang"]}, + {generation: 7, level: 60, shiny: 1, moves: ["reflect", "crunch", "thunderfang", "discharge"]}, + {generation: 7, level: 60, moves: ["reflect", "crunch", "thunderfang", "discharge"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["thunderbolt", "voltswitch", "extrasensory", "calmmind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["thunderbolt", "howl", "extremespeed", "weatherball"]}, + ], + encounters: [ + {generation: 2, level: 40}, + {generation: 3, level: 40}, + ], + eventOnly: true, + }, + entei: { + learnset: { + agility: ["8M"], + bite: ["8L12", "7L1", "7V", "7S5", "7S6", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L18", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42", "8S8"], + crushclaw: ["4S3"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], + endure: ["8M", "7V", "4M", "3T"], + eruption: ["8L78", "7L1", "6L1", "5L85", "4L85"], + extrasensory: ["8L48", "7L1", "6L1", "5L64", "4L64"], + extremespeed: ["8L1", "8S8", "4S3"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L72", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L71"], + firefang: ["8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], + firespin: ["8M", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + flamecharge: ["7M", "7S7", "6M", "5M"], + flamethrower: ["8M", "8S8", "7M", "7L36", "7V", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], + flamewheel: ["8L6"], + flareblitz: ["8M", "4S3"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["4S3"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "7T", "7S7", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lavaplume: ["8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quash: ["7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sacredfire: ["8L1", "7L1", "7S7", "6L1"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L36", "8S8"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L1"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + stomp: ["8L1", "7L29", "7V", "7S5", "7S6", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "7S7", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L66", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["8L60", "7M", "7L43", "7V", "7S5", "7S6", "6M", "6L43", "6S4", "5M", "5L43", "4M", "4L43", "3T", "3L61", "3S1"], + swift: ["8M", "7V", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["ember", "roar", "firespin", "stomp"]}, + {generation: 3, level: 70, moves: ["firespin", "stomp", "flamethrower", "swagger"], pokeball: "pokeball"}, + {generation: 4, level: 40, shiny: 1, moves: ["roar", "firespin", "stomp", "flamethrower"]}, + {generation: 4, level: 30, shiny: true, nature: "Adamant", moves: ["flareblitz", "howl", "extremespeed", "crushclaw"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["stomp", "flamethrower", "swagger", "firefang"]}, + {generation: 7, level: 60, shiny: 1, moves: ["stomp", "bite", "swagger", "lavaplume"]}, + {generation: 7, level: 60, moves: ["stomp", "bite", "swagger", "lavaplume"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["sacredfire", "stoneedge", "ironhead", "flamecharge"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["flamethrower", "scaryface", "extremespeed", "crunch"]}, + ], + encounters: [ + {generation: 2, level: 40}, + {generation: 3, level: 40}, + ], + eventOnly: true, + }, + suicune: { + learnset: { + agility: ["8M"], + airslash: ["8M", "4S3"], + aquaring: ["4S3"], + aurorabeam: ["7L29", "7V", "7S5", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + avalanche: ["8M", "4M"], + bite: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["8M", "8L78", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L85", "3M"], + bodyslam: ["8M", "3T"], + brine: ["8M", "4M"], + bubblebeam: ["7L1", "7V", "7S5", "6L8", "5L8", "4L8", "3L11", "3S0"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L18", "8S6", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L48", "8S6", "7L64", "6L1", "5L64", "4L64"], + extremespeed: ["8L1", "8S6", "4S3"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L72", "7L71", "7V", "6L1", "5L71", "4L71", "3L71"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8S6"], + mimic: ["3T"], + mirrorcoat: ["8L60", "7L43", "7V", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], + mist: ["8L1", "7L36", "7V", "7S5", "6L36", "6S4", "5L36", "4L36", "4S2", "3L51", "3S1"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quash: ["7M", "6M", "5M"], + raindance: ["8M", "8L66", "7M", "7L1", "7V", "7S5", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["8L24", "7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sheercold: ["8L1", "7L1", "4S3"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "8L54", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["8L36", "7T", "7L57", "6T", "6L1", "5T", "5L57", "4T", "4L57"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7V"], + waterpulse: ["8L6", "7T", "6T", "4M", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["bubblebeam", "raindance", "gust", "aurorabeam"]}, + {generation: 3, level: 70, moves: ["gust", "aurorabeam", "mist", "mirrorcoat"], pokeball: "pokeball"}, + {generation: 4, level: 40, shiny: 1, moves: ["raindance", "gust", "aurorabeam", "mist"]}, + {generation: 4, level: 30, shiny: true, nature: "Relaxed", moves: ["sheercold", "airslash", "extremespeed", "aquaring"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["aurorabeam", "mist", "mirrorcoat", "icefang"]}, + {generation: 7, level: 60, shiny: 1, moves: ["bubblebeam", "aurorabeam", "mist", "raindance"]}, + {generation: 8, level: 70, shiny: 1, moves: ["liquidation", "extrasensory", "extremespeed", "calmmind"]}, + ], + encounters: [ + {generation: 2, level: 40}, + {generation: 3, level: 40}, + ], + eventOnly: true, + }, + larvitar: { + learnset: { + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + assurance: ["9E", "8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9L9", "8L9", "7L1", "7V", "6L1", "5L1", "5D", "5S1", "4L1", "3L1", "3S0"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L14", "6L14", "5L14"], + confide: ["7M", "6M"], + crunch: ["9M", "9L27", "8M", "8L27", "7L41", "7V", "6L41", "5L41", "4L37", "3L43"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + darkpulse: ["9M", "8M", "8L24", "7M", "7L32", "6M", "6L32", "5T", "5L32", "5D", "4M", "4L28"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "9E", "8M", "7E", "6E", "5E", "4E", "3E", "3S0"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L31", "8M", "8L31", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L41", "3M", "3L50"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["9E", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "9L42", "8M", "8L42", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L50", "3M", "3L57"], + irondefense: ["9M", "9E", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + ironhead: ["9M", "9E", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S1", "4L1", "3L1"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9E", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3E", "3S0"], + payback: ["9L6", "8M", "8L6", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L32"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L15", "8M", "8L15", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "4L14", "3T", "3L22"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["9L3", "8L3"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "9L39", "8M", "8L39", "7M", "7L5", "7V", "6M", "6L5", "5M", "5L5", "5S1", "4M", "4L5", "3M", "3L8", "3S0"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L36"], + screech: ["9L21", "8M", "8L21", "7L10", "7V", "6L10", "5L10", "4L10", "3L15"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L24", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], + stomp: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + stompingtantrum: ["9M", "9L18", "8M", "8L18"], + stoneedge: ["9M", "9L33", "8M", "8L33", "7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L46"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "5S1", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L36", "8L36", "7L28", "7V", "6L28", "5L28", "4L23", "3L29"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 20, moves: ["sandstorm", "dragondance", "bite", "outrage"], pokeball: "pokeball"}, + {generation: 5, level: 5, shiny: true, gender: "M", moves: ["bite", "leer", "sandstorm", "superpower"], pokeball: "cherishball"}, + ], + }, + pupitar: { + learnset: { + aerialace: ["9M"], + ancientpower: ["4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9L9", "8L9", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L14", "6L14", "5L14"], + confide: ["7M", "6M"], + crunch: ["9M", "9L27", "8M", "8L27", "7L47", "7V", "6L47", "5L47", "4L41", "3L47"], + curse: ["7V"], + darkpulse: ["9M", "8M", "8L24", "7M", "7L34", "6M", "6L34", "5T", "5L34", "4M", "4L28"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L33", "8M", "8L33", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L47", "3M", "3L56"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "9L52", "8M", "8L52", "7M", "7L67", "7V", "6M", "6L67", "5M", "5L67", "4M", "4L60", "3M", "3L65"], + irondefense: ["9M", "9L0", "8M", "8L0", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T"], + lashout: ["9M"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T"], + payback: ["9L1", "8M", "8L1", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L34"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L15", "8M", "8L15", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "4L14", "3T", "3L22"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "9L47", "8M", "8L47", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L38"], + screech: ["9L21", "8M", "8L21", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L24", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "9L18", "8M", "8L18"], + stoneedge: ["9M", "9L37", "8M", "8L37", "7M", "7L60", "6M", "6L60", "5M", "5L60", "4M", "4L54"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L42", "8L42", "7L28", "7V", "6L28", "5L28", "4L23", "3L29"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + tyranitar: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bite: ["9L9", "8L9", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L14", "6L14", "5L14"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["9M", "9L27", "8M", "8L27", "7L47", "7V", "6L47", "6S3", "6S4", "6S5", "6S6", "5L47", "5S1", "5S2", "4L41", "3L47", "3S0"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "9L1", "8M", "8L24", "7M", "7L34", "6M", "6L34", "5T", "5L34", "4M", "4L28"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L33", "8M", "8L33", "7M", "7L54", "7V", "6M", "6L54", "6S3", "6S4", "5M", "5L54", "5S2", "4M", "4L47", "3M", "3L61", "3S0"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "5S1", "4M", "3M"], + firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + firepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "9L59", "8M", "8L59", "7M", "7L82", "6M", "6L82", "5M", "5L82", "4M"], + headbutt: ["7V", "4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L52", "8M", "8L52", "7M", "7L73", "7V", "6M", "6L73", "5M", "5L73", "4M", "4L70", "3M", "3L75"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S1", "4M", "3M"], + icefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + icepunch: ["9M", "8M", "7T", "6T", "6S3", "6S6", "5T", "4T"], + icywind: ["9M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "8M", "7T", "6T", "6S5", "6S6", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + payback: ["9L1", "8M", "8L1", "7M", "7L41", "6M", "6L41", "5M", "5L41", "5S2", "4M", "4L34"], + powergem: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "6S5", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + roar: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L15", "8M", "8L15", "7M", "7L19", "7V", "6M", "6L19", "6S4", "6S5", "6S6", "5M", "5L19", "4M", "4L14", "3T", "3L22"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "9L47", "8M", "8L47", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L38", "3S0"], + screech: ["9L21", "8M", "8L21", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["5S2", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "9L24", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "9L18", "8M", "8L18", "7T"], + stoneedge: ["9M", "9L37", "8M", "8L37", "7M", "7L63", "6M", "6L63", "6S3", "6S4", "5M", "5L63", "5S1", "4M", "4L54"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L42", "8L42", "7L28", "7V", "6L28", "5L28", "4L23", "3L29", "3S0"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["thrash", "scaryface", "crunch", "earthquake"], pokeball: "pokeball"}, + {generation: 5, level: 100, gender: "M", moves: ["fireblast", "icebeam", "stoneedge", "crunch"], pokeball: "cherishball"}, + {generation: 5, level: 55, gender: "M", isHidden: true, moves: ["payback", "crunch", "earthquake", "seismictoss"]}, + {generation: 6, level: 50, moves: ["stoneedge", "crunch", "earthquake", "icepunch"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Jolly", moves: ["rockslide", "earthquake", "crunch", "stoneedge"], pokeball: "cherishball"}, + {generation: 6, level: 55, shiny: true, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 14, spd: 31, spe: 0}, moves: ["crunch", "rockslide", "lowkick", "protect"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["rockslide", "crunch", "icepunch", "lowkick"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 50}, + ], + }, + lugia: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aeroblast: ["8L54", "7L43", "7V", "7S7", "7S8", "7S9", "7S10", "6L43", "6S5", "6S6", "5L43", "4L43", "4S2", "4S3", "3L77"], + aircutter: ["4T"], + airslash: ["8M"], + ancientpower: ["8L1", "8S11", "7L57", "7V", "7S7", "7S9", "6L57", "5L57", "4T", "4L57", "4S3", "3L88"], + aquatail: ["7T", "6T", "5T", "4T"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brine: ["8M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "7S8", "4M"], + detect: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonpulse: ["8M", "8S11", "7T", "6T", "5T", "4M"], + dragonrush: ["8L1", "7L15", "6L15", "6S6", "5L15", "4L15"], + dragontail: ["7M", "6M", "5M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "7S10", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L36", "8S11", "7L23", "7S7", "7S9", "6L23", "5L23", "4L23", "4S2"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["3S1"], + flash: ["6M", "5M", "4M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M", "7S8"], + hydropump: ["8M", "8L72", "7L37", "7V", "6L37", "6S5", "6S6", "5L37", "4L29", "4S2", "3L44", "3S0", "3S1"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "6S6", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mist: ["8L9"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L85", "6L85", "5L85", "4M", "4L51"], + nightmare: ["7V", "3T"], + ominouswind: ["4T"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "7S10", "6M", "5M", "4M", "3M"], + psychoboost: ["3S1"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + punishment: ["7L50", "6L50", "6S5", "5L50", "4L50", "4S3"], + raindance: ["8M", "8L63", "7M", "7L29", "7V", "6M", "6L29", "6S5", "5M", "5L29", "4M", "4L29", "4S2", "3M", "3L55", "3S0"], + recover: ["8L45", "7L71", "7V", "6L71", "5L71", "4L23", "3L33", "3S0"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L18", "7M", "7L65", "7V", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S3", "3M", "3L11"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "7S7", "7S9", "6T", "5T", "4M", "3M"], + skyattack: ["8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], + tailwind: ["7T", "7S8", "7S10", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["8M", "8L1", "7L1", "6L1", "5L1", "5S4", "4L1"], + whirlpool: ["8M", "8S11", "7V", "4M"], + whirlwind: ["8L1", "7L1", "7V", "6L1", "5L1", "5S4", "4L1", "3L1"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["recover", "hydropump", "raindance", "swift"]}, + {generation: 3, level: 50, moves: ["psychoboost", "earthquake", "hydropump", "featherdance"]}, + {generation: 4, level: 45, shiny: 1, moves: ["extrasensory", "raindance", "hydropump", "aeroblast"]}, + {generation: 4, level: 70, shiny: 1, moves: ["aeroblast", "punishment", "ancientpower", "safeguard"]}, + {generation: 5, level: 5, isHidden: true, moves: ["whirlwind", "weatherball"], pokeball: "dreamball"}, + {generation: 6, level: 50, shiny: 1, moves: ["raindance", "hydropump", "aeroblast", "punishment"]}, + {generation: 6, level: 50, nature: "Timid", moves: ["aeroblast", "hydropump", "dragonrush", "icebeam"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["skillswap", "aeroblast", "extrasensory", "ancientpower"]}, + {generation: 7, level: 100, isHidden: true, moves: ["aeroblast", "hurricane", "defog", "tailwind"], pokeball: "cherishball"}, + {generation: 7, level: 60, moves: ["skillswap", "aeroblast", "extrasensory", "ancientpower"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["aeroblast", "earthpower", "psychic", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonpulse", "extrasensory", "whirlpool", "ancientpower"]}, + ], + encounters: [ + {generation: 2, level: 40}, + ], + eventOnly: true, + }, + hooh: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + airslash: ["8M"], + ancientpower: ["8L1", "8S10", "7L57", "7V", "7S7", "7S8", "6L57", "5L57", "4T", "4L57", "4S2", "3L88"], + bravebird: ["8M", "7L15", "7S6", "7S9", "6L15", "6S5", "5L15", "4L15"], + bulldoze: ["8M", "7M", "6M", "5M"], + burnup: ["8L99", "7S7", "7S8"], + calmmind: ["8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], + celebrate: ["6S5"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "7S9", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L36", "8S10", "7L23", "7S7", "7S8", "6L23", "5L23", "4L23", "4S1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L72", "7M", "7L37", "7V", "6M", "6L37", "6S4", "5M", "5L37", "4M", "4L29", "4S1", "3M", "3L44", "3S0"], + firespin: ["8M"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8S10"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lifedew: ["8L9"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["7L85", "6L85", "5L85", "4M", "4L51"], + nightmare: ["7V", "3T"], + ominouswind: ["4T"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + pluck: ["5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + punishment: ["7L50", "6L50", "6S4", "5L50", "4L50", "4S2"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L45", "7L71", "7V", "7S6", "6L71", "6S5", "5L71", "4L23", "3L33", "3S0"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sacredfire: ["8L54", "7L43", "7V", "7S6", "7S7", "7S8", "7S9", "6L43", "6S4", "6S5", "5L43", "4L43", "4S1", "4S2", "3L77"], + safeguard: ["8M", "8L18", "7M", "7L65", "7V", "7S6", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S2", "3M", "3L11"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L63", "8S10", "7M", "7L29", "7V", "6M", "6L29", "6S4", "5M", "5L29", "4M", "4L29", "4S1", "3M", "3L55", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], + tailwind: ["7T", "7S9", "6T", "5T", "4T"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + weatherball: ["8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1"], + whirlwind: ["8L1", "7L1", "7V", "6L1", "5L1", "5S3", "4L1", "3L1"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["recover", "fireblast", "sunnyday", "swift"]}, + {generation: 4, level: 45, shiny: 1, moves: ["extrasensory", "sunnyday", "fireblast", "sacredfire"]}, + {generation: 4, level: 70, shiny: 1, moves: ["sacredfire", "punishment", "ancientpower", "safeguard"]}, + {generation: 5, level: 5, isHidden: true, moves: ["whirlwind", "weatherball"], pokeball: "dreamball"}, + {generation: 6, level: 50, shiny: 1, moves: ["sunnyday", "fireblast", "sacredfire", "punishment"]}, + {generation: 6, level: 50, shiny: true, moves: ["sacredfire", "bravebird", "recover", "celebrate"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["sacredfire", "bravebird", "recover", "safeguard"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["burnup", "sacredfire", "extrasensory", "ancientpower"]}, + {generation: 7, level: 60, moves: ["burnup", "sacredfire", "extrasensory", "ancientpower"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["sacredfire", "bravebird", "earthquake", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["flareblitz", "extrasensory", "sunnyday", "ancientpower"]}, + ], + encounters: [ + {generation: 2, level: 40}, + ], + eventOnly: true, + }, + celebi: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + allyswitch: ["8M", "7T"], + ancientpower: ["8L30", "7L28", "7V", "7S7", "6L28", "5L28", "4T", "4L28", "3L20", "3S1", "3S3"], + aurasphere: ["8M"], + batonpass: ["8M", "8L20", "7L37", "7V", "6L37", "5L37", "4L37", "3L40", "3S1"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "7V", "6L1", "6S6", "5L1", "4L1", "3L1", "3S0"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L70", "8S8", "7L64", "7V", "7S7", "6L64", "5L64", "4L64", "3L30", "3S1", "3S3"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + healbell: ["8L1", "8S8", "7T", "7L1", "7V", "7S7", "6T", "6L1", "6S5", "6S6", "5T", "5L1", "4T", "4L1", "3L1", "3S0", "3S2", "3S3"], + healblock: ["7L55", "6L55", "5L55", "4L55"], + healingwish: ["8L80", "7L73", "6L73", "5L73", "4L73", "4S4"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdback: ["6S5"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + imprison: ["8M"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafblade: ["8M"], + leafstorm: ["8M", "8L90", "7L82", "6L82", "5L82", "4L82", "4S4"], + leechseed: ["8L50", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S2"], + lifedew: ["8L40", "8S8"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["8M", "8L10", "8S8", "7L19", "6L19", "5L19", "4L19"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + metronome: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M", "4S4"], + naturalgift: ["7L46", "6L46", "5L46", "4M", "4L46"], + naturepower: ["7M", "6M"], + nightmare: ["7V", "3T"], + perishsong: ["8L100", "7L91", "7V", "6L91", "5L91", "4L91", "3L50", "3S1"], + pollenpuff: ["8M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L60", "7L1", "7V", "6L1", "6S5", "6S6", "5L1", "4L1", "4S4", "3L1", "3S0", "3S2"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L10", "7V", "7S7", "6M", "6L10", "6S5", "6S6", "5M", "5L10", "4M", "4L10", "3M", "3L10", "3S0", "3S2", "3S3"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["8M"], + wonderroom: ["8M", "7T", "6T", "5T"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["confusion", "recover", "healbell", "safeguard"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["ancientpower", "futuresight", "batonpass", "perishsong"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["leechseed", "recover", "healbell", "safeguard"], pokeball: "pokeball"}, + {generation: 3, level: 30, moves: ["healbell", "safeguard", "ancientpower", "futuresight"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["leafstorm", "recover", "nastyplot", "healingwish"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["recover", "healbell", "safeguard", "holdback"], pokeball: "luxuryball"}, + {generation: 6, level: 100, moves: ["confusion", "recover", "healbell", "safeguard"], pokeball: "cherishball"}, + {generation: 7, level: 30, moves: ["healbell", "safeguard", "ancientpower", "futuresight"], pokeball: "cherishball"}, + {generation: 8, level: 60, shiny: true, nature: "Quirky", moves: ["magicalleaf", "futuresight", "lifedew", "healbell"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 2, level: 30}, + ], + eventOnly: true, + }, + treecko: { + learnset: { + absorb: ["8E", "7L5", "6L5", "5L6", "5S1", "4L6", "3L6", "3S0"], + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7L25", "6L25", "5L31", "4L31", "3L31"], + assurance: ["8M", "8L18"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["8M", "7E", "6E", "5E", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "7E", "6E", "5E", "4E", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + cut: ["6M", "5M", "4M", "3M"], + detect: ["8L12", "7L33", "6L33", "5L41", "4L41", "3L41"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublekick: ["8E", "7E", "6E", "5E", "4E"], + doubleteam: ["8L27", "7M", "6M", "5M", "4M", "3M"], + dragonbreath: ["8E", "7E", "6E", "5E", "4E", "3E"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + endeavor: ["8L36", "7T", "7L45", "7E", "6T", "6L45", "6E", "5T", "5E", "4T", "4E", "3E"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L30", "7M", "7L37", "6M", "6L37", "5M", "5L51", "4M", "4L51"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L46", "4M", "4L46", "3M", "3L46"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grasswhistle: ["7E", "6E", "5E", "4E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + leafage: ["8L3"], + leafstorm: ["8M", "8L39", "7E", "6E", "5E", "4E"], + leechseed: ["8E", "7E", "6E", "5E", "4E", "3E"], + leer: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + magicalleaf: ["8M", "7E", "6E", "5E", "4E"], + megadrain: ["8L9", "7L13", "6L13", "5L26", "4L26", "3L26"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + nightslash: ["8E"], + pound: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L17", "6L16", "5L16", "4L16", "3L16"], + quickattack: ["8L6", "7L9", "6L9", "5L11", "4L11", "3L11"], + quickguard: ["8L15", "7L41", "6L41"], + razorwind: ["7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M", "8L33", "7L49", "6L21", "5L21", "4L21", "3L21"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + slam: ["8L24", "7L29", "6L29", "5L36", "4L36", "3L36"], + slash: ["8E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + workup: ["8M", "7M"], + worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["pound", "leer", "absorb"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "leer", "absorb"]}, + ], + }, + grovyle: { + learnset: { + absorb: ["7L1", "6L1", "5L1", "4L1", "3L1"], + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7L28", "6L28", "5L35", "4L35", "3L35"], + assurance: ["8M", "8L20"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + detect: ["8L12", "7L38", "6L38", "5L47", "4L47", "3L47"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["8L35", "7M", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + endeavor: ["8L50", "7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "7L48", "6M", "6L48", "5M", "5L53", "4M", "4L53", "3L53"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L1", "6L16", "5L16", "4T", "4L16", "3T", "3L16"], + gigadrain: ["8M", "8L25", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + leafage: ["8L1"], + leafblade: ["8M", "8L40", "7L23", "6L23", "5L29", "4L29", "3L29"], + leafstorm: ["8M", "8L55", "7L58", "6L58", "5L59", "4L59"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8L9", "7L13", "6L13"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L18", "6L17", "5L17", "4L17", "3L17"], + quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["8L15", "7L53", "6L53"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M", "8L45", "7L63", "6L23", "5L23", "4L23", "3L23"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + slam: ["8L30", "7L33", "6L33", "5L41", "4L41", "3L41"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + workup: ["8M", "7M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8M", "8L1", "7M", "7L43", "6M", "6L43", "5M", "4M"], + }, + }, + sceptile: { + learnset: { + absorb: ["7L1", "6L1", "5L1", "4L1", "3L1"], + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7L28", "6L28", "5L35", "4L35", "3L35"], + assurance: ["8M", "8L20"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crosspoison: ["8M"], + crunch: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + detect: ["8L12", "7L39", "6L39", "5L51", "4L51", "3L51"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["8L35", "7M", "6M", "5M", "4M", "3M"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T", "5S0", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dualchop: ["8L0", "7T", "7L1", "6T", "6L36"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["8L56", "7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L59", "4M", "4L59", "3L59"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "5S0", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frenzyplant: ["8T", "7T", "6T", "5T", "4T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L1", "6L16", "4T", "3T", "3L16"], + gigadrain: ["8M", "8L25", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leafage: ["8L1"], + leafblade: ["8M", "8L42", "7L23", "6L23", "5L29", "4L29", "3L29"], + leafstorm: ["8M", "8L63", "7L1", "6L1", "5L67", "5S0", "4L67"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8L5", "7L13", "6L13"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightslash: ["7L1", "6L1", "5L1", "4L1"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L18", "6L17", "5L17", "4L17", "3L17"], + quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["8L15", "7L57", "6L57"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "5S0", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + screech: ["8M", "8L49", "7L69", "6L23", "5L23", "4L23", "3L23"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + slam: ["8L30", "7L33", "6L33", "5L43", "4L43", "3L43"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + workup: ["8M", "7M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8M", "8L1", "7M", "7L45", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, moves: ["leafstorm", "dragonpulse", "focusblast", "rockslide"], pokeball: "cherishball"}, + ], + }, + torchic: { + learnset: { + aerialace: ["8L18", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7E", "6E", "5E", "4E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "7E", "6E", "5E", "4E"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L24", "7T", "6T", "5T", "4T"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + crushclaw: ["8E", "7E", "6E", "5E", "4E"], + curse: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T"], + detect: ["8L12"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L3", "7L5", "6L5", "6S2", "5L10", "5S1", "5S2", "4L10", "3L10", "3S0"], + endure: ["8M", "7E", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8L33", "7E", "6E", "5E", "4E"], + feint: ["8E", "7E", "6E", "5E", "4E"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["8T", "7T", "6T", "5T"], + firespin: ["8M", "7L19", "6L19", "5L25", "4L25", "3L25"], + flameburst: ["7L28", "7E", "6L28", "6E", "5E"], + flamecharge: ["8L9", "7M", "6M", "5M"], + flamethrower: ["8M", "8L30", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + flareblitz: ["8M", "8L39"], + focusenergy: ["8M", "8L27", "7L32", "6L7", "6S2", "5L7", "5S1", "5S2", "4L7", "3L7", "3S0"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + lastresort: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mirrormove: ["7L41", "6L37", "5L37", "4L37", "3L37"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["8E", "7E", "6E", "5E", "4E"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["8E", "7L14", "6L14", "5L16", "4L16", "3L16"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8L6", "7L23", "6L23", "5L28", "4L28", "3L28"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M", "8L36", "7E", "6E", "5E", "4E", "3E"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L15", "7L10", "6L10", "5L19", "4L19", "3L19"], + scratch: ["8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + slash: ["8L21", "7L37", "6L34", "5L34", "4L34", "3L34"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "growl", "focusenergy", "ember"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["scratch", "growl", "focusenergy", "ember"]}, + {generation: 6, level: 10, gender: "M", isHidden: true, moves: ["scratch", "growl", "focusenergy", "ember"], pokeball: "cherishball"}, + ], + }, + combusken: { + learnset: { + aerialace: ["8L20", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + blazekick: ["8M", "8L40"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L30", "7T", "6T", "5T", "4T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L45", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], + captivate: ["4M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T"], + detect: ["8L12"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublekick: ["8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["8T", "7T", "6T", "5T"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + firespin: ["8M"], + flamecharge: ["8L9", "7M", "7L20", "6M", "6L20", "5M"], + flamethrower: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8L55", "7L58", "6L54", "5L54", "4L54"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L35", "7L36", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mirrormove: ["7L47", "6L43", "5L43", "4L43", "3L43"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["7L14", "6L14", "5L17", "4L17", "3L17"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + reversal: ["8M", "8L50"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + skyuppercut: ["7L53", "6L50", "5L50", "4L50", "3L50"], + slash: ["8L25", "7L42", "6L39", "5L39", "4L39", "3L39"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + blaziken: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["8L20", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + batonpass: ["8M"], + blastburn: ["8T", "7T", "6T", "5T", "4T"], + blazekick: ["8M", "8L42", "7L1", "6L36", "5L36", "4L36", "3L36", "3S0"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L30", "7T", "6T", "5T", "4T"], + bravebird: ["8M", "8L1", "7L50", "6L49", "5L49", "4L49"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L49", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T"], + detect: ["8L12"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublekick: ["8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["8T", "7T", "6T", "5T"], + firepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + firespin: ["8M"], + flamecharge: ["8L9", "7M", "7L20", "6M", "6L20", "5M"], + flamethrower: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8L63", "7L1", "6L1", "5L66", "5S1", "4L66"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L35", "7L37", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + heatcrash: ["8M"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highjumpkick: ["7L1", "6L1", "5L1", "5S1"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mirrormove: ["3L49", "3S0"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["7L14", "6L14", "5L17", "4L17", "3L17"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + reversal: ["8M", "8L56"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], + scorchingsands: ["8T"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + skyuppercut: ["7L57", "6L57", "5L59", "4L59", "3L59", "3S0"], + slash: ["8L25", "7L44", "6L42", "5L42", "4L42", "3L42", "3S0"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + stoneedge: ["8M", "7M", "6M", "5M", "5S1", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + thunderpunch: ["8M", "7T", "6T", "5T", "5S1", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uturn: ["8M"], + vacuumwave: ["4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["blazekick", "slash", "mirrormove", "skyuppercut"], pokeball: "pokeball"}, + {generation: 5, level: 50, shiny: 1, moves: ["flareblitz", "highjumpkick", "thunderpunch", "stoneedge"], pokeball: "cherishball"}, + ], + }, + mudkip: { + learnset: { + amnesia: ["8M", "8L27"], + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "7E", "6E", "5E"], + barrier: ["7E", "6E"], + bide: ["7L17", "6L15", "5L15", "4L15", "3L15"], + bite: ["8E", "7E", "6E", "5E", "4E"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L36", "7T", "7L44", "6T", "6L44", "5T", "5L46", "4T", "4L46", "3L46"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + foresight: ["7L12", "6L12", "5L19", "4L19", "3L19"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L39", "7L41", "6L41", "5L42", "4L42", "3L42"], + iceball: ["7E", "6E", "5E", "4E", "3E"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + mimic: ["3T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "4E", "3E"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["8E", "7L9", "6L6", "5L6", "5S1", "4T", "4L6", "3T", "3L6", "3S0"], + mudsport: ["7L20", "6L20", "5L24", "4L24", "3L24"], + naturalgift: ["4M"], + protect: ["8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8L21", "7M", "6M", "5M", "4M"], + rocksmash: ["8L6", "6M", "5M", "4M", "3M"], + rockthrow: ["8L9", "7L25", "6L25"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L33"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludge: ["8E", "7E", "6E", "5E", "4E"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stomp: ["8E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + supersonic: ["8L15"], + surf: ["8M", "8L30", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + takedown: ["8L24", "7L36", "6L28", "5L28", "4L28", "3L28"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5E", "4E", "3E"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L3", "7L4", "6L4", "5L10", "5S1", "4L10", "3L10", "3S0"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L18", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4M", "4L33", "4E", "3L33"], + wideguard: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M"], + yawn: ["8E", "7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "mudslap", "watergun"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "growl", "mudslap", "watergun"]}, + ], + }, + marshtomp: { + learnset: { + amnesia: ["8M", "8L35"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M"], + bide: ["7L18", "6L15", "5L15", "4L15", "3L15"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L1", "7M", "7L48", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L46"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L50", "7T", "7L52", "6T", "6L52", "5T", "5L53", "4T", "4L53", "3L53"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + foresight: ["7L12", "6L12", "5L20", "4L20", "3L20"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L55"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudbomb: ["7L22", "6L22", "5L25", "4L25"], + muddywater: ["8M", "8L40", "7L38", "6L37", "5L37", "4L37", "3L37"], + mudshot: ["8M", "8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + mudsport: ["3L25"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L42", "4M", "4L42", "3M", "3L42"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], + rocksmash: ["8L1", "6M", "5M", "4M", "3M"], + rockthrow: ["8L9"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L45"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + supersonic: ["8L15"], + surf: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L30", "7L42", "6L31", "5L31", "4L31", "3L31"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L20", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M"], + }, + }, + swampert: { + learnset: { + amnesia: ["8M", "8L35"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bide: ["7L18", "6L15", "5L15", "4L15", "3L15"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + darkestlariat: ["8M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L52", "5S0", "4M", "4L52", "3M", "3L52"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L56", "7T", "7L56", "6T", "6L56", "5T", "5L61", "4T", "4L61", "3L61"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L12", "6L12", "5L20", "4L20", "3L20"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8L1", "7L1", "6L1", "5L69", "5S0", "4L69"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hydrocannon: ["8T", "7T", "6T", "5T", "4T"], + hydropump: ["8M", "8L63", "5S0"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + liquidation: ["8M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudbomb: ["7L22", "6L22", "5L25", "4L25"], + muddywater: ["8M", "8L42", "7L39", "6L39", "5L39", "4L39", "3L39"], + mudshot: ["8M", "8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + mudsport: ["3L25"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L46", "4M", "4L46", "3M", "3L46"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], + rocksmash: ["8L1", "6M", "5M", "4M", "3M"], + rockthrow: ["8L9"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L49"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + supersonic: ["8L15"], + surf: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L30", "7L44", "6L31", "5L31", "4L31", "3L31"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L20", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, moves: ["earthquake", "icebeam", "hydropump", "hammerarm"], pokeball: "cherishball"}, + ], + }, + poochyena: { + learnset: { + assurance: ["9L22", "7L22", "6L22", "5L29", "4L29"], + astonish: ["9E", "7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bite: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], + bodyslam: ["3T"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + crunch: ["9M", "9L31", "7L34", "6L37", "5L53", "4L53", "3L41"], + darkpulse: ["9M", "7M", "6M", "5T", "5D", "4M"], + dig: ["9M", "6M", "5M", "4M", "3M", "3S0"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L28", "6M", "6L28", "5M", "5L41", "4M", "4L41"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "7E", "6E", "5E", "4E"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + healbell: ["3S0"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["9L4", "7L4", "6L4", "5L5", "5D", "4L5", "3L5", "3S0"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M", "7E", "6E", "5E", "4E"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lashout: ["9M"], + leer: ["9L13", "7E", "6E", "5E", "4E", "3E"], + mefirst: ["7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + payback: ["7M", "6M", "5M", "4M"], + playrough: ["9M", "9L44", "7L46", "7E", "6E"], + poisonfang: ["9E", "7E", "6E", "5E", "5D", "4E", "3E", "3S0"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + psychup: ["3T"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L21", "4M", "4L21", "3M", "3L21"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandattack: ["9L7", "7L7", "6L7", "5L9", "4L9", "3L9"], + scaryface: ["9M", "9L25", "7L25", "6L25", "5L33", "4L33", "3L29"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L40", "7L43", "7E", "6L40", "6E", "5L49", "5E", "4T", "4L49", "4E"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["9L19", "7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3T", "3L25"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L36", "7L40", "6L34", "5L45", "4L45", "3L33"], + taunt: ["9M", "9L28", "7M", "7L31", "6M", "6L31", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M", "3L45"], + thunderfang: ["9M", "7E", "6E", "5E", "4E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + yawn: ["9L34", "7L37", "7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 10, abilities: ["runaway"], moves: ["healbell", "dig", "poisonfang", "howl"]}, + ], + encounters: [ + {generation: 3, level: 2}, + ], + }, + mightyena: { + learnset: { + assurance: ["9L24", "7L24", "6L24", "5L32", "4L32"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bite: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "3T"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crunch: ["9M", "9L1", "7L1", "7S0", "6L1", "3L47"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L32", "6M", "6L32", "5M", "5L47", "4M", "4L47"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "7S0"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["9L13", "7L1", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M", "9L1", "7L1", "7S0"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lashout: ["9M"], + leer: ["9L13"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + payback: ["7M", "6M", "5M", "4M"], + playrough: ["9M", "9L56", "7L56"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + psychup: ["3T"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L22", "3M", "3L22"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + scaryface: ["9M", "9L28", "7L28", "6L28", "5L37", "4L37", "3L32"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "9L0", "7M", "7L1", "6M", "6L18", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L52", "7L52", "6L48", "5L62", "4T", "4L62"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["9L20", "7M", "7L20", "6M", "6L20", "5M", "5L27", "4M", "4L27", "3T", "3L27"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L48", "7L48", "6L40", "5L52", "4L52", "3L37"], + taunt: ["9M", "9L36", "7M", "7L36", "6M", "6L36", "5M", "5L42", "4M", "4L42", "3M", "3L42"], + terablast: ["9M"], + thief: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L57", "4M", "4L57", "3M", "3L52"], + throatchop: ["7T"], + thunderfang: ["9M", "9L1", "7L1", "7S0"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + yawn: ["9L44", "7L44"], + }, + eventData: [ + {generation: 7, level: 64, gender: "M", abilities: ["intimidate"], moves: ["crunch", "firefang", "icefang", "thunderfang"], pokeball: "cherishball"}, + ], + }, + zigzagoon: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + babydolleyes: ["8L15", "7L12", "6L11"], + bellydrum: ["8L33", "7L37", "6L37", "5L45", "4L41", "3L41"], + bestow: ["7L25", "6L25", "5L33"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + covet: ["8L9", "7T", "7L23", "6T", "6L23", "5T", "5L29", "4L29", "3L29"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L36", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + extremespeed: ["8E", "7E", "3S1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L29", "6L29", "5L37", "4L33", "3L33"], + fling: ["8M", "8L27", "7M", "7L41", "6M", "6L41", "5M", "5L49", "4M", "4L45"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + headbutt: ["8L12", "7L11", "6L9", "5L9", "4T", "4L9", "3L9"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "5D", "4T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["7E", "6E", "5E", "4T", "4E", "3T"], + mudsport: ["7L17", "6L17", "5L21", "4L21", "3L21"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + pinmissile: ["8M", "8L18", "7L19", "6L19", "5L25", "4L25", "3L25"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L21", "7M", "7L35", "6M", "6L35", "5M", "5L41", "4M", "4L37", "3M", "3L37"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["7E", "6E", "5E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L3", "7L7", "6L7", "5L13", "4L13", "3L13"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + simplebeam: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + tailslap: ["8M"], + tailwhip: ["8L6", "7L5", "6L5", "5L5", "4L5", "3L5", "3S0", "3S1"], + takedown: ["8L24", "7L31", "6L31"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: true, abilities: ["pickup"], moves: ["tackle", "growl", "tailwhip"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["pickup"], moves: ["tackle", "growl", "tailwhip", "extremespeed"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + encounters: [ + {generation: 3, level: 2}, + ], + }, + zigzagoongalar: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + babydolleyes: ["8L15"], + blizzard: ["8M"], + bodyslam: ["8M"], + counter: ["8L30"], + dig: ["8M"], + doubleedge: ["8L36"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + fling: ["8M"], + grassknot: ["8M"], + gunkshot: ["8M"], + headbutt: ["8L12"], + helpinghand: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icywind: ["8M"], + irontail: ["8M"], + knockoff: ["8E"], + lashout: ["8T"], + leer: ["8L1"], + lick: ["8L6"], + mudshot: ["8M"], + partingshot: ["8E"], + payback: ["8M"], + pinmissile: ["8M", "8L18"], + protect: ["8M"], + quickguard: ["8E"], + raindance: ["8M"], + rest: ["8M", "8L21"], + retaliate: ["8M"], + round: ["8M"], + sandattack: ["8L3"], + scaryface: ["8M", "8L27"], + screech: ["8M"], + seedbomb: ["8M"], + shadowball: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L9"], + snore: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + swift: ["8M"], + tackle: ["8L1"], + takedown: ["8L24"], + taunt: ["8M", "8L33"], + thief: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + linoone: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + babydolleyes: ["8L1", "6S0"], + bellydrum: ["8L43", "7L43", "6L43", "5L59", "4L53", "3L53"], + bestow: ["7L27", "6L27", "5L41"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["8L9", "7T", "7L24", "6T", "6L24", "5T", "5L35", "4L35", "3L35"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L48", "7L35", "6L35", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + extremespeed: ["6S0"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L38"], + fling: ["8M", "8L33", "7M", "7L48", "6M", "6L48", "5M", "5L65", "4M", "4L59"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["8L18", "7L19", "6L19", "5L29", "4L29", "3L29"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + headbutt: ["8L12", "7L11", "6L1", "5L1", "4T", "4L1", "3L1"], + helpinghand: ["8M", "7T", "6T", "6S0", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["8L15", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + mudsport: ["7L17", "6L17", "5L23", "4L23", "3L23"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + pinmissile: ["8M", "8L1"], + playrough: ["8M", "7L1", "6L1"], + protect: ["8M", "7M", "6M", "6S0", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L23", "7M", "7L40", "6M", "6L40", "5M", "5L53", "4M", "4L47", "3M", "3L47"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L13", "4L13", "3L13"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["8L0", "7L32", "6L32", "5L47", "4L41", "3L41"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + switcheroo: ["8L1", "7L1", "6L1", "5L1", "4L1"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + tailslap: ["8M"], + tailwhip: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L28"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["extremespeed", "helpinghand", "babydolleyes", "protect"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 3}, + {generation: 6, level: 17, maxEggMoves: 1}, + ], + }, + linoonegalar: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + babydolleyes: ["8L1"], + blizzard: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + counter: ["8L38"], + dig: ["8M"], + doubleedge: ["8L48"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + fling: ["8M"], + furyswipes: ["8L18"], + gigaimpact: ["8M"], + grassknot: ["8M"], + gunkshot: ["8M"], + headbutt: ["8L12"], + helpinghand: ["8M"], + honeclaws: ["8L15"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icywind: ["8M"], + irontail: ["8M"], + lashout: ["8T"], + leer: ["8L1"], + lick: ["8L1"], + mudshot: ["8M"], + nightslash: ["8L0"], + payback: ["8M"], + pinmissile: ["8M", "8L1"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M", "8L23"], + retaliate: ["8M"], + round: ["8M"], + sandattack: ["8L1"], + scaryface: ["8M", "8L33"], + screech: ["8M"], + seedbomb: ["8M"], + shadowball: ["8M"], + shadowclaw: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L9"], + snore: ["8M"], + stompingtantrum: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + swift: ["8M"], + switcheroo: ["8L1"], + tackle: ["8L1"], + takedown: ["8L28"], + taunt: ["8M", "8L43"], + thief: ["8M"], + throatchop: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + obstagoon: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + babydolleyes: ["8L1"], + blizzard: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M"], + bulkup: ["8M"], + closecombat: ["8M"], + counter: ["8L42"], + crosschop: ["8L1"], + crosspoison: ["8M"], + dig: ["8M"], + doubleedge: ["8L56"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + firepunch: ["8M"], + fling: ["8M"], + focusenergy: ["8M"], + furyswipes: ["8L18"], + gigaimpact: ["8M"], + grassknot: ["8M"], + gunkshot: ["8M"], + headbutt: ["8L12"], + helpinghand: ["8M"], + honeclaws: ["8L15"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icepunch: ["8M"], + icywind: ["8M"], + irondefense: ["8M"], + irontail: ["8M"], + lashout: ["8T"], + leer: ["8L1"], + lick: ["8L1"], + lowkick: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["8M"], + nightslash: ["8L1"], + obstruct: ["8L0"], + payback: ["8M"], + pinmissile: ["8M", "8L1"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M", "8L23"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["8M"], + round: ["8M"], + sandattack: ["8L1"], + scaryface: ["8M", "8L35"], + screech: ["8M"], + seedbomb: ["8M"], + shadowball: ["8M"], + shadowclaw: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L9"], + snore: ["8M"], + stompingtantrum: ["8M"], + submission: ["8L1"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + swift: ["8M"], + switcheroo: ["8L1"], + tackle: ["8L1"], + takedown: ["8L28"], + taunt: ["8M", "8L49"], + thief: ["8M"], + throatchop: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderpunch: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + xscissor: ["8M"], + }, + }, + wurmple: { + learnset: { + bugbite: ["7T", "7L15", "6T", "6L15", "5T", "5L15", "5D", "4T", "4L15"], + electroweb: ["7T", "6T", "5T"], + poisonsting: ["7L5", "6L5", "5L5", "5D", "4L5", "3L5"], + snore: ["7T", "6T", "5T", "5D", "4T"], + stringshot: ["7L1", "6L1", "5L1", "4T", "4L1", "3L1"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 3, level: 2}, + ], + }, + silcoon: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["7T", "6T", "5T"], + harden: ["7L1", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 3, level: 5}, + {generation: 4, level: 5}, + {generation: 6, level: 2, maxEggMoves: 1}, + ], + }, + beautifly: { + learnset: { + absorb: ["7L12", "6L1", "5L1", "4L1", "3L1"], + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["7L20", "6L20", "4T"], + attract: ["7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L35", "6L35", "5L41", "4L41"], + captivate: ["4M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "6T", "5T"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "7L32", "6T", "6L32", "5T", "5L38", "4M", "4L38", "3M", "3L38"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["7L1", "6L1", "5L13", "4L13", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + megadrain: ["7L22", "6L22", "5L24", "4L24", "3L24"], + mimic: ["3T"], + morningsun: ["7L17", "6L17", "5L20", "4L20", "3L20"], + naturalgift: ["4M"], + ominouswind: ["4T"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychic: ["7M", "6M", "5M", "4M", "3M"], + quiverdance: ["7L40", "6L40", "5L45"], + rage: ["7L37", "6L37"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L25", "6L25", "5L34", "4M", "4L34", "3L34"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + stunspore: ["7L15", "6L15", "5L17", "4L17", "3L17"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + venoshock: ["7M", "6M", "5M"], + whirlwind: ["7L30", "6L27", "5L27", "4L27", "3L27"], + }, + }, + cascoon: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["7T", "6T", "5T"], + harden: ["7L1", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 3, level: 5}, + {generation: 4, level: 5}, + {generation: 6, level: 2, maxEggMoves: 1}, + ], + }, + dustox: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L35", "6L35", "5L41", "4L41"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["7L12", "6L1", "5L1", "4L1", "3L1"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "6T", "5T"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["7L1", "6L1", "5L13", "4L13", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + lightscreen: ["7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + mimic: ["3T"], + moonlight: ["7L17", "6L17", "5L20", "4L20", "3L20"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poisonpowder: ["7L15", "6L15"], + protect: ["7M", "7L37", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L17"], + psybeam: ["7L22", "6L22", "5L24", "4L24", "3L24"], + psychic: ["7M", "6M", "5M", "4M", "3M"], + quiverdance: ["7L40", "6L40", "5L45"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L25", "6L25", "5L34", "4M", "4L34", "3L34"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "6M", "5M", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7L32", "6M", "6L32", "5M", "5L38", "4M", "4L38", "3M", "3L38"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + venoshock: ["7M", "7L20", "6M", "6L20", "5M"], + whirlwind: ["7L30", "6L27", "5L27", "4L27", "3L27"], + }, + }, + lotad: { + learnset: { + absorb: ["9L3", "8L3", "7L6", "6L5", "5L5", "5D", "4L5", "3L7", "3S0"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bubble: ["7L9", "6L9"], + bubblebeam: ["9L20", "8L20", "7L21", "6L21", "5L25", "4L25"], + bulletseed: ["9M", "8M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + disarmingvoice: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L43", "8M", "8L43", "7M", "7L36", "6M", "6L36", "5M", "5L45", "4M", "4L43"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L16", "8L16", "7E", "6E", "5E", "4E", "3E"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L28", "8M", "8L28", "7T", "7L30", "7E", "6T", "6L30", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + leechseed: ["9L24", "8E", "7E", "6E", "5E", "5D", "4E", "3E"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "7L18", "6L18", "5L19", "4L19", "3L43"], + mimic: ["3T"], + mist: ["9L9", "8L9", "7L15", "6L11", "5L11", "4L11", "3L21"], + naturalgift: ["7L12", "6L12", "5L15", "4M", "4L15"], + naturepower: ["8L24", "7M", "7L24", "6M", "6L7", "5L7", "4L7", "3L13"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L33", "8M", "8L33", "7M", "7L27", "6M", "6L27", "5M", "5L37", "4M", "4L35", "3M", "3L31"], + razorleaf: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + takedown: ["9M"], + teeterdance: ["9E", "8E", "7E", "6E", "5E"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + watergun: ["9L6", "8L6", "7E", "6E", "5E", "4E", "3E"], + waterpulse: ["9M", "7T", "6T", "5D", "4M", "3M"], + weatherball: ["9M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["9M", "9L38", "8M", "8L38", "7T", "7L33", "6T", "6L31", "5T", "5L31", "4T", "4L27"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["astonish", "growl", "absorb"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 3}, + ], + }, + lombre: { + learnset: { + absorb: ["9L1", "8L1", "7L6", "6L5", "5L5", "4L5", "3L7"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L9", "6L9"], + bubblebeam: ["9L24", "8L24", "7L24", "6L24", "5L25", "4L25"], + bulletseed: ["9M", "8M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L57", "8M", "8L57", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "7L16", "6L11", "5L11", "4L11", "3L19"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L1", "8L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyswipes: ["9L18", "8L18", "7L12", "6L12", "5L15", "4L15", "3L25"], + gigadrain: ["9M", "9L36", "8M", "8L36", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "9L64", "8M", "8L64", "7L44", "6L44", "5L45", "4L43", "3L49"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["9M", "9L1", "8L1", "7T", "7L36", "6T", "6L36"], + leechseed: ["9L30"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mimic: ["3T"], + mist: ["9L9", "8L9"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["8L30", "7M", "7L28", "6M", "6L7", "5L7", "4L7", "3L13"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "8L43", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + teeterdance: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3L37"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "7L32", "6T", "6L32", "5T", "5L37", "4T", "4L35", "3L43"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L20", "6L19", "5L19", "4L19", "3L31"], + weatherball: ["9M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["9M", "9L50", "8M", "8L50", "7T", "7L40", "6T", "6L31", "5T", "5L31", "4T", "4L27"], + }, + encounters: [ + {generation: 6, level: 13, maxEggMoves: 1}, + ], + }, + ludicolo: { + learnset: { + absorb: ["9L1", "8L1", "3L1"], + amnesia: ["9M", "8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["9L1", "8L1"], + bulletseed: ["9M", "8M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "5S0"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L1", "8L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyswipes: ["9L1", "8L1"], + gigadrain: ["9M", "8M", "8L1", "7T", "6T", "5T", "5S0", "5S1", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "9L1", "8M", "8L1", "5S0"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S0", "5S1", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["9M", "9L1", "8L1", "7T", "6T"], + leafstorm: ["9M", "8M"], + magicalleaf: ["9M"], + megadrain: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + mist: ["9L1", "8L1"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["8L1", "7M", "7L1", "6M", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M", "5S1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "5S1", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + teeterdance: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, abilities: ["swiftswim"], moves: ["fakeout", "hydropump", "icebeam", "gigadrain"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "M", nature: "Calm", abilities: ["swiftswim"], moves: ["scald", "gigadrain", "icebeam", "sunnyday"], pokeball: "pokeball"}, + ], + }, + seedot: { + learnset: { + absorb: ["9L3", "8L3"], + amnesia: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + astonish: ["9L6", "8L6"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "6E", "5E"], + bide: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + bodyslam: ["9M", "8M", "3T"], + bulletseed: ["9M", "8M", "7E", "6E", "5E", "5D", "4M", "3M", "3S1"], + captivate: ["4M"], + confide: ["7M", "6M"], + defensecurl: ["3T"], + defog: ["9E", "8E", "7T", "7E", "6E", "5E"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["9L33", "8L33", "7M", "7L33", "6M", "6L33", "5M", "5L43", "4M", "4L43", "3T", "3L43"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M", "3S1"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7E", "6E"], + growth: ["9L9", "8L9", "7L9", "6L7", "5L7", "5D", "4L7", "3L7", "3S0"], + harden: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], + headbutt: ["9L21", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + leafstorm: ["9M"], + leechseed: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + magicalleaf: ["9M"], + megadrain: ["9L15", "8L15"], + mimic: ["3T"], + nastyplot: ["9M", "8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + naturepower: ["8L21", "7M", "7L15", "6M", "6L13", "5L13", "4L13", "3L13"], + nightslash: ["9E", "8E"], + payback: ["9L18", "8M", "8L18"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + raindance: ["9M"], + razorwind: ["7E", "6E", "5E", "4E", "3E"], + refresh: ["3S1"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["9L12", "8L12", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M", "3S1"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L30", "8L30"], + sunnyday: ["9M", "9L24", "8M", "8L24", "7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L27", "8L27", "7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L21"], + tackle: ["9L1", "8L1"], + takedown: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + worryseed: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["bide", "harden", "growth"], pokeball: "pokeball"}, + {generation: 3, level: 17, moves: ["refresh", "gigadrain", "bulletseed", "secretpower"]}, + ], + encounters: [ + {generation: 3, level: 3}, + ], + }, + nuzleaf: { + learnset: { + absorb: ["9L1", "8L1"], + aircutter: ["9M", "9L1", "8L1"], + amnesia: ["9M", "8M"], + assurance: ["8M"], + astonish: ["9L1", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["9M", "8M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + defog: ["7T"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3T"], + extrasensory: ["9L43", "8L43", "7L36", "6L36", "5L49", "4L49", "3L49"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "7L12", "6L12", "5L19", "4L19", "3L19"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L24", "6L24", "5L31", "4L31", "3L31"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L9", "8L9", "7L6", "6L6", "5L7", "4L7", "3L7"], + harden: ["9L1", "8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leafblade: ["9L57", "8M", "8L57", "7L28", "6L28"], + leafstorm: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + megadrain: ["9L18", "8L18"], + megakick: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + naturepower: ["8L30", "7M", "7L16", "6M", "6L9", "5L13", "4L13", "3L13"], + payback: ["9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], + pound: ["7L1", "6L1", "5L1", "4L1", "3L1"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M"], + razorleaf: ["9L0", "8L0", "7L1", "6L1", "5L1", "4L1"], + razorwind: ["7L20", "6L20", "5L37", "4L37", "3L37"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L12", "8L12", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L50", "8L50"], + sunnyday: ["9M", "9L36", "8M", "8L36", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "7L32", "6M", "6L32", "5M", "5L43", "4M", "4L43", "3T", "3L43"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L30", "8L1", "7T", "6T", "5T", "4T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + torment: ["9L1", "8L1", "7M", "7L9", "6M", "6L16", "5M", "5L25", "4M", "4L25", "3M", "3L25"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M"], + weatherball: ["9M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 6, level: 13, maxEggMoves: 1}, + ], + }, + shiftry: { + learnset: { + absorb: ["9L1", "8L1"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "9L1", "8L1", "4T"], + airslash: ["9M", "8M"], + amnesia: ["9M", "8M"], + assurance: ["8M"], + astonish: ["9L1", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + beatup: ["9L1", "8M"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulletseed: ["9M", "8M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + defog: ["7T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3T"], + extrasensory: ["9L1", "8L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L1", "6L1", "5L1", "4L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "3L1"], + harden: ["9L1", "8L1", "3L1"], + headbutt: ["4T"], + heatwave: ["9M", "8M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L1", "8M", "8L1", "7L32", "6L32"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + leafblade: ["9L0", "8M", "8L1"], + leafstorm: ["9M", "8M", "7L44", "6L44", "5L49", "4L49"], + leaftornado: ["8L0", "7L20", "6L19", "5L19"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + megadrain: ["9L1", "8L1"], + megakick: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + naturepower: ["8L1", "7M", "6M", "3L1"], + ominouswind: ["4T"], + payback: ["9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + pound: ["3L1"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M"], + razorleaf: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + reversal: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L1", "8L1", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L1", "8L1", "4T"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + tackle: ["9L1", "8L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + torment: ["9L1", "8L1", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + twister: ["4T"], + uproar: ["9M"], + vacuumwave: ["9M"], + weatherball: ["9M"], + whirlwind: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + willowisp: ["9M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + }, + taillow: { + learnset: { + aerialace: ["7M", "7L21", "6M", "6L21", "5M", "5L34", "4M", "4L34", "3M", "3L34"], + agility: ["7L29", "6L29", "5L43", "4L43", "3L43"], + aircutter: ["4T"], + airslash: ["7L33", "6L33", "5L53", "4L53"], + attract: ["7M", "6M", "5M", "4M", "3M"], + boomburst: ["7E", "6E"], + bravebird: ["7L41", "7E", "6L41", "6E", "5E", "5D", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defog: ["7T", "7E", "6E", "5E", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7L17", "6M", "6L17", "5M", "5L19", "4M", "4L19", "3M", "3L19"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L37", "6T", "6L26", "5T", "5L26", "4T", "4L26", "3L26"], + endure: ["5D", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + featherdance: ["3S0"], + fly: ["7M", "6M", "5M", "4M", "3M"], + focusenergy: ["7L5", "6L4", "5L4", "4L4", "3L4", "3S0"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["7E"], + mimic: ["3T"], + mirrormove: ["7E", "6E", "5E", "5D", "4E", "3E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + quickattack: ["7L9", "6L7", "5L8", "4L8", "3L8"], + quickguard: ["7L25", "6L25"], + rage: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["7L45"], + roost: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7E", "6T", "6E", "5E", "4E", "3T", "3E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7E", "6M", "6E", "5E", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + supersonic: ["7E", "6E", "5E", "4E", "3E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "5D", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + whirlwind: ["7E", "6E", "5E", "4E"], + wingattack: ["7L13", "6L13", "5L13", "4L13", "3L13"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "focusenergy", "featherdance"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + encounters: [ + {generation: 3, level: 4}, + ], + }, + swellow: { + learnset: { + aerialace: ["7M", "7L21", "6M", "6L21", "5M", "5L38", "4M", "4L38", "3M", "3L38"], + agility: ["7L33", "6L33", "5L49", "4L49", "3L49", "3S0"], + aircutter: ["4T"], + airslash: ["7L1", "6L1", "5L61", "4L61"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bravebird: ["7L1", "6L1"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7L17", "6M", "6L17", "5M", "5L19", "4M", "4L19", "3M", "3L19"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L45", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L28"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M", "3S0"], + fly: ["7M", "6M", "5M", "4M", "3M"], + focusenergy: ["7L1", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["7L1", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L1", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["7M", "6M", "5M", "4M", "3M"], + quickattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["7L27", "6L27"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["7L57"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T", "3T", "3S0"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "6M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + wingattack: ["7L13", "6L13", "5L13", "4L13", "3L13"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 43, moves: ["batonpass", "skyattack", "agility", "facade"]}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + wingull: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9E", "8E", "7M", "7L29", "6M", "6L29", "5M", "5L42", "4M", "4L42", "3M"], + agility: ["9M", "9L26", "8M", "8L26", "7L36", "7E", "6L36", "6E", "5L37", "5E", "4L37", "4E", "3L55", "3E"], + aircutter: ["9M", "9E", "8E", "7L22", "6L22", "5L33", "4T"], + airslash: ["9M", "9L30", "8M", "8L30", "7L40", "6L40", "5L47", "4L47"], + aquaring: ["9E", "8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bravebird: ["9M"], + brine: ["8M", "7E", "6E", "5E", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gust: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L45", "8M", "8L45", "7L43", "6L43", "5L50"], + hydropump: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + mist: ["9L35", "8L35", "7L12", "7E", "6L12", "6E", "5L16", "5E", "4L16", "4E", "3L21", "3E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L26", "6L26", "5L34", "4L34", "3L43"], + quickattack: ["9L5", "8L5", "7L19", "6L19", "5L24", "4L24", "3L31"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "7M", "7L33", "7E", "6M", "6L26", "6E", "5T", "5L29", "5E", "4M", "4L29"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "5D", "4M", "3M"], + skyattack: ["7T", "6T", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["9E", "8E", "7E", "6E"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9L10", "8L10", "7L5", "6L5", "5L6", "4L6", "3L7"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["9E", "8E", "7E", "6E", "5E", "5D", "4T", "4E", "3E"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L19", "4M", "4L19", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + wideguard: ["9E", "8E", "7E", "6E"], + wingattack: ["9L15", "8L15", "7L8", "6L8", "5L11", "4L11", "3L13"], + }, + encounters: [ + {generation: 3, level: 2}, + ], + }, + pelipper: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L1", "8M", "8L1"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L1", "8M", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M"], + bravebird: ["9M", "8M"], + brine: ["8M", "7L22", "6L28", "5L34", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L34", "8M", "8L34", "7M", "7L28", "6M", "6L39", "5M", "5L43", "4M", "4L43"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L55", "8M", "8L55", "7L1", "6L1", "5L63"], + hydropump: ["9M", "9L62", "8M", "8L62", "7L1", "6L1", "5L57", "4L57", "3L61"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + mist: ["9L41", "8L41", "7L12", "6L12", "5L16", "4L16", "3L21"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L24", "4M", "4L24"], + pluck: ["5M", "4M"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L25"], + quickattack: ["9L1", "8L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9L48", "8L48", "7M", "7L39", "6M", "6L22", "5T", "5L31", "4M", "4L31"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shockwave: ["7T", "6T", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["9L1", "8L1", "7L1", "6L1", "5L1"], + spitup: ["9L28", "8L28", "7L33", "6L33", "5L38", "4L38", "3L47"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + stockpile: ["9L28", "8L28", "7L33", "6L33", "5L38", "4L38", "3L33"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9L1", "8L1", "7L5", "6L5", "5L6", "4L6", "3L7"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9L28", "8L28", "7L33", "6L33", "5L38", "4L38", "3L33"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L50", "4T", "4L50"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L19", "4M", "4L19", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "4M"], + wingattack: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 4, level: 15}, + {generation: 6, level: 18, maxEggMoves: 1}, + ], + }, + ralts: { + learnset: { + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "9L27", "8M", "8L27", "7M", "7L24", "6M", "6L24", "5M", "5L28", "4M", "4L23", "3M", "3L21"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L24", "8M", "8L24", "7L34", "6L34", "5L43", "4L39", "3S1"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + confusion: ["9L6", "8L6", "7L4", "6L4", "5L6", "5D", "4L6", "3L6", "3S2"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defensecurl: ["3T"], + destinybond: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "3E"], + disable: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["9L3", "8L3", "7M", "7L6", "6M", "6L6", "5M", "5L10", "4M", "4L10", "3M", "3L11"], + drainingkiss: ["9M", "9L12", "8M", "8L12", "7L22", "6L22"], + dreameater: ["9L36", "8L36", "7M", "7L39", "6M", "6L39", "5M", "5L50", "4M", "4L45", "3T", "3L46"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M", "7E", "6E", "6S3", "5E", "4E"], + endure: ["9M", "8M", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L39", "8M", "8L39", "7L32", "6L32", "5L39", "4L34", "3L36"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "6S3", "5L1", "4L1", "3L1", "3S0", "3S1"], + grudge: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + healpulse: ["9L33", "8L33", "7L19", "6L19", "5L23"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L9", "8L9", "7L37", "6L37", "5L45", "4L43", "3L41"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7L29", "6L29", "5L34", "4L32", "3L31"], + knockoff: ["9M", "9E", "8E"], + lifedew: ["9L21", "8L21"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L14", "6L14", "5L17", "4L17"], + magicalleaf: ["9M", "8M", "7L17", "6L17", "5L21", "4L21"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + meanlook: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + megakick: ["8M"], + megapunch: ["8M"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + metronome: ["9M"], + mimic: ["3T"], + mistyterrain: ["9M", "8M", "7E", "6E"], + mudslap: ["4T", "3T"], + mysticalfire: ["9E"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L30", "8M", "8L30", "7M", "7L27", "6M", "6L27", "5M", "5L32", "4M", "4L28", "3M", "3L26"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3S2"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shadowsneak: ["9E", "8E", "7E", "6E", "5E", "4E"], + shockwave: ["7T", "6T", "4M", "3M", "3S2"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["3S2"], + skillswap: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7L42", "6L42", "5L54"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T"], + synchronoise: ["7E", "6E", "5E"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L9", "6L9", "5L12", "4L12", "3L16"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], + wish: ["3S0"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["growl", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["growl", "charm"], pokeball: "pokeball"}, + {generation: 3, level: 20, moves: ["sing", "shockwave", "reflect", "confusion"]}, + {generation: 6, level: 1, isHidden: true, moves: ["growl", "encore"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 4}, + ], + }, + kirlia: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "9L33", "8M", "8L33", "7M", "7L26", "6M", "6L26", "5M", "5L31", "4M", "4L25", "3M", "3L21"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L28", "8M", "8L28", "7L40", "6L40", "5L50", "4L45"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defensecurl: ["3T"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + drainingkiss: ["9M", "9L12", "8M", "8L12", "7L23", "6L23"], + dreameater: ["9L48", "8L48", "7M", "7L47", "6M", "6L47", "5M", "5L59", "4M", "4L53", "3T", "3L54"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L53", "8M", "8L53", "7L37", "6L37", "5L45", "4L39", "3L40"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + healpulse: ["9L43", "8L43", "7L19", "6L19", "5L25"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L9", "8L9", "7L44", "6L44", "5L53", "4L50", "3L47"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7L33", "6L33", "5L39", "4L36", "3L33"], + knockoff: ["9M"], + lifedew: ["9L23", "8L23"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L14", "6L14", "5L17", "4L17"], + magicalleaf: ["9M", "8M", "7L17", "6L17", "5L22", "4L22", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mimic: ["3T"], + mistyterrain: ["9M", "8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L38", "8M", "8L38", "7M", "7L30", "6M", "6L30", "5M", "5L36", "4M", "4L31", "3M", "3L26"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7L51", "6L51", "5L64"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1", "3L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 4, level: 6}, + ], + }, + gardevoir: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "9L35", "8M", "8L35", "7M", "7L26", "6M", "6L26", "6S1", "5M", "5L33", "4M", "4L25", "3M", "3L21"], + captivate: ["7L44", "6L44", "5L60", "4M", "4L53"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + dazzlinggleam: ["9M", "9L0", "8M", "8L0", "7M", "6M", "6S1"], + defensecurl: ["3T"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + drainingkiss: ["9M", "9L12", "8M", "8L12", "7L23", "6L23"], + dreameater: ["9L56", "8L56", "7M", "7L53", "6M", "6L53", "5M", "5L73", "4M", "4L65", "3T", "3L60"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L63", "8M", "8L63", "7L40", "6L40", "5L53", "4L45", "3L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + guardswap: ["8M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + healpulse: ["9L1", "8L49", "7L19", "6L19", "5L25"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L9", "8L9", "7L49", "6L49", "5L65", "5S0", "4L60", "3L51"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7L35", "6L35", "5L45", "4L40", "3L33"], + knockoff: ["9M"], + laserfocus: ["7T"], + lifedew: ["9L23", "8L23"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M", "8M", "7L17", "6L17", "5L22", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mimic: ["3T"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + moonblast: ["9L49", "8L1", "7L1", "6L1", "6S1"], + mudslap: ["4T", "3T"], + mysticalfire: ["9L1", "8M"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L42", "8M", "8L42", "7M", "7L31", "6M", "6L31", "5M", "5L40", "5S0", "4M", "4L33", "3M", "3L26"], + psychicterrain: ["9M", "8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7L1", "6L1", "6S1", "5L80"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1", "3L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + vacuumwave: ["9M"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + wish: ["9L28", "8L28", "7L14", "6L14", "5L17", "4L17"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, abilities: ["trace"], moves: ["hypnosis", "thunderbolt", "focusblast", "psychic"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: true, gender: "F", abilities: ["synchronize"], moves: ["dazzlinggleam", "moonblast", "storedpower", "calmmind"], pokeball: "cherishball"}, + ], + }, + gallade: { + learnset: { + aerialace: ["9M", "9L18", "8L18", "7M", "7L17", "6M", "5M", "4M"], + agility: ["9M"], + airslash: ["9M", "8M"], + allyswitch: ["8M", "7T", "5M"], + aquacutter: ["9L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + closecombat: ["9M", "9L63", "8M", "8L63", "7L1", "6L1", "5L59", "4L53"], + coaching: ["8T"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + drainingkiss: ["9M", "9L1", "8M", "8L1"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["9L1", "8L1", "7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "9L23", "8M", "8L23", "7M", "7L44", "6M", "6L44", "5M", "5L50", "4M", "4L45"], + feint: ["9L12", "8L12", "7L40", "6L40", "5L45", "4L39"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9L1", "8L1", "7L14", "6L14", "5L17", "4T", "4L17"], + futuresight: ["9L1", "8M", "8L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1"], + headbutt: ["4T"], + healpulse: ["9L49", "8L49", "7L19", "6L19", "5L25"], + helpinghand: ["9M", "9L9", "8M", "8L9", "7T", "7L35", "6T", "6L35", "5T", "5L39", "4T", "4L36"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L1", "8L1"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M"], + imprison: ["9M", "9L1", "8M", "8L1"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leafblade: ["9L1", "8M", "7L1", "6L1", "5L1", "4L1"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mistyterrain: ["9M", "8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + nightslash: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "9L28", "8M", "8L28", "7M", "7L49", "6M", "6L49", "5M", "5L53", "4M", "4L50"], + psybeam: ["9M", "9L1", "8L1"], + psychic: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M"], + psychocut: ["9L42", "8M", "8L42", "7L31", "6L31", "5L36", "4L31"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + quickguard: ["9L56", "8L56", "7L11", "6L11"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["9L1"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + slash: ["9L0", "8L0", "7L1", "6L17", "5L22", "4L22"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarblade: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M", "7L1", "6L1", "5L64"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "9L35", "8M", "8L35", "7M", "7L26", "6M", "6L26", "5M", "5L31", "4M", "4L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + vacuumwave: ["9M", "4T"], + wideguard: ["9L56", "8L56", "7L23", "6L23"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + surskit: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L22", "7L22", "6L22", "5L31", "4L31", "3L31"], + aquajet: ["9E", "7L30", "7E", "6L30", "6E", "5E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9L35", "7L35", "6L35", "5L43", "4L43"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + bubblebeam: ["9L17", "7L17", "6L17", "5L25", "4L25", "3L25"], + bugbite: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbuzz: ["9M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fellstinger: ["9E", "7E", "6E"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "6T", "5T", "5D", "4M", "3M"], + haze: ["9M", "9L25", "7L25", "6L25", "5L37", "4L37", "3L37"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3E"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + leechlife: ["9M"], + liquidation: ["9M", "7T"], + lunge: ["9M", "9E", "7E"], + mimic: ["3T"], + mindreader: ["7E", "6E", "5E", "4E", "3E"], + mist: ["9L25", "7L25", "6L25", "5L37", "4L37", "3L37"], + mudshot: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + mudslap: ["9M", "4T"], + mudsport: ["3S0"], + naturalgift: ["4M"], + pounce: ["9M"], + powersplit: ["9E", "7E", "6E"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["9L6", "7L6", "6L6", "5L7", "4L7", "3L7", "3S1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + soak: ["9L14"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stickyweb: ["9L38", "7L38", "6L38"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L9", "7L9", "6L9", "5L13", "4L13", "3L13"], + swift: ["4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L14", "6L14", "5L19", "4L19", "3L19"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", moves: ["bubble", "quickattack"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 3}, + ], + }, + masquerain: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + aircutter: ["9M", "9L22", "7L22", "6L22", "4T"], + airslash: ["9M", "9L32", "7L38", "6L38", "5L47", "4L47"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "4L1", "3L1"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L44", "7L1", "6L1", "5L61", "4L61"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["9M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L38", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gust: ["9L17", "7L17", "6L17", "5L22", "4L22", "3L26"], + haze: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + leechlife: ["9M"], + liquidation: ["9M", "7T"], + lunge: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + nightmare: ["3T"], + ominouswind: ["7L1", "6L1", "5L1", "4T", "4L1"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quiverdance: ["9L52", "7L1", "6L1", "5L68"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["9M", "9L22", "7L22", "6L22", "5L26", "4L26", "3L33"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L32", "6L32", "5L40", "4M", "4L40", "3L47"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + soak: ["9L1"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + stunspore: ["9L26", "7L26", "6L26", "5L33", "4L33", "3L40"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + swift: ["9M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M"], + whirlwind: ["9L1", "7L1", "6L1", "5L54", "4L54", "3L53"], + }, + encounters: [ + {generation: 6, level: 21, maxEggMoves: 1}, + ], + }, + shroomish: { + learnset: { + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + bulletseed: ["9M", "7E", "6E", "5E", "5D", "4M", "3M"], + captivate: ["4M"], + charm: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + falseswipe: ["9M", "7M", "6M", "5M", "4E", "3E", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "5D"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L37", "4M", "4L37", "3M", "3L45"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + growth: ["9L29", "7L29", "6L29", "5L33", "4L33", "3L36"], + gunkshot: ["9M"], + headbutt: ["9L15", "7L15", "6L15", "5L21", "4T", "4L21", "3L22"], + helpinghand: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + leechseed: ["9L8", "7L8", "6L8", "5L13", "4L13", "3L10"], + magicalleaf: ["9M"], + megadrain: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L16", "3S0"], + mimic: ["3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + poisonpowder: ["9L19", "7L19", "6L19", "5L25", "4L25", "3L28"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + refresh: ["3S0"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9L36", "7T", "7L36", "7E", "6T", "6L36", "6E", "5T", "5L41", "5E", "4T", "4L41", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spore: ["9L40", "7L40", "6L40", "5L45", "4L45", "3L54"], + stunspore: ["9L5", "7L5", "6L5", "5L9", "5D", "4L9", "3L7", "3S0"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["9M"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L5", "4L5", "3L4"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], + venoshock: ["9M", "7M", "6M", "5M"], + wakeupslap: ["7E", "6E", "5E", "4E"], + worryseed: ["9E", "7T", "7L22", "7E", "6T", "6L22", "6E", "5T", "5L29", "5E", "4T", "4L29", "4E"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 15, abilities: ["effectspore"], moves: ["refresh", "falseswipe", "megadrain", "stunspore"]}, + ], + }, + breloom: { + learnset: { + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + aerialace: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "9L39", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + charm: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["9L22", "7L22", "6L22", "5L25", "4L25", "3T", "3L28"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["9L50", "7L50", "6L45", "5L45", "4L45", "3T", "3L54"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + falseswipe: ["9M", "7M", "6M", "5M"], + feint: ["9L19", "7L19", "6L19"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "9L55", "7T", "6T", "4M", "3M"], + forcepalm: ["9L28", "7L28", "6L28", "5L29", "4L29"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + growth: ["9L1"], + gunkshot: ["9M"], + headbutt: ["9L15", "7L15", "6L15", "5L21", "4T", "4L21", "3L22"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leafstorm: ["9M"], + leechseed: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M"], + lowsweep: ["9M", "7M", "6M", "5M"], + machpunch: ["9L0", "7L1", "6L23", "5L23", "4L23", "3L23"], + magicalleaf: ["9M"], + megadrain: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L16"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mindreader: ["7L33", "6L33", "5L37", "4L37", "3L45"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + poisonjab: ["9M"], + poisonpowder: ["9L1"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9L44", "7T", "7L44", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + seismictoss: ["3T"], + skyuppercut: ["7L39", "6L33", "5L33", "4L33", "3L36"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + stunspore: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["9M", "9L1", "7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + venoshock: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + worryseed: ["9L33", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + }, + slakoth: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + afteryou: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["9M", "9L17", "7L17", "6L17", "5L25", "4L25", "3L25"], + attract: ["7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9E", "7E", "6E", "5E", "4E", "3T", "3E"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L25", "6L25", "5L37"], + confide: ["7M", "6M"], + counter: ["9L30", "7L30", "6L30", "5L43", "4L37", "3T", "3L37"], + covet: ["9L22", "7T", "7L22", "6T", "6L22", "5T", "5L31", "4L31", "3L31"], + crushclaw: ["9E", "7E", "6E", "5E", "4E", "3E"], + curse: ["9E", "7E", "6E", "5E", "4E", "3E"], + cut: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + encore: ["9M", "9L6", "7L6", "6L6", "5L7", "4L7", "3L7"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + feintattack: ["7L14", "6L14", "5L19", "4L19", "3L19"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L33", "7L33", "6L33", "5L49", "4L43", "3L43"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9E", "7E", "6E", "5E", "4E"], + headbutt: ["9L14", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7E", "6E", "5E", "5D", "4E"], + playrough: ["9M", "9L38", "7L38", "6L38"], + poisonjab: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slackoff: ["9L9", "7L9", "6L9", "5L13", "4L13", "3L13"], + slash: ["9E", "7E", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + snore: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["5D", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L25"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + tickle: ["9E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + xscissor: ["9M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + zenheadbutt: ["9M"], + }, + }, + vigoroth: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L27", "6L27", "5L43"], + confide: ["7M", "6M"], + counter: ["9L33", "7L33", "6L33", "5L37", "4L37", "3T", "3L37"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "9L17", "7L17", "6L17", "5L25", "4M", "4L25", "3T", "3L25"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5L49", "4M", "4L43", "3M", "3L43"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["9L14", "7L14", "6L14", "5L19", "4L19", "3L19"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M"], + playrough: ["9M"], + poisonjab: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L43", "7L1", "6L1", "5L55", "4L49", "3L49"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["9L23", "7L23", "6L23", "5L31", "4L31", "3L31"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L27"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + slaking: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "4S0", "3M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L17", "7L17", "6L17", "5L25", "4L25", "3L25"], + attract: ["7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L27", "6L27", "5L37"], + confide: ["7M", "6M"], + counter: ["9L33", "7L33", "6L33", "5L43", "4L37", "3T", "3L37"], + covet: ["9L23", "7T", "7L23", "6T", "6L23", "5T", "5L31", "4L31", "3L31"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + feintattack: ["7L14", "6L14", "5L19", "4L19", "3L19"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L39", "7L39", "6L39", "5L49", "4L43", "3L43"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L45", "7M", "7L1", "6M", "6L1", "5M", "5L55", "4M", "4L49"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M", "4S0"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L63", "7L1", "6L1", "5L67", "4L61"], + headbutt: ["4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["9L52", "3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M"], + playrough: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + punishment: ["7L1", "6L1", "5L61", "4L55"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "4S0", "3M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M", "4S0"], + shockwave: ["7T", "6T", "4M", "3M"], + slackoff: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["9M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L1", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L0", "7M", "7L1", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L27"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["9M"], + workup: ["7M", "5M"], + xscissor: ["9M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Adamant", moves: ["gigaimpact", "return", "shadowclaw", "aerialace"], pokeball: "cherishball"}, + ], + }, + nincada: { + learnset: { + absorb: ["8L21", "7L5"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + bide: ["7L29", "6L29"], + bugbite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbuzz: ["8M", "7E", "6E", "5E", "4E"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8L40", "7L37", "6M", "6L37", "5M", "5L45", "4M", "4L45", "3M", "3L45"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7E", "6E", "5E", "5D", "4M", "4E", "3T", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L10", "7M", "7L33", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3L25"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + finalgambit: ["8E", "7E", "6E", "5E"], + flail: ["8E"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["8L30", "7L13", "6L13", "5L14", "4L14", "3L14"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gust: ["8E", "7E", "6E", "5E", "4E", "3E"], + harden: ["8L5", "7L1", "6L1", "5L1", "4L1", "3L1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + leechlife: ["8M", "7M", "6L5", "5L5", "5D", "4L5", "3L5"], + metalclaw: ["8L25", "7L21", "6L21", "5L38", "4L38", "3L38"], + mimic: ["3T"], + mindreader: ["8L35", "7L25", "6L19", "5L19", "4L19", "3L19"], + mudslap: ["8L15", "7L17", "6L17", "5L31", "4T", "4L31", "3T", "3L31"], + naturalgift: ["4M"], + nightslash: ["8E", "7E", "6E", "5E", "5D", "4E"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L9", "6L9", "5L9", "4L9", "3L9"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["7E", "6E", "5E", "4E", "3E"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + ninjask: { + learnset: { + absorb: ["8L23", "7L1"], + acrobatics: ["8M"], + aerialace: ["8L1", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L15", "7L17", "6L17", "5L38", "4L38", "3L38"], + aircutter: ["4T"], + airslash: ["8M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L1", "7L35", "6L35", "5L45", "4L45", "3L45"], + bugbite: ["8L29", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["8L0", "7M", "7L1", "6M", "6L20", "5M", "5L20", "4M", "4L20", "3M", "3L20"], + dualwingbeat: ["8T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L0", "7L1", "6L20", "5L20", "4T", "4L20", "3T", "3L20"], + furyswipes: ["8L36", "7L13", "6L13", "5L14", "4L14", "3L14"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + leechlife: ["8M", "7M", "6L1", "5L1", "4L1", "3L1"], + metalclaw: ["8L1"], + mimic: ["3T"], + mindreader: ["8L43", "7L29", "6L19", "5L19", "4L19", "3L19"], + mudslap: ["8L1", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "8L0", "7L1", "6L20", "5L20", "4L20", "3L20"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + skittersmack: ["8T"], + slash: ["8L50", "7L23", "6L23", "5L31", "4L31", "3L31"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "8L57", "7M", "7L41", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3T", "3L25"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + xscissor: ["8M", "8L64", "7M", "7L47", "6M", "6L47", "5M", "5L52", "4M", "4L52"], + }, + }, + shedinja: { + learnset: { + absorb: ["8L23", "7L1"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "4R", "3R"], + allyswitch: ["8M", "7T"], + batonpass: ["4R", "3R"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["8M"], + confide: ["7M", "6M"], + confuseray: ["8L15", "7L29", "6L29", "5L31", "4L31", "3L31", "3S0"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["8L36", "7L13", "6L13", "5L14", "4L14", "3L14"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grudge: ["8L1", "7L37", "6L37", "5L45", "4L45", "3L45", "3S0"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + healblock: ["7L41", "6L41", "5L52", "4L52"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + leechlife: ["8M", "7M", "6L5", "5L5", "4L5", "3L5"], + metalclaw: ["8L1"], + mimic: ["3T"], + mindreader: ["8L43", "7L25", "6L19", "5L19", "4L19", "3L19"], + mudslap: ["8L1", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + phantomforce: ["8M", "8L64", "7L45", "6L45"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L9", "5L9", "4L9", "3L9"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["4R", "3R"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8L50", "7M", "7L33", "6M", "6L33", "5M", "5L59", "4M", "4L59", "3M", "3L38", "3S0"], + shadowclaw: ["8M", "8L1", "7M", "6M", "5M", "4M"], + shadowsneak: ["8L29", "7L21", "6L21", "5L38", "4L38"], + skittersmack: ["8T"], + slash: ["4R", "3R"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["8L57", "7T", "7L17", "6T", "6L17", "5T", "5L25", "4T", "4L25", "3L25", "3S0"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["4R", "3R"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["spite", "confuseray", "shadowball", "grudge"], pokeball: "pokeball"}, + ], + }, + whismur: { + learnset: { + astonish: ["8L1", "7L8", "6L8", "5L11", "4L11", "3L11"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + circlethrow: ["8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + disarmingvoice: ["8E", "7E", "6E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + echoedvoice: ["8L5", "7M", "7L4", "6M", "6L4", "5M"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E"], + endure: ["8M", "4M", "3T"], + extrasensory: ["8E", "7E", "6E", "5E", "4E", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M", "7E", "6E", "5E"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L10", "7L11", "6L11", "5L15", "4L15", "3L15"], + hypervoice: ["8M", "8L45", "7T", "7L39", "6T", "6L39", "5T", "5L51", "4L45", "3L45"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L15", "7M", "7L32", "6M", "6L32", "5M", "5L45", "4M", "4L41", "3M", "3L41"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["8L25", "7M", "7L29", "6M", "6L29", "5M", "5L35", "4M", "4L35", "3M", "3L35"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L40", "7L15", "6L15", "5L31", "4L31", "3L31"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "8L15", "7M", "7L36", "6M", "6L36", "5T", "5L45", "4M", "4L41", "3T", "3L41"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + smokescreen: ["8E", "7E", "6E", "5E", "4E"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stomp: ["8L21", "7L22", "6L22", "5L25", "4L25", "3L25"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L30", "7L18", "6L18", "5L21", "4L21", "3L21"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + synchronoise: ["7L43", "6L41", "5L41"], + takedown: ["8E", "7E", "6E", "5E", "4E", "3E"], + teeterdance: ["3S0"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "8L35", "7T", "7L25", "6T", "6L5", "5T", "5L5", "5D", "4T", "4L5", "3L5", "3S0"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlwind: ["8E", "7E"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["pound", "uproar", "teeterdance"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + loudred: { + learnset: { + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L0", "7L1", "6L20", "5L20", "4L20"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["8L1", "7M", "7L1", "6M", "6L1", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hypervoice: ["8M", "8L57", "7T", "7L45", "6T", "6L45", "5T", "5L65", "4L57", "3L57"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L15", "7M", "7L36", "6M", "6L36", "5M", "5L57", "4M", "4L51", "3M", "3L51"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["8L29", "7M", "7L32", "6M", "6L32", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L50", "7L15", "6L15", "5L37", "4L37", "3L37"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "8L15", "7M", "7L41", "6M", "6L41", "5T", "5L57", "4M", "4L51", "3T", "3L51"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stomp: ["8L23", "7L23", "6L23", "5L29", "4L29", "3L29"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L36", "7L18", "6L18", "5L23", "4L23", "3L23"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + synchronoise: ["7L50", "6L50", "5L51"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "8L43", "7T", "7L27", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 6, level: 16, maxEggMoves: 1}, + ], + }, + exploud: { + learnset: { + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bite: ["8L1", "7L1", "6L20", "5L20", "4L20"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + boomburst: ["8L72", "7L1", "6L1"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "8L0", "7L1", "6L40", "5L40", "4L40"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["8L1", "7M", "7L1", "6M", "6L1", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hydropump: ["8M"], + hyperbeam: ["8M", "8L81", "7M", "7L64", "6M", "6L64", "5M", "5L79", "4M", "4L71", "3M", "3L40", "3S1"], + hypervoice: ["8M", "8L63", "7T", "7L47", "6T", "6L47", "5T", "5L71", "4L63", "3L63", "3S0"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L15", "7M", "7L36", "6M", "6L36", "5M", "5L55", "4M", "4L55", "3M", "3L55", "3S0"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["8L29", "7M", "7L32", "6M", "6L32", "5M", "5L45", "4M", "4L45", "3M", "3L45", "3S0", "3S1"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L54", "7L15", "6L15", "5L37", "4L37", "3L37", "3S1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "8L15", "7M", "7L42", "6M", "6L42", "5T", "5L63", "4M", "4L55", "3T", "3L55", "3S0"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stomp: ["8L23", "7L23", "6L23", "5L29", "4L29", "3L29", "3S1"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L36", "7L18", "6L18", "5L23", "4L23", "3L23"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + synchronoise: ["7L53", "6L53", "5L55"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + terrainpulse: ["8T"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "8L45", "7T", "7L27", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["roar", "rest", "sleeptalk", "hypervoice"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["stomp", "screech", "hyperbeam", "roar"], pokeball: "pokeball"}, + ], + }, + makuhita: { + learnset: { + armthrust: ["9L7", "7L7", "6L7", "5L7", "5D", "4L7", "3L10", "3S0"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bellydrum: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M", "3S0"], + bulkup: ["9M", "9L22", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletpunch: ["9E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7E", "6E", "5E"], + closecombat: ["9M", "9L40", "7L40", "6L40", "5L40", "4L40"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + crosschop: ["9E", "7E", "6E", "5E", "4E", "3E"], + detect: ["9L28", "7E", "6E", "5E", "4E", "3E"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "9L37", "7L37", "6L37", "5L37", "4M", "4L37", "3T", "3L40"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L19"], + feint: ["9E", "7E", "6E", "5E", "4E"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9M", "9L34", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + forcepalm: ["9L13", "7L13", "6L13", "5L28", "4L28"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["9M", "9L46", "7L46", "6L46", "5L46"], + helpinghand: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], + knockoff: ["9M", "9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L28"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E", "4E", "3E"], + reversal: ["9M", "9L43", "7L43", "6L43", "5L43", "4L43", "3L49"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M", "3S0"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L4", "7L4", "6L4", "5L4", "4L4", "3L4"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["9L31", "7L31", "6L31", "5L31", "4L31", "3T", "3L46"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + smellingsalts: ["7L28", "6L22", "5L22", "4L22", "3L31"], + snore: ["7T", "6T", "5T", "4T", "3T"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["9M", "4T"], + vitalthrow: ["7L22", "6L10", "5L10", "4L10", "3L13"], + wakeupslap: ["7L34", "7E", "6L34", "6E", "5L34", "5E", "4L34", "4E"], + whirlpool: ["4M"], + whirlwind: ["9L16", "7L16", "6L16", "5L16", "4L16", "3L22"], + wideguard: ["9E", "7E", "6E", "5E"], + workup: ["7M", "5M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 18, moves: ["refresh", "brickbreak", "armthrust", "rocktomb"]}, + ], + }, + hariyama: { + learnset: { + armthrust: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bellydrum: ["9L26", "7L26", "6L26", "5L27", "4L27", "3L40"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + brine: ["9L1", "7L1", "6L1", "5L1", "4M", "4L1"], + bulkup: ["9M", "9L22", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L46", "7L46", "6L46", "5L52", "4L52"], + confide: ["7M", "6M"], + counter: ["3T"], + detect: ["9L30"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "9L42", "7L42", "6L42", "5L47", "4M", "4L47", "3T", "3L44"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L19"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9M", "9L38", "7T", "6T", "4M", "3M"], + forcepalm: ["9L13", "7L13", "6L13", "5L32", "4L32"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + headlongrush: ["9L60"], + heavyslam: ["9M", "9L54", "7L54", "6L54", "5L62"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L29"], + lashout: ["9M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L50", "7L50", "6L50", "5L57", "4L57", "3L55"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["9L34", "7L34", "6L34", "5L37", "4L37", "3T", "3L51"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + smellingsalts: ["7L30", "6L22", "5L22", "4L22", "3L33"], + snore: ["7T", "6T", "5T", "4T", "3T"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["7T"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["9M", "4T"], + vitalthrow: ["7L22", "6L10", "5L10", "4L10", "3L13"], + wakeupslap: ["7L38", "6L38", "5L42", "4L42"], + whirlpool: ["4M"], + whirlwind: ["9L16", "7L16", "6L16", "5L16", "4L16", "3L22"], + workup: ["7M", "5M"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 6, level: 22}, + ], + }, + nosepass: { + learnset: { + ancientpower: ["5D", "4T"], + attract: ["7M", "6M", "5M", "4M", "3M"], + block: ["9L7", "7T", "7L7", "7E", "6T", "6L7", "6E", "5T", "5L19", "5E", "4T", "4L19", "4E", "3L16"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["3T"], + discharge: ["9L31", "7L31", "6L31", "5L55", "4L49"], + doubleedge: ["9E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthpower: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L79", "4T", "4L73"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flashcannon: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + harden: ["9L4", "7L4", "6L4", "5L7", "4L7", "3L7"], + headbutt: ["4T"], + headsmash: ["9E"], + heavyslam: ["9M"], + helpinghand: ["9M", "3S0"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + lockon: ["9L43", "7L43", "6L43", "5L73", "4L67", "3L46"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetrise: ["7T", "6T", "5T", "4T"], + magnitude: ["7E", "6E", "5E", "4E", "3E"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["9M", "9L25", "7L25", "6L25", "5L49", "4L49"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L43", "4M", "4L43", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "9L28", "7L28", "6L18", "5L18"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L31", "4M", "4L31", "3T", "3L28", "3S0"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9E", "7E", "6E", "5E", "4T", "4E", "3T", "3E"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L37", "4M", "4L37", "3M", "3L31"], + sandtomb: ["9M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spark: ["9L19", "7L19", "6L19", "5L25"], + stealthrock: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L61", "4M", "4L55"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M", "3S0"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L25", "4M", "4L25", "3T", "3L22", "3S0"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wideguard: ["9E", "7E", "6E"], + zapcannon: ["9L43", "7L43", "6L43", "5L67", "4L61", "3L43"], + }, + eventData: [ + {generation: 3, level: 26, moves: ["helpinghand", "thunderbolt", "thunderwave", "rockslide"]}, + ], + }, + probopass: { + learnset: { + allyswitch: ["7T"], + ancientpower: ["4T"], + attract: ["7M", "6M", "5M", "4M"], + block: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["9M", "7M", "6M"], + discharge: ["9L31", "7L31", "6L31", "5L55", "4L49"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L79", "4T", "4L73"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "7T", "6T", "5T", "4T"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + headbutt: ["4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + lockon: ["9L43", "7L43", "6L43", "5L73", "4L67"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L1", "6L1", "5L1", "4L1"], + magneticflux: ["9L1", "7L1"], + magnetrise: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["9M", "9L25", "7L25", "6L25", "5L49", "4L49"], + protect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L43", "4M", "4L43"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M", "9L28", "7L28", "6L18", "5L18"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L22", "7M", "7L22", "6M", "6L22", "5M", "5L31", "4M", "4L31"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L37", "4M", "4L37"], + sandtomb: ["9M"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + spark: ["9L19", "7L19", "6L19", "5L25"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L61", "4M", "4L55"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L25", "4M", "4L25"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["9L0", "7L1"], + voltswitch: ["9M", "7M", "6M", "5M"], + wideguard: ["9L1", "7L1", "6L1"], + zapcannon: ["9L43", "7L43", "6L43", "5L67", "4L61"], + }, + }, + skitty: { + learnset: { + assist: ["7L31", "6L22", "5L22", "4L18", "3L19"], + attract: ["7M", "7L10", "6M", "6L8", "5M", "5L8", "4M", "4L4", "3M", "3L7", "3S2"], + batonpass: ["7E", "6E", "5E", "4E", "3E"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["7L43", "7E", "6L43", "6E", "5L46", "5E", "5D", "4M", "4L42"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7L25", "6L25", "5L25", "4L22", "3L25"], + confide: ["7M", "6M"], + copycat: ["7L19", "6L18", "5L18", "4L11"], + cosmicpower: ["7E", "6E"], + covet: ["7T", "7L34", "6T", "6L34", "5T", "5L36", "4L32", "3L31"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + disarmingvoice: ["7L13", "6L13"], + doubleedge: ["7L40", "6L40", "5L42", "4L39", "3T", "3L39"], + doubleslap: ["7L16", "6L15", "5L15", "4L15", "3L15"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + faketears: ["7E", "6E", "5E", "4E", "3E"], + feintattack: ["7L22", "6L22", "5L29", "4L25", "3L27"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7L4", "6L4", "5L4", "5D", "4L4"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2"], + headbutt: ["4T"], + healbell: ["7T", "7L37", "6T", "6L37", "5T", "5L39", "4T", "4L36", "3L37"], + helpinghand: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + mimic: ["3T"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + payday: ["3S0"], + playrough: ["7L46", "6L46"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T", "3S1"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + simplebeam: ["7E", "6E", "5E"], + sing: ["7L7", "6L7", "5L11", "4L8", "3L13"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["7E", "6E", "5E", "4T", "4E"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2"], + tailwhip: ["7L1", "6L1", "5L1", "4L1", "3L3", "3S0", "3S1", "3S2"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + tickle: ["7E", "6E", "5E", "5D", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + wakeupslap: ["7L28", "6L28", "5L32", "4L29"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["tackle", "growl", "tailwhip", "payday"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["growl", "tackle", "tailwhip", "rollout"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", abilities: ["cutecharm"], moves: ["growl", "tackle", "tailwhip", "attract"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 3, gender: "F", ivs: {hp: 5, atk: 4, def: 4, spa: 5, spd: 4, spe: 4}, abilities: ["cutecharm"], pokeball: "pokeball"}, + ], + }, + delcatty: { + learnset: { + attract: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1", "3S0"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleslap: ["7L1", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7L1", "6L1", "5L1", "4L1"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["3L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M", "3S0"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M", "3S0"], + sing: ["7L1", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["3S0"], + swift: ["4T", "3T"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 18, abilities: ["cutecharm"], moves: ["sweetkiss", "secretpower", "attract", "shockwave"]}, + ], + }, + sableye: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + allyswitch: ["8M", "7T"], + astonish: ["9L3", "8L3", "7L9", "6L9", "5L11", "4L11", "3L13"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M"], + calmmind: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + captivate: ["7E", "6E", "5E", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "8L6", "7L31", "6L31", "5L46", "4L46", "3L37"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + detect: ["9L18", "8L18", "7L14", "6L14", "5L22", "4L22", "3L25"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L12", "8L12", "7L21", "6L18", "5L18", "4L18", "3L21"], + feint: ["9E", "8E", "7E", "6E", "5E", "4E"], + feintattack: ["7L19", "6L19", "5L32", "4L32", "3L29", "3S1"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flatter: ["9E", "8E", "7E", "6E", "5E", "4E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foresight: ["7L4", "6L4", "5L4", "5D", "4L4", "3L5", "3S0"], + foulplay: ["9M", "9L48", "8M", "8L48", "7T", "7L41", "6T", "6L41", "5T", "5L50", "5S2"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["9L24", "8L24", "7L11", "6L11", "5L15", "4L15", "3L17"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["9M", "8M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "3S1"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M", "7E", "6E"], + incinerate: ["6M", "5M"], + knockoff: ["9M", "9L27", "8L27", "7T", "7L26", "6T", "6L26", "5T", "5L29", "4T", "4L29", "3L33"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + lightscreen: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meanlook: ["9L36", "8L36", "7L46", "7E", "6L1", "6E", "5L60", "5E", "4L57", "3L45"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalburst: ["9E", "8E", "7E", "6E", "5E"], + metalclaw: ["9M"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + moonlight: ["7E", "6E", "5E", "4E", "3E"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M", "8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L21", "8L21", "7L6", "6L6", "5L8", "4L8", "3L9", "3S0"], + octazooka: ["5S2"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + phantomforce: ["9M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poltergeist: ["9M", "8T"], + powergem: ["9M", "9L39", "8M", "8L39", "7L36", "6L36", "5L43", "4L43"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + punishment: ["7L24", "6L24", "5L36", "4L36"], + quash: ["9L30", "8L30", "7M", "7L44", "6M", "6L44"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9E", "8E", "7E", "6E", "6S3", "6S4", "5E", "4E", "3E", "3S1"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "9L45", "8M", "8L45", "7M", "7L39", "6M", "6L39", "6S3", "5M", "5L57", "4M", "4L53", "3M", "3L41", "3S1"], + shadowclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L39", "4M", "4L39"], + shadowsneak: ["9L9", "8L9", "7L16", "6L16", "5L25", "4L25"], + shockwave: ["7T", "6T", "6S4", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "5D", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E", "5D", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + tickle: ["5S2"], + torment: ["9E", "8E", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5S2", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + willowisp: ["9M", "8M", "7M", "6M", "6S3", "6S4", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + xscissor: ["9M"], + zenheadbutt: ["9M", "9L42", "8M", "8L42", "7T", "7L34", "6T", "6L1", "5T", "5L53", "4T", "4L50"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["keeneye"], moves: ["leer", "scratch", "foresight", "nightshade"], pokeball: "pokeball"}, + {generation: 3, level: 33, abilities: ["keeneye"], moves: ["helpinghand", "shadowball", "feintattack", "recover"]}, + {generation: 5, level: 50, gender: "M", isHidden: true, moves: ["foulplay", "octazooka", "tickle", "trick"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Relaxed", ivs: {hp: 31, spa: 31}, isHidden: true, moves: ["calmmind", "willowisp", "recover", "shadowball"], pokeball: "cherishball"}, + {generation: 6, level: 100, nature: "Bold", isHidden: true, moves: ["willowisp", "recover", "taunt", "shockwave"], pokeball: "cherishball"}, + ], + }, + mawile: { + learnset: { + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E", "3E"], + assurance: ["8M"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L8", "7L25", "6L25", "5L31", "4L31", "3L31"], + bite: ["8L12", "7L9", "6L9", "5L11", "4L11", "3L11"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + captivate: ["7E", "6E", "5E", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "8L28", "7L29", "6L29", "5L36", "4L36", "3L36"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dynamicpunch: ["3T"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["8L4", "7L1", "6L1"], + faketears: ["8M", "8L44", "7L5", "6L5", "5L6", "5D", "4L6", "3L6", "3S0"], + falseswipe: ["8M", "7M", "6M", "5M", "4E", "3E", "3S1"], + feintattack: ["7L21", "6L21", "5L26", "4L26", "3L26"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7E", "6E", "6S2", "5E", "5D", "4E"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1"], + guardswap: ["8M", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "7E", "6E", "5E", "4E"], + icepunch: ["8M", "7T", "6T", "5T", "5D", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "8L24", "7T", "7L33", "6T", "6L33", "5T", "5L41", "4T", "4L41", "3L41", "3S1"], + ironhead: ["8M", "8L36", "7T", "7L1", "6T", "6L1", "6S2", "6S3", "5T", "5L56", "4T", "4L56"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalburst: ["7E", "6E", "5E"], + mimic: ["3T"], + mistyterrain: ["8M", "7E", "6E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + playrough: ["8M", "8L48", "7L1", "6L1", "6S2", "6S3"], + poisonfang: ["7E", "6E", "5E", "4E", "3E"], + poweruppunch: ["8E", "7E", "6M"], + protect: ["8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + psychicfangs: ["8M"], + psychup: ["7M", "6M", "5M", "4E", "3T", "3E"], + punishment: ["7E", "6E", "5E", "4E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8E", "7E", "6E", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sing: ["3S1"], + slam: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["8L16", "7L41", "6L41", "5L51", "4L51", "3L46"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stockpile: ["8L16", "7L41", "6L41", "5L51", "4L51", "3L46"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8L20", "7L37", "7E", "6L37", "6E", "6S2", "6S3", "5L46", "5E", "4T", "4L46", "4E"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8L16", "7L41", "6L41", "5L51", "4L51", "3L46"], + sweetscent: ["8L32", "7L13", "6L13", "5L16", "4L16", "3L16"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + taunt: ["8M", "8L40", "7M", "7L1", "6M", "6L1", "5M", "4M", "3M"], + thunderfang: ["8M", "7E", "6E", "5E", "4E"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + visegrip: ["7L17", "6L17", "5L21", "4L21", "3L21", "3S1"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["astonish", "faketears"], pokeball: "pokeball"}, + {generation: 3, level: 22, moves: ["sing", "falseswipe", "visegrip", "irondefense"]}, + {generation: 6, level: 50, abilities: ["intimidate"], moves: ["ironhead", "playrough", "firefang", "suckerpunch"], pokeball: "cherishball"}, + {generation: 6, level: 100, abilities: ["intimidate"], moves: ["suckerpunch", "protect", "playrough", "ironhead"], pokeball: "cherishball"}, + ], + }, + aron: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + autotomize: ["8L40", "7L43", "6L39", "5L43"], + bodypress: ["8M"], + bodyslam: ["8M", "7E", "6E", "5E", "4E", "3T", "3E"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L56", "7L40", "6L40", "5L50", "4L43", "3T", "3L44"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonrush: ["8E", "7E", "6E", "5E", "4E"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + harden: ["8L1", "7L1", "6L1", "5L4", "5D", "4L4", "3L4"], + headbutt: ["8L16", "7L7", "6L7", "5L11", "4T", "4L11", "3L10"], + headsmash: ["8E", "7E", "6E", "5E", "5D", "4E"], + heavyslam: ["8M", "8L52", "7L46", "6L43", "5L46"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "8L48", "7T", "7L37", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "7E", "6T", "6L22", "6E", "5T", "5L29", "5E", "4T", "4L29", "4E"], + irontail: ["8M", "8L44", "7T", "7L34", "6T", "6L34", "5T", "5L39", "4M", "4L39", "3M", "3L29"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["8L60", "7L49", "6L49", "5L53", "4L46"], + metalclaw: ["8L4", "7L10", "6L10", "5L15", "4L15", "3L13"], + metalsound: ["8L33", "7L31", "6L31", "5L36", "4L36", "3L39"], + mimic: ["3T"], + mudslap: ["8E", "7L4", "6L4", "5L8", "4T", "4L8", "3T", "3L7"], + naturalgift: ["4M"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L32", "4M", "4L32", "3M", "3L34"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M", "7E", "6E"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L8", "7M", "7L13", "6M", "6L13", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stomp: ["8E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L36", "7L28", "6L22", "5L25", "4L25", "3L25"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + }, + lairon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + autotomize: ["8L46", "7L47", "6L45", "5L51"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L70", "7L43", "6L43", "5L62", "4L51", "3T", "3L53"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L16", "7L1", "6L1", "5L1", "4T", "4L1", "3L1"], + heavyslam: ["8M", "8L64", "7L51", "6L51", "5L56"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "8L58", "7T", "7L39", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L29", "4T", "4L29"], + irontail: ["8M", "8L52", "7T", "7L35", "6T", "6L35", "5T", "5L45", "4M", "4L45", "3M", "3L29"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["8L76", "7L55", "6L55", "5L67", "4L56"], + metalclaw: ["8L1", "7L10", "6L10", "5L15", "4L15", "3L13"], + metalsound: ["8L35", "7L31", "6L31", "5L40", "4L40", "3L45"], + mimic: ["3T"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + naturalgift: ["4M"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L34", "4M", "4L34", "3M", "3L37"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L1", "7M", "7L13", "6M", "6L13", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "7L28", "6L22", "5L25", "4L25", "3L25"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + }, + aggron: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + autotomize: ["8L48", "7L51", "6L48", "5L57"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L80", "7L45", "6L45", "5L74", "4L57", "3T", "3L63", "3S0"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "6S2", "5M", "4M", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L16", "7L1", "6L1", "5L1", "4T", "4L1", "3L1"], + headsmash: ["6S2"], + heavyslam: ["8M", "8L72", "7L57", "6L57", "5L65"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "8L64", "7T", "7L39", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "6S2", "5T", "5L29", "4T", "4L29"], + irontail: ["8M", "8L56", "7T", "7L35", "6T", "6L35", "5T", "5L48", "4M", "4L48", "3M", "3L29", "3S0", "3S1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalburst: ["8L88", "7L63", "6L63", "5L82", "4L65"], + metalclaw: ["8L1", "7L10", "6L10", "5L15", "4L15", "3L13"], + metalsound: ["8L35", "7L31", "6L31", "5L40", "4L40", "3L50", "3S0", "3S1"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L34", "4M", "4L34", "3M", "3L37", "3S0", "3S1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "6S2", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L1", "7M", "7L13", "6M", "6L13", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scaryface: ["8M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "7L28", "6L22", "5L25", "4L25", "3L25", "3S1"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["irontail", "protect", "metalsound", "doubleedge"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["takedown", "irontail", "protect", "metalsound"], pokeball: "pokeball"}, + {generation: 6, level: 50, nature: "Brave", abilities: ["rockhead"], moves: ["ironhead", "earthquake", "headsmash", "rockslide"], pokeball: "cherishball"}, + ], + }, + meditite: { + learnset: { + acupressure: ["9L33", "7L33", "6L33", "5L39"], + aerialace: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + bide: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulletpunch: ["9E", "7E", "6E", "5E", "4E"], + calmmind: ["9M", "9L23", "7M", "7L23", "6M", "6L23", "5M", "5L25", "4M", "4L25", "3M", "3L28"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L7", "6L7", "5L8", "4L8", "3L9", "3S0", "3S1"], + counter: ["9L44", "7L44", "6L44", "3T"], + detect: ["9L9", "7L9", "6L9", "5L11", "4L11", "3L12", "3S1"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["9E", "7E", "6E", "5E", "4E", "3T", "3E", "3S1"], + endure: ["9M", "9L12", "7L12", "6L12", "5D", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "7E", "6E", "5E", "4E", "3E"], + feint: ["9L15", "7L15", "6L15", "5L22", "4L22"], + firepunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + forcepalm: ["9L17", "7L17", "6L17", "5L29", "4L29"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["9E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7L20", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3M", "3L17"], + highjumpkick: ["9L28", "7L28", "6L28", "5L32", "4L32", "3L32"], + icepunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + imprison: ["9M"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meditate: ["7L4", "6L4", "5L4", "5D", "4L4", "3L4", "3S0"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mindreader: ["7L25", "6L18", "5L18", "4L18", "3L22"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightshade: ["9M"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powerswap: ["9E", "7E", "6E", "5E", "4E"], + powertrick: ["9L36", "7L36", "6L36", "5L43", "4L39"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L20"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["9M"], + psychocut: ["9E", "7E", "6E", "5E", "4E"], + psychup: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + psyshock: ["9M", "7M", "6M", "5M"], + quickguard: ["9E", "7E", "6E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9L41", "7L41", "6L41", "5L50", "4L46", "3L44"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L39", "7L39", "6L39", "5L46", "4L43", "3L41"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M", "3S1"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T", "3L20"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + vacuumwave: ["4T"], + workup: ["9L1", "7M", "5M"], + zenheadbutt: ["9M", "9L25", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["bide", "meditate", "confusion"], pokeball: "pokeball"}, + {generation: 3, level: 20, moves: ["dynamicpunch", "confusion", "shadowball", "detect"], pokeball: "pokeball"}, + ], + }, + medicham: { + learnset: { + acupressure: ["9L33", "7L33", "6L33", "5L42"], + aerialace: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M"], + axekick: ["9L53"], + batonpass: ["9M"], + bide: ["7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "9L23", "7M", "7L23", "6M", "6L23", "5M", "5L25", "4M", "4L25", "3M", "3L28"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + counter: ["9L53", "7L53", "6L53", "3T"], + detect: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + endure: ["9M", "9L12", "7L12", "6L12", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9L15", "7L15", "6L15", "5L22", "4L22"], + firepunch: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + forcepalm: ["9L17", "7L17", "6L17", "5L29", "4L29"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7L20", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3M", "3L17"], + highjumpkick: ["9L28", "7L28", "6L28", "5L32", "4L32", "3L32"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + imprison: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meditate: ["7L1", "6L1", "5L1", "4L1", "3L1"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mindreader: ["7L25", "6L18", "5L18", "4L18", "3L22"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightshade: ["9M"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powertrick: ["9L36", "7L36", "6L36", "5L49", "4L42"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L20"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["9M"], + psychup: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + psyshock: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9L47", "7L47", "6L47", "5L62", "4L55", "3L54"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "7L42", "6L42", "5L55", "4L49", "3L46"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T", "3L20"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + vacuumwave: ["9M", "4T"], + workup: ["9L1", "7M", "5M"], + zenheadbutt: ["9M", "9L25", "7T", "7L1", "6T", "6L1", "5T", "4T"], + }, + encounters: [ + {generation: 4, level: 35}, + {generation: 6, level: 34, maxEggMoves: 1}, + ], + }, + electrike: { + learnset: { + agility: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L20", "7L24", "6L24", "5L28", "4L28", "3L33"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + charge: ["8L36", "7L44", "6L44", "5L44", "4L44", "3L41"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + crunch: ["8M", "7E", "6E", "5E", "4E", "3E"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + discharge: ["8L32", "7L29", "7E", "6L29", "6E", "5L41", "5E", "4L41", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M", "7E", "6E"], + electroball: ["8M", "7E", "6E", "5E"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7E", "6E", "5E", "4E"], + flameburst: ["7E", "6E", "5E"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["8E", "7E", "6E", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L8", "7L7", "6L7", "5L12", "4L12", "3L12"], + icefang: ["8M", "7E", "6E", "5E", "5D", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + leer: ["8L4", "7L4", "6L4", "5L9", "4L9", "3L9"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["7L16", "6L16", "5L25", "4L25", "3L25"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + quickattack: ["8L12", "7L10", "6L10", "5L17", "4L17", "3L17"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["8L28", "7M", "7L34", "6M", "6L34", "5M", "5L36", "4M", "4L36", "3M", "3L28"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["8L16", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spark: ["8E", "7L13", "6L13", "5L20", "4L20", "3L20"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "7E", "6E", "5E", "4T", "4E", "3T", "3E"], + switcheroo: ["8E", "7E", "6E", "5E", "4E"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L44", "7M", "7L49", "6M", "6L49", "5M", "5L52", "4M", "4L49", "3M", "3L36"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "8L24", "7L19", "7E", "6L19", "6E", "5L33", "5E", "4L33", "4E"], + thunderwave: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L4", "5D", "4M", "4L4", "3T", "3L4"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L49"], + }, + }, + manectric: { + learnset: { + agility: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L20", "7L24", "6L24", "5L30", "4L30", "3L39", "3S0"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + charge: ["8L42", "7L48", "6L48", "5L54", "4L54", "3L53"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + crunch: ["8M"], + discharge: ["8L36", "7L30", "6L30", "5L49", "4L49"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L60", "7L1", "6L1"], + electroball: ["8M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["8M"], + icefang: ["8M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["7L16", "6L16", "5L25", "4L25", "3L25"], + overheat: ["8M", "7M", "6M", "6S1", "5M", "4M"], + protect: ["8M", "7M", "6M", "6S1", "5M", "4M", "3M"], + psychicfangs: ["8M"], + quickattack: ["8L12", "7L10", "6L10", "5L17", "4L17", "3L17"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M", "3S0"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["8L30", "7M", "7L36", "6M", "6L36", "5M", "5L42", "4M", "4L42", "3M", "3L31"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["8L16", "7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spark: ["7L13", "6L13", "5L20", "4L20", "3L20"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L54", "7M", "7L54", "6M", "6L54", "5M", "5L66", "4M", "4L61", "3M", "3L45", "3S0"], + thunderbolt: ["8M", "7M", "6M", "6S1", "5M", "4M", "3M"], + thunderfang: ["8M", "8L24", "7L19", "6L19", "5L37", "4L37"], + thunderwave: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T"], + voltswitch: ["8M", "7M", "6M", "6S1", "5M"], + wildcharge: ["8M", "8L48", "7M", "7L42", "6M", "6L42", "5M", "5L61"], + }, + eventData: [ + {generation: 3, level: 44, moves: ["refresh", "thunder", "raindance", "bite"]}, + {generation: 6, level: 50, nature: "Timid", abilities: ["lightningrod"], moves: ["overheat", "thunderbolt", "voltswitch", "protect"], pokeball: "cherishball"}, + ], + }, + plusle: { + learnset: { + agility: ["7L37", "6L37", "5L48", "4L44", "3L47"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L34", "6L34", "5L44", "4L42", "3L40"], + bestow: ["7L13", "6L13"], + bodyslam: ["3T"], + captivate: ["4M"], + charge: ["7L28", "6L28", "5L38", "4L35", "3L31"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7L25", "7E", "6L25"], + confide: ["7M", "6M"], + copycat: ["7L22", "6L22", "5L24", "4L24"], + counter: ["3T"], + covet: ["7T"], + defensecurl: ["3T"], + discharge: ["7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + electroball: ["7L19", "6L19", "5L29"], + electroweb: ["7T", "6T"], + encore: ["7L10", "6L10", "5L17", "4L17", "3L22"], + endure: ["4M", "3T"], + entrainment: ["7L49", "6L1", "5L63"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7E", "6L35", "5L21", "4L21", "3L28"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + headbutt: ["4T"], + helpinghand: ["7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "7L40", "6T", "6L40", "5T", "5L51", "4T", "4L48"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["7L46", "6L1", "5L56", "4L51"], + naturalgift: ["4M"], + nuzzle: ["7L1", "6L1"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M", "4M", "3M"], + quickattack: ["7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sing: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spark: ["7L7", "6L7", "5L15", "4L15", "3L19"], + substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["7E", "6E", "5E", "4E"], + swift: ["7L16", "6L16", "5L31", "4T", "4L29", "3T"], + tearfullook: ["7E"], + thunder: ["7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + voltswitch: ["7M", "6M", "5M"], + watersport: ["3S0"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "watersport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", moves: ["growl", "thunderwave", "quickattack"], pokeball: "pokeball"}, + ], + }, + minun: { + learnset: { + agility: ["7L37", "6L37", "5L48", "4L44", "3L47"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L34", "6L34", "5L44", "4L42", "3L40"], + bodyslam: ["3T"], + captivate: ["4M"], + charge: ["7L28", "6L28", "5L38", "4L35", "3L31"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7E", "6L21", "5L21", "4L21", "3L28"], + confide: ["7M", "6M"], + copycat: ["7L22", "6L22", "5L24", "4L24"], + counter: ["3T"], + covet: ["7T"], + defensecurl: ["3T"], + discharge: ["7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + electroball: ["7L19", "6L19", "5L29"], + electroweb: ["7T", "6T"], + encore: ["7L10", "6L10", "5L17", "4L17", "3L22"], + endure: ["4M", "3T"], + entrainment: ["7L49", "6L1", "5L63"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7L25", "7E", "6L25", "5L35", "4L31"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + headbutt: ["4T"], + helpinghand: ["7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + mudsport: ["3S0"], + nastyplot: ["7L46", "6L1", "5L56", "4L51"], + naturalgift: ["4M"], + nuzzle: ["7L1", "6L1"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M", "4M", "3M"], + quickattack: ["7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sing: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spark: ["7L7", "6L7", "5L15", "4L15", "3L19"], + substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["7E", "6E", "5E", "4E"], + swift: ["7L16", "6L16", "5L31", "4T", "4L29", "3T"], + switcheroo: ["7L13", "6L13"], + tearfullook: ["7E"], + thunder: ["7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trumpcard: ["7L40", "6L40", "5L51", "4L48"], + uproar: ["7T", "6T", "5T", "4T"], + voltswitch: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", moves: ["growl", "thunderwave", "quickattack"], pokeball: "pokeball"}, + ], + }, + volbeat: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "7E", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L36", "7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L8", "7L8", "6L8", "5L9", "4L9", "3L5"], + counter: ["9E", "3T"], + dazzlinggleam: ["9M", "7M", "6M"], + defog: ["7T"], + dizzypunch: ["7E", "6E", "5E"], + doubleedge: ["9L43", "7L47", "6L45", "5L45", "4L45", "3T", "3L37"], + doubleteam: ["9L5", "7M", "7L5", "6M", "6L5", "5M", "5L5", "4M", "4L5", "3M", "3L9"], + dynamicpunch: ["3T"], + encore: ["9M", "7E", "6E", "5E", "4E"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7L1", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + helpinghand: ["9M", "9L33", "7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["9L47", "7M", "7L50"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lunge: ["9M", "7E"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + moonlight: ["9L19", "7L19", "6L13", "5L13", "4L13", "3L13"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playrough: ["9M", "9L40", "7L43", "6L43"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "9L26", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L29"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9E", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["9E", "7E", "6E", "5E", "3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L26", "6T", "6L25", "5T", "5L25", "4T", "4L25", "3L25"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "9L15", "7L15", "6M", "6L15", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9E", "7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + tailglow: ["9L22", "7L22", "6L21", "5L21", "4L21", "3L21"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E", "3E"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + zenheadbutt: ["9M", "9L29", "7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], + }, + }, + illumise: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + aromatherapy: ["7E"], + attract: ["9E", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "7E", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L40", "7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], + captivate: ["7E", "6E", "5E", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "5D", "4L9", "3L9"], + confide: ["7M", "6M"], + confuseray: ["9M", "7E", "6E", "5E"], + counter: ["3T"], + covet: ["7T", "7L47", "6T", "6L45", "5T", "5L45", "4L45", "3L37"], + dazzlinggleam: ["9M", "7M", "6M"], + defog: ["7T"], + disarmingvoice: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + dynamicpunch: ["3T"], + encore: ["9M", "9L26", "7L26", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L25"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "7E", "6E", "5E", "5D"], + flash: ["6M", "5M", "4M", "3M"], + flatter: ["9L29", "7L29", "6L29", "5L29", "4L29", "3L29"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + growth: ["9E", "7E", "6E", "5E", "4E", "3E"], + helpinghand: ["9M", "9L36", "7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["9L47", "7M", "7L50"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + moonlight: ["9L19", "7L19", "6L13", "5L13", "4L13", "3L13"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playnice: ["9L1", "7L1", "6L1"], + playrough: ["9M", "9L43", "7L43", "6L43"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9E", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "9L15", "7L15", "6M", "6L15", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L5", "7L5", "6L5", "5L5", "4L5", "3L5"], + swift: ["9M", "4T", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wish: ["9L22", "7L22", "6L21", "5L21", "4L21", "3L21"], + zenheadbutt: ["9M", "9L33", "7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], + }, + }, + budew: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["8E", "7E", "6E", "5E", "4E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + extrasensory: ["8E", "7E", "6E", "5E", "4E"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["8T"], + growth: ["8L1", "7L4", "6L4", "5L4", "4L4"], + hiddenpower: ["7M", "6M", "5M", "4M"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + lifedew: ["8E"], + megadrain: ["7L13", "6L13", "5L13", "4L13"], + mindreader: ["7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + pinmissile: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + razorleaf: ["8E", "7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sleeppowder: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + spikes: ["8M", "7E", "6E", "5E", "4E"], + stunspore: ["8L1", "7L10", "6L10", "5L10", "4L10"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["8M", "7M", "6M", "5M"], + watersport: ["7L7", "6L7", "5L7", "4L7"], + weatherball: ["8M"], + worryseed: ["8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16"], + }, + }, + roselia: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + aromatherapy: ["8L50", "7L43", "6L43", "5L43", "4L43", "3L53"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + bulletseed: ["8M", "7E", "6E", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["8E", "7E", "6E", "5E", "4E", "3E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + extrasensory: ["8E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "8L30", "7T", "7L25", "7E", "6T", "6L25", "6E", "5T", "5L25", "5E", "4M", "4L25", "3M", "3L33"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L22", "7E", "6L22", "6E", "5L22", "5E", "4L22", "3L29", "3S1"], + grassyglide: ["8T"], + growth: ["8L1", "7L4", "6L4", "5L4", "5D", "4L4", "3L5", "3S0"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + ingrain: ["8L55", "7L34", "6L34", "5L34", "4L34", "3L41"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8L10", "7L16", "6L16", "5L16", "4L16", "3L21", "3S1"], + lifedew: ["8E"], + magicalleaf: ["8M", "8L15", "7L19", "6L19", "5L19", "4L19", "3L25", "3S1"], + megadrain: ["8L5", "7L13", "6L13", "5L13", "4L13", "3L17"], + mimic: ["3T"], + mindreader: ["7E", "6E", "5E", "4E"], + mudslap: ["4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + nightmare: ["3T"], + petalblizzard: ["8L45", "7L37", "6L37"], + petaldance: ["8L60", "7L50", "6L37", "5L40", "4L40", "3L49"], + pinmissile: ["8M", "7E", "6E", "5E", "4E", "3E"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L0", "7L7", "6L7", "5L7", "4L7", "3L9", "3S0"], + powerwhip: ["8M", "7E"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + razorleaf: ["8E", "7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeppowder: ["8E", "7E", "6E", "5E", "5D", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spikes: ["8M", "7E", "6E", "5E", "4E", "3E"], + stunspore: ["8L1", "7L10", "6L10", "5L10", "4L10", "3L13"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["3S1"], + sweetscent: ["8L25", "7L31", "6L31", "5L31", "4L31", "3L37"], + swift: ["8M", "5D", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8L35", "7T", "7L46", "7E", "6T", "6L46", "6E", "5T", "5L46", "5E", "4T", "4L46", "4E", "3L57", "3E"], + toxic: ["8L40", "7M", "7L40", "6M", "6L40", "5M", "5L37", "4M", "4L37", "3M", "3L45"], + toxicspikes: ["8M", "8L20", "7L28", "6L28", "5L28", "4L28"], + uproar: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + weatherball: ["8M"], + worryseed: ["8L1", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["absorb", "growth", "poisonsting"], pokeball: "pokeball"}, + {generation: 3, level: 22, moves: ["sweetkiss", "magicalleaf", "leechseed", "grasswhistle"]}, + ], + }, + roserade: { + learnset: { + absorb: ["8L1"], + aromatherapy: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigadrain: ["8M", "8L1", "7T", "6T", "5T", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L1", "7L1", "6L1"], + growth: ["8L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + ingrain: ["8L1"], + laserfocus: ["7T"], + leafstorm: ["8M"], + leechseed: ["8L1"], + magicalleaf: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + megadrain: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L1"], + petaldance: ["8L1"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + spikes: ["8M"], + stunspore: ["8L1"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetscent: ["8L1", "7L1", "6L1", "5L1", "4L1"], + swift: ["8M", "4T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8L1", "7T", "6T", "5T", "4T"], + toxic: ["8L1", "7M", "6M", "5M", "4M"], + toxicspikes: ["8M", "8L1"], + uproar: ["8M"], + venomdrench: ["8M", "8L1", "7L1", "6L1"], + venoshock: ["8M", "7M", "6M", "5M"], + weatherball: ["8M", "7L1", "6L1", "5L1", "4L1"], + worryseed: ["8L1", "7T", "6T", "5T", "4T"], + }, + }, + gulpin: { + learnset: { + acidarmor: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], + acidspray: ["9M", "9L17", "7L17", "6L17", "5L34"], + amnesia: ["9M", "9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L41", "7L41", "6L40"], + bodyslam: ["9M", "3T"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + clearsmog: ["9E"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["9E", "7E", "6E", "5E", "4E"], + defensecurl: ["3T"], + destinybond: ["9E", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + dynamicpunch: ["3T"], + encore: ["9M", "9L20", "7L20", "6L20", "5L23", "4L23", "3L23"], + endure: ["9M", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["9L36", "7T", "7L36", "6T", "6L36", "5T", "5L49", "4T", "4L44"], + gigadrain: ["9M", "7T", "6T", "5T", "5D", "4M", "3M"], + gunkshot: ["9M", "9L49", "7T", "7L49", "7E", "6T", "6L49", "6E", "5T", "5L59", "5E", "4T", "4L54"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "9E", "7E", "6E", "5E", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["9L44", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + poisongas: ["9L8", "7L8", "6L8", "5L9", "5D", "4L9", "3L9"], + poisonjab: ["9M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + selfdestruct: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M", "3S0"], + sing: ["3S0"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludge: ["9L10", "7L10", "6L10", "5L14", "4L14", "3L14", "3S0"], + sludgebomb: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "5L44", "4M", "4L39", "3M", "3L39"], + sludgewave: ["7M", "6M", "5M"], + smog: ["9E", "7E", "6E", "5E", "4E", "3E"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["9L28", "7L28", "6L28", "5L39", "4L34", "3L34"], + stockpile: ["9L28", "7L28", "6L28", "5L39", "4L34", "3L34"], + strength: ["6M", "5M", "4M", "3M"], + stuffcheeks: ["9E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9L28", "7L28", "6L28", "5L39", "4L34", "3L34"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["9M", "9L25", "7M", "7L25", "6M", "6L25", "5M", "5L28", "4M", "4L28", "3M", "3L28", "3S0"], + toxicspikes: ["9M"], + venomdrench: ["7E", "6E"], + venoshock: ["9M", "7M", "6M", "5M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wringout: ["7L44", "6L44", "5L54", "4L49"], + yawn: ["9L5", "7L5", "6L5", "5L6", "4L6", "3L6"], + }, + eventData: [ + {generation: 3, level: 17, moves: ["sing", "shockwave", "sludge", "toxic"]}, + ], + }, + swalot: { + learnset: { + acidspray: ["9M", "9L17", "7L17", "6L17", "5L38"], + amnesia: ["9M", "9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L49", "7L49", "6L46"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "9L0", "7L1", "6L26", "5L26", "4L26", "3T", "3L26"], + brickbreak: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + encore: ["9M", "9L20", "7L20", "6L20", "5L23", "4L23", "3L23"], + endure: ["9M", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["9L42", "7T", "7L42", "6T", "6L42", "5T", "5L59", "4T", "4L52"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L73", "4T", "4L66"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["9M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["7T", "6T", "5T", "4T"], + poisongas: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["9M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + selfdestruct: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludge: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sludgebomb: ["9M", "9L37", "7M", "7L37", "6M", "6L37", "5M", "5L52", "4M", "4L45", "3M", "3L48"], + sludgewave: ["7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["9L30", "7L30", "6L30", "5L45", "4L38", "3L40"], + stockpile: ["9L30", "7L30", "6L30", "5L45", "4L38", "3L40"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9L30", "7L30", "6L30", "5L45", "4L38", "3L40"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["9M", "9L25", "7M", "7L25", "6M", "6L25", "5M", "5L30", "4M", "4L30", "3M", "3L31"], + toxicspikes: ["9M"], + venomdrench: ["7L1"], + venoshock: ["9M", "7M", "6M", "5M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wringout: ["7L1", "6L1", "5L66", "4L59"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + zenheadbutt: ["9M"], + }, + }, + carvanha: { + learnset: { + agility: ["8M", "8L36", "7L39", "6L36", "5L36", "4L36", "3L43"], + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + aquajet: ["8L1", "7L11", "6L11", "5L31", "4L31"], + assurance: ["8M", "7L15", "6L15", "5L26", "4L26"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L16", "7L1", "6L1", "6S1", "5L1", "5D", "4L1", "3L1", "3S0"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7E", "6E", "5E", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L32", "7L36", "6L28", "5L28", "4L28", "3L22"], + darkpulse: ["8M", "7M", "6M", "5T", "5D", "4M"], + destinybond: ["8E", "7E", "6E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L8", "7L8", "6L8", "5L8", "4L8", "3L13"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "7E", "6E", "6S1", "5E", "4E", "3E"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L20", "7L25", "6L16", "5L16", "4L16"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + leer: ["8L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8L40"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonfang: ["8L4", "7L32", "6L32"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M", "7E"], + rage: ["7L4", "6L4", "5L6", "4L6", "3L7"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L12", "7L29", "6L11", "5L11", "4L11", "3L16", "3S0"], + screech: ["8M", "8L24", "7L18", "6L18", "5L18", "4L18", "3L28"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L28", "7M", "7L22", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3T", "3L37"], + swift: ["8M", "7E", "6E", "5E", "4T", "3T"], + takedown: ["8L44", "7L43", "6L38", "5L38", "4L38", "3L31"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thrash: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["8E", "7T", "6T", "4M", "3M", "3S0"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 15, moves: ["refresh", "waterpulse", "bite", "scaryface"]}, + {generation: 6, level: 1, isHidden: true, moves: ["leer", "bite", "hydropump"], pokeball: "pokeball"}, + ], + }, + sharpedo: { + learnset: { + agility: ["8M", "8L40", "7L45", "6L45", "5L45", "4L45", "3L53"], + ancientpower: ["4T"], + aquajet: ["8L1", "7L11", "6L11", "6S0", "5L34", "4L34"], + assurance: ["8M", "7L15", "6L15", "5L26", "4L26"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bite: ["8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L34", "7L40", "6L28", "6S0", "6S1", "5L28", "4L28", "3L22"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + destinybond: ["6S0"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["7L1", "6L1", "5L1", "4L1"], + flipturn: ["8T"], + focusenergy: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L20", "7L25", "6L16", "6S0", "5L16", "4L16"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8L46", "7T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["8L1", "7L1", "6L1", "5L56", "4L56"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonfang: ["8L1", "7L34", "6L34", "6S1"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + rage: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L12", "7L29", "6L11", "6S1", "5L11", "4L11", "3L16"], + screech: ["8M", "8L24", "7L18", "6L18", "5L18", "4L18", "3L28"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7L51", "6L50", "5L50", "4L50", "3L48"], + slash: ["8L0", "7L1", "6L30", "6S1", "5L30", "4L30", "3L33"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L28", "7M", "7L22", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3T", "3L43"], + swift: ["8M", "4T", "3T"], + takedown: ["8L52"], + taunt: ["8M", "7M", "7L56", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L38"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Adamant", isHidden: true, moves: ["aquajet", "crunch", "icefang", "destinybond"], pokeball: "cherishball"}, + {generation: 6, level: 43, gender: "M", perfectIVs: 2, moves: ["scaryface", "slash", "poisonfang", "crunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 10}, + ], + }, + wailmer: { + learnset: { + amnesia: ["8M", "8L42", "7L37", "6L37", "5L37", "4L37", "3L46"], + aquaring: ["8E", "7E", "6E", "5E", "4E"], + astonish: ["8L6", "7L16", "6L16", "5L17", "4L17", "3L23"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "8L36", "7E", "6E", "5E", "4E", "3T"], + bounce: ["8M", "8L33", "7T", "7L45", "6T", "6L44", "5T", "5L44", "5D", "4T", "4L44"], + brine: ["8M", "8L24", "7L25", "6L25", "5L31", "4M", "4L31"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + clearsmog: ["7E", "6E"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["8E", "7E", "6E", "5E", "4E", "3T"], + dive: ["8M", "8L30", "7L41", "6M", "6L33", "5M", "5L41", "4T", "4L41", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["8E", "7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L3", "7L4", "6L4", "5L4", "4L4", "3L5"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["8M", "8L21", "7L53", "6L50", "5L50"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "7L49", "6L47", "5L47", "4L47", "3L50"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + mimic: ["3T"], + mist: ["8L15", "7L22", "6L22", "5L24", "4L24", "3L32"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L39", "7M", "7L29", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8E", "7L10", "6L10", "5L11", "4T", "4L11", "3T", "3L14"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M", "4E", "3T", "3E"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + soak: ["8E", "7E", "6E", "5E"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + thrash: ["8E", "7E", "6E", "5E", "4E", "3E"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L12", "7L7", "6L7", "5L7", "5D", "4L7", "3L10"], + waterpulse: ["8L18", "7T", "7L19", "6T", "6L19", "5L21", "4M", "4L21", "3M", "3L28"], + waterspout: ["8L48", "7L33", "6L34", "5L34", "4L34", "3L41"], + weatherball: ["8M"], + whirlpool: ["8M", "8L27", "7L13", "6L13", "5L14", "4M", "4L14", "3L19"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + wailord: { + learnset: { + amnesia: ["8M", "8L44", "7L37", "6L37", "5L37", "4L37", "3L52", "3S0"], + astonish: ["8L1", "7L16", "6L16", "5L17", "4L17", "3L23"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L36", "3T"], + bounce: ["8M", "8L33", "7T", "7L51", "6T", "6L51", "5T", "5L54", "4T", "4L54"], + brine: ["8M", "8L24", "7L25", "6L29", "5L31", "4M", "4L31"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + defensecurl: ["3T"], + dive: ["8M", "8L30", "7L44", "6M", "6L44", "5M", "5L46", "4T", "4L46", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["8M", "8L21", "7L1", "6L1", "5L70"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L49", "7L58", "6L58", "5L62", "4L62", "3L59", "3S0"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + liquidation: ["8M", "7T"], + mimic: ["3T"], + mist: ["8L15", "7L22", "6L22", "5L24", "4L24", "3L32", "3S1"], + naturalgift: ["4M"], + nobleroar: ["8L1", "7L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L39", "7M", "7L29", "6M", "6L25", "5M", "5L27", "4M", "4L27", "3M", "3L37", "3S0", "3S1"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + soak: ["8L1", "7L1"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L18", "7T", "7L19", "6T", "6L19", "5L21", "4M", "4L21", "3M", "3L28", "3S1"], + waterspout: ["8L54", "7L33", "6L33", "5L34", "4L34", "3L44", "3S0", "3S1"], + weatherball: ["8M"], + whirlpool: ["8M", "8L27", "7L13", "6L13", "5L14", "4M", "4L14", "3L19"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["rest", "waterspout", "amnesia", "hydropump"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["waterpulse", "mist", "rest", "waterspout"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 25}, + {generation: 4, level: 35}, + {generation: 5, level: 30}, + {generation: 7, level: 10}, + ], + }, + numel: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L19", "7L19", "6L19", "5L31", "4L25", "3L31"], + ancientpower: ["9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3T", "3E"], + bulldoze: ["9M", "9L12", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "3S0"], + confide: ["7M", "6M"], + curse: ["9L29", "7L29", "6L29", "5L29"], + defensecurl: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + dig: ["9M", "6M", "5M", "4M", "3M", "3S0"], + doubleedge: ["9L47", "7L47", "6L47", "5L55", "4L51", "3T", "3L49"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L41", "4T", "4L35"], + earthquake: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L41", "3M", "3L35"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5", "3L11", "3S0"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["9M"], + flameburst: ["7L15", "6L15", "5L21"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L51", "4M", "4L45", "3M", "3L41"], + flareblitz: ["9M"], + flashcannon: ["9M"], + focusenergy: ["9L8", "7L8", "6L8", "5L15", "4L15", "3L25"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], + growth: ["9E", "7E", "6E"], + headbutt: ["4T"], + heatcrash: ["9M"], + heatwave: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + heavyslam: ["9M", "9E", "7E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + howl: ["9E", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["9L15", "6M", "5M"], + ironhead: ["9M", "9E", "7T", "7E", "6T", "6E", "6S1", "5T", "5E"], + lashout: ["9M"], + lavaplume: ["9L22", "7L22", "6L22", "5L35", "4L31"], + magnitude: ["7L12", "6L8", "5L11", "4L11", "3L19"], + mimic: ["3T"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9E", "7E", "6E", "5E", "4T", "4E", "3T", "3E"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spitup: ["9E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stockpile: ["9E", "7E", "6E", "5E", "4E"], + stomp: ["9E", "7E", "6E", "5E", "4E", "3E"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9E", "7E", "6E", "5E", "4E"], + tackle: ["9L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L31", "7L31", "6L31", "5L25", "4L21", "3L29", "3S0"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9E", "7L36", "7E", "6L36", "6E", "5L36", "5E", "4E"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 14, abilities: ["oblivious"], moves: ["charm", "takedown", "dig", "ember"]}, + {generation: 6, level: 1, moves: ["growl", "tackle", "ironhead"], pokeball: "pokeball"}, + ], + }, + camerupt: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L19", "7L19", "6L19", "5L31", "4L25", "3L31"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bulldoze: ["9M", "9L12", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + curse: ["9L29", "7L29", "6L29", "6S0", "5L29"], + defensecurl: ["3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L49", "4T", "4L39"], + earthquake: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L57", "4M", "4L49", "3M", "3L37"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "4M", "3T"], + eruption: ["9L1", "7L1", "6L1", "5L67", "4L57", "3L45"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["9M"], + fissure: ["9L1", "7L1", "6L1", "5L75", "4L67", "3L55"], + flameburst: ["7L15", "6L15", "5L21"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["9M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L15", "4L15", "3L25"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + heatcrash: ["9M"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["9L15", "6M", "5M"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M"], + lavaplume: ["9L22", "7L22", "6L22", "5L33", "4L31"], + magnitude: ["7L12", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L0", "7M", "7L1", "6M", "6L33", "6S0", "5M", "5L39", "4M", "4L33", "3T", "3L33"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L31", "7L31", "6L31", "6S0", "5L25", "4L21", "3L29"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9L39", "7L39", "6L39", "6S0", "5L39"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 6, level: 43, gender: "M", perfectIVs: 2, abilities: ["solidrock"], moves: ["curse", "takedown", "rockslide", "yawn"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + torkoal: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L52", "8M", "8L52", "7L40", "6L40", "5L49", "4L49", "3L40"], + ancientpower: ["9E", "8E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M", "8S0"], + bodyslam: ["9M", "9L32", "8M", "8L32", "7L27", "6L27", "5L33", "4L33", "3T", "3L20"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T", "8S0"], + captivate: ["4M"], + clearsmog: ["9L16", "8L16", "7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["9L44", "8L44", "7L22", "6L12", "5L12", "4L12", "3L7"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M", "4E", "3T", "3E"], + eruption: ["9L64", "8L64", "7E", "6E", "5E", "4E", "3E"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M", "7L13", "6L13", "5L17", "4L17", "3L17"], + fissure: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + flail: ["9E", "8E", "7L42", "6L1", "5L52", "4L52", "3L43"], + flameburst: ["7E", "6E", "5E"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L40", "8M", "8L40", "7M", "7L34", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L30"], + flamewheel: ["9L20", "8L20", "7L18", "6L18"], + flareblitz: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "9L48", "8M", "8L48", "7T", "7L45", "6T", "6L1", "5T", "5L55", "4T", "4L55", "3L46"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + inferno: ["9L56", "8L56", "7L50", "6L1", "5L60"], + irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L38", "6T", "6L38", "5T", "5L44", "4T", "4L44", "3L33"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lavaplume: ["9L28", "8L28", "7L25", "6L25", "5L39", "4L39"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "9L24", "8M", "8L24", "8S0", "7M", "7L30", "6M", "6L1", "5M", "5L36", "4M", "4L36", "3M", "3L27"], + rapidspin: ["9L8", "8L8", "7L10", "6L10", "5L23", "4L23"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shellsmash: ["9L60", "8L60", "7L47", "6L1", "5L65"], + skullbash: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + smog: ["9L1", "8L1", "7L4", "6L4", "5L4", "4L4", "3L4"], + smokescreen: ["9L12", "8L12", "7L15", "6L15", "5L20", "4L20", "3L14"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "7E", "6T", "6E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + withdraw: ["9L4", "8L4", "7L7", "6L7", "5L7", "4L7"], + yawn: ["9E", "8E", "8S0", "7E", "6E", "5E", "4E", "3E"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 8, level: 50, gender: "M", nature: "Bold", abilities: ["drought"], ivs: {hp: 31, atk: 12, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["burningjealousy", "bodypress", "yawn", "protect"], pokeball: "cherishball"}, + ], + }, + spoink: { + learnset: { + allyswitch: ["7T"], + amnesia: ["9M", "9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + bounce: ["9L50", "7T", "7L50", "6T", "6L50", "5T", "5L53", "4T", "4L48", "3L43"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L22", "7L18", "6L18", "5L18", "4L18", "3L25"], + confusion: ["9L7"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + encore: ["9M"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + extrasensory: ["9E", "7E", "6E", "5E", "4E", "3E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9E", "7E", "6E", "5E", "4E", "3E"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L10"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + lunge: ["9M"], + magiccoat: ["7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L28"], + mimic: ["3T"], + mirrorcoat: ["9E", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightshade: ["9M"], + odorsleuth: ["7L10", "6L10", "5L10", "4L10", "3L10"], + payback: ["9L40", "7M", "7L40", "6M", "6L40", "5M", "5L41", "4M", "4L34"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L48", "4L46"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L14", "7L14", "6L14", "5L14", "4L14", "3L16"], + psychic: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "5L46", "4M", "4L41", "3M", "3L34"], + psychicterrain: ["9M"], + psychup: ["9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], + psyshock: ["9M", "9L38", "7M", "7L38", "6M", "6L38", "5M", "5L34"], + psywave: ["7L7", "6L7", "5L7", "5D", "4L7", "3L7"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + simplebeam: ["9E", "7E", "6E"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["9L33", "7T", "7L33", "6T", "6L29", "5T", "5L29", "4T", "4L29", "3T", "3L37"], + snowscape: ["9M"], + splash: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "3S0"], + whirlwind: ["9E", "7E", "6E", "5E"], + zenheadbutt: ["9M", "9E", "7T", "7L26", "7E", "6T", "6L26", "6E", "5T", "5L26", "5E", "4T", "4L26", "4E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["owntempo"], moves: ["splash", "uproar"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + grumpig: { + learnset: { + allyswitch: ["7T"], + amnesia: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L1", "7L1"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bounce: ["9L60", "7T", "7L60", "6T", "6L60", "5T", "5L68", "4T", "4L60", "3L55"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L22", "7L18", "6L18", "5L18", "4L18", "3L25"], + confusion: ["9L1"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + earthpower: ["9M"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M"], + lowsweep: ["9M"], + lunge: ["9M"], + magiccoat: ["7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L28"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightshade: ["9M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + payback: ["9L46", "7M", "7L46", "6M", "6L46", "5M", "5L47", "4M", "4L37"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L60", "4L55"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + psychic: ["9M", "9L52", "7M", "7L52", "6M", "6L52", "5M", "5L55", "4M", "4L47", "3M", "3L37"], + psychicterrain: ["9M"], + psychup: ["9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], + psyshock: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L37"], + psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L35", "7M", "7L35", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L43"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["9L35", "7T", "7L35", "6T", "6L29", "5T", "5L29", "4T", "4L29", "3T", "3L43"], + snowscape: ["9M"], + splash: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + teeterdance: ["9L0", "7L1", "6L32"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M"], + zenheadbutt: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L26", "4T", "4L26"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + spinda: { + learnset: { + assist: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7E", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + copycat: ["7L5", "6L5", "5L10", "5D", "4L10"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + disable: ["7E", "6E", "5E", "4E", "3E"], + dizzypunch: ["7L23", "6L23", "5L28", "4L28", "3L27"], + doubleedge: ["7L46", "6L46", "5L46", "4L46", "3T", "3L45"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + encore: ["7E", "6E", "5E", "4E", "3E"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7E", "6E", "5E", "5D", "4E"], + faketears: ["7E", "6E", "5E"], + feintattack: ["7L10", "6L10", "5L14", "4L14", "3L12"], + firepunch: ["7T", "6T", "5T", "4T", "3T"], + flail: ["7L50", "6L50", "5L50", "4L50", "3L49"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + guardsplit: ["7E", "6E"], + headbutt: ["4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + hypnosis: ["7L19", "6L19", "5L23", "4L23", "3L23"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + icywind: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "3T"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psybeam: ["7L14", "6L14", "5L19", "4L19", "3L16"], + psychic: ["7M", "6M", "5M", "4M", "3M"], + psychocut: ["7E", "6E", "5E", "4E"], + psychoshift: ["7E", "6E"], + psychup: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41", "3T", "3L38"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rapidspin: ["7E", "6E", "5E"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["3S0"], + skillswap: ["7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spotlight: ["7E"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L28", "6L28", "5L32", "4T", "4L32"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + superpower: ["5D"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + teeterdance: ["7L32", "6L32", "5L37", "4L37", "3L34"], + thief: ["7M", "6M", "5M", "4M", "3M"], + thrash: ["7L55", "6L50", "5L55", "4L55", "3L56"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + trickroom: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "7L37", "6T", "6L5", "5T", "5L5", "4T", "4L5", "3L5", "3S0"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["tackle", "uproar", "sing"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + trapinch: { + learnset: { + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bide: ["7L1", "6L1", "5L17"], + bite: ["8L8", "7L1", "6L1", "5L1", "5D", "5S0", "4L1", "3L1"], + bodyslam: ["8M", "3T"], + bugbite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + bulldoze: ["8M", "8L20", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L28", "7L22", "6L22", "5L33", "4L33", "3L33"], + dig: ["8M", "8L24", "7L19", "6M", "6L19", "5M", "5L41", "4M", "4L41", "3M", "3L41"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L36", "7T", "7L26", "7E", "6T", "6L26", "6E", "5T", "5L65", "5E", "4T", "4L65"], + earthquake: ["8M", "8L40", "7M", "7L33", "6M", "6L33", "5M", "5L73", "4M", "4L73", "3M"], + endure: ["8M", "7E", "6E", "5E", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8E", "7L29", "6L1", "5L81", "4L81"], + feintattack: ["7L1", "6L1", "5L17", "4L17", "3L17"], + firstimpression: ["8E"], + fissure: ["8L48", "7L47", "6L1", "5L89", "4L89"], + flail: ["8E", "7E", "6E", "5E", "4E"], + focusenergy: ["8M", "7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8E", "7E", "6E", "5E", "4T", "4E"], + gigadrain: ["8M", "7T", "6T", "5T", "5D", "4M", "3M"], + gust: ["8E", "7E", "6E", "5E", "4E", "3E"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L57"], + laserfocus: ["8L4"], + mimic: ["3T"], + mudshot: ["8M", "7E", "6E", "5E", "4E"], + mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L9"], + sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L49"], + sandtomb: ["8M", "8L16", "7L12", "6L10", "5L25", "4L25", "3L25"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "5D"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L44", "7T", "7L40", "6T", "6L1", "5T", "5L67"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["bite"], pokeball: "pokeball"}, + ], + }, + vibrava: { + learnset: { + aircutter: ["4T"], + airslash: ["8M"], + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bide: ["7L1", "6L1", "5L17"], + bite: ["8L1", "3L1"], + bodyslam: ["8M", "3T"], + boomburst: ["8L62", "7L47", "6L47"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["8M", "8L28", "7L29", "6L29"], + bulldoze: ["8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "3L33"], + defog: ["7T", "4M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["8L0", "7L1", "6L35", "5L35", "4L35", "3L35"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragonrush: ["8L56"], + dragontail: ["8L20"], + dualwingbeat: ["8T"], + earthpower: ["8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], + earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], + fissure: ["8L1"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L57"], + laserfocus: ["8L1"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L49"], + sandtomb: ["8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "7L22", "6L22", "5L41", "4L41", "3L41"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L1", "7T", "6T", "5T"], + supersonic: ["8L1", "7L19", "6L19", "5L33", "4L33"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "8L50", "7T", "7L40", "6T", "6L40"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + flygon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + aircutter: ["4T"], + airslash: ["8M"], + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bide: ["7L1", "6L1", "5L17"], + bite: ["8L1", "3L1"], + bodyslam: ["8M", "3T"], + boomburst: ["8L68"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["8M", "8L28"], + bulldoze: ["8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "3L33", "3S0"], + defog: ["7T", "4M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "6T", "5T", "4T", "4S1"], + dragonbreath: ["8L1", "7L1", "6L35", "5L35", "4L35", "3L35", "3S0"], + dragonclaw: ["8M", "8L0", "7M", "7L1", "6M", "6L45", "5M", "5L45", "4M", "4L45", "4S1", "3M"], + dragondance: ["8M", "8L1", "7L1"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragonrush: ["8L60", "7L47", "6L47"], + dragontail: ["8L20", "7M", "7L29", "6M", "6L29", "5M", "5L65"], + dualwingbeat: ["8T"], + earthpower: ["8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], + earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "4S1", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8L1"], + feintattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + firespin: ["8M"], + fissure: ["8L1"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L65"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["8L1", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L53"], + sandtomb: ["8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1", "3S0"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "7L22", "6L22", "5L41", "4L41", "3L41", "3S0"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L1", "7T", "6T", "5T"], + supersonic: ["8L1", "7L19", "6L19", "5L33", "4L33"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "8L52", "7T", "7L40", "6T", "6L40"], + uturn: ["8M", "7M", "6M", "5M", "4M", "4S1"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["sandtomb", "crunch", "dragonbreath", "screech"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Naive", moves: ["dracometeor", "uturn", "earthquake", "dragonclaw"], pokeball: "cherishball"}, + ], + }, + cacnea: { + learnset: { + absorb: ["9L4", "7L4", "6L4", "5L5", "5D", "4L5", "3L5", "3S0"], + acid: ["9E", "7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9E", "7E", "6E"], + block: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["9L46", "7L46", "6L46", "5L49", "4L49", "3L41"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + destinybond: ["9L54", "7L54", "6L54", "5L57", "4L57", "3L49"], + dig: ["9M"], + disable: ["9E", "7E", "6E", "5E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["7E", "6E", "5E", "4E", "3T", "3E"], + encore: ["9M", "3S0"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L29", "4L29", "3L29"], + fellstinger: ["9E", "7E", "6E"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E", "4E", "3E"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L7", "7L7", "6L7", "5L9", "4L9", "3L9"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + ingrain: ["9L22", "7L22", "6L22", "5L25", "4L25", "3L25"], + leafstorm: ["9M"], + leechseed: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + lowkick: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + magicalleaf: ["9M", "7E", "6E", "5E", "4E"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + needlearm: ["7L16", "6L16", "5L45", "4L45", "3L37"], + payback: ["9L26", "7M", "7L26", "6M", "6L26", "5M", "5L41", "4M", "4L41"], + pinmissile: ["9L38", "7L38", "6L21", "5L21", "4L21", "3L21"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + powertrip: ["9L19"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rototiller: ["7E", "6E"], + round: ["7M", "6M", "5M"], + sandattack: ["9L13", "7L13", "6L13", "5L17", "4L17", "3L17"], + sandstorm: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L53", "4M", "4L53", "3M", "3L45"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + seismictoss: ["3T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L30", "7L30", "6L30", "5L33", "4L33", "3L33"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L34", "7L34", "6L34", "5L37", "4T", "4L37"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + switcheroo: ["9E", "7E", "6E", "5E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + teeterdance: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["poisonsting", "leer", "absorb", "encore"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + cacturne: { + learnset: { + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["9L49", "7L49", "6L49", "5L59", "4L59", "3L47"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + destinybond: ["9L1", "7L1", "6L1", "5L71", "4L71", "3L59"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L29", "4L29", "3L29", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + ingrain: ["9L22", "7L22", "6L22", "5L25", "4L25", "3L25", "3S0"], + knockoff: ["9M"], + lashout: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lunge: ["9M"], + magicalleaf: ["9M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + needlearm: ["7L16", "6L16", "5L53", "4L53", "3L41", "3S0"], + payback: ["9L26", "7M", "7L26", "6M", "6L26", "5M", "5L47", "4M", "4L47"], + pinmissile: ["9L38", "7L38", "6L21", "5L21", "4L21", "3L21"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + powertrip: ["9L19"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["7L1", "6L1", "5L1", "4L1", "3L1"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L13", "7L13", "6L13", "5L17", "4L17", "3L17"], + sandstorm: ["9M", "9L54", "7M", "7L54", "6M", "6L54", "5M", "5L65", "4M", "4L65", "3M", "3L53"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + shadowball: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L30", "7L30", "6L30", "5L35", "4L35", "3L35", "3S0"], + spikyshield: ["9L0", "7L1", "6L32"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stompingtantrum: ["9M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L35", "7L35", "6L35", "5L41", "4T", "4L41"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["ingrain", "feintattack", "spikes", "needlearm"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + swablu: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + aircutter: ["4T"], + astonish: ["9E", "8E", "7L3", "6L3", "5L5", "4L5", "3L8"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bravebird: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L40"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defog: ["9E", "8E", "7T"], + disarmingvoice: ["9M", "9L4", "8L4", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L20", "8L20"], + dragonpulse: ["9M", "8M", "7T", "7L38", "6T", "6L38", "5T", "5L50", "4M", "4L45"], + dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "3S0"], + featherdance: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyattack: ["9L12", "8L12", "7L7", "6L7", "5L13", "4L13", "3L18"], + growl: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1", "3S0"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hypervoice: ["9M", "8M", "7T", "7E", "6T", "6E", "6S2", "5T", "5E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mirrormove: ["7L30", "6L30", "5L36", "4L36", "3L38"], + mist: ["9L8", "8L8", "7L14", "6L14", "5L23", "4L23", "3L28"], + moonblast: ["9L40", "8L40", "7L46", "6L46"], + mudslap: ["4T", "3T"], + naturalgift: ["7L20", "6L20", "5L32", "4M", "4L32"], + ominouswind: ["4T"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + peck: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5D", "5S1", "4L1", "3L1", "3S0"], + perishsong: ["9L44", "8L44", "7L42", "6L42", "5L55", "4L50", "3L48"], + playrough: ["9M", "8M", "7E"], + pluck: ["5M", "4M"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + rage: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L26", "6L26", "5L45", "4L40", "3L41"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9E", "8E", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M"], + round: ["9L16", "8M", "8L16", "7M", "7L17", "6M", "6L17", "5M", "5L18"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L18", "4M", "4L18", "3M", "3L21"], + secretpower: ["6M", "4M", "3M"], + sing: ["9L28", "8L28", "7L5", "6L5", "5L9", "4L9", "3L11"], + skyattack: ["7T", "6T", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "9E", "8E", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L36", "8L36", "7L23", "6L23", "5L28", "4L28", "3L31"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "falseswipe"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 5, level: 1, shiny: true, moves: ["peck", "growl"], pokeball: "pokeball"}, + {generation: 6, level: 1, isHidden: true, moves: ["peck", "growl", "hypervoice"], pokeball: "pokeball"}, + ], + }, + altaria: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M", "3S1"], + agility: ["9M", "8M", "6S3"], + aircutter: ["4T"], + astonish: ["7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bravebird: ["9M"], + breakingswipe: ["8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L46"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defog: ["7T"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L20", "8L20", "7L1", "6L35", "5L35", "5S2", "4L35", "3L35", "3S0", "3S1"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M", "7L30", "6L30", "5L39", "4L39", "3L40", "3S0"], + dragonpulse: ["9M", "9L0", "8M", "8L0", "7T", "7L40", "6T", "6L40", "5T", "5L62", "4M", "4L54"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["9M", "8T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "5S2"], + fireblast: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyattack: ["9L12", "8L12", "7L7", "6L7", "5L13", "4L13", "3L18"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + haze: ["9M"], + healbell: ["7T", "6T", "5T", "4T", "3S1"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "6S3", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + mimic: ["3T"], + mist: ["9L1", "8L1", "7L14", "6L14", "5L23", "4L23", "3L28"], + moonblast: ["9L44", "8L44", "7L52", "6L52"], + mudslap: ["4T", "3T"], + naturalgift: ["7L20", "6L20", "5L32", "5S2", "4M", "4L32"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + peck: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + perishsong: ["9L50", "8L50", "7L46", "6L46", "5L70", "4L62", "3L54"], + playrough: ["9M", "8M"], + pluck: ["9L1", "8L1", "7L1", "6L1", "5M", "5L1", "4M", "4L1"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L26", "6L26", "5L54", "4L46", "3L45", "3S0"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["9L16", "8M", "8L16", "7M", "7L17", "6M", "6L17", "5M", "5L18"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L18", "4M", "4L18", "3M", "3L21"], + secretpower: ["6M", "4M", "3M"], + sing: ["9L28", "8L28", "7L1", "6L1", "5L1", "4L1", "3L1"], + skyattack: ["9L56", "8L56", "7T", "7L1", "6T", "6L1", "5T", "5L77", "4T", "4L70", "3T", "3L59"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L38", "8L38", "7L23", "6L23", "5L28", "5S2", "4L28", "3L31", "3S0"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + weatherball: ["9M"], + willowisp: ["9M"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["takedown", "dragonbreath", "dragondance", "refresh"], pokeball: "pokeball"}, + {generation: 3, level: 36, moves: ["healbell", "dragonbreath", "solarbeam", "aerialace"]}, + {generation: 5, level: 35, gender: "M", isHidden: true, moves: ["takedown", "naturalgift", "dragonbreath", "falseswipe"]}, + {generation: 6, level: 100, nature: "Modest", isHidden: true, moves: ["hypervoice", "fireblast", "protect", "agility"], pokeball: "cherishball"}, + ], + }, + zangoose: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M"], + batonpass: ["9M"], + bellydrum: ["9L1", "7E"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M", "3S2"], + captivate: ["4M"], + closecombat: ["9M", "9L50", "7L50", "6L47", "5L53", "4L53"], + confide: ["7M", "6M"], + counter: ["9L1", "7E", "6E", "5E", "4E", "3T", "3E", "3S2"], + crushclaw: ["9L26", "7L26", "6L22", "5L31", "4L31", "3L31", "3S2"], + curse: ["9L1", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["3T"], + detect: ["9L36", "7L36", "6L33", "5L40", "4L40", "3L46"], + dig: ["9M", "6M", "5M", "4M", "3M"], + disable: ["9L1", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doublehit: ["9L1", "7E", "6E", "5E", "5D", "4E"], + doublekick: ["9L1", "7E", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + embargo: ["7M", "7L33", "6M", "6L19", "5M", "5L27", "4M", "4L27"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L29", "7M", "7L29", "6M", "6L29", "5M", "5L44", "4M", "4L44", "3L55"], + feint: ["9L1", "7E", "6E", "5E"], + finalgambit: ["9L1", "7E", "6E", "5E"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L1", "7E", "6E", "5E", "4E", "3E"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["9L8", "7L8", "6L8", "5L14", "4T", "4L14", "3T", "3L13", "3S0"], + furyswipes: ["9L1", "7E", "6E", "5E", "4E"], + gigadrain: ["7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["9L15", "7L15", "6M", "6L15", "5M"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L4", "3S0", "3S1"], + lowkick: ["9M", "7T", "6T", "5T", "5D", "4T"], + lowsweep: ["9M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M", "9L12", "7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9L1", "7E", "6E", "5E", "4E"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powertrip: ["9L22"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L12", "6L12", "5L22", "4L22", "3L25"], + quickattack: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5", "3L7", "3S0", "3S1"], + quickguard: ["9L1", "7E", "6E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "6E", "5E", "4E", "3E"], + refresh: ["3S2"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["7L22", "6L22", "5L26"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M", "4E", "3M", "3E"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["9L19", "7L19", "6L15", "5L18", "4L18", "3L19"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + switcheroo: ["9L33"], + swordsdance: ["9M", "9L47", "7M", "7L47", "6M", "6L43", "5M", "5L9", "4M", "4L9", "3T", "3L10", "3S0", "3S1"], + takedown: ["9M"], + taunt: ["9M", "9L43", "7M", "7L43", "6M", "6L40", "5M", "5L35", "4M", "4L35", "3M", "3L37"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L36", "5M", "5L48", "4M", "4L48"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 18, moves: ["leer", "quickattack", "swordsdance", "furycutter"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["scratch", "leer", "quickattack", "swordsdance"], pokeball: "pokeball"}, + {generation: 3, level: 28, moves: ["refresh", "brickbreak", "counter", "crushclaw"]}, + ], + }, + seviper: { + learnset: { + acidspray: ["9M"], + aquatail: ["7T", "6T", "5T", "5D", "4T"], + assurance: ["9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L41", "7L41", "6L43"], + bind: ["7T", "6T", "5T"], + bite: ["9L4", "7L4", "6L4", "5L10", "5D", "4L10", "3L10", "3S0", "3S2"], + bodyslam: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3T", "3E"], + brickbreak: ["9M"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + coil: ["9L44", "7L44", "6L46", "5L64"], + confide: ["7M", "6M"], + crunch: ["9M", "9L39", "7L39", "6L40", "5L28", "4L28", "3L28", "3S1"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragontail: ["7M", "6M", "5M"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9L11", "7L11"], + finalgambit: ["9E", "7E", "6E", "5E"], + firefang: ["9M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gastroacid: ["9L29", "7T", "7L29", "6T", "6L31", "5T", "5L34"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M"], + glare: ["9L19", "7L19", "6L19", "5L25", "4L25", "3L25", "3S1"], + gunkshot: ["9M"], + haze: ["9M", "9L34", "7L34", "6L37", "5L43", "4L43", "3L43"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + icefang: ["9M"], + infestation: ["7M", "6M"], + ironhead: ["9M"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M"], + lick: ["9L6", "7L6", "6L7", "5L7", "4L7", "3L7", "3S0", "3S2"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7L26", "7E", "6L28", "6E", "5L46", "5E", "4L46", "4E"], + payback: ["7M", "6M", "5M", "4M"], + poisonfang: ["9L21", "7L21", "6L22", "5L34", "4L34", "3L34"], + poisonjab: ["9M", "9L31", "7M", "7L31", "6M", "6L34", "5M", "5L52", "4M", "4L52"], + poisontail: ["9M", "9L9", "7L9", "6L10", "5L16", "4L16", "3L16", "3S0", "3S1"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + punishment: ["7E", "6E", "5E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M", "9E", "7E", "6E", "5E", "4E"], + screech: ["9L14", "7L14", "6L13", "5L19", "4L19", "3L19", "3S1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9L46", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["7M", "6M", "5M"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spitup: ["9E", "7E", "6E", "5E", "4E", "3E"], + stockpile: ["9E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L37", "4M", "4L37", "3T", "3L37"], + swallow: ["9E", "7E", "6E", "5E", "4E", "3E"], + swift: ["4T", "3T"], + switcheroo: ["9E", "7E", "6E", "5E", "4E"], + swordsdance: ["9M", "7M", "7L36"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunderfang: ["9M"], + toxic: ["9M", "7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venomdrench: ["7L24", "6L25"], + venoshock: ["9M", "9L24", "7M", "7L16", "6M", "6L16", "5M", "5L55"], + wrap: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S2"], + wringout: ["7L46", "7E", "6L49", "6E", "5L61", "5E", "4L55"], + xscissor: ["9M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 18, moves: ["wrap", "lick", "bite", "poisontail"], pokeball: "pokeball"}, + {generation: 3, level: 30, moves: ["poisontail", "screech", "glare", "crunch"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["wrap", "lick", "bite"], pokeball: "pokeball"}, + ], + }, + lunatone: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + batonpass: ["8M", "3S1"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L7", "3S0"], + cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L34", "4L34", "3L31"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L31", "4M", "4L31"], + endure: ["8M", "4M", "3T"], + explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L56", "4M", "4L56", "3T", "3L49"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L40", "7L41", "6L41", "5L53", "4L53", "3L43"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + healblock: ["7L33", "6L33", "5L42", "4L42"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7S2", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypnosis: ["8L5", "7L5", "6L5", "5L12", "4L12", "3L19"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L64"], + meteorbeam: ["8T"], + mimic: ["3T"], + moonblast: ["8L1", "7L1", "7S2", "6L1"], + moonlight: ["8L1", "5D"], + nastyplot: ["8M"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["8M", "7L1", "7S2"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L30", "7M", "7L29", "6M", "6L29", "5M", "5L45", "4M", "4L45", "3M", "3L37", "3S1"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L20", "7M", "7L1", "6M", "5M"], + psywave: ["7L13", "6L13", "5L23", "4L23", "3L25"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L20", "4M", "4L20"], + rockslide: ["8M", "8L15", "7M", "7L21", "6M", "6L21", "5M", "5L25", "4M", "3T"], + rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L13"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L35", "7M", "7L37", "6M", "6L37", "5M", "5L41", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + telekinesis: ["7T", "5M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["tackle", "harden", "confusion"], pokeball: "pokeball"}, + {generation: 3, level: 25, moves: ["batonpass", "psychic", "raindance", "rocktomb"]}, + {generation: 7, level: 30, moves: ["cosmicpower", "hiddenpower", "moonblast", "powergem"], pokeball: "cherishball"}, + ], + }, + solrock: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + batonpass: ["8M", "3S1"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L7", "3S0"], + cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L34", "4L34", "3L31", "3S1"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L31", "4M", "4L31"], + endure: ["8M", "4M", "3T"], + explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L56", "4M", "4L56", "3T", "3L49"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["8M", "7L5", "6L5", "5L12", "4L12", "3L19"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8L1", "7L1"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + healblock: ["7L33", "6L33", "5L42", "4L42"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7S2", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypnosis: ["8L5"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["3T"], + morningsun: ["8L1", "5D"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L30", "7M", "7L29", "6M", "6L29", "5M", "5L33", "4M", "3M", "3S1"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L13", "6L13", "5L23", "4L23", "3L25"], + raindance: ["8M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L20", "4M", "4L20"], + rockslide: ["8M", "8L15", "7M", "7L21", "6M", "6L21", "5M", "5L45", "4M", "4L45", "3T", "3L37"], + rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L13"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L40", "7M", "7L41", "7S2", "6M", "6L41", "5M", "5L53", "4M", "4L53", "3M", "3L43"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L41", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + telekinesis: ["7T", "5M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L64"], + zenheadbutt: ["8M", "8L20", "7T", "6T", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["tackle", "harden", "confusion"], pokeball: "pokeball"}, + {generation: 3, level: 41, moves: ["batonpass", "psychic", "sunnyday", "cosmicpower"]}, + {generation: 7, level: 30, moves: ["cosmicpower", "hiddenpower", "solarbeam", "stoneedge"], pokeball: "cherishball"}, + ], + }, + barboach: { + learnset: { + amnesia: ["9M", "9L18", "8M", "8L18", "7L15", "6L15", "5L18", "4L18", "3L21"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L28", "5T", "5L35", "4T", "4L35"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "4E"], + earthpower: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L39", "4M", "4L39", "3M", "3L31"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9L48", "8L48", "7L44", "6L44", "5L47", "4L47", "3L41"], + flail: ["9E", "8E", "7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L42", "8M", "8L42", "7L39", "6L39", "5L43", "4L43", "3L36"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hydropump: ["9M", "8M", "7E", "6E", "5E", "4E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + liquidation: ["9M"], + magnitude: ["7L20", "6L20", "5L26", "4L26", "3L16"], + mimic: ["3T"], + mudbomb: ["7L13", "6L13", "5L14", "4L14"], + muddywater: ["9L31", "8M", "8L31", "7L35", "7E", "6L35", "6E", "5E"], + mudshot: ["9M", "8M", "7E", "6E", "5E"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4T", "4L1", "3T", "3L1"], + mudsport: ["7L6", "6L6", "5L6", "4L6", "3L6"], + naturalgift: ["4M"], + outrage: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L6", "8M", "8L6", "7M", "7L25", "6M", "6L25", "5M", "5L31", "4M", "4L31", "3M", "3L26"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "5D", "4M", "3T"], + snore: ["9L6", "8M", "8L6", "7T", "7L25", "6T", "6L25", "5T", "5L31", "4T", "4L31", "3T", "3L26"], + spark: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "3E"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L9", "6L9", "5L10", "4L10", "3L11"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L22", "3M"], + watersport: ["7L6", "6L6", "5L6", "4L6", "3L6"], + whirlpool: ["8M", "7E", "6E", "5E", "4M", "4E", "3E"], + zenheadbutt: ["9M"], + }, + }, + whiscash: { + learnset: { + amnesia: ["9M", "9L18", "8M", "8L18", "7L15", "6L15", "5L18", "4L18", "3L21"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L28", "5T", "5L39", "4T", "4L39", "4S0"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + belch: ["9L1", "8L1", "7L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L34", "6M", "6L34", "5M", "5L45", "4M", "4L45", "4S0", "3M", "3L36"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9L56", "8L56", "7L52", "6L52", "5L57", "4L57", "3L56"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L48", "8M", "8L48", "7L45", "6L45", "5L51", "4L51", "3L46"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + liquidation: ["9M", "8M"], + magnitude: ["7L20", "6L20", "5L26", "4L26", "3L16"], + mimic: ["3T"], + mudbomb: ["7L13", "6L13", "5L14", "4L14"], + muddywater: ["9L33", "8M", "8L33", "7L39", "6L39"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + outrage: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3M", "3L26"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M", "8M"], + scald: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["9L1", "8M", "8L1", "7T", "7L25", "6T", "6L25", "5T", "5L33", "4T", "4L33", "3T", "3L26"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L0", "8L0", "7L1"], + tickle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L10", "4L10", "3L11"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L22", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "4S0"], + }, + eventData: [ + {generation: 4, level: 51, gender: "F", nature: "Gentle", abilities: ["oblivious"], moves: ["earthquake", "aquatail", "zenheadbutt", "gigaimpact"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 10}, + {generation: 7, level: 10}, + ], + }, + corphish: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["9E", "8E", "7E", "6E", "5E", "4T", "4E", "3E"], + aquajet: ["9E", "8E", "7E", "6E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E", "3T", "3E"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + bubblebeam: ["9L12", "8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["3T"], + crabhammer: ["9L44", "8L44", "7L43", "6L38", "5L38", "4L38", "3L34"], + crunch: ["9M", "9L40", "8M", "8L40", "7L39", "6L39", "5L47", "4L47", "3L43"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "3T"], + doublehit: ["9L20", "8L20", "7L20", "6L20"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "4E"], + endeavor: ["9L48", "8L48", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + guillotine: ["9L52", "8L52", "7L48", "6L48", "5L53", "4L53", "3L44"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["9L1", "8L1", "7L5", "6L5", "5L7", "5D", "4L7", "3L7"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L16", "8L16", "7T", "7L23", "7E", "6T", "6L23", "6E", "5T", "5L26", "5E", "4T", "4L26", "4E", "3L25"], + leer: ["9L4", "8L4", "7L10", "6L10", "5L13", "4L13", "3L13"], + liquidation: ["9M"], + metalclaw: ["9M", "9E", "8E", "7E", "6E", "5E", "5D", "4E"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + nightslash: ["9L28", "8L28", "7L26", "6L26", "5L35", "4L35"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "9L24", "8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorshell: ["9L32", "8M", "8L32", "7L31", "6L31"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + slash: ["9E", "8E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + switcheroo: ["9E", "8E", "7E", "6E"], + swordsdance: ["9M", "9L36", "8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L44", "4M", "4L44", "3T", "3L37"], + takedown: ["9M"], + taunt: ["9M", "9L8", "8M", "8L8", "7M", "7L34", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E"], + visegrip: ["7L7", "6L7", "5L10", "4L10", "3L10"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["3S0"], + whirlpool: ["8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "watersport"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + crawdaunt: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["9L12", "8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], + captivate: ["4M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + counter: ["3T"], + crabhammer: ["9L52", "8L52", "7L48", "6L44", "5L44", "4L44", "3L38", "3S0", "3S1"], + crunch: ["9M", "9L46", "8M", "8L46", "7L43", "6L43", "5L57", "4L57", "3L51"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doublehit: ["9L20", "8L20", "7L20", "6L20"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + endeavor: ["9L58", "8L58", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + guillotine: ["9L64", "8L64", "7L54", "6L1", "5L65", "4L65", "3L52", "3S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L16", "8L16", "7T", "7L23", "6T", "6L23", "5T", "5L26", "4T", "4L26", "3L25", "3S1"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["9M", "8M", "7T"], + metalclaw: ["9M"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightslash: ["9L28", "8L28", "7L26", "6L26", "5L39", "4L39"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "9L24", "8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorshell: ["9L34", "8M", "8L34", "7L32", "6L32"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L0", "8M", "8L0", "7L1", "6L30", "5L30", "4T", "4L30", "3T"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "7L40", "6M", "6L40", "5M", "5L52", "4M", "4L52", "3T", "3L43", "3S0", "3S1"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L36", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L33", "3S0", "3S1"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + visegrip: ["7L1", "6L1", "5L1", "4L1", "3L1"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["taunt", "crabhammer", "swordsdance", "guillotine"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["knockoff", "taunt", "crabhammer", "swordsdance"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 7, level: 10}, + ], + }, + baltoy: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + ancientpower: ["8L18", "7L19", "6L19", "5L26", "4T", "4L25", "3L25"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L6", "7L1", "6L1", "5L1", "4L1", "3L1"], + cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L37", "4L45", "3L37"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + drillrun: ["8M", "7T", "6T", "5T"], + earthpower: ["8M", "8L30", "7T", "7L37", "6T", "6L37", "5T", "5L51", "4T", "4L53"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["8L42", "7M", "7L46", "6M", "6L46", "5M", "5L60", "4M", "4L71", "3T", "3L45"], + extrasensory: ["8L27", "7L31", "6L28", "5L43"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "5D", "4T"], + guardsplit: ["8L36", "7L34", "6L34", "5L48"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L4", "4L3", "3L3"], + headbutt: ["4T"], + healblock: ["7L10", "6L10", "5L54", "4L61"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + imprison: ["8M", "8L21", "7L43", "6L43"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["8L1", "7L7", "6L7", "5L11", "4T", "4L7", "3T", "3L7", "3S0"], + naturalgift: ["4M"], + powersplit: ["8L36", "7L34", "6L34", "5L48"], + powerswap: ["8M"], + powertrick: ["8L12", "7L25", "6L17", "5L31", "4L31"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["8L15", "7L16", "6L13", "5L15", "4L11", "3L11", "3S0"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8L3", "7L4", "6L4", "5L7", "5D", "4L5", "3L5"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L18", "4M", "4L15", "3M", "3L15", "3S0"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["8M", "8L39", "7M", "7L40", "6M", "6L40", "5M", "5L34", "4M", "4L37", "3M", "3L31"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8L33", "7L28", "6L25", "5L21", "4L19", "3T", "3L19"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + telekinesis: ["7T", "5M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 3, level: 17, moves: ["refresh", "rocktomb", "mudslap", "psybeam"]}, + ], + }, + claydol: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + ancientpower: ["8L18", "7L19", "6L19", "5L26", "4T", "4L25", "3L25"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L47", "4L51", "3L42"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + drillrun: ["8M", "7T", "6T", "5T"], + earthpower: ["8M", "8L30", "7T", "7L40", "6T", "6L40", "5T", "5L59", "4T", "4L62"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["8L48", "7M", "7L58", "6M", "6L58", "5M", "5L72", "4M", "4L86", "3T", "3L55"], + extrasensory: ["8L27", "7L31", "6L28", "5L39"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardsplit: ["8L38", "7L34", "6L34", "5L54"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + healblock: ["7L10", "6L10", "5L64", "4L73"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L0", "7M", "7L1", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L36"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + imprison: ["8M", "8L21", "7L52", "6L52"], + irondefense: ["8M"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["8L1", "7L7", "6L7", "5L11", "4T", "4L7", "3T", "3L7"], + nastyplot: ["8M"], + naturalgift: ["4M"], + powersplit: ["8L38", "7L34", "6L34", "5L54"], + powerswap: ["8M"], + powertrick: ["8L12", "7L25", "6L17", "5L31", "4L31"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["8L15", "7L16", "6L13", "5L15", "4L11", "3L11"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L18", "4M", "4L15", "3M", "3L15"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["8M", "8L43", "7M", "7L46", "6M", "6L46", "5M", "5L34", "4M", "4L40", "3M", "3L31"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8L33", "7L28", "6L25", "5L21", "4L19", "3T", "3L19"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + storedpower: ["8M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + telekinesis: ["7T", "5M"], + teleport: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + lileep: { + learnset: { + acid: ["8L4", "7L5", "6L5", "5L8", "5D", "5S0", "4L8", "3L15"], + amnesia: ["8M", "8L28", "7L36", "6L29", "5L29", "4L29", "3L36"], + ancientpower: ["8L16", "7L17", "6L17", "5L43", "4T", "4L43", "3L43"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + barrier: ["7E", "6E", "5E", "4E", "3E"], + bind: ["8E", "7T", "6T", "5T"], + bodyslam: ["8M", "3T"], + brine: ["8M", "8L24", "7L21", "6L21"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L8", "7L13", "6L13", "5L22", "4L22", "3L29"], + constrict: ["7L1", "6L1", "5L1", "5S0", "4L1", "3L8"], + curse: ["8E", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7E", "6E", "5E", "4M", "3T"], + energyball: ["8M", "8L44", "7M", "7L41", "6M", "6L41", "5M", "5L50", "4M", "4L50"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["8L32", "7T", "7L31", "6T", "6L31", "5T", "5L36", "4T", "4L36"], + gigadrain: ["8M", "8L36", "7T", "7L26", "6T", "6L26", "5T", "5D", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8L12", "7L9", "6L9", "5L15", "4L15", "3L22"], + megadrain: ["8L20", "7E", "6E", "5E"], + meteorbeam: ["8T"], + mimic: ["3T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + recover: ["8E", "7E", "6E", "5E", "5S0", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "5S0", "4M", "4E", "3T", "3E"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["8L41", "7L46", "6L46", "5L57", "4L57", "3L50"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stockpile: ["8L41", "7L46", "6L46", "5L57", "4L57", "3L50"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8L41", "7L46", "6L46", "5L57", "4L57", "3L50"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["8L1"], + wringout: ["7L52", "7E", "6L52", "6E", "5L64", "5E", "4L64", "4E"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["recover", "rockslide", "constrict", "acid"], pokeball: "cherishball"}, + ], + }, + cradily: { + learnset: { + acid: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + amnesia: ["8M", "8L28", "7L36", "6L29", "5L29", "4L29", "3L36"], + ancientpower: ["8L16", "7L17", "6L17", "5L36", "4T", "4L36", "3L48"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bind: ["7T", "6T", "5T"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "3T"], + brine: ["8M", "8L24", "7L21", "6L21"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L13", "6L13", "5L22", "4L22", "3L29"], + constrict: ["7L1", "6L1", "5L1", "4L1", "3L1"], + dig: ["8M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L48", "7M", "7L44", "6M", "6L44", "5M", "5L56", "4M", "4L56"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["8L32", "7T", "7L31", "6T", "6L31", "5T", "5L46", "4T", "4L46"], + gigadrain: ["8M", "8L36", "7T", "7L26", "6T", "6L26", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyterrain: ["8M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8L12", "7L1", "6L1", "5L1", "4L1", "3L1"], + leechseed: ["8L1"], + megadrain: ["8L20"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["8L43", "7L52", "6L1", "5L66", "4L66", "3L60"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stockpile: ["8L43", "7L52", "6L1", "5L66", "4L66", "3L60"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8L43", "7L52", "6L1", "5L66", "4L66", "3L60"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["8L1"], + wringout: ["7L1", "6L1", "5L76", "4L76"], + }, + }, + anorith: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8L16", "7L21", "6L21", "5L31", "4T", "4L31", "3L37"], + aquajet: ["8E", "7E", "6E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L24", "7L29", "6L29"], + bugbite: ["8L20", "7T", "7L25", "6T", "6L25", "5T"], + captivate: ["4M"], + confide: ["7M", "6M"], + crosspoison: ["8M", "7E", "6E", "5E", "5D", "5S0", "4E"], + crushclaw: ["8L32", "7L39", "6L39", "5L55", "4L55"], + curse: ["8E", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L10", "6L10", "5L37", "4T", "4L37", "3T", "3L43"], + harden: ["8L1", "7L1", "6L1", "5L1", "5S0", "4L1", "3L7"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + metalclaw: ["8L12", "7L17", "6L17", "5L19", "4L19", "3L25"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + mudsport: ["7L4", "6L4", "5L7", "5S0", "4L7", "3L13"], + naturalgift: ["4M"], + protect: ["8M", "8L41", "7M", "7L49", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L31"], + rapidspin: ["8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L36", "7L55", "6L49", "5L49", "4L49", "3L55"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8E", "7E", "6E", "5E", "4E"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + slash: ["8L28", "7L34", "6L34", "5L43", "4L43", "3L49"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["8L8", "7M", "7L13", "6M", "6L13", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "5D", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["8L4", "7L7", "6L7", "5L13", "5S0", "4L13", "3L19"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + xscissor: ["8M", "8L44", "7M", "7L44", "6M", "6L44", "5M", "5L61", "4M", "4L61"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["harden", "mudsport", "watergun", "crosspoison"], pokeball: "cherishball"}, + ], + }, + armaldo: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8L16", "7L21", "6L21", "5L31", "4T", "4L31", "3L37"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L24", "7L29", "6L29"], + brutalswing: ["8M", "7M"], + bugbite: ["8L20", "7T", "7L25", "6T", "5T"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crosspoison: ["8M"], + crushclaw: ["8L32", "7L39", "6L1", "5L67", "4L67"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L10", "6L10", "5L37", "4T", "4L37", "3T", "3L46"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + metalclaw: ["8L12", "7L17", "6L17", "5L19", "4L19", "3L25"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + protect: ["8M", "8L43", "7M", "7L53", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L31"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L36", "7L61", "6L55", "5L55", "4L55", "3L64"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M"], + slash: ["8L28", "7L25", "6L25", "5L46", "4L46", "3L55"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + xscissor: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5M", "5L73", "4M", "4L73"], + }, + }, + feebas: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "7E", "6E", "5E"], + captivate: ["7E", "6E", "5E", "5D", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonbreath: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L25", "8L25", "7L30", "6L30", "5L30", "4L30", "3L30"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypnosis: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], + mimic: ["3T"], + mirrorcoat: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "4S0", "3E"], + mist: ["9E", "8E", "7E", "6E", "5E", "4E"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + splash: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "4S0", "3L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tackle: ["9L15", "8L15", "7L15", "6L15", "5L15", "4L15", "3L15"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 4, level: 5, gender: "F", nature: "Calm", moves: ["splash", "mirrorcoat"], pokeball: "cherishball"}, + ], + }, + milotic: { + learnset: { + aquaring: ["9L12", "8L12", "7L17", "6L21", "5L49", "4L49"], + aquatail: ["9L32", "8L32", "7T", "7L31", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + attract: ["9L16", "8M", "8L16", "7M", "7L34", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L45"], + avalanche: ["9M", "8M", "4M"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["8M"], + brine: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["7L21", "6L24", "5L25", "4M", "4L25"], + chillingwater: ["9M"], + coil: ["9L48", "8L48", "7L41", "6L44"], + confide: ["7M", "6M"], + confuseray: ["9M"], + disarmingvoice: ["9M", "9L4", "8L4", "7L11", "6L11"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "9L24", "8L24", "7M", "7L24", "6M", "6L27", "5M"], + drainingkiss: ["9M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1"], + flipturn: ["9M", "8T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9M"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L52", "8M", "8L52", "7L44", "6L37", "5L37", "5S3", "4L37", "4S1", "4S2", "3L40"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S3", "5S4", "4M", "4S1", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "4S2", "3T"], + imprison: ["9M", "8M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lifedew: ["9L20", "8L20"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mirrorcoat: ["5S3"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "9L44", "8M", "8L44", "7M", "7L47", "6M", "6L33", "5M", "5L33", "4M", "4L33", "4S1", "4S2", "3M", "3L35", "3S0"], + recover: ["9L28", "8L28", "7L27", "6L21", "5L21", "5S3", "5S4", "4L21", "4S1", "4S2", "3L30", "3S0"], + refresh: ["7L1", "6L7", "5L9", "4L9", "3L15"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L36", "8M", "8L36", "7M", "7L37", "6M", "6L41", "5M", "5L45", "4M", "4L45", "3M", "3L50"], + scald: ["9M", "8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + secretpower: ["6M", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + splash: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "9L40", "8M", "8L40", "7M", "6M", "5M", "5S4", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "5S4", "4M", "3M"], + tripleaxel: ["8T"], + twister: ["9L8", "8L8", "7L14", "6L14", "5L17", "4T", "4L17", "3L25", "3S0"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "9L0", "8L0", "7T", "7L1", "6T", "6L13", "5L13", "4M", "4L13", "3M", "3L20", "3S0"], + watersport: ["7L1", "6L4", "5L5", "4L5", "3L10"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "4M"], + wrap: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L5"], + }, + eventData: [ + {generation: 3, level: 35, moves: ["waterpulse", "twister", "recover", "raindance"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "F", nature: "Bold", moves: ["recover", "raindance", "icebeam", "hydropump"], pokeball: "cherishball"}, + {generation: 4, level: 50, shiny: true, gender: "M", nature: "Timid", moves: ["raindance", "recover", "hydropump", "icywind"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, moves: ["recover", "hydropump", "icebeam", "mirrorcoat"], pokeball: "cherishball"}, + {generation: 5, level: 58, gender: "M", nature: "Lax", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["recover", "surf", "icebeam", "toxic"], pokeball: "cherishball"}, + ], + }, + castform: { + learnset: { + amnesia: ["7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + avalanche: ["4M"], + blizzard: ["7M", "7L35", "6M", "6L35", "5M", "5L50", "4M", "3M"], + bodyslam: ["3T"], + captivate: ["4M"], + clearsmog: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + cosmicpower: ["7E", "6E"], + defensecurl: ["3T"], + defog: ["7T"], + disable: ["7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + ember: ["7L10", "6L10", "5L10", "5D", "4L10", "3L10"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fireblast: ["7M", "7L35", "6M", "6L35", "5M", "5L50", "4M", "3M"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["7E", "6E", "5E", "4E", "3E"], + guardswap: ["7E", "6E"], + hail: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + headbutt: ["7L15", "6L15", "5L20"], + hex: ["7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["7L45", "6L45"], + hydropump: ["7L35", "6L35", "5L50"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "6T", "5T", "4T"], + luckychant: ["7E", "6E", "5E", "4E"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["7E", "6E", "5E", "5D", "4T", "4E"], + powdersnow: ["7L10", "6L10", "5L10", "4L10", "3L10"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + raindance: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + reflecttype: ["7E", "6E"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M", "3M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L10", "6L10", "5L10", "4L10", "3L10"], + waterpulse: ["7T", "6T", "5D", "4M", "3M"], + weatherball: ["7L25", "6L25", "5L40", "4L30", "3L30"], + workup: ["7M", "5M"], + }, + }, + kecleon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + ancientpower: ["7L21", "6L1", "5L55", "4T", "4L55", "3L49"], + aquatail: ["7T", "6T", "5T", "4T"], + astonish: ["7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bind: ["7T", "7L4", "6T", "6L4", "5T", "5L4", "4L4", "3L4"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + camouflage: ["7L30", "7E", "6L30", "6E"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + disable: ["7E", "6E", "5E", "4E", "3E"], + dizzypunch: ["7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7E", "6E", "5E", "4E"], + feint: ["7L10", "6L10", "5L14", "4L14"], + feintattack: ["7L16", "6L7", "5L7", "5D", "4L7", "3L7"], + fireblast: ["7M", "6M", "5M", "4M", "3M"], + firepunch: ["7T", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["7L13", "6L10", "5L10", "4L10", "3L12"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lick: ["7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["7T", "6T", "5T", "4T"], + magiccoat: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + poweruppunch: ["7E", "6M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psybeam: ["7L18", "6L18", "5L18", "4L15", "3L17"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + recover: ["7E", "6E", "5E", "4E"], + recycle: ["7T", "6T", "5T", "4M"], + reflecttype: ["5D"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["7L38", "6L32", "5L32", "4L32", "3L24"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["7M", "7L33", "6M", "6L33", "5M", "5L49", "4M", "4L49"], + shadowsneak: ["7L7", "6L7", "5L22", "4L20"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + slash: ["7L25", "6L25", "5L27", "4L25", "3L31"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stealthrock: ["7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "7L42", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3T", "3L40"], + suckerpunch: ["7L46", "6L43", "5L43", "4T", "4L43"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + synchronoise: ["7L50", "6L1", "5L58"], + tailwhip: ["7L1", "6L1", "5L1", "4L1", "3L1"], + thief: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + trickroom: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["7T", "6T", "5T"], + workup: ["7M", "5M"], + }, + }, + shuppet: { + learnset: { + allyswitch: ["7T"], + astonish: ["9L1", "7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "7E", "6E", "5E", "4E"], + curse: ["9L26", "7L26", "6L19", "5L13", "4L13", "3L20"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + destinybond: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], + disable: ["9E", "7E", "6E", "5E", "4E", "3E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L43", "4M", "4L38"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L28", "4L28", "3L37", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grudge: ["7L46", "6L46", "5L50", "4L46", "3L56"], + gunkshot: ["9M", "9E", "7T", "7E", "6E", "5E"], + headbutt: ["4T"], + helpinghand: ["9M"], + hex: ["9M", "9L22", "7L22", "6L22", "5L31"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + knockoff: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lashout: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + metronome: ["9M"], + mimic: ["3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L7", "7L7", "6L7", "5L8", "5D", "4L8", "3L13"], + ominouswind: ["7E", "6E", "5E", "4T"], + painsplit: ["7T", "6T", "5T", "5D", "4T"], + payback: ["7M", "6M", "5M", "4M", "4E"], + phantomforce: ["9M", "9L48", "7L54", "7E", "6L54", "6E"], + poltergeist: ["9M"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["9L34", "7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9L4", "7L4", "6L4", "5L5", "4L5", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L35", "4M", "4L31", "3M", "3L44", "3S0"], + shadowsneak: ["9L19", "7L13", "7E", "6L13", "6E", "5L20", "5E", "4L20", "4E"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7L42", "6T", "6L42", "5T", "5L46", "4M", "4L43", "3M", "3L49"], + snore: ["7T", "6T", "3T"], + spite: ["9M", "9L10", "7T", "7L10", "6T", "6L10", "5T", "5L16", "4T", "4L16", "3L25", "3S0"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L38", "7L38", "6L34", "5L38", "4T", "4L35"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "9L42", "7T", "7L50", "6T", "6L50", "5T", "5L55", "4T", "4L50"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L23", "4M", "4L23", "3L32", "3S0"], + }, + eventData: [ + {generation: 3, level: 45, abilities: ["insomnia"], moves: ["spite", "willowisp", "feintattack", "shadowball"], pokeball: "pokeball"}, + ], + }, + banette: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + burningjealousy: ["9M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cottonguard: ["5S1"], + curse: ["9L26", "7L26", "6L1", "5L1", "4L1", "3L1", "3S0"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L51", "4M", "4L42"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L28", "5S1", "4L28", "3L39", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grudge: ["7L52", "6L52", "5L66", "4L58", "3L64"], + gunkshot: ["9M", "7T"], + headbutt: ["4T"], + helpinghand: ["9M", "3S0"], + hex: ["9M", "9L22", "7L22", "6L22", "5L31", "5S1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + infestation: ["7M", "6M"], + knockoff: ["9M", "9L0", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lashout: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + phantomforce: ["9M", "9L53", "7L1", "6L1"], + poltergeist: ["9M"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["9L34", "7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L35", "5S1", "4M", "4L31", "3M", "3L48", "3S0"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shadowsneak: ["9L19", "7L13", "6L13", "5L20", "4L20"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7L46", "6T", "6L46", "5T", "5L58", "4M", "4L51", "3M", "3L55"], + snore: ["7T", "6T", "3T"], + spite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L16", "4T", "4L16", "3L25"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L40", "7L40", "6L34", "5L42", "4T", "4L35"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "9L46", "7T", "7L58", "6T", "6L58", "5T", "5L75", "4T", "4L66"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L23", "4M", "4L23", "3L32"], + }, + eventData: [ + {generation: 3, level: 37, abilities: ["insomnia"], moves: ["helpinghand", "feintattack", "shadowball", "curse"]}, + {generation: 5, level: 37, gender: "F", isHidden: true, moves: ["feintattack", "hex", "shadowball", "cottonguard"]}, + ], + encounters: [ + {generation: 5, level: 32}, + ], + }, + duskull: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L9", "6L9", "5L14", "4L14", "3L16", "3S1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L12", "8L12", "7L30", "6L17", "5L17", "4L17", "3L23", "3S1"], + curse: ["9L36", "8L36", "7L33", "6L30", "5L30", "4L30", "3L34", "3S0"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + destinybond: ["7E", "6E", "5E", "4E", "3E"], + disable: ["9L4", "8L4", "7L6", "6L6", "5L6", "5D", "4L6", "3L5"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + foresight: ["7L14", "6L9", "5L9", "4L9", "3L12"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L44", "8M", "8L44", "7L54", "6L49", "5L49", "4L46", "3L49"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + grudge: ["8E", "7E", "6E", "5E", "4E", "3E"], + haze: ["9M", "9E", "8E", "7E", "6E"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "3S1"], + hex: ["9M", "9L32", "8M", "8L32", "7L38", "6L38", "5L38"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + infestation: ["7M", "6M"], + leechlife: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L28", "8L28", "7L46", "6L41", "5L41", "4L38", "3L45", "3S0"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + mimic: ["3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L16", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + ominouswind: ["7E", "6E", "5E", "4T", "4E"], + painsplit: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + payback: ["9L20", "8M", "8L20", "7M", "7L49", "6M", "6L46", "5M", "5L46", "4M", "4L41"], + phantomforce: ["9M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7L22", "6L22", "5L25", "4L25", "3L27", "3S0"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "9L40", "8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "4M", "3M", "3S1"], + shadowsneak: ["9L8", "8L8", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L38", "3S0"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["pursuit", "curse", "willowisp", "meanlook"], pokeball: "pokeball"}, + {generation: 3, level: 19, moves: ["helpinghand", "shadowball", "astonish", "confuseray"]}, + ], + }, + dusclops: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L14", "4L14", "3L16"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bind: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "3L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L12", "8L12", "7L30", "6L17", "5L17", "4L17", "3L23"], + counter: ["3T"], + curse: ["9L36", "8L36", "7L33", "6L30", "5L30", "4L30", "3L34"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + disable: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M", "3M"], + foresight: ["7L14", "6L9", "5L9", "4L9", "3L12"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L48", "8M", "8L48", "7L1", "6L1", "5L61", "4L61", "3L58"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + haze: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L32", "8M", "8L32", "7L40", "6L40", "5L42"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + infestation: ["7M", "6M"], + leechlife: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L28", "8L28", "7L52", "6L49", "5L49", "4L43", "3L51"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L16", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L20", "8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], + phantomforce: ["9M"], + poltergeist: ["9M", "8T"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7L22", "6L22", "5L25", "4L25", "3L27"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "9L42", "8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M", "3M"], + shadowpunch: ["9L0", "8L0", "7L1", "6L37", "5L37", "4L37", "3L37"], + shadowsneak: ["9L1", "8L1", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L41"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 4, level: 16}, + {generation: 6, level: 30}, + ], + }, + dusknoir: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L14", "4L14"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bind: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L12", "8L12", "7L30", "6L17", "5L17", "4L17"], + curse: ["9L36", "8L36", "7L33", "6L30", "5L30", "4L30"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + destinybond: ["9L54", "8L54"], + disable: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + foresight: ["7L14", "6L9", "5L9", "4L9"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L48", "8M", "8L48", "7L1", "6L1", "5L61", "4L61"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + haze: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L32", "8M", "8L32", "7L40", "6L40", "5L42"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + leechlife: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + meanlook: ["9L28", "8L28", "7L52", "6L49", "5L49", "4L43"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M", "9L16", "8L16", "7L1", "6L1", "5L1", "4L1"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L20", "8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], + phantomforce: ["9M"], + poltergeist: ["9M", "8T"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + pursuit: ["7L22", "6L22", "5L25", "4L25"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "9L42", "8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M"], + shadowpunch: ["9L1", "8L1", "7L1", "6L37", "5L37", "4L37"], + shadowsneak: ["9L1", "8L1", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33"], + wonderroom: ["8M", "7T", "6T"], + }, + }, + tropius: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L36", "7L36", "6L36", "5L51", "4L47", "4S0"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bestow: ["7L46", "6L1", "5L57"], + bodypress: ["9M"], + bodyslam: ["9M", "9L41", "7L41", "6L37", "5L37", "4L37", "3T", "3L37"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "7E", "6E", "5E", "4M", "3M"], + calmmind: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["9E", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "9E", "7E", "6E", "5E", "4E"], + dragonhammer: ["7E"], + dragonpulse: ["9M", "7T", "6T", "5T"], + dragontail: ["9M"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fly: ["9M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "6L1", "5L7", "4L7", "3L7"], + gust: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + headbutt: ["9E", "7E", "6E", "5E", "4T", "4E", "3E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + leafblade: ["9E", "7E", "6E", "5E", "4E"], + leafstorm: ["9M", "9L1", "7L1", "7E", "6L1", "6E", "5L71", "5E", "4L61", "4E"], + leaftornado: ["7L26", "6L26", "5L47"], + leechseed: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + magicalleaf: ["9M", "9L16", "7L16", "6L16", "5L31", "4L31", "3L31"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["7L30", "7E", "6L1", "6E", "5L67", "5E", "4M", "4L57"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], + ominouswind: ["4T"], + outrage: ["9M", "9L46", "7T", "6T", "5T", "4T"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + razorleaf: ["9L1", "7L1", "6L1", "5L11", "4L11", "3L11"], + razorwind: ["7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T"], + silverwind: ["5D", "4M"], + slam: ["9E", "7E", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L56", "7M", "7L56", "6M", "6L56", "5M", "5L61", "4M", "4L51", "4S0", "3M", "3L41"], + solarblade: ["9M"], + spite: ["9M"], + steelwing: ["7M", "6M", "4M", "3M"], + stomp: ["9L10", "7L10", "6L10", "5L17", "4L17", "3L17"], + stompingtantrum: ["9M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "4S0", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L6", "7L6", "6L6", "5L21", "4L21", "3L21"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L50", "7T", "7L50", "7E", "6T", "6L41", "6E", "5T", "5L41", "5E", "4T", "4L41", "4E", "4S0", "3L47"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + twister: ["4T"], + uturn: ["9M"], + whirlwind: ["9L21", "7L21", "6L21", "5L27", "4L27", "3L27"], + wideguard: ["9L30"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 4, level: 53, gender: "F", nature: "Jolly", abilities: ["chlorophyll"], moves: ["airslash", "synthesis", "sunnyday", "solarbeam"], pokeball: "cherishball"}, + ], + }, + chingling: { + learnset: { + allyswitch: ["9E", "7T"], + astonish: ["9L7", "7L7", "6L7", "5L9", "4L9"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], + bind: ["7T", "6T", "5T"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["9L10", "7L10", "6L10", "5L14", "4L14"], + cosmicpower: ["9E", "7E", "6E"], + curse: ["9E", "7E", "6E", "5E", "4E"], + dazzlinggleam: ["9M", "7M", "6M"], + disable: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "4E"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + energyball: ["9M"], + entrainment: ["9L19", "7L19", "6L19", "5L25"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["7E", "6E", "5E", "4E"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + growl: ["9L4", "7L4", "6L4", "5L6", "4L6"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["9M", "7T", "6T", "5T"], + hypnosis: ["9E", "7E", "6E", "5E", "4E"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["9L16", "7T", "7L16", "6T", "6L16", "5T", "5L22", "4T", "4L22"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + naturalgift: ["4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + recover: ["9E", "7E", "6E", "5E", "4E"], + recycle: ["9E", "7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + storedpower: ["9M", "7E", "6E", "5E"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "9L32", "7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17"], + wish: ["9E", "7E", "6E", "5E", "4E"], + wrap: ["9L1", "7L1", "6L1", "5L1", "4L1"], + yawn: ["9L13", "7L13", "6L13"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], + }, + }, + chimecho: { + learnset: { + allyswitch: ["7T"], + astonish: ["9L1", "7L1", "6L1", "5L9", "4L9", "3L9", "3S0"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bind: ["7T", "6T", "5T"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L1", "6L1", "5L14", "4L14", "3L14"], + cosmicpower: ["7E", "6E"], + craftyshield: ["7E"], + curse: ["7E", "6E", "5E", "4E", "3E"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["3T"], + defog: ["7T"], + disable: ["7E", "6E", "5E", "4E", "3E"], + disarmingvoice: ["9M"], + doubleedge: ["9L42", "7L42", "6L33", "5L33", "4L33", "3T", "3L33"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + dreameater: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + extrasensory: ["9L22", "7L22", "6L22", "5L46", "4L46"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["7E", "6E", "5E", "4E"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + growl: ["9L1", "7L1", "6L1", "5L6", "4L6", "3L6", "3S0"], + healbell: ["9L27", "7T", "7L27", "6T", "6L27", "5T", "5L38", "4T", "4L38", "3L38"], + healingwish: ["9L1", "7L1", "6L1", "5L57", "4L49"], + healpulse: ["9L47", "7L47", "6L47", "5L49"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T", "5D"], + hypnosis: ["7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + perishsong: ["7E"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M", "3L46"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "7M", "6M", "5M"], + psywave: ["7L16", "6L16", "5L30", "4L30", "3L30"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recover: ["7E", "6E"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + safeguard: ["9L37", "7M", "7L37", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L41"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "9L16", "7E", "6E", "5E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + synchronoise: ["7L1", "6L1", "5L54"], + takedown: ["9M", "9L19", "7L19", "6L19", "5L22", "4L22", "3L17"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "9L32", "7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L22"], + wish: ["7E", "6E", "5E", "4E"], + wrap: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + yawn: ["9L13", "7L13", "6L13", "5L25", "4L25", "3L25"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["wrap", "growl", "astonish"], pokeball: "pokeball"}, + ], + }, + absol: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + airslash: ["8M"], + assurance: ["8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "7E", "6E", "5E", "4E", "3E"], + bite: ["8E", "7L16", "6L16", "5L28", "4L28", "3L21", "3S2"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brutalswing: ["8M", "7M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + detect: ["8L15", "7L33", "6L1", "5L49", "4L49"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["8L5", "7M", "7L19", "6M", "6L19", "5M", "5L33", "4M", "4L33", "3M", "3L31", "3S3"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + feint: ["8E", "7L1", "6L1", "5L1", "5D", "4L1"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + focusenergy: ["8M", "8L35"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + futuresight: ["8M", "8L50", "7L1", "6L1", "5L41", "4L41", "3L41", "3S3"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hex: ["8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["8L10", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L4", "4L4", "3L5", "3S0", "3S1"], + magiccoat: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + meanlook: ["8E", "7E", "6E", "5E", "4E"], + mefirst: ["7L41", "7E", "6L1", "6E", "5L57", "5E", "4L57", "4E"], + megahorn: ["8M", "7E", "6E", "5E", "5D", "4E"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightslash: ["8L30", "7L29", "6L29", "5L52", "4L52"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["8L55", "7L1", "7E", "6L1", "6E", "5L65", "5E", "4L65", "3L46", "3S3"], + playrough: ["8M", "7E", "6E"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychocut: ["8M", "7L37", "6L37", "5L60", "4L60"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + punishment: ["7E", "6E", "5E", "4E"], + pursuit: ["7L10", "6L10", "5L20", "4L20"], + quickattack: ["8L1", "7L1", "6L1", "5L12", "4L12", "3L13"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7L49", "6L1", "5L17", "4L17", "3L17", "3S2"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["8L25", "7L22", "6L22", "5L36", "4L36", "3L36", "3S3"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T", "3S1", "3S2"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["8L40", "7L45", "7E", "6L45", "6E", "5L44", "5E", "4T", "4L44", "4E"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "8L45", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3T", "3L26", "3S2"], + taunt: ["8M", "8L20", "7M", "7L13", "6M", "6L1", "5M", "5L9", "4M", "4L9", "3M", "3L9"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + wish: ["3S0"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["pressure"], moves: ["scratch", "leer", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["pressure"], moves: ["scratch", "leer", "spite"], pokeball: "pokeball"}, + {generation: 3, level: 35, abilities: ["pressure"], moves: ["razorwind", "bite", "swordsdance", "spite"], pokeball: "pokeball"}, + {generation: 3, level: 70, abilities: ["pressure"], moves: ["doubleteam", "slash", "futuresight", "perishsong"], pokeball: "pokeball"}, + ], + }, + snorunt: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "7E", "6E", "5E", "4M"], + bide: ["7E", "6E", "5E", "4E"], + bite: ["9L35", "8L35", "7L19", "6L10", "5L10", "4L10", "3L10", "3S0"], + blizzard: ["9M", "9L60", "8M", "8L60", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L43"], + block: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + bodyslam: ["9M", "8M", "3T"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L55", "8M", "8L55", "7L41", "6L31", "5L31", "4L31", "3L28"], + disable: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["9L10", "8L10", "7M", "7L5", "6M", "6L4", "5M", "5L4", "4M", "4L4", "3M", "3L7"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E"], + flash: ["6M", "5M", "4M", "3M"], + frostbreath: ["9L30", "8L30", "7M", "7L37", "6M", "6L37", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["8M", "8L45", "7M", "7L50", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L37"], + headbutt: ["9L1", "8L50", "7L28", "6L19", "5L19", "4T", "4L19", "3L19"], + helpinghand: ["9M"], + hex: ["9M", "8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3L34"], + icefang: ["9M", "9L40", "8M", "8L40", "7L23", "6L23", "5L28", "4L28"], + iceshard: ["9L15", "8L15", "7L10", "6L10", "5L37", "4L37"], + icespinner: ["9M"], + iciclecrash: ["9E", "8E"], + iciclespear: ["9M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3T", "3L16", "3S0"], + leer: ["9L5", "8L5", "7L1", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + naturalgift: ["4M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + protect: ["9M", "9L20", "8M", "8L20", "7M", "7L32", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L25"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sing: ["3S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M", "9L45"], + spikes: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + switcheroo: ["9E", "8E", "7E", "6E"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "5D", "4M", "3M", "3S0"], + weatherball: ["9M", "9L50", "8M", "7E", "6E", "5E", "5D", "4E"], + }, + eventData: [ + {generation: 3, level: 20, abilities: ["innerfocus"], moves: ["sing", "waterpulse", "bite", "icywind"]}, + ], + }, + glalie: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bite: ["9L35", "8L35", "7L19", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["9M", "9L68", "8M", "8L68", "7M", "7L48", "6M", "6L48", "5M", "5L51", "4M", "4L51", "3M", "3L53"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L61", "8M", "8L61", "7L41", "6L31", "5L31", "4L31", "3L28"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M"], + freezedry: ["9L0", "8L0", "7L1", "6L42"], + frostbreath: ["9L30", "8L30", "7M", "7L37", "6M", "6L37", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "8L47", "7M", "7L54", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L42"], + headbutt: ["9L1", "8L54", "7L28", "6L19", "5L19", "4T", "4L19", "3L19"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L34"], + icefang: ["9M", "9L40", "8M", "8L40", "7L23", "6L23", "5L28", "4L28"], + iceshard: ["9L15", "8L15", "7L1", "6L1"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3T", "3L16"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "9L20", "8M", "8L20", "7M", "7L32", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L25"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sheercold: ["9L1", "8L1", "7L1", "6L1", "5L59", "4L59", "3L61"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M", "9L47"], + spikes: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9M", "9L54", "8M"], + }, + }, + froslass: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L19", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + auroraveil: ["9L54", "8L54", "7M"], + avalanche: ["9M", "8M", "4M"], + bite: ["9L1", "8L1"], + blizzard: ["9M", "9L68", "8M", "8L68", "7M", "7L48", "6M", "6L48", "5M", "5L51", "4M", "4L51"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M"], + captivate: ["7L41", "6L31", "5L31", "4M", "4L31"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L35", "8L35", "7L32", "6L19", "5L19", "4L19"], + crunch: ["9M", "9L1", "8M", "8L1"], + destinybond: ["9L1", "8L1", "7L1", "6L1", "5L59", "4L59"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + drainingkiss: ["9M", "9L20", "8M", "8L20", "7L23", "6L23"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frostbreath: ["9L30", "8L30", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "8L40", "7M", "7L54", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + haze: ["9M"], + headbutt: ["9L1", "8L1", "4T"], + helpinghand: ["9M"], + hex: ["9M", "9L0", "8M", "8L0"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "8M", "8L1"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + iceshard: ["9L15", "8L15", "7L1", "6L1", "5L37", "4L37"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + imprison: ["9M", "8M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L1", "6L22", "5L22", "4T", "4L22"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poltergeist: ["9M", "8T"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "9L61", "8M", "8L61", "7M", "7L42", "6M", "6L42", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M", "9L40"], + spikes: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + tripleaxel: ["8T"], + wakeupslap: ["7L37", "6L28", "5L28", "4L28"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "9L47", "8M", "8L47", "7M", "7L28"], + }, + }, + spheal: { + learnset: { + aquaring: ["8E", "7E", "6E", "5E", "4E"], + aquatail: ["7T", "6T", "5T", "5D", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L28", "7L21", "6L21", "5L25", "4L25", "3L25", "3S0"], + bellydrum: ["8E", "7E", "6E"], + blizzard: ["8M", "8L44", "7M", "7L41", "6M", "6L41", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + bodyslam: ["8M", "8L36", "7L26", "6L19", "5L19", "4L19", "3T", "3L19"], + brine: ["8M", "8L24", "7L17", "6L17", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["3S0"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3T", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L33", "7L9", "6L7", "5L7", "4L7", "3L7"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L4", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L48", "7M", "7L36", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + iceball: ["7L13", "6L13", "5L13", "4L13", "3L13"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + mimic: ["3T"], + mudslap: ["4T", "3T", "3S0"], + naturalgift: ["4M"], + powdersnow: ["8L12", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L16", "7M", "7L31", "6M", "6L31", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L5", "7E", "6L5", "6E", "5E", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L52", "7L46", "6L46", "5L49", "4L49", "3L49"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "8L20", "7T", "7L31", "6T", "6L31", "5T", "5L37", "4T", "4L37", "3T", "3L37"], + spitup: ["8E", "7E", "6E", "5E", "4E", "3E"], + steelroller: ["8T"], + stockpile: ["8E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "8L40", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L8", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["8M", "4M"], + yawn: ["8E", "7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 17, abilities: ["thickfat"], moves: ["charm", "aurorabeam", "watergun", "mudslap"]}, + ], + }, + sealeo: { + learnset: { + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L28", "7L21", "6L21", "5L25", "4L25", "3L25"], + blizzard: ["8M", "8L52", "7M", "7L45", "6M", "6L45", "5M", "5L47", "4M", "4L47", "3M", "3L47"], + bodyslam: ["8M", "8L40", "7L26", "6L19", "5L19", "4L19", "3T", "3L19"], + brine: ["8M", "8L24", "7L17", "6L17", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "3T", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L35", "7L9", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L58", "7M", "7L38", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + iceball: ["7L13", "6L13", "5L13", "4L13", "3L13"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + powdersnow: ["8L12", "7L1", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L16", "7M", "7L31", "6M", "6L31", "5M", "5L39", "4M", "4L39", "3M", "3L39"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L5", "6L5", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L64", "7L52", "6L52", "5L55", "4L55", "3L55"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "8L20", "7T", "7L31", "6T", "6L31", "5T", "5L39", "4T", "4L39", "3T", "3L39"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "8L46", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L0", "7M", "7L1", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + encounters: [ + {generation: 4, level: 25}, + {generation: 6, level: 28, maxEggMoves: 1}, + ], + }, + walrein: { + learnset: { + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L28", "7L19", "6L19", "5L25", "4L25", "3L25"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "8L56", "7M", "7L49", "6M", "6L49", "5M", "5L52", "4M", "4L52", "3M", "3L50"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L40", "7L25", "6L19", "5L19", "4L19", "3T", "3L19"], + brine: ["8M", "8L24", "7L19", "6L19", "5S0", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + defensecurl: ["8L1", "7L1", "6L1", "3T", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L35", "7L7", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L64", "7M", "7L38", "6M", "6L31", "5M", "5L31", "5S0", "4M", "4L31", "3M", "3L31"], + headbutt: ["4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + iceball: ["7L13", "6L13", "5L13", "4L13", "3L13"], + icebeam: ["8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icefang: ["8M", "8L1", "7L1", "6L44", "5L44", "4L44"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + liquidation: ["8M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + powdersnow: ["8L12", "7L1", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L16", "7M", "7L31", "6M", "6L31", "5M", "5L39", "4M", "4L39", "3M", "3L39"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L7", "6L7", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L72", "7L60", "6L60", "5L65", "5S0", "4L65", "3L61"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "8L20", "7T", "7L31", "6T", "6L31", "5T", "5L39", "4T", "4L39", "3T", "3L39"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "8L48", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L1", "7M", "7L1", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3T"], + swordsdance: ["8M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 5, level: 50, abilities: ["thickfat"], moves: ["icebeam", "brine", "hail", "sheercold"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 30}, + ], + }, + clamperl: { + learnset: { + aquaring: ["7E", "6E", "5E", "5D", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + barrier: ["7E", "6E", "5E", "4E", "3E"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["7E", "6E", "5E", "4E", "3T", "3E"], + brine: ["7E", "6E", "5E", "4M"], + captivate: ["5D", "4M"], + clamp: ["7L1", "6L1", "5L1", "4L1", "3L1"], + confide: ["7M", "6M"], + confuseray: ["7E", "6E", "5E", "4E", "3E"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7E", "6E", "5E", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irondefense: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + mimic: ["3T"], + muddywater: ["7E", "6E", "5E", "4E"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shellsmash: ["7L50", "6L50", "5L51"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + supersonic: ["7E", "6E", "5E", "4E", "3E"], + surf: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["7L1", "6L1", "5L1", "5D", "4M", "4L1", "3L1"], + }, + }, + huntail: { + learnset: { + aquatail: ["7T", "7L39", "6T", "6L39", "5T", "5L46", "4T", "4L46"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L29", "6L29", "5L33", "4L33", "3L43"], + bind: ["7T", "6T", "5T"], + bite: ["7L1", "6L1", "5L6", "4L6", "3L8"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["7L19", "6L19", "5L28", "4M", "4L28"], + captivate: ["4M"], + coil: ["7L45", "6L45"], + confide: ["7M", "6M"], + crunch: ["7L34", "6L34", "5L42", "4L42", "3L36"], + dive: ["7L26", "6M", "6L26", "5M", "5L37", "4T", "4L37", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L11", "6L11"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["7L50", "6L50", "5L51", "4L51", "3L50"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L16", "6L16", "5L24", "4L24"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L9", "6L9", "5L19", "4L19", "3L29"], + screech: ["7L5", "6L5", "5L10", "4L10", "3L15"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L23", "6L23", "4T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "7L14", "6T", "6L14", "5L15", "4M", "4L15", "3M", "3L22"], + whirlpool: ["7L1", "6L1", "5L1", "4M", "4L1", "3L1"], + }, + }, + gorebyss: { + learnset: { + agility: ["7L9", "6L9", "5L10", "4L10", "3L15"], + amnesia: ["7L16", "6L16", "5L19", "4L19", "3L29"], + aquaring: ["7L19", "6L19", "5L24", "4L24"], + aquatail: ["7T", "7L39", "6T", "6L39", "5T", "5L46", "4T", "4L46"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L29", "6L29", "5L33", "4L33", "3L43"], + bind: ["7T", "6T", "5T"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["4M"], + captivate: ["7L23", "6L23", "5L28", "4M", "4L28"], + coil: ["7L45", "6L45"], + confide: ["7M", "6M"], + confusion: ["7L1", "6L1", "5L6", "4L6", "3L8"], + dive: ["7L26", "6M", "6L26", "5M", "5L37", "4T", "4L37", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["7L11", "6L11"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["7L50", "6L50", "5L51", "4L51", "3L50"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychic: ["7M", "7L34", "6M", "6L34", "5M", "5L42", "4M", "4L42", "3M", "3L36"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + surf: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "7L14", "6T", "6L14", "5L15", "4M", "4L15", "3M", "3L22"], + watersport: ["7L5", "6L5"], + whirlpool: ["7L1", "6L1", "5L1", "4M", "4L1", "3L1"], + }, + }, + relicanth: { + learnset: { + amnesia: ["8M", "7E", "6E", "5E", "4E", "3E"], + ancientpower: ["8L10", "7L21", "6L1", "5L43", "4T", "4L43", "3L43"], + aquatail: ["8L30", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dive: ["8M", "8L20", "7L26", "6M", "6L26", "5M", "5L57", "4T", "4L57", "3M"], + doubleedge: ["8L50", "7L50", "6L50", "5L50", "4L50", "3T", "3L57"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L40", "7L1"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + headsmash: ["8L55", "7L1", "6L1", "5L78", "4L78"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "7L46", "6L1", "5L71", "4L71", "3L64"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M"], + liquidation: ["8M"], + magnitude: ["7E", "6E", "5E", "4E", "3E"], + meteorbeam: ["8T"], + mimic: ["3T"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E", "4T", "4E", "3T"], + mudsport: ["7L1", "6L1", "5L36", "4L36", "3L36"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L35", "7M", "7L41", "6M", "6L41", "5M", "5L64", "4M", "4L64", "3M", "3L50"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3M", "3L15"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["8E", "7E", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M", "4E", "3T", "3E"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L25", "7L31", "6L29", "5L29", "4L29", "3L29"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L5", "7L1", "6L1", "5L8", "5D", "4L8", "3L8"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["8M", "4M"], + yawn: ["8L15", "7L35", "6L22", "5L22", "4L22", "3L22"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + luvdisc: { + learnset: { + agility: ["9M", "9L7", "7L7", "6L7", "5L9", "4L9", "3L16"], + aquajet: ["9E", "7E", "6E", "5E", "4E"], + aquaring: ["9L40", "7L40", "7E", "6L40", "6E", "5L46", "5E", "4L37", "4E"], + attract: ["9L20", "7M", "7L20", "6M", "6L22", "5M", "5L27", "4M", "4L22", "3M", "3L28"], + babydolleyes: ["9L37"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["7E", "6E", "5E", "4M"], + captivate: ["7L37", "7E", "6L46", "6E", "5L51", "5E", "4M", "4L40", "4E"], + charm: ["9M", "9L1", "7L1", "6L1", "5L4", "5D", "4L4", "3L4"], + confide: ["7M", "6M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "9L22", "7L9", "6L9"], + endure: ["9M", "4M", "3T"], + entrainment: ["9E", "7E", "6E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L26", "7L26", "6L27", "5L31", "4L46", "3L40"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + healpulse: ["7E", "6E", "5E"], + heartstamp: ["7L22"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L46", "7L46", "6L40", "5L40"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], + liquidation: ["9M", "7T"], + luckychant: ["7L13", "6L14", "5L17", "4L17"], + mimic: ["3T"], + mudsport: ["7E", "6E", "5E", "5D", "4E", "3E"], + naturalgift: ["4M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L49", "7M", "7L49", "6M", "6L55", "5M", "5L55", "4M", "4L51", "3M", "3L48"], + scald: ["7M", "6M", "5M"], + scaleshot: ["9M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["9L42", "7L42"], + splash: ["9E", "7E", "6E", "5E", "4E", "3E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9E", "7E", "6E", "5E", "4E", "3E"], + surf: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L31", "7L31", "6L31", "5L37", "4L27", "3L36"], + swift: ["4T", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L34", "7L34", "6L14", "5L14", "4L14", "3L24"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["9M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L4", "7L4", "6L4", "5L7", "4L7", "3L12"], + waterpulse: ["9M", "9L17", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L31", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["4M"], + wish: ["9L13"], + }, + }, + bagon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L5", "8L5", "7L10", "6L5", "5L5", "5D", "4L5", "3L5", "3S0", "3S1"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L46", "4L46", "3L41"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["9E", "8E", "7E", "6E", "5E"], + doubleedge: ["9L55", "8L55", "7L49", "6L49", "5L55", "4L55", "3T", "3L53"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L10", "8L10", "7L13", "6L13", "5L31", "4L31", "3L33"], + dragonclaw: ["9M", "9L31", "8M", "8L31", "7M", "7L29", "6M", "6L29", "5M", "5L50", "4M", "4L50", "3M", "3L49"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], + dragonpulse: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dragonrage: ["7E", "6E", "5E", "4E", "3E"], + dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], + dragontail: ["9M"], + ember: ["9L1", "8L1", "7L4", "6L4", "5L25", "4L25", "3L25"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M", "7E", "6E", "5E", "4E"], + firespin: ["9M"], + flamethrower: ["9M", "9L45", "8M", "8L45", "7M", "7L44", "6M", "6L44", "5M", "4M", "3M"], + focusenergy: ["9L40", "8M", "8L40", "7L21", "6L20", "5L20", "4L20", "3L21"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + headbutt: ["9L15", "8L15", "7L17", "6L16", "5L16", "4T", "4L16", "3L17"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "3S1"], + ironhead: ["9M"], + leer: ["9L1", "8L1", "7L7", "6L7", "5L10", "4L10", "3L9"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L50", "8M", "8L50", "7T", "6T", "5T", "5D", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rage: ["7L1", "6L1", "6S3", "5L1", "5S2", "4L1", "3L1", "3S0", "3S1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L39", "6L39", "5L40", "4L40", "3L37"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E", "6E", "6S3", "5E", "4E", "3E"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["9E", "8E", "7E", "6E", "5E", "4T", "4E", "3E"], + wish: ["3S0"], + zenheadbutt: ["9M", "9L35", "8M", "8L35", "7T", "7L34", "6T", "6L34", "5T", "5L35", "4T", "4L35"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["rage", "bite", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["rage", "bite", "irondefense"], pokeball: "pokeball"}, + {generation: 5, level: 1, shiny: true, moves: ["rage"], pokeball: "pokeball"}, + {generation: 6, level: 1, moves: ["rage", "thrash"], pokeball: "pokeball"}, + ], + }, + shelgon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L50", "4L50", "3L56"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + doubleedge: ["9L67", "8L67", "7L56", "6L56", "5L61", "4L61", "3T", "3L78"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L1", "8L1", "7L13", "6L13", "5L32", "4L32", "3L38"], + dragonclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L55", "4M", "4L55", "3M", "3L69"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L25", "4L25", "3L25"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M"], + firespin: ["9M"], + flamethrower: ["9M", "9L53", "8M", "8L53", "7M", "7L49", "6M", "6L49", "5M", "4M", "3M"], + focusenergy: ["9L46", "8M", "8L46", "7L21", "6L20", "5L20", "4L20", "3L21"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + headbutt: ["9L15", "8L15", "7L17", "6L1", "5L1", "4T", "4L1", "3L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L60", "8M", "8L60", "7T", "6T", "5T", "4T"], + protect: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L30", "5M", "5L30", "4M", "4L30", "3M", "3L30"], + rage: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L42", "6L42", "5L43", "4L43", "3L47"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + zenheadbutt: ["9M", "9L39", "8M", "8L39", "7T", "7L35", "6T", "6L35", "5T", "5L37", "4T", "4L37"], + }, + encounters: [ + {generation: 7, level: 15}, + ], + }, + salamence: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "5S3", "4M", "3M", "3S1"], + aircutter: ["4T"], + airslash: ["9M", "8M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L53", "4L53", "3L61"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + defog: ["7T", "4M"], + doubleedge: ["9L73", "8L73", "7L63", "6L1", "5L70", "4L70", "3T", "3L93"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L1", "8L1", "7L13", "6L13", "5L32", "4L32", "3L38", "3S0"], + dragonclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L61", "5S3", "4M", "4L61", "4S2", "3M", "3L79", "3S1"], + dragondance: ["9M", "8M", "5S3", "3S1"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L80"], + dualwingbeat: ["9M", "9L1", "8T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L25", "4L25", "3L25"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "4S2", "3M"], + firefang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], + firespin: ["9M"], + flamethrower: ["9M", "9L55", "8M", "8L55", "7M", "7L49", "6M", "6L49", "5M", "4M", "3M"], + fly: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L50", "5M", "5L50", "4M", "4L50", "3M", "3L50", "3S0"], + focusenergy: ["9L46", "8M", "8L46", "7L21", "6L20", "5L20", "4L20", "3L21"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["9L15", "8L15", "7L17", "6L1", "5L1", "4T", "4L1", "3L1"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "8M"], + hydropump: ["9M", "8M", "4S2"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M"], + ironhead: ["9M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "8L64", "7T", "6T", "5T", "5S3", "4T"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L30", "5M", "5L30", "4M", "4L30", "3M", "3L30", "3S0"], + psychicfangs: ["9M"], + rage: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S1"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + roost: ["9L1", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L42", "6L42", "5L43", "4L43", "3L47", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M", "4S2"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + zenheadbutt: ["9M", "9L39", "8M", "8L39", "7T", "7L35", "6T", "6L35", "5T", "5L37", "4T", "4L37"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["protect", "dragonbreath", "scaryface", "fly"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["refresh", "dragonclaw", "dragondance", "aerialace"]}, + {generation: 4, level: 50, gender: "M", nature: "Naughty", moves: ["hydropump", "stoneedge", "fireblast", "dragonclaw"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, moves: ["dragondance", "dragonclaw", "outrage", "aerialace"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 9}, + ], + }, + beldum: { + learnset: { + headbutt: ["4T"], + holdback: ["6S0"], + irondefense: ["8M", "7T", "6T", "6S0", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "6S0", "5T", "5D", "4T"], + steelbeam: ["8T"], + tackle: ["8L1"], + takedown: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + zenheadbutt: ["8M", "7T", "6T", "6S0", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 6, level: 5, shiny: true, moves: ["holdback", "ironhead", "zenheadbutt", "irondefense"], pokeball: "cherishball"}, + ], + }, + metang: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L66", "7L41", "6L38", "5L44", "4L44", "3L56"], + allyswitch: ["8M", "7T"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8L1", "7L26", "6L26", "5L32", "4L32"], + confide: ["7M", "6M"], + confusion: ["8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], + cosmicpower: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8L18", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "8L74", "7M", "7L50", "6M", "6L50", "5M", "5L56", "4M", "4L56", "3M", "3L62"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L58", "7T", "7L47", "6T", "6L47", "5T", "5L40", "4T", "4L40", "3L44"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + metalclaw: ["8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], + meteorbeam: ["8T"], + meteormash: ["8L50", "7L44", "6L44", "5L48", "4L48", "3L50"], + mimic: ["3T"], + miracleeye: ["7L29", "6L26", "5L26"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "4M", "4L36", "3M", "3L38"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + pursuit: ["7L23", "6L23", "5L28", "4L28", "3L32"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L26"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1"], + takedown: ["8L26", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + telekinesis: ["7T", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L52", "4T", "4L52"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["takedown", "confusion", "metalclaw", "refresh"], pokeball: "pokeball"}, + ], + }, + metagross: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L72", "7L41", "6L38", "5L44", "5S4", "4L44", "3L66"], + allyswitch: ["8M", "7T"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8L1", "7L26", "7S7", "6L26", "5L32", "5S1", "5S2", "4L32", "4S0"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + cosmicpower: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + doubleedge: ["5S4", "5S5", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "5S1", "5S3", "5S6", "4M", "3M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8L16", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8L0", "7L1", "6L45", "5L45", "5S1", "5S2", "5S4", "5S5", "4L45", "4S0"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "8L82", "7M", "7L60", "6M", "6L60", "5M", "5L71", "5S6", "4M", "4L71", "3M", "3L77"], + icepunch: ["8M", "7T", "7S7", "6T", "5T", "5S2", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L62", "7T", "7L52", "6T", "6L52", "5T", "5L40", "5S4", "4T", "4L40", "3L44"], + ironhead: ["8M", "7T", "7S7", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + metalclaw: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meteorbeam: ["8T"], + meteormash: ["8L52", "7L44", "6L44", "5L53", "5S1", "5S3", "5S5", "5S6", "4L53", "4S0", "3L55"], + mimic: ["3T"], + miracleeye: ["7L29", "6L26", "5L26"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "5S3", "4M", "3M"], + psychic: ["8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "5S5", "5S6", "4M", "4L36", "3M", "3L38"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + pursuit: ["7L23", "6L23", "5L28", "4L28", "3L32"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T", "7S7"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1"], + takedown: ["8L26", "7L1", "6L1", "5L1", "4L1", "3L1"], + telekinesis: ["7T", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L62", "5S2", "5S3", "4T", "4L62", "4S0"], + }, + eventData: [ + {generation: 4, level: 62, nature: "Brave", moves: ["bulletpunch", "meteormash", "hammerarm", "zenheadbutt"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, moves: ["meteormash", "earthquake", "bulletpunch", "hammerarm"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["bulletpunch", "zenheadbutt", "hammerarm", "icepunch"], pokeball: "cherishball"}, + {generation: 5, level: 45, shiny: true, moves: ["meteormash", "zenheadbutt", "earthquake", "protect"], pokeball: "pokeball"}, + {generation: 5, level: 45, isHidden: true, moves: ["irondefense", "agility", "hammerarm", "doubleedge"]}, + {generation: 5, level: 45, isHidden: true, moves: ["psychic", "meteormash", "hammerarm", "doubleedge"]}, + {generation: 5, level: 58, nature: "Serious", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["earthquake", "hyperbeam", "psychic", "meteormash"], pokeball: "cherishball"}, + {generation: 7, level: 50, nature: "Jolly", ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["ironhead", "icepunch", "bulletpunch", "stompingtantrum"], pokeball: "cherishball"}, + ], + }, + regirock: { + learnset: { + ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], + chargebeam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8L30", "8S7", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + explosion: ["8L78", "7M", "7L1", "6M", "6L1", "6S5", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flashcannon: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + hammerarm: ["8L42", "8S7", "7L49", "7S6", "6L1", "6S5", "5L81", "4L81"], + headbutt: ["4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icepunch: ["8M", "7T", "6T", "6S5", "5T", "4T", "3T"], + irondefense: ["8M", "8L36", "7T", "7L37", "6T", "6L37", "6S4", "5T", "5L41", "5S3", "4L41", "3L41"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L48", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L54", "8S7", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + zapcannon: ["8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["rockthrow", "curse", "superpower", "ancientpower"]}, + {generation: 3, level: 40, moves: ["curse", "superpower", "ancientpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: 1, moves: ["stomp", "rockthrow", "curse", "superpower"]}, + {generation: 5, level: 65, shiny: 1, moves: ["irondefense", "chargebeam", "lockon", "zapcannon"]}, + {generation: 6, level: 40, shiny: 1, moves: ["bulldoze", "curse", "ancientpower", "irondefense"]}, + {generation: 6, level: 50, isHidden: true, moves: ["explosion", "icepunch", "stoneedge", "hammerarm"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, moves: ["stoneedge", "hammerarm", "lockon", "zapcannon"]}, + {generation: 8, level: 70, shiny: 1, moves: ["superpower", "stoneedge", "hammerarm", "curse"]}, + ], + eventOnly: true, + }, + regice: { + learnset: { + amnesia: ["8M", "8L36", "8S7", "7L37", "6L37", "6S4", "6S5", "5L41", "5S3", "4L41", "3L41"], + ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + auroraveil: ["7M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "8L48", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], + chargebeam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + explosion: ["8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "6S5", "5M", "4M", "3M"], + hammerarm: ["8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], + headbutt: ["4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icebeam: ["8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + iciclespear: ["8M"], + icywind: ["8M", "8L1", "8S7", "7T", "7L1", "6T", "6L1", "5T", "5L9", "4T", "4L9", "4S2", "3T", "3L9", "3S0"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "6S5", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + zapcannon: ["8L66", "8S7", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["icywind", "curse", "superpower", "ancientpower"]}, + {generation: 3, level: 40, moves: ["curse", "superpower", "ancientpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: 1, moves: ["stomp", "icywind", "curse", "superpower"]}, + {generation: 5, level: 65, shiny: 1, moves: ["amnesia", "chargebeam", "lockon", "zapcannon"]}, + {generation: 6, level: 40, shiny: 1, moves: ["bulldoze", "curse", "ancientpower", "amnesia"]}, + {generation: 6, level: 50, isHidden: true, moves: ["thunderbolt", "amnesia", "icebeam", "hail"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, moves: ["icebeam", "hammerarm", "lockon", "zapcannon"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "zapcannon", "amnesia", "icywind"]}, + ], + eventOnly: true, + }, + registeel: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + amnesia: ["8M", "8L36", "7L37", "6L37", "6S4", "5L41", "5S3", "4L41", "3L41"], + ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "5M"], + chargebeam: ["8L1", "8S7", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + explosion: ["8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "5M", "5L73", "4M", "4L73"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "6S5", "5T", "4T"], + hammerarm: ["8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], + headbutt: ["4T"], + heavyslam: ["8M", "8L48", "8S7"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L36", "8S7", "7T", "7L37", "6T", "6L37", "6S4", "6S5", "5T", "5L41", "4T", "4L41", "3L41"], + ironhead: ["8M", "8L24", "7T", "7L43", "6T", "6L1", "6S5", "5T", "5L73", "4T", "4L73"], + lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalclaw: ["8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "6S5", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + zapcannon: ["8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["metalclaw", "curse", "superpower", "ancientpower"]}, + {generation: 3, level: 40, moves: ["curse", "superpower", "ancientpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: 1, moves: ["stomp", "metalclaw", "curse", "superpower"]}, + {generation: 5, level: 65, shiny: 1, moves: ["amnesia", "chargebeam", "lockon", "zapcannon"]}, + {generation: 6, level: 40, shiny: 1, moves: ["curse", "ancientpower", "irondefense", "amnesia"]}, + {generation: 6, level: 50, isHidden: true, moves: ["ironhead", "rockslide", "gravity", "irondefense"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, moves: ["flashcannon", "hammerarm", "lockon", "zapcannon"]}, + {generation: 8, level: 70, shiny: 1, moves: ["heavyslam", "flashcannon", "irondefense", "chargebeam"]}, + ], + eventOnly: true, + }, + latias: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + airslash: ["8M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + batonpass: ["8M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L1", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], + confide: ["7M", "6M"], + confusion: ["8L15"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + dive: ["8M", "8S11", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "7S9", "6T", "5T", "4T"], + dragonbreath: ["8L25", "8S10", "7L20", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L45", "8S11", "7T", "7L56", "7S7", "7S8", "6T", "6L1", "5T", "5L80", "4M", "4L70"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardsplit: ["8L65", "7L46", "6L1", "5L75"], + healingwish: ["8L70", "7L1", "6L1", "5L85", "4L60"], + healpulse: ["8L50", "7L16", "6L1", "6S6", "5L65", "5S5"], + helpinghand: ["8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mimic: ["3T"], + mistball: ["8L35", "8S11", "7L24", "7S7", "7S8", "7S9", "6L24", "6S6", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], + mudslap: ["4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L60", "7M", "7L51", "7S9", "6M", "6L51", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], + psychocut: ["8M"], + psychoshift: ["8L75", "7L28", "7S7", "7S8", "6L28", "6S6", "5L50", "5S5", "4L50"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflecttype: ["8L55", "8S10", "7L36", "6L1", "5L70"], + refresh: ["7L13", "6L13", "5L30", "4L30", "4S3", "4S4", "3L30", "3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L15", "4M", "4L15", "3M", "3L15"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + storedpower: ["8M", "8L1", "7L10", "6L10"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "8S10", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["8S11"], + swift: ["8M", "4T", "3T"], + tailwind: ["8L20", "7T", "7S9", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7L4", "6L4", "5L25", "4L25", "4S3", "4S4", "3L25", "3S0"], + whirlpool: ["8M", "4M"], + wish: ["8L30", "7L1", "7S7", "7S8", "6L1", "5L5", "4L5", "3L5"], + zenheadbutt: ["8M", "8L40", "8S10", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["watersport", "refresh", "mistball", "psychic"]}, + {generation: 3, level: 50, shiny: 1, moves: ["mistball", "psychic", "recover", "charm"]}, + {generation: 3, level: 70, moves: ["mistball", "psychic", "recover", "charm"], pokeball: "pokeball"}, + {generation: 4, level: 35, shiny: 1, moves: ["dragonbreath", "watersport", "refresh", "mistball"]}, + {generation: 4, level: 40, shiny: 1, moves: ["watersport", "refresh", "mistball", "zenheadbutt"]}, + {generation: 5, level: 68, shiny: 1, moves: ["psychoshift", "charm", "psychic", "healpulse"]}, + {generation: 6, level: 30, shiny: 1, moves: ["healpulse", "dragonbreath", "mistball", "psychoshift"]}, + {generation: 7, level: 60, shiny: 1, moves: ["mistball", "dragonpulse", "psychoshift", "wish"]}, + {generation: 7, level: 60, moves: ["mistball", "dragonpulse", "psychoshift", "wish"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["mistball", "psychic", "dracometeor", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["reflecttype", "dragonbreath", "zenheadbutt", "surf"]}, + {generation: 8, level: 70, nature: "Bashful", moves: ["mistball", "dragonpulse", "dive", "sweetkiss"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + latios: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + airslash: ["8M"], + allyswitch: ["8M", "8L30", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["8M", "8S11"], + batonpass: ["8M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L15"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "7S10", "6T", "5T", "4T"], + dragonbreath: ["8L25", "7L20", "7S8", "7S9", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M", "8L1", "8S11", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], + dragonpulse: ["8M", "8L45", "8S11", "7T", "7L56", "7S8", "7S9", "6T", "6L1", "6S7", "5T", "5L80", "4M", "4L70"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + healblock: ["7L1", "6L1", "5L5", "4L5"], + healpulse: ["8L50", "7L16", "6L1", "6S6", "6S7", "5L65", "5S5"], + helpinghand: ["8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + lusterpurge: ["8L35", "7L24", "7S8", "7S9", "7S10", "6L24", "6S6", "6S7", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], + magiccoat: ["7T", "6T", "5T", "4T"], + memento: ["8L70", "7L1", "6L1", "5L85", "4L60", "3L5"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + powersplit: ["8L65", "7L46", "6L1", "5L75"], + protect: ["8M", "7M", "7L4", "6M", "6L4", "5M", "5L25", "4M", "4L25", "4S3", "4S4", "3M", "3L25", "3S0"], + psychic: ["8M", "8L60", "7M", "7L51", "7S10", "6M", "6L51", "6S7", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], + psychocut: ["8M"], + psychoshift: ["8L75", "7L28", "7S8", "7S9", "6L28", "6S6", "5L50", "5S5", "4L50"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L13", "6L13", "5L30", "4L30", "4S3", "4S4", "3L30", "3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L15", "4M", "4L15", "3M", "3L15"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + simplebeam: ["8L55"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + storedpower: ["8M", "8L1", "7L10", "6L10"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tailwind: ["8L20", "7T", "7S10", "6T", "5T", "4T"], + telekinesis: ["7T", "7L36", "6L1", "5M", "5L70"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "8L40", "8S11", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["protect", "refresh", "lusterpurge", "psychic"]}, + {generation: 3, level: 50, shiny: 1, moves: ["lusterpurge", "psychic", "recover", "dragondance"]}, + {generation: 3, level: 70, moves: ["lusterpurge", "psychic", "recover", "dragondance"], pokeball: "pokeball"}, + {generation: 4, level: 35, shiny: 1, moves: ["dragonbreath", "protect", "refresh", "lusterpurge"]}, + {generation: 4, level: 40, shiny: 1, moves: ["protect", "refresh", "lusterpurge", "zenheadbutt"]}, + {generation: 5, level: 68, shiny: 1, moves: ["psychoshift", "dragondance", "psychic", "healpulse"]}, + {generation: 6, level: 30, shiny: 1, moves: ["healpulse", "dragonbreath", "lusterpurge", "psychoshift"]}, + {generation: 6, level: 50, nature: "Modest", moves: ["dragonpulse", "lusterpurge", "psychic", "healpulse"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["lusterpurge", "dragonpulse", "psychoshift", "dragonbreath"]}, + {generation: 7, level: 60, moves: ["lusterpurge", "dragonpulse", "psychoshift", "dragonbreath"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["lusterpurge", "psychic", "dracometeor", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["dragondance", "dragonpulse", "zenheadbutt", "aurasphere"]}, + ], + eventOnly: true, + }, + kyogre: { + learnset: { + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L45", "5S3", "4T", "4L15", "4S2", "3L15"], + aquaring: ["9L54", "8L54", "8S11", "7L30", "6L30", "6S5", "5L30", "4L30", "4S2"], + aquatail: ["9L9", "8L9", "7T", "7L15", "6T", "6L15", "5T", "5L65", "4T", "4L65"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "9L1", "8M", "8L1", "8S11", "7L20", "6L15", "6S5", "5L15", "4L15", "3T", "3L20", "3S0"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L18", "8M", "8L18", "7M", "7L50", "7S7", "7S8", "7S9", "7S10", "6M", "6L50", "5M", "5L60", "4M", "4L30", "3M", "3L30", "3S0"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defensecurl: ["3T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L81", "8L81", "7L80", "6L80", "5L80", "4L65", "3T", "3L65", "3S1"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L72", "8M", "8L72", "7L75", "6L75", "5L90", "4L45", "3L45", "3S0", "3S1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9L36", "8M", "8L36", "7M", "7L35", "7S7", "7S8", "7S9", "7S10", "6M", "6L35", "6S5", "6S6", "5M", "5L35", "5S3", "5S4", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + muddywater: ["9L27", "8M", "8L27", "7L60", "7S7", "7S8", "7S9", "6L20", "5L20", "4L20"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + originpulse: ["9L1", "8L63", "7L45", "7S7", "7S8", "7S9", "7S10", "6L45", "6S5"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "4L50", "3M", "3L50", "3S1"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L5", "6L5", "5L5", "4L5", "3L5"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["9L45", "8L45", "7L65", "6L65", "6S6", "5L75", "5S4", "4L60", "3L60", "3S1"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8S11", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "8S11", "7M", "6M", "6S6", "5M", "5S3", "5S4", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5L1", "4M", "4L1", "3M", "3L1"], + waterspout: ["9L90", "8L90", "7L90", "7S10", "6L50", "6S6", "5L50", "5S3", "5S4", "4L50", "4S2", "3L75"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 3, level: 45, shiny: 1, moves: ["bodyslam", "calmmind", "icebeam", "hydropump"]}, + {generation: 3, level: 70, shiny: 1, moves: ["hydropump", "rest", "sheercold", "doubleedge"]}, + {generation: 4, level: 50, shiny: 1, moves: ["aquaring", "icebeam", "ancientpower", "waterspout"]}, + {generation: 5, level: 80, shiny: 1, moves: ["icebeam", "ancientpower", "waterspout", "thunder"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["waterspout", "thunder", "icebeam", "sheercold"], pokeball: "cherishball"}, + {generation: 6, level: 45, moves: ["bodyslam", "aquaring", "icebeam", "originpulse"]}, + {generation: 6, level: 100, nature: "Timid", moves: ["waterspout", "thunder", "sheercold", "icebeam"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["icebeam", "originpulse", "calmmind", "muddywater"]}, + {generation: 7, level: 60, shiny: true, moves: ["icebeam", "originpulse", "calmmind", "muddywater"], pokeball: "cherishball"}, + {generation: 7, level: 60, moves: ["icebeam", "originpulse", "calmmind", "muddywater"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["originpulse", "icebeam", "waterspout", "calmmind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["surf", "bodyslam", "aquaring", "thunder"]}, + ], + eventOnly: true, + }, + groudon: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L45", "5S3", "4T", "4L15", "4S2", "3L15"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "9L18", "8M", "8L18", "7M", "7L50", "7S7", "7S8", "7S9", "6M", "6L50", "5M", "5L60", "4M", "4L30", "3M", "3L30", "3S0"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["9M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + dynamicpunch: ["3T"], + earthpower: ["9M", "9L9", "8M", "8L9", "7T", "7L15", "7S10", "6T", "6L15", "5T", "5L65", "5S4", "4T", "4L65"], + earthquake: ["9M", "9L27", "8M", "8L27", "8S11", "7M", "7L35", "7S7", "7S8", "7S9", "6M", "6L35", "6S5", "5M", "5L35", "5S3", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], + endure: ["9M", "8M", "4M", "3T"], + eruption: ["9L90", "8L90", "7L90", "6L50", "5L50", "5S3", "5S4", "4L50", "4S2", "3L75"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "9L72", "8M", "8L72", "7M", "7L75", "6M", "6L75", "5M", "5L90", "4M", "4L45", "3M", "3L45", "3S0", "3S1"], + firefang: ["9M"], + firepunch: ["9M", "8M", "7T", "7S10", "6T", "6S6", "5T", "4T", "3T"], + fissure: ["9L45", "8L45", "7L65", "6L65", "5L75", "4L60", "3L60", "3S1"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hammerarm: ["9L36", "8L36", "8S11", "7L80", "6L20", "6S6", "5L20", "5S4", "4L20"], + headbutt: ["4T"], + heatcrash: ["9M", "8M"], + heatwave: ["9M"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["9M", "8M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lavaplume: ["9L1", "8L1", "8S11", "7L20", "6L15", "6S5", "5L15", "4L15"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalclaw: ["9M"], + mimic: ["3T"], + mudshot: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + poweruppunch: ["6M"], + precipiceblades: ["9L1", "8L63", "7L45", "7S7", "7S8", "7S9", "7S10", "6L45", "6S5"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + rest: ["9M", "9L54", "8M", "8L54", "7M", "7L30", "6M", "6L30", "6S5", "5M", "5L30", "4M", "4L30", "4S2", "3M", "3L50", "3S1"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "6S6", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9M"], + scaryface: ["9M", "9L1", "8M", "8L1", "8S11", "7L5", "6L5", "5L5", "4L5", "3L5"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["4L20", "3L20", "3S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L81", "8M", "8L81", "7M", "7L60", "7S7", "7S8", "7S9", "6M", "6L60", "6S6", "5M", "5L80", "5S3", "5S4", "4M", "4L65", "3M", "3L65", "3S1"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7S10", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 45, shiny: 1, moves: ["slash", "bulkup", "earthquake", "fireblast"]}, + {generation: 3, level: 70, shiny: 1, moves: ["fireblast", "rest", "fissure", "solarbeam"]}, + {generation: 4, level: 50, shiny: 1, moves: ["rest", "earthquake", "ancientpower", "eruption"]}, + {generation: 5, level: 80, shiny: 1, moves: ["earthquake", "ancientpower", "eruption", "solarbeam"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["eruption", "hammerarm", "earthpower", "solarbeam"], pokeball: "cherishball"}, + {generation: 6, level: 45, moves: ["lavaplume", "rest", "earthquake", "precipiceblades"]}, + {generation: 6, level: 100, nature: "Adamant", moves: ["firepunch", "solarbeam", "hammerarm", "rockslide"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["earthquake", "precipiceblades", "bulkup", "solarbeam"]}, + {generation: 7, level: 60, shiny: true, moves: ["earthquake", "precipiceblades", "bulkup", "solarbeam"], pokeball: "cherishball"}, + {generation: 7, level: 60, moves: ["earthquake", "precipiceblades", "bulkup", "solarbeam"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["precipiceblades", "earthpower", "firepunch", "swordsdance"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["earthquake", "scaryface", "lavaplume", "hammerarm"]}, + ], + eventOnly: true, + }, + rayquaza: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + airslash: ["9M", "9L1", "8M", "8L1", "7L30", "6L30", "5L35", "4L35", "4S1"], + ancientpower: ["9L1", "8L1", "7L15", "6L15", "5L45", "5S2", "4T", "4L15", "4S1", "3L15"], + aquatail: ["7T", "6T", "5T", "4T"], + avalanche: ["9M", "8M", "4M"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "8S9", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + celebrate: ["6S7"], + confide: ["7M", "6M"], + cosmicpower: ["8M"], + crunch: ["9M", "9L9", "8M", "8L9", "7L20", "6L15", "5L15", "4L15", "3L35"], + defog: ["7T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "6S7", "5T", "4T"], + dragonascent: ["9L1", "8L1", "8S9", "7T", "6T", "6S4", "6S6", "6S7"], + dragonclaw: ["9M", "8M", "7M", "6M", "6S6", "5M", "4M", "4L20", "3M", "3L20"], + dragondance: ["9M", "9L18", "8M", "8L18", "7L60", "7S8", "6L60", "6S4", "6S6", "5L60", "5S2", "4L30", "3L30"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L50", "7S8", "6T", "6L50", "6S4", "6S5", "5T", "5L90", "5S2", "5S3", "4M", "4L75"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + extremespeed: ["9L27", "8L27", "8S9", "7L45", "7S8", "6L45", "6S4", "6S5", "6S6", "5L75", "5S3", "4L60", "3L60", "3S0"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "9L63", "8M", "8L63", "7M", "7L65", "6M", "6L65", "6S7", "5M", "5L65", "4M", "4L45", "3M", "3L45", "3S0"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "9L72", "8M", "8L72"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L90", "8M", "8L90", "7M", "7L90", "6M", "6L80", "5M", "5L80", "5S3", "4M", "4L65", "3M", "3L75"], + hypervoice: ["9M", "9L45", "8M", "8L45", "7T", "7L75", "6T", "6L20", "5T", "5L20", "4L20"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L81", "8M", "8L81", "7T", "7L80", "6T", "6L50", "5T", "5L50", "5S2", "4T", "4L50", "4S1", "3L65", "3S0"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L54", "8M", "8L54", "7M", "7L35", "7S8", "6M", "6L30", "5M", "5L30", "4M", "4L30", "4S1", "3M", "3L50", "3S0"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["9M", "7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L5", "6L5", "5L5", "4L5", "3L5"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "6S5", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "8S9", "7L1", "6L1", "6S5", "5L1", "4T", "4L1", "3L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M"], + vcreate: ["5S3"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wildcharge: ["9M"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["fly", "rest", "extremespeed", "outrage"]}, + {generation: 4, level: 50, shiny: 1, moves: ["rest", "airslash", "ancientpower", "outrage"]}, + {generation: 5, level: 70, shiny: true, moves: ["dragonpulse", "ancientpower", "outrage", "dragondance"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["extremespeed", "hyperbeam", "dragonpulse", "vcreate"], pokeball: "cherishball"}, + {generation: 6, level: 70, moves: ["extremespeed", "dragonpulse", "dragondance", "dragonascent"]}, + {generation: 6, level: 70, shiny: true, moves: ["dragonpulse", "thunder", "twister", "extremespeed"], pokeball: "cherishball"}, + {generation: 6, level: 70, shiny: true, moves: ["dragonascent", "dragonclaw", "extremespeed", "dragondance"], pokeball: "cherishball"}, + {generation: 6, level: 100, shiny: true, moves: ["dragonascent", "dracometeor", "fly", "celebrate"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["rest", "extremespeed", "dragonpulse", "dragondance"]}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonascent", "brutalswing", "extremespeed", "twister"]}, + ], + eventOnly: true, + }, + jirachi: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + allyswitch: ["8M"], + amnesia: ["9M", "8M"], + ancientpower: ["4T"], + aurasphere: ["9M", "8M"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "8M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "6S10", "6S12", "6S13", "5L1", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + cosmicpower: ["9L84", "8M", "8L84", "7L60", "6L60", "6S11", "5L60", "5S7", "4L60", "3L45"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defensecurl: ["3T"], + doomdesire: ["9L98", "8L98", "7L70", "6L70", "5L70", "4L70", "3L50"], + doubleedge: ["9L77", "8L77", "7L40", "6L40", "5L40", "4L40", "3T", "3L35"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["5S6", "4S4"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + followme: ["5S6"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L70", "8M", "8L70", "7L55", "6L55", "5L55", "4L55", "3L40"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9L35", "8L35", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], + happyhour: ["6S12"], + headbutt: ["4T"], + healingwish: ["9L56", "8L56", "7L50", "7S14", "6L50", "6S9", "5L50", "5S5", "5S7", "5S8", "4L50"], + heartstamp: ["6S11"], + helpinghand: ["9M", "8M", "8L14", "7T", "7L15", "6T", "6L15", "6S10", "5T", "5L15", "4T", "4L15", "3L15", "3S2"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lastresort: ["9L91", "8L91", "7T", "7L65", "6T", "6L65", "5T", "5L65", "4T", "4L65"], + lifedew: ["9L21", "8L21"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L30"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + meteormash: ["9L49", "8L49", "8S15", "5S5", "5S6", "5S7"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + moonblast: ["6S9"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + playrough: ["9M", "8M", "6S11"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L42", "8M", "8L42", "8S15", "7M", "7L20", "6M", "6L20", "5M", "5L20", "5S5", "4M", "4L20", "3M", "3L20", "3S2"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S2"], + rest: ["9M", "9L63", "8M", "8L63", "8S15", "7M", "7L30", "7S14", "6M", "6L5", "6S13", "5M", "5L5", "4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], + return: ["7M", "6M", "6S10", "5M", "5S8", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L7", "8M", "8L7", "7L10", "7S14", "6L10", "6S9", "6S12", "5L10", "5S5", "5S8", "4T", "4L10", "3T", "3L10"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wish: ["9L1", "8L1", "8S15", "7L1", "7S14", "6L1", "6S9", "6S10", "6S11", "6S12", "6S13", "5L1", "5S6", "5S7", "5S8", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + zenheadbutt: ["9M", "9L28", "8M", "8L28", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + }, + eventData: [ + {generation: 3, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, + {generation: 3, level: 30, moves: ["helpinghand", "psychic", "refresh", "rest"], pokeball: "pokeball"}, + {generation: 4, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "cherishball"}, + {generation: 4, level: 5, moves: ["wish", "confusion", "rest", "dracometeor"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["healingwish", "psychic", "swift", "meteormash"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["dracometeor", "meteormash", "wish", "followme"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["wish", "healingwish", "cosmicpower", "meteormash"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["wish", "healingwish", "swift", "return"], pokeball: "cherishball"}, + {generation: 6, level: 10, shiny: true, moves: ["wish", "swift", "healingwish", "moonblast"], pokeball: "cherishball"}, + {generation: 6, level: 15, shiny: true, moves: ["wish", "confusion", "helpinghand", "return"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["heartstamp", "playrough", "wish", "cosmicpower"], pokeball: "cherishball"}, + {generation: 6, level: 25, shiny: true, moves: ["wish", "confusion", "swift", "happyhour"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["wish", "confusion", "rest"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["swift", "wish", "healingwish", "rest"], pokeball: "cherishball"}, + {generation: 8, level: 70, nature: "Timid", moves: ["meteormash", "psychic", "rest", "wish"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + deoxys: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7L55", "6L55", "5L73", "4L73", "3L35"], + allyswitch: ["7T", "5M"], + amnesia: ["7L55", "6L55", "5L73", "4L73", "3L35"], + avalanche: ["4M"], + bind: ["7T", "6T", "5T"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + cosmicpower: ["7L55", "6L55", "6S10", "5L73", "4L73", "3L35", "3S3"], + counter: ["7L73", "6L73", "5L97", "4L97", "4S6", "3T", "3L50"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["7M", "6M", "5S9"], + detect: ["4S6"], + doubleedge: ["3T"], + doubleteam: ["7M", "7L13", "6M", "6L13", "5M", "5L17", "4M", "4L17", "4S5", "3M", "3L10"], + drainpunch: ["7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + extremespeed: ["7L73", "6L73", "5L97", "4L97", "4S4", "4S5", "3L50"], + facade: ["7M", "6M", "5M", "4M", "3M"], + firepunch: ["7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7L73", "6M", "6L73", "6S10", "5M", "5L97", "4M", "4L97", "4S7", "3M", "3L50", "3S3"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irondefense: ["7L55", "6T", "6L55", "5T", "5L73", "4T", "4L73", "4S4", "3L35"], + knockoff: ["7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25", "3L15", "3S1", "3S2"], + laserfocus: ["7T"], + leer: ["7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + lowkick: ["7T", "6T", "5T", "4T"], + lowsweep: ["7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + meteormash: ["4S7"], + mimic: ["3T"], + mirrorcoat: ["7L73", "6L73", "5L97", "4L97", "4S6", "3L50"], + mudslap: ["4T", "3T"], + nastyplot: ["5S9"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["7L7", "6L7", "5L9", "4L9", "4S8", "3L5"], + poisonjab: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychic: ["7M", "7L31", "6M", "6L31", "5M", "5L41", "4M", "4L41", "3M", "3L25", "3S0", "3S1", "3S2"], + psychoboost: ["7L67", "6L67", "6S10", "5L89", "5S9", "4L89", "4S4", "4S5", "4S6", "4S7", "4S8", "3L45", "3S3"], + psychoshift: ["7L43", "6L43", "5L57", "4L57"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["7M", "6M", "5M"], + pursuit: ["7L25", "6L25", "5L33", "4L33", "3L20", "3S0", "3S2"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + recover: ["7L61", "6L61", "6S10", "5L81", "5S9", "4L81", "3L40", "3S3"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7L37", "6T", "6L37", "5T", "5L49", "4M", "4L49", "3M", "3L30", "3S1"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + spikes: ["7L25", "6L25", "5L33", "4L33", "3L20", "3S1"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + superpower: ["7L37", "6T", "6L37", "5L49", "4T", "4L49", "4S7", "3S0"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["7L37", "6L37", "5L49", "4T", "4L49", "4S5", "3T", "3L30", "3S2"], + taunt: ["7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3M", "3L15", "3S0"], + telekinesis: ["7T", "5M"], + teleport: ["7L13", "6L13", "5L17", "4L17", "3L10"], + throatchop: ["7T"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "6T", "5T", "4T"], + trickroom: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["7T", "6T", "5T"], + wrap: ["7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], + zapcannon: ["7L61", "6L61", "5L81", "4L81", "4S4", "3L40"], + zenheadbutt: ["7T", "7L49", "6T", "6L49", "5T", "5L65", "4T", "4L65"], + }, + eventData: [ + {generation: 3, level: 30, shiny: 1, moves: ["taunt", "pursuit", "psychic", "superpower"]}, + {generation: 3, level: 30, shiny: 1, moves: ["knockoff", "spikes", "psychic", "snatch"]}, + {generation: 3, level: 30, shiny: 1, moves: ["knockoff", "pursuit", "psychic", "swift"]}, + {generation: 3, level: 70, moves: ["cosmicpower", "recover", "psychoboost", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "zapcannon", "irondefense", "extremespeed"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["psychoboost", "swift", "doubleteam", "extremespeed"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "detect", "counter", "mirrorcoat"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "meteormash", "superpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "leer", "wrap", "nightshade"], pokeball: "pokeball"}, + {generation: 5, level: 100, moves: ["nastyplot", "darkpulse", "recover", "psychoboost"], pokeball: "duskball"}, + {generation: 6, level: 80, moves: ["cosmicpower", "recover", "psychoboost", "hyperbeam"]}, + ], + eventOnly: true, + }, + deoxysattack: { + eventOnly: true, + }, + deoxysdefense: { + eventOnly: true, + }, + deoxysspeed: { + eventOnly: true, + }, + turtwig: { + learnset: { + absorb: ["9L9", "7L9", "6L9", "5L9", "5S0", "5S1", "4L9"], + amnesia: ["9M", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + bite: ["9L21", "7L21", "6L21", "5L21", "4L21"], + bodyslam: ["9M", "7E", "6E", "5E", "4E"], + bulldoze: ["9M"], + bulletseed: ["9M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L37", "7L37", "6L37", "5L37", "4L37"], + curse: ["9L17", "7L17", "6L17", "5L17", "4L17"], + cut: ["6M", "5M", "4M"], + doubleedge: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "9L41", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4M", "4L41"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M", "7E", "6E"], + growth: ["9E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + heavyslam: ["9M", "7E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + ironhead: ["9M"], + irontail: ["7T", "6T", "5T", "4M"], + leafstorm: ["9M", "9L45", "7L45", "6L45", "5L45", "4L45"], + leechseed: ["9L29", "7L29", "6L29", "5L29", "4L29"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M"], + megadrain: ["9L25", "7L25", "6L25", "5L25", "4L25"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L13", "7L13", "6L13", "5L13", "4L13"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandtomb: ["9M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + shellsmash: ["9E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + spitup: ["9E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stockpile: ["9E", "7E", "6E", "5E", "5S1", "4E"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + superpower: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9E", "7E", "6E", "5E", "4E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L33", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + tackle: ["9L1", "9S2", "7L1", "6L1", "5L1", "5S0", "5S1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E", "7E", "6E", "5E", "4E"], + tickle: ["9E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + wideguard: ["9E", "7E", "6E", "5E"], + withdraw: ["9L5", "7L5", "6L5", "5L5", "5S0", "5S1", "4L5"], + workup: ["7M"], + worryseed: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "withdraw", "absorb"]}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "withdraw", "absorb", "stockpile"]}, + {generation: 9, level: 1, moves: ["tackle"], pokeball: "pokeball"}, + ], + }, + grotle: { + learnset: { + absorb: ["9L1", "7L1", "6L9", "5L9", "4L9"], + amnesia: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + bite: ["9L22", "7L22", "6L22", "5L22", "4L22"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L42", "7L42", "6L42", "5L42", "4L42"], + curse: ["9L17", "7L17", "6L17", "5L17", "4L17"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "9L47", "7T", "7L47", "6T", "6L47", "5T", "5L47", "4M", "4L47"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + headbutt: ["4T"], + heavyslam: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + ironhead: ["9M"], + irontail: ["7T", "6T", "5T", "4M"], + leafstorm: ["9M", "9L52", "7L52", "6L52", "5L52", "4L52"], + leechseed: ["9L32", "7L32", "6L32", "5L32", "4L32"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M"], + megadrain: ["9L27", "7L27", "6L27", "5L27", "4L27"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L13", "7L13", "6L13", "5L13", "4L13"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + withdraw: ["9L1", "7L1", "6L1", "5L1", "4L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + }, + torterra: { + learnset: { + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1"], + amnesia: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + bite: ["9L22", "7L22", "6L22", "5L22", "4L22"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L45", "7L45", "6L45", "5L45", "4L45"], + curse: ["9L17", "7L17", "6L17", "5L17", "4L17"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L0", "7M", "7L1", "6M", "6L32", "5M", "5L32", "5S0", "4M", "4L32"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frenzyplant: ["9M", "7T", "6T", "5T", "4T"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "9L51", "7T", "7L51", "6T", "6L51", "5T", "5L51", "4M", "4L51"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M", "7T", "6T", "5T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + headbutt: ["4T"], + headlongrush: ["9L63"], + heavyslam: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M"], + irondefense: ["9M"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + leafstorm: ["9M", "9L57", "7L57", "6L57", "5L57", "4L57"], + leechseed: ["9L33", "7L33", "6L33", "5L33", "4L33"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M"], + megadrain: ["9L27", "7L27", "6L27", "5L27", "4L27"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + outrage: ["9M", "7T", "6T", "5T", "5S0", "4T"], + protect: ["9M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L1", "7L1", "6L1", "5L1", "4L1"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "5S0", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L39", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + withdraw: ["9L1", "7L1", "6L1", "5L1", "4L1"], + woodhammer: ["9L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["woodhammer", "earthquake", "outrage", "stoneedge"], pokeball: "cherishball"}, + ], + }, + chimchar: { + learnset: { + acrobatics: ["9M", "9L39", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["9M"], + assist: ["7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + blazekick: ["7E", "6E", "5E", "4E"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + burningjealousy: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "6E", "5E", "4E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "6M", "5M", "4M"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + ember: ["9L7", "7L7", "6L7", "5L7", "5S1", "5S3", "4L7"], + encore: ["9M", "9E", "7E", "6E", "5E", "4E"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "9L31", "7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31"], + fakeout: ["9E", "7E", "6E", "5E", "5S3", "4E"], + faketears: ["9M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + firespin: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L47", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L41", "4S0", "4S2"], + flamewheel: ["9L17", "7L17", "6L17", "5L17", "4L17"], + flareblitz: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9E", "7E", "6E", "5E", "4E"], + focuspunch: ["9M", "7T", "7E", "6T", "6E", "5E", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyswipes: ["9L15", "7L15", "6L15", "5L15", "4L15"], + grassknot: ["9M", "7M", "6M", "5M", "4M", "4S0", "4S2"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + heatwave: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + helpinghand: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["9M"], + leer: ["9L1", "7L1", "6L1", "5L1", "5S1", "5S3", "4L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "9L23", "7L23", "6L23", "5L23", "4L23"], + naturalgift: ["4M"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quickguard: ["7E", "6E", "5E"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "9S4", "7L1", "6L1", "5L1", "5S1", "4L1"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slackoff: ["9L41", "7L41", "6L41", "5L41", "4L39"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + submission: ["7E", "6E", "5E"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + switcheroo: ["9E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L9", "7M", "7L9", "6M", "6L9", "5M", "5L9", "5S1", "5S3", "4M", "4L9"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], + torment: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 4, level: 40, gender: "M", nature: "Mild", moves: ["flamethrower", "thunderpunch", "grassknot", "helpinghand"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["scratch", "leer", "ember", "taunt"]}, + {generation: 4, level: 40, gender: "M", nature: "Hardy", moves: ["flamethrower", "thunderpunch", "grassknot", "helpinghand"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "ember", "taunt", "fakeout"]}, + {generation: 9, level: 1, moves: ["scratch"], pokeball: "pokeball"}, + ], + }, + monferno: { + learnset: { + acrobatics: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L46"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + burningjealousy: ["9M"], + captivate: ["4M"], + closecombat: ["9M", "9L36", "7L36", "6L36", "5L36", "4L36"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M"], + dualchop: ["7T", "6T", "5T"], + ember: ["9L1", "7L1", "6L1", "5L1", "4L1"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], + feint: ["9L26", "7L26", "6L26", "5L26", "4L26"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "6T", "5T", "4T"], + firespin: ["9M", "9L39", "7L39", "6L39", "5L39", "4L39"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flamewheel: ["9L19", "7L19", "6L19", "5L19", "4L19"], + flareblitz: ["9M", "9L56", "7L56", "6L56", "5L56", "4L49"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyswipes: ["9L16", "7L16", "6L16", "5L16", "4L16"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["9M"], + lashout: ["9M"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + machpunch: ["9L0", "7L1", "6L14", "5L14", "4L14"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slackoff: ["9L49", "7L49", "6L49", "5L49", "4L46"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L9", "7M", "7L9", "6M", "6L9", "5M", "5L9", "4M", "4L9"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + torment: ["9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["9M"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + zenheadbutt: ["9M"], + }, + }, + infernape: { + learnset: { + acrobatics: ["9M", "9L52", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + aurasphere: ["9M"], + blastburn: ["9M", "7T", "6T", "5T", "4T"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "7M", "6M", "5M"], + burningjealousy: ["9M"], + calmmind: ["9M", "9L58", "7M", "7L58", "6M", "6L58", "5M", "5L58", "4M", "4L53"], + captivate: ["4M"], + closecombat: ["9M", "9L0", "7L1", "6L36", "6S1", "5L36", "5S0", "4L41"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + ember: ["9L1", "7L1", "6L1", "5L1", "4L1"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], + feint: ["9L26", "7L26", "6L26", "5L26", "4L29"], + fireblast: ["9M", "7M", "6M", "6S1", "5M", "5S0", "4M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "6T", "6S1", "5T", "4T"], + firespin: ["9M", "9L42", "7L42", "6L42", "5L42", "4L45"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flamewheel: ["9L19", "7L19", "6L19", "5L19", "4L21"], + flareblitz: ["9M", "9L47", "7L1", "6L1", "5L68", "4L57"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "6S1", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyswipes: ["9L16", "7L16", "6L16", "5L16", "4L17"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "5S0", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["9M"], + laserfocus: ["7T"], + lashout: ["9M"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + machpunch: ["9L1", "7L1", "6L14", "5L14", "4L14"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + punishment: ["7L29", "6L29", "5L29", "4L33"], + ragingfury: ["9L65"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slackoff: ["9L1"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + smackdown: ["9M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + torment: ["9L29", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["9M"], + uturn: ["9M", "7M", "6M", "5M", "5S0", "4M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["fireblast", "closecombat", "uturn", "grassknot"], pokeball: "cherishball"}, + {generation: 6, level: 88, isHidden: true, moves: ["fireblast", "closecombat", "firepunch", "focuspunch"], pokeball: "cherishball"}, + ], + }, + piplup: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M", "7E", "6E", "5E", "4E"], + aquaring: ["9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + bide: ["7L22", "7E", "6L22", "6E", "5L22", "5E", "4L18"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["9L29", "7L29", "6L29", "5L29", "4M", "4L29"], + bubble: ["7L8", "6L8", "5L8", "5S0", "5S3", "4L8"], + bubblebeam: ["9L18", "7L18", "7S5", "6L18", "5L18", "4L18"], + captivate: ["4M"], + charm: ["9M", "9L11"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + disarmingvoice: ["9M"], + dive: ["6M", "5M", "4T"], + doublehit: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + drillpeck: ["9L39", "7L39", "7S5", "6L39", "5L39", "4L39"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["9E", "7E", "6E", "5E", "5S1", "5S2", "5S3", "4E"], + flail: ["7E", "6E", "5E", "4E"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["9L25", "7L25", "6L25", "5L25", "4L25"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L4", "7L4", "6L4", "6S4", "5L4", "5S0", "5S3", "4L4"], + hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M", "9L43", "7L43", "7E", "7S5", "6L43", "6E", "5L43", "5E", "5S1", "4L43", "4E"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icespinner: ["9M"], + icywind: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + liquidation: ["9M"], + mist: ["9L36", "7L36", "6L36", "5L36", "4L36"], + mudslap: ["7E", "6E", "5E", "4T", "4E"], + mudsport: ["7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + peck: ["9L15", "7L15", "6L15", "5L15", "5S1", "5S2", "4L15"], + pluck: ["5M", "4M"], + pound: ["9L1", "9S6", "7L1", "6L1", "6S4", "5L1", "5S0", "5S3", "4L1"], + powertrip: ["9E", "7E"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "6S4", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + roost: ["9E"], + round: ["7M", "6M", "5M", "5S2"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["5S2"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + snowscape: ["9M"], + stealthrock: ["7T", "6T", "5T", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9E", "7E", "6E", "5E", "4E"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L22", "7M", "6M", "5M", "4M"], + swift: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L8"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M"], + watersport: ["7L11", "6L11", "5L11", "5S1", "4L11"], + weatherball: ["9M"], + whirlpool: ["9L32", "7L32", "7S5", "6L32", "5L32", "4M", "4L32"], + workup: ["7M"], + yawn: ["9E", "7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "growl", "bubble"]}, + {generation: 5, level: 15, shiny: 1, moves: ["hydropump", "featherdance", "watersport", "peck"], pokeball: "cherishball"}, + {generation: 5, level: 15, gender: "M", moves: ["sing", "round", "featherdance", "peck"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "growl", "bubble", "featherdance"]}, + {generation: 6, level: 7, moves: ["pound", "growl", "return"], pokeball: "cherishball"}, + {generation: 7, level: 30, gender: "M", nature: "Hardy", moves: ["hydropump", "bubblebeam", "whirlpool", "drillpeck"], pokeball: "pokeball"}, + {generation: 9, level: 1, moves: ["pound"], pokeball: "pokeball"}, + ], + }, + prinplup: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + bide: ["7L24", "6L24", "5L24", "4L19"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["9L33", "7L33", "6L33", "5L33", "4M", "4L33"], + bubble: ["7L1", "6L8", "5L8", "4L8"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19", "4L19"], + captivate: ["4M"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + disarmingvoice: ["9M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + drillpeck: ["9L46", "7L46", "6L46", "5L46", "4L46"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["9L28", "7L28", "6L28", "5L28", "4L28"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "9L50", "7L50", "6L50", "5L51", "4L51"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + liquidation: ["9M"], + metalclaw: ["9M", "9L0", "7L1", "6L16", "5L16", "4L16"], + mist: ["9L42", "7L42", "6L42", "5L42", "4L42"], + mudslap: ["4T"], + naturalgift: ["4M"], + peck: ["9L15", "7L15", "6L15", "5L15", "4L15"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + snowscape: ["9M"], + stealthrock: ["7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L24", "7M", "6M", "5M", "4M"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M"], + watersport: ["7L11", "6L11", "5L11", "4L11"], + weatherball: ["9M"], + whirlpool: ["9L37", "7L37", "6L37", "5L37", "4M", "4L37"], + workup: ["7M"], + }, + }, + empoleon: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aquajet: ["9L0", "7L1", "6L36", "5L36", "5S0", "4L36"], + attract: ["7M", "6M", "5M", "4M"], + avalanche: ["9M", "4M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["9L33", "7L33", "6L33", "5L33", "4M", "4L33"], + bubble: ["7L1", "6L1", "5L1", "4L1"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19", "4L19"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + disarmingvoice: ["9M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + drillpeck: ["9L52", "7L52", "6L52", "5L52", "4L52"], + dualwingbeat: ["9M"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["9L28", "7L28", "6L28", "5L28", "4L28"], + furycutter: ["4T"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "5S0", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hydrocannon: ["9M", "7T", "6T", "5T", "4T"], + hydropump: ["9M", "9L59", "7L59", "6L59", "5L59", "5S0", "4L59"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "5S0", "4M"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["9M"], + liquidation: ["9M", "7T"], + metalclaw: ["9M", "9L1", "7L1", "6L16", "5L16", "4L16"], + mist: ["9L46", "7L46", "6L46", "5L46", "4L46"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + peck: ["9L15", "7L15", "6L15", "5L15", "4L15"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + snowscape: ["9M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + steelwing: ["7M", "6M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["9L24", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L19"], + swift: ["9M"], + swordsdance: ["9M", "9L11", "7M", "7L11", "6M", "6L11", "5M", "5L11", "4M", "4L11"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["9M"], + vacuumwave: ["9M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "7T", "6T", "4M"], + wavecrash: ["9L66"], + weatherball: ["9M"], + whirlpool: ["9L39", "7L39", "6L39", "5L39", "4M", "4L39"], + workup: ["7M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["hydropump", "icebeam", "aquajet", "grassknot"], pokeball: "cherishball"}, + ], + }, + starly: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L25", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + agility: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + astonish: ["9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M", "9L37", "7L37", "6L37", "5L37", "4L37"], + captivate: ["4M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + detect: ["7E", "6E", "5E"], + doubleedge: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + dualwingbeat: ["9M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9L17", "7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["9E", "7E", "6E", "5E", "4E"], + finalgambit: ["9L41", "7L41", "6L41", "5L41"], + fly: ["9M", "7M", "6M", "5M", "4M"], + foresight: ["7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["9E", "7E", "6E", "5E", "4E"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + mirrormove: ["7E", "6E"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + pursuit: ["7E", "6E", "5E", "4E"], + quickattack: ["9L5", "7L5", "6L5", "5L5", "4L5"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["7E", "6E", "5E"], + roost: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["9E", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "7E", "6M", "6E", "5E", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L29", "7L29", "6L29", "5L29", "4L29"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["9M", "9E", "7T", "7E", "6T", "6E", "5E"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + whirlwind: ["9L21", "7L21", "6L21", "5L21", "4L21"], + wingattack: ["9L9", "7L9", "6L9", "5L9", "4L9"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 4, level: 1, gender: "M", nature: "Mild", moves: ["tackle", "growl"], pokeball: "pokeball"}, + ], + }, + staravia: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L28", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + agility: ["9M", "9L38", "7L38", "6L38", "5L38", "4L38"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M", "9L43", "7L43", "6L43", "5L43", "4L43"], + captivate: ["4M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + dualwingbeat: ["9M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["5D"], + finalgambit: ["9L48", "7L48", "6L48", "5L48"], + fly: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "6M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["9M", "7T", "6T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + whirlwind: ["9L23", "7L23", "6L23", "5L23", "4L23"], + wingattack: ["9L9", "7L9", "6L9", "5L9", "5D", "4L9"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 4, level: 4}, + ], + }, + staraptor: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L28", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + agility: ["9M", "9L41", "7L41", "6L41", "5L41", "4L41"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M", "9L49", "7L49", "6L49", "5L49", "4L49"], + captivate: ["4M"], + closecombat: ["9M", "9L0", "7L1", "6L34", "5L34", "4L34"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + dualwingbeat: ["9M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + finalgambit: ["9L57", "7L57", "6L57", "5L57"], + fly: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + skyattack: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "6M", "4M"], + strugglebug: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["9M", "7T", "6T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + whirlwind: ["9L23", "7L23", "6L23", "5L23", "4L23"], + wingattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + workup: ["7M", "5M"], + }, + }, + bidoof: { + learnset: { + amnesia: ["7L41", "6L29", "5L29", "4L29"], + aquatail: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["7L25"], + curse: ["7L49", "6L45", "5L45", "4L45"], + cut: ["6M", "5M", "4M"], + defensecurl: ["7L5", "7E", "6L9", "6E", "5L9", "5E", "4L9", "4E"], + dig: ["6M", "5M", "4M"], + doubleedge: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7E", "6E", "5E", "4M"], + facade: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["7E", "6E", "5E", "4E"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L5", "5L5", "4L5"], + headbutt: ["7L13", "6L17", "5L17", "4T", "4L17"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperfang: ["7L17", "6L21", "5L21", "4L21"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + lastresort: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + mudsport: ["7E"], + naturalgift: ["4M"], + odorsleuth: ["7E", "6E", "5E", "4E"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + quickattack: ["7E", "6E", "5E", "4E"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["7E", "6E", "5E"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["7L9", "7E", "6L13", "6E", "5L13", "5E", "4T", "4L13", "4E"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "5D", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + skullbash: ["7E", "6E", "5E"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "7L33", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + superpower: ["7T", "7L45", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "7L37"], + tackle: ["7L1", "6L1", "5L1", "5D", "4L1", "4S0"], + takedown: ["7L29", "6L33", "5L33", "4L33"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderwave: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + watersport: ["7E", "6E", "5E", "4E"], + workup: ["7M", "5M"], + yawn: ["7L21", "6L25", "5L25", "4L25"], + }, + eventData: [ + {generation: 4, level: 1, gender: "M", nature: "Lonely", abilities: ["simple"], moves: ["tackle"], pokeball: "pokeball"}, + ], + }, + bibarel: { + learnset: { + amnesia: ["7L48", "6L33", "5L33", "4L33"], + aquajet: ["7L1"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["7L28"], + curse: ["7L58", "6L53", "5L53", "4L53"], + cut: ["6M", "5M", "4M"], + defensecurl: ["7L5", "6L9", "5L9", "4L9"], + dig: ["6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1"], + headbutt: ["7L13", "6L18", "5L18", "4T", "4L18"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + hyperfang: ["7L18", "6L23", "5L23", "4L23"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + lastresort: ["7T", "6T", "5T", "4T"], + liquidation: ["7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["7L9", "6L13", "5L13", "4T", "4L13"], + rototiller: ["7L1", "6L1"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "7L38", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + superpower: ["7T", "7L53", "6T", "6L48", "5T", "5L48", "4T", "4L48"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "7L43"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + takedown: ["7L33", "6L38", "5L38", "4L38"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderwave: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["7M", "6M", "5M", "4M"], + watergun: ["7L1", "6L15", "5L15", "4L15"], + waterpulse: ["7T", "6T", "4M"], + whirlpool: ["4M"], + workup: ["7M", "5M"], + yawn: ["7L23", "6L28", "5L28", "4L28"], + }, + encounters: [ + {generation: 4, level: 4}, + ], + }, + kricketot: { + learnset: { + bide: ["7L1", "6L1", "5L1", "4L1"], + bugbite: ["9M", "9L16", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16"], + endeavor: ["7T", "6T", "5T", "5D", "4T"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + lunge: ["9M"], + mudslap: ["4T"], + snore: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["9M", "9L6", "7L6", "6M", "6L6", "5L6", "5D"], + tackle: ["9L1"], + terablast: ["9M"], + uproar: ["7T", "6T", "5T", "5D", "4T"], + }, + }, + kricketune: { + learnset: { + absorb: ["9L14", "7L14"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], + bide: ["7L1", "6L1", "5L1", "4L1"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L46", "7L46", "6L46", "5L46", "4L34"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "7M", "6M", "5M", "4M"], + fellstinger: ["9L36", "7L36", "6L36"], + flash: ["6M", "5M", "4M"], + focusenergy: ["9L22", "7L22", "6L22", "5L22", "4L22"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9L0", "7L1", "6L10", "5L10", "4T", "4L10"], + gigadrain: ["9M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leechlife: ["9M", "7M", "6L14", "5L14", "4L14"], + lunge: ["9M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["9L42", "7L42", "6L42", "5L42", "4L42"], + perishsong: ["9L50", "7L50", "6L50", "5L50", "4L38"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + screech: ["9L34", "7L34", "6L34", "5L34", "4L30"], + secretpower: ["6M", "4M"], + silverwind: ["4M"], + sing: ["9L18", "7L18", "6L18", "5L18", "4L18"], + slash: ["9L26", "7L26", "6L26", "5L26", "4L26"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stickyweb: ["9L44", "7L44", "6L44"], + strength: ["6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M", "9L38", "7M", "7L38", "6M", "6L38", "5M", "5L38", "4M", "4L38"], + terablast: ["9M"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + xscissor: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L30", "4M", "4L26"], + }, + }, + shinx: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + babydolleyes: ["9E", "8E", "7L11", "6L11"], + bite: ["9L12", "8L12", "7L17", "6L17", "5L17", "4L13"], + captivate: ["4M"], + charge: ["9M", "9L8", "8L8", "7L9", "6L9", "5L9", "5D", "4L9"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L36", "8M", "8L36", "7L33", "6L33", "5L33", "4L29"], + discharge: ["9L40", "8L40", "7L41", "6L41", "5L41", "4L41"], + doublekick: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M", "7E", "6E"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M", "7E", "6E"], + firefang: ["9M", "8M", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + howl: ["9E", "8E", "7E", "6E", "5E", "4E"], + icefang: ["9M", "8M", "7E", "6E", "5E", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leer: ["9L1", "8L1", "7L5", "6L5", "5L5", "4L5"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "5D", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9E", "8E", "7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + roar: ["9M", "9L20", "8L20", "7M", "7L21", "6M", "6L21", "5M", "5L21", "4M", "4L21"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L37", "6L37", "5L37", "4L37"], + secretpower: ["6M", "4M"], + shockwave: ["9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spark: ["9L16", "8L16", "7L13", "6L13", "5L13", "4L13"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + swagger: ["9L44", "8L44", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + swift: ["9M", "8M", "7E", "6E", "5E", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M", "8M", "7L29", "7E", "6L29", "6E", "5L29", "5E", "4L29", "4E"], + thundershock: ["9L4", "8L4"], + thunderwave: ["9M", "9L32", "8M", "8L32", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + voltswitch: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M"], + wildcharge: ["9M", "9L48", "8M", "8L48", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + }, + }, + luxio: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L12", "8L12", "7L18", "6L18", "5L18", "4L13"], + captivate: ["4M"], + charge: ["9M", "9L1", "8L1", "7L9", "6L9", "5L9", "4L9"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L48", "8M", "8L48", "7L38", "6L38", "5L38", "4L33"], + discharge: ["9L54", "8L54", "7L48", "6L48", "5L48", "4L48"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + firefang: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icefang: ["9M", "8M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + roar: ["9M", "9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L43", "6L43", "5L43", "4L43"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spark: ["9L18", "8L18", "7L13", "6L13", "5L13", "4L13"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + swagger: ["9L60", "8L60", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M", "8M", "7L33", "6L33", "5L33", "4L33"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L42", "8M", "8L42", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + voltswitch: ["9M", "9L31", "8M", "8L31", "7M", "6M", "5M"], + wildcharge: ["9M", "9L68", "8M", "8L68", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + }, + }, + luxray: { + learnset: { + agility: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L12", "8L12", "7L18", "6L18", "5L18", "4L13"], + bodyslam: ["9M"], + captivate: ["4M"], + charge: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L56", "8M", "8L56", "7L42", "6L42", "5L42", "4L35"], + discharge: ["9L64", "8L64", "7L56", "6L56", "5L56", "4L56"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + firefang: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "8M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + roar: ["9M", "9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L40", "8M", "8L40", "7L49", "6L49", "5L49", "4L49"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spark: ["9L18", "8L18", "7L13", "6L13", "5L13", "4L13"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["9L72", "8L72", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M", "8M", "7L35", "6L35", "5L35", "4L35"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L48", "8M", "8L48", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + voltswitch: ["9M", "9L33", "8M", "8L33", "7M", "6M", "5M"], + wildcharge: ["9M", "9L80", "8M", "8L80", "7M", "7L63", "6M", "6L63", "5M", "5L63"], + }, + }, + cranidos: { + learnset: { + ancientpower: ["7L33", "6L33", "5L33", "4T", "4L28"], + assurance: ["7L24", "6L24", "5L24", "4L24"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L28", "6L28", "5L28"], + confide: ["7M", "6M"], + crunch: ["7E", "6E", "5E", "5S0", "4E"], + curse: ["7E", "6E", "5E", "4E"], + dig: ["6M", "5M", "4M"], + doubleedge: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["7T", "6T", "5T", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + firepunch: ["7T", "6T", "5T", "5D", "4T"], + flamethrower: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focusenergy: ["7L6", "6L6", "5L6", "4L6"], + frustration: ["7M", "6M", "5M", "4M"], + hammerarm: ["7E", "6E", "5E", "4E"], + headbutt: ["7L1", "6L1", "5L1", "5D", "5S0", "4T", "4L1"], + headsmash: ["7L46", "6L46", "5L46", "4L43"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + ironhead: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + leer: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + pursuit: ["7L10", "6L10", "5L10", "5S0", "4L10"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + scaryface: ["7L19", "6L19", "5L19", "4L19"], + screech: ["7L42", "6L42", "5L42", "4L37"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + slam: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stomp: ["7E", "6E", "5E", "4E"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["7M", "6M", "5M", "4M"], + takedown: ["7L15", "6L15", "5L15", "5S0", "4L15"], + thief: ["7M", "6M", "5M", "4M"], + thrash: ["7E", "6E", "5E", "4E"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderpunch: ["7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + whirlwind: ["7E", "6E", "5E", "4E"], + zenheadbutt: ["7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L33"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["pursuit", "takedown", "crunch", "headbutt"], pokeball: "cherishball"}, + ], + }, + rampardos: { + learnset: { + ancientpower: ["7L36", "6L36", "5L36", "4T", "4L28"], + assurance: ["7L24", "6L24", "5L24", "4L24"], + attract: ["7M", "6M", "5M", "4M"], + avalanche: ["4M"], + blizzard: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L28", "6L28", "5L28"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endeavor: ["7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + firepunch: ["7T", "6T", "5T", "4T"], + flamethrower: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focusenergy: ["7L1", "6L6", "5L6", "4L6"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["7L1", "6L1", "5L1", "4T", "4L1"], + headsmash: ["7L58", "6L58", "5L58", "4L52"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + ironhead: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + leer: ["7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["7T", "6T", "5T", "4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + pursuit: ["7L1", "6L10", "5L10", "4L10"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + scaryface: ["7L19", "6L19", "5L19", "4L19"], + screech: ["7L51", "6L51", "5L51", "4L43"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["7M", "6M", "5M", "4M"], + takedown: ["7L15", "6L15", "5L15", "4L15"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderpunch: ["7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + whirlpool: ["4M"], + zenheadbutt: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], + }, + }, + shieldon: { + learnset: { + ancientpower: ["7L28", "6L28", "5L28", "4T", "4L28"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + bodyslam: ["7E", "6E", "5E", "5S0", "4E"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "6E", "5E", "5D", "4E"], + curse: ["7E", "6E", "5E", "4E"], + dig: ["6M", "5M", "4M"], + doubleedge: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endure: ["7L33", "6L33", "5L33", "4M", "4L33"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + fissure: ["7E", "6E", "5E", "5D", "4E"], + flamethrower: ["7M", "6M", "5M", "4M"], + flashcannon: ["7M", "6M", "5M", "4M"], + focusenergy: ["7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M"], + guardsplit: ["7E", "6E"], + headbutt: ["7E", "6E", "5E", "4T", "4E"], + heavyslam: ["7L46", "6L46", "5L46"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], + ironhead: ["7T", "7L42", "6T", "6L42", "5T", "5L42", "4T", "4L43"], + irontail: ["7T", "6T", "5T", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["7L37", "6L37", "5L37", "4L37"], + metalsound: ["7L10", "6L10", "5L10", "5S0", "4L10"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "5D", "5S0", "4M", "4L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockblast: ["7E", "6E", "5E", "4E"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + scaryface: ["7E", "6E", "5E", "4E"], + screech: ["7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + takedown: ["7L15", "6L15", "5L15", "5S0", "4L15"], + taunt: ["7M", "7L6", "6M", "6L6", "5M", "5L6", "4M", "4L6"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + wideguard: ["7E", "6E", "5E"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["metalsound", "takedown", "bodyslam", "protect"], pokeball: "cherishball"}, + ], + }, + bastiodon: { + learnset: { + ancientpower: ["7L28", "6L28", "5L28", "4T", "4L28"], + attract: ["7M", "6M", "5M", "4M"], + avalanche: ["4M"], + blizzard: ["7M", "6M", "5M", "4M"], + block: ["7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endure: ["7L36", "6L36", "5L36", "4M", "4L36"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + flamethrower: ["7M", "6M", "5M", "4M"], + flashcannon: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heavyslam: ["7L58", "6L58", "5L58"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], + ironhead: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4T", "4L52"], + irontail: ["7T", "6T", "5T", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["7L43", "6L43", "5L43", "4L43"], + metalsound: ["7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["7T", "6T", "5T", "4T"], + protect: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + takedown: ["7L15", "6L15", "5L15", "4L15"], + taunt: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + }, + }, + burmy: { + learnset: { + bugbite: ["7T", "7L15", "6T", "6L15", "5T", "5L15", "5D", "4T", "4L15"], + electroweb: ["7T", "6T", "5T"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5L20", "4L20"], + protect: ["7M", "7L1", "6M", "6L1", "5L1", "5D", "4L1"], + snore: ["7T", "6T", "5T", "5D", "4T"], + stringshot: ["4T"], + tackle: ["7L10", "6L10", "5L10", "4L10"], + }, + }, + wormadam: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50"], + bulletseed: ["4M"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flail: ["7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "6T", "5T", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growth: ["7L29", "6L29", "5L29", "4L29"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + leafstorm: ["7L47", "6L47", "5L47", "4L47"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1"], + raindance: ["7M", "6M", "5M", "4M"], + razorleaf: ["7L26", "6L26", "5L26", "4L26"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L1", "4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + venoshock: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + wormadamsandy: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fissure: ["7L47", "6L47", "5L47", "4L47"], + flail: ["7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + harden: ["7L29", "6L29", "5L29", "4L29"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["7L26", "6L26", "5L26", "4L26"], + rocktomb: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandstorm: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L1", "4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + venoshock: ["7M", "6M", "5M"], + }, + }, + wormadamtrash: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + flail: ["7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + flashcannon: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gunkshot: ["7T", "6T", "5T", "4T"], + gyroball: ["7M", "6M", "5M", "4M"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + irondefense: ["7T", "6T", "5T", "4T"], + ironhead: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4T", "4L47"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["7L1"], + metalsound: ["7L29", "6L29", "5L29", "4L29"], + mirrorshot: ["7L26", "6L26", "5L26", "4L26"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L1", "4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + venoshock: ["7M", "6M", "5M"], + }, + }, + mothim: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M"], + aircutter: ["4T"], + airslash: ["7L41", "6L41", "5L41", "4L41"], + attract: ["7M", "6M", "5M", "4M"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50", "6L47", "5L47", "4L47"], + camouflage: ["7L35", "6L35", "5L35", "4L35"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + defog: ["7T", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "6T", "5T", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["7L26", "6L26", "5L26", "4L26"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + lunge: ["7L47"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poisonpowder: ["7L29", "6L29", "5L29", "4L29"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1", "6L50", "5L50"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L38", "6L38", "5L38", "4M", "4L38"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + venoshock: ["7M", "6M", "5M"], + }, + }, + combee: { + learnset: { + aircutter: ["5D", "4T"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + bugbuzz: ["9M", "8M", "7L29", "6L29", "5L29"], + dualwingbeat: ["8T"], + endeavor: ["7T", "6T", "5T", "4T"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + lunge: ["9M"], + mudslap: ["4T"], + ominouswind: ["4T"], + sleeptalk: ["9M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["9M", "9L1", "8L1"], + sweetscent: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + swift: ["4T"], + tailwind: ["7T", "6T", "5T", "5D", "4T"], + terablast: ["9M"], + }, + }, + vespiquen: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + aircutter: ["4T"], + airslash: ["9M", "9L28", "8M", "8L28", "7L37", "6L37", "5L37"], + aromatherapy: ["8L24"], + aromaticmist: ["9L8", "8L8"], + assurance: ["8M"], + attackorder: ["9L40", "8L40", "7L45", "6L45", "5L37", "4L37"], + attract: ["8M", "7M", "6M", "5M", "4M"], + beatup: ["8M"], + bugbite: ["9M", "9L1", "8L1", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "8M"], + captivate: ["7L41", "6L41", "5L33", "4M", "4L33"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L7", "4L7"], + crosspoison: ["8M"], + cut: ["6M", "5M", "4M"], + defendorder: ["9L40", "8L40", "7L17", "6L17", "5L13", "4L13"], + defog: ["7T", "4M"], + destinybond: ["9L44", "8L44", "7L1", "6L1", "5L43", "4L43"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M", "8T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fellstinger: ["9L12", "8L12", "7L1", "6L1"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9L4", "8L4", "7L5", "6L5", "5L9", "4T", "4L9"], + furyswipes: ["9L16", "8L16", "7L13", "6L13", "5L19", "4L19"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + healorder: ["7L29", "6L29", "5L25", "4L25"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + lunge: ["9M"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pinmissile: ["8M"], + poisonsting: ["9L1", "8L1", "7L1", "6L1", "5L3", "4L3"], + pollenpuff: ["9M"], + pounce: ["9M"], + powergem: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "5L21", "4L21"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L9", "6L9", "5L15", "4L15"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + roost: ["9L24", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + slash: ["9L0", "8L0", "7L1", "6L21", "5L31", "4L31"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spikes: ["9M"], + spite: ["9M"], + stringshot: ["4T"], + strugglebug: ["9M", "9L1", "8L1", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["9L20", "8L20", "7M", "7L49", "6M", "6L49", "5M", "5L39", "4M", "4L39"], + sweetscent: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + swift: ["9M", "8M", "4T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["9M", "9L36", "8L36", "7M", "7L33", "6M", "6L33", "5M", "5L27", "4M", "4L27"], + toxicspikes: ["9M", "8M"], + uproar: ["8M"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + }, + pachirisu: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + babydolleyes: ["9E", "7E"], + bestow: ["7E", "6E", "5E"], + bide: ["7L1", "6L1", "5L1", "4L1"], + bite: ["9E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + charge: ["9M", "9E", "7E", "6E", "5E"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "4L9"], + confide: ["7M", "6M"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E"], + cut: ["6M", "5M", "4M"], + defensecurl: ["9E", "7E", "6E", "5E", "4E"], + dig: ["9M", "6M", "5M", "4M"], + discharge: ["9L41", "7L41", "6L41", "5L41", "4L29"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L25"], + electroweb: ["7T", "6T"], + encore: ["9M"], + endure: ["9M", "9L17", "7L17", "6L17", "5L17", "4M", "4L17"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "9E", "7E", "6E", "5E", "4E"], + flail: ["9E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + flatter: ["9E", "7E", "6E", "5E", "4E"], + fling: ["9M", "7M", "6M", "5M", "4M"], + followme: ["9E", "7E", "6E", "6S0", "5E"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M"], + hyperfang: ["7L49", "6L49", "5L49"], + iondeluge: ["7E", "6E"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + laserfocus: ["7T"], + lastresort: ["9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L37"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + nuzzle: ["9L19", "7L19", "6L19", "6S0"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "6S0", "5M", "4M"], + quickattack: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["9E", "7E", "6E", "5E", "4T", "4E"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + shockwave: ["7T", "6T", "5D", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + spark: ["9L13", "7L13", "6L13", "5L13", "4L13"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + superfang: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "6S0", "5T", "5L37", "4T", "4L33"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["9L29", "7L29", "6L29", "5L29", "4L25"], + swift: ["9M", "9L21", "7L21", "6L21", "5L21", "4T", "4L21"], + tailwhip: ["9E", "7E", "6E", "5E"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "9L49", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + thundershock: ["9L1"], + thunderwave: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["9M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Impish", ivs: {hp: 31, atk: 31, def: 31, spa: 14, spd: 31, spe: 31}, isHidden: true, moves: ["nuzzle", "superfang", "followme", "protect"], pokeball: "cherishball"}, + ], + }, + buizel: { + learnset: { + agility: ["9M", "9L41", "7L41", "6L41", "5L28", "4L28"], + aquajet: ["9L24", "7L24", "6L24", "5L21", "4L21"], + aquaring: ["9E", "7E", "6E", "5E"], + aquatail: ["9L38", "7T", "7L38", "7E", "6T", "6L38", "6E", "5T", "5L55", "5E"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M", "9E", "7E", "6E", "5E", "4E"], + bite: ["9L18"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M"], + dig: ["9M", "6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doublehit: ["9L27", "7L27", "6L27", "5L27"], + doubleslap: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M"], + flipturn: ["9M"], + focuspunch: ["9M", "7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9E", "7E", "6E", "5E", "4E"], + furyswipes: ["9E", "7E", "6E", "5E", "4E"], + growl: ["9L4", "7L4", "6L4", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["9E", "7E", "6E", "5E", "4T", "4E"], + helpinghand: ["9M", "9E", "7T", "7E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M", "9L45", "7L45", "6L45", "5L45"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icefang: ["9M"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + liquidation: ["9M", "9L35"], + lowkick: ["9M"], + lowsweep: ["9M"], + mefirst: ["7E", "6E", "5E"], + mudslap: ["9M", "9E", "7E", "6E", "5E", "4T", "4E"], + naturalgift: ["4M"], + odorsleuth: ["7E", "6E", "5E", "4E"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + pursuit: ["7L18", "6L18", "5L10", "4L10"], + quickattack: ["9L11", "7L11", "6L11", "5L3", "4L3"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + razorwind: ["7L35", "6L35", "5L45", "4L45"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + slash: ["9E", "7E", "6E", "5E", "5D", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L7", "7E", "6E"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L21", "7L21", "6L21", "5L15", "4T", "4L15"], + switcheroo: ["7E", "6E", "5E"], + tackle: ["9L1"], + tailslap: ["7E", "6E", "5E"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L15", "7L15", "6L15", "5L6", "5D", "4L6"], + waterpulse: ["9M", "7T", "6T", "5D", "4M"], + watersport: ["7L7", "6L7", "5L1", "5D", "4L1"], + wavecrash: ["9L49"], + whirlpool: ["9L31", "7L31", "6L31", "5L36", "4M", "4L36"], + }, + }, + floatzel: { + learnset: { + agility: ["9M", "9L51", "7L51", "6L51", "5L29", "4L29"], + aquajet: ["9L24", "7L24", "6L24", "5L21", "4L21"], + aquatail: ["9L46", "7T", "7L46", "6T", "6L46", "5T", "5L62", "4T"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], + bite: ["9L18"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L1", "7L1", "6L1", "5L26", "4L26"], + dig: ["9M", "6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doublehit: ["9L29", "7L29", "6L29", "5L29"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M"], + flipturn: ["9M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M", "7T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M", "9L57", "7L57", "6L57", "5L57"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + liquidation: ["9M", "9L41", "7T"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + pursuit: ["7L18", "6L18", "5L10", "4L10"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + razorwind: ["7L41", "6L41", "5L50", "4L50"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snarl: ["9M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L1"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L21", "7L21", "6L21", "5L15", "4T", "4L15"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L15", "7L15", "6L15", "5L6", "4L6"], + waterpulse: ["9M", "7T", "6T", "4M"], + watersport: ["7L1", "6L1", "5L1", "4L1"], + wavecrash: ["9L62"], + whirlpool: ["9L35", "7L35", "6L35", "5L39", "4M", "4L39"], + }, + encounters: [ + {generation: 4, level: 22}, + {generation: 5, level: 10}, + ], + }, + cherubi: { + learnset: { + aromatherapy: ["8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bulletseed: ["8M", "5D", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["8M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flowershield: ["8E", "7E", "6E"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "7T", "6T", "5T", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E", "4E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E"], + growth: ["8L10", "7L7", "6L7", "5L7", "4L7"], + healingwish: ["8E", "7E", "6E", "5E"], + healpulse: ["8E", "7E", "6E", "5E", "5D"], + helpinghand: ["8M", "8L15", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + hiddenpower: ["7M", "6M", "5M", "4M"], + leafage: ["8L5"], + leechseed: ["8L26", "7L10", "6L10", "5L10", "5D", "4L10"], + luckychant: ["7L40", "6L40", "5L40", "4L40"], + magicalleaf: ["8M", "8L20", "7L19", "6L19", "5L19", "4L19"], + morningsun: ["8L1", "7L1", "6L1", "5L1"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], + petalblizzard: ["8L35", "7L47", "6L47"], + pollenpuff: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + razorleaf: ["8E", "7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["8E", "7E", "6E", "5E", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "8L45", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + swagger: ["7M", "6M", "5M", "4M"], + sweetscent: ["8E", "7E", "6E", "5E", "4E"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["8L30", "7L31", "6L31", "5L31", "4L31"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + weatherball: ["8M", "7E", "6E", "5E", "4E"], + worryseed: ["8L40", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28"], + }, + }, + cherrim: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["8M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flowershield: ["8L1"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "7T", "6T", "5T", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L1", "7L1", "6L1", "5L1", "4L1"], + helpinghand: ["8M", "8L15", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + leafage: ["8L1"], + leechseed: ["8L28", "7L1", "6L10", "5L10", "4L10"], + luckychant: ["7L48", "6L48", "5L48", "4L48"], + magicalleaf: ["8M", "8L20", "7L19", "6L19", "5L19", "4L19"], + morningsun: ["8L1", "7L1", "6L1", "5L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L41", "7L50", "6L50"], + petaldance: ["8L62", "7L1", "6L25", "5L25", "4L25"], + playrough: ["8M"], + pollenpuff: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "8L55", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], + solarblade: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "8L0", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["8L34", "7L35", "6L35", "5L35", "4L35"], + toxic: ["7M", "6M", "5M", "4M"], + weatherball: ["8M"], + worryseed: ["8L48", "7T", "7L30", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + }, + }, + shellos: { + learnset: { + acidarmor: ["9E", "8E", "7E", "6E"], + amnesia: ["9M", "8M", "7E", "6E", "5E", "4E"], + ancientpower: ["9L20", "8L20", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "9L25", "8M", "8L25", "7L29", "6L29", "5L29", "4L29"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bulldoze: ["9M"], + captivate: ["4M"], + chillingwater: ["9M"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9E", "8E", "7E", "6E", "5E", "4E"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "9L35", "8M", "8L35", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fissure: ["7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + harden: ["9L5", "8L5", "7L4", "6L4", "5L4", "4L4"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + liquidation: ["9M"], + memento: ["9L45", "8L45", "7E", "6E", "5E", "4E"], + mirrorcoat: ["9E", "8E", "7E", "6E", "5E", "4E"], + mist: ["9E", "8E", "7E", "6E", "5E"], + mudbomb: ["7L11", "6L11", "5L11", "4L11"], + muddywater: ["9L31", "8M", "8L31", "7L37", "6L37", "5L37", "4L37"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4T", "4L1"], + mudsport: ["7L2", "6L2", "5L2", "4L2"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "9L40", "8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + recover: ["9L10", "8L10", "7L46", "6L46", "5L46", "4L46"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "5D", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludge: ["9E", "8E", "7E", "6E", "5E", "4E"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spitup: ["9E", "8E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M"], + stockpile: ["9E", "8E", "7E", "6E", "5E", "4E"], + stoneedge: ["9M"], + stringshot: ["4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9E", "8E", "7E", "6E", "5E", "4E"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trumpcard: ["7E", "6E", "5E", "4E"], + waterfall: ["9M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L15", "8L15", "7T", "7L7", "6T", "6L7", "5L7", "4M", "4L7"], + whirlpool: ["8M", "4M"], + yawn: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + }, + }, + gastrodon: { + learnset: { + amnesia: ["9M", "8M"], + ancientpower: ["9L20", "8L20", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "9L25", "8M", "8L25", "7L29", "6L29", "5L29", "4L29"], + brine: ["8M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "9L39", "8M", "8L39", "7T", "7S0", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + harden: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "7S0", "6M", "5M", "4M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + liquidation: ["9M"], + memento: ["9L53", "8L53"], + mudbomb: ["7L11", "6L11", "5L11", "4L11"], + muddywater: ["9L33", "8M", "8L33", "7L41", "6L41", "5L41", "4L41"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "7S0", "6M", "5M", "4M"], + raindance: ["9M", "9L46", "8M", "8L46", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + recover: ["9L1", "8L1", "7L54", "7S0", "6L54", "5L54", "4L54"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "8M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + stringshot: ["4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L15", "8L15", "7T", "7L1", "6T", "6L1", "5L1", "4M", "4L1"], + weatherball: ["9M", "8M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 7, level: 50, gender: "F", nature: "Modest", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["earthpower", "icebeam", "recover", "protect"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + gastrodoneast: { + learnset: { + earthpower: ["9S3", "9S2", "8S1", "8S0"], + icebeam: ["9S2", "8S1", "8S0"], + icywind: ["9S3"], + protect: ["9S3", "9S2", "8S1", "8S0"], + surf: ["8S0"], + yawn: ["9S3", "9S2", "8S1"], + }, + eventData: [ + {generation: 8, level: 50, gender: "F", nature: "Quiet", abilities: ["stormdrain"], ivs: {hp: 31, atk: 2, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["protect", "surf", "icebeam", "earthpower"], pokeball: "cherishball"}, + {generation: 8, level: 50, gender: "F", nature: "Sassy", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["protect", "yawn", "icebeam", "earthpower"], pokeball: "cherishball"}, + {generation: 9, level: 50, gender: "M", nature: "Bold", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 8}, moves: ["protect", "yawn", "icebeam", "earthpower"], pokeball: "cherishball"}, + {generation: 9, level: 50, gender: "F", nature: "Calm", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 8}, moves: ["protect", "yawn", "icywind", "earthpower"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + drifloon: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M"], + aircutter: ["9M", "4T"], + allyswitch: ["8M", "7T"], + amnesia: ["9M", "8M", "7L40", "6L40", "5L40"], + astonish: ["9L1", "8L1", "7L4", "6L4", "5L6", "4L6"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "9L36", "8M", "8L36", "7L44", "6L44", "5L38", "4L33"], + bind: ["7T", "6T", "5T"], + bodyslam: ["8M", "7E", "6E", "5E", "4E"], + brutalswing: ["8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + defog: ["9E", "8E", "7T", "7E", "6E", "5E", "4M"], + destinybond: ["9L32", "8L32", "7E", "6E", "5E", "4E"], + disable: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L44", "8L44", "7M", "7L50", "6M", "6L50", "5M", "5L46", "4M", "4L43"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fly: ["9M"], + focusenergy: ["9L8", "8M", "8L8", "7L13", "6L13", "5L14", "4L14"], + frustration: ["7M", "6M", "5M", "4M"], + gust: ["9L4", "8L4", "7L8", "6L8", "5L11", "4L11"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + helpinghand: ["9M"], + hex: ["9M", "9L16", "8M", "8L16", "7L27", "6L27", "5L22"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypnosis: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + magiccoat: ["7T", "6T", "5T", "4T"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E"], + minimize: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L20", "6L20", "5L33", "4T", "4L30"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L17", "4M", "4L17"], + phantomforce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + selfdestruct: ["9L29", "8M", "8L29"], + shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L43", "4M", "4L38"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["4M"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + spitup: ["9L24", "8L24", "7L32", "6L32", "5L30", "4L27"], + stockpile: ["9L24", "8L24", "7L25", "6L25", "5L27", "4L22"], + storedpower: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9L24", "8L24", "7L32", "6L32", "5L30", "4L27"], + swift: ["9M", "8M", "4T"], + tailwind: ["9M", "9L40", "8L40", "7T", "7E", "6T", "6E", "5T", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + weatherball: ["9M", "8M", "7E", "6E", "5E", "4E"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + }, + drifblim: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + allyswitch: ["8M", "7T"], + amnesia: ["9M", "8M", "7L46", "6L46", "5L46"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "9L42", "8M", "8L42", "7L52", "6L52", "5L44", "4L37"], + bind: ["7T", "6T", "5T"], + bodyslam: ["9M", "8M"], + brutalswing: ["8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + destinybond: ["9L36", "8L36"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L54", "8L54", "7M", "7L60", "6M", "6L60", "5M", "5L56", "4M", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8M", "8L1", "7L13", "6L13", "5L14", "4L14"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + gyroball: ["9M", "8M", "7M", "6M", "5M", "4M"], + haze: ["9M"], + helpinghand: ["9M"], + hex: ["9M", "9L16", "8M", "8L16", "7L27", "6L27", "5L22"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + magiccoat: ["7T", "6T", "5T", "4T"], + minimize: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L20", "6L20", "5L37", "4T", "4L32"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L17", "4M", "4L17"], + phantomforce: ["9M", "9L0", "8M", "8L0", "7L1", "6L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + selfdestruct: ["9L31", "8M", "8L31"], + shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L51", "4M", "4L44"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["4M"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + spitup: ["9L24", "8L24", "7L34", "6L34", "5L32", "4L27"], + stockpile: ["9L24", "8L24", "7L25", "6L25", "5L27", "4L22"], + storedpower: ["9M"], + strengthsap: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9L24", "8L24", "7L34", "6L34", "5L32", "4L27"], + swift: ["9M", "8M", "4T"], + tailwind: ["9M", "9L48", "8L48", "7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + weatherball: ["9M", "8M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 7, level: 11, pokeball: "pokeball"}, + ], + }, + buneary: { + learnset: { + afteryou: ["8L12", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + agility: ["8M", "8L36", "7L33", "6L33", "5L33", "4L33"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "4E"], + babydolleyes: ["8L8", "7L13", "6L10"], + batonpass: ["8M", "8L28", "7L26", "6L26", "5L26", "4L26"], + bounce: ["8M", "8L48", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4T", "4L46"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L24", "7L46", "6L46", "5L46", "4L43"], + circlethrow: ["8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + copycat: ["8E", "7E", "6E", "5E"], + cosmicpower: ["8M", "7E", "6E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defensecurl: ["8L4", "7L1", "6L1", "5L1", "4L1"], + dig: ["8M", "6M", "5M", "4M"], + dizzypunch: ["7L36", "6L36", "5L36", "4L36"], + doublehit: ["8E", "7E", "6E", "5E", "4E"], + doublekick: ["8L20"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "5D", "4M"], + encore: ["8M", "7E", "6E", "5E", "4E"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7L6", "6L6", "5L6", "4M", "4L6"], + entrainment: ["8L40", "7L50", "6L50", "5L53"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fakeout: ["8E", "7E", "6E", "5E", "5D", "4E"], + faketears: ["8M", "7E", "6E", "5E", "4E"], + firepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + flail: ["8E", "7E", "6E", "5E", "4E"], + flatter: ["8L44"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["8E", "7T", "7E", "6T", "6E", "5E", "4M"], + foresight: ["7L1", "6L1", "5L1", "5D", "4L1"], + frustration: ["7M", "7L1", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8L32", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["8L52", "7L63", "6L63", "5L63", "4L53"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + jumpkick: ["7L23", "6L23", "5L23", "4L23"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lowsweep: ["8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["4T"], + mudsport: ["7E", "6E"], + naturalgift: ["4M"], + payback: ["8M"], + playrough: ["8M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["7E", "6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + quickattack: ["8L16", "7L16", "6L16", "5L16", "4L16"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + skyuppercut: ["7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["8E", "7E", "6E", "5E", "4E"], + swift: ["8M", "4T"], + switcheroo: ["8E", "7E", "6E", "5E", "4E"], + teeterdance: ["8E", "7E", "6E"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + lopunny: { + learnset: { + acrobatics: ["8M"], + afteryou: ["8L12", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + agility: ["8M", "8L36", "7L33", "6L33", "5L33", "4L33"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["8M"], + babydolleyes: ["8L1", "7L13"], + batonpass: ["8M", "8L28", "7L26", "6L26", "5L26", "4L26"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bounce: ["8M", "8L48", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L46"], + brutalswing: ["8M", "7M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L24", "7L46", "6L46", "5L46", "4L43"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cosmicpower: ["8M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1", "4L1"], + dig: ["8M", "6M", "5M", "4M"], + dizzypunch: ["7L36", "6L36", "5L36", "4L36"], + doublekick: ["8L20"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7L6", "6L6", "5L6", "4M", "4L6"], + entrainment: ["8L40", "7L53", "6L53", "5L53"], + facade: ["8M", "7M", "6M", "5M", "4M"], + faketears: ["8M"], + firepunch: ["8M", "7T", "6T", "5T", "4T"], + flatter: ["8L44"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8L32", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["8L52", "7L1", "6L1", "5L63", "4L53"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highjumpkick: ["8L56", "7L66", "6L66"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + jumpkick: ["7L23", "6L23", "5L23", "4L23"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magiccoat: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + megakick: ["8M"], + megapunch: ["8M"], + mirrorcoat: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["8M"], + playrough: ["8M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + quickattack: ["8L16", "7L16", "6L16", "5L16", "4L16"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7L1", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + reversal: ["8M"], + rocksmash: ["6M", "5M", "4M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M"], + waterpulse: ["7T", "6T", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + glameow: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + assist: ["7L29", "6L29", "5L29", "4L29"], + assurance: ["7E", "6E", "5E", "5D", "4E"], + attract: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L45"], + bite: ["7E", "6E", "5E", "4E"], + captivate: ["7L32", "6L32", "5L32", "4M", "4L32"], + charm: ["7L25", "6L25", "5L25", "4L25"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fakeout: ["7L1", "6L1", "5L1", "5D", "4L1"], + faketears: ["7E", "6E", "5E", "4E"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flail: ["7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["7L20", "6L20", "5L20", "4L20"], + growl: ["7L8", "6L8", "5L8", "4L8"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["7L48", "6M", "6L48", "5M", "5L48"], + hypervoice: ["7T", "6T", "5T"], + hypnosis: ["7L13", "6L13", "5L13", "4L13"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + playrough: ["7L50", "6L50"], + protect: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + quickattack: ["7E", "6E", "5E", "4E"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["7E", "6E", "5E", "4E"], + scratch: ["7L5", "6L5", "5L5", "4L5"], + secretpower: ["6M", "5D", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["7L37", "6L37", "5L37", "4L37"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + snore: ["7T", "6T", "5T", "4T"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L41", "6L41", "5L41", "4T", "4L41"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + tailwhip: ["7E", "6E", "5E", "4E"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uturn: ["7M", "6M", "5M", "4M"], + wakeupslap: ["7E", "6E", "5E"], + waterpulse: ["7T", "6T", "4M"], + workup: ["7M", "5M"], + }, + }, + purugly: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + assist: ["7L29", "6L29", "5L29", "4L29"], + attract: ["7M", "7L52", "6M", "6L52", "5M", "5L52", "4M", "4L53"], + bodyslam: ["7L45", "6L45", "5L45", "4L45"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["7L32", "6L32", "5L32", "4M", "4L32"], + charm: ["7L25", "6L25", "5L25", "4L25"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fakeout: ["7L1", "6L1", "5L1", "4L1"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flash: ["6M", "5M", "4M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["7L20", "6L20", "5L20", "4L20"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["7L60", "6M", "6L60", "5M", "5L60"], + hyperbeam: ["7M", "6M", "5M", "4M"], + hypervoice: ["7T", "6T", "5T"], + hypnosis: ["7L13", "6L13", "5L13", "4L13"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "4L1"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["7L37", "6L37", "5L37", "4L37"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stompingtantrum: ["7T"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7L1", "6M", "6L38", "5M", "5L38", "4M", "4L38"], + swift: ["4T"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + throatchop: ["7T"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 6, level: 32, maxEggMoves: 1}, + ], + }, + stunky: { + learnset: { + acidspray: ["9M", "9L9", "8L9", "7L19", "6L32", "5L32"], + assurance: ["8M"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + belch: ["9L39", "8L39", "7L43", "6L46"], + bite: ["9L18", "8L18", "7L21"], + bodyslam: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crunch: ["9M", "8M", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L42", "8L45", "7M", "7L45", "6M", "6L49", "5M", "5L49", "4M", "4L44"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L3", "8L3", "7L15", "6L18", "5L18", "4L18"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + flameburst: ["7E", "6E", "5E"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L15", "8M", "8L15", "7L1", "6L1", "5L1", "4L1"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["9L12", "8L12", "7L9", "6L10", "5L10", "4L10"], + gunkshot: ["9M"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leer: ["9E", "8E", "7E", "6E", "5E", "4E"], + memento: ["9L33", "8L33", "7L33", "6L43", "5L43", "4L37"], + mudslap: ["4T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightslash: ["9L36", "8L36", "7L31", "6L37", "5L37", "4L31"], + payback: ["8M", "7M", "6M", "5M", "4M"], + playrough: ["9M", "8M", "7E", "6E"], + poisongas: ["9L1", "8L1", "7L3", "6L4", "5L4", "4L4"], + poisonjab: ["9M"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + punishment: ["7E", "6E", "5E", "4E"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M", "7E", "6E", "5E", "4E"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L24", "8M", "8L24", "7L7", "6L7", "5L7", "5D", "4L7"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9E", "8E", "7L25", "6L22", "5L22", "4L22"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + smog: ["9E", "8E", "7E", "6E", "5E", "4E"], + smokescreen: ["9L6", "8L6", "7L13", "6L14", "5L14", "4L14"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L30", "8L30", "7L39", "5D", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L42", "7L37"], + venoshock: ["9M", "9L21", "8M", "8L21", "7M", "6M", "5M"], + }, + }, + skuntank: { + learnset: { + acidspray: ["9M", "8L9", "7L19", "6L32", "5L32"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + belch: ["9L43", "8L43", "7L43", "6L56"], + bite: ["9L18", "8L18", "7L21"], + bodyslam: ["9M"], + burningjealousy: ["9M", "8T"], + captivate: ["4M"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crunch: ["9M", "8M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L48", "8L53", "7M", "7L45", "6M", "6L61", "5M", "5L61", "4M", "4L52"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L1", "8L1", "7L15", "6L18", "5L18", "4L18"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L34", "5M", "5L34", "4M", "4L34"], + focusenergy: ["9L15", "8M", "8L15", "7L1", "6L1", "5L1", "4L1"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["9L12", "8L12", "7L9", "6L10", "5L10", "4L10"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + haze: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + memento: ["9L33", "8L33", "7L33", "6L51", "5L51", "4L41"], + mudslap: ["4T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightslash: ["9L38", "8L38", "7L31", "6L41", "5L41", "4L31"], + payback: ["8M", "7M", "6M", "5M", "4M"], + playrough: ["9M", "8M"], + poisongas: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L24", "8M", "8L24", "7L1", "6L7", "5L7", "4L7"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["7L25", "6L22", "5L22", "4L22"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + smokescreen: ["9L1", "8L1", "7L13", "6L14", "5L14", "4L14"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L30", "8L30", "7L39", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superfang: ["9M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L48", "7L37"], + venoshock: ["9M", "9L21", "8M", "8L21", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 4, level: 29}, + ], + }, + bronzor: { + learnset: { + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + bodyslam: ["9M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L4", "8L4", "7L11", "6L11", "5L11", "4L14"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + expandingforce: ["8T"], + extrasensory: ["9L28", "8L28", "7L39", "6L39", "5L19", "4L19"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L21", "6L21", "5L21", "4L41"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L44", "8M", "8L44", "7L29", "6L29", "5L29", "4L37"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "9E", "7T", "6T", "5T", "5D", "4T"], + guardswap: ["8M"], + gyroball: ["9M", "9L16", "8M", "8L16", "7M", "7L35", "6M", "6L35", "5M", "5L35", "4M", "4L35"], + healblock: ["7L45", "6L45", "5L45", "4L52"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L49", "6L49", "5L49"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypnosis: ["9L20", "8L20", "7L5", "6L5", "5L5", "5D", "4L7"], + icespinner: ["9M"], + imprison: ["9M", "9L12", "8M", "8L12", "7L9", "6L9", "5L9", "4L12"], + irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4L26"], + ironhead: ["9M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + metalsound: ["9L40", "8L40", "7L31", "6L31", "5L31"], + naturalgift: ["4M"], + payback: ["9L8", "8M", "8L8", "7M", "7L41", "6M", "6L41", "5M", "5L49", "4M", "4L49"], + powergem: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7L15", "6L15", "5L15"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["9E", "7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L30"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + speedswap: ["8M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M"], + }, + }, + bronzong: { + learnset: { + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + block: ["9L0", "8L0", "7T", "7L1", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + bodypress: ["9M", "9S0", "8M"], + bodyslam: ["9M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L11", "6L11", "5L11", "4L14"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M", "4M"], + extrasensory: ["9L28", "8L28", "7L42", "6L42", "5L19", "4L19"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L21", "6L21", "5L21", "4L50"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "9S1", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L50", "8M", "8L50", "7L29", "6L29", "5L29", "4L43"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + guardswap: ["8M"], + gyroball: ["9M", "9L16", "9S1", "8M", "8L16", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L38"], + healblock: ["7L52", "6L52", "5L52", "4L67"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L58", "6L58", "5L58"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypnosis: ["9L20", "9S1", "8L20", "7L1", "6L1", "5L1", "4L1"], + icespinner: ["9M"], + imprison: ["9M", "9L12", "8M", "8L12", "7L1", "6L1", "5L1", "4L1"], + irondefense: ["9M", "9L38", "9S0", "8M", "8L38", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4L26"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + metalsound: ["9L44", "8L44", "7L31", "6L31", "5L31"], + meteorbeam: ["8T"], + naturalgift: ["4M"], + nightshade: ["9M"], + payback: ["9L1", "8M", "8L1", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L61"], + powergem: ["9M"], + powerswap: ["8M"], + protect: ["9M", "9S0", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "9S1", "8M", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M", "8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7L15", "6L15", "5L15"], + raindance: ["9M", "9L56", "8M", "8L56", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L30"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + speedswap: ["8M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "9S0", "8M", "7M", "6M", "5M", "4M"], + weatherball: ["9M", "9L1", "8M", "8L1"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 9, level: 50, nature: "Relaxed", ivs: {hp: 31, atk: 31, def: 31, spa: 22, spd: 31, spe: 0}, moves: ["bodypress", "irondefense", "protect", "trickroom"], pokeball: "cherishball"}, + {generation: 9, level: 50, nature: "Modest", moves: ["flashcannon", "gyroball", "psychic", "hypnosis"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + chatot: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["7E", "6E", "5E", "4E"], + aircutter: ["7E", "6E", "5E", "4T"], + attract: ["7M", "6M", "5M", "4M"], + boomburst: ["7E", "6E"], + captivate: ["4M"], + chatter: ["7L1", "6L1", "5L21", "4L21", "4S0"], + confide: ["7M", "7L1", "6M", "6L1"], + defog: ["7T", "7E", "6E", "5E", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "7L37", "6M", "6L37", "5M", "5L37"], + encore: ["7E", "6E", "5E", "4E"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + featherdance: ["7L50", "6L50", "5L53", "4L41"], + fly: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L17", "6L17", "5L17", "4L17", "4S0"], + growl: ["7L5", "6L5", "5L5", "4L5"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["7T", "7L1", "6T", "6L1", "5T", "5L57", "4L45"], + mimic: ["7L33", "6L33", "5L33", "4L29"], + mirrormove: ["7L9", "6L9", "5L9", "5D", "4L9", "4S0"], + mudslap: ["4T"], + nastyplot: ["7E", "6E", "5E", "5D", "4E"], + naturalgift: ["4M"], + nightshade: ["7E", "6E", "5E", "4E"], + ominouswind: ["4T"], + peck: ["7L1", "6L1", "5L1", "4L1"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "5D", "4T"], + roost: ["7M", "7L41", "6M", "6L41", "5T", "5L41", "4M", "4L33"], + round: ["7M", "7L29", "6M", "6L29", "5M", "5L29"], + secretpower: ["6M", "4M"], + sing: ["7L13", "6L13", "5L13", "4L13"], + skyattack: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "7E", "6M", "6E", "5E", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + supersonic: ["7E", "6E", "5E", "4E"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + synchronoise: ["7L49", "6L49", "5L49"], + tailwind: ["7T", "6T", "5T", "4T"], + taunt: ["7M", "7L1", "6M", "6L1", "5M", "5L25", "4M", "4L25", "4S0"], + thief: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L37"], + uturn: ["7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 4, level: 25, gender: "M", nature: "Jolly", abilities: ["keeneye"], moves: ["mirrormove", "furyattack", "chatter", "taunt"]}, + ], + }, + spiritomb: { + learnset: { + allyswitch: ["9E", "8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["7E", "6E", "5E", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + curse: ["9L40", "8L40", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["9M", "9L50", "8M", "8L50", "7M", "7L49", "6M", "6L49", "5T", "5L49", "5S0", "4M", "4L49"], + destinybond: ["9E", "8E", "7E", "6E", "5E", "4E"], + disable: ["9E", "8E", "7E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["9L60", "8L60", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], + embargo: ["7M", "6M", "5M", "5S0", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L7", "6L7", "5L7", "4L7"], + flash: ["6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grudge: ["8E", "7E", "6E", "5E", "4E"], + helpinghand: ["9M"], + hex: ["9M", "9L25", "8M", "8L25"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypnosis: ["9L55", "8L55", "7L13", "6L13", "5L13", "4L13"], + icywind: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + imprison: ["9M", "8M", "7E", "6E", "5E", "4E"], + infestation: ["7M", "6M"], + lashout: ["9M", "8T"], + memento: ["9L30", "8L30", "7L43", "6L43", "5L43", "4L43"], + nastyplot: ["9M", "9L20", "8M", "8L20", "7L37", "6L37", "5L37", "4L37"], + naturalgift: ["4M"], + nightmare: ["7E", "6E", "5E"], + nightshade: ["9M", "9L1", "8L1"], + ominouswind: ["7L25", "6L25", "5L25", "4T", "4L25"], + painsplit: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + payback: ["9L15", "8M", "8L15"], + phantomforce: ["9M", "8M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M"], + pursuit: ["7L1", "6L1", "5L1", "4L1"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "9L45", "8M", "8L45", "7M", "6M", "5M", "4M"], + shadowsneak: ["9L5", "8L5", "7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["5S0", "4M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smokescreen: ["9E", "8E", "7E", "6E", "5E", "4E"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "9L10", "8L10", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1"], + storedpower: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L35", "8L35", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 61, gender: "F", nature: "Quiet", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["darkpulse", "psychic", "silverwind", "embargo"], pokeball: "cherishball"}, + ], + }, + gible: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L25", "8L25"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "9L42", "8M", "8L42", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L12", "8L12", "7E", "6E", "5E", "4E"], + dragonclaw: ["9M", "9L36", "8M", "8L36", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L27"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrage: ["7L7", "6L7", "5L7", "5D", "4L7"], + dragonrush: ["9L60", "8L60", "7L37", "6L37", "5L37", "4L37"], + dragontail: ["9M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "5D", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + metalclaw: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["7E", "6E", "5E", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L6", "8L6", "7L3", "6L3", "5L3", "4L3"], + sandstorm: ["9M", "9L48", "8M", "8L48", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L19", "7E", "6L19", "6E", "5L19", "5E", "4L19", "4E"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M", "7E", "6E", "5E", "4E"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L30", "8L30", "7L25", "6L25", "5L25", "4L25"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L54", "8L54", "7L15", "6L15", "5L15", "4L15"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E", "6E", "5E", "4E"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + }, + }, + gabite: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L27", "8L27"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "9L50", "8M", "8L50", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M", "4L33"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrage: ["7L1", "6L7", "5L7", "4L7"], + dragonrush: ["9L74", "8L74", "7L49", "6L49", "5L49", "4L49"], + dragontail: ["9M"], + dualchop: ["8L1", "7T", "7L1", "6T", "6L24", "5T", "5L24"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + metalclaw: ["9M"], + mudshot: ["9M", "8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L58", "8M", "8L58", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L34", "8L34", "7L28", "6L28", "5L28", "4L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L66", "8L66", "7L15", "6L15", "5L15", "4L15"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + }, + }, + garchomp: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L27", "8L27"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L0", "8M", "8L0", "7L1", "6L48", "6S2", "6S3", "5L48", "5S1", "4L48"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "9L52", "8M", "8L52", "7L40", "6M", "6L40", "6S2", "6S3", "5M", "5L40", "5S1", "4M", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "6S2", "5T", "4T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L33", "6M", "6L33", "6S2", "6S3", "5M", "5L33", "5S1", "4M", "4L33"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrage: ["7L1", "6L1", "5L1", "4L1"], + dragonrush: ["9L82", "8L82", "7L55", "6L55", "6S4", "5L55", "4L55"], + dragontail: ["9M", "7M", "6M", "5M"], + dualchop: ["8L1", "7T", "7L1", "6T", "6L24", "5T", "5L24"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "6S4", "5M", "5S0", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + liquidation: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "5S0", "5S1", "4T"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L62", "8M", "8L62", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L34", "8L34", "7L28", "6L28", "6S3", "5L28", "4L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L72", "8L72", "7L15", "6L15", "5L15", "4L15"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["outrage", "earthquake", "swordsdance", "stoneedge"], pokeball: "cherishball"}, + {generation: 5, level: 48, gender: "M", isHidden: true, moves: ["dragonclaw", "dig", "crunch", "outrage"]}, + {generation: 6, level: 48, gender: "M", moves: ["dracometeor", "dragonclaw", "dig", "crunch"], pokeball: "cherishball"}, + {generation: 6, level: 50, gender: "M", moves: ["slash", "dragonclaw", "dig", "crunch"], pokeball: "cherishball"}, + {generation: 6, level: 66, gender: "F", perfectIVs: 3, moves: ["dragonrush", "earthquake", "brickbreak", "gigaimpact"], pokeball: "cherishball"}, + ], + }, + riolu: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["4S0"], + bite: ["9E", "8E", "7E", "6E", "5E", "4E"], + blazekick: ["8M", "7E", "6E", "5E", "4E"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "4S0"], + captivate: ["4M"], + circlethrow: ["9E", "8E", "7E", "6E", "5E"], + closecombat: ["9M"], + coaching: ["8T"], + confide: ["7M", "6M"], + copycat: ["9L48", "8L48", "7L19", "6L19", "5L29", "4L29"], + counter: ["9L12", "8L12", "7L6", "6L6", "5L6", "4L6"], + crosschop: ["9E", "8E", "7E", "6E", "5E", "4E"], + crunch: ["9M", "8M", "7E", "6E", "5E", "4E"], + detect: ["9E", "8E", "7E", "6E", "5E", "4E"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M", "4S0"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5D", "4M", "4L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L4", "8L4", "7L11", "6L11", "5L15", "4L15"], + finalgambit: ["9L52", "8L52", "7L50", "6L50", "5L55"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "5D", "4M"], + followme: ["7E", "6E", "5E", "4E"], + forcepalm: ["9L36", "8L36", "7L15", "6L15", "5L11", "4L11"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M", "9L44", "8M", "8L44", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highjumpkick: ["9E", "8E", "7E", "6E", "5E", "4E"], + howl: ["9E", "8E"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + lowkick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L8", "8L8"], + meteormash: ["7E"], + mindreader: ["8E", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + nastyplot: ["9M", "8M", "8L24", "7L47", "6L47", "5L47"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + quickguard: ["9L32", "8L32"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "9L56", "8M", "8L56", "7L29", "6L29", "5L19", "4L19"], + roar: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["9L20", "8L20", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["9L28", "8M", "8L28", "7L24", "6L24", "5L24", "4L24"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], + skyuppercut: ["7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + vacuumwave: ["9M", "9L24", "8E", "7E", "6E", "5E", "4T", "4E"], + workup: ["9L16", "8M", "8L16", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 30, gender: "M", nature: "Serious", abilities: ["steadfast"], moves: ["aurasphere", "shadowclaw", "bulletpunch", "drainpunch"], pokeball: "pokeball"}, + ], + }, + lucario: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["9M", "9L0", "9S7", "8M", "8L0", "8S6", "7L1", "7S5", "6L1", "6S4", "5L51", "4L37", "4S0"], + blazekick: ["8M", "4S1"], + bodyslam: ["9M"], + bonerush: ["9L36", "8L36", "7L29", "6L29", "5L19", "4L19", "4S1"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9S7", "8S6", "5S2", "5S3"], + calmmind: ["9M", "9L24", "8M", "8L24", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M"], + captivate: ["4M"], + closecombat: ["9M", "9L60", "8M", "8L60", "7L55", "6L1", "6S4", "5L55", "5S3", "4L42"], + coaching: ["8T"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["9L12", "8L12", "7L6", "6L6", "5L6", "5S2", "4L6"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "5L1", "4M", "4L1", "4S0"], + detect: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S2", "4L1"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["9M", "9L52", "8M", "8L52", "7T", "7L60", "7S5", "6T", "6L1", "5T", "5L60", "4M", "4L47", "4S0"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + extremespeed: ["9L56", "8L56", "7L65", "7S5", "6L1", "5L65", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L1", "8L1", "7L11", "6L11", "5L15", "4L15"], + finalgambit: ["9L1", "8L1"], + flashcannon: ["9M", "9S7", "8M", "7M", "6M", "6S4", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["9M", "7T", "6T", "4M"], + forcepalm: ["9L20", "8L1", "5L11", "4L11", "4S1"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healpulse: ["9L44", "8L44", "7L51", "6L51", "5L42"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highjumpkick: ["7S5"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "9S7", "8M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["8L16", "7T", "7L1"], + lifedew: ["9L1", "8L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mefirst: ["7L37", "6L37", "5L29", "4L29"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5S2", "4L1"], + metalsound: ["9L28", "8L28", "7L24", "6L24", "5L24", "4L24"], + meteormash: ["9L48", "8L48"], + metronome: ["9M"], + mudslap: ["4T"], + nastyplot: ["9M", "8M", "8L1"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["8L20", "7L15", "6M", "6L15"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "6S4", "5L1", "4L1"], + quickguard: ["9L32", "8L32", "7L33", "6L33", "5L33"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "9L1", "8M", "8L1", "8S6"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["9L1", "8L1", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + screech: ["9L1", "8M", "8L1"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "5S3", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + steelbeam: ["9M", "8T", "8S6"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "5S3", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "4S1"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "7L19", "6M", "6L19", "5M", "5L37", "4M", "4L33"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + vacuumwave: ["9M", "9L1", "4T"], + waterpulse: ["9M", "7T", "6T", "4M", "4S0"], + workup: ["9L16", "8M", "8L1", "7M", "7L42", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Modest", abilities: ["steadfast"], moves: ["aurasphere", "darkpulse", "dragonpulse", "waterpulse"], pokeball: "cherishball"}, + {generation: 4, level: 30, gender: "M", nature: "Adamant", abilities: ["innerfocus"], moves: ["forcepalm", "bonerush", "sunnyday", "blazekick"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["detect", "metalclaw", "counter", "bulletpunch"]}, + {generation: 5, level: 50, gender: "M", nature: "Naughty", ivs: {atk: 31}, isHidden: true, moves: ["bulletpunch", "closecombat", "stoneedge", "shadowclaw"], pokeball: "cherishball"}, + {generation: 6, level: 100, nature: "Jolly", abilities: ["innerfocus"], moves: ["closecombat", "aurasphere", "flashcannon", "quickattack"], pokeball: "cherishball"}, + {generation: 7, level: 40, gender: "M", nature: "Serious", abilities: ["steadfast"], moves: ["aurasphere", "highjumpkick", "dragonpulse", "extremespeed"], pokeball: "pokeball"}, + {generation: 8, level: 80, gender: "M", nature: "Serious", abilities: ["innerfocus"], ivs: {hp: 31, atk: 30, def: 30, spa: 31, spd: 30, spe: 31}, moves: ["aurasphere", "bulletpunch", "reversal", "steelbeam"], pokeball: "pokeball"}, + {generation: 9, level: 75, shiny: true, gender: "M", nature: "Naive", abilities: ["innerfocus"], ivs: {hp: 31, atk: 31, def: 20, spa: 31, spd: 20, spe: 31}, moves: ["flashcannon", "bulletpunch", "aurasphere", "icepunch"], pokeball: "cherishball"}, + ], + }, + hippopotas: { + learnset: { + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L4", "8L4", "7L7", "6L7", "5L7", "5D", "4L7"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L20", "8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + curse: ["9E", "8E", "7E", "6E", "5E", "4E"], + dig: ["9M", "9L16", "8M", "8L16", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], + doubleedge: ["9L44", "8L44", "7L44", "6L44", "5L44", "4L44"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M"], + fissure: ["9L48", "8L48", "7L50", "6L50", "5L50", "4L50"], + frustration: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["9M", "8M"], + icefang: ["9M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L36", "8M", "8L36", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "7E", "6E", "5E", "4E"], + roar: ["9M", "9L32", "8L32", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "9L12", "8M", "8L12", "7L25", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + slackoff: ["9L52", "8L52", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spitup: ["9E", "8E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stockpile: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9E", "8E", "7E", "6E", "5E", "4E"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L28", "8L28", "7L19", "6L19", "5L19", "4L19"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + weatherball: ["8M"], + whirlwind: ["9E", "8E", "7E", "6E", "5E"], + yawn: ["9L8", "8L8", "7L13", "6L13", "5L13", "4L13"], + }, + }, + hippowdon: { + learnset: { + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L20", "8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + dig: ["9M", "9L16", "8M", "8L16", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], + doubleedge: ["9L50", "8L50", "7L50", "6L50", "5L50", "4L50"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + fissure: ["9L56", "8L56", "7L60", "6L60", "5L60", "4L60"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M"], + icefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L38", "8M", "8L38", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + roar: ["9M", "9L32", "8L32", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "9L12", "8M", "8L12", "7L25", "6L25", "5L25", "4L25"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + slackoff: ["9L62", "8L62"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L28", "8L28", "7L19", "6L19", "5L19", "4L19"], + terablast: ["9M"], + thunderfang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + weatherball: ["8M"], + yawn: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + }, + }, + skorupi: { + learnset: { + acupressure: ["8L45", "7L13", "6L13", "5L17", "4L17"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "7E", "6E", "5E", "5D", "4E"], + aquatail: ["7T", "6T", "5T", "5D", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["8L12", "7L1", "6L1", "5L1", "5D", "4L1"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L34", "4T", "4L34"], + bugbuzz: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E"], + crosspoison: ["8M", "8L39", "7L49", "6L49", "5L61", "4L50"], + crunch: ["8M", "8L48", "7L45", "6L45", "5L56", "4L45"], + cut: ["6M", "5M", "4M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + dig: ["8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + feintattack: ["7E", "6E", "5E", "4E"], + fellstinger: ["8L6", "7L47", "6L47"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["8L3", "7L30", "6M", "6L30", "5M", "5L45"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + knockoff: ["8L24", "7T", "7L5", "6T", "6L5", "5T", "5L6", "4T", "4L6"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["8L36", "7L38", "7E", "6L38", "6E", "5L38", "5E", "4E"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["8M", "8L30", "7L9", "6L9", "5L12", "4L12"], + poisonfang: ["8L9", "7L23", "6L23", "5L39", "4L39"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], + poisontail: ["7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L16", "7E", "6L16", "6E", "5L16", "5E", "4E"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8E", "7E", "6E", "5E", "4E"], + scaryface: ["8M", "8L27", "7L41", "6L41", "5L23", "4L23"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + skittersmack: ["8T"], + slash: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["8L33", "7M", "6M", "5M", "4M"], + toxicspikes: ["8M", "8L15", "7L34", "6L34", "5L28", "4L28"], + twineedle: ["7E", "6E", "5E"], + venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L50"], + whirlwind: ["8E", "7E", "6E", "5E", "4E"], + xscissor: ["8M", "8L42", "7M", "6M", "5M", "4M"], + }, + }, + drapion: { + learnset: { + acupressure: ["8L49", "7L13", "6L13", "5L17", "4L17"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["8L12", "7L1", "6L1", "5L1", "4L1"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L34", "4T", "4L34"], + bugbuzz: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crosspoison: ["8M", "8L39", "7L57", "6L57", "5L73", "4L58"], + crunch: ["8M", "8L54", "7L49", "6L49", "5L65", "4L49"], + cut: ["6M", "5M", "4M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + dig: ["8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + fellstinger: ["8L1", "7L53", "6L53"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["8L1", "7L30", "6M", "6L30", "5M", "5L48"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + infestation: ["7M", "6M"], + irondefense: ["8M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["8L24", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + lashout: ["8T"], + leechlife: ["8M"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["8L36", "7L38", "6L38", "5L38"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["8M", "8L30", "7L9", "6L9", "5L12", "4L1"], + poisonfang: ["8L9", "7L23", "6L23", "5L39", "4L39"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L16", "6L16", "5L16"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + scaryface: ["8M", "8L27", "7L43", "6L43", "5L23", "4L23"], + screech: ["8M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["8L33", "7M", "6M", "5M", "4M"], + toxicspikes: ["8M", "8L15", "7L34", "6L34", "5L28", "4L28"], + venomdrench: ["8M"], + venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L56"], + xscissor: ["8M", "8L44", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 4, level: 22, pokeball: "safariball"}, + {generation: 6, level: 30}, + ], + }, + croagunk: { + learnset: { + acidspray: ["9M"], + acupressure: ["7E", "6E", "5E"], + aerialace: ["9M"], + assurance: ["8M"], + astonish: ["9L4", "8L4", "7L1", "6L1", "5L1", "5S0", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "8M"], + belch: ["9L48", "8L48", "7L47", "6L47"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + chillingwater: ["9M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + crosschop: ["9E", "8E", "7E", "6E", "5E", "4E"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], + feint: ["9E", "8E", "7E", "6E", "5E", "4E"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flatter: ["9L12", "8L12", "7L50", "6L50", "5L50", "4L45"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + headbutt: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + lowkick: ["9M", "9L16", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + meditate: ["7E", "6E", "5E", "4E"], + mefirst: ["7E", "6E", "5E", "4E"], + megakick: ["8M"], + megapunch: ["8M"], + mudbomb: ["7L29", "6L29", "5L29", "4L29"], + mudshot: ["9M"], + mudslap: ["9M", "9L1", "8L1", "7L3", "6L3", "5L3", "5S0", "5S1", "4T", "4L3"], + nastyplot: ["9M", "9L40", "8M", "8L40", "7L38", "6L38", "5L38", "4L36"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "9L32", "8M", "8L32", "7M", "7L43", "6M", "6L43", "5M", "5L43", "5S1", "4M", "4L38"], + poisonsting: ["9L1", "8L1", "7L8", "6L8", "5L8", "5D", "5S0", "5S1", "4L8"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L15", "6L15", "5L15", "4L15"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L16", "7L22", "6L22", "5L22", "4L22"], + reversal: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "9L44", "8M", "8L44", "7M", "7L45", "6M", "6L45", "5M", "5L45", "4M", "4L43"], + sludgewave: ["8M", "7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E", "4E"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L24", "8L24", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["9L28", "8L28", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + takedown: ["9M"], + taunt: ["9M", "9L8", "8M", "8L8", "7M", "7L10", "6M", "6L10", "5M", "5L10", "5S0", "5S1", "4M", "4L10"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "9L36", "8L36", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "9E", "8E", "7E", "6E", "5E", "4T", "4E"], + venomdrench: ["8M"], + venoshock: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + wakeupslap: ["7E", "6E", "5E", "4E"], + workup: ["8M", "7M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["astonish", "mudslap", "poisonsting", "taunt"]}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["mudslap", "poisonsting", "taunt", "poisonjab"]}, + ], + }, + toxicroak: { + learnset: { + acidspray: ["9M"], + aerialace: ["9M"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "8M"], + belch: ["9L54", "8L54", "7L58", "6L58"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + closecombat: ["9M"], + coaching: ["8T"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flatter: ["9L12", "8L12", "7L62", "6L62", "5L62", "4L54"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + lowkick: ["9M", "9L16", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + mudbomb: ["7L29", "6L29", "5L29", "4L29"], + mudshot: ["9M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + nastyplot: ["9M", "9L42", "8M", "8L42", "7L41", "6L41", "5L41", "4L36"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "9L32", "8M", "8L32", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L41"], + poisonsting: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L15", "6L15", "5L15", "4L15"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L16", "7L22", "6L22", "5L22", "4L22"], + reversal: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "9L48", "8M", "8L48", "7M", "7L54", "6M", "6L54", "5M", "5L54", "4M", "4L49"], + sludgewave: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L24", "8L24", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + swagger: ["9L28", "8L28", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L10", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9M", "9L36", "8L36", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + venomdrench: ["8M"], + venoshock: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + workup: ["8M", "7M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 4, level: 22, pokeball: "safariball"}, + {generation: 6, level: 30}, + ], + }, + carnivine: { + learnset: { + acidspray: ["7E"], + attract: ["7M", "6M", "5M", "4M"], + bind: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + bite: ["7L7", "6L7", "5L7", "5D", "4L7"], + bugbite: ["7T", "6T", "5T", "4T"], + bulletseed: ["4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["7L41", "6L41", "5L41", "4L37"], + cut: ["6M", "5M", "4M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + feintattack: ["7L27", "6L27", "5L27", "4L27"], + flash: ["6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gastroacid: ["7T", "6T", "5T", "5D", "4T"], + gigadrain: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E"], + growth: ["7L1", "6L1", "5L1", "4L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + ingrain: ["7L21", "6L21", "5L21", "4L21"], + knockoff: ["7T", "6T", "5T", "4T"], + leaftornado: ["7L31", "6L31", "5L31"], + leechseed: ["7E", "6E", "5E", "4E"], + magicalleaf: ["7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M", "4M"], + powerwhip: ["7L50", "6L50", "5L51", "4L47"], + protect: ["7M", "6M", "5M", "4M"], + ragepowder: ["7E", "6E", "5E", "5D"], + razorleaf: ["7E", "6E", "5E", "4E"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + slam: ["7E", "6E", "5E", "4E"], + sleeppowder: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M"], + sludgebomb: ["7M", "6M", "5M", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + spitup: ["7L37", "6L37", "5L37", "4L31"], + stockpile: ["7L37", "6L37", "5L37", "4L31"], + stunspore: ["7E", "6E", "5E", "4E"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["7L37", "6L37", "5L37", "4L31"], + sweetscent: ["7L17", "6L17", "5L17", "4L17"], + swordsdance: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + thief: ["7M", "6M", "5M", "4M"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M", "4M"], + vinewhip: ["7L11", "6L11", "5L11", "4L11"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + wringout: ["7L47", "6L47", "5L47", "4L41"], + }, + }, + finneon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9E", "7E", "6E", "5E", "4E"], + aircutter: ["4T"], + aquaring: ["9L33", "7L33", "6L33", "5L33", "4L33"], + aquatail: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + attract: ["9L26", "7M", "7L10", "6M", "6L10", "5M", "5L10", "5D", "4M", "4L10"], + aurorabeam: ["9E", "7E", "6E", "5E"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bounce: ["9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], + brine: ["7E", "6E", "5E", "4M"], + captivate: ["7L26", "6L26", "5L26", "4M", "4L26"], + charm: ["9M", "9E", "7E", "6E", "5E", "4E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "7E"], + dazzlinggleam: ["9M"], + defog: ["7T", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flail: ["9E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + gust: ["9L17", "7L17", "6L17", "5L17", "4L17"], + hail: ["7M", "6M", "5M", "4M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9E", "7E", "6E", "5E", "4E"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E"], + silverwind: ["7L49", "6L49", "5L49", "4M", "4L49"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L54", "7L54", "6L54", "5L54"], + splash: ["7E", "6E", "5E", "4E"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["9E", "7E", "6E", "5E", "5D", "4E"], + swift: ["9M", "4T"], + tailwind: ["9M", "9L49", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + tickle: ["9E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L42"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L6", "7L6", "6L6", "5L6", "4L6"], + waterpulse: ["9M", "9L22", "7T", "7L22", "6T", "6L22", "5L22", "5D", "4M", "4L22"], + whirlpool: ["9L38", "7L38", "6L38", "5L38", "4M", "4L38"], + }, + }, + lumineon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + aquaring: ["9L35", "7L35", "6L35", "5L35", "4L35"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["9L26", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bounce: ["9L53", "7T", "7L53", "6T", "6L53", "5T", "5L53", "4T", "4L53"], + brine: ["4M"], + captivate: ["7L26", "6L26", "5L26", "4M", "4L26"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + defog: ["7T", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + encore: ["9M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "7L1", "6L1", "5L17", "4L17"], + hail: ["7M", "6M", "5M", "4M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["7L59", "6L59", "5L59", "4M", "4L59"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L1", "7L1", "6L1", "5L66"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tailwind: ["9M", "9L59", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["9M", "9L48", "7M", "7L48", "6M", "6L48", "5M", "5L48", "4M", "4L48"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1", "7L1", "6L1", "5L1", "4L1"], + waterpulse: ["9M", "9L22", "7T", "7L22", "6T", "6L22", "5L22", "4M", "4L22"], + whirlpool: ["9L42", "7L42", "6L42", "5L42", "4M", "4L42"], + }, + encounters: [ + {generation: 4, level: 20}, + ], + }, + snover: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["9M", "8M", "7E", "6E", "5E", "5D", "4M"], + blizzard: ["9M", "9L45", "8M", "8L45", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bodyslam: ["9M"], + bulletseed: ["9M", "8M", "7E", "6E", "5E", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L13", "6L13", "5L13", "4L13"], + grassyglide: ["9M", "8T"], + growth: ["9E", "8E", "7E", "6E", "5E", "4E"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + iceshard: ["9L15", "8L15", "7L26", "6L26", "5L26", "4L26"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L9", "6T", "6L9", "5T", "5L9", "4T", "4L9"], + ingrain: ["9L35", "8L35", "7L31", "6L31", "5L31", "4L31"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leafage: ["9L5", "8L5"], + leafstorm: ["9M"], + leechseed: ["9E", "8E", "7E", "6E", "5E", "4E"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M", "8M", "7E", "6E", "5E", "4E"], + megapunch: ["8M"], + mist: ["9L10", "8L10", "7L21", "7E", "6L21", "6E", "5L21", "5E", "4L21", "4E"], + mudslap: ["9M", "4T"], + naturalgift: ["7E", "6E", "5E", "4M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L20", "8L20", "7L5", "6L5", "5L5", "5D", "4L5"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sheercold: ["9L50", "8L50", "7L46", "6L46", "5L46", "4L46"], + skullbash: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stomp: ["9E", "8E", "7E", "6E", "5E", "4E"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["9L30", "8L30", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["9M", "9E", "8M"], + woodhammer: ["9L41", "8L41", "7L36", "6L36", "5L36", "4L36"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + abomasnow: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + auroraveil: ["9L1", "8L1"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "9L49", "8M", "8L49", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L47"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L13", "6L13", "5L13", "4L13"], + grassyglide: ["9M", "8T"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + iceshard: ["9L15", "8L15", "7L26", "6L26", "5L26", "4L26"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + ingrain: ["9L35", "8L35", "7L31", "6L31", "5L31", "4L31"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leafage: ["9L1", "8L1"], + leafstorm: ["9M", "8M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + lowkick: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mist: ["9L1", "8L1", "7L21", "6L21", "5L21", "4L21"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L20", "8L20", "7L1", "6L1", "5L1", "4L1"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sheercold: ["9L56", "8L56", "7L58", "6L58", "5L58", "4L58"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["9L30", "8L30", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["9M", "8M"], + woodhammer: ["9L43", "8L43", "7L36", "6L36", "5L36", "4L36"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 4, level: 38}, + ], + }, + rotom: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], + charge: ["9M", "9L15", "8L15", "7L1", "6L1", "5L57", "4L43"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "7S2", "6M"], + confuseray: ["9M", "9L10", "8L10", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["7T"], + disarmingvoice: ["7S2"], + discharge: ["9L50", "8L50", "7L1", "6L1", "5L64", "4L50"], + doubleteam: ["9L1", "8L1", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15"], + dreameater: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L20", "8M", "8L20", "7L43", "6L43", "5L43"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T"], + frustration: ["7M", "6M", "5M", "4M"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L35", "8M", "8L35", "7L50", "6L50", "5L50"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + mudslap: ["4T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L29", "6L29", "5L29", "4T", "4L29"], + painsplit: ["7T", "6T", "5T", "4T"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["9L30", "8L30", "7T", "7L22", "6T", "6L22", "6S1", "5L22", "5D", "4M", "4L22"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "9L40", "8M", "8L40", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thundershock: ["9L5", "8L5", "7L1", "6L1", "5T", "5L1", "5S0", "4T", "4L1"], + thunderwave: ["9M", "9L25", "8M", "8L25", "7M", "7L1", "6M", "6L1", "6S1", "5M", "5L1", "5D", "4M", "4L1"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "9L45", "8M", "8L45", "7T", "7L1", "6T", "6L1", "6S1", "5T", "5L1", "5S0", "4T", "4L1"], + uproar: ["9M", "9L55", "8M", "8L55", "7T", "7L8", "7S2", "6T", "6L8", "5T", "5L8", "5S0", "4T", "4L8"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 5, level: 10, nature: "Naughty", moves: ["uproar", "astonish", "trick", "thundershock"], pokeball: "cherishball"}, + {generation: 6, level: 10, nature: "Quirky", moves: ["shockwave", "astonish", "trick", "thunderwave"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["uproar", "confide", "disarmingvoice"], pokeball: "cherishball"}, + ], + }, + rotomheat: { + learnset: { + overheat: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotomwash: { + learnset: { + hydropump: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotomfrost: { + learnset: { + blizzard: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotomfan: { + learnset: { + airslash: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotommow: { + learnset: { + leafstorm: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + uxie: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + allyswitch: ["9L1", "8M", "7T"], + amnesia: ["9M", "9L42", "8M", "8L42", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], + batonpass: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "9L14", "8M", "8L14", "7L16", "6L16", "5L16", "4M", "4L16"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["9L1", "8T"], + extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flail: ["9L70", "8L70", "7L1", "6L1", "5L61", "5S2", "4L61"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L63", "8M", "8L63", "8S5", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], + irontail: ["9L1", "8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["9L1", "8M", "8S5", "7T", "6T", "5T"], + memento: ["9L77", "8L77", "7L1", "6L1", "5L76", "4L76"], + metronome: ["9M", "8M"], + mudslap: ["9M", "4T"], + mysticalpower: ["9L84"], + nastyplot: ["9M", "8M"], + naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + playrough: ["9M", "8M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9L21", "8L21"], + psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], + psychocut: ["9L1", "8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["9L1", "8M", "7M", "6M", "5M"], + safeguard: ["9L1", "8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "8S5", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["9L1", "8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L7", "8M", "8L7", "7L21", "7S4", "6L21", "5L21", "4T", "4L21", "4S1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["9L1", "8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + wonderroom: ["9L1", "8M", "7T", "6T", "5T"], + yawn: ["9L56", "8L56", "7L31", "7S4", "6L31", "6S3", "5L31", "4L31", "4S0", "4S1"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["confusion", "yawn", "futuresight", "amnesia"]}, + {generation: 4, level: 50, shiny: 1, moves: ["swift", "yawn", "futuresight", "amnesia"]}, + {generation: 5, level: 65, shiny: 1, moves: ["futuresight", "amnesia", "extrasensory", "flail"]}, + {generation: 6, level: 50, shiny: 1, moves: ["yawn", "futuresight", "amnesia", "extrasensory"]}, + {generation: 7, level: 60, shiny: 1, moves: ["extrasensory", "yawn", "amnesia", "swift"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "futuresight", "magicroom", "shadowball"]}, + ], + eventOnly: true, + }, + mesprit: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + allyswitch: ["9L1", "8M", "7T"], + batonpass: ["9M", "8M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L42", "8M", "8L42", "8S5", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + copycat: ["9L70", "8L70", "7L1", "6L1", "5L61", "5S2", "4L61"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M", "8M", "8S5"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["9L1", "8T"], + extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flash: ["6M", "5M", "4M"], + flatter: ["9L56", "8L56"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L63", "8M", "8L63", "7L36", "7S4", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healingwish: ["9L77", "8L77", "7L1", "6L1", "5L76", "4L76"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], + irontail: ["9L1", "8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + luckychant: ["7L31", "6L31", "6S3", "5L31", "4L31", "4S0", "4S1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["9L1", "8M", "7T", "6T", "5T"], + metronome: ["9M", "8M"], + mudslap: ["4T"], + mysticalpower: ["9L84"], + nastyplot: ["9M", "8M"], + naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + playrough: ["9M", "8M"], + poweruppunch: ["6M"], + protect: ["9M", "9L14", "8M", "8L14", "7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + psybeam: ["9M", "9L21", "8L21"], + psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], + psychocut: ["9L1", "8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["9L1", "8M", "7M", "6M", "5M"], + safeguard: ["9L1", "8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["9L1", "8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L7", "8M", "8L7", "7L21", "7S4", "6L21", "5L21", "4T", "4L21", "4S1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["9L1", "8M", "8S5"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + wonderroom: ["9L1", "8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["confusion", "luckychant", "futuresight", "charm"]}, + {generation: 4, level: 50, shiny: 1, moves: ["swift", "luckychant", "futuresight", "charm"]}, + {generation: 5, level: 50, shiny: 1, moves: ["futuresight", "charm", "extrasensory", "copycat"]}, + {generation: 6, level: 50, shiny: 1, moves: ["luckychant", "futuresight", "charm", "extrasensory"]}, + {generation: 7, level: 60, shiny: 1, moves: ["extrasensory", "charm", "futuresight", "swift"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "charm", "drainingkiss", "triattack"]}, + ], + eventOnly: true, + }, + azelf: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + allyswitch: ["9L1", "8M", "7T"], + assurance: ["9L1", "8M"], + batonpass: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + dazzlinggleam: ["9M", "8M", "8S5", "7M", "6M"], + detect: ["9L14", "8L14", "7L16", "6L16", "5L16", "4L16"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["9L1", "8T"], + explosion: ["9L77", "8L77", "7M", "7L76", "6M", "6L76", "5M", "5L76", "4M", "4L76"], + extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], + facade: ["9M", "8M", "8S5", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L63", "8M", "8L63", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], + incinerate: ["6M", "5M"], + irontail: ["9L1", "8M", "7T", "6T", "5T", "4M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["9L70", "8L70", "7T", "7L1", "6T", "6L1", "5T", "5L61", "5S2", "4T", "4L61"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["9L1", "8M", "7T", "6T", "5T"], + metronome: ["9M", "8M"], + mudslap: ["9M", "4T"], + mysticalpower: ["9L84"], + nastyplot: ["9M", "9L42", "8M", "8L42", "8S5", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], + naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + payback: ["9L1", "8M", "7M", "6M", "5M", "4M"], + playrough: ["9M", "8M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9L21", "8L21"], + psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], + psychocut: ["9L1", "8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["9L1", "8M", "7M", "6M", "5M"], + safeguard: ["9L1", "8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + selfdestruct: ["9L1", "8M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["9L1", "8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L7", "8M", "8L7", "7L21", "7S4", "6L21", "5L21", "4T", "4L21", "4S1"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["9L1", "8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["9M", "9L56", "8M", "8L56", "7T", "7L31", "7S4", "6T", "6L31", "6S3", "5T", "5L31", "4T", "4L31", "4S0", "4S1"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + wonderroom: ["9L1", "8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["confusion", "uproar", "futuresight", "nastyplot"]}, + {generation: 4, level: 50, shiny: 1, moves: ["swift", "uproar", "futuresight", "nastyplot"]}, + {generation: 5, level: 50, shiny: 1, moves: ["futuresight", "nastyplot", "extrasensory", "lastresort"]}, + {generation: 6, level: 50, shiny: 1, moves: ["uproar", "futuresight", "nastyplot", "extrasensory"]}, + {generation: 7, level: 60, shiny: 1, moves: ["extrasensory", "nastyplot", "uproar", "swift"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "dazzlinggleam", "nastyplot", "facade"]}, + ], + eventOnly: true, + }, + dialga: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + ancientpower: ["9L16", "8L16", "8S11", "7L10", "6L10", "5L10", "4T", "4L10", "4S0"], + aurasphere: ["9M", "9L48", "8M", "8L48", "7L37", "7S7", "7S8", "7S9", "7S10", "6L37", "6S5", "5L37", "5S4", "4L37"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "9S13", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], + dragonbreath: ["9L8", "8L8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + dragonclaw: ["9M", "9L40", "8M", "8L40", "8S11", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28", "4S0"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "5S4", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "9L72", "9S13", "8M", "8L72", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33", "4S1"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "9S13", "8M", "7M", "6M", "5M", "4M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "9L32", "8M", "8L32", "8S12", "8S11", "7M", "7L50", "7S7", "7S8", "7S9", "7S10", "6M", "6L50", "6S5", "6S6", "5M", "5L50", "4M", "4L42"], + focusblast: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + healblock: ["4L50", "4S1"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["9L80", "8M", "8L80", "7T", "7L42", "7S7", "7S8", "6T", "6L42", "6S5", "5T", "5L42", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["9L64", "8L64", "8S12", "7L24", "6L24", "6S6", "5L24", "4L24"], + metalclaw: ["9M", "9L1", "8L1", "7L6", "6L6", "5L6", "4L6", "4S0"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + overheat: ["9M", "8M", "8S12", "7M", "6M", "6S6", "5M", "4M"], + powergem: ["9M", "9L56", "8M", "8L56", "7L19", "6L19", "5L19", "4L19"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + roaroftime: ["9L88", "8L88", "8S12", "7L46", "7S7", "7S8", "7S9", "7S10", "6L46", "6S5", "6S6", "5L46", "5S4", "4L40", "4S0", "4S1"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["9L24", "8L24", "8S11", "7L15", "6L15", "5L15", "4L15", "4S1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "9S13", "8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + }, + eventData: [ + {generation: 4, level: 47, shiny: 1, moves: ["metalclaw", "ancientpower", "dragonclaw", "roaroftime"]}, + {generation: 4, level: 70, shiny: 1, moves: ["roaroftime", "healblock", "earthpower", "slash"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dragonbreath", "scaryface"]}, + {generation: 5, level: 5, isHidden: true, moves: ["dragonbreath", "scaryface"], pokeball: "dreamball"}, + {generation: 5, level: 100, shiny: true, moves: ["dragonpulse", "dracometeor", "aurasphere", "roaroftime"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["aurasphere", "irontail", "roaroftime", "flashcannon"]}, + {generation: 6, level: 100, nature: "Modest", isHidden: true, moves: ["metalburst", "overheat", "roaroftime", "flashcannon"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["aurasphere", "irontail", "roaroftime", "flashcannon"]}, + {generation: 7, level: 60, moves: ["aurasphere", "irontail", "roaroftime", "flashcannon"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["roaroftime", "aurasphere", "dracometeor", "flashcannon"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["flashcannon", "dracometeor", "roaroftime", "aurasphere"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["slash", "ancientpower", "flashcannon", "dragonclaw"]}, + {generation: 8, level: 70, nature: "Bold", isHidden: true, moves: ["roaroftime", "flashcannon", "metalburst", "overheat"], pokeball: "cherishball"}, + {generation: 9, level: 75, nature: "Quiet", isHidden: true, perfectIVs: 4, moves: ["dracometeor", "earthpower", "fireblast", "steelbeam"]}, + ], + eventOnly: true, + }, + dialgaorigin: { + eventOnly: true, + }, + palkia: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + ancientpower: ["9L16", "8L16", "8S11", "7L10", "6L10", "5L10", "4T", "4L10", "4S0"], + aquaring: ["9L32", "8L32", "7L24"], + aquatail: ["9L64", "8L64", "7T", "7L24", "7S7", "7S8", "6T", "6L24", "5T", "5L24", "4T", "4L24"], + aurasphere: ["9M", "9L48", "8M", "8L48", "8S12", "7L37", "7S7", "7S8", "7S9", "7S10", "6L37", "6S5", "6S6", "5L37", "5S4", "4L37"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + brine: ["8M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "9S13", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], + dragonbreath: ["9L8", "8L8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + dragonclaw: ["9M", "8M", "8L40", "8S11", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28", "4S0"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "9L72", "8M", "8L72", "8S12", "7T", "7L33", "6T", "6L33", "6S5", "6S6", "5T", "5L33", "4T", "4L33", "4S1"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "9S13", "8M", "7M", "6M", "5M", "4M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healblock: ["4L50", "4S1"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "9L88", "9S13", "8M", "8L88", "8S12", "7L50", "7S7", "7S8", "7S9", "7S10", "6L50", "6S5", "6S6", "5L50", "5S4", "4L42"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icywind: ["9M"], + incinerate: ["6M", "5M"], + liquidation: ["9M", "8M", "7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + powergem: ["9M", "9L56", "8M", "8L56", "7L19", "6L19", "5L19", "4L19"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["9L24", "8L24", "8S11", "7L15", "6L15", "5L15", "4L15", "4S1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spacialrend: ["9L80", "8L80", "8S12", "7L46", "7S7", "7S8", "7S9", "7S10", "6L46", "6S5", "6S6", "5L46", "5S4", "4L40", "4S0", "4S1"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "8S11", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "9S13", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + waterfall: ["9M"], + waterpulse: ["9M", "9L1", "8L1", "7T", "7L6", "6T", "6L6", "5L6", "4M", "4L6", "4S0"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 4, level: 47, shiny: 1, moves: ["waterpulse", "ancientpower", "dragonclaw", "spacialrend"]}, + {generation: 4, level: 70, shiny: 1, moves: ["spacialrend", "healblock", "earthpower", "slash"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dragonbreath", "scaryface"]}, + {generation: 5, level: 5, isHidden: true, moves: ["dragonbreath", "scaryface"], pokeball: "dreamball"}, + {generation: 5, level: 100, shiny: true, moves: ["hydropump", "dracometeor", "spacialrend", "aurasphere"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["earthpower", "aurasphere", "spacialrend", "hydropump"]}, + {generation: 6, level: 100, nature: "Timid", isHidden: true, moves: ["earthpower", "aurasphere", "spacialrend", "hydropump"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["aurasphere", "aquatail", "spacialrend", "hydropump"]}, + {generation: 7, level: 60, moves: ["aurasphere", "aquatail", "spacialrend", "hydropump"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["spacialrend", "aurasphere", "dracometeor", "hydropump"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["hydropump", "dracometeor", "spacialrend", "aurasphere"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["slash", "surf", "ancientpower", "dragonclaw"]}, + {generation: 8, level: 70, nature: "Hasty", isHidden: true, moves: ["spacialrend", "hydropump", "aurasphere", "earthpower"], pokeball: "cherishball"}, + {generation: 9, level: 75, nature: "Modest", isHidden: true, perfectIVs: 4, moves: ["dracometeor", "thunder", "fireblast", "hydropump"]}, + ], + eventOnly: true, + }, + palkiaorigin: { + eventOnly: true, + }, + heatran: { + learnset: { + ancientpower: ["9L12", "8L12", "7L1", "6L1", "5L1", "4T", "4L1", "4S2"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bugbite: ["7T", "6T", "5T", "4T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L36", "8M", "8L36", "8S8", "7L33", "7S5", "7S6", "6L33", "6S4", "5L33", "4L33", "4S1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + earthpower: ["9M", "9L54", "8M", "8L54", "7T", "7L1", "7S7", "6T", "6L1", "5T", "5L73", "4T", "4L73", "4S2"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + eruption: ["4S2"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M", "9L18", "8M", "8L18", "7L17", "6L17", "5L17", "4L17"], + firespin: ["9M", "9L1", "8M", "8L1", "7L1", "7S5", "7S6", "6L1", "5L57", "5S3", "4L57", "4S0"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + flareblitz: ["9M"], + flashcannon: ["9M", "8M", "7M", "7S7", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "9L60", "8M", "8L60", "7T", "7L1", "7S7", "6T", "6L1", "5T", "5L81", "4T", "4L81"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "9L30", "8M", "8L30", "8S8", "7T", "7L1", "6T", "6L1", "5T", "5L65", "5S3", "4T", "4L65", "4S0"], + lavaplume: ["9L42", "8L42", "8S8", "7L49", "7S5", "7S6", "6L49", "6S4", "5L49", "5S3", "4L49", "4S0", "4S1"], + leer: ["9L1", "8L1", "7L9", "6L9", "5L9", "4L9"], + lunge: ["9M"], + magmastorm: ["9L72", "8L72", "7L1", "7S7", "6L1", "5L96", "4L96", "4S2"], + metalclaw: ["9M", "9L6", "8L6"], + metalsound: ["9L48", "8L48", "8S8", "7L25", "6L25", "6S4", "5L25", "4L25", "4S1"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pounce: ["9M"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L24", "8M", "8L24", "7L41", "7S5", "7S6", "6L41", "6S4", "5L41", "5S3", "4L41", "4S0", "4S1"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L66", "8M", "8L66", "7M", "7L88", "6M", "6L88", "5M", "5L88", "4M", "4L88"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 70, shiny: 1, moves: ["scaryface", "lavaplume", "firespin", "ironhead"]}, + {generation: 4, level: 50, shiny: 1, moves: ["metalsound", "crunch", "scaryface", "lavaplume"]}, + {generation: 4, level: 50, gender: "M", nature: "Quiet", moves: ["eruption", "magmastorm", "earthpower", "ancientpower"], pokeball: "pokeball"}, + {generation: 5, level: 68, shiny: 1, moves: ["scaryface", "lavaplume", "firespin", "ironhead"]}, + {generation: 6, level: 50, shiny: 1, moves: ["metalsound", "crunch", "scaryface", "lavaplume"]}, + {generation: 7, level: 60, shiny: 1, moves: ["crunch", "scaryface", "lavaplume", "firespin"]}, + {generation: 7, level: 60, moves: ["crunch", "scaryface", "lavaplume", "firespin"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["magmastorm", "heatwave", "earthpower", "flashcannon"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["metalsound", "lavaplume", "crunch", "ironhead"]}, + ], + eventOnly: true, + }, + regigigas: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + ancientpower: ["4T"], + avalanche: ["8M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M", "8L42"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L1", "7S5", "7S6", "6L1", "5L1", "4L1", "4S0", "4S1"], + crushgrip: ["8L78", "8S8", "7L1", "7S7", "6L1", "5L75", "4L75", "4S2"], + darkestlariat: ["8M"], + dizzypunch: ["7L1", "7S5", "7S6", "6L1", "5L1", "4L1", "4S1"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "7S7", "6T", "5T", "4M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foresight: ["7L1", "6L1", "6S4", "5L1", "4L1", "4S1"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "8L72", "8S8", "7M", "7L100", "6M", "6L100", "5M", "5L100", "4M", "4L100"], + gravity: ["7T", "6T", "5T", "4T"], + hammerarm: ["8L66", "8S8"], + headbutt: ["4T"], + heatcrash: ["8M"], + heavyslam: ["8M", "8L60", "7L1", "7S7", "6L1", "5L90"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + icywind: ["8M", "7T", "6T", "5T", "4T", "4S2"], + ironhead: ["8M", "7T", "6T", "5T", "4T", "4S2"], + knockoff: ["8L30", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "4S1"], + megakick: ["8M"], + megapunch: ["8M", "8L36", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["8M", "8L6", "7M", "7L65", "6M", "6L65", "5M", "5L65", "5S3"], + pound: ["8L1"], + poweruppunch: ["6M"], + protect: ["8M", "8L24"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L12", "7L25", "7S5", "7S6", "6L25", "6S4", "5L25", "5S3", "4L25"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4S2"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stomp: ["8L18", "4L1", "4S0"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T", "4L25", "4S0"], + swagger: ["7M", "6M", "5M", "4M"], + terrainpulse: ["8T"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + wideguard: ["8L48", "7L40", "6L40", "6S4", "5L40", "5S3"], + zenheadbutt: ["8M", "8L54", "8S8", "7T", "7L50", "7S5", "7S6", "7S7", "6T", "6L50", "6S4", "5T", "5L50", "5S3", "4T", "4L50", "4S0"], + }, + eventData: [ + {generation: 4, level: 70, shiny: 1, moves: ["confuseray", "stomp", "superpower", "zenheadbutt"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dizzypunch", "knockoff", "foresight", "confuseray"]}, + {generation: 4, level: 100, moves: ["ironhead", "rockslide", "icywind", "crushgrip"], pokeball: "cherishball"}, + {generation: 5, level: 68, shiny: 1, moves: ["revenge", "wideguard", "zenheadbutt", "payback"]}, + {generation: 6, level: 50, shiny: 1, moves: ["foresight", "revenge", "wideguard", "zenheadbutt"]}, + {generation: 7, level: 60, shiny: 1, moves: ["zenheadbutt", "revenge", "dizzypunch", "confuseray"]}, + {generation: 7, level: 60, moves: ["zenheadbutt", "revenge", "dizzypunch", "confuseray"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["crushgrip", "drainpunch", "zenheadbutt", "heavyslam"], pokeball: "cherishball"}, + {generation: 8, level: 100, shiny: 1, moves: ["gigaimpact", "zenheadbutt", "hammerarm", "crushgrip"]}, + ], + eventOnly: true, + }, + giratina: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + aircutter: ["4T"], + ancientpower: ["9L14", "8L14", "8S8", "7L10", "6L10", "5L10", "4T", "4L10", "4S1"], + aquatail: ["7T", "6T", "5T", "4T"], + aurasphere: ["9M", "9L56", "8M", "8L56", "7L37", "7S7", "6L37", "6S5", "6S6", "5L37", "5S4", "4L37"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["9L1", "8L1", "7T", "4M"], + destinybond: ["9L84", "8L84", "7L24", "6L24", "5L24", "4L24"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "6S6", "5T", "4T"], + dragonbreath: ["9L7", "8L7", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + dragonclaw: ["9M", "9L63", "8M", "8L63", "8S8", "7M", "7L28", "7S7", "6M", "6L28", "5M", "5L28", "5S4", "4M", "4L28", "4S1"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "5S4", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "9L70", "8M", "8L70", "7T", "7L33", "7S7", "6T", "6L33", "5T", "5L33", "4T", "4L33", "4S0"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + healblock: ["4L50", "4S0"], + hex: ["9M", "9L21", "8M", "8L21", "7L50", "6L50", "6S5", "5L50"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "6S6", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["7L6", "6L6", "5L6", "4T", "4L6", "4S1"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + painsplit: ["9L49", "8L49", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + phantomforce: ["9M", "8M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["9M", "9L35", "8M", "8L35", "8S8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "8S8", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L42", "6M", "6L42", "6S5", "5M", "5L42", "4M", "4L42"], + shadowforce: ["9L77", "8L77", "7L46", "7S7", "6L46", "6S5", "6S6", "5L46", "5S4", "4L40", "4S0", "4S1"], + shadowsneak: ["9L1", "8L1", "7L19", "6L19", "5L19", "4L19"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["4M"], + slash: ["9L28", "8L28", "7L15", "6L15", "5L15", "4L15", "4S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + steelwing: ["8M", "7M", "6M", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 70, shiny: 1, moves: ["shadowforce", "healblock", "earthpower", "slash"]}, + {generation: 4, level: 47, shiny: 1, moves: ["ominouswind", "ancientpower", "dragonclaw", "shadowforce"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dragonbreath", "scaryface"]}, + {generation: 5, level: 5, isHidden: true, moves: ["dragonbreath", "scaryface"], pokeball: "dreamball"}, + {generation: 5, level: 100, shiny: true, moves: ["dragonpulse", "dragonclaw", "aurasphere", "shadowforce"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["aurasphere", "shadowclaw", "shadowforce", "hex"]}, + {generation: 6, level: 100, nature: "Brave", isHidden: true, moves: ["aurasphere", "dracometeor", "shadowforce", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["shadowforce", "aurasphere", "earthpower", "dragonclaw"]}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonclaw", "scaryface", "shadowball", "ancientpower"]}, + ], + eventOnly: true, + }, + giratinaorigin: { + eventOnly: true, + }, + cresselia: { + learnset: { + allyswitch: ["9L24", "8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurorabeam: ["9L12", "8L12", "7L29", "7S4", "6L29", "6S3", "5L29", "4L29", "4S0"], + bodyslam: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + dazzlinggleam: ["9M"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + dreameater: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "5S2", "4M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + futuresight: ["9L66", "8M", "8L66", "7L38", "7S4", "6L38", "6S3", "5L38", "5S1", "4L38", "4S0"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9M", "7T", "6T", "5T", "4T"], + guardswap: ["8M"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "5S2", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S2", "4M"], + icywind: ["9M", "8M", "8S5", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + lunarblessing: ["9L72"], + lunardance: ["9L72", "8L72", "7L1", "6L1", "5L84", "4L84"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mist: ["9L6", "8L6", "7L20", "6L20", "6S3", "5L20", "4L20", "4S0"], + moonblast: ["9L60", "8L60", "8S5", "7L99", "6L99"], + moonlight: ["9L42", "8L42", "7L1", "7S4", "6L1", "5L57", "5S1", "4L57"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + powergem: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L54", "8M", "8L54", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93"], + psychicterrain: ["9M"], + psychocut: ["9L36", "8M", "8L36", "8S5", "7L1", "6L1", "5L66", "5S1", "4L66"], + psychoshift: ["8L24", "7L1", "6L1", "5L75", "4L75"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "8S5", "7M", "6M", "5M", "5S2"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L48", "8M", "8L48", "7M", "7L11", "6M", "6L11", "5M", "5L11", "4M", "4L11"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + slash: ["9L30", "8L30", "7L47", "7S4", "6L47", "6S3", "5L47", "5S1", "4L47", "4S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["mist", "aurorabeam", "futuresight", "slash"]}, + {generation: 5, level: 68, shiny: 1, moves: ["futuresight", "slash", "moonlight", "psychocut"]}, + {generation: 5, level: 68, nature: "Modest", moves: ["icebeam", "psyshock", "energyball", "hiddenpower"]}, + {generation: 6, level: 50, shiny: 1, moves: ["mist", "aurorabeam", "futuresight", "slash"]}, + {generation: 7, level: 60, shiny: 1, moves: ["aurorabeam", "futuresight", "slash", "moonlight"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icywind", "moonblast", "psychocut", "psyshock"]}, + ], + eventOnly: true, + }, + phione: { + learnset: { + acidarmor: ["9L31", "7L31", "6L31", "5L31", "4L31"], + ancientpower: ["4T"], + aquaring: ["9L54", "7L54", "6L54", "5L54", "4L54"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["4M"], + bubble: ["7L1", "6L1", "5L1", "4L1"], + bubblebeam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "4L9"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + dive: ["9L61", "7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M", "4S0"], + hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + liquidation: ["9M", "7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "9L69", "7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69", "4S0"], + rest: ["9M", "7M", "6M", "5M", "4M", "4S0"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + scald: ["9M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9L16", "7L16", "6L16", "5L16", "4L16"], + surf: ["9M", "7M", "6M", "5M", "4M", "4S0"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + takeheart: ["9L75"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L46", "7T", "7L46", "6T", "6L46", "5L46", "4M", "4L46"], + watersport: ["7L1", "6L1", "5L1", "4L1"], + weatherball: ["9M"], + whirlpool: ["9L39", "7L39", "6L39", "5L39", "4M", "4L39"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 4, level: 50, moves: ["grassknot", "raindance", "rest", "surf"], pokeball: "cherishball"}, + ], + }, + manaphy: { + learnset: { + acidarmor: ["9L31", "7L31", "6L31", "5L31", "4L31", "4S2"], + ancientpower: ["4T"], + aquaring: ["9L54", "7L54", "7S6", "6L54", "5L54", "4L54", "4S3"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["4M"], + bubble: ["7L1", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1"], + bubblebeam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "4L9"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + dive: ["9L61", "7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M"], + haze: ["9M"], + healbell: ["7T", "6T", "5T", "4T"], + heartswap: ["9L1", "7L76", "7S6", "6L76", "6S4", "5L76", "4L76", "4S2", "4S3"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "7T"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "9L69", "7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + scald: ["9M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + supersonic: ["9L16", "7L16", "6L16", "5L16", "4L16"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tailglow: ["9L1", "7L1", "7S6", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1"], + takeheart: ["9L76"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L46", "7T", "7L46", "7S6", "6T", "6L46", "5L46", "4M", "4L46", "4S2", "4S3"], + watersport: ["7L1", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1", "4S3"], + weatherball: ["9M"], + whirlpool: ["9L39", "7L39", "6L39", "5L39", "4M", "4L39", "4S2"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 4, level: 5, moves: ["tailglow", "bubble", "watersport"]}, + {generation: 4, level: 1, shiny: 1, moves: ["tailglow", "bubble", "watersport"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["heartswap", "waterpulse", "whirlpool", "acidarmor"], pokeball: "cherishball"}, + {generation: 4, level: 50, nature: "Impish", moves: ["aquaring", "waterpulse", "watersport", "heartswap"], pokeball: "cherishball"}, + {generation: 6, level: 1, moves: ["tailglow", "bubble", "watersport", "heartswap"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["tailglow", "bubble", "watersport"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["tailglow", "waterpulse", "aquaring", "heartswap"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + darkrai: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "9L93", "9S8", "7M", "7L93", "6M", "6L93", "6S5", "5T", "5L93", "4M", "4L93", "4S2"], + darkvoid: ["9L66", "7L66", "7S7", "6L66", "6S5", "6S6", "5L66", "5S4", "4L66", "4S2"], + disable: ["9L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["9L47", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L47", "4S2", "4S3"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["9L84", "9S8", "7M", "7L84", "6M", "6L84", "6S5", "5M", "5L84", "4M", "4L84"], + embargo: ["7M", "6M", "5M", "4M", "4L75"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + feintattack: ["7L29", "7S7", "6L29", "6S6", "5L29", "5S4", "4L29", "4S3"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + haze: ["9M", "9L57", "7L57", "6L57", "5L57", "4L57"], + headbutt: ["4T"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypnosis: ["9L20", "9S8", "7L20", "6L20", "5L20", "4L20", "4S0", "4S1", "4S3"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M"], + lastresort: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + nastyplot: ["9M", "9L75", "7L75", "6L75", "5L75", "4L75"], + naturalgift: ["4M"], + nightmare: ["7L38", "7S7", "6L38", "6S6", "5L38", "5S4", "4L38", "4S0", "4S1", "4S3"], + nightshade: ["9M", "9L38", "4L1"], + ominouswind: ["7L1", "7S7", "6L1", "6S6", "5L1", "5S4", "4T", "4L1"], + payback: ["7M", "6M", "5M", "4M"], + phantomforce: ["6S5"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M"], + pursuit: ["4L29", "4S0"], + quickattack: ["9L11", "7L11", "6L11", "5L11", "4L11", "4S0"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roaroftime: ["4S1"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "9S8", "7M", "6M", "5M", "4M", "4S2"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + spacialrend: ["4S1"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L29", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + wonderroom: ["7T", "6T", "5T"], + xscissor: ["9M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 40, shiny: 1, moves: ["quickattack", "hypnosis", "pursuit", "nightmare"]}, + {generation: 4, level: 50, moves: ["roaroftime", "spacialrend", "nightmare", "hypnosis"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["darkvoid", "darkpulse", "shadowball", "doubleteam"], pokeball: "pokeball"}, + {generation: 4, level: 50, shiny: 1, moves: ["hypnosis", "feintattack", "nightmare", "doubleteam"]}, + {generation: 5, level: 50, moves: ["darkvoid", "ominouswind", "feintattack", "nightmare"], pokeball: "cherishball"}, + {generation: 6, level: 50, moves: ["darkvoid", "darkpulse", "phantomforce", "dreameater"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["darkvoid", "ominouswind", "nightmare", "feintattack"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["darkvoid", "feintattack", "nightmare", "ominouswind"], pokeball: "cherishball"}, + {generation: 9, level: 50, moves: ["darkpulse", "shadowball", "hypnosis", "dreameater"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + shaymin: { + learnset: { + aircutter: ["9M", "4T"], + airslash: ["9M", "9L64", "7L64", "6L64", "6S3", "5L64", "4L64"], + aromatherapy: ["7L64", "6L64", "6S4", "5L64", "4L64", "4S0"], + batonpass: ["9M"], + bulletseed: ["9M", "4M"], + celebrate: ["7S5"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["4L1"], + disarmingvoice: ["9M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + energyball: ["9M", "9L73", "7M", "7L73", "6M", "6L73", "6S4", "5M", "5L73", "4M", "4L73", "4S0"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasswhistle: ["4L82"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9L64"], + growth: ["9L1", "7L1", "7S5", "6L1", "6S3", "5L1", "4L1", "4S1"], + headbutt: ["4T"], + healingwish: ["9L91", "7L91", "6L91", "5L91", "4L91"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafstorm: ["9M", "9L91", "7L91", "6L91", "5L91", "4L91"], + leechseed: ["9L19", "7L19", "6L19", "5L19", "5S2", "4L19", "4S1"], + luckychant: ["4L91"], + magicalleaf: ["9M", "9L10", "7L10", "6L10", "6S3", "5L10", "4L10", "4S1"], + mudslap: ["4T"], + naturalgift: ["7L46", "6L46", "5L46", "4M", "4L46"], + naturepower: ["7M", "6M"], + ominouswind: ["4T"], + playrough: ["9M", "9L46"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + quickattack: ["9L28", "7L28", "6L28", "5L28", "4L28"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "7S5", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seedflare: ["9L100", "7L100", "7S5", "6L100", "6S3", "6S4", "5L100", "5S2", "4L100", "4S0"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "6S4", "5M", "4M", "4S0"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["9L82", "7L82", "6L82", "5L82", "4L82"], + sweetscent: ["9L37", "7L37", "6L37", "5L37", "5S2", "4L37"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + synthesis: ["9L28", "7T", "7L28", "6T", "6L28", "5T", "5L28", "5S2", "4T", "4L28", "4S1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + worryseed: ["9L55", "7T", "7L55", "6T", "6L55", "5T", "5L55", "4T", "4L55"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, moves: ["seedflare", "aromatherapy", "substitute", "energyball"], pokeball: "cherishball"}, + {generation: 4, level: 30, shiny: 1, moves: ["growth", "magicalleaf", "leechseed", "synthesis"], pokeball: "pokeball"}, + {generation: 5, level: 50, moves: ["seedflare", "leechseed", "synthesis", "sweetscent"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["growth", "magicalleaf", "seedflare", "airslash"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["seedflare", "aromatherapy", "substitute", "energyball"], pokeball: "cherishball"}, + {generation: 7, level: 20, moves: ["return", "growth", "seedflare", "celebrate"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + shayminsky: { + eventOnly: true, + }, + arceus: { + learnset: { + acidspray: ["9M"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["9M"], + airslash: ["9M"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + aurasphere: ["9M"], + avalanche: ["9M", "4M"], + blastburn: ["6S2"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["4M"], + bugbuzz: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "4M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cosmicpower: ["9L1", "7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M"], + defog: ["7T", "4M"], + dive: ["6M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "7T", "6T", "5T", "4T"], + dragonclaw: ["9M", "7M", "6M", "5M", "4M"], + dragondance: ["9M"], + dragonpulse: ["9M", "7T", "6T", "5T", "4M"], + dragontail: ["9M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "9L20", "7T", "7L20", "6T", "6L20", "6S2", "5T", "5L20", "4T", "4L20"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + electricterrain: ["9M"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + extremespeed: ["9L40", "7L40", "7S4", "6L40", "5L40", "4L40"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flareblitz: ["9M"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + fly: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + foulplay: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + futuresight: ["9L60", "7L60", "6L60", "5L60", "4L60"], + gigadrain: ["9M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + gravity: ["9M", "9L10", "7T", "7L10", "6T", "6L10", "5T", "5L10", "4T", "4L10"], + gunkshot: ["9M"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healingwish: ["9L50"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + heavyslam: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M"], + hydrocannon: ["6S2"], + hydropump: ["9M"], + hyperbeam: ["9M", "9L80", "7M", "7L80", "7S4", "6M", "6L80", "6S3", "5M", "5L80", "5S1", "4M", "4L80"], + hypervoice: ["9M", "9L30", "7T", "7L30", "6T", "6L30", "5T", "5L30", "4L30"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + judgment: ["9L100", "7L100", "7S4", "6L100", "6S2", "6S3", "5L100", "5S1", "4L100", "4S0"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "7T"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mistyterrain: ["9M"], + mudslap: ["4T"], + naturalgift: ["7L1", "6L1", "5L1", "4M", "4L1"], + ominouswind: ["4T"], + outrage: ["9M", "7T", "6T", "5T", "4T"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + payback: ["7M", "6M", "5M", "4M"], + perishsong: ["9L90", "7L90", "6L90", "6S3", "5L90", "5S1", "4L90"], + phantomforce: ["9M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powergem: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "7M", "6M", "5M"], + punishment: ["7L1", "6L1", "5L1", "4L1"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + recover: ["9L70", "7L70", "7S4", "6L70", "6S3", "5L70", "5S1", "4L70"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + refresh: ["7L50", "6L50", "5L50", "4L50"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + roaroftime: ["4S0"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + seismictoss: ["9L1", "7L1", "6L1", "5L1", "4L1"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shadowforce: ["4S0"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M"], + snarl: ["9M", "7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + spacialrend: ["4S0"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + whirlpool: ["4M"], + wildcharge: ["9M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + xscissor: ["9M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 100, moves: ["judgment", "roaroftime", "spacialrend", "shadowforce"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["recover", "hyperbeam", "perishsong", "judgment"]}, + {generation: 6, level: 100, shiny: 1, moves: ["judgment", "blastburn", "hydrocannon", "earthpower"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["judgment", "perishsong", "hyperbeam", "recover"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["judgment", "extremespeed", "recover", "hyperbeam"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + arceusbug: { + eventOnly: true, + }, + arceusdark: { + eventOnly: true, + }, + arceusdragon: { + eventOnly: true, + }, + arceuselectric: { + eventOnly: true, + }, + arceusfairy: { + eventOnly: true, + }, + arceusfighting: { + eventOnly: true, + }, + arceusfire: { + eventOnly: true, + }, + arceusflying: { + eventOnly: true, + }, + arceusghost: { + eventOnly: true, + }, + arceusgrass: { + eventOnly: true, + }, + arceusground: { + eventOnly: true, + }, + arceusice: { + eventOnly: true, + }, + arceuspoison: { + eventOnly: true, + }, + arceuspsychic: { + eventOnly: true, + }, + arceusrock: { + eventOnly: true, + }, + arceussteel: { + eventOnly: true, + }, + arceuswater: { + eventOnly: true, + }, + victini: { + learnset: { + batonpass: ["8M"], + blazekick: ["8M"], + blueflare: ["5S2"], + boltstrike: ["5S2"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + celebrate: ["7S6"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "6S3", "6S4", "5L1", "5S0"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleedge: ["8L70", "7L65", "6L65", "5L65"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "8L35", "7L9", "6L9", "6S4", "5L9", "5S0"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + finalgambit: ["8L91", "7L81", "6L81", "5L81"], + fireblast: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + firespin: ["8M"], + flameburst: ["7L41", "6L41", "5L41"], + flamecharge: ["8L1", "8S7", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + flamethrower: ["8M", "7M", "6M", "5M"], + flareblitz: ["8M", "8L77", "7L73", "6L73", "5L73"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "5M"], + fusionbolt: ["5S1"], + fusionflare: ["5S1"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + glaciate: ["5S2"], + grassknot: ["8M", "7M", "6M", "5M"], + guardswap: ["8M"], + headbutt: ["8L28", "7L17", "6L17", "5L17"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + incinerate: ["8L14", "7L1", "6M", "6L1", "6S4", "5M", "5L1", "5S0"], + inferno: ["8L49", "7L57", "6L57", "5L57"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + mysticalfire: ["8M"], + overheat: ["8M", "8L84", "7M", "7L97", "6M", "6L97", "5M", "5L97"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "6S3", "6S4", "6S5", "5L1", "5S0"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L56", "7L33", "7S6", "6L33", "5L33"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + searingshot: ["8L63", "7L1", "6L1", "6S3", "5L1", "5S1"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + speedswap: ["8M"], + storedpower: ["8M", "8L21", "7L89", "7S6", "6L89", "5L89"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "6S5", "5M"], + swift: ["8M"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + vcreate: ["8L1", "8S7", "7S6", "6S3", "6S5", "5S1", "5S2"], + wildcharge: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L7", "8S7", "7M", "5M"], + zenheadbutt: ["8M", "8L42", "8S7", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["quickattack", "incinerate", "confusion", "endure"]}, + {generation: 5, level: 50, moves: ["vcreate", "fusionflare", "fusionbolt", "searingshot"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["vcreate", "blueflare", "boltstrike", "glaciate"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["confusion", "quickattack", "vcreate", "searingshot"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["incinerate", "quickattack", "endure", "confusion"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["quickattack", "swagger", "vcreate"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["vcreate", "reversal", "storedpower", "celebrate"], pokeball: "cherishball"}, + {generation: 8, level: 50, nature: "Brave", perfectIVs: 6, moves: ["vcreate", "zenheadbutt", "workup", "flamecharge"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + snivy: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + aromatherapy: ["5S0"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + calmmind: ["7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + coil: ["7L31", "6L31", "5L31"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + energyball: ["7M", "6M", "5M", "5S0"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], + gigadrain: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], + glare: ["7E", "6E", "5E"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T", "6T", "5T"], + grassyterrain: ["7E", "6E"], + growth: ["7L13", "6L13", "5L13", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["7T", "6T", "5T"], + leafblade: ["7L28", "6L28", "5L28"], + leafstorm: ["7L43", "6L43", "5L43"], + leaftornado: ["7L16", "6L16", "5L16"], + leechseed: ["7L19", "6L19", "5L19"], + leer: ["7L4", "6L4", "5L4"], + lightscreen: ["7M", "6M", "5M"], + magicalleaf: ["7E", "6E", "5E"], + meanlook: ["7E", "6E", "5E"], + megadrain: ["7L22", "6L22", "5L22"], + mirrorcoat: ["7E", "6E", "5E"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["7M", "6M"], + protect: ["7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + slam: ["7L25", "6L25", "5L25"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["7E", "6E", "5E"], + swordsdance: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T", "5S0"], + tackle: ["7L1", "6L1", "5L1"], + taunt: ["7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + twister: ["7E", "6E", "5E"], + vinewhip: ["7L7", "6L7", "5L7"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T"], + wrap: ["7L10", "6L10", "5L10"], + wringout: ["7L37", "6L37", "5L37"], + }, + eventData: [ + {generation: 5, level: 5, gender: "M", nature: "Hardy", moves: ["growth", "synthesis", "energyball", "aromatherapy"], pokeball: "cherishball"}, + ], + }, + servine: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + calmmind: ["7M", "6M", "5M"], + coil: ["7L36", "6L36", "5L36"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7L48", "6T", "6L48", "5T", "5L48"], + gigadrain: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T", "6T", "5T"], + growth: ["7L13", "6L13", "5L13"], + hiddenpower: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leafblade: ["7L32", "6L32", "5L32"], + leafstorm: ["7L52", "6L52", "5L52"], + leaftornado: ["7L16", "6L16", "5L16"], + leechseed: ["7L20", "6L20", "5L20"], + leer: ["7L1", "6L1", "5L1"], + lightscreen: ["7M", "6M", "5M"], + megadrain: ["7L24", "6L24", "5L24"], + naturepower: ["7M", "6M"], + protect: ["7M", "6M", "5M"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + slam: ["7L28", "6L28", "5L28"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["7L1", "6L1", "5L1"], + taunt: ["7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + vinewhip: ["7L1", "6L1", "5L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T"], + wrap: ["7L1", "6L1", "5L1"], + wringout: ["7L44", "6L44", "5L44"], + }, + }, + serperior: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + brutalswing: ["7M"], + calmmind: ["7M", "6M", "5M"], + coil: ["7L38", "6L38", "5L38"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dragonpulse: ["7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + frenzyplant: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7L56", "6T", "6L56", "5T", "5L56"], + gigadrain: ["7T", "7L44", "6T", "6L44", "6S1", "5T", "5L44", "5S0"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T", "6T", "5T"], + growth: ["7L13", "6L13", "5L13"], + hiddenpower: ["7M", "6M", "5M"], + holdback: ["6S1"], + hyperbeam: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leafblade: ["7L32", "6L32", "5L32"], + leafstorm: ["7L62", "6L62", "6S1", "5L62", "5S0"], + leaftornado: ["7L16", "6L16", "5L16"], + leechseed: ["7L20", "6L20", "5L20", "5S0"], + leer: ["7L1", "6L1", "5L1"], + lightscreen: ["7M", "6M", "5M"], + megadrain: ["7L24", "6L24", "5L24"], + naturepower: ["7M", "6M"], + outrage: ["7T", "6T", "5T"], + protect: ["7M", "6M", "5M"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + slam: ["7L28", "6L28", "5L28"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "5S0"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["7L1", "6L1", "5L1"], + taunt: ["7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + vinewhip: ["7L1", "6L1", "5L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T"], + wrap: ["7L1", "6L1", "5L1"], + wringout: ["7L50", "6L50", "6S1", "5L50"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["leafstorm", "substitute", "gigadrain", "leechseed"], pokeball: "cherishball"}, + {generation: 6, level: 50, isHidden: true, moves: ["leafstorm", "holdback", "wringout", "gigadrain"], pokeball: "cherishball"}, + ], + }, + tepig: { + learnset: { + assurance: ["7L31", "6L31", "5L31"], + attract: ["7M", "6M", "5M"], + bodyslam: ["7E", "6E", "5E"], + burnup: ["7E"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + curse: ["7E", "6E", "5E"], + defensecurl: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["7L7", "6L7", "5L7"], + endeavor: ["7T", "7E", "6T", "6E", "5T", "5E"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T", "6T", "5T"], + flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["7M", "7L33", "6M", "6L33", "5M", "5L33"], + flareblitz: ["7L43", "6L43", "5L43"], + frustration: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gyroball: ["7M", "6M", "5M"], + headsmash: ["7L37", "6L37", "5L37"], + heatcrash: ["7L27", "6L27", "5L27"], + heatwave: ["7T", "6T", "5T"], + heavyslam: ["7E", "6E", "5E"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + magnitude: ["7E", "6E", "5E"], + odorsleuth: ["7L9", "6L9", "5L9"], + overheat: ["7M", "6M", "5M"], + protect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + rollout: ["7L21", "6L21", "5L21"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E"], + smog: ["7L19", "6L19", "5L19"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + suckerpunch: ["7E", "6E"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "7E", "6T", "6E", "5T", "5E"], + swagger: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tailwhip: ["7L3", "6L3", "5L3"], + takedown: ["7L25", "6L25", "5L25"], + taunt: ["7M", "6M", "5M"], + thrash: ["7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M"], + yawn: ["7E", "6E", "5E"], + zenheadbutt: ["7T", "6T"], + }, + }, + pignite: { + learnset: { + armthrust: ["7L1", "6L17", "5L17"], + assurance: ["7L36", "6L36", "5L36"], + attract: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + bulldoze: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + defensecurl: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["7L1", "6L1", "5L1"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T", "6T", "5T"], + firepunch: ["7T", "6T", "5T"], + flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + flareblitz: ["7L52", "6L52", "5L52"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gyroball: ["7M", "6M", "5M"], + headsmash: ["7L44", "6L44", "5L44"], + heatcrash: ["7L31", "6L31", "5L31"], + heatwave: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + odorsleuth: ["7L1", "6L1", "5L1"], + overheat: ["7M", "6M", "5M"], + poisonjab: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "7L47", "6M", "6L47", "5M", "5L47"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + rollout: ["7L23", "6L23", "5L23"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["7M", "6M", "5T"], + smog: ["7L20", "6L20", "5L20"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tailwhip: ["7L1", "6L1", "5L1"], + takedown: ["7L28", "6L28", "5L28"], + taunt: ["7M", "6M", "5M"], + thunderpunch: ["7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T"], + }, + }, + emboar: { + learnset: { + armthrust: ["7L1", "6L17", "5L17"], + assurance: ["7L38", "6L38", "5L38"], + attract: ["7M", "6M", "5M"], + blastburn: ["7T", "6T", "5T"], + block: ["7T", "6T", "5T"], + brickbreak: ["7M", "6M", "5M"], + bulkup: ["7M", "6M", "5M"], + bulldoze: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + defensecurl: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["7L1", "6L1", "5L1"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T", "6T", "5T"], + firepunch: ["7T", "6T", "5T"], + flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["7M", "7L43", "6M", "6L43", "5M", "5L43"], + flareblitz: ["7L62", "6L62", "6S1", "5L62", "5S0"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gyroball: ["7M", "6M", "5M"], + hammerarm: ["7L1", "6L1", "5L1", "5S0"], + headsmash: ["7L50", "6L50", "6S1", "5L50", "5S0"], + heatcrash: ["7L31", "6L31", "5L31"], + heatwave: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + holdback: ["6S1"], + hyperbeam: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + odorsleuth: ["7L1", "6L1", "5L1"], + overheat: ["7M", "6M", "5M"], + poisonjab: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "7L55", "6M", "6L55", "5M", "5L55"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + rollout: ["7L23", "6L23", "5L23"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + smog: ["7L20", "6L20", "5L20"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tailwhip: ["7L1", "6L1", "5L1"], + takedown: ["7L28", "6L28", "6S1", "5L28"], + taunt: ["7M", "6M", "5M"], + thunderpunch: ["7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M", "5S0"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["flareblitz", "hammerarm", "wildcharge", "headsmash"], pokeball: "cherishball"}, + {generation: 6, level: 50, isHidden: true, moves: ["flareblitz", "holdback", "headsmash", "takedown"], pokeball: "cherishball"}, + ], + }, + oshawott: { + learnset: { + aerialace: ["9M", "9L25", "7M", "6M", "5M"], + airslash: ["9M", "9E", "7E", "6E", "5E"], + aquacutter: ["9E"], + aquajet: ["9L29", "7L29", "6L29", "5L29"], + aquatail: ["9L35", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + assurance: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + avalanche: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + brine: ["7E", "6E", "5E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9E", "7E", "6E", "5E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + detect: ["9E", "7E", "6E", "5E"], + dig: ["9M", "6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + encore: ["9M", "9L31", "7L31", "6L31", "5L31"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "7M", "6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], + focusenergy: ["9L13", "7L13", "6L13", "5L13"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L19", "7L19", "6L19", "5L19"], + grassknot: ["9M", "7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "9L43", "7L43", "6L43", "5L43"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["9M", "9E"], + liquidation: ["9M"], + nightslash: ["9E", "7E", "6E", "5E"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + razorshell: ["9L17", "7L17", "6L17", "5L17"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["9L37", "7L37", "6M", "6L37", "5M", "5L37"], + return: ["7M", "6M", "5M"], + revenge: ["7L25", "6L25", "5L25"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + sacredsword: ["9E", "7E"], + scald: ["7M", "6M", "5M"], + screech: ["9E", "7E", "6E", "5E"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L11"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "9L41", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L5", "7L5", "6L5", "5L5"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M"], + trumpcard: ["7E", "6E", "5E"], + waterfall: ["9M", "7M", "6M", "5M"], + watergun: ["9L7", "7L7", "6L7", "5L7"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "9L23", "7T", "7L23", "6T", "6L23", "5L23"], + watersport: ["7L11", "6L11", "5L11"], + workup: ["7M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + }, + dewott: { + learnset: { + aerialace: ["9M", "9L29", "7M", "6M", "5M"], + airslash: ["9M"], + aquajet: ["9L34", "7L34", "6L33", "5L33"], + aquatail: ["9L42", "7T", "7L42", "6T", "6L41", "5T", "5L41"], + attract: ["7M", "6M", "5M"], + avalanche: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + brickbreak: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["9M", "6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + encore: ["9M", "9L37", "7L37", "6L36", "5L36"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "7M", "6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], + focusenergy: ["9L13", "7L13", "6L13", "5L13"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L21", "7L21", "6L20", "5L20"], + grassknot: ["9M", "7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "9L53", "7L53", "6L52", "5L52"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["9M"], + liquidation: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + razorshell: ["9L18", "7L18", "6L17", "5L17"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["9L45", "7L45", "6M", "6L44", "5M", "5L44"], + return: ["7M", "6M", "5M"], + revenge: ["7L29", "6L28", "5L28"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L1"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "9L50", "7M", "7L50", "6M", "6L49", "5M", "5L49"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M"], + vacuumwave: ["9M"], + waterfall: ["9M", "7M", "6M", "5M"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "9L26", "7T", "7L26", "6T", "6L25", "5L25"], + watersport: ["7L1", "6L1", "5L1"], + workup: ["7M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + }, + samurott: { + learnset: { + aerialace: ["9M", "9L29", "7M", "6M", "5M"], + airslash: ["9M"], + aquajet: ["9L34", "7L34", "6L33", "5L33"], + aquatail: ["9L46", "7T", "7L46", "6T", "6L45", "5T", "5L45"], + attract: ["7M", "6M", "5M"], + avalanche: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M", "6S1"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["9M", "6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dragontail: ["7M", "6M", "5M"], + drillrun: ["9M"], + encore: ["9M", "9L39", "7L39", "6L38", "5L38"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "7M", "6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], + focusenergy: ["9L13", "7L13", "6L13", "5L13"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L21", "7L21", "6L20", "5L20"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + holdback: ["6S1"], + hydrocannon: ["9M", "7T", "6T", "5T"], + hydropump: ["9M", "9L63", "7L63", "6L62", "6S1", "5L62", "5S0"], + hyperbeam: ["9M", "7M", "6M", "5M"], + icebeam: ["9M", "7M", "6M", "5M", "5S0"], + icywind: ["9M", "7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + liquidation: ["9M", "7T"], + megahorn: ["9L1", "7L1", "6L1", "5L1", "5S0"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + razorshell: ["9L18", "7L18", "6L17", "6S1", "5L17"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["9L51", "7L51", "6M", "6L50", "5M", "5L50"], + return: ["7M", "6M", "5M"], + revenge: ["7L29", "6L28", "5L28"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + slash: ["9L0", "7L1", "6L36", "5L36"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smartstrike: ["9M", "7M"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L1"], + strength: ["6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + superpower: ["7T", "6T", "5T", "5S0"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "9L58", "7M", "7L58", "6M", "6L57", "5M", "5L57"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M"], + vacuumwave: ["9M"], + waterfall: ["9M", "7M", "6M", "5M"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "9L25", "7T", "7L25", "6T", "6L25", "5L25"], + watersport: ["7L1", "6L1", "5L1"], + workup: ["7M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["hydropump", "icebeam", "megahorn", "superpower"], pokeball: "cherishball"}, + {generation: 6, level: 50, isHidden: true, moves: ["razorshell", "holdback", "confide", "hydropump"], pokeball: "cherishball"}, + ], + }, + samurotthisui: { + learnset: { + aerialace: ["9M", "9L29"], + airslash: ["9M"], + aquajet: ["9L34"], + aquatail: ["9L46"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + ceaselessedge: ["9L0"], + chillingwater: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + drillrun: ["9M"], + encore: ["9M", "9L39"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + fling: ["9M"], + flipturn: ["9M"], + focusenergy: ["9L13"], + furycutter: ["9L21"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M", "9L63"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + liquidation: ["9M"], + megahorn: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + razorshell: ["9L18"], + rest: ["9M"], + retaliate: ["9L51"], + scaryface: ["9M"], + slash: ["9L1"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snarl: ["9M"], + snowscape: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L1"], + surf: ["9M"], + swift: ["9M"], + swordsdance: ["9M", "9L58"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + vacuumwave: ["9M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + waterpulse: ["9M", "9L25"], + xscissor: ["9M"], + }, + }, + patrat: { + learnset: { + afteryou: ["7T", "7L23", "6T", "6L23", "5T", "5L23"], + aquatail: ["7T", "6T", "5T"], + assurance: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + batonpass: ["7L38", "6L33", "5L33"], + bide: ["7L8", "6L8", "5L8"], + bite: ["7L6", "6L6", "5L6"], + bulletseed: ["7E"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["7L16", "6L16", "5L16"], + cut: ["6M", "5M"], + detect: ["7L11", "6L11", "5L11"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + flail: ["7E", "6E", "5E"], + fling: ["7M", "6M", "5M"], + focusenergy: ["7L26"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperfang: ["7L31", "6L28", "5L28"], + hypnosis: ["7L18", "6L18", "5L18"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + leer: ["7L3", "6L3", "5L3"], + lowkick: ["7T", "6T", "5T"], + meanlook: ["7L36", "6L31", "5L31"], + nastyplot: ["7L33"], + protect: ["7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["7E", "6E", "5E"], + round: ["7M", "6M", "5M"], + sandattack: ["7L13", "6L13", "5L13"], + screech: ["7E", "6E", "5E"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + shadowball: ["7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slam: ["7L41", "6L36", "5L36"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superfang: ["7T", "7L21", "6T", "6L21", "5T", "5L21"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tearfullook: ["7E"], + thunderbolt: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["7M", "7L28", "6L26", "5M", "5L26"], + zenheadbutt: ["7T", "6T", "5T"], + }, + }, + watchog: { + learnset: { + afteryou: ["7T", "7L25", "6T", "6L25", "5T", "5L25"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + batonpass: ["7L46", "6L39", "5L39"], + bide: ["7L8", "6L8", "5L8"], + bite: ["7L1", "6L1", "5L1"], + confide: ["7M", "6M"], + confuseray: ["7L1", "6L20", "5L20"], + covet: ["7T", "6T", "5T"], + crunch: ["7L16", "6L16", "5L16"], + cut: ["6M", "5M"], + detect: ["7L11", "6L11", "5L11"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + firepunch: ["7T", "6T", "5T"], + flamethrower: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focusenergy: ["7L29"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + hyperfang: ["7L36", "6L32", "5L32"], + hypnosis: ["7L18", "6L18", "5L18"], + icepunch: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lightscreen: ["7M", "6M", "5M"], + lowkick: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + meanlook: ["7L43", "6L36", "5L36"], + nastyplot: ["7L39"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + psychup: ["7M", "7L32", "6M", "6L29", "5M", "5L29"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rototiller: ["7L1", "6L1"], + round: ["7M", "6M", "5M"], + sandattack: ["7L13", "6L13", "5L13"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + shadowball: ["7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + slam: ["7L50", "6L43", "5L43"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + stompingtantrum: ["7T"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superfang: ["7T", "7L22", "6T", "6L22", "5T", "5L22"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + thunder: ["7M", "6M", "5M"], + thunderbolt: ["7M", "6M", "5M"], + thunderpunch: ["7T", "6T", "5T"], + thunderwave: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T"], + }, + }, + lillipup: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["8E", "7T", "7E", "6T", "6E"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L17", "7L10", "6L10"], + bite: ["8L8", "7L8", "6L8", "5L8"], + charm: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + covet: ["8E", "7T", "6T", "5T"], + crunch: ["8M", "8L24", "7L22", "6L22", "5L22"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "8L48", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + helpinghand: ["8M", "8L32", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + howl: ["8E", "7E", "6E", "5E"], + hypervoice: ["8M", "7T", "6T", "5T"], + icefang: ["8M", "7E", "6E", "5E"], + lastresort: ["8L44", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lick: ["8E", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E"], + odorsleuth: ["7L5", "6L5", "5L5"], + payback: ["8M"], + playrough: ["8M", "8L20", "7L45", "6L45"], + protect: ["8M", "7M", "6M", "5M"], + psychicfangs: ["8M", "7E"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L12", "7L29", "6M", "6L29", "5M", "5L29"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L36", "7L33", "6L33", "5L33"], + roar: ["8L40", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["7E", "6E", "5E"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8L28", "7L15", "6L15", "5L15"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M", "7E", "6E", "5E"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L4", "7M", "7L19", "6L19", "5M", "5L19"], + yawn: ["8E", "7E", "6E", "5E"], + }, + }, + herdier: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L19"], + bite: ["8L1", "7L1", "6L1", "5L1"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["8M", "8L30", "7L24", "6L24", "5L24"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firefang: ["8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "8L66", "7M", "7L47", "6M", "6L47", "5M", "5L47"], + helpinghand: ["8M", "8L42", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icefang: ["8M"], + lastresort: ["8L60", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + leer: ["8L1", "7L1", "6L1", "5L1"], + odorsleuth: ["7L1", "6L1", "5L1"], + payback: ["8M", "7M", "6M", "5M"], + playrough: ["8M", "8L24", "7L52", "6L52"], + protect: ["8M", "7M", "6M", "5M"], + psychicfangs: ["8M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L12", "7L33", "6M", "6L33", "5M", "5L33"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L48", "7L38", "6L38", "5L38"], + roar: ["8L54", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8L36", "7L15", "6L15", "5L15"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L20", "6L20", "5M", "5L20"], + }, + encounters: [ + {generation: 5, level: 20, isHidden: true}, + ], + }, + stoutland: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L19"], + bite: ["8L1", "7L1", "6L1", "5L1"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["8M", "8L30", "7L24", "6L24", "5L24"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "8L78", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + helpinghand: ["8M", "8L46", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1"], + ironhead: ["8M", "7T", "6T", "5T"], + lastresort: ["8L70", "7T", "7L51", "6T", "6L51", "5T", "5L51"], + leer: ["8L1", "7L1", "6L1", "5L1"], + odorsleuth: ["7L1", "6L1", "5L1"], + payback: ["8M", "7M", "6M", "5M"], + playrough: ["8M", "8L24", "7L63", "6L63"], + protect: ["8M", "7M", "6M", "5M"], + psychicfangs: ["8M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L12", "7L36", "6M", "6L36", "5M", "5L36"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L54", "7L42", "6L42", "5L42"], + roar: ["8L62", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8L38", "7L15", "6L15", "5L15"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L20", "6L20", "5M", "5L20"], + }, + encounters: [ + {generation: 5, level: 23}, + ], + }, + purrloin: { + learnset: { + aerialace: ["7M", "6M", "5M"], + assist: ["7L6", "6L6", "5L6"], + assurance: ["8M", "8L21", "7L28", "6L28", "5L28"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M"], + captivate: ["7L33", "6L33", "5L33"], + charm: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + copycat: ["8E", "7E", "6E"], + covet: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + cut: ["6M", "5M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["8E", "7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fakeout: ["8L5", "7L21", "6L21", "5L21"], + faketears: ["8M", "7E", "6E", "5E"], + feintattack: ["7E", "6E", "5E"], + foulplay: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L3", "6L3", "5L3"], + gunkshot: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L24", "7L24", "6M", "6L24", "5M", "5L24"], + hypervoice: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + nastyplot: ["8M", "8L32", "7L42", "6L42", "5L42"], + nightslash: ["8L36", "7L37", "6L37", "5L37"], + payback: ["8M", "7M", "6M", "5M"], + payday: ["8M", "7E", "6E", "5E"], + playrough: ["8M", "8L40", "7L49", "6L49"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + pursuit: ["7L15", "6L15", "5L15"], + quickattack: ["8E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L4", "7L10", "6L10", "5L10"], + scratch: ["8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["8E", "7L30", "6L30", "5L30"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "7L39", "6T", "6L39", "5T", "5L39"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L28", "7L46", "6L46", "5L46"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["8L16", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + yawn: ["8E", "7E", "6E", "5E"], + }, + }, + liepard: { + learnset: { + aerialace: ["7M", "6M", "5M"], + assist: ["7L1", "6L1", "5L1"], + assurance: ["8M", "8L23", "7L31", "6L31", "5L31"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M"], + burningjealousy: ["8T"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fakeout: ["8L1", "7L22", "6L22", "5L22", "5S0"], + faketears: ["8M"], + foulplay: ["8M", "7T", "6T", "5T", "5S0"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + gunkshot: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L28", "7L26", "6M", "6L26", "5M", "5L26"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lashout: ["8T"], + nastyplot: ["8M", "8L40", "7L50", "6L50", "5L50"], + nightslash: ["8L46", "7L43", "6L43", "5L43"], + payback: ["8M", "7M", "6M", "5M"], + payday: ["8M"], + playrough: ["8M", "8L52", "7L58", "6L58"], + protect: ["8M", "7M", "6M", "5M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M"], + pursuit: ["7L15", "6L15", "5L15"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + scratch: ["8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + slash: ["7L34", "6L34", "5L34"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "7L47", "6T", "6L47", "5T", "5L47"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L34", "7L55", "6L55", "5L55"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M", "5S0"], + swift: ["8M"], + taunt: ["8M", "7M", "7L38", "6M", "6L38", "5M", "5L38"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["8L16", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 20, gender: "F", nature: "Jolly", isHidden: true, moves: ["fakeout", "foulplay", "encore", "swagger"]}, + ], + }, + pansage: { + learnset: { + acrobatics: ["7M", "7L31", "6M", "6L31", "5M", "5L31"], + astonish: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + bite: ["7L19", "6L19", "5L19", "5S0"], + bulletseed: ["7E", "6E", "5E", "5S0"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["7L43", "6L43", "5L43"], + cut: ["6M", "5M"], + dig: ["6M", "5M", "5S0", "5S2"], + disarmingvoice: ["7E", "6E"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["7M", "7L28", "6M", "6L28", "5M", "5L28"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L13", "6L13", "5L13"], + gastroacid: ["7T", "6T"], + gigadrain: ["7T", "6T", "5T"], + grassknot: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], + grasspledge: ["7T"], + grasswhistle: ["7E", "6E", "5E"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leafstorm: ["7E", "6E", "5E", "5S1"], + leechseed: ["7L16", "6L16", "5L16"], + leer: ["7L4", "6L4", "5L4", "5S1"], + lick: ["7L7", "6L7", "5L7", "5S1"], + lowkick: ["7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["7M", "6M", "5M"], + magicalleaf: ["7E", "6E", "5E"], + nastyplot: ["7E", "6E", "5E"], + naturalgift: ["7L40", "6L40", "5L40"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M", "5S2"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1"], + secretpower: ["6M"], + seedbomb: ["7T", "7L22", "6T", "6L22", "5T", "5L22", "5S2"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M", "5S0", "5S2"], + spikyshield: ["7E"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + tickle: ["7E", "6E", "5E"], + torment: ["7M", "7L25", "6M", "6L25", "5M", "5L25"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + vinewhip: ["7L10", "6L10", "5L10", "5S1"], + workup: ["7M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 1, shiny: 1, gender: "M", nature: "Brave", ivs: {spa: 31}, moves: ["bulletseed", "bite", "solarbeam", "dig"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "lick", "vinewhip", "leafstorm"]}, + {generation: 5, level: 30, gender: "M", nature: "Serious", moves: ["seedbomb", "solarbeam", "rocktomb", "dig"], pokeball: "cherishball"}, + ], + }, + simisage: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + attract: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L1", "6L1", "5L1"], + gastroacid: ["7T", "6T"], + gigadrain: ["7T", "6T", "5T"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lick: ["7L1", "6L1", "5L1"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + throatchop: ["7T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + workup: ["7M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + }, + pansear: { + learnset: { + acrobatics: ["7M", "7L31", "6M", "6L31", "5M", "5L31"], + amnesia: ["7L25", "6L25", "5L25"], + astonish: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + belch: ["7E"], + bite: ["7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["7L43", "6L43", "5L43"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + disarmingvoice: ["7E", "6E"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], + firepledge: ["7T"], + firepunch: ["7T", "7E", "6T", "6E", "5T", "5E"], + firespin: ["7E", "6E", "5E"], + flameburst: ["7L22", "6L22", "5L22"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "6M", "5M"], + flareblitz: ["7E"], + fling: ["7M", "7L28", "6M", "6L28", "5M", "5L28"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L13", "6L13", "5L13"], + gastroacid: ["7T", "6T"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + heatwave: ["7T", "7E", "6T", "6E", "5T", "5E", "5S0"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + incinerate: ["7L10", "6M", "6L10", "5M", "5L10", "5S0"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L4", "6L4", "5L4", "5S0"], + lick: ["7L7", "6L7", "5L7", "5S0"], + lowkick: ["7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["7M", "6M", "5M"], + nastyplot: ["7E", "6E", "5E"], + naturalgift: ["7L40", "6L40", "5L40"], + overheat: ["7M", "6M", "5M"], + payback: ["7M", "6M", "5M"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + tickle: ["7E", "6E", "5E"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + yawn: ["7L16", "6L16", "5L16"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "lick", "incinerate", "heatwave"]}, + ], + }, + simisear: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + attract: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T"], + firepunch: ["7T", "6T", "5T"], + flameburst: ["7L1", "6L1", "5L1"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L1", "6L1", "5L1"], + gastroacid: ["7T", "6T"], + gigaimpact: ["7M", "6M", "6S0", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + heatwave: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "6S0", "5M"], + hyperbeam: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lick: ["7L1", "6L1", "5L1"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + overheat: ["7M", "6M", "5M"], + payback: ["7M", "6M", "5M"], + poweruppunch: ["6M", "6S0"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + throatchop: ["7T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "6S0", "5M"], + }, + eventData: [ + {generation: 6, level: 5, perfectIVs: 2, moves: ["workup", "honeclaws", "poweruppunch", "gigaimpact"], pokeball: "cherishball"}, + ], + }, + panpour: { + learnset: { + acrobatics: ["7M", "7L31", "6M", "6L31", "5M", "5L31"], + aquaring: ["7E", "6E", "5E"], + aquatail: ["7T", "7E", "6T", "6E", "5T", "5E"], + astonish: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + bite: ["7L19", "6L19", "5L19"], + blizzard: ["7M", "6M", "5M"], + brine: ["7L34", "6L34", "5L34"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["7L43", "6L43", "5L43"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + disarmingvoice: ["7E", "6E"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fling: ["7M", "7L28", "6M", "6L28", "5M", "5L28"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L13", "6L13", "5L13"], + gastroacid: ["7T", "6T"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + hail: ["7M", "6M", "5M"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hydropump: ["7E", "6E", "5E", "5S0"], + icebeam: ["7M", "6M", "5M"], + icepunch: ["7T", "6T", "5T"], + icywind: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L4", "6L4", "5L4", "5S0"], + lick: ["7L7", "6L7", "5L7", "5S0"], + lowkick: ["7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["7M", "6M", "5M"], + mudsport: ["7E", "6E", "5E"], + nastyplot: ["7E", "6E", "5E"], + naturalgift: ["7L40", "6L40", "5L40"], + payback: ["7M", "6M", "5M"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M"], + recycle: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + round: ["7M", "6M", "5M"], + scald: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + scratch: ["7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + substitute: ["7M", "6M", "5M"], + surf: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "7L25", "6M", "6L25", "5M", "5L25"], + thief: ["7M", "6M", "5M"], + tickle: ["7E", "6E", "5E"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + waterfall: ["7M", "6M", "5M"], + watergun: ["7L10", "6L10", "5L10", "5S0"], + waterpledge: ["7T"], + waterpulse: ["7T", "6T"], + watersport: ["7L16", "6L16", "5L16"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "lick", "watergun", "hydropump"]}, + ], + }, + simipour: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + blizzard: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L1", "6L1", "5L1"], + gastroacid: ["7T", "6T"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + hail: ["7M", "6M", "5M"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + icebeam: ["7M", "6M", "5M"], + icepunch: ["7T", "6T", "5T"], + icywind: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lick: ["7L1", "6L1", "5L1"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + payback: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["7M", "6M", "5M"], + scald: ["7M", "7L1", "6M", "6L1", "5M", "5L1"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + substitute: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + surf: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + throatchop: ["7T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + waterfall: ["7M", "6M", "5M"], + waterpledge: ["7T"], + waterpulse: ["7T", "6T"], + workup: ["7M", "5M"], + }, + }, + munna: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T"], + amnesia: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + barrier: ["7E", "6E", "5E"], + batonpass: ["7E", "6E", "5E"], + calmmind: ["8M", "8L28", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["8L44", "7M", "7L41", "7S0", "6M", "6L41", "5M", "5L41"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L48", "7L31", "6L31", "5L31"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healbell: ["7T", "6T", "5T"], + healingwish: ["8E", "7E", "6E"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["8L4", "7L19", "7S0", "6L19", "5L19"], + imprison: ["8M", "8L12", "7L13", "6L13", "5L13"], + lightscreen: ["8M", "7M", "6M", "5M"], + luckychant: ["7L5", "6L5", "5L5"], + magiccoat: ["8L20", "7T", "7E", "6T", "6E", "5T", "5E"], + moonblast: ["8L40"], + moonlight: ["8L16", "7L17", "6L17", "5L17"], + nightmare: ["7L29", "6L29", "5L29"], + painsplit: ["7T", "6T", "5T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L8", "7L11", "6L11", "5L11"], + psychic: ["8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "7S0", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "7E", "7S0", "6M", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + sonicboom: ["7E", "6E", "5E"], + storedpower: ["8M", "8L1", "7L47", "6L47", "5L47"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "7E", "6E", "5E"], + synchronoise: ["7L25", "6L25", "5L25"], + telekinesis: ["7T", "7L43", "6L43", "5M", "5L43"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L52", "7T", "6T", "5T"], + worryseed: ["7T", "6T", "5T"], + yawn: ["8L32", "7L7", "6L7", "5L7"], + zenheadbutt: ["8M", "8L24", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + }, + eventData: [ + {generation: 7, level: 39, nature: "Mild", isHidden: true, moves: ["hypnosis", "dreameater", "rest", "sleeptalk"], pokeball: "dreamball"}, + ], + }, + musharna: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T"], + amnesia: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L1", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1", "5S0"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["8L1", "7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypnosis: ["8L1", "7L1", "6L1", "5L1", "5S0"], + imprison: ["8M", "8L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + luckychant: ["7L1", "6L1", "5L1", "5S0"], + magiccoat: ["8L1", "7T", "6T", "5T"], + mistyexplosion: ["8T"], + moonblast: ["8L1"], + moonlight: ["8L1"], + painsplit: ["7T", "6T", "5T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L1", "7L1", "6L1", "5L1", "5S0"], + psychic: ["8M", "8L1", "7M", "6M", "5M"], + psychicterrain: ["8M", "8L1", "7L1"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["8M", "8L1"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L1", "7T", "6T", "5T"], + worryseed: ["7T", "6T", "5T"], + yawn: ["8L1"], + zenheadbutt: ["8M", "8L1", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, isHidden: true, moves: ["defensecurl", "luckychant", "psybeam", "hypnosis"]}, + ], + }, + pidove: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + aircutter: ["8L16", "7L15", "6L15", "5L15", "5S0"], + airslash: ["8M", "8L32", "7L29", "6L29", "5L29"], + attract: ["8M", "7M", "6M", "5M"], + bestow: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + defog: ["8E", "7T"], + detect: ["8L28", "7L22", "6L22", "5L22"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + featherdance: ["8L24", "7L36", "6L36", "5L36"], + fly: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M"], + growl: ["8L1", "7L4", "6L4", "5L4"], + gust: ["8L1", "7L1", "6L1", "5L1", "5D", "5S0"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["8E", "7E", "6E", "5E", "5D"], + leer: ["8L4", "7L8", "6L8", "5L8"], + luckychant: ["7E", "6E", "5E"], + morningsun: ["8E", "7E", "6E", "5E", "5D"], + nightslash: ["8E", "7E", "6E"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L8", "7L11", "6L11", "5L11", "5S0"], + raindance: ["8M", "7M", "6M", "5M"], + razorwind: ["7L32", "6L32", "5L32"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8L36", "7M", "7L18", "6M", "6L18", "5T", "5L18"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["8L44", "7T", "7L50", "6T", "6L50", "5T", "5L50"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["8L20", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + swift: ["8M"], + tailwind: ["8L40", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + taunt: ["8M", "8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + uturn: ["8M", "7M", "6M", "5M"], + wish: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: 1, gender: "F", nature: "Hardy", ivs: {atk: 31}, abilities: ["superluck"], moves: ["gust", "quickattack", "aircutter"], pokeball: "pokeball"}, + ], + }, + tranquill: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + aircutter: ["8L16", "7L15", "6L15", "5L15"], + airslash: ["8M", "8L38", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + defog: ["7T"], + detect: ["8L34", "7L23", "6L23", "5L23"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "7L50", "6M", "6L50", "5M", "5L50"], + featherdance: ["8L26", "7L41", "6L41", "5L41"], + fly: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + leer: ["8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + razorwind: ["7L36", "6L36", "5L36"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8L44", "7M", "7L18", "6M", "6L18", "5T", "5L18"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["8L56", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["8L20", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + swift: ["8M"], + tailwind: ["8L50", "7T", "7L54", "6T", "6L54", "5T", "5L54"], + taunt: ["8M", "8L12", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + }, + unfezant: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + aircutter: ["8L16", "7L15", "6L15", "5L15"], + airslash: ["8M", "8L42", "7L33", "6L33", "5L33"], + attract: ["8M", "7M", "6M", "5M"], + bravebird: ["8M"], + confide: ["7M", "6M"], + defog: ["7T"], + detect: ["8L36", "7L23", "6L23", "5L23"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + featherdance: ["8L26", "7L44", "6L44", "5L44"], + fly: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + leer: ["8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + razorwind: ["7L38", "6L38", "5L38"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8L50", "7M", "7L18", "6M", "6L18", "5T", "5L18"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["8L66", "7T", "7L66", "6T", "6L66", "5T", "5L66"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["8L20", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + swift: ["8M"], + tailwind: ["8L58", "7T", "7L60", "6T", "6L60", "5T", "5L60"], + taunt: ["8M", "8L12", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + encounters: [ + {generation: 5, level: 22}, + ], + }, + blitzle: { + learnset: { + agility: ["7L36", "6L36", "5L36"], + attract: ["7M", "6M", "5M"], + bounce: ["7T", "6T", "5T"], + charge: ["7L8", "6L8", "5L8"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + discharge: ["7L32", "6L32", "5L32"], + doubleedge: ["7E", "6E", "5E"], + doublekick: ["7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + endure: ["7E", "6E", "5E"], + facade: ["7M", "6M", "5M"], + feint: ["7E"], + flamecharge: ["7M", "7L18", "6M", "6L18", "5M", "5L18"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + lightscreen: ["7M", "6M", "5M"], + lowkick: ["7T"], + magnetrise: ["7T", "6T", "5T"], + mefirst: ["7E", "6E", "5E"], + protect: ["7M", "6M", "5M"], + pursuit: ["7L22", "6L22", "5L22"], + quickattack: ["7L1", "6L1", "5L1"], + rage: ["7E", "6E", "5E"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + sandattack: ["7E", "6E", "5E"], + screech: ["7E", "6E", "5E"], + secretpower: ["6M"], + shockwave: ["7T", "7L11", "7E", "6T", "6L11", "6E", "5L11", "5E"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["7T", "6T", "5T"], + spark: ["7L25", "6L25", "5L25"], + stomp: ["7L29", "6L29", "5L29"], + substitute: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwhip: ["7L4", "6L4", "5L4"], + takedown: ["7E", "6E", "5E"], + thrash: ["7L43", "6L43", "5L43"], + thunder: ["7M", "6M", "5M"], + thunderbolt: ["7M", "6M", "5M"], + thunderwave: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["7M", "6M", "5M"], + wildcharge: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + }, + }, + zebstrika: { + learnset: { + agility: ["7L42", "6L42", "5L42"], + allyswitch: ["7T"], + attract: ["7M", "6M", "5M"], + bounce: ["7T", "6T", "5T"], + charge: ["7L1", "6L1", "5L1"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + discharge: ["7L36", "6L36", "5L36"], + doubleteam: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flamecharge: ["7M", "7L18", "6M", "6L18", "5M", "5L18"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + iondeluge: ["7L1", "6L1"], + laserfocus: ["7T"], + lightscreen: ["7M", "6M", "5M"], + lowkick: ["7T"], + magnetrise: ["7T", "6T", "5T"], + overheat: ["7M", "6M", "5M"], + protect: ["7M", "6M", "5M"], + pursuit: ["7L22", "6L22", "5L22"], + quickattack: ["7L1", "6L1", "5L1"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + shockwave: ["7T", "7L11", "6T", "6L11", "5L11"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T"], + snore: ["7T", "6T", "5T"], + spark: ["7L25", "6L25", "5L25"], + stomp: ["7L31", "6L31", "5L31"], + substitute: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwhip: ["7L1", "6L1", "5L1"], + thrash: ["7L53", "6L53", "5L53"], + thunder: ["7M", "6M", "5M"], + thunderbolt: ["7M", "6M", "5M"], + thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["7M", "6M", "5M"], + wildcharge: ["7M", "7L47", "6M", "6L47", "5M", "5L47"], + }, + }, + roggenrola: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + autotomize: ["8E", "7E", "6E", "5E"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8L44", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gravity: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + harden: ["8L4", "7L4", "6L4", "5L4"], + headbutt: ["8L24", "7L10", "6L10", "5L10"], + heavyslam: ["8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["8M", "8L20", "7T", "7L20", "6T", "6L20", "5T", "5L20"], + lockon: ["7E", "6E", "5E"], + magnitude: ["7E", "6E", "5E"], + meteorbeam: ["8T"], + mudslap: ["8L12", "7L17", "6L17", "5L17"], + naturepower: ["7M", "6M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L32", "7L14", "6L14", "5L14"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L28", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "7E", "6M", "6E", "5M", "5E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L7", "6L7", "5L7"], + sandstorm: ["8M", "8L36", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + sandtomb: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L16", "7M", "7L23", "6M", "6L23", "5M", "5L23"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "8L8", "7T", "7L30", "6T", "6L30", "5T", "5L30"], + stoneedge: ["8M", "8L40", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + wideguard: ["8E", "7E", "6E"], + }, + }, + boldore: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["5D"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8L54", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + harden: ["8L1", "7L1", "6L1", "5L1"], + headbutt: ["8L24", "7L1", "6L1", "5L1"], + heavyslam: ["8M", "5D"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["8M", "8L20", "7T", "7L20", "6T", "6L20", "5T", "5L20"], + meteorbeam: ["8T"], + mudslap: ["8L12", "7L17", "6L17", "5L17"], + naturepower: ["7M", "6M"], + powergem: ["8M", "8L0", "7L1", "6L25", "5L25"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L36", "7L14", "6L14", "5L14"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L30", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "8L42", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + sandtomb: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L16", "7M", "7L23", "6M", "6L23", "5M", "5L23", "5D"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "8L1", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L48", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + toxic: ["7M", "6M", "5M"], + }, + encounters: [ + {generation: 5, level: 24}, + ], + }, + gigalith: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8L54", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + harden: ["8L1", "7L1", "6L1", "5L1"], + headbutt: ["8L24", "7L1", "6L1", "5L1"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "8L20", "7T", "7L20", "6T", "6L20", "5T", "5L20"], + ironhead: ["8M", "7T", "6T", "5T"], + laserfocus: ["7T"], + meteorbeam: ["8T"], + mudslap: ["8L12", "7L17", "6L17", "5L17"], + naturepower: ["7M", "6M"], + powergem: ["8M", "8L1", "7L1", "6L25", "5L25"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L36", "7L14", "6L14", "5L14"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L30", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "8L42", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + sandtomb: ["8M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L16", "7M", "7L23", "6M", "6L23", "5M", "5L23"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stealthrock: ["8M", "8L1", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L48", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + }, + }, + woobat: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T", "5T"], + aircutter: ["8L15", "7L21", "6L21", "5L21"], + airslash: ["8M", "8L35", "7L32", "6L32", "5L32"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "8L30", "7L29", "6L29", "5L29"], + assurance: ["8M", "8L25", "7L12", "6L12", "5L12"], + attract: ["8M", "8L1", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + batonpass: ["8M"], + calmmind: ["8M", "8L45", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + captivate: ["7E", "6E"], + chargebeam: ["7M", "6M", "5M"], + charm: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + confusion: ["8L5", "7L1", "6L1", "5L1"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + embargo: ["7M", "6M", "5M"], + endeavor: ["8L10", "7T", "7L47", "6T", "6L47", "5T", "5L47"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M", "7E", "6E", "5E"], + flash: ["6M", "5M"], + flatter: ["8E", "7E", "6E", "5E"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L50", "7L36", "6L36", "5L36"], + gigadrain: ["8M", "7T", "6T", "5T"], + gust: ["8L1", "7L8", "6L8", "5L8"], + gyroball: ["8M", "7M", "6M", "5M"], + heartstamp: ["7L15", "6L15", "5L15"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["8M", "8L20", "7L19", "6L19", "5L19"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + nastyplot: ["8M"], + odorsleuth: ["7L4", "6L4", "5L4"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + psychocut: ["8M"], + psychoshift: ["8E", "7E", "6E"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["8L55"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M", "7E", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + supersonic: ["8E", "7E", "6E", "5E"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + synchronoise: ["7E", "6E", "5E"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + venomdrench: ["8M", "7E", "6E"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + swoobat: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T", "5T"], + aircutter: ["8L15", "7L21", "6L21", "5L21"], + airslash: ["8M", "8L35", "7L32", "6L32", "5L32"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "8L30", "7L29", "6L29", "5L29"], + assurance: ["8M", "8L25", "7L1", "6L1", "5L1"], + attract: ["8M", "8L1", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + batonpass: ["8M"], + calmmind: ["8M", "8L45", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + chargebeam: ["7M", "6M", "5M"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + embargo: ["7M", "6M", "5M"], + endeavor: ["8L1", "7T", "7L47", "6T", "6L47", "5T", "5L47"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M"], + flash: ["6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L50", "7L36", "6L36", "5L36"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gust: ["8L1", "7L1", "6L1", "5L1"], + gyroball: ["8M", "7M", "6M", "5M"], + heartstamp: ["7L15", "6L15", "5L15"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + imprison: ["8M", "8L20", "7L19", "6L19", "5L19"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + nastyplot: ["8M"], + odorsleuth: ["7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + psychicfangs: ["8M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["8L55"], + skillswap: ["8M", "7T", "6T", "5T"], + skyattack: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + venomdrench: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + drilbur: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crushclaw: ["8L24", "7E", "6E", "5E"], + cut: ["6M", "5M"], + dig: ["8M", "8L32", "7L19", "6M", "6L19", "5M", "5L19"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "8L40", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fissure: ["8L48", "7L47", "6L47", "5L47"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + honeclaws: ["8L8", "7L22", "6M", "6L22", "5M", "5L22"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + metalclaw: ["8L16", "7L15", "6L15", "5L15"], + metalsound: ["8E", "7E", "6E", "5E", "5D"], + mudshot: ["8M"], + mudslap: ["8L1", "7L8", "6L8", "5L8"], + mudsport: ["7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rapidspin: ["8L1", "7L5", "7E", "6L5", "6E", "5L5", "5E", "5D"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7E", "6E", "5E", "5D"], + rockslide: ["8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + scratch: ["8L4", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skullbash: ["7E", "6E", "5E"], + slash: ["8E", "7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + submission: ["8E", "7E", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + toxic: ["7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + }, + excadrill: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + brickbreak: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crushclaw: ["8L24"], + cut: ["6M", "5M"], + dig: ["8M", "8L34", "7L19", "6M", "6L19", "5M", "5L19"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "8L46", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "8L52", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fissure: ["8L58", "7L62", "6L62", "5L62"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + honeclaws: ["8L1", "7L22", "6M", "6L22", "5M", "5L22"], + horndrill: ["8L0", "7L1", "6L31", "5L31"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + metalclaw: ["8L16", "7L15", "6L15", "5L15"], + mudshot: ["8M"], + mudslap: ["8L1", "7L1", "6L1", "5L1"], + mudsport: ["7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rapidspin: ["8L1", "7L1", "6L1", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockslide: ["8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L20", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + scratch: ["8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L40", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + toxic: ["7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + audino: { + learnset: { + afteryou: ["8L28", "7T", "7L41", "6T", "6L40", "5T", "5L40"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "7E", "6E", "5E"], + attract: ["8M", "7M", "7L21", "6M", "6L15", "5M", "5L15"], + babydolleyes: ["8L9", "7L5", "6L5"], + bestow: ["7E", "6E", "5E"], + blizzard: ["8M", "7M", "6M", "5M"], + bodyslam: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M"], + disarmingvoice: ["8L4", "7L13", "6L13"], + doubleedge: ["8L48", "7L49", "6L49", "5L50"], + doubleslap: ["7L17", "6L10", "5L10", "5S0"], + doubleteam: ["7M", "6M", "5M"], + drainingkiss: ["8M", "7E", "6E"], + drainpunch: ["8M", "7T", "6T", "5T"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E", "5D"], + endure: ["8M"], + entrainment: ["8L52", "7L29", "6L25", "5L25"], + facade: ["8M", "7M", "6M", "5M"], + fireblast: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + flamethrower: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + growl: ["8L16", "7L1", "6L1", "5L1"], + healbell: ["7T", "7E", "6T", "6E", "5T", "5E"], + healingwish: ["8E", "7E", "6E", "5E"], + healpulse: ["8L44", "7L37", "6L35", "6S3", "5L35", "5S0", "5S1", "5S2"], + helpinghand: ["8M", "8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D", "5S0", "5S1", "5S2"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "7T", "7L1", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["8L60", "7T", "7L1", "6T", "6L1", "5T", "5L55"], + lifedew: ["8L24"], + lightscreen: ["8M", "7M", "6M", "5M"], + lowkick: ["8M", "7T", "6T", "5T"], + luckychant: ["7E", "6E", "5E"], + magiccoat: ["7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + mistyterrain: ["8M", "8L56", "7L1", "6L1"], + painsplit: ["7T", "6T", "5T"], + playnice: ["8L1", "7L1", "6L1"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + present: ["5S1", "5S2"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + refresh: ["7L9", "6L5", "5L5", "5S0", "5S1", "5S2"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["7L25", "6M", "6L20", "5L20"], + shadowball: ["8M", "7M", "6M", "5M"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["8L36", "7L45", "6L45", "6S3", "5L45"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetkiss: ["8E", "7E", "6E", "5E"], + takedown: ["8L32", "7L33", "6L30", "5L30"], + telekinesis: ["7T", "5M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "6S3", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trickroom: ["8M", "7M", "6M", "6S3", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + wish: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + yawn: ["8E", "7E", "6E", "5E", "5D"], + zenheadbutt: ["8M", "8L20", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 30, gender: "F", nature: "Calm", abilities: ["healer"], moves: ["healpulse", "helpinghand", "refresh", "doubleslap"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "F", nature: "Serious", abilities: ["healer"], moves: ["healpulse", "helpinghand", "refresh", "present"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "F", nature: "Jolly", abilities: ["healer"], moves: ["healpulse", "helpinghand", "refresh", "present"], pokeball: "cherishball"}, + {generation: 6, level: 100, nature: "Relaxed", abilities: ["regenerator"], moves: ["trickroom", "healpulse", "simplebeam", "thunderbolt"], pokeball: "cherishball"}, + ], + }, + timburr: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L8", "6L8", "5L8"], + block: ["7T", "6T", "5T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "9L16", "8M", "8L16", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + chipaway: ["7L24", "6L24", "5L24"], + closecombat: ["9M"], + coaching: ["8T"], + cometpunch: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E"], + defog: ["9E", "8E"], + detect: ["9E", "8E", "7E", "6E", "5E"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + dynamicpunch: ["9L32", "8L32", "7L34", "6L34", "5L34"], + endure: ["9M", "8M", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L12", "8M", "8L12", "7L4", "6L4", "5L4"], + focuspunch: ["9M", "9L48", "8L48", "7T", "7L46", "6T", "6L46", "5L46"], + forcepalm: ["7E", "6E", "5E"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L36", "8L36", "7L40", "6L40", "5L40"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "9L4", "8M", "8L4", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + machpunch: ["9E", "8E", "7E", "6E", "5E"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["8E", "7E", "6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["9M", "8M", "7E", "6E", "5E"], + rockslide: ["9M", "9L20", "8M", "8L20", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + rocksmash: ["6M", "5M"], + rockthrow: ["9L8", "8L8", "7L16", "6L16", "5L16"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L37", "6L37", "5L37"], + secretpower: ["6M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["9M", "9L40", "8M", "8L40", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L44", "8M", "8L44", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L20", "6L20", "5L20"], + wideguard: ["9E", "8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + }, + }, + gurdurr: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "9L16", "8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + chipaway: ["7L24", "6L24", "5L24"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "5D"], + dynamicpunch: ["9L36", "8L36", "7L37", "6L37", "5L37"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L12", "8M", "8L12", "7L1", "6L1", "5L1"], + focuspunch: ["9M", "9L60", "8L60", "7T", "7L53", "6T", "6L53", "5L53"], + frustration: ["7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L42", "8L42", "7L45", "6L45", "5L45"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["9M", "8M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "9L1", "8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12", "5D"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + machpunch: ["5D"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "9L20", "8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rocksmash: ["6M", "5M"], + rockthrow: ["9L1", "8L1", "7L16", "6L16", "5L16"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L30", "8M", "8L30", "7L41", "6L41", "5L41"], + secretpower: ["6M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L54", "8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L20", "6L20", "5L20"], + workup: ["8M", "7M", "5M"], + }, + }, + conkeldurr: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "9L16", "8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + chipaway: ["7L24", "6L24", "5L24"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T"], + dynamicpunch: ["9L36", "8L36", "7L37", "6L37", "5L37"], + earthquake: ["9M", "8M", "7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firepunch: ["9M", "8M", "7T", "6T", "5T"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L12", "8M", "8L12", "7L1", "6L1", "5L1"], + focuspunch: ["9M", "9L60", "8L60", "7T", "7L53", "6T", "6L53", "5L53"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + hammerarm: ["9L42", "8L42", "7L45", "6L45", "5L45"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "9L1", "8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "9L20", "8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rocksmash: ["6M", "5M"], + rockthrow: ["9L1", "8L1", "7L16", "6L16", "5L16"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L30", "8M", "8L30", "7L41", "6L41", "5L41"], + secretpower: ["6M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L54", "8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L20", "6L20", "5L20"], + workup: ["8M", "7M", "5M"], + }, + }, + tympole: { + learnset: { + acid: ["8L4"], + afteryou: ["7T", "7E", "6T", "6E"], + aquaring: ["8L32", "7L20", "6L20", "5L20"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8L20", "7L12", "6L12", "5L12"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + echoedvoice: ["8L1", "7M", "7L38", "6M", "6L38", "5M", "5L38"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["8L24", "7L34", "6L34", "5L34"], + frustration: ["7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L48", "7L42", "6L42", "5L42"], + hypervoice: ["8M", "8L36", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + icywind: ["8M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + mist: ["8E", "7E", "6E", "5E"], + mudbomb: ["7E", "6E", "5E"], + muddywater: ["8M", "8L40", "7L27", "6L27", "5L27"], + mudshot: ["8M", "8L12", "7L16", "6L16", "5L16"], + mudslap: ["8E"], + mudsport: ["7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "8L44", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + refresh: ["7E", "6E", "5E"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "8L16", "7M", "7L9", "6M", "6L9", "5M", "5L9", "5D"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + supersonic: ["8L8", "7L5", "6L5", "5L5"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["8E", "7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + venomdrench: ["8M", "7E"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "5D"], + weatherball: ["8M"], + }, + }, + palpitoad: { + learnset: { + acid: ["8L1"], + afteryou: ["7T", "6T"], + aquaring: ["8L37", "7L20", "6L20", "5L20"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8L20", "7L12", "6L12", "5L12"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["8L1", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["8L24", "7L37", "6L37", "5L37"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + growl: ["8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L60", "7L47", "6L47", "5L47"], + hypervoice: ["8M", "8L42", "7T", "7L51", "6T", "6L51", "5T", "5L51"], + icywind: ["8M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + muddywater: ["8M", "8L48", "7L28", "6L28", "5L28"], + mudshot: ["8M", "8L12", "7L16", "6L16", "5L16"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "8L54", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + supersonic: ["8L1", "7L1", "6L1", "5L1"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L30", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + venomdrench: ["8M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + }, + }, + seismitoad: { + learnset: { + acid: ["8L1", "7L1", "6L36", "5L36"], + afteryou: ["7T", "6T"], + aquaring: ["8L39", "7L20", "6L20", "5L20"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8L20", "7L12", "6L12", "5L12"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + dive: ["8M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "8L0", "7T", "7L44", "6T", "6L44", "5T", "5L44"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + echoedvoice: ["8L1", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["8L24", "7L39", "6L39", "5L39"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["8L1", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L70", "7L53", "6L53", "5L53"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L46", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T"], + liquidation: ["8M"], + lowkick: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + muddywater: ["8M", "8L54", "7L28", "6L28", "5L28"], + mudshot: ["8M", "8L12", "7L16", "6L16", "5L16"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "8L62", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + supersonic: ["8L1", "7L1", "6L1", "5L1"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L30", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + }, + encounters: [ + {generation: 5, level: 15}, + ], + }, + throh: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L5", "5L5"], + bind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D"], + block: ["7T", "6T", "5T"], + bodyslam: ["8M", "7L21", "6L29", "5L29"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulkup: ["8M", "8L25", "7M", "7L25", "6M", "6L33", "5M", "5L33"], + bulldoze: ["8M", "7M", "6M", "5M"], + circlethrow: ["8L10", "7L29", "6L37", "5L37"], + coaching: ["8T"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M", "8L45", "7L33", "6L41", "5L41"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L5", "7L1", "6L9", "5L9"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T", "5D"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "7M", "6M", "5M"], + matblock: ["7L1"], + megakick: ["8M"], + megapunch: ["8M"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "8L20", "7L13", "6L21", "5L21"], + reversal: ["8M", "8L50", "7L45", "6L50", "5L53"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + seismictoss: ["8L40", "7L5", "6L13", "5L13"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + stormthrow: ["8L30", "7L17", "6L25", "5L25"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L55", "7T", "7L41", "6T", "6L48", "5T", "5L49", "5D"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + vitalthrow: ["8L35", "7L9", "6L17", "5L17"], + wideguard: ["8L15", "7L37", "6L45", "5L45"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + sawk: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L5", "5L5"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M", "8L35", "7M", "7L21", "6M", "6L29", "5M", "5L29"], + bulkup: ["8M", "8L25", "7M", "7L25", "6M", "6L33", "5M", "5L33"], + bulldoze: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L55", "7L41", "6L48", "5L49"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8L40", "7L13", "6L21", "5L21"], + dig: ["8M", "6M", "5M"], + doublekick: ["8L10", "7L5", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T", "5D"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M", "8L45", "7L33", "6L41", "5L41"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L5", "7L1", "6L9", "5L9"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + karatechop: ["7L17", "6L25", "5L25"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "8L20", "7M", "7L9", "6M", "6L17", "5M", "5L17"], + megakick: ["8M"], + megapunch: ["8M"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + quickguard: ["8L15", "7L37", "6L45", "5L45"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L30", "7L29", "6M", "6L37", "5M", "5L37"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M", "8L50", "7L45", "6L50", "5L53"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["8L1", "7L1", "6M", "6L1", "5M", "5L1", "5D"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T", "5D"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + sewaddle: { + learnset: { + agility: ["7E", "6E", "5E"], + airslash: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M", "7E", "6E", "5E"], + bugbite: ["9M", "9L8", "7T", "7L8", "6T", "6L8", "5T", "5L8"], + bugbuzz: ["9M", "9L36", "7L36", "6L36", "5L36"], + calmmind: ["7M", "6M", "5M"], + camouflage: ["7E", "6E", "5E"], + charm: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + electroweb: ["7T", "6T", "5T"], + endure: ["9M", "9L29", "7L29", "6L29", "5L29"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], + flail: ["9L43", "7L43", "6L43", "5L43"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "7E"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + lightscreen: ["7M", "6M", "5M"], + lunge: ["9M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T"], + mefirst: ["7E", "6E", "5E"], + mindreader: ["7E", "6E", "5E"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M"], + razorleaf: ["9L15", "7L15", "6L15", "5L15"], + razorwind: ["7E", "6E", "5E"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + screech: ["9E", "7E", "6E", "5E"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T", "5T"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["7E", "6E", "5E"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["9E", "7T", "6T", "5T"], + solarbeam: ["9M", "7M", "6M", "5M"], + stickyweb: ["9L31", "7L31", "6L31"], + stringshot: ["9L1", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "9L22", "7L22", "6M", "6L22", "5M", "5L22"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + switcheroo: ["9E"], + synthesis: ["9E", "7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + worryseed: ["9E", "7T", "6T", "5T"], + }, + }, + swadloon: { + learnset: { + attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + bugbuzz: ["9M", "9L36"], + calmmind: ["7M", "6M", "5M"], + charm: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + electroweb: ["7T", "6T", "5T"], + endure: ["9M", "9L29"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], + flail: ["9L43"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], + grasswhistle: ["7L1", "6L1", "5L1"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + lunge: ["9M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "9L0", "7M", "7L1", "6M", "6L20", "5M", "5L20"], + raindance: ["9M"], + razorleaf: ["9L1", "7L1", "6L1", "5L1"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T", "5T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["9M", "7M", "6M", "5M"], + stickyweb: ["9L31"], + stringshot: ["9L1", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "9L22", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + worryseed: ["7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 19}, + ], + }, + leavanny: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["9M"], + airslash: ["9M"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + bugbite: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + bugbuzz: ["9M"], + bulletseed: ["9M"], + calmmind: ["9M", "7M", "6M", "5M"], + charm: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + electroweb: ["7T", "6T", "5T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M", "5M"], + entrainment: ["9L43", "7L43", "6L43", "5L43"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + fellstinger: ["9L29", "7L29", "6L34"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["9M", "9L32", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + laserfocus: ["7T"], + leafblade: ["9L36", "7L36", "6L36", "5L36"], + leafstorm: ["9M", "9L50", "7L50", "6L50", "5L50"], + lightscreen: ["9M", "7M", "6M", "5M"], + lowkick: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + poisonjab: ["9M", "7M", "6M", "5M"], + pollenpuff: ["9M"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M"], + razorleaf: ["9L1", "7L1", "6L1", "5L1"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T", "5T"], + shadowclaw: ["9M", "7M", "6M", "5M"], + signalbeam: ["7T", "6T", "5T"], + slash: ["9L0", "7L1", "6L29", "5L29"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["9M", "7M", "6M", "5M"], + steelwing: ["7M", "6M"], + stringshot: ["9L1", "7L1", "6L1", "5L1"], + strugglebug: ["9M", "9L22", "7L22", "6M", "6L22", "5M", "5L22"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L46"], + synthesis: ["7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + worryseed: ["7T", "6T", "5T"], + xscissor: ["9M", "9L39", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + }, + encounters: [ + {generation: 5, level: 20, isHidden: true}, + ], + }, + venipede: { + learnset: { + agility: ["8M", "8L32", "7L29", "6L29", "5L29"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["8E"], + bugbite: ["8L20", "7T", "7L22", "6T", "6L22", "5T", "5L22"], + confide: ["7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + doubleedge: ["8L44", "7L43", "6L43", "5L43"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8E"], + gyroball: ["8M", "7M", "6M", "5M"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + pinmissile: ["8M", "7E", "6E", "5E"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8L1", "7L5", "6L5", "5L5"], + poisontail: ["8L12", "7L19", "6L19", "5L19"], + protect: ["8M", "8L8", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + pursuit: ["7L12", "6L12", "5L12"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7L40", "7E", "6L40", "6E", "5L40", "5E"], + rocksmash: ["6M", "5M"], + rollout: ["8L4", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L16", "7L8", "6L8", "5L8"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M", "7E", "6E", "5E"], + steamroller: ["7L33", "6L33", "5L33"], + steelroller: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["8L28", "7E", "6E", "5E"], + toxic: ["8L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + toxicspikes: ["8M", "7E", "6E", "5E"], + twineedle: ["7E", "6E", "5E"], + venomdrench: ["8M", "8L40", "7L38"], + venoshock: ["8M", "8L24", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + }, + }, + whirlipede: { + learnset: { + agility: ["8M", "8L38", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + bugbite: ["8L20", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + confide: ["7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + doubleedge: ["8L56", "7L50", "6L50", "5L50"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gyroball: ["8M", "7M", "6M", "5M"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "8L0", "7T", "7L1", "6T", "6L22", "5T", "5L22"], + payback: ["8M", "7M", "6M", "5M"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1"], + poisontail: ["8L12", "7L19", "6L19", "5L19"], + protect: ["8M", "8L1", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + pursuit: ["7L12", "6L12", "5L12"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7L46", "6L46", "5L46"], + rocksmash: ["6M", "5M"], + rollout: ["8L1", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L16", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + steamroller: ["7L37", "6L37", "5L37"], + steelroller: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["8L32"], + toxic: ["8L44", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + toxicspikes: ["8M"], + venomdrench: ["8M", "8L50", "7L43", "6L43"], + venoshock: ["8M", "8L26", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + }, + }, + scolipede: { + learnset: { + agility: ["8M", "8L42", "7L33", "6L33", "5L33"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "8L1", "7L1", "6L30", "5L30"], + bugbite: ["8L20", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crosspoison: ["8M"], + cut: ["6M", "5M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + dig: ["8M", "6M", "5M"], + doubleedge: ["8L66", "7L55", "6L55", "5L55"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gyroball: ["8M", "7M", "6M", "5M"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "8L1", "7T", "7L1", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + megahorn: ["8M", "8L74", "7L1", "6L1", "5L1"], + payback: ["8M", "7M", "6M", "5M"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1"], + poisontail: ["8L12", "7L19", "6L19", "5L19", "5D"], + protect: ["8M", "8L1", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + pursuit: ["7L12", "6L12", "5L12"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7L50", "6L50", "5L50"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["8L1", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L16", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + steamroller: ["7L39", "6L39", "5L39"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T", "5D"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + takedown: ["8L34"], + throatchop: ["8M", "7T"], + toxic: ["8L50", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + toxicspikes: ["8M", "5D"], + venomdrench: ["8M", "8L58", "7L47", "6L47"], + venoshock: ["8M", "8L26", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + }, + cottonee: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "7E", "6E", "5E"], + captivate: ["7E", "6E"], + charm: ["8M", "8L27", "7L28", "6L28", "5L28"], + confide: ["7M", "6M"], + cottonguard: ["8L45", "7L37", "6L37", "5L37"], + cottonspore: ["8L33", "7L17", "6L17", "5L17"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E", "5D"], + endeavor: ["8L42", "7T", "7L44", "6T", "6L44", "5T", "5L44"], + endure: ["8M"], + energyball: ["8M", "8L36", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + facade: ["8M", "7M", "6M", "5M"], + fairywind: ["8L3", "7L1", "6L1"], + faketears: ["8M", "7E", "6E", "5E"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L24", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + grassknot: ["8M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L18", "7L4", "6L4", "5L4"], + helpinghand: ["8M", "8L1", "7T", "7L31", "6T", "6L31", "5T", "5L31"], + hiddenpower: ["7M", "6M", "5M"], + knockoff: ["7T", "6T", "5T"], + leechseed: ["8L30", "7L8", "6L8", "5L8", "5D"], + megadrain: ["8L12", "7L13", "6L13", "5L13"], + memento: ["8E", "7E", "6E", "5E"], + mistyterrain: ["8M", "7E"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["8E", "7M", "6M"], + poisonpowder: ["8L21", "7L22", "6L22", "5L22"], + protect: ["8M", "7M", "6M", "5M"], + razorleaf: ["8L15", "7L19", "6L19", "5L19"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5M", "5L46"], + stunspore: ["8L6", "7L10", "6L10", "5L10"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "8L39", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + switcheroo: ["8E", "7E", "6E", "5E"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + }, + }, + whimsicott: { + learnset: { + absorb: ["8L1"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "5S0"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + cottonguard: ["8L1"], + cottonspore: ["8L1", "7L1", "6L1", "5L1"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L1", "7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "8L1", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + fairywind: ["8L1"], + faketears: ["8M"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L1", "7T", "6T", "5T", "5S0"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L1", "7L1", "6L1", "5L1"], + gust: ["8L1", "7L10", "6L10", "5L10"], + helpinghand: ["8M", "8L1", "7T", "6T", "5T", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["8M", "8L1", "7L46", "6L46", "5L46"], + hyperbeam: ["8M", "7M", "6M", "5M"], + knockoff: ["7T", "6T", "5T"], + leechseed: ["8L1", "7L1", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + megadrain: ["8L1", "7L1", "6L1", "5L1"], + memento: ["8L1"], + mistyterrain: ["8M"], + moonblast: ["8L1", "7L50", "6L50"], + naturepower: ["7M", "6M"], + playrough: ["8M"], + poisonpowder: ["8L1"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + razorleaf: ["8L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shadowball: ["8M", "7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "8L1", "7M", "6M", "5M"], + stunspore: ["8L1"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "8L1", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M", "5S0"], + swift: ["8M"], + tailwind: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trickroom: ["8M", "7M", "6M", "5M"], + uturn: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, gender: "F", nature: "Timid", ivs: {spe: 31}, abilities: ["prankster"], moves: ["swagger", "gigadrain", "beatup", "helpinghand"], pokeball: "cherishball"}, + ], + }, + petilil: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L1", "5L1"], + afteryou: ["9L27", "8L27", "7T", "7L44", "6T", "6L44", "5T", "5L44"], + aromatherapy: ["8L12", "7L28", "6L28", "5L28"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7E", "6E", "5E"], + bulletseed: ["9M"], + charm: ["9M", "9L12", "8M", "7E", "6E", "5E", "5D"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["9M", "8M", "7E"], + endure: ["9M", "8M", "7E", "6E", "5E"], + energyball: ["9M", "9L30", "8M", "8L30", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + entrainment: ["9L39", "8L39", "7L37", "6L37", "5L37"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "9L21", "8M", "8L21", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["9M", "8T"], + growth: ["9L1", "8L1", "7L4", "6L4", "5L4"], + healbell: ["7T", "6T", "5T"], + healingwish: ["9E", "8E", "7E", "6E", "5E"], + helpinghand: ["9M", "9L3", "8M", "8L3", "7T", "7L31", "6T", "6L31", "5T", "5L31"], + hiddenpower: ["7M", "6M", "5M"], + ingrain: ["9E", "8E", "7E", "6E", "5E"], + laserfocus: ["7T"], + leafstorm: ["9M", "9L42", "8M", "8L42", "7L46", "6L46", "5L46"], + leechseed: ["9L24", "8L24", "7L8", "6L8", "5L8"], + magicalleaf: ["9M", "9L15", "8M", "8L15", "7L19", "6L19", "5L19"], + megadrain: ["9L9", "8L9", "7L13", "6L13", "5L13"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["7M", "6M"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeppowder: ["9L18", "8L18", "7L10", "6L10", "5L10", "5D"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + stunspore: ["9L6", "8L6", "7L22", "6L22", "5L22"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "9L36", "8M", "8L36", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["9E", "8E", "7E", "6E", "5E", "5D"], + synthesis: ["9L33", "8L33", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + worryseed: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + lilligant: { + learnset: { + absorb: ["9L1", "8L1"], + afteryou: ["9L1", "8L1", "7T", "6T", "5T"], + aromatherapy: ["8L1"], + attract: ["8M", "7M", "6M", "5M"], + bulletseed: ["9M"], + charm: ["9M", "9L1", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + entrainment: ["9L1", "8L1"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "7L1", "6L1", "5L1"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + laserfocus: ["7T"], + leafblade: ["8M"], + leafstorm: ["9M", "9L1", "8M", "8L1"], + leechseed: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "9L5", "8M", "8L1"], + megadrain: ["9L1", "8L1", "7L1", "6L1", "5L1"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L1", "8L1", "7L50", "6L50"], + petaldance: ["9L0", "8L0", "7L46", "6L46", "5L46"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + quiverdance: ["9L1", "8L1", "7L28", "6L28", "5L28"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeppowder: ["9L1", "8L1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + solarblade: ["9M", "8M"], + stunspore: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + synthesis: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + teeterdance: ["9L1", "8L1", "7L10", "6L10", "5L10"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + weatherball: ["9M"], + worryseed: ["7T", "6T", "5T"], + }, + }, + lilliganthisui: { + learnset: { + absorb: ["9L1"], + acrobatics: ["9M"], + aerialace: ["9M"], + afteryou: ["9L1"], + airslash: ["9M"], + axekick: ["9L5"], + brickbreak: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + defog: ["9L1"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L1"], + entrainment: ["9L1"], + facade: ["9M"], + gigadrain: ["9M", "9L1"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1"], + helpinghand: ["9M", "9L1"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + leafblade: ["9L1"], + leafstorm: ["9M", "9L1"], + leechseed: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "9L1"], + megadrain: ["9L1"], + megakick: ["9L1"], + metronome: ["9M"], + petalblizzard: ["9L1"], + poisonjab: ["9M"], + pollenpuff: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeppowder: ["9L1"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M", "9L1"], + stunspore: ["9L1"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + swordsdance: ["9M"], + synthesis: ["9L1"], + takedown: ["9M"], + teeterdance: ["9L1"], + terablast: ["9M"], + trailblaze: ["9M"], + vacuumwave: ["9M"], + victorydance: ["9L0"], + weatherball: ["9M"], + }, + }, + basculin: { + learnset: { + agility: ["9M", "8M", "7E", "6E", "5E", "5D"], + aquajet: ["9L12", "8L12", "7L9", "6L13", "5L13"], + aquatail: ["8L44", "7T", "7L20", "6T", "6L28", "5T", "5L28"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L16", "8L16", "7L7", "6L10", "5L10"], + blizzard: ["9M"], + bounce: ["8M", "7T", "6T", "5T"], + brine: ["8M", "7E", "6E", "5E"], + bubblebeam: ["9E", "8E", "7E", "6E", "5E"], + chillingwater: ["9M"], + chipaway: ["7L11", "6L16", "5L16"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L17", "6L24", "5L24"], + cut: ["6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleedge: ["9L52", "8L52", "7L26", "6L36", "5L36"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["9E", "8E", "7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + finalgambit: ["9L40", "8L40", "7L38", "6L50", "5L51"], + flail: ["9L8", "8L8", "7L34", "6L1", "5L46"], + flipturn: ["9M", "8T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M"], + hail: ["8M", "7M", "6M", "5M"], + headbutt: ["9L24", "8L24", "7L5", "6L7", "5L7", "5D"], + headsmash: ["9L56", "8L56", "7L46", "7E"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icefang: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "6T", "5T"], + liquidation: ["9M", "8M", "7T"], + muddywater: ["8M", "7E", "6E", "5E"], + mudshot: ["9M", "8M", "7E", "6E", "5E"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychicfangs: ["9M", "8M"], + rage: ["7E", "6E", "5E"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7E", "6E", "5E"], + reversal: ["9M", "8M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L30", "6L41", "5L41"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L28", "8L28", "7L23", "6L32", "5L32"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M", "7E", "6E", "5E"], + tackle: ["9L4", "8L4", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M", "9L36", "8L36", "7L14", "6L20", "5L20"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thrash: ["9L48", "8L48", "7L42", "6L1", "5L56"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "7L3", "6T", "6L4", "5T", "5L4"], + waterfall: ["9M", "8M", "7M", "6M", "5M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + whirlpool: ["8M", "7E", "6E", "5E"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "5D"], + }, + }, + basculinwhitestriped: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + bite: ["9L16"], + blizzard: ["9M"], + chillingwater: ["9M"], + crunch: ["9M", "9L32"], + doubleedge: ["9L52"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L8"], + flipturn: ["9M"], + headbutt: ["9L24"], + headsmash: ["9L56"], + hydropump: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9E"], + liquidation: ["9M"], + mudshot: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M", "9L20"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9L28"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9L48"], + uproar: ["9M", "9L40"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + zenheadbutt: ["9M"], + }, + }, + basculegion: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + bite: ["9L16"], + blizzard: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + crunch: ["9M", "9L32"], + doubleedge: ["9L52"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L8"], + flipturn: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L24"], + headsmash: ["9L56"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9E"], + liquidation: ["9M"], + mudshot: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + phantomforce: ["9M", "9L1"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M", "9L20"], + shadowball: ["9M", "9L1"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9L28"], + spite: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9L48"], + uproar: ["9M", "9L40"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + zenheadbutt: ["9M"], + }, + }, + basculegionf: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + bite: ["9L16"], + blizzard: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + crunch: ["9M", "9L32"], + doubleedge: ["9L52"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L8"], + flipturn: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L24"], + headsmash: ["9L56"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9E"], + liquidation: ["9M"], + mudshot: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + phantomforce: ["9M", "9L1"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M", "9L20"], + shadowball: ["9M", "9L1"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9L28"], + spite: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9L48"], + uproar: ["9M", "9L40"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + zenheadbutt: ["9M"], + }, + }, + sandile: { + learnset: { + aquatail: ["9E", "8E", "7T", "6T", "5T"], + assurance: ["8M", "7L16", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "7E", "6E", "5E"], + bite: ["9L15", "8L15", "7L4", "6L4", "5L4"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E"], + crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "9L21", "8M", "8L21", "7L31", "6M", "6L31", "5M", "5L31"], + doubleedge: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M", "7E", "6E", "5E"], + fling: ["9M"], + focusenergy: ["8M", "7E", "6E", "5E"], + foulplay: ["9M", "9L33", "8M", "8L33", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + frustration: ["7M", "6M", "5M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L6", "8L6", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + meanlook: ["7E", "6E", "5E"], + mefirst: ["7E", "6E"], + mudshot: ["9M"], + mudslap: ["9M", "7L19", "6L19", "5L19"], + payback: ["8M", "7M", "6M", "5M"], + powertrip: ["9L1", "8L1", "7E"], + protect: ["9M", "8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + rage: ["7L1", "6L1", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["9M", "7M", "6M", "5M"], + rockclimb: ["7E", "6E", "5E"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L3", "8L3", "7L7", "6L7", "5L7"], + sandstorm: ["9M", "9L30", "8M", "8L30", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + sandtomb: ["9M", "9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L34", "6L34", "5L34"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["9M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "9E", "8E", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["9L24", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L39", "8L39", "7L46", "6L46", "5L46"], + thunderfang: ["9M", "8M", "7E", "6E", "5E"], + torment: ["9L18", "8L18", "7M", "7L10", "6M", "6L10", "5M", "5L10"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + krokorok: { + learnset: { + aerialace: ["9M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M", "7L16", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L15", "8L15", "7L1", "6L1", "5L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "9L21", "8M", "8L21", "7L32", "6M", "6L32", "5M", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["9M"], + dragontail: ["9M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L42", "8M", "8L42", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["9M", "7T", "6T"], + foulplay: ["9M", "9L35", "8M", "8L35", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + frustration: ["7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L1", "8L1", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7L19", "6L19", "5L19"], + payback: ["8M", "7M", "6M", "5M"], + powertrip: ["9L1", "8L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7L1", "6L1", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["9M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], + sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + sandtomb: ["9M", "9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaleshot: ["9M"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L36", "6L36", "5L36"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["9L24", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L47", "8L47", "7L52", "6L52", "5L52"], + thunderfang: ["9M", "8M"], + torment: ["9L18", "8L18", "7M", "7L10", "6M", "6L10", "5M", "5L10"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + }, + }, + krookodile: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M", "7L16", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L15", "8L15", "7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + counter: ["5D"], + crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28", "5D"], + cut: ["6M", "5M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "9L21", "8M", "8L21", "7L32", "6M", "6L32", "5M", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L54", "6M", "6L54", "5M", "5L54"], + embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["9M", "7T", "6T"], + foulplay: ["9M", "9L35", "8M", "8L35", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["9M", "8M"], + honeclaws: ["9L1", "8L1", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + meanlook: ["5D"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7L19", "6L19", "5L19"], + outrage: ["9M", "9L58", "8M", "8L58", "7T", "7L60", "6T", "6L1", "5T", "5L60"], + payback: ["8M", "7M", "6M", "5M"], + powertrip: ["9L1", "8L1", "7L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7L1", "6L1", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["9M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], + sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + sandtomb: ["9M", "9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L36", "6L36", "5L36"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["9L24", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L51", "8L51"], + throatchop: ["8M", "7T"], + thunderfang: ["9M", "8M"], + torment: ["9L18", "8L18", "7M", "7L10", "6M", "6L10", "5M", "5L10"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + }, + }, + darumaka: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bellydrum: ["8L36", "7L30", "6L30", "5L30"], + bite: ["8L8"], + brickbreak: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + ember: ["8L1"], + encore: ["8M", "7E", "6E", "5E"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "7E", "6E", "5E"], + extrasensory: ["8E", "7E"], + facade: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + fireblast: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "8L20", "7L11", "6L11", "5L11"], + firepunch: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L22"], + firespin: ["8M"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M"], + flamewheel: ["8E", "7E", "6E", "5E"], + flareblitz: ["8M", "8L40", "7L33", "6L33", "5L33"], + fling: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "7E", "6E", "5E"], + focuspunch: ["8E", "7T", "7E", "6T", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8E", "7E", "6E", "5E"], + headbutt: ["8L24", "7L14", "6L14", "5L14"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["8L12", "7L6", "6M", "6L6", "5M", "5L6"], + megakick: ["8M"], + megapunch: ["8M"], + overheat: ["8M", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + rage: ["7L9", "6L9", "5L9"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L3", "6L3", "5L3"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L48", "7T", "7L39", "6T", "6L39", "5T", "5L39"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8E", "7E", "6E", "5E"], + taunt: ["8M", "8L4", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + thief: ["8M", "7M", "6M", "5M"], + thrash: ["8L44", "7L27", "6L27", "5L27"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L32", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + uturn: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L16", "7M", "7L25", "6L25", "5M", "5L25"], + yawn: ["8E", "7E", "6E", "5E"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + darumakagalar: { + learnset: { + attract: ["8M"], + avalanche: ["8M", "8L12"], + bellydrum: ["8L36"], + bite: ["8L8"], + blizzard: ["8M", "8L40"], + brickbreak: ["8M"], + dig: ["8M"], + encore: ["8M"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firepunch: ["8M"], + firespin: ["8M"], + flamethrower: ["8M"], + flamewheel: ["8E"], + flareblitz: ["8M"], + fling: ["8M"], + focusenergy: ["8M"], + focuspunch: ["8E"], + freezedry: ["8E"], + grassknot: ["8M"], + gyroball: ["8M"], + hammerarm: ["8E"], + headbutt: ["8L24"], + heatwave: ["8M"], + icebeam: ["8M"], + icefang: ["8M", "8L20"], + icepunch: ["8M", "8L28"], + incinerate: ["8E"], + megakick: ["8M"], + megapunch: ["8M"], + overheat: ["8M"], + powdersnow: ["8L1"], + poweruppunch: ["8E"], + protect: ["8M"], + rest: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M", "8L48"], + tackle: ["8L1"], + takedown: ["8E"], + taunt: ["8M", "8L4"], + thief: ["8M"], + thrash: ["8L44"], + uproar: ["8M", "8L32"], + uturn: ["8M"], + willowisp: ["8M"], + workup: ["8M", "8L16"], + yawn: ["8E"], + zenheadbutt: ["8M"], + }, + }, + darmanitan: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bellydrum: ["8L38", "7L30", "6L30", "6S1", "5L30", "5S0"], + bite: ["8L1"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulkup: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + ember: ["8L1"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + fireblast: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "8L20", "7L11", "6L11", "5L11"], + firepunch: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L22"], + firespin: ["8M"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M"], + flareblitz: ["8M", "8L44", "7L33", "6L33", "6S1", "5L33", "5S0"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L0", "7L1", "6L35", "6S1", "5L35", "5S0"], + headbutt: ["8L24", "7L14", "6L14", "5L14"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + incinerate: ["8L12", "7L1", "6M", "6L1", "5M", "5L1"], + irondefense: ["8M"], + ironhead: ["8M"], + laserfocus: ["7T"], + lashout: ["8T"], + megakick: ["8M"], + megapunch: ["8M"], + mysticalfire: ["8M"], + overheat: ["8M", "7M", "7L54", "6M", "6L54", "5M", "5L54"], + payback: ["8M", "7M", "6M", "5M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + rage: ["7L1", "6L1", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L56", "7T", "7L47", "6T", "6L47", "5T", "5L47"], + swagger: ["7M", "7L17", "6M", "6L17", "5M", "5L17"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + taunt: ["8M", "8L1", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + thief: ["8M", "7M", "6M", "5M"], + thrash: ["8L50", "7L27", "6L27", "6S1", "5L27", "5S0"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M"], + uproar: ["8M", "8L32", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L16", "7M", "7L25", "6L25", "5M", "5L25"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 35, isHidden: true, moves: ["thrash", "bellydrum", "flareblitz", "hammerarm"]}, + {generation: 6, level: 35, gender: "M", nature: "Calm", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, isHidden: true, moves: ["thrash", "bellydrum", "flareblitz", "hammerarm"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 32, maxEggMoves: 1}, + ], + }, + darmanitangalar: { + learnset: { + attract: ["8M"], + avalanche: ["8M", "8L12"], + bellydrum: ["8L38"], + bite: ["8L1"], + blizzard: ["8M", "8L44"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M"], + bulkup: ["8M"], + bulldoze: ["8M"], + burningjealousy: ["8T"], + dig: ["8M"], + earthquake: ["8M"], + encore: ["8M"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firepunch: ["8M"], + firespin: ["8M"], + flamethrower: ["8M"], + flareblitz: ["8M"], + fling: ["8M"], + focusblast: ["8M"], + focusenergy: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + gyroball: ["8M"], + headbutt: ["8L24"], + heatwave: ["8M"], + hyperbeam: ["8M"], + icebeam: ["8M"], + icefang: ["8M", "8L20"], + icepunch: ["8M", "8L28"], + iciclecrash: ["8L0"], + irondefense: ["8M"], + ironhead: ["8M"], + lashout: ["8T"], + megakick: ["8M"], + megapunch: ["8M"], + overheat: ["8M"], + payback: ["8M"], + powdersnow: ["8L1"], + protect: ["8M"], + psychic: ["8M"], + rest: ["8M"], + reversal: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M", "8L56"], + tackle: ["8L1"], + taunt: ["8M", "8L1"], + thief: ["8M"], + thrash: ["8L50"], + uproar: ["8M", "8L32"], + uturn: ["8M"], + willowisp: ["8M"], + workup: ["8M", "8L16"], + zenheadbutt: ["8M"], + }, + }, + maractus: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1"], + acupressure: ["8L52", "7L29", "6L29", "5L29"], + aerialace: ["7M", "6M", "5M"], + afteryou: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L57"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + bulletseed: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + cottonguard: ["8L60", "7L1", "6L1", "5L55"], + cottonspore: ["8L40", "7L18", "6L18", "5L18"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L24", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + grassknot: ["8M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + growth: ["8L4", "7L6", "6L6", "5L6"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + ingrain: ["8L1", "7L33", "6L33", "5L33"], + knockoff: ["7T", "6T", "5T"], + leafstorm: ["8M"], + leechseed: ["8L12", "7E", "6E", "5E", "5D"], + megadrain: ["8L8", "7L13", "6L13", "5L13"], + naturepower: ["7M", "6M"], + needlearm: ["7L22", "6L22", "5L22"], + peck: ["8L1", "7L1", "6L1", "5L1"], + petalblizzard: ["8L36", "7L48", "6L48"], + petaldance: ["8L56", "7L38", "6L38", "5L38"], + pinmissile: ["8M", "8L20", "7L10", "6L10", "5L10", "5D"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "8L48", "7M", "7L50", "6M", "6L50", "5M", "5L50"], + spikes: ["8M", "7E", "6E", "5E", "5D"], + spikyshield: ["8L1", "7L1", "6L1"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L16", "7L42", "6L42", "5L42"], + sunnyday: ["8M", "8L44", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["8L28", "7L3", "6L3", "5L3"], + synthesis: ["8L32", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + weatherball: ["8M"], + woodhammer: ["8E", "7E", "6E", "5E"], + worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + dwebble: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + block: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + bugbite: ["8L12", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E"], + curse: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7L13", "6L13", "5L13"], + flail: ["8L16", "7L41", "6L41", "5L41"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["8E", "7T", "6T", "5T"], + naturepower: ["7M", "6M"], + nightslash: ["8E", "7E", "6E", "5E"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L32", "7L5", "6L5", "5L5"], + rockpolish: ["8L40", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + rockslide: ["8M", "8L24", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rockwrecker: ["8L48", "7L43", "6L43", "5L43"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L11", "6L11", "5L11"], + sandstorm: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shellsmash: ["8L44", "7L37", "6L37", "5L37"], + skittersmack: ["8T"], + slash: ["8L20", "7L31", "6L31", "5L31"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L8", "7M", "7L17", "6M", "6L17", "5M", "5L17"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M", "7E", "6E", "5E"], + stealthrock: ["8M", "8L28", "7T", "7L24", "6T", "6L24", "5T", "5L24"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + wideguard: ["8E", "7E", "6E"], + withdraw: ["8L4", "7L7", "6L7", "5L7"], + xscissor: ["8M", "8L36", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + }, + }, + crustle: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bugbite: ["8L12", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["5D"], + cut: ["6M", "5M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7L13", "6L13", "5L13"], + flail: ["8L16", "7L50", "6L50", "5L50"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + meteorbeam: ["8T"], + naturepower: ["7M", "6M"], + nightslash: ["5D"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L32", "7L1", "6L1", "5L1"], + rockpolish: ["8L44", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + rockslide: ["8M", "8L24", "7M", "7L29", "6M", "6L29", "5M", "5L29", "5D"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rockwrecker: ["8L56", "7L55", "6L55", "5L55"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shellsmash: ["8L50", "7L1", "6L1", "5L1"], + skittersmack: ["8T"], + slash: ["8L20", "7L31", "6L31", "5L31"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L1", "7M", "7L17", "6M", "6L17", "5M", "5L17"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + solarblade: ["8M"], + spikes: ["8M"], + stealthrock: ["8M", "8L28", "7T", "7L24", "6T", "6L24", "5T", "5L24"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + withdraw: ["8L1", "7L1", "6L1", "5L1"], + xscissor: ["8M", "8L38", "7M", "7L38", "6M", "6L38", "5M", "5L38"], + }, + encounters: [ + {generation: 6, level: 33, maxEggMoves: 1}, + ], + }, + scraggy: { + learnset: { + acidspray: ["8E", "7E"], + amnesia: ["8M", "7E", "6E", "5E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "8L24"], + brickbreak: ["8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], + bulkup: ["8M", "7M", "6M", "5M"], + chipaway: ["7L27", "6L27", "5L27"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E"], + crunch: ["8M", "8L40", "7L38", "6L38", "5L38"], + darkpulse: ["8M", "7M", "6M", "5T"], + detect: ["8E", "7E", "6E", "5E"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M", "7E", "6E", "5E"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + dualchop: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "8L16", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + fakeout: ["8E", "7E", "6E", "5E", "5D"], + faketears: ["8M"], + feintattack: ["7L9", "7E", "6L9", "6E", "5L9", "5E"], + firepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["8L48", "7T", "7L48", "6T", "6L48", "5L49"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + headbutt: ["8L8", "7L1", "6L12", "5L12", "5S0"], + headsmash: ["8L52", "7L50", "6L50", "5L53"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["8L44", "7L31", "6L31", "5L31", "5S0"], + icepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1", "5S0"], + lowkick: ["8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1", "5D", "5S0"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "8L4", "7M", "7L20", "6M", "6L23", "5M", "5L23"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["8E", "7E", "6M"], + protect: ["8M", "8L20", "7M", "6M", "5M"], + quickguard: ["8E", "7E", "6E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + rockclimb: ["7L45", "6L45", "5L45"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L12", "7L5", "6L5", "5L5"], + scaryface: ["8M", "8L28", "7L34", "6L34", "5L34"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + swagger: ["8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M"], + thunderpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + eventData: [ + {generation: 5, level: 1, gender: "M", nature: "Adamant", abilities: ["moxie"], moves: ["headbutt", "leer", "highjumpkick", "lowkick"], pokeball: "cherishball"}, + ], + }, + scrafty: { + learnset: { + amnesia: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "8L24"], + brickbreak: ["8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], + bulkup: ["8M", "7M", "6M", "5M"], + chipaway: ["7L27", "6L27", "5L27"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42", "7L38", "6L38", "5L38"], + darkpulse: ["8M", "7M", "6M", "5T"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T", "5S0"], + dualchop: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "8L16", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + faketears: ["8M"], + feintattack: ["7L1", "6L1", "5L1"], + firepunch: ["8M", "7T", "6T", "5T", "5S0"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["8L54", "7T", "7L58", "6T", "6L58", "5L58"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + headbutt: ["8L1", "7L1", "6L12", "5L12"], + headsmash: ["8L60", "7L65", "6L65", "5L65"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["8L48", "7L31", "6L31", "5L31"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "7T", "6T", "5T"], + payback: ["8M", "8L1", "7M", "7L20", "6M", "6L23", "5M", "5L23", "5S0"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + rockclimb: ["7L51", "6L51", "5L51"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L12", "7L1", "6L1", "5L1"], + scaryface: ["8M", "8L28", "7L34", "6L34", "5L34"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "5S0"], + sunnyday: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + swagger: ["8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Brave", abilities: ["moxie"], moves: ["firepunch", "payback", "drainpunch", "substitute"], pokeball: "cherishball"}, + ], + }, + sigilyph: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aircutter: ["8L15", "7L21", "6L21", "5L21"], + airslash: ["8M", "8L35", "7L41", "6L41", "5L41"], + ancientpower: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1"], + cosmicpower: ["8M", "8L30", "7L48", "6L48", "5L48"], + darkpulse: ["8M", "7M", "6M", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "7E", "6E"], + gigaimpact: ["8M"], + gravity: ["8L5", "7T", "7L38", "6T", "6L38", "5T", "5L38"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T", "5D"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypnosis: ["8L10", "7L4", "6L4", "5L4", "5D"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + lightscreen: ["8M", "8L50", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["8M", "7T", "6T", "5T"], + miracleeye: ["7L1", "6L1", "5L1"], + mirrormove: ["7L34", "6L34", "5L34"], + pluck: ["5M"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L20", "7L18", "6L18", "5L18"], + psychic: ["8M", "8L40", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + psychocut: ["8M"], + psychoshift: ["8E", "7E", "6E", "5E"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L8", "6L8", "5L8"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "8L50", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L60", "7T", "7E", "6T", "6E", "5T", "5E"], + skyattack: ["8L55", "7T", "7L50", "6T", "6L50", "5T", "5L51"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + speedswap: ["8M"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + storedpower: ["8M", "7E", "6E", "5E", "5D"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + synchronoise: ["7L31", "6L31", "5L31"], + tailwind: ["8L45", "7T", "7L11", "6T", "6L11", "5T", "5L11"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + whirlwind: ["8L25", "7L14", "6L14", "5L14"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + yamask: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T", "7E", "6E"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + calmmind: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + craftyshield: ["8L20", "7E"], + curse: ["8L36", "7L29", "6L29", "5L29"], + darkpulse: ["8M", "8L44", "7M", "6M", "5T"], + destinybond: ["8L52", "7L49", "6L49", "5L49"], + disable: ["8L12", "7L5", "7E", "6L5", "6E", "5L5", "5E"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M", "7E", "6E", "5E"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M", "7E", "6E", "5E"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + grudge: ["8L32", "7L41", "6L41", "5L41"], + guardsplit: ["8L48", "7L33", "6L33", "5L33"], + haze: ["8L4", "7L9", "6L9", "5L9"], + healblock: ["7E", "6E", "5E"], + hex: ["8M", "8L24", "7L17", "6L17", "5L17"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["8M", "7E", "6E", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + magiccoat: ["7T", "6T", "5T"], + meanlook: ["8L28", "7L45", "6L45", "5L45"], + memento: ["8E", "7E", "6E", "5E"], + nastyplot: ["8M", "7E", "6E", "5E"], + nightmare: ["7E", "6E", "5E"], + nightshade: ["8L8", "7L13", "6L13", "5L13"], + ominouswind: ["7L25", "6L25", "5L25"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["8T"], + powersplit: ["8L48", "7L33", "6L33", "5L33"], + protect: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L40", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + shockwave: ["7T", "6T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + toxicspikes: ["8M", "7E", "6E"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8L16", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + yamaskgalar: { + learnset: { + allyswitch: ["8M"], + astonish: ["8L1"], + attract: ["8M"], + brutalswing: ["8M", "8L16"], + calmmind: ["8M"], + craftyshield: ["8L20"], + curse: ["8L36"], + darkpulse: ["8M"], + destinybond: ["8L52"], + disable: ["8L12"], + earthpower: ["8M"], + earthquake: ["8M", "8L44"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + faketears: ["8M"], + guardsplit: ["8L48"], + haze: ["8L4"], + hex: ["8M", "8L24"], + imprison: ["8M"], + irondefense: ["8M"], + meanlook: ["8L28"], + memento: ["8E"], + nastyplot: ["8M"], + nightshade: ["8L8"], + payback: ["8M"], + poltergeist: ["8T"], + powersplit: ["8L48"], + protect: ["8M", "8L1"], + psychic: ["8M"], + raindance: ["8M"], + rest: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + shadowball: ["8M", "8L40"], + skillswap: ["8M"], + slam: ["8L32"], + sleeptalk: ["8M"], + snore: ["8M"], + substitute: ["8M"], + thief: ["8M"], + toxicspikes: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + willowisp: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + cofagrigus: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + craftyshield: ["8L20"], + curse: ["8L38", "7L29", "6L29", "5L29"], + darkpulse: ["8M", "8L50", "7M", "7S0", "6M", "5T"], + destinybond: ["8L62", "7L57", "6L57", "5L57"], + disable: ["8L12", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + grudge: ["8L32", "7L45", "6L45", "5L45"], + guardsplit: ["8L56", "7L33", "6L33", "5L33"], + guardswap: ["8M"], + haze: ["8L1", "7L1", "6L1", "5L1"], + hex: ["8M", "8L24", "7L17", "6L17", "5L17"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + imprison: ["8M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + magiccoat: ["7T", "6T", "5T"], + meanlook: ["8L28", "7L51", "6L51", "5L51"], + nastyplot: ["8M"], + nightshade: ["8L1", "7L13", "6L13", "5L13"], + ominouswind: ["7L25", "6L25", "5L25"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + phantomforce: ["8M"], + poltergeist: ["8T"], + powersplit: ["8L56", "7L33", "7S0", "6L33", "5L33"], + powerswap: ["8M"], + protect: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L1", "7L1", "6L34", "5L34"], + secretpower: ["6M"], + shadowball: ["8M", "8L44", "7M", "7L39", "7S0", "6M", "6L39", "5M", "5L39"], + shadowclaw: ["8M", "8L0"], + shockwave: ["7T", "6T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + toxicspikes: ["8M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8L16", "7M", "7L21", "7S0", "6M", "6L21", "5M", "5L21"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 7, level: 66, gender: "M", moves: ["willowisp", "shadowball", "powersplit", "darkpulse"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 32, maxEggMoves: 1}, + ], + }, + runerigus: { + learnset: { + allyswitch: ["8M"], + amnesia: ["8M"], + astonish: ["8L1"], + attract: ["8M"], + bodypress: ["8M"], + brutalswing: ["8M", "8L16"], + bulldoze: ["8M"], + calmmind: ["8M"], + craftyshield: ["8L20"], + curse: ["8L38"], + darkpulse: ["8M"], + destinybond: ["8L62"], + disable: ["8L12"], + dragonpulse: ["8M"], + earthpower: ["8M"], + earthquake: ["8M", "8L50"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + faketears: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + guardsplit: ["8L56"], + guardswap: ["8M"], + haze: ["8L1"], + hex: ["8M", "8L24"], + hyperbeam: ["8M"], + imprison: ["8M"], + irondefense: ["8M"], + meanlook: ["8L28"], + nastyplot: ["8M"], + nightshade: ["8L1"], + payback: ["8M"], + phantomforce: ["8M"], + poltergeist: ["8T"], + powersplit: ["8L56"], + powerswap: ["8M"], + protect: ["8M", "8L1"], + psychic: ["8M"], + raindance: ["8M"], + rest: ["8M"], + revenge: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + sandtomb: ["8M"], + scaryface: ["8M", "8L1"], + shadowball: ["8M", "8L44"], + shadowclaw: ["8M", "8L0"], + skillswap: ["8M"], + slam: ["8L32"], + sleeptalk: ["8M"], + snore: ["8M"], + stealthrock: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + taunt: ["8M"], + thief: ["8M"], + toxicspikes: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + willowisp: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + tirtouga: { + learnset: { + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquajet: ["8L6", "7L15", "6L15", "5L15", "5S0"], + aquatail: ["8L36", "7T", "7L41", "6T", "6L41", "5T", "5L41"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "7E", "6L1", "6E", "5L1", "5E"], + bite: ["8L15", "7L8", "6L8", "5L8", "5S0"], + blizzard: ["8M", "7M", "6M", "5M"], + block: ["8E", "7T", "6T", "5T"], + bodyslam: ["8M", "7E", "6E", "5E", "5S0"], + brine: ["8M", "8L21", "7L28", "6L28", "5L28"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L27", "7L21", "6L21", "5L21"], + curse: ["8L30", "7L35", "6L35", "5L35"], + dig: ["8M", "6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["7E", "6E", "5E", "5D"], + frustration: ["7M", "6M", "5M"], + guardswap: ["8M", "7E", "6E"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L42", "7L50", "6L50", "5L51"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + irondefense: ["8M", "8L33", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5E"], + liquidation: ["8M", "7T", "7E"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["8M"], + protect: ["8M", "8L3", "7M", "7L11", "6M", "6L11", "5M", "5L11", "5S0"], + raindance: ["8M", "8L39", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + rocksmash: ["6M", "5M"], + rockthrow: ["8E", "7E", "6E", "5E"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["8E", "7L5", "6L5", "5L5", "5D"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shellsmash: ["8L45", "7L38", "6L38", "5L38"], + slam: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L9", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1", "7L1", "6L1", "5L1"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E"], + whirlpool: ["8M", "7E", "6E", "5E"], + wideguard: ["8L18", "7L25", "6L25", "5L25"], + withdraw: ["8L1", "7L1", "6L1", "5L1"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["sturdy"], moves: ["bite", "protect", "aquajet", "bodyslam"], pokeball: "cherishball"}, + ], + }, + carracosta: { + learnset: { + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquajet: ["8L1", "7L15", "6L15", "5L15"], + aquatail: ["8L36", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + bite: ["8L15", "7L8", "6L8", "5L8"], + blizzard: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodyslam: ["8M"], + brine: ["8M", "8L21", "7L28", "6L28", "5L28"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L27", "7L21", "6L21", "5L21"], + curse: ["8L30", "7L35", "6L35", "5L35"], + dig: ["8M", "6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + guardswap: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L46", "7L61", "6L61", "5L61"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + irondefense: ["8M", "8L33", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T", "6T", "5T"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["8M"], + protect: ["8M", "8L1", "7M", "7L11", "6M", "6L11", "5M", "5L11"], + raindance: ["8M", "8L41", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + razorshell: ["8M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shellsmash: ["8L51", "7L40", "6L40", "5L40"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L9", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1", "7L1", "6L1", "5L1"], + waterpulse: ["7T", "6T"], + whirlpool: ["8M"], + wideguard: ["8L18", "7L25", "6L25", "5L25"], + withdraw: ["8L1", "7L1", "6L1", "5L1"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + archen: { + learnset: { + acrobatics: ["8M", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L33", "7L21", "6L21", "5L21"], + allyswitch: ["8M", "7T", "7E", "6E"], + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["8E", "7E", "6E", "5E"], + bounce: ["8M", "7T", "6T", "5T"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L30", "7L35", "6L35", "5L35"], + cut: ["6M", "5M"], + defog: ["8E", "7T", "7E", "6E", "5E"], + dig: ["8M", "6M", "5M"], + doubleteam: ["8E", "7M", "7L8", "6M", "6L8", "5M", "5L8", "5S0"], + dragonbreath: ["8L9", "7L31", "6L31", "5L31"], + dragonclaw: ["8M", "8L39", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + dragonpulse: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + earthquake: ["8M", "7M", "6M", "5M"], + endeavor: ["8L45", "7T", "7L38", "6T", "6L38", "5T", "5L38"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + headsmash: ["8E", "7E", "6E", "5E", "5S0"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5E"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + meteorbeam: ["8T"], + pluck: ["8L15", "7L15", "6L15", "5M", "5L15"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L18", "7L25", "6L25", "5L25"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L3", "7L5", "6L5", "5L5"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L27", "7L11", "6L11", "5L11", "5S0"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + stoneedge: ["8M", "7M", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + switcheroo: ["8E", "7E", "6E"], + tailwind: ["8L36", "7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + thrash: ["8L42", "7L50", "6L50", "5L51"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "8L21", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + wingattack: ["8L6", "7L1", "6L1", "5L1", "5S0"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["headsmash", "wingattack", "doubleteam", "scaryface"], pokeball: "cherishball"}, + ], + }, + archeops: { + learnset: { + acrobatics: ["8M", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L33", "7L21", "6L21", "5L21"], + airslash: ["8M"], + allyswitch: ["8M", "7T"], + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L30", "7L35", "6L35", "5L35"], + cut: ["6M", "5M"], + defog: ["7T"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "7L8", "6M", "6L8", "5M", "5L8"], + dragonbreath: ["8L9", "7L31", "6L31", "5L31"], + dragonclaw: ["8M", "8L41", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endeavor: ["8L51", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + meteorbeam: ["8T"], + outrage: ["8M", "7T", "6T", "5T"], + pluck: ["8L15", "7L15", "6L15", "5M", "5L15"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L18", "7L25", "6L25", "5L25"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L1", "7L1", "6L1", "5L1"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L27", "7L11", "6L11", "5L11"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skyattack: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["8L36", "7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + thrash: ["8L46", "7L61", "6L61", "5L61"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "8L21", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + wingattack: ["8L1", "7L1", "6L1", "5L1"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + trubbish: { + learnset: { + acidspray: ["8L6", "7L12", "6L12", "5L12"], + amnesia: ["8M", "8L9", "7L40", "6L40", "5L40"], + attract: ["8M", "7M", "6M", "5M"], + autotomize: ["8E", "7E"], + belch: ["8L33", "7L42", "6L42"], + clearsmog: ["8L12", "7L34", "6L34", "5L34"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["8E", "7E", "6E", "5E"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + endure: ["8M"], + explosion: ["8L42", "7M", "7L47", "6M", "6L47", "5M", "5L47"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gunkshot: ["8M", "8L39", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + haze: ["8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + mudsport: ["7E", "6E", "5E"], + painsplit: ["8L37", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisongas: ["8L1", "7L1", "6L1", "5L1"], + pound: ["8L1", "7L1", "6L1", "5L1"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recycle: ["8L3", "7T", "7L3", "6T", "6L3", "5T", "5L3"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "7E", "6E", "5E"], + rollout: ["8E", "7E", "6E", "5E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8E", "7E", "6E", "5E"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + selfdestruct: ["8M", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludge: ["8L18", "7L18", "6L18", "5L18"], + sludgebomb: ["8M", "8L27", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spikes: ["8M", "7E", "6E", "5E"], + spite: ["7T", "6T", "5T"], + stockpile: ["8L21", "7L23", "6L23", "5L23"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swallow: ["8L21", "7L23", "6L23", "5L23"], + takedown: ["8L24", "7L25", "6L25", "5L25"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["8L30", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + toxicspikes: ["8M", "8L15", "7L7", "6L7", "5L7"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + }, + }, + garbodor: { + learnset: { + acidspray: ["8L1", "7L12", "6L12", "5L12"], + amnesia: ["8M", "8L9", "7L46", "6L46", "5L46"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["8L33", "7L49", "6L49"], + bodypress: ["8M"], + bodyslam: ["8M", "8L24", "7L25", "6L25", "5L25"], + clearsmog: ["8L12", "7L34", "6L34", "5L34"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + endure: ["8M"], + explosion: ["8L48", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + facade: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gunkshot: ["8M", "8L43", "7T", "7L54", "6T", "6L54", "5T", "5L54"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + metalclaw: ["8L1"], + painsplit: ["8L39", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisongas: ["8L1", "7L1", "6L1", "5L1"], + pound: ["8L1", "7L1", "6L1", "5L1"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recycle: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + selfdestruct: ["8M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludge: ["8L18", "7L18", "6L18", "5L18"], + sludgebomb: ["8M", "8L27", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + spite: ["7T", "6T", "5T"], + stockpile: ["8L21", "7L23", "6L23", "5L23"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swallow: ["8L21", "7L23", "6L23", "5L23"], + takedown: ["8L1"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + toxic: ["8L30", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + toxicspikes: ["8M", "8L15", "7L1", "6L1", "5L1"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 5, level: 31}, + {generation: 6, level: 30}, + {generation: 7, level: 24}, + ], + }, + zorua: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["9M", "9L32", "8M", "8L32", "7L37", "6L37", "5L37"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + confuseray: ["9M"], + copycat: ["9E", "8E", "7E", "6E"], + counter: ["9E", "8E", "7E", "6E", "5E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E"], + detect: ["9E", "8E", "7E", "6E", "5E"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41"], + encore: ["9M"], + endure: ["9M", "8M"], + extrasensory: ["9E", "8E", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28", "7L9", "6L9", "5L9"], + feintattack: ["7L17", "6L17", "5L17"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "9L48", "8M", "8L48", "7T", "7L29", "6T", "6L29", "5T", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L12", "8L12", "7L13", "6L13", "5L13"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L8", "8L8", "6M", "5M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "9L36", "8M", "8L36", "7L53", "6L53", "5L53"], + incinerate: ["6M", "5M"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + memento: ["9E", "8E", "7E", "6E", "5E"], + nastyplot: ["9M", "9L44", "8M", "8L44", "7L49", "6L49", "5L49"], + nightdaze: ["9L40", "8L40", "7L57", "6L57", "5L57"], + nightshade: ["9M"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L45", "6L45", "5L45"], + pursuit: ["7L5", "6L5", "5L5"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["9M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L16", "8M", "8L16", "7L21", "6L21", "5L21"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shadowclaw: ["9M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + torment: ["9L4", "8L4", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + }, + }, + zoruahisui: { + learnset: { + agility: ["9M", "9L32"], + bittermalice: ["9L40"], + burningjealousy: ["9M"], + calmmind: ["9M"], + comeuppance: ["9E"], + confuseray: ["9M"], + curse: ["9L16"], + darkpulse: ["9M"], + detect: ["9E"], + dig: ["9M"], + endure: ["9M"], + extrasensory: ["9E"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M", "9L48"], + gigaimpact: ["9M"], + hex: ["9M"], + honeclaws: ["9L8"], + hyperbeam: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M", "9L24"], + lashout: ["9M"], + leer: ["9L1"], + memento: ["9E"], + nastyplot: ["9M", "9L44"], + nightshade: ["9M"], + phantomforce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + scratch: ["9L1"], + shadowball: ["9M", "9L36"], + shadowclaw: ["9M"], + shadowsneak: ["9L12"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snowscape: ["9M"], + spite: ["9M", "9L28"], + substitute: ["9M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L20"], + terablast: ["9M"], + thief: ["9M"], + torment: ["9L4"], + trick: ["9M"], + uturn: ["9M"], + willowisp: ["9M"], + }, + }, + zoroark: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + agility: ["9M", "9L34", "8M", "8L34", "7L39", "6L39", "5L39", "5S0"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["9M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "6S1", "5T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "5S0"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28"], + feintattack: ["7L17", "6L17", "5L17"], + flamethrower: ["9M", "8M", "7M", "6M", "6S1", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "9L58", "8M", "8L58", "7T", "7L29", "6T", "6L29", "5T", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L12", "8L12", "7L13", "6L13", "6S2", "5L13"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L1", "8L1", "7L1", "6M", "6L1", "5M", "5L1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "9L40", "8M", "8L40", "7L1", "6L1", "5L59"], + incinerate: ["6M", "5M"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L52", "8M", "8L52", "7L54", "6L54", "6S2", "5L54"], + nightdaze: ["9L46", "8L46", "7L1", "6L1", "5L64"], + nightshade: ["9M"], + nightslash: ["9L0", "8L0", "7L1", "6L30", "5L30"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L49", "6L49", "6S2", "5L49", "5S0"], + pursuit: ["7L1", "6L1", "5L1"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["9M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M", "8L16", "7L21", "6L21", "6S2", "5L21"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "6S1"], + snarl: ["9M", "8M", "7M", "6M", "5M", "5S0"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["6S1"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + torment: ["9L1", "8L1", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + toxic: ["9M", "7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Quirky", moves: ["agility", "embargo", "punishment", "snarl"], pokeball: "cherishball"}, + {generation: 6, level: 50, moves: ["sludgebomb", "darkpulse", "flamethrower", "suckerpunch"], pokeball: "ultraball"}, + {generation: 6, level: 45, gender: "M", nature: "Naughty", moves: ["scaryface", "furyswipes", "nastyplot", "punishment"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 25}, + ], + }, + zoroarkhisui: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L34"], + bittermalice: ["9L46", "9S0"], + bodyslam: ["9M"], + brickbreak: ["9M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + curse: ["9L16"], + darkpulse: ["9M"], + dig: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + foulplay: ["9M", "9L58"], + gigaimpact: ["9M"], + grassknot: ["9M"], + happyhour: ["9S0"], + helpinghand: ["9M"], + hex: ["9M"], + honeclaws: ["9L1"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M", "9L24"], + lashout: ["9M"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M", "9L52", "9S0"], + nightshade: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M"], + scaryface: ["9M"], + scratch: ["9L1"], + shadowball: ["9M", "9L40"], + shadowclaw: ["9M", "9L0"], + shadowsneak: ["9L12"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snowscape: ["9M"], + spite: ["9M", "9L28"], + substitute: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L20"], + terablast: ["9M", "9S0"], + thief: ["9M"], + torment: ["9L1"], + trick: ["9M"], + uturn: ["9M", "9L1"], + willowisp: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, perfectIVs: 3, moves: ["happyhour", "bittermalice", "nastyplot", "terablast"], pokeball: "cherishball"}, + ], + }, + minccino: { + learnset: { + afteryou: ["8L28", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + aquatail: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L1", "7L3", "6L3"], + calmmind: ["8M", "7M", "6M", "5M"], + captivate: ["7L39", "6L39", "5L39"], + charm: ["8M", "8L16", "7L27", "6L27", "5L27"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleslap: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["8L8", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + encore: ["8M", "8L24", "7L15", "6L15", "5L15"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M", "7E", "6E", "5E"], + flail: ["8E", "7E", "6E", "5E"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["5L3"], + gunkshot: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "8L4", "7T", "7L7", "6T", "6L7", "5T", "5L7"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M", "8L44", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lastresort: ["8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + mudslap: ["7E", "6E", "5E"], + playrough: ["8M"], + pound: ["8L1", "7L1", "6L1", "5L1"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shockwave: ["7T", "6T"], + sing: ["8L12", "7L21", "6L21", "5L21"], + slam: ["8L40", "7L37", "6L37", "5L37"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "8L20", "7L19", "6L19", "5L19"], + tailslap: ["8M", "8L32", "7L25", "6L25", "5L25"], + tailwhip: ["8E", "7E", "6E", "5E"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + tickle: ["8L36", "7L9", "6L9", "5L9"], + toxic: ["7M", "6M", "5M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + wakeupslap: ["7L31", "6L31", "5L31"], + workup: ["8M", "7M", "5M"], + }, + }, + cinccino: { + learnset: { + afteryou: ["8L1", "7T", "6T", "5T"], + aquatail: ["7T", "6T", "5T"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L1"], + bulletseed: ["8M", "8L1", "7L1", "6L1", "5L1"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["8L1", "7M", "6M", "5M"], + encore: ["8M", "8L1"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gunkshot: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L1", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["8L1", "7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + playrough: ["8M"], + pound: ["8L1"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L1", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shockwave: ["7T", "6T"], + sing: ["8L1", "7L1", "6L1", "5L1"], + slam: ["8L1"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "8L1"], + tailslap: ["8M", "8L1", "7L1", "6L1", "5L1"], + thief: ["8M", "7M", "6M", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + tickle: ["8L1", "7L1", "6L1", "5L1"], + toxic: ["7M", "6M", "5M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + }, + gothita: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L46", "6L46", "5L46"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L3", "6L3", "5L3"], + covet: ["7T", "6T", "5T"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5E"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fakeout: ["9E", "8E"], + faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L10"], + feintattack: ["7L24", "6L24", "5L24"], + flash: ["6M", "5M"], + flatter: ["9L40", "8L40", "7L28", "6L28", "5L28"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["9L44", "8M", "8L44", "7L31", "6L31", "5L31"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], + guardswap: ["8M"], + healbell: ["7T", "6T", "5T"], + healblock: ["7L33", "6L33", "5L33"], + healpulse: ["9E", "8E", "7E", "6E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["9L24", "8L24"], + imprison: ["9M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["9L48", "8M", "8L48", "7T", "7L48", "6T", "6L48", "5T", "5L48"], + meanlook: ["9E", "8E", "7E", "6E", "5E"], + miracleeye: ["7E", "6E", "5E"], + mirrorcoat: ["9E", "8E", "7E", "6E", "5E"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + playnice: ["9L4", "8L4", "7L8", "6L8"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], + psychic: ["9M", "9L36", "8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychicterrain: ["9M"], + psychup: ["9L33", "8L33", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "7L40", "6L40", "5M", "5L40"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L8", "8L8", "7L7", "6L7", "5L7"], + torment: ["9E", "8E", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + }, + gothorita: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L50", "6L50", "5L50"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1"], + covet: ["7T", "6T", "5T"], + darkpulse: ["9M", "8M", "7M", "6M"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L1"], + feintattack: ["7L24", "6L24", "5L24"], + flash: ["6M", "5M"], + flatter: ["9L46", "8L46", "7L28", "6L28", "5L28", "5S0", "5S1"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["9L52", "8M", "8L52", "7L31", "6L31", "5L31", "5S0", "5S1"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], + guardswap: ["8M"], + healbell: ["7T", "6T", "5T"], + healblock: ["7L34", "6L34", "5L34"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["9L24", "8L24"], + imprison: ["9M", "5S1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["9L58", "8M", "8L58", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + metronome: ["9M"], + mirrorcoat: ["5S0"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + playnice: ["9L1", "8L1", "7L1", "6L1"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], + psychic: ["9M", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["9M"], + psychup: ["9L35", "8L35", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25", "5S0", "5S1"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "7L43", "6L43", "5M", "5L43"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L1", "8L1", "7L1", "6L1", "5L1"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 32, gender: "M", isHidden: true, moves: ["psyshock", "flatter", "futuresight", "mirrorcoat"]}, + {generation: 5, level: 32, gender: "M", isHidden: true, moves: ["psyshock", "flatter", "futuresight", "imprison"]}, + ], + encounters: [ + {generation: 5, level: 31}, + ], + }, + gothitelle: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L54", "6L54", "5L54"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1"], + cosmicpower: ["8M"], + covet: ["7T", "6T", "5T"], + darkpulse: ["9M", "8M", "7M", "6M"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L1"], + feintattack: ["7L24", "6L24", "5L24"], + flash: ["6M", "5M"], + flatter: ["9L48", "8L48", "7L28", "6L28", "5L28"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["9L56", "8M", "8L56", "7L31", "6L31", "5L31"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], + guardswap: ["8M"], + healbell: ["7T", "6T", "5T"], + healblock: ["7L34", "6L34", "5L34"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypnosis: ["9L24", "8L24"], + imprison: ["9M", "8M"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["9L64", "8M", "8L64", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + playnice: ["9L1", "8L1", "7L1", "6L1"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["9M"], + psychup: ["9L35", "8L35", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "7L45", "6L45", "5M", "5L45"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L1", "8L1", "7L1", "6L1", "5L1"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 34}, + ], + }, + solosis: { + learnset: { + acidarmor: ["8E", "7E", "6E", "5E"], + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "8L28", "7T"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E"], + confusion: ["8L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L8", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L44", "7L31", "6L31", "5L31"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healblock: ["7L46", "6L46", "5L46"], + helpinghand: ["8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], + imprison: ["8M", "7E", "6E", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + magiccoat: ["7T", "6T", "5T"], + nightshade: ["7E", "6E", "5E"], + painsplit: ["8L33", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + powerswap: ["8M"], + protect: ["8M", "8L1", "7M", "6M", "5M"], + psybeam: ["8L12"], + psychic: ["8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L4", "7L24", "6L24", "5L24"], + reflect: ["8M", "8L24", "7M", "7L3", "6M", "6L3", "5M", "5L3"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + rollout: ["7L7", "6L7", "5L7"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "7L10", "6T", "6L10", "5T", "5L10"], + snore: ["8M", "7T", "6T", "5T"], + steelroller: ["8T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L48", "7T", "7L48", "6T", "6L48", "5T", "5L48"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + duosion: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "8L28", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confusion: ["8L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L52", "7L31", "6L31", "5L31"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healblock: ["7L50", "6L50", "5L50"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], + imprison: ["8M", "5D"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + magiccoat: ["7T", "6T", "5T"], + painsplit: ["8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], + powerswap: ["8M"], + protect: ["8M", "8L1", "7M", "6M", "5M"], + psybeam: ["8L12"], + psychic: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L1", "7L24", "6L24", "5L24", "5D"], + reflect: ["8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L46", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + steelroller: ["8T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T", "5D"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L58", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 31}, + ], + }, + reuniclus: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "8L28", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confusion: ["8L1"], + dizzypunch: ["7L1", "6L41", "5L41"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L56", "7L31", "6L31", "5L31"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L0"], + healblock: ["7L54", "6L54", "5L54"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + magiccoat: ["7T", "6T", "5T"], + megapunch: ["8M"], + painsplit: ["8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "8L1", "7M", "6M", "5M"], + psybeam: ["8L12"], + psychic: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L1", "7L24", "6L24", "5L24"], + reflect: ["8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + steelroller: ["8T"], + storedpower: ["8M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L64", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 34}, + ], + }, + ducklett: { + learnset: { + aerialace: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + aircutter: ["9M", "7E", "6E", "5E"], + airslash: ["9M", "9L27", "7L27", "6L27", "5L27"], + aquajet: ["9E", "7E"], + aquaring: ["9L24", "7L24", "6L24", "5L24"], + attract: ["7M", "6M", "5M"], + bravebird: ["9M", "9L41", "7L41", "6L41", "5L41"], + brine: ["9E", "7E", "6E", "5E", "5D"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["9L6", "7T", "7L6", "6L6", "5L6", "5D"], + disarmingvoice: ["9M"], + dive: ["9E", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["9E", "7T", "6T", "5T"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + featherdance: ["9L21", "7L21", "6L21", "5L21"], + fly: ["9M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gust: ["9E", "7E", "6E", "5E"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["9M", "9L46", "7L46", "6L46", "5L46"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + liquidation: ["9M", "7T"], + luckychant: ["7E", "6E", "5E"], + mefirst: ["7E", "6E", "5E", "5D"], + mirrormove: ["7E", "6E", "5E"], + mudsport: ["7E", "6E"], + pluck: ["5M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["9L30", "7M", "7L30", "6M", "6L30", "5T", "5L30"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + steelwing: ["9E", "7M", "7E", "6M", "6E", "5E"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + tailwind: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpulse: ["9M", "9L13", "7T", "7L13", "6T", "6L13", "5L13"], + watersport: ["7L3", "6L3", "5L3"], + wingattack: ["9L9", "7L9", "6L9", "5L9"], + }, + }, + swanna: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L15", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + aircutter: ["9M"], + airslash: ["9M", "9L27", "7L27", "6L27", "5L27"], + aquaring: ["9L24", "7L24", "6L24", "5L24"], + attract: ["7M", "6M", "5M"], + bravebird: ["9M", "9L47", "7L47", "6L47", "5L47"], + bubblebeam: ["9L19", "7L19", "6L19", "5L19"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["9L1", "7T", "7L1", "6L1", "5L1"], + disarmingvoice: ["9M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + featherdance: ["9L21", "7L21", "6L21", "5L21"], + flipturn: ["9M"], + fly: ["9M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["9M", "9L55", "7L55", "6L55", "5L55"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + knockoff: ["9M"], + liquidation: ["9M", "7T"], + pluck: ["5M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "9L34", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["9L30", "7M", "7L30", "6M", "6L30", "5T", "5L30"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + steelwing: ["7M", "6M"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + tailwind: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpulse: ["9M", "9L13", "7T", "7L13", "6T", "6L13", "5L13"], + watersport: ["7L1", "6L1", "5L1"], + weatherball: ["9M"], + wingattack: ["9L1", "7L1", "6L1", "5L1"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + vanillite: { + learnset: { + acidarmor: ["8L32", "7L31", "6L31", "5L31"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L7", "6L7", "5L7"], + attract: ["8M", "7M", "6M", "5M"], + auroraveil: ["8E"], + autotomize: ["8E", "7E", "6E", "5E"], + avalanche: ["8M", "8L16", "7L19", "6L19", "5L19"], + blizzard: ["8M", "8L44", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8E", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + hail: ["8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + harden: ["8L1", "7L4", "6L4", "5L4"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M"], + icebeam: ["8M", "8L40", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + iceshard: ["8E", "7E", "6E", "5E"], + iciclecrash: ["8E"], + iciclespear: ["8M", "8L24", "7L1", "6L1", "5L1"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + imprison: ["8M", "7E", "6E", "5E"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + mirrorcoat: ["8L36", "7L44", "6L44", "5L44"], + mirrorshot: ["7L26", "6L26", "5L26"], + mist: ["8L8", "7L16", "6L16", "5L16"], + naturalgift: ["7E", "6E", "5E"], + powdersnow: ["7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sheercold: ["8L48", "7L53", "6L53", "5L53"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L10", "6T", "6L10", "5T", "5L10"], + waterpulse: ["7T", "7E", "6T", "6E", "5E"], + }, + }, + vanillish: { + learnset: { + acidarmor: ["8L32", "7L31", "6L31", "5L31"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["8M", "8L16", "7L19", "6L19", "5L19"], + blizzard: ["8M", "8L50", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + hail: ["8M", "8L20", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + harden: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M"], + icebeam: ["8M", "8L44", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + iceshard: ["5D"], + iciclespear: ["8M", "8L24", "7L1", "6L1", "5L1"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + imprison: ["8M", "5D"], + irondefense: ["8M", "7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + mirrorcoat: ["8L38", "7L47", "6L47", "5L47"], + mirrorshot: ["7L26", "6L26", "5L26", "5D"], + mist: ["8L1", "7L16", "6L16", "5L16"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sheercold: ["8L56", "7L58", "6L58", "5L58"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "8L1", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + waterpulse: ["7T", "6T"], + }, + }, + vanilluxe: { + learnset: { + acidarmor: ["8L32", "7L31", "6L31", "5L31"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["8M", "8L16", "7L19", "6L19", "5L19"], + beatup: ["8M"], + blizzard: ["8M", "8L52", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1", "7L1", "6L1"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "8L20", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + harden: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M"], + icebeam: ["8M", "8L44", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + iciclecrash: ["8L1"], + iciclespear: ["8M", "8L24", "7L1", "6L1", "5L1"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + imprison: ["8M"], + irondefense: ["8M", "7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + mirrorcoat: ["8L38", "7L50", "6L50", "5L50"], + mirrorshot: ["7L26", "6L26", "5L26"], + mist: ["8L1", "7L16", "6L16", "5L16"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sheercold: ["8L60", "7L1", "6L1", "5L67"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "8L1", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + waterpulse: ["7T", "6T"], + weatherball: ["8M", "8L1", "7L1", "6L1", "5L1"], + }, + }, + deerling: { + learnset: { + agility: ["9M", "9E", "7E", "6E", "5E"], + aromatherapy: ["7L28", "6L28", "5L28", "5S0"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M", "9E", "7E", "6E", "5E"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16"], + camouflage: ["7L1", "6L1", "5L1"], + charm: ["9M", "9L32", "7L36", "6L36", "5L36"], + confide: ["7M", "6M"], + dig: ["9M"], + doubleedge: ["9L37", "7L46", "6L46", "5L46"], + doublekick: ["9L10", "7L10", "6L10", "5L10"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + facade: ["9M", "7M", "6M", "5M"], + faketears: ["9M", "9E", "7E", "6E", "5E"], + feintattack: ["7L16", "6L16", "5L16", "5S0"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L4", "7L4", "6L4", "5L4"], + headbutt: ["9E", "7E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + jumpkick: ["7L24", "6L24", "5L24", "5S0"], + lastresort: ["7T", "6T", "5T"], + leafstorm: ["9M"], + leechseed: ["9L13", "7L13", "6L13", "5L13"], + lightscreen: ["9M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["7M", "7L41", "6M", "6L41", "5L41"], + odorsleuth: ["7E", "6E", "5E"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + sandattack: ["9L7", "7L7", "6L7", "5L7"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T", "5T"], + shadowball: ["9M", "7M", "6M", "5M"], + sleeptalk: ["9M", "9E", "7M", "7E", "6M", "6E", "5T", "5E"], + snore: ["7T", "6T", "5T"], + solarbeam: ["9M", "9L42", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synthesis: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20", "5S0"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + worryseed: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + zenheadbutt: ["9M", "9L24"], + }, + eventData: [ + {generation: 5, level: 30, gender: "F", isHidden: true, moves: ["feintattack", "takedown", "jumpkick", "aromatherapy"]}, + ], + }, + sawsbuck: { + learnset: { + agility: ["9M"], + aromatherapy: ["7L28", "6L28", "5L28"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16"], + camouflage: ["7L1", "6L1", "5L1"], + charm: ["9M", "9L36", "7L36", "6L36", "5L36"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + dig: ["9M"], + doubleedge: ["9L44", "7L52", "6L52", "5L52"], + doublekick: ["9L10", "7L10", "6L10", "5L10"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + facade: ["9M", "7M", "6M", "5M"], + faketears: ["9M"], + feintattack: ["7L16", "6L16", "5L16"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1", "5L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["9M"], + hornleech: ["9L0", "7L1", "6L37", "5L37"], + hyperbeam: ["9M", "7M", "6M", "5M"], + jumpkick: ["7L24", "6L24", "5L24"], + lastresort: ["7T", "6T", "5T"], + leafstorm: ["9M"], + leechseed: ["9L13", "7L13", "6L13", "5L13"], + lightscreen: ["9M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + megahorn: ["9L1", "7L1", "6L1", "5L1"], + naturepower: ["7M", "7L44", "6M", "6L44", "5L44"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + sandattack: ["9L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T", "5T"], + shadowball: ["9M", "7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smartstrike: ["9M"], + snore: ["7T", "6T", "5T"], + solarbeam: ["9M", "9L52", "7M", "7L60", "6M", "6L60", "5M", "5L60"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + worryseed: ["7T", "6T", "5T"], + zenheadbutt: ["9M", "9L24"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + emolga: { + learnset: { + acrobatics: ["8M", "8L25", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L55", "7L46", "6L46", "5L46"], + airslash: ["8M", "7E", "6E", "5E", "5D"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "7E", "6E", "5E"], + charge: ["8L20", "7L10", "6L10", "5L10"], + chargebeam: ["7M", "6M", "5M"], + charm: ["8M", "7E", "6E", "5E", "5D"], + confide: ["7M", "6M"], + covet: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + cut: ["6M", "5M"], + defog: ["8E", "7T"], + discharge: ["8L50", "7L50", "6L50", "5L50"], + doubleteam: ["8L5", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + dualwingbeat: ["8T"], + eerieimpulse: ["8M"], + electroball: ["8M", "7L26", "6L26", "5L26"], + electroweb: ["8M", "7T", "6T"], + encore: ["8M", "8L35", "7L38", "6L38", "5L38"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + iondeluge: ["7E", "6E"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["7T", "6T", "5T"], + lastresort: ["7T", "6T", "5T"], + lightscreen: ["8M", "8L45", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + nuzzle: ["8L1", "7L15", "6L15"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7L16", "6L16", "5L16"], + quickattack: ["8L10", "7L4", "6L4", "5L4", "5D"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shockwave: ["8E", "7T", "7L22", "7E", "6T", "6L22", "6E", "5L22", "5E"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M"], + spark: ["8L30", "7L13", "6L13", "5L13"], + speedswap: ["8M", "7E"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwhip: ["8L1", "7L7", "6L7", "5L7"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L15", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + uturn: ["8M", "7M", "6M", "5M"], + voltswitch: ["8M", "8L40", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + wildcharge: ["8M", "7M", "6M", "5M"], + }, + }, + karrablast: { + learnset: { + acidspray: ["8L16"], + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + bugbite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + bugbuzz: ["8M", "8L44", "7L28", "6L28", "5L28", "5S0"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M"], + doubleedge: ["8L48", "7L56", "6L56", "5L56"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "7T", "7E", "6T", "6E"], + encore: ["8M"], + endure: ["8M", "8L8", "7L8", "6L8", "5L8", "5D"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25", "5S0"], + feintattack: ["7E", "6E", "5E"], + flail: ["8L24", "7L49", "6L49", "5L49", "5S1"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L16", "6L16", "5L16", "5S0"], + furycutter: ["8L4", "7L13", "6L13", "5L13"], + gigadrain: ["8M", "7T", "6T", "5T"], + headbutt: ["8L20", "7L20", "6L20", "5L20", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + hornattack: ["7E", "6E", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + leer: ["8L1", "7L4", "6L4", "5L4"], + megahorn: ["8M", "7E", "6E", "5E", "5D", "5S1"], + nightslash: ["8E"], + peck: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L28", "7L40", "6L40", "5L40"], + screech: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + slash: ["8E", "7L32", "6L32", "5L32"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L36", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + takedown: ["8L40", "7L37", "6L37", "5L37", "5S1"], + toxic: ["7M", "6M", "5M"], + xscissor: ["8M", "8L32", "7M", "7L44", "6M", "6L44", "5M", "5L44", "5S1"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["furyattack", "headbutt", "falseswipe", "bugbuzz"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["megahorn", "takedown", "xscissor", "flail"], pokeball: "cherishball"}, + ], + }, + escavalier: { + learnset: { + acidspray: ["8L16"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L44", "7L28", "6L28", "5L28"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleedge: ["8L1", "7L1", "6L1"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "7T", "6T"], + encore: ["8M"], + endure: ["8M", "8L1"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + fellstinger: ["8L1", "7L1", "6L1"], + flail: ["8L1"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L16", "6L16", "5L16"], + furycutter: ["8L1"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "8L48", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + headbutt: ["8L20", "7L20", "6L20", "5L20"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "8L28", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + ironhead: ["8M", "8L40", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + megahorn: ["8M"], + metalburst: ["8L52"], + peck: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + quickguard: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + razorshell: ["8M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M", "8L24", "7L49", "6L49", "5L49"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L1"], + screech: ["8M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + slash: ["7L32", "6L32", "5L32"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L36", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + takedown: ["8L1"], + taunt: ["8M"], + toxic: ["7M", "6M", "5M"], + twineedle: ["7L1", "6L1", "5L1"], + xscissor: ["8M", "8L32", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + }, + }, + foongus: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L1", "5L1"], + afteryou: ["7T", "6T", "5T"], + astonish: ["9L1", "8L1", "7L8", "6L8", "5L8"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L12", "6L12", "5L12"], + bodyslam: ["9M", "8M", "7E", "6E", "5E"], + bulletseed: ["9M"], + clearsmog: ["9L20", "8L20", "7L39", "6L39", "5L39"], + confide: ["7M", "6M"], + defensecurl: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7E", "6E", "5E"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L20", "6L20", "5L20"], + flash: ["6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7E", "6T", "6E", "5T", "5E"], + gigadrain: ["9M", "9L28", "8M", "8L28", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyterrain: ["9M"], + growth: ["9L4", "8L4", "7L6", "7E", "6L6", "6E", "5L6", "5E"], + hiddenpower: ["7M", "6M", "5M"], + ingrain: ["9L32", "8L32", "7L18", "6L18", "5L18"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "7L15", "6L15", "5L15"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M"], + poisonpowder: ["9E", "8E", "7E", "6E", "5E"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + ragepowder: ["9L40", "8L40", "7L45", "6L45", "5L45"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rollout: ["9E", "8E", "7E", "6E", "5E"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "9L44", "8M", "8L44", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + spore: ["9L48", "8L48", "7L50", "6L50", "5L50"], + stunspore: ["9L8", "8L8", "7E", "6E", "5E"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["9L24", "8L24", "7L24", "6L24", "5L24"], + synthesis: ["9L16", "8L16", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + terablast: ["9M"], + toxic: ["9M", "9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + worryseed: ["9E", "8E", "7T", "6T", "5T"], + }, + }, + amoonguss: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L1", "5L1"], + afteryou: ["7T", "6T", "5T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + bodyslam: ["9M", "8M"], + bulletseed: ["9M"], + clearsmog: ["9L20", "8L20", "8S0", "7L43", "6L43", "5L43"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L20", "6L20", "5L20"], + flash: ["6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["9M", "9L28", "8M", "8L28", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "7L1", "6L1", "5L1"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + ingrain: ["9L32", "8L32", "7L18", "6L18", "5L18"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "7L15", "6L15", "5L15"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "8S0", "7M", "6M", "5M"], + ragepowder: ["9L42", "8L42", "8S0", "7L54", "6L54", "5L54"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "9L48", "8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + spore: ["9L54", "8L54", "8S0", "7L62", "6L62", "5L62"], + stompingtantrum: ["9M", "8M", "7T"], + stunspore: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["9L24", "8L24", "7L24", "6L24", "5L24"], + synthesis: ["9L16", "8L16", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + terablast: ["9M"], + toxic: ["9M", "9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + eventData: [ + {generation: 8, level: 50, shiny: true, gender: "F", nature: "Sassy", ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 0}, isHidden: true, moves: ["clearsmog", "spore", "protect", "ragepowder"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 37}, + {generation: 5, level: 35, isHidden: true}, + ], + }, + frillish: { + learnset: { + absorb: ["8L1", "7L5", "6L5", "5L5"], + acidarmor: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M"], + brine: ["8M", "8L24", "7L32", "6L32", "5L32"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8E", "7L13", "6L13", "5L13"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E"], + constrict: ["7E", "6E", "5E"], + darkpulse: ["8M", "7M", "6M", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + destinybond: ["8L44"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + hail: ["8M", "7M", "6M", "5M"], + hex: ["8M", "8L20", "7L43", "6L43", "5L43"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L41", "7L49", "6L49", "5L49"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + magiccoat: ["7T", "6T", "5T"], + mist: ["8E", "7E", "6E", "5E"], + nightshade: ["8L8", "7L9", "6L9", "5L9"], + ominouswind: ["7L27", "6L27", "5L27"], + painsplit: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + poisonsting: ["8L4"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "8L16", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + recover: ["8L28", "7L17", "7E", "6L17", "6E", "5L17", "5E"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L32", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + strengthsap: ["8E"], + substitute: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L22", "6T", "6L22", "5L22"], + watersport: ["7L1", "6L1", "5L1"], + waterspout: ["8L48", "7L61", "6L61", "5L61"], + whirlpool: ["8M", "8L36"], + willowisp: ["8M", "7M", "6M", "5M"], + wringout: ["7L55", "6L55", "5L55"], + }, + }, + jellicent: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1"], + acidarmor: ["8L1"], + attract: ["8M", "7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M"], + brine: ["8M", "8L24", "7L32", "6L32", "5L32", "5S0"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["7L13", "6L13", "5L13"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + destinybond: ["8L48"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + hex: ["8M", "8L20", "7L45", "6L45", "5L45"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L43", "7L53", "6L53", "5L53"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + magiccoat: ["7T", "6T", "5T"], + muddywater: ["8M"], + nightshade: ["8L1", "7L1", "6L1", "5L1"], + ominouswind: ["7L27", "6L27", "5L27", "5S0"], + painsplit: ["7T", "6T", "5T"], + poisonsting: ["8L1"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "8L16", "7M", "7L37", "6M", "6L37", "5M", "5L37", "5S0"], + recover: ["8L28", "7L17", "6L17", "5L17"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L32", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L22", "6T", "6L22", "5L22", "5S0"], + watersport: ["7L1", "6L1", "5L1"], + waterspout: ["8L54", "7L1", "6L1", "5L69"], + whirlpool: ["8M", "8L36"], + willowisp: ["8M", "7M", "6M", "5M"], + wringout: ["7L1", "6L1", "5L61"], + }, + eventData: [ + {generation: 5, level: 40, isHidden: true, moves: ["waterpulse", "ominouswind", "brine", "raindance"]}, + ], + encounters: [ + {generation: 5, level: 5}, + ], + }, + alomomola: { + learnset: { + acrobatics: ["9M"], + aquajet: ["9L9", "7L9", "6L9", "5L9"], + aquaring: ["9L5", "7L5", "6L5", "5L5", "5D"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bounce: ["9E", "7T", "6T", "5T"], + brine: ["9L41", "7L41", "6L41", "5L41"], + calmmind: ["9M", "7M", "6M", "5M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["6M", "5M"], + doubleslap: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "9E", "7E", "6E", "5E"], + facade: ["9M", "7M", "6M", "5M"], + flipturn: ["9M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M"], + hail: ["7M", "6M", "5M"], + healingwish: ["9L29", "7L1", "6L1", "5L57"], + healpulse: ["7L17", "6L17", "5L17"], + helpinghand: ["9M", "9L13", "7T", "7L1", "6T", "6L49", "5T", "5L49"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "9L55", "7L1", "6L1", "5L61"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + liquidation: ["9M", "7T"], + magiccoat: ["7T", "6T", "5T"], + mirrorcoat: ["9E", "7E", "6E", "5E", "5D"], + mist: ["9E", "7E", "6E", "5E"], + mistyterrain: ["9M"], + painsplit: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + playnice: ["9L1", "7L1"], + playrough: ["9M"], + pound: ["9L1", "7L1", "6L1", "5L1"], + protect: ["9M", "9L21", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + psychic: ["9M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + refresh: ["7E", "6E", "5E"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L45", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + scald: ["9M", "7M", "6M", "5M"], + scaleshot: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "7M", "6M", "5M"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L33", "7L33", "6L33", "5L33"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["9E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L29", "6L29", "5L29"], + waterfall: ["9M", "7M", "6M", "5M"], + waterpulse: ["9M", "9L25", "7T", "7L25", "6T", "6L25", "5L25"], + watersport: ["7L1", "6L1", "5L1"], + whirlpool: ["9L49", "7L49"], + wideguard: ["9L13", "7L1", "6L1", "5L53"], + wish: ["9L37", "7L37", "6L37", "5L37"], + zenheadbutt: ["9M"], + }, + }, + joltik: { + learnset: { + absorb: ["8L1", "7L1"], + agility: ["8M", "8L24", "7L37", "6L37", "5L37"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bugbite: ["8L8", "7T", "7L18", "6T", "6L18", "5T", "5L18"], + bugbuzz: ["8M", "8L48", "7L48", "6L48", "5L48"], + camouflage: ["7E", "6E"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crosspoison: ["8M", "7E", "6E", "5E"], + cut: ["6M", "5M"], + disable: ["7E", "6E", "5E"], + discharge: ["8L37", "7L45", "6L45", "5L45"], + doubleteam: ["8E", "7M", "6M", "5M"], + electroball: ["8M", "8L20", "7L29", "6L29", "5L29"], + electroweb: ["8M", "8L4", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L12", "6L12", "5L12"], + gastroacid: ["8L44", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + gigadrain: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["8E", "7M", "6M"], + leechlife: ["8M", "7M", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + lunge: ["8E", "7E"], + magnetrise: ["7T", "6T", "5T"], + pinmissile: ["8M", "7E", "6E", "5E"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8E", "7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockclimb: ["7E", "6E", "5E"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L40", "7L7", "6L7", "5L7"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], + skittersmack: ["8T"], + slash: ["8L32", "7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + spiderweb: ["7L1", "6L1", "5L1"], + stringshot: ["8L12", "7L1", "6L1", "5L1"], + strugglebug: ["8E", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L28", "7L40", "6L40", "5L40"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "8L16", "7M", "7L4", "6M", "6L4", "5M", "5L4"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + }, + galvantula: { + learnset: { + absorb: ["8L1", "7L1"], + agility: ["8M", "8L24", "7L40", "6L40", "5L40"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bugbite: ["8L1", "7T", "7L18", "6T", "6L18", "5T", "5L18"], + bugbuzz: ["8M", "8L56", "7L60", "6L60", "5L60"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crosspoison: ["8M"], + cut: ["6M", "5M"], + disable: ["5D"], + discharge: ["8L39", "7L54", "6L54", "5L54"], + doubleteam: ["7M", "6M", "5M"], + electroball: ["8M", "8L20", "7L29", "6L29", "5L29", "5D"], + electroweb: ["8M", "8L1", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L12", "6L12", "5L12"], + gastroacid: ["8L50", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + leechlife: ["8M", "7M", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["5D"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L44", "7L7", "6L7", "5L7"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], + skittersmack: ["8T"], + slash: ["8L32", "7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + spiderweb: ["7L1", "6L1", "5L1"], + stickyweb: ["8L0", "7L1", "6L1"], + stringshot: ["8L12", "7L1", "6L1", "5L1"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L28", "7L46", "6L46", "5L46"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + ferroseed: { + learnset: { + acidspray: ["8E", "7E", "6E"], + assurance: ["8M"], + attract: ["8M"], + bulletseed: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["8L41", "7L9", "6L9", "5L9"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + explosion: ["8L50", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "8L20", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gravity: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + gyroball: ["8M", "8L45", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + harden: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + ingrain: ["8L15", "7L35", "6L35", "5L35"], + irondefense: ["8M", "8L35", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + ironhead: ["8M", "8L25", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + knockoff: ["8E", "7T", "6T"], + leechseed: ["8E", "7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T"], + metalclaw: ["8L5", "7L14", "6L14", "5L14"], + mirrorshot: ["7L30", "6L30", "5L30"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "7L47", "6M", "6L47", "5M", "5L47"], + pinmissile: ["8M", "8L10", "7L18", "6L18", "5L18"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + rockclimb: ["7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rollout: ["7L6", "6L6", "5L6"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + selfdestruct: ["8M", "8L30", "7L38", "6L38", "5L38"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M", "7E", "6E", "5E"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["8E", "7M", "6M", "5M"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + ferrothorn: { + learnset: { + aerialace: ["7M", "6M", "5M"], + assurance: ["8M"], + attract: ["8M"], + block: ["7T", "6T"], + bodypress: ["8M"], + brutalswing: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M"], + confide: ["7M", "6M"], + curse: ["8L43", "7L1", "6L1", "5L1"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + explosion: ["8L56", "7M", "7L67", "6M", "6L67", "5M", "5L67"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "8L20", "7M", "7L61", "6M", "6L61", "5M", "5L61"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gyroball: ["8M", "8L49", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + harden: ["8L1", "7L1", "6L1", "5L1"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + ingrain: ["8L15", "7L35", "6L35", "5L35"], + irondefense: ["8M", "8L35", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + ironhead: ["8M", "8L25", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + knockoff: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + metalclaw: ["8L1", "7L14", "6L14", "5L14"], + mirrorshot: ["7L30", "6L30", "5L30"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + pinmissile: ["8M", "8L1", "7L18", "6L18", "5L18"], + poisonjab: ["8M", "7M", "6M", "5M"], + powerwhip: ["8M", "8L0", "7L1", "6L40", "5L40"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + rockclimb: ["7L1", "6L1", "5L1"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + selfdestruct: ["8M", "8L30", "7L38", "6L38", "5L38"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + }, + klink: { + learnset: { + assurance: ["8M"], + autotomize: ["8L20", "7L31", "6L31", "5L31"], + bind: ["8L4", "7T", "7L21", "6T", "6L21", "5T", "5L21"], + charge: ["8L8", "7L6", "6L6", "5L6"], + chargebeam: ["8L12", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + confide: ["7M", "6M"], + discharge: ["8L24", "7L42", "6L42", "5L42"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + geargrind: ["8L32", "7L16", "6L16", "5L16"], + gravity: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "8L48", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + irondefense: ["8M", "7T", "6T", "5T"], + lockon: ["8L36", "7L50", "6L50", "5L51"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + metalsound: ["8L16", "7L45", "6L45", "5L45"], + mirrorshot: ["7L36", "6L36", "5L36"], + powergem: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L28", "7L39", "6L39", "5L39"], + secretpower: ["6M"], + shiftgear: ["8L40", "7L48", "6L48", "5L48"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L1", "7L11", "6L11", "5L11"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + visegrip: ["8L1", "7L1", "6L1", "5L1"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L44", "7L54", "6L54", "5L54"], + }, + }, + klang: { + learnset: { + allyswitch: ["8M", "7T"], + assurance: ["8M"], + autotomize: ["8L20", "7L31", "6L31", "5L31"], + bind: ["8L1", "7T", "7L21", "6T", "6L21", "5T", "5L21"], + charge: ["8L1", "7L1", "6L1", "5L1"], + chargebeam: ["8L12", "7M", "7L26", "6M", "6L26", "5M", "5L26", "5D"], + confide: ["7M", "6M"], + discharge: ["8L24", "7L44", "6L44", "5L44"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + geargrind: ["8L32", "7L1", "6L1", "5L1"], + gravity: ["7T", "6T", "5T", "5D"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "8L54", "7M", "7L64", "6M", "6L64", "5M", "5L64"], + irondefense: ["8M", "7T", "6T", "5T"], + lockon: ["8L36", "7L56", "6L56", "5L56"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T", "5D"], + metalsound: ["8L16", "7L48", "6L48", "5L48"], + mirrorshot: ["7L36", "6L36", "5L36"], + powergem: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L28", "7L40", "6L40", "5L40"], + secretpower: ["6M"], + shiftgear: ["8L42", "7L52", "6L52", "5L52"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L1", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + visegrip: ["8L1", "7L1", "6L1", "5L1"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L48", "7L60", "6L60", "5L60"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + klinklang: { + learnset: { + allyswitch: ["8M", "7T"], + assurance: ["8M"], + autotomize: ["8L20", "7L31", "6L31", "5L31"], + bind: ["8L1", "7T", "7L21", "6T", "6L21", "5T", "5L21"], + charge: ["8L1", "7L1", "6L1", "5L1"], + chargebeam: ["8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + confide: ["7M", "6M"], + discharge: ["8L24", "7L44", "6L44", "5L44"], + doubleteam: ["7M", "6M", "5M"], + electricterrain: ["8M", "8L64"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + geargrind: ["8L32", "7L1", "6L1", "5L1"], + gearup: ["8L1", "7L1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "8L56", "7M", "7L72", "6M", "6L72", "5M", "5L72"], + irondefense: ["8M", "7T", "6T", "5T"], + lockon: ["8L36", "7L60", "6L60", "5L60"], + magiccoat: ["7T", "6T", "5T"], + magneticflux: ["8L1", "7L1", "6L1"], + magnetrise: ["7T", "6T", "5T"], + metalsound: ["8L16", "7L48", "6L48", "5L48"], + mirrorshot: ["7L36", "6L36", "5L36"], + powergem: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L28", "7L40", "6L40", "5L40"], + secretpower: ["6M"], + shiftgear: ["8L42", "7L54", "6L54", "5L54"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L1", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + visegrip: ["8L1", "7L1", "6L1", "5L1"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L48", "7L66", "6L1", "5L66"], + }, + }, + tynamo: { + learnset: { + charge: ["9M"], + chargebeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5L1"], + knockoff: ["9M"], + magnetrise: ["7T", "6T", "5T"], + spark: ["9L1", "7L1", "6L1", "5L1"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + terablast: ["9M"], + thunderwave: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5L1"], + }, + }, + eelektrik: { + learnset: { + acid: ["9L19", "7L19", "6L19", "5L19"], + acidspray: ["9M", "9L49", "7L49", "6L49", "5L49"], + acrobatics: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["9L9", "7T", "7L9", "6T", "6L9", "5T", "5L9"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + charge: ["9M"], + chargebeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + coil: ["9L54", "7L54", "6L54", "5L54"], + confide: ["7M", "6M"], + crunch: ["9M", "9L0", "7L1", "6L39", "5L39"], + discharge: ["9L29", "7L29", "6L29", "5L29"], + doubleteam: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["9M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["9L64", "7T", "7L64", "6T", "6L64", "5T", "5L64"], + gigadrain: ["9M", "7T", "6T", "5T"], + headbutt: ["9L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + lunge: ["9M"], + magnetrise: ["7T", "6T", "5T"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + spark: ["9L1", "7L1", "6L1", "5L1"], + substitute: ["9M", "7M", "6M", "5M"], + superfang: ["9M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L74", "7L74", "6L74", "5L74"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + thunderfang: ["9M"], + thunderwave: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "7M", "6M", "5M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "9L59", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + zapcannon: ["9L69", "7L69", "6L69", "5L69"], + }, + }, + eelektross: { + learnset: { + acid: ["9L1", "7L1", "6L1", "5L1"], + acidspray: ["9M"], + acrobatics: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + bodypress: ["9M"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + brickbreak: ["9M", "7M", "6M", "5M"], + bulkup: ["9M"], + bulldoze: ["9M"], + charge: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M"], + closecombat: ["9M"], + coil: ["9L1", "7L1", "6L1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L1", "7L1", "6L1", "5L1"], + crushclaw: ["9L1", "7L1", "6L1", "5L1"], + cut: ["6M", "5M"], + discharge: ["9L1", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["9M", "7M", "6M", "5M"], + dragonpulse: ["9M", "7T", "6T"], + dragontail: ["9M", "7M", "6M", "5M"], + drainpunch: ["9M", "7T", "6T", "5T"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + firepunch: ["9M", "7T", "6T", "5T"], + flamethrower: ["9M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["9M", "7M", "6M", "5M"], + focuspunch: ["9M", "7T", "6T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["9L1", "7T", "7L1", "6T", "6L1", "5T"], + gigadrain: ["9M", "7T", "6T", "5T"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + headbutt: ["9L1", "7L1", "6L1", "5L1"], + heavyslam: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M"], + iondeluge: ["7L1", "6L1"], + irontail: ["7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + liquidation: ["9M"], + lunge: ["9M"], + magnetrise: ["7T", "6T", "5T"], + outrage: ["9M", "7T", "6T"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockslide: ["9M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + stompingtantrum: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superfang: ["9M", "7T", "6T", "5T"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L1", "7L1", "6L1"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "7M", "6M", "5M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "7M", "6M", "5M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "9L5", "7M", "6M", "5M"], + zapcannon: ["9L1", "7L1", "6L1"], + zenheadbutt: ["9M"], + }, + }, + elgyem: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["8M"], + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + barrier: ["7E", "6E", "5E", "5D"], + calmmind: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1"], + cosmicpower: ["8M", "7E", "6E"], + darkpulse: ["8M", "7M", "6M", "5T"], + destinybond: ["8E"], + disable: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + growl: ["8L1", "7L4", "6L4", "5L4"], + guardsplit: ["8L24", "7L50", "6L50", "5L50"], + guardswap: ["8M", "7E", "6E", "5E"], + headbutt: ["8L30", "7L18", "6L18", "5L18"], + healblock: ["7L8", "6L8", "5L8", "5D"], + hiddenpower: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + imprison: ["8M", "8L6", "7L25", "6L25", "5L25"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + meteorbeam: ["8T"], + miracleeye: ["7L11", "6L11", "5L11"], + nastyplot: ["8M", "7E", "6E", "5E", "5D"], + painsplit: ["7T", "6T", "5T"], + powersplit: ["8L24", "7L50", "6L50", "5L50"], + powerswap: ["8M", "7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L18", "7L15", "6L15", "5L15"], + psychic: ["8M", "8L60", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychup: ["8E", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L43", "7L46", "6L46", "5L46"], + recycle: ["7T", "6T", "5T"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["7L29", "6L29", "5L29"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synchronoise: ["7L53", "6L53", "5L53"], + telekinesis: ["7T", "5M"], + teleport: ["8L12", "7E", "6E", "5E"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wonderroom: ["8M", "8L54", "7T", "7L56", "6T", "6L56", "5T", "5L56"], + zenheadbutt: ["8M", "8L36", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + }, + }, + beheeyem: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["8M"], + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L52", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1"], + cosmicpower: ["8M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + growl: ["8L1", "7L1", "6L1", "5L1"], + guardsplit: ["8L24", "7L56", "6L56", "5L56"], + guardswap: ["8M"], + headbutt: ["8L30", "7L18", "6L18", "5L18"], + healblock: ["7L1", "6L1", "5L1"], + hiddenpower: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + hyperbeam: ["8M", "7M", "6M", "5M"], + imprison: ["8M", "8L1", "7L25", "6L25", "5L25"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + meteorbeam: ["8T"], + miracleeye: ["7L1", "6L1", "5L1"], + nastyplot: ["8M"], + painsplit: ["7T", "6T", "5T"], + powersplit: ["8L24", "7L58", "6L58", "5L58"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L18", "7L15", "6L15", "5L15"], + psychic: ["8M", "8L68", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["8M", "8L1", "7L1"], + psychup: ["7M", "7L36", "6M", "6L36", "5M", "5L36"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L45", "7L50", "6L50", "5L50"], + recycle: ["7T", "6T", "5T"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["7L29", "6L29", "5L29"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synchronoise: ["7L1", "6L1", "5L63"], + telekinesis: ["7T", "5M"], + teleport: ["8L1"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wonderroom: ["8M", "8L60", "7T", "7L1", "6T", "6L1", "5T", "5L68"], + zenheadbutt: ["8M", "8L36", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + }, + }, + litwick: { + learnset: { + acid: ["7E", "6E", "5E"], + acidarmor: ["9E", "8E", "7E", "6E", "5E"], + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L12", "8L12", "7L10", "6L10", "5L10"], + curse: ["9L32", "8L32", "7L43", "6L43", "5L43"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + ember: ["9L4", "8L4", "7L1", "6L1", "5L1"], + endure: ["9M", "8M", "7E", "6E", "5E"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M", "9L24", "8M", "8L24", "7L7", "6L7", "5L7"], + flameburst: ["7L20", "6L20", "5L20"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flareblitz: ["9M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E"], + heatwave: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + hex: ["9M", "9L16", "8M", "8L16", "7L28", "6L28", "5L28"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["9M", "9L44", "8M", "8L44", "7L24", "6L24", "5L24"], + incinerate: ["6M", "5M"], + inferno: ["9L40", "8L40", "7L38", "6L38", "5L38"], + memento: ["9L56", "8L56", "7L33", "6L33", "5L33"], + minimize: ["9L8", "8L8", "7L3", "6L3", "5L3"], + mysticalfire: ["8M"], + nightshade: ["9M", "9L28", "8L28", "7L13", "6L13", "5L13"], + overheat: ["9M", "9L52", "8M", "8L52", "7M", "7L61", "6M", "6L61", "5M", "5L61"], + painsplit: ["9L48", "8L48", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["9M", "8T"], + powersplit: ["9E", "8E", "7E", "6E"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "9L36", "8M", "8L36", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smog: ["9L1", "8L1", "7L5", "6L5", "5L5"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9L20", "8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + }, + }, + lampent: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L12", "8L12", "7L10", "6L10", "5L10"], + curse: ["9L32", "8L32", "7L45", "6L45", "5L45"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M", "9L24", "8M", "8L24", "7L7", "6L7", "5L7"], + flameburst: ["7L20", "6L20", "5L20"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flareblitz: ["9M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + hex: ["9M", "9L16", "8M", "8L16", "7L28", "6L28", "5L28"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["9M", "9L46", "8M", "8L46", "7L24", "6L24", "5L24"], + incinerate: ["6M", "5M"], + inferno: ["9L40", "8L40", "7L38", "6L38", "5L38"], + lashout: ["9M"], + memento: ["9L64", "8L64", "7L33", "6L33", "5L33"], + minimize: ["9L1", "8L1", "7L1", "6L1", "5L1"], + mysticalfire: ["8M"], + nightshade: ["9M", "9L28", "8L28", "7L13", "6L13", "5L13"], + overheat: ["9M", "9L58", "8M", "8L58", "7M", "7L69", "6M", "6L69", "5M", "5L69"], + painsplit: ["9L52", "8L52", "7T", "7L61", "6T", "6L61", "5T", "5L61"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "9L36", "8M", "8L36", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smog: ["9L1", "8L1", "7L1", "6L1", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9L20", "8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + chandelure: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1"], + attract: ["8M", "7M", "6M", "5M"], + burningjealousy: ["9M", "8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1"], + curse: ["9L1", "8L1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + ember: ["9L1", "8L1"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "5S0"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M", "9L1", "8M", "8L1"], + flameburst: ["7L1", "6L1", "5L1"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flareblitz: ["9M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + haze: ["9M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "5S0"], + hex: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + imprison: ["9M", "9L1", "8M", "8L1"], + incinerate: ["6M", "5M"], + inferno: ["9L1", "8L1"], + laserfocus: ["7T"], + lashout: ["9M"], + memento: ["9L1", "8L1"], + minimize: ["9L1", "8L1"], + mysticalfire: ["8M"], + nightshade: ["9M", "9L1", "8L1"], + overheat: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + painsplit: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "5S0"], + psychup: ["7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "5S0"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smog: ["9L1", "8L1", "7L1", "6L1", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + spite: ["9M", "7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 50, gender: "F", nature: "Modest", ivs: {spa: 31}, abilities: ["flashfire"], moves: ["heatwave", "shadowball", "energyball", "psychic"], pokeball: "cherishball"}, + ], + }, + axew: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["9E", "7T", "6T", "5T"], + assurance: ["9L9", "8M", "8L9", "7L7", "6L7", "5L7"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L3", "8L3"], + breakingswipe: ["9L30", "8M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "5D"], + crunch: ["9M", "9L24", "8M", "8L24"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S1"], + dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L41", "7E", "6T", "6L41", "6E", "5T", "5L41", "5E"], + dragonrage: ["7L10", "6L10", "5L10", "5D", "5S0", "5S1", "5S2"], + dragontail: ["9M"], + dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + endeavor: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "8M", "7E", "6E", "5E", "5S1"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L6", "8M", "8L6", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + firstimpression: ["9E", "8E"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L33", "8M", "7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "9L48", "8M", "8L48", "7M", "7L61", "6M", "6L61", "5M", "5L61", "5S2"], + guillotine: ["9L45", "8L45", "7L50", "6L50", "5L51"], + harden: ["8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["9E", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + laserfocus: ["8L33"], + leer: ["9L1", "8L1", "7L4", "6L4", "5L4"], + nightslash: ["9E", "8E", "7E", "6E", "5E", "5D"], + outrage: ["9M", "9L42", "8M", "8L42", "7T", "7L56", "6T", "6L56", "5T", "5L56", "5S2"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + razorwind: ["7E", "6E", "5E"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M", "5S1"], + reversal: ["9M", "8M", "7E", "6E", "5E"], + roar: ["9M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "5S2"], + secretpower: ["6M"], + shadowclaw: ["9M"], + shockwave: ["7T", "6T"], + slash: ["9L15", "8L15", "7L20", "6L20", "5L20"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L39", "8M", "8L39", "7M", "7L46", "6M", "6L46", "5M", "5L46"], + takedown: ["9M"], + taunt: ["9M", "9L12", "8M", "8L12", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: 1, gender: "M", nature: "Naive", ivs: {spe: 31}, abilities: ["moldbreaker"], moves: ["scratch", "dragonrage"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "F", abilities: ["moldbreaker"], moves: ["dragonrage", "return", "endure", "dragonclaw"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "M", nature: "Naive", abilities: ["rivalry"], moves: ["dragonrage", "scratch", "outrage", "gigaimpact"], pokeball: "cherishball"}, + ], + }, + fraxure: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["9L9", "8M", "8L9", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L1", "8L1"], + breakingswipe: ["9L30", "8M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L24", "8M", "8L24"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["9M", "7M", "6M", "5M"], + dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L33", "8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "9L56", "8M", "8L56", "7M", "7L66", "6M", "6L66", "5M", "5L66"], + guillotine: ["9L51", "8L51", "7L54", "6L54", "5L54"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "7T", "6T", "5T"], + laserfocus: ["8L33"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + outrage: ["9M", "9L46", "8M", "8L46", "7T", "7L60", "6T", "6L60", "5T", "5L60"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slash: ["9L15", "8L15", "7L20", "6L20", "5L20"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L41", "8M", "8L41", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + takedown: ["9M"], + taunt: ["9M", "9L12", "8M", "8L12", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + haxorus: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["9L9", "8M", "8L9", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L1", "8L1"], + bodyslam: ["9M"], + breakingswipe: ["9L30", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L24", "8M", "8L24"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32", "5S0"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["9M", "7M", "6M", "5M"], + dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13", "5S0"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "5S0"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L33", "8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "9L60", "8M", "8L60", "7M", "7L74", "6M", "6L74", "5M", "5L74"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + guillotine: ["9L53", "8L53", "7L58", "6L58", "5L58"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "7T", "6T", "5T"], + laserfocus: ["8L33", "7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M"], + outrage: ["9M", "9L46", "8M", "8L46", "7T", "7L1", "6T", "6L1", "5T", "5L66"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychocut: ["8M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slash: ["9L15", "8L15", "7L20", "6L20", "5L20"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L41", "8M", "8L41", "7M", "7L50", "6M", "6L50", "5M", "5L50"], + takedown: ["9M"], + taunt: ["9M", "9L12", "8M", "8L12", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "5S0"], + }, + eventData: [ + {generation: 5, level: 59, gender: "F", nature: "Naive", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, abilities: ["moldbreaker"], moves: ["earthquake", "dualchop", "xscissor", "dragondance"], pokeball: "cherishball"}, + ], + }, + cubchoo: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + assurance: ["8M", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["9M", "8M", "7E", "6E", "5E"], + bide: ["7L9", "6L9", "5L9", "5S0"], + blizzard: ["9M", "9L39", "8M", "8L39", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + bodypress: ["9M"], + bodyslam: ["9M"], + brine: ["9L15", "8M", "8L15", "7L21", "6L21", "5L21"], + bulldoze: ["9M"], + charm: ["9M", "9L27", "8M", "8L27", "7L29", "6L29", "5L29"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M", "7E", "6E", "5E"], + endure: ["9M", "9L3", "8M", "8L3", "7L25", "6L25", "5L25"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flail: ["9L24", "8L24", "7L36", "6L36", "5L36"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E"], + frostbreath: ["9L18", "8L18", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L6", "8L6", "7L17", "6L17", "5L17"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L5", "5S0"], + hail: ["8M", "8L30", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + heavyslam: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + iciclespear: ["9M"], + icywind: ["9M", "9L9", "8M", "8L9", "7T", "7L13", "6T", "6L13", "5T", "5L13", "5S0"], + liquidation: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9E", "8E", "7E", "6E", "5E"], + playnice: ["9L12", "8L12", "7L15", "6L15"], + playrough: ["9M", "8M", "7E", "6E"], + powdersnow: ["9L1", "8L1", "7L5", "6L5", "5L1", "5S0"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "9L36", "8M", "8L36", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + return: ["7M", "6M", "5M"], + rockslide: ["9M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + sheercold: ["9L42", "8L42", "7L57", "6L57", "5L57"], + slash: ["9L21", "8L21", "7L33", "6L33", "5L33"], + sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M", "9L30"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L33", "8L33", "7L53", "6L53", "5L53"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T"], + xscissor: ["9M"], + yawn: ["9E", "8E", "7E", "6E", "5E"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["powdersnow", "growl", "bide", "icywind"], pokeball: "cherishball"}, + ], + }, + beartic: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquajet: ["9L1", "8L1", "7L1", "6L1", "5L1"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["9M", "8M"], + bide: ["7L1", "6L1", "5L1"], + blizzard: ["9M", "9L41", "8M", "8L41", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brine: ["9L15", "8M", "8L15", "7L21", "6L21", "5L21"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["9M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "9L1", "8M", "8L1", "7L25", "6L25", "5L25"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flail: ["9L24", "8L24", "7L36", "6L36", "5L36"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9M", "7T", "6T"], + frostbreath: ["9L18", "8L18", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L1", "8L1", "7L17", "6L17", "5L17"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "8L30", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + iciclecrash: ["9L0", "8L0", "7L1", "6L37", "5L37"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L9", "8M", "8L9", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + liquidation: ["9M", "8M"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playnice: ["9L12", "8L12", "7L15", "6L9"], + playrough: ["9M", "8M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "9L36", "8M", "8L36", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + return: ["7M", "6M", "5M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + sheercold: ["9L46", "8L46", "7L1", "6L1", "5L66"], + slash: ["9L21", "8L21", "7L33", "6L33", "5L33"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M", "9L30"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L51", "8M", "8L51", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["9L27", "8L27", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L33", "8L33", "7L1", "6L1", "5L59"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T"], + xscissor: ["9M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + cryogonal: { + learnset: { + acidarmor: ["9L52", "8L52", "7L17", "6L29", "5L29"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + ancientpower: ["9L20", "8L24", "7L21"], + attract: ["7M", "6M", "5M"], + aurorabeam: ["9L24", "8L28", "7L13", "6L25", "5L25"], + auroraveil: ["9E", "7M"], + avalanche: ["9M", "8M"], + bind: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L4", "8L4", "7L41", "6L45", "5L45"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + explosion: ["9E", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + freezedry: ["9L36", "8L36", "7L49", "6L50"], + frostbreath: ["9E", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M"], + hail: ["8M", "7M", "6M", "5M"], + haze: ["9M", "9L16", "8L20", "7L9", "6L1", "5L21"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icebeam: ["9M", "9L48", "8M", "8L48", "7M", "7L25", "6M", "6L33", "5M", "5L33"], + iceshard: ["9L1", "8L1", "7L1", "6L1", "5L5"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L12", "8M", "8L16", "7T", "7L5", "6T", "6L17", "5T", "5L17"], + irondefense: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["8L12", "7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L29", "6M", "6L37", "5M", "5L37"], + magiccoat: ["7T", "6T", "5T"], + mist: ["9L16", "8L20", "7L9", "6L1", "5L21"], + nightslash: ["9L32", "8L32", "7L1", "6L1", "5L57"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rapidspin: ["9L8", "8L8", "7L1", "6L13", "5L13"], + recover: ["9L44", "8L44", "7L45", "6L49", "5L49"], + reflect: ["9M", "9L40", "8M", "8L40", "7M", "7L33", "6M", "6L37", "5M", "5L37"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sharpen: ["7L1", "6L9", "5L9"], + sheercold: ["9L60", "8L60", "7L1", "6L1", "5L61"], + signalbeam: ["7T", "6T", "5T"], + slash: ["9L28", "8L32", "7L37", "6L41", "5L41"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], + solarbeam: ["9M", "9L56", "8M", "8L56", "7M", "7L50", "6M", "6L53", "5M", "5L53"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + tripleaxel: ["8T"], + waterpulse: ["9M", "7T", "6T"], + }, + }, + shelmet: { + learnset: { + absorb: ["8L1", "7L1"], + acid: ["8L4", "7L4", "6L4", "5L4", "5D"], + acidarmor: ["8L24", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "7E", "6E", "5E", "5D"], + bide: ["7L8", "6L8", "5L8"], + bodyslam: ["8M", "8L36", "7L40", "6L40", "5L40", "5S1"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L44", "7L44", "6L44", "5L44", "5S1"], + confide: ["7M", "6M"], + curse: ["8L8", "7L13", "6L13", "5L13"], + doubleedge: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E", "5D", "5S1"], + endure: ["8M", "7E", "6E", "5E"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + feint: ["8E", "7E", "6E", "5E"], + finalgambit: ["8L48", "7L56", "6L56", "5L56"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["8M", "8L28", "7T", "7L37", "6T", "6L37", "5T", "5L37", "5S1"], + guardsplit: ["8E", "7E", "6E", "5E"], + guardswap: ["8M", "8L32", "7L50", "6L50", "5L52"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + leechlife: ["8M", "7M", "6L1", "5L1"], + megadrain: ["8L12", "7L20", "6L20", "5L20", "5S0"], + mindreader: ["8E", "7E", "6E", "5E"], + mudshot: ["8M"], + mudslap: ["7E", "6E", "5E"], + protect: ["8M", "8L1", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S0"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L40", "7L49", "6L49", "5L49"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spikes: ["8M", "7E", "6E", "5E"], + strugglebug: ["8L16", "7L16", "6M", "6L16", "5M", "5L16", "5S0"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + toxicspikes: ["8M", "7E"], + venoshock: ["8M", "7M", "6M", "5M"], + yawn: ["8L20", "7L25", "6L25", "5L25", "5S0"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["strugglebug", "megadrain", "yawn", "protect"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["encore", "gigadrain", "bodyslam", "bugbuzz"], pokeball: "cherishball"}, + ], + }, + accelgor: { + learnset: { + absorb: ["8L1", "7L1"], + acid: ["8L1"], + acidarmor: ["8L1"], + acidspray: ["8L1", "7L1", "6L1", "5L1"], + agility: ["8M", "8L24", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M"], + bodyslam: ["8M", "8L1"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L44", "7L44", "6L44", "5L44"], + confide: ["7M", "6M"], + curse: ["8L1"], + doubleteam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + drainpunch: ["8M"], + encore: ["8M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + finalgambit: ["8L48", "7L1", "6L1", "5L56"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["8M", "8L28", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + gigaimpact: ["8M", "7M", "6M", "5M"], + guardswap: ["8M", "8L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leechlife: ["8M", "7M", "6L1", "5L1"], + mefirst: ["7L28", "6L28", "5L28"], + megadrain: ["8L12", "7L20", "6L20", "5L20"], + mudshot: ["8M"], + powerswap: ["8M", "8L32", "7L1", "6L1", "5L52"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L40", "7L49", "6L49", "5L49"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["8M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spikes: ["8M"], + strugglebug: ["8L16", "7L16", "6M", "6L16", "5M", "5L16"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "8L20", "7L25", "6L25", "5L25"], + toxic: ["8L52", "7M", "6M", "5M"], + toxicspikes: ["8M"], + uturn: ["8M", "8L36", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watershuriken: ["8L1", "7L1", "6L1"], + yawn: ["8L1"], + }, + }, + stunfisk: { + learnset: { + aquatail: ["7T", "6T", "5T"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L5", "6L5", "5L5"], + bounce: ["8M", "8L35", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + bulldoze: ["8M", "7M", "6M", "5M"], + camouflage: ["7L17", "6L17", "5L17"], + charge: ["8L20"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "5D"], + dig: ["8M", "6M", "5M"], + discharge: ["8L45", "7L25", "6L25", "5L25"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + earthquake: ["8M", "7M", "6M", "5M"], + eerieimpulse: ["8M", "7E", "6E"], + electricterrain: ["8M", "8L30"], + electroweb: ["8M", "7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "8L5", "7L30", "6L30", "5L30"], + facade: ["8M", "7M", "6M", "5M"], + fissure: ["8L55", "7L1", "6L1", "5L61"], + flail: ["8L50", "7L1", "6L1", "5L55"], + flash: ["6M", "5M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + lashout: ["8T"], + magnetrise: ["7T", "6T", "5T"], + mefirst: ["7E", "6E"], + mudbomb: ["7L21", "6L21", "5L21"], + muddywater: ["8M", "8L40", "7L40", "6L40", "5L40"], + mudshot: ["8M", "8L10", "7L13", "6L13", "5L13"], + mudslap: ["8L1", "7L1", "6L1", "5L1", "5D"], + mudsport: ["7L1", "6L1", "5L1"], + painsplit: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflecttype: ["8E", "7E", "6E"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "8L15", "7L50", "6L50", "5L50"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shockwave: ["7T", "7E", "6T", "6E", "5E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spark: ["8E", "7E", "6E", "5E"], + spite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L25"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + thundershock: ["8L1", "7L9", "6L9", "5L9"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + watergun: ["8L1", "7L1", "6L1"], + waterpulse: ["7T", "6T"], + yawn: ["8E", "7E", "6E", "5E", "5D"], + }, + }, + stunfiskgalar: { + learnset: { + astonish: ["8E"], + attract: ["8M"], + bind: ["8E"], + bounce: ["8M", "8L35"], + bulldoze: ["8M"], + counter: ["8E"], + crunch: ["8M"], + curse: ["8E"], + dig: ["8M"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M", "8L5"], + facade: ["8M"], + fissure: ["8L55"], + flail: ["8L50"], + flashcannon: ["8M"], + foulplay: ["8M"], + icefang: ["8M"], + irondefense: ["8M", "8L30"], + lashout: ["8T"], + metalclaw: ["8L1"], + metalsound: ["8L20"], + muddywater: ["8M", "8L40"], + mudshot: ["8M", "8L10"], + mudslap: ["8L1"], + painsplit: ["8E"], + payback: ["8M"], + protect: ["8M"], + raindance: ["8M"], + reflecttype: ["8E"], + rest: ["8M"], + revenge: ["8M", "8L15"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sandstorm: ["8M"], + scald: ["8M"], + screech: ["8M"], + sleeptalk: ["8M"], + sludgebomb: ["8M"], + sludgewave: ["8M"], + snaptrap: ["8L45"], + snore: ["8M"], + spite: ["8E"], + stealthrock: ["8M"], + steelbeam: ["8T"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L25"], + surf: ["8M"], + tackle: ["8L1"], + terrainpulse: ["8T"], + thunderwave: ["8M"], + uproar: ["8M"], + watergun: ["8L1"], + yawn: ["8E"], + }, + }, + mienfoo: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], + agility: ["9M", "8M"], + allyswitch: ["8M", "7T", "7E", "6E"], + attract: ["8M", "7M", "6M", "5M"], + aurasphere: ["9M", "9L45", "8M", "8L45", "7L61", "6L61", "5L61"], + batonpass: ["9M", "8M", "7E", "6E", "5E"], + bounce: ["9L51", "8M", "8L51", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L55", "8M", "8L55", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + detect: ["9L1", "8L1", "7L9", "6L9", "5L9"], + dig: ["9M", "8M", "6M", "5M"], + doubleslap: ["7L17", "6L17", "5L17"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M", "9L35", "8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + dualchop: ["7T", "6T", "5T"], + endure: ["9M", "8M", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fakeout: ["9L5", "8L5", "7L13", "6L13", "5L13"], + feint: ["9E", "8E", "7E", "6E", "5E"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["9M", "9E", "8E", "7T", "6T"], + forcepalm: ["9L25", "8L25", "7L29", "6L29", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L15", "8L15"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["9L60", "8L60", "7L50", "6L50", "5L53"], + honeclaws: ["9L40", "8L40"], + jumpkick: ["7L37", "6L37", "5L37"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lowkick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + meditate: ["7L5", "6L5", "5L5"], + mefirst: ["7E", "6E", "5E"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickguard: ["9L20", "8L20", "7L45", "6L45", "5L45"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["9M", "9L10", "8M", "8L10", "7L57", "6L57", "5L57"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + smellingsalts: ["7E", "6E", "5E"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M", "7L21", "6L21", "5L21"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + vitalthrow: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + }, + }, + mienshao: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M"], + agility: ["9M", "8M"], + allyswitch: ["8M", "7T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + aurasphere: ["9M", "9L45", "8M", "8L45", "7L1", "6L1", "5L70"], + batonpass: ["9M", "8M"], + blazekick: ["8M"], + bounce: ["9L53", "8M", "8L53", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L59", "8M", "8L59", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + detect: ["9L1", "8L1", "7L1", "6L1", "5L1"], + dig: ["9M", "8M", "6M", "5M"], + doubleslap: ["7L17", "6L17", "5L17"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M", "9L35", "8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + dualchop: ["7T", "7S0", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fakeout: ["9L1", "8L1", "7L1", "7S0", "6L1", "5L1"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["9M", "7T", "6T"], + forcepalm: ["9L25", "8L25", "7L29", "6L29", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L15", "8L15"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["9L66", "8L66", "7L56", "7S0", "6L56", "5L56"], + honeclaws: ["9L40", "8L40"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icespinner: ["9M"], + jumpkick: ["7L37", "6L37", "5L37"], + knockoff: ["9M", "7T", "6T", "5T"], + laserfocus: ["7T"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + meditate: ["7L1", "6L1", "5L1"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickguard: ["9L1", "8L1"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L63"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M", "7L21", "6L21", "5L21"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30", "7M", "7L41", "7S0", "6M", "6L41", "5M", "5L41"], + vacuumwave: ["9M"], + wideguard: ["9L20", "8L20", "7L45", "6L45", "5L45"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 7, level: 65, gender: "M", abilities: ["innerfocus"], moves: ["fakeout", "dualchop", "highjumpkick", "uturn"], pokeball: "cherishball"}, + ], + }, + druddigon: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["8L5", "7L9", "6L9", "5L9", "5D"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + chipaway: ["7L31", "6L31", "5L31"], + confide: ["7M", "6M"], + crunch: ["8M", "8L40", "7L25", "6L25", "5L25"], + crushclaw: ["7E", "6E", "5E"], + cut: ["6M", "5M"], + darkpulse: ["8M", "7M", "6M", "5T"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "5T"], + dragonclaw: ["8M", "8L30", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragonrage: ["7L18", "6L18", "5L18"], + dragontail: ["8L10", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + firefang: ["8M", "7E", "6E", "5E", "5D"], + firepunch: ["8M", "7T", "6T", "5T"], + flamethrower: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + glare: ["8E", "7E", "6E", "5E"], + gunkshot: ["8M", "7T", "6T", "5T"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L35", "7L5", "6M", "6L5", "5M", "5L5"], + hyperbeam: ["8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "8L45", "7T", "6T", "5T"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1", "5S0"], + megapunch: ["8M"], + metalclaw: ["8L15", "7E", "6E", "5E"], + nightslash: ["8E", "7L40", "6L40", "5L40"], + outrage: ["8M", "8L50", "7T", "7L62", "6T", "6L62", "5T", "5L62"], + payback: ["8M", "7M", "6M", "5M"], + poisontail: ["8E", "7E", "6E", "5E"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7L35", "6L35", "5L35"], + roar: ["7M", "6M", "5M"], + rockclimb: ["7L49", "6L49", "5L49"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L20", "7L13", "6L13", "5L13"], + scratch: ["8L1", "7L1", "6L1", "5L1", "5S0"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slash: ["8L25", "7L21", "6L21", "5L21"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8E", "7E", "6E", "5E", "5D"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L55", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M", "7E", "6E", "5E"], + thunderpunch: ["8M", "7T", "6T", "5T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["leer", "scratch"], pokeball: "pokeball"}, + ], + }, + golett: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["8L16", "7L45", "6L40", "5L40"], + defensecurl: ["8L4", "7L1", "6L1", "5L1"], + dig: ["8M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + dynamicpunch: ["8L56", "7L35", "6L30", "5L30"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "8L52", "7M", "7L50", "6M", "6L45", "5M", "5L45"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T", "5D"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "7L61", "6T", "6L55", "5L55"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L48", "7L55", "6L50", "5L50"], + heavyslam: ["8M", "8L40"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + icebeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + irondefense: ["8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnitude: ["7L30", "6L25", "5L25"], + megakick: ["8M"], + megapunch: ["8M", "8L32", "7L25", "6L21", "5L21"], + mudslap: ["8L1", "7L5", "6L5", "5L5"], + nightshade: ["8L20", "7L40", "6L35", "5L35"], + phantomforce: ["8M", "8L44"], + poltergeist: ["8T"], + pound: ["8L8", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L9", "6L9", "5L9", "5D"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + selfdestruct: ["8M"], + shadowball: ["8M", "8L36", "7M", "6M", "5M"], + shadowpunch: ["8L12", "7L13", "6L13", "5L13"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "8L24", "7L21"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T", "5D"], + toxic: ["7M", "6M", "5M"], + }, + }, + golurk: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + curse: ["8L16", "7L47", "6L40", "5L40"], + darkestlariat: ["8M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + dig: ["8M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + dynamicpunch: ["8L64", "7L35", "6L30", "5L30"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "8L58", "7M", "7L54", "6M", "6L50", "5M", "5L50"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["8L1", "7T", "7L69", "6T", "6L1", "5L70"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gyroball: ["8M", "7M", "6M", "5M", "5S0"], + hammerarm: ["8L52", "7L61", "6L60", "5L60", "5S0"], + heatcrash: ["8M"], + heavyslam: ["8M", "8L40", "7L1", "6L43", "5L43"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M", "8L1", "7L1"], + hyperbeam: ["8M", "7M", "6M", "5M", "5S0"], + icebeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + irondefense: ["8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnitude: ["7L30", "6L25", "5L25"], + megakick: ["8M"], + megapunch: ["8M", "8L32", "7L25", "6L21", "5L21"], + mudslap: ["8L1", "7L1", "6L1", "5L1"], + nightshade: ["8L20", "7L40", "6L35", "5L35"], + phantomforce: ["8M", "8L46", "7L76", "6L1"], + poltergeist: ["8T"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L9", "6L9", "5L9"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + selfdestruct: ["8M"], + shadowball: ["8M", "8L36", "7M", "6M", "5M"], + shadowpunch: ["8L12", "7L13", "6L13", "5L13", "5S0"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "8L24", "7T", "7L21"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + trick: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 70, shiny: true, abilities: ["ironfist"], moves: ["shadowpunch", "hyperbeam", "gyroball", "hammerarm"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + pawniard: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M"], + assurance: ["9L25", "8M", "8L25", "7L33", "6L33", "5L33"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L17", "6L17", "5L17"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L5", "8L5", "7L9", "6L9", "5L9", "5D"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + guillotine: ["9L65", "8L65", "7L62", "6L62", "5L62"], + headbutt: ["9E", "8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irondefense: ["9M", "9L45", "8M", "8L45", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + ironhead: ["9M", "9L55", "8M", "8L55", "7T", "7L54", "6T", "6L54", "5T", "5L54"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["8L50"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L6", "6L6", "5L6"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + meanlook: ["9E", "8E", "7E", "6E", "5E"], + metalclaw: ["9M", "9L10", "8L10", "7L25", "6L25", "5L25"], + metalsound: ["9L30", "8L30", "7L38", "6L38", "5L38"], + nightslash: ["9L40", "8L40", "7L49", "6L49", "5L49"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychocut: ["8M", "7E", "6E", "5E", "5D"], + pursuit: ["7E", "6E", "5E"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L50", "8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L22", "6L22", "5L22"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + slash: ["9L35", "8L35", "7L30", "6L30", "5L30"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + steelbeam: ["9M", "8T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E", "5D"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "9L60", "8M", "8L60", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["9L15", "8L15", "7M", "7L14", "6M", "6L14", "5M", "5L14"], + toxic: ["7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + }, + bisharp: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M", "8M"], + assurance: ["9L25", "8M", "8L25", "7L33", "6L33", "5L33"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L17", "6L17", "5L17"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L1", "8L1", "7L1", "6L1", "5L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + guillotine: ["9L71", "8L71", "7L1", "6L1", "5L71"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + irondefense: ["9M", "9L45", "8M", "8L45", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + ironhead: ["9M", "9L57", "8M", "8L57", "7T", "7L1", "6T", "6L1", "5T", "5L57"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["8L50", "7T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + metalburst: ["9L1", "8L1", "7L1", "6L1", "5L1"], + metalclaw: ["9M", "9L1", "8L1", "7L25", "6L25", "5L25"], + metalsound: ["9L30", "8L30", "7L38", "6L38", "5L38"], + nightslash: ["9L40", "8L40", "7L49", "6L49", "5L49"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychocut: ["8M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L50", "8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["9M"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L22", "6L22", "5L22"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + slash: ["9L35", "8L35", "7L30", "6L30", "5L30"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + steelbeam: ["9M", "8T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "9L64", "8M", "8L64", "7M", "7L63", "6M", "6L63", "5M", "5L63"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["9L15", "8L15", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 7, level: 33}, + ], + }, + kingambit: { + learnset: { + aerialace: ["9M"], + airslash: ["9M"], + assurance: ["9L25"], + brickbreak: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + furycutter: ["9L1"], + gigaimpact: ["9M"], + grassknot: ["9M"], + guillotine: ["9L71"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L45"], + ironhead: ["9M", "9L57"], + kowtowcleave: ["9L0"], + lashout: ["9M"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalburst: ["9L1"], + metalclaw: ["9M", "9L1"], + metalsound: ["9L30"], + nightslash: ["9L40"], + poisonjab: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + retaliate: ["9L50"], + reversal: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L20"], + scratch: ["9L1"], + shadowclaw: ["9M"], + slash: ["9L35"], + sleeptalk: ["9M"], + snarl: ["9M"], + spite: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + swordsdance: ["9M", "9L64"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + torment: ["9L15"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + bouffalant: { + learnset: { + aerialace: ["7M", "6M", "5M"], + amnesia: ["8M", "7E", "6E", "5E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["8E", "7E", "6E"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cottonguard: ["8E", "7E"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "6S0", "5M"], + endeavor: ["8E", "7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "6S0", "5M"], + focusenergy: ["8M", "8L5", "7L36", "6L36", "5L36"], + frustration: ["7M", "6M", "5M"], + furyattack: ["8L10", "7L11", "6L11", "5L11"], + gigaimpact: ["8M", "8L55", "7M", "7L61", "6M", "6L61", "5M", "5L61"], + headbutt: ["8E", "7E", "6E", "5E"], + headcharge: ["8L40", "7L31", "6L31", "6S0", "5L31"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + hornattack: ["8L25", "7L16", "6L16", "5L16"], + ironhead: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + megahorn: ["8M", "8L50", "7L41", "6L41", "5L41"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E"], + outrage: ["8M", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7L1", "6L1", "5L1"], + rage: ["7L6", "6L6", "5L6"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "8L15", "7L26", "6L26", "5L26"], + reversal: ["8M", "8L30", "7L46", "6L46", "5L46"], + rockclimb: ["7E", "6E", "5E"], + rockslide: ["8M", "7M", "6M", "6S0", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L21", "6L21", "5L21"], + secretpower: ["6M"], + skullbash: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T"], + stomp: ["8E", "7E", "6E", "5E"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L45", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + tackle: ["8L1"], + taunt: ["8M", "7M", "6M", "5M"], + thrash: ["7L50", "6L50", "5L51"], + throatchop: ["8M", "8L35"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Adamant", ivs: {hp: 31, atk: 31}, isHidden: true, moves: ["headcharge", "facade", "earthquake", "rockslide"], pokeball: "cherishball"}, + ], + }, + rufflet: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L30", "8L30", "7M", "7L23", "6M", "6L23", "5M", "5L23"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "9L55", "8M", "8L55", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bravebird: ["9M", "9L72", "8M", "8L72", "7L59", "6L59", "5L59"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + crushclaw: ["9L48", "8L48", "7L46", "6L46", "5L46"], + cut: ["6M", "5M"], + defog: ["9L60", "8L60", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L5", "6L5", "5L5"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L6", "8L6", "7L14", "6M", "6L14", "5M", "5L14"], + hurricane: ["9M", "8M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + peck: ["9L1", "8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["9E", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["9E", "7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L24", "8M", "8L24", "7L19", "6L19", "5L19"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skydrop: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + slash: ["9L36", "8L36", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L66", "8L66", "7L64", "6L64", "5L64"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L42", "8L42", "7L55", "6L55", "5L55"], + wingattack: ["9L12", "8L12", "7L10", "6L10", "5L10"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M"], + }, + }, + braviary: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L30", "8L30", "7M", "7L23", "6M", "6L23", "5M", "5L23", "5S0"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "9L57", "8M", "8L57", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bravebird: ["9M", "8M", "8L80", "7L1", "6L1", "5L63"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + crushclaw: ["9L48", "8L48", "7L46", "6L46", "5L46"], + cut: ["6M", "5M"], + defog: ["9L64", "8L64", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L1", "6L1", "5L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L1", "8L1", "7L14", "6M", "6L14", "5M", "5L14", "5S0"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + ironhead: ["9M", "8M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + metalclaw: ["9M"], + peck: ["9L1", "8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L24", "8M", "8L24", "7L19", "6L19", "5L19", "5S0"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skyattack: ["9L1", "8L1", "7T", "6T", "5T"], + skydrop: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + slash: ["9L36", "8L36", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1", "5T", "5L51"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L72", "8L72", "7L1", "6L1", "5L70"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L42", "8L42", "7L1", "6L1", "5L57"], + wingattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T"], + }, + eventData: [ + {generation: 5, level: 25, gender: "M", isHidden: true, moves: ["wingattack", "honeclaws", "scaryface", "aerialace"]}, + ], + encounters: [ + {generation: 6, level: 45}, + ], + }, + braviaryhisui: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L30"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L57"], + bodyslam: ["9M"], + bravebird: ["9M"], + bulkup: ["9M"], + calmmind: ["9M"], + closecombat: ["9M"], + confuseray: ["9M"], + crushclaw: ["9L48"], + dazzlinggleam: ["9M"], + defog: ["9L64"], + dualwingbeat: ["9M"], + endure: ["9M"], + esperwing: ["9L0"], + facade: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + honeclaws: ["9L1"], + hurricane: ["9M", "9L80"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + leer: ["9L1"], + metalclaw: ["9M"], + nightshade: ["9M"], + peck: ["9L1"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M", "9L24"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skyattack: ["9L1"], + slash: ["9L36"], + sleeptalk: ["9M"], + snarl: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L1"], + swift: ["9M"], + tailwind: ["9M", "9L18"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L72"], + uturn: ["9M"], + vacuumwave: ["9M"], + whirlwind: ["9L42"], + wingattack: ["9L1"], + zenheadbutt: ["9M"], + }, + }, + vullaby: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aircutter: ["9M"], + airslash: ["9M", "9L42", "8M", "8L42", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["9L66", "8M", "8L66", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bravebird: ["9M", "9L72", "8M", "8L72", "7L59", "6L59", "5L59"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "9L48", "8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], + defog: ["9L60", "8L60", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + embargo: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "8M", "7E", "6E", "5E"], + feintattack: ["7L23", "6L23", "5L23"], + flatter: ["9L6", "8L6", "7L19", "6L19", "5L19"], + fly: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L5", "6L5", "5L5"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "9L30", "8M", "8L30", "5T"], + knockoff: ["9M", "9L24", "8L24", "7T", "7E", "6T", "6E", "5T", "5E"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + meanlook: ["9E", "8E", "7E", "6E", "5E"], + mirrormove: ["7L64", "6L64", "5L64"], + nastyplot: ["9M", "9L54", "8M", "8L54", "7L14", "6L14", "5L14"], + payback: ["8M", "7M", "6M", "5M"], + pluck: ["9L12", "8L12", "7L10", "6L10", "5M", "5L10"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L28", "6L28", "5L28"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["9E", "8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["9M", "9E", "8E", "7M", "6M", "5M"], + uproar: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L36", "8L36", "7L55", "6L55", "5L55"], + }, + }, + mandibuzz: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M"], + aircutter: ["9M"], + airslash: ["9M", "9L42", "8M", "8L42", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["9L72", "8M", "8L72", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bonerush: ["9L0", "8L0", "7L1", "6L1", "5L51"], + bravebird: ["9M", "9L80", "8M", "8L80", "7L1", "6L1", "5L63"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "9L48", "8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], + defog: ["9L64", "8L64", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + embargo: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "8M"], + feintattack: ["7L23", "6L23", "5L23", "5S0"], + flatter: ["9L1", "8L1", "7L19", "6L19", "5L19", "5S0"], + fly: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L1", "6L1", "5L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["9M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "9L30", "8M", "8L30", "7T", "5T"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + mirrormove: ["7L1", "6L1", "5L70"], + nastyplot: ["9M", "9L57", "8M", "8L57", "7L14", "6L14", "5L14", "5S0"], + payback: ["8M", "7M", "6M", "5M"], + pluck: ["9L1", "8L1", "7L1", "6L1", "5M", "5L1", "5S0"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L28", "6L28", "5L28"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + skyattack: ["9L1", "8L1", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M"], + steelwing: ["8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["9M", "9L1", "8L1", "7M", "6M", "5M"], + uproar: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L36", "8L36", "7L1", "6L1", "5L57"], + }, + eventData: [ + {generation: 5, level: 25, gender: "F", isHidden: true, moves: ["pluck", "nastyplot", "flatter", "feintattack"]}, + ], + }, + heatmor: { + learnset: { + aerialace: ["7M", "6M", "5M"], + amnesia: ["8M", "8L45", "7L47", "6L44", "5L46"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["8E", "7E", "6E"], + bind: ["8L30", "7T", "7L11", "6T", "6L11", "5T", "5L11"], + bodyslam: ["8M", "7E", "6E", "5E"], + brutalswing: ["8M"], + bugbite: ["8L15", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + burningjealousy: ["8T"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + fireblast: ["8M", "7M", "6M", "5M"], + firelash: ["8L35", "7L44"], + firepunch: ["8M", "7T", "6T", "5T"], + firespin: ["8M", "8L50", "7L16", "6L16", "5L16"], + flameburst: ["7L31", "6L31", "5L31"], + flamethrower: ["8M", "7M", "7L50", "6M", "6L47", "5M", "5L51"], + flareblitz: ["8M", "8L60", "7L61"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L5", "7L21", "6L21", "5L21"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["8M", "7T", "6T", "5T", "5D"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heatwave: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L40", "7L1", "6M", "6L1", "5M"], + incinerate: ["8L10", "7L1", "6M", "6L1", "5M", "5L1", "5D"], + inferno: ["8L55", "7L66", "6L1", "5L61"], + knockoff: ["7T", "6T", "5T"], + lick: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "7T", "6T", "5T"], + nightslash: ["8E", "7E", "6E", "5E"], + odorsleuth: ["7L6", "6L6", "5L6"], + overheat: ["8M", "7M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["8L25", "7L41", "6L41", "5L41"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snatch: ["7T", "7L26", "6T", "6L26", "5T", "5L26"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spitup: ["8L20", "7L56", "6L50", "5L56"], + stockpile: ["8L20", "7L56", "6L50", "5L56"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8E", "7E", "6E", "5E"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swallow: ["8L20", "7L56", "6L50", "5L56"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + wrap: ["7E", "6E", "5E"], + }, + }, + durant: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L24", "7L6", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "7E", "6E", "5E"], + beatup: ["8M", "8L12"], + bite: ["8L20", "7L1", "6L11", "5L11"], + bugbite: ["8L16", "7T", "7L16", "6T", "6L26", "5T", "5L26"], + confide: ["7M", "6M"], + crunch: ["8M", "8L36", "7L21", "6L31", "5L31"], + cut: ["6M", "5M"], + dig: ["8M", "8L28", "7L31", "6M", "6L41", "5M", "5L41"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "7E", "6E", "5E", "5D"], + energyball: ["8M", "7M", "6M", "5M"], + entrainment: ["8L48", "7L36", "6L46", "5L46"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + firstimpression: ["8E"], + flail: ["8E"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L1", "6L6", "5L6", "5D"], + gigaimpact: ["8M", "7M", "6M", "5M"], + guillotine: ["8L56", "7L1", "6L1", "5L61"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + infestation: ["8E"], + irondefense: ["8M", "8L52", "7T", "7L46", "6T", "6L1", "5T", "5L56"], + ironhead: ["8M", "8L44", "7T", "7L26", "6T", "6L36", "5T", "5L36"], + metalburst: ["8E"], + metalclaw: ["8L8", "7L11", "6L21", "5L21"], + metalsound: ["8L40", "7L1", "6L1", "5L66"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stompingtantrum: ["8M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + strugglebug: ["8E", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + thunderfang: ["8M", "7E", "6E", "5E", "5D"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + visegrip: ["8L4", "7L1", "6L1", "5L1"], + xscissor: ["8M", "8L32", "7M", "7L41", "6M", "6L51", "5M", "5L51"], + }, + }, + deino: { + learnset: { + aquatail: ["7T", "6T", "5T"], + assurance: ["9L16", "8M", "8L16", "7E", "6E", "5E"], + astonish: ["9E", "8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["9E", "8E", "7E"], + bite: ["9L8", "8L8", "7L9", "6L9", "5L9"], + bodyslam: ["9M", "9L44", "8M", "8L44", "7L48", "6L48", "5L48"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "5L25"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E"], + doublehit: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonbreath: ["9L4", "8L4", "7L17", "6L17", "5L17"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + dragonrage: ["7L1", "6L1", "5L1", "5S0"], + dragonrush: ["9L52", "8L52", "7L42", "6L42", "5L42"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M", "7E", "6E", "5E"], + focusenergy: ["9L1", "8M", "8L1", "7L4", "6L4", "5L4"], + frustration: ["7M", "6M", "5M"], + headbutt: ["9L20", "8L20", "7L12", "6L12", "5L12"], + headsmash: ["9E", "8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["9M", "9L48", "8M", "8L48", "7T", "7L58", "6T", "6L58", "5T", "5L58"], + icefang: ["9M", "8M", "7E", "6E", "5E"], + incinerate: ["6M", "5M"], + nastyplot: ["9M", "9L56", "8M", "8L56"], + outrage: ["9M", "9L60", "8M", "8L60", "7T", "7L62", "6T", "6L62", "5T", "5L62"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["9M", "9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L50", "6L50", "5L52"], + screech: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + slam: ["9L28", "8L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderfang: ["9M", "8M", "7E", "6E", "5E"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + workup: ["9L24", "8M", "8L24", "7M", "7L38", "6L38", "5M", "5L38"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["tackle", "dragonrage"], pokeball: "pokeball"}, + ], + }, + zweilous: { + learnset: { + aquatail: ["7T", "6T", "5T"], + assurance: ["9L16", "8M", "8L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1"], + bodyslam: ["9M", "9L44", "8M", "8L44", "7L48", "6L48", "5L48"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "5L25"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + doublehit: ["9L1", "8L1", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonbreath: ["9L1", "8L1", "7L17", "6L17", "5L17"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + dragonrage: ["7L1", "6L1", "5L1"], + dragonrush: ["9L54", "8L54", "7L42", "6L42", "5L42"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "5M"], + headbutt: ["9L20", "8L20", "7L12", "6L12", "5L12"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["9M", "9L48", "8M", "8L48", "7T", "7L64", "6T", "6L64", "5T", "5L64"], + icefang: ["9M", "8M"], + incinerate: ["6M", "5M"], + lashout: ["9M"], + nastyplot: ["9M", "9L60", "8M", "8L60"], + outrage: ["9M", "9L66", "8M", "8L66", "7T", "7L71", "6T", "6L71", "5T", "5L71"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["9M", "9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L55", "6L55", "5L55"], + screech: ["8M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + slam: ["9L28", "8L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderfang: ["9M", "8M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + workup: ["9L24", "8M", "8L24", "7M", "7L38", "6L38", "5M", "5L38"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 49}, + ], + }, + hydreigon: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["9L16", "8M", "8L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1"], + bodyslam: ["9M", "9L44", "8M", "8L44", "7L48", "6L48", "5L48"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "6S1", "5L25"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + defog: ["7T"], + doublehit: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonbreath: ["9L1", "8L1", "7L17", "6L17", "5L17", "5S0"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + dragonrage: ["7L1", "6L1", "5L1"], + dragonrush: ["9L54", "8L54", "7L42", "6L42", "6S1", "5L42"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "5S0"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "5S0"], + focusenergy: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "6S1", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + headbutt: ["9L20", "8L20", "7L12", "6L12", "5L12"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L76", "8M", "8L76", "7M", "6M", "5M"], + hypervoice: ["9M", "9L48", "8M", "8L48", "7T", "7L1", "6T", "6L1", "5T", "5L68", "5S0"], + icefang: ["9M", "8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + lashout: ["9M"], + nastyplot: ["9M", "9L60", "8M", "8L60"], + outrage: ["9M", "9L68", "8M", "8L68", "7T", "7L1", "6T", "6L1", "5T", "5L79"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["9M", "9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + rockslide: ["9M", "8M", "7M", "6M", "6S1", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L55", "6L55", "5L55"], + screech: ["8M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + slam: ["9L28", "8L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9M", "7T", "6T", "5T"], + stealthrock: ["9M"], + steelwing: ["8M", "7M", "6M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["9L1", "8L1"], + tailwind: ["9M", "7T", "6T", "5T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderfang: ["9M", "8M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + triattack: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + workup: ["9L24", "8M", "8L24", "7M", "7L38", "6L38", "5M", "5L38"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 70, shiny: true, gender: "M", moves: ["hypervoice", "dragonbreath", "flamethrower", "focusblast"], pokeball: "cherishball"}, + {generation: 6, level: 52, gender: "M", perfectIVs: 2, moves: ["dragonrush", "crunch", "rockslide", "frustration"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 59}, + ], + }, + larvesta: { + learnset: { + absorb: ["9E", "8E", "7L10"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + amnesia: ["9M", "9L54", "8M", "8L54", "7L80", "6L80", "5L80"], + attract: ["8M"], + bodyslam: ["9M"], + bugbite: ["9M", "9L24", "8L24", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + bugbuzz: ["9M", "9L42", "8M", "8L42", "7L70", "6L70", "5L70"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + doubleedge: ["9L60", "8L60", "7L50", "6L50", "5L50"], + doubleteam: ["7M", "6M", "5M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], + endure: ["9M", "8M", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M"], + flamecharge: ["9M", "9L6", "8L6", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flamewheel: ["9L18", "8L18", "7L60", "6L60", "5L60"], + flareblitz: ["9M", "9L66", "8M", "8L66", "7L100", "6L100", "5L100"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T"], + harden: ["9E", "8E", "7E", "6E", "5E"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + leechlife: ["9M", "9L36", "8M", "8L36", "7M", "6L10", "5L10"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], + magnetrise: ["7T", "7E", "6T", "6E", "5T", "5E"], + morningsun: ["9E", "7E", "6E", "5E"], + overheat: ["9M", "8M", "7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["9L30", "8M", "8L30"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + stringshot: ["9L1", "8L1", "7L1", "7E", "6L1", "6E", "5L1", "5E"], + strugglebug: ["9M", "9L12", "8L12", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M", "9L48", "8L48", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thrash: ["9E", "8E", "7L90", "6L90", "5L90"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + volcarona: { + learnset: { + absorb: ["7L1"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + aircutter: ["9M"], + airslash: ["9M"], + amnesia: ["9M", "9L54", "8M", "8L54", "7L1", "6L1"], + attract: ["8M"], + bodyslam: ["9M"], + bugbite: ["9M", "9L24", "8L24", "7T", "6T", "5T"], + bugbuzz: ["9M", "9L42", "8M", "8L42", "7L1", "6L1", "5L70", "5S1"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + defog: ["7T"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["9M", "8T"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fierydance: ["9L1", "8L1", "7L1", "6L1", "5L100"], + fireblast: ["9M", "9L70", "8M", "8L70", "7M", "6M", "5M"], + firespin: ["9M", "9L1", "8M", "8L1", "7L30", "6L30", "5L30", "5S0"], + flamecharge: ["9M", "9L1", "8L1", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flamewheel: ["9L18", "8L18", "7L1", "6L1"], + flareblitz: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + fly: ["9M", "8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + heatwave: ["9M", "9L48", "8M", "8L48", "7T", "7L1", "6T", "6L1", "5T", "5L60"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["9M", "9L62", "8M", "8L62", "7L1", "6L1", "5L90"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "5S1"], + incinerate: ["6M", "5M"], + leechlife: ["9M", "9L36", "8M", "8L36", "7M", "6L1", "5L1", "5S0"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lunge: ["9M"], + magnetrise: ["7T", "6T", "5T"], + mysticalfire: ["8M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "5S1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + quiverdance: ["9L0", "8L0", "7L1", "6L1", "5L59", "5S1"], + ragepowder: ["9L78", "8L78", "7L1", "6L1", "5L80"], + raindance: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["9L30", "8M", "8L30"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["7L50", "6L50", "5L50"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + stringshot: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + strugglebug: ["9M", "9L1", "8L1", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwind: ["9M", "7T", "6T", "5T"], + takedown: ["9M", "9L1", "8L1"], + terablast: ["9M"], + thrash: ["7L1", "6L1"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L1", "8L1", "7L40", "6L40", "5L40"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 35, moves: ["stringshot", "leechlife", "gust", "firespin"]}, + {generation: 5, level: 77, gender: "M", nature: "Calm", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["bugbuzz", "overheat", "hyperbeam", "quiverdance"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 41}, + ], + }, + cobalion: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + block: ["7T", "6T", "5T"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "8L63", "8S5", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + magnetrise: ["7T", "6T", "5T"], + megahorn: ["8M"], + metalburst: ["8L35", "7L1", "6L1", "5L67"], + metalclaw: ["8L7", "7L1", "6L13", "5L13"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "7S4", "6L1", "5L1"], + quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + takedown: ["8L42", "7L7", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + xscissor: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "ironhead", "sacredsword"]}, + {generation: 5, level: 45, shiny: 1, moves: ["helpinghand", "retaliate", "ironhead", "sacredsword"]}, + {generation: 5, level: 65, shiny: 1, moves: ["sacredsword", "swordsdance", "quickguard", "workup"]}, + {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "ironhead", "sacredsword", "swordsdance"]}, + {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "quickattack", "ironhead"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "ironhead", "closecombat"]}, + ], + eventOnly: true, + }, + terrakion: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + ironhead: ["8M", "7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + megahorn: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L35", "7M", "7L25", "7S4", "6M", "6L37", "6S3", "5M", "5L37", "5S0", "5S1"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L7", "7M", "7L1", "6M", "6L13", "5M", "5L13"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L63", "8S5", "7M", "7L55", "7S4", "6M", "6L67", "5M", "5L67"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + takedown: ["8L42", "7L7", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + xscissor: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "rockslide", "sacredsword"]}, + {generation: 5, level: 45, shiny: 1, moves: ["helpinghand", "retaliate", "rockslide", "sacredsword"]}, + {generation: 5, level: 65, shiny: 1, moves: ["sacredsword", "swordsdance", "quickguard", "workup"]}, + {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "rockslide", "sacredsword", "swordsdance"]}, + {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "rockslide", "stoneedge"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "stoneedge", "closecombat"]}, + ], + eventOnly: true, + }, + virizion: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + block: ["7T", "6T", "5T"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L35", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + grassyglide: ["8T"], + helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + laserfocus: ["7T"], + leafblade: ["8M", "8L63", "8S5", "7L1", "7S4", "6L1", "5L67"], + leafstorm: ["8M"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + magicalleaf: ["8M", "8L7", "7L1", "6L13", "5L13"], + megahorn: ["8M"], + naturepower: ["7M", "6M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + solarblade: ["8M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + synthesis: ["7T", "6T", "5T"], + takedown: ["8L42", "7L7", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + worryseed: ["7T", "6T", "5T"], + xscissor: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "gigadrain", "sacredsword"]}, + {generation: 5, level: 45, shiny: 1, moves: ["helpinghand", "retaliate", "gigadrain", "sacredsword"]}, + {generation: 5, level: 65, shiny: 1, moves: ["sacredsword", "swordsdance", "quickguard", "workup"]}, + {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "gigadrain", "sacredsword", "swordsdance"]}, + {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "gigadrain", "leafblade"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "leafblade", "closecombat"]}, + ], + eventOnly: true, + }, + tornadus: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + agility: ["9M", "9L25", "8M", "8L25", "8S7", "7L31", "6L37", "6S3", "5L37", "5S0"], + aircutter: ["9M", "9L20", "8L20", "7L19", "6L25", "5L25", "5S0"], + airslash: ["9M", "9L35", "8M", "8L35", "7L37", "7S4", "7S5", "6L43", "6S3", "5L43", "5S2"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L15", "8L15", "7L7", "6L13", "5L13"], + bleakwindstorm: ["9L77"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L40", "8M", "8L40", "7L43", "7S4", "7S5", "6L49", "6S3", "5L49"], + darkpulse: ["9M", "8M", "7M", "7L67", "6M", "6L73", "5T", "5L73"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + extrasensory: ["9L45", "8L45", "7L25", "6L31", "6S3", "5L31", "5S0"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "7S6", "6M", "5M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + hammerarm: ["9L55", "8L55", "7L1", "6L1", "5L79", "5S2"], + heatwave: ["9M", "8M", "8S7", "7T", "7S6", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M", "5S2"], + hurricane: ["9M", "9L65", "8M", "8L65", "8S7", "7L1", "7S6", "6L1", "5L67", "5S2"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icywind: ["9M", "8M", "8S7", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L5", "8L5"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "9L60", "8M", "8L60", "7M", "7L55", "7S4", "7S5", "6M", "6L61", "5M", "5L61"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7L13", "6L19", "5L19", "5S0"], + reversal: ["9M"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["9L10", "8L10", "7M", "7L1", "6M", "6L7", "5M", "5L7"], + tailwind: ["9M", "9L30", "8L30", "7T", "7L49", "7S4", "7S5", "7S6", "6T", "6L1", "5T", "5L55"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L70", "8L70", "7L1", "6L1", "5L85"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["9M", "9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["9M", "8M"], + }, + eventData: [ + {generation: 5, level: 40, shiny: 1, moves: ["revenge", "aircutter", "extrasensory", "agility"]}, + {generation: 5, level: 5, isHidden: true, moves: ["uproar", "astonish", "gust"], pokeball: "dreamball"}, + {generation: 5, level: 70, moves: ["hurricane", "hammerarm", "airslash", "hiddenpower"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["extrasensory", "agility", "airslash", "crunch"]}, + {generation: 7, level: 60, shiny: 1, moves: ["airslash", "crunch", "tailwind", "raindance"]}, + {generation: 7, level: 60, moves: ["airslash", "crunch", "tailwind", "raindance"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["hurricane", "heatwave", "grassknot", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["hurricane", "agility", "icywind", "heatwave"]}, + ], + eventOnly: true, + }, + tornadustherian: { + eventOnly: true, + }, + thundurus: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L25", "8M", "8L25", "7L31", "6L37", "6S3", "5L37", "5S0"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L15", "8L15", "7L7", "6L13", "5L13"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + charge: ["9M", "9L30", "8L30", "7L49", "7S4", "7S5", "6L1", "5L55"], + chargebeam: ["9M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L40", "8M", "8L40", "7L43", "7S4", "7S5", "6L49", "6S3", "5L49"], + darkpulse: ["9M", "8M", "7M", "7L67", "6M", "6L73", "5T", "5L73"], + defog: ["7T"], + discharge: ["9L45", "8L45", "7L37", "7S4", "7S5", "6L43", "6S3", "5L43"], + doubleteam: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T", "6T"], + embargo: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "7S6", "6M", "5M", "5S2"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "7S6", "6M", "5M"], + hammerarm: ["9L55", "8L55", "7L1", "6L1", "5L79", "5S2"], + healblock: ["7L25", "6L31", "6S3", "5L31", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leer: ["9L5", "8L5"], + nastyplot: ["9M", "8M", "7L1", "7S4", "7S5", "7S6", "6L1", "5L61"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "9L60", "8M", "8L60", "8S7", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7L13", "6L19", "5L19", "5S0"], + risingvoltage: ["8T"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + shockwave: ["9L20", "8L20", "7T", "7L19", "6T", "6L25", "5L25", "5S0"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + sludgewave: ["8M", "8S7", "7M", "6M", "5M"], + smackdown: ["9M", "7M", "6M", "5M"], + smartstrike: ["9M", "8M", "7M"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["9L10", "8L10", "7M", "7L1", "6M", "6L7", "5M", "5L7"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L70", "8L70", "7L1", "6L1", "5L85"], + thunder: ["9M", "9L65", "8M", "8L65", "8S7", "7M", "7L61", "6M", "6L67", "5M", "5L67", "5S2"], + thunderbolt: ["9M", "8M", "7M", "7S6", "6M", "5M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + thundershock: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["9M", "9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + voltswitch: ["9M", "9L35", "8M", "8L35", "7M", "6M", "5M"], + weatherball: ["9M", "8M", "8S7"], + wildboltstorm: ["9L75"], + wildcharge: ["9M", "8M", "7M", "6M", "5M", "5S2"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 5, level: 40, shiny: 1, moves: ["revenge", "shockwave", "healblock", "agility"]}, + {generation: 5, level: 5, isHidden: true, moves: ["uproar", "astonish", "thundershock"], pokeball: "dreamball"}, + {generation: 5, level: 70, moves: ["thunder", "hammerarm", "focusblast", "wildcharge"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["healblock", "agility", "discharge", "crunch"]}, + {generation: 7, level: 60, shiny: 1, moves: ["discharge", "crunch", "charge", "nastyplot"]}, + {generation: 7, level: 60, moves: ["discharge", "crunch", "charge", "nastyplot"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["thunderbolt", "focusblast", "grassknot", "nastyplot"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["thunder", "raindance", "weatherball", "sludgewave"]}, + ], + eventOnly: true, + }, + thundurustherian: { + eventOnly: true, + }, + reshiram: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blueflare: ["8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L16", "7L71", "6L71", "5L71"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "7S6", "6T", "5T", "5S2"], + dragonbreath: ["8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], + dragonclaw: ["8M", "8S7", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L32", "7T", "7L54", "7S4", "7S5", "6T", "6L54", "5T", "5L54", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "7S6", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + extrasensory: ["8L24", "8S7", "7L43", "7S4", "7S5", "6L43", "6S3", "5L43", "5S0", "5S1"], + facade: ["8M", "7M", "6M", "5M"], + fireblast: ["8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + flareblitz: ["8M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + fusionflare: ["8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heatcrash: ["8M"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + imprison: ["8M", "8L72", "7L64", "6L8", "5L8", "5S1"], + incinerate: ["6M", "5M"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + mist: ["5S2"], + mysticalfire: ["8M"], + nobleroar: ["8L1", "8S7", "7L64"], + outrage: ["8M", "8L80", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + overheat: ["8M", "7M", "6M", "5M"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["8L8", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, moves: ["dragonbreath", "slash", "extrasensory", "fusionflare"]}, + {generation: 5, level: 70, moves: ["extrasensory", "fusionflare", "dragonpulse", "imprison"]}, + {generation: 5, level: 100, moves: ["blueflare", "fusionflare", "mist", "dracometeor"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "extrasensory", "fusionflare"]}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "extrasensory", "fusionflare", "dragonpulse"]}, + {generation: 7, level: 60, moves: ["slash", "extrasensory", "fusionflare", "dragonpulse"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["fusionflare", "blueflare", "dracometeor", "earthpower"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["nobleroar", "extrasensory", "fusionflare", "dragonclaw"]}, + ], + eventOnly: true, + }, + zekrom: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + bodypress: ["8M"], + boltstrike: ["8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L16", "7L71", "6L71", "5L71"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], + dragonclaw: ["8M", "8L32", "8S7", "7M", "7L54", "7S4", "7S5", "6M", "6L54", "5M", "5L54", "5S1"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + fusionbolt: ["8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], + gigaimpact: ["8M", "7M", "6M", "5M"], + haze: ["5S2"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + imprison: ["8M", "8L72", "7L64", "6L8", "5L8", "5S1"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + nobleroar: ["8L1", "8S7", "7L64"], + outrage: ["8M", "8L80", "7T", "7L85", "7S6", "6T", "6L85", "5T", "5L85", "5S2"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "8S7", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "7S6", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["7T", "6T", "5T"], + thunder: ["8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + thunderbolt: ["8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + weatherball: ["8M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "8L24", "7T", "7L43", "7S4", "7S5", "6T", "6L43", "6S3", "5T", "5L43", "5S0", "5S1"], + }, + eventData: [ + {generation: 5, level: 50, moves: ["dragonbreath", "slash", "zenheadbutt", "fusionbolt"]}, + {generation: 5, level: 70, moves: ["zenheadbutt", "fusionbolt", "dragonclaw", "imprison"]}, + {generation: 5, level: 100, moves: ["boltstrike", "fusionbolt", "haze", "outrage"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "zenheadbutt", "fusionbolt"]}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "zenheadbutt", "fusionbolt", "dragonclaw"]}, + {generation: 7, level: 60, moves: ["slash", "zenheadbutt", "fusionbolt", "dragonclaw"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["fusionbolt", "boltstrike", "outrage", "stoneedge"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["nobleroar", "slash", "fusionbolt", "dragonclaw"]}, + ], + eventOnly: true, + }, + landorus: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + block: ["9L10", "8L10", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "9L15", "8M", "8L15", "8S5", "7M", "7L13", "6M", "6L19", "5M", "5L19"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M"], + defog: ["7T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["9M", "9L40", "8M", "8L40", "7T", "7L37", "7S4", "6T", "6L43", "6S2", "5T", "5L43"], + earthquake: ["9M", "9L65", "8M", "8L65", "7M", "7L49", "7S4", "6M", "6L55", "6S3", "5M", "5L55", "5S0"], + endure: ["9M", "8M"], + explosion: ["7M", "6M", "5M"], + extrasensory: ["9L45", "8L45", "7L25", "6L31", "6S2", "5L31"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fissure: ["9L75", "8L75", "7L1", "6L1", "5L67", "5S0"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "8S5", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], + hammerarm: ["9L55", "8L55", "7L1", "6L1", "5L79"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + imprison: ["9M", "9L30", "8M", "8L30", "7L1", "6L7", "5L7"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "6S3", "5T"], + leer: ["9L5", "8L5"], + mudshot: ["9M", "8M", "7L1", "6L1", "5L1", "5S1"], + mudslap: ["9M"], + nastyplot: ["9M"], + outrage: ["9M", "9L70", "8M", "8L70", "7T", "7L1", "6T", "6L1", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + punishment: ["7L7", "6L13", "5L13"], + raindance: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["9M", "9L35", "8M", "8L35", "8S5", "7M", "7L43", "7S4", "6M", "6L49", "6S2", "5M", "5L49", "5S0"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L1", "7L19", "6L25", "5L25"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L1", "6M", "6L1", "6S3", "5M", "5L1", "5S1"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandsearstorm: ["9L80"], + sandstorm: ["9M", "9L60", "8M", "8L60", "7M", "7L55", "7S4", "6M", "6L61", "5M", "5L61", "5S0"], + sandtomb: ["9M", "9L1", "8M", "8L1", "8S5"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["9M", "9L1", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L50", "8M", "8L50", "7M", "7L67", "6M", "6L73", "5M", "5L73"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "8M", "8L25", "7M", "7L31", "6M", "6L37", "6S2", "5M", "5L37"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "8M", "7M", "6M", "6S3", "5M"], + weatherball: ["9M", "8M"], + }, + eventData: [ + {generation: 5, level: 70, shiny: 1, moves: ["rockslide", "earthquake", "sandstorm", "fissure"]}, + {generation: 5, level: 5, isHidden: true, moves: ["block", "mudshot", "rocktomb"], pokeball: "dreamball"}, + {generation: 6, level: 65, shiny: 1, moves: ["extrasensory", "swordsdance", "earthpower", "rockslide"]}, + {generation: 6, level: 50, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 1, spd: 31, spe: 24}, moves: ["earthquake", "knockoff", "uturn", "rocktomb"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["earthpower", "rockslide", "earthquake", "sandstorm"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sandtomb", "rockslide", "bulldoze", "focusblast"]}, + ], + eventOnly: true, + }, + landorustherian: { + eventOnly: true, + }, + kyurem: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + glaciate: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L50", "5S0", "5S1"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["8M", "7T", "6T", "6S3", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + nobleroar: ["8L1", "7L64"], + outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L43", "5S1"], + secretpower: ["6M"], + shadowball: ["8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sheercold: ["8L88"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 75, shiny: 1, moves: ["glaciate", "dragonpulse", "imprison", "endeavor"]}, + {generation: 5, level: 70, shiny: 1, moves: ["scaryface", "glaciate", "dragonpulse", "imprison"]}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "scaryface", "glaciate"]}, + {generation: 6, level: 100, moves: ["glaciate", "scaryface", "dracometeor", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "scaryface", "glaciate", "dragonpulse"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "scaryface"]}, + ], + eventOnly: true, + }, + kyuremblack: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1"], + freezeshock: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], + frustration: ["7M", "6M", "5M"], + fusionbolt: ["8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L50", "5S1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["8M", "7T", "6T", "6S3", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + nobleroar: ["8L1", "7L64"], + outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sheercold: ["8L88"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 75, shiny: 1, moves: ["freezeshock", "dragonpulse", "imprison", "endeavor"]}, + {generation: 5, level: 70, shiny: 1, moves: ["fusionbolt", "freezeshock", "dragonpulse", "imprison"]}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "fusionbolt", "freezeshock"]}, + {generation: 6, level: 100, moves: ["freezeshock", "fusionbolt", "dracometeor", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "fusionbolt", "freezeshock", "dragonpulse"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "fusionbolt"]}, + ], + eventOnly: true, + }, + kyuremwhite: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1"], + frustration: ["7M", "6M", "5M"], + fusionflare: ["8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L50", "5S1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + iceburn: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["8M", "7T", "6T", "6S3", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + nobleroar: ["8L1", "7L64"], + outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sheercold: ["8L88"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 75, shiny: 1, moves: ["iceburn", "dragonpulse", "imprison", "endeavor"]}, + {generation: 5, level: 70, shiny: 1, moves: ["fusionflare", "iceburn", "dragonpulse", "imprison"]}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "fusionflare", "iceburn"]}, + {generation: 6, level: 100, moves: ["iceburn", "fusionflare", "dracometeor", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "fusionflare", "iceburn", "dragonpulse"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "fusionflare"]}, + ], + eventOnly: true, + }, + keldeo: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + aquajet: ["8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0", "5S1"], + aquatail: ["8L35", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + aurasphere: ["8M"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M"], + bubblebeam: ["8L7", "7L1", "6L13", "6S3", "5L13", "5S0"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "7L73", "6L73", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "6S2", "6S3", "5L7", "5S0"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + flipturn: ["8T"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "8L1", "7T", "7L25", "6T", "6L25", "5T", "5L25"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L63", "8S4", "7L67", "6L67", "6S2", "5L67", "5S1"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + lastresort: ["7T", "6T", "5T"], + leer: ["8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T"], + megahorn: ["8M"], + muddywater: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickguard: ["8L14", "7L55", "6L55", "5L55"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L31", "6M", "6L31", "5M", "5L31"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S4", "7L43", "6L43", "5L43", "5S1"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + secretsword: ["8L1", "8S4", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S4", "7M", "7L49", "6M", "6L49", "5M", "5L49", "5S1"], + takedown: ["8L42", "7L19", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + waterpulse: ["7T", "6T"], + workup: ["8M", "8L1", "7M", "7L61", "6L61", "5M", "5L61"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["aquajet", "leer", "doublekick", "bubblebeam"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["sacredsword", "hydropump", "aquajet", "swordsdance"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["aquajet", "leer", "doublekick", "hydropump"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["aquajet", "leer", "doublekick", "bubblebeam"], pokeball: "cherishball"}, + {generation: 8, level: 65, moves: ["secretsword", "sacredsword", "swordsdance", "hydropump"]}, + ], + eventOnly: true, + }, + keldeoresolute: { + eventOnly: true, + }, + meloetta: { + learnset: { + acrobatics: ["9M", "9L26", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + allyswitch: ["7T"], + batonpass: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "7M", "6M", "5M"], + celebrate: ["7S3"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M"], + closecombat: ["9M", "9L78", "7L78", "7S2", "6L78", "5L78", "5S1"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L1", "6L11", "5L11", "5S0"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M", "7T", "6T", "5T"], + dreameater: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T"], + echoedvoice: ["9L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + embargo: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], + faketears: ["9M"], + firepunch: ["9M", "7T", "6T", "5T"], + flash: ["6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + focusblast: ["9M", "7M", "6M", "5M"], + focuspunch: ["9M", "7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + gravity: ["9M", "7T", "6T", "5T"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L64", "7T", "7L64", "6T", "6L64", "5T", "5L64"], + icepunch: ["9M", "7T", "6T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + lowkick: ["9M", "7T", "6T", "5T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["7T", "6T", "5T"], + metronome: ["9M"], + payback: ["7M", "6M", "5M"], + perishsong: ["9L85", "7L85", "6L85", "5L85"], + playrough: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M"], + psybeam: ["9M", "9L31", "7L31", "6L31", "5L31"], + psychic: ["9M", "9L57", "7M", "7L57", "7S2", "6M", "6L57", "5M", "5L57", "5S1"], + psychup: ["7M", "6M", "5M"], + psyshock: ["9M", "7M", "6M", "5M"], + quickattack: ["9L1", "7L1", "6L6", "5L6", "5S0"], + raindance: ["9M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + relicsong: ["9L50", "7T", "7S3", "6T", "5T"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M"], + rocksmash: ["6M", "5M"], + roleplay: ["9L71", "7T", "7L71", "6T", "6L71", "5T", "5L71"], + round: ["9L1", "7M", "7L1", "7S3", "6M", "6L1", "5M", "5L1", "5S0", "5S1"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "7M", "6M", "5M"], + shadowclaw: ["9M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sing: ["9L1", "7L1", "7S2", "7S3", "6L16", "5L16"], + skillswap: ["9M", "7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + stoneedge: ["9M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M"], + teeterdance: ["9L21", "7L21", "6L21", "5L21", "5S1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "7M", "6M", "5M"], + thunderpunch: ["9M", "7T", "6T", "5T"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "7T", "6T", "5T"], + trickroom: ["9M", "7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + uturn: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + wakeupslap: ["7L50", "6L50", "5L50"], + wonderroom: ["7T", "6T", "5T"], + workup: ["7M", "5M"], + zenheadbutt: ["9M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["quickattack", "confusion", "round"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["round", "teeterdance", "psychic", "closecombat"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["sing", "psychic", "closecombat"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["sing", "celebrate", "round", "relicsong"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + genesect: { + learnset: { + aerialace: ["7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + assurance: ["8M"], + blazekick: ["8M", "5S2"], + blizzard: ["8M", "7M", "6M", "5M"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L56", "7L55", "6L55", "5L55"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + explosion: ["7M", "6M", "5M"], + extremespeed: ["5S2"], + facade: ["8M", "7M", "6M", "5M"], + fellstinger: ["8L21", "8S4", "7L1", "6L1"], + flamecharge: ["8L28", "7M", "7L18", "6M", "6L18", "5M", "5L18"], + flamethrower: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L7", "6L7", "5L7"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gunkshot: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "7L73", "6M", "6L73", "5M", "5L73"], + icebeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + lastresort: ["7T", "6T", "5T"], + leechlife: ["8M"], + lightscreen: ["8M", "7M", "6M", "5M"], + lockon: ["8L77", "7L11", "6L11", "5L11"], + magiccoat: ["7T", "6T", "5T"], + magnetbomb: ["7L22", "6L22", "6S3", "5L22", "5S0", "5S1"], + magnetrise: ["8L49", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + metalclaw: ["8L14", "8S4", "7L1", "6L1", "5L1"], + metalsound: ["8L35", "7L33", "6L33", "5L33"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + recycle: ["7T", "6T", "5T"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L7", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + selfdestruct: ["8M", "8L91", "7L77", "6L77", "5L77"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shiftgear: ["5S2"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "7L40", "6T", "6L40", "6S3", "5T", "5L40", "5S0", "5S1"], + simplebeam: ["8L63", "7L62", "6L62", "5L62"], + slash: ["7L29", "6L29", "5L29"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "6S3", "5M", "5S0", "5S1"], + steelbeam: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + technoblast: ["8L84", "8S4", "7L1", "6L1", "6S3", "5L1", "5S0", "5S1", "5S2"], + telekinesis: ["7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + triattack: ["8M", "7L44", "6L44", "5L44"], + uturn: ["8M", "7M", "6M", "5M"], + xscissor: ["8M", "8L42", "8S4", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + zapcannon: ["8L70", "7L66", "6L66", "5L66"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, moves: ["technoblast", "magnetbomb", "solarbeam", "signalbeam"], pokeball: "cherishball"}, + {generation: 5, level: 15, moves: ["technoblast", "magnetbomb", "solarbeam", "signalbeam"], pokeball: "cherishball"}, + {generation: 5, level: 100, shiny: true, nature: "Hasty", ivs: {atk: 31, spe: 31}, moves: ["extremespeed", "technoblast", "blazekick", "shiftgear"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["technoblast", "magnetbomb", "solarbeam", "signalbeam"], pokeball: "cherishball"}, + {generation: 8, level: 60, moves: ["technoblast", "xscissor", "metalclaw", "fellstinger"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + genesectburn: { + eventOnly: true, + }, + genesectchill: { + eventOnly: true, + }, + genesectdouse: { + eventOnly: true, + }, + genesectshock: { + eventOnly: true, + }, + chespin: { + learnset: { + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bellydrum: ["9E", "7E", "6E"], + bite: ["9L11", "7L11", "6L11"], + bodyslam: ["9M", "9L42", "7L42", "6L42"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["7M", "7L39", "6M", "6L39"], + bulldoze: ["9M", "7M", "6M"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + curse: ["9E", "7E", "6E"], + cut: ["6M"], + defensecurl: ["7E", "6E"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dualchop: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focuspunch: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grasspledge: ["9M", "7T", "6T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1"], + gyroball: ["7M", "6M"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + irondefense: ["7T", "6T"], + ironhead: ["9M", "7T", "6T"], + irontail: ["7T", "6T"], + leafstorm: ["9M"], + leechseed: ["9L15", "7L15", "6L15"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["7M", "6M"], + magicalleaf: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "9L35", "7L35", "6L35"], + naturepower: ["7M", "6M"], + painsplit: ["9L45", "7T", "7L45", "6T", "6L45"], + payback: ["7M", "6M"], + pinmissile: ["9L18", "7L18", "6L18"], + poisonjab: ["9M", "7M", "6M"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "7M", "6M"], + quickguard: ["9E", "7E", "6E"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["9M", "7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + rollout: ["9L8", "7L8", "7E", "6L8", "6E"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L32", "7T", "7L32", "6T", "6L32"], + shadowclaw: ["9M", "7M", "6M"], + sleeptalk: ["9M", "7M", "6M"], + sludgebomb: ["7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + spikes: ["9M", "9E", "7E", "6E"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superfang: ["9M", "9E", "7T", "6T"], + superpower: ["7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["7M", "6M"], + synthesis: ["9E", "7T", "7E", "6T", "6E"], + tackle: ["6L1"], + takedown: ["9M", "9L27", "7L27", "6L27"], + taunt: ["7M", "6M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L5"], + wideguard: ["9E"], + woodhammer: ["9L48", "7L48", "6L48"], + workup: ["7M"], + worryseed: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + quilladin: { + learnset: { + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bite: ["9L11", "7L11", "6L11"], + bodyslam: ["9M", "9L43", "7L48", "6L48"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L38", "7M", "7L44", "6M", "6L44"], + bulldoze: ["9M", "7M", "6M"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + cut: ["6M"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dualchop: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focuspunch: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grasspledge: ["9M", "7T", "6T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1"], + gyroball: ["9M", "7M", "6M"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + irondefense: ["9M", "7T", "6T"], + ironhead: ["9M", "7T", "6T"], + irontail: ["7T", "6T"], + leafstorm: ["9M"], + leechseed: ["9L15", "7L15", "6L15"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["9M", "7M", "6M"], + magicalleaf: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "9L34", "7L39", "6L39"], + naturepower: ["7M", "6M"], + needlearm: ["7L1", "6L26"], + painsplit: ["9L47", "7T", "7L52", "6T", "6L52"], + payback: ["7M", "6M"], + pinmissile: ["9L24", "7L19", "6L20"], + poisonjab: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["9M", "7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + rollout: ["9L8", "7L8", "6L8"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L20", "7T", "7L35", "6T", "6L35"], + shadowclaw: ["9M", "7M", "6M"], + sleeptalk: ["9M", "7M", "6M"], + sludgebomb: ["7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + spikes: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superfang: ["9M", "7T", "6T"], + superpower: ["7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["7M", "6M"], + synthesis: ["7T", "6T"], + tackle: ["6L1"], + takedown: ["9M", "9L29", "7L29", "6L30"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L5"], + woodhammer: ["9L53", "7L56", "6L55"], + workup: ["7M"], + worryseed: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + chesnaught: { + learnset: { + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bellydrum: ["7L1", "6L1"], + bite: ["9L11", "7L11", "6L11"], + block: ["7T", "6T"], + bodypress: ["9M"], + bodyslam: ["9M", "9L54", "7L54", "6L48"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L48", "7M", "7L48", "6M", "6L44"], + bulldoze: ["9M", "7M", "6M"], + bulletseed: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M"], + cut: ["6M"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + dragonclaw: ["9M", "7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dualchop: ["7T", "6T"], + earthquake: ["9M", "7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + feint: ["9L1", "7L1", "6L1"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focusblast: ["9M", "7M", "6M"], + focuspunch: ["9M", "7T", "6T"], + frenzyplant: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "9L78", "7M", "7L78", "6M", "6L70"], + grassknot: ["9M", "7M", "6M"], + grasspledge: ["9M", "7T", "6T"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1"], + gyroball: ["9M", "7M", "6M"], + hammerarm: ["9L1", "7L1", "6L1"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["9M"], + honeclaws: ["6M"], + hyperbeam: ["9M", "7M", "6M"], + irondefense: ["9M", "7T", "6T"], + ironhead: ["9M", "7T", "6T"], + irontail: ["7T", "6T"], + knockoff: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L15", "7L15", "6L15"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["9M", "7M", "6M"], + magicalleaf: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "9L41", "7L41", "6L41"], + mudslap: ["9M"], + naturepower: ["7M", "6M"], + needlearm: ["7L1", "6L26"], + painsplit: ["9L60", "7T", "7L60", "6T", "6L52"], + payback: ["7M", "6M"], + pinmissile: ["9L19", "7L19", "6L20"], + poisonjab: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + reversal: ["9M"], + roar: ["9M", "7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + rollout: ["9L1", "7L1", "6L8"], + round: ["7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L35", "7T", "7L35", "6T", "6L35"], + shadowclaw: ["9M", "7M", "6M"], + sleeptalk: ["9M", "7M", "6M"], + sludgebomb: ["7M", "6M"], + smackdown: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + spikes: ["9M"], + spikyshield: ["9L0", "7L1", "6L36"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superfang: ["9M", "7T", "6T"], + superpower: ["7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M"], + synthesis: ["7T", "6T"], + tackle: ["9L1", "7L1", "6L1"], + takedown: ["9M", "9L29", "7L29", "6L30"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L5"], + woodhammer: ["9L66", "7L66", "6L55"], + workup: ["7M"], + worryseed: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + fennekin: { + learnset: { + agility: ["9M"], + attract: ["7M", "6M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + confide: ["7M", "6M"], + copycat: ["9E"], + covet: ["7T", "6T"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + ember: ["9L5", "7L5", "6L5"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "9L48", "7M", "7L48", "6M", "6L48"], + firepledge: ["9M", "7T", "6T"], + firespin: ["9M", "9L20", "7L20", "6L20"], + flamecharge: ["9M", "9L14", "7M", "7L14", "6M", "6L14"], + flamethrower: ["9M", "9L35", "7M", "7L35", "6M", "6L35", "6S0"], + flareblitz: ["9M"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + heatwave: ["9M", "9E", "7T", "7E", "6T", "6E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "6S0"], + howl: ["9L11", "7L11", "6L11"], + hypnosis: ["9E", "7E", "6E"], + imprison: ["9M"], + incinerate: ["6M"], + irontail: ["7T", "6T"], + lightscreen: ["9M", "9L25", "7M", "7L27", "6M", "6L27"], + luckychant: ["7L25", "6L25"], + magiccoat: ["7T", "7E", "6T", "6E"], + magicroom: ["9E", "7T", "7L46", "6T", "6L46"], + mudshot: ["9M"], + mudslap: ["9M"], + overheat: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "9L41", "7M", "7L41", "6M", "6L41"], + psychicterrain: ["9M", "7E"], + psychup: ["7M", "6M"], + psyshock: ["9M", "9L31", "7M", "7L31", "6M", "6L31"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + scratch: ["9L1", "7L1", "6L1", "6S0"], + secretpower: ["6M"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "9L43", "7M", "7L43", "6M", "6L43"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwhip: ["9L1", "7L1", "6L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M", "9L38", "7M", "7L38", "6M", "6L38"], + wish: ["9E", "7E", "6E"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 15, gender: "F", nature: "Hardy", moves: ["scratch", "flamethrower", "hiddenpower"], pokeball: "cherishball"}, + ], + }, + braixen: { + learnset: { + agility: ["9M"], + allyswitch: ["7T"], + attract: ["7M", "6M"], + burningjealousy: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + ember: ["9L1", "7L1", "6L5"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "9L59", "7M", "7L59", "6M", "6L55"], + firepledge: ["9M", "7T", "6T"], + firepunch: ["9M", "7T", "6T"], + firespin: ["9M", "9L22", "7L22", "6L22"], + flamecharge: ["9M", "9L14", "7M", "7L14", "6M", "6L14"], + flamethrower: ["9M", "9L41", "7M", "7L41", "6M", "6L41"], + flareblitz: ["9M"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + howl: ["9L11", "7L11", "6L11"], + imprison: ["9M"], + incinerate: ["6M"], + irontail: ["7T", "6T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L28", "7M", "7L31", "6M", "6L30"], + lowkick: ["9M", "7T", "6T"], + luckychant: ["7L28", "6L27"], + magiccoat: ["7T", "6T"], + magicroom: ["9L56", "7T", "7L56", "6T", "6L53"], + mudshot: ["9M"], + mudslap: ["9M"], + overheat: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L18", "7L18", "6L18"], + psychic: ["9M", "9L49", "7M", "7L49", "6M", "6L48"], + psychicterrain: ["9M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "9L36", "7M", "7L36", "6M", "6L34"], + raindance: ["9M", "7M", "6M"], + recycle: ["7T", "6T"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + scratch: ["9L1", "7L1", "6L1"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skillswap: ["9M", "7T", "6T"], + sleeptalk: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "9L52", "7M", "7L52", "6M", "6L51"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwhip: ["9L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trick: ["9M", "7T", "6T"], + trickroom: ["9M"], + willowisp: ["9M", "9L45", "7M", "7L45", "6M", "6L45"], + wonderroom: ["7T", "6T"], + workup: ["7M"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + delphox: { + learnset: { + agility: ["9M"], + allyswitch: ["7T"], + attract: ["7M", "6M"], + blastburn: ["9M", "7T", "6T"], + burningjealousy: ["9M"], + calmmind: ["9M", "7M", "6M"], + charm: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + covet: ["7T", "6T"], + cut: ["6M"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + ember: ["9L1", "7L1", "6L5"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "9L74", "7M", "7L74", "6M", "6L61"], + firepledge: ["9M", "7T", "6T"], + firepunch: ["9M", "7T", "6T"], + firespin: ["9M", "9L22", "7L22", "6L22"], + flamecharge: ["9M", "9L14", "7M", "7L14", "6M", "6L14"], + flamethrower: ["9M", "9L45", "7M", "7L45", "6M", "6L42"], + flareblitz: ["9M"], + focusblast: ["9M"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + futuresight: ["9L1", "7L1", "6L1"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M"], + howl: ["9L1", "7L1", "6L11"], + hyperbeam: ["9M", "7M", "6M"], + hypervoice: ["9M"], + imprison: ["9M"], + incinerate: ["6M"], + irontail: ["7T", "6T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L28", "7M", "7L31", "6M", "6L30"], + lowkick: ["9M", "7T", "6T"], + luckychant: ["7L28", "6L27"], + magiccoat: ["7T", "6T"], + magicroom: ["9L68", "7T", "7L68", "6T", "6L58"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + mysticalfire: ["9L0", "7L1", "6L36"], + nastyplot: ["9M"], + nightshade: ["9M"], + overheat: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L18", "7L18", "6L18"], + psychic: ["9M", "9L57", "7M", "7L57", "6M", "6L51"], + psychicterrain: ["9M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "9L38", "7M", "7L38", "6M", "6L34"], + raindance: ["9M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["9M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["9L1", "7T", "7L1", "6T", "6L1"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + scratch: ["9L1", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["9M", "9L1", "7M", "7L1", "6M", "6L1"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["9M", "7T", "6T"], + sleeptalk: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "9L62", "7M", "7L62", "6M", "6L55"], + swagger: ["7M", "6M"], + swift: ["9M"], + switcheroo: ["9L1", "7L1", "6L1"], + tailwhip: ["9L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trick: ["9M", "7T", "6T"], + trickroom: ["9M", "7M", "6M"], + willowisp: ["9M", "9L51", "7M", "7L51", "6M", "6L47"], + wonderroom: ["7T", "6T"], + workup: ["7M"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + froakie: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bestow: ["7E", "6E"], + blizzard: ["9M", "7M", "6M"], + bounce: ["9L39", "7T", "7L39", "6T", "6L39"], + bubble: ["7L5", "6L5", "6S0"], + camouflage: ["7E", "6E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E"], + cut: ["6M"], + dig: ["9M", "6M"], + dive: ["6M"], + doubleteam: ["9L43", "7M", "7L43", "6M", "6L43"], + echoedvoice: ["7M", "6M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + falseswipe: ["9M"], + fling: ["9M", "9L25", "7M", "7L25", "6M", "6L25"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + growl: ["9L1", "7L1", "6L1", "6S0"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L48", "7L48", "6L48"], + icebeam: ["9M", "7M", "6M"], + icywind: ["9M", "7T", "6T"], + lick: ["9L10", "7L10", "6L10"], + liquidation: ["9M"], + mindreader: ["7E", "6E"], + mudshot: ["9M"], + mudslap: ["9M"], + mudsport: ["7E", "6E"], + pound: ["9L1", "7L1", "6L1", "6S0"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "7M", "6M"], + quickattack: ["9L8", "7L8", "6L8"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["9E"], + return: ["7M", "6M", "6S0"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + roleplay: ["7T", "6T"], + round: ["9L21", "7M", "7L21", "6M", "6L21"], + scald: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + smackdown: ["9M", "9L29", "7M", "7L29", "6M", "6L29"], + smokescreen: ["9L18", "7L18", "6L18"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + snowscape: ["9M"], + spikes: ["9M", "9E"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["9M", "9L35", "7M", "7L35", "6M", "6L35"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + switcheroo: ["9E"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + toxicspikes: ["9M", "9E", "7E", "6E"], + trailblaze: ["9M"], + uturn: ["9M", "7M", "6M"], + waterfall: ["9M", "7M", "6M"], + watergun: ["9L5"], + waterpledge: ["9M", "7T", "6T"], + waterpulse: ["9M", "9L14", "7T", "7L14", "6T", "6L14"], + watersport: ["7E", "6E"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 7, moves: ["pound", "growl", "bubble", "return"], pokeball: "cherishball"}, + ], + }, + frogadier: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + blizzard: ["9M", "7M", "6M"], + bounce: ["9L45", "7T", "7L45", "6T", "6L44"], + bubble: ["7L1", "6L5"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["7M", "6M"], + dig: ["9M", "6M"], + dive: ["6M"], + doubleteam: ["9L50", "7M", "7L50", "6M", "6L48"], + echoedvoice: ["7M", "6M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + falseswipe: ["9M"], + fling: ["9M", "9L28", "7M", "7L28", "6M", "6L28"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + growl: ["9L1", "7L1", "6L1"], + gunkshot: ["9M", "7T", "6T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L56", "7L56", "6L55"], + icebeam: ["9M", "7M", "6M"], + icepunch: ["9M", "7T", "6T"], + icywind: ["9M", "7T", "6T"], + lick: ["9L10", "7L10", "6L10"], + liquidation: ["9M"], + lowkick: ["9M", "7T", "6T"], + mudshot: ["9M"], + mudslap: ["9M"], + pound: ["9L1", "7L1", "6L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + quickattack: ["9L8", "7L8", "6L8"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + roleplay: ["7T", "6T"], + round: ["9L23", "7M", "7L23", "6M", "6L23"], + scald: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + smackdown: ["9M", "9L33", "7M", "7L33", "6M", "6L33"], + smokescreen: ["9L19", "7L19", "6L20"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + snowscape: ["9M"], + spikes: ["9M"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["9M", "9L40", "7M", "7L40", "6M", "6L38"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "7M", "6M"], + waterfall: ["9M", "7M", "6M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T"], + waterpulse: ["9M", "9L14", "7T", "7L14", "6T", "6L14"], + workup: ["7M"], + }, + }, + greninja: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["9M", "9L33", "7M", "6M"], + attract: ["7M", "6M"], + blizzard: ["9M", "7M", "6M"], + bounce: ["7T", "6T"], + brickbreak: ["9M"], + brutalswing: ["7M"], + bubble: ["7L1", "6L5"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["9M", "7M", "6M"], + dig: ["9M", "6M"], + dive: ["6M"], + doubleteam: ["9L56", "7M", "7L56", "6M", "6L52"], + echoedvoice: ["7M", "6M"], + endure: ["9M"], + extrasensory: ["9L49", "7L49", "6L49"], + facade: ["9M", "7M", "6M"], + falseswipe: ["9M"], + feintattack: ["7L33", "6L33"], + fling: ["9M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + growl: ["9L1", "7L1", "6L1"], + gunkshot: ["9M", "7T", "6T", "6S1"], + happyhour: ["6S1"], + haze: ["9M", "9L1", "7L1", "6L56"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hydrocannon: ["9M", "7T", "6T", "6S1"], + hydropump: ["9M", "9L68", "7L68", "6L60", "6S0"], + hyperbeam: ["9M", "7M", "6M"], + icebeam: ["9M", "7M", "6M"], + icepunch: ["9M", "7T", "6T"], + icywind: ["9M", "7T", "6T"], + lick: ["9L10", "7L10", "6L10"], + liquidation: ["9M"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["9M"], + matblock: ["7L1", "6L1", "6S1"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9L1", "7L1", "6L1"], + pound: ["9L1", "7L1", "6L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + quickattack: ["9L1", "7L1", "6L8"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + roleplay: ["9L1", "7T", "7L1", "6T", "6L1"], + round: ["7M", "6M"], + scald: ["7M", "6M"], + secretpower: ["6M"], + shadowsneak: ["9L23", "7L23", "6L23", "6S0"], + sleeptalk: ["9M", "7M", "6M"], + smackdown: ["9M", "7M", "6M"], + smokescreen: ["9L19", "7L19", "6L20"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + snowscape: ["9M"], + spikes: ["9M", "9L28", "7L28", "6L28"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["9M", "9L42", "7M", "7L42", "6M", "6L43", "6S0"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "7M", "6M"], + waterfall: ["9M", "7M", "6M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T"], + waterpulse: ["9M", "9L14", "7T", "7L14", "6T", "6L14"], + watershuriken: ["9L0", "7L1", "6L36", "6S0"], + weatherball: ["9M"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 36, ivs: {spe: 31}, isHidden: true, moves: ["watershuriken", "shadowsneak", "hydropump", "substitute"], pokeball: "cherishball"}, + {generation: 6, level: 100, isHidden: true, moves: ["hydrocannon", "gunkshot", "matblock", "happyhour"], pokeball: "cherishball"}, + ], + }, + greninjabond: { + learnset: { + acrobatics: ["9M", "7M"], + aerialace: ["9M", "9L33", "7M", "7S0"], + attract: ["7M"], + blizzard: ["9M", "7M"], + bounce: ["7T"], + brickbreak: ["9M"], + brutalswing: ["7M"], + bubble: ["7L1"], + chillingwater: ["9M"], + confide: ["7M"], + counter: ["9E"], + darkpulse: ["9M", "7M"], + dig: ["9M"], + doubleteam: ["9L56", "7M", "7L56", "7S0"], + echoedvoice: ["7M"], + endure: ["9M"], + extrasensory: ["9L49", "7L49"], + facade: ["9M", "7M"], + falseswipe: ["9M"], + feintattack: ["7L33"], + fling: ["9M", "7M"], + frustration: ["7M"], + gigaimpact: ["9M", "7M"], + grassknot: ["9M", "7M"], + growl: ["9L1", "7L1"], + gunkshot: ["9M", "7T"], + haze: ["9M", "9L1", "7L1"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hydrocannon: ["9M", "7T"], + hydropump: ["9M", "9L68", "7L68"], + hyperbeam: ["9M", "7M"], + icebeam: ["9M", "7M"], + icepunch: ["9M", "7T"], + icywind: ["9M", "7T"], + lick: ["9L10", "7L10"], + liquidation: ["9M"], + lowkick: ["9M", "7T"], + lowsweep: ["9M"], + matblock: ["7L1"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9L1", "7L1", "7S0"], + pound: ["9L1", "7L1"], + protect: ["9M", "7M"], + quickattack: ["9L1", "7L1"], + raindance: ["9M", "7M"], + rest: ["9M", "7M"], + retaliate: ["9E"], + return: ["7M"], + rockslide: ["9M", "7M"], + rocktomb: ["9M", "7M"], + roleplay: ["9L1", "7T", "7L1"], + round: ["7M"], + scald: ["7M"], + shadowsneak: ["9L23", "7L23"], + sleeptalk: ["9M", "7M"], + smackdown: ["9M", "7M"], + smokescreen: ["9L19", "7L19"], + snatch: ["7T"], + snore: ["7T"], + snowscape: ["9M"], + spikes: ["9M", "9L28", "9E", "7L28"], + spite: ["7T"], + substitute: ["9M", "9L42", "7M", "7L42"], + surf: ["9M", "7M"], + swagger: ["7M"], + swift: ["9M"], + switcheroo: ["9E"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + toxic: ["7M"], + toxicspikes: ["9M", "9E"], + trailblaze: ["9M"], + uturn: ["9M", "7M"], + waterfall: ["9M", "7M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T"], + waterpulse: ["9M", "9L14", "7T", "7L14"], + watershuriken: ["9L0", "7L1", "7S0"], + weatherball: ["9M"], + workup: ["7M"], + }, + eventData: [ + {generation: 7, level: 36, ivs: {hp: 20, atk: 31, def: 20, spa: 31, spd: 20, spe: 31}, moves: ["watershuriken", "aerialace", "doubleteam", "nightslash"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + bunnelby: { + learnset: { + agility: ["8M", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + bounce: ["8M", "8L27", "7T", "7L38", "6T", "6L38"], + brickbreak: ["8M", "7M", "6M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L21", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + defensecurl: ["8E", "7E", "6E"], + dig: ["8M", "8L24", "7L33", "6M", "6L33"], + doublekick: ["8L18", "7L20", "6L20"], + doubleslap: ["7L10", "6L10"], + doubleteam: ["7M", "6M"], + earthquake: ["8M", "8L36", "7M", "7L49", "6M", "6L49"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "7L47", "6M", "6L47"], + flail: ["8L15", "7L29", "6L29"], + fling: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + grassknot: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["8L6"], + lastresort: ["7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + mudshot: ["8M", "8L12", "7L18", "6L18"], + mudslap: ["8L1", "7L13", "6L13"], + naturepower: ["7M", "6M"], + odorsleuth: ["7L25", "6L25"], + payback: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quickattack: ["8L9", "7L7", "6L7"], + recycle: ["7T", "6T"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + rollout: ["8E", "7E", "6E"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["8M", "7T", "6T"], + spikes: ["8M", "7E", "6E"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + superfang: ["8L39", "7T", "7L42", "6T", "6L42"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L33"], + tackle: ["8L3", "7L1", "6L1"], + takedown: ["8L30", "7L15", "6L15"], + thief: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + wildcharge: ["8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + }, + diggersby: { + learnset: { + agility: ["8M", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + bodyslam: ["8M"], + bounce: ["8M", "8L33", "7T", "7L43", "6T", "6L42"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L23", "7M", "7L1", "6M", "6L1"], + confide: ["7M", "6M"], + cut: ["6M"], + dig: ["8M", "8L28", "7L37", "6M", "6L37"], + doublekick: ["8L18", "7L21", "6L20"], + doubleslap: ["7L13"], + doubleteam: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L48", "7M", "7L57", "6M", "6L57"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "7L54", "6M", "6L53"], + firepunch: ["8M", "7T", "6T"], + flail: ["8L15", "7L32", "6L31"], + fling: ["8M", "7M", "6M"], + focuspunch: ["7T", "6T"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gastroacid: ["7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + gunkshot: ["8M", "7T", "6T"], + hammerarm: ["8L58", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M"], + icepunch: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + knockoff: ["7T", "6T"], + laserfocus: ["8L1"], + lastresort: ["7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + lowkick: ["8M", "7T", "6T"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["8M", "8L12", "7L18", "6L18"], + mudslap: ["8L1", "7L13", "6L13"], + naturepower: ["7M", "6M"], + odorsleuth: ["7L27", "6L26"], + payback: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quickattack: ["8L9", "7L7", "6L7"], + recycle: ["7T", "6T"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spikes: ["8M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + superfang: ["8L53", "7T", "7L48", "6T", "6L48"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L43", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + takedown: ["8L38", "7L15", "6L15"], + thief: ["8M", "7M", "6M"], + thunderpunch: ["8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + uturn: ["8M", "7M", "6M"], + wildcharge: ["8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + }, + fletchling: { + learnset: { + acrobatics: ["9M", "9L20", "8M", "8L20", "7M", "7L39", "6M", "6L39"], + aerialace: ["9M", "9L30", "8L30", "7M", "6M"], + agility: ["9M", "9L25", "8M", "8L25", "7L13", "6L13"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["8M", "7M", "6M"], + bravebird: ["9M"], + confide: ["7M", "6M"], + defog: ["9E", "8E", "7T"], + doubleteam: ["7M", "6M"], + dualwingbeat: ["9M", "8T"], + ember: ["9L10", "8L10"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L15", "8L15", "7L16", "6L16"], + flamecharge: ["9M", "9E", "8E", "7M", "7L34", "6M", "6L34"], + flareblitz: ["9M"], + fly: ["9M", "9L50", "8M", "8L50", "7M", "6M"], + frustration: ["7M", "6M"], + growl: ["9L1", "8L1", "7L1", "6L1"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M"], + mefirst: ["7L41", "6L41"], + naturalgift: ["7L29", "6L29"], + overheat: ["9M", "8M", "7M", "6M"], + peck: ["9L1", "8L1", "7L10", "6L10"], + protect: ["9M", "8M", "7M", "6M"], + quickattack: ["9L5", "8L5", "7L6", "6L6"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M"], + razorwind: ["7L25", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L45", "8L45", "7M", "7L21", "6M", "6L21"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["8M", "7T", "6T"], + steelwing: ["9L40", "8M", "8L40", "7M", "7L48", "6M", "6L48"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M"], + tackle: ["7L1", "6L1"], + tailwind: ["9M", "9L35", "8L35", "7T", "7L45", "7E", "6T", "6L45", "6E"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + willowisp: ["8M"], + workup: ["8M", "7M"], + }, + }, + fletchinder: { + learnset: { + acrobatics: ["9M", "9L22", "8M", "8L22", "7M", "7L42", "6M", "6L42"], + aerialace: ["9M", "9L36", "8L36", "7M", "6M"], + agility: ["9M", "9L29", "8M", "8L29", "7L13", "6L13"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["8M", "7M", "6M"], + bravebird: ["9M"], + confide: ["7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + dualwingbeat: ["9M", "8T"], + ember: ["9L1", "8L1", "7L1", "6L17"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feint: ["9L1", "8L1"], + fireblast: ["9M", "8M", "7M", "6M"], + firespin: ["9M", "8M"], + flail: ["9L15", "8L15", "7L16", "6L16"], + flamecharge: ["9M", "9L0", "8L0", "7M", "7L38", "6M", "6L38"], + flamethrower: ["9M", "8M", "7M", "6M"], + flareblitz: ["9M"], + fly: ["9M", "9L64", "8M", "8L64", "7M", "6M"], + frustration: ["7M", "6M"], + growl: ["9L1", "8L1", "7L1", "6L1"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M"], + incinerate: ["6M"], + mefirst: ["7L46", "6L46"], + naturalgift: ["7L31", "6L31"], + overheat: ["9M", "8M", "7M", "6M"], + peck: ["9L1", "8L1", "7L10", "6L10"], + protect: ["9M", "8M", "7M", "6M"], + quickattack: ["9L1", "8L1", "7L1", "6L6"], + raindance: ["9M"], + razorwind: ["7L27", "6L27"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L57", "8L57", "7M", "7L25", "6M", "6L25"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + steelwing: ["9L50", "8M", "8L50", "7M", "7L55", "6M", "6L55"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M"], + tackle: ["7L1", "6L1"], + tailwind: ["9M", "9L43", "8L43", "7T", "7L51", "6T", "6L51"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + willowisp: ["9M", "8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + encounters: [ + {generation: 7, level: 16}, + ], + }, + talonflame: { + learnset: { + acrobatics: ["9M", "9L22", "8M", "8L22", "7M", "7L44", "6M", "6L44"], + aerialace: ["9M", "9L38", "8L38", "7M", "6M"], + agility: ["9M", "9L29", "8M", "8L29", "7L13", "6L13"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["8M", "7M", "6M"], + bravebird: ["9M", "9L83", "8M", "8L83", "7L1", "6L1"], + bulkup: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + dualwingbeat: ["9M", "8T"], + ember: ["9L1", "8L1", "7L1", "6L17"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feint: ["9L1", "8L1"], + fireblast: ["9M", "8M", "7M", "6M"], + firespin: ["9M", "8M"], + flail: ["9L15", "8L15", "7L16", "6L16"], + flamecharge: ["9M", "9L1", "8L1", "7M", "7L39", "6M", "6L39"], + flamethrower: ["9M", "8M", "7M", "6M"], + flareblitz: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + fly: ["9M", "9L74", "8M", "8L74", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + growl: ["9L1", "8L1", "7L1", "6L1"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + incinerate: ["6M"], + mefirst: ["7L49", "6L49"], + naturalgift: ["7L31", "6L31"], + overheat: ["9M", "8M", "7M", "6M"], + peck: ["9L1", "8L1", "7L1", "6L10"], + protect: ["9M", "8M", "7M", "6M"], + quickattack: ["9L1", "8L1", "7L1", "6L6"], + raindance: ["9M"], + razorwind: ["7L27", "6L27"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L65", "8L65", "7M", "7L25", "6M", "6L25"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steelwing: ["9L56", "8M", "8L56", "7M", "7L60", "6M", "6L60"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M"], + tackle: ["7L1", "6L1"], + tailwind: ["9M", "9L47", "8L47", "7T", "7L55", "6T", "6L55"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + willowisp: ["9M", "8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + }, + scatterbug: { + learnset: { + bugbite: ["9M", "9L15", "7T", "7L15", "6T", "6L15"], + poisonpowder: ["9E", "7E", "6E"], + pounce: ["9M"], + ragepowder: ["9E", "7E", "6E"], + stringshot: ["9L1", "7L1", "6L1"], + strugglebug: ["9M"], + stunspore: ["9L6", "7L6", "7E", "6L6", "6E"], + tackle: ["9L1", "7L1", "6L1"], + terablast: ["9M"], + }, + }, + spewpa: { + learnset: { + bugbite: ["9M", "7T", "6T"], + electroweb: ["7T", "6T"], + harden: ["9L1", "7L1", "6L1"], + irondefense: ["9M", "7T", "6T"], + pounce: ["9M"], + protect: ["9M", "9L0", "7M", "7L1", "6M", "6L9"], + strugglebug: ["9M"], + terablast: ["9M"], + }, + }, + vivillon: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["7M", "6M"], + aircutter: ["9M"], + airslash: ["9M"], + aromatherapy: ["7L31", "6L31"], + attract: ["7M", "6M"], + bugbite: ["9M", "7T", "6T"], + bugbuzz: ["9M", "9L35", "7L35", "6L35"], + calmmind: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L25", "7L25", "6L25"], + dreameater: ["7M", "6M"], + electroweb: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + gust: ["9L0", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M", "9L50", "7L50", "6L50"], + hyperbeam: ["9M", "7M", "6M"], + infestation: ["7M", "6M"], + irondefense: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L12", "7M", "7L12", "6M", "6L1"], + poisonpowder: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + pounce: ["9M"], + powder: ["7L1", "6L1"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "7M", "6M"], + psychup: ["7M", "6M"], + quiverdance: ["9L45", "7L45", "6L45"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L31", "7M", "7L41", "6M", "6L41"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + sleeppowder: ["9L1", "7L1", "6L1"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strugglebug: ["9M", "9L1", "7L1", "6M", "6L12"], + stunspore: ["9L1", "7L1", "6L1"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + supersonic: ["9L21", "7L21", "6L21"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwind: ["9M", "7T", "6T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "7M", "6M"], + weatherball: ["9M"], + }, + }, + vivillonfancy: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["7M", "6M"], + aircutter: ["9M"], + airslash: ["9M"], + aromatherapy: ["7L31", "6L31"], + attract: ["7M", "6M"], + bugbite: ["7T", "6T"], + bugbuzz: ["9M", "9L35", "7L35", "6L35"], + calmmind: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L25", "7L25", "6L25"], + dreameater: ["7M", "6M"], + electroweb: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + gust: ["9L0", "7L1", "6L1", "6S0"], + hiddenpower: ["7M", "6M"], + holdhands: ["6S0"], + hurricane: ["9M", "9L50", "7L50", "6L50"], + hyperbeam: ["9M", "7M", "6M"], + infestation: ["7M", "6M"], + irondefense: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L12", "7M", "7L12", "6M", "6L1", "6S0"], + poisonpowder: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + pounce: ["9M"], + powder: ["7L1", "6L1"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "7M", "6M"], + psychup: ["7M", "6M"], + quiverdance: ["9L45", "7L45", "6L45"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L31", "7M", "7L41", "6M", "6L41"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + sleeppowder: ["9L1", "7L1", "6L1"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strugglebug: ["9M", "9L1", "7L1", "6M", "6L12", "6S0"], + stunspore: ["9L1", "7L1", "6L1"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + supersonic: ["9L21", "7L21", "6L21"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwind: ["9M", "7T", "6T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "7M", "6M"], + }, + eventData: [ + {generation: 6, level: 12, moves: ["gust", "lightscreen", "strugglebug", "holdhands"], pokeball: "cherishball"}, + ], + }, + vivillonpokeball: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["7M", "6M"], + aircutter: ["9M"], + airslash: ["9M"], + aromatherapy: ["7L31", "6L31"], + attract: ["7M", "6M"], + bugbite: ["7T", "6T"], + bugbuzz: ["9M", "9L35", "7L35", "6L35"], + calmmind: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L25", "7L25", "6L25"], + dreameater: ["7M", "6M"], + electroweb: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + gust: ["9L0", "7L1", "6L1", "6S0"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M", "9L50", "7L50", "6L50"], + hyperbeam: ["9M", "7M", "6M"], + infestation: ["7M", "6M"], + irondefense: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L12", "7M", "7L12", "6M", "6L1", "6S0"], + poisonpowder: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + pounce: ["9M"], + powder: ["7L1", "6L1"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "7M", "6M"], + psychup: ["7M", "6M"], + quiverdance: ["9L45", "7L45", "6L45"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L31", "7M", "7L41", "6M", "6L41"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + sleeppowder: ["9L1", "7L1", "6L1"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strugglebug: ["9M", "9L1", "7L1", "6M", "6L12", "6S0"], + stunspore: ["9L1", "7L1", "6L1", "6S0"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + supersonic: ["9L21", "7L21", "6L21"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwind: ["9M", "7T", "6T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "7M", "6M"], + }, + eventData: [ + {generation: 6, level: 12, moves: ["stunspore", "gust", "lightscreen", "strugglebug"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + litleo: { + learnset: { + acrobatics: ["9M"], + attract: ["7M", "6M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L39", "7L39", "6L39"], + darkpulse: ["7M", "6M"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + echoedvoice: ["9L33", "7M", "7L33", "6M", "6L33"], + ember: ["9L5", "7L5", "6L5"], + endeavor: ["9L28", "7T", "7L28", "6T", "6L28"], + endure: ["9M"], + entrainment: ["9E", "7E", "6E"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "7M", "6M"], + firefang: ["9M", "9L23", "7L23", "6L23"], + firespin: ["9M", "9E", "7E", "6E"], + flamecharge: ["9M", "7M", "6M"], + flamethrower: ["9M", "9L36", "7M", "7L36", "6M", "6L36"], + flareblitz: ["9M", "9E", "7E"], + frustration: ["7M", "6M"], + headbutt: ["9L11", "7L11", "6L11"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hypervoice: ["9M", "9L43", "7T", "7L43", "6T", "6L43"], + incinerate: ["9L46", "7L46", "6M", "6L46"], + irontail: ["7T", "6T"], + leer: ["9L1", "7L1", "6L1"], + mudslap: ["9M"], + nobleroar: ["9L15", "7L15", "6L15"], + overheat: ["9M", "9L50", "7M", "7L50", "6M", "6L50"], + payback: ["7M", "6M"], + protect: ["9M", "7M", "6M"], + psychicfangs: ["9M"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["9M", "7M", "6M"], + rocksmash: ["6M"], + round: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + snarl: ["9M", "7M", "6M"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1"], + takedown: ["9M", "9L20", "7L20", "6L20"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderfang: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M"], + willowisp: ["9M", "7M", "6M"], + workup: ["9L8", "7M", "7L8", "6L8"], + yawn: ["9E", "7E", "6E"], + }, + }, + pyroar: { + learnset: { + acrobatics: ["9M"], + attract: ["7M", "6M"], + bodyslam: ["9M"], + bounce: ["7T", "6T"], + bulldoze: ["9M", "7M", "6M"], + burningjealousy: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L42", "7L42", "6L42"], + darkpulse: ["9M", "7M", "6M", "6S0"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + echoedvoice: ["9L33", "7M", "7L33", "6M", "6L33"], + ember: ["9L1", "7L1", "6L5"], + endeavor: ["9L28", "7T", "7L28", "6T", "6L28"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "7M", "6M", "6S0"], + firefang: ["9M", "9L23", "7L23", "6L23"], + firespin: ["9M"], + flamecharge: ["9M", "7M", "6M"], + flamethrower: ["9M", "9L38", "7M", "7L38", "6M", "6L38"], + flareblitz: ["9M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "7M", "6M"], + headbutt: ["9L11", "7L11", "6L11"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1"], + hypervoice: ["9M", "9L48", "7T", "7L48", "6T", "6L48", "6S0"], + incinerate: ["9L51", "7L51", "6M", "6L51"], + irontail: ["7T", "6T"], + leer: ["9L1", "7L1", "6L1"], + mudslap: ["9M"], + nobleroar: ["9L15", "7L15", "6L15"], + overheat: ["9M", "9L57", "7M", "7L57", "6M", "6L57"], + payback: ["7M", "6M"], + protect: ["9M", "7M", "6M"], + psychicfangs: ["9M"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["9M", "7M", "6M"], + rocksmash: ["6M"], + round: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + snarl: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1"], + takedown: ["9M", "9L20", "7L20", "6L20"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderfang: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M"], + willowisp: ["9M", "7M", "6M"], + workup: ["9L1", "7M", "7L1", "6L8"], + }, + eventData: [ + {generation: 6, level: 49, gender: "M", perfectIVs: 2, abilities: ["unnerve"], moves: ["hypervoice", "fireblast", "darkpulse"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + flabebe: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["7T"], + aromatherapy: ["7L33", "6L33"], + attract: ["7M", "6M"], + batonpass: ["9M"], + calmmind: ["9M", "7M", "6M"], + camouflage: ["7E", "6E"], + captivate: ["7E", "6E"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9E", "7E", "6E"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + echoedvoice: ["7M", "6M"], + endeavor: ["9E", "7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + fairywind: ["9L6", "7L6", "6L6"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grassyterrain: ["9M", "9L24", "7L24", "6L24"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["9M"], + luckychant: ["7L10", "6L10"], + magicalleaf: ["9M", "9L22", "7L22", "6L22"], + magiccoat: ["7T", "6T"], + mistyterrain: ["9M", "9L37", "7L37", "6L37"], + moonblast: ["9L41", "7L41", "6L41"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L28", "7L28", "6L28"], + petaldance: ["9L45", "7L45", "6L45"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "6M"], + psychic: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L15", "7L15", "6L15"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L10", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "9L48", "7M", "7L48", "6M", "6L48"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + synthesis: ["9L33", "7T", "6T"], + tackle: ["9L1", "7L1", "6L1"], + tearfullook: ["9E", "7E"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L1"], + wish: ["9L20", "7L20", "6L20"], + worryseed: ["7T", "6T"], + }, + }, + floette: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["7T"], + aromatherapy: ["7L38", "6L38"], + attract: ["7M", "6M"], + batonpass: ["9M"], + calmmind: ["9M", "7M", "6M"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + fairywind: ["9L1", "7L1", "6L6"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grassyterrain: ["9M", "9L27", "7L27", "6L27"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["9M"], + luckychant: ["7L10", "6L10"], + magicalleaf: ["9M", "9L25", "7L25", "6L25"], + magiccoat: ["7T", "6T"], + metronome: ["9M"], + mistyterrain: ["9M", "9L43", "7L43", "6L43"], + moonblast: ["9L46", "7L46", "6L46"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L33", "7L33", "6L33"], + petaldance: ["9L51", "7L51", "6L51"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "6M"], + psychic: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L15", "7L15", "6L15"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L10", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "9L58", "7M", "7L58", "6M", "6L58"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + synthesis: ["9L38", "7T", "6T"], + tackle: ["9L1", "7L1", "6L1"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + trick: ["9M"], + vinewhip: ["9L1", "7L1", "6L1"], + wish: ["9L20", "7L20", "6L20"], + worryseed: ["7T", "6T"], + }, + }, + floetteeternal: { + learnset: { + afteryou: ["7T"], + allyswitch: ["7T"], + aromatherapy: ["6L38"], + attract: ["6M"], + calmmind: ["6M"], + confide: ["6M"], + covet: ["7T"], + dazzlinggleam: ["6M"], + doubleteam: ["6M"], + echoedvoice: ["6M"], + endeavor: ["7T"], + energyball: ["6M"], + facade: ["6M"], + fairywind: ["6L6"], + flash: ["6M"], + frustration: ["6M"], + gigadrain: ["7T"], + grassknot: ["6M"], + grassyterrain: ["6L27"], + healbell: ["7T"], + helpinghand: ["7T"], + hiddenpower: ["6M"], + lightofruin: ["6L50"], + luckychant: ["6L10"], + magicalleaf: ["6L25"], + magiccoat: ["7T"], + mistyterrain: ["6L43"], + moonblast: ["6L46"], + naturepower: ["6M"], + petalblizzard: ["6L33"], + petaldance: ["6L51"], + protect: ["6M"], + psychic: ["6M"], + raindance: ["6M"], + razorleaf: ["6L15"], + rest: ["6M"], + return: ["6M"], + round: ["6M"], + safeguard: ["6M"], + secretpower: ["6M"], + seedbomb: ["7T"], + sleeptalk: ["6M"], + snore: ["7T"], + solarbeam: ["6M", "6L58"], + substitute: ["6M"], + sunnyday: ["6M"], + swagger: ["6M"], + synthesis: ["7T"], + tackle: ["6L1"], + toxic: ["6M"], + vinewhip: ["6L1"], + wish: ["6L20"], + worryseed: ["7T"], + }, + }, + florges: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["7T"], + aromatherapy: ["7L1", "6L1"], + attract: ["7M", "6M"], + batonpass: ["9M"], + calmmind: ["9M", "7M", "6M"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "7M", "6M"], + defog: ["7T"], + disarmingvoice: ["9M", "9L1", "7L1", "6L1"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + flowershield: ["7L1", "6L1"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "9L1", "7M", "7L1", "6M", "6L1"], + grassyterrain: ["9M", "9L1", "7L1", "6L1"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "7M", "6M"], + lightscreen: ["9M", "7M", "6M"], + luckychant: ["7L1", "6L1"], + magicalleaf: ["9M", "9L1", "7L1", "6L1"], + magiccoat: ["7T", "6T"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M", "9L1", "7L1", "6L1"], + moonblast: ["9L5", "7L1", "6L1"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L1", "7L1", "6L1"], + petaldance: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "6M"], + psychic: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L1", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "9L1", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + synthesis: ["9L1", "7T", "6T"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + trick: ["9M"], + wish: ["9L1", "7L1", "6L1"], + worryseed: ["7T", "6T"], + }, + }, + skiddo: { + learnset: { + attract: ["7M", "6M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L34", "7M", "7L34", "6M", "6L34"], + bulldoze: ["9M", "9L26", "7M", "7L26", "6M", "6L26"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + defensecurl: ["9E", "7E", "6E"], + dig: ["9M", "6M"], + doubleedge: ["9L38", "7L38", "6L38"], + doubleteam: ["7M", "6M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9E", "7E"], + growth: ["9L1", "7L1", "6L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hornleech: ["9L42", "7L42", "6L42"], + irontail: ["7T", "6T"], + leafblade: ["9L45", "7L45", "6L45"], + leafstorm: ["9M"], + leechseed: ["9L12", "7L12", "6L12"], + magicalleaf: ["9M"], + milkdrink: ["9E", "7L50", "7E", "6L50", "6E"], + mudshot: ["9M"], + mudslap: ["9M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M"], + playrough: ["9M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L13", "7L13", "6L13"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["9M", "7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rollout: ["9E", "7E", "6E"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L30", "7T", "7L30", "6T", "6L30"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + stompingtantrum: ["9M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["9L20", "7T", "7L20", "6T", "6L20"], + tackle: ["9L1", "7L1", "6L1"], + tailwhip: ["9L9", "7L9", "6L9"], + takedown: ["9M", "9L22", "7L22", "6L22"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L7", "7L7", "6L7"], + wildcharge: ["9M", "7M", "6M"], + workup: ["7M"], + worryseed: ["9L16", "7T", "7L16", "6T", "6L16"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + gogoat: { + learnset: { + aerialace: ["9M", "9L0", "7M", "7L1", "6M", "6L1"], + attract: ["7M", "6M"], + bodyslam: ["9M"], + bounce: ["7T", "6T"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L34", "7M", "7L34", "6M", "6L34"], + bulldoze: ["9M", "9L26", "7M", "7L26", "6M", "6L26"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + dig: ["9M", "6M"], + doubleedge: ["9L40", "7L40", "6L40"], + doubleteam: ["7M", "6M"], + earthquake: ["9M", "9L1", "7M", "7L1", "6M", "6L60"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "6L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["9M"], + hornleech: ["9L47", "7L47", "6L47"], + hyperbeam: ["9M", "7M", "6M"], + irontail: ["7T", "6T"], + leafblade: ["9L55", "7L55", "6L55"], + leafstorm: ["9M"], + leechseed: ["9L12", "7L12", "6L12"], + magicalleaf: ["9M"], + milkdrink: ["9L58", "7L58", "6L58"], + mudshot: ["9M"], + mudslap: ["9M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M"], + playrough: ["9M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L13", "7L13", "6L13"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["9M", "7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L30", "7T", "7L30", "6T", "6L30"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + stompingtantrum: ["9M", "7T"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superpower: ["7T", "6T"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["9L20", "7T", "7L20", "6T", "6L20"], + tackle: ["9L1", "7L1", "6L1"], + tailwhip: ["9L1", "7L1", "6L9"], + takedown: ["9M", "9L22", "7L22", "6L22"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L7"], + wildcharge: ["9M", "7M", "6M"], + workup: ["7M"], + worryseed: ["9L16", "7T", "7L16", "6T", "6L16"], + zenheadbutt: ["9M", "7T", "6T"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + pancham: { + learnset: { + aerialace: ["7M", "6M"], + armthrust: ["8L4", "7L7", "6L7", "6S0"], + attract: ["8M", "7M", "6M"], + block: ["7T", "6T"], + bodyslam: ["8M", "8L36", "7L33", "6L33"], + brickbreak: ["8M", "7M", "6M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + circlethrow: ["8L12", "7L25", "6L25"], + coaching: ["8T"], + cometpunch: ["7L15", "6L15"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + crunch: ["8M", "8L33", "7L39", "6L39"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M", "6S0"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["8M", "7T", "6T"], + dualchop: ["7T", "6T"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + entrainment: ["8L44", "7L42", "6L42"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + firepunch: ["8M", "7T", "6T"], + fling: ["8M", "7M", "6M"], + focuspunch: ["7T", "6T"], + foulplay: ["8M", "7T", "7E", "6T", "6E"], + frustration: ["7M", "6M"], + grassknot: ["8M", "7M", "6M"], + gunkshot: ["8M", "7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + icepunch: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + karatechop: ["7L12", "6L12"], + knockoff: ["7T", "6T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1"], + lowkick: ["8M", "7T", "6T"], + lowsweep: ["8M", "8L16", "7M", "6M"], + mefirst: ["7E", "6E"], + megakick: ["8M"], + megapunch: ["8M"], + partingshot: ["8L40", "7L45", "6L45"], + payback: ["8M", "7M", "6M"], + powertrip: ["8E", "7E"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quash: ["8E", "7E", "6E"], + quickguard: ["8E", "7E", "6E"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + seismictoss: ["8E"], + shadowclaw: ["8M", "7M", "6M"], + skyuppercut: ["7L48", "6L48"], + slash: ["8L24", "7L20", "6L20"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + stoneedge: ["8M", "7M", "6M", "6S0"], + stormthrow: ["8E", "7E", "6E"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "8L8"], + thunderpunch: ["8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + vitalthrow: ["8L28", "7L27", "6L27"], + workup: ["8M", "8L20", "7M", "7L10", "6L10"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 30, gender: "M", nature: "Adamant", abilities: ["moldbreaker"], moves: ["armthrust", "stoneedge", "darkpulse"], pokeball: "cherishball"}, + ], + }, + pangoro: { + learnset: { + aerialace: ["7M", "6M"], + armthrust: ["8L1", "7L1", "6L7"], + attract: ["8M", "7M", "6M"], + beatup: ["8M"], + block: ["7T", "6T"], + bodyslam: ["8M", "8L40", "7L35", "6L35"], + brickbreak: ["8M", "7M", "6M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + bulletpunch: ["8L1", "7L1"], + circlethrow: ["8L12", "7L25", "6L25"], + closecombat: ["8M"], + coaching: ["8T"], + cometpunch: ["7L15", "6L15"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + crunch: ["8M", "8L35", "7L42", "6L42"], + cut: ["6M"], + darkestlariat: ["8M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonclaw: ["8M", "7M", "6M"], + drainpunch: ["8M", "7T", "6T"], + dualchop: ["7T", "6T"], + earthquake: ["8M", "7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + entrainment: ["8L52", "7L1", "6L1"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + firepunch: ["8M", "7T", "6T"], + fling: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "6M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + gunkshot: ["8M", "7T", "6T"], + hammerarm: ["8L58", "7L1", "6L1"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + icepunch: ["8M", "7T", "6T"], + infestation: ["7M", "6M"], + ironhead: ["8M", "7T", "6T"], + karatechop: ["7L12", "6L12"], + knockoff: ["7T", "6T"], + laserfocus: ["7T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1"], + lowkick: ["8M", "7T", "6T"], + lowsweep: ["8M", "8L16", "7M", "7L1", "6M", "6L70"], + megakick: ["8M"], + megapunch: ["8M"], + nightslash: ["8L0"], + outrage: ["8M", "7T", "6T"], + partingshot: ["8L46", "7L48", "6L48"], + payback: ["8M", "7M", "6M"], + poisonjab: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quash: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + scaryface: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + skyuppercut: ["7L52", "6L52"], + slash: ["8L24", "7L20", "6L20"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snarl: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "8L1", "7M", "7L65", "6M", "6L65"], + thief: ["8M", "7M", "6M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + vitalthrow: ["8L28", "7L27", "6L27"], + workup: ["8M", "8L20", "7M", "7L1", "6L10"], + xscissor: ["8M", "7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + encounters: [ + {generation: 7, level: 24}, + ], + }, + furfrou: { + learnset: { + attract: ["7M", "6M"], + babydolleyes: ["7L9", "6L9"], + bite: ["7L22", "6L22"], + captivate: ["7E", "6E"], + chargebeam: ["7M", "6M"], + charm: ["7L38", "6L38"], + confide: ["7M", "6M"], + cottonguard: ["7L48", "6L48"], + darkpulse: ["7M", "6M"], + dig: ["6M"], + doubleteam: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + facade: ["7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigaimpact: ["7M", "6M"], + grassknot: ["7M", "6M"], + growl: ["7L1", "6L1"], + headbutt: ["7L12", "6L12"], + helpinghand: ["7T", "6T"], + hiddenpower: ["7M", "6M"], + hypervoice: ["7T", "6T"], + irontail: ["7T", "6T"], + lastresort: ["7T", "6T"], + mimic: ["7E", "6E"], + odorsleuth: ["7L27", "6L27"], + protect: ["7M", "6M"], + raindance: ["7M", "6M"], + refresh: ["7E", "6E"], + rest: ["7M", "6M"], + retaliate: ["7L33", "6M", "6L33"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "7E", "6T", "6E"], + round: ["7M", "6M"], + sandattack: ["7L5", "6L5"], + secretpower: ["6M"], + sleeptalk: ["7M", "6M"], + snarl: ["7M", "6M"], + snore: ["7T", "6T"], + substitute: ["7M", "6M"], + suckerpunch: ["7L42", "6L42"], + sunnyday: ["7M", "6M"], + surf: ["7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["7L1", "6L1"], + tailwhip: ["7L15", "6L15"], + takedown: ["7L35", "6L35"], + thunderwave: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["7T", "6T"], + uturn: ["7M", "6M"], + wildcharge: ["7M", "6M"], + workup: ["7M", "7E", "6E"], + zenheadbutt: ["7T", "6T"], + }, + }, + espurr: { + learnset: { + allyswitch: ["8M", "7T"], + assist: ["7E", "6E"], + attract: ["8M", "7M", "6M"], + barrier: ["7E", "6E"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L9", "6L9"], + covet: ["8L18", "7T", "7L5", "6T", "6L5"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + disarmingvoice: ["8L6", "7L22", "6L22"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M"], + fakeout: ["8L3", "7L19", "6L19"], + faketears: ["8M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gravity: ["7T", "6T"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + lightscreen: ["8M", "8L30", "7M", "7L13", "6M", "6L13"], + magiccoat: ["7T", "6T"], + magicroom: ["8M", "7T", "6T"], + nastyplot: ["8M"], + payback: ["8M", "7M", "6M"], + payday: ["8M"], + playrough: ["8M"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L21", "7L17", "6L17"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + psyshock: ["8M", "8L33", "7M", "7L25", "6M", "6L25"], + raindance: ["8M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["8M", "8L30", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + tickle: ["8E"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T", "7E", "6T", "6E"], + trickroom: ["8M", "7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + workup: ["8M", "7M"], + yawn: ["8E", "7E", "6E"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + meowstic: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + charm: ["8M", "8L15", "7L28", "6L28"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L1", "6L9"], + covet: ["8L18", "7T", "7L1", "6T", "6L5"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + disarmingvoice: ["8L1", "7L22", "6L22"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M"], + fakeout: ["8L1", "7L19", "6L19"], + faketears: ["8M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + gravity: ["7T", "6T"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "8L12", "7T", "7L1", "6T", "6L1"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + imprison: ["8M", "8L44", "7L45", "6L45"], + irontail: ["8M", "7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + lightscreen: ["8M", "8L34", "7M", "7L13", "6M", "6L13"], + magiccoat: ["7T", "6T"], + magicroom: ["8M", "7T", "6T"], + meanlook: ["8L1", "7L1", "6L1"], + miracleeye: ["7L31", "6L31"], + mistyterrain: ["8M", "8L59", "7L50", "6L50"], + nastyplot: ["8M"], + payback: ["8M", "7M", "6M"], + payday: ["8M"], + playrough: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L21", "7L17", "6L17"], + psychic: ["8M", "8L54", "7M", "7L40", "6M", "6L40"], + psychicterrain: ["8M"], + psychup: ["7M", "6M"], + psyshock: ["8M", "8L39", "7M", "7L25", "6M", "6L25"], + quickguard: ["8L49", "7L1", "6L1"], + raindance: ["8M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["8M", "8L34", "7M", "7L35", "6M", "6L35"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["8L29", "7T", "7L43", "6T", "6L43"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + suckerpunch: ["8L24", "7L48", "6L48"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailslap: ["8M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T", "6T"], + trickroom: ["8M", "7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + meowsticf: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["8L15", "7M", "7L28", "6M", "6L28"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L1", "6L9"], + covet: ["8L18", "7T", "7L1", "6L5"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + disarmingvoice: ["8L1", "7L22", "6L22"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + expandingforce: ["8T"], + extrasensory: ["8L44", "7L35", "6L35"], + facade: ["8M", "7M", "6M"], + fakeout: ["8L1", "7L19", "6L19"], + faketears: ["8M"], + flash: ["6M"], + frustration: ["7M", "6M"], + futuresight: ["8M", "8L59", "7L50", "6L50"], + gigaimpact: ["8M", "7M", "6M"], + gravity: ["7T"], + healbell: ["7T"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + irontail: ["8M", "7T"], + leer: ["8L1", "7L1", "6L1"], + lightscreen: ["8M", "8L34", "7M", "7L13", "6M", "6L13"], + magicalleaf: ["8M", "8L1", "7L1", "6L1"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + mefirst: ["7L1", "6L1"], + nastyplot: ["8M"], + payback: ["8M", "7M", "6M"], + payday: ["8M"], + playrough: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L21", "7L17", "6L17"], + psychic: ["8M", "8L54", "7M", "7L40", "6M", "6L40"], + psychicterrain: ["8M"], + psychup: ["7M", "6M"], + psyshock: ["8M", "8L39", "7M", "7L25", "6M", "6L25"], + raindance: ["8M", "7M", "6M"], + recycle: ["7T"], + reflect: ["8M", "8L34", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["8L29", "7T", "7L43", "6L43"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["8M", "8L49", "7M", "7L31", "6M", "6L31"], + shockwave: ["7T"], + signalbeam: ["7T", "7L45", "6L45"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T"], + snore: ["8M", "7T"], + storedpower: ["8M", "8L12", "7L1", "6L1"], + substitute: ["8M", "7M", "6M"], + suckerpunch: ["8L24", "7L48", "6L48"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailslap: ["8M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T"], + trickroom: ["8M", "7M", "6M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + }, + honedge: { + learnset: { + aerialace: ["8L12", "7M", "7L22", "6M", "6L22"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + autotomize: ["8L8", "7L18", "6L18"], + block: ["8E"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + destinybond: ["8E", "7E", "6E"], + doubleteam: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L1", "7L5", "6L5"], + gyroball: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + irondefense: ["8M", "8L32", "7T", "7L32", "6T", "6L32"], + ironhead: ["8M", "8L36", "7T", "7L42", "6T", "6L42"], + laserfocus: ["7T"], + magnetrise: ["7T", "6T"], + metalsound: ["8L16", "7L8", "7E", "6L8", "6E"], + nightslash: ["8L24", "7L35", "6L35"], + powertrick: ["8L40", "7L39", "6L39"], + protect: ["8M", "7M", "6M"], + psychocut: ["8M"], + pursuit: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "8L28", "7L26", "6M", "6L26"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M"], + sacredsword: ["8L48", "7L47", "6L47"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shadowsneak: ["8L4", "7L20", "7E", "6L20", "6E"], + shockwave: ["7T", "6T"], + slash: ["8L20", "7L29", "6L29"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarblade: ["8M"], + spite: ["7T", "6T"], + steelbeam: ["8T"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L44", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + toxic: ["7M", "6M"], + wideguard: ["8E", "7E", "6E"], + }, + }, + doublade: { + learnset: { + aerialace: ["8L12", "7M", "7L22", "6M", "6L22"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + autotomize: ["8L1", "7L18", "6L18"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L1", "7L1", "6L5"], + gyroball: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + irondefense: ["8M", "8L32", "7T", "7L32", "6T", "6L32"], + ironhead: ["8M", "8L38", "7T", "7L45", "6T", "6L45"], + laserfocus: ["7T"], + magnetrise: ["7T", "6T"], + metalsound: ["8L16", "7L8", "6L8"], + nightslash: ["8L24", "7L36", "6L36"], + powertrick: ["8L44", "7L41", "6L41"], + protect: ["8M", "7M", "6M"], + psychocut: ["8M"], + pursuit: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "8L28", "7L26", "6M", "6L26"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M"], + sacredsword: ["8L56", "7L51", "6L51"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shadowsneak: ["8L1", "7L20", "6L20"], + shockwave: ["7T", "6T"], + slash: ["8L20", "7L29", "6L29"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarblade: ["8M"], + spite: ["7T", "6T"], + steelbeam: ["8T"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L50", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + toxic: ["7M", "6M"], + }, + }, + aegislash: { + learnset: { + aerialace: ["8L1", "7M", "7L1", "6M", "6L1"], + afteryou: ["7T", "6T"], + airslash: ["8M"], + attract: ["8M", "7M", "6M"], + autotomize: ["8L1", "7L1", "6L1"], + block: ["7T", "6T"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + flashcannon: ["8M", "7M", "6M", "6S0"], + frustration: ["7M", "6M"], + furycutter: ["8L1", "7L1", "6L1"], + gigaimpact: ["8M", "7M", "6M"], + gyroball: ["8M", "7M", "6M"], + headsmash: ["8L1", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + irondefense: ["8M", "8L1", "7T", "7L1", "6T", "6L1"], + ironhead: ["8M", "8L1", "7T", "7L1", "6T", "6L1"], + kingsshield: ["8L0", "7L1", "6L1", "6S0"], + laserfocus: ["7T"], + magnetrise: ["7T", "6T"], + metalsound: ["8L1"], + nightslash: ["8L1", "7L1", "6L1"], + powertrick: ["8L1", "7L1", "6L1"], + protect: ["8M", "7M", "6M"], + psychocut: ["8M"], + pursuit: ["7L1", "6L1"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "8L1", "6M"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M", "7M", "6M"], + sacredsword: ["8L1", "7L1", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "6S0"], + shadowclaw: ["8M", "7M", "6M"], + shadowsneak: ["8L1", "7L1", "6L1"], + shockwave: ["7T", "6T"], + slash: ["8L1", "7L1", "6L1"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarblade: ["8M"], + spite: ["7T", "6T"], + steelbeam: ["8T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L1", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1"], + toxic: ["7M", "6M"], + wideguard: ["6S0"], + }, + eventData: [ + {generation: 6, level: 50, gender: "F", nature: "Quiet", moves: ["wideguard", "kingsshield", "shadowball", "flashcannon"], pokeball: "cherishball"}, + ], + }, + spritzee: { + learnset: { + afteryou: ["8E", "7T", "6T"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L12", "7L25", "6L25"], + attract: ["8M", "8L18", "7M", "7L29", "6M", "6L29"], + calmmind: ["8M", "8L33", "7M", "7L17", "6M", "6L17"], + captivate: ["7E", "6E"], + chargebeam: ["7M", "6M"], + charm: ["8M", "8L30", "7L35", "6L35"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + disable: ["8E", "7E", "6E"], + disarmingvoice: ["7L50", "6L50"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L9", "7L21", "6L21"], + dreameater: ["7M", "6M"], + echoedvoice: ["8L6", "7M", "7L13", "6M", "6L13"], + encore: ["8M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L1", "7L1", "6L1"], + faketears: ["8M"], + flail: ["8L21", "7L38", "6L38"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gyroball: ["8M", "7M", "6M"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L24", "7L42", "6L42"], + moonblast: ["8L36", "7L31", "6L31"], + nastyplot: ["8M", "7E"], + odorsleuth: ["7L8", "6L8"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "8L27", "7M", "7L48", "6M", "6L48"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + refresh: ["7E", "6E"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + skillswap: ["8M", "8L39", "7T", "7L44", "6T", "6L44"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetkiss: ["8L3", "7L6", "6L6"], + sweetscent: ["8L1", "7L1", "6L1"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M"], + wish: ["8E", "7E", "6E"], + }, + }, + aromatisse: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L12", "7L25", "6L25"], + aromaticmist: ["8L1", "7L1", "6L1"], + attract: ["8M", "8L18", "7M", "7L29", "6M", "6L29"], + calmmind: ["8M", "8L33", "7M", "7L17", "6M", "6L17"], + chargebeam: ["7M", "6M"], + charm: ["8M", "8L30", "7L35", "6L35"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + disable: ["6S0"], + disarmingvoice: ["8L9", "7L53", "6L53"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L15", "7L21", "6L21"], + drainpunch: ["8M", "7T", "6T"], + dreameater: ["7M", "6M"], + echoedvoice: ["8L1", "7M", "7L13", "6M", "6L13"], + encore: ["8M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L1", "7L1", "6L1"], + faketears: ["8M"], + flail: ["8L21", "7L38", "6L38"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + gyroball: ["8M", "7M", "6M"], + healbell: ["7T", "6T"], + healpulse: ["8L1", "7L1", "6L1", "6S0"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + metronome: ["8M"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L24", "7L42", "6L42"], + moonblast: ["8L36", "7L31", "6L31", "6S0"], + nastyplot: ["8M"], + odorsleuth: ["7L1", "6L8"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "8L27", "7M", "7L48", "6M", "6L48"], + psychup: ["8L42", "7M", "7L64", "6M", "6L64"], + psyshock: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "7L57", "6M", "6L57"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + skillswap: ["8M", "8L39", "7T", "7L44", "6T", "6L44"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetkiss: ["8L1", "7L1", "6L6"], + sweetscent: ["8L1", "7L1", "6L1"], + telekinesis: ["7T"], + thunder: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M", "6S0"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Relaxed", isHidden: true, moves: ["trickroom", "healpulse", "disable", "moonblast"], pokeball: "cherishball"}, + ], + }, + swirlix: { + learnset: { + afteryou: ["8E", "7T", "7E", "6T", "6E"], + amnesia: ["8M"], + aromatherapy: ["8L9", "7L26", "6L26"], + attract: ["8M", "7M", "6M"], + bellydrum: ["7E", "6E"], + calmmind: ["8M", "7M", "6M"], + charm: ["8M"], + confide: ["7M", "6M"], + copycat: ["8E", "7E", "6E"], + cottonguard: ["8L36", "7L41", "6L41"], + cottonspore: ["8L24", "7L17", "6L17"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L12", "7L31", "6L31"], + dreameater: ["7M", "6M"], + endeavor: ["8L39", "7T", "7L21", "6T", "6L21"], + endure: ["8M"], + energyball: ["8M", "8L27", "7M", "7L36", "6M", "6L36"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L6", "7L5", "6L5"], + faketears: ["8M", "8L15", "7L10", "6L10"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gastroacid: ["7T", "6T"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["8M", "7M", "7L58", "6M", "6L58"], + magiccoat: ["7T", "6T"], + mistyexplosion: ["8T"], + playnice: ["8L3", "7L8", "6L8"], + playrough: ["8M", "8L33", "7L49", "6L49"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "8L18", "7M", "7L13", "6M", "6L13"], + safeguard: ["8M", "7M", "7L67", "6M", "6L67"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stickyweb: ["8E", "7E"], + stringshot: ["8L21"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetscent: ["8L1", "7L1", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + thief: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + wish: ["8L30", "7L45", "6L45"], + yawn: ["8E", "7E", "6E"], + }, + }, + slurpuff: { + learnset: { + afteryou: ["7T", "6T"], + amnesia: ["8M"], + aromatherapy: ["8L9", "7L26", "6L26"], + attract: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + charm: ["8M"], + confide: ["7M", "6M"], + cottonguard: ["8L36", "7L41", "6L41"], + cottonspore: ["8L24", "7L17", "6L17"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L12", "7L31", "6L31"], + drainpunch: ["8M", "7T", "6T"], + dreameater: ["7M", "6M"], + endeavor: ["8L39", "7T", "7L21", "6T", "6L21"], + endure: ["8M"], + energyball: ["8M", "8L27", "7M", "7L36", "6M", "6L36"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L1", "7L1", "6L5"], + faketears: ["8M", "8L15", "7L10", "6L10"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gastroacid: ["7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + lightscreen: ["8M", "7M", "7L58", "6M", "6L58"], + magiccoat: ["7T", "6T"], + metronome: ["8M"], + mistyexplosion: ["8T"], + playnice: ["8L1", "7L1", "6L8"], + playrough: ["8M", "8L33", "7L49", "6L49"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "8L18", "7M", "7L13", "6M", "6L13"], + safeguard: ["8M", "7M", "7L67", "6M", "6L67"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stickyweb: ["8L42"], + stringshot: ["8L21"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetscent: ["8L1", "7L1", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + thief: ["8M", "7M", "6M"], + thunder: ["8M"], + thunderbolt: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + wish: ["8L30", "7L45", "6L45"], + }, + }, + inkay: { + learnset: { + acupressure: ["8E"], + aerialace: ["7M", "6M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + batonpass: ["8M"], + bind: ["7T", "6T"], + calmmind: ["8M", "7M", "6M"], + camouflage: ["7E", "6E"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + destinybond: ["8E", "7E", "6E"], + disable: ["8E"], + doubleteam: ["7M", "6M"], + embargo: ["7M", "6M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M"], + faketears: ["8M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + flatter: ["7E", "6E"], + fling: ["8M", "7M", "6M"], + foulplay: ["8M", "8L33", "7T", "7L8", "6T", "6L8", "6S0"], + frustration: ["7M", "6M"], + futuresight: ["8M"], + guardswap: ["8M", "7E"], + happyhour: ["6S0"], + hiddenpower: ["7M", "6M"], + hypnosis: ["8L3", "7L18", "6L18", "6S0"], + knockoff: ["7T", "6T"], + lashout: ["8T"], + lightscreen: ["8M", "7M", "7L31", "6M", "6L31"], + liquidation: ["8M"], + nastyplot: ["8M"], + nightslash: ["8L24", "7L46", "6L46"], + payback: ["8M", "8L9", "7M", "7L27", "6M", "6L27"], + peck: ["8L1", "7L1", "6L1"], + pluck: ["8L12", "7L35", "6L35"], + powersplit: ["7E", "6E"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L15", "7L21", "6L21"], + psychic: ["8M", "7M", "6M"], + psychocut: ["8M", "8L27", "7L39", "6L39"], + psychup: ["7M", "6M"], + psywave: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "7L4", "6M", "6L4"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + simplebeam: ["7E", "6E"], + slash: ["8L21", "7L43", "6L43"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "8L39", "7T", "7L48", "6T", "6L48"], + swagger: ["8L18", "7M", "7L12", "6M", "6L12"], + switcheroo: ["8L31", "7L23", "6L23"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "7M", "6M"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + topsyturvy: ["8L36", "7L15", "6L15", "6S0"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M"], + wrap: ["8L6"], + }, + eventData: [ + {generation: 6, level: 10, moves: ["happyhour", "foulplay", "hypnosis", "topsyturvy"], pokeball: "cherishball"}, + ], + }, + malamar: { + learnset: { + aerialace: ["7M", "6M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + batonpass: ["8M"], + bind: ["7T", "6T"], + block: ["7T", "6T"], + brutalswing: ["8M", "7M"], + calmmind: ["8M", "7M", "6M"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + embargo: ["7M", "6M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "6S0"], + faketears: ["8M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + fling: ["8M", "7M", "6M"], + foulplay: ["8M", "8L37", "7T", "7L8", "6T", "6L8"], + frustration: ["7M", "6M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M"], + guardswap: ["8M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + hypnosis: ["8L1", "7L18", "6L18"], + knockoff: ["7T", "6T", "6S0"], + lashout: ["8T"], + lightscreen: ["8M", "7M", "7L31", "6M", "6L31"], + liquidation: ["8M"], + nastyplot: ["8M"], + nightslash: ["8L24", "7L46", "6L46"], + payback: ["8M", "8L9", "7M", "7L27", "6M", "6L27"], + peck: ["8L1", "7L1", "6L1"], + pluck: ["8L12", "7L35", "6L35"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L15", "7L21", "6L21"], + psychic: ["8M", "7M", "6M"], + psychocut: ["8M", "8L27", "7L39", "6L39"], + psychup: ["7M", "6M"], + psyshock: ["8M", "7M", "6M"], + psywave: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "7L1", "6M", "6L4"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + reversal: ["8M", "8L1", "7L1", "6L1"], + rockslide: ["8M", "7M", "6M", "6S0"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + scaryface: ["8M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + slash: ["8L21", "7L43", "6L43"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "8L47", "7T", "7L48", "6T", "6L1", "6S0"], + swagger: ["8L18", "7M", "7L12", "6M", "6L12"], + switcheroo: ["8L33", "7L23", "6L23"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "7M", "6M"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + throatchop: ["8M", "7T"], + thunderbolt: ["8M", "7M", "6M"], + topsyturvy: ["8L42", "7L15", "6L15"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M"], + wrap: ["8L1"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Adamant", ivs: {hp: 31, atk: 31}, abilities: ["contrary"], moves: ["superpower", "knockoff", "facade", "rockslide"], pokeball: "cherishball"}, + ], + }, + binacle: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L20", "7L28", "6L28"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + beatup: ["8M"], + blizzard: ["8M", "7M", "6M"], + brickbreak: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + clamp: ["7L20", "6L20"], + confide: ["7M", "6M"], + crosschop: ["8L44", "7L49", "6L49"], + cut: ["6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dualchop: ["7T", "6T"], + earthquake: ["8M", "7M", "6M"], + embargo: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + fling: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L12", "7L37", "6L37"], + furyswipes: ["8L16", "7L10", "6L10"], + grassknot: ["8M", "7M", "6M"], + helpinghand: ["8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "6M"], + honeclaws: ["8L32", "7L32", "6M", "6L32"], + icebeam: ["8M", "7M", "6M"], + icywind: ["8M", "7T", "6T"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + liquidation: ["8M", "7T"], + mudshot: ["8M"], + mudslap: ["8L1", "7L18", "6L18"], + naturepower: ["7M", "6M"], + nightslash: ["8E", "7L41", "6L41"], + payback: ["8M", "7M", "6M"], + poisonjab: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + razorshell: ["8M", "8L36", "7L45", "6L45"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["8L24", "7M", "7L24", "6M", "6L24"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandattack: ["8E", "7L1", "6L1"], + sandstorm: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shellsmash: ["8L40", "7L1", "6L1"], + slash: ["8L28", "7L13", "6L13"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + switcheroo: ["8E", "7E", "6E"], + swordsdance: ["8M", "7M", "6M"], + taunt: ["8M", "7M", "6M"], + thief: ["8M", "7M", "6M"], + tickle: ["7E", "6E"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M"], + watergun: ["8L8", "7L4", "6L4"], + waterpulse: ["7T", "6T"], + watersport: ["7E", "6E"], + withdraw: ["8L4", "7L7", "6L7"], + xscissor: ["8M", "7M", "6M"], + }, + }, + barbaracle: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L20", "7L28", "6L28"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + beatup: ["8M"], + blizzard: ["8M", "7M", "6M"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + clamp: ["7L20", "6L20"], + confide: ["7M", "6M"], + crosschop: ["8L48", "7L55", "6L55"], + cut: ["6M"], + dig: ["8M", "6M"], + dive: ["8M"], + doubleteam: ["7M", "6M"], + dragonclaw: ["8M", "7M", "6M"], + dualchop: ["7T", "6T"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "7M", "6M"], + embargo: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + fling: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L12", "7L37", "6L37"], + furyswipes: ["8L16", "7L10", "6L10"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["8L32", "7L32", "6M", "6L32"], + hyperbeam: ["8M", "7M", "6M"], + icebeam: ["8M", "7M", "6M"], + icywind: ["8M", "7T", "6T"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + laserfocus: ["7T"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T", "6T"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["8L1", "7L18", "6L18"], + naturepower: ["7M", "6M"], + nightslash: ["7L44", "6L44"], + payback: ["8M", "7M", "6M"], + poisonjab: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + razorshell: ["8M", "8L36", "7L48", "6L48"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["8L24", "7M", "7L24", "6M", "6L24"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandattack: ["7L1", "6L1"], + sandstorm: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shellsmash: ["8L42", "7L1", "6L1"], + skullbash: ["8L1", "7L1", "6L1"], + slash: ["8L28", "7L13", "6L13"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "8L54", "7M", "7L1", "6M", "6L1"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "7M", "6M"], + taunt: ["8M", "7M", "6M"], + thief: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M"], + watergun: ["8L1", "7L1", "6L4"], + waterpulse: ["7T", "6T"], + whirlpool: ["8M"], + withdraw: ["8L1", "7L7", "6L7"], + xscissor: ["8M", "7M", "6M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + skrelp: { + learnset: { + acid: ["9L5", "8L5", "7L15", "6L15"], + acidarmor: ["9E", "8E", "7E", "6E"], + acidspray: ["9M"], + aquatail: ["9L45", "8L45", "7T", "7L35", "6T", "6L35"], + attract: ["8M", "7M", "6M"], + bounce: ["8M", "7T", "6T"], + bubble: ["7L12", "6L12"], + camouflage: ["7L19", "6L19"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M"], + doubleteam: ["9L20", "8L20", "7M", "7L28", "6M", "6L28"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L49", "6T", "6L49"], + dragontail: ["9M", "9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feintattack: ["7L5", "6L5"], + flipturn: ["9M", "8T"], + frustration: ["7M", "6M"], + gunkshot: ["9M", "8M", "7T", "6T"], + hail: ["8M", "7M", "6M"], + haze: ["9M", "9E", "8E", "7E", "6E"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L55", "8M", "8L55", "7L42", "6L42"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M", "8M", "7T", "6T"], + playrough: ["9M", "8M", "7E", "6E"], + poisontail: ["9M", "9L25", "8L25", "7L23", "6L23"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shockwave: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "9L50", "8M", "8L50", "7M", "7L38", "6M", "6L38"], + sludgewave: ["8M", "7M", "6M"], + smokescreen: ["9L1", "8L1", "7L1", "6L1"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + spite: ["9M"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwhip: ["9L15", "8L15", "7L9", "6L9"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["9M", "9L35", "8L35", "7M", "7L32", "6M", "6L32"], + toxicspikes: ["9M", "8M", "7E", "6E"], + twister: ["9E", "8E"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["9M", "8M", "7M", "6M"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L10", "8L10", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L25", "6T", "6L25"], + }, + }, + dragalge: { + learnset: { + acid: ["9L1", "8L1", "7L15", "6L15"], + acidspray: ["9M"], + aquatail: ["9L45", "8L45", "7T", "7L35", "6T", "6L35"], + attract: ["8M", "7M", "6M"], + bounce: ["8M", "7T", "6T"], + bubble: ["7L12", "6L12"], + camouflage: ["7L19", "6L19"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M"], + doubleteam: ["9L20", "8L20", "7M", "7L28", "6M", "6L28"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L53", "6T", "6L53"], + dragontail: ["7M", "7L1", "6M", "6L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feintattack: ["7L1", "6L5"], + flipturn: ["9M", "8T"], + focusblast: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gunkshot: ["9M", "8M", "7T", "6T"], + hail: ["8M", "7M", "6M"], + haze: ["9M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L59", "8M", "8L59", "7L42", "6L42"], + hyperbeam: ["9M", "8M", "7M", "6M"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M", "9L66", "8M", "8L66", "7T", "6T"], + playrough: ["9M", "8M"], + poisontail: ["9M", "9L25", "8L25", "7L23", "6L23"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["9M", "8M", "7M", "6M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shockwave: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "9L52", "8M", "8L52", "7M", "7L38", "6M", "6L38"], + sludgewave: ["8M", "7M", "6M"], + smokescreen: ["9L1", "8L1", "7L1", "6L1"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + spite: ["9M"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwhip: ["9L15", "8L15", "7L9", "6L9"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "7M", "6M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["9M", "9L35", "8L35", "7M", "7L32", "6M", "6L32"], + toxicspikes: ["9M", "8M"], + twister: ["7L1", "6L1"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L25", "6T", "6L25"], + }, + encounters: [ + {generation: 6, level: 35}, + ], + }, + clauncher: { + learnset: { + aquajet: ["9L15", "8L15", "7L43", "7E", "6L43", "6E"], + aquatail: ["9E", "8E", "7T", "6T"], + attract: ["8M", "7M", "6M"], + aurasphere: ["9M", "9L40", "8M", "8L40"], + blizzard: ["9M"], + bounce: ["9L45", "8M", "8L45", "7T", "6T"], + bubble: ["7L12", "6L12"], + bubblebeam: ["9E", "8E", "7L20", "6L20"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crabhammer: ["9L55", "8L55", "7L30", "7E", "6L30", "6E"], + cut: ["6M"], + darkpulse: ["9M"], + dive: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonpulse: ["9M", "8M", "7T", "6T"], + endure: ["9M", "8M", "7E", "6E"], + entrainment: ["9E", "8E", "7E", "6E"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L10", "8L10", "7L16", "6L16"], + flashcannon: ["9M", "8M", "7M", "6M"], + flipturn: ["9M", "8T"], + frustration: ["7M", "6M"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "6M"], + honeclaws: ["9L25", "8L25"], + hydropump: ["9M"], + icebeam: ["9M", "8M", "7M", "6M"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + liquidation: ["9M"], + muddywater: ["9L50", "8M", "8L50", "7L48", "6L48"], + mudshot: ["9M"], + mudslap: ["9M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["9M", "9L20", "8L20", "7M", "7L39", "6M", "6L39"], + snore: ["8M", "7T", "6T"], + splash: ["9L1", "8L1", "7L1", "6L1"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["9M", "9L35", "8M", "8L35", "7M", "7L25", "6M", "6L25"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + venoshock: ["9M", "8M", "7M", "6M"], + visegrip: ["9L5", "8L5", "7L9", "6L9"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L34", "6T", "6L34"], + watersport: ["7L7", "6L7"], + weatherball: ["9M"], + }, + }, + clawitzer: { + learnset: { + aquajet: ["9L15", "8L15", "7L49", "6L47"], + aquatail: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + aurasphere: ["9M", "9L42", "8M", "8L42", "7L1", "6L1"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9L49", "8M", "8L49", "7T", "6T"], + bubble: ["7L12", "6L12"], + bubblebeam: ["7L20", "6L20"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crabhammer: ["9L63", "8L63", "7L30", "6L30"], + cut: ["6M"], + darkpulse: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1"], + dive: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonpulse: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L1", "8L1", "7L16", "6L16"], + flashcannon: ["9M", "8M", "7M", "6M"], + flipturn: ["9M", "8T"], + focusblast: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + healpulse: ["9L1", "8L1", "7L1", "6L1"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["9L25", "8L25"], + hydropump: ["9M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + icebeam: ["9M", "8M", "7M", "6M"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["7T"], + liquidation: ["9M", "8M", "7T"], + muddywater: ["9L56", "8M", "8L56", "7L57", "6L53"], + mudshot: ["9M"], + mudslap: ["9M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["9M", "9L20", "8L20", "7M", "7L42", "6M", "6L42"], + snore: ["8M", "7T", "6T"], + splash: ["9L1", "8L1", "7L1", "6L1"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["9M", "9L35", "8M", "8L35", "7M", "7L25", "6M", "6L25"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + venoshock: ["9M", "8M", "7M", "6M"], + visegrip: ["9L1", "8L1", "7L1", "6L9"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L34", "6T", "6L34"], + watersport: ["7L1", "6L7"], + weatherball: ["9M"], + }, + encounters: [ + {generation: 6, level: 35}, + ], + }, + helioptile: { + learnset: { + agility: ["8M", "7E", "6E"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L20", "7M", "7L35", "6M", "6L35"], + camouflage: ["7E", "6E"], + charge: ["8L16", "7L11", "6L11"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonrush: ["8E"], + dragontail: ["8E", "7M", "6M"], + electricterrain: ["8M", "7E", "6E"], + electrify: ["8L40", "7L45", "6L45"], + electroball: ["8M"], + electroweb: ["8M", "7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + glare: ["8E", "7E", "6E"], + grassknot: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "7M", "6M"], + lowsweep: ["8M", "7M", "6M"], + magnetrise: ["7T", "6T"], + mudslap: ["8L1", "7L13", "6L13"], + paraboliccharge: ["8L28", "7L25", "6L25"], + pound: ["8L4", "7L1", "6L1"], + protect: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + quickattack: ["8L12", "7L17", "6L17"], + raindance: ["8M", "7M", "6M"], + razorwind: ["7L22", "6L22"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + risingvoltage: ["8T"], + rockslide: ["8M", "7M", "6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailwhip: ["8L1", "7L1", "6L1"], + thunder: ["8M", "8L44", "7M", "6M"], + thunderbolt: ["8M", "8L36", "7M", "7L49", "6M", "6L49"], + thundershock: ["8L8", "7L6", "6L6"], + thunderwave: ["8M", "8L32", "7M", "7L31", "6M", "6L31"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + voltswitch: ["8M", "8L24", "7M", "7L40", "6M", "6L40"], + wildcharge: ["8M", "7M", "6M"], + }, + }, + heliolisk: { + learnset: { + agility: ["8M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "8L1", "7M", "6M"], + charge: ["8L1", "7L1", "6L1"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + discharge: ["8L1"], + doubleteam: ["7M", "6M"], + dragonpulse: ["8M", "7T", "6T"], + dragontail: ["7M", "6M"], + eerieimpulse: ["8M", "8L1", "7L1", "6L1"], + electricterrain: ["8M"], + electrify: ["8L1", "7L1", "6L1"], + electroball: ["8M"], + electroweb: ["8M", "7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + firepunch: ["8M", "7T", "6T"], + flash: ["6M"], + focusblast: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "7M", "6M"], + lowkick: ["8M", "7T", "6T"], + lowsweep: ["8M", "7M", "6M"], + magnetrise: ["7T", "6T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["8L1"], + paraboliccharge: ["8L1", "7L1", "6L1"], + pound: ["8L1"], + protect: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + quickattack: ["8L1", "7L1", "6L1"], + raindance: ["8M", "7M", "6M"], + razorwind: ["7L1", "6L1"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + risingvoltage: ["8T"], + rockslide: ["8M", "7M", "6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["8M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailwhip: ["8L1"], + thunder: ["8M", "8L1", "7M", "7L1", "6M", "6L1"], + thunderbolt: ["8M", "8L1", "7M", "6M"], + thunderpunch: ["8M", "7T", "6T"], + thundershock: ["8L1"], + thunderwave: ["8M", "8L1", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + voltswitch: ["8M", "8L1", "7M", "6M"], + weatherball: ["8M"], + wildcharge: ["8M", "7M", "6M"], + }, + }, + tyrunt: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L8", "7L26", "6L26"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + bide: ["7L12", "6L12"], + bite: ["8L16", "7L17", "6L17"], + block: ["7T", "6T"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + charm: ["8M", "8L12", "7L20", "6L20"], + closecombat: ["8M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L32", "7L34", "6L34"], + curse: ["8E", "7E", "6E"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dracometeor: ["8T", "7T", "6T"], + dragonclaw: ["8M", "8L36", "7M", "7L37", "6M", "6L37"], + dragondance: ["8M", "7E", "6E"], + dragonpulse: ["8M", "7T", "6T"], + dragontail: ["8L20", "7M", "7L30", "6M", "6L30"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L44", "7M", "7L44", "6M", "6L44"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + firefang: ["8M", "7E", "6E"], + frustration: ["7M", "6M"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + horndrill: ["8L48", "7L49", "6L49"], + hypervoice: ["8M", "7T", "6T"], + icefang: ["8M", "7E", "6E"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lashout: ["8T"], + meteorbeam: ["8T"], + outrage: ["8M", "7T", "6T"], + playrough: ["8M"], + poisonfang: ["8E", "7E", "6E"], + protect: ["8M", "7M", "6M"], + psychicfangs: ["8M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["8L4", "7M", "7L6", "6M", "6L6", "6S0"], + rockblast: ["8M"], + rockpolish: ["8E", "7M", "7E", "6M", "6E"], + rockslide: ["8M", "8L28", "7M", "6M"], + rocksmash: ["6M"], + rockthrow: ["8E"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "7L15", "6T", "6L15"], + stomp: ["8L24", "7L10", "6L10", "6S0"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + tackle: ["8L1", "7L1", "6L1", "6S0"], + tailwhip: ["8L1", "7L1", "6L1", "6S0"], + thrash: ["8L40", "7L40", "6L40"], + thunderfang: ["8M", "7E", "6E"], + toxic: ["7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 10, isHidden: true, moves: ["tailwhip", "tackle", "roar", "stomp"], pokeball: "cherishball"}, + ], + }, + tyrantrum: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L1", "7L26", "6L26"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + bide: ["7L12", "6L12"], + bite: ["8L16", "7L17", "6L17"], + block: ["7T", "6T"], + bodyslam: ["8M"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M"], + charm: ["8M", "8L12", "7L20", "6L20"], + closecombat: ["8M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L32", "7L34", "6L34"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dracometeor: ["8T", "7T", "6T"], + dragonclaw: ["8M", "8L36", "7M", "7L37", "6M", "6L37"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T"], + dragontail: ["8L20", "7M", "7L30", "6M", "6L30"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L48", "7M", "7L47", "6M", "6L47"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + firefang: ["8M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "8L60", "7M", "7L68", "6M", "6L75"], + headsmash: ["8L66", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["8M"], + honeclaws: ["6M"], + horndrill: ["8L54", "7L53", "6L53"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + icefang: ["8M"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lashout: ["8T"], + meteorbeam: ["8T"], + outrage: ["8M", "7T", "6T"], + playrough: ["8M"], + protect: ["8M", "7M", "6M"], + psychicfangs: ["8M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["8L1", "7M", "7L1", "6M", "6L6"], + rockblast: ["8M"], + rockpolish: ["7M", "6M"], + rockslide: ["8M", "8L28", "7M", "7L1", "6M", "6L68"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "7L15", "6T", "6L15"], + stomp: ["8L24", "7L1", "6L10"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + tailwhip: ["8L1", "7L1", "6L1"], + thrash: ["8L42", "7L42", "6L42"], + thunderfang: ["8M"], + toxic: ["7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + amaura: { + learnset: { + ancientpower: ["8L8", "7L26", "6L26"], + aquatail: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + aurorabeam: ["8L24", "7L20", "6L20"], + auroraveil: ["8E"], + avalanche: ["8M", "7L34", "6L34"], + barrier: ["7E", "6E"], + blizzard: ["8M", "8L52", "7M", "7L65", "6M", "6L65"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M"], + discharge: ["8E", "7E", "6E"], + doubleteam: ["7M", "6M"], + dragontail: ["7M", "6M"], + dreameater: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + echoedvoice: ["7M", "6M"], + encore: ["8M", "8L4", "7L44", "6L44"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + freezedry: ["8L36"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + growl: ["8L1", "7L1", "6L1", "6S0"], + hail: ["8M", "8L48", "7M", "7L38", "6M", "6L38"], + haze: ["8E", "7E", "6E"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "8L56", "7M", "7L57", "6M", "6L57"], + hypervoice: ["8M", "7T", "6T"], + icebeam: ["8M", "8L40", "7M", "7L50", "6M", "6L50"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L44", "7M", "7L47", "6M", "6L47"], + magnetrise: ["7T", "7E", "6T", "6E"], + meteorbeam: ["8T"], + mirrorcoat: ["8E", "7E", "6E"], + mist: ["8L20", "7L18", "6L18"], + mudshot: ["8M"], + naturepower: ["8L32", "7M", "7L41", "6M", "6L41"], + outrage: ["8M", "7T", "6T"], + powdersnow: ["8L1", "7L1", "6L1", "6S0"], + protect: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rockthrow: ["8E", "7L10", "6L10", "6S0"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "8L16", "7M", "7L30", "6M", "6L30"], + safeguard: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + takedown: ["8E", "7L15", "6L15"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "8L28", "7M", "7L5", "6M", "6L5", "6S0"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 10, isHidden: true, moves: ["growl", "powdersnow", "thunderwave", "rockthrow"], pokeball: "cherishball"}, + ], + }, + aurorus: { + learnset: { + ancientpower: ["8L1", "7L26", "6L26"], + aquatail: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + aurorabeam: ["8L24", "7L20", "6L20"], + avalanche: ["8M", "7L34", "6L34"], + blizzard: ["8M", "8L60", "7M", "7L74", "6M", "6L74"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + dragontail: ["7M", "6M"], + dreameater: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "7M", "6M"], + echoedvoice: ["7M", "6M"], + encore: ["8M", "8L1", "7L46", "6L46"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + freezedry: ["8L36", "7L1", "6L1"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + growl: ["8L1", "7L1", "6L1"], + hail: ["8M", "8L54", "7M", "7L38", "6M", "6L38"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "8L66", "7M", "7L63", "6M", "6L63"], + hypervoice: ["8M", "7T", "6T"], + icebeam: ["8M", "8L42", "7M", "7L56", "6M", "6L56"], + iciclespear: ["8M"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L48", "7M", "7L50", "6M", "6L50"], + magnetrise: ["7T", "6T"], + meteorbeam: ["8T"], + mist: ["8L20", "7L18", "6L18"], + mudshot: ["8M"], + naturepower: ["8L32", "7M", "7L43", "6M", "6L43"], + outrage: ["8M", "7T", "6T"], + powdersnow: ["8L1", "7L1", "6L1"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rockthrow: ["7L1", "6L10"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "8L16", "7M", "7L30", "6M", "6L30"], + safeguard: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + takedown: ["7L15", "6L15"], + thunder: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "8L28", "7M", "7L1", "6M", "6L5"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + sylveon: { + learnset: { + attract: ["8M", "7M", "6M"], + babydolleyes: ["9L15", "8L15", "7L9", "6S1"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "7S2", "6M"], + celebrate: ["6S0"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + dig: ["9M", "8M", "6M"], + disarmingvoice: ["9M", "9L0", "8L0", "7L1", "6L1", "6S1"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L30", "8M", "8L30", "7L20", "7S2", "6L20", "6S1"], + echoedvoice: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + fairywind: ["7L1", "6L9", "6S0"], + faketears: ["9M", "8M"], + flash: ["6M"], + focusenergy: ["8M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + growl: ["9L1", "8L1"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "6S0"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "7S2", "6M"], + hypervoice: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41"], + lightscreen: ["9M", "9L25", "8M", "8L25", "7M", "7L33", "6M", "6L33"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "9L35", "8M", "8L35", "7L29", "6L29"], + moonblast: ["9L50", "8L50", "7L37", "6L37"], + mudslap: ["9M"], + mysticalfire: ["8M"], + payday: ["8M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M"], + psychup: ["9L45", "8L45", "7M", "7L45", "6M", "6L45"], + psyshock: ["9M", "8M", "7M", "7S2", "6M"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "6S1"], + raindance: ["9M", "8M", "7M", "6M"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + roar: ["9M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S0"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + skillswap: ["9M", "9L40", "8M", "8L40", "7T", "7L25", "6T", "6L25"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "9L20", "8M", "8L20", "7L17", "6L17"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M", "9L1", "8L1"], + telekinesis: ["7T"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + weatherball: ["9M", "8M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 6, level: 10, moves: ["celebrate", "helpinghand", "sandattack", "fairywind"], pokeball: "cherishball"}, + {generation: 6, level: 10, gender: "F", moves: ["disarmingvoice", "babydolleyes", "quickattack", "drainingkiss"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["hyperbeam", "drainingkiss", "psyshock", "calmmind"], pokeball: "cherishball"}, + ], + }, + hawlucha: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M"], + aerialace: ["9M", "9L12", "8L12", "7M", "7L16", "6M", "6L16"], + agility: ["9M", "8M", "7E", "6E"], + allyswitch: ["8M", "7T", "7E", "6E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + batonpass: ["9M", "8M", "7E", "6E"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + bounce: ["9L28", "8M", "8L28", "7T", "7L32", "6T", "6L32"], + bravebird: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "7M", "6M"], + bulkup: ["9M", "8M", "7M", "6M"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + crosschop: ["9E", "8E"], + cut: ["6M"], + defog: ["9E", "8E", "7T"], + detect: ["9L8", "8L8", "7L1", "6L1"], + dig: ["9M", "8M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "8M", "7T", "6T"], + dualchop: ["7T", "6T"], + dualwingbeat: ["9M", "8T"], + encore: ["9M", "9L16", "8M", "8L16", "7L20", "6L20"], + endeavor: ["9L52", "8L52", "7T", "7L36", "6T", "6L36"], + endure: ["9M", "8M"], + entrainment: ["9E", "8E", "7E", "6E"], + facade: ["9M", "8M", "7M", "6M"], + falseswipe: ["9M", "8M", "7M", "6M"], + featherdance: ["9L20", "8L20", "7L40", "6L40"], + feint: ["9E", "8E", "7E"], + firepunch: ["9M", "8M", "7T", "6T"], + fling: ["9M", "8M", "7M", "7L24", "6M", "6L24"], + fly: ["9M", "8M", "7M", "6M"], + flyingpress: ["9L44", "8L44", "7L28", "6L28"], + focusblast: ["9M", "8M", "7M", "6M"], + focuspunch: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + highjumpkick: ["9L48", "8L48", "7L44", "6L44"], + honeclaws: ["9L1", "8L1", "7L1", "6M", "6L1"], + hyperbeam: ["9M"], + ironhead: ["9M", "8M", "7T", "6T"], + karatechop: ["7L4", "6L4"], + laserfocus: ["7T"], + lastresort: ["7T", "6T"], + lowkick: ["9M", "8M", "7T", "6T"], + lowsweep: ["9M", "8M", "7M", "6M"], + lunge: ["9M"], + meanlook: ["9E", "8E"], + mefirst: ["7E", "6E"], + megakick: ["8M"], + megapunch: ["8M"], + mudsport: ["7E", "6E"], + payback: ["8M", "7M", "6M"], + poisonjab: ["9M", "8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "8M", "7M", "6M"], + roost: ["9L36", "8L36", "7M", "7L12", "6M", "6L12"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + skyattack: ["9L56", "8L56", "7T", "7L48", "6T", "6L48"], + skydrop: ["7M", "7L55", "6M", "6L55"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + submission: ["8L24"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "7L60", "6M", "6L60"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwind: ["7T", "6T"], + takedown: ["9M"], + taunt: ["9M", "9L32", "8M", "8L32", "7M", "6M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + uproar: ["9M"], + uturn: ["9M", "8M", "7M", "6M"], + wingattack: ["9L4", "8L4", "7L8", "6L8"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M", "7M", "6M"], + zenheadbutt: ["9M", "8M", "7T", "6T"], + }, + }, + dedenne: { + learnset: { + aerialace: ["7M", "6M"], + agility: ["9M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + charge: ["9M", "9L10", "8L10", "7L11", "6L11"], + chargebeam: ["9M", "7M", "7L34", "6M", "6L34"], + charm: ["9M", "9L20", "8M", "8L20", "7L14", "6L14"], + confide: ["7M", "6M"], + covet: ["9E", "8E", "7T", "7E", "6T", "6E"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M"], + dig: ["9M", "8M", "6M"], + discharge: ["9L40", "8L40", "7L50", "6L50"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + eerieimpulse: ["9M", "8M", "7E", "6E"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T", "6T"], + endure: ["9M", "8M"], + entrainment: ["9L55", "8L55", "7L39", "6L39"], + facade: ["9M", "8M", "7M", "6M"], + flash: ["6M"], + fling: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M"], + irontail: ["8M", "7T", "6T"], + lastresort: ["7T", "6T"], + lightscreen: ["9M"], + magnetrise: ["9E", "8E", "7T", "6T"], + mistyterrain: ["9M"], + naturalgift: ["7E", "6E"], + nuzzle: ["9L1", "8L1", "7L20", "6L20"], + paraboliccharge: ["9L25", "8L25", "7L17", "6L17"], + playrough: ["9M", "9L45", "8M", "8L45", "7L42", "6L42"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + recycle: ["7T", "6T"], + rest: ["9M", "9L35", "8M", "8L35", "7M", "7L30", "6M", "6L30"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["9L35", "8M", "8L35", "7T", "7L31", "6T", "6L31"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superfang: ["9M", "9L50", "8L50", "7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L5", "8L5", "7L1", "6L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + tearfullook: ["9E", "8E", "7E"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + thunder: ["9M", "9L60", "8M", "8L60", "7M", "7L45", "6M", "6L45"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thunderpunch: ["9M", "8M", "7T", "6T"], + thundershock: ["9L15", "8L15", "7L7", "6L7"], + thunderwave: ["9M", "8M", "7M", "7L23", "6M", "6L23"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M"], + voltswitch: ["9M", "9L30", "8M", "8L30", "7M", "7L26", "6M", "6L26"], + wildcharge: ["9M", "8M", "7M", "6M"], + }, + }, + carbink: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["8M", "7T"], + ancientpower: ["9L20", "8L20", "7L31", "6L31"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], + charm: ["9M", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + earthpower: ["9M", "8M", "7T", "6T"], + endure: ["9M", "8M"], + explosion: ["7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L15", "8L15", "7L35", "6L35"], + flash: ["6M"], + flashcannon: ["9M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M"], + gravity: ["9M", "7T", "6T"], + guardsplit: ["9L5", "8L5", "7L27", "6L27"], + guardswap: ["8M"], + gyroball: ["9M", "8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + heavyslam: ["9M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M"], + irondefense: ["9M", "8M", "7T", "6T"], + ironhead: ["9M"], + lightscreen: ["9M", "9L30", "8M", "8L30", "7M", "7L60", "6M", "6L60"], + magiccoat: ["7T", "6T"], + magnetrise: ["7T", "6T"], + meteorbeam: ["8T"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M"], + moonblast: ["9L55", "8L55", "7L50", "6L50"], + naturepower: ["7M", "6M"], + powergem: ["9M", "9L45", "8M", "8L45", "7L46", "6L46"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "7L18", "6M", "6L18"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockblast: ["9M"], + rockpolish: ["9L25", "8L25", "7M", "6M"], + rockslide: ["9M", "9L35", "8M", "8L35", "7M", "6M"], + rockthrow: ["7L5", "6L5"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "7L70", "6M", "6L70"], + sandstorm: ["9M", "8M", "7M", "6M"], + sandtomb: ["9M", "8M"], + secretpower: ["6M"], + sharpen: ["7L8", "6L8"], + skillswap: ["9M", "9L40", "8M", "8L40", "7T", "7L40", "6T", "6L40"], + sleeptalk: ["9M", "8M", "7M", "6M"], + smackdown: ["9M", "9L10", "8L10", "7M", "7L12", "6M", "6L12"], + snore: ["8M", "7T", "6T"], + spikes: ["9M"], + stealthrock: ["9M", "9L50", "8M", "8L50", "7T", "7L21", "6T", "6L21"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L49", "6M", "6L49"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M", "6M"], + trickroom: ["9M", "8M", "7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + }, + }, + goomy: { + learnset: { + absorb: ["9L1", "8L1", "7L5", "6L5"], + acidarmor: ["7E", "6E"], + attract: ["8M", "7M", "6M"], + bide: ["7L13", "6L13"], + bodyslam: ["9M", "9L45", "8M", "8L45", "7L32", "7S0", "6L32"], + bubble: ["7L1", "6L1"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7S0", "6E"], + curse: ["9L41", "8L41", "7E", "6E"], + doubleteam: ["7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonbreath: ["9L10", "8L10", "7L18", "6L18"], + dragonpulse: ["9M", "9L35", "8M", "8L35", "7T", "7L42", "7S0", "6T", "6L42"], + endure: ["9M", "8M", "7E", "6E"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L20", "8L20", "7L28", "6L28"], + frustration: ["7M", "6M"], + hiddenpower: ["7M", "6M"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7E", "6T", "6E"], + lifedew: ["9E", "8E"], + muddywater: ["9L50", "8M", "8L50", "7L38", "6L38"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "6T"], + poisontail: ["7E", "6E"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "7L9", "6M", "6L9"], + raindance: ["9M", "9L30", "8M", "8L30", "7M", "7L25", "6M", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + watergun: ["9L5", "8L5"], + waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, isHidden: true, moves: ["bodyslam", "dragonpulse", "counter"], pokeball: "cherishball"}, + ], + }, + sliggoo: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L5"], + acidarmor: ["9L1"], + acidspray: ["9M", "9L0", "8L0"], + attract: ["8M", "7M", "6M"], + bide: ["7L13", "6L13"], + blizzard: ["9M", "8M", "7M", "6M"], + bodyslam: ["9M", "9L49", "8M", "8L49", "7L32", "6L32"], + bubble: ["7L1", "6L1"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["9L43", "8L43"], + doubleteam: ["7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonbreath: ["9L1", "8L1", "7L18", "6L18"], + dragonpulse: ["9M", "9L35", "8M", "8L35", "7T", "7L47", "6T", "6L47"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L20", "8L20", "7L28", "6L28"], + frustration: ["7M", "6M"], + hiddenpower: ["7M", "6M"], + icebeam: ["9M", "8M", "7M", "6M"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + muddywater: ["9L56", "8M", "8L56", "7L38", "6L38"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "6T"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "7L9", "6M", "6L9"], + raindance: ["9M", "9L30", "8M", "8L30", "7M", "7L25", "6M", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["9M", "7M", "6M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + sliggoohisui: { + learnset: { + absorb: ["9L1"], + acidarmor: ["9L1"], + acidspray: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + curse: ["9L43"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonpulse: ["9M", "9L35"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L20"], + flashcannon: ["9M"], + gyroball: ["9M"], + heavyslam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M", "9L49"], + muddywater: ["9L56"], + mudshot: ["9M"], + outrage: ["9M"], + protect: ["9M", "9L15"], + raindance: ["9M", "9L30"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + shelter: ["9L0"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + steelbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L25"], + }, + }, + goodra: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L5"], + acidspray: ["9M", "9L1", "8L1"], + aquatail: ["9L0", "8L0", "7T", "7L1", "6T", "6L50"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + bide: ["7L13", "6L13"], + blizzard: ["9M", "8M", "7M", "6M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L49", "8M", "8L49", "7L32", "6L32"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bubble: ["7L1", "6L1"], + bulldoze: ["9M", "8M", "7M", "6M"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["9L43", "8L43"], + doubleteam: ["7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonbreath: ["9L1", "8L1", "7L18", "6L18"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "8M", "8L35", "7T", "7L47", "6T", "6L47"], + dragontail: ["9M", "7M", "6M"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feint: ["9L1", "8L1", "7L1", "6L1"], + fireblast: ["9M", "8M", "7M", "6M"], + firepunch: ["9M", "8M", "7T", "6T"], + flail: ["9L20", "8L20", "7L28", "6L28"], + flamethrower: ["9M", "8M", "7M", "6M"], + focusblast: ["9M", "8M", "7M", "6M"], + focuspunch: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + icebeam: ["9M", "8M", "7M", "6M"], + incinerate: ["6M"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + knockoff: ["9M"], + laserfocus: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + muddywater: ["9L58", "8M", "8L58", "7L38", "6L38"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "7L1", "6T", "6L1"], + poisontail: ["9M", "9L1", "8L1"], + powerwhip: ["9L67", "8M", "8L67", "7L50", "6L55"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "7L1", "6M", "6L9"], + raindance: ["9M", "9L30", "8M", "8L30", "7M", "7L25", "6M", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M", "7M", "6M"], + scald: ["9M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["9M", "8M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thunderpunch: ["9M", "8M", "7T", "6T"], + toxic: ["9M", "7M", "6M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], + weatherball: ["9M", "8M"], + }, + }, + goodrahisui: { + learnset: { + absorb: ["9L1"], + acidspray: ["9M", "9L1"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L49"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + curse: ["9L43"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "9L35"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9L1"], + fireblast: ["9M"], + firepunch: ["9M"], + flail: ["9L20"], + flamethrower: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + heavyslam: ["9M", "9L67"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M", "9L49"], + irontail: ["9L0"], + knockoff: ["9M"], + lashout: ["9M"], + muddywater: ["9L58"], + mudshot: ["9M"], + outrage: ["9M"], + protect: ["9M", "9L15"], + raindance: ["9M", "9L30"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + shelter: ["9L1"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + tearfullook: ["9L1"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L25"], + weatherball: ["9M"], + }, + }, + klefki: { + learnset: { + astonish: ["9L1", "8L1", "7L8", "6L8"], + attract: ["8M", "7M", "6M"], + calmmind: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + craftyshield: ["8L16", "7L23", "6L23"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L24", "8M", "8L24", "7L18", "6L18"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + fairylock: ["9L16", "8L1", "7L1", "6L1"], + fairywind: ["9L8", "8L8", "7L5", "6L5"], + flashcannon: ["9M", "9L36", "8M", "8L36", "7M", "6M"], + foulplay: ["9M", "9L48", "8M", "8L48", "7T", "7L27", "6T", "6L27"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + healblock: ["7L50", "6L50"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + imprison: ["9M", "9L32", "8M", "8L32", "7L36", "6L36"], + irondefense: ["9M", "8M", "7T", "7E", "6T", "6E"], + lastresort: ["9L52", "8L52", "7T", "6T"], + lightscreen: ["9M", "8M", "7M", "6M"], + lockon: ["7E", "6E"], + magiccoat: ["7T", "6T"], + magicroom: ["9L44", "8M", "8L44", "7T", "7L44", "6T", "6L44"], + magnetrise: ["9E", "8E", "7T", "6T"], + metalsound: ["9L20", "8L20", "7L12", "6L12"], + mirrorshot: ["7L34", "6L34"], + mistyterrain: ["9M", "8M"], + playrough: ["9M", "9L40", "8M", "8L40", "7L43", "6L43"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + recycle: ["9L28", "8L28", "7T", "7L40", "6T", "6L40"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandstorm: ["9M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + spikes: ["9M", "8M", "7L15", "6L15"], + steelbeam: ["9M", "8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + switcheroo: ["9E", "8E", "7E", "6E"], + tackle: ["9L4", "8L4", "7L1", "6L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7E", "6M", "6E"], + thunderwave: ["9M", "8M", "7M", "6M"], + torment: ["9L12", "8L12", "7M", "7L32", "6M", "6L32"], + toxic: ["7M", "6M"], + trickroom: ["9M"], + }, + }, + phantump: { + learnset: { + allyswitch: ["9E", "8M", "7T"], + astonish: ["9L1", "8L1", "7L5", "6L5"], + attract: ["8M", "7M", "6M"], + bestow: ["7E", "6E"], + branchpoke: ["9L4", "8L4"], + bulldoze: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L12", "8L12", "7L1", "6L1"], + curse: ["9L32", "8L32", "7L28", "6L28"], + cut: ["6M"], + darkpulse: ["9M", "8M", "7M", "6M"], + destinybond: ["9L48", "8L48", "7L39", "6L39"], + dig: ["9M", "8M", "6M"], + disable: ["9E", "8E"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + feintattack: ["7L19", "6L19"], + forestscurse: ["9L52", "8L52", "7L35", "6L35"], + foulplay: ["9M", "8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "8M", "7T", "6T"], + grassknot: ["9M", "8M", "7M", "6M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growth: ["9L24", "8L24", "7L8", "6L8"], + grudge: ["8E", "7E", "6E"], + hex: ["9M", "9L20", "8M", "8L20"], + hiddenpower: ["7M", "6M"], + hornleech: ["9L28", "8L28", "7L54", "6L54"], + imprison: ["9M", "8M", "7E", "6E"], + ingrain: ["9L40", "8L40", "7L13", "6L13"], + lashout: ["9M"], + leechseed: ["9L8", "8L8", "7L23", "6L23"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T"], + naturepower: ["7M", "6M"], + nightshade: ["9M"], + painsplit: ["7T", "6T"], + phantomforce: ["9M", "9L36", "8M", "8L36", "7L45", "6L45"], + poisonjab: ["9M", "8M", "7M", "6M"], + poltergeist: ["9M", "8T"], + poweruppunch: ["7E"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "8M", "7M", "6M"], + skillswap: ["9M", "8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + spite: ["9M", "7T", "6T"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + suckerpunch: ["9E", "8E"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T"], + trickroom: ["9M", "8M", "7M", "6M"], + venomdrench: ["8M", "7E", "6E"], + willowisp: ["9M", "9L16", "8M", "8L16", "7M", "7L31", "6M", "6L31"], + woodhammer: ["9L44", "8L44", "7L49", "6L49"], + worryseed: ["7T", "6T"], + }, + }, + trevenant: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L1", "6L5"], + attract: ["8M", "7M", "6M"], + block: ["7T", "6T"], + branchpoke: ["9L1", "8L1"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M"], + burningjealousy: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L12", "8L12", "7L1", "6L1"], + curse: ["9L32", "8L32", "7L28", "6L28"], + cut: ["6M"], + darkpulse: ["9M", "8M", "7M", "6M"], + destinybond: ["9L48", "8L48", "7L39", "6L39"], + dig: ["9M", "8M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "8M", "7T", "6T"], + dreameater: ["7M", "6M"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + feintattack: ["7L19", "6L19"], + focusblast: ["9M", "8M", "7M", "6M"], + forestscurse: ["9L52", "8L52", "7L35", "6L35"], + foulplay: ["9M", "8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "8M", "7T", "6T"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growth: ["9L24", "8L24", "7L1", "6L8"], + haze: ["9M"], + hex: ["9M", "9L20", "8M", "8L20"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hornleech: ["9L28", "8L28", "7L1", "6L1"], + hyperbeam: ["9M", "8M", "7M", "6M"], + imprison: ["9M", "8M"], + ingrain: ["9L40", "8L40", "7L13", "6L13"], + knockoff: ["9M"], + lashout: ["9M"], + leafstorm: ["9M", "8M"], + leechseed: ["9L1", "8L1", "7L23", "6L23"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T"], + naturepower: ["7M", "6M"], + nightshade: ["9M"], + painsplit: ["7T", "6T"], + phantomforce: ["9M", "9L36", "8M", "8L36", "7L45", "6L45"], + poisonjab: ["9M", "8M", "7M", "6M"], + poltergeist: ["9M", "8T"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L55"], + skillswap: ["9M", "8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + spite: ["9M", "7T", "6T"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["9M", "7M", "6M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T"], + trickroom: ["9M", "8M", "7M", "6M"], + venomdrench: ["8M"], + willowisp: ["9M", "9L16", "8M", "8L16", "7M", "7L31", "6M", "6L31"], + woodhammer: ["9L44", "8L44", "7L49", "6L49"], + worryseed: ["7T", "6T"], + xscissor: ["9M", "8M", "7M", "6M"], + }, + }, + pumpkaboo: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + bestow: ["7E", "6E"], + bulletseed: ["8M", "8L20", "7L26", "6L26"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["8L8", "7L1", "6L1"], + curse: ["8E", "7E"], + darkpulse: ["8M", "7M", "6M"], + destinybond: ["8E", "7E", "6E"], + disable: ["8E", "7E", "6E"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + explosion: ["7M", "6M"], + facade: ["8M", "7M", "6M"], + fireblast: ["8M", "7M", "6M"], + flamecharge: ["7M", "6M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["8M", "7T", "6T"], + grassknot: ["8M", "7M", "6M"], + grassyglide: ["8T"], + gyroball: ["8M", "7M", "6M"], + hex: ["8M"], + hiddenpower: ["7M", "6M"], + imprison: ["8M"], + incinerate: ["6M"], + leechseed: ["8L16", "7L20", "6L20"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + mysticalfire: ["8M"], + naturepower: ["7M", "6M"], + painsplit: ["8L44", "7T", "7L42", "6T", "6L42"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + razorleaf: ["8L12", "7L16", "6L16"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["8M", "8L24", "7L4", "6L4"], + secretpower: ["6M"], + seedbomb: ["8M", "8L32", "7T", "7L48", "6T", "6L48"], + shadowball: ["8M", "8L36", "7M", "7L36", "6M", "6L36"], + shadowsneak: ["8L4", "7L30", "6L30"], + skillswap: ["8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snore: ["8M"], + solarbeam: ["8M", "7M", "6M"], + spite: ["7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["7T", "6T"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "8L40", "7T", "7L1", "6T", "6L1"], + trickortreat: ["8L1", "7L23", "6L6"], + trickroom: ["8M", "7M", "6M"], + willowisp: ["8M", "7M", "6M"], + worryseed: ["8L28", "7T", "7L11", "6T", "6L11"], + }, + }, + pumpkaboosuper: { + learnset: { + astonish: ["6S0"], + scaryface: ["6S0"], + shadowsneak: ["6S0"], + trickortreat: ["6S0"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["trickortreat", "astonish", "scaryface", "shadowsneak"], pokeball: "cherishball"}, + ], + }, + gourgeist: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + brutalswing: ["8M"], + bulletseed: ["8M", "8L20", "7L26", "6L26"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L1", "6L1"], + darkpulse: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + explosion: ["8L1", "7M", "7L1", "6M", "6L1"], + facade: ["8M", "7M", "6M"], + fireblast: ["8M", "7M", "6M"], + flamecharge: ["7M", "6M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + focusblast: ["8M", "7M", "6M"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["8M", "7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + grassyglide: ["8T"], + gyroball: ["8M", "7M", "6M"], + hex: ["8M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + imprison: ["8M"], + incinerate: ["6M"], + leechseed: ["8L16", "7L20", "6L20"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + moonblast: ["8L1"], + mysticalfire: ["8M"], + nastyplot: ["8M"], + naturepower: ["7M", "6M"], + painsplit: ["8L44", "7T", "7L42", "6T", "6L42"], + phantomforce: ["8M", "8L48", "7L1", "6L1"], + poltergeist: ["8T"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + razorleaf: ["8L12", "7L16", "6L16"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["8M", "8L24", "7L1", "6L4"], + secretpower: ["6M"], + seedbomb: ["8M", "8L32", "7T", "7L48", "6T", "6L48"], + shadowball: ["8M", "8L36", "7M", "7L36", "6M", "6L36"], + shadowsneak: ["8L1", "7L30", "6L30"], + skillswap: ["8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snore: ["8M"], + solarbeam: ["8M", "7M", "6M"], + spite: ["7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["7T", "6T"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "8L40", "7T", "7L1", "6T", "6L1"], + trickortreat: ["8L1", "7L23", "6L6"], + trickroom: ["8M", "7M", "6M"], + willowisp: ["8M", "7M", "6M"], + worryseed: ["8L28", "7T", "7L11", "6T", "6L11"], + }, + }, + bergmite: { + learnset: { + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + auroraveil: ["9E", "8E"], + avalanche: ["9M", "9L18", "8M", "8L18", "7L39", "6L39"], + barrier: ["7E", "6E"], + bite: ["9L21", "8L21", "7L1", "6L1"], + blizzard: ["9M", "9L39", "8M", "8L39", "7M", "7L43", "6M", "6L43"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L33", "8M", "8L33"], + curse: ["9L9", "8L9", "7L22", "6L22"], + doubleedge: ["9L42", "8L42", "7L49", "6L49"], + doubleteam: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + gyroball: ["9M", "8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + iceball: ["7L30", "6L30"], + icebeam: ["9M", "8M", "7M", "6M"], + icefang: ["9M", "9L24", "8M", "8L24", "7L26", "6L26"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L12", "8M", "8L12", "7T", "7L10", "6T", "6L10"], + irondefense: ["9M", "9L27", "8M", "8L27", "7T", "6T"], + mirrorcoat: ["9E", "8E", "7E", "6E"], + mist: ["9E", "8E", "7E", "6E"], + powdersnow: ["9L6", "8L6", "7L5", "6L5"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rapidspin: ["9L1", "8L1", "7L35", "6L35"], + recover: ["9L30", "8L30", "7L47", "7E", "6L47", "6E"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockpolish: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + secretpower: ["6M"], + sharpen: ["7L20", "6L20"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L3", "8L3", "7L1", "6L1"], + takedown: ["9M", "9L36", "8L36", "7L15", "6L15"], + terablast: ["9M"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + }, + }, + avalugg: { + learnset: { + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + avalanche: ["9M", "9L18", "8M", "8L18", "7L42", "6L42"], + bite: ["9L21", "8L21", "7L1", "6L1"], + blizzard: ["9M", "9L41", "8M", "8L41", "7M", "7L46", "6M", "6L46"], + block: ["7T", "6T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L0", "8M", "8L0", "7L1"], + bulldoze: ["9M", "8M", "7M", "6M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L33", "8M", "8L33", "7L1", "6L1"], + curse: ["9L9", "8L9", "7L22", "6L22"], + doubleedge: ["9L46", "8L46", "7L56", "6L56"], + doubleteam: ["7M", "6M"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["9M", "8M", "7M", "6M"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gyroball: ["9M", "8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + iceball: ["7L30", "6L30"], + icebeam: ["9M", "8M", "7M", "6M"], + icefang: ["9M", "9L24", "8M", "8L24", "7L26", "6L26"], + icespinner: ["9M"], + iciclecrash: ["9L51"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L12", "8M", "8L12", "7T", "7L10", "6T", "6L10"], + irondefense: ["9M", "9L27", "8M", "8L27", "7T", "7L1", "6T", "6L1"], + ironhead: ["9M", "8M", "7T", "6T"], + powdersnow: ["9L1", "8L1", "7L1", "6L5"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rapidspin: ["9L1", "8L1", "7L35", "6L35"], + recover: ["9L30", "8L30", "7L51", "6L51"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockpolish: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + sharpen: ["7L20", "6L20"], + skullbash: ["8L51", "7L1", "6L1"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M", "9L36", "8L36", "7L15", "6L15"], + terablast: ["9M"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + wideguard: ["9L1", "8L1", "7L1"], + }, + }, + avalugghisui: { + learnset: { + avalanche: ["9M", "9L18"], + bite: ["9L21"], + blizzard: ["9M", "9L41"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M", "9L33"], + curse: ["9L9"], + dig: ["9M"], + doubleedge: ["9L46"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9M"], + harden: ["9L1"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M", "9L24"], + icespinner: ["9M"], + iciclespear: ["9M"], + icywind: ["9M", "9L12"], + irondefense: ["9M", "9L27"], + ironhead: ["9M"], + mountaingale: ["9L61"], + powdersnow: ["9L1"], + protect: ["9M", "9L15"], + raindance: ["9M"], + rapidspin: ["9L1"], + recover: ["9L30"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L0"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L51"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + wideguard: ["9L1"], + }, + }, + noibat: { + learnset: { + absorb: ["9L1", "8L1", "7L5"], + acrobatics: ["9M", "8M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + agility: ["9M", "8M", "7L18", "6L18"], + aircutter: ["9M", "9L24", "8L24", "7L23", "6L23"], + airslash: ["9M", "9L36", "8M", "8L36", "7L48", "6L48"], + attract: ["8M", "7M", "6M"], + bite: ["9L20", "8L20", "7L13", "6L13"], + brickbreak: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["9M", "8M", "7M", "6M"], + defog: ["9E", "8E", "7T"], + doubleteam: ["9L12", "8L12", "7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "8M", "7T", "6T"], + dragonrush: ["9E", "8E"], + dreameater: ["7M", "6M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + fly: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gust: ["9L4", "8L4", "7L11", "6L11"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M", "9L52", "8M", "8L52", "7L58", "6L58"], + hypervoice: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + leechlife: ["9M", "8M", "7M", "6L5"], + outrage: ["9M", "8M", "7T", "7E", "6T", "6E"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + razorwind: ["7L31", "6L31"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L44", "8L44", "7M", "7L27", "6M", "6L27"], + round: ["8M", "7M", "6M"], + screech: ["9L40", "8M", "8L40", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "8M", "7M", "6M"], + skyattack: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steelwing: ["8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superfang: ["9M", "9L32", "8L32", "7T", "7L43", "6T", "6L43"], + supersonic: ["9L8", "8L8", "7L1", "6L1"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + switcheroo: ["9E", "7E", "6E"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwind: ["9M", "9L49", "8L49", "7T", "7L35", "7E", "6T", "6L35", "6E"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["9M", "8M", "7T", "6T"], + uturn: ["9M", "8M", "7M", "6M"], + waterpulse: ["7T", "6T"], + whirlwind: ["9L28", "8L28", "7L40", "6L40"], + wildcharge: ["9M", "8M", "7M", "6M"], + wingattack: ["9L16", "8L16", "7L16", "6L16"], + xscissor: ["9M", "8M", "7M", "6M"], + }, + }, + noivern: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + acrobatics: ["9M", "8M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + agility: ["9M", "8M", "7L18", "6L18"], + aircutter: ["9M", "9L24", "8L24", "7L23", "6L23"], + airslash: ["9M", "9L36", "8M", "8L36", "7L53", "6L53"], + attract: ["8M", "7M", "6M"], + bite: ["9L20", "8L20", "7L13", "6L13"], + bodyslam: ["9M"], + boomburst: ["9L62", "8L62", "7L1", "6L1"], + brickbreak: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["9M", "8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["9L12", "8L12", "7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonclaw: ["9M", "8M", "7M", "6M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1"], + dragontail: ["9M"], + dreameater: ["7M", "6M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flamethrower: ["9M", "8M", "7M", "6M"], + fly: ["9M", "8M", "7M", "6M"], + focusblast: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gust: ["9L1", "8L1", "7L11", "6L11"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hurricane: ["9M", "9L56", "8M", "8L56", "7L1", "6L1"], + hyperbeam: ["9M", "8M", "7M", "6M"], + hypervoice: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["7T"], + leechlife: ["9M", "8M", "7M", "6L5"], + moonlight: ["9L1", "8L1", "7L1", "6L1"], + outrage: ["9M", "8M", "7T", "6T"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + razorwind: ["7L31", "6L31"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L44", "8L44", "7M", "7L27", "6M", "6L27"], + round: ["8M", "7M", "6M"], + scaryface: ["9M"], + screech: ["9L40", "8M", "8L40", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "8M", "7M", "6M"], + skyattack: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steelwing: ["8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superfang: ["9M", "9L32", "8L32", "7T", "7L43", "6T", "6L43"], + supersonic: ["9L1", "8L1", "7L1", "6L1"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwind: ["9M", "9L51", "8L51", "7T", "7L35", "6T", "6L35"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["9M", "8M", "7T", "6T"], + uturn: ["9M", "8M", "7M", "6M"], + waterpulse: ["9M", "7T", "6T"], + whirlwind: ["9L28", "8L28", "7L40", "6L40"], + wildcharge: ["9M", "8M", "7M", "6M"], + wingattack: ["9L16", "8L16", "7L16", "6L16"], + xscissor: ["9M", "8M", "7M", "6M"], + }, + }, + xerneas: { + learnset: { + aromatherapy: ["8L25", "7L1", "6L1", "6S1"], + aurorabeam: ["8L10", "7L10", "6L10"], + block: ["7T", "6T"], + bodyslam: ["8M"], + calmmind: ["8M", "7M", "6M"], + closecombat: ["8M", "8L75", "7L80", "6L80"], + confide: ["7M", "6M"], + cut: ["6M"], + dazzlinggleam: ["8M", "8S5", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "7S4", "6M", "6S1"], + frustration: ["7M", "6M"], + geomancy: ["8L55", "7L26", "7S2", "7S3", "7S4", "6L26", "6S0", "6S1"], + gigaimpact: ["8M", "8L85", "7M", "7L88", "6M", "6L88"], + grassknot: ["8M", "7M", "7S4", "6M"], + gravity: ["8L1", "7T", "7L18", "6T", "6L18", "6S0"], + hail: ["8M", "7M", "6M"], + healpulse: ["8L65", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + hornleech: ["8L35", "8S5", "7L55", "7S2", "7S3", "6L55"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + ingrain: ["8L45", "8S5", "7L1", "6L1"], + laserfocus: ["7T"], + lightscreen: ["8M", "8L5", "7M", "7L5", "6M", "6L5"], + megahorn: ["8M", "8L70", "7L44", "6L44", "6S0"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L40", "7L63", "6L63"], + moonblast: ["8L60", "8S5", "7L35", "7S2", "7S3", "7S4", "6L35", "6S0", "6S1"], + naturepower: ["8L15", "7M", "7L72", "6M", "6L72"], + nightslash: ["8L20", "7L51", "7S2", "7S3", "6L51"], + outrage: ["8M", "8L80", "7T", "7L93", "6T", "6L93"], + playrough: ["8M"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["8L30", "7M", "7L59", "6M", "6L59"], + psyshock: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tackle: ["8L1"], + takedown: ["8L50", "7L1", "6L1"], + terrainpulse: ["8T"], + thunder: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["gravity", "geomancy", "moonblast", "megahorn"]}, + {generation: 6, level: 100, shiny: true, moves: ["geomancy", "moonblast", "aromatherapy", "focusblast"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["geomancy", "hornleech", "nightslash", "moonblast"]}, + {generation: 7, level: 60, moves: ["geomancy", "hornleech", "nightslash", "moonblast"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["geomancy", "focusblast", "grassknot", "moonblast"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["ingrain", "dazzlinggleam", "moonblast", "hornleech"]}, + ], + eventOnly: true, + }, + yveltal: { + learnset: { + acrobatics: ["8M", "7M", "6M"], + aerialace: ["7M", "6M"], + airslash: ["8M", "8L35", "7L10", "6L10"], + block: ["7T", "6T"], + bodyslam: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["8M", "8L40", "7M", "7L44", "7S2", "7S3", "7S4", "6M", "6L44", "6S0", "6S1"], + defog: ["7T"], + disable: ["8L15", "7L35", "6L35", "6S0"], + doubleteam: ["8L1", "7M", "7L5", "6M", "6L5"], + dragonclaw: ["8M", "7M", "6M"], + dragonrush: ["8L65", "8S5", "7L63", "6L63"], + dreameater: ["7M", "6M"], + dualwingbeat: ["8T"], + embargo: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + fly: ["8M", "7M", "6M"], + focusblast: ["8M", "8L75", "7M", "7L72", "6M", "6L72"], + foulplay: ["8M", "8L60", "7T", "7L51", "6T", "6L51", "6S1"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + gust: ["8L1"], + heatwave: ["8M", "7T", "7S4", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hurricane: ["8M", "8L70", "7L1", "6L1"], + hyperbeam: ["8M", "8L85", "7M", "7L88", "6M", "6L88"], + hypervoice: ["8M", "7T", "6T"], + knockoff: ["7T", "6T"], + laserfocus: ["7T"], + lashout: ["8T"], + oblivionwing: ["8L50", "8S5", "7L26", "7S2", "7S3", "7S4", "6L26", "6S0", "6S1"], + payback: ["8M"], + phantomforce: ["8M", "8L55", "7L55", "7S2", "7S3", "6L55"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "8L45", "7M", "7L59", "7S2", "7S3", "6M", "6L59"], + raindance: ["8M", "7M", "6M"], + razorwind: ["7L1", "6L1"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + roost: ["8L30", "7M", "7L1", "6M", "6L1"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M"], + shadowclaw: ["8M", "7M", "6M"], + skyattack: ["8L80", "7T", "7L93", "6T", "6L93"], + skydrop: ["7M", "6M"], + sleeptalk: ["8M", "7M", "6M"], + snarl: ["8M", "8L10", "7M", "7L18", "6M", "6L18", "6S0"], + snore: ["8M", "7T", "6T"], + steelwing: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M"], + suckerpunch: ["8L20", "8S5", "7L80", "6L80", "6S1"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailwind: ["8L25", "7T", "7S4", "6T"], + taunt: ["8M", "8L5", "8S5", "7M", "7L1", "6M", "6L1"], + thief: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["snarl", "oblivionwing", "disable", "darkpulse"]}, + {generation: 6, level: 100, shiny: true, moves: ["oblivionwing", "suckerpunch", "darkpulse", "foulplay"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["oblivionwing", "darkpulse", "phantomforce", "psychic"]}, + {generation: 7, level: 60, moves: ["oblivionwing", "darkpulse", "phantomforce", "psychic"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["oblivionwing", "darkpulse", "heatwave", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["taunt", "oblivionwing", "dragonrush", "suckerpunch"]}, + ], + eventOnly: true, + }, + zygarde: { + learnset: { + bind: ["8L1", "8S9", "7T", "7L18", "7S2", "7S3", "7S4", "6T", "6L18"], + bite: ["8L1", "7L1", "6L1"], + block: ["7T", "6T"], + bodyslam: ["8M"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L1", "7M", "7L1", "6M", "6L1"], + camouflage: ["7L59", "6L59", "6S0"], + coil: ["8L72", "7L72", "6L80"], + confide: ["7M", "6M"], + coreenforcer: ["8L1", "7T"], + crunch: ["8M", "8L32", "7L51", "6L51", "6S0"], + dig: ["8M", "8L16", "7L10", "7S2", "6M", "6L10"], + doubleteam: ["7M", "6M"], + dracometeor: ["8T", "7T", "6T"], + dragonbreath: ["8L1", "7L1", "7S5", "7S6", "6L1"], + dragondance: ["8M", "7T", "7S7", "7S8", "6L72"], + dragonpulse: ["8M", "8L40", "8S9", "7T", "7L63", "6T", "6L63", "6S0"], + dragontail: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L80", "7M", "7L55", "6M", "6L55", "6S0"], + endure: ["8M"], + extremespeed: ["7T", "7S7", "7S8", "6L88", "6S1"], + facade: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + glare: ["8L56", "7L1", "7S5", "7S6", "6L1", "6S1"], + grassknot: ["8M", "7M", "6M"], + haze: ["8L8", "7L44", "7S3", "7S4", "6L44"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + landswrath: ["8L48", "8S9", "7L26", "7S2", "7S3", "7S4", "7S5", "7S6", "6L26", "6S1"], + outrage: ["8M", "8L88", "7T", "7L80", "7S7", "7S8", "6T", "6L93", "6S1"], + painsplit: ["7T", "6T"], + payback: ["8M"], + protect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "8L24", "7M", "7L5", "7S2", "7S5", "7S6", "6M", "6L5"], + sandstorm: ["8M", "8L64", "7M", "7L35", "7S3", "7S4", "6M", "6L35"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + swift: ["8M"], + thousandarrows: ["8L1", "8S9", "7T", "7S7", "7S8"], + thousandwaves: ["8L1", "7T"], + toxic: ["7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 70, moves: ["crunch", "earthquake", "camouflage", "dragonpulse"]}, + {generation: 6, level: 100, moves: ["landswrath", "extremespeed", "glare", "outrage"], pokeball: "cherishball"}, + {generation: 7, level: 30, moves: ["safeguard", "dig", "bind", "landswrath"]}, + {generation: 7, level: 50, moves: ["bind", "landswrath", "sandstorm", "haze"]}, + {generation: 7, level: 50, isHidden: true, moves: ["bind", "landswrath", "sandstorm", "haze"]}, + {generation: 7, level: 60, shiny: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: true, isHidden: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, + {generation: 7, level: 100, shiny: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, + {generation: 7, level: 100, shiny: true, isHidden: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, isHidden: true, moves: ["thousandarrows", "landswrath", "dragonpulse", "bind"]}, + ], + eventOnly: true, + }, + zygarde10: { + learnset: { + bind: ["8S5", "7S0", "7S1", "7S2"], + dig: ["7S0", "7S2"], + dragonbreath: ["7S3"], + dragondance: ["7S4"], + dragonpulse: ["8S5"], + extremespeed: ["7S4"], + glare: ["7S3"], + haze: ["7S1"], + landswrath: ["8S5", "7S0", "7S1", "7S2", "7S3"], + outrage: ["7S4"], + safeguard: ["7S0", "7S2", "7S3"], + sandstorm: ["7S1"], + thousandarrows: ["8S5", "7S4"], + }, + eventData: [ + {generation: 7, level: 30, moves: ["safeguard", "dig", "bind", "landswrath"]}, + {generation: 7, level: 50, isHidden: true, moves: ["bind", "landswrath", "sandstorm", "haze"]}, + {generation: 7, level: 50, isHidden: true, moves: ["safeguard", "dig", "bind", "landswrath"]}, + {generation: 7, level: 60, shiny: true, isHidden: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, + {generation: 7, level: 100, shiny: true, isHidden: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, isHidden: true, moves: ["thousandarrows", "landswrath", "dragonpulse", "bind"]}, + ], + eventOnly: true, + }, + diancie: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["8M"], + amnesia: ["9M", "8M"], + ancientpower: ["9L28", "8L28", "7L27", "6L31"], + batonpass: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], + charm: ["9M", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + diamondstorm: ["9L1", "8L91", "7L50", "6L50", "6S0", "6S1"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "8M"], + earthpower: ["9M", "8M", "7T", "6T"], + encore: ["9M", "8M"], + endeavor: ["7T", "6T"], + endure: ["9M", "8M"], + explosion: ["7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + faketears: ["9M", "8M"], + flail: ["9L21", "8L21", "7L31", "6L35"], + flash: ["6M"], + flashcannon: ["9M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gravity: ["9M", "7T", "6T"], + guardsplit: ["9L7", "8L7", "7L21", "6L27"], + guardswap: ["8M"], + gyroball: ["9M", "8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + irondefense: ["9M", "8M", "7T", "6T"], + lastresort: ["7T", "6T"], + lightscreen: ["9M", "9L42", "8M", "8L42", "7M", "7L60", "6M", "6L60"], + magnetrise: ["7T", "6T"], + meteorbeam: ["8T"], + metronome: ["9M", "8M"], + mistyexplosion: ["9M", "8T"], + moonblast: ["9L77", "8L77", "7L50", "6L50", "6S0", "6S1"], + mysticalfire: ["8M"], + naturepower: ["7M", "6M"], + playrough: ["9M", "8M"], + powergem: ["9M", "9L63", "8M", "8L63", "7L40"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "8M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "7L12", "6M", "6L18", "6S0", "6S1"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M", "6S0", "6S1"], + rockpolish: ["9L35", "8L35", "7M", "6M"], + rockslide: ["9M", "9L49", "8M", "8L49", "7M", "6M"], + rockthrow: ["7L1", "6L5"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "7L70", "6M", "6L70"], + sandstorm: ["9M", "8M", "7M", "6M"], + sandtomb: ["9M", "8M"], + secretpower: ["6M"], + sharpen: ["7L5", "6L8"], + skillswap: ["9M", "9L56", "8M", "8L56", "7T", "7L35", "6T", "6L40"], + sleeptalk: ["9M", "8M", "7M", "6M"], + smackdown: ["9M", "9L14", "8L14", "7M", "7L8", "6M", "6L12"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + spikes: ["9M"], + stealthrock: ["9M", "9L70", "8M", "8L70", "7T", "7L18", "6T", "6L21"], + stoneedge: ["9M", "9L84", "8M", "8L84", "7M", "7L49", "6M", "6L49"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M", "6M"], + trickroom: ["9M", "8M", "7M", "7L46", "6M", "6L46"], + wonderroom: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["diamondstorm", "reflect", "return", "moonblast"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: true, moves: ["diamondstorm", "moonblast", "reflect", "return"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + hoopa: { + learnset: { + allyswitch: ["9L1", "7T", "7L1", "6L1"], + astonish: ["9L6", "7L6", "6L6", "6S0"], + block: ["7T", "6T"], + brickbreak: ["9M", "7M", "6M"], + calmmind: ["9M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L1", "6L1"], + covet: ["7T", "6T"], + darkpulse: ["9M", "9L55", "7M", "7L55", "6L55"], + destinybond: ["9L1", "7L1", "6L1"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dreameater: ["7M", "6M"], + dualchop: ["7T", "6T"], + embargo: ["7M", "6M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + firepunch: ["9M", "7T", "6T"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focusblast: ["9M", "7M", "6M"], + focuspunch: ["9M", "7T", "6T"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + gravity: ["9M", "7T", "6T"], + guardsplit: ["9L29", "7L29", "6L29"], + gunkshot: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "7M", "6M"], + hyperspacefury: ["9L85", "7L1", "6L1"], + hyperspacehole: ["9L85", "7L1", "7S1", "6L1", "6S0"], + icepunch: ["9M", "7T", "6T"], + knockoff: ["9M", "9L46", "7T", "7L46", "6T", "6L46"], + laserfocus: ["7T"], + lashout: ["9M"], + lastresort: ["7T", "6T"], + lightscreen: ["9M", "9L15", "7M", "7L15", "6M", "6L15"], + magiccoat: ["7T", "7L10", "6T", "6L10"], + magicroom: ["7T", "6T"], + nastyplot: ["9M", "9L68", "7L68", "7S1", "6L68", "6S0"], + phantomforce: ["9M", "9L35", "7L35", "6L35"], + powersplit: ["9L29", "7L29", "6L29"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L19", "7L19", "6L15"], + psychic: ["9M", "9L75", "7M", "7L75", "7S1", "6M", "6L75", "6S0"], + psychicterrain: ["9M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "7M", "6M"], + quash: ["7M", "6M"], + raindance: ["9M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + rocktomb: ["9M"], + roleplay: ["7T", "6T"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + sandstorm: ["9M"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "9L55", "7M", "7L55", "7S1", "6M", "6L55"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["9M", "9L25", "7T", "7L25", "6T", "6L25"], + sleeptalk: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + throatchop: ["7T"], + thunderbolt: ["9M", "7M", "6M"], + thunderpunch: ["9M", "7T", "6T"], + thunderwave: ["9M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["9M", "9L10", "7T", "7L1", "6T", "6L1"], + trickroom: ["9M", "9L50", "7M", "7L50", "6M", "6L50"], + uproar: ["7T", "6T"], + wonderroom: ["9L50", "7T", "7L50", "6T", "6L50"], + zenheadbutt: ["9M", "9L46", "7T", "7L46", "6T", "6L46"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["hyperspacehole", "nastyplot", "psychic", "astonish"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["shadowball", "nastyplot", "psychic", "hyperspacehole"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + hoopaunbound: { + eventOnly: true, + }, + volcanion: { + learnset: { + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7L46", "6L46"], + brickbreak: ["9M", "8M", "7M", "6M"], + bulldoze: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + defog: ["7T"], + dig: ["9M"], + doubleteam: ["7M", "6M"], + earthpower: ["9M", "8M", "7T", "6T"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + explosion: ["9L90", "8L90", "7M", "7L76", "6M", "6L76", "6S1"], + facade: ["9M", "8M", "7M", "6M"], + fireblast: ["9M", "8M", "7M", "6M"], + firefang: ["9M"], + firespin: ["9M", "9L1", "8M", "8L1"], + flamecharge: ["9M", "9L18", "8L18", "7M", "7L15", "6M", "6L15"], + flamethrower: ["9M", "8M", "7M", "6M", "6S1"], + flareblitz: ["9M", "9L78", "8M", "8L78", "8S2", "7L1", "6L1"], + flashcannon: ["9M", "8M", "7M", "6M"], + fling: ["9M", "8M", "7M", "6M"], + focusblast: ["9M", "8M", "7M", "6M"], + focusenergy: ["8M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gyroball: ["9M", "8M", "7M", "6M"], + haze: ["9M", "9L60", "8L60", "8S2", "7L11", "6L11"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "8M", "7T", "6T"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L66", "8M", "8L66", "7L50", "6L50", "6S0", "6S1"], + hyperbeam: ["9M", "8M", "7M", "6M"], + incinerate: ["9L36", "8L36", "8S2", "6M"], + leer: ["9L6", "8L6"], + liquidation: ["9M", "8M", "7T"], + mist: ["9L60", "8L60", "7L8", "6L8", "6S0"], + mistyterrain: ["9M", "8M"], + mudshot: ["9M", "8M"], + overheat: ["9M", "9L84", "8M", "8L84", "7M", "7L65", "6M", "6L65", "6S0"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["9M", "7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M"], + round: ["8M", "7M", "6M"], + sandstorm: ["9M", "8M", "7M", "6M"], + scald: ["9M", "9L48", "8M", "8L48", "7M", "7L32", "6M", "6L32"], + scaryface: ["9M", "9L30", "8M", "8L30"], + scorchingsands: ["8T"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["9M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steameruption: ["9L1", "8L72", "8S2", "7L1", "6L1", "6S0", "6S1"], + stomp: ["9L42", "8L42", "7L28", "6L28"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + takedown: ["9M", "9L54", "8L54", "7L1", "6L1"], + taunt: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + toxic: ["7M", "6M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L24", "8L24", "7T", "7L21", "6T", "6L21"], + weatherball: ["9M", "9L12", "8M", "8L12", "7L40", "6L40"], + wildcharge: ["9M"], + willowisp: ["9M", "8M", "7M", "6M"], + }, + eventData: [ + {generation: 6, level: 70, moves: ["steameruption", "overheat", "hydropump", "mist"], pokeball: "cherishball"}, + {generation: 6, level: 70, moves: ["steameruption", "flamethrower", "hydropump", "explosion"], pokeball: "cherishball"}, + {generation: 8, level: 60, moves: ["steameruption", "flareblitz", "incinerate", "haze"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + rowlet: { + learnset: { + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + astonish: ["9L6", "8L6", "7L11"], + attract: ["8M", "7M"], + batonpass: ["8M", "7E"], + bravebird: ["9M", "9L36", "8M", "8L36", "7L43"], + bulletseed: ["9M"], + confide: ["7M"], + confuseray: ["9M", "9E", "8E", "7E"], + covet: ["7T"], + curse: ["7E"], + defog: ["9E", "8E", "7T", "7E"], + doubleteam: ["9E", "8E", "7M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + featherdance: ["9L33", "8L33", "7L39"], + foresight: ["7L18"], + frustration: ["7M"], + furyattack: ["7L29"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L4"], + haze: ["9M", "7E"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + knockoff: ["9M", "9E", "8E"], + leafage: ["9L3", "8L3", "7L1"], + leafblade: ["9L30", "8M", "8L30", "7L36"], + leafstorm: ["9M"], + lightscreen: ["9M", "8M", "7M"], + magicalleaf: ["9M"], + nastyplot: ["9M", "9L24", "8M", "8L24", "7L46"], + naturepower: ["7M"], + nightshade: ["9M"], + ominouswind: ["7L16", "7E"], + peck: ["9L9", "8L9", "7L8"], + pluck: ["9L21", "8L21", "7L22"], + protect: ["9M", "8M", "7M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["9E", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + shadowclaw: ["9M", "8M", "7M"], + shadowsneak: ["9L12", "8L12"], + skyattack: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + steelwing: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L27", "8L27", "7L32"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L18", "8L18", "7T", "7L25"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + workup: ["8M", "7M"], + worryseed: ["7T"], + }, + }, + dartrix: { + learnset: { + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + astonish: ["9L1", "8L1", "7L11"], + attract: ["8M", "7M"], + batonpass: ["9M", "8M"], + bravebird: ["9M", "9L50", "8M", "8L50", "7L51"], + bulletseed: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + covet: ["7T"], + defog: ["7T"], + doubleteam: ["7M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + featherdance: ["9L45", "8L45", "7L46"], + foresight: ["7L19"], + frustration: ["7M"], + furyattack: ["7L33"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L1"], + haze: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + knockoff: ["9M"], + leafage: ["9L1", "8L1", "7L1"], + leafblade: ["9L40", "8M", "8L40", "7L42"], + leafstorm: ["9M"], + lightscreen: ["9M", "8M", "7M"], + magicalleaf: ["9M"], + nastyplot: ["9M", "9L30", "8M", "8L30", "7L55"], + naturepower: ["7M"], + nightshade: ["9M"], + ominouswind: ["7L16"], + peck: ["9L9", "8L9", "7L1"], + pluck: ["9L25", "8L25", "7L24"], + protect: ["9M", "8M", "7M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + shadowclaw: ["9M", "8M", "7M"], + shadowsneak: ["9L12", "8L12"], + skyattack: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + steelwing: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L35", "8L35", "7L37"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L20", "8L20", "7T", "7L28"], + tackle: ["9L1", "8L1", "7L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + workup: ["8M", "7M"], + worryseed: ["7T"], + }, + }, + decidueye: { + learnset: { + acrobatics: ["9M", "8M", "7M"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + astonish: ["9L1", "8L1", "7L11"], + attract: ["8M", "7M"], + batonpass: ["9M", "8M"], + bravebird: ["9M", "9L58", "8M", "8L58", "7L55", "7S0"], + bulletseed: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + covet: ["7T"], + defog: ["7T"], + doubleteam: ["7M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + featherdance: ["9L51", "8L51", "7L49"], + foresight: ["7L19"], + frenzyplant: ["9M", "8T", "7T"], + frustration: ["7M"], + furyattack: ["7L33"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L1"], + haze: ["9M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + knockoff: ["9M"], + laserfocus: ["7T"], + leafage: ["9L1", "8L1", "7L1"], + leafblade: ["9L44", "8M", "8L44", "7L44", "7S0"], + leafstorm: ["9M", "9L1", "8M", "8L1", "7L1"], + lightscreen: ["9M", "8M", "7M"], + lowkick: ["9M"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M"], + nastyplot: ["9M", "9L30", "8M", "8L30", "7L60"], + naturepower: ["7M"], + nightshade: ["9M"], + ominouswind: ["7L16"], + peck: ["9L9", "8L9", "7L1"], + phantomforce: ["9M", "9L1", "8M", "8L1", "7L1", "7S0"], + pluck: ["9L25", "8L25", "7L24"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M"], + psychocut: ["8M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + shadowball: ["9M", "8M", "7M"], + shadowclaw: ["9M", "8M", "7M"], + shadowsneak: ["9L12", "8L12", "7L1", "7S0"], + skittersmack: ["8T"], + skyattack: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + solarblade: ["9M", "8M"], + spiritshackle: ["9L0", "8L0", "7L1"], + spite: ["9M", "9L1", "8L1", "7T"], + steelwing: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L37", "8L37", "7L38"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L20", "8L20", "7T", "7L28"], + tackle: ["9L1", "8L1", "7L1"], + tailwind: ["9M", "7T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + uturn: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + workup: ["8M", "7M"], + worryseed: ["7T"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["leafblade", "phantomforce", "shadowsneak", "bravebird"], pokeball: "pokeball"}, + ], + }, + decidueyehisui: { + learnset: { + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aurasphere: ["9M"], + batonpass: ["9M"], + bravebird: ["9M", "9L58"], + brickbreak: ["9M"], + bulkup: ["9M", "9L30"], + bulletseed: ["9M"], + closecombat: ["9M"], + confuseray: ["9M"], + dualwingbeat: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + featherdance: ["9L51"], + focusblast: ["9M"], + focuspunch: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1"], + haze: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + knockoff: ["9M"], + leafage: ["9L1"], + leafblade: ["9L44"], + leafstorm: ["9M", "9L1"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + peck: ["9L9"], + pluck: ["9L25"], + protect: ["9M"], + raindance: ["9M"], + razorleaf: ["9L15"], + rest: ["9M"], + reversal: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9L12"], + sleeptalk: ["9M"], + smackdown: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L37"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + synthesis: ["9L20"], + tackle: ["9L1"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + triplearrows: ["9L0"], + uturn: ["9M", "9L1"], + }, + }, + litten: { + learnset: { + acrobatics: ["8M", "7M"], + attract: ["8M", "7M"], + bite: ["8L15", "7L22"], + bodyslam: ["8M", "7E"], + bulkup: ["8M", "7M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["8M", "7E"], + doublekick: ["8L18", "7L16"], + doubleteam: ["7M"], + ember: ["8L3", "7L1"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["8E", "7E"], + fireblast: ["8M", "7M"], + firefang: ["8M", "8L21", "7L14"], + firepledge: ["8T", "7T"], + firespin: ["8M"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L30", "7M", "7L36"], + flareblitz: ["8M", "8L36", "7L43"], + frustration: ["7M"], + furyswipes: ["8L12", "7L29"], + growl: ["8L1", "7L4"], + heatwave: ["8M", "7T", "7E"], + hiddenpower: ["7M"], + leechlife: ["8M", "7M"], + leer: ["7L11"], + lick: ["8L6", "7L8"], + nastyplot: ["8M", "7E"], + outrage: ["8M", "7T", "7L46"], + overheat: ["8M", "7M"], + partingshot: ["8E"], + payday: ["8M"], + powertrip: ["8E", "7E"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M", "7E"], + roar: ["8L9", "7M", "7L18"], + round: ["8M", "7M"], + scaryface: ["8M", "8L24", "7L39"], + scratch: ["8L1", "7L1"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["8L27", "7M", "7L25"], + swordsdance: ["8M", "7M"], + taunt: ["8M", "7M"], + thrash: ["8L33", "7L32"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + }, + torracat: { + learnset: { + acrobatics: ["8M", "7M"], + attract: ["8M", "7M"], + bite: ["8L15", "7L24"], + bodyslam: ["8M"], + bulkup: ["8M", "7M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["8M"], + doublekick: ["8L20", "7L16"], + doubleteam: ["7M"], + dualchop: ["7T"], + ember: ["8L1", "7L1"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + firefang: ["8M", "8L25", "7L14"], + firepledge: ["8T", "7T"], + firespin: ["8M"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L40", "7M", "7L42"], + flareblitz: ["8M", "8L50", "7L51"], + frustration: ["7M"], + furyswipes: ["8L12", "7L33"], + growl: ["8L1", "7L1"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + leechlife: ["8M", "7M"], + leer: ["7L11"], + lick: ["8L1", "7L1"], + nastyplot: ["8M"], + outrage: ["8M", "7T", "7L55"], + overheat: ["8M", "7M"], + payday: ["8M"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + roar: ["8L9", "7M", "7L19"], + round: ["8M", "7M"], + scaryface: ["8M", "8L30", "7L46"], + scratch: ["8L1", "7L1"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["8L35", "7M", "7L28"], + swordsdance: ["8M", "7M"], + taunt: ["8M", "7M"], + thrash: ["8L45", "7L37"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + }, + incineroar: { + learnset: { + acrobatics: ["8M", "7M"], + assurance: ["8M"], + attract: ["8M", "7M"], + bind: ["7T"], + bite: ["8L15", "7L24"], + blastburn: ["8T", "7T"], + blazekick: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "8L1", "7M", "7L1"], + bulldoze: ["8M", "7M"], + burningjealousy: ["8T"], + closecombat: ["8M"], + confide: ["7M"], + covet: ["7T"], + crosschop: ["8L1", "7L66"], + crunch: ["8M"], + darkestlariat: ["8M", "8L0", "7L1", "7S0"], + darkpulse: ["8M", "7M"], + doublekick: ["8L20", "7L16"], + doubleteam: ["7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + embargo: ["7M"], + ember: ["8L1", "7L1"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["7S0"], + fireblast: ["8M", "7M"], + firefang: ["8M", "8L25", "7L14"], + firepledge: ["8T", "7T"], + firepunch: ["8M", "7T"], + firespin: ["8M"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L44", "7M", "7L44"], + flareblitz: ["8M", "8L58", "7L55", "7S0"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + furyswipes: ["8L12", "7L33"], + gigaimpact: ["8M", "7M"], + growl: ["8L1", "7L1"], + heatcrash: ["8M"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + lashout: ["8T"], + leechlife: ["8M", "7M"], + leer: ["7L11"], + lick: ["8L1", "7L1"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["8M"], + outrage: ["8M", "7T", "7L60"], + overheat: ["8M", "7M"], + payday: ["8M"], + protect: ["8M", "7M"], + quash: ["7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["8L9", "7M", "7L19"], + round: ["8M", "7M"], + scaryface: ["8M", "8L30", "7L49"], + scorchingsands: ["8T"], + scratch: ["8L1", "7L1"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["8L32", "7M", "7L28"], + swordsdance: ["8M", "7M"], + taunt: ["8M", "7M"], + thrash: ["8L51", "7L38"], + throatchop: ["8M", "8L1", "7T", "7L1"], + thunderpunch: ["8M", "7T"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M", "7S0"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["fakeout", "uturn", "darkestlariat", "flareblitz"], pokeball: "pokeball"}, + ], + }, + popplio: { + learnset: { + acrobatics: ["8M", "7M"], + amnesia: ["8M", "7E"], + aquajet: ["8L9", "7L14"], + aquaring: ["8E", "7E"], + aquatail: ["7T"], + aromaticmist: ["7E"], + attract: ["8M", "7M"], + babydolleyes: ["8L12", "7L11"], + blizzard: ["8M", "7M"], + brine: ["8M"], + bubblebeam: ["8L21", "7L22"], + captivate: ["7L39"], + charm: ["8M", "7E"], + confide: ["7M"], + covet: ["7T"], + disarmingvoice: ["8L6", "7L8"], + dive: ["8M"], + doubleslap: ["7L29"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + encore: ["8M", "8L24", "7L18"], + endure: ["8M"], + facade: ["8M", "7M"], + flipturn: ["8T"], + frustration: ["7M"], + growl: ["8L1", "7L4"], + hail: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L36", "7L43"], + hypervoice: ["8M", "8L30", "7T", "7L32"], + icebeam: ["8M", "7M"], + icywind: ["8M", "8L15", "7T", "7L16"], + irontail: ["8M", "7T"], + lifedew: ["8E"], + mistyterrain: ["8M", "8L27", "7L46"], + moonblast: ["8L33", "7L36"], + perishsong: ["8E", "7E"], + playrough: ["8M"], + pound: ["8L1", "7L1"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + sing: ["8L18", "7L25"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L3", "7L1"], + waterpledge: ["8T", "7T"], + waterpulse: ["7T"], + whirlpool: ["8M"], + wonderroom: ["8M", "7T", "7E"], + workup: ["8M", "7M"], + }, + }, + brionne: { + learnset: { + acrobatics: ["8M", "7M"], + amnesia: ["8M"], + aquajet: ["8L9", "7L14"], + aquatail: ["7T"], + attract: ["8M", "7M"], + babydolleyes: ["8L12", "7L11"], + blizzard: ["8M", "7M"], + brine: ["8M"], + bubblebeam: ["8L25", "7L24"], + captivate: ["7L46"], + charm: ["8M"], + confide: ["7M"], + covet: ["7T"], + disarmingvoice: ["8L1", "7L1"], + dive: ["8M"], + doubleslap: ["7L33"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + encore: ["8M", "8L30", "7L19"], + endure: ["8M"], + facade: ["8M", "7M"], + flipturn: ["8T"], + frustration: ["7M"], + growl: ["8L1", "7L1"], + hail: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L50", "7L51"], + hypervoice: ["8M", "8L40", "7T", "7L37"], + icebeam: ["8M", "7M"], + icywind: ["8M", "8L15", "7T", "7L16"], + irontail: ["8M", "7T"], + mistyterrain: ["8M", "8L35", "7L55"], + moonblast: ["8L45", "7L42"], + playrough: ["8M"], + pound: ["8L1", "7L1"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + sing: ["8L20", "7L28"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpledge: ["8T", "7T"], + waterpulse: ["7T"], + whirlpool: ["8M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + }, + primarina: { + learnset: { + acrobatics: ["8M", "7M"], + amnesia: ["8M"], + aquajet: ["8L9", "7L14"], + aquatail: ["7T"], + attract: ["8M", "7M"], + babydolleyes: ["8L12", "7L11"], + blizzard: ["8M", "7M"], + brine: ["8M"], + bubblebeam: ["8L25", "7L24"], + calmmind: ["8M"], + captivate: ["7L49"], + charm: ["8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["8M", "7M"], + disarmingvoice: ["8L1", "7L1"], + dive: ["8M"], + doubleslap: ["7L33"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + encore: ["8M", "8L30", "7L19"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + flipturn: ["8T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + growl: ["8L1", "7L1"], + hail: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hydrocannon: ["8T", "7T"], + hydropump: ["8M", "8L58", "7L55"], + hyperbeam: ["8M"], + hypervoice: ["8M", "8L44", "7T", "7L38", "7S0"], + icebeam: ["8M", "7M"], + icywind: ["8M", "8L15", "7T", "7L16", "7S0"], + irontail: ["8M", "7T"], + lightscreen: ["8M", "7M"], + liquidation: ["8M", "7T"], + magiccoat: ["7T"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L37", "7L60"], + moonblast: ["8L51", "7L44", "7S0"], + perishsong: ["7S0"], + playrough: ["8M"], + pound: ["8L1", "7L1"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychup: ["7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + shadowball: ["8M", "7M"], + sing: ["8L20", "7L28"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + sparklingaria: ["8L0", "7L1"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpledge: ["8T", "7T"], + waterpulse: ["7T"], + weatherball: ["8M"], + whirlpool: ["8M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["hypervoice", "moonblast", "icywind", "perishsong"], pokeball: "pokeball"}, + ], + }, + pikipek: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + boomburst: ["7E"], + bravebird: ["7E"], + brickbreak: ["7M"], + bulletseed: ["7L31"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + drillpeck: ["7L27"], + echoedvoice: ["7M", "7L7"], + featherdance: ["7L33"], + flamecharge: ["7M"], + fly: ["7M"], + frustration: ["7M"], + furyattack: ["7L21"], + growl: ["7L3"], + gunkshot: ["7T"], + heatwave: ["7T"], + hiddenpower: ["7M"], + hypervoice: ["7T", "7L37"], + knockoff: ["7T"], + mirrormove: ["7E"], + peck: ["7L1"], + pluck: ["7L15"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + rocksmash: ["7L9"], + roost: ["7M", "7L19"], + round: ["7M"], + screech: ["7L25"], + skyattack: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + supersonic: ["7L13"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwind: ["7T", "7E"], + thief: ["7M"], + toxic: ["7M"], + uproar: ["7T", "7E"], + uturn: ["7M"], + workup: ["7M"], + }, + }, + trumbeak: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + brickbreak: ["7M"], + bulletseed: ["7L37"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + drillpeck: ["7L32"], + echoedvoice: ["7M", "7L1"], + featherdance: ["7L40"], + flamecharge: ["7M"], + fly: ["7M"], + frustration: ["7M"], + furyattack: ["7L24"], + growl: ["7L1"], + gunkshot: ["7T"], + heatwave: ["7T"], + hiddenpower: ["7M"], + hypervoice: ["7T", "7L45"], + knockoff: ["7T"], + peck: ["7L1"], + pluck: ["7L16"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + rockblast: ["7L1"], + rocksmash: ["7L1"], + roost: ["7M", "7L21"], + round: ["7M"], + screech: ["7L29"], + skyattack: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + supersonic: ["7L13"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwind: ["7T"], + thief: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + workup: ["7M"], + }, + }, + toucannon: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + beakblast: ["7L1"], + brickbreak: ["7M"], + bulletseed: ["7L40"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + drillpeck: ["7L34"], + echoedvoice: ["7M", "7L1"], + featherdance: ["7L44"], + flamecharge: ["7M"], + flashcannon: ["7M"], + fly: ["7M"], + frustration: ["7M"], + furyattack: ["7L24"], + growl: ["7L1"], + gunkshot: ["7T"], + heatwave: ["7T"], + hiddenpower: ["7M"], + hypervoice: ["7T", "7L50"], + knockoff: ["7T"], + overheat: ["7M"], + peck: ["7L1"], + pluck: ["7L16"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + rockblast: ["7L1"], + rocksmash: ["7L1"], + roost: ["7M", "7L21"], + round: ["7M"], + screech: ["7L30"], + seedbomb: ["7T"], + skyattack: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + supersonic: ["7L13"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwind: ["7T"], + thief: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + workup: ["7M"], + }, + encounters: [ + {generation: 7, level: 26}, + ], + }, + yungoos: { + learnset: { + attract: ["7M"], + bide: ["7L16"], + bite: ["9L19", "7L19"], + bulldoze: ["9M"], + chillingwater: ["9M"], + confide: ["7M"], + crunch: ["9M", "9L34", "7L34"], + dig: ["9M"], + doubleteam: ["7M"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["9E", "7T"], + endure: ["9M"], + facade: ["9M", "7M"], + firefang: ["9M", "9E", "7E"], + frustration: ["7M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperfang: ["7L37"], + icefang: ["9M", "9E", "7E"], + irontail: ["7T"], + lastresort: ["9E", "7T", "7E"], + leer: ["9L3", "7L3"], + mudshot: ["9M"], + mudslap: ["9M", "9L22", "7L22"], + odorsleuth: ["7L13"], + payback: ["9L7", "7M"], + protect: ["9M", "7M"], + psychicfangs: ["9M"], + pursuit: ["7L7"], + raindance: ["9M"], + rest: ["9M", "9L43", "7M", "7L46"], + return: ["7M"], + revenge: ["7E"], + reversal: ["9M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandattack: ["9L10", "7L10"], + sandstorm: ["9M", "7M"], + scaryface: ["9M", "9L31", "7L31"], + seedbomb: ["9M"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M"], + sunnyday: ["9M"], + superfang: ["9M", "9L25", "7T", "7L25"], + swagger: ["7M"], + tackle: ["9L1", "7L1"], + takedown: ["9M", "9L28", "7L28"], + taunt: ["9M", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thrash: ["9L40", "7L43"], + thunderfang: ["9M", "9E", "7E"], + torment: ["7M"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["7T"], + uturn: ["9M", "7M"], + wildcharge: ["9M"], + workup: ["9L13", "7M"], + yawn: ["9L37", "7L40"], + zenheadbutt: ["9M"], + }, + }, + gumshoos: { + learnset: { + attract: ["7M"], + bide: ["7L16"], + bite: ["9L19", "7L19"], + block: ["7T"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M"], + chillingwater: ["9M"], + confide: ["7M"], + crunch: ["9M", "9L39", "7L39"], + dig: ["9M"], + doubleteam: ["7M"], + dualchop: ["7T"], + earthquake: ["9M", "7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M"], + facade: ["9M", "7M"], + firefang: ["9M"], + firepunch: ["9M", "7T"], + fling: ["9M", "7M"], + focuspunch: ["9M"], + frustration: ["7M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + hyperfang: ["7L43"], + icefang: ["9M"], + icepunch: ["9M", "7T"], + ironhead: ["9M", "7T"], + irontail: ["7T"], + knockoff: ["9M"], + lastresort: ["7T"], + leer: ["9L1", "7L1"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "9L23", "7L23"], + odorsleuth: ["7L13"], + payback: ["9L1", "7M"], + protect: ["9M", "7M"], + psychicfangs: ["9M"], + pursuit: ["7L1"], + raindance: ["9M"], + rest: ["9M", "9L52", "7M", "7L55"], + return: ["7M"], + reversal: ["9M"], + roar: ["9M", "7M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandattack: ["9L1", "7L1"], + sandstorm: ["9M", "7M"], + scaryface: ["9M", "9L35", "7L35"], + seedbomb: ["9M"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M"], + sunnyday: ["9M"], + superfang: ["9M", "9L27", "7T", "7L27"], + swagger: ["7M"], + tackle: ["9L1", "7L1"], + takedown: ["9M", "9L31", "7L31"], + taunt: ["9M", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thrash: ["9L47", "7L51"], + thunderfang: ["9M"], + thunderpunch: ["9M", "7T"], + torment: ["7M"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["7T"], + uturn: ["9M", "7M"], + wildcharge: ["9M"], + workup: ["9L13", "7M"], + yawn: ["9L43", "7L47"], + zenheadbutt: ["9M", "7T"], + }, + encounters: [ + {generation: 7, level: 17}, + ], + }, + gumshoostotem: { + learnset: { + attract: ["7M"], + bide: ["7L16", "7S0"], + bite: ["7L19", "7S0"], + block: ["7T"], + bulldoze: ["7M"], + confide: ["7M"], + crunch: ["7L39"], + doubleteam: ["7M"], + dualchop: ["7T"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + facade: ["7M"], + firepunch: ["7T"], + fling: ["7M"], + frustration: ["7M"], + hiddenpower: ["7M"], + hyperfang: ["7L43"], + icepunch: ["7T"], + ironhead: ["7T"], + irontail: ["7T"], + lastresort: ["7T"], + leer: ["7L1"], + mudslap: ["7L23"], + odorsleuth: ["7L13", "7S0"], + payback: ["7M"], + protect: ["7M"], + pursuit: ["7L1"], + rest: ["7M", "7L55"], + return: ["7M"], + roar: ["7M"], + rocktomb: ["7M"], + round: ["7M"], + sandattack: ["7L1", "7S0"], + sandstorm: ["7M"], + scaryface: ["7L35"], + shockwave: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + stompingtantrum: ["7T"], + substitute: ["7M"], + superfang: ["7T", "7L27"], + swagger: ["7M"], + tackle: ["7L1"], + takedown: ["7L31"], + taunt: ["7M"], + thief: ["7M"], + thrash: ["7L51"], + thunderpunch: ["7T"], + torment: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + workup: ["7M"], + yawn: ["7L47"], + zenheadbutt: ["7T"], + }, + eventData: [ + {generation: 7, level: 20, perfectIVs: 3, moves: ["sandattack", "odorsleuth", "bide", "bite"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + grubbin: { + learnset: { + acrobatics: ["8M", "7M", "7L19"], + attract: ["8M", "7M"], + batonpass: ["9M"], + bite: ["9L15", "8L15", "7L10"], + bugbite: ["9M", "9L10", "8L10", "7T", "7L13"], + charge: ["9M"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + crunch: ["9M", "9L35", "8M", "8L35", "7L22"], + dig: ["9M", "9L40", "8M", "8L40", "7L28"], + discharge: ["9E", "8E"], + doubleteam: ["7M"], + electricterrain: ["9M"], + electroweb: ["8M", "7T", "7E"], + endure: ["9M", "8M", "7E"], + facade: ["9M", "8M", "7M"], + frustration: ["7M"], + harden: ["9E", "8E", "7E"], + hiddenpower: ["7M"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], + magnetrise: ["7T"], + mudshot: ["9M", "8M", "7E"], + mudslap: ["9M", "9L1", "8L1", "7L7"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + screech: ["8M"], + shockwave: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L21", "8L21", "7L16"], + stickyweb: ["9L25", "8L25"], + stringshot: ["9L5", "8L5", "7L4"], + strugglebug: ["9M"], + substitute: ["9M", "8M", "7M"], + swagger: ["7M"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], + toxic: ["7M"], + visegrip: ["9L1", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + xscissor: ["9M", "9L30", "8M", "8L30", "7M", "7L25"], + }, + }, + charjabug: { + learnset: { + acrobatics: ["8M", "7M", "7L19"], + attract: ["8M", "7M"], + batonpass: ["9M"], + bite: ["9L15", "8L15", "7L1"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L13"], + charge: ["9M", "9L0", "8L0", "7L1"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + crunch: ["9M", "9L43", "8M", "8L43", "7L25"], + dig: ["9M", "9L50", "8M", "8L50", "7L37"], + discharge: ["9L64", "8L64", "7L43"], + doubleteam: ["7M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frustration: ["7M"], + hiddenpower: ["7M"], + irondefense: ["9M", "9L57", "8M", "8L57", "7T", "7L49"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], + magnetrise: ["7T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + screech: ["8M"], + shockwave: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L23", "8L23", "7L16"], + stickyweb: ["9L29", "8L29"], + stringshot: ["9L1", "8L1", "7L1"], + strugglebug: ["9M"], + substitute: ["9M", "8M", "7M"], + swagger: ["7M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], + toxic: ["7M"], + visegrip: ["9L1", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + xscissor: ["9M", "9L36", "8M", "8L36", "7M", "7L31"], + }, + }, + vikavolt: { + learnset: { + acrobatics: ["9M", "8M", "7M", "7L19"], + agility: ["9M", "9L57", "8M", "8L57", "7L49"], + airslash: ["9M", "8M", "7L1"], + attract: ["8M", "7M"], + batonpass: ["9M"], + bite: ["9L15", "8L15", "7L1"], + bugbite: ["9M", "9L1", "8L1", "7T", "7L13"], + bugbuzz: ["9M", "9L36", "8M", "8L36", "7L31"], + bulldoze: ["9M"], + charge: ["9M", "9L1", "8L1", "7L1"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + crunch: ["9M", "9L1", "8M", "8L1"], + dig: ["9M", "9L1", "8M", "8L1", "7L37"], + discharge: ["9L1", "8L1"], + doubleteam: ["7M"], + dualwingbeat: ["8T"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M", "8M", "7M"], + fly: ["9M", "9L50", "8M", "8L50"], + frustration: ["7M"], + gigaimpact: ["9M", "8M", "7M"], + guillotine: ["9L43", "8L43", "7L25"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], + magnetrise: ["7T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + roost: ["7M"], + round: ["8M", "7M"], + screech: ["8M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skittersmack: ["8T"], + skydrop: ["7M"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + spark: ["9L23", "8L23", "7L16"], + stickyweb: ["9L29", "8L29"], + stringshot: ["9L1", "8L1", "7L1"], + strugglebug: ["9M"], + substitute: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "9L0", "8M", "8L0", "7M", "7L1"], + thunderwave: ["9M", "8M", "7M"], + toxic: ["7M"], + visegrip: ["9L1", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + xscissor: ["9M", "9L1", "8M", "8L1", "7M"], + zapcannon: ["9L64", "8L64", "7L41"], + }, + }, + vikavolttotem: { + learnset: { + acrobatics: ["7M", "7L19", "7S0"], + agility: ["7L49"], + airslash: ["7L1"], + attract: ["7M"], + bite: ["7L1"], + bugbite: ["7T", "7L13"], + bugbuzz: ["7L31", "7S0"], + charge: ["7L1"], + chargebeam: ["7M"], + confide: ["7M"], + dig: ["7L37"], + doubleteam: ["7M"], + electroweb: ["7T"], + energyball: ["7M"], + facade: ["7M"], + flashcannon: ["7M"], + frustration: ["7M"], + gigaimpact: ["7M"], + guillotine: ["7L25", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + irondefense: ["7T"], + laserfocus: ["7T"], + lightscreen: ["7M"], + magnetrise: ["7T"], + mudslap: ["7L1"], + poisonjab: ["7M"], + protect: ["7M"], + raindance: ["7M"], + rest: ["7M"], + return: ["7M"], + roost: ["7M"], + round: ["7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skydrop: ["7M"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + spark: ["7L16", "7S0"], + stringshot: ["7L1"], + substitute: ["7M"], + swagger: ["7M"], + thunder: ["7M"], + thunderbolt: ["7M", "7L1"], + thunderwave: ["7M"], + toxic: ["7M"], + visegrip: ["7L1"], + voltswitch: ["7M"], + wildcharge: ["7M"], + xscissor: ["7M"], + zapcannon: ["7L41"], + }, + eventData: [ + {generation: 7, level: 35, perfectIVs: 3, moves: ["spark", "acrobatics", "guillotine", "bugbuzz"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + crabrawler: { + learnset: { + amnesia: ["9M", "7E"], + attract: ["7M"], + bodyslam: ["9M"], + brickbreak: ["9M", "9L22", "7M"], + brutalswing: ["7M"], + bubble: ["7L1"], + bubblebeam: ["9L13", "7L17"], + bulkup: ["9M", "7M"], + bulldoze: ["9M", "7M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L49", "7L49"], + confide: ["7M"], + crabhammer: ["9L37", "7L37"], + dig: ["9M"], + dizzypunch: ["7L25"], + doubleteam: ["7M"], + drainpunch: ["9M", "7T"], + dualchop: ["7T"], + dynamicpunch: ["9L45", "7L45"], + earthquake: ["9M", "7M"], + endeavor: ["9E", "7T", "7E"], + endure: ["9M"], + facade: ["9M", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M", "7M"], + focuspunch: ["9M", "9E", "7T"], + frostbreath: ["7M"], + frustration: ["7M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + icepunch: ["9M", "7T"], + irondefense: ["9M", "9L42", "7T", "7L42"], + ironhead: ["9M", "7T"], + knockoff: ["9M"], + leer: ["9L9", "7L9"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9L29", "7M", "7L29"], + poweruppunch: ["7L22"], + protect: ["9M", "9L17", "7M"], + pursuit: ["7L13"], + raindance: ["9M", "7M"], + rest: ["9M", "7M"], + return: ["7M"], + reversal: ["9M", "9L33", "7L33"], + rockslide: ["9M", "7M"], + rocksmash: ["9L5", "7L5"], + rocktomb: ["9M", "7M"], + round: ["7M"], + scald: ["7M"], + slam: ["9L25"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + stompingtantrum: ["9M"], + stoneedge: ["7M"], + substitute: ["9M", "7M"], + sunnyday: ["9M", "7M"], + superpower: ["9E", "7T", "7E"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunderpunch: ["9M", "7T"], + toxic: ["7M"], + visegrip: ["9L1"], + wideguard: ["9E", "7E"], + workup: ["7M"], + zenheadbutt: ["9M", "7T"], + }, + }, + crabominable: { + learnset: { + amnesia: ["9M"], + attract: ["7M"], + avalanche: ["9M", "9L29", "7L29"], + blizzard: ["9M", "7M"], + block: ["7T"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "9L22", "7M"], + brutalswing: ["7M"], + bubble: ["7L1"], + bubblebeam: ["9L17", "7L17"], + bulkup: ["9M", "7M"], + bulldoze: ["9M", "7M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L49", "7L49"], + confide: ["7M"], + dig: ["9M"], + dizzypunch: ["7L25"], + doubleteam: ["7M"], + drainpunch: ["9M", "7T"], + dualchop: ["7T"], + dynamicpunch: ["9L45", "7L45"], + earthquake: ["9M", "7M"], + endeavor: ["7T"], + endure: ["9M"], + facade: ["9M", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M", "7M"], + focuspunch: ["9M", "7T"], + frostbreath: ["7M"], + frustration: ["7M"], + gigaimpact: ["9M", "7M"], + gunkshot: ["9M"], + hail: ["7M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M"], + icehammer: ["9L37", "7L37"], + icepunch: ["9M", "9L0", "7T", "7L1"], + icespinner: ["9M"], + icywind: ["9M", "7T"], + irondefense: ["9M", "9L42", "7T", "7L42"], + ironhead: ["9M", "7T"], + knockoff: ["9M"], + leer: ["9L1", "7L1"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["7M"], + poweruppunch: ["7L22"], + protect: ["9M", "9L1", "7M"], + pursuit: ["7L1"], + raindance: ["9M", "7M"], + rest: ["9M", "7M"], + return: ["7M"], + reversal: ["9M", "9L33", "7L33"], + rockslide: ["9M", "7M"], + rocksmash: ["9L1", "7L1"], + rocktomb: ["9M", "7M"], + round: ["7M"], + scald: ["7M"], + scaryface: ["9M"], + slam: ["9L25"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["7M"], + substitute: ["9M", "7M"], + sunnyday: ["9M", "7M"], + superpower: ["7T"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunderpunch: ["9M", "7T"], + toxic: ["7M"], + workup: ["7M"], + zenheadbutt: ["9M", "7T"], + }, + }, + oricorio: { + learnset: { + acrobatics: ["9M", "9L23", "7M"], + aerialace: ["9M", "7M"], + agility: ["9M", "9L43", "7L46"], + aircutter: ["9M", "9L13", "7L13"], + airslash: ["9M", "9L36", "7L36"], + attract: ["9E", "7M"], + batonpass: ["9M", "9L16", "7L16"], + calmmind: ["9M", "7M"], + captivate: ["7L33", "7E"], + charm: ["9M"], + confide: ["7M"], + covet: ["7T"], + defog: ["9E", "7T"], + doubleslap: ["7L23"], + doubleteam: ["7M"], + dualwingbeat: ["9M"], + embargo: ["7M"], + endure: ["9M"], + facade: ["9M", "7M"], + featherdance: ["9L20", "7L20"], + flatter: ["9L33"], + fly: ["9M", "7M"], + frustration: ["7M"], + growl: ["9L4", "7L4"], + helpinghand: ["9M", "9L10", "7T", "7L10"], + hiddenpower: ["7M"], + hurricane: ["9M", "9L47", "7L50"], + icywind: ["9M", "7T"], + mirrormove: ["7L43"], + peck: ["9L6", "7L6"], + pluck: ["9E", "7E"], + pound: ["9L1", "7L1"], + protect: ["9M", "7M"], + quash: ["7M"], + quiverdance: ["9E"], + raindance: ["9M"], + rest: ["9M", "7M"], + return: ["7M"], + revelationdance: ["9L40", "7L40"], + reversal: ["9M"], + roleplay: ["7T"], + roost: ["9L30", "7M", "7L30"], + round: ["7M"], + safeguard: ["9E", "7M", "7E"], + sandstorm: ["9M", "7M"], + skyattack: ["7T"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["9M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + swift: ["9M"], + swordsdance: ["9M", "7M"], + tailwind: ["9M", "7T", "7E"], + takedown: ["9M"], + taunt: ["9M", "7M"], + teeterdance: ["9L26", "7L26"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + uturn: ["9M", "7M"], + workup: ["7M"], + }, + }, + cutiefly: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + acrobatics: ["9M", "8M", "7M"], + aerialace: ["7M"], + afteryou: ["7T"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L30", "7L36"], + aromaticmist: ["9E", "8E"], + attract: ["8M", "7M"], + batonpass: ["9M", "8M", "7E"], + bestow: ["7E"], + bugbite: ["9M", "7T"], + bugbuzz: ["9M", "9L48", "8M", "8L48", "7L26"], + calmmind: ["9M", "8M", "7M"], + charm: ["9M", "8M"], + confide: ["7M"], + covet: ["9L30", "7T"], + dazzlinggleam: ["9M", "9L42", "8M", "8L42", "7M", "7L31"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["9M", "9L18", "8M", "8L18", "7L16"], + dreameater: ["7M"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + fairywind: ["9L1", "8L1", "7L4"], + faketears: ["9M", "8M"], + frustration: ["7M"], + grassknot: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + imprison: ["9M", "8M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["9M", "8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + magicalleaf: ["9M"], + magicroom: ["8M", "7T"], + moonblast: ["9E", "8E", "7E"], + playrough: ["9M", "8M"], + pollenpuff: ["9M"], + pounce: ["9M"], + powder: ["7E"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychup: ["7M"], + quiverdance: ["9L54", "8L54", "7L41"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + signalbeam: ["7T"], + silverwind: ["7L13"], + skillswap: ["9M", "8M", "7T", "7E"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + speedswap: ["8M", "7E"], + stickyweb: ["9E", "8E", "7E"], + strugglebug: ["9M", "9L24", "8L24", "7L10"], + stunspore: ["9L6", "8L6", "7L7"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + sweetscent: ["9L12", "8L12", "7L21"], + swift: ["9M", "8M"], + switcheroo: ["9L36", "8L36"], + tailwind: ["9M", "7T"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + uturn: ["9M", "8M", "7M"], + wonderroom: ["8M", "7T"], + }, + }, + ribombee: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + acrobatics: ["9M", "8M", "7M"], + aerialace: ["7M"], + afteryou: ["7T"], + agility: ["9M"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L32", "7L42"], + attract: ["8M", "7M"], + batonpass: ["9M", "8M"], + bugbite: ["9M", "7T"], + bugbuzz: ["9M", "9L56", "8M", "8L56", "7L28"], + calmmind: ["9M", "8M", "7M"], + charm: ["9M", "8M"], + confide: ["7M"], + covet: ["9L32", "8L1", "7T"], + dazzlinggleam: ["9M", "9L48", "8M", "8L48", "7M", "7L35"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["9M", "9L18", "8M", "8L18", "7L16"], + dreameater: ["7M"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + fairywind: ["9L1", "8L1", "7L1"], + faketears: ["9M", "8M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["9M", "8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + lunge: ["9M"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M", "7T"], + naturepower: ["7M"], + playrough: ["9M", "8M"], + pollenpuff: ["9M", "9L0", "8M", "8L0", "7L1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychup: ["7M"], + quiverdance: ["9L64", "8L64", "7L49"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + signalbeam: ["7T"], + silverwind: ["7L13"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + speedswap: ["8M"], + storedpower: ["9M"], + strugglebug: ["9M", "9L24", "8L24", "7L1"], + stunspore: ["9L1", "8L1", "7L1"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + sweetscent: ["9L1", "8L1", "7L21"], + swift: ["9M", "8M"], + switcheroo: ["9L40", "8L40"], + tailwind: ["9M", "7T"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + uturn: ["9M", "8M", "7M"], + wonderroom: ["8M", "7T"], + }, + }, + ribombeetotem: { + learnset: { + absorb: ["7L1"], + acrobatics: ["7M"], + aerialace: ["7M"], + afteryou: ["7T"], + allyswitch: ["7T"], + aromatherapy: ["7L42", "7S0"], + attract: ["7M"], + bugbite: ["7T"], + bugbuzz: ["7L28", "7S0"], + calmmind: ["7M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["7M", "7L35", "7S0"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["7L16"], + dreameater: ["7M"], + energyball: ["7M"], + facade: ["7M"], + fairywind: ["7L1"], + frustration: ["7M"], + helpinghand: ["7T"], + hiddenpower: ["7M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["7M"], + lightscreen: ["7M"], + magicroom: ["7T"], + naturepower: ["7M"], + pollenpuff: ["7L1"], + protect: ["7M"], + psychic: ["7M"], + psychup: ["7M"], + quiverdance: ["7L49", "7S0"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + roost: ["7M"], + round: ["7M"], + safeguard: ["7M"], + signalbeam: ["7T"], + silverwind: ["7L13"], + skillswap: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + strugglebug: ["7L1"], + stunspore: ["7L1"], + substitute: ["7M"], + sunnyday: ["7M"], + swagger: ["7M"], + sweetscent: ["7L21"], + tailwind: ["7T"], + telekinesis: ["7T"], + thief: ["7M"], + toxic: ["7M"], + trick: ["7T"], + uturn: ["7M"], + wonderroom: ["7T"], + }, + eventData: [ + {generation: 7, level: 50, perfectIVs: 3, moves: ["bugbuzz", "dazzlinggleam", "aromatherapy", "quiverdance"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + rockruff: { + learnset: { + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L7"], + bodyslam: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["9M", "9L36", "8M", "8L36", "7L40"], + crushclaw: ["7E"], + dig: ["9M"], + doubleteam: ["9L8", "8L8", "7M"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["9E", "8E", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M", "7E"], + frustration: ["7M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["9E", "8E", "7T"], + leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9M", "9L28", "8L28", "7M", "7L26"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L4", "8L4", "7L4"], + sandstorm: ["9M"], + scaryface: ["9M", "9L40", "8M", "8L40", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L44", "8M", "8L44", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9E", "7E"], + swagger: ["7M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E"], + thunderfang: ["9M", "8M", "7E"], + toxic: ["7M"], + trailblaze: ["9M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + rockruffdusk: { + learnset: { + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L7", "7S1", "7S0"], + bodyslam: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["9M", "9L36", "8M", "8L36", "7L40"], + crushclaw: ["7E"], + dig: ["9M"], + doubleteam: ["9L8", "8L8", "7M"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["9E", "8E", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M", "7E", "7S0"], + frustration: ["7M"], + happyhour: ["7S1", "7S0"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["9E", "8E", "7T"], + leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9M", "9L28", "8L28", "7M", "7L26"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L4", "8L4", "7L4"], + sandstorm: ["9M"], + scaryface: ["9M", "9L40", "8M", "8L40", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L44", "8M", "8L44", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9E", "7E"], + swagger: ["7M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1", "7L1", "7S1", "7S0"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E"], + thunderfang: ["9M", "8M", "7E", "7S1"], + toxic: ["7M"], + trailblaze: ["9M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["tackle", "bite", "firefang", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["tackle", "bite", "thunderfang", "happyhour"], pokeball: "cherishball"}, + ], + }, + lycanroc: { + learnset: { + accelerock: ["9L1", "8L1", "7L1"], + agility: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["9M", "9L42", "8M", "8L42", "7L40"], + dig: ["9M"], + doubleteam: ["9L1", "8L1", "7M"], + drillrun: ["9M", "8M", "7T"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["7T"], + leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1", "7L1"], + quickguard: ["9L1", "8L1", "7L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9M", "9L30", "8L30", "7M", "7L26"], + rockblast: ["9M", "8M"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "7L1"], + sandstorm: ["9M", "8M"], + scaryface: ["9M", "9L48", "8M", "8L48", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L54", "8M", "8L54", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L0", "8L0"], + sunnyday: ["9M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + toxic: ["7M"], + trailblaze: ["9M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + lycanrocmidnight: { + learnset: { + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + counter: ["9L0", "8L0", "7L1"], + covet: ["7T"], + crunch: ["9M", "9L42", "8M", "8L42", "7L40"], + dig: ["9M"], + doubleteam: ["9L1", "8L1", "7M"], + dualchop: ["7T"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M", "7S0"], + firepunch: ["9M", "8M", "7T"], + fling: ["9M"], + focuspunch: ["9M", "7T"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + knockoff: ["9M"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + lastresort: ["7T"], + leer: ["9L1", "8L1", "7L1"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + outrage: ["9M", "8M", "7T"], + payback: ["8M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["9M", "9L1", "8M", "8L1", "7L1"], + roar: ["9M", "9L30", "8L30", "7M", "7L26"], + rockblast: ["9M", "8M"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "7L1"], + sandstorm: ["9M", "8M"], + scaryface: ["9M", "9L48", "8M", "8L48", "7L37"], + shadowclaw: ["9M"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L54", "8M", "8L54", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L48", "7S0"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["7S0"], + sunnyday: ["9M"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M", "7S0"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + terablast: ["9M"], + throatchop: ["8M", "7T"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "7T"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M", "7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["stoneedge", "firefang", "suckerpunch", "swordsdance"], pokeball: "cherishball"}, + ], + }, + lycanrocdusk: { + learnset: { + accelerock: ["9L1", "8L1", "7L1"], + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + counter: ["9L1", "8L1", "7L1"], + covet: ["7T"], + crunch: ["9M", "9L42", "8M", "8L42", "7L40"], + crushclaw: ["9L0", "8L0"], + dig: ["9M"], + doubleteam: ["9L1", "8L1", "7M"], + drillrun: ["9M", "8M", "7T"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M"], + focusenergy: ["8M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["7T"], + leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + outrage: ["9M", "8M", "7T"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + quickguard: ["9L1", "8L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "9L1", "8M", "8L1"], + roar: ["9M", "9L30", "8L30", "7M", "7L26"], + rockblast: ["9M", "8M"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "7L1"], + sandstorm: ["9M", "8M"], + scaryface: ["9M", "9L48", "8M", "8L48", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L54", "8M", "8L54", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L1", "8L1"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M"], + terablast: ["9M"], + thrash: ["7L1"], + thunderfang: ["9M", "8M"], + toxic: ["7M"], + trailblaze: ["9M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + wishiwashi: { + learnset: { + aquaring: ["8L36", "7L17"], + aquatail: ["8L32", "7T", "7L38"], + attract: ["8M", "7M"], + beatup: ["8M", "8L8", "7L33"], + brine: ["8M", "8L12", "7L14"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + covet: ["7T"], + dive: ["8M", "8L20", "7L30"], + doubleedge: ["8L48", "7L41"], + doubleteam: ["7M"], + earthquake: ["8M", "7M"], + endeavor: ["8L40", "7T", "7L49"], + endure: ["8M"], + facade: ["8M", "7M"], + feintattack: ["7L9"], + flipturn: ["8T"], + frustration: ["7M"], + growl: ["8L1", "7L1"], + hail: ["8M", "7M"], + helpinghand: ["8M", "8L4", "7T", "7L6"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L44", "7L54"], + icebeam: ["8M", "7M"], + irontail: ["8M", "7T"], + liquidation: ["8M"], + mist: ["8E", "7E"], + muddywater: ["8M", "7E"], + mudshot: ["8M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + scaleshot: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L24", "7L46"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + takedown: ["8E", "7L25"], + tearfullook: ["8L16", "7L22"], + toxic: ["7M"], + uproar: ["8M", "8L28"], + uturn: ["8M", "7M"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpulse: ["8E", "7T", "7E"], + watersport: ["7E"], + whirlpool: ["8M", "7E"], + }, + }, + mareanie: { + learnset: { + acidspray: ["9M", "9L40"], + afteryou: ["7T"], + attract: ["8M", "7M"], + bite: ["9L10", "8L10", "7L9"], + blizzard: ["9M", "8M", "7M"], + brine: ["8M"], + chillingwater: ["9M"], + confide: ["7M"], + covet: ["7T"], + doubleteam: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gastroacid: ["7T"], + gunkshot: ["9M", "8M", "7T"], + hail: ["8M", "7M"], + haze: ["9M", "9E", "8E", "7E"], + hiddenpower: ["7M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T"], + infestation: ["9E", "8E", "7M"], + irondefense: ["9M", "8M", "7T"], + knockoff: ["7T"], + liquidation: ["9M", "9L35", "8M", "8L35", "7T", "7L49"], + lunge: ["9M"], + magiccoat: ["7T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + peck: ["9L1", "8L1", "7L5"], + pinmissile: ["9L25", "8M", "8L25", "7L45"], + poisonjab: ["9M", "9L45", "8M", "8L45", "7M", "7L37"], + poisonsting: ["9L1", "8L1", "7L1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + recover: ["9L20", "8L20", "7L33"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + sludgewave: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spikecannon: ["7L29"], + spite: ["7T"], + spitup: ["9E", "8E", "7E"], + stockpile: ["9E", "8E", "7E", "7S0"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + swallow: ["9E", "8E", "7E", "7S0"], + terablast: ["9M"], + toxic: ["9M", "9L50", "8L50", "7M", "7L21", "7S0"], + toxicspikes: ["9M", "9L30", "8M", "8L30", "7L13"], + venomdrench: ["8M", "8L40", "7L41"], + venoshock: ["9M", "9L15", "8M", "8L15", "7M", "7L25"], + waterpulse: ["9M", "7T"], + wideguard: ["9L5", "8L5", "7L17"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, isHidden: true, moves: ["toxic", "stockpile", "swallow"], pokeball: "cherishball"}, + ], + }, + toxapex: { + learnset: { + acidspray: ["9M", "9L42"], + afteryou: ["7T"], + attract: ["8M", "7M"], + banefulbunker: ["9L0", "8L0", "7L1"], + bite: ["9L1", "8L1", "7L1"], + blizzard: ["9M", "8M", "7M"], + block: ["7T"], + bodyslam: ["9M"], + brine: ["8M"], + chillingwater: ["9M"], + confide: ["7M"], + covet: ["7T"], + crosspoison: ["8M"], + doubleteam: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gastroacid: ["7T"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T"], + hail: ["8M", "7M"], + haze: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T"], + infestation: ["7M"], + irondefense: ["9M", "8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M"], + liquidation: ["9M", "9L35", "8M", "8L35", "7T", "7L58"], + lunge: ["9M"], + magiccoat: ["7T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + peck: ["9L1", "8L1", "7L1"], + pinmissile: ["9L25", "8M", "8L25", "7L51"], + poisonjab: ["9M", "9L49", "8M", "8L49", "7M", "7L37"], + poisonsting: ["9L1", "8L1", "7L1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + recover: ["9L20", "8L20", "7L33"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + scaryface: ["9M"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + sludgewave: ["8M", "7M"], + smackdown: ["9M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spikecannon: ["7L29"], + spite: ["7T"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + terablast: ["9M"], + toxic: ["9M", "9L56", "8L56", "7M", "7L21"], + toxicspikes: ["9M", "9L30", "8M", "8L30", "7L1"], + venomdrench: ["8M", "8L42", "7L44"], + venoshock: ["9M", "9L15", "8M", "8L15", "7M", "7L25"], + waterpulse: ["9M", "7T"], + wideguard: ["9L1", "8L1", "7L17"], + }, + }, + mudbray: { + learnset: { + attract: ["8M", "7M"], + bide: ["7L22"], + bodyslam: ["9M", "8M", "7E"], + bulldoze: ["9M", "9L12", "8M", "8L12", "7M", "7L10"], + closecombat: ["9M", "8M", "7E"], + confide: ["7M"], + counter: ["9L24", "8L24", "7L36"], + doubleedge: ["9E", "8E", "7E"], + doublekick: ["9L8", "8L8", "7L15"], + doubleteam: ["7M"], + earthpower: ["9M", "8M", "7T"], + earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L38"], + endeavor: ["9E", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fissure: ["9E", "8E"], + frustration: ["7M"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L31"], + hiddenpower: ["7M"], + highhorsepower: ["9M", "9L28", "8M", "8L28", "7L24"], + irondefense: ["9M", "9L4", "8M", "8L4", "7T", "7L29"], + ironhead: ["9M", "8M", "7T"], + lowkick: ["9M", "8M", "7T"], + lowsweep: ["9M", "8M", "7M"], + magnitude: ["7E"], + megakick: ["9L40", "8M", "8L40", "7L43"], + mudbomb: ["7E"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + mudsport: ["7L3"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9M", "9E", "8E", "7M"], + rockslide: ["9M", "8M", "7M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M"], + rototiller: ["7L8"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + sandtomb: ["9M", "8M"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9M", "9E", "8E"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8M", "7T"], + stomp: ["9L16", "8L16", "7L17"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + strength: ["9L20", "8L20"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + superpower: ["9L44", "8M", "8L44", "7T", "7L45"], + swagger: ["7M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + }, + }, + mudsdale: { + learnset: { + attract: ["8M", "7M"], + bide: ["7L22"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L12", "8M", "8L12", "7M", "7L1"], + closecombat: ["9M", "8M"], + confide: ["7M"], + counter: ["9L24", "8L24", "7L42"], + doublekick: ["9L1", "8L1", "7L15"], + doubleteam: ["7M"], + earthpower: ["9M", "8M", "7T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L47"], + endeavor: ["7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M", "7M"], + heavyslam: ["9M", "9L34", "8M", "8L34", "7L34"], + hiddenpower: ["7M"], + highhorsepower: ["9M", "9L28", "8M", "8L28", "7L24"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T", "7L29"], + ironhead: ["9M", "8M", "7T"], + lashout: ["9M", "8T"], + lowkick: ["9M", "8M", "7T"], + lowsweep: ["9M", "8M", "7M"], + megakick: ["9L46", "8M", "8L46", "7L55"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + mudsport: ["7L1"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + revenge: ["8M"], + roar: ["9M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M"], + rototiller: ["7L1"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + sandtomb: ["9M", "8M"], + scaryface: ["9M", "8M"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8M", "7T"], + stomp: ["9L16", "8L16", "7L17"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + strength: ["9L20", "8L20"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + superpower: ["9L52", "8M", "8L52", "7T", "7L60"], + swagger: ["7M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + }, + encounters: [ + {generation: 7, level: 29}, + ], + }, + dewpider: { + learnset: { + aquaring: ["8L16", "7L24"], + attract: ["8M", "7M"], + aurorabeam: ["7E"], + bite: ["8L8", "7L21"], + blizzard: ["8M", "7M"], + bubble: ["7L1"], + bubblebeam: ["8L12", "7L16"], + bugbite: ["8L4", "7T", "7L13"], + bugbuzz: ["8M"], + confide: ["7M"], + crunch: ["8M", "8L24", "7L32"], + doubleteam: ["7M"], + endure: ["8M"], + entrainment: ["8L32", "7L48"], + facade: ["8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigadrain: ["8M", "7T"], + headbutt: ["8L20"], + hiddenpower: ["7M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + infestation: ["8L1", "7M", "7L5"], + irondefense: ["8M", "7T"], + leechlife: ["8M", "8L44", "7M", "7L29"], + liquidation: ["8M", "8L40", "7T", "7L45"], + lunge: ["8L36", "7L37"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + mirrorcoat: ["8L48", "7L40"], + poisonjab: ["8M", "7M"], + powersplit: ["8E", "7E"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + signalbeam: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L28"], + spiderweb: ["7L8"], + spitup: ["8E", "7E"], + stickyweb: ["8E", "7E"], + stockpile: ["8E", "7E"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + waterfall: ["8M", "7M"], + watergun: ["8L1"], + waterpulse: ["7T"], + watersport: ["7L1"], + wonderroom: ["8M", "7T"], + xscissor: ["8M", "7M"], + }, + }, + araquanid: { + learnset: { + aquaring: ["8L16", "7L26"], + attract: ["8M", "7M"], + bite: ["8L1", "7L21"], + blizzard: ["8M", "7M"], + bubble: ["7L1"], + bubblebeam: ["8L12", "7L16"], + bugbite: ["8L1", "7T", "7L1"], + bugbuzz: ["8M"], + confide: ["7M"], + crunch: ["8M", "8L26", "7L38"], + dive: ["8M"], + doubleteam: ["7M"], + endure: ["8M"], + entrainment: ["8L38", "7L62"], + facade: ["8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigadrain: ["8M", "7T"], + headbutt: ["8L20"], + hiddenpower: ["7M"], + hydropump: ["8M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + infestation: ["8L1", "7M", "7L1"], + irondefense: ["8M", "7T"], + laserfocus: ["7T"], + leechlife: ["8M", "8L56", "7M", "7L33"], + liquidation: ["8M", "8L50", "7T", "7L57"], + lunge: ["8L44", "7L45"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + mirrorcoat: ["8L62", "7L50"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + signalbeam: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L32", "7L1"], + spiderweb: ["7L1"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + waterfall: ["8M", "7M"], + watergun: ["8L1"], + waterpulse: ["7T"], + wideguard: ["8L1", "7L1"], + wonderroom: ["8M", "7T"], + xscissor: ["8M", "7M"], + }, + }, + araquanidtotem: { + learnset: { + aquaring: ["7L26"], + attract: ["7M"], + bite: ["7L21", "7S0"], + blizzard: ["7M"], + bubble: ["7L1"], + bubblebeam: ["7L16", "7S0"], + bugbite: ["7T", "7L1", "7S0"], + confide: ["7M"], + crunch: ["7L38"], + doubleteam: ["7M"], + entrainment: ["7L62"], + facade: ["7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigadrain: ["7T"], + hiddenpower: ["7M"], + icebeam: ["7M"], + icywind: ["7T"], + infestation: ["7M", "7L1"], + irondefense: ["7T"], + laserfocus: ["7T"], + leechlife: ["7M", "7L33"], + liquidation: ["7T", "7L57"], + lunge: ["7L45"], + magiccoat: ["7T"], + magicroom: ["7T"], + mirrorcoat: ["7L50"], + poisonjab: ["7M"], + protect: ["7M"], + raindance: ["7M"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + scald: ["7M"], + signalbeam: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + soak: ["7L1"], + spiderweb: ["7L1", "7S0"], + substitute: ["7M"], + surf: ["7M"], + swagger: ["7M"], + toxic: ["7M"], + waterfall: ["7M"], + waterpulse: ["7T"], + wideguard: ["7L1"], + wonderroom: ["7T"], + xscissor: ["7M"], + }, + eventData: [ + {generation: 7, level: 25, perfectIVs: 3, moves: ["spiderweb", "bugbite", "bubblebeam", "bite"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + fomantis: { + learnset: { + aromatherapy: ["8E", "7E"], + attract: ["8M", "7M"], + bugbite: ["9M", "7T"], + bulletseed: ["9M", "8M"], + confide: ["7M"], + defog: ["9E", "8E", "7T", "7E"], + doubleteam: ["7M"], + dualchop: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + furycutter: ["9L1", "8L1", "7L1"], + gigadrain: ["9M", "8M", "7T", "7E"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growth: ["9L5", "8L5", "7L14"], + hiddenpower: ["7M"], + ingrain: ["9L10", "8L10", "7L19"], + leafage: ["9L1", "8L1", "7L5"], + leafblade: ["9L40", "8M", "8L40", "7L23"], + leafstorm: ["9M", "8M", "7E"], + leechlife: ["9M", "8M", "7M"], + magicalleaf: ["9M", "8M"], + naturepower: ["7M"], + payback: ["8M", "7M"], + poisonjab: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + razorleaf: ["9L15", "8L15", "7L10"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + signalbeam: ["7T"], + slash: ["9L25", "8L25", "7L32"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "9L50", "8M", "8L50", "7M", "7L41"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "9L45", "8M", "8L45", "7M", "7L46"], + superpower: ["9E"], + swagger: ["7M"], + sweetscent: ["9L20", "8L20", "7L37"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L35", "8L35", "7T", "7L28"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + weatherball: ["9M", "8M", "7E"], + worryseed: ["9E", "8E", "7T"], + xscissor: ["9M", "9L30", "8M", "8L30", "7M"], + }, + }, + lurantis: { + learnset: { + aerialace: ["7M"], + attract: ["8M", "7M"], + brickbreak: ["9M", "8M", "7M"], + bugbite: ["9M", "7T"], + bulletseed: ["9M", "8M"], + confide: ["7M"], + crosspoison: ["8M"], + defog: ["7T"], + doubleteam: ["7M"], + dualchop: ["8L1", "7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + furycutter: ["9L1", "8L1", "7L1"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "7L1"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + ingrain: ["9L1", "8L1", "7L19"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + leafage: ["9L1", "8L1", "7L1"], + leafblade: ["9L44", "8M", "8L44", "7L23"], + leafstorm: ["9M", "8M"], + leechlife: ["9M", "8M", "7M"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M", "8M"], + naturepower: ["7M"], + nightslash: ["9L1", "8L1", "7L1"], + payback: ["8M", "7M"], + petalblizzard: ["9L0", "8L0", "7L1"], + poisonjab: ["9M", "8M", "7M"], + pollenpuff: ["9M"], + protect: ["9M", "8M", "7M"], + psychocut: ["8M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["9M"], + seedbomb: ["9M", "8M", "7T"], + signalbeam: ["7T"], + slash: ["9L25", "8L25", "7L32"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "9L1", "8M", "8L1", "7M"], + solarblade: ["9M", "9L63", "8M", "8L63", "7L47"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "9L51", "8M", "8L51", "7M", "7L55"], + superpower: ["8M", "7T"], + swagger: ["7M"], + sweetscent: ["9L20", "8L20", "7L40"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L37", "8L37", "7T", "7L28"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + weatherball: ["9M", "8M"], + worryseed: ["7T"], + xscissor: ["9M", "9L30", "8M", "8L30", "7M", "7L1"], + }, + }, + lurantistotem: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + brickbreak: ["7M"], + bugbite: ["7T"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + dualchop: ["7T"], + energyball: ["7M"], + facade: ["7M"], + falseswipe: ["7M"], + fling: ["7M"], + frustration: ["7M"], + furycutter: ["7L1"], + gigadrain: ["7T"], + gigaimpact: ["7M"], + grassknot: ["7M"], + growth: ["7L1", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + ingrain: ["7L19", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + leafage: ["7L1"], + leafblade: ["7L23", "7S0"], + leechlife: ["7M"], + lowsweep: ["7M"], + naturepower: ["7M"], + nightslash: ["7L1"], + payback: ["7M"], + petalblizzard: ["7L1"], + poisonjab: ["7M"], + protect: ["7M"], + razorleaf: ["7L1"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + seedbomb: ["7T"], + signalbeam: ["7T"], + slash: ["7L32"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + solarblade: ["7L47"], + substitute: ["7M"], + sunnyday: ["7M", "7L55"], + superpower: ["7T"], + swagger: ["7M"], + sweetscent: ["7L40"], + swordsdance: ["7M"], + synthesis: ["7T", "7L28", "7S0"], + toxic: ["7M"], + worryseed: ["7T"], + xscissor: ["7M", "7L1"], + }, + eventData: [ + {generation: 7, level: 30, perfectIVs: 3, moves: ["growth", "ingrain", "leafblade", "synthesis"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + morelull: { + learnset: { + absorb: ["8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["8M", "7E"], + astonish: ["8L1", "7L4"], + attract: ["8M", "7M"], + confide: ["7M"], + confuseray: ["8L4", "7L25"], + dazzlinggleam: ["8M", "8L32", "7M"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + dreameater: ["8L44", "7M", "7L43"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M"], + flash: ["7L8"], + frustration: ["7M"], + gigadrain: ["8M", "8L28", "7T", "7L29"], + grassknot: ["8M", "7M"], + growth: ["8E", "7E"], + hiddenpower: ["7M"], + ingrain: ["8L8", "7L22"], + leechseed: ["8E", "7E"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + megadrain: ["8L12", "7L15"], + moonblast: ["8L40", "7L39"], + moonlight: ["8L20", "7L11"], + naturepower: ["7M"], + poisonpowder: ["8E", "7E"], + pollenpuff: ["8M"], + protect: ["8M", "7M"], + recycle: ["7T"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["8M", "7T"], + signalbeam: ["7T"], + sleeppowder: ["8L16", "7L18"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spore: ["8L36", "7L36"], + spotlight: ["7L46"], + strengthsap: ["8L25", "7L32"], + stunspore: ["8E", "7E"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + synthesis: ["7T"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + wonderroom: ["8M", "7T"], + worryseed: ["7T"], + }, + }, + shiinotic: { + learnset: { + absorb: ["8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["8M"], + astonish: ["8L1", "7L1"], + attract: ["8M", "7M"], + chargebeam: ["7M"], + confide: ["7M"], + confuseray: ["8L1", "7L26"], + dazzlinggleam: ["8M", "8L38", "7M"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + drainpunch: ["8M"], + dreameater: ["8L56", "7M", "7L49"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M"], + flash: ["7L1"], + frustration: ["7M"], + gigadrain: ["8M", "8L32", "7T", "7L31"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + ingrain: ["8L1", "7L1"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + megadrain: ["8L12", "7L15"], + moonblast: ["8L50", "7L44"], + moonlight: ["8L20", "7L11"], + naturepower: ["7M"], + pollenpuff: ["8M"], + protect: ["8M", "7M"], + raindance: ["8M"], + recycle: ["7T"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["8M", "7T"], + signalbeam: ["7T"], + sleeppowder: ["8L16", "7L18"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spore: ["8L44", "7L40"], + spotlight: ["7L53"], + strengthsap: ["8L27", "7L35"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + synthesis: ["7T"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + weatherball: ["8M"], + wonderroom: ["8M", "7T"], + worryseed: ["7T"], + }, + }, + salandit: { + learnset: { + acidspray: ["9M"], + agility: ["9M"], + attract: ["8M", "7M"], + beatup: ["8M"], + belch: ["9E", "8E", "7E"], + burningjealousy: ["9M"], + confide: ["7M"], + covet: ["7T"], + doubleslap: ["7L21"], + doubleteam: ["7M"], + dragonclaw: ["9M", "8M", "7M"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L48"], + dragonrage: ["7L13"], + ember: ["9L10", "8L10", "7L5"], + endeavor: ["9L55", "8L60"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["9E", "8E", "7E"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M"], + flameburst: ["7L24"], + flamecharge: ["9M", "7M"], + flamethrower: ["9M", "9L45", "8M", "8L50", "7M", "7L40"], + flareblitz: ["9M"], + fling: ["9M", "8M", "7M"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M"], + gunkshot: ["9M", "8M", "7T"], + heatwave: ["9M", "8M", "7T"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + incinerate: ["9L30", "8L30"], + irontail: ["8M", "7T"], + knockoff: ["9M", "7T", "7E"], + leechlife: ["9M", "8M", "7M"], + mudslap: ["9M", "9E", "8E"], + nastyplot: ["9M", "9L25", "8M", "8L25", "7L32"], + overheat: ["9M", "8M", "7M"], + payback: ["8M", "7M"], + poisonfang: ["9L15", "8L15"], + poisongas: ["9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + sandattack: ["9E", "8E", "7E"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + scratch: ["9L1", "8L1", "7L1"], + shadowclaw: ["9M", "8M", "7M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + sludgewave: ["8M", "7M"], + smog: ["9L5", "8L5", "7L16"], + snatch: ["7T", "7E"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + sweetscent: ["9L20", "8L20", "7L8"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M"], + torment: ["7M"], + toxic: ["9M", "9L50", "8L55", "7M", "7L29"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L45", "7L45"], + venoshock: ["9M", "9L35", "8M", "8L35", "7M", "7L37"], + willowisp: ["9M", "8M", "7M"], + }, + }, + salazzle: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M", "8M", "7M"], + agility: ["9M"], + attract: ["8M", "7M"], + beatup: ["8M"], + bodyslam: ["9M"], + breakingswipe: ["8M"], + burningjealousy: ["9M"], + captivate: ["7L1"], + confide: ["7M"], + corrosivegas: ["8T"], + covet: ["7T"], + crosspoison: ["8M"], + disable: ["9L1", "8L1", "7L1"], + doubleslap: ["7L21"], + doubleteam: ["7M"], + dragonclaw: ["9M", "8M", "7M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L44", "8M", "8L44", "7T", "7L56"], + dragonrage: ["7L13"], + dragontail: ["9M", "7M"], + ember: ["9L1", "8L1", "7L1"], + encore: ["9M", "9L1", "8M", "8L1", "7L1"], + endeavor: ["9L1", "8L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["7S0"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M"], + firelash: ["9L0", "8L0"], + flameburst: ["7L24"], + flamecharge: ["9M", "7M"], + flamethrower: ["9M", "9L51", "8M", "8L58", "7M", "7L44", "7S0"], + flareblitz: ["9M", "8M"], + fling: ["9M", "8M", "7M"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T"], + heatwave: ["9M", "8M", "7T"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + incinerate: ["9L30", "8L30"], + irontail: ["8M", "7T"], + knockoff: ["9M", "9L1", "8L1", "7T"], + laserfocus: ["7T"], + leechlife: ["9M", "8M", "7M"], + mudslap: ["9M"], + nastyplot: ["9M", "9L25", "8M", "8L25", "7L32"], + overheat: ["9M", "8M", "7M"], + payback: ["8M", "7M"], + poisonfang: ["9L15", "8L15"], + poisongas: ["9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + poisontail: ["9M"], + pound: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + scratch: ["9L1", "8L1"], + shadowclaw: ["9M", "8M", "7M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M", "7S0"], + sludgewave: ["8M", "7M"], + smog: ["9L1", "8L1", "7L16"], + snatch: ["7T"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["9L1", "8L1", "7M", "7L1"], + sweetscent: ["9L20", "8L20", "7L1"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M"], + torment: ["9L1", "8L1", "7M", "7L1"], + toxic: ["9M", "9L58", "8L65", "7M", "7L29", "7S0"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L51", "7L51"], + venoshock: ["9M", "9L37", "8M", "8L37", "7M", "7L39"], + willowisp: ["9M", "8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["fakeout", "toxic", "sludgebomb", "flamethrower"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 16}, + ], + }, + salazzletotem: { + learnset: { + acrobatics: ["7M"], + attract: ["7M"], + captivate: ["7L1"], + confide: ["7M"], + covet: ["7T"], + disable: ["7L1"], + doubleslap: ["7L21", "7S0"], + doubleteam: ["7M"], + dragonclaw: ["7M"], + dragonpulse: ["7T", "7L56"], + dragonrage: ["7L13"], + dragontail: ["7M"], + ember: ["7L1"], + encore: ["7L1"], + facade: ["7M"], + fireblast: ["7M"], + flameburst: ["7L24", "7S0"], + flamecharge: ["7M"], + flamethrower: ["7M", "7L44"], + fling: ["7M"], + foulplay: ["7T"], + frustration: ["7M"], + gunkshot: ["7T"], + heatwave: ["7T"], + helpinghand: ["7T"], + hiddenpower: ["7M"], + irontail: ["7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leechlife: ["7M"], + nastyplot: ["7L32"], + overheat: ["7M"], + payback: ["7M"], + poisongas: ["7L1"], + poisonjab: ["7M"], + pound: ["7L1"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + shadowclaw: ["7M"], + sleeptalk: ["7M"], + sludgebomb: ["7M"], + sludgewave: ["7M"], + smog: ["7L16", "7S0"], + snatch: ["7T"], + snore: ["7T"], + substitute: ["7M"], + swagger: ["7M", "7L1"], + sweetscent: ["7L1"], + taunt: ["7M"], + thief: ["7M"], + torment: ["7M", "7L1"], + toxic: ["7M", "7L29", "7S0"], + venomdrench: ["7L51"], + venoshock: ["7M", "7L39"], + willowisp: ["7M"], + }, + eventData: [ + {generation: 7, level: 30, perfectIVs: 3, moves: ["smog", "doubleslap", "flameburst", "toxic"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + stufful: { + learnset: { + aerialace: ["7M"], + attract: ["8M", "7M"], + babydolleyes: ["8L4", "7L10"], + bide: ["7L5"], + bind: ["7T"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "8L12", "7M", "7L14"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + charm: ["8M"], + coaching: ["8T"], + confide: ["7M"], + defensecurl: ["8E"], + doubleedge: ["8L44", "7L46"], + doubleteam: ["7M"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + endure: ["8M", "8L16", "7E"], + facade: ["8M", "7M"], + flail: ["8L28", "7L19"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + forcepalm: ["8E", "7E"], + frustration: ["7M"], + hammerarm: ["8L32", "7L32"], + hiddenpower: ["7M"], + icepunch: ["8M", "7T", "7E"], + ironhead: ["8M", "7T"], + leer: ["8L1", "7L1"], + lowsweep: ["8M", "7M"], + megakick: ["8M", "7E"], + megapunch: ["8M"], + painsplit: ["8L40", "7T", "7L41"], + payback: ["8M", "8L8", "7M", "7L23"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roleplay: ["7T"], + rollout: ["8E"], + round: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + stomp: ["8E"], + stompingtantrum: ["8M", "7T", "7E"], + strength: ["8L20"], + substitute: ["8M", "7M"], + superpower: ["8M", "8L48", "7T", "7L50"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + takedown: ["8L24", "7L28"], + taunt: ["8M", "7M"], + thrash: ["8L36", "7L37"], + thunderpunch: ["8M", "7T", "7E"], + toxic: ["7M"], + wideguard: ["7E"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + }, + bewear: { + learnset: { + aerialace: ["7M"], + attract: ["8M", "7M"], + babydolleyes: ["8L1", "7L10", "7S0"], + bide: ["7L5"], + bind: ["8L0", "7T", "7L1", "7S0"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "8L12", "7M", "7L14", "7S0"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + charm: ["8M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M"], + darkestlariat: ["8M"], + doubleedge: ["8L54", "7L56"], + doubleteam: ["7M"], + dragonclaw: ["8M", "7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + endure: ["8M", "8L16"], + facade: ["8M", "7M"], + flail: ["8L30", "7L19"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + hammerarm: ["8L36", "7L36"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M"], + icepunch: ["8M", "7T"], + ironhead: ["8M", "7T"], + leer: ["8L1", "7L1"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + painsplit: ["8L48", "7T", "7L49"], + payback: ["8M", "8L1", "7M", "7L23"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + stompingtantrum: ["8M", "7T"], + strength: ["8L20"], + substitute: ["8M", "7M"], + superpower: ["8M", "8L60", "7T", "7L62", "7S0"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + takedown: ["8L24", "7L30"], + taunt: ["8M", "7M"], + thrash: ["8L42", "7L43"], + thunderpunch: ["8M", "7T"], + toxic: ["7M"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["babydolleyes", "brutalswing", "superpower", "bind"], pokeball: "cherishball"}, + ], + }, + bounsweet: { + learnset: { + acupressure: ["9E", "8E", "7E"], + aromatherapy: ["8L36"], + aromaticmist: ["9L32", "8L32", "7L33"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + bulletseed: ["9M"], + charm: ["9M", "8M", "7E"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["9M", "8M", "7M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endeavor: ["9E", "8E", "7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + feint: ["7E"], + flail: ["9L24", "8L24", "7L29"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasswhistle: ["7E"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + leafstorm: ["9M"], + lightscreen: ["9M", "8M", "7M"], + magicalleaf: ["9M", "9L20", "8M", "8L20", "7L21"], + naturepower: ["7M"], + playnice: ["9L4", "8L4", "7L5"], + playrough: ["9M", "8M", "7E"], + protect: ["9M", "8M", "7M"], + rapidspin: ["9L8", "8L8", "7L9"], + razorleaf: ["9L12", "8L12", "7L13"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + splash: ["9L1", "8L1", "7L1"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + sweetscent: ["9L16", "8L16", "7L17"], + swift: ["9M"], + synthesis: ["9E", "8E", "7T", "7E"], + takedown: ["9M"], + teeterdance: ["9L28", "8L28", "7L25"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + worryseed: ["7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + steenee: { + learnset: { + aromatherapy: ["8L46", "7L41"], + aromaticmist: ["9L40", "8L40", "7L33"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + bulletseed: ["9M"], + captivate: ["7L37"], + charm: ["9M", "8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["9M", "8M", "7M"], + doubleslap: ["7L1", "7S0"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + knockoff: ["7T"], + leafstorm: ["9M", "9L46", "8M", "8L52", "7L45"], + lightscreen: ["9M", "8M", "7M"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M", "9L22", "8M", "8L22", "7L21", "7S0"], + naturepower: ["7M"], + payback: ["8M", "7M"], + playnice: ["9L1", "8L1", "7L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + rapidspin: ["9L1", "8L1", "7L1"], + razorleaf: ["9L1", "8L1", "7L1"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + splash: ["9L1", "8L1", "7L1"], + stomp: ["9L28", "8L28", "7L29"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + sweetscent: ["9L16", "8L16", "7L17", "7S0"], + swift: ["9M"], + synthesis: ["7T"], + takedown: ["9M"], + teeterdance: ["9L34", "8L34", "7L25"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + worryseed: ["7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 20, nature: "Naive", abilities: ["leafguard"], moves: ["magicalleaf", "doubleslap", "sweetscent"], pokeball: "cherishball"}, + ], + }, + tsareena: { + learnset: { + acrobatics: ["9M", "8M", "7M"], + aromatherapy: ["8L46", "7L41"], + aromaticmist: ["9L40", "8L40", "7L33"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + bulletseed: ["9M"], + captivate: ["7L37"], + charm: ["9M", "8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["9M", "8M", "7M"], + doubleslap: ["7L1"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + highjumpkick: ["9L58", "8L58", "7L49"], + hyperbeam: ["9M", "8M"], + knockoff: ["9M", "7T"], + laserfocus: ["7T"], + leafstorm: ["9M", "9L46", "8M", "8L52", "7L45"], + lightscreen: ["9M", "8M", "7M"], + lowkick: ["9M", "8M", "7T"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M", "9L22", "8M", "8L22", "7L21"], + megakick: ["8M"], + naturepower: ["7M"], + payback: ["8M", "7M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + powerwhip: ["9L1", "8M", "8L1", "7L53"], + protect: ["9M", "8M", "7M"], + punishment: ["7L1"], + rapidspin: ["9L1", "8L1", "7L1"], + razorleaf: ["9L1", "8L1", "7L1"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + solarblade: ["9M", "8M"], + splash: ["9L1", "8L1", "7L1"], + stomp: ["9L28", "8L28", "7L29"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["9L1", "8L1", "7M", "7L1"], + sweetscent: ["9L16", "8L16", "7L17"], + swift: ["9M"], + synthesis: ["7T"], + takedown: ["9M"], + taunt: ["9M", "8M"], + teeterdance: ["9L34", "8L34", "7L25"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + tropkick: ["9L0", "8L0", "7L1"], + uturn: ["9M", "8M", "7M"], + worryseed: ["7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + comfey: { + learnset: { + acrobatics: ["8M", "7M"], + afteryou: ["8E", "7T", "7E"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "7E"], + aromatherapy: ["8L36", "7L43"], + attract: ["8M", "7M"], + bind: ["7T"], + bulletseed: ["8M"], + calmmind: ["8M", "7M"], + celebrate: ["7S0"], + charm: ["8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["8M", "7M"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["8M", "8L9", "7L7", "7S0"], + echoedvoice: ["7M"], + encore: ["8M"], + endure: ["8M", "7E"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + fling: ["8M", "7M"], + floralhealing: ["8L30", "7L37"], + flowershield: ["8L12", "7L1"], + frustration: ["7M"], + gigadrain: ["8M", "7T"], + grassknot: ["8M", "8L24", "7M", "7L34"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L48", "7L46"], + growth: ["8L1", "7L13"], + healbell: ["7T"], + helpinghand: ["8M", "8L6", "7T", "7L1"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + leaftornado: ["8E"], + leechseed: ["8L21", "7L4", "7S0"], + lightscreen: ["8M", "7M"], + luckychant: ["7E"], + magicalleaf: ["8M", "8L15", "7L10", "7S0"], + magiccoat: ["7T"], + naturalgift: ["7L22"], + naturepower: ["7M"], + painsplit: ["7T"], + petalblizzard: ["8L33", "7L25"], + petaldance: ["8L45", "7L40"], + playrough: ["8M", "8L39", "7L49"], + pollenpuff: ["8M"], + protect: ["8M", "7M"], + psychup: ["7M"], + rest: ["8M", "7M"], + return: ["7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["8M", "7T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + sweetkiss: ["8L27", "7L19"], + sweetscent: ["8L42", "7L31"], + synthesis: ["8L18", "7T", "7L28"], + tailwind: ["7T"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + trickroom: ["8M", "7M"], + uturn: ["8M", "7M"], + vinewhip: ["8L3", "7L1"], + worryseed: ["8E", "7T"], + wrap: ["8L1", "7L16"], + }, + eventData: [ + {generation: 7, level: 10, nature: "Jolly", moves: ["celebrate", "leechseed", "drainingkiss", "magicalleaf"], pokeball: "cherishball"}, + ], + }, + oranguru: { + learnset: { + afteryou: ["9L5", "8L5", "7T", "7L4"], + allyswitch: ["8M", "7T", "7S1"], + attract: ["8M"], + block: ["7T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + calmmind: ["9M", "9L10", "8M", "8L10", "7M", "7L39"], + chargebeam: ["9M", "7M"], + chillingwater: ["9M"], + confide: ["7M"], + confusion: ["9L1", "8L1", "7L1"], + covet: ["7T"], + doubleteam: ["7M"], + dreameater: ["9E", "8E", "7M"], + earthquake: ["9M", "8M", "7M"], + embargo: ["7M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + expandingforce: ["8T"], + extrasensory: ["9E", "8E", "7E"], + facade: ["9M", "8M", "7M"], + feintattack: ["7L22"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + foulplay: ["9M", "9L55", "8M", "8L55", "7T", "7L36", "7S1"], + frustration: ["7M"], + futuresight: ["9L60", "8M", "8L60", "7L46"], + gigaimpact: ["9M", "8M", "7M"], + gravity: ["9M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M"], + imprison: ["9M", "8M"], + instruct: ["9L50", "8L50", "7L32", "7S0", "7S1"], + knockoff: ["9M", "7T"], + lastresort: ["9E", "8E"], + lightscreen: ["9M", "8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L30", "8M", "8L30", "7L25"], + naturepower: ["7M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + psybeam: ["9M"], + psychic: ["9M", "9L45", "8M", "8L45", "7M", "7L43", "7S0"], + psychicterrain: ["9M", "8M", "7E", "7S0"], + psychup: ["9L20", "8L20", "7M", "7L18"], + psyshock: ["9M", "8M", "7M"], + quash: ["9L25", "8L25", "7M", "7L11"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockslide: ["9M", "8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["9M"], + shadowball: ["9M", "8M", "7M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spite: ["7T"], + storedpower: ["9M", "9L15", "8M", "8L15", "7L15"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L8"], + telekinesis: ["7T"], + terablast: ["9M"], + terrainpulse: ["8T"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + trickroom: ["9M", "9L40", "8M", "8L40", "7M", "7L50", "7S1"], + wonderroom: ["8M", "7T", "7E"], + workup: ["8M", "7M"], + yawn: ["9E", "8E"], + zenheadbutt: ["9M", "9L35", "8M", "8L35", "7T", "7L29"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, abilities: ["telepathy"], moves: ["instruct", "psychic", "psychicterrain"], pokeball: "cherishball"}, + {generation: 7, level: 50, isHidden: true, moves: ["instruct", "foulplay", "trickroom", "allyswitch"], pokeball: "pokeball"}, + ], + }, + passimian: { + learnset: { + acrobatics: ["9M", "8M", "7M"], + aerialace: ["7M"], + assurance: ["8M"], + attract: ["8M", "7M"], + batonpass: ["9M"], + beatup: ["9L15", "8M", "8L15", "7L15"], + bestow: ["7L25", "7S0"], + block: ["7T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "9L35", "8M", "8L35", "7M", "7L32"], + bulldoze: ["9M", "8M", "7M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L50", "8M", "8L50", "7L43", "7S1"], + coaching: ["8T"], + confide: ["7M"], + counter: ["9E", "8E"], + doubleedge: ["9L45", "8L45", "7L36"], + doubleteam: ["7M"], + drainpunch: ["9M", "8M", "7T"], + earthquake: ["9M", "8M", "7M"], + electroweb: ["8M", "7T"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + feint: ["9E", "8E", "7E", "7S0"], + fling: ["9M", "9L30", "8M", "8L30", "7M", "7L39", "7S0"], + focusblast: ["9M", "8M", "7M"], + focusenergy: ["9L10", "8M", "8L10", "7L11"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + gigaimpact: ["9M", "9L60", "8M", "8L60", "7M", "7L50"], + grassknot: ["9M", "8M", "7M"], + gunkshot: ["9M", "8M", "7T", "7S1"], + gyroball: ["9M", "8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + ironhead: ["9M", "8M", "7T", "7E"], + irontail: ["8M", "7T"], + knockoff: ["9M", "9E", "8E", "7T", "7S1"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L4"], + lowkick: ["9M"], + lowsweep: ["9M", "8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + quickattack: ["9E", "8E", "7E"], + quickguard: ["9E", "8E", "7E"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + retaliate: ["8M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["9M", "9L55", "8M", "8L55", "7L46"], + rockslide: ["9M", "8M", "7M"], + rocksmash: ["9L5", "8L5", "7L8"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L18"], + seedbomb: ["9M", "8M", "7T"], + seismictoss: ["9E", "8E", "7E"], + shadowball: ["9M", "8M", "7M"], + shockwave: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M", "9L25", "8L25", "7L22"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thrash: ["9L40", "8L40", "7L29"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T"], + uturn: ["9M", "8M", "7M", "7S1"], + vacuumwave: ["9M"], + vitalthrow: ["8E", "7E"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, moves: ["bestow", "fling", "feint"], pokeball: "cherishball"}, + {generation: 7, level: 50, isHidden: true, moves: ["closecombat", "uturn", "knockoff", "gunkshot"], pokeball: "pokeball"}, + ], + }, + wimpod: { + learnset: { + aquajet: ["8E", "7E"], + assurance: ["8M"], + attract: ["8M", "7M"], + bugbuzz: ["8M"], + confide: ["7M"], + defensecurl: ["8L1"], + doubleteam: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + frustration: ["7M"], + hail: ["8M", "7M"], + harden: ["8E", "7E"], + hiddenpower: ["7M"], + leechlife: ["8M", "7M"], + metalclaw: ["8E", "7E"], + mudshot: ["8M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rollout: ["8E"], + round: ["8M", "7M"], + sandattack: ["8L1", "7L1"], + scald: ["8M", "7M"], + screech: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spikes: ["8M", "7E"], + strugglebug: ["8L1", "7L1"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + taunt: ["8M", "7M"], + toxic: ["7M"], + waterfall: ["8M", "7M"], + wideguard: ["8E", "7E"], + }, + }, + golisopod: { + learnset: { + aerialace: ["7M"], + assurance: ["8M"], + attract: ["8M", "7M"], + blizzard: ["8M", "7M"], + brickbreak: ["8M", "7M"], + bugbite: ["8L16", "7T", "7L10"], + bugbuzz: ["8M"], + bulkup: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M"], + darkpulse: ["8M", "7M"], + defensecurl: ["8L1"], + dive: ["8M"], + doubleteam: ["7M"], + drillrun: ["8M", "7T"], + dualchop: ["7T"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + firstimpression: ["8L0", "7L1"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + furycutter: ["8L8", "7L1"], + gigaimpact: ["8M", "7M"], + hail: ["8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + irondefense: ["8M", "8L20", "7T", "7L36"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leechlife: ["8M", "7M"], + liquidation: ["8M", "8L44", "7T", "7L48"], + muddywater: ["8M"], + mudshot: ["8M", "8L12"], + painsplit: ["7T"], + payback: ["8M", "7M"], + pinmissile: ["8M", "8L36", "7L41"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + psychup: ["7M"], + raindance: ["8M", "7M"], + razorshell: ["8M", "8L32", "7L26"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + rocksmash: ["8L4", "7L1"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + sandattack: ["8L1", "7L1"], + scald: ["8M", "7M"], + screech: ["8M"], + shadowclaw: ["8M", "7M"], + skittersmack: ["8T"], + slash: ["8L28", "7L21"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + spikes: ["8M"], + spite: ["8L1", "7T", "7L13"], + strugglebug: ["8L1", "7L1"], + substitute: ["8M", "7M"], + suckerpunch: ["8L24", "7L31"], + surf: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "8L40", "7M", "7L16"], + taunt: ["8M", "7M"], + throatchop: ["8M", "7T"], + toxic: ["7M"], + venoshock: ["8M", "7M"], + waterfall: ["8M", "7M"], + waterpulse: ["7T"], + xscissor: ["8M", "7M"], + }, + }, + sandygast: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["9M", "8M", "7E"], + ancientpower: ["9E", "8E", "7E"], + astonish: ["9L5", "8L5", "7L5"], + attract: ["8M", "7M"], + block: ["7T"], + brine: ["8M"], + bulldoze: ["9M", "9L25", "8M", "8L25", "7M", "7L23"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + curse: ["9E", "8E", "7E"], + destinybond: ["9E", "8E", "7E"], + doubleteam: ["7M"], + earthpower: ["9M", "9L50", "8M", "8L50", "7T", "7L45"], + earthquake: ["9M", "8M", "7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M"], + fling: ["9M"], + frustration: ["7M"], + gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7L36"], + gravity: ["9M", "7T"], + harden: ["9L1", "8L1", "7L1"], + hex: ["9M"], + hiddenpower: ["7M"], + hypnosis: ["9L30", "8L30", "7L27"], + imprison: ["9M"], + infestation: ["7M"], + irondefense: ["9M", "9L40", "8M", "8L40", "7T", "7L32"], + megadrain: ["9L15", "8L15", "7L18"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + nightshade: ["9M"], + painsplit: ["7T"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + raindance: ["9M"], + recycle: ["7T"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + sandattack: ["9L20", "8L20", "7L9"], + sandstorm: ["9M", "9L60", "8M", "8L60", "7M", "7L54"], + sandtomb: ["9M", "9L10", "8M", "8L10", "7L14"], + scaryface: ["9M"], + scorchingsands: ["8T"], + shadowball: ["9M", "9L45", "8M", "8L45", "7M", "7L41"], + shoreup: ["9L55", "8L55", "7L50"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M"], + snore: ["8M", "7T"], + spite: ["9M", "7T"], + spitup: ["9E", "8E", "7E"], + stealthrock: ["9M", "8M", "7T"], + stockpile: ["9E", "8E", "7E"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + swallow: ["9E", "8E", "7E"], + terablast: ["9M"], + toxic: ["7M"], + trick: ["9M", "8M", "7T"], + }, + }, + palossand: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["9M", "8M"], + astonish: ["9L1", "8L1", "7L1"], + attract: ["8M", "7M"], + block: ["7T"], + bodyslam: ["9M"], + brine: ["8M"], + bulldoze: ["9M", "9L25", "8M", "8L25", "7M", "7L23"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + doubleteam: ["7M"], + earthpower: ["9M", "9L54", "8M", "8L54", "7T", "7L47"], + earthquake: ["9M", "8M", "7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7L36"], + gigaimpact: ["9M", "8M", "7M"], + gravity: ["9M", "7T"], + harden: ["9L1", "8L1", "7L1"], + hex: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + hypnosis: ["9L30", "8L30", "7L27"], + imprison: ["9M"], + infestation: ["7M"], + irondefense: ["9M", "9L40", "8M", "8L40", "7T", "7L32"], + megadrain: ["9L15", "8L15", "7L18"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + nightshade: ["9M"], + painsplit: ["7T"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + quash: ["7M"], + raindance: ["9M"], + recycle: ["7T"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + sandattack: ["9L20", "8L20", "7L1"], + sandstorm: ["9M", "9L68", "8M", "8L68", "7M", "7L60"], + sandtomb: ["9M", "9L1", "8M", "8L1", "7L14"], + scaryface: ["9M"], + scorchingsands: ["8T"], + shadowball: ["9M", "9L47", "8M", "8L47", "7M", "7L41"], + shoreup: ["9L61", "8L61", "7L54"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spite: ["9M", "7T"], + stealthrock: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M"], + trick: ["9M", "8M", "7T"], + }, + }, + pyukumuku: { + learnset: { + attract: ["8M", "7M"], + batonpass: ["8M", "8L1", "7L1"], + bestow: ["7E"], + bide: ["7L1"], + block: ["7T"], + confide: ["7M"], + counter: ["8L20", "7L17"], + curse: ["8L30", "7L25"], + doubleteam: ["7M"], + endure: ["8M", "7E"], + gastroacid: ["8L35", "7T", "7L29"], + hail: ["8M", "7M"], + harden: ["8L1", "7L1"], + helpinghand: ["8M", "8L5", "7T", "7L5"], + lightscreen: ["8M", "7M"], + memento: ["8L60", "7L49"], + mirrorcoat: ["8E"], + mudsport: ["7L1"], + painsplit: ["8L40", "7T", "7L33"], + protect: ["8M", "7M"], + psychup: ["7M"], + purify: ["8L25", "7L21"], + quash: ["7M"], + raindance: ["8M", "7M"], + recover: ["8L45", "7L37"], + recycle: ["7T"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + safeguard: ["8M", "8L15", "7M", "7L13"], + screech: ["8M"], + sleeptalk: ["8M", "7M"], + soak: ["8L50", "7L41"], + spite: ["8E", "7T", "7E"], + substitute: ["8M", "7M"], + swagger: ["8E", "7M"], + taunt: ["8M", "8L10", "7M", "7L9"], + tickle: ["8E", "7E"], + toxic: ["8L55", "7M", "7L45"], + venomdrench: ["8M", "7E"], + watersport: ["7L1"], + }, + }, + typenull: { + learnset: { + aerialace: ["8L5", "7M", "7L20"], + airslash: ["8M", "8L30", "7L60", "7S1"], + confide: ["7M"], + crushclaw: ["8L25", "7L25", "7S0"], + doubleedge: ["8L55", "7L80"], + doublehit: ["8L15", "7L55", "7S1"], + doubleteam: ["7M"], + dragonclaw: ["8M", "7M"], + endure: ["8M"], + facade: ["8M", "7M"], + flamecharge: ["7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + hail: ["8M", "7M"], + healblock: ["7L85"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + icywind: ["8M", "7T"], + imprison: ["8M", "8L1", "7L15"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "8L45", "8S2", "7T", "7L50", "7S1"], + lastresort: ["7T"], + magiccoat: ["7T"], + metalsound: ["8L20", "7L45", "7S1"], + payback: ["8M", "7M"], + protect: ["8M", "7M"], + punishment: ["7L65"], + pursuit: ["7L10"], + rage: ["7L5"], + raindance: ["8M", "7M"], + razorwind: ["7L70"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + round: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scaryface: ["8M", "8L10", "7L30", "7S0"], + shadowclaw: ["8M", "7M"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + takedown: ["8L50", "8S2", "7L40", "7S0"], + terrainpulse: ["8T"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + triattack: ["8M", "8L35", "8S2", "7L75"], + uturn: ["8M", "7M"], + workup: ["8M", "7M"], + xscissor: ["8M", "8L40", "8S2", "7M", "7L35", "7S0"], + }, + eventData: [ + {generation: 7, level: 40, shiny: 1, perfectIVs: 3, moves: ["crushclaw", "scaryface", "xscissor", "takedown"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, perfectIVs: 3, moves: ["metalsound", "ironhead", "doublehit", "airslash"], pokeball: "pokeball"}, + {generation: 8, level: 50, shiny: 1, perfectIVs: 3, moves: ["triattack", "xscissor", "ironhead", "takedown"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + silvally: { + learnset: { + aerialace: ["8L1", "7M", "7L20"], + airslash: ["8M", "8L30", "7L60"], + bite: ["8L1", "7L15"], + confide: ["7M"], + crunch: ["8M", "8L45", "7L50"], + crushclaw: ["8L25", "7L25"], + defog: ["7T"], + doubleedge: ["8L55", "7L80"], + doublehit: ["8L15", "7L55"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + endure: ["8M"], + explosion: ["8L1", "7M"], + facade: ["8M", "7M"], + firefang: ["8M", "8L1", "7L1"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + flashcannon: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grasspledge: ["8T", "7T"], + hail: ["8M", "7M"], + healblock: ["7L1"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + icebeam: ["8M", "7M"], + icefang: ["8M", "8L1", "7L1"], + icywind: ["8M", "7T"], + imprison: ["8M", "8L1", "7L1"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "8L1", "7T", "7L1"], + laserfocus: ["7T"], + lastresort: ["7T"], + magiccoat: ["7T"], + metalsound: ["8L20", "7L45"], + multiattack: ["8L0", "7L1", "7S0"], + outrage: ["8M", "7T"], + partingshot: ["8L60", "7L85", "7S0"], + payback: ["8M", "7M"], + poisonfang: ["8L1", "7L1"], + protect: ["8M", "7M"], + psychicfangs: ["8M"], + punishment: ["7L65", "7S0"], + pursuit: ["7L10"], + rage: ["7L5"], + raindance: ["8M", "7M"], + razorwind: ["7L70"], + rest: ["8M", "7M"], + return: ["7M"], + reversal: ["8M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + round: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scaryface: ["8M", "8L1", "7L30", "7S0"], + selfdestruct: ["8M"], + shadowball: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + steelbeam: ["8T"], + steelwing: ["8M", "7M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + tailwind: ["7T"], + takedown: ["8L50", "7L40"], + terrainpulse: ["8T"], + thunderbolt: ["8M", "7M"], + thunderfang: ["8M", "8L1", "7L1"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + triattack: ["8M", "8L35", "7L75"], + uturn: ["8M", "7M"], + workup: ["8M", "7M"], + xscissor: ["8M", "8L40", "7M", "7L35"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 100, shiny: true, moves: ["multiattack", "partingshot", "punishment", "scaryface"], pokeball: "cherishball"}, + ], + }, + minior: { + learnset: { + acrobatics: ["7M"], + ancientpower: ["7L17"], + attract: ["7M"], + autotomize: ["7L31"], + bulldoze: ["7M"], + calmmind: ["7M"], + chargebeam: ["7M"], + confide: ["7M"], + confuseray: ["7L10"], + cosmicpower: ["7L36"], + dazzlinggleam: ["7M"], + defensecurl: ["7L3"], + doubleedge: ["7L43"], + doubleteam: ["7M"], + earthquake: ["7M"], + endeavor: ["7T"], + explosion: ["7M", "7L50"], + facade: ["7M"], + frustration: ["7M"], + gigaimpact: ["7M"], + gravity: ["7T"], + gyroball: ["7M"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + ironhead: ["7T"], + lastresort: ["7T"], + lightscreen: ["7M"], + magnetrise: ["7T"], + powergem: ["7L38"], + protect: ["7M"], + psychic: ["7M"], + psychup: ["7M"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["7M"], + rocktomb: ["7M"], + rollout: ["7L8"], + round: ["7M"], + safeguard: ["7M"], + sandstorm: ["7M"], + selfdestruct: ["7L22"], + shellsmash: ["7L45"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + stealthrock: ["7T", "7L24"], + stoneedge: ["7M"], + substitute: ["7M"], + swagger: ["7M"], + swift: ["7L15"], + tackle: ["7L1"], + takedown: ["7L29"], + telekinesis: ["7T"], + toxic: ["7M"], + uturn: ["7M"], + zenheadbutt: ["7T"], + }, + }, + komala: { + learnset: { + acrobatics: ["9M", "7M"], + attract: ["7M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M"], + bulkup: ["9M", "7M"], + bulldoze: ["9M", "7M"], + calmmind: ["9M", "7M"], + charm: ["9M", "9E", "7E"], + confide: ["7M"], + defensecurl: ["9L1", "7L1"], + doubleteam: ["7M"], + earthquake: ["9M", "7M"], + endeavor: ["7T"], + endure: ["9M"], + facade: ["9M", "7M"], + flail: ["9L26", "7L26"], + fling: ["9M"], + frustration: ["7M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M", "7T"], + knockoff: ["9M", "7T"], + lastresort: ["7T"], + lowkick: ["9M"], + lowsweep: ["9M", "7M"], + metalclaw: ["9M"], + payback: ["7M"], + playrough: ["9M", "9E", "7E"], + protect: ["9M", "7M"], + psychup: ["9L36", "7M", "7L36"], + quash: ["7M"], + raindance: ["9M"], + rapidspin: ["9L11", "7L11"], + return: ["7M"], + reversal: ["9M"], + rockslide: ["9M", "7M"], + rocktomb: ["9M"], + rollout: ["9L1", "7L1"], + round: ["7M"], + seedbomb: ["9M"], + shadowclaw: ["9M", "7M"], + sing: ["9E", "7E"], + slam: ["9L21", "7L21"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + spitup: ["9L6", "7L6"], + stockpile: ["9L6", "7L6"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M"], + suckerpunch: ["9L31", "7L31"], + sunnyday: ["9M", "7M"], + superfang: ["9M"], + superpower: ["9E", "7T"], + swagger: ["7M"], + swallow: ["9L6", "7L6"], + swordsdance: ["9M", "7M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L46", "7L46"], + toxic: ["7M"], + trailblaze: ["9M"], + uturn: ["9M", "7M"], + wish: ["9E", "7E"], + woodhammer: ["9L41", "7L41"], + workup: ["7M"], + yawn: ["9L16", "7L16"], + zenheadbutt: ["9M", "7T"], + }, + }, + turtonator: { + learnset: { + attract: ["8M", "7M"], + block: ["7T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L32", "7L33", "7S0"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + burningjealousy: ["8T"], + chargebeam: ["7M"], + confide: ["7M"], + curse: ["8E"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + dragonpulse: ["8M", "8L28", "7T", "7L41"], + dragontail: ["7M", "7S1"], + earthquake: ["8M", "7M"], + ember: ["8L4", "7L1"], + endeavor: ["7T"], + endure: ["8M", "8L12", "7L21"], + explosion: ["8L52", "7M", "7L53"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + firespin: ["8M", "7E"], + flail: ["8L16", "7L17"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L36", "7M", "7L29", "7S0", "7S1"], + flashcannon: ["8M", "7M"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + headsmash: ["8E", "7E"], + heatcrash: ["8M"], + heatwave: ["8M", "7T"], + heavyslam: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + incinerate: ["8L20", "7L13"], + irondefense: ["8M", "8L24", "7T", "7L25"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T"], + lashout: ["8T"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "7T"], + overheat: ["8M", "8L48", "7M", "7L49"], + payback: ["8M", "7M"], + protect: ["8M", "8L8", "7M", "7L9"], + rapidspin: ["8E"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M", "7E"], + roar: ["7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + shellsmash: ["8L44", "7L37"], + shelltrap: ["8L40", "7L45", "7S1"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + smog: ["8L1", "7L5"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + tackle: ["8L1", "7L1"], + taunt: ["8M", "7M"], + toxic: ["7M"], + uproar: ["8M", "7T"], + venoshock: ["8M", "7M"], + wideguard: ["8E", "7E", "7S0"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, moves: ["flamethrower", "bodyslam", "wideguard"], pokeball: "cherishball"}, + {generation: 7, level: 30, gender: "M", nature: "Brave", moves: ["flamethrower", "shelltrap", "dragontail"], pokeball: "cherishball"}, + ], + }, + togedemaru: { + learnset: { + afteryou: ["7T"], + agility: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + charge: ["8L10", "7L13"], + chargebeam: ["7M"], + confide: ["7M"], + covet: ["7T"], + defensecurl: ["8L5", "7L5"], + disarmingvoice: ["8E", "7E"], + discharge: ["8L45", "7L29"], + doubleteam: ["7M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L50", "7L37"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + encore: ["8M", "7E"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["8E", "7E"], + fellstinger: ["8L20", "7L53"], + flail: ["8E", "7E"], + fling: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + gyroball: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["7T"], + magnetrise: ["8L35", "7T", "7L25"], + nuzzle: ["8L1", "7L21"], + payback: ["8M", "7M"], + pinmissile: ["8M", "8L30", "7L45"], + poisonjab: ["8M", "7M"], + present: ["8E", "7E"], + protect: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + reversal: ["8M", "7E"], + risingvoltage: ["8T"], + roleplay: ["7T"], + rollout: ["7L9"], + round: ["8M", "7M"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spark: ["8L25", "7L17"], + spikyshield: ["8L60", "7L49"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M"], + superfang: ["7T"], + swagger: ["7M"], + swift: ["8M"], + tackle: ["8L1", "7L1"], + thief: ["8M", "7M"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thundershock: ["8L15", "7L1"], + thunderwave: ["8M", "7M"], + tickle: ["8E", "7E"], + toxic: ["7M"], + twineedle: ["7E"], + uturn: ["8M", "7M"], + voltswitch: ["8M", "7M"], + wildcharge: ["8M", "8L55", "7M", "7L41"], + wish: ["8E", "7E"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + zingzap: ["8L40", "7L33"], + }, + }, + togedemarutotem: { + learnset: { + afteryou: ["7T"], + attract: ["7M"], + bounce: ["7T"], + charge: ["7L13"], + chargebeam: ["7M"], + confide: ["7M"], + covet: ["7T"], + defensecurl: ["7L5"], + discharge: ["7L29", "7S0"], + doubleteam: ["7M"], + electricterrain: ["7L37"], + electroweb: ["7T"], + endeavor: ["7T"], + facade: ["7M"], + fellstinger: ["7L53"], + fling: ["7M"], + frustration: ["7M"], + gigaimpact: ["7M"], + grassknot: ["7M"], + gravity: ["7T"], + gyroball: ["7M"], + helpinghand: ["7T"], + hiddenpower: ["7M"], + ironhead: ["7T"], + irontail: ["7T"], + lastresort: ["7T"], + magnetrise: ["7T", "7L25", "7S0"], + nuzzle: ["7L21", "7S0"], + payback: ["7M"], + pinmissile: ["7L45"], + poisonjab: ["7M"], + protect: ["7M"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + roleplay: ["7T"], + rollout: ["7L9"], + round: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + spark: ["7L17"], + spikyshield: ["7L49"], + substitute: ["7M"], + superfang: ["7T"], + swagger: ["7M"], + tackle: ["7L1"], + thief: ["7M"], + thunder: ["7M"], + thunderbolt: ["7M"], + thundershock: ["7L1"], + thunderwave: ["7M"], + toxic: ["7M"], + uturn: ["7M"], + voltswitch: ["7M"], + wildcharge: ["7M", "7L41"], + workup: ["7M"], + zenheadbutt: ["7T"], + zingzap: ["7L33", "7S0"], + }, + eventData: [ + {generation: 7, level: 30, perfectIVs: 3, moves: ["nuzzle", "magnetrise", "discharge", "zingzap"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + mimikyu: { + learnset: { + afteryou: ["7T"], + astonish: ["9L1", "8L1", "7L1", "7S0", "7S1"], + attract: ["8M", "7M"], + babydolleyes: ["9L18", "8L18", "7L10", "7S0"], + beatup: ["8M"], + bulkup: ["9M", "8M", "7M"], + burningjealousy: ["9M", "8T"], + chargebeam: ["7M"], + charm: ["9M", "9L48", "8M", "8L48", "7L28"], + confide: ["7M"], + confuseray: ["9M"], + copycat: ["9L1", "8L1", "7L1", "7S0", "7S1"], + covet: ["7T"], + curse: ["9E", "9S3", "8E", "7E"], + darkpulse: ["9M", "8M", "7M"], + dazzlinggleam: ["9M", "8M", "7M"], + destinybond: ["9E", "9S3", "8E", "7E", "7S2"], + doubleteam: ["9L12", "8L12", "7M", "7L5"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T"], + dreameater: ["7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + feintattack: ["7L23"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M"], + grudge: ["8E", "7E"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + honeclaws: ["9L30", "8L30", "7L41"], + hyperbeam: ["9M", "8M", "7M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["9M", "8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + magicroom: ["8M", "7T"], + mimic: ["9L24", "8L24", "7L19", "7S2"], + mistyterrain: ["9M"], + nightmare: ["7E"], + nightshade: ["9M"], + painsplit: ["9L60", "8L60", "7T", "7L50"], + payback: ["8M", "7M"], + phantomforce: ["9M", "9S3", "8M"], + playrough: ["9M", "9L54", "8M", "8L54", "7L46", "7S1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychup: ["7M"], + raindance: ["9M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scratch: ["9L1", "8L1", "7L1"], + screech: ["8M"], + shadowball: ["9M", "8M", "7M"], + shadowclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L37"], + shadowsneak: ["9L6", "8L6", "7L14"], + slash: ["9L36", "8L36", "7L32"], + sleeptalk: ["9M", "8M", "7M"], + snatch: ["7T", "7S2"], + snore: ["8M", "7T"], + spite: ["9M", "7T"], + splash: ["9L1", "8L1", "7L1", "7S0"], + substitute: ["9M", "8M", "7M", "7S1"], + sunnyday: ["9M"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "9S3", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "7S2"], + trickroom: ["9M", "8M", "7M"], + willowisp: ["9M", "8M", "7M"], + woodhammer: ["9L1", "8L1", "7L1"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M", "7M"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["copycat", "babydolleyes", "splash", "astonish"], pokeball: "cherishball"}, + {generation: 7, level: 10, shiny: true, moves: ["astonish", "playrough", "copycat", "substitute"], pokeball: "cherishball"}, + {generation: 7, level: 50, shiny: true, moves: ["mimic", "snatch", "trick", "destinybond"], pokeball: "cherishball"}, + {generation: 9, level: 25, moves: ["thunderbolt", "destinybond", "phantomforce", "curse"], pokeball: "cherishball"}, + ], + }, + mimikyutotem: { + learnset: { + afteryou: ["7T"], + astonish: ["7L1"], + attract: ["7M"], + babydolleyes: ["7L10"], + bulkup: ["7M"], + chargebeam: ["7M"], + charm: ["7L28", "7S0"], + confide: ["7M"], + copycat: ["7L1"], + covet: ["7T"], + darkpulse: ["7M"], + dazzlinggleam: ["7M"], + doubleteam: ["7M", "7L5"], + drainpunch: ["7T"], + dreameater: ["7M"], + embargo: ["7M"], + facade: ["7M"], + feintattack: ["7L23", "7S0"], + fling: ["7M"], + frustration: ["7M"], + gigadrain: ["7T"], + hiddenpower: ["7M"], + honeclaws: ["7L41"], + hyperbeam: ["7M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["7M"], + lightscreen: ["7M"], + magicroom: ["7T"], + mimic: ["7L19"], + painsplit: ["7T", "7L50"], + payback: ["7M"], + playrough: ["7L46"], + protect: ["7M"], + psychic: ["7M"], + psychup: ["7M"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + scratch: ["7L1"], + shadowball: ["7M"], + shadowclaw: ["7M", "7L37", "7S0"], + shadowsneak: ["7L14"], + slash: ["7L32", "7S0"], + sleeptalk: ["7M"], + snatch: ["7T"], + snore: ["7T"], + spite: ["7T"], + splash: ["7L1"], + substitute: ["7M"], + swagger: ["7M"], + swordsdance: ["7M"], + taunt: ["7M"], + telekinesis: ["7T"], + thief: ["7M"], + thunder: ["7M"], + thunderbolt: ["7M"], + thunderwave: ["7M"], + toxic: ["7M"], + trick: ["7T"], + trickroom: ["7M"], + willowisp: ["7M"], + woodhammer: ["7L1"], + workup: ["7M"], + xscissor: ["7M"], + }, + eventData: [ + {generation: 7, level: 40, perfectIVs: 3, moves: ["feintattack", "charm", "slash", "shadowclaw"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + bruxish: { + learnset: { + aerialace: ["7M"], + afteryou: ["7T"], + agility: ["9M"], + allyswitch: ["7T"], + aquajet: ["9L17", "7L17"], + aquatail: ["9L33", "7T", "7L33"], + astonish: ["9L4", "7L4"], + attract: ["7M"], + bite: ["9L12", "7L12"], + blizzard: ["9M", "7M"], + bulkup: ["9M", "7M"], + calmmind: ["9M", "7M"], + chillingwater: ["9M"], + confide: ["7M"], + confusion: ["9L9", "7L9"], + crunch: ["9M", "9L28", "7L28"], + disable: ["9L20", "7L20"], + doubleteam: ["7M"], + dreameater: ["7M"], + embargo: ["7M"], + endure: ["9M"], + facade: ["9M", "7M"], + fling: ["7M"], + flipturn: ["9M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigaimpact: ["9M", "7M"], + hiddenpower: ["7M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M"], + icefang: ["9M", "9E", "7E"], + icywind: ["9M"], + irontail: ["7T"], + lightscreen: ["9M", "7M"], + liquidation: ["9M", "7T"], + magiccoat: ["7T"], + magicroom: ["7T"], + painsplit: ["7T"], + payback: ["7M"], + poisonfang: ["9E", "7E"], + protect: ["9M", "7M"], + psychic: ["9M", "7M"], + psychicfangs: ["9M", "9L41", "7L41"], + psychicterrain: ["9M"], + psyshock: ["9M", "9L25"], + psywave: ["7L25"], + rage: ["7E"], + raindance: ["9M", "7M"], + reflect: ["9M", "7M"], + rest: ["9M", "7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + scald: ["7M"], + scaryface: ["9M"], + screech: ["9L36", "7L36"], + signalbeam: ["7T"], + sleeptalk: ["9M", "7M"], + snatch: ["7T"], + snore: ["7T"], + substitute: ["9M", "7M"], + superfang: ["9M", "9E"], + surf: ["9M", "7M"], + swagger: ["7M"], + swordsdance: ["9M", "7M"], + synchronoise: ["7L44"], + takedown: ["9M"], + taunt: ["9M", "7M"], + telekinesis: ["7T"], + terablast: ["9M"], + torment: ["7M"], + toxic: ["7M"], + trickroom: ["9M", "7M"], + uproar: ["7T"], + venoshock: ["9M", "7M"], + waterfall: ["9M", "7M"], + watergun: ["9L1", "7L1"], + waterpulse: ["9M", "9E", "7T", "7E"], + wavecrash: ["9L44"], + wonderroom: ["7T"], + }, + }, + drampa: { + learnset: { + amnesia: ["8M"], + attract: ["8M", "7M"], + blizzard: ["8M", "7M"], + block: ["7T"], + breakingswipe: ["8M"], + bulldoze: ["8M", "7M"], + calmmind: ["8M", "7M"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonbreath: ["8L25", "7L29"], + dragonclaw: ["8M", "7M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L35", "7T", "7L41"], + dragonrage: ["7L21"], + dragonrush: ["8E", "7E"], + dragontail: ["7M"], + earthquake: ["8M", "7M"], + echoedvoice: ["8L1", "7M", "7L1", "7S0"], + endeavor: ["7T"], + endure: ["8M"], + energyball: ["8M", "7M"], + extrasensory: ["8L30", "7L37"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + flamethrower: ["8M", "7M"], + fling: ["8M", "7M"], + fly: ["8M", "8L45", "7M", "7L45"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + glare: ["8L15", "7L13"], + grassknot: ["8M", "7M"], + heatwave: ["8M", "7T"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hurricane: ["8M", "7E", "7S0"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "8L50", "7T", "7L49"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + lashout: ["8T"], + lightscreen: ["8M", "8L40", "7M", "7L17"], + mist: ["8E", "7E"], + naturalgift: ["7L25"], + naturepower: ["7M"], + outrage: ["8M", "8L55", "7T", "7L53"], + playnice: ["8L1", "7L1", "7S0"], + playrough: ["8M", "7E"], + protect: ["8M", "8L10", "7M", "7L9"], + psychup: ["7M"], + raindance: ["8M", "7M"], + razorwind: ["7E"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "8L20", "7M", "7L33"], + scaleshot: ["8T"], + shadowball: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + steelwing: ["8M", "7M"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "7T"], + surf: ["8M", "7M"], + swift: ["8M"], + tailwind: ["7T"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + tickle: ["8E"], + toxic: ["7M"], + twister: ["8L5", "7L5"], + uproar: ["8M", "7T"], + waterpulse: ["7T"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, isHidden: true, moves: ["playnice", "echoedvoice", "hurricane"], pokeball: "cherishball"}, + ], + }, + dhelmise: { + learnset: { + absorb: ["8L1", "7L1"], + aerialace: ["7M"], + allyswitch: ["8M", "7T"], + anchorshot: ["8L52", "7L32"], + assurance: ["8M"], + astonish: ["8L4", "7L1"], + attract: ["7M"], + block: ["7T"], + bodypress: ["8M"], + brickbreak: ["8M", "7M"], + brine: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + doubleteam: ["7M"], + earthquake: ["8M", "7M"], + embargo: ["7M"], + endure: ["8M"], + energyball: ["8M", "8L56", "7M", "7L41"], + facade: ["8M", "7M"], + flashcannon: ["8M", "7M"], + frustration: ["7M"], + gigadrain: ["8M", "8L28", "7T", "7L23"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + grassyglide: ["8T"], + growth: ["8L16", "7L1"], + gyroball: ["8M", "8L20", "7M", "7L14"], + heavyslam: ["8M", "8L36", "7L50"], + helpinghand: ["8M", "7T"], + hex: ["8M"], + hiddenpower: ["7M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + liquidation: ["8M"], + megadrain: ["8L12", "7L5"], + metalsound: ["8L48", "7L18"], + muddywater: ["8M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + phantomforce: ["8M", "8L60", "7L54"], + poltergeist: ["8T"], + powerwhip: ["8M", "8L64", "7L59"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rapidspin: ["8L1", "7L1"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + shadowball: ["8M", "8L44", "7M", "7L36"], + shadowclaw: ["8M", "7M"], + slam: ["8L40", "7L45"], + sleeptalk: ["8M", "7M"], + sludgewave: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + solarblade: ["8M"], + spite: ["7T"], + steelroller: ["8T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + switcheroo: ["8L24", "7L1"], + swordsdance: ["8M", "7M"], + synthesis: ["7T"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + toxic: ["7M"], + whirlpool: ["8M", "8L32", "7L27"], + wrap: ["8L8", "7L9"], + }, + }, + jangmoo: { + learnset: { + aerialace: ["7M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + bide: ["7L9"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + confide: ["7M"], + counter: ["9E", "8E", "7E"], + doubleteam: ["7M"], + dracometeor: ["9M", "8T", "7T"], + dragonbreath: ["9E", "8E", "7E"], + dragonclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L41"], + dragondance: ["9M", "9L40", "8M", "8L40", "7L49"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "9L8", "8L8", "7M", "7L17"], + dualchop: ["7T"], + earthquake: ["9M", "8M", "7M"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + fling: ["8M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "9E", "8E"], + frustration: ["7M"], + headbutt: ["9L16", "8L16", "7L25"], + hiddenpower: ["7M"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L37"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + leer: ["9L1", "8L1", "7L5"], + lowkick: ["9M", "8M", "7T"], + nobleroar: ["9L36", "8L36", "7L45"], + outrage: ["9M", "9L44", "8M", "8L44", "7T", "7L53"], + payback: ["8M", "7M"], + protect: ["9M", "9L4", "8M", "8L4", "7M", "7L13"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M", "7E"], + roar: ["9M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L21"], + screech: ["9L24", "8M", "8L24", "7L33"], + shadowclaw: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + toxic: ["7M"], + uproar: ["8M", "7T"], + workup: ["9L20", "8M", "8L20", "7M", "7L29"], + xscissor: ["9M", "8M", "7M"], + }, + }, + hakamoo: { + learnset: { + aerialace: ["9M", "7M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + autotomize: ["8L1", "7L1"], + bide: ["7L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + closecombat: ["9M", "9L56", "8M", "8L56", "7L63"], + coaching: ["8T"], + confide: ["7M"], + doubleteam: ["7M"], + dracometeor: ["9M", "8T", "7T"], + dragonclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L43"], + dragondance: ["9M", "9L44", "8M", "8L44", "7L53"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "9L1", "8L1", "7M", "7L17"], + drainpunch: ["9M", "8M", "7T"], + dualchop: ["7T"], + earthquake: ["9M", "8M", "7M"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M"], + frustration: ["7M"], + headbutt: ["9L16", "8L16", "7L25"], + hiddenpower: ["7M"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L38"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + leer: ["9L1", "8L1", "7L1"], + lowkick: ["9M", "8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + nobleroar: ["9L38", "8L38", "7L48"], + outrage: ["9M", "9L50", "8M", "8L50", "7T", "7L58"], + payback: ["8M", "7M"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L21"], + screech: ["9L24", "8M", "8L24", "7L33"], + shadowclaw: ["9M", "8M", "7M"], + skyuppercut: ["7L1"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + toxic: ["7M"], + uproar: ["8M", "7T"], + vacuumwave: ["9M"], + workup: ["9L20", "8M", "8L20", "7M", "7L29"], + xscissor: ["9M", "8M", "7M"], + }, + }, + kommoo: { + learnset: { + aerialace: ["9M", "7M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + aurasphere: ["9M", "8M"], + autotomize: ["8L1", "7L1"], + bellydrum: ["9L1", "8L1", "7L1"], + bide: ["7L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + boomburst: ["9L76", "8L76"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + clangingscales: ["9L0", "8L0", "7L1"], + clangoroussoul: ["9L68", "8L68"], + closecombat: ["9M", "9L60", "8M", "8L60", "7L75"], + coaching: ["8T"], + confide: ["7M"], + doubleteam: ["7M"], + dracometeor: ["9M", "8T", "7T"], + dragonclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L43"], + dragondance: ["9M", "9L44", "8M", "8L44", "7L59"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "9L1", "8L1", "7M", "7L17"], + drainpunch: ["9M", "8M", "7T"], + dualchop: ["7T"], + earthquake: ["9M", "8M", "7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + firepunch: ["9M", "8M", "7T"], + flamethrower: ["9M", "8M", "7M"], + flashcannon: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["9M", "7T"], + frustration: ["7M"], + gigaimpact: ["9M", "8M", "7M"], + headbutt: ["9L16", "8L16", "7L25"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + hypervoice: ["9M", "8M", "7T"], + icepunch: ["9M", "8M", "7T"], + irondefense: ["9M", "9L28", "8M", "8L28", "7T", "7L38"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1"], + lowkick: ["9M", "8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + nobleroar: ["9L38", "8L38", "7L51"], + outrage: ["9M", "9L52", "8M", "8L52", "7T", "7L67"], + payback: ["8M", "7M"], + poisonjab: ["9M", "8M", "7M"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + raindance: ["9M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + roar: ["9M", "7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L21"], + screech: ["9L24", "8M", "8L24", "7L33"], + shadowclaw: ["9M", "8M", "7M"], + shockwave: ["7T"], + skyuppercut: ["7L1"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8M", "7T"], + stompingtantrum: ["9M", "8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "7T"], + toxic: ["7M"], + uproar: ["8M", "7T"], + vacuumwave: ["9M"], + waterpulse: ["7T"], + workup: ["9L20", "8M", "8L20", "7M", "7L29"], + xscissor: ["9M", "8M", "7M"], + }, + encounters: [ + {generation: 7, level: 41}, + ], + }, + kommoototem: { + learnset: { + aerialace: ["7M"], + aquatail: ["7T"], + attract: ["7M"], + autotomize: ["7L1"], + bellydrum: ["7L1"], + bide: ["7L1"], + brickbreak: ["7M"], + brutalswing: ["7M"], + bulkup: ["7M"], + bulldoze: ["7M"], + clangingscales: ["7L1"], + closecombat: ["7L75"], + confide: ["7M"], + doubleteam: ["7M"], + dracometeor: ["7T"], + dragonclaw: ["7M", "7L43", "7S0"], + dragondance: ["7L59"], + dragonpulse: ["7T"], + dragontail: ["7M", "7L17"], + drainpunch: ["7T"], + dualchop: ["7T"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + facade: ["7M"], + falseswipe: ["7M"], + firepunch: ["7T"], + flamethrower: ["7M"], + flashcannon: ["7M"], + fling: ["7M"], + focusblast: ["7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["7M"], + headbutt: ["7L25"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + hypervoice: ["7T"], + icepunch: ["7T"], + irondefense: ["7T", "7L38", "7S0"], + ironhead: ["7T"], + irontail: ["7T"], + laserfocus: ["7T"], + leer: ["7L1"], + lowkick: ["7T"], + nobleroar: ["7L51"], + outrage: ["7T", "7L67"], + payback: ["7M"], + poisonjab: ["7M"], + protect: ["7M", "7L1"], + rest: ["7M"], + return: ["7M"], + roar: ["7M"], + rockpolish: ["7M"], + rockslide: ["7M"], + rocktomb: ["7M"], + round: ["7M"], + safeguard: ["7M"], + sandstorm: ["7M"], + scaryface: ["7L21"], + screech: ["7L33", "7S0"], + shadowclaw: ["7M"], + shockwave: ["7T"], + skyuppercut: ["7L1"], + sleeptalk: ["7M"], + snore: ["7T"], + stealthrock: ["7T"], + stompingtantrum: ["7T"], + substitute: ["7M"], + superpower: ["7T"], + swagger: ["7M"], + swordsdance: ["7M"], + tackle: ["7L1"], + taunt: ["7M"], + thunderpunch: ["7T"], + toxic: ["7M"], + uproar: ["7T"], + waterpulse: ["7T"], + workup: ["7M", "7L29", "7S0"], + xscissor: ["7M"], + }, + eventData: [ + {generation: 7, level: 50, perfectIVs: 3, moves: ["workup", "screech", "irondefense", "dragonclaw"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + tapukoko: { + learnset: { + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + agility: ["8M", "8L35", "7L53", "7S0", "7S1"], + assurance: ["8M"], + bravebird: ["8M", "8L65", "8S3", "7L1"], + calmmind: ["8M", "7M"], + charge: ["8L30", "7L26"], + confide: ["7M"], + dazzlinggleam: ["8M", "7M", "7S2"], + defog: ["7T"], + discharge: ["8L45", "7L48", "7S0", "7S1"], + doubleteam: ["7M"], + echoedvoice: ["7M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L75", "7L1"], + electroball: ["8M", "7L58", "7S0", "7S1"], + electroweb: ["8M", "7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fairywind: ["8L10"], + falseswipe: ["8M", "8L15", "7M", "7L1"], + fly: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + lightscreen: ["8M", "7M"], + meanlook: ["8L50", "7L1"], + mirrormove: ["7L38"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1", "7S2"], + powerswap: ["8M", "8L70", "7L1"], + protect: ["8M", "7M"], + psychup: ["7M"], + quickattack: ["8L1", "8S3", "7L1"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M"], + return: ["7M"], + roar: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + screech: ["8M", "8L40", "7L20"], + shockwave: ["8L25", "7T", "7L14"], + skyattack: ["7T"], + skydrop: ["7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spark: ["8L20", "7L8"], + steelwing: ["8M", "7M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + taunt: ["8M", "8S3", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "8S3", "7M", "7S2"], + thunderpunch: ["8M", "7T"], + thundershock: ["8L1", "7L1"], + thunderwave: ["8M", "7M"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M"], + voltswitch: ["8M", "7M", "7S2"], + wildcharge: ["8M", "8L60", "7M", "7L32"], + withdraw: ["8L5", "7L1"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "discharge", "agility", "electroball"]}, + {generation: 7, level: 60, shiny: true, nature: "Timid", moves: ["naturesmadness", "discharge", "agility", "electroball"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: true, moves: ["thunderbolt", "dazzlinggleam", "voltswitch", "naturesmadness"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["thunderbolt", "quickattack", "bravebird", "taunt"]}, + ], + eventOnly: true, + }, + tapulele: { + learnset: { + allyswitch: ["8M", "7T"], + aromatherapy: ["8L10", "7L1"], + aromaticmist: ["8L30", "7L1"], + astonish: ["8L1", "7L1"], + calmmind: ["8M", "7M"], + chargebeam: ["7M"], + charm: ["8M", "8S2"], + confide: ["7M"], + confusion: ["8L1", "7L1"], + dazzlinggleam: ["8M", "7M"], + doubleteam: ["7M"], + drainingkiss: ["8M", "8L15", "7L1"], + echoedvoice: ["7M"], + endure: ["8M"], + energyball: ["8M", "7M"], + extrasensory: ["8L40", "7L48", "7S0", "7S1"], + facade: ["8M", "7M"], + flatter: ["8L25", "7L53", "7S0", "7S1"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + guardswap: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "8S2", "7T"], + meanlook: ["8L50", "7L1"], + moonblast: ["8L60", "7L58", "7S0", "7S1"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1"], + playrough: ["8M", "8S2"], + powerswap: ["8M"], + protect: ["8M", "7M"], + psybeam: ["8L20", "7L14"], + psychic: ["8M", "8S2", "7M"], + psychicterrain: ["8M", "8L75", "7L1"], + psychocut: ["8M"], + psychup: ["7M"], + psyshock: ["8M", "8L45", "7M", "7L32"], + psywave: ["7L8"], + reflect: ["8M", "7M"], + rest: ["8M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + shadowball: ["8M", "7M"], + skillswap: ["8M", "8L70", "7T", "7L26"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + speedswap: ["8M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + sweetscent: ["8L35", "7L20"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + tickle: ["8L65", "7L38"], + torment: ["7M"], + toxic: ["7M"], + withdraw: ["8L5", "7L1"], + wonderroom: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "extrasensory", "flatter", "moonblast"]}, + {generation: 7, level: 60, shiny: true, moves: ["naturesmadness", "extrasensory", "flatter", "moonblast"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "playrough", "magicroom", "charm"]}, + ], + eventOnly: true, + }, + tapubulu: { + learnset: { + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + bulletseed: ["8M"], + calmmind: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M"], + darkestlariat: ["8M"], + dazzlinggleam: ["8M", "7M"], + disable: ["8L10", "7L1"], + dualchop: ["7T"], + echoedvoice: ["7M"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigadrain: ["8M", "7T", "7L14"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + grassyterrain: ["8M", "8L75", "7L1"], + guardswap: ["8M"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hornattack: ["8L30", "7L8"], + hornleech: ["8L40", "7L32"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + leafage: ["8L1", "7L1"], + leechseed: ["8L15", "7L26"], + lightscreen: ["8M", "7M"], + meanlook: ["8L50", "7L1"], + megadrain: ["8L20"], + megahorn: ["8M", "8L65", "8S2", "7L53", "7S0", "7S1"], + megapunch: ["8M"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1"], + payback: ["8M", "7M"], + powerswap: ["8M"], + protect: ["8M", "7M"], + psychup: ["7M"], + reflect: ["8M", "7M"], + rest: ["8M"], + return: ["7M"], + revenge: ["8M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocksmash: ["8L1"], + rocktomb: ["8M", "7M"], + rototiller: ["7L38"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["8M", "8L35", "8S2", "7L20"], + seedbomb: ["8M", "7T"], + skullbash: ["8L70", "7L58", "7S0", "7S1"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + stoneedge: ["8M", "7M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "8S2", "7T", "7L1"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + synthesis: ["7T"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + torment: ["7M"], + toxic: ["7M"], + whirlwind: ["8L25", "7L1"], + withdraw: ["8L5", "7L1"], + woodhammer: ["8L60", "8S2", "7L1"], + workup: ["8M", "7M"], + worryseed: ["7T"], + zenheadbutt: ["8M", "8L45", "7T", "7L48", "7S0", "7S1"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "zenheadbutt", "megahorn", "skullbash"]}, + {generation: 7, level: 60, shiny: true, moves: ["naturesmadness", "zenheadbutt", "megahorn", "skullbash"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["superpower", "megahorn", "woodhammer", "scaryface"]}, + ], + eventOnly: true, + }, + tapufini: { + learnset: { + aquaring: ["8L15", "7L53", "7S0", "7S1"], + blizzard: ["8M", "7M"], + brine: ["8M", "8L25", "8S2", "7L32"], + calmmind: ["8M", "7M"], + confide: ["7M"], + dazzlinggleam: ["8M", "7M"], + defog: ["8L30", "7T", "7L38"], + disarmingvoice: ["8L1"], + dive: ["8M"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + guardswap: ["8M"], + haze: ["8L10", "7L1"], + healpulse: ["8L35", "7L1"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L65", "7L58", "7S0", "7S1"], + hyperbeam: ["8M", "7M"], + icebeam: ["8M", "7M"], + icepunch: ["8M", "7T"], + icywind: ["8M", "7T"], + irondefense: ["8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + meanlook: ["8L50", "7L1"], + mist: ["8L10", "7L1"], + mistyterrain: ["8M", "8L75", "7L1"], + moonblast: ["8L60", "8S2", "7L1"], + muddywater: ["8M", "8L45", "7L48", "7S0", "7S1"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1"], + playrough: ["8M"], + protect: ["8M", "7M"], + psychup: ["7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + refresh: ["7L26"], + rest: ["8M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + shadowball: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L70", "7L20"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + surf: ["8M", "8L40", "7M"], + swagger: ["7M"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + torment: ["7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpulse: ["8L20", "8S2", "7T", "7L8"], + whirlpool: ["8M", "8S2", "7L14"], + withdraw: ["8L5", "7L1"], + wonderroom: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "muddywater", "aquaring", "hydropump"]}, + {generation: 7, level: 60, shiny: true, moves: ["naturesmadness", "muddywater", "aquaring", "hydropump"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["whirlpool", "waterpulse", "brine", "moonblast"]}, + ], + eventOnly: true, + }, + cosmog: { + learnset: { + splash: ["8L1", "8S1", "7L1", "7S0"], + teleport: ["8L1", "8S1", "7L23"], + }, + eventData: [ + {generation: 7, level: 5, moves: ["splash"]}, + {generation: 8, level: 5, moves: ["splash", "teleport"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + cosmoem: { + learnset: { + cosmicpower: ["8M", "8L0", "7L1"], + teleport: ["8L1", "7L1"], + }, + }, + solgaleo: { + learnset: { + agility: ["8M"], + bulldoze: ["8M", "7M"], + calmmind: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M"], + cosmicpower: ["8M", "8L1", "7L1", "7S0", "7S1"], + crunch: ["8M", "8L42", "7L37", "7S0", "7S1"], + doubleteam: ["7M"], + earthquake: ["8M", "7M"], + endeavor: ["7T"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + firespin: ["8M", "8S3"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + flareblitz: ["8M", "8L70", "7L61"], + flashcannon: ["8M", "8L28", "7M", "7L23"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "8L84", "7M", "7L73"], + gyroball: ["8M", "7M"], + heatcrash: ["8M"], + heavyslam: ["8M"], + helpinghand: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "8L7", "7T", "7L7"], + irontail: ["8M", "8S3", "7T"], + knockoff: ["7T"], + lastresort: ["7T"], + lightscreen: ["8M", "7M"], + metalburst: ["8L49", "7L43"], + metalclaw: ["8L1", "7L1"], + metalsound: ["8L14", "7L13"], + meteorbeam: ["8T"], + morningsun: ["8L35", "7L31", "7S2"], + mysticalfire: ["8M"], + nobleroar: ["8L1", "8S3", "7L59", "7S2"], + outrage: ["8M", "7T"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychicfangs: ["8M"], + psychup: ["7M"], + psyshock: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["8M"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "8L63", "7M", "7L47"], + steelbeam: ["8T"], + steelroller: ["8T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + sunsteelstrike: ["8L0", "7L1", "7S0", "7S1", "7S2"], + superpower: ["8M", "7T"], + swagger: ["7M"], + swift: ["8M"], + teleport: ["8L1", "7L1"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + trickroom: ["8M", "7M"], + wakeupslap: ["7L1"], + wideguard: ["8L77", "7L67"], + wildcharge: ["8M", "8L56", "7M"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "8L21", "8S3", "7T", "7L19", "7S0", "7S1", "7S2"], + }, + eventData: [ + {generation: 7, level: 55, moves: ["sunsteelstrike", "cosmicpower", "crunch", "zenheadbutt"]}, + {generation: 7, level: 60, moves: ["sunsteelstrike", "cosmicpower", "crunch", "zenheadbutt"]}, + {generation: 7, level: 60, shiny: true, moves: ["sunsteelstrike", "zenheadbutt", "nobleroar", "morningsun"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["zenheadbutt", "firespin", "irontail", "nobleroar"]}, + ], + }, + lunala: { + learnset: { + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + agility: ["8M"], + airslash: ["8M", "8L21", "7L19"], + blizzard: ["8M", "7M"], + calmmind: ["8M", "7M"], + chargebeam: ["7M"], + confide: ["7M"], + confuseray: ["8L14", "7L13"], + confusion: ["8L1", "7L1"], + cosmicpower: ["8M", "8L1", "7L1", "7S0", "7S1"], + dazzlinggleam: ["8M", "7M"], + defog: ["7T"], + doubleteam: ["7M"], + dreameater: ["8L70", "7M", "7L59"], + dualwingbeat: ["8T"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M"], + fly: ["8M", "7M"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M"], + heatwave: ["8M", "7T"], + helpinghand: ["8M"], + hex: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8L84", "7M", "7L73"], + hypnosis: ["8L1", "7L1"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["8L49", "8S3", "7T", "7L43"], + magicroom: ["8M", "7T"], + meteorbeam: ["8T"], + moonblast: ["8L56", "8S3", "7L47", "7S2"], + moongeistbeam: ["8L0", "7L1", "7S0", "7S1", "7S2"], + moonlight: ["8L35", "7L31", "7S2"], + nightdaze: ["8L42", "7L37", "7S0", "7S1"], + nightshade: ["8L7", "7L7"], + phantomforce: ["8M", "8L63", "7L61"], + poltergeist: ["8T"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychocut: ["8M"], + psychup: ["7M"], + psyshock: ["8M", "7M", "7S2"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["8M"], + shadowball: ["8M", "8L28", "8S3", "7M", "7L23", "7S0", "7S1"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skyattack: ["7T"], + skydrop: ["7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spite: ["7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M", "8S3"], + tailwind: ["7T"], + telekinesis: ["7T"], + teleport: ["8L1", "7L1"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + trickroom: ["8M", "7M"], + wideguard: ["8L77", "7L67"], + willowisp: ["8M", "7M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 55, moves: ["moongeistbeam", "cosmicpower", "nightdaze", "shadowball"]}, + {generation: 7, level: 60, moves: ["moongeistbeam", "cosmicpower", "nightdaze", "shadowball"]}, + {generation: 7, level: 60, shiny: true, moves: ["moongeistbeam", "psyshock", "moonblast", "moonlight"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["shadowball", "moonblast", "magiccoat", "swift"]}, + ], + }, + nihilego: { + learnset: { + acid: ["8L5", "7L1"], + acidspray: ["8L15", "8S2", "7L47", "7S0", "7S1"], + allyswitch: ["8M", "7T"], + bind: ["7T"], + bodyslam: ["8M"], + brutalswing: ["8M", "8S2", "7M"], + chargebeam: ["7M"], + clearsmog: ["8L20", "7L7"], + confide: ["7M"], + constrict: ["7L1"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + dazzlinggleam: ["8M", "7M"], + doubleteam: ["7M"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + grassknot: ["8M", "7M"], + guardsplit: ["8L25", "7L1"], + gunkshot: ["8M", "7T"], + headbutt: ["8L35", "7L19"], + headsmash: ["8L70", "7L73"], + hex: ["8M"], + hiddenpower: ["7M"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + meteorbeam: ["8T"], + mirrorcoat: ["8L60", "7L43", "7S0", "7S1"], + painsplit: ["7T"], + poisonjab: ["8M", "7M"], + pound: ["8L1", "7L1"], + powergem: ["8M", "8L50", "7L37", "7S0", "7S1"], + powersplit: ["8L25", "7L1"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psyshock: ["8M", "7M"], + psywave: ["7L13"], + reflect: ["7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M"], + rocktomb: ["8M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "7L31"], + sandstorm: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "8S2", "7M"], + snore: ["8M", "7T"], + spite: ["7T"], + stealthrock: ["8M", "8L55", "7T", "7L59", "7S1"], + substitute: ["8M", "7M"], + swagger: ["7M"], + telekinesis: ["7T"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + tickle: ["8L10", "7L1"], + toxic: ["7M"], + toxicspikes: ["8M", "8L40", "7L29"], + trickroom: ["8M", "7M"], + venomdrench: ["8M", "8L45", "7L53", "7S0"], + venoshock: ["8M", "8L30", "7M", "7L23"], + wonderroom: ["8M", "8L65", "8S2", "7T", "7L67"], + worryseed: ["7T"], + wrap: ["8L1"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 55, moves: ["powergem", "mirrorcoat", "acidspray", "venomdrench"]}, + {generation: 7, level: 60, shiny: 1, moves: ["powergem", "acidspray", "stealthrock", "mirrorcoat"]}, + {generation: 8, level: 70, shiny: 1, moves: ["wonderroom", "sludgewave", "brutalswing", "acidspray"]}, + ], + eventOnly: true, + }, + buzzwole: { + learnset: { + bodyslam: ["8M"], + bounce: ["8M", "7T"], + brickbreak: ["8M", "7M"], + bugbite: ["7T"], + bulkup: ["8M", "8L20", "7M", "7L13"], + bulldoze: ["8M", "7M"], + closecombat: ["8M"], + coaching: ["8T"], + cometpunch: ["7L7"], + confide: ["7M"], + counter: ["8L55", "7L43", "7S0", "7S1"], + darkestlariat: ["8M"], + doubleteam: ["7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + dualwingbeat: ["8T"], + dynamicpunch: ["8L50", "8S2", "7L59", "7S0", "7S1"], + earthquake: ["8M", "7M"], + endeavor: ["7T"], + endure: ["8M", "8L25", "7L23"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + fellstinger: ["8L10", "7L1"], + fling: ["8M", "7M"], + focusenergy: ["8M", "8L45", "7L1"], + focuspunch: ["8L70", "7T", "7L73"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + gyroball: ["8M", "7M"], + hammerarm: ["8L60", "7L47", "7S0", "7S1"], + harden: ["8L1", "7L1"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + icepunch: ["8M", "7T", "7L1"], + ironhead: ["8M", "7T"], + leechlife: ["8M", "8S2", "7M", "7L29"], + lowsweep: ["8M", "7M"], + lunge: ["8L40", "7L53", "7S0", "7S1"], + megapunch: ["8M", "8L35", "7L37"], + outrage: ["8M", "7T"], + payback: ["8M", "7M"], + poisonjab: ["8M", "7M"], + poweruppunch: ["8L1", "8S2", "7L1"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M", "8L30", "7L1"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roost: ["7M"], + round: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + superpower: ["8M", "8L65", "7T", "7L67"], + swagger: ["7M"], + taunt: ["8M", "8L5", "8S2", "7M", "7L31"], + thunderpunch: ["8M", "7T", "7L1"], + toxic: ["7M"], + vitalthrow: ["8L15", "7L19"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 65, moves: ["counter", "hammerarm", "lunge", "dynamicpunch"]}, + {generation: 7, level: 60, shiny: 1, moves: ["counter", "hammerarm", "lunge", "dynamicpunch"]}, + {generation: 8, level: 70, shiny: 1, moves: ["poweruppunch", "taunt", "leechlife", "dynamicpunch"]}, + ], + eventOnly: true, + }, + pheromosa: { + learnset: { + agility: ["8M", "8L40", "7L37"], + assurance: ["8M"], + blizzard: ["8M", "7M"], + block: ["7T"], + bounce: ["8M", "8L50", "7T", "7L29"], + brickbreak: ["8M", "7M"], + bugbite: ["8L15", "7T"], + bugbuzz: ["8M", "8L60", "7L53", "7S0", "7S1"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M"], + doublekick: ["8L25", "7L1"], + doubleteam: ["7M"], + drillrun: ["8M", "7T"], + echoedvoice: ["7M"], + electroweb: ["8M", "7T"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + feint: ["8L1", "7L19"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + hiddenpower: ["7M"], + highjumpkick: ["8L70", "8S2", "7L67"], + hyperbeam: ["8M", "7M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + jumpkick: ["7L31"], + laserfocus: ["7T"], + leer: ["8L5", "7L1"], + lowkick: ["8M", "8L20", "7T", "7L1"], + lowsweep: ["8M", "7M"], + lunge: ["8L45", "8S2", "7L47", "7S0", "7S1"], + mefirst: ["7L59", "7S0", "7S1"], + outrage: ["8M", "7T"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + quickguard: ["8L10", "7L1"], + quiverdance: ["8L65", "7L1"], + rapidspin: ["8L1", "7L1"], + rest: ["8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + silverwind: ["7L23"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + speedswap: ["8M", "8L55", "7L73"], + stomp: ["8L35", "7L13"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M", "8S2", "7L7"], + taunt: ["8M", "7M"], + throatchop: ["8M", "8S2", "7T"], + torment: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + triplekick: ["8L30", "7L43", "7S0", "7S1"], + uturn: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["triplekick", "lunge", "bugbuzz", "mefirst"]}, + {generation: 7, level: 60, shiny: 1, moves: ["triplekick", "lunge", "bugbuzz", "mefirst"]}, + {generation: 8, level: 70, shiny: 1, moves: ["highjumpkick", "swift", "throatchop", "lunge"]}, + ], + eventOnly: true, + }, + xurkitree: { + learnset: { + bind: ["7T"], + brutalswing: ["8M", "8S2", "7M"], + calmmind: ["8M", "7M"], + charge: ["8L5", "7L1"], + chargebeam: ["7M"], + confide: ["7M"], + dazzlinggleam: ["8M", "7M"], + discharge: ["8L45", "8S2", "7L47", "7S0", "7S1"], + doubleteam: ["7M"], + eerieimpulse: ["8M", "8L35", "8S2", "7L29"], + electricterrain: ["8M", "8L60", "7L53", "7S0", "7S1"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypnosis: ["8L30", "7L43", "7S0", "7S1"], + ingrain: ["8L15", "7L19"], + iondeluge: ["7L67"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magnetrise: ["8L50", "7T"], + naturepower: ["7M"], + powerwhip: ["8M", "8L65", "8S2", "7L59", "7S0", "7S1"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["8L25", "7T", "7L13"], + signalbeam: ["7T", "7L31"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spark: ["8L20", "7L1"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + tailglow: ["7L1"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "8L55", "7M", "7L37"], + thunderpunch: ["8M", "8L40", "7T", "7L23"], + thundershock: ["8L1", "7L1"], + thunderwave: ["8M", "8L10", "7M", "7L7"], + toxic: ["7M"], + voltswitch: ["8M", "7M"], + wildcharge: ["8M", "7M"], + wrap: ["8L1", "7L1"], + zapcannon: ["8L70", "7L73"], + }, + eventData: [ + {generation: 7, level: 65, moves: ["hypnosis", "discharge", "electricterrain", "powerwhip"]}, + {generation: 7, level: 60, shiny: 1, moves: ["hypnosis", "discharge", "electricterrain", "powerwhip"]}, + {generation: 8, level: 70, shiny: 1, moves: ["powerwhip", "discharge", "eerieimpulse", "brutalswing"]}, + ], + eventOnly: true, + }, + celesteela: { + learnset: { + absorb: ["8L1", "7L1"], + acrobatics: ["8M", "7M"], + airslash: ["8M", "7L1"], + autotomize: ["8L30", "7L43", "7S0", "7S1"], + block: ["7T"], + bodyslam: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + doubleedge: ["8L65", "7L73"], + doubleteam: ["7M"], + earthquake: ["8M", "8S2", "7M"], + endure: ["8M"], + energyball: ["8M", "7M"], + explosion: ["7M"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + flashcannon: ["8M", "8L40", "7M", "7L37"], + fly: ["8M", "7M"], + frustration: ["7M"], + gigadrain: ["8M", "8L35", "7T", "7L31"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + gyroball: ["8M", "8S2", "7M"], + harden: ["8L5", "7L1"], + heavyslam: ["8M", "8L60", "7L67"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + ingrain: ["8L25", "7L1"], + irondefense: ["8M", "8L50", "7T", "7L59", "7S0", "7S1"], + ironhead: ["8M", "7T", "7L29"], + leechseed: ["8L55", "8S2", "7L19"], + magnetrise: ["7T"], + megadrain: ["8L15", "7L13"], + megahorn: ["8M"], + metalsound: ["8L45", "7L23"], + meteorbeam: ["8T"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + round: ["8M", "7M"], + seedbomb: ["8M", "7T", "7L47", "7S0", "7S1"], + selfdestruct: ["8M"], + shockwave: ["7T"], + skullbash: ["8L70", "7L53", "7S0", "7S1"], + sleeptalk: ["8M", "7M"], + smackdown: ["8L20", "8S2", "7M", "7L7"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + tackle: ["8L1", "7L1"], + toxic: ["7M"], + wideguard: ["8L10", "7L1"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 65, moves: ["autotomize", "seedbomb", "skullbash", "irondefense"]}, + {generation: 7, level: 60, shiny: 1, moves: ["autotomize", "seedbomb", "skullbash", "irondefense"]}, + {generation: 8, level: 70, shiny: 1, moves: ["leechseed", "smackdown", "gyroball", "earthquake"]}, + ], + eventOnly: true, + }, + kartana: { + learnset: { + aerialace: ["8L25", "7M", "7L23"], + aircutter: ["8L20", "8S2", "7L1"], + airslash: ["8M", "7L59", "7S0", "7S1"], + brickbreak: ["8M", "7M"], + calmmind: ["8M", "7M"], + confide: ["7M"], + cut: ["8L15", "7L1"], + defog: ["8L50", "7T", "7L1"], + detect: ["8L30", "7L53", "7S0", "7S1"], + doubleteam: ["7M"], + endure: ["8M"], + falseswipe: ["8M", "8L10", "7M", "7L7"], + frustration: ["7M"], + furycutter: ["8L1", "7L1"], + gigadrain: ["8M", "7T"], + gigaimpact: ["8M", "7M"], + guillotine: ["8L70", "7L73"], + hiddenpower: ["7M"], + irondefense: ["8M", "7T"], + knockoff: ["7T"], + laserfocus: ["8L45", "7T", "7L29"], + lastresort: ["7T"], + leafblade: ["8M", "8L55", "8S2", "7L43", "7S0", "7S1"], + nightslash: ["8L35", "7L31"], + protect: ["8M", "7M"], + psychocut: ["8M", "7L67"], + razorleaf: ["8L5", "7L13"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + sacredsword: ["8L60", "7L1"], + screech: ["8M"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + solarblade: ["8M"], + steelbeam: ["8T"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swordsdance: ["8M", "8L65", "8S2", "7M", "7L37"], + synthesis: ["8L40", "7T", "7L19"], + tailwind: ["7T"], + toxic: ["7M"], + vacuumwave: ["8L1", "8S2", "7L1"], + xscissor: ["8M", "7M", "7L47", "7S0", "7S1"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["leafblade", "xscissor", "detect", "airslash"]}, + {generation: 7, level: 60, shiny: 1, moves: ["leafblade", "xscissor", "detect", "airslash"]}, + {generation: 8, level: 70, shiny: 1, moves: ["vacuumwave", "aircutter", "leafblade", "swordsdance"]}, + ], + eventOnly: true, + }, + guzzlord: { + learnset: { + amnesia: ["8M"], + belch: ["8L60", "7L1"], + bite: ["8L1", "7L1"], + bodypress: ["8M"], + bodyslam: ["8M", "8L35"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "8S2", "7M", "7L13"], + bulldoze: ["8M", "7M"], + corrosivegas: ["8T"], + crunch: ["8M", "8L30", "7L37"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + dragonpulse: ["8M", "7T"], + dragonrage: ["7L1"], + dragonrush: ["8L55", "8S2", "7L73"], + dragontail: ["8L1", "7M", "7L23"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + flamethrower: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + gastroacid: ["8L40", "7T", "7L53", "7S0", "7S1"], + gigaimpact: ["8M", "8L70", "7M"], + gyroball: ["8M", "7M"], + hammerarm: ["8L45", "7L43", "7S1"], + heatcrash: ["8M"], + heatwave: ["8M", "7T"], + heavyslam: ["8M", "8L50", "7L59", "7S0", "7S1"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T", "7L29"], + knockoff: ["8L10", "7T"], + lashout: ["8T"], + lastresort: ["7T"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M", "8S2"], + outrage: ["8M", "7T"], + payback: ["8M", "7M"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + smackdown: ["7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + steamroller: ["7L19"], + steelroller: ["8T"], + stockpile: ["8L5", "7L1"], + stomp: ["8L15", "7L7"], + stompingtantrum: ["8M", "8L20", "8S2", "7T", "7L31"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + swallow: ["8L5", "7L1"], + thief: ["8M", "7M"], + thrash: ["8L65", "7L47", "7S0", "7S1"], + toxic: ["7M"], + wideguard: ["8L25", "7L1"], + wringout: ["7L67", "7S0"], + }, + eventData: [ + {generation: 7, level: 70, moves: ["thrash", "gastroacid", "heavyslam", "wringout"]}, + {generation: 7, level: 60, shiny: 1, moves: ["hammerarm", "thrash", "gastroacid", "heavyslam"]}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonrush", "stompingtantrum", "brutalswing", "megapunch"]}, + ], + eventOnly: true, + }, + necrozma: { + learnset: { + aerialace: ["7M"], + allyswitch: ["8M", "7T"], + autotomize: ["8L80", "8S3", "7L47"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + calmmind: ["8M", "7M"], + chargebeam: ["8L1", "8S3", "7M", "7L1"], + confide: ["7M"], + confusion: ["8L1", "7L1"], + cosmicpower: ["8M"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T"], + earthpower: ["8M", "7T"], + earthquake: ["8M", "7M"], + embargo: ["7M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M"], + flashcannon: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M"], + gravity: ["8L1", "7T", "7L31"], + gyroball: ["8M", "7M"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + imprison: ["8M"], + irondefense: ["8M", "8L56", "7T", "7L59", "7S0", "7S1"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M", "7S2"], + magnetrise: ["7T"], + metalclaw: ["8L1", "7L1"], + meteorbeam: ["8T"], + mirrorshot: ["7L1"], + moonlight: ["8L1", "7L1", "7S2"], + morningsun: ["8L1", "7L1"], + nightslash: ["8L24", "7L23", "7S1"], + outrage: ["8M", "7T"], + photongeyser: ["8L72", "7L50", "7S1"], + powergem: ["8M", "8L64", "8S3", "7L43", "7S1"], + prismaticlaser: ["8L88", "7L73", "7S0"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychicfangs: ["8M"], + psychocut: ["8M", "8L32", "8S3", "7L37"], + psyshock: ["8M", "7M"], + recycle: ["7T"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockblast: ["8M", "8L48", "7L19"], + rockpolish: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + scaryface: ["8M"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slash: ["8L16", "7L7"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + stealthrock: ["8M", "8L8", "7T", "7L53", "7S0"], + stoneedge: ["8M", "7M"], + storedpower: ["8M", "8L40", "7L13"], + substitute: ["8M", "7M", "7S2"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + trickroom: ["8M", "7M"], + wringout: ["7L67", "7S0"], + xscissor: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 75, moves: ["stealthrock", "irondefense", "wringout", "prismaticlaser"]}, + {generation: 7, level: 65, moves: ["photongeyser", "irondefense", "powergem", "nightslash"]}, + {generation: 7, level: 75, shiny: true, moves: ["lightscreen", "substitute", "moonlight"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["psychocut", "chargebeam", "powergem", "autotomize"]}, + ], + eventOnly: true, + }, + necrozmaduskmane: { + learnset: { + sunsteelstrike: ["8R", "7R"], + }, + eventOnly: true, + }, + necrozmadawnwings: { + learnset: { + moongeistbeam: ["8R", "7R"], + }, + eventOnly: true, + }, + necrozmaultra: { + learnset: { + moongeistbeam: ["8R", "7R"], + sunsteelstrike: ["8R", "7R"], + }, + }, + magearna: { + learnset: { + afteryou: ["7T"], + agility: ["9M", "8M"], + aurasphere: ["9M", "9L66", "8M", "8L66", "7L81"], + aurorabeam: ["9L36", "8L36", "7L17"], + batonpass: ["9M", "8M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + confuseray: ["9M"], + craftyshield: ["8L54", "7L1"], + dazzlinggleam: ["9M", "8M", "7M"], + defensecurl: ["9L6", "8L6", "7L1"], + disarmingvoice: ["9M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M"], + embargo: ["7M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + explosion: ["7M"], + facade: ["9M"], + falseswipe: ["9M", "8M", "7M"], + flashcannon: ["9M", "9L72", "8M", "8L72", "7M", "7L41", "7S0"], + fleurcannon: ["9L90", "8L90", "7L49", "7S0"], + focusblast: ["9M", "8M", "7M"], + frustration: ["7M"], + gearup: ["8L24", "7L1"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + gravity: ["9M"], + guardswap: ["8M"], + gyroball: ["9M", "9L1", "8M", "8L1", "7M"], + healbell: ["7T"], + heartswap: ["7L89"], + heavyslam: ["9M"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L18", "8M", "8L18", "7T", "7L57"], + ironhead: ["9M", "9L60", "8M", "8L60", "7T", "7L1"], + lastresort: ["7T"], + lightscreen: ["9M", "8M", "7M"], + lockon: ["9L42"], + luckychant: ["7L9", "7S0"], + magneticflux: ["9L24"], + magnetrise: ["7T"], + mindreader: ["8L42", "7L33"], + mirrorshot: ["7L25"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M"], + painsplit: ["9L78", "8L78", "7T", "7L65"], + playrough: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M"], + psybeam: ["9M", "9L30", "8L30", "7L1"], + psychic: ["9M"], + psyshock: ["9M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M"], + return: ["7M"], + rollout: ["9L12", "8L12"], + round: ["8M", "7M"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "7M"], + shiftgear: ["9L48", "8L48", "7L1"], + shockwave: ["7T"], + signalbeam: ["7T"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M"], + sonicboom: ["7L1"], + speedswap: ["8M"], + spikes: ["9M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + swift: ["9M"], + synchronoise: ["7L73"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], + triattack: ["8M"], + trick: ["9M", "9L54", "8M"], + trickroom: ["9M", "8M", "7M"], + trumpcard: ["7L97"], + voltswitch: ["9M", "8M", "7M"], + zapcannon: ["9L84", "8L84"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["fleurcannon", "flashcannon", "luckychant", "helpinghand"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + magearnaoriginal: { + learnset: { + agility: ["9M", "8M"], + aurasphere: ["9M", "9L66", "8M", "8L66"], + aurorabeam: ["9L36", "8L36"], + batonpass: ["9M", "8M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M"], + calmmind: ["9M", "8M"], + chargebeam: ["9M"], + confuseray: ["9M"], + craftyshield: ["8L54"], + dazzlinggleam: ["9M", "8M"], + defensecurl: ["9L6", "8L6", "8S0"], + disarmingvoice: ["9M"], + drainingkiss: ["9M", "8M"], + eerieimpulse: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M"], + falseswipe: ["9M", "8M"], + flashcannon: ["9M", "9L72", "8M", "8L72", "8S0"], + fleurcannon: ["9L90", "8L90", "8S0"], + focusblast: ["9M", "8M"], + gearup: ["8L24"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + gravity: ["9M"], + guardswap: ["8M"], + gyroball: ["9M", "9L1", "8M", "8L1"], + heavyslam: ["9M"], + helpinghand: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icespinner: ["9M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L18", "8M", "8L18"], + ironhead: ["9M", "9L60", "8M", "8L60"], + lightscreen: ["9M", "8M"], + lockon: ["9L42"], + magneticflux: ["9L24"], + mindreader: ["8L42"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M"], + painsplit: ["9L78", "8L78"], + playrough: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L30", "8L30"], + psychic: ["9M"], + psyshock: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "8S0"], + rollout: ["9L12", "8L12"], + round: ["8M"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M"], + shiftgear: ["9L48", "8L48"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["8M"], + snowscape: ["9M"], + solarbeam: ["9M", "8M"], + speedswap: ["8M"], + spikes: ["9M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M"], + thunderwave: ["9M", "8M"], + triattack: ["8M"], + trick: ["9M", "9L54", "8M"], + trickroom: ["9M", "8M"], + voltswitch: ["9M", "8M"], + zapcannon: ["9L84", "8L84"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 50, nature: "Mild", ivs: {hp: 31, atk: 30, def: 30, spa: 31, spd: 31, spe: 0}, moves: ["fleurcannon", "flashcannon", "defensecurl", "rest"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + marshadow: { + learnset: { + acrobatics: ["8M", "7M"], + agility: ["8M"], + assurance: ["8M", "8L36", "7L1"], + aurasphere: ["8M"], + blazekick: ["8M"], + bounce: ["8M", "7T"], + brickbreak: ["8M", "7M"], + bulkup: ["8M", "7M"], + calmmind: ["8M", "7M"], + closecombat: ["8M", "8L99", "7L50", "7S0"], + coaching: ["8T"], + confide: ["7M"], + copycat: ["8L1", "7L20"], + counter: ["8L1", "7L1"], + doubleteam: ["7M"], + drainpunch: ["8M", "8L1", "8S1", "7T", "7L1"], + echoedvoice: ["7M"], + endeavor: ["8L90", "7T", "7L60"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + feint: ["8L1", "7L11"], + firepunch: ["8M", "8L1", "7T", "7L1"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + forcepalm: ["8L27", "8S1", "7L5", "7S0"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + hex: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + icepunch: ["8M", "8L1", "7T", "7L1"], + ironhead: ["8M", "7T"], + jumpkick: ["7L35"], + knockoff: ["7T"], + laserfocus: ["8L81", "7T", "7L1"], + lastresort: ["7T"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "7T"], + payback: ["8M", "7M"], + phantomforce: ["8M"], + poisonjab: ["8M", "7M"], + poltergeist: ["8T"], + protect: ["8M", "7M"], + psychup: ["8L63", "7M", "7L41"], + pursuit: ["7L1"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roleplay: ["8L9", "7T", "7L30"], + rollingkick: ["7L15"], + round: ["8M", "7M"], + shadowball: ["8M", "7M", "7S0"], + shadowclaw: ["8M", "7M"], + shadowpunch: ["8L18", "7L26"], + shadowsneak: ["8L1", "8S1", "7L1"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spectralthief: ["8L72", "8S1", "7L45", "7S0"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + suckerpunch: ["8L45", "7L56"], + superpower: ["8M", "7T"], + swagger: ["7M"], + swift: ["8M"], + thief: ["8M", "7M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8L1", "7T", "7L1"], + toxic: ["7M"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["spectralthief", "closecombat", "forcepalm", "shadowball"], pokeball: "cherishball"}, + {generation: 8, level: 60, moves: ["spectralthief", "drainpunch", "forcepalm", "shadowsneak"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + poipole: { + learnset: { + acid: ["8L1", "8S2", "7L1"], + charm: ["8M", "8L21", "7L19", "7S0"], + confide: ["7M"], + covet: ["7T"], + dragonpulse: ["8M", "8L1", "7T", "7L1", "7S1"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fellstinger: ["8L14", "8S2", "7L47"], + frustration: ["7M"], + furyattack: ["8L7", "8S2", "7L7"], + gastroacid: ["8L56", "7T"], + growl: ["8L1", "7L1"], + gunkshot: ["8M", "7T"], + helpinghand: ["8M", "8L1", "8S2", "7T", "7L1"], + hiddenpower: ["7M"], + irontail: ["8M", "7T"], + nastyplot: ["8M", "8L42", "7L31", "7S0", "7S1"], + peck: ["8L1", "7L1"], + pinmissile: ["8M"], + poisonjab: ["8M", "8L49", "7M", "7L37", "7S0", "7S1"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + toxic: ["8L63", "7M", "7L41"], + toxicspikes: ["8M"], + uproar: ["8M", "7T"], + venomdrench: ["8M", "8L35", "7L23", "7S0", "7S1"], + venoshock: ["8M", "8L28", "7M", "7L13"], + }, + eventData: [ + {generation: 7, level: 40, shiny: 1, perfectIVs: 3, moves: ["charm", "venomdrench", "nastyplot", "poisonjab"], pokeball: "pokeball"}, + {generation: 7, level: 40, shiny: true, nature: "Modest", perfectIVs: 3, moves: ["venomdrench", "nastyplot", "poisonjab", "dragonpulse"], pokeball: "cherishball"}, + {generation: 8, level: 20, moves: ["helpinghand", "acid", "furyattack", "fellstinger"], pokeball: "beastball"}, + ], + eventOnly: true, + }, + naganadel: { + learnset: { + acid: ["8L1", "7L1"], + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + aircutter: ["8L0", "7L1"], + airslash: ["8M", "8L1", "7L53"], + allyswitch: ["8M", "7T"], + assurance: ["8M"], + breakingswipe: ["8M"], + charm: ["8M", "8L21", "7L19"], + confide: ["7M"], + crosspoison: ["8M"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L1", "7T", "7L1"], + dragonrush: ["8L70"], + dragontail: ["7M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fellstinger: ["8L14", "7L47"], + fireblast: ["8M", "7M"], + flamethrower: ["8M", "7M"], + fly: ["8M", "7M"], + frustration: ["7M"], + furyattack: ["8L7", "7L7"], + gastroacid: ["8L56", "7T"], + gigaimpact: ["8M"], + growl: ["8L1", "7L1"], + gunkshot: ["8M", "7T"], + heatwave: ["8M", "7T"], + helpinghand: ["8M", "8L1", "7T", "7L1"], + hex: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + irontail: ["8M", "7T"], + laserfocus: ["7T"], + leechlife: ["8M", "7M"], + nastyplot: ["8M", "8L42", "7L31"], + outrage: ["8M", "7T"], + peck: ["8L1", "7L1"], + pinmissile: ["8M"], + poisonjab: ["8M", "8L49", "7M", "7L37"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scaleshot: ["8T"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skyattack: ["7T"], + skydrop: ["7M"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snarl: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spikes: ["8M"], + substitute: ["8M", "7M"], + swift: ["8M"], + tailwind: ["7T"], + thief: ["8M", "7M"], + throatchop: ["8M", "7T"], + thunderbolt: ["8M", "7M"], + toxic: ["8L63", "7M", "7L41"], + toxicspikes: ["8M"], + uproar: ["8M", "7T"], + uturn: ["8M", "7M"], + venomdrench: ["8M", "8L35", "7L23"], + venoshock: ["8M", "8L28", "7M", "7L13"], + xscissor: ["8M", "7M"], + }, + }, + stakataka: { + learnset: { + allyswitch: ["8M", "7T"], + autotomize: ["8L35", "8S1", "7L31"], + bide: ["7L17"], + bind: ["7T"], + block: ["8L20", "7T"], + bodypress: ["8M"], + bodyslam: ["8M"], + brutalswing: ["8M", "8S1", "7M"], + bulldoze: ["8M", "7M"], + doubleedge: ["8L70", "8S1", "7L61"], + earthquake: ["8M", "7M"], + endure: ["8M"], + facade: ["8M", "7M"], + flashcannon: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + gravity: ["7T"], + gyroball: ["8M", "7M"], + harden: ["8L1"], + heatcrash: ["8M"], + heavyslam: ["8M"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + infestation: ["7M"], + irondefense: ["8M", "8L50", "7T", "7L37", "7S0"], + ironhead: ["8M", "8L55", "7T", "7L43", "7S0"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + magnetrise: ["8L45", "7T"], + megakick: ["8M"], + meteorbeam: ["8T"], + protect: ["8M", "8L10", "7M", "7L1"], + recycle: ["7T"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockblast: ["8M", "8L40", "7L47", "7S0"], + rockpolish: ["7M"], + rockslide: ["8M", "8L25", "8S1", "7M", "7L5"], + rockthrow: ["8L5", "7L23"], + rocktomb: ["8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["8M", "7M"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + stealthrock: ["8M", "8L65", "7T", "7L11"], + steelbeam: ["8T"], + steelroller: ["8T"], + stomp: ["8L15"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + superpower: ["8M", "7T"], + tackle: ["8L1", "7L1"], + takedown: ["8L60", "7L19"], + telekinesis: ["7T"], + toxic: ["7M"], + trickroom: ["8M", "7M"], + wideguard: ["8L30", "7L53", "7S0"], + wonderroom: ["8M", "7T"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 60, shiny: 1, moves: ["irondefense", "ironhead", "rockblast", "wideguard"]}, + {generation: 8, level: 70, shiny: 1, moves: ["rockslide", "doubleedge", "brutalswing", "autotomize"]}, + ], + eventOnly: true, + }, + blacephalon: { + learnset: { + afteryou: ["7T"], + astonish: ["8L1", "7L1"], + calmmind: ["8M", "8L50", "7M", "7L31"], + confide: ["7M"], + confuseray: ["8L20"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + ember: ["8L10", "7L1"], + encore: ["8M"], + endure: ["8M"], + expandingforce: ["8T"], + explosion: ["7M"], + facade: ["8M", "7M"], + fireblast: ["8M", "8L65", "8S1", "7M", "7L37", "7S0"], + firepunch: ["8M"], + firespin: ["8M", "8L1"], + flameburst: ["7L17"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + fling: ["8M", "7M"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypnosis: ["8L35"], + incinerate: ["8L30"], + knockoff: ["7T"], + lastresort: ["7T"], + lightscreen: ["8M", "8L5", "7M", "7L29"], + magiccoat: ["8L25", "7L7"], + mindblown: ["8L70", "7L59", "7S0"], + mysticalfire: ["8M", "8L40"], + nightshade: ["8L15", "7L23"], + overheat: ["8M", "7M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psyshock: ["8M", "7M"], + quash: ["7M"], + recycle: ["7T"], + rest: ["8M", "7M"], + return: ["7M"], + rockblast: ["8M"], + round: ["8M", "7M"], + selfdestruct: ["8M"], + shadowball: ["8M", "8L45", "7M", "7L41", "7S0"], + shadowclaw: ["8M", "8S1", "7M"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + solarbeam: ["8M"], + spite: ["7T"], + storedpower: ["8M", "7L13"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + taunt: ["8M", "8S1", "7M"], + thief: ["8M", "7M"], + torment: ["7M"], + toxic: ["7M"], + trick: ["8M", "8L60", "7T", "7L47", "7S0"], + uproar: ["8M", "7T"], + willowisp: ["8M", "8L55", "7M"], + zenheadbutt: ["8M", "8S1"], + }, + eventData: [ + {generation: 7, level: 60, shiny: 1, moves: ["fireblast", "shadowball", "trick", "mindblown"]}, + {generation: 8, level: 70, shiny: 1, moves: ["shadowclaw", "taunt", "fireblast", "zenheadbutt"]}, + ], + eventOnly: true, + }, + zeraora: { + learnset: { + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + agility: ["8M", "8L80"], + assurance: ["8M"], + aurasphere: ["8M"], + blazekick: ["8M", "8S1"], + bounce: ["8M", "7T"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + calmmind: ["8M", "7M"], + charge: ["8L40", "7L26"], + closecombat: ["8M", "8L96", "8S1", "7L47", "7S0"], + coaching: ["8T"], + confide: ["7M"], + discharge: ["8L64", "7L50"], + doubleteam: ["7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + echoedvoice: ["7M"], + electricterrain: ["8M"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["8L1", "7L22"], + falseswipe: ["8M", "7M"], + firepunch: ["8M", "7T"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + furyswipes: ["8L8", "7L12"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + helpinghand: ["8M"], + hiddenpower: ["7M"], + honeclaws: ["8L56", "7L5"], + hyperbeam: ["8M"], + irontail: ["8M", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "8S1", "7T"], + payday: ["8M"], + plasmafists: ["8L88", "8S1", "7L43", "7S0"], + playrough: ["8M"], + poweruppunch: ["8L1"], + protect: ["8M", "7M"], + quickattack: ["8L1", "7L8"], + quickguard: ["8L16", "7L40"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + scaryface: ["8M"], + scratch: ["8L1", "7L1"], + shockwave: ["7T"], + slash: ["8L24", "7L33"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "8L1", "7M", "7L19"], + snatch: ["7T"], + snore: ["8M", "7T"], + spark: ["8L1", "7L1"], + substitute: ["8M", "7M"], + superpower: ["8M", "7T"], + swift: ["8M"], + taunt: ["8M", "7M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "7S0"], + thunderbolt: ["8M", "7M"], + thunderpunch: ["8M", "8L48", "7T", "7L29", "7S0"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + voltswitch: ["8M", "8L32", "7M", "7L15"], + wildcharge: ["8M", "8L72", "7M", "7L36"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["plasmafists", "thunderpunch", "closecombat", "thunder"], pokeball: "cherishball"}, + {generation: 8, level: 100, shiny: true, nature: "Hasty", ivs: {hp: 31, atk: 31, def: 30, spa: 31, spd: 31, spe: 31}, moves: ["plasmafists", "closecombat", "blazekick", "outrage"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + meltan: { + learnset: { + acidarmor: ["8L32", "8V", "7L36"], + endure: ["8M"], + facade: ["8M"], + flashcannon: ["8M", "8L40", "8V", "7M", "7L45"], + gyroball: ["8M"], + harden: ["8L1", "8V", "7L1"], + headbutt: ["8L16", "8V", "7M", "7L1"], + irondefense: ["8M"], + protect: ["8M", "8V", "7M"], + rest: ["8M", "8V", "7M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + steelbeam: ["8T"], + substitute: ["8M", "8V", "7M"], + tailwhip: ["8L8", "8V", "7L9"], + thunderbolt: ["8M", "8V", "7M"], + thundershock: ["8L1", "8V", "7L27"], + thunderwave: ["8M", "8L24", "8V", "7M", "7L18"], + toxic: ["8V", "7M"], + }, + }, + melmetal: { + learnset: { + acidarmor: ["8L32", "8V", "7L36"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "8V", "7M"], + brutalswing: ["8M"], + darkestlariat: ["8M"], + discharge: ["8L64"], + doubleironbash: ["8L88", "8V", "8S0", "7L72"], + dynamicpunch: ["8L72", "8S0"], + earthquake: ["8M", "8V", "7M"], + electricterrain: ["8M"], + endure: ["8M"], + facade: ["8M", "8V", "7M"], + flashcannon: ["8M", "8L40", "8V", "7M", "7L45"], + gigaimpact: ["8M"], + gyroball: ["8M"], + harden: ["8L1", "8V", "7L1"], + headbutt: ["8L1", "8V", "7M", "7L1"], + heavyslam: ["8M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "8L96", "8V", "8S0", "7M", "7L90"], + icebeam: ["8M", "8V", "7M"], + icepunch: ["8M", "8V", "7M"], + irondefense: ["8M"], + ironhead: ["8M"], + megakick: ["8M"], + megapunch: ["8M", "8L48", "8V", "7L54"], + protect: ["8M", "8L56", "8V", "7M", "7L63"], + rest: ["8M", "8V", "7M"], + rockslide: ["8M", "8V", "7M"], + rocktomb: ["8M"], + round: ["8M"], + selfdestruct: ["8M", "8V", "7M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M", "8V", "7M"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "8V", "7M"], + superpower: ["8M", "8L80", "8V", "7M", "7L81"], + tailwhip: ["8L1", "8V", "7L1"], + thunder: ["8M", "8V", "7M"], + thunderbolt: ["8M", "8V", "7M"], + thunderpunch: ["8M", "8L0", "8V", "8S0", "7M", "7L0"], + thundershock: ["8L1", "8V", "7L27"], + thunderwave: ["8M", "8L24", "8V", "7M", "7L1"], + toxic: ["8V", "7M"], + }, + eventData: [ + {generation: 8, level: 100, nature: "Brave", ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["doubleironbash", "hyperbeam", "dynamicpunch", "thunderpunch"], pokeball: "cherishball"}, + ], + }, + grookey: { + learnset: { + acrobatics: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M"], + branchpoke: ["9L6", "8L6"], + bulletseed: ["9M"], + drainpunch: ["9M", "8M"], + endeavor: ["9L36", "8L36"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M"], + focusenergy: ["8M"], + gigadrain: ["9M", "8M"], + grassknot: ["9M", "8M"], + grasspledge: ["9M", "8T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1"], + growth: ["9E", "8E"], + hammerarm: ["9E", "8E"], + knockoff: ["9M", "9L20", "8L20"], + leafstorm: ["9M"], + leechseed: ["9E", "8E"], + lowkick: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + naturepower: ["8E"], + protect: ["9M", "8M"], + razorleaf: ["9L12", "8L12"], + rest: ["9M", "8M"], + round: ["8M"], + scratch: ["9L1", "8L1"], + screech: ["9L17", "8M", "8L17"], + seedbomb: ["9M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["9M", "8M"], + strength: ["9E", "8E"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L8", "8M", "8L8"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "9L28", "8M", "8L28"], + uturn: ["9M", "8M"], + woodhammer: ["9L32", "8L32"], + workup: ["8M"], + worryseed: ["9E", "8E"], + }, + }, + thwackey: { + learnset: { + acrobatics: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M"], + branchpoke: ["9L1", "8L1"], + bulletseed: ["9M"], + doublehit: ["9L0", "8L0"], + drainpunch: ["9M", "8M"], + endeavor: ["9L48", "8L48"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M"], + focusenergy: ["8M"], + gigadrain: ["9M", "8M"], + grassknot: ["9M", "8M"], + grasspledge: ["9M", "8T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1"], + knockoff: ["9M", "9L24", "8L24"], + leafstorm: ["9M"], + lowkick: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + protect: ["9M", "8M"], + razorleaf: ["9L12", "8L12"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M"], + scratch: ["9L1", "8L1"], + screech: ["9L19", "8M", "8L19"], + seedbomb: ["9M"], + slam: ["9L30", "8L30"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "9L36", "8M", "8L36"], + uturn: ["9M", "8M"], + woodhammer: ["9L42", "8L42"], + workup: ["8M"], + }, + }, + rillaboom: { + learnset: { + acrobatics: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + boomburst: ["9L62", "8L62"], + branchpoke: ["9L1", "8L1"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulkup: ["9M", "8M"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "8M"], + darkestlariat: ["8M"], + doublehit: ["9L1", "8L1"], + drainpunch: ["9M", "8M"], + drumbeating: ["9L0", "8L0"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endeavor: ["9L54", "8L54"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + focuspunch: ["9M"], + frenzyplant: ["9M", "8T"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grasspledge: ["9M", "8T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "9L1", "8M", "8L1"], + growl: ["9L1", "8L1"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + knockoff: ["9M", "9L24", "8L24"], + leafstorm: ["9M", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M", "8M"], + nobleroar: ["9L1", "8L1"], + protect: ["9M", "8M"], + razorleaf: ["9L12", "8L12"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + scratch: ["9L1", "8L1"], + screech: ["9L19", "8M", "8L19"], + seedbomb: ["9M"], + slam: ["9L30", "8L30"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["9M", "8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "9L38", "8M", "8L38"], + uturn: ["9M", "8M"], + woodhammer: ["9L46", "8L46"], + workup: ["8M"], + }, + }, + scorbunny: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L20", "8M", "8L20"], + allyswitch: ["8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + blazekick: ["8M"], + bounce: ["9L32", "8M", "8L32"], + burningjealousy: ["9M"], + counter: ["9L28", "8L28"], + doubleedge: ["9L36", "8L36"], + doublekick: ["9L12", "8L12"], + electroball: ["9M", "8M"], + ember: ["9L6", "8L6"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T"], + firespin: ["9M"], + flamecharge: ["9M", "9L17", "8L17"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M"], + focusenergy: ["8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + headbutt: ["9L24", "8L24"], + heatwave: ["9M", "8M"], + helpinghand: ["9M"], + highjumpkick: ["9E", "8E"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + mudshot: ["8M"], + overheat: ["9M", "8M"], + protect: ["9M", "8M"], + quickattack: ["9L8", "8L8"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sandattack: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9E", "8E"], + sunnyday: ["9M", "8M"], + superfang: ["9M", "9E", "8E"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + raboot: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + blazekick: ["8M"], + bounce: ["9L42", "8M", "8L42"], + bulkup: ["9M", "8M"], + burningjealousy: ["9M"], + counter: ["9L36", "8L36"], + doubleedge: ["9L48", "8L48"], + doublekick: ["9L12", "8L12"], + electroball: ["9M", "8M"], + ember: ["9L1", "8L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T"], + firespin: ["9M"], + flamecharge: ["9M", "9L19", "8L19"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + focusenergy: ["8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + headbutt: ["9L30", "8L30"], + heatwave: ["9M", "8M"], + helpinghand: ["9M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + overheat: ["9M", "8M"], + protect: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superfang: ["9M"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + weatherball: ["9M"], + workup: ["8M"], + }, + }, + cinderace: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + blastburn: ["9M", "8T"], + blazekick: ["8M"], + bounce: ["9L46", "8M", "8L46"], + bulkup: ["9M", "8M"], + burningjealousy: ["9M"], + coaching: ["8T"], + counter: ["9L38", "8L38"], + courtchange: ["9L62", "8L62"], + doubleedge: ["9L54", "8L54"], + doublekick: ["9L12", "8L12"], + electroball: ["9M", "8M"], + ember: ["9L1", "8L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + feint: ["9L1", "8L1"], + fireblast: ["9M", "8M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T"], + firepunch: ["9M", "8M"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L19", "8L19"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + fling: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + headbutt: ["9L30", "8L30"], + heatwave: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + ironhead: ["9M", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + overheat: ["9M", "8M"], + protect: ["9M", "8M"], + pyroball: ["9L0", "8L0"], + quickattack: ["9L1", "8L1"], + rest: ["9M", "8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scorchingsands: ["8T"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9M"], + snarl: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superfang: ["9M"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + weatherball: ["9M"], + willowisp: ["9M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + sobble: { + learnset: { + aquajet: ["9E", "8E"], + aquaring: ["9E", "8E"], + attract: ["8M"], + batonpass: ["8M"], + bind: ["9L8", "8L8"], + bounce: ["8M"], + chillingwater: ["9M"], + dive: ["8M"], + doubleteam: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fellstinger: ["9E", "8E"], + growl: ["9L1", "8L1"], + haze: ["9M", "9E", "8E"], + hydropump: ["9M"], + iceshard: ["9E", "8E"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "9L28", "8M", "8L28"], + mist: ["9E", "8E"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M", "9L36", "8M", "8L36"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + soak: ["9L32", "8L32"], + substitute: ["9M", "8M"], + suckerpunch: ["9L20", "8L20"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + tearfullook: ["9L17", "8L17"], + terablast: ["9M"], + uturn: ["9M", "9L24", "8M", "8L24"], + waterfall: ["9M"], + watergun: ["9L6", "8L6"], + waterpledge: ["9M", "8T"], + waterpulse: ["9M", "9L12", "8L12"], + weatherball: ["9M", "8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + drizzile: { + learnset: { + attract: ["8M"], + batonpass: ["9M", "8M"], + bind: ["9L1", "8L1"], + bounce: ["8M"], + chillingwater: ["9M"], + dive: ["8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + growl: ["9L1", "8L1"], + haze: ["9M"], + hydropump: ["9M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "9L36", "8M", "8L36"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M", "9L48", "8M", "8L48"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + soak: ["9L42", "8L42"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + tearfullook: ["9L19", "8L19"], + terablast: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30"], + waterfall: ["9M"], + watergun: ["9L1", "8L1"], + waterpledge: ["9M", "8T"], + waterpulse: ["9M", "9L12", "8L12"], + weatherball: ["9M", "8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + inteleon: { + learnset: { + acrobatics: ["9M", "9L1", "8M", "8L1"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + bind: ["9L1", "8L1"], + blizzard: ["9M", "8M"], + bounce: ["8M"], + breakingswipe: ["8M"], + chillingwater: ["9M"], + darkpulse: ["9M", "8M"], + dive: ["8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + flipturn: ["9M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + haze: ["9M"], + hydrocannon: ["9M", "8T"], + hydropump: ["9M", "9L62", "8M", "8L62"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "9L38", "8M", "8L38"], + metronome: ["9M", "8M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M", "9L54", "8M", "8L54"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scald: ["9M", "8M"], + scaleshot: ["8T"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9M"], + snipeshot: ["9L0", "8L0"], + snore: ["8M"], + snowscape: ["9M"], + soak: ["9L46", "8L46"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M"], + tearfullook: ["9L19", "8L19"], + terablast: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30"], + vacuumwave: ["9M"], + waterfall: ["9M", "8M"], + watergun: ["9L1", "8L1"], + waterpledge: ["9M", "8T"], + waterpulse: ["9M", "9L12", "8L12"], + weatherball: ["9M", "8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + skwovet: { + learnset: { + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + belch: ["9L45", "8L45"], + bellydrum: ["9E", "8E"], + bite: ["9L5", "8L5"], + bodyslam: ["9M", "9L20", "8M", "8L20"], + brutalswing: ["8M"], + bulletseed: ["9M", "9L35", "8M", "8L35"], + counter: ["9L30", "8L30"], + crunch: ["9M", "8M"], + defensecurl: ["9E", "8E"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + gyroball: ["9M", "8M"], + hypervoice: ["9M", "8M"], + irontail: ["8M"], + lastresort: ["9E", "8E"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + payback: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "9L25", "8M", "8L25"], + rollout: ["9E", "8E"], + round: ["8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spitup: ["9L15", "8L15"], + stockpile: ["9L15", "8L15"], + stuffcheeks: ["9L10", "8L10"], + substitute: ["9M", "8M"], + superfang: ["9M", "9L40", "8L40"], + swallow: ["9L15", "8L15"], + tackle: ["9L1", "8L1"], + tailslap: ["8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["8M"], + }, + }, + greedent: { + learnset: { + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + belch: ["9L55", "8L55"], + bite: ["9L1", "8L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L20", "8M", "8L20"], + brutalswing: ["8M"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L41", "8M", "8L41"], + counter: ["9L34", "8L34"], + covet: ["9L0", "8L0"], + crunch: ["9M", "8M"], + dig: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gyroball: ["9M", "8M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + icefang: ["9M", "8M"], + irontail: ["8M"], + knockoff: ["9M"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + payback: ["8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "9L27", "8M", "8L27"], + round: ["8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spitup: ["9L15", "8L15"], + stockpile: ["9L15", "8L15"], + stompingtantrum: ["9M", "8M"], + stuffcheeks: ["9L1", "8L1"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superfang: ["9M", "9L48", "8L48"], + superpower: ["8M"], + swallow: ["9L15", "8L15"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + tailslap: ["8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunderfang: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["8M"], + wildcharge: ["9M", "8M"], + }, + }, + rookidee: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bravebird: ["9M", "9L36", "8M", "8L36"], + defog: ["9E", "8E"], + drillpeck: ["9L28", "8L28"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["8M"], + furyattack: ["9L12", "8L12"], + honeclaws: ["9L8", "8L8"], + leer: ["9L1", "8L1"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L16", "8L16"], + powertrip: ["9L4", "8L4"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rocksmash: ["9E", "8E"], + roost: ["9E", "8E"], + round: ["8M"], + sandattack: ["9E", "8E"], + scaryface: ["9M", "9L24", "8M", "8L24"], + skyattack: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9M", "9E", "8E"], + substitute: ["9M", "8M"], + swagger: ["9L32", "8L32"], + swift: ["9M", "8M"], + tailwind: ["9M", "9E", "8E"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20"], + terablast: ["9M"], + thief: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + corvisquire: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bravebird: ["9M", "9L46", "8M", "8L46"], + drillpeck: ["9L34", "8L34"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["8M"], + furyattack: ["9L12", "8L12"], + honeclaws: ["9L1", "8L1"], + hurricane: ["9M"], + leer: ["9L1", "8L1"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L16", "8L16"], + powertrip: ["9L1", "8L1"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L28", "8M", "8L28"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L40", "8L40"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L22", "8M", "8L22"], + terablast: ["9M"], + thief: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + corviknight: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bravebird: ["9M", "9L50", "8M", "8L50"], + bulkup: ["9M", "8M"], + drillpeck: ["9L34", "8L34"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + flashcannon: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["8M"], + furyattack: ["9L12", "8L12"], + gigaimpact: ["9M", "8M"], + heavyslam: ["9M", "8M"], + honeclaws: ["9L1", "8L1"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1"], + ironhead: ["9M", "8M"], + leer: ["9L1", "8L1"], + lightscreen: ["9M", "8M"], + metalclaw: ["9M"], + metalsound: ["9L1", "8L1"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L16", "8L16"], + powertrip: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L28", "8M", "8L28"], + screech: ["9L1", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9M"], + steelbeam: ["9M", "8T"], + steelwing: ["9L0", "8M", "8L0"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L42", "8L42"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L22", "8M", "8L22"], + terablast: ["9M"], + thief: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + blipbug: { + learnset: { + infestation: ["8E"], + recover: ["8E"], + stickyweb: ["8E"], + strugglebug: ["8L1"], + supersonic: ["8E"], + }, + }, + dottler: { + learnset: { + allyswitch: ["8M"], + attract: ["8M"], + bodypress: ["8M"], + bugbuzz: ["8M"], + calmmind: ["8M"], + confusion: ["8L0"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + futuresight: ["8M"], + guardswap: ["8M"], + helpinghand: ["8M"], + imprison: ["8M"], + irondefense: ["8M"], + leechlife: ["8M"], + lightscreen: ["8M", "8L0"], + magicroom: ["8M"], + payback: ["8M"], + powerswap: ["8M"], + protect: ["8M"], + psychic: ["8M"], + psychicterrain: ["8M"], + psyshock: ["8M"], + reflect: ["8M", "8L0"], + rest: ["8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + storedpower: ["8M"], + strugglebug: ["8L1"], + substitute: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + orbeetle: { + learnset: { + afteryou: ["8L40"], + agility: ["8M", "8L12"], + allyswitch: ["8M", "8L24"], + attract: ["8M"], + batonpass: ["8M"], + bodypress: ["8M"], + bugbuzz: ["8M", "8L28"], + calmmind: ["8M", "8L44"], + confuseray: ["8L4"], + confusion: ["8L1"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + futuresight: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + guardswap: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypnosis: ["8L20"], + imprison: ["8M"], + irondefense: ["8M"], + leechlife: ["8M"], + lightscreen: ["8M", "8L1"], + magiccoat: ["8L8"], + magicroom: ["8M"], + mirrorcoat: ["8L32"], + payback: ["8M"], + powerswap: ["8M"], + protect: ["8M"], + psybeam: ["8L16"], + psychic: ["8M", "8L36"], + psychicterrain: ["8M", "8L48"], + psychocut: ["8M"], + psyshock: ["8M"], + reflect: ["8M", "8L1"], + rest: ["8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + storedpower: ["8M"], + strugglebug: ["8L1"], + substitute: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + uturn: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + nickit: { + learnset: { + agility: ["8M"], + assurance: ["8M", "8L16"], + attract: ["8M"], + batonpass: ["8M"], + beatup: ["8M", "8L4"], + dig: ["8M"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + foulplay: ["8M", "8L36"], + honeclaws: ["8L8"], + howl: ["8E"], + knockoff: ["8E"], + lashout: ["8T"], + mudshot: ["8M"], + nastyplot: ["8M", "8L20"], + nightslash: ["8L28"], + playrough: ["8M"], + protect: ["8M"], + quickattack: ["8L1"], + quickguard: ["8E"], + rest: ["8M"], + round: ["8M"], + screech: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L12"], + snore: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L24"], + swift: ["8M"], + tailslap: ["8M", "8L32"], + tailwhip: ["8L1"], + taunt: ["8M"], + thief: ["8M"], + torment: ["8E"], + }, + }, + thievul: { + learnset: { + acrobatics: ["8M"], + agility: ["8M"], + assurance: ["8M", "8L16"], + attract: ["8M"], + batonpass: ["8M"], + beatup: ["8M", "8L1"], + burningjealousy: ["8T"], + crunch: ["8M"], + darkpulse: ["8M"], + dig: ["8M"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + firefang: ["8M"], + foulplay: ["8M", "8L46"], + gigaimpact: ["8M"], + grassknot: ["8M"], + honeclaws: ["8L1"], + hyperbeam: ["8M"], + icefang: ["8M"], + lashout: ["8T"], + mudshot: ["8M"], + nastyplot: ["8M", "8L22"], + nightslash: ["8L34"], + partingshot: ["8L52"], + playrough: ["8M"], + protect: ["8M"], + psychic: ["8M"], + quickattack: ["8L1"], + rest: ["8M"], + round: ["8M"], + screech: ["8M"], + shadowball: ["8M"], + shadowclaw: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L12"], + snore: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L28"], + swift: ["8M"], + tailslap: ["8M", "8L40"], + tailwhip: ["8L1"], + taunt: ["8M"], + thief: ["8M", "8L0"], + thunderfang: ["8M"], + uturn: ["8M"], + }, + }, + gossifleur: { + learnset: { + aromatherapy: ["8L32"], + attract: ["8M"], + bulletseed: ["8M"], + charm: ["8M"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + grassknot: ["8M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8E"], + helpinghand: ["8M"], + hypervoice: ["8M", "8L28"], + leafage: ["8L1"], + leafstorm: ["8M", "8L36"], + leaftornado: ["8L21"], + leechseed: ["8E"], + lightscreen: ["8M"], + magicalleaf: ["8M"], + poisonpowder: ["8E"], + pollenpuff: ["8M"], + protect: ["8M"], + rapidspin: ["8L4"], + razorleaf: ["8L12"], + rest: ["8M"], + round: ["8M", "8L16"], + sing: ["8L1"], + sleeppowder: ["8E"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stunspore: ["8E"], + substitute: ["8M"], + sunnyday: ["8M"], + sweetscent: ["8L8"], + synthesis: ["8L24"], + worryseed: ["8E"], + }, + }, + eldegoss: { + learnset: { + aromatherapy: ["8L40"], + attract: ["8M"], + bulletseed: ["8M"], + charm: ["8M"], + cottonguard: ["8L52"], + cottonspore: ["8L0"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypervoice: ["8M", "8L34"], + leafage: ["8L1"], + leafstorm: ["8M", "8L46"], + leaftornado: ["8L23"], + lightscreen: ["8M"], + magicalleaf: ["8M"], + pollenpuff: ["8M"], + protect: ["8M"], + rapidspin: ["8L1"], + razorleaf: ["8L12"], + rest: ["8M"], + round: ["8M", "8L16"], + seedbomb: ["8M"], + sing: ["8L1"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + sweetscent: ["8L1"], + synthesis: ["8L28"], + weatherball: ["8M"], + }, + }, + wooloo: { + learnset: { + agility: ["8M"], + attract: ["8M"], + copycat: ["8L8"], + cottonguard: ["8L36"], + counter: ["8E"], + defensecurl: ["8L4"], + doubleedge: ["8L40"], + doublekick: ["8L16"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + grassyglide: ["8T"], + growl: ["8L1"], + guardsplit: ["8L12"], + guardswap: ["8M", "8L28"], + headbutt: ["8L21"], + payback: ["8M"], + protect: ["8M"], + rest: ["8M"], + reversal: ["8M", "8L32"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8E"], + substitute: ["8M"], + swagger: ["8E"], + tackle: ["8L1"], + takedown: ["8L25"], + thunderwave: ["8M"], + wildcharge: ["8M"], + }, + }, + dubwool: { + learnset: { + agility: ["8M"], + attract: ["8M"], + batonpass: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + bounce: ["8M"], + copycat: ["8L1"], + cottonguard: ["8L44"], + defensecurl: ["8L1"], + doubleedge: ["8L50"], + doublekick: ["8L16"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + gigaimpact: ["8M"], + grassyglide: ["8T"], + growl: ["8L1"], + guardsplit: ["8L12"], + guardswap: ["8M", "8L32"], + headbutt: ["8L21"], + hyperbeam: ["8M"], + lastresort: ["8L56"], + megakick: ["8M"], + payback: ["8M"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + reversal: ["8M", "8L38"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + substitute: ["8M"], + swordsdance: ["8M"], + tackle: ["8L1"], + takedown: ["8L27"], + thunderwave: ["8M"], + wildcharge: ["8M"], + zenheadbutt: ["8M"], + }, + }, + chewtle: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bite: ["9L7", "8L7"], + bodyslam: ["9M", "9L49", "8M", "8L49"], + chillingwater: ["9M"], + counter: ["9L28", "8L28"], + crunch: ["9M"], + dive: ["8M"], + dragontail: ["9M", "9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M"], + gastroacid: ["9E", "8E"], + headbutt: ["9L21", "8L21"], + hydropump: ["9M", "8M"], + icefang: ["9M", "8M"], + jawlock: ["9L35", "8L35"], + liquidation: ["9M", "9L42", "8M", "8L42"], + mudshot: ["9M", "8M"], + payback: ["8M"], + poisonjab: ["9M"], + protect: ["9M", "9L14", "8M", "8L14"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + round: ["8M"], + scaleshot: ["8T"], + scaryface: ["9M"], + shellsmash: ["9E"], + skittersmack: ["8T"], + skullbash: ["8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stompingtantrum: ["9M"], + substitute: ["9M", "8M"], + surf: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + drednaw: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bite: ["9L1", "8L1"], + blizzard: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L57", "8M", "8L57"], + bulldoze: ["9M", "8M"], + chillingwater: ["9M"], + counter: ["9L30", "8L30"], + crunch: ["9M", "9L1", "8M", "8L1"], + dig: ["9M", "8M"], + dive: ["8M"], + dragontail: ["9M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L21", "8L21"], + headsmash: ["9L66", "8L66"], + highhorsepower: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icefang: ["9M", "8M"], + icespinner: ["9M"], + irondefense: ["9M", "8M"], + irontail: ["8M"], + jawlock: ["9L39", "8L39"], + liquidation: ["9M", "9L48", "8M", "8L48"], + megahorn: ["8M"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "9L1", "8M", "8L1"], + raindance: ["9M", "8M"], + razorshell: ["9L1", "8M", "8L1"], + rest: ["9M", "8M"], + revenge: ["8M"], + rockblast: ["9M", "8M"], + rockpolish: ["9L1", "8L1"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "9L0", "8M", "8L0"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["9M", "8M"], + scald: ["8M"], + scaleshot: ["8T"], + scaryface: ["9M", "8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + superfang: ["9M"], + superpower: ["8M"], + surf: ["9M", "8M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + waterfall: ["9M", "8M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + yamper: { + learnset: { + attract: ["8M"], + bite: ["8L10"], + charge: ["8L35"], + charm: ["8M", "8L26"], + crunch: ["8M", "8L30"], + dig: ["8M"], + discharge: ["8E"], + doubleedge: ["8E"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + firefang: ["8M"], + flamecharge: ["8E"], + helpinghand: ["8M"], + howl: ["8E"], + nuzzle: ["8L5"], + playrough: ["8M", "8L45"], + protect: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + roar: ["8L15"], + round: ["8M"], + sandattack: ["8E"], + sleeptalk: ["8M"], + snarl: ["8M"], + snore: ["8M"], + spark: ["8L20"], + substitute: ["8M"], + swift: ["8M"], + tackle: ["8L1"], + tailwhip: ["8L1"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderwave: ["8M"], + uproar: ["8M"], + voltswitch: ["8M"], + wildcharge: ["8M", "8L40"], + }, + }, + boltund: { + learnset: { + agility: ["8M"], + attract: ["8M"], + bite: ["8L1"], + bulkup: ["8M"], + charge: ["8L41"], + charm: ["8M", "8L28"], + crunch: ["8M", "8L34"], + dig: ["8M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L62"], + electrify: ["8L1"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + firefang: ["8M"], + focusenergy: ["8M"], + gigaimpact: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + nuzzle: ["8L1"], + playrough: ["8M", "8L55"], + protect: ["8M"], + psychicfangs: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + roar: ["8L15"], + round: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M"], + snore: ["8M"], + spark: ["8L20"], + substitute: ["8M"], + swift: ["8M"], + tackle: ["8L1"], + tailwhip: ["8L1"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderwave: ["8M"], + uproar: ["8M"], + voltswitch: ["8M"], + wildcharge: ["8M", "8L48"], + }, + }, + rolycoly: { + learnset: { + ancientpower: ["9L20", "8L20"], + attract: ["8M"], + block: ["9E", "8E"], + bodyslam: ["9M"], + bulldoze: ["9M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + explosion: ["9E", "8E"], + facade: ["9M", "8M"], + gyroball: ["9M", "8M"], + heatcrash: ["9M", "9L35", "8M", "8L35"], + incinerate: ["9L25", "8L25"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + meteorbeam: ["8T"], + mudslap: ["9M", "9E", "8E"], + powergem: ["9M"], + protect: ["9M", "8M"], + rapidspin: ["9L5", "8L5"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "9L40", "8M", "8L40"], + rockpolish: ["9L15", "8L15"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["9M", "8M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9M", "9L10", "8L10"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "9L30", "8M", "8L30"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "8M"], + }, + }, + carkol: { + learnset: { + ancientpower: ["9L20", "8L20"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + burnup: ["8L55"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L0", "8L0"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + gyroball: ["9M", "8M"], + heatcrash: ["9M", "9L41", "8M", "8L41"], + heatwave: ["9M", "8M"], + heavyslam: ["9M", "8M"], + highhorsepower: ["8M"], + incinerate: ["9L27", "8L27"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + meteorbeam: ["8T"], + mudslap: ["9M"], + overheat: ["9M", "8M"], + powergem: ["9M"], + protect: ["9M", "8M"], + rapidspin: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "9L48", "8M", "8L48"], + rockpolish: ["9L15", "8L15"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["9M", "8M"], + scald: ["9M", "8M"], + scorchingsands: ["8T"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9M", "9L1", "8L1"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "9L35", "8M", "8L35"], + stoneedge: ["9M", "9L55", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "8M"], + }, + }, + coalossal: { + learnset: { + ancientpower: ["9L20", "8L20"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + burnup: ["8L63"], + dig: ["9M", "8M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firepunch: ["9M", "8M"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L1", "8L1"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gyroball: ["9M", "8M"], + heatcrash: ["9M", "9L45", "8M", "8L45"], + heatwave: ["9M", "8M"], + heavyslam: ["9M", "8M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + incinerate: ["9L27", "8L27"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + mudslap: ["9M"], + overheat: ["9M", "8M"], + powergem: ["9M"], + protect: ["9M", "8M"], + rapidspin: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "9L54", "8M", "8L54"], + rockpolish: ["9L15", "8L15"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["9M", "8M"], + scald: ["9M", "8M"], + scorchingsands: ["8T"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9M", "9L1", "8L1"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "9L37", "8M", "8L37"], + stoneedge: ["9M", "9L63", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + tarshot: ["9L0", "8L0"], + terablast: ["9M"], + willowisp: ["9M", "8M"], + }, + }, + applin: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M"], + defensecurl: ["9E", "8E"], + dracometeor: ["8T"], + grassyglide: ["8T"], + pounce: ["9M"], + recycle: ["9E", "8E"], + rollout: ["9E", "8E"], + suckerpunch: ["9E", "8E"], + terablast: ["9M"], + withdraw: ["9L1", "8L1"], + }, + }, + flapple: { + learnset: { + acidspray: ["9M", "9L4", "8L4"], + acrobatics: ["9M", "9L8", "8M", "8L8"], + aerialace: ["9M"], + airslash: ["9M", "8M"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + bulletseed: ["9M", "8M"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L20", "8L20"], + dragondance: ["9M", "9L24", "8M", "8L24"], + dragonpulse: ["9M", "9L28", "8M", "8L28"], + dragonrush: ["9L44", "8L44"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + fly: ["9M", "9L40", "8M", "8L40"], + focusenergy: ["8M"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + gravapple: ["9L32", "8L32"], + growth: ["9L1", "8L1"], + heavyslam: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L36", "8M", "8L36"], + leafstorm: ["9M"], + leechseed: ["9L12", "8L12"], + magicalleaf: ["9M"], + outrage: ["9M", "8M"], + pounce: ["9M"], + protect: ["9M", "9L16", "8M", "8L16"], + recycle: ["9L1", "8L1"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + twister: ["9L1", "8L1"], + uturn: ["9M", "8M"], + wingattack: ["9L0", "8L0"], + withdraw: ["9L1", "8L1"], + }, + }, + appletun: { + learnset: { + amnesia: ["9M", "8M"], + appleacid: ["9L28", "8L28"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L32", "8M", "8L32"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "9L20", "8M", "8L20"], + curse: ["9L4", "8L4"], + dracometeor: ["9M", "8T"], + dragonpulse: ["9M", "9L40", "8M", "8L40"], + dragontail: ["9M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L44", "8M", "8L44"], + facade: ["9M", "8M"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M"], + growth: ["9L1", "8L1"], + gyroball: ["9M", "8M"], + headbutt: ["9L0", "8L0"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L36", "8M", "8L36"], + ironhead: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L12", "8L12"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M"], + outrage: ["9M", "8M"], + payback: ["8M"], + pounce: ["9M"], + protect: ["9M", "9L16", "8M", "8L16"], + raindance: ["9M"], + recover: ["9L24", "8L24"], + recycle: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + stomp: ["9L8", "8L8"], + stompingtantrum: ["9M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + sweetscent: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + withdraw: ["9L1", "8L1"], + zenheadbutt: ["9M"], + }, + }, + silicobra: { + learnset: { + attract: ["8M"], + belch: ["9E", "8E"], + bodyslam: ["9M"], + brutalswing: ["9L10", "8M", "8L10"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + coil: ["9L45", "8L45"], + dig: ["9M", "9L30", "8M", "8L30"], + dragonrush: ["9E", "8E"], + drillrun: ["9M", "8M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + glare: ["9L25", "8L25"], + headbutt: ["9L20", "8L20"], + lastresort: ["9E", "8E"], + minimize: ["9L5", "8L5"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9E", "8E"], + poisontail: ["9M", "9E", "8E"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["8M"], + sandattack: ["9L1", "8L1"], + sandstorm: ["9M", "9L35", "8M", "8L35"], + sandtomb: ["9M", "9L50", "8M", "8L50"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + scorchingsands: ["8T"], + screech: ["8M"], + skittersmack: ["8T"], + slam: ["9L40", "8L40"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + wrap: ["9L1", "8L1"], + }, + }, + sandaconda: { + learnset: { + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + brutalswing: ["9L1", "8M", "8L1"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + coil: ["9L49", "8L49"], + dig: ["9M", "9L30", "8M", "8L30"], + drillrun: ["9M", "8M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + glare: ["9L25", "8L25"], + headbutt: ["9L20", "8L20"], + highhorsepower: ["9M", "8M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + minimize: ["9L1", "8L1"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + outrage: ["9M", "8M"], + poisontail: ["9M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandattack: ["9L1", "8L1"], + sandstorm: ["9M", "9L35", "8M", "8L35"], + sandtomb: ["9M", "9L51", "8M", "8L51"], + scaleshot: ["9M", "8T"], + scaryface: ["9M"], + scorchingsands: ["8T"], + screech: ["8M"], + skittersmack: ["8T"], + skullbash: ["8L1"], + slam: ["9L42", "8L42"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + wrap: ["9L1", "8L1"], + zenheadbutt: ["9M", "8M"], + }, + }, + cramorant: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9E", "8E"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + amnesia: ["9M", "9L42", "8M", "8L42"], + aquacutter: ["9E"], + aquaring: ["9E", "8E"], + assurance: ["8M"], + attract: ["8M"], + belch: ["9L1", "8L1"], + blizzard: ["9M", "8M"], + bravebird: ["9M", "8M"], + chillingwater: ["9M"], + defog: ["9E", "8E"], + dive: ["9L28", "8M", "8L28"], + drillpeck: ["9L35", "8L35"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + featherdance: ["9E", "8E"], + fly: ["9M", "8M"], + furyattack: ["9L14", "8L14"], + gigaimpact: ["9M", "8M"], + hurricane: ["9M", "8M"], + hydropump: ["9M", "9L56", "8M", "8L56"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icywind: ["9M", "8M"], + liquidation: ["9M", "8M"], + peck: ["9L1", "8L1"], + pluck: ["9L21", "8L21"], + pounce: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + roost: ["9E", "8E"], + round: ["8M"], + scald: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spitup: ["9L1", "8L1"], + steelwing: ["8M"], + stockpile: ["9L1", "8L1"], + substitute: ["9M", "8M"], + superpower: ["8M"], + surf: ["9M", "8M"], + swallow: ["9L1", "8L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L49", "8L49"], + throatchop: ["8M"], + uproar: ["9M", "8M"], + watergun: ["9L7", "8L7"], + waterpulse: ["9M"], + weatherball: ["9M", "8M"], + whirlpool: ["8M"], + }, + }, + arrokuda: { + learnset: { + acupressure: ["9E", "8E"], + agility: ["9M", "9L18", "8M", "8L18"], + aquajet: ["9L1", "8L1"], + assurance: ["8M"], + attract: ["8M"], + bite: ["9L12", "8L12"], + bounce: ["8M"], + brickbreak: ["9M", "8M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "9L36", "8M", "8L36"], + dive: ["9L24", "8M", "8L24"], + doubleedge: ["9L48", "8L48"], + drillrun: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flipturn: ["9M"], + focusenergy: ["9L30", "8M"], + furyattack: ["9L6", "8L6"], + hydropump: ["9M"], + icefang: ["9M", "8M"], + laserfocus: ["8L30"], + liquidation: ["9M", "9L42", "8M", "8L42"], + nightslash: ["9E", "8E"], + peck: ["9L1", "8L1"], + poisonjab: ["8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + scaleshot: ["9M", "8T"], + slash: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + surf: ["9M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E", "8E"], + throatchop: ["8M"], + waterfall: ["9M", "8M"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + barraskewda: { + learnset: { + agility: ["9M", "9L18", "8M", "8L18"], + aquajet: ["9L1", "8L1"], + assurance: ["8M"], + attract: ["8M"], + bite: ["9L1", "8L1"], + blizzard: ["9M"], + bounce: ["8M"], + brickbreak: ["9M", "8M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "9L40", "8M", "8L40"], + dive: ["9L24", "8M", "8L24"], + doubleedge: ["9L56", "8L56"], + drillrun: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flipturn: ["9M", "8T"], + focusenergy: ["9L32", "8M"], + furyattack: ["9L1", "8L1"], + gigaimpact: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M"], + icefang: ["9M", "8M"], + laserfocus: ["8L32"], + liquidation: ["9M", "9L48", "8M", "8L48"], + peck: ["9L1", "8L1"], + poisonjab: ["9M", "8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9L1", "8M", "8L1"], + waterfall: ["9M", "8M"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + toxel: { + learnset: { + acid: ["9L1", "8L1", "8S0"], + attract: ["8M"], + belch: ["9L1", "8L1"], + charm: ["9M"], + encore: ["9M", "8M"], + endeavor: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flail: ["9L1", "8L1", "8S0"], + growl: ["9L1", "8L1", "8S0"], + metalsound: ["9E", "8E"], + nuzzle: ["9L1", "8L1", "8S0"], + poweruppunch: ["8E"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + }, + eventData: [ + {generation: 8, level: 1, isHidden: true, moves: ["nuzzle", "growl", "flail", "acid"], pokeball: "luxuryball"}, + ], + }, + toxtricity: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M", "9L1", "8L1"], + attract: ["8M"], + belch: ["9L1", "8L1"], + boomburst: ["9L48", "8L48", "8S0"], + brickbreak: ["9M"], + charge: ["9M", "9L4", "8L4"], + chargebeam: ["9M"], + charm: ["9M"], + discharge: ["9L36", "8L36"], + drainpunch: ["9M", "8M"], + eerieimpulse: ["9M", "8M", "8L1"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firepunch: ["9M", "8M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + leer: ["9L1", "8L1"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + nobleroar: ["9L1", "8L1"], + nuzzle: ["9L1", "8L1"], + overdrive: ["9L44", "8L44", "8S0"], + payback: ["8M"], + poisonjab: ["9M", "9L40", "8M", "8L40"], + poisontail: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "8M"], + risingvoltage: ["8T", "8S0"], + round: ["8M"], + scaryface: ["9M", "9L12", "8M", "8L12"], + screech: ["9L24", "8M", "8L24"], + shiftgear: ["9L52", "8L52"], + shockwave: ["9L8", "8L8"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M", "8S0"], + snarl: ["9M", "8M"], + snore: ["8M"], + spark: ["9L0", "8L0"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L28", "8L28"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L16", "8M", "8L16"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + toxic: ["9M", "9L32", "8L32"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "8M"], + venoshock: ["9M", "8M", "8L20"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 50, shiny: true, nature: "Rash", abilities: ["punkrock"], moves: ["overdrive", "sludgewave", "boomburst", "risingvoltage"], pokeball: "cherishball"}, + ], + }, + toxtricitylowkey: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M", "9L1", "8L1"], + attract: ["8M"], + belch: ["9L1", "8L1"], + boomburst: ["9L48", "8L48"], + brickbreak: ["9M"], + charge: ["9M", "9L4", "8L4"], + chargebeam: ["9M"], + charm: ["9M"], + discharge: ["9L36", "8L36"], + drainpunch: ["9M", "8M"], + eerieimpulse: ["9M", "8M", "8L1"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firepunch: ["9M", "8M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + leer: ["9L1", "8L1"], + magneticflux: ["9L52", "8L52"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + nobleroar: ["9L1", "8L1"], + nuzzle: ["9L1", "8L1"], + overdrive: ["9L44", "8L44"], + payback: ["8M"], + poisonjab: ["9M", "9L40", "8M", "8L40"], + poisontail: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + scaryface: ["9M", "9L12", "8M", "8L12"], + screech: ["9L24", "8M", "8L24"], + shockwave: ["9L8", "8L8"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + spark: ["9L0", "8L0"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L28", "8L28"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L16", "8M", "8L16"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + toxic: ["9M", "9L32", "8L32"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "8M"], + venomdrench: ["8M", "8L20"], + venoshock: ["9M"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], + }, + }, + sizzlipede: { + learnset: { + attract: ["8M"], + bite: ["8L10"], + brutalswing: ["8M"], + bugbite: ["8L20"], + bugbuzz: ["8M"], + burnup: ["8L55"], + coil: ["8L25"], + crunch: ["8M", "8L40"], + defensecurl: ["8E"], + ember: ["8L1"], + endure: ["8M"], + facade: ["8M"], + firelash: ["8L45"], + firespin: ["8M", "8L35"], + flamewheel: ["8L15"], + heatcrash: ["8M"], + heatwave: ["8M"], + knockoff: ["8E"], + leechlife: ["8M"], + lunge: ["8L50"], + powerwhip: ["8M"], + protect: ["8M"], + rest: ["8M"], + rollout: ["8E"], + round: ["8M"], + scald: ["8M"], + scorchingsands: ["8T"], + skittersmack: ["8T"], + slam: ["8L30"], + sleeptalk: ["8M"], + smokescreen: ["8L1"], + snore: ["8M"], + strugglebug: ["8E"], + substitute: ["8M"], + sunnyday: ["8M"], + venoshock: ["8M"], + wrap: ["8L5"], + }, + }, + centiskorch: { + learnset: { + attract: ["8M"], + bite: ["8L1"], + brutalswing: ["8M"], + bugbite: ["8L20"], + bugbuzz: ["8M"], + burnup: ["8L67"], + coil: ["8L25"], + crunch: ["8M", "8L46"], + ember: ["8L1"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firelash: ["8L53"], + firespin: ["8M", "8L39"], + flamethrower: ["8M"], + flamewheel: ["8L15"], + flareblitz: ["8M"], + gigaimpact: ["8M"], + heatcrash: ["8M"], + heatwave: ["8M"], + hyperbeam: ["8M"], + inferno: ["8L1"], + leechlife: ["8M"], + lunge: ["8L60"], + mysticalfire: ["8M"], + overheat: ["8M"], + powerwhip: ["8M"], + protect: ["8M"], + rest: ["8M"], + round: ["8M"], + scald: ["8M"], + scorchingsands: ["8T"], + skittersmack: ["8T"], + slam: ["8L32"], + sleeptalk: ["8M"], + smokescreen: ["8L1"], + snore: ["8M"], + solarbeam: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + thunderfang: ["8M"], + venoshock: ["8M"], + willowisp: ["8M"], + wrap: ["8L1"], + xscissor: ["8M"], + }, + }, + clobbopus: { + learnset: { + attract: ["8M"], + bind: ["8L10"], + bodyslam: ["8M"], + brickbreak: ["8M", "8L20"], + brine: ["8M"], + bulkup: ["8M", "8L25"], + circlethrow: ["8E"], + closecombat: ["8M"], + coaching: ["8T"], + detect: ["8L15"], + dive: ["8M"], + endure: ["8M"], + facade: ["8M"], + feint: ["8L5"], + focusblast: ["8M"], + icepunch: ["8M"], + leer: ["8L1"], + liquidation: ["8M"], + megapunch: ["8M"], + muddywater: ["8M"], + mudshot: ["8M"], + painsplit: ["8E"], + payback: ["8M"], + poweruppunch: ["8E"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["8M", "8L40"], + rocksmash: ["8L1"], + round: ["8M"], + seismictoss: ["8E"], + sleeptalk: ["8M"], + snore: ["8M"], + soak: ["8E"], + submission: ["8L30"], + substitute: ["8M"], + suckerpunch: ["8E"], + superpower: ["8M", "8L45"], + taunt: ["8M", "8L35"], + waterfall: ["8M"], + workup: ["8M"], + }, + }, + grapploct: { + learnset: { + attract: ["8M"], + bind: ["8L1"], + bodyslam: ["8M"], + brickbreak: ["8M", "8L20"], + brine: ["8M"], + brutalswing: ["8M"], + bulkup: ["8M", "8L25"], + closecombat: ["8M"], + coaching: ["8T"], + detect: ["8L15"], + dig: ["8M"], + dive: ["8M"], + drainpunch: ["8M"], + endure: ["8M"], + facade: ["8M"], + feint: ["8L1"], + focusblast: ["8M"], + gigaimpact: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icepunch: ["8M"], + leer: ["8L1"], + liquidation: ["8M"], + megapunch: ["8M"], + muddywater: ["8M"], + mudshot: ["8M"], + octazooka: ["8L1"], + octolock: ["8L0"], + payback: ["8M"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["8M", "8L40"], + rocksmash: ["8L1"], + round: ["8M"], + scaryface: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["8M"], + snore: ["8M"], + stompingtantrum: ["8M"], + submission: ["8L30"], + substitute: ["8M"], + superpower: ["8M", "8L45"], + surf: ["8M"], + taunt: ["8M", "8L35"], + topsyturvy: ["8L50"], + waterfall: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + sinistea: { + learnset: { + allyswitch: ["9E", "8M"], + aromatherapy: ["8L30"], + aromaticmist: ["9L6", "8L6"], + astonish: ["9L1", "8L1"], + batonpass: ["9M", "8M"], + calmmind: ["9M"], + confuseray: ["9M"], + darkpulse: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigadrain: ["9M", "9L36", "8M", "8L36"], + hex: ["9M", "8M"], + imprison: ["9M", "8M"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12"], + memento: ["9L54", "8L54"], + metronome: ["9M", "8M"], + nastyplot: ["9M", "9L42", "8M", "8L42"], + nightshade: ["9M"], + payback: ["8M"], + phantomforce: ["9M", "8M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "8L18"], + psybeam: ["9M"], + psychic: ["9M", "8M"], + psyshock: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + shadowball: ["9M", "9L48", "8M", "8L48"], + shellsmash: ["9L60", "8L60"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + sweetscent: ["9L30"], + terablast: ["9M"], + trick: ["9M", "8M"], + trickroom: ["9M"], + willowisp: ["9M", "8M"], + withdraw: ["9L1", "8L1"], + wonderroom: ["8M"], + }, + }, + sinisteaantique: { + learnset: { + allyswitch: ["9E"], + aromatherapy: ["8S0"], + aromaticmist: ["9L6"], + astonish: ["9L1"], + batonpass: ["9M"], + calmmind: ["9M"], + celebrate: ["8S0"], + confuseray: ["9M"], + darkpulse: ["9M"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M", "9L36"], + hex: ["9M"], + imprison: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L12"], + memento: ["9L54", "8S0"], + metronome: ["9M", "8S0"], + nastyplot: ["9M", "9L42"], + nightshade: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + rest: ["9M"], + shadowball: ["9M", "9L48"], + shellsmash: ["9L60"], + skillswap: ["9M"], + sleeptalk: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L24"], + sweetscent: ["9L30"], + terablast: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + withdraw: ["9L1"], + }, + eventData: [ + {generation: 8, level: 50, isHidden: true, moves: ["memento", "metronome", "aromatherapy", "celebrate"], pokeball: "cherishball"}, + ], + }, + polteageist: { + learnset: { + allyswitch: ["8M"], + aromatherapy: ["8L30"], + aromaticmist: ["9L1", "8L1"], + astonish: ["9L1", "8L1"], + batonpass: ["9M", "8M"], + calmmind: ["9M"], + confuseray: ["9M"], + curse: ["9L66", "8L66"], + darkpulse: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigadrain: ["9M", "9L36", "8M", "8L36"], + gigaimpact: ["9M", "8M"], + hex: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M"], + megadrain: ["9L1", "8L1"], + memento: ["9L54", "8L54"], + metronome: ["9M", "8M"], + nastyplot: ["9M", "9L42", "8M", "8L42"], + nightshade: ["9M"], + payback: ["8M"], + phantomforce: ["9M", "8M"], + poltergeist: ["9M", "8T"], + protect: ["9M", "9L18", "8M", "8L18"], + psybeam: ["9M"], + psychic: ["9M", "8M"], + psyshock: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + selfdestruct: ["8M"], + shadowball: ["9M", "9L48", "8M", "8L48"], + shellsmash: ["9L60", "8L60"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9M"], + storedpower: ["9M", "8M"], + strengthsap: ["9L1", "8L1"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + sweetscent: ["9L30"], + teatime: ["9L0", "8L0"], + terablast: ["9M"], + trick: ["9M", "8M"], + trickroom: ["9M"], + willowisp: ["9M", "8M"], + withdraw: ["9L1", "8L1"], + wonderroom: ["8M"], + }, + }, + hatenna: { + learnset: { + afteryou: ["9E", "8E"], + aromatherapy: ["8L15"], + aromaticmist: ["9L15", "8E"], + attract: ["8M"], + batonpass: ["9M", "8M"], + calmmind: ["9M", "9L35", "8M", "8L35"], + charm: ["9M", "8M"], + confusion: ["9L1", "8L1"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "9L30", "8M", "8L30"], + disarmingvoice: ["9M", "9L10", "8L10"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + gigadrain: ["9M", "8M"], + healingwish: ["9L45", "8L45"], + healpulse: ["9L25", "8L25"], + helpinghand: ["9M", "8M"], + imprison: ["9M", "8M"], + lifedew: ["9L5", "8L5"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + metronome: ["9M"], + mistyterrain: ["9M"], + mysticalfire: ["9E", "8M"], + nuzzle: ["9E", "8E"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L20", "8L20"], + psychic: ["9M", "9L40", "8M", "8L40"], + psychicterrain: ["9M"], + psyshock: ["9M", "8M"], + quash: ["9E", "8E"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + trick: ["9M"], + trickroom: ["9M"], + }, + }, + hattrem: { + learnset: { + aromatherapy: ["8L15"], + aromaticmist: ["9L15"], + attract: ["8M"], + batonpass: ["9M", "8M"], + brutalswing: ["9L0", "8M", "8L0"], + calmmind: ["9M", "9L37", "8M", "8L37"], + charm: ["9M", "8M"], + confusion: ["9L1", "8L1"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "9L30", "8M", "8L30"], + disarmingvoice: ["9M", "9L1", "8L1"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + gigadrain: ["9M", "8M"], + healingwish: ["9L51", "8L51"], + healpulse: ["9L25", "8L25"], + helpinghand: ["9M", "8M"], + imprison: ["9M", "8M"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + metronome: ["9M"], + mistyterrain: ["9M"], + mysticalfire: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L20", "8L20"], + psychic: ["9M", "9L44", "8M", "8L44"], + psychicterrain: ["9M"], + psyshock: ["9M", "8M"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + trick: ["9M"], + trickroom: ["9M"], + }, + }, + hatterene: { + learnset: { + agility: ["9M"], + aromatherapy: ["8L15"], + aromaticmist: ["9L15"], + attract: ["8M"], + batonpass: ["9M", "8M"], + brutalswing: ["9L1", "8M", "8L1"], + calmmind: ["9M", "9L37", "8M", "8L37"], + charm: ["9M", "8M"], + confusion: ["9L1", "8L1"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "9L30", "8M", "8L30"], + disarmingvoice: ["9M", "9L1", "8L1"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + futuresight: ["8M"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gravity: ["9M"], + guardswap: ["8M"], + healingwish: ["9L55", "8L55"], + healpulse: ["9L25", "8L25"], + helpinghand: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicpowder: ["9L64", "8L64"], + magicroom: ["8M"], + metronome: ["9M"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M"], + mysticalfire: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + powerswap: ["8M"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L20", "8L20"], + psychic: ["9M", "9L46", "8M", "8L46"], + psychicterrain: ["9M"], + psychocut: ["9L0", "8M", "8L0"], + psyshock: ["9M", "8M"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + swordsdance: ["9M", "8M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + trick: ["9M"], + trickroom: ["9M", "8M"], + wonderroom: ["8M"], + }, + }, + impidimp: { + learnset: { + assurance: ["9L16", "8M", "8L16"], + attract: ["8M"], + bite: ["9L4", "8L4"], + burningjealousy: ["9M", "8T"], + chillingwater: ["9M"], + confide: ["9L1", "8L1"], + darkpulse: ["9M", "9L33", "8M", "8L33"], + dazzlinggleam: ["9M", "8M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M", "9L12", "8M", "8L12"], + flatter: ["9L8", "8L8"], + fling: ["9M"], + foulplay: ["9M", "9L44", "8M", "8L44"], + lashout: ["9M", "8T"], + leechlife: ["9M", "8M"], + lightscreen: ["9M"], + lowkick: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + mistyterrain: ["9M"], + nastyplot: ["9M", "9L36", "8M", "8L36"], + partingshot: ["9E"], + playrough: ["9M", "9L40", "8M", "8L40"], + protect: ["9M", "8M"], + reflect: ["9M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + round: ["8M"], + scaryface: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + swagger: ["9L20", "8L20"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunderwave: ["9M", "8M"], + torment: ["9L28", "8L28"], + trailblaze: ["9M"], + trick: ["9M", "8M"], + uproar: ["8M"], + }, + }, + morgrem: { + learnset: { + assurance: ["9L16", "8M", "8L16"], + attract: ["8M"], + bite: ["9L1", "8L1"], + burningjealousy: ["9M", "8T"], + chillingwater: ["9M"], + confide: ["9L1", "8L1"], + darkpulse: ["9M", "9L35", "8M", "8L35"], + dazzlinggleam: ["9M", "8M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M", "9L12", "8M", "8L12"], + falsesurrender: ["9L0", "8L0"], + flatter: ["9L1", "8L1"], + fling: ["9M"], + foulplay: ["9M", "9L52", "8M", "8L52"], + imprison: ["9M"], + lashout: ["9M", "8T"], + leechlife: ["9M", "8M"], + lightscreen: ["9M", "8M"], + lowkick: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + mistyterrain: ["9M"], + nastyplot: ["9M", "9L40", "8M", "8L40"], + playrough: ["9M", "9L46", "8M", "8L46"], + protect: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + round: ["8M"], + scaryface: ["9M"], + shadowclaw: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + swagger: ["9L20", "8L20"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + throatchop: ["8M"], + thunderwave: ["9M", "8M"], + torment: ["9L28", "8L28"], + trailblaze: ["9M"], + trick: ["9M", "8M"], + uproar: ["8M"], + }, + }, + grimmsnarl: { + learnset: { + assurance: ["9L16", "8M", "8L16"], + attract: ["8M"], + bite: ["9L1", "8L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + bulkup: ["9M", "9L1", "8M", "8L1"], + burningjealousy: ["9M", "8T"], + chillingwater: ["9M"], + confide: ["9L1", "8L1"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "9L35", "8M", "8L35"], + dazzlinggleam: ["9M", "8M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M", "9L12", "8M", "8L12"], + falsesurrender: ["9L1", "8L1"], + firepunch: ["9M", "8M"], + flatter: ["9L1", "8L1"], + fling: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + focuspunch: ["9M"], + foulplay: ["9M", "9L56", "8M", "8L56"], + gigaimpact: ["9M", "8M"], + hammerarm: ["9L64", "8L64"], + hyperbeam: ["9M", "8M"], + icepunch: ["9M", "8M"], + imprison: ["9M"], + lashout: ["9M", "8T"], + leechlife: ["9M", "8M"], + lightscreen: ["9M", "9S0", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + mistyterrain: ["9M"], + nastyplot: ["9M", "9L40", "8M", "8L40"], + playrough: ["9M", "9L48", "8M", "8L48"], + powerswap: ["8M"], + poweruppunch: ["8L1"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + reflect: ["9M", "9S0", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spiritbreak: ["9L0", "9S0", "8L0"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + superpower: ["8M"], + swagger: ["9L20", "8L20"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + throatchop: ["8M"], + thunderpunch: ["9M", "8M"], + thunderwave: ["9M", "9S0", "8M"], + torment: ["9L28", "8L28"], + trailblaze: ["9M"], + trick: ["9M", "8M"], + uproar: ["8M"], + wonderroom: ["8M"], + }, + eventData: [ + {generation: 9, level: 50, nature: "Calm", shiny: true, abilities: ["prankster"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["thunderwave", "spiritbreak", "reflect", "lightscreen"], pokeball: "cherishball"}, + ], + }, + milcery: { + learnset: { + acidarmor: ["8L30"], + aromatherapy: ["8L20"], + aromaticmist: ["8L1"], + attract: ["8M", "8L25", "8S0"], + babydolleyes: ["8E"], + celebrate: ["8S0"], + charm: ["8M"], + dazzlinggleam: ["8M", "8L35"], + drainingkiss: ["8M", "8L15"], + endure: ["8M"], + entrainment: ["8L50", "8S0"], + facade: ["8M"], + fling: ["8M"], + helpinghand: ["8M"], + lastresort: ["8E", "8S0"], + mistyterrain: ["8M", "8L45"], + protect: ["8M"], + recover: ["8L40"], + rest: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + sweetkiss: ["8L5"], + sweetscent: ["8L10"], + tackle: ["8L1"], + }, + eventData: [ + {generation: 8, level: 5, nature: "Hardy", isHidden: true, moves: ["celebrate", "lastresort", "entrainment", "attract"], pokeball: "cherishball"}, + ], + }, + alcremie: { + learnset: { + acidarmor: ["8L30"], + aromatherapy: ["8L20"], + aromaticmist: ["8L1"], + attract: ["8M", "8L25"], + calmmind: ["8M"], + charm: ["8M"], + dazzlinggleam: ["8M", "8L35"], + decorate: ["8L0"], + drainingkiss: ["8M", "8L15"], + drainpunch: ["8M"], + encore: ["8M"], + endure: ["8M"], + energyball: ["8M"], + entrainment: ["8L50"], + facade: ["8M"], + faketears: ["8M"], + fling: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + imprison: ["8M"], + lightscreen: ["8M"], + magicalleaf: ["8M"], + magicroom: ["8M"], + metronome: ["8M"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L45"], + mysticalfire: ["8M"], + playrough: ["8M"], + protect: ["8M"], + psychic: ["8M"], + psyshock: ["8M"], + recover: ["8L40"], + rest: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + sweetkiss: ["8L1"], + sweetscent: ["8L1"], + tackle: ["8L1"], + triattack: ["8M"], + wonderroom: ["8M"], + }, + }, + falinks: { + learnset: { + agility: ["9M", "8M"], + assurance: ["8M"], + beatup: ["8M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M"], + bulkup: ["9M", "9L20", "8M", "8L20"], + closecombat: ["9M", "9L50", "8M", "8L50"], + coaching: ["8T"], + counter: ["9L60", "8L60"], + endure: ["9M", "9L25", "8M", "8L25"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firstimpression: ["9L35", "8L35"], + focusblast: ["9M", "8M"], + focusenergy: ["9L10", "8M", "8L10"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L15", "8L15"], + helpinghand: ["9M", "8M"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L45", "8M", "8L45"], + ironhead: ["9M", "8M"], + knockoff: ["9M"], + lunge: ["9M"], + megahorn: ["9L55", "8M", "8L55"], + noretreat: ["9L40", "8L40"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "9L1", "8M", "8L1"], + raindance: ["9M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "9L30", "8M", "8L30"], + rockslide: ["9M", "8M"], + rocksmash: ["9L5", "8L5"], + rocktomb: ["9M", "8M"], + round: ["8M"], + screech: ["8M"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superpower: ["8M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + trailblaze: ["9M"], + uproar: ["9M"], + zenheadbutt: ["9M", "8M"], + }, + }, + pincurchin: { + learnset: { + acupressure: ["9L55", "8L55"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M"], + brine: ["8M"], + bubblebeam: ["9L25", "8L25"], + charge: ["9M", "9L10", "8L10"], + chargebeam: ["9M"], + chillingwater: ["9M"], + curse: ["9L35", "8L35"], + discharge: ["9L60", "8L60"], + electricterrain: ["9M", "9L40", "8M", "8L40"], + electroball: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + furyattack: ["9L15", "8L15"], + gigaimpact: ["9M"], + hex: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + liquidation: ["9M", "8M"], + memento: ["9E", "8E"], + muddywater: ["8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pinmissile: ["8M"], + poisonjab: ["9M", "9L45", "8M", "8L45"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + recover: ["9L30", "8L30"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + scald: ["9M", "8M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spark: ["9L20", "8L20"], + spikes: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9E", "8E"], + surf: ["9M", "8M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + toxicspikes: ["9M", "8M"], + venomdrench: ["8M"], + venoshock: ["9M", "8M"], + watergun: ["9L5", "8L5"], + wildcharge: ["9M"], + zingzap: ["9L50", "8L50"], + }, + }, + snom: { + learnset: { + attract: ["8M"], + bugbite: ["9M", "9E", "8E"], + bugbuzz: ["9M", "8M"], + endure: ["8M"], + facade: ["9M", "8M"], + fairywind: ["9E", "8E"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M"], + lunge: ["9M"], + mirrorcoat: ["9E", "8E"], + pounce: ["9M"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + strugglebug: ["9M", "9L1", "8L1"], + substitute: ["9M", "8M"], + terablast: ["9M"], + }, + }, + frosmoth: { + learnset: { + acrobatics: ["9M", "8M"], + airslash: ["9M", "8M"], + attract: ["9L1", "8M", "8L1"], + aurorabeam: ["9L24", "8L24"], + auroraveil: ["9L36", "8L36"], + avalanche: ["9M", "8M"], + blizzard: ["9M", "9L40", "8M", "8L40"], + bugbite: ["9M"], + bugbuzz: ["9M", "9L32", "8M", "8L32"], + calmmind: ["9M", "8M"], + dazzlinggleam: ["9M", "8M"], + defog: ["9L16", "8L16"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + featherdance: ["9L21", "8L21"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + hail: ["8M", "8L28"], + helpinghand: ["9M", "9L1", "8M", "8L1"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icespinner: ["9M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L0", "8M", "8L0"], + imprison: ["9M", "8M"], + infestation: ["9L8", "8L8"], + leechlife: ["9M", "8M"], + lightscreen: ["9M", "8M"], + lunge: ["9M"], + mist: ["9L12", "8L12"], + playrough: ["9M", "8M"], + pounce: ["9M"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M"], + quiverdance: ["9L52", "8L52"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M", "9L28"], + strugglebug: ["9M", "9L1", "8L1"], + stunspore: ["9L4", "8L4"], + substitute: ["9M", "8M"], + swift: ["9M"], + tailwind: ["9M", "9L44", "8L44"], + takedown: ["9M"], + terablast: ["9M"], + tripleaxel: ["8T"], + uturn: ["9M", "8M"], + weatherball: ["9M", "8M"], + wideguard: ["9L48", "8L48"], + }, + }, + stonjourner: { + learnset: { + ancientpower: ["9E", "8E"], + assurance: ["8M"], + attract: ["8M"], + block: ["9L1", "8L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L42", "8M", "8L42"], + brutalswing: ["8M"], + bulldoze: ["9M", "8M"], + curse: ["9E", "8E"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gravity: ["9M", "9L18", "8L18"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "9L54", "8M", "8L54"], + highhorsepower: ["9M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9L66", "8M", "8L66"], + meteorbeam: ["8T"], + powergem: ["9M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockpolish: ["9L6", "8L6"], + rockslide: ["9M", "9L36", "8M", "8L36"], + rockthrow: ["9L1", "8L1"], + rocktomb: ["9M", "9L12", "8M", "8L12"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["9M", "8M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9M"], + snore: ["8M"], + stealthrock: ["9M", "9L30", "8M", "8L30"], + stomp: ["9L24", "8L24"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "9L60", "8M", "8L60"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superpower: ["8M"], + takedown: ["9M"], + terablast: ["9M"], + wideguard: ["9L48", "8L48"], + wonderroom: ["8M"], + }, + }, + eiscue: { + learnset: { + agility: ["9M", "8M"], + amnesia: ["9M", "9L30", "8M", "8L30"], + aquaring: ["9E", "8E"], + attract: ["8M"], + auroraveil: ["9L48", "8L48"], + avalanche: ["9M", "8M"], + bellydrum: ["9E", "8E"], + blizzard: ["9M", "9L60", "8M", "8L60"], + bodyslam: ["9M"], + brine: ["8M"], + chillingwater: ["9M"], + dive: ["8M"], + doubleedge: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flipturn: ["9M"], + freezedry: ["9L36", "8L36"], + gigaimpact: ["9M"], + hail: ["8M", "8L42"], + headbutt: ["9L24", "8L24"], + headsmash: ["9E", "8E"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + icebeam: ["9M", "8M"], + icepunch: ["9M", "8M"], + icespinner: ["9M"], + iciclecrash: ["9E", "8E"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "9L18", "8M", "8L18"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + liquidation: ["9M", "8M"], + mist: ["9L6", "8L6"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M", "9L42"], + soak: ["9E", "8E"], + substitute: ["9M", "8M"], + surf: ["9M", "9L54", "8M", "8L54"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + waterfall: ["9M", "8M"], + waterpulse: ["9M"], + weatherball: ["9M", "9L12", "8M", "8L12"], + whirlpool: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + indeedee: { + learnset: { + afteryou: ["9L25", "8L25"], + allyswitch: ["8M"], + aromatherapy: ["8L30"], + attract: ["8M"], + bodyslam: ["9M"], + calmmind: ["9M", "9L40", "8M", "8L40"], + dazzlinggleam: ["9M", "8M"], + disarmingvoice: ["9M", "9L10", "8L10"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + encore: ["9M", "9L5", "8M", "8L5"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + expandingforce: ["8T"], + extrasensory: ["9E", "8E"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + futuresight: ["8M"], + gravity: ["9M"], + healingwish: ["9L30"], + helpinghand: ["9M", "9L20", "8M", "8L20"], + hypervoice: ["9M", "8M"], + imprison: ["9M", "8M"], + lastresort: ["9L55", "8L55"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + metronome: ["9M", "8M"], + mysticalfire: ["8M"], + payday: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + powersplit: ["9L45", "8L45"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L15", "8L15"], + psychic: ["9M", "9L35", "8M", "8L35"], + psychicterrain: ["9M", "9L50", "8M", "8L50"], + psychup: ["9E", "8E"], + psyshock: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + shadowball: ["9M", "8M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "9L1", "8M", "8L1"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + indeedeef: { + learnset: { + allyswitch: ["8M"], + aromatherapy: ["8L30"], + attract: ["8M"], + batonpass: ["9M", "9L5", "8M", "8L5"], + bodyslam: ["9M"], + calmmind: ["9M", "9L40", "8M", "8L40"], + charm: ["9M"], + dazzlinggleam: ["9M", "8M"], + disarmingvoice: ["9M", "9L10", "8L10"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + followme: ["9L25", "8L25"], + futuresight: ["8M"], + guardsplit: ["9L45", "8L45"], + guardswap: ["8M"], + healingwish: ["9L30", "8L55"], + healpulse: ["9E", "8E"], + helpinghand: ["9M", "9L20", "8M", "8L20"], + hypervoice: ["9M", "9S0", "8M"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + metronome: ["9M", "8M"], + mysticalfire: ["8M"], + payday: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L15", "8L15"], + psychic: ["9M", "9L35", "9S0", "8M", "8L35"], + psychicterrain: ["9M", "9L50", "8M", "8L50"], + psychoshift: ["8E"], + psychup: ["9E", "8E"], + psyshock: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["9M", "9S0", "8M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "9L1", "8M", "8L1"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + trick: ["9M", "8M"], + trickroom: ["9M", "9S0"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 9, level: 75, shiny: 1, perfectIVs: 4, moves: ["psychic", "hypervoice", "shadowball", "trickroom"]}, + ], + }, + morpeko: { + learnset: { + agility: ["9M", "9L40", "8M", "8L40"], + assurance: ["8M"], + attract: ["8M"], + aurawheel: ["9L55", "8L55"], + batonpass: ["9M"], + bite: ["9L25", "8L25"], + brickbreak: ["9M", "8M"], + bulletseed: ["9M", "9L45", "8M", "8L45"], + charge: ["9M", "9E", "8E"], + chargebeam: ["9M"], + crunch: ["9M", "9L50", "8M", "8L50"], + darkpulse: ["9M", "8M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + faketears: ["9M", "8M"], + firefang: ["9M", "8M"], + flatter: ["9L20", "8L20"], + fling: ["9M", "8M"], + foulplay: ["9M", "8M"], + icefang: ["9M", "8M"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leer: ["9L5", "8L5"], + nastyplot: ["9M", "8M"], + outrage: ["9M", "8M"], + partingshot: ["9E", "8E"], + payback: ["8M"], + powertrip: ["9L10", "8L10"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quash: ["9E", "8E"], + quickattack: ["9L15", "8L15"], + rapidspin: ["9E", "8E"], + rest: ["9M", "8M"], + revenge: ["8M"], + reversal: ["9M"], + risingvoltage: ["8T"], + round: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + spark: ["9L30", "8L30"], + spite: ["9M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + superfang: ["9M", "9E", "8E"], + swagger: ["9E", "8E"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L60", "8L60"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + tickle: ["9E", "8E"], + torment: ["9L35", "8L35"], + uproar: ["9M", "8M"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], + }, + }, + cufant: { + learnset: { + attract: ["8M"], + belch: ["9E", "8E"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + curse: ["9E", "8E"], + defensecurl: ["9E", "8E"], + dig: ["9M", "9L30", "8M", "8L30"], + doubleedge: ["9E", "8E"], + earthpower: ["9M", "8M"], + earthquake: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fissure: ["9E", "8E"], + flashcannon: ["9M"], + fling: ["9M", "8M"], + growl: ["9L1", "8L1"], + heavyslam: ["9M"], + highhorsepower: ["9M", "9L50", "8M", "8L50"], + irondefense: ["9M", "9L25", "8M", "8L25"], + ironhead: ["9M", "9L40", "8M", "8L40"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + playrough: ["9M", "9L45", "8M", "8L45"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L10", "8L10"], + rocktomb: ["9M", "8M"], + rollout: ["9L5", "8L5"], + round: ["8M"], + sandstorm: ["9M"], + screech: ["8M"], + slam: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stomp: ["9L20", "8L20"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M"], + strength: ["9L35", "8L35"], + substitute: ["9M", "8M"], + superpower: ["9L55", "8M", "8L55"], + swagger: ["9E", "8E"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + whirlwind: ["9E", "8E"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + copperajah: { + learnset: { + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + dig: ["9M", "9L30", "8M", "8L30"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flashcannon: ["9M", "8M"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + heatcrash: ["9M", "8M"], + heavyslam: ["9M", "9L0", "8M", "8L0"], + highhorsepower: ["9M", "9L58", "8M", "8L58"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L25", "8M", "8L25"], + ironhead: ["9M", "9L44", "8M", "8L44"], + knockoff: ["9M"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M"], + payback: ["8M"], + playrough: ["9M", "9L51", "8M", "8L51"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M"], + rollout: ["9L1", "8L1"], + round: ["8M"], + sandstorm: ["9M"], + scaryface: ["8M"], + screech: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9M"], + snarl: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stomp: ["9L20", "8L20"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "8M"], + strength: ["9L37", "8L37"], + substitute: ["9M", "8M"], + superpower: ["9L65", "8M", "8L65"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + dracozolt: { + learnset: { + aerialace: ["8L14"], + ancientpower: ["8L21"], + bodyslam: ["8M"], + boltbeak: ["8L63"], + breakingswipe: ["8M"], + brutalswing: ["8M"], + bulldoze: ["8M"], + charge: ["8L7", "8S0"], + discharge: ["8L56"], + dracometeor: ["8T"], + dragonclaw: ["8M"], + dragonpulse: ["8M", "8L70"], + dragonrush: ["8L77"], + dragontail: ["8L35"], + earthpower: ["8M"], + earthquake: ["8M"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firespin: ["8M"], + flamethrower: ["8M"], + gigaimpact: ["8M"], + highhorsepower: ["8M"], + hyperbeam: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + outrage: ["8M"], + pluck: ["8L28"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + slam: ["8L49"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8L42"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + tackle: ["8L1", "8S0"], + taunt: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderpunch: ["8M"], + thundershock: ["8L1", "8S0"], + thunderwave: ["8M"], + wildcharge: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["tackle", "thundershock", "charge"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + arctozolt: { + learnset: { + ancientpower: ["8L21"], + avalanche: ["8M", "8L35"], + blizzard: ["8M", "8L77"], + bodyslam: ["8M"], + boltbeak: ["8L63"], + bulldoze: ["8M"], + charge: ["8L7", "8S0"], + discharge: ["8L56"], + echoedvoice: ["8L14"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + freezedry: ["8L42"], + gigaimpact: ["8M"], + hail: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icefang: ["8M"], + iciclecrash: ["8L70"], + iciclespear: ["8M"], + icywind: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + payback: ["8M"], + pluck: ["8L28"], + powdersnow: ["8L1", "8S0"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + slam: ["8L49"], + sleeptalk: ["8M"], + snore: ["8M"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + surf: ["8M"], + taunt: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderpunch: ["8M"], + thundershock: ["8L1", "8S0"], + thunderwave: ["8M"], + wildcharge: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["powdersnow", "thundershock", "charge"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + dracovish: { + learnset: { + ancientpower: ["8L21"], + bite: ["8L28"], + bodyslam: ["8M"], + brine: ["8M"], + brutalswing: ["8M", "8L14"], + bulldoze: ["8M"], + crunch: ["8M", "8L56"], + dive: ["8M"], + dracometeor: ["8T"], + dragonbreath: ["8L35"], + dragonpulse: ["8M", "8L70"], + dragonrush: ["8L77", "8S1"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M"], + facade: ["8M"], + fishiousrend: ["8L63", "8S1"], + gigaimpact: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icefang: ["8M", "8S1"], + ironhead: ["8M"], + leechlife: ["8M"], + liquidation: ["8M"], + lowkick: ["8M"], + megakick: ["8M"], + meteorbeam: ["8T"], + outrage: ["8M"], + protect: ["8M", "8L7", "8S0"], + psychicfangs: ["8M"], + raindance: ["8M"], + rest: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + scald: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8L42"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + superfang: ["8L49"], + surf: ["8M"], + tackle: ["8L1", "8S0"], + waterfall: ["8M"], + watergun: ["8L1", "8S1", "8S0"], + whirlpool: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["tackle", "watergun", "protect"], pokeball: "pokeball"}, + {generation: 8, level: 80, nature: "Naive", abilities: ["strongjaw"], ivs: {hp: 30, atk: 31, def: 31, spa: 30, spd: 30, spe: 31}, moves: ["fishiousrend", "dragonrush", "icefang", "watergun"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + arctovish: { + learnset: { + ancientpower: ["8L21"], + auroraveil: ["8L35"], + avalanche: ["8M"], + bite: ["8L28"], + blizzard: ["8M", "8L77"], + bodyslam: ["8M"], + brine: ["8M"], + crunch: ["8M", "8L56"], + dive: ["8M"], + endure: ["8M"], + facade: ["8M"], + fishiousrend: ["8L63"], + freezedry: ["8L42"], + gigaimpact: ["8M"], + hail: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icebeam: ["8M"], + icefang: ["8M"], + iciclecrash: ["8L70"], + iciclespear: ["8M"], + icywind: ["8M", "8L14"], + irondefense: ["8M"], + ironhead: ["8M"], + liquidation: ["8M"], + meteorbeam: ["8T"], + powdersnow: ["8L1", "8S0"], + protect: ["8M", "8L7", "8S0"], + psychicfangs: ["8M"], + raindance: ["8M"], + rest: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + superfang: ["8L49"], + surf: ["8M"], + waterfall: ["8M"], + watergun: ["8L1", "8S0"], + whirlpool: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["powdersnow", "watergun", "protect"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + duraludon: { + learnset: { + attract: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + breakingswipe: ["8M", "8L24"], + brickbreak: ["8M"], + darkpulse: ["8M"], + dracometeor: ["8T"], + dragonclaw: ["8M", "8L48"], + dragonpulse: ["8M"], + dragontail: ["8L30"], + endure: ["8M"], + facade: ["8M"], + flashcannon: ["8M", "8L54"], + foulplay: ["8M"], + gigaimpact: ["8M"], + gyroball: ["8M"], + heavyslam: ["8M"], + honeclaws: ["8L12"], + hyperbeam: ["8M", "8L66"], + irondefense: ["8M", "8L36"], + ironhead: ["8M"], + laserfocus: ["8L42"], + leer: ["8L1"], + lightscreen: ["8M"], + metalburst: ["8L60"], + metalclaw: ["8L1"], + metalsound: ["8L18"], + mirrorcoat: ["8E"], + nightslash: ["8E"], + outrage: ["8M"], + protect: ["8M"], + reflect: ["8M"], + rest: ["8M"], + rockslide: ["8M"], + rocksmash: ["8L6"], + rocktomb: ["8M"], + round: ["8M"], + scaryface: ["8M"], + screech: ["8M"], + slash: ["8E"], + sleeptalk: ["8M"], + snarl: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stealthrock: ["8M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + swordsdance: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + }, + }, + dreepy: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M"], + batonpass: ["9M", "8M"], + bite: ["9L1", "8L1"], + confuseray: ["9M", "9E", "8E"], + curse: ["9E", "8E"], + disable: ["9E", "8E"], + doubleteam: ["9E", "8E"], + dracometeor: ["9M", "8T"], + dragontail: ["9M", "9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + grudge: ["8E"], + helpinghand: ["9M", "8M"], + infestation: ["9L1", "8L1"], + protect: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + rest: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9E", "8E"], + swift: ["9M", "8M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + }, + }, + drakloak: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["9L12", "8M", "8L12"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + batonpass: ["9M", "8M"], + beatup: ["8M"], + bite: ["9L1", "8L1"], + breakingswipe: ["8M"], + brine: ["8M"], + confuseray: ["9M"], + dive: ["8M"], + doubleedge: ["9L66", "8L66"], + doublehit: ["9L30", "8L30"], + dracometeor: ["9M", "8T"], + dragondance: ["9M", "9L42", "8M", "8L42"], + dragonpulse: ["9M", "9L0", "8M", "8L0"], + dragonrush: ["9L61", "8L61"], + dragontail: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L18", "8M", "8L18"], + hydropump: ["9M", "8M"], + infestation: ["9L1", "8L1"], + lastresort: ["9L72", "8L72"], + lightscreen: ["9M"], + lockon: ["9L6", "8L6"], + nightshade: ["9M"], + outrage: ["9M", "8M"], + phantomforce: ["9M", "9L48", "8M", "8L48"], + pounce: ["9M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + steelwing: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M", "9L54", "8L54"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderwave: ["9M", "8M"], + uturn: ["9M", "9L36", "8M", "8L36"], + willowisp: ["9M", "8M"], + }, + }, + dragapult: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["9L12", "8M", "8L12"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + batonpass: ["9M", "8M"], + beatup: ["8M"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brine: ["8M"], + confuseray: ["9M"], + dive: ["8M"], + doubleedge: ["9L70", "8L70"], + doublehit: ["9L30", "8L30"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "8M"], + dragondance: ["9M", "9L42", "8M", "8L42"], + dragondarts: ["9L0", "9S0", "8L0"], + dragonpulse: ["9M", "8M"], + dragonrush: ["9L63", "8L63"], + dragontail: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + fly: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L18", "8M", "8L18"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + infestation: ["9L1", "8L1"], + lastresort: ["9L78", "8L78"], + lightscreen: ["9M", "8M"], + lockon: ["9L6", "8L6"], + nightshade: ["9M"], + outrage: ["9M", "8M"], + phantomforce: ["9M", "9L48", "9S0", "8M", "8L48"], + pounce: ["9M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + steelwing: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["8L1"], + sunnyday: ["9M"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M", "9L54", "8L54"], + terablast: ["9M", "9S0"], + thief: ["9M", "8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderwave: ["9M", "8M"], + triattack: ["8M"], + uturn: ["9M", "9L36", "9S0", "8M", "8L36"], + willowisp: ["9M", "8M"], + }, + eventData: [ + {generation: 9, level: 50, gender: "M", nature: "Jolly", perfectIVs: 6, abilities: ["clearbody"], moves: ["dragondarts", "phantomforce", "uturn", "terablast"], pokeball: "cherishball"}, + ], + }, + zacian: { + learnset: { + agility: ["9M", "8M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + bite: ["9L1", "8L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + closecombat: ["9M", "9L77", "8M", "8L77"], + crunch: ["9M", "9L55", "8M", "8L55", "8S0"], + dazzlinggleam: ["9M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firefang: ["9M", "8M"], + flashcannon: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "9L88", "8M", "8L88"], + helpinghand: ["9M", "8M"], + howl: ["9L1", "8L1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + icefang: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M"], + ironhead: ["9M", "9L33", "8M", "8L33", "8S0", "8S1"], + irontail: ["8M"], + laserfocus: ["8L44"], + metalclaw: ["9M", "9L1", "8L1"], + mistyterrain: ["9M"], + moonblast: ["9L66", "8L66"], + nobleroar: ["9L44"], + playrough: ["9M", "8M", "8S1"], + poisonjab: ["9M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + psychocut: ["8M"], + quickattack: ["9L1", "8L1"], + quickguard: ["9L1", "8L1"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sacredsword: ["9L1", "8L1", "8S0", "8S1"], + scaryface: ["9M", "8M"], + slash: ["9L11", "8L11"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarblade: ["9M", "8M"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L22", "8M", "8L22", "8S0", "8S1"], + tailslap: ["8M"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + trailblaze: ["9M"], + wildcharge: ["9M", "8M"], + workup: ["8M"], + }, + eventData: [ + {generation: 8, level: 70, perfectIVs: 3, moves: ["sacredsword", "swordsdance", "ironhead", "crunch"]}, + {generation: 8, level: 100, shiny: true, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 30, spd: 31, spe: 31}, moves: ["ironhead", "playrough", "swordsdance", "sacredsword"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zaciancrowned: { + learnset: { + behemothblade: ["9R", "8R"], + }, + eventOnly: true, + }, + zamazenta: { + learnset: { + agility: ["9M", "8M"], + bite: ["9L1", "8L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + closecombat: ["9M", "9L77", "8M", "8L77", "8S1"], + coaching: ["8T"], + crunch: ["9M", "9L55", "8M", "8L55", "8S0"], + dazzlinggleam: ["9M", "8M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + flashcannon: ["9M", "8M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "9L88", "8M", "8L88"], + guardswap: ["8M"], + heavyslam: ["9M"], + helpinghand: ["9M", "8M"], + howl: ["9L1", "8L1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + icefang: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L22", "8M", "8L22", "8S0", "8S1"], + ironhead: ["9M", "9L33", "8M", "8L33", "8S0", "8S1"], + irontail: ["8M"], + laserfocus: ["8L44"], + lightscreen: ["9M", "8M"], + metalburst: ["9L44", "8L1"], + metalclaw: ["9M", "9L1", "8L1"], + moonblast: ["9L66", "8L66"], + payback: ["8M"], + playrough: ["9M", "8M"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + raindance: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + roar: ["9M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + slash: ["9L11", "8L11", "8S0"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + steelbeam: ["9M", "8T"], + stoneedge: ["9M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swift: ["9M", "8M"], + tailslap: ["8M"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + trailblaze: ["9M"], + wideguard: ["9L1", "8L1", "8S1"], + wildcharge: ["9M", "8M"], + workup: ["8M"], + }, + eventData: [ + {generation: 8, level: 70, perfectIVs: 3, moves: ["slash", "crunch", "ironhead", "irondefense"]}, + {generation: 8, level: 100, shiny: true, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 30, spd: 31, spe: 31}, moves: ["ironhead", "closecombat", "irondefense", "wideguard"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zamazentacrowned: { + learnset: { + behemothbash: ["9R", "8R"], + }, + eventOnly: true, + }, + eternatus: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1"], + assurance: ["8M"], + bodyslam: ["9M"], + brutalswing: ["8M"], + confuseray: ["9M", "9L1", "8L1"], + cosmicpower: ["9L64", "8M", "8L64"], + crosspoison: ["9L32", "8M", "8L32", "8S0"], + dracometeor: ["9M", "8T"], + dragondance: ["9M", "9L24", "8M", "8L24"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "8S0"], + dragontail: ["9M", "9L1", "8L1"], + dynamaxcannon: ["9L56", "8L56", "8S1", "8S0"], + endure: ["9M", "8M"], + eternabeam: ["8L88", "8S1"], + facade: ["9M", "8M"], + fireblast: ["9M"], + firespin: ["9M"], + flamethrower: ["9M", "9L48", "8M", "8L48", "8S1", "8S0"], + flashcannon: ["9M", "8M"], + fly: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gravity: ["9M"], + gunkshot: ["9M"], + hyperbeam: ["9M", "9L80", "8M", "8L80"], + lightscreen: ["9M", "8M"], + meteorbeam: ["8T"], + mysticalfire: ["8M"], + outrage: ["9M", "9L88"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + poisontail: ["9M", "9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M"], + recover: ["9L72", "8L72"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + screech: ["8M"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M", "8S1"], + sludgewave: ["8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9L8", "8L8"], + toxicspikes: ["9M", "8M"], + venomdrench: ["8M"], + venoshock: ["9M", "9L16", "8M", "8L16"], + }, + eventData: [ + {generation: 8, level: 60, perfectIVs: 3, moves: ["crosspoison", "dragonpulse", "flamethrower", "dynamaxcannon"]}, + {generation: 8, level: 100, shiny: true, nature: "Timid", perfectIVs: 6, moves: ["eternabeam", "dynamaxcannon", "sludgebomb", "flamethrower"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + kubfu: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "9L12", "8L12"], + attract: ["8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "8L24"], + bulkup: ["9M", "9L32", "8M", "8L32"], + closecombat: ["9M", "9L48", "8M", "8L48"], + coaching: ["8T"], + counter: ["9L44", "8L44"], + detect: ["9L28", "8L28"], + dig: ["9M", "8M"], + dynamicpunch: ["9L40", "8L40"], + endure: ["9M", "9L4", "8M", "8L4", "8S0"], + facade: ["9M", "8M"], + firepunch: ["9M", "8M"], + fling: ["9M"], + focusenergy: ["9L8", "8M", "8L8", "8S0"], + focuspunch: ["9M", "9L52", "8L52"], + headbutt: ["9L20", "8L20"], + helpinghand: ["9M", "8M"], + icepunch: ["9M", "8M"], + ironhead: ["9M", "9L36", "8M", "8L36"], + leer: ["9L1", "8L1", "8S0"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rocksmash: ["9L1", "8L1", "8S0"], + round: ["8M"], + scaryface: ["9M", "9L16", "8M", "8L16"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + superpower: ["8M"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 10, perfectIVs: 3, moves: ["rocksmash", "leer", "endure", "focusenergy"]}, + ], + eventOnly: true, + }, + urshifu: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "9L12", "8L12"], + assurance: ["8M"], + attract: ["8M"], + aurasphere: ["9M", "8M"], + beatup: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "8L24"], + bulkup: ["9M", "9L32", "8M", "8L32"], + closecombat: ["9M", "9L48", "8M", "8L48"], + coaching: ["8T"], + counter: ["9L44", "8L44"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M"], + detect: ["9L28", "8L28"], + dig: ["9M", "8M"], + drainpunch: ["9M", "8M"], + dynamicpunch: ["9L40", "8L40"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firepunch: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1"], + focuspunch: ["9M", "9L52", "8L52"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L20", "8L20"], + helpinghand: ["9M", "8M"], + icepunch: ["9M", "8M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "9L36", "8M", "8L36"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + roar: ["9M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L16", "8M", "8L16"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L1", "8L1"], + superpower: ["8M"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + throatchop: ["8M"], + thunderpunch: ["9M", "8M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + wickedblow: ["9L0", "8L0"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + urshifurapidstrike: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "9L12", "8L12"], + aquajet: ["9L1", "8L1"], + attract: ["8M"], + aurasphere: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "8L24"], + brine: ["8M"], + bulkup: ["9M", "9L32", "8M", "8L32"], + chillingwater: ["9M"], + closecombat: ["9M", "9L48", "8M", "8L48"], + coaching: ["8T"], + counter: ["9L44", "8L44"], + detect: ["9L28", "8L28"], + dig: ["9M", "8M"], + dive: ["8M"], + drainpunch: ["9M", "8M"], + dynamicpunch: ["9L40", "8L40"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firepunch: ["9M", "8M"], + fling: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1"], + focuspunch: ["9M", "9L52", "8L52"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L20", "8L20"], + helpinghand: ["9M", "8M"], + icepunch: ["9M", "8M"], + icespinner: ["9M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "9L36", "8M", "8L36"], + leer: ["9L1", "8L1"], + liquidation: ["9M", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + scaryface: ["9M", "9L16", "8M", "8L16"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + superpower: ["8M"], + surgingstrikes: ["9L0", "8L0"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thunderpunch: ["9M", "8M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + waterfall: ["9M", "8M"], + whirlpool: ["8M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + zarude: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M"], + assurance: ["8M"], + bind: ["9L1", "8L1"], + bite: ["9L42", "8L42"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulkup: ["9M", "8M"], + bulletseed: ["9M", "8M"], + closecombat: ["9M", "8M", "8S0"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + drainpunch: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L60", "8M", "8L60"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + focuspunch: ["9M"], + furyswipes: ["9L24", "8L24"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "9L36", "8M", "8L36"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L18", "8L18"], + hammerarm: ["9L72", "8L72"], + helpinghand: ["9M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + irontail: ["8M"], + junglehealing: ["9L90", "8L90"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leafstorm: ["9M"], + leer: ["9L6", "8L6"], + lowkick: ["9M", "8M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + powerwhip: ["9L84", "8M", "8L84", "8S0"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + roar: ["9M"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L30", "8M", "8L30"], + scratch: ["9L1", "8L1"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M", "8S0"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["9M", "8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swagger: ["9L54", "8L54", "8S0"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + synthesis: ["9L66", "8L66"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L78", "8L78"], + throatchop: ["8M"], + trailblaze: ["9M"], + uturn: ["9M", "9L48", "8M", "8L48"], + vinewhip: ["9L12", "8L12"], + }, + eventData: [ + {generation: 8, level: 60, nature: "Sassy", moves: ["closecombat", "powerwhip", "swagger", "snarl"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zarudedada: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M"], + assurance: ["8M"], + bind: ["9L1", "8L1"], + bite: ["9L42", "8L42"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulkup: ["9M", "8M"], + bulletseed: ["9M", "8M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + drainpunch: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L60", "8M", "8L60", "8S0"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + focuspunch: ["9M"], + furyswipes: ["9L24", "8L24"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "9L36", "8M", "8L36"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L18", "8L18"], + hammerarm: ["9L72", "8L72", "8S0"], + helpinghand: ["9M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + irontail: ["8M"], + junglehealing: ["9L90", "8L90", "8S0"], + knockoff: ["9M"], + lashout: ["9M", "8T"], + leafstorm: ["9M"], + leer: ["9L6", "8L6"], + lowkick: ["9M", "8M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + powerwhip: ["9L84", "8M", "8L84", "8S0"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + roar: ["9M"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L30", "8M", "8L30"], + scratch: ["9L1", "8L1"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["9M", "8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swagger: ["9L54", "8L54"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + synthesis: ["9L66", "8L66"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L78", "8L78"], + throatchop: ["8M"], + trailblaze: ["9M"], + uturn: ["9M", "9L48", "8M", "8L48"], + vinewhip: ["9L12", "8L12"], + }, + eventData: [ + {generation: 8, level: 70, nature: "Adamant", moves: ["junglehealing", "hammerarm", "powerwhip", "energyball"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + regieleki: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "8M"], + ancientpower: ["9L12", "8L12"], + assurance: ["8M"], + bodyslam: ["9M", "8M"], + bounce: ["8M"], + charge: ["9M"], + chargebeam: ["9M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["9L6", "8M", "8L6"], + endure: ["9M", "8M"], + explosion: ["9L78", "8L78"], + extremespeed: ["9L30", "8L30"], + facade: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + hyperbeam: ["9M", "9L72", "8M", "8L72"], + lightscreen: ["9M", "8M"], + lockon: ["9L60", "8L60", "8S0"], + magnetrise: ["9L48", "8L48"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rapidspin: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + screech: ["8M"], + selfdestruct: ["8M"], + shockwave: ["9L18", "8L18"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L54", "8L54", "8S0"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "9L42", "8M", "8L42"], + thundercage: ["9L36", "8L36", "8S0"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L24", "8M", "8L24"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], + zapcannon: ["9L66", "8L66", "8S0"], + }, + eventData: [ + {generation: 8, level: 70, shiny: 1, moves: ["thundercage", "thrash", "lockon", "zapcannon"]}, + ], + eventOnly: true, + }, + regidrago: { + learnset: { + ancientpower: ["9L12", "8L12"], + bite: ["9L6", "8L6"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + crunch: ["9M", "9L30", "8M", "8L30"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L18", "8L18"], + dragonclaw: ["9M", "9L36", "8M", "8L36", "8S0"], + dragondance: ["9M", "9L48", "8M", "8L48"], + dragonenergy: ["9L66", "8L66", "8S0"], + dragonpulse: ["9M", "8M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M", "8M"], + explosion: ["9L78", "8L78"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + focusenergy: ["9L60", "8M", "8L24"], + gigaimpact: ["9M", "8M"], + hammerarm: ["9L42", "8L42", "8S0"], + hyperbeam: ["9M", "9L72", "8M", "8L72"], + icefang: ["9M"], + laserfocus: ["8L60", "8S0"], + lightscreen: ["9M", "8M"], + outrage: ["9M", "8M"], + protect: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scaleshot: ["9M", "8T"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L54", "8L54"], + thunderfang: ["9M", "8M"], + twister: ["9L1", "8L1"], + visegrip: ["9L1", "8L1"], + }, + eventData: [ + {generation: 8, level: 70, shiny: 1, moves: ["dragonenergy", "dragonclaw", "hammerarm", "laserfocus"]}, + ], + eventOnly: true, + }, + glastrier: { + learnset: { + assurance: ["8M"], + avalanche: ["9M", "9L12", "8M", "8L12"], + blizzard: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "8M"], + doubleedge: ["9L66", "8L66", "8S0"], + doublekick: ["9L6", "8L6"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + hail: ["8M"], + heavyslam: ["9M", "8M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + iciclecrash: ["9L36", "8L36", "8S0"], + iciclespear: ["8M"], + icywind: ["9M", "8M"], + irondefense: ["9M", "9L48", "8M", "8L48"], + lashout: ["9M", "8T"], + megahorn: ["8M"], + mist: ["9L30", "8L30"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M"], + payback: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + roar: ["9M"], + round: ["8M"], + scaryface: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + stomp: ["9L18", "8L18"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + superpower: ["8M"], + swordsdance: ["9M", "9L72", "8M", "8L72", "8S0"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L42", "8L42"], + taunt: ["9M", "9L60", "8M", "8L60", "8S0"], + terablast: ["9M"], + thrash: ["9L54", "8L54"], + throatchop: ["8M"], + torment: ["9L24", "8L24"], + trailblaze: ["9M"], + uproar: ["8M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 8, level: 75, moves: ["taunt", "doubleedge", "swordsdance", "iciclecrash"]}, + ], + eventOnly: true, + }, + spectrier: { + learnset: { + agility: ["9M", "9L48", "8M", "8L48"], + assurance: ["8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + confuseray: ["9M", "9L24", "8L24"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M"], + disable: ["9L60", "8L60", "8S0"], + doubleedge: ["9L66", "8L66", "8S0"], + doublekick: ["9L6", "8L6"], + drainingkiss: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + haze: ["9M", "9L30", "8L30"], + hex: ["9M", "9L12", "8M", "8L12"], + hyperbeam: ["9M", "8M"], + lashout: ["9M", "8T"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "9L72", "8M", "8L72", "8S0"], + nightshade: ["9M"], + payback: ["8M"], + phantomforce: ["9M", "8M"], + poltergeist: ["9M"], + protect: ["9M", "8M"], + psychic: ["9M"], + psychocut: ["8M"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "9L36", "8M", "8L36"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + stomp: ["9L18", "8L18"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L42", "8L42"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thrash: ["9L54", "8L54", "8S0"], + uproar: ["8M"], + willowisp: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 75, moves: ["thrash", "doubleedge", "disable", "nastyplot"]}, + ], + eventOnly: true, + }, + calyrex: { + learnset: { + agility: ["9M", "8M"], + allyswitch: ["8M"], + aromatherapy: ["8L40"], + batonpass: ["9M", "8M"], + bodypress: ["9M"], + bulletseed: ["9M", "8M"], + calmmind: ["9M", "8M"], + confusion: ["9L1", "8L1"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L48", "8M", "8L48"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + futuresight: ["9L88", "8M", "8L88"], + gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyterrain: ["9M", "9L40", "8M"], + gravity: ["9M"], + growth: ["9L1", "8L1"], + guardswap: ["8M"], + healpulse: ["9L72", "8L72"], + helpinghand: ["9M", "9L32", "8M", "8L32"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + leafstorm: ["9M", "8M"], + leechseed: ["9L64", "8L64"], + lifedew: ["9L8", "8L8"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + megadrain: ["9L1", "8L1"], + metronome: ["9M", "8M"], + mudshot: ["9M"], + payday: ["8M"], + pollenpuff: ["9M", "8M"], + pound: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L56", "8M", "8L56", "8S0"], + psychicterrain: ["9M", "9L40", "8M"], + psyshock: ["9M", "9L24", "8M", "8L24"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scaryface: ["9M"], + seedbomb: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M"], + snore: ["8M"], + solarbeam: ["9M", "9L80", "8M", "8L80"], + solarblade: ["9M", "8M"], + speedswap: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 80, moves: ["psychic", "gigadrain"]}, + ], + eventOnly: true, + }, + calyrexice: { + learnset: { + agility: ["9M", "8M"], + allyswitch: ["8M"], + aromatherapy: ["8L40"], + assurance: ["8M"], + avalanche: ["9M", "9L1", "8M", "8L1"], + batonpass: ["9M", "8M"], + blizzard: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "8M"], + calmmind: ["9M", "8M"], + closecombat: ["9M", "8M"], + confusion: ["9L1", "8L1"], + crunch: ["9M", "8M"], + doubleedge: ["9L1", "8L1"], + doublekick: ["9L1", "8L1"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L48", "8M", "8L48"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + futuresight: ["9L88", "8M", "8L88"], + gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], + gigaimpact: ["9M", "8M"], + glaciallance: ["9L1", "8L1", "8S0"], + grassknot: ["9M", "8M"], + grassyterrain: ["9M", "9L40", "8M"], + gravity: ["9M"], + growth: ["9L1", "8L1"], + guardswap: ["8M"], + hail: ["8M"], + healpulse: ["9L72", "8L72"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "9L32", "8M", "8L32"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + iciclecrash: ["9L1", "8L1"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1", "8S0"], + lashout: ["9M", "8T"], + leafstorm: ["9M", "8M"], + leechseed: ["9L64", "8L64"], + lifedew: ["9L8", "8L8"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + megadrain: ["9L1", "8L1"], + megahorn: ["8M"], + metronome: ["9M", "8M"], + mist: ["9L1", "8L1"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M"], + payback: ["8M"], + payday: ["8M"], + pollenpuff: ["9M", "8M"], + pound: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L56", "8M", "8L56", "8S0"], + psychicterrain: ["9M", "9L40", "8M"], + psyshock: ["9M", "9L24", "8M", "8L24"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + roar: ["9M"], + round: ["8M"], + safeguard: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + solarbeam: ["9M", "9L80", "8M", "8L80"], + solarblade: ["9M", "8M"], + speedswap: ["8M"], + stomp: ["9L1", "8L1"], + stompingtantrum: ["9M", "8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L1", "8M", "8L1"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L1", "8L1"], + taunt: ["9M", "9L1", "8M", "8L1"], + terablast: ["9M"], + thrash: ["9L1", "8L1"], + throatchop: ["8M"], + torment: ["9L1", "8L1"], + trailblaze: ["9M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + uproar: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 80, moves: ["glaciallance", "psychic", "irondefense", "gigadrain"]}, + ], + eventOnly: true, + }, + calyrexshadow: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1", "8S0"], + allyswitch: ["8M"], + aromatherapy: ["8L40"], + assurance: ["8M"], + astralbarrage: ["9L1", "8L1", "8S0"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "8M"], + calmmind: ["9M", "8M"], + confuseray: ["9M", "9L1", "8L1"], + confusion: ["9L1", "8L1"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M"], + disable: ["9L1", "8L1"], + doubleedge: ["9L1", "8L1"], + doublekick: ["9L1", "8L1"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L48", "8M", "8L48"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["9L88", "8M", "8L88"], + gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyterrain: ["9M", "9L40", "8M"], + gravity: ["9M"], + growth: ["9L1", "8L1"], + guardswap: ["8M"], + haze: ["9M", "9L1", "8L1"], + healpulse: ["9L72", "8L72"], + helpinghand: ["9M", "9L32", "8M", "8L32"], + hex: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lashout: ["9M", "8T"], + leafstorm: ["9M", "8M"], + leechseed: ["9L64", "8L64"], + lifedew: ["9L8", "8L8"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + megadrain: ["9L1", "8L1"], + metronome: ["9M", "8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nightshade: ["9M"], + payback: ["8M"], + payday: ["8M"], + phantomforce: ["9M", "8M"], + pollenpuff: ["9M", "8M"], + pound: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L56", "8M", "8L56", "8S0"], + psychicterrain: ["9M", "9L40", "8M"], + psychocut: ["8M"], + psyshock: ["9M", "9L24", "8M", "8L24"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + shadowball: ["9M", "9L1", "8M", "8L1"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "9L80", "8M", "8L80"], + solarblade: ["9M", "8M"], + speedswap: ["8M"], + stomp: ["9L1", "8L1"], + stompingtantrum: ["9M", "8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L1", "8L1"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thrash: ["9L1", "8L1"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + uproar: ["8M"], + willowisp: ["9M", "8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 80, moves: ["astralbarrage", "psychic", "agility", "gigadrain"]}, + ], + eventOnly: true, + }, + enamorus: { + learnset: { + agility: ["9M"], + astonish: ["9L1"], + bodyslam: ["9M"], + calmmind: ["9M"], + dazzlinggleam: ["9M", "9L40"], + disarmingvoice: ["9M"], + drainingkiss: ["9M", "9L20"], + earthpower: ["9M"], + endure: ["9M"], + extrasensory: ["9L45"], + facade: ["9M"], + fairywind: ["9L1"], + flatter: ["9L10"], + fly: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + healingwish: ["9L60"], + hyperbeam: ["9M"], + imprison: ["9M", "9L30"], + irondefense: ["9M", "9L25"], + ironhead: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L65"], + mysticalfire: ["9L35"], + outrage: ["9M", "9L70"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + springtidestorm: ["9L75"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L55"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + torment: ["9L5"], + twister: ["9L15"], + uproar: ["9M", "9L50"], + weatherball: ["9M"], + zenheadbutt: ["9M"], + }, + }, + enamorustherian: { + learnset: { + agility: ["9M"], + astonish: ["9L1"], + bodyslam: ["9M"], + calmmind: ["9M"], + dazzlinggleam: ["9M", "9L40"], + disarmingvoice: ["9M"], + drainingkiss: ["9M", "9L20"], + earthpower: ["9M"], + endure: ["9M"], + extrasensory: ["9L45"], + facade: ["9M"], + fairywind: ["9L1"], + flatter: ["9L10"], + fly: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + healingwish: ["9L60"], + hyperbeam: ["9M"], + imprison: ["9M", "9L30"], + irondefense: ["9M", "9L25"], + ironhead: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L65"], + mysticalfire: ["9L35"], + outrage: ["9M", "9L70"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + springtidestorm: ["9L75"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L55"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + torment: ["9L5"], + twister: ["9L15"], + uproar: ["9M", "9L50"], + weatherball: ["9M"], + zenheadbutt: ["9M"], + }, + }, + sprigatito: { + learnset: { + acrobatics: ["9M"], + agility: ["9M"], + allyswitch: ["9E"], + bite: ["9L7"], + bulletseed: ["9M"], + charm: ["9M"], + copycat: ["9E"], + disarmingvoice: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L32"], + facade: ["9M"], + faketears: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + leafage: ["9L1"], + leafstorm: ["9M"], + leechseed: ["9E"], + magicalleaf: ["9M", "9L13"], + mudslap: ["9M"], + nastyplot: ["9M"], + petalblizzard: ["9E"], + playrough: ["9M", "9L36"], + protect: ["9M"], + quickattack: ["9L15"], + rest: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M", "9L17"], + shadowclaw: ["9M"], + slash: ["9L28"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + suckerpunch: ["9E"], + swift: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "9L21"], + worryseed: ["9L25"], + }, + }, + floragato: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + bite: ["9L7"], + bulletseed: ["9M"], + charm: ["9M"], + disarmingvoice: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L38"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + leafage: ["9L1"], + leafstorm: ["9M", "9L46"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "9L13"], + mudslap: ["9M"], + nastyplot: ["9M"], + playrough: ["9M", "9L42"], + protect: ["9M"], + quickattack: ["9L15"], + rest: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M", "9L20"], + shadowclaw: ["9M"], + slash: ["9L33"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + swift: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "9L24"], + worryseed: ["9L28"], + }, + }, + meowscarada: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aurasphere: ["9M"], + bite: ["9L7"], + brickbreak: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + darkpulse: ["9M"], + disarmingvoice: ["9M"], + doubleteam: ["9M", "9L1"], + endure: ["9M"], + energyball: ["9M", "9L42"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + flowertrick: ["9L0"], + foulplay: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9L58"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + hyperbeam: ["9M"], + knockoff: ["9M", "9L52"], + lashout: ["9M"], + leafage: ["9L1"], + leafstorm: ["9M", "9L64"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "9L13"], + mudslap: ["9M"], + nastyplot: ["9M"], + nightslash: ["9L38"], + playrough: ["9M", "9L47"], + pollenpuff: ["9M"], + powergem: ["9M"], + protect: ["9M"], + quickattack: ["9L15"], + rest: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M", "9L20"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skillswap: ["9M"], + slash: ["9L33"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + swift: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + trick: ["9M", "9L1"], + trickroom: ["9M"], + uturn: ["9M", "9L24"], + worryseed: ["9L29"], + }, + }, + fuecoco: { + learnset: { + belch: ["9E"], + bite: ["9L12"], + bodyslam: ["9M"], + crunch: ["9M"], + curse: ["9E"], + dig: ["9M"], + disarmingvoice: ["9M"], + ember: ["9L1"], + encore: ["9M", "9E"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M", "9L36"], + firefang: ["9M"], + firepledge: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L28"], + flareblitz: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M", "9L32"], + incinerate: ["9L15"], + leer: ["9L1"], + mudslap: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M", "9L25"], + round: ["9L7"], + seedbomb: ["9M"], + slackoff: ["9E"], + sleeptalk: ["9M"], + snarl: ["9M", "9L21"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + willowisp: ["9M"], + yawn: ["9L17"], + zenheadbutt: ["9M"], + }, + }, + crocalor: { + learnset: { + bite: ["9L12"], + bodyslam: ["9M"], + crunch: ["9M"], + dig: ["9M"], + disarmingvoice: ["9M"], + ember: ["9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M", "9L47"], + firefang: ["9M"], + firepledge: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L32"], + flareblitz: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M", "9L38"], + incinerate: ["9L17"], + leer: ["9L1"], + lick: ["9L7"], + mudslap: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M", "9L28"], + round: ["9L10"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M", "9L24"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + willowisp: ["9M", "9L42"], + yawn: ["9L15"], + zenheadbutt: ["9M"], + }, + }, + skeledirge: { + learnset: { + bite: ["9L15"], + blastburn: ["9M"], + bodyslam: ["9M"], + crunch: ["9M"], + dig: ["9M"], + disarmingvoice: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + ember: ["9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M", "9L58"], + firefang: ["9M"], + firepledge: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L32"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + heatcrash: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M", "9L47"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L42"], + imprison: ["9M"], + incinerate: ["9L17"], + leer: ["9L1"], + lick: ["9L7"], + mudslap: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + overheat: ["9M", "9L64"], + poltergeist: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M", "9L28"], + round: ["9L10"], + scaryface: ["9M", "9L12"], + seedbomb: ["9M"], + shadowball: ["9M", "9L38"], + shadowclaw: ["9M"], + sing: ["9L1"], + sleeptalk: ["9M"], + snarl: ["9M", "9L24"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + torchsong: ["9L0"], + willowisp: ["9M", "9L47"], + yawn: ["9L1"], + zenheadbutt: ["9M"], + }, + }, + quaxly: { + learnset: { + acrobatics: ["9M", "9L31"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L24"], + aquacutter: ["9L21"], + aquajet: ["9L13"], + batonpass: ["9M"], + bravebird: ["9M"], + chillingwater: ["9M"], + detect: ["9E"], + disarmingvoice: ["9M"], + doublehit: ["9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + focusenergy: ["9L28"], + growl: ["9L1"], + helpinghand: ["9M"], + hydropump: ["9M"], + lastresort: ["9E"], + liquidation: ["9M", "9L35"], + lowkick: ["9M"], + mistyterrain: ["9M"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9E"], + rest: ["9M"], + roost: ["9E"], + sleeptalk: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + wingattack: ["9L10"], + workup: ["9L7"], + }, + }, + quaxwell: { + learnset: { + acrobatics: ["9M", "9L38"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L27"], + aquacutter: ["9L23"], + aquajet: ["9L13"], + batonpass: ["9M"], + bravebird: ["9M"], + chillingwater: ["9M"], + disarmingvoice: ["9M"], + doublehit: ["9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9L48"], + flipturn: ["9M"], + focusenergy: ["9L32"], + growl: ["9L1"], + helpinghand: ["9M"], + hydropump: ["9M"], + liquidation: ["9M", "9L43"], + lowkick: ["9M"], + lowsweep: ["9M", "9L19"], + mistyterrain: ["9M"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + waterpulse: ["9M", "9L17"], + wingattack: ["9L10"], + workup: ["9L7"], + }, + }, + quaquaval: { + learnset: { + acrobatics: ["9M", "9L43"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L27"], + aquacutter: ["9L21"], + aquajet: ["9L13"], + aquastep: ["9L0"], + batonpass: ["9M"], + bravebird: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L58"], + counter: ["9L1"], + disarmingvoice: ["9M"], + doublehit: ["9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9L52"], + fling: ["9M"], + flipturn: ["9M"], + focusenergy: ["9L32"], + gigaimpact: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hurricane: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + liquidation: ["9M", "9L47"], + lowkick: ["9M"], + lowsweep: ["9M", "9L17"], + megakick: ["9L38"], + mistyterrain: ["9M"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + uturn: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + waterpulse: ["9M", "9L17"], + wavecrash: ["9L64"], + wingattack: ["9L10"], + workup: ["9L7"], + }, + }, + lechonk: { + learnset: { + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + chillingwater: ["9M"], + covet: ["9L15", "9S0"], + dig: ["9M", "9L17", "9S0"], + disarmingvoice: ["9M", "9L5"], + doubleedge: ["9L35"], + echoedvoice: ["9L8"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + headbutt: ["9L21"], + helpinghand: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + mudshot: ["9M", "9L12", "9S0"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + spitup: ["9E"], + stockpile: ["9E"], + stuffcheeks: ["9E"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + swallow: ["9E"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M", "9L27"], + terablast: ["9M", "9S0"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "9L32"], + workup: ["9L30"], + yawn: ["9L24"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 15, gender: "M", isHidden: true, moves: ["terablast", "mudshot", "covet", "dig"], pokeball: "cherishball"}, + ], + }, + oinkologne: { + learnset: { + belch: ["9L54"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + chillingwater: ["9M"], + covet: ["9L15"], + dig: ["9M", "9L17"], + disarmingvoice: ["9M", "9L5"], + doubleedge: ["9L42"], + earthpower: ["9M", "9L48"], + echoedvoice: ["9L8"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L23"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + mudshot: ["9M", "9L12"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M", "9L26"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "9L38"], + workup: ["9L34"], + yawn: ["9L27"], + zenheadbutt: ["9M"], + }, + }, + oinkolognef: { + learnset: { + belch: ["9L51"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + chillingwater: ["9M"], + covet: ["9L12"], + dig: ["9M", "9L15"], + disarmingvoice: ["9M", "9L3"], + doubleedge: ["9L39"], + earthpower: ["9M", "9L45"], + echoedvoice: ["9L6"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L17"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + lashout: ["9M"], + mudshot: ["9M", "9L9"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M", "9L28"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9M", "9L34"], + workup: ["9L30"], + yawn: ["9L23"], + zenheadbutt: ["9M"], + }, + }, + tarountula: { + learnset: { + assurance: ["9L8"], + block: ["9L18"], + bodyslam: ["9M"], + bugbite: ["9M", "9L14"], + bugbuzz: ["9M"], + bulletseed: ["9M"], + circlethrow: ["9L36"], + counter: ["9L22"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + feint: ["9L11"], + firstimpression: ["9E"], + gastroacid: ["9L33"], + gigadrain: ["9M"], + grassknot: ["9M"], + headbutt: ["9L25"], + knockoff: ["9M"], + leechlife: ["9M"], + lunge: ["9M", "9E"], + memento: ["9E"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + shadowclaw: ["9M"], + skittersmack: ["9L44"], + sleeptalk: ["9M"], + spikes: ["9M"], + stickyweb: ["9L29"], + stringshot: ["9L1"], + strugglebug: ["9M", "9L5"], + substitute: ["9M"], + suckerpunch: ["9E"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L40"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + xscissor: ["9M"], + }, + }, + spidops: { + learnset: { + aerialace: ["9M"], + assurance: ["9L8"], + block: ["9L19"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bugbite: ["9M", "9L14"], + bugbuzz: ["9M"], + bulletseed: ["9M"], + circlethrow: ["9L41"], + counter: ["9L24"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + feint: ["9L11"], + fling: ["9M"], + gastroacid: ["9L37"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + headbutt: ["9L28"], + knockoff: ["9M"], + leechlife: ["9M"], + lowkick: ["9M"], + lunge: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + silktrap: ["9L0"], + skittersmack: ["9L49"], + sleeptalk: ["9M"], + spikes: ["9M"], + stickyweb: ["9L33"], + stringshot: ["9L1"], + strugglebug: ["9M", "9L5"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L45"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + }, + }, + nymble: { + learnset: { + agility: ["9M", "9L30"], + assurance: ["9L9"], + astonish: ["9L6"], + bugbite: ["9M", "9L22"], + bugbuzz: ["9M"], + counter: ["9E"], + doublekick: ["9L11"], + endure: ["9M", "9L18"], + facade: ["9M"], + feint: ["9L26"], + firstimpression: ["9L41"], + leechlife: ["9M"], + leer: ["9L1"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + screech: ["9L14"], + skittersmack: ["9E"], + sleeptalk: ["9M"], + strugglebug: ["9M", "9L4"], + substitute: ["9M"], + suckerpunch: ["9L38"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + }, + }, + lokix: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L32"], + assurance: ["9L9"], + astonish: ["9L6"], + axekick: ["9L53"], + bounce: ["9L48"], + brickbreak: ["9M"], + bugbite: ["9M", "9L22"], + bugbuzz: ["9M"], + darkpulse: ["9M"], + detect: ["9L1"], + doublekick: ["9L11"], + endure: ["9M", "9L18"], + facade: ["9M"], + feint: ["9L28"], + firstimpression: ["9L44"], + fling: ["9M"], + gigaimpact: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + leechlife: ["9M"], + leer: ["9L1"], + lowkick: ["9M", "9L1"], + lowsweep: ["9M"], + lunge: ["9M", "9L0"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + scaryface: ["9M"], + screech: ["9L14"], + sleeptalk: ["9M"], + spite: ["9M"], + strugglebug: ["9M", "9L4"], + substitute: ["9M"], + suckerpunch: ["9L40"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L36"], + trailblaze: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + }, + }, + rellor: { + learnset: { + bugbite: ["9M", "9L20"], + bugbuzz: ["9M"], + cosmicpower: ["9E"], + defensecurl: ["9L1"], + dig: ["9M", "9L29"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + gunkshot: ["9M"], + irondefense: ["9M"], + leechlife: ["9M"], + lunge: ["9M", "9L35"], + memento: ["9E"], + mudshot: ["9M", "9L15"], + mudslap: ["9M"], + pounce: ["9M"], + protect: ["9M"], + recover: ["9E"], + rest: ["9M"], + rocktomb: ["9M"], + rollout: ["9L11"], + sandattack: ["9L4"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + strugglebug: ["9M", "9L7"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L24"], + terablast: ["9M"], + thief: ["9M"], + weatherball: ["9M", "9E"], + xscissor: ["9M"], + }, + }, + rabsca: { + learnset: { + bugbite: ["9M", "9L20"], + bugbuzz: ["9M", "9L45"], + calmmind: ["9M"], + confuseray: ["9M"], + confusion: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L1"], + dig: ["9M"], + earthpower: ["9M"], + electroball: ["9M"], + endure: ["9M"], + energyball: ["9M"], + extrasensory: ["9L29"], + facade: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + guardswap: ["9L40"], + gunkshot: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + leechlife: ["9M"], + lightscreen: ["9M"], + lunge: ["9M", "9L35"], + mudshot: ["9M"], + mudslap: ["9M"], + poltergeist: ["9M"], + pounce: ["9M"], + powergem: ["9M"], + powerswap: ["9L40"], + protect: ["9M"], + psybeam: ["9M", "9L15"], + psychic: ["9M", "9L50"], + psychicterrain: ["9M"], + psychup: ["9L1"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + revivalblessing: ["9L0"], + rocktomb: ["9M"], + rollout: ["9L11"], + safeguard: ["9L1"], + sandattack: ["9L4"], + sandstorm: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + speedswap: ["9L40"], + storedpower: ["9M"], + strugglebug: ["9M", "9L7"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L24"], + terablast: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + weatherball: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + greavard: { + learnset: { + allyswitch: ["9E"], + bite: ["9L6"], + bulldoze: ["9M"], + charm: ["9M", "9L46"], + confuseray: ["9M"], + crunch: ["9M", "9L28"], + destinybond: ["9E"], + dig: ["9M", "9L16"], + disable: ["9E"], + doubleedge: ["9L52"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + growl: ["9L1"], + headbutt: ["9L12"], + helpinghand: ["9M", "9L37"], + hex: ["9M"], + howl: ["9E"], + icefang: ["9M"], + lick: ["9L3"], + memento: ["9E"], + mudshot: ["9M"], + mudslap: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M", "9L41"], + playrough: ["9M", "9L32"], + poltergeist: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L24"], + roar: ["9M", "9L9"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + shadowsneak: ["9E"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L6"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trick: ["9M"], + uproar: ["9M"], + yawn: ["9E"], + }, + }, + houndstone: { + learnset: { + bite: ["9L6"], + bodypress: ["9M"], + bulldoze: ["9M"], + charm: ["9M", "9L51"], + confuseray: ["9M"], + crunch: ["9M", "9L28"], + dig: ["9M", "9L16"], + doubleedge: ["9L58"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + headbutt: ["9L12"], + helpinghand: ["9M", "9L41"], + hex: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + lastrespects: ["9L0"], + lick: ["9L3"], + mudshot: ["9M"], + mudslap: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M", "9L46"], + playrough: ["9M", "9L36"], + poltergeist: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L24"], + roar: ["9M", "9L9"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L6"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trick: ["9M"], + uproar: ["9M"], + willowisp: ["9M"], + }, + }, + flittle: { + learnset: { + agility: ["9M", "9L29"], + allyswitch: ["9E"], + babydolleyes: ["9L8"], + batonpass: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + confusion: ["9L5"], + disarmingvoice: ["9M", "9L11"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hypnosis: ["9E"], + lightscreen: ["9M"], + mudslap: ["9M"], + peck: ["9L1"], + pluck: ["9L24"], + pounce: ["9M"], + protect: ["9M"], + psybeam: ["9M", "9L19"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quickattack: ["9L15"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roost: ["9E"], + sandstorm: ["9M"], + seedbomb: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9M", "9L34"], + uturn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + espathra: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L29"], + babydolleyes: ["9L8"], + batonpass: ["9M"], + bodyslam: ["9M"], + bravebird: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + confusion: ["9L5"], + dazzlinggleam: ["9M", "9L43"], + disarmingvoice: ["9M", "9L11"], + drillpeck: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + featherdance: ["9L1"], + flashcannon: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lastresort: ["9L54"], + lightscreen: ["9M"], + lowkick: ["9M"], + luminacrash: ["9L0"], + mudslap: ["9M"], + nightshade: ["9M"], + peck: ["9L1"], + pluck: ["9L24"], + pounce: ["9M"], + protect: ["9M"], + psybeam: ["9M", "9L19"], + psychic: ["9M", "9L49"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quickattack: ["9L15"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9M", "9L34"], + uturn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + farigiraf: { + learnset: { + agility: ["9M", "9L23"], + amnesia: ["9M"], + assurance: ["9L10"], + astonish: ["9L1"], + batonpass: ["9M", "9L41"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + confusion: ["9L5"], + crunch: ["9M", "9L37"], + dazzlinggleam: ["9M"], + doublehit: ["9L28"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gravity: ["9M"], + growl: ["9L1"], + guardswap: ["9L1"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + nastyplot: ["9M", "9L46"], + nightshade: ["9M"], + powerswap: ["9L1"], + protect: ["9M"], + psybeam: ["9M", "9L19"], + psychic: ["9M", "9L50"], + psychicfangs: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roar: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + stomp: ["9L14"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + twinbeam: ["9L32"], + uproar: ["9M"], + zenheadbutt: ["9M"], + }, + }, + wiglett: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + blizzard: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dig: ["9M", "9L28"], + earthpower: ["9M"], + endure: ["9M"], + facade: ["9M"], + finalgambit: ["9E"], + foulplay: ["9M"], + headbutt: ["9L24"], + helpinghand: ["9M"], + hydropump: ["9M"], + icebeam: ["9M"], + liquidation: ["9M", "9L40"], + memento: ["9E"], + mudshot: ["9M"], + mudslap: ["9M", "9L4"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sandattack: ["9L1"], + sandstorm: ["9M"], + slam: ["9L20"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L32"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9L36"], + watergun: ["9L1"], + waterpulse: ["9M", "9L20"], + wrap: ["9L8"], + }, + }, + wugtrio: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + blizzard: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dig: ["9M", "9L36"], + earthpower: ["9M"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L24"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + liquidation: ["9M", "9L54"], + mudshot: ["9M"], + mudslap: ["9M", "9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sandattack: ["9L1"], + sandstorm: ["9M"], + slam: ["9L16"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L42"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9L48"], + tripledive: ["9L30"], + watergun: ["9L1"], + waterpulse: ["9M", "9L20"], + wrap: ["9L1"], + }, + }, + dondozo: { + learnset: { + aquatail: ["9L40"], + avalanche: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L35"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + curse: ["9E"], + dive: ["9L20"], + doubleedge: ["9L60"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9E"], + flail: ["9L10"], + gigaimpact: ["9M"], + heavyslam: ["9M", "9L55"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + liquidation: ["9M"], + nobleroar: ["9L25"], + orderup: ["9L50"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M", "9L45"], + rest: ["9M", "9L15"], + rockslide: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M", "9L15"], + soak: ["9L30"], + stompingtantrum: ["9M"], + substitute: ["9M"], + supersonic: ["9L1"], + surf: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E"], + tickle: ["9L5"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L65"], + yawn: ["9E"], + zenheadbutt: ["9M"], + }, + }, + veluza: { + learnset: { + agility: ["9M"], + aquacutter: ["9L25"], + aquajet: ["9L1"], + blizzard: ["9M"], + bodyslam: ["9M"], + chillingwater: ["9M"], + crunch: ["9M", "9L50"], + drillrun: ["9M"], + endure: ["9M"], + filletaway: ["9L30"], + finalgambit: ["9L55"], + flipturn: ["9M"], + focusenergy: ["9L15"], + gigaimpact: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + liquidation: ["9M", "9L45"], + nightslash: ["9L35"], + pluck: ["9L7"], + protect: ["9M"], + psychic: ["9M"], + psychicfangs: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9L40"], + raindance: ["9M"], + recover: ["9E"], + rest: ["9M"], + scaleshot: ["9M"], + slash: ["9L20"], + sleeptalk: ["9M"], + snowscape: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + surf: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E"], + waterfall: ["9M"], + waterpulse: ["9M", "9L11"], + zenheadbutt: ["9M"], + }, + }, + finizen: { + learnset: { + acrobatics: ["9M", "9L29"], + agility: ["9M"], + aquajet: ["9L13"], + aquatail: ["9L39"], + astonish: ["9L7"], + blizzard: ["9M"], + bodyslam: ["9M"], + boomburst: ["9E"], + bounce: ["9E"], + charm: ["9M", "9L25"], + chillingwater: ["9M"], + counter: ["9E"], + disarmingvoice: ["9M"], + dive: ["9L21"], + doublehit: ["9L17"], + drainingkiss: ["9M"], + encore: ["9M", "9L34"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + focusenergy: ["9L10"], + haze: ["9M", "9E"], + helpinghand: ["9M"], + hydropump: ["9M", "9L50"], + icebeam: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + mist: ["9L44"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + supersonic: ["9L1"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["9E"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + zenheadbutt: ["9M"], + }, + }, + palafin: { + learnset: { + acrobatics: ["9M", "9L29"], + agility: ["9M"], + aquajet: ["9L13"], + aquatail: ["9L39"], + astonish: ["9L7"], + aurasphere: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + charm: ["9M", "9L25"], + chillingwater: ["9M"], + closecombat: ["9M"], + disarmingvoice: ["9M"], + dive: ["9L21"], + doublehit: ["9L17"], + drainingkiss: ["9M"], + drainpunch: ["9M"], + encore: ["9M", "9L34"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9M", "9L0"], + focusblast: ["9M"], + focusenergy: ["9L10"], + focuspunch: ["9M", "9L55"], + gigaimpact: ["9M"], + grassknot: ["9M"], + haze: ["9M", "9S0"], + helpinghand: ["9M"], + hydropump: ["9M", "9L50"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + jetpunch: ["9L1", "9S0"], + liquidation: ["9M"], + mist: ["9L44"], + outrage: ["9M"], + protect: ["9M", "9S0"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + supersonic: ["9L1"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L61", "9S0"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, gender: "F", nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 17, spd: 31, spe: 31}, moves: ["jetpunch", "wavecrash", "haze", "protect"], pokeball: "cherishball"}, + ], + }, + smoliv: { + learnset: { + absorb: ["9L5"], + bulletseed: ["9M"], + charm: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L30"], + facade: ["9M"], + flail: ["9L16"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L23"], + growth: ["9L7"], + helpinghand: ["9M", "9L13"], + leafstorm: ["9M"], + leechseed: ["9L34"], + magicalleaf: ["9M"], + megadrain: ["9L20"], + memento: ["9E"], + protect: ["9M"], + razorleaf: ["9L10"], + rest: ["9M"], + seedbomb: ["9M", "9L27"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + strengthsap: ["9E"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + swift: ["9M"], + synthesis: ["9E"], + tackle: ["9L1"], + terablast: ["9M"], + terrainpulse: ["9L38"], + trailblaze: ["9M"], + weatherball: ["9M", "9E"], + }, + }, + dolliv: { + learnset: { + absorb: ["9L5"], + bulletseed: ["9M"], + charm: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L34"], + facade: ["9M"], + flail: ["9L16"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L23"], + growth: ["9L7"], + helpinghand: ["9M", "9L13"], + leafstorm: ["9M"], + leechseed: ["9L37"], + magicalleaf: ["9M"], + megadrain: ["9L20"], + protect: ["9M"], + razorleaf: ["9L10"], + rest: ["9M"], + seedbomb: ["9M", "9L29"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + terrainpulse: ["9L42"], + trailblaze: ["9M"], + weatherball: ["9M"], + }, + }, + arboliva: { + learnset: { + absorb: ["9L5"], + bulletseed: ["9M"], + charm: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L34"], + facade: ["9M"], + flail: ["9L16"], + fling: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L23"], + growth: ["9L7"], + helpinghand: ["9M", "9L13"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L39"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L20"], + metronome: ["9M"], + mirrorcoat: ["9L1"], + petalblizzard: ["9L52"], + petaldance: ["9L58"], + pollenpuff: ["9M"], + protect: ["9M"], + razorleaf: ["9L10"], + reflect: ["9M"], + rest: ["9M"], + safeguard: ["9L1"], + seedbomb: ["9M", "9L29"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + terrainpulse: ["9L46"], + trailblaze: ["9M"], + weatherball: ["9M"], + }, + }, + capsakid: { + learnset: { + bite: ["9L4"], + bulletseed: ["9M", "9L21"], + crunch: ["9M", "9L38"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L10"], + headbutt: ["9L24"], + helpinghand: ["9M"], + ingrain: ["9E"], + leafage: ["9L1"], + leafstorm: ["9M"], + leechseed: ["9E"], + leer: ["9L1"], + magicalleaf: ["9M"], + protect: ["9M"], + ragepowder: ["9E"], + razorleaf: ["9L13"], + rest: ["9M"], + rollout: ["9E"], + sandstorm: ["9M"], + seedbomb: ["9M", "9L44"], + sleeptalk: ["9M"], + solarbeam: ["9M", "9L48"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L17"], + superfang: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + worryseed: ["9E"], + zenheadbutt: ["9M", "9L28"], + }, + }, + scovillain: { + learnset: { + bite: ["9L4"], + bulletseed: ["9M", "9L21"], + burningjealousy: ["9M"], + crunch: ["9M", "9L38"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L1"], + flamethrower: ["9M", "9L0"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L10"], + headbutt: ["9L24"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + lashout: ["9M"], + leafage: ["9L1"], + leafstorm: ["9M"], + leer: ["9L1"], + magicalleaf: ["9M"], + overheat: ["9M", "9L48"], + protect: ["9M"], + razorleaf: ["9L13"], + rest: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M", "9L44"], + sleeptalk: ["9M"], + solarbeam: ["9M", "9L48"], + spicyextract: ["9L0"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L17"], + superfang: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + willowisp: ["9M"], + worryseed: ["9L33"], + zenheadbutt: ["9M", "9L28"], + }, + }, + tadbulb: { + learnset: { + acidspray: ["9M"], + charge: ["9M", "9L17"], + chargebeam: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + discharge: ["9L32"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L40"], + electroball: ["9M"], + endure: ["9M"], + flail: ["9L25"], + hypervoice: ["9M"], + lightscreen: ["9M"], + muddywater: ["9E"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + paraboliccharge: ["9E"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + soak: ["9E"], + spark: ["9L21"], + substitute: ["9M"], + suckerpunch: ["9L45"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L7"], + thunderwave: ["9M"], + voltswitch: ["9M"], + watergun: ["9L11"], + waterpulse: ["9M"], + weatherball: ["9M", "9L36"], + wildcharge: ["9M"], + zapcannon: ["9L50"], + }, + }, + bellibolt: { + learnset: { + acidspray: ["9M"], + charge: ["9M", "9L17"], + chargebeam: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + discharge: ["9L32"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L40"], + electroball: ["9M"], + endure: ["9M"], + flail: ["9L25"], + gigaimpact: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lightscreen: ["9M"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + slackoff: ["9L1"], + sleeptalk: ["9M"], + spark: ["9L21"], + substitute: ["9M"], + suckerpunch: ["9L45"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L7"], + thunderwave: ["9M"], + toxic: ["9M"], + voltswitch: ["9M"], + watergun: ["9L11"], + waterpulse: ["9M"], + weatherball: ["9M", "9L36"], + wildcharge: ["9M"], + zapcannon: ["9L50"], + }, + }, + varoom: { + learnset: { + acidspray: ["9M"], + assurance: ["9L10"], + bodyslam: ["9M"], + bulldoze: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gunkshot: ["9M", "9L50"], + gyroball: ["9M", "9L17"], + haze: ["9M", "9E"], + headbutt: ["9L21"], + irondefense: ["9M"], + ironhead: ["9M", "9L28"], + lick: ["9L1"], + partingshot: ["9E"], + poisongas: ["9L1"], + poisonjab: ["9M", "9L36"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L25"], + selfdestruct: ["9E"], + sleeptalk: ["9M"], + sludge: ["9L13"], + sludgebomb: ["9M"], + smog: ["9L4"], + spinout: ["9L46"], + steelbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L32"], + takedown: ["9M"], + taunt: ["9M", "9L7"], + terablast: ["9M"], + thief: ["9M"], + torment: ["9E"], + toxic: ["9M", "9E"], + toxicspikes: ["9M"], + uproar: ["9M", "9L41"], + venoshock: ["9M"], + zenheadbutt: ["9M"], + }, + }, + revavroom: { + learnset: { + acidspray: ["9M"], + assurance: ["9L10"], + bodyslam: ["9M"], + bulldoze: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M", "9L58"], + gyroball: ["9M", "9L17"], + haze: ["9M"], + headbutt: ["9L21"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M", "9L28", "9S0"], + lashout: ["9M"], + lick: ["9L1"], + magnetrise: ["9L1"], + overheat: ["9M"], + poisongas: ["9L1"], + poisonjab: ["9M", "9L36", "9S0"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L25"], + shiftgear: ["9L0"], + sleeptalk: ["9M"], + sludge: ["9L13"], + sludgebomb: ["9M"], + smog: ["9L4"], + spinout: ["9L52"], + steelbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L32", "9S0"], + takedown: ["9M"], + taunt: ["9M", "9L7"], + terablast: ["9M", "9S0"], + thief: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + uproar: ["9M", "9L46"], + venoshock: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, gender: "F", nature: "Naughty", abilities: ["clearbody"], ivs: {hp: 20, atk: 31, def: 20, spa: 20, spd: 20, spe: 20}, moves: ["ironhead", "swagger", "poisonjab", "terablast"], pokeball: "healball"}, + ], + }, + orthworm: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L16"], + coil: ["9E"], + curse: ["9E"], + dig: ["9M", "9L30"], + earthpower: ["9M"], + earthquake: ["9M", "9L47"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + harden: ["9L1"], + headbutt: ["9S0"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L38"], + ironhead: ["9M", "9L21"], + irontail: ["9L43", "9S0"], + metalburst: ["9E"], + mudshot: ["9M"], + mudslap: ["9M", "9L7"], + protect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M", "9L34", "9S0"], + sandtomb: ["9M"], + shedtail: ["9L52"], + sleeptalk: ["9M"], + smackdown: ["9M", "9L12"], + spikes: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L26"], + terablast: ["9M"], + wrap: ["9L1", "9S0"], + }, + eventData: [ + {generation: 9, level: 29, gender: "M", nature: "Quirky", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["irontail", "headbutt", "wrap", "sandstorm"]}, + ], + }, + tandemaus: { + learnset: { + aerialace: ["9M"], + afteryou: ["9E"], + agility: ["9M"], + babydolleyes: ["9L1"], + batonpass: ["9M", "9E"], + beatup: ["9L37"], + bite: ["9E"], + bulletseed: ["9M", "9L18"], + charm: ["9M", "9L33"], + copycat: ["9L41"], + crunch: ["9M"], + dig: ["9M"], + doublehit: ["9L14"], + echoedvoice: ["9L5"], + encore: ["9M", "9L22"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + feint: ["9E"], + grassknot: ["9M"], + helpinghand: ["9M", "9L8"], + hypervoice: ["9M", "9L30"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L26"], + populationbomb: ["9L46"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M", "9L11"], + swift: ["9M"], + switcheroo: ["9E"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + tickle: ["9E"], + uturn: ["9M"], + waterpulse: ["9M"], + }, + }, + maushold: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + babydolleyes: ["9L1"], + batonpass: ["9M"], + beatup: ["9L41"], + bulletseed: ["9M", "9L18"], + charm: ["9M", "9L37"], + chillingwater: ["9M"], + copycat: ["9L46"], + crunch: ["9M"], + dig: ["9M"], + doublehit: ["9L14"], + echoedvoice: ["9L5"], + encore: ["9M", "9L22"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + followme: ["9L1"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M", "9L8"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L33"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L29"], + populationbomb: ["9L53"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M", "9L11"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + tidyup: ["9L1"], + trailblaze: ["9M"], + uturn: ["9M"], + waterpulse: ["9M"], + }, + }, + cetoddle: { + learnset: { + amnesia: ["9M", "9L40"], + avalanche: ["9M", "9L27"], + bellydrum: ["9E"], + blizzard: ["9M", "9L53"], + bodypress: ["9M"], + bodyslam: ["9M", "9L36"], + bounce: ["9L31"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + doubleedge: ["9L49"], + earthquake: ["9M"], + echoedvoice: ["9L9"], + endure: ["9M"], + entrainment: ["9E"], + facade: ["9M"], + flail: ["9L25"], + growl: ["9L6"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + iceshard: ["9L12"], + icespinner: ["9M", "9L44"], + iciclecrash: ["9E"], + iciclespear: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + liquidation: ["9M"], + playrough: ["9M"], + powdersnow: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L15"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + superpower: ["9E"], + tackle: ["9L1"], + takedown: ["9M", "9L19"], + terablast: ["9M"], + waterpulse: ["9M"], + yawn: ["9E"], + }, + }, + cetitan: { + learnset: { + amnesia: ["9M", "9L40", "9S0"], + avalanche: ["9M", "9L27"], + blizzard: ["9M", "9L53"], + bodypress: ["9M"], + bodyslam: ["9M", "9L36", "9S0"], + bounce: ["9L31"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + doubleedge: ["9L49", "9S0"], + earthquake: ["9M"], + echoedvoice: ["9L9"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L25"], + gigaimpact: ["9M"], + growl: ["9L6"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + iceshard: ["9L12"], + icespinner: ["9M", "9L44", "9S0"], + iciclespear: ["9M"], + icywind: ["9M"], + knockoff: ["9M"], + liquidation: ["9M"], + playrough: ["9M"], + powdersnow: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L15"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L19"], + terablast: ["9M"], + waterpulse: ["9M"], + }, + eventData: [ + {generation: 9, moves: ["bodyslam", "amnesia", "icespinner", "doubleedge"]}, + ], + }, + frigibax: { + learnset: { + aquatail: ["9E"], + avalanche: ["9M"], + bite: ["9L24"], + blizzard: ["9M"], + bodyslam: ["9M"], + crunch: ["9M", "9L44"], + dig: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragonclaw: ["9M", "9L32"], + dragonpulse: ["9M"], + dragonrush: ["9E"], + dragontail: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + focusenergy: ["9L18"], + freezedry: ["9E"], + helpinghand: ["9M"], + icebeam: ["9M", "9L40"], + icefang: ["9M", "9L29"], + iciclecrash: ["9L48"], + iciclespear: ["9M", "9E"], + icywind: ["9M", "9L6"], + leer: ["9L1"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + }, + }, + arctibax: { + learnset: { + aerialace: ["9M"], + avalanche: ["9M"], + bite: ["9L24"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + crunch: ["9M", "9L50"], + dig: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + focusenergy: ["9L18"], + helpinghand: ["9M"], + icebeam: ["9M", "9L45"], + icefang: ["9M", "9L29"], + iciclecrash: ["9L55"], + iciclespear: ["9M"], + icywind: ["9M", "9L6"], + ironhead: ["9M"], + leer: ["9L1"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L40"], + terablast: ["9M"], + }, + }, + baxcalibur: { + learnset: { + aerialace: ["9M"], + avalanche: ["9M"], + bite: ["9L24"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9L1"], + brickbreak: ["9M"], + bulldoze: ["9M"], + crunch: ["9M", "9L55"], + dig: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragonclaw: ["9M", "9L35"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M", "9L1"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + focusenergy: ["9L18"], + gigaimpact: ["9M"], + glaiverush: ["9L0"], + helpinghand: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M", "9L48"], + icefang: ["9M", "9L29"], + iceshard: ["9L1"], + iciclecrash: ["9L62"], + iciclespear: ["9M"], + icywind: ["9M", "9L6"], + ironhead: ["9M"], + leer: ["9L1"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaleshot: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M", "9L1"], + stompingtantrum: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L42"], + terablast: ["9M"], + thunderfang: ["9M"], + zenheadbutt: ["9M"], + }, + }, + tatsugiri: { + learnset: { + batonpass: ["9M", "9E"], + chillingwater: ["9M"], + counter: ["9E"], + dracometeor: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M", "9L52", "9S0"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + harden: ["9L6"], + helpinghand: ["9M", "9L12"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M", "9S0"], + lunge: ["9M"], + memento: ["9L34"], + mirrorcoat: ["9L47"], + muddywater: ["9L39", "9S0"], + nastyplot: ["9M", "9L43"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9E"], + rest: ["9M"], + sleeptalk: ["9M"], + soak: ["9L23"], + splash: ["9L1"], + substitute: ["9M"], + surf: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L28", "9S0"], + terablast: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L17"], + }, + eventData: [ + {generation: 9, level: 57, gender: "M", nature: "Quiet", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["muddywater", "icywind", "taunt", "dragonpulse"]}, + ], + }, + tatsugiristretchy: { + learnset: { + celebrate: ["9S0"], + dracometeor: ["9S0"], + helpinghand: ["9S0"], + muddywater: ["9S0"], + }, + eventData: [ + {generation: 9, level: 50, moves: ["dracometeor", "muddywater", "helpinghand", "celebrate"], pokeball: "cherishball"}, + ], + }, + cyclizar: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aquatail: ["9E"], + bite: ["9L23"], + bodyslam: ["9M"], + breakingswipe: ["9L14"], + crunch: ["9M"], + doubleedge: ["9L51"], + dracometeor: ["9M"], + dragonclaw: ["9M", "9L36"], + dragonpulse: ["9M", "9L45"], + dragonrush: ["9L57"], + dragontail: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icespinner: ["9M"], + ironhead: ["9M"], + irontail: ["9E"], + knockoff: ["9M", "9E"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + powerwhip: ["9E"], + protect: ["9M"], + quickattack: ["9L18"], + raindance: ["9M"], + rapidspin: ["9L7"], + rest: ["9M"], + scaleshot: ["9M"], + shedtail: ["9L31"], + shiftgear: ["9L40"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M", "9L11"], + terablast: ["9M"], + thief: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + uproar: ["9M"], + uturn: ["9M", "9L27"], + wildcharge: ["9M"], + }, + }, + pawmi: { + learnset: { + agility: ["9M", "9L40"], + batonpass: ["9M"], + bite: ["9L19"], + celebrate: ["9S0"], + charge: ["9M", "9L8"], + chargebeam: ["9M"], + charm: ["9M"], + crunch: ["9M"], + dig: ["9M", "9L15"], + discharge: ["9L38"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9L31"], + facade: ["9M"], + fakeout: ["9E"], + fling: ["9M"], + growl: ["9L1", "9S0"], + helpinghand: ["9M"], + machpunch: ["9E"], + metalclaw: ["9M"], + nuzzle: ["9L12"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + raindance: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + slam: ["9L35"], + sleeptalk: ["9M"], + spark: ["9L23"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + sweetkiss: ["9E"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M", "9S0"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thundershock: ["9L3", "9S0"], + thunderwave: ["9M", "9L27"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L44"], + wish: ["9E"], + }, + eventData: [ + {generation: 9, level: 5, moves: ['thundershock', 'growl', 'terablast', 'celebrate'], pokeball: 'cherishball'}, + ], + }, + pawmo: { + learnset: { + agility: ["9M", "9L46"], + armthrust: ["9L0"], + batonpass: ["9M"], + bite: ["9L19"], + charge: ["9M", "9L8"], + chargebeam: ["9M"], + charm: ["9M"], + crunch: ["9M"], + dig: ["9M", "9L15"], + discharge: ["9L42"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9L38"], + facade: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + knockoff: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M"], + nuzzle: ["9L12"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + raindance: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + slam: ["9L32"], + sleeptalk: ["9M"], + spark: ["9L23"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thundershock: ["9L3"], + thunderwave: ["9M", "9L27"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L52"], + }, + }, + pawmot: { + learnset: { + agility: ["9M", "9L54"], + armthrust: ["9L25"], + batonpass: ["9M"], + bite: ["9L19"], + bodypress: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + charge: ["9M", "9L8"], + chargebeam: ["9M"], + charm: ["9M"], + closecombat: ["9M", "9L44"], + crunch: ["9M"], + dig: ["9M", "9L15"], + discharge: ["9L49"], + doubleshock: ["9L60"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9L39"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + knockoff: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M"], + metronome: ["9M"], + nuzzle: ["9L12"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + raindance: ["9M"], + rest: ["9M"], + revivalblessing: ["9L0"], + rocktomb: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M"], + slam: ["9L33"], + sleeptalk: ["9M"], + spark: ["9L23"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thundershock: ["9L3"], + thunderwave: ["9M", "9L29"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L1"], + }, + }, + wattrel: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L32"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + discharge: ["9L43"], + dualwingbeat: ["9M", "9L27"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9E"], + fly: ["9M"], + growl: ["9L1"], + hurricane: ["9M"], + peck: ["9L1"], + pluck: ["9L11"], + protect: ["9M"], + quickattack: ["9L7"], + rest: ["9M"], + roost: ["9L23"], + sleeptalk: ["9M"], + spark: ["9L15"], + spitup: ["9E"], + stockpile: ["9E"], + substitute: ["9M"], + swallow: ["9E"], + swift: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + uproar: ["9M", "9L19"], + uturn: ["9M"], + voltswitch: ["9M", "9L37"], + weatherball: ["9M", "9E"], + wildcharge: ["9M"], + }, + }, + kilowattrel: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L36"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M"], + charge: ["9M"], + chargebeam: ["9M"], + discharge: ["9L48"], + dualwingbeat: ["9M", "9L30"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L0"], + endure: ["9M"], + facade: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + hurricane: ["9M", "9L55"], + hyperbeam: ["9M"], + peck: ["9L1"], + pluck: ["9L11"], + protect: ["9M"], + quickattack: ["9L7"], + rest: ["9M"], + roost: ["9L24"], + scaryface: ["9M"], + sleeptalk: ["9M"], + spark: ["9L15"], + substitute: ["9M"], + swift: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + uproar: ["9M", "9L19"], + uturn: ["9M"], + voltswitch: ["9M", "9L43"], + weatherball: ["9M"], + wildcharge: ["9M"], + }, + }, + bombirdier: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M"], + darkpulse: ["9M"], + drillrun: ["9M"], + dualwingbeat: ["9M", "9L42"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9E"], + fly: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + honeclaws: ["9L1"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + knockoff: ["9M", "9L53"], + lashout: ["9M"], + leer: ["9L1"], + memento: ["9L1"], + nastyplot: ["9M"], + partingshot: ["9L60"], + payback: ["9L36"], + peck: ["9L1"], + pluck: ["9L20", "9S0"], + powergem: ["9M"], + powertrip: ["9E"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L47"], + rockthrow: ["9L11", "9S0"], + rocktomb: ["9M", "9L29"], + roost: ["9E"], + sandstorm: ["9M"], + scaryface: ["9M"], + skyattack: ["9E"], + sleeptalk: ["9M"], + snarl: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9E"], + sunnyday: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "9L7"], + torment: ["9L24", "9S0"], + uturn: ["9M"], + whirlwind: ["9L16"], + wingattack: ["9L1", "9S0"], + }, + eventData: [ + {generation: 9, level: 20, gender: "F", nature: "Jolly", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, isHidden: true, moves: ["rockthrow", "wingattack", "pluck", "torment"]}, + ], + }, + squawkabilly: { + learnset: { + aerialace: ["9M", "9L13"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M", "9L42"], + copycat: ["9L27"], + doubleedge: ["9E"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M", "9L34"], + faketears: ["9M"], + finalgambit: ["9E"], + flatter: ["9E"], + fly: ["9M", "9L30"], + foulplay: ["9M"], + furyattack: ["9L17"], + gigaimpact: ["9M"], + growl: ["9L1"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lashout: ["9M"], + mimic: ["9L1"], + partingshot: ["9E"], + peck: ["9L1"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + rest: ["9M"], + reversal: ["9M", "9L52"], + roost: ["9L47"], + scaryface: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L38"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L20"], + terablast: ["9M"], + thief: ["9M"], + torment: ["9L10"], + uproar: ["9M", "9L24"], + uturn: ["9M"], + }, + }, + flamigo: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L35"], + bravebird: ["9M", "9L54"], + bulkup: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + copycat: ["9L1"], + detect: ["9L9"], + doublekick: ["9L5"], + doubleteam: ["9E"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9L21"], + fling: ["9M"], + fly: ["9M"], + focusenergy: ["9L15"], + gigaimpact: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + liquidation: ["9M"], + lowkick: ["9M", "9L18"], + lowsweep: ["9M"], + lunge: ["9M"], + megakick: ["9L39"], + payback: ["9L27"], + peck: ["9L1"], + pounce: ["9M"], + protect: ["9M"], + quickguard: ["9E"], + rest: ["9M"], + reversal: ["9M"], + roost: ["9L31"], + skyattack: ["9E"], + sleeptalk: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L48"], + uturn: ["9M"], + waterpulse: ["9M"], + wideguard: ["9L44"], + wingattack: ["9L12"], + }, + }, + klawf: { + learnset: { + ancientpower: ["9E"], + block: ["9S0"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + crabhammer: ["9E"], + dig: ["9M"], + earthpower: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L37"], + fling: ["9M"], + gigaimpact: ["9M"], + guillotine: ["9L56"], + harden: ["9L6"], + helpinghand: ["9M"], + highhorsepower: ["9M", "9L47"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L51"], + knockoff: ["9M", "9E"], + metalclaw: ["9M", "9L17"], + mudshot: ["9M"], + mudslap: ["9M"], + powergem: ["9M"], + protect: ["9M", "9L21"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M", "9L24"], + rockslide: ["9M", "9L42"], + rocksmash: ["9L9", "9S0"], + rockthrow: ["9L1"], + rocktomb: ["9M", "9L13", "9S0"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M", "9L33"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + visegrip: ["9L1", "9S0"], + xscissor: ["9M", "9L29"], + }, + eventData: [ + {generation: 9, level: 16, gender: "F", nature: "Gentle", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, abilities: ["angershell"], moves: ["visegrip", "rocksmash", "block", "rocktomb"]}, + ], + }, + nacli: { + learnset: { + ancientpower: ["9E"], + bodyslam: ["9M"], + bulldoze: ["9M"], + curse: ["9E"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L40"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9E"], + flashcannon: ["9M"], + harden: ["9L1"], + headbutt: ["9L16"], + heavyslam: ["9M", "9L35"], + helpinghand: ["9M"], + irondefense: ["9M", "9L20"], + ironhead: ["9M"], + mudshot: ["9M", "9L7"], + powergem: ["9M", "9E"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9L25"], + rest: ["9M"], + rockpolish: ["9L13"], + rockslide: ["9M", "9L30"], + rockthrow: ["9L5"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M", "9L10"], + stealthrock: ["9M", "9L33"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L45"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + zenheadbutt: ["9M"], + }, + }, + naclstack: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L45"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + harden: ["9L1"], + headbutt: ["9L16"], + heavyslam: ["9M", "9L41"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L20"], + ironhead: ["9M"], + mudshot: ["9M", "9L7"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9L30"], + rest: ["9M"], + rockpolish: ["9L13"], + rockslide: ["9M", "9L34"], + rockthrow: ["9L5"], + saltcure: ["9L0"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M", "9L10"], + stealthrock: ["9M", "9L38"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L51"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + zenheadbutt: ["9M"], + }, + }, + garganacl: { + learnset: { + avalanche: ["9M"], + block: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L49"], + endure: ["9M"], + explosion: ["9L60"], + facade: ["9M"], + firepunch: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M"], + hammerarm: ["9L0"], + harden: ["9L1"], + headbutt: ["9L16"], + heavyslam: ["9M", "9L44"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + mudshot: ["9M", "9L7"], + powergem: ["9M"], + protect: ["9M", "9S0"], + raindance: ["9M"], + recover: ["9L30", "9S0"], + rest: ["9M"], + rockblast: ["9M", "9L1"], + rockpolish: ["9L13"], + rockslide: ["9M", "9L34"], + rockthrow: ["9L5"], + rocktomb: ["9M", "9L10"], + saltcure: ["9L24", "9S0"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + stealthrock: ["9M", "9L40"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L54"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + wideguard: ["9L1", "9S0"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, gender: "M", nature: "Careful", ivs: {hp: 31, atk: 31, def: 31, spa: 22, spd: 31, spe: 31}, moves: ["saltcure", "recover", "wideguard", "protect"], pokeball: "cherishball"}, + ], + }, + glimmet: { + learnset: { + acidarmor: ["9L41"], + acidspray: ["9M", "9L7"], + ancientpower: ["9L11"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + endure: ["9M"], + explosion: ["9E"], + facade: ["9M"], + gunkshot: ["9M"], + harden: ["9L1"], + irondefense: ["9M"], + lightscreen: ["9M"], + memento: ["9E"], + mudshot: ["9M"], + powergem: ["9M", "9L37"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockpolish: ["9L15"], + rockslide: ["9M", "9L33"], + rockthrow: ["9L1"], + rocktomb: ["9M"], + sandstorm: ["9M", "9L26"], + sandtomb: ["9M"], + selfdestruct: ["9L29"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L46"], + smackdown: ["9M", "9L1"], + spikes: ["9M"], + stealthrock: ["9M", "9L18"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + terablast: ["9M"], + toxic: ["9M", "9E"], + toxicspikes: ["9M"], + venoshock: ["9M", "9L22"], + }, + }, + glimmora: { + learnset: { + acidarmor: ["9L44"], + acidspray: ["9M", "9L7"], + ancientpower: ["9L11"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + harden: ["9L1"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + mortalspin: ["9L0"], + mudshot: ["9M"], + powergem: ["9M", "9L39"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockpolish: ["9L15"], + rockslide: ["9M", "9L33"], + rockthrow: ["9L1"], + rocktomb: ["9M"], + sandstorm: ["9M", "9L26"], + sandtomb: ["9M"], + selfdestruct: ["9L29"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L50"], + smackdown: ["9M", "9L1"], + solarbeam: ["9M"], + spikes: ["9M"], + spikyshield: ["9L1"], + stealthrock: ["9M", "9L18"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + terablast: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M", "9L1"], + venoshock: ["9M", "9L22"], + }, + }, + shroodle: { + learnset: { + acidspray: ["9M", "9L5"], + acrobatics: ["9M"], + batonpass: ["9M"], + bite: ["9L8"], + copycat: ["9E"], + crosspoison: ["9E"], + dig: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + flatter: ["9L18"], + fling: ["9M"], + foulplay: ["9M"], + furyswipes: ["9L8"], + gunkshot: ["9M", "9L45"], + helpinghand: ["9M"], + knockoff: ["9M", "9L40"], + leer: ["9L1"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + partingshot: ["9E"], + poisonfang: ["9L14"], + poisonjab: ["9M", "9L29"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + slash: ["9L21"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + substitute: ["9M", "9L36"], + sunnyday: ["9M"], + superfang: ["9M", "9E"], + swagger: ["9E"], + switcheroo: ["9L11"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L33"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M", "9E"], + trailblaze: ["9M"], + uturn: ["9M", "9L25"], + venoshock: ["9M"], + }, + }, + grafaiai: { + learnset: { + acidspray: ["9M", "9L5"], + acrobatics: ["9M"], + batonpass: ["9M"], + dig: ["9M"], + doodle: ["9L0"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + flatter: ["9L18"], + fling: ["9M"], + foulplay: ["9M"], + furyswipes: ["9L8"], + gigaimpact: ["9M"], + gunkshot: ["9M", "9L51"], + helpinghand: ["9M"], + knockoff: ["9M", "9L45"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + poisonfang: ["9L14"], + poisonjab: ["9M", "9L33"], + poisontail: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + scratch: ["9L1"], + shadowclaw: ["9M"], + slash: ["9L21"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + substitute: ["9M", "9L40"], + sunnyday: ["9M"], + superfang: ["9M"], + switcheroo: ["9L11"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L37"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "9L25"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + fidough: { + learnset: { + agility: ["9M"], + babydolleyes: ["9L15"], + batonpass: ["9M", "9L26"], + bite: ["9L11"], + bodyslam: ["9M"], + charm: ["9M", "9L36", "9S0"], + copycat: ["9E"], + covet: ["9L8"], + crunch: ["9M", "9L40"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["9L33"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + howl: ["9E"], + icefang: ["9M"], + lastresort: ["9L45"], + lick: ["9L3", "9S0"], + mistyterrain: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L18", "9S0"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M", "9L30"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9E"], + tackle: ["9L1"], + tailwhip: ["9L6", "9S0"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + wish: ["9E"], + workup: ["9L22"], + yawn: ["9E"], + }, + eventData: [ + {generation: 9, level: 5, moves: ['playrough', 'charm', 'lick', 'tailwhip'], pokeball: 'cherishball'}, + ], + }, + dachsbun: { + learnset: { + agility: ["9M"], + babydolleyes: ["9L15"], + batonpass: ["9M", "9L29"], + bite: ["9L11"], + bodypress: ["9M"], + bodyslam: ["9M"], + charm: ["9M", "9L42"], + covet: ["9L8"], + crunch: ["9M", "9L47"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["9L38"], + drainingkiss: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + lastresort: ["9L53"], + lick: ["9L3"], + mistyterrain: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L18"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M", "9L33"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L6"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + workup: ["9L22"], + }, + }, + maschiff: { + learnset: { + bite: ["9L14"], + bodyslam: ["9M"], + charm: ["9M"], + crunch: ["9M", "9L31"], + darkpulse: ["9M"], + destinybond: ["9E"], + dig: ["9M"], + doubleedge: ["9L49"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + firefang: ["9M"], + headbutt: ["9L22"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + icefang: ["9M"], + jawlock: ["9L43"], + lashout: ["9M"], + leer: ["9L1"], + lick: ["9L4"], + payback: ["9L26"], + playrough: ["9M", "9E"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + retaliate: ["9E"], + reversal: ["9M", "9L39"], + roar: ["9M", "9L18"], + scaryface: ["9M", "9L1"], + sleeptalk: ["9M"], + snarl: ["9M", "9L7"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L35"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + }, + }, + mabosstiff: { + learnset: { + bite: ["9L14"], + bodyslam: ["9M"], + charm: ["9M"], + comeuppance: ["9L0"], + crunch: ["9M", "9L34"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9L55"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L22"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + jawlock: ["9L48"], + lashout: ["9M"], + leer: ["9L1"], + lick: ["9L4"], + outrage: ["9M", "9L60"], + payback: ["9L26"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M", "9L43"], + roar: ["9M", "9L18"], + scaryface: ["9M", "9L1"], + sleeptalk: ["9M"], + snarl: ["9M", "9L7"], + spite: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L39"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + wildcharge: ["9M"], + }, + }, + bramblin: { + learnset: { + absorb: ["9L5"], + astonish: ["9L1"], + beatup: ["9E"], + block: ["9E"], + bulletseed: ["9M", "9L13"], + confuseray: ["9M"], + curse: ["9L45"], + defensecurl: ["9L1"], + disable: ["9L29"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M", "9L40"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L21"], + infestation: ["9L17"], + leafstorm: ["9M"], + leechseed: ["9E"], + megadrain: ["9L25"], + nightshade: ["9M"], + painsplit: ["9L50"], + phantomforce: ["9M", "9L35"], + poltergeist: ["9M"], + pounce: ["9M"], + powerwhip: ["9L55"], + protect: ["9M"], + rapidspin: ["9L9"], + rest: ["9M"], + rollout: ["9L1"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + shadowsneak: ["9E"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spite: ["9M"], + strengthsap: ["9E"], + substitute: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + }, + }, + brambleghast: { + learnset: { + absorb: ["9L5"], + astonish: ["9L1"], + bulletseed: ["9M", "9L13"], + confuseray: ["9M"], + curse: ["9L45"], + defensecurl: ["9L1"], + disable: ["9L29"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M", "9L40"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L21"], + hyperbeam: ["9M"], + infestation: ["9L17"], + leafstorm: ["9M"], + megadrain: ["9L25"], + nightshade: ["9M"], + painsplit: ["9L50"], + phantomforce: ["9M", "9L35"], + poltergeist: ["9M"], + pounce: ["9M"], + powerwhip: ["9L55"], + protect: ["9M"], + rapidspin: ["9L9"], + rest: ["9M"], + rollout: ["9L1"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spite: ["9M"], + substitute: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + }, + }, + gimmighoul: { + learnset: { + astonish: ["9L1", "9S2", "9S0"], + confuseray: ["9M"], + endure: ["9M"], + hex: ["9M", "9S1"], + lightscreen: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + powergem: ["9M", "9S1"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M", "9S1"], + sleeptalk: ["9M"], + substitute: ["9M"], + tackle: ["9L1", "9S2", "9S0"], + takedown: ["9M", "9S1"], + terablast: ["9M"], + thief: ["9M"], + }, + eventData: [ + {generation: 9, level: 5, moves: ["astonish", "tackle"]}, + {generation: 9, level: 75, shiny: 1, perfectIVs: 4, moves: ["takedown", "shadowball", "hex", "powergem"]}, + {generation: 9, level: 5, nature: "Timid", ivs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 31}, moves: ["astonish", "tackle"]}, + ], + eventOnly: true, + }, + gholdengo: { + learnset: { + astonish: ["9L1"], + chargebeam: ["9M"], + confuseray: ["9M", "9L14"], + dazzlinggleam: ["9M"], + electroball: ["9M"], + endure: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + makeitrain: ["9L56"], + memento: ["9L70"], + metalsound: ["9L28"], + nastyplot: ["9M", "9L63"], + nightshade: ["9M", "9L7"], + poltergeist: ["9M"], + powergem: ["9M", "9L49"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + recover: ["9L42"], + reflect: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + shadowball: ["9M", "9L35"], + sleeptalk: ["9M"], + steelbeam: ["9M"], + substitute: ["9M", "9L21"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + }, + }, + greattusk: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "9L28", "9S0"], + bulkup: ["9M"], + bulldoze: ["9M", "9L7"], + closecombat: ["9M", "9L63"], + defensecurl: ["9L1"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L49", "9S1"], + endeavor: ["9L70"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M", "9L56", "9S1"], + headlongrush: ["9L91"], + headsmash: ["9L84"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hornattack: ["9L1"], + hyperbeam: ["9M"], + icefang: ["9M"], + icespinner: ["9M"], + ironhead: ["9M"], + knockoff: ["9M", "9L42", "9S0", "9S1"], + megahorn: ["9L77"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psyshock: ["9M"], + rapidspin: ["9L21", "9S0"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + rollout: ["9L1"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9M"], + smartstrike: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "9L35", "9S0", "9S1"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + takedown: ["9M"], + taunt: ["9M", "9L14"], + terablast: ["9M"], + thunderfang: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 45, nature: "Naughty", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["rapidspin", "brickbreak", "knockoff", "stompingtantrum"]}, + {generation: 9, level: 57, shiny: 1, moves: ["stompingtantrum", "knockoff", "earthquake", "gigaimpact"]}, + ], + eventOnly: true, + }, + brutebonnet: { + learnset: { + absorb: ["9L1"], + astonish: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulletseed: ["9M"], + clearsmog: ["9L28", "9S0"], + closecombat: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M", "9L49", "9S0"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1"], + hex: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9L70"], + lashout: ["9M"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L14"], + outrage: ["9M"], + payback: ["9L35", "9S0"], + pollenpuff: ["9M"], + protect: ["9M"], + ragepowder: ["9L77"], + rest: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M", "9L91"], + spore: ["9L63"], + stompingtantrum: ["9M"], + stunspore: ["9L7"], + substitute: ["9M"], + suckerpunch: ["9L56"], + sunnyday: ["9M", "9L1"], + synthesis: ["9L21"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L42", "9S0"], + trailblaze: ["9M"], + venoshock: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["thrash", "gigadrain", "clearsmog", "payback"]}, + ], + eventOnly: true, + }, + sandyshocks: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L14"], + charge: ["9M"], + chargebeam: ["9M", "9L21"], + discharge: ["9L56"], + earthpower: ["9M", "9L63"], + earthquake: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gravity: ["9M", "9L77"], + heavyslam: ["9M", "9L42", "9S0"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + magneticflux: ["9L91"], + metalsound: ["9L49", "9S0"], + mirrorcoat: ["9L70"], + mudshot: ["9M"], + powergem: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + sandtomb: ["9M"], + screech: ["9L35", "9S0"], + sleeptalk: ["9M"], + spark: ["9L7"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + supersonic: ["9L1"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L1"], + thunderwave: ["9M", "9L1"], + triattack: ["9L28", "9S0"], + voltswitch: ["9M"], + wildcharge: ["9M"], + zapcannon: ["9L84"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["screech", "heavyslam", "metalsound", "triattack"]}, + ], + eventOnly: true, + }, + screamtail: { + learnset: { + amnesia: ["9M"], + batonpass: ["9M"], + bite: ["9L21"], + blizzard: ["9M"], + bodyslam: ["9M", "9L28", "9S0"], + boomburst: ["9L91"], + bulkup: ["9M"], + calmmind: ["9M"], + crunch: ["9M", "9L63"], + dazzlinggleam: ["9M"], + dig: ["9M"], + disable: ["9L1"], + drainpunch: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gyroball: ["9M", "9L77"], + helpinghand: ["9M"], + howl: ["9L7"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L49", "9S0"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + imprison: ["9M"], + lightscreen: ["9M"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + nobleroar: ["9L14"], + perishsong: ["9L84"], + playrough: ["9M", "9L42", "9S0"], + pound: ["9L1"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicfangs: ["9M", "9L56"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M", "9L35", "9S0"], + roar: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sing: ["9L1"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + waterpulse: ["9M"], + wish: ["9L70"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["playrough", "hypervoice", "bodyslam", "rest"]}, + ], + eventOnly: true, + }, + fluttermane: { + learnset: { + astonish: ["9L1"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + confuseray: ["9M", "9L1"], + darkpulse: ["9M"], + dazzlinggleam: ["9M", "9L35", "9S0"], + disarmingvoice: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + energyball: ["9M"], + faketears: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + magicalleaf: ["9M"], + meanlook: ["9L14"], + memento: ["9L21"], + mistyterrain: ["9M"], + moonblast: ["9L84"], + mysticalfire: ["9L49", "9S0"], + nightshade: ["9M"], + painsplit: ["9L77"], + perishsong: ["9L91"], + phantomforce: ["9M", "9L70"], + poltergeist: ["9M"], + powergem: ["9M", "9L56"], + protect: ["9M"], + psybeam: ["9M", "9L7"], + psyshock: ["9M", "9L63"], + rest: ["9M"], + shadowball: ["9M", "9L42", "9S0"], + sleeptalk: ["9M"], + spite: ["9M", "9L1"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + swift: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + trickroom: ["9M"], + wish: ["9L28", "9S0"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["shadowball", "mysticalfire", "wish", "dazzlinggleam"]}, + ], + eventOnly: true, + }, + slitherwing: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bugbite: ["9M", "9L1"], + bugbuzz: ["9M"], + bulkup: ["9M", "9L56"], + closecombat: ["9M"], + dualwingbeat: ["9M", "9L63"], + earthquake: ["9M"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + firstimpression: ["9L70"], + flamecharge: ["9M", "9L14"], + flareblitz: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gust: ["9L1"], + heatcrash: ["9M"], + heatwave: ["9M"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + leechlife: ["9M", "9L84"], + lowkick: ["9M"], + lowsweep: ["9M", "9L28", "9S0"], + lunge: ["9M", "9L42", "9S0"], + morningsun: ["9L35", "9S0"], + poisonpowder: ["9L7"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + stomp: ["9L21"], + stompingtantrum: ["9M"], + stunspore: ["9L7"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + superpower: ["9L49", "9S0"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L91"], + trailblaze: ["9M"], + uturn: ["9M"], + whirlwind: ["9L77"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["morningsun", "lunge", "superpower", "lowsweep"]}, + ], + eventOnly: true, + }, + roaringmoon: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + airslash: ["9M"], + bite: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9L1"], + brickbreak: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9L91"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonclaw: ["9M", "9L28", "9S0"], + dragondance: ["9M", "9L56"], + dragonpulse: ["9M"], + dragonrush: ["9L63"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamethrower: ["9M", "9L42", "9S0"], + fly: ["9M", "9L70"], + focusenergy: ["9L1"], + gigaimpact: ["9M"], + headbutt: ["9L14"], + heatwave: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + incinerate: ["9L7"], + ironhead: ["9M"], + jawlock: ["9L1"], + knockoff: ["9M"], + lashout: ["9M"], + leer: ["9L1"], + metalclaw: ["9M"], + nightslash: ["9L49", "9S0"], + outrage: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9M"], + rockslide: ["9M"], + roost: ["9L84"], + scaleshot: ["9M", "9L1"], + scaryface: ["9M", "9L21"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + throatchop: ["9L77"], + thunderfang: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M", "9L35", "9S0"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["zenheadbutt", "flamethrower", "nightslash", "dragonclaw"]}, + ], + eventOnly: true, + }, + irontreads: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L7"], + defensecurl: ["9L1"], + earthpower: ["9M"], + earthquake: ["9M", "9L49", "9S1"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + endeavor: ["9L70"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M", "9L84"], + gyroball: ["9M"], + heavyslam: ["9M", "9L56", "9S1"], + highhorsepower: ["9M"], + hornattack: ["9L1"], + hyperbeam: ["9M"], + icefang: ["9M"], + icespinner: ["9M"], + irondefense: ["9M"], + ironhead: ["9M", "9L28", "9S0"], + knockoff: ["9M", "9L42", "9S0", "9S1"], + megahorn: ["9L77"], + mudshot: ["9M"], + mudslap: ["9M"], + protect: ["9M"], + rapidspin: ["9L21", "9S0"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + rollout: ["9L1"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelroller: ["9L91"], + stompingtantrum: ["9M", "9L35", "9S0", "9S1"], + stoneedge: ["9M"], + substitute: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L63"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 45, nature: "Naughty", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["rapidspin", "ironhead", "knockoff", "stompingtantrum"]}, + {generation: 9, level: 57, shiny: 1, moves: ["knockoff", "earthquake", "heavyslam", "stompingtantrum"]}, + ], + }, + ironmoth: { + learnset: { + acidspray: ["9M", "9L1"], + acrobatics: ["9M"], + agility: ["9M"], + airslash: ["9M"], + bugbuzz: ["9M", "9L84"], + chargebeam: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + discharge: ["9L42", "9S0"], + electricterrain: ["9M", "9L1"], + ember: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fierydance: ["9L56"], + fireblast: ["9M"], + firespin: ["9M", "9L14"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gust: ["9L1"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M", "9L77"], + hyperbeam: ["9M"], + lightscreen: ["9M"], + lunge: ["9M", "9L28", "9S0"], + metalsound: ["9L63"], + morningsun: ["9L70"], + overheat: ["9M", "9L91"], + pounce: ["9M"], + protect: ["9M"], + psychic: ["9M"], + rest: ["9M"], + screech: ["9L35", "9S0"], + sleeptalk: ["9M"], + sludgewave: ["9L49", "9S0"], + solarbeam: ["9M"], + strugglebug: ["9M", "9L7"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M", "9L21"], + terablast: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + whirlwind: ["9L1"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["screech", "discharge", "sludgewave", "lunge"]}, + ], + eventOnly: true, + }, + ironhands: { + learnset: { + armthrust: ["9L1"], + bellydrum: ["9L84"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + charge: ["9M", "9L49", "9S0"], + closecombat: ["9M", "9L63"], + detect: ["9L70"], + drainpunch: ["9M"], + earthquake: ["9M"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9L7"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9L1"], + focuspunch: ["9M", "9L91"], + forcepalm: ["9L35", "9S0"], + gigaimpact: ["9M"], + heavyslam: ["9M", "9L77"], + hyperbeam: ["9M"], + icepunch: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + metronome: ["9M"], + playrough: ["9M"], + protect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandattack: ["9L1"], + scaryface: ["9M"], + seismictoss: ["9L42", "9S0"], + slam: ["9L28", "9S0"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M", "9L21"], + voltswitch: ["9M"], + whirlwind: ["9L14"], + wildcharge: ["9M", "9L56"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["forcepalm", "seismictoss", "charge", "slam"]}, + ], + eventOnly: true, + }, + ironjugulis: { + learnset: { + acrobatics: ["9M"], + aircutter: ["9M", "9L1"], + airslash: ["9M", "9L56"], + assurance: ["9L14"], + bodyslam: ["9M"], + chargebeam: ["9M"], + crunch: ["9M", "9L35", "9S0"], + darkpulse: ["9M", "9L70"], + dragonbreath: ["9L21", "9S0"], + dragonpulse: ["9M", "9L84"], + dragontail: ["9M"], + dualwingbeat: ["9M"], + earthpower: ["9M"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + focusenergy: ["9L1"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M", "9L91"], + hypervoice: ["9M", "9L42", "9S0"], + ironhead: ["9M"], + knockoff: ["9M", "9L63"], + lashout: ["9M"], + outrage: ["9M", "9L77"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M", "9L7"], + rocktomb: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M", "9L28", "9S0"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + triattack: ["9L1"], + uturn: ["9M"], + workup: ["9L1"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["snarl", "crunch", "hypervoice", "dragonbreath"]}, + ], + eventOnly: true, + }, + ironthorns: { + learnset: { + bite: ["9L28", "9S0"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + charge: ["9M", "9L35", "9S0"], + chargebeam: ["9M"], + crunch: ["9M"], + dig: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L70"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L1"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M", "9L91"], + heavyslam: ["9M"], + highhorsepower: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M", "9L1"], + icepunch: ["9M"], + irondefense: ["9M", "9L1"], + ironhead: ["9M"], + lowkick: ["9M"], + metalclaw: ["9M"], + pinmissile: ["9L63"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L42", "9S0"], + rockthrow: ["9L1"], + rocktomb: ["9M", "9L21"], + sandstorm: ["9M", "9L49", "9S0"], + sandtomb: ["9M"], + scaryface: ["9M"], + screech: ["9L7"], + sleeptalk: ["9M"], + smackdown: ["9M"], + snarl: ["9M"], + spikes: ["9M"], + stealthrock: ["9M", "9L77"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L84"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M", "9L1"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L56"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["charge", "rockslide", "sandstorm", "bite"]}, + ], + eventOnly: true, + }, + ironbundle: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L63"], + aircutter: ["9M"], + auroraveil: ["9L84"], + avalanche: ["9M"], + blizzard: ["9M", "9L91"], + bodyslam: ["9M"], + chillingwater: ["9M"], + drillpeck: ["9L28", "9S0"], + electricterrain: ["9M", "9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9M", "9L49", "9S0"], + freezedry: ["9L42", "9S0"], + gigaimpact: ["9M"], + helpinghand: ["9M", "9L35", "9S0"], + hydropump: ["9M", "9L77"], + hyperbeam: ["9M"], + icebeam: ["9M", "9L56"], + icepunch: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + playrough: ["9M"], + powdersnow: ["9L7"], + present: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M", "9L70"], + substitute: ["9M"], + swift: ["9M"], + takedown: ["9M", "9L21"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + uturn: ["9M"], + waterpulse: ["9M"], + whirlpool: ["9L14"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["drillpeck", "helpinghand", "freezedry", "flipturn"]}, + ], + eventOnly: true, + }, + ironvaliant: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + aurasphere: ["9M"], + brickbreak: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + closecombat: ["9M", "9L63"], + confuseray: ["9M"], + dazzlinggleam: ["9M", "9L28", "9S0"], + destinybond: ["9L77"], + disable: ["9L1"], + doubleteam: ["9L1"], + drainpunch: ["9M"], + electricterrain: ["9M", "9L1"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + falseswipe: ["9M"], + feint: ["9L14"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + furycutter: ["9L1"], + futuresight: ["9L21"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9L7"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9M", "9L70"], + leafblade: ["9L49", "9S0"], + lightscreen: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + magicalleaf: ["9M"], + metronome: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L56"], + nightslash: ["9L42", "9S0"], + poisonjab: ["9M"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9L35", "9S0"], + psyshock: ["9M"], + quickguard: ["9L84"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9L1"], + skillswap: ["9M"], + sleeptalk: ["9M"], + spiritbreak: ["9L91"], + storedpower: ["9M"], + substitute: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + vacuumwave: ["9M"], + wideguard: ["9L84"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["psychocut", "nightslash", "leafblade", "dazzlinggleam"]}, + ], + eventOnly: true, + }, + tinglu: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L20"], + darkpulse: ["9M", "9L40"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L70"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9L75"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + lashout: ["9M"], + meanlook: ["9L1"], + memento: ["9L65"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9L10"], + protect: ["9M"], + rest: ["9M"], + rockslide: ["9M", "9L60", "9S0"], + rocktomb: ["9M"], + ruination: ["9L50", "9S0"], + sandstorm: ["9M"], + sandtomb: ["9M", "9L1"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + spikes: ["9M", "9L5"], + spite: ["9M", "9L1"], + stealthrock: ["9M"], + stomp: ["9L15"], + stompingtantrum: ["9M", "9L45", "9S0"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L30"], + terablast: ["9M"], + thrash: ["9L35"], + throatchop: ["9L55", "9S0"], + whirlwind: ["9L25"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["stompingtantrum", "ruination", "throatchop", "rockslide"]}, + ], + eventOnly: true, + }, + chienpao: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + brickbreak: ["9M"], + crunch: ["9M"], + darkpulse: ["9M", "9L40"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + gigaimpact: ["9M"], + haze: ["9M", "9L15"], + hex: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + iceshard: ["9L20"], + icespinner: ["9M"], + iciclecrash: ["9L45", "9S0"], + icywind: ["9M", "9L5"], + lashout: ["9M"], + meanlook: ["9L1"], + mist: ["9L15"], + nightslash: ["9L35"], + payback: ["9L10"], + powdersnow: ["9L1"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + recover: ["9L65"], + rest: ["9M"], + ruination: ["9L50", "9S0"], + sacredsword: ["9L60", "9S0"], + scaryface: ["9M"], + sheercold: ["9L75"], + sleeptalk: ["9M"], + snarl: ["9M"], + snowscape: ["9M", "9L30"], + spite: ["9M", "9L1"], + substitute: ["9M"], + suckerpunch: ["9L55", "9S0"], + swordsdance: ["9M", "9L25"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + throatchop: ["9L70"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["iciclecrash", "ruination", "suckerpunch", "sacredsword"]}, + ], + eventOnly: true, + }, + wochien: { + learnset: { + absorb: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulletseed: ["9M"], + darkpulse: ["9M", "9L40"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + foulplay: ["9M", "9L55", "9S0"], + gigadrain: ["9M", "9L45", "9S0"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L65"], + growth: ["9L30"], + hex: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9L35"], + knockoff: ["9M", "9L70"], + lashout: ["9M"], + leafstorm: ["9M", "9L75"], + leechseed: ["9L25"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + meanlook: ["9L1"], + megadrain: ["9L20"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9L10"], + poisonpowder: ["9L15"], + pollenpuff: ["9M"], + powerwhip: ["9L60", "9S0"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + ruination: ["9L50", "9S0"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + spite: ["9M", "9L1"], + stunspore: ["9L15"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + tickle: ["9L5"], + trailblaze: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["gigadrain", "ruination", "foulplay", "powerwhip"]}, + ], + eventOnly: true, + }, + chiyu: { + learnset: { + bounce: ["9L55", "9S0"], + burningjealousy: ["9M"], + confuseray: ["9M", "9L30"], + crunch: ["9M"], + darkpulse: ["9M", "9L40"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M", "9L20"], + flamethrower: ["9M"], + flamewheel: ["9L5"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + incinerate: ["9L25"], + inferno: ["9L65"], + lashout: ["9M"], + lavaplume: ["9L45", "9S0"], + lightscreen: ["9M"], + meanlook: ["9L1"], + memento: ["9L70"], + nastyplot: ["9M", "9L35"], + overheat: ["9M", "9L75"], + payback: ["9L10"], + protect: ["9M"], + psychic: ["9M"], + reflect: ["9M"], + rest: ["9M"], + ruination: ["9L50", "9S0"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + spite: ["9M", "9L1"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L60", "9S0"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "9L15"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["lavaplume", "ruination", "bounce", "swagger"]}, + ], + eventOnly: true, + }, + koraidon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L35"], + ancientpower: ["9L14"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9L1"], + brickbreak: ["9M", "9L28"], + bulkup: ["9M", "9S1"], + bulldoze: ["9M"], + closecombat: ["9M", "9L84"], + collisioncourse: ["9L56", "9S0", "9S1"], + counter: ["9L70"], + crunch: ["9M"], + dig: ["9M"], + dracometeor: ["9M"], + dragonclaw: ["9M", "9L42"], + dragonpulse: ["9M"], + dragontail: ["9M"], + drainpunch: ["9M", "9L21"], + dualwingbeat: ["9M"], + endure: ["9M", "9S0"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L49", "9S0", "9S1"], + flareblitz: ["9M", "9L91"], + focusblast: ["9M"], + focuspunch: ["9M"], + gigaimpact: ["9M", "9L98", "9S1"], + heatcrash: ["9M"], + heatwave: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + ironhead: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M", "9L77"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rocksmash: ["9L7"], + scaleshot: ["9M"], + scaryface: ["9M"], + screech: ["9L63"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M", "9S0"], + thunderfang: ["9M"], + uproar: ["9M"], + uturn: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 68, nature: "Quirky", ivs: {hp: 31, atk: 31, def: 28, spa: 31, spd: 28, spe: 31}, moves: ["flamethrower", "collisioncourse", "endure", "terablast"], pokeball: "pokeball"}, + {generation: 9, level: 72, nature: "Adamant", ivs: {hp: 25, atk: 31, def: 25, spa: 31, spd: 25, spe: 31}, moves: ["gigaimpact", "bulkup", "collisioncourse", "flamethrower"]}, + ], + eventOnly: true, + }, + miraidon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L35"], + bodyslam: ["9M"], + calmmind: ["9M"], + charge: ["9M", "9L14", "9S1"], + chargebeam: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + dazzlinggleam: ["9M"], + discharge: ["9L28"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "9L42"], + dragontail: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + electrodrift: ["9L56", "9S0", "9S1"], + endure: ["9M", "9S0"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M", "9L98", "9S1"], + lightscreen: ["9M"], + metalsound: ["9L63"], + mirrorcoat: ["9L70"], + outrage: ["9M", "9L77"], + overheat: ["9M", "9L91"], + paraboliccharge: ["9L21"], + powergem: ["9M", "9S0", "9S1"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + shockwave: ["9L7"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M", "9S0"], + thunder: ["9M", "9L84"], + thunderbolt: ["9M"], + thundershock: ["9L1"], + thunderwave: ["9M"], + uturn: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 68, nature: "Quirky", ivs: {hp: 31, atk: 31, def: 28, spa: 31, spd: 28, spe: 31}, moves: ["powergem", "electrodrift", "endure", "terablast"], pokeball: "pokeball"}, + {generation: 9, level: 72, nature: "Modest", ivs: {hp: 25, atk: 31, def: 25, spa: 31, spd: 25, spe: 31}, moves: ["hyperbeam", "charge", "electrodrift", "powergem"]}, + ], + eventOnly: true, + }, + tinkatink: { + learnset: { + astonish: ["9L1"], + babydolleyes: ["9L5"], + brutalswing: ["9L24"], + covet: ["9L11"], + drainingkiss: ["9M", "9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fairywind: ["9L1"], + fakeout: ["9L39"], + faketears: ["9M"], + feint: ["9E"], + flashcannon: ["9M", "9L31"], + flatter: ["9L43"], + fling: ["9M"], + foulplay: ["9M"], + helpinghand: ["9M"], + icehammer: ["9E"], + knockoff: ["9M", "9L52"], + lightscreen: ["9M"], + metalclaw: ["9M", "9L8"], + metronome: ["9M"], + playrough: ["9M", "9L35"], + pounce: ["9M"], + protect: ["9M"], + quash: ["9E"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L14"], + rocktomb: ["9M"], + skillswap: ["9M"], + skittersmack: ["9L47"], + slam: ["9L27"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sweetkiss: ["9L21"], + swordsdance: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + }, + }, + tinkatuff: { + learnset: { + astonish: ["9L1"], + babydolleyes: ["9L5"], + brickbreak: ["9M"], + brutalswing: ["9L24"], + covet: ["9L11"], + drainingkiss: ["9M", "9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fairywind: ["9L1"], + fakeout: ["9L39"], + faketears: ["9M"], + flashcannon: ["9M", "9L31"], + flatter: ["9L43"], + fling: ["9M"], + foulplay: ["9M"], + helpinghand: ["9M"], + knockoff: ["9M", "9L52"], + lightscreen: ["9M"], + metalclaw: ["9M", "9L8"], + metronome: ["9M"], + playrough: ["9M", "9L35"], + pounce: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L14"], + rocktomb: ["9M"], + skillswap: ["9M"], + skittersmack: ["9L47"], + slam: ["9L27"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sweetkiss: ["9L21"], + swordsdance: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + }, + }, + tinkaton: { + learnset: { + astonish: ["9L1"], + babydolleyes: ["9L5"], + brickbreak: ["9M"], + brutalswing: ["9L24"], + bulldoze: ["9M"], + covet: ["9L11"], + drainingkiss: ["9M", "9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fairywind: ["9L1"], + fakeout: ["9L39"], + faketears: ["9M"], + flashcannon: ["9M", "9L31"], + flatter: ["9L43"], + fling: ["9M"], + foulplay: ["9M"], + gigatonhammer: ["9L0"], + heavyslam: ["9M"], + helpinghand: ["9M"], + knockoff: ["9M", "9L52"], + lightscreen: ["9M"], + metalclaw: ["9M", "9L8"], + metronome: ["9M"], + playrough: ["9M", "9L35"], + pounce: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L14"], + rocktomb: ["9M"], + skillswap: ["9M"], + skittersmack: ["9L47"], + slam: ["9L27"], + sleeptalk: ["9M"], + smackdown: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sweetkiss: ["9L21"], + swordsdance: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + }, + }, + charcadet: { + learnset: { + astonish: ["9L1", "9S0"], + celebrate: ["9S0"], + clearsmog: ["9L8"], + confuseray: ["9M"], + destinybond: ["9E"], + disable: ["9E"], + ember: ["9L1", "9S0"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M", "9L12"], + flamecharge: ["9M", "9L24"], + flamethrower: ["9M"], + flareblitz: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + incinerate: ["9L28"], + lavaplume: ["9L32"], + leer: ["9L1"], + nightshade: ["9M", "9L20"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + spite: ["9M", "9E"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + terablast: ["9M", "9S0"], + willowisp: ["9M", "9L16"], + }, + eventData: [ + {generation: 9, level: 5, moves: ['ember', 'astonish', 'terablast', 'celebrate'], pokeball: 'cherishball'}, + ], + }, + armarouge: { + learnset: { + acidspray: ["9M"], + allyswitch: ["9L42"], + armorcannon: ["9L62"], + astonish: ["9L1"], + aurasphere: ["9M"], + calmmind: ["9M", "9L37"], + clearsmog: ["9L8"], + confuseray: ["9M"], + darkpulse: ["9M"], + dragonpulse: ["9M"], + ember: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9L56"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M", "9L12"], + flamecharge: ["9M", "9L24"], + flamethrower: ["9M", "9L48"], + flareblitz: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + incinerate: ["9L28"], + irondefense: ["9M"], + lavaplume: ["9L32"], + leer: ["9L1"], + lightscreen: ["9M"], + mysticalfire: ["9L1"], + nightshade: ["9M", "9L20"], + overheat: ["9M"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M", "9L0"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + weatherball: ["9M"], + wideguard: ["9L1"], + willowisp: ["9M", "9L16"], + }, + }, + ceruledge: { + learnset: { + allyswitch: ["9L42"], + astonish: ["9L1"], + bitterblade: ["9L48"], + brickbreak: ["9M"], + bulkup: ["9M"], + clearsmog: ["9L8"], + closecombat: ["9M"], + confuseray: ["9M"], + dragonclaw: ["9M"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + fireblast: ["9M"], + firespin: ["9M", "9L12"], + flamecharge: ["9M", "9L24"], + flamethrower: ["9M"], + flareblitz: ["9M", "9L62"], + fling: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + incinerate: ["9L28"], + irondefense: ["9M"], + ironhead: ["9M"], + lavaplume: ["9L32"], + leer: ["9L1"], + lightscreen: ["9M"], + nightshade: ["9M", "9L20"], + nightslash: ["9L1"], + overheat: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + psychocut: ["9L56"], + quickguard: ["9L1"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M", "9L0"], + shadowsneak: ["9L1"], + sleeptalk: ["9M"], + solarblade: ["9M", "9L1"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M", "9L37"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + vacuumwave: ["9M"], + willowisp: ["9M", "9L16"], + xscissor: ["9M"], + }, + }, + toedscool: { + learnset: { + absorb: ["9L4"], + acidspray: ["9M"], + acupressure: ["9E"], + bulletseed: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M", "9L48"], + endure: ["9M"], + energyball: ["9M"], + flashcannon: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M", "9L44"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L40"], + hex: ["9M", "9L28"], + knockoff: ["9M", "9E"], + leafstorm: ["9M"], + leechseed: ["9E"], + lightscreen: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L16"], + mirrorcoat: ["9E"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + poisonpowder: ["9L8"], + powerwhip: ["9L52"], + protect: ["9M"], + ragepowder: ["9E"], + raindance: ["9M"], + rapidspin: ["9E"], + reflect: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + screech: ["9L20"], + seedbomb: ["9M", "9L32"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spore: ["9L36"], + stunspore: ["9L8"], + substitute: ["9M"], + supersonic: ["9L12"], + swift: ["9M"], + tackle: ["9L15"], + taunt: ["9M"], + terablast: ["9M"], + tickle: ["9E"], + toxic: ["9M", "9E"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + trickroom: ["9M"], + venoshock: ["9M"], + wrap: ["9L1"], + }, + }, + toedscruel: { + learnset: { + absorb: ["9L4"], + acidspray: ["9M"], + bulletseed: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M", "9L54"], + endure: ["9M"], + energyball: ["9M"], + flashcannon: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M", "9L48"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L44"], + hex: ["9M", "9L28"], + hyperbeam: ["9M"], + knockoff: ["9M"], + leafstorm: ["9M"], + lightscreen: ["9M"], + lunge: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L16"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + poisonpowder: ["9L8"], + powerwhip: ["9L58"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + reflecttype: ["9L1"], + rest: ["9M"], + scaryface: ["9M"], + screech: ["9L20"], + seedbomb: ["9M", "9L34"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spore: ["9L40"], + stunspore: ["9L8"], + substitute: ["9M"], + supersonic: ["9L12"], + swift: ["9M"], + tackle: ["9L15"], + taunt: ["9M"], + terablast: ["9M"], + toxic: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + trickroom: ["9M"], + venoshock: ["9M"], + wrap: ["9L1"], + }, + }, + walkingwake: { + learnset: { + agility: ["9M"], + aquajet: ["9L1"], + bite: ["9L7", "9L07"], + bodyslam: ["9M"], + breakingswipe: ["9L35"], + chillingwater: ["9M"], + crunch: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L28"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M", "9L63", "9S0"], + dragonrush: ["9L42"], + dragontail: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + flamethrower: ["9M", "9L77", "9S0"], + flipturn: ["9M"], + gigaimpact: ["9M"], + honeclaws: ["9L1"], + hurricane: ["9M"], + hydropump: ["9M", "9L84"], + hydrosteam: ["9L56", "9S0"], + hyperbeam: ["9M"], + knockoff: ["9M"], + leer: ["9L1"], + liquidation: ["9M"], + lowkick: ["9M"], + mudshot: ["9M"], + nobleroar: ["9L21", "9S0"], + outrage: ["9M", "9L70"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9M", "9L1"], + scald: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + twister: ["9L1"], + waterfall: ["9M"], + waterpulse: ["9M", "9L14"], + weatherball: ["9M"], + }, + eventData: [ + {generation: 9, level: 75, perfectIVs: 3, moves: ["hydrosteam", "dragonpulse", "nobleroar", "flamethrower"]}, + ], + eventOnly: true, + }, + ironleaves: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + airslash: ["9M"], + allyswitch: ["9L84"], + brickbreak: ["9M"], + calmmind: ["9M"], + closecombat: ["9M", "9L63"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + focusblast: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + gravity: ["9M"], + helpinghand: ["9M", "9L1"], + hyperbeam: ["9M"], + imprison: ["9M", "9L70"], + irondefense: ["9M"], + leafblade: ["9L49", "9S0"], + leafstorm: ["9M"], + leer: ["9L1"], + magicalleaf: ["9M", "9L7", "9L07"], + megahorn: ["9L77", "9S0"], + nightslash: ["9L28"], + protect: ["9M"], + psyblade: ["9L56", "9S0"], + psychicterrain: ["9M"], + quash: ["9L1"], + quickattack: ["9L1"], + quickguard: ["9L21"], + rest: ["9M"], + retaliate: ["9L14"], + reversal: ["9M"], + sacredsword: ["9L42"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M", "9L91"], + substitute: ["9M"], + swift: ["9M"], + swordsdance: ["9M", "9L35", "9S0"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + wildcharge: ["9M"], + workup: ["9L1"], + xscissor: ["9M"], + }, + eventData: [ + {generation: 9, level: 75, perfectIVs: 3, moves: ["psyblade", "leafblade", "megahorn", "swordsdance"]}, + ], + eventOnly: true, + }, + dipplin: { + learnset: { + astonish: ["9L1"], + bodyslam: ["9M"], + bugbite: ["9M"], + bulletseed: ["9M", "9L20"], + doublehit: ["9L0"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragonpulse: ["9M", "9L32"], + dragontail: ["9M", "9L4"], + endure: ["9M"], + energyball: ["9M", "9L40"], + facade: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M"], + growth: ["9L8"], + gyroball: ["9M"], + hyperbeam: ["9M"], + infestation: ["9L1"], + leafstorm: ["9M"], + outrage: ["9M"], + pollenpuff: ["9M"], + pounce: ["9M"], + protect: ["9M", "9L16"], + recover: ["9L36"], + recycle: ["9L1"], + reflect: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M", "9L44"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + syrupbomb: ["9L28"], + takedown: ["9M"], + terablast: ["9M"], + withdraw: ["9L1"], + }, + }, + poltchageist: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M", "9L42"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + poltchageistartisan: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M", "9L42"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + sinistcha: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + matchagotcha: ["9L0"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + strengthsap: ["9L42"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + sinistchamasterpiece: { + learnset: { + absorb: ["9L6"], + astonish: ["9L1"], + calmmind: ["9M"], + endure: ["9M"], + energyball: ["9M"], + foulplay: ["9M", "9L18"], + gigadrain: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L30"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + leafstorm: ["9M", "9L60"], + lifedew: ["9L12"], + magicalleaf: ["9M"], + matchagotcha: ["9L0"], + megadrain: ["9L24"], + memento: ["9L54"], + nastyplot: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M"], + poltergeist: ["9M"], + protect: ["9M"], + ragepowder: ["9L36"], + reflect: ["9M"], + rest: ["9M"], + scald: ["9M"], + shadowball: ["9M", "9L48"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spite: ["9M"], + strengthsap: ["9L42"], + stunspore: ["9L1"], + substitute: ["9M"], + terablast: ["9M"], + trickroom: ["9M"], + uproar: ["9M"], + withdraw: ["9L1"], + }, + }, + okidogi: { + learnset: { + bite: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["9L48", "9S0"], + bulkup: ["9M", "9L1"], + closecombat: ["9M"], + counter: ["9L32"], + crunch: ["9M", "9L56", "9S0"], + dig: ["9M"], + drainpunch: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focuspunch: ["9M"], + forcepalm: ["9L24"], + gigaimpact: ["9M", "9L72"], + gunkshot: ["9M"], + highhorsepower: ["9M"], + howl: ["9L8"], + hyperbeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + ironhead: ["9M"], + knockoff: ["9M"], + lashout: ["9M"], + lowkick: ["9M", "9L1"], + lowsweep: ["9M"], + metalclaw: ["9M"], + outrage: ["9M"], + poisonfang: ["9L16"], + poisonjab: ["9M", "9L40", "9S0"], + poisontail: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + rest: ["9M"], + reversal: ["9M"], + roar: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + spite: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + superpower: ["9L64", "9S0"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + toxic: ["9M"], + uproar: ["9M"], + }, + eventData: [ + {generation: 9, level: 70, moves: ["superpower", "crunch", "brutalswing", "poisonjab"]}, + ], + eventOnly: true, + }, + munkidori: { + learnset: { + acidspray: ["9M"], + batonpass: ["9M"], + calmmind: ["9M"], + clearsmog: ["9L24"], + confuseray: ["9M"], + confusion: ["9L1"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9L1"], + flatter: ["9L1"], + fling: ["9M"], + focusblast: ["9M"], + futuresight: ["9L64", "9S0"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M", "9L8"], + hex: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + metronome: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M", "9L56", "9S0"], + nightshade: ["9M"], + partingshot: ["9L72"], + poisonjab: ["9M", "9L32"], + poltergeist: ["9M"], + protect: ["9M"], + psybeam: ["9M", "9L16"], + psychic: ["9M", "9L40", "9S0"], + psychicterrain: ["9M"], + psyshock: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L48", "9S0"], + spite: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + swift: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + uproar: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + }, + eventData: [ + {generation: 9, level: 70, moves: ["futuresight", "nastyplot", "sludgewave", "psychic"]}, + ], + eventOnly: true, + }, + fezandipiti: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["9L16"], + beatup: ["9L48", "9S0"], + bravebird: ["9M"], + calmmind: ["9M"], + charm: ["9M"], + crosspoison: ["9L32"], + darkpulse: ["9M"], + dazzlinggleam: ["9M"], + disarmingvoice: ["9M", "9L1"], + doublekick: ["9L1"], + dualwingbeat: ["9M"], + endure: ["9M"], + facade: ["9M"], + flatter: ["9L56", "9S0"], + fly: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + heatwave: ["9M"], + hex: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + moonblast: ["9L72"], + nastyplot: ["9M"], + peck: ["9L1"], + playrough: ["9M"], + poisongas: ["9L1"], + poisonjab: ["9M"], + poisontail: ["9M"], + protect: ["9M"], + quickattack: ["9L8"], + rest: ["9M"], + roost: ["9L64", "9S0"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + spite: ["9M"], + substitute: ["9M"], + swagger: ["9L56", "9S0"], + swift: ["9M"], + swordsdance: ["9M"], + tailslap: ["9L40"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9M"], + uproar: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + wingattack: ["9L24"], + }, + eventData: [ + {generation: 9, level: 70, moves: ["roost", "flatter", "swagger", "beatup"]}, + ], + eventOnly: true, + }, + ogerpon: { + learnset: { + brickbreak: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + counter: ["9L1"], + doublekick: ["9L1"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + fling: ["9M"], + focusenergy: ["9L6"], + followme: ["9L1"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyglide: ["9M"], + grassyterrain: ["9M", "9S1"], + growth: ["9L12", "9S0"], + helpinghand: ["9M"], + hornleech: ["9L1"], + ivycudgel: ["9L30", "9S1", "9S0"], + knockoff: ["9M"], + lashout: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L1"], + lowkick: ["9M", "9S1"], + lowsweep: ["9M", "9L24"], + magicalleaf: ["9M"], + playrough: ["9M"], + powerwhip: ["9L54"], + protect: ["9M"], + quickattack: ["9L1"], + raindance: ["9M"], + rest: ["9M"], + retaliate: ["9L1"], + reversal: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + slam: ["9L18", "9S1", "9S0"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + solarblade: ["9M"], + spikes: ["9M"], + spikyshield: ["9L48"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L60"], + swordsdance: ["9M"], + synthesis: ["9L42"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + throatchop: ["9L36"], + trailblaze: ["9M"], + uturn: ["9M"], + vinewhip: ["9L1", "9S0"], + woodhammer: ["9L66"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 20, nature: "Lonely", ivs: {hp: 31, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["ivycudgel", "slam", "growth", "vinewhip"]}, + {generation: 9, level: 70, nature: "Lonely", ivs: {hp: 31, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["ivycudgel", "lowkick", "slam", "grassyterrain"]}, + ], + eventOnly: true, + }, + ogerponhearthflame: { + eventOnly: true, + }, + ogerponwellspring: { + eventOnly: true, + }, + ogerponcornerstone: { + eventOnly: true, + }, + syclar: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + attract: ["8M", "7M", "4M"], + avalanche: ["9M", "9L31", "8M", "8L31", "7L48", "4M"], + blizzard: ["9M", "8M", "7M", "4M"], + bugbite: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbuzz: ["9M", "9L50", "8M", "8L50", "7L43", "4L42"], + captivate: ["4M"], + confide: ["7M"], + counter: ["9E", "8E", "7E", "4T"], + cut: ["6M", "4M"], + doubleedge: ["9E", "8E", "4T"], + doubleteam: ["7M", "4M"], + earthpower: ["9M", "8M", "8E", "7E", "4T", "4E"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + falseswipe: ["9M", "8M", "7M", "4M"], + fellstinger: ["9E", "8E", "7E"], + fling: ["9M", "8M", "7M", "4M"], + focusenergy: ["9L25", "8M", "8L25", "7L10", "4L13"], + focuspunch: ["9M", "7T"], + frostbreath: ["7M"], + frustration: ["7M", "4M"], + furyattack: ["9L5", "8L5", "7L14", "4L1"], + furycutter: ["9L10", "8L10", "7L23", "4T"], + hail: ["8M", "7M", "7L34", "4M", "4L28"], + hiddenpower: ["7M", "4M"], + honeclaws: ["7M"], + icebeam: ["9M", "8M", "7M", "4M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "7L1"], + iceshard: ["9L15", "8L15", "7L5", "4L8"], + icespinner: ["9M"], + iciclecrash: ["9L45", "8L45", "7L39"], + icywind: ["9M", "9L20", "8M", "8L20", "7T", "7L19", "4T", "4L18"], + leechlife: ["9M", "8M", "7M", "4L5"], + leer: ["9L1", "8L1", "7L1", "4L1"], + naturalgift: ["4M"], + pinmissile: ["9E", "8M", "7E", "6E", "5E", "4E"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M"], + screech: ["8M"], + secretpower: ["7M", "4M"], + sheercold: ["9L55", "8L55", "5L55", "4L49"], + signalbeam: ["7T", "7E"], + silverwind: ["4M"], + skittersmack: ["8T"], + slash: ["9L35", "8L35", "7L28"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "7T", "4T"], + snowscape: ["9M"], + spikes: ["9M", "8M", "7E", "4E"], + strength: ["6M", "5M"], + stringshot: ["9E", "8E", "4T"], + strugglebug: ["9M", "9E", "8E", "7M"], + substitute: ["9M", "8M", "7M", "4M"], + superpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + swagger: ["7M", "4M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "4M"], + tailglow: ["9E", "7E", "6E", "5E", "4E"], + taunt: ["9M", "8M", "7M", "4M"], + terablast: ["9M"], + toxic: ["7M", "4M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "4M"], + waterpulse: ["9M", "6T", "4M"], + xscissor: ["9M", "9L40", "8M", "8L40", "7M", "7L31", "4M", "4L23"], + }, + }, + syclant: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + attract: ["8M", "7M", "4M"], + avalanche: ["9M", "9L33", "8M", "8L33", "7L50", "4M", "4L49"], + blizzard: ["9M", "8M", "7M", "4M"], + brickbreak: ["9M", "8M", "7M", "4M"], + brutalswing: ["8M", "7M"], + bugbite: ["9M", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L60", "8M", "8L60", "7L46", "4L42"], + bulldoze: ["9M", "8M", "7M"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M"], + counter: ["4T"], + cut: ["4M"], + doubleedge: ["4T"], + doubleteam: ["7M", "4M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + falseswipe: ["9M", "8M", "7M", "4M"], + fling: ["9M", "8M", "7M", "4M"], + focusblast: ["9M", "8M", "7M", "4M"], + focusenergy: ["9L25", "8M", "8L25", "7L10", "4L8"], + focuspunch: ["9M", "7T", "6T", "4M"], + frostbreath: ["7M"], + frustration: ["7M", "4M"], + furyattack: ["9L1", "8L1", "7L14", "4L1"], + furycutter: ["9L1", "8L1", "7L23", "4T"], + gigaimpact: ["9M", "8M", "7M", "4M"], + hail: ["8M", "7M", "7L37", "4M", "4L35"], + hiddenpower: ["7M", "4M"], + honeclaws: ["7M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + icebeam: ["9M", "8M", "7M", "4M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "9L1", "8M", "8L1", "7L1", "4T", "4L30"], + iceshard: ["9L15", "8L15", "7L5", "4L5"], + icespinner: ["9M"], + iciclecrash: ["9L53", "8L53", "7L41"], + iciclespear: ["9M", "9L1", "8M", "8L1", "7L1"], + icywind: ["9M", "9L20", "8M", "8L20", "7L19", "4T", "4L18"], + leechlife: ["9M", "8M", "7M", "4L1"], + leer: ["9L1", "8L1", "7L1", "4L1"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + pinmissile: ["8M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M"], + screech: ["8M"], + secretpower: ["7M", "4M"], + sheercold: ["9L67", "8L67", "5L59", "4L60"], + signalbeam: ["7T"], + silverwind: ["4M"], + skittersmack: ["8T"], + slash: ["9L39", "8L39", "7L28", "4L14"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "4T"], + snowscape: ["9M"], + spikes: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "4M"], + strength: ["6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["9M", "7M"], + substitute: ["9M", "8M", "7M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "4M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "4M"], + taunt: ["9M", "8M", "7M", "4M"], + terablast: ["9M"], + toxic: ["7M", "4M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + uturn: ["9M", "8M", "7M", "4M"], + waterpulse: ["9M", "6T", "4M"], + xscissor: ["9M", "9L46", "8M", "8L46", "7M", "7L32", "4M", "4L27"], + }, + }, + revenankh: { + learnset: { + ancientpower: ["9E", "8E", "7E", "6E", "5E", "4E"], + armthrust: ["9L4", "8L4", "7L8", "6L8", "5L8", "4L8"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bind: ["7T", "6T", "5T"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + confuseray: ["9M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9L36", "8L36", "7L28", "6L28", "5L28", "4L28"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + destinybond: ["9E", "8E", "7E", "6E", "5E", "4E"], + detect: ["9L8", "8L8", "7L11", "6L11", "5L11", "4L11"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["8M", "7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["9M", "9L56", "8L60", "7T", "6T", "4M"], + forcepalm: ["9L28", "8L28", "7L15", "6L15", "5L15", "4L15"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + glare: ["9L24", "8L24", "7L21", "6L21", "5L21", "4L21"], + grudge: ["8L52", "7L55", "6L55", "5L55", "4L49"], + hammerarm: ["9L48", "8L48", "7L49", "6L49", "5L49", "4L44"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L32", "8M", "8L32", "7L44", "6L44", "5L44"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["9M", "9L40", "8L40", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + machpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], + meanlook: ["9L16", "8L16", "7L5", "6L5", "5L5", "4L5"], + megapunch: ["8M"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E"], + metronome: ["9M", "8M"], + moonlight: ["9L44", "8L44", "7L66", "6L66", "5L66", "4L60"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7E", "6E", "5E", "4T", "4E"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + phantomforce: ["9M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poltergeist: ["8T"], + poweruppunch: ["6M"], + powerwhip: ["9L52", "8L56", "7L60", "6L60", "5L60", "4L55"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + punishment: ["7L33", "6L33", "5L33", "4L33"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "7L18", "6M", "6L18", "5M", "5L18", "4M", "4L18"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["9M", "9L12", "8M", "8L12", "7L39", "6L39", "5L39", "4L39"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowpunch: ["9L20", "8L20", "7L25", "6L25", "5L25", "4L25"], + shadowsneak: ["9E", "8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + vacuumwave: ["9M", "4T"], + willowisp: ["9M", "8M", "7M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + wrap: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + }, + }, + embirch: { + learnset: { + amnesia: ["9M", "8M", "7L37"], + aromatherapy: ["7E", "4E"], + attract: ["8M", "7M", "4M"], + block: ["9E", "8E", "7T", "4T"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "9L1", "8M", "8L1", "7L1", "4M", "4L1"], + confide: ["7M"], + counter: ["9E", "8E", "7E", "4T", "4E"], + doubleedge: ["9L40", "8L40", "7L1", "7E", "4T", "4L33"], + doubleteam: ["7M", "4M"], + dragonbreath: ["9E", "8E", "7E", "4E"], + dragondance: ["9M", "8M"], + earthpower: ["9M", "8M", "7T"], + ember: ["9L4", "8L4", "7L5", "4L9"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M"], + firespin: ["9M", "8M", "7E", "4L25"], + flamecharge: ["9M", "7M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flamewheel: ["9L16", "8L16", "7L19", "4L17"], + flareblitz: ["9M", "8M"], + flash: ["4M"], + frustration: ["7M", "4M"], + gigadrain: ["9M", "9L20", "8M", "8L20", "7T", "7L32", "4M", "4L21"], + grassknot: ["9M", "8M", "7M", "4M"], + grasswhistle: ["7E", "4E"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7E"], + growth: ["9L12", "8L12", "7L28", "4L5"], + headbutt: ["4T"], + heatcrash: ["9M", "9L44", "8M", "8L44"], + heatwave: ["9M", "8M", "7T", "4T"], + hiddenpower: ["7M", "4M"], + incinerate: ["7M"], + irondefense: ["9M", "8M", "7T", "7L37", "4T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T", "4M"], + lavaplume: ["9L32", "8L32", "7L41", "4L40"], + leechseed: ["9L8", "8L8", "7L10", "4L13"], + lightscreen: ["9M", "8M", "7M", "4M"], + magicalleaf: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["8E", "7M"], + overheat: ["9M", "8M", "7M", "4M"], + petaldance: ["9L36", "8L36", "7L46", "4L29"], + protect: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + revenge: ["8M", "7E", "4E"], + roar: ["7M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "4M"], + sandtomb: ["9M", "8M", "7L23", "7E", "4E"], + secretpower: ["4M"], + seedbomb: ["9M", "9L28", "8M", "8L28", "7T", "4T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "7T", "4T"], + solarbeam: ["9M", "8M", "7M", "4M"], + stealthrock: ["9M", "8M", "7T", "4M"], + strength: ["4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + sweetscent: ["9L1", "8L1", "7L1", "4L1"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "4M"], + synthesis: ["9L25", "8L25", "7T", "7L14", "4T", "4L37"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M", "4M"], + trailblaze: ["9M"], + watersport: ["7E", "4E"], + wildcharge: ["9M", "8M"], + willowisp: ["9M", "8M", "7M", "4M"], + worryseed: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + zenheadbutt: ["9M", "8M"], + }, + }, + flarelm: { + learnset: { + amnesia: ["9M", "9L39", "8M", "8L39", "7L37"], + ancientpower: ["4T"], + attract: ["8M", "7M", "4M"], + block: ["7T", "4T"], + bulldoze: ["9M", "8M", "7M"], + bulletseed: ["9M", "9L1", "8M", "8L1", "7L1", "4M", "4L1"], + burningjealousy: ["9M", "8T"], + confide: ["7M"], + counter: ["4T"], + doubleedge: ["9L56", "8L56", "7L1", "4T"], + doubleteam: ["7M", "4M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "7M"], + earthpower: ["9M", "8M", "7T", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + ember: ["9L1", "8L1", "7L5", "4L9"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M", "7M", "4M"], + firespin: ["9M", "8M", "4L28"], + flameburst: ["7L24"], + flamecharge: ["9M", "9L0", "8L0", "7M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flamewheel: ["9L16", "8L16", "7L19", "4L17"], + flareblitz: ["9M", "8M"], + flash: ["4M"], + flashcannon: ["9M", "8M", "7M"], + frustration: ["7M", "4M"], + gigadrain: ["9M", "9L20", "8M", "8L20", "7L32", "4M", "4L21"], + grassknot: ["9M", "8M", "7M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L12", "8L12", "7L28", "4L5"], + headbutt: ["4T"], + heatcrash: ["9M", "9L62", "8M", "8L62"], + heatwave: ["9M", "8M", "7T", "4T"], + hiddenpower: ["7M", "4M"], + incinerate: ["7M"], + irondefense: ["9M", "9L39", "8M", "8L39", "7L37", "4T", "4L40"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T", "4M"], + lavaplume: ["9L44", "8L44", "7L46", "4L48"], + leechseed: ["9L1", "8L1", "7L10", "4L13"], + lightscreen: ["9M", "8M", "7M", "4M"], + lowkick: ["9M", "8M", "7T", "4T"], + magicalleaf: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M"], + overheat: ["9M", "8M", "7M", "4M"], + petaldance: ["9L50", "8L50", "7L50", "4L36"], + protect: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + revenge: ["8M"], + roar: ["7M", "4M"], + rockclimb: ["4M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "4M"], + sandtomb: ["9M", "8M"], + secretpower: ["7M", "4M"], + seedbomb: ["9M", "9L32", "8M", "8L32", "7L23", "4T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "7T", "4T"], + solarbeam: ["9M", "8M", "7M", "4M"], + stealthrock: ["9M", "8M", "7T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + sweetscent: ["9L1", "8L1", "7L1", "4L1"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "4M"], + synthesis: ["9L27", "8L27", "7L14", "4T", "4L44"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M", "4M"], + trailblaze: ["9M"], + wildcharge: ["9M", "8M", "7M"], + willowisp: ["9M", "8M", "7M", "4M"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + pyroak: { + learnset: { + amnesia: ["9M", "9L41", "8M", "8L41", "7L37"], + ancientpower: ["4T"], + aromaticmist: ["9L1", "8L1", "7L59"], + attract: ["8M", "7M", "4M"], + block: ["7T", "4T"], + bulldoze: ["9M", "8M", "7M"], + bulletseed: ["9M", "9L1", "8M", "8L1", "7L1", "4M", "4L1"], + burningjealousy: ["9M", "8T"], + burnup: ["8L72", "7L68"], + confide: ["7M"], + counter: ["4T"], + doubleedge: ["9L1", "8L1", "4T"], + doubleteam: ["7M", "4M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T"], + dragontail: ["9M", "7M"], + earthpower: ["9M", "8M", "7T", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + ember: ["9L1", "8L1", "7L5", "4L9"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "4M"], + facade: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M", "7M", "4M"], + firespin: ["9M", "8M", "4L28"], + flameburst: ["7L24"], + flamecharge: ["9M", "9L1", "8L1", "7M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flamewheel: ["9L16", "8L16", "7L19", "4L17"], + flareblitz: ["9M", "8M", "8L1", "7L1", "4L1"], + flash: ["4M"], + flashcannon: ["9M", "8M", "7M", "7L46"], + frustration: ["7M", "4M"], + gigadrain: ["9M", "9L20", "8M", "8L20", "7L32", "4M", "4L21"], + gigaimpact: ["9M", "8M", "7M", "4M"], + grassknot: ["9M", "8M", "7M", "4M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L12", "8L12", "7L28", "4L5"], + headbutt: ["4T"], + heatcrash: ["9M", "9L64", "8M", "8L64", "7L41"], + heatwave: ["9M", "8M", "7T", "4T"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "4M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + incinerate: ["7M"], + irondefense: ["9M", "9L41", "8M", "8L41", "7L37", "4T", "4L42"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T", "4M"], + lavaplume: ["9L48", "8L48", "7L50", "4L54"], + leechseed: ["9L1", "8L1", "7L10", "4L13"], + lightscreen: ["9M", "8M", "7M", "4M"], + lowkick: ["9M", "8M", "7T", "4T"], + magicalleaf: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M"], + overheat: ["9M", "9L72", "8M", "7M", "4M"], + petalblizzard: ["9L1", "8L1"], + petaldance: ["9L56", "8L56", "7L55", "4L36"], + protect: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + revenge: ["8M"], + roar: ["7M", "4M"], + rockclimb: ["4M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "4M"], + sandtomb: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["7M", "4M"], + seedbomb: ["9M", "9L32", "8M", "8L32", "7L23", "4T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "4T"], + solarbeam: ["9M", "8M", "7M", "4M"], + solarblade: ["9M", "8M"], + stealthrock: ["9M", "8M", "7T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + sweetscent: ["9L1", "8L1", "7L1", "4L1"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "4M"], + synthesis: ["9L27", "8L27", "7L14", "4T", "4L48"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M", "4M"], + trailblaze: ["9M"], + wildcharge: ["9M", "8M", "7M"], + willowisp: ["9M", "8M", "7M", "4M"], + woodhammer: ["9L1", "8L1", "7L1", "4L1"], + worryseed: ["7T", "6T", "5T", "4T"], + zapcannon: ["9L1", "8L1", "7L64", "4L60"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + breezi: { + learnset: { + acrobatics: ["9M", "9L8", "8M", "8L8", "7M", "7L59"], + aerialace: ["9M", "9L16", "8L16", "7M", "7L30", "4M", "4L55"], + afteryou: ["7T"], + attract: ["8M", "7M", "4M"], + block: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bodyslam: ["9M", "8M", "4T", "4L30"], + bounce: ["8M"], + captivate: ["4M"], + confide: ["7M"], + copycat: ["9E", "8E", "7L19", "4L19"], + disable: ["9E", "8E", "7E", "4E"], + doubleedge: ["9E", "8E", "7E", "4T"], + doubleteam: ["7M", "4M"], + encore: ["9M", "9L12", "8M", "8L12", "7L5", "4L5"], + endure: ["9M", "8M", "4M"], + entrainment: ["9E", "8E", "7E"], + facade: ["9M", "8M", "7M", "4M"], + fling: ["9M", "8M", "7M", "4M"], + followme: ["9L28", "8L28", "7E", "4E"], + frustration: ["7M", "4M"], + gastroacid: ["7T", "4T"], + gunkshot: ["9M", "9L52", "8M", "8L52"], + gust: ["9L1", "8L1", "7L1", "4L1"], + healblock: ["7L54", "4L50"], + healingwish: ["9E"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "4T", "4L1"], + hiddenpower: ["7M", "4M"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "4T"], + knockoff: ["9M", "9L24", "8L24", "7L14", "4T", "4L14"], + lightscreen: ["9M", "8M", "7M", "4M"], + luckychant: ["7L55", "4L59"], + magicroom: ["9E", "8M", "7E"], + mefirst: ["7E", "4E"], + metronome: ["9M", "8M", "7E", "4T", "4E"], + mimic: ["7E", "5E"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poisonjab: ["9M", "8M", "7M", "4M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "4M"], + psychup: ["7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + reflect: ["9M", "8M", "7M", "4M"], + rest: ["9M", "9L48", "8M", "8L48", "7M", "7L44", "4M", "4L44"], + return: ["7M", "4M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["9L44", "8M", "8L44", "7M", "7L9", "4M", "4L9"], + sandstorm: ["9M", "8M", "7M", "4M"], + sandtomb: ["9M", "8M", "7E", "6E", "5E", "4E"], + secretpower: ["7M", "4M"], + selfdestruct: ["9E", "8M"], + shadowball: ["9M", "8M", "7M", "4M"], + skillswap: ["9M", "8M", "7M", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + sludgebomb: ["9M", "9L36", "8M", "8L36", "7M", "7L34", "4M", "4L34"], + sludgewave: ["8M"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + speedswap: ["8M"], + spikes: ["9M", "8M", "7E", "4E"], + stealthrock: ["9M", "8M", "7T"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + swift: ["9M", "8M", "4T"], + tailwind: ["9M", "9L4", "8L4", "7L1", "4T", "4L1"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + toxic: ["9M", "9L40", "8L40", "7M", "6M", "5M", "4M"], + toxicspikes: ["9M", "9L20", "8M", "8L20", "7L39", "4L39"], + trickroom: ["9M", "8M", "7M", "4M"], + twister: ["4T"], + uturn: ["9M", "8M", "7M", "4M"], + venoshock: ["9M", "8M", "7M"], + whirlwind: ["9L32", "8L32", "7L25", "4L25"], + wish: ["9E", "8E", "7E", "4E"], + wonderroom: ["9E", "8M", "7E"], + }, + }, + fidgit: { + learnset: { + acrobatics: ["9M", "9L1", "8M", "8L1", "7M"], + aerialace: ["9M", "9L1", "8L1", "7M", "4M"], + afteryou: ["7T"], + attract: ["8M", "7M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "9L28", "8M", "8L28", "7L30", "4T", "4L30"], + bounce: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + captivate: ["4M"], + cometpunch: ["7L1", "4L1"], + confide: ["7M"], + copycat: ["7L19", "4L19"], + dig: ["9M", "8M", "7M"], + doubleedge: ["4T"], + doubleteam: ["7M", "4M"], + drillrun: ["9M", "9L0", "8M", "8L0", "7L1"], + earthpower: ["9M", "9L56", "8M", "8L56", "7L60", "4T", "4L59"], + earthquake: ["9M", "8M", "7M", "4M"], + encore: ["9M", "9L1", "8M", "8L1", "7L5", "4L5"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + fling: ["9M", "8M", "7M", "4M"], + followme: ["9L1", "8L1"], + frustration: ["7M", "4M"], + gastroacid: ["9L1", "8L1", "7T", "4T"], + gigaimpact: ["9M", "8M", "7M", "4M"], + gravity: ["9M", "9L50", "8L50", "7L47", "4T", "4L49"], + gunkshot: ["9M", "9L62", "8M", "8L62"], + gust: ["9L1", "8L1", "7L1", "4L1"], + healblock: ["7L54", "4L53"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7L1", "4T", "4L1"], + hiddenpower: ["7M", "4M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "4T"], + knockoff: ["9M", "9L24", "8L24", "7L14", "4T", "4L14"], + lightscreen: ["9M", "8M", "7M", "4M"], + luckychant: ["7L65", "4L67"], + magicroom: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M", "4T"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poisonjab: ["9M", "8M", "7M", "4M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "4M"], + psychup: ["7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + rapidspin: ["9L16", "8L16", "7L9", "4L9"], + reflect: ["9M", "8M", "7M", "4M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "4M"], + return: ["7M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + roleplay: ["7T"], + rototiller: ["7L1"], + round: ["8M", "7M"], + safeguard: ["9L1", "8M", "8L1", "7M", "4M"], + sandstorm: ["9M", "8M", "7M", "4M"], + sandtomb: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["7M", "4M"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "7M", "4M"], + skillswap: ["9M", "8M", "7M", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + sludgebomb: ["9M", "9L38", "8M", "8L38", "7M", "7L35", "4M", "4L35"], + sludgewave: ["8M", "7M"], + smartstrike: ["9M", "8M"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + speedswap: ["8M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "8M", "7T", "4M"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + swift: ["9M", "8M", "4T"], + tailwind: ["9M", "9L1", "8L1", "7L1", "4T", "4L1"], + taunt: ["9M", "8M", "7M", "4M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "4M"], + torment: ["7M", "4M"], + toxic: ["9M", "9L44", "8L44", "7M", "6M", "5M", "4M"], + toxicspikes: ["9M", "9L20", "8M", "8L20", "7L41", "4L41"], + trickroom: ["9M", "8M", "7M", "4M"], + twister: ["4T"], + uturn: ["9M", "8M", "7M", "4M"], + venoshock: ["9M", "8M", "7M"], + whirlwind: ["9L32", "8L32", "7L25", "4L25"], + wideguard: ["9L12", "8L12", "7L1"], + wonderroom: ["8M"], + }, + }, + rebble: { + learnset: { + accelerock: ["9L20", "8L20", "7L21"], + acupressure: ["9L40", "8L40", "7L26", "4L20"], + aerialace: ["9M", "7M", "4M"], + ancientpower: ["9L29", "8L29", "7L30", "4T"], + bulldoze: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M", "4M"], + confide: ["7M"], + cut: ["4M"], + dazzlinggleam: ["9M", "8M", "7M"], + defensecurl: ["9L1", "8L1", "7L1", "4L1"], + disable: ["9L16", "8L16", "7L17", "4L17"], + doubleedge: ["9L44", "8L44", "7L41", "4L41"], + doubleteam: ["7M", "4M"], + earthpower: ["9M", "8M", "7T", "7L45", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "4M"], + explosion: ["9L56", "8L56", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + falseswipe: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M", "7M", "4M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flash: ["4M"], + frustration: ["7M", "4M"], + gigadrain: ["9M", "8M", "7T", "4M"], + headbutt: ["4T"], + headsmash: ["9L52", "8L52"], + heatwave: ["9M", "8M", "7T", "4T"], + hiddenpower: ["7M", "4M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + incinerate: ["7M"], + lockon: ["9L48", "8L48", "7L65"], + metalsound: ["9L32", "8L32", "7L50", "4L37"], + meteorbeam: ["8T"], + mudshot: ["9M", "8M", "7L34", "4L25"], + mudslap: ["9M", "9L4", "8L4", "7L8", "4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + powergem: ["9M", "9L36", "8M", "8L36", "7L38", "4L29"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + rockblast: ["9M", "9L12", "8M", "8L12", "7L13", "4L15"], + rockpolish: ["9E", "8E", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + rollout: ["9L8", "8L8", "7L4", "4T", "4L1"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + secretpower: ["7M", "4M"], + shadowball: ["9M", "8M", "7M", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + smackdown: ["9M", "9L1", "8L1", "7M"], + snore: ["8M", "7T", "4T"], + speedswap: ["8M"], + stealthrock: ["9M", "8M", "7T", "4M"], + stoneedge: ["9M", "8M", "7M", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "4L1"], + terablast: ["9M"], + toxic: ["7M", "4M"], + trick: ["9M", "8M", "7T", "4T"], + vacuumwave: ["9M", "9L24", "8L24", "7L60", "4T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + tactite: { + learnset: { + accelerock: ["9L20", "8L20", "7L21"], + acupressure: ["9L48", "8L48", "7L26", "4L20"], + aerialace: ["9M", "7M", "4M"], + ancientpower: ["9L31", "8L31", "7L30", "4T"], + bulldoze: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M", "4M"], + confide: ["7M"], + cut: ["4M"], + dazzlinggleam: ["9M", "8M", "7M"], + defensecurl: ["9L1", "8L1", "7L1", "4L1"], + disable: ["9L16", "8L16", "7L17", "4L17"], + doubleedge: ["9L54", "8L54", "7L43", "4L43"], + doubleteam: ["7M", "4M"], + earthpower: ["9M", "8M", "7T", "7L47", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "4M"], + explosion: ["9L72", "8L72", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + falseswipe: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M", "7M", "4M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flash: ["4M"], + frustration: ["7M", "4M"], + gigadrain: ["9M", "8M", "7T", "4M"], + headbutt: ["4T"], + headsmash: ["9L66", "8L66", "4L67"], + heatwave: ["9M", "8M", "7T", "4T"], + hiddenpower: ["7M", "4M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + incinerate: ["7M"], + lockon: ["9L60", "8L60", "7L63"], + metalsound: ["9L36", "8L36", "7L51", "4L51"], + meteorbeam: ["8T"], + mudshot: ["9M", "8M", "7L34", "4L25"], + mudslap: ["9M", "9L1", "8L1", "7L8", "4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + powergem: ["9M", "9L42", "8M", "8L42", "7L39", "4L29"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + rockblast: ["9M", "9L12", "8M", "8L12", "7L13", "4L15"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + rollout: ["9L1", "8L1", "7L4", "4T", "4L1"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + secretpower: ["7M", "4M"], + shadowball: ["9M", "8M", "7M", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + smackdown: ["9M", "9L1", "8L1", "7M"], + smartstrike: ["9M", "8M"], + snore: ["8M", "7T", "4T"], + speedswap: ["8M", "7L55"], + stealthrock: ["9M", "8M", "7T", "4M"], + stoneedge: ["8M", "7M", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "4L1"], + terablast: ["9M"], + toxic: ["7M", "4M"], + trick: ["9M", "8M", "7T", "4T"], + vacuumwave: ["9M", "9L24", "8L24", "7L60", "4T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + stratagem: { + learnset: { + accelerock: ["9L20", "8L20", "7L21"], + acupressure: ["9L48", "8L48", "7L26", "4L20"], + aerialace: ["9M", "7M", "4M"], + ancientpower: ["9L31", "8L31", "7L30", "4T"], + bulldoze: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M", "4M"], + confide: ["7M"], + cut: ["4M"], + dazzlinggleam: ["9M", "8M", "7M"], + defensecurl: ["9L1", "8L1", "7L1", "4L1"], + disable: ["9L16", "8L16", "7L17", "4L17"], + doubleedge: ["9L54", "8L54", "7L43", "4L32"], + doubleteam: ["7M", "4M"], + earthpower: ["9M", "8M", "7L47", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "4M"], + explosion: ["9L72", "8L72", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + falseswipe: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M", "7M", "4M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flash: ["4M"], + frustration: ["7M", "4M"], + gigadrain: ["9M", "8M", "7T", "4M"], + gigaimpact: ["9M", "8M", "7M", "4M"], + headbutt: ["4T"], + headsmash: ["9L66", "8L66", "7L69", "4L50"], + heatwave: ["9M", "8M", "7T", "4T"], + hiddenpower: ["7M", "4M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + incinerate: ["7M"], + laserfocus: ["8L1", "7L1"], + lockon: ["9L60", "8L60", "7L65"], + metalsound: ["9L36", "8L36", "7L52", "4L37"], + meteorbeam: ["9L1", "8T"], + mudshot: ["9M", "8M", "7L34", "4L25"], + mudslap: ["9M", "9L1", "8L1", "7L8", "4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + paleowave: ["9L0", "8L0", "7L1", "4L42"], + powergem: ["9M", "9L42", "8M", "8L42", "7L39", "4L29"], + protect: ["9M", "8M", "7M", "4M"], + quickguard: ["9L1", "8L1", "7L1"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + rockblast: ["9M", "9L12", "8M", "8L12", "7L13", "4L15"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + rollout: ["9L1", "8L1", "7L4", "4T", "4L1"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + secretpower: ["7M", "4M"], + shadowball: ["9M", "8M", "7M", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + smackdown: ["9M", "9L1", "8L1", "7M"], + smartstrike: ["9M", "8M", "7M"], + snore: ["8M", "7T", "4T"], + speedswap: ["8M", "7L56"], + stealthrock: ["9M", "8M", "7T", "4M"], + stoneedge: ["9M", "8M", "7M", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "4L1"], + terablast: ["9M"], + toxic: ["7M", "4M"], + trick: ["9M", "8M", "7T", "4T"], + vacuumwave: ["9M", "9L24", "8L24", "7L60", "4T"], + weatherball: ["9M", "9L1", "8M", "8L1", "7L1", "4L1"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + privatyke: { + learnset: { + aquacutter: ["9L28"], + aquajet: ["9L16", "8L16", "7L19", "4L27"], + armthrust: ["9L4", "8L4", "7L14", "4L21"], + attract: ["8M", "7M", "4M"], + blizzard: ["9M", "8M", "7M", "4M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "4M"], + brine: ["8M", "4M"], + bubble: ["7L1", "4L1"], + bulkup: ["9M", "8M", "7M", "7E", "4E"], + bulldoze: ["9M", "8M", "7M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L30"], + closecombat: ["9M", "8M", "7E"], + coaching: ["8T"], + confide: ["7M"], + crosschop: ["9E", "8E", "7M", "4E"], + cut: ["4M"], + dive: ["8M", "4T"], + doubleteam: ["7M", "4M"], + drainpunch: ["9M", "8M", "4M"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M", "7M", "4M"], + focuspunch: ["9M", "9L52", "8L52", "7L59", "4M", "4L67"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M", "4M"], + hail: ["8M", "7M", "4M"], + headbutt: ["9L36", "8L36", "7E", "4T", "4E"], + hiddenpower: ["7M", "4M"], + icebeam: ["9M", "8M", "7M", "4M"], + icepunch: ["9M", "8M", "7T", "4T"], + icywind: ["9M", "8M", "7T", "4T"], + knockoff: ["9M", "9L24", "8L24", "7T", "6T", "5T", "4T"], + lashout: ["8T"], + liquidation: ["9M", "9L40"], + lowkick: ["9M", "8M", "7T", "4T"], + lowsweep: ["9M", "8M", "7M"], + machpunch: ["9L16", "8L16", "7L35", "4L32"], + megapunch: ["8M"], + muddywater: ["8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + octazooka: ["8E", "7E", "4E"], + poisonjab: ["9M", "8M", "7M"], + poweruppunch: ["8E", "7M"], + protect: ["9M", "8M", "7M", "4M"], + psychup: ["7M"], + punishment: ["7L55", "4L60"], + raindance: ["9M", "8M", "7M", "4M"], + recover: ["9E", "8E", "7E", "4E"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + revenge: ["8M", "8L28", "7L42", "4L41"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + round: ["8M", "7M"], + safeguard: ["8M"], + scald: ["8M", "8L40", "7M", "7L38"], + scaryface: ["9M", "8M", "7E", "4E"], + secretpower: ["7M", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + sludgebomb: ["9M", "8M", "7M", "4M"], + smokescreen: ["9L12", "8L12", "7L7", "4L7"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + snowscape: ["9M"], + spikes: ["9M", "8M", "7E"], + strength: ["4M"], + submission: ["8L44", "7L48", "4L55"], + substitute: ["9M", "8M", "7M", "4M"], + superpower: ["9L44", "8M", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L32", "8M", "8L32", "7M", "7L24", "4M", "4L36"], + terablast: ["9M"], + thief: ["9M", "9L8", "8M", "8L8", "7M", "7L45", "4M", "4L47"], + throatchop: ["8M"], + thunderpunch: ["9M", "8M", "7T", "4T"], + torment: ["9E", "7M", "6M", "5M", "4M"], + toxic: ["7M", "4M"], + vacuumwave: ["4T"], + waterfall: ["9M", "8M", "7M", "4M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "4M"], + whirlpool: ["8M", "4M"], + wideguard: ["9L48", "8L48", "7L52"], + workup: ["8M", "7M"], + wrap: ["9L1", "8L1", "7L1", "4L1"], + yawn: ["9L20", "8L20", "7L10", "4L1"], + }, + }, + arghonaut: { + learnset: { + aquacutter: ["9L28"], + aquajet: ["9L16", "8L16", "7L19", "4L27"], + armthrust: ["9L1", "8L1", "7L14", "4L21"], + attract: ["8M", "7M", "4M"], + blizzard: ["9M", "8M", "7M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "4M"], + brine: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4M", "4L1"], + bubble: ["7L1", "4L1"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L30"], + circlethrow: ["9L1", "8L1", "7L1"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M"], + crosschop: ["7M"], + crosspoison: ["8M"], + cut: ["4M"], + dive: ["8M", "4T"], + doubleteam: ["7M", "4M"], + drainpunch: ["9M", "8M", "4M"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M", "7M", "4M"], + focusblast: ["9M", "8M", "7M", "4M"], + focuspunch: ["9M", "9L60", "8L60", "7L73", "4M", "4L67"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M", "4M"], + gigaimpact: ["9M", "8M", "7M", "4M"], + gunkshot: ["9M", "8M", "7T", "4T"], + hail: ["8M", "7M", "4M"], + headbutt: ["9L36", "8L36", "4T"], + hiddenpower: ["7M", "4M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + icebeam: ["9M", "8M", "7M", "4M"], + icepunch: ["9M", "8M", "7T", "4T"], + icywind: ["9M", "8M", "7T", "4T"], + knockoff: ["9M", "9L24", "8L24", "7T", "4T"], + lashout: ["8T"], + liquidation: ["9M", "9L42"], + lowkick: ["9M", "8M", "7T", "4T"], + lowsweep: ["9M", "8M", "7M"], + machpunch: ["9L16", "8L16", "7L35", "4L32"], + megapunch: ["8M"], + muddywater: ["8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + poisonjab: ["9M", "8M", "7M"], + poweruppunch: ["7M"], + protect: ["9M", "8M", "7M", "4M"], + psychup: ["7M"], + punishment: ["7L67", "4L60"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + revenge: ["8M", "8L28", "7L46", "4L41"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["4M"], + rocktomb: ["9M", "8M", "7M", "4M"], + round: ["8M", "7M"], + safeguard: ["8M"], + scald: ["8M", "8L42", "7M", "7L40"], + scaryface: ["9M", "8M"], + secretpower: ["7M", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + sludgebomb: ["9M", "8M", "7M", "4M"], + smokescreen: ["9L12", "8L12", "7L7", "4L7"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + snowscape: ["9M"], + spikes: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "4M"], + strength: ["4M"], + submission: ["8L48", "7L56", "4L55"], + substitute: ["9M", "8M", "7M", "4M"], + superpower: ["9L48", "8M", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L32", "8M", "8L32", "7M", "7L24", "4M", "4L36"], + terablast: ["9M"], + thief: ["9M", "9L1", "8M", "8L1", "7M", "7L51", "4M", "4L47"], + throatchop: ["8M"], + thunderpunch: ["9M", "8M", "7T", "4T"], + torment: ["7M", "4M"], + toxic: ["7M", "4M"], + vacuumwave: ["9L1", "8L1", "4T"], + waterfall: ["9M", "8M", "7M", "4M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "4M"], + whirlpool: ["8M", "4M"], + wideguard: ["9L54", "8L54", "7L62"], + workup: ["8M", "7M"], + wrap: ["9L1", "8L1", "7L1", "4L1"], + yawn: ["9L20", "8L20", "7L10", "4L1"], + }, + }, + nohface: { + learnset: { + assurance: ["8M"], + attract: ["8M", "7M", "4M"], + captivate: ["4M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + confuseray: ["9M"], + copycat: ["9L20", "8L20", "7L22", "4L22"], + curse: ["9E", "8E", "7E", "4E"], + cut: ["7M", "4M"], + darkpulse: ["9M", "8M", "7M", "4M"], + defog: ["9E", "8E", "7E", "4M"], + dig: ["9M", "8M", "7M", "4M"], + doubleteam: ["7M", "4M"], + dreameater: ["7M", "4M"], + embargo: ["7M", "4M"], + endeavor: ["7T", "4T"], + facade: ["9M", "8M", "7M", "4M"], + fakeout: ["9L8", "8L8", "7L27", "4L35"], + falseswipe: ["9M", "8M", "7M", "4M"], + featherdance: ["9E", "8E", "7E", "4E"], + feintattack: ["7L14", "4L14"], + flail: ["9E", "8E", "7E", "4E"], + flash: ["7M", "4M"], + fling: ["9M", "8M", "7M", "4M"], + foulplay: ["9M", "8M", "7M"], + frustration: ["7M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + hex: ["9M", "8M", "7E"], + hiddenpower: ["7M", "4M"], + honeclaws: ["9L28", "8L28", "7L31"], + icepunch: ["9M", "8M", "7T", "4T"], + icywind: ["9M", "8M", "7T", "4T"], + irontail: ["9E", "8M", "7E", "6E", "5E", "4M"], + knockoff: ["9M", "9L36", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "4T"], + lick: ["9L4", "8L4", "7L6", "4L6"], + magiccoat: ["7T", "4T"], + memento: ["9L44", "8L44", "7L52", "4L31"], + metalsound: ["9E", "8E", "7E", "4E"], + meteormash: ["9E", "8E", "7E", "4E"], + metronome: ["9M", "8M"], + naturalgift: ["4M"], + nightshade: ["9M"], + odorsleuth: ["7L10", "4L10"], + ominouswind: ["4T"], + painsplit: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "4T"], + payback: ["8M", "7M", "4M"], + perishsong: ["9L48", "8L48", "7L56", "4L55"], + playrough: ["9M", "8M", "7E"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "4M"], + psychoshift: ["8E", "7E", "4E"], + psychup: ["7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + revenge: ["8M", "8L36", "7L39", "4L44"], + roar: ["9M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "4M"], + scratch: ["9L1", "8L1", "7L1", "4L1"], + secretpower: ["7M", "4M"], + shadowball: ["9M", "8M", "7M", "4M"], + shadowclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L35", "4M", "4L40"], + shadowsneak: ["9L16", "8L16", "7L18", "4L18"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + spite: ["9M", "9L12", "8L12", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "4M"], + suckerpunch: ["9E", "8E", "7E", "4T"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + tailwhip: ["9L1", "8L1", "7L1", "4L1"], + taunt: ["9M", "8M", "7M", "4M"], + telekinesis: ["7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "4M"], + thunderpunch: ["9M", "8M", "7T", "4T"], + torment: ["9L24", "8L24", "7M", "4M"], + toxic: ["7M", "4M"], + trick: ["9M", "9L40", "8M", "8L40", "7T", "4T"], + trickroom: ["9M", "8M", "7M", "4M"], + uturn: ["9M", "8M", "7M", "4M"], + willowisp: ["9M", "8M", "7M", "4M"], + wish: ["9E", "8E", "7E"], + yawn: ["9E", "8E", "7E", "4E"], + }, + }, + kitsunoh: { + learnset: { + assurance: ["8M"], + attract: ["8M", "7M", "4M"], + bulldoze: ["9M", "8M", "7M"], + bulletpunch: ["9L1", "8L1", "7L1"], + captivate: ["4M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + confuseray: ["9M"], + copycat: ["9L20", "8L20", "7L22", "4L22"], + cut: ["7M", "4M"], + darkpulse: ["9M", "8M", "7M", "4M"], + defog: ["4M"], + dig: ["9M", "8M", "7M", "4M"], + doubleteam: ["7M", "4M"], + dreameater: ["7M", "4M"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + endeavor: ["7T", "4T"], + facade: ["9M", "8M", "7M", "4M"], + fakeout: ["9L1", "8L1", "7L27", "4L35"], + falseswipe: ["9M", "8M", "7M", "4M"], + feintattack: ["7L14", "4L14"], + flash: ["7M", "4M"], + flashcannon: ["9M", "8M", "7M", "4M"], + fling: ["9M", "8M", "7M", "4M"], + foulplay: ["9M", "8M", "7M"], + frustration: ["7M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "4M"], + headbutt: ["4T"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "4M"], + honeclaws: ["9L28", "8L28", "7L31"], + hyperbeam: ["9M", "8M", "7M", "4M"], + icepunch: ["9M", "8M", "7T", "4T"], + icywind: ["9M", "8M", "7T", "4T"], + irondefense: ["9M", "8M", "7T", "4T"], + ironhead: ["9M", "9L40", "8M", "8L40", "7L43", "4T"], + irontail: ["8M", "4M"], + knockoff: ["9M", "9L36", "7T", "6T", "5T", "4T"], + lastresort: ["7T", "4T"], + lick: ["9L1", "8L1", "7L6", "4L6"], + lowkick: ["9M", "8M", "7T", "4T"], + magiccoat: ["7T", "4T"], + memento: ["9L48", "8L48", "7L52", "4L31"], + metalclaw: ["9M", "9L0", "8L0", "7L1", "4L27"], + metronome: ["9M", "8M"], + naturalgift: ["4M"], + nightshade: ["9M"], + odorsleuth: ["7L10", "4L10"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "4M"], + perishsong: ["9L52", "8L52", "7L56", "4L55"], + playrough: ["9M", "8M", "7E"], + poltergeist: ["9M", "8T"], + protect: ["9M", "8M", "7M", "4M"], + psychup: ["7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + revenge: ["8M", "8L36", "7L39", "4L44"], + roar: ["9M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "4M"], + scratch: ["9L1", "8L1", "7L1", "4L1"], + secretpower: ["7M", "4M"], + shadowball: ["9M", "8M", "7M", "4M"], + shadowclaw: ["9M", "9L32", "8M", "8L32", "7M", "7L35", "4M", "4L40"], + shadowsneak: ["9L16", "8L16", "7L18", "4L18"], + shadowstrike: ["9L44", "8L44", "7L48", "4L49"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + spite: ["9M", "9L12", "8L12", "7T", "6T", "5T", "4T"], + steelbeam: ["9M", "8T"], + strengthsap: ["9L1"], + substitute: ["9M", "8M", "7M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "4M"], + superfang: ["9M", "7T", "6T", "5T", "4T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "4M"], + tailwhip: ["9L1", "8L1", "7L1", "4L1"], + taunt: ["9M", "8M", "7M", "4M"], + telekinesis: ["7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "4M"], + thunderpunch: ["9M", "8M", "7T", "4T"], + torment: ["9L24", "8L24", "7M", "4M"], + toxic: ["7M", "4M"], + trick: ["9M", "9L1", "8M", "8L1", "7T", "4T"], + trickroom: ["9M", "8M", "7M", "4M"], + uturn: ["9M", "8M", "7M", "4M"], + willowisp: ["9M", "8M", "7M", "4M"], + }, + }, + monohm: { + learnset: { + aerialace: ["9M", "7M", "4M"], + aquatail: ["9E", "8E", "7T"], + attract: ["8M", "7M", "4M"], + bide: ["7L1", "4L1"], + blizzard: ["9M", "8M", "7M", "4M"], + captivate: ["4M"], + charge: ["9M", "9L12", "8L12", "7L11", "4L11"], + chargebeam: ["9M", "7M", "4M"], + chillingwater: ["9M"], + confide: ["7M"], + defog: ["9E"], + discharge: ["9L33", "8L33", "7L33", "4L37"], + doubleteam: ["7M", "4M"], + dragonbreath: ["9L20", "8L20", "7L29", "7E", "4E"], + dragonpulse: ["9M", "8M", "7T", "4M"], + dragonrage: ["7L24", "4L7"], + dragontail: ["9M", "9L28", "8L28", "7M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + flash: ["4M"], + focusenergy: ["8M"], + frustration: ["7M", "4M"], + growl: ["9L1", "8L1", "7L1", "4L1"], + hail: ["8M", "7M", "4M"], + headbutt: ["9E", "8E", "4T"], + healbell: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + hiddenpower: ["7M", "4M"], + hydropump: ["9M", "8M", "7E", "4E"], + icebeam: ["9M", "8M", "7M", "4M"], + icywind: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lightscreen: ["9M", "8M", "7M", "4M"], + lockon: ["9L44", "8L44"], + muddywater: ["8M"], + mudslap: ["9M", "9E", "8E", "7E", "4T", "4E"], + naturalgift: ["4M"], + naturepower: ["7M"], + outrage: ["9M", "8M", "4T"], + powdersnow: ["9E", "8E", "7E"], + powergem: ["9M", "8M", "7E", "4E"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "9L36", "8M", "8L36", "7M", "7L37", "4M", "4L19"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + risingvoltage: ["8T"], + roar: ["9M", "9E", "8E", "7M", "6M", "5M", "4M"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + secretpower: ["7M", "4M"], + shockwave: ["7T", "4M"], + signalbeam: ["4T"], + slackoff: ["9L40", "8L40", "7L48", "4L42"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "4T"], + snowscape: ["9M"], + sonicboom: ["7L16", "4L29"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + surf: ["9M", "8M", "7M", "4M"], + swagger: ["7M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L48", "8L48", "7L53", "4L50"], + thunder: ["9M", "9L52", "8M", "8L52", "7M", "7L65", "4M"], + thunderbolt: ["9M", "8M", "7M", "4M"], + thunderfang: ["9M", "8M"], + thundershock: ["9L4", "8L4", "7L11", "4L15"], + thunderwave: ["9M", "9L24", "8M", "8L24", "7M", "4M"], + torment: ["7M", "4M"], + toxic: ["7M", "4M"], + trickroom: ["9M", "8M", "7M", "4M"], + twister: ["9L8", "8L8", "7L7", "4T"], + voltswitch: ["9M", "8M", "7M"], + waterfall: ["9M", "8M", "7M", "4M"], + waterpulse: ["9M", "7T", "4M"], + weatherball: ["9M", "9E", "8M"], + whirlwind: ["9L16", "8L16", "7L1", "4L1"], + wildcharge: ["9M", "8M", "7M"], + zapcannon: ["9L44", "8L44", "7L59", "4L59"], + }, + }, + duohm: { + learnset: { + aerialace: ["9M", "7M", "4M"], + aquatail: ["7T"], + attract: ["8M", "7M", "4M"], + bide: ["7L1", "4L1"], + blizzard: ["9M", "8M", "7M", "4M"], + captivate: ["4M"], + charge: ["9M", "9L12", "8L12", "7L11", "4L11"], + chargebeam: ["9M", "7M", "4M"], + chillingwater: ["9M"], + confide: ["7M"], + discharge: ["9L35", "8L35", "7L33", "4L37"], + doublehit: ["9L0", "8L0", "7L20", "4L22"], + doubleteam: ["7M", "4M"], + dracometeor: ["9M", "8T", "7T", "4T"], + dragonbreath: ["9L20", "8L20", "7L29"], + dragonclaw: ["9M", "8M", "7M", "4M"], + dragonpulse: ["9M", "8M", "7T", "4M"], + dragonrage: ["7L24", "4L7"], + dragontail: ["9M", "9L28", "8L28", "7M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M", "7M", "4M"], + firefang: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flash: ["4M"], + focusenergy: ["8M"], + frustration: ["7M", "4M"], + growl: ["9L1", "8L1", "7L1", "4L1"], + hail: ["8M", "7M", "4M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "4M"], + honeclaws: ["7M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M", "4M"], + icefang: ["9M", "8M"], + icywind: ["9M", "8M", "7T"], + incinerate: ["7M"], + irontail: ["8M", "7T"], + lightscreen: ["9M", "8M", "7M", "4M"], + lockon: ["9L52", "8L52"], + muddywater: ["8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M"], + outrage: ["9M", "8M", "4T"], + powergem: ["9M", "8M"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "4M", "4L19"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + risingvoltage: ["8T"], + roar: ["9M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + secretpower: ["7M", "4M"], + shockwave: ["7T", "4M"], + signalbeam: ["4T"], + slackoff: ["9L46", "8L46", "7L48", "4L42"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "4T"], + snowscape: ["9M"], + sonicboom: ["7L16", "4L29"], + strength: ["4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + surf: ["9M", "8M", "7M", "4M"], + swagger: ["7M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L58", "8L58", "7L53", "4L50"], + thunder: ["9M", "9L64", "8M", "8L64", "7M", "7L65", "4M"], + thunderbolt: ["9M", "8M", "7M", "4M"], + thunderfang: ["9M", "8M"], + thundershock: ["9L1", "8L1", "7L11", "4L15"], + thunderwave: ["9M", "9L24", "8M", "8L24", "7M", "4M"], + torment: ["7M", "4M"], + toxic: ["7M", "4M"], + trickroom: ["9M", "8M", "7M", "4M"], + twister: ["9L1", "8L1", "7L7", "4T"], + voltswitch: ["9M", "8M", "7M"], + waterfall: ["9M", "8M", "7M", "4M"], + waterpulse: ["9M", "7T", "4M"], + weatherball: ["9M", "8M"], + whirlwind: ["9L16", "8L16", "7L1", "4L1"], + wildcharge: ["9M", "8M", "7M"], + zapcannon: ["9L52", "8L52", "7L59", "4L59"], + }, + }, + cyclohm: { + learnset: { + aerialace: ["9M", "7M", "4M"], + aquatail: ["7T"], + attract: ["8M", "7M", "4M"], + bide: ["7L1", "4L1"], + blizzard: ["9M", "8M", "7M", "4M"], + breakingswipe: ["9L1", "8M"], + bulldoze: ["9M", "8M", "7M"], + captivate: ["4M"], + charge: ["9M", "9L12", "8L12", "7L11", "4L11"], + chargebeam: ["9M", "7M", "4M"], + chillingwater: ["9M"], + confide: ["7M"], + discharge: ["9L35", "8L35", "7L33", "4L37"], + doublehit: ["9L1", "8L1", "7L20", "4L22"], + doubleteam: ["7M", "4M"], + dracometeor: ["9M", "8T", "7T", "4T"], + dragonbreath: ["9L20", "8L20", "7L29"], + dragonclaw: ["9M", "8M", "7M", "4M"], + dragonpulse: ["9M", "8M", "7T", "4M"], + dragonrage: ["7L24", "4L7"], + dragontail: ["9M", "9L28", "8L28", "7M"], + earthquake: ["9M", "8M", "7M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + fireblast: ["9M", "8M", "7M", "4M"], + firefang: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "4M"], + flash: ["4M"], + focusenergy: ["8M"], + frustration: ["7M", "4M"], + gigaimpact: ["9M", "8M", "7M", "4M"], + growl: ["9L1", "8L1", "7L1", "4L1"], + hail: ["8M", "7M", "4M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "4M"], + honeclaws: ["7M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + icebeam: ["9M", "8M", "7M", "4M"], + icefang: ["9M", "8M"], + icywind: ["9M", "8M", "7T"], + incinerate: ["7M"], + irontail: ["8M", "7T"], + lightscreen: ["9M", "8M", "7M", "4M"], + lockon: ["9L56", "8L56"], + muddywater: ["8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M"], + outrage: ["9M", "8M", "4T"], + powergem: ["9M", "8M"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "4M", "4L19"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + risingvoltage: ["8T"], + roar: ["9M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + secretpower: ["7M", "4M"], + shockwave: ["7T", "4M"], + signalbeam: ["4T"], + slackoff: ["9L48", "8L48", "7L48", "4L42"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "4T"], + snowscape: ["9M"], + sonicboom: ["7L16", "4L29"], + strength: ["4M"], + substitute: ["9M", "8M", "7M", "4M"], + sunnyday: ["9M", "8M", "7M", "4M"], + surf: ["9M", "8M", "7M", "4M"], + swagger: ["7M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L64", "8L64", "7L53", "4L50"], + thunder: ["9M", "9L72", "8M", "8L72", "7M", "7L65", "4M"], + thunderbolt: ["9M", "8M", "7M", "4M"], + thunderfang: ["9M", "8M"], + thundershock: ["9L1", "8L1", "7L11", "4L15"], + thunderwave: ["9M", "9L24", "8M", "8L24", "7M", "4M"], + torment: ["7M", "4M"], + toxic: ["7M", "4M"], + triattack: ["9L0", "8M", "8L0", "7L1", "4L33"], + trickroom: ["9M", "8M", "7M", "4M"], + twister: ["9L1", "8L1", "7L7", "4T"], + voltswitch: ["9M", "8M", "7M"], + waterfall: ["9M", "8M", "7M", "4M"], + waterpulse: ["9M", "7T", "4M"], + weatherball: ["9M", "8M", "7L42"], + whirlwind: ["9L16", "8L16", "7L1", "4L1"], + wildcharge: ["9M", "8M", "7M"], + zapcannon: ["9L56", "8L56", "7L59", "4L59"], + }, + }, + dorsoil: { + learnset: { + ancientpower: ["4T"], + aquatail: ["9E", "8E", "7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "4M"], + bite: ["9L20", "8L20", "5L10", "4L11"], + block: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L35", "8M", "8L35", "7L42", "4T", "4L22"], + bounce: ["8M", "4T"], + brickbreak: ["9M", "8M", "7M", "4M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + captivate: ["4M"], + chipaway: ["7E"], + confide: ["7M"], + crunch: ["9M", "9L45", "8M", "8L45", "7L58", "4L55"], + darkpulse: ["9M", "8M", "7M", "4M"], + dig: ["9M", "8M", "4M"], + dive: ["8M", "4T"], + doubleedge: ["9E", "8E", "7E", "4T", "4E"], + doubleteam: ["7M", "4M"], + drillrun: ["9M", "8M"], + earthpower: ["9M", "8M", "7T", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + encore: ["9M", "8M", "7E", "4E"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + fakeout: ["9E", "8E", "7E", "4E"], + firefang: ["9M", "8M", "7E", "4E"], + fissure: ["9E", "8E", "7E", "4E"], + flail: ["9E", "8E", "7E", "4E"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M", "4M"], + hiddenpower: ["7M", "4M"], + highhorsepower: ["9M", "8M"], + icespinner: ["9M"], + irontail: ["8M", "7T", "4M"], + knockoff: ["9M", "9L25", "8L25", "7T", "6T", "5T", "4T"], + leer: ["9L1", "8L1", "7L1", "4L1"], + magnitude: ["7L32", "4L42"], + mudshot: ["9M"], + mudslap: ["9M", "9L5", "8L5", "7L16", "4T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + peck: ["9L1", "8L1", "7L1", "4L1"], + protect: ["9M", "8M", "7M", "4M"], + pursuit: ["7L37", "4L29"], + raindance: ["9M", "8M", "7M", "4M"], + rapidspin: ["9L15", "8L15", "7L21", "4L17"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["7M", "4M"], + rocktomb: ["9M", "8M", "7M"], + rollout: ["4T"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + sandtomb: ["9M", "9L10", "8M", "8L10", "7E", "6E", "5E", "4E"], + scorchingsands: ["8T"], + screech: ["8M", "7E", "4E"], + secretpower: ["7M", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snarl: ["9M", "8M", "7M"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + spitup: ["9L40", "8L40", "7L53", "4L48"], + stealthrock: ["9M"], + stockpile: ["9L40", "8L40", "7L53", "4L48"], + strength: ["9L30", "8L30", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + suckerpunch: ["9E", "8E", "7E", "4T", "4E"], + sunnyday: ["9M", "8M", "7M", "4M"], + superpower: ["9E", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + swagger: ["7M", "4M"], + swallow: ["9L40", "8L40", "7L53", "4L48"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "4M"], + terablast: ["9M"], + thunderfang: ["9M", "8M", "7E", "4E"], + torment: ["7M"], + toxic: ["7M", "4M"], + uturn: ["9M", "8M", "7M", "4M"], + wideguard: ["7E"], + }, + }, + colossoil: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "4M"], + bite: ["9L20", "8L20", "5L10", "4L11"], + block: ["7T", "6T", "5T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L35", "8M", "8L35", "7L42", "4T", "4L22"], + bounce: ["8M", "7L48", "4T", "4L35"], + brickbreak: ["9M", "8M", "7M", "4M"], + brutalswing: ["9L1", "8M", "8L1", "7M"], + bulldoze: ["9M", "8M", "7M"], + captivate: ["4M"], + confide: ["7M"], + crunch: ["9M", "9L49", "8M", "8L49", "7L58", "4L55"], + darkpulse: ["9M", "8M", "7M", "4M"], + dig: ["9M", "8M", "4M"], + dive: ["8M", "4T"], + doubleedge: ["4T"], + doubleteam: ["7M", "4M"], + drillrun: ["9M", "9L0", "8M", "8L0", "7L1"], + earthpower: ["9M", "8M", "7T", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + embargo: ["7M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + firefang: ["9M", "8M"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M", "4M"], + furyattack: ["9L1", "8L1", "7L26"], + gigaimpact: ["9M", "8M", "7M", "4M"], + headlongrush: ["9L63"], + hiddenpower: ["7M", "4M"], + highhorsepower: ["9M", "9L1", "8M", "8L1", "7L1"], + hornattack: ["9L1", "8L1", "7L5", "4L6"], + horndrill: ["9L70", "8L63", "7L74", "4L70"], + hyperbeam: ["9M", "8M", "7M", "4M"], + icespinner: ["9M"], + irontail: ["8M", "7T", "4M"], + knockoff: ["9M", "9L25", "8L25", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + leer: ["9L1", "8L1", "7L1", "4L1"], + magnitude: ["7L32", "4L42"], + megahorn: ["9L56", "8M", "8L56", "7L64", "4L63"], + mudshot: ["9M"], + mudslap: ["9M", "9L1", "8L1", "7L16", "4T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "4M"], + peck: ["9L1", "8L1", "7L1", "4L1"], + protect: ["9M", "8M", "7M", "4M"], + pursuit: ["7L37", "4L29"], + raindance: ["9M", "8M", "7M", "4M"], + rapidspin: ["9L15", "8L15", "7L21", "4L17"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + roar: ["9M", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["7M", "4M"], + rocktomb: ["9M", "8M", "7M"], + rollout: ["4T"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M", "4M"], + sandtomb: ["9M", "9L1", "8M", "8L1"], + scorchingsands: ["8T"], + screech: ["8M"], + secretpower: ["7M", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + smartstrike: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snatch: ["7M", "4M"], + snore: ["8M", "7T", "4T"], + spitup: ["9L42", "8L42", "7L53", "4L48"], + stealthrock: ["9M"], + stockpile: ["9L42", "8L42", "7L53", "4L48"], + stoneedge: ["9M", "8M", "7M", "4M"], + strength: ["9L30", "8L30", "4M"], + substitute: ["9M", "8M", "7M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "4M"], + swallow: ["9L42", "8L42", "7L53", "4L48"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "4M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + torment: ["7M"], + toxic: ["7M", "4M"], + uturn: ["9M", "8M", "7M", "4M"], + }, + }, + protowatt: { + learnset: { + bubble: ["7L1", "4L1"], + charge: ["9M", "9L1", "8L1", "7L1", "4L1"], + confuseray: ["9M", "9L10", "8L10", "7L11", "4L11"], + counter: ["9E", "8E", "7E", "4E"], + entrainment: ["9E", "8E", "7E"], + followme: ["9E", "8E", "7E", "4E"], + mefirst: ["7E", "4E"], + metronome: ["7E", "4E"], + mindreader: ["7E", "4E"], + mirrorcoat: ["9E", "8E", "7E", "4E"], + sheercold: ["9E", "8E", "7E", "4E"], + speedswap: ["7E"], + terablast: ["9M"], + thundershock: ["9L5", "8L5", "7L5", "4L5"], + watergun: ["9L1", "8L1"], + }, + }, + krilowatt: { + learnset: { + aquatail: ["9L50", "8L50", "7L1"], + attract: ["8M", "7M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M"], + bubble: ["7L1", "4L1"], + bubblebeam: ["9L0", "8L0", "7L28", "4L28"], + bulldoze: ["9M", "8M", "7M"], + captivate: ["4M"], + charge: ["9M", "9L1", "8L1", "7L1", "4L1"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M", "9L1", "8L1", "7L11", "4L11"], + copycat: ["9L25", "8L25", "7L39", "4L39"], + counter: ["7L33", "4L33"], + cut: ["6M", "5M", "4M"], + discharge: ["9L30", "8L30", "7M", "7L51", "4L51"], + dive: ["8M", "6M", "4T"], + doubleteam: ["7M", "4M"], + earthpower: ["9M", "8M", "7T", "4T"], + earthquake: ["9M", "8M", "7M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + flash: ["4M"], + fling: ["9M", "8M", "7M", "4M"], + flipturn: ["8T"], + frustration: ["7M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "4M"], + guillotine: ["9L60", "8L60", "7L57", "4L57"], + hail: ["8M", "7M", "4M"], + heartswap: ["9S0", "7L53", "4L46"], + helpinghand: ["9M", "8M", "7T", "4T"], + hiddenpower: ["7M", "4M"], + hyperbeam: ["9M", "8M", "7M", "4M"], + icebeam: ["9M", "9S0", "8M", "7M", "6M", "5M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + iceshard: ["9L1", "8L1", "7L1", "4L1"], + icywind: ["9M", "8M", "7T", "4T"], + imprison: ["9M", "9L20", "8M", "8L20", "7L17", "4L17"], + irontail: ["8M", "7T"], + liquidation: ["9M", "8M"], + lowkick: ["9M", "8M", "7T", "4T"], + lowsweep: ["9M", "8M", "7M"], + magneticflux: ["9L1", "8L1", "7L1"], + metronome: ["9M", "8M"], + mindreader: ["8L35"], + mirrorcoat: ["7L24", "4L24"], + muddywater: ["9L40", "8M", "8L40", "7L68", "4L68"], + naturalgift: ["4M"], + payback: ["8M", "7M", "4M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "4M"], + raindance: ["9M", "8M", "7M", "4M"], + recycle: ["7T", "4M"], + rest: ["9M", "8M", "7M", "4M"], + return: ["7M", "4M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + secretpower: ["7T", "4M"], + shockwave: ["7T", "4M"], + signalbeam: ["7T", "4T"], + sleeptalk: ["9M", "8M", "7M", "4M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + speedswap: ["8M"], + substitute: ["9M", "8M", "7M", "4M"], + surf: ["9M", "9S0", "8M", "7M", "4M"], + swagger: ["7M"], + swift: ["9M", "8M", "4T"], + terablast: ["9M"], + thunder: ["9M", "9L55", "8M", "8L55", "7M", "7L63", "4M", "4L63"], + thunderbolt: ["9M", "9S0", "8M", "7M", "4M"], + thunderpunch: ["9M", "8M", "7T", "4T"], + thundershock: ["9L1", "8L1", "7L5", "4L5"], + thunderwave: ["9M", "8M", "7M", "4M"], + torment: ["7M", "4M"], + toxic: ["7M", "4M"], + voltswitch: ["9M", "8M", "7M"], + waterfall: ["9M", "8M", "7M", "4M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "7T", "4M"], + whirlpool: ["9L35", "8M", "7M", "4M"], + wildcharge: ["9M", "9L45", "8M", "8L45", "7M", "7L53"], + }, + eventData: [ + {generation: 9, level: 50, moves: ["surf", "thunderbolt", "icebeam", "heartswap"], pokeball: "pokeball"}, + ], + }, + voodoll: { + learnset: { + acupressure: ["9L48", "8L48", "7L36", "4L40"], + afteryou: ["7T"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "4L1"], + attract: ["8M", "7M", "4M"], + aurasphere: ["9M", "9L36", "8M", "8L36", "7L45", "4L45"], + batonpass: ["9M", "8M", "7E", "4E"], + burningjealousy: ["9M", "8T"], + captivate: ["4M"], + charge: ["9M", "9L20", "8L20", "7L19", "4L19"], + confide: ["7M"], + copycat: ["9L4", "8L4", "7L1", "4L1"], + counter: ["9E", "8E", "7E", "4T"], + darkpulse: ["9M", "8M", "7M", "4M"], + doubleteam: ["7M"], + dreameater: ["7M", "4M"], + echoedvoice: ["9L16", "8L16"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + feintattack: ["7L30", "4L30"], + fling: ["9M", "8M", "7M", "4M"], + followme: ["9L40", "8L40", "7L20", "4L20"], + foulplay: ["9M", "9L54", "8M", "8L52", "7L54"], + frustration: ["7M", "4M"], + grudge: ["8L33", "7L15", "4L15"], + hex: ["9M", "9L28", "8M", "8L28", "7L43"], + hiddenpower: ["7M", "4M"], + hypervoice: ["9M", "8M", "7T"], + imprison: ["9M", "8M", "7E", "4E"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lashout: ["9M", "8T"], + machpunch: ["9E", "8E", "7E", "4E"], + magiccoat: ["7T", "4T"], + magicroom: ["8M", "7T"], + memento: ["9E", "8E", "7E", "4E"], + metronome: ["9M", "8M", "7E", "4T"], + mimic: ["7E", "4E"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "8M", "7E"], + naturalgift: ["4M"], + nightmare: ["7E", "4T"], + painsplit: ["9L44", "8L44", "7L7", "4T", "4L7"], + payback: ["8M", "7M", "4M"], + perishsong: ["9E", "8E", "7E", "4E"], + pinmissile: ["9L8", "8M", "8L8", "7L25", "4L25"], + powertrip: ["9E", "8E", "7E"], + poweruppunch: ["7M"], + protect: ["9M", "8M", "7M", "4M"], + psychic: ["9M", "8M", "7M", "4M"], + pursuit: ["7E", "4E"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + risingvoltage: ["8T"], + rocksmash: ["7M", "4M"], + round: ["8M", "7M"], + screech: ["8M", "7E", "4E"], + secretpower: ["7M", "4M"], + shockwave: ["7T", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + smellingsalts: ["7E", "4E"], + snarl: ["9M", "8M", "7M"], + snatch: ["4M"], + snore: ["8M", "7T", "4T"], + spite: ["9M", "9L12", "8L12", "7T", "7L11", "6T", "5T", "4T", "4L11"], + strength: ["7M", "4M"], + substitute: ["9M", "8M", "7M", "7L50", "4M", "4L50"], + suckerpunch: ["9E", "8E"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "4M"], + tearfullook: ["9L24", "8L24", "7L22"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "4M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M", "4M"], + torment: ["9L33", "7M", "6M", "5M", "4M"], + toxic: ["7M", "4M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + vacuumwave: ["9M", "9E", "8E", "7E", "6E", "5E", "4T", "4E"], + voltswitch: ["9M"], + workup: ["8M", "7M"], + wrap: ["9L1", "8L1", "7L1", "4L1"], + }, + }, + voodoom: { + learnset: { + acupressure: ["9L52", "8L52", "7L40", "4L40"], + afteryou: ["7T"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "4L1"], + attract: ["8M", "7M", "4M"], + aurasphere: ["9M", "9L40", "8M", "8L40", "7L45", "4L45"], + batonpass: ["9M", "8M"], + beatup: ["8M", "7L55", "4L55"], + brickbreak: ["8M", "7M", "4M"], + brutalswing: ["8M"], + bulkup: ["8M", "7M", "4M"], + bulldoze: ["8M", "7M"], + burningjealousy: ["9M", "8T"], + captivate: ["4M"], + charge: ["9M", "9L20", "8L20", "7L19", "4L19"], + closecombat: ["9M", "9L64", "8M", "8L64", "7L35", "4L35"], + coaching: ["8T"], + confide: ["7M"], + copycat: ["9L1", "8L1", "7L1", "4L1"], + counter: ["4T"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M", "7M", "4M"], + doubleteam: ["7M"], + drainpunch: ["9M", "8M", "7T", "4M"], + dreameater: ["7M", "4M"], + earthquake: ["9M", "8M", "7M", "4M"], + echoedvoice: ["9L16", "8L16"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "4M"], + feintattack: ["7L30", "4L30"], + flashcannon: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M", "4M"], + focusblast: ["9M", "8M", "7M", "4M"], + focuspunch: ["9M", "7T", "6T", "4M"], + followme: ["9L1", "8L1", "7L20", "4L20"], + foulplay: ["9M", "9L58", "8M", "8L58", "7L61"], + frustration: ["7M", "4M"], + gigaimpact: ["9M", "8M", "7M", "4M"], + grudge: ["8L35", "7L15", "4L15"], + hex: ["9M", "9L28", "8M", "8L28", "7L48"], + hiddenpower: ["7M", "4M"], + hyperbeam: ["8M", "7M", "4M"], + hypervoice: ["9M", "8M", "7T"], + icepunch: ["9M", "8M", "7T", "4T"], + imprison: ["9M", "8M"], + knockoff: ["9M", "7T", "6T", "5T", "4T"], + lashout: ["9M", "8T"], + lowkick: ["9M", "8M", "7T", "4T"], + lowsweep: ["9M", "8M", "7M"], + magiccoat: ["7T", "4T"], + magicroom: ["8M", "7T"], + metronome: ["9M", "8M", "4T"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["4T"], + nightslash: ["9L1", "8L1", "7M", "7L1", "4L1"], + painsplit: ["9L46", "8L46", "7L1", "4T", "4L1"], + payback: ["8M", "7M", "4M"], + pinmissile: ["9L1", "8M", "8L1", "7L25", "4L25"], + poweruppunch: ["7M"], + protect: ["9M", "8M", "7M", "4M"], + psychic: ["9M", "8M", "7M", "4M"], + rest: ["9M", "8M", "7M", "4M"], + retaliate: ["8M", "7M"], + return: ["7M", "4M"], + revenge: ["8M", "8L0", "7L1", "4L1"], + risingvoltage: ["8T"], + rockslide: ["9M", "8M", "7M", "4M"], + rocksmash: ["7M", "4M"], + round: ["8M", "7M"], + screech: ["8M"], + secretpower: ["7M", "4M"], + shockwave: ["7T", "4M"], + sleeptalk: ["9M", "8M", "7M", "4M"], + smartstrike: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snatch: ["4M"], + snore: ["8M", "7T", "4T"], + spite: ["9M", "9L12", "8L12", "7T", "7L1", "6T", "5T", "4T", "4L1"], + stoneedge: ["9M", "8M", "7M", "4M"], + strength: ["7M", "4M"], + substitute: ["9M", "8M", "7M", "7L50", "4M", "4L50"], + sunnyday: ["9M", "8M", "7M", "4M"], + swagger: ["7M", "4M"], + taunt: ["9M", "8M", "7M", "4M"], + tearfullook: ["9L24", "8L24", "7L22"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "4M"], + throatchop: ["9L1", "8M", "8L1"], + thunderbolt: ["9M", "8M", "7M"], + thunderpunch: ["9M", "8M"], + thunderwave: ["9M", "8M", "7M", "4M"], + torment: ["9L35", "7M", "6M", "5M", "4M"], + toxic: ["7M", "4M"], + uproar: ["9M", "8M", "7T", "6T", "5T", "4T"], + vacuumwave: ["9M", "4T"], + voltswitch: ["9M"], + workup: ["8M", "7M"], + wrap: ["9L1", "8L1", "7L1", "4L1"], + }, + }, + scratchet: { + learnset: { + aerialace: ["9M", "7M", "5M"], + attract: ["8M", "7M", "5M"], + batonpass: ["9M", "8M", "7E", "5E"], + bodypress: ["9M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "9L30", "8M", "7M", "6M", "5M"], + bulkup: ["9M", "9L36", "8M", "8L36", "7M", "7L40", "5M", "5L40"], + bulldoze: ["9M", "8M", "7M", "5M"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M"], + confuseray: ["9M", "9E", "8E", "7M", "7E", "5E"], + doubleteam: ["7M", "5M"], + echoedvoice: ["7M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "5M"], + falseswipe: ["9M", "8M", "7M", "5M"], + flash: ["6M", "5M"], + fling: ["9M", "8M", "7M", "5M"], + focusblast: ["9M", "8M", "7M", "5M"], + focusenergy: ["9L6", "8M", "8L6", "7L13", "7E", "5L13", "5E"], + frustration: ["7M", "7E", "5M"], + furyswipes: ["9L9", "8L9", "7L18", "5L1"], + grassknot: ["9M", "8M", "7M", "5M"], + harden: ["9L1", "8L1", "7L4", "5L9"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M", "5M"], + hypervoice: ["9M", "9L33", "8M", "8L33", "7L36", "5L36"], + irontail: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + memento: ["9E", "8E", "7E", "5E"], + mudslap: ["9M"], + naturepower: ["8E", "7M", "7E", "5E"], + poweruppunch: ["8L3", "6M"], + protect: ["9M", "8M", "7M", "5M"], + quash: ["9E", "8E", "7M", "5M"], + raindance: ["9M", "8M", "7M", "5M"], + rapidspin: ["9E", "8E", "7E", "5E"], + rest: ["9M", "9L24", "8M", "8L24", "7M", "7L53", "5M", "5L53"], + retaliate: ["9L21", "8M", "8L21", "7L57", "6M", "5M", "5L57"], + return: ["7M", "5M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + roar: ["9M", "9L18", "8L18", "7M", "7L23", "7E", "6M", "6E", "5M", "5L23", "5E"], + rockslide: ["9M", "8M", "7M", "5M"], + rocksmash: ["9L12", "8L12", "7T", "7L9", "6M", "5M", "5L18"], + rocktomb: ["9M", "8M", "7M", "5M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "5M"], + safeguard: ["8M", "7M", "5M"], + scratch: ["9L1", "8L1", "7L1"], + secretpower: ["7M"], + sleeptalk: ["9M", "8M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8M", "7T", "7E", "5E"], + strength: ["6M", "5M"], + submission: ["8L30", "7L32", "5L32"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "8M", "7M", "5M"], + superpower: ["9L39", "8M", "8L39", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + swagger: ["7M", "5M"], + takedown: ["9M"], + taunt: ["9M", "9L15", "8M", "8L15", "7M", "7L49", "5M", "5L49"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "5M"], + throatchop: ["8M"], + toxic: ["7M", "5M"], + trailblaze: ["9M"], + workup: ["9L27", "8M", "8L27", "7M", "7L27", "5M", "5L27"], + yawn: ["9E", "8E", "7E", "5E"], + }, + }, + tomohawk: { + learnset: { + acrobatics: ["9M", "8M", "7M", "5M"], + aerialace: ["9M", "9L12", "8L12", "7M", "7L17", "5M", "5L17"], + aircutter: ["9M"], + airslash: ["9M", "9L31", "8M", "8L31", "7L33", "5L37"], + aquatail: ["7T"], + attract: ["8M", "7M", "5M"], + aurasphere: ["9M", "9L1", "8M", "8L1", "7L1", "5L1"], + batonpass: ["9M", "8M"], + bodypress: ["9M"], + bodyslam: ["9M", "8M"], + bravebird: ["9M", "8M"], + brickbreak: ["9M", "9L36", "8M", "7M", "6M", "5M"], + bulkup: ["9M", "9L1", "8M", "8L1", "7M", "5M"], + bulldoze: ["9M", "8M", "7M", "5M"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M"], + confuseray: ["9M", "7M"], + doubleteam: ["7M", "5M"], + dualwingbeat: ["9M", "8T"], + earthquake: ["9M", "8M", "7M", "5M"], + echoedvoice: ["7M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "5M"], + falseswipe: ["9M", "8M", "7M", "5M"], + flash: ["6M", "5M"], + fling: ["9M", "8M", "7M", "5M"], + fly: ["9M", "8M", "7M", "5M"], + focusblast: ["9M", "8M", "7M", "5M"], + focusenergy: ["9L1", "8M", "8L1"], + frustration: ["5M"], + furyswipes: ["9L9", "8L9", "7L1", "5L1"], + gigaimpact: ["9M", "8M", "7M", "5M"], + grassknot: ["9M", "8M", "7M", "5M"], + harden: ["9L1", "8L1", "7L1", "5L1"], + haze: ["9M"], + healingwish: ["9L46", "8L46", "7L60", "5L60"], + heatwave: ["9M", "8M", "7L42", "5L45"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M", "5M"], + hurricane: ["9M", "9L56", "8M", "8L56", "7L51", "5L55"], + hyperbeam: ["9M", "8M", "7M", "5M"], + hypervoice: ["9M", "9L41", "8M", "8L41", "7L45", "5L49"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + morningsun: ["9L15", "8L15", "7L20", "5L20"], + poweruppunch: ["8L1", "6L99"], + protect: ["9M", "8M", "7M", "5M"], + quash: ["7M", "5M"], + raindance: ["9M", "9L21", "8M", "8L21", "7M", "7L29", "5M", "5L29"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L53", "5M", "5L53"], + retaliate: ["9L1", "8M", "8L1", "6M", "5M"], + return: ["7M", "5M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + roar: ["9M", "9L1", "8L1", "7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "5M"], + rocksmash: ["9L1", "8L1", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "5M"], + roost: ["9L26", "8L26", "7M", "6M", "5T"], + round: ["8M", "7M", "5M"], + safeguard: ["8M", "7M", "5M"], + scratch: ["9L1", "8L1", "7L4"], + secretpower: ["7M"], + skyattack: ["9L61", "8L61", "7L55"], + skydrop: ["7M", "7L49", "5M", "5L50"], + sleeptalk: ["9M", "8M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M", "5M"], + stealthrock: ["9M", "8M"], + steelwing: ["8M", "7M"], + stoneedge: ["9M", "8M"], + strength: ["6M", "5M"], + submission: ["8L36", "7L37", "5L42"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "9L15", "8M", "8L15", "7M", "7L1", "5M", "5L1"], + superpower: ["9L51", "8M", "8L51", "7T", "7L50", "6T", "6L51", "5T", "5L51"], + swagger: ["7M", "5M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "5M"], + throatchop: ["8M"], + toxic: ["7M", "5M"], + trailblaze: ["9M"], + whirlwind: ["9L18", "8L18", "7L23", "5L23"], + workup: ["9L1", "8M", "8L1", "7M", "5M"], + }, + }, + necturine: { + learnset: { + attract: ["8M", "7M", "5M"], + calmmind: ["9M", "8M", "7M", "5M"], + confide: ["7M"], + confuseray: ["9M"], + curse: ["9E", "8E", "7E", "5E"], + cut: ["7M", "5M"], + darkpulse: ["9M", "8M", "7M"], + doubleteam: ["7M", "5M"], + dreameater: ["7M", "5M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "5M"], + facade: ["9M", "8M", "7M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "5M"], + futuresight: ["8M", "7E", "5E"], + gigadrain: ["9M", "8M", "7E", "6T", "5E"], + grassknot: ["9M", "8M", "7M", "5M"], + grassyglide: ["8T"], + grassyterrain: ["9M", "9L32", "8M", "8L32", "7L22"], + gravity: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + hex: ["9M", "9L16", "8M", "8L16", "7L18", "5L25"], + hiddenpower: ["7M", "5M"], + ingrain: ["9E", "8E", "7E", "5E"], + leafblade: ["9E", "8M", "7E", "6E", "5E"], + leafstorm: ["9M", "8M", "7E", "5E"], + leechlife: ["9M", "8M", "7M"], + leechseed: ["9L8", "8L8", "7L8"], + leer: ["9L1", "8L1", "7L1", "5L1"], + magicalleaf: ["9M", "9L12", "8M", "8L12", "7L11"], + naturalgift: ["7E", "5L31", "5E"], + naturepower: ["7M"], + nightmare: ["7E", "5E"], + nightshade: ["9M", "9L28", "8L28", "7L26"], + ominouswind: ["7E", "5L7"], + painsplit: ["9L40", "8L40", "7L34", "6T", "5L37"], + payback: ["8M", "7M", "5M"], + powerwhip: ["9L44", "8M", "8L44", "7L50", "5L50"], + protect: ["9M", "8M", "7M", "5M"], + psychic: ["9M", "8M", "7M", "5M"], + psychup: ["7M", "5M"], + rest: ["9M", "8M", "7M", "5M"], + return: ["7M", "5M"], + round: ["8M", "7M", "5M"], + secretpower: ["7M"], + seedbomb: ["9M", "9L24", "8M", "8L24", "7T", "7L39"], + shadowball: ["9M", "9L36", "8M", "8L36", "7M", "7L43", "5M", "5L44"], + shadowsneak: ["9L4", "8L4", "7L4", "5L13"], + shellsmash: ["9E"], + sketch: ["7E", "5E"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M", "5M"], + spite: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "8M", "7M", "5M"], + swagger: ["7M", "5M"], + telekinesis: ["6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "5M"], + torment: ["7M", "5M"], + toxic: ["7M", "5M"], + toxicspikes: ["9M", "9L20", "8M", "8L20", "7L23", "5L19"], + trailblaze: ["9M"], + vinewhip: ["9L1", "8L1", "7L1", "5L1"], + willowisp: ["9M", "9L20", "8M", "8L20", "7M", "7L15", "5M", "5L19"], + worryseed: ["7T"], + }, + }, + necturna: { + learnset: { + attract: ["8M", "7M", "5M"], + calmmind: ["9M", "8M", "7M", "5M"], + confide: ["7M"], + confuseray: ["9M"], + crunch: ["9M", "8M"], + cut: ["7M", "5M"], + darkpulse: ["9M", "8M", "7M"], + doubleteam: ["7M", "5M"], + dreameater: ["7M", "5M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "5M"], + facade: ["9M", "8M", "7M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "5M"], + futuresight: ["8M"], + gigadrain: ["8M", "6T"], + gigaimpact: ["9M", "8M", "7M", "5M"], + grassknot: ["9M", "8M", "7M", "5M"], + grassyglide: ["8T"], + grassyterrain: ["9M", "9L34", "8M", "8L34", "7L34"], + gravity: ["9M", "7T", "6T", "5T"], + hex: ["9M", "9L16", "8M", "8L16", "7L28", "5L25"], + hiddenpower: ["7M", "5M"], + hornleech: ["9L0", "8L0", "7L1", "5L31"], + hyperbeam: ["9M", "8M", "7M", "5M"], + leafblade: ["8M"], + leafstorm: ["9M", "8M"], + leechlife: ["9M", "8M", "7M"], + leechseed: ["9L1", "8L1", "7L12"], + leer: ["9L1", "8L1", "7L1", "5L1"], + magicalleaf: ["9M", "9L12", "8M", "8L12", "7L17"], + naturepower: ["7M"], + nightshade: ["9M", "9L28", "8L28", "7L39"], + ominouswind: ["5L7"], + painsplit: ["9L46", "8L46", "7L45", "6T", "5L40"], + payback: ["8M", "7M", "5M"], + poisonfang: ["9L1", "8L1", "7L1", "5L1"], + powerwhip: ["9L52", "8M", "8L52", "7L56", "5L60"], + protect: ["9M", "8M", "7M", "5M"], + psychic: ["9M", "8M", "7M", "5M"], + psychup: ["7M", "5M"], + rest: ["9M", "8M", "7M", "5M"], + return: ["7M", "5M"], + round: ["8M", "7M", "5M"], + secretpower: ["7M"], + seedbomb: ["9M", "9L24", "8M", "8L24", "7T"], + shadowball: ["9M", "9L40", "8M", "8L40", "7M", "7L50", "5M", "5L50"], + shadowclaw: ["9M", "8M", "7M", "5M"], + shadowsneak: ["9L1", "8L1", "7L6", "5L13"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M", "5M"], + solarblade: ["9M", "8M"], + spite: ["9M", "7T", "6T", "5T"], + stoneedge: ["9M", "8M", "7M", "5M"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "8M", "7M", "5M"], + superfang: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "5T", "5L1"], + swagger: ["7M", "5M"], + telekinesis: ["6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "5M"], + thunderfang: ["9M", "9L1", "8M", "8L1", "7L1", "5L1"], + torment: ["7M", "5M"], + toxic: ["7M", "5M"], + toxicspikes: ["9M", "9L20", "8M", "8L20", "7L23", "5L19"], + trailblaze: ["9M"], + vinewhip: ["9L1", "8L1", "7L1", "5L1"], + willowisp: ["9M", "9L20", "8M", "8L20", "7M", "7L23", "5M", "5L19"], + worryseed: ["7T"], + }, + }, + mollux: { + learnset: { + acid: ["9L4", "8L4", "7L4", "5L4"], + acidarmor: ["9L32", "8L32", "7L33", "5L28"], + acidspray: ["9M", "9L12", "8L12", "7L12", "5L12"], + aquaring: ["9E", "8E", "7E", "5E"], + attract: ["8M", "7M", "5M"], + bide: ["7L1", "5L1"], + bind: ["7T"], + calmmind: ["9M", "8M", "7M", "5M"], + charm: ["9M", "8M", "7E", "5E"], + clearsmog: ["9L24", "8L24", "7L25", "5L20"], + confide: ["7M"], + confuseray: ["9M", "9L8", "8L8", "7L17", "5L17"], + corrosivegas: ["8T"], + doubleteam: ["7M", "5M"], + drainingkiss: ["9M", "9L16", "8M", "8L16", "7L20", "7E"], + ember: ["9L1", "8L1", "7L1", "5L1"], + endure: ["9M", "8M"], + eruption: ["9L68", "8L68", "7L57", "5L52"], + explosion: ["7M", "5M"], + facade: ["9M", "8M", "7M", "5M"], + finalgambit: ["9L60", "8L60", "7L60", "5L57"], + fireblast: ["9M", "8M", "7M", "5M"], + firespin: ["9M", "8M", "7E", "5E"], + flamecharge: ["9M", "7M", "5M"], + flamethrower: ["9M", "8M", "7M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "5M"], + gastroacid: ["9L56", "8L56", "7M", "6T", "5E"], + gigaimpact: ["9M", "8M", "7M", "5M"], + gunkshot: ["9M", "8M", "7L52", "6T", "5L49"], + healbell: ["7T", "7E", "6T", "6E", "5T", "5E"], + healpulse: ["9E", "8E", "7E", "5E"], + heatwave: ["9M", "8M", "7L36", "6T", "5L33"], + helpinghand: ["9M", "8M", "7E", "6T", "5E"], + hiddenpower: ["7M", "5M"], + hydropump: ["9M"], + hyperbeam: ["9M", "8M", "7M", "5M"], + inferno: ["9L48", "8L48", "7L49", "5L44"], + lavaplume: ["9L28", "8L28", "7L28", "5L25"], + leechlife: ["9M", "8M", "7M"], + lifedew: ["9L20", "8L20"], + lightscreen: ["9M", "8M", "7M", "5M"], + moonlight: ["9L40", "8L40", "7L33", "5L28"], + overheat: ["9M", "8M", "7M", "5M"], + protect: ["9M", "8M", "7M", "5M"], + raindance: ["9M", "8M", "7M", "5M"], + rapidspin: ["9E", "8E", "7E", "5E"], + recover: ["9L52", "8L52", "7L41", "5L36"], + rest: ["9M", "8M", "7M", "5M"], + return: ["7M", "5M"], + round: ["8M", "7M", "5M"], + secretpower: ["7M"], + selfdestruct: ["8M"], + shockwave: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "7E", "5E"], + sludgebomb: ["9M", "8M", "7M", "5M"], + sludgewave: ["9L36", "8M", "8L36", "7M", "5M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M", "5M"], + spotlight: ["7L65"], + stealthrock: ["9M", "8M", "7E", "6T", "5E"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "8M", "7M", "5M"], + swagger: ["7M", "5M"], + swift: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "5M"], + thunder: ["9M", "8M", "7M", "5M"], + thunderbolt: ["9M", "8M", "7M", "5M"], + thunderwave: ["9M", "8M", "7M", "5M"], + toxic: ["9M", "9L64", "8L64", "7M", "6M", "5M"], + toxicspikes: ["9M", "9L44", "8M", "8L44", "7L44", "5L41"], + trick: ["9M", "8M", "7E", "6T", "5E"], + venomdrench: ["8M", "7E"], + venoshock: ["9M", "8M", "7M", "5M"], + willowisp: ["9M", "8M", "7M", "5M"], + withdraw: ["9L1", "8L1", "7L9", "5L9"], + }, + }, + cupra: { + learnset: { + allyswitch: ["8M", "5M"], + ancientpower: ["9L21", "8L21", "7L44", "5L44"], + attract: ["8M", "7M", "5M"], + bugbite: ["9M", "9L15", "8L15", "7T", "7L7", "6T", "5T", "5L7"], + bugbuzz: ["9M", "8M", "7E", "5E"], + calmmind: ["9M"], + closecombat: ["9M", "8M", "7E", "5E"], + confide: ["7M"], + counter: ["9E", "8E", "7E", "5E"], + cut: ["6M", "5M"], + disable: ["9E", "7E", "6E", "5E"], + doubleteam: ["9L9", "8L9", "7M", "5M"], + dreameater: ["7M", "5M"], + echoedvoice: ["7M", "5M"], + electroweb: ["8M", "7T", "5T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "5M"], + feint: ["9E", "8E", "7E", "5E"], + finalgambit: ["9L36", "8L36", "7L38", "5L38"], + flash: ["6M", "5M"], + fling: ["9M", "8M", "7M", "5M"], + frustration: ["7M", "5M"], + hail: ["8M", "7M", "5M"], + healpulse: ["9L18", "8L18", "7L21", "5L21"], + helpinghand: ["9M", "8M", "7T", "5T"], + hiddenpower: ["7M", "5M"], + hydropump: ["9M", "8M", "7E", "5E"], + icywind: ["9M", "8M", "7T", "5T"], + imprison: ["9M", "9L12", "8M", "8L12"], + infestation: ["7M"], + lightscreen: ["9M", "8M", "7M", "5M"], + magiccoat: ["7T", "5T"], + magicroom: ["8M", "7T", "5T"], + megahorn: ["9E", "8M", "7E", "6E", "5E"], + nastyplot: ["9M", "8M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "5M"], + psychic: ["9M", "9L33", "8M", "8L33", "7M", "5M"], + psychicterrain: ["9M", "8M"], + psychup: ["9E", "7M", "6M", "5M"], + psyshock: ["9M", "8M", "7M", "5M"], + raindance: ["9M", "8M", "7M", "5M"], + recycle: ["7T", "5T"], + reflect: ["9M", "8M", "7M", "5M"], + rest: ["9M", "8M", "7M", "5M"], + retaliate: ["8M", "5M"], + return: ["7M", "5M"], + roleplay: ["7T", "5T"], + round: ["8M", "7M", "5M"], + safeguard: ["8M", "7M", "7E", "5M", "5E"], + secretpower: ["7M"], + shadowball: ["9M", "8M", "7M", "5M"], + shockwave: ["7M"], + signalbeam: ["7T"], + skillswap: ["9M", "8M", "7T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + steelwing: ["8M", "7M"], + stringshot: ["9L1", "8L1", "7L1", "5L1"], + strugglebug: ["9M", "9L6", "8L6", "7L27", "5M"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "9L3", "8M", "8L3", "7M", "7L14", "5M", "5L14"], + swagger: ["7M", "5M"], + tackle: ["9L1", "8L1", "7L1", "5L1"], + tailglow: ["9E", "7L60"], + telekinesis: ["5M"], + terablast: ["9M"], + toxic: ["7M", "5M"], + trick: ["9M", "8M", "7T", "5T"], + waterpulse: ["9M", "7T"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L32", "5M", "5L32"], + wingattack: ["7E", "5E"], + wish: ["9L31", "8L31", "7L48", "5L48"], + wonderroom: ["8M", "7T", "5T"], + xscissor: ["9M", "8M", "7M", "5M"], + zenheadbutt: ["9M", "9L27", "8M", "8L27", "7T", "5T", "5L54"], + }, + }, + argalis: { + learnset: { + allyswitch: ["8M", "5M"], + ancientpower: ["9L21", "8L21", "7L47", "5L47"], + attract: ["8M", "7M", "5M"], + bugbite: ["9M", "9L15", "8L15", "7T", "7L7", "6T", "5T", "5L7"], + bugbuzz: ["9M", "8M"], + calmmind: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + cut: ["6M", "5M"], + doubleteam: ["9L9", "8L9", "7M", "5M"], + dreameater: ["7M", "5M"], + echoedvoice: ["7M", "5M"], + electroweb: ["8M", "7T", "5T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "5M"], + finalgambit: ["9L52", "8L52", "7L41", "5L41"], + flash: ["6M", "5M"], + fling: ["9M", "8M", "7M", "5M"], + frustration: ["7M", "5M"], + hail: ["8M", "7M", "5M"], + healpulse: ["9L18", "8L18", "7L21", "5L21"], + helpinghand: ["9M", "8M", "7T", "5T"], + hiddenpower: ["7M", "5M"], + hydropump: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "5T"], + imprison: ["9M", "9L12", "8M", "8L12"], + infestation: ["7M"], + lightscreen: ["9M", "9L37", "8M", "8L37", "7M", "7L57", "5M"], + magiccoat: ["7T", "5T"], + magicroom: ["8M", "7T", "5T"], + megahorn: ["8M"], + nastyplot: ["9M", "9L42", "8M", "8L42"], + ominouswind: ["7L27", "5L27"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "5M"], + psychic: ["9M", "9L47", "8M", "8L47", "7M", "7L62", "5M"], + psychicterrain: ["9M", "8M"], + psychup: ["7M", "5M"], + psyshock: ["9M", "8M", "7M", "5M"], + raindance: ["9M", "8M", "7M", "5M"], + recycle: ["7T", "5T"], + reflect: ["9M", "9L37", "8M", "8L37", "7M", "7L57", "5M"], + rest: ["9M", "8M", "7M", "5M"], + retaliate: ["8M", "5M"], + return: ["7M", "5M"], + roleplay: ["7T", "5T"], + round: ["8M", "7M", "5M"], + safeguard: ["8M", "7M", "5M"], + secretpower: ["7M"], + shadowball: ["9M", "8M", "7M", "5M"], + shockwave: ["7M"], + signalbeam: ["7T"], + skillswap: ["9M", "8M", "7T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + spotlight: ["7L1"], + steelwing: ["8M", "7M"], + stringshot: ["9L1", "8L1", "7L1", "5L1"], + strugglebug: ["9M", "9L1", "8L1", "5M"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "7L14", "5M", "5L14"], + swagger: ["7M", "5M"], + tackle: ["9L1", "8L1", "7L1", "5L1"], + tailglow: ["7L65"], + telekinesis: ["5M"], + terablast: ["9M"], + toxic: ["7M", "5M"], + trick: ["9M", "8M", "7T", "5T"], + waterpulse: ["9M", "7T"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L34", "5M", "5L34"], + wish: ["9L33", "8L33", "7L54", "5L54"], + wonderroom: ["8M", "7T", "5T"], + xscissor: ["9M", "8M", "7M", "5M"], + zenheadbutt: ["9M", "9L27", "8M", "8L27", "7T", "5T"], + }, + }, + aurumoth: { + learnset: { + allyswitch: ["8M", "5M"], + ancientpower: ["9L21", "8L21", "7L47", "5L47"], + attract: ["8M", "7M", "5M"], + blizzard: ["9M", "8M", "7M", "5M"], + bugbite: ["9M", "9L15", "8L15", "7T", "6T", "5T"], + bugbuzz: ["8M"], + calmmind: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + cut: ["6M", "5M"], + doubleteam: ["9L9", "8L9", "7M", "5M"], + dragondance: ["9M", "9L1", "8M", "8L1", "7L1", "5L1"], + dreameater: ["7M", "5M"], + dualwingbeat: ["9M", "8T"], + echoedvoice: ["7M", "5M"], + electroweb: ["8M", "7T", "5T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "5M"], + finalgambit: ["9L61", "8L61", "5L41"], + flash: ["6M", "5M"], + fling: ["9M", "8M", "7M", "5M"], + focusblast: ["9M", "8M", "7M", "5M"], + frustration: ["7M", "5M"], + gigaimpact: ["9M", "8M", "7M", "5M"], + hail: ["8M", "7M", "5M"], + healingwish: ["9L54", "8L54", "7L61", "5L61"], + healpulse: ["9L18", "8L18", "7L21", "5L21"], + helpinghand: ["9M", "8M", "7T", "5T"], + hiddenpower: ["7M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "5M"], + icebeam: ["9M", "8M", "7M", "5M"], + icywind: ["9M", "8M", "7T", "5T"], + imprison: ["9M", "9L12", "8M", "8L12"], + infestation: ["7M"], + lightscreen: ["9M", "9L37", "8M", "8L37", "7M", "5M"], + magiccoat: ["7T", "5T"], + magicroom: ["8M", "7T", "5T"], + megahorn: ["8M"], + nastyplot: ["9M", "9L42", "8M", "8L42"], + ominouswind: ["7L27", "5L27"], + overheat: ["9M", "8M", "7M", "5M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "5M"], + psychic: ["9M", "9L47", "8M", "8L47", "7M", "5M"], + psychicterrain: ["9M", "9L0", "8M", "8L0", "7L1"], + psychup: ["7M", "5M"], + psyshock: ["9M", "8M", "7M", "5M"], + raindance: ["9M", "8M", "7M", "5M"], + recycle: ["7T", "5T"], + reflect: ["9M", "9L37", "8M", "8L37", "7M", "5M"], + rest: ["9M", "8M", "7M", "5M"], + retaliate: ["8M", "5M"], + return: ["7M", "5M"], + roleplay: ["7T", "5T"], + round: ["8M", "7M", "5M"], + safeguard: ["8M", "7M", "5M"], + secretpower: ["7M"], + shadowball: ["9M", "8M", "7M", "5M"], + shockwave: ["7M"], + signalbeam: ["7T"], + silverwind: ["7L1", "5L1"], + skillswap: ["9M", "8M", "7T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "5M"], + spotlight: ["7L1"], + steelwing: ["8M", "7M"], + stringshot: ["9L1", "8L1", "7L1", "5L1"], + strugglebug: ["9M", "9L1", "8L1", "5M"], + substitute: ["9M", "8M", "7M", "5M"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "5M", "5L1"], + surf: ["9M", "8M", "7M", "5M"], + swagger: ["7M", "5M"], + tackle: ["9L1", "8L1", "7L1", "5L1"], + tailglow: ["7L67", "5L67"], + telekinesis: ["5M"], + terablast: ["9M"], + terrainpulse: ["8T"], + thunder: ["9M", "8M", "7M", "5M"], + thunderbolt: ["9M", "8M", "7M", "5M"], + toxic: ["7M", "5M"], + trick: ["9M", "8M", "7T", "5T"], + waterpulse: ["9M", "7T"], + willowisp: ["9M", "9L24", "8M", "8L24", "7M", "7L34", "5M", "5L34"], + wish: ["9L33", "8L33", "7L54", "5L54"], + wonderroom: ["8M", "7T", "5T"], + xscissor: ["9M", "8M", "7M", "5M"], + zenheadbutt: ["9M", "9L27", "8M", "8L27", "7T", "5T"], + }, + }, + brattler: { + learnset: { + aromatherapy: ["8E", "7E", "5E"], + attract: ["8M", "7M", "5M"], + beatup: ["8M", "7E", "5E"], + belch: ["9E", "8E", "7E"], + bind: ["7T", "5T"], + brutalswing: ["8M", "7M"], + confide: ["7M"], + crunch: ["9M", "9L28", "8M", "8L28", "7L43", "5L39"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "5T"], + doubleteam: ["7M", "5M"], + dragontail: ["9M", "7M", "5M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "5M"], + facade: ["9M", "8M", "7M", "5M"], + feint: ["9E", "8E", "7E"], + foulplay: ["9M", "9L44", "8M", "8L44", "7T", "5T"], + frustration: ["7M", "5M"], + gigadrain: ["9M", "8M", "7T", "5T"], + glare: ["9L32", "8L32", "7L1", "7E", "5E"], + grassknot: ["9M", "9L16", "8M", "8L16", "7M", "7L15", "5M", "5L18"], + grassyglide: ["9M", "8T"], + haze: ["9M", "9E", "8E", "7E", "6E", "5E"], + healbell: ["7T", "5T"], + hiddenpower: ["7M", "5M"], + icefang: ["9M", "8M", "7E"], + irontail: ["8M", "7T", "5T"], + knockoff: ["9M", "9E", "8E", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leafblade: ["9L36", "8M", "8L36", "7L26", "5L34"], + leer: ["9L1", "8L1", "7L1"], + nastyplot: ["9M", "8M"], + naturepower: ["7M"], + nightslash: ["9E", "8E", "7E", "5E"], + partingshot: ["9L48", "8L48"], + payback: ["9L8", "8M", "8L8", "7M", "5M"], + poisonpowder: ["9E", "8E", "7E", "5E"], + poisontail: ["9M", "9E", "8E", "7E", "6E", "5E"], + powerwhip: ["9L52", "8M", "8L52", "7L44", "5L50"], + protect: ["9M", "8M", "7M", "5M"], + punishment: ["7L55", "5L55"], + pursuit: ["7L8", "5L1"], + recycle: ["9E", "7T", "6T", "5T"], + rest: ["9M", "8M", "7M", "5M"], + retaliate: ["8M", "7M", "5M"], + return: ["7M", "5M"], + roar: ["9M", "7M", "6M", "5M"], + round: ["8M", "7M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L11", "7E", "5E"], + screech: ["9E", "8M", "7E", "5E"], + secretpower: ["7M"], + seedbomb: ["9M", "8M", "7T", "5T"], + skittersmack: ["8T"], + slam: ["9L24", "8L24", "7L22", "5L30"], + sleeptalk: ["9M", "8M", "7M", "5T"], + snarl: ["9M", "8M", "7M", "5M"], + snore: ["8M", "7T", "5T"], + solarbeam: ["9M", "8M", "7M", "5M"], + spikyshield: ["9L40", "8L40", "7L40"], + spite: ["9M", "9E", "7T", "6T", "5T"], + strength: ["6M", "5M"], + stunspore: ["9E", "8E", "7E", "5E"], + substitute: ["9M", "8M", "7M", "5M"], + suckerpunch: ["9L20", "8L20", "7L18", "5L25"], + sunnyday: ["8M", "7M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["9E", "8E", "7E", "5E"], + synthesis: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + taunt: ["9M", "8M", "7M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "5M"], + thunderfang: ["9M", "8M", "7E"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "5M"], + vinewhip: ["9L4", "8L4", "7L5", "5L1"], + weatherball: ["9M", "8M"], + wildcharge: ["9M", "8M", "7M", "5M"], + worryseed: ["7T", "5T"], + wrap: ["9L1", "8L1", "7L1", "5L1"], + wringout: ["7L49", "5L44"], + }, + }, + malaconda: { + learnset: { + attract: ["8M", "7M", "5M"], + beatup: ["8M"], + bind: ["7T", "5T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M"], + crunch: ["9M", "9L28", "8M", "8L28", "7L43", "5L42"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "5T"], + doubleteam: ["7M", "5M"], + dragontail: ["9M", "7M", "5M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "5M"], + facade: ["9M", "8M", "7M", "5M"], + followme: ["9L1", "8L1", "7L1"], + foulplay: ["9M", "9L50", "8M", "8L50", "7T", "5T"], + frustration: ["7M", "5M"], + gigadrain: ["9M", "8M", "7T", "5T"], + gigaimpact: ["9M", "8M", "7M", "5M"], + glare: ["9L32", "8L32", "7L38"], + grassknot: ["9M", "9L16", "8M", "8L16", "7M", "7L20", "5M", "5L18"], + grassyglide: ["9M", "8T"], + gravapple: ["9L0", "8L0"], + haze: ["9M"], + healbell: ["7T", "5T"], + hiddenpower: ["7M", "5M"], + hyperbeam: ["9M", "8M", "7M", "5M"], + icefang: ["9M", "8M"], + irontail: ["8M", "7T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + lashout: ["9M", "8T"], + leafblade: ["9L38", "8M", "8L38", "7L34", "5L36"], + leer: ["9L1", "8L1", "7L1"], + nastyplot: ["9M", "8M"], + naturepower: ["7M"], + partingshot: ["9L56", "8L56"], + payback: ["9L1", "8M", "8L1", "7M", "5M"], + poisontail: ["9M"], + powerwhip: ["9L1", "8M", "8L1", "7L48", "5L57"], + protect: ["9M", "8M", "7M", "5M"], + punishment: ["7L62", "5L66"], + pursuit: ["7L10", "5L1"], + rapidspin: ["9L1", "8L1", "7L1", "6L1", "5L1"], + recycle: ["7T", "6T", "5T"], + rest: ["9M", "8M", "7M", "5M"], + retaliate: ["8M", "7M", "5M"], + return: ["7M", "5M"], + roar: ["9M", "7M", "6M", "5M"], + round: ["8M", "7M", "5M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L15"], + screech: ["8M"], + secretpower: ["7M"], + seedbomb: ["9M", "8M", "7T", "5T"], + skittersmack: ["8T"], + slam: ["9L24", "8L24", "7L29", "5L30"], + sleeptalk: ["9M", "8M", "7M", "5T"], + snarl: ["9M", "8M", "7M", "5M"], + snore: ["8M", "7T", "5T"], + solarbeam: ["9M", "8M", "7M", "5M"], + solarblade: ["9M", "9L62", "8M", "8L62", "7L66"], + spikyshield: ["9L44", "8L44", "7L52"], + spite: ["9M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "5M"], + suckerpunch: ["9L20", "8L20", "7L24", "5L25"], + sunnyday: ["9M", "8M", "7M", "5M"], + swagger: ["7M", "5M"], + synthesis: ["7T", "6T", "5T"], + taunt: ["9M", "8M", "7M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "5M"], + throatchop: ["8M"], + thunderfang: ["9M", "8M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "5M"], + vinewhip: ["9L1", "8L1", "7L6", "5L1"], + weatherball: ["9M", "8M"], + wildcharge: ["9M", "8M", "7M", "5M"], + worryseed: ["7T", "5T"], + wrap: ["9L1", "8L1", "7L1", "5L1"], + wringout: ["7L57", "5L48"], + }, + }, + cawdet: { + learnset: { + acrobatics: ["9M", "8M", "5M"], + aerialace: ["9M", "9E", "8E", "5M"], + aircutter: ["9M"], + airslash: ["9M", "8M", "7E", "5E"], + assurance: ["8M"], + attract: ["8M", "5M"], + beatup: ["8M"], + block: ["5T"], + brickbreak: ["9M", "8M", "5M"], + brine: ["9L28", "8M", "8L28", "5L42"], + bulletpunch: ["9L8", "8L8", "5L38"], + chillingwater: ["9M"], + confide: ["7M"], + detect: ["9L32", "8L32", "5L26"], + doubleteam: ["5M"], + drainpunch: ["9M", "8M", "5T"], + drillpeck: ["9E", "8E", "7E", "5E"], + endeavor: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "5M"], + flashcannon: ["9M", "9L44", "8M", "8L44", "5M", "5L49"], + fly: ["9M", "8M", "5M"], + frustration: ["5M"], + growl: ["9L4", "8L4", "5L5"], + hiddenpower: ["5M"], + hurricane: ["9M", "9L48", "8M", "8L48", "5L53"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M", "5T"], + knockoff: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + leer: ["9L1", "8L1", "5L1"], + metalclaw: ["9M", "9L12", "8L12", "5L13"], + metalsound: ["9E", "8E", "7E", "5E"], + metronome: ["9M", "8M"], + mirrormove: ["7E", "5E"], + peck: ["9L1", "8L1", "5L1"], + pluck: ["5M"], + protect: ["9M", "8M", "5M"], + psychup: ["5M"], + pursuit: ["7E", "5E"], + quickattack: ["9E", "8E", "7E", "5E"], + quickguard: ["9E", "8E", "7E", "5E"], + raindance: ["9M", "8M", "5M"], + razorwind: ["7E", "5E"], + rest: ["9M", "8M", "5M"], + retaliate: ["8M", "5M"], + return: ["5M"], + rocksmash: ["5M"], + round: ["8M", "5M"], + screech: ["9L16", "8M", "8L16", "5L18"], + shockwave: ["7T"], + skyattack: ["5T"], + skydrop: ["5M"], + sleeptalk: ["9M", "8M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], + snatch: ["5T"], + snore: ["8M", "5T"], + steelbeam: ["9M", "8T"], + steelwing: ["9L36", "8M", "8L36", "5L31"], + strength: ["5M"], + substitute: ["9M", "8M", "5M"], + surf: ["9M", "8M", "5M"], + swagger: ["5M"], + swift: ["9M", "9L20", "8M", "8L20", "5L9"], + tailwind: ["9M", "9L40", "8L40", "5T", "5L45"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["5M"], + waterpulse: ["9M", "7T"], + watersport: ["7E", "5E"], + whirlpool: ["8M"], + wingattack: ["9L24", "8L24", "5L22"], + }, + }, + cawmodore: { + learnset: { + acrobatics: ["9M", "8M", "7M", "5M"], + aerialace: ["9M", "7M", "5M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M", "7M", "5M"], + beatup: ["8M"], + belch: ["9L56", "8L56", "7L52"], + bellydrum: ["9L0", "8L0", "7L1", "5L35"], + block: ["7T", "5T"], + brickbreak: ["9M", "8M", "7M", "5M"], + brine: ["9L28", "8M", "8L28", "7L44", "5L44"], + bulletpunch: ["9L1", "8L1", "7L39", "5L39"], + chillingwater: ["9M"], + confide: ["7M"], + detect: ["9L32", "8L32", "7L26", "5L26"], + doubleteam: ["7M", "5M"], + drainpunch: ["9M", "8M", "7T", "5T"], + dualwingbeat: ["9M", "8T"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "5M"], + flashcannon: ["9M", "9L50", "8M", "8L50", "7M", "7L58", "5M", "5L52"], + fly: ["9M", "8M", "7M", "5M"], + frustration: ["7M", "5M"], + gigaimpact: ["9M", "8M", "7M", "5M"], + growl: ["9L1", "8L1", "7L5", "5L5"], + hiddenpower: ["7M", "5M"], + hurricane: ["9M", "9L62", "8M", "8L62", "7L64", "5L58"], + hyperbeam: ["9M", "8M", "7M", "5M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M", "7T", "5T"], + knockoff: ["9M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "5L1"], + megapunch: ["8M"], + metalclaw: ["9M", "9L12", "8L12", "7L13", "5L13"], + metronome: ["9M", "8M"], + peck: ["9L1", "8L1", "7L1", "5L1"], + pluck: ["7M", "5M"], + protect: ["9M", "8M", "7M", "5M"], + psychup: ["7M", "5M"], + raindance: ["9M", "8M", "7M", "5M"], + rest: ["9M", "8M", "7M", "5M"], + retaliate: ["8M", "7M", "5M"], + return: ["7M", "5M"], + revenge: ["8M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "5M"], + screech: ["9L16", "8M", "8L16", "7L18", "5L18"], + secretpower: ["7M"], + shockwave: ["7T"], + skyattack: ["9L68", "8L68", "7T", "5T"], + skydrop: ["7M", "5M"], + sleeptalk: ["9M", "8M", "7M", "5T"], + smackdown: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "5T"], + snore: ["8M", "7T", "5T"], + steelbeam: ["9M", "8T"], + steelwing: ["9L38", "8M", "8L38", "7M", "7L31", "5L31"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "5M"], + surf: ["9M", "8M", "7M", "5M"], + swagger: ["7M", "5M"], + swift: ["9M", "9L20", "8M", "8L20", "7L9", "5L9"], + tailwind: ["9M", "9L44", "8L44", "5T", "5L48"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + toxic: ["7M", "5M"], + waterpulse: ["9M", "7T"], + whirlpool: ["8M"], + wingattack: ["9L24", "8L24", "7L22", "5L22"], + }, + }, + volkritter: { + learnset: { + absorb: ["9L1", "8L1"], + aquajet: ["9E", "8E", "7E"], + aquaring: ["9L32", "8L32", "6L44"], + assurance: ["8M", "7E", "6E"], + attract: ["8M", "6M"], + bind: ["9L1", "8L1"], + bite: ["9L24", "8L24", "6L1"], + bounce: ["8M", "7T"], + captivate: ["7E", "6E"], + confide: ["6M"], + constrict: ["6L1"], + covet: ["7T"], + destinybond: ["9L44", "8L44", "6L32"], + dive: ["9L28", "8M", "8L28", "6L36"], + doubleteam: ["6M"], + extrasensory: ["9L40", "8L40"], + facade: ["9M", "8M", "6M"], + falseswipe: ["9M", "8M", "6M"], + fireblast: ["9M", "8M", "6M"], + firespin: ["9M", "9L8", "8M", "8L8", "6L18"], + flameburst: ["6L23"], + flamethrower: ["9M", "8M", "6M"], + flareblitz: ["9M"], + flash: ["6M", "6L1"], + flashcannon: ["9M", "8M", "6M"], + fling: ["9M", "8M", "6M"], + flipturn: ["9M", "8T"], + frustration: ["6M"], + heatwave: ["9M", "8M", "6L48"], + hiddenpower: ["6M"], + hydropump: ["9M", "9L48", "8M", "8L48", "6L51"], + incinerate: ["9L20", "8L20", "6M"], + infestation: ["9E", "8E", "7M", "6M"], + leechlife: ["9M", "8M", "6L1"], + memento: ["9L52", "8L52", "6L59"], + muddywater: ["8M"], + overheat: ["9M", "8M", "6M"], + payback: ["8M", "6M"], + pounce: ["9M"], + powergem: ["9M", "9L36", "8M", "8L36", "6L39"], + protect: ["9M", "8M", "6M"], + quash: ["6M"], + raindance: ["9M", "8M", "6M"], + reflect: ["9M", "9L12", "8M", "8L12", "6M", "6L4"], + reflecttype: ["9E", "8E", "7E"], + rest: ["9M", "8M", "6M"], + return: ["6M"], + round: ["8M", "6M"], + scald: ["9M", "8M", "7M", "6M", "6L28"], + scaryface: ["9M", "8M", "7E", "6E"], + scorchingsands: ["8T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "6M"], + snore: ["8M"], + substitute: ["9M", "8M", "6M"], + sunnyday: ["9M", "8M", "6M"], + surf: ["9M", "8M", "6M"], + swagger: ["6M"], + terablast: ["9M"], + thief: ["9M", "8M", "6M"], + tickle: ["9E", "8E", "7E", "6E"], + torment: ["6M"], + toxic: ["6M"], + uturn: ["9M", "8M", "6M"], + waterfall: ["9M", "8M", "6M"], + watergun: ["9L4", "8L4", "6L1"], + waterpulse: ["9M", "9E", "8E", "7E", "6E"], + whirlpool: ["9L16", "8M", "8L16", "6L14"], + willowisp: ["9M", "8M", "6M"], + }, + }, + volkraken: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + aquaring: ["9L32", "8L32", "7L46", "6L46"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + bind: ["9L1", "8L1", "7T"], + bite: ["9L24", "8L24", "7L1", "6L1"], + bounce: ["8M", "7T"], + burningjealousy: ["8T"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1"], + covet: ["7T"], + destinybond: ["9L56", "8L56", "7L32", "6L32"], + dive: ["9L28", "8M", "8L28", "6L37"], + doubleteam: ["7M", "6M"], + extrasensory: ["9L50", "8L50"], + facade: ["9M", "8M", "7M", "6M"], + falseswipe: ["9M", "8M", "7M", "6M"], + fireblast: ["9M", "8M", "7M", "6M"], + firelash: ["9L38", "8L38", "7L35"], + firespin: ["9M", "9L1", "8M", "8L1", "7L18", "6L18"], + flameburst: ["7L23", "6L23"], + flamethrower: ["9M", "8M", "7M", "6M"], + flareblitz: ["9M"], + flash: ["7L1", "6M", "6L1"], + flashcannon: ["9M", "8M", "7M", "6M"], + fling: ["9M", "8M", "7M", "6M"], + flipturn: ["9M", "8T"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + heatwave: ["9M", "8M", "7L51", "6T", "6L51"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L62", "8M", "8L62", "7L56", "6L56"], + hyperbeam: ["9M", "8M", "7M", "6M"], + incinerate: ["9L20", "8L20", "7M"], + infestation: ["7M", "6M"], + leechlife: ["9M", "8M", "7M", "6L1"], + liquidation: ["9M", "8M"], + memento: ["9L68", "8L68", "7L66", "6L66"], + muddywater: ["8M"], + overheat: ["9M", "8M", "7M", "6M"], + payback: ["8M", "7M", "6M"], + pounce: ["9M"], + powergem: ["9M", "9L44", "8M", "8L44", "7L42", "6L42"], + protect: ["9M", "8M", "7M", "6M"], + quash: ["7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + reflect: ["9M", "9L12", "8M", "8L12", "7M", "7L1", "6M", "6L1"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["9M", "9L0", "8M", "8L0", "7M", "7L28", "6M", "6L28"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["7M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L1", "6L1"], + waterpulse: ["9M", "6T"], + whirlpool: ["9L16", "8M", "8L16", "7L14", "6L14"], + willowisp: ["9M", "8M", "7M", "6M"], + wringout: ["7L60"], + }, + }, + snugglow: { + learnset: { + acid: ["9L8", "8L8", "6L12"], + acidspray: ["9M"], + aquatail: ["9E", "8E", "6L32"], + attract: ["8M", "6M"], + aurasphere: ["9M", "8M", "7E"], + block: ["7T"], + chargebeam: ["9M", "7M", "6M"], + chillingwater: ["9M"], + clearsmog: ["9L28", "8L28", "6L22"], + confide: ["6M"], + crosspoison: ["8M"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M", "6M"], + discharge: ["9L36", "8L36", "6L42"], + doubleteam: ["6M"], + eerieimpulse: ["9M", "8M", "6L49"], + electrify: ["9L40", "8L40"], + electroball: ["9M", "8M"], + electroweb: ["8M"], + encore: ["9M", "9L12", "8M", "8L12", "6L16"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "6M"], + flashcannon: ["9M", "8M", "6M"], + frustration: ["6M"], + haze: ["9M", "9E", "8E", "7E", "6E"], + hiddenpower: ["6M"], + iondeluge: ["6L26"], + irontail: ["9M", "8M"], + paraboliccharge: ["9L24", "8L24", "6L36"], + poisonjab: ["9M", "8M"], + poisonsting: ["9L1", "8L1", "6L6"], + poisontail: ["9M", "9L20", "8L20", "6L29"], + protect: ["9M", "8M", "6M"], + psybeam: ["9M", "9L32", "8L32"], + psychic: ["9M", "8M", "6M"], + psyshock: ["9M", "8M", "6M"], + psywave: ["6L39"], + raindance: ["9M", "8M", "6M"], + rest: ["9M", "8M", "6M"], + return: ["6M"], + risingvoltage: ["8T"], + round: ["8M", "6M"], + shockwave: ["9E", "7E", "6E"], + signalbeam: ["7E", "6E"], + sleeptalk: ["9M", "8M", "6M"], + sludgebomb: ["9M", "8M", "6M"], + sludgewave: ["9L44", "8M", "8L44", "7M", "6M"], + snore: ["8M"], + splash: ["9E", "8E", "7E", "6E"], + substitute: ["9M", "8M", "6M"], + supersonic: ["9L4", "8L4", "6L1"], + surf: ["9M"], + swagger: ["6M"], + taunt: ["9M", "8M", "6M"], + terablast: ["9M"], + thunder: ["9M", "9L48", "8M", "8L48", "6M", "6L46"], + thunderbolt: ["9M", "8M", "6M"], + thundershock: ["9L1", "8L1", "6L1"], + thunderwave: ["9M", "9L16", "8M", "8L16", "6M", "6L19"], + toxic: ["9M", "9E", "8E", "7M", "6M"], + venomdrench: ["8M", "7E"], + venoshock: ["9M", "8M", "6M"], + waterpulse: ["9M", "9E", "8E", "7E", "6E"], + wideguard: ["9E", "8E", "7E", "6E"], + wildcharge: ["9M", "8M", "6M"], + zenheadbutt: ["9M", "8M"], + }, + }, + plasmanta: { + learnset: { + acid: ["9L1", "8L1", "7L12", "6L12"], + acidspray: ["9M"], + aquatail: ["7L33", "6T", "6L33"], + attract: ["8M", "7M", "6M"], + aurasphere: ["9M", "8M"], + block: ["7T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + chargebeam: ["9M", "7M", "6M"], + chillingwater: ["9M"], + clearsmog: ["9L28", "8L28", "7L22", "6L22"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crosspoison: ["8M", "7L51", "6L51"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + discharge: ["9L40", "8L40", "7L47", "6L47"], + doubleteam: ["7M", "6M"], + eerieimpulse: ["9M", "8M", "7L65", "6L65"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], + electrify: ["9L46", "8L46"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T"], + encore: ["9M", "9L12", "8M", "8L12", "7L16", "6L16"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flashcannon: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + haze: ["9M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + iondeluge: ["7L26", "6L26"], + irontail: ["8M", "7T"], + liquidation: ["9M", "8M"], + magnetrise: ["9L1", "8L1", "7T"], + paraboliccharge: ["9L24", "8L24", "7L38", "6L38"], + poisonjab: ["9M", "8M", "7M"], + poisonsting: ["9L1", "8L1", "7L1", "6L1"], + poisontail: ["9M", "9L20", "8L20", "7L29", "6L29"], + protect: ["9M", "8M", "7M", "6M"], + psybeam: ["9M", "9L34", "8L34"], + psychic: ["9M", "8M", "7M", "6M"], + psyshock: ["9M", "8M", "7M", "6M"], + psywave: ["7L42", "6L42"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M"], + signalbeam: ["6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["9L52", "8M", "8L52", "7M", "6M"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M", "6M"], + supersonic: ["9L1", "8L1", "7L1", "6L1"], + surf: ["9M"], + swagger: ["9L58", "8L58", "7M", "7L56", "6M", "6L56"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thunder: ["9M", "9L64", "8M", "8L64", "7M", "7L60", "6M", "6L60"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thundershock: ["9L1", "8L1", "7L1", "6L1"], + thunderwave: ["9M", "9L16", "8M", "8L16", "7M", "7L19", "6M", "6L19"], + toxic: ["9M", "7M", "6M"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M"], + waterpulse: ["9M", "6T"], + wildcharge: ["9M", "8M", "7M", "6M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + floatoy: { + learnset: { + attract: ["8M", "6M"], + bite: ["9E", "8E", "7E", "6E"], + blizzard: ["9M", "8M", "6M"], + bodyslam: ["9M", "8M"], + brine: ["9L24", "8M", "8L24", "6L38"], + brutalswing: ["8M"], + bubblebeam: ["9L22", "8L22", "6L23"], + calmmind: ["9M", "8M", "6M"], + chillingwater: ["9M"], + confide: ["6M"], + crunch: ["9M", "8M"], + dive: ["8M", "6M"], + doubleteam: ["6M"], + dragonbreath: ["9L18", "8L18", "6L1"], + dragonclaw: ["9M", "8M", "6M"], + dragondance: ["9M", "8M", "7E", "6E"], + dragonpulse: ["9M", "8M", "6T"], + drillpeck: ["9L30", "8L30", "6L27"], + echoedvoice: ["6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "6M"], + featherdance: ["9E", "8E", "7E", "6E"], + feint: ["9E", "8E", "7E", "6E"], + focusenergy: ["8M"], + frustration: ["6M"], + gust: ["9L6", "8L6", "6L1"], + hail: ["8M", "6M"], + haze: ["9M", "9E", "8E", "7E", "6E"], + hiddenpower: ["6M"], + hurricane: ["9M", "8M"], + hydropump: ["9M", "9L39", "8M", "8L39", "6L50"], + icebeam: ["9M", "8M", "6M"], + icefang: ["9M", "8M", "7E", "6E"], + icepunch: ["9M", "8M", "6T"], + iciclecrash: ["9L36", "8L36", "6L42"], + iciclespear: ["9E", "8M", "7E", "6E"], + icywind: ["9M", "8M", "6T"], + ironhead: ["9M", "9L33", "8M", "8L33", "6T", "6L53"], + irontail: ["8M", "7E", "6T", "6E"], + metalclaw: ["9M", "9L9", "8L9", "6L11"], + metronome: ["9M", "8M", "7E", "6E"], + muddywater: ["9E", "8M", "7E", "6E"], + peck: ["9L1", "8L1", "6L1"], + protect: ["9M", "9L42", "8M", "8L42", "6M"], + psychicfangs: ["9M", "8M", "7E"], + raindance: ["9M", "8M", "6M"], + refresh: ["7E", "6E"], + rest: ["9M", "8M", "6M"], + return: ["6M"], + rocksmash: ["6M"], + round: ["8M", "6M"], + scald: ["9M", "8M", "7M", "6M"], + scaryface: ["9M", "9L15", "8M", "8L15", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + slackoff: ["9L27", "8L27", "6L39"], + sleeptalk: ["9M", "8M", "6M"], + snore: ["8M", "6T"], + snowscape: ["9M"], + splash: ["9L1", "8L1", "6L1"], + substitute: ["9M", "8M", "6M"], + surf: ["9M", "8M", "6M"], + swagger: ["6M"], + taunt: ["9M", "8M", "6M"], + terablast: ["9M"], + thunderfang: ["9M", "8M", "7E", "6E"], + toxic: ["6M"], + waterfall: ["9M", "8M", "6M"], + watergun: ["9L3", "8L3", "6L7"], + waterpulse: ["9M", "9L12", "8L12", "7E", "6T", "6E"], + whirlpool: ["8M", "7E", "6E"], + }, + }, + caimanoe: { + learnset: { + attract: ["8M", "6M"], + blizzard: ["9M", "8M", "6M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brine: ["9L28", "8M", "8L28", "6L43"], + brutalswing: ["8M"], + bubblebeam: ["9L24", "8L24", "6L25"], + calmmind: ["9M", "8M", "6M"], + chillingwater: ["9M"], + confide: ["6M"], + crunch: ["9M", "8M"], + dive: ["8M", "6M"], + doubleteam: ["6M"], + dragonbreath: ["9L18", "8L18", "6L1"], + dragonclaw: ["9M", "8M", "6M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "6T"], + drillpeck: ["9L38", "8L38", "6L31"], + echoedvoice: ["6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "6M"], + flashcannon: ["9M", "8M", "6M", "6L35"], + focusenergy: ["8M"], + frustration: ["6M"], + gust: ["9L1", "8L1", "6L1"], + hail: ["8M", "6M"], + haze: ["9M"], + heavyslam: ["9M", "8M"], + hiddenpower: ["6M"], + hurricane: ["9M", "8M"], + hydropump: ["9M", "9L53", "8M", "8L53", "6L60"], + icebeam: ["9M", "8M", "6M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "6T"], + iciclecrash: ["9L48", "8L48", "6L47"], + iciclespear: ["8M"], + icywind: ["9M", "8M", "6T"], + irondefense: ["9M", "8M", "6T"], + ironhead: ["9M", "9L43", "8M", "8L43", "6T", "6L58"], + irontail: ["8M", "6T"], + metalclaw: ["9M", "9L9", "8L9", "6L11"], + metalsound: ["9L0", "8L0", "6L21"], + metronome: ["9M", "8M"], + muddywater: ["8M"], + peck: ["9L1", "8L1", "6L1"], + protect: ["9M", "9L58", "8M", "8L58", "6M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M", "6M"], + rest: ["9M", "8M", "6M"], + retaliate: ["8M", "6M"], + return: ["6M"], + rocksmash: ["6M"], + round: ["8M", "6M"], + scald: ["9M", "8M", "7M", "6M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L15", "8M", "8L15", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + selfdestruct: ["8M", "6L62"], + slackoff: ["9L33", "8L33", "6L39"], + sleeptalk: ["9M", "8M", "6M"], + snore: ["8M", "6T"], + snowscape: ["9M"], + splash: ["9L1", "8L1", "6L1"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + strength: ["6M"], + substitute: ["9M", "8M", "6M"], + surf: ["9M", "8M", "6M"], + swagger: ["6M"], + taunt: ["9M", "8M", "6M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "6T"], + toxic: ["6M"], + waterfall: ["9M", "8M", "6M"], + watergun: ["9L1", "8L1", "6L7"], + waterpulse: ["9M", "9L12", "8L12", "6T"], + whirlpool: ["8M"], + }, + }, + naviathan: { + learnset: { + attract: ["8M", "7M", "6M"], + blizzard: ["9M", "8M", "7M", "6M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brine: ["9L28", "8M", "8L28", "7L45", "6L45"], + brutalswing: ["8M", "7M"], + bubblebeam: ["9L24", "8L24", "7L25", "6L25"], + calmmind: ["9M", "8M", "7M", "6M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "8M"], + dive: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + dragonbreath: ["9L18", "8L18", "7L1", "6L1"], + dragonclaw: ["9M", "8M", "7M", "6M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "6T"], + drillpeck: ["9L38", "8L38", "7L31", "6L31"], + echoedvoice: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flashcannon: ["9M", "8M", "7M", "7L35", "6M", "6L35"], + focusenergy: ["8M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gust: ["9L1", "8L1", "7L1", "6L1"], + hail: ["8M", "7M", "6M"], + haze: ["9M"], + heavyslam: ["9M", "9L66", "8M", "8L66", "7L1"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M", "8M", "7L64", "6L64"], + hydropump: ["9L59", "8M", "8L59", "7L60", "6L60"], + hyperbeam: ["9M", "8M", "7M", "6M"], + icebeam: ["9M", "8M", "7M", "6M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "6T"], + iciclecrash: ["9L52", "8L52", "7L52", "6L51"], + iciclespear: ["8M"], + icywind: ["9M", "8M", "6T"], + irondefense: ["9M", "8M", "6T"], + ironhead: ["9M", "9L45", "8M", "8L45", "7L65", "6T", "6L65"], + irontail: ["8M", "6T"], + metalclaw: ["9M", "9L9", "8L9", "7L11", "6L11"], + metalsound: ["9L1", "8L1", "7L21", "6L21"], + metronome: ["9M", "8M"], + muddywater: ["8M"], + peck: ["9L1", "8L1", "7L1", "6L1"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "6M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + retaliate: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rocksmash: ["7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["9M", "8M", "7M", "6M"], + scaleshot: ["9M", "8T"], + scaryface: ["9M", "9L15", "8M", "8L15", "7L1", "6L1"], + screech: ["8M"], + secretpower: ["7M"], + selfdestruct: ["8M", "7L74", "6L74"], + slackoff: ["9L33", "8L33", "7L39", "6L39"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "6T"], + snowscape: ["9M"], + splash: ["9L1", "8L1", "7L1", "6L1"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "6T"], + toxic: ["7M", "6M"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L7", "6L7"], + waterpulse: ["9M", "9L12", "8L12", "6T"], + wavecrash: ["9L73"], + whirlpool: ["9L1", "8M", "8L1"], + wideguard: ["9L1", "8L1", "7L54", "6L54"], + wildcharge: ["9M", "8M", "7M", "6M"], + }, + }, + crucibelle: { + learnset: { + acidarmor: ["9L40", "8L40", "7L32", "6L32"], + acidspray: ["9M"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + block: ["9E", "8E", "6T"], + coil: ["9L1", "8L1", "7E", "6E"], + confide: ["7M"], + confuseray: ["9M", "9L8", "8L8", "7L16", "6L16"], + confusion: ["9L16", "8L16", "7L14", "6L14"], + crosspoison: ["8M"], + defensecurl: ["9E", "8E", "7E", "6E"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "8M"], + embargo: ["7M", "6M"], + endure: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + explosion: ["9L68", "8L68", "7M", "7L60", "6M", "6L60"], + facade: ["9M", "8M", "7M", "6M"], + faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + gravity: ["9M", "7T", "6T"], + gunkshot: ["9M", "9L64", "8M", "8L64", "7L56", "6T", "6L56"], + helpinghand: ["9M", "8M", "6T"], + hex: ["9M", "9L48", "8M", "8L48", "7L44", "6L44"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + infestation: ["7M", "6M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M", "6T"], + knockoff: ["9E"], + lightscreen: ["9M", "8M"], + magicroom: ["8M", "6T"], + meteorbeam: ["8T"], + metronome: ["9M", "8M"], + payback: ["8M", "7M", "6M"], + pinmissile: ["8M"], + poisonjab: ["9M", "8M", "7M", "6M"], + powergem: ["9M", "8M"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1"], + psybeam: ["9M", "9L32", "8L32", "7L40", "6L40"], + psychic: ["9M", "8M", "7M", "6M"], + reflect: ["9M", "8M", "7M", "7L25", "6M", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockblast: ["9M", "9L12", "8M", "8L12", "7L52", "6L52"], + rockpolish: ["9E", "8E", "7M", "6M"], + rockslide: ["9M", "9L52", "8M", "8L52", "7M", "7L36", "6M", "6L36"], + rocksmash: ["7M", "6M"], + rockthrow: ["9L4", "8L4", "7L5", "6L5"], + rocktomb: ["9M", "8M", "7M", "6M"], + rollout: ["9E", "8E", "7E", "6E"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandstorm: ["9M", "8M", "7M", "6M"], + secretpower: ["7M"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "7M", "6M"], + skillswap: ["9M", "8M", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludge: ["9L44", "8L44", "7L28", "6L28"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "8L60", "7M", "6M"], + smackdown: ["9M", "9L24", "8L24", "7M", "7L23", "6M", "6L23"], + snatch: ["6T"], + snore: ["8M", "6T"], + stealthrock: ["9M", "8M", "6T"], + steelroller: ["8T"], + stoneedge: ["9M", "8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + terablast: ["9M"], + torment: ["9L20", "8L20", "7M", "7L48", "6M", "6L48"], + toxic: ["9L56", "8L56", "7M", "7L7", "6M", "6L7"], + toxicspikes: ["9M", "9L36", "8M", "8L36", "7L19", "6L19"], + trick: ["9M", "8M", "6T"], + uturn: ["9M", "8M", "7M", "6M"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M"], + withdraw: ["9L1", "8L1", "7L1", "6L1"], + wonderroom: ["8M", "6T"], + woodhammer: ["9E", "8E", "7E", "6E"], + zenheadbutt: ["9M", "8M", "6T"], + }, + }, + pluffle: { + learnset: { + allyswitch: ["8M"], + attract: ["8M", "6M"], + beatup: ["9E", "8M", "7E", "6E"], + bodyslam: ["9M", "8M"], + charm: ["9M", "9L9", "8M", "8L9", "7E", "6E"], + confide: ["7T", "6L25"], + dazzlinggleam: ["9M", "8M", "6M"], + doubleteam: ["6M"], + drainingkiss: ["9M", "9L12", "8M", "8L12", "6L13"], + dreameater: ["9L36", "8L36", "6M", "6L42"], + encore: ["9M", "9L15", "8M", "8L15", "7E", "6L16", "6E"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "6M"], + facade: ["9M", "8M", "6M"], + fairywind: ["9L3", "8L3", "6L1"], + featherdance: ["9L1", "8L1", "6L1"], + flashcannon: ["9M", "8M", "6M"], + frustration: ["6M"], + gigadrain: ["9M", "8M", "6T"], + grassknot: ["9M", "8M", "6M"], + helpinghand: ["9M", "8M", "6T"], + hiddenpower: ["6M"], + magicroom: ["8M"], + metronome: ["9M", "8M"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L30", "8L30", "6L36"], + nightmare: ["6L42"], + partingshot: ["9L21", "8L21", "6L24"], + playrough: ["9M", "9L24", "8M", "8L24", "6L27"], + protect: ["9M", "8M", "6M"], + psychic: ["9M"], + psychup: ["6M"], + quickguard: ["9E", "8E", "7E", "6E"], + rest: ["9M", "9L27", "8M", "8L27", "6M", "6L31"], + retaliate: ["8M", "6M"], + return: ["6M"], + round: ["8M", "6M"], + scaryface: ["9M", "9L18", "8M", "8L18", "6L20"], + scratch: ["9L1", "8L1", "6L1"], + sleeptalk: ["9M", "8M", "6M"], + sludgebomb: ["9M", "8M", "6M"], + sludgewave: ["8M", "6M"], + snarl: ["9M", "8M", "6M"], + snore: ["9L27", "8M", "8L27", "6T"], + substitute: ["9M", "8M", "6M"], + sunnyday: ["9M", "8M", "6M"], + swagger: ["7M", "6M"], + takedown: ["9M"], + taunt: ["9M", "8M", "6M"], + terablast: ["9M"], + torment: ["9L33", "8L33", "6M"], + toxic: ["6M"], + uproar: ["9M", "8M"], + vacuumwave: ["9M"], + wakeupslap: ["6L10"], + wideguard: ["9E", "8E", "7E", "6E"], + wish: ["9E", "8E", "7E", "6E"], + workup: ["8M"], + yawn: ["9L6", "8L6", "6L7"], + }, + }, + kerfluffle: { + learnset: { + allyswitch: ["8M"], + attract: ["8M", "7M", "6M"], + aurasphere: ["9M", "9L30", "8M", "8L30", "7L45", "6L45"], + beatup: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M"], + bulkup: ["9M", "8M", "7M", "6M"], + celebrate: ["6S0"], + charm: ["9M", "9L9", "8M", "8L1"], + closecombat: ["9M", "9L42", "8M", "8L42", "7L53", "6L53"], + coaching: ["8T"], + confide: ["7L25", "6L25"], + crushclaw: ["9L0", "8L0", "7M", "6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9L12", "8M", "8L12", "7L17", "6L17"], + drainpunch: ["9M", "8M", "6T"], + dreameater: ["9L39", "8L39", "7M", "7L57", "6M", "6L57"], + encore: ["9M", "9L1", "8M", "8L1"], + endure: ["9M", "9L15", "8M", "8L15", "7L21", "6L21"], + energyball: ["9M", "8M", "7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + fairywind: ["9L1", "8L1", "7L1", "6L1"], + featherdance: ["9L1", "8L1", "7L1", "6L1"], + flashcannon: ["9M", "8M", "7M", "6M"], + fly: ["9M", "8M", "6S0"], + focusblast: ["9M", "8M", "7M"], + focusenergy: ["8M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "8M", "6T"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + helpinghand: ["9M", "8M", "6T"], + hiddenpower: ["7M", "6M"], + holdhands: ["6S0"], + hyperbeam: ["9M", "8M", "7M", "6M"], + lowkick: ["9M", "8M", "6T"], + lowsweep: ["9M", "8M"], + magicroom: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M", "6S0"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L33", "8L33", "7L49", "6L49"], + nightmare: ["7L57", "6L57"], + partingshot: ["9L21", "8L21", "7L33", "6L33"], + playrough: ["9M", "9L24", "8M", "8L24", "7L37", "6L37"], + poweruppunch: ["8L9", "7M", "6M"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M"], + psychup: ["7M", "6M"], + rest: ["9M", "9L27", "8M", "8L27", "7M", "7L41", "6M", "6L41"], + retaliate: ["8M", "7M", "6M"], + return: ["7M", "6M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M", "7M", "6M"], + scaryface: ["9M", "9L18", "8M", "8L18", "7L29", "6L29"], + scratch: ["9L1", "8L1", "7L1", "6L1"], + secretpower: ["7M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snarl: ["9M", "8M", "7M", "6M"], + snore: ["9L27", "8M", "8L27", "6T"], + speedswap: ["8M"], + strength: ["7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["8M"], + swagger: ["9L1", "8L1", "7M", "7L1", "6M", "6L1"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + torment: ["9L36", "8L36", "7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["9M", "8M"], + vacuumwave: ["9M"], + wakeupslap: ["7L13", "6L13"], + workup: ["8M", "7M"], + yawn: ["9L1", "8L1", "7L9", "6L9"], + }, + eventData: [ + {generation: 6, level: 16, abilities: ["naturalcure"], moves: ["celebrate", "holdhands", "fly", "metronome"], pokeball: "cherishball"}, + ], + }, + pajantom: { + learnset: { + aerialace: ["9M", "7M"], + astonish: ["9L10", "8L10", "7L1"], + attract: ["8M", "7M"], + bind: ["9L5", "8L5", "7T"], + block: ["7T"], + bravebird: ["9M", "9L1", "8M", "8L1", "7L1"], + breakingswipe: ["9L30", "8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + confide: ["7M"], + confuseray: ["9M"], + crunch: ["9M", "8M"], + doubleteam: ["9L25", "8L25", "7M"], + dracometeor: ["9M", "8T", "7T"], + dragonbreath: ["9L20", "8L20", "7L19"], + dragonclaw: ["9M", "9L35", "8M", "8L35", "7M", "7L23"], + dragonpulse: ["9M", "8M", "7T"], + dragonrage: ["7L12"], + dragonrush: ["9E", "8E", "7L34"], + dreameater: ["9E", "7M"], + drillrun: ["9M", "8M", "7T"], + dualchop: ["8L30", "7T"], + earthquake: ["9M", "8M", "7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fairylock: ["9L1", "8L1", "7L1"], + fly: ["9M", "8M", "7M"], + focusenergy: ["9L15", "8M", "7E"], + frustration: ["7M"], + gastroacid: ["7T"], + gigaimpact: ["9M", "8M", "7M"], + gravity: ["9M", "7T"], + growl: ["9L1", "8L1", "7L1"], + haze: ["9M", "9L40", "8L40", "7L37"], + healblock: ["7L30"], + helpinghand: ["9M", "8M", "7T"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + icefang: ["9M", "8M", "7E"], + icepunch: ["9M", "8M", "7T"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + infestation: ["9E", "8E", "7M"], + irontail: ["8M", "7T", "7E"], + laserfocus: ["8L15", "7T", "7L10"], + leechlife: ["9M", "8M", "7M"], + nastyplot: ["9M", "8M"], + outrage: ["9M", "9L60", "8M", "8L60", "7T", "7L53"], + phantomforce: ["9M", "9L55", "8M", "8L55", "7L45"], + poisonfang: ["9E", "8E", "7E"], + poisongas: ["9L1", "8L1", "7L17"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychicfangs: ["9M", "9L50", "8M", "8L50", "7L32"], + psychup: ["7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + sandtomb: ["9M", "9E", "8M", "7E"], + shadowball: ["9M", "8M", "7M"], + shadowclaw: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + smartstrike: ["9M", "8M", "7M"], + snore: ["9L1", "8M", "8L1", "7T", "7L1"], + spiritshackle: ["9L45", "8L45", "7L1"], + spite: ["9M", "7T", "7E"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + takedown: ["9M"], + taunt: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + throatchop: ["8M", "7T"], + toxic: ["9M", "7M"], + toxicspikes: ["9M", "8M", "7L28"], + trickroom: ["9M", "8M", "7M"], + venoshock: ["9M", "8M", "7M"], + whirlpool: ["8M", "7E"], + wrap: ["9L1", "8L1", "7L1"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + mumbao: { + learnset: { + attract: ["8M", "7M"], + bodyslam: ["9M", "9L45", "8M", "8L45", "7L28"], + bulletseed: ["9M", "8M"], + confide: ["7M"], + dazzlinggleam: ["9M", "8M", "7M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L55", "8M", "8L55", "7M", "7L37"], + explosion: ["9E", "8E"], + facade: ["9M", "8M", "7M"], + flowershield: ["8L1", "7L1"], + focusblast: ["9M", "8M", "7M"], + focusenergy: ["9L20", "8M", "8L20"], + frustration: ["7M"], + gigadrain: ["9M", "9L40", "8M", "8L40", "7T"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7E"], + gravity: ["9M", "7T"], + gyroball: ["9M", "8M", "7M"], + harden: ["9L1"], + healingwish: ["9E", "8E", "7E"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "9L15", "8M", "8L15", "7T", "7L35"], + hiddenpower: ["7M"], + ingrain: ["9L10", "8L10", "7L10"], + leafage: ["9L5", "8L5", "7L13"], + leafstorm: ["9M", "9L65", "8M", "8L65", "7L46"], + lightscreen: ["9M", "8M", "7M"], + luckychant: ["7L17"], + magicalleaf: ["9M", "9L25", "8M", "8L25", "7L19"], + magiccoat: ["7T"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M", "7E"], + moonblast: ["9L60", "8L60", "7L44"], + naturalgift: ["7L31"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychup: ["9L35", "8L35", "7M", "7L26"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rototiller: ["7L8"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + smellingsalts: ["7E"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "9L50", "8M", "8L50", "7M", "7L40"], + superpower: ["9E", "8M", "7T", "7E"], + swagger: ["7M"], + synthesis: ["9L50", "8L50", "7T"], + tackle: ["9L1", "8L1", "7L4"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + wish: ["9L30", "8L30", "7L22"], + woodhammer: ["9E", "8E", "7E"], + worryseed: ["9E", "8E", "7T"], + }, + }, + jumbao: { + learnset: { + armthrust: ["9L20", "8L20"], + attract: ["8M", "7M"], + block: ["7T"], + bodyslam: ["9M", "9L45", "8M", "8L45", "7L28"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + bulletseed: ["9M", "8M", "7L38"], + confide: ["7M"], + dazzlinggleam: ["9M", "8M", "7M"], + detect: ["9L15", "8L15", "7L1"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L55", "8M", "8L55", "7M", "7L45"], + explosion: ["7M"], + facade: ["9M", "8M", "7M"], + fakeout: ["9L1", "8L1", "7L1"], + flameburst: ["7L35"], + flowershield: ["8L1", "7L1"], + focusblast: ["9M", "8M", "7M"], + focusenergy: ["9L1", "8M", "8L1"], + frustration: ["7M"], + gigadrain: ["9M", "9L40", "8M", "8L40", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + gravity: ["9M", "7T"], + gyroball: ["9M", "8M", "7M"], + harden: ["9L1"], + heavyslam: ["9M", "9L60", "8M", "8L60", "7L42"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + ingrain: ["9L1", "8L1", "7L14"], + leafage: ["9L1", "8L1", "7L1"], + leafstorm: ["9M", "9L70", "8M", "8L70", "7L52"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "7M"], + luckychant: ["7L1"], + magicalleaf: ["9M", "9L25", "8M", "8L25", "7L17"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + metronome: ["9M", "8M"], + mistyexplosion: ["9M", "8T"], + mistyterrain: ["9M", "8M"], + moonblast: ["9L65", "8L65", "7L49"], + naturalgift: ["7L31"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychup: ["9L35", "8L35", "7M", "7L24"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rototiller: ["7L10"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "7M"], + shoreup: ["9L1", "8L1", "7L1"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + solarblade: ["9M", "8M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "9L50", "8M", "8L50", "7M", "7L35"], + superpower: ["8M", "7T"], + swagger: ["7M"], + synthesis: ["9L50", "8L50", "7T"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + wish: ["9L30", "8L30", "7L21"], + wonderroom: ["8M", "7T"], + worryseed: ["7T"], + }, + }, + fawnifer: { + learnset: { + attract: ["8M", "7M"], + bodyslam: ["9M", "9L30", "8M", "8L30", "7L30"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulletseed: ["9M", "8M"], + chargebeam: ["9M", "9L18", "8L18"], + charm: ["9M", "8M"], + confide: ["7M"], + confuseray: ["9M", "9L15", "8L15", "7L18"], + doubleedge: ["9E", "8E", "7E"], + doublekick: ["9E", "8E", "7E"], + doubleteam: ["7M"], + echoedvoice: ["7M"], + endeavor: ["9E", "8E", "7T"], + endure: ["9M", "8M"], + energyball: ["9M", "9L39", "8M", "8L39", "7M"], + facade: ["9M", "8M", "7M"], + flash: ["7L42"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hypervoice: ["9M", "8M", "7T"], + knockoff: ["9M", "7T"], + leafage: ["9L3", "8L3", "7L1"], + leafstorm: ["9M", "8M"], + leechseed: ["9L21", "8L21", "7L26"], + leer: ["9L1", "8L1", "7L4"], + naturalgift: ["7E"], + naturepower: ["7M"], + powerwhip: ["9E", "8M", "7E"], + present: ["9E", "8E", "7E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L9", "8L9", "7L11"], + rapidspin: ["9E", "8E", "7E"], + razorleaf: ["9L12", "8L12", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + seedbomb: ["9M", "9L27", "8M", "8L27", "7T", "7L34"], + signalbeam: ["7L46"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + spark: ["9L24", "8L24", "7L22"], + spotlight: ["7E"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L33", "8L33", "7T"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thundershock: ["9L6", "8L6", "7L7"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["9M", "9E", "8M", "7T", "7E"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "9L36", "8M", "8L36", "7T", "7L38"], + workup: ["8M", "7M"], + worryseed: ["7T"], + }, + }, + electrelk: { + learnset: { + attract: ["8M", "7M"], + bodyslam: ["9M", "9L40", "8M", "8L40", "7L30"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulletseed: ["9M", "8M"], + chargebeam: ["9M", "9L20", "8L20", "7M"], + charm: ["9M", "8M"], + confide: ["7M"], + confuseray: ["9M", "9L15", "8L15", "7L18"], + doubleteam: ["7M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M", "8M"], + electroweb: ["8M", "7T"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "9L1", "8M", "8L1", "7M"], + facade: ["9M", "8M", "7M"], + flash: ["7L45"], + flashcannon: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "8M", "7T"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hypervoice: ["9M", "8M", "7T"], + knockoff: ["9M", "7T"], + leafage: ["9L1", "8L1", "7L1"], + leafstorm: ["9M", "8M"], + leechseed: ["9L25", "8L25", "7L26"], + leer: ["9L1", "8L1", "7L4"], + magnetrise: ["9L55", "8L55", "7L58"], + naturepower: ["7M"], + powerwhip: ["8M"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L9", "8L9", "7L11"], + razorleaf: ["9L12", "8L12", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + seedbomb: ["9M", "9L35", "8M", "8L35", "7T", "7L35"], + shockwave: ["7T"], + signalbeam: ["7T", "7L49"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + solarblade: ["9M", "8M"], + spark: ["9L30", "8L30", "7L22"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L45", "8L45", "7T"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "8M", "7M"], + thundershock: ["9L1", "8L1", "7L7"], + thunderwave: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "9L50", "8M", "8L50", "7T", "7L40"], + workup: ["8M", "7M"], + worryseed: ["7T"], + zapcannon: ["9L60", "8L60", "7L53"], + }, + }, + caribolt: { + learnset: { + attract: ["8M", "7M"], + bodyslam: ["9M", "9L44", "8M", "8L44", "7L32"], + boomburst: ["9L1", "8L1", "7L1"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulletseed: ["9M", "8M", "7L1"], + celebrate: ["7S0"], + chargebeam: ["9M", "9L20", "8L20", "7M"], + charm: ["9M", "8M"], + confide: ["7M"], + confuseray: ["9M", "9L15", "8L15", "7L19"], + doubleteam: ["7M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1"], + electroweb: ["8M", "7T"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "9L1", "8M", "8L1", "7M"], + facade: ["9M", "8M", "7M"], + flash: ["7L47"], + flashcannon: ["9M", "8M", "7M"], + frenzyplant: ["9M", "8T", "7T"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["9M", "8T"], + grassyterrain: ["9M", "9L1", "8M", "8L1", "7L1"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hornleech: ["9L0", "8L0", "7L1", "7S0"], + hyperbeam: ["9M", "8M", "7M"], + hyperdrill: ["9L1"], + hypervoice: ["9M", "8M", "7T"], + knockoff: ["9M", "7T"], + leafage: ["9L1", "8L1", "7L1"], + leafstorm: ["9M", "8M"], + leechseed: ["9L25", "8L25", "7L28"], + leer: ["9L1", "8L1", "7L1"], + magnetrise: ["9L65", "8L65", "7T", "7L62"], + metronome: ["9M", "8M", "7S0"], + naturepower: ["7M"], + powerwhip: ["8M"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L9", "8L9", "7L12"], + razorleaf: ["9L12", "8L12", "7L15"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + seedbomb: ["9M", "9L37", "8M", "8L37", "7T", "7L37"], + shockwave: ["7T"], + signalbeam: ["7T", "7L52"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + solarblade: ["9M", "8M"], + spark: ["9L30", "8L30", "7L24"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L51", "8L51", "7T"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + throatchop: ["8M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "8M", "7M"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["9M", "8M", "7T"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "9L58", "8M", "8L58", "7T", "7L42", "7S0"], + workup: ["8M", "7M"], + worryseed: ["7T"], + zapcannon: ["9L72", "8L72", "7L57"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["celebrate", "hornleech", "wildcharge", "metronome"], pokeball: "cherishball"}, + ], + }, + smogecko: { + learnset: { + acidspray: ["9M", "9E", "8E", "7E"], + aerialace: ["9M"], + attract: ["8M", "7M"], + bonerush: ["9E", "8E", "7E"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "9L24", "8M", "8L24", "7M", "7L19"], + bulletpunch: ["9E", "8E", "7E"], + camouflage: ["7L30"], + confide: ["7M"], + defog: ["9E", "8E", "7T"], + dig: ["9M", "9L33", "8M", "8L33", "7L47"], + doubleteam: ["7M"], + earthpower: ["9M", "8M", "7T"], + ember: ["9L3", "8L3", "7L1"], + endeavor: ["9E", "8E", "7T"], + facade: ["9M", "8M", "7M"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T", "7T"], + firepunch: ["9M", "8M"], + firespin: ["9M", "8M", "7E"], + flameburst: ["7L22"], + flamecharge: ["9M", "9E"], + flamethrower: ["9M", "8M", "7M", "7L40"], + flamewheel: ["9L21", "8L21", "7L15"], + flareblitz: ["9L39", "8L39"], + forcepalm: ["9E", "8E", "7E"], + frustration: ["7M"], + gunkshot: ["9M", "8M", "7T"], + heatwave: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + incinerate: ["9L16", "8L16", "7L34"], + irontail: ["8M", "7T"], + lavaplume: ["9L27", "8L27", "7L26"], + lick: ["9L9", "8L9", "7L7"], + lowkick: ["9M", "8M", "7T"], + mudshot: ["9M", "9L18", "8M", "8L18", "7L13"], + overheat: ["9M", "8M", "7M"], + poisonfang: ["9E", "8E", "7E"], + poisonjab: ["9M", "8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["7M"], + round: ["8M", "7M"], + sandtomb: ["9M", "8M", "7E"], + scaleshot: ["9M", "8T"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "7L1"], + screech: ["9L30", "8M", "8L30", "7L44"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + smog: ["9L12", "8L12", "7L10"], + smokescreen: ["9L6", "8L6", "7L4"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + stealthrock: ["9M", "8M", "7T"], + stompingtantrum: ["9M", "8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + tailwhip: ["9L1", "8L1", "7L4"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + toxic: ["9M", "9L36", "8L36", "7M"], + trailblaze: ["9M"], + venomdrench: ["8M"], + willowisp: ["9M", "8M", "7M"], + workup: ["8M", "7M"], + }, + }, + smoguana: { + learnset: { + acidspray: ["9M"], + aerialace: ["9M"], + attract: ["8M", "7M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "9L35", "8M", "8L35", "7M", "7L19"], + burningjealousy: ["9M", "8T"], + camouflage: ["7L35"], + clearsmog: ["9L20", "8L20", "7L26"], + confide: ["7M"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + defog: ["7T"], + dig: ["9M", "9L1", "8M", "8L1"], + doubleteam: ["7M"], + earthpower: ["9M", "8M", "7T"], + earthquake: ["9M", "9L50", "8M", "8L50", "7M", "7L50"], + ember: ["9L1", "8L1", "7L1"], + endeavor: ["7T"], + facade: ["9M", "8M", "7M"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T", "7T"], + firepunch: ["9M", "8M", "7T"], + flameburst: ["7L22"], + flamecharge: ["9M"], + flamethrower: ["9M", "8M", "7M", "7L42"], + flamewheel: ["9L30", "8L30", "7L15"], + flareblitz: ["9M", "9L60", "8M", "8L60", "7L55"], + frustration: ["7M"], + gunkshot: ["9M", "8M", "7T"], + heatwave: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + incinerate: ["9L15", "8L15"], + irontail: ["8M", "7T"], + lavaplume: ["9L40", "8L40", "7L31"], + lick: ["9L9", "8L9", "7L7"], + lowkick: ["9M", "8M", "7T"], + mudshot: ["9M", "9L25", "8M", "8L25", "7L13"], + overheat: ["9M", "8M", "7M"], + poisonjab: ["9M", "8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["7M"], + round: ["8M", "7M"], + sandtomb: ["9M", "8M"], + scaleshot: ["9M", "8T"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "7L1"], + screech: ["9L45", "8M", "8L45", "7L46"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + smog: ["9L12", "8L12", "7L10"], + smokescreen: ["9L1", "8L1", "7L4"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + stealthrock: ["9M", "8M", "7T"], + stompingtantrum: ["9M", "8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + tailwhip: ["9L1", "8L1", "7L1"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + toxic: ["9M", "9L55", "8L55", "7M"], + trailblaze: ["9M"], + venomdrench: ["8M"], + willowisp: ["9M", "8M", "7M"], + workup: ["8M", "7M"], + }, + }, + smokomodo: { + learnset: { + acidspray: ["9M"], + aerialace: ["9M"], + attract: ["8M", "7M"], + blastburn: ["9M", "8T", "7T"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M", "9L35", "8M", "8L35", "7M", "7L20"], + burningjealousy: ["9M", "8T"], + camouflage: ["7L38", "7S0"], + celebrate: ["7S0"], + circlethrow: ["9L1", "8L1", "7L1"], + clearsmog: ["9L20", "8L20", "7L29"], + confide: ["7M"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + defog: ["7T"], + dig: ["9M", "9L1", "8M", "8L1"], + doubleteam: ["7M"], + earthpower: ["9M", "8M", "7T"], + earthquake: ["9M", "9L56", "8M", "8L56", "7M", "7L54"], + ember: ["9L1", "8L1", "7L1"], + endeavor: ["7T"], + eruption: ["9L0", "8L0", "7L1", "7S0"], + facade: ["9M", "8M", "7M"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T", "7T"], + firepunch: ["9M", "8M", "7T"], + firespin: ["9M", "8M"], + fissure: ["9L1", "8L1", "7L65"], + flameburst: ["7L24"], + flamecharge: ["9M"], + flamethrower: ["9M", "8M", "7M", "7L43"], + flamewheel: ["9L30", "8L30", "7L17"], + flareblitz: ["9M", "9L70", "8M", "8L70", "7L60"], + focusblast: ["9M", "8M", "7M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M", "7M"], + gunkshot: ["9M", "8M", "7T"], + heatcrash: ["9M", "8M"], + heatwave: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M"], + incinerate: ["9L15", "8L15"], + irontail: ["8M", "7T"], + lavaplume: ["9L42", "8L42", "7L33"], + lick: ["9L9", "8L9", "7L7"], + lowkick: ["9M", "8M", "7T"], + machpunch: ["9L1", "8L1"], + magnitude: ["7L1", "7S0"], + metalclaw: ["9M", "9L1", "8L1", "7L1"], + morningsun: ["9L1", "8L1", "7L1"], + mudshot: ["9M", "9L25", "8M", "8L25", "7L14"], + mysticalfire: ["8M"], + overheat: ["9M", "8M", "7M"], + poisonjab: ["9M", "8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["7M"], + round: ["8M", "7M"], + sandtomb: ["9M", "8M"], + scaleshot: ["9M", "8T"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "7L1"], + screech: ["9L49", "8M", "8L49", "7L49"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + smog: ["9L12", "8L12", "7L10"], + smokescreen: ["9L1", "8L1", "7L4"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + stealthrock: ["9M", "8M", "7T"], + stompingtantrum: ["9M", "8M", "7T"], + stormthrow: ["9L1", "8L1", "7L1"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + tailwhip: ["9L1", "8L1", "7L1"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + toxic: ["9M", "9L63", "8L63", "7M"], + trailblaze: ["9M"], + venomdrench: ["8M"], + willowisp: ["9M", "8M", "7M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["celebrate", "eruption", "magnitude", "camouflage"], pokeball: "cherishball"}, + ], + }, + swirlpool: { + learnset: { + acidarmor: ["9E", "8E", "7E"], + allyswitch: ["8M"], + aquajet: ["9L12", "8L12", "7L16"], + attract: ["8M", "7M"], + blizzard: ["9M", "8M", "7M"], + bodyslam: ["9M", "8M"], + brine: ["9L21", "8M", "8L21", "7L25"], + bugbite: ["9M", "7T"], + bugbuzz: ["9M", "9L33", "8M", "8L33", "7L38"], + captivate: ["7L40"], + charm: ["9M", "9L9", "8M", "8L9", "7L10"], + chillingwater: ["9M"], + confide: ["7M"], + confusion: ["9L15", "8L15", "7L14"], + dazzlinggleam: ["9M", "8M", "7M"], + dive: ["8M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + growl: ["9L1", "8L1", "7L4"], + guardswap: ["8M"], + hail: ["8M", "7M"], + healpulse: ["9L24", "8L24", "7L20"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hydropump: ["9M", "9L39", "8M", "8L39", "7L44"], + hypervoice: ["9M", "8M", "7T"], + icebeam: ["9M", "8M", "7M"], + icywind: ["9M", "8M", "7T"], + infestation: ["9E", "8E", "7M"], + leechlife: ["9M", "8M", "7M"], + lifedew: ["9E", "8E"], + magiccoat: ["7T"], + metronome: ["9M", "8M"], + muddywater: ["9E", "8M", "7E"], + pinmissile: ["9E", "8M", "7E"], + pounce: ["9M"], + pound: ["9L1", "8L1", "7L1"], + powder: ["7E"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychoshift: ["8E", "7E"], + raindance: ["9M", "9L18", "8M", "8L18", "7M", "7L29"], + recover: ["9E"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + signalbeam: ["7T"], + skillswap: ["9M", "8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + spikyshield: ["9E", "8E", "7E"], + spotlight: ["7E"], + stealthrock: ["9M", "8M", "7T"], + stickyweb: ["9E", "8E", "7E"], + strugglebug: ["9M", "9L6", "8L6", "7L7"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L30", "8M", "8L30", "7M", "7L48"], + terablast: ["9M"], + toxic: ["9L36", "8L36", "7M"], + trick: ["9M", "8M", "7T"], + uproar: ["8M", "7T"], + uturn: ["9M", "9L27", "8M", "8L27", "7M", "7L34"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L3", "8L3", "7L1"], + waterpledge: ["9M", "8T", "7T"], + waterpulse: ["9M", "7T"], + whirlpool: ["8M"], + workup: ["8M", "7M"], + }, + }, + coribalis: { + learnset: { + allyswitch: ["8M"], + aquajet: ["9L12", "8L12", "7L16"], + attract: ["8M", "7M"], + blizzard: ["9M", "8M", "7M"], + block: ["7T"], + bodyslam: ["9M", "8M"], + brine: ["9L25", "8M", "8L25", "7L26"], + bugbite: ["9M", "7T"], + bugbuzz: ["9M", "9L50", "8M", "8L50", "7L42"], + captivate: ["7L48"], + charm: ["9M", "9L9", "8M", "8L9", "7L10"], + chillingwater: ["9M"], + confide: ["7M"], + confusion: ["9L15", "8L15", "7L14"], + dazzlinggleam: ["9M", "8M", "7M"], + dive: ["8M"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + growl: ["9L1", "8L1", "7L4"], + guardswap: ["8M"], + hail: ["8M", "7M"], + healpulse: ["9L30", "8L30", "7L22"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hydropump: ["9M", "9L60", "8M", "8L60", "7L52"], + hypervoice: ["9M", "8M", "7T"], + icebeam: ["9M", "8M", "7M"], + icywind: ["9M", "8M", "7T"], + infestation: ["7M"], + leechlife: ["9M", "8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + metronome: ["9M", "8M"], + muddywater: ["8M"], + pinmissile: ["8M"], + pounce: ["9M"], + pound: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L38"], + raindance: ["9M", "9L20", "8M", "8L20", "7M", "7L30"], + razorshell: ["9L1", "8M", "8L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + signalbeam: ["7T"], + skillswap: ["9M", "8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T"], + strugglebug: ["9M", "9L1", "8L1", "7L7"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L45", "8M", "8L45", "7M", "7L58"], + terablast: ["9M"], + toxic: ["9L55", "8L55", "7M"], + trick: ["9M", "8M", "7T"], + trickroom: ["9M", "8M", "7M"], + uproar: ["8M", "7T"], + uturn: ["9M", "9L35", "8M", "8L35", "7M", "7L34"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L1", "8L1"], + waterpledge: ["9M", "8T", "7T"], + waterpulse: ["9M", "7T"], + whirlpool: ["8M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M"], + }, + }, + snaelstrom: { + learnset: { + allyswitch: ["8M"], + aquajet: ["9L12", "8L12", "7L17"], + aquaring: ["9L1", "8L1", "7L1"], + attract: ["9L1", "8M", "8L1", "7M", "7L1"], + blizzard: ["9M", "8M", "7M"], + block: ["7T"], + bodyslam: ["9M", "8M"], + brine: ["9L25", "8M", "8L25", "7L27"], + bugbite: ["9M", "7T"], + bugbuzz: ["9M", "9L58", "8M", "8L58", "7L48"], + captivate: ["7L56"], + celebrate: ["7S0"], + charm: ["9M", "9L9", "8M", "8L9", "7L11"], + chillingwater: ["9M"], + confide: ["7M"], + confusion: ["9L15", "8L15", "7L14"], + dazzlinggleam: ["9M", "8M", "7M"], + dive: ["8M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L1"], + guardswap: ["8M"], + hail: ["8M", "7M"], + healpulse: ["9L30", "8L30", "7L22"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M"], + hydrocannon: ["9M", "8T", "7T"], + hydropump: ["9M", "9L72", "8M", "8L72", "7L60"], + hyperbeam: ["9M", "8M", "7M"], + hypervoice: ["9M", "8M"], + icebeam: ["9M", "8M", "7M"], + iciclespear: ["9M", "8M"], + icywind: ["9M", "8M", "7T"], + infestation: ["7M"], + leechlife: ["9M", "8M", "7M", "7S0"], + liquidation: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "7S0"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + metronome: ["9M", "8M", "7S0"], + muddywater: ["8M"], + pinmissile: ["8M"], + pounce: ["9M"], + pound: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "9L44", "8M", "8L44", "7M", "7L44"], + raindance: ["9M", "9L20", "8M", "8L20", "7M", "7L32"], + rapidspin: ["9L1", "8L1", "7L1"], + razorshell: ["9L1", "8M", "8L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + signalbeam: ["7T"], + skillswap: ["9M", "8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + stealthrock: ["9M", "8M", "7T"], + strugglebug: ["9M", "9L1", "8L1", "7L1"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L51", "8M", "8L51", "7M", "7L64"], + terablast: ["9M"], + toxic: ["9L65", "8L65", "7M"], + trick: ["9M", "8M", "7T"], + trickroom: ["9M", "8M", "7M"], + uproar: ["8M", "7T"], + uturn: ["9M", "9L37", "8M", "8L37", "7M", "7L40"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M"], + waterfall: ["9M", "8M", "7M"], + watergun: ["9L1", "8L1"], + waterpledge: ["9M", "8T", "7T"], + waterpulse: ["9M", "7T"], + whirlpool: ["9L1", "8M", "8L1", "7L1"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["celebrate", "liquidation", "leechlife", "metronome"], pokeball: "cherishball"}, + ], + }, + justyke: { + learnset: { + allyswitch: ["8M", "7T"], + aurasphere: ["9M", "9L33", "8M", "8L33", "7L64"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M"], + confide: ["7M"], + destinybond: ["9L44", "8L44", "7L58"], + doubleteam: ["7M"], + drillrun: ["9M", "8M", "7T"], + earthpower: ["9M", "9L48", "8M", "8L48", "7T", "7L36"], + earthquake: ["9M", "8M", "7M", "7L52"], + embargo: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M", "9L28", "8M", "8L28", "7M", "7L41"], + frustration: ["7M"], + gravity: ["9M", "9L24", "7T"], + guardsplit: ["9L16", "8L16", "7L21"], + gyroball: ["9M", "9L12", "8M", "8L12", "7M", "7L17"], + healingwish: ["9L40", "8L40", "7L46"], + heavyslam: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + icespinner: ["9M"], + imprison: ["9M", "9L8", "8M", "8L8", "7L9"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + magicroom: ["8M", "7T"], + magnetrise: ["9L1", "8L1", "7T"], + memento: ["9L36", "8L36", "7L46"], + mindreader: ["8L24", "7L31"], + mirrorshot: ["7L26"], + mudshot: ["9M", "8M", "7L13"], + mudslap: ["9M", "9L4", "8L4", "7L5"], + mudsport: ["7L1"], + painsplit: ["9L52", "8L52", "7T", "7L70"], + pound: ["9L1", "8L1", "7L1"], + powersplit: ["9L16", "8L16", "7L21"], + protect: ["9M", "8M", "7M"], + psychup: ["7M"], + quash: ["9L20", "8L20", "7M"], + recycle: ["7T"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + smartstrike: ["9M", "8M", "7M"], + snore: ["8M", "7M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "7M"], + swagger: ["7M"], + terablast: ["9M"], + trickroom: ["9M", "8M", "7M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + }, + equilibra: { + learnset: { + allyswitch: ["8M", "7T"], + aurasphere: ["9M", "9L35", "8M", "8L35", "7L71"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M"], + confide: ["7M"], + destinybond: ["9L52", "8L52", "7L64"], + doomdesire: ["9S0", "8L0", "7L1"], + doubleteam: ["7M"], + drillrun: ["9M", "8M", "7T"], + earthpower: ["9M", "9L58", "9S0", "8M", "8L58", "7T", "7L40"], + earthquake: ["9M", "8M", "7M", "7L57"], + embargo: ["7M"], + endure: ["9M", "8M"], + explosion: ["7M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M", "9L28", "9S0", "8M", "8L28", "7M", "7L45"], + frustration: ["7M"], + gigaimpact: ["9M", "8M", "7M"], + gravity: ["9M", "9L24", "7T"], + guardsplit: ["9L16", "8L16", "7L25"], + gyroball: ["9M", "9L12", "8M", "8L12", "7M", "7L20"], + healingwish: ["9L46", "8L46", "7L50"], + heavyslam: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + imprison: ["9M", "9L1", "8M", "8L1", "7L1"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + magicroom: ["8M", "7T"], + magnetrise: ["9L1", "8L1", "7T"], + memento: ["9L40", "8L40", "7L50"], + mindreader: ["8L24", "7L35"], + mirrorshot: ["7L30"], + mudshot: ["9M", "8M", "7L15"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + mudsport: ["7L1"], + painsplit: ["9L64", "8L64", "7T", "7L78"], + perishsong: ["9L1", "8L1", "7L85"], + pound: ["9L1", "8L1", "7L1"], + powersplit: ["9L16", "8L16", "7L25"], + protect: ["9M", "8M", "7M"], + psychup: ["7M"], + quash: ["9L20", "8L20", "7M"], + rapidspin: ["9L1", "9S0", "8L1", "7L1"], + recycle: ["7T"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + smartstrike: ["9M", "8M", "7M"], + snore: ["8M", "7M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "7M"], + swagger: ["7M"], + terablast: ["9M"], + trickroom: ["9M", "8M", "7M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 9, level: 50, moves: ["doomdesire", "flashcannon", "earthpower", "rapidspin"], pokeball: "pokeball"}, + ], + }, + solotl: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "8M"], + allyswitch: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + breakingswipe: ["8M"], + charm: ["9M", "9L20", "8M", "8L20"], + cosmicpower: ["9L28", "8M", "8L28"], + dazzlinggleam: ["9M", "8M"], + defog: ["9E", "8E"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L8", "8L8"], + dragonpulse: ["9M", "9L40", "8M", "8L40"], + dragonrush: ["9L48", "8L48"], + dragontail: ["9M", "9L24", "8L24"], + ember: ["9L4", "8L4"], + encore: ["9M", "9L12", "8M", "8L12"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firelash: ["9L36", "9L36", "8L36"], + firespin: ["9M", "8M"], + flamecharge: ["9M"], + flamethrower: ["9M", "8M"], + flamewheel: ["9L16", "8L16"], + flareblitz: ["9M", "9L52", "8M", "8L52"], + healbell: ["8L32"], + healingwish: ["9L44", "8L44"], + heatwave: ["9M", "8M"], + helpinghand: ["9M", "8M"], + imprison: ["9M", "8M"], + lifedew: ["9E", "8E"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + meteorbeam: ["8T"], + metronome: ["9M", "8M"], + mysticalfire: ["8M"], + outrage: ["9M", "8M"], + overheat: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["9L32", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + spikes: ["9M", "8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + twister: ["9E", "8E"], + willowisp: ["9M", "8M"], + workup: ["8M"], + yawn: ["9E", "8E"], + }, + }, + astrolotl: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "8M"], + allyswitch: ["8M"], + attract: ["8M"], + batonpass: ["9M", "9L1", "8M", "8L1"], + breakingswipe: ["8M"], + bulldoze: ["9M", "8M"], + charm: ["9M", "9L20", "8M", "8L20"], + cosmicpower: ["9L28", "8M", "8L28"], + dazzlinggleam: ["9M", "8M"], + dracometeor: ["8T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "8M"], + dragonpulse: ["9M", "9L44", "8M", "8L44"], + dragonrush: ["9L56", "8L56"], + dragontail: ["9M", "9L24", "8L24"], + ember: ["9L1", "8L1"], + encore: ["9M", "9L12", "8M", "8L12"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firefang: ["9M", "8M"], + firelash: ["9L38", "8L38"], + firepunch: ["9M", "8M"], + firespin: ["9M", "8M"], + flamecharge: ["9M"], + flamethrower: ["9M", "8M"], + flamewheel: ["9L16", "8L16"], + flareblitz: ["9M", "9L62", "8M", "8L62"], + healbell: ["8L32"], + healingwish: ["9L50", "8L50"], + heatwave: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magiccoat: ["8L1"], + meteorbeam: ["8T"], + metronome: ["9M", "8M"], + mysticalfire: ["9L0", "8M", "8L0"], + outrage: ["9M", "8M"], + overheat: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["9L32", "8M"], + scorchingsands: ["8T"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + spikes: ["9M", "8M"], + stompingtantrum: ["9M", "8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + willowisp: ["9M", "8M"], + workup: ["8M"], + }, + }, + miasmite: { + learnset: { + agility: ["9M", "8M"], + aromatherapy: ["8E"], + attract: ["8M"], + bite: ["9L8", "8L8"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + bugbite: ["9M", "9L16", "8L16"], + bugbuzz: ["9M", "9L24", "8M", "8L24"], + corrosivegas: ["8T"], + crunch: ["9M", "9L36", "8M", "8L36"], + darkpulse: ["9M", "8M"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L4", "8L4"], + dragonclaw: ["9M", "8M"], + dragonpulse: ["9M", "9L40", "8M", "8L40"], + dragonrush: ["9E", "8E"], + dragontail: ["9M", "9E", "8E"], + earthpower: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + firstimpression: ["9E", "8E"], + flashcannon: ["9M", "8M"], + haze: ["9M", "9L28", "8L28"], + icefang: ["9M", "8M"], + ironhead: ["9M", "8M"], + irontail: ["8M"], + leechlife: ["9M", "8M"], + lunge: ["9M", "9L44", "8L44"], + megahorn: ["9E", "8M"], + outrage: ["9M", "8M"], + pinmissile: ["8M"], + poisonfang: ["9E", "8E"], + poisongas: ["9L20", "8L20"], + poisonjab: ["9M", "8M"], + pounce: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + recover: ["9E", "8E"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + screech: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + smog: ["9L12", "8L12"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + strugglebug: ["9M", "9L1", "8L1"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superfang: ["9M", "9L32", "8L32"], + superpower: ["8M"], + swordsdance: ["9M", "8M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + uproar: ["9M", "8M"], + workup: ["8M"], + xscissor: ["9M", "8M"], + }, + }, + miasmaw: { + learnset: { + agility: ["9M", "8M"], + attract: ["8M"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brutalswing: ["8M"], + bugbite: ["9M", "9L16", "8L16"], + bugbuzz: ["9M", "9L24", "8M", "8L24"], + bulldoze: ["9M", "8M"], + closecombat: ["9M", "8M"], + corrosivegas: ["8T"], + crunch: ["9M", "9L40", "8M", "8L40"], + darkpulse: ["9M", "8M"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "8M"], + dragonhammer: ["8L0"], + dragonpulse: ["9M", "9L46", "8M", "8L46"], + dragontail: ["9M"], + dualwingbeat: ["9M", "8T"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + flashcannon: ["9M", "8M"], + focusblast: ["9M", "8M"], + gigaimpact: ["9M", "9L58", "8M", "8L58"], + gunkshot: ["9M", "8M"], + haze: ["9M", "9L28", "8L28"], + highhorsepower: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icefang: ["9M", "8M"], + ironhead: ["9M", "8M"], + irontail: ["8M"], + leechlife: ["9M", "8M"], + lunge: ["9M", "9L52", "8L52"], + megahorn: ["8M"], + nastyplot: ["9M", "8M"], + outrage: ["9M", "8M"], + pinmissile: ["8M"], + poisongas: ["9L20", "8L20"], + poisonjab: ["9M", "8M"], + pounce: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scaleshot: ["9M", "9L0"], + scaryface: ["9M", "8M"], + screech: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + smog: ["9L12", "8L12"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + strugglebug: ["9M", "9L1", "8L1"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superfang: ["9M", "9L34", "8L34"], + superpower: ["8M"], + swordsdance: ["9M", "8M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M", "8M"], + uproar: ["9M", "8M"], + uturn: ["9M", "8M"], + wildcharge: ["9M", "8M"], + workup: ["8M"], + xscissor: ["9M", "8M"], + }, + }, + chromera: { + learnset: { + acidspray: ["9M", "9L1", "8L1"], + aerialace: ["9M", "9L10", "8L10"], + aromatherapy: ["8L60"], + assurance: ["8M"], + attract: ["8M"], + beatup: ["8M"], + belch: ["8S0"], + blizzard: ["9M", "8M"], + bodyslam: ["9M", "8M"], + boomburst: ["9L75", "8L75"], + calmmind: ["9M", "8M", "8S0"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + crunch: ["9M", "9L35", "8M", "8L35"], + darkpulse: ["9M", "8M", "8S0"], + decorate: ["8L65"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + finalgambit: ["9L80", "8L80"], + firefang: ["9M", "9L20", "8M", "8L20"], + firstimpression: ["9L45", "8L45"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9L60"], + gunkshot: ["9M", "8M"], + hex: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + icefang: ["9M", "9L20", "8M", "8L20"], + imprison: ["9M", "9L25", "8M", "8L25"], + knockoff: ["9L1", "8L1"], + lashout: ["9M", "8T"], + lifedew: ["9L40", "8L40"], + lightscreen: ["9M", "8M"], + metalclaw: ["9M", "9L5", "8L5"], + mudslap: ["9M"], + nobleroar: ["9L1", "8L1"], + outrage: ["9M", "9L70", "8M", "8L70"], + payback: ["8M"], + payday: ["8M"], + playrough: ["9M", "9L65", "8M"], + protect: ["9M", "8M"], + recover: ["9L1", "8L1", "8S0"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + round: ["8M"], + safeguard: ["8M"], + scald: ["8M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + spite: ["9M", "9L15", "8L15"], + stompingtantrum: ["9M", "9L30", "8M", "8L30"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + switcheroo: ["9L1", "8L1"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M", "9L20", "8M", "8L20"], + toxic: ["9L55", "8L55"], + toxicspikes: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["9M", "8M"], + venomdrench: ["8M"], + wideguard: ["9L50", "8L50"], + }, + eventData: [ + {generation: 8, level: 50, moves: ["recover", "calmmind", "darkpulse", "belch"], pokeball: "cherishball"}, + ], + }, + venomicon: { + learnset: { + acidspray: ["9M"], + aircutter: ["9M", "9L15", "8L15"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bravebird: ["9M", "8M"], + clearsmog: ["9E", "8E"], + coil: ["9L50", "8L50"], + confuseray: ["9L10", "8L10"], + darkpulse: ["9M", "8M"], + drillpeck: ["9L35", "8L35"], + dualwingbeat: ["9M", "8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["8M"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + guardswap: ["8M"], + gunkshot: ["9M", "8M"], + hex: ["9M", "9L25", "8M", "8L25"], + hurricane: ["9M", "9L55", "8M", "8L55"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M"], + knockoff: ["9M", "9E", "8E"], + lashout: ["9M", "8T"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + meanlook: ["9E", "8E"], + memento: ["9E", "8E"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + phantomforce: ["9M", "8M"], + poisonjab: ["9M", "9L40", "8M", "8L40"], + poisonsting: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psychic: ["9M", "8M"], + psyshock: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + roost: ["9L45", "8L45"], + round: ["8M"], + safeguard: ["8M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + steelwing: ["8M"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + toxic: ["9L30", "8L30"], + toxicspikes: ["9M", "8M"], + trick: ["9M", "8M"], + uturn: ["9M", "8M"], + venomdrench: ["8M"], + venoshock: ["9M", "9L20", "8M", "8L20"], + withdraw: ["9L5", "8L5"], + }, + }, + saharascal: { + learnset: { + ancientpower: ["9E", "8E"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L16", "8M", "8L16"], + doubleedge: ["9L36", "8L36"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "9L32", "8M", "8L32"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fissure: ["9L44", "8L44"], + heavyslam: ["9M", "8M"], + highhorsepower: ["9M", "9E", "8M"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + painsplit: ["9E", "8E"], + payback: ["8M"], + payday: ["8M"], + protect: ["9M", "8M"], + rapidspin: ["9E", "8E"], + rest: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandattack: ["9L1", "8L1"], + sandstorm: ["9M", "9L20", "8M", "8L20"], + sandtomb: ["9M", "9L14", "8M", "8L4"], + scorchingsands: ["8T"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spitup: ["9L40", "8L40"], + stealthrock: ["9M", "8M"], + stockpile: ["9L40", "8L40"], + stomp: ["9L28", "8L28"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + swallow: ["9L40", "8L40"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + taunt: ["9M", "9L8", "8M", "8L8"], + terablast: ["9M"], + thief: ["9M", "9L24", "8M", "8L24"], + watergun: ["9L12", "8L12"], + waterpulse: ["9M", "9E", "8E"], + }, + }, + saharaja: { + learnset: { + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L1", "8M", "8L1"], + dazzlinggleam: ["9M", "8M"], + diamondstorm: ["9L0", "8L0"], + doubleedge: ["9L1", "8L1"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "9L1", "8M", "8L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fissure: ["9L1", "8L1"], + flashcannon: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + healbell: ["8L1"], + heavyslam: ["9M", "8M"], + highhorsepower: ["9M", "8M"], + hornleech: ["9L1", "8L1"], + hyperbeam: ["9M", "8M"], + lashout: ["8T"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M"], + payback: ["8M"], + payday: ["9L1", "8M", "8L1"], + powergem: ["9M", "8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandattack: ["9L1", "8L1"], + sandstorm: ["9M", "9L1", "8M", "8L1"], + sandtomb: ["9M", "9L1", "8M", "8L1"], + scorchingsands: ["8T"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spitup: ["9L1", "8L1"], + stealthrock: ["9M", "8M"], + stockpile: ["9L1", "8L1"], + stomp: ["9L1", "8L1"], + stompingtantrum: ["8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + swallow: ["9L1", "8L1"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + taunt: ["9M", "9L1", "8M", "8L1"], + terablast: ["9M"], + thief: ["9M", "9L1", "8M", "8L1"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M"], + }, + }, + ababo: { + learnset: { + bodyslam: ["9M"], + bulkup: ["9M"], + charm: ["9M", "9L20"], + copycat: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L4"], + disable: ["9L16"], + disarmingvoice: ["9M", "9L12"], + drainingkiss: ["9M"], + endure: ["9M"], + explosion: ["9E"], + extremespeed: ["9E"], + facade: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M"], + lashout: ["9M"], + lightscreen: ["9M"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + playrough: ["9M"], + pound: ["9L1"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seismictoss: ["9E"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9L8"], + takedown: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + wildcharge: ["9M"], + wish: ["9E"], + }, + }, + scattervein: { + learnset: { + batonpass: ["9M"], + bodyslam: ["9M"], + brutalswing: ["9L12"], + bulkup: ["9M"], + charm: ["9M", "9L1"], + copycat: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L1"], + disable: ["9L1"], + disarmingvoice: ["9M", "9L1"], + doubleedge: ["9L44"], + drainingkiss: ["9M"], + echoedvoice: ["9L8"], + endure: ["9M"], + energyball: ["9M"], + explosion: ["9E"], + extremespeed: ["9E"], + facade: ["9M"], + fireblast: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + lashout: ["9M"], + lifedew: ["9L24"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L36"], + moonlight: ["9L28"], + playrough: ["9M"], + pound: ["9L1"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + safeguard: ["9L32"], + screech: ["9L40"], + seismictoss: ["9E"], + shadowball: ["9M"], + slam: ["9L20"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9L1"], + tailwhip: ["9L4"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + tickle: ["9L16"], + trailblaze: ["9M"], + trick: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + wish: ["9E"], + wrap: ["9L1"], + zenheadbutt: ["9M"], + }, + }, + hemogoblin: { + learnset: { + batonpass: ["9M"], + bitterblade: ["9L0"], + bodyslam: ["9M"], + brutalswing: ["9L1"], + bulkup: ["9M"], + burningjealousy: ["9M"], + charm: ["9M", "9L1"], + copycat: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L1"], + disable: ["9L1"], + disarmingvoice: ["9M", "9L1"], + doubleedge: ["9L1"], + drainingkiss: ["9M"], + echoedvoice: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firelash: ["9L1"], + flamethrower: ["9M"], + flareblitz: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + lashout: ["9M"], + lifedew: ["9L1"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + metronome: ["9M"], + mistyexplosion: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L1"], + moonlight: ["9L1"], + overheat: ["9M"], + playrough: ["9M"], + pound: ["9L1"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + safeguard: ["9L1"], + screech: ["9L1"], + shadowball: ["9M"], + slam: ["9L1"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + tickle: ["9L1"], + trailblaze: ["9M"], + trick: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + wrap: ["9L1"], + zenheadbutt: ["9M"], + }, + }, + cresceidon: { + learnset: { + earthpower: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + haze: ["9M"], + healingwish: ["9L1"], + helpinghand: ["9M"], + hydropump: ["9M"], + moonblast: ["9L1"], + protect: ["9M"], + recover: ["9L1"], + rest: ["9M"], + scald: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + surf: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderwave: ["9M"], + whirlpool: ["9L1"], + wish: ["9L1"], + }, + }, + pokestarsmeargle: { + eventData: [ + {generation: 5, level: 60, gender: "M", abilities: ["owntempo"], moves: ["mindreader", "guillotine", "tailwhip", "gastroacid"]}, + {generation: 5, level: 30, gender: "M", abilities: ["owntempo"], moves: ["outrage", "magiccoat"]}, + {generation: 5, level: 99, gender: "M", abilities: ["owntempo"], moves: ["nastyplot", "sheercold", "attract", "shadowball"]}, + ], + }, + pokestarufo: { + eventData: [ + {generation: 5, level: 38, moves: ["bubblebeam", "counter", "recover", "signalbeam"]}, + ], + }, + pokestarufo2: { + eventData: [ + {generation: 5, level: 47, moves: ["darkpulse", "flamethrower", "hyperbeam", "icebeam"]}, + ], + }, + pokestarbrycenman: { + eventData: [ + {generation: 5, level: 56, moves: ["icebeam", "nightshade", "psychic", "uturn"]}, + ], + }, + pokestarmt: { + eventData: [ + {generation: 5, level: 63, moves: ["earthquake", "ironhead", "spark", "surf"]}, + ], + }, + pokestarmt2: { + eventData: [ + {generation: 5, level: 72, moves: ["dragonpulse", "flamethrower", "metalburst", "thunderbolt"]}, + ], + }, + pokestartransport: { + eventData: [ + {generation: 5, level: 20, moves: ["clearsmog", "flameburst", "discharge"]}, + {generation: 5, level: 50, moves: ["iciclecrash", "overheat", "signalbeam"]}, + ], + }, + pokestargiant: { + eventData: [ + {generation: 5, level: 99, moves: ["crushgrip", "focuspunch", "growl", "rage"]}, + ], + }, + pokestargiant2: { + eventData: [ + {generation: 5, level: 99, moves: ["crushgrip", "doubleslap", "teeterdance", "stomp"]}, + ], + }, + pokestarhumanoid: { + eventData: [ + {generation: 5, level: 20, gender: "M", moves: ["scratch", "shadowclaw", "acid"]}, + {generation: 5, level: 30, gender: "M", moves: ["darkpulse", "shadowclaw", "slash"]}, + {generation: 5, level: 20, gender: "F", moves: ["acid", "nightslash"]}, + {generation: 5, level: 20, gender: "M", moves: ["acid", "doubleedge"]}, + {generation: 5, level: 20, gender: "F", moves: ["acid", "rockslide"]}, + {generation: 5, level: 20, gender: "M", moves: ["acid", "thunderpunch"]}, + {generation: 5, level: 20, gender: "F", moves: ["acid", "icepunch"]}, + {generation: 5, level: 40, gender: "F", moves: ["explosion", "selfdestruct"]}, + {generation: 5, level: 40, gender: "F", moves: ["shadowclaw", "scratch"]}, + {generation: 5, level: 40, gender: "M", moves: ["nightslash", "scratch"]}, + {generation: 5, level: 40, gender: "M", moves: ["doubleedge", "scratch"]}, + {generation: 5, level: 40, gender: "F", moves: ["rockslide", "scratch"]}, + ], + }, + pokestarmonster: { + eventData: [ + {generation: 5, level: 50, moves: ["darkpulse", "confusion"]}, + ], + }, + pokestarf00: { + eventData: [ + {generation: 5, level: 10, moves: ["teeterdance", "growl", "flail", "chatter"]}, + {generation: 5, level: 58, moves: ["needlearm", "headsmash", "headbutt", "defensecurl"]}, + {generation: 5, level: 60, moves: ["hammerarm", "perishsong", "ironhead", "thrash"]}, + ], + }, + pokestarf002: { + eventData: [ + {generation: 5, level: 52, moves: ["flareblitz", "ironhead", "psychic", "wildcharge"]}, + ], + }, + pokestarspirit: { + eventData: [ + {generation: 5, level: 99, moves: ["crunch", "dualchop", "slackoff", "swordsdance"]}, + ], + }, + pokestarblackdoor: { + eventData: [ + {generation: 5, level: 53, moves: ["luckychant", "amnesia", "ingrain", "rest"]}, + {generation: 5, level: 70, moves: ["batonpass", "counter", "flamecharge", "toxic"]}, + ], + }, + pokestarwhitedoor: { + eventData: [ + {generation: 5, level: 7, moves: ["batonpass", "inferno", "mirrorcoat", "toxic"]}, + ], + }, + pokestarblackbelt: { + eventData: [ + {generation: 5, level: 30, moves: ["focuspunch", "machpunch", "taunt"]}, + {generation: 5, level: 40, moves: ["machpunch", "hammerarm", "jumpkick"]}, + ], + }, + pokestargiantpropo2: { + eventData: [ + {generation: 5, level: 99, moves: ["crushgrip", "doubleslap", "teeterdance", "stomp"]}, + ], + }, + pokestarufopropu2: { + eventData: [ + {generation: 5, level: 47, moves: ["darkpulse", "flamethrower", "hyperbeam", "icebeam"]}, + ], + }, +}; diff --git a/data/mods/gen9dlc1/moves.ts b/data/mods/gen9dlc1/moves.ts new file mode 100644 index 000000000000..24dd9b928247 --- /dev/null +++ b/data/mods/gen9dlc1/moves.ts @@ -0,0 +1,197 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + aeroblast: { + inherit: true, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1}, + isNonstandard: "Past", + }, + alluringvoice: { + inherit: true, + isNonstandard: "Future", + }, + beakblast: { + inherit: true, + isNonstandard: "Past", + }, + bitterblade: { + inherit: true, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, + }, + blueflare: { + inherit: true, + isNonstandard: "Past", + }, + boltstrike: { + inherit: true, + isNonstandard: "Past", + }, + burningbulwark: { + inherit: true, + isNonstandard: "Future", + }, + conversion: { + inherit: true, + isNonstandard: "Past", + }, + conversion2: { + inherit: true, + isNonstandard: "Past", + }, + crushgrip: { + inherit: true, + isNonstandard: "Past", + }, + darkvoid: { + inherit: true, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, + }, + decorate: { + inherit: true, + isNonstandard: "Past", + }, + dragoncheer: { + inherit: true, + isNonstandard: "Future", + }, + dragonhammer: { + inherit: true, + isNonstandard: "Past", + }, + electroshot: { + inherit: true, + isNonstandard: "Future", + }, + ficklebeam: { + inherit: true, + isNonstandard: "Future", + }, + floralhealing: { + inherit: true, + isNonstandard: "Past", + }, + freezeshock: { + inherit: true, + isNonstandard: "Past", + }, + fusionbolt: { + inherit: true, + isNonstandard: "Past", + }, + fusionflare: { + inherit: true, + isNonstandard: "Past", + }, + glaciate: { + inherit: true, + isNonstandard: "Past", + }, + hardpress: { + inherit: true, + isNonstandard: "Future", + }, + hyperspacefury: { + inherit: true, + flags: {mirror: 1, bypasssub: 1}, + }, + iceburn: { + inherit: true, + isNonstandard: "Past", + }, + lusterpurge: { + inherit: true, + basePower: 70, + isNonstandard: "Past", + }, + malignantchain: { + inherit: true, + isNonstandard: "Future", + }, + matchagotcha: { + inherit: true, + flags: {protect: 1, mirror: 1, defrost: 1, metronome: 1}, + }, + mightycleave: { + inherit: true, + isNonstandard: "Future", + }, + mistball: { + inherit: true, + basePower: 70, + isNonstandard: "Past", + }, + moongeistbeam: { + inherit: true, + isNonstandard: "Past", + }, + photongeyser: { + inherit: true, + isNonstandard: "Past", + }, + prismaticlaser: { + inherit: true, + isNonstandard: "Past", + }, + psychicnoise: { + inherit: true, + isNonstandard: "Future", + }, + psychoboost: { + inherit: true, + isNonstandard: "Past", + }, + revivalblessing: { + inherit: true, + flags: {heal: 1}, + }, + rockwrecker: { + inherit: true, + isNonstandard: "Past", + }, + sacredfire: { + inherit: true, + isNonstandard: "Past", + }, + secretsword: { + inherit: true, + isNonstandard: "Past", + }, + sketch: { + inherit: true, + isNonstandard: "Past", + }, + sparklingaria: { + inherit: true, + isNonstandard: "Past", + }, + sunsteelstrike: { + inherit: true, + isNonstandard: "Past", + }, + supercellslam: { + inherit: true, + isNonstandard: "Future", + }, + tachyoncutter: { + inherit: true, + isNonstandard: "Future", + }, + terastarstorm: { + inherit: true, + isNonstandard: "Future", + }, + thunderclap: { + inherit: true, + isNonstandard: "Future", + }, + topsyturvy: { + inherit: true, + isNonstandard: "Past", + }, + triplekick: { + inherit: true, + isNonstandard: "Past", + }, + upperhand: { + inherit: true, + isNonstandard: "Future", + }, +}; diff --git a/data/mods/gen9dlc1/pokedex.ts b/data/mods/gen9dlc1/pokedex.ts new file mode 100644 index 000000000000..3df76f7db60c --- /dev/null +++ b/data/mods/gen9dlc1/pokedex.ts @@ -0,0 +1,8 @@ +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { + cresceidon: { + inherit: true, + baseStats: {hp: 80, atk: 32, def: 111, spa: 88, spd: 99, spe: 125}, + abilities: {0: "Multiscale", 1: "Rough Skin"}, + eggGroups: ["Undiscovered"], + }, +}; diff --git a/data/mods/gen9dlc1/typechart.ts b/data/mods/gen9dlc1/typechart.ts new file mode 100644 index 000000000000..8ddf618a16a0 --- /dev/null +++ b/data/mods/gen9dlc1/typechart.ts @@ -0,0 +1,6 @@ +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { + stellar: { + inherit: true, + isNonstandard: 'Future', + }, +}; diff --git a/data/mods/gen9predlc/abilities.ts b/data/mods/gen9predlc/abilities.ts new file mode 100644 index 000000000000..47e904d8d62c --- /dev/null +++ b/data/mods/gen9predlc/abilities.ts @@ -0,0 +1,57 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + commander: { + inherit: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, notransform: 1}, + }, + gulpmissile: { + inherit: true, + flags: {cantsuppress: 1, notransform: 1}, + }, + hadronengine: { + inherit: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, notransform: 1}, + }, + illuminate: { + inherit: true, + onTryBoost() {}, + onModifyMove() {}, + flags: {}, + rating: 0, + }, + mindseye: { + inherit: true, + isNonstandard: "Future", + }, + orichalcumpulse: { + inherit: true, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1, notransform: 1}, + }, + supersweetsyrup: { + inherit: true, + isNonstandard: "Future", + }, + hospitality: { + inherit: true, + isNonstandard: "Future", + }, + toxicchain: { + inherit: true, + isNonstandard: "Future", + }, + embodyaspectcornerstone: { + inherit: true, + isNonstandard: "Future", + }, + embodyaspecthearthflame: { + inherit: true, + isNonstandard: "Future", + }, + embodyaspectteal: { + inherit: true, + isNonstandard: "Future", + }, + embodyaspectwellspring: { + inherit: true, + isNonstandard: "Future", + }, +}; diff --git a/data/mods/gen9predlc/formats-data.ts b/data/mods/gen9predlc/formats-data.ts new file mode 100644 index 000000000000..a6bc3d53c4fe --- /dev/null +++ b/data/mods/gen9predlc/formats-data.ts @@ -0,0 +1,5912 @@ +export const FormatsData: import('../../../sim/dex-species').ModdedSpeciesFormatsDataTable = { + bulbasaur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ivysaur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + venusaur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + venusaurmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + venusaurgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + charmander: { + tier: "LC", + }, + charmeleon: { + tier: "NFE", + }, + charizard: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + charizardmegax: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + charizardmegay: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + charizardgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + squirtle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wartortle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + blastoise: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + blastoisemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + blastoisegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + caterpie: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + metapod: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + butterfree: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + butterfreegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + weedle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kakuna: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + beedrill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + beedrillmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + pidgey: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pidgeotto: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + pidgeot: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pidgeotmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rattata: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rattataalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + raticate: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + raticatealola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + raticatealolatotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + spearow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + fearow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ekans: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + arbok: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pichu: { + tier: "LC", + }, + pichuspikyeared: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachu: { + tier: "(PU)", + doublesTier: "NFE", + natDexTier: "RU", + }, + pikachucosplay: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachurockstar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachubelle: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachupopstar: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuphd: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachulibre: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuoriginal: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachuhoenn: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachusinnoh: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachuunova: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachukalos: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachualola: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachupartner: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pikachustarter: { + isNonstandard: "LGPE", + tier: "Illegal", + }, + pikachugmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + pikachuworld: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + raichu: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + raichualola: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sandshrew: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sandshrewalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sandslash: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sandslashalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + nidoranf: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + nidorina: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + nidoqueen: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + nidoranm: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + nidorino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + nidoking: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cleffa: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + clefairy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + clefable: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + vulpix: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + vulpixalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ninetales: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ninetalesalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + igglybuff: { + tier: "LC", + }, + jigglypuff: { + tier: "NFE", + }, + wigglytuff: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + zubat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + golbat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + crobat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + oddish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + gloom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + vileplume: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + bellossom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + paras: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + parasect: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + venonat: { + tier: "LC", + }, + venomoth: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + diglett: { + tier: "NFE", + }, + diglettalola: { + tier: "LC", + }, + dugtrio: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dugtrioalola: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + meowth: { + tier: "LC", + }, + meowthalola: { + tier: "LC", + }, + meowthgalar: { + tier: "LC", + }, + meowthgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + persian: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + persianalola: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + perrserker: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + psyduck: { + tier: "LC", + }, + golduck: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mankey: { + tier: "LC", + }, + primeape: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + growlithe: { + tier: "LC", + }, + growlithehisui: { + tier: "NFE", + }, + arcanine: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + arcaninehisui: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UU", + }, + poliwag: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + poliwhirl: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + poliwrath: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + politoed: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + abra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kadabra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + alakazam: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + alakazammega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + machop: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + machoke: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + machamp: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + machampgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + bellsprout: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + weepinbell: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + victreebel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tentacool: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tentacruel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + geodude: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + geodudealola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + graveler: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + graveleralola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + golem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + golemalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ponyta: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ponytagalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rapidash: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rapidashgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + slowpoke: { + tier: "LC", + }, + slowpokegalar: { + tier: "LC", + }, + slowbro: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + slowbromega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + slowbrogalar: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + slowking: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + slowkinggalar: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + magnemite: { + tier: "LC", + }, + magneton: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + magnezone: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + farfetchd: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + farfetchdgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sirfetchd: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + doduo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dodrio: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + seel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dewgong: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + grimer: { + tier: "LC", + }, + grimeralola: { + tier: "LC", + }, + muk: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mukalola: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shellder: { + tier: "LC", + }, + cloyster: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gastly: { + tier: "NFE", + }, + haunter: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + gengar: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + gengarmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "AG", + }, + gengargmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + onix: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + steelix: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + steelixmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + drowzee: { + tier: "LC", + }, + hypno: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + krabby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kingler: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kinglergmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + voltorb: { + tier: "LC", + }, + voltorbhisui: { + tier: "LC", + }, + electrode: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + electrodehisui: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + exeggcute: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + exeggutor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + exeggutoralola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cubone: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + marowak: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + marowakalola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + marowakalolatotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tyrogue: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + hitmonlee: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + hitmonchan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + hitmontop: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lickitung: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lickilicky: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + koffing: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + weezing: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + weezinggalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rhyhorn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rhydon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + rhyperior: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + happiny: { + tier: "LC", + }, + chansey: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "UU", + }, + blissey: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tangela: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tangrowth: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kangaskhan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kangaskhanmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + horsea: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + seadra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + kingdra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + goldeen: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + seaking: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + staryu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + starmie: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mimejr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + mrmime: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mrmimegalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + mrrime: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + scyther: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + scizor: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UU", + }, + scizormega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + kleavor: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "UU", + }, + smoochum: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + jynx: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + elekid: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + electabuzz: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + electivire: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + magby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + magmar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + magmortar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pinsir: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pinsirmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + tauros: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + taurospaldeacombat: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + taurospaldeablaze: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + taurospaldeaaqua: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + magikarp: { + tier: "LC", + }, + gyarados: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UU", + }, + gyaradosmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + lapras: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + laprasgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + ditto: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + eevee: { + tier: "LC", + }, + eeveestarter: { + isNonstandard: "LGPE", + tier: "Illegal", + }, + eeveegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + vaporeon: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + jolteon: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flareon: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + espeon: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + umbreon: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + leafeon: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + glaceon: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sylveon: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + porygon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + porygon2: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + porygonz: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + omanyte: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + omastar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kabuto: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + kabutops: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + aerodactyl: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + aerodactylmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + munchlax: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + snorlax: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + snorlaxgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + articuno: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + articunogalar: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + zapdos: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + zapdosgalar: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + moltres: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + moltresgalar: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RUBL", + }, + dratini: { + tier: "LC", + }, + dragonair: { + tier: "NFE", + }, + dragonite: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + mewtwo: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + mewtwomegax: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + mewtwomegay: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + mew: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + chikorita: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bayleef: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + meganium: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cyndaquil: { + tier: "LC", + }, + quilava: { + tier: "NFE", + }, + typhlosion: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + typhlosionhisui: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + totodile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + croconaw: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + feraligatr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sentret: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + furret: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + hoothoot: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + noctowl: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ledyba: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ledian: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + spinarak: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ariados: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + chinchou: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lanturn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + togepi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + togetic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + togekiss: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + natu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + xatu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mareep: { + tier: "LC", + }, + flaaffy: { + tier: "NFE", + }, + ampharos: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ampharosmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + azurill: { + tier: "LC", + }, + marill: { + tier: "NFE", + }, + azumarill: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "UU", + }, + bonsly: { + tier: "LC", + }, + sudowoodo: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + hoppip: { + tier: "LC", + }, + skiploom: { + tier: "NFE", + }, + jumpluff: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + aipom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ambipom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sunkern: { + tier: "LC", + }, + sunflora: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + yanma: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + yanmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wooper: { + tier: "LC", + }, + wooperpaldea: { + tier: "LC", + }, + quagsire: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + murkrow: { + tier: "NFE", + doublesTier: "DUU", + }, + honchkrow: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + misdreavus: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + mismagius: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + unown: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wynaut: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wobbuffet: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + girafarig: { + tier: "NFE", + }, + farigiraf: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + pineco: { + tier: "LC", + }, + forretress: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dunsparce: { + tier: "NFE", + }, + dudunsparce: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gligar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + gliscor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + snubbull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + granbull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + qwilfish: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + qwilfishhisui: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + overqwil: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shuckle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + heracross: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + heracrossmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + sneasel: { + tier: "NFE", + }, + sneaselhisui: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + weavile: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "UUBL", + }, + sneasler: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + teddiursa: { + tier: "LC", + }, + ursaring: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + ursaluna: { + tier: "UU", + doublesTier: "DUber", + natDexTier: "Uber", + }, + ursalunabloodmoon: { + isNonstandard: "Future", + tier: "Illegal", + }, + slugma: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + magcargo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + swinub: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + piloswine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + mamoswine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + corsola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + corsolagalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cursola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + remoraid: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + octillery: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + delibird: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mantyke: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + mantine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + skarmory: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + houndour: { + tier: "LC", + }, + houndoom: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + houndoommega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + phanpy: { + tier: "LC", + }, + donphan: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + stantler: { + tier: "NFE", + }, + wyrdeer: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + smeargle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + miltank: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + raikou: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + entei: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + suicune: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + larvitar: { + tier: "LC", + }, + pupitar: { + tier: "NFE", + }, + tyranitar: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + tyranitarmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + lugia: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + hooh: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + celebi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + treecko: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + grovyle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + sceptile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sceptilemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + torchic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + combusken: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + blaziken: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + blazikenmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + mudkip: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + marshtomp: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + swampert: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + swampertmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + poochyena: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + mightyena: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + zigzagoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + zigzagoongalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + linoone: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + linoonegalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + obstagoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wurmple: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + silcoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + beautifly: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cascoon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + dustox: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lotad: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lombre: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + ludicolo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + seedot: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + nuzleaf: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + shiftry: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + taillow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + swellow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wingull: { + tier: "LC", + }, + pelipper: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + ralts: { + tier: "LC", + }, + kirlia: { + tier: "NFE", + }, + gardevoir: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gardevoirmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + gallade: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + gallademega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + surskit: { + tier: "LC", + }, + masquerain: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shroomish: { + tier: "LC", + }, + breloom: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + slakoth: { + tier: "LC", + }, + vigoroth: { + tier: "NFE", + }, + slaking: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nincada: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ninjask: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + shedinja: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "AG", + }, + whismur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + loudred: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + exploud: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + makuhita: { + tier: "LC", + }, + hariyama: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + nosepass: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + probopass: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + skitty: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + delcatty: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sableye: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sableyemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + mawile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mawilemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + aron: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lairon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + aggron: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + aggronmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + meditite: { + tier: "NFE", + }, + medicham: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + medichammega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + electrike: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + manectric: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + manectricmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + plusle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + minun: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + volbeat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + illumise: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + budew: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + roselia: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + roserade: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gulpin: { + tier: "LC", + }, + swalot: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + carvanha: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sharpedo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sharpedomega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wailmer: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wailord: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + numel: { + tier: "LC", + }, + camerupt: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cameruptmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + torkoal: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "RU", + }, + spoink: { + tier: "LC", + }, + grumpig: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + spinda: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + trapinch: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + vibrava: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + flygon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cacnea: { + tier: "LC", + }, + cacturne: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + swablu: { + tier: "LC", + }, + altaria: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + altariamega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + zangoose: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + seviper: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lunatone: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + solrock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + barboach: { + tier: "LC", + }, + whiscash: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + corphish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + crawdaunt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + baltoy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + claydol: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lileep: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cradily: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + anorith: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + armaldo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + feebas: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + milotic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + castform: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + castformsunny: { + isNonstandard: "Past", + }, + castformrainy: { + isNonstandard: "Past", + }, + castformsnowy: { + isNonstandard: "Past", + }, + kecleon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + shuppet: { + tier: "LC", + }, + banette: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + banettemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + duskull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dusclops: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + dusknoir: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tropius: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + chingling: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + chimecho: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + absol: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + absolmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + snorunt: { + tier: "LC", + }, + glalie: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + glaliemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + froslass: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + spheal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + sealeo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + walrein: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + clamperl: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + huntail: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gorebyss: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + relicanth: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + luvdisc: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bagon: { + tier: "LC", + }, + shelgon: { + tier: "NFE", + }, + salamence: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + salamencemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + beldum: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + metang: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + metagross: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + metagrossmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + regirock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + regice: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + registeel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + latias: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + latiasmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + latios: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + latiosmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + kyogre: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + kyogreprimal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + groudon: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + groudonprimal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + rayquaza: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + rayquazamega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "AG", + }, + jirachi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + deoxys: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + deoxysattack: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + deoxysdefense: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + deoxysspeed: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + turtwig: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + grotle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + torterra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + chimchar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + monferno: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + infernape: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + piplup: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + prinplup: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + empoleon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + starly: { + tier: "LC", + }, + staravia: { + tier: "NFE", + }, + staraptor: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bidoof: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bibarel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + kricketot: { + tier: "LC", + }, + kricketune: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shinx: { + tier: "LC", + }, + luxio: { + tier: "NFE", + }, + luxray: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cranidos: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + rampardos: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + shieldon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bastiodon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + burmy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + wormadam: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wormadamsandy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wormadamtrash: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mothim: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + combee: { + tier: "LC", + }, + vespiquen: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pachirisu: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + buizel: { + tier: "LC", + }, + floatzel: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cherubi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cherrim: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cherrimsunshine: { + isNonstandard: "Past", + }, + shellos: { + tier: "LC", + }, + gastrodon: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + drifloon: { + tier: "LC", + }, + drifblim: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + buneary: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lopunny: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lopunnymega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + glameow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + purugly: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stunky: { + tier: "LC", + }, + skuntank: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bronzor: { + tier: "LC", + }, + bronzong: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + chatot: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + spiritomb: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gible: { + tier: "LC", + }, + gabite: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + garchomp: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + garchompmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "(OU)", + }, + riolu: { + tier: "LC", + }, + lucario: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lucariomega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + hippopotas: { + tier: "LC", + }, + hippowdon: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + skorupi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + drapion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + croagunk: { + tier: "LC", + }, + toxicroak: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + carnivine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + finneon: { + tier: "LC", + }, + lumineon: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + snover: { + tier: "LC", + }, + abomasnow: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + abomasnowmega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rotom: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotomheat: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotomwash: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + rotomfrost: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotomfan: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rotommow: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + uxie: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mesprit: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + azelf: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dialga: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + dialgaorigin: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + palkia: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + palkiaorigin: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + heatran: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + regigigas: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + giratina: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + giratinaorigin: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + cresselia: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "RUBL", + }, + phione: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + manaphy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + darkrai: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + shaymin: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + shayminsky: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + arceus: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + victini: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + snivy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + servine: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + serperior: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + tepig: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pignite: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + emboar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + oshawott: { + tier: "LC", + }, + dewott: { + tier: "NFE", + }, + samurott: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + samurotthisui: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + patrat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + watchog: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + lillipup: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + herdier: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + stoutland: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + purrloin: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + liepard: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pansage: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + simisage: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pansear: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + simisear: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + panpour: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + simipour: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + munna: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + musharna: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pidove: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tranquill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + unfezant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + blitzle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + zebstrika: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + roggenrola: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + boldore: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + gigalith: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + woobat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + swoobat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + drilbur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + excadrill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + audino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + audinomega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + timburr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + gurdurr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + conkeldurr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tympole: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + palpitoad: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + seismitoad: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + throh: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sawk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sewaddle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + swadloon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + leavanny: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + venipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + whirlipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + scolipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cottonee: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + whimsicott: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + petilil: { + tier: "LC", + }, + lilligant: { + tier: "PUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lilliganthisui: { + tier: "UUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + basculin: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + basculinbluestriped: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + basculinwhitestriped: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + basculegion: { + tier: "RU", + doublesTier: "DUber", + natDexTier: "RU", + }, + basculegionf: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "RU", + }, + sandile: { + tier: "LC", + }, + krokorok: { + tier: "NFE", + }, + krookodile: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + darumaka: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + darumakagalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + darmanitan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + darmanitanzen: { + isNonstandard: "Past", + }, + darmanitangalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + darmanitangalarzen: { + isNonstandard: "Past", + }, + maractus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + dwebble: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + crustle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + scraggy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + scrafty: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sigilyph: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + yamask: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + yamaskgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cofagrigus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + runerigus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tirtouga: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + carracosta: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + archen: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + archeops: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + trubbish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + garbodor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + garbodorgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + zorua: { + tier: "LC", + }, + zoruahisui: { + tier: "LC", + }, + zoroark: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + zoroarkhisui: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + minccino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cinccino: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gothita: { + tier: "LC", + }, + gothorita: { + tier: "NFE", + }, + gothitelle: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + solosis: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + duosion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + reuniclus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ducklett: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + swanna: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + vanillite: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + vanillish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + vanilluxe: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + deerling: { + tier: "LC", + }, + sawsbuck: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + emolga: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + karrablast: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + escavalier: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + foongus: { + tier: "LC", + }, + amoonguss: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "RU", + }, + frillish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + jellicent: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + alomomola: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + joltik: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + galvantula: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ferroseed: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ferrothorn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + klink: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + klang: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + klinklang: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tynamo: { + tier: "LC", + }, + eelektrik: { + tier: "NFE", + }, + eelektross: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + elgyem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + beheeyem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + litwick: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + lampent: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + chandelure: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + axew: { + tier: "LC", + }, + fraxure: { + tier: "NFE", + }, + haxorus: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cubchoo: { + tier: "LC", + }, + beartic: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cryogonal: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + shelmet: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + accelgor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stunfisk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stunfiskgalar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mienfoo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + mienshao: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + druddigon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + golett: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + golurk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pawniard: { + tier: "LC", + }, + bisharp: { + tier: "RU", + doublesTier: "NFE", + natDexTier: "UU", + }, + bouffalant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rufflet: { + tier: "NFE", + }, + braviary: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + braviaryhisui: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + vullaby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + mandibuzz: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + heatmor: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + durant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + deino: { + tier: "LC", + }, + zweilous: { + tier: "NFE", + }, + hydreigon: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + larvesta: { + tier: "LC", + }, + volcarona: { + tier: "Uber", + doublesTier: "DUU", + natDexTier: "OU", + }, + cobalion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + terrakion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RUBL", + }, + virizion: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tornadus: { + tier: "NUBL", + doublesTier: "DOU", + natDexTier: "RU", + }, + tornadustherian: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UUBL", + }, + thundurus: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + thundurustherian: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + reshiram: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + zekrom: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + landorus: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + landorustherian: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + kyurem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + kyuremblack: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + kyuremwhite: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + keldeo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + keldeoresolute: { + isNonstandard: "Past", + }, + meloetta: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + genesect: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectburn: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectchill: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectdouse: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + genesectshock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + chespin: { + tier: "LC", + }, + quilladin: { + tier: "NFE", + }, + chesnaught: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fennekin: { + tier: "LC", + }, + braixen: { + tier: "NFE", + }, + delphox: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + froakie: { + tier: "LC", + }, + frogadier: { + tier: "NFE", + }, + greninja: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + greninjaash: { + isNonstandard: "Past", + tier: "Illegal", + }, + bunnelby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + diggersby: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + fletchling: { + tier: "LC", + }, + fletchinder: { + tier: "NFE", + }, + talonflame: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + scatterbug: { + tier: "LC", + }, + spewpa: { + tier: "NFE", + }, + vivillon: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + litleo: { + tier: "LC", + }, + pyroar: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flabebe: { + tier: "LC", + }, + floette: { + tier: "NFE", + }, + floetteeternal: { + isNonstandard: "Past", + tier: "Illegal", + }, + florges: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + skiddo: { + tier: "LC", + }, + gogoat: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pancham: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pangoro: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + furfrou: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + espurr: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + meowstic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + meowsticf: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + honedge: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + doublade: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + aegislash: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + aegislashblade: { + isNonstandard: "Past", + }, + spritzee: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + aromatisse: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + swirlix: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + slurpuff: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + inkay: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + malamar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + binacle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + barbaracle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + skrelp: { + tier: "LC", + }, + dragalge: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + clauncher: { + tier: "LC", + }, + clawitzer: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + helioptile: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + heliolisk: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tyrunt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + tyrantrum: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + amaura: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + aurorus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + hawlucha: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + dedenne: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + carbink: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + goomy: { + tier: "LC", + }, + sliggoo: { + tier: "NFE", + }, + sliggoohisui: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + goodra: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + goodrahisui: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "RU", + }, + klefki: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + phantump: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + trevenant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pumpkaboo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + pumpkaboosmall: { + isNonstandard: "Past", + }, + pumpkaboolarge: { + isNonstandard: "Past", + }, + pumpkaboosuper: { + isNonstandard: "Past", + }, + gourgeist: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gourgeistsmall: { + isNonstandard: "Past", + }, + gourgeistlarge: { + isNonstandard: "Past", + }, + gourgeistsuper: { + isNonstandard: "Past", + }, + bergmite: { + tier: "LC", + }, + avalugg: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + avalugghisui: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + noibat: { + tier: "LC", + }, + noivern: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + xerneas: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + xerneasneutral: { + isNonstandard: "Custom", // can't be used in battle + tier: "Illegal", + }, + yveltal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + zygarde: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + zygarde10: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + zygardecomplete: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + diancie: { + tier: "RU", + doublesTier: "DOU", + natDexTier: "RU", + }, + dianciemega: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + hoopa: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + hoopaunbound: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UUBL", + }, + volcanion: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "RU", + }, + rowlet: { + tier: "LC", + }, + dartrix: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + decidueye: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + decidueyehisui: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + litten: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + torracat: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + incineroar: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + popplio: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + brionne: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + primarina: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + pikipek: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + trumbeak: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + toucannon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + yungoos: { + tier: "LC", + }, + gumshoos: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gumshoostotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + grubbin: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + charjabug: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + vikavolt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + vikavolttotem: { + isNonstandard: "Past", + }, + crabrawler: { + tier: "LC", + }, + crabominable: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricorio: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricoriopompom: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricoriopau: { + tier: "PUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oricoriosensu: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + cutiefly: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + ribombee: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + ribombeetotem: { + isNonstandard: "Past", + }, + rockruff: { + tier: "LC", + }, + rockruffdusk: { + tier: "LC", + }, + lycanroc: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lycanrocmidnight: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lycanrocdusk: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + wishiwashi: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wishiwashischool: { + isNonstandard: "Past", + }, + mareanie: { + tier: "LC", + }, + toxapex: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + mudbray: { + tier: "LC", + }, + mudsdale: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dewpider: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + araquanid: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + araquanidtotem: { + isNonstandard: "Past", + }, + fomantis: { + tier: "LC", + }, + lurantis: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + lurantistotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + morelull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + shiinotic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + salandit: { + tier: "LC", + }, + salazzle: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + salazzletotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + stufful: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + bewear: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + bounsweet: { + tier: "LC", + }, + steenee: { + tier: "NFE", + }, + tsareena: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + comfey: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + oranguru: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + passimian: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + wimpod: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + golisopod: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sandygast: { + tier: "LC", + }, + palossand: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pyukumuku: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + typenull: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + silvally: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallybug: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallydark: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallydragon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyelectric: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyfairy: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyfighting: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyfire: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyflying: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyghost: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallygrass: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyground: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyice: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallypoison: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallypsychic: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallyrock: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallysteel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + silvallywater: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + minior: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + miniormeteor: { + isNonstandard: "Past", + }, + komala: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + turtonator: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + togedemaru: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + togedemarutotem: { + isNonstandard: "Past", + }, + mimikyu: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + mimikyutotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + mimikyubustedtotem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + bruxish: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + drampa: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + dhelmise: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + jangmoo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + hakamoo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + kommoo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + kommoototem: { + isNonstandard: "Past", + }, + tapukoko: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + tapulele: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + tapubulu: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + tapufini: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + cosmog: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + cosmoem: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + solgaleo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + lunala: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + nihilego: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + buzzwole: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + pheromosa: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + xurkitree: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UUBL", + }, + celesteela: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + kartana: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "OU", + }, + guzzlord: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + necrozma: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + necrozmaduskmane: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + necrozmadawnwings: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + necrozmaultra: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + magearna: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + marshadow: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + poipole: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + naganadel: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + stakataka: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + blacephalon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + zeraora: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + meltan: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + melmetal: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + melmetalgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + grookey: { + tier: "LC", + }, + thwackey: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + rillaboom: { + tier: "UU", + doublesTier: "DOU", + natDexTier: "OU", + }, + rillaboomgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + scorbunny: { + tier: "LC", + }, + raboot: { + tier: "NFE", + }, + cinderace: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + cinderacegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + sobble: { + tier: "LC", + }, + drizzile: { + tier: "NFE", + }, + inteleon: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + inteleongmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + skwovet: { + tier: "LC", + }, + greedent: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rookidee: { + tier: "LC", + }, + corvisquire: { + tier: "NFE", + }, + corviknight: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + corviknightgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + blipbug: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dottler: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "NFE", + }, + orbeetle: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + orbeetlegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + nickit: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + thievul: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + gossifleur: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + eldegoss: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + wooloo: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + dubwool: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + chewtle: { + tier: "LC", + }, + drednaw: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + drednawgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + yamper: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + boltund: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + rolycoly: { + tier: "LC", + }, + carkol: { + tier: "NFE", + }, + coalossal: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + coalossalgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + applin: { + tier: "LC", + }, + flapple: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flapplegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + appletun: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + appletungmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dipplin: { + isNonstandard: "Future", + tier: "Illegal", + }, + silicobra: { + tier: "LC", + }, + sandaconda: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + sandacondagmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + cramorant: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + cramorantgulping: { + isNonstandard: "Past", + }, + cramorantgorging: { + isNonstandard: "Past", + }, + arrokuda: { + tier: "LC", + }, + barraskewda: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + toxel: { + tier: "LC", + }, + toxtricity: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + toxtricitygmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + toxtricitylowkeygmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + sizzlipede: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + centiskorch: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + centiskorchgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + clobbopus: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + grapploct: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + sinistea: { + tier: "LC", + }, + polteageist: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RUBL", + }, + hatenna: { + tier: "LC", + }, + hattrem: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + hatterene: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + hatterenegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + impidimp: { + tier: "LC", + }, + morgrem: { + tier: "NFE", + }, + grimmsnarl: { + tier: "NU", + doublesTier: "DOU", + natDexTier: "UU", + }, + grimmsnarlgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + milcery: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "LC", + }, + alcremie: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + alcremiegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + falinks: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pincurchin: { + tier: "(PU)", + doublesTier: "DUU", + natDexTier: "RU", + }, + snom: { + tier: "LC", + }, + frosmoth: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + stonjourner: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + eiscue: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + indeedee: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + indeedeef: { + tier: "(PU)", + doublesTier: "DOU", + natDexTier: "RU", + }, + morpeko: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + morpekohangry: { + isNonstandard: "Past", + }, + cufant: { + tier: "LC", + }, + copperajah: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + copperajahgmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dracozolt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "UU", + }, + arctozolt: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + dracovish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "Uber", + }, + arctovish: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + duraludon: { + isNonstandard: "Past", + tier: "Illegal", + natDexTier: "RU", + }, + duraludongmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + dreepy: { + tier: "LC", + }, + drakloak: { + tier: "NFE", + }, + dragapult: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + zacian: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + zaciancrowned: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + zamazenta: { + tier: "OU", + doublesTier: "DUber", + natDexTier: "OU", + }, + zamazentacrowned: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + eternatus: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + eternatuseternamax: { + isNonstandard: "Past", + tier: "Illegal", + }, + kubfu: { + tier: "NFE", + }, + urshifu: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + urshifurapidstrike: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "OU", + }, + urshifugmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + urshifurapidstrikegmax: { + isNonstandard: "Past", + tier: "Illegal", + }, + zarude: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + regieleki: { + tier: "Uber", + doublesTier: "DUU", + natDexTier: "Uber", + }, + regidrago: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + glastrier: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + spectrier: { + tier: "Uber", + doublesTier: "(DUU)", + natDexTier: "Uber", + }, + calyrex: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + calyrexice: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + calyrexshadow: { + tier: "AG", + doublesTier: "DUber", + natDexTier: "AG", + }, + enamorus: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "UU", + }, + enamorustherian: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RUBL", + }, + sprigatito: { + tier: "LC", + }, + floragato: { + tier: "NFE", + }, + meowscarada: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "UU", + }, + fuecoco: { + tier: "LC", + }, + crocalor: { + tier: "NFE", + }, + skeledirge: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "UU", + }, + quaxly: { + tier: "LC", + }, + quaxwell: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + quaquaval: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + lechonk: { + tier: "LC", + }, + oinkologne: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + oinkolognef: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tarountula: { + tier: "LC", + }, + spidops: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nymble: { + tier: "LC", + }, + lokix: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + rellor: { + tier: "LC", + }, + rabsca: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + greavard: { + tier: "LC", + }, + houndstone: { + tier: "NU", + doublesTier: "DUU", + natDexTier: "RU", + }, + flittle: { + tier: "NFE", + }, + espathra: { + tier: "Uber", + doublesTier: "(DUU)", + natDexTier: "Uber", + }, + wiglett: { + tier: "LC", + }, + wugtrio: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + dondozo: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "UUBL", + }, + veluza: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + finizen: { + tier: "LC", + }, + palafin: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + smoliv: { + tier: "LC", + }, + dolliv: { + tier: "NFE", + }, + arboliva: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + capsakid: { + tier: "LC", + }, + scovillain: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tadbulb: { + tier: "LC", + }, + bellibolt: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + varoom: { + tier: "LC", + }, + revavroom: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + orthworm: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + tandemaus: { + tier: "LC", + }, + maushold: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + cetoddle: { + tier: "LC", + }, + cetitan: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + frigibax: { + tier: "LC", + }, + arctibax: { + tier: "NFE", + }, + baxcalibur: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "OU", + }, + tatsugiri: { + tier: "RU", + doublesTier: "DUber", + natDexTier: "RU", + }, + cyclizar: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + pawmi: { + tier: "LC", + }, + pawmo: { + tier: "NFE", + }, + pawmot: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + wattrel: { + tier: "LC", + }, + kilowattrel: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bombirdier: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + squawkabilly: { + tier: "(PU)", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + flamigo: { + tier: "NUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + klawf: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + nacli: { + tier: "LC", + }, + naclstack: { + tier: "NU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + garganacl: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + glimmet: { + tier: "LC", + }, + glimmora: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + shroodle: { + tier: "LC", + }, + grafaiai: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fidough: { + tier: "LC", + }, + dachsbun: { + tier: "PU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + maschiff: { + tier: "LC", + }, + mabosstiff: { + tier: "NU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + bramblin: { + tier: "LC", + }, + brambleghast: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + gimmighoul: { + tier: "LC", + }, + gimmighoulroaming: { + tier: "LC", + }, + gholdengo: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + greattusk: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + brutebonnet: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + sandyshocks: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + screamtail: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + fluttermane: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + slitherwing: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + roaringmoon: { + tier: "UUBL", + doublesTier: "DUU", + natDexTier: "Uber", + }, + irontreads: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + ironmoth: { + tier: "OU", + doublesTier: "DUU", + natDexTier: "UU", + }, + ironhands: { + tier: "UUBL", + doublesTier: "DOU", + natDexTier: "UU", + }, + ironjugulis: { + tier: "RUBL", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ironthorns: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + ironbundle: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + ironvaliant: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + tinglu: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "OU", + }, + chienpao: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + wochien: { + tier: "RU", + doublesTier: "DUU", + natDexTier: "RU", + }, + chiyu: { + tier: "Uber", + doublesTier: "DOU", + natDexTier: "Uber", + }, + koraidon: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + miraidon: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "AG", + }, + tinkatink: { + tier: "LC", + }, + tinkatuff: { + tier: "PU", + doublesTier: "NFE", + natDexTier: "NFE", + }, + tinkaton: { + tier: "UU", + doublesTier: "DUU", + natDexTier: "RU", + }, + charcadet: { + tier: "LC", + }, + armarouge: { + tier: "RU", + doublesTier: "DOU", + natDexTier: "RU", + }, + ceruledge: { + tier: "UU", + doublesTier: "(DUU)", + natDexTier: "UU", + }, + toedscool: { + tier: "LC", + }, + toedscruel: { + tier: "RU", + doublesTier: "(DUU)", + natDexTier: "RU", + }, + kingambit: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "Uber", + }, + clodsire: { + tier: "OU", + doublesTier: "(DUU)", + natDexTier: "OU", + }, + annihilape: { + tier: "Uber", + doublesTier: "DUber", + natDexTier: "Uber", + }, + walkingwake: { + tier: "OU", + doublesTier: "DOU", + natDexTier: "Uber", + }, + ironleaves: { + tier: "RUBL", + doublesTier: "DUU", + natDexTier: "RUBL", + }, + poltchageist: { + isNonstandard: "Future", + tier: "Illegal", + }, + poltchageistartisan: { + isNonstandard: "Future", + tier: "Illegal", + }, + sinistcha: { + isNonstandard: "Future", + tier: "Illegal", + }, + sinistchamasterpiece: { + isNonstandard: "Future", + tier: "Illegal", + }, + okidogi: { + isNonstandard: "Future", + tier: "Illegal", + }, + munkidori: { + isNonstandard: "Future", + tier: "Illegal", + }, + fezandipiti: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerpon: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerponwellspring: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerponhearthflame: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerponcornerstone: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerpontealtera: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerponwellspringtera: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerponhearthflametera: { + isNonstandard: "Future", + tier: "Illegal", + }, + ogerponcornerstonetera: { + isNonstandard: "Future", + tier: "Illegal", + }, +}; diff --git a/data/mods/gen9predlc/items.ts b/data/mods/gen9predlc/items.ts new file mode 100644 index 000000000000..1c2b1b537ce5 --- /dev/null +++ b/data/mods/gen9predlc/items.ts @@ -0,0 +1,46 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + custapberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + enigmaberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + jabocaberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + keeberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + marangaberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + micleberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + prismscale: { + inherit: true, + isNonstandard: "Past", + }, + razorfang: { + inherit: true, + isNonstandard: "Past", + }, + reapercloth: { + inherit: true, + isNonstandard: "Past", + }, + rowapberry: { + inherit: true, + isNonstandard: "Unobtainable", + }, + syrupyapple: { + inherit: true, + isNonstandard: "Future", + }, +}; diff --git a/data/mods/gen9predlc/learnsets.ts b/data/mods/gen9predlc/learnsets.ts new file mode 100644 index 000000000000..6285448247f6 --- /dev/null +++ b/data/mods/gen9predlc/learnsets.ts @@ -0,0 +1,88585 @@ +/* eslint-disable max-len */ + +export const Learnsets: import('../../../sim/dex-species').ModdedLearnsetDataTable = { + bulbasaur: { + learnset: { + amnesia: ["8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + block: ["5S3"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["6S5"], + charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + doubleedge: ["8L33", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "5S3"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["5S3"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grasswhistle: ["7E", "6E", "5E", "4E", "3E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + growl: ["8L1", "8V", "7L3", "7V", "6L3", "6S4", "6S5", "5L3", "5S2", "4L3", "3L4", "3S1"], + growth: ["8L6", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L32", "3S0"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["8E", "7E", "6E", "5E", "4E"], + knockoff: ["7T", "6T", "5T", "4T"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8L9", "8V", "7L7", "7V", "6L7", "6S4", "5L7", "5S2", "4L7", "3L7", "3S1"], + lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + magicalleaf: ["8M", "7E", "6E", "5E", "4E", "3E"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], + outrage: ["8V"], + petaldance: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "6S4", "5L13", "4L13", "3L15"], + powerwhip: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8L12", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L20"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["7E", "6E", "5E", "4E"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L46", "3S0"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L24", "7L21", "7V", "6L21", "5L21", "4L21", "3L25", "3S0"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["8L27", "7T", "7L33", "7V", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L39", "3S0"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "6S5", "5L1", "5S2", "4L1", "3L1", "3S1"], + takedown: ["8L21", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + toxic: ["8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + vinewhip: ["8L3", "8V", "7L7", "7V", "6L9", "6S4", "5L9", "5S2", "4L9", "3L10", "3S1"], + weatherball: ["8M", "5S3"], + workup: ["8M", "7M"], + worryseed: ["8L30", "7T", "7L31", "6T", "6L31", "5T", "5L31", "4T", "4L31"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["sweetscent", "growth", "solarbeam", "synthesis"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "leechseed", "vinewhip"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "growl", "leechseed", "vinewhip"]}, + {generation: 5, level: 1, shiny: 1, ivs: {def: 31}, moves: ["falseswipe", "block", "frenzyplant", "weatherball"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["growl", "leechseed", "vinewhip", "poisonpowder"], pokeball: "cherishball"}, + {generation: 6, level: 5, isHidden: true, moves: ["tackle", "growl", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + ivysaur: { + learnset: { + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + doubleedge: ["8L45", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + growth: ["8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L38"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leafstorm: ["8M"], + leechseed: ["8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + outrage: ["8V"], + poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + powerwhip: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L20", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L50", "8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L56"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["8L35", "7T", "7L39", "7V", "6T", "6L39", "5T", "5L39", "4T", "4L39", "3L47"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + vinewhip: ["8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L10"], + weatherball: ["8M"], + workup: ["8M", "7M"], + worryseed: ["8L40", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L36"], + }, + }, + venusaur: { + learnset: { + amnesia: ["8M", "8V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "7V", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + doubleedge: ["8L51", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M"], + earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["8T", "7T", "6T", "6S0", "5T", "4T", "3T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "6S0", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + growth: ["8L1", "8V", "7L28", "7V", "6L28", "5L28", "4L28", "3L41"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leafstorm: ["8M"], + leechseed: ["8L9", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + petalblizzard: ["8L0", "7L50", "6L50"], + petaldance: ["8L1", "8V", "7L1", "6L32", "5L32", "4L32"], + poisonpowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + powerwhip: ["8M", "8V"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L22"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L20", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L15", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L58", "8V", "7M", "7L53", "7V", "6M", "6L53", "6S0", "5M", "5L53", "4M", "4L53", "3M", "3L65"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L30", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["8L37", "7T", "7L45", "7V", "6T", "6L45", "6S0", "5T", "5L45", "4T", "4L45", "3L53"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L25", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + terrainpulse: ["8T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + vinewhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["8M"], + workup: ["8M", "7M"], + worryseed: ["8L44", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], + }, + eventData: [ + {generation: 6, level: 100, isHidden: true, moves: ["solarbeam", "frenzyplant", "synthesis", "grasspledge"], pokeball: "cherishball"}, + ], + }, + charmander: { + learnset: { + acrobatics: ["8M", "5S6"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["7E", "6E"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + bellydrum: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blastburn: ["5S6"], + block: ["5S6"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["6S8"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], + crunch: ["9M", "8M", "7E", "6E", "5E", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L12", "8L12", "7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5E"], + dragonrage: ["8V", "7L16", "7V", "6L16", "6S7", "5L16", "4L16", "3L43"], + dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], + dragontail: ["9M", "9E", "8E"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L4", "8L4", "8V", "7L7", "7V", "6L7", "6S7", "5L7", "5S4", "4L7", "3L7", "3S0"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "5S6"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L17", "8M", "8L17", "7L25", "6L25", "5L25", "4L25"], + firepledge: ["9M", "8T", "7T", "6T", "5T"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "9L32", "8M", "8L32", "8V", "7L43", "7V", "6L43", "5L43", "4L37", "3L49"], + flameburst: ["7L28", "6L28", "5L28"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L24", "8M", "8L24", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L34", "3M", "3L31"], + flareblitz: ["9M", "9L40", "8M", "8L40", "7E", "6E", "5E", "4E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8V"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S7", "6S8", "5L1", "5S4", "4L1", "3L1", "3S0"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "4S1", "4S2", "4S3", "4S5", "3M"], + honeclaws: ["6M", "5M"], + howl: ["4S1", "4S2", "4S3", "4S5"], + incinerate: ["6M", "5M"], + inferno: ["9L36", "8L36", "7L46", "6L46", "5L46"], + irontail: ["9E", "8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metalclaw: ["9M", "9E", "8E", "7E", "6E", "5E", "4E", "3L13"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "7E", "7V", "6E", "5T", "5E", "4E", "3E"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["4S1", "4S2", "4S3", "4S5"], + rage: ["7V", "3L19"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "4S1", "4S2", "4S3", "4S5", "3M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L19", "7V", "6L19", "5L19", "4L19", "3L25"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S8", "5L1", "5S4", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["9L20", "8L20", "8V", "7L34", "7V", "6L34", "5L34", "4L28", "3L37"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L8", "8L8", "8V", "7L10", "7V", "6L10", "6S7", "5L10", "5S4", "4L10", "3L13"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["8M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wingattack: ["8E"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "growl", "ember"], pokeball: "pokeball"}, + {generation: 4, level: 40, gender: "M", nature: "Mild", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 4, level: 40, gender: "M", nature: "Naive", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 4, level: 40, gender: "M", nature: "Naughty", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["scratch", "growl", "ember", "smokescreen"]}, + {generation: 4, level: 40, gender: "M", nature: "Hardy", moves: ["return", "hiddenpower", "quickattack", "howl"], pokeball: "cherishball"}, + {generation: 5, level: 1, shiny: 1, ivs: {spe: 31}, moves: ["falseswipe", "block", "blastburn", "acrobatics"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["growl", "ember", "smokescreen", "dragonrage"], pokeball: "cherishball"}, + {generation: 6, level: 5, isHidden: true, moves: ["scratch", "growl", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + charmeleon: { + learnset: { + acrobatics: ["8M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + crunch: ["9M", "8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L12", "8L12", "7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T"], + dragonrage: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L48"], + dragontail: ["9M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L19", "8M", "8L19", "7L28", "6L28", "5L28", "4L28"], + firepledge: ["9M", "8T", "7T", "6T", "5T"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "8M", "8L42", "8V", "7L50", "7V", "6L50", "5L50", "4L43", "3L55"], + flameburst: ["7L32", "6L32", "5L32"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L30", "8M", "8L30", "8V", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L39", "3M", "3L34"], + flareblitz: ["9M", "9L54", "8M", "8L54"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8V"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + inferno: ["9L48", "8L48", "7L54", "6L54", "5L54"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metalclaw: ["3L13"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "5T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V", "3L20"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L37", "8M", "8L37", "7L21", "7V", "6L21", "5L21", "4L21", "3L27"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["9L24", "8L24", "8V", "7L39", "7V", "6L39", "5L39", "4L32", "3L41"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["8M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M"], + }, + }, + charizard: { + learnset: { + acrobatics: ["9M", "9S11", "8M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L0", "8M", "8L0", "8V", "7L1", "6L1", "6S1", "6S2", "5L1", "4L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bellydrum: ["9S11"], + bide: ["7V"], + blastburn: ["9M", "8T", "7T", "6T", "6S4", "5T", "4T", "3T"], + blazekick: ["8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crunch: ["9M", "9S11", "8M", "8V"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + defog: ["7T", "4M"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L12", "8L12", "7V"], + dragonclaw: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "7S6", "7S7", "6M", "6L1", "6S2", "5M", "5L1", "4M", "4L1", "3M"], + dragondance: ["9M", "8M", "7S9"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L17", "7V", "7S6", "7S7", "7S8", "6L17", "6S2", "5L17", "4L17", "3L54", "3S0"], + dragontail: ["9M", "8V", "8S10", "7M", "6M", "5M"], + dualwingbeat: ["8T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "7S9", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S5", "5L1", "4L1", "3L1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L19", "8M", "8L19", "7L28", "6L28", "6S1", "6S2", "5L28", "4L28"], + firepledge: ["9M", "8T", "7T", "6T", "6S4", "5T"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "9L46", "8M", "8L46", "8V", "7L56", "7V", "6L56", "6S5", "5L56", "4L49", "3L64", "3S0"], + fissure: ["7V"], + flameburst: ["7L32", "6L32", "6S1", "6S5", "5L32"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L30", "8M", "8L30", "8V", "8S10", "7M", "7L47", "7V", "7S8", "6M", "6L47", "6S5", "5M", "5L47", "4M", "4L42", "3M", "3L34"], + flareblitz: ["9M", "9L62", "9S11", "8M", "8L62", "8V", "7L1", "7S6", "7S7", "7S9", "6L1", "6S4", "5L77", "4L66"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "8V", "7M", "7V", "7S6", "7S7", "7S9", "6M", "5M", "4M", "3M"], + focusblast: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8V"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + heatcrash: ["8M"], + heatwave: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L71", "4T", "4L59", "3L1"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdhands: ["6S3"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + inferno: ["9L54", "8L54", "7L62", "6L62", "6S1", "5L62"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metalclaw: ["3L1"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + overheat: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V", "3L20"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "7V"], + scaleshot: ["8T"], + scaryface: ["9M", "9L39", "8M", "8L39", "7L21", "7V", "6L21", "6S4", "5L21", "4L21", "3L27"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "8S10", "7V", "7S8", "3T"], + shadowclaw: ["9M", "8M", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + skullbash: ["7V"], + skydrop: ["7M", "6M", "5M"], + slash: ["9L24", "8L24", "8V", "8S10", "7L41", "7V", "7S8", "6L41", "5L41", "4L32", "3L44", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "8L1", "8V", "7L10", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "6S3", "5M", "4M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + weatherball: ["8M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wingattack: ["8V", "7L1", "7V", "6L36", "5L36", "4L36", "3L36", "3S0"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["wingattack", "slash", "dragonrage", "firespin"], pokeball: "pokeball"}, + {generation: 6, level: 36, gender: "M", moves: ["firefang", "flameburst", "airslash", "inferno"], pokeball: "cherishball"}, + {generation: 6, level: 36, gender: "M", moves: ["firefang", "airslash", "dragonclaw", "dragonrage"], pokeball: "cherishball"}, + {generation: 6, level: 36, shiny: true, gender: "M", moves: ["overheat", "solarbeam", "focusblast", "holdhands"], pokeball: "cherishball"}, + {generation: 6, level: 100, isHidden: true, moves: ["flareblitz", "blastburn", "scaryface", "firepledge"], pokeball: "cherishball"}, + {generation: 6, level: 36, gender: "M", nature: "Serious", moves: ["flamethrower", "ember", "firespin", "flameburst"], pokeball: "cherishball"}, + {generation: 7, level: 40, nature: "Jolly", moves: ["dragonclaw", "dragonrage", "fly", "flareblitz"], pokeball: "cherishball"}, + {generation: 7, level: 40, gender: "M", nature: "Jolly", moves: ["flareblitz", "dragonclaw", "fly", "dragonrage"], pokeball: "cherishball"}, + {generation: 7, level: 40, gender: "M", nature: "Adamant", moves: ["flamethrower", "dragonrage", "slash", "seismictoss"], pokeball: "pokeball"}, + {generation: 7, level: 50, moves: ["dragondance", "flareblitz", "fly", "earthquake"], pokeball: "cherishball"}, + {generation: 8, level: 50, gender: "M", nature: "Adamant", moves: ["flamethrower", "dragontail", "slash", "seismictoss"], pokeball: "pokeball"}, + {generation: 9, level: 50, nature: "Adamant", ivs: {hp: 20, atk: 31, def: 20, spa: 20, spd: 20, spe: 31}, moves: ["crunch", "flareblitz", "acrobatics", "bellydrum"], pokeball: "pokeball"}, + ], + }, + squirtle: { + learnset: { + aquajet: ["8E", "7E", "6E", "5E", "4E"], + aquaring: ["8E", "7E", "6E", "5E", "4E"], + aquatail: ["8L24", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M", "7E", "6E"], + bide: ["7V"], + bite: ["8L12", "8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L18"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["5S2"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bubble: ["8V", "7L13", "7V", "6L13", "6S3", "5L7", "5S1", "4L7", "3L7", "3S0"], + bubblebeam: ["8V", "7V"], + captivate: ["4M"], + celebrate: ["6S4"], + confide: ["7M", "6M"], + confusion: ["7V"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "7E", "6T", "6E"], + dynamicpunch: ["7V", "3T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8E", "7E", "6E", "5E", "4E"], + falseswipe: ["8M", "5S2"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["5S2"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydrocannon: ["5S2"], + hydropump: ["8M", "8L33", "8V", "7L40", "7V", "6L40", "5L40", "4L37", "3L47"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L30", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4T", "4L34"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lifedew: ["8E"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mirrorcoat: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mist: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + outrage: ["8V"], + poweruppunch: ["6M"], + protect: ["8M", "8L18", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L28"], + rage: ["7V"], + raindance: ["8M", "8L21", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L34", "3M", "3L33"], + rapidspin: ["8L9", "7L19", "7V", "6L19", "5L19", "4L19", "3L23"], + reflect: ["8V", "7V"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8V"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L27"], + skullbash: ["8L36", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L40"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "6S4", "5L1", "5S1", "4L1", "3L1", "3S0"], + tailwhip: ["8L1", "8V", "7L4", "7V", "6L4", "6S3", "6S4", "5L4", "5S1", "4L4", "3L4", "3S0"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L3", "8V", "7L7", "7V", "6L7", "6S3", "5L13", "4L13", "3L13"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L15", "7T", "7L25", "6T", "6L25", "5L25", "4M", "4L25", "3M"], + waterspout: ["8E", "7E", "6E", "5E", "4E"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L6", "8V", "7L10", "7V", "6L10", "6S3", "5L10", "5S1", "4L10", "3L10", "3S0"], + workup: ["8M", "7M"], + yawn: ["8E", "7E", "6E", "5E", "4E", "3E"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "tailwhip", "bubble", "withdraw"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "tailwhip", "bubble", "withdraw"]}, + {generation: 5, level: 1, shiny: 1, ivs: {hp: 31}, moves: ["falseswipe", "block", "hydrocannon", "followme"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["tailwhip", "watergun", "withdraw", "bubble"], pokeball: "cherishball"}, + {generation: 6, level: 5, isHidden: true, moves: ["tackle", "tailwhip", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + wartortle: { + learnset: { + aquatail: ["8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + bide: ["7V"], + bite: ["8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bubble: ["8V", "7L13", "7V", "6L13", "5L1", "4L1", "3L1"], + bubblebeam: ["8V", "7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T"], + dynamicpunch: ["7V", "3T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "8V", "7L49", "7V", "6L48", "5L48", "4L44", "3L53"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L40", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8V"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31"], + rage: ["7V"], + raindance: ["8M", "8L25", "7M", "7L45", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L40", "3M", "3L37"], + rapidspin: ["8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8V"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L35"], + skullbash: ["8L50", "8V", "7L37", "7V", "6L36", "5L36", "4L36", "3L45"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L10"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + blastoise: { + learnset: { + aquajet: ["8V"], + aquatail: ["8L30", "7T", "7L33", "6T", "6L32", "5T", "5L32", "4T", "4L32"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + avalanche: ["8M", "4M"], + bide: ["7V"], + bite: ["8L12", "8V", "7L17", "7V", "6L16", "5L16", "4L16", "3L19"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bubble: ["8V", "7L13", "7V", "6L13", "5L1", "4L1", "3L1"], + bubblebeam: ["8V", "7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + crunch: ["8M"], + curse: ["7V"], + darkpulse: ["8M", "8V", "7M", "6M"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T"], + dragontail: ["8V", "7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8V"], + falseswipe: ["8M"], + fissure: ["7V"], + flashcannon: ["8M", "8L0", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydrocannon: ["8T", "7T", "6T", "6S1", "5T", "4T", "3T"], + hydropump: ["8M", "8L49", "8V", "7L60", "7V", "6L60", "6S1", "5L60", "4L53", "3L68", "3S0"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L42", "7T", "7L47", "6T", "6L46", "6S1", "5T", "5L46", "4T", "4L46"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + liquidation: ["8M", "7T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "8V", "7M", "7L25", "7V", "6M", "6L24", "5M", "5L24", "4M", "4L24", "3M", "3L31", "3S0"], + rage: ["7V"], + raindance: ["8M", "8L25", "7M", "7L54", "7V", "6M", "6L53", "5M", "5L53", "4M", "4L46", "3M", "3L42", "3S0"], + rapidspin: ["8L9", "7L21", "7V", "6L20", "5L20", "4L20", "3L25"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L35"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["8L56", "8V", "7L40", "7V", "6L39", "5L39", "4L39", "3L55", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + terrainpulse: ["8T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpledge: ["8T", "7T", "6T", "6S1", "5T"], + waterpulse: ["8L15", "7T", "7L29", "6T", "6L28", "5L28", "4M", "4L28", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["protect", "raindance", "skullbash", "hydropump"], pokeball: "pokeball"}, + {generation: 6, level: 100, isHidden: true, moves: ["hydropump", "hydrocannon", "irondefense", "waterpledge"], pokeball: "cherishball"}, + ], + }, + caterpie: { + learnset: { + bugbite: ["8L9", "7T", "7L9", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + electroweb: ["8M", "7T", "6T", "5T"], + snore: ["7T", "6T", "5T", "4T"], + stringshot: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 3}, + {generation: 3, level: 3}, + ], + }, + metapod: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["8M", "7T", "6T", "5T"], + harden: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 1, level: 4}, + {generation: 2, level: 4}, + {generation: 3, level: 4}, + {generation: 4, level: 3}, + {generation: 6, level: 4}, + {generation: 7, level: 3}, + ], + }, + butterfree: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M", "3S0"], + aircutter: ["5D", "4T"], + airslash: ["8M", "8L24", "8V", "7L43"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + bide: ["7V"], + bugbite: ["8L1", "7T", "6T", "5T", "4T"], + bugbuzz: ["8M", "8L32", "8V", "7L31", "6L42", "5L42", "4L40"], + captivate: ["7L37", "6L40", "5L40", "4M", "4L36"], + confide: ["7M", "6M"], + confusion: ["8L8", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + curse: ["7V"], + defog: ["7T", "4M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dreameater: ["8V", "7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L0", "8V", "7L1", "7V", "6L16", "5L16", "4L16", "3L28"], + harden: ["8L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + irondefense: ["8M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + morningsun: ["3S0"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + ominouswind: ["4T"], + poisonpowder: ["8L12", "8V", "7L13", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L16", "8V", "7L17", "7V", "6L24", "5L24", "4L24", "3L34"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + psychup: ["7M", "6M", "5M", "4M"], + psywave: ["7V"], + quiverdance: ["8L44", "8V", "7L47", "6L46", "5L46"], + rage: ["7V"], + ragepowder: ["8L40", "7L35", "6L34", "5L34"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "5D", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L28", "7M", "7L25", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L34", "3M", "3L40"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L19", "6L28", "5L28", "4M", "4L28", "3L47"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeppowder: ["8L12", "8V", "7L13", "7V", "6L12", "5L12", "4L12", "3L15", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["8L1", "4T"], + strugglebug: ["6M", "5M"], + stunspore: ["8L12", "8V", "7L13", "7V", "6L12", "5L12", "4L12", "3L14"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["8L4", "8V", "7L23", "7V", "6L18", "5L18", "4L18", "3L18"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1"], + tailwind: ["8L36", "7T", "7L41", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + takedown: ["7V"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + venoshock: ["8M", "7M", "6M", "5M"], + whirlwind: ["8L20", "8V", "7L29", "7V", "6L22", "5L22", "4L22", "3L23"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["morningsun", "psychic", "sleeppowder", "aerialace"]}, + ], + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 6}, + {generation: 7, level: 9}, + ], + }, + weedle: { + learnset: { + bugbite: ["7T", "7L9", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + electroweb: ["7T", "6T", "5T"], + poisonsting: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + stringshot: ["8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 3}, + {generation: 3, level: 3}, + ], + }, + kakuna: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["7T", "6T", "5T"], + harden: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 1, level: 4}, + {generation: 2, level: 4}, + {generation: 3, level: 4}, + {generation: 4, level: 3}, + {generation: 6, level: 4}, + {generation: 7, level: 3}, + ], + }, + beedrill: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L38", "7V", "6L31", "5L31", "4L31", "3L40"], + aircutter: ["5D", "4T"], + assurance: ["7L26", "6L34", "5L34", "4L34"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bide: ["7V"], + brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + bugbite: ["7T", "6T", "5T", "4T"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8V", "7T", "6T", "5T"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "3L45"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "6M", "5M", "4M"], + fellstinger: ["7L44", "6L45"], + flash: ["6M", "5M", "4M"], + focusenergy: ["8V", "7L20", "7V", "6L13", "5L13", "4L13", "3L15"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + furycutter: ["7V", "5D", "4T", "3T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["8V"], + payback: ["7M", "6M", "5M", "4M"], + peck: ["8V"], + pinmissile: ["8V", "7L32", "7V", "6L28", "5L28", "4L28", "3L35"], + poisonjab: ["8V", "7M", "7L35", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L17", "7V", "6L22", "5L22", "4L22", "3L30"], + rage: ["8V", "7L14", "7V", "6L19", "5L19", "4L19", "3L25"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["4M"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["7V", "4T", "3T"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T", "3S0"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["7L29", "6L25", "5L25", "4L25"], + twineedle: ["8V", "7L1", "7V", "6L16", "5L16", "4L16", "3L20", "3S0"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + venoshock: ["7M", "7L23", "6M", "5M"], + xscissor: ["8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["batonpass", "sludgebomb", "twineedle", "swordsdance"]}, + ], + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 6}, + ], + }, + pidgey: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L39"], + aircutter: ["7E", "6E", "5E", "4T", "4E", "3E"], + airslash: ["8V", "7L49", "7E", "6L49", "6E", "5L49", "5E", "4L49", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bravebird: ["7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["7L25", "6L25", "5L25", "4L25", "3L31"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gust: ["8V", "7L9", "7V", "6L9", "5L9", "5D", "4L9", "3L9"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["7L53", "6L53", "5L53"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L45", "7V", "6L45", "5L45", "4L45", "3L47"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickattack: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L13"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7V"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L37", "6M", "6L37", "5T", "5L37", "4M", "4L37"], + round: ["7M", "6M", "5M"], + sandattack: ["8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L5"], + secretpower: ["6M", "5D", "4M", "3M"], + skyattack: ["7T", "7V", "6T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7E", "7V", "6M", "6E", "5E", "5D", "4M", "4E", "3M", "3E"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["7L21", "6L21", "5L21", "4T", "4L21"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + wingattack: ["8V", "7L33", "7V", "6L33", "5L33", "4L33", "3L25"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 2}, + {generation: 2, level: 2}, + {generation: 3, level: 2}, + ], + }, + pidgeotto: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L32", "7V", "6L32", "5L32", "4L32", "3L43"], + aircutter: ["4T"], + airslash: ["8V", "7L57", "6L57", "5L57", "4L57"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["7L27", "6L27", "5L27", "4L27", "3L34", "3S0"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gust: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["7L62", "6L62", "5L62"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L52", "7V", "6L52", "5L52", "4L52", "3L52"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L13"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7V"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L42", "6M", "6L42", "5T", "5L42", "4M", "4L42"], + round: ["7M", "6M", "5M"], + sandattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7V", "6T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M", "3S0"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4T", "4L47"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["7L22", "6L22", "5L22", "4T", "4L22"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L20"], + wingattack: ["8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L27", "3S0"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 30, abilities: ["keeneye"], moves: ["refresh", "wingattack", "steelwing", "featherdance"]}, + ], + encounters: [ + {generation: 1, level: 9}, + {generation: 2, level: 7}, + {generation: 3, level: 7}, + {generation: 4, level: 7}, + ], + }, + pidgeot: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L32", "7V", "6L32", "5L32", "4L32", "3L48"], + aircutter: ["4T"], + airslash: ["8V", "7L62", "6L62", "5L62", "4L62"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["7L27", "6L27", "5L27", "4L27", "3L34"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["7L1", "6L1", "5L68"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L56", "7V", "6L56", "5L56", "5S0", "4L56", "3L62"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7V"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], + round: ["7M", "6M", "5M"], + sandattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "5S0", "4T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7L50", "6T", "6L50", "5T", "5L50", "4T", "4L50"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["7L22", "6L22", "5L22", "4T", "4L22"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["8V", "7L17", "7V", "6L17", "5L17", "5S0", "4L17", "3L20"], + wingattack: ["8V", "7L38", "7V", "6L38", "5L38", "5S0", "4L38", "3L27"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 5, level: 61, gender: "M", nature: "Naughty", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, abilities: ["keeneye"], moves: ["whirlwind", "wingattack", "skyattack", "mirrormove"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 29}, + ], + }, + rattata: { + learnset: { + assurance: ["7L19", "6L25", "5L25", "4L25"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8V", "7L10", "7E", "7V", "6L10", "6E", "5L10", "5E", "4L10", "4E", "3E"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + bubblebeam: ["7V"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["7T", "6T", "5T"], + crunch: ["8V", "7L22", "6L22", "5L22", "4L22"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7L31", "7V", "6L31", "5L31", "4L31", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "7L34", "6T", "6L34", "5T", "5L34", "4T", "4L34", "3L41"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["7E", "6E", "5E"], + flamewheel: ["7E", "7V", "6E", "5E", "4E", "3E"], + focusenergy: ["8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L20"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperfang: ["8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L13"], + icebeam: ["8V", "7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + mefirst: ["7E", "6E", "5E", "5D", "4E"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L13", "7V", "6L13", "5L13", "4L13", "3L27"], + quickattack: ["8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L7"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E"], + reversal: ["7E", "7V", "6E", "5E", "4E", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + screech: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V", "7L25", "6L19", "5L19", "4T", "4L19"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L34"], + swagger: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["7V", "4T", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8V", "7M", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 1, level: 2}, + {generation: 2, level: 2}, + {generation: 3, level: 2}, + ], + }, + rattataalola: { + learnset: { + assurance: ["7L19"], + attract: ["7M"], + bite: ["8V", "7L10"], + blizzard: ["8V", "7M"], + confide: ["7M"], + counter: ["7E"], + covet: ["7T"], + crunch: ["8V", "7L22"], + darkpulse: ["8V", "7M"], + dig: ["8V"], + doubleedge: ["8V", "7L31"], + doubleteam: ["7M"], + embargo: ["7M"], + endeavor: ["7T", "7L34"], + facade: ["8V", "7M"], + finalgambit: ["7E"], + focusenergy: ["8V", "7L7"], + frustration: ["7M"], + furyswipes: ["7E"], + grassknot: ["7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperfang: ["8V", "7L16"], + icebeam: ["8V", "7M"], + icywind: ["7T"], + irontail: ["8V", "7T"], + lastresort: ["7T"], + mefirst: ["7E"], + protect: ["8V", "7M"], + pursuit: ["7L13"], + quash: ["7M"], + quickattack: ["8V", "7L4"], + raindance: ["7M"], + rest: ["8V", "7M"], + return: ["7M"], + revenge: ["7E"], + reversal: ["7E"], + round: ["7M"], + shadowball: ["8V", "7M"], + shadowclaw: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + sludgebomb: ["8V", "7M"], + snarl: ["7M"], + snatch: ["7T", "7E"], + snore: ["7T"], + stockpile: ["7E"], + substitute: ["8V", "7M"], + suckerpunch: ["8V", "7L25"], + sunnyday: ["7M"], + superfang: ["8V", "7T", "7L28"], + swagger: ["7M"], + swallow: ["7E"], + switcheroo: ["7E"], + tackle: ["8V", "7L1"], + tailwhip: ["8V", "7L1"], + taunt: ["8V", "7M"], + thief: ["7M"], + torment: ["7M"], + toxic: ["8V", "7M"], + uproar: ["7T", "7E"], + uturn: ["8V", "7M"], + zenheadbutt: ["7T"], + }, + }, + raticate: { + learnset: { + assurance: ["7L19", "6L29", "5L29", "4L29"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8V", "7L10", "6L10", "5L10", "4L10"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + bubblebeam: ["7V"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["8V", "3T"], + covet: ["7T", "6T", "5T"], + crunch: ["8V", "7L24", "6L24", "5L24", "4L24"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7L39", "7V", "6L39", "5L39", "4L39", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "7L44", "6T", "6L44", "5T", "5L44", "4T", "4L44", "3L50"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8V", "7L1", "7V", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8V"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hyperfang: ["8V", "7L16", "7V", "6L16", "5L16", "4L16", "3L13", "3S0"], + icebeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L13", "7V", "6L13", "5L13", "4L13", "3L30"], + quickattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L1", "7V", "6L20", "5L20", "4L20", "3L20", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V", "7L29", "6L19", "5L19", "4T", "4L19"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "7L34", "7V", "6T", "6L34", "5T", "5L34", "4T", "4L34", "3L40", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + swordsdance: ["8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunder: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8V", "7M", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 34, moves: ["refresh", "superfang", "scaryface", "hyperfang"]}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 6}, + {generation: 4, level: 13}, + ], + }, + raticatealola: { + learnset: { + assurance: ["7L19"], + attract: ["7M"], + bite: ["8V", "7L10"], + blizzard: ["8V", "7M"], + bulkup: ["8V", "7M"], + confide: ["7M"], + counter: ["8V"], + covet: ["7T"], + crunch: ["8V", "7L24"], + darkpulse: ["8V", "7M"], + dig: ["8V"], + doubleedge: ["8V", "7L39"], + doubleteam: ["7M"], + embargo: ["7M"], + endeavor: ["7T", "7L44"], + facade: ["8V", "7M"], + focusenergy: ["8V", "7L1"], + frustration: ["7M"], + furyswipes: ["8V"], + gigaimpact: ["7M"], + grassknot: ["7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperbeam: ["8V", "7M"], + hyperfang: ["8V", "7L16"], + icebeam: ["8V", "7M"], + icywind: ["7T"], + irontail: ["8V", "7T"], + knockoff: ["7T"], + lastresort: ["7T"], + protect: ["8V", "7M"], + pursuit: ["7L13"], + quash: ["7M"], + quickattack: ["8V", "7L1"], + raindance: ["7M"], + rest: ["8V", "7M"], + return: ["7M"], + roar: ["7M"], + round: ["7M"], + scaryface: ["7L1"], + shadowball: ["8V", "7M"], + shadowclaw: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + sludgebomb: ["8V", "7M"], + sludgewave: ["7M"], + snarl: ["7M"], + snatch: ["7T"], + snore: ["7T"], + stompingtantrum: ["7T"], + substitute: ["8V", "7M"], + suckerpunch: ["8V", "7L29"], + sunnyday: ["7M"], + superfang: ["8V", "7T", "7L34"], + swagger: ["7M"], + swordsdance: ["8V", "7M", "7L1"], + tackle: ["8V", "7L1"], + tailwhip: ["8V", "7L1"], + taunt: ["8V", "7M"], + thief: ["7M"], + throatchop: ["7T"], + torment: ["7M"], + toxic: ["8V", "7M"], + uproar: ["7T"], + uturn: ["8V", "7M"], + venoshock: ["7M"], + zenheadbutt: ["7T"], + }, + encounters: [ + {generation: 7, level: 17}, + ], + }, + raticatealolatotem: { + learnset: { + assurance: ["7L19", "7S0"], + attract: ["7M"], + bite: ["7L10", "7S0"], + blizzard: ["7M"], + bulkup: ["7M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["7L24"], + darkpulse: ["7M"], + doubleedge: ["7L39"], + doubleteam: ["7M"], + embargo: ["7M"], + endeavor: ["7T", "7L44"], + facade: ["7M"], + focusenergy: ["7L1"], + frustration: ["7M"], + gigaimpact: ["7M"], + grassknot: ["7M"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + hyperfang: ["7L16", "7S0"], + icebeam: ["7M"], + icywind: ["7T"], + irontail: ["7T"], + knockoff: ["7T"], + lastresort: ["7T"], + protect: ["7M"], + pursuit: ["7L13", "7S0"], + quash: ["7M"], + quickattack: ["7L1"], + raindance: ["7M"], + rest: ["7M"], + return: ["7M"], + roar: ["7M"], + round: ["7M"], + scaryface: ["7L1"], + shadowball: ["7M"], + shadowclaw: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + sludgebomb: ["7M"], + sludgewave: ["7M"], + snarl: ["7M"], + snatch: ["7T"], + snore: ["7T"], + stompingtantrum: ["7T"], + substitute: ["7M"], + suckerpunch: ["7L29"], + sunnyday: ["7M"], + superfang: ["7T", "7L34"], + swagger: ["7M"], + swordsdance: ["7M", "7L1"], + tackle: ["7L1"], + tailwhip: ["7L1"], + taunt: ["7M"], + thief: ["7M"], + throatchop: ["7T"], + torment: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + venoshock: ["7M"], + zenheadbutt: ["7T"], + }, + eventData: [ + {generation: 7, level: 20, perfectIVs: 3, moves: ["bite", "pursuit", "hyperfang", "assurance"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + spearow: { + learnset: { + aerialace: ["7M", "7L15", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L25", "3S0"], + agility: ["8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L43"], + aircutter: ["4T"], + assurance: ["7L22", "6L29", "5L29", "4L29"], + astonish: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L36", "7V", "6L37", "5L37", "4L37", "3L37"], + drillrun: ["8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "7V", "6M", "5M", "4E", "3E", "3S0"], + featherdance: ["7E", "6E", "5E", "4E"], + feintattack: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8V", "7L29"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L11", "7V", "6L9", "5L9", "4L9", "3L13"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + leer: ["8V", "7L4", "7V", "6L5", "5L5", "4L5", "3L7", "3S0"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L18", "7V", "6L21", "5L21", "4L21", "3L31"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + pluck: ["5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L8", "7V", "6L13", "5L13", "4L13", "3L19"], + quickattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "7V", "6E", "5E"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L32", "6M", "6L33", "5T", "5L33", "4M", "4L33"], + round: ["7M", "6M", "5M"], + scaryface: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3T", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7E", "7V", "6M", "6E", "5E", "5D", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8V", "7E", "7V", "6E", "5E", "4E", "3E"], + twister: ["4T"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["7E", "7V", "6E", "5E", "4E"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 22, moves: ["batonpass", "falseswipe", "leer", "aerialace"]}, + ], + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 2}, + {generation: 3, level: 3}, + ], + }, + fearow: { + learnset: { + aerialace: ["7M", "7L15", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M"], + agility: ["8V", "7L27", "7V", "6L29", "5L29", "4L29", "3L47"], + aircutter: ["4T"], + assurance: ["7L23", "6L35", "5L35", "4L35"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L41", "7V", "6L47", "5L47", "4L47", "3L40"], + drillrun: ["8V", "7T", "7L1", "6T", "6L1", "5T", "5L53"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "6M", "5M"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8V", "7L32"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L11", "7V", "6L1", "5L1", "4L1", "3L1"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7L18", "7V", "6L23", "5L23", "4L23", "3L32"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L1", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L1", "7V", "6L13", "5L13", "4L13", "3L26"], + quickattack: ["8V"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "7L36", "6M", "6L41", "5T", "5L41", "4M", "4L41"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8V"], + twister: ["4T"], + uproar: ["7T", "6T", "5T"], + uturn: ["8V", "7M", "6M", "5M", "4M"], + whirlwind: ["7V"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 19}, + {generation: 2, level: 7}, + {generation: 4, level: 7}, + ], + }, + ekans: { + learnset: { + acid: ["8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L32"], + acidspray: ["7L28", "6L28", "5L28"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + belch: ["7L38", "6L38"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bite: ["8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L13", "3S0"], + bodyslam: ["7V", "3T"], + brutalswing: ["7M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + coil: ["7L44", "6L44", "5L44"], + confide: ["7M", "6M"], + crunch: ["7V"], + curse: ["7V"], + darkpulse: ["8V", "7M", "6M", "5T", "5D", "4M"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["7E", "6E", "5E", "4E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "7L36", "6T", "6L36", "5T", "5L36", "4T", "4L33"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + glare: ["8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20"], + gunkshot: ["7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L41"], + haze: ["8V", "7L41", "7V", "6L41", "5L41", "4L36", "3L44"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + irontail: ["8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudbomb: ["7L33", "6L33", "5L33", "4L28"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poisonfang: ["7E", "6E", "5E", "4E", "3E"], + poisonjab: ["8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L8", "3S0", "3S1"], + poisontail: ["7E", "6E", "5E", "4E"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["7E", "6E", "5E", "4E"], + screech: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L25"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slam: ["8V", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["7M", "6M", "5M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + spitup: ["7L25", "6L25", "5L25", "4L25", "3L37"], + stockpile: ["7L25", "6L25", "5L25", "4L25", "3L37"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["7E", "6E", "5E"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["7L25", "6L25", "5L25", "4L25", "3L37"], + switcheroo: ["7E", "6E", "5E", "4E"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + wrap: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + }, + eventData: [ + {generation: 3, level: 14, gender: "F", nature: "Docile", ivs: {hp: 26, atk: 28, def: 6, spa: 14, spd: 30, spe: 11}, abilities: ["shedskin"], moves: ["leer", "wrap", "poisonsting", "bite"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["wrap", "leer", "poisonsting"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 6}, + {generation: 2, level: 4}, + ], + }, + arbok: { + learnset: { + acid: ["8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L38"], + acidspray: ["7L32", "6L32", "5L32"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["7L48", "6L48"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bite: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + bodyslam: ["7V", "3T"], + brutalswing: ["7M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + coil: ["7L56", "6L56", "5L56"], + confide: ["7M", "6M"], + crunch: ["8V", "7L1", "6L22", "5L22", "4L22"], + curse: ["7V"], + darkpulse: ["8V", "7M", "6M", "5T", "4M"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["8V", "7M", "6M", "5M"], + earthquake: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + firefang: ["7L1", "6L1", "5L1", "4L1"], + fissure: ["7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "7L44", "6T", "6L44", "5T", "5L44", "4T", "4L42"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + glare: ["8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L20", "3S0"], + gunkshot: ["7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L56"], + haze: ["8V", "7L51", "7V", "6L51", "5L51", "4L48", "3L56"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["7L1", "6L1", "5L1", "4L1"], + infestation: ["7M", "6M"], + irontail: ["8V", "7T", "6T", "5T", "4M", "3M"], + leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mudbomb: ["7L39", "6L39", "5L39", "4L34"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + screech: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L28"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slam: ["8V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + sludgewave: ["7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + spitup: ["7L27", "6L27", "5L27", "4L28", "3L46"], + stockpile: ["7L27", "6L27", "5L27", "4L28", "3L46"], + stompingtantrum: ["7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["7L27", "6L27", "5L27", "4L28", "3L46"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunderfang: ["7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + wrap: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 3, level: 33, moves: ["refresh", "sludgebomb", "glare", "bite"]}, + ], + encounters: [ + {generation: 2, level: 10}, + {generation: 4, level: 10}, + ], + }, + pichu: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bestow: ["7E", "6E", "5E"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "8M", "3T"], + captivate: ["4M"], + charge: ["9E", "9S6", "8E", "7E", "6E", "5E", "4E", "4S5", "3E"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2", "3S3"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + disarmingvoice: ["9M", "9E", "8E", "7E", "6E"], + doubleedge: ["3T"], + doubleslap: ["7E", "7V", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + electricterrain: ["9M", "8M", "7E"], + electroball: ["9M"], + electroweb: ["8M", "7T", "6T"], + encore: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + endeavor: ["4S5"], + endure: ["9M", "9S6", "8M", "7E", "7V", "6E", "5E", "4M", "4S5", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], + flail: ["9E", "8E", "7E", "6E", "5E", "4E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + followme: ["3S3"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M", "4S4"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9S6", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L16", "8M", "8L16", "7L13", "6L13", "5L18", "4L18"], + naturalgift: ["4M"], + nuzzle: ["9L12", "8L12"], + playnice: ["9L4", "8L4"], + playrough: ["9M", "8M"], + present: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "4S4", "3M"], + reversal: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L8", "8L8", "7L10", "7V", "6L10", "5L13", "4L13", "3L11"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9L1", "8L1", "7L5", "7V", "6L5", "5L5", "4L5", "3L6"], + takedown: ["9M"], + teeterdance: ["3S2"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "4S4", "3M"], + thunderpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5E", "4E"], + thundershock: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2", "3S3"], + thunderwave: ["9M", "8M", "7M", "7L18", "7V", "6M", "6L13", "5M", "5L10", "4M", "4L10", "3T", "3L8"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + volttackle: ["9R", "9S6", "8R", "7R", "6E", "5E", "4E", "4S4", "4S5", "3E"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E", "3S1"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "surf"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "teeterdance"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["thundershock", "charm", "followme"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 4, level: 1, moves: ["volttackle", "thunderbolt", "grassknot", "return"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: true, gender: "M", nature: "Jolly", moves: ["charge", "volttackle", "endeavor", "endure"], pokeball: "cherishball"}, + {generation: 9, level: 30, shiny: true, gender: "M", nature: "Jolly", moves: ["charge", "volttackle", "endure", "helpinghand"], pokeball: "cherishball"}, + ], + }, + pichuspikyeared: { + learnset: { + attract: ["4M"], + captivate: ["4M"], + chargebeam: ["4M"], + charm: ["4L1"], + doubleteam: ["4M"], + endure: ["4M"], + facade: ["4M"], + flash: ["4M"], + fling: ["4M"], + frustration: ["4M"], + grassknot: ["4M"], + headbutt: ["4T"], + helpinghand: ["4T", "4S0"], + hiddenpower: ["4M"], + irontail: ["4M"], + lightscreen: ["4M"], + magnetrise: ["4T"], + mudslap: ["4T"], + nastyplot: ["4L18"], + naturalgift: ["4M"], + painsplit: ["4S0"], + protect: ["4M"], + raindance: ["4M"], + rest: ["4M"], + return: ["4M"], + rollout: ["4T"], + secretpower: ["4M"], + shockwave: ["4M"], + signalbeam: ["4T"], + sleeptalk: ["4M"], + snore: ["4T"], + substitute: ["4M"], + swagger: ["4M", "4S0"], + sweetkiss: ["4L13"], + swift: ["4T"], + tailwhip: ["4L5"], + thunder: ["4M"], + thunderbolt: ["4M"], + thundershock: ["4L1"], + thunderwave: ["4M", "4L10"], + toxic: ["4M"], + uproar: ["4T"], + volttackle: ["4S0"], + }, + eventData: [ + {generation: 4, level: 30, gender: "F", nature: "Naughty", moves: ["helpinghand", "volttackle", "swagger", "painsplit"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachu: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "8V", "7L45", "7V", "6L37", "6S41", "5L37", "4L34", "3L33", "3S0", "3S8"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bestow: ["7S44", "6S42"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "5S26", "4M", "3M"], + calmmind: ["8V"], + captivate: ["4M"], + celebrate: ["9S55", "8S50", "8S51", "8S52", "7S43", "7S48", "6S31", "6S41"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1", "6S36"], + confide: ["7M", "6M"], + counter: ["7S48", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + discharge: ["9L32", "8L32", "7L34", "7S47", "6L34", "5L42", "4L37"], + doubleedge: ["7V", "3T"], + doublekick: ["8V"], + doubleteam: ["9L8", "8L8", "8V", "7M", "7L23", "7V", "6M", "6L21", "6S32", "5M", "5L21", "4M", "4L18", "4S13", "3M", "3L15"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "8S52", "7L13", "6L13", "6S32", "6S37", "5L18", "5S23", "5S24", "5S30"], + electroweb: ["8M", "7T", "6T"], + encore: ["9M", "8M", "8S52", "6S39", "5S23"], + endeavor: ["6S39"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["5S26"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["6S39"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21", "6L21", "5L34", "5S29", "4L29"], + flash: ["7V", "6M", "6S40", "5M", "4M", "4S13", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9S53", "7S49", "6S41", "5S24", "5S27", "3S2", "3S4", "3S6"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "5S25", "5S26", "5S27", "4M", "4S13"], + growl: ["9L1", "8L1", "8V", "7L5", "7V", "7S43", "7S46", "6L5", "6S31", "5L1", "4L1", "3L1", "3S1", "3S2", "3S3", "3S4", "3S5", "3S10"], + happyhour: ["7S45", "7S46", "6S40"], + headbutt: ["8V", "7V", "5S28", "4T"], + heartstamp: ["6S34"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdhands: ["7S44", "7S45", "6S33", "6S34", "6S35", "6S40", "6S42"], + irontail: ["9L28", "9S54", "8M", "8V", "7T", "7V", "6T", "6S37", "5T", "5S24", "5S30", "4M", "4S21", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["4S18"], + lightscreen: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L53", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L42", "4S11", "3M", "3L50", "3S0", "3S6", "3S7", "3S8"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "6S32", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + naturalgift: ["4M"], + nuzzle: ["9L1", "8L1", "7L29", "7S47", "6L23", "6S36", "6S38"], + payday: ["8M", "8V", "7V"], + playnice: ["9L1", "9S55", "8L1", "8S50", "7L7", "7S43", "7S44", "7S45", "6L7", "6S31", "6S35", "6S36", "6S38", "6S40", "6S42"], + playrough: ["9M", "9S54", "8M"], + present: ["9S55", "4S12", "4S15", "4S17", "4S18", "4S20", "4S22"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S27", "4M", "4S14", "4S16", "3M"], + quickattack: ["9L1", "9S53", "8L1", "8V", "8S50", "7L10", "7V", "7S43", "7S46", "7S49", "6L10", "6S31", "6S32", "6S33", "6S34", "6S37", "5L13", "5S24", "5S25", "5S29", "5S30", "4L13", "4S11", "4S12", "4S15", "4S17", "4S18", "4S20", "4S21", "4S22", "3L11"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "8V", "7V"], + refresh: ["7S48"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4S19", "3M"], + return: ["7M", "7V", "7S44", "6M", "6S42", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8S52", "5S23"], + skullbash: ["7V"], + slam: ["8L28", "8V", "7L37", "7V", "7S47", "6L26", "5L26", "4L21", "3L20"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "4S19", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "4S19", "3T"], + spark: ["9L20", "8L20", "7L26", "6L26"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "6S35", "5M", "4M", "3T"], + surf: ["9M", "9S54", "8M", "7S47", "7S49", "6S33", "6S41", "4S9", "4S11", "4S14", "4S16", "3S3", "3S5", "3S7"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1", "6S36"], + sweetscent: ["7S48"], + swift: ["9M", "8M", "8S51", "7V", "4T", "3T"], + tailwhip: ["9L1", "9S53", "8L1", "8V", "7L1", "7V", "6L1", "6S38", "5L5", "5S28", "4L5", "4S9", "4S12", "4S15", "4S17", "4S20", "4S22", "3L6", "3S1", "3S2", "3S3", "3S4", "3S10"], + takedown: ["9M", "7V"], + teeterdance: ["7S45", "6S38", "5S23"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "9S54", "8M", "8L44", "8V", "7M", "7L58", "7V", "6M", "6L50", "6S35", "5M", "5L50", "5S25", "4M", "4L45", "4S14", "4S16", "3M", "3L41", "3S0", "3S6", "3S7", "3S8"], + thunderbolt: ["9M", "9L36", "9S55", "8M", "8L36", "8V", "8S51", "7M", "7L42", "7V", "7S49", "6M", "6L29", "6S33", "6S34", "6S37", "5M", "5L29", "5S26", "5S27", "5S30", "4M", "4L26", "4S11", "4S13", "4S18", "4S21", "3M", "3L26", "3S0", "3S6", "3S7", "3S8"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thundershock: ["9L1", "9S53", "8L1", "8V", "8S50", "7L1", "7V", "7S46", "6L1", "5L1", "5S28", "4L1", "4S12", "4S15", "4S20", "4S22", "3L1", "3S1", "3S5", "3S10"], + thunderwave: ["9M", "9L4", "8M", "8L4", "8V", "7M", "7L18", "7V", "6M", "6L13", "5M", "5L10", "5S28", "4M", "4L10", "4S9", "4S17", "3T", "3L8", "3S1", "3S2", "3S3", "3S4", "3S5", "3S10"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M", "5S29"], + volttackle: ["7T", "6S39", "5S25", "5S29", "4S9", "4S21"], + wildcharge: ["9M", "8M", "7M", "7L50", "6M", "6L50", "5M"], + wish: ["8S51"], + yawn: ["4S19"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["thunderbolt", "agility", "thunder", "lightscreen"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["thundershock", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["fly", "tailwhip", "growl", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["surf", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["fly", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["thundershock", "growl", "thunderwave", "surf"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["thunderbolt", "thunder", "lightscreen", "fly"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["thunderbolt", "thunder", "lightscreen", "surf"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["thunderbolt", "thunder", "lightscreen", "agility"], pokeball: "pokeball"}, + {generation: 4, level: 10, gender: "F", nature: "Hardy", moves: ["surf", "volttackle", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["thundershock", "growl", "tailwhip", "thunderwave"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Hardy", moves: ["surf", "thunderbolt", "lightscreen", "quickattack"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "F", nature: "Bashful", moves: ["present", "quickattack", "thundershock", "tailwhip"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "M", nature: "Jolly", moves: ["grassknot", "thunderbolt", "flash", "doubleteam"], pokeball: "pokeball"}, + {generation: 4, level: 40, gender: "M", nature: "Modest", moves: ["surf", "thunder", "protect"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "F", nature: "Bashful", moves: ["quickattack", "thundershock", "tailwhip", "present"], pokeball: "cherishball"}, + {generation: 4, level: 40, gender: "M", nature: "Mild", moves: ["surf", "thunder", "protect"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "F", nature: "Bashful", moves: ["present", "quickattack", "thunderwave", "tailwhip"], pokeball: "cherishball"}, + {generation: 4, level: 30, gender: "M", nature: "Naughty", moves: ["lastresort", "present", "thunderbolt", "quickattack"], pokeball: "cherishball"}, + {generation: 4, level: 50, gender: "M", nature: "Relaxed", moves: ["rest", "sleeptalk", "yawn", "snore"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "M", nature: "Docile", moves: ["present", "quickattack", "thundershock", "tailwhip"], pokeball: "cherishball"}, + {generation: 4, level: 50, gender: "M", nature: "Naughty", moves: ["volttackle", "irontail", "quickattack", "thunderbolt"], pokeball: "cherishball"}, + {generation: 4, level: 20, gender: "M", nature: "Bashful", moves: ["present", "quickattack", "thundershock", "tailwhip"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "F", isHidden: true, moves: ["sing", "teeterdance", "encore", "electroball"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["fly", "irontail", "electroball", "quickattack"], pokeball: "cherishball"}, + {generation: 5, level: 100, shiny: 1, gender: "F", moves: ["thunder", "volttackle", "grassknot", "quickattack"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, gender: "F", moves: ["extremespeed", "thunderbolt", "grassknot", "brickbreak"], pokeball: "cherishball"}, + {generation: 5, level: 50, gender: "F", nature: "Timid", isHidden: true, moves: ["fly", "thunderbolt", "grassknot", "protect"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["thundershock", "tailwhip", "thunderwave", "headbutt"]}, + {generation: 5, level: 100, gender: "M", isHidden: true, moves: ["volttackle", "quickattack", "feint", "voltswitch"], pokeball: "cherishball"}, + {generation: 5, level: 50, gender: "M", nature: "Brave", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["celebrate", "growl", "playnice", "quickattack"], pokeball: "cherishball"}, + {generation: 6, level: 22, moves: ["quickattack", "electroball", "doubleteam", "megakick"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["thunderbolt", "quickattack", "surf", "holdhands"], pokeball: "cherishball"}, + {generation: 6, level: 10, gender: "F", moves: ["thunderbolt", "quickattack", "heartstamp", "holdhands"], pokeball: "healball"}, + {generation: 6, level: 36, shiny: true, isHidden: true, moves: ["thunder", "substitute", "playnice", "holdhands"], pokeball: "cherishball"}, + {generation: 6, level: 10, gender: "F", moves: ["playnice", "charm", "nuzzle", "sweetkiss"], pokeball: "cherishball"}, + {generation: 6, level: 50, gender: "M", nature: "Naughty", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "cherishball"}, + {generation: 6, level: 10, shiny: true, moves: ["teeterdance", "playnice", "tailwhip", "nuzzle"], pokeball: "cherishball"}, + {generation: 6, level: 10, perfectIVs: 2, isHidden: true, moves: ["fakeout", "encore", "volttackle", "endeavor"], pokeball: "cherishball"}, + {generation: 6, level: 99, moves: ["happyhour", "playnice", "holdhands", "flash"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["fly", "surf", "agility", "celebrate"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["bestow", "holdhands", "return", "playnice"], pokeball: "healball"}, + {generation: 7, level: 10, nature: "Jolly", moves: ["celebrate", "growl", "playnice", "quickattack"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["bestow", "holdhands", "return", "playnice"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["holdhands", "playnice", "teeterdance", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["growl", "quickattack", "thundershock", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 40, shiny: 1, perfectIVs: 3, moves: ["nuzzle", "discharge", "slam", "surf"], pokeball: "pokeball"}, + {generation: 7, level: 5, moves: ["celebrate", "sweetscent", "counter", "refresh"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["fly", "surf", "thunderbolt", "quickattack"], pokeball: "cherishball"}, + {generation: 8, level: 5, gender: "M", nature: "Serious", moves: ["celebrate", "playnice", "thundershock", "quickattack"], pokeball: "cherishball"}, + {generation: 8, level: 21, gender: "M", nature: "Brave", moves: ["thunderbolt", "swift", "wish", "celebrate"], pokeball: "cherishball"}, + {generation: 8, level: 25, isHidden: true, moves: ["sing", "encore", "celebrate", "electroball"], pokeball: "cherishball"}, + {generation: 9, level: 5, moves: ["fly", "tailwhip", "thundershock", "quickattack"], pokeball: "pokeball"}, + {generation: 9, level: 100, gender: "M", nature: "Quiet", perfectIVs: 6, isHidden: true, moves: ["thunder", "surf", "playrough", "irontail"], pokeball: "pokeball"}, + {generation: 9, level: 25, gender: "M", ivs: {hp: 25, atk: 25, def: 25, spa: 25, spd: 25, spe: 25}, moves: ["celebrate", "playnice", "present", "thunderbolt"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 4}, + {generation: 3, level: 3}, + ], + }, + pikachucosplay: { + learnset: { + agility: ["6L45"], + attract: ["6M"], + brickbreak: ["6M"], + chargebeam: ["6M"], + confide: ["6M"], + covet: ["6T"], + dig: ["6M"], + discharge: ["6L34"], + doubleteam: ["6M", "6L23"], + echoedvoice: ["6M"], + electroball: ["6L13", "6S0"], + electroweb: ["6T"], + facade: ["6M"], + feint: ["6L21"], + flash: ["6M"], + fling: ["6M"], + focuspunch: ["6T"], + frustration: ["6M"], + grassknot: ["6M"], + growl: ["6L5"], + helpinghand: ["6T"], + hiddenpower: ["6M"], + irontail: ["6T"], + knockoff: ["6T"], + lightscreen: ["6M", "6L53"], + magnetrise: ["6T"], + nuzzle: ["6L29"], + playnice: ["6L7"], + protect: ["6M"], + quickattack: ["6L10", "6S0"], + raindance: ["6M"], + rest: ["6M"], + return: ["6M"], + rocksmash: ["6M"], + round: ["6M"], + secretpower: ["6M"], + shockwave: ["6T"], + signalbeam: ["6T"], + slam: ["6L37"], + sleeptalk: ["6M"], + snore: ["6T"], + spark: ["6L26"], + strength: ["6M"], + substitute: ["6M"], + swagger: ["6M"], + tailwhip: ["6L1"], + thunder: ["6M", "6L58"], + thunderbolt: ["6M", "6L42"], + thunderpunch: ["6T"], + thundershock: ["6L1", "6S0"], + thunderwave: ["6M", "6L18", "6S0"], + toxic: ["6M"], + voltswitch: ["6M"], + wildcharge: ["6M", "6L50"], + }, + eventData: [ + {generation: 6, level: 20, perfectIVs: 3, moves: ["quickattack", "electroball", "thunderwave", "thundershock"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachurockstar: { + learnset: { + meteormash: ["6R"], + }, + eventOnly: true, + }, + pikachubelle: { + learnset: { + iciclecrash: ["6R"], + }, + eventOnly: true, + }, + pikachupopstar: { + learnset: { + drainingkiss: ["6R"], + }, + eventOnly: true, + }, + pikachuphd: { + learnset: { + electricterrain: ["6R"], + }, + eventOnly: true, + }, + pikachulibre: { + learnset: { + flyingpress: ["6R"], + }, + eventOnly: true, + }, + pikachuoriginal: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45", "7S0"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58", "7S0"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 1, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "agility"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachuhoenn: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58", "7S0"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 6, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "irontail"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachusinnoh: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T", "7S0"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 10, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachuunova: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T", "7S0"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 14, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachukalos: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13", "7S0"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 17, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachualola: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13", "7S0"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 20, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroball"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachupartner: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24", "7L45"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M"], + charge: ["8E"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32", "7L34"], + doubleteam: ["9L8", "8L8", "7M", "7L23"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L13"], + electroweb: ["8M", "8S1", "7T"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16", "7L21"], + flail: ["8E"], + fling: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "7L5"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + irontail: ["9L28", "8M", "8S1", "7T", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L53"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1", "7L29"], + payday: ["8M"], + playnice: ["9L1", "8L1", "7L7"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "8S1", "7L10", "7S0"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slam: ["8L28", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L20", "8L20", "7L26"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44", "7M", "7L58", "7S0"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "7M", "7L42", "7S0"], + thunderpunch: ["9M", "8M", "7T"], + thundershock: ["9L1", "8L1", "7L1"], + thunderwave: ["9M", "9L4", "8M", "8L4", "7M", "7L18"], + tickle: ["8E"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + volttackle: ["8S1", "7T"], + wildcharge: ["9M", "8M", "7M", "7L50"], + wish: ["8E"], + }, + eventData: [ + {generation: 7, level: 21, shiny: 1, nature: "Hardy", moves: ["thunderbolt", "quickattack", "thunder", "irontail"], pokeball: "pokeball"}, + {generation: 8, level: 25, nature: "Hardy", isHidden: false, moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachustarter: { + learnset: { + agility: ["8V", "7L27"], + brickbreak: ["8V", "7M"], + calmmind: ["8V", "7M"], + dig: ["8V", "7M"], + doublekick: ["8V", "7L9"], + doubleteam: ["8V", "7L12"], + facade: ["8V", "7M"], + floatyfall: ["8V", "7T"], + growl: ["8V", "7L1", "7S0"], + headbutt: ["8V", "7M"], + helpinghand: ["8V", "7M"], + irontail: ["8V", "7M"], + lightscreen: ["8V", "7M", "7L18"], + payday: ["8V", "7M"], + pikapapow: ["8V", "7T"], + protect: ["8V", "7M"], + quickattack: ["8V", "7L6"], + reflect: ["8V", "7M"], + rest: ["8V", "7M"], + seismictoss: ["8V", "7M"], + slam: ["8V", "7L24"], + splishysplash: ["8V", "7T"], + substitute: ["8V", "7M"], + tailwhip: ["8V", "7L3", "7S0"], + thunder: ["8V", "7M", "7L30"], + thunderbolt: ["8V", "7M", "7L21"], + thunderpunch: ["8V", "7M"], + thundershock: ["8V", "7L1", "7S0"], + thunderwave: ["8V", "7M", "7L15"], + toxic: ["8V", "7M"], + zippyzap: ["8V", "7T"], + }, + eventData: [ + {generation: 7, level: 5, perfectIVs: 6, moves: ["thundershock", "tailwhip", "growl"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + pikachuworld: { + learnset: { + agility: ["9M", "9L24", "8M", "8L24"], + attract: ["8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + charge: ["8E"], + chargebeam: ["9M"], + charm: ["9M", "9L1", "8M", "8L1"], + dig: ["9M", "8M"], + disarmingvoice: ["9M", "8E"], + discharge: ["9L32", "8L32"], + doubleteam: ["9L8", "8L8"], + drainingkiss: ["9M", "8M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L12", "8M", "8L12"], + electroweb: ["8M", "8S1", "8S0"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["8E"], + faketears: ["9M"], + feint: ["9L16", "8L16"], + flail: ["8E"], + fling: ["9M", "8M"], + grassknot: ["9M", "8M"], + growl: ["9L1", "8L1"], + helpinghand: ["9M", "8M"], + irontail: ["9L28", "8M", "8S1", "8S0"], + lightscreen: ["9M", "9L40", "8M", "8L40"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1"], + payday: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + present: ["8E"], + protect: ["9M", "8M"], + quickattack: ["9L1", "8L1", "8S1", "8S0"], + raindance: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + slam: ["8L28"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spark: ["9L20", "8L20"], + substitute: ["9M", "8M"], + surf: ["9M", "8M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "9L44", "8M", "8L44"], + thunderbolt: ["9M", "9L36", "8M", "8L36", "8S1", "8S0"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L4", "8M", "8L4"], + tickle: ["8E"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M"], + volttackle: ["8S0"], + wildcharge: ["9M", "8M"], + wish: ["8E"], + }, + eventData: [ + {generation: 8, level: 25, nature: "Hardy", moves: ["thunderbolt", "quickattack", "irontail", "electroweb", "volttackle"], pokeball: "pokeball"}, + {generation: 8, level: 80, nature: "Hardy", ivs: {hp: 31, atk: 30, def: 30, spa: 31, spd: 30, spe: 31}, moves: ["thunderbolt", "quickattack", "irontail", "electroweb"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + raichu: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + calmmind: ["8V"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + discharge: ["9L1", "8L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["9L1", "8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L1", "8M", "8L1"], + electroweb: ["8M", "7T", "6T"], + encore: ["9M", "8M", "8V"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8V"], + feint: ["9L1", "8L1"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7V"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["9L1", "8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L1", "8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + naturalgift: ["4M"], + nuzzle: ["9L1", "8L1"], + payday: ["8M", "8V", "7V"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slam: ["8L1"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spark: ["9L1", "8L1"], + speedswap: ["8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "9L5", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + thunderpunch: ["9M", "9L0", "8M", "8L0", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thundershock: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + }, + raichualola: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "8V", "7M"], + calmmind: ["9M", "8M", "8V", "7M"], + chargebeam: ["9M", "7M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M"], + covet: ["7T"], + dig: ["9M", "8M", "8V"], + discharge: ["9L1", "8L1"], + doubleteam: ["9L1", "8L1", "8V", "7M"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L1", "8M", "8L1"], + electroweb: ["8M", "7T"], + encore: ["9M", "8M", "8V"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M"], + fakeout: ["8V"], + feint: ["9L1", "8L1"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "8V"], + headbutt: ["8V"], + helpinghand: ["9M", "8M", "8V", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + irontail: ["9L1", "8M", "8V", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nuzzle: ["9L1", "8L1"], + payday: ["8M", "8V"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "8V", "7M"], + psychic: ["9M", "9L0", "8M", "8L0", "8V", "7M", "7L1"], + psychicterrain: ["9M"], + psyshock: ["9M", "8M", "7M"], + quickattack: ["9L1", "8L1", "7L1"], + raindance: ["9M", "8M", "7M"], + recycle: ["7T"], + reflect: ["9M", "8M", "8V", "7M"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seismictoss: ["8V"], + shockwave: ["7T"], + signalbeam: ["7T"], + skillswap: ["9M"], + slam: ["8L1"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spark: ["9L1", "8L1"], + speedswap: ["8M", "7L1"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "8V", "7M"], + surf: ["9M", "8M"], + swagger: ["7M"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M", "8M"], + tailwhip: ["9L1", "8L1", "8V", "7L1"], + takedown: ["9M"], + telekinesis: ["7T"], + teleport: ["8V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunder: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + thunderbolt: ["9M", "9L5", "8M", "8L1", "8V", "7M", "7L1"], + thunderpunch: ["9M", "8M", "8V", "7T"], + thundershock: ["9L1", "8L1", "8V", "7L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M"], + toxic: ["8V", "7M"], + trailblaze: ["9M"], + uproar: ["8M"], + voltswitch: ["9M", "8M", "7M"], + wildcharge: ["9M", "8M", "7M"], + }, + }, + sandshrew: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L27"], + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + covet: ["7T", "6T", "5T"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["8L1", "8V", "7L1", "7V", "6L1", "5L3", "4L3", "3T", "3L6", "3S0"], + detect: ["7V"], + dig: ["8M", "8L33", "8V", "7L30", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L45", "8V", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["8L12", "7L11", "7V", "6L11", "5L25", "4T", "4L25", "3T"], + furyswipes: ["8L24", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L37"], + gyroball: ["8M", "8L36", "7M", "7L34", "6M", "6L34", "5M", "5L33", "4M", "4L33"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["8E", "7E", "6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8M"], + magnitude: ["7L14", "6L14", "5L17"], + metalclaw: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mimic: ["7V", "3T"], + mudshot: ["8M", "7E", "6E", "5E", "4E"], + mudslap: ["8E", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["8E", "7E", "6E", "5E", "4E"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L3", "8V", "7L5", "7V", "6L5", "5L9", "4L9", "3L17", "3S0"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rapidspin: ["8L15", "7L9", "7E", "7V", "6L9", "6E", "5L13", "5E", "4L13", "4E", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["7E", "6E", "5E", "4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L9", "7L7", "7V", "6L7", "5L21", "4T", "4L21", "3T"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + sandattack: ["8L6", "8V", "7L3", "7V", "6L3", "5L7", "5D", "4L7", "3L11", "3S0"], + sandstorm: ["8M", "8L42", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L37", "4M", "4L37", "3M", "3L53"], + sandtomb: ["8M", "7L23", "6L23", "5L27", "4L27", "3L45"], + scorchingsands: ["8T"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["8L30", "8V", "7L26", "7V", "6L26", "5L31", "4L31", "3L23"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "5D", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L21", "8V", "7L17", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L30"], + swordsdance: ["8M", "8L39", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L38", "4M", "4E", "3T", "3E"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["8M"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 12, gender: "M", nature: "Docile", ivs: {hp: 4, atk: 23, def: 8, spa: 31, spd: 1, spe: 25}, moves: ["scratch", "defensecurl", "sandattack", "poisonsting"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 6}, + ], + }, + sandshrewalola: { + learnset: { + aerialace: ["7M"], + amnesia: ["8M", "7E"], + aquatail: ["7T"], + attract: ["8M", "7M"], + auroraveil: ["7M"], + avalanche: ["8M"], + bide: ["8V", "7L3", "7S0"], + blizzard: ["8M", "8L45", "8V", "7M", "7L46"], + bodyslam: ["8M"], + brickbreak: ["8M", "8V", "7M"], + bulldoze: ["8M", "7M"], + chipaway: ["7E"], + confide: ["7M"], + counter: ["8E", "7E"], + covet: ["7T"], + crushclaw: ["8E", "7E"], + curse: ["8E", "7E"], + defensecurl: ["8L1", "8V", "7L1"], + dig: ["8M", "8V"], + doubleteam: ["7M"], + earthquake: ["8M", "8V", "7M"], + endure: ["8M", "7E"], + facade: ["8M", "8V", "7M"], + flail: ["8E", "7E"], + fling: ["8M", "7M"], + focuspunch: ["7T"], + frostbreath: ["7M"], + frustration: ["7M"], + furycutter: ["8L12", "7L11"], + furyswipes: ["8L24", "8V", "7L20"], + gyroball: ["8M", "8L36", "7M", "7L34"], + hail: ["8M", "8L42", "7M", "7L42"], + headbutt: ["8V"], + hiddenpower: ["7M"], + honeclaws: ["8E", "7E"], + iceball: ["7L7", "7S0"], + icebeam: ["8V"], + icepunch: ["8M", "8V", "7T"], + iceshard: ["8V"], + iciclecrash: ["7E"], + iciclespear: ["8M", "7E"], + icywind: ["8M", "7T"], + irondefense: ["8M", "8L27", "7T", "7L23"], + ironhead: ["8M", "8L33", "7T", "7L30"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + leechlife: ["8M", "7M"], + metalclaw: ["8L18", "7L14", "7E"], + mirrorcoat: ["8V"], + mist: ["8L3"], + nightslash: ["8E", "7E"], + poisonjab: ["8M", "8V", "7M"], + powdersnow: ["8L6", "7L5", "7S0"], + protect: ["8M", "8V", "7M"], + rapidspin: ["8L15", "7L9", "7S0"], + rest: ["8M", "8V", "7M"], + return: ["7M"], + rockslide: ["8M", "8V", "7M"], + rocktomb: ["8M"], + rollout: ["8L9"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scratch: ["8L1", "8V", "7L1"], + seismictoss: ["8V"], + shadowclaw: ["8M", "7M"], + slash: ["8L30", "8V", "7L26"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["8M", "8V", "7T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + superfang: ["7T"], + swagger: ["7M"], + swift: ["8M", "8L21", "8V", "7L17"], + swordsdance: ["8M", "8L39", "8V", "7M", "7L38"], + thief: ["8M", "7M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M"], + tripleaxel: ["8T"], + workup: ["8M", "7M"], + xscissor: ["8M", "8V", "7M"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["rapidspin", "iceball", "powdersnow", "bide"], pokeball: "cherishball"}, + ], + }, + sandslash: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8V", "3T"], + covet: ["7T", "6T", "5T"], + crushclaw: ["8L1", "7L1", "6L22", "5L22", "4L22"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + detect: ["7V"], + dig: ["8M", "8L41", "8V", "7L33", "7V", "6M", "6L30", "5M", "5L30", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L61", "8V", "7M", "7L53", "7V", "6M", "6L46", "5M", "5L46", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["8L12", "7L11", "7V", "6L11", "5L28", "4T", "4L28", "3T"], + furyswipes: ["8L26", "8V", "7L20", "7V", "6L20", "5L19", "4L19", "3L42"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "8L46", "7M", "7L38", "6M", "6L34", "5M", "5L45", "4M", "4L45"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8M"], + magnitude: ["7L14", "6L14", "5L17"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pinmissile: ["8M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L9", "4L9", "3L17"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rapidspin: ["8L15", "7L9", "6L9", "5L13", "4L13"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L9", "7L7", "7V", "6L7", "5L21", "4T", "4L21", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["8M", "8L56", "7M", "7L48", "7V", "6M", "6L42", "5M", "5L52", "4M", "4L52", "3M", "3L62"], + sandtomb: ["8M", "8L31", "7L24", "6L23", "5L33", "4L33", "3L52"], + scorchingsands: ["8T"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + skullbash: ["7V"], + slash: ["8L36", "8V", "7L28", "7V", "6L26", "5L40", "4L40", "3L24"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["8M"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L21", "8V", "7L17", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L33"], + swordsdance: ["8M", "8L51", "8V", "7M", "7L43", "7V", "6M", "6L38", "5M", "5L38", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["8M"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 2, level: 10}, + {generation: 4, level: 10}, + ], + }, + sandslashalola: { + learnset: { + aerialace: ["7M"], + agility: ["8M"], + amnesia: ["8M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + auroraveil: ["7M"], + avalanche: ["8M"], + bide: ["8V"], + blizzard: ["8M", "8L1", "8V", "7M"], + bodyslam: ["8M"], + brickbreak: ["8M", "8V", "7M"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + counter: ["8V"], + covet: ["7T"], + defensecurl: ["8L1", "8V", "7L1"], + dig: ["8M", "8V"], + doubleteam: ["7M"], + drillrun: ["8M", "8V", "7T"], + earthquake: ["8M", "8V", "7M"], + endure: ["8M"], + facade: ["8M", "8V", "7M"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frostbreath: ["7M"], + frustration: ["7M"], + furycutter: ["8L1"], + furyswipes: ["8L1"], + gigaimpact: ["8M", "7M"], + gyroball: ["8M", "8L1", "7M"], + hail: ["8M", "8L1", "7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8V", "7M"], + iceball: ["7L1"], + icebeam: ["8V"], + icepunch: ["8M", "8V", "7T"], + iceshard: ["8V"], + iciclecrash: ["8L1", "7L1"], + iciclespear: ["8M", "8L0", "7L1"], + icywind: ["8M", "7T"], + irondefense: ["8M", "8L1", "7T"], + ironhead: ["8M", "8L1", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + leechlife: ["8M", "7M"], + metalburst: ["8L1", "7L1"], + metalclaw: ["8L1", "7L1"], + mist: ["8L1"], + pinmissile: ["8M"], + poisonjab: ["8M", "8V", "7M"], + powdersnow: ["8L1"], + protect: ["8M", "8V", "7M"], + rapidspin: ["8L1"], + rest: ["8M", "8V", "7M"], + return: ["7M"], + rockslide: ["8M", "8V", "7M"], + rocktomb: ["8M"], + rollout: ["8L1"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scratch: ["8L1", "8V"], + seismictoss: ["8V"], + shadowclaw: ["8M", "7M"], + slash: ["8L1", "7L1"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spikes: ["8M"], + stealthrock: ["8M", "8V", "7T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + superfang: ["7T"], + swagger: ["7M"], + swift: ["8M", "8L1"], + swordsdance: ["8M", "8L1", "7M"], + thief: ["8M", "7M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M"], + tripleaxel: ["8T"], + workup: ["8M", "7M"], + xscissor: ["8M", "8V", "7M"], + }, + }, + nidoranf: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bite: ["8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L20"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + captivate: ["7L43", "6L43", "5L43", "4M", "4L43"], + charm: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crunch: ["8M", "8L50", "8V", "7L37", "6L37", "5L37", "4L37", "3L47"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doublekick: ["8L25", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L55"], + echoedvoice: ["7M", "6M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L45", "7L33", "6L33", "5L33", "4L33", "3L38"], + focusenergy: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8L15", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L30"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L35", "8V", "7T", "7L25", "6T", "6L25", "5T", "5L25", "4T", "4L25", "3L23"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poisonfang: ["8E", "7L45", "6L45", "5L45", "4L45"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + poisontail: ["8E", "7E", "6E", "5E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["5D"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "6T", "5T", "5D", "4T"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + tailwhip: ["8L10", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + takedown: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["8M", "7M", "6M", "5M"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 1, level: 2}, + ], + }, + nidorina: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + bite: ["8L36", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L22"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L50", "6L50", "5L50", "4M", "4L50"], + charm: ["8M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "8L64", "8V", "7L43", "6L43", "5L43", "4L43", "3L53"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L29", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L71"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L57", "7L38", "6L38", "5L38", "4L38", "3L43"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8L15", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L34"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L43", "8V", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L26"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poisonfang: ["7L58", "6L58", "5L58", "4L58"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L18"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + tailwhip: ["8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L50", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L22", "7L35", "6L35", "5L35", "4L35"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 4, level: 15, pokeball: "safariball"}, + ], + }, + nidoqueen: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + beatup: ["8M"], + bide: ["7V"], + bite: ["8L1"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "8V", "7L35", "7V", "6L35", "6S0", "5L35", "4L23", "3T", "3L22"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["8M"], + chipaway: ["7L23", "6L23", "5L23"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crunch: ["8M", "8L1"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L1", "7L1", "7V", "6L1", "6S0", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8V", "7M", "6M", "5M"], + drillrun: ["8M", "8V", "7T", "6T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "8L1", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["8L1"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hex: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + payday: ["8M", "8V", "7V"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "6S0", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["8M", "8L0", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L58", "4T", "4L58", "3L43"], + supersonic: ["8V"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "6S0", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 6, level: 41, perfectIVs: 2, abilities: ["poisonpoint"], moves: ["tailwhip", "doublekick", "poisonsting", "bodyslam"], pokeball: "cherishball"}, + ], + }, + nidoranm: { + learnset: { + amnesia: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + captivate: ["7L43", "6L43", "5L43", "4M", "4L43"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + confusion: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doublekick: ["8L25", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + earthpower: ["8M", "8L55"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L45", "7L33", "6L33", "5L33", "4L33", "3L38"], + focusenergy: ["8M", "8L10", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L15", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L30"], + headbutt: ["8V", "7V", "4T"], + headsmash: ["8E", "7E", "6E", "5E", "4E"], + helpinghand: ["8M", "8L35", "8V", "7T", "7L25", "6T", "6L25", "5T", "5L25", "4T", "4L25", "3L23"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hornattack: ["8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L20"], + horndrill: ["8E", "8V", "7L45", "7V", "6L45", "5L45", "4L45", "3L47"], + icebeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + peck: ["8L5", "8V", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + poisonjab: ["8M", "8L50", "8V", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + poisontail: ["8E", "7E", "6E", "5E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8E", "7E", "6E", "5E", "4T", "4E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "5D", "4T"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + takedown: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8E"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["8M", "7M", "6M", "5M"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 1, level: 2}, + ], + }, + nidorino: { + learnset: { + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L50", "6L50", "5L50", "4M", "4L50"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L29", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L12"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + earthpower: ["8M", "8L71"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L57", "7L38", "6L38", "5L38", "4L38", "3L43"], + focusenergy: ["8M", "8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L15", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L34"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L43", "8V", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L26"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hornattack: ["8L36", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L22"], + horndrill: ["8V", "7L58", "7V", "6L58", "5L58", "4L58", "3L53"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + peck: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["8M", "8L64", "8V", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], + poisonsting: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L18"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8L50", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L22", "7L35", "6L35", "5L35", "4L35"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + encounters: [ + {generation: 4, level: 15, pokeball: "safariball"}, + ], + }, + nidoking: { + learnset: { + amnesia: ["8M"], + aquatail: ["7T", "7S0", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + beatup: ["8M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L23", "6L23", "5L23"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublekick: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8V", "7M", "6M", "5M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "8L1", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + earthquake: ["8M", "8V", "7M", "7V", "7S0", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flatter: ["8L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L1"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hex: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hornattack: ["8L1", "7V"], + horndrill: ["7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["8L1", "8V"], + megahorn: ["8M", "8L0", "8V", "7L1", "6L1", "5L58", "4L58", "3L43"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + payday: ["8M", "8V", "7V"], + peck: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["8M", "8L1", "8V", "7M", "7S0", "6M", "5M", "4M"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + supersonic: ["8V"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7V"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8V", "7L35", "7V", "6L35", "5L35", "4L23", "3L22"], + throatchop: ["8M", "7T", "7S0"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "8L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 7, level: 68, abilities: ["poisonpoint"], moves: ["earthquake", "poisonjab", "throatchop", "aquatail"], pokeball: "cherishball"}, + ], + }, + cleffa: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + aromatherapy: ["8E", "7E", "6E", "5E", "5D", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + charm: ["8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + confide: ["7M", "6M"], + copycat: ["8L1", "7L13", "6L13", "5L13", "4L13"], + counter: ["3T"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "6M", "5M", "4M", "3M"], + disarmingvoice: ["8L12"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L16", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L4"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M", "7E", "6E", "5E", "4E"], + fireblast: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + healpulse: ["8E", "7E", "6E"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["8M", "7L16", "6L16", "5L16", "4L16", "3L17"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mistyterrain: ["8M", "7E", "6E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + playrough: ["8M"], + pound: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L4", "7L7", "7V", "6L7", "5L7", "4L7", "3L8"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["8L1", "7E", "7V", "6E", "5E", "4E", "3E"], + storedpower: ["8M", "7E", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L8", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8E", "7E", "6E", "5E", "4E", "3E"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + clefairy: { + learnset: { + afteryou: ["8L12", "7T", "7L58", "6T", "6L1", "5T", "5L52"], + allyswitch: ["8M"], + amnesia: ["8M", "8V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + bestow: ["7L19", "6L19", "5L25"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "8V", "7L40", "7V", "6L40", "5L40", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["8L1"], + cosmicpower: ["8M", "8L40", "7L34", "6L34", "5L28", "4L25", "3L33"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + defensecurl: ["8L1", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3T", "3L25"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["8L1", "7L1", "6L1"], + doubleedge: ["7V", "3T"], + doubleslap: ["8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L13"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "5L4", "4L4", "3L5"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["8L36", "8S0", "7L16", "6L16", "5L16", "4L16", "3L17"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["8L28", "7T", "7L49", "6T", "6L49", "5T", "5L37", "4T", "4L34"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["8L48", "7L55", "6L1", "5L49", "4L46"], + helpinghand: ["8M", "8V", "8S0", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "8S0", "7T", "6T", "5T", "4T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lifedew: ["8L16"], + lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "5L46", "4M", "4L40", "3M", "3L41"], + luckychant: ["7L37", "6L37", "5L31", "4L28"], + magicalleaf: ["8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + meteorbeam: ["8T"], + meteormash: ["8L32", "7L50", "6L50", "5L55", "4L43", "3L45"], + metronome: ["8M", "8L20", "8V", "8S1", "7L31", "7V", "6L31", "5L34", "4L31", "3T", "3L29"], + mimic: ["7V", "3T"], + minimize: ["8L8", "8V", "7L25", "7V", "6L25", "5L19", "4L19", "3L21"], + mistyexplosion: ["8T"], + mistyterrain: ["8M"], + moonblast: ["8L44", "8V", "8S1", "7L46", "6L46"], + moonlight: ["8L24", "8S1", "7L43", "7V", "6L43", "5L40", "4L37", "3L37"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + playrough: ["8M", "8V"], + pound: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "8S0", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L1", "8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L9"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["8L1"], + spotlight: ["7L1"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + storedpower: ["8M", "8L4", "7L28", "6L28", "5L43"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L1"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["8M"], + wakeupslap: ["7L22", "6L22", "5L22", "4L22"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "8S1", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 8, level: 50, gender: "F", shiny: true, nature: "Bold", isHidden: true, ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["followme", "icywind", "helpinghand", "protect"], pokeball: "cherishball"}, + {generation: 8, level: 15, gender: "M", nature: "Modest", abilities: ["cutecharm"], moves: ["metronome", "moonblast", "zenheadbutt", "moonlight"], pokeball: "moonball"}, + ], + encounters: [ + {generation: 1, level: 8}, + ], + }, + clefable: { + learnset: { + afteryou: ["8L1", "7T", "6T", "5T"], + allyswitch: ["8M"], + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["8L1"], + cosmicpower: ["8M", "8L1"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + defensecurl: ["8L1", "8V", "7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["8L1", "7L1", "6L1"], + doubleedge: ["7V", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L1"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["8L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["8L1", "7T", "6T", "5T", "4T"], + growl: ["8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["8L1"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lifedew: ["8L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + meteorbeam: ["8T"], + meteormash: ["8L1"], + metronome: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + mimic: ["7V", "3T"], + minimize: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mistyexplosion: ["8T"], + mistyterrain: ["8M"], + moonblast: ["8L1"], + moonlight: ["8L1", "7V"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + playrough: ["8M", "8V"], + pound: ["8L1", "8V"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["8L1"], + spotlight: ["7L1"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + storedpower: ["8M", "8L1"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L1"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["8M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + vulpix: { + learnset: { + agility: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["8E", "7L9", "6L9"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + burningjealousy: ["8T"], + captivate: ["7L47", "7E", "6L47", "6E", "5L41", "4M", "4L37"], + charm: ["3S1"], + confide: ["7M", "6M"], + confuseray: ["8L20", "8V", "7L12", "7V", "6L12", "5L17", "4L17", "3L21"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["8M", "8V", "7M", "6M", "5T", "5D", "4M"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M", "3S1"], + disable: ["8L4", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4E"], + extrasensory: ["8L28", "7L31", "7E", "6L31", "6E", "5L51", "5E", "4L44", "4E"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L23", "7E", "7V", "6L20", "6E", "5L20", "5E", "4E", "3E"], + fireblast: ["8M", "8L56", "8V", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L54", "4M", "4L47", "3M"], + firespin: ["8M", "8L40", "8V", "7L15", "7V", "6L12", "5L14", "4L34", "3L41"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flameburst: ["7L28", "6L23", "5L24"], + flamecharge: ["8E", "7M", "6M", "5M"], + flamethrower: ["8M", "8L32", "8V", "7M", "7L36", "7V", "6M", "6L34", "5M", "5L37", "4M", "4L24", "3M", "3L29"], + flareblitz: ["8M", "7E", "6E", "5E", "4E"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grudge: ["8L52", "7L44", "6L44", "5L47", "4L41", "3L37"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E", "3S1"], + hex: ["8M", "7L26", "7E", "6L26", "6E", "5L28", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["8E", "7E", "6E", "5E", "4E", "3E"], + hypnosis: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + imprison: ["8M", "8L36", "7L39", "6L18", "5L21", "4L21", "3L25"], + incinerate: ["8L16", "6M", "5M"], + inferno: ["8L48", "7L50", "6L50", "5L44"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + memento: ["8E"], + mimic: ["7V", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "7L18", "6M", "6L18", "5M", "5L34", "4M", "4L31"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3E"], + quickattack: ["8L8", "8V", "7L10", "7V", "6L10", "5L11", "4L11", "3L13", "3S0"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["8E", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "5D", "4M", "4L7", "3M", "3L9", "3S0"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L44", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L27", "4M", "4L27", "3M", "3L33"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["8L12", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8V"], + tailslap: ["8M", "7E", "6E", "5E"], + tailwhip: ["8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L5", "3S0"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["8M"], + willowisp: ["8M", "8L24", "8V", "7M", "7L20", "6M", "6L20", "5M", "5L31", "4M", "4L14", "3L17", "3S0"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 18, gender: "F", nature: "Quirky", ivs: {hp: 15, atk: 6, def: 3, spa: 25, spd: 13, spe: 22}, moves: ["tailwhip", "roar", "quickattack", "willowisp"], pokeball: "pokeball"}, + {generation: 3, level: 18, moves: ["charm", "heatwave", "ember", "dig"]}, + ], + encounters: [ + {generation: 1, level: 18}, + ], + }, + vulpixalola: { + learnset: { + agility: ["8M", "7E"], + aquatail: ["7T"], + attract: ["8M", "7M"], + aurorabeam: ["8L24", "8V", "7L28"], + auroraveil: ["8L44", "7M"], + babydolleyes: ["8E", "7L9", "7S0"], + blizzard: ["8M", "8L56", "8V", "7M", "7L42"], + bodyslam: ["8M"], + captivate: ["7L47"], + celebrate: ["7S0"], + charm: ["8M", "7E"], + confide: ["7M"], + confuseray: ["8L20", "8V", "7L12"], + covet: ["7T"], + darkpulse: ["8M", "8V", "7M"], + dazzlinggleam: ["8V"], + dig: ["8M", "8V"], + disable: ["8L4", "7E"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + encore: ["8M", "7E"], + endure: ["8M"], + extrasensory: ["8L28", "7L31", "7E"], + facade: ["8M", "8V", "7M"], + feintattack: ["7L23"], + flail: ["8E", "7E"], + foulplay: ["8M", "8V", "7T"], + freezedry: ["8E", "7E"], + frostbreath: ["7M"], + frustration: ["7M"], + grudge: ["8L52", "7L44"], + hail: ["8M", "7M"], + headbutt: ["8V"], + healbell: ["7T"], + hex: ["8M", "7L26"], + hiddenpower: ["7M"], + howl: ["8E", "7E"], + hypnosis: ["8E", "7E"], + icebeam: ["8M", "8L32", "8V", "7M", "7L36"], + iceshard: ["8L8", "8V", "7L10", "7S0"], + icywind: ["8M", "8L16", "7T", "7L15"], + imprison: ["8M", "8L36", "7L39"], + irontail: ["8M", "8V", "7T"], + mist: ["8L40", "8V", "7L20"], + moonblast: ["8E", "7E"], + painsplit: ["7T"], + payback: ["8M", "7M", "7L18"], + powdersnow: ["8L1", "7L1", "7S1"], + powerswap: ["8M", "7E"], + protect: ["8M", "8V", "7M"], + psychup: ["7M"], + raindance: ["8M", "7M"], + reflect: ["8V"], + rest: ["8M", "8V", "7M"], + return: ["7M"], + roar: ["8E", "8V", "7M", "7L7"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "7L34"], + secretpower: ["7E"], + sheercold: ["8L48", "7L50"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spite: ["8L12", "7T", "7E"], + substitute: ["8M", "8V", "7M"], + swagger: ["7M"], + swift: ["8M"], + tackle: ["8V"], + tailslap: ["8M", "7E"], + tailwhip: ["8L1", "8V", "7L4", "7S0"], + toxic: ["8V", "7M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["celebrate", "tailwhip", "babydolleyes", "iceshard"], pokeball: "cherishball"}, + {generation: 7, level: 10, gender: "F", nature: "Modest", moves: ["powdersnow"], pokeball: "cherishball"}, + ], + }, + ninetales: { + learnset: { + agility: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + burningjealousy: ["8T"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["8M", "8V", "7M", "6M", "5T", "4M"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["8L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "6M", "5M", "4M"], + ember: ["8L1", "8V", "7V", "5L1", "4L1", "3L1"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M"], + extrasensory: ["8L1"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M"], + fireblast: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["8M", "8L1", "7V", "3L45"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5M", "4M", "3M"], + flareblitz: ["8M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grudge: ["8L1"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "5S0", "4T"], + hex: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8V"], + imprison: ["8M", "8L1", "7L1", "6L1"], + incinerate: ["8L1", "6M", "5M"], + inferno: ["8L1"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + mimic: ["7V", "3T"], + mysticalfire: ["8M"], + nastyplot: ["8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + ominouswind: ["4T"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["8M", "7M", "6M", "5M", "5S0"], + quickattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "5S0", "4M"], + spite: ["8L1", "7T", "6T", "5T", "4T"], + storedpower: ["8M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8V"], + tailslap: ["8M"], + tailwhip: ["8L1", "8V", "7V"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["8M"], + willowisp: ["8M", "8L1", "8V", "7M", "6M", "5M", "5S0", "4M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Bold", ivs: {def: 31}, isHidden: true, moves: ["heatwave", "solarbeam", "psyshock", "willowisp"], pokeball: "cherishball"}, + ], + }, + ninetalesalola: { + learnset: { + agility: ["8M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + aurorabeam: ["8L1"], + auroraveil: ["8L1", "7M"], + avalanche: ["8M"], + blizzard: ["8M", "8L1", "8V", "7M"], + bodyslam: ["8M"], + calmmind: ["8M", "8V", "7M"], + charm: ["8M"], + confide: ["7M"], + confuseray: ["8L1", "7L1"], + covet: ["7T"], + darkpulse: ["8M", "8V", "7M"], + dazzlinggleam: ["8M", "8L0", "8V", "7M", "7L1"], + dig: ["8M", "8V"], + disable: ["8L1"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + dreameater: ["8V", "7M"], + encore: ["8M"], + endure: ["8M"], + extrasensory: ["8L1"], + facade: ["8M", "8V", "7M"], + faketears: ["8M"], + foulplay: ["8M", "8V", "7T"], + frostbreath: ["7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grudge: ["8L1"], + hail: ["8M", "7M"], + headbutt: ["8V"], + healbell: ["7T"], + hex: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8V", "7M"], + hypnosis: ["8V"], + icebeam: ["8M", "8L1", "8V", "7M", "7L1"], + iceshard: ["8L1", "8V", "7L1"], + icywind: ["8M", "8L1", "7T"], + imprison: ["8M", "8L1", "7L1"], + irontail: ["8M", "8V", "7T"], + laserfocus: ["7T"], + mist: ["8L1", "8V"], + mistyterrain: ["8M"], + nastyplot: ["8M", "8L1", "8V", "7L1"], + painsplit: ["7T"], + payback: ["8M", "7M"], + powdersnow: ["8L1"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M"], + psychup: ["7M"], + psyshock: ["8M", "7M"], + raindance: ["8M", "7M"], + reflect: ["8V"], + rest: ["8M", "8V", "7M"], + return: ["7M"], + roar: ["7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "7L1"], + sheercold: ["8L1"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M"], + spite: ["8L1", "7T"], + storedpower: ["8M"], + substitute: ["8M", "8V", "7M"], + swagger: ["7M"], + swift: ["8M"], + tackle: ["8V"], + tailslap: ["8M"], + tailwhip: ["8L1", "8V"], + toxic: ["8V", "7M"], + tripleaxel: ["8T"], + weatherball: ["8M"], + wonderroom: ["8M", "7T"], + zenheadbutt: ["8M", "7T"], + }, + }, + igglybuff: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + captivate: ["7E", "6E", "5E", "4M"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L11", "6L11", "5L17", "4L17"], + counter: ["3T"], + covet: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["7V"], + dazzlinggleam: ["9M"], + defensecurl: ["9L4", "8L4", "7L3", "7V", "6L3", "5L5", "4L5", "3T", "3L4", "3S0"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disable: ["9L16", "8L16"], + disarmingvoice: ["9M", "9L12", "8L12"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healpulse: ["9E", "8E", "7E", "6E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lastresort: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mistyterrain: ["9M", "8M", "7E", "6E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + perishsong: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + playrough: ["9M", "8M"], + pound: ["9L1", "8L1", "7L5", "7V", "6L5", "5L9", "4L9", "3L9"], + present: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + punishment: ["7E", "6E", "5E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["9E", "8E", "7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L8", "8L8", "7L9", "7V", "6L9", "5L13", "4L13", "3L14"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["3S0"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["sing", "charm", "defensecurl", "tickle"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + jigglypuff: { + learnset: { + allyswitch: ["8M", "7T"], + amnesia: ["9M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bide: ["8V", "7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L24", "8M", "8L24", "8V", "7L32", "7V", "6L33", "5L33", "4L29", "3T", "3L34"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["9M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["7V", "3T"], + covet: ["9L8", "8L8", "7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["9M"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7L3", "7V", "6L3", "5L5", "4L5", "3T", "3L4"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L1", "8L1", "8V", "7L14", "7V", "6L13", "5L13", "4L13", "3L14"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["9L44", "8L44", "8V", "7L45", "7V", "6L49", "5L53", "4L49", "3T", "3L49"], + doubleslap: ["8V", "7L17", "7V", "6L18", "5L25", "4L21", "3L24"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["9L4", "8L4", "7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["9L32", "8M", "8L32", "7M", "7L35", "6M", "6L37", "5M", "5L37", "4M", "4L33"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L36", "8M", "8L36", "7T", "7L41", "6T", "6L44", "5T", "5L49", "4L45", "3L44"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["9L28", "8L28", "8V", "7L38", "7V", "6L37", "5L45", "4L41", "3T", "3L39"], + mistyexplosion: ["8T"], + mistyterrain: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + playnice: ["7L9", "6L8"], + playrough: ["9M", "8M", "8L40", "8V"], + pound: ["9L1", "8L1", "8V", "7L5", "7V", "6L5", "5L9", "4L9", "3L9"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L30", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L25", "3M", "3L29"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7L20", "7V", "6L21", "5L21", "4T", "4L17", "3T", "3L19"], + round: ["9L16", "8M", "8L16", "7M", "7L22", "6M", "6L17", "5M", "5L17"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spitup: ["9L12", "8L12", "7L25"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stockpile: ["9L12", "8L12", "7L25"], + storedpower: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L12", "8L12", "7L25"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + uproar: ["8M"], + wakeupslap: ["7L27", "6L28", "5L41", "4L37"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 3}, + {generation: 3, level: 3}, + ], + }, + wigglytuff: { + learnset: { + allyswitch: ["8M", "7T"], + amnesia: ["9M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bide: ["8V", "7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L1", "8M", "8L1", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["9M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["7V", "3T"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + darkpulse: ["9M"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleedge: ["9L1", "8L1", "7L1", "7V", "6L1", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["9L1", "8L1", "7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["9L1", "8L1", "7V", "3T"], + minimize: ["8V"], + mistyexplosion: ["8T"], + mistyterrain: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + playrough: ["9M", "9L5", "8M", "8L1", "8V", "7L1", "6L1"], + pound: ["9L1", "8L1", "8V"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["7V", "4T", "3T"], + round: ["9L1", "8M", "8L1", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spitup: ["9L1", "8L1"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stockpile: ["9L1", "8L1"], + storedpower: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9L1", "8L1"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + uproar: ["8M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 1, level: 22}, + ], + }, + zubat: { + learnset: { + absorb: ["8L1", "8V", "7L1"], + acrobatics: ["8M", "7M", "6M", "6L30", "5M", "5L33"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + aircutter: ["8L25", "7L19", "6L19", "5L25", "4T", "4L25", "3L31"], + airslash: ["8M", "8L50", "8V", "7L41", "6L41", "5L45", "4L41"], + assurance: ["8M"], + astonish: ["8L5", "7L7", "6L7", "5L9", "4L9", "3L6"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8L30", "8V", "7L11", "7V", "6L11", "5L13", "4L13", "3L16"], + bravebird: ["8M", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L45", "8V", "7L17", "7V", "6L17", "5L21", "4L21", "3L26"], + crunch: ["8M"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defog: ["8E", "7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fly: ["8M", "8V", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + gust: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + haze: ["8L35", "8V", "7L35", "7V", "6L35", "5L41", "4L37", "3L46"], + headbutt: ["8V"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8E", "7E", "6E", "5E", "5D", "4E"], + leechlife: ["8M", "8L55", "8V", "7M", "7L31", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L10", "7L29", "7V", "6L29", "5L29", "4L29", "3L36"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + poisonfang: ["8L15", "7L25", "6L25", "5L37", "4L33", "3L41"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + quickguard: ["8L20", "7L43", "6L43"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "5D", "4T"], + supersonic: ["8L1", "8V", "7L5", "7V", "6L4", "5L5", "5D", "4L5", "3L6"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8V", "7L23", "7V", "6L23", "5L24", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["8M", "8L40", "7M", "7L37", "6M", "6L37", "5M"], + whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["8E", "8V", "7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + encounters: [ + {generation: 1, level: 6}, + {generation: 2, level: 2}, + ], + }, + golbat: { + learnset: { + absorb: ["8L1", "8V", "7L1"], + acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L39"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + aircutter: ["8L27", "7L19", "6L19", "5L27", "4T", "4L27", "3L35"], + airslash: ["8M", "8L62", "8V", "7L48", "6L48", "5L57", "4L51"], + assurance: ["8M"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8L34", "8V", "7L1", "7V", "6L1", "5L13", "4L13", "3L16"], + bravebird: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L55", "8V", "7L17", "7V", "6L17", "5L21", "4L21", "3L28"], + crunch: ["8M", "8V"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "8V", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + haze: ["8L41", "8V", "7L40", "7V", "6L40", "5L51", "4L45", "3L56"], + headbutt: ["8V"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + leechlife: ["8M", "8L69", "8V", "7M", "7L35", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L1", "7L32", "7V", "6L32", "5L33", "4L33", "3L42"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + poisonfang: ["8L15", "7L27", "6L27", "5L45", "4L39", "3L49"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V"], + quickguard: ["8L20", "7L51", "6L51"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + supersonic: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8V", "7L24", "7V", "6L24", "5L24", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + venomdrench: ["8M"], + venoshock: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M"], + whirlwind: ["8V", "7V"], + wingattack: ["8V", "7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 2, level: 13}, + {generation: 3, level: 5}, + {generation: 4, level: 10}, + {generation: 6, level: 19, maxEggMoves: 1}, + {generation: 7, level: 20}, + ], + }, + crobat: { + learnset: { + absorb: ["8L1", "7L1"], + acrobatics: ["8M", "7M", "6M", "6L33", "5M", "5L39"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + aircutter: ["8L27", "7L19", "6L19", "5L27", "4T", "4L27", "3L35"], + airslash: ["8M", "8L62", "7L48", "7S1", "6L48", "5L57", "4L51", "4S0"], + assurance: ["8M"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["8L34", "7L1", "7V", "6L1", "5L13", "4L13", "3L16"], + bravebird: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L55", "7L17", "7V", "6L17", "5L21", "4L21", "3L28"], + crosspoison: ["8M", "8L0", "7L1", "6L1", "5L1", "4L1"], + crunch: ["8M"], + curse: ["7V"], + darkpulse: ["8M", "7M", "7S1", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + haze: ["8L41", "7L40", "7V", "6L40", "5L51", "4L45", "3L56"], + heatwave: ["8M", "7T", "6T", "5T", "4T", "4S0"], + hex: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + leechlife: ["8M", "8L69", "7M", "7L35", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L1", "7L32", "7V", "6L32", "5L33", "4L33", "3L42"], + mimic: ["3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + poisonfang: ["8L15", "7L27", "6L27", "5L45", "4L39", "3L49"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickguard: ["8L20", "7L51", "6L51"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "7S1", "6M", "5M", "4M", "4S0", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T", "4S0"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7L24", "7V", "6L24", "5L24", "4T", "3T"], + tailwind: ["8L1", "7T", "6T", "5T", "4T"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L1", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + venomdrench: ["8M"], + venoshock: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M"], + wingattack: ["7L13", "7V", "6L13", "5L17", "4L17", "3L21"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 30, gender: "M", nature: "Timid", moves: ["heatwave", "airslash", "sludgebomb", "superfang"], pokeball: "cherishball"}, + {generation: 7, level: 64, gender: "M", moves: ["airslash", "toxic", "darkpulse", "sludgebomb"], pokeball: "cherishball"}, + ], + }, + oddish: { + learnset: { + absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + acid: ["8L4", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L23", "3S0"], + afteryou: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L20", "7T", "7L31", "7V", "6T", "6L31", "5T", "5L37", "5D", "4M", "4L37", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L32", "7L47", "6L45"], + growth: ["8L1", "8V", "7L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8E", "7E", "6E", "5E", "4E", "3E"], + leechseed: ["8E", "3S1"], + luckychant: ["7L23", "6L23", "5L25", "4L25"], + megadrain: ["8L12", "8V", "7L19", "7V", "6L19", "5L21", "4L21"], + mimic: ["7V", "3T"], + moonblast: ["8L28", "8V", "7L43", "6L43"], + moonlight: ["8L36", "7L27", "7V", "6L27", "5L33", "4L33", "3L32"], + naturalgift: ["7L39", "6L29", "5L29", "4M", "4L29"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E"], + petaldance: ["8L40", "7L51", "7V", "6L41", "5L41", "4L41", "3L39"], + poisonpowder: ["8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L14", "3S0"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + strengthsap: ["8E", "7E"], + stunspore: ["8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16", "3S0"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L8", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L7"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + synthesis: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + takedown: ["7V"], + teeterdance: ["8E", "7E", "6E", "5E", "5D", "4E"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["8L24", "8V", "7M", "7L35", "7V", "6M", "6L35", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 26, gender: "M", nature: "Quirky", ivs: {hp: 23, atk: 24, def: 20, spa: 21, spd: 9, spe: 16}, moves: ["poisonpowder", "stunspore", "sleeppowder", "acid"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["absorb", "leechseed"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 12}, + ], + }, + gloom: { + learnset: { + absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + acid: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L24", "3S0"], + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L20", "7T", "7L34", "7V", "6T", "6L34", "5T", "5L47", "4M", "4L47", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L38", "7L54", "6L54"], + growth: ["8L1", "8V", "7L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + luckychant: ["7L24", "6L24", "5L29", "4L29"], + megadrain: ["8L12", "8V", "7L19", "7V", "6L19", "5L23", "4L23"], + mimic: ["7V", "3T"], + moonblast: ["8L32", "8V"], + moonlight: ["8L44", "7L29", "7V", "6L29", "5L41", "4L41", "3L35", "3S0"], + naturalgift: ["7L44", "6L35", "5L35", "4M", "4L35"], + naturepower: ["7M", "6M"], + petalblizzard: ["7L49", "6L49"], + petaldance: ["8L50", "7L59", "7V", "6L53", "5L53", "4L53", "3L44", "3S0"], + poisonpowder: ["8L14", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L18", "8V", "7L15", "7V", "6L15", "5L17", "4L17", "3L18", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stunspore: ["8L16", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L16"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + toxic: ["8L26", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["sleeppowder", "acid", "moonlight", "petaldance"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 2, level: 14}, + {generation: 4, level: 14}, + {generation: 6, level: 18, maxEggMoves: 1}, + ], + }, + vileplume: { + learnset: { + absorb: ["8L1", "8V", "7V", "3L1"], + acid: ["8L1", "8V", "7V"], + afteryou: ["7T", "6T", "5T"], + aromatherapy: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L1"], + growth: ["8L1", "8V"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + megadrain: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + moonblast: ["8L1"], + moonlight: ["8L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L0", "7L49", "6L49"], + petaldance: ["8L1", "8V", "7L59", "7V", "6L53", "5L53", "4L53", "3L44"], + poisonpowder: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + pollenpuff: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L1", "7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7L69", "7V", "6M", "6L64", "5M", "5L65", "4M", "4L65", "3M"], + stunspore: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L1", "7V"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + toxic: ["8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + bellossom: { + learnset: { + absorb: ["8L1", "7V", "3L1"], + acid: ["8L1"], + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L1"], + growth: ["8L1"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + leafblade: ["8M", "7L1", "6L1", "5L1", "4L1"], + leafstorm: ["8M", "7L1", "6L1", "5L53", "4L53"], + magicalleaf: ["8M", "7L1", "6L23", "5L23", "4L23", "3L1"], + megadrain: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mimic: ["3T"], + moonblast: ["8L1"], + moonlight: ["8L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L0", "7L49", "6L49"], + petaldance: ["8L1", "7L59", "7V", "3L44"], + playrough: ["8M"], + poisonpowder: ["8L1"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quiverdance: ["8L1", "7L39"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeppowder: ["8L1"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3L55"], + stunspore: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + toxic: ["8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + paras: { + learnset: { + absorb: ["8V", "7L11"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + agility: ["7E", "6E", "5E", "4E"], + aromatherapy: ["7L43", "6L43", "5L43", "4L38", "3L49"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + brickbreak: ["8V", "7M", "6M", "5M", "4M"], + bugbite: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crosspoison: ["7E", "6E", "5E", "5D", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "7V", "6M", "5M", "4M", "4E", "3E", "3S0"], + fellstinger: ["7E", "6E"], + flail: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7L17", "7V", "6L17", "5L17", "4T", "3T"], + furyswipes: ["8V"], + gigadrain: ["7T", "7L38", "7V", "6T", "6L38", "5T", "5L38", "4M", "4L33", "3M", "3L43"], + grassknot: ["7M", "6M", "5M", "4M"], + grassyterrain: ["7E"], + growth: ["8V", "7L33", "7V", "6L33", "5L33", "4L27", "3L37"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8V", "7M", "7V", "6L11", "5L11", "4L11", "3L19"], + leechseed: ["7E", "6E", "5E"], + lightscreen: ["8V", "7M", "7V", "6M", "5M", "4E", "3E"], + megadrain: ["8V", "7V"], + metalclaw: ["7E", "6E", "5E", "4E"], + mimic: ["7V", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + poisonpowder: ["8V", "7L6", "7V", "6L6", "5L6", "4L6", "3L13"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["7E", "7V", "6E", "5E", "4E", "3E"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + ragepowder: ["7L49", "6L49", "5L49"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rototiller: ["7E", "6E"], + round: ["7M", "6M", "5M"], + scratch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slash: ["8V", "7L27", "7V", "6L27", "5L27", "4L22", "3L31", "3S0"], + sleeppowder: ["8V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spore: ["8V", "7L22", "7V", "6L22", "5L22", "4L17", "3L25", "3S0"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + stunspore: ["8V", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L7"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7E", "7V", "6E", "5E", "4E", "3E"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "5D", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + wideguard: ["7E", "6E"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8V", "7M", "7L54", "6M", "6L54", "5M", "5L54", "4M", "4L43"], + }, + eventData: [ + {generation: 3, level: 28, abilities: ["effectspore"], moves: ["refresh", "spore", "slash", "falseswipe"]}, + ], + encounters: [ + {generation: 1, level: 8}, + ], + }, + parasect: { + learnset: { + absorb: ["8V", "7L1"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + aromatherapy: ["7L51", "6L51", "5L51", "4L47", "3L59"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + brickbreak: ["8V", "7M", "6M", "5M", "4M"], + bugbite: ["7T", "6T", "5T", "4T"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crosspoison: ["7L1", "6L1", "5L1", "4L1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "6M", "5M", "4M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7L17", "7V", "6L17", "5L17", "4T", "3T"], + furyswipes: ["8V"], + gigadrain: ["7T", "7L44", "7V", "6T", "6L44", "5T", "5L44", "4M", "4L39", "3M", "3L51"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growth: ["8V", "7L37", "7V", "6L37", "5L37", "4L30", "3L43"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8V", "7M", "7V", "6L1", "5L1", "4L1", "3L19"], + leechseed: ["8V"], + lightscreen: ["8V", "7M", "6M", "5M"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poisonpowder: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + ragepowder: ["7L59", "6L59", "5L59"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scratch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8V"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + slash: ["8V", "7L29", "7V", "6L29", "5L29", "4L22", "3L35"], + sleeppowder: ["8V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spore: ["8V", "7L22", "7V", "6L22", "5L22", "4L17", "3L27"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + stunspore: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8V", "7M", "7L66", "6M", "6L66", "5M", "5L66", "4M", "4L55"], + }, + encounters: [ + {generation: 1, level: 13}, + {generation: 2, level: 5}, + ], + }, + venonat: { + learnset: { + acidspray: ["9M"], + agility: ["9M", "9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + bugbite: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbuzz: ["9M", "9L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L11", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L17"], + curse: ["7V"], + disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "4E", "3M", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leechlife: ["9M", "9L35", "8V", "7M", "7L35", "7V", "6L17", "5L17", "4L17", "3L25"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + morningsun: ["9E", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightshade: ["9M"], + poisonfang: ["9L41", "7L41", "6L41", "5L41", "4L41"], + poisonpowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L20"], + pounce: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L17", "8V", "7L17", "7V", "6L25", "5L25", "4L25", "3L33"], + psychic: ["9M", "9L47", "8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L41"], + psywave: ["7V"], + rage: ["7V"], + ragepowder: ["9E", "7E", "6E", "5E"], + reflect: ["8V", "7V"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + screech: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + signalbeam: ["7T", "7L25", "7E", "6T", "6L35", "6E", "5T", "5L35", "5E", "4T", "4L35", "4E", "3E"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + sleeppowder: ["9L29", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L36"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + stunspore: ["9L23", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L28"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9L5", "8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L9"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9E", "7E", "6E", "5E", "4E"], + venoshock: ["9M", "9E", "7M", "6M", "5M"], + zenheadbutt: ["9M", "9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + }, + encounters: [ + {generation: 1, level: 13}, + ], + }, + venomoth: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8V"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L0"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bide: ["7V"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L25", "8V", "7L1", "6L1", "5L59", "4L59"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L11", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L17"], + curse: ["7V"], + defog: ["7T", "4M"], + disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gust: ["8V", "7L1", "7V", "6L31", "5L31", "4L31", "3L31"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leechlife: ["9M", "9L37", "8V", "7M", "7L37", "7V", "6L17", "5L17", "4L17", "3L25"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["4T"], + poisonfang: ["9L47", "7L47", "6L47", "5L47", "4L47"], + poisonpowder: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L20"], + pounce: ["9M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L17", "8V", "7L17", "7V", "6L25", "5L25", "4L25", "3L36"], + psychic: ["9M", "9L55", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L55", "3M", "3L52", "3S0"], + psywave: ["7V"], + quiverdance: ["9L1", "8V", "7L1", "6L1", "5L63"], + rage: ["7V"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + screech: ["8V"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7L25", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + silverwind: ["7L1", "6L1", "5L1", "4M", "4L1", "3L1", "3S0"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeppowder: ["9L29", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L42"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + stunspore: ["9L23", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L28"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T", "3S0"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + twister: ["4T"], + uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], + venoshock: ["9M", "7M", "6M", "5M"], + whirlwind: ["7V"], + zenheadbutt: ["9M", "9L41", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + }, + eventData: [ + {generation: 3, level: 32, abilities: ["shielddust"], moves: ["refresh", "silverwind", "substitute", "psychic"]}, + ], + encounters: [ + {generation: 1, level: 30}, + {generation: 2, level: 10}, + {generation: 4, level: 8}, + {generation: 6, level: 30}, + ], + }, + diglett: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + assurance: ["8M"], + astonish: ["9L8", "8L8", "7L7", "7E", "6L7", "6E", "5L7", "5E", "4L7", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18", "6M", "6L18", "5M", "5L18"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "9L32", "8M", "8L32", "8V", "7L31", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L18", "3M", "3L17"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L36", "8M", "8L36", "7T", "7L28", "6T", "6L29", "5T", "5L29", "4T", "4L26"], + earthquake: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L39", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L37", "3M", "3L41"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + finalgambit: ["9E", "8E", "7E", "6E", "5E"], + fissure: ["9L44", "8L44", "8V", "7L43", "7V", "6L45", "5L45", "4L40", "3L49"], + foulplay: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8V", "3L21"], + growl: ["9L4", "8L4", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L5"], + headbutt: ["9E", "8E", "8V", "7E", "6E", "5E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["9E", "8E", "6M", "5M"], + magnitude: ["7L14", "7V", "6L15", "5L15", "4L12", "3L9"], + memento: ["9E", "8E", "7E", "6E", "5E"], + mimic: ["7V", "3T"], + mudbomb: ["7L25", "7E", "6L26", "6E", "5L26", "5E", "4L29", "4E"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10", "7V", "6L12", "5L12", "4T", "4L15", "3T", "3L25"], + naturalgift: ["4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M", "7E", "6E", "5E", "4E"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + sandstorm: ["9M", "9L28", "8M", "8L28", "7M", "6M", "5M", "4M"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L24", "8L24", "8V", "7L35", "7V", "6L37", "5L37", "4L34", "3L33"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L20", "8L20", "8V", "7L22", "6L23", "5L23", "4T", "4L23"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7E", "6E", "5T", "5E", "4E", "3E"], + workup: ["8M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 2}, + ], + }, + diglettalola: { + learnset: { + aerialace: ["7M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + ancientpower: ["9E", "8E", "7E"], + assurance: ["8M"], + astonish: ["9L8", "8L8", "7L7", "7S0"], + attract: ["8M", "7M"], + beatup: ["8M", "7E"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18"], + charm: ["9M"], + confide: ["7M"], + dig: ["9M", "9L32", "8M", "8L32", "8V", "7L31"], + doubleteam: ["7M"], + earthpower: ["9M", "9L36", "8M", "8L36", "7T", "7L28"], + earthquake: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L39"], + echoedvoice: ["7M"], + endure: ["9M", "8M", "7E"], + facade: ["9M", "8M", "8V", "7M"], + feintattack: ["7E"], + finalgambit: ["9E", "8E", "7E"], + fissure: ["9L44", "8L44", "8V", "7L43"], + flashcannon: ["9M", "8M", "8V", "7M"], + foulplay: ["9M"], + frustration: ["7M"], + furyswipes: ["8V"], + growl: ["9L4", "8L4", "8V", "7L4", "7S0"], + headbutt: ["9E", "8E", "8V", "7E"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + honeclaws: ["9E", "8E"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "9L24", "8M", "8L24", "7T", "7L35"], + magnitude: ["7L14"], + memento: ["9E", "8E", "7E"], + metalclaw: ["9M", "9L1", "8L1", "7L1", "7S0"], + metalsound: ["9E", "8E", "7E"], + mudbomb: ["7L25"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10", "7S0"], + protect: ["9M", "8M", "8V", "7M"], + pursuit: ["7E"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + reversal: ["9M", "8M", "7E"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "8V", "7L1"], + sandstorm: ["9M", "9L28", "8M", "8L28", "7M"], + scaryface: ["9M"], + scorchingsands: ["8T"], + scratch: ["8V"], + screech: ["8M"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["8V"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "8V", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8V", "7T"], + steelbeam: ["9M", "8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "8V", "7M"], + suckerpunch: ["9L20", "8L20", "8V", "7L22"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thrash: ["9E", "8E", "7E"], + toxic: ["8V", "7M"], + uproar: ["8M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 10, abilities: ["tanglinghair"], moves: ["mudslap", "astonish", "growl", "metalclaw"], pokeball: "cherishball"}, + ], + }, + dugtrio: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L7", "6L7", "5L7", "4L7"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18", "6M", "6L18", "5M", "5L18"], + captivate: ["4M"], + charm: ["9M", "3S0"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["9M", "9L36", "8M", "8L36", "8V", "7L35", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L18", "3M", "3L17"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L42", "8M", "8L42", "7T", "7L30", "6T", "6L33", "5T", "5L33", "4T", "4L28"], + earthquake: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L47", "7V", "6M", "6L50", "5M", "5L50", "4M", "4L45", "3M", "3L51", "3S0"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9L54", "8L54", "8V", "7L53", "7V", "6L57", "5L57", "4L50", "3L64"], + foulplay: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["8V", "3L21"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + magnitude: ["7L14", "7V", "6L15", "5L15", "4L12", "3L9"], + mimic: ["7V", "3T"], + mudbomb: ["7L25", "6L28", "5L28", "4L33"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10", "7V", "6L12", "5L12", "4T", "4L15", "3T", "3L25"], + naturalgift: ["4M"], + nightslash: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["9M", "9L30", "8M", "8L30", "7M", "6M", "5M", "4M", "3S0"], + sandtomb: ["9L0", "8M", "8L0", "7L1", "6L26", "5L26", "4L26", "3L26"], + scaryface: ["9M"], + scorchingsands: ["8T"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L24", "8L24", "8V", "7L41", "7V", "6L45", "5L45", "4L40", "3L38"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L20", "8L20", "8V", "7L22", "6L23", "5L23", "4T", "4L23"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["9M"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["9L1", "8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + uproar: ["8M", "5T"], + workup: ["8M"], + }, + eventData: [ + {generation: 3, level: 40, moves: ["charm", "earthquake", "sandstorm", "triattack"]}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 5}, + {generation: 4, level: 19}, + ], + }, + dugtrioalola: { + learnset: { + aerialace: ["7M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L7"], + attract: ["8M", "7M"], + beatup: ["8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L16", "8M", "8L16", "7M", "7L18"], + charm: ["9M"], + confide: ["7M"], + dig: ["9M", "9L36", "8M", "8L36", "8V", "7L35"], + doubleteam: ["7M"], + earthpower: ["9M", "9L42", "8M", "8L42", "7T", "7L30"], + earthquake: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L47"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + fissure: ["9L54", "8L54", "8V", "7L53"], + flashcannon: ["9M", "8M", "8V", "7M"], + foulplay: ["9M"], + frustration: ["7M"], + furyswipes: ["8V"], + gigaimpact: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "8V", "7L1"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "9L24", "8M", "8L24", "7T", "7L41"], + magnitude: ["7L14"], + metalclaw: ["9M", "9L1", "8L1", "7L1"], + mudbomb: ["7L25"], + mudshot: ["9M"], + mudslap: ["9M", "9L12", "8L12", "7L10"], + nightslash: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "8V", "7M"], + rest: ["9M", "8M", "8V", "7M"], + return: ["7M"], + reversal: ["9M", "8M"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "8V", "7M"], + rocktomb: ["9M", "8M", "7M"], + rototiller: ["7L1"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "8V", "7L1"], + sandstorm: ["9M", "9L30", "8M", "8L30", "7M"], + sandtomb: ["9L0", "8M", "8L0", "7L1"], + scorchingsands: ["8T"], + scratch: ["8V"], + screech: ["8M", "8V"], + shadowclaw: ["9M", "8M", "7M"], + slash: ["8V"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "8V", "7M"], + sludgewave: ["8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8V", "7T"], + steelbeam: ["9M", "8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "8V", "7M"], + suckerpunch: ["9L20", "8L20", "8V", "7L22"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + toxic: ["8V", "7M"], + triattack: ["9L1", "8M", "8L1", "8V", "7L1"], + uproar: ["8M"], + workup: ["8M", "7M"], + }, + }, + meowth: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + amnesia: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + assist: ["7E", "6E", "5E", "4E", "4S5", "3E"], + assurance: ["9L24", "8M", "8L24", "7L41", "6L41", "5L41", "4L41"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L16", "8L16", "8V", "7L6", "7V", "6L6", "6S7", "5L6", "4L6", "4S4", "3L10", "3S2", "3S3"], + bodyslam: ["9M", "8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L46", "6L46", "5L46", "4M", "4L46"], + charm: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["9E", "8E", "7T", "6T", "5T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "8V", "7L9", "6L9", "6S7", "5L9", "4L9", "4S4", "4S5", "3L43"], + faketears: ["9M"], + falseswipe: ["9M"], + feint: ["9L4", "8L4", "8V", "7L50", "6L50", "5L54", "4L54"], + feintattack: ["7L22", "7V", "6L22", "5L22", "4L22", "3L25"], + flail: ["9E", "8E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L29", "8L29", "8V", "7L14", "7V", "6L14", "5L14", "5S6", "4L14", "4S4", "3L36"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + happyhour: ["6S7"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lashout: ["8T"], + lastresort: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + metalclaw: ["9M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L40", "8M", "8L40", "8V", "7L38", "6L38", "5L38", "5S6", "4L38"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightslash: ["7L49", "6L49", "5L49", "4L49"], + odorsleuth: ["7E", "6E", "5E", "4E"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["9L12", "8M", "8L12", "8V", "7L30", "7V", "6L30", "5L30", "4L30", "4S5", "3L18", "3S3"], + petaldance: ["3S0"], + playrough: ["9M", "9L44", "8M", "8L44", "8V"], + powergem: ["9M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + punishment: ["7E", "6E", "5E", "4E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["9L8", "8L8", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "4S5", "3L1", "3S0", "3S1", "3S2"], + screech: ["9L32", "8M", "8L32", "8V", "7L17", "7V", "6L17", "6S7", "5L17", "4L17", "4S4", "3L31"], + secretpower: ["6M", "5D", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["5S6", "3S3"], + skullbash: ["7V"], + slash: ["9L36", "8L36", "8V", "7L33", "7V", "6L33", "5L33", "4L33", "3L40", "3S3"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "5S6", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T", "3L45"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9E", "8E", "7E", "6E", "5E", "4E"], + takedown: ["9M", "7V"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["scratch", "growl", "petaldance"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["scratch", "growl"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["scratch", "growl", "bite"], pokeball: "pokeball"}, + {generation: 3, level: 22, moves: ["sing", "slash", "payday", "bite"]}, + {generation: 4, level: 21, gender: "F", nature: "Jolly", abilities: ["pickup"], moves: ["bite", "fakeout", "furyswipes", "screech"], pokeball: "cherishball"}, + {generation: 4, level: 10, gender: "M", nature: "Jolly", abilities: ["pickup"], moves: ["fakeout", "payday", "assist", "scratch"], pokeball: "cherishball"}, + {generation: 5, level: 15, gender: "M", abilities: ["pickup"], moves: ["furyswipes", "sing", "nastyplot", "snatch"], pokeball: "cherishball"}, + {generation: 6, level: 20, abilities: ["pickup"], moves: ["happyhour", "screech", "bite", "fakeout"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 10}, + {generation: 3, level: 3, gender: "M", nature: "Naive", ivs: {hp: 4, atk: 5, def: 4, spa: 5, spd: 4, spe: 4}, abilities: ["pickup"], pokeball: "pokeball"}, + ], + }, + meowthalola: { + learnset: { + aerialace: ["9M", "7M"], + agility: ["9M"], + amnesia: ["9M", "8M", "7E"], + assist: ["7E"], + assurance: ["9L24", "8M", "8L24", "7L41"], + attract: ["8M", "7M"], + bite: ["9L16", "8L16", "8V", "7L6"], + bodyslam: ["9M", "8M"], + captivate: ["7L46"], + charm: ["9M", "8M", "7E"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + covet: ["9E", "8E", "7T", "7E"], + darkpulse: ["9M", "8M", "8V", "7M", "7L55"], + dig: ["9M", "8M"], + doubleteam: ["7M"], + dreameater: ["8V", "7M"], + echoedvoice: ["7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + fakeout: ["9L1", "8L1", "8V", "7L9"], + faketears: ["9M"], + feint: ["9L4", "8L4", "8V", "7L50"], + feintattack: ["7L22"], + flail: ["9E", "8E", "7E"], + flatter: ["9E", "8E", "7E"], + foulplay: ["9M", "8M", "8V", "7T", "7E"], + frustration: ["7M"], + furyswipes: ["9L29", "8L29", "8V", "7L14"], + growl: ["9L1", "8L1", "8V", "7L1"], + gunkshot: ["9M", "8M", "7T"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hypervoice: ["9M", "8M", "7T"], + hypnosis: ["9E", "8E", "7E"], + icywind: ["9M", "8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + lashout: ["8T"], + lastresort: ["7T"], + metalclaw: ["9M"], + nastyplot: ["9M", "9L40", "8M", "8L40", "8V", "7L38"], + nightslash: ["9L36", "8L36", "7L49"], + partingshot: ["9E", "8E", "7E"], + payback: ["8M", "7M"], + payday: ["9L12", "8M", "8L12", "8V", "7L30"], + playrough: ["9M", "9L44", "8M", "8L44", "8V"], + powergem: ["9M"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["7M"], + punishment: ["7E"], + quash: ["7M"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "8V", "7M"], + retaliate: ["8M"], + return: ["7M"], + round: ["8M", "7M"], + scratch: ["9L8", "8L8", "8V", "7L1"], + screech: ["9L32", "8M", "8L32", "8V", "7L17"], + seedbomb: ["9M", "8M", "7T"], + shadowball: ["9M", "8M", "8V", "7M"], + shadowclaw: ["9M", "8M", "7M"], + shockwave: ["7T"], + slash: ["8V", "7L33"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M"], + snatch: ["7T", "7E"], + snore: ["8M", "7T"], + spite: ["9E", "8E", "7T", "7E"], + substitute: ["9M", "8M", "8V", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M"], + thunderbolt: ["9M", "8M", "8V", "7M"], + thunderwave: ["9M"], + torment: ["7M"], + toxic: ["8V", "7M"], + trailblaze: ["9M"], + uproar: ["8M", "7T"], + uturn: ["9M", "8M", "8V", "7M"], + waterpulse: ["7T"], + workup: ["8M", "7M"], + }, + }, + meowthgalar: { + learnset: { + aerialace: ["9M"], + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M"], + charm: ["9M"], + covet: ["9E", "8E"], + crunch: ["9M", "8M"], + curse: ["9E", "8E"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + doubleedge: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1", "8S0"], + faketears: ["9M"], + falseswipe: ["9M"], + flail: ["9E", "8E"], + flashcannon: ["9M"], + fling: ["9M"], + foulplay: ["9M", "8M"], + furyswipes: ["9L29", "8L29"], + growl: ["9L1", "8L1", "8S0"], + gunkshot: ["9M", "8M"], + gyroball: ["8M"], + helpinghand: ["9M"], + honeclaws: ["9L4", "8L4", "8S0"], + hypervoice: ["9M", "8M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + irontail: ["8M"], + lashout: ["8T"], + metalclaw: ["9M", "9L16", "8L16"], + metalsound: ["9L40", "8L40"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + nightslash: ["9E", "8E"], + payback: ["8M"], + payday: ["9L12", "8M", "8L12", "8S0"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + round: ["8M"], + scratch: ["9L8", "8L8"], + screech: ["9L32", "8M", "8L32"], + seedbomb: ["9M", "8M"], + shadowball: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + slash: ["9L36", "8L36"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9E", "8E"], + stealthrock: ["9M"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swagger: ["9L24", "8L24"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L44", "8L44"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + xscissor: ["9M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["fakeout", "growl", "honeclaws", "payday"], pokeball: "cherishball"}, + ], + }, + persian: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + amnesia: ["9M", "8M", "8V"], + assurance: ["9L24", "8M", "8L24", "7L49", "6L49", "5L49", "4L49"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L16", "8L16", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "7V", "3T"], + bubblebeam: ["7V"], + captivate: ["7L56", "6L56", "5L56", "4M", "4L56"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L1", "8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L55"], + faketears: ["9M"], + falseswipe: ["9M"], + feint: ["9L1", "8L1", "8V", "7L65", "6L65", "5L68", "4L68"], + feintattack: ["7L22", "7V", "6L22", "5L22", "4L22", "3L25"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L31", "8L31", "8V", "7L14", "7V", "6L14", "5L14", "4L14", "3L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["8V"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lashout: ["8T"], + lastresort: ["7T", "6T", "5T", "4T"], + metalclaw: ["9M"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L48", "8M", "8L48", "8V", "7L44", "6L44", "5L44", "4L44"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightslash: ["7L61", "6L61", "5L61", "4L61"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["9L12", "8M", "8L12", "8V", "7V", "3L18"], + playrough: ["9M", "9L54", "8M", "8L54", "8V", "7L1", "6L1"], + powergem: ["9M", "9L0", "8M", "8L0", "7L32", "6L32", "5L32", "4L32"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L36", "8M", "8L36", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L34"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skittersmack: ["8T"], + skullbash: ["7V"], + slash: ["9L42", "8L42", "8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L49"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T", "3L61"], + swift: ["9M", "8M", "8V", "7L1", "7V", "6L28", "5L28", "4T", "3T"], + switcheroo: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "7V"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 18}, + {generation: 4, level: 19}, + ], + }, + persianalola: { + learnset: { + aerialace: ["9M", "7M"], + agility: ["9M"], + amnesia: ["9M", "8M", "8V"], + assurance: ["9L24", "8M", "8L24", "7L49"], + attract: ["8M", "7M"], + beatup: ["8M"], + bite: ["9L16", "8L16", "8V", "7L1"], + bodyslam: ["9M", "8M"], + burningjealousy: ["8T"], + captivate: ["7L56"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + covet: ["7T"], + darkpulse: ["9M", "8M", "8V", "7M", "7L69"], + dig: ["9M", "8M"], + doubleteam: ["7M"], + dreameater: ["8V", "7M"], + echoedvoice: ["7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "8V", "7M"], + fakeout: ["9L1", "8L1", "8V", "7L1"], + faketears: ["9M", "8M"], + feint: ["9L1", "8L1", "8V", "7L65"], + feintattack: ["7L22"], + foulplay: ["9M", "8M", "8V", "7T"], + frustration: ["7M"], + furyswipes: ["9L31", "8L31", "8V", "7L14"], + gigaimpact: ["9M", "8M", "7M"], + growl: ["9L1", "8L1", "8V", "7L1"], + gunkshot: ["9M", "8M", "7T"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "8V", "7M"], + hypervoice: ["9M", "8M", "7T"], + hypnosis: ["8V"], + icywind: ["9M", "8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + lashout: ["8T"], + lastresort: ["7T"], + metalclaw: ["9M"], + nastyplot: ["9M", "9L48", "8M", "8L48", "8V", "7L44"], + nightslash: ["9L42", "8L42", "7L61"], + payback: ["8M", "7M"], + payday: ["9L12", "8M", "8L12", "8V"], + playrough: ["9M", "9L54", "8M", "8L54", "8V", "7L1"], + powergem: ["9M", "9L0", "8M", "8L0", "7L32"], + protect: ["9M", "8M", "8V", "7M"], + psychup: ["7M"], + quash: ["9L1", "8L1", "7M", "7L1"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "8V", "7M"], + retaliate: ["8M"], + return: ["7M"], + roar: ["7M"], + round: ["8M", "7M"], + scratch: ["9L1", "8L1", "8V", "7L1"], + screech: ["9L36", "8M", "8L36", "8V", "7L17"], + seedbomb: ["9M", "8M", "7T"], + shadowball: ["9M", "8M", "8V", "7M"], + shadowclaw: ["9M", "8M", "7M"], + shockwave: ["7T"], + skittersmack: ["8T"], + slash: ["8V", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spite: ["7T"], + substitute: ["9M", "8M", "8V", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M", "8V", "7L1"], + switcheroo: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M"], + thunderbolt: ["9M", "8M", "8V", "7M"], + thunderwave: ["9M"], + torment: ["7M"], + toxic: ["8V", "7M"], + trailblaze: ["9M"], + uproar: ["8M", "7T"], + uturn: ["9M", "8M", "8V", "7M"], + waterpulse: ["7T"], + workup: ["8M", "7M"], + }, + }, + perrserker: { + learnset: { + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M"], + falseswipe: ["9M"], + fling: ["9M", "8M"], + foulplay: ["9M", "8M"], + furyswipes: ["9L31", "8L31"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + gyroball: ["8M"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + honeclaws: ["9L1", "8L1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1"], + ironhead: ["9M", "9L0", "8M", "8L0"], + irontail: ["8M"], + lashout: ["8T"], + metalburst: ["9L1", "8L1"], + metalclaw: ["9M", "9L16", "8L16"], + metalsound: ["9L48", "8L48"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + payday: ["9L12", "8M", "8L12"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + round: ["8M"], + scratch: ["9L1", "8L1"], + screech: ["9L36", "8M", "8L36"], + seedbomb: ["9M", "8M"], + shadowball: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + slash: ["9L42", "8L42"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swagger: ["9L24", "8L24"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L54", "8L54"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + xscissor: ["9M"], + }, + }, + psyduck: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + amnesia: ["9M", "9L34", "8M", "8L34", "8V", "7L37", "6L43", "5L48", "4L44"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L29", "5T", "5L32", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "5D", "4M"], + bubblebeam: ["7V"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + clearsmog: ["9E", "8E", "7E", "6E"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + confusion: ["9L6", "8L6", "8V", "7L10", "7V", "6L11", "5L18", "4L18", "3L16", "3S0"], + counter: ["7V", "3T"], + crosschop: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L14", "4L14", "3L10", "3S0"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M", "7E", "6E", "5E", "5D", "4E"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L27", "4L27", "3L40"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M", "8L36", "8V", "7L40", "7V", "6L46", "5L53", "4L48", "3L50"], + hypnosis: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + liquidation: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["7V", "3T"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudshot: ["9M"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["3S1"], + nastyplot: ["9M"], + naturalgift: ["4M"], + payday: ["8M", "8V", "7V"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9E", "8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3E"], + psychup: ["9L30", "8L30", "7M", "7L34", "7V", "6M", "6L39", "5M", "5L40", "4M", "4L35", "3T", "3L31"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L31", "4L31", "3L23", "3S0"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + simplebeam: ["9E", "8E", "7E", "6E"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["9L27", "8L27", "7L31", "6L36", "5L35"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + synchronoise: ["7E", "6E", "5E"], + tailwhip: ["9L1", "8L1", "8V", "7L4", "7V", "6L4", "5L5", "4L5", "3L5", "3S0", "3S1"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L3", "8L3", "8V", "7L7", "7V", "6L8", "5L9", "4L9"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L22", "4M", "4L22", "3M"], + watersport: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["9L39", "8M", "8L39", "7T", "7L43", "6T", "6L50", "5T", "5L57"], + worryseed: ["7T", "6T", "5T", "4T"], + yawn: ["9E", "8E", "7E", "6E", "5E", "4E"], + zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L29", "5T", "5L44", "4T", "4L40"], + }, + eventData: [ + {generation: 3, level: 27, gender: "M", nature: "Lax", ivs: {hp: 31, atk: 16, def: 12, spa: 29, spd: 31, spe: 14}, abilities: ["damp"], moves: ["tailwhip", "confusion", "disable", "screech"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["watersport", "scratch", "tailwhip", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + golduck: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + amnesia: ["9M", "9L36", "8M", "8L36", "8V", "7L41", "6L49", "5L56", "4L50"], + aquajet: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L32", "5T", "5L32", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charm: ["3S0"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "8V", "7L10", "7V", "6L11", "5L18", "4L18", "3L16"], + counter: ["7V", "3T"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L11", "5L14", "4L14", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M", "8V", "7S1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L9", "8L9", "8V", "7L13", "7V", "6L15", "5L27", "4L27", "3L44"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "9L40", "8M", "8L40", "8V", "7L46", "7V", "7S1", "6L54", "5L63", "4L56", "3L58"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M"], + liquidation: ["9M", "8M", "7T"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + mefirst: ["7L1"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + payday: ["8M", "8V", "7V"], + powergem: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8V"], + psychic: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + psychup: ["9L30", "8L30", "7M", "7L36", "7V", "6M", "6L43", "5M", "5L44", "4M", "4L37", "3T", "3L31", "3S0"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "7S1", "6M", "5M"], + scratch: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L21", "8M", "8L21", "8V", "7L22", "7V", "6L25", "5L31", "4L31", "3L23"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["9L27", "8L27", "7L31", "6L38", "5L37"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L16", "6T", "6L18", "5L22", "4M", "4L22", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["9L45", "8M", "8L45", "7T", "7L51", "6T", "6L60", "5T", "5L69"], + worryseed: ["7T", "6T", "5T", "4T"], + yawn: ["8V"], + zenheadbutt: ["9M", "9L18", "8M", "8L18", "7T", "7L25", "6T", "6L25", "5T", "5L50", "4T", "4L44"], + }, + eventData: [ + {generation: 3, level: 33, moves: ["charm", "waterfall", "psychup", "brickbreak"]}, + {generation: 7, level: 50, gender: "M", nature: "Timid", ivs: {hp: 31, atk: 30, def: 31, spa: 31, spd: 31, spe: 31}, isHidden: true, moves: ["hydropump", "scald", "encore", "protect"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 25, pokeball: "safariball"}, + {generation: 4, level: 10}, + ], + }, + mankey: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + assurance: ["9L26", "7L26", "6L25", "5L25", "4L25"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["9M", "9L33", "7L36", "7E", "6L49", "6E", "5L49", "5E", "4L49", "4E"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + crosschop: ["9L22", "7L22", "7V", "6L37", "5L37", "4L37", "3L31"], + curse: ["9E", "7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9E", "7E", "6E", "5E", "4E"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["9L48", "7L50", "6L53", "5L53"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L21"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L5", "8V", "7L5", "7V", "6L9", "5L9", "4L9", "3L16"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], + karatechop: ["8V", "7L8", "7V", "6L13", "5L13", "4L13", "3L11"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "9L8", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1", "3L6"], + lowsweep: ["9M", "7M", "6M", "5M"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7E", "6E"], + outrage: ["9M", "9L44", "8V", "7T", "7L47", "6T", "5T", "4T"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + payday: ["8V", "7V"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + powertrip: ["7E"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7V", "3T"], + punishment: ["7L29", "6L45", "5L45", "4L45"], + pursuit: ["7L12"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E", "4E", "3E"], + reversal: ["9M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + rockclimb: ["4M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L36", "8V", "7L40", "7V", "6L21", "5L21", "4L21", "3L41"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["9L12", "8V", "7L15", "7V", "6L17", "5L17", "4L17", "3T", "3L26"], + shadowclaw: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["7T", "7V", "6T", "3T"], + spite: ["9E", "7T", "6T", "5T", "4T"], + stompingtantrum: ["9M", "9L40", "7T", "7L43"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L17", "7M", "7L19", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L36"], + swift: ["9M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L29", "8V", "7L33", "7V", "6L41", "5L41", "4L41", "3L46"], + thunder: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["4T"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 3, level: 2}, + ], + }, + primeape: { + learnset: { + acrobatics: ["9M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + assurance: ["9L26", "7L26", "6L25", "5L25", "4L25"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["9M", "9L39", "7L39", "6L59", "5L59", "4L59"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["9L22", "7L22", "7V", "6L41", "5L41", "4L41", "3L35", "3S0"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "8V"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["9L57", "7L1", "6L1", "5L63"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L21", "3S0"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["9L5", "8V", "7L5", "7V", "6L9", "5L9", "4L9", "3L16"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8V", "7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8V", "7T", "7V", "6T", "5T", "4M", "3M"], + karatechop: ["8V", "7L8", "7V", "6L13", "5L13", "4L13", "3L11"], + leer: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "9L8", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L53", "8V", "7T", "7L53", "6T", "5T", "4T"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + payday: ["8V", "7V"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7V", "3T"], + punishment: ["7L30", "6L53", "5L53", "4L53"], + pursuit: ["7L12"], + rage: ["8V", "7L1", "7V", "6L28", "5L28", "4L28", "3L1"], + ragefist: ["9L35"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "3S0"], + rockclimb: ["4M"], + rockslide: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["9L44", "8V", "7L44", "7V", "6L21", "5L21", "4L21", "3L53"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["9L15", "8V", "7L15", "7V", "6L17", "5L17", "4L17", "3T", "3L26"], + shadowclaw: ["9M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "7V", "6T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "9L48", "7T", "7L48"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L17", "7M", "7L19", "7V", "6M", "6L35", "5M", "5L35", "4M", "4L35", "3T", "3L44"], + swift: ["9M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L30", "8V", "7L35", "7V", "6L47", "5L47", "4L47", "3L62"], + throatchop: ["7T"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["4T"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 34, abilities: ["vitalspirit"], moves: ["helpinghand", "crosschop", "focusenergy", "reversal"]}, + ], + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 15}, + ], + }, + annihilape: { + learnset: { + acrobatics: ["9M"], + assurance: ["9L26"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M", "9L39"], + counter: ["9L1"], + crosschop: ["9L22"], + dig: ["9M"], + drainpunch: ["9M"], + earthquake: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + finalgambit: ["9L57"], + firepunch: ["9M"], + fling: ["9M", "9L1"], + focusblast: ["9M"], + focusenergy: ["9L1"], + furyswipes: ["9L5"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + leer: ["9L1"], + lowkick: ["9M", "9L8"], + lowsweep: ["9M"], + metronome: ["9M"], + nightshade: ["9M"], + outrage: ["9M", "9L53"], + overheat: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + ragefist: ["9L35"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + scratch: ["9L1"], + screech: ["9L44"], + seedbomb: ["9M"], + seismictoss: ["9L12"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowpunch: ["9L0"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "9L48"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L17"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L30"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + uturn: ["9M"], + }, + }, + growlithe: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L30", "7V", "6L30", "5L42", "4L39", "3L43"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L8", "8L8", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S1", "3S2"], + bodyslam: ["9M", "8M", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + burnup: ["7E"], + captivate: ["4M"], + charm: ["9M", "3S2"], + closecombat: ["9M", "8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + covet: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["9M", "9L32", "8M", "8L32", "8V", "7L39", "7E", "7V", "6L39", "6E", "5L45", "5E", "4L42", "4E", "3E"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T"], + doublekick: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonrage: ["7V"], + ember: ["9L1", "8L1", "8V", "7L6", "7V", "6L6", "5L6", "4L6", "3L7", "3S1"], + endure: ["9M", "8M", "7V", "5D", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L24", "8M", "8L24", "7L21", "6L21", "5L28", "4L28"], + firespin: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + flameburst: ["7L28", "6L28", "5L31"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L39", "4M", "4L34", "3M", "3L49", "3S2"], + flamewheel: ["9L12", "8L12", "7L17", "7V", "6L17", "5L20", "4L20", "3L31", "3S0"], + flareblitz: ["9M", "9L56", "8M", "8L56", "8V", "7L45", "7E", "6L45", "6E", "5L56", "5E", "4L48", "4E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "8V", "7T", "7L41", "7E", "6T", "6L41", "6E", "5T", "5L51", "5E", "4T", "4L45", "4E", "3E"], + helpinghand: ["9M", "9L16", "8M", "8L16", "8V", "7T", "7L12", "6T", "6L12", "5T", "5L17", "4T", "4L17", "3L37"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L4", "8L4", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L8", "7V", "6L8", "5L9", "4L9", "3L13", "3S0"], + mimic: ["7V", "3T"], + morningsun: ["9E", "8E", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + odorsleuth: ["7L10", "6L10", "5L14", "4L14", "3L19", "3S0"], + outrage: ["9M", "8M", "8V", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M", "9L48", "8M", "8L48", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M", "8M"], + rage: ["7V"], + ragingfury: ["9E"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["9L28", "8M", "8L28", "7L32", "6M", "6L32", "5M", "5L48"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L52", "8M", "8L52", "7L19", "6L19", "5L25", "4L25"], + roar: ["9L44", "8L44", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M", "3L1", "3S1"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "9L36", "8L36", "8V", "7L23", "7V", "6L23", "5L34", "4L31", "3L25", "3S0", "3S2"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thrash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + thunderfang: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 32, gender: "F", nature: "Quiet", ivs: {hp: 11, atk: 24, def: 28, spa: 1, spd: 20, spe: 2}, abilities: ["intimidate"], moves: ["leer", "odorsleuth", "takedown", "flamewheel"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["bite", "roar", "ember"], pokeball: "pokeball"}, + {generation: 3, level: 28, moves: ["charm", "flamethrower", "bite", "takedown"]}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + growlithehisui: { + learnset: { + agility: ["9M"], + bite: ["9L8"], + bodyslam: ["9M"], + closecombat: ["9M"], + covet: ["9E"], + crunch: ["9M", "9L32"], + dig: ["9M"], + doubleedge: ["9E"], + doublekick: ["9E"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L24"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L40"], + flamewheel: ["9L12"], + flareblitz: ["9M", "9L56"], + headsmash: ["9E"], + heatwave: ["9M"], + helpinghand: ["9M", "9L16"], + howl: ["9L4"], + leer: ["9L1"], + morningsun: ["9E"], + outrage: ["9M"], + overheat: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + rest: ["9M"], + retaliate: ["9L28"], + reversal: ["9M", "9L52"], + roar: ["9L44"], + rockblast: ["9M"], + rockslide: ["9M", "9L48"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9E"], + thunderfang: ["9M"], + willowisp: ["9M"], + }, + }, + arcanine: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L1", "8M", "8L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["9L1", "8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "7V", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + burnup: ["8L1"], + captivate: ["4M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M", "9L1", "8M", "8L1", "4S0"], + curse: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["7V"], + ember: ["9L1", "8L1", "8V", "7V", "3L1"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["9L0", "9S2", "8L0", "7L34", "7V", "7S1", "6L34", "5L39", "4L39", "4S0", "3L49"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L5", "8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], + flamewheel: ["9L1", "8L1", "7V"], + flareblitz: ["9M", "9L1", "9S2", "8M", "8L1", "7S1", "4S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L1", "8L1"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "8V", "7V"], + mimic: ["7V", "3T"], + mudslap: ["4T"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M", "9L1", "8M", "8L1", "8V"], + protect: ["9M", "9S2", "8M", "8V", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M", "8M"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["9L1", "8M", "8L1", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L1", "8M", "8L1"], + roar: ["9L1", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "9L1", "8L1", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1", "4S0"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "9S2", "8M", "8V", "7M", "7S1", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 50, abilities: ["intimidate"], moves: ["flareblitz", "thunderfang", "crunch", "extremespeed"], pokeball: "cherishball"}, + {generation: 7, level: 50, abilities: ["intimidate"], moves: ["flareblitz", "extremespeed", "willowisp", "protect"], pokeball: "cherishball"}, + {generation: 9, level: 50, shiny: true, gender: "F", nature: "Adamant", abilities: ["intimidate"], ivs: {hp: 31, atk: 31, def: 31, spa: 8, spd: 31, spe: 31}, moves: ["flareblitz", "extremespeed", "willowisp", "protect"], pokeball: "cherishball"}, + ], + }, + arcaninehisui: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L1"], + bite: ["9L1"], + bodyslam: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M"], + crunch: ["9M", "9L1"], + dig: ["9M"], + dragonpulse: ["9M"], + ember: ["9L1"], + endure: ["9M"], + extremespeed: ["9L0"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L1"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L5"], + flamewheel: ["9L1"], + flareblitz: ["9M", "9L1"], + gigaimpact: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M", "9L1"], + howl: ["9L1"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + leer: ["9L1"], + outrage: ["9M"], + overheat: ["9M"], + powergem: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + ragingfury: ["9L64"], + rest: ["9M"], + retaliate: ["9L1"], + reversal: ["9M", "9L1"], + roar: ["9L1"], + rockblast: ["9M"], + rockslide: ["9M", "9L1"], + rockthrow: ["9L1"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M", "9L1"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + }, + }, + poliwag: { + learnset: { + amnesia: ["7V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8L48", "7L31", "7V", "6L31", "5L31", "4L31", "3L37"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L31"], + bubble: ["8V", "7L11", "7V", "6L11", "5L5", "4L5", "3L1", "3S0"], + bubblebeam: ["8L18", "8V", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3E"], + bulldoze: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8L54", "7V", "3T"], + doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L19"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L36"], + encore: ["8M", "7E", "6E", "5E", "4E"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L42", "8V", "7L38", "7V", "6L38", "5L38", "4L38", "3L43"], + hypnosis: ["8L1", "8V", "7L8", "7V", "6L8", "5L8", "5D", "4L8", "3L7"], + iceball: ["7E", "6E", "5E", "4E", "3E"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lowkick: ["8V"], + mimic: ["7V", "3T"], + mindreader: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mist: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + mudbomb: ["7L41", "6L41", "5L41", "4L41"], + muddywater: ["8M"], + mudshot: ["8M", "8L12", "7L28", "7E", "6L28", "6E", "5L28", "5E", "4L28", "4E"], + naturalgift: ["4M"], + pound: ["8L6", "8V"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L25"], + refresh: ["7E", "6E", "5E", "4E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + splash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["3S0"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wakeupslap: ["7L35", "6L35", "5L35", "4L35"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L5", "7V", "6L5", "5L11", "4L11", "3L13"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E", "3E"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "sweetkiss"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 5}, + {generation: 2, level: 3}, + ], + }, + poliwhirl: { + learnset: { + amnesia: ["7V"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8L56", "7L37", "7V", "6L37", "5L37", "4L37", "3L43"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "8L32", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3T", "3L35"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubble: ["8V", "7L11", "7V", "6L11", "5L1", "4L1", "3L1"], + bubblebeam: ["8L18", "8V", "7L27", "7V", "6L27", "5L27", "4L27"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8L66", "7V", "3T"], + doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L19"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L40"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L48", "8V", "7L48", "7V", "6L48", "5L48", "4L48", "3L51"], + hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lowkick: ["8V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudbomb: ["7L53", "6L53", "5L53", "4L53"], + muddywater: ["8M"], + mudshot: ["8M", "8L1", "7L32", "6L32", "5L32", "4L32"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pound: ["8L1", "8V"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "8L24", "7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L27"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wakeupslap: ["7L43", "6L43", "5L43", "4L43"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L11", "4L11", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1"], + whirlpool: ["8M", "7V", "4M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 20}, + {generation: 4, level: 10}, + {generation: 7, level: 24}, + {generation: 7, level: 22, gender: "F", nature: "Naughty", abilities: ["damp"], pokeball: "pokeball"}, + ], + }, + poliwrath: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8L1"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "8L1", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + bubble: ["8V"], + bubblebeam: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1"], + bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + circlethrow: ["8L1", "7L1", "6L1", "5L53"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + darkestlariat: ["8M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8L1", "7V", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M"], + dualchop: ["7T"], + dynamicpunch: ["8L1", "7L32", "7V", "6L32", "5L32", "4L43", "3T"], + earthpower: ["8M", "8L1"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8V"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hydropump: ["8M", "8L1", "3S0"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["8M"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mindreader: ["8L1", "7L43", "7V", "6L43", "5L43", "4L53", "3L51"], + mist: ["8V"], + muddywater: ["8M"], + mudshot: ["8M", "8L1"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + pound: ["8L1", "8V"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7V", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 42, moves: ["helpinghand", "hydropump", "raindance", "brickbreak"]}, + ], + }, + politoed: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8L1"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "8L1", "3T"], + bounce: ["8M", "8L0", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["8L1", "7L1", "6L1", "5L1", "4L1"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8L1", "3T"], + doubleslap: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "8L1"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L1"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "8L1", "7T", "7L48", "6T", "6L48", "5T", "5L48", "4L48"], + hypnosis: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icebeam: ["8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icepunch: ["8M", "7T", "7V", "6T", "5T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["8M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "3T"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["8M", "8L1"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["8L1", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + pound: ["8L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "7V", "6M", "5M", "5S0", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["8M", "8L1", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M", "5S0"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["8L1", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3T", "3L51"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7V", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Calm", ivs: {hp: 31, atk: 13, def: 31, spa: 5, spd: 31, spe: 5}, isHidden: true, moves: ["scald", "icebeam", "perishsong", "protect"], pokeball: "cherishball"}, + ], + }, + abra: { + learnset: { + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8E"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "5D", "4T"], + guardsplit: ["8E", "7E", "6E", "5E"], + guardswap: ["8M", "7E", "6E", "5E", "4E"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + irontail: ["8M", "8V", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + magiccoat: ["8E", "7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + powerswap: ["8M"], + powertrick: ["7E", "6E", "5E", "4E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M", "7E"], + psychoshift: ["7E", "6E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + speedswap: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 1, level: 6}, + ], + }, + kadabra: { + learnset: { + allyswitch: ["8M", "8L15", "7T", "7L36", "6L24", "5M", "5L24"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + calmmind: ["8M", "8L50", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dig: ["8V", "7V"], + disable: ["8L1", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L18"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["8V", "7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L45", "7L43", "7V", "6L43", "5L48", "4L42", "3L30"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "6T", "5T", "4M", "3M"], + kinesis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + miracleeye: ["7L23", "6L22", "5L22", "4L22"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8V"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L5", "8V", "7L21", "7V", "6L21", "5L28", "4L24", "3L21"], + psychic: ["8M", "8L35", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L46", "4M", "4L40", "3M", "3L36"], + psychicterrain: ["8M"], + psychocut: ["8M", "8L20", "7L28", "6L28", "5L40", "4L34"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L30", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L25", "8V", "7L31", "7V", "6L31", "5L36", "4L30", "3L25"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8L10", "8V", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L30", "4M", "4L28", "3M", "3L23"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8L40", "7T", "7L41", "6T", "6L41", "5T", "5L42", "4T", "4L36", "3L33"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + speedswap: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "7L33", "6L33", "5M", "5L34"], + teleport: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "7L46", "6T", "6L46", "5T", "5L52", "4T", "4L46", "3L43"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 15}, + {generation: 7, level: 11, pokeball: "pokeball"}, + ], + }, + alakazam: { + learnset: { + allyswitch: ["8M", "8L15", "7T", "7L36", "6L24", "5M", "5L24"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + calmmind: ["8M", "8L50", "8V", "7M", "7L41", "6M", "6L41", "5M", "5L42", "4M", "4L36", "3M", "3L33", "3S0"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dig: ["8V", "7V"], + disable: ["8L1", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L18"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["8M", "8V"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["8V", "7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L45", "7L43", "7V", "6L43", "5L48", "4L42", "3L30", "3S0"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["8M"], + irontail: ["8M", "8V", "7T", "6T", "5T", "4M", "3M"], + kinesis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + miracleeye: ["7L23", "6L22", "5L22", "4L22"], + nastyplot: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8V"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L5", "8V", "7L21", "7V", "6L21", "5L28", "4L24", "3L21"], + psychic: ["8M", "8L35", "8V", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L46", "4M", "4L40", "3M", "3L36", "3S0"], + psychicterrain: ["8M"], + psychocut: ["8M", "8L20", "7L28", "6L28", "5L40", "4L34"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L30", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L25", "8V", "7L31", "7V", "6L31", "5L36", "4L30", "3L25"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8L10", "8V", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L30", "4M", "4L28", "3M", "3L23"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8L40", "7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + speedswap: ["8M"], + storedpower: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "7L33", "6L33", "5M", "5L34"], + teleport: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "7L46", "6T", "6L46", "5T", "5L52", "4T", "4L46", "3L43", "3S0"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["futuresight", "calmmind", "psychic", "trick"], pokeball: "pokeball"}, + ], + }, + machop: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L36", "8V", "7M", "7L37", "6M", "6L37", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8E", "7E", "6E", "5E", "5D", "4E"], + captivate: ["4M"], + closecombat: ["8M", "7E", "6E", "5E", "4E"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crosschop: ["8L48", "7L39", "7V", "6L39", "5L43", "4L37", "3L40"], + curse: ["7V"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L52", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["8L32", "7T", "7L31", "6T", "6L31", "5T"], + dynamicpunch: ["8L44", "7L45", "7V", "6L45", "5L49", "4L46", "3T", "3L49"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L4", "8V", "7L3", "7V", "6L3", "5L7", "4L7", "3L7"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L9", "7V", "6L9", "5L19", "4L13", "3L22"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["8M", "7E", "6E", "5E"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + incinerate: ["6M", "5M"], + karatechop: ["8V", "7L7", "7V", "6L7", "5L10", "4L10", "3L13"], + knockoff: ["8L16", "7T", "7L21", "7E", "6T", "6L21", "6E", "5T", "5E"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + lowkick: ["8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1", "3L1"], + lowsweep: ["8M", "8L12", "7M", "7L13", "6M", "6L13", "5M", "5L13"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + powertrick: ["7E", "6E", "5E", "4E"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickguard: ["8E", "7E", "6E"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L8", "7L19", "6L19", "5L25", "4L22", "3L25"], + reversal: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollingkick: ["7E", "7V", "6E", "5E", "4E", "3E"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L43", "7V", "6L43", "5L46", "4L43", "3L43"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L40", "8V", "7L15", "7V", "6L15", "5L22", "4L19", "3T", "3L19"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["8L29", "7V", "6M", "5M", "4M", "3M"], + submission: ["8E", "8V", "7L33", "7V", "6L33", "5L34", "4L31", "3L37"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["8L24", "7L25", "7V", "6L25", "5L31", "4L25", "3L31"], + wakeupslap: ["7L27", "6L27", "5L37", "4L34"], + workup: ["8M", "7M", "5M"], + }, + encounters: [ + {generation: 1, level: 15}, + ], + }, + machoke: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L42", "8V", "7M", "7L43", "6M", "6L43", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + crosschop: ["8L60", "7L47", "7V", "6L44", "5L44", "4L40", "3L46"], + curse: ["7V"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L66", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["8L36", "7T", "7L33", "6T", "6L33", "5T"], + dynamicpunch: ["8L54", "7L57", "7V", "6L55", "5L55", "4L51", "3T", "3L59"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L9", "7V", "6L9", "5L19", "5S0", "4L13", "3L22"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["8M"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + karatechop: ["8V", "7L1", "7V", "6L1", "5L1", "4L10", "3L13"], + knockoff: ["8L16", "7T", "7L21", "6T", "6L21", "5T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + lowkick: ["8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lowsweep: ["8M", "8L12", "7M", "7L13", "6M", "6L13", "5M", "5L13", "5S0"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L1", "7L19", "6L19", "5L25", "5S0", "4L22", "3L25"], + reversal: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L53", "7V", "6L51", "5L51", "4L44", "3L51"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L48", "8V", "7L15", "7V", "6L15", "5L22", "5S0", "4L19", "3T", "3L19"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["8L31", "7V", "6M", "5M", "4M", "3M"], + submission: ["8V", "7L37", "7V", "6L36", "5L36", "4L32", "3L41"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["8L24", "7L25", "7V", "6L25", "5L32", "4L25", "3L33"], + wakeupslap: ["7L27", "6L27", "5L40", "4L36"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["lowsweep", "foresight", "seismictoss", "revenge"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 2, level: 14}, + {generation: 4, level: 14}, + ], + }, + machamp: { + learnset: { + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L42", "8V", "7M", "7L43", "7S3", "6M", "6L43", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crosschop: ["8L60", "7L47", "7V", "6L44", "5L44", "4L40", "3L46"], + crosspoison: ["8M"], + curse: ["7V"], + darkestlariat: ["8M"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "6S2", "5M", "4M", "3M"], + doubleedge: ["8L66", "7V", "7S3", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["8L36", "7T", "7L33", "6T", "6L33", "5T"], + dynamicpunch: ["8L54", "7L57", "7V", "6L55", "6S1", "6S2", "5L55", "4L51", "3T", "3L59"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M", "8V"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L9", "7V", "6L9", "5L19", "4L13", "3L22", "3S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["8M"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + karatechop: ["8V", "7L1", "7V", "6L1", "5L1", "4L10", "3L13"], + knockoff: ["8L16", "7T", "7L21", "6T", "6L21", "6S1", "5T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M"], + lowkick: ["8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + lowsweep: ["8M", "8L12", "7M", "7L13", "6M", "6L13", "5M", "5L13"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickguard: ["7S3"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L1", "7L19", "6L19", "5L25", "4L22", "3L25", "3S0"], + reversal: ["8M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L53", "7V", "6L51", "5L51", "4L44", "3L51"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L48", "8V", "7L15", "7V", "6L15", "6S2", "5L22", "4L19", "3T", "3L19", "3S0"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "6S1", "5M", "4M"], + strength: ["8L31", "8V", "7L1", "7V", "7S3", "6M", "5M", "4M", "3M"], + submission: ["8V", "7L37", "7V", "6L36", "5L36", "4L32", "3L41"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["8L24", "7L25", "7V", "6L25", "5L32", "4L25", "3L33", "3S0"], + wakeupslap: ["7L27", "6L27", "5L40", "4L36"], + wideguard: ["8L1", "7L1", "6L1", "6S1", "5L1"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 38, gender: "M", nature: "Quiet", ivs: {hp: 9, atk: 23, def: 25, spa: 20, spd: 15, spe: 10}, abilities: ["guts"], moves: ["seismictoss", "foresight", "revenge", "vitalthrow"], pokeball: "pokeball"}, + {generation: 6, level: 50, shiny: true, gender: "M", nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, abilities: ["noguard"], moves: ["dynamicpunch", "stoneedge", "wideguard", "knockoff"], pokeball: "cherishball"}, + {generation: 6, level: 39, gender: "M", nature: "Hardy", abilities: ["noguard"], moves: ["seismictoss", "dynamicpunch", "dig", "focusenergy"], pokeball: "cherishball"}, + {generation: 7, level: 34, gender: "F", nature: "Brave", ivs: {atk: 31}, abilities: ["guts"], moves: ["strength", "bulkup", "quickguard", "doubleedge"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 16}, + {generation: 2, level: 5}, + ], + }, + bellsprout: { + learnset: { + acid: ["8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L23"], + acidspray: ["7E", "6E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["7E", "6E"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bulletseed: ["7E", "6E", "5E", "4M", "3M"], + captivate: ["4M"], + clearsmog: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + gigadrain: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growth: ["8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L6", "3S1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["7E", "6E", "5E", "4E", "3E"], + knockoff: ["7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + leechlife: ["7E", "7V", "6E", "5E", "4E", "3E"], + magicalleaf: ["7E", "6E", "5E", "4E", "3E"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + poisonjab: ["8V", "7M", "7L41"], + poisonpowder: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + powerwhip: ["7E", "6E", "5E"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8V", "7L39", "7V", "6L39", "5L39", "4L39", "3L37"], + reflect: ["8V", "7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "5D", "4T"], + slam: ["8V", "7L47", "7V", "6L41", "5L41", "4L41", "3L45"], + sleeppowder: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + strengthsap: ["7E"], + stunspore: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L29", "7V", "6L29", "5L29", "4L29", "3L30"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + synthesis: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + takedown: ["7V"], + teeterdance: ["3S0"], + thief: ["7M", "6M", "5M", "4M", "3M"], + tickle: ["7E", "6E", "5E", "4E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + vinewhip: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + weatherball: ["7E", "6E", "5E", "4E"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + wrap: ["8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L11"], + wringout: ["7L50", "6L47", "5L47", "4L47"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["vinewhip", "teeterdance"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["vinewhip", "growth"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 12}, + {generation: 2, level: 3}, + ], + }, + weepinbell: { + learnset: { + acid: ["8V", "7L24", "7V", "6L23", "5L23", "4L23", "3L24"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bugbite: ["5T"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "7L39", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growth: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "7L29", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + magicalleaf: ["3S0"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + morningsun: ["3S0"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poisonjab: ["8V", "7M", "7L47"], + poisonpowder: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["8V", "7L44", "7V", "6L39", "5L39", "4L39", "3L42"], + reflect: ["8V", "7M", "7V", "6M", "5M"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + slam: ["8V", "7L54", "7V", "6L41", "5L41", "4L41", "3L54"], + sleeppowder: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L15"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stunspore: ["8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L19"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L32", "7V", "6L29", "5L29", "4L29", "3L33", "3S0"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + vinewhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + wringout: ["7L58", "6L47", "5L47", "4L47"], + }, + eventData: [ + {generation: 3, level: 32, moves: ["morningsun", "magicalleaf", "sludgebomb", "sweetscent"]}, + ], + encounters: [ + {generation: 2, level: 12}, + {generation: 4, level: 10}, + ], + }, + victreebel: { + learnset: { + acid: ["8V", "7V"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + bodyslam: ["7V", "3T"], + bugbite: ["5T"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + clearsmog: ["8V"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growth: ["8V"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + leafblade: ["7L44", "6L47", "5L47", "4L47"], + leafstorm: ["7L32", "6L47", "5L47", "4L47"], + leaftornado: ["7L1", "6L27", "5L27"], + leechlife: ["8V"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poisonjab: ["8V", "7M"], + poisonpowder: ["7V"], + powerwhip: ["8V"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["8V", "7M", "7V", "6M", "5M"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeppowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + spitup: ["7L1", "6L1", "5L1", "4L1", "3L1"], + stockpile: ["7L1", "6L1", "5L1", "4L1", "3L1"], + stunspore: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["8V", "4T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["7L1", "6L1", "5L1", "4L1", "3L1"], + sweetscent: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swordsdance: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["7M", "6M", "5M"], + vinewhip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["8V", "7V"], + }, + }, + tentacool: { + learnset: { + acid: ["8L4", "8V", "7L10", "7V", "6L10", "5L12", "4L12", "3L19"], + acidarmor: ["8L32"], + acidspray: ["7L22", "6L22", "5L26"], + acupressure: ["8E", "7E", "6E", "5E", "5D", "4E"], + aquaring: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + barrier: ["8V", "7L28", "7V", "6L28", "5L29", "4L26", "3L36"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "7L34", "6L34", "4M"], + brutalswing: ["8M"], + bubble: ["7E", "6E", "5E"], + bubblebeam: ["8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E", "3E"], + constrict: ["8V", "7L7", "7V", "6L7", "5L8", "4L8", "3L12"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hex: ["8M", "8L28", "7L40", "6L40", "5L43"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L48", "8V", "7L46", "7V", "6L46", "5L47", "4L40", "3L49"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + magiccoat: ["7T", "6T", "5T", "4T"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mirrorcoat: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8L36", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L33"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + scald: ["8M", "8V", "7M", "6M", "5M"], + screech: ["8M", "8L20", "8V", "7L37", "7V", "6L37", "5L40", "4L36", "3L43"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "8L44", "7M", "7L43", "6M", "6L43", "5M", "5L50"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L12", "8V", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L6"], + surf: ["8M", "8L40", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "7L13", "6L13", "5L15", "4L15"], + venoshock: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7V"], + waterpulse: ["8L16", "7T", "7L16", "6T", "6L16", "5L33", "4M", "4L29", "3M"], + whirlpool: ["8M", "7V", "4M"], + wrap: ["8L8", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], + wringout: ["7L49", "6L49", "5L54", "4L43"], + }, + encounters: [ + {generation: 1, level: 5}, + ], + }, + tentacruel: { + learnset: { + acid: ["8L1", "8V", "7L1", "7V", "6L1", "5L12", "4L12", "3L19"], + acidarmor: ["8L34"], + acidspray: ["7L22", "6L22", "5L26"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V", "7L28", "7V", "6L28", "5L29", "4L26", "3L38"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "7L36", "6L36", "4M"], + brutalswing: ["8M"], + bubblebeam: ["8L24", "8V", "7L25", "7V", "6L19", "5L19", "4L19", "3L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8V"], + headbutt: ["8V"], + hex: ["8M", "8L28", "7L44", "6L44", "5L47"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L58", "8V", "7L52", "7V", "6L52", "5L52", "4L49", "3L55"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + magiccoat: ["7T", "6T", "5T", "4T"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + mirrorcoat: ["8V"], + muddywater: ["8M"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8L40", "8V", "7M", "7L32", "6M", "6L32", "5M", "5L38", "4M", "4L36"], + poisonsting: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + reflecttype: ["8L1", "7L1", "6L1"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + screech: ["8M", "8L20", "8V", "7L40", "7V", "6L40", "5L43", "4L42", "3L47"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "8L52", "7M", "7L48", "6M", "6L48", "5M", "5L56"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L12", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["8M", "8L46", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "7L13", "6L13", "5L15", "4L15"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7V"], + waterpulse: ["8L16", "7T", "7L16", "6T", "6L16", "5L34", "4M", "4L29", "3M"], + whirlpool: ["8M", "7V", "4M"], + wrap: ["8L1", "8V", "7L19", "7V", "6L19", "5L22", "4L22", "3L30"], + wringout: ["7L1", "6L1", "5L61", "4L55"], + }, + encounters: [ + {generation: 1, level: 20}, + {generation: 2, level: 20}, + {generation: 3, level: 20}, + {generation: 4, level: 15}, + {generation: 6, level: 21, maxEggMoves: 1}, + ], + }, + geodude: { + learnset: { + ancientpower: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["7E", "6E", "5E"], + bide: ["8V", "7V"], + block: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + bodyslam: ["7V", "3T"], + brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "7L22", "6M", "6L22", "5M", "5L32"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7E", "7V", "6E", "5E", "4E"], + defensecurl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3T", "3L1"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7L40", "7V", "6L40", "5L46", "4L36", "3T", "3L46"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L39", "4M", "4L29", "3M", "3L36"], + endure: ["7E", "7V", "6E", "5E", "4M", "3T"], + explosion: ["8V", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L43", "4M", "4L32", "3T", "3L41"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flail: ["7E", "6E", "5E", "4E"], + flamethrower: ["8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["7M", "6M", "5M", "4M"], + hammerarm: ["7E", "6E", "5E", "4E"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irondefense: ["7T", "6T", "5T"], + magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], + megapunch: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + metronome: ["7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L4", "6L4", "5L4", "4L4", "3L6"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poweruppunch: ["6M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["7L30", "6L22", "5L22", "4L25", "3L31"], + rockclimb: ["7E", "6E", "5E", "5D", "4M"], + rockpolish: ["7M", "7L6", "6M", "6L6", "5M", "5L8", "4M", "4L8"], + rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L11"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L26"], + round: ["7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8V", "7L24", "7V", "6L24", "5L29", "4L18", "3T", "3L21"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "7L18", "6M", "6L18", "5M", "5L25"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8V", "7T", "7L28", "6T", "6L28", "5T", "5L36", "5D", "4M"], + stoneedge: ["7M", "7L42", "6M", "6L42", "5M", "5L50", "4M", "4L39"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8V", "7V"], + thunderpunch: ["8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wideguard: ["7E", "6E"], + }, + encounters: [ + {generation: 1, level: 7}, + {generation: 2, level: 2}, + ], + }, + geodudealola: { + learnset: { + attract: ["7M"], + autotomize: ["7E"], + bide: ["8V"], + block: ["7T", "7E"], + brickbreak: ["8V", "7M"], + brutalswing: ["7M"], + bulldoze: ["7M"], + charge: ["7L4"], + chargebeam: ["7M"], + confide: ["7M"], + counter: ["7E"], + curse: ["7E"], + defensecurl: ["8V", "7L1"], + dig: ["8V"], + discharge: ["7L34"], + doubleedge: ["8V", "7L40"], + doubleteam: ["7M"], + earthpower: ["7T"], + earthquake: ["8V", "7M"], + electroweb: ["7T"], + endure: ["7E"], + explosion: ["8V", "7M", "7L36"], + facade: ["8V", "7M"], + fireblast: ["8V", "7M"], + firepunch: ["8V", "7T"], + flail: ["7E"], + flamethrower: ["8V", "7M"], + fling: ["7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gyroball: ["7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + irondefense: ["7T"], + magnetrise: ["7T", "7E"], + naturepower: ["7M"], + protect: ["8V", "7M"], + rest: ["8V", "7M"], + return: ["7M"], + rockblast: ["7L30"], + rockclimb: ["7E"], + rockpolish: ["7M", "7L6"], + rockslide: ["8V", "7M"], + rockthrow: ["8V", "7L16"], + rocktomb: ["7M"], + rollout: ["7L10"], + round: ["7M"], + sandstorm: ["7M"], + screech: ["7E"], + seismictoss: ["8V"], + selfdestruct: ["8V", "7L24"], + sleeptalk: ["7M"], + smackdown: ["7M", "7L18"], + snore: ["7T"], + spark: ["7L12"], + stealthrock: ["8V", "7T", "7L28"], + stoneedge: ["7M", "7L42"], + substitute: ["8V", "7M"], + sunnyday: ["7M"], + superpower: ["8V", "7T"], + swagger: ["7M"], + tackle: ["8V", "7L1"], + takedown: ["8V"], + thunder: ["8V", "7M"], + thunderbolt: ["8V", "7M"], + thunderpunch: ["8V", "7T", "7L22"], + thundershock: ["8V"], + thunderwave: ["8V"], + toxic: ["8V", "7M"], + voltswitch: ["7M"], + wideguard: ["7E"], + }, + }, + graveler: { + learnset: { + ancientpower: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["7V", "3T"], + brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "7L22", "6M", "6L22", "5M", "5L36"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], + endure: ["7V", "4M", "3T"], + explosion: ["8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["7M", "6M", "5M", "4M"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irondefense: ["7T", "6T", "5T"], + magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], + megapunch: ["7V", "3T"], + metronome: ["7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poweruppunch: ["6M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["7L34", "6L22", "5L22", "4L27", "3L37"], + rockclimb: ["4M"], + rockpolish: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["7L10", "7V", "6L10", "5L18", "4T", "4L22", "3T", "3L29"], + round: ["7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "7L18", "6M", "6L18", "5M", "5L27"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8V", "7V"], + thunderpunch: ["8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + }, + encounters: [ + {generation: 2, level: 23}, + {generation: 4, level: 16, pokeball: "safariball"}, + {generation: 6, level: 24}, + ], + }, + graveleralola: { + learnset: { + allyswitch: ["7T"], + attract: ["7M"], + bide: ["8V"], + block: ["7T"], + brickbreak: ["8V", "7M"], + brutalswing: ["7M"], + bulldoze: ["7M"], + charge: ["7L1"], + chargebeam: ["7M"], + confide: ["7M"], + defensecurl: ["8V", "7L1"], + dig: ["8V"], + discharge: ["7L40"], + doubleedge: ["8V", "7L50"], + doubleteam: ["7M"], + earthpower: ["7T"], + earthquake: ["8V", "7M"], + electroweb: ["7T"], + explosion: ["8V", "7M", "7L44"], + facade: ["8V", "7M"], + fireblast: ["8V", "7M"], + firepunch: ["8V", "7T"], + flamethrower: ["8V", "7M"], + fling: ["7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gyroball: ["7M"], + headbutt: ["8V"], + hiddenpower: ["7M"], + irondefense: ["7T"], + magnetrise: ["7T"], + naturepower: ["7M"], + protect: ["8V", "7M"], + rest: ["8V", "7M"], + return: ["7M"], + rockblast: ["7L34"], + rockpolish: ["7M", "7L1"], + rockslide: ["8V", "7M"], + rockthrow: ["8V", "7L16"], + rocktomb: ["7M"], + rollout: ["7L10"], + round: ["7M"], + sandstorm: ["7M"], + seismictoss: ["8V"], + selfdestruct: ["8V", "7L24"], + shockwave: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M", "7L18"], + snore: ["7T"], + spark: ["7L12"], + stealthrock: ["8V", "7T", "7L30"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "7L54"], + substitute: ["8V", "7M"], + sunnyday: ["7M"], + superpower: ["8V", "7T"], + swagger: ["7M"], + tackle: ["8V", "7L1"], + takedown: ["8V"], + thunder: ["8V", "7M"], + thunderbolt: ["8V", "7M"], + thunderpunch: ["8V", "7T", "7L22"], + thundershock: ["8V"], + thunderwave: ["8V"], + toxic: ["8V", "7M"], + voltswitch: ["7M"], + }, + }, + golem: { + learnset: { + ancientpower: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["7V", "3T"], + brickbreak: ["8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "7L22", "6M", "6L22", "5M", "5L36"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + defensecurl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + dig: ["8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8V", "7L50", "7V", "6L50", "5L58", "4L44", "3T", "3L62"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L47", "4M", "4L33", "3M", "3L45"], + endure: ["7V", "4M", "3T"], + explosion: ["8V", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L53", "4M", "4L38", "3T", "3L53"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gyroball: ["7M", "6M", "5M", "4M"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T"], + heavyslam: ["7L1", "6L1", "5L69"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irondefense: ["7T", "6T", "5T"], + ironhead: ["7T", "6T", "5T", "4T"], + magnitude: ["7L12", "7V", "6L12", "5L15", "4L15", "3L16"], + megakick: ["7V", "3T"], + megapunch: ["8V", "7V", "3T"], + metronome: ["7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + poweruppunch: ["6M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["7L34", "6L22", "5L22", "4L27", "3L37"], + rockclimb: ["4M"], + rockpolish: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + rockslide: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V", "7L16", "7V", "6L16", "5L11", "4L11", "3L1"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "4L22", "3T", "3L29"], + round: ["7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8V", "7L24", "7V", "6L24", "5L31", "4L18", "3T", "3L21"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "7L18", "6M", "6L18", "5M", "5L27"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8V", "7T", "7L30", "6T", "6L30", "5T", "5L42", "4M"], + steamroller: ["7L10", "6L10", "5L18"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "7L54", "6M", "6L54", "5M", "5L64", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8V", "7V"], + thunderpunch: ["8V", "7T", "6T", "5T", "4T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + }, + }, + golemalola: { + learnset: { + allyswitch: ["7T"], + attract: ["7M"], + bide: ["8V"], + block: ["7T"], + brickbreak: ["8V", "7M"], + brutalswing: ["7M"], + bulldoze: ["7M"], + charge: ["7L1"], + chargebeam: ["7M"], + confide: ["7M"], + defensecurl: ["8V", "7L1"], + dig: ["8V"], + discharge: ["7L40"], + doubleedge: ["8V", "7L50"], + doubleteam: ["7M"], + earthpower: ["7T"], + earthquake: ["8V", "7M"], + echoedvoice: ["7M"], + electroweb: ["7T"], + explosion: ["8V", "7M", "7L44"], + facade: ["8V", "7M"], + fireblast: ["8V", "7M"], + firepunch: ["8V", "7T"], + flamethrower: ["8V", "7M"], + fling: ["7M"], + focusblast: ["7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["7M"], + gyroball: ["7M"], + headbutt: ["8V"], + heavyslam: ["7L1"], + hiddenpower: ["7M"], + hyperbeam: ["8V", "7M"], + irondefense: ["7T"], + ironhead: ["7T"], + magnetrise: ["7T"], + megapunch: ["8V"], + naturepower: ["7M"], + protect: ["8V", "7M"], + rest: ["8V", "7M"], + return: ["7M"], + roar: ["7M"], + rockblast: ["7L34"], + rockpolish: ["7M", "7L1"], + rockslide: ["8V", "7M"], + rockthrow: ["8V", "7L16"], + rocktomb: ["7M"], + round: ["7M"], + sandstorm: ["7M"], + seismictoss: ["8V"], + selfdestruct: ["8V", "7L24"], + shockwave: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M", "7L18"], + snore: ["7T"], + spark: ["7L12"], + stealthrock: ["8V", "7T", "7L30"], + steamroller: ["7L10"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "7L54"], + substitute: ["8V", "7M"], + sunnyday: ["7M"], + superpower: ["8V", "7T"], + swagger: ["7M"], + tackle: ["8V", "7L1"], + takedown: ["8V"], + thunder: ["8V", "7M"], + thunderbolt: ["8V", "7M"], + thunderpunch: ["8V", "7T", "7L22"], + thundershock: ["8V"], + thunderwave: ["8V"], + toxic: ["8V", "7M"], + voltswitch: ["7M"], + wildcharge: ["7M"], + }, + }, + ponyta: { + learnset: { + agility: ["8M", "8L20", "8V", "7L37", "7V", "6L37", "5L37", "4L33", "3L38"], + allyswitch: ["8M", "7T", "7E", "6E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bounce: ["8M", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L42", "3L45"], + captivate: ["7E", "6E", "5E", "4M"], + charm: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doublekick: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L10", "8V", "7L9", "7V", "6L9", "5L9", "4L10", "3L14"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L50", "8V", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L37", "3M", "3L53"], + firespin: ["8M", "8L35", "8V", "7L25", "7V", "6L25", "5L25", "4L24", "3L25"], + flamecharge: ["8L15", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flamewheel: ["8L25", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L15", "4E", "3E"], + flareblitz: ["8M", "8L55", "8V", "7L49", "6L49", "5L49", "4L46"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M", "7E"], + horndrill: ["8E", "7E", "7V", "6E", "5E", "4E"], + hypnosis: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + inferno: ["8L45", "7L33", "6L33", "5L33"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + mimic: ["7V", "3T"], + morningsun: ["8E", "7E", "6E", "5E", "4E"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + playrough: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8V", "7V", "3L1"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + stomp: ["8L30", "8V", "7L17", "7V", "6L17", "5L17", "4L19", "3L19"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + tailwhip: ["8L5", "8V", "7L4", "7V", "6L4", "5L4", "4L6", "3L9"], + takedown: ["8L41", "8V", "7L29", "7V", "6L29", "5L29", "4L28", "3L31"], + thrash: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 1, level: 28}, + ], + }, + ponytagalar: { + learnset: { + agility: ["8M", "8L20"], + allyswitch: ["8M"], + attract: ["8M"], + bodyslam: ["8M"], + bounce: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confusion: ["8L10", "8S0"], + dazzlinggleam: ["8M", "8L45"], + doubleedge: ["8E"], + doublekick: ["8E"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + fairywind: ["8L15", "8S0"], + futuresight: ["8M"], + growl: ["8L1", "8S0"], + healingwish: ["8L55"], + healpulse: ["8L35"], + highhorsepower: ["8M"], + horndrill: ["8E"], + hypnosis: ["8E"], + imprison: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + morningsun: ["8E"], + mysticalfire: ["8M"], + playrough: ["8M"], + protect: ["8M"], + psybeam: ["8L25"], + psychic: ["8M", "8L50"], + rest: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8L30"], + storedpower: ["8M"], + substitute: ["8M"], + swift: ["8M"], + tackle: ["8L1", "8S0"], + tailwhip: ["8L5"], + takedown: ["8L41"], + thrash: ["8E"], + wildcharge: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["tackle", "growl", "confusion", "fairywind"], pokeball: "cherishball"}, + ], + }, + rapidash: { + learnset: { + agility: ["8M", "8L20", "8V", "7L37", "7V", "6L37", "5L37", "4L33", "3L38"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "3S0"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bounce: ["8M", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L47", "3L50"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doublekick: ["8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L56", "8V", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L37", "3M", "3L63"], + firespin: ["8M", "8L35", "8V", "7L25", "7V", "6L25", "5L25", "4L24", "3L25"], + flamecharge: ["8L15", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + flamewheel: ["8L25", "7L13", "6L13", "5L13", "4L15"], + flareblitz: ["8M", "8L63", "8V", "7L49", "6L49", "5L49", "4L56"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L1", "7V", "6L40", "5L40", "4L40", "3L40"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + horndrill: ["8V", "7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8V"], + incinerate: ["6M", "5M"], + inferno: ["8L49", "7L33", "6L33", "5L33"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T"], + megahorn: ["8M", "8L1", "8V", "7L1", "6L1", "5L1", "4L1"], + mimic: ["7V", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + payday: ["8M"], + playrough: ["8M"], + poisonjab: ["8M", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + rage: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["8M", "8L0", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S0"], + solarblade: ["8M"], + stomp: ["8L30", "8V", "7L17", "7V", "6L17", "5L17", "4L19", "3L19"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M"], + tackle: ["8L1", "8V", "7V", "3L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L43", "8V", "7L29", "7V", "6L29", "5L29", "4L28", "3L31"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 40, moves: ["batonpass", "solarbeam", "sunnyday", "flamethrower"]}, + ], + encounters: [ + {generation: 2, level: 14, gender: "M"}, + {generation: 3, level: 37}, + ], + }, + rapidashgalar: { + learnset: { + agility: ["8M", "8L20"], + allyswitch: ["8M"], + attract: ["8M"], + batonpass: ["8M"], + bodyslam: ["8M"], + bounce: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confusion: ["8L1"], + dazzlinggleam: ["8M", "8L49"], + drillrun: ["8M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + fairywind: ["8L15"], + futuresight: ["8M"], + gigaimpact: ["8M"], + growl: ["8L1"], + healingwish: ["8L63"], + healpulse: ["8L35"], + highhorsepower: ["8M"], + hyperbeam: ["8M"], + imprison: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + magicroom: ["8M"], + megahorn: ["8M", "8L1"], + mistyterrain: ["8M"], + mysticalfire: ["8M"], + payday: ["8M"], + playrough: ["8M"], + protect: ["8M"], + psybeam: ["8L25"], + psychic: ["8M", "8L56"], + psychicterrain: ["8M"], + psychocut: ["8M", "8L0"], + quickattack: ["8L1"], + rest: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + smartstrike: ["8M"], + snore: ["8M"], + stomp: ["8L30"], + storedpower: ["8M"], + substitute: ["8M"], + swift: ["8M"], + swordsdance: ["8M"], + tackle: ["8L1"], + tailwhip: ["8L1"], + takedown: ["8L43"], + throatchop: ["8M"], + trickroom: ["8M"], + wildcharge: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + slowpoke: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L27", "8M", "8L27", "8V", "7L41", "7V", "6L41", "5L41", "4L43", "3L36"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + belch: ["9E", "8E", "7E", "6E"], + bellydrum: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + bodyslam: ["9M", "8M", "7V", "3T"], + brine: ["8M", "5D", "4M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L12", "8L12", "8V", "7L14", "7V", "6L14", "5L14", "5S2", "4L15", "3L17", "3S0"], + curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L19", "5L19", "5S2", "4L20", "3L24", "3S0"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L3", "8L3", "8V", "7L5", "7V", "6L5", "5L5", "4L6", "3L6", "3S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["9L21", "8L21", "8V", "7L23", "7V", "6L23", "5L23", "5S2", "4T", "4L25", "3L29", "3S0"], + healpulse: ["9L45", "8L45", "7L58", "6L58", "5L58"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mefirst: ["7E", "6E", "5E", "4E"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M", "8V", "7V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L48", "3M", "3L40"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "9L42", "8M", "8L42", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L53", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3M", "3E"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + slackoff: ["9L33", "8L33", "7L36", "6L36", "5L36", "4L39"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + snowscape: ["9M"], + stomp: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9L30", "8M", "8L30", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + takedown: ["9M", "7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L6", "8L6", "8V", "7L9", "7V", "6L9", "5L9", "4L11", "3L13", "3S0"], + waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "5S2", "4M", "4L29", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "4M"], + wonderroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + yawn: ["9L9", "8L9", "8V", "7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L24", "8M", "8L24", "7T", "7L32", "7E", "6T", "6L32", "6E", "5T", "5L32", "5E", "4T", "4L34", "4E"], + }, + eventData: [ + {generation: 3, level: 31, gender: "F", nature: "Naive", ivs: {hp: 17, atk: 11, def: 19, spa: 20, spd: 5, spe: 10}, abilities: ["oblivious"], moves: ["watergun", "confusion", "disable", "headbutt"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["curse", "yawn", "tackle", "growl"], pokeball: "pokeball"}, + {generation: 5, level: 30, moves: ["confusion", "disable", "headbutt", "waterpulse"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + slowpokegalar: { + learnset: { + acid: ["9L6", "8L6"], + amnesia: ["9M", "9L27", "8M", "8L27"], + attract: ["8M"], + avalanche: ["9M"], + belch: ["9E", "8E"], + bellydrum: ["9E", "8E"], + blizzard: ["9M", "8M"], + block: ["9E", "8E"], + bodyslam: ["9M", "8M"], + brine: ["8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + chillingwater: ["9M"], + confusion: ["9L12", "8L12"], + curse: ["9L1", "8L1"], + dig: ["9M", "8M"], + disable: ["9L15", "8L15"], + dive: ["8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["8M"], + grassknot: ["9M", "8M"], + growl: ["9L3", "8L3"], + hail: ["8M"], + headbutt: ["9L21", "8L21"], + healpulse: ["9L45", "8L45"], + helpinghand: ["9M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irontail: ["8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M"], + mudshot: ["9M", "8M"], + payday: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39"], + psyshock: ["9M", "8M"], + raindance: ["9M", "9L42", "8M", "8L42"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scald: ["8M"], + shadowball: ["9M", "8M"], + skillswap: ["9M", "8M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + stomp: ["9E", "8E"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + surf: ["9M", "9L30", "8M", "8L30"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + waterfall: ["9M"], + waterpulse: ["9M", "9L18", "8L18"], + weatherball: ["8M"], + whirlpool: ["8M"], + wonderroom: ["8M"], + yawn: ["9L9", "8L9"], + zenheadbutt: ["9M", "9L24", "8M", "8L24"], + }, + }, + slowbro: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L27", "8M", "8L27", "8V", "7L43", "7V", "6L43", "5L43", "4L47", "3L36"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L12", "8L12", "8V", "7L14", "7V", "6L14", "5L14", "4L15", "3L17"], + counter: ["7V", "3T"], + curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "8V", "7L19", "7V", "6L19", "5L19", "4L20", "3L24"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + futuresight: ["9L1", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["9L21", "8L21", "8V", "7L23", "7V", "6L23", "5L23", "4T", "4L25", "3L29"], + healpulse: ["9L51", "8L51", "7L1", "6L1", "5L68"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "6S0", "5T", "4M", "3M"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M", "8V", "7V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L54", "3M", "3L44"], + psychicterrain: ["9M", "8M"], + psychup: ["9L41", "8L41", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L62", "4M", "4L67", "3T", "3L55"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "9L46", "8M", "8L46", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L61", "3M"], + razorshell: ["8M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "6S0", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + slackoff: ["9L33", "8L33", "7L36", "6L36", "6S0", "5L36", "4L41"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + stomp: ["8V"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9L30", "8M", "8L30", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "6S0", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L11", "3L13"], + waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "4M", "4L29", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "4M"], + withdraw: ["9L1", "8L1", "8V", "7L1", "7V", "6L37", "5L37", "4L37", "3L37"], + wonderroom: ["8M", "7T", "6T", "5T"], + yawn: ["9L9", "8L9", "8V", "7L1", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L24", "8M", "8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4T", "4L34"], + }, + eventData: [ + {generation: 6, level: 100, nature: "Quiet", abilities: ["oblivious"], moves: ["scald", "trickroom", "slackoff", "irontail"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 1, level: 23}, + {generation: 2, level: 20}, + {generation: 3, level: 32}, + {generation: 4, level: 15}, + {generation: 5, level: 35}, + {generation: 7, level: 15}, + ], + }, + slowbrogalar: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M"], + amnesia: ["9M", "9L27", "8M", "8L27"], + attract: ["8M"], + avalanche: ["9M", "8M"], + blizzard: ["9M", "8M"], + bodypress: ["9M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brine: ["8M"], + brutalswing: ["8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + chillingwater: ["9M"], + confusion: ["9L12", "8L12"], + curse: ["9L1", "8L1"], + dig: ["9M", "8M"], + disable: ["9L15", "8L15"], + dive: ["8M"], + drainpunch: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M"], + hail: ["8M"], + headbutt: ["9L21", "8L21"], + healpulse: ["9L45", "8L45"], + helpinghand: ["9M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icefang: ["9M"], + icepunch: ["9M", "8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M"], + irontail: ["8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "8M"], + payday: ["8M"], + poisonjab: ["9M", "8M"], + powergem: ["9M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39"], + psyshock: ["9M", "8M"], + raindance: ["9M", "9L42", "8M", "8L42"], + razorshell: ["8M"], + rest: ["9M", "8M"], + rockblast: ["9M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["9M"], + scald: ["8M"], + scaryface: ["9M"], + shadowball: ["9M", "8M"], + shellsidearm: ["9L0", "8L0"], + skillswap: ["9M", "8M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + snore: ["8M"], + snowscape: ["9M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + surf: ["9M", "9L30", "8M", "8L30"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + venoshock: ["9M", "8M"], + waterfall: ["9M"], + watergun: ["8L1"], + waterpulse: ["9M", "9L18", "8L18"], + weatherball: ["8M"], + whirlpool: ["8M"], + withdraw: ["9L1", "8L1"], + wonderroom: ["8M"], + yawn: ["9L9", "8L9"], + zenheadbutt: ["9M", "9L24", "8M", "8L24"], + }, + }, + slowking: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["7T"], + amnesia: ["9M", "9L27", "8M", "8L27"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + chillyreception: ["9L1"], + confide: ["7M", "6M"], + confusion: ["9L12", "8L12", "7L14", "7V", "6L14", "5L14", "4L15", "3L17"], + counter: ["3T"], + curse: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15", "7L19", "7V", "6L19", "5L19", "4L20", "3L24"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["7M", "6M", "5M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + futuresight: ["9L1", "8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L5", "7V", "6L5", "5L5", "4L6", "3L6"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["9L21", "8L21", "7L23", "7V", "6L23", "5L23", "4T", "4L25", "3L29"], + healpulse: ["9L45", "8L45", "7L1", "6L1", "5L58"], + hiddenpower: ["7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "8M", "8L1", "7L36", "6L36", "5L36", "4L39"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M"], + powergem: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L48", "3M", "3L40"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L57", "3T", "3L47"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "9L42", "8M", "8L42", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "9L30", "8M", "8L30", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "8L1", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L43", "3T", "3L36"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + trumpcard: ["7L49", "6L49", "5L49", "4L53"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "7L9", "7V", "6L9", "5L9", "4L11", "3L13"], + waterpulse: ["9M", "9L18", "8L18", "7T", "7L28", "6T", "6L28", "5L28", "4M", "4L29", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + yawn: ["9L9", "8L9", "7L1", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4T", "4L34"], + }, + }, + slowkinggalar: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M"], + amnesia: ["9M", "9L27", "8M", "8L27"], + attract: ["8M"], + avalanche: ["9M", "8M"], + blizzard: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brine: ["8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + chillingwater: ["9M"], + chillyreception: ["9L1"], + confusion: ["9L12", "8L12"], + curse: ["9L1", "8L1"], + dig: ["9M", "8M"], + disable: ["9L15", "8L15"], + dive: ["8M"], + drainpunch: ["9M", "8M"], + earthquake: ["9M", "8M"], + eeriespell: ["9L0", "8L0"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firepunch: ["9M"], + flamethrower: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["9L1", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M"], + hail: ["8M"], + headbutt: ["9L21", "8L21"], + healpulse: ["9L45", "8L45"], + hex: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icepunch: ["8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M"], + irontail: ["8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M"], + lowsweep: ["9M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + payday: ["8M"], + poisonjab: ["9M"], + powergem: ["9M", "9L1", "8M", "8L1"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L36", "8M", "8L36"], + psychicterrain: ["9M", "8M"], + psychup: ["9L39", "8L39"], + psyshock: ["9M", "8M"], + raindance: ["9M", "9L42", "8M", "8L42"], + razorshell: ["8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scald: ["8M"], + scaryface: ["9M"], + shadowball: ["9M", "8M"], + skillswap: ["9M", "8M"], + slackoff: ["9L33", "8L33"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + snarl: ["9M"], + snore: ["8M"], + stompingtantrum: ["9M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + surf: ["9M", "9L30", "8M", "8L30"], + swagger: ["9L1", "8L1"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M", "8M"], + toxic: ["9L1"], + toxicspikes: ["9M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + venomdrench: ["8M"], + venoshock: ["9M", "8M"], + waterfall: ["9L1"], + waterpulse: ["9M", "9L18", "8L18"], + weatherball: ["8M"], + whirlpool: ["8M"], + wonderroom: ["8M"], + yawn: ["9L9", "8L9"], + zenheadbutt: ["9M", "9L24", "8M", "8L24"], + }, + }, + magnemite: { + learnset: { + bide: ["7V"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["7V"], + discharge: ["9L36", "8L36", "7L37", "6L37", "5L43", "4L38"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], + electroweb: ["9E", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["9E", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "9L32", "8M", "8L32", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L35", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gravity: ["7T", "6T", "5T", "5D", "4T"], + gyroball: ["9L16", "8M", "8L16", "7M", "7L47", "6M", "6L47", "5M", "5L54", "4M", "4L49"], + headbutt: ["8V"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + lightscreen: ["9M", "9L44", "8M", "8L44", "8V", "7M", "7L13", "6M", "5M", "4M"], + lockon: ["9L48", "8L48", "7L41", "7V", "6L41", "5L30", "4L27", "3L32"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L11", "6L17", "5L18", "4L30"], + magnetrise: ["9L28", "8L28", "7T", "7L43", "6T", "6L43", "5T", "5L49", "4T", "4L46"], + metalsound: ["9L40", "8L40", "7L25", "6L25", "5L1", "5D", "4L1", "3L1"], + mimic: ["7V", "3T"], + mirrorshot: ["7L23", "6L23", "5L46", "4L43"], + naturalgift: ["4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + screech: ["9L24", "8M", "8L24", "8V", "7L35", "7V", "6L35", "5L38", "4L33", "3L44"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L17", "7V", "6L11", "5L14", "4L14", "3L16"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22", "3L26"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9L4", "8L4", "8V", "7L1", "7V", "6L4", "5L11", "4L11", "3L11"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T", "3L38"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L1", "8L1", "8V", "7L5", "7V", "6L7", "5L6", "5D", "4L6", "3L6"], + thunderwave: ["9M", "9L8", "8M", "8L8", "8V", "7M", "7L11", "7V", "6M", "6L13", "5M", "5L17", "4M", "4L17", "3T", "3L21"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L52", "8L52", "7L49", "7V", "6L49", "5L59", "4L54", "3L50"], + }, + encounters: [ + {generation: 1, level: 16}, + ], + }, + magneton: { + learnset: { + bide: ["7V"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["7V"], + discharge: ["9L40", "8L40", "7L43", "6L43", "5L46", "4L40"], + doubleedge: ["7V", "3T", "3S0"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "9L34", "8M", "8L34", "8V", "7M", "7L33", "6M", "6L33", "5M", "5L39", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], + headbutt: ["8V"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + lightscreen: ["9M", "9L52", "8M", "8L52", "8V", "7M", "7L13", "6M", "5M", "4M"], + lockon: ["9L58", "8L58", "7L49", "7V", "6L49", "5L30", "4L27", "3L35"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L1", "6L17", "5L34", "4L30"], + magnetrise: ["9L28", "8L28", "7T", "7L53", "6T", "6L53", "5T", "5L54", "4T", "4L50"], + metalsound: ["9L46", "8L46", "7L25", "6L25", "5L1", "4L1", "3L1"], + mimic: ["7V", "3T"], + mirrorshot: ["7L23", "6L23", "5L50", "4L46"], + naturalgift: ["4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + screech: ["9L24", "8M", "8L24", "8V", "7L39", "7V", "6L39", "5L40", "4L34", "3L53"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L17", "7V", "6L1", "5L14", "4L14", "3L16"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22", "3L26"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L13", "5M", "5L17", "4M", "4L17", "3T", "3L21"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["9L0", "8M", "8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L44"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L64", "8L64", "7L1", "7V", "6L1", "5L66", "4L60", "3L62"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["refresh", "doubleedge", "raindance", "thunder"]}, + ], + encounters: [ + {generation: 2, level: 5}, + {generation: 3, level: 26}, + {generation: 4, level: 17, pokeball: "safariball"}, + ], + }, + magnezone: { + learnset: { + allyswitch: ["8M", "7T"], + barrier: ["7L1", "6L1", "5L1", "4L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + discharge: ["9L40", "8L40", "7L43", "6L43", "5L46", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + electroball: ["9M", "9L12", "8M", "8L12", "7L29", "6L29", "5L27"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "9L34", "8M", "8L34", "7M", "7L33", "6M", "6L33", "5M", "5L39", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["9L16", "8M", "8L16", "7M", "7L59", "6M", "6L59", "5M", "5L60", "4M", "4L54"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "9L52", "8M", "8L52", "7M", "7L13", "6M", "5M", "4M"], + lockon: ["9L58", "8L58", "7L49", "6L49", "5L30", "4L27"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L1", "6L17", "5L34", "4L30"], + magneticflux: ["9L1", "8L1", "7L1", "6L1"], + magnetrise: ["9L28", "8L28", "7T", "7L53", "6T", "6L53", "5T", "5L54", "4T", "4L50"], + metalsound: ["9L46", "8L46", "7L25", "6L25", "5L1", "4L1"], + mirrorcoat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + mirrorshot: ["7L23", "6L23", "5L50", "4L46"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + screech: ["9L24", "8M", "8L24", "7L39", "6L39", "5L40", "4L34"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + sonicboom: ["7L17", "6L1", "5L14", "4L14"], + spark: ["9L20", "8L20", "7L19", "6L19", "5L22", "4L22"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + supersonic: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thundershock: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L13", "5M", "5L17", "4M", "4L17"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["9L1", "8M", "8L1", "7L1"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L64", "8L64", "7L1", "6L1", "5L66", "4L60"], + }, + }, + farfetchd: { + learnset: { + acrobatics: ["8M", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + aerialace: ["8L20", "7M", "7L9", "6M", "6L9", "5M", "5L13", "4M", "4L13", "3M", "3S1"], + agility: ["8M", "8L60", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L36"], + aircutter: ["8L25", "7L21", "6L21", "5L21", "4T", "4L21"], + airslash: ["8M", "8L50", "8V", "7L49", "6L49", "5L49", "4L37"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "3S1"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + bravebird: ["8M", "8L65", "7L1", "6L1", "5L55"], + brutalswing: ["8M", "7M"], + captivate: ["4M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + covet: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["8L15", "8V", "7V", "6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L35", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L43", "3L46"], + featherdance: ["8E", "7E", "6E", "5E", "4E", "3E"], + feint: ["8E", "8V", "7L43", "6L43", "5L43", "4L43"], + finalgambit: ["8E", "7E"], + firstimpression: ["8E", "7E"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fly: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M", "8V"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L7", "7V", "6L7", "5L7", "4L7", "3L16"], + furycutter: ["8L10", "7L1", "6L1", "5L1", "5D", "4T", "4L1", "3L26"], + gust: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L9", "4T", "4L9", "3L21"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafblade: ["8M", "8L55", "7E", "6E", "5E", "5D", "4E"], + leer: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L11"], + mimic: ["7V", "3T"], + mirrormove: ["8V", "7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["7E", "7V", "6E", "5E", "4T", "4E", "3T"], + naturalgift: ["4M"], + nightslash: ["8E", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4L33", "4E"], + ominouswind: ["4T"], + peck: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["5M", "4M"], + poisonjab: ["8M", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quickattack: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + razorleaf: ["8V"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "7E", "6E", "5E"], + roost: ["8E", "8V", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L6"], + secretpower: ["6M", "4M", "3M"], + simplebeam: ["8E", "7E", "6E"], + skullbash: ["7V"], + skyattack: ["8E", "8V", "7T", "6T", "5T"], + slash: ["8L40", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L41", "3S1"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarblade: ["8M"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "4E", "3M", "3E"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M", "8L45", "8V", "7M", "7L25", "7V", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3T", "3L31", "3S1"], + tailwind: ["7T", "6T", "5T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "8V", "7M", "6M", "5M", "4M"], + whirlwind: ["7V"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + yawn: ["3S0"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["yawn", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 36, moves: ["batonpass", "slash", "swordsdance", "aerialace"]}, + ], + encounters: [ + {generation: 1, level: 3}, + {generation: 3, level: 3, gender: "M", nature: "Adamant", ivs: {hp: 20, atk: 25, def: 21, spa: 24, spd: 15, spe: 20}, abilities: ["keeneye"], pokeball: "pokeball"}, + ], + }, + farfetchdgalar: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["8M"], + bravebird: ["8M", "8L65"], + brickbreak: ["8M", "8L40"], + brutalswing: ["8M", "8L20"], + closecombat: ["8M"], + counter: ["8E"], + covet: ["8E"], + curse: ["8E"], + defog: ["8L35"], + detect: ["8L25"], + doubleedge: ["8E"], + dualwingbeat: ["8T"], + endure: ["8M"], + facade: ["8M"], + feint: ["8E"], + finalgambit: ["8L60"], + flail: ["8E"], + focusenergy: ["8M"], + furycutter: ["8L10"], + helpinghand: ["8M"], + knockoff: ["8L30"], + leafblade: ["8M", "8L55"], + leer: ["8L5"], + nightslash: ["8E"], + peck: ["8L1"], + poisonjab: ["8M"], + protect: ["8M"], + quickattack: ["8E"], + quickguard: ["8E"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + rocksmash: ["8L15"], + round: ["8M"], + sandattack: ["8L1"], + simplebeam: ["8E"], + skyattack: ["8E"], + slam: ["8L50"], + sleeptalk: ["8M"], + snore: ["8M"], + solarblade: ["8M"], + steelwing: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M"], + swordsdance: ["8M", "8L45"], + throatchop: ["8M"], + workup: ["8M"], + }, + }, + sirfetchd: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["8M"], + bravebird: ["8M", "8L65"], + brickbreak: ["8M", "8L40"], + brutalswing: ["8M", "8L20", "8S0"], + closecombat: ["8M"], + coaching: ["8T"], + defog: ["8L35"], + detect: ["8L25", "8S0"], + dualwingbeat: ["8T"], + endure: ["8M"], + facade: ["8M"], + finalgambit: ["8L60"], + firstimpression: ["8L1"], + focusenergy: ["8M"], + furycutter: ["8L1", "8S0"], + grassyglide: ["8T"], + helpinghand: ["8M"], + irondefense: ["8M", "8L0"], + knockoff: ["8L30"], + leafblade: ["8M", "8L55"], + leer: ["8L1"], + meteorassault: ["8L70", "8S0"], + peck: ["8L1"], + poisonjab: ["8M"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + rocksmash: ["8L15"], + round: ["8M"], + sandattack: ["8L1"], + slam: ["8L50"], + sleeptalk: ["8M"], + snore: ["8M"], + solarblade: ["8M"], + steelwing: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M"], + swordsdance: ["8M", "8L45"], + throatchop: ["8M"], + workup: ["8M"], + }, + eventData: [ + {generation: 8, level: 80, gender: "M", nature: "Brave", abilities: ["steadfast"], ivs: {hp: 30, atk: 31, def: 31, spa: 30, spd: 30, spe: 31}, moves: ["meteorassault", "brutalswing", "furycutter", "detect"], pokeball: "pokeball"}, + ], + }, + doduo: { + learnset: { + acupressure: ["7L33", "6L28", "5L28", "4L28"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L26", "7V", "6L33", "5L37", "4L37", "3L45"], + aircutter: ["4T"], + assurance: ["7E", "6E", "5E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + bravebird: ["7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doublehit: ["7L22", "6L25", "5L32", "4L32"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L43", "7V", "6L37", "5L41", "4L41", "3L37"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L47", "7E", "6T", "6L45", "6E", "5T", "5L46", "5E", "4T", "4L46", "4E", "3E"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + flail: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L13"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + jumpkick: ["8V", "7L40"], + knockoff: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mirrormove: ["7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L19", "6L21", "5M", "4M"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L15", "7V", "6L17", "5L19", "4L19", "3L9"], + quickattack: ["8V", "7L5", "7E", "7V", "6L5", "6E", "5L5", "5E", "4L5", "4E", "3E"], + rage: ["8V", "7L8", "7V", "6L9", "5L10", "4L10", "3L25"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "5D", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + skyattack: ["7V", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + swordsdance: ["8V", "7M", "7L36"], + takedown: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8V", "7L50", "6L49", "5L50"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["7V", "3L21"], + uproar: ["7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L33"], + whirlwind: ["7V"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 1, level: 18}, + {generation: 2, level: 4}, + ], + }, + dodrio: { + learnset: { + acupressure: ["7L34", "6L28", "5L28", "4L28"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8V", "7L26", "7V", "6L35", "5L41", "4L41", "3L60", "3S0"], + aircutter: ["4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bide: ["7V"], + bodyslam: ["7V", "3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doublehit: ["7L22"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8V", "7L47", "7V", "6L41", "5L47", "4L47", "3L47", "3S0"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L52", "6T", "6L53", "5T", "5L54", "4T", "4L54"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L12", "7V", "6L13", "5L14", "4L14", "3L1"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + jumpkick: ["8V", "7L43"], + knockoff: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mirrormove: ["8V"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + peck: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L19", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L15", "7V", "6L17", "5L19", "4L19", "3L1"], + quickattack: ["8V", "7L1", "6L1", "5L1", "4L1"], + rage: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L25"], + reflect: ["8V", "7V"], + rest: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + stompingtantrum: ["7T"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["8V"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + swordsdance: ["8V", "7M", "7L38"], + takedown: ["7V"], + taunt: ["8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8V", "7L56", "6L59", "5L60"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8V", "7L1", "7V", "6L25", "5L34", "4L34", "3L21", "3S0"], + uproar: ["7T", "7L29", "6T", "6L23", "5T", "5L23", "4T", "4L23", "3L38"], + whirlwind: ["7V"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 34, moves: ["batonpass", "drillpeck", "agility", "triattack"]}, + ], + encounters: [ + {generation: 1, level: 29}, + {generation: 2, level: 10, gender: "F"}, + {generation: 2, level: 30}, + {generation: 3, level: 29, pokeball: "safariball"}, + {generation: 4, level: 15, gender: "F", nature: "Impish", ivs: {hp: 20, atk: 20, def: 20, spa: 15, spd: 15, spe: 15}, abilities: ["runaway"], pokeball: "pokeball"}, + ], + }, + seel: { + learnset: { + aquajet: ["8V", "7L31", "6L31", "5L31", "4L31"], + aquaring: ["7L23", "6L23", "5L23", "4L23"], + aquatail: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L21"], + belch: ["7E", "6E"], + bide: ["7V"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + disable: ["7E", "7V", "6E", "5E", "4E", "3E"], + dive: ["7L41", "6M", "6L41", "5M", "5L41", "4T", "4L41", "3M"], + doubleedge: ["8V", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8V", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3E"], + endure: ["7V", "4M", "3T"], + entrainment: ["7E", "6E"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["7E", "6E", "5E", "4E", "3E"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L9"], + hail: ["7M", "7L53", "6M", "6L53", "5M", "5L53", "4M", "3M"], + headbutt: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4T", "4L1", "3L1"], + helpinghand: ["8V", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["7E", "7V", "6E", "5E", "4E", "3E"], + icebeam: ["8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L41", "3S0"], + iceshard: ["8V", "7L17", "6L17", "5L17", "4L17"], + iciclespear: ["7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["7T", "7L11", "7V", "6T", "6L11", "5T", "5L11", "4T", "4L11", "3T", "3L17"], + irontail: ["8V", "7T", "7E", "6T", "6E", "5T", "5E"], + lick: ["7E", "7V", "6E", "5E", "4E", "3E"], + megahorn: ["8V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + payday: ["8V", "7V"], + peck: ["7V"], + perishsong: ["7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L51", "7V", "6M", "6L51", "5M", "5L51", "4M", "4L51", "3M", "3L49", "3S0"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + skullbash: ["7V"], + slam: ["7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["7M", "7E", "7V", "6M", "6E", "5T", "5E", "5D", "4M", "3T"], + smartstrike: ["7M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spitup: ["7E", "6E", "5E", "4E"], + stockpile: ["7E", "6E", "5E", "4E"], + strength: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["7E", "6E", "5E", "4E"], + takedown: ["8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7L7", "6L7", "5L7", "4L7"], + whirlpool: ["7V", "4M"], + }, + eventData: [ + {generation: 3, level: 23, abilities: ["thickfat"], moves: ["helpinghand", "surf", "safeguard", "icebeam"]}, + ], + encounters: [ + {generation: 1, level: 22}, + ], + }, + dewgong: { + learnset: { + aquajet: ["8V", "7L31", "6L31", "5L31", "4L31"], + aquaring: ["7L23", "6L23", "5L23", "4L23"], + aquatail: ["7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L43"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L1"], + avalanche: ["4M"], + bide: ["7V"], + blizzard: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7V", "3T"], + brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["7L45", "6M", "6L45", "5M", "5L45", "4T", "4L41", "3M"], + doubleedge: ["8V", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8V", "7L13", "6L13", "5L13", "4L13"], + endure: ["7V", "4M", "3T"], + facade: ["8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8V"], + fling: ["7M", "6M", "5M", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["7M", "7L65", "6M", "6L65", "5M", "5L65", "4M", "3M"], + headbutt: ["8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + helpinghand: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["8V", "7V"], + hyperbeam: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L47", "3M", "3L51"], + iceshard: ["8V", "7L17", "6L17", "5L17", "4L17"], + icywind: ["7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + irontail: ["8V", "7T", "6T", "5T"], + liquidation: ["7T"], + megahorn: ["8V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + payday: ["8V", "7V"], + protect: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8V", "7M", "7L21", "7V", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3M", "3L29"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L61", "7V", "6M", "6L61", "5M", "5L61", "4M", "4L51", "3M", "3L64"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["7L1", "6L34", "5L34", "4L34", "3L34"], + signalbeam: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + skullbash: ["7V"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["7M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V"], + substitute: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["8V", "7L39", "7V", "6L39", "5L39", "4L37", "3L42"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["7V", "4M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 5}, + {generation: 3, level: 32}, + {generation: 5, level: 30}, + {generation: 6, level: 30, maxEggMoves: 1}, + ], + }, + grimer: { + learnset: { + acidarmor: ["9L43", "8V", "7L43", "7V", "6L40", "5L39", "4L39", "3L34"], + acidspray: ["9M", "9E", "7E", "6E", "5E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L46", "7L46", "6L46"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + dig: ["9M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L8"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "7L26", "6M", "6L26", "5M", "5L28", "4M", "4L28"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L49", "4T", "4L44"], + harden: ["9L4", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L4"], + haze: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + headbutt: ["8V"], + helpinghand: ["9M", "8V", "3S0"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + lick: ["7E", "7V", "6E", "5E", "4E", "3E"], + meanlook: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + megadrain: ["8V", "7V"], + memento: ["9L48", "7L48", "6L48", "5L52", "4L49", "3L53"], + metronome: ["9M"], + mimic: ["7V", "3T"], + minimize: ["9L21", "8V", "7L21", "7V", "6L18", "5L17", "4L17", "3L19", "3S0"], + mudbomb: ["7L18", "6L18", "5L23", "4L23"], + mudshot: ["9M", "9L18"], + mudslap: ["9M", "9L7", "7L7", "7V", "6L7", "5L7", "4T", "4L7", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + poisongas: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8V", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M", "7E", "6E", "5E"], + screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L33", "4L33", "3L26"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "6M", "5M", "4M"], + shadowpunch: ["9E", "7E", "6E", "5E", "4E", "3E", "3S0"], + shadowsneak: ["9E", "7E", "6E", "5E", "5D", "4E"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L20", "4L20", "3L13"], + sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L36", "4M", "4L36", "3M", "3L43", "3S0"], + sludgewave: ["9L32", "7M", "7L32", "6M", "6L32", "5M", "5L44"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spitup: ["9E", "7E", "6E", "5E", "4E"], + stockpile: ["9E", "7E", "6E", "5E", "4E"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9E", "7E", "6E", "5E", "4E"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + venoshock: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 23, moves: ["helpinghand", "sludgebomb", "shadowpunch", "minimize"]}, + ], + encounters: [ + {generation: 1, level: 23}, + ], + }, + grimeralola: { + learnset: { + acidarmor: ["9L43", "8V", "7L43"], + acidspray: ["9M", "9L15", "7L15"], + assurance: ["7E"], + attract: ["7M"], + belch: ["9L46", "7L46"], + bite: ["9L7", "8V", "7L7", "7S0"], + bodyslam: ["9M"], + brickbreak: ["9M"], + brutalswing: ["7M"], + clearsmog: ["7E"], + confide: ["7M"], + crunch: ["9M", "9L32", "8V", "7L32"], + curse: ["7E"], + darkpulse: ["9M"], + dig: ["9M", "8V"], + disable: ["9L12", "8V", "7L12"], + doubleteam: ["7M"], + drainpunch: ["9M"], + embargo: ["7M"], + endure: ["9M"], + explosion: ["7M"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M", "7L26"], + frustration: ["7M"], + gastroacid: ["7T"], + gigadrain: ["9M", "7T"], + gigaimpact: ["9M"], + gunkshot: ["9M", "9L40", "7T", "7L40"], + harden: ["9L4", "8V", "7L4", "7S0"], + headbutt: ["8V"], + helpinghand: ["9M", "8V"], + hex: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + icepunch: ["9M", "8V", "7T"], + imprison: ["9M", "7E"], + infestation: ["7M"], + knockoff: ["9L29", "7T", "7L29"], + meanlook: ["7E"], + megadrain: ["8V"], + memento: ["9L48", "7L48"], + metronome: ["9M"], + minimize: ["9L21", "8V", "7L21"], + mudshot: ["9M"], + mudslap: ["9M"], + painsplit: ["7T"], + payback: ["7M"], + poisonfang: ["9L18", "7L18"], + poisongas: ["9L1", "8V", "7L1", "7S0"], + poisonjab: ["9M", "8V", "7M"], + pound: ["9L1", "8V", "7L1", "7S0"], + poweruppunch: ["7E"], + protect: ["9M", "8V", "7M"], + pursuit: ["7E"], + quash: ["7M"], + raindance: ["9M", "7M"], + rest: ["9M", "8V", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8V", "7M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandstorm: ["9M"], + scaryface: ["9M", "7E"], + screech: ["9L37", "8V", "7L37"], + selfdestruct: ["8V"], + shadowball: ["9M", "8V", "7M"], + shadowsneak: ["7E"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + sludgebomb: ["9M", "8V", "7M"], + sludgewave: ["7M"], + snarl: ["9M", "7M"], + snore: ["7T"], + spite: ["7T", "7E"], + spitup: ["7E"], + stockpile: ["7E"], + stoneedge: ["9M", "7M"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + swagger: ["7M"], + swallow: ["7E"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M", "8V", "7T"], + torment: ["7M"], + toxic: ["9L26", "8V", "7M"], + venoshock: ["9M", "7M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 7, level: 10, abilities: ["poisontouch"], moves: ["bite", "harden", "poisongas", "pound"], pokeball: "cherishball"}, + ], + }, + muk: { + learnset: { + acidarmor: ["9L46", "8V", "7L46", "7V", "6L43", "5L42", "4L44", "3L34"], + acidspray: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["9L52", "7L52", "6L52"], + bide: ["7V"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + curse: ["7V"], + darkpulse: ["9M", "8V", "7M", "6M", "5T", "4M"], + dig: ["9M", "8V", "6M", "5M", "4M", "3M"], + disable: ["9L12", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L8"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "7L26", "6M", "6L26", "5M", "5L28", "4M", "4L28"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L58", "4T", "4L54"], + harden: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + haze: ["8V"], + headbutt: ["8V"], + helpinghand: ["9M", "8V"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + megadrain: ["8V", "7V"], + memento: ["9L57", "7L57", "6L57", "5L64", "4L65", "3L61"], + metronome: ["9M"], + mimic: ["7V", "3T"], + minimize: ["9L21", "8V", "7L21", "7V", "6L18", "5L17", "4L17", "3L19"], + moonblast: ["8V"], + mudbomb: ["7L18", "6L18", "5L23", "4L23"], + mudshot: ["9M", "9L18"], + mudslap: ["9M", "9L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + poisongas: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["9M", "8V", "7M", "6M", "5M", "4M"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L37", "8V", "7L37", "7V", "6L32", "5L33", "4L33", "3L26"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["9L15", "8V", "7L15", "7V", "6L15", "5L20", "4L20", "3L13"], + sludgebomb: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L36", "4M", "4L36", "3M", "3L47"], + sludgewave: ["9L32", "7M", "7L32", "6M", "6L32", "5M", "5L50"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9L26", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + venomdrench: ["7L1", "6L38"], + venoshock: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 1, level: 25}, + {generation: 2, level: 5}, + {generation: 3, level: 32}, + {generation: 4, level: 15}, + {generation: 5, level: 5}, + {generation: 5, level: 35, isHidden: true}, + {generation: 6, level: 30}, + ], + }, + mukalola: { + learnset: { + acidarmor: ["9L46", "8V", "7L46"], + acidspray: ["9M", "9L15", "7L15"], + attract: ["7M"], + belch: ["9L52", "7L52"], + bite: ["9L1", "8V", "7L1"], + block: ["7T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8V", "7M"], + brutalswing: ["7M"], + confide: ["7M"], + crunch: ["9M", "9L32", "8V", "7L32"], + darkpulse: ["9M", "8V", "7M"], + dig: ["9M", "8V"], + disable: ["9L12", "8V", "7L12"], + doubleteam: ["7M"], + drainpunch: ["9M"], + embargo: ["7M"], + endure: ["9M"], + explosion: ["7M"], + facade: ["9M", "8V", "7M"], + fireblast: ["9M", "8V", "7M"], + firepunch: ["9M", "8V", "7T"], + flamethrower: ["9M", "8V", "7M"], + fling: ["9M", "7M", "7L26"], + focusblast: ["9M", "7M"], + focuspunch: ["7T"], + foulplay: ["8V"], + frustration: ["7M"], + gastroacid: ["7T"], + gigadrain: ["9M", "7T"], + gigaimpact: ["9M", "7M"], + gunkshot: ["9M", "9L40", "7T", "7L40"], + harden: ["9L1", "8V", "7L1"], + haze: ["8V"], + headbutt: ["8V"], + helpinghand: ["9M", "8V"], + hex: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8V", "7M"], + icepunch: ["9M", "8V", "7T"], + imprison: ["9M"], + infestation: ["7M"], + knockoff: ["9L29", "7T", "7L29"], + megadrain: ["8V"], + memento: ["9L57", "7L57"], + metronome: ["9M"], + minimize: ["9L21", "8V", "7L21"], + moonblast: ["8V"], + mudshot: ["9M"], + painsplit: ["7T"], + payback: ["7M"], + poisonfang: ["9L18", "7L18"], + poisongas: ["9L1", "8V", "7L1"], + poisonjab: ["9M", "8V", "7M"], + pound: ["9L1", "8V", "7L1"], + protect: ["9M", "8V", "7M"], + quash: ["7M"], + raindance: ["9M", "7M"], + recycle: ["7T"], + rest: ["9M", "8V", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8V", "7M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L37", "8V", "7L37"], + selfdestruct: ["8V"], + shadowball: ["9M", "8V", "7M"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + sludgebomb: ["9M", "8V", "7M"], + sludgewave: ["7M"], + snarl: ["9M", "7M"], + snore: ["7T"], + spite: ["7T"], + stoneedge: ["9M", "7M"], + substitute: ["9M", "8V", "7M"], + sunnyday: ["9M", "7M"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8V", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M", "8V", "7T"], + torment: ["7M"], + toxic: ["9L26", "8V", "7M"], + venomdrench: ["7L1"], + venoshock: ["9M", "7M"], + zenheadbutt: ["9M"], + }, + }, + shellder: { + learnset: { + aquaring: ["9E", "8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9L24", "8L24", "8V", "7L37", "7V", "6L37", "5L37", "4L32", "3L17", "3S0", "3S2"], + avalanche: ["9M", "8M", "7E", "6E", "5E"], + barrier: ["7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "7L44", "6L44", "5L44", "4M", "4L44"], + bubblebeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + captivate: ["4M"], + chillingwater: ["9M"], + clamp: ["8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L41"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L48", "8M", "8L48", "8V", "7L61", "6L61", "5L61"], + icebeam: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L52", "4M", "4L49", "3M", "3L49"], + iceshard: ["9L8", "8L8", "8V", "7L28", "6L28", "5L28", "4L28"], + icespinner: ["9M"], + iciclespear: ["8M", "7L13", "7E", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3L8", "3E", "3S0", "3S1"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L40"], + leer: ["9L12", "8L12", "8V", "7L20", "7V", "6L20", "5L20", "4L20", "3L33"], + lifedew: ["9E", "8E"], + liquidation: ["9M", "8M", "7T"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["9M", "9L28", "8M", "8L28", "8V", "7M", "7L16", "7V", "6M", "6L16", "5M", "5L16", "4M", "4L16", "3M", "3L25"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["7E", "7V", "6E", "5E", "4E", "3E"], + razorshell: ["9L32", "8M", "8L32", "7L32", "6L32", "5L32"], + reflect: ["8V", "7V"], + refresh: ["3S2"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M", "7E", "6E", "5E", "4E"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shellsmash: ["9L44", "8L44", "8V", "7L56", "6L56", "5L56"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikes: ["9M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["9L20", "8L20", "8V", "7L8", "7V", "6L8", "5L8", "4L8", "3L9", "3S0"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + takedown: ["9M", "7E", "7V", "6E", "5E", "4E", "3E", "3S2"], + teleport: ["8V", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + triattack: ["8M", "8V", "7V"], + twineedle: ["7E", "6E", "5E"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "8V", "7L1", "7V"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["9L16", "8M", "8L16", "7L40", "7V", "6L40", "5L40", "4M", "4L37"], + withdraw: ["9L4", "8L4", "8V", "7L4", "7V", "6L4", "5L4", "5D", "4L4", "3L1", "3S0", "3S1"], + }, + eventData: [ + {generation: 3, level: 24, gender: "F", nature: "Brave", ivs: {hp: 5, atk: 19, def: 18, spa: 5, spd: 11, spe: 13}, abilities: ["shellarmor"], moves: ["withdraw", "iciclespear", "supersonic", "aurorabeam"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", abilities: ["shellarmor"], moves: ["tackle", "withdraw", "iciclespear"], pokeball: "pokeball"}, + {generation: 3, level: 29, abilities: ["shellarmor"], moves: ["refresh", "takedown", "surf", "aurorabeam"]}, + ], + encounters: [ + {generation: 1, level: 10}, + ], + }, + cloyster: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + avalanche: ["9M", "8M", "4M"], + barrier: ["8V"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + captivate: ["4M"], + chillingwater: ["9M"], + clamp: ["7V"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "5S0", "4M", "3M"], + hydropump: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + iceshard: ["9L1", "8L1"], + icespinner: ["9M"], + iciclecrash: ["9L1", "8L1", "7L50", "6L50", "5L52"], + iciclespear: ["9L0", "8M", "8L0", "5S0"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "4T"], + leer: ["9L1", "8L1", "8V"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "8M", "7T"], + mimic: ["7V", "3T"], + mudshot: ["9M", "8M"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["8M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + protect: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["9L5", "8M", "8L1", "5S0"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M", "5S0"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shellsmash: ["9L1", "8L1", "7L1", "6L1"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M", "8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikecannon: ["8V", "7L13", "7V", "6L13", "5L13", "4L40", "3L41"], + spikes: ["9M", "9L1", "8M", "8L1", "7L28", "7V", "6L28", "5L28", "4L28", "3L33"], + steelroller: ["8T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V"], + takedown: ["9M", "7V"], + teleport: ["8V", "7V"], + terablast: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + triattack: ["8M", "8V", "7V"], + twineedle: ["8V"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "8V", "7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["8M"], + whirlpool: ["9L1", "8M", "8L1", "7V", "4M"], + withdraw: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 5, level: 30, gender: "M", nature: "Naughty", abilities: ["skilllink"], moves: ["iciclespear", "rockblast", "hiddenpower", "razorshell"], pokeball: "pokeball"}, + ], + }, + gastly: { + learnset: { + acidspray: ["9M"], + allyswitch: ["8M", "7T"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L21"], + corrosivegas: ["8T"], + curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + darkpulse: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L36", "6M", "6L36", "5T", "5L36", "4M", "4L36"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + destinybond: ["9L44", "8L44", "7L40", "7V", "6L40", "5L40", "4L40", "3L33"], + disable: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["9L48", "8L48", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L28"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + grudge: ["8E", "7E", "6E", "5E", "4E", "3E"], + gunkshot: ["9M"], + haze: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hex: ["9M", "9L24", "8M", "8L24", "7L43", "6L43", "5L43"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L4", "8L4", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + icepunch: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + lick: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L8", "8L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L13"], + megadrain: ["8V", "7V"], + mimic: ["7V", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7L47", "7V", "6L47", "5L47", "4L43", "3T", "3L41"], + nightshade: ["9M", "9L28", "8L28", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L16"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L26", "6M", "6L26", "5M", "5L26", "4M", "4L26"], + perishsong: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + poisongas: ["8V"], + poisonjab: ["9M", "8M"], + poltergeist: ["8T"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["9E", "8E", "7E", "6E"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M", "7E", "6E", "5E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L36"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "5D"], + smog: ["9E", "8E", "8V", "7E", "6E", "5E"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9L16", "8L16", "7T", "7L5", "7V", "6T", "6L5", "5T", "5L5", "4T", "4L5", "3L8"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L32", "8L32", "8V", "7L22", "6L22", "5L22", "4T", "4L22"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7V"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["9E", "8E", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "4E", "3E"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 18}, + ], + }, + haunter: { + learnset: { + acidspray: ["9M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "5L19", "5S0", "4L19", "3L21"], + corrosivegas: ["8T"], + curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + darkpulse: ["9M", "9L42", "8M", "8L42", "8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + destinybond: ["9L54", "8L54", "7L50", "7V", "6L50", "5L50", "4L50", "3L39"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["9L60", "8L60", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3T", "3L31"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gunkshot: ["9M"], + headbutt: ["8V"], + hex: ["9M", "9L24", "8M", "8L24", "7L55", "6L55", "5L55"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + lick: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L1", "8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L13"], + megadrain: ["8V", "7V"], + metronome: ["9M"], + mimic: ["7V", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7L61", "7V", "6L61", "5L61", "4L55", "3T", "3L53"], + nightshade: ["9M", "9L30", "8L30", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L16"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S0", "4M", "4L28"], + phantomforce: ["9M"], + poisongas: ["8V"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poltergeist: ["8T"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9L48", "8M", "8L48", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3M", "3L45"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowpunch: ["9L0", "8L0", "7L1", "6L25", "5L25", "5S0", "4L25", "3L25"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M"], + smog: ["8V"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L36", "8L36", "8V", "7L22", "6L22", "5L22", "5S0", "4T", "4L22"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7V"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["confuseray", "suckerpunch", "shadowpunch", "payback"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 20}, + {generation: 2, level: 15}, + {generation: 3, level: 20}, + {generation: 4, level: 16}, + ], + }, + gengar: { + learnset: { + acidspray: ["9M"], + allyswitch: ["8M", "7T"], + astonish: ["6S4"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "8V", "7L19", "7V", "6L19", "6S1", "6S2", "6S4", "5L19", "4L19", "3L21", "3S0"], + corrosivegas: ["8T"], + counter: ["7V", "3T"], + curse: ["9L20", "8L20", "7L12", "7V", "6L12", "5L12", "4L12", "3L13", "3S0"], + darkpulse: ["9M", "9L42", "8M", "8L42", "8V", "7M", "7L44", "6M", "6L44", "5T", "5L44", "4M", "4L44"], + dazzlinggleam: ["9M", "8M", "8V", "8S7", "7M", "6M"], + destinybond: ["9L54", "8L54", "7L50", "7V", "6L50", "6S3", "5L50", "4L50", "3L39"], + disable: ["8V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["9L60", "8L60", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3T", "3L31"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + haze: ["8V"], + headbutt: ["8V", "7V", "4T"], + hex: ["9M", "9L24", "8M", "8L24", "7L55", "6L55", "5L55"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "6S5", "6S6", "5M", "4M", "3M"], + hypnosis: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S5", "6S6", "5L1", "4L1", "3L1"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lick: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["9L1", "8L1", "7L8", "7V", "6L8", "6S5", "6S6", "5L8", "4L8", "3L13"], + megadrain: ["8V", "7V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], + mimic: ["7V", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7L61", "7V", "6L61", "5L61", "4L55", "3T", "3L53"], + nightshade: ["9M", "9L30", "8L30", "8V", "7L15", "7V", "6L15", "6S2", "5L15", "4L15", "3L16", "3S0"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + perishsong: ["9L1", "8L1"], + phantomforce: ["9M", "8M"], + poisongas: ["8V"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poltergeist: ["8T"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "6S1", "6S5", "6S6", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["9L1", "8L1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9L48", "8M", "8L48", "8V", "8S7", "7M", "7L33", "7V", "6M", "6L33", "6S3", "6S4", "5M", "5L33", "4M", "4L33", "3M", "3L45"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowpunch: ["9L1", "8L1", "7L1", "6L25", "6S1", "6S2", "5L25", "4L25", "3L25"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "8V", "8S7", "7M", "6M", "6S3", "5M", "4M", "3M"], + sludgewave: ["8M", "6S4"], + smog: ["8V"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["9L16", "8L16", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1", "3S0"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L36", "8L36", "8V", "7L22", "6L22", "6S1", "6S2", "5L22", "4T", "4L22"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "8S7", "7M", "6M", "6S3", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 23, gender: "F", nature: "Hardy", ivs: {hp: 19, atk: 14, def: 0, spa: 14, spd: 17, spe: 27}, moves: ["spite", "curse", "nightshade", "confuseray"], pokeball: "pokeball"}, + {generation: 6, level: 25, nature: "Timid", moves: ["psychic", "confuseray", "suckerpunch", "shadowpunch"], pokeball: "cherishball"}, + {generation: 6, level: 25, moves: ["nightshade", "confuseray", "suckerpunch", "shadowpunch"], pokeball: "cherishball"}, + {generation: 6, level: 50, moves: ["shadowball", "sludgebomb", "willowisp", "destinybond"], pokeball: "cherishball"}, + {generation: 6, level: 25, shiny: true, moves: ["shadowball", "sludgewave", "confuseray", "astonish"], pokeball: "duskball"}, + {generation: 6, level: 50, shiny: true, gender: "M", moves: ["meanlook", "hypnosis", "psychic", "hyperbeam"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["meanlook", "hypnosis", "psychic", "hyperbeam"], pokeball: "cherishball"}, + {generation: 8, level: 80, gender: "M", nature: "Naughty", abilities: ["cursedbody"], ivs: {hp: 30, atk: 30, def: 30, spa: 31, spd: 31, spe: 31}, moves: ["shadowball", "sludgebomb", "dazzlinggleam", "willowisp"], pokeball: "pokeball"}, + ], + }, + onix: { + learnset: { + ancientpower: ["4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5D", "4L1", "3L8"], + block: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["8L16", "7L4", "7V", "6L4", "5L46", "4L38"], + defensecurl: ["8E", "7E", "6E", "5E", "4E"], + dig: ["8M", "8L44", "8V", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "3M"], + doubleedge: ["8L56", "8V", "7L49", "7V", "6L49", "5L57", "4L46", "3T", "3L56"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L12", "7L25", "6L25", "5L41", "4L33", "3L30"], + dragondance: ["8M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8E", "8V", "7M", "6M", "5M"], + drillrun: ["8M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "7L20", "6M", "6L20", "5M", "4M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], + headbutt: ["8V", "7V", "4T"], + headsmash: ["8E"], + heavyslam: ["8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8L48", "8V", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L49", "4M", "4L38", "3M", "3L45"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + rage: ["8V", "7L13", "7V", "6L13", "5L14", "4L14", "3L23"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "7E", "6E", "5E", "4E"], + rockclimb: ["7E", "6E", "5E", "5D", "4M"], + rockpolish: ["8L8", "7M", "7L19", "6M", "6L19", "5M", "5L30", "4M", "4L30"], + rockslide: ["8M", "8L20", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8L1", "8V", "7L7", "7V", "6L7", "5L9", "4L9", "3L12"], + rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L17", "4M", "4L17", "3M"], + rollout: ["8E", "7E", "6E", "5E", "4T", "4E"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L40", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L25", "4M", "4L22", "3M", "3L33"], + sandtomb: ["8M", "8L28", "7L37", "6L37", "5L54", "4L41", "3L49"], + scaryface: ["8M"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "8V", "7L31", "7V", "6L31", "5L6", "4L6", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8V", "7V", "3T"], + skullbash: ["7V"], + slam: ["8L36", "8V", "7L28", "7V", "6L28", "5L33", "4L25", "3L37"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8L32", "8V", "7T", "7L16", "7E", "6T", "6L16", "6E", "5T", "5L38", "5E", "5D", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L62", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + wideguard: ["8E", "7E"], + }, + encounters: [ + {generation: 1, level: 13}, + ], + }, + steelix: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["8L8", "7L19", "6L19", "5L30"], + bind: ["8L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4L1", "3L8"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "7L37", "7V", "6L37", "5L54", "4L41", "3L49"], + curse: ["8L16", "7L4", "7V", "6L4", "5L46", "4L38"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + dig: ["8M", "8L44", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "3M"], + doubleedge: ["8L56", "7L49", "6L49", "5L57", "4L46", "3T", "3L56"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L12", "7L25", "7V", "6L25", "5L41", "4L33", "3L30"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + drillrun: ["8M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "7L20", "6M", "6L20", "5M", "4M"], + harden: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], + headbutt: ["7V", "4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + irondefense: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8L48", "7T", "7L40", "7V", "6T", "6L40", "5T", "5L49", "4M", "4L38", "3M", "3L45"], + magnetrise: ["8L60", "7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + psychup: ["7M", "6M", "5M", "4M"], + rage: ["7L13", "7V", "6L13", "5L14", "4L14", "3L23"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["8L1", "7M", "6M", "5M", "4M", "4L30"], + rockslide: ["8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8L1", "7L7", "7V", "6L7", "5L9", "4L9", "3L12"], + rocktomb: ["8M", "7M", "7L10", "6M", "6L10", "5M", "5L17", "4M", "4L17", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L40", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L25", "4M", "4L22", "3M", "3L33"], + sandtomb: ["8M", "8L28"], + scaryface: ["8M"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "7L31", "7V", "6L31", "5L6", "4L6", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + slam: ["8L36", "7L28", "7V", "6L28", "5L33", "4L25", "3L37"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8L32", "7T", "7L16", "6T", "6L16", "5T", "5L38", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L52", "7M", "7L46", "6M", "6L46", "5M", "5L62", "4M", "4L49"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + }, + }, + drowzee: { + learnset: { + allyswitch: ["7T"], + assist: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + bellydrum: ["3S0"], + bide: ["7V"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["9L9", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L11"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8V", "7M", "6M"], + disable: ["9L5", "8V", "7L5", "7V", "6L5", "5L5", "4L7", "3L7"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + drainpunch: ["9M", "7T", "6T", "5T", "5D", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flatter: ["9E", "7E", "6E", "5E", "4E"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L49", "7L61", "7V", "6L61", "5L61", "4L53", "3L45"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + guardswap: ["9E", "7E", "6E", "5E", "4E"], + headbutt: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4T", "4L15", "3L17"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + icepunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + imprison: ["9M"], + lightscreen: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + meditate: ["8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L27"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + nastyplot: ["9M", "9L41", "8V", "7L53", "7E", "6L53", "6E", "5L53", "5E", "4L43", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + poisongas: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L18", "3L21"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + powersplit: ["9E", "7E"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L21", "8V", "7L25", "6L25", "5L25", "4L26"], + psychic: ["9M", "9L37", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L40", "3M", "3L31"], + psychicterrain: ["9M", "7E"], + psychocut: ["9E", "7E", "6E", "5E", "5D", "4E"], + psychup: ["9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L29", "3T", "3L37"], + psyshock: ["9M", "9L45", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + storedpower: ["9M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L33", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L37", "3T", "3L41"], + swift: ["9M"], + synchronoise: ["7L37", "6L37", "5L37"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "9E", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8V", "7V"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + wakeupslap: ["7L29"], + wish: ["3S0"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L29", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["insomnia"], moves: ["bellydrum", "wish"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 9}, + ], + }, + hypno: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V"], + batonpass: ["9M", "3S0"], + bide: ["7V"], + bodypress: ["9M"], + bodyslam: ["9M", "7V", "3T"], + brickbreak: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8V", "7M", "6M"], + disable: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L56", "7L1", "7V", "6L1", "5L61", "4L69", "3L57"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["9L13", "8V", "7L13", "7V", "6L13", "5L13", "4T", "4L15", "3L17"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + icepunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + lightscreen: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + meditate: ["8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L29", "3S0"], + megakick: ["7V", "3T"], + megapunch: ["7V", "3T"], + metronome: ["9M", "7V", "3T"], + mimic: ["7V", "3T"], + nastyplot: ["9M", "9L47", "8V", "7L1", "6L1", "5L53", "4L55"], + naturalgift: ["4M"], + nightmare: ["7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + nightshade: ["9M"], + poisongas: ["9L17", "8V", "7L17", "7V", "6L17", "5L17", "4L18", "3L21"], + pound: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L21", "8V", "7L25", "6L25", "5L25", "4L28"], + psychic: ["9M", "9L42", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L49", "4M", "4L50", "3M", "3L35", "3S0"], + psychicterrain: ["9M"], + psychup: ["9L25", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3T", "3L43"], + psyshock: ["9M", "9L51", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + storedpower: ["9M"], + submission: ["7V"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L37", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L45", "3T", "3L49"], + swift: ["9M"], + switcheroo: ["9L1", "7L1", "6L1", "5L1", "4L1"], + synchronoise: ["7L37", "6L37", "5L37"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8V", "7V"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + wakeupslap: ["7L29"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L32", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L64"], + }, + eventData: [ + {generation: 3, level: 34, abilities: ["insomnia"], moves: ["batonpass", "psychic", "meditate", "shadowball"]}, + ], + encounters: [ + {generation: 2, level: 16}, + {generation: 4, level: 16}, + ], + }, + krabby: { + learnset: { + agility: ["8M", "7E", "6E", "5E", "4E"], + allyswitch: ["8M", "7T", "7E", "6E"], + amnesia: ["8M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7E", "7V", "6E", "5E"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M"], + brine: ["8M", "7L39", "6L39", "5L39", "4M", "4L39"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L20", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + captivate: ["4M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + crabhammer: ["8L44", "8V", "7L41", "7V", "6L41", "5L41", "4L41", "3L45"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "4E", "3M", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + flail: ["8L29", "7L45", "7E", "7V", "6L45", "6E", "5L45", "5E", "4L45", "4E", "3L49", "3E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + guillotine: ["8L48", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L34"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8E"], + harden: ["8L4", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L16"], + haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + leer: ["8L1", "8V", "7L9", "7V", "6L9", "5L9", "4L9", "3L5"], + liquidation: ["8M", "7T"], + metalclaw: ["8L8", "7L21", "6L21", "5L21", "4L21"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L12", "7L19", "6L19", "5L19", "4L19", "3L23"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + nightslash: ["8E"], + protect: ["8M", "8L16", "8V", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L38"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M", "8L32"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "5D", "4M", "3M"], + slam: ["8L36", "8V", "7L35", "7E", "7V", "6L35", "6E", "5L35", "5E", "4L35", "4E", "3E"], + slash: ["8E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stomp: ["8L24", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L27"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8L40", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["7E", "6E", "5E", "4E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + visegrip: ["8V", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L12"], + watergun: ["8L1", "7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 1, level: 10}, + ], + }, + kingler: { + learnset: { + agility: ["8M", "8V"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "8V"], + ancientpower: ["4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M"], + brine: ["8M", "7L51", "6L51", "5L51", "4M", "4L51"], + brutalswing: ["8M"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L20", "8V", "7L15", "7V", "6L15", "5L15", "4L15"], + captivate: ["4M"], + confide: ["7M", "6M"], + crabhammer: ["8L54", "8V", "7L56", "7V", "6L56", "5L56", "4L56", "3L57"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + flail: ["8L31", "7L63", "6L63", "5L63", "4L63", "3L65"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + guillotine: ["8L60", "8V", "7L37", "7V", "6L37", "5L37", "4L37", "3L38"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8L1"], + harden: ["8L1", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L9", "3L1"], + liquidation: ["8M", "7T"], + metalclaw: ["8L1", "7L21", "6L21", "5L21", "4L21", "3L1"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L12", "7L19", "6L19", "5L19", "4L19", "3L23"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + protect: ["8M", "8L16", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L42"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M", "8L36"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + slam: ["8L42", "8V", "7L44", "6L44", "5L44", "4L44"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stomp: ["8L24", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L27"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8L48", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + visegrip: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + watergun: ["8L1", "7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wideguard: ["8L1", "7L1", "6L1", "5L1"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 3, level: 25}, + {generation: 4, level: 22}, + ], + }, + voltorb: { + learnset: { + agility: ["9M"], + bide: ["7V"], + charge: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + chargebeam: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L26"], + confide: ["7M", "6M"], + curse: ["7V"], + discharge: ["9L37", "7L37", "6L37"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M", "9L6", "7L6", "6L6"], + electricterrain: ["9M"], + electroball: ["9M", "9L22", "7L22", "6L22", "5L29"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L41", "8V", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L47", "4M", "4L43", "3T", "3L46"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["9L46", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L40"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + lightscreen: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L22", "3M", "3L37"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetrise: ["9L34", "7T", "7L34", "6T", "6L34", "5T", "5L40", "4T", "4L36"], + metalsound: ["9E"], + mimic: ["7V", "3T"], + mirrorcoat: ["9L50", "8V", "7L48", "7V", "6L48", "5L50", "4L47", "3L49", "3S0"], + naturalgift: ["5D", "4M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["9E"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["9L11", "7L11", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L32"], + round: ["7M", "6M", "5M"], + screech: ["9L13", "8V", "7L13", "7V", "6L13", "5L19", "4L19", "3L8"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["9L26", "8V", "7L26", "7V", "6L26", "5L33", "4L29", "3T", "3L27"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L4", "7V", "6L4", "5L8", "4L8", "3L15"], + spark: ["9L9", "7L9", "6L9", "5L12", "4L12", "3L21", "3S0"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8V", "7L20", "7V", "6L20", "5L36", "4T", "4L33", "3T", "3L42", "3S0"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L5", "4L5", "3L1"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L4", "8V"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 19, moves: ["refresh", "mirrorcoat", "spark", "swift"]}, + ], + encounters: [ + {generation: 1, level: 14}, + {generation: 1, level: 40}, + ], + }, + voltorbhisui: { + learnset: { + agility: ["9M"], + bulletseed: ["9M", "9L9"], + charge: ["9L1"], + chargebeam: ["9M", "9L16"], + discharge: ["9L34"], + electricterrain: ["9M"], + electroball: ["9M", "9L22"], + endure: ["9M"], + energyball: ["9M", "9L29"], + explosion: ["9L41"], + facade: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L50"], + gyroball: ["9L46"], + leafstorm: ["9M"], + leechseed: ["9E"], + protect: ["9M"], + raindance: ["9M"], + recycle: ["9E"], + reflect: ["9M"], + rest: ["9M"], + rollout: ["9L11"], + screech: ["9L13"], + seedbomb: ["9M", "9L34"], + selfdestruct: ["9L26"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + stunspore: ["9L6"], + substitute: ["9M"], + swift: ["9M", "9L20"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + worryseed: ["9E"], + }, + }, + electrode: { + learnset: { + agility: ["9M"], + bide: ["7V"], + charge: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + chargebeam: ["9M", "9L16", "7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L26"], + confide: ["7M", "6M"], + curse: ["7V"], + discharge: ["9L41", "7L41", "6L41"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["9M", "9L1", "7L1", "6L6"], + electricterrain: ["9M"], + electroball: ["9M", "9L22", "7L22", "6L22", "5L29"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L47", "8V", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L57", "4M", "4L51", "3T", "3L54"], + facade: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9L54", "7M", "7L54", "6M", "6L51", "5M", "5L51", "4M", "4L46"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + lightscreen: ["9M", "9L29", "8V", "7M", "7L29", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L22", "3M", "3L41"], + magiccoat: ["7T", "6T", "5T", "4T"], + magneticflux: ["9L1", "7L1", "6L1"], + magnetrise: ["9L36", "7T", "7L36", "6T", "6L36", "5T", "5L46", "4T", "4L40"], + mimic: ["7V", "3T"], + mirrorcoat: ["9L58", "8V", "7L58", "7V", "6L58", "5L62", "4L57", "3L59"], + naturalgift: ["4M"], + protect: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["9L11", "7L11", "7V", "6L11", "5L15", "4T", "4L15", "3T", "3L34"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9L13", "8V", "7L13", "7V", "6L13", "5L19", "4L19", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["9L26", "8V", "7L26", "7V", "6L26", "5L35", "4L29", "3T", "3L27"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + sonicboom: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + spark: ["9L9", "7L9", "6L1", "5L1", "4L1", "3L21"], + substitute: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8V", "7L20", "7V", "6L20", "5L40", "4T", "4L35", "3T", "3L48"], + tackle: ["9L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "7V"], + taunt: ["9M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L1", "8V"], + thunderwave: ["9M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 3}, + {generation: 2, level: 23}, + {generation: 3, level: 3, nature: "Hasty", ivs: {hp: 19, atk: 16, def: 18, spa: 25, spd: 25, spe: 19}, abilities: ["static"], pokeball: "pokeball"}, + {generation: 4, level: 23}, + ], + }, + electrodehisui: { + learnset: { + agility: ["9M"], + bulletseed: ["9M", "9L9"], + charge: ["9L1"], + chargebeam: ["9M", "9L16"], + chloroblast: ["9L0"], + discharge: ["9L34"], + electricterrain: ["9M"], + electroball: ["9M", "9L22"], + endure: ["9M"], + energyball: ["9M", "9L29"], + explosion: ["9L41"], + facade: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L50"], + gyroball: ["9L46"], + hyperbeam: ["9M"], + leafstorm: ["9M"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rollout: ["9L11"], + scaryface: ["9M"], + screech: ["9L13"], + seedbomb: ["9M", "9L34"], + selfdestruct: ["9L26"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + stunspore: ["9L6"], + substitute: ["9M"], + swift: ["9M", "9L20"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + }, + }, + exeggcute: { + learnset: { + absorb: ["8L1"], + ancientpower: ["8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrage: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + bestow: ["7L50", "6L50", "5L53"], + bide: ["7V"], + block: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + bulletseed: ["8M", "8L30", "7L17", "6L17", "5L17", "4M", "4L17", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8L20", "8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L19"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + eggbomb: ["7V"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + extrasensory: ["8L40", "7L47", "6L47", "5L47"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "8L35", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + infestation: ["7M", "6M"], + ingrain: ["8E", "7E", "6E", "5E", "4E", "3E"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8L10", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L13"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E", "4E"], + megadrain: ["8L15", "8V", "7V"], + mimic: ["7V", "3T"], + moonlight: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + naturalgift: ["7L37", "7E", "6L37", "6E", "5L37", "5E", "4M", "4L37"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E"], + nightmare: ["7V", "3T"], + poisonpowder: ["8E", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8V"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "5L47", "4M", "4L47", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psywave: ["7V"], + rage: ["7V"], + reflect: ["8M", "8L5", "8V", "7M", "7L7", "7V", "6M", "6L7", "5M", "5L7", "4M", "4L7", "4E", "3M", "3L7", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeppowder: ["8E", "8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L37"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L55", "8V", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stunspore: ["8E", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L25"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["3S0"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8L25", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "8L45", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + wish: ["3S0"], + worryseed: ["8L50", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["sweetscent", "wish"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 20}, + ], + }, + exeggutor: { + learnset: { + absorb: ["8L1"], + ancientpower: ["4T", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrage: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bide: ["7V"], + block: ["7T", "6T", "5T"], + bulldoze: ["8M"], + bulletseed: ["8M", "8L1", "4M", "3M"], + calmmind: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + eggbomb: ["8V", "7L27", "7V", "6L27", "5L27", "4L27", "3L31"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + extrasensory: ["8L1"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigadrain: ["8M", "8L1", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + infestation: ["7M", "6M"], + leafstorm: ["8M", "8L1", "7L47", "6L47", "5L47", "4L47"], + leechseed: ["8L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + magicalleaf: ["8M"], + megadrain: ["8L1", "8V", "7V"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightmare: ["7V", "3T"], + powerswap: ["8M"], + powerwhip: ["8V"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L1", "7M", "7L17", "6M", "6L17", "5M", "5L17"], + psywave: ["7V"], + rage: ["7V"], + reflect: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + selfdestruct: ["8M", "8V", "7V", "3T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stomp: ["8L0", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L19"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stunspore: ["8V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8L1", "7T", "6T", "5T", "4T"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "8L1"], + woodhammer: ["8L1", "7L37", "6L37", "5L37", "4L37"], + worryseed: ["8L1", "7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 46, moves: ["refresh", "psychic", "hypnosis", "ancientpower"]}, + ], + }, + exeggutoralola: { + learnset: { + absorb: ["8L1"], + attract: ["8M", "7M"], + barrage: ["8V", "7L1"], + block: ["7T"], + breakingswipe: ["8M"], + brickbreak: ["8M", "8V", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + bulletseed: ["8M", "8L1"], + celebrate: ["7S0"], + confide: ["7M"], + confusion: ["8L1", "8V", "7L1"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T", "7S0"], + dragonhammer: ["8L0", "7L1"], + dragonpulse: ["8M", "8V", "7T"], + dragontail: ["8V", "7M"], + dreameater: ["8V", "7M"], + earthquake: ["8M", "8V", "7M"], + eggbomb: ["8V", "7L27"], + endure: ["8M"], + energyball: ["8M", "7M"], + explosion: ["7M"], + extrasensory: ["8L1"], + facade: ["8M", "8V", "7M"], + flamethrower: ["8M", "8V", "7M"], + frustration: ["7M"], + gigadrain: ["8M", "8L1", "7T"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + gravity: ["7T"], + headbutt: ["8V"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8V", "7M"], + hypnosis: ["8L1", "8V", "7L1"], + infestation: ["7M"], + ironhead: ["8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + leafstorm: ["8M", "8L1", "7L47", "7S0"], + leechseed: ["8L1"], + lightscreen: ["8M", "8V", "7M"], + lowkick: ["8M", "7T"], + magicalleaf: ["8M"], + megadrain: ["8L1", "8V"], + naturepower: ["7M"], + outrage: ["8M", "8V", "7T"], + powerswap: ["8M", "7S0"], + powerwhip: ["8M", "8V"], + protect: ["8M", "8V", "7M"], + psychic: ["8M", "8V", "7M"], + psychup: ["7M"], + psyshock: ["8M", "8L1", "7M", "7L17"], + reflect: ["8M", "8L1", "8V", "7M"], + rest: ["8M", "8V", "7M"], + return: ["7M"], + round: ["8M", "7M"], + seedbomb: ["8M", "8L1", "7T", "7L1"], + selfdestruct: ["8M", "8V"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "8V", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "8L1", "8V", "7M"], + stompingtantrum: ["8M", "7T"], + stunspore: ["8V"], + substitute: ["8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "8V", "7T"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + synthesis: ["8L1", "7T"], + telekinesis: ["7T"], + teleport: ["8V"], + terrainpulse: ["8T"], + thief: ["8M", "7M"], + toxic: ["8V", "7M"], + trickroom: ["8M", "7M"], + uproar: ["8M", "8L1"], + woodhammer: ["8L1", "7L37"], + worryseed: ["8L1", "7T"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, gender: "M", nature: "Modest", isHidden: true, moves: ["powerswap", "celebrate", "leafstorm", "dracometeor"], pokeball: "cherishball"}, + ], + }, + cubone: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + boneclub: ["8V", "7L7", "7V", "6L7", "5L7", "5D", "4L7", "3L9"], + bonemerang: ["8L40", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L25"], + bonerush: ["8L29", "7L51", "7V", "6L37", "5L37", "4L37", "3L41"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["8E", "7E", "7V"], + detect: ["8E", "7E", "7V", "6E", "5E", "4E"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L48", "8V", "7L43", "7V", "6L43", "5L43", "4L43", "3T", "3L45"], + doublekick: ["8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L36", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L8", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3L33"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M", "4L33"], + focusenergy: ["8M", "8L32", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L21"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L12", "8V", "7L11", "7V", "6L11", "5L11", "4T", "4L11", "3L13"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + leer: ["8E", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + lowkick: ["8M", "7T", "6T", "5T", "5D", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["8L1", "7V", "4T", "3T"], + naturalgift: ["4M"], + perishsong: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L29"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "8L16", "7L47", "6M", "6L47", "5M", "5L47"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "8L24", "7L37"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + tailwhip: ["8L4", "8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L5"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8L44", "8V", "7L31", "7V", "6L31", "5L31", "4L31", "3L37"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + watergun: ["7V"], + }, + encounters: [ + {generation: 1, level: 16}, + ], + }, + marowak: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + boneclub: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bonemerang: ["8L48", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L25"], + bonerush: ["8L31", "7L65", "7V", "6L43", "5L43", "4L43", "3L53"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["7V"], + detect: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["8L60", "8V", "7L53", "7V", "6L53", "5L53", "4L53", "3T", "3L61"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L42", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L49"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3L39"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "8L20", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L36", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L21"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L12", "8V", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leer: ["8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L17"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["8L1", "7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7L23", "7V", "6L23", "5L23", "4L23", "3L32"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "8L16", "7L59", "6M", "6L59", "5M", "5L59"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T", "3S0"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + sing: ["3S0"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "8L24", "7T", "7L43"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M"], + swordsdance: ["8M", "8V", "7M", "6M", "5M", "4M", "3T", "3S0"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8L54", "8V", "7L33", "7V", "6L33", "5L33", "4L33", "3L46"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + watergun: ["7V"], + }, + eventData: [ + {generation: 3, level: 44, moves: ["sing", "earthquake", "swordsdance", "rockslide"]}, + ], + encounters: [ + {generation: 1, level: 24}, + {generation: 2, level: 12}, + {generation: 4, level: 14}, + ], + }, + marowakalola: { + learnset: { + aerialace: ["7M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M"], + blizzard: ["8M", "8V", "7M"], + bodyslam: ["8M"], + boneclub: ["8V", "7L1"], + bonemerang: ["8L48", "8V", "7L21"], + bonerush: ["8L31", "7L65"], + brickbreak: ["8M", "8V", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + burningjealousy: ["8T"], + confide: ["7M"], + darkpulse: ["8M", "8V", "7M"], + dig: ["8M", "8V"], + doubleedge: ["8L1"], + doubleteam: ["7M"], + dreameater: ["8V", "7M"], + earthpower: ["8M", "7T"], + earthquake: ["8M", "8V", "7M"], + echoedvoice: ["7M"], + endeavor: ["8L42", "7T", "7L49"], + endure: ["8M"], + facade: ["8M", "8V", "7M"], + falseswipe: ["8M", "8L1", "7M"], + fireblast: ["8M", "8V", "7M"], + firepunch: ["8M", "8V", "7T"], + firespin: ["8M", "8L1", "8V"], + flamecharge: ["7M"], + flamethrower: ["8M", "8V", "7M"], + flamewheel: ["8L12", "7L1"], + flareblitz: ["8M", "8L60", "8V", "7L53"], + fling: ["8M", "8L20", "7M", "7L37"], + focusblast: ["8M", "7M"], + focusenergy: ["8M", "8L1"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + growl: ["8L1", "8V", "7L1"], + headbutt: ["8L1", "8V"], + heatwave: ["8M", "7T"], + hex: ["8M", "8L16", "7L17"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8V", "7M"], + icebeam: ["8M", "8V", "7M"], + icywind: ["8M", "7T"], + imprison: ["8M"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + irontail: ["8M", "8V", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leer: ["8V", "7L13"], + lowkick: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["8L1"], + outrage: ["8M", "8V", "7T"], + painsplit: ["7T"], + poltergeist: ["8T"], + protect: ["8M", "8V", "7M"], + rage: ["8V"], + raindance: ["8M", "7M"], + rest: ["8M", "8V", "7M"], + retaliate: ["8M", "8L1", "7L59"], + return: ["7M"], + rockslide: ["8M", "8V", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scorchingsands: ["8T"], + screech: ["8M", "8V"], + seismictoss: ["8V"], + shadowball: ["8M", "8V", "7M"], + shadowbone: ["8L0", "7L27"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + spite: ["7T"], + stealthrock: ["8M", "8V", "7T"], + stompingtantrum: ["8M", "8L24", "7T", "7L43"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "8V", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "8V", "7M"], + tailwhip: ["8L1", "8V", "7L1"], + thief: ["8M", "7M"], + thrash: ["8L54", "8V", "7L33"], + throatchop: ["8M", "7T"], + thunder: ["8M", "8V", "7M"], + thunderbolt: ["8M", "8V", "7M"], + thunderpunch: ["8M", "8V", "7T"], + toxic: ["8V", "7M"], + uproar: ["8M", "7T"], + willowisp: ["8M", "8L36", "8V", "7M", "7L23"], + }, + }, + marowakalolatotem: { + learnset: { + aerialace: ["7M"], + allyswitch: ["7T"], + attract: ["7M"], + blizzard: ["7M"], + boneclub: ["7L1"], + bonemerang: ["7L21", "7S0"], + bonerush: ["7L65"], + brickbreak: ["7M"], + brutalswing: ["7M"], + bulldoze: ["7M"], + confide: ["7M"], + darkpulse: ["7M"], + doubleteam: ["7M"], + dreameater: ["7M"], + earthpower: ["7T"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["7T", "7L49"], + facade: ["7M"], + falseswipe: ["7M"], + fireblast: ["7M"], + firepunch: ["7T"], + flamecharge: ["7M"], + flamethrower: ["7M"], + flamewheel: ["7L1"], + flareblitz: ["7L53"], + fling: ["7M", "7L37"], + focusblast: ["7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["7M"], + growl: ["7L1"], + heatwave: ["7T"], + hex: ["7L17", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + icebeam: ["7M"], + icywind: ["7T"], + irondefense: ["7T"], + ironhead: ["7T"], + irontail: ["7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leer: ["7L13", "7S0"], + lowkick: ["7T"], + outrage: ["7T"], + painsplit: ["7T"], + protect: ["7M"], + raindance: ["7M"], + rest: ["7M"], + retaliate: ["7L59"], + return: ["7M"], + rockslide: ["7M"], + rocktomb: ["7M"], + round: ["7M"], + sandstorm: ["7M"], + shadowball: ["7M"], + shadowbone: ["7L27"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + spite: ["7T"], + stealthrock: ["7T"], + stompingtantrum: ["7T", "7L43"], + stoneedge: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwhip: ["7L1"], + thief: ["7M"], + thrash: ["7L33"], + throatchop: ["7T"], + thunder: ["7M"], + thunderbolt: ["7M"], + thunderpunch: ["7T"], + toxic: ["7M"], + uproar: ["7T"], + willowisp: ["7M", "7L23", "7S0"], + }, + eventData: [ + {generation: 7, level: 25, perfectIVs: 3, moves: ["leer", "hex", "bonemerang", "willowisp"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + tyrogue: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + feint: ["8E", "7E", "6E", "5E", "5D"], + focusenergy: ["8M", "8L1"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "8L1", "7T", "7L1", "7E", "6T", "6L1", "6E", "5T", "5L1", "5E", "4T", "4L1", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highjumpkick: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + laserfocus: ["7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + machpunch: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + megakick: ["8M", "3T"], + megapunch: ["8M"], + mimic: ["3T"], + mindreader: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + vacuumwave: ["8E", "7E", "6E", "5E", "4T", "4E"], + workup: ["8M", "7M", "5M"], + }, + }, + hitmonlee: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + bide: ["7V"], + blazekick: ["8M", "8L24", "7L45", "6L45", "5L45", "4L41"], + bodyslam: ["8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["8M", "8L0", "8V", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L20"], + bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M", "8L36", "7L1", "6L1", "5L57", "4L53"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doublekick: ["8L4", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "8L12", "7L49", "7V", "6L49", "5L49", "4M", "4L45", "3T", "3L41"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1"], + feint: ["8L1", "8V", "7L25", "6L25", "5L25", "4L25"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L21"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L37", "7V", "6L37", "5L37", "4L37", "3L36"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highjumpkick: ["8L44", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L26", "3S0"], + jumpkick: ["8V", "7L1", "7V", "6L13", "5L13", "4L13", "3L16"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lowkick: ["8M", "8L8", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "8L1", "7M", "6M", "5M"], + meditate: ["8V", "7L1", "7V", "6L5", "5L5", "4L5", "3L6"], + megakick: ["8M", "8L32", "8V", "7L1", "7V", "6L1", "5L53", "4L49", "3T", "3L46", "3S0"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mindreader: ["8L28", "7L33", "7V", "6L33", "5L33", "4L33", "3L31", "3S0"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + reversal: ["8M", "8L40", "7L1", "7V", "6L1", "5L61", "4L57", "3L51"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollingkick: ["8V", "7L1", "7V", "6L9", "5L9", "4L9", "3L11"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + vacuumwave: ["4T"], + wideguard: ["8L21", "7L41", "6L41", "5L41"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 38, abilities: ["limber"], moves: ["refresh", "highjumpkick", "mindreader", "megakick"]}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + hitmonchan: { + learnset: { + agility: ["8M", "8L28", "8V", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8L1", "7L16", "6L16", "5L16", "4L16"], + captivate: ["4M"], + closecombat: ["8M", "8L36", "7L1", "6L1", "5L66", "4L56"], + coaching: ["8T"], + cometpunch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + confide: ["7M", "6M"], + counter: ["8L40", "8V", "7L1", "7V", "6L1", "5L61", "4L51", "3T", "3L50"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["8L12", "7L50", "7V", "6L50", "5L51", "4L46", "3L44"], + dizzypunch: ["8V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "8L0", "7T", "6T", "5T", "4M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1"], + feint: ["8L1", "8V", "7L21", "6L21", "5L21", "4L21"], + firepunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "8V"], + focuspunch: ["8L44", "7T", "7L1", "6T", "6L1", "5L56", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8L1", "8V", "7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + laserfocus: ["7T"], + leer: ["8V"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + machpunch: ["8L4", "7L1", "7V", "6L16", "5L16", "4L16", "3L20"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "8L32", "8V", "7L46", "7V", "6L46", "5L46", "4L41", "3T", "3L38", "3S0"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mindreader: ["3S0"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["8L8", "6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L1", "7V", "6L11", "5L11", "4L11", "3L13"], + quickguard: ["8L21", "7L31", "6L31", "5L31"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + skyuppercut: ["7L41", "6L41", "5L41", "4L36", "3L32", "3S0"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8V", "7V", "4T", "3T"], + tackle: ["8L1"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8L24", "8V", "7T", "7L36", "7V", "6T", "6L36", "5T", "5L36", "4T", "4L31", "3T", "3L26"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + vacuumwave: ["8L1", "7L26", "6L26", "5L26", "4T", "4L26"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 38, abilities: ["keeneye"], moves: ["helpinghand", "skyuppercut", "mindreader", "megapunch"]}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + hitmontop: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "8L28", "7L37", "7V", "6L37", "5L37", "4L37", "3L37"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bulkup: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M", "8L36", "7L1", "6L1", "5L55", "5S0", "4L51"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8L40", "7L28", "7V", "6L28", "5L28", "4L28", "3T", "3L31"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + detect: ["8L12", "7L1", "7V", "6L50", "5L51", "4L46", "3L43"], + dig: ["8M", "8L32", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "5T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["8L44", "7T", "7L1", "6T", "6L1", "5T", "5L60", "4T", "4L55", "3L49"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1", "5S0"], + feint: ["8L1", "7L24", "6L33", "5L33", "4L33"], + focusblast: ["8M"], + focusenergy: ["8M", "8L1", "7L1", "7V", "6L6", "5L6", "4L6", "3L7"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "8L8", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L42"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "8L1", "7T", "6T", "5T", "5S0", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L1", "7V", "6L10", "5L10", "4L10", "3L13"], + quickattack: ["8L4", "7L1", "7V", "6L15", "5L15", "4L15", "3L19"], + quickguard: ["8L21", "7L46", "6L46", "5L46"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8L1", "7L19", "7V", "6L24", "5L24", "4L24", "3L25"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollingkick: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8L24", "5S0", "4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + tripleaxel: ["8T"], + triplekick: ["8L0", "7L33", "7V", "6L19", "5L19", "4L19", "3L20"], + twister: ["4T"], + uproar: ["8M"], + vacuumwave: ["4T"], + wideguard: ["8L21", "7L46", "6L46", "5L46"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 55, gender: "M", nature: "Adamant", abilities: ["intimidate"], moves: ["fakeout", "closecombat", "suckerpunch", "helpinghand"]}, + ], + }, + lickitung: { + learnset: { + acid: ["8V"], + amnesia: ["8M", "7E", "6E", "5E", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["8E", "7E", "6E"], + bellydrum: ["8L60", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + bind: ["8V", "7T", "6T", "5T"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L37", "6L37", "5L37"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3T", "3L12", "3S1"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8L24", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L34"], + doubleedge: ["7V", "3T", "3S1"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["8V", "7M", "6M", "5M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8V", "7V", "4T"], + healbell: ["3S0"], + helpinghand: ["8M", "8V", "3S1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["8L36", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3L18"], + lick: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + magnitude: ["7E", "7V", "6E", "5E", "4E", "3E"], + mefirst: ["7L41", "6L41", "5L41", "4L37"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + poweruppunch: ["6M"], + powerwhip: ["8M", "8L54", "8V", "7L53", "6L53", "5L53", "4L49"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["7L45", "6L45", "5L45", "4L41", "3L51"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["5D", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L6", "7L33", "7V", "6L33", "5L33", "4T", "4L33", "3T", "3S1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + screech: ["8M", "8L42", "8V", "7L49", "7V", "6L49", "5L49", "4L45", "3L45"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + slam: ["8L48", "8V", "7L29", "7V", "6L29", "5L29", "4L29", "3L40"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "5D", "4M", "4E", "3T", "3E"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + steelroller: ["8T"], + stomp: ["8L30", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L23"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["8L12", "7L5", "7V", "6L5", "5L5", "4L5", "3L7"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8E", "8V", "7E"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + wrap: ["8L18", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L29"], + wringout: ["7L57", "6L57", "5L57", "4L53"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["healbell", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 38, moves: ["helpinghand", "doubleedge", "defensecurl", "rollout"]}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + lickilicky: { + learnset: { + amnesia: ["8M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bellydrum: ["8L60"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L37", "6L37", "5L37"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + defensecurl: ["8L1", "7L9", "6L9", "5L9", "4L9"], + dig: ["8M", "6M", "5M", "4M"], + disable: ["8L24", "7L25", "6L25", "5L25", "4L25"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragontail: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "7T", "6T", "5T", "4T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "7L61", "6M", "6L61", "5M", "5L61", "4M", "4L57"], + headbutt: ["4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "6T", "5T", "4T"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["8L36", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + lick: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mefirst: ["7L41", "6L41", "5L41", "4L37"], + megakick: ["8M"], + megapunch: ["8M"], + muddywater: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + powerwhip: ["8M", "8L54", "7L1", "6L1", "5L53", "4L49"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + refresh: ["7L45", "6L45", "5L45", "4L41"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["8L1", "7L33", "6L33", "5L33", "4T", "4L33"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M"], + screech: ["8M", "8L42", "7L49", "6L49", "5L49", "4L45"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slam: ["8L48", "7L29", "6L29", "5L29", "4L29"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + steelroller: ["8T"], + stomp: ["8L30", "7L21", "6L21", "5L21", "4L21"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + supersonic: ["8L1", "7L5", "6L5", "5L5", "4L5"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + wrap: ["8L18", "7L17", "6L17", "5L17", "4L17"], + wringout: ["7L1", "6L1", "5L57", "4L53"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + koffing: { + learnset: { + assurance: ["8M", "8L16", "7L12", "6L12", "5L15", "4L15"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["8L40", "7L42", "6L42"], + bide: ["7V"], + captivate: ["4M"], + clearsmog: ["8L12", "8V", "7L15", "6L15", "5L19"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E"], + darkpulse: ["8M", "8V", "7M", "6M", "5T", "5D", "4M"], + destinybond: ["8L52", "7L40", "7E", "7V", "6L40", "6E", "5L51", "5E", "4L46", "4E", "3L45", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + explosion: ["8L44", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L42", "4M", "4L37", "3T", "3L41"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grudge: ["8E", "7E", "6E", "5E", "4E"], + gyroball: ["8M", "7M", "7L29", "6M", "6L29", "5M", "5L37", "4M", "4L33"], + haze: ["8L24", "8V", "7L26", "7V", "6L26", "5L33", "4L28", "3L33"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + memento: ["8L48", "7L45", "6L45", "5L55", "4L51", "3L49"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + painsplit: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisongas: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + psywave: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8L28", "8V", "7L23", "7V", "6L23", "5L24", "4L19", "3T", "3L17"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["8L20", "8V", "7L18", "7V", "6L18", "5L28", "4L24", "3L21"], + sludgebomb: ["8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L46", "4M", "4L42", "3M"], + sludgewave: ["8M", "5D"], + smog: ["8L4", "8V", "7L4", "7V", "6L4", "5L6", "5D", "4L6", "3L9"], + smokescreen: ["8L8", "7L7", "7V", "6L7", "5L10", "4L10", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + spitup: ["8E", "7E", "6E", "5E"], + stockpile: ["8E", "7E", "6E", "5E"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["8E", "7E", "6E", "5E"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L36", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "7E", "6E"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M", "7E"], + venoshock: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M", "4E", "3E"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 30}, + ], + }, + weezing: { + learnset: { + assurance: ["8M", "8L16", "7L12", "6L12", "5L15", "4L15"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["8L44", "7L51", "6L50"], + bide: ["7V"], + captivate: ["4M"], + clearsmog: ["8L12", "8V", "7L15", "6L15", "5L19"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["7V"], + darkpulse: ["8M", "8V", "7M", "6M", "5T", "4M"], + destinybond: ["8L62", "7L46", "7V", "6L46", "5L59", "4L55", "3L51"], + doublehit: ["8L0", "7L1", "6L29", "5L39", "4L33"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + explosion: ["8L50", "8V", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L46", "4M", "4L40", "3T", "3L44"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "7L29", "6M", "5M", "4M"], + haze: ["8L24", "8V", "7L26", "7V", "6L26", "5L33", "4L28", "3L33"], + headbutt: ["8V"], + heatwave: ["8M", "8L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + memento: ["8L56", "7L57", "6L54", "5L65", "4L63", "3L58"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisongas: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8V"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8L28", "8V", "7L23", "7V", "6L23", "5L24", "4L19", "3T", "3L1"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludge: ["8L20", "8V", "7L18", "7V", "6L18", "5L28", "4L24", "3L21"], + sludgebomb: ["8M", "8L32", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L52", "4M", "4L48", "3M"], + sludgewave: ["8M"], + smog: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + smokescreen: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8L38", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 16}, + {generation: 3, level: 32}, + {generation: 4, level: 15, pokeball: "safariball"}, + ], + }, + weezinggalar: { + learnset: { + aromatherapy: ["8L24"], + aromaticmist: ["8L1"], + assurance: ["8M", "8L16"], + attract: ["8M"], + belch: ["8L44"], + brutalswing: ["8M"], + clearsmog: ["8L12"], + corrosivegas: ["8T"], + darkpulse: ["8M"], + dazzlinggleam: ["8M"], + defog: ["8L1"], + destinybond: ["8L62"], + doublehit: ["8L0"], + endure: ["8M"], + explosion: ["8L50"], + facade: ["8M"], + fairywind: ["8L1"], + fireblast: ["8M"], + flamethrower: ["8M"], + gigaimpact: ["8M"], + gyroball: ["8M"], + haze: ["8L1"], + heatwave: ["8M", "8L1"], + hyperbeam: ["8M"], + memento: ["8L56"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L68"], + overheat: ["8M"], + payback: ["8M"], + playrough: ["8M"], + poisongas: ["8L1"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M"], + round: ["8M"], + screech: ["8M"], + selfdestruct: ["8M", "8L28"], + shadowball: ["8M"], + sleeptalk: ["8M"], + sludge: ["8L20"], + sludgebomb: ["8M", "8L32"], + sludgewave: ["8M"], + smog: ["8L1"], + smokescreen: ["8L1"], + snore: ["8M"], + strangesteam: ["8L1"], + substitute: ["8M"], + sunnyday: ["8M"], + tackle: ["8L1"], + taunt: ["8M"], + thief: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + toxic: ["8L38"], + toxicspikes: ["8M"], + uproar: ["8M"], + venomdrench: ["8M"], + venoshock: ["8M"], + willowisp: ["8M"], + wonderroom: ["8M"], + }, + }, + rhyhorn: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + bulldoze: ["8M", "8L10", "7M", "7L21", "6M", "6L21", "5M", "5L30"], + captivate: ["4M"], + chipaway: ["7L25", "6L25", "5L34"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + crunch: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "5D", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragonrush: ["8E", "7E", "6E", "5E", "4E"], + drillrun: ["8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L45"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L45", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L56", "4M", "4L49", "3M", "3L52"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7E", "6E", "5E", "4E"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L5", "7V", "6L5", "5L12", "4L13", "3L15"], + guardsplit: ["8E", "7E", "6E"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hornattack: ["8L15", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + horndrill: ["8L60", "8V", "7L53", "7V", "6L53", "5L63", "4L37", "3L38"], + icebeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "7E", "6E", "5E", "4E"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["7V"], + magnitude: ["7E", "7V", "6E", "5E", "4E", "3E"], + megahorn: ["8M", "8L55", "8V", "7L49", "6L49", "5L67", "4L57", "3L57"], + metalburst: ["8E", "7E", "6E"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], + rockclimb: ["7E", "6E", "5E", "4M"], + rockpolish: ["8E", "7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L20", "7L9", "7V", "6L9", "5L19", "4L21", "3L24"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["8E", "7E", "7V", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L5", "7M", "7L13", "6M", "6L13"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stomp: ["8L25", "8V", "7L17", "7V", "6L8", "5L8", "4L9", "3L10"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L50", "7M", "7L41", "6M", "6L41", "5M", "5L52", "4M", "4L45"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + tackle: ["8L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L43"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thrash: ["7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "7E", "6E", "5E", "4E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 20}, + ], + }, + rhydon: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "7V", "3T"], + breakingswipe: ["8M"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "8L1", "7M", "7L21", "6M", "6L21", "5M", "5L30"], + captivate: ["4M"], + chipaway: ["7L25", "6L25", "5L34"], + confide: ["7M", "6M"], + counter: ["8V", "7V", "3T"], + crunch: ["8M", "8V"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragontail: ["8V", "7M", "6M", "5M"], + drillrun: ["8M", "8L35", "8V", "7T", "7L33", "6T", "6L33", "5T", "5L47"], + dynamicpunch: ["7V", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L47", "8V", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L62", "4M", "4L49", "3M", "3L58", "3S0"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["8M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8L0", "7L1", "6L42", "5L42", "4L42"], + headbutt: ["8V", "7V", "4T"], + heatcrash: ["8M"], + heavyslam: ["8M"], + helpinghand: ["8M", "8V", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hornattack: ["8L15", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + horndrill: ["8L68", "8V", "7L1", "7V", "6L1", "5L71", "4L37", "3L38"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["8M"], + icepunch: ["8M", "8V", "7T", "6T", "5T", "4T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7V"], + megahorn: ["8M", "8L61", "8V", "7L55", "6L1", "5L77", "4L57", "3L66", "3S0"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M", "8V", "7V"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25", "3L29"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8V"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L20", "7L1", "7V", "6L1", "5L19", "4L21", "3L24", "3S0"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stomp: ["8L25", "8V", "7L17", "7V", "6L1", "5L1", "4L1", "3L1"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "8V", "7L37", "7V", "6L37", "5L41", "4L33", "3L46"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["8M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + watergun: ["7V"], + whirlpool: ["8M", "4M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 46, moves: ["helpinghand", "megahorn", "scaryface", "earthquake"]}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 4, level: 41}, + {generation: 6, level: 30}, + ], + }, + rhyperior: { + learnset: { + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "8L1", "7M", "7L21", "6M", "6L21", "5M"], + captivate: ["4M"], + chipaway: ["7L25", "6L25", "5L30"], + confide: ["7M", "6M"], + crunch: ["8M"], + cut: ["6M", "5M", "4M"], + dig: ["8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + drillrun: ["8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L47"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L47", "7M", "7L48", "6M", "6L48", "5M", "5L62", "4M", "4L49"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + firefang: ["8M"], + firepunch: ["8M", "7T", "6T", "5T", "4T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L1", "6L1", "5L1", "4L1"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8L1", "7L1", "6L42", "5L42", "4L42"], + headbutt: ["4T"], + heatcrash: ["8M"], + heavyslam: ["8M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["8M"], + hornattack: ["8L15", "7L1", "6L1", "5L1", "4L1"], + horndrill: ["8L68", "7L1", "6L1", "5L71", "4L37"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icefang: ["8M"], + icepunch: ["8M", "7T", "6T", "5T", "4T"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + irondefense: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + megahorn: ["8M", "8L61", "7L55", "6L1", "5L77", "4L57"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + mudshot: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M"], + poisonjab: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M", "4M"], + rockblast: ["8M", "8L30", "7L29", "6L23", "5L23", "4L25"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rockwrecker: ["8L75", "7L1", "6L1", "5L86", "4L61"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["8M", "8L20", "7L1", "6L1", "5L19", "4L21"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stomp: ["8L25", "7L17", "6L1", "5L1", "4L1"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L54", "7M", "7L41", "6M", "6L41", "5M", "5L56", "4M", "4L45"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + tackle: ["8L1"], + tailwhip: ["8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["8L40", "7L37", "6L37", "5L41", "4L33"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderfang: ["8M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + whirlpool: ["8M", "4M"], + }, + }, + happiny: { + learnset: { + aromatherapy: ["8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + charm: ["9M", "9L20", "8M", "8L20", "7L1", "6L1", "5L1", "4L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L5", "6L5", "5L5", "4L5"], + counter: ["7E", "6E", "5E", "4E"], + covet: ["9L16", "8L16", "7T", "6T", "5T"], + defensecurl: ["9L4", "8L4"], + disarmingvoice: ["9M", "9L12", "8L12"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healbell: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + metronome: ["9M", "8M", "7E", "6E", "5E", "4E"], + minimize: ["8L1"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["7E", "6E", "5E", "4M"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + present: ["9E", "8E", "7E", "6E", "5E", "4E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + refresh: ["7L9", "6L9", "5L9", "4L9"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seismictoss: ["9E", "8E"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["9L8", "8L8", "7L12", "6L12", "5L12", "4L12"], + takedown: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + chansey: { + learnset: { + allyswitch: ["8M", "7T"], + aromatherapy: ["8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bestow: ["7L20", "6L20", "5L20"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["8V"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1", "8S3"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["7E", "7V", "6E", "5E", "5D", "4E", "3T"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8M", "8V", "7M", "6M"], + defensecurl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L31", "3T", "3L41"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleedge: ["9L40", "8L40", "8V", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L57"], + doubleslap: ["8V", "7L12", "7V", "6L12", "5L12", "4L16", "3L17"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["9L8", "8L8", "7M", "6M", "5M"], + eggbomb: ["8V", "7L42", "7V", "6L42", "5L42", "4L38", "3L35"], + electricterrain: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L20", "8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L27"], + focusblast: ["9M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + growl: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + healingwish: ["9L52", "8L52", "7L50", "6L50", "5L50", "4L42"], + healpulse: ["9L28", "8L28", "7L38", "6L38", "5L38"], + helpinghand: ["9M", "9L32", "8M", "8L32", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L48", "8L48", "7T", "6T", "5T", "4T"], + lifedew: ["9L12", "8L12"], + lightscreen: ["9M", "9L36", "8M", "8L36", "8V", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L34", "3M", "3L49"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["7V", "3T"], + minimize: ["8L1", "8V", "7L23", "7V", "6L23", "5L23", "4L20", "3L23"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + pound: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + poweruppunch: ["6M"], + present: ["8E", "8S3", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8V", "7V"], + refresh: ["7L9", "6L9", "5L9", "4L9", "3L9", "3S1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8E", "8V", "7E", "7V", "6E", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L16", "8L16", "8V", "7L31", "7V", "6L31", "5L31", "4L23", "3L29"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M", "3S2"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + softboiled: ["9L44", "8L44", "8V", "8S3", "7L16", "7V", "6L16", "5L16", "4L12", "3T", "3L13", "3S2"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1", "8S3", "3S2"], + sweetscent: ["3S0"], + swift: ["9M"], + tailwhip: ["9L4", "8L4", "8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L5", "3S1"], + takedown: ["9M", "9L24", "8L24", "8V", "7L27", "7V", "6L27", "5L27"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + thunderpunch: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + uproar: ["8M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["sweetscent", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["pound", "growl", "tailwhip", "refresh"], pokeball: "pokeball"}, + {generation: 3, level: 39, moves: ["sweetkiss", "thunderbolt", "softboiled", "skillswap"]}, + {generation: 8, level: 7, moves: ["present", "sweetkiss", "charm", "softboiled"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 7}, + ], + }, + blissey: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bestow: ["7L20", "6L20", "5L20"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["3T"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L31", "3T", "3L33"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleedge: ["9L40", "8L40", "7L1", "7V", "6L1", "5L54", "4L46", "3T", "3L47"], + doubleslap: ["7L12", "7V", "6L12", "5L12", "4L16", "3L13"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["9L8", "8L8", "7M", "6M", "5M"], + eggbomb: ["7L42", "7V", "6L42", "5L42", "4L38", "3L28"], + electricterrain: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L20", "8M", "8L20", "7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L27"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + growl: ["7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["9L52", "8L52", "7L50", "6L50", "5L50", "4L42"], + healpulse: ["9L28", "8L28", "7L38", "6L38", "5L38"], + helpinghand: ["9M", "9L32", "8M", "8L32", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L48", "8L48", "7T", "6T", "5T", "4T"], + lifedew: ["9L12", "8L12"], + lightscreen: ["9M", "9L36", "8M", "8L36", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L34", "3M", "3L40"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + minimize: ["8L1", "7L23", "7V", "6L23", "5L23", "4L20", "3L18"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pound: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + refresh: ["7L9", "6L9", "5L9", "5S0", "4L9", "3L7"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["9L16", "8L16", "7L31", "7V", "6L31", "5L31", "4L23", "3L23"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + softboiled: ["9L44", "8L44", "7L16", "7V", "6L16", "5L16", "4L12", "3T", "3L10"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L1", "8L1"], + swift: ["9M"], + tailwhip: ["9L4", "8L4", "7L5", "7V", "6L5", "5L5", "5S0", "4L5", "3L4"], + takedown: ["9M", "9L24", "8L24", "7L27", "6L27", "5L27"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M"], + trick: ["9M"], + uproar: ["8M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 10, isHidden: true, moves: ["pound", "growl", "tailwhip", "refresh"]}, + ], + }, + tangela: { + learnset: { + absorb: ["8L1", "8V", "7L10", "7V", "6L10", "5L8", "4L8", "3L10"], + amnesia: ["8M", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + ancientpower: ["8L24", "7L38", "6L38", "5L36", "4T", "4L33"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["8L1", "8V", "7T", "7L17", "7V", "6T", "6L17", "5T", "5L22", "4L22", "3L28"], + bodyslam: ["8M", "7V", "3T"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8E", "8V", "7E", "7V", "6E", "5E", "4E", "3E"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "8L32", "7T", "7L36", "7E", "7V", "6T", "6L36", "6E", "5T", "5L36", "5E", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L56", "7L48", "6L48"], + growth: ["8L8", "8V", "7L20", "7V", "6L20", "5L12", "4L12", "3L13"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8L52", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L33", "4T", "4L36"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8E", "8V", "7E", "6E", "5E", "5D", "4E", "3E"], + megadrain: ["8L12", "8V", "7L23", "7E", "7V", "6L23", "6E", "5L26", "5E", "4L26", "4E", "3L31", "3E"], + mimic: ["7V", "3T"], + morningsun: ["3S0"], + naturalgift: ["7L33", "7E", "6L33", "6E", "5L40", "5E", "4M", "4L40"], + naturepower: ["8E", "7M", "7E", "6E", "5E", "4E", "3E"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonpowder: ["8L20", "8V", "7L14", "7V", "6L14", "5L15", "4L15", "3L19"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + powerwhip: ["8M", "8L48", "8V", "7L50", "6L50", "5L54", "4L54"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rage: ["7V"], + ragepowder: ["8E", "7E", "6E", "5E"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "5D", "4T"], + shockwave: ["7T", "6T", "4M"], + skullbash: ["7V"], + slam: ["8L40", "8V", "7L41", "7V", "6L41", "5L43", "4L43", "3L40"], + sleeppowder: ["8L36", "8V", "7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L4"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + stunspore: ["8L4", "8V", "7L30", "7V", "6L30", "5L29", "4L29", "3L37"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["8L44", "7L44", "6L44", "5L47", "4L47", "3L46"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + vinewhip: ["8L16", "8V", "7L7", "7V", "6L7", "5L19", "4L19", "3L22"], + wakeupslap: ["7E"], + worryseed: ["7T", "6T", "5T", "4T"], + wringout: ["7L46", "6L46", "5L50", "4L50"], + }, + eventData: [ + {generation: 3, level: 30, abilities: ["chlorophyll"], moves: ["morningsun", "solarbeam", "sunnyday", "ingrain"]}, + ], + encounters: [ + {generation: 1, level: 13}, + ], + }, + tangrowth: { + learnset: { + absorb: ["8L1", "7L10", "6L10", "5L8", "4L8"], + aerialace: ["7M", "6M", "5M", "4M"], + amnesia: ["8M"], + ancientpower: ["8L24", "7L40", "6L40", "5L36", "4T", "4L33", "4S0"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bind: ["8L1", "7T", "7L17", "6T", "6L17", "5T", "5L22", "4L22"], + block: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L57"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "8L32", "7T", "7L36", "6T", "6L36", "5T", "5L36", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L56", "7L50", "6L50"], + growth: ["8L1", "7L20", "6L20", "5L12", "4L12"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + ingrain: ["8L52", "7L1", "6L1", "5L1", "4L1"], + knockoff: ["8L28", "7T", "7L27", "6T", "6L27", "5T", "5L33", "4T", "4L36"], + leafstorm: ["8M"], + megadrain: ["8L12", "7L23", "6L23", "5L26", "4L26"], + morningsun: ["4S0"], + mudslap: ["4T"], + naturalgift: ["7L33", "6L33", "5L40", "4M", "4L40", "4S0"], + naturepower: ["7M", "6M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonpowder: ["8L20", "7L14", "6L14", "5L15", "4L15"], + powerswap: ["8M"], + powerwhip: ["8M", "8L48", "7L53", "6L53", "5L54", "4L54"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shockwave: ["7T", "6T", "4M"], + slam: ["8L40", "7L43", "6L43", "5L43", "4L43"], + sleeppowder: ["8L36", "7L4", "6L4", "5L5", "4L5"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + solarblade: ["8M"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + stunspore: ["8L1", "7L30", "6L30", "5L29", "4L29"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "4S0"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + thief: ["8M", "7M", "6M", "5M", "4M"], + tickle: ["8L44", "7L46", "6L46", "5L47", "4L47"], + toxic: ["7M", "6M", "5M", "4M"], + vinewhip: ["8L16", "7L7", "6L7", "5L19", "4L19"], + worryseed: ["7T", "6T", "5T", "4T"], + wringout: ["7L49", "6L49", "5L50", "4L50"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Brave", moves: ["sunnyday", "morningsun", "ancientpower", "naturalgift"], pokeball: "cherishball"}, + ], + }, + kangaskhan: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + beatup: ["8M"], + bide: ["7V"], + bite: ["8L12", "8V", "7L13", "7V", "6L13", "5L13", "4L13", "3L7", "3S1"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L31", "6L31", "5L31"], + circlethrow: ["8E", "7E", "6E", "5E"], + cometpunch: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + covet: ["7T", "6T", "5T"], + crunch: ["8M", "8L36", "8V", "7L37", "6L37", "5L37", "4L31"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dizzypunch: ["8V", "7L34", "7V", "6L34", "5L34", "4L25", "3L43", "3S2"], + doubleedge: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + doublehit: ["8L32", "7L19", "6L19", "5L19", "4L43"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "5D", "4M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "6S3", "5M", "4M", "3M", "3S2"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + endure: ["8M", "8L40", "7L43", "7V", "6L43", "5L43", "4M", "4L34", "3T", "3L37"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L8", "8V", "7L7", "6L7", "6S3", "5L7", "5D", "4L7", "3L19"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + fissure: ["7V"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L20", "7E", "7V", "6E", "5E", "4E", "3E"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L4"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8L24", "8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["8L52"], + leer: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "8V", "7L25", "7V", "6L25", "5L25", "4L19", "3T", "3L25"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "8L48", "8V", "7T", "7L46", "6T", "6L46", "5T", "5L46", "4T", "4L37"], + pound: ["8L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7L22", "7V", "6L22", "5L22", "4L22", "3L31"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "6S3", "5M", "4M", "3M"], + reversal: ["8M", "8L44", "7L50", "7V", "6L50", "5L55", "4L49", "3L49"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["3S2"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stomp: ["8L16", "7E", "7V", "6E", "5E", "4E", "3E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["8L28", "8V", "7L49", "6L49", "6S3", "5L49", "4T", "4L46"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tailwhip: ["8L1", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L13", "3S2"], + takedown: ["7V"], + terrainpulse: ["8T"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wish: ["3S0"], + workup: ["8M", "7M", "5M"], + yawn: ["3S0"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["earlybird"], moves: ["yawn", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 10, abilities: ["earlybird"], moves: ["cometpunch", "leer", "bite"], pokeball: "pokeball"}, + {generation: 3, level: 35, abilities: ["earlybird"], moves: ["sing", "earthquake", "tailwhip", "dizzypunch"]}, + {generation: 6, level: 50, abilities: ["scrappy"], moves: ["fakeout", "return", "earthquake", "suckerpunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 25}, + ], + }, + horsea: { + learnset: { + agility: ["8M", "8L30", "8V", "7L36", "7V", "6L23", "5L23", "4L23", "3L36"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7L31", "6L30", "5L30", "5D", "4M", "4L30"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "5S0", "4L1", "3L1"], + bubblebeam: ["8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], + captivate: ["4M"], + clearsmog: ["8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["7V"], + disable: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L20", "7E", "7V", "6E", "5E", "4E", "3E"], + dragondance: ["8M", "8L50", "7L46", "6L38", "5L38", "4L38", "3L50"], + dragonpulse: ["8M", "8L40", "8V", "7T", "7L41", "6T", "6L41", "5T", "5L42", "4M", "4L42"], + dragonrage: ["7E", "7V", "6E", "5E", "4E", "3E"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "8V", "7L52", "7V", "6L35", "5L35", "4L35", "3L43"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["8L35"], + leer: ["8L1", "8V", "7L9", "7V", "6L8", "5L8", "4L8", "3L15"], + liquidation: ["8M"], + mimic: ["7V", "3T"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + octazooka: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + outrage: ["8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "8L55", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "6E", "5E", "4E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L5", "8V", "7L5", "7V", "6L4", "5L4", "4L4", "3L8"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + splash: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8L10", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L13", "7V", "6L1", "5L11", "4L11", "3L22"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["bubble"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + seadra: { + learnset: { + agility: ["8M", "8L30", "8V", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7L31", "6L30", "5L30", "4M", "4L30"], + bubble: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L25", "8V", "7L21", "7V", "6L18", "5L18", "4L18"], + captivate: ["4M"], + clearsmog: ["8V"], + confide: ["7M", "6M"], + curse: ["7V"], + disable: ["8V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8L20", "7V"], + dragondance: ["8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], + dragonpulse: ["8M", "8L44", "8V", "7T", "7L45", "6T", "6L45", "5T", "5L57", "4M", "4L57"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L15", "8V", "7L26", "6L14", "5L14", "4L14"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L51", "8V", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["8L37", "7T"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + liquidation: ["8M"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + naturalgift: ["4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + takedown: ["7V"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 45, abilities: ["poisonpoint"], moves: ["leer", "watergun", "twister", "agility"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 20}, + {generation: 2, level: 20}, + {generation: 3, level: 25}, + {generation: 4, level: 15}, + ], + }, + kingdra: { + learnset: { + agility: ["8M", "8L30", "7L38", "7V", "6L23", "5L23", "4L23", "3L40", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + breakingswipe: ["8M"], + brine: ["8M", "7L31", "6L30", "5L30", "4M", "4L30"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L25", "7L21", "6L18", "5L18", "4L18"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "6T", "5T", "5S1", "4T"], + dragonbreath: ["8L20", "7V"], + dragondance: ["8M", "8L58", "7L52", "6L48", "5L48", "4L48", "3L62"], + dragonpulse: ["8M", "8L44", "7T", "7L45", "6T", "6L1", "5T", "5L57", "5S1", "4M", "4L57"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L15", "7L26", "6L14", "5L14", "4L14"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hydropump: ["8M", "8L51", "7L1", "7V", "6L1", "5L40", "4L40", "3L51"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["8L37", "7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + liquidation: ["8M"], + mimic: ["3T"], + muddywater: ["8M", "5S1"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "7V", "6M", "5M", "5S1", "4M", "3M"], + quash: ["7M", "6M", "5M"], + raindance: ["8M", "8L65", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8L1", "7L17", "7V", "6L17", "5L26", "4T", "4L26", "3L29", "3S0"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "8L1", "7V", "4M"], + yawn: ["8L1", "7L1", "6L1", "5L1", "4L1"], + }, + eventData: [ + {generation: 3, level: 50, abilities: ["swiftswim"], moves: ["leer", "watergun", "twister", "agility"], pokeball: "pokeball"}, + {generation: 5, level: 50, gender: "M", nature: "Timid", ivs: {hp: 31, atk: 17, def: 8, spa: 31, spd: 11, spe: 31}, abilities: ["swiftswim"], moves: ["dracometeor", "muddywater", "dragonpulse", "protect"], pokeball: "cherishball"}, + ], + }, + goldeen: { + learnset: { + acupressure: ["8E"], + agility: ["8M", "8L20", "8V", "7L29", "7V", "6L29", "5L47", "4L47", "3L52"], + aquaring: ["8L25", "7L21", "6L21", "5L27", "4L27"], + aquatail: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7E", "6E", "5E", "4E"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L13", "7V", "6L13", "5L21", "4L21", "3L24"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L24", "7V", "6L24", "5L31", "4L31", "3L29"], + furycutter: ["4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["8L15", "8V", "7L8", "7V", "6L8", "5L11", "4L11", "3L15"], + horndrill: ["8L50", "8V", "7L37", "7V", "6L37", "5L41", "4L41", "3L43"], + hydropump: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + knockoff: ["7T", "6T", "5T", "4T"], + megahorn: ["8M", "8L45", "8V", "7L45", "6L45", "5L57", "4L51", "3L57"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E", "4T", "4E"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + peck: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + poisonjab: ["8M", "8V", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + quickattack: ["8V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E"], + skullbash: ["7E", "7V", "6E", "5E"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8L40", "7L40", "6L40", "5L51"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L5", "8V", "7L5", "7V", "6L5", "5L7", "4L7", "3L10"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8L35", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L37", "4M", "4L37", "3M", "3L38"], + watergun: ["7V"], + waterpulse: ["8L10", "7T", "7L16", "6T", "6L16", "5L17", "5D", "4M", "4L17", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + whirlpool: ["8M", "4M"], + }, + encounters: [ + {generation: 1, level: 5}, + ], + }, + seaking: { + learnset: { + agility: ["8M", "8L20", "8V", "7L29", "7V", "6L29", "5L56", "4L56", "3L61"], + aquaring: ["8L25", "7L21", "6L21", "5L27", "4L27"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + endure: ["8M", "7V", "5D", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L13", "7V", "6L13", "5L21", "4L21", "3L24"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8V", "7L24", "7V", "6L24", "5L31", "4L31", "3L29"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["8L15", "8V", "7L8", "7V", "6L8", "5L11", "4L11", "3L15"], + horndrill: ["8L58", "8V", "7L40", "7V", "6L40", "5L47", "4L47", "3L49"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + knockoff: ["7T", "6T", "5T", "4T"], + megahorn: ["8M", "8L51", "8V", "7L1", "6L1", "5L72", "4L63", "3L69"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + peck: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["8M", "8V", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8V"], + quickattack: ["8V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T"], + skullbash: ["8V", "7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "5D", "4M", "3T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8L44", "7L46", "6L46", "5L63"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M"], + tailwhip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8L37", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L40", "4M", "4L40", "3M", "3L41"], + watergun: ["7V"], + waterpulse: ["8L1", "7T", "7L16", "6T", "6L16", "5L17", "5D", "4M", "4L17", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + whirlpool: ["8M", "4M"], + }, + encounters: [ + {generation: 1, level: 23}, + {generation: 2, level: 10}, + {generation: 3, level: 20}, + {generation: 4, level: 10}, + {generation: 6, level: 26, maxEggMoves: 1}, + {generation: 7, level: 10}, + ], + }, + staryu: { + learnset: { + attract: ["7V"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L28", "7L28", "6L28", "5L36", "4M"], + bubblebeam: ["8V", "7L18", "7V", "6L18", "5L28", "4L28", "3L28"], + camouflage: ["7L22", "6L15", "5L19", "4L19", "3L19"], + confide: ["7M", "6M"], + confuseray: ["8L8", "8V", "7L40", "6L40"], + cosmicpower: ["8M", "8L52", "7L49", "6L48", "5L55", "4L51", "3L42", "3S0"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "7L24", "6M", "6L24", "5M", "5L37", "4M", "4L37"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L56", "8V", "7L53", "7V", "6L52", "5L60", "4L55", "3L46", "3S0"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + lightscreen: ["8M", "8L32", "8V", "7M", "7L46", "7V", "6M", "6L33", "5M", "5L42", "4M", "4L42", "3M", "3L37", "3S0"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + minimize: ["8L16", "8V", "7L31", "7V", "6L25", "5L33", "4L33", "3L33", "3S0"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["8M", "8L36", "7L37", "6L37", "5L51", "4L46"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L24"], + psychic: ["8M", "8L40", "8V", "7M", "7L42", "7V", "6M", "6L42", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psywave: ["8V", "7L13", "7V", "6L13"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8L12", "7L7", "7V", "6L7", "5L10", "4L10", "3L10", "3S1"], + recover: ["8L48", "8V", "7L10", "7V", "6L10", "5L15", "4L15", "3L15", "3S1"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["7L35", "6L35", "5L46"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8L44", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L20", "8V", "7L16", "7V", "6L16", "5L24", "4T", "4L24", "3T", "3L24"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + teleport: ["8V", "7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + twister: ["4T"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L4", "8V", "7L4", "7V", "6L4", "5L6", "5D", "4L6", "3L6", "3S1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["minimize", "lightscreen", "cosmicpower", "hydropump"], pokeball: "pokeball"}, + {generation: 3, level: 18, nature: "Timid", ivs: {hp: 10, atk: 3, def: 22, spa: 24, spd: 3, spe: 18}, abilities: ["illuminate"], moves: ["harden", "watergun", "rapidspin", "recover"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + starmie: { + learnset: { + agility: ["8M"], + allyswitch: ["8M", "7T"], + attract: ["7V"], + avalanche: ["8M", "4M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L1", "4M"], + bubblebeam: ["7V"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L40", "7V", "6L22", "5L28", "4L28", "3L33"], + cosmicpower: ["8M", "8L1"], + curse: ["7V"], + dazzlinggleam: ["8M", "8V", "7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + endure: ["8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8V", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7V"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L1", "7L1", "6L1"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lightscreen: ["8M", "8L1", "8V", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + minimize: ["8L1"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["8M", "8L1"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L1"], + psychic: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["8V", "7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + recover: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spotlight: ["7L1"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8L1", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + tackle: ["8L1", "8V", "7V"], + takedown: ["7V"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8V", "7V"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + waterfall: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 41, moves: ["refresh", "waterfall", "icebeam", "recover"]}, + ], + }, + mimejr: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + barrier: ["7L1", "6L1", "5L1", "4L1"], + batonpass: ["8M", "8L4", "7L46", "6L46", "5L46", "4L46"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + calmmind: ["8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "7E", "6E", "5E", "4E"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E"], + confusion: ["8L12", "7L1", "6L1", "5L1", "4L1"], + copycat: ["8L1", "7L4", "6L4", "5L4", "4L4"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "8L44"], + doubleslap: ["7L11", "6L11", "5L15", "4L15"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["8M", "8L8", "7L18", "6L18", "5L11", "4L11"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fakeout: ["8E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["8M", "7E", "6E", "5E", "4E"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healingwish: ["7E", "6E", "5E", "4E"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypnosis: ["8E", "7E", "6E", "5E", "4E"], + icywind: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + infestation: ["7M", "6M"], + lightscreen: ["8M", "8L36", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + meditate: ["7L8", "6L8", "5L8", "4L8"], + mimic: ["8L32", "7L15", "7E", "6L15", "6E", "5L18", "5E", "4L18", "4E"], + mistyterrain: ["8M"], + mudslap: ["4T"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + pound: ["8L1", "7L1"], + powersplit: ["8E", "7E", "6E", "5E"], + protect: ["8M", "8L20", "7M", "6M", "5M", "4M"], + psybeam: ["8L28", "7L25", "6L25", "5L25", "4L25"], + psychic: ["8M", "8L48", "7M", "7L39", "6M", "6L39", "5M", "5L39", "4M", "4L39"], + psychicterrain: ["8M", "7E"], + psychup: ["7M", "6M", "5M", "4M", "4E"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + recycle: ["8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4M", "4L32"], + reflect: ["8M", "8L36", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["8L16", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L50"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + suckerpunch: ["8L40"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + teeterdance: ["8L52", "7E", "6E", "5E", "4E"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + tickle: ["8E", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["8M", "7T", "7L36", "7E", "6T", "6L36", "6E", "5T", "5L36", "5E", "4T", "4L36", "4E"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + wakeupslap: ["7E", "6E", "5E", "4E"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + }, + mrmime: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + batonpass: ["8M", "8L1", "7L46", "7V", "6L46", "5L46", "4L46", "3L47"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E"], + confusion: ["8L12", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], + copycat: ["8L1", "7L4", "6L4", "5L4", "4L4"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "8L44", "8V", "7M", "6M"], + doubleedge: ["7V", "3T"], + doubleslap: ["8V", "7L11", "7V", "6L11", "5L15", "4L15", "3L15"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V"], + encore: ["8M", "8L1", "8V", "7L18", "7V", "6L18", "5L11", "4L11", "3L25", "3S0"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8E", "7E", "6E", "5E", "4E", "3E"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["3S0"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + lightscreen: ["8M", "8L36", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L19"], + magicalleaf: ["8M", "7L1", "6L1", "5L1", "4L1", "3L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + meditate: ["8V", "7L8", "7V", "6L8", "5L8", "4L8", "3L12"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["8L32", "8V", "7L15", "7E", "7V", "6L15", "6E", "5L18", "5E", "4L18", "4E", "3T", "3E"], + mistyterrain: ["8M", "7L1", "6L1"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pound: ["8L1", "8V", "7L1"], + powersplit: ["8E", "7E", "6E", "5E"], + powerswap: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L28", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L29"], + psychic: ["8M", "8L48", "8V", "7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3M", "3L43", "3S0"], + psychicterrain: ["8M", "7E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["8V", "7L15", "7V", "6L15", "5L15"], + quickguard: ["8L1", "7L1", "6L1", "5L1"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["8L24", "7T", "7L32", "6T", "6L32", "5T", "5L32", "4M", "4L32", "3L33"], + reflect: ["8M", "8L36", "8V", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L19"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8L16", "7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43", "3L40"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L50", "7V", "6M", "6L50", "5M", "5L50", "4M", "4L50", "3M", "3L50"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "5D", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + storedpower: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3T", "3L8"], + suckerpunch: ["8L40"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + teeterdance: ["8L52", "7E", "6E", "5E", "5D", "4E"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T", "3S0"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + tickle: ["8E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "7L36", "7E", "6T", "6L36", "6E", "5T", "5L36", "5E", "4T", "4L36", "4E", "3L36", "3E"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M"], + wakeupslap: ["7E", "6E", "5E", "4E"], + wideguard: ["8L1", "7L1", "6L1", "5L1"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 42, abilities: ["soundproof"], moves: ["followme", "psychic", "encore", "thunderpunch"]}, + ], + encounters: [ + {generation: 1, level: 6}, + ], + }, + mrmimegalar: { + learnset: { + allyswitch: ["8M", "8L16"], + attract: ["8M"], + avalanche: ["8M"], + batonpass: ["8M", "8L1"], + blizzard: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confuseray: ["8E"], + confusion: ["8L12", "8S0"], + copycat: ["8L1", "8S0"], + dazzlinggleam: ["8M", "8L1"], + doublekick: ["8L24"], + drainpunch: ["8M"], + encore: ["8M", "8L1", "8S0"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + fakeout: ["8E"], + fling: ["8M"], + focusblast: ["8M"], + foulplay: ["8M"], + freezedry: ["8L44"], + futuresight: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + guardswap: ["8M"], + hail: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypnosis: ["8L32"], + icebeam: ["8M"], + icepunch: ["8M"], + iceshard: ["8L1", "8S0"], + iciclespear: ["8M"], + icywind: ["8M", "8L20"], + irondefense: ["8M"], + lightscreen: ["8M", "8L1"], + magicroom: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M"], + mimic: ["8L1"], + mirrorcoat: ["8L36"], + mistyterrain: ["8M", "8L1"], + nastyplot: ["8M"], + payback: ["8M"], + pound: ["8L1"], + powersplit: ["8E"], + powerswap: ["8M"], + protect: ["8M", "8L1"], + psybeam: ["8L28"], + psychic: ["8M", "8L48"], + psychicterrain: ["8M"], + psyshock: ["8M"], + raindance: ["8M"], + rapidspin: ["8L1"], + recycle: ["8L1"], + reflect: ["8M", "8L1"], + rest: ["8M"], + roleplay: ["8L1"], + round: ["8M"], + safeguard: ["8M", "8L1"], + screech: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stompingtantrum: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L40"], + sunnyday: ["8M"], + taunt: ["8M"], + teeterdance: ["8L52"], + thief: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + tickle: ["8E"], + trick: ["8M"], + trickroom: ["8M"], + tripleaxel: ["8T"], + uproar: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["copycat", "encore", "iceshard", "confusion"], pokeball: "cherishball"}, + ], + }, + mrrime: { + learnset: { + afteryou: ["8L1"], + allyswitch: ["8M", "8L16"], + attract: ["8M"], + avalanche: ["8M"], + batonpass: ["8M", "8L1"], + blizzard: ["8M"], + block: ["8L1"], + bodyslam: ["8M"], + brickbreak: ["8M"], + calmmind: ["8M"], + charm: ["8M"], + confusion: ["8L12"], + copycat: ["8L1"], + dazzlinggleam: ["8M", "8L1"], + doublekick: ["8L24"], + drainpunch: ["8M"], + encore: ["8M", "8L1"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + faketears: ["8M", "8L1"], + fling: ["8M"], + focusblast: ["8M"], + foulplay: ["8M"], + freezedry: ["8L44"], + futuresight: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + guardswap: ["8M"], + hail: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypnosis: ["8L32"], + icebeam: ["8M"], + icepunch: ["8M"], + iceshard: ["8L1"], + iciclespear: ["8M"], + icywind: ["8M", "8L20"], + irondefense: ["8M"], + lightscreen: ["8M", "8L1"], + magicroom: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M"], + mimic: ["8L1"], + mirrorcoat: ["8L36"], + mistyterrain: ["8M", "8L1"], + nastyplot: ["8M"], + payback: ["8M"], + pound: ["8L1"], + powerswap: ["8M"], + protect: ["8M", "8L1"], + psybeam: ["8L28"], + psychic: ["8M", "8L48"], + psychicterrain: ["8M"], + psyshock: ["8M"], + raindance: ["8M"], + rapidspin: ["8L1"], + recycle: ["8L1"], + reflect: ["8M", "8L1"], + rest: ["8M"], + roleplay: ["8L1"], + round: ["8M"], + safeguard: ["8M", "8L1"], + screech: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + slackoff: ["8L1"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stompingtantrum: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L40"], + sunnyday: ["8M"], + taunt: ["8M"], + teeterdance: ["8L52"], + thief: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + tripleaxel: ["8T"], + uproar: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + scyther: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L32", "8M", "8L32", "8V", "7L17", "7V", "6L17", "5L17", "5S2", "4L17", "3L21"], + aircutter: ["9M"], + airslash: ["9M", "9L36", "8M", "8L36", "8V", "7L50", "6L50", "5L53", "4L53"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + bide: ["7V"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "8M", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defog: ["9E", "8E", "7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doublehit: ["9L20", "8L20", "7L49", "6L49", "5L49", "4L49"], + doubleteam: ["9L16", "8L16", "8V", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L41"], + dualwingbeat: ["8T"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L8", "8M", "8L8", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L13", "3L16"], + feint: ["9E", "8E", "8V", "7L61", "6L61", "5L61", "4L61"], + focusenergy: ["9L28", "8M", "8L28", "8V", "7L5", "7V", "6L5", "5L5", "4L5", "3L6", "3S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9L4", "8L4", "7L25", "7V", "6L25", "5L25", "5S2", "4T", "4L25", "3T", "3L46"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["8L44", "7T"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + mimic: ["7V", "3T"], + morningsun: ["3S1"], + naturalgift: ["4M"], + nightslash: ["9E", "8E", "7L45", "7E", "6L45", "6E", "5L45", "5E", "4L45", "4E"], + ominouswind: ["4T"], + pounce: ["9M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + pursuit: ["7L9", "7V", "6L9", "5L9", "4L9", "3L11"], + quickattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + quickguard: ["9E", "8E", "7E", "6E"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["8V", "7L33", "7E", "7V", "6L33", "6E", "5L33", "5E", "4L33", "4E", "3E", "3S1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E", "3S1"], + skullbash: ["7V"], + slash: ["9L24", "8L24", "8V", "7L29", "7V", "6L29", "5L29", "5S2", "4L29", "3L31", "3S1"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L44", "8M", "8L48", "8V", "7M", "7L57", "7V", "6M", "6L57", "5M", "5L57", "4M", "4L57", "3T", "3L36"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["7L1", "6L1", "5L1", "4L1"], + wingattack: ["9L12", "8L12", "8V", "7L21", "7V", "6L21", "5L21", "5S2", "4L21", "3L26"], + xscissor: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["swarm"], moves: ["quickattack", "leer", "focusenergy"], pokeball: "pokeball"}, + {generation: 3, level: 40, abilities: ["swarm"], moves: ["morningsun", "razorwind", "silverwind", "slash"]}, + {generation: 5, level: 30, moves: ["agility", "wingattack", "furycutter", "slash"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 1, level: 25}, + ], + }, + scizor: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "6S5", "5M", "4M", "3M"], + agility: ["9M", "9L1", "8M", "8L1", "7L17", "7V", "6L17", "6S5", "6S6", "5L17", "4L17", "4S1", "3L21"], + aircutter: ["9M"], + airslash: ["9M", "9L1", "8M", "8L1"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bugbite: ["7T", "6T", "5T", "5S2", "4T"], + bugbuzz: ["9M", "8M"], + bulletpunch: ["9L0", "8L0", "7L1", "6L1", "6S7", "5L1", "5S2", "4L1"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doublehit: ["9L20", "8L20", "7L49", "6L49", "6S4", "5L49", "4L49"], + doubleteam: ["9L16", "8L16", "7M", "7V", "6M", "5M", "4M", "3M", "3L41"], + dualwingbeat: ["8T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L13", "7V", "6M", "6L13", "6S5", "6S6", "5M", "5L13", "4M", "4L13", "3L16"], + feint: ["7L1", "6L1", "5L61", "4L61"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L28", "8M", "8L28", "7L5", "7V", "6L5", "5L5", "5S3", "4L5", "3L6"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9L1", "8L1", "7L25", "7V", "6L25", "6S5", "6S6", "5L25", "4T", "4L25", "3T", "3L46", "3S0"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "9L32", "8M", "8L32", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37", "4S1", "3L41"], + ironhead: ["9M", "9L36", "8M", "8L36", "7T", "7L50", "6T", "6L50", "6S4", "5T", "5L53", "4T", "4L53"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["8L44", "7T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S3", "4L1", "3L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + metalclaw: ["9M", "9L12", "8L12", "7L21", "7V", "6L21", "6S6", "5L21", "4L21", "3L26", "3S0"], + mimic: ["3T"], + naturalgift: ["4M"], + nightslash: ["7L45", "6L45", "6S4", "5L45", "4L45"], + ominouswind: ["4T"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + pursuit: ["7L9", "7V", "6L9", "5L9", "5S3", "4L9", "3L11"], + quickattack: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7L33", "6L33", "5L33", "4L33"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "8M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "6S7", "5T", "5S2", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["4M"], + slash: ["9L24", "8L24", "7L29", "7V", "6L29", "5L29", "4L29", "3L31", "3S0"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelbeam: ["9M", "8T"], + steelwing: ["8M", "7M", "7V", "6M", "5S3", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "9L44", "8M", "8L48", "7M", "7L57", "7V", "6M", "6L57", "6S7", "5M", "5L57", "5S2", "4M", "4L57", "4S1", "3T", "3L36", "3S0"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "6S7", "5M", "4M"], + venoshock: ["8M", "7M", "6M", "5M"], + wingattack: ["9L1", "8L1"], + xscissor: ["9M", "9L40", "8M", "8L40", "7M", "7L41", "6M", "6L41", "6S4", "5M", "5L41", "4M", "4L41", "4S1"], + }, + eventData: [ + {generation: 3, level: 50, gender: "M", abilities: ["swarm"], moves: ["furycutter", "metalclaw", "swordsdance", "slash"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Adamant", abilities: ["swarm"], moves: ["xscissor", "swordsdance", "irondefense", "agility"], pokeball: "cherishball"}, + {generation: 5, level: 100, gender: "M", abilities: ["technician"], moves: ["bulletpunch", "bugbite", "roost", "swordsdance"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "focusenergy", "pursuit", "steelwing"]}, + {generation: 6, level: 50, gender: "M", moves: ["xscissor", "nightslash", "doublehit", "ironhead"], pokeball: "cherishball"}, + {generation: 6, level: 25, nature: "Adamant", abilities: ["technician"], moves: ["aerialace", "falseswipe", "agility", "furycutter"], pokeball: "cherishball"}, + {generation: 6, level: 25, moves: ["metalclaw", "falseswipe", "agility", "furycutter"], pokeball: "cherishball"}, + {generation: 6, level: 50, abilities: ["technician"], moves: ["bulletpunch", "swordsdance", "roost", "uturn"], pokeball: "cherishball"}, + ], + }, + kleavor: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L32"], + aircutter: ["9M"], + airslash: ["9M"], + batonpass: ["9M"], + brickbreak: ["9M"], + bugbuzz: ["9M"], + closecombat: ["9M"], + doublehit: ["9L20"], + doubleteam: ["9L16"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M", "9L8"], + focusenergy: ["9L28"], + furycutter: ["9L4"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + leer: ["9L1"], + lightscreen: ["9M"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9L1"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L36"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + slash: ["9L24"], + sleeptalk: ["9M"], + smackdown: ["9L12"], + stealthrock: ["9M"], + stoneaxe: ["9L0"], + stoneedge: ["9M"], + strugglebug: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M", "9L44"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + xscissor: ["9M", "9L40"], + }, + }, + smoochum: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + auroraveil: ["7M"], + avalanche: ["8M", "7L35", "6L35", "5L35", "4M", "4L31"], + blizzard: ["8M", "8L48", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L48", "4M", "4L45", "3M", "3L57"], + bodyslam: ["8M", "3T"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["7E", "6E", "5E", "5D", "4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L12", "7L15", "7V", "6L15", "5L15", "4L15", "3L21"], + copycat: ["8L8", "7L41", "6L41", "5L41", "4L38"], + counter: ["3T"], + covet: ["8L16", "7T", "6T", "5T"], + curse: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8E", "7E", "6E", "5E", "4E", "3E"], + faketears: ["8M", "8L24", "7L28", "6L28", "5L28", "4L25", "3L37"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + healbell: ["7T", "6T", "5T", "4T"], + heartstamp: ["7L21", "6L21", "5L21"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8L28", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lick: ["8L1", "7L5", "7V", "6L5", "5L5", "4L5", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L31", "6L31", "5L31", "4L28"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + meanlook: ["8L40", "7L25", "7V", "6L25", "5L25", "4L21", "3L33"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "3T"], + mimic: ["3T"], + miracleeye: ["7E", "6E", "5E", "4E"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["8L44", "7L45", "7V", "6L45", "5L45", "4L41", "3L49"], + pound: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + powdersnow: ["8L4", "7L11", "7V", "6L11", "5L11", "4L11", "3L13"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L32", "7M", "7L38", "7V", "6M", "6L38", "5M", "5L38", "4M", "4L35", "3M", "3L45"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["8E", "7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L20", "7L18", "7V", "6L18", "5L18", "4L18", "3L25"], + skillswap: ["8M", "7T", "6T", "5T", "5D", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L36", "7L8", "7V", "6L8", "5L8", "5D", "4L8", "3L9"], + sweetscent: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + wakeupslap: ["7E", "6E", "5E"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8E", "7E", "6E", "5E", "4E", "3E"], + wonderroom: ["8M", "7T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + jynx: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + auroraveil: ["7M"], + avalanche: ["8M", "7L39", "6L39", "5L39", "4M", "4L33"], + bide: ["7V"], + blizzard: ["8M", "8L58", "8V", "7M", "7L60", "7V", "6M", "6L60", "5M", "5L60", "4M", "4L55", "3M", "3L67"], + bodyslam: ["8M", "8V", "7L44", "7V", "6L44", "5L44", "4L39", "3T", "3L51"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + calmmind: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L12", "8V"], + copycat: ["8L1"], + counter: ["7V", "3T"], + covet: ["8L16", "7T", "6T", "5T"], + curse: ["7V"], + doubleedge: ["7V", "3T"], + doubleslap: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L21"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M", "7L1", "6L1"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M", "8L24", "7L28", "6L28", "5L28", "4L25", "3L41"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heartstamp: ["7L21", "6L21", "5L21"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8L28", "8V", "7T", "7L18", "7V", "6T", "6L18", "5T", "5L18", "4T", "4L18", "3T", "3L25"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + lick: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lovelykiss: ["8L40", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + meanlook: ["8L46", "7L25", "7V", "6L25", "5L25", "4L21", "3L35"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["8L52", "7L1", "7V", "6L1", "5L55", "4L49", "3L57"], + pound: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + powdersnow: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L34", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8V"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L20"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["8M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L1"], + sweetscent: ["7V"], + takedown: ["7V"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["7V"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + uproar: ["8M"], + wakeupslap: ["7L33", "6L33", "5L33", "4L28"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["8M", "7T"], + wringout: ["7L49", "6L49", "5L49", "4L44"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 20, nature: "Mild", ivs: {hp: 18, atk: 17, def: 18, spa: 22, spd: 25, spe: 21}, abilities: ["oblivious"], pokeball: "pokeball"}, + {generation: 4, level: 22}, + {generation: 7, level: 9}, + ], + }, + elekid: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charge: ["8L8"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E", "3S0"], + curse: ["7V"], + detect: ["7V"], + discharge: ["8L32", "7L33", "6L33", "5L41", "4L34"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + electroball: ["8M", "7L22", "6L22", "5L31"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8E", "7E", "6E", "5E", "4E"], + firepunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hammerarm: ["8E", "7E", "6E", "5E"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E", "3S0"], + karatechop: ["7E", "7V", "6E", "5E", "4E", "3E"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "8L44", "7M", "7L26", "7V", "6M", "6L26", "5M", "5L26", "4M", "4L25", "3M", "3L17"], + lowkick: ["8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L11", "4T", "4L10"], + magnetrise: ["7T", "6T", "5T", "5D", "4T"], + meditate: ["7E", "7V", "6E", "5E", "4E", "3E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollingkick: ["7E", "7V", "6E", "5E", "4E", "3E"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L24", "7L36", "7V", "6L36", "5L51", "4L43", "3L33"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "5L21", "4M", "4L19", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L12", "7L12", "7V", "6L12", "5L16", "4T", "4L16", "3T", "3L25"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L56", "4M", "4L46", "3M", "3L49"], + thunderbolt: ["8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L46", "4M", "4L37", "3M", "3L41"], + thunderpunch: ["8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L36", "4T", "4L28", "3T", "3L9", "3S0"], + thundershock: ["8L4", "7L5", "6L5", "5L6", "5D", "4L7"], + thunderwave: ["8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 20, moves: ["icepunch", "firepunch", "thunderpunch", "crosschop"], pokeball: "pokeball"}, + ], + }, + electabuzz: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charge: ["8L1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["3S1"], + curse: ["7V"], + detect: ["7V"], + discharge: ["8L34", "7L36", "6L36", "5L44", "4L37"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + electroball: ["8M", "7L22", "6L22", "5L32"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["3S1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "8L64", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lightscreen: ["8M", "8L52", "8V", "7M", "7L26", "7V", "6M", "6L26", "6S4", "5M", "5L26", "5S3", "4M", "4L25", "4S2", "3M", "3L17"], + lowkick: ["8M", "8L40", "8V", "7T", "7L8", "6T", "6L8", "6S4", "5T", "5L11", "5S3", "4T", "4L10", "4S2"], + lowsweep: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + quickattack: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L24", "8V", "7L42", "7V", "6L42", "5L56", "4L52", "3L36"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "6S4", "5L21", "5S3", "4M", "4L19", "4S2", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L12", "8V", "7L12", "7V", "6L12", "5L16", "5S3", "4T", "4L16", "3T", "3L25"], + takedown: ["7V"], + taunt: ["8V"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L62", "4M", "4L58", "3M", "3L58"], + thunderbolt: ["8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L50", "4M", "4L43", "3M", "3L47", "3S1"], + thunderpunch: ["8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L38", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], + thundershock: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1"], + thunderwave: ["8M", "8L20", "8V", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "3T", "3S1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["quickattack", "leer", "thunderpunch"], pokeball: "pokeball"}, + {generation: 3, level: 43, moves: ["followme", "crosschop", "thunderwave", "thunderbolt"]}, + {generation: 4, level: 30, gender: "M", nature: "Naughty", moves: ["lowkick", "shockwave", "lightscreen", "thunderpunch"], pokeball: "pokeball"}, + {generation: 5, level: 30, moves: ["lowkick", "swift", "shockwave", "lightscreen"], pokeball: "cherishball"}, + {generation: 6, level: 30, gender: "M", isHidden: true, moves: ["lowkick", "shockwave", "lightscreen", "thunderpunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 33}, + {generation: 2, level: 15}, + {generation: 4, level: 15}, + {generation: 7, level: 25}, + ], + }, + electivire: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charge: ["8L1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crosschop: ["4S0"], + darkestlariat: ["8M"], + dig: ["8M", "6M", "5M", "4M"], + discharge: ["8L34", "7L36", "6L36", "5L44", "4L37", "4S1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "4S0"], + electricterrain: ["8M", "7L1", "6L1"], + electroball: ["8M", "7L22", "6L22", "5L32"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L68", "4M", "4L67"], + headbutt: ["4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "4S0"], + iondeluge: ["7L1", "6L1"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["8M", "8L52", "7M", "7L26", "6M", "6L26", "5M", "5L26", "4M", "4L25", "4S1"], + lowkick: ["8M", "8L40", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + lowsweep: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L24", "7L42", "6L42", "5L56", "4L52"], + secretpower: ["6M", "4M"], + shockwave: ["8L16", "7T", "7L15", "6T", "6L15", "5L21", "4M", "4L19"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "8L12", "7L12", "6L12", "5L16", "4T", "4L16"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L62", "4M", "4L58"], + thunderbolt: ["8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L50", "4M", "4L43", "4S1"], + thunderpunch: ["8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L38", "4T", "4L28", "4S0", "4S1"], + thundershock: ["8L1", "7L1", "6L1", "5L1", "4L1"], + thunderwave: ["8M", "8L20", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M"], + voltswitch: ["8M", "7M", "6M", "5M"], + weatherball: ["8M"], + wildcharge: ["8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Adamant", moves: ["thunderpunch", "icepunch", "crosschop", "earthquake"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Serious", moves: ["lightscreen", "thunderpunch", "discharge", "thunderbolt"], pokeball: "cherishball"}, + ], + }, + magby: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "7V", "6E", "5E", "4E", "3E"], + belch: ["8E", "7E", "6E"], + bellydrum: ["7E", "6E", "5E", "4E"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + clearsmog: ["8L12", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8L20", "7L26", "7V", "6L26", "5L25", "4L25", "3L43"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + ember: ["8L4", "7L5", "7V", "6L5", "5L7", "5D", "4L7", "3L1"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L12", "6L12", "5L16", "4L16"], + fireblast: ["8M", "8L48", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L49", "4M", "4L46", "3M", "3L49"], + firepunch: ["8M", "8L28", "7T", "7L29", "7V", "6T", "6L29", "5T", "5L34", "4T", "4L28", "3T", "3L19"], + firespin: ["8M", "7L15", "6L15", "5L19", "4L19"], + flameburst: ["7L22", "6L22", "5L28"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L43", "4M", "4L37", "3M", "3L37"], + flamewheel: ["8L16"], + flareblitz: ["8M", "7E", "6E", "5E", "4E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "7E", "6E", "5E"], + focuspunch: ["8E", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "5D", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + karatechop: ["7E", "7V", "6E", "5E", "4E", "3E"], + lavaplume: ["8L32", "7L33", "6L33", "5L37", "4L34"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L7"], + lowkick: ["8M", "8L36"], + machpunch: ["8E", "7E", "6E", "5E", "4E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M", "7E", "6E"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L24"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + smokescreen: ["8L8", "7L8", "7V", "6L8", "5L10", "4L10", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L44", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L46", "4M", "4L43", "3M", "3L31"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3T", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + magmar: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + burningjealousy: ["8T"], + captivate: ["4M"], + clearsmog: ["8L12", "8V", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8L20", "8V", "7L26", "7V", "6L26", "6S4", "5L26", "5S3", "4L25", "4S2", "3L49"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + crosschop: ["3S1"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["7V", "3T"], + ember: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L12", "6L12", "5L16", "5S3", "4L16"], + fireblast: ["8M", "8L58", "8V", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L62", "4M", "4L54", "3M", "3L57", "3S1"], + firepunch: ["8M", "8L28", "8V", "7T", "7L29", "7V", "6T", "6L29", "6S4", "5T", "5L38", "4T", "4L28", "4S2", "3T", "3L1", "3S0"], + firespin: ["8M", "8V", "7L15", "6L15", "6S4", "5L21", "5S3", "4L19", "4S2"], + flameburst: ["7L22", "6L22", "5L32"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L46", "8V", "7M", "7L49", "7V", "6M", "6L49", "5M", "5L50", "4M", "4L41", "3M", "3L41"], + flamewheel: ["8L16"], + flareblitz: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["3S1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L64", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lavaplume: ["8L34", "7L36", "6L36", "5L44", "4L36"], + leer: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lowkick: ["8M", "8L40", "8V", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["7V"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L24"], + scorchingsands: ["8T"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + smokescreen: ["8L1", "8V", "7L8", "7V", "6L8", "6S4", "5L11", "5S3", "4L10", "4S2", "3L25"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L52", "7M", "7L42", "7V", "6M", "6L42", "5M", "5L56", "4M", "4L49", "3M", "3L33"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + taunt: ["8V"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T", "3S1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + willowisp: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["leer", "smog", "firepunch", "ember"], pokeball: "pokeball"}, + {generation: 3, level: 36, moves: ["followme", "fireblast", "crosschop", "thunderpunch"]}, + {generation: 4, level: 30, gender: "M", nature: "Quiet", moves: ["smokescreen", "firespin", "confuseray", "firepunch"], pokeball: "pokeball"}, + {generation: 5, level: 30, moves: ["smokescreen", "feintattack", "firespin", "confuseray"], pokeball: "cherishball"}, + {generation: 6, level: 30, gender: "M", isHidden: true, moves: ["smokescreen", "firespin", "confuseray", "firepunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 34}, + {generation: 2, level: 14}, + {generation: 4, level: 14}, + {generation: 7, level: 16}, + ], + }, + magmortar: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + captivate: ["4M"], + clearsmog: ["8L12", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8L20", "7L26", "6L26", "5L26", "4L25", "4S1"], + covet: ["7T", "6T", "5T"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + ember: ["8L1", "7L1", "6L1", "5L1", "4L1"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L12", "6L12", "5L16", "4L16"], + fireblast: ["8M", "8L58", "7M", "7L55", "6M", "6L55", "5M", "5L62", "4M", "4L58"], + firepunch: ["8M", "8L28", "7T", "7L29", "6T", "6L29", "5T", "5L38", "4T", "4L28", "4S1"], + firespin: ["8M", "7L15", "6L15", "5L21", "4L19"], + flameburst: ["7L22", "6L22", "5L32"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L46", "7M", "7L49", "6M", "6L49", "5M", "5L50", "4M", "4L43", "4S0", "4S1"], + flamewheel: ["8L16"], + flareblitz: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "8L64", "7M", "7L62", "6M", "6L62", "5M", "5L68", "4M", "4L67", "4S0"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + lavaplume: ["8L34", "7L36", "6L36", "5L44", "4L37", "4S1"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["8M", "8L40", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["4T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M", "4S0"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L24"], + scorchingsands: ["8T"], + screech: ["8M"], + secretpower: ["6M", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smog: ["8L1", "7L1", "6L1", "5L1", "4L1"], + smokescreen: ["8L1", "7L1", "6L1", "5L1", "4L1"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "4S0"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "8L52", "7M", "7L42", "6M", "6L42", "5M", "5L56", "4M", "4L52"], + swagger: ["7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 50, gender: "F", nature: "Modest", moves: ["flamethrower", "psychic", "hyperbeam", "solarbeam"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Hardy", moves: ["confuseray", "firepunch", "lavaplume", "flamethrower"], pokeball: "cherishball"}, + ], + }, + pinsir: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["8L8", "8V", "7T", "7L4", "7V", "6T", "6L4", "5T", "5L4", "4L4", "3L7"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "7L26", "6M", "6L18", "5M", "5L21", "4M", "4L21", "3M", "3L31"], + brutalswing: ["8M", "7M"], + bugbite: ["8L16", "7T", "7E", "6T", "6E", "5T", "5E"], + bulkup: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M", "7E", "6E", "5E", "5D", "4E"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["7V", "3T"], + doublehit: ["8L24", "7L22", "6L22"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "8V", "7M", "6M", "6S1", "6S2", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M", "4E", "3E", "3S0"], + feint: ["8E", "7E", "6E", "6S2", "5E", "4E"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + flail: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L4", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + guillotine: ["8L48", "8V", "7L50", "7V", "6L47", "5L47", "4L47", "3L37", "3S0"], + harden: ["8L1", "8V", "7L11", "7V", "6L11", "5L13", "4L13", "3L19"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["8M", "8V", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + mefirst: ["7E", "6E", "5E", "5D"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + outrage: ["8V"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["8E", "7E", "6E", "6S2", "5E", "4E"], + rage: ["7V"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "6S1", "5M", "4M", "3M"], + revenge: ["8M", "7L15", "6L15", "5L18", "4L18", "3L25"], + reversal: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8L12", "8V", "7L8", "7V", "6L8", "5L8", "4L8", "3T", "3L13"], + slash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "7M", "6M", "6S1", "5M", "4M"], + stormthrow: ["8L20", "7L36", "6L33", "5L33"], + strength: ["8L36", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + submission: ["8L44", "8V", "7L33", "7V", "6L26", "5L42", "4L42", "3L43", "3S0"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L52", "8V", "7T", "7L47", "7E", "6T", "6L43", "6E", "5T", "5L52", "5E", "4T", "4L52"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8L40", "8V", "7M", "7L40", "7V", "6M", "6L40", "6S2", "5M", "5L38", "4M", "4L38", "3T", "3L49"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["8E", "8V", "7L43", "6L36", "5L35", "4L35"], + throatchop: ["8M", "7T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + visegrip: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + vitalthrow: ["8L28", "7L18", "6L18", "5L25", "4L25"], + xscissor: ["8M", "8L32", "8V", "7M", "7L29", "6M", "6L29", "6S1", "5M", "5L30", "4M", "4L30"], + }, + eventData: [ + {generation: 3, level: 35, abilities: ["hypercutter"], moves: ["helpinghand", "guillotine", "falseswipe", "submission"]}, + {generation: 6, level: 50, gender: "F", nature: "Adamant", moves: ["xscissor", "earthquake", "stoneedge", "return"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Jolly", isHidden: true, moves: ["earthquake", "swordsdance", "feint", "quickattack"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 1, level: 20}, + ], + }, + tauros: { + learnset: { + assurance: ["9L15", "8M", "8L15"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T", "3S2"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + curse: ["9E", "7V"], + dig: ["9M"], + doubleedge: ["9L55", "8L55", "8V", "7L63", "7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + endeavor: ["9E", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + fissure: ["7V"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "9L60", "8M", "8L60", "7M", "7L63", "6M", "6L63", "5M", "5L63", "4M", "4L55"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hornattack: ["9L20", "8L20", "8V", "7L8", "7V", "6L8", "5L8", "4L8", "3L8", "3S0", "3S1"], + horndrill: ["7V"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + lashout: ["8T"], + leer: ["8V", "7V"], + megahorn: ["8M"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + payback: ["9L10", "8M", "8L10", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7L15", "7V", "6L15", "5L15", "4L15", "3L19", "3S0"], + rage: ["8V", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3L4", "3S0", "3S1"], + ragingbull: ["9L35"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S2"], + rest: ["9M", "9L40", "8M", "8L40", "8V", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "4L19", "3M", "3L34"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockclimb: ["5D", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L25", "8M", "8L25", "7L11", "7V", "6L11", "5L11", "4L11", "3L13", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M", "8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stomp: ["7V"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["9L45", "8L45", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L48", "4M", "4L41", "3T", "3L26"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S1"], + tailwhip: ["9L1", "8L1", "8V", "7L3", "7V", "6L3", "5L3", "4L3", "3L1", "3S1", "3S2"], + takedown: ["9M", "8L35", "8V", "7L35", "7V", "6L41", "5L41", "4L35", "3L53"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50", "8L50", "8V", "7L50", "7V", "6L50", "5L55", "4L48", "3L43"], + throatchop: ["8M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["9L5", "8M", "8L5", "7M", "7L29", "6L29", "5M", "5L29"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "9L30", "8M", "8L30", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L29"], + }, + eventData: [ + {generation: 3, level: 25, nature: "Docile", ivs: {hp: 14, atk: 19, def: 12, spa: 17, spd: 5, spe: 26}, abilities: ["intimidate"], moves: ["rage", "hornattack", "scaryface", "pursuit"], pokeball: "safariball"}, + {generation: 3, level: 10, abilities: ["intimidate"], moves: ["tackle", "tailwhip", "rage", "hornattack"], pokeball: "pokeball"}, + {generation: 3, level: 46, abilities: ["intimidate"], moves: ["refresh", "earthquake", "tailwhip", "bodyslam"]}, + ], + encounters: [ + {generation: 1, level: 21}, + ], + }, + taurospaldeacombat: { + learnset: { + assurance: ["9L15"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M", "9L60"], + curse: ["9E"], + dig: ["9M"], + doubleedge: ["9L55"], + doublekick: ["9L10"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L20"], + hyperbeam: ["9M"], + ironhead: ["9M"], + outrage: ["9M"], + protect: ["9M"], + ragingbull: ["9L35"], + raindance: ["9M"], + rest: ["9M", "9L40"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L25"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + swagger: ["9L45"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50"], + trailblaze: ["9M"], + wildcharge: ["9M"], + workup: ["9L5"], + zenheadbutt: ["9M", "9L30"], + }, + }, + taurospaldeablaze: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + closecombat: ["9M", "9L60"], + curse: ["9E"], + dig: ["9M"], + doublekick: ["9L10"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M", "9L15"], + flamethrower: ["9M"], + flareblitz: ["9M", "9L55"], + gigaimpact: ["9M"], + headbutt: ["9L20"], + hyperbeam: ["9M"], + ironhead: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + ragingbull: ["9L35"], + raindance: ["9M"], + rest: ["9M", "9L40"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L25"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L45"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50"], + trailblaze: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + workup: ["9L5"], + zenheadbutt: ["9M", "9L30"], + }, + }, + taurospaldeaaqua: { + learnset: { + aquajet: ["9L15"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L60"], + curse: ["9E"], + dig: ["9M"], + doublekick: ["9L10"], + drillrun: ["9M"], + earthquake: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L20"], + hydropump: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + liquidation: ["9M"], + outrage: ["9M"], + protect: ["9M"], + ragingbull: ["9L35"], + raindance: ["9M"], + rest: ["9M", "9L40"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L25"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swagger: ["9L45"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L50"], + trailblaze: ["9M"], + waterpulse: ["9M"], + wavecrash: ["9L55"], + wildcharge: ["9M"], + workup: ["9L5"], + zenheadbutt: ["9M", "9L30"], + }, + }, + magikarp: { + learnset: { + bounce: ["8M", "7T", "7S7", "6T", "5T", "5D", "5S5", "4T"], + celebrate: ["6S6"], + flail: ["9L25", "8L25", "7L30", "7V", "6L30", "5L30", "5S5", "4L30", "3L30"], + happyhour: ["6S6"], + hydropump: ["8M", "5S5"], + splash: ["9L1", "8L1", "8V", "7L1", "7V", "7S7", "6L1", "6S6", "5L1", "5D", "5S5", "4L1", "4S0", "4S1", "4S2", "4S3", "4S4", "3L1"], + tackle: ["9L15", "8L15", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L15"], + }, + eventData: [ + {generation: 4, level: 5, gender: "M", nature: "Relaxed", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 6, gender: "F", nature: "Rash", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 7, gender: "F", nature: "Hardy", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 5, gender: "F", nature: "Lonely", moves: ["splash"], pokeball: "pokeball"}, + {generation: 4, level: 4, gender: "M", nature: "Modest", moves: ["splash"], pokeball: "pokeball"}, + {generation: 5, level: 99, shiny: true, gender: "M", moves: ["flail", "hydropump", "bounce", "splash"], pokeball: "cherishball"}, + {generation: 6, level: 1, shiny: 1, moves: ["splash", "celebrate", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 19, shiny: true, moves: ["splash", "bounce"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 5}, + ], + }, + gyarados: { + learnset: { + aquatail: ["9L32", "8L32", "7T", "7L30", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bide: ["7V"], + bind: ["8V"], + bite: ["9L0", "8L0", "8V", "7L1", "7V", "6L20", "6S1", "5L20", "4L20", "3L20"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["9L12", "8M", "8L12", "4M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L24", "8M", "8L24", "8V", "7L39", "6L41"], + curse: ["7V"], + darkpulse: ["9M", "8M", "8V", "7M", "6M", "5T", "4M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragondance: ["9M", "9L36", "8M", "8L36", "7L45", "6L44", "6S0", "5L44", "4L44", "3L50"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L36", "7V", "6L23", "5L23", "4L23", "3L25"], + dragontail: ["9M", "8V", "7M", "6M", "5M"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "6S0", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L44", "8M", "8L44", "7L48"], + hydropump: ["9M", "9L40", "8M", "8L40", "8V", "7L42", "7V", "6L41", "5L41", "4L41", "3L40"], + hyperbeam: ["9M", "9L52", "8M", "8L52", "8V", "7M", "7L54", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L55"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["9M", "9L8", "8M", "8L8", "7L27", "6L32", "6S0", "6S1", "5L32", "4L32"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "6S1", "5T", "4T"], + irontail: ["8M", "8V", "7T", "6T", "5T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "8V", "7L21", "7V", "6L26", "5L26", "4L26", "3L30"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + powerwhip: ["8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["8V", "7V"], + raindance: ["9M", "9L28", "8M", "8L28", "7M", "7L51", "7V", "6M", "6L38", "5M", "5L38", "4M", "4L38", "3M", "3L45"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L16", "8M", "8L16", "7L33"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + splash: ["9L1", "8L1"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1", "7V"], + takedown: ["9M", "7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L48", "8L48", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "7L24", "7V", "6L29", "5L29", "4T", "4L29", "3L35"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "9L21", "8M", "8L21", "8V", "7M", "7V", "6M", "6S0", "6S1", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["9L4", "8M", "8L4", "7V", "4M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["waterfall", "earthquake", "icefang", "dragondance"], pokeball: "cherishball"}, + {generation: 6, level: 20, shiny: true, moves: ["waterfall", "bite", "icefang", "ironhead"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 15}, + {generation: 3, level: 5}, + {generation: 4, level: 10}, + {generation: 5, level: 1}, + {generation: 7, level: 10}, + ], + }, + lapras: { + learnset: { + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["7V"], + avalanche: ["8M", "7E", "6E", "5E", "4M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L40", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3T", "3L13"], + brine: ["8M", "8L35", "7L37", "6L37", "5L37", "4M", "4L37"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confuseray: ["8L25", "8V", "7L7", "7V", "6L7", "5L7", "5D", "4L7", "3L19"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragondance: ["8M", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dragonrage: ["7V"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + drillrun: ["8M", "8V", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fissure: ["8E", "7E", "6E", "5E", "4E"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + freezedry: ["8E", "7E", "6E"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "6E", "5E"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T", "3S0"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + hydropump: ["8M", "8L55", "8V", "7L47", "7V", "6L47", "5L49", "4L49", "3L49", "3S0"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "8L45", "8V", "7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], + iceshard: ["8L20", "8V", "7L10", "6L10", "5L10", "4L10"], + icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lifedew: ["8L15"], + liquidation: ["8M"], + megahorn: ["8M", "8V"], + mimic: ["7V", "3T"], + mist: ["8L10", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3L7"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + perishsong: ["8L60", "7L27", "7V", "6L27", "5L27", "4L27", "3L25"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "8L50", "7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L37", "3S0"], + reflect: ["8V", "7V"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L65", "7L50", "6L50", "5L55", "4L55", "3L55"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8V", "7V"], + sparklingaria: ["8E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L30", "7T", "7L14", "6T", "6L14", "5L14", "4M", "4L14", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M", "4E"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 44, moves: ["hydropump", "raindance", "blizzard", "healbell"]}, + ], + encounters: [ + {generation: 1, level: 15}, + ], + }, + ditto: { + learnset: { + transform: ["9L1", "8L1", "8V", "7L1", "7V", "7S0", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["transform"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 12}, + {generation: 2, level: 10}, + {generation: 3, level: 23}, + {generation: 4, level: 10}, + {generation: 5, level: 45}, + {generation: 6, level: 30}, + {generation: 7, level: 25}, + ], + }, + eevee: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "5S2", "4M", "4S0", "3M"], + babydolleyes: ["9L15", "8L15", "7L9", "7S5", "6L9", "6S3", "6S4"], + batonpass: ["9M", "9L35", "8M", "8L35", "7L33", "7V", "6L33", "5L36", "4L36", "3L36"], + bide: ["7V"], + bite: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L29", "4L29", "4S0", "3L30"], + bodyslam: ["9M", "8M", "7V", "3T"], + calmmind: ["9M"], + captivate: ["7E", "6E", "4M"], + celebrate: ["8S6", "7S5", "6S3"], + charm: ["9M", "9L45", "8M", "8L45", "7L29", "7E", "7V", "6L29", "6E", "5L29", "5E", "5D", "4E", "3E"], + confide: ["7M", "6M"], + copycat: ["9L30", "8L30"], + covet: ["9L1", "8L1", "8S6", "7T", "7L1", "7E", "6T", "6L23", "6E", "5T", "5L21", "5E", "4E", "4S0"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + detect: ["9E", "8E", "7E", "7V", "6E", "5E", "4E"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L50", "8L50", "8V", "7L37", "7V", "6L37", "5L37", "3T"], + doublekick: ["9E", "8E", "8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M", "5S2"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "4E"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "4S1", "3E"], + focusenergy: ["8M", "7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L15", "4L15", "3L16"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "8S6", "7T", "7L1", "6T", "6L1", "6S4", "5T", "5L1", "4T", "4L1", "4S0", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "4S1", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + mimic: ["7V", "3T"], + mudslap: ["9M", "9E", "8E", "7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + payday: ["8M", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "6S4", "5L22", "4L22", "4S1", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + refresh: ["7L20", "6L20"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "5S2", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "7S5", "6L5", "6S3", "5L8", "5D", "4L8", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sing: ["5S2"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7E", "6E", "5E"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8M", "8L20", "8V", "7L17", "7V", "6L10", "6S3", "6S4", "5D", "4T", "3T"], + synchronoise: ["7E", "6E", "5E"], + tackle: ["9L1", "8L1", "8V", "8S6", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L40", "8L40", "8V", "7L25", "7V", "6L25", "5L43", "4L43", "3L42"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trumpcard: ["7L45", "6L45", "5L57", "4L57", "4S1"], + weatherball: ["8M"], + wish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + workup: ["8M", "7M", "5M"], + yawn: ["9E", "8E", "7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 4, level: 10, gender: "F", nature: "Lonely", abilities: ["adaptability"], moves: ["covet", "bite", "helpinghand", "attract"], pokeball: "cherishball"}, + {generation: 4, level: 50, shiny: true, gender: "M", nature: "Hardy", abilities: ["adaptability"], moves: ["irontail", "trumpcard", "flail", "quickattack"], pokeball: "cherishball"}, + {generation: 5, level: 50, gender: "F", nature: "Hardy", abilities: ["adaptability"], moves: ["sing", "return", "echoedvoice", "attract"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["celebrate", "sandattack", "babydolleyes", "swift"], pokeball: "cherishball"}, + {generation: 6, level: 15, shiny: true, isHidden: true, moves: ["swift", "quickattack", "babydolleyes", "helpinghand"], pokeball: "cherishball"}, + {generation: 7, level: 10, nature: "Jolly", moves: ["celebrate", "sandattack", "babydolleyes"], pokeball: "cherishball"}, + {generation: 8, level: 5, gender: "M", nature: "Docile", abilities: ["runaway"], moves: ["celebrate", "covet", "helpinghand", "tackle"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 25}, + ], + }, + eeveestarter: { + learnset: { + baddybad: ["8V", "7T"], + bite: ["8V", "7L17"], + bouncybubble: ["8V", "7T"], + buzzybuzz: ["8V", "7T"], + dig: ["8V", "7M"], + doubleedge: ["8V", "7L28"], + doublekick: ["8V", "7L10"], + facade: ["8V", "7M"], + freezyfrost: ["8V", "7T"], + glitzyglow: ["8V", "7T"], + growl: ["8V", "7L1", "7S0"], + headbutt: ["8V", "7M"], + helpinghand: ["8V", "7M", "7L31"], + irontail: ["8V", "7M"], + payday: ["8V", "7M"], + protect: ["8V", "7M"], + quickattack: ["8V", "7L6"], + reflect: ["8V", "7M"], + rest: ["8V", "7M"], + sandattack: ["8V", "7L14"], + sappyseed: ["8V", "7T"], + shadowball: ["8V", "7M"], + sizzlyslide: ["8V", "7T"], + sparklyswirl: ["8V", "7T"], + substitute: ["8V", "7M"], + swift: ["8V", "7L21"], + tackle: ["8V", "7L1", "7S0"], + tailwhip: ["8V", "7L3", "7S0"], + takedown: ["8V", "7L24"], + toxic: ["8V", "7M"], + veeveevolley: ["8V", "7T"], + }, + eventData: [ + {generation: 7, level: 5, perfectIVs: 6, moves: ["tackle", "tailwhip", "growl"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + vaporeon: { + learnset: { + acidarmor: ["9L45", "8L45", "8V", "7L29", "7V", "6L29", "5L64", "4L64", "3L47"], + aquaring: ["9L35", "8L35", "7L25", "6L25", "5L43", "4L43"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9L30", "8L30", "8V", "7L20", "7V", "6L20", "5L36", "4L36", "3L36"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bide: ["7V"], + bite: ["9L1", "8L1", "7V", "5L29", "4L29", "3L30"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brine: ["8M", "4M"], + bubblebeam: ["7V"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L1", "8L1", "7V", "3T"], + doublekick: ["8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + flipturn: ["8T"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L57", "4L57", "3L42"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L50", "8M", "8L50", "8V", "7L45", "7V", "6L45", "5L71", "4L71", "3L52"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + liquidation: ["9M", "8M"], + mimic: ["7V", "3T"], + mist: ["7V"], + muddywater: ["9L40", "8M", "8L40", "7L37", "6L37", "5L78", "4L78"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + payday: ["8M", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], + scald: ["8M", "8V", "7M", "7S2", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], + waterpulse: ["9M", "9L25", "8L25", "7T", "7L17", "6T", "6L17", "4M", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + yawn: ["8V"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "watergun"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["scald", "icebeam", "raindance", "rest"], pokeball: "cherishball"}, + ], + }, + jolteon: { + learnset: { + agility: ["9M", "9L45", "8M", "8L45", "8V", "7L29", "7V", "6L29", "5L64", "4L64", "3L47"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bide: ["7V"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M", "7V", "3T"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + discharge: ["9L40", "8L40", "7L37", "6L37", "5L78", "4L78"], + doubleedge: ["9L1", "8L1", "7V", "3T"], + doublekick: ["9L25", "8L25", "8V", "7L17", "7V", "6L17", "5L29", "4L29", "3L30"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + falseswipe: ["9M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lightscreen: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["7V", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + payday: ["8M", "8V"], + pinmissile: ["9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L36", "4L36", "3L36"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1", "7V"], + terablast: ["9M"], + thunder: ["9M", "9L50", "8M", "8L50", "8V", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L71", "4M", "4L71", "3M", "3L52"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "7S2", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], + thundershock: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], + thunderwave: ["9M", "9L20", "8M", "8L20", "8V", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L57", "4M", "4L57", "3T", "3L42"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M", "8M", "7M", "7S2", "6M", "5M"], + weatherball: ["8M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + yawn: ["8V"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "thundershock"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", moves: ["thunderbolt", "shadowball", "lightscreen", "voltswitch"], pokeball: "cherishball"}, + ], + }, + flareon: { + learnset: { + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bide: ["7V"], + bite: ["9L25", "8L25", "7L17", "7V", "6L17", "5L29", "4L29", "3L30"], + bodyslam: ["9M", "8M", "7V", "3T"], + burningjealousy: ["8T"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "8L1", "7V", "3T"], + doublekick: ["8V"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L0", "8L0", "8V", "7L1", "7V", "6L9", "6S1", "5L15", "4L15", "3L16"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5L71", "4M", "4L71", "3M"], + firefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], + firespin: ["9M", "9L35", "8M", "8L35", "8V", "7L25", "7V", "6L25", "5L36", "4L36", "3L36"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L52"], + flareblitz: ["9M", "9L50", "8M", "8L50", "8V", "7L45", "7S2", "6L45"], + focusenergy: ["8M", "8V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "8V"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lavaplume: ["9L40", "8L40", "7L37", "6L37", "5L78", "4L78"], + leer: ["7V", "3L47"], + mimic: ["7V", "3T"], + mudslap: ["9M", "7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + payday: ["8M", "8V"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L10", "8L10", "8V", "7L13", "7V", "7S2", "6L13", "5L22", "4L22", "3L23"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "8V", "7L5", "7V", "6L5", "6S1", "5L8", "5S0", "4L8", "3L8"], + scaryface: ["9M", "9L45", "8M", "8L45", "7L29", "6L29", "5L64", "4L64"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["9L20", "8L20", "8V", "7L33", "7V", "6L33", "5L57", "4L57", "3L42"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "6S1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + weatherball: ["8M"], + willowisp: ["9M", "8M", "8V", "7M", "7S2", "6M", "5M", "4M"], + workup: ["8M", "7M", "5M"], + yawn: ["8V"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "ember"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["flareblitz", "facade", "willowisp", "quickattack"], pokeball: "cherishball"}, + ], + }, + espeon: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + celebrate: ["6S2"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L0", "8L0", "7L1", "7V", "6L9", "6S2", "5L15", "4L15", "3L16"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["9M", "8M", "7M", "7S3", "6M"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "8L1", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L50", "8M", "8L50", "7L25", "6L25", "5L43", "4L43"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mimic: ["3T"], + morningsun: ["9L30", "8L30", "7L33", "7V", "6L33", "5L71", "4L71", "3L52", "3S0"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payday: ["8M"], + powergem: ["9M"], + powerswap: ["9L35", "8M", "8L35", "7L45", "6L45", "5L78", "4L78"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L25", "8L25", "7L20", "7V", "6L20", "5L36", "4L36", "3L36", "3S0"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "7V", "7S3", "6M", "6L37", "5M", "5L64", "4M", "4L64", "3M", "3L47", "3S0"], + psychicfangs: ["9M", "8M"], + psychicterrain: ["9M"], + psychup: ["9L45", "8L45", "7M", "7L29", "7V", "6M", "6L29", "5M", "5L57", "4M", "4L57", "3T", "3L42", "3S0"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + quickattack: ["9L10", "8L10", "7L13", "7V", "6L13", "5L22", "4L22", "3L23"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "8M", "7M", "7S3", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L8", "5S1", "4L8", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L20", "8M", "8L20", "7L17", "7V", "6L17", "5L29", "4T", "4L29", "3T", "3L30"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunderwave: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + weatherball: ["8M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["psybeam", "psychup", "psychic", "morningsun"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "confusion"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["psychic", "dazzlinggleam", "shadowball", "reflect"], pokeball: "cherishball"}, + ], + }, + umbreon: { + learnset: { + assurance: ["9L25", "8M", "8L25", "7L25", "6L25", "5L25", "4L43"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S2"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L20", "8L20", "7L17", "7V", "6L17", "5L17", "4L29", "3L30"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + crunch: ["9M", "8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "9L40", "8M", "8L40", "7M", "6M", "5T", "4M"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "8L1", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + feintattack: ["7L20", "7V", "6L20", "5L21", "4L36", "3L36", "3S0"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1"], + guardswap: ["9L35", "8M", "8L35", "7L45", "6L45", "5L45", "4L78"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1", "4T", "4L1", "3L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lashout: ["8T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L41", "4T", "4L50"], + lightscreen: ["9M"], + meanlook: ["9L50", "8L50", "7L37", "7V", "6L37", "5L37", "4L57", "3L42", "3S0"], + mimic: ["3T"], + moonlight: ["9L30", "8L30", "7L33", "7V", "7S3", "6L33", "5L33", "4L71", "3L52", "3S0"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M"], + protect: ["9M", "8M", "7M", "7V", "7S3", "6M", "5M", "4M", "3M"], + psychic: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L1", "7V", "6L9", "6S2", "5L15", "4L15", "3L16"], + quickattack: ["9L10", "8L10", "7L13", "7V", "6L13", "5L13", "4L22", "3L23"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "7V", "6L5", "6S2", "5L8", "5S1", "4L8", "3L8"], + scaryface: ["9M"], + screech: ["9L45", "8M", "8L45", "7L29", "7V", "6L29", "5L29", "4L64", "3L47", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "9L0", "8M", "8L0", "7M", "7S3", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1"], + takedown: ["9M", "9L1", "8L1"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "8M"], + throatchop: ["8M", "7T"], + thunderwave: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "7S3", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + weatherball: ["8M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["feintattack", "meanlook", "screech", "moonlight"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "pursuit"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", moves: ["snarl", "toxic", "protect", "moonlight"], pokeball: "cherishball"}, + ], + }, + leafeon: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + babydolleyes: ["9L15", "8L15", "7L9"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M"], + bulletseed: ["9M", "8M", "4M"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigadrain: ["9M", "9L40", "8M", "8L40", "7T", "7L25", "6T", "6L25", "5T", "5L43", "4M", "4L43"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L17", "6L17", "5L57", "4L57"], + grassyglide: ["8T"], + growl: ["9L1", "8L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + leafblade: ["9L50", "8M", "8L50", "7L45", "7S2", "6L45", "5L71", "4L71"], + leafstorm: ["9M", "8M"], + leechseed: ["9L20", "8L20"], + magicalleaf: ["9M", "9L25", "8M", "8L25", "7L20", "6L20", "5L36", "4L36"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payday: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "5L22", "4L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L0", "8L0", "7L1", "6L9", "6S1", "5L15", "4L15"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L8", "5S0", "4L8"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + solarblade: ["8M"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "9L35", "8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L64", "4M", "4L64"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L1", "8M", "8L1", "4T"], + swordsdance: ["9M", "9L45", "8M", "8L45", "7M", "7L29", "7S2", "6M", "6L29", "5M", "5L78", "4M", "4L78"], + synthesis: ["9L30", "8L30", "7T", "7L33", "7S2", "6T", "6L33", "5T", "5L29", "4T", "4L29"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], + takedown: ["9M", "9L1", "8L1"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + weatherball: ["8M"], + workup: ["8M", "7M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "razorleaf"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["leafblade", "swordsdance", "sunnyday", "synthesis"], pokeball: "cherishball"}, + ], + }, + glaceon: { + learnset: { + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + auroraveil: ["7M", "7S2"], + avalanche: ["9M", "8M", "4M"], + babydolleyes: ["9L15", "8L15", "7L9"], + barrier: ["7L29", "6L29", "5L78", "4L78"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L25", "8L25", "7L17", "6L17", "5L29", "4L29"], + blizzard: ["9M", "9L50", "8M", "8L50", "7M", "7L45", "7S2", "6M", "6L45", "5M", "5L71", "4M", "4L71"], + bodyslam: ["9M", "8M"], + calmmind: ["9M"], + captivate: ["4M"], + celebrate: ["6S1"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T", "5T"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + focusenergy: ["8M"], + freezedry: ["9L40", "8L40"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1"], + hail: ["8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L64", "4M", "4L64"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S0", "4T", "4L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L30", "8M", "8L30", "7L20", "6L20", "5L43", "4L43"], + iceshard: ["9L20", "8L20", "7L25", "6L25", "5L36", "4L36"], + iciclespear: ["8M"], + icywind: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L9", "6S1", "5T", "5L15", "4T", "4L15"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41", "5T", "5L50", "4T", "4L50"], + mirrorcoat: ["9L45", "8L45", "7L33", "6L33", "5L57", "4L57"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + payday: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "5L22", "4L22"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S1", "5L8", "5S0", "4L8"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "7S2", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M", "9L35"], + storedpower: ["9M", "8M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L1", "8M", "8L1", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], + takedown: ["9M", "9L1", "8L1"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["8M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tailwhip", "tackle", "helpinghand", "sandattack"]}, + {generation: 6, level: 10, moves: ["celebrate", "tailwhip", "sandattack", "icywind"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", moves: ["blizzard", "shadowball", "hail", "auroraveil"], pokeball: "cherishball"}, + ], + }, + porygon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L30", "8V", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], + allyswitch: ["8M", "7T"], + barrier: ["8V"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + conversion2: ["8L25", "8S1", "7L1", "6L1", "5L1", "4L1", "3L1"], + conversion: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + curse: ["7V"], + defensecurl: ["7V"], + discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + eerieimpulse: ["8M"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lockon: ["8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], + magiccoat: ["8L50", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4T", "4L56"], + magnetrise: ["8L10", "8S1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L20", "8V", "8S1", "7L7", "7V", "6L7", "5L7", "5S0", "4L7", "3L12"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7V"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L35", "8V", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], + recycle: ["8L5", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + sharpen: ["8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L24"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + speedswap: ["8M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + takedown: ["7V"], + telekinesis: ["7T"], + teleport: ["8V", "7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["8L15", "8S1"], + thunderwave: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8L45", "8V", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["8L60", "7L62", "7V", "6L62", "5L62", "4L62", "3L48"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 10, isHidden: true, moves: ["tackle", "conversion", "sharpen", "psybeam"]}, + {generation: 8, level: 25, isHidden: true, moves: ["magnetrise", "thundershock", "psybeam", "conversion2"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 1, level: 18}, + ], + }, + porygon2: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L30", "7L12", "7V", "6L12", "5L12", "4L12", "3L9"], + allyswitch: ["8M", "7T"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + conversion2: ["8L25", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + conversion: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + defensecurl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L24"], + discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + eerieimpulse: ["8M"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L65", "7M", "7L67", "7V", "6M", "6L67", "5M", "5L67", "4M", "4L67", "3M"], + icebeam: ["8M", "8S0", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lockon: ["8L55", "7L45", "7V", "6L45", "5L45", "4L45", "3L32"], + magiccoat: ["8L50", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L56"], + magnetrise: ["8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + mimic: ["3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L20", "7L7", "7V", "6L7", "5L7", "4L7", "3L12"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L35", "8S0", "7L18", "7V", "6L18", "5L18", "4L18", "3L20"], + recycle: ["8L1", "7T", "7L34", "6T", "6L34", "5T", "5L34", "4M", "4L34", "3L44"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + speedswap: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + telekinesis: ["7T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8S0", "7M", "6M", "5M", "4M", "3M"], + thundershock: ["8L15"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "8L45", "7L50", "7V", "6L50", "5L51", "4L51", "3L36"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "8S0", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["8L60", "7L1", "7V", "6L1", "5L62", "4L62", "3L48"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 8, level: 50, nature: "Sassy", abilities: ["download"], ivs: {hp: 31, atk: 0, spe: 0}, moves: ["recover", "trickroom", "icebeam", "thunderbolt"], pokeball: "cherishball"}, + ], + }, + porygonz: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "8L30", "7L12", "6L12", "5L12", "4L12"], + allyswitch: ["8M", "7T"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + conversion2: ["8L25", "7L1", "6L1", "5L1", "4L1"], + conversion: ["8L1", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["8L1"], + discharge: ["8L40", "7L40", "6L40", "5L40", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["8M"], + electroweb: ["8M", "7T", "6T", "5T"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L34", "4M", "4L34"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "8L65", "7M", "7L67", "6M", "6L67", "5M", "5L67", "4M", "4L67"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + lastresort: ["7T", "6T", "5T", "4T"], + lockon: ["8L55", "7L45", "6L45", "5L45", "4L45"], + magiccoat: ["8L50", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L56"], + magnetrise: ["8L1", "7T", "7L23", "6T", "6L23", "5T", "5L23", "4L23"], + nastyplot: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psybeam: ["8L20", "7L7", "6L7", "5L7", "4L7"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + recover: ["8L35", "7L18", "6L18", "5L18", "4L18"], + recycle: ["8L1", "7T", "6T", "5T", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + speedswap: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thundershock: ["8L15"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["8M", "8L45", "7L50", "6L50", "5L51", "4L51"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + wonderroom: ["8M", "7T", "5T"], + zapcannon: ["8L60", "7L1", "6L1", "5L62", "4L62"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + omanyte: { + learnset: { + ancientpower: ["8L30", "7L37", "7V", "6L37", "5L37", "4T", "4L37", "3L49"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7E", "7V", "6E", "5E"], + bind: ["8L1", "7T", "6T", "5T"], + bite: ["8E", "8V", "7L7", "7V", "6L7", "5L7", "5D", "5S0", "4L7", "3L13"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brine: ["8M", "8L35", "7L28", "6L28", "5L28", "4M", "4L28"], + bubblebeam: ["8E", "7E", "7V", "6E", "5E", "5S0", "4E", "3E"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["7V"], + hydropump: ["8M", "8L60", "8V", "7L55", "7V", "6L55", "5L55", "4L52", "3L55"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + leer: ["8L20", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L31"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + muddywater: ["8M", "7E", "6E", "5E", "5D", "4E"], + mudshot: ["8M", "8L25", "7L25", "6L25", "5L25", "4L25", "3L25"], + naturalgift: ["4M"], + protect: ["8M", "8L41", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L37"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + reflecttype: ["8E", "7E", "6E"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L45", "7L46", "6L46", "5L46", "4L46"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L5", "7L16", "7V", "6L16", "5L16", "4T", "4L16", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L10"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shellsmash: ["8L55", "8V", "7L50", "6L50", "5L52"], + slam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikecannon: ["7V"], + spikes: ["8M", "7E", "6E", "5E", "4E", "3E"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "5S0", "4E", "3E"], + surf: ["8M", "8L50", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["8E", "7L43", "6L43", "5L43", "4L43", "3L43"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M", "7E", "6E", "5E", "4E"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L15", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L19"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M"], + withdraw: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + wringout: ["7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["swiftswim"], moves: ["bubblebeam", "supersonic", "withdraw", "bite"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + omastar: { + learnset: { + ancientpower: ["8L30", "7L37", "7V", "6L37", "5L37", "4T", "4L37", "3L55"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["8V", "7V"], + bind: ["8L1", "7T", "6T", "5T"], + bite: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brine: ["8M", "8L35", "7L28", "6L28", "5L28", "4M", "4L28"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + crunch: ["8M", "8L0"], + curse: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["7V"], + horndrill: ["7V"], + hydropump: ["8M", "8L70", "8V", "7L1", "7V", "6L1", "5L75", "4L67", "3L65"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + leer: ["8L20", "8V", "7L19", "7V", "6L19", "5L19", "4L19", "3L31"], + liquidation: ["8M"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + muddywater: ["8M"], + mudshot: ["8M", "8L25", "7L25", "6L25", "5L25", "4L25", "3L25"], + naturalgift: ["4M"], + pinmissile: ["8M"], + protect: ["8M", "8L43", "8V", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L37"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L49", "7L56", "6L56", "5L56", "4L56"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L16", "7V", "6L16", "5L16", "4T", "4L16", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + shellsmash: ["8L63", "8V", "7L67", "6L67", "5L67"], + skullbash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikecannon: ["8V", "7L1", "7V", "6L40", "5L40", "4L40", "3L40"], + spikes: ["8M"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + supersonic: ["8V"], + surf: ["8M", "8L56", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + tickle: ["7L48", "6L48", "5L48", "4L48", "3L46"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["8M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L15", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + withdraw: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + }, + kabuto: { + learnset: { + absorb: ["8L1", "8V", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L13"], + aerialace: ["7M", "3M"], + ancientpower: ["8L30", "7L46", "7V", "6L46", "5L46", "4T", "4L46", "3L55"], + aquajet: ["8L15", "8V", "7L31", "6L31", "5L31", "4L31"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brine: ["8M", "8L35", "4M"], + bubblebeam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "5S0", "4E", "3E"], + curse: ["7V"], + dig: ["8M", "8V", "7V", "6M", "5M", "5S0", "4M", "4E", "3M", "3E"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7L26", "7V", "6L26", "5L26", "4M", "4L26", "3T", "3L37"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + headbutt: ["8V"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M", "7V"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + leechlife: ["8M", "8L45", "8V"], + leer: ["8L20", "8V", "7L11", "7V", "6L11", "5L11", "4L11", "3L19"], + liquidation: ["8M", "8L50"], + megadrain: ["8E", "8V", "7L36", "7V", "6L36", "5L36", "4L36", "3L49"], + metalsound: ["8L55", "7L41", "6L41", "5L41", "4L41", "3L43"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L25", "7L16", "7E", "6L16", "6E", "5L16", "5E", "4L16", "4E", "3L25"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["8M", "8L41", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L10", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scratch: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "5S0", "4L1", "3L1"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + slash: ["7V"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "5D", "4M"], + stoneedge: ["8M", "8L60"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["8E", "7E", "7V", "6E"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wringout: ["7L50", "6L50", "5L51", "4L51"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["battlearmor"], moves: ["confuseray", "dig", "scratch", "harden"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + kabutops: { + learnset: { + absorb: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8L30", "7L54", "7V", "6L54", "5L54", "4T", "4L54", "3L65"], + aquajet: ["8L15", "8V", "7L31", "6L31", "5L31", "4L31"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7V", "3T"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L35", "4M"], + bubblebeam: ["7V"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8V"], + crosspoison: ["8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dig: ["8M", "8V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7L26", "7V", "6L26", "5L26", "4M", "4L26", "3T", "3L37"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + feint: ["8L1", "8V", "7L1", "6L1", "5L1", "4L1"], + flipturn: ["8T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T", "3L1"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8V", "7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M", "7V"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + leechlife: ["8M", "8L49", "8V"], + leer: ["8L20", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8L56", "7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megadrain: ["8V", "7L36", "7V", "6L36", "5L36", "4L36", "3L55"], + megakick: ["8M", "7V", "3T"], + metalsound: ["8L63", "7L45", "6L45", "5L45", "4L45", "3L46"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + mudshot: ["8M", "8L25", "7L16", "6L16", "5L16", "4L16", "3L25"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightslash: ["8L1", "7L1", "6L1", "5L72", "4L72"], + protect: ["8M", "8L43", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8V", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L31"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scratch: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "8V"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + skullbash: ["7V"], + slash: ["8L0", "8V", "7L1", "7V", "6L40", "5L40", "4L40", "3L40"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "8L70", "7M", "6M", "5M", "4M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["7V"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wringout: ["7L63", "6L63", "5L63", "4L63"], + xscissor: ["8M", "8V", "7M", "6M", "5M", "4M"], + }, + }, + aerodactyl: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L50", "8V", "7L17", "7V", "6L17", "5L17", "4L17", "3L8"], + aircutter: ["4T"], + ancientpower: ["8L1", "7L25", "7V", "7S1", "6L25", "5L25", "4T", "4L25", "3L29"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M", "7E", "6E", "5E", "5D", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bite: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L15"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + celebrate: ["7S1"], + confide: ["7M", "6M"], + crunch: ["8M", "8L30", "8V", "7L33", "6L33", "5L33", "4L33"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["7V"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7L1", "6L1", "5L1", "5S0", "4L1"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "8L60", "7M", "7L81", "6M", "6L81", "5M", "5L81", "4M", "4L73"], + headbutt: ["8V", "7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["8M"], + hyperbeam: ["8M", "8L55", "8V", "7M", "7L65", "7V", "6M", "6L65", "5M", "5L65", "4M", "4L57", "3M", "3L50"], + icefang: ["8M", "7L1", "6L1", "5L1", "5S0", "4L1"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "8L35", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L49"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + meteorbeam: ["8T"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["8L25", "8V", "7M", "7L9", "7V", "6M", "6L9", "5M", "5L9", "4M", "4L9", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "7S1", "6M", "5M", "4M"], + rockslide: ["8M", "8L20", "8V", "7M", "7L73", "6M", "6L73", "5M", "5L73", "4M", "4L65", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8V"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["8E", "8V", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L15", "7L1", "7V", "6L1", "5L1", "4L1", "3L36"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "7L49", "6M", "6L49", "5M", "5L49"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "8V", "7T", "6T", "5T", "5D", "4M"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "5S0", "4M", "4E", "3M", "3E"], + stoneedge: ["8M", "8L45", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L22"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + takedown: ["8L40", "8V", "7L41", "7V", "6L41", "5L41", "4L41", "3L43"], + taunt: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "7L1", "6L1", "5L1", "5S0", "4L1"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wideguard: ["8E", "7E", "7S1", "6E"], + wingattack: ["8L10", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["pressure"], moves: ["steelwing", "icefang", "firefang", "thunderfang"], pokeball: "cherishball"}, + {generation: 7, level: 50, isHidden: true, moves: ["ancientpower", "rockpolish", "wideguard", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + munchlax: { + learnset: { + afteryou: ["7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["8M", "8L36", "7L9", "6L9", "5L9", "4L9"], + attract: ["8M", "7M", "6M", "5M", "4M"], + belch: ["8E", "7E", "6E"], + bellydrum: ["8L48", "7L44", "6L44"], + bite: ["8L16"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M", "8L28", "7L25", "6L25", "5L36", "4L33"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["8M", "7E", "6E", "5E", "4E"], + chipaway: ["7L17", "6L17", "5L25"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E"], + covet: ["8L12", "7T", "6T", "5T"], + curse: ["8E", "7E", "6E", "5E", "4E", "4S1"], + defensecurl: ["8L4", "7L4", "6L4", "5L4", "4L4", "4S0"], + doubleedge: ["8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + encore: ["8M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "7T", "6T", "5T", "4T"], + fissure: ["8E"], + flail: ["8L44"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "8L32", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L36"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + happyhour: ["7S2"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + holdback: ["7S2"], + hydropump: ["8M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "6T", "5T", "4T"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + lastresort: ["8L52", "7T", "7L1", "6T", "6L1", "5T", "5L57", "4T", "4L49"], + lick: ["8L1", "7L1", "7E", "6L1", "6E", "5L12", "5E", "4L12", "4E"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M", "8L40", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], + mudslap: ["4T"], + naturalgift: ["7L49", "7E", "6L49", "6E", "5L49", "5E", "4M", "4L44"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "4S1"], + payday: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + recycle: ["8L8", "7T", "7L1", "6T", "6L1", "5T", "5L17", "4M", "4L17"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["7L36", "6L36", "5L44", "4T", "4L41"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M"], + screech: ["8M", "8L24", "7L20", "6L20", "5L20", "4L20"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "7E", "6E", "5E", "4S0"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "7L50", "6T", "6L1", "5T", "5L52"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + stockpile: ["8L20", "7L28", "6L28", "5L28", "4L25"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["8L20", "7L33", "6L33", "5L33", "4L28"], + tackle: ["8L1", "7L1", "7S2", "6L1", "5L1", "4L1", "4S0", "4S1"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + whirlpool: ["8M", "4M"], + whirlwind: ["7E", "6E", "5E", "4E"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 4, level: 5, moves: ["metronome", "tackle", "defensecurl", "selfdestruct"]}, + {generation: 4, level: 5, gender: "F", nature: "Relaxed", abilities: ["thickfat"], moves: ["metronome", "odorsleuth", "tackle", "curse"], pokeball: "cherishball"}, + {generation: 7, level: 5, abilities: ["thickfat"], moves: ["tackle", "metronome", "holdback", "happyhour"], pokeball: "cherishball"}, + ], + }, + snorlax: { + learnset: { + afteryou: ["7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["8M", "8L36", "8V", "7L9", "7V", "6L9", "5L9", "5D", "4L9", "3L5"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + belch: ["8L52", "7E", "6E"], + bellydrum: ["8L48", "7L44", "7V", "6L44", "5L17", "4L17", "3L13"], + bide: ["7V"], + bite: ["8L16"], + blizzard: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["8L1", "7T", "7L41", "7S1", "6T", "6L41", "5T", "5L41", "4T", "4L36", "3L37"], + bodypress: ["8M"], + bodyslam: ["8M", "8L28", "8V", "7L25", "7V", "7S1", "6L25", "5L36", "4L33", "3T", "3L33", "3S0"], + brickbreak: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["7V"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + celebrate: ["7S1"], + charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + chipaway: ["7L17", "6L17", "5L25"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + covet: ["8L1", "7T", "6T", "5T", "3L42"], + crunch: ["8M", "8L24", "8V", "7L49", "6L49", "5L49", "4L44"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E", "3S0"], + darkestlariat: ["8M"], + defensecurl: ["8L1", "8V", "7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L9"], + doubleedge: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + fissure: ["8E", "7E", "7V", "6E", "5E", "4E", "3E", "3S0"], + flail: ["8L1"], + flamethrower: ["8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "8L1", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["8E"], + gigaimpact: ["8M", "8L56", "7M", "7L35", "6M", "6L57", "5M", "5L57", "4M", "4L49"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + hammerarm: ["8L44"], + harden: ["7V"], + headbutt: ["8V", "7V", "4T", "3L17"], + heatcrash: ["8M"], + heavyslam: ["8M", "8L32", "7L50", "6L50", "5L52"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M", "8L40", "7L57"], + hydropump: ["8M"], + hyperbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3L51"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lastresort: ["8L1", "7T", "6T", "5T", "4T"], + lick: ["8L1", "8V", "7L12", "7E", "7V", "6L12", "6E", "5L12", "5E", "4L12", "4E", "3E"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["8M", "8L1", "7V", "3T"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + outrage: ["8M", "8V", "7T", "6T", "5T", "4T"], + payday: ["8M", "8V", "7V"], + poweruppunch: ["7E", "6M"], + protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7V", "3T"], + psywave: ["7V"], + pursuit: ["7E", "6E", "5E", "4E"], + rage: ["7V"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recycle: ["8L1", "7T", "6T", "5T", "5D", "4M"], + reflect: ["8V", "7V"], + refresh: ["3S0"], + rest: ["8M", "8L20", "8V", "7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L25", "3M", "3L25"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7L36", "7V", "6L36", "5L44", "4T", "4L41", "3T", "3L46"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + screech: ["8M", "8L1", "8V"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["8M", "8L20", "7M", "7L33", "7V", "6M", "6L33", "5T", "5L33", "4M", "4L28", "3T", "3L37"], + smackdown: ["7M", "6M", "5M"], + snatch: ["7T"], + snore: ["8M", "8L20", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3T", "3L28"], + solarbeam: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + steelroller: ["8T"], + stockpile: ["8L1"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "7V", "7S1", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["8L1"], + tackle: ["8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7V"], + terrainpulse: ["8T"], + thunder: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + whirlwind: ["7E", "6E", "5E", "4E"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + yawn: ["8L12", "8V", "7L20", "6L20", "5L20", "4L20", "3L21"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 43, moves: ["refresh", "fissure", "curse", "bodyslam"]}, + {generation: 7, level: 30, abilities: ["thickfat"], moves: ["sunnyday", "block", "bodyslam", "celebrate"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 1, level: 30}, + ], + }, + articuno: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L36", "7V", "6L36", "5L36", "4L36", "4S3", "4S4", "3L25", "3S0", "3S1"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + ancientpower: ["9L25", "8L25", "7L29", "7S7", "6L29", "5L29", "4T", "4L29"], + auroraveil: ["7M"], + avalanche: ["9M", "8M", "4M"], + bide: ["7V"], + blizzard: ["9M", "9L65", "8M", "8L65", "8V", "7M", "7L78", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L73"], + bravebird: ["9M", "8M"], + bubblebeam: ["7V"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["3S2"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + freezedry: ["9L35", "8L35", "8S8", "7L43", "7S7", "6L1", "6S6"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L50", "7M", "7L57", "7S7", "6M", "6L57", "6S5", "6S6", "5M", "5L85", "4M", "4L85", "3M"], + haze: ["9L60", "3S2"], + headbutt: ["8V"], + healbell: ["3S2"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L55", "8M", "8L55", "8S8", "7L92", "6L1", "5L92"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9L45", "8M", "8L45", "8V", "8S8", "7M", "7L71", "7V", "6M", "6L43", "6S5", "6S6", "5M", "5L43", "4M", "4L43", "4S3", "4S4", "3M", "3L49", "3S0", "3S1", "3S2"], + iceshard: ["9L15", "8L15", "8V", "7L15", "6L15", "5L15", "4L15"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + leer: ["8V"], + lightscreen: ["9M"], + mimic: ["7V", "3T"], + mindreader: ["8L60", "7L22", "7V", "6L22", "5L22", "4L22", "4S4", "3L37", "3S0", "3S1"], + mirrorcoat: ["8V"], + mist: ["9L1", "8L1", "8V", "8S8", "7L8", "7V", "6L8", "5L8", "4L8", "4S4", "3L13", "3S0"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["7V"], + pluck: ["5M", "4M"], + powdersnow: ["9L5", "8L5", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L50", "7V", "7S7", "6M", "6L50", "6S5", "6S6", "5M", "5L50", "4M", "4L50", "4S3", "3M", "3L61", "3S1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["9L70", "8L70", "7L99", "6L1", "5L78", "4L78", "3L85"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M", "9L50"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "9L30", "8L30", "7T", "7L64", "6T", "6L1", "6S5", "5T", "5L64", "4T", "4L64"], + takedown: ["9M", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + tripleaxel: ["8T"], + twister: ["4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["8M"], + whirlwind: ["7V"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["mist", "agility", "mindreader", "icebeam"]}, + {generation: 3, level: 70, moves: ["agility", "mindreader", "icebeam", "reflect"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["icebeam", "healbell", "extrasensory", "haze"]}, + {generation: 4, level: 60, shiny: 1, moves: ["agility", "icebeam", "reflect", "roost"]}, + {generation: 4, level: 50, shiny: 1, moves: ["mist", "agility", "mindreader", "icebeam"]}, + {generation: 6, level: 70, moves: ["icebeam", "reflect", "hail", "tailwind"]}, + {generation: 6, level: 70, isHidden: true, moves: ["freezedry", "icebeam", "hail", "reflect"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "freezedry", "reflect", "hail"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "freezedry", "hurricane", "mist"]}, + ], + encounters: [ + {generation: 1, level: 50}, + ], + eventOnly: true, + }, + articunogalar: { + learnset: { + agility: ["9M", "9L20", "8M", "8L20"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + allyswitch: ["8M"], + ancientpower: ["9L25", "8L25"], + bravebird: ["9M", "8M"], + calmmind: ["9M", "8M"], + confusion: ["9L5", "8L5"], + doubleteam: ["9L60"], + dreameater: ["9L50", "8L50"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fly: ["9M", "8M"], + freezingglare: ["9L45", "8L45", "8S0", "8S1"], + futuresight: ["9L65", "8M", "8L65"], + gigaimpact: ["9M", "8M"], + guardswap: ["8M"], + gust: ["9L1", "8L1"], + helpinghand: ["9M"], + hurricane: ["9M", "9L55", "8M", "8L55", "8S0", "8S1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + hypnosis: ["9L15", "8L15"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + mindreader: ["8L60"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "8M"], + psychocut: ["9L35", "8M", "8L35", "8S0", "8S1"], + psychoshift: ["8L1", "8S0", "8S1"], + psyshock: ["9M", "8M"], + raindance: ["9M"], + recover: ["9L40", "8L40"], + reflect: ["9M", "9L10", "8M", "8L10"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + steelwing: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L30", "8L30"], + takedown: ["9M"], + terablast: ["9M"], + trick: ["9M"], + trickroom: ["9M", "9L70", "8M", "8L70"], + uturn: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 70, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"]}, + {generation: 8, level: 70, shiny: true, moves: ["freezingglare", "hurricane", "psychocut", "psychoshift"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zapdos: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "8S8", "7L43", "7V", "6L43", "6S5", "6S6", "5L43", "4L43", "4S3", "4S4", "3L25", "3S0", "3S1"], + aircutter: ["9M", "4T"], + ancientpower: ["9L25", "8L25", "7L29", "7S7", "6L29", "5L29", "4T", "4L29"], + batonpass: ["9M", "8M", "3S2"], + bide: ["7V"], + bravebird: ["9M", "8M", "8S8"], + charge: ["9L30", "8L30", "7L36", "6L36", "5L36", "4L36", "4S3", "3L61", "3S1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["9L60", "8L60", "7L15", "7V", "6L15", "5L15", "4L15", "4S4", "3L37", "3S0", "3S1"], + discharge: ["9L45", "8L45", "7L50", "7S7", "6L50", "6S5", "6S6", "5L50", "4L50", "4S3"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["9L35", "8L35", "8V", "8S8", "7L71", "7V", "6L1", "5L71", "4L71", "4S4", "3L49", "3S0", "3S1"], + dualwingbeat: ["8T"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extrasensory: ["3S2"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M"], + headbutt: ["8V"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8V"], + lightscreen: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L64", "7V", "6M", "6L64", "6S5", "5M", "5L64", "4M", "4L64", "3M", "3L73"], + magneticflux: ["9L65", "8L65", "7L92"], + metalsound: ["3S2"], + mimic: ["7V", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["9L15", "8L15", "7L22", "7S7", "6L22", "5M", "5L22", "4M", "4L22"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L50", "8M", "8L50", "7M", "7L57", "7V", "7S7", "6M", "6L57", "6S5", "6S6", "5M", "5L85", "4M", "4L85", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["8V", "7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "9L55", "8M", "8L55", "8V", "8S8", "7M", "7L78", "7V", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L85"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M", "3S2"], + thundershock: ["9L5", "8L5", "8V", "7L1", "7V", "6L1", "6S6", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L8", "7V", "6M", "6L8", "5M", "5L8", "4M", "4L8", "4S4", "3T", "3L13", "3S0"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["8M"], + whirlwind: ["7V"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + zapcannon: ["9L70", "8L70", "7L99", "7V", "6L1", "5L92"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["thunderwave", "agility", "detect", "drillpeck"]}, + {generation: 3, level: 70, moves: ["agility", "detect", "drillpeck", "charge"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["thunderbolt", "extrasensory", "batonpass", "metalsound"]}, + {generation: 4, level: 60, shiny: 1, moves: ["charge", "agility", "discharge", "roost"]}, + {generation: 4, level: 50, shiny: 1, moves: ["thunderwave", "agility", "detect", "drillpeck"]}, + {generation: 6, level: 70, moves: ["agility", "discharge", "raindance", "lightscreen"]}, + {generation: 6, level: 70, isHidden: true, moves: ["discharge", "thundershock", "raindance", "agility"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "discharge", "pluck", "raindance"]}, + {generation: 8, level: 70, shiny: 1, moves: ["thunder", "drillpeck", "bravebird", "agility"]}, + ], + encounters: [ + {generation: 1, level: 50}, + ], + eventOnly: true, + }, + zapdosgalar: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M"], + agility: ["9M", "9L20", "8M", "8L20"], + ancientpower: ["9L25", "8L25"], + assurance: ["8M"], + blazekick: ["8M"], + bounce: ["8M"], + bravebird: ["9M", "8M"], + brickbreak: ["9M", "9L30", "8M", "8L30"], + bulkup: ["9M", "9L50", "8M", "8L50"], + closecombat: ["9M", "9L65", "8M", "8L65"], + coaching: ["8T"], + counter: ["9L55", "8L55"], + detect: ["9L60", "8L60"], + drillpeck: ["9L35", "8L35", "8S0", "8S1"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1", "8S0", "8S1"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + lightscreen: ["9M", "9L10", "8M", "8L10"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L15", "8L15"], + protect: ["9M", "8M"], + quickguard: ["9L40", "8L40"], + raindance: ["9M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "9L70", "8M", "8L70", "8S0", "8S1"], + rocksmash: ["9L5", "8L5"], + round: ["8M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + screech: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + steelwing: ["8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superpower: ["8M"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + throatchop: ["8M"], + thunderouskick: ["9L45", "8L45", "8S0", "8S1"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 70, moves: ["thunderouskick", "drillpeck", "reversal", "focusenergy"]}, + {generation: 8, level: 70, shiny: true, moves: ["thunderouskick", "drillpeck", "reversal", "focusenergy"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + moltres: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L15", "7V", "6L15", "5L15", "4L15", "4S4", "3L25", "3S0", "3S1"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L35", "8M", "8L35", "8V", "7L50", "7S7", "6L50", "6S5", "5L50", "4L50", "4S3"], + ancientpower: ["9L25", "8L25", "7L29", "7S7", "6L29", "5L29", "4T", "4L29"], + bide: ["7V"], + bravebird: ["9M", "8M"], + burningjealousy: ["8T"], + burnup: ["8L65", "7L99"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + ember: ["9L5", "8L5", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "9L60", "8M", "8L60", "7L22", "7V", "6L22", "5L22", "4M", "4L22", "4S4", "3T", "3L37", "3S0", "3S1"], + extrasensory: ["3S2"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M", "8V", "8S8", "7L8", "7V", "6L8", "5L8", "4L8", "4S4", "3L13", "3S0"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "8V", "7M", "7L36", "7V", "7S7", "6M", "6L36", "5M", "5L36", "4M", "4L36", "4S3", "4S4", "3M", "3L49", "3S0", "3S1", "3S2"], + flareblitz: ["9M", "8M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1"], + headbutt: ["8V"], + heatwave: ["9M", "9L45", "8M", "8L45", "8V", "8S8", "7T", "7L64", "6T", "6L1", "6S5", "6S6", "5T", "5L64", "4T", "4L64", "3L73"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L55", "8M", "8L55", "7L92", "6L1", "5L92"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["9L30", "8L30", "6M", "5M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "8V", "8S8", "7V"], + mimic: ["7V", "3T"], + morningsun: ["3S2"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + overheat: ["9M", "9L65", "8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["7V"], + pluck: ["5M", "4M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "8V", "7M", "7L85", "6M", "6L1", "5T", "5L57", "4M", "4L57", "4S3"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L10", "8M", "8L10", "7M", "7L43", "7V", "6M", "6L43", "6S5", "6S6", "5M", "5L43", "4M", "4L43", "4S3", "3M", "3L61", "3S1"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["9L70", "8L70", "8V", "7T", "7L78", "7V", "6T", "6L1", "6S6", "5T", "5L78", "4T", "4L78", "3T", "3L85"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7L71", "6M", "6L71", "5M", "5L71", "4M", "4L71"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L50", "8M", "8L50", "7M", "7L57", "7V", "7S7", "6M", "6L57", "6S5", "6S6", "5M", "5L85", "4M", "4L85", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + weatherball: ["8M"], + whirlwind: ["7V"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3S2"], + wingattack: ["9L15", "8L15", "8V", "8S8", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["firespin", "agility", "endure", "flamethrower"]}, + {generation: 3, level: 70, moves: ["agility", "endure", "flamethrower", "safeguard"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["extrasensory", "morningsun", "willowisp", "flamethrower"]}, + {generation: 4, level: 60, shiny: 1, moves: ["flamethrower", "safeguard", "airslash", "roost"]}, + {generation: 4, level: 50, shiny: 1, moves: ["firespin", "agility", "endure", "flamethrower"]}, + {generation: 6, level: 70, moves: ["safeguard", "airslash", "sunnyday", "heatwave"]}, + {generation: 6, level: 70, isHidden: true, moves: ["skyattack", "heatwave", "sunnyday", "safeguard"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["ancientpower", "flamethrower", "airslash", "sunnyday"]}, + {generation: 8, level: 70, shiny: 1, moves: ["heatwave", "wingattack", "leer", "firespin"]}, + ], + encounters: [ + {generation: 1, level: 50}, + ], + eventOnly: true, + }, + moltresgalar: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + afteryou: ["9L40", "8L40"], + agility: ["9M", "9L20", "8M", "8L20"], + airslash: ["9M", "9L35", "8M", "8L35"], + ancientpower: ["9L25", "8L25"], + assurance: ["8M"], + bravebird: ["9M", "8M"], + darkpulse: ["9M", "8M"], + dualwingbeat: ["8T"], + endure: ["9M", "9L60", "8M", "8L60"], + facade: ["9M", "8M"], + fierywrath: ["9L45", "8L45", "8S0", "8S1"], + fly: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gust: ["9L1", "8L1"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hurricane: ["9M", "9L55", "8M", "8L55", "8S0", "8S1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + imprison: ["9M", "8M"], + lashout: ["8T"], + leer: ["9L1", "8L1"], + memento: ["9L65", "8L65"], + nastyplot: ["9M", "9L50", "8M", "8L50", "8S0", "8S1"], + payback: ["9L5", "8M", "8L5"], + protect: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["9L10", "8M", "8L10"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "8M"], + skyattack: ["9L70", "8L70"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + steelwing: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L30", "8L30", "8S0", "8S1"], + sunnyday: ["9M"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M"], + uturn: ["9M", "8M"], + wingattack: ["9L15", "8L15"], + }, + eventData: [ + {generation: 8, level: 70, moves: ["fierywrath", "hurricane", "suckerpunch", "nastyplot"]}, + {generation: 8, level: 70, shiny: true, moves: ["fierywrath", "hurricane", "suckerpunch", "nastyplot"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + dratini: { + learnset: { + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L36"], + aquajet: ["9E", "8E", "7E", "6E", "5E"], + aquatail: ["9L31", "8L31", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L31"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + dragondance: ["9M", "9L50", "8M", "8L50", "7L51", "7E", "6L51", "6E", "5L51", "5E", "4L45", "4E", "3E"], + dragonpulse: ["9M", "8M", "8V", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], + dragonrush: ["9L35", "8L35", "7L41", "7E", "6L41", "6E", "5L41", "5E", "4L35", "4E"], + dragontail: ["9M", "9L15", "8L15", "8V", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["9E", "8E", "7E", "7V", "6E", "5E", "4E"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L60", "8M", "8L60", "8V", "7M", "7L61", "7V", "6M", "6L61", "5M", "5L61", "4M", "4L55", "3M", "3L57"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "8V", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4E", "3E"], + mimic: ["7V", "3T"], + mist: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + outrage: ["9M", "9L55", "8M", "8L55", "8V", "7T", "7L55", "7V", "6T", "6L55", "5T", "5L55", "4T", "4L51", "3L50"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L45", "8M", "8L45", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L40", "8M", "8L40", "7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L41", "3M", "3L43"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + slam: ["9L25", "8L25", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L29"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "9L10", "8M", "8L10", "8V", "7M", "7L5", "7V", "6M", "6L5", "5M", "5L5", "5D", "4M", "4L5", "3T", "3L8"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L5", "8L5", "7L11", "7V", "6L11", "5L11", "4T", "4L11", "3L15"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], + whirlpool: ["8M", "4M"], + wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 10}, + ], + }, + dragonair: { + learnset: { + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L25", "7V", "6L25", "5L25", "4L25", "3L38"], + aquatail: ["9L33", "8L33", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L33"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + detect: ["7V"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["7V"], + dragondance: ["9M", "9L60", "8M", "8L60", "7L61", "6L61", "5L61", "4L53"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], + dragonrush: ["9L39", "8L39", "7L47", "6L47", "5L47", "4L39"], + dragontail: ["9M", "9L15", "8L15", "8V", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + horndrill: ["7V"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L74", "8M", "8L74", "8V", "7M", "7L75", "7V", "6M", "6L75", "5M", "5L75", "4M", "4L67", "3M", "3L65"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M"], + mimic: ["7V", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L67", "8M", "8L67", "8V", "7T", "7L67", "7V", "6T", "6L67", "5T", "5L67", "4T", "4L61", "3L56"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L53", "8M", "8L53", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L46", "8M", "8L46", "7M", "7L53", "7V", "6M", "6L53", "5M", "5L53", "4M", "4L47", "3M", "3L47"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + slam: ["9L25", "8L25", "8V", "7L21", "7V", "6L21", "5L21", "4L21", "3L29"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 1, level: 15}, + {generation: 2, level: 10}, + {generation: 3, level: 25, pokeball: "safariball"}, + {generation: 4, level: 15}, + {generation: 7, level: 10}, + ], + }, + dragonite: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L20", "8M", "8L20", "8V", "7L25", "7V", "6L25", "6S8", "5L25", "4L25", "3L38", "3S0"], + aircutter: ["9M", "4T"], + airslash: ["9M", "8M"], + aquajet: ["8V"], + aquatail: ["9L33", "8L33", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L33"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["6S8"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + detect: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "8S9", "7T", "6T", "5T", "4T", "4S2"], + dragonbreath: ["7V"], + dragonclaw: ["9M", "8M", "8S9", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "9L62", "8M", "8L62", "8S9", "7L61", "6L61", "6S7", "5L61", "5S3", "4L53", "4S2", "3S1"], + dragonpulse: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["8V", "7L15", "7V", "6L15", "5L15", "4L15", "3L22"], + dragonrush: ["9L39", "8L39", "7L47", "6L47", "5L47", "5S4", "5S5", "4L39"], + dragontail: ["9M", "9L15", "8L15", "8V", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + dualwingbeat: ["8T"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M", "3S1"], + encore: ["9M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + extremespeed: ["9L1", "8L1", "6S7", "5S3", "5S5"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S6", "4M", "3M"], + firepunch: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5S3", "4T", "4L1", "3T"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["3S1"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + hurricane: ["9M", "9L0", "8M", "8L0", "8S9", "7L1", "6L1", "6S7", "5L81"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L80", "8M", "8L80", "8V", "7M", "7L75", "7V", "6M", "6L75", "6S8", "5M", "5L75", "5S6", "4M", "4L73", "3M", "3L75", "3S1"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M"], + lowkick: ["9M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mimic: ["7V", "3T"], + mist: ["8V"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["9M", "9L41", "8M", "8L41", "8V", "7T", "7L67", "7V", "6T", "6L67", "6S7", "5T", "5L67", "5S3", "5S6", "4T", "4L64", "4S2", "3L61", "3S0"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7V"], + raindance: ["9M", "9L53", "8M", "8L53", "7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + reflect: ["8V", "7V"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["9L1", "8L1", "8V", "7M", "7L1", "6M", "6L1", "5T", "5L1", "4M", "4L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L46", "8M", "8L46", "7M", "7L53", "7V", "6M", "6L53", "5M", "5L53", "5S4", "5S5", "5S6", "4M", "4L47", "3M", "3L47", "3S0"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skullbash: ["7V"], + skydrop: ["7M", "6M", "5M"], + slam: ["9L25", "8L25", "8V", "7L21", "7V", "6L21", "6S8", "5L21", "4L21", "3L29"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "4S2", "3M"], + thunderpunch: ["9M", "9L1", "8M", "8L1", "8V", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "5S4", "4T", "4L1", "3T"], + thunderwave: ["9M", "9L1", "8M", "8L1", "8V", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wingattack: ["9L1", "8L1", "8V", "7L1", "7V", "6L55", "5L55", "5S4", "5S5", "4L55", "3L55", "3S0"], + wrap: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["agility", "safeguard", "wingattack", "outrage"], pokeball: "pokeball"}, + {generation: 3, level: 55, moves: ["healbell", "hyperbeam", "dragondance", "earthquake"]}, + {generation: 4, level: 50, gender: "M", nature: "Mild", moves: ["dracometeor", "thunderbolt", "outrage", "dragondance"], pokeball: "cherishball"}, + {generation: 5, level: 100, gender: "M", isHidden: true, moves: ["extremespeed", "firepunch", "dragondance", "outrage"], pokeball: "cherishball"}, + {generation: 5, level: 55, gender: "M", isHidden: true, moves: ["dragonrush", "safeguard", "wingattack", "thunderpunch"]}, + {generation: 5, level: 55, gender: "M", isHidden: true, moves: ["dragonrush", "safeguard", "wingattack", "extremespeed"]}, + {generation: 5, level: 50, gender: "M", nature: "Brave", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["fireblast", "safeguard", "outrage", "hyperbeam"], pokeball: "cherishball"}, + {generation: 6, level: 55, gender: "M", isHidden: true, moves: ["dragondance", "outrage", "hurricane", "extremespeed"], pokeball: "cherishball"}, + {generation: 6, level: 62, gender: "M", ivs: {hp: 31, def: 31, spa: 31, spd: 31}, moves: ["agility", "slam", "barrier", "hyperbeam"], pokeball: "cherishball"}, + {generation: 8, level: 80, gender: "F", nature: "Jolly", abilities: ["innerfocus"], ivs: {hp: 30, atk: 31, def: 30, spa: 30, spd: 31, spe: 31}, moves: ["dragonclaw", "dracometeor", "hurricane", "dragondance"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 5, level: 50}, + {generation: 7, level: 10}, + ], + }, + mewtwo: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "8V"], + allyswitch: ["8M"], + amnesia: ["9M", "9L32", "8M", "8L32", "8V", "7L79", "7V", "6L79", "5L50", "4L57", "4S1", "3L77"], + ancientpower: ["9L8", "8L8"], + aquatail: ["7T", "6T", "5T", "4T"], + aurasphere: ["9M", "9L40", "8M", "8L40", "7L70", "6L70", "6S4", "6S5", "5L93", "5S2", "4L100"], + avalanche: ["9M", "8M", "4M"], + barrier: ["8V", "7L64", "7V", "6L64", "6S4", "5L1", "4L8", "3L11"], + bide: ["7V"], + blizzard: ["9M", "8M", "8V", "8S7", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7V", "3T"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "8V"], + confusion: ["9L1", "8L1", "8V", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + counter: ["7V", "3T"], + curse: ["7V"], + darkpulse: ["9M"], + detect: ["7V"], + disable: ["9L1", "8L1", "8V", "8S7", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + dive: ["8M", "6M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M"], + earthquake: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + electroball: ["9M", "8M", "5S2"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9L88", "8M", "8L88", "7L15", "7V", "6L15", "5L15", "4L22", "3L44"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["9L56", "8M", "8L56", "7L43", "6L43", "5L57", "4L64", "4S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healpulse: ["5S3"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "8M", "5S3"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S3", "4M", "3M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["8L1", "7T", "7L1"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mefirst: ["7L93", "6L93", "5L71", "4L79"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "7V", "3T"], + metronome: ["9M", "8M", "7V", "3T"], + mimic: ["7V", "3T"], + miracleeye: ["7L29", "6L29", "5L29", "4L36"], + mist: ["9L64", "8L64", "8V", "7L86", "7V", "6L86", "5L36", "4L43", "3L22"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + payday: ["8M", "8V", "7V"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + powergem: ["9M"], + powerswap: ["9L56", "8M", "8L56", "7L43", "6L43", "5L57", "4L64", "4S1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "8V"], + psychic: ["9M", "9L48", "8M", "8L48", "8V", "8S7", "7M", "7L57", "7V", "7S6", "6M", "6L57", "6S4", "6S5", "5M", "5L64", "4M", "4L71", "3M", "3L66", "3S0"], + psychicterrain: ["9M", "8M"], + psychocut: ["9L16", "8M", "8L16", "7L36", "7S6", "6L36", "5L43", "4L50", "4S1"], + psychup: ["7M", "7L22", "7V", "6M", "6L22", "5M", "5L22", "4M", "4L29", "3T", "3L33"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psystrike: ["9L72", "8L72", "7L100", "6L100", "6S5", "5L100", "5S2", "5S3"], + psywave: ["8V", "7L1", "7V"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["9L80", "8L80", "8V", "8S7", "7L50", "7V", "7S6", "6L50", "6S4", "6S5", "5L79", "4L86", "3L44", "3S0"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L86", "4M", "4L93", "3M", "3L55", "3S0"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "5S2", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skullbash: ["7V"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + speedswap: ["8M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L1", "8M", "8L1", "8V", "7L8", "7V", "7S6", "6L8", "5L8", "4T", "4L15", "3T", "3L22", "3S0"], + takedown: ["9M", "7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V"], + terablast: ["9M"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + watergun: ["7V"], + waterpulse: ["7T", "6T", "4M", "3M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["swift", "recover", "safeguard", "psychic"]}, + {generation: 4, level: 70, shiny: 1, moves: ["psychocut", "amnesia", "powerswap", "guardswap"]}, + {generation: 5, level: 70, moves: ["psystrike", "shadowball", "aurasphere", "electroball"], pokeball: "cherishball"}, + {generation: 5, level: 100, nature: "Timid", ivs: {spa: 31, spe: 31}, isHidden: true, moves: ["psystrike", "icebeam", "healpulse", "hurricane"], pokeball: "cherishball"}, + {generation: 6, level: 70, moves: ["recover", "psychic", "barrier", "aurasphere"]}, + {generation: 6, level: 100, shiny: true, isHidden: true, moves: ["psystrike", "psychic", "recover", "aurasphere"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["psychic", "recover", "swift", "psychocut"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "disable", "recover", "blizzard"]}, + ], + encounters: [ + {generation: 1, level: 70}, + ], + eventOnly: true, + }, + mew: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + agility: ["9M", "8M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9S26", "8M"], + allyswitch: ["8M", "7T", "5M"], + amnesia: ["9M", "9L10", "8M", "8L10", "8V", "7L60", "6L60", "5L60", "4L60", "4S17"], + ancientpower: ["9L30", "8L30", "7L50", "7V", "6L50", "5L50", "4T", "4L50", "4S14", "3L50"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurasphere: ["9M", "9L90", "9S26", "8M", "8L90", "7L100", "6L100", "5L100", "4L100", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19"], + auroraveil: ["7M"], + avalanche: ["9M", "8M", "4M"], + barrier: ["8V", "7L40", "7S24", "6L40", "5L40", "4L40", "4S15"], + batonpass: ["9M", "9L20", "8M", "8L20", "7L80", "6L80", "5L80", "4L80"], + beatup: ["8M"], + bide: ["7V"], + bind: ["7T", "6T", "5T"], + blastburn: ["9M"], + blazekick: ["8M"], + blizzard: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7V", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bravebird: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + brutalswing: ["8M", "7M"], + bubblebeam: ["7V"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "8M"], + bulkup: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "4M", "3M"], + burningjealousy: ["8T"], + calmmind: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["8V"], + corrosivegas: ["8T"], + cosmicpower: ["8M"], + counter: ["7V", "3T"], + covet: ["7T", "6T", "5T"], + crosspoison: ["8M"], + crunch: ["9M", "8M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "9S26", "8M", "8V", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "9S26", "8M", "8V", "7M", "6M"], + defensecurl: ["7V", "3T"], + defog: ["7T", "4M"], + detect: ["7V"], + dig: ["9M", "8M", "8V", "7V", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["7V", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dracometeor: ["9M"], + dragonbreath: ["7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9S26", "8M", "8V", "7T", "6T", "5T", "4M"], + dragonrage: ["7V"], + dragontail: ["9M", "8V", "7M", "6M", "5M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["8V", "7M", "7V", "6M", "5M", "4M", "3T"], + drillrun: ["9M", "8M", "8V", "7T", "6T", "5T"], + dualchop: ["7T", "6T", "5T"], + dualwingbeat: ["8T"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "9S26", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "8M"], + eggbomb: ["7V"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T", "6T", "5T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + energyball: ["9M", "9S26", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + explosion: ["7M", "7V", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["3S2", "3S3"], + faketears: ["9M", "8M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["3S4", "3S5"], + fireblast: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M"], + firepledge: ["9M"], + firepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M", "8M"], + fissure: ["7V"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["9M", "8M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + fly: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "8V", "7T", "6T", "5T"], + frenzyplant: ["9M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + futuresight: ["8M"], + gastroacid: ["7T", "6T", "5T", "4T"], + gigadrain: ["9M", "8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasspledge: ["9M"], + grassyglide: ["8T"], + grassyterrain: ["9M", "8M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["8V", "7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatcrash: ["8M"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + horndrill: ["7V"], + hurricane: ["9M", "8M"], + hydrocannon: ["9M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "9S26", "8M", "7T", "6T", "5T"], + hypnosis: ["4S20", "3S6", "3S7"], + icebeam: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["9M", "9L70", "8M", "8L70"], + incinerate: ["6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "8V", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["8T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafblade: ["8M"], + leafstorm: ["9M", "8M"], + leechlife: ["9M", "8M", "7M"], + lifedew: ["9L40", "9S26", "8L40"], + lightscreen: ["9M", "9S26", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + liquidation: ["9M", "8M", "7T"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T", "4T"], + mefirst: ["7L70", "6L70", "5L70", "4L70"], + megadrain: ["8V", "7V"], + megahorn: ["8M", "8V"], + megakick: ["8M", "7V", "3T"], + megapunch: ["8M", "8V", "7L10", "7V", "6L10", "5L10", "4L10", "4S16", "3T", "3L20", "3S0"], + metalclaw: ["9M"], + meteorbeam: ["8T"], + metronome: ["9M", "9L60", "8M", "8L60", "8V", "7L20", "7V", "7S24", "6L20", "5L20", "4L20", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19", "3T", "3L30", "3S0"], + mimic: ["8V", "7V", "3T"], + mistyexplosion: ["8T"], + mistyterrain: ["9M", "8M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["9M", "9L50", "8M", "8L50", "8V", "7L90", "6L90", "5L90", "4L90"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightmare: ["7V", "3T"], + nightshade: ["9M", "3S8", "3S9"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "8V", "7T", "6T", "5T", "4T"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + payday: ["8M", "8V", "7V"], + phantomforce: ["9M", "8M"], + pinmissile: ["8M"], + playrough: ["9M", "8M", "8V"], + pluck: ["5M", "4M"], + poisonjab: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + poisontail: ["9M"], + pollenpuff: ["9M", "9S26", "8M"], + poltergeist: ["8T"], + pounce: ["9M"], + pound: ["9L1", "8L1", "8V", "8S25", "7L1", "7V", "7S23", "6L1", "6S22", "5L1", "4L1", "4S21", "3L1", "3S0", "3S1"], + powergem: ["9M", "9S26", "8M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + powerwhip: ["8M"], + protect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "9L100", "8M", "8L100", "8V", "7M", "7L30", "7V", "7S24", "6M", "6L30", "5M", "5L30", "4M", "4L30", "4S19", "3M", "3L40"], + psychicfangs: ["9M", "8M"], + psychicterrain: ["9M", "8M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "9S26", "8M", "7M", "6M", "5M"], + psywave: ["8V", "7V"], + quash: ["7M", "6M", "5M"], + rage: ["7V"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + razorshell: ["8M"], + razorwind: ["7V"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + reflecttype: ["9L1", "8L1", "7L1", "6L1", "5L1"], + rest: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "4S20", "3M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T", "3S10", "3S11"], + rollout: ["7V", "4T", "3T"], + roost: ["8V", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scald: ["8M", "8V", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + seismictoss: ["8V", "7V", "3T"], + selfdestruct: ["8M", "8V", "7V", "3T"], + shadowball: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + skullbash: ["7V"], + skyattack: ["7T", "7V", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + smartstrike: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + softboiled: ["7V", "3T"], + solarbeam: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + speedswap: ["8M"], + spikes: ["9M", "8M"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "8V", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + steelroller: ["8T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + submission: ["7V"], + substitute: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["8M", "8V", "7T", "6T", "5T", "4T"], + surf: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "9S26", "8M", "8V", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T", "4S20"], + tailslap: ["8M"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "7V"], + taunt: ["9M", "8M", "8V", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["8V", "7V", "4S14", "4S15", "4S16", "4S17", "4S18", "4S19", "4S20"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "9S26", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "8V", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["8V", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "8M"], + trailblaze: ["9M"], + transform: ["9L80", "8L80", "8V", "7L1", "7V", "7S24", "6L1", "5L1", "4L1", "4S18", "3L10", "3S0", "3S1"], + triattack: ["8M", "8V", "7V"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + vacuumwave: ["4T"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + waterfall: ["9M", "8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["7V"], + waterpledge: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + whirlwind: ["7V"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["9M", "8M", "8V", "7M", "6M", "5M", "4M"], + zapcannon: ["7V", "3S12", "3S13"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 30, shiny: 1, moves: ["pound", "transform", "megapunch", "metronome"]}, + {generation: 3, level: 10, moves: ["pound", "transform"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["fakeout"]}, + {generation: 3, level: 10, moves: ["fakeout"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["feintattack"]}, + {generation: 3, level: 10, moves: ["feintattack"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["hypnosis"]}, + {generation: 3, level: 10, moves: ["hypnosis"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["nightshade"]}, + {generation: 3, level: 10, moves: ["nightshade"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["roleplay"]}, + {generation: 3, level: 10, moves: ["roleplay"], pokeball: "pokeball"}, + {generation: 3, level: 30, shiny: 1, moves: ["zapcannon"]}, + {generation: 3, level: 10, moves: ["zapcannon"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["ancientpower", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["barrier", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["megapunch", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["amnesia", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["transform", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["psychic", "metronome", "teleport", "aurasphere"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["synthesis", "return", "hypnosis", "teleport"], pokeball: "cherishball"}, + {generation: 4, level: 5, moves: ["pound"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["pound"], pokeball: "cherishball"}, + {generation: 7, level: 5, perfectIVs: 5, moves: ["pound"], pokeball: "pokeball"}, + {generation: 7, level: 50, moves: ["psychic", "barrier", "metronome", "transform"], pokeball: "cherishball"}, + {generation: 8, level: 1, moves: ["pound"], pokeball: "pokeball"}, + {generation: 9, level: 5, moves: ["pollenpuff", "darkpulse", "dragonpulse", "thunderbolt", "dazzlinggleam", "aurasphere", "flamethrower", "airslash", "shadowball", "energyball", "earthpower", "icebeam", "hypervoice", "sludgebomb", "psyshock", "powergem", "flashcannon", "surf", "swift", "lightscreen", "lifedew"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + chikorita: { + learnset: { + ancientpower: ["7E", "7V", "6E", "5E", "4T", "4E", "3E", "3S1"], + aromatherapy: ["7L42", "7E", "6L42", "6E", "5L42", "5E", "4L42", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L34", "7E", "7V", "6L34", "6E", "5L34", "5E", "4L34", "4E", "3T", "3L29"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flail: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["3S1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + grasswhistle: ["7E", "6E", "5E", "4E", "3E"], + grassyterrain: ["7E", "6E"], + growl: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + headbutt: ["7V", "4T"], + healpulse: ["7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["7E", "6E", "5E", "4E", "3E"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leafstorm: ["7E", "6E", "5E", "4E"], + leechseed: ["7E", "7V", "6E", "5E", "4E", "3E"], + lightscreen: ["7M", "7L31", "7V", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L36"], + magicalleaf: ["7L20", "6L20", "5L20", "4L20"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L23", "6L23", "5L23", "4M", "4L23"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], + poisonpowder: ["7L9", "7V", "6L9", "5L9", "4L9", "3L15"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["7L6", "7V", "6L6", "5L6", "4L6", "3L8", "3S0"], + reflect: ["7M", "7L17", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L12"], + refresh: ["7E", "6E", "5E"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L39", "7V", "6M", "6L39", "5M", "5L39", "4M", "4L39", "3M", "3L43"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7L45", "7V", "6M", "6L45", "5M", "5L45", "4M", "4L45", "3M", "3L50"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L28", "7V", "6L28", "5L28", "4L28"], + swordsdance: ["7M", "7V", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L22"], + tackle: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + vinewhip: ["7E", "7V", "6E", "5E", "4E", "3E"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + wringout: ["7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "razorleaf"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["tackle", "growl", "ancientpower", "frenzyplant"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["tackle", "growl"], pokeball: "cherishball"}, + ], + }, + bayleef: { + learnset: { + ancientpower: ["4T"], + aromatherapy: ["7L50", "6L50", "5L50", "4L50"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L40", "7V", "6L40", "5L40", "4L40", "3T", "3L31"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + growl: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["7M", "7L36", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L39"], + magicalleaf: ["7L22", "6L22", "5L22", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L26", "6L26", "5L26", "4M", "4L26"], + naturepower: ["7M", "6M"], + poisonpowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L47"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L55"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L32", "7V", "6L32", "5L32", "4L32"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "7L12", "7V", "6T", "6L12", "5T", "5L12", "4T", "4L12", "3L23"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + meganium: { + learnset: { + ancientpower: ["4T"], + aromatherapy: ["7L60", "6L60", "5L60", "4L60"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L46", "7V", "6L46", "6S0", "5L46", "4L46", "3T", "3L31"], + bulldoze: ["7M", "6M", "5M"], + bulletseed: ["4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragontail: ["7M", "6M", "5M"], + earthquake: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frenzyplant: ["7T", "6T", "5T", "4T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + growl: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L41"], + magicalleaf: ["7L22", "6L22", "5L22", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L26", "6L26", "5L26", "4M", "4L26"], + naturepower: ["7M", "6M"], + outrage: ["7T", "6T", "5T", "4T"], + petalblizzard: ["7L1", "6L1"], + petaldance: ["7L1", "6L32", "5L32", "4L32"], + poisonpowder: ["7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorleaf: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + reflect: ["7M", "7L18", "7V", "6M", "6L18", "5M", "5L18", "4M", "4L18", "3M", "3L1"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L54", "3M", "3L51"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7L66", "7V", "6M", "6L66", "6S0", "5M", "5L66", "4M", "4L66", "3M", "3L61"], + stompingtantrum: ["7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7L34", "7V", "6L34", "5L34", "4L34"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "7L12", "7V", "6T", "6L12", "6S0", "5T", "5L12", "4T", "4L12", "3L23"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 6, level: 50, isHidden: true, moves: ["solarbeam", "sunnyday", "synthesis", "bodyslam"], pokeball: "pokeball"}, + ], + }, + cyndaquil: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + blastburn: ["3S1"], + bodyslam: ["9M", "3T"], + burnup: ["7L58"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["9E", "7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L22", "7L22", "7V", "6L22", "5L22", "4L22", "3T"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L55", "7L55", "7E", "6L55", "6E", "5L55", "5E", "4L46", "4E", "3T"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L12"], + endure: ["9M", "7V", "4M", "3T"], + eruption: ["9L64", "7L64", "6L58", "5L58", "4L49"], + extrasensory: ["9E", "7E", "6E", "5E", "4E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M"], + firepledge: ["9M", "7T", "6T", "5T"], + firespin: ["9M"], + flameburst: ["7E", "6E", "5E"], + flamecharge: ["9M", "9L28", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + flamethrower: ["9M", "9L40", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L37", "3M", "3L46"], + flamewheel: ["9L19", "7L19", "7V", "6L19", "5L19", "4L19", "3L27"], + flareblitz: ["9M", "7E", "6E", "5E", "4E"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9E", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["6M", "5M"], + inferno: ["9L46", "7L46", "6L46", "5L46"], + ironhead: ["9M"], + irontail: ["7V"], + lavaplume: ["9L37", "7L37", "6L37", "5L37", "4L31"], + leer: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "7E", "6M", "6E", "5E"], + overheat: ["9M", "9L58", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L13", "7L13", "7E", "7V", "6L13", "6E", "5L13", "5E", "4L13", "4E", "3L19", "3E"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], + rollout: ["9L49", "7L49", "7V", "6L49", "5L49", "4T", "4L40", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L6", "7L6", "7V", "6L6", "5L6", "4L4", "3L6", "3S0"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + submission: ["7V"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L31", "7L31", "7V", "6L31", "5L31", "4T", "4L28", "3T", "3L36"], + tackle: ["9L1", "7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["7E", "7V", "6E", "5E", "4E", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "leer", "smokescreen"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["tackle", "leer", "reversal", "blastburn"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["tackle", "leer"], pokeball: "cherishball"}, + ], + }, + quilava: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + burnup: ["7L68"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L24", "7L24", "7V", "6L24", "5L24", "4L24", "3T"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L64", "7L64", "6L64", "5L64", "4L53", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L12"], + endure: ["9M", "7V", "4M", "3T"], + eruption: ["9L75", "7L75", "6L68", "5L68", "4L57"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M"], + firepledge: ["9M", "7T", "6T", "5T"], + firespin: ["9M"], + flamecharge: ["9M", "9L35", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + flamethrower: ["9M", "9L46", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L42", "3M", "3L54"], + flamewheel: ["9L20", "7L20", "7V", "6L20", "5L20", "4L20", "3L31"], + flareblitz: ["9M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + inferno: ["9L53", "7L53", "6L53", "5L53"], + ironhead: ["9M"], + irontail: ["7V"], + lavaplume: ["9L42", "7L42", "6L42", "5L42", "4L35"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "9L68", "7M", "6M", "5M", "4M", "3M"], + playrough: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["9L57", "7L57", "7V", "6L57", "5L57", "4T", "4L46", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L31", "7L31", "7V", "6L31", "5L31", "4T", "4L31", "3T", "3L42"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M"], + zenheadbutt: ["9M"], + }, + }, + typhlosion: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + blastburn: ["9M", "7T", "6T", "5T", "4T"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + burnup: ["7L74"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["9L24", "7L24", "7V", "6L24", "5L24", "4L24", "3T"], + detect: ["7V"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L1", "7L1", "6L1", "5L69", "4L53", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "7V", "4M", "3T"], + eruption: ["9L1", "7L1", "6L1", "5L74", "4L57"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M"], + firepledge: ["9M", "7T", "6T", "5T"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + firespin: ["9M"], + flamecharge: ["9M", "9L35", "7M", "7L35", "6M", "6L35", "6S1", "5M", "5L35"], + flamethrower: ["9M", "9L48", "7M", "7L48", "7V", "6M", "6L48", "5M", "5L48", "4M", "4L42", "3M", "3L60", "3S0"], + flamewheel: ["9L20", "7L20", "7V", "6L20", "6S1", "5L20", "4L20", "3L31", "3S0"], + flareblitz: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gyroball: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + inferno: ["9L56", "7L56", "6L56", "5L56"], + ironhead: ["9M"], + irontail: ["7V"], + laserfocus: ["7T"], + lavaplume: ["9L43", "7L43", "6L43", "5L43", "4L35"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "9L74", "7M", "6M", "6S1", "5M", "4M", "3M"], + playrough: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21", "3S0"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9L61", "7L61", "7V", "6L61", "5L61", "4T", "4L46", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stompingtantrum: ["9M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "9L31", "7L31", "7V", "6L31", "6S1", "5L31", "4T", "4L31", "3T", "3L45", "3S0"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["7T"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wildcharge: ["9M", "7M", "6M", "5M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["quickattack", "flamewheel", "swift", "flamethrower"], pokeball: "pokeball"}, + {generation: 6, level: 50, isHidden: true, moves: ["overheat", "flamewheel", "flamecharge", "swift"], pokeball: "pokeball"}, + ], + }, + typhlosionhisui: { + learnset: { + aerialace: ["9M"], + blastburn: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + defensecurl: ["9L24"], + dig: ["9M"], + doubleedge: ["9L1"], + earthquake: ["9M"], + ember: ["9L1"], + endure: ["9M"], + eruption: ["9L1"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepledge: ["9M"], + firepunch: ["9M"], + firespin: ["9M"], + flamecharge: ["9M", "9L35"], + flamethrower: ["9M", "9L48"], + flamewheel: ["9L20"], + flareblitz: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + gyroball: ["9L1"], + heatwave: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + infernalparade: ["9L0"], + inferno: ["9L56"], + ironhead: ["9M"], + lavaplume: ["9L43"], + leer: ["9L1"], + lowkick: ["9M"], + nightshade: ["9M"], + overheat: ["9M", "9L74"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9L13"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rollout: ["9L61"], + shadowball: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + smokescreen: ["9L1"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M", "9L31"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + }, + totodile: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["7E", "7V", "6E", "5E", "4T", "4E", "3E"], + aquajet: ["7E", "6E", "5E", "4E"], + aquatail: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L20"], + blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "7E", "6T", "6E", "5T", "5E"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chipaway: ["7L29", "6L29", "5L29"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["7L27", "7E", "7V", "6L27", "6E", "5L27", "5E", "4L27", "4E", "3E", "3S1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonclaw: ["7M", "6M", "5M", "4E", "3E"], + dragondance: ["7E", "6E", "5E", "4E"], + dynamicpunch: ["7V", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7E", "6E", "5E"], + flail: ["7L22", "6L22", "5L22", "4L22"], + flatter: ["7E", "6E"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydrocannon: ["3S1"], + hydropump: ["7L50", "7E", "7V", "6L50", "6E", "5L50", "5E", "4L43", "4E", "3L52", "3E"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L20", "6L20", "5L20", "4L20"], + icepunch: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L8", "7V", "6L8", "5L8", "4L8", "3L7", "3S0"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + razorwind: ["7V"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L27"], + scratch: ["7L1", "7V", "6L1", "6S2", "5L1", "4L1", "3L1", "3S0", "3S1"], + screech: ["7L36", "7V", "6L36", "5L36", "4L34", "3L43"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slash: ["7L34", "7V", "6L34", "5L34", "4L29", "3L35"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + superpower: ["7T", "7L48", "6T", "6L48", "5T", "5L48", "4T", "4L41"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + thrash: ["7L41", "7E", "7V", "6L41", "6E", "5L41", "5E", "4L22", "4E", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L6", "7V", "6L6", "5L6", "4L6", "3L13"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["7V", "4M"], + workup: ["7M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "leer", "rage"], pokeball: "pokeball"}, + {generation: 3, level: 5, moves: ["scratch", "leer", "crunch", "hydrocannon"], pokeball: "pokeball"}, + {generation: 6, level: 5, moves: ["scratch", "leer"], pokeball: "cherishball"}, + ], + }, + croconaw: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + aquatail: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4L42"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chipaway: ["7L33", "6L33", "5L33"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["7L30", "6L30", "5L30", "4L30"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonclaw: ["7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flail: ["7L24", "6L24", "5L24", "4L24"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + hail: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["7L60", "7V", "6L60", "5L60", "4L51", "3L55"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L21", "6L21", "5L21", "4L21"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L8", "7V", "6L8", "5L8", "4L8", "3L1"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L28"], + scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7L42", "7V", "6L42", "5L42", "4L39", "3L45"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slash: ["7L39", "7V", "6L39", "5L39", "4L33", "3L37"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + superpower: ["7T", "7L57", "6T", "6L57", "5T", "5L57", "4T", "4L48"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + thrash: ["7L48", "6L48", "5L48", "4L24"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["7V", "4M"], + workup: ["7M"], + }, + }, + feraligatr: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7L1", "6L30", "5L30", "4L30"], + ancientpower: ["4T"], + aquatail: ["7T", "7L63", "6T", "6L63", "5T", "5L63", "4T", "4L50"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["4M"], + bite: ["7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + blizzard: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L37", "6L37", "5L37"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["7L32", "6L32", "6S0", "5L32", "4L32"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonclaw: ["7M", "6M", "5M", "4M", "3M"], + dragonpulse: ["7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flail: ["7L24", "6L24", "5L24", "4L24"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydrocannon: ["7T", "6T", "5T", "4T"], + hydropump: ["7L76", "7V", "6L76", "5L76", "4L63", "3L58"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L21", "6L21", "5L21", "4L21"], + icepunch: ["7T", "7V", "6T", "6S0", "5T", "4T", "3T"], + icywind: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["7T"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L15", "7V", "6L15", "5L15", "4L15", "3L28"], + scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7L50", "7V", "6L50", "6S0", "5L50", "4L45", "3L47"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slash: ["7L45", "7V", "6L45", "5L45", "4L37", "3L38"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + superpower: ["7T", "7L71", "6T", "6L71", "5T", "5L71", "4T", "4L58"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + thrash: ["7L58", "6L58", "5L58", "4L24"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + waterfall: ["7M", "6M", "6S0", "5M", "4M", "3M"], + watergun: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["7V", "4M"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 50, isHidden: true, moves: ["icepunch", "crunch", "waterfall", "screech"], pokeball: "pokeball"}, + ], + }, + sentret: { + learnset: { + amnesia: ["7L36", "7V", "6L36", "5L36", "4L36", "3L49"], + aquatail: ["7T", "6T", "5T", "4T"], + assist: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + babydolleyes: ["7E"], + batonpass: ["7L39", "6L39", "5L39", "4L39"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + captivate: ["7E", "6E", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7E", "6E", "5E", "4E"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7L4", "7V", "6L4", "5L4", "4L4", "3T", "3L4"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "5D", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focusenergy: ["7E", "7V", "6E", "5E", "4E", "3E"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["7L19", "6L19", "5L19", "4L19", "3L31"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["7L13", "7V", "6L13", "5L13", "4L13", "3L12"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16", "3L17"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4L47"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + mefirst: ["7L42", "6L42", "5L42", "4L42"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickattack: ["7L7", "7V", "6L7", "5L7", "4L7", "3L7"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "7L28", "7V", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L40"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["7E", "7V", "6E", "5E", "4E", "3E"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slam: ["7L25", "7V", "6L25", "5L25", "4L25", "3L24"], + slash: ["7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["7V"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["4M"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 2, level: 2}, + ], + }, + furret: { + learnset: { + agility: ["7L1"], + amnesia: ["7L42", "7V", "6L42", "5L42", "4L42", "3L59"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7L46", "6L46", "5L46", "4L46"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + coil: ["7L1"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + detect: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["7L21", "6L21", "5L21", "4L21", "3L37"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["7L13", "7V", "6L13", "5L13", "4L13", "3L12"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L19"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "7L56", "6T", "6L56", "5T", "5L56", "4L56"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + mefirst: ["7L50", "6L50", "5L50", "4L50"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "7L32", "7V", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L48"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slam: ["7L28", "7V", "6L28", "5L28", "4L28", "3L28"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L36", "6L36", "5L36", "4T", "4L36"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["7T", "6T", "5T"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["4M"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 2, level: 6}, + {generation: 4, level: 6}, + ], + }, + hoothoot: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7E", "6E", "5E", "4E"], + aircutter: ["4T"], + airslash: ["8M", "8L18", "7L31", "6L33", "5L33", "4L29"], + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + calmmind: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L10", "7V", "6L21", "5L21", "4L21", "3L34"], + curse: ["7V"], + defog: ["8E", "7T", "7E", "6E", "5E", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8L39", "7M", "7L46", "7V", "6M", "6L57", "5M", "5L57", "4M", "4L49", "3T", "3L48"], + dualwingbeat: ["8T"], + echoedvoice: ["8L6", "7M", "7L13", "6M", "6L25", "5M", "5L25"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L21", "7L22", "6L45", "5L45", "4L37"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8E", "7E", "6E", "5E", "4E", "3E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L6", "3S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M", "7E"], + hypervoice: ["8M", "7T", "6T", "5T"], + hypnosis: ["8L36", "7L4", "7V", "6L5", "5L5", "4L5", "3L16"], + imprison: ["8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meanlook: ["7E"], + mimic: ["3T"], + mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], + moonblast: ["8L33", "7L40"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8E", "7E", "6E", "5E", "5D", "4E"], + ominouswind: ["4T"], + peck: ["8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L11"], + pluck: ["5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychoshift: ["8L15", "7L19", "6L49", "5L49", "4L41"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["8M", "8L12", "7M", "7L28", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L22"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8L30", "7M", "7L37", "6M", "6L53", "5T", "5L53", "4M", "4L45"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + skyattack: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3T", "3E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + synchronoise: ["7L43", "6L41", "5L41"], + tackle: ["8L3", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["8L24", "7L25", "7V", "6L29", "5L29", "4L25", "3L28"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "8L27", "7T", "7L34", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "7L16", "6T", "6L37", "5T", "5L37", "4T", "4L33"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "foresight"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 2, level: 2}, + ], + }, + noctowl: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + aircutter: ["4T"], + airslash: ["8M", "8L18", "7L35", "6L37", "5L37", "4L32"], + amnesia: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + calmmind: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L10", "7V", "6L22", "5L22", "4L22", "3L41"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["8L53", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L67", "4M", "4L57", "3T", "3L57"], + dualwingbeat: ["8T"], + echoedvoice: ["8L1", "7M", "7L13", "6M", "6L27", "5M", "5L27"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L23", "7L23", "6L52", "5L52", "4L42"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + hypnosis: ["8L48", "7L1", "7V", "6L1", "5L1", "4L1", "3L16"], + imprison: ["8M"], + laserfocus: ["7T"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + moonblast: ["8L43", "7L47"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + ominouswind: ["4T"], + peck: ["8L1", "7L7", "7V", "6L9", "5L9", "4L9", "3L1"], + pluck: ["5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychoshift: ["8L15", "7L19", "6L57", "5L57", "4L47"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "8L12", "7M", "7L31", "7V", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L25"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8L38", "7M", "7L43", "6M", "6L62", "5T", "5L62", "4M", "4L52"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + skyattack: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + synchronoise: ["7L51", "6L47", "5L47"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["8L28", "7L27", "7V", "6L32", "5L32", "4L27", "3L33"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "8L33", "7T", "7L39", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "7L16", "6T", "6L42", "5T", "5L42", "4T", "4L37"], + }, + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 5}, + {generation: 7, level: 19}, + ], + }, + ledyba: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M", "3S0"], + agility: ["7L29", "7V", "6L30", "5L30", "4L30", "3L43"], + aircutter: ["4T"], + airslash: ["7L36"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7L26", "7V", "6L22", "5L22", "4L22", "3L29"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + bugbuzz: ["7L33", "7E", "6L41", "6E", "5L41", "5E", "4L41", "4E"], + captivate: ["4M"], + cometpunch: ["7L22", "7V", "6L9", "5L9", "5D", "4L9", "3L15"], + confide: ["7M", "6M"], + counter: ["7E"], + curse: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + dizzypunch: ["7E", "6E", "5E"], + doubleedge: ["7L40", "7V", "6L38", "5L38", "4L38", "3T", "3L50"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dynamicpunch: ["7V", "3T"], + encore: ["7E", "6E", "5E", "4E"], + endure: ["7E", "7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lightscreen: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L22"], + machpunch: ["7L15", "6L17", "5L17", "4L17"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["7E", "7V", "6E", "5E", "4E", "3E", "3S0"], + reflect: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L22"], + refresh: ["3S0"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L22"], + screech: ["7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["7L19", "7E", "6L25", "6E", "5L25", "5E", "4M", "4L25", "4E", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["7L5", "7V", "6L6", "5L6", "4L6", "3L8", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["7L8", "7V", "6L33", "5L33", "4T", "4L33", "3T", "3L36"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "7E", "6T", "6E", "5T", "4T"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "7V", "6T", "5T", "5D", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["refresh", "psybeam", "aerialace", "supersonic"]}, + ], + encounters: [ + {generation: 2, level: 3}, + ], + }, + ledian: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7L33", "7V", "6L36", "5L36", "4L36", "3L51"], + aircutter: ["4T"], + airslash: ["7L42"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7L29", "7V", "6L24", "5L24", "4L24", "3L33"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L38", "6L53", "5L53", "4L53"], + captivate: ["4M"], + cometpunch: ["7L24", "7V", "6L1", "5L1", "4L1", "3L15"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T"], + dig: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["7L47", "7V", "6L48", "5L48", "4L48", "3T", "3L60"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "6T", "5T", "4M"], + dynamicpunch: ["7V", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L24"], + machpunch: ["7L15", "6L17", "5L17", "4L17"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L24"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L12", "7V", "6M", "6L14", "5M", "5L14", "4M", "4L14", "3M", "3L24"], + secretpower: ["6M", "4M", "3M"], + silverwind: ["7L20", "6L29", "5L29", "4M", "4L29"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["7L1", "7V", "6L41", "5L41", "4T", "4L41", "3T", "3L42"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 5}, + ], + }, + spinarak: { + learnset: { + absorb: ["7L5"], + agility: ["7L33", "7V", "6L33", "5L33", "4L33", "3L45"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + bugbite: ["7T", "6T", "5T", "5D", "4T"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L8", "5L8", "4L8", "3L11"], + crosspoison: ["7L47", "6L47", "5L47"], + curse: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M", "3S0"], + disable: ["7E", "7V", "6E", "5E", "4E", "3E"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "7E", "6T", "6E", "5T", "5E", "5D"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["7L22", "7V", "6L22", "5L22", "4L22", "3L30"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + infestation: ["7M", "7L8", "6M"], + leechlife: ["7M", "7V", "6L12", "5L12", "4L12", "3L23"], + lunge: ["7E"], + megahorn: ["7E", "6E"], + mimic: ["3T"], + naturalgift: ["4M"], + nightshade: ["7L15", "7V", "6L15", "5L15", "4L15", "3L17", "3S0"], + nightslash: ["7E", "6E", "5E"], + pinmissile: ["7L36", "6L36", "5L36", "4L36"], + poisonjab: ["7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43", "4E"], + poisonsting: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["7E", "7V", "6E", "5E", "4E", "3E"], + psychic: ["7M", "7L40", "7V", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L53"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + ragepowder: ["7E", "6E", "5E"], + refresh: ["3S0"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L12", "7V", "6L5", "5L5", "4L5", "3L6"], + screech: ["7V"], + secretpower: ["6M", "4M", "3M"], + shadowsneak: ["7L19", "6L19", "5L19", "4L19"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E", "3S0"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + sonicboom: ["7E", "7V", "6E", "5E", "4E", "3E"], + spiderweb: ["7L29", "7V", "6L29", "5L29", "4L29", "3L37"], + stickyweb: ["7L50", "6L50"], + stringshot: ["7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L26", "6L26", "5L26", "4T", "4L26"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["7E", "6E", "5E", "4E"], + toxicthread: ["7L54"], + twineedle: ["7E", "6E", "5E"], + venoshock: ["7M", "6M", "5M"], + xscissor: ["7M", "6M", "5M"], + }, + eventData: [ + {generation: 3, level: 14, moves: ["refresh", "dig", "signalbeam", "nightshade"]}, + ], + encounters: [ + {generation: 2, level: 3}, + ], + }, + ariados: { + learnset: { + absorb: ["7L1"], + agility: ["7L37", "7V", "6L37", "5L37", "4L37", "3L53"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + crosspoison: ["7L55", "6L55", "5L55"], + curse: ["7V"], + dig: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "6T", "5T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fellstinger: ["7L1", "6L1"], + flash: ["7V", "6M", "5M", "4M", "3M"], + focusenergy: ["7L1"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyswipes: ["7L23", "7V", "6L23", "5L23", "4L23", "3L34"], + gigadrain: ["7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "7L8", "6M"], + leechlife: ["7M", "7V", "6L12", "5L12", "4L12", "3L25"], + mimic: ["3T"], + naturalgift: ["4M"], + nightshade: ["7L15", "7V", "6L15", "5L15", "4L15", "3L17"], + pinmissile: ["7L41", "6L41", "5L41", "4L41"], + poisonjab: ["7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L50"], + poisonsting: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L63"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L12", "7V", "6L1", "5L1", "4L1", "3L1"], + screech: ["7V"], + secretpower: ["6M", "4M", "3M"], + shadowsneak: ["7L19", "6L19", "5L19", "4L19"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + smartstrike: ["7M"], + snore: ["7T", "7V", "6T", "3T"], + solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + spiderweb: ["7L32", "7V", "6L32", "5L32", "4L32", "3L43"], + stickyweb: ["7L58", "6L58"], + stompingtantrum: ["7T"], + stringshot: ["7L1", "7V", "6L1", "5L1", "4T", "4L1", "3L1"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L28", "6L28", "5L28", "4T", "4L28"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["7M", "7L1"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxicthread: ["7L63"], + venomdrench: ["7L1", "6L1"], + venoshock: ["7M", "6M", "5M"], + xscissor: ["7M", "6M", "5M"], + }, + encounters: [ + {generation: 2, level: 7}, + {generation: 4, level: 5}, + {generation: 6, level: 19, maxEggMoves: 1}, + ], + }, + chinchou: { + learnset: { + agility: ["8M", "7E", "6E", "5E", "4E"], + amnesia: ["8M", "7E", "6E", "5E", "5D", "4E", "3E"], + aquaring: ["8L32", "7L42", "6L42", "5L42", "4L39"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L12", "7L20", "6L20", "5L31", "4L28"], + captivate: ["4M"], + charge: ["8L24", "7L50", "6L50", "5L50", "4L45", "3L49"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["8L16", "7L17", "7V", "6L17", "5L12", "4L17", "3L29"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + discharge: ["8L28", "7L34", "6L34", "5L39", "4L34"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + electroball: ["8M", "8L4", "7L9", "6L9", "5L28"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L36", "7L31", "7E", "7V", "6L9", "6E", "5L9", "5E", "4L9", "4E", "3L13", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L44", "7L45", "7V", "6L45", "5L45", "4L42", "3L41"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + iondeluge: ["7L47", "6L47"], + mimic: ["3T"], + mist: ["8E", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8E", "7E", "6E", "5E", "4E"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], + signalbeam: ["7T", "7L28", "6T", "6L28", "5T", "5L34", "4T", "4L31"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8E", "7E", "6E"], + spark: ["8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L5"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["8L40", "7L39", "7V", "6L23", "5L23", "4L23", "3L37"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8L8", "7M", "7L6", "7V", "6M", "6L6", "5M", "5L6", "5D", "4M", "4L6", "3T", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L12", "7V", "6L1", "5L17", "4L12", "3L17"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7E", "7V", "6E", "5E", "4M", "4E"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + }, + lanturn: { + learnset: { + agility: ["8M"], + amnesia: ["8M"], + aquaring: ["8L36", "7L47", "6L47", "5L52", "4L47"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "4M"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L12", "7L20", "6L20", "5L35", "4L30"], + captivate: ["4M"], + charge: ["8L24", "7L58", "6L58", "5L64", "4L57", "3L61"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["8L16", "7L17", "7V", "6L17", "5L17", "4L17", "3L32"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + discharge: ["8L30", "7L37", "6L37", "5L47", "4L40"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M", "8L1", "7L1", "6L1"], + electroball: ["8M", "8L1", "7L1", "6L1", "5L30"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L42", "7L33", "7V", "6L9", "5L9", "4L9", "3L13"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L54", "7L51", "7V", "6L51", "5L57", "4L52", "3L50"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + iondeluge: ["7L54", "6L54"], + mimic: ["3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L29", "6T", "6L29", "5T", "5L40", "4T", "4L35"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spark: ["8L20", "7L23", "7V", "6L20", "5L20", "4L20", "3L25"], + spitup: ["8L0", "7L1", "6L27", "5L27", "4L27"], + spotlight: ["7L1"], + stockpile: ["8L0", "7L1", "6L27", "5L27", "4L27"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["8L0", "7L1", "6L27", "5L27", "4L27"], + takedown: ["8L48", "7L43", "7V", "6L23", "5L23", "4L23", "3L43"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "8L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L12", "7V", "6L1", "5L12", "4L12", "3L17"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 4, level: 20}, + {generation: 6, level: 26, maxEggMoves: 1}, + {generation: 7, level: 10}, + ], + }, + togepi: { + learnset: { + aerialace: ["8E"], + afteryou: ["8L28", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + ancientpower: ["8L16", "7L33", "6L33", "5L33", "4T", "4L33", "3L21", "3S1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L44", "7L41", "6L41", "5L41", "4L42", "3L41"], + bestow: ["7L25", "6L25", "5L25"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + charm: ["8M", "8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + doubleedge: ["8L32", "7L45", "7V", "6L45", "5L45", "4L46", "3T", "3L37"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "7L17", "7V", "6L17", "5L17", "4L19", "3L17"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8E", "7E", "6E", "5E", "4E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + followme: ["8L40", "7L21", "6L21", "5L21", "4L24", "3L25", "3S1"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["8M", "3S1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + lastresort: ["8L48", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L51"], + lifedew: ["8L8"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E", "5D", "4E"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "8L24", "7L5", "7V", "6L5", "5L5", "5D", "4L6", "3T", "3L4", "3S0"], + mimic: ["3T"], + mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], + morningsun: ["8E", "7E", "6E", "5E"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + peck: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + playrough: ["8M"], + pound: ["8L1"], + present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychoshift: ["8E", "7E", "6E", "5E", "4E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L33"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + storedpower: ["8M", "7E", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L4", "7L9", "7V", "6L9", "5L9", "4L10", "3L9", "3S0"], + swift: ["8M", "7V", "4T", "3T"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M", "3S1"], + trick: ["8M", "7T", "6T", "5T", "4T"], + uproar: ["8M", "7T", "6T", "5T", "5D", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8L52", "7L29", "6L29", "5L29", "4L28", "3L29"], + workup: ["8M", "7M", "5M"], + yawn: ["8L20", "7L13", "6L13", "5L13", "4L15", "3L13", "3S0"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 20, gender: "F", abilities: ["serenegrace"], moves: ["metronome", "charm", "sweetkiss", "yawn"], pokeball: "pokeball"}, + {generation: 3, level: 25, moves: ["triattack", "followme", "ancientpower", "helpinghand"]}, + ], + }, + togetic: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["8L28", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + aircutter: ["4T"], + ancientpower: ["8L16", "7L33", "6L33", "5L33", "4T", "4L33", "3L21"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L44", "7L41", "6L41", "5L41", "4L42", "3L41"], + bestow: ["7L25", "6L25", "5L25"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charm: ["8M", "8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["7V", "3T"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["8L32", "7L45", "7V", "6L45", "5L45", "4L46", "3T", "3L37"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "7L17", "7V", "6L17", "5L17", "4L19", "3L17"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["8L0", "7L14", "6L14"], + fireblast: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + focuspunch: ["7T", "6T", "4M", "3M"], + followme: ["8L40", "7L21", "6L21", "5L21", "4L24", "3L25"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + lastresort: ["8L48", "7T", "7L49", "6T", "6L49", "5T", "5L49", "4T", "4L51"], + lifedew: ["8L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["8M", "7L1", "6L1", "5L1", "4L1", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "8L24", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playrough: ["8M"], + pound: ["8L1"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L33"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skyattack: ["3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + softboiled: ["3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetkiss: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + uproar: ["8M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8L52", "7L29", "6L29", "5L29", "4L28", "3L29"], + workup: ["8M", "7M", "5M"], + yawn: ["8L20", "7L13", "6L13", "5L13", "4L15", "3L13"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + togekiss: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + afteryou: ["8L1", "7T", "7L1", "6T", "6L1"], + aircutter: ["4T"], + airslash: ["8M", "8L0", "7L1", "6L1", "5L1", "5S0", "4L1"], + allyswitch: ["8M"], + amnesia: ["8M"], + ancientpower: ["8L1", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["8M", "8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + batonpass: ["8M", "8L1"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["8L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["8M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M"], + extremespeed: ["8L1", "7L1", "6L1", "5L1", "5S0", "4L1"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fairywind: ["8L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + fly: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + followme: ["8L1"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + hypervoice: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + laserfocus: ["7T"], + lastresort: ["8L1", "7T", "6T", "5T", "4T"], + lifedew: ["8L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magicalleaf: ["8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M", "8L1"], + mudslap: ["4T"], + mysticalfire: ["8M"], + nastyplot: ["8M"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playrough: ["8M"], + pluck: ["5M", "4M"], + pound: ["8L1"], + present: ["5S0"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["4T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L1", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skyattack: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + steelwing: ["8M", "7M", "6M", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["8L1"], + swift: ["8M", "4T"], + tailwind: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["8M", "8L1"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + uproar: ["8M"], + waterpulse: ["7T", "6T", "4M"], + wish: ["8L1"], + workup: ["8M", "7M", "5M"], + yawn: ["8L1"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["extremespeed", "aurasphere", "airslash", "present"]}, + ], + }, + natu: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M", "3S0"], + aircutter: ["4T"], + airslash: ["8M"], + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "3S0"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L15", "7L23", "7V", "6L23", "5L23", "4L23", "3L40"], + cosmicpower: ["8M"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + drillpeck: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L45", "7L44", "7V", "6L36", "5L36", "4L36", "3L30", "3S0"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M", "8L35", "7L47", "6L47", "5L47", "4L44"], + haze: ["7E", "7V", "6E", "5E", "4E", "3E"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + imprison: ["8M"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L12", "6L12", "5L12", "4L12"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mefirst: ["7L50", "6L20", "5L20", "4L20"], + mimic: ["3T"], + miracleeye: ["7L36", "6L17", "5L17", "4L17"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8L20", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L10", "3S0"], + ominouswind: ["7L20", "6L20", "5L44", "4T", "4L39"], + painsplit: ["7T", "6T", "5T", "4T"], + peck: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["5M", "4M"], + powerswap: ["8M", "8L30", "7L47", "6L47", "5L47", "4L44"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L35", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L50", "4M", "4L47", "3M", "3L50"], + psychoshift: ["8L26", "7L39", "6L33", "5L33", "4L33"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["8M", "7M", "6M", "5M"], + quickattack: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + simplebeam: ["8E", "7E", "6E"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + skyattack: ["7T", "6T", "3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7E", "7V", "6M", "6E", "5E", "4M", "4E", "3M", "3E"], + storedpower: ["8M", "8L5", "7L17", "6L17", "5L39"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8E", "7E", "6E", "5E", "4T", "4E"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + synchronoise: ["7E", "6E", "5E"], + tailwind: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + teleport: ["8L10", "7L9", "7V", "6L9", "5L9", "4L9", "3L20"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + wish: ["8L40", "7L28", "6L28", "5L28", "4L28", "3L30"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 22, moves: ["batonpass", "futuresight", "nightshade", "aerialace"]}, + ], + }, + xatu: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + airslash: ["8M", "8L0", "7L1", "6L25"], + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L15", "7L23", "7V", "6L23", "5L23", "4L23", "3L50"], + cosmicpower: ["8M"], + curse: ["7V"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + endure: ["8M", "7V", "4M", "3T"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L55", "7L49", "7V", "6L42", "5L42", "4L42", "3L35"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M", "8L34", "7L53", "6L53", "5L59", "4L54"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + imprison: ["8M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L12", "6L12", "5L12", "4L12"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mefirst: ["7L57", "6L20", "5L20", "4L20"], + mimic: ["3T"], + miracleeye: ["7L39", "6L17", "5L17", "4L17"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["8L20", "7L1", "7V", "6L1", "5L6", "4L6", "3L10"], + ominouswind: ["7L20", "6L20", "5L54", "4T", "4L47"], + painsplit: ["7T", "6T", "5T", "4T"], + peck: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + pluck: ["5M", "4M"], + powerswap: ["8M", "8L34", "7L53", "6L53", "5L54", "4L54"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L41", "7M", "7L35", "7V", "6M", "6L35", "5M", "5L66", "4M", "4L59", "3M", "3L65"], + psychoshift: ["8L28", "7L43", "6L37", "5L37", "4L37"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T", "3T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + storedpower: ["8M", "8L1", "7L17", "6L17", "5L47"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L27", "4T", "4L27"], + telekinesis: ["7T", "5M"], + teleport: ["8L1", "7L1", "7V", "6L1", "5L9", "4L9", "3L20"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + wish: ["8L48", "7L29", "6L29", "5L30", "4L30", "3L35"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 16, gender: "M", nature: "Modest", ivs: {hp: 15, atk: 20, def: 15, spa: 20, spd: 20, spe: 20}, abilities: ["synchronize"], pokeball: "pokeball"}, + {generation: 6, level: 24, maxEggMoves: 1}, + {generation: 7, level: 21}, + ], + }, + mareep: { + learnset: { + afteryou: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + agility: ["9M", "9E", "7E", "6E", "5E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "7E", "7V", "6E", "5E", "4E", "3T", "3E", "3S2"], + captivate: ["4M"], + charge: ["9L15", "7L15", "7E", "6L15", "6E", "5L23", "5E", "4L23", "4E", "3E"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L25", "7L25", "6L25", "5L25"], + cottonguard: ["9L36", "7L36", "6L36", "5L32"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L19", "4L19", "3L23", "3S0"], + curse: ["7V"], + dazzlinggleam: ["9M", "9L39"], + defensecurl: ["7V", "3T"], + dig: ["9M"], + discharge: ["9L32", "7L32", "6L32", "5L37", "4L28"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "9E", "7E", "6E"], + electricterrain: ["9M", "9E", "7E", "6E"], + electroball: ["9M", "9L22", "7L22", "6L22", "5L28"], + electroweb: ["9E", "7T", "6T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flatter: ["9E", "7E", "6E", "5E", "4E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L5", "4L5", "3L1", "3S1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T", "3S2"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdback: ["6S3"], + irontail: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4M", "3M"], + lightscreen: ["9M", "9L43", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L46", "4M", "4L37", "3M", "3L30"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + naturalgift: ["4M"], + odorsleuth: ["7E", "6E", "5E", "4E", "3E"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L50", "4L41"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "7V", "5D", "4E", "3E"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7V", "6M", "5M", "4E", "3E"], + sandattack: ["7E", "6E", "5E", "4E"], + screech: ["7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "5D", "4M", "3M"], + signalbeam: ["7T", "7L39", "6T", "6L39", "5T", "5L41", "4T", "4L32"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "6S3", "5L1", "4L1", "3L1", "3S1"], + takedown: ["9M", "9L18", "7L18", "7E", "7V", "6L18", "6E", "5L18", "5E", "4E", "3E"], + terablast: ["9M"], + thunder: ["9M", "9L46", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L55", "4M", "4L46", "3M", "3L37", "3S0"], + thunderbolt: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thundershock: ["9L8", "7L8", "7V", "6L8", "6S3", "5L10", "5D", "4L10", "3L9", "3S0", "3S1", "3S2"], + thunderwave: ["9M", "9L4", "7M", "7L4", "7V", "6M", "6L4", "6S3", "5M", "5L14", "4M", "4L14", "3T", "3L16", "3S0", "3S2"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 37, gender: "F", moves: ["thunder", "thundershock", "thunderwave", "cottonspore"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "thundershock"], pokeball: "pokeball"}, + {generation: 3, level: 17, moves: ["healbell", "thundershock", "thunderwave", "bodyslam"]}, + {generation: 6, level: 10, moves: ["holdback", "tackle", "thunderwave", "thundershock"], pokeball: "cherishball"}, + ], + }, + flaaffy: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + charge: ["9L16", "7L16", "6L16", "5L25", "4L25"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L29", "7L29", "6L29", "5L29"], + cottonguard: ["9L43", "7L43", "6L43", "5L36"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L20", "4L20", "3L27"], + counter: ["3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "9L47"], + defensecurl: ["7V", "3T"], + dig: ["9M"], + discharge: ["9L38", "7L38", "6L38", "5L42", "4L31"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L31"], + electroweb: ["7T", "6T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "9L52", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L53", "4M", "4L42", "3M", "3L36"], + lowkick: ["9M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + powergem: ["9M", "9L34", "7L34", "6L34", "5L59", "4L47"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4T", "4L36"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thunder: ["9M", "9L56", "7M", "7L56", "7V", "6M", "6L56", "5M", "5L65", "4M", "4L53", "3M", "3L45"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + thundershock: ["9L6", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L9", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L14", "4M", "4L14", "3T", "3L18"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 7, level: 11, pokeball: "pokeball"}, + ], + }, + ampharos: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["9M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + charge: ["9L16", "7L16", "6L16", "5L25", "4L25"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L29", "7L29", "6L29", "5L29"], + cottonguard: ["9L46", "7L46", "6L46", "5L40"], + cottonspore: ["9L11", "7L11", "7V", "6L11", "5L20", "4L20", "3L27"], + counter: ["3T"], + curse: ["7V"], + dazzlinggleam: ["9M", "9L51"], + defensecurl: ["7V", "3T"], + dig: ["9M"], + discharge: ["9L40", "7L40", "6L40", "5L48", "4L34"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonpulse: ["9M", "9L1", "7T", "7L1", "6T", "6L1"], + dragontail: ["9M"], + dynamicpunch: ["7V", "3T"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L33"], + electroweb: ["7T", "6T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + icepunch: ["9M"], + iondeluge: ["7L1", "6L1"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L57", "7M", "7L57", "7V", "6M", "6L57", "5M", "5L63", "4M", "4L51", "3M", "3L42"], + lowkick: ["9M"], + magneticflux: ["9L1", "7L1", "6L1"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + naturalgift: ["4M"], + outrage: ["9M", "7T", "6T", "5T", "4T"], + powergem: ["9M", "9L35", "7L35", "6L35", "5L71", "4L59"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L51", "6T", "6L51", "5T", "5L55", "4T", "4L42"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stompingtantrum: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thunder: ["9M", "9L62", "7M", "7L62", "7V", "6M", "6L62", "5M", "5L79", "4M", "4L68", "3M", "3L57"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "9L0", "7T", "7L1", "7V", "6T", "6L30", "5T", "5L30", "4T", "4L30", "3T", "3L30"], + thundershock: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunderwave: ["9M", "9L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "7M", "6M", "5M"], + zapcannon: ["9L1", "7L1", "7V", "6L1"], + }, + }, + azurill: { + learnset: { + aquajet: ["9E", "8E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bellydrum: ["9E", "8E"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E", "3T"], + bounce: ["9L15", "8M", "8L15", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + brutalswing: ["8M"], + bubble: ["7L7", "6L7", "5L10", "4L10", "3L10"], + bubblebeam: ["9L6", "8L6", "7L13", "6L13", "5L13"], + camouflage: ["7E", "6E"], + captivate: ["4M"], + charm: ["9M", "9L9", "8M", "8L9", "7L10", "6L10", "5L2", "4L2", "3L3"], + confide: ["7M", "6M"], + copycat: ["9E", "8E", "7E", "6E"], + covet: ["7T", "6T", "5T"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + helpinghand: ["9M", "9L3", "8M", "8L3", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + mimic: ["3T"], + muddywater: ["8M", "7E", "6E", "5E"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + perishsong: ["9E", "8E"], + present: ["9E", "8E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sing: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + slam: ["9L12", "8L12", "7L20", "7E", "6L20", "6E", "5L15", "5E", "4L15", "4E", "3L15", "3E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + soak: ["9E", "8E", "7E", "6E", "5E"], + splash: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9E", "8E"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwhip: ["9L1", "8L1", "7L2", "6L2", "5L7", "4L7", "3L6"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L18", "4L18", "3L21"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7L5", "7E", "6L5", "6E", "5L5", "5E"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + marill: { + learnset: { + amnesia: ["9M", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + aquajet: ["8E", "7E", "6E", "5E", "5D", "4E"], + aquaring: ["9L24", "8L24", "7L28", "6L28", "5L23", "4L23"], + aquatail: ["9L19", "8L19", "7T", "7L20", "6T", "6L20", "5T", "5L37", "4T", "4L37"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bellydrum: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E", "3T"], + bounce: ["9L15", "8M", "8L15", "7T", "6T", "5T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bubble: ["7L7", "6L7", "5L1"], + bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L18", "4L18", "3L21"], + bulldoze: ["9M"], + camouflage: ["7E", "6E"], + captivate: ["4M"], + charm: ["9M", "9L9", "8M", "8L9"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["8E"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["9L1", "8L1", "7L10", "7V", "6L10", "5L2", "5D", "4L2", "3T", "3L3"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L33", "8L33", "7L37", "7V", "6L23", "5L27", "4L27", "3T", "3L28"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7V"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L30", "8M", "8L30", "7L47", "6L40", "5L42", "4L42", "3L45"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "5D", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "7V", "6M", "5M", "4E", "3E"], + liquidation: ["9M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M"], + mimic: ["3T"], + mistyexplosion: ["8T"], + mistyterrain: ["9M", "8M"], + muddywater: ["8M", "7E", "6E", "5E"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + perishsong: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + playrough: ["9M", "9L21", "8M", "8L21", "7L23", "6L23"], + poweruppunch: ["6M"], + present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L27", "8M", "8L27", "7M", "7L31", "7V", "6M", "6L31", "5M", "5L32", "4M", "4L32", "3M", "3L36"], + refresh: ["7E", "6E", "5E", "4E"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L15"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sing: ["8E"], + slam: ["9L12", "8L12"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["8E"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + superpower: ["9L36", "8M", "8L36", "7T", "7L40", "7E", "6T", "6L37", "6E", "5T", "5L37", "5E", "4T", "4E"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L2", "7V", "6L2", "5L7", "4L7", "3L6"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["8E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L10", "4L10", "3L10"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L5", "7E", "6L5", "6E", "5L5", "5E"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + azumarill: { + learnset: { + amnesia: ["9M", "8M"], + aquaring: ["9L30", "8L30", "7L31", "6L31", "5L27", "4L27"], + aquatail: ["9L21", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L47", "4T", "4L47"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["9L15", "8M", "8L15", "7T", "6T", "5T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bubble: ["7L7", "6L7", "5L1"], + bubblebeam: ["9L6", "8L6", "7L13", "7V", "6L13", "5L20", "4L20", "3L24"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "9L9", "8M", "8L9"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + curse: ["7V"], + defensecurl: ["9L1", "8L1", "7L10", "7V", "6L10", "5L1", "4L1", "3T", "3L1"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disarmingvoice: ["9M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L45", "8L45", "7L42", "7V", "6L25", "5L33", "4L33", "3T", "3L34"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "8M"], + dynamicpunch: ["7V", "3T"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L40", "8M", "8L40", "7L55", "6L46", "5L54", "4L54", "3L57"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + liquidation: ["9M", "8M", "7T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["9M"], + mimic: ["3T"], + mistyexplosion: ["8T"], + mistyterrain: ["9M", "8M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + playrough: ["9M", "9L25", "8M", "8L25", "7L25", "6L25"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L35", "8M", "8L35", "7M", "7L35", "7V", "6M", "6L35", "5M", "5L40", "4M", "4L40", "3M", "3L45"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rollout: ["9L1", "8L1", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L15"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + slam: ["9L12", "8L12"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + steelroller: ["8T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["9L50", "8M", "8L50", "7T", "7L46", "6T", "6L42", "5T", "5L42", "4T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L1", "6L1", "5L1"], + whirlpool: ["8M", "7V", "4M"], + workup: ["8M", "7M", "5M"], + }, + encounters: [ + {generation: 5, level: 5}, + {generation: 6, level: 16, maxEggMoves: 1}, + ], + }, + bonsly: { + learnset: { + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + block: ["9L12", "8L12", "7T", "7L29", "6T", "6L26", "5T", "5L22", "4T", "4L22"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + counter: ["9L40", "8L40", "7L36", "6L33"], + covet: ["7T", "6T", "5T"], + curse: ["9E", "8E", "7E", "6E", "5E"], + defensecurl: ["9E", "8E", "7E", "6E", "5E", "4E"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9L44", "8L44", "7L43", "6L40", "5L46", "4L46"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + feintattack: ["7L19", "6L19", "5L25", "4L25"], + flail: ["9L4", "8L4", "7L5", "6L5", "5L6", "4L6"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + grassknot: ["9M"], + harden: ["9E", "8E", "7E", "6E", "5E", "4E"], + headbutt: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + lowkick: ["9M", "9L36", "8M", "8L36", "7T", "7L8", "6T", "6L8", "5T", "5L9", "4T", "4L9"], + mimic: ["9L16", "8L16", "7L15", "6L15", "5L17", "4L17"], + mudshot: ["9M"], + mudslap: ["9M"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockpolish: ["9E", "8E", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "6M", "6L29", "5M", "5L33", "4M", "4L33"], + rockthrow: ["9L8", "8L8", "7L12", "6L12", "5L14", "4L14"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L30", "4M", "4L30"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M", "7E", "6E", "5E", "4E"], + slam: ["5L38", "4L38"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L41", "4T", "4L41"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + tearfullook: ["9L24", "8L24", "7L22"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + sudowoodo: { + learnset: { + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["9L12", "8L12", "7T", "7L29", "6T", "6L26", "5T", "5L22", "4T", "4L22", "3L33"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + counter: ["9L40", "8L40", "7L36", "6L33", "5L33", "3T"], + covet: ["7T", "6T", "5T"], + curse: ["8E", "7E", "7V", "6E", "5E"], + defensecurl: ["8E", "7E", "7V", "6E", "5E", "4E", "3T"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L44", "8L44", "7L43", "6L40", "5L46", "4L46", "3T", "3L57"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7E", "7V", "6E", "5E", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9L1", "8M", "8L1"], + feintattack: ["7L19", "7V", "6L19", "5L25", "4L25", "3L41"], + firepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + flail: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L9"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + hammerarm: ["9L1", "8L1", "7L50", "6L47", "5L49", "4L49"], + harden: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8E", "7E", "7V", "6E", "5E", "4T", "4E"], + headsmash: ["9L48", "8L48", "7L54"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + irondefense: ["9M", "8M"], + lowkick: ["9M", "9L36", "8M", "8L36", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L17"], + lowsweep: ["9M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + meteorbeam: ["8T"], + mimic: ["9L16", "8L16", "7L15", "7V", "6L15", "5L17", "4L17", "3T", "3L1"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + powergem: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M"], + rockpolish: ["8E", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L33", "7V", "6M", "6L29", "5M", "5L33", "4M", "4L33", "3T", "3L25"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L26", "6M", "6L22", "5M", "5L30", "4M", "4L30", "3M"], + roleplay: ["7T", "6T", "5T", "5D", "4T"], + rollout: ["8E", "7E", "7V", "6E", "5E", "5D", "4T", "4E", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + slam: ["9L0", "8L0", "7L1", "7V", "6L15", "5L38", "4L38", "3L49"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L1", "8M", "8L1", "7M", "7L47", "6M", "6L43", "5M", "5L43", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L28", "8L28", "7L40", "6L36", "5L41", "4T", "4L41"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + tearfullook: ["9L24", "8L24", "7L22"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["8M"], + woodhammer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + }, + }, + hoppip: { + learnset: { + absorb: ["9L6", "7L1"], + acrobatics: ["9M", "9L24", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + amnesia: ["7E", "7V", "6E", "5E", "4E", "3E"], + aromatherapy: ["7E", "6E", "5E", "4E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bounce: ["9L35", "7T", "7L46", "6T", "6L46", "5T", "5L46", "5D", "4T", "4L40"], + bulletseed: ["9M", "9L12", "7L19", "6L19", "5L19", "5D", "4M", "4L19", "3M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confusion: ["7E", "7V", "6E", "5E", "4E", "3E"], + cottonguard: ["9E", "7E", "6E", "5E"], + cottonspore: ["9L27", "7L34", "7V", "6L34", "5L34", "4L28", "3L25"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + doubleedge: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["9L8", "7L10", "6L10"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L32", "7T", "7L43", "7V", "6T", "6L43", "5T", "5L43", "4M", "4L37", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M", "9E", "7E", "6E"], + growl: ["7V"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leafstorm: ["9M"], + leechseed: ["9L19", "7L22", "7V", "6L22", "5L22", "4L22", "3L20"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L22", "7L25", "7V", "6L25", "5L25", "4L25", "3L30"], + memento: ["9L38", "7L49", "6L49", "5L49", "4L43"], + mimic: ["3T"], + naturalgift: ["4M"], + payday: ["7V"], + poisonpowder: ["9L10", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4E", "3E"], + ragepowder: ["9E", "7L31", "6L31", "5L31"], + raindance: ["9M"], + reflect: ["9M", "7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + silverwind: ["4M"], + sleeppowder: ["9L10", "7L16", "7V", "6L16", "5L16", "4L16", "3L17"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + strengthsap: ["9E", "7E"], + stunspore: ["9L10", "7L14", "7V", "6L14", "5L14", "4L14", "3L15"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + switcheroo: ["9E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L15", "7T", "7L4", "7V", "6T", "6L4", "5T", "5L4", "5D", "4T", "4L4", "3L5"], + tackle: ["9L1", "7L8", "7V", "6L8", "5L10", "4L10", "3L10"], + tailwhip: ["9L4", "7L6", "7V", "6L6", "5L7", "4L7", "3L5"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "9L29", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L31"], + worryseed: ["9E", "7T", "7L40", "7E", "6T", "6L40", "6E", "5T", "5L40", "5E", "4T", "4L34", "4E"], + }, + encounters: [ + {generation: 2, level: 3}, + ], + }, + skiploom: { + learnset: { + absorb: ["9L1", "7L1"], + acrobatics: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bounce: ["9L41", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4T", "4L48"], + bulletseed: ["9M", "9L15", "7L20", "6L20", "5L20", "4M", "4L20", "3M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + cottonspore: ["9L31", "7L40", "7V", "6L40", "5L40", "4L32", "3L29"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["9L10", "7L10", "6L10"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L37", "7T", "7L52", "7V", "6T", "6L52", "5T", "5L52", "4M", "4L44", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leafstorm: ["9M"], + leechseed: ["9L20", "7L24", "7V", "6L24", "5L24", "4L24", "3L22"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L24", "7L28", "7V", "6L28", "5L28", "4L28", "3L36"], + memento: ["9L44", "7L60", "6L60", "5L60", "4L52"], + mimic: ["3T"], + naturalgift: ["4M"], + poisonpowder: ["9L12", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M"], + ragepowder: ["7L36", "6L36", "5L36"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + silverwind: ["4M"], + sleeppowder: ["9L12", "7L16", "7V", "6L16", "5L16", "4L16", "3L17"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + stunspore: ["9L12", "7L14", "7V", "6L14", "5L14", "4L14", "3L15"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + tackle: ["9L8", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "9L34", "7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L36"], + worryseed: ["7T", "7L48", "6T", "6L48", "5T", "5L48", "4T", "4L40"], + }, + encounters: [ + {generation: 4, level: 12}, + ], + }, + jumpluff: { + learnset: { + absorb: ["9L1", "7L1"], + acrobatics: ["9M", "9L30", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + bounce: ["9L49", "7T", "7L64", "6T", "6L64", "5T", "5L64", "4T", "4L48"], + bulletseed: ["9M", "9L15", "7L20", "6L20", "5L20", "5S0", "4M", "4L20", "3M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + cottonspore: ["9L35", "7L44", "7V", "6L44", "5L44", "4L32", "3L33"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["9M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["9L10", "7L10", "6L10"], + falseswipe: ["5S0"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L43", "7T", "7L59", "7V", "6T", "6L59", "5T", "5L59", "4M", "4L44", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + leafstorm: ["9M"], + leechseed: ["9L20", "7L24", "7V", "6L24", "5L24", "5S0", "4L24", "3L22"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L24", "7L29", "7V", "6L29", "5L29", "4L28", "3L44"], + memento: ["9L55", "7L69", "6L69", "5L69", "4L52"], + mimic: ["3T"], + naturalgift: ["4M"], + poisonpowder: ["9L12", "7L12", "7V", "6L12", "5L12", "4L12", "3L13"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M"], + ragepowder: ["7L39", "6L39", "5L39"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + silverwind: ["4M"], + sleeppowder: ["9L12", "7L16", "7V", "6L16", "5L16", "5S0", "4L16", "3L17"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + splash: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + stunspore: ["9L12", "7L14", "7V", "6L14", "5L14", "4L14", "3L15"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L1", "7T", "7L1", "7V", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + tackle: ["9L8", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uturn: ["9M", "9L39", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L36"], + worryseed: ["7T", "7L54", "6T", "6L54", "5T", "5L54", "4T", "4L40"], + }, + eventData: [ + {generation: 5, level: 27, gender: "M", isHidden: true, moves: ["falseswipe", "sleeppowder", "bulletseed", "leechseed"]}, + ], + }, + aipom: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7L29", "7E", "7V", "6L29", "6E", "5L29", "5E", "4L29", "4E", "3L50", "3E"], + astonish: ["7L8", "6L8", "5L8", "4L8", "3L13"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7L11", "7V", "6L11", "5L11", "4L11", "3L18"], + beatup: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + bounce: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublehit: ["7L32", "6L32", "5L32", "4L32"], + doubleslap: ["7E", "7V", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7E", "6E", "5E", "5D", "4E"], + firepunch: ["7T", "7V", "6T", "5T", "5D", "4T", "3T"], + fling: ["7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["7L18", "7V", "6L18", "5L18", "4L18", "3L31"], + grassknot: ["7M", "6M", "5M", "4M"], + gunkshot: ["7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + lowkick: ["7T", "6T", "5T", "4T"], + lowsweep: ["7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["7L39", "6L39", "5L39", "4L39"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + quickguard: ["7E", "6E"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["7L4", "7V", "6L4", "5L4", "4L4", "3L6", "3S0"], + scratch: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + screech: ["7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L43", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slam: ["7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7L22", "7V", "6L22", "5L22", "4T", "4L22", "3T", "3L38"], + switcheroo: ["7E", "6E", "5E"], + tailslap: ["7E"], + tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + taunt: ["7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + tickle: ["7L15", "6L15", "5L15", "4L15", "3L25"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "tailwhip", "sandattack"], pokeball: "pokeball"}, + ], + }, + ambipom: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["7L29", "6L29", "5L29", "4L29"], + astonish: ["7L1", "6L1", "5L1", "4L1"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["7L11", "6L11", "5L11", "4L11"], + bounce: ["7T", "6T", "5T", "4T"], + brickbreak: ["7M", "6M", "5M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doublehit: ["7L32", "6L32", "5L32", "4L32"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualchop: ["7L1"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + firepunch: ["7T", "6T", "5T", "4T"], + fling: ["7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + focuspunch: ["7T", "6T", "4M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["7L18", "6L18", "5L18", "4L18"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + gunkshot: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icepunch: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + lowkick: ["7T", "6T", "5T", "4T"], + lowsweep: ["7M", "6M", "5M"], + mudslap: ["4T"], + nastyplot: ["7L39", "6L39", "5L39", "4L39"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["7L1", "6L1", "5L1", "4L1"], + scratch: ["7L1", "6L1", "5L1", "4L1"], + screech: ["7L25", "6L25", "5L25", "4L25"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + shadowball: ["7M", "6M", "5M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["7L22", "6L22", "5L22", "4T", "4L22"], + tailwhip: ["7L1", "6L1", "5L1", "4L1"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderpunch: ["7T", "6T", "5T", "4T"], + thunderwave: ["7M", "6M", "5M", "4M"], + tickle: ["7L15", "6L15", "5L15", "4L15"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + workup: ["7M", "5M"], + }, + }, + sunkern: { + learnset: { + absorb: ["9L7", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + afteryou: ["7T", "6T", "5T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7E", "6E", "5E"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9L34", "7L37", "6L37", "5L37", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "5D", "4T"], + encore: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + endeavor: ["9L25", "7T", "7L25", "6T", "6L25", "5T", "5L21", "4T", "4L21", "3L25"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L22", "7T", "7L22", "7V", "6T", "6L22", "5T", "5L41", "4M", "4L41", "3M", "3L42"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L7", "7E", "6L7", "6E", "5L13", "5E", "4L13", "4E", "3E"], + grassyterrain: ["9M", "9E", "7E", "6E"], + growth: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L6", "3S0"], + helpinghand: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["9E", "7L4", "7E", "6L4", "6E", "5L9", "5E", "4L9", "4E", "3L18"], + leafstorm: ["9M"], + leechseed: ["9E", "7L13", "7E", "6L13", "6E", "5L17", "5E", "4L17", "4E", "3E"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + megadrain: ["9L10", "7L10", "7V", "6L10", "5L5", "5D", "4L5", "3L13"], + mimic: ["3T"], + morningsun: ["9E", "7E", "6E", "5E"], + naturalgift: ["7L31", "7E", "6L31", "6E", "5L31", "5E", "4M"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + razorleaf: ["9L16", "7L16", "6L16", "5L29", "4L29"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9L39", "7T", "7L43", "6T", "6L43", "5T", "5L45", "4T", "4L45"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L31", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L37", "4M", "4L37", "3M", "3L30"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7E", "7V", "6E", "5E", "5D", "4E"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L28", "7T", "7L28", "7V", "6T", "6L28", "5T", "5L33", "4T", "4L33", "3L37"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["chlorophyll"], moves: ["absorb", "growth"], pokeball: "pokeball"}, + ], + }, + sunflora: { + learnset: { + absorb: ["9L7", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + afteryou: ["7T", "6T", "5T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bulletseed: ["9M", "9L25", "7L25", "6L25", "5L21", "4M", "4L21", "3M", "3L25"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + dazzlinggleam: ["9M"], + doubleedge: ["9L34", "7L37", "6L37", "5L37", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + flowershield: ["7L1", "6L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L22", "7T", "7L22", "7V", "6T", "6L22", "5T", "5L22", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L7", "6L7", "5L13", "4L13"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L6"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + ingrain: ["9L4", "7L4", "6L4", "5L9", "4L9", "3L18"], + leafstorm: ["9M", "9L43", "7L43", "6L43", "5L45", "4L43"], + leechseed: ["9L13", "7L13", "6L13", "5L17", "4L17"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M"], + megadrain: ["9L10", "7L10", "6L10", "5L5", "4L5"], + mimic: ["3T"], + naturalgift: ["7L31", "6L31", "5L31", "4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L50", "7L50", "6L50"], + petaldance: ["9L28", "7L28", "7V", "6L28", "5L33", "4L33", "3L37"], + pound: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + razorleaf: ["9L16", "7L16", "7V", "6L16", "5L29", "4L29", "3L13"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L31", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L41", "4M", "4L41", "3M", "3L42"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "9L39", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L37", "4M", "4L37", "3M", "3L30"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + worryseed: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25"], + }, + }, + yanma: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + airslash: ["7L54", "6L54", "5L54", "4L54"], + ancientpower: ["7L33", "6L33", "5L33", "4T", "4L33"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L57", "6L57", "5L57", "4L57"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7L17", "7V", "6L17", "5L17", "4L17", "3L25"], + doubleedge: ["7E", "6E", "5E", "3T"], + doubleteam: ["7M", "7L11", "7V", "6M", "6L11", "5M", "5L11", "4M", "4L11", "3M", "3L12"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + feint: ["7E", "6E", "5E", "5D", "4E"], + feintattack: ["7E", "6E", "5E", "4E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foresight: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "7V", "6T", "5T", "5D", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypnosis: ["7L38", "6L38", "5L38", "4L38", "3L23"], + leechlife: ["7E", "7V", "6E", "5E", "4E", "3E"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L30", "7E", "6L30", "6E", "5L30", "5E", "4L30", "4E"], + quickattack: ["7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L6"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["7E", "7V", "6E", "5E", "4E", "3E"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + screech: ["7L46", "7V", "6L46", "5L46", "4L46", "3L49"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + sonicboom: ["7L14", "7V", "6L14", "5L14", "4L14", "3L17"], + steelwing: ["7M", "6M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + supersonic: ["7L22", "7V", "6L22", "5L22", "4L22", "3L31"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27", "3L34"], + uturn: ["7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L49"], + whirlwind: ["7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["7L43", "7V", "6L43", "5L43", "4L43", "3L39"], + }, + }, + yanmega: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + aircutter: ["4T"], + airslash: ["7L1", "6L1", "5L54", "4L49"], + ancientpower: ["7L33", "6L33", "5L33", "4T", "4L33"], + attract: ["7M", "6M", "5M", "4M"], + bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["7L1", "6L1", "5L57", "4L54"], + captivate: ["4M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + detect: ["7L17", "6L17", "5L17", "4L17"], + doubleteam: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + dreameater: ["7M", "6M", "5M", "4M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + feint: ["7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "6T", "5T", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + leechlife: ["7M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["7L1", "6L1", "5L1", "4L1"], + ominouswind: ["4T"], + protect: ["7M", "6M", "5M", "4M"], + psychic: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + pursuit: ["7L30", "6L30", "5L30", "4L30"], + quickattack: ["7L1", "6L1", "5L1", "4L1"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + screech: ["7L46", "6L46", "5L46", "4L43"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + slash: ["7L43", "6L43", "5L43", "4L38"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + sonicboom: ["7L14", "6L14", "5L14", "4L14"], + steelwing: ["7M", "6M", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + supersonic: ["7L22", "6L22", "5L22", "4L22"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "7L27", "6T", "6L27", "5T", "5L27", "4T", "4L27"], + uturn: ["7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L46"], + }, + }, + wooper: { + learnset: { + acidspray: ["9M", "9E", "8E", "7E", "6E", "5E"], + afteryou: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["9M", "9L32", "8M", "8L32", "7L23", "7V", "6L23", "5L23", "4L23", "3L21"], + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + aquatail: ["9L24", "8L24", "7T", "6T", "5T", "5D", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "7E", "7V", "6E", "5E", "5D", "4E", "3T", "3E"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doublekick: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L33", "7V", "6M", "6L33", "5M", "5L33", "4M", "4L33", "3M", "3L36"], + eerieimpulse: ["8M", "7E", "6E"], + encore: ["9M", "8M", "7E", "6E", "5E", "4E"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + guardswap: ["8M", "7E", "6E"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9L12", "8L12", "7L43", "7V", "6L43", "5L43", "4L43", "3L51"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + liquidation: ["9M"], + mimic: ["3T"], + mist: ["9L12", "8L12", "7L43", "7V", "6L43", "5L43", "4L43", "3L51"], + mudbomb: ["7L19", "6L19", "5L19", "4L19"], + muddywater: ["9L28", "8M", "8L28", "7L47", "6L47", "5L47", "4L47"], + mudshot: ["9M", "9L8", "8M", "8L8", "7L9", "6L9", "5L9", "4L9", "3L16"], + mudslap: ["9M", "7V", "4T", "3T"], + mudsport: ["7L5", "7E", "6L5", "6E", "5L5", "5E", "4L5", "4E", "3E"], + naturalgift: ["4M"], + poweruppunch: ["8E", "7E"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L4", "8M", "8L4", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L41"], + recover: ["9E", "8E", "7E", "6E", "5E", "4E"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + slam: ["9L16", "8L16", "7L15", "7V", "6L15", "5L15", "4L15", "3L11"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikes: ["9M"], + spitup: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + stealthrock: ["9M"], + stockpile: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9L36", "8L36", "7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + yawn: ["9L21", "8L21", "7L29", "6L29", "5L29", "4L29", "3L31"], + }, + encounters: [ + {generation: 2, level: 4}, + ], + }, + wooperpaldea: { + learnset: { + acidspray: ["9M", "9E"], + afteryou: ["9E"], + amnesia: ["9M", "9L32"], + ancientpower: ["9E"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + counter: ["9E"], + curse: ["9E"], + dig: ["9M"], + doublekick: ["9E"], + earthpower: ["9M"], + earthquake: ["9M", "9L40"], + endure: ["9M"], + facade: ["9M"], + gunkshot: ["9M"], + haze: ["9E"], + helpinghand: ["9M"], + hydropump: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + mist: ["9E"], + mudshot: ["9M", "9L1"], + mudslap: ["9M"], + poisonjab: ["9M", "9L24"], + poisontail: ["9M", "9L8"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9E"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + slam: ["9L16"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L28"], + spikes: ["9M"], + spitup: ["9E"], + stealthrock: ["9M"], + stockpile: ["9E"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swallow: ["9E"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9L36"], + toxicspikes: ["9M", "9L12"], + trailblaze: ["9M"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M"], + yawn: ["9L21"], + }, + }, + quagsire: { + learnset: { + acidspray: ["9M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L40", "8M", "8L40", "7L24", "7V", "6L24", "5L24", "4L24", "3L23"], + ancientpower: ["4T"], + aquatail: ["9L28", "8L28", "7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L52", "8M", "8L52", "7M", "7L36", "7V", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L42"], + eerieimpulse: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + guardswap: ["8M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["9L12", "8L12", "7L48", "7V", "6L48", "5L48", "4L48", "3L61"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + liquidation: ["9M", "8M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mist: ["9L12", "8L12", "7L48", "7V", "6L48", "5L48", "4L48", "3L61"], + mudbomb: ["7L19", "6L19", "5L19", "4L19"], + muddywater: ["9L34", "8M", "8L34", "7L53", "6L53", "5L53", "4L53"], + mudshot: ["9M", "9L1", "8M", "8L1", "7L9", "6L9", "5L9", "4L9", "3L16"], + mudslap: ["9M", "7V", "4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "9L1", "8M", "8L1", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L41", "3M", "3L49"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + slam: ["9L16", "8L16", "7L15", "7V", "6L15", "5L15", "4L15", "3L11"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tailwhip: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + toxic: ["9L46", "8L46", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + yawn: ["9L23", "8L23", "7L31", "6L31", "5L31", "4L31", "3L35"], + }, + encounters: [ + {generation: 2, level: 15}, + {generation: 4, level: 10}, + ], + }, + clodsire: { + learnset: { + acidspray: ["9M"], + amnesia: ["9M", "9L0"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L48"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + megahorn: ["9L36"], + mudshot: ["9M", "9L8"], + mudslap: ["9M"], + poisonjab: ["9M", "9L24"], + poisonsting: ["9L1"], + poisontail: ["9M", "9L12"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + slam: ["9L16"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L30"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + surf: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9L40"], + toxicspikes: ["9M", "9L4"], + trailblaze: ["9M"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M"], + yawn: ["9L21"], + zenheadbutt: ["9M"], + }, + }, + murkrow: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + assurance: ["9L25", "7L25", "7E", "6L25", "6E", "5L25", "5E", "4L25"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L9", "3S0"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bravebird: ["9M", "9E", "7E", "6E", "5E", "4E"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3E"], + curse: ["7V"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + drillpeck: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["9E", "7E", "6E", "5E", "4E", "3E"], + feintattack: ["7L35", "7E", "7V", "6L35", "6E", "5L35", "5E", "4L35", "4E", "3L35"], + flatter: ["9E", "7E", "6E"], + fly: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "9L40", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + gust: ["9L5"], + haze: ["9L11", "7L11", "7V", "6L11", "5L11", "4L11", "3L22"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + hex: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + meanlook: ["9L35", "7L41", "7V", "6L41", "5L41", "4L41", "3L48"], + mimic: ["3T"], + mirrormove: ["7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M", "9L21", "7L21", "7V", "6L21", "5L21", "4L21", "3L27"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + peck: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + perishsong: ["9E", "7E", "6E", "5E", "4E", "3E"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychoshift: ["7E", "6E", "5E", "4E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L5", "7V", "6L5", "5L5", "4L5", "3L14"], + quash: ["9L60", "7M", "7L65", "6M", "6L65", "5M", "5L65"], + quickattack: ["7V"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9E", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + skyattack: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3T", "3E"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "7V", "6M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L50", "7L55", "6L55", "5L55", "4T", "4L45"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + tailwind: ["9M", "7T", "7L50", "6T", "6L50", "5T", "5L51", "4T"], + takedown: ["9M"], + taunt: ["9M", "9L31", "7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L40"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["9L55", "7M", "7L61", "6M", "6L61", "5M", "5L61", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M"], + whirlwind: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["9L15", "7L15", "7E", "7V", "6L15", "6E", "5L15", "5E", "4L15", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["insomnia"], moves: ["peck", "astonish"], pokeball: "pokeball"}, + ], + }, + honchkrow: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + comeuppance: ["9L65"], + confide: ["7M", "6M"], + confuseray: ["9M"], + darkpulse: ["9M", "9L55", "7M", "7L75", "6M", "6L75", "5T", "5L75", "4M", "4L55"], + defog: ["7T", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fly: ["9M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + haze: ["9L1", "7L1", "6L1", "5L1", "4L1"], + heatwave: ["9M", "7T", "7S0", "6T", "5T", "4T"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "7S0", "6T", "5T"], + incinerate: ["6M", "5M"], + mudslap: ["9M", "4T"], + nastyplot: ["9M", "9L35", "7L35", "6L35", "5L35", "4L35"], + naturalgift: ["4M"], + nightshade: ["9M"], + nightslash: ["9L1", "7L1", "7S0", "6L1", "5L55", "4L45"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + pursuit: ["7L1", "6L1", "5L1", "4L1"], + quash: ["9L1", "7M", "7L65", "6M", "6L65", "5M", "5L65"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + skyattack: ["7T", "7S0", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T"], + spite: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "6M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L1", "7L1", "6L1", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + swift: ["4T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M"], + wingattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + }, + eventData: [ + {generation: 7, level: 65, gender: "M", abilities: ["superluck"], moves: ["nightslash", "skyattack", "heatwave", "icywind"], pokeball: "cherishball"}, + ], + }, + misdreavus: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + allyswitch: ["7T"], + astonish: ["9L10", "7L10", "6L10", "5L10", "4L10", "3L11"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L14", "7L14", "7V", "6L14", "5L14", "4L14", "3L17"], + confusion: ["9L1"], + curse: ["9E", "7E", "7V", "6E", "5E", "4E"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + defensecurl: ["7V", "3T"], + destinybond: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + grudge: ["7L50", "6L50", "5L50", "4L46", "3L53"], + headbutt: ["7V", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hex: ["9M", "9L23", "7L23", "6L23", "5L23"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + inferno: ["5D"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + meanlook: ["9L19", "7L19", "7V", "6L19", "5L19", "4L19", "3L23"], + mefirst: ["7E", "6E"], + memento: ["9E", "7E", "6E", "5E", "4E"], + mimic: ["3T"], + nastyplot: ["9M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + nightshade: ["9M"], + ominouswind: ["7E", "6E", "5E", "4T", "4E"], + painsplit: ["9L32", "7T", "7L32", "7V", "6T", "6L32", "5T", "5L32", "4T", "4L28", "3L37"], + payback: ["9L37", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L32"], + perishsong: ["9L46", "7L46", "7V", "6L46", "5L46", "4L41", "3L45"], + phantomforce: ["9M"], + powergem: ["9M", "9L50", "7L55", "6L55", "5L55", "4L50"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L28", "7L28", "7V", "6L28", "5L28", "4L23", "3L30"], + psychic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["9M"], + psywave: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "9L41", "7M", "7L41", "7V", "6M", "6L41", "5M", "5L41", "4M", "4L37", "3M"], + shadowsneak: ["9E", "7E", "6E", "5E", "4E"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spite: ["9E", "7T", "7L5", "7E", "7V", "6T", "6L5", "6E", "5T", "5L5", "5E", "4T", "4L5", "4E", "3L6", "3S0"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "7E", "6E", "5E", "4T", "4E"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + wonderroom: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["growl", "psywave", "spite"], pokeball: "pokeball"}, + ], + }, + mismagius: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + allyswitch: ["7T"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["7M", "6M", "5M", "4M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M"], + flash: ["6M", "5M", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + laserfocus: ["7T"], + luckychant: ["7L1", "6L1", "5L1", "4L1"], + magicalleaf: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + mysticalfire: ["9L1", "7L1", "6L1"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + phantomforce: ["9M", "9L1", "7L1", "6L1"], + powergem: ["9M", "9L1", "7L1", "6L1"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M"], + psywave: ["7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + skillswap: ["9M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spite: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + wonderroom: ["7T", "6T", "5T"], + }, + }, + unown: { + learnset: { + hiddenpower: ["7M", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 2, level: 5}, + {generation: 3, level: 25}, + {generation: 4, level: 5}, + {generation: 6, level: 32}, + ], + }, + wynaut: { + learnset: { + amnesia: ["8M", "8L1"], + charm: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + counter: ["8L1", "7L15", "6L15", "5L15", "4L15", "3L15"], + destinybond: ["8L1", "7L15", "6L15", "5L15", "4L15", "3L15"], + encore: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + mirrorcoat: ["8L1", "7L15", "6L15", "5L15", "4L15", "3L15"], + safeguard: ["8M", "8L1", "7M", "7L15", "6M", "6L15", "5L15", "4L15", "3L15"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + tickle: ["3S0"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["splash", "charm", "encore", "tickle"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + wobbuffet: { + learnset: { + amnesia: ["8M", "8L1"], + charm: ["8M", "8L1", "5D"], + counter: ["8L0", "7L1", "7V", "6L1", "6S2", "6S3", "5L1", "4L1", "3L1", "3S0", "3S1"], + destinybond: ["8L0", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + encore: ["8M", "8L1", "5D"], + mirrorcoat: ["8L0", "7L1", "7V", "6L1", "6S3", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + safeguard: ["8M", "8L0", "7M", "7L1", "7V", "6M", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + splash: ["8L1"], + }, + eventData: [ + {generation: 3, level: 5, moves: ["counter", "mirrorcoat", "safeguard", "destinybond"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["counter", "mirrorcoat", "safeguard", "destinybond"], pokeball: "pokeball"}, + {generation: 6, level: 10, gender: "M", moves: ["counter"], pokeball: "cherishball"}, + {generation: 6, level: 15, gender: "M", moves: ["counter", "mirrorcoat"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 2, level: 5}, + {generation: 4, level: 3}, + ], + }, + girafarig: { + learnset: { + agility: ["9M", "9L23", "7L23", "7V", "6L14", "5L14", "4L14", "3L31"], + allyswitch: ["9E", "7T"], + amnesia: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + assurance: ["9L10", "7L10", "6L10", "5L28", "4L28"], + astonish: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L7"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9L41", "7L41", "7V", "6L23", "5L23", "4L23", "3L37"], + beatup: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "3T"], + bulldoze: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L5", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L13"], + crunch: ["9M", "9L37", "7L37", "7V", "6L37", "5L46", "4L46", "3L49"], + curse: ["7V"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleedge: ["3T"], + doublehit: ["9L28", "7L28", "6L28", "5L32", "4L32"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + gigaimpact: ["9M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + guardswap: ["9L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hypervoice: ["9M", "7T", "6T", "5T"], + imprison: ["9M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M"], + magiccoat: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + meanlook: ["9E", "7E", "6E", "5E"], + mimic: ["3T"], + mirrorcoat: ["9E", "7E", "6E", "5E", "5D", "4E"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M", "9L46", "7L46", "6L46"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + odorsleuth: ["7L5", "6L5", "5L5", "4L5", "3L25"], + powerswap: ["9L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L19", "7L19", "7V", "6L19", "5L19", "4L19", "3L43"], + psychic: ["9M", "9L50", "7M", "7L50", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M"], + psychicfangs: ["9M", "7E"], + psychicterrain: ["9M", "7E"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshock: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "6E", "5E", "4E"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stomp: ["9L14", "7L14", "7V", "6L10", "5L10", "4L10", "3L19"], + stompingtantrum: ["9M", "7T"], + storedpower: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + twinbeam: ["9L32"], + uproar: ["9E", "7T", "6T", "5T", "4T"], + wish: ["9E", "7E", "6E", "5E", "4E", "3E"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "7T", "7L32", "6T", "6L32", "5T", "5L41", "4T", "4L41"], + }, + }, + pineco: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7L20", "7V", "6L20", "5L20", "4L17", "3L29"], + bodyslam: ["9M", "3T"], + bugbite: ["9L9", "7T", "7L9", "6T", "6L9", "5T", "5L9", "4T", "4L9"], + bugbuzz: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E", "3S1"], + curse: ["9L23", "7V"], + defensecurl: ["7V", "3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L45", "7L45", "7E", "7V", "6L45", "6E", "5L45", "5E", "4L42", "4E", "3T", "3L50"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["9M", "7T", "6T", "5T"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7E", "7V", "6E", "5E", "4M", "3T"], + explosion: ["9L34", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L34", "4M", "4L31", "3T", "3L36"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gravity: ["7T", "6T", "5T", "5D", "4T"], + gyroball: ["9L42", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L39"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icespinner: ["9M"], + irondefense: ["9M", "9L39", "7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L34"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + naturalgift: ["7L23", "6L23", "5L23", "4M", "4L20"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L28"], + pinmissile: ["9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], + poisonjab: ["9M"], + pounce: ["9M"], + powertrick: ["9E", "7E", "6E", "5E", "4E"], + protect: ["9M", "9L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1", "3S0"], + raindance: ["9M"], + rapidspin: ["9L17", "7L17", "7V", "6L17", "5L17", "4L12", "3L22"], + reflect: ["9M", "7M", "7V", "6M", "5M", "4M", "4E", "3M", "3E"], + refresh: ["3S1"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E", "4E"], + reversal: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9L20", "7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["9E", "7E", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + selfdestruct: ["9L6", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3T", "3L8", "3S0"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L28", "7L28", "7V", "6L28", "5L28", "4L23", "3L43", "3S1"], + stealthrock: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + takedown: ["9M", "9L12", "7L12", "7V", "6L12", "5L12", "4L9", "3L15"], + terablast: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9E", "7E", "6E", "5E", "5D", "4E"], + venoshock: ["9M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "protect", "selfdestruct"], pokeball: "pokeball"}, + {generation: 3, level: 20, moves: ["refresh", "pinmissile", "spikes", "counter"]}, + ], + }, + forretress: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["7L1", "6L32", "5L32"], + bide: ["7L20", "7V", "6L20", "5L20", "4L17", "3L29"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bugbite: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["9L23", "7V"], + defensecurl: ["7V", "3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["9L50", "7L50", "7V", "6L56", "5L56", "4L50", "3T", "3L59"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillrun: ["9M", "7T", "6T", "5T"], + earthpower: ["9M"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + explosion: ["9L36", "7M", "7L36", "7V", "6M", "6L42", "5M", "5L42", "4M", "4L33", "3T", "3L39"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["9L46", "7M", "7L46", "6M", "6L50", "5M", "5L50", "4M", "4L45"], + headbutt: ["7V", "4T"], + heavyslam: ["9M", "9L0", "7L1", "6L1", "5L70"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + icespinner: ["9M"], + irondefense: ["9M", "9L42", "7T", "7L42", "6T", "6L46", "5T", "5L46", "4T", "4L38"], + ironhead: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L60", "4T", "4L57"], + mimic: ["3T"], + mirrorshot: ["7L1", "6L31", "5L31", "4L31"], + naturalgift: ["7L23", "6L23", "5L23", "4M", "4L20"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L32", "7M", "7L32", "6M", "6L36", "5M", "5L36", "4M", "4L28"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M", "9L1", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + raindance: ["9M"], + rapidspin: ["9L17", "7L17", "7V", "6L17", "5L17", "4L12", "3L22"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["9L20", "7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + selfdestruct: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L1"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L28", "7L28", "7V", "6L28", "5L28", "4L23", "3L49"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["9M"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L12", "7L12", "7V", "6L12", "5L12", "4L1", "3L15"], + telekinesis: ["7T"], + terablast: ["9M"], + thunderwave: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + venoshock: ["9M", "7M", "6M", "5M"], + voltswitch: ["9M", "7M", "6M", "5M"], + zapcannon: ["9L1", "7L1", "6L1", "5L64", "4L62", "3L31"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + dunsparce: { + learnset: { + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], + airslash: ["9M", "8M", "7L41"], + amnesia: ["9M", "8M"], + ancientpower: ["9L20", "8L20", "7L16", "7E", "7V", "6L19", "6E", "5L48", "5E", "4T", "4L41", "4E", "3E"], + aquatail: ["9E", "8E", "7T", "6T", "5T", "4T"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "8M"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + bind: ["7T", "6T", "5T"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "8L32", "7L18", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + coil: ["9L44", "8L48", "7L28", "6L37", "5L43"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + defensecurl: ["9L1", "8L1", "7L1", "7V", "6L1", "5L4", "5D", "4L5", "3T", "3L4"], + dig: ["9M", "8M", "7L31", "7V", "6M", "6L31", "5M", "5L53", "4M", "4L45", "3M"], + doubleedge: ["9L48", "8L52", "7L36", "6L34", "5L34", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonrush: ["9L40", "8L44", "7L43"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + drillrun: ["9M", "9L24", "8M", "8L24", "7T", "7L21", "6T", "6L43", "5T", "5L43"], + dualwingbeat: ["8T"], + earthpower: ["9M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["9L52", "8L56", "7T", "7L38", "6T", "6L46", "5T", "5L58", "4T", "4L49", "3L41"], + endure: ["9M", "8M", "7L46", "7V", "6L40", "5L40", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L1", "8L1", "7L48", "6L49", "5L63", "4L53", "3L44"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + glare: ["9L12", "8L12", "7L33", "7V", "6L28", "5L12", "4L13", "3L14"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + helpinghand: ["9M", "8M"], + hex: ["9M", "8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hyperdrill: ["9L32"], + hypervoice: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icespinner: ["9M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lastresort: ["9E", "8E", "7T", "6T", "5T", "4T"], + magiccoat: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "9L4", "8L4", "7L13", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poisontail: ["9M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + pursuit: ["7L8", "7V", "6L10", "5L24", "4L25", "3L24"], + rage: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L8", "8L8", "7L3", "7V", "6L4", "5L16", "4T", "4L17", "3T", "3L21"], + roost: ["9L36", "8L40", "7M", "7L23", "6M", "6L25", "5T", "5L33", "4M", "4L33"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scaleshot: ["8T"], + scaryface: ["9M"], + screech: ["9L16", "8M", "8L16", "7L11", "7V", "6L13", "5L28", "4L29", "3L31"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "3T"], + smartstrike: ["9M"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + solarbeam: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["7T", "7L6", "7V", "6T", "6L7", "5T", "5L20", "4T", "4L21", "3L21"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + storedpower: ["9M", "8M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M", "8L36", "7L26", "7V", "6L22", "5L38", "4L37", "3L34"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E", "4E"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + yawn: ["9L28", "8L28", "7L13", "6L16", "5L8", "4L9", "3L11"], + zapcannon: ["7V"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + dudunsparce: { + learnset: { + agility: ["9M"], + airslash: ["9M"], + amnesia: ["9M"], + ancientpower: ["9L20"], + batonpass: ["9M"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + boomburst: ["9L62"], + bulldoze: ["9M"], + calmmind: ["9M"], + chillingwater: ["9M"], + coil: ["9L44"], + defensecurl: ["9L1"], + dig: ["9M"], + doubleedge: ["9L48"], + dragonrush: ["9L40"], + dragontail: ["9M"], + drillrun: ["9M", "9L24"], + earthpower: ["9M"], + earthquake: ["9M"], + endeavor: ["9L52"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + flail: ["9L1"], + flamethrower: ["9M"], + gigaimpact: ["9M"], + glare: ["9L12"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hurricane: ["9M", "9L56"], + hyperbeam: ["9M"], + hyperdrill: ["9L32"], + hypervoice: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "9L4"], + outrage: ["9M"], + poisonjab: ["9M"], + poisontail: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + rollout: ["9L8"], + roost: ["9L36"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L16"], + shadowball: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + solarbeam: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + wildcharge: ["9M"], + yawn: ["9L28"], + zenheadbutt: ["9M"], + }, + }, + gligar: { + learnset: { + acrobatics: ["7M", "7L22", "6M", "6L22", "5M", "5L27"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7E", "6E", "5E", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + batonpass: ["7E", "6E", "5E", "4E"], + brickbreak: ["7M", "6M", "5M", "4M"], + bugbite: ["7T", "6T", "5T"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crosspoison: ["7E", "6E", "5E", "4E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["3T"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + falseswipe: ["7M", "6M", "5M", "4M"], + feint: ["7E", "6E", "5E", "5D", "4E"], + feintattack: ["7L19", "7V", "6L19", "5L23", "4L23", "3L28"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7L16", "7V", "6L16", "5L20", "4T", "4L20", "3T"], + guillotine: ["7L55", "7V", "6L55", "5L49", "4L45", "3L52"], + harden: ["7L7", "7V", "6L7", "5L9", "4L9", "3L13"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "7L10", "6T", "6L10", "5T", "5L12", "4T", "4L12"], + metalclaw: ["7E", "7V", "6E", "5E", "4E", "3E"], + mimic: ["3T"], + naturalgift: ["4M"], + nightslash: ["7E", "6E", "5E", "4E"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["7M", "6M", "5M", "4M"], + poisonsting: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + poisontail: ["7E", "6E", "5E"], + powertrick: ["7E", "6E", "5E", "4E"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["7L13", "7V", "6L13", "5L16", "4L16", "3L20"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "7V", "6E", "5E", "4E", "3E"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["7L4", "7V", "6L4", "5L5", "5D", "4L5", "3L6", "3S0"], + sandstorm: ["7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["7E", "6E", "5E", "4E", "3E"], + screech: ["7L35", "7V", "6L35", "5L31", "4L27", "3L44"], + secretpower: ["6M", "4M", "3M"], + skyuppercut: ["7L45", "6L45", "5L45"], + slash: ["7L27", "7V", "6L27", "5L34", "4L31", "3L36"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["7T", "6T", "5T", "4M"], + steelwing: ["7M", "6M", "4M", "3M"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + swordsdance: ["7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34", "3T"], + tailwind: ["7T", "6T", "5T", "5D", "4T"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uturn: ["7M", "7L30", "6M", "6L30", "5M", "5L42", "4M", "4L38"], + venoshock: ["7M", "6M", "5M"], + wingattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + xscissor: ["7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L42"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["poisonsting", "sandattack"], pokeball: "pokeball"}, + ], + }, + gliscor: { + learnset: { + acrobatics: ["7M", "7L22", "6M", "6L22", "5M", "5L27"], + aerialace: ["7M", "6M", "5M", "4M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + brutalswing: ["7M"], + bugbite: ["7T", "6T", "5T"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + falseswipe: ["7M", "6M", "5M", "4M"], + feintattack: ["7L19", "6L19", "5L23", "4L23"], + firefang: ["7L1", "6L1", "5L1", "4L1"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["7L16", "6L16", "5L20", "4T", "4L20"], + gigaimpact: ["7M", "6M", "5M", "4M"], + guillotine: ["7L1", "6L1", "5L49", "4L45"], + harden: ["7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icefang: ["7L1", "6L1", "5L1", "4L1"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["7L27", "6L27", "5L34", "4L31"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["7M", "6M", "5M", "4M"], + quickattack: ["7L13", "6L13", "5L16", "4L16"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["7L1", "6L1", "5L1", "4L1"], + sandstorm: ["7M", "6M", "5M", "4M"], + screech: ["7L35", "6L35", "5L31", "4L27"], + secretpower: ["6M", "4M"], + skyattack: ["7T", "6T", "5T", "4T"], + skyuppercut: ["7L45", "6L45", "5L45"], + sleeptalk: ["7M", "6M", "5T", "4M"], + sludgebomb: ["7M", "6M", "5M", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + steelwing: ["7M", "6M", "4M"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "7L50", "6M", "6L50", "5M", "5L38", "4M", "4L34"], + tailwind: ["7T", "6T", "5T", "4T"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + throatchop: ["7T"], + thunderfang: ["7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uturn: ["7M", "7L30", "6M", "6L30", "5M", "5L42", "4M", "4L38"], + venoshock: ["7M", "6M", "5M"], + xscissor: ["7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L42"], + }, + }, + snubbull: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L7", "7V", "6L7", "5L7", "4L7", "3L13"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bulkup: ["7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + charm: ["7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L8", "3S0"], + closecombat: ["7E", "6E", "5E", "5D", "4E"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crunch: ["7L49", "7E", "7V", "6L49", "6E", "5L49", "5E", "4L49", "4E", "3L53", "3E"], + curse: ["7V"], + dazzlinggleam: ["7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["7E", "6E", "5E", "5D", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7E", "6E"], + feintattack: ["7E", "7V", "6E", "5E", "4E", "3E"], + fireblast: ["7M", "6M", "5M", "4M", "3M"], + firefang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7L19", "7V", "6L19", "5L19", "4T", "4L19"], + healbell: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icefang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["7V"], + lick: ["7L13", "7V", "6L13", "5L13", "4L13", "3L19"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["7E", "7V", "6E", "5E", "4E", "3T", "3E"], + mimic: ["7E", "6E", "5E", "3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], + playrough: ["7L37", "6L37"], + poweruppunch: ["6M"], + present: ["7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L31", "7V", "6L31", "5L31", "4L31", "3L34"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7L25", "7V", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L26"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snarl: ["7M", "6M", "5M"], + snore: ["7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L4", "3S0"], + takedown: ["7V", "5L37", "4L37", "3L43"], + taunt: ["7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderfang: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "scaryface", "tailwhip", "charm"], pokeball: "pokeball"}, + ], + }, + granbull: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["7L7", "7V", "6L7", "5L7", "4L7", "3L13"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bulkup: ["7M", "6M", "5M", "4M", "3M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + charm: ["7L1", "7V", "6L1", "5L1", "4L1", "3L8"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crunch: ["7L59", "6L59", "5L59", "4L59", "3L61"], + curse: ["7V"], + dazzlinggleam: ["7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fireblast: ["7M", "6M", "5M", "4M", "3M"], + firefang: ["7L1", "6L1", "5L1", "4L1"], + firepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["7L19", "7V", "6L19", "5L19", "4T", "4L19"], + healbell: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icefang: ["7L1", "6L1", "5L1", "4L1"], + icepunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lick: ["7L13", "7V", "6L13", "5L13", "4L13", "3L19"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["7T", "7L1", "6T", "6L1", "5T", "5L67"], + overheat: ["7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "7L51", "6M", "6L51", "5M", "5L51", "4M", "4L51"], + playrough: ["7L43", "6L43"], + poweruppunch: ["6M"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + rage: ["7L35", "7V", "6L35", "5L35", "4L35", "3L38"], + raindance: ["7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7L27", "7V", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L28"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "7V", "6M", "5M", "4M", "3M"], + snarl: ["7M", "6M", "5M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + tailwhip: ["7L1", "7V", "6L1", "5L1", "4L1", "3L4"], + takedown: ["7V", "5L43", "4L43", "3L49"], + taunt: ["7M", "6M", "5M", "4M", "3M"], + thief: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunder: ["7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderfang: ["7L1", "6L1", "5L1", "4L1"], + thunderpunch: ["7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 15}, + ], + }, + qwilfish: { + learnset: { + acidspray: ["9M", "9E", "8E", "7E", "6E", "5E"], + acupressure: ["9L52", "8L60"], + agility: ["9M"], + aquajet: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + aquatail: ["9L48", "8L56", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], + assurance: ["8M"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barbbarrage: ["9E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["9L24", "8M", "8L24", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4M", "4L33"], + bubble: ["7L13", "6L13"], + bubblebeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + destinybond: ["9L56", "8L66", "7L1", "6L1", "5L53", "4L53", "3L45"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fellstinger: ["9L12", "8L12", "7L1", "6L1"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["9L4", "8L4", "7L9", "7V", "6L9", "5L9", "4L9", "3L9", "3S0"], + haze: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["7V", "4T"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M", "7L1", "7V", "6L1", "5L57", "4L57", "3L37"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + minimize: ["9L16", "8L16", "7L9", "7V", "6L9", "5L9", "4L9", "3L9", "3S0"], + mudshot: ["9M"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["9L32", "8M", "8L32", "7L37", "7V", "6L37", "5L37", "4L37", "3L21"], + poisonjab: ["9M", "9L28", "8M", "8L40", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L49", "4E"], + poisonsting: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "8L28", "7L29", "6L29", "5L29", "4L29", "3L25"], + reversal: ["9M", "8M"], + rollout: ["7L17", "7V", "6L17", "5L17", "4T", "4L17", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "5D", "4M", "3M"], + selfdestruct: ["9E", "8M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M", "9L20", "8M", "8L20", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + spitup: ["9L40", "8L44", "7L25", "6L25", "5L25", "4L25"], + steelroller: ["8T"], + stockpile: ["9L40", "8L44", "7L25", "6L25", "5L25", "4L25"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + takedown: ["9M", "8L48", "7L41", "7V", "6L41", "5L41", "4L41", "3L33"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + throatchop: ["8M", "7T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["9L44", "8L52", "7M", "7V", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M", "9L36", "8M", "8L36", "7L21", "6L21", "5L21", "4L21"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + waterfall: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["9L8", "8L8", "7L1", "7V", "6L1", "5L13", "4L13", "3L13"], + waterpulse: ["9M", "9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "poisonsting", "harden", "minimize"], pokeball: "pokeball"}, + ], + }, + qwilfishhisui: { + learnset: { + acidspray: ["9M", "9E"], + acupressure: ["9L52"], + agility: ["9M"], + aquajet: ["9E"], + aquatail: ["9E"], + astonish: ["9E"], + barbbarrage: ["9L28"], + bite: ["9L8"], + blizzard: ["9M"], + brine: ["9L24"], + bubblebeam: ["9E"], + chillingwater: ["9M"], + crunch: ["9M", "9L48"], + darkpulse: ["9M"], + destinybond: ["9L56"], + endure: ["9M"], + facade: ["9M"], + fellstinger: ["9L12"], + flail: ["9E"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + harden: ["9L4"], + haze: ["9E"], + hex: ["9M"], + hydropump: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + minimize: ["9L16"], + mudshot: ["9M"], + pinmissile: ["9L32"], + poisonjab: ["9M"], + poisonsting: ["9L1"], + poisontail: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + scaryface: ["9M"], + selfdestruct: ["9E"], + shadowball: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + spikes: ["9M", "9L20"], + spitup: ["9L40"], + stockpile: ["9L40"], + substitute: ["9M"], + supersonic: ["9E"], + surf: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + toxic: ["9L44"], + toxicspikes: ["9M", "9L36"], + venoshock: ["9M"], + waterfall: ["9M"], + waterpulse: ["9M", "9E"], + }, + }, + overqwil: { + learnset: { + acupressure: ["9L52"], + agility: ["9M"], + barbbarrage: ["9L28"], + bite: ["9L8"], + blizzard: ["9M"], + brine: ["9L24"], + chillingwater: ["9M"], + crunch: ["9M", "9L48"], + darkpulse: ["9M"], + destinybond: ["9L56"], + endure: ["9M"], + facade: ["9M"], + fellstinger: ["9L12"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + harden: ["9L4"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + minimize: ["9L16"], + mudshot: ["9M"], + pinmissile: ["9L32"], + poisonjab: ["9M"], + poisonsting: ["9L1"], + poisontail: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + smartstrike: ["9M"], + spikes: ["9M", "9L20"], + spitup: ["9L40"], + stockpile: ["9L40"], + substitute: ["9M"], + surf: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + toxic: ["9L44"], + toxicspikes: ["9M", "9L36"], + venoshock: ["9M"], + waterfall: ["9M"], + }, + }, + shuckle: { + learnset: { + acid: ["8E", "7E", "6E", "5E"], + acupressure: ["8E", "7E", "6E", "5E", "4E"], + afteryou: ["7T", "6T", "5T"], + ancientpower: ["4T"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7L1", "7V", "6L1", "5L1", "4L1", "3L28"], + bind: ["7T", "6T", "5T"], + bodyslam: ["8M", "3T"], + bugbite: ["8L30", "7T", "7L42", "6T", "6L42", "5T", "5L49", "4T", "4L40"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + covet: ["8E"], + curse: ["7V"], + defensecurl: ["8E", "7V", "3T"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + encore: ["8M", "7L5", "7V", "6L5", "5L7", "5D", "4L9", "3L14", "3S1"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + finalgambit: ["8E", "7E", "6E", "5E"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gastroacid: ["8L45", "7T", "7L27", "6T", "6L27", "5T", "5L31", "4T", "4L35"], + guardsplit: ["8L35", "7L45", "6L45", "5L55"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + infestation: ["8E", "7M", "6M"], + irondefense: ["8M"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["7E", "7V", "6E", "5E", "4T", "4E", "3T"], + naturalgift: ["4M"], + powersplit: ["8L35", "7L45", "6L45", "5L55"], + powertrick: ["8L55", "7L31", "6L31", "5L43", "4L48"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L25", "7M", "7L20", "7V", "6M", "6L20", "5M", "5L25", "4M", "4L27", "3M", "3L37"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + rockblast: ["8M", "7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L40", "7M", "7L38", "6M", "6L38", "5M", "5L38", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["8L15", "7L23", "6L23", "5L23"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L5", "7L1", "7V", "6L1", "5L37", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L20", "7M", "7L16", "7V", "6M", "6L16", "5M", "5L19", "4M", "4L14", "3M", "3L23"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + shellsmash: ["8L65", "7L34", "6L34", "5L34", "5D"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stickyweb: ["8L50", "7L1", "6L1"], + stoneedge: ["8M", "8L60", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["8L10", "7L12", "6M", "6L12", "5M", "5L1"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T", "3S1"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + toxic: ["8E", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + venoshock: ["8M", "7M", "6M", "5M"], + withdraw: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + wrap: ["8L1", "7L9", "7V", "6L9", "5L13", "4L22", "3L9", "3S0"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["sturdy"], moves: ["constrict", "withdraw", "wrap"], pokeball: "pokeball"}, + {generation: 3, level: 20, abilities: ["sturdy"], moves: ["substitute", "toxic", "sludgebomb", "encore"], pokeball: "pokeball"}, + ], + }, + heracross: { + learnset: { + aerialace: ["9M", "9L15", "8L15", "7M", "7L10", "6M", "6L10", "5M", "5L13", "4M", "4L13"], + armthrust: ["9L1", "7L1", "6L1"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bide: ["7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "9L30", "8M", "8L30", "7M", "7L28", "6M", "6L25", "5M", "5L19", "4M", "4L19", "3M", "3L23"], + brutalswing: ["8M", "7M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["9M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "7L1", "6L1", "6S0", "6S1"], + captivate: ["4M"], + chipaway: ["7L16", "6L16", "5L16"], + closecombat: ["9M", "9L60", "8M", "8L60", "7L43", "6L34", "6S0", "5L37", "4L37"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["9L25", "8L25", "7L19", "7V", "6L19", "5L25", "4L25", "3T", "3L30"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "7V", "6M", "6S1", "5M", "4M", "3M"], + endure: ["9M", "9L10", "8M", "8L10", "7L1", "7V", "6L1", "5L1", "4M", "4L1", "3T", "3L11"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], + feint: ["9E", "8E", "7L7", "6L7", "5L49", "4L49"], + flail: ["9E", "8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "5D", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["9L5", "8L5", "7L25", "7V", "6L7", "5L7", "4L7", "3L17"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + harden: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hornattack: ["9L20", "8L20", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L6"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + megahorn: ["9L55", "8M", "8L55", "7L37", "7E", "7V", "6L37", "6E", "6S0", "5L55", "5E", "4L55", "3L53"], + mimic: ["3T"], + naturalgift: ["4M"], + nightslash: ["9E", "8E", "7L1", "6L1", "5L1", "4L1"], + pinmissile: ["9L35", "8M", "8L35", "7L31", "6L31", "6S0", "6S1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M", "7E", "6E", "5E", "4E"], + reversal: ["9M", "8M", "7L46", "7V", "6L43", "5L43", "4L43", "3L45"], + rockblast: ["9M", "8M", "7E", "6E", "6S1"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["9E", "8E", "7E", "6E", "5E", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smartstrike: ["9M", "8M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swordsdance: ["9M", "9L50", "8M", "8L50", "7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "8E", "7L34", "7V", "6L28", "5L31", "4L31", "3L37"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L45", "8L45"], + throatchop: ["9L40", "8M", "8L40", "7T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + vacuumwave: ["4T"], + venoshock: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 6, level: 50, gender: "F", nature: "Adamant", moves: ["bulletseed", "pinmissile", "closecombat", "megahorn"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Adamant", abilities: ["guts"], moves: ["pinmissile", "bulletseed", "earthquake", "rockblast"], pokeball: "cherishball"}, + ], + }, + sneasel: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L48", "8M", "8L48", "7L20", "7V", "6L20", "5L24", "4L24", "3L36"], + assist: ["7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "7E", "6E", "5E", "4M"], + beatup: ["9L42", "8M", "8L42", "7L28", "7V", "6L28", "5L42", "4L38", "3L57"], + bite: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublehit: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dynamicpunch: ["7V", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + faketears: ["9M", "8M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9E", "8E", "7E", "6E", "5E"], + feintattack: ["7L10", "7V", "6L10", "5L14", "4L14", "3L22"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7E", "7V", "6E", "5E", "4E", "3E"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L30", "8L30", "7L16", "7V", "6L16", "5L21", "4L21", "3L29"], + gigaimpact: ["9M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L35"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3T"], + iceshard: ["9E", "8E", "7L47", "7E", "6L47", "6E", "5L51", "5E", "4L49", "4E"], + iciclecrash: ["9E", "8E", "7E", "6E"], + icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "7V", "6T", "6L14", "5T", "5L28", "4T", "4L28", "3T", "3L43"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L18", "8L18", "7L22", "7V", "6L22", "5L49", "4L42", "3L64"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + punishment: ["7L44", "7E", "6L44", "6E", "5L44", "5E", "4E"], + pursuit: ["7E", "6E", "5E", "4E"], + quickattack: ["9L12", "8L12", "7L8", "7V", "6L8", "5L8", "4L8", "3L8", "3S0"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "7V", "6M", "5M", "4E", "3E"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + screech: ["9L54", "8M", "8L54", "7L32", "7V", "6L32", "5L10", "4L10", "3L15"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L60", "8L60", "7L35", "7V", "6L35", "5L38", "4L35", "3L50"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "7L40", "6T", "6L40", "5T", "5L40", "4M", "3M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + spite: ["9E", "8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "9L6", "8M", "8L6", "7M", "7L1", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M", "3L1", "3S0"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T", "7E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + waterpulse: ["9M"], + whirlpool: ["8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "leer", "taunt", "quickattack"], pokeball: "pokeball"}, + ], + }, + sneaselhisui: { + learnset: { + acidspray: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L48"], + brickbreak: ["9M", "9L30"], + bulkup: ["9M"], + calmmind: ["9M"], + closecombat: ["9M", "9L60"], + counter: ["9E"], + dig: ["9M"], + doublehit: ["9E"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9E"], + falseswipe: ["9M"], + feint: ["9E"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + honeclaws: ["9L36"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M", "9L18"], + nastyplot: ["9M"], + nightslash: ["9E"], + poisonjab: ["9M", "9L24"], + poisontail: ["9M"], + protect: ["9M"], + quickattack: ["9L12"], + quickguard: ["9E"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rocksmash: ["9L1"], + scratch: ["9L1"], + screech: ["9L54"], + shadowball: ["9M"], + shadowclaw: ["9M"], + slash: ["9L42"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + switcheroo: ["9E"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L6"], + terablast: ["9M"], + thief: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + weavile: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M", "9L1", "8M", "8L1"], + assurance: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["9M", "8M", "4M"], + batonpass: ["9M"], + beatup: ["9L1", "8M", "8L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "8M", "7M", "6M", "6S1", "5M", "4M", "4S0"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "9L66", "8M", "8L66", "7M", "7L47", "6M", "6L47", "5T", "5L51", "4M", "4L49"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fakeout: ["4S0"], + faketears: ["9M", "8M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L10", "6L10", "5L14", "4L14"], + fling: ["9M", "9L42", "8M", "8L42", "7M", "7L28", "6M", "6L28", "5M", "5L42", "4M", "4L38"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["9L30", "8L30", "7L16", "6L16", "5L21", "4L21"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["9L36", "8L36", "7L25", "6M", "6L25", "5M", "5L35"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "6S1", "5T", "4T"], + iceshard: ["9L1", "8L1", "4S0"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "9L24", "8M", "8L24", "7T", "7L14", "6T", "6L14", "5T", "5L28", "4T", "4L28"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L18", "8L18", "7L22", "6L22", "5L49", "4L42"], + metronome: ["9M"], + mudslap: ["4T"], + nastyplot: ["9M", "9L48", "8M", "8L48", "7L20", "6L20", "5L24", "4L24"], + naturalgift: ["4M"], + nightslash: ["9L60", "8L60", "7L35", "6L35", "6S1", "5L35", "4L35", "4S0"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M"], + punishment: ["7L44", "6L44"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L54", "8M", "8L54", "7L32", "6L32", "5L10", "4L10"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L1", "8L1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "7L40", "6T", "6L40", "5T", "5L40", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + waterpulse: ["9M"], + whirlpool: ["8M", "4M"], + xscissor: ["9M", "8M", "7M", "6M", "6S1", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 30, gender: "M", nature: "Jolly", moves: ["fakeout", "iceshard", "nightslash", "brickbreak"], pokeball: "cherishball"}, + {generation: 6, level: 48, gender: "M", perfectIVs: 2, moves: ["nightslash", "icepunch", "brickbreak", "xscissor"], pokeball: "cherishball"}, + ], + }, + sneasler: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L48"], + brickbreak: ["9M", "9L30"], + bulkup: ["9M"], + calmmind: ["9M"], + closecombat: ["9M", "9L60"], + dig: ["9M"], + direclaw: ["9L0"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + firepunch: ["9M"], + fling: ["9M", "9L1"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + honeclaws: ["9L36"], + hyperbeam: ["9M"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M", "9L18"], + nastyplot: ["9M"], + poisonjab: ["9M", "9L24"], + poisontail: ["9M"], + protect: ["9M"], + quickattack: ["9L12"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L1"], + rocktomb: ["9M"], + scratch: ["9L1"], + screech: ["9L54"], + shadowball: ["9M"], + shadowclaw: ["9M"], + slash: ["9L42"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L6"], + terablast: ["9M"], + thief: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + teddiursa: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M"], + babydolleyes: ["9L1", "7L1", "6L1"], + bellydrum: ["9E", "7E", "6E", "5E", "4E"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "9L33", "7L36", "6L36", "5L36", "4L36"], + chipaway: ["7E", "6E", "5E"], + closecombat: ["9M", "9E", "7E", "6E", "5E", "4E"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + covet: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + crosschop: ["9E", "7E", "6E", "5E", "4E"], + crunch: ["9M", "9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["9E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9E", "7L1", "7E", "6L1", "6E", "5L1", "5E", "5D", "4L1", "4E", "3L19", "3E"], + feintattack: ["7L15", "7V", "6L15", "5L15", "4L15", "3L25"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L57", "4M", "4L57"], + focusenergy: ["7V"], + focuspunch: ["7T", "6T", "5D", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["9E", "7V", "4T", "3T"], + furyswipes: ["9L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L13"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["7V", "5L1", "4L1", "3L1", "3S0"], + lick: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L7", "3S0", "3S1"], + lowkick: ["9M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E", "3S1"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7E", "6E", "5E", "4E"], + payback: ["9L13", "7M", "6M", "5M", "4M"], + playnice: ["9L25", "7L25", "6L25"], + playrough: ["9M", "9L29", "7E", "6E"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S1"], + rest: ["9M", "9L37", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L31"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slash: ["9L22", "7L29", "7V", "6L29", "5L29", "4L29", "3L37"], + sleeptalk: ["9M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + snore: ["9L37", "7T", "7L43", "7V", "6T", "6L43", "5T", "5L43", "4T", "4L43", "3T", "3L43"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L17", "7L22", "6L22", "5L22", "4L22"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M", "7E", "7V", "6E", "5E", "4E", "3E"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L41", "7L50", "7V", "6L50", "5L50", "4L50", "3L49"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + workup: ["7M", "5M"], + yawn: ["9E", "7E", "6E", "5E", "4E", "3E"], + zapcannon: ["7V"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["pickup"], moves: ["scratch", "leer", "lick"], pokeball: "pokeball"}, + {generation: 3, level: 11, abilities: ["pickup"], moves: ["refresh", "metalclaw", "lick", "return"]}, + ], + encounters: [ + {generation: 2, level: 2}, + ], + }, + ursaring: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "4M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + crunch: ["9M"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + defensecurl: ["7V", "3T"], + dig: ["9M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L19"], + feintattack: ["7L15", "7V", "6L15", "5L15", "4L15", "3L25"], + firepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + furyswipes: ["9L8", "7L8", "7V", "6L8", "5L8", "4L8", "3L1"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L64", "7L1", "6L1", "5L67", "4L67"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9L48"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icepunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lick: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + payback: ["9L13", "7M", "6M", "5M", "4M"], + playnice: ["9L25", "7L25", "6L25"], + playrough: ["9M", "9L29"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L41", "7M", "7L47", "7V", "6M", "6L47", "5M", "5L47", "4M", "4L47", "3M", "3L31"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M", "9L35", "7L38", "6L38", "5L38", "4L38"], + scratch: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + slash: ["9L22", "7L29", "7V", "6L29", "5L29", "4L29", "3L37"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["9L41", "7T", "7L49", "7V", "6T", "6L49", "5T", "5L49", "4T", "4L49", "3T", "3L43"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["9L17", "7L22", "6L22", "5L22", "4L22"], + swift: ["9M", "7V", "4T", "3T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9L56", "7L58", "7V", "6L58", "5L58", "4L58", "3L49"], + throatchop: ["7T"], + thunderpunch: ["9M", "7T", "7V", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + workup: ["7M", "5M"], + zapcannon: ["7V"], + }, + encounters: [ + {generation: 2, level: 25}, + ], + }, + ursaluna: { + learnset: { + aerialace: ["9M"], + avalanche: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + covet: ["9L1"], + crunch: ["9M"], + dig: ["9M"], + drainpunch: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M", "9L1"], + firepunch: ["9M"], + fling: ["9M"], + furyswipes: ["9L8"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hammerarm: ["9L64"], + headlongrush: ["9L0"], + heavyslam: ["9M"], + helpinghand: ["9M"], + highhorsepower: ["9L48"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icepunch: ["9M"], + leer: ["9L1"], + lick: ["9L1"], + lowkick: ["9M"], + metalclaw: ["9M"], + metronome: ["9M"], + payback: ["9L13"], + playnice: ["9L25"], + playrough: ["9M", "9L29"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L41"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M", "9L35"], + scratch: ["9L1"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + slash: ["9L22"], + sleeptalk: ["9M"], + snore: ["9L41"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L17"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L56"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + }, + }, + slugma: { + learnset: { + acidarmor: ["7E", "7V", "6E", "5E", "4E", "3E"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["7L36", "7V", "6L32", "5L32", "4L31", "3L29"], + ancientpower: ["7L22", "6L22", "5L28", "4T", "4L26"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L41", "7V", "6L41", "5L46", "4L46", "3T", "3L50"], + captivate: ["4M"], + clearsmog: ["7L20", "6L20"], + confide: ["7M", "6M"], + curse: ["7E", "7V", "6E", "5E", "4E"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["7T", "7L50", "7E", "6T", "6L50", "6E", "5T", "5L55", "5E", "4T", "4L56"], + ember: ["7L6", "7V", "6L5", "5L5", "5D", "4L8", "3L8"], + endure: ["7V", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fireblast: ["7M", "7V", "6M", "5M", "4M", "3M"], + flameburst: ["7L27", "6L23", "5L23"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "7L48", "7V", "6M", "6L48", "5M", "5L50", "4M", "4L53", "3M", "3L36"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + guardswap: ["7E", "6E"], + harden: ["7L13", "7V", "6L13", "5L14", "4L16", "3L22"], + heatwave: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["7L15", "6M", "6L15", "5M"], + inferno: ["7E", "6E", "5E", "5D"], + infestation: ["7M", "6M"], + irondefense: ["7T", "6T", "5T", "4T"], + lavaplume: ["7L34", "6L34", "5L37", "4L38"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + memento: ["7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["7L43", "6L19", "5L19", "4L23"], + reflect: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "7L29", "7V", "6M", "6L29", "5M", "5L41", "4M", "4L41", "3T", "3L43"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["7L8", "7V", "6L8", "5L10", "4L11", "3L15"], + rocktomb: ["7M", "6M", "5M", "4M"], + rollout: ["7E", "7V", "6E", "5E", "4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + smog: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + smokescreen: ["7E", "6E", "5E", "4E"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + spitup: ["7E", "6E", "5E", "4E"], + stockpile: ["7E", "6E", "5E", "4E"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swallow: ["7E", "6E", "5E", "4E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + willowisp: ["7M", "6M", "5M", "4M"], + yawn: ["7L1", "6L1", "5L1", "4L1", "3L1"], + }, + }, + magcargo: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["7L36", "7V", "6L32", "5L32", "4L31", "3L29"], + ancientpower: ["7L22", "6L22", "5L28", "4T", "4L26"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["7L43", "7V", "6L43", "5L52", "4L52", "3T", "3L60"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + clearsmog: ["7L20", "6L20"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["7T", "7L1", "6T", "6L1", "5T", "5L67", "4T", "4L66"], + earthquake: ["7M", "7V", "6M", "5M", "4M", "3M", "3S0"], + ember: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["7V", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fireblast: ["7M", "7V", "6M", "5M", "4M", "3M"], + flameburst: ["7L27", "6L23", "5L23"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "7L54", "7V", "6M", "6L54", "5M", "5L59", "4M", "4L61", "3M", "3L36", "3S0"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gyroball: ["7M", "6M", "5M", "4M"], + harden: ["7L13", "7V", "6L13", "5L14", "4L16", "3L22"], + heatwave: ["7T", "6T", "5T", "4T", "3S0"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["7L15", "6M", "6L15", "5M"], + infestation: ["7M", "6M"], + irondefense: ["7T", "6T", "5T", "4T"], + lavaplume: ["7L34", "6L34", "5L37", "4L40"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["7L47", "6L19", "5L19", "4L23"], + reflect: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "7L29", "7V", "6M", "6L29", "5M", "5L44", "4M", "4L45", "3T", "3L48"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + shellsmash: ["7L1", "6L38", "5L38"], + sleeptalk: ["7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smog: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + willowisp: ["7M", "6M", "5M", "4M"], + yawn: ["7L1", "6L1", "5L1", "4L1", "3L1"], + }, + eventData: [ + {generation: 3, level: 38, moves: ["refresh", "heatwave", "earthquake", "flamethrower"]}, + ], + encounters: [ + {generation: 3, level: 25}, + {generation: 6, level: 30}, + ], + }, + swinub: { + learnset: { + amnesia: ["8M", "8L35", "7L48", "7V", "6L48", "5L49", "4L49", "3L55"], + ancientpower: ["8E", "7E", "7V", "6E", "5E", "5D", "4T", "4E", "3E", "3S0"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "7E", "6E", "5E"], + bite: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + blizzard: ["8M", "8L50", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L44", "3M", "3L46"], + bodyslam: ["8M", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["3S0"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L45", "7M", "7L37", "7V", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "8L25", "7L14", "7V", "6L14", "5L16", "4M", "4L16", "3T", "3L19"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["8E", "7E", "6E", "5E", "4E"], + flail: ["8L10", "7L40", "6L40", "5L40"], + freezedry: ["8E", "7E", "6E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + iceshard: ["8L15", "7L24", "6L24", "5L28", "4L28"], + iciclecrash: ["8E", "7E", "6E", "5E"], + iciclespear: ["8M", "7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L25", "4T", "4L25", "3T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mist: ["8L20", "7L35", "7V", "6L35", "5L40", "4L40", "3L37", "3S0"], + mudbomb: ["7L18", "6L18", "5L20", "4L20"], + mudshot: ["8M", "7E", "6E", "5E", "4E", "3E", "3S0"], + mudslap: ["8L1", "7L11", "7V", "6L11", "5L13", "4T", "4L13", "3T"], + mudsport: ["7L5", "6L5", "5L4", "4L4"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + powdersnow: ["8L5", "7L8", "7V", "6L8", "5L8", "4L8", "3L10"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scaryface: ["8M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "7L28", "7E", "7V", "6L28", "6E", "5L32", "5E", "4L32", "4E", "3L28", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + }, + eventData: [ + {generation: 3, level: 22, abilities: ["oblivious"], moves: ["charm", "ancientpower", "mist", "mudshot"]}, + ], + }, + piloswine: { + learnset: { + amnesia: ["8M", "8L37", "7L58", "7V", "6L58", "5L65", "4L65", "3L70"], + ancientpower: ["8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "8L58", "7M", "7L52", "7V", "6M", "6L52", "5M", "5L56", "4M", "4L56", "3M", "3L56"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L51", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L40", "4M", "4L40", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "8L25", "7L14", "7V", "6L14", "5L16", "4M", "4L16", "3T", "3L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L1"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["7L1", "7V", "6L33", "5L33", "4L33", "3L33"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hornattack: ["3L1"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L0", "7L24", "6L24", "5L28", "4L28"], + iceshard: ["8L15"], + iciclespear: ["8M"], + icywind: ["8M", "8L30", "7T", "7L21", "7V", "6T", "6L21", "5T", "5L25", "4T", "4L25", "3T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mist: ["8L20", "7L37", "7V", "6L37", "5L48", "4L48", "3L42"], + mudbomb: ["7L18", "6L18", "5L20", "4L20"], + mudshot: ["8M"], + mudslap: ["8L1", "7L11", "7V", "6L11", "5L13", "4T", "4L13", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + peck: ["7L1", "6L1", "5L1", "4L1"], + powdersnow: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scaryface: ["8M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1"], + takedown: ["8L44", "7L28", "7V", "6L28", "5L32", "4L32", "3L28"], + thrash: ["8L65", "7L41", "6L41", "5L41"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + mamoswine: { + learnset: { + amnesia: ["8M", "8L37"], + ancientpower: ["8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "8L58", "7M", "7L52", "6M", "6L52", "5M", "5L56", "4M", "4L56"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M", "4M"], + doublehit: ["8L0", "7L33", "6L33", "5L33", "5S0", "4L33"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L51", "7M", "7L46", "6M", "6L46", "6S1", "5M", "5L40", "4M", "4L40"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "8L25", "7L14", "6L14", "5L16", "4M", "4L16"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flail: ["8L1"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L1"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "7L21", "6M", "6L21", "5M", "5L25", "5S0", "4M", "4L25"], + headbutt: ["4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icefang: ["8M", "8L1", "7L24", "6L24", "5L28", "5S0", "4L28"], + iceshard: ["8L15"], + iciclecrash: ["6S1"], + iciclespear: ["8M", "6S1"], + icywind: ["8M", "8L30", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + mist: ["8L20", "7L37", "6L37", "5L48", "4L48"], + mudbomb: ["7L18", "6L18", "5L20", "4L20"], + mudshot: ["8M"], + mudslap: ["8L1", "7L11", "6L11", "5L13", "4T", "4L13"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1"], + peck: ["7L1", "6L1", "5L1", "4L1"], + powdersnow: ["8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["8M", "7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "6S1", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M"], + sandtomb: ["8M"], + scaryface: ["8M", "7L1", "6L1", "5L65", "4L65"], + secretpower: ["6M", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["8L1"], + takedown: ["8L44", "7L28", "6L28", "5L32", "5S0", "4L32"], + thrash: ["8L65", "7L41", "6L41", "5L41"], + toxic: ["7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 5, level: 34, gender: "M", isHidden: true, moves: ["hail", "icefang", "takedown", "doublehit"]}, + {generation: 6, level: 50, shiny: true, gender: "M", nature: "Adamant", isHidden: true, moves: ["iciclespear", "earthquake", "iciclecrash", "rockslide"], pokeball: "pokeball"}, + ], + }, + corsola: { + learnset: { + amnesia: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + ancientpower: ["8L20", "7L17", "7V", "6L17", "5L32", "4T", "4L32", "3L45"], + aquaring: ["8L10", "7L38", "7E", "6L38", "6E", "5L37", "5E", "4L37", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + barrier: ["7E", "6E", "5E", "4E", "3E"], + bide: ["7E", "6E", "5E"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brine: ["8M", "7L27", "6L27", "4M"], + bubble: ["7L4", "7V", "6L4", "5L8", "5D", "4L8", "3L12"], + bubblebeam: ["8L25", "7L10", "7V", "6L10", "5L25", "4L25", "3L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + camouflage: ["7E", "6E"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E"], + defensecurl: ["7V", "3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L45", "7T", "7L47", "6T", "6L47", "5T", "5L53", "4T", "4L53"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "8L15", "7L35", "7V", "6L35", "5L35", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L50", "6L50", "5L52"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "7L1", "7V", "6L1", "5L4", "4L4", "3L6"], + headbutt: ["7V", "4T"], + headsmash: ["8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + iciclespear: ["8M", "7E", "6E", "5E", "4E", "3E"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + ingrain: ["7E", "6E", "5E", "4E", "3E"], + irondefense: ["8M", "7T", "7L29", "6T", "6L29", "5T", "5L29"], + lifedew: ["8L35"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + liquidation: ["8M", "7T", "7E"], + luckychant: ["7L23", "6L23", "5L28", "4L28"], + magiccoat: ["7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["3T"], + mirrorcoat: ["8L55", "7L45", "7V", "6L45", "5L48", "4L48", "3L39"], + mist: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["3S0"], + naturalgift: ["4M"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], + powergem: ["8M", "8L40", "7L41", "7S1", "6L41", "5L44", "4L44"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L50", "7L8", "7V", "6L8", "5L13", "4L13", "3L17"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L13", "6L13", "5L16", "4L16", "3L17"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "7L31", "6L31", "5L20", "4L20", "3L34"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7V", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikecannon: ["7L20", "7V", "6L20", "5L40", "4L40", "3L28"], + stealthrock: ["8M", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "7V", "7S1", "6L1", "5L1", "4L1", "3L1", "3S0"], + throatchop: ["8M", "7T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L5"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["tackle", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 7, level: 50, gender: "F", nature: "Serious", abilities: ["hustle"], moves: ["tackle", "powergem"], pokeball: "ultraball"}, + ], + }, + corsolagalar: { + learnset: { + amnesia: ["8M"], + ancientpower: ["8L20"], + astonish: ["8L5", "8S0"], + attract: ["8M"], + blizzard: ["8M"], + bodyslam: ["8M"], + brine: ["8M"], + bulldoze: ["8M"], + calmmind: ["8M"], + confuseray: ["8E"], + curse: ["8L30"], + destinybond: ["8E"], + dig: ["8M"], + disable: ["8L10", "8S0"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + grudge: ["8L50"], + hail: ["8M"], + harden: ["8L1"], + haze: ["8E"], + headsmash: ["8E"], + hex: ["8M", "8L25"], + hydropump: ["8M"], + icebeam: ["8M"], + iciclespear: ["8M"], + icywind: ["8M"], + irondefense: ["8M"], + lightscreen: ["8M"], + liquidation: ["8M"], + meteorbeam: ["8T"], + mirrorcoat: ["8L55"], + naturepower: ["8E"], + nightshade: ["8L45"], + powergem: ["8M", "8L40"], + protect: ["8M"], + psychic: ["8M"], + raindance: ["8M"], + reflect: ["8M"], + rest: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + scald: ["8M"], + screech: ["8M"], + selfdestruct: ["8M"], + shadowball: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + spite: ["8L15", "8S0"], + stealthrock: ["8M"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + strengthsap: ["8L35"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + tackle: ["8L1", "8S0"], + throatchop: ["8M"], + waterpulse: ["8E"], + whirlpool: ["8M"], + willowisp: ["8M"], + }, + eventData: [ + {generation: 8, level: 15, isHidden: true, moves: ["tackle", "astonish", "disable", "spite"], pokeball: "cherishball"}, + ], + }, + cursola: { + learnset: { + amnesia: ["8M"], + ancientpower: ["8L20"], + astonish: ["8L1"], + attract: ["8M"], + blizzard: ["8M"], + bodyslam: ["8M"], + brine: ["8M"], + bulldoze: ["8M"], + burningjealousy: ["8T"], + calmmind: ["8M"], + curse: ["8L30"], + dig: ["8M"], + disable: ["8L1"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + grudge: ["8L50"], + hail: ["8M"], + harden: ["8L1"], + hex: ["8M", "8L25"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icebeam: ["8M"], + iciclespear: ["8M"], + icywind: ["8M"], + irondefense: ["8M"], + leechlife: ["8M"], + lightscreen: ["8M"], + liquidation: ["8M"], + meteorbeam: ["8T"], + mirrorcoat: ["8L55"], + nightshade: ["8L45"], + perishsong: ["8L1"], + pinmissile: ["8M"], + poltergeist: ["8T"], + powergem: ["8M", "8L40"], + protect: ["8M"], + psychic: ["8M"], + raindance: ["8M"], + reflect: ["8M"], + rest: ["8M"], + revenge: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + scald: ["8M"], + screech: ["8M"], + selfdestruct: ["8M"], + shadowball: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + spite: ["8L15"], + stealthrock: ["8M"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + strengthsap: ["8L35"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + tackle: ["8L1"], + throatchop: ["8M"], + whirlpool: ["8M"], + willowisp: ["8M"], + }, + }, + remoraid: { + learnset: { + acidspray: ["8E", "7E", "6E", "5E"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L16", "7L14", "7E", "7V", "6L14", "6E", "5L14", "5E", "4L14", "4E", "3L22", "3E"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "5D", "4M"], + bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L19", "4L19", "3L22"], + bulletseed: ["8M", "8L28", "7L38", "6L38", "5L27", "4M", "4L27"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + entrainment: ["7E", "6E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8E", "7E", "6E", "5E", "4E"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M", "8L8", "7L22", "7V", "6L22", "5L23", "4L23", "3L33"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + helpinghand: ["8M", "8L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L36", "7L42", "6L42", "5L42"], + hyperbeam: ["8M", "8L44", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L45", "4M", "4L45", "3M", "3L55"], + icebeam: ["8M", "8L32", "7M", "7L34", "7V", "6M", "6L34", "5M", "5L40", "4M", "4L40", "3M", "3L44"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + lockon: ["8L24", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L11"], + mimic: ["3T"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + octazooka: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L12", "7L10", "7V", "6L10", "5L10", "4L10", "3L22"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "7E", "6E", "5E", "5D", "4E", "3E"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + signalbeam: ["7T", "7L30", "6T", "6L30", "5T", "5L36", "4T", "4L36"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + soak: ["8L40", "7L50", "6L50", "5L49"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7E", "7V", "6E", "5E", "4T", "3T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L4", "7T", "7L26", "7E", "6T", "6L26", "6E", "5L32", "5E", "4M", "4L32", "3M"], + waterspout: ["8E", "7E", "6E", "5E", "4E"], + whirlpool: ["8M", "7V", "4M"], + }, + }, + octillery: { + learnset: { + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L16", "7L1", "7V", "6L1", "5L1", "4L1", "3L22"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "4M"], + bubblebeam: ["8L20", "7L18", "7V", "6L18", "5L19", "4L19", "3L22"], + bulletseed: ["8M", "8L30", "7L46", "6L46", "5L29", "4M", "4L29", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "7V", "6L1", "5L1", "4L1", "3L11"], + curse: ["7V"], + defensecurl: ["7V", "3T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L1", "7L22", "7V", "6L22", "5L23", "4L23", "3L38"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gunkshot: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + helpinghand: ["8M", "8L1"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L42", "7L52", "6L52", "5L52"], + hyperbeam: ["8M", "8L54", "7M", "7L58", "7V", "6M", "6L58", "5M", "5L55", "4M", "4L55", "4S0", "3M", "3L70"], + icebeam: ["8M", "8L36", "7M", "7L40", "7V", "6M", "6L40", "5M", "5L48", "4M", "4L48", "4S0", "3M", "3L54"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + liquidation: ["8M"], + lockon: ["8L24"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + octazooka: ["8L0", "7L1", "7V", "6L25", "5L25", "4L25", "4S0", "3L25"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L22"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L42", "4T", "4L42", "4S0"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + soak: ["8L48", "7L64", "6L64", "5L61"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L1", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7V", "4M"], + wrap: ["8L1"], + wringout: ["7L28", "6L28", "5L36", "4L36"], + }, + eventData: [ + {generation: 4, level: 50, gender: "F", nature: "Serious", abilities: ["suctioncups"], moves: ["octazooka", "icebeam", "signalbeam", "hyperbeam"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 19}, + {generation: 7, level: 10}, + ], + }, + delibird: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + aurorabeam: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + auroraveil: ["9E", "8E", "7M"], + avalanche: ["9M", "8M", "4M"], + batonpass: ["9M", "8M"], + bestow: ["7E", "6E", "5E"], + blizzard: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bravebird: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "3T"], + curse: ["7V"], + defog: ["7T", "4M"], + destinybond: ["9E", "8E", "7E", "6E"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["9L25", "8L25", "7L25"], + drillrun: ["9M", "8M"], + dualwingbeat: ["8T"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + focuspunch: ["7T", "6T", "5D", "4M", "3M"], + foulplay: ["9M"], + freezedry: ["9E", "8E", "7E", "6E"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + happyhour: ["6S1"], + headbutt: ["7V", "4T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + iceball: ["7E", "6E", "5E", "4E", "3E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + iceshard: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "3T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + memento: ["9E", "8E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + poweruppunch: ["6M"], + present: ["9L1", "8L1", "7L1", "7V", "6L1", "6S1", "5L1", "5D", "4L1", "3L1", "3S0"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + quickattack: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rapidspin: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["7T", "6T", "5T", "4T", "3T"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "3T"], + snowscape: ["9M"], + spikes: ["9M", "8M", "7E", "6E"], + splash: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + steelwing: ["8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "7V", "4T", "3T"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["8M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["present"], pokeball: "pokeball"}, + {generation: 6, level: 10, abilities: ["vitalspirit"], moves: ["present", "happyhour"], pokeball: "cherishball"}, + ], + }, + mantyke: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "8L20", "7L32", "6L32", "5L19", "4L19"], + aircutter: ["4T"], + airslash: ["8M", "8L32", "7L36", "6L36", "5L36"], + amnesia: ["8M", "7E", "6E", "5E"], + aquaring: ["8L36", "7L39", "6L39", "5L46", "4L46"], + attract: ["8M", "7M", "6M", "5M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bounce: ["8M", "8L40", "7T", "7L46", "6T", "6L46", "5T", "5L40", "4T", "4L40"], + bubble: ["7L1", "6L1", "5L1", "4L1"], + bubblebeam: ["8L24", "7L7", "6L7", "5L10", "4L10"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7L11", "6L11", "5L37", "4L37"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + haze: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8L28", "7L16", "6L16", "5L13", "4T", "4L13"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["8M", "8L48", "7L49", "7E", "6L49", "6E", "5L49", "5E", "4L49", "4E"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + mudsport: ["7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4E"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4E"], + slam: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + splash: ["8E", "7E", "6E", "5E", "4E"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + supersonic: ["8L4", "7L3", "6L3", "5L4", "4L4"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["8E", "7T", "7E", "6E"], + takedown: ["8L44", "7L27", "6L27", "5L31", "4L31"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["8E", "7E", "6E", "5E", "4E"], + waterfall: ["8M", "7M", "6M", "5M", "4M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L28", "4M", "4L28"], + watersport: ["7E", "6E", "5E", "4E"], + whirlpool: ["8M", "4M"], + wideguard: ["8L16", "7L23", "7E", "6L23", "6E", "5L23", "5E"], + wingattack: ["8L8", "7L14", "6L14", "5L22", "4L22"], + }, + }, + mantine: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L20", "7L32", "7V", "6L32", "5L19", "4L19", "3L29"], + aircutter: ["5D", "4T"], + airslash: ["8M", "8L32", "7L36", "6L36", "5L36"], + amnesia: ["8M", "7E", "6E", "5E"], + aquaring: ["8L36", "7L39", "6L39", "5L46", "4L46"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L40", "7T", "7L46", "6T", "6L46", "5T", "5L40", "4T", "4L40"], + brine: ["8M", "4M"], + bubble: ["7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + bubblebeam: ["8L24", "7L1", "7V", "6L1", "5L1", "4L1", "3L15"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "8L1", "7L1", "6L1", "5L1", "4M", "4L1"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7L11", "7V", "6L11", "5L37", "4L37", "3L50"], + curse: ["7V"], + defog: ["7T", "4M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + headbutt: ["8L28", "7L16", "7V", "6L16", "5L13", "4T", "4L13"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M"], + hydropump: ["8M", "8L48", "7L49", "7E", "7V", "6L49", "6E", "5L49", "5E", "4L49", "4E", "3E"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + liquidation: ["8M", "7T"], + mimic: ["3T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "5D", "4E"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["8L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3E"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + roost: ["8L1", "7M", "7L1"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + signalbeam: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + slam: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + splash: ["8E", "7E", "6E", "5E", "4E"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L8", "3S0"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + tailwind: ["8E", "7T", "6T", "5T", "4T"], + takedown: ["8L44", "7L27", "7V", "6L27", "5L31", "4L31", "3L22"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L19", "6T", "6L19", "5L28", "4M", "4L28", "3M", "3L43"], + watersport: ["7E", "6E", "5E", "4E"], + whirlpool: ["8M", "7V", "4M"], + wideguard: ["8L16", "7L23", "7E", "6L23", "6E", "5L23", "5E"], + wingattack: ["8L1", "7L14", "7V", "6L14", "5L22", "4L22", "3L36"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "bubble", "supersonic"], pokeball: "pokeball"}, + ], + }, + skarmory: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L16", "7L31", "7V", "6L12", "5L12", "4L12", "3L16"], + aircutter: ["8E", "7L12", "6L12", "5L23", "4T", "4L23", "3L29"], + airslash: ["8M", "7L45", "6L42", "5L42", "4L39"], + assurance: ["8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + autotomize: ["8L32", "7L50", "6L39", "5L39"], + bodypress: ["8M"], + bravebird: ["8M", "8L52", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + drillpeck: ["8L36", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + dualwingbeat: ["8T"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8E", "7L20", "6L20", "5L20", "4L20"], + flash: ["6M", "5M", "4M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["8L8", "7L17", "7V", "6L17", "5L17", "4L17", "3L26"], + furycutter: ["4T"], + guardswap: ["8M", "7E", "6E", "5E", "4E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + irondefense: ["8M", "8L48", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + metalclaw: ["8L12", "7L9", "6L9"], + metalsound: ["8L40", "7L42", "6L31", "5L31", "4L31", "3L45"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["8E", "7L53", "6L50", "5L50", "4L45"], + ominouswind: ["4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + peck: ["8L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1"], + pluck: ["5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + roost: ["8E", "7M", "6M", "5T", "5D", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L4", "7L6", "7V", "6L6", "5L6", "4L6", "3L10"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["8E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + skydrop: ["7M", "6M", "5M"], + slash: ["8L24", "7L39", "6L39", "5L45", "4L42"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spikes: ["8M", "8L44", "7L28", "6L28", "5L28", "4L27", "3L42"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + steelbeam: ["8T"], + steelwing: ["8M", "8L28", "7M", "7L34", "7V", "6M", "6L34", "5L34", "4M", "4L34", "3M", "3L32"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7L23", "7V", "6L9", "5L9", "4T", "4L9", "3T", "3L13"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + tailwind: ["7T", "6T", "5T", "4T"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + whirlwind: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + wingattack: ["8L20"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + houndour: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["9L25", "7L25", "7E", "7V", "6L25", "6E", "5L25", "5E", "4L27", "4E", "3E"], + bite: ["9L16", "7L16", "7V", "6L16", "5L16", "4L17", "3L25"], + bodyslam: ["9M", "3T"], + captivate: ["4M"], + charm: ["3S1"], + comeuppance: ["9L37"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + crunch: ["9M", "9L49", "7L49", "7V", "6L49", "5L49", "4L48", "3L49"], + curse: ["7V"], + darkpulse: ["9M", "7M", "6M", "5T", "5D", "4M"], + destinybond: ["9E", "7E", "6E"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L40"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9E", "7E", "6E", "5E", "5D", "4E"], + feintattack: ["7L32", "7V", "6L32", "5L32", "4L35", "3L37", "3S1"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L28", "7L28", "7E", "6L28", "6E", "5L28", "5E", "4L30", "4E"], + firespin: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L44", "7M", "7L44", "7V", "6M", "6L44", "5M", "5L44", "4M", "4L43", "3M", "3L43"], + flareblitz: ["9M"], + foulplay: ["9M", "9L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L4", "7L4", "6L4", "5L4", "5D", "4L4", "3L7", "3S0"], + hypervoice: ["9M", "7T", "6T", "5T"], + incinerate: ["9L20", "6M", "5M"], + inferno: ["9L56", "7L56", "6L56", "5L56"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S0"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M", "9L52", "7L52", "7E", "6L52", "6E", "5L52", "5E", "4L53", "4E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + odorsleuth: ["7L20", "6L20", "5L20", "4L22", "3L31"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + punishment: ["7E", "6E", "5E", "4E"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + rage: ["7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3E"], + roar: ["9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19", "3S1"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + smog: ["9L8", "7L8", "7V", "6L8", "5L8", "4L9", "3L13"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + spite: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "7E", "6E", "5E", "4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9E", "7E", "6E", "5E", "4E"], + torment: ["9L32", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["leer", "ember", "howl"], pokeball: "pokeball"}, + {generation: 3, level: 17, moves: ["charm", "feintattack", "ember", "roar"]}, + ], + }, + houndoom: { + learnset: { + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + beatup: ["9L26", "7L26", "6L26", "5L26", "4L28"], + bite: ["9L16", "7L16", "7V", "6L16", "5L16", "4L17", "3L27"], + bodyslam: ["9M", "3T"], + captivate: ["4M"], + comeuppance: ["9L41"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["9M", "9L56", "7L56", "7V", "6L56", "5L56", "4L54", "3L59"], + curse: ["7V"], + darkpulse: ["9M", "7M", "6M", "6S0", "5T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L44"], + ember: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L35", "7V", "6L35", "5L35", "4L38", "3L43"], + fireblast: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L30", "7L30", "6L30", "5L30", "4L32"], + firespin: ["9M"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L50", "7M", "7L50", "7V", "6M", "6L50", "6S0", "5M", "5L50", "4M", "4L48", "3M", "3L51"], + flareblitz: ["9M"], + foulplay: ["9M", "9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + incinerate: ["9L20", "6M", "5M"], + inferno: ["9L62", "7L1", "6L1", "5L65"], + irontail: ["7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + nastyplot: ["9M", "9L1", "7L1", "6L1", "5L60", "4L60"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + odorsleuth: ["7L20", "6L20", "5L20", "4L22", "3L35"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + roar: ["9L13", "7M", "7L13", "7V", "6M", "6L13", "5M", "5L13", "4M", "4L14", "3M", "3L19"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + smog: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L13"], + snarl: ["9M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["7V", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["9L35", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Timid", abilities: ["flashfire"], moves: ["flamethrower", "darkpulse", "solarbeam", "sludgebomb"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + phanpy: { + learnset: { + ancientpower: ["9E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + bulldoze: ["9M", "9L15", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + curse: ["7V"], + defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L9"], + dig: ["9M"], + doubleedge: ["9L42", "7L42", "7V", "6L42", "5L42", "4L42", "3T", "3L49"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + endure: ["9M", "9L19", "7L19", "7V", "6L19", "5L28", "4M", "4L28", "3T", "3L41"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9E", "7E", "6E", "5E", "4E", "3E"], + flail: ["9L6", "7L6", "7V", "6L6", "5L6", "5D", "4L6", "3L17"], + focusenergy: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + headsmash: ["9E", "7E", "6E", "5E", "4E"], + heavyslam: ["9M", "9E", "7E", "6E", "5E", "5D"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["9E", "7E"], + hypervoice: ["9M", "7T", "6T", "5T"], + iceshard: ["9E", "7E", "6E", "5E", "4E"], + ironhead: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["9L37", "7T", "7L37", "6T", "6L37", "5T", "5L37", "4L37"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7E", "7V", "6E", "5E", "4T", "3T"], + naturalgift: ["7L15", "6L15", "5L19", "4M", "4L19"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + playrough: ["9M", "9E", "7E", "6E"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L33"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "5D", "4T"], + slam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L28", "7L28", "7V", "6L10", "5L10", "4L10", "3L25"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + watergun: ["7V"], + }, + encounters: [ + {generation: 2, level: 2}, + ], + }, + donphan: { + learnset: { + ancientpower: ["4T"], + assurance: ["9L15", "7L15", "6L15", "5L31", "4L31"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bounce: ["7T", "6T", "5T", "4T"], + brutalswing: ["7M"], + bulldoze: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["7V"], + defensecurl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3T", "3L9"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L43", "7M", "7L43", "7V", "6M", "6L43", "5M", "5L46", "4M", "4L46", "3M", "3L49"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "7V", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + flail: ["7V", "4L1", "3L17"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furyattack: ["9L0", "7L1", "7V", "6L25", "5L25", "4L25", "3L25"], + gigaimpact: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L54", "4M", "4L54"], + growl: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + gyroball: ["7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hornattack: ["9L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "7T", "6T", "5T"], + icefang: ["9M"], + icespinner: ["9M"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + knockoff: ["9L19", "7T", "7L19", "6T", "6L10", "5T", "5L10", "4T", "4L10"], + lastresort: ["7T", "6T", "5T"], + magnitude: ["7L30", "6L19", "5L19", "4L19"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["3L1"], + playrough: ["9M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rapidspin: ["9L6", "7L6", "7V", "6L6", "5L6", "4L6", "3L41"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9L10", "7L10", "7V", "6L10", "5L15", "4T", "4L15", "3T", "3L33"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L37", "7L37", "6L37", "5L39", "4L39"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + slam: ["9L24", "7L24", "6L24", "5L24", "4L24"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + smartstrike: ["9M"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "9L30", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + }, + encounters: [ + {generation: 6, level: 24, maxEggMoves: 1}, + ], + }, + stantler: { + learnset: { + agility: ["9M"], + astonish: ["9L7", "7L7", "6L7", "5L7", "4L7", "3L11"], + attract: ["7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9E", "7E", "7V", "6E", "5E", "4E", "3E"], + bodyslam: ["9M", "3T"], + bounce: ["7T", "6T", "5T", "4T"], + bulldoze: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "9L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L47"], + captivate: ["7L50", "6L50", "5L53", "4M", "4L49"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L23", "7L23", "7V", "6L23", "5L23", "4L23", "3L41"], + curse: ["7V"], + detect: ["7V"], + dig: ["9M"], + disable: ["9E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + doubleedge: ["9L55", "3T"], + doublekick: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + earthpower: ["9M"], + earthquake: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["9M", "7V", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + extrasensory: ["9E", "7E", "6E", "5E", "4E", "3E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hypnosis: ["9L10", "7L10", "7V", "6L10", "5L10", "4L10", "3L17"], + imprison: ["9M", "9L49", "7L49", "6L49", "5L49", "4L43"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + jumpkick: ["7L43", "6L43", "5L43"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["9L3", "7L3", "7V", "6L3", "5L3", "4L3", "3L7", "3S0"], + lightscreen: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + magicroom: ["7T", "6T", "5T"], + mefirst: ["7L1", "7E", "6L1", "6E", "5L55", "5E", "4L53"], + megahorn: ["9E", "7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mudsport: ["7E", "6E", "5E"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + protect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + psyshieldbash: ["9E"], + psyshock: ["9M", "7M", "6M", "5M"], + rage: ["7E", "6E", "5E"], + raindance: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + roleplay: ["9L32", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L31"], + round: ["7M", "6M", "5M"], + sandattack: ["9L16", "7L16", "7V", "6L16", "5L16", "4L16", "3L27"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "6T", "5T", "5D", "4M", "3M"], + sleeptalk: ["9M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spite: ["9E", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + stomp: ["9L13", "7L13", "7V", "6L13", "5L13", "4L13", "3L21"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["9M", "7V", "4T", "3T"], + tackle: ["9L1", "7L1", "7V", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + takedown: ["9M", "9L21", "7L21", "7V", "6L21", "5L21", "4L21", "3L37"], + terablast: ["9M"], + thief: ["9M", "7M", "7V", "6M", "5M", "4M", "3M"], + thrash: ["9E", "7E", "6E", "5E", "4E"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + wildcharge: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["9M", "9L37", "7T", "7L38", "7E", "6T", "6L38", "6E", "5T", "5L38", "5E", "4T", "4L38", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["intimidate"], moves: ["tackle", "leer"], pokeball: "pokeball"}, + ], + }, + wyrdeer: { + learnset: { + agility: ["9M"], + astonish: ["9L7"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M", "9L27"], + chargebeam: ["9M"], + confuseray: ["9M", "9L23"], + dig: ["9M"], + doubleedge: ["9L55"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypnosis: ["9L10"], + imprison: ["9M", "9L49"], + leer: ["9L3"], + lightscreen: ["9M"], + megahorn: ["9L62"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psyshieldbash: ["9L0"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roleplay: ["9L32"], + sandattack: ["9L16"], + scaryface: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + stomp: ["9L13"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L21"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M", "9L37"], + }, + }, + smeargle: { + learnset: { + captivate: ["5D"], + falseswipe: ["5S1"], + flamethrower: ["6S2"], + furyswipes: ["6S2"], + meanlook: ["5S1"], + odorsleuth: ["5S1"], + seismictoss: ["6S2"], + sketch: ["7L1", "7V", "6L1", "6S2", "5L1", "5D", "4L1", "3L1", "3S0"], + sleeptalk: ["5D"], + spore: ["5S1"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["owntempo"], moves: ["sketch"], pokeball: "pokeball"}, + {generation: 5, level: 50, gender: "F", nature: "Jolly", ivs: {atk: 31, spe: 31}, abilities: ["technician"], moves: ["falseswipe", "spore", "odorsleuth", "meanlook"], pokeball: "cherishball"}, + {generation: 6, level: 40, gender: "M", nature: "Jolly", abilities: ["owntempo"], moves: ["sketch", "furyswipes", "seismictoss", "flamethrower"], pokeball: "cherishball"}, + ], + }, + miltank: { + learnset: { + afteryou: ["7T", "6T", "5T"], + attract: ["8M", "7M", "7V", "6M", "6S0", "5M", "4M", "3M"], + belch: ["8E", "7E", "6E"], + bide: ["7L15", "7V", "6L15", "5L15", "4L15", "3L26"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L40", "7L24", "7V", "6L24", "5L24", "4L24", "3T", "3L43"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + charm: ["8M", "8L50"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8E", "7E", "7V", "6E", "5E", "5D", "4E", "3E"], + defensecurl: ["8L10", "7L5", "7V", "6L5", "5L5", "5D", "4L5", "3T", "3L8"], + dizzypunch: ["7E", "6E", "5E", "4E"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dynamicpunch: ["7V", "3T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7E", "7V", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["8E", "7T", "6T", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L3", "7V", "6L3", "5L3", "4L3", "3L4"], + gyroball: ["8M", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["8L25", "7V", "4T"], + healbell: ["8L20", "7T", "7L48", "7V", "6T", "6L48", "5T", "5L48", "4T", "4L48", "3L53"], + heartstamp: ["7E", "6E", "5E"], + heavyslam: ["8M"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M", "8L55"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "5D", "4M", "3M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "3T"], + milkdrink: ["8L35", "7L11", "7V", "6L11", "6S0", "5L11", "4L11", "3L19"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + playrough: ["8M", "8L45"], + poweruppunch: ["6M"], + present: ["8E", "7E", "7V", "6E", "5E", "4E", "3E"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "4E", "3T", "3E"], + punishment: ["7E", "6E", "5E", "4E"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M", "7E", "7V", "6E", "5E", "4E", "3E"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L5", "7L19", "7V", "6L19", "6S0", "5L19", "4T", "4L19", "3T", "3L34"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8E", "7E", "7V", "6E", "5E", "4E", "3T", "3E"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7E", "7V", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelroller: ["8T"], + stomp: ["8L15", "7L8", "7V", "6L8", "6S0", "5L8", "4L8", "3L13"], + stompingtantrum: ["8M", "7T"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + tackle: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + wakeupslap: ["7L50", "6L50", "5L55", "4L55"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "8L30", "7T", "7L29", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + }, + eventData: [ + {generation: 6, level: 20, perfectIVs: 3, abilities: ["scrappy"], moves: ["rollout", "attract", "stomp", "milkdrink"], pokeball: "cherishball"}, + ], + }, + raikou: { + learnset: { + agility: ["8M"], + aurasphere: ["8M", "4S3"], + bite: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L18", "7M", "7L78", "7S7", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + charge: ["8L1"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42", "7L43", "7V", "7S5", "7S6", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + discharge: ["8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + electricterrain: ["8M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L48", "7L1", "7S7", "6L1", "5L64", "4L64"], + extremespeed: ["8L1", "8S8", "4S3"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["8L36", "8S8"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quash: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + raindance: ["8M", "8L66", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M"], + reflect: ["8M", "8L60", "7M", "7L36", "7V", "7S5", "7S6", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spark: ["8L6", "7L29", "7V", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + throatchop: ["8M", "7T"], + thunder: ["8M", "8L72", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L71", "3M", "3L71"], + thunderbolt: ["8M", "8S8", "7M", "7S7", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "8L30", "7L50", "7S5", "7S6", "6L50", "6S4", "5L50", "4L50"], + thundershock: ["8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + voltswitch: ["8M", "7M", "7S7", "6M", "5M"], + weatherball: ["8M", "8S8", "4S3"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L78", "7V", "4S3"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["thundershock", "roar", "quickattack", "spark"]}, + {generation: 3, level: 70, moves: ["quickattack", "spark", "reflect", "crunch"], pokeball: "pokeball"}, + {generation: 4, level: 40, shiny: 1, moves: ["roar", "quickattack", "spark", "reflect"]}, + {generation: 4, level: 30, shiny: true, nature: "Rash", moves: ["zapcannon", "aurasphere", "extremespeed", "weatherball"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["spark", "reflect", "crunch", "thunderfang"]}, + {generation: 7, level: 60, shiny: 1, moves: ["reflect", "crunch", "thunderfang", "discharge"]}, + {generation: 7, level: 60, moves: ["reflect", "crunch", "thunderfang", "discharge"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["thunderbolt", "voltswitch", "extrasensory", "calmmind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["thunderbolt", "howl", "extremespeed", "weatherball"]}, + ], + encounters: [ + {generation: 2, level: 40}, + {generation: 3, level: 40}, + ], + eventOnly: true, + }, + entei: { + learnset: { + agility: ["8M"], + bite: ["8L12", "7L1", "7V", "7S5", "7S6", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L18", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42", "8S8"], + crushclaw: ["4S3"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + ember: ["8L1", "7L8", "7V", "6L8", "5L8", "4L8", "3L11", "3S0"], + endure: ["8M", "7V", "4M", "3T"], + eruption: ["8L78", "7L1", "6L1", "5L85", "4L85"], + extrasensory: ["8L48", "7L1", "6L1", "5L64", "4L64"], + extremespeed: ["8L1", "8S8", "4S3"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L72", "7M", "7L71", "7V", "6M", "6L71", "5M", "5L71", "4M", "4L71", "3M", "3L71"], + firefang: ["8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], + firespin: ["8M", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + flamecharge: ["7M", "7S7", "6M", "5M"], + flamethrower: ["8M", "8S8", "7M", "7L36", "7V", "6M", "6L36", "6S4", "5M", "5L36", "4M", "4L36", "4S2", "3M", "3L51", "3S1"], + flamewheel: ["8L6"], + flareblitz: ["8M", "4S3"], + flash: ["7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["7V", "4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + howl: ["4S3"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "7T", "7S7", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lavaplume: ["8L54", "7L1", "7S5", "7S6", "6L1", "5L57", "4L57"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quash: ["7M", "6M", "5M"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["8L24", "7M", "7L15", "7V", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sacredfire: ["8L1", "7L1", "7S7", "6L1"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L36", "8S8"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smokescreen: ["8L1"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + stomp: ["8L1", "7L29", "7V", "7S5", "7S6", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "7S7", "6M", "5M", "4M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L66", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["8L60", "7M", "7L43", "7V", "7S5", "7S6", "6M", "6L43", "6S4", "5M", "5L43", "4M", "4L43", "3T", "3L61", "3S1"], + swift: ["8M", "7V", "4T", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["ember", "roar", "firespin", "stomp"]}, + {generation: 3, level: 70, moves: ["firespin", "stomp", "flamethrower", "swagger"], pokeball: "pokeball"}, + {generation: 4, level: 40, shiny: 1, moves: ["roar", "firespin", "stomp", "flamethrower"]}, + {generation: 4, level: 30, shiny: true, nature: "Adamant", moves: ["flareblitz", "howl", "extremespeed", "crushclaw"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["stomp", "flamethrower", "swagger", "firefang"]}, + {generation: 7, level: 60, shiny: 1, moves: ["stomp", "bite", "swagger", "lavaplume"]}, + {generation: 7, level: 60, moves: ["stomp", "bite", "swagger", "lavaplume"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["sacredfire", "stoneedge", "ironhead", "flamecharge"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["flamethrower", "scaryface", "extremespeed", "crunch"]}, + ], + encounters: [ + {generation: 2, level: 40}, + {generation: 3, level: 40}, + ], + eventOnly: true, + }, + suicune: { + learnset: { + agility: ["8M"], + airslash: ["8M", "4S3"], + aquaring: ["4S3"], + aurorabeam: ["7L29", "7V", "7S5", "6L29", "6S4", "5L29", "4L29", "4S2", "3L41", "3S0", "3S1"], + avalanche: ["8M", "4M"], + bite: ["8L12", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["8M", "8L78", "7M", "7L85", "7V", "6M", "6L85", "5M", "5L85", "4M", "4L85", "3M"], + bodyslam: ["8M", "3T"], + brine: ["8M", "4M"], + bubblebeam: ["7L1", "7V", "7S5", "6L8", "5L8", "4L8", "3L11", "3S0"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L18", "8S6", "7M", "7L78", "6M", "6L78", "5M", "5L78", "4M", "4L78", "3M", "3L81"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + detect: ["7V"], + dig: ["8M", "7V", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L48", "8S6", "7L64", "6L1", "5L64", "4L64"], + extremespeed: ["8L1", "8S6", "4S3"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L1", "7L22", "7V", "6L22", "5L22", "4L22", "4S2", "3L31", "3S0", "3S1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L72", "7L71", "7V", "6L1", "5L71", "4L71", "3L71"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L30", "7L50", "6L50", "6S4", "5L50", "4L50"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8S6"], + mimic: ["3T"], + mirrorcoat: ["8L60", "7L43", "7V", "6L43", "6S4", "5L43", "4L43", "3L61", "3S1"], + mist: ["8L1", "7L36", "7V", "7S5", "6L36", "6S4", "5L36", "4L36", "4S2", "3L51", "3S1"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + quash: ["7M", "6M", "5M"], + raindance: ["8M", "8L66", "7M", "7L1", "7V", "7S5", "6M", "6L15", "5M", "5L15", "4M", "4L15", "4S2", "3M", "3L21", "3S0"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["8L24", "7M", "7V", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sheercold: ["8L1", "7L1", "4S3"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "8L54", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "3T"], + tailwind: ["8L36", "7T", "7L57", "6T", "6L1", "5T", "5L57", "4T", "4L57"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7V"], + waterpulse: ["8L6", "7T", "6T", "4M", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "7V", "4M"], + }, + eventData: [ + {generation: 3, level: 50, shiny: 1, moves: ["bubblebeam", "raindance", "gust", "aurorabeam"]}, + {generation: 3, level: 70, moves: ["gust", "aurorabeam", "mist", "mirrorcoat"], pokeball: "pokeball"}, + {generation: 4, level: 40, shiny: 1, moves: ["raindance", "gust", "aurorabeam", "mist"]}, + {generation: 4, level: 30, shiny: true, nature: "Relaxed", moves: ["sheercold", "airslash", "extremespeed", "aquaring"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["aurorabeam", "mist", "mirrorcoat", "icefang"]}, + {generation: 7, level: 60, shiny: 1, moves: ["bubblebeam", "aurorabeam", "mist", "raindance"]}, + {generation: 8, level: 70, shiny: 1, moves: ["liquidation", "extrasensory", "extremespeed", "calmmind"]}, + ], + encounters: [ + {generation: 2, level: 40}, + {generation: 3, level: 40}, + ], + eventOnly: true, + }, + larvitar: { + learnset: { + ancientpower: ["9E", "8E", "7E", "7V", "6E", "5E", "4T", "4E", "3E"], + assurance: ["9E", "8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9L9", "8L9", "7L1", "7V", "6L1", "5L1", "5D", "5S1", "4L1", "3L1", "3S0"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L14", "6L14", "5L14"], + confide: ["7M", "6M"], + crunch: ["9M", "9L27", "8M", "8L27", "7L41", "7V", "6L41", "5L41", "4L37", "3L43"], + curse: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + darkpulse: ["9M", "8M", "8L24", "7M", "7L32", "6M", "6L32", "5T", "5L32", "5D", "4M", "4L28"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "9E", "8M", "7E", "6E", "5E", "4E", "3E", "3S0"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L31", "8M", "8L31", "7M", "7L46", "7V", "6M", "6L46", "5M", "5L46", "4M", "4L41", "3M", "3L50"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["9E", "8M", "7E", "7V", "6E", "5E", "4E", "3E"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "9L42", "8M", "8L42", "7M", "7L55", "7V", "6M", "6L55", "5M", "5L55", "4M", "4L50", "3M", "3L57"], + irondefense: ["9M", "9E", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + ironhead: ["9M", "9E", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "5S1", "4L1", "3L1"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9E", "8M", "7T", "7E", "7V", "6T", "6E", "5T", "5E", "4E", "3E", "3S0"], + payback: ["9L6", "8M", "8L6", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L32"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "7V", "6E", "5E", "4E", "3E"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L15", "8M", "8L15", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "4L14", "3T", "3L22"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["9L3", "8L3"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "9L39", "8M", "8L39", "7M", "7L5", "7V", "6M", "6L5", "5M", "5L5", "5S1", "4M", "4L5", "3M", "3L8", "3S0"], + sandtomb: ["8M"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L36"], + screech: ["9L21", "8M", "8L21", "7L10", "7V", "6L10", "5L10", "4L10", "3L15"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9L24", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], + stomp: ["9E", "8E", "7E", "7V", "6E", "5E", "4E", "3E"], + stompingtantrum: ["9M", "9L18", "8M", "8L18"], + stoneedge: ["9M", "9L33", "8M", "8L33", "7M", "7L50", "6M", "6L50", "5M", "5L50", "4M", "4L46"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "5S1", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L36", "8L36", "7L28", "7V", "6L28", "5L28", "4L23", "3L29"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 20, moves: ["sandstorm", "dragondance", "bite", "outrage"], pokeball: "pokeball"}, + {generation: 5, level: 5, shiny: true, gender: "M", moves: ["bite", "leer", "sandstorm", "superpower"], pokeball: "cherishball"}, + ], + }, + pupitar: { + learnset: { + aerialace: ["9M"], + ancientpower: ["4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bite: ["9L9", "8L9", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L14", "6L14", "5L14"], + confide: ["7M", "6M"], + crunch: ["9M", "9L27", "8M", "8L27", "7L47", "7V", "6L47", "5L47", "4L41", "3L47"], + curse: ["7V"], + darkpulse: ["9M", "8M", "8L24", "7M", "7L34", "6M", "6L34", "5T", "5L34", "4M", "4L28"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L33", "8M", "8L33", "7M", "7L54", "7V", "6M", "6L54", "5M", "5L54", "4M", "4L47", "3M", "3L56"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M"], + headbutt: ["7V", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "9L52", "8M", "8L52", "7M", "7L67", "7V", "6M", "6L67", "5M", "5L67", "4M", "4L60", "3M", "3L65"], + irondefense: ["9M", "9L0", "8M", "8L0", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T"], + payback: ["9L1", "8M", "8L1", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L34"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L15", "8M", "8L15", "7M", "7L19", "7V", "6M", "6L19", "5M", "5L19", "4M", "4L14", "3T", "3L22"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "9L47", "8M", "8L47", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + sandtomb: ["8M"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L38"], + screech: ["9L21", "8M", "8L21", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9L24", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "9L18", "8M", "8L18"], + stoneedge: ["9M", "9L37", "8M", "8L37", "7M", "7L60", "6M", "6L60", "5M", "5L60", "4M", "4L54"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L42", "8L42", "7L28", "7V", "6L28", "5L28", "4L23", "3L29"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + tyranitar: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bite: ["9L9", "8L9", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L14", "6L14", "5L14"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["9M", "9L27", "8M", "8L27", "7L47", "7V", "6L47", "6S3", "6S4", "6S5", "6S6", "5L47", "5S1", "5S2", "4L41", "3L47", "3S0"], + curse: ["7V"], + cut: ["7V", "6M", "5M", "4M", "3M"], + darkpulse: ["9M", "9L1", "8M", "8L24", "7M", "7L34", "6M", "6L34", "5T", "5L34", "4M", "4L28"], + detect: ["7V"], + dig: ["9M", "8M", "7V", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + dynamicpunch: ["7V", "3T"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L33", "8M", "8L33", "7M", "7L54", "7V", "6M", "6L54", "6S3", "6S4", "5M", "5L54", "5S2", "4M", "4L47", "3M", "3L61", "3S0"], + endure: ["9M", "8M", "7V", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "7V", "6M", "5M", "5S1", "4M", "3M"], + firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + firepunch: ["9M", "8M", "7T", "7V", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + furycutter: ["7V", "4T", "3T"], + gigaimpact: ["9M", "9L59", "8M", "8L59", "7M", "7L82", "6M", "6L82", "5M", "5L82", "4M"], + headbutt: ["7V", "4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L52", "8M", "8L52", "7M", "7L73", "7V", "6M", "6L73", "5M", "5L73", "4M", "4L70", "3M", "3L75"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S1", "4M", "3M"], + icefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + icepunch: ["9M", "8M", "7T", "6T", "6S3", "6S6", "5T", "4T"], + icywind: ["9M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "8M", "7T", "6T", "6S5", "6S6", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7V", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["7V", "3T"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + payback: ["9L1", "8M", "8L1", "7M", "7L41", "6M", "6L41", "5M", "5L41", "5S2", "4M", "4L34"], + powergem: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "7V", "6M", "6S5", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rockblast: ["9M", "8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L15", "8M", "8L15", "7M", "7L19", "7V", "6M", "6L19", "6S4", "6S5", "6S6", "5M", "5L19", "4M", "4L14", "3T", "3L22"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + rockthrow: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "9L47", "8M", "8L47", "7M", "7L1", "7V", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + sandtomb: ["8M"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L23", "7V", "6L23", "5L23", "4L19", "3L38", "3S0"], + screech: ["9L21", "8M", "8L21", "7L1", "7V", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["5S2", "3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "7V", "6M", "5T", "4M", "3T"], + smackdown: ["9L24", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "9L18", "8M", "8L18", "7T"], + stoneedge: ["9M", "9L37", "8M", "8L37", "7M", "7L63", "6M", "6L63", "6S3", "6S4", "5M", "5L63", "5S1", "4M", "4L54"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["9M", "8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thrash: ["9L42", "8L42", "7L28", "7V", "6L28", "5L28", "4L23", "3L29", "3S0"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["thrash", "scaryface", "crunch", "earthquake"], pokeball: "pokeball"}, + {generation: 5, level: 100, gender: "M", moves: ["fireblast", "icebeam", "stoneedge", "crunch"], pokeball: "cherishball"}, + {generation: 5, level: 55, gender: "M", isHidden: true, moves: ["payback", "crunch", "earthquake", "seismictoss"]}, + {generation: 6, level: 50, moves: ["stoneedge", "crunch", "earthquake", "icepunch"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Jolly", moves: ["rockslide", "earthquake", "crunch", "stoneedge"], pokeball: "cherishball"}, + {generation: 6, level: 55, shiny: true, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 14, spd: 31, spe: 0}, moves: ["crunch", "rockslide", "lowkick", "protect"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["rockslide", "crunch", "icepunch", "lowkick"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 50}, + ], + }, + lugia: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aeroblast: ["8L54", "7L43", "7V", "7S7", "7S8", "7S9", "7S10", "6L43", "6S5", "6S6", "5L43", "4L43", "4S2", "4S3", "3L77"], + aircutter: ["4T"], + airslash: ["8M"], + ancientpower: ["8L1", "8S11", "7L57", "7V", "7S7", "7S9", "6L57", "5L57", "4T", "4L57", "4S3", "3L88"], + aquatail: ["7T", "6T", "5T", "4T"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brine: ["8M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "7S8", "4M"], + detect: ["7V"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dragonpulse: ["8M", "8S11", "7T", "6T", "5T", "4M"], + dragonrush: ["8L1", "7L15", "6L15", "6S6", "5L15", "4L15"], + dragontail: ["7M", "6M", "5M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "7S10", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "6M", "5M", "4M", "3M", "3S1"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L36", "8S11", "7L23", "7S7", "7S9", "6L23", "5L23", "4L23", "4S2"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["3S1"], + flash: ["6M", "5M", "4M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["7V", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hurricane: ["8M", "7S8"], + hydropump: ["8M", "8L72", "7L37", "7V", "6L37", "6S5", "6S6", "5L37", "4L29", "4S2", "3L44", "3S0", "3S1"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "6S6", "5M", "4M", "3M"], + icywind: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + imprison: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mist: ["8L9"], + mudslap: ["7V", "4T", "3T"], + naturalgift: ["7L85", "6L85", "5L85", "4M", "4L51"], + nightmare: ["7V", "3T"], + ominouswind: ["4T"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "7S10", "6M", "5M", "4M", "3M"], + psychoboost: ["3S1"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + punishment: ["7L50", "6L50", "6S5", "5L50", "4L50", "4S3"], + raindance: ["8M", "8L63", "7M", "7L29", "7V", "6M", "6L29", "6S5", "5M", "5L29", "4M", "4L29", "4S2", "3M", "3L55", "3S0"], + recover: ["8L45", "7L71", "7V", "6L71", "5L71", "4L23", "3L33", "3S0"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L18", "7M", "7L65", "7V", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S3", "3M", "3L11"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "7S7", "7S9", "6T", "5T", "4M", "3M"], + skyattack: ["8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], + tailwind: ["7T", "7S8", "7S10", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + waterfall: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["8M", "8L1", "7L1", "6L1", "5L1", "5S4", "4L1"], + whirlpool: ["8M", "8S11", "7V", "4M"], + whirlwind: ["8L1", "7L1", "7V", "6L1", "5L1", "5S4", "4L1", "3L1"], + wonderroom: ["8M", "7T", "6T", "5T"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["recover", "hydropump", "raindance", "swift"]}, + {generation: 3, level: 50, moves: ["psychoboost", "earthquake", "hydropump", "featherdance"]}, + {generation: 4, level: 45, shiny: 1, moves: ["extrasensory", "raindance", "hydropump", "aeroblast"]}, + {generation: 4, level: 70, shiny: 1, moves: ["aeroblast", "punishment", "ancientpower", "safeguard"]}, + {generation: 5, level: 5, isHidden: true, moves: ["whirlwind", "weatherball"], pokeball: "dreamball"}, + {generation: 6, level: 50, shiny: 1, moves: ["raindance", "hydropump", "aeroblast", "punishment"]}, + {generation: 6, level: 50, nature: "Timid", moves: ["aeroblast", "hydropump", "dragonrush", "icebeam"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["skillswap", "aeroblast", "extrasensory", "ancientpower"]}, + {generation: 7, level: 100, isHidden: true, moves: ["aeroblast", "hurricane", "defog", "tailwind"], pokeball: "cherishball"}, + {generation: 7, level: 60, moves: ["skillswap", "aeroblast", "extrasensory", "ancientpower"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["aeroblast", "earthpower", "psychic", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonpulse", "extrasensory", "whirlpool", "ancientpower"]}, + ], + encounters: [ + {generation: 2, level: 40}, + ], + eventOnly: true, + }, + hooh: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + airslash: ["8M"], + ancientpower: ["8L1", "8S10", "7L57", "7V", "7S7", "7S8", "6L57", "5L57", "4T", "4L57", "4S2", "3L88"], + bravebird: ["8M", "7L15", "7S6", "7S9", "6L15", "6S5", "5L15", "4L15"], + bulldoze: ["8M", "7M", "6M", "5M"], + burnup: ["8L99", "7S7", "7S8"], + calmmind: ["8M", "8L27", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93", "3M"], + celebrate: ["6S5"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + curse: ["7V"], + defog: ["7T", "4M"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dragonbreath: ["7V"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "7V", "7S9", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + extrasensory: ["8L36", "8S10", "7L23", "7S7", "7S8", "6L23", "5L23", "4L23", "4S1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "8L72", "7M", "7L37", "7V", "6M", "6L37", "6S4", "5M", "5L37", "4M", "4L29", "4S1", "3M", "3L44", "3S0"], + firespin: ["8M"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8S10"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L81", "7L79", "7V", "6L79", "5L79", "4L79", "3L99"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gust: ["8L1", "7L9", "7V", "6L9", "5L9", "4L9", "3L22"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lifedew: ["8L9"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["7L85", "6L85", "5L85", "4M", "4L51"], + nightmare: ["7V", "3T"], + ominouswind: ["4T"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + pluck: ["5M", "4M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + punishment: ["7L50", "6L50", "6S4", "5L50", "4L50", "4S2"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L45", "7L71", "7V", "7S6", "6L71", "6S5", "5L71", "4L23", "3L33", "3S0"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + roar: ["7M", "7V", "6M", "5M", "4M", "3M"], + rocksmash: ["7V", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sacredfire: ["8L54", "7L43", "7V", "7S6", "7S7", "7S8", "7S9", "6L43", "6S4", "6S5", "5L43", "4L43", "4S1", "4S2", "3L77"], + safeguard: ["8M", "8L18", "7M", "7L65", "7V", "7S6", "6M", "6L65", "5M", "5L65", "4M", "4L9", "4S2", "3M", "3L11"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skyattack: ["8L90", "7T", "7L99", "6T", "6L99", "5T", "5L99", "4T", "4L99", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7V", "6M", "4M", "3M"], + strength: ["7V", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "8L63", "8S10", "7M", "7L29", "7V", "6M", "6L29", "6S4", "5M", "5L29", "4M", "4L29", "4S1", "3M", "3L55", "3S0"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + swift: ["8M", "7V", "4T", "4L43", "3T", "3L66", "3S0"], + tailwind: ["7T", "7S9", "6T", "5T", "4T"], + thunder: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + twister: ["4T"], + weatherball: ["8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1"], + whirlwind: ["8L1", "7L1", "7V", "6L1", "5L1", "5S3", "4L1", "3L1"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + zapcannon: ["7V"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["recover", "fireblast", "sunnyday", "swift"]}, + {generation: 4, level: 45, shiny: 1, moves: ["extrasensory", "sunnyday", "fireblast", "sacredfire"]}, + {generation: 4, level: 70, shiny: 1, moves: ["sacredfire", "punishment", "ancientpower", "safeguard"]}, + {generation: 5, level: 5, isHidden: true, moves: ["whirlwind", "weatherball"], pokeball: "dreamball"}, + {generation: 6, level: 50, shiny: 1, moves: ["sunnyday", "fireblast", "sacredfire", "punishment"]}, + {generation: 6, level: 50, shiny: true, moves: ["sacredfire", "bravebird", "recover", "celebrate"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["sacredfire", "bravebird", "recover", "safeguard"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["burnup", "sacredfire", "extrasensory", "ancientpower"]}, + {generation: 7, level: 60, moves: ["burnup", "sacredfire", "extrasensory", "ancientpower"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["sacredfire", "bravebird", "earthquake", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["flareblitz", "extrasensory", "sunnyday", "ancientpower"]}, + ], + encounters: [ + {generation: 2, level: 40}, + ], + eventOnly: true, + }, + celebi: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + allyswitch: ["8M", "7T"], + ancientpower: ["8L30", "7L28", "7V", "7S7", "6L28", "5L28", "4T", "4L28", "3L20", "3S1", "3S3"], + aurasphere: ["8M"], + batonpass: ["8M", "8L20", "7L37", "7V", "6L37", "5L37", "4L37", "3L40", "3S1"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "7V", "6L1", "6S6", "5L1", "4L1", "3L1", "3S0"], + curse: ["7V"], + cut: ["6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["7V", "3T"], + detect: ["7V"], + doubleedge: ["3T"], + doubleteam: ["7M", "7V", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "7V", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "7V", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["7V", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "7V", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L70", "8S8", "7L64", "7V", "7S7", "6L64", "5L64", "4L64", "3L30", "3S1", "3S3"], + gigadrain: ["8M", "7T", "7V", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + healbell: ["8L1", "8S8", "7T", "7L1", "7V", "7S7", "6T", "6L1", "6S5", "6S6", "5T", "5L1", "4T", "4L1", "3L1", "3S0", "3S2", "3S3"], + healblock: ["7L55", "6L55", "5L55", "4L55"], + healingwish: ["8L80", "7L73", "6L73", "5L73", "4L73", "4S4"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7V", "6M", "5M", "4M", "3M"], + holdback: ["6S5"], + hyperbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + imprison: ["8M"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafblade: ["8M"], + leafstorm: ["8M", "8L90", "7L82", "6L82", "5L82", "4L82", "4S4"], + leechseed: ["8L50", "7L1", "7V", "6L1", "5L1", "4L1", "3L1", "3S2"], + lifedew: ["8L40", "8S8"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["8M", "8L10", "8S8", "7L19", "6L19", "5L19", "4L19"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + metronome: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["7V", "4T", "3T"], + nastyplot: ["8M", "4S4"], + naturalgift: ["7L46", "6L46", "5L46", "4M", "4L46"], + naturepower: ["7M", "6M"], + nightmare: ["7V", "3T"], + perishsong: ["8L100", "7L91", "7V", "6L91", "5L91", "4L91", "3L50", "3S1"], + pollenpuff: ["8M"], + protect: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychocut: ["8M"], + psychup: ["7M", "7V", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + recover: ["8L60", "7L1", "7V", "6L1", "6S5", "6S6", "5L1", "4L1", "4S4", "3L1", "3S0", "3S2"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + return: ["7M", "7V", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L10", "7V", "7S7", "6M", "6L10", "6S5", "6S6", "5M", "5L10", "4M", "4L10", "3M", "3L10", "3S0", "3S2", "3S3"], + sandstorm: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "7V", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "7V", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "7V", "6M", "5M", "4M", "3M"], + swagger: ["7M", "7V", "6M", "5M", "4M", "3T"], + sweetscent: ["7V"], + swift: ["8M", "7V", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + telekinesis: ["7T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "7V", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["8M"], + wonderroom: ["8M", "7T", "6T", "5T"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["confusion", "recover", "healbell", "safeguard"], pokeball: "pokeball"}, + {generation: 3, level: 70, moves: ["ancientpower", "futuresight", "batonpass", "perishsong"], pokeball: "pokeball"}, + {generation: 3, level: 10, moves: ["leechseed", "recover", "healbell", "safeguard"], pokeball: "pokeball"}, + {generation: 3, level: 30, moves: ["healbell", "safeguard", "ancientpower", "futuresight"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["leafstorm", "recover", "nastyplot", "healingwish"], pokeball: "cherishball"}, + {generation: 6, level: 10, moves: ["recover", "healbell", "safeguard", "holdback"], pokeball: "luxuryball"}, + {generation: 6, level: 100, moves: ["confusion", "recover", "healbell", "safeguard"], pokeball: "cherishball"}, + {generation: 7, level: 30, moves: ["healbell", "safeguard", "ancientpower", "futuresight"], pokeball: "cherishball"}, + {generation: 8, level: 60, shiny: true, nature: "Quirky", moves: ["magicalleaf", "futuresight", "lifedew", "healbell"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 2, level: 30}, + ], + eventOnly: true, + }, + treecko: { + learnset: { + absorb: ["8E", "7L5", "6L5", "5L6", "5S1", "4L6", "3L6", "3S0"], + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7L25", "6L25", "5L31", "4L31", "3L31"], + assurance: ["8M", "8L18"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["8M", "7E", "6E", "5E", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "7E", "6E", "5E", "4E", "3E"], + crushclaw: ["7E", "6E", "5E", "4E", "3E"], + cut: ["6M", "5M", "4M", "3M"], + detect: ["8L12", "7L33", "6L33", "5L41", "4L41", "3L41"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublekick: ["8E", "7E", "6E", "5E", "4E"], + doubleteam: ["8L27", "7M", "6M", "5M", "4M", "3M"], + dragonbreath: ["8E", "7E", "6E", "5E", "4E", "3E"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + endeavor: ["8L36", "7T", "7L45", "7E", "6T", "6L45", "6E", "5T", "5E", "4T", "4E", "3E"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L30", "7M", "7L37", "6M", "6L37", "5M", "5L51", "4M", "4L51"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "8L21", "7T", "7L21", "6T", "6L21", "5T", "5L46", "4M", "4L46", "3M", "3L46"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grasswhistle: ["7E", "6E", "5E", "4E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + leafage: ["8L3"], + leafstorm: ["8M", "8L39", "7E", "6E", "5E", "4E"], + leechseed: ["8E", "7E", "6E", "5E", "4E", "3E"], + leer: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + magicalleaf: ["8M", "7E", "6E", "5E", "4E"], + megadrain: ["8L9", "7L13", "6L13", "5L26", "4L26", "3L26"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + nightslash: ["8E"], + pound: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L17", "6L16", "5L16", "4L16", "3L16"], + quickattack: ["8L6", "7L9", "6L9", "5L11", "4L11", "3L11"], + quickguard: ["8L15", "7L41", "6L41"], + razorwind: ["7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M", "8L33", "7L49", "6L21", "5L21", "4L21", "3L21"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + slam: ["8L24", "7L29", "6L29", "5L36", "4L36", "3L36"], + slash: ["8E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + workup: ["8M", "7M"], + worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["pound", "leer", "absorb"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "leer", "absorb"]}, + ], + }, + grovyle: { + learnset: { + absorb: ["7L1", "6L1", "5L1", "4L1", "3L1"], + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7L28", "6L28", "5L35", "4L35", "3L35"], + assurance: ["8M", "8L20"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + detect: ["8L12", "7L38", "6L38", "5L47", "4L47", "3L47"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["8L35", "7M", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + endeavor: ["8L50", "7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "7L48", "6M", "6L48", "5M", "5L53", "4M", "4L53", "3L53"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L1", "6L16", "5L16", "4T", "4L16", "3T", "3L16"], + gigadrain: ["8M", "8L25", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + leafage: ["8L1"], + leafblade: ["8M", "8L40", "7L23", "6L23", "5L29", "4L29", "3L29"], + leafstorm: ["8M", "8L55", "7L58", "6L58", "5L59", "4L59"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8L9", "7L13", "6L13"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L18", "6L17", "5L17", "4L17", "3L17"], + quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["8L15", "7L53", "6L53"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M", "8L45", "7L63", "6L23", "5L23", "4L23", "3L23"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + slam: ["8L30", "7L33", "6L33", "5L41", "4L41", "3L41"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + workup: ["8M", "7M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8M", "8L1", "7M", "7L43", "6M", "6L43", "5M", "4M"], + }, + }, + sceptile: { + learnset: { + absorb: ["7L1", "6L1", "5L1", "4L1", "3L1"], + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7L28", "6L28", "5L35", "4L35", "3L35"], + assurance: ["8M", "8L20"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crosspoison: ["8M"], + crunch: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + detect: ["8L12", "7L39", "6L39", "5L51", "4L51", "3L51"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["8L35", "7M", "6M", "5M", "4M", "3M"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T", "5S0", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dualchop: ["8L0", "7T", "7L1", "6T", "6L36"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["8L56", "7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L59", "4M", "4L59", "3L59"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "5S0", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frenzyplant: ["8T", "7T", "6T", "5T", "4T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L1", "6L16", "4T", "3T", "3L16"], + gigadrain: ["8M", "8L25", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasspledge: ["8T", "7T", "6T", "5T"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leafage: ["8L1"], + leafblade: ["8M", "8L42", "7L23", "6L23", "5L29", "4L29", "3L29"], + leafstorm: ["8M", "8L63", "7L1", "6L1", "5L67", "5S0", "4L67"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magicalleaf: ["8M"], + megadrain: ["8L5", "7L13", "6L13"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightslash: ["7L1", "6L1", "5L1", "4L1"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L18", "6L17", "5L17", "4L17", "3L17"], + quickattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["8L15", "7L57", "6L57"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "5S0", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + screech: ["8M", "8L49", "7L69", "6L23", "5L23", "4L23", "3L23"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + slam: ["8L30", "7L33", "6L33", "5L43", "4L43", "3L43"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + workup: ["8M", "7M"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8M", "8L1", "7M", "7L45", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, moves: ["leafstorm", "dragonpulse", "focusblast", "rockslide"], pokeball: "cherishball"}, + ], + }, + torchic: { + learnset: { + aerialace: ["8L18", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "7E", "6E", "5E", "4E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "7E", "6E", "5E", "4E"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L24", "7T", "6T", "5T", "4T"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + crushclaw: ["8E", "7E", "6E", "5E", "4E"], + curse: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T"], + detect: ["8L12"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L3", "7L5", "6L5", "6S2", "5L10", "5S1", "5S2", "4L10", "3L10", "3S0"], + endure: ["8M", "7E", "6E", "5E", "4M", "4E", "3T", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8L33", "7E", "6E", "5E", "4E"], + feint: ["8E", "7E", "6E", "5E", "4E"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["8T", "7T", "6T", "5T"], + firespin: ["8M", "7L19", "6L19", "5L25", "4L25", "3L25"], + flameburst: ["7L28", "7E", "6L28", "6E", "5E"], + flamecharge: ["8L9", "7M", "6M", "5M"], + flamethrower: ["8M", "8L30", "7M", "7L46", "6M", "6L43", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + flareblitz: ["8M", "8L39"], + focusenergy: ["8M", "8L27", "7L32", "6L7", "6S2", "5L7", "5S1", "5S2", "4L7", "3L7", "3S0"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + lastresort: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mirrormove: ["7L41", "6L37", "5L37", "4L37", "3L37"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["8E", "7E", "6E", "5E", "4E"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["8E", "7L14", "6L14", "5L16", "4L16", "3L16"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8L6", "7L23", "6L23", "5L28", "4L28", "3L28"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M", "8L36", "7E", "6E", "5E", "4E", "3E"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L15", "7L10", "6L10", "5L19", "4L19", "3L19"], + scratch: ["8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "5S2", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + slash: ["8L21", "7L37", "6L34", "5L34", "4L34", "3L34"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["scratch", "growl", "focusenergy", "ember"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["scratch", "growl", "focusenergy", "ember"]}, + {generation: 6, level: 10, gender: "M", isHidden: true, moves: ["scratch", "growl", "focusenergy", "ember"], pokeball: "cherishball"}, + ], + }, + combusken: { + learnset: { + aerialace: ["8L20", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M"], + blazekick: ["8M", "8L40"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L30", "7T", "6T", "5T", "4T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L45", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], + captivate: ["4M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T"], + detect: ["8L12"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublekick: ["8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["8T", "7T", "6T", "5T"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + firespin: ["8M"], + flamecharge: ["8L9", "7M", "7L20", "6M", "6L20", "5M"], + flamethrower: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8L55", "7L58", "6L54", "5L54", "4L54"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L35", "7L36", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mirrormove: ["7L47", "6L43", "5L43", "4L43", "3L43"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["7L14", "6L14", "5L17", "4L17", "3L17"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + reversal: ["8M", "8L50"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + skyuppercut: ["7L53", "6L50", "5L50", "4L50", "3L50"], + slash: ["8L25", "7L42", "6L39", "5L39", "4L39", "3L39"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + blaziken: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["8L20", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + batonpass: ["8M"], + blastburn: ["8T", "7T", "6T", "5T", "4T"], + blazekick: ["8M", "8L42", "7L1", "6L36", "5L36", "4L36", "3L36", "3S0"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "8L30", "7T", "6T", "5T", "4T"], + bravebird: ["8M", "8L1", "7L50", "6L49", "5L49", "4L49"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M", "8L49", "7M", "7L31", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L28"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T"], + detect: ["8L12"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doublekick: ["8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + featherdance: ["8L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepledge: ["8T", "7T", "6T", "5T"], + firepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + firespin: ["8M"], + flamecharge: ["8L9", "7M", "7L20", "6M", "6L20", "5M"], + flamethrower: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8L63", "7L1", "6L1", "5L66", "5S1", "4L66"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M", "8L35", "7L37", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + heatcrash: ["8M"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highjumpkick: ["7L1", "6L1", "5L1", "5S1"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mirrormove: ["3L49", "3S0"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + peck: ["7L14", "6L14", "5L17", "4L17", "3L17"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8L1", "7L25", "6L25", "5L32", "4L32", "3L32"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + reversal: ["8M", "8L56"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L15", "7L1", "6L1", "5L21", "4L21", "3L21"], + scorchingsands: ["8T"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + skyuppercut: ["7L57", "6L57", "5L59", "4L59", "3L59", "3S0"], + slash: ["8L25", "7L44", "6L42", "5L42", "4L42", "3L42", "3S0"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + stoneedge: ["8M", "7M", "6M", "5M", "5S1", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + thunderpunch: ["8M", "7T", "6T", "5T", "5S1", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uturn: ["8M"], + vacuumwave: ["4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 70, moves: ["blazekick", "slash", "mirrormove", "skyuppercut"], pokeball: "pokeball"}, + {generation: 5, level: 50, shiny: 1, moves: ["flareblitz", "highjumpkick", "thunderpunch", "stoneedge"], pokeball: "cherishball"}, + ], + }, + mudkip: { + learnset: { + amnesia: ["8M", "8L27"], + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "7E", "6E", "5E"], + barrier: ["7E", "6E"], + bide: ["7L17", "6L15", "5L15", "4L15", "3L15"], + bite: ["8E", "7E", "6E", "5E", "4E"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L36", "7T", "7L44", "6T", "6L44", "5T", "5L46", "4T", "4L46", "3L46"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + foresight: ["7L12", "6L12", "5L19", "4L19", "3L19"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L39", "7L41", "6L41", "5L42", "4L42", "3L42"], + iceball: ["7E", "6E", "5E", "4E", "3E"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + mimic: ["3T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "4E", "3E"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["8E", "7L9", "6L6", "5L6", "5S1", "4T", "4L6", "3T", "3L6", "3S0"], + mudsport: ["7L20", "6L20", "5L24", "4L24", "3L24"], + naturalgift: ["4M"], + protect: ["8M", "8L12", "7M", "7L28", "6M", "6L28", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8L21", "7M", "6M", "5M", "4M"], + rocksmash: ["8L6", "6M", "5M", "4M", "3M"], + rockthrow: ["8L9", "7L25", "6L25"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L33"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludge: ["8E", "7E", "6E", "5E", "4E"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stomp: ["8E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + supersonic: ["8L15"], + surf: ["8M", "8L30", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "5S1", "4L1", "3L1", "3S0"], + takedown: ["8L24", "7L36", "6L28", "5L28", "4L28", "3L28"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5E", "4E", "3E"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L3", "7L4", "6L4", "5L10", "5S1", "4L10", "3L10", "3S0"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L18", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "7L33", "7E", "6L33", "6E", "5L33", "5E", "4M", "4L33", "4E", "3L33"], + wideguard: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M"], + yawn: ["8E", "7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["tackle", "growl", "mudslap", "watergun"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "growl", "mudslap", "watergun"]}, + ], + }, + marshtomp: { + learnset: { + amnesia: ["8M", "8L35"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M"], + bide: ["7L18", "6L15", "5L15", "4L15", "3L15"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L1", "7M", "7L48", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L46"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L50", "7T", "7L52", "6T", "6L52", "5T", "5L53", "4T", "4L53", "3L53"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + foresight: ["7L12", "6L12", "5L20", "4L20", "3L20"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L55"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudbomb: ["7L22", "6L22", "5L25", "4L25"], + muddywater: ["8M", "8L40", "7L38", "6L37", "5L37", "4L37", "3L37"], + mudshot: ["8M", "8L0", "7L1", "6L16", "5L16", "4L16", "3L16"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + mudsport: ["3L25"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L42", "4M", "4L42", "3M", "3L42"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], + rocksmash: ["8L1", "6M", "5M", "4M", "3M"], + rockthrow: ["8L9"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L45"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + supersonic: ["8L15"], + surf: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L30", "7L42", "6L31", "5L31", "4L31", "3L31"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L20", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M"], + }, + }, + swampert: { + learnset: { + amnesia: ["8M", "8L35"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bide: ["7L18", "6L15", "5L15", "4L15", "3L15"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + darkestlariat: ["8M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "8L1", "7M", "7L51", "6M", "6L51", "5M", "5L52", "5S0", "4M", "4L52", "3M", "3L52"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L56", "7T", "7L56", "6T", "6L56", "5T", "5L61", "4T", "4L61", "3L61"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + flipturn: ["8T"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L12", "6L12", "5L20", "4L20", "3L20"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8L1", "7L1", "6L1", "5L69", "5S0", "4L69"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + hydrocannon: ["8T", "7T", "6T", "5T", "4T"], + hydropump: ["8M", "8L63", "5S0"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + liquidation: ["8M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudbomb: ["7L22", "6L22", "5L25", "4L25"], + muddywater: ["8M", "8L42", "7L39", "6L39", "5L39", "4L39", "3L39"], + mudshot: ["8M", "8L1", "7L1", "6L16", "5L16", "4L16", "3L16"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + mudsport: ["3L25"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "8L12", "7M", "7L32", "6M", "6L32", "5M", "5L46", "4M", "4L46", "3M", "3L46"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["8M", "8L25", "7M", "7L28", "6M", "6L28", "5M", "4M", "3T"], + rocksmash: ["8L1", "6M", "5M", "4M", "3M"], + rockthrow: ["8L9"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L49"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + supersonic: ["8L15"], + surf: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L30", "7L44", "6L31", "5L31", "4L31", "3L31"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpledge: ["8T", "7T", "6T", "5T"], + waterpulse: ["8L20", "7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, moves: ["earthquake", "icebeam", "hydropump", "hammerarm"], pokeball: "cherishball"}, + ], + }, + poochyena: { + learnset: { + assurance: ["7L22", "6L22", "5L29", "4L29"], + astonish: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bite: ["7L10", "6L10", "5L13", "4L13", "3L13"], + bodyslam: ["3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + crunch: ["7L34", "6L37", "5L53", "4L53", "3L41"], + darkpulse: ["7M", "6M", "5T", "5D", "4M"], + dig: ["6M", "5M", "4M", "3M", "3S0"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L28", "6M", "6L28", "5M", "5L41", "4M", "4L41"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + firefang: ["7E", "6E", "5E", "4E"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + healbell: ["3S0"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["7L4", "6L4", "5L5", "5D", "4L5", "3L5", "3S0"], + hypervoice: ["7T", "6T", "5T"], + icefang: ["7E", "6E", "5E", "4E"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + leer: ["7E", "6E", "5E", "4E", "3E"], + mefirst: ["7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + payback: ["7M", "6M", "5M", "4M"], + playrough: ["7L46", "7E", "6E"], + poisonfang: ["7E", "6E", "5E", "5D", "4E", "3E", "3S0"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "7L16", "6M", "6L16", "5M", "5L21", "4M", "4L21", "3M", "3L21"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandattack: ["7L7", "6L7", "5L9", "4L9", "3L9"], + scaryface: ["7L25", "6L25", "5L33", "4L33", "3L29"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], + snarl: ["7M", "6M", "5M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L43", "7E", "6L40", "6E", "5L49", "5E", "4T", "4L49", "4E"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3T", "3L25"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7L40", "6L34", "5L45", "4L45", "3L33"], + taunt: ["7M", "7L31", "6M", "6L31", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + thief: ["7M", "6M", "5M", "4M", "3M", "3L45"], + thunderfang: ["7E", "6E", "5E", "4E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + yawn: ["7L37", "7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 10, abilities: ["runaway"], moves: ["healbell", "dig", "poisonfang", "howl"]}, + ], + encounters: [ + {generation: 3, level: 2}, + ], + }, + mightyena: { + learnset: { + assurance: ["7L24", "6L24", "5L32", "4L32"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bite: ["7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["3T"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + crunch: ["7L1", "7S0", "6L1", "3L47"], + darkpulse: ["7M", "6M", "5T", "4M"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L32", "6M", "6L32", "5M", "5L47", "4M", "4L47"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + firefang: ["7L1", "7S0"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["7L1", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icefang: ["7L1", "7S0"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + payback: ["7M", "6M", "5M", "4M"], + playrough: ["7L56"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "7L16", "6M", "6L16", "5M", "5L22", "4M", "4L22", "3M", "3L22"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], + scaryface: ["7L28", "6L28", "5L37", "4L37", "3L32"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snarl: ["7M", "7L1", "6M", "6L18", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L52", "6L48", "5L62", "4T", "4L62"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7L20", "6M", "6L20", "5M", "5L27", "4M", "4L27", "3T", "3L27"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["7L48", "6L40", "5L52", "4L52", "3L37"], + taunt: ["7M", "7L36", "6M", "6L36", "5M", "5L42", "4M", "4L42", "3M", "3L42"], + thief: ["7M", "7L1", "6M", "6L1", "5M", "5L57", "4M", "4L57", "3M", "3L52"], + throatchop: ["7T"], + thunderfang: ["7L1", "7S0"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + yawn: ["7L44"], + }, + eventData: [ + {generation: 7, level: 64, gender: "M", abilities: ["intimidate"], moves: ["crunch", "firefang", "icefang", "thunderfang"], pokeball: "cherishball"}, + ], + }, + zigzagoon: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + babydolleyes: ["8L15", "7L12", "6L11"], + bellydrum: ["8L33", "7L37", "6L37", "5L45", "4L41", "3L41"], + bestow: ["7L25", "6L25", "5L33"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + covet: ["8L9", "7T", "7L23", "6T", "6L23", "5T", "5L29", "4L29", "3L29"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L36", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + extremespeed: ["8E", "7E", "3S1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L30", "7L29", "6L29", "5L37", "4L33", "3L33"], + fling: ["8M", "8L27", "7M", "7L41", "6M", "6L41", "5M", "5L49", "4M", "4L45"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + headbutt: ["8L12", "7L11", "6L9", "5L9", "4T", "4L9", "3L9"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "5D", "4T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["7E", "6E", "5E", "4T", "4E", "3T"], + mudsport: ["7L17", "6L17", "5L21", "4L21", "3L21"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + pinmissile: ["8M", "8L18", "7L19", "6L19", "5L25", "4L25", "3L25"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L21", "7M", "7L35", "6M", "6L35", "5M", "5L41", "4M", "4L37", "3M", "3L37"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["7E", "6E", "5E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L3", "7L7", "6L7", "5L13", "4L13", "3L13"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + simplebeam: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + tailslap: ["8M"], + tailwhip: ["8L6", "7L5", "6L5", "5L5", "4L5", "3L5", "3S0", "3S1"], + takedown: ["8L24", "7L31", "6L31"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: true, abilities: ["pickup"], moves: ["tackle", "growl", "tailwhip"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["pickup"], moves: ["tackle", "growl", "tailwhip", "extremespeed"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + encounters: [ + {generation: 3, level: 2}, + ], + }, + zigzagoongalar: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + babydolleyes: ["8L15"], + blizzard: ["8M"], + bodyslam: ["8M"], + counter: ["8L30"], + dig: ["8M"], + doubleedge: ["8L36"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + fling: ["8M"], + grassknot: ["8M"], + gunkshot: ["8M"], + headbutt: ["8L12"], + helpinghand: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icywind: ["8M"], + irontail: ["8M"], + knockoff: ["8E"], + lashout: ["8T"], + leer: ["8L1"], + lick: ["8L6"], + mudshot: ["8M"], + partingshot: ["8E"], + payback: ["8M"], + pinmissile: ["8M", "8L18"], + protect: ["8M"], + quickguard: ["8E"], + raindance: ["8M"], + rest: ["8M", "8L21"], + retaliate: ["8M"], + round: ["8M"], + sandattack: ["8L3"], + scaryface: ["8M", "8L27"], + screech: ["8M"], + seedbomb: ["8M"], + shadowball: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L9"], + snore: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + swift: ["8M"], + tackle: ["8L1"], + takedown: ["8L24"], + taunt: ["8M", "8L33"], + thief: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + linoone: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + babydolleyes: ["8L1", "6S0"], + bellydrum: ["8L43", "7L43", "6L43", "5L59", "4L53", "3L53"], + bestow: ["7L27", "6L27", "5L41"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["8L9", "7T", "7L24", "6T", "6L24", "5T", "5L35", "4L35", "3L35"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L48", "7L35", "6L35", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + extremespeed: ["6S0"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L38"], + fling: ["8M", "8L33", "7M", "7L48", "6M", "6L48", "5M", "5L65", "4M", "4L59"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["8L18", "7L19", "6L19", "5L29", "4L29", "3L29"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["8M", "7T", "6T", "5T", "4T"], + headbutt: ["8L12", "7L11", "6L1", "5L1", "4T", "4L1", "3L1"], + helpinghand: ["8M", "7T", "6T", "6S0", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["8L15", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + mudsport: ["7L17", "6L17", "5L23", "4L23", "3L23"], + naturalgift: ["4M"], + odorsleuth: ["7L13", "6L13", "5L17", "4L17", "3L17"], + pinmissile: ["8M", "8L1"], + playrough: ["8M", "7L1", "6L1"], + protect: ["8M", "7M", "6M", "6S0", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L23", "7M", "7L40", "6M", "6L40", "5M", "5L53", "4M", "4L47", "3M", "3L47"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L13", "4L13", "3L13"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["8L0", "7L32", "6L32", "5L47", "4L41", "3L41"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + switcheroo: ["8L1", "7L1", "6L1", "5L1", "4L1"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + tailslap: ["8M"], + tailwhip: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L28"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["extremespeed", "helpinghand", "babydolleyes", "protect"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 3}, + {generation: 6, level: 17, maxEggMoves: 1}, + ], + }, + linoonegalar: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + babydolleyes: ["8L1"], + blizzard: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + counter: ["8L38"], + dig: ["8M"], + doubleedge: ["8L48"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + fling: ["8M"], + furyswipes: ["8L18"], + gigaimpact: ["8M"], + grassknot: ["8M"], + gunkshot: ["8M"], + headbutt: ["8L12"], + helpinghand: ["8M"], + honeclaws: ["8L15"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icywind: ["8M"], + irontail: ["8M"], + lashout: ["8T"], + leer: ["8L1"], + lick: ["8L1"], + mudshot: ["8M"], + nightslash: ["8L0"], + payback: ["8M"], + pinmissile: ["8M", "8L1"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M", "8L23"], + retaliate: ["8M"], + round: ["8M"], + sandattack: ["8L1"], + scaryface: ["8M", "8L33"], + screech: ["8M"], + seedbomb: ["8M"], + shadowball: ["8M"], + shadowclaw: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L9"], + snore: ["8M"], + stompingtantrum: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + swift: ["8M"], + switcheroo: ["8L1"], + tackle: ["8L1"], + takedown: ["8L28"], + taunt: ["8M", "8L43"], + thief: ["8M"], + throatchop: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + obstagoon: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + babydolleyes: ["8L1"], + blizzard: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M"], + bulkup: ["8M"], + closecombat: ["8M"], + counter: ["8L42"], + crosschop: ["8L1"], + crosspoison: ["8M"], + dig: ["8M"], + doubleedge: ["8L56"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + firepunch: ["8M"], + fling: ["8M"], + focusenergy: ["8M"], + furyswipes: ["8L18"], + gigaimpact: ["8M"], + grassknot: ["8M"], + gunkshot: ["8M"], + headbutt: ["8L12"], + helpinghand: ["8M"], + honeclaws: ["8L15"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icepunch: ["8M"], + icywind: ["8M"], + irondefense: ["8M"], + irontail: ["8M"], + lashout: ["8T"], + leer: ["8L1"], + lick: ["8L1"], + lowkick: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["8M"], + nightslash: ["8L1"], + obstruct: ["8L0"], + payback: ["8M"], + pinmissile: ["8M", "8L1"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M", "8L23"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["8M"], + round: ["8M"], + sandattack: ["8L1"], + scaryface: ["8M", "8L35"], + screech: ["8M"], + seedbomb: ["8M"], + shadowball: ["8M"], + shadowclaw: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L9"], + snore: ["8M"], + stompingtantrum: ["8M"], + submission: ["8L1"], + substitute: ["8M"], + sunnyday: ["8M"], + surf: ["8M"], + swift: ["8M"], + switcheroo: ["8L1"], + tackle: ["8L1"], + takedown: ["8L28"], + taunt: ["8M", "8L49"], + thief: ["8M"], + throatchop: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderpunch: ["8M"], + thunderwave: ["8M"], + trick: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + xscissor: ["8M"], + }, + }, + wurmple: { + learnset: { + bugbite: ["7T", "7L15", "6T", "6L15", "5T", "5L15", "5D", "4T", "4L15"], + electroweb: ["7T", "6T", "5T"], + poisonsting: ["7L5", "6L5", "5L5", "5D", "4L5", "3L5"], + snore: ["7T", "6T", "5T", "5D", "4T"], + stringshot: ["7L1", "6L1", "5L1", "4T", "4L1", "3L1"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 3, level: 2}, + ], + }, + silcoon: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["7T", "6T", "5T"], + harden: ["7L1", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 3, level: 5}, + {generation: 4, level: 5}, + {generation: 6, level: 2, maxEggMoves: 1}, + ], + }, + beautifly: { + learnset: { + absorb: ["7L12", "6L1", "5L1", "4L1", "3L1"], + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["7L20", "6L20", "4T"], + attract: ["7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L35", "6L35", "5L41", "4L41"], + captivate: ["4M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "6T", "5T"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "7L32", "6T", "6L32", "5T", "5L38", "4M", "4L38", "3M", "3L38"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["7L1", "6L1", "5L13", "4L13", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + megadrain: ["7L22", "6L22", "5L24", "4L24", "3L24"], + mimic: ["3T"], + morningsun: ["7L17", "6L17", "5L20", "4L20", "3L20"], + naturalgift: ["4M"], + ominouswind: ["4T"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychic: ["7M", "6M", "5M", "4M", "3M"], + quiverdance: ["7L40", "6L40", "5L45"], + rage: ["7L37", "6L37"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L25", "6L25", "5L34", "4M", "4L34", "3L34"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + stunspore: ["7L15", "6L15", "5L17", "4L17", "3L17"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + venoshock: ["7M", "6M", "5M"], + whirlwind: ["7L30", "6L27", "5L27", "4L27", "3L27"], + }, + }, + cascoon: { + learnset: { + bugbite: ["7T", "6T", "5T", "4T"], + electroweb: ["7T", "6T", "5T"], + harden: ["7L1", "6L1", "5L1", "4L1", "3L1"], + irondefense: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + }, + encounters: [ + {generation: 3, level: 5}, + {generation: 4, level: 5}, + {generation: 6, level: 2, maxEggMoves: 1}, + ], + }, + dustox: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L35", "6L35", "5L41", "4L41"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["7L12", "6L1", "5L1", "4L1", "3L1"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + electroweb: ["7T", "6T", "5T"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["7L1", "6L1", "5L13", "4L13", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + lightscreen: ["7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + mimic: ["3T"], + moonlight: ["7L17", "6L17", "5L20", "4L20", "3L20"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poisonpowder: ["7L15", "6L15"], + protect: ["7M", "7L37", "6M", "6L17", "5M", "5L17", "4M", "4L17", "3M", "3L17"], + psybeam: ["7L22", "6L22", "5L24", "4L24", "3L24"], + psychic: ["7M", "6M", "5M", "4M", "3M"], + quiverdance: ["7L40", "6L40", "5L45"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L25", "6L25", "5L34", "4M", "4L34", "3L34"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["7M", "6M", "5M", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "7L32", "6M", "6L32", "5M", "5L38", "4M", "4L38", "3M", "3L38"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + venoshock: ["7M", "7L20", "6M", "6L20", "5M"], + whirlwind: ["7L30", "6L27", "5L27", "4L27", "3L27"], + }, + }, + lotad: { + learnset: { + absorb: ["8L3", "7L6", "6L5", "5L5", "5D", "4L5", "3L7", "3S0"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + bubble: ["7L9", "6L9"], + bubblebeam: ["8L20", "7L21", "6L21", "5L25", "4L25"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L43", "7M", "7L36", "6M", "6L36", "5M", "5L45", "4M", "4L43"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L16", "7E", "6E", "5E", "4E", "3E"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "8L28", "7T", "7L30", "7E", "6T", "6L30", "6E", "5T", "5E", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + growl: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + leechseed: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + megadrain: ["8L12", "7L18", "6L18", "5L19", "4L19", "3L43"], + mimic: ["3T"], + mist: ["8L9", "7L15", "6L11", "5L11", "4L11", "3L21"], + naturalgift: ["7L12", "6L12", "5L15", "4M", "4L15"], + naturepower: ["8L24", "7M", "7L24", "6M", "6L7", "5L7", "4L7", "3L13"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "8L33", "7M", "7L27", "6M", "6L27", "5M", "5L37", "4M", "4L35", "3M", "3L31"], + razorleaf: ["8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["8E", "7E", "6E", "5E", "4E", "3E"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + teeterdance: ["8E", "7E", "6E", "5E"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + watergun: ["8L6", "7E", "6E", "5E", "4E", "3E"], + waterpulse: ["7T", "6T", "5D", "4M", "3M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["8M", "8L38", "7T", "7L33", "6T", "6L31", "5T", "5L31", "4T", "4L27"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["astonish", "growl", "absorb"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 3}, + ], + }, + lombre: { + learnset: { + absorb: ["8L1", "7L6", "6L5", "5L5", "4L5", "3L7"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L9", "6L9"], + bubblebeam: ["8L24", "7L24", "6L24", "5L25", "4L25"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L57", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1", "7L16", "6L11", "5L11", "4L11", "3L19"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flail: ["8L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyswipes: ["8L18", "7L12", "6L12", "5L15", "4L15", "3L25"], + gigadrain: ["8M", "8L36", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + growl: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M", "8L64", "7L44", "6L44", "5L45", "4L43", "3L49"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["8L1", "7T", "7L36", "6T", "6L36"], + megadrain: ["8L12"], + megakick: ["8M"], + megapunch: ["8M"], + mimic: ["3T"], + mist: ["8L9"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["8L30", "7M", "7L28", "6M", "6L7", "5L7", "4L7", "3L13"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "8L43", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + teeterdance: ["8L1"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M", "3L37"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "7L32", "6T", "6L32", "5T", "5L37", "4T", "4L35", "3L43"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7L20", "6L19", "5L19", "4L19", "3L31"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["8M", "8L50", "7T", "7L40", "6T", "6L31", "5T", "5L31", "4T", "4L27"], + }, + encounters: [ + {generation: 6, level: 13, maxEggMoves: 1}, + ], + }, + ludicolo: { + learnset: { + absorb: ["8L1", "3L1"], + amnesia: ["8M"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bubblebeam: ["8L1"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L1", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1", "5S0"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flail: ["8L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyswipes: ["8L1"], + gigadrain: ["8M", "8L1", "7T", "6T", "5T", "5S0", "5S1", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M", "8L1", "5S0"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "5S0", "5S1", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["8L1", "7T", "6T"], + leafstorm: ["8M"], + megadrain: ["8L1", "7L1", "6L1", "5L1", "4L1"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "3T"], + mimic: ["3T"], + mist: ["8L1"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["8L1", "7M", "7L1", "6M", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M", "5S1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "5S1", "4M", "3M"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + teeterdance: ["8L1"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + weatherball: ["8M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["8M", "8L1", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, abilities: ["swiftswim"], moves: ["fakeout", "hydropump", "icebeam", "gigadrain"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "M", nature: "Calm", abilities: ["swiftswim"], moves: ["scald", "gigadrain", "icebeam", "sunnyday"], pokeball: "pokeball"}, + ], + }, + seedot: { + learnset: { + absorb: ["8L3"], + amnesia: ["8M", "7E", "6E", "5E", "4E", "3E"], + astonish: ["8L6"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + beatup: ["8M", "7E", "6E", "5E"], + bide: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + bodyslam: ["8M", "3T"], + bulletseed: ["8M", "7E", "6E", "5E", "5D", "4M", "3M", "3S1"], + captivate: ["4M"], + confide: ["7M", "6M"], + defensecurl: ["3T"], + defog: ["8E", "7T", "7E", "6E", "5E"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + explosion: ["8L33", "7M", "7L33", "6M", "6L33", "5M", "5L43", "4M", "4L43", "3T", "3L43"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4E", "3E"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M", "3S1"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + growth: ["8L9", "7L9", "6L7", "5L7", "5D", "4L7", "3L7", "3S0"], + harden: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3", "3S0"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + leechseed: ["8E", "7E", "6E", "5E", "4E", "3E"], + megadrain: ["8L15"], + mimic: ["3T"], + nastyplot: ["8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + naturepower: ["8L21", "7M", "7L15", "6M", "6L13", "5L13", "4L13", "3L13"], + nightslash: ["8E"], + payback: ["8M", "8L18"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8E", "7E", "6E", "5E", "4E", "3E"], + razorwind: ["7E", "6E", "5E", "4E", "3E"], + refresh: ["3S1"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["8L12", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M", "3S1"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8L30"], + sunnyday: ["8M", "8L24", "7M", "7L27", "6M", "6L27", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8L27", "7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L21"], + tackle: ["8L1"], + takedown: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["bide", "harden", "growth"], pokeball: "pokeball"}, + {generation: 3, level: 17, moves: ["refresh", "gigadrain", "bulletseed", "secretpower"]}, + ], + encounters: [ + {generation: 3, level: 3}, + ], + }, + nuzleaf: { + learnset: { + absorb: ["8L1"], + aircutter: ["8L1"], + amnesia: ["8M"], + assurance: ["8M"], + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + defog: ["7T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + explosion: ["8L1", "7M", "6M", "5M", "4M", "3T"], + extrasensory: ["8L43", "7L36", "6L36", "5L49", "4L49", "3L49"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1", "7L12", "6L12", "5L19", "4L19", "3L19"], + falseswipe: ["8M", "7M", "6M", "5M"], + feintattack: ["7L24", "6L24", "5L31", "4L31", "3L31"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L9", "7L6", "6L6", "5L7", "4L7", "3L7"], + harden: ["8L1", "7L3", "6L3", "5L3", "4L3", "3L3"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + lashout: ["8T"], + leafblade: ["8M", "8L57", "7L28", "6L28"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megadrain: ["8L18"], + megakick: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + naturepower: ["8L30", "7M", "7L16", "6M", "6L9", "5L13", "4L13", "3L13"], + payback: ["8M", "8L24", "7M", "6M", "5M", "4M"], + pound: ["7L1", "6L1", "5L1", "4L1", "3L1"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + razorleaf: ["8L0", "7L1", "6L1", "5L1", "4L1"], + razorwind: ["7L20", "6L20", "5L37", "4L37", "3L37"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L12", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8L50"], + sunnyday: ["8M", "8L36", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L1", "7M", "7L32", "6M", "6L32", "5M", "5L43", "4M", "4L43", "3T", "3L43"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8L1", "7T", "6T", "5T", "4T"], + tackle: ["8L1"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + torment: ["8L1", "7M", "7L9", "6M", "6L16", "5M", "5L25", "4M", "4L25", "3M", "3L25"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 6, level: 13, maxEggMoves: 1}, + ], + }, + shiftry: { + learnset: { + absorb: ["8L1"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["8L1", "4T"], + airslash: ["8M"], + amnesia: ["8M"], + assurance: ["8M"], + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + beatup: ["8M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + defog: ["7T", "4M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + explosion: ["8L1", "7M", "6M", "5M", "4M", "3T"], + extrasensory: ["8L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["8L1"], + falseswipe: ["8M", "7M", "6M", "5M"], + feintattack: ["7L1", "6L1", "5L1", "4L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L1", "3L1"], + harden: ["8L1", "3L1"], + headbutt: ["4T"], + heatwave: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["8M", "8L1", "7L32", "6L32"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + lashout: ["8T"], + leafblade: ["8M", "8L1"], + leafstorm: ["8M", "7L44", "6L44", "5L49", "4L49"], + leaftornado: ["8L0", "7L20", "6L19", "5L19"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + megadrain: ["8L1"], + megakick: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["8M", "7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + naturepower: ["8L1", "7M", "6M", "3L1"], + ominouswind: ["4T"], + payback: ["8M", "8L1", "7M", "6M", "5M", "4M"], + pound: ["3L1"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + razorleaf: ["8L1", "7L1", "6L1", "5L1", "4L1"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + solarblade: ["8M"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8L1", "4T"], + sunnyday: ["8M", "8L1", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L1", "7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8L1", "7T", "6T", "5T", "4T"], + tackle: ["8L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + torment: ["8L1", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + whirlwind: ["8L1", "7L1", "6L1", "5L1", "4L1"], + worryseed: ["7T", "6T", "5T", "4T"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + taillow: { + learnset: { + aerialace: ["7M", "7L21", "6M", "6L21", "5M", "5L34", "4M", "4L34", "3M", "3L34"], + agility: ["7L29", "6L29", "5L43", "4L43", "3L43"], + aircutter: ["4T"], + airslash: ["7L33", "6L33", "5L53", "4L53"], + attract: ["7M", "6M", "5M", "4M", "3M"], + boomburst: ["7E", "6E"], + bravebird: ["7L41", "7E", "6L41", "6E", "5E", "5D", "4E"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defog: ["7T", "7E", "6E", "5E", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7L17", "6M", "6L17", "5M", "5L19", "4M", "4L19", "3M", "3L19"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L37", "6T", "6L26", "5T", "5L26", "4T", "4L26", "3L26"], + endure: ["5D", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + featherdance: ["3S0"], + fly: ["7M", "6M", "5M", "4M", "3M"], + focusenergy: ["7L5", "6L4", "5L4", "4L4", "3L4", "3S0"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["7E"], + mimic: ["3T"], + mirrormove: ["7E", "6E", "5E", "5D", "4E", "3E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + quickattack: ["7L9", "6L7", "5L8", "4L8", "3L8"], + quickguard: ["7L25", "6L25"], + rage: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["7L45"], + roost: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "7E", "6T", "6E", "5E", "4E", "3T", "3E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "7E", "6M", "6E", "5E", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + supersonic: ["7E", "6E", "5E", "4E", "3E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "5D", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + whirlwind: ["7E", "6E", "5E", "4E"], + wingattack: ["7L13", "6L13", "5L13", "4L13", "3L13"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "focusenergy", "featherdance"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + encounters: [ + {generation: 3, level: 4}, + ], + }, + swellow: { + learnset: { + aerialace: ["7M", "7L21", "6M", "6L21", "5M", "5L38", "4M", "4L38", "3M", "3L38"], + agility: ["7L33", "6L33", "5L49", "4L49", "3L49", "3S0"], + aircutter: ["4T"], + airslash: ["7L1", "6L1", "5L61", "4L61"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["3S0"], + bravebird: ["7L1", "6L1"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "7L17", "6M", "6L17", "5M", "5L19", "4M", "4L19", "3M", "3L19"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "7L45", "6T", "6L28", "5T", "5L28", "4T", "4L28", "3L28"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M", "3S0"], + fly: ["7M", "6M", "5M", "4M", "3M"], + focusenergy: ["7L1", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + peck: ["7L1", "6L1", "5L1", "4L1", "3L1"], + pluck: ["7L1", "6L1", "5M", "5L1", "4M", "4L1"], + protect: ["7M", "6M", "5M", "4M", "3M"], + quickattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], + quickguard: ["7L27", "6L27"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["7L57"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T", "3T", "3S0"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + steelwing: ["7M", "6M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + wingattack: ["7L13", "6L13", "5L13", "4L13", "3L13"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 3, level: 43, moves: ["batonpass", "skyattack", "agility", "facade"]}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + wingull: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9E", "8E", "7M", "7L29", "6M", "6L29", "5M", "5L42", "4M", "4L42", "3M"], + agility: ["9M", "9L26", "8M", "8L26", "7L36", "7E", "6L36", "6E", "5L37", "5E", "4L37", "4E", "3L55", "3E"], + aircutter: ["9M", "9E", "8E", "7L22", "6L22", "5L33", "4T"], + airslash: ["9M", "9L30", "8M", "8L30", "7L40", "6L40", "5L47", "4L47"], + aquaring: ["9E", "8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bravebird: ["9M"], + brine: ["8M", "7E", "6E", "5E", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gust: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L45", "8M", "8L45", "7L43", "6L43", "5L50"], + hydropump: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + mist: ["9L35", "8L35", "7L12", "7E", "6L12", "6E", "5L16", "5E", "4L16", "4E", "3L21", "3E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L26", "6L26", "5L34", "4L34", "3L43"], + quickattack: ["9L5", "8L5", "7L19", "6L19", "5L24", "4L24", "3L31"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9L40", "8L40", "7M", "7L33", "7E", "6M", "6L26", "6E", "5T", "5L29", "5E", "4M", "4L29"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["7T", "6T", "5D", "4M", "3M"], + skyattack: ["7T", "6T", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["9E", "8E", "7E", "6E"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9L10", "8L10", "7L5", "6L5", "5L6", "4L6", "3L7"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["9E", "8E", "7E", "6E", "5E", "5D", "4T", "4E", "3E"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L19", "4M", "4L19", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + wideguard: ["9E", "8E", "7E", "6E"], + wingattack: ["9L15", "8L15", "7L8", "6L8", "5L11", "4L11", "3L13"], + }, + encounters: [ + {generation: 3, level: 2}, + ], + }, + pelipper: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "9L1", "8M", "8L1"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L1", "8M", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M"], + bravebird: ["9M", "8M"], + brine: ["8M", "7L22", "6L28", "5L34", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L34", "8M", "8L34", "7M", "7L28", "6M", "6L39", "5M", "5L43", "4M", "4L43"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M", "9L55", "8M", "8L55", "7L1", "6L1", "5L63"], + hydropump: ["9M", "9L62", "8M", "8L62", "7L1", "6L1", "5L57", "4L57", "3L61"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + knockoff: ["7T", "6T", "5T", "4T"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + mist: ["9L41", "8L41", "7L12", "6L12", "5L16", "4L16", "3L21"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L24", "4M", "4L24"], + pluck: ["5M", "4M"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L25"], + quickattack: ["9L1", "8L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9L48", "8L48", "7M", "7L39", "6M", "6L22", "5T", "5L31", "4M", "4L31"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shockwave: ["7T", "6T", "4M", "3M"], + skyattack: ["7T", "6T", "5T", "4T", "3T"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["9L1", "8L1", "7L1", "6L1", "5L1"], + spitup: ["9L28", "8L28", "7L33", "6L33", "5L38", "4L38", "3L47"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + stockpile: ["9L28", "8L28", "7L33", "6L33", "5L38", "4L38", "3L33"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["9L1", "8L1", "7L5", "6L5", "5L6", "4L6", "3L7"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9L28", "8L28", "7L33", "6L33", "5L38", "4L38", "3L33"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L50", "4T", "4L50"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["9M", "9L20", "8L20", "7T", "7L15", "6T", "6L15", "5L19", "4M", "4L19", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["8M"], + whirlpool: ["8M", "4M"], + wingattack: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1", "3L1"], + }, + encounters: [ + {generation: 4, level: 15}, + {generation: 6, level: 18, maxEggMoves: 1}, + ], + }, + ralts: { + learnset: { + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "9L27", "8M", "8L27", "7M", "7L24", "6M", "6L24", "5M", "5L28", "4M", "4L23", "3M", "3L21"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L24", "8M", "8L24", "7L34", "6L34", "5L43", "4L39", "3S1"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + confusion: ["9L6", "8L6", "7L4", "6L4", "5L6", "5D", "4L6", "3L6", "3S2"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defensecurl: ["3T"], + destinybond: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "3E"], + disable: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["9L3", "8L3", "7M", "7L6", "6M", "6L6", "5M", "5L10", "4M", "4L10", "3M", "3L11"], + drainingkiss: ["9M", "9L12", "8M", "8L12", "7L22", "6L22"], + dreameater: ["9L36", "8L36", "7M", "7L39", "6M", "6L39", "5M", "5L50", "4M", "4L45", "3T", "3L46"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M", "7E", "6E", "6S3", "5E", "4E"], + endure: ["9M", "8M", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L39", "8M", "8L39", "7L32", "6L32", "5L39", "4L34", "3L36"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "6S3", "5L1", "4L1", "3L1", "3S0", "3S1"], + grudge: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + healpulse: ["9L33", "8L33", "7L19", "6L19", "5L23"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L9", "8L9", "7L37", "6L37", "5L45", "4L43", "3L41"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7L29", "6L29", "5L34", "4L32", "3L31"], + knockoff: ["9E", "8E"], + lifedew: ["9L21", "8L21"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L14", "6L14", "5L17", "4L17"], + magicalleaf: ["9M", "8M", "7L17", "6L17", "5L21", "4L21"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + meanlook: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + megakick: ["8M"], + megapunch: ["8M"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + metronome: ["9M"], + mimic: ["3T"], + mistyterrain: ["9M", "8M", "7E", "6E"], + mudslap: ["4T", "3T"], + mysticalfire: ["9E"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L30", "8M", "8L30", "7M", "7L27", "6M", "6L27", "5M", "5L32", "4M", "4L28", "3M", "3L26"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3S2"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shadowsneak: ["9E", "8E", "7E", "6E", "5E", "4E"], + shockwave: ["7T", "6T", "4M", "3M", "3S2"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["3S2"], + skillswap: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7L42", "6L42", "5L54"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T"], + synchronoise: ["7E", "6E", "5E"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L9", "6L9", "5L12", "4L12", "3L16"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4E", "3E"], + wish: ["3S0"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["growl", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["growl", "charm"], pokeball: "pokeball"}, + {generation: 3, level: 20, moves: ["sing", "shockwave", "reflect", "confusion"]}, + {generation: 6, level: 1, isHidden: true, moves: ["growl", "encore"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 4}, + ], + }, + kirlia: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "9L33", "8M", "8L33", "7M", "7L26", "6M", "6L26", "5M", "5L31", "4M", "4L25", "3M", "3L21"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L28", "8M", "8L28", "7L40", "6L40", "5L50", "4L45"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defensecurl: ["3T"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + drainingkiss: ["9M", "9L12", "8M", "8L12", "7L23", "6L23"], + dreameater: ["9L48", "8L48", "7M", "7L47", "6M", "6L47", "5M", "5L59", "4M", "4L53", "3T", "3L54"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L53", "8M", "8L53", "7L37", "6L37", "5L45", "4L39", "3L40"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + healpulse: ["9L43", "8L43", "7L19", "6L19", "5L25"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L9", "8L9", "7L44", "6L44", "5L53", "4L50", "3L47"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7L33", "6L33", "5L39", "4L36", "3L33"], + lifedew: ["9L23", "8L23"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L14", "6L14", "5L17", "4L17"], + magicalleaf: ["9M", "8M", "7L17", "6L17", "5L22", "4L22", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mimic: ["3T"], + mistyterrain: ["9M", "8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L38", "8M", "8L38", "7M", "7L30", "6M", "6L30", "5M", "5L36", "4M", "4L31", "3M", "3L26"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7L51", "6L51", "5L64"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1", "3L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 4, level: 6}, + ], + }, + gardevoir: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M"], + bodyslam: ["9M", "8M", "3T"], + calmmind: ["9M", "9L35", "8M", "8L35", "7M", "7L26", "6M", "6L26", "6S1", "5M", "5L33", "4M", "4L25", "3M", "3L21"], + captivate: ["7L44", "6L44", "5L60", "4M", "4L53"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + dazzlinggleam: ["9M", "9L0", "8M", "8L0", "7M", "6M", "6S1"], + defensecurl: ["3T"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + drainingkiss: ["9M", "9L12", "8M", "8L12", "7L23", "6L23"], + dreameater: ["9L56", "8L56", "7M", "7L53", "6M", "6L53", "5M", "5L73", "4M", "4L65", "3T", "3L60"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L63", "8M", "8L63", "7L40", "6L40", "5L53", "4L45", "3L42"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + guardswap: ["8M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + healpulse: ["9L1", "8L49", "7L19", "6L19", "5L25"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L9", "8L9", "7L49", "6L49", "5L65", "5S0", "4L60", "3L51"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "8M", "7L35", "6L35", "5L45", "4L40", "3L33"], + laserfocus: ["7T"], + lifedew: ["9L23", "8L23"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + magicalleaf: ["9M", "8M", "7L17", "6L17", "5L22", "4L22"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + mimic: ["3T"], + mistyexplosion: ["8T"], + mistyterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + moonblast: ["9L49", "8L1", "7L1", "6L1", "6S1"], + mudslap: ["4T", "3T"], + mysticalfire: ["9L1", "8M"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L42", "8M", "8L42", "7M", "7L31", "6M", "6L31", "5M", "5L40", "5S0", "4M", "4L33", "3M", "3L26"], + psychicterrain: ["9M", "8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M", "8M", "7L1", "6L1", "6S1", "5L80"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1", "3L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + wish: ["9L28", "8L28", "7L14", "6L14", "5L17", "4L17"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 50, shiny: 1, abilities: ["trace"], moves: ["hypnosis", "thunderbolt", "focusblast", "psychic"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: true, gender: "F", abilities: ["synchronize"], moves: ["dazzlinggleam", "moonblast", "storedpower", "calmmind"], pokeball: "cherishball"}, + ], + }, + gallade: { + learnset: { + aerialace: ["9M", "9L18", "8L18", "7M", "7L17", "6M", "5M", "4M"], + agility: ["9M"], + airslash: ["9M", "8M"], + allyswitch: ["8M", "7T", "5M"], + aquacutter: ["9L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L1", "8M", "8L1"], + closecombat: ["9M", "9L63", "8M", "8L63", "7L1", "6L1", "5L59", "4L53"], + coaching: ["8T"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + disarmingvoice: ["9M", "9L1", "8L1"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + drainingkiss: ["9M", "9L1", "8M", "8L1"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dreameater: ["9L1", "8L1", "7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "9L23", "8M", "8L23", "7M", "7L44", "6M", "6L44", "5M", "5L50", "4M", "4L45"], + feint: ["9L12", "8L12", "7L40", "6L40", "5L45", "4L39"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9L1", "8L1", "7L14", "6L14", "5L17", "4T", "4L17"], + futuresight: ["9L1", "8M", "8L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1"], + headbutt: ["4T"], + healpulse: ["9L49", "8L49", "7L19", "6L19", "5L25"], + helpinghand: ["9M", "9L9", "8M", "8L9", "7T", "7L35", "6T", "6L35", "5T", "5L39", "4T", "4L36"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + hypnosis: ["9L1", "8L1"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M"], + imprison: ["9M", "9L1", "8M", "8L1"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leafblade: ["9L1", "8M", "7L1", "6L1", "5L1", "4L1"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + mistyterrain: ["9M", "8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + nightslash: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "9L28", "8M", "8L28", "7M", "7L49", "6M", "6L49", "5M", "5L53", "4M", "4L50"], + psybeam: ["9M", "9L1", "8L1"], + psychic: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M"], + psychocut: ["9L42", "8M", "8L42", "7L31", "6L31", "5L36", "4L31"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + quickguard: ["9L56", "8L56", "7L11", "6L11"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["9L1"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + slash: ["9L0", "8L0", "7L1", "6L17", "5L22", "4L22"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarblade: ["8M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M", "7L1", "6L1", "5L64"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "9L35", "8M", "8L35", "7M", "7L26", "6M", "6L26", "5M", "5L31", "4M", "4L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + teleport: ["9L15", "8L15", "7L1", "6L1", "5L1", "4L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + vacuumwave: ["4T"], + wideguard: ["9L56", "8L56", "7L23", "6L23"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + wonderroom: ["8M", "7T", "6T", "5T"], + workup: ["8M", "7M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + }, + surskit: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L22", "7L22", "6L22", "5L31", "4L31", "3L31"], + aquajet: ["9E", "7L30", "7E", "6L30", "6E", "5E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9L35", "7L35", "6L35", "5L43", "4L43"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0", "3S1"], + bubblebeam: ["9L17", "7L17", "6L17", "5L25", "4L25", "3L25"], + bugbite: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbuzz: ["9M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fellstinger: ["9E", "7E", "6E"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "7T", "6T", "5T", "5D", "4M", "3M"], + haze: ["9L25", "7L25", "6L25", "5L37", "4L37", "3L37"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3E"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + leechlife: ["9M"], + liquidation: ["9M", "7T"], + lunge: ["9E", "7E"], + mimic: ["3T"], + mindreader: ["7E", "6E", "5E", "4E", "3E"], + mist: ["9L25", "7L25", "6L25", "5L37", "4L37", "3L37"], + mudshot: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + mudslap: ["9M", "4T"], + mudsport: ["3S0"], + naturalgift: ["4M"], + pounce: ["9M"], + powersplit: ["9E", "7E", "6E"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["9L6", "7L6", "6L6", "5L7", "4L7", "3L7", "3S1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + soak: ["9L14"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stickyweb: ["9L38", "7L38", "6L38"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L9", "7L9", "6L9", "5L13", "4L13", "3L13"], + swift: ["4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L14", "6L14", "5L19", "4L19", "3L19"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", moves: ["bubble", "quickattack"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 3}, + ], + }, + masquerain: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + aircutter: ["9M", "9L22", "7L22", "6L22", "4T"], + airslash: ["9M", "9L32", "7L38", "6L38", "5L47", "4L47"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "4L1", "3L1"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L44", "7L1", "6L1", "5L61", "4L61"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L38", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gust: ["9L17", "7L17", "6L17", "5L22", "4L22", "3L26"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + leechlife: ["9M"], + liquidation: ["9M", "7T"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + nightmare: ["3T"], + ominouswind: ["7L1", "6L1", "5L1", "4T", "4L1"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + quiverdance: ["9L52", "7L1", "6L1", "5L68"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["9M", "9L22", "7L22", "6L22", "5L26", "4L26", "3L33"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L32", "6L32", "5L40", "4M", "4L40", "3L47"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + soak: ["9L1"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + stunspore: ["9L26", "7L26", "6L26", "5L33", "4L33", "3L40"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + swift: ["9M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + whirlwind: ["9L1", "7L1", "6L1", "5L54", "4L54", "3L53"], + }, + encounters: [ + {generation: 6, level: 21, maxEggMoves: 1}, + ], + }, + shroomish: { + learnset: { + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + bulletseed: ["9M", "7E", "6E", "5E", "5D", "4M", "3M"], + captivate: ["4M"], + charm: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + confide: ["7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + falseswipe: ["9M", "7M", "6M", "5M", "4E", "3E", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "5D"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L37", "4M", "4L37", "3M", "3L45"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + growth: ["9L29", "7L29", "6L29", "5L33", "4L33", "3L36"], + gunkshot: ["9M"], + headbutt: ["9L15", "7L15", "6L15", "5L21", "4T", "4L21", "3L22"], + helpinghand: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + leechseed: ["9L8", "7L8", "6L8", "5L13", "4L13", "3L10"], + magicalleaf: ["9M"], + megadrain: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L16", "3S0"], + mimic: ["3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + poisonpowder: ["9L19", "7L19", "6L19", "5L25", "4L25", "3L28"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + refresh: ["3S0"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9L36", "7T", "7L36", "7E", "6T", "6L36", "6E", "5T", "5L41", "5E", "4T", "4L41", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spore: ["9L40", "7L40", "6L40", "5L45", "4L45", "3L54"], + stunspore: ["9L5", "7L5", "6L5", "5L9", "5D", "4L9", "3L7", "3S0"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swift: ["9M"], + swordsdance: ["7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L5", "4L5", "3L4"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9L33", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], + venoshock: ["9M", "7M", "6M", "5M"], + wakeupslap: ["7E", "6E", "5E", "4E"], + worryseed: ["9E", "7T", "7L22", "7E", "6T", "6L22", "6E", "5T", "5L29", "5E", "4T", "4L29", "4E"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 15, abilities: ["effectspore"], moves: ["refresh", "falseswipe", "megadrain", "stunspore"]}, + ], + }, + breloom: { + learnset: { + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + aerialace: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "9L39", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + charm: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + counter: ["9L22", "7L22", "6L22", "5L25", "4L25", "3T", "3L28"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["9L50", "7L50", "6L45", "5L45", "4L45", "3T", "3L54"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M"], + falseswipe: ["9M", "7M", "6M", "5M"], + feint: ["9L19", "7L19", "6L19"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["9L55", "7T", "6T", "4M", "3M"], + forcepalm: ["9L28", "7L28", "6L28", "5L29", "4L29"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + growth: ["9L1"], + gunkshot: ["9M"], + headbutt: ["9L15", "7L15", "6L15", "5L21", "4T", "4L21", "3L22"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leafstorm: ["9M"], + leechseed: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M"], + lowsweep: ["9M", "7M", "6M", "5M"], + machpunch: ["9L0", "7L1", "6L23", "5L23", "4L23", "3L23"], + magicalleaf: ["9M"], + megadrain: ["9L12", "7L12", "6L12", "5L17", "4L17", "3L16"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mindreader: ["7L33", "6L33", "5L37", "4L37", "3L45"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + poisonjab: ["9M"], + poisonpowder: ["9L1"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "9L44", "7T", "7L44", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + seismictoss: ["3T"], + skyuppercut: ["7L39", "6L33", "5L33", "4L33", "3L36"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + stunspore: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["9L1", "7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + venoshock: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + worryseed: ["9L33", "7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + }, + slakoth: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + afteryou: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + amnesia: ["9M", "9L17", "7L17", "6L17", "5L25", "4L25", "3L25"], + attract: ["7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "9E", "7E", "6E", "5E", "4E", "3T", "3E"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L25", "6L25", "5L37"], + confide: ["7M", "6M"], + counter: ["9L30", "7L30", "6L30", "5L43", "4L37", "3T", "3L37"], + covet: ["9L22", "7T", "7L22", "6T", "6L22", "5T", "5L31", "4L31", "3L31"], + crushclaw: ["9E", "7E", "6E", "5E", "4E", "3E"], + curse: ["9E", "7E", "6E", "5E", "4E", "3E"], + cut: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + encore: ["9M", "9L6", "7L6", "6L6", "5L7", "4L7", "3L7"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + feintattack: ["7L14", "6L14", "5L19", "4L19", "3L19"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L33", "7L33", "6L33", "5L49", "4L43", "3L43"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9E", "7E", "6E", "5E", "4E"], + headbutt: ["9L14", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7E", "6E", "5E", "5D", "4E"], + playrough: ["9M", "9L38", "7L38", "6L38"], + poisonjab: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slackoff: ["9L9", "7L9", "6L9", "5L13", "4L13", "3L13"], + slash: ["9E", "7E", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + snore: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["5D", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L25"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + tickle: ["9E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + xscissor: ["9M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + zenheadbutt: ["9M"], + }, + }, + vigoroth: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L27", "6L27", "5L43"], + confide: ["7M", "6M"], + counter: ["9L33", "7L33", "6L33", "5L37", "4L37", "3T", "3L37"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "9L17", "7L17", "6L17", "5L25", "4M", "4L25", "3T", "3L25"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9L37", "7T", "7L37", "6T", "6L37", "5L49", "4M", "4L43", "3M", "3L43"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["9L14", "7L14", "6L14", "5L19", "4L19", "3L19"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hypervoice: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M"], + playrough: ["9M"], + poisonjab: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L43", "7L1", "6L1", "5L55", "4L49", "3L49"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["9L23", "7L23", "6L23", "5L31", "4L31", "3L31"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L27"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + uproar: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + slaking: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "4S0", "3M"], + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L17", "7L17", "6L17", "5L25", "4L25", "3L25"], + attract: ["7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7L27", "6L27", "5L37"], + confide: ["7M", "6M"], + counter: ["9L33", "7L33", "6L33", "5L43", "4L37", "3T", "3L37"], + covet: ["9L23", "7T", "7L23", "6T", "6L23", "5T", "5L31", "4L31", "3L31"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + encore: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M"], + feintattack: ["7L14", "6L14", "5L19", "4L19", "3L19"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L39", "7L39", "6L39", "5L49", "4L43", "3L43"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "9L45", "7M", "7L1", "6M", "6L1", "5M", "5L55", "4M", "4L49"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M", "4S0"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + hammerarm: ["9L63", "7L1", "6L1", "5L67", "4L61"], + headbutt: ["4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["9L52", "3T"], + megapunch: ["3T"], + metalclaw: ["9M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M"], + playrough: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + punishment: ["7L1", "6L1", "5L61", "4L55"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "4S0", "3M"], + reversal: ["9M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M", "4S0"], + shockwave: ["7T", "6T", "4M", "3M"], + slackoff: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["9M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L1", "4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L0", "7M", "7L1", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L27"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["9M"], + workup: ["7M", "5M"], + xscissor: ["9M"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Adamant", moves: ["gigaimpact", "return", "shadowclaw", "aerialace"], pokeball: "cherishball"}, + ], + }, + nincada: { + learnset: { + absorb: ["8L21", "7L5"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + bide: ["7L29", "6L29"], + bugbite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + bugbuzz: ["8M", "7E", "6E", "5E", "4E"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8L40", "7L37", "6M", "6L37", "5M", "5L45", "4M", "4L45", "3M", "3L45"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "7E", "6E", "5E", "5D", "4M", "4E", "3T", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L10", "7M", "7L33", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3L25"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + finalgambit: ["8E", "7E", "6E", "5E"], + flail: ["8E"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["8L30", "7L13", "6L13", "5L14", "4L14", "3L14"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gust: ["8E", "7E", "6E", "5E", "4E", "3E"], + harden: ["8L5", "7L1", "6L1", "5L1", "4L1", "3L1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + leechlife: ["8M", "7M", "6L5", "5L5", "5D", "4L5", "3L5"], + metalclaw: ["8L25", "7L21", "6L21", "5L38", "4L38", "3L38"], + mimic: ["3T"], + mindreader: ["8L35", "7L25", "6L19", "5L19", "4L19", "3L19"], + mudslap: ["8L15", "7L17", "6L17", "5L31", "4T", "4L31", "3T", "3L31"], + naturalgift: ["4M"], + nightslash: ["8E", "7E", "6E", "5E", "5D", "4E"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L9", "6L9", "5L9", "4L9", "3L9"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["7E", "6E", "5E", "4E", "3E"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + ninjask: { + learnset: { + absorb: ["8L23", "7L1"], + acrobatics: ["8M"], + aerialace: ["8L1", "7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L15", "7L17", "6L17", "5L38", "4L38", "3L38"], + aircutter: ["4T"], + airslash: ["8M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L1", "7L35", "6L35", "5L45", "4L45", "3L45"], + bugbite: ["8L29", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bugbuzz: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["8L0", "7M", "7L1", "6M", "6L20", "5M", "5L20", "4M", "4L20", "3M", "3L20"], + dualwingbeat: ["8T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L0", "7L1", "6L20", "5L20", "4T", "4L20", "3T", "3L20"], + furyswipes: ["8L36", "7L13", "6L13", "5L14", "4L14", "3L14"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + laserfocus: ["7T"], + leechlife: ["8M", "7M", "6L1", "5L1", "4L1", "3L1"], + metalclaw: ["8L1"], + mimic: ["3T"], + mindreader: ["8L43", "7L29", "6L19", "5L19", "4L19", "3L19"], + mudslap: ["8L1", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M", "8L0", "7L1", "6L20", "5L20", "4L20", "3L20"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + silverwind: ["4M"], + skittersmack: ["8T"], + slash: ["8L50", "7L23", "6L23", "5L31", "4L31", "3L31"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "8L57", "7M", "7L41", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3T", "3L25"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + xscissor: ["8M", "8L64", "7M", "7L47", "6M", "6L47", "5M", "5L52", "4M", "4L52"], + }, + }, + shedinja: { + learnset: { + absorb: ["8L23", "7L1"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "4R", "3R"], + allyswitch: ["8M", "7T"], + batonpass: ["4R", "3R"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["8M"], + confide: ["7M", "6M"], + confuseray: ["8L15", "7L29", "6L29", "5L31", "4L31", "3L31", "3S0"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "8L1", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["8L36", "7L13", "6L13", "5L14", "4L14", "3L14"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grudge: ["8L1", "7L37", "6L37", "5L45", "4L45", "3L45", "3S0"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + healblock: ["7L41", "6L41", "5L52", "4L52"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + leechlife: ["8M", "7M", "6L5", "5L5", "4L5", "3L5"], + metalclaw: ["8L1"], + mimic: ["3T"], + mindreader: ["8L43", "7L25", "6L19", "5L19", "4L19", "3L19"], + mudslap: ["8L1", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + phantomforce: ["8M", "8L64", "7L45", "6L45"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L9", "5L9", "4L9", "3L9"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["4R", "3R"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8L50", "7M", "7L33", "6M", "6L33", "5M", "5L59", "4M", "4L59", "3M", "3L38", "3S0"], + shadowclaw: ["8M", "8L1", "7M", "6M", "5M", "4M"], + shadowsneak: ["8L29", "7L21", "6L21", "5L38", "4L38"], + skittersmack: ["8T"], + slash: ["4R", "3R"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["8L57", "7T", "7L17", "6T", "6L17", "5T", "5L25", "4T", "4L25", "3L25", "3S0"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["4R", "3R"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["spite", "confuseray", "shadowball", "grudge"], pokeball: "pokeball"}, + ], + }, + whismur: { + learnset: { + astonish: ["8L1", "7L8", "6L8", "5L11", "4L11", "3L11"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + circlethrow: ["8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + disarmingvoice: ["8E", "7E", "6E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + echoedvoice: ["8L5", "7M", "7L4", "6M", "6L4", "5M"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E"], + endure: ["8M", "4M", "3T"], + extrasensory: ["8E", "7E", "6E", "5E", "4E", "3E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M", "7E", "6E", "5E"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hammerarm: ["8E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L10", "7L11", "6L11", "5L15", "4L15", "3L15"], + hypervoice: ["8M", "8L45", "7T", "7L39", "6T", "6L39", "5T", "5L51", "4L45", "3L45"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L15", "7M", "7L32", "6M", "6L32", "5M", "5L45", "4M", "4L41", "3M", "3L41"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["8L25", "7M", "7L29", "6M", "6L29", "5M", "5L35", "4M", "4L35", "3M", "3L35"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L40", "7L15", "6L15", "5L31", "4L31", "3L31"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "8L15", "7M", "7L36", "6M", "6L36", "5T", "5L45", "4M", "4L41", "3T", "3L41"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + smokescreen: ["8E", "7E", "6E", "5E", "4E"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stomp: ["8L21", "7L22", "6L22", "5L25", "4L25", "3L25"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L30", "7L18", "6L18", "5L21", "4L21", "3L21"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + synchronoise: ["7L43", "6L41", "5L41"], + takedown: ["8E", "7E", "6E", "5E", "4E", "3E"], + teeterdance: ["3S0"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "8L35", "7T", "7L25", "6T", "6L5", "5T", "5L5", "5D", "4T", "4L5", "3L5", "3S0"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlwind: ["8E", "7E"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["pound", "uproar", "teeterdance"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + loudred: { + learnset: { + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L0", "7L1", "6L20", "5L20", "4L20"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["8L1", "7M", "7L1", "6M", "6L1", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hypervoice: ["8M", "8L57", "7T", "7L45", "6T", "6L45", "5T", "5L65", "4L57", "3L57"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L15", "7M", "7L36", "6M", "6L36", "5M", "5L57", "4M", "4L51", "3M", "3L51"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["8L29", "7M", "7L32", "6M", "6L32", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L50", "7L15", "6L15", "5L37", "4L37", "3L37"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "8L15", "7M", "7L41", "6M", "6L41", "5T", "5L57", "4M", "4L51", "3T", "3L51"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stomp: ["8L23", "7L23", "6L23", "5L29", "4L29", "3L29"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L36", "7L18", "6L18", "5L23", "4L23", "3L23"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + synchronoise: ["7L50", "6L50", "5L51"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "8L43", "7T", "7L27", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 6, level: 16, maxEggMoves: 1}, + ], + }, + exploud: { + learnset: { + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bite: ["8L1", "7L1", "6L20", "5L20", "4L20"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + boomburst: ["8L72", "7L1", "6L1"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "8L0", "7L1", "6L40", "5L40", "4L40"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["8L1", "7M", "7L1", "6M", "6L1", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["8M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hydropump: ["8M"], + hyperbeam: ["8M", "8L81", "7M", "7L64", "6M", "6L64", "5M", "5L79", "4M", "4L71", "3M", "3L40", "3S1"], + hypervoice: ["8M", "8L63", "7T", "7L47", "6T", "6L47", "5T", "5L71", "4L63", "3L63", "3S0"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L15", "7M", "7L36", "6M", "6L36", "5M", "5L55", "4M", "4L55", "3M", "3L55", "3S0"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["8L29", "7M", "7L32", "6M", "6L32", "5M", "5L45", "4M", "4L45", "3M", "3L45", "3S0", "3S1"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L54", "7L15", "6L15", "5L37", "4L37", "3L37", "3S1"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "8L15", "7M", "7L42", "6M", "6L42", "5T", "5L63", "4M", "4L55", "3T", "3L55", "3S0"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stomp: ["8L23", "7L23", "6L23", "5L29", "4L29", "3L29", "3S1"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + supersonic: ["8L36", "7L18", "6L18", "5L23", "4L23", "3L23"], + surf: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + synchronoise: ["7L53", "6L53", "5L55"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + terrainpulse: ["8T"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "8L45", "7T", "7L27", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["roar", "rest", "sleeptalk", "hypervoice"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["stomp", "screech", "hyperbeam", "roar"], pokeball: "pokeball"}, + ], + }, + makuhita: { + learnset: { + armthrust: ["9L7", "7L7", "6L7", "5L7", "5D", "4L7", "3L10", "3S0"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bellydrum: ["9L25", "7L25", "6L25", "5L25", "4L25", "3L37"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M", "3S0"], + bulkup: ["9M", "9L22", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletpunch: ["9E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + chillingwater: ["9M"], + chipaway: ["7E", "6E", "5E"], + closecombat: ["9M", "9L40", "7L40", "6L40", "5L40", "4L40"], + confide: ["7M", "6M"], + counter: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + crosschop: ["9E", "7E", "6E", "5E", "4E", "3E"], + detect: ["9L28", "7E", "6E", "5E", "4E", "3E"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "9L37", "7L37", "6L37", "5L37", "4M", "4L37", "3T", "3L40"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L19"], + feint: ["9E", "7E", "6E", "5E", "4E"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9L34", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + forcepalm: ["9L13", "7L13", "6L13", "5L28", "4L28"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["9M", "9L46", "7L46", "6L46", "5L46"], + helpinghand: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], + knockoff: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L28"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["7E", "6E", "5E", "4E", "3E"], + reversal: ["9M", "9L43", "7L43", "6L43", "5L43", "4L43", "3L49"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M", "3S0"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L4", "7L4", "6L4", "5L4", "4L4", "3L4"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["9L31", "7L31", "6L31", "5L31", "4L31", "3T", "3L46"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smellingsalts: ["7L28", "6L22", "5L22", "4L22", "3L31"], + snore: ["7T", "6T", "5T", "4T", "3T"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["7L22", "6L10", "5L10", "4L10", "3L13"], + wakeupslap: ["7L34", "7E", "6L34", "6E", "5L34", "5E", "4L34", "4E"], + whirlpool: ["4M"], + whirlwind: ["9L16", "7L16", "6L16", "5L16", "4L16", "3L22"], + wideguard: ["9E", "7E", "6E", "5E"], + workup: ["7M", "5M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 18, moves: ["refresh", "brickbreak", "armthrust", "rocktomb"]}, + ], + }, + hariyama: { + learnset: { + armthrust: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bellydrum: ["9L26", "7L26", "6L26", "5L27", "4L27", "3L40"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + brine: ["9L1", "7L1", "6L1", "5L1", "4M", "4L1"], + bulkup: ["9M", "9L22", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L46", "7L46", "6L46", "5L52", "4L52"], + confide: ["7M", "6M"], + counter: ["3T"], + detect: ["9L30"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "9L42", "7L42", "6L42", "5L47", "4M", "4L47", "3T", "3L44"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L19"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + focuspunch: ["9L38", "7T", "6T", "4M", "3M"], + forcepalm: ["9L13", "7L13", "6L13", "5L32", "4L32"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + headlongrush: ["9L60"], + heavyslam: ["9M", "9L54", "7L54", "6L54", "5L62"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + knockoff: ["9L19", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19", "3L29"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L50", "7L50", "6L50", "5L57", "4L57", "3L55"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["9L34", "7L34", "6L34", "5L37", "4L37", "3T", "3L51"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smellingsalts: ["7L30", "6L22", "5L22", "4L22", "3L33"], + snore: ["7T", "6T", "5T", "4T", "3T"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + surf: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["7T"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + vacuumwave: ["4T"], + vitalthrow: ["7L22", "6L10", "5L10", "4L10", "3L13"], + wakeupslap: ["7L38", "6L38", "5L42", "4L42"], + whirlpool: ["4M"], + whirlwind: ["9L16", "7L16", "6L16", "5L16", "4L16", "3L22"], + workup: ["7M", "5M"], + zenheadbutt: ["9M"], + }, + encounters: [ + {generation: 6, level: 22}, + ], + }, + nosepass: { + learnset: { + ancientpower: ["5D", "4T"], + attract: ["7M", "6M", "5M", "4M", "3M"], + block: ["7T", "7L7", "7E", "6T", "6L7", "6E", "5T", "5L19", "5E", "4T", "4L19", "4E", "3L16"], + bodyslam: ["3T"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["7M", "6M"], + defensecurl: ["3T"], + discharge: ["7L31", "6L31", "5L55", "4L49"], + doubleedge: ["7E", "6E", "5E", "4E", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthpower: ["7T", "7L37", "6T", "6L37", "5T", "5L79", "4T", "4L73"], + earthquake: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7E", "6E", "5E", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + facade: ["7M", "6M", "5M", "4M", "3M"], + firepunch: ["7T", "6T", "5T", "4T", "3T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gravity: ["7T", "6T", "5T", "4T"], + harden: ["7L4", "6L4", "5L7", "4L7", "3L7"], + headbutt: ["4T"], + helpinghand: ["3S0"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + irondefense: ["7T", "6T", "5T", "4T"], + lockon: ["7L43", "6L43", "5L73", "4L67", "3L46"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetrise: ["7T", "6T", "5T", "4T"], + magnitude: ["7E", "6E", "5E", "4E", "3E"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["7L25", "6L25", "5L49", "4L49"], + protect: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "7L16", "6M", "6L16", "5M", "5L43", "4M", "4L43", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["7L28", "6L18", "5L18"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "7L22", "6M", "6L22", "5M", "5L31", "4M", "4L31", "3T", "3L28", "3S0"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["7L10", "6L10", "5L13", "4L13", "3L13"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["7E", "6E", "5E", "4T", "4E", "3T", "3E"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "7L34", "6M", "6L34", "5M", "5L37", "4M", "4L37", "3M", "3L31"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spark: ["7L19", "6L19", "5L25"], + stealthrock: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "7L40", "6M", "6L40", "5M", "5L61", "4M", "4L55"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + taunt: ["7M", "6M", "5M", "4M", "3M"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M", "3S0"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "7L13", "6M", "6L13", "5M", "5L25", "4M", "4L25", "3T", "3L22", "3S0"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + voltswitch: ["7M", "6M", "5M"], + wideguard: ["7E", "6E"], + zapcannon: ["7L43", "6L43", "5L67", "4L61", "3L43"], + }, + eventData: [ + {generation: 3, level: 26, moves: ["helpinghand", "thunderbolt", "thunderwave", "rockslide"]}, + ], + }, + probopass: { + learnset: { + allyswitch: ["7T"], + ancientpower: ["4T"], + attract: ["7M", "6M", "5M", "4M"], + block: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["7M", "6M"], + discharge: ["7L31", "6L31", "5L55", "4L49"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "7L37", "6T", "6L37", "5T", "5L79", "4T", "4L73"], + earthquake: ["7M", "6M", "5M", "4M"], + endure: ["4M"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + firepunch: ["7T", "6T", "5T", "4T"], + flashcannon: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gravity: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icepunch: ["7T", "6T", "5T", "4T"], + irondefense: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + ironhead: ["7T", "6T", "5T", "4T"], + lockon: ["7L43", "6L43", "5L73", "4L67"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetbomb: ["7L1", "6L1", "5L1", "4L1"], + magneticflux: ["7L1"], + magnetrise: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["7L25", "6L25", "5L49", "4L49"], + protect: ["7M", "6M", "5M", "4M"], + rest: ["7M", "7L16", "6M", "6L16", "5M", "5L43", "4M", "4L43"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["7L28", "6L18", "5L18"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "7L22", "6M", "6L22", "5M", "5L31", "4M", "4L31"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "7L34", "6M", "6L34", "5M", "5L37", "4M", "4L37"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + spark: ["7L19", "6L19", "5L25"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "7L40", "6M", "6L40", "5M", "5L61", "4M", "4L55"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + taunt: ["7M", "6M", "5M", "4M"], + telekinesis: ["7T"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderpunch: ["7T", "6T", "5T", "4T"], + thunderwave: ["7M", "7L13", "6M", "6L13", "5M", "5L25", "4M", "4L25"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["7L1"], + voltswitch: ["7M", "6M", "5M"], + wideguard: ["7L1", "6L1"], + zapcannon: ["7L43", "6L43", "5L67", "4L61"], + }, + }, + skitty: { + learnset: { + assist: ["7L31", "6L22", "5L22", "4L18", "3L19"], + attract: ["7M", "7L10", "6M", "6L8", "5M", "5L8", "4M", "4L4", "3M", "3L7", "3S2"], + batonpass: ["7E", "6E", "5E", "4E", "3E"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["7L43", "7E", "6L43", "6E", "5L46", "5E", "5D", "4M", "4L42"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7L25", "6L25", "5L25", "4L22", "3L25"], + confide: ["7M", "6M"], + copycat: ["7L19", "6L18", "5L18", "4L11"], + cosmicpower: ["7E", "6E"], + covet: ["7T", "7L34", "6T", "6L34", "5T", "5L36", "4L32", "3L31"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + disarmingvoice: ["7L13", "6L13"], + doubleedge: ["7L40", "6L40", "5L42", "4L39", "3T", "3L39"], + doubleslap: ["7L16", "6L15", "5L15", "4L15", "3L15"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + faketears: ["7E", "6E", "5E", "4E", "3E"], + feintattack: ["7L22", "6L22", "5L29", "4L25", "3L27"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7L4", "6L4", "5L4", "5D", "4L4"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2"], + headbutt: ["4T"], + healbell: ["7T", "7L37", "6T", "6L37", "5T", "5L39", "4T", "4L36", "3L37"], + helpinghand: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + mimic: ["3T"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + payday: ["3S0"], + playrough: ["7L46", "6L46"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T", "3S1"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + simplebeam: ["7E", "6E", "5E"], + sing: ["7L7", "6L7", "5L11", "4L8", "3L13"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["7E", "6E", "5E", "4T", "4E"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1", "3S2"], + tailwhip: ["7L1", "6L1", "5L1", "4L1", "3L3", "3S0", "3S1", "3S2"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + tickle: ["7E", "6E", "5E", "5D", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + wakeupslap: ["7L28", "6L28", "5L32", "4L29"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["tackle", "growl", "tailwhip", "payday"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 5, shiny: 1, abilities: ["cutecharm"], moves: ["growl", "tackle", "tailwhip", "rollout"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", abilities: ["cutecharm"], moves: ["growl", "tackle", "tailwhip", "attract"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 3, gender: "F", ivs: {hp: 5, atk: 4, def: 4, spa: 5, spd: 4, spe: 4}, abilities: ["cutecharm"], pokeball: "pokeball"}, + ], + }, + delcatty: { + learnset: { + attract: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1", "3S0"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleslap: ["7L1", "6L1", "5L1", "4L1", "3L1"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7L1", "6L1", "5L1", "4L1"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["3L1"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M", "3S0"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M", "3S0"], + sing: ["7L1", "6L1", "5L1", "4L1", "3L1"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["3S0"], + swift: ["4T", "3T"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 18, abilities: ["cutecharm"], moves: ["sweetkiss", "secretpower", "attract", "shockwave"]}, + ], + }, + sableye: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + allyswitch: ["8M", "7T"], + astonish: ["9L3", "8L3", "7L9", "6L9", "5L11", "4L11", "3L13"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M"], + calmmind: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + captivate: ["7E", "6E", "5E", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "8L6", "7L31", "6L31", "5L46", "4L46", "3L37"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + detect: ["9L18", "8L18", "7L14", "6L14", "5L22", "4L22", "3L25"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + disable: ["9L15", "8L15"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9L12", "8L12", "7L21", "6L18", "5L18", "4L18", "3L21"], + feint: ["9E", "8E", "7E", "6E", "5E", "4E"], + feintattack: ["7L19", "6L19", "5L32", "4L32", "3L29", "3S1"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flatter: ["9E", "8E", "7E", "6E", "5E", "4E"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L4", "6L4", "5L4", "5D", "4L4", "3L5", "3S0"], + foulplay: ["9M", "9L48", "8M", "8L48", "7T", "7L41", "6T", "6L41", "5T", "5L50", "5S2"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["9L24", "8L24", "7L11", "6L11", "5L15", "4L15", "3L17"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "3S1"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M", "7E", "6E"], + incinerate: ["6M", "5M"], + knockoff: ["9L27", "8L27", "7T", "7L26", "6T", "6L26", "5T", "5L29", "4T", "4L29", "3L33"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + lightscreen: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meanlook: ["9L36", "8L36", "7L46", "7E", "6L1", "6E", "5L60", "5E", "4L57", "3L45"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalburst: ["9E", "8E", "7E", "6E", "5E"], + metalclaw: ["9M"], + metronome: ["9M", "8M", "3T"], + mimic: ["3T"], + moonlight: ["7E", "6E", "5E", "4E", "3E"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M", "8M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L21", "8L21", "7L6", "6L6", "5L8", "4L8", "3L9", "3S0"], + octazooka: ["5S2"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + phantomforce: ["9M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poltergeist: ["8T"], + powergem: ["9M", "9L39", "8M", "8L39", "7L36", "6L36", "5L43", "4L43"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + punishment: ["7L24", "6L24", "5L36", "4L36"], + quash: ["9L30", "8L30", "7M", "7L44", "6M", "6L44"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9E", "8E", "7E", "6E", "6S3", "6S4", "5E", "4E", "3E", "3S1"], + reflect: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "9L45", "8M", "8L45", "7M", "7L39", "6M", "6L39", "6S3", "5M", "5L57", "4M", "4L53", "3M", "3L41", "3S1"], + shadowclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L39", "4M", "4L39"], + shadowsneak: ["9L9", "8L9", "7L16", "6L16", "5L25", "4L25"], + shockwave: ["7T", "6T", "6S4", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "5D", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E", "5D", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + tickle: ["5S2"], + torment: ["9E", "8E", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5S2", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + willowisp: ["9M", "8M", "7M", "6M", "6S3", "6S4", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + xscissor: ["9M"], + zenheadbutt: ["9M", "9L42", "8M", "8L42", "7T", "7L34", "6T", "6L1", "5T", "5L53", "4T", "4L50"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", abilities: ["keeneye"], moves: ["leer", "scratch", "foresight", "nightshade"], pokeball: "pokeball"}, + {generation: 3, level: 33, abilities: ["keeneye"], moves: ["helpinghand", "shadowball", "feintattack", "recover"]}, + {generation: 5, level: 50, gender: "M", isHidden: true, moves: ["foulplay", "octazooka", "tickle", "trick"], pokeball: "cherishball"}, + {generation: 6, level: 50, nature: "Relaxed", ivs: {hp: 31, spa: 31}, isHidden: true, moves: ["calmmind", "willowisp", "recover", "shadowball"], pokeball: "cherishball"}, + {generation: 6, level: 100, nature: "Bold", isHidden: true, moves: ["willowisp", "recover", "taunt", "shockwave"], pokeball: "cherishball"}, + ], + }, + mawile: { + learnset: { + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E", "3E"], + assurance: ["8M"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "8L8", "7L25", "6L25", "5L31", "4L31", "3L31"], + bite: ["8L12", "7L9", "6L9", "5L11", "4L11", "3L11"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + captivate: ["7E", "6E", "5E", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M", "8L28", "7L29", "6L29", "5L36", "4L36", "3L36"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["8M"], + dynamicpunch: ["3T"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fairywind: ["8L4", "7L1", "6L1"], + faketears: ["8M", "8L44", "7L5", "6L5", "5L6", "5D", "4L6", "3L6", "3S0"], + falseswipe: ["8M", "7M", "6M", "5M", "4E", "3E", "3S1"], + feintattack: ["7L21", "6L21", "5L26", "4L26", "3L26"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7E", "6E", "6S2", "5E", "5D", "4E"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1"], + guardswap: ["8M", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "7E", "6E", "5E", "4E"], + icepunch: ["8M", "7T", "6T", "5T", "5D", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "8L24", "7T", "7L33", "6T", "6L33", "5T", "5L41", "4T", "4L41", "3L41", "3S1"], + ironhead: ["8M", "8L36", "7T", "7L1", "6T", "6L1", "6S2", "6S3", "5T", "5L56", "4T", "4L56"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalburst: ["7E", "6E", "5E"], + mimic: ["3T"], + mistyterrain: ["8M", "7E", "6E"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + playrough: ["8M", "8L48", "7L1", "6L1", "6S2", "6S3"], + poisonfang: ["7E", "6E", "5E", "4E", "3E"], + poweruppunch: ["8E", "7E", "6M"], + protect: ["8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + psychicfangs: ["8M"], + psychup: ["7M", "6M", "5M", "4E", "3T", "3E"], + punishment: ["7E", "6E", "5E", "4E"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["8E", "7E", "6E", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sing: ["3S1"], + slam: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["8L16", "7L41", "6L41", "5L51", "4L51", "3L46"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stockpile: ["8L16", "7L41", "6L41", "5L51", "4L51", "3L46"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["8L20", "7L37", "7E", "6L37", "6E", "6S2", "6S3", "5L46", "5E", "4T", "4L46", "4E"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8L16", "7L41", "6L41", "5L51", "4L51", "3L46"], + sweetscent: ["8L32", "7L13", "6L13", "5L16", "4L16", "3L16"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + taunt: ["8M", "8L40", "7M", "7L1", "6M", "6L1", "5M", "4M", "3M"], + thunderfang: ["8M", "7E", "6E", "5E", "4E"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + visegrip: ["7L17", "6L17", "5L21", "4L21", "3L21", "3S1"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["astonish", "faketears"], pokeball: "pokeball"}, + {generation: 3, level: 22, moves: ["sing", "falseswipe", "visegrip", "irondefense"]}, + {generation: 6, level: 50, abilities: ["intimidate"], moves: ["ironhead", "playrough", "firefang", "suckerpunch"], pokeball: "cherishball"}, + {generation: 6, level: 100, abilities: ["intimidate"], moves: ["suckerpunch", "protect", "playrough", "ironhead"], pokeball: "cherishball"}, + ], + }, + aron: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + autotomize: ["8L40", "7L43", "6L39", "5L43"], + bodypress: ["8M"], + bodyslam: ["8M", "7E", "6E", "5E", "4E", "3T", "3E"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L56", "7L40", "6L40", "5L50", "4L43", "3T", "3L44"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonrush: ["8E", "7E", "6E", "5E", "4E"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + harden: ["8L1", "7L1", "6L1", "5L4", "5D", "4L4", "3L4"], + headbutt: ["8L16", "7L7", "6L7", "5L11", "4T", "4L11", "3L10"], + headsmash: ["8E", "7E", "6E", "5E", "5D", "4E"], + heavyslam: ["8M", "8L52", "7L46", "6L43", "5L46"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "8L48", "7T", "7L37", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "7E", "6T", "6L22", "6E", "5T", "5L29", "5E", "4T", "4L29", "4E"], + irontail: ["8M", "8L44", "7T", "7L34", "6T", "6L34", "5T", "5L39", "4M", "4L39", "3M", "3L29"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["8L60", "7L49", "6L49", "5L53", "4L46"], + metalclaw: ["8L4", "7L10", "6L10", "5L15", "4L15", "3L13"], + metalsound: ["8L33", "7L31", "6L31", "5L36", "4L36", "3L39"], + mimic: ["3T"], + mudslap: ["8E", "7L4", "6L4", "5L8", "4T", "4L8", "3T", "3L7"], + naturalgift: ["4M"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L32", "4M", "4L32", "3M", "3L34"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M", "7E", "6E"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L8", "7M", "7L13", "6M", "6L13", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stomp: ["8E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L36", "7L28", "6L22", "5L25", "4L25", "3L25"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + }, + lairon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + autotomize: ["8L46", "7L47", "6L45", "5L51"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L70", "7L43", "6L43", "5L62", "4L51", "3T", "3L53"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L16", "7L1", "6L1", "5L1", "4T", "4L1", "3L1"], + heavyslam: ["8M", "8L64", "7L51", "6L51", "5L56"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "8L58", "7T", "7L39", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L29", "4T", "4L29"], + irontail: ["8M", "8L52", "7T", "7L35", "6T", "6L35", "5T", "5L45", "4M", "4L45", "3M", "3L29"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["8L76", "7L55", "6L55", "5L67", "4L56"], + metalclaw: ["8L1", "7L10", "6L10", "5L15", "4L15", "3L13"], + metalsound: ["8L35", "7L31", "6L31", "5L40", "4L40", "3L45"], + mimic: ["3T"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + naturalgift: ["4M"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L34", "4M", "4L34", "3M", "3L37"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L1", "7M", "7L13", "6M", "6L13", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "7L28", "6L22", "5L25", "4L25", "3L25"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + }, + }, + aggron: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + autotomize: ["8L48", "7L51", "6L48", "5L57"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8L80", "7L45", "6L45", "5L74", "4L57", "3T", "3L63", "3S0"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "6S2", "5M", "4M", "3M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["8L16", "7L1", "6L1", "5L1", "4T", "4L1", "3L1"], + headsmash: ["6S2"], + heavyslam: ["8M", "8L72", "7L57", "6L57", "5L65"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "8L64", "7T", "7L39", "6T", "6L15", "5T", "5L18", "4T", "4L18", "3L17"], + ironhead: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "6S2", "5T", "5L29", "4T", "4L29"], + irontail: ["8M", "8L56", "7T", "7L35", "6T", "6L35", "5T", "5L48", "4M", "4L48", "3M", "3L29", "3S0", "3S1"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalburst: ["8L88", "7L63", "6L63", "5L82", "4L65"], + metalclaw: ["8L1", "7L10", "6L10", "5L15", "4L15", "3L13"], + metalsound: ["8L35", "7L31", "6L31", "5L40", "4L40", "3L50", "3S0", "3S1"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L34", "4M", "4L34", "3M", "3L37", "3S0", "3S1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["8M"], + roar: ["8L12", "7M", "7L19", "6M", "6L18", "5M", "5L22", "4M", "4L22", "3M", "3L21"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "6S2", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L1", "7M", "7L13", "6M", "6L13", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scaryface: ["8M"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L40", "7L28", "6L22", "5L25", "4L25", "3L25", "3S1"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["irontail", "protect", "metalsound", "doubleedge"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["takedown", "irontail", "protect", "metalsound"], pokeball: "pokeball"}, + {generation: 6, level: 50, nature: "Brave", abilities: ["rockhead"], moves: ["ironhead", "earthquake", "headsmash", "rockslide"], pokeball: "cherishball"}, + ], + }, + meditite: { + learnset: { + acupressure: ["9L33", "7L33", "6L33", "5L39"], + aerialace: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + bide: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulletpunch: ["9E", "7E", "6E", "5E", "4E"], + calmmind: ["9M", "9L23", "7M", "7L23", "6M", "6L23", "5M", "5L25", "4M", "4L25", "3M", "3L28"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L7", "6L7", "5L8", "4L8", "3L9", "3S0", "3S1"], + counter: ["9L44", "7L44", "6L44", "3T"], + detect: ["9L9", "7L9", "6L9", "5L11", "4L11", "3L12", "3S1"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["9E", "7E", "6E", "5E", "4E", "3T", "3E", "3S1"], + endure: ["9M", "9L12", "7L12", "6L12", "5D", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fakeout: ["9E", "7E", "6E", "5E", "4E", "3E"], + feint: ["9L15", "7L15", "6L15", "5L22", "4L22"], + firepunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + forcepalm: ["9L17", "7L17", "6L17", "5L29", "4L29"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["9E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7L20", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3M", "3L17"], + highjumpkick: ["9L28", "7L28", "6L28", "5L32", "4L32", "3L32"], + icepunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + imprison: ["9M"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meditate: ["7L4", "6L4", "5L4", "5D", "4L4", "3L4", "3S0"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mindreader: ["7L25", "6L18", "5L18", "4L18", "3L22"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightshade: ["9M"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powerswap: ["9E", "7E", "6E", "5E", "4E"], + powertrick: ["9L36", "7L36", "6L36", "5L43", "4L39"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L20"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["9M"], + psychocut: ["9E", "7E", "6E", "5E", "4E"], + psychup: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + psyshock: ["9M", "7M", "6M", "5M"], + quickguard: ["9E", "7E", "6E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9L41", "7L41", "6L41", "5L50", "4L46", "3L44"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "9L39", "7L39", "6L39", "5L46", "4L43", "3L41"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M", "3S1"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T", "3L20"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + vacuumwave: ["4T"], + workup: ["9L1", "7M", "5M"], + zenheadbutt: ["9M", "9L25", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["bide", "meditate", "confusion"], pokeball: "pokeball"}, + {generation: 3, level: 20, moves: ["dynamicpunch", "confusion", "shadowball", "detect"], pokeball: "pokeball"}, + ], + }, + medicham: { + learnset: { + acupressure: ["9L33", "7L33", "6L33", "5L42"], + aerialace: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M"], + axekick: ["9L53"], + batonpass: ["9M"], + bide: ["7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M"], + bulkup: ["9M", "7M", "6M", "5M", "4M", "3M"], + calmmind: ["9M", "9L23", "7M", "7L23", "6M", "6L23", "5M", "5L25", "4M", "4L25", "3M", "3L28"], + captivate: ["4M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + counter: ["9L53", "7L53", "6L53", "3T"], + detect: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + endure: ["9M", "9L12", "7L12", "6L12", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9L15", "7L15", "6L15", "5L22", "4L22"], + firepunch: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + forcepalm: ["9L17", "7L17", "6L17", "5L29", "4L29"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7L20", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3M", "3L17"], + highjumpkick: ["9L28", "7L28", "6L28", "5L32", "4L32", "3L32"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + imprison: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meditate: ["7L1", "6L1", "5L1", "4L1", "3L1"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mindreader: ["7L25", "6L18", "5L18", "4L18", "3L22"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightshade: ["9M"], + painsplit: ["7T", "6T", "5T", "4T"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powertrick: ["9L36", "7L36", "6L36", "5L49", "4L42"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L20"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["9M"], + psychup: ["9L31", "7M", "7L31", "6M", "6L31", "5M", "5L36", "4M", "4L36", "3T", "3L36"], + psyshock: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recover: ["9L47", "7L47", "6L47", "5L62", "4L55", "3L54"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M", "7L42", "6L42", "5L55", "4L49", "3L46"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T", "3L20"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + vacuumwave: ["4T"], + workup: ["9L1", "7M", "5M"], + zenheadbutt: ["9M", "9L25", "7T", "7L1", "6T", "6L1", "5T", "4T"], + }, + encounters: [ + {generation: 4, level: 35}, + {generation: 6, level: 34, maxEggMoves: 1}, + ], + }, + electrike: { + learnset: { + agility: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L20", "7L24", "6L24", "5L28", "4L28", "3L33"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + charge: ["8L36", "7L44", "6L44", "5L44", "4L44", "3L41"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + crunch: ["8M", "7E", "6E", "5E", "4E", "3E"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + discharge: ["8L32", "7L29", "7E", "6L29", "6E", "5L41", "5E", "4L41", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M", "7E", "6E"], + electroball: ["8M", "7E", "6E", "5E"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "7E", "6E", "5E", "4E"], + flameburst: ["7E", "6E", "5E"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + headbutt: ["8E", "7E", "6E", "5E", "4T", "4E", "3E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L8", "7L7", "6L7", "5L12", "4L12", "3L12"], + icefang: ["8M", "7E", "6E", "5E", "5D", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + leer: ["8L4", "7L4", "6L4", "5L9", "4L9", "3L9"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["7L16", "6L16", "5L25", "4L25", "3L25"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + quickattack: ["8L12", "7L10", "6L10", "5L17", "4L17", "3L17"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["8L28", "7M", "7L34", "6M", "6L34", "5M", "5L36", "4M", "4L36", "3M", "3L28"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["8L16", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spark: ["8E", "7L13", "6L13", "5L20", "4L20", "3L20"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "7E", "6E", "5E", "4T", "4E", "3T", "3E"], + switcheroo: ["8E", "7E", "6E", "5E", "4E"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L44", "7M", "7L49", "6M", "6L49", "5M", "5L52", "4M", "4L49", "3M", "3L36"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderfang: ["8M", "8L24", "7L19", "7E", "6L19", "6E", "5L33", "5E", "4L33", "4E"], + thunderwave: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L4", "5D", "4M", "4L4", "3T", "3L4"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L49"], + }, + }, + manectric: { + learnset: { + agility: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L20", "7L24", "6L24", "5L30", "4L30", "3L39", "3S0"], + bodyslam: ["8M", "3T"], + captivate: ["4M"], + charge: ["8L42", "7L48", "6L48", "5L54", "4L54", "3L53"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + crunch: ["8M"], + discharge: ["8L36", "7L30", "6L30", "5L49", "4L49"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L60", "7L1", "6L1"], + electroball: ["8M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + flamethrower: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["8M"], + icefang: ["8M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + odorsleuth: ["7L16", "6L16", "5L25", "4L25", "3L25"], + overheat: ["8M", "7M", "6M", "6S1", "5M", "4M"], + protect: ["8M", "7M", "6M", "6S1", "5M", "4M", "3M"], + psychicfangs: ["8M"], + quickattack: ["8L12", "7L10", "6L10", "5L17", "4L17", "3L17"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M", "3S0"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + risingvoltage: ["8T"], + roar: ["8L30", "7M", "7L36", "6M", "6L36", "5M", "5L42", "4M", "4L42", "3M", "3L31"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M", "4M", "3M"], + shockwave: ["8L16", "7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spark: ["7L13", "6L13", "5L20", "4L20", "3L20"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["8M", "8L54", "7M", "7L54", "6M", "6L54", "5M", "5L66", "4M", "4L61", "3M", "3L45", "3S0"], + thunderbolt: ["8M", "7M", "6M", "6S1", "5M", "4M", "3M"], + thunderfang: ["8M", "8L24", "7L19", "6L19", "5L37", "4L37"], + thunderwave: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T"], + voltswitch: ["8M", "7M", "6M", "6S1", "5M"], + wildcharge: ["8M", "8L48", "7M", "7L42", "6M", "6L42", "5M", "5L61"], + }, + eventData: [ + {generation: 3, level: 44, moves: ["refresh", "thunder", "raindance", "bite"]}, + {generation: 6, level: 50, nature: "Timid", abilities: ["lightningrod"], moves: ["overheat", "thunderbolt", "voltswitch", "protect"], pokeball: "cherishball"}, + ], + }, + plusle: { + learnset: { + agility: ["7L37", "6L37", "5L48", "4L44", "3L47"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L34", "6L34", "5L44", "4L42", "3L40"], + bestow: ["7L13", "6L13"], + bodyslam: ["3T"], + captivate: ["4M"], + charge: ["7L28", "6L28", "5L38", "4L35", "3L31"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7L25", "7E", "6L25"], + confide: ["7M", "6M"], + copycat: ["7L22", "6L22", "5L24", "4L24"], + counter: ["3T"], + covet: ["7T"], + defensecurl: ["3T"], + discharge: ["7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + electroball: ["7L19", "6L19", "5L29"], + electroweb: ["7T", "6T"], + encore: ["7L10", "6L10", "5L17", "4L17", "3L22"], + endure: ["4M", "3T"], + entrainment: ["7L49", "6L1", "5L63"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7E", "6L35", "5L21", "4L21", "3L28"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + headbutt: ["4T"], + helpinghand: ["7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "7L40", "6T", "6L40", "5T", "5L51", "4T", "4L48"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["7L46", "6L1", "5L56", "4L51"], + naturalgift: ["4M"], + nuzzle: ["7L1", "6L1"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M", "4M", "3M"], + quickattack: ["7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sing: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spark: ["7L7", "6L7", "5L15", "4L15", "3L19"], + substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["7E", "6E", "5E", "4E"], + swift: ["7L16", "6L16", "5L31", "4T", "4L29", "3T"], + tearfullook: ["7E"], + thunder: ["7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["7T", "6T", "5T", "4T"], + voltswitch: ["7M", "6M", "5M"], + watersport: ["3S0"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "watersport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", moves: ["growl", "thunderwave", "quickattack"], pokeball: "pokeball"}, + ], + }, + minun: { + learnset: { + agility: ["7L37", "6L37", "5L48", "4L44", "3L47"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L34", "6L34", "5L44", "4L42", "3L40"], + bodyslam: ["3T"], + captivate: ["4M"], + charge: ["7L28", "6L28", "5L38", "4L35", "3L31"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7E", "6L21", "5L21", "4L21", "3L28"], + confide: ["7M", "6M"], + copycat: ["7L22", "6L22", "5L24", "4L24"], + counter: ["3T"], + covet: ["7T"], + defensecurl: ["3T"], + discharge: ["7L31", "7E", "6L31", "6E", "5E", "5D", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + echoedvoice: ["7M", "6M", "5M"], + electroball: ["7L19", "6L19", "5L29"], + electroweb: ["7T", "6T"], + encore: ["7L10", "6L10", "5L17", "4L17", "3L22"], + endure: ["4M", "3T"], + entrainment: ["7L49", "6L1", "5L63"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7L25", "7E", "6L25", "5L35", "4L31"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + headbutt: ["4T"], + helpinghand: ["7T", "7L4", "6T", "6L4", "5T", "5L10", "4T", "4L10", "3L13"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + mudsport: ["3S0"], + nastyplot: ["7L46", "6L1", "5L56", "4L51"], + naturalgift: ["4M"], + nuzzle: ["7L1", "6L1"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M", "4M", "3M"], + quickattack: ["7L1", "6L1", "5L7", "4L7", "3L10", "3S1"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sing: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spark: ["7L7", "6L7", "5L15", "4L15", "3L19"], + substitute: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["7E", "6E", "5E", "4E"], + swift: ["7L16", "6L16", "5L31", "4T", "4L29", "3T"], + switcheroo: ["7L13", "6L13"], + tearfullook: ["7E"], + thunder: ["7M", "7L43", "6M", "6L42", "5M", "5L42", "4M", "4L38", "3M", "3L37"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L3", "5D", "4M", "4L3", "3T", "3L4", "3S0", "3S1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trumpcard: ["7L40", "6L40", "5L51", "4L48"], + uproar: ["7T", "6T", "5T", "4T"], + voltswitch: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["growl", "thunderwave", "mudsport"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 3, level: 10, gender: "M", moves: ["growl", "thunderwave", "quickattack"], pokeball: "pokeball"}, + ], + }, + volbeat: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7E", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["7L8", "6L8", "5L9", "4L9", "3L5"], + counter: ["3T"], + dazzlinggleam: ["7M", "6M"], + defog: ["7T"], + dizzypunch: ["7E", "6E", "5E"], + doubleedge: ["7L47", "6L45", "5L45", "4L45", "3T", "3L37"], + doubleteam: ["7M", "7L5", "6M", "6L5", "5M", "5L5", "4M", "4L5", "3M", "3L9"], + dynamicpunch: ["3T"], + encore: ["7E", "6E", "5E", "4E"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["7L1", "6M", "6L1", "5M", "5L1", "5D", "4M", "4L1", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "6T", "5T", "4M", "3M"], + helpinghand: ["7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "7L50"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + lunge: ["7E"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + moonlight: ["7L19", "6L13", "5L13", "4L13", "3L13"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playrough: ["7L43", "6L43"], + poweruppunch: ["6M"], + protect: ["7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L29"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["7L12", "6L12", "5L17", "4L17", "3L17"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["7E", "6E", "5E", "3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "7L26", "6T", "6L25", "5T", "5L25", "4T", "4L25", "3L25"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["7L15", "6M", "6L15", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + tailglow: ["7L22", "6L21", "5L21", "4L21", "3L21"], + tailwind: ["7T", "6T", "5T", "5D", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E", "3E"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + zenheadbutt: ["7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], + }, + }, + illumise: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M", "3M"], + aircutter: ["4T"], + aromatherapy: ["7E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7E", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["7L40", "7E", "6L40", "6E", "5L41", "5E", "4L41", "4E"], + captivate: ["7E", "6E", "5E", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["7L9", "6L9", "5L9", "5D", "4L9", "3L9"], + confide: ["7M", "6M"], + confuseray: ["7E", "6E", "5E"], + counter: ["3T"], + covet: ["7T", "7L47", "6T", "6L45", "5T", "5L45", "4L45", "3L37"], + dazzlinggleam: ["7M", "6M"], + defog: ["7T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + encore: ["7L26", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E", "3L25"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + faketears: ["7E", "6E", "5E", "5D"], + flash: ["6M", "5M", "4M", "3M"], + flatter: ["7L29", "6L29", "5L29", "4L29", "3L29"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigadrain: ["7T", "6T", "5T", "4M", "3M"], + growth: ["7E", "6E", "5E", "4E", "3E"], + helpinghand: ["7T", "7L36", "6T", "6L33", "5T", "5L33", "4T", "4L33", "3L33"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "7L50"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + moonlight: ["7L19", "6L13", "5L13", "4L13", "3L13"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + playnice: ["7L1", "6L1"], + playrough: ["7L43", "6L43"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + quickattack: ["7L12", "6L12", "5L17", "4L17", "3L17"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + silverwind: ["7E", "6E", "5E", "4M", "4E", "3E"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["7L15", "6M", "6L15", "5M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["7L5", "6L5", "5L5", "4L5", "3L5"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "5D", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["7L22", "6L21", "5L21", "4L21", "3L21"], + zenheadbutt: ["7T", "7L33", "6T", "6L33", "5T", "5L37", "4T", "4L37"], + }, + }, + budew: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["8E", "7E", "6E", "5E", "4E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + extrasensory: ["8E", "7E", "6E", "5E", "4E"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["8T"], + growth: ["8L1", "7L4", "6L4", "5L4", "4L4"], + hiddenpower: ["7M", "6M", "5M", "4M"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + lifedew: ["8E"], + megadrain: ["7L13", "6L13", "5L13", "4L13"], + mindreader: ["7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + pinmissile: ["8M", "7E", "6E", "5E", "4E"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + razorleaf: ["8E", "7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sleeppowder: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + spikes: ["8M", "7E", "6E", "5E", "4E"], + stunspore: ["8L1", "7L10", "6L10", "5L10", "4L10"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + venoshock: ["8M", "7M", "6M", "5M"], + watersport: ["7L7", "6L7", "5L7", "4L7"], + weatherball: ["8M"], + worryseed: ["8L1", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16"], + }, + }, + roselia: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + aromatherapy: ["8L50", "7L43", "6L43", "5L43", "4L43", "3L53"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + bulletseed: ["8M", "7E", "6E", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["8E", "7E", "6E", "5E", "4E", "3E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M", "3M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + extrasensory: ["8E"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "8L30", "7T", "7L25", "7E", "6T", "6L25", "6E", "5T", "5L25", "5E", "4M", "4L25", "3M", "3L33"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L22", "7E", "6L22", "6E", "5L22", "5E", "4L22", "3L29", "3S1"], + grassyglide: ["8T"], + growth: ["8L1", "7L4", "6L4", "5L4", "5D", "4L4", "3L5", "3S0"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + ingrain: ["8L55", "7L34", "6L34", "5L34", "4L34", "3L41"], + leafstorm: ["8M", "7E", "6E", "5E", "4E"], + leechseed: ["8L10", "7L16", "6L16", "5L16", "4L16", "3L21", "3S1"], + lifedew: ["8E"], + magicalleaf: ["8M", "8L15", "7L19", "6L19", "5L19", "4L19", "3L25", "3S1"], + megadrain: ["8L5", "7L13", "6L13", "5L13", "4L13", "3L17"], + mimic: ["3T"], + mindreader: ["7E", "6E", "5E", "4E"], + mudslap: ["4T", "3T"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["7M", "6M"], + nightmare: ["3T"], + petalblizzard: ["8L45", "7L37", "6L37"], + petaldance: ["8L60", "7L50", "6L37", "5L40", "4L40", "3L49"], + pinmissile: ["8M", "7E", "6E", "5E", "4E", "3E"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L0", "7L7", "6L7", "5L7", "4L7", "3L9", "3S0"], + powerwhip: ["8M", "7E"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + razorleaf: ["8E", "7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + sleeppowder: ["8E", "7E", "6E", "5E", "5D", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spikes: ["8M", "7E", "6E", "5E", "4E", "3E"], + stunspore: ["8L1", "7L10", "6L10", "5L10", "4L10", "3L13"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["3S1"], + sweetscent: ["8L25", "7L31", "6L31", "5L31", "4L31", "3L37"], + swift: ["8M", "5D", "4T", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["8L35", "7T", "7L46", "7E", "6T", "6L46", "6E", "5T", "5L46", "5E", "4T", "4L46", "4E", "3L57", "3E"], + toxic: ["8L40", "7M", "7L40", "6M", "6L40", "5M", "5L37", "4M", "4L37", "3M", "3L45"], + toxicspikes: ["8M", "8L20", "7L28", "6L28", "5L28", "4L28"], + uproar: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + weatherball: ["8M"], + worryseed: ["8L1", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["absorb", "growth", "poisonsting"], pokeball: "pokeball"}, + {generation: 3, level: 22, moves: ["sweetkiss", "magicalleaf", "leechseed", "grasswhistle"]}, + ], + }, + roserade: { + learnset: { + absorb: ["8L1"], + aromatherapy: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigadrain: ["8M", "8L1", "7T", "6T", "5T", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L1", "7L1", "6L1"], + growth: ["8L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + ingrain: ["8L1"], + laserfocus: ["7T"], + leafstorm: ["8M"], + leechseed: ["8L1"], + magicalleaf: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + megadrain: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L1"], + petaldance: ["8L1"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + spikes: ["8M"], + stunspore: ["8L1"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetscent: ["8L1", "7L1", "6L1", "5L1", "4L1"], + swift: ["8M", "4T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["8L1", "7T", "6T", "5T", "4T"], + toxic: ["8L1", "7M", "6M", "5M", "4M"], + toxicspikes: ["8M", "8L1"], + uproar: ["8M"], + venomdrench: ["8M", "8L1", "7L1", "6L1"], + venoshock: ["8M", "7M", "6M", "5M"], + weatherball: ["8M", "7L1", "6L1", "5L1", "4L1"], + worryseed: ["8L1", "7T", "6T", "5T", "4T"], + }, + }, + gulpin: { + learnset: { + acidarmor: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], + acidspray: ["9M", "9L17", "7L17", "6L17", "5L34"], + amnesia: ["9M", "9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L41", "7L41", "6L40"], + bodyslam: ["9M", "3T"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + clearsmog: ["9E"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["9E", "7E", "6E", "5E", "4E"], + defensecurl: ["3T"], + destinybond: ["9E", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + dynamicpunch: ["3T"], + encore: ["9M", "9L20", "7L20", "6L20", "5L23", "4L23", "3L23"], + endure: ["9M", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["9L36", "7T", "7L36", "6T", "6L36", "5T", "5L49", "4T", "4L44"], + gigadrain: ["9M", "7T", "6T", "5T", "5D", "4M", "3M"], + gunkshot: ["9M", "9L49", "7T", "7L49", "7E", "6T", "6L49", "6E", "5T", "5L59", "5E", "4T", "4L54"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "9E", "7E", "6E", "5E", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["9L44", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + poisongas: ["9L8", "7L8", "6L8", "5L9", "5D", "4L9", "3L9"], + poisonjab: ["9M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + selfdestruct: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M", "3S0"], + sing: ["3S0"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludge: ["9L10", "7L10", "6L10", "5L14", "4L14", "3L14", "3S0"], + sludgebomb: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "5L44", "4M", "4L39", "3M", "3L39"], + sludgewave: ["7M", "6M", "5M"], + smog: ["9E", "7E", "6E", "5E", "4E", "3E"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["9L28", "7L28", "6L28", "5L39", "4L34", "3L34"], + stockpile: ["9L28", "7L28", "6L28", "5L39", "4L34", "3L34"], + strength: ["6M", "5M", "4M", "3M"], + stuffcheeks: ["9E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9L28", "7L28", "6L28", "5L39", "4L34", "3L34"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L28", "4M", "4L28", "3M", "3L28", "3S0"], + toxicspikes: ["9M"], + venomdrench: ["7E", "6E"], + venoshock: ["9M", "7M", "6M", "5M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wringout: ["7L44", "6L44", "5L54", "4L49"], + yawn: ["9L5", "7L5", "6L5", "5L6", "4L6", "3L6"], + }, + eventData: [ + {generation: 3, level: 17, moves: ["sing", "shockwave", "sludge", "toxic"]}, + ], + }, + swalot: { + learnset: { + acidspray: ["9M", "9L17", "7L17", "6L17", "5L38"], + amnesia: ["9M", "9L12", "7L12", "6L12", "5L17", "4L17", "3L17"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L49", "7L49", "6L46"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "9L0", "7L1", "6L26", "5L26", "4L26", "3T", "3L26"], + brickbreak: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["3T"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + encore: ["9M", "9L20", "7L20", "6L20", "5L23", "4L23", "3L23"], + endure: ["9M", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + fling: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["9L42", "7T", "7L42", "6T", "6L42", "5T", "5L59", "4T", "4L52"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "9L1", "7T", "7L1", "6T", "6L1", "5T", "5L73", "4T", "4L66"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + painsplit: ["7T", "6T", "5T", "4T"], + poisongas: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poisonjab: ["9M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + selfdestruct: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludge: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sludgebomb: ["9M", "9L37", "7M", "7L37", "6M", "6L37", "5M", "5L52", "4M", "4L45", "3M", "3L48"], + sludgewave: ["7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["9L30", "7L30", "6L30", "5L45", "4L38", "3L40"], + stockpile: ["9L30", "7L30", "6L30", "5L45", "4L38", "3L40"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9L30", "7L30", "6L30", "5L45", "4L38", "3L40"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M"], + toxic: ["9L25", "7M", "7L25", "6M", "6L25", "5M", "5L30", "4M", "4L30", "3M", "3L31"], + toxicspikes: ["9M"], + venomdrench: ["7L1"], + venoshock: ["9M", "7M", "6M", "5M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + wringout: ["7L1", "6L1", "5L66", "4L59"], + yawn: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + zenheadbutt: ["9M"], + }, + }, + carvanha: { + learnset: { + agility: ["8M", "8L36", "7L39", "6L36", "5L36", "4L36", "3L43"], + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E"], + aquajet: ["8L1", "7L11", "6L11", "5L31", "4L31"], + assurance: ["8M", "7L15", "6L15", "5L26", "4L26"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["8L16", "7L1", "6L1", "6S1", "5L1", "5D", "4L1", "3L1", "3S0"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7E", "6E", "5E", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L32", "7L36", "6L28", "5L28", "4L28", "3L22"], + darkpulse: ["8M", "7M", "6M", "5T", "5D", "4M"], + destinybond: ["8E", "7E", "6E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flipturn: ["8T"], + focusenergy: ["8M", "8L8", "7L8", "6L8", "5L8", "4L8", "3L13"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "7E", "6E", "6S1", "5E", "4E", "3E"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L20", "7L25", "6L16", "5L16", "4L16"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + leer: ["8L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8L40"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonfang: ["8L4", "7L32", "6L32"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M", "7E"], + rage: ["7L4", "6L4", "5L6", "4L6", "3L7"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L12", "7L29", "6L11", "5L11", "4L11", "3L16", "3S0"], + screech: ["8M", "8L24", "7L18", "6L18", "5L18", "4L18", "3L28"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L28", "7M", "7L22", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3T", "3L37"], + swift: ["8M", "7E", "6E", "5E", "4T", "3T"], + takedown: ["8L44", "7L43", "6L38", "5L38", "4L38", "3L31"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thrash: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["8E", "7T", "6T", "4M", "3M", "3S0"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 15, moves: ["refresh", "waterpulse", "bite", "scaryface"]}, + {generation: 6, level: 1, isHidden: true, moves: ["leer", "bite", "hydropump"], pokeball: "pokeball"}, + ], + }, + sharpedo: { + learnset: { + agility: ["8M", "8L40", "7L45", "6L45", "5L45", "4L45", "3L53"], + ancientpower: ["4T"], + aquajet: ["8L1", "7L11", "6L11", "6S0", "5L34", "4L34"], + assurance: ["8M", "7L15", "6L15", "5L26", "4L26"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + bite: ["8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L34", "7L40", "6L28", "6S0", "6S1", "5L28", "4L28", "3L22"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + destinybond: ["6S0"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["7L1", "6L1", "5L1", "4L1"], + flipturn: ["8T"], + focusenergy: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icefang: ["8M", "8L20", "7L25", "6L16", "6S0", "5L16", "4L16"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "8L46", "7T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["8L1", "7L1", "6L1", "5L56", "4L56"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonfang: ["8L1", "7L34", "6L34", "6S1"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["8M"], + rage: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L12", "7L29", "6L11", "6S1", "5L11", "4L11", "3L16"], + screech: ["8M", "8L24", "7L18", "6L18", "5L18", "4L18", "3L28"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["7L51", "6L50", "5L50", "4L50", "3L48"], + slash: ["8L0", "7L1", "6L30", "6S1", "5L30", "4L30", "3L33"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L28", "7M", "7L22", "6M", "6L21", "5M", "5L21", "4M", "4L21", "3T", "3L43"], + swift: ["8M", "4T", "3T"], + takedown: ["8L52"], + taunt: ["8M", "7M", "7L56", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L38"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Adamant", isHidden: true, moves: ["aquajet", "crunch", "icefang", "destinybond"], pokeball: "cherishball"}, + {generation: 6, level: 43, gender: "M", perfectIVs: 2, moves: ["scaryface", "slash", "poisonfang", "crunch"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 10}, + ], + }, + wailmer: { + learnset: { + amnesia: ["8M", "8L42", "7L37", "6L37", "5L37", "4L37", "3L46"], + aquaring: ["8E", "7E", "6E", "5E", "4E"], + astonish: ["8L6", "7L16", "6L16", "5L17", "4L17", "3L23"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "8L36", "7E", "6E", "5E", "4E", "3T"], + bounce: ["8M", "8L33", "7T", "7L45", "6T", "6L44", "5T", "5L44", "5D", "4T", "4L44"], + brine: ["8M", "8L24", "7L25", "6L25", "5L31", "4M", "4L31"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + clearsmog: ["7E", "6E"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["8E", "7E", "6E", "5E", "4E", "3T"], + dive: ["8M", "8L30", "7L41", "6M", "6L33", "5M", "5L41", "4T", "4L41", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["8E", "7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L3", "7L4", "6L4", "5L4", "4L4", "3L5"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["8M", "8L21", "7L53", "6L50", "5L50"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "7L49", "6L47", "5L47", "4L47", "3L50"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + mimic: ["3T"], + mist: ["8L15", "7L22", "6L22", "5L24", "4L24", "3L32"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L39", "7M", "7L29", "6M", "6L27", "5M", "5L27", "4M", "4L27", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8E", "7L10", "6L10", "5L11", "4T", "4L11", "3T", "3L14"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M", "4E", "3T", "3E"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T", "3E"], + soak: ["8E", "7E", "6E", "5E"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + thrash: ["8E", "7E", "6E", "5E", "4E", "3E"], + tickle: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L12", "7L7", "6L7", "5L7", "5D", "4L7", "3L10"], + waterpulse: ["8L18", "7T", "7L19", "6T", "6L19", "5L21", "4M", "4L21", "3M", "3L28"], + waterspout: ["8L48", "7L33", "6L34", "5L34", "4L34", "3L41"], + weatherball: ["8M"], + whirlpool: ["8M", "8L27", "7L13", "6L13", "5L14", "4M", "4L14", "3L19"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + wailord: { + learnset: { + amnesia: ["8M", "8L44", "7L37", "6L37", "5L37", "4L37", "3L52", "3S0"], + astonish: ["8L1", "7L16", "6L16", "5L17", "4L17", "3L23"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L36", "3T"], + bounce: ["8M", "8L33", "7T", "7L51", "6T", "6L51", "5T", "5L54", "4T", "4L54"], + brine: ["8M", "8L24", "7L25", "6L29", "5L31", "4M", "4L31"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + defensecurl: ["3T"], + dive: ["8M", "8L30", "7L44", "6M", "6L44", "5M", "5L46", "4T", "4L46", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["8M", "8L21", "7L1", "6L1", "5L70"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L49", "7L58", "6L58", "5L62", "4L62", "3L59", "3S0"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + liquidation: ["8M", "7T"], + mimic: ["3T"], + mist: ["8L15", "7L22", "6L22", "5L24", "4L24", "3L32", "3S1"], + naturalgift: ["4M"], + nobleroar: ["8L1", "7L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L39", "7M", "7L29", "6M", "6L25", "5M", "5L27", "4M", "4L27", "3M", "3L37", "3S0", "3S1"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + soak: ["8L1", "7L1"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L18", "7T", "7L19", "6T", "6L19", "5L21", "4M", "4L21", "3M", "3L28", "3S1"], + waterspout: ["8L54", "7L33", "6L33", "5L34", "4L34", "3L44", "3S0", "3S1"], + weatherball: ["8M"], + whirlpool: ["8M", "8L27", "7L13", "6L13", "5L14", "4M", "4L14", "3L19"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["rest", "waterspout", "amnesia", "hydropump"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["waterpulse", "mist", "rest", "waterspout"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 3, level: 25}, + {generation: 4, level: 35}, + {generation: 5, level: 30}, + {generation: 7, level: 10}, + ], + }, + numel: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L19", "7L19", "6L19", "5L31", "4L25", "3L31"], + ancientpower: ["9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3T", "3E"], + bulldoze: ["9M", "9L12", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M", "3S0"], + confide: ["7M", "6M"], + curse: ["9L29", "7L29", "6L29", "5L29"], + defensecurl: ["9E", "7E", "6E", "5E", "4E", "3T", "3E"], + dig: ["9M", "6M", "5M", "4M", "3M", "3S0"], + doubleedge: ["9L47", "7L47", "6L47", "5L55", "4L51", "3T", "3L49"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L41", "4T", "4L35"], + earthquake: ["9M", "9L40", "7M", "7L40", "6M", "6L40", "5M", "5L45", "4M", "4L41", "3M", "3L35"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5", "3L11", "3S0"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["9M"], + flameburst: ["7L15", "6L15", "5L21"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L51", "4M", "4L45", "3M", "3L41"], + flareblitz: ["9M"], + flashcannon: ["9M"], + focusenergy: ["9L8", "7L8", "6L8", "5L15", "4L15", "3L25"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["9L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], + growth: ["9E", "7E", "6E"], + headbutt: ["4T"], + heatwave: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + heavyslam: ["9M", "9E", "7E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + howl: ["9E", "7E", "6E", "5E", "4E", "3E"], + incinerate: ["9L15", "6M", "5M"], + ironhead: ["9M", "9E", "7T", "7E", "6T", "6E", "6S1", "5T", "5E"], + lavaplume: ["9L22", "7L22", "6L22", "5L35", "4L31"], + magnitude: ["7L12", "6L8", "5L11", "4L11", "3L19"], + mimic: ["3T"], + mudbomb: ["7E", "6E", "5E", "4E"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["9E", "7E", "6E", "5E", "4T", "4E", "3T", "3E"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spitup: ["9E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stockpile: ["9E", "7E", "6E", "5E", "4E"], + stomp: ["9E", "7E", "6E", "5E", "4E", "3E"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["9E", "7E", "6E", "5E", "4E"], + tackle: ["9L1", "7L1", "6L1", "6S1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L31", "7L31", "6L31", "5L25", "4L21", "3L29", "3S0"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9E", "7L36", "7E", "6L36", "6E", "5L36", "5E", "4E"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 14, abilities: ["oblivious"], moves: ["charm", "takedown", "dig", "ember"]}, + {generation: 6, level: 1, moves: ["growl", "tackle", "ironhead"], pokeball: "pokeball"}, + ], + }, + camerupt: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L19", "7L19", "6L19", "5L31", "4L25", "3L31"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bulldoze: ["9M", "9L12", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["9M"], + confide: ["7M", "6M"], + curse: ["9L29", "7L29", "6L29", "6S0", "5L29"], + defensecurl: ["3T"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L49", "4T", "4L39"], + earthquake: ["9M", "9L46", "7M", "7L46", "6M", "6L46", "5M", "5L57", "4M", "4L49", "3M", "3L37"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + endure: ["9M", "4M", "3T"], + eruption: ["9L1", "7L1", "6L1", "5L67", "4L57", "3L45"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["9M"], + fissure: ["9L1", "7L1", "6L1", "5L75", "4L67", "3L55"], + flameburst: ["7L15", "6L15", "5L21"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["9M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "7L1", "6L1", "5L15", "4L15", "3L25"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["9L15", "6M", "5M"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + lavaplume: ["9L22", "7L22", "6L22", "5L33", "4L31"], + magnitude: ["7L12", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "9L0", "7M", "7L1", "6M", "6L33", "6S0", "5M", "5L39", "4M", "4L33", "3T", "3L33"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["3T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L31", "7L31", "6L31", "6S0", "5L25", "4L21", "3L29"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + yawn: ["9L39", "7L39", "6L39", "6S0", "5L39"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 6, level: 43, gender: "M", perfectIVs: 2, abilities: ["solidrock"], moves: ["curse", "takedown", "rockslide", "yawn"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + torkoal: { + learnset: { + afteryou: ["7T", "6T", "5T"], + amnesia: ["9M", "9L52", "8M", "8L52", "7L40", "6L40", "5L49", "4L49", "3L40"], + ancientpower: ["9E", "8E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["9M", "8M", "8S0"], + bodyslam: ["9M", "9L32", "8M", "8L32", "7L27", "6L27", "5L33", "4L33", "3T", "3L20"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + burningjealousy: ["8T", "8S0"], + captivate: ["4M"], + clearsmog: ["9L16", "8L16", "7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["9L44", "8L44", "7L22", "6L12", "5L12", "4L12", "3L7"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M", "4E", "3T", "3E"], + eruption: ["9L64", "8L64", "7E", "6E", "5E", "4E", "3E"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["9M", "8M", "7L13", "6L13", "5L17", "4L17", "3L17"], + fissure: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + flail: ["9E", "8E", "7L42", "6L1", "5L52", "4L52", "3L43"], + flameburst: ["7E", "6E", "5E"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "9L40", "8M", "8L40", "7M", "7L34", "6M", "6L28", "5M", "5L28", "4M", "4L28", "3M", "3L30"], + flamewheel: ["9L20", "8L20", "7L18", "6L18"], + flareblitz: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatcrash: ["8M"], + heatwave: ["9M", "9L48", "8M", "8L48", "7T", "7L45", "6T", "6L1", "5T", "5L55", "4T", "4L55", "3L46"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + inferno: ["9L56", "8L56", "7L50", "6L1", "5L60"], + irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L38", "6T", "6L38", "5T", "5L44", "4T", "4L44", "3L33"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lavaplume: ["9L28", "8L28", "7L25", "6L25", "5L39", "4L39"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "9L24", "8M", "8L24", "8S0", "7M", "7L30", "6M", "6L1", "5M", "5L36", "4M", "4L36", "3M", "3L27"], + rapidspin: ["9L8", "8L8", "7L10", "6L10", "5L23", "4L23"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shellsmash: ["9L60", "8L60", "7L47", "6L1", "5L65"], + skullbash: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "4E", "3T", "3E"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + smog: ["9L1", "8L1", "7L4", "6L4", "5L4", "4L4", "3L4"], + smokescreen: ["9L12", "8L12", "7L15", "6L15", "5L20", "4L20", "3L14"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "7E", "6T", "6E"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + weatherball: ["8M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + withdraw: ["9L4", "8L4", "7L7", "6L7", "5L7", "4L7"], + yawn: ["9E", "8E", "8S0", "7E", "6E", "5E", "4E", "3E"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 8, level: 50, gender: "M", nature: "Bold", abilities: ["drought"], ivs: {hp: 31, atk: 12, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["burningjealousy", "bodypress", "yawn", "protect"], pokeball: "cherishball"}, + ], + }, + spoink: { + learnset: { + allyswitch: ["7T"], + amnesia: ["9M", "9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + bounce: ["9L50", "7T", "7L50", "6T", "6L50", "5T", "5L53", "4T", "4L48", "3L43"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L22", "7L18", "6L18", "5L18", "4L18", "3L25"], + confusion: ["9L7"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + encore: ["9M"], + endure: ["9M", "7E", "6E", "5E", "4M", "3T"], + extrasensory: ["9E", "7E", "6E", "5E", "4E", "3E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9E", "7E", "6E", "5E", "4E", "3E"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L10"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7E", "6E", "5E"], + magiccoat: ["7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L28"], + mimic: ["3T"], + mirrorcoat: ["9E", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + nightshade: ["9M"], + odorsleuth: ["7L10", "6L10", "5L10", "4L10", "3L10"], + payback: ["9L40", "7M", "7L40", "6M", "6L40", "5M", "5L41", "4M", "4L34"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L48", "4L46"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L14", "7L14", "6L14", "5L14", "4L14", "3L16"], + psychic: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "5L46", "4M", "4L41", "3M", "3L34"], + psychicterrain: ["9M"], + psychup: ["9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], + psyshock: ["9M", "9L38", "7M", "7L38", "6M", "6L38", "5M", "5L34"], + psywave: ["7L7", "6L7", "5L7", "5D", "4L7", "3L7"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "5D", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + simplebeam: ["9E", "7E", "6E"], + skillswap: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["9L33", "7T", "7L33", "6T", "6L29", "5T", "5L29", "4T", "4L29", "3T", "3L37"], + snowscape: ["9M"], + splash: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + uproar: ["3S0"], + whirlwind: ["9E", "7E", "6E", "5E"], + zenheadbutt: ["9M", "9E", "7T", "7L26", "7E", "6T", "6L26", "6E", "5T", "5L26", "5E", "4T", "4L26", "4E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["owntempo"], moves: ["splash", "uproar"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + grumpig: { + learnset: { + allyswitch: ["7T"], + amnesia: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L1", "7L1"], + bodypress: ["9M"], + bodyslam: ["9M", "3T"], + bounce: ["9L60", "7T", "7L60", "6T", "6L60", "5T", "5L68", "4T", "4L60", "3L55"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L22", "7L18", "6L18", "5L18", "4L18", "3L25"], + confusion: ["9L1"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + earthpower: ["9M"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["9M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M", "3M"], + lowkick: ["9M"], + lowsweep: ["9M"], + magiccoat: ["7T", "7L21", "6T", "6L21", "5T", "5L21", "4T", "4L21", "3L28"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["9M"], + mimic: ["3T"], + mudshot: ["9M"], + mudslap: ["9M", "4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightshade: ["9M"], + odorsleuth: ["7L1", "6L1", "5L1", "4L1", "3L1"], + payback: ["9L46", "7M", "7L46", "6M", "6L46", "5M", "5L47", "4M", "4L37"], + powergem: ["9M", "9L29", "7L29", "6L29", "5L60", "4L55"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + psychic: ["9M", "9L52", "7M", "7L52", "6M", "6L52", "5M", "5L55", "4M", "4L47", "3M", "3L37"], + psychicterrain: ["9M"], + psychup: ["9L18", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3T", "3L19"], + psyshock: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L37"], + psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L35", "7M", "7L35", "6M", "6L29", "5M", "5L29", "4M", "4L29", "3M", "3L43"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["9L35", "7T", "7L35", "6T", "6L29", "5T", "5L29", "4T", "4L29", "3T", "3L43"], + snowscape: ["9M"], + splash: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + teeterdance: ["9L0", "7L1", "6L32"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M", "9L26", "7T", "7L26", "6T", "6L26", "5T", "5L26", "4T", "4L26"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + spinda: { + learnset: { + assist: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7E", "6E", "5E", "4E", "3E"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + copycat: ["7L5", "6L5", "5L10", "5D", "4L10"], + counter: ["3T"], + covet: ["7T", "6T", "5T"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + disable: ["7E", "6E", "5E", "4E", "3E"], + dizzypunch: ["7L23", "6L23", "5L28", "4L28", "3L27"], + doubleedge: ["7L46", "6L46", "5L46", "4L46", "3T", "3L45"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + encore: ["7E", "6E", "5E", "4E", "3E"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7E", "6E", "5E", "5D", "4E"], + faketears: ["7E", "6E", "5E"], + feintattack: ["7L10", "6L10", "5L14", "4L14", "3L12"], + firepunch: ["7T", "6T", "5T", "4T", "3T"], + flail: ["7L50", "6L50", "5L50", "4L50", "3L49"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + guardsplit: ["7E", "6E"], + headbutt: ["4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T"], + hypnosis: ["7L19", "6L19", "5L23", "4L23", "3L23"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + icywind: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "3T"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psybeam: ["7L14", "6L14", "5L19", "4L19", "3L16"], + psychic: ["7M", "6M", "5M", "4M", "3M"], + psychocut: ["7E", "6E", "5E", "4E"], + psychoshift: ["7E", "6E"], + psychup: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41", "3T", "3L38"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rapidspin: ["7E", "6E", "5E"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sing: ["3S0"], + skillswap: ["7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E", "3E"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spotlight: ["7E"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L28", "6L28", "5L32", "4T", "4L32"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + superpower: ["5D"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + teeterdance: ["7L32", "6L32", "5L37", "4L37", "3L34"], + thief: ["7M", "6M", "5M", "4M", "3M"], + thrash: ["7L55", "6L50", "5L55", "4L55", "3L56"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "7E", "6T", "6E", "5T", "5E", "4E", "3E"], + trickroom: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "7L37", "6T", "6L5", "5T", "5L5", "4T", "4L5", "3L5", "3S0"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + wildcharge: ["7M", "6M", "5M"], + wish: ["7E", "6E", "5E", "4E", "3E"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["tackle", "uproar", "sing"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + trapinch: { + learnset: { + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bide: ["7L1", "6L1", "5L17"], + bite: ["8L8", "7L1", "6L1", "5L1", "5D", "5S0", "4L1", "3L1"], + bodyslam: ["8M", "3T"], + bugbite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + bulldoze: ["8M", "8L20", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L28", "7L22", "6L22", "5L33", "4L33", "3L33"], + dig: ["8M", "8L24", "7L19", "6M", "6L19", "5M", "5L41", "4M", "4L41", "3M", "3L41"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "8L36", "7T", "7L26", "7E", "6T", "6L26", "6E", "5T", "5L65", "5E", "4T", "4L65"], + earthquake: ["8M", "8L40", "7M", "7L33", "6M", "6L33", "5M", "5L73", "4M", "4L73", "3M"], + endure: ["8M", "7E", "6E", "5E", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8E", "7L29", "6L1", "5L81", "4L81"], + feintattack: ["7L1", "6L1", "5L17", "4L17", "3L17"], + firstimpression: ["8E"], + fissure: ["8L48", "7L47", "6L1", "5L89", "4L89"], + flail: ["8E", "7E", "6E", "5E", "4E"], + focusenergy: ["8M", "7E", "6E", "5E", "4E", "3E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8E", "7E", "6E", "5E", "4T", "4E"], + gigadrain: ["8M", "7T", "6T", "5T", "5D", "4M", "3M"], + gust: ["8E", "7E", "6E", "5E", "4E", "3E"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L57"], + laserfocus: ["8L4"], + mimic: ["3T"], + mudshot: ["8M", "7E", "6E", "5E", "4E"], + mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + quickattack: ["8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L9"], + sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L49"], + sandtomb: ["8M", "8L16", "7L12", "6L10", "5L25", "4L25", "3L25"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "5D"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L44", "7T", "7L40", "6T", "6L1", "5T", "5L67"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["bite"], pokeball: "pokeball"}, + ], + }, + vibrava: { + learnset: { + aircutter: ["4T"], + airslash: ["8M"], + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bide: ["7L1", "6L1", "5L17"], + bite: ["8L1", "3L1"], + bodyslam: ["8M", "3T"], + boomburst: ["8L62", "7L47", "6L47"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["8M", "8L28", "7L29", "6L29"], + bulldoze: ["8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "3L33"], + defog: ["7T", "4M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["8L0", "7L1", "6L35", "5L35", "4L35", "3L35"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragonrush: ["8L56"], + dragontail: ["8L20"], + dualwingbeat: ["8T"], + earthpower: ["8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], + earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], + fissure: ["8L1"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L57"], + laserfocus: ["8L1"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L49"], + sandtomb: ["8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "7L22", "6L22", "5L41", "4L41", "3L41"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L1", "7T", "6T", "5T"], + supersonic: ["8L1", "7L19", "6L19", "5L33", "4L33"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "8L50", "7T", "7L40", "6T", "6L40"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + }, + }, + flygon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + aircutter: ["4T"], + airslash: ["8M"], + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bide: ["7L1", "6L1", "5L17"], + bite: ["8L1", "3L1"], + bodyslam: ["8M", "3T"], + boomburst: ["8L68"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["8M", "8L28"], + bulldoze: ["8M", "8L1", "7M", "7L8", "6M", "6L8", "5M", "5L21"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "3L33", "3S0"], + defog: ["7T", "4M"], + dig: ["8M", "8L1", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "6T", "5T", "4T", "4S1"], + dragonbreath: ["8L1", "7L1", "6L35", "5L35", "4L35", "3L35", "3S0"], + dragonclaw: ["8M", "8L0", "7M", "7L1", "6M", "6L45", "5M", "5L45", "4M", "4L45", "4S1", "3M"], + dragondance: ["8M", "8L1", "7L1"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragonrush: ["8L60", "7L47", "6L47"], + dragontail: ["8L20", "7M", "7L29", "6M", "6L29", "5M", "5L65"], + dualwingbeat: ["8T"], + earthpower: ["8M", "8L38", "7T", "7L26", "6T", "6L26", "5T", "5L39", "4T"], + earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "4M", "4S1", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feint: ["8L1"], + feintattack: ["7L1", "6L1", "5L1", "4L1", "3L1"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + firespin: ["8M"], + fissure: ["8L1"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["8M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatwave: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L57", "4M", "4L57", "3M", "3L65"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["8L1", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["8L12", "7L5", "6L5", "5L13", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L25", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + sandstorm: ["8M", "8L32", "7M", "7L36", "6M", "6L36", "5M", "5L49", "4M", "4L49", "3M", "3L53"], + sandtomb: ["8M", "8L16", "7L12", "6L1", "5L1", "4L1", "3L1", "3S0"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + screech: ["8M", "8L24", "7L22", "6L22", "5L41", "4L41", "3L41", "3S0"], + secretpower: ["6M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L1", "7T", "6T", "5T"], + supersonic: ["8L1", "7L19", "6L19", "5L33", "4L33"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tailwind: ["7T", "6T", "5T", "4T"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + uproar: ["8M", "8L52", "7T", "7L40", "6T", "6L40"], + uturn: ["8M", "7M", "6M", "5M", "4M", "4S1"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["sandtomb", "crunch", "dragonbreath", "screech"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "M", nature: "Naive", moves: ["dracometeor", "uturn", "earthquake", "dragonclaw"], pokeball: "cherishball"}, + ], + }, + cacnea: { + learnset: { + absorb: ["9L4", "7L4", "6L4", "5L5", "5D", "4L5", "3L5", "3S0"], + acid: ["7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["7E", "6E"], + block: ["7T", "7E", "6T", "6E", "5T", "5E"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["9L46", "7L46", "6L46", "5L49", "4L49", "3L41"], + counter: ["7E", "6E", "5E", "4E", "3T", "3E"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + destinybond: ["9L54", "7L54", "6L54", "5L57", "4L57", "3L49"], + dig: ["9M"], + disable: ["7E", "6E", "5E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["7E", "6E", "5E", "4E", "3T", "3E"], + encore: ["9M", "3S0"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L29", "4L29", "3L29"], + fellstinger: ["7E", "6E"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E", "4E", "3E"], + grassyterrain: ["9M"], + growth: ["9L7", "7L7", "6L7", "5L9", "4L9", "3L9"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + ingrain: ["9L22", "7L22", "6L22", "5L25", "4L25", "3L25"], + leafstorm: ["9M"], + leechseed: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + lowkick: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + magicalleaf: ["9M", "7E", "6E", "5E", "4E"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M", "7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + needlearm: ["7L16", "6L16", "5L45", "4L45", "3L37"], + payback: ["9L26", "7M", "7L26", "6M", "6L26", "5M", "5L41", "4M", "4L41"], + pinmissile: ["9L38", "7L38", "6L21", "5L21", "4L21", "3L21"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + powertrip: ["9L19"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rototiller: ["7E", "6E"], + round: ["7M", "6M", "5M"], + sandattack: ["9L13", "7L13", "6L13", "5L17", "4L17", "3L17"], + sandstorm: ["9M", "9L50", "7M", "7L50", "6M", "6L50", "5M", "5L53", "4M", "4L53", "3M", "3L45"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + seismictoss: ["3T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + smellingsalts: ["7E", "6E", "5E", "4E"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L30", "7L30", "6L30", "5L33", "4L33", "3L33"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L34", "7L34", "6L34", "5L37", "4T", "4L37"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + switcheroo: ["7E", "6E", "5E"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + teeterdance: ["7E", "6E", "5E", "5D", "4E", "3E"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["poisonsting", "leer", "absorb", "encore"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + cacturne: { + learnset: { + absorb: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonspore: ["9L49", "7L49", "6L49", "5L59", "4L59", "3L47"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + destinybond: ["9L1", "7L1", "6L1", "5L71", "4L71", "3L59"], + dig: ["9M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["9M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L29", "4L29", "3L29", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + ingrain: ["9L22", "7L22", "6L22", "5L25", "4L25", "3L25", "3S0"], + leafstorm: ["9M"], + leechseed: ["9L10", "7L10", "6L10", "5L13", "4L13", "3L13"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + magicalleaf: ["9M"], + megakick: ["3T"], + megapunch: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + needlearm: ["7L16", "6L16", "5L53", "4L53", "3L41", "3S0"], + payback: ["9L26", "7M", "7L26", "6M", "6L26", "5M", "5L47", "4M", "4L47"], + pinmissile: ["9L38", "7L38", "6L21", "5L21", "4L21", "3L21"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + poisonsting: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + powertrip: ["9L19"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["7L1", "6L1", "5L1", "4L1", "3L1"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + sandattack: ["9L13", "7L13", "6L13", "5L17", "4L17", "3L17"], + sandstorm: ["9M", "9L54", "7M", "7L54", "6M", "6L54", "5M", "5L65", "4M", "4L65", "3M", "3L53"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + seismictoss: ["3T"], + shadowball: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + spikes: ["9M", "9L30", "7L30", "6L30", "5L35", "4L35", "3L35", "3S0"], + spikyshield: ["9L0", "7L1", "6L32"], + spite: ["7T", "6T", "5T", "4T"], + stompingtantrum: ["9M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L35", "7L35", "6L35", "5L41", "4T", "4L41"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venoshock: ["9M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["ingrain", "feintattack", "spikes", "needlearm"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + swablu: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + aircutter: ["4T"], + astonish: ["9E", "8E", "7L3", "6L3", "5L5", "4L5", "3L8"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bravebird: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L40"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defog: ["9E", "8E", "7T"], + disarmingvoice: ["9M", "9L4", "8L4", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonbreath: ["9L20", "8L20"], + dragonpulse: ["9M", "8M", "7T", "7L38", "6T", "6L38", "5T", "5L50", "4M", "4L45"], + dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "3S0"], + featherdance: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyattack: ["9L12", "8L12", "7L7", "6L7", "5L13", "4L13", "3L18"], + growl: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5S1", "4L1", "3L1", "3S0"], + haze: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + healbell: ["7T", "6T", "5T", "4T"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hypervoice: ["9M", "8M", "7T", "7E", "6T", "6E", "6S2", "5T", "5E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + mirrormove: ["7L30", "6L30", "5L36", "4L36", "3L38"], + mist: ["9L8", "8L8", "7L14", "6L14", "5L23", "4L23", "3L28"], + moonblast: ["9L40", "8L40", "7L46", "6L46"], + mudslap: ["4T", "3T"], + naturalgift: ["7L20", "6L20", "5L32", "4M", "4L32"], + ominouswind: ["4T"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + peck: ["9L1", "8L1", "7L1", "6L1", "6S2", "5L1", "5D", "5S1", "4L1", "3L1", "3S0"], + perishsong: ["9L44", "8L44", "7L42", "6L42", "5L55", "4L50", "3L48"], + playrough: ["9M", "8M", "7E"], + pluck: ["5M", "4M"], + powerswap: ["8M", "7E", "6E", "5E", "4E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7E", "6E", "5E", "4E", "3E"], + rage: ["7E", "6E", "5E", "4E", "3E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L26", "6L26", "5L45", "4L40", "3L41"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roost: ["9E", "8E", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M"], + round: ["9L16", "8M", "8L16", "7M", "7L17", "6M", "6L17", "5M", "5L18"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L18", "4M", "4L18", "3M", "3L21"], + secretpower: ["6M", "4M", "3M"], + sing: ["9L28", "8L28", "7L5", "6L5", "5L9", "4L9", "3L11"], + skyattack: ["7T", "6T", "3T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "9E", "8E", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L36", "8L36", "7L23", "6L23", "5L28", "4L28", "3L31"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["peck", "growl", "falseswipe"], pokeball: "pokeball", emeraldEventEgg: true}, + {generation: 5, level: 1, shiny: true, moves: ["peck", "growl"], pokeball: "pokeball"}, + {generation: 6, level: 1, isHidden: true, moves: ["peck", "growl", "hypervoice"], pokeball: "pokeball"}, + ], + }, + altaria: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M", "3S1"], + agility: ["9M", "8M", "6S3"], + aircutter: ["4T"], + astonish: ["7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + bravebird: ["9M"], + breakingswipe: ["8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cottonguard: ["9L32", "8L32", "7L34", "6L34", "5L46"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defog: ["7T"], + disarmingvoice: ["9M", "9L1", "8L1", "7L11", "6L11"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L20", "8L20", "7L1", "6L35", "5L35", "5S2", "4L35", "3L35", "3S0", "3S1"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M", "7L30", "6L30", "5L39", "4L39", "3L40", "3S0"], + dragonpulse: ["9M", "9L0", "8M", "8L0", "7T", "7L40", "6T", "6L40", "5T", "5L62", "4M", "4L54"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "5S2"], + fireblast: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furyattack: ["9L12", "8L12", "7L7", "6L7", "5L13", "4L13", "3L18"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + healbell: ["7T", "6T", "5T", "4T", "3S1"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "6S3", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + mimic: ["3T"], + mist: ["9L1", "8L1", "7L14", "6L14", "5L23", "4L23", "3L28"], + moonblast: ["9L44", "8L44", "7L52", "6L52"], + mudslap: ["4T", "3T"], + naturalgift: ["7L20", "6L20", "5L32", "5S2", "4M", "4L32"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + peck: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + perishsong: ["9L50", "8L50", "7L46", "6L46", "5L70", "4L62", "3L54"], + playrough: ["9M", "8M"], + pluck: ["9L1", "8L1", "7L1", "6L1", "5M", "5L1", "4M", "4L1"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "6S3", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L26", "6L26", "5L54", "4L46", "3L45", "3S0"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["9L16", "8M", "8L16", "7M", "7L17", "6M", "6L17", "5M", "5L18"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L9", "6M", "6L9", "5M", "5L18", "4M", "4L18", "3M", "3L21"], + secretpower: ["6M", "4M", "3M"], + sing: ["9L28", "8L28", "7L1", "6L1", "5L1", "4L1", "3L1"], + skyattack: ["9L56", "8L56", "7T", "7L1", "6T", "6L1", "5T", "5L77", "4T", "4L70", "3T", "3L59"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L38", "8L38", "7L23", "6L23", "5L28", "5S2", "4L28", "3L31", "3S0"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + twister: ["4T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["9M"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["takedown", "dragonbreath", "dragondance", "refresh"], pokeball: "pokeball"}, + {generation: 3, level: 36, moves: ["healbell", "dragonbreath", "solarbeam", "aerialace"]}, + {generation: 5, level: 35, gender: "M", isHidden: true, moves: ["takedown", "naturalgift", "dragonbreath", "falseswipe"]}, + {generation: 6, level: 100, nature: "Modest", isHidden: true, moves: ["hypervoice", "fireblast", "protect", "agility"], pokeball: "cherishball"}, + ], + }, + zangoose: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + agility: ["9M"], + attract: ["7M", "6M", "5M", "4M", "3M"], + aurasphere: ["9M"], + batonpass: ["9M"], + bellydrum: ["9L1", "7E"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "3T"], + brickbreak: ["9M", "7M", "6M", "5M", "4M", "3M", "3S2"], + captivate: ["4M"], + closecombat: ["9M", "9L50", "7L50", "6L47", "5L53", "4L53"], + confide: ["7M", "6M"], + counter: ["9L1", "7E", "6E", "5E", "4E", "3T", "3E", "3S2"], + crushclaw: ["9L26", "7L26", "6L22", "5L31", "4L31", "3L31", "3S2"], + curse: ["9L1", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["3T"], + detect: ["9L36", "7L36", "6L33", "5L40", "4L40", "3L46"], + dig: ["9M", "6M", "5M", "4M", "3M"], + disable: ["9L1", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doublehit: ["9L1", "7E", "6E", "5E", "5D", "4E"], + doublekick: ["9L1", "7E", "6E", "5E", "4E", "3E"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + embargo: ["7M", "7L33", "6M", "6L19", "5M", "5L27", "4M", "4L27"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["9M", "9L29", "7M", "7L29", "6M", "6L29", "5M", "5L44", "4M", "4L44", "3L55"], + feint: ["9L1", "7E", "6E", "5E"], + finalgambit: ["9L1", "7E", "6E", "5E"], + fireblast: ["9M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + flail: ["9L1", "7E", "6E", "5E", "4E", "3E"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["9L8", "7L8", "6L8", "5L14", "4T", "4L14", "3T", "3L13", "3S0"], + furyswipes: ["9L1", "7E", "6E", "5E", "4E"], + gigadrain: ["7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gunkshot: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["9L15", "7L15", "6M", "6L15", "5M"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L4", "3S0", "3S1"], + lowkick: ["9M", "7T", "6T", "5T", "5D", "4T"], + lowsweep: ["9M"], + megakick: ["3T"], + megapunch: ["3T"], + metalclaw: ["9M", "9L12", "7E", "6E", "5E", "4E"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9L1", "7E", "6E", "5E", "4E"], + payback: ["7M", "6M", "5M", "4M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powertrip: ["9L22"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + pursuit: ["7L12", "6L12", "5L22", "4L22", "3L25"], + quickattack: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5", "3L7", "3S0", "3S1"], + quickguard: ["9L1", "7E", "6E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7E", "6E", "5E", "4E", "3E"], + refresh: ["3S2"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["7L22", "6L22", "5L26"], + reversal: ["9M"], + roar: ["7M", "6M", "5M", "4M", "4E", "3M", "3E"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + seismictoss: ["3T"], + shadowball: ["9M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["9L19", "7L19", "6L15", "5L18", "4L18", "3L19"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "4T", "3T"], + switcheroo: ["9L33"], + swordsdance: ["9M", "9L47", "7M", "7L47", "6M", "6L43", "5M", "5L9", "4M", "4L9", "3T", "3L10", "3S0", "3S1"], + takedown: ["9M"], + taunt: ["9M", "9L43", "7M", "7L43", "6M", "6L40", "5M", "5L35", "4M", "4L35", "3M", "3L37"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + workup: ["7M", "5M"], + xscissor: ["9M", "9L40", "7M", "7L40", "6M", "6L36", "5M", "5L48", "4M", "4L48"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 18, moves: ["leer", "quickattack", "swordsdance", "furycutter"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["scratch", "leer", "quickattack", "swordsdance"], pokeball: "pokeball"}, + {generation: 3, level: 28, moves: ["refresh", "brickbreak", "counter", "crushclaw"]}, + ], + }, + seviper: { + learnset: { + acidspray: ["9M"], + aquatail: ["7T", "6T", "5T", "5D", "4T"], + assurance: ["9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + belch: ["9L41", "7L41", "6L43"], + bind: ["7T", "6T", "5T"], + bite: ["9L4", "7L4", "6L4", "5L10", "5D", "4L10", "3L10", "3S0", "3S2"], + bodyslam: ["9M", "9E", "7E", "6E", "5E", "5D", "4E", "3T", "3E"], + brickbreak: ["9M"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M", "6M", "5M"], + captivate: ["4M"], + coil: ["9L44", "7L44", "6L46", "5L64"], + confide: ["7M", "6M"], + crunch: ["9M", "9L39", "7L39", "6L40", "5L28", "4L28", "3L28", "3S1"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dig: ["9M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragontail: ["7M", "6M", "5M"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feint: ["9L11", "7L11"], + finalgambit: ["9E", "7E", "6E", "5E"], + firefang: ["9M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gastroacid: ["9L29", "7T", "7L29", "6T", "6L31", "5T", "5L34"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M"], + glare: ["9L19", "7L19", "6L19", "5L25", "4L25", "3L25", "3S1"], + gunkshot: ["9M"], + haze: ["9L34", "7L34", "6L37", "5L43", "4L43", "3L43"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M"], + icefang: ["9M"], + infestation: ["7M", "6M"], + ironhead: ["9M"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lick: ["9L6", "7L6", "6L7", "5L7", "4L7", "3L7", "3S0", "3S2"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightslash: ["9E", "7L26", "7E", "6L28", "6E", "5L46", "5E", "4L46", "4E"], + payback: ["7M", "6M", "5M", "4M"], + poisonfang: ["9L21", "7L21", "6L22", "5L34", "4L34", "3L34"], + poisonjab: ["9M", "9L31", "7M", "7L31", "6M", "6L34", "5M", "5L52", "4M", "4L52"], + poisontail: ["9M", "9L9", "7L9", "6L10", "5L16", "4L16", "3L16", "3S0", "3S1"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychicfangs: ["9M"], + punishment: ["7E", "6E", "5E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + reversal: ["9M"], + rocksmash: ["6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M", "9E", "7E", "6E", "5E", "4E"], + screech: ["9L14", "7L14", "6L13", "5L19", "4L19", "3L19", "3S1"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["9M", "9L46", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["7M", "6M", "5M"], + snarl: ["9M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + spitup: ["9E", "7E", "6E", "5E", "4E", "3E"], + stockpile: ["9E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["9L1", "7M", "7L1", "6M", "6L1", "5M", "5L37", "4M", "4L37", "3T", "3L37"], + swallow: ["9E", "7E", "6E", "5E", "4E", "3E"], + swift: ["4T", "3T"], + switcheroo: ["9E", "7E", "6E", "5E", "4E"], + swordsdance: ["9M", "7M", "7L36"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + venomdrench: ["7L24", "6L25"], + venoshock: ["9M", "9L24", "7M", "7L16", "6M", "6L16", "5M", "5L55"], + wrap: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S2"], + wringout: ["7L46", "7E", "6L49", "6E", "5L61", "5E", "4L55"], + xscissor: ["9M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 18, moves: ["wrap", "lick", "bite", "poisontail"], pokeball: "pokeball"}, + {generation: 3, level: 30, moves: ["poisontail", "screech", "glare", "crunch"], pokeball: "pokeball"}, + {generation: 3, level: 10, gender: "M", moves: ["wrap", "lick", "bite"], pokeball: "pokeball"}, + ], + }, + lunatone: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + batonpass: ["8M", "3S1"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L7", "3S0"], + cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L34", "4L34", "3L31"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L31", "4M", "4L31"], + endure: ["8M", "4M", "3T"], + explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L56", "4M", "4L56", "3T", "3L49"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L40", "7L41", "6L41", "5L53", "4L53", "3L43"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + healblock: ["7L33", "6L33", "5L42", "4L42"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7S2", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypnosis: ["8L5", "7L5", "6L5", "5L12", "4L12", "3L19"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L64"], + meteorbeam: ["8T"], + mimic: ["3T"], + moonblast: ["8L1", "7L1", "7S2", "6L1"], + moonlight: ["8L1", "5D"], + nastyplot: ["8M"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powergem: ["8M", "7L1", "7S2"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L30", "7M", "7L29", "6M", "6L29", "5M", "5L45", "4M", "4L45", "3M", "3L37", "3S1"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "8L20", "7M", "7L1", "6M", "5M"], + psywave: ["7L13", "6L13", "5L23", "4L23", "3L25"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L20", "4M", "4L20"], + rockslide: ["8M", "8L15", "7M", "7L21", "6M", "6L21", "5M", "5L25", "4M", "3T"], + rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L13"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L35", "7M", "7L37", "6M", "6L37", "5M", "5L41", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + telekinesis: ["7T", "5M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["tackle", "harden", "confusion"], pokeball: "pokeball"}, + {generation: 3, level: 25, moves: ["batonpass", "psychic", "raindance", "rocktomb"]}, + {generation: 7, level: 30, moves: ["cosmicpower", "hiddenpower", "moonblast", "powergem"], pokeball: "cherishball"}, + ], + }, + solrock: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + batonpass: ["8M", "3S1"], + bodyslam: ["8M", "3T"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L7", "3S0"], + cosmicpower: ["8M", "8L25", "7L25", "7S2", "6L25", "5L34", "4L34", "3L31", "3S1"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "7L17", "6M", "6L17", "5M", "5L31", "4M", "4L31"], + endure: ["8M", "4M", "3T"], + explosion: ["8L50", "7M", "7L45", "6M", "6L45", "5M", "5L56", "4M", "4L56", "3T", "3L49"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + firespin: ["8M", "7L5", "6L5", "5L12", "4L12", "3L19"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flareblitz: ["8M", "8L1", "7L1"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + healblock: ["7L33", "6L33", "5L42", "4L42"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "7S2", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + hypnosis: ["8L5"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + meteorbeam: ["8T"], + mimic: ["3T"], + morningsun: ["8L1", "5D"], + naturalgift: ["4M"], + overheat: ["8M", "7M", "6M", "5M", "4M", "3M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L30", "7M", "7L29", "6M", "6L29", "5M", "5L33", "4M", "3M", "3S1"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L13", "6L13", "5L23", "4L23", "3L25"], + raindance: ["8M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["8L10", "7M", "7L9", "6M", "6L9", "5M", "5L20", "4M", "4L20"], + rockslide: ["8M", "8L15", "7M", "7L21", "6M", "6L21", "5M", "5L45", "4M", "4L45", "3T", "3L37"], + rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "3L13"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "8L40", "7M", "7L41", "7S2", "6M", "6L41", "5M", "5L53", "4M", "4L53", "3M", "3L43"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L35", "7M", "7L37", "7S2", "6M", "6L37", "5M", "5L41", "4M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + telekinesis: ["7T", "5M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "8L45", "7T", "7L49", "6T", "6L1", "5T", "5L64"], + zenheadbutt: ["8M", "8L20", "7T", "6T", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 3, level: 10, moves: ["tackle", "harden", "confusion"], pokeball: "pokeball"}, + {generation: 3, level: 41, moves: ["batonpass", "psychic", "sunnyday", "cosmicpower"]}, + {generation: 7, level: 30, moves: ["cosmicpower", "hiddenpower", "solarbeam", "stoneedge"], pokeball: "cherishball"}, + ], + }, + barboach: { + learnset: { + amnesia: ["9M", "9L18", "8M", "8L18", "7L15", "6L15", "5L18", "4L18", "3L21"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L28", "5T", "5L35", "4T", "4L35"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "4E"], + earthpower: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L39", "4M", "4L39", "3M", "3L31"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9L48", "8L48", "7L44", "6L44", "5L47", "4L47", "3L41"], + flail: ["9E", "8E", "7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L42", "8M", "8L42", "7L39", "6L39", "5L43", "4L43", "3L36"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M", "7E", "6E", "5E", "4E"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + liquidation: ["9M"], + magnitude: ["7L20", "6L20", "5L26", "4L26", "3L16"], + mimic: ["3T"], + mudbomb: ["7L13", "6L13", "5L14", "4L14"], + muddywater: ["9L31", "8M", "8L31", "7L35", "7E", "6L35", "6E", "5E"], + mudshot: ["9M", "8M", "7E", "6E", "5E"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4T", "4L1", "3T", "3L1"], + mudsport: ["7L6", "6L6", "5L6", "4L6", "3L6"], + naturalgift: ["4M"], + outrage: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L6", "8M", "8L6", "7M", "7L25", "6M", "6L25", "5M", "5L31", "4M", "4L31", "3M", "3L26"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "5D", "4M", "3T"], + snore: ["9L6", "8M", "8L6", "7T", "7L25", "6T", "6L25", "5T", "5L31", "4T", "4L31", "3T", "3L26"], + spark: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "3E"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L9", "6L9", "5L10", "4L10", "3L11"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L22", "3M"], + watersport: ["7L6", "6L6", "5L6", "4L6", "3L6"], + whirlpool: ["8M", "7E", "6E", "5E", "4M", "4E", "3E"], + zenheadbutt: ["9M"], + }, + }, + whiscash: { + learnset: { + amnesia: ["9M", "9L18", "8M", "8L18", "7L15", "6L15", "5L18", "4L18", "3L21"], + aquatail: ["9L24", "8L24", "7T", "7L28", "6T", "6L28", "5T", "5L39", "4T", "4L39", "4S0"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + belch: ["9L1", "8L1", "7L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "8M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L34", "6M", "6L34", "5M", "5L45", "4M", "4L45", "4S0", "3M", "3L36"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["9L56", "8L56", "7L52", "6L52", "5L57", "4L57", "3L56"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["9L48", "8M", "8L48", "7L45", "6L45", "5L51", "4L51", "3L46"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + liquidation: ["9M", "8M"], + magnitude: ["7L20", "6L20", "5L26", "4L26", "3L16"], + mimic: ["3T"], + mudbomb: ["7L13", "6L13", "5L14", "4L14"], + muddywater: ["9L33", "8M", "8L33", "7L39", "6L39"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1", "3T", "3L1"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + outrage: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3M", "3L26"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + scald: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["9L1", "8M", "8L1", "7T", "7L25", "6T", "6L25", "5T", "5L33", "4T", "4L33", "3T", "3L26"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L0", "8L0", "7L1"], + tickle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L10", "4L10", "3L11"], + waterpulse: ["9M", "9L12", "8L12", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L22", "3M"], + watersport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + weatherball: ["8M"], + whirlpool: ["8M", "4M"], + zenheadbutt: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "4S0"], + }, + eventData: [ + {generation: 4, level: 51, gender: "F", nature: "Gentle", abilities: ["oblivious"], moves: ["earthquake", "aquatail", "zenheadbutt", "gigaimpact"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 10}, + {generation: 7, level: 10}, + ], + }, + corphish: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8E", "7E", "6E", "5E", "4T", "4E", "3E"], + aquajet: ["8E", "7E", "6E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "7E", "6E", "5E", "4E", "3T", "3E"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + bubblebeam: ["8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], + captivate: ["4M"], + chipaway: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["3T"], + crabhammer: ["8L44", "7L43", "6L38", "5L38", "4L38", "3L34"], + crunch: ["8M", "8L40", "7L39", "6L39", "5L47", "4L47", "3L43"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["8E", "7E", "6E", "5E", "3T"], + doublehit: ["8L20", "7L20", "6L20"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M", "7E", "6E", "5E", "4E"], + endeavor: ["8L48", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + guillotine: ["8L52", "7L48", "6L48", "5L53", "4L53", "3L44"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "7L5", "6L5", "5L7", "5D", "4L7", "3L7"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8L16", "7T", "7L23", "7E", "6T", "6L23", "6E", "5T", "5L26", "5E", "4T", "4L26", "4E", "3L25"], + leer: ["8L4", "7L10", "6L10", "5L13", "4L13", "3L13"], + metalclaw: ["8E", "7E", "6E", "5E", "5D", "4E"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + nightslash: ["8L28", "7L26", "6L26", "5L35", "4L35"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorshell: ["8M", "8L32", "7L31", "6L31"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + slash: ["8E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + switcheroo: ["8E", "7E", "6E"], + swordsdance: ["8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L44", "4M", "4L44", "3T", "3L37"], + taunt: ["8M", "8L8", "7M", "7L34", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3M", "3L31"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trumpcard: ["7E", "6E", "5E"], + visegrip: ["7L7", "6L7", "5L10", "4L10", "3L10"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["3S0"], + whirlpool: ["8M", "4M"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["bubble", "watersport"], pokeball: "pokeball", emeraldEventEgg: true}, + ], + }, + crawdaunt: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bubble: ["7L1", "6L1", "5L1", "4L1", "3L1"], + bubblebeam: ["8L12", "7L14", "6L14", "5L20", "4L20", "3L19"], + captivate: ["4M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + counter: ["3T"], + crabhammer: ["8L52", "7L48", "6L44", "5L44", "4L44", "3L38", "3S0", "3S1"], + crunch: ["8M", "8L46", "7L43", "6L43", "5L57", "4L57", "3L51"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doublehit: ["8L20", "7L20", "6L20"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + endeavor: ["8L58", "7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + guillotine: ["8L64", "7L54", "6L1", "5L65", "4L65", "3L52", "3S0"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + knockoff: ["8L16", "7T", "7L23", "6T", "6L23", "5T", "5L26", "4T", "4L26", "3L25", "3S1"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + liquidation: ["8M", "7T"], + mimic: ["3T"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + nastyplot: ["8M"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + nightslash: ["8L28", "7L26", "6L26", "5L39", "4L39"], + payback: ["8M", "7M", "6M", "5M", "4M"], + protect: ["8M", "8L24", "7M", "7L17", "6M", "6L17", "5M", "5L23", "4M", "4L23", "3M", "3L22"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorshell: ["8M", "8L34", "7L32", "6L32"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L0", "7L1", "6L30", "5L30", "4T", "4L30", "3T"], + swordsdance: ["8M", "8L40", "7M", "7L40", "6M", "6L40", "5M", "5L52", "4M", "4L52", "3T", "3L43", "3S0", "3S1"], + taunt: ["8M", "8L1", "7M", "7L36", "6M", "6L34", "5M", "5L34", "4M", "4L34", "3M", "3L33", "3S0", "3S1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + visegrip: ["7L1", "6L1", "5L1", "4L1", "3L1"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 3, level: 100, moves: ["taunt", "crabhammer", "swordsdance", "guillotine"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["knockoff", "taunt", "crabhammer", "swordsdance"], pokeball: "pokeball"}, + ], + encounters: [ + {generation: 7, level: 10}, + ], + }, + baltoy: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + ancientpower: ["8L18", "7L19", "6L19", "5L26", "4T", "4L25", "3L25"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L6", "7L1", "6L1", "5L1", "4L1", "3L1"], + cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L37", "4L45", "3L37"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + drillrun: ["8M", "7T", "6T", "5T"], + earthpower: ["8M", "8L30", "7T", "7L37", "6T", "6L37", "5T", "5L51", "4T", "4L53"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["8L42", "7M", "7L46", "6M", "6L46", "5M", "5L60", "4M", "4L71", "3T", "3L45"], + extrasensory: ["8L27", "7L31", "6L28", "5L43"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "5D", "4T"], + guardsplit: ["8L36", "7L34", "6L34", "5L48"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L4", "4L3", "3L3"], + headbutt: ["4T"], + healblock: ["7L10", "6L10", "5L54", "4L61"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + imprison: ["8M", "8L21", "7L43", "6L43"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["8L1", "7L7", "6L7", "5L11", "4T", "4L7", "3T", "3L7", "3S0"], + naturalgift: ["4M"], + powersplit: ["8L36", "7L34", "6L34", "5L48"], + powerswap: ["8M"], + powertrick: ["8L12", "7L25", "6L17", "5L31", "4L31"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["8L15", "7L16", "6L13", "5L15", "4L11", "3L11", "3S0"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8L3", "7L4", "6L4", "5L7", "5D", "4L5", "3L5"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L18", "4M", "4L15", "3M", "3L15", "3S0"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["8M", "8L39", "7M", "7L40", "6M", "6L40", "5M", "5L34", "4M", "4L37", "3M", "3L31"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8L33", "7L28", "6L25", "5L21", "4L19", "3T", "3L19"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + telekinesis: ["7T", "5M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 3, level: 17, moves: ["refresh", "rocktomb", "mudslap", "psybeam"]}, + ], + }, + claydol: { + learnset: { + allyswitch: ["8M", "7T", "5M"], + ancientpower: ["8L18", "7L19", "6L19", "5L26", "4T", "4L25", "3L25"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + cosmicpower: ["8M", "8L24", "7L22", "6L22", "5L47", "4L51", "3L42"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + drillrun: ["8M", "7T", "6T", "5T"], + earthpower: ["8M", "8L30", "7T", "7L40", "6T", "6L40", "5T", "5L59", "4T", "4L62"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + eerieimpulse: ["8M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["8L48", "7M", "7L58", "6M", "6L58", "5M", "5L72", "4M", "4L86", "3T", "3L55"], + extrasensory: ["8L27", "7L31", "6L28", "5L39"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardsplit: ["8L38", "7L34", "6L34", "5L54"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + healblock: ["7L10", "6L10", "5L64", "4L73"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L0", "7M", "7L1", "6M", "6L36", "5M", "5L36", "4M", "4L36", "3M", "3L36"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + imprison: ["8M", "8L21", "7L52", "6L52"], + irondefense: ["8M"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mudslap: ["8L1", "7L7", "6L7", "5L11", "4T", "4L7", "3T", "3L7"], + nastyplot: ["8M"], + naturalgift: ["4M"], + powersplit: ["8L38", "7L34", "6L34", "5L54"], + powerswap: ["8M"], + powertrick: ["8L12", "7L25", "6L17", "5L31", "4L31"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["8L15", "7L16", "6L13", "5L15", "4L11", "3L11"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rapidspin: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "8L9", "7M", "7L13", "6M", "6L10", "5M", "5L18", "4M", "4L15", "3M", "3L15"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["8M", "8L43", "7M", "7L46", "6M", "6L46", "5M", "5L34", "4M", "4L40", "3M", "3L31"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "8L33", "7L28", "6L25", "5L21", "4L19", "3T", "3L19"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + storedpower: ["8M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + telekinesis: ["7T", "5M"], + teleport: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T", "5T", "4T"], + }, + }, + lileep: { + learnset: { + acid: ["8L4", "7L5", "6L5", "5L8", "5D", "5S0", "4L8", "3L15"], + amnesia: ["8M", "8L28", "7L36", "6L29", "5L29", "4L29", "3L36"], + ancientpower: ["8L16", "7L17", "6L17", "5L43", "4T", "4L43", "3L43"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + barrier: ["7E", "6E", "5E", "4E", "3E"], + bind: ["8E", "7T", "6T", "5T"], + bodyslam: ["8M", "3T"], + brine: ["8M", "8L24", "7L21", "6L21"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L8", "7L13", "6L13", "5L22", "4L22", "3L29"], + constrict: ["7L1", "6L1", "5L1", "5S0", "4L1", "3L8"], + curse: ["8E", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "7E", "6E", "5E", "4M", "3T"], + energyball: ["8M", "8L44", "7M", "7L41", "6M", "6L41", "5M", "5L50", "4M", "4L50"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["8L32", "7T", "7L31", "6T", "6L31", "5T", "5L36", "4T", "4L36"], + gigadrain: ["8M", "8L36", "7T", "7L26", "6T", "6L26", "5T", "5D", "4M", "3M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8L12", "7L9", "6L9", "5L15", "4L15", "3L22"], + megadrain: ["8L20", "7E", "6E", "5E"], + meteorbeam: ["8T"], + mimic: ["3T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + recover: ["8E", "7E", "6E", "5E", "5S0", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "5S0", "4M", "4E", "3T", "3E"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["8L41", "7L46", "6L46", "5L57", "4L57", "3L50"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stockpile: ["8L41", "7L46", "6L46", "5L57", "4L57", "3L50"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8L41", "7L46", "6L46", "5L57", "4L57", "3L50"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["8L1"], + wringout: ["7L52", "7E", "6L52", "6E", "5L64", "5E", "4L64", "4E"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["recover", "rockslide", "constrict", "acid"], pokeball: "cherishball"}, + ], + }, + cradily: { + learnset: { + acid: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + amnesia: ["8M", "8L28", "7L36", "6L29", "5L29", "4L29", "3L36"], + ancientpower: ["8L16", "7L17", "6L17", "5L36", "4T", "4L36", "3L48"], + astonish: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bind: ["7T", "6T", "5T"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "3T"], + brine: ["8M", "8L24", "7L21", "6L21"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L13", "6L13", "5L22", "4L22", "3L29"], + constrict: ["7L1", "6L1", "5L1", "4L1", "3L1"], + dig: ["8M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "8L48", "7M", "7L44", "6M", "6L44", "5M", "5L56", "4M", "4L56"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gastroacid: ["8L32", "7T", "7L31", "6T", "6L31", "5T", "5L46", "4T", "4L46"], + gigadrain: ["8M", "8L36", "7T", "7L26", "6T", "6L26", "5T", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyterrain: ["8M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + infestation: ["7M", "6M"], + ingrain: ["8L12", "7L1", "6L1", "5L1", "4L1", "3L1"], + leechseed: ["8L1"], + megadrain: ["8L20"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["3T"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + spitup: ["8L43", "7L52", "6L1", "5L66", "4L66", "3L60"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stockpile: ["8L43", "7L52", "6L1", "5L66", "4L66", "3L60"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8L43", "7L52", "6L1", "5L66", "4L66", "3L60"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + worryseed: ["7T", "6T", "5T", "4T"], + wrap: ["8L1"], + wringout: ["7L1", "6L1", "5L76", "4L76"], + }, + }, + anorith: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8L16", "7L21", "6L21", "5L31", "4T", "4L31", "3L37"], + aquajet: ["8E", "7E", "6E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L24", "7L29", "6L29"], + bugbite: ["8L20", "7T", "7L25", "6T", "6L25", "5T"], + captivate: ["4M"], + confide: ["7M", "6M"], + crosspoison: ["8M", "7E", "6E", "5E", "5D", "5S0", "4E"], + crushclaw: ["8L32", "7L39", "6L39", "5L55", "4L55"], + curse: ["8E", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L10", "6L10", "5L37", "4T", "4L37", "3T", "3L43"], + harden: ["8L1", "7L1", "6L1", "5L1", "5S0", "4L1", "3L7"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + metalclaw: ["8L12", "7L17", "6L17", "5L19", "4L19", "3L25"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + mudsport: ["7L4", "6L4", "5L7", "5S0", "4L7", "3L13"], + naturalgift: ["4M"], + protect: ["8M", "8L41", "7M", "7L49", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L31"], + rapidspin: ["8E", "7E", "6E", "5E", "4E", "3E"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L36", "7L55", "6L49", "5L49", "4L49", "3L55"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8E", "7E", "6E", "5E", "4E"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M", "3M"], + slash: ["8L28", "7L34", "6L34", "5L43", "4L43", "3L49"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["8L8", "7M", "7L13", "6M", "6L13", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "5D", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["8L4", "7L7", "6L7", "5L13", "5S0", "4L13", "3L19"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + xscissor: ["8M", "8L44", "7M", "7L44", "6M", "6L44", "5M", "5L61", "4M", "4L61"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["harden", "mudsport", "watergun", "crosspoison"], pokeball: "cherishball"}, + ], + }, + armaldo: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + ancientpower: ["8L16", "7L21", "6L21", "5L31", "4T", "4L31", "3L37"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "8L24", "7L29", "6L29"], + brutalswing: ["8M", "7M"], + bugbite: ["8L20", "7T", "7L25", "6T", "5T"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crosspoison: ["8M"], + crushclaw: ["8L32", "7L39", "6L1", "5L67", "4L67"], + cut: ["6M", "5M", "4M", "3M"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["8L1", "7L10", "6L10", "5L37", "4T", "4L37", "3T", "3L46"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + metalclaw: ["8L12", "7L17", "6L17", "5L19", "4L19", "3L25"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + mudsport: ["7L1", "6L1", "5L1", "4L1", "3L1"], + naturalgift: ["4M"], + protect: ["8M", "8L43", "7M", "7L53", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3M", "3L31"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M", "8L36", "7L61", "6L55", "5L55", "4L55", "3L64"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["8M"], + slash: ["8L28", "7L25", "6L25", "5L46", "4L46", "3L55"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["8L1", "7M", "7L13", "6M", "6L13", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + xscissor: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5M", "5L73", "4M", "4L73"], + }, + }, + feebas: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "7E", "6E", "5E"], + captivate: ["7E", "6E", "5E", "5D", "4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E", "3E"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonbreath: ["8E", "7E", "6E", "5E", "4E", "3E"], + dragonpulse: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L25", "7L30", "6L30", "5L30", "4L30", "3L30"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + haze: ["8E", "7E", "6E", "5E", "4E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypnosis: ["8E", "7E", "6E", "5E", "4E", "3E"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lightscreen: ["8M", "7M", "6M", "5M", "4E", "3E"], + mimic: ["3T"], + mirrorcoat: ["8E", "7E", "6E", "5E", "5D", "4E", "4S0", "3E"], + mist: ["8E", "7E", "6E", "5E", "4E"], + muddywater: ["8M"], + mudshot: ["8M"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + splash: ["8L1", "7L1", "6L1", "5L1", "5D", "4L1", "4S0", "3L1"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L15", "7L15", "6L15", "5L15", "4L15", "3L15"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 4, level: 5, gender: "F", nature: "Calm", moves: ["splash", "mirrorcoat"], pokeball: "cherishball"}, + ], + }, + milotic: { + learnset: { + aquaring: ["8L12", "7L17", "6L21", "5L49", "4L49"], + aquatail: ["8L32", "7T", "7L31", "6T", "6L29", "5T", "5L29", "4T", "4L29"], + attract: ["8M", "8L16", "7M", "7L34", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L45"], + avalanche: ["8M", "4M"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + brine: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["7L21", "6L24", "5L25", "4M", "4L25"], + coil: ["8L48", "7L41", "6L44"], + confide: ["7M", "6M"], + disarmingvoice: ["8L4", "7L11", "6L11"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T", "4M"], + dragontail: ["8L24", "7M", "7L24", "6M", "6L27", "5M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L1"], + flipturn: ["8T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L52", "7L44", "6L37", "5L37", "5S3", "4L37", "4S1", "4S2", "3L40"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "5S3", "5S4", "4M", "4S1", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "4S2", "3T"], + imprison: ["8M"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + lifedew: ["8L20"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + mirrorcoat: ["5S3"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "8L44", "7M", "7L47", "6M", "6L33", "5M", "5L33", "4M", "4L33", "4S1", "4S2", "3M", "3L35", "3S0"], + recover: ["8L28", "7L27", "6L21", "5L21", "5S3", "5S4", "4L21", "4S1", "4S2", "3L30", "3S0"], + refresh: ["7L1", "6L7", "5L9", "4L9", "3L15"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "8L36", "7M", "7L37", "6M", "6L41", "5M", "5L45", "4M", "4L45", "3M", "3L50"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + splash: ["8L1"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "8L40", "7M", "6M", "5M", "5S4", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1"], + toxic: ["7M", "6M", "5M", "5S4", "4M", "3M"], + tripleaxel: ["8T"], + twister: ["8L8", "7L14", "6L14", "5L17", "4T", "4L17", "3L25", "3S0"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["8L0", "7T", "7L1", "6T", "6L13", "5L13", "4M", "4L13", "3M", "3L20", "3S0"], + watersport: ["7L1", "6L4", "5L5", "4L5", "3L10"], + weatherball: ["8M"], + whirlpool: ["8M", "4M"], + wrap: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L5"], + }, + eventData: [ + {generation: 3, level: 35, moves: ["waterpulse", "twister", "recover", "raindance"], pokeball: "pokeball"}, + {generation: 4, level: 50, gender: "F", nature: "Bold", moves: ["recover", "raindance", "icebeam", "hydropump"], pokeball: "cherishball"}, + {generation: 4, level: 50, shiny: true, gender: "M", nature: "Timid", moves: ["raindance", "recover", "hydropump", "icywind"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, moves: ["recover", "hydropump", "icebeam", "mirrorcoat"], pokeball: "cherishball"}, + {generation: 5, level: 58, gender: "M", nature: "Lax", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["recover", "surf", "icebeam", "toxic"], pokeball: "cherishball"}, + ], + }, + castform: { + learnset: { + amnesia: ["7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + avalanche: ["4M"], + blizzard: ["7M", "7L35", "6M", "6L35", "5M", "5L50", "4M", "3M"], + bodyslam: ["3T"], + captivate: ["4M"], + clearsmog: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + cosmicpower: ["7E", "6E"], + defensecurl: ["3T"], + defog: ["7T"], + disable: ["7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + ember: ["7L10", "6L10", "5L10", "5D", "4L10", "3L10"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fireblast: ["7M", "7L35", "6M", "6L35", "5M", "5L50", "4M", "3M"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["7E", "6E", "5E", "4E", "3E"], + guardswap: ["7E", "6E"], + hail: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + headbutt: ["7L15", "6L15", "5L20"], + hex: ["7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["7L45", "6L45"], + hydropump: ["7L35", "6L35", "5L50"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + lastresort: ["7T", "6T", "5T", "4T"], + luckychant: ["7E", "6E", "5E", "4E"], + mimic: ["3T"], + naturalgift: ["4M"], + ominouswind: ["7E", "6E", "5E", "5D", "4T", "4E"], + powdersnow: ["7L10", "6L10", "5L10", "4L10", "3L10"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + raindance: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + reflecttype: ["7E", "6E"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M", "3M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "7L20", "6M", "6L20", "5M", "5L30", "4M", "4L20", "3M", "3L20"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + tackle: ["7L1", "6L1", "5L1", "4L1", "3L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M", "3M"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L10", "6L10", "5L10", "4L10", "3L10"], + waterpulse: ["7T", "6T", "5D", "4M", "3M"], + weatherball: ["7L25", "6L25", "5L40", "4L30", "3L30"], + workup: ["7M", "5M"], + }, + }, + kecleon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + afteryou: ["7T", "6T", "5T"], + ancientpower: ["7L21", "6L1", "5L55", "4T", "4L55", "3L49"], + aquatail: ["7T", "6T", "5T", "4T"], + astonish: ["7L1", "6L1", "5L1", "4L1", "3L1"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bind: ["7T", "7L4", "6T", "6L4", "5T", "5L4", "4L4", "3L4"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + camouflage: ["7L30", "7E", "6L30", "6E"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + counter: ["3T"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["6M", "5M", "4M", "3M"], + disable: ["7E", "6E", "5E", "4E", "3E"], + dizzypunch: ["7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + fakeout: ["7E", "6E", "5E", "4E"], + feint: ["7L10", "6L10", "5L14", "4L14"], + feintattack: ["7L16", "6L7", "5L7", "5D", "4L7", "3L7"], + fireblast: ["7M", "6M", "5M", "4M", "3M"], + firepunch: ["7T", "6T", "5T", "4T", "3T"], + flamethrower: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foulplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + furyswipes: ["7L13", "6L10", "5L10", "4L10", "3L12"], + grassknot: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M", "3M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lick: ["7L1", "6L1", "5L1", "4L1", "3L1"], + lowkick: ["7T", "6T", "5T", "4T"], + magiccoat: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + megakick: ["3T"], + megapunch: ["3T"], + metronome: ["3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + poweruppunch: ["7E", "6M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psybeam: ["7L18", "6L18", "5L18", "4L15", "3L17"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + recover: ["7E", "6E", "5E", "4E"], + recycle: ["7T", "6T", "5T", "4M"], + reflecttype: ["5D"], + rest: ["7M", "6M", "5M", "4M", "3M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "4L1", "3L1"], + screech: ["7L38", "6L32", "5L32", "4L32", "3L24"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["7M", "7L33", "6M", "6L33", "5M", "5L49", "4M", "4L49"], + shadowsneak: ["7L7", "6L7", "5L22", "4L20"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4M", "3M"], + slash: ["7L25", "6L25", "5L27", "4L25", "3L31"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + stealthrock: ["7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "7L42", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3T", "3L40"], + suckerpunch: ["7L46", "6L43", "5L43", "4T", "4L43"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + synchronoise: ["7L50", "6L1", "5L58"], + tailwhip: ["7L1", "6L1", "5L1", "4L1", "3L1"], + thief: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + trickroom: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["7T", "6T", "5T"], + workup: ["7M", "5M"], + }, + }, + shuppet: { + learnset: { + allyswitch: ["7T"], + astonish: ["9L1", "7E", "6E", "5E", "4E", "3E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "7E", "6E", "5E", "4E"], + curse: ["9L26", "7L26", "6L19", "5L13", "4L13", "3L20"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + destinybond: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], + disable: ["9E", "7E", "6E", "5E", "4E", "3E"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L43", "4M", "4L38"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L28", "4L28", "3L37", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + foresight: ["7E", "6E", "5E", "4E", "3E"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + grudge: ["7L46", "6L46", "5L50", "4L46", "3L56"], + gunkshot: ["9M", "9E", "7T", "7E", "6E", "5E"], + headbutt: ["4T"], + helpinghand: ["9M"], + hex: ["9M", "9L22", "7L22", "6L22", "5L31"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M", "9E", "7E", "6E", "5E", "4E", "3E"], + knockoff: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + metronome: ["9M"], + mimic: ["3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L7", "7L7", "6L7", "5L8", "5D", "4L8", "3L13"], + ominouswind: ["7E", "6E", "5E", "4T"], + painsplit: ["7T", "6T", "5T", "5D", "4T"], + payback: ["7M", "6M", "5M", "4M", "4E"], + phantomforce: ["9M", "9L48", "7L54", "7E", "6L54", "6E"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["9L34", "7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9L4", "7L4", "6L4", "5L5", "4L5", "3L8"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L35", "4M", "4L31", "3M", "3L44", "3S0"], + shadowsneak: ["9L19", "7L13", "7E", "6L13", "6E", "5L20", "5E", "4L20", "4E"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7L42", "6T", "6L42", "5T", "5L46", "4M", "4L43", "3M", "3L49"], + snore: ["7T", "6T", "3T"], + spite: ["9L10", "7T", "7L10", "6T", "6L10", "5T", "5L16", "4T", "4L16", "3L25", "3S0"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L38", "7L38", "6L34", "5L38", "4T", "4L35"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["9M", "9L42", "7T", "7L50", "6T", "6L50", "5T", "5L55", "4T", "4L50"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L23", "4M", "4L23", "3L32", "3S0"], + }, + eventData: [ + {generation: 3, level: 45, abilities: ["insomnia"], moves: ["spite", "willowisp", "feintattack", "shadowball"], pokeball: "pokeball"}, + ], + }, + banette: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + calmmind: ["9M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cottonguard: ["5S1"], + curse: ["9L26", "7L26", "6L1", "5L1", "4L1", "3L1", "3S0"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + embargo: ["7M", "7L34", "6M", "6L34", "5M", "5L51", "4M", "4L42"], + encore: ["9M"], + endure: ["9M", "4M", "3T"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L19", "6L19", "5L28", "5S1", "4L28", "3L39", "3S0"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["9M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grudge: ["7L52", "6L52", "5L66", "4L58", "3L64"], + gunkshot: ["9M", "7T"], + headbutt: ["4T"], + helpinghand: ["9M", "3S0"], + hex: ["9M", "9L22", "7L22", "6L22", "5L31", "5S1"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["9M"], + infestation: ["7M", "6M"], + knockoff: ["9L0", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["7T", "6T", "5T"], + metronome: ["9M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + nastyplot: ["9M"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + phantomforce: ["9M", "9L53", "7L1", "6L1"], + pounce: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psybeam: ["9M"], + psychic: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["9L34", "7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L35", "5S1", "4M", "4L31", "3M", "3L48", "3S0"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shadowsneak: ["9L19", "7L13", "6L13", "5L20", "4L20"], + shockwave: ["7T", "6T", "4M", "3M"], + skillswap: ["9M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7L46", "6T", "6L46", "5T", "5L58", "4M", "4L51", "3M", "3L55"], + snore: ["7T", "6T", "3T"], + spite: ["9L1", "7T", "7L1", "6T", "6L1", "5T", "5L16", "4T", "4L16", "3L25"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["9L40", "7L40", "6L34", "5L42", "4T", "4L35"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swordsdance: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + trick: ["9M", "9L46", "7T", "7L58", "6T", "6L58", "5T", "5L75", "4T", "4L66"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + willowisp: ["9M", "9L16", "7M", "7L16", "6M", "6L13", "5M", "5L23", "4M", "4L23", "3L32"], + }, + eventData: [ + {generation: 3, level: 37, abilities: ["insomnia"], moves: ["helpinghand", "feintattack", "shadowball", "curse"]}, + {generation: 5, level: 37, gender: "F", isHidden: true, moves: ["feintattack", "hex", "shadowball", "cottonguard"]}, + ], + encounters: [ + {generation: 5, level: 32}, + ], + }, + duskull: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L9", "6L9", "5L14", "4L14", "3L16", "3S1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["8L12", "7L30", "6L17", "5L17", "4L17", "3L23", "3S1"], + curse: ["8L36", "7L33", "6L30", "5L30", "4L30", "3L34", "3S0"], + darkpulse: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + destinybond: ["7E", "6E", "5E", "4E", "3E"], + disable: ["8L4", "7L6", "6L6", "5L6", "5D", "4L6", "3L5"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + foresight: ["7L14", "6L9", "5L9", "4L9", "3L12"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L44", "7L54", "6L49", "5L49", "4L46", "3L49"], + gravity: ["7T", "6T", "5T", "4T"], + grudge: ["8E", "7E", "6E", "5E", "4E", "3E"], + haze: ["8E", "7E", "6E"], + headbutt: ["4T"], + helpinghand: ["8M", "3S1"], + hex: ["8M", "8L32", "7L38", "6L38", "5L38"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["8M", "7E", "6E", "5E", "4E", "3E"], + infestation: ["7M", "6M"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L28", "7L46", "6L41", "5L41", "4L38", "3L45", "3S0"], + memento: ["8E", "7E", "6E", "5E", "4E", "3E"], + mimic: ["3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + ominouswind: ["7E", "6E", "5E", "4T", "4E"], + painsplit: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E", "3E"], + payback: ["8M", "8L20", "7M", "7L49", "6M", "6L46", "5M", "5L46", "4M", "4L41"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7L22", "6L22", "5L25", "4L25", "3L27", "3S0"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "4M", "3M", "3S1"], + shadowsneak: ["8L8", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "5D", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + willowisp: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L38", "3S0"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 3, level: 45, moves: ["pursuit", "curse", "willowisp", "meanlook"], pokeball: "pokeball"}, + {generation: 3, level: 19, moves: ["helpinghand", "shadowball", "astonish", "confuseray"]}, + ], + }, + dusclops: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L14", "4L14", "3L16"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "3L1"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["8L12", "7L30", "6L17", "5L17", "4L17", "3L23"], + counter: ["3T"], + curse: ["8L36", "7L33", "6L30", "5L30", "4L30", "3L34"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + disable: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + flash: ["6M", "5M", "4M", "3M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + foresight: ["7L14", "6L9", "5L9", "4L9", "3L12"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L48", "7L1", "6L1", "5L61", "4L61", "3L58"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + headbutt: ["4T"], + helpinghand: ["8M"], + hex: ["8M", "8L32", "7L40", "6L40", "5L42"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["8M"], + infestation: ["7M", "6M"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meanlook: ["8L28", "7L52", "6L49", "5L49", "4L43", "3L51"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metronome: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["8L16", "7L1", "6L1", "5L1", "4L1", "3L1"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], + poltergeist: ["8T"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + pursuit: ["7L22", "6L22", "5L25", "4L25", "3L27"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + revenge: ["8M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M", "3M"], + shadowpunch: ["8L0", "7L1", "6L37", "5L37", "4L37", "3L37"], + shadowsneak: ["8L1", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + taunt: ["8M", "7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + willowisp: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33", "3L41"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 4, level: 16}, + {generation: 6, level: 30}, + ], + }, + dusknoir: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L14", "4L14"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["8L12", "7L30", "6L17", "5L17", "4L17"], + curse: ["8L36", "7L33", "6L30", "5L30", "4L30"], + darkestlariat: ["8M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + destinybond: ["8L54"], + disable: ["8L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foresight: ["7L14", "6L9", "5L9", "4L9"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["8M", "8L48", "7L1", "6L1", "5L61", "4L61"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + headbutt: ["4T"], + helpinghand: ["8M"], + hex: ["8M", "8L32", "7L40", "6L40", "5L42"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + icywind: ["8M", "7T", "6T", "5T", "4T"], + imprison: ["8M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + meanlook: ["8L28", "7L52", "6L49", "5L49", "4L43"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["8L16", "7L1", "6L1", "5L1", "4L1"], + ominouswind: ["4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "8L20", "7M", "7L57", "6M", "6L57", "5M", "5L58", "4M", "4L51"], + poltergeist: ["8T"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + psychic: ["8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + pursuit: ["7L22", "6L22", "5L25", "4L25"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "8L42", "7M", "7L45", "6M", "6L45", "5M", "4M"], + shadowpunch: ["8L1", "7L1", "6L37", "5L37", "4L37"], + shadowsneak: ["8L1", "7L17", "6L17", "5L22", "4L22"], + skillswap: ["8M", "7T", "6T", "5T", "4M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + willowisp: ["8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L33", "4M", "4L33"], + wonderroom: ["8M", "7T", "6T"], + }, + }, + tropius: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + aircutter: ["9M", "4T"], + airslash: ["9M", "9L36", "7L36", "6L36", "5L51", "4L47", "4S0"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bestow: ["7L46", "6L1", "5L57"], + bodypress: ["9M"], + bodyslam: ["9M", "9L41", "7L41", "6L37", "5L37", "4L37", "3T", "3L37"], + brutalswing: ["7M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "7E", "6E", "5E", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + curse: ["9E", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragondance: ["9M", "9E", "7E", "6E", "5E", "4E"], + dragonhammer: ["7E"], + dragonpulse: ["9M", "7T", "6T", "5T"], + dragontail: ["9M"], + earthquake: ["9M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "4M", "3T"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fly: ["9M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigadrain: ["9M", "7T", "6T", "5T", "4M", "3M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "6L1", "5L7", "4L7", "3L7"], + gust: ["9L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + headbutt: ["9E", "7E", "6E", "5E", "4T", "4E", "3E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hurricane: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + leafblade: ["9E", "7E", "6E", "5E", "4E"], + leafstorm: ["9M", "9L1", "7L1", "7E", "6L1", "6E", "5L71", "5E", "4L61", "4E"], + leaftornado: ["7L26", "6L26", "5L47"], + leechseed: ["9E", "7E", "6E", "5E", "5D", "4E", "3E"], + leer: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + magicalleaf: ["9M", "9L16", "7L16", "6L16", "5L31", "4L31", "3L31"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["7L30", "7E", "6L1", "6E", "5L67", "5E", "4M", "4L57"], + naturepower: ["7M", "7E", "6M", "6E", "5E", "4E", "3E"], + ominouswind: ["4T"], + outrage: ["9M", "9L46", "7T", "6T", "5T", "4T"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["9M"], + razorleaf: ["9L1", "7L1", "6L1", "5L11", "4L11", "3L11"], + razorwind: ["7E", "6E", "5E", "4E", "3E"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rocksmash: ["6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seedbomb: ["9M", "7T", "6T", "5T"], + silverwind: ["5D", "4M"], + slam: ["9E", "7E", "6E", "5E", "4E", "3E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L56", "7M", "7L56", "6M", "6L56", "5M", "5L61", "4M", "4L51", "4S0", "3M", "3L41"], + steelwing: ["7M", "6M", "4M", "3M"], + stomp: ["9L10", "7L10", "6L10", "5L17", "4L17", "3L17"], + stompingtantrum: ["9M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "7M", "6M", "5M", "4M", "4S0", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetscent: ["9L6", "7L6", "6L6", "5L21", "4L21", "3L21"], + swordsdance: ["9M", "7M", "6M", "5M", "4M", "3T"], + synthesis: ["9L50", "7T", "7L50", "7E", "6T", "6L41", "6E", "5T", "5L41", "5E", "4T", "4L41", "4E", "4S0", "3L47"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + twister: ["4T"], + uturn: ["9M"], + whirlwind: ["9L21", "7L21", "6L21", "5L27", "4L27", "3L27"], + wideguard: ["9L30"], + worryseed: ["7T", "6T", "5T", "4T"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 4, level: 53, gender: "F", nature: "Jolly", abilities: ["chlorophyll"], moves: ["airslash", "synthesis", "sunnyday", "solarbeam"], pokeball: "cherishball"}, + ], + }, + chingling: { + learnset: { + allyswitch: ["7T"], + astonish: ["7L7", "6L7", "5L9", "4L9"], + attract: ["7M", "6M", "5M", "4M"], + bind: ["7T", "6T", "5T"], + calmmind: ["7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["7L10", "6L10", "5L14", "4L14"], + cosmicpower: ["7E", "6E"], + curse: ["7E", "6E", "5E", "4E"], + dazzlinggleam: ["7M", "6M"], + disable: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "4E"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + entrainment: ["7L19", "6L19", "5L25"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["7E", "6E", "5E", "4E"], + grassknot: ["7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + growl: ["7L4", "6L4", "5L6", "4L6"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["7T", "6T", "5T"], + hypnosis: ["7E", "6E", "5E", "4E"], + icywind: ["7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "7L16", "6T", "6L16", "5T", "5L22", "4T", "4L22"], + lightscreen: ["7M", "6M", "5M", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M"], + psychic: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M", "4M"], + recover: ["7E", "6E", "5E", "4E"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + storedpower: ["7E", "6E", "5E"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + taunt: ["7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + thunderwave: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["7T", "6T", "5T", "4T"], + trickroom: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17"], + wish: ["7E", "6E", "5E", "4E"], + wrap: ["7L1", "6L1", "5L1", "4L1"], + yawn: ["7L13", "6L13"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + }, + chimecho: { + learnset: { + allyswitch: ["7T"], + astonish: ["7L1", "6L1", "5L9", "4L9", "3L9", "3S0"], + attract: ["7M", "6M", "5M", "4M", "3M"], + bind: ["7T", "6T", "5T"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["7L1", "6L1", "5L14", "4L14", "3L14"], + cosmicpower: ["7E", "6E"], + craftyshield: ["7E"], + curse: ["7E", "6E", "5E", "4E", "3E"], + dazzlinggleam: ["7M", "6M"], + defensecurl: ["3T"], + defog: ["7T"], + disable: ["7E", "6E", "5E", "4E", "3E"], + doubleedge: ["7L42", "6L33", "5L33", "4L33", "3T", "3L33"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dreameater: ["7M", "6M", "5M", "4M", "4E", "3T", "3E"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + extrasensory: ["7L22", "6L22", "5L46", "4L46"], + facade: ["7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["7E", "6E", "5E", "4E"], + grassknot: ["7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + growl: ["7L1", "6L1", "5L6", "4L6", "3L6", "3S0"], + healbell: ["7T", "7L27", "6T", "6L27", "5T", "5L38", "4T", "4L38", "3L38"], + healingwish: ["7L1", "6L1", "5L57", "4L49"], + healpulse: ["7L47", "6L47", "5L49"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hypervoice: ["7T", "6T", "5T", "5D"], + hypnosis: ["7E", "6E", "5E", "5D", "4E", "3E"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mimic: ["3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + perishsong: ["7E"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychic: ["7M", "6M", "5M", "4M", "3M", "3L46"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["7M", "6M", "5M"], + psywave: ["7L16", "6L16", "5L30", "4L30", "3L30"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + recover: ["7E", "6E"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "7L37", "6M", "6L37", "5M", "5L41", "4M", "4L41", "3M", "3L41"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "7E", "6T", "6E", "5T", "5E", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + storedpower: ["7E", "6E", "5E"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + synchronoise: ["7L1", "6L1", "5L54"], + takedown: ["7L19", "6L19", "5L22", "4L22", "3L17"], + taunt: ["7M", "6M", "5M", "4M", "3M"], + telekinesis: ["7T", "5M"], + thunderwave: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "6T", "5T", "4T"], + trickroom: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "7L32", "6T", "6L17", "5T", "5L17", "4T", "4L17", "3L22"], + wish: ["7E", "6E", "5E", "4E"], + wrap: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1", "3S0"], + yawn: ["7L13", "6L13", "5L25", "4L25", "3L25"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 3, level: 10, gender: "M", moves: ["wrap", "growl", "astonish"], pokeball: "pokeball"}, + ], + }, + absol: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + airslash: ["8M"], + assurance: ["8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + batonpass: ["8M", "7E", "6E", "5E", "4E", "3E"], + bite: ["8E", "7L16", "6L16", "5L28", "4L28", "3L21", "3S2"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brutalswing: ["8M", "7M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + detect: ["8L15", "7L33", "6L1", "5L49", "4L49"], + doubleedge: ["8E", "7E", "6E", "5E", "4E", "3T", "3E"], + doubleteam: ["8L5", "7M", "7L19", "6M", "6L19", "5M", "5L33", "4M", "4L33", "3M", "3L31", "3S3"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + feint: ["8E", "7L1", "6L1", "5L1", "5D", "4L1"], + feintattack: ["7E", "6E", "5E", "4E", "3E"], + fireblast: ["8M", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + focusenergy: ["8M", "8L35"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + futuresight: ["8M", "8L50", "7L1", "6L1", "5L41", "4L41", "3L41", "3S3"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + hex: ["8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + knockoff: ["8L10", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L4", "4L4", "3L5", "3S0", "3S1"], + magiccoat: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + meanlook: ["8E", "7E", "6E", "5E", "4E"], + mefirst: ["7L41", "7E", "6L1", "6E", "5L57", "5E", "4L57", "4E"], + megahorn: ["8M", "7E", "6E", "5E", "5D", "4E"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightslash: ["8L30", "7L29", "6L29", "5L52", "4L52"], + payback: ["8M", "7M", "6M", "5M", "4M"], + perishsong: ["8L55", "7L1", "7E", "6L1", "6E", "5L65", "5E", "4L65", "3L46", "3S3"], + playrough: ["8M", "7E", "6E"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychocut: ["8M", "7L37", "6L37", "5L60", "4L60"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + punishment: ["7E", "6E", "5E", "4E"], + pursuit: ["7L10", "6L10", "5L20", "4L20"], + quickattack: ["8L1", "7L1", "6L1", "5L12", "4L12", "3L13"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + razorwind: ["7L49", "6L1", "5L17", "4L17", "3L17", "3S2"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scratch: ["7L1", "6L1", "5L1", "4L1", "3L1", "3S0", "3S1"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["8L25", "7L22", "6L22", "5L36", "4L36", "3L36", "3S3"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + spite: ["7T", "6T", "5T", "4T", "3S1", "3S2"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + suckerpunch: ["8L40", "7L45", "7E", "6L45", "6E", "5L44", "5E", "4T", "4L44", "4E"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + swordsdance: ["8M", "8L45", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25", "3T", "3L26", "3S2"], + taunt: ["8M", "8L20", "7M", "7L13", "6M", "6L1", "5M", "5L9", "4M", "4L9", "3M", "3L9"], + thief: ["8M", "7M", "6M", "5M", "4M", "3M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + willowisp: ["8M", "7M", "6M", "5M", "4M"], + wish: ["3S0"], + xscissor: ["8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, abilities: ["pressure"], moves: ["scratch", "leer", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, abilities: ["pressure"], moves: ["scratch", "leer", "spite"], pokeball: "pokeball"}, + {generation: 3, level: 35, abilities: ["pressure"], moves: ["razorwind", "bite", "swordsdance", "spite"], pokeball: "pokeball"}, + {generation: 3, level: 70, abilities: ["pressure"], moves: ["doubleteam", "slash", "futuresight", "perishsong"], pokeball: "pokeball"}, + ], + }, + snorunt: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "7E", "6E", "5E", "4M"], + bide: ["7E", "6E", "5E", "4E"], + bite: ["9L35", "8L35", "7L19", "6L10", "5L10", "4L10", "3L10", "3S0"], + blizzard: ["9M", "9L60", "8M", "8L60", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L46", "3M", "3L43"], + block: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3E"], + bodyslam: ["9M", "8M", "3T"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L55", "8M", "8L55", "7L41", "6L31", "5L31", "4L31", "3L28"], + disable: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleedge: ["3T"], + doubleteam: ["9L10", "8L10", "7M", "7L5", "6M", "6L4", "5M", "5L4", "4M", "4L4", "3M", "3L7"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M", "7E", "6E", "5E"], + flash: ["6M", "5M", "4M", "3M"], + frostbreath: ["9L30", "8L30", "7M", "7L37", "6M", "6L37", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["8M", "8L45", "7M", "7L50", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L37"], + headbutt: ["9L1", "8L50", "7L28", "6L19", "5L19", "4T", "4L19", "3L19"], + helpinghand: ["9M"], + hex: ["9M", "8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M", "3L34"], + icefang: ["9M", "9L40", "8M", "8L40", "7L23", "6L23", "5L28", "4L28"], + iceshard: ["9L15", "8L15", "7L10", "6L10", "5L37", "4L37"], + icespinner: ["9M"], + iciclecrash: ["9E", "8E"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3T", "3L16", "3S0"], + leer: ["9L5", "8L5", "7L1", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + naturalgift: ["4M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + protect: ["9M", "9L20", "8M", "8L20", "7M", "7L32", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L25"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sing: ["3S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M", "9L45"], + spikes: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + switcheroo: ["9E", "8E", "7E", "6E"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "5D", "4M", "3M", "3S0"], + weatherball: ["9L50", "8M", "7E", "6E", "5E", "5D", "4E"], + }, + eventData: [ + {generation: 3, level: 20, abilities: ["innerfocus"], moves: ["sing", "waterpulse", "bite", "icywind"]}, + ], + }, + glalie: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + avalanche: ["9M", "8M", "4M"], + bite: ["9L35", "8L35", "7L19", "6L1", "5L1", "4L1", "3L1"], + blizzard: ["9M", "9L68", "8M", "8L68", "7M", "7L48", "6M", "6L48", "5M", "5L51", "4M", "4L51", "3M", "3L53"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M", "3T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L61", "8M", "8L61", "7L41", "6L31", "5L31", "4L31", "3L28"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3M", "3L1"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + faketears: ["9M", "8M"], + flash: ["6M", "5M", "4M", "3M"], + foulplay: ["9M"], + freezedry: ["9L0", "8L0", "7L1", "6L42"], + frostbreath: ["9L30", "8L30", "7M", "7L37", "6M", "6L37", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "8L47", "7M", "7L54", "6M", "6L40", "5M", "5L40", "4M", "4L40", "3M", "3L42"], + headbutt: ["9L1", "8L54", "7L28", "6L19", "5L19", "4T", "4L19", "3L19"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "8M", "7M", "6M", "6L37", "5M", "5L37", "4M", "4L37", "3M", "3L34"], + icefang: ["9M", "9L40", "8M", "8L40", "7L23", "6L23", "5L28", "4L28"], + iceshard: ["9L15", "8L15", "7L1", "6L1"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13", "3T", "3L16"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + mimic: ["3T"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + protect: ["9M", "9L20", "8M", "8L20", "7M", "7L32", "6M", "6L22", "5M", "5L22", "4M", "4L22", "3M", "3L25"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "8M"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + sheercold: ["9L1", "8L1", "7L1", "6L1", "5L59", "4L59", "3L61"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M", "9L47"], + spikes: ["9M", "8M"], + spite: ["7T", "6T", "5T", "4T"], + steelroller: ["8T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + terablast: ["9M"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M", "3M"], + weatherball: ["9L54", "8M"], + }, + }, + froslass: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L19", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + auroraveil: ["9L54", "8L54", "7M"], + avalanche: ["9M", "8M", "4M"], + bite: ["9L1", "8L1"], + blizzard: ["9M", "9L68", "8M", "8L68", "7M", "7L48", "6M", "6L48", "5M", "5L51", "4M", "4L51"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "8M"], + captivate: ["7L41", "6L31", "5L31", "4M", "4L31"], + charm: ["9M", "8M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L35", "8L35", "7L32", "6L19", "5L19", "4L19"], + crunch: ["9M", "9L1", "8M", "8L1"], + destinybond: ["9L1", "8L1", "7L1", "6L1", "5L59", "4L59"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + drainingkiss: ["9M", "9L20", "8M", "8L20", "7L23", "6L23"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frostbreath: ["9L30", "8L30", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "8L40", "7M", "7L54", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + headbutt: ["9L1", "8L1", "4T"], + helpinghand: ["9M"], + hex: ["9M", "9L0", "8M", "8L0"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "8M", "8L1"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + iceshard: ["9L15", "8L15", "7L1", "6L1", "5L37", "4L37"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L14", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + imprison: ["9M", "8M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L1", "6L22", "5L22", "4T", "4L22"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poltergeist: ["8T"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "9L61", "8M", "8L61", "7M", "7L42", "6M", "6L42", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M", "9L40"], + spikes: ["9M", "8M"], + spite: ["7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + tripleaxel: ["8T"], + wakeupslap: ["7L37", "6L28", "5L28", "4L28"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["8M"], + willowisp: ["9M", "9L47", "8M", "8L47", "7M", "7L28"], + }, + }, + spheal: { + learnset: { + aquaring: ["8E", "7E", "6E", "5E", "4E"], + aquatail: ["7T", "6T", "5T", "5D", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L28", "7L21", "6L21", "5L25", "4L25", "3L25", "3S0"], + bellydrum: ["8E", "7E", "6E"], + blizzard: ["8M", "8L44", "7M", "7L41", "6M", "6L41", "5M", "5L43", "4M", "4L43", "3M", "3L43"], + bodyslam: ["8M", "8L36", "7L26", "6L19", "5L19", "4L19", "3T", "3L19"], + brine: ["8M", "8L24", "7L17", "6L17", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + charm: ["3S0"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "4E", "3E"], + defensecurl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3T", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L33", "7L9", "6L7", "5L7", "4L7", "3L7"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + fissure: ["8E", "7E", "6E", "5E", "5D", "4E", "3E"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L4", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L48", "7M", "7L36", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + iceball: ["7L13", "6L13", "5L13", "4L13", "3L13"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + mimic: ["3T"], + mudslap: ["4T", "3T", "3S0"], + naturalgift: ["4M"], + powdersnow: ["8L12", "7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L16", "7M", "7L31", "6M", "6L31", "5M", "5L37", "4M", "4L37", "3M", "3L37"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L5", "7E", "6L5", "6E", "5E", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L52", "7L46", "6L46", "5L49", "4L49", "3L49"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M", "3T"], + snore: ["8M", "8L20", "7T", "7L31", "6T", "6L31", "5T", "5L37", "4T", "4L37", "3T", "3L37"], + spitup: ["8E", "7E", "6E", "5E", "4E", "3E"], + steelroller: ["8T"], + stockpile: ["8E", "7E", "6E", "5E", "4E", "3E"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "8L40", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swallow: ["8E", "7E", "6E", "5E", "4E", "3E"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L8", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "4M", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["8M", "4M"], + yawn: ["8E", "7E", "6E", "5E", "4E", "3E"], + }, + eventData: [ + {generation: 3, level: 17, abilities: ["thickfat"], moves: ["charm", "aurorabeam", "watergun", "mudslap"]}, + ], + }, + sealeo: { + learnset: { + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L28", "7L21", "6L21", "5L25", "4L25", "3L25"], + blizzard: ["8M", "8L52", "7M", "7L45", "6M", "6L45", "5M", "5L47", "4M", "4L47", "3M", "3L47"], + bodyslam: ["8M", "8L40", "7L26", "6L19", "5L19", "4L19", "3T", "3L19"], + brine: ["8M", "8L24", "7L17", "6L17", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "3T", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L35", "7L9", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L58", "7M", "7L38", "6M", "6L31", "5M", "5L31", "4M", "4L31", "3M", "3L31"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + iceball: ["7L13", "6L13", "5L13", "4L13", "3L13"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + powdersnow: ["8L12", "7L1", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L16", "7M", "7L31", "6M", "6L31", "5M", "5L39", "4M", "4L39", "3M", "3L39"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L5", "6L5", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L64", "7L52", "6L52", "5L55", "4L55", "3L55"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "8L20", "7T", "7L31", "6T", "6L31", "5T", "5L39", "4T", "4L39", "3T", "3L39"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "8L46", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L0", "7M", "7L1", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + encounters: [ + {generation: 4, level: 25}, + {generation: 6, level: 28, maxEggMoves: 1}, + ], + }, + walrein: { + learnset: { + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurorabeam: ["8L28", "7L19", "6L19", "5L25", "4L25", "3L25"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "8L56", "7M", "7L49", "6M", "6L49", "5M", "5L52", "4M", "4L52", "3M", "3L50"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L40", "7L25", "6L19", "5L19", "4L19", "3T", "3L19"], + brine: ["8M", "8L24", "7L19", "6L19", "5S0", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + defensecurl: ["8L1", "7L1", "6L1", "3T", "3L1"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "8L35", "7L7", "6L1", "5L1", "4L1", "3L1"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + growl: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + hail: ["8M", "8L64", "7M", "7L38", "6M", "6L31", "5M", "5L31", "5S0", "4M", "4L31", "3M", "3L31"], + headbutt: ["4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + iceball: ["7L13", "6L13", "5L13", "4L13", "3L13"], + icebeam: ["8M", "7M", "6M", "5M", "5S0", "4M", "3M"], + icefang: ["8M", "8L1", "7L1", "6L44", "5L44", "4L44"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + liquidation: ["8M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + powdersnow: ["8L12", "7L1", "6L1", "5L1", "4L1", "3L1"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L16", "7M", "7L31", "6M", "6L31", "5M", "5L39", "4M", "4L39", "3M", "3L39"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["8L1", "7L7", "6L7", "4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["8L72", "7L60", "6L60", "5L65", "5S0", "4L65", "3L61"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "8L20", "7T", "7L31", "6T", "6L31", "5T", "5L39", "4T", "4L39", "3T", "3L39"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["8M", "8L48", "7M", "6M", "5M", "4M", "3M"], + swagger: ["8L1", "7M", "7L1", "6M", "6L32", "5M", "5L32", "4M", "4L32", "3T"], + swordsdance: ["8M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 5, level: 50, abilities: ["thickfat"], moves: ["icebeam", "brine", "hail", "sheercold"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 30}, + ], + }, + clamperl: { + learnset: { + aquaring: ["7E", "6E", "5E", "5D", "4E"], + attract: ["7M", "6M", "5M", "4M", "3M"], + barrier: ["7E", "6E", "5E", "4E", "3E"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["7E", "6E", "5E", "4E", "3T", "3E"], + brine: ["7E", "6E", "5E", "4M"], + captivate: ["5D", "4M"], + clamp: ["7L1", "6L1", "5L1", "4L1", "3L1"], + confide: ["7M", "6M"], + confuseray: ["7E", "6E", "5E", "4E", "3E"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["7E", "6E", "5E", "4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irondefense: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1", "3L1"], + mimic: ["3T"], + muddywater: ["7E", "6E", "5E", "4E"], + mudsport: ["7E", "6E", "5E", "4E", "3E"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + refresh: ["7E", "6E", "5E", "4E", "3E"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shellsmash: ["7L50", "6L50", "5L51"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + supersonic: ["7E", "6E", "5E", "4E", "3E"], + surf: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + watergun: ["7L1", "6L1", "5L1", "4L1", "3L1"], + waterpulse: ["7T", "7E", "6T", "6E", "5E", "4M", "3M"], + whirlpool: ["7L1", "6L1", "5L1", "5D", "4M", "4L1", "3L1"], + }, + }, + huntail: { + learnset: { + aquatail: ["7T", "7L39", "6T", "6L39", "5T", "5L46", "4T", "4L46"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L29", "6L29", "5L33", "4L33", "3L43"], + bind: ["7T", "6T", "5T"], + bite: ["7L1", "6L1", "5L6", "4L6", "3L8"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["7L19", "6L19", "5L28", "4M", "4L28"], + captivate: ["4M"], + coil: ["7L45", "6L45"], + confide: ["7M", "6M"], + crunch: ["7L34", "6L34", "5L42", "4L42", "3L36"], + dive: ["7L26", "6M", "6L26", "5M", "5L37", "4T", "4L37", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + feintattack: ["7L11", "6L11"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["7L50", "6L50", "5L51", "4L51", "3L50"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icefang: ["7L16", "6L16", "5L24", "4L24"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["7L9", "6L9", "5L19", "4L19", "3L29"], + screech: ["7L5", "6L5", "5L10", "4L10", "3L15"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "6T", "5T", "4M", "3M"], + snore: ["7T", "6T", "5T", "4T", "3T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["7L23", "6L23", "4T"], + superfang: ["7T", "6T", "5T", "4T"], + surf: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "7L14", "6T", "6L14", "5L15", "4M", "4L15", "3M", "3L22"], + whirlpool: ["7L1", "6L1", "5L1", "4M", "4L1", "3L1"], + }, + }, + gorebyss: { + learnset: { + agility: ["7L9", "6L9", "5L10", "4L10", "3L15"], + amnesia: ["7L16", "6L16", "5L19", "4L19", "3L29"], + aquaring: ["7L19", "6L19", "5L24", "4L24"], + aquatail: ["7T", "7L39", "6T", "6L39", "5T", "5L46", "4T", "4L46"], + attract: ["7M", "6M", "5M", "4M", "3M"], + batonpass: ["7L29", "6L29", "5L33", "4L33", "3L43"], + bind: ["7T", "6T", "5T"], + blizzard: ["7M", "6M", "5M", "4M", "3M"], + bodyslam: ["3T"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["4M"], + captivate: ["7L23", "6L23", "5L28", "4M", "4L28"], + coil: ["7L45", "6L45"], + confide: ["7M", "6M"], + confusion: ["7L1", "6L1", "5L6", "4L6", "3L8"], + dive: ["7L26", "6M", "6L26", "5M", "5L37", "4T", "4L37", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["7L11", "6L11"], + endure: ["4M", "3T"], + facade: ["7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["7L50", "6L50", "5L51", "4L51", "3L50"], + hyperbeam: ["7M", "6M", "5M", "4M", "3M"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + infestation: ["7M", "6M"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychic: ["7M", "7L34", "6M", "6L34", "5M", "5L42", "4M", "4L42", "3M", "3L36"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + surf: ["7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "7L14", "6T", "6L14", "5L15", "4M", "4L15", "3M", "3L22"], + watersport: ["7L5", "6L5"], + whirlpool: ["7L1", "6L1", "5L1", "4M", "4L1", "3L1"], + }, + }, + relicanth: { + learnset: { + amnesia: ["8M", "7E", "6E", "5E", "4E", "3E"], + ancientpower: ["8L10", "7L21", "6L1", "5L43", "4T", "4L43", "3L43"], + aquatail: ["8L30", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + blizzard: ["8M", "7M", "6M", "5M", "4M", "3M"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dive: ["8M", "8L20", "7L26", "6M", "6L26", "5M", "5L57", "4T", "4L57", "3M"], + doubleedge: ["8L50", "7L50", "6L50", "5L50", "4L50", "3T", "3L57"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flail: ["8L40", "7L1"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + harden: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + headbutt: ["4T"], + headsmash: ["8L55", "7L1", "6L1", "5L78", "4L78"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["8M", "8L45", "7L46", "6L1", "5L71", "4L71", "3L64"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M"], + liquidation: ["8M"], + magnitude: ["7E", "6E", "5E", "4E", "3E"], + meteorbeam: ["8T"], + mimic: ["3T"], + muddywater: ["8M", "7E", "6E", "5E", "4E"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E", "4T", "4E", "3T"], + mudsport: ["7L1", "6L1", "5L36", "4L36", "3L36"], + naturalgift: ["4M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "8L35", "7M", "7L41", "6M", "6L41", "5M", "5L64", "4M", "4L64", "3M", "3L50"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4E", "3T", "3E"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15", "3M", "3L15"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + skullbash: ["8E", "7E", "6E", "5E", "4E", "3E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E", "5D", "4M", "4E", "3T", "3E"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["8L25", "7L31", "6L29", "5L29", "4L29", "3L29"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["8L5", "7L1", "6L1", "5L8", "5D", "4L8", "3L8"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["8M", "4M"], + yawn: ["8L15", "7L35", "6L22", "5L22", "4L22", "3L22"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + luvdisc: { + learnset: { + agility: ["9M", "9L7", "7L7", "6L7", "5L9", "4L9", "3L16"], + aquajet: ["7E", "6E", "5E", "4E"], + aquaring: ["9L40", "7L40", "7E", "6L40", "6E", "5L46", "5E", "4L37", "4E"], + attract: ["9L20", "7M", "7L20", "6M", "6L22", "5M", "5L27", "4M", "4L22", "3M", "3L28"], + babydolleyes: ["9L37"], + blizzard: ["9M", "7M", "6M", "5M", "4M", "3M"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["7E", "6E", "5E", "4M"], + captivate: ["7L37", "7E", "6L46", "6E", "5L51", "5E", "4M", "4L40", "4E"], + charm: ["9M", "9L1", "7L1", "6L1", "5L4", "5D", "4L4", "3L4"], + confide: ["7M", "6M"], + dive: ["6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainingkiss: ["9M", "9L22", "7L9", "6L9"], + endure: ["9M", "4M", "3T"], + entrainment: ["7E", "6E"], + facade: ["9M", "7M", "6M", "5M", "4M", "3M"], + flail: ["9L26", "7L26", "6L27", "5L31", "4L46", "3L40"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + hail: ["7M", "6M", "5M", "4M", "3M"], + healpulse: ["7E", "6E", "5E"], + heartstamp: ["7L22"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L46", "7L46", "6L40", "5L40"], + icebeam: ["9M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "7T", "6T", "5T", "5D", "4T", "3T"], + liquidation: ["9M", "7T"], + luckychant: ["7L13", "6L14", "5L17", "4L17"], + mimic: ["3T"], + mudsport: ["7E", "6E", "5E", "5D", "4E", "3E"], + naturalgift: ["4M"], + protect: ["9M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L49", "7M", "7L49", "6M", "6L55", "5M", "5L55", "4M", "4L51", "3M", "3L48"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M", "3M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M", "3T"], + snore: ["7T", "6T", "5T", "4T", "3T"], + snowscape: ["9M"], + soak: ["9L42", "7L42"], + splash: ["7E", "6E", "5E", "4E", "3E"], + substitute: ["9M", "7M", "6M", "5M", "4M", "3T"], + supersonic: ["7E", "6E", "5E", "4E", "3E"], + surf: ["9M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["9L31", "7L31", "6L31", "5L37", "4L27", "3L36"], + swift: ["4T", "3T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + takedown: ["9M", "9L34", "7L34", "6L14", "5L14", "4L14", "3L24"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + waterfall: ["9M", "7M", "6M", "5M", "4M", "3M"], + watergun: ["9L4", "7L4", "6L4", "5L7", "4L7", "3L12"], + waterpulse: ["9M", "9L17", "7T", "7L17", "6T", "6L17", "5L22", "4M", "4L31", "3M"], + watersport: ["7E", "6E", "5E", "4E", "3E"], + whirlpool: ["4M"], + wish: ["9L13"], + }, + }, + bagon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L5", "8L5", "7L10", "6L5", "5L5", "5D", "4L5", "3L5", "3S0", "3S1"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L46", "4L46", "3L41"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["9E", "8E", "7E", "6E", "5E"], + doubleedge: ["9L55", "8L55", "7L49", "6L49", "5L55", "4L55", "3T", "3L53"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L10", "8L10", "7L13", "6L13", "5L31", "4L31", "3L33"], + dragonclaw: ["9M", "9L31", "8M", "8L31", "7M", "7L29", "6M", "6L29", "5M", "5L50", "4M", "4L50", "3M", "3L49"], + dragondance: ["9M", "8M", "7E", "6E", "5E", "5D", "4E", "3E"], + dragonpulse: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + dragonrage: ["7E", "6E", "5E", "4E", "3E"], + dragonrush: ["9E", "8E", "7E", "6E", "5E", "4E"], + dragontail: ["9M"], + ember: ["9L1", "8L1", "7L4", "6L4", "5L25", "4L25", "3L25"], + endure: ["9M", "8M", "7E", "6E", "5E", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M", "7E", "6E", "5E", "4E"], + firespin: ["9M"], + flamethrower: ["9M", "9L45", "8M", "8L45", "7M", "7L44", "6M", "6L44", "5M", "4M", "3M"], + focusenergy: ["9L40", "8M", "8L40", "7L21", "6L20", "5L20", "4L20", "3L21"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + headbutt: ["9L15", "8L15", "7L17", "6L16", "5L16", "4T", "4L16", "3L17"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M", "7E", "6E", "5E", "4E", "3E"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "3S1"], + ironhead: ["9M"], + leer: ["9L1", "8L1", "7L7", "6L7", "5L10", "4L10", "3L9"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L50", "8M", "8L50", "7T", "6T", "5T", "5D", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rage: ["7L1", "6L1", "6S3", "5L1", "5S2", "4L1", "3L1", "3S0", "3S1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L39", "6L39", "5L40", "4L40", "3L37"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E", "6E", "6S3", "5E", "4E", "3E"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["9E", "8E", "7E", "6E", "5E", "4T", "4E", "3E"], + wish: ["3S0"], + zenheadbutt: ["9M", "9L35", "8M", "8L35", "7T", "7L34", "6T", "6L34", "5T", "5L35", "4T", "4L35"], + }, + eventData: [ + {generation: 3, level: 5, shiny: 1, moves: ["rage", "bite", "wish"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["rage", "bite", "irondefense"], pokeball: "pokeball"}, + {generation: 5, level: 1, shiny: true, moves: ["rage"], pokeball: "pokeball"}, + {generation: 6, level: 1, moves: ["rage", "thrash"], pokeball: "pokeball"}, + ], + }, + shelgon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L50", "4L50", "3L56"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + doubleedge: ["9L67", "8L67", "7L56", "6L56", "5L61", "4L61", "3T", "3L78"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L1", "8L1", "7L13", "6L13", "5L32", "4L32", "3L38"], + dragonclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L55", "4M", "4L55", "3M", "3L69"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L25", "4L25", "3L25"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + firefang: ["9M", "8M"], + firespin: ["9M"], + flamethrower: ["9M", "9L53", "8M", "8L53", "7M", "7L49", "6M", "6L49", "5M", "4M", "3M"], + focusenergy: ["9L46", "8M", "8L46", "7L21", "6L20", "5L20", "4L20", "3L21"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + headbutt: ["9L15", "8L15", "7L17", "6L1", "5L1", "4T", "4L1", "3L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "8M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L60", "8M", "8L60", "7T", "6T", "5T", "4T"], + protect: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L30", "5M", "5L30", "4M", "4L30", "3M", "3L30"], + rage: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L42", "6L42", "5L43", "4L43", "3L47"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + zenheadbutt: ["9M", "9L39", "8M", "8L39", "7T", "7L35", "6T", "6L35", "5T", "5L37", "4T", "4L37"], + }, + encounters: [ + {generation: 7, level: 15}, + ], + }, + salamence: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "5S3", "4M", "3M", "3S1"], + aircutter: ["4T"], + airslash: ["9M", "8M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L25", "8M", "8L25", "7L25", "6L25", "5L53", "4L53", "3L61"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + defog: ["7T", "4M"], + doubleedge: ["9L73", "8L73", "7L63", "6L1", "5L70", "4L70", "3T", "3L93"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L1", "8L1", "7L13", "6L13", "5L32", "4L32", "3L38", "3S0"], + dragonclaw: ["9M", "9L33", "8M", "8L33", "7M", "7L29", "6M", "6L29", "5M", "5L61", "5S3", "4M", "4L61", "4S2", "3M", "3L79", "3S1"], + dragondance: ["9M", "8M", "5S3", "3S1"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L80"], + dualwingbeat: ["9L1", "8T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L25", "4L25", "3L25"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "4S2", "3M"], + firefang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], + firespin: ["9M"], + flamethrower: ["9M", "9L55", "8M", "8L55", "7M", "7L49", "6M", "6L49", "5M", "4M", "3M"], + fly: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L50", "5M", "5L50", "4M", "4L50", "3M", "3L50", "3S0"], + focusenergy: ["9L46", "8M", "8L46", "7L21", "6L20", "5L20", "4L20", "3L21"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["9L15", "8L15", "7L17", "6L1", "5L1", "4T", "4L1", "3L1"], + heatwave: ["9M", "8M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "8M"], + hydropump: ["9M", "8M", "4S2"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M"], + ironhead: ["9M"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + mimic: ["3T"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + outrage: ["9M", "8M", "8L64", "7T", "6T", "5T", "5S3", "4T"], + protect: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L30", "5M", "5L30", "4M", "4L30", "3M", "3L30", "3S0"], + psychicfangs: ["9M"], + rage: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S1"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + roost: ["9L1", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L42", "6L42", "5L43", "4L43", "3L47", "3S0"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M", "4S2"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["4T"], + zenheadbutt: ["9M", "9L39", "8M", "8L39", "7T", "7L35", "6T", "6L35", "5T", "5L37", "4T", "4L37"], + }, + eventData: [ + {generation: 3, level: 50, moves: ["protect", "dragonbreath", "scaryface", "fly"], pokeball: "pokeball"}, + {generation: 3, level: 50, moves: ["refresh", "dragonclaw", "dragondance", "aerialace"]}, + {generation: 4, level: 50, gender: "M", nature: "Naughty", moves: ["hydropump", "stoneedge", "fireblast", "dragonclaw"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, moves: ["dragondance", "dragonclaw", "outrage", "aerialace"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 9}, + ], + }, + beldum: { + learnset: { + headbutt: ["4T"], + holdback: ["6S0"], + irondefense: ["8M", "7T", "6T", "6S0", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "6S0", "5T", "5D", "4T"], + steelbeam: ["8T"], + tackle: ["8L1"], + takedown: ["7L1", "6L1", "5L1", "5D", "4L1", "3L1"], + zenheadbutt: ["8M", "7T", "6T", "6S0", "5T", "5D", "4T"], + }, + eventData: [ + {generation: 6, level: 5, shiny: true, moves: ["holdback", "ironhead", "zenheadbutt", "irondefense"], pokeball: "cherishball"}, + ], + }, + metang: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L66", "7L41", "6L38", "5L44", "4L44", "3L56"], + allyswitch: ["8M", "7T"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8L1", "7L26", "6L26", "5L32", "4L32"], + confide: ["7M", "6M"], + confusion: ["8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], + cosmicpower: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8L18", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "8L74", "7M", "7L50", "6M", "6L50", "5M", "5L56", "4M", "4L56", "3M", "3L62"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L58", "7T", "7L47", "6T", "6L47", "5T", "5L40", "4T", "4L40", "3L44"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + metalclaw: ["8L0", "7L1", "6L1", "5L1", "4L1", "3L20", "3S0"], + meteorbeam: ["8T"], + meteormash: ["8L50", "7L44", "6L44", "5L48", "4L48", "3L50"], + mimic: ["3T"], + miracleeye: ["7L29", "6L26", "5L26"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "4M", "4L36", "3M", "3L38"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + pursuit: ["7L23", "6L23", "5L28", "4L28", "3L32"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L26"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1"], + takedown: ["8L26", "7L1", "6L1", "5L1", "4L1", "3L1", "3S0"], + telekinesis: ["7T", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L52", "4T", "4L52"], + }, + eventData: [ + {generation: 3, level: 30, moves: ["takedown", "confusion", "metalclaw", "refresh"], pokeball: "pokeball"}, + ], + }, + metagross: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M", "8L72", "7L41", "6L38", "5L44", "5S4", "4L44", "3L66"], + allyswitch: ["8M", "7T"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletpunch: ["8L1", "7L26", "7S7", "6L26", "5L32", "5S1", "5S2", "4L32", "4S0"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + cosmicpower: ["8M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + doubleedge: ["5S4", "5S5", "3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "5S1", "5S3", "5S6", "4M", "3M"], + endure: ["8M", "4M", "3T"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M", "4M", "3T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8L16", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + hammerarm: ["8L0", "7L1", "6L45", "5L45", "5S1", "5S2", "5S4", "5S5", "4L45", "4S0"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "8L82", "7M", "7L60", "6M", "6L60", "5M", "5L71", "5S6", "4M", "4L71", "3M", "3L77"], + icepunch: ["8M", "7T", "7S7", "6T", "5T", "5S2", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L62", "7T", "7L52", "6T", "6L52", "5T", "5L40", "5S4", "4T", "4L40", "3L44"], + ironhead: ["8M", "7T", "7S7", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magnetrise: ["8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + metalclaw: ["8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + meteorbeam: ["8T"], + meteormash: ["8L52", "7L44", "6L44", "5L53", "5S1", "5S3", "5S5", "5S6", "4L53", "4S0", "3L55"], + mimic: ["3T"], + miracleeye: ["7L29", "6L26", "5L26"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "5S3", "4M", "3M"], + psychic: ["8M", "8L34", "7M", "7L38", "6M", "6L38", "5M", "5L36", "5S5", "5S6", "4M", "4L36", "3M", "3L38"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + pursuit: ["7L23", "6L23", "5L28", "4L28", "3L32"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["8M", "8L42", "7L35", "6L35", "5L24", "4L24", "3L1"], + secretpower: ["6M", "4M", "3M"], + selfdestruct: ["8M", "3T"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T", "7S7"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tackle: ["8L1"], + takedown: ["8L26", "7L1", "6L1", "5L1", "4L1", "3L1"], + telekinesis: ["7T", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + zenheadbutt: ["8M", "8L6", "7T", "7L32", "6T", "6L29", "5T", "5L62", "5S2", "5S3", "4T", "4L62", "4S0"], + }, + eventData: [ + {generation: 4, level: 62, nature: "Brave", moves: ["bulletpunch", "meteormash", "hammerarm", "zenheadbutt"], pokeball: "cherishball"}, + {generation: 5, level: 50, shiny: 1, moves: ["meteormash", "earthquake", "bulletpunch", "hammerarm"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["bulletpunch", "zenheadbutt", "hammerarm", "icepunch"], pokeball: "cherishball"}, + {generation: 5, level: 45, shiny: true, moves: ["meteormash", "zenheadbutt", "earthquake", "protect"], pokeball: "pokeball"}, + {generation: 5, level: 45, isHidden: true, moves: ["irondefense", "agility", "hammerarm", "doubleedge"]}, + {generation: 5, level: 45, isHidden: true, moves: ["psychic", "meteormash", "hammerarm", "doubleedge"]}, + {generation: 5, level: 58, nature: "Serious", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["earthquake", "hyperbeam", "psychic", "meteormash"], pokeball: "cherishball"}, + {generation: 7, level: 50, nature: "Jolly", ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["ironhead", "icepunch", "bulletpunch", "stompingtantrum"], pokeball: "cherishball"}, + ], + }, + regirock: { + learnset: { + ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], + chargebeam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8L30", "8S7", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + defensecurl: ["3T"], + dig: ["8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dynamicpunch: ["3T"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + explosion: ["8L78", "7M", "7L1", "6M", "6L1", "6S5", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flashcannon: ["8M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + hammerarm: ["8L42", "8S7", "7L49", "7S6", "6L1", "6S5", "5L81", "4L81"], + headbutt: ["4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icepunch: ["8M", "7T", "6T", "6S5", "5T", "4T", "3T"], + irondefense: ["8M", "8L36", "7T", "7L37", "6T", "6L37", "6S4", "5T", "5L41", "5S3", "4L41", "3L41"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["8M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "8L24", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rockthrow: ["8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L48", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L54", "8S7", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + zapcannon: ["8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["rockthrow", "curse", "superpower", "ancientpower"]}, + {generation: 3, level: 40, moves: ["curse", "superpower", "ancientpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: 1, moves: ["stomp", "rockthrow", "curse", "superpower"]}, + {generation: 5, level: 65, shiny: 1, moves: ["irondefense", "chargebeam", "lockon", "zapcannon"]}, + {generation: 6, level: 40, shiny: 1, moves: ["bulldoze", "curse", "ancientpower", "irondefense"]}, + {generation: 6, level: 50, isHidden: true, moves: ["explosion", "icepunch", "stoneedge", "hammerarm"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, moves: ["stoneedge", "hammerarm", "lockon", "zapcannon"]}, + {generation: 8, level: 70, shiny: 1, moves: ["superpower", "stoneedge", "hammerarm", "curse"]}, + ], + eventOnly: true, + }, + regice: { + learnset: { + amnesia: ["8M", "8L36", "8S7", "7L37", "6L37", "6S4", "6S5", "5L41", "5S3", "4L41", "3L41"], + ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + auroraveil: ["7M"], + avalanche: ["8M", "4M"], + blizzard: ["8M", "8L48", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "6S4", "5M"], + chargebeam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + explosion: ["8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "6S5", "5M", "4M", "3M"], + hammerarm: ["8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], + headbutt: ["4T"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icebeam: ["8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "6S5", "5M", "5L73", "4M", "4L73", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + iciclespear: ["8M"], + icywind: ["8M", "8L1", "8S7", "7T", "7L1", "6T", "6L1", "5T", "5L9", "4T", "4L9", "4S2", "3T", "3L9", "3S0"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "3T"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + superpower: ["8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "6S5", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + zapcannon: ["8L66", "8S7", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["icywind", "curse", "superpower", "ancientpower"]}, + {generation: 3, level: 40, moves: ["curse", "superpower", "ancientpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: 1, moves: ["stomp", "icywind", "curse", "superpower"]}, + {generation: 5, level: 65, shiny: 1, moves: ["amnesia", "chargebeam", "lockon", "zapcannon"]}, + {generation: 6, level: 40, shiny: 1, moves: ["bulldoze", "curse", "ancientpower", "amnesia"]}, + {generation: 6, level: 50, isHidden: true, moves: ["thunderbolt", "amnesia", "icebeam", "hail"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, moves: ["icebeam", "hammerarm", "lockon", "zapcannon"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "zapcannon", "amnesia", "icywind"]}, + ], + eventOnly: true, + }, + registeel: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + amnesia: ["8M", "8L36", "7L37", "6L37", "6S4", "5L41", "5S3", "4L41", "3L41"], + ancientpower: ["8L12", "7L31", "6L31", "6S4", "5L33", "4T", "4L33", "3L33", "3S0", "3S1"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M"], + bodyslam: ["8M", "3T"], + brickbreak: ["8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["8M", "8L6", "7M", "7L1", "6M", "6L1", "5M"], + chargebeam: ["8L1", "8S7", "7M", "7L1", "6M", "6L1", "5M", "5L49", "5S3", "4M", "4L49"], + confide: ["7M", "6M"], + counter: ["3T"], + curse: ["8L30", "7L25", "6L17", "6S4", "5L17", "4L17", "4S2", "3L17", "3S0", "3S1"], + defensecurl: ["3T"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dynamicpunch: ["3T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + explosion: ["8L78", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1", "3T", "3L1"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flashcannon: ["8M", "8L24", "8S7", "7M", "7L43", "7S6", "6M", "6L43", "5M", "5L73", "4M", "4L73"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "6S5", "5T", "4T"], + hammerarm: ["8L42", "7L49", "7S6", "6L1", "5L81", "4L81"], + headbutt: ["4T"], + heavyslam: ["8M", "8L48", "8S7"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "8L72", "7M", "7L67", "6M", "6L67", "5M", "5L89", "4M", "4L89", "3M", "3L65", "3S1"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + irondefense: ["8M", "8L36", "8S7", "7T", "7L37", "6T", "6L37", "6S4", "6S5", "5T", "5L41", "4T", "4L41", "3L41"], + ironhead: ["8M", "8L24", "7T", "7L43", "6T", "6L1", "6S5", "5T", "5L73", "4T", "4L73"], + lockon: ["8L60", "7L55", "7S6", "6L1", "5L57", "5S3", "4L57", "3L57"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalclaw: ["8L1", "7L1", "6L1", "5L9", "4L9", "4S2", "3L9", "3S0"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "6S5", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandtomb: ["8M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + selfdestruct: ["8M", "3T"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stomp: ["8L18", "7L1", "6L1", "5L1", "4L1", "4S2"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + superpower: ["8M", "8L54", "7T", "7L61", "6T", "6L25", "5T", "5L25", "4T", "4L25", "4S2", "3L25", "3S0", "3S1"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + zapcannon: ["8L66", "7L55", "7S6", "6L1", "5L65", "5S3", "4L65", "3L49"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["metalclaw", "curse", "superpower", "ancientpower"]}, + {generation: 3, level: 40, moves: ["curse", "superpower", "ancientpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 30, shiny: 1, moves: ["stomp", "metalclaw", "curse", "superpower"]}, + {generation: 5, level: 65, shiny: 1, moves: ["amnesia", "chargebeam", "lockon", "zapcannon"]}, + {generation: 6, level: 40, shiny: 1, moves: ["curse", "ancientpower", "irondefense", "amnesia"]}, + {generation: 6, level: 50, isHidden: true, moves: ["ironhead", "rockslide", "gravity", "irondefense"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, moves: ["flashcannon", "hammerarm", "lockon", "zapcannon"]}, + {generation: 8, level: 70, shiny: 1, moves: ["heavyslam", "flashcannon", "irondefense", "chargebeam"]}, + ], + eventOnly: true, + }, + latias: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + airslash: ["8M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["8M"], + batonpass: ["8M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L1", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], + confide: ["7M", "6M"], + confusion: ["8L15"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + dive: ["8M", "8S11", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "7S9", "6T", "5T", "4T"], + dragonbreath: ["8L25", "8S10", "7L20", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L45", "8S11", "7T", "7L56", "7S7", "7S8", "6T", "6L1", "5T", "5L80", "4M", "4L70"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + guardsplit: ["8L65", "7L46", "6L1", "5L75"], + healingwish: ["8L70", "7L1", "6L1", "5L85", "4L60"], + healpulse: ["8L50", "7L16", "6L1", "6S6", "5L65", "5S5"], + helpinghand: ["8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mimic: ["3T"], + mistball: ["8L35", "8S11", "7L24", "7S7", "7S8", "7S9", "6L24", "6S6", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], + mudslap: ["4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L60", "7M", "7L51", "7S9", "6M", "6L51", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], + psychocut: ["8M"], + psychoshift: ["8L75", "7L28", "7S7", "7S8", "6L28", "6S6", "5L50", "5S5", "4L50"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + reflecttype: ["8L55", "8S10", "7L36", "6L1", "5L70"], + refresh: ["7L13", "6L13", "5L30", "4L30", "4S3", "4S4", "3L30", "3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L15", "4M", "4L15", "3M", "3L15"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + storedpower: ["8M", "8L1", "7L10", "6L10"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + suckerpunch: ["4T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "8S10", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + sweetkiss: ["8S11"], + swift: ["8M", "4T", "3T"], + tailwind: ["8L20", "7T", "7S9", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + watersport: ["7L4", "6L4", "5L25", "4L25", "4S3", "4S4", "3L25", "3S0"], + whirlpool: ["8M", "4M"], + wish: ["8L30", "7L1", "7S7", "7S8", "6L1", "5L5", "4L5", "3L5"], + zenheadbutt: ["8M", "8L40", "8S10", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["watersport", "refresh", "mistball", "psychic"]}, + {generation: 3, level: 50, shiny: 1, moves: ["mistball", "psychic", "recover", "charm"]}, + {generation: 3, level: 70, moves: ["mistball", "psychic", "recover", "charm"], pokeball: "pokeball"}, + {generation: 4, level: 35, shiny: 1, moves: ["dragonbreath", "watersport", "refresh", "mistball"]}, + {generation: 4, level: 40, shiny: 1, moves: ["watersport", "refresh", "mistball", "zenheadbutt"]}, + {generation: 5, level: 68, shiny: 1, moves: ["psychoshift", "charm", "psychic", "healpulse"]}, + {generation: 6, level: 30, shiny: 1, moves: ["healpulse", "dragonbreath", "mistball", "psychoshift"]}, + {generation: 7, level: 60, shiny: 1, moves: ["mistball", "dragonpulse", "psychoshift", "wish"]}, + {generation: 7, level: 60, moves: ["mistball", "dragonpulse", "psychoshift", "wish"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["mistball", "psychic", "dracometeor", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["reflecttype", "dragonbreath", "zenheadbutt", "surf"]}, + {generation: 8, level: 70, nature: "Bashful", moves: ["mistball", "dragonpulse", "dive", "sweetkiss"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + latios: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["8M"], + airslash: ["8M"], + allyswitch: ["8M", "8L30", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M", "3M"], + aurasphere: ["8M", "8S11"], + batonpass: ["8M"], + bodyslam: ["8M", "3T"], + breakingswipe: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["8L15"], + cut: ["6M", "5M", "4M", "3M"], + defog: ["7T", "4M"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["8T", "7T", "7S10", "6T", "5T", "4T"], + dragonbreath: ["8L25", "7L20", "7S8", "7S9", "6L20", "6S6", "5L20", "4L20", "4S3", "3L20"], + dragonclaw: ["8M", "7M", "6M", "5M", "4M", "3M"], + dragondance: ["8M", "8L1", "8S11", "7L7", "6L1", "5L55", "5S5", "4L55", "3L50", "3S1", "3S2"], + dragonpulse: ["8M", "8L45", "8S11", "7T", "7L56", "7S8", "7S9", "6T", "6L1", "6S7", "5T", "5L80", "4M", "4L70"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + flash: ["6M", "5M", "4M", "3M"], + fly: ["8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + healblock: ["7L1", "6L1", "5L5", "4L5"], + healpulse: ["8L50", "7L16", "6L1", "6S6", "6S7", "5L65", "5S5"], + helpinghand: ["8M", "8L5", "7T", "7L1", "6T", "6L1", "5T", "5L10", "4T", "4L10", "3L10"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + lusterpurge: ["8L35", "7L24", "7S8", "7S9", "7S10", "6L24", "6S6", "6S7", "5L35", "4L35", "4S3", "4S4", "3L35", "3S0", "3S1", "3S2"], + magiccoat: ["7T", "6T", "5T", "4T"], + memento: ["8L70", "7L1", "6L1", "5L85", "4L60", "3L5"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + mysticalfire: ["8M"], + naturalgift: ["4M"], + outrage: ["8M", "7T", "6T", "5T", "4T"], + powersplit: ["8L65", "7L46", "6L1", "5L75"], + protect: ["8M", "7M", "7L4", "6M", "6L4", "5M", "5L25", "4M", "4L25", "4S3", "4S4", "3M", "3L25", "3S0"], + psychic: ["8M", "8L60", "7M", "7L51", "7S10", "6M", "6L51", "6S7", "5M", "5L60", "5S5", "4M", "4L65", "3M", "3L40", "3S0", "3S1", "3S2"], + psychocut: ["8M"], + psychoshift: ["8L75", "7L28", "7S8", "7S9", "6L28", "6S6", "5L50", "5S5", "4L50"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L1", "6L1", "5L1", "4L1", "3L1"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recover: ["8L10", "7L32", "6L32", "5L45", "4L45", "3L45", "3S1", "3S2"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L13", "6L13", "5L30", "4L30", "4S3", "4S4", "3L30", "3S0"], + rest: ["8M", "7M", "6M", "5M", "4M", "3M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "7L1", "6M", "6L1", "5M", "5L15", "4M", "4L15", "3M", "3L15"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shadowclaw: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + simplebeam: ["8L55"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + steelwing: ["8M", "7M", "6M", "4M", "3M"], + storedpower: ["8M", "8L1", "7L10", "6L10"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "4T", "3T"], + tailwind: ["8L20", "7T", "7S10", "6T", "5T", "4T"], + telekinesis: ["7T", "7L36", "6L1", "5M", "5L70"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + twister: ["4T"], + waterfall: ["8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "8L40", "8S11", "7T", "7L41", "6T", "6L40", "5T", "5L40", "4T", "4L40", "4S4"], + }, + eventData: [ + {generation: 3, level: 40, shiny: 1, moves: ["protect", "refresh", "lusterpurge", "psychic"]}, + {generation: 3, level: 50, shiny: 1, moves: ["lusterpurge", "psychic", "recover", "dragondance"]}, + {generation: 3, level: 70, moves: ["lusterpurge", "psychic", "recover", "dragondance"], pokeball: "pokeball"}, + {generation: 4, level: 35, shiny: 1, moves: ["dragonbreath", "protect", "refresh", "lusterpurge"]}, + {generation: 4, level: 40, shiny: 1, moves: ["protect", "refresh", "lusterpurge", "zenheadbutt"]}, + {generation: 5, level: 68, shiny: 1, moves: ["psychoshift", "dragondance", "psychic", "healpulse"]}, + {generation: 6, level: 30, shiny: 1, moves: ["healpulse", "dragonbreath", "lusterpurge", "psychoshift"]}, + {generation: 6, level: 50, nature: "Modest", moves: ["dragonpulse", "lusterpurge", "psychic", "healpulse"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["lusterpurge", "dragonpulse", "psychoshift", "dragonbreath"]}, + {generation: 7, level: 60, moves: ["lusterpurge", "dragonpulse", "psychoshift", "dragonbreath"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["lusterpurge", "psychic", "dracometeor", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["dragondance", "dragonpulse", "zenheadbutt", "aurasphere"]}, + ], + eventOnly: true, + }, + kyogre: { + learnset: { + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L45", "5S3", "4T", "4L15", "4S2", "3L15"], + aquaring: ["9L54", "8L54", "8S11", "7L30", "6L30", "6S5", "5L30", "4L30", "4S2"], + aquatail: ["9L9", "8L9", "7T", "7L15", "6T", "6L15", "5T", "5L65", "4T", "4L65"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "9L1", "8M", "8L1", "8S11", "7L20", "6L15", "6S5", "5L15", "4L15", "3T", "3L20", "3S0"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brine: ["8M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "9L18", "8M", "8L18", "7M", "7L50", "7S7", "7S8", "7S9", "7S10", "6M", "6L50", "5M", "5L60", "4M", "4L30", "3M", "3L30", "3S0"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + defensecurl: ["3T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["9L81", "8L81", "7L80", "6L80", "5L80", "4L65", "3T", "3L65", "3S1"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + endure: ["9M", "8M", "4M", "3T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M", "3M"], + headbutt: ["4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hydropump: ["9M", "9L72", "8M", "8L72", "7L75", "6L75", "5L90", "4L45", "3L45", "3S0", "3S1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icebeam: ["9M", "9L36", "8M", "8L36", "7M", "7L35", "7S7", "7S8", "7S9", "7S10", "6M", "6L35", "6S5", "6S6", "5M", "5L35", "5S3", "5S4", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + liquidation: ["9M", "8M", "7T"], + mimic: ["3T"], + muddywater: ["9L27", "8M", "8L27", "7L60", "7S7", "7S8", "7S9", "6L20", "5L20", "4L20"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + originpulse: ["9L1", "8L63", "7L45", "7S7", "7S8", "7S9", "7S10", "6L45", "6S5"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M", "4L50", "3M", "3L50", "3S1"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + scald: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L5", "6L5", "5L5", "4L5", "3L5"], + secretpower: ["6M", "4M", "3M"], + sheercold: ["9L45", "8L45", "7L65", "6L65", "6S6", "5L75", "5S4", "4L60", "3L60", "3S1"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + surf: ["9M", "8M", "8S11", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "8S11", "7M", "6M", "6S6", "5M", "5S3", "5S4", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["9M", "9L1", "8L1", "7T", "7L1", "6T", "6L1", "5L1", "4M", "4L1", "3M", "3L1"], + waterspout: ["9L90", "8L90", "7L90", "7S10", "6L50", "6S6", "5L50", "5S3", "5S4", "4L50", "4S2", "3L75"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 3, level: 45, shiny: 1, moves: ["bodyslam", "calmmind", "icebeam", "hydropump"]}, + {generation: 3, level: 70, shiny: 1, moves: ["hydropump", "rest", "sheercold", "doubleedge"]}, + {generation: 4, level: 50, shiny: 1, moves: ["aquaring", "icebeam", "ancientpower", "waterspout"]}, + {generation: 5, level: 80, shiny: 1, moves: ["icebeam", "ancientpower", "waterspout", "thunder"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["waterspout", "thunder", "icebeam", "sheercold"], pokeball: "cherishball"}, + {generation: 6, level: 45, moves: ["bodyslam", "aquaring", "icebeam", "originpulse"]}, + {generation: 6, level: 100, nature: "Timid", moves: ["waterspout", "thunder", "sheercold", "icebeam"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["icebeam", "originpulse", "calmmind", "muddywater"]}, + {generation: 7, level: 60, shiny: true, moves: ["icebeam", "originpulse", "calmmind", "muddywater"], pokeball: "cherishball"}, + {generation: 7, level: 60, moves: ["icebeam", "originpulse", "calmmind", "muddywater"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["originpulse", "icebeam", "waterspout", "calmmind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["surf", "bodyslam", "aquaring", "thunder"]}, + ], + eventOnly: true, + }, + groudon: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + ancientpower: ["9L1", "8L1", "7L1", "6L1", "5L45", "5S3", "4T", "4L15", "4S2", "3L15"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "3T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "9L18", "8M", "8L18", "7M", "7L50", "7S7", "7S8", "7S9", "6M", "6L50", "5M", "5L60", "4M", "4L30", "3M", "3L30", "3S0"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["3T"], + crunch: ["9M"], + cut: ["6M", "5M", "4M", "3M"], + defensecurl: ["3T"], + dig: ["9M", "8M", "6M", "5M", "4M", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + dynamicpunch: ["3T"], + earthpower: ["9M", "9L9", "8M", "8L9", "7T", "7L15", "7S10", "6T", "6L15", "5T", "5L65", "5S4", "4T", "4L65"], + earthquake: ["9M", "9L27", "8M", "8L27", "8S11", "7M", "7L35", "7S7", "7S8", "7S9", "6M", "6L35", "6S5", "5M", "5L35", "5S3", "4M", "4L35", "4S2", "3M", "3L35", "3S0"], + endure: ["9M", "8M", "4M", "3T"], + eruption: ["9L90", "8L90", "7L90", "6L50", "5L50", "5S3", "5S4", "4L50", "4S2", "3L75"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "9L72", "8M", "8L72", "7M", "7L75", "6M", "6L75", "5M", "5L90", "4M", "4L45", "3M", "3L45", "3S0", "3S1"], + firefang: ["9M"], + firepunch: ["9M", "8M", "7T", "7S10", "6T", "6S6", "5T", "4T", "3T"], + fissure: ["9L45", "8L45", "7L65", "6L65", "5L75", "4L60", "3L60", "3S1"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hammerarm: ["9L36", "8L36", "8S11", "7L80", "6L20", "6S6", "5L20", "5S4", "4L20"], + headbutt: ["4T"], + heatcrash: ["8M"], + heatwave: ["9M"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + highhorsepower: ["8M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + lavaplume: ["9L1", "8L1", "8S11", "7L20", "6L15", "6S5", "5L15", "4L15"], + megakick: ["8M", "3T"], + megapunch: ["8M", "3T"], + metalclaw: ["9M"], + mimic: ["3T"], + mudshot: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1", "3L1"], + mudslap: ["9M", "4T", "3T"], + naturalgift: ["4M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + poweruppunch: ["6M"], + precipiceblades: ["9L1", "8L63", "7L45", "7S7", "7S8", "7S9", "7S10", "6L45", "6S5"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + rest: ["9M", "9L54", "8M", "8L54", "7M", "7L30", "6M", "6L30", "6S5", "5M", "5L30", "4M", "4L30", "4S2", "3M", "3L50", "3S1"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockblast: ["9M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "6S6", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rollout: ["4T", "3T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaryface: ["9M", "9L1", "8M", "8L1", "8S11", "7L5", "6L5", "5L5", "4L5", "3L5"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + slash: ["4L20", "3L20", "3S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "9L81", "8M", "8L81", "7M", "7L60", "7S7", "7S8", "7S9", "6M", "6L60", "6S6", "5M", "5L80", "5S3", "5S4", "4M", "4L65", "3M", "3L65", "3S1"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["4T", "3T"], + swordsdance: ["9M", "8M", "7M", "7S10", "6M", "5M", "4M", "3T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 3, level: 45, shiny: 1, moves: ["slash", "bulkup", "earthquake", "fireblast"]}, + {generation: 3, level: 70, shiny: 1, moves: ["fireblast", "rest", "fissure", "solarbeam"]}, + {generation: 4, level: 50, shiny: 1, moves: ["rest", "earthquake", "ancientpower", "eruption"]}, + {generation: 5, level: 80, shiny: 1, moves: ["earthquake", "ancientpower", "eruption", "solarbeam"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["eruption", "hammerarm", "earthpower", "solarbeam"], pokeball: "cherishball"}, + {generation: 6, level: 45, moves: ["lavaplume", "rest", "earthquake", "precipiceblades"]}, + {generation: 6, level: 100, nature: "Adamant", moves: ["firepunch", "solarbeam", "hammerarm", "rockslide"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["earthquake", "precipiceblades", "bulkup", "solarbeam"]}, + {generation: 7, level: 60, shiny: true, moves: ["earthquake", "precipiceblades", "bulkup", "solarbeam"], pokeball: "cherishball"}, + {generation: 7, level: 60, moves: ["earthquake", "precipiceblades", "bulkup", "solarbeam"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["precipiceblades", "earthpower", "firepunch", "swordsdance"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["earthquake", "scaryface", "lavaplume", "hammerarm"]}, + ], + eventOnly: true, + }, + rayquaza: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M", "3M"], + airslash: ["9M", "9L1", "8M", "8L1", "7L30", "6L30", "5L35", "4L35", "4S1"], + ancientpower: ["9L1", "8L1", "7L15", "6L15", "5L45", "5S2", "4T", "4L15", "4S1", "3L15"], + aquatail: ["7T", "6T", "5T", "4T"], + avalanche: ["9M", "8M", "4M"], + bind: ["7T", "6T", "5T"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bodyslam: ["9M", "8M", "3T"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + brutalswing: ["8M", "8S9", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + celebrate: ["6S7"], + confide: ["7M", "6M"], + cosmicpower: ["8M"], + crunch: ["9M", "9L9", "8M", "8L9", "7L20", "6L15", "5L15", "4L15", "3L35"], + defog: ["7T"], + dive: ["8M", "6M", "5M", "4T", "3M"], + doubleedge: ["3T"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["9M", "8T", "7T", "6T", "6S7", "5T", "4T"], + dragonascent: ["9L1", "8L1", "8S9", "7T", "6T", "6S4", "6S6", "6S7"], + dragonclaw: ["9M", "8M", "7M", "6M", "6S6", "5M", "4M", "4L20", "3M", "3L20"], + dragondance: ["9M", "9L18", "8M", "8L18", "7L60", "7S8", "6L60", "6S4", "6S6", "5L60", "5S2", "4L30", "3L30"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L50", "7S8", "6T", "6L50", "6S4", "6S5", "5T", "5L90", "5S2", "5S3", "4M", "4L75"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M", "3T"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + extremespeed: ["9L27", "8L27", "8S9", "7L45", "7S8", "6L45", "6S4", "6S5", "6S6", "5L75", "5S3", "4L60", "3L60", "3S0"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "9L63", "8M", "8L63", "7M", "7L65", "6M", "6L65", "6S7", "5M", "5L65", "4M", "4L45", "3M", "3L45", "3S0"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + furycutter: ["4T", "3T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M", "9L72", "8M", "8L72"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L90", "8M", "8L90", "7M", "7L90", "6M", "6L80", "5M", "5L80", "5S3", "4M", "4L65", "3M", "3L75"], + hypervoice: ["9M", "9L45", "8M", "8L45", "7T", "7L75", "6T", "6L20", "5T", "5L20", "4L20"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T", "3T"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M", "3M"], + meteorbeam: ["8T"], + mimic: ["3T"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + outrage: ["9M", "9L81", "8M", "8L81", "7T", "7L80", "6T", "6L50", "5T", "5L50", "5S2", "4T", "4L50", "4S1", "3L65", "3S0"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + rest: ["9M", "9L54", "8M", "8L54", "7M", "7L35", "7S8", "6M", "6L30", "5M", "5L30", "4M", "4L30", "4S1", "3M", "3L50", "3S0"], + return: ["7M", "6M", "5M", "4M", "3M"], + roar: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L5", "6L5", "5L5", "4L5", "3L5"], + secretpower: ["6M", "4M", "3M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M", "3M"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + stealthrock: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["9M", "8M", "4T", "3T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "6S5", "5M", "4M", "3M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + twister: ["9L1", "8L1", "8S9", "7L1", "6L1", "6S5", "5L1", "4T", "4L1", "3L1"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["9M"], + vcreate: ["5S3"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M", "3M"], + waterpulse: ["7T", "6T", "4M", "3M"], + whirlpool: ["8M", "4M"], + wildcharge: ["9M"], + }, + eventData: [ + {generation: 3, level: 70, shiny: 1, moves: ["fly", "rest", "extremespeed", "outrage"]}, + {generation: 4, level: 50, shiny: 1, moves: ["rest", "airslash", "ancientpower", "outrage"]}, + {generation: 5, level: 70, shiny: true, moves: ["dragonpulse", "ancientpower", "outrage", "dragondance"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["extremespeed", "hyperbeam", "dragonpulse", "vcreate"], pokeball: "cherishball"}, + {generation: 6, level: 70, moves: ["extremespeed", "dragonpulse", "dragondance", "dragonascent"]}, + {generation: 6, level: 70, shiny: true, moves: ["dragonpulse", "thunder", "twister", "extremespeed"], pokeball: "cherishball"}, + {generation: 6, level: 70, shiny: true, moves: ["dragonascent", "dragonclaw", "extremespeed", "dragondance"], pokeball: "cherishball"}, + {generation: 6, level: 100, shiny: true, moves: ["dragonascent", "dracometeor", "fly", "celebrate"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["rest", "extremespeed", "dragonpulse", "dragondance"]}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonascent", "brutalswing", "extremespeed", "twister"]}, + ], + eventOnly: true, + }, + jirachi: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + allyswitch: ["8M"], + amnesia: ["8M"], + ancientpower: ["4T"], + aurasphere: ["8M"], + batonpass: ["8M"], + bodyslam: ["8M", "3T"], + calmmind: ["8M", "7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "6S10", "6S12", "6S13", "5L1", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + cosmicpower: ["8M", "8L84", "7L60", "6L60", "6S11", "5L60", "5S7", "4L60", "3L45"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["3T"], + doomdesire: ["8L98", "7L70", "6L70", "5L70", "4L70", "3L50"], + doubleedge: ["8L77", "7L40", "6L40", "5L40", "4L40", "3T", "3L35"], + doubleteam: ["7M", "6M", "5M", "4M", "3M"], + dracometeor: ["5S6", "4S4"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + encore: ["8M"], + endure: ["8M", "4M", "3T"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M", "4M", "3M"], + firepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["8M", "7M", "6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + followme: ["5S6"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + futuresight: ["8M", "8L70", "7L55", "6L55", "5L55", "4L55", "3L40"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + gravity: ["8L35", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], + happyhour: ["6S12"], + headbutt: ["4T"], + healingwish: ["8L56", "7L50", "7S14", "6L50", "6S9", "5L50", "5S5", "5S7", "5S8", "4L50"], + heartstamp: ["6S11"], + helpinghand: ["8M", "8L14", "7T", "7L15", "6T", "6L15", "6S10", "5T", "5L15", "4T", "4L15", "3L15", "3S2"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M", "3M"], + icepunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + icywind: ["8M", "7T", "6T", "5T", "4T", "3T"], + imprison: ["8M"], + irondefense: ["8M", "7T", "6T", "5T", "4T"], + ironhead: ["8M", "7T", "6T", "5T", "4T"], + lastresort: ["8L91", "7T", "7L65", "6T", "6L65", "5T", "5L65", "4T", "4L65"], + lifedew: ["8L21"], + lightscreen: ["8M", "7M", "6M", "5M", "4M", "3M"], + luckychant: ["7L30"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + meteormash: ["8L49", "8S15", "5S5", "5S6", "5S7"], + metronome: ["8M", "3T"], + mimic: ["3T"], + moonblast: ["6S9"], + mudslap: ["4T", "3T"], + naturalgift: ["4M"], + nightmare: ["3T"], + playrough: ["8M", "6S11"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M", "3M"], + psychic: ["8M", "8L42", "8S15", "7M", "7L20", "6M", "6L20", "5M", "5L20", "5S5", "4M", "4L20", "3M", "3L20", "3S2"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M", "4M", "3M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["8M", "7M", "6M", "5M", "4M", "3M"], + refresh: ["7L25", "6L25", "5L25", "4L25", "3L25", "3S2"], + rest: ["8M", "8L63", "8S15", "7M", "7L30", "7S14", "6M", "6L5", "6S13", "5M", "5L5", "4M", "4L5", "4S3", "4S4", "3M", "3L5", "3S0", "3S1", "3S2"], + return: ["7M", "6M", "6S10", "5M", "5S8", "4M", "3M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M", "3M"], + sandstorm: ["8M", "7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + shadowball: ["8M", "7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["8M", "7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M", "3T"], + snore: ["8M", "7T", "6T", "5T", "4T", "3T"], + stealthrock: ["8M", "7T", "6T", "5T", "4M"], + steelbeam: ["8T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M", "3T"], + sunnyday: ["8M", "7M", "6M", "5M", "4M", "3M"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["8M", "8L7", "7L10", "7S14", "6L10", "6S9", "6S12", "5L10", "5S5", "5S8", "4T", "4L10", "3T", "3L10"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T", "3T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M", "3T"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["8M", "7T", "6T", "5T", "4T"], + trickroom: ["8M", "7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M", "7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wish: ["8L1", "8S15", "7L1", "7S14", "6L1", "6S9", "6S10", "6S11", "6S12", "6S13", "5L1", "5S6", "5S7", "5S8", "4L1", "4S3", "4S4", "3L1", "3S0", "3S1"], + zenheadbutt: ["8M", "8L28", "7T", "7L35", "6T", "6L35", "5T", "5L35", "4T", "4L35"], + }, + eventData: [ + {generation: 3, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, + {generation: 3, level: 5, shiny: 1, moves: ["wish", "confusion", "rest"], pokeball: "pokeball"}, + {generation: 3, level: 30, moves: ["helpinghand", "psychic", "refresh", "rest"], pokeball: "pokeball"}, + {generation: 4, level: 5, moves: ["wish", "confusion", "rest"], pokeball: "cherishball"}, + {generation: 4, level: 5, moves: ["wish", "confusion", "rest", "dracometeor"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["healingwish", "psychic", "swift", "meteormash"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["dracometeor", "meteormash", "wish", "followme"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["wish", "healingwish", "cosmicpower", "meteormash"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["wish", "healingwish", "swift", "return"], pokeball: "cherishball"}, + {generation: 6, level: 10, shiny: true, moves: ["wish", "swift", "healingwish", "moonblast"], pokeball: "cherishball"}, + {generation: 6, level: 15, shiny: true, moves: ["wish", "confusion", "helpinghand", "return"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["heartstamp", "playrough", "wish", "cosmicpower"], pokeball: "cherishball"}, + {generation: 6, level: 25, shiny: true, moves: ["wish", "confusion", "swift", "happyhour"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["wish", "confusion", "rest"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["swift", "wish", "healingwish", "rest"], pokeball: "cherishball"}, + {generation: 8, level: 70, nature: "Timid", moves: ["meteormash", "psychic", "rest", "wish"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + deoxys: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M", "3M"], + agility: ["7L55", "6L55", "5L73", "4L73", "3L35"], + allyswitch: ["7T", "5M"], + amnesia: ["7L55", "6L55", "5L73", "4L73", "3L35"], + avalanche: ["4M"], + bind: ["7T", "6T", "5T"], + bodyslam: ["3T"], + brickbreak: ["7M", "6M", "5M", "4M", "3M"], + brutalswing: ["7M"], + calmmind: ["7M", "6M", "5M", "4M", "3M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + cosmicpower: ["7L55", "6L55", "6S10", "5L73", "4L73", "3L35", "3S3"], + counter: ["7L73", "6L73", "5L97", "4L97", "4S6", "3T", "3L50"], + cut: ["6M", "5M", "4M", "3M"], + darkpulse: ["7M", "6M", "5S9"], + detect: ["4S6"], + doubleedge: ["3T"], + doubleteam: ["7M", "7L13", "6M", "6L13", "5M", "5L17", "4M", "4L17", "4S5", "3M", "3L10"], + drainpunch: ["7T", "6T", "5T", "4M"], + dreameater: ["7M", "6M", "5M", "4M", "3T"], + dynamicpunch: ["3T"], + endure: ["4M", "3T"], + energyball: ["7M", "6M", "5M", "4M"], + extremespeed: ["7L73", "6L73", "5L97", "4L97", "4S4", "4S5", "3L50"], + facade: ["7M", "6M", "5M", "4M", "3M"], + firepunch: ["7T", "6T", "5T", "4T", "3T"], + flash: ["6M", "5M", "4M", "3M"], + flashcannon: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M", "3M"], + frustration: ["7M", "6M", "5M", "4M", "3M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M", "3M"], + hyperbeam: ["7M", "7L73", "6M", "6L73", "6S10", "5M", "5L97", "4M", "4L97", "4S7", "3M", "3L50", "3S3"], + icebeam: ["7M", "6M", "5M", "4M", "3M"], + icepunch: ["7T", "6T", "5T", "4T", "3T"], + icywind: ["7T", "6T", "5T", "4T", "3T"], + irondefense: ["7L55", "6T", "6L55", "5T", "5L73", "4T", "4L73", "4S4", "3L35"], + knockoff: ["7T", "7L19", "6T", "6L19", "5T", "5L25", "4T", "4L25", "3L15", "3S1", "3S2"], + laserfocus: ["7T"], + leer: ["7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], + lightscreen: ["7M", "6M", "5M", "4M", "3M"], + lowkick: ["7T", "6T", "5T", "4T"], + lowsweep: ["7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["3T"], + megapunch: ["3T"], + meteormash: ["4S7"], + mimic: ["3T"], + mirrorcoat: ["7L73", "6L73", "5L97", "4L97", "4S6", "3L50"], + mudslap: ["4T", "3T"], + nastyplot: ["5S9"], + naturalgift: ["4M"], + nightmare: ["3T"], + nightshade: ["7L7", "6L7", "5L9", "4L9", "4S8", "3L5"], + poisonjab: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M", "3M"], + psychic: ["7M", "7L31", "6M", "6L31", "5M", "5L41", "4M", "4L41", "3M", "3L25", "3S0", "3S1", "3S2"], + psychoboost: ["7L67", "6L67", "6S10", "5L89", "5S9", "4L89", "4S4", "4S5", "4S6", "4S7", "4S8", "3L45", "3S3"], + psychoshift: ["7L43", "6L43", "5L57", "4L57"], + psychup: ["7M", "6M", "5M", "4M", "3T"], + psyshock: ["7M", "6M", "5M"], + pursuit: ["7L25", "6L25", "5L33", "4L33", "3L20", "3S0", "3S2"], + raindance: ["7M", "6M", "5M", "4M", "3M"], + recover: ["7L61", "6L61", "6S10", "5L81", "5S9", "4L81", "3L40", "3S3"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["7M", "6M", "5M", "4M", "3M"], + rest: ["7M", "6M", "5M", "4M", "3M"], + return: ["7M", "6M", "5M", "4M", "3M"], + rockslide: ["7M", "6M", "5M", "4M", "3T"], + rocksmash: ["6M", "5M", "4M", "3M"], + rocktomb: ["7M", "6M", "5M", "4M", "3M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M", "3M"], + secretpower: ["6M", "4M", "3M"], + seismictoss: ["3T"], + shadowball: ["7M", "6M", "5M", "4M", "3M"], + shockwave: ["7T", "6T", "4M", "3M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M", "3M"], + sleeptalk: ["7M", "6M", "5T", "4M", "3T"], + snatch: ["7T", "7L37", "6T", "6L37", "5T", "5L49", "4M", "4L49", "3M", "3L30", "3S1"], + snore: ["7T", "6T", "5T", "4T", "3T"], + solarbeam: ["7M", "6M", "5M", "4M", "3M"], + spikes: ["7L25", "6L25", "5L33", "4L33", "3L20", "3S1"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M", "3M"], + substitute: ["7M", "6M", "5M", "4M", "3T"], + sunnyday: ["7M", "6M", "5M", "4M", "3M"], + superpower: ["7L37", "6T", "6L37", "5L49", "4T", "4L49", "4S7", "3S0"], + swagger: ["7M", "6M", "5M", "4M", "3T"], + swift: ["7L37", "6L37", "5L49", "4T", "4L49", "4S5", "3T", "3L30", "3S2"], + taunt: ["7M", "7L19", "6M", "6L19", "5M", "5L25", "4M", "4L25", "3M", "3L15", "3S0"], + telekinesis: ["7T", "5M"], + teleport: ["7L13", "6L13", "5L17", "4L17", "3L10"], + throatchop: ["7T"], + thunder: ["7M", "6M", "5M", "4M", "3M"], + thunderbolt: ["7M", "6M", "5M", "4M", "3M"], + thunderpunch: ["7T", "6T", "5T", "4T", "3T"], + thunderwave: ["7M", "6M", "5M", "4M", "3T"], + torment: ["7M", "6M", "5M", "4M", "3M"], + toxic: ["7M", "6M", "5M", "4M", "3M"], + trick: ["7T", "6T", "5T", "4T"], + trickroom: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M", "3M"], + wonderroom: ["7T", "6T", "5T"], + wrap: ["7L1", "6L1", "5L1", "4L1", "4S8", "3L1"], + zapcannon: ["7L61", "6L61", "5L81", "4L81", "4S4", "3L40"], + zenheadbutt: ["7T", "7L49", "6T", "6L49", "5T", "5L65", "4T", "4L65"], + }, + eventData: [ + {generation: 3, level: 30, shiny: 1, moves: ["taunt", "pursuit", "psychic", "superpower"]}, + {generation: 3, level: 30, shiny: 1, moves: ["knockoff", "spikes", "psychic", "snatch"]}, + {generation: 3, level: 30, shiny: 1, moves: ["knockoff", "pursuit", "psychic", "swift"]}, + {generation: 3, level: 70, moves: ["cosmicpower", "recover", "psychoboost", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "zapcannon", "irondefense", "extremespeed"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["psychoboost", "swift", "doubleteam", "extremespeed"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "detect", "counter", "mirrorcoat"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "meteormash", "superpower", "hyperbeam"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["psychoboost", "leer", "wrap", "nightshade"], pokeball: "pokeball"}, + {generation: 5, level: 100, moves: ["nastyplot", "darkpulse", "recover", "psychoboost"], pokeball: "duskball"}, + {generation: 6, level: 80, moves: ["cosmicpower", "recover", "psychoboost", "hyperbeam"]}, + ], + eventOnly: true, + }, + deoxysattack: { + eventOnly: true, + }, + deoxysdefense: { + eventOnly: true, + }, + deoxysspeed: { + eventOnly: true, + }, + turtwig: { + learnset: { + absorb: ["7L9", "6L9", "5L9", "5S0", "5S1", "4L9"], + amnesia: ["7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + bite: ["7L21", "6L21", "5L21", "4L21"], + bodyslam: ["7E", "6E", "5E", "4E"], + bulletseed: ["4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["7L37", "6L37", "5L37", "4L37"], + curse: ["7L17", "6L17", "5L17", "4L17"], + cut: ["6M", "5M", "4M"], + doubleedge: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "7L41", "6T", "6L41", "5T", "5L41", "4M", "4L41"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + grassyterrain: ["7E", "6E"], + growth: ["7E", "6E", "5E", "4E"], + headbutt: ["4T"], + heavyslam: ["7E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + irontail: ["7T", "6T", "5T", "4M"], + leafstorm: ["7L45", "6L45", "5L45", "4L45"], + leechseed: ["7L29", "6L29", "5L29", "4L29"], + lightscreen: ["7M", "6M", "5M", "4M"], + megadrain: ["7L25", "6L25", "5L25", "4L25"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + protect: ["7M", "6M", "5M", "4M"], + razorleaf: ["7L13", "6L13", "5L13", "4L13"], + reflect: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandtomb: ["7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + spitup: ["7E", "6E", "5E", "4E"], + stealthrock: ["7T", "6T", "5T", "4M"], + stockpile: ["7E", "6E", "5E", "5S1", "4E"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superpower: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["7E", "6E", "5E", "4E"], + swordsdance: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + tackle: ["7L1", "6L1", "5L1", "5S0", "5S1", "4L1"], + thrash: ["7E", "6E", "5E", "4E"], + tickle: ["7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + wideguard: ["7E", "6E", "5E"], + withdraw: ["7L5", "6L5", "5L5", "5S0", "5S1", "4L5"], + workup: ["7M"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "withdraw", "absorb"]}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["tackle", "withdraw", "absorb", "stockpile"]}, + ], + }, + grotle: { + learnset: { + absorb: ["7L1", "6L9", "5L9", "4L9"], + attract: ["7M", "6M", "5M", "4M"], + bite: ["7L22", "6L22", "5L22", "4L22"], + bulletseed: ["4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["7L42", "6L42", "5L42", "4L42"], + curse: ["7L17", "6L17", "5L17", "4L17"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4M", "4L47"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + irontail: ["7T", "6T", "5T", "4M"], + leafstorm: ["7L52", "6L52", "5L52", "4L52"], + leechseed: ["7L32", "6L32", "5L32", "4L32"], + lightscreen: ["7M", "6M", "5M", "4M"], + megadrain: ["7L27", "6L27", "5L27", "4L27"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + protect: ["7M", "6M", "5M", "4M"], + razorleaf: ["7L13", "6L13", "5L13", "4L13"], + reflect: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stealthrock: ["7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "6M", "5M", "4M"], + withdraw: ["7L1", "6L1", "5L1", "4L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + torterra: { + learnset: { + absorb: ["7L1", "6L1", "5L1", "4L1"], + attract: ["7M", "6M", "5M", "4M"], + bite: ["7L22", "6L22", "5L22", "4L22"], + block: ["7T", "6T", "5T", "4T"], + bulldoze: ["7M", "6M", "5M"], + bulletseed: ["4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["7L45", "6L45", "5L45", "4L45"], + curse: ["7L17", "6L17", "5L17", "4L17"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "7L1", "6M", "6L32", "5M", "5L32", "5S0", "4M", "4L32"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frenzyplant: ["7T", "6T", "5T", "4T"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4M", "4L51"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasspledge: ["7T", "6T", "5T"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + ironhead: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + leafstorm: ["7L57", "6L57", "5L57", "4L57"], + leechseed: ["7L33", "6L33", "5L33", "4L33"], + lightscreen: ["7M", "6M", "5M", "4M"], + megadrain: ["7L27", "6L27", "5L27", "4L27"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + outrage: ["7T", "6T", "5T", "5S0", "4T"], + protect: ["7M", "6M", "5M", "4M"], + razorleaf: ["7L1", "6L1", "5L1", "4L1"], + reflect: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandstorm: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "5S0", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "7L39", "6T", "6L39", "5T", "5L39", "4T", "4L39"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "6M", "5M", "4M"], + withdraw: ["7L1", "6L1", "5L1", "4L1"], + woodhammer: ["7L1", "6L1", "5L1", "5S0", "4L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["woodhammer", "earthquake", "outrage", "stoneedge"], pokeball: "cherishball"}, + ], + }, + chimchar: { + learnset: { + acrobatics: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + aerialace: ["7M", "6M", "5M", "4M"], + assist: ["7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + blazekick: ["7E", "6E", "5E", "4E"], + brickbreak: ["7M", "6M", "5M", "4M"], + bulkup: ["7M", "6M", "5M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "6E", "5E", "4E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doublekick: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + ember: ["7L7", "6L7", "5L7", "5S1", "5S3", "4L7"], + encore: ["7E", "6E", "5E", "4E"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31"], + fakeout: ["7E", "6E", "5E", "5S3", "4E"], + fireblast: ["7M", "6M", "5M", "4M"], + firepledge: ["7T", "6T", "5T"], + firepunch: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + firespin: ["7L33", "6L33", "5L33", "4L33"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L41", "4S0", "4S2"], + flamewheel: ["7L17", "6L17", "5L17", "4L17"], + fling: ["7M", "6M", "5M", "4M"], + focusenergy: ["7E", "6E", "5E", "4E"], + focuspunch: ["7T", "7E", "6T", "6E", "5E", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyswipes: ["7L15", "6L15", "5L15", "4L15"], + grassknot: ["7M", "6M", "5M", "4M", "4S0", "4S2"], + gunkshot: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + heatwave: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + helpinghand: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M"], + leer: ["7L1", "6L1", "5L1", "5S1", "5S3", "4L1"], + lowkick: ["7T", "6T", "5T", "4T"], + lowsweep: ["7M", "6M", "5M"], + mudslap: ["4T"], + nastyplot: ["7L23", "6L23", "5L23", "4L23"], + naturalgift: ["4M"], + overheat: ["7M", "6M", "5M", "4M"], + poweruppunch: ["7E", "6M"], + protect: ["7M", "6M", "5M", "4M"], + quickguard: ["7E", "6E", "5E"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "5S1", "4L1"], + secretpower: ["6M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slackoff: ["7L41", "6L41", "5L41", "4L39"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + submission: ["7E", "6E", "5E"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "6M", "5M", "4M"], + taunt: ["7M", "7L9", "6M", "6L9", "5M", "5L9", "5S1", "5S3", "4M", "4L9"], + thunderpunch: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E", "4S0", "4S2"], + torment: ["7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + vacuumwave: ["4T"], + willowisp: ["7M", "6M", "5M", "4M"], + workup: ["7M"], + }, + eventData: [ + {generation: 4, level: 40, gender: "M", nature: "Mild", moves: ["flamethrower", "thunderpunch", "grassknot", "helpinghand"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["scratch", "leer", "ember", "taunt"]}, + {generation: 4, level: 40, gender: "M", nature: "Hardy", moves: ["flamethrower", "thunderpunch", "grassknot", "helpinghand"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "ember", "taunt", "fakeout"]}, + ], + }, + monferno: { + learnset: { + acrobatics: ["7M", "7L46", "6M", "6L46", "5M", "5L46"], + aerialace: ["7M", "6M", "5M", "4M"], + attract: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + bulkup: ["7M", "6M", "5M", "4M"], + captivate: ["4M"], + closecombat: ["7L36", "6L36", "5L36", "4L36"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + ember: ["7L1", "6L1", "5L1", "4L1"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + feint: ["7L26", "6L26", "5L26", "4L26"], + fireblast: ["7M", "6M", "5M", "4M"], + firepledge: ["7T", "6T", "5T"], + firepunch: ["7T", "6T", "5T", "4T"], + firespin: ["7L39", "6L39", "5L39", "4L39"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "6M", "5M", "4M"], + flamewheel: ["7L19", "6L19", "5L19", "4L19"], + flareblitz: ["7L56", "6L56", "5L56", "4L49"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyswipes: ["7L16", "6L16", "5L16", "4L16"], + grassknot: ["7M", "6M", "5M", "4M"], + gunkshot: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + heatwave: ["7T", "6T", "5T", "4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M"], + leer: ["7L1", "6L1", "5L1", "4L1"], + lowkick: ["7T", "6T", "5T", "4T"], + lowsweep: ["7M", "6M", "5M"], + machpunch: ["7L1", "6L14", "5L14", "4L14"], + mudslap: ["4T"], + naturalgift: ["4M"], + overheat: ["7M", "6M", "5M", "4M"], + poisonjab: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "4L1"], + secretpower: ["6M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + slackoff: ["7L49", "6L49", "5L49", "4L46"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "6M", "5M", "4M"], + taunt: ["7M", "7L9", "6M", "6L9", "5M", "5L9", "4M", "4L9"], + thunderpunch: ["7T", "6T", "5T", "4T"], + torment: ["7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + toxic: ["7M", "6M", "5M", "4M"], + uturn: ["7M", "6M", "5M", "4M"], + vacuumwave: ["4T"], + willowisp: ["7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + }, + }, + infernape: { + learnset: { + acrobatics: ["7M", "7L52", "6M", "6L52", "5M", "5L52"], + aerialace: ["7M", "6M", "5M", "4M"], + attract: ["7M", "6M", "5M", "4M"], + blastburn: ["7T", "6T", "5T", "4T"], + brickbreak: ["7M", "6M", "5M", "4M"], + bulkup: ["7M", "6M", "5M", "4M"], + bulldoze: ["7M", "6M", "5M"], + calmmind: ["7M", "7L58", "6M", "6L58", "5M", "5L58", "4M", "4L53"], + captivate: ["4M"], + closecombat: ["7L1", "6L36", "6S1", "5L36", "5S0", "4L41"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["7M", "6M", "5M", "4M"], + ember: ["7L1", "6L1", "5L1", "4L1"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + feint: ["7L26", "6L26", "5L26", "4L29"], + fireblast: ["7M", "6M", "6S1", "5M", "5S0", "4M"], + firepledge: ["7T", "6T", "5T"], + firepunch: ["7T", "6T", "6S1", "5T", "4T"], + firespin: ["7L42", "6L42", "5L42", "4L45"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "6M", "5M", "4M"], + flamewheel: ["7L19", "6L19", "5L19", "4L21"], + flareblitz: ["7L1", "6L1", "5L68", "4L57"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "6S1", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyswipes: ["7L16", "6L16", "5L16", "4L17"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "5S0", "4M"], + gunkshot: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + heatwave: ["7T", "6T", "5T", "4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + leer: ["7L1", "6L1", "5L1", "4L1"], + lowkick: ["7T", "6T", "5T", "4T"], + lowsweep: ["7M", "6M", "5M"], + machpunch: ["7L1", "6L14", "5L14", "4L14"], + mudslap: ["4T"], + naturalgift: ["4M"], + overheat: ["7M", "6M", "5M", "4M"], + poisonjab: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + punishment: ["7L29", "6L29", "5L29", "4L33"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "4L1"], + secretpower: ["6M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stealthrock: ["7T", "6T", "5T", "4M"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "6M", "5M", "4M"], + taunt: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + thunderpunch: ["7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uturn: ["7M", "6M", "5M", "5S0", "4M"], + vacuumwave: ["4T"], + willowisp: ["7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["fireblast", "closecombat", "uturn", "grassknot"], pokeball: "cherishball"}, + {generation: 6, level: 88, isHidden: true, moves: ["fireblast", "closecombat", "firepunch", "focuspunch"], pokeball: "cherishball"}, + ], + }, + piplup: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["7E", "6E", "5E", "4E"], + aquaring: ["7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + bide: ["7L22", "7E", "6L22", "6E", "5L22", "5E", "4L18"], + blizzard: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + brine: ["7L29", "6L29", "5L29", "4M", "4L29"], + bubble: ["7L8", "6L8", "5L8", "5S0", "5S3", "4L8"], + bubblebeam: ["7L18", "7S5", "6L18", "5L18", "4L18"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doublehit: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + drillpeck: ["7L39", "7S5", "6L39", "5L39", "4L39"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + featherdance: ["7E", "6E", "5E", "5S1", "5S2", "5S3", "4E"], + flail: ["7E", "6E", "5E", "4E"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L25", "6L25", "5L25", "4L25"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L4", "6L4", "6S4", "5L4", "5S0", "5S3", "4L4"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["7L43", "7E", "7S5", "6L43", "6E", "5L43", "5E", "5S1", "4L43", "4E"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + mist: ["7L36", "6L36", "5L36", "4L36"], + mudslap: ["7E", "6E", "5E", "4T", "4E"], + mudsport: ["7E", "6E", "5E", "4E"], + naturalgift: ["4M"], + peck: ["7L15", "6L15", "5L15", "5S1", "5S2", "4L15"], + pluck: ["5M", "4M"], + pound: ["7L1", "6L1", "6S4", "5L1", "5S0", "5S3", "4L1"], + powertrip: ["7E"], + protect: ["7M", "6M", "5M", "4M"], + quash: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "6S4", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M", "5S2"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sing: ["5S2"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + stealthrock: ["7T", "6T", "5T", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + supersonic: ["7E", "6E", "5E", "4E"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["7M", "6M", "5M", "4M"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M"], + watersport: ["7L11", "6L11", "5L11", "5S1", "4L11"], + whirlpool: ["7L32", "7S5", "6L32", "5L32", "4M", "4L32"], + workup: ["7M"], + yawn: ["7E", "6E", "5E", "4E"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "growl", "bubble"]}, + {generation: 5, level: 15, shiny: 1, moves: ["hydropump", "featherdance", "watersport", "peck"], pokeball: "cherishball"}, + {generation: 5, level: 15, gender: "M", moves: ["sing", "round", "featherdance", "peck"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["pound", "growl", "bubble", "featherdance"]}, + {generation: 6, level: 7, moves: ["pound", "growl", "return"], pokeball: "cherishball"}, + {generation: 7, level: 30, gender: "M", nature: "Hardy", moves: ["hydropump", "bubblebeam", "whirlpool", "drillpeck"], pokeball: "pokeball"}, + ], + }, + prinplup: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + attract: ["7M", "6M", "5M", "4M"], + bide: ["7L24", "6L24", "5L24", "4L19"], + blizzard: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + bubble: ["7L1", "6L8", "5L8", "4L8"], + bubblebeam: ["7L19", "6L19", "5L19", "4L19"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + drillpeck: ["7L46", "6L46", "5L46", "4L46"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L28", "6L28", "5L28", "4L28"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hydropump: ["7L50", "6L50", "5L51", "4L51"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + metalclaw: ["7L1", "6L16", "5L16", "4L16"], + mist: ["7L42", "6L42", "5L42", "4L42"], + mudslap: ["4T"], + naturalgift: ["4M"], + peck: ["7L15", "6L15", "5L15", "4L15"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + quash: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["7M", "6M", "5M", "4M"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M"], + watersport: ["7L11", "6L11", "5L11", "4L11"], + whirlpool: ["7L37", "6L37", "5L37", "4M", "4L37"], + workup: ["7M"], + }, + }, + empoleon: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + aquajet: ["7L1", "6L36", "5L36", "5S0", "4L36"], + attract: ["7M", "6M", "5M", "4M"], + avalanche: ["4M"], + blizzard: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + brine: ["7L33", "6L33", "5L33", "4M", "4L33"], + bubble: ["7L1", "6L1", "5L1", "4L1"], + bubblebeam: ["7L19", "6L19", "5L19", "4L19"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + dig: ["6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + drillpeck: ["7L52", "6L52", "5L52", "4L52"], + earthquake: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + flashcannon: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L28", "6L28", "5L28", "4L28"], + furycutter: ["4T"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "5S0", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hydrocannon: ["7T", "6T", "5T", "4T"], + hydropump: ["7L59", "6L59", "5L59", "5S0", "4L59"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "5S0", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + irondefense: ["7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + liquidation: ["7T"], + metalclaw: ["7L1", "6L16", "5L16", "4L16"], + mist: ["7L46", "6L46", "5L46", "4L46"], + mudslap: ["4T"], + naturalgift: ["4M"], + peck: ["7L15", "6L15", "5L15", "4L15"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + quash: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + steelwing: ["7M", "6M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L19"], + swordsdance: ["7M", "7L11", "6M", "6L11", "5M", "5L11", "4M", "4L11"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["7M", "6M", "5M", "4M"], + waterpledge: ["7T", "6T", "5T"], + waterpulse: ["7T", "6T", "4M"], + whirlpool: ["7L39", "6L39", "5L39", "4M", "4L39"], + workup: ["7M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["hydropump", "icebeam", "aquajet", "grassknot"], pokeball: "cherishball"}, + ], + }, + starly: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L25", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + agility: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + astonish: ["9E", "7E", "6E", "5E", "4E"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M", "9L37", "7L37", "6L37", "5L37", "4L37"], + captivate: ["4M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + detect: ["7E", "6E", "5E"], + doubleedge: ["9E", "7E", "6E", "5E", "4E"], + doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9L17", "7T", "7L17", "6T", "6L17", "5T", "5L17", "4T", "4L17"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["9E", "7E", "6E", "5E", "4E"], + finalgambit: ["9L41", "7L41", "6L41", "5L41"], + fly: ["9M", "7M", "6M", "5M", "4M"], + foresight: ["7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["9E", "7E", "6E", "5E", "4E"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + mirrormove: ["7E", "6E"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + pursuit: ["7E", "6E", "5E", "4E"], + quickattack: ["9L5", "7L5", "6L5", "5L5", "4L5"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["7E", "6E", "5E"], + roost: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["9E", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "7E", "6M", "6E", "5E", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L29", "7L29", "6L29", "5L29", "4L29"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["9E", "7T", "7E", "6T", "6E", "5E"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + whirlwind: ["9L21", "7L21", "6L21", "5L21", "4L21"], + wingattack: ["9L9", "7L9", "6L9", "5L9", "4L9"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 4, level: 1, gender: "M", nature: "Mild", moves: ["tackle", "growl"], pokeball: "pokeball"}, + ], + }, + staravia: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L28", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + agility: ["9M", "9L38", "7L38", "6L38", "5L38", "4L38"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M", "9L43", "7L43", "6L43", "5L43", "4L43"], + captivate: ["4M"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + featherdance: ["5D"], + finalgambit: ["9L48", "7L48", "6L48", "5L48"], + fly: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "6M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["9M", "7T", "6T", "5T", "5D", "4T"], + takedown: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["7T", "6T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + whirlwind: ["9L23", "7L23", "6L23", "5L23", "4L23"], + wingattack: ["9L9", "7L9", "6L9", "5L9", "5D", "4L9"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 4, level: 4}, + ], + }, + staraptor: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L28", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + agility: ["9M", "9L41", "7L41", "6L41", "5L41", "4L41"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + bravebird: ["9M", "9L49", "7L49", "6L49", "5L49", "4L49"], + captivate: ["4M"], + closecombat: ["9M", "9L0", "7L1", "6L34", "5L34", "4L34"], + confide: ["7M", "6M"], + defog: ["7T", "4M"], + doubleteam: ["9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["9L18", "7T", "7L18", "6T", "6L18", "5T", "5L18", "4T", "4L18"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + finalgambit: ["9L57", "7L57", "6L57", "5L57"], + fly: ["9M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hurricane: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pluck: ["5M", "4M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + skyattack: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "6M", "4M"], + strugglebug: ["9M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tackle: ["9L1", "7L1", "6L1", "5L1", "4L1"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M", "9L33", "7L33", "6L33", "5L33", "4L33"], + terablast: ["9M"], + thief: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["7T", "6T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + whirlwind: ["9L23", "7L23", "6L23", "5L23", "4L23"], + wingattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + workup: ["7M", "5M"], + }, + }, + bidoof: { + learnset: { + amnesia: ["7L41", "6L29", "5L29", "4L29"], + aquatail: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["7L25"], + curse: ["7L49", "6L45", "5L45", "4L45"], + cut: ["6M", "5M", "4M"], + defensecurl: ["7L5", "7E", "6L9", "6E", "5L9", "5E", "4L9", "4E"], + dig: ["6M", "5M", "4M"], + doubleedge: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["7E", "6E", "5E", "4M"], + facade: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["7E", "6E", "5E", "4E"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L5", "5L5", "4L5"], + headbutt: ["7L13", "6L17", "5L17", "4T", "4L17"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperfang: ["7L17", "6L21", "5L21", "4L21"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + lastresort: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + mudsport: ["7E"], + naturalgift: ["4M"], + odorsleuth: ["7E", "6E", "5E", "4E"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + quickattack: ["7E", "6E", "5E", "4E"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["7E", "6E", "5E"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["7L9", "7E", "6L13", "6E", "5L13", "5E", "4T", "4L13", "4E"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "5D", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + skullbash: ["7E", "6E", "5E"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "7L33", "6T", "6L37", "5T", "5L37", "4T", "4L37"], + superpower: ["7T", "7L45", "6T", "6L41", "5T", "5L41", "4T", "4L41"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "7L37"], + tackle: ["7L1", "6L1", "5L1", "5D", "4L1", "4S0"], + takedown: ["7L29", "6L33", "5L33", "4L33"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderwave: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + watersport: ["7E", "6E", "5E", "4E"], + workup: ["7M", "5M"], + yawn: ["7L21", "6L25", "5L25", "4L25"], + }, + eventData: [ + {generation: 4, level: 1, gender: "M", nature: "Lonely", abilities: ["simple"], moves: ["tackle"], pokeball: "pokeball"}, + ], + }, + bibarel: { + learnset: { + amnesia: ["7L48", "6L33", "5L33", "4L33"], + aquajet: ["7L1"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["7L28"], + curse: ["7L58", "6L53", "5L53", "4L53"], + cut: ["6M", "5M", "4M"], + defensecurl: ["7L5", "6L9", "5L9", "4L9"], + dig: ["6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1"], + headbutt: ["7L13", "6L18", "5L18", "4T", "4L18"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + hyperfang: ["7L18", "6L23", "5L23", "4L23"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + lastresort: ["7T", "6T", "5T", "4T"], + liquidation: ["7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + rollout: ["7L9", "6L13", "5L13", "4T", "4L13"], + rototiller: ["7L1", "6L1"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "7L38", "6T", "6L43", "5T", "5L43", "4T", "4L43"], + superpower: ["7T", "7L53", "6T", "6L48", "5T", "5L48", "4T", "4L48"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "7L43"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + takedown: ["7L33", "6L38", "5L38", "4L38"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderwave: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["7M", "6M", "5M", "4M"], + watergun: ["7L1", "6L15", "5L15", "4L15"], + waterpulse: ["7T", "6T", "4M"], + whirlpool: ["4M"], + workup: ["7M", "5M"], + yawn: ["7L23", "6L28", "5L28", "4L28"], + }, + encounters: [ + {generation: 4, level: 4}, + ], + }, + kricketot: { + learnset: { + bide: ["7L1", "6L1", "5L1", "4L1"], + bugbite: ["9L16", "7T", "7L16", "6T", "6L16", "5T", "5L16", "4T", "4L16"], + endeavor: ["7T", "6T", "5T", "5D", "4T"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + snore: ["7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["9M", "9L6", "7L6", "6M", "6L6", "5L6", "5D"], + tackle: ["9L1"], + terablast: ["9M"], + uproar: ["7T", "6T", "5T", "5D", "4T"], + }, + }, + kricketune: { + learnset: { + absorb: ["9L14", "7L14"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], + bide: ["7L1", "6L1", "5L1", "4L1"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + bugbite: ["7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "9L46", "7L46", "6L46", "5L46", "4L34"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "7M", "6M", "5M", "4M"], + fellstinger: ["9L36", "7L36", "6L36"], + flash: ["6M", "5M", "4M"], + focusenergy: ["9L22", "7L22", "6L22", "5L22", "4L22"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9L0", "7L1", "6L10", "5L10", "4T", "4L10"], + gigadrain: ["9M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + leechlife: ["9M", "7M", "6L14", "5L14", "4L14"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["9L42", "7L42", "6L42", "5L42", "4L42"], + perishsong: ["9L50", "7L50", "6L50", "5L50", "4L38"], + pounce: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + screech: ["9L34", "7L34", "6L34", "5L34", "4L30"], + secretpower: ["6M", "4M"], + silverwind: ["4M"], + sing: ["9L18", "7L18", "6L18", "5L18", "4L18"], + slash: ["9L26", "7L26", "6L26", "5L26", "4L26"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stickyweb: ["9L44", "7L44", "6L44"], + strength: ["6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["9M", "6M", "5M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M", "9L38", "7M", "7L38", "6M", "6L38", "5M", "5L38", "4M", "4L38"], + terablast: ["9M"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + xscissor: ["9M", "9L30", "7M", "7L30", "6M", "6L30", "5M", "5L30", "4M", "4L26"], + }, + }, + shinx: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + babydolleyes: ["9E", "8E", "7L11", "6L11"], + bite: ["9L12", "8L12", "7L17", "6L17", "5L17", "4L13"], + captivate: ["4M"], + charge: ["9L8", "8L8", "7L9", "6L9", "5L9", "5D", "4L9"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L36", "8M", "8L36", "7L33", "6L33", "5L33", "4L29"], + discharge: ["9L40", "8L40", "7L41", "6L41", "5L41", "4L41"], + doublekick: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M", "7E", "6E"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M", "7E", "6E"], + firefang: ["9M", "8M", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + howl: ["9E", "8E", "7E", "6E", "5E", "4E"], + icefang: ["9M", "8M", "7E", "6E", "5E", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leer: ["9L1", "8L1", "7L5", "6L5", "5L5", "4L5"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "5D", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9E", "8E", "7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + roar: ["9L20", "8L20", "7M", "7L21", "6M", "6L21", "5M", "5L21", "4M", "4L21"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L28", "8M", "8L28", "7L37", "6L37", "5L37", "4L37"], + secretpower: ["6M", "4M"], + shockwave: ["9E", "8E", "7T", "7E", "6T", "6E", "5E", "4M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spark: ["9L16", "8L16", "7L13", "6L13", "5L13", "4L13"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + swagger: ["9L44", "8L44", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L25"], + swift: ["9M", "8M", "7E", "6E", "5E", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M", "8M", "7L29", "7E", "6L29", "6E", "5L29", "5E", "4L29", "4E"], + thundershock: ["9L4", "8L4"], + thunderwave: ["9M", "9L32", "8M", "8L32", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + voltswitch: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M"], + wildcharge: ["9M", "9L48", "8M", "8L48", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + }, + }, + luxio: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L12", "8L12", "7L18", "6L18", "5L18", "4L13"], + captivate: ["4M"], + charge: ["9L1", "8L1", "7L9", "6L9", "5L9", "4L9"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L48", "8M", "8L48", "7L38", "6L38", "5L38", "4L33"], + discharge: ["9L54", "8L54", "7L48", "6L48", "5L48", "4L48"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + firefang: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icefang: ["9M", "8M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + roar: ["9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L43", "6L43", "5L43", "4L43"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spark: ["9L18", "8L18", "7L13", "6L13", "5L13", "4L13"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + swagger: ["9L60", "8L60", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M", "8M", "7L33", "6L33", "5L33", "4L33"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L42", "8M", "8L42", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + voltswitch: ["9M", "9L31", "8M", "8L31", "7M", "6M", "5M"], + wildcharge: ["9M", "9L68", "8M", "8L68", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + }, + }, + luxray: { + learnset: { + agility: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L12", "8L12", "7L18", "6L18", "5L18", "4L13"], + bodyslam: ["9M"], + captivate: ["4M"], + charge: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L56", "8M", "8L56", "7L42", "6L42", "5L42", "4L35"], + discharge: ["9L64", "8L64", "7L56", "6L56", "5L56", "4L56"], + doubleteam: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + electroball: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "8M"], + firefang: ["9M", "8M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "8M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + roar: ["9L24", "8L24", "7M", "7L23", "6M", "6L23", "5M", "5L23", "4M", "4L23"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L40", "8M", "8L40", "7L49", "6L49", "5L49", "4L49"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spark: ["9L18", "8L18", "7L13", "6L13", "5L13", "4L13"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["9L72", "8L72", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28"], + swift: ["9M", "8M", "4T"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M", "8M", "7L35", "6L35", "5L35", "4L35"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L48", "8M", "8L48", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + voltswitch: ["9M", "9L33", "8M", "8L33", "7M", "6M", "5M"], + wildcharge: ["9M", "9L80", "8M", "8L80", "7M", "7L63", "6M", "6L63", "5M", "5L63"], + }, + }, + cranidos: { + learnset: { + ancientpower: ["7L33", "6L33", "5L33", "4T", "4L28"], + assurance: ["7L24", "6L24", "5L24", "4L24"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L28", "6L28", "5L28"], + confide: ["7M", "6M"], + crunch: ["7E", "6E", "5E", "5S0", "4E"], + curse: ["7E", "6E", "5E", "4E"], + dig: ["6M", "5M", "4M"], + doubleedge: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["7T", "6T", "5T", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + firepunch: ["7T", "6T", "5T", "5D", "4T"], + flamethrower: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focusenergy: ["7L6", "6L6", "5L6", "4L6"], + frustration: ["7M", "6M", "5M", "4M"], + hammerarm: ["7E", "6E", "5E", "4E"], + headbutt: ["7L1", "6L1", "5L1", "5D", "5S0", "4T", "4L1"], + headsmash: ["7L46", "6L46", "5L46", "4L43"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + ironhead: ["7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + leer: ["7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + pursuit: ["7L10", "6L10", "5L10", "5S0", "4L10"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + scaryface: ["7L19", "6L19", "5L19", "4L19"], + screech: ["7L42", "6L42", "5L42", "4L37"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + slam: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stomp: ["7E", "6E", "5E", "4E"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["7M", "6M", "5M", "4M"], + takedown: ["7L15", "6L15", "5L15", "5S0", "4L15"], + thief: ["7M", "6M", "5M", "4M"], + thrash: ["7E", "6E", "5E", "4E"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderpunch: ["7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + whirlwind: ["7E", "6E", "5E", "4E"], + zenheadbutt: ["7T", "7L37", "6T", "6L37", "5T", "5L37", "4T", "4L33"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["pursuit", "takedown", "crunch", "headbutt"], pokeball: "cherishball"}, + ], + }, + rampardos: { + learnset: { + ancientpower: ["7L36", "6L36", "5L36", "4T", "4L28"], + assurance: ["7L24", "6L24", "5L24", "4L24"], + attract: ["7M", "6M", "5M", "4M"], + avalanche: ["4M"], + blizzard: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + chipaway: ["7L28", "6L28", "5L28"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["7T", "6T", "5T", "4M"], + dragontail: ["7M", "6M", "5M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endeavor: ["7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + firepunch: ["7T", "6T", "5T", "4T"], + flamethrower: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focusenergy: ["7L1", "6L6", "5L6", "4L6"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["7L1", "6L1", "5L1", "4T", "4L1"], + headsmash: ["7L58", "6L58", "5L58", "4L52"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + ironhead: ["7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + leer: ["7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["7T", "6T", "5T", "4T"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + pursuit: ["7L1", "6L10", "5L10", "4L10"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + scaryface: ["7L19", "6L19", "5L19", "4L19"], + screech: ["7L51", "6L51", "5L51", "4L43"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + superpower: ["7T", "6T", "5T", "4T"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["7M", "6M", "5M", "4M"], + takedown: ["7L15", "6L15", "5L15", "4L15"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderpunch: ["7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + whirlpool: ["4M"], + zenheadbutt: ["7T", "7L43", "6T", "6L43", "5T", "5L43", "4T", "4L36"], + }, + }, + shieldon: { + learnset: { + ancientpower: ["7L28", "6L28", "5L28", "4T", "4L28"], + attract: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + bodyslam: ["7E", "6E", "5E", "5S0", "4E"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + counter: ["7E", "6E", "5E", "5D", "4E"], + curse: ["7E", "6E", "5E", "4E"], + dig: ["6M", "5M", "4M"], + doubleedge: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endure: ["7L33", "6L33", "5L33", "4M", "4L33"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + fissure: ["7E", "6E", "5E", "5D", "4E"], + flamethrower: ["7M", "6M", "5M", "4M"], + flashcannon: ["7M", "6M", "5M", "4M"], + focusenergy: ["7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M"], + guardsplit: ["7E", "6E"], + headbutt: ["7E", "6E", "5E", "4T", "4E"], + heavyslam: ["7L46", "6L46", "5L46"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], + ironhead: ["7T", "7L42", "6T", "6L42", "5T", "5L42", "4T", "4L43"], + irontail: ["7T", "6T", "5T", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["7L37", "6L37", "5L37", "4L37"], + metalsound: ["7L10", "6L10", "5L10", "5S0", "4L10"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "5D", "5S0", "4M", "4L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockblast: ["7E", "6E", "5E", "4E"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + scaryface: ["7E", "6E", "5E", "4E"], + screech: ["7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + takedown: ["7L15", "6L15", "5L15", "5S0", "4L15"], + taunt: ["7M", "7L6", "6M", "6L6", "5M", "5L6", "4M", "4L6"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + wideguard: ["7E", "6E", "5E"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["metalsound", "takedown", "bodyslam", "protect"], pokeball: "cherishball"}, + ], + }, + bastiodon: { + learnset: { + ancientpower: ["7L28", "6L28", "5L28", "4T", "4L28"], + attract: ["7M", "6M", "5M", "4M"], + avalanche: ["4M"], + blizzard: ["7M", "6M", "5M", "4M"], + block: ["7T", "7L1", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + endure: ["7L36", "6L36", "5L36", "4M", "4L36"], + facade: ["7M", "6M", "5M", "4M"], + fireblast: ["7M", "6M", "5M", "4M"], + flamethrower: ["7M", "6M", "5M", "4M"], + flashcannon: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heavyslam: ["7L58", "6L58", "5L58"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["7T", "7L19", "6T", "6L19", "5T", "5L19", "4T", "4L19"], + ironhead: ["7T", "7L51", "6T", "6L51", "5T", "5L51", "4T", "4L52"], + irontail: ["7T", "6T", "5T", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["7L43", "6L43", "5L43", "4L43"], + metalsound: ["7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["7T", "6T", "5T", "4T"], + protect: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandstorm: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + takedown: ["7L15", "6L15", "5L15", "4L15"], + taunt: ["7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + }, + }, + burmy: { + learnset: { + bugbite: ["7T", "7L15", "6T", "6L15", "5T", "5L15", "5D", "4T", "4L15"], + electroweb: ["7T", "6T", "5T"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5L20", "4L20"], + protect: ["7M", "7L1", "6M", "6L1", "5L1", "5D", "4L1"], + snore: ["7T", "6T", "5T", "5D", "4T"], + stringshot: ["4T"], + tackle: ["7L10", "6L10", "5L10", "4L10"], + }, + }, + wormadam: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50"], + bulletseed: ["4M"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flail: ["7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "6T", "5T", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + growth: ["7L29", "6L29", "5L29", "4L29"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + leafstorm: ["7L47", "6L47", "5L47", "4L47"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1"], + raindance: ["7M", "6M", "5M", "4M"], + razorleaf: ["7L26", "6L26", "5L26", "4L26"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L1", "4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + venoshock: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + wormadamsandy: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + earthquake: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fissure: ["7L47", "6L47", "5L47", "4L47"], + flail: ["7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + harden: ["7L29", "6L29", "5L29", "4L29"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["7L26", "6L26", "5L26", "4L26"], + rocktomb: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandstorm: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L1", "4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + venoshock: ["7M", "6M", "5M"], + }, + }, + wormadamtrash: { + learnset: { + allyswitch: ["7T"], + attract: ["7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50"], + captivate: ["7L35", "6L35", "5L35", "4M", "4L35"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + flail: ["7L38", "6L38", "5L38", "4L38"], + flash: ["6M", "5M", "4M"], + flashcannon: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gunkshot: ["7T", "6T", "5T", "4T"], + gyroball: ["7M", "6M", "5M", "4M"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + irondefense: ["7T", "6T", "5T", "4T"], + ironhead: ["7T", "7L47", "6T", "6L47", "5T", "5L47", "4T", "4L47"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["7L1"], + metalsound: ["7L29", "6L29", "5L29", "4L29"], + mirrorshot: ["7L26", "6L26", "5L26", "4L26"], + naturalgift: ["4M"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stealthrock: ["7T", "6T", "5T", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L1", "4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + telekinesis: ["7T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + venoshock: ["7M", "6M", "5M"], + }, + }, + mothim: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M", "4M"], + aircutter: ["4T"], + airslash: ["7L41", "6L41", "5L41", "4L41"], + attract: ["7M", "6M", "5M", "4M"], + bugbite: ["7T", "7L1", "6T", "6L15", "5T", "5L15", "4T", "4L15"], + bugbuzz: ["7L50", "6L47", "5L47", "4L47"], + camouflage: ["7L35", "6L35", "5L35", "4L35"], + captivate: ["4M"], + confide: ["7M", "6M"], + confusion: ["7L23", "6L23", "5L23", "4L23"], + defog: ["7T", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + electroweb: ["7T", "6T", "5T"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "6T", "5T", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + gust: ["7L26", "6L26", "5L26", "4L26"], + hiddenpower: ["7M", "7L20", "6M", "6L20", "5M", "5L20", "4M", "4L20"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + lunge: ["7L47"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + poisonpowder: ["7L29", "6L29", "5L29", "4L29"], + protect: ["7M", "7L1", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + psybeam: ["7L32", "6L32", "5L32", "4L32"], + psychic: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L44"], + psychup: ["7M", "6M", "5M", "4M"], + quiverdance: ["7L1", "6L50", "5L50"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roost: ["7M", "6M", "5T", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["7L38", "6L38", "5L38", "4M", "4L38"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + stringshot: ["4T"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + tackle: ["7L1", "6L1", "5L1", "4L1"], + tailwind: ["7T", "6T", "5T", "4T"], + thief: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["7M", "6M", "5M", "4M"], + venoshock: ["7M", "6M", "5M"], + }, + }, + combee: { + learnset: { + aircutter: ["5D", "4T"], + bugbite: ["9L1", "8L1", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + bugbuzz: ["9M", "8M", "7L29", "6L29", "5L29"], + dualwingbeat: ["8T"], + endeavor: ["7T", "6T", "5T", "4T"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + mudslap: ["4T"], + ominouswind: ["4T"], + sleeptalk: ["9M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stringshot: ["4T"], + strugglebug: ["9M", "9L1", "8L1"], + sweetscent: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + swift: ["4T"], + tailwind: ["7T", "6T", "5T", "5D", "4T"], + terablast: ["9M"], + }, + }, + vespiquen: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M", "7M", "6M", "5M", "4M"], + agility: ["9M"], + aircutter: ["4T"], + airslash: ["9M", "9L28", "8M", "8L28", "7L37", "6L37", "5L37"], + aromatherapy: ["8L24"], + aromaticmist: ["9L8", "8L8"], + assurance: ["8M"], + attackorder: ["9L40", "8L40", "7L45", "6L45", "5L37", "4L37"], + attract: ["8M", "7M", "6M", "5M", "4M"], + beatup: ["8M"], + bugbite: ["9L1", "8L1", "7T", "6T", "5T", "4T"], + bugbuzz: ["9M", "8M"], + captivate: ["7L41", "6L41", "5L33", "4M", "4L33"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L7", "4L7"], + crosspoison: ["8M"], + cut: ["6M", "5M", "4M"], + defendorder: ["9L40", "8L40", "7L17", "6L17", "5L13", "4L13"], + defog: ["7T", "4M"], + destinybond: ["9L44", "8L44", "7L1", "6L1", "5L43", "4L43"], + doubleteam: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["8T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fellstinger: ["9L12", "8L12", "7L1", "6L1"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9L4", "8L4", "7L5", "6L5", "5L9", "4T", "4L9"], + furyswipes: ["9L16", "8L16", "7L13", "6L13", "5L19", "4L19"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + healorder: ["7L29", "6L29", "5L25", "4L25"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + laserfocus: ["7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + pinmissile: ["8M"], + poisonsting: ["9L1", "8L1", "7L1", "6L1", "5L3", "4L3"], + pollenpuff: ["9M"], + pounce: ["9M"], + powergem: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "5L21", "4L21"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L9", "6L9", "5L15", "4L15"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + roost: ["9L24", "7M", "6M", "5T", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + slash: ["9L0", "8L0", "7L1", "6L21", "5L31", "4L31"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spikes: ["9M"], + stringshot: ["4T"], + strugglebug: ["9M", "9L1", "8L1", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["9L20", "8L20", "7M", "7L49", "6M", "6L49", "5M", "5L39", "4M", "4L39"], + sweetscent: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + swift: ["9M", "8M", "4T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["9L36", "8L36", "7M", "7L33", "6M", "6L33", "5M", "5L27", "4M", "4L27"], + toxicspikes: ["9M", "8M"], + uproar: ["8M"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + }, + pachirisu: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + attract: ["7M", "6M", "5M", "4M"], + babydolleyes: ["9E", "7E"], + bestow: ["7E", "6E", "5E"], + bide: ["7L1", "6L1", "5L1", "4L1"], + bite: ["9E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + charge: ["9E", "7E", "6E", "5E"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L9", "7L9", "6L9", "5L9", "4L9"], + confide: ["7M", "6M"], + covet: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4E"], + cut: ["6M", "5M", "4M"], + defensecurl: ["9E", "7E", "6E", "5E", "4E"], + dig: ["9M", "6M", "5M", "4M"], + discharge: ["9L41", "7L41", "6L41", "5L41", "4L29"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L25", "7L25", "6L25", "5L25"], + electroweb: ["7T", "6T"], + encore: ["9M"], + endure: ["9M", "9L17", "7L17", "6L17", "5L17", "4M", "4L17"], + facade: ["9M", "7M", "6M", "5M", "4M"], + faketears: ["9M", "9E", "7E", "6E", "5E", "4E"], + flail: ["9E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + flatter: ["9E", "7E", "6E", "5E", "4E"], + fling: ["9M", "7M", "6M", "5M", "4M"], + followme: ["9E", "7E", "6E", "6S0", "5E"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + gunkshot: ["9M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M"], + hyperfang: ["7L49", "6L49", "5L49"], + iondeluge: ["7E", "6E"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + laserfocus: ["7T"], + lastresort: ["9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L37"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mudshot: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + nuzzle: ["9L19", "7L19", "6L19", "6S0"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "6S0", "5M", "4M"], + quickattack: ["9L5", "7L5", "6L5", "5L5", "5D", "4L5"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["9E", "7E", "6E", "5E", "4T", "4E"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "7T", "6T", "5T", "4T"], + shockwave: ["7T", "6T", "5D", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + spark: ["9L13", "7L13", "6L13", "5L13", "4L13"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M"], + superfang: ["9L37", "7T", "7L37", "6T", "6L37", "6S0", "5T", "5L37", "4T", "4L33"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["9L29", "7L29", "6L29", "5L29", "4L25"], + swift: ["9M", "9L21", "7L21", "6L21", "5L21", "4T", "4L21"], + tailwhip: ["9E", "7E", "6E", "5E"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "9L49", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T", "4T"], + thundershock: ["9L1"], + thunderwave: ["9M", "9L33", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["9M", "7M", "6M", "5M", "4M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Impish", ivs: {hp: 31, atk: 31, def: 31, spa: 14, spd: 31, spe: 31}, isHidden: true, moves: ["nuzzle", "superfang", "followme", "protect"], pokeball: "cherishball"}, + ], + }, + buizel: { + learnset: { + agility: ["9M", "9L41", "7L41", "6L41", "5L28", "4L28"], + aquajet: ["9L24", "7L24", "6L24", "5L21", "4L21"], + aquaring: ["9E", "7E", "6E", "5E"], + aquatail: ["9L38", "7T", "7L38", "7E", "6T", "6L38", "6E", "5T", "5L55", "5E"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M", "9E", "7E", "6E", "5E", "4E"], + bite: ["9L18"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M"], + dig: ["9M", "6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doublehit: ["9L27", "7L27", "6L27", "5L27"], + doubleslap: ["7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["9E", "7E", "6E", "5E", "4E"], + furyswipes: ["9E", "7E", "6E", "5E", "4E"], + growl: ["9L4", "7L4", "6L4", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["9E", "7E", "6E", "5E", "4T", "4E"], + helpinghand: ["9M", "9E", "7T", "7E"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M", "9L45", "7L45", "6L45", "5L45"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icefang: ["9M"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + liquidation: ["9M", "9L35"], + lowkick: ["9M"], + lowsweep: ["9M"], + mefirst: ["7E", "6E", "5E"], + mudslap: ["9M", "9E", "7E", "6E", "5E", "4T", "4E"], + naturalgift: ["4M"], + odorsleuth: ["7E", "6E", "5E", "4E"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + pursuit: ["7L18", "6L18", "5L10", "4L10"], + quickattack: ["9L11", "7L11", "6L11", "5L3", "4L3"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + razorwind: ["7L35", "6L35", "5L45", "4L45"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + slash: ["9E", "7E", "6E", "5E", "5D", "4E"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L7", "7E", "6E"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L21", "7L21", "6L21", "5L15", "4T", "4L15"], + switcheroo: ["7E", "6E", "5E"], + tackle: ["9L1"], + tailslap: ["7E", "6E", "5E"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L15", "7L15", "6L15", "5L6", "5D", "4L6"], + waterpulse: ["9M", "7T", "6T", "5D", "4M"], + watersport: ["7L7", "6L7", "5L1", "5D", "4L1"], + wavecrash: ["9L49"], + whirlpool: ["9L31", "7L31", "6L31", "5L36", "4M", "4L36"], + }, + }, + floatzel: { + learnset: { + agility: ["9M", "9L51", "7L51", "6L51", "5L29", "4L29"], + aquajet: ["9L24", "7L24", "6L24", "5L21", "4L21"], + aquatail: ["9L46", "7T", "7L46", "6T", "6L46", "5T", "5L62", "4T"], + attract: ["7M", "6M", "5M", "4M"], + batonpass: ["9M"], + bite: ["9L18"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["4M"], + bulkup: ["9M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L1", "7L1", "6L1", "5L26", "4L26"], + dig: ["9M", "6M", "5M", "4M"], + dive: ["6M", "5M", "4T"], + doublehit: ["9L29", "7L29", "6L29", "5L29"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fling: ["9M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + growl: ["9L1", "7L1", "6L1", "5L1", "4L1"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M", "7T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M", "9L57", "7L57", "6L57", "5L57"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icefang: ["9M", "9L1", "7L1", "6L1", "5L1", "4L1"], + icepunch: ["9M", "7T", "6T", "5T", "4T"], + icespinner: ["9M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + liquidation: ["9M", "9L41", "7T"], + lowkick: ["9M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M"], + metronome: ["9M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + pursuit: ["7L18", "6L18", "5L10", "4L10"], + quickattack: ["9L1", "7L1", "6L1", "5L1", "4L1"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + razorwind: ["7L41", "6L41", "5L50", "4L50"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snarl: ["9M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L1"], + sonicboom: ["7L1", "6L1", "5L1", "4L1"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L21", "7L21", "6L21", "5L15", "4T", "4L15"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L15", "7L15", "6L15", "5L6", "4L6"], + waterpulse: ["9M", "7T", "6T", "4M"], + watersport: ["7L1", "6L1", "5L1", "4L1"], + wavecrash: ["9L62"], + whirlpool: ["9L35", "7L35", "6L35", "5L39", "4M", "4L39"], + }, + encounters: [ + {generation: 4, level: 22}, + {generation: 5, level: 10}, + ], + }, + cherubi: { + learnset: { + aromatherapy: ["8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bulletseed: ["8M", "5D", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["8M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flowershield: ["8E", "7E", "6E"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "7T", "6T", "5T", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E", "4E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E"], + growth: ["8L10", "7L7", "6L7", "5L7", "4L7"], + healingwish: ["8E", "7E", "6E", "5E"], + healpulse: ["8E", "7E", "6E", "5E", "5D"], + helpinghand: ["8M", "8L15", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + hiddenpower: ["7M", "6M", "5M", "4M"], + leafage: ["8L5"], + leechseed: ["8L26", "7L10", "6L10", "5L10", "5D", "4L10"], + luckychant: ["7L40", "6L40", "5L40", "4L40"], + magicalleaf: ["8M", "8L20", "7L19", "6L19", "5L19", "4L19"], + morningsun: ["8L1", "7L1", "6L1", "5L1"], + naturalgift: ["7E", "6E", "5E", "4M"], + naturepower: ["8E", "7M", "7E", "6M", "6E", "5E", "4E"], + petalblizzard: ["8L35", "7L47", "6L47"], + pollenpuff: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + razorleaf: ["8E", "7E", "6E", "5E", "4E"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["8E", "7E", "6E", "5E", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "8L45", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + swagger: ["7M", "6M", "5M", "4M"], + sweetscent: ["8E", "7E", "6E", "5E", "4E"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["8L30", "7L31", "6L31", "5L31", "4L31"], + tickle: ["8E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + weatherball: ["8M", "7E", "6E", "5E", "4E"], + worryseed: ["8L40", "7T", "7L28", "6T", "6L28", "5T", "5L28", "4T", "4L28"], + }, + }, + cherrim: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + bulletseed: ["8M", "4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["8M"], + endure: ["8M", "4M"], + energyball: ["8M", "7M", "6M", "5M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flowershield: ["8L1"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["8M", "7T", "6T", "5T", "4M"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L1", "7L1", "6L1", "5L1", "4L1"], + helpinghand: ["8M", "8L15", "7T", "7L13", "6T", "6L13", "5T", "5L13", "4T", "4L13"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + leafage: ["8L1"], + leechseed: ["8L28", "7L1", "6L10", "5L10", "4L10"], + luckychant: ["7L48", "6L48", "5L48", "4L48"], + magicalleaf: ["8M", "8L20", "7L19", "6L19", "5L19", "4L19"], + morningsun: ["8L1", "7L1", "6L1", "5L1"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + petalblizzard: ["8L41", "7L50", "6L50"], + petaldance: ["8L62", "7L1", "6L25", "5L25", "4L25"], + playrough: ["8M"], + pollenpuff: ["8M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["8M", "7T", "6T", "5T", "4T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "8L55", "7M", "7L43", "6M", "6L43", "5M", "5L43", "4M", "4L43"], + solarblade: ["8M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "8L0", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + tackle: ["8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["8L34", "7L35", "6L35", "5L35", "4L35"], + toxic: ["7M", "6M", "5M", "4M"], + weatherball: ["8M"], + worryseed: ["8L48", "7T", "7L30", "6T", "6L30", "5T", "5L30", "4T", "4L30"], + }, + }, + shellos: { + learnset: { + acidarmor: ["9E", "8E", "7E", "6E"], + amnesia: ["9M", "8M", "7E", "6E", "5E", "4E"], + ancientpower: ["9L20", "8L20", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M", "9L25", "8M", "8L25", "7L29", "6L29", "5L29", "4L29"], + brine: ["8M", "7E", "6E", "5E", "4M"], + bulldoze: ["9M"], + captivate: ["4M"], + chillingwater: ["9M"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + curse: ["9E", "8E", "7E", "6E", "5E", "4E"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "9L35", "8M", "8L35", "7T", "6T", "5T", "4T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fissure: ["7E", "6E", "5E", "4E"], + frustration: ["7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + harden: ["9L5", "8L5", "7L4", "6L4", "5L4", "4L4"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + liquidation: ["9M"], + memento: ["9L45", "8L45", "7E", "6E", "5E", "4E"], + mirrorcoat: ["9E", "8E", "7E", "6E", "5E", "4E"], + mist: ["9E", "8E", "7E", "6E", "5E"], + mudbomb: ["7L11", "6L11", "5L11", "4L11"], + muddywater: ["9L31", "8M", "8L31", "7L37", "6L37", "5L37", "4L37"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4T", "4L1"], + mudsport: ["7L2", "6L2", "5L2", "4L2"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "9L40", "8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + recover: ["9L10", "8L10", "7L46", "6L46", "5L46", "4L46"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "5D", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludge: ["9E", "8E", "7E", "6E", "5E", "4E"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spitup: ["9E", "8E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M"], + stockpile: ["9E", "8E", "7E", "6E", "5E", "4E"], + stoneedge: ["9M"], + stringshot: ["4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9E", "8E", "7E", "6E", "5E", "4E"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trumpcard: ["7E", "6E", "5E", "4E"], + waterfall: ["9M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L15", "8L15", "7T", "7L7", "6T", "6L7", "5L7", "4M", "4L7"], + whirlpool: ["8M", "4M"], + yawn: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + }, + }, + gastrodon: { + learnset: { + amnesia: ["9M", "8M"], + ancientpower: ["9L20", "8L20", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodyslam: ["9M", "9L25", "8M", "8L25", "7L29", "6L29", "5L29", "4L29"], + brine: ["8M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "9L39", "8M", "8L39", "7T", "7S0", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + hail: ["8M", "7M", "6M", "5M", "4M"], + harden: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "7S0", "6M", "5M", "4M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + infestation: ["7M", "6M"], + liquidation: ["9M"], + memento: ["9L53", "8L53"], + mudbomb: ["7L11", "6L11", "5L11", "4L11"], + muddywater: ["9L33", "8M", "8L33", "7L41", "6L41", "5L41", "4L41"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + mudsport: ["7L1", "6L1", "5L1", "4L1"], + naturalgift: ["4M"], + painsplit: ["7T", "6T", "5T", "4T"], + protect: ["9M", "8M", "7M", "7S0", "6M", "5M", "4M"], + raindance: ["9M", "9L46", "8M", "8L46", "7M", "7L22", "6M", "6L22", "5M", "5L22", "4M", "4L22"], + recover: ["9L1", "8L1", "7L54", "7S0", "6L54", "5L54", "4L54"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + sandtomb: ["8M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + stringshot: ["4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterfall: ["9M", "8M", "7M", "6M", "5M", "4M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L15", "8L15", "7T", "7L1", "6T", "6L1", "5L1", "4M", "4L1"], + weatherball: ["8M"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 7, level: 50, gender: "F", nature: "Modest", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["earthpower", "icebeam", "recover", "protect"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + gastrodoneast: { + learnset: { + earthpower: ["9S2", "8S1", "8S0"], + icebeam: ["9S2", "8S1", "8S0"], + protect: ["9S2", "8S1", "8S0"], + surf: ["8S0"], + yawn: ["9S2", "8S1"], + }, + eventData: [ + {generation: 8, level: 50, gender: "F", nature: "Quiet", abilities: ["stormdrain"], ivs: {hp: 31, atk: 2, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["protect", "surf", "icebeam", "earthpower"], pokeball: "cherishball"}, + {generation: 8, level: 50, gender: "F", nature: "Sassy", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["protect", "yawn", "icebeam", "earthpower"], pokeball: "cherishball"}, + {generation: 9, level: 50, gender: "M", nature: "Bold", abilities: ["stormdrain"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 8}, moves: ["protect", "yawn", "icebeam", "earthpower"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 4, level: 20}, + ], + }, + drifloon: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M"], + aircutter: ["9M", "4T"], + allyswitch: ["8M", "7T"], + amnesia: ["9M", "8M", "7L40", "6L40", "5L40"], + astonish: ["9L1", "8L1", "7L4", "6L4", "5L6", "4L6"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "9L36", "8M", "8L36", "7L44", "6L44", "5L38", "4L33"], + bind: ["7T", "6T", "5T"], + bodyslam: ["8M", "7E", "6E", "5E", "4E"], + brutalswing: ["8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + clearsmog: ["9E", "8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + defog: ["9E", "8E", "7T", "7E", "6E", "5E", "4M"], + destinybond: ["9L32", "8L32", "7E", "6E", "5E", "4E"], + disable: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L44", "8L44", "7M", "7L50", "6M", "6L50", "5M", "5L46", "4M", "4L43"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fly: ["9M"], + focusenergy: ["9L8", "8M", "8L8", "7L13", "6L13", "5L14", "4L14"], + frustration: ["7M", "6M", "5M", "4M"], + gust: ["9L4", "8L4", "7L8", "6L8", "5L11", "4L11"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + haze: ["9E", "8E", "7E", "6E", "5E", "4E"], + helpinghand: ["9M"], + hex: ["9M", "9L16", "8M", "8L16", "7L27", "6L27", "5L22"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypnosis: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + knockoff: ["7T", "6T", "5T", "4T"], + magiccoat: ["7T", "6T", "5T", "4T"], + memento: ["9E", "8E", "7E", "6E", "5E", "4E"], + minimize: ["9L1", "8L1", "7L1", "6L1", "5L1", "5D", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L20", "6L20", "5L33", "4T", "4L30"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L17", "4M", "4L17"], + phantomforce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + selfdestruct: ["9L29", "8M", "8L29"], + shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L43", "4M", "4L38"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["4M"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + spitup: ["9L24", "8L24", "7L32", "6L32", "5L30", "4L27"], + stockpile: ["9L24", "8L24", "7L25", "6L25", "5L27", "4L22"], + storedpower: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9L24", "8L24", "7L32", "6L32", "5L30", "4L27"], + swift: ["9M", "8M", "4T"], + tailwind: ["9M", "9L40", "8L40", "7T", "7E", "6T", "6E", "5T", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + weatherball: ["8M", "7E", "6E", "5E", "4E"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + }, + drifblim: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["9M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + allyswitch: ["8M", "7T"], + amnesia: ["9M", "8M", "7L46", "6L46", "5L46"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "9L42", "8M", "8L42", "7L52", "6L52", "5L44", "4L37"], + bind: ["7T", "6T", "5T"], + bodyslam: ["9M", "8M"], + brutalswing: ["8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + defog: ["7T", "4M"], + destinybond: ["9L36", "8L36"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L54", "8L54", "7M", "7L60", "6M", "6L60", "5M", "5L56", "4M", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L1", "8M", "8L1", "7L13", "6L13", "5L14", "4L14"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + gyroball: ["8M", "7M", "6M", "5M", "4M"], + helpinghand: ["9M"], + hex: ["9M", "9L16", "8M", "8L16", "7L27", "6L27", "5L22"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "8M"], + knockoff: ["7T", "6T", "5T", "4T"], + magiccoat: ["7T", "6T", "5T", "4T"], + minimize: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L20", "6L20", "5L37", "4T", "4L32"], + painsplit: ["7T", "6T", "5T", "4T"], + payback: ["9L12", "8M", "8L12", "7M", "7L16", "6M", "6L16", "5M", "5L17", "4M", "4L17"], + phantomforce: ["9M", "9L0", "8M", "8L0", "7L1", "6L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + selfdestruct: ["9L31", "8M", "8L31"], + shadowball: ["9M", "9L20", "8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L51", "4M", "4L44"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["4M"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + spitup: ["9L24", "8L24", "7L34", "6L34", "5L32", "4L27"], + stockpile: ["9L24", "8L24", "7L25", "6L25", "5L27", "4L22"], + storedpower: ["9M"], + strengthsap: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9L24", "8L24", "7L34", "6L34", "5L32", "4L27"], + swift: ["9M", "8M", "4T"], + tailwind: ["9M", "9L48", "8L48", "7T", "6T", "5T", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + weatherball: ["8M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 7, level: 11, pokeball: "pokeball"}, + ], + }, + buneary: { + learnset: { + afteryou: ["8L12", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + agility: ["8M", "8L36", "7L33", "6L33", "5L33", "4L33"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M", "4E"], + babydolleyes: ["8L8", "7L13", "6L10"], + batonpass: ["8M", "8L28", "7L26", "6L26", "5L26", "4L26"], + bounce: ["8M", "8L48", "7T", "7L56", "6T", "6L56", "5T", "5L56", "4T", "4L46"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L24", "7L46", "6L46", "5L46", "4L43"], + circlethrow: ["8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + copycat: ["8E", "7E", "6E", "5E"], + cosmicpower: ["8M", "7E", "6E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defensecurl: ["8L4", "7L1", "6L1", "5L1", "4L1"], + dig: ["8M", "6M", "5M", "4M"], + dizzypunch: ["7L36", "6L36", "5L36", "4L36"], + doublehit: ["8E", "7E", "6E", "5E", "4E"], + doublekick: ["8L20"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "5D", "4M"], + encore: ["8M", "7E", "6E", "5E", "4E"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7L6", "6L6", "5L6", "4M", "4L6"], + entrainment: ["8L40", "7L50", "6L50", "5L53"], + facade: ["8M", "7M", "6M", "5M", "4M"], + fakeout: ["8E", "7E", "6E", "5E", "5D", "4E"], + faketears: ["8M", "7E", "6E", "5E", "4E"], + firepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + flail: ["8E", "7E", "6E", "5E", "4E"], + flatter: ["8L44"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["8E", "7T", "7E", "6T", "6E", "5E", "4M"], + foresight: ["7L1", "6L1", "5L1", "5D", "4L1"], + frustration: ["7M", "7L1", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8L32", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["8L52", "7L63", "6L63", "5L63", "4L53"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + jumpkick: ["7L23", "6L23", "5L23", "4L23"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lowsweep: ["8M"], + magiccoat: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["4T"], + mudsport: ["7E", "6E"], + naturalgift: ["4M"], + payback: ["8M"], + playrough: ["8M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["7E", "6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + quickattack: ["8L16", "7L16", "6L16", "5L16", "4L16"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + skyuppercut: ["7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["8E", "7E", "6E", "5E", "4E"], + swift: ["8M", "4T"], + switcheroo: ["8E", "7E", "6E", "5E", "4E"], + teeterdance: ["8E", "7E", "6E"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4E"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + lopunny: { + learnset: { + acrobatics: ["8M"], + afteryou: ["8L12", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + agility: ["8M", "8L36", "7L33", "6L33", "5L33", "4L33"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["8M"], + babydolleyes: ["8L1", "7L13"], + batonpass: ["8M", "8L28", "7L26", "6L26", "5L26", "4L26"], + blizzard: ["8M", "7M", "6M", "5M", "4M"], + bounce: ["8M", "8L48", "7T", "7L1", "6T", "6L1", "5T", "5L56", "4T", "4L46"], + brutalswing: ["8M", "7M"], + captivate: ["4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + charm: ["8M", "8L24", "7L46", "6L46", "5L46", "4L43"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cosmicpower: ["8M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1", "4L1"], + dig: ["8M", "6M", "5M", "4M"], + dizzypunch: ["7L36", "6L36", "5L36", "4L36"], + doublekick: ["8L20"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "6T", "5T", "4M"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["8M", "7L6", "6L6", "5L6", "4M", "4L6"], + entrainment: ["8L40", "7L53", "6L53", "5L53"], + facade: ["8M", "7M", "6M", "5M", "4M"], + faketears: ["8M"], + firepunch: ["8M", "7T", "6T", "5T", "4T"], + flatter: ["8L44"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + grassknot: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["8L32", "4T"], + healbell: ["7T", "6T", "5T", "4T"], + healingwish: ["8L52", "7L1", "6L1", "5L63", "4L53"], + helpinghand: ["8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highjumpkick: ["8L56", "7L66", "6L66"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + jumpkick: ["7L23", "6L23", "5L23", "4L23"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lowkick: ["8M", "7T", "6T", "5T", "4T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magiccoat: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + megakick: ["8M"], + megapunch: ["8M"], + mirrorcoat: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["8M"], + playrough: ["8M"], + pound: ["8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M", "4M"], + quickattack: ["8L16", "7L16", "6L16", "5L16", "4L16"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "7L1", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + reversal: ["8M"], + rocksmash: ["6M", "5M", "4M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["8M", "7M", "6M", "5M", "4M"], + splash: ["8L1", "7L1", "6L1", "5L1", "4L1"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["8M", "4T"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "6T", "5T", "4T"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + uturn: ["8M"], + waterpulse: ["7T", "6T", "4M"], + workup: ["8M", "7M", "5M"], + }, + }, + glameow: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + assist: ["7L29", "6L29", "5L29", "4L29"], + assurance: ["7E", "6E", "5E", "5D", "4E"], + attract: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "4M", "4L45"], + bite: ["7E", "6E", "5E", "4E"], + captivate: ["7L32", "6L32", "5L32", "4M", "4L32"], + charm: ["7L25", "6L25", "5L25", "4L25"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fakeout: ["7L1", "6L1", "5L1", "5D", "4L1"], + faketears: ["7E", "6E", "5E", "4E"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flail: ["7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["7L20", "6L20", "5L20", "4L20"], + growl: ["7L8", "6L8", "5L8", "4L8"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["7L48", "6M", "6L48", "5M", "5L48"], + hypervoice: ["7T", "6T", "5T"], + hypnosis: ["7L13", "6L13", "5L13", "4L13"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "7E", "6T", "6E", "5T", "5E", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + playrough: ["7L50", "6L50"], + protect: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + quickattack: ["7E", "6E", "5E", "4E"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + sandattack: ["7E", "6E", "5E", "4E"], + scratch: ["7L5", "6L5", "5L5", "4L5"], + secretpower: ["6M", "5D", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["7L37", "6L37", "5L37", "4L37"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + snore: ["7T", "6T", "5T", "4T"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["7L41", "6L41", "5L41", "4T", "4L41"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + tailwhip: ["7E", "6E", "5E", "4E"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uturn: ["7M", "6M", "5M", "4M"], + wakeupslap: ["7E", "6E", "5E"], + waterpulse: ["7T", "6T", "4M"], + workup: ["7M", "5M"], + }, + }, + purugly: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + assist: ["7L29", "6L29", "5L29", "4L29"], + attract: ["7M", "7L52", "6M", "6L52", "5M", "5L52", "4M", "4L53"], + bodyslam: ["7L45", "6L45", "5L45", "4L45"], + bulldoze: ["7M", "6M", "5M"], + captivate: ["7L32", "6L32", "5L32", "4M", "4L32"], + charm: ["7L25", "6L25", "5L25", "4L25"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M", "4M"], + dig: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fakeout: ["7L1", "6L1", "5L1", "4L1"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flash: ["6M", "5M", "4M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["7L20", "6L20", "5L20", "4L20"], + gigaimpact: ["7M", "6M", "5M", "4M"], + growl: ["7L1", "6L1", "5L1", "4L1"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["7L60", "6M", "6L60", "5M", "5L60"], + hyperbeam: ["7M", "6M", "5M", "4M"], + hypervoice: ["7T", "6T", "5T"], + hypnosis: ["7L13", "6L13", "5L13", "4L13"], + irontail: ["7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + payback: ["7M", "6M", "5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1", "4L1"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["7L37", "6L37", "5L37", "4L37"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + stompingtantrum: ["7T"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["7M", "7L1", "6M", "6L38", "5M", "5L38", "4M", "4L38"], + swift: ["4T"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + throatchop: ["7T"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uturn: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + workup: ["7M", "5M"], + }, + encounters: [ + {generation: 6, level: 32, maxEggMoves: 1}, + ], + }, + stunky: { + learnset: { + acidspray: ["9M", "9L9", "8L9", "7L19", "6L32", "5L32"], + assurance: ["8M"], + astonish: ["9E", "8E", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + belch: ["9L39", "8L39", "7L43", "6L46"], + bite: ["9L18", "8L18", "7L21"], + bodyslam: ["9M"], + captivate: ["4M"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crunch: ["9M", "8M", "7E", "6E", "5E", "4E"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L42", "8L45", "7M", "7L45", "6M", "6L49", "5M", "5L49", "4M", "4L44"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L3", "8L3", "7L15", "6L18", "5L18", "4L18"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + flameburst: ["7E", "6E", "5E"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["9L15", "8M", "8L15", "7L1", "6L1", "5L1", "4L1"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["9L12", "8L12", "7L9", "6L10", "5L10", "4L10"], + gunkshot: ["9M"], + haze: ["9E", "8E", "7E", "6E", "5E", "4E"], + headbutt: ["4T"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + lashout: ["8T"], + leer: ["9E", "8E", "7E", "6E", "5E", "4E"], + memento: ["9L33", "8L33", "7L33", "6L43", "5L43", "4L37"], + mudslap: ["4T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightslash: ["9L36", "8L36", "7L31", "6L37", "5L37", "4L31"], + payback: ["8M", "7M", "6M", "5M", "4M"], + playrough: ["9M", "8M", "7E", "6E"], + poisongas: ["9L1", "8L1", "7L3", "6L4", "5L4", "4L4"], + poisonjab: ["9M"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + punishment: ["7E", "6E", "5E", "4E"], + pursuit: ["7E", "6E", "5E", "4E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M", "7E", "6E", "5E", "4E"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L24", "8M", "8L24", "7L7", "6L7", "5L7", "5D", "4L7"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9E", "8E", "7L25", "6L22", "5L22", "4L22"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + smog: ["9E", "8E", "7E", "6E", "5E", "4E"], + smokescreen: ["9L6", "8L6", "7L13", "6L14", "5L14", "4L14"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L30", "8L30", "7L39", "5D", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L42", "7L37"], + venoshock: ["9M", "9L21", "8M", "8L21", "7M", "6M", "5M"], + }, + }, + skuntank: { + learnset: { + acidspray: ["9M", "8L9", "7L19", "6L32", "5L32"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + belch: ["9L43", "8L43", "7L43", "6L56"], + bite: ["9L18", "8L18", "7L21"], + bodyslam: ["9M"], + burningjealousy: ["8T"], + captivate: ["4M"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crunch: ["9M", "8M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["7T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + explosion: ["9L48", "8L53", "7M", "7L45", "6M", "6L61", "5M", "5L61", "4M", "4L52"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L1", "8L1", "7L15", "6L18", "5L18", "4L18"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "9L0", "8M", "8L0", "7M", "7L1", "6M", "6L34", "5M", "5L34", "4M", "4L34"], + focusenergy: ["9L15", "8M", "8L15", "7L1", "6L1", "5L1", "4L1"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + furyswipes: ["9L12", "8L12", "7L9", "6L10", "5L10", "4L10"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + lashout: ["8T"], + memento: ["9L33", "8L33", "7L33", "6L51", "5L51", "4L41"], + mudslap: ["4T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightslash: ["9L38", "8L38", "7L31", "6L41", "5L41", "4L31"], + payback: ["8M", "7M", "6M", "5M", "4M"], + playrough: ["9M", "8M"], + poisongas: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + screech: ["9L24", "8M", "8L24", "7L1", "6L7", "5L7", "4L7"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["7L25", "6L22", "5L22", "4L22"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + smokescreen: ["9L1", "8L1", "7L13", "6L14", "5L14", "4L14"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L30", "8L30", "7L39", "4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9L27", "8L27", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L20"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L48", "7L37"], + venoshock: ["9M", "9L21", "8M", "8L21", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 4, level: 29}, + ], + }, + bronzor: { + learnset: { + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + bodyslam: ["9M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L4", "8L4", "7L11", "6L11", "5L11", "4L14"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + expandingforce: ["8T"], + extrasensory: ["9L28", "8L28", "7L39", "6L39", "5L19", "4L19"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L21", "6L21", "5L21", "4L41"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L44", "8M", "8L44", "7L29", "6L29", "5L29", "4L37"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["9E", "7T", "6T", "5T", "5D", "4T"], + guardswap: ["8M"], + gyroball: ["9L16", "8M", "8L16", "7M", "7L35", "6M", "6L35", "5M", "5L35", "4M", "4L35"], + healblock: ["7L45", "6L45", "5L45", "4L52"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L49", "6L49", "5L49"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypnosis: ["9L20", "8L20", "7L5", "6L5", "5L5", "5D", "4L7"], + icespinner: ["9M"], + imprison: ["9M", "9L12", "8M", "8L12", "7L9", "6L9", "5L9", "4L12"], + irondefense: ["9M", "9L36", "8M", "8L36", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4L26"], + ironhead: ["9M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + metalsound: ["9L40", "8L40", "7L31", "6L31", "5L31"], + naturalgift: ["4M"], + payback: ["9L8", "8M", "8L8", "7M", "7L41", "6M", "6L41", "5M", "5L49", "4M", "4L49"], + powergem: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7L15", "6L15", "5L15"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["9E", "7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L30"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + speedswap: ["8M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M"], + }, + }, + bronzong: { + learnset: { + allyswitch: ["8M", "7T"], + ancientpower: ["4T"], + block: ["9L0", "8L0", "7T", "7L1", "6T", "6L33", "5T", "5L33", "4T", "4L33"], + bodypress: ["9M", "9S0", "8M"], + bodyslam: ["9M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L11", "6L11", "5L11", "4L14"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M", "4M"], + extrasensory: ["9L28", "8L28", "7L42", "6L42", "5L19", "4L19"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L21", "6L21", "5L21", "4L50"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "9S1", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L50", "8M", "8L50", "7L29", "6L29", "5L29", "4L43"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + gyroball: ["9L16", "9S1", "8M", "8L16", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L38"], + healblock: ["7L52", "6L52", "5L52", "4L67"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L58", "6L58", "5L58"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypnosis: ["9L20", "9S1", "8L20", "7L1", "6L1", "5L1", "4L1"], + icespinner: ["9M"], + imprison: ["9M", "9L12", "8M", "8L12", "7L1", "6L1", "5L1", "4L1"], + irondefense: ["9M", "9L38", "9S0", "8M", "8L38", "7T", "7L19", "6T", "6L19", "5T", "5L19", "4L26"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + metalsound: ["9L44", "8L44", "7L31", "6L31", "5L31"], + meteorbeam: ["8T"], + naturalgift: ["4M"], + nightshade: ["9M"], + payback: ["9L1", "8M", "8L1", "7M", "7L46", "6M", "6L46", "5M", "5L46", "4M", "4L61"], + powergem: ["9M"], + powerswap: ["8M"], + protect: ["9M", "9S0", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "9S1", "8M", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M", "8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + psywave: ["7L15", "6L15", "5L15"], + raindance: ["9M", "9L56", "8M", "8L56", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + rollout: ["4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L24", "8M", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25", "4M", "4L30"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + speedswap: ["8M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "9S0", "8M", "7M", "6M", "5M", "4M"], + weatherball: ["9L1", "8M", "8L1"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 9, level: 50, nature: "Relaxed", ivs: {hp: 31, atk: 31, def: 31, spa: 22, spd: 31, spe: 0}, moves: ["bodypress", "irondefense", "protect", "trickroom"], pokeball: "cherishball"}, + {generation: 9, level: 50, nature: "Modest", moves: ["flashcannon", "gyroball", "psychic", "hypnosis"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + chatot: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["7E", "6E", "5E", "4E"], + aircutter: ["7E", "6E", "5E", "4T"], + attract: ["7M", "6M", "5M", "4M"], + boomburst: ["7E", "6E"], + captivate: ["4M"], + chatter: ["7L1", "6L1", "5L21", "4L21", "4S0"], + confide: ["7M", "7L1", "6M", "6L1"], + defog: ["7T", "7E", "6E", "5E", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "7L37", "6M", "6L37", "5M", "5L37"], + encore: ["7E", "6E", "5E", "4E"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + featherdance: ["7L50", "6L50", "5L53", "4L41"], + fly: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furyattack: ["7L17", "6L17", "5L17", "4L17", "4S0"], + growl: ["7L5", "6L5", "5L5", "4L5"], + heatwave: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["7T", "7L1", "6T", "6L1", "5T", "5L57", "4L45"], + mimic: ["7L33", "6L33", "5L33", "4L29"], + mirrormove: ["7L9", "6L9", "5L9", "5D", "4L9", "4S0"], + mudslap: ["4T"], + nastyplot: ["7E", "6E", "5E", "5D", "4E"], + naturalgift: ["4M"], + nightshade: ["7E", "6E", "5E", "4E"], + ominouswind: ["4T"], + peck: ["7L1", "6L1", "5L1", "4L1"], + pluck: ["5M", "4M"], + protect: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "5D", "4T"], + roost: ["7M", "7L41", "6M", "6L41", "5T", "5L41", "4M", "4L33"], + round: ["7M", "7L29", "6M", "6L29", "5M", "5L29"], + secretpower: ["6M", "4M"], + sing: ["7L13", "6L13", "5L13", "4L13"], + skyattack: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E", "4M"], + snore: ["7T", "6T", "5T", "4T"], + steelwing: ["7M", "7E", "6M", "6E", "5E", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + supersonic: ["7E", "6E", "5E", "4E"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + synchronoise: ["7L49", "6L49", "5L49"], + tailwind: ["7T", "6T", "5T", "4T"], + taunt: ["7M", "7L1", "6M", "6L1", "5M", "5L25", "4M", "4L25", "4S0"], + thief: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uproar: ["7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L37"], + uturn: ["7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 4, level: 25, gender: "M", nature: "Jolly", abilities: ["keeneye"], moves: ["mirrormove", "furyattack", "chatter", "taunt"]}, + ], + }, + spiritomb: { + learnset: { + allyswitch: ["9E", "8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bodyslam: ["9M"], + burningjealousy: ["8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["7E", "6E", "5E", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + curse: ["9L40", "8L40", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["9M", "9L50", "8M", "8L50", "7M", "7L49", "6M", "6L49", "5T", "5L49", "5S0", "4M", "4L49"], + destinybond: ["9E", "8E", "7E", "6E", "5E", "4E"], + disable: ["9E", "8E", "7E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dreameater: ["9L60", "8L60", "7M", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], + embargo: ["7M", "6M", "5M", "5S0", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L7", "6L7", "5L7", "4L7"], + flash: ["6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "7E", "6T", "6E", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grudge: ["8E", "7E", "6E", "5E", "4E"], + helpinghand: ["9M"], + hex: ["9M", "9L25", "8M", "8L25"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypnosis: ["9L55", "8L55", "7L13", "6L13", "5L13", "4L13"], + icywind: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + imprison: ["9M", "8M", "7E", "6E", "5E", "4E"], + infestation: ["7M", "6M"], + lashout: ["8T"], + memento: ["9L30", "8L30", "7L43", "6L43", "5L43", "4L43"], + nastyplot: ["9M", "9L20", "8M", "8L20", "7L37", "6L37", "5L37", "4L37"], + naturalgift: ["4M"], + nightmare: ["7E", "6E", "5E"], + nightshade: ["9M", "9L1", "8L1"], + ominouswind: ["7L25", "6L25", "5L25", "4T", "4L25"], + painsplit: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + payback: ["9L15", "8M", "8L15"], + phantomforce: ["9M", "8M"], + poltergeist: ["8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M"], + pursuit: ["7L1", "6L1", "5L1", "4L1"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "9L45", "8M", "8L45", "7M", "6M", "5M", "4M"], + shadowsneak: ["9L5", "8L5", "7L1", "7E", "6L1", "6E", "5L1", "5E", "4L1", "4E"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["5S0", "4M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + smokescreen: ["9E", "8E", "7E", "6E", "5E", "4E"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["9L10", "8L10", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D", "4T", "4L1"], + storedpower: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L35", "8L35", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + waterpulse: ["7T", "6T", "4M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 61, gender: "F", nature: "Quiet", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["darkpulse", "psychic", "silverwind", "embargo"], pokeball: "cherishball"}, + ], + }, + gible: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L25", "8L25"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "9L42", "8M", "8L42", "7L31", "6M", "6L31", "5M", "5L31", "4M", "4L31"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L12", "8L12", "7E", "6E", "5E", "4E"], + dragonclaw: ["9M", "9L36", "8M", "8L36", "7M", "7L27", "6M", "6L27", "5M", "5L27", "4M", "4L27"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrage: ["7L7", "6L7", "5L7", "5D", "4L7"], + dragonrush: ["9L60", "8L60", "7L37", "6L37", "5L37", "4L37"], + dragontail: ["9M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "5D", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + metalclaw: ["9M", "9E", "8E", "7E", "6E", "5E", "4E"], + mudshot: ["9M", "8M", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D", "4T", "4E"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["7E", "6E", "5E", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L6", "8L6", "7L3", "6L3", "5L3", "4L3"], + sandstorm: ["9M", "9L48", "8M", "8L48", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + sandtomb: ["9L1", "8M", "8L1", "7L19", "7E", "6L19", "6E", "5L19", "5E", "4L19", "4E"], + scaleshot: ["8T"], + scaryface: ["9M", "8M", "7E", "6E", "5E", "4E"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L30", "8L30", "7L25", "6L25", "5L25", "4L25"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L54", "8L54", "7L15", "6L15", "5L15", "4L15"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E", "6E", "5E", "4E"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + }, + }, + gabite: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L27", "8L27"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "9L50", "8M", "8L50", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T", "4T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L33", "6M", "6L33", "5M", "5L33", "4M", "4L33"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrage: ["7L1", "6L7", "5L7", "4L7"], + dragonrush: ["9L74", "8L74", "7L49", "6L49", "5L49", "4L49"], + dragontail: ["9M"], + dualchop: ["8L1", "7T", "7L1", "6T", "6L24", "5T", "5L24"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + metalclaw: ["9M"], + mudshot: ["9M", "8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L58", "8M", "8L58", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + sandtomb: ["9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], + scaleshot: ["8T"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L34", "8L34", "7L28", "6L28", "5L28", "4L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L66", "8L66", "7L15", "6L15", "5L15", "4L15"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + }, + }, + garchomp: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L27", "8L27"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "9L18", "8M", "8L18", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L0", "8M", "8L0", "7L1", "6L48", "6S2", "6S3", "5L48", "5S1", "4L48"], + cut: ["6M", "5M", "4M"], + dig: ["9M", "9L52", "8M", "8L52", "7L40", "6M", "6L40", "6S2", "6S3", "5M", "5L40", "5S1", "4M", "4L40"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "6S2", "5T", "4T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L33", "6M", "6L33", "6S2", "6S3", "5M", "5L33", "5S1", "4M", "4L33"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragonrage: ["7L1", "6L1", "5L1", "4L1"], + dragonrush: ["9L82", "8L82", "7L55", "6L55", "6S4", "5L55", "4L55"], + dragontail: ["9M", "7M", "6M", "5M"], + dualchop: ["8L1", "7T", "7L1", "6T", "6L24", "5T", "5L24"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "8M", "7M", "6M", "6S4", "5M", "5S0", "4M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M", "8M", "7L1", "6L1", "5L1", "4L1"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + liquidation: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "8M"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "5S0", "5S1", "4T"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L62", "8M", "8L62", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + sandtomb: ["9L1", "8M", "8L1", "7L19", "6L19", "5L19", "4L19"], + scaleshot: ["8T"], + scaryface: ["9M", "8M"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + slash: ["9L34", "8L34", "7L28", "6L28", "6S3", "5L28", "4L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spikes: ["9M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "5S0", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L72", "8L72", "7L15", "6L15", "5L15", "4L15"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["outrage", "earthquake", "swordsdance", "stoneedge"], pokeball: "cherishball"}, + {generation: 5, level: 48, gender: "M", isHidden: true, moves: ["dragonclaw", "dig", "crunch", "outrage"]}, + {generation: 6, level: 48, gender: "M", moves: ["dracometeor", "dragonclaw", "dig", "crunch"], pokeball: "cherishball"}, + {generation: 6, level: 50, gender: "M", moves: ["slash", "dragonclaw", "dig", "crunch"], pokeball: "cherishball"}, + {generation: 6, level: 66, gender: "F", perfectIVs: 3, moves: ["dragonrush", "earthquake", "brickbreak", "gigaimpact"], pokeball: "cherishball"}, + ], + }, + riolu: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M", "7E", "6E", "5E", "4E"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["4S0"], + bite: ["9E", "8E", "7E", "6E", "5E", "4E"], + blazekick: ["8M", "7E", "6E", "5E", "4E"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9E", "8E", "7E", "6E", "5E", "5D", "4E", "4S0"], + captivate: ["4M"], + circlethrow: ["9E", "8E", "7E", "6E", "5E"], + closecombat: ["9M"], + coaching: ["8T"], + confide: ["7M", "6M"], + copycat: ["9L48", "8L48", "7L19", "6L19", "5L29", "4L29"], + counter: ["9L12", "8L12", "7L6", "6L6", "5L6", "4L6"], + crosschop: ["9E", "8E", "7E", "6E", "5E", "4E"], + crunch: ["9M", "8M", "7E", "6E", "5E", "4E"], + detect: ["9E", "8E", "7E", "6E", "5E", "4E"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M", "4S0"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5D", "4M", "4L1"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L4", "8L4", "7L11", "6L11", "5L15", "4L15"], + finalgambit: ["9L52", "8L52", "7L50", "6L50", "5L55"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "5D", "4M"], + followme: ["7E", "6E", "5E", "4E"], + forcepalm: ["9L36", "8L36", "7L15", "6L15", "5L11", "4L11"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + helpinghand: ["9M", "9L44", "8M", "8L44", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highjumpkick: ["9E", "8E", "7E", "6E", "5E", "4E"], + howl: ["9E", "8E"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["7T"], + lowkick: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L8", "8L8"], + meteormash: ["7E"], + mindreader: ["8E", "7E", "6E", "5E", "4E"], + mudslap: ["4T"], + nastyplot: ["9M", "8M", "8L24", "7L47", "6L47", "5L47"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + quickguard: ["9L32", "8L32"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "9L56", "8M", "8L56", "7L29", "6L29", "5L19", "4L19"], + roar: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["9L20", "8L20", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["9L28", "8M", "8L28", "7L24", "6L24", "5L24", "4L24"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M", "4S0"], + skyuppercut: ["7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + vacuumwave: ["9L24", "8E", "7E", "6E", "5E", "4T", "4E"], + workup: ["9L16", "8M", "8L16", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 30, gender: "M", nature: "Serious", abilities: ["steadfast"], moves: ["aurasphere", "shadowclaw", "bulletpunch", "drainpunch"], pokeball: "pokeball"}, + ], + }, + lucario: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurasphere: ["9M", "9L0", "8M", "8L0", "8S6", "7L1", "7S5", "6L1", "6S4", "5L51", "4L37", "4S0"], + blazekick: ["8M", "4S1"], + bodyslam: ["9M"], + bonerush: ["9L36", "8L36", "7L29", "6L29", "5L19", "4L19", "4S1"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["8S6", "5S2", "5S3"], + calmmind: ["9M", "9L24", "8M", "8L24", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M"], + captivate: ["4M"], + closecombat: ["9M", "9L60", "8M", "8L60", "7L55", "6L1", "6S4", "5L55", "5S3", "4L42"], + coaching: ["8T"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + counter: ["9L12", "8L12", "7L6", "6L6", "5L6", "5S2", "4L6"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "5L1", "4M", "4L1", "4S0"], + detect: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S2", "4L1"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["9M", "9L52", "8M", "8L52", "7T", "7L60", "7S5", "6T", "6L1", "5T", "5L60", "4M", "4L47", "4S0"], + drainpunch: ["9M", "8M", "7T", "6T", "5T", "4M"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + extremespeed: ["9L56", "8L56", "7L65", "7S5", "6L1", "5L65", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feint: ["9L1", "8L1", "7L11", "6L11", "5L15", "4L15"], + finalgambit: ["9L1", "8L1"], + flashcannon: ["9M", "8M", "7M", "6M", "6S4", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T", "4M"], + forcepalm: ["9L20", "8L1", "5L11", "4L11", "4S1"], + foresight: ["7L1", "6L1", "5L1", "4L1"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healpulse: ["9L44", "8L44", "7L51", "6L51", "5L42"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highjumpkick: ["7S5"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + laserfocus: ["8L16", "7T", "7L1"], + lifedew: ["9L1", "8L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T", "4T"], + mefirst: ["7L37", "6L37", "5L29", "4L29"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "5S2", "4L1"], + metalsound: ["9L28", "8L28", "7L24", "6L24", "5L24", "4L24"], + meteormash: ["9L48", "8L48"], + metronome: ["9M"], + mudslap: ["4T"], + nastyplot: ["9M", "8M", "8L1"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M", "4M"], + poweruppunch: ["8L20", "7L15", "6M", "6L15"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + quickattack: ["9L1", "8L1", "7L1", "6L1", "6S4", "5L1", "4L1"], + quickguard: ["9L32", "8L32", "7L33", "6L33", "5L33"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + reversal: ["9M", "9L1", "8M", "8L1", "8S6"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["9L1", "8L1", "6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + screech: ["9L1", "8M", "8L1"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "5S3", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + steelbeam: ["9M", "8T", "8S6"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "5S3", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M", "4S1"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "7L19", "6M", "6L19", "5M", "5L37", "4M", "4L33"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + vacuumwave: ["9L1", "4T"], + waterpulse: ["9M", "7T", "6T", "4M", "4S0"], + workup: ["9L16", "8M", "8L1", "7M", "7L42", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, gender: "M", nature: "Modest", abilities: ["steadfast"], moves: ["aurasphere", "darkpulse", "dragonpulse", "waterpulse"], pokeball: "cherishball"}, + {generation: 4, level: 30, gender: "M", nature: "Adamant", abilities: ["innerfocus"], moves: ["forcepalm", "bonerush", "sunnyday", "blazekick"], pokeball: "cherishball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["detect", "metalclaw", "counter", "bulletpunch"]}, + {generation: 5, level: 50, gender: "M", nature: "Naughty", ivs: {atk: 31}, isHidden: true, moves: ["bulletpunch", "closecombat", "stoneedge", "shadowclaw"], pokeball: "cherishball"}, + {generation: 6, level: 100, nature: "Jolly", abilities: ["innerfocus"], moves: ["closecombat", "aurasphere", "flashcannon", "quickattack"], pokeball: "cherishball"}, + {generation: 7, level: 40, gender: "M", nature: "Serious", abilities: ["steadfast"], moves: ["aurasphere", "highjumpkick", "dragonpulse", "extremespeed"], pokeball: "pokeball"}, + {generation: 8, level: 80, gender: "M", nature: "Serious", abilities: ["innerfocus"], ivs: {hp: 31, atk: 30, def: 30, spa: 31, spd: 30, spe: 31}, moves: ["aurasphere", "bulletpunch", "reversal", "steelbeam"], pokeball: "pokeball"}, + ], + }, + hippopotas: { + learnset: { + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L4", "8L4", "7L7", "6L7", "5L7", "5D", "4L7"], + bodypress: ["9M"], + bodyslam: ["9M", "8M", "7E", "6E", "5E", "4E"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L20", "8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + curse: ["9E", "8E", "7E", "6E", "5E", "4E"], + dig: ["9M", "9L16", "8M", "8L16", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], + doubleedge: ["9L44", "8L44", "7L44", "6L44", "5L44", "4L44"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L37", "6M", "6L37", "5M", "5L37", "4M", "4L37"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M"], + fissure: ["9L48", "8L48", "7L50", "6L50", "5L50", "4L50"], + frustration: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["8M"], + icefang: ["9M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L36", "8M", "8L36", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "7E", "6E", "5E", "4E"], + roar: ["9L32", "8L32", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], + sandtomb: ["9L12", "8M", "8L12", "7L25", "7E", "6L25", "6E", "5L25", "5E", "4L25", "4E"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + slackoff: ["9L52", "8L52", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spitup: ["9E", "8E", "7E", "6E", "5E", "4E"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stockpile: ["9E", "8E", "7E", "6E", "5E", "5D", "4E"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "5D", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["9E", "8E", "7E", "6E", "5E", "4E"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L28", "8L28", "7L19", "6L19", "5L19", "4L19"], + terablast: ["9M"], + thunderfang: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + weatherball: ["8M"], + whirlwind: ["9E", "8E", "7E", "6E", "5E"], + yawn: ["9L8", "8L8", "7L13", "6L13", "5L13", "4L13"], + }, + }, + hippowdon: { + learnset: { + amnesia: ["9M", "8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L20", "8M", "8L20", "7L31", "6L31", "5L31", "4L31"], + dig: ["9M", "9L16", "8M", "8L16", "7L19", "6M", "6L19", "5M", "5L19", "4M", "4L19"], + doubleedge: ["9L50", "8L50", "7L50", "6L50", "5L50", "4L50"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M", "7T", "6T", "5T", "4T"], + earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L40", "6M", "6L40", "5M", "5L40", "4M", "4L40"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + fissure: ["9L56", "8L56", "7L60", "6L60", "5L60", "4L60"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M"], + icefang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L38", "8M", "8L38", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M"], + roar: ["9L32", "8L32", "7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + sandstorm: ["9M", "9L24", "8M", "8L24", "7M", "6M", "5M", "4M"], + sandtomb: ["9L12", "8M", "8L12", "7L25", "6L25", "5L25", "4L25"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + slackoff: ["9L62", "8L62"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T"], + swagger: ["7M", "6M", "5M", "4M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + takedown: ["9M", "9L28", "8L28", "7L19", "6L19", "5L19", "4L19"], + terablast: ["9M"], + thunderfang: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + toxic: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "6T", "4M"], + weatherball: ["8M"], + yawn: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + }, + }, + skorupi: { + learnset: { + acupressure: ["8L45", "7L13", "6L13", "5L17", "4L17"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M", "7E", "6E", "5E", "5D", "4E"], + aquatail: ["7T", "6T", "5T", "5D", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["8L12", "7L1", "6L1", "5L1", "5D", "4L1"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L34", "4T", "4L34"], + bugbuzz: ["8M"], + captivate: ["4M"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E", "4E"], + crosspoison: ["8M", "8L39", "7L49", "6L49", "5L61", "4L50"], + crunch: ["8M", "8L48", "7L45", "6L45", "5L56", "4L45"], + cut: ["6M", "5M", "4M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + dig: ["8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + feintattack: ["7E", "6E", "5E", "4E"], + fellstinger: ["8L6", "7L47", "6L47"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["8L3", "7L30", "6M", "6L30", "5M", "5L45"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "4M"], + knockoff: ["8L24", "7T", "7L5", "6T", "6L5", "5T", "5L6", "4T", "4L6"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["8L36", "7L38", "7E", "6L38", "6E", "5L38", "5E", "4E"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["8M", "8L30", "7L9", "6L9", "5L12", "4L12"], + poisonfang: ["8L9", "7L23", "6L23", "5L39", "4L39"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], + poisontail: ["7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L16", "7E", "6L16", "6E", "5L16", "5E", "4E"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8E", "7E", "6E", "5E", "4E"], + scaryface: ["8M", "8L27", "7L41", "6L41", "5L23", "4L23"], + screech: ["8M", "7E", "6E", "5E", "4E"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + skittersmack: ["8T"], + slash: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["8L33", "7M", "6M", "5M", "4M"], + toxicspikes: ["8M", "8L15", "7L34", "6L34", "5L28", "4L28"], + twineedle: ["7E", "6E", "5E"], + venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L50"], + whirlwind: ["8E", "7E", "6E", "5E", "4E"], + xscissor: ["8M", "8L42", "7M", "6M", "5M", "4M"], + }, + }, + drapion: { + learnset: { + acupressure: ["8L49", "7L13", "6L13", "5L17", "4L17"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["8M"], + aquatail: ["7T", "6T", "5T", "4T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bite: ["8L12", "7L1", "6L1", "5L1", "4L1"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + brutalswing: ["8M", "7M"], + bugbite: ["8L18", "7T", "7L20", "6T", "6L20", "5T", "5L34", "4T", "4L34"], + bugbuzz: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crosspoison: ["8M", "8L39", "7L57", "6L57", "5L73", "4L58"], + crunch: ["8M", "8L54", "7L49", "6L49", "5L65", "4L49"], + cut: ["6M", "5M", "4M"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + dig: ["8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + falseswipe: ["8M", "7M", "6M", "5M", "4M"], + fellstinger: ["8L1", "7L53", "6L53"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + flash: ["6M", "5M", "4M"], + fling: ["8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["8L1", "7L30", "6M", "6L30", "5M", "5L48"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + infestation: ["7M", "6M"], + irondefense: ["8M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["8L24", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + lashout: ["8T"], + leechlife: ["8M"], + leer: ["8L1", "7L1", "6L1", "5L1", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + nightslash: ["8L36", "7L38", "6L38", "5L38"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pinmissile: ["8M", "8L30", "7L9", "6L9", "5L12", "4L1"], + poisonfang: ["8L9", "7L23", "6L23", "5L39", "4L39"], + poisonjab: ["8M", "7M", "6M", "5M", "4M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L16", "6L16", "5L16"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + scaryface: ["8M", "8L27", "7L43", "6L43", "5L23", "4L23"], + screech: ["8M"], + secretpower: ["6M", "4M"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["8M", "7M", "6M", "5M", "4M"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M", "4M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swordsdance: ["8M", "7M", "6M", "5M", "4M"], + taunt: ["8M", "7M", "6M", "5M", "4M"], + thief: ["8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1", "4L1"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["8L33", "7M", "6M", "5M", "4M"], + toxicspikes: ["8M", "8L15", "7L34", "6L34", "5L28", "4L28"], + venomdrench: ["8M"], + venoshock: ["8M", "8L21", "7M", "7L27", "6M", "6L27", "5M", "5L56"], + xscissor: ["8M", "8L44", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 4, level: 22, pokeball: "safariball"}, + {generation: 6, level: 30}, + ], + }, + croagunk: { + learnset: { + acidspray: ["9M"], + acupressure: ["7E", "6E", "5E"], + aerialace: ["9M"], + assurance: ["8M"], + astonish: ["9L4", "8L4", "7L1", "6L1", "5L1", "5S0", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "8M"], + belch: ["9L48", "8L48", "7L47", "6L47"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], + captivate: ["4M"], + chillingwater: ["9M"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "4E"], + crosschop: ["9E", "8E", "7E", "6E", "5E", "4E"], + darkpulse: ["8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + dualchop: ["7T", "6T", "5T"], + dynamicpunch: ["9E", "8E", "7E", "6E", "5E", "4E"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fakeout: ["9E", "8E", "7E", "6E", "5E", "4E"], + feint: ["9E", "8E", "7E", "6E", "5E", "4E"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flatter: ["9L12", "8L12", "7L50", "6L50", "5L50", "4L45"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "5D", "4T"], + headbutt: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + lashout: ["8T"], + lowkick: ["9M", "9L16", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + meditate: ["7E", "6E", "5E", "4E"], + mefirst: ["7E", "6E", "5E", "4E"], + megakick: ["8M"], + megapunch: ["8M"], + mudbomb: ["7L29", "6L29", "5L29", "4L29"], + mudshot: ["9M"], + mudslap: ["9M", "9L1", "8L1", "7L3", "6L3", "5L3", "5S0", "5S1", "4T", "4L3"], + nastyplot: ["9M", "9L40", "8M", "8L40", "7L38", "6L38", "5L38", "4L36"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "9L32", "8M", "8L32", "7M", "7L43", "6M", "6L43", "5M", "5L43", "5S1", "4M", "4L38"], + poisonsting: ["9L1", "8L1", "7L8", "6L8", "5L8", "5D", "5S0", "5S1", "4L8"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L15", "6L15", "5L15", "4L15"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L16", "7L22", "6L22", "5L22", "4L22"], + reversal: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "9L44", "8M", "8L44", "7M", "7L45", "6M", "6L45", "5M", "5L45", "4M", "4L43"], + sludgewave: ["8M", "7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E", "4E"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L24", "8L24", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["9L28", "8L28", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + takedown: ["9M"], + taunt: ["9M", "9L8", "8M", "8L8", "7M", "7L10", "6M", "6L10", "5M", "5L10", "5S0", "5S1", "4M", "4L10"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9L36", "8L36", "7M", "6M", "5M", "4M"], + vacuumwave: ["9E", "8E", "7E", "6E", "5E", "4T", "4E"], + venomdrench: ["8M"], + venoshock: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + wakeupslap: ["7E", "6E", "5E", "4E"], + workup: ["8M", "7M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["astonish", "mudslap", "poisonsting", "taunt"]}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["mudslap", "poisonsting", "taunt", "poisonjab"]}, + ], + }, + toxicroak: { + learnset: { + acidspray: ["9M"], + aerialace: ["9M"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + attract: ["8M", "7M", "6M", "5M", "4M"], + batonpass: ["9M", "8M"], + belch: ["9L54", "8L54", "7L58", "6L58"], + bounce: ["8M", "7T", "6T", "5T", "4T"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["4M"], + chillingwater: ["9M"], + closecombat: ["9M"], + coaching: ["8T"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["9M", "8M", "7T", "6T", "5T"], + dualchop: ["7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + embargo: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + feintattack: ["7L17", "6L17", "5L17", "4L17"], + flatter: ["9L12", "8L12", "7L62", "6L62", "5L62", "4L54"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gunkshot: ["9M", "8M", "7T", "6T", "5T", "4T"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + lashout: ["8T"], + lowkick: ["9M", "9L16", "8M", "7T", "6T", "5T", "4T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + mudbomb: ["7L29", "6L29", "5L29", "4L29"], + mudshot: ["9M"], + mudslap: ["9M", "9L1", "8L1", "7L1", "6L1", "5L1", "4T", "4L1"], + nastyplot: ["9M", "9L42", "8M", "8L42", "7L41", "6L41", "5L41", "4L36"], + naturalgift: ["4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + poisonjab: ["9M", "9L32", "8M", "8L32", "7M", "7L49", "6M", "6L49", "5M", "5L49", "4M", "4L41"], + poisonsting: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + pursuit: ["7L15", "6L15", "5L15", "4L15"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L16", "7L22", "6L22", "5L22", "4L22"], + reversal: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + screech: ["8M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "9L48", "8M", "8L48", "7M", "7L54", "6M", "6L54", "5M", "5L54", "4M", "4L49"], + sludgewave: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + suckerpunch: ["9L24", "8L24", "7L31", "6L31", "5L31", "4T", "4L31"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + superfang: ["7T", "6T", "5T", "4T"], + swagger: ["9L28", "8L28", "7M", "7L24", "6M", "6L24", "5M", "5L24", "4M", "4L24"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L10", "6M", "6L10", "5M", "5L10", "4M", "4L10"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + throatchop: ["8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["9L36", "8L36", "7M", "6M", "5M", "4M"], + vacuumwave: ["4T"], + venomdrench: ["8M"], + venoshock: ["9M", "9L20", "8M", "8L20", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + workup: ["8M", "7M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + encounters: [ + {generation: 4, level: 22, pokeball: "safariball"}, + {generation: 6, level: 30}, + ], + }, + carnivine: { + learnset: { + acidspray: ["7E"], + attract: ["7M", "6M", "5M", "4M"], + bind: ["7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1"], + bite: ["7L7", "6L7", "5L7", "5D", "4L7"], + bugbite: ["7T", "6T", "5T", "4T"], + bulletseed: ["4M"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["7L41", "6L41", "5L41", "4L37"], + cut: ["6M", "5M", "4M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + feintattack: ["7L27", "6L27", "5L27", "4L27"], + flash: ["6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gastroacid: ["7T", "6T", "5T", "5D", "4T"], + gigadrain: ["7T", "7E", "6T", "6E", "5T", "5E", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasswhistle: ["7E", "6E", "5E"], + growth: ["7L1", "6L1", "5L1", "4L1"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + infestation: ["7M", "6M"], + ingrain: ["7L21", "6L21", "5L21", "4L21"], + knockoff: ["7T", "6T", "5T", "4T"], + leaftornado: ["7L31", "6L31", "5L31"], + leechseed: ["7E", "6E", "5E", "4E"], + magicalleaf: ["7E", "6E", "5E", "4E"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M", "4M"], + powerwhip: ["7L50", "6L50", "5L51", "4L47"], + protect: ["7M", "6M", "5M", "4M"], + ragepowder: ["7E", "6E", "5E", "5D"], + razorleaf: ["7E", "6E", "5E", "4E"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + slam: ["7E", "6E", "5E", "4E"], + sleeppowder: ["7E", "6E", "5E", "4E"], + sleeptalk: ["7M", "6M", "5T", "4M"], + sludgebomb: ["7M", "6M", "5M", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + spitup: ["7L37", "6L37", "5L37", "4L31"], + stockpile: ["7L37", "6L37", "5L37", "4L31"], + stunspore: ["7E", "6E", "5E", "4E"], + substitute: ["7M", "6M", "5M", "4M"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swallow: ["7L37", "6L37", "5L37", "4L31"], + sweetscent: ["7L17", "6L17", "5L17", "4L17"], + swordsdance: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + thief: ["7M", "6M", "5M", "4M"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M", "4M"], + vinewhip: ["7L11", "6L11", "5L11", "4L11"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + wringout: ["7L47", "6L47", "5L47", "4L41"], + }, + }, + finneon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9E", "7E", "6E", "5E", "4E"], + aircutter: ["4T"], + aquaring: ["9L33", "7L33", "6L33", "5L33", "4L33"], + aquatail: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + attract: ["9L26", "7M", "7L10", "6M", "6L10", "5M", "5L10", "5D", "4M", "4L10"], + aurorabeam: ["9E", "7E", "6E", "5E"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bounce: ["9L45", "7T", "7L45", "6T", "6L45", "5T", "5L45", "4T", "4L45"], + brine: ["7E", "6E", "5E", "4M"], + captivate: ["7L26", "6L26", "5L26", "4M", "4L26"], + charm: ["9M", "9E", "7E", "6E", "5E", "4E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9E", "7E"], + dazzlinggleam: ["9M"], + defog: ["7T", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flail: ["9E", "7E", "6E", "5E", "4E"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gust: ["9L17", "7L17", "6L17", "5L17", "4L17"], + hail: ["7M", "6M", "5M", "4M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9E", "7E", "6E", "5E", "4E"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "7E", "6T", "6E", "5T", "5E"], + silverwind: ["7L49", "6L49", "5L49", "4M", "4L49"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L54", "7L54", "6L54", "5L54"], + splash: ["7E", "6E", "5E", "4E"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["9E", "7E", "6E", "5E", "5D", "4E"], + swift: ["9M", "4T"], + tailwind: ["9M", "9L49", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + tickle: ["9E", "7E", "6E", "5E", "4E"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["9M", "9L42", "7M", "7L42", "6M", "6L42", "5M", "5L42", "4M", "4L42"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L6", "7L6", "6L6", "5L6", "4L6"], + waterpulse: ["9M", "9L22", "7T", "7L22", "6T", "6L22", "5L22", "5D", "4M", "4L22"], + whirlpool: ["9L38", "7L38", "6L38", "5L38", "4M", "4L38"], + }, + }, + lumineon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M"], + aircutter: ["9M", "4T"], + airslash: ["9M"], + aquaring: ["9L35", "7L35", "6L35", "5L35", "4L35"], + aquatail: ["7T", "6T", "5T", "4T"], + attract: ["9L26", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bounce: ["9L53", "7T", "7L53", "6T", "6L53", "5T", "5L53", "4T", "4L53"], + brine: ["4M"], + captivate: ["7L26", "6L26", "5L26", "4M", "4L26"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + defog: ["7T", "4M"], + dive: ["6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + encore: ["9M"], + endure: ["9M", "4M"], + facade: ["9M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + gust: ["9L1", "7L1", "6L1", "5L17", "4L17"], + hail: ["7M", "6M", "5M", "4M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hydropump: ["9M"], + hyperbeam: ["9M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + naturalgift: ["4M"], + ominouswind: ["4T"], + payback: ["7M", "6M", "5M", "4M"], + pound: ["9L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psybeam: ["9M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "9L13", "7M", "7L13", "6M", "6L13", "5M", "5L13", "4M", "4L13"], + rest: ["9M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L29", "7M", "7L29", "6M", "6L29", "5M", "5L29", "4M", "4L29"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["7L59", "6L59", "5L59", "4M", "4L59"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + soak: ["9L1", "7L1", "6L1", "5L66"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + tailwind: ["9M", "9L59", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + uturn: ["9M", "9L48", "7M", "7L48", "6M", "6L48", "5M", "5L48", "4M", "4L48"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + watergun: ["9L1", "7L1", "6L1", "5L1", "4L1"], + waterpulse: ["9M", "9L22", "7T", "7L22", "6T", "6L22", "5L22", "4M", "4L22"], + whirlpool: ["9L42", "7L42", "6L42", "5L42", "4M", "4L42"], + }, + encounters: [ + {generation: 4, level: 20}, + ], + }, + snover: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + avalanche: ["9M", "8M", "7E", "6E", "5E", "5D", "4M"], + blizzard: ["9M", "9L45", "8M", "8L45", "7M", "7L41", "6M", "6L41", "5M", "5L41", "4M", "4L41"], + bodyslam: ["9M"], + bulletseed: ["9M", "8M", "7E", "6E", "5E", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + doubleedge: ["9E", "8E", "7E", "6E", "5E", "4E"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "5D", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L13", "6L13", "5L13", "4L13"], + grassyglide: ["8T"], + growth: ["9E", "8E", "7E", "6E", "5E", "4E"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + iceshard: ["9L15", "8L15", "7L26", "6L26", "5L26", "4L26"], + icespinner: ["9M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L9", "6T", "6L9", "5T", "5L9", "4T", "4L9"], + ingrain: ["9L35", "8L35", "7L31", "6L31", "5L31", "4L31"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leafage: ["9L5", "8L5"], + leafstorm: ["9M"], + leechseed: ["9E", "8E", "7E", "6E", "5E", "4E"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + magicalleaf: ["9M", "8M", "7E", "6E", "5E", "4E"], + megapunch: ["8M"], + mist: ["9L10", "8L10", "7L21", "7E", "6L21", "6E", "5L21", "5E", "4L21", "4E"], + mudslap: ["9M", "4T"], + naturalgift: ["7E", "6E", "5E", "4M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L20", "8L20", "7L5", "6L5", "5L5", "5D", "4L5"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E", "4T", "4E"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sheercold: ["9L50", "8L50", "7L46", "6L46", "5L46", "4L46"], + skullbash: ["8E", "7E", "6E", "5E", "4E"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stomp: ["9E", "8E", "7E", "6E", "5E", "4E"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["9L30", "8L30", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["9E", "8M"], + woodhammer: ["9L41", "8L41", "7L36", "6L36", "5L36", "4L36"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + }, + abomasnow: { + learnset: { + attract: ["8M", "7M", "6M", "5M", "4M"], + auroraveil: ["9L1", "8L1"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "9L49", "8M", "8L49", "7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L47"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + bulletseed: ["9M", "8M", "4M"], + captivate: ["4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + grasswhistle: ["7L13", "6L13", "5L13", "4L13"], + grassyglide: ["8T"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + iceshard: ["9L15", "8L15", "7L26", "6L26", "5L26", "4L26"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "9L25", "8M", "8L25", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + ingrain: ["9L35", "8L35", "7L31", "6L31", "5L31", "4L31"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + leafage: ["9L1", "8L1"], + leafstorm: ["9M", "8M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + lightscreen: ["8M", "7M", "6M", "5M", "4M"], + lowkick: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mist: ["9L1", "8L1", "7L21", "6L21", "5L21", "4L21"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + razorleaf: ["9L20", "8L20", "7L1", "6L1", "5L1", "4L1"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T", "4T"], + shadowball: ["8M", "7M", "6M", "5M", "4M"], + sheercold: ["9L56", "8L56", "7L58", "6L58", "5L58", "4L58"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["9L30", "8L30", "7M", "7L17", "6M", "6L17", "5M", "5L17", "4M", "4L17"], + swordsdance: ["9M", "8M", "7M", "6M", "5M", "4M"], + synthesis: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T", "4M"], + weatherball: ["8M"], + woodhammer: ["9L43", "8L43", "7L36", "6L36", "5L36", "4L36"], + worryseed: ["7T", "6T", "5T", "4T"], + }, + encounters: [ + {generation: 4, level: 38}, + ], + }, + rotom: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "6S1", "5L1", "5S0", "4L1"], + charge: ["9L15", "8L15", "7L1", "6L1", "5L57", "4L43"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "7S2", "6M"], + confuseray: ["9M", "9L10", "8L10", "7L1", "6L1", "5L1", "4L1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["7T"], + disarmingvoice: ["7S2"], + discharge: ["9L50", "8L50", "7L1", "6L1", "5L64", "4L50"], + doubleteam: ["9L1", "8L1", "7M", "7L15", "6M", "6L15", "5M", "5L15", "4M", "4L15"], + dreameater: ["7M", "6M", "5M", "4M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "9L20", "8M", "8L20", "7L43", "6L43", "5L43"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T"], + frustration: ["7M", "6M", "5M", "4M"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L35", "8M", "8L35", "7L50", "6L50", "5L50"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + mudslap: ["4T"], + nastyplot: ["9M", "8M"], + naturalgift: ["4M"], + nightshade: ["9M"], + ominouswind: ["7L29", "6L29", "5L29", "4T", "4L29"], + painsplit: ["7T", "6T", "5T", "4T"], + poltergeist: ["8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["9L30", "8L30", "7T", "7L22", "6T", "6L22", "6S1", "5L22", "5D", "4M", "4L22"], + signalbeam: ["7T", "6T", "5T", "5D", "4T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "9L40", "8M", "8L40", "7M", "7L36", "6M", "6L36", "5M", "5L36", "4M", "4L36"], + suckerpunch: ["4T"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thundershock: ["9L5", "8L5", "7L1", "6L1", "5T", "5L1", "5S0", "4T", "4L1"], + thunderwave: ["9M", "9L25", "8M", "8L25", "7M", "7L1", "6M", "6L1", "6S1", "5M", "5L1", "5D", "4M", "4L1"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "9L45", "8M", "8L45", "7T", "7L1", "6T", "6L1", "6S1", "5T", "5L1", "5S0", "4T", "4L1"], + uproar: ["9L55", "8M", "8L55", "7T", "7L8", "7S2", "6T", "6L8", "5T", "5L8", "5S0", "4T", "4L8"], + voltswitch: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 5, level: 10, nature: "Naughty", moves: ["uproar", "astonish", "trick", "thundershock"], pokeball: "cherishball"}, + {generation: 6, level: 10, nature: "Quirky", moves: ["shockwave", "astonish", "trick", "thunderwave"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["uproar", "confide", "disarmingvoice"], pokeball: "cherishball"}, + ], + }, + rotomheat: { + learnset: { + overheat: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotomwash: { + learnset: { + hydropump: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotomfrost: { + learnset: { + blizzard: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotomfan: { + learnset: { + airslash: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + rotommow: { + learnset: { + leafstorm: ["9L1", "8L1", "7R", "6R", "5R", "4R"], + }, + }, + uxie: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + amnesia: ["9M", "9L42", "8M", "8L42", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], + batonpass: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "9L14", "8M", "8L14", "7L16", "6L16", "5L16", "4M", "4L16"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flail: ["9L70", "8L70", "7L1", "6L1", "5L61", "5S2", "4L61"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L63", "8M", "8L63", "8S5", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + gigadrain: ["9M", "8M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "8S5", "7T", "6T", "5T"], + memento: ["9L77", "8L77", "7L1", "6L1", "5L76", "4L76"], + metronome: ["9M", "8M"], + mudslap: ["9M", "4T"], + mysticalpower: ["9L84"], + nastyplot: ["9M", "8M"], + naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + playrough: ["9M", "8M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9L21", "8L21"], + psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "8S5", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L7", "8M", "8L7", "7L21", "7S4", "6L21", "5L21", "4T", "4L21", "4S1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + yawn: ["9L56", "8L56", "7L31", "7S4", "6L31", "6S3", "5L31", "4L31", "4S0", "4S1"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["confusion", "yawn", "futuresight", "amnesia"]}, + {generation: 4, level: 50, shiny: 1, moves: ["swift", "yawn", "futuresight", "amnesia"]}, + {generation: 5, level: 65, shiny: 1, moves: ["futuresight", "amnesia", "extrasensory", "flail"]}, + {generation: 6, level: 50, shiny: 1, moves: ["yawn", "futuresight", "amnesia", "extrasensory"]}, + {generation: 7, level: 60, shiny: 1, moves: ["extrasensory", "yawn", "amnesia", "swift"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "futuresight", "magicroom", "shadowball"]}, + ], + eventOnly: true, + }, + mesprit: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + batonpass: ["9M", "8M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + charm: ["9M", "9L42", "8M", "8L42", "8S5", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + copycat: ["9L70", "8L70", "7L1", "6L1", "5L61", "5S2", "4L61"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M", "8M", "8S5"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flash: ["6M", "5M", "4M"], + flatter: ["9L56", "8L56"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L63", "8M", "8L63", "7L36", "7S4", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healingwish: ["9L77", "8L77", "7L1", "6L1", "5L76", "4L76"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + luckychant: ["7L31", "6L31", "6S3", "5L31", "4L31", "4S0", "4S1"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + metronome: ["9M", "8M"], + mudslap: ["4T"], + mysticalpower: ["9L84"], + nastyplot: ["9M", "8M"], + naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + playrough: ["9M", "8M"], + poweruppunch: ["6M"], + protect: ["9M", "9L14", "8M", "8L14", "7M", "7L16", "6M", "6L16", "5M", "5L16", "4M", "4L16"], + psybeam: ["9M", "9L21", "8L21"], + psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L7", "8M", "8L7", "7L21", "7S4", "6L21", "5L21", "4T", "4L21", "4S1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["8M", "8S5"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["confusion", "luckychant", "futuresight", "charm"]}, + {generation: 4, level: 50, shiny: 1, moves: ["swift", "luckychant", "futuresight", "charm"]}, + {generation: 5, level: 50, shiny: 1, moves: ["futuresight", "charm", "extrasensory", "copycat"]}, + {generation: 6, level: 50, shiny: 1, moves: ["luckychant", "futuresight", "charm", "extrasensory"]}, + {generation: 7, level: 60, shiny: 1, moves: ["extrasensory", "charm", "futuresight", "swift"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "charm", "drainingkiss", "triattack"]}, + ], + eventOnly: true, + }, + azelf: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + assurance: ["8M"], + batonpass: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1", "4S0"], + dazzlinggleam: ["9M", "8M", "8S5", "7M", "6M"], + detect: ["9L14", "8L14", "7L16", "6L16", "5L16", "4L16"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + dreameater: ["7M", "6M", "5M", "4M"], + encore: ["9M", "8M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + expandingforce: ["8T"], + explosion: ["9L77", "8L77", "7M", "7L76", "6M", "6L76", "5M", "5L76", "4M", "4L76"], + extrasensory: ["9L35", "8L35", "7L50", "7S4", "6L50", "6S3", "5L51", "5S2", "4L51"], + facade: ["9M", "8M", "8S5", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + futuresight: ["9L63", "8M", "8L63", "7L36", "6L36", "6S3", "5L36", "5S2", "4L36", "4S0", "4S1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icepunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + imprison: ["9M", "9L28", "8M", "8L28", "7L6", "6L6", "5L6", "4L6"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + knockoff: ["7T", "6T", "5T", "4T"], + laserfocus: ["7T"], + lastresort: ["9L70", "8L70", "7T", "7L1", "6T", "6L1", "5T", "5L61", "5S2", "4T", "4L61"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + metronome: ["9M", "8M"], + mudslap: ["9M", "4T"], + mysticalpower: ["9L84"], + nastyplot: ["9M", "9L42", "8M", "8L42", "8S5", "7L46", "7S4", "6L46", "6S3", "5L46", "5S2", "4L46", "4S0", "4S1"], + naturalgift: ["7L1", "6L1", "5L66", "4M", "4L66"], + payback: ["8M", "7M", "6M", "5M", "4M"], + playrough: ["9M", "8M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9L21", "8L21"], + psychic: ["9M", "9L49", "8M", "8L49", "8S5", "7M", "6M", "5M", "4M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + return: ["7M", "6M", "5M", "4M"], + roleplay: ["7T", "6T", "5T", "4T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "9L7", "8M", "8L7", "7L21", "7S4", "6L21", "5L21", "4T", "4L21", "4S1"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T", "4T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + triattack: ["8M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + uproar: ["9L56", "8M", "8L56", "7T", "7L31", "7S4", "6T", "6L31", "6S3", "5T", "5L31", "4T", "4L31", "4S0", "4S1"], + uturn: ["9M", "8M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["confusion", "uproar", "futuresight", "nastyplot"]}, + {generation: 4, level: 50, shiny: 1, moves: ["swift", "uproar", "futuresight", "nastyplot"]}, + {generation: 5, level: 50, shiny: 1, moves: ["futuresight", "nastyplot", "extrasensory", "lastresort"]}, + {generation: 6, level: 50, shiny: 1, moves: ["uproar", "futuresight", "nastyplot", "extrasensory"]}, + {generation: 7, level: 60, shiny: 1, moves: ["extrasensory", "nastyplot", "uproar", "swift"]}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "dazzlinggleam", "nastyplot", "facade"]}, + ], + eventOnly: true, + }, + dialga: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + ancientpower: ["9L16", "8L16", "8S11", "7L10", "6L10", "5L10", "4T", "4L10", "4S0"], + aurasphere: ["9M", "9L48", "8M", "8L48", "7L37", "7S7", "7S8", "7S9", "7S10", "6L37", "6S5", "5L37", "5S4", "4L37"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], + dragonbreath: ["9L8", "8L8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + dragonclaw: ["9M", "9L40", "8M", "8L40", "8S11", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28", "4S0"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "5S4", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "9L72", "8M", "8L72", "7T", "7L33", "6T", "6L33", "5T", "5L33", "4T", "4L33", "4S1"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "9L32", "8M", "8L32", "8S12", "8S11", "7M", "7L50", "7S7", "7S8", "7S9", "7S10", "6M", "6L50", "6S5", "6S6", "5M", "5L50", "4M", "4L42"], + focusblast: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + healblock: ["4L50", "4S1"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "5T", "4T"], + irontail: ["9L80", "8M", "8L80", "7T", "7L42", "7S7", "7S8", "6T", "6L42", "6S5", "5T", "5L42", "4M"], + magnetrise: ["7T", "6T", "5T", "4T"], + metalburst: ["9L64", "8L64", "8S12", "7L24", "6L24", "6S6", "5L24", "4L24"], + metalclaw: ["9M", "9L1", "8L1", "7L6", "6L6", "5L6", "4L6", "4S0"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + overheat: ["9M", "8M", "8S12", "7M", "6M", "6S6", "5M", "4M"], + powergem: ["9M", "9L56", "8M", "8L56", "7L19", "6L19", "5L19", "4L19"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + roaroftime: ["9L88", "8L88", "8S12", "7L46", "7S7", "7S8", "7S9", "7S10", "6L46", "6S5", "6S6", "5L46", "5S4", "4L40", "4S0", "4S1"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["9L24", "8L24", "8S11", "7L15", "6L15", "5L15", "4L15", "4S1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + }, + eventData: [ + {generation: 4, level: 47, shiny: 1, moves: ["metalclaw", "ancientpower", "dragonclaw", "roaroftime"]}, + {generation: 4, level: 70, shiny: 1, moves: ["roaroftime", "healblock", "earthpower", "slash"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dragonbreath", "scaryface"]}, + {generation: 5, level: 5, isHidden: true, moves: ["dragonbreath", "scaryface"], pokeball: "dreamball"}, + {generation: 5, level: 100, shiny: true, moves: ["dragonpulse", "dracometeor", "aurasphere", "roaroftime"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["aurasphere", "irontail", "roaroftime", "flashcannon"]}, + {generation: 6, level: 100, nature: "Modest", isHidden: true, moves: ["metalburst", "overheat", "roaroftime", "flashcannon"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["aurasphere", "irontail", "roaroftime", "flashcannon"]}, + {generation: 7, level: 60, moves: ["aurasphere", "irontail", "roaroftime", "flashcannon"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["roaroftime", "aurasphere", "dracometeor", "flashcannon"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["flashcannon", "dracometeor", "roaroftime", "aurasphere"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["slash", "ancientpower", "flashcannon", "dragonclaw"]}, + {generation: 8, level: 70, nature: "Bold", isHidden: true, moves: ["roaroftime", "flashcannon", "metalburst", "overheat"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + dialgaorigin: { + eventOnly: true, + }, + palkia: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M", "4M"], + ancientpower: ["9L16", "8L16", "8S11", "7L10", "6L10", "5L10", "4T", "4L10", "4S0"], + aquaring: ["9L32", "8L32", "7L24"], + aquatail: ["9L64", "8L64", "7T", "7L24", "7S7", "7S8", "6T", "6L24", "5T", "5L24", "4T", "4L24"], + aurasphere: ["9M", "9L48", "8M", "8L48", "8S12", "7L37", "7S7", "7S8", "7S9", "7S10", "6L37", "6S5", "6S6", "5L37", "5S4", "4L37"], + avalanche: ["9M", "8M", "4M"], + blizzard: ["9M", "8M", "7M", "6M", "5M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M", "4M"], + brine: ["8M", "4M"], + bulkup: ["9M", "8M", "7M", "6M", "5M", "4M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + dive: ["8M", "6M", "5M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "7S9", "7S10", "6T", "5T", "5S4", "4T"], + dragonbreath: ["9L8", "8L8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + dragonclaw: ["9M", "8M", "8L40", "8S11", "7M", "7L28", "6M", "6L28", "5M", "5L28", "4M", "4L28", "4S0"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["9M", "9L72", "8M", "8L72", "8S12", "7T", "7L33", "6T", "6L33", "6S5", "6S6", "5T", "5L33", "4T", "4L33", "4S1"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + fling: ["9M", "8M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + hail: ["8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healblock: ["4L50", "4S1"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hydropump: ["9M", "9L88", "8M", "8L88", "8S12", "7L50", "7S7", "7S8", "7S9", "7S10", "6L50", "6S5", "6S6", "5L50", "5S4", "4L42"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icywind: ["9M"], + incinerate: ["6M", "5M"], + liquidation: ["9M", "8M", "7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + powergem: ["9M", "9L56", "8M", "8L56", "7L19", "6L19", "5L19", "4L19"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M", "4M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L1", "8M", "8L1", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + secretpower: ["6M", "4M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + slash: ["9L24", "8L24", "8S11", "7L15", "6L15", "5L15", "4L15", "4S1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + snowscape: ["9M"], + spacialrend: ["9L80", "8L80", "8S12", "7L46", "7S7", "7S8", "7S9", "7S10", "6L46", "6S5", "6S6", "5L46", "5S4", "4L40", "4S0", "4S1"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + surf: ["9M", "8M", "8S11", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + waterfall: ["9M"], + waterpulse: ["9M", "9L1", "8L1", "7T", "7L6", "6T", "6L6", "5L6", "4M", "4L6", "4S0"], + whirlpool: ["8M", "4M"], + }, + eventData: [ + {generation: 4, level: 47, shiny: 1, moves: ["waterpulse", "ancientpower", "dragonclaw", "spacialrend"]}, + {generation: 4, level: 70, shiny: 1, moves: ["spacialrend", "healblock", "earthpower", "slash"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dragonbreath", "scaryface"]}, + {generation: 5, level: 5, isHidden: true, moves: ["dragonbreath", "scaryface"], pokeball: "dreamball"}, + {generation: 5, level: 100, shiny: true, moves: ["hydropump", "dracometeor", "spacialrend", "aurasphere"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["earthpower", "aurasphere", "spacialrend", "hydropump"]}, + {generation: 6, level: 100, nature: "Timid", isHidden: true, moves: ["earthpower", "aurasphere", "spacialrend", "hydropump"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["aurasphere", "aquatail", "spacialrend", "hydropump"]}, + {generation: 7, level: 60, moves: ["aurasphere", "aquatail", "spacialrend", "hydropump"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["spacialrend", "aurasphere", "dracometeor", "hydropump"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["hydropump", "dracometeor", "spacialrend", "aurasphere"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["slash", "surf", "ancientpower", "dragonclaw"]}, + {generation: 8, level: 70, nature: "Hasty", isHidden: true, moves: ["spacialrend", "hydropump", "aurasphere", "earthpower"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + palkiaorigin: { + eventOnly: true, + }, + heatran: { + learnset: { + ancientpower: ["9L12", "8L12", "7L1", "6L1", "5L1", "4T", "4L1", "4S2"], + attract: ["8M", "7M", "6M", "5M", "4M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bugbite: ["7T", "6T", "5T", "4T"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + captivate: ["4M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L36", "8M", "8L36", "8S8", "7L33", "7S5", "7S6", "6L33", "6S4", "5L33", "4L33", "4S1"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + dig: ["9M", "8M", "6M", "5M", "4M"], + doubleteam: ["7M", "6M", "5M", "4M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "4M"], + earthpower: ["9M", "9L54", "8M", "8L54", "7T", "7L1", "7S7", "6T", "6L1", "5T", "5L73", "4T", "4L73", "4S2"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + eruption: ["4S2"], + explosion: ["7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "8M", "7M", "6M", "5M", "4M"], + firefang: ["9M", "9L18", "8M", "8L18", "7L17", "6L17", "5L17", "4L17"], + firespin: ["9M", "9L1", "8M", "8L1", "7L1", "7S5", "7S6", "6L1", "5L57", "5S3", "4L57", "4S0"], + flamecharge: ["9M", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "4M"], + flareblitz: ["9M"], + flashcannon: ["9M", "8M", "7M", "7S7", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + headbutt: ["4T"], + heatcrash: ["8M"], + heatwave: ["9M", "9L60", "8M", "8L60", "7T", "7L1", "7S7", "6T", "6L1", "5T", "5L81", "4T", "4L81"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "9L30", "8M", "8L30", "8S8", "7T", "7L1", "6T", "6L1", "5T", "5L65", "5S3", "4T", "4L65", "4S0"], + lavaplume: ["9L42", "8L42", "8S8", "7L49", "7S5", "7S6", "6L49", "6S4", "5L49", "5S3", "4L49", "4S0", "4S1"], + leer: ["9L1", "8L1", "7L9", "6L9", "5L9", "4L9"], + magmastorm: ["9L72", "8L72", "7L1", "7S7", "6L1", "5L96", "4L96", "4S2"], + metalclaw: ["9M", "9L6", "8L6"], + metalsound: ["9L48", "8L48", "8S8", "7L25", "6L25", "6S4", "5L25", "4L25", "4S1"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "4M"], + payback: ["8M", "7M", "6M", "5M", "4M"], + pounce: ["9M"], + powergem: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockblast: ["9M"], + rockclimb: ["4M"], + rockslide: ["9M", "8M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L24", "8M", "8L24", "7L41", "7S5", "7S6", "6L41", "6S4", "5L41", "5S3", "4L41", "4S0", "4S1"], + scorchingsands: ["8T"], + secretpower: ["6M", "4M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + stealthrock: ["9M", "8M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L66", "8M", "8L66", "7M", "7L88", "6M", "6L88", "5M", "5L88", "4M", "4L88"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M", "4M"], + terablast: ["9M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["8M", "7T", "6T", "5T", "4T"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 70, shiny: 1, moves: ["scaryface", "lavaplume", "firespin", "ironhead"]}, + {generation: 4, level: 50, shiny: 1, moves: ["metalsound", "crunch", "scaryface", "lavaplume"]}, + {generation: 4, level: 50, gender: "M", nature: "Quiet", moves: ["eruption", "magmastorm", "earthpower", "ancientpower"], pokeball: "pokeball"}, + {generation: 5, level: 68, shiny: 1, moves: ["scaryface", "lavaplume", "firespin", "ironhead"]}, + {generation: 6, level: 50, shiny: 1, moves: ["metalsound", "crunch", "scaryface", "lavaplume"]}, + {generation: 7, level: 60, shiny: 1, moves: ["crunch", "scaryface", "lavaplume", "firespin"]}, + {generation: 7, level: 60, moves: ["crunch", "scaryface", "lavaplume", "firespin"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["magmastorm", "heatwave", "earthpower", "flashcannon"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["metalsound", "lavaplume", "crunch", "ironhead"]}, + ], + eventOnly: true, + }, + regigigas: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + ancientpower: ["4T"], + avalanche: ["8M", "4M"], + block: ["7T", "6T", "5T", "4T"], + bodypress: ["8M", "8L42"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M", "4M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L1", "7S5", "7S6", "6L1", "5L1", "4L1", "4S0", "4S1"], + crushgrip: ["8L78", "8S8", "7L1", "7S7", "6L1", "5L75", "4L75", "4S2"], + darkestlariat: ["8M"], + dizzypunch: ["7L1", "7S5", "7S6", "6L1", "5L1", "4L1", "4S1"], + doubleteam: ["7M", "6M", "5M", "4M"], + drainpunch: ["8M", "7T", "7S7", "6T", "5T", "4M"], + earthpower: ["8M", "7T", "6T", "5T", "4T"], + earthquake: ["8M", "7M", "6M", "5M", "4M"], + endure: ["8M", "4M"], + facade: ["8M", "7M", "6M", "5M", "4M"], + firepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + fling: ["8M", "7M", "6M", "5M", "4M"], + focusblast: ["8M", "7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foresight: ["7L1", "6L1", "6S4", "5L1", "4L1", "4S1"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["8M", "8L72", "8S8", "7M", "7L100", "6M", "6L100", "5M", "5L100", "4M", "4L100"], + gravity: ["7T", "6T", "5T", "4T"], + hammerarm: ["8L66", "8S8"], + headbutt: ["4T"], + heatcrash: ["8M"], + heavyslam: ["8M", "8L60", "7L1", "7S7", "6L1", "5L90"], + hiddenpower: ["7M", "6M", "5M", "4M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M", "4M"], + icepunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + icywind: ["8M", "7T", "6T", "5T", "4T", "4S2"], + ironhead: ["8M", "7T", "6T", "5T", "4T", "4S2"], + knockoff: ["8L30", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4L1", "4S1"], + megakick: ["8M"], + megapunch: ["8M", "8L36", "4L1"], + mudslap: ["4T"], + naturalgift: ["4M"], + naturepower: ["7M", "6M"], + payback: ["8M", "8L6", "7M", "7L65", "6M", "6L65", "5M", "5L65", "5S3"], + pound: ["8L1"], + poweruppunch: ["6M"], + protect: ["8M", "8L24"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["8M", "7M", "6M", "5M", "4M"], + rest: ["8M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + revenge: ["8M", "8L12", "7L25", "7S5", "7S6", "6L25", "6S4", "5L25", "5S3", "4L25"], + rockclimb: ["4M"], + rockpolish: ["7M", "6M", "5M", "4M"], + rockslide: ["8M", "7M", "6M", "5M", "4M", "4S2"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["8M", "7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["8M", "7M", "6M", "5T", "4M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + stomp: ["8L18", "4L1", "4S0"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["8M", "7M", "6M", "5M", "4M"], + sunnyday: ["8M", "7M", "6M", "5M", "4M"], + superpower: ["8M", "7T", "6T", "5T", "4T", "4L25", "4S0"], + swagger: ["7M", "6M", "5M", "4M"], + terrainpulse: ["8T"], + thunder: ["8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["8M", "7M", "6M", "5M", "4M"], + thunderpunch: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1", "4T", "4L1"], + thunderwave: ["8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + wideguard: ["8L48", "7L40", "6L40", "6S4", "5L40", "5S3"], + zenheadbutt: ["8M", "8L54", "8S8", "7T", "7L50", "7S5", "7S6", "7S7", "6T", "6L50", "6S4", "5T", "5L50", "5S3", "4T", "4L50", "4S0"], + }, + eventData: [ + {generation: 4, level: 70, shiny: 1, moves: ["confuseray", "stomp", "superpower", "zenheadbutt"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dizzypunch", "knockoff", "foresight", "confuseray"]}, + {generation: 4, level: 100, moves: ["ironhead", "rockslide", "icywind", "crushgrip"], pokeball: "cherishball"}, + {generation: 5, level: 68, shiny: 1, moves: ["revenge", "wideguard", "zenheadbutt", "payback"]}, + {generation: 6, level: 50, shiny: 1, moves: ["foresight", "revenge", "wideguard", "zenheadbutt"]}, + {generation: 7, level: 60, shiny: 1, moves: ["zenheadbutt", "revenge", "dizzypunch", "confuseray"]}, + {generation: 7, level: 60, moves: ["zenheadbutt", "revenge", "dizzypunch", "confuseray"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["crushgrip", "drainpunch", "zenheadbutt", "heavyslam"], pokeball: "cherishball"}, + {generation: 8, level: 100, shiny: 1, moves: ["gigaimpact", "zenheadbutt", "hammerarm", "crushgrip"]}, + ], + eventOnly: true, + }, + giratina: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + aircutter: ["4T"], + ancientpower: ["9L14", "8L14", "8S8", "7L10", "6L10", "5L10", "4T", "4L10", "4S1"], + aquatail: ["7T", "6T", "5T", "4T"], + aurasphere: ["9M", "9L56", "8M", "8L56", "7L37", "7S7", "6L37", "6S5", "6S6", "5L37", "5S4", "4L37"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T", "4M"], + defog: ["9L1", "8L1", "7T", "4M"], + destinybond: ["9L84", "8L84", "7L24", "6L24", "5L24", "4L24"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "8T", "7T", "6T", "6S6", "5T", "4T"], + dragonbreath: ["9L7", "8L7", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + dragonclaw: ["9M", "9L63", "8M", "8L63", "8S8", "7M", "7L28", "7S7", "6M", "6L28", "5M", "5L28", "5S4", "4M", "4L28", "4S1"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T", "5S4", "4M"], + dragontail: ["9M", "7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M", "4M"], + dualwingbeat: ["8T"], + earthpower: ["9M", "9L70", "8M", "8L70", "7T", "7L33", "7S7", "6T", "6L33", "5T", "5L33", "4T", "4L33", "4S0"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "4M"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + fly: ["9M", "8M", "7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + headbutt: ["4T"], + healblock: ["4L50", "4S0"], + hex: ["9M", "9L21", "8M", "8L21", "7L50", "6L50", "6S5", "5L50"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + icywind: ["9M", "8M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "8M", "7T", "6T", "6S6", "5T", "4T"], + irontail: ["8M", "7T", "6T", "5T", "4M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + naturalgift: ["4M"], + ominouswind: ["7L6", "6L6", "5L6", "4T", "4L6", "4S1"], + outrage: ["9M", "8M", "7T", "6T", "5T", "4T"], + painsplit: ["9L49", "8L49", "7T", "6T", "5T", "4T"], + payback: ["8M", "7M", "6M", "5M", "4M"], + phantomforce: ["9M", "8M"], + poltergeist: ["8T"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "8M", "7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + rockclimb: ["4M"], + rocksmash: ["6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M", "4M"], + scaryface: ["9M", "9L35", "8M", "8L35", "8S8", "7L1", "6L1", "5L1", "5S3", "4L1", "4S2"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "8S8", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L42", "6M", "6L42", "6S5", "5M", "5L42", "4M", "4L42"], + shadowforce: ["9L77", "8L77", "7L46", "7S7", "6L46", "6S5", "6S6", "5L46", "5S4", "4L40", "4S0", "4S1"], + shadowsneak: ["9L1", "8L1", "7L19", "6L19", "5L19", "4L19"], + shockwave: ["7T", "6T", "4M"], + silverwind: ["4M"], + slash: ["9L28", "8L28", "7L15", "6L15", "5L15", "4L15", "4S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + spite: ["7T", "6T", "5T", "4T"], + steelwing: ["8M", "7M", "6M", "4M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M", "4M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + tailwind: ["7T", "6T", "5T", "4T"], + takedown: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + twister: ["4T"], + willowisp: ["9M", "8M", "7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 70, shiny: 1, moves: ["shadowforce", "healblock", "earthpower", "slash"]}, + {generation: 4, level: 47, shiny: 1, moves: ["ominouswind", "ancientpower", "dragonclaw", "shadowforce"]}, + {generation: 4, level: 1, shiny: 1, moves: ["dragonbreath", "scaryface"]}, + {generation: 5, level: 5, isHidden: true, moves: ["dragonbreath", "scaryface"], pokeball: "dreamball"}, + {generation: 5, level: 100, shiny: true, moves: ["dragonpulse", "dragonclaw", "aurasphere", "shadowforce"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["aurasphere", "shadowclaw", "shadowforce", "hex"]}, + {generation: 6, level: 100, nature: "Brave", isHidden: true, moves: ["aurasphere", "dracometeor", "shadowforce", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["shadowforce", "aurasphere", "earthpower", "dragonclaw"]}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonclaw", "scaryface", "shadowball", "ancientpower"]}, + ], + eventOnly: true, + }, + giratinaorigin: { + eventOnly: true, + }, + cresselia: { + learnset: { + allyswitch: ["9L24", "8M", "7T"], + attract: ["8M", "7M", "6M", "5M", "4M"], + aurorabeam: ["9L12", "8L12", "7L29", "7S4", "6L29", "6S3", "5L29", "4L29", "4S0"], + bodyslam: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "6M", "5M", "4M"], + captivate: ["4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1", "4L1"], + dazzlinggleam: ["9M"], + doubleteam: ["9L1", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1", "4M", "4L1"], + dreameater: ["7M", "6M", "5M", "4M"], + endure: ["9M", "8M", "4M"], + energyball: ["9M", "8M", "7M", "6M", "5M", "5S2", "4M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + futuresight: ["9L66", "8M", "8L66", "7L38", "7S4", "6L38", "6S3", "5L38", "5S1", "4L38", "4S0"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "8M", "7M", "6M", "5M", "4M"], + gravity: ["7T", "6T", "5T", "4T"], + guardswap: ["8M"], + helpinghand: ["9M", "8M", "7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "5S2", "4M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + icebeam: ["9M", "8M", "7M", "6M", "5M", "5S2", "4M"], + icywind: ["9M", "8M", "8S5", "7T", "6T", "5T", "4T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M", "4M"], + lunarblessing: ["9L72"], + lunardance: ["9L72", "8L72", "7L1", "6L1", "5L84", "4L84"], + magiccoat: ["7T", "6T", "5T", "4T"], + magicroom: ["8M", "7T", "6T", "5T"], + mist: ["9L6", "8L6", "7L20", "6L20", "6S3", "5L20", "4L20", "4S0"], + moonblast: ["9L60", "8L60", "8S5", "7L99", "6L99"], + moonlight: ["9L42", "8L42", "7L1", "7S4", "6L1", "5L57", "5S1", "4L57"], + mudslap: ["9M", "4T"], + naturalgift: ["4M"], + powergem: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M", "6M", "5M", "4M"], + psybeam: ["9M", "9L18", "8L18"], + psychic: ["9M", "9L54", "8M", "8L54", "7M", "7L93", "6M", "6L93", "5M", "5L93", "4M", "4L93"], + psychicterrain: ["9M"], + psychocut: ["9L36", "8M", "8L36", "8S5", "7L1", "6L1", "5L66", "5S1", "4L66"], + psychoshift: ["8L24", "7L1", "6L1", "5L75", "4L75"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "8M", "8S5", "7M", "6M", "5M", "5S2"], + raindance: ["9M", "8M", "7M", "6M", "5M", "4M"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "8M", "7M", "6M", "5M", "4M"], + rest: ["9M", "8M", "7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["9L48", "8M", "8L48", "7M", "7L11", "6M", "6L11", "5M", "5L11", "4M", "4L11"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + shadowball: ["9M", "8M", "7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["9M", "8M", "7T", "6T", "5T", "4M"], + slash: ["9L30", "8L30", "7L47", "7S4", "6L47", "6S3", "5L47", "5S1", "4L47", "4S0"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T", "4M"], + snore: ["8M", "7T", "6T", "5T", "4T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M", "4M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "8M", "4T"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["9M", "8M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "8M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, shiny: 1, moves: ["mist", "aurorabeam", "futuresight", "slash"]}, + {generation: 5, level: 68, shiny: 1, moves: ["futuresight", "slash", "moonlight", "psychocut"]}, + {generation: 5, level: 68, nature: "Modest", moves: ["icebeam", "psyshock", "energyball", "hiddenpower"]}, + {generation: 6, level: 50, shiny: 1, moves: ["mist", "aurorabeam", "futuresight", "slash"]}, + {generation: 7, level: 60, shiny: 1, moves: ["aurorabeam", "futuresight", "slash", "moonlight"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icywind", "moonblast", "psychocut", "psyshock"]}, + ], + eventOnly: true, + }, + phione: { + learnset: { + acidarmor: ["7L31", "6L31", "5L31", "4L31"], + ancientpower: ["4T"], + aquaring: ["7L54", "6L54", "5L54", "4L54"], + blizzard: ["7M", "6M", "5M", "4M"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["4M"], + bubble: ["7L1", "6L1", "5L1", "4L1"], + bubblebeam: ["7L24", "6L24", "5L24", "4L24"], + charm: ["7L9", "6L9", "5L9", "4L9"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["7M", "6M"], + dive: ["7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M", "4S0"], + hail: ["7M", "6M", "5M", "4M"], + healbell: ["7T", "6T", "5T", "4T"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + liquidation: ["7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69", "4S0"], + rest: ["7M", "6M", "5M", "4M", "4S0"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + substitute: ["7M", "6M", "5M", "4M"], + supersonic: ["7L16", "6L16", "5L16", "4L16"], + surf: ["7M", "6M", "5M", "4M", "4S0"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + waterfall: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "7L46", "6T", "6L46", "5L46", "4M", "4L46"], + watersport: ["7L1", "6L1", "5L1", "4L1"], + whirlpool: ["7L39", "6L39", "5L39", "4M", "4L39"], + }, + eventData: [ + {generation: 4, level: 50, moves: ["grassknot", "raindance", "rest", "surf"], pokeball: "cherishball"}, + ], + }, + manaphy: { + learnset: { + acidarmor: ["7L31", "6L31", "5L31", "4L31", "4S2"], + ancientpower: ["4T"], + aquaring: ["7L54", "7S6", "6L54", "5L54", "4L54", "4S3"], + blizzard: ["7M", "6M", "5M", "4M"], + bounce: ["7T", "6T", "5T", "4T"], + brine: ["4M"], + bubble: ["7L1", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1"], + bubblebeam: ["7L24", "6L24", "5L24", "4L24"], + calmmind: ["7M", "6M", "5M", "4M"], + charm: ["7L9", "6L9", "5L9", "4L9"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["7M", "6M"], + dive: ["7L61", "6M", "6L61", "5M", "5L61", "4T", "4L61"], + doubleteam: ["7M", "6M", "5M", "4M"], + endure: ["4M"], + energyball: ["7M", "6M", "5M", "4M"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + hail: ["7M", "6M", "5M", "4M"], + healbell: ["7T", "6T", "5T", "4T"], + heartswap: ["7L76", "7S6", "6L76", "6S4", "5L76", "4L76", "4S2", "4S3"], + helpinghand: ["7T", "6T", "5T", "4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["7M", "6M", "5M", "4M"], + liquidation: ["7T"], + mudslap: ["4T"], + naturalgift: ["4M"], + protect: ["7M", "6M", "5M", "4M"], + psychic: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + raindance: ["7M", "7L69", "6M", "6L69", "5M", "5L69", "4M", "4L69"], + reflect: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + skillswap: ["7T", "6T", "5T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + substitute: ["7M", "6M", "5M", "4M"], + supersonic: ["7L16", "6L16", "5L16", "4L16"], + surf: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + tailglow: ["7L1", "7S6", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1"], + toxic: ["7M", "6M", "5M", "4M"], + uproar: ["7T", "6T", "5T", "4T"], + uturn: ["7M", "6M", "5M", "4M"], + waterfall: ["7M", "6M", "5M", "4M"], + waterpulse: ["7T", "7L46", "7S6", "6T", "6L46", "5L46", "4M", "4L46", "4S2", "4S3"], + watersport: ["7L1", "6L1", "6S4", "6S5", "5L1", "4L1", "4S0", "4S1", "4S3"], + whirlpool: ["7L39", "6L39", "5L39", "4M", "4L39", "4S2"], + }, + eventData: [ + {generation: 4, level: 5, moves: ["tailglow", "bubble", "watersport"]}, + {generation: 4, level: 1, shiny: 1, moves: ["tailglow", "bubble", "watersport"], pokeball: "pokeball"}, + {generation: 4, level: 50, moves: ["heartswap", "waterpulse", "whirlpool", "acidarmor"], pokeball: "cherishball"}, + {generation: 4, level: 50, nature: "Impish", moves: ["aquaring", "waterpulse", "watersport", "heartswap"], pokeball: "cherishball"}, + {generation: 6, level: 1, moves: ["tailglow", "bubble", "watersport", "heartswap"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["tailglow", "bubble", "watersport"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["tailglow", "waterpulse", "aquaring", "heartswap"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + darkrai: { + learnset: { + aerialace: ["7M", "6M", "5M", "4M"], + blizzard: ["7M", "6M", "5M", "4M"], + brickbreak: ["7M", "6M", "5M", "4M"], + calmmind: ["7M", "6M", "5M", "4M"], + chargebeam: ["7M", "6M", "5M", "4M"], + confide: ["7M", "6M"], + cut: ["6M", "5M", "4M"], + darkpulse: ["7M", "7L93", "6M", "6L93", "6S5", "5T", "5L93", "4M", "4L93", "4S2"], + darkvoid: ["7L66", "7S7", "6L66", "6S5", "6S6", "5L66", "5S4", "4L66", "4S2"], + disable: ["7L1", "6L1", "5L1", "4L1"], + doubleteam: ["7M", "7L47", "6M", "6L47", "5M", "5L47", "4M", "4L47", "4S2", "4S3"], + drainpunch: ["7T", "6T", "5T", "4M"], + dreameater: ["7M", "7L84", "6M", "6L84", "6S5", "5M", "5L84", "4M", "4L84"], + embargo: ["7M", "6M", "5M", "4M", "4L75"], + endure: ["4M"], + facade: ["7M", "6M", "5M", "4M"], + feintattack: ["7L29", "7S7", "6L29", "6S6", "5L29", "5S4", "4L29", "4S3"], + flash: ["6M", "5M", "4M"], + fling: ["7M", "6M", "5M", "4M"], + focusblast: ["7M", "6M", "5M", "4M"], + focuspunch: ["7T", "6T", "4M"], + foulplay: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + haze: ["7L57", "6L57", "5L57", "4L57"], + headbutt: ["4T"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + hypnosis: ["7L20", "6L20", "5L20", "4L20", "4S0", "4S1", "4S3"], + icebeam: ["7M", "6M", "5M", "4M"], + icywind: ["7T", "6T", "5T", "4T"], + incinerate: ["6M", "5M"], + knockoff: ["7T", "6T", "5T", "4T"], + lastresort: ["7T", "6T", "5T", "4T"], + mudslap: ["4T"], + nastyplot: ["7L75", "6L75", "5L75", "4L75"], + naturalgift: ["4M"], + nightmare: ["7L38", "7S7", "6L38", "6S6", "5L38", "5S4", "4L38", "4S0", "4S1", "4S3"], + nightshade: ["4L1"], + ominouswind: ["7L1", "7S7", "6L1", "6S6", "5L1", "5S4", "4T", "4L1"], + payback: ["7M", "6M", "5M", "4M"], + phantomforce: ["6S5"], + poisonjab: ["7M", "6M", "5M", "4M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M", "4M"], + psychic: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + pursuit: ["4L29", "4S0"], + quickattack: ["7L11", "6L11", "5L11", "4L11", "4S0"], + raindance: ["7M", "6M", "5M", "4M"], + rest: ["7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roaroftime: ["4S1"], + rockclimb: ["4M"], + rockslide: ["7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M", "4M"], + shadowball: ["7M", "6M", "5M", "4M", "4S2"], + shadowclaw: ["7M", "6M", "5M", "4M"], + shockwave: ["7T", "6T", "4M"], + sleeptalk: ["7M", "6M", "5T", "4M"], + sludgebomb: ["7M", "6M", "5M", "4M"], + snarl: ["7M", "6M", "5M"], + snatch: ["7T", "6T", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + spacialrend: ["4S1"], + spite: ["7T", "6T", "5T", "4T"], + strength: ["6M", "5M", "4M"], + substitute: ["7M", "6M", "5M", "4M"], + suckerpunch: ["4T"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["4T"], + swordsdance: ["7M", "6M", "5M", "4M"], + taunt: ["7M", "6M", "5M", "4M"], + thief: ["7M", "6M", "5M", "4M"], + throatchop: ["7T"], + thunder: ["7M", "6M", "5M", "4M"], + thunderbolt: ["7M", "6M", "5M", "4M"], + thunderwave: ["7M", "6M", "5M", "4M"], + torment: ["7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trick: ["7T", "6T", "5T", "4T"], + willowisp: ["7M", "6M", "5M", "4M"], + wonderroom: ["7T", "6T", "5T"], + xscissor: ["7M", "6M", "5M", "4M"], + }, + eventData: [ + {generation: 4, level: 40, shiny: 1, moves: ["quickattack", "hypnosis", "pursuit", "nightmare"]}, + {generation: 4, level: 50, moves: ["roaroftime", "spacialrend", "nightmare", "hypnosis"], pokeball: "cherishball"}, + {generation: 4, level: 50, moves: ["darkvoid", "darkpulse", "shadowball", "doubleteam"], pokeball: "pokeball"}, + {generation: 4, level: 50, shiny: 1, moves: ["hypnosis", "feintattack", "nightmare", "doubleteam"]}, + {generation: 5, level: 50, moves: ["darkvoid", "ominouswind", "feintattack", "nightmare"], pokeball: "cherishball"}, + {generation: 6, level: 50, moves: ["darkvoid", "darkpulse", "phantomforce", "dreameater"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["darkvoid", "ominouswind", "nightmare", "feintattack"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["darkvoid", "feintattack", "nightmare", "ominouswind"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + shaymin: { + learnset: { + aircutter: ["4T"], + airslash: ["7L64", "6L64", "6S3", "5L64", "4L64"], + aromatherapy: ["7L64", "6L64", "6S4", "5L64", "4L64", "4S0"], + bulletseed: ["4M"], + celebrate: ["7S5"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["7M", "6M"], + defensecurl: ["4L1"], + doubleteam: ["7M", "6M", "5M", "4M"], + earthpower: ["7T", "6T", "5T", "4T"], + endeavor: ["7T", "6T", "5T", "4T"], + endure: ["4M"], + energyball: ["7M", "7L73", "6M", "6L73", "6S4", "5M", "5L73", "4M", "4L73", "4S0"], + facade: ["7M", "6M", "5M", "4M"], + flash: ["6M", "5M", "4M"], + frustration: ["7M", "6M", "5M", "4M"], + gigadrain: ["7T", "6T", "5T", "4M"], + gigaimpact: ["7M", "6M", "5M", "4M"], + grassknot: ["7M", "6M", "5M", "4M"], + grasswhistle: ["4L82"], + growth: ["7L1", "7S5", "6L1", "6S3", "5L1", "4L1", "4S1"], + headbutt: ["4T"], + healingwish: ["7L91", "6L91", "5L91", "4L91"], + hiddenpower: ["7M", "6M", "5M", "4M"], + hyperbeam: ["7M", "6M", "5M", "4M"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + leafstorm: ["7L91", "6L91", "5L91", "4L91"], + leechseed: ["7L19", "6L19", "5L19", "5S2", "4L19", "4S1"], + luckychant: ["4L91"], + magicalleaf: ["7L10", "6L10", "6S3", "5L10", "4L10", "4S1"], + mudslap: ["4T"], + naturalgift: ["7L46", "6L46", "5L46", "4M", "4L46"], + naturepower: ["7M", "6M"], + ominouswind: ["4T"], + protect: ["7M", "6M", "5M", "4M"], + psychic: ["7M", "6M", "5M", "4M"], + psychup: ["7M", "6M", "5M", "4M"], + quickattack: ["7L28", "6L28", "5L28", "4L28"], + rest: ["7M", "6M", "5M", "4M"], + return: ["7M", "7S5", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + secretpower: ["6M", "4M"], + seedbomb: ["7T", "6T", "5T", "4T"], + seedflare: ["7L100", "7S5", "6L100", "6S3", "6S4", "5L100", "5S2", "4L100", "4S0"], + sleeptalk: ["7M", "6M", "5T", "4M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["7M", "6M", "5M", "4M"], + substitute: ["7M", "6M", "6S4", "5M", "4M", "4S0"], + sunnyday: ["7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + sweetkiss: ["7L82", "6L82", "5L82", "4L82"], + sweetscent: ["7L37", "6L37", "5L37", "5S2", "4L37"], + swift: ["4T"], + swordsdance: ["7M", "6M", "5M", "4M"], + synthesis: ["7T", "7L28", "6T", "6L28", "5T", "5L28", "5S2", "4T", "4L28", "4S1"], + tailwind: ["7T", "6T", "5T", "4T"], + toxic: ["7M", "6M", "5M", "4M"], + worryseed: ["7T", "7L55", "6T", "6L55", "5T", "5L55", "4T", "4L55"], + zenheadbutt: ["7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 50, moves: ["seedflare", "aromatherapy", "substitute", "energyball"], pokeball: "cherishball"}, + {generation: 4, level: 30, shiny: 1, moves: ["growth", "magicalleaf", "leechseed", "synthesis"], pokeball: "pokeball"}, + {generation: 5, level: 50, moves: ["seedflare", "leechseed", "synthesis", "sweetscent"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["growth", "magicalleaf", "seedflare", "airslash"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["seedflare", "aromatherapy", "substitute", "energyball"], pokeball: "cherishball"}, + {generation: 7, level: 20, moves: ["return", "growth", "seedflare", "celebrate"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + shayminsky: { + eventOnly: true, + }, + arceus: { + learnset: { + acidspray: ["9M"], + aerialace: ["7M", "6M", "5M", "4M"], + agility: ["9M"], + airslash: ["9M"], + ancientpower: ["4T"], + aquatail: ["7T", "6T", "5T", "4T"], + aurasphere: ["9M"], + avalanche: ["9M", "4M"], + blastburn: ["6S2"], + blizzard: ["9M", "7M", "6M", "5M", "4M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M", "4M"], + brine: ["4M"], + bugbuzz: ["9M"], + bulkup: ["9M"], + bulldoze: ["9M", "7M", "6M", "5M"], + bulletseed: ["9M", "4M"], + calmmind: ["9M", "7M", "6M", "5M", "4M"], + chargebeam: ["9M", "7M", "6M", "5M", "4M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + cosmicpower: ["9L1", "7L1", "6L1", "5L1", "4L1"], + cut: ["6M", "5M", "4M"], + darkpulse: ["9M", "7M", "6M", "5T", "4M"], + dazzlinggleam: ["9M"], + defog: ["7T", "4M"], + dive: ["6M", "4T"], + doubleteam: ["7M", "6M", "5M", "4M"], + dracometeor: ["9M", "7T", "6T", "5T", "4T"], + dragonclaw: ["9M", "7M", "6M", "5M", "4M"], + dragondance: ["9M"], + dragonpulse: ["9M", "7T", "6T", "5T", "4M"], + dragontail: ["9M"], + dreameater: ["7M", "6M", "5M", "4M"], + earthpower: ["9M", "9L20", "7T", "7L20", "6T", "6L20", "6S2", "5T", "5L20", "4T", "4L20"], + earthquake: ["9M", "7M", "6M", "5M", "4M"], + echoedvoice: ["7M", "6M", "5M"], + electricterrain: ["9M"], + endure: ["9M", "4M"], + energyball: ["9M", "7M", "6M", "5M", "4M"], + extremespeed: ["9L40", "7L40", "7S4", "6L40", "5L40", "4L40"], + facade: ["9M", "7M", "6M", "5M", "4M"], + fireblast: ["9M", "7M", "6M", "5M", "4M"], + flamethrower: ["9M", "7M", "6M", "5M", "4M"], + flareblitz: ["9M"], + flash: ["6M", "5M", "4M"], + flashcannon: ["9M", "7M", "6M", "5M", "4M"], + fly: ["9M", "7M", "6M", "5M", "4M"], + focusblast: ["9M", "7M", "6M", "5M", "4M"], + foulplay: ["9M"], + frustration: ["7M", "6M", "5M", "4M"], + furycutter: ["4T"], + futuresight: ["9L60", "7L60", "6L60", "5L60", "4L60"], + gigadrain: ["9M", "7T", "6T", "5T", "4M"], + gigaimpact: ["9M", "7M", "6M", "5M", "4M"], + grassknot: ["9M", "7M", "6M", "5M", "4M"], + grassyterrain: ["9M"], + gravity: ["9L10", "7T", "7L10", "6T", "6L10", "5T", "5L10", "4T", "4L10"], + gunkshot: ["9M"], + hail: ["7M", "6M", "5M", "4M"], + headbutt: ["4T"], + healingwish: ["9L50"], + heatwave: ["9M", "7T", "6T", "5T", "4T"], + heavyslam: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M", "4M"], + honeclaws: ["6M", "5M"], + hurricane: ["9M"], + hydrocannon: ["6S2"], + hydropump: ["9M"], + hyperbeam: ["9M", "9L80", "7M", "7L80", "7S4", "6M", "6L80", "6S3", "5M", "5L80", "5S1", "4M", "4L80"], + hypervoice: ["9M", "9L30", "7T", "7L30", "6T", "6L30", "5T", "5L30", "4L30"], + icebeam: ["9M", "7M", "6M", "5M", "4M"], + icywind: ["9M", "7T", "6T", "5T", "4T"], + imprison: ["9M"], + incinerate: ["6M", "5M"], + irondefense: ["9M", "7T", "6T", "5T", "4T"], + ironhead: ["9M", "7T", "6T", "5T", "4T"], + irontail: ["7T", "6T", "5T", "4M"], + judgment: ["9L100", "7L100", "7S4", "6L100", "6S2", "6S3", "5L100", "5S1", "4L100", "4S0"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T", "4T"], + lightscreen: ["9M", "7M", "6M", "5M", "4M"], + liquidation: ["9M", "7T"], + magicalleaf: ["9M"], + magiccoat: ["7T", "6T", "5T", "4T"], + mistyterrain: ["9M"], + mudslap: ["4T"], + naturalgift: ["7L1", "6L1", "5L1", "4M", "4L1"], + ominouswind: ["4T"], + outrage: ["9M", "7T", "6T", "5T", "4T"], + overheat: ["9M", "7M", "6M", "5M", "4M"], + payback: ["7M", "6M", "5M", "4M"], + perishsong: ["9L90", "7L90", "6L90", "6S3", "5L90", "5S1", "4L90"], + phantomforce: ["9M"], + poisonjab: ["9M", "7M", "6M", "5M", "4M"], + powergem: ["9M"], + protect: ["9M", "7M", "6M", "5M", "4M"], + psychic: ["9M", "7M", "6M", "5M", "4M"], + psychicterrain: ["9M"], + psychup: ["7M", "6M", "5M", "4M"], + psyshock: ["9M", "7M", "6M", "5M"], + punishment: ["7L1", "6L1", "5L1", "4L1"], + quash: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M", "4M"], + recover: ["9L70", "7L70", "7S4", "6L70", "6S3", "5L70", "5S1", "4L70"], + recycle: ["7T", "6T", "5T", "4M"], + reflect: ["9M", "7M", "6M", "5M", "4M"], + refresh: ["7L50", "6L50", "5L50", "4L50"], + rest: ["9M", "7M", "6M", "5M", "4M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M", "4M"], + roar: ["7M", "6M", "5M", "4M"], + roaroftime: ["4S0"], + rockclimb: ["4M"], + rockslide: ["9M", "7M", "6M", "5M", "4M"], + rocksmash: ["6M", "5M", "4M"], + rocktomb: ["9M", "7M", "6M", "5M", "4M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M", "4M"], + sandstorm: ["9M", "7M", "6M", "5M", "4M"], + scaryface: ["9M"], + secretpower: ["6M", "4M"], + seismictoss: ["9L1", "7L1", "6L1", "5L1", "4L1"], + shadowball: ["9M", "7M", "6M", "5M", "4M"], + shadowclaw: ["9M", "7M", "6M", "5M", "4M"], + shadowforce: ["4S0"], + shockwave: ["7T", "6T", "4M"], + signalbeam: ["7T", "6T", "5T", "4T"], + silverwind: ["4M"], + sleeptalk: ["9M", "7M", "6M", "5T", "4M"], + sludgebomb: ["9M", "7M", "6M", "5M", "4M"], + snarl: ["9M", "7M", "6M", "5M"], + snore: ["7T", "6T", "5T", "4T"], + solarbeam: ["9M", "7M", "6M", "5M", "4M"], + spacialrend: ["4S0"], + stealthrock: ["9M", "7T", "6T", "5T", "4M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "7M", "6M", "5M", "4M"], + storedpower: ["9M"], + strength: ["6M", "5M", "4M"], + substitute: ["9M", "7M", "6M", "5M", "4M"], + sunnyday: ["9M", "7M", "6M", "5M", "4M"], + surf: ["9M", "7M", "6M", "5M", "4M"], + swagger: ["7M", "6M", "5M", "4M"], + swift: ["9M", "4T"], + swordsdance: ["9M", "7M", "6M", "5M", "4M"], + tailwind: ["9M", "7T", "6T", "5T", "4T"], + takedown: ["9M"], + taunt: ["9M"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M", "4M"], + thunderbolt: ["9M", "7M", "6M", "5M", "4M"], + thunderwave: ["9M", "7M", "6M", "5M", "4M"], + toxic: ["7M", "6M", "5M", "4M"], + trailblaze: ["9M"], + trick: ["9M", "7T", "6T", "5T", "4T"], + trickroom: ["9M", "7M", "6M", "5M", "4M"], + twister: ["4T"], + waterfall: ["9M", "7M", "6M", "5M", "4M"], + waterpulse: ["9M", "7T", "6T", "4M"], + whirlpool: ["4M"], + wildcharge: ["9M"], + willowisp: ["9M", "7M", "6M", "5M", "4M"], + workup: ["7M", "5M"], + xscissor: ["9M", "7M", "6M", "5M", "4M"], + zenheadbutt: ["9M", "7T", "6T", "5T", "4T"], + }, + eventData: [ + {generation: 4, level: 100, moves: ["judgment", "roaroftime", "spacialrend", "shadowforce"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["recover", "hyperbeam", "perishsong", "judgment"]}, + {generation: 6, level: 100, shiny: 1, moves: ["judgment", "blastburn", "hydrocannon", "earthpower"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["judgment", "perishsong", "hyperbeam", "recover"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["judgment", "extremespeed", "recover", "hyperbeam"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + arceusbug: { + eventOnly: true, + }, + arceusdark: { + eventOnly: true, + }, + arceusdragon: { + eventOnly: true, + }, + arceuselectric: { + eventOnly: true, + }, + arceusfairy: { + eventOnly: true, + }, + arceusfighting: { + eventOnly: true, + }, + arceusfire: { + eventOnly: true, + }, + arceusflying: { + eventOnly: true, + }, + arceusghost: { + eventOnly: true, + }, + arceusgrass: { + eventOnly: true, + }, + arceusground: { + eventOnly: true, + }, + arceusice: { + eventOnly: true, + }, + arceuspoison: { + eventOnly: true, + }, + arceuspsychic: { + eventOnly: true, + }, + arceusrock: { + eventOnly: true, + }, + arceussteel: { + eventOnly: true, + }, + arceuswater: { + eventOnly: true, + }, + victini: { + learnset: { + batonpass: ["8M"], + blazekick: ["8M"], + blueflare: ["5S2"], + boltstrike: ["5S2"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + celebrate: ["7S6"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "6S3", "6S4", "5L1", "5S0"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleedge: ["8L70", "7L65", "6L65", "5L65"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endure: ["8M", "8L35", "7L9", "6L9", "6S4", "5L9", "5S0"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + finalgambit: ["8L91", "7L81", "6L81", "5L81"], + fireblast: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + firespin: ["8M"], + flameburst: ["7L41", "6L41", "5L41"], + flamecharge: ["8L1", "8S7", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + flamethrower: ["8M", "7M", "6M", "5M"], + flareblitz: ["8M", "8L77", "7L73", "6L73", "5L73"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "5M"], + fusionbolt: ["5S1"], + fusionflare: ["5S1"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + glaciate: ["5S2"], + grassknot: ["8M", "7M", "6M", "5M"], + guardswap: ["8M"], + headbutt: ["8L28", "7L17", "6L17", "5L17"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + incinerate: ["8L14", "7L1", "6M", "6L1", "6S4", "5M", "5L1", "5S0"], + inferno: ["8L49", "7L57", "6L57", "5L57"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + mysticalfire: ["8M"], + overheat: ["8M", "8L84", "7M", "7L97", "6M", "6L97", "5M", "5L97"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "6S3", "6S4", "6S5", "5L1", "5S0"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L56", "7L33", "7S6", "6L33", "5L33"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + searingshot: ["8L63", "7L1", "6L1", "6S3", "5L1", "5S1"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + speedswap: ["8M"], + storedpower: ["8M", "8L21", "7L89", "7S6", "6L89", "5L89"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "6S5", "5M"], + swift: ["8M"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + vcreate: ["8L1", "8S7", "7S6", "6S3", "6S5", "5S1", "5S2"], + wildcharge: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L7", "8S7", "7M", "5M"], + zenheadbutt: ["8M", "8L42", "8S7", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["quickattack", "incinerate", "confusion", "endure"]}, + {generation: 5, level: 50, moves: ["vcreate", "fusionflare", "fusionbolt", "searingshot"], pokeball: "cherishball"}, + {generation: 5, level: 100, moves: ["vcreate", "blueflare", "boltstrike", "glaciate"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["confusion", "quickattack", "vcreate", "searingshot"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["incinerate", "quickattack", "endure", "confusion"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["quickattack", "swagger", "vcreate"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["vcreate", "reversal", "storedpower", "celebrate"], pokeball: "cherishball"}, + {generation: 8, level: 50, nature: "Brave", perfectIVs: 6, moves: ["vcreate", "zenheadbutt", "workup", "flamecharge"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + snivy: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + aromatherapy: ["5S0"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + calmmind: ["7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + coil: ["7L31", "6L31", "5L31"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + energyball: ["7M", "6M", "5M", "5S0"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], + gigadrain: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], + glare: ["7E", "6E", "5E"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T", "6T", "5T"], + grassyterrain: ["7E", "6E"], + growth: ["7L13", "6L13", "5L13", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["7T", "6T", "5T"], + leafblade: ["7L28", "6L28", "5L28"], + leafstorm: ["7L43", "6L43", "5L43"], + leaftornado: ["7L16", "6L16", "5L16"], + leechseed: ["7L19", "6L19", "5L19"], + leer: ["7L4", "6L4", "5L4"], + lightscreen: ["7M", "6M", "5M"], + magicalleaf: ["7E", "6E", "5E"], + meanlook: ["7E", "6E", "5E"], + megadrain: ["7L22", "6L22", "5L22"], + mirrorcoat: ["7E", "6E", "5E"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["7M", "6M"], + protect: ["7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + slam: ["7L25", "6L25", "5L25"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["7E", "6E", "5E"], + swordsdance: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T", "5S0"], + tackle: ["7L1", "6L1", "5L1"], + taunt: ["7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + twister: ["7E", "6E", "5E"], + vinewhip: ["7L7", "6L7", "5L7"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T"], + wrap: ["7L10", "6L10", "5L10"], + wringout: ["7L37", "6L37", "5L37"], + }, + eventData: [ + {generation: 5, level: 5, gender: "M", nature: "Hardy", moves: ["growth", "synthesis", "energyball", "aromatherapy"], pokeball: "cherishball"}, + ], + }, + servine: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + calmmind: ["7M", "6M", "5M"], + coil: ["7L36", "6L36", "5L36"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7L48", "6T", "6L48", "5T", "5L48"], + gigadrain: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T", "6T", "5T"], + growth: ["7L13", "6L13", "5L13"], + hiddenpower: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leafblade: ["7L32", "6L32", "5L32"], + leafstorm: ["7L52", "6L52", "5L52"], + leaftornado: ["7L16", "6L16", "5L16"], + leechseed: ["7L20", "6L20", "5L20"], + leer: ["7L1", "6L1", "5L1"], + lightscreen: ["7M", "6M", "5M"], + megadrain: ["7L24", "6L24", "5L24"], + naturepower: ["7M", "6M"], + protect: ["7M", "6M", "5M"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + slam: ["7L28", "6L28", "5L28"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["7L1", "6L1", "5L1"], + taunt: ["7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + vinewhip: ["7L1", "6L1", "5L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T"], + wrap: ["7L1", "6L1", "5L1"], + wringout: ["7L44", "6L44", "5L44"], + }, + }, + serperior: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + brutalswing: ["7M"], + calmmind: ["7M", "6M", "5M"], + coil: ["7L38", "6L38", "5L38"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dragonpulse: ["7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + frenzyplant: ["7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7L56", "6T", "6L56", "5T", "5L56"], + gigadrain: ["7T", "7L44", "6T", "6L44", "6S1", "5T", "5L44", "5S0"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T", "6T", "5T"], + growth: ["7L13", "6L13", "5L13"], + hiddenpower: ["7M", "6M", "5M"], + holdback: ["6S1"], + hyperbeam: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leafblade: ["7L32", "6L32", "5L32"], + leafstorm: ["7L62", "6L62", "6S1", "5L62", "5S0"], + leaftornado: ["7L16", "6L16", "5L16"], + leechseed: ["7L20", "6L20", "5L20", "5S0"], + leer: ["7L1", "6L1", "5L1"], + lightscreen: ["7M", "6M", "5M"], + megadrain: ["7L24", "6L24", "5L24"], + naturepower: ["7M", "6M"], + outrage: ["7T", "6T", "5T"], + protect: ["7M", "6M", "5M"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + slam: ["7L28", "6L28", "5L28"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M", "5S0"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["7L1", "6L1", "5L1"], + taunt: ["7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + vinewhip: ["7L1", "6L1", "5L1"], + workup: ["7M"], + worryseed: ["7T", "6T", "5T"], + wrap: ["7L1", "6L1", "5L1"], + wringout: ["7L50", "6L50", "6S1", "5L50"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["leafstorm", "substitute", "gigadrain", "leechseed"], pokeball: "cherishball"}, + {generation: 6, level: 50, isHidden: true, moves: ["leafstorm", "holdback", "wringout", "gigadrain"], pokeball: "cherishball"}, + ], + }, + tepig: { + learnset: { + assurance: ["7L31", "6L31", "5L31"], + attract: ["7M", "6M", "5M"], + bodyslam: ["7E", "6E", "5E"], + burnup: ["7E"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + curse: ["7E", "6E", "5E"], + defensecurl: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["7L7", "6L7", "5L7"], + endeavor: ["7T", "7E", "6T", "6E", "5T", "5E"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T", "6T", "5T"], + flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["7M", "7L33", "6M", "6L33", "5M", "5L33"], + flareblitz: ["7L43", "6L43", "5L43"], + frustration: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gyroball: ["7M", "6M", "5M"], + headsmash: ["7L37", "6L37", "5L37"], + heatcrash: ["7L27", "6L27", "5L27"], + heatwave: ["7T", "6T", "5T"], + heavyslam: ["7E", "6E", "5E"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + magnitude: ["7E", "6E", "5E"], + odorsleuth: ["7L9", "6L9", "5L9"], + overheat: ["7M", "6M", "5M"], + protect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + rollout: ["7L21", "6L21", "5L21"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E"], + smog: ["7L19", "6L19", "5L19"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stompingtantrum: ["7T"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + suckerpunch: ["7E", "6E"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "7E", "6T", "6E", "5T", "5E"], + swagger: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tailwhip: ["7L3", "6L3", "5L3"], + takedown: ["7L25", "6L25", "5L25"], + taunt: ["7M", "6M", "5M"], + thrash: ["7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M"], + yawn: ["7E", "6E", "5E"], + zenheadbutt: ["7T", "6T"], + }, + }, + pignite: { + learnset: { + armthrust: ["7L1", "6L17", "5L17"], + assurance: ["7L36", "6L36", "5L36"], + attract: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + bulldoze: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + defensecurl: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["7L1", "6L1", "5L1"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T", "6T", "5T"], + firepunch: ["7T", "6T", "5T"], + flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + flareblitz: ["7L52", "6L52", "5L52"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gyroball: ["7M", "6M", "5M"], + headsmash: ["7L44", "6L44", "5L44"], + heatcrash: ["7L31", "6L31", "5L31"], + heatwave: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + odorsleuth: ["7L1", "6L1", "5L1"], + overheat: ["7M", "6M", "5M"], + poisonjab: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "7L47", "6M", "6L47", "5M", "5L47"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + rollout: ["7L23", "6L23", "5L23"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["7M", "6M", "5T"], + smog: ["7L20", "6L20", "5L20"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tailwhip: ["7L1", "6L1", "5L1"], + takedown: ["7L28", "6L28", "5L28"], + taunt: ["7M", "6M", "5M"], + thunderpunch: ["7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T"], + }, + }, + emboar: { + learnset: { + armthrust: ["7L1", "6L17", "5L17"], + assurance: ["7L38", "6L38", "5L38"], + attract: ["7M", "6M", "5M"], + blastburn: ["7T", "6T", "5T"], + block: ["7T", "6T", "5T"], + brickbreak: ["7M", "6M", "5M"], + bulkup: ["7M", "6M", "5M"], + bulldoze: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + defensecurl: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + ember: ["7L1", "6L1", "5L1"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T", "6T", "5T"], + firepunch: ["7T", "6T", "5T"], + flamecharge: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + flamethrower: ["7M", "7L43", "6M", "6L43", "5M", "5L43"], + flareblitz: ["7L62", "6L62", "6S1", "5L62", "5S0"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gyroball: ["7M", "6M", "5M"], + hammerarm: ["7L1", "6L1", "5L1", "5S0"], + headsmash: ["7L50", "6L50", "6S1", "5L50", "5S0"], + heatcrash: ["7L31", "6L31", "5L31"], + heatwave: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + holdback: ["6S1"], + hyperbeam: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + odorsleuth: ["7L1", "6L1", "5L1"], + overheat: ["7M", "6M", "5M"], + poisonjab: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "7L55", "6M", "6L55", "5M", "5L55"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + rollout: ["7L23", "6L23", "5L23"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + smog: ["7L20", "6L20", "5L20"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stompingtantrum: ["7T"], + stoneedge: ["7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tailwhip: ["7L1", "6L1", "5L1"], + takedown: ["7L28", "6L28", "6S1", "5L28"], + taunt: ["7M", "6M", "5M"], + thunderpunch: ["7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wildcharge: ["7M", "6M", "5M", "5S0"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["flareblitz", "hammerarm", "wildcharge", "headsmash"], pokeball: "cherishball"}, + {generation: 6, level: 50, isHidden: true, moves: ["flareblitz", "holdback", "headsmash", "takedown"], pokeball: "cherishball"}, + ], + }, + oshawott: { + learnset: { + aerialace: ["9M", "9L25", "7M", "6M", "5M"], + airslash: ["9M", "9E", "7E", "6E", "5E"], + aquacutter: ["9E"], + aquajet: ["9L29", "7L29", "6L29", "5L29"], + aquatail: ["9L35", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + assurance: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + avalanche: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + brine: ["7E", "6E", "5E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9E", "7E", "6E", "5E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + detect: ["9E", "7E", "6E", "5E"], + dig: ["9M", "6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + encore: ["9M", "9L31", "7L31", "6L31", "5L31"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "7M", "6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + focusenergy: ["9L13", "7L13", "6L13", "5L13"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L19", "7L19", "6L19", "5L19"], + grassknot: ["9M", "7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "9L43", "7L43", "6L43", "5L43"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["9E"], + liquidation: ["9M"], + nightslash: ["9E", "7E", "6E", "5E"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + razorshell: ["9L17", "7L17", "6L17", "5L17"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["9L37", "7L37", "6M", "6L37", "5M", "5L37"], + return: ["7M", "6M", "5M"], + revenge: ["7L25", "6L25", "5L25"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + sacredsword: ["9E", "7E"], + scald: ["7M", "6M", "5M"], + screech: ["9E", "7E", "6E", "5E"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L11"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "9L41", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L5", "7L5", "6L5", "5L5"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M"], + trumpcard: ["7E", "6E", "5E"], + waterfall: ["9M", "7M", "6M", "5M"], + watergun: ["9L7", "7L7", "6L7", "5L7"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "9L23", "7T", "7L23", "6T", "6L23", "5L23"], + watersport: ["7L11", "6L11", "5L11"], + workup: ["7M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + }, + dewott: { + learnset: { + aerialace: ["9M", "9L29", "7M", "6M", "5M"], + airslash: ["9M"], + aquajet: ["9L34", "7L34", "6L33", "5L33"], + aquatail: ["9L42", "7T", "7L42", "6T", "6L41", "5T", "5L41"], + attract: ["7M", "6M", "5M"], + avalanche: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + brickbreak: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["9M", "6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + encore: ["9M", "9L37", "7L37", "6L36", "5L36"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "7M", "6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + focusenergy: ["9L13", "7L13", "6L13", "5L13"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L21", "7L21", "6L20", "5L20"], + grassknot: ["9M", "7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "9L53", "7L53", "6L52", "5L52"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + liquidation: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + razorshell: ["9L18", "7L18", "6L17", "5L17"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["9L45", "7L45", "6M", "6L44", "5M", "5L44"], + return: ["7M", "6M", "5M"], + revenge: ["7L29", "6L28", "5L28"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L1"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "9L50", "7M", "7L50", "6M", "6L49", "5M", "5L49"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M"], + waterfall: ["9M", "7M", "6M", "5M"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "9L26", "7T", "7L26", "6T", "6L25", "5L25"], + watersport: ["7L1", "6L1", "5L1"], + workup: ["7M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + }, + samurott: { + learnset: { + aerialace: ["9M", "9L29", "7M", "6M", "5M"], + airslash: ["9M"], + aquajet: ["9L34", "7L34", "6L33", "5L33"], + aquatail: ["9L46", "7T", "7L46", "6T", "6L45", "5T", "5L45"], + attract: ["7M", "6M", "5M"], + avalanche: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M", "6S1"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["9M", "6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dragontail: ["7M", "6M", "5M"], + drillrun: ["9M"], + encore: ["9M", "9L39", "7L39", "6L38", "5L38"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + falseswipe: ["9M", "7M", "6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + focusenergy: ["9L13", "7L13", "6L13", "5L13"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L21", "7L21", "6L20", "5L20"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + holdback: ["6S1"], + hydrocannon: ["9M", "7T", "6T", "5T"], + hydropump: ["9M", "9L63", "7L63", "6L62", "6S1", "5L62", "5S0"], + hyperbeam: ["9M", "7M", "6M", "5M"], + icebeam: ["9M", "7M", "6M", "5M", "5S0"], + icywind: ["9M", "7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + liquidation: ["9M", "7T"], + megahorn: ["9L1", "7L1", "6L1", "5L1", "5S0"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + razorshell: ["9L18", "7L18", "6L17", "6S1", "5L17"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["9L51", "7L51", "6M", "6L50", "5M", "5L50"], + return: ["7M", "6M", "5M"], + revenge: ["7L29", "6L28", "5L28"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + slash: ["9L0", "7L1", "6L36", "5L36"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smartstrike: ["9M", "7M"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L1"], + strength: ["6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + superpower: ["7T", "6T", "5T", "5S0"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M", "9L58", "7M", "7L58", "6M", "6L57", "5M", "5L57"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["7M", "6M", "5M"], + waterfall: ["9M", "7M", "6M", "5M"], + watergun: ["9L1", "7L1", "6L1", "5L1"], + waterpledge: ["9M", "7T", "6T", "5T"], + waterpulse: ["9M", "9L25", "7T", "7L25", "6T", "6L25", "5L25"], + watersport: ["7L1", "6L1", "5L1"], + workup: ["7M"], + xscissor: ["9M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 100, gender: "M", moves: ["hydropump", "icebeam", "megahorn", "superpower"], pokeball: "cherishball"}, + {generation: 6, level: 50, isHidden: true, moves: ["razorshell", "holdback", "confide", "hydropump"], pokeball: "cherishball"}, + ], + }, + samurotthisui: { + learnset: { + aerialace: ["9M", "9L29"], + airslash: ["9M"], + aquajet: ["9L34"], + aquatail: ["9L46"], + avalanche: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + ceaselessedge: ["9L0"], + chillingwater: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + drillrun: ["9M"], + encore: ["9M", "9L39"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + fling: ["9M"], + focusenergy: ["9L13"], + furycutter: ["9L21"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M", "9L63"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + megahorn: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + razorshell: ["9L18"], + rest: ["9M"], + retaliate: ["9L51"], + scaryface: ["9M"], + slash: ["9L1"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + snarl: ["9M"], + snowscape: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L1"], + surf: ["9M"], + swift: ["9M"], + swordsdance: ["9M", "9L58"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + waterpulse: ["9M", "9L25"], + xscissor: ["9M"], + }, + }, + patrat: { + learnset: { + afteryou: ["7T", "7L23", "6T", "6L23", "5T", "5L23"], + aquatail: ["7T", "6T", "5T"], + assurance: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + batonpass: ["7L38", "6L33", "5L33"], + bide: ["7L8", "6L8", "5L8"], + bite: ["7L6", "6L6", "5L6"], + bulletseed: ["7E"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["7L16", "6L16", "5L16"], + cut: ["6M", "5M"], + detect: ["7L11", "6L11", "5L11"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + flail: ["7E", "6E", "5E"], + fling: ["7M", "6M", "5M"], + focusenergy: ["7L26"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperfang: ["7L31", "6L28", "5L28"], + hypnosis: ["7L18", "6L18", "5L18"], + irontail: ["7T", "7E", "6T", "6E", "5T", "5E"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + leer: ["7L3", "6L3", "5L3"], + lowkick: ["7T", "6T", "5T"], + meanlook: ["7L36", "6L31", "5L31"], + nastyplot: ["7L33"], + protect: ["7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["7E", "6E", "5E"], + round: ["7M", "6M", "5M"], + sandattack: ["7L13", "6L13", "5L13"], + screech: ["7E", "6E", "5E"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + shadowball: ["7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slam: ["7L41", "6L36", "5L36"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superfang: ["7T", "7L21", "6T", "6L21", "5T", "5L21"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + tearfullook: ["7E"], + thunderbolt: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["7M", "7L28", "6L26", "5M", "5L26"], + zenheadbutt: ["7T", "6T", "5T"], + }, + }, + watchog: { + learnset: { + afteryou: ["7T", "7L25", "6T", "6L25", "5T", "5L25"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + batonpass: ["7L46", "6L39", "5L39"], + bide: ["7L8", "6L8", "5L8"], + bite: ["7L1", "6L1", "5L1"], + confide: ["7M", "6M"], + confuseray: ["7L1", "6L20", "5L20"], + covet: ["7T", "6T", "5T"], + crunch: ["7L16", "6L16", "5L16"], + cut: ["6M", "5M"], + detect: ["7L11", "6L11", "5L11"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + firepunch: ["7T", "6T", "5T"], + flamethrower: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focusenergy: ["7L29"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + hyperfang: ["7L36", "6L32", "5L32"], + hypnosis: ["7L18", "6L18", "5L18"], + icepunch: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lightscreen: ["7M", "6M", "5M"], + lowkick: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + meanlook: ["7L43", "6L36", "5L36"], + nastyplot: ["7L39"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + psychup: ["7M", "7L32", "6M", "6L29", "5M", "5L29"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rototiller: ["7L1", "6L1"], + round: ["7M", "6M", "5M"], + sandattack: ["7L13", "6L13", "5L13"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + shadowball: ["7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + slam: ["7L50", "6L43", "5L43"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + stompingtantrum: ["7T"], + strength: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superfang: ["7T", "7L22", "6T", "6L22", "5T", "5L22"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "6M", "5M"], + tackle: ["7L1", "6L1", "5L1"], + thunder: ["7M", "6M", "5M"], + thunderbolt: ["7M", "6M", "5M"], + thunderpunch: ["7T", "6T", "5T"], + thunderwave: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + zenheadbutt: ["7T", "6T", "5T"], + }, + }, + lillipup: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["8E", "7T", "7E", "6T", "6E"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L17", "7L10", "6L10"], + bite: ["8L8", "7L8", "6L8", "5L8"], + charm: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + covet: ["8E", "7T", "6T", "5T"], + crunch: ["8M", "8L24", "7L22", "6L22", "5L22"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "8L48", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + helpinghand: ["8M", "8L32", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + howl: ["8E", "7E", "6E", "5E"], + hypervoice: ["8M", "7T", "6T", "5T"], + icefang: ["8M", "7E", "6E", "5E"], + lastresort: ["8L44", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lick: ["8E", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E"], + odorsleuth: ["7L5", "6L5", "5L5"], + payback: ["8M"], + playrough: ["8M", "8L20", "7L45", "6L45"], + protect: ["8M", "7M", "6M", "5M"], + psychicfangs: ["8M", "7E"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L12", "7L29", "6M", "6L29", "5M", "5L29"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L36", "7L33", "6L33", "5L33"], + roar: ["8L40", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["7E", "6E", "5E"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8L28", "7L15", "6L15", "5L15"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M", "7E", "6E", "5E"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L4", "7M", "7L19", "6L19", "5M", "5L19"], + yawn: ["8E", "7E", "6E", "5E"], + }, + }, + herdier: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L19"], + bite: ["8L1", "7L1", "6L1", "5L1"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["8M", "8L30", "7L24", "6L24", "5L24"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firefang: ["8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "8L66", "7M", "7L47", "6M", "6L47", "5M", "5L47"], + helpinghand: ["8M", "8L42", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icefang: ["8M"], + lastresort: ["8L60", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + leer: ["8L1", "7L1", "6L1", "5L1"], + odorsleuth: ["7L1", "6L1", "5L1"], + payback: ["8M", "7M", "6M", "5M"], + playrough: ["8M", "8L24", "7L52", "6L52"], + protect: ["8M", "7M", "6M", "5M"], + psychicfangs: ["8M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L12", "7L33", "6M", "6L33", "5M", "5L33"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L48", "7L38", "6L38", "5L38"], + roar: ["8L54", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8L36", "7L15", "6L15", "5L15"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L20", "6L20", "5M", "5L20"], + }, + encounters: [ + {generation: 5, level: 20, isHidden: true}, + ], + }, + stoutland: { + learnset: { + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L19"], + bite: ["8L1", "7L1", "6L1", "5L1"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["8M", "8L30", "7L24", "6L24", "5L24"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "8L78", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + helpinghand: ["8M", "8L46", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + icefang: ["8M", "8L1", "7L1", "6L1", "5L1"], + ironhead: ["8M", "7T", "6T", "5T"], + lastresort: ["8L70", "7T", "7L51", "6T", "6L51", "5T", "5L51"], + leer: ["8L1", "7L1", "6L1", "5L1"], + odorsleuth: ["7L1", "6L1", "5L1"], + payback: ["8M", "7M", "6M", "5M"], + playrough: ["8M", "8L24", "7L63", "6L63"], + protect: ["8M", "7M", "6M", "5M"], + psychicfangs: ["8M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L12", "7L36", "6M", "6L36", "5M", "5L36"], + return: ["7M", "6M", "5M"], + reversal: ["8M", "8L54", "7L42", "6L42", "5L42"], + roar: ["8L62", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8L38", "7L15", "6L15", "5L15"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L20", "6L20", "5M", "5L20"], + }, + encounters: [ + {generation: 5, level: 23}, + ], + }, + purrloin: { + learnset: { + aerialace: ["7M", "6M", "5M"], + assist: ["7L6", "6L6", "5L6"], + assurance: ["8M", "8L21", "7L28", "6L28", "5L28"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M"], + captivate: ["7L33", "6L33", "5L33"], + charm: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + copycat: ["8E", "7E", "6E"], + covet: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + cut: ["6M", "5M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["8E", "7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fakeout: ["8L5", "7L21", "6L21", "5L21"], + faketears: ["8M", "7E", "6E", "5E"], + feintattack: ["7E", "6E", "5E"], + foulplay: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L3", "6L3", "5L3"], + gunkshot: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L24", "7L24", "6M", "6L24", "5M", "5L24"], + hypervoice: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + nastyplot: ["8M", "8L32", "7L42", "6L42", "5L42"], + nightslash: ["8L36", "7L37", "6L37", "5L37"], + payback: ["8M", "7M", "6M", "5M"], + payday: ["8M", "7E", "6E", "5E"], + playrough: ["8M", "8L40", "7L49", "6L49"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + pursuit: ["7L15", "6L15", "5L15"], + quickattack: ["8E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L4", "7L10", "6L10", "5L10"], + scratch: ["8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["8E", "7L30", "6L30", "5L30"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "7L39", "6T", "6L39", "5T", "5L39"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L28", "7L46", "6L46", "5L46"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["8L16", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + yawn: ["8E", "7E", "6E", "5E"], + }, + }, + liepard: { + learnset: { + aerialace: ["7M", "6M", "5M"], + assist: ["7L1", "6L1", "5L1"], + assurance: ["8M", "8L23", "7L31", "6L31", "5L31"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M"], + burningjealousy: ["8T"], + charm: ["8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fakeout: ["8L1", "7L22", "6L22", "5L22", "5S0"], + faketears: ["8M"], + foulplay: ["8M", "7T", "6T", "5T", "5S0"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + gunkshot: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L28", "7L26", "6M", "6L26", "5M", "5L26"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lashout: ["8T"], + nastyplot: ["8M", "8L40", "7L50", "6L50", "5L50"], + nightslash: ["8L46", "7L43", "6L43", "5L43"], + payback: ["8M", "7M", "6M", "5M"], + payday: ["8M"], + playrough: ["8M", "8L52", "7L58", "6L58"], + protect: ["8M", "7M", "6M", "5M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M"], + pursuit: ["7L15", "6L15", "5L15"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + scratch: ["8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + slash: ["7L34", "6L34", "5L34"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "7L47", "6T", "6L47", "5T", "5L47"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L34", "7L55", "6L55", "5L55"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M", "5S0"], + swift: ["8M"], + taunt: ["8M", "7M", "7L38", "6M", "6L38", "5M", "5L38"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["8L16", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 20, gender: "F", nature: "Jolly", isHidden: true, moves: ["fakeout", "foulplay", "encore", "swagger"]}, + ], + }, + pansage: { + learnset: { + acrobatics: ["7M", "7L31", "6M", "6L31", "5M", "5L31"], + astonish: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + bite: ["7L19", "6L19", "5L19", "5S0"], + bulletseed: ["7E", "6E", "5E", "5S0"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["7L43", "6L43", "5L43"], + cut: ["6M", "5M"], + dig: ["6M", "5M", "5S0", "5S2"], + disarmingvoice: ["7E", "6E"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["7M", "7L28", "6M", "6L28", "5M", "5L28"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L13", "6L13", "5L13"], + gastroacid: ["7T", "6T"], + gigadrain: ["7T", "6T", "5T"], + grassknot: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], + grasspledge: ["7T"], + grasswhistle: ["7E", "6E", "5E"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leafstorm: ["7E", "6E", "5E", "5S1"], + leechseed: ["7L16", "6L16", "5L16"], + leer: ["7L4", "6L4", "5L4", "5S1"], + lick: ["7L7", "6L7", "5L7", "5S1"], + lowkick: ["7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["7M", "6M", "5M"], + magicalleaf: ["7E", "6E", "5E"], + nastyplot: ["7E", "6E", "5E"], + naturalgift: ["7L40", "6L40", "5L40"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M", "5S2"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1"], + secretpower: ["6M"], + seedbomb: ["7T", "7L22", "6T", "6L22", "5T", "5L22", "5S2"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M", "5S0", "5S2"], + spikyshield: ["7E"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + tickle: ["7E", "6E", "5E"], + torment: ["7M", "7L25", "6M", "6L25", "5M", "5L25"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + vinewhip: ["7L10", "6L10", "5L10", "5S1"], + workup: ["7M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 1, shiny: 1, gender: "M", nature: "Brave", ivs: {spa: 31}, moves: ["bulletseed", "bite", "solarbeam", "dig"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "lick", "vinewhip", "leafstorm"]}, + {generation: 5, level: 30, gender: "M", nature: "Serious", moves: ["seedbomb", "solarbeam", "rocktomb", "dig"], pokeball: "cherishball"}, + ], + }, + simisage: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + attract: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L1", "6L1", "5L1"], + gastroacid: ["7T", "6T"], + gigadrain: ["7T", "6T", "5T"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + grasspledge: ["7T"], + gunkshot: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lick: ["7L1", "6L1", "5L1"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + throatchop: ["7T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + workup: ["7M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + }, + pansear: { + learnset: { + acrobatics: ["7M", "7L31", "6M", "6L31", "5M", "5L31"], + amnesia: ["7L25", "6L25", "5L25"], + astonish: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + belch: ["7E"], + bite: ["7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["7L43", "6L43", "5L43"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + disarmingvoice: ["7E", "6E"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], + firepledge: ["7T"], + firepunch: ["7T", "7E", "6T", "6E", "5T", "5E"], + firespin: ["7E", "6E", "5E"], + flameburst: ["7L22", "6L22", "5L22"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "6M", "5M"], + flareblitz: ["7E"], + fling: ["7M", "7L28", "6M", "6L28", "5M", "5L28"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L13", "6L13", "5L13"], + gastroacid: ["7T", "6T"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + heatwave: ["7T", "7E", "6T", "6E", "5T", "5E", "5S0"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + incinerate: ["7L10", "6M", "6L10", "5M", "5L10", "5S0"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L4", "6L4", "5L4", "5S0"], + lick: ["7L7", "6L7", "5L7", "5S0"], + lowkick: ["7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["7M", "6M", "5M"], + nastyplot: ["7E", "6E", "5E"], + naturalgift: ["7L40", "6L40", "5L40"], + overheat: ["7M", "6M", "5M"], + payback: ["7M", "6M", "5M"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + round: ["7M", "6M", "5M"], + scratch: ["7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "7E", "6M", "6E", "5T", "5E"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + tickle: ["7E", "6E", "5E"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "5M"], + yawn: ["7L16", "6L16", "5L16"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "lick", "incinerate", "heatwave"]}, + ], + }, + simisear: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + attract: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fireblast: ["7M", "6M", "5M"], + firepledge: ["7T"], + firepunch: ["7T", "6T", "5T"], + flameburst: ["7L1", "6L1", "5L1"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["7M", "6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L1", "6L1", "5L1"], + gastroacid: ["7T", "6T"], + gigaimpact: ["7M", "6M", "6S0", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + heatwave: ["7T", "6T", "5T"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "6S0", "5M"], + hyperbeam: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lick: ["7L1", "6L1", "5L1"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + overheat: ["7M", "6M", "5M"], + payback: ["7M", "6M", "5M"], + poweruppunch: ["6M", "6S0"], + protect: ["7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + throatchop: ["7T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + willowisp: ["7M", "6M", "5M"], + workup: ["7M", "6S0", "5M"], + }, + eventData: [ + {generation: 6, level: 5, perfectIVs: 2, moves: ["workup", "honeclaws", "poweruppunch", "gigaimpact"], pokeball: "cherishball"}, + ], + }, + panpour: { + learnset: { + acrobatics: ["7M", "7L31", "6M", "6L31", "5M", "5L31"], + aquaring: ["7E", "6E", "5E"], + aquatail: ["7T", "7E", "6T", "6E", "5T", "5E"], + astonish: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + bite: ["7L19", "6L19", "5L19"], + blizzard: ["7M", "6M", "5M"], + brine: ["7L34", "6L34", "5L34"], + confide: ["7M", "6M"], + covet: ["7T", "7E", "6T", "6E", "5T", "5E"], + crunch: ["7L43", "6L43", "5L43"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + disarmingvoice: ["7E", "6E"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fling: ["7M", "7L28", "6M", "6L28", "5M", "5L28"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L13", "6L13", "5L13"], + gastroacid: ["7T", "6T"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + hail: ["7M", "6M", "5M"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hydropump: ["7E", "6E", "5E", "5S0"], + icebeam: ["7M", "6M", "5M"], + icepunch: ["7T", "6T", "5T"], + icywind: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L4", "6L4", "5L4", "5S0"], + lick: ["7L7", "6L7", "5L7", "5S0"], + lowkick: ["7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["7M", "6M", "5M"], + mudsport: ["7E", "6E", "5E"], + nastyplot: ["7E", "6E", "5E"], + naturalgift: ["7L40", "6L40", "5L40"], + payback: ["7M", "6M", "5M"], + playnice: ["7L1", "6L1"], + protect: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M"], + recycle: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "7E", "6T", "6E", "5T", "5E"], + round: ["7M", "6M", "5M"], + scald: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + scratch: ["7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + substitute: ["7M", "6M", "5M"], + surf: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "7L25", "6M", "6L25", "5M", "5L25"], + thief: ["7M", "6M", "5M"], + tickle: ["7E", "6E", "5E"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + waterfall: ["7M", "6M", "5M"], + watergun: ["7L10", "6L10", "5L10", "5S0"], + waterpledge: ["7T"], + waterpulse: ["7T", "6T"], + watersport: ["7L16", "6L16", "5L16"], + workup: ["7M", "5M"], + }, + eventData: [ + {generation: 5, level: 10, gender: "M", isHidden: true, moves: ["leer", "lick", "watergun", "hydropump"]}, + ], + }, + simipour: { + learnset: { + acrobatics: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + blizzard: ["7M", "6M", "5M"], + brickbreak: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + dig: ["6M", "5M"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + fling: ["7M", "6M", "5M"], + focusblast: ["7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["7L1", "6L1", "5L1"], + gastroacid: ["7T", "6T"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + gunkshot: ["7T", "6T", "5T"], + hail: ["7M", "6M", "5M"], + helpinghand: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + icebeam: ["7M", "6M", "5M"], + icepunch: ["7T", "6T", "5T"], + icywind: ["7T", "6T", "5T"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["7L1", "6L1", "5L1"], + lick: ["7L1", "6L1", "5L1"], + lowkick: ["7T", "6T", "5T"], + lowsweep: ["7M", "6M", "5M"], + payback: ["7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["7M", "6M", "5M"], + raindance: ["7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["7M", "6M", "5M"], + scald: ["7M", "7L1", "6M", "6L1", "5M", "5L1"], + secretpower: ["6M"], + shadowclaw: ["7M", "6M", "5M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + substitute: ["7M", "6M", "5M"], + superpower: ["7T", "6T", "5T"], + surf: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["7M", "6M", "5M"], + thief: ["7M", "6M", "5M"], + throatchop: ["7T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + waterfall: ["7M", "6M", "5M"], + waterpledge: ["7T"], + waterpulse: ["7T", "6T"], + workup: ["7M", "5M"], + }, + }, + munna: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T"], + amnesia: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + barrier: ["7E", "6E", "5E"], + batonpass: ["7E", "6E", "5E"], + calmmind: ["8M", "8L28", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["8L44", "7M", "7L41", "7S0", "6M", "6L41", "5M", "5L41"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L48", "7L31", "6L31", "5L31"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healbell: ["7T", "6T", "5T"], + healingwish: ["8E", "7E", "6E"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["8L4", "7L19", "7S0", "6L19", "5L19"], + imprison: ["8M", "8L12", "7L13", "6L13", "5L13"], + lightscreen: ["8M", "7M", "6M", "5M"], + luckychant: ["7L5", "6L5", "5L5"], + magiccoat: ["8L20", "7T", "7E", "6T", "6E", "5T", "5E"], + moonblast: ["8L40"], + moonlight: ["8L16", "7L17", "6L17", "5L17"], + nightmare: ["7L29", "6L29", "5L29"], + painsplit: ["7T", "6T", "5T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L8", "7L11", "6L11", "5L11"], + psychic: ["8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "7S0", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "7E", "7S0", "6M", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + sonicboom: ["7E", "6E", "5E"], + storedpower: ["8M", "8L1", "7L47", "6L47", "5L47"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "7E", "6E", "5E"], + synchronoise: ["7L25", "6L25", "5L25"], + telekinesis: ["7T", "7L43", "6L43", "5M", "5L43"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L52", "7T", "6T", "5T"], + worryseed: ["7T", "6T", "5T"], + yawn: ["8L32", "7L7", "6L7", "5L7"], + zenheadbutt: ["8M", "8L24", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + }, + eventData: [ + {generation: 7, level: 39, nature: "Mild", isHidden: true, moves: ["hypnosis", "dreameater", "rest", "sleeptalk"], pokeball: "dreamball"}, + ], + }, + musharna: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T"], + amnesia: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L1", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + dazzlinggleam: ["8M", "7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1", "5S0"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["8L1", "7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypnosis: ["8L1", "7L1", "6L1", "5L1", "5S0"], + imprison: ["8M", "8L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + luckychant: ["7L1", "6L1", "5L1", "5S0"], + magiccoat: ["8L1", "7T", "6T", "5T"], + mistyexplosion: ["8T"], + moonblast: ["8L1"], + moonlight: ["8L1"], + painsplit: ["7T", "6T", "5T"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L1", "7L1", "6L1", "5L1", "5S0"], + psychic: ["8M", "8L1", "7M", "6M", "5M"], + psychicterrain: ["8M", "8L1", "7L1"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["8M", "8L1"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + telekinesis: ["7T", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L1", "7T", "6T", "5T"], + worryseed: ["7T", "6T", "5T"], + yawn: ["8L1"], + zenheadbutt: ["8M", "8L1", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, isHidden: true, moves: ["defensecurl", "luckychant", "psybeam", "hypnosis"]}, + ], + }, + pidove: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + aircutter: ["8L16", "7L15", "6L15", "5L15", "5S0"], + airslash: ["8M", "8L32", "7L29", "6L29", "5L29"], + attract: ["8M", "7M", "6M", "5M"], + bestow: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + defog: ["8E", "7T"], + detect: ["8L28", "7L22", "6L22", "5L22"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + featherdance: ["8L24", "7L36", "6L36", "5L36"], + fly: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M"], + growl: ["8L1", "7L4", "6L4", "5L4"], + gust: ["8L1", "7L1", "6L1", "5L1", "5D", "5S0"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["8E", "7E", "6E", "5E", "5D"], + leer: ["8L4", "7L8", "6L8", "5L8"], + luckychant: ["7E", "6E", "5E"], + morningsun: ["8E", "7E", "6E", "5E", "5D"], + nightslash: ["8E", "7E", "6E"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L8", "7L11", "6L11", "5L11", "5S0"], + raindance: ["8M", "7M", "6M", "5M"], + razorwind: ["7L32", "6L32", "5L32"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8L36", "7M", "7L18", "6M", "6L18", "5T", "5L18"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["8L44", "7T", "7L50", "6T", "6L50", "5T", "5L50"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["8L20", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + swift: ["8M"], + tailwind: ["8L40", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + taunt: ["8M", "8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + uturn: ["8M", "7M", "6M", "5M"], + wish: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: 1, gender: "F", nature: "Hardy", ivs: {atk: 31}, abilities: ["superluck"], moves: ["gust", "quickattack", "aircutter"], pokeball: "pokeball"}, + ], + }, + tranquill: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + aircutter: ["8L16", "7L15", "6L15", "5L15"], + airslash: ["8M", "8L38", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + defog: ["7T"], + detect: ["8L34", "7L23", "6L23", "5L23"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "7L50", "6M", "6L50", "5M", "5L50"], + featherdance: ["8L26", "7L41", "6L41", "5L41"], + fly: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + leer: ["8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + razorwind: ["7L36", "6L36", "5L36"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8L44", "7M", "7L18", "6M", "6L18", "5T", "5L18"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["8L56", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["8L20", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + swift: ["8M"], + tailwind: ["8L50", "7T", "7L54", "6T", "6L54", "5T", "5L54"], + taunt: ["8M", "8L12", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + }, + unfezant: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + aircutter: ["8L16", "7L15", "6L15", "5L15"], + airslash: ["8M", "8L42", "7L33", "6L33", "5L33"], + attract: ["8M", "7M", "6M", "5M"], + bravebird: ["8M"], + confide: ["7M", "6M"], + defog: ["7T"], + detect: ["8L36", "7L23", "6L23", "5L23"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + featherdance: ["8L26", "7L44", "6L44", "5L44"], + fly: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + leer: ["8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + razorwind: ["7L38", "6L38", "5L38"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8L50", "7M", "7L18", "6M", "6L18", "5T", "5L18"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["8L66", "7T", "7L66", "6T", "6L66", "5T", "5L66"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["8L20", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + swift: ["8M"], + tailwind: ["8L58", "7T", "7L60", "6T", "6L60", "5T", "5L60"], + taunt: ["8M", "8L12", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + encounters: [ + {generation: 5, level: 22}, + ], + }, + blitzle: { + learnset: { + agility: ["7L36", "6L36", "5L36"], + attract: ["7M", "6M", "5M"], + bounce: ["7T", "6T", "5T"], + charge: ["7L8", "6L8", "5L8"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + discharge: ["7L32", "6L32", "5L32"], + doubleedge: ["7E", "6E", "5E"], + doublekick: ["7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + endure: ["7E", "6E", "5E"], + facade: ["7M", "6M", "5M"], + feint: ["7E"], + flamecharge: ["7M", "7L18", "6M", "6L18", "5M", "5L18"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + lightscreen: ["7M", "6M", "5M"], + lowkick: ["7T"], + magnetrise: ["7T", "6T", "5T"], + mefirst: ["7E", "6E", "5E"], + protect: ["7M", "6M", "5M"], + pursuit: ["7L22", "6L22", "5L22"], + quickattack: ["7L1", "6L1", "5L1"], + rage: ["7E", "6E", "5E"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + sandattack: ["7E", "6E", "5E"], + screech: ["7E", "6E", "5E"], + secretpower: ["6M"], + shockwave: ["7T", "7L11", "7E", "6T", "6L11", "6E", "5L11", "5E"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["7T", "6T", "5T"], + spark: ["7L25", "6L25", "5L25"], + stomp: ["7L29", "6L29", "5L29"], + substitute: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwhip: ["7L4", "6L4", "5L4"], + takedown: ["7E", "6E", "5E"], + thrash: ["7L43", "6L43", "5L43"], + thunder: ["7M", "6M", "5M"], + thunderbolt: ["7M", "6M", "5M"], + thunderwave: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["7M", "6M", "5M"], + wildcharge: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + }, + }, + zebstrika: { + learnset: { + agility: ["7L42", "6L42", "5L42"], + allyswitch: ["7T"], + attract: ["7M", "6M", "5M"], + bounce: ["7T", "6T", "5T"], + charge: ["7L1", "6L1", "5L1"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + discharge: ["7L36", "6L36", "5L36"], + doubleteam: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flamecharge: ["7M", "7L18", "6M", "6L18", "5M", "5L18"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + iondeluge: ["7L1", "6L1"], + laserfocus: ["7T"], + lightscreen: ["7M", "6M", "5M"], + lowkick: ["7T"], + magnetrise: ["7T", "6T", "5T"], + overheat: ["7M", "6M", "5M"], + protect: ["7M", "6M", "5M"], + pursuit: ["7L22", "6L22", "5L22"], + quickattack: ["7L1", "6L1", "5L1"], + raindance: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + secretpower: ["6M"], + shockwave: ["7T", "7L11", "6T", "6L11", "5L11"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["7M", "6M", "5T"], + snatch: ["7T", "6T"], + snore: ["7T", "6T", "5T"], + spark: ["7L25", "6L25", "5L25"], + stomp: ["7L31", "6L31", "5L31"], + substitute: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwhip: ["7L1", "6L1", "5L1"], + thrash: ["7L53", "6L53", "5L53"], + thunder: ["7M", "6M", "5M"], + thunderbolt: ["7M", "6M", "5M"], + thunderwave: ["7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["7M", "6M", "5M"], + wildcharge: ["7M", "7L47", "6M", "6L47", "5M", "5L47"], + }, + }, + roggenrola: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + autotomize: ["8E", "7E", "6E", "5E"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8L44", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gravity: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + harden: ["8L4", "7L4", "6L4", "5L4"], + headbutt: ["8L24", "7L10", "6L10", "5L10"], + heavyslam: ["8M", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["8M", "8L20", "7T", "7L20", "6T", "6L20", "5T", "5L20"], + lockon: ["7E", "6E", "5E"], + magnitude: ["7E", "6E", "5E"], + meteorbeam: ["8T"], + mudslap: ["8L12", "7L17", "6L17", "5L17"], + naturepower: ["7M", "6M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L32", "7L14", "6L14", "5L14"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L28", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "7E", "6M", "6E", "5M", "5E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L7", "6L7", "5L7"], + sandstorm: ["8M", "8L36", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + sandtomb: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L16", "7M", "7L23", "6M", "6L23", "5M", "5L23"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "8L8", "7T", "7L30", "6T", "6L30", "5T", "5L30"], + stoneedge: ["8M", "8L40", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + wideguard: ["8E", "7E", "6E"], + }, + }, + boldore: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["5D"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8L54", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + harden: ["8L1", "7L1", "6L1", "5L1"], + headbutt: ["8L24", "7L1", "6L1", "5L1"], + heavyslam: ["8M", "5D"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["8M", "8L20", "7T", "7L20", "6T", "6L20", "5T", "5L20"], + meteorbeam: ["8T"], + mudslap: ["8L12", "7L17", "6L17", "5L17"], + naturepower: ["7M", "6M"], + powergem: ["8M", "8L0", "7L1", "6L25", "5L25"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L36", "7L14", "6L14", "5L14"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L30", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "8L42", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + sandtomb: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L16", "7M", "7L23", "6M", "6L23", "5M", "5L23", "5D"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "8L1", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L48", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + toxic: ["7M", "6M", "5M"], + }, + encounters: [ + {generation: 5, level: 24}, + ], + }, + gigalith: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8L54", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + harden: ["8L1", "7L1", "6L1", "5L1"], + headbutt: ["8L24", "7L1", "6L1", "5L1"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "8L20", "7T", "7L20", "6T", "6L20", "5T", "5L20"], + ironhead: ["8M", "7T", "6T", "5T"], + laserfocus: ["7T"], + meteorbeam: ["8T"], + mudslap: ["8L12", "7L17", "6L17", "5L17"], + naturepower: ["7M", "6M"], + powergem: ["8M", "8L1", "7L1", "6L25", "5L25"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L36", "7L14", "6L14", "5L14"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L30", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "8L42", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + sandtomb: ["8M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L16", "7M", "7L23", "6M", "6L23", "5M", "5L23"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stealthrock: ["8M", "8L1", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L48", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + }, + }, + woobat: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T", "5T"], + aircutter: ["8L15", "7L21", "6L21", "5L21"], + airslash: ["8M", "8L35", "7L32", "6L32", "5L32"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "8L30", "7L29", "6L29", "5L29"], + assurance: ["8M", "8L25", "7L12", "6L12", "5L12"], + attract: ["8M", "8L1", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + batonpass: ["8M"], + calmmind: ["8M", "8L45", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + captivate: ["7E", "6E"], + chargebeam: ["7M", "6M", "5M"], + charm: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + confusion: ["8L5", "7L1", "6L1", "5L1"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + embargo: ["7M", "6M", "5M"], + endeavor: ["8L10", "7T", "7L47", "6T", "6L47", "5T", "5L47"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M", "7E", "6E", "5E"], + flash: ["6M", "5M"], + flatter: ["8E", "7E", "6E", "5E"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L50", "7L36", "6L36", "5L36"], + gigadrain: ["8M", "7T", "6T", "5T"], + gust: ["8L1", "7L8", "6L8", "5L8"], + gyroball: ["8M", "7M", "6M", "5M"], + heartstamp: ["7L15", "6L15", "5L15"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["8M", "8L20", "7L19", "6L19", "5L19"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + nastyplot: ["8M"], + odorsleuth: ["7L4", "6L4", "5L4"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + psychocut: ["8M"], + psychoshift: ["8E", "7E", "6E"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["8L55"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M", "7E", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + supersonic: ["8E", "7E", "6E", "5E"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + synchronoise: ["7E", "6E", "5E"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + venomdrench: ["8M", "7E", "6E"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + swoobat: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + afteryou: ["7T", "6T", "5T"], + aircutter: ["8L15", "7L21", "6L21", "5L21"], + airslash: ["8M", "8L35", "7L32", "6L32", "5L32"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "8L30", "7L29", "6L29", "5L29"], + assurance: ["8M", "8L25", "7L1", "6L1", "5L1"], + attract: ["8M", "8L1", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + batonpass: ["8M"], + calmmind: ["8M", "8L45", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + chargebeam: ["7M", "6M", "5M"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + embargo: ["7M", "6M", "5M"], + endeavor: ["8L1", "7T", "7L47", "6T", "6L47", "5T", "5L47"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M"], + flash: ["6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L50", "7L36", "6L36", "5L36"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gust: ["8L1", "7L1", "6L1", "5L1"], + gyroball: ["8M", "7M", "6M", "5M"], + heartstamp: ["7L15", "6L15", "5L15"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + imprison: ["8M", "8L20", "7L19", "6L19", "5L19"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + nastyplot: ["8M"], + odorsleuth: ["7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "8L40", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + psychicfangs: ["8M"], + psychocut: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["8L55"], + skillswap: ["8M", "7T", "6T", "5T"], + skyattack: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + venomdrench: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + drilbur: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crushclaw: ["8L24", "7E", "6E", "5E"], + cut: ["6M", "5M"], + dig: ["8M", "8L32", "7L19", "6M", "6L19", "5M", "5L19"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "8L40", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + earthquake: ["8M", "8L44", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fissure: ["8L48", "7L47", "6L47", "5L47"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + honeclaws: ["8L8", "7L22", "6M", "6L22", "5M", "5L22"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + metalclaw: ["8L16", "7L15", "6L15", "5L15"], + metalsound: ["8E", "7E", "6E", "5E", "5D"], + mudshot: ["8M"], + mudslap: ["8L1", "7L8", "6L8", "5L8"], + mudsport: ["7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rapidspin: ["8L1", "7L5", "7E", "6L5", "6E", "5L5", "5E", "5D"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7E", "6E", "5E", "5D"], + rockslide: ["8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + scratch: ["8L4", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skullbash: ["7E", "6E", "5E"], + slash: ["8E", "7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + submission: ["8E", "7E", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + toxic: ["7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + }, + excadrill: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + brickbreak: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crushclaw: ["8L24"], + cut: ["6M", "5M"], + dig: ["8M", "8L34", "7L19", "6M", "6L19", "5M", "5L19"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "8L46", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "8L52", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fissure: ["8L58", "7L62", "6L62", "5L62"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L12", "7L12", "6L12", "5L12"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + honeclaws: ["8L1", "7L22", "6M", "6L22", "5M", "5L22"], + horndrill: ["8L0", "7L1", "6L31", "5L31"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + metalclaw: ["8L16", "7L15", "6L15", "5L15"], + mudshot: ["8M"], + mudslap: ["8L1", "7L1", "6L1", "5L1"], + mudsport: ["7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rapidspin: ["8L1", "7L1", "6L1", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockslide: ["8M", "8L28", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "8L20", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + scratch: ["8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L40", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + toxic: ["7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + audino: { + learnset: { + afteryou: ["8L28", "7T", "7L41", "6T", "6L40", "5T", "5L40"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "7E", "6E", "5E"], + attract: ["8M", "7M", "7L21", "6M", "6L15", "5M", "5L15"], + babydolleyes: ["8L9", "7L5", "6L5"], + bestow: ["7E", "6E", "5E"], + blizzard: ["8M", "7M", "6M", "5M"], + bodyslam: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M"], + disarmingvoice: ["8L4", "7L13", "6L13"], + doubleedge: ["8L48", "7L49", "6L49", "5L50"], + doubleslap: ["7L17", "6L10", "5L10", "5S0"], + doubleteam: ["7M", "6M", "5M"], + drainingkiss: ["8M", "7E", "6E"], + drainpunch: ["8M", "7T", "6T", "5T"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E", "5D"], + endure: ["8M"], + entrainment: ["8L52", "7L29", "6L25", "5L25"], + facade: ["8M", "7M", "6M", "5M"], + fireblast: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + flamethrower: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + growl: ["8L16", "7L1", "6L1", "5L1"], + healbell: ["7T", "7E", "6T", "6E", "5T", "5E"], + healingwish: ["8E", "7E", "6E", "5E"], + healpulse: ["8L44", "7L37", "6L35", "6S3", "5L35", "5S0", "5S1", "5S2"], + helpinghand: ["8M", "8L12", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D", "5S0", "5S1", "5S2"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "7T", "7L1", "6T", "5T"], + icebeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["8L60", "7T", "7L1", "6T", "6L1", "5T", "5L55"], + lifedew: ["8L24"], + lightscreen: ["8M", "7M", "6M", "5M"], + lowkick: ["8M", "7T", "6T", "5T"], + luckychant: ["7E", "6E", "5E"], + magiccoat: ["7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + mistyterrain: ["8M", "8L56", "7L1", "6L1"], + painsplit: ["7T", "6T", "5T"], + playnice: ["8L1", "7L1", "6L1"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + present: ["5S1", "5S2"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + refresh: ["7L9", "6L5", "5L5", "5S0", "5S1", "5S2"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["7L25", "6M", "6L20", "5L20"], + shadowball: ["8M", "7M", "6M", "5M"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["8L36", "7L45", "6L45", "6S3", "5L45"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetkiss: ["8E", "7E", "6E", "5E"], + takedown: ["8L32", "7L33", "6L30", "5L30"], + telekinesis: ["7T", "5M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "6S3", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trickroom: ["8M", "7M", "6M", "6S3", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + wish: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + yawn: ["8E", "7E", "6E", "5E", "5D"], + zenheadbutt: ["8M", "8L20", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 30, gender: "F", nature: "Calm", abilities: ["healer"], moves: ["healpulse", "helpinghand", "refresh", "doubleslap"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "F", nature: "Serious", abilities: ["healer"], moves: ["healpulse", "helpinghand", "refresh", "present"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "F", nature: "Jolly", abilities: ["healer"], moves: ["healpulse", "helpinghand", "refresh", "present"], pokeball: "cherishball"}, + {generation: 6, level: 100, nature: "Relaxed", abilities: ["regenerator"], moves: ["trickroom", "healpulse", "simplebeam", "thunderbolt"], pokeball: "cherishball"}, + ], + }, + timburr: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L8", "6L8", "5L8"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "8L16", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + chipaway: ["7L24", "6L24", "5L24"], + coaching: ["8T"], + cometpunch: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E"], + defog: ["8E"], + detect: ["8E", "7E", "6E", "5E"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + dynamicpunch: ["8L32", "7L34", "6L34", "5L34"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L12", "7L4", "6L4", "5L4"], + focuspunch: ["8L48", "7T", "7L46", "6T", "6L46", "5L46"], + forcepalm: ["7E", "6E", "5E"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L36", "7L40", "6L40", "5L40"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "8L4", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + lowsweep: ["8M", "7M", "6M", "5M"], + machpunch: ["8E", "7E", "6E", "5E"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["8E", "7E", "6M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M", "7E", "6E", "5E"], + rockslide: ["8M", "8L20", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L8", "7L16", "6L16", "5L16"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L28", "7L37", "6L37", "5L37"], + secretpower: ["6M"], + slam: ["8L24"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + smellingsalts: ["7E", "6E", "5E"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "8L40", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L44", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L20", "6L20", "5L20"], + wideguard: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + }, + }, + gurdurr: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + chipaway: ["7L24", "6L24", "5L24"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T", "5D"], + dynamicpunch: ["8L36", "7L37", "6L37", "5L37"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L12", "7L1", "6L1", "5L1"], + focuspunch: ["8L60", "7T", "7L53", "6T", "6L53", "5L53"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L42", "7L45", "6L45", "5L45"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + icepunch: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12", "5D"], + lowsweep: ["8M", "7M", "6M", "5M"], + machpunch: ["5D"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + rockslide: ["8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L1", "7L16", "6L16", "5L16"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L30", "7L41", "6L41", "5L41"], + secretpower: ["6M"], + slam: ["8L24"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L20", "6L20", "5L20"], + workup: ["8M", "7M", "5M"], + }, + }, + conkeldurr: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "8L16", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + bulldoze: ["8M", "7M", "6M", "5M"], + chipaway: ["7L24", "6L24", "5L24"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + dynamicpunch: ["8L36", "7L37", "6L37", "5L37"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L12", "7L1", "6L1", "5L1"], + focuspunch: ["8L60", "7T", "7L53", "6T", "6L53", "5L53"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L42", "7L45", "6L45", "5L45"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "8L1", "7T", "7L12", "6T", "6L12", "5T", "5L12"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + rockblast: ["8M"], + rockslide: ["8M", "8L20", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L1", "7L16", "6L16", "5L16"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L30", "7L41", "6L41", "5L41"], + secretpower: ["6M"], + slam: ["8L24"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L54", "7T", "7L57", "6T", "6L57", "5T", "5L57"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L20", "6L20", "5L20"], + workup: ["8M", "7M", "5M"], + }, + }, + tympole: { + learnset: { + acid: ["8L4"], + afteryou: ["7T", "7E", "6T", "6E"], + aquaring: ["8L32", "7L20", "6L20", "5L20"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8L20", "7L12", "6L12", "5L12"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + echoedvoice: ["8L1", "7M", "7L38", "6M", "6L38", "5M", "5L38"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["8L24", "7L34", "6L34", "5L34"], + frustration: ["7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L48", "7L42", "6L42", "5L42"], + hypervoice: ["8M", "8L36", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + icywind: ["8M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + mist: ["8E", "7E", "6E", "5E"], + mudbomb: ["7E", "6E", "5E"], + muddywater: ["8M", "8L40", "7L27", "6L27", "5L27"], + mudshot: ["8M", "8L12", "7L16", "6L16", "5L16"], + mudslap: ["8E"], + mudsport: ["7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "8L44", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + refresh: ["7E", "6E", "5E"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "8L16", "7M", "7L9", "6M", "6L9", "5M", "5L9", "5D"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + supersonic: ["8L8", "7L5", "6L5", "5L5"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["8E", "7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + venomdrench: ["8M", "7E"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E", "5D"], + weatherball: ["8M"], + }, + }, + palpitoad: { + learnset: { + acid: ["8L1"], + afteryou: ["7T", "6T"], + aquaring: ["8L37", "7L20", "6L20", "5L20"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8L20", "7L12", "6L12", "5L12"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["8L1", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["8L24", "7L37", "6L37", "5L37"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + growl: ["8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L60", "7L47", "6L47", "5L47"], + hypervoice: ["8M", "8L42", "7T", "7L51", "6T", "6L51", "5T", "5L51"], + icywind: ["8M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + muddywater: ["8M", "8L48", "7L28", "6L28", "5L28"], + mudshot: ["8M", "8L12", "7L16", "6L16", "5L16"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "8L54", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + supersonic: ["8L1", "7L1", "6L1", "5L1"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L30", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + venomdrench: ["8M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + }, + }, + seismitoad: { + learnset: { + acid: ["8L1", "7L1", "6L36", "5L36"], + afteryou: ["7T", "6T"], + aquaring: ["8L39", "7L20", "6L20", "5L20"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8L20", "7L12", "6L12", "5L12"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + dive: ["8M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "8L0", "7T", "7L44", "6T", "6L44", "5T", "5L44"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + echoedvoice: ["8L1", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["8L24", "7L39", "6L39", "5L39"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["8L1", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L70", "7L53", "6L53", "5L53"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L46", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T"], + liquidation: ["8M"], + lowkick: ["8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + muddywater: ["8M", "8L54", "7L28", "6L28", "5L28"], + mudshot: ["8M", "8L12", "7L16", "6L16", "5L16"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "8L62", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + scald: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + supersonic: ["8L1", "7L1", "6L1", "5L1"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L30", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + }, + encounters: [ + {generation: 5, level: 15}, + ], + }, + throh: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L5", "5L5"], + bind: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5D"], + block: ["7T", "6T", "5T"], + bodyslam: ["8M", "7L21", "6L29", "5L29"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulkup: ["8M", "8L25", "7M", "7L25", "6M", "6L33", "5M", "5L33"], + bulldoze: ["8M", "7M", "6M", "5M"], + circlethrow: ["8L10", "7L29", "6L37", "5L37"], + coaching: ["8T"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M", "8L45", "7L33", "6L41", "5L41"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L5", "7L1", "6L9", "5L9"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T", "5D"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "7M", "6M", "5M"], + matblock: ["7L1"], + megakick: ["8M"], + megapunch: ["8M"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "8L20", "7L13", "6L21", "5L21"], + reversal: ["8M", "8L50", "7L45", "6L50", "5L53"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + seismictoss: ["8L40", "7L5", "6L13", "5L13"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + stormthrow: ["8L30", "7L17", "6L25", "5L25"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L55", "7T", "7L41", "6T", "6L48", "5T", "5L49", "5D"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + vitalthrow: ["8L35", "7L9", "6L17", "5L17"], + wideguard: ["8L15", "7L37", "6L45", "5L45"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + sawk: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L5", "5L5"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M", "8L35", "7M", "7L21", "6M", "6L29", "5M", "5L29"], + bulkup: ["8M", "8L25", "7M", "7L25", "6M", "6L33", "5M", "5L33"], + bulldoze: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L55", "7L41", "6L48", "5L49"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8L40", "7L13", "6L21", "5L21"], + dig: ["8M", "6M", "5M"], + doublekick: ["8L10", "7L5", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T", "5D"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M", "8L45", "7L33", "6L41", "5L41"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "8L5", "7L1", "6L9", "5L9"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + karatechop: ["7L17", "6L25", "5L25"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "8L20", "7M", "7L9", "6M", "6L17", "5M", "5L17"], + megakick: ["8M"], + megapunch: ["8M"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + quickguard: ["8L15", "7L37", "6L45", "5L45"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L30", "7L29", "6M", "6L37", "5M", "5L37"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M", "8L50", "7L45", "6L50", "5L53"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["8L1", "7L1", "6M", "6L1", "5M", "5L1", "5D"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T", "5D"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + sewaddle: { + learnset: { + agility: ["7E", "6E", "5E"], + airslash: ["7E", "6E", "5E"], + attract: ["7M", "6M", "5M"], + batonpass: ["7E", "6E", "5E"], + bugbite: ["7T", "7L8", "6T", "6L8", "5T", "5L8"], + bugbuzz: ["7L36", "6L36", "5L36"], + calmmind: ["7M", "6M", "5M"], + camouflage: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + electroweb: ["7T", "6T", "5T"], + endure: ["7L29", "6L29", "5L29"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flail: ["7L43", "6L43", "5L43"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["7T", "6T", "5T"], + grassknot: ["7M", "6M", "5M"], + grassyterrain: ["7E"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["7T", "6T", "5T"], + lightscreen: ["7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + mefirst: ["7E", "6E", "5E"], + mindreader: ["7E", "6E", "5E"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + protect: ["7M", "6M", "5M"], + razorleaf: ["7L15", "6L15", "5L15"], + razorwind: ["7E", "6E", "5E"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + screech: ["7E", "6E", "5E"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["7E", "6E", "5E"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stickyweb: ["7L31", "6L31"], + stringshot: ["7L1", "6L1", "5L1"], + strugglebug: ["7L22", "6M", "6L22", "5M", "5L22"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["7L1", "6L1", "5L1"], + toxic: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + }, + swadloon: { + learnset: { + attract: ["7M", "6M", "5M"], + bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + calmmind: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + electroweb: ["7T", "6T", "5T"], + energyball: ["7M", "6M", "5M"], + facade: ["7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["7T", "6T", "5T"], + grassknot: ["7M", "6M", "5M"], + grasswhistle: ["7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + irondefense: ["7T", "6T", "5T"], + lightscreen: ["7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + protect: ["7M", "7L1", "6M", "6L20", "5M", "5L20"], + razorleaf: ["7L1", "6L1", "5L1"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + stringshot: ["7L1", "6L1", "5L1"], + strugglebug: ["6M", "5M"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["7L1", "6L1", "5L1"], + toxic: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 19}, + ], + }, + leavanny: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["7M", "6M", "5M"], + bugbite: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + calmmind: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + electroweb: ["7T", "6T", "5T"], + energyball: ["7M", "6M", "5M"], + entrainment: ["7L43", "6L43", "5L43"], + facade: ["7M", "6M", "5M"], + falseswipe: ["7M", "7L1", "6M", "6L1", "5M", "5L1"], + fellstinger: ["7L29", "6L34"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["7T", "6T", "5T"], + gigaimpact: ["7M", "6M", "5M"], + grassknot: ["7M", "6M", "5M"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["7T", "7L32", "6T", "6L32", "5T", "5L32"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["7M", "6M", "5M"], + irondefense: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leafblade: ["7L36", "6L36", "5L36"], + leafstorm: ["7L50", "6L50", "5L50"], + lightscreen: ["7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M", "5M"], + poisonjab: ["7M", "6M", "5M"], + protect: ["7M", "6M", "5M"], + razorleaf: ["7L1", "6L1", "5L1"], + reflect: ["7M", "6M", "5M"], + rest: ["7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["7T", "6T", "5T"], + shadowclaw: ["7M", "6M", "5M"], + signalbeam: ["7T", "6T", "5T"], + slash: ["7L1", "6L29", "5L29"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + solarbeam: ["7M", "6M", "5M"], + steelwing: ["7M", "6M"], + stringshot: ["7L1", "6L1", "5L1"], + strugglebug: ["7L22", "6M", "6L22", "5M", "5L22"], + substitute: ["7M", "6M", "5M"], + sunnyday: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["7M", "7L46", "6M", "6L46", "5M", "5L46"], + synthesis: ["7T", "6T", "5T"], + tackle: ["7L1", "6L1", "5L1"], + throatchop: ["7T"], + toxic: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + xscissor: ["7M", "7L39", "6M", "6L39", "5M", "5L39"], + }, + encounters: [ + {generation: 5, level: 20, isHidden: true}, + ], + }, + venipede: { + learnset: { + agility: ["8M", "8L32", "7L29", "6L29", "5L29"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["8E"], + bugbite: ["8L20", "7T", "7L22", "6T", "6L22", "5T", "5L22"], + confide: ["7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + doubleedge: ["8L44", "7L43", "6L43", "5L43"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8E"], + gyroball: ["8M", "7M", "6M", "5M"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + pinmissile: ["8M", "7E", "6E", "5E"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8L1", "7L5", "6L5", "5L5"], + poisontail: ["8L12", "7L19", "6L19", "5L19"], + protect: ["8M", "8L8", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + pursuit: ["7L12", "6L12", "5L12"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7L40", "7E", "6L40", "6E", "5L40", "5E"], + rocksmash: ["6M", "5M"], + rollout: ["8L4", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L16", "7L8", "6L8", "5L8"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M", "7E", "6E", "5E"], + steamroller: ["7L33", "6L33", "5L33"], + steelroller: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["8L28", "7E", "6E", "5E"], + toxic: ["8L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + toxicspikes: ["8M", "7E", "6E", "5E"], + twineedle: ["7E", "6E", "5E"], + venomdrench: ["8M", "8L40", "7L38"], + venoshock: ["8M", "8L24", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + }, + }, + whirlipede: { + learnset: { + agility: ["8M", "8L38", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + bugbite: ["8L20", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + confide: ["7M", "6M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + doubleedge: ["8L56", "7L50", "6L50", "5L50"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gyroball: ["8M", "7M", "6M", "5M"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "8L0", "7T", "7L1", "6T", "6L22", "5T", "5L22"], + payback: ["8M", "7M", "6M", "5M"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1"], + poisontail: ["8L12", "7L19", "6L19", "5L19"], + protect: ["8M", "8L1", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + pursuit: ["7L12", "6L12", "5L12"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7L46", "6L46", "5L46"], + rocksmash: ["6M", "5M"], + rollout: ["8L1", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L16", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + steamroller: ["7L37", "6L37", "5L37"], + steelroller: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["8L32"], + toxic: ["8L44", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + toxicspikes: ["8M"], + venomdrench: ["8M", "8L50", "7L43", "6L43"], + venoshock: ["8M", "8L26", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + }, + }, + scolipede: { + learnset: { + agility: ["8M", "8L42", "7L33", "6L33", "5L33"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "8L1", "7L1", "6L30", "5L30"], + bugbite: ["8L20", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crosspoison: ["8M"], + cut: ["6M", "5M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + dig: ["8M", "6M", "5M"], + doubleedge: ["8L66", "7L55", "6L55", "5L55"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gyroball: ["8M", "7M", "6M", "5M"], + hex: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "8L1", "7T", "7L1", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + megahorn: ["8M", "8L74", "7L1", "6L1", "5L1"], + payback: ["8M", "7M", "6M", "5M"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8L1", "7L1", "6L1", "5L1"], + poisontail: ["8L12", "7L19", "6L19", "5L19", "5D"], + protect: ["8M", "8L1", "7M", "7L15", "6M", "6L15", "5M", "5L15"], + pursuit: ["7L12", "6L12", "5L12"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7L50", "6L50", "5L50"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["8L1", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L16", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smartstrike: ["8M", "7M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + steamroller: ["7L39", "6L39", "5L39"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T", "5D"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + takedown: ["8L34"], + throatchop: ["8M", "7T"], + toxic: ["8L50", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + toxicspikes: ["8M", "5D"], + venomdrench: ["8M", "8L58", "7L47", "6L47"], + venoshock: ["8M", "8L26", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + }, + cottonee: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "7E", "6E", "5E"], + captivate: ["7E", "6E"], + charm: ["8M", "8L27", "7L28", "6L28", "5L28"], + confide: ["7M", "6M"], + cottonguard: ["8L45", "7L37", "6L37", "5L37"], + cottonspore: ["8L33", "7L17", "6L17", "5L17"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E", "5D"], + endeavor: ["8L42", "7T", "7L44", "6T", "6L44", "5T", "5L44"], + endure: ["8M"], + energyball: ["8M", "8L36", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + facade: ["8M", "7M", "6M", "5M"], + fairywind: ["8L3", "7L1", "6L1"], + faketears: ["8M", "7E", "6E", "5E"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L24", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + grassknot: ["8M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L18", "7L4", "6L4", "5L4"], + helpinghand: ["8M", "8L1", "7T", "7L31", "6T", "6L31", "5T", "5L31"], + hiddenpower: ["7M", "6M", "5M"], + knockoff: ["7T", "6T", "5T"], + leechseed: ["8L30", "7L8", "6L8", "5L8", "5D"], + megadrain: ["8L12", "7L13", "6L13", "5L13"], + memento: ["8E", "7E", "6E", "5E"], + mistyterrain: ["8M", "7E"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["8E", "7M", "6M"], + poisonpowder: ["8L21", "7L22", "6L22", "5L22"], + protect: ["8M", "7M", "6M", "5M"], + razorleaf: ["8L15", "7L19", "6L19", "5L19"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5M", "5L46"], + stunspore: ["8L6", "7L10", "6L10", "5L10"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "8L39", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + switcheroo: ["8E", "7E", "6E", "5E"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + }, + }, + whimsicott: { + learnset: { + absorb: ["8L1"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "5S0"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + cottonguard: ["8L1"], + cottonspore: ["8L1", "7L1", "6L1", "5L1"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L1", "7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "8L1", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + fairywind: ["8L1"], + faketears: ["8M"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L1", "7T", "6T", "5T", "5S0"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8L1", "7L1", "6L1", "5L1"], + gust: ["8L1", "7L10", "6L10", "5L10"], + helpinghand: ["8M", "8L1", "7T", "6T", "5T", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["8M", "8L1", "7L46", "6L46", "5L46"], + hyperbeam: ["8M", "7M", "6M", "5M"], + knockoff: ["7T", "6T", "5T"], + leechseed: ["8L1", "7L1", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + megadrain: ["8L1", "7L1", "6L1", "5L1"], + memento: ["8L1"], + mistyterrain: ["8M"], + moonblast: ["8L1", "7L50", "6L50"], + naturepower: ["7M", "6M"], + playrough: ["8M"], + poisonpowder: ["8L1"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + razorleaf: ["8L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shadowball: ["8M", "7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "8L1", "7M", "6M", "5M"], + stunspore: ["8L1"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "8L1", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M", "5S0"], + swift: ["8M"], + tailwind: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trickroom: ["8M", "7M", "6M", "5M"], + uturn: ["8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, gender: "F", nature: "Timid", ivs: {spe: 31}, abilities: ["prankster"], moves: ["swagger", "gigadrain", "beatup", "helpinghand"], pokeball: "cherishball"}, + ], + }, + petilil: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L1", "5L1"], + afteryou: ["9L27", "8L27", "7T", "7L44", "6T", "6L44", "5T", "5L44"], + aromatherapy: ["8L12", "7L28", "6L28", "5L28"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7E", "6E", "5E"], + bulletseed: ["9M"], + charm: ["9M", "9L12", "8M", "7E", "6E", "5E", "5D"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["9M", "8M", "7E"], + endure: ["9M", "8M", "7E", "6E", "5E"], + energyball: ["9M", "9L30", "8M", "8L30", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + entrainment: ["9L39", "8L39", "7L37", "6L37", "5L37"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "9L21", "8M", "8L21", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["8T"], + growth: ["9L1", "8L1", "7L4", "6L4", "5L4"], + healbell: ["7T", "6T", "5T"], + healingwish: ["9E", "8E", "7E", "6E", "5E"], + helpinghand: ["9M", "9L3", "8M", "8L3", "7T", "7L31", "6T", "6L31", "5T", "5L31"], + hiddenpower: ["7M", "6M", "5M"], + ingrain: ["9E", "8E", "7E", "6E", "5E"], + laserfocus: ["7T"], + leafstorm: ["9M", "9L42", "8M", "8L42", "7L46", "6L46", "5L46"], + leechseed: ["9L24", "8L24", "7L8", "6L8", "5L8"], + magicalleaf: ["9M", "9L15", "8M", "8L15", "7L19", "6L19", "5L19"], + megadrain: ["9L9", "8L9", "7L13", "6L13", "5L13"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["7M", "6M"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeppowder: ["9L18", "8L18", "7L10", "6L10", "5L10", "5D"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + stunspore: ["9L6", "8L6", "7L22", "6L22", "5L22"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "9L36", "8M", "8L36", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["9E", "8E", "7E", "6E", "5E", "5D"], + synthesis: ["9L33", "8L33", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + worryseed: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + lilligant: { + learnset: { + absorb: ["9L1", "8L1"], + afteryou: ["9L1", "8L1", "7T", "6T", "5T"], + aromatherapy: ["8L1"], + attract: ["8M", "7M", "6M", "5M"], + bulletseed: ["9M"], + charm: ["9M", "9L1", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + entrainment: ["9L1", "8L1"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyglide: ["8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "7L1", "6L1", "5L1"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + laserfocus: ["7T"], + leafblade: ["8M"], + leafstorm: ["9M", "9L1", "8M", "8L1"], + leechseed: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magicalleaf: ["9M", "9L5", "8M", "8L1"], + megadrain: ["9L1", "8L1", "7L1", "6L1", "5L1"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L1", "8L1", "7L50", "6L50"], + petaldance: ["9L0", "8L0", "7L46", "6L46", "5L46"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + quiverdance: ["9L1", "8L1", "7L28", "6L28", "5L28"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeppowder: ["9L1", "8L1"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + solarblade: ["8M"], + stunspore: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "9L1", "8M", "8L1", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + synthesis: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + teeterdance: ["9L1", "8L1", "7L10", "6L10", "5L10"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + worryseed: ["7T", "6T", "5T"], + }, + }, + lilliganthisui: { + learnset: { + absorb: ["9L1"], + acrobatics: ["9M"], + aerialace: ["9M"], + afteryou: ["9L1"], + airslash: ["9M"], + axekick: ["9L5"], + brickbreak: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + closecombat: ["9M"], + defog: ["9L1"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L1"], + entrainment: ["9L1"], + facade: ["9M"], + gigadrain: ["9M", "9L1"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1"], + helpinghand: ["9M", "9L1"], + hurricane: ["9M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + leafblade: ["9L1"], + leafstorm: ["9M", "9L1"], + leechseed: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "9L1"], + megadrain: ["9L1"], + megakick: ["9L1"], + metronome: ["9M"], + petalblizzard: ["9L1"], + poisonjab: ["9M"], + pollenpuff: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeppowder: ["9L1"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + solarblade: ["9L1"], + stunspore: ["9L1"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + swordsdance: ["9M"], + synthesis: ["9L1"], + takedown: ["9M"], + teeterdance: ["9L1"], + terablast: ["9M"], + trailblaze: ["9M"], + victorydance: ["9L0"], + }, + }, + basculin: { + learnset: { + agility: ["9M", "8M", "7E", "6E", "5E", "5D"], + aquajet: ["9L12", "8L12", "7L9", "6L13", "5L13"], + aquatail: ["8L44", "7T", "7L20", "6T", "6L28", "5T", "5L28"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L16", "8L16", "7L7", "6L10", "5L10"], + blizzard: ["9M"], + bounce: ["8M", "7T", "6T", "5T"], + brine: ["8M", "7E", "6E", "5E"], + bubblebeam: ["9E", "8E", "7E", "6E", "5E"], + chillingwater: ["9M"], + chipaway: ["7L11", "6L16", "5L16"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L17", "6L24", "5L24"], + cut: ["6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleedge: ["9L52", "8L52", "7L26", "6L36", "5L36"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["9E", "8E", "7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + finalgambit: ["9L40", "8L40", "7L38", "6L50", "5L51"], + flail: ["9L8", "8L8", "7L34", "6L1", "5L46"], + flipturn: ["8T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M"], + hail: ["8M", "7M", "6M", "5M"], + headbutt: ["9L24", "8L24", "7L5", "6L7", "5L7", "5D"], + headsmash: ["9L56", "8L56", "7L46", "7E"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icefang: ["9M", "8M"], + icywind: ["9M", "8M", "7T", "6T", "5T"], + liquidation: ["9M", "8M", "7T"], + muddywater: ["8M", "7E", "6E", "5E"], + mudshot: ["9M", "8M", "7E", "6E", "5E"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychicfangs: ["9M", "8M"], + rage: ["7E", "6E", "5E"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7E", "6E", "5E"], + reversal: ["9M", "8M"], + round: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L30", "6L41", "5L41"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L28", "8L28", "7L23", "6L32", "5L32"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M", "7E", "6E", "5E"], + tackle: ["9L4", "8L4", "7L1", "6L1", "5L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M", "9L36", "8L36", "7L14", "6L20", "5L20"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thrash: ["9L48", "8L48", "7L42", "6L1", "5L56"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "7L3", "6T", "6L4", "5T", "5L4"], + waterfall: ["9M", "8M", "7M", "6M", "5M"], + watergun: ["9L1", "8L1", "7L1", "6L1", "5L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + whirlpool: ["8M", "7E", "6E", "5E"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T", "5D"], + }, + }, + basculinwhitestriped: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + bite: ["9L16"], + blizzard: ["9M"], + chillingwater: ["9M"], + crunch: ["9M", "9L32"], + doubleedge: ["9L52"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L8"], + headbutt: ["9L24"], + headsmash: ["9L56"], + hydropump: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9E"], + liquidation: ["9M"], + mudshot: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M", "9L20"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9L28"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9L48"], + uproar: ["9L40"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + zenheadbutt: ["9M"], + }, + }, + basculegion: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + bite: ["9L16"], + blizzard: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + crunch: ["9M", "9L32"], + doubleedge: ["9L52"], + endeavor: ["9E"], + facade: ["9M"], + flail: ["9L8"], + gigaimpact: ["9M"], + headbutt: ["9L24"], + headsmash: ["9L56"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9E"], + liquidation: ["9M"], + mudshot: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + phantomforce: ["9M", "9L1"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M", "9L20"], + shadowball: ["9M", "9L1"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9L28"], + substitute: ["9M"], + surf: ["9M"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9L48"], + uproar: ["9L40"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + }, + }, + basculegionf: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + bite: ["9L16"], + blizzard: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + crunch: ["9M", "9L32"], + doubleedge: ["9L52"], + endeavor: ["9E"], + facade: ["9M"], + flail: ["9L8"], + gigaimpact: ["9M"], + headbutt: ["9L24"], + headsmash: ["9L56"], + hex: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + lastrespects: ["9E"], + liquidation: ["9M"], + mudshot: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + phantomforce: ["9M", "9L1"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M", "9L20"], + shadowball: ["9M", "9L1"], + sleeptalk: ["9M"], + snowscape: ["9M"], + soak: ["9L28"], + substitute: ["9M"], + surf: ["9M"], + tackle: ["9L4"], + tailwhip: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + thrash: ["9L48"], + uproar: ["9L40"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L44"], + }, + }, + sandile: { + learnset: { + aquatail: ["9E", "8E", "7T", "6T", "5T"], + assurance: ["8M", "7L16", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "7E", "6E", "5E"], + bite: ["9L15", "8L15", "7L4", "6L4", "5L4"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E"], + crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "9L21", "8M", "8L21", "7L31", "6M", "6L31", "5M", "5L31"], + doubleedge: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M", "7E", "6E", "5E"], + fling: ["9M"], + focusenergy: ["8M", "7E", "6E", "5E"], + foulplay: ["9M", "9L33", "8M", "8L33", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + frustration: ["7M", "6M", "5M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L6", "8L6", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + meanlook: ["7E", "6E", "5E"], + mefirst: ["7E", "6E"], + mudshot: ["9M"], + mudslap: ["9M", "7L19", "6L19", "5L19"], + payback: ["8M", "7M", "6M", "5M"], + powertrip: ["9L1", "8L1", "7E"], + protect: ["9M", "8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + rage: ["7L1", "6L1", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockclimb: ["7E", "6E", "5E"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L3", "8L3", "7L7", "6L7", "5L7"], + sandstorm: ["9M", "9L30", "8M", "8L30", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + sandtomb: ["9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L34", "6L34", "5L34"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["9M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["9E", "8E", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["9L24", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L39", "8L39", "7L46", "6L46", "5L46"], + thunderfang: ["9M", "8M", "7E", "6E", "5E"], + torment: ["9L18", "8L18", "7M", "7L10", "6M", "6L10", "5M", "5L10"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + krokorok: { + learnset: { + aerialace: ["9M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M", "7L16", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L15", "8L15", "7L1", "6L1", "5L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "9L21", "8M", "8L21", "7L32", "6M", "6L32", "5M", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["9M"], + dragontail: ["9M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L42", "8M", "8L42", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T"], + foulplay: ["9M", "9L35", "8M", "8L35", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + frustration: ["7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L1", "8L1", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7L19", "6L19", "5L19"], + payback: ["8M", "7M", "6M", "5M"], + powertrip: ["9L1", "8L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7L1", "6L1", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], + sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + sandtomb: ["9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L36", "6L36", "5L36"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["9L24", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L47", "8L47", "7L52", "6L52", "5L52"], + thunderfang: ["9M", "8M"], + torment: ["9L18", "8L18", "7M", "7L10", "6M", "6L10", "5M", "5L10"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + }, + }, + krookodile: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M", "7L16", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L15", "8L15", "7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + counter: ["5D"], + crunch: ["9M", "9L27", "8M", "8L27", "7L28", "6L28", "5L28", "5D"], + cut: ["6M", "5M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "9L21", "8M", "8L21", "7L32", "6M", "6L32", "5M", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["9M", "8M", "7M", "6M", "5M"], + dragonpulse: ["9M", "8M", "7T", "6T", "5T"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "9L44", "8M", "8L44", "7M", "7L54", "6M", "6L54", "5M", "5L54"], + embargo: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T"], + foulplay: ["9M", "9L35", "8M", "8L35", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + honeclaws: ["9L1", "8L1", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + meanlook: ["5D"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M"], + mudslap: ["9M", "7L19", "6L19", "5L19"], + outrage: ["9M", "9L58", "8M", "8L58", "7T", "7L60", "6T", "6L1", "5T", "5L60"], + payback: ["8M", "7M", "6M", "5M"], + powertrip: ["9L1", "8L1", "7L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + rage: ["7L1", "6L1", "5L1"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["9L1", "8L1", "7L1", "6L1", "5L1"], + sandstorm: ["9M", "9L32", "8M", "8L32", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + sandtomb: ["9L9", "8M", "8L9", "7L13", "6L13", "5L13"], + scaleshot: ["8T"], + scaryface: ["9M", "9L12", "8M", "8L12", "7L36", "6L36", "5L36"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["9L24", "8L24", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L51", "8L51"], + throatchop: ["8M", "7T"], + thunderfang: ["9M", "8M"], + torment: ["9L18", "8L18", "7M", "7L10", "6M", "6L10", "5M", "5L10"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + }, + }, + darumaka: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bellydrum: ["8L36", "7L30", "6L30", "5L30"], + bite: ["8L8"], + brickbreak: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + ember: ["8L1"], + encore: ["8M", "7E", "6E", "5E"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "7E", "6E", "5E"], + extrasensory: ["8E", "7E"], + facade: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + fireblast: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "8L20", "7L11", "6L11", "5L11"], + firepunch: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L22"], + firespin: ["8M"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M"], + flamewheel: ["8E", "7E", "6E", "5E"], + flareblitz: ["8M", "8L40", "7L33", "6L33", "5L33"], + fling: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M", "7E", "6E", "5E"], + focuspunch: ["8E", "7T", "7E", "6T", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8E", "7E", "6E", "5E"], + headbutt: ["8L24", "7L14", "6L14", "5L14"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["8L12", "7L6", "6M", "6L6", "5M", "5L6"], + megakick: ["8M"], + megapunch: ["8M"], + overheat: ["8M", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + rage: ["7L9", "6L9", "5L9"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L3", "6L3", "5L3"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L48", "7T", "7L39", "6T", "6L39", "5T", "5L39"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + takedown: ["8E", "7E", "6E", "5E"], + taunt: ["8M", "8L4", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + thief: ["8M", "7M", "6M", "5M"], + thrash: ["8L44", "7L27", "6L27", "5L27"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L32", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + uturn: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L16", "7M", "7L25", "6L25", "5M", "5L25"], + yawn: ["8E", "7E", "6E", "5E"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + darumakagalar: { + learnset: { + attract: ["8M"], + avalanche: ["8M", "8L12"], + bellydrum: ["8L36"], + bite: ["8L8"], + blizzard: ["8M", "8L40"], + brickbreak: ["8M"], + dig: ["8M"], + encore: ["8M"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firepunch: ["8M"], + firespin: ["8M"], + flamethrower: ["8M"], + flamewheel: ["8E"], + flareblitz: ["8M"], + fling: ["8M"], + focusenergy: ["8M"], + focuspunch: ["8E"], + freezedry: ["8E"], + grassknot: ["8M"], + gyroball: ["8M"], + hammerarm: ["8E"], + headbutt: ["8L24"], + heatwave: ["8M"], + icebeam: ["8M"], + icefang: ["8M", "8L20"], + icepunch: ["8M", "8L28"], + incinerate: ["8E"], + megakick: ["8M"], + megapunch: ["8M"], + overheat: ["8M"], + powdersnow: ["8L1"], + poweruppunch: ["8E"], + protect: ["8M"], + rest: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M", "8L48"], + tackle: ["8L1"], + takedown: ["8E"], + taunt: ["8M", "8L4"], + thief: ["8M"], + thrash: ["8L44"], + uproar: ["8M", "8L32"], + uturn: ["8M"], + willowisp: ["8M"], + workup: ["8M", "8L16"], + yawn: ["8E"], + zenheadbutt: ["8M"], + }, + }, + darmanitan: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + bellydrum: ["8L38", "7L30", "6L30", "6S1", "5L30", "5S0"], + bite: ["8L1"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulkup: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + confide: ["7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + ember: ["8L1"], + encore: ["8M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + fireblast: ["8M", "7M", "6M", "5M"], + firefang: ["8M", "8L20", "7L11", "6L11", "5L11"], + firepunch: ["8M", "8L28", "7T", "7L22", "6T", "6L22", "5T", "5L22"], + firespin: ["8M"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M"], + flareblitz: ["8M", "8L44", "7L33", "6L33", "6S1", "5L33", "5S0"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L0", "7L1", "6L35", "6S1", "5L35", "5S0"], + headbutt: ["8L24", "7L14", "6L14", "5L14"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + incinerate: ["8L12", "7L1", "6M", "6L1", "5M", "5L1"], + irondefense: ["8M"], + ironhead: ["8M"], + laserfocus: ["7T"], + lashout: ["8T"], + megakick: ["8M"], + megapunch: ["8M"], + mysticalfire: ["8M"], + overheat: ["8M", "7M", "7L54", "6M", "6L54", "5M", "5L54"], + payback: ["8M", "7M", "6M", "5M"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + rage: ["7L1", "6L1", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L56", "7T", "7L47", "6T", "6L47", "5T", "5L47"], + swagger: ["7M", "7L17", "6M", "6L17", "5M", "5L17"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + taunt: ["8M", "8L1", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + thief: ["8M", "7M", "6M", "5M"], + thrash: ["8L50", "7L27", "6L27", "6S1", "5L27", "5S0"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M"], + uproar: ["8M", "8L32", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L16", "7M", "7L25", "6L25", "5M", "5L25"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 35, isHidden: true, moves: ["thrash", "bellydrum", "flareblitz", "hammerarm"]}, + {generation: 6, level: 35, gender: "M", nature: "Calm", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, isHidden: true, moves: ["thrash", "bellydrum", "flareblitz", "hammerarm"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 32, maxEggMoves: 1}, + ], + }, + darmanitangalar: { + learnset: { + attract: ["8M"], + avalanche: ["8M", "8L12"], + bellydrum: ["8L38"], + bite: ["8L1"], + blizzard: ["8M", "8L44"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M"], + bulkup: ["8M"], + bulldoze: ["8M"], + burningjealousy: ["8T"], + dig: ["8M"], + earthquake: ["8M"], + encore: ["8M"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firepunch: ["8M"], + firespin: ["8M"], + flamethrower: ["8M"], + flareblitz: ["8M"], + fling: ["8M"], + focusblast: ["8M"], + focusenergy: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + gyroball: ["8M"], + headbutt: ["8L24"], + heatwave: ["8M"], + hyperbeam: ["8M"], + icebeam: ["8M"], + icefang: ["8M", "8L20"], + icepunch: ["8M", "8L28"], + iciclecrash: ["8L0"], + irondefense: ["8M"], + ironhead: ["8M"], + lashout: ["8T"], + megakick: ["8M"], + megapunch: ["8M"], + overheat: ["8M"], + payback: ["8M"], + powdersnow: ["8L1"], + protect: ["8M"], + psychic: ["8M"], + rest: ["8M"], + reversal: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + superpower: ["8M", "8L56"], + tackle: ["8L1"], + taunt: ["8M", "8L1"], + thief: ["8M"], + thrash: ["8L50"], + uproar: ["8M", "8L32"], + uturn: ["8M"], + willowisp: ["8M"], + workup: ["8M", "8L16"], + zenheadbutt: ["8M"], + }, + }, + maractus: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1"], + acupressure: ["8L52", "7L29", "6L29", "5L29"], + aerialace: ["7M", "6M", "5M"], + afteryou: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L57"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + bulletseed: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + cottonguard: ["8L60", "7L1", "6L1", "5L55"], + cottonspore: ["8L40", "7L18", "6L18", "5L18"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L24", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + grassknot: ["8M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyglide: ["8T"], + grassyterrain: ["8M", "7E", "6E"], + growth: ["8L4", "7L6", "6L6", "5L6"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M", "7T", "6T", "5T"], + ingrain: ["8L1", "7L33", "6L33", "5L33"], + knockoff: ["7T", "6T", "5T"], + leafstorm: ["8M"], + leechseed: ["8L12", "7E", "6E", "5E", "5D"], + megadrain: ["8L8", "7L13", "6L13", "5L13"], + naturepower: ["7M", "6M"], + needlearm: ["7L22", "6L22", "5L22"], + peck: ["8L1", "7L1", "6L1", "5L1"], + petalblizzard: ["8L36", "7L48", "6L48"], + petaldance: ["8L56", "7L38", "6L38", "5L38"], + pinmissile: ["8M", "8L20", "7L10", "6L10", "5L10", "5D"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "8L48", "7M", "7L50", "6M", "6L50", "5M", "5L50"], + spikes: ["8M", "7E", "6E", "5E", "5D"], + spikyshield: ["8L1", "7L1", "6L1"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L16", "7L42", "6L42", "5L42"], + sunnyday: ["8M", "8L44", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["8L28", "7L3", "6L3", "5L3"], + synthesis: ["8L32", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + weatherball: ["8M"], + woodhammer: ["8E", "7E", "6E", "5E"], + worryseed: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + dwebble: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + block: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + bugbite: ["8L12", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E"], + curse: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7L13", "6L13", "5L13"], + flail: ["8L16", "7L41", "6L41", "5L41"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["8E", "7T", "6T", "5T"], + naturepower: ["7M", "6M"], + nightslash: ["8E", "7E", "6E", "5E"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L32", "7L5", "6L5", "5L5"], + rockpolish: ["8L40", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + rockslide: ["8M", "8L24", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rockwrecker: ["8L48", "7L43", "6L43", "5L43"], + rototiller: ["7E", "6E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L11", "6L11", "5L11"], + sandstorm: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shellsmash: ["8L44", "7L37", "6L37", "5L37"], + skittersmack: ["8T"], + slash: ["8L20", "7L31", "6L31", "5L31"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L8", "7M", "7L17", "6M", "6L17", "5M", "5L17"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M", "7E", "6E", "5E"], + stealthrock: ["8M", "8L28", "7T", "7L24", "6T", "6L24", "5T", "5L24"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + wideguard: ["8E", "7E", "6E"], + withdraw: ["8L4", "7L7", "6L7", "5L7"], + xscissor: ["8M", "8L36", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + }, + }, + crustle: { + learnset: { + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bugbite: ["8L12", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + counter: ["5D"], + cut: ["6M", "5M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7L13", "6L13", "5L13"], + flail: ["8L16", "7L50", "6L50", "5L50"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + meteorbeam: ["8T"], + naturepower: ["7M", "6M"], + nightslash: ["5D"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L32", "7L1", "6L1", "5L1"], + rockpolish: ["8L44", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + rockslide: ["8M", "8L24", "7M", "7L29", "6M", "6L29", "5M", "5L29", "5D"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rockwrecker: ["8L56", "7L55", "6L55", "5L55"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "7M", "6M", "5M"], + sandtomb: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shellsmash: ["8L50", "7L1", "6L1", "5L1"], + skittersmack: ["8T"], + slash: ["8L20", "7L31", "6L31", "5L31"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L1", "7M", "7L17", "6M", "6L17", "5M", "5L17"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + solarblade: ["8M"], + spikes: ["8M"], + stealthrock: ["8M", "8L28", "7T", "7L24", "6T", "6L24", "5T", "5L24"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + withdraw: ["8L1", "7L1", "6L1", "5L1"], + xscissor: ["8M", "8L38", "7M", "7L38", "6M", "6L38", "5M", "5L38"], + }, + encounters: [ + {generation: 6, level: 33, maxEggMoves: 1}, + ], + }, + scraggy: { + learnset: { + acidspray: ["8E", "7E"], + amnesia: ["8M", "7E", "6E", "5E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "8L24"], + brickbreak: ["8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], + bulkup: ["8M", "7M", "6M", "5M"], + chipaway: ["7L27", "6L27", "5L27"], + coaching: ["8T"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E"], + crunch: ["8M", "8L40", "7L38", "6L38", "5L38"], + darkpulse: ["8M", "7M", "6M", "5T"], + detect: ["8E", "7E", "6E", "5E"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M", "7E", "6E", "5E"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + dualchop: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "8L16", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + fakeout: ["8E", "7E", "6E", "5E", "5D"], + faketears: ["8M"], + feintattack: ["7L9", "7E", "6L9", "6E", "5L9", "5E"], + firepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["8L48", "7T", "7L48", "6T", "6L48", "5L49"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + headbutt: ["8L8", "7L1", "6L12", "5L12", "5S0"], + headsmash: ["8L52", "7L50", "6L50", "5L53"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["8L44", "7L31", "6L31", "5L31", "5S0"], + icepunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1", "5S0"], + lowkick: ["8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1", "5D", "5S0"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "8L4", "7M", "7L20", "6M", "6L23", "5M", "5L23"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["8E", "7E", "6M"], + protect: ["8M", "8L20", "7M", "6M", "5M"], + quickguard: ["8E", "7E", "6E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + rockclimb: ["7L45", "6L45", "5L45"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L12", "7L5", "6L5", "5L5"], + scaryface: ["8M", "8L28", "7L34", "6L34", "5L34"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + swagger: ["8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M"], + thunderpunch: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + eventData: [ + {generation: 5, level: 1, gender: "M", nature: "Adamant", abilities: ["moxie"], moves: ["headbutt", "leer", "highjumpkick", "lowkick"], pokeball: "cherishball"}, + ], + }, + scrafty: { + learnset: { + amnesia: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M", "8L24"], + brickbreak: ["8M", "8L32", "7M", "7L23", "6M", "6L20", "5M", "5L20"], + bulkup: ["8M", "7M", "6M", "5M"], + chipaway: ["7L27", "6L27", "5L27"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + crunch: ["8M", "8L42", "7L38", "6L38", "5L38"], + darkpulse: ["8M", "7M", "6M", "5T"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T", "5S0"], + dualchop: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "8L16", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + faketears: ["8M"], + feintattack: ["7L1", "6L1", "5L1"], + firepunch: ["8M", "7T", "6T", "5T", "5S0"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["8L54", "7T", "7L58", "6T", "6L58", "5L58"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + headbutt: ["8L1", "7L1", "6L12", "5L12"], + headsmash: ["8L60", "7L65", "6L65", "5L65"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["8L48", "7L31", "6L31", "5L31"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "8L1", "7T", "7L16", "6T", "6L1", "5T", "5L1"], + lowsweep: ["8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "7T", "6T", "5T"], + payback: ["8M", "8L1", "7M", "7L20", "6M", "6L23", "5M", "5L23", "5S0"], + poisonjab: ["8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["8M", "8L20", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + rockclimb: ["7L51", "6L51", "5L51"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L12", "7L1", "6L1", "5L1"], + scaryface: ["8M", "8L28", "7L34", "6L34", "5L34"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M", "5S0"], + sunnyday: ["8M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + swagger: ["8L36", "7M", "7L12", "6M", "6L16", "5M", "5L16"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Brave", abilities: ["moxie"], moves: ["firepunch", "payback", "drainpunch", "substitute"], pokeball: "cherishball"}, + ], + }, + sigilyph: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aircutter: ["8L15", "7L21", "6L21", "5L21"], + airslash: ["8M", "8L35", "7L41", "6L41", "5L41"], + ancientpower: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1"], + cosmicpower: ["8M", "8L30", "7L48", "6L48", "5L48"], + darkpulse: ["8M", "7M", "6M", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "7E", "6E"], + gigaimpact: ["8M"], + gravity: ["8L5", "7T", "7L38", "6T", "6L38", "5T", "5L38"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T", "5D"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypnosis: ["8L10", "7L4", "6L4", "5L4", "5D"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + lightscreen: ["8M", "8L50", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["8M", "7T", "6T", "5T"], + miracleeye: ["7L1", "6L1", "5L1"], + mirrormove: ["7L34", "6L34", "5L34"], + pluck: ["5M"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L20", "7L18", "6L18", "5L18"], + psychic: ["8M", "8L40", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + psychocut: ["8M"], + psychoshift: ["8E", "7E", "6E", "5E"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "7M", "6M", "5M"], + psywave: ["7L8", "6L8", "5L8"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "8L50", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L60", "7T", "7E", "6T", "6E", "5T", "5E"], + skyattack: ["8L55", "7T", "7L50", "6T", "6L50", "5T", "5L51"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + speedswap: ["8M"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + storedpower: ["8M", "7E", "6E", "5E", "5D"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + synchronoise: ["7L31", "6L31", "5L31"], + tailwind: ["8L45", "7T", "7L11", "6T", "6L11", "5T", "5L11"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + whirlwind: ["8L25", "7L14", "6L14", "5L14"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + yamask: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T", "7E", "6E"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + calmmind: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + craftyshield: ["8L20", "7E"], + curse: ["8L36", "7L29", "6L29", "5L29"], + darkpulse: ["8M", "8L44", "7M", "6M", "5T"], + destinybond: ["8L52", "7L49", "6L49", "5L49"], + disable: ["8L12", "7L5", "7E", "6L5", "6E", "5L5", "5E"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M", "7E", "6E", "5E"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M", "7E", "6E", "5E"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + grudge: ["8L32", "7L41", "6L41", "5L41"], + guardsplit: ["8L48", "7L33", "6L33", "5L33"], + haze: ["8L4", "7L9", "6L9", "5L9"], + healblock: ["7E", "6E", "5E"], + hex: ["8M", "8L24", "7L17", "6L17", "5L17"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["8M", "7E", "6E", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + magiccoat: ["7T", "6T", "5T"], + meanlook: ["8L28", "7L45", "6L45", "5L45"], + memento: ["8E", "7E", "6E", "5E"], + nastyplot: ["8M", "7E", "6E", "5E"], + nightmare: ["7E", "6E", "5E"], + nightshade: ["8L8", "7L13", "6L13", "5L13"], + ominouswind: ["7L25", "6L25", "5L25"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["8T"], + powersplit: ["8L48", "7L33", "6L33", "5L33"], + protect: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L40", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + shockwave: ["7T", "6T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + toxicspikes: ["8M", "7E", "6E"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8L16", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + yamaskgalar: { + learnset: { + allyswitch: ["8M"], + astonish: ["8L1"], + attract: ["8M"], + brutalswing: ["8M", "8L16"], + calmmind: ["8M"], + craftyshield: ["8L20"], + curse: ["8L36"], + darkpulse: ["8M"], + destinybond: ["8L52"], + disable: ["8L12"], + earthpower: ["8M"], + earthquake: ["8M", "8L44"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + faketears: ["8M"], + guardsplit: ["8L48"], + haze: ["8L4"], + hex: ["8M", "8L24"], + imprison: ["8M"], + irondefense: ["8M"], + meanlook: ["8L28"], + memento: ["8E"], + nastyplot: ["8M"], + nightshade: ["8L8"], + payback: ["8M"], + poltergeist: ["8T"], + powersplit: ["8L48"], + protect: ["8M", "8L1"], + psychic: ["8M"], + raindance: ["8M"], + rest: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + shadowball: ["8M", "8L40"], + skillswap: ["8M"], + slam: ["8L32"], + sleeptalk: ["8M"], + snore: ["8M"], + substitute: ["8M"], + thief: ["8M"], + toxicspikes: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + willowisp: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + cofagrigus: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + craftyshield: ["8L20"], + curse: ["8L38", "7L29", "6L29", "5L29"], + darkpulse: ["8M", "8L50", "7M", "7S0", "6M", "5T"], + destinybond: ["8L62", "7L57", "6L57", "5L57"], + disable: ["8L12", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + grudge: ["8L32", "7L45", "6L45", "5L45"], + guardsplit: ["8L56", "7L33", "6L33", "5L33"], + guardswap: ["8M"], + haze: ["8L1", "7L1", "6L1", "5L1"], + hex: ["8M", "8L24", "7L17", "6L17", "5L17"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + imprison: ["8M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + magiccoat: ["7T", "6T", "5T"], + meanlook: ["8L28", "7L51", "6L51", "5L51"], + nastyplot: ["8M"], + nightshade: ["8L1", "7L13", "6L13", "5L13"], + ominouswind: ["7L25", "6L25", "5L25"], + painsplit: ["7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + phantomforce: ["8M"], + poltergeist: ["8T"], + powersplit: ["8L56", "7L33", "7S0", "6L33", "5L33"], + powerswap: ["8M"], + protect: ["8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L1", "7L1", "6L34", "5L34"], + secretpower: ["6M"], + shadowball: ["8M", "8L44", "7M", "7L39", "7S0", "6M", "6L39", "5M", "5L39"], + shadowclaw: ["8M", "8L0"], + shockwave: ["7T", "6T"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + toxicspikes: ["8M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8L16", "7M", "7L21", "7S0", "6M", "6L21", "5M", "5L21"], + wonderroom: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 7, level: 66, gender: "M", moves: ["willowisp", "shadowball", "powersplit", "darkpulse"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 32, maxEggMoves: 1}, + ], + }, + runerigus: { + learnset: { + allyswitch: ["8M"], + amnesia: ["8M"], + astonish: ["8L1"], + attract: ["8M"], + bodypress: ["8M"], + brutalswing: ["8M", "8L16"], + bulldoze: ["8M"], + calmmind: ["8M"], + craftyshield: ["8L20"], + curse: ["8L38"], + darkpulse: ["8M"], + destinybond: ["8L62"], + disable: ["8L12"], + dragonpulse: ["8M"], + earthpower: ["8M"], + earthquake: ["8M", "8L50"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + faketears: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + guardsplit: ["8L56"], + guardswap: ["8M"], + haze: ["8L1"], + hex: ["8M", "8L24"], + hyperbeam: ["8M"], + imprison: ["8M"], + irondefense: ["8M"], + meanlook: ["8L28"], + nastyplot: ["8M"], + nightshade: ["8L1"], + payback: ["8M"], + phantomforce: ["8M"], + poltergeist: ["8T"], + powersplit: ["8L56"], + powerswap: ["8M"], + protect: ["8M", "8L1"], + psychic: ["8M"], + raindance: ["8M"], + rest: ["8M"], + revenge: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["8M"], + sandtomb: ["8M"], + scaryface: ["8M", "8L1"], + shadowball: ["8M", "8L44"], + shadowclaw: ["8M", "8L0"], + skillswap: ["8M"], + slam: ["8L32"], + sleeptalk: ["8M"], + snore: ["8M"], + stealthrock: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + taunt: ["8M"], + thief: ["8M"], + toxicspikes: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + willowisp: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + tirtouga: { + learnset: { + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquajet: ["8L6", "7L15", "6L15", "5L15", "5S0"], + aquatail: ["8L36", "7T", "7L41", "6T", "6L41", "5T", "5L41"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "7E", "6L1", "6E", "5L1", "5E"], + bite: ["8L15", "7L8", "6L8", "5L8", "5S0"], + blizzard: ["8M", "7M", "6M", "5M"], + block: ["8E", "7T", "6T", "5T"], + bodyslam: ["8M", "7E", "6E", "5E", "5S0"], + brine: ["8M", "8L21", "7L28", "6L28", "5L28"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L27", "7L21", "6L21", "5L21"], + curse: ["8L30", "7L35", "6L35", "5L35"], + dig: ["8M", "6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flail: ["7E", "6E", "5E", "5D"], + frustration: ["7M", "6M", "5M"], + guardswap: ["8M", "7E", "6E"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L42", "7L50", "6L50", "5L51"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + irondefense: ["8M", "8L33", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5E"], + liquidation: ["8M", "7T", "7E"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["8M"], + protect: ["8M", "8L3", "7M", "7L11", "6M", "6L11", "5M", "5L11", "5S0"], + raindance: ["8M", "8L39", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + rocksmash: ["6M", "5M"], + rockthrow: ["8E", "7E", "6E", "5E"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["8E", "7L5", "6L5", "5L5", "5D"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shellsmash: ["8L45", "7L38", "6L38", "5L38"], + slam: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L9", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1", "7L1", "6L1", "5L1"], + waterpulse: ["8E", "7T", "7E", "6T", "6E", "5E"], + whirlpool: ["8M", "7E", "6E", "5E"], + wideguard: ["8L18", "7L25", "6L25", "5L25"], + withdraw: ["8L1", "7L1", "6L1", "5L1"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", abilities: ["sturdy"], moves: ["bite", "protect", "aquajet", "bodyslam"], pokeball: "cherishball"}, + ], + }, + carracosta: { + learnset: { + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquajet: ["8L1", "7L15", "6L15", "5L15"], + aquatail: ["8L36", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + bite: ["8L15", "7L8", "6L8", "5L8"], + blizzard: ["8M", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bodyslam: ["8M"], + brine: ["8M", "8L21", "7L28", "6L28", "5L28"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L27", "7L21", "6L21", "5L21"], + curse: ["8L30", "7L35", "6L35", "5L35"], + dig: ["8M", "6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + guardswap: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L46", "7L61", "6L61", "5L61"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + irondefense: ["8M", "8L33", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T", "6T", "5T"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["8M"], + protect: ["8M", "8L1", "7M", "7L11", "6M", "6L11", "5M", "5L11"], + raindance: ["8M", "8L41", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + razorshell: ["8M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shellsmash: ["8L51", "7L40", "6L40", "5L40"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L9", "7M", "7L31", "6M", "6L31", "5M", "5L31"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1", "7L1", "6L1", "5L1"], + waterpulse: ["7T", "6T"], + whirlpool: ["8M"], + wideguard: ["8L18", "7L25", "6L25", "5L25"], + withdraw: ["8L1", "7L1", "6L1", "5L1"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + archen: { + learnset: { + acrobatics: ["8M", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L33", "7L21", "6L21", "5L21"], + allyswitch: ["8M", "7T", "7E", "6E"], + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["8E", "7E", "6E", "5E"], + bounce: ["8M", "7T", "6T", "5T"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L30", "7L35", "6L35", "5L35"], + cut: ["6M", "5M"], + defog: ["8E", "7T", "7E", "6E", "5E"], + dig: ["8M", "6M", "5M"], + doubleteam: ["8E", "7M", "7L8", "6M", "6L8", "5M", "5L8", "5S0"], + dragonbreath: ["8L9", "7L31", "6L31", "5L31"], + dragonclaw: ["8M", "8L39", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + dragonpulse: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + earthquake: ["8M", "7M", "6M", "5M"], + endeavor: ["8L45", "7T", "7L38", "6T", "6L38", "5T", "5L38"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + headsmash: ["8E", "7E", "6E", "5E", "5S0"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5E"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + meteorbeam: ["8T"], + pluck: ["8L15", "7L15", "6L15", "5M", "5L15"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L18", "7L25", "6L25", "5L25"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L3", "7L5", "6L5", "5L5"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L27", "7L11", "6L11", "5L11", "5S0"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + stoneedge: ["8M", "7M", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + switcheroo: ["8E", "7E", "6E"], + tailwind: ["8L36", "7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + thrash: ["8L42", "7L50", "6L50", "5L51"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "8L21", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + wingattack: ["8L6", "7L1", "6L1", "5L1", "5S0"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 5, level: 15, gender: "M", moves: ["headsmash", "wingattack", "doubleteam", "scaryface"], pokeball: "cherishball"}, + ], + }, + archeops: { + learnset: { + acrobatics: ["8M", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L33", "7L21", "6L21", "5L21"], + airslash: ["8M"], + allyswitch: ["8M", "7T"], + ancientpower: ["8L12", "7L18", "6L18", "5L18"], + aquatail: ["7T", "6T", "5T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L30", "7L35", "6L35", "5L35"], + cut: ["6M", "5M"], + defog: ["7T"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "7L8", "6M", "6L8", "5M", "5L8"], + dragonbreath: ["8L9", "7L31", "6L31", "5L31"], + dragonclaw: ["8M", "8L41", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endeavor: ["8L51", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + meteorbeam: ["8T"], + outrage: ["8M", "7T", "6T", "5T"], + pluck: ["8L15", "7L15", "6L15", "5M", "5L15"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L18", "7L25", "6L25", "5L25"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L24", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L1", "7L1", "6L1", "5L1"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L27", "7L11", "6L11", "5L11"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skyattack: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["8L36", "7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + thrash: ["8L46", "7L61", "6L61", "5L61"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "8L21", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + wingattack: ["8L1", "7L1", "6L1", "5L1"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + trubbish: { + learnset: { + acidspray: ["8L6", "7L12", "6L12", "5L12"], + amnesia: ["8M", "8L9", "7L40", "6L40", "5L40"], + attract: ["8M", "7M", "6M", "5M"], + autotomize: ["8E", "7E"], + belch: ["8L33", "7L42", "6L42"], + clearsmog: ["8L12", "7L34", "6L34", "5L34"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + curse: ["8E", "7E", "6E", "5E"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + endure: ["8M"], + explosion: ["8L42", "7M", "7L47", "6M", "6L47", "5M", "5L47"], + facade: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gunkshot: ["8M", "8L39", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + haze: ["8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + mudsport: ["7E", "6E", "5E"], + painsplit: ["8L37", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisongas: ["8L1", "7L1", "6L1", "5L1"], + pound: ["8L1", "7L1", "6L1", "5L1"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recycle: ["8L3", "7T", "7L3", "6T", "6L3", "5T", "5L3"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "7E", "6E", "5E"], + rollout: ["8E", "7E", "6E", "5E"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8E", "7E", "6E", "5E"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + selfdestruct: ["8M", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludge: ["8L18", "7L18", "6L18", "5L18"], + sludgebomb: ["8M", "8L27", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spikes: ["8M", "7E", "6E", "5E"], + spite: ["7T", "6T", "5T"], + stockpile: ["8L21", "7L23", "6L23", "5L23"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swallow: ["8L21", "7L23", "6L23", "5L23"], + takedown: ["8L24", "7L25", "6L25", "5L25"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["8L30", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + toxicspikes: ["8M", "8L15", "7L7", "6L7", "5L7"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + }, + }, + garbodor: { + learnset: { + acidspray: ["8L1", "7L12", "6L12", "5L12"], + amnesia: ["8M", "8L9", "7L46", "6L46", "5L46"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["8L33", "7L49", "6L49"], + bodypress: ["8M"], + bodyslam: ["8M", "8L24", "7L25", "6L25", "5L25"], + clearsmog: ["8L12", "7L34", "6L34", "5L34"], + confide: ["7M", "6M"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + endure: ["8M"], + explosion: ["8L48", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + facade: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gunkshot: ["8M", "8L43", "7T", "7L54", "6T", "6L54", "5T", "5L54"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + metalclaw: ["8L1"], + painsplit: ["8L39", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisongas: ["8L1", "7L1", "6L1", "5L1"], + pound: ["8L1", "7L1", "6L1", "5L1"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recycle: ["8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + selfdestruct: ["8M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludge: ["8L18", "7L18", "6L18", "5L18"], + sludgebomb: ["8M", "8L27", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + spite: ["7T", "6T", "5T"], + stockpile: ["8L21", "7L23", "6L23", "5L23"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swallow: ["8L21", "7L23", "6L23", "5L23"], + takedown: ["8L1"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + toxic: ["8L30", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + toxicspikes: ["8M", "8L15", "7L1", "6L1", "5L1"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 5, level: 31}, + {generation: 6, level: 30}, + {generation: 7, level: 24}, + ], + }, + zorua: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["9M", "9L32", "8M", "8L32", "7L37", "6L37", "5L37"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + burningjealousy: ["8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + confide: ["7M", "6M"], + confuseray: ["9M"], + copycat: ["9E", "8E", "7E", "6E"], + counter: ["9E", "8E", "7E", "6E", "5E"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E"], + detect: ["9E", "8E", "7E", "6E", "5E"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41"], + encore: ["9M"], + endure: ["9M", "8M"], + extrasensory: ["9E", "8E", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28", "7L9", "6L9", "5L9"], + feintattack: ["7L17", "6L17", "5L17"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "9L48", "8M", "8L48", "7T", "7L29", "6T", "6L29", "5T", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L12", "8L12", "7L13", "6L13", "5L13"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L8", "8L8", "6M", "5M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "9L36", "8M", "8L36", "7L53", "6L53", "5L53"], + incinerate: ["6M", "5M"], + knockoff: ["9L24", "8L24", "7T", "6T", "5T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + memento: ["9E", "8E", "7E", "6E", "5E"], + nastyplot: ["9M", "9L44", "8M", "8L44", "7L49", "6L49", "5L49"], + nightdaze: ["9L40", "8L40", "7L57", "6L57", "5L57"], + nightshade: ["9M"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L45", "6L45", "5L45"], + pursuit: ["7L5", "6L5", "5L5"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L16", "8M", "8L16", "7L21", "6L21", "5L21"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shadowclaw: ["9M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + torment: ["9L4", "8L4", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + }, + }, + zoruahisui: { + learnset: { + agility: ["9M", "9L32"], + bittermalice: ["9L40"], + calmmind: ["9M"], + comeuppance: ["9E"], + confuseray: ["9M"], + curse: ["9L16"], + darkpulse: ["9M"], + detect: ["9E"], + dig: ["9M"], + endure: ["9M"], + extrasensory: ["9E"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + foulplay: ["9M", "9L48"], + gigaimpact: ["9M"], + hex: ["9M"], + honeclaws: ["9L8"], + hyperbeam: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9L24"], + leer: ["9L1"], + memento: ["9E"], + nastyplot: ["9M", "9L44"], + nightshade: ["9M"], + phantomforce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + shadowball: ["9M", "9L36"], + shadowclaw: ["9M"], + shadowsneak: ["9L12"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snowscape: ["9M"], + spite: ["9L28"], + substitute: ["9M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L20"], + terablast: ["9M"], + thief: ["9M"], + torment: ["9L4"], + trick: ["9M"], + uturn: ["9M"], + willowisp: ["9M"], + }, + }, + zoroark: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + agility: ["9M", "9L34", "8M", "8L34", "7L39", "6L39", "5L39", "5S0"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["9M"], + burningjealousy: ["8T"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "6S1", "5T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "7L44", "6M", "6L44", "5M", "5L44", "5S0"], + encore: ["8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28"], + feintattack: ["7L17", "6L17", "5L17"], + flamethrower: ["9M", "8M", "7M", "6M", "6S1", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "9L58", "8M", "8L58", "7T", "7L29", "6T", "6L29", "5T", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L12", "8L12", "7L13", "6L13", "6S2", "5L13"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L1", "8L1", "7L1", "6M", "6L1", "5M", "5L1"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypervoice: ["9M", "8M", "7T", "6T", "5T"], + imprison: ["9M", "9L40", "8M", "8L40", "7L1", "6L1", "5L59"], + incinerate: ["6M", "5M"], + knockoff: ["9L24", "8L24", "7T", "6T", "5T"], + laserfocus: ["7T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L52", "8M", "8L52", "7L54", "6L54", "6S2", "5L54"], + nightdaze: ["9L46", "8L46", "7L1", "6L1", "5L64"], + nightshade: ["9M"], + nightslash: ["9L0", "8L0", "7L1", "6L30", "5L30"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L49", "6L49", "6S2", "5L49", "5S0"], + pursuit: ["7L1", "6L1", "5L1"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + roar: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M", "8L16", "7L21", "6L21", "6S2", "5L21"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "6S1"], + snarl: ["9M", "8M", "7M", "6M", "5M", "5S0"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["6S1"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + torment: ["9L1", "8L1", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + }, + eventData: [ + {generation: 5, level: 50, gender: "M", nature: "Quirky", moves: ["agility", "embargo", "punishment", "snarl"], pokeball: "cherishball"}, + {generation: 6, level: 50, moves: ["sludgebomb", "darkpulse", "flamethrower", "suckerpunch"], pokeball: "ultraball"}, + {generation: 6, level: 45, gender: "M", nature: "Naughty", moves: ["scaryface", "furyswipes", "nastyplot", "punishment"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 25}, + ], + }, + zoroarkhisui: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L34"], + bittermalice: ["9L46", "9S0"], + bodyslam: ["9M"], + brickbreak: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + curse: ["9L16"], + darkpulse: ["9M"], + dig: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M", "9L58"], + gigaimpact: ["9M"], + grassknot: ["9M"], + happyhour: ["9S0"], + helpinghand: ["9M"], + hex: ["9M"], + honeclaws: ["9L1"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9L24"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + nastyplot: ["9M", "9L52", "9S0"], + nightshade: ["9M"], + phantomforce: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + scratch: ["9L1"], + shadowball: ["9M", "9L40"], + shadowclaw: ["9M", "9L0"], + shadowsneak: ["9L12"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + snarl: ["9M"], + snowscape: ["9M"], + spite: ["9L28"], + substitute: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L20"], + terablast: ["9M", "9S0"], + thief: ["9M"], + torment: ["9L1"], + trick: ["9M"], + uturn: ["9M", "9L1"], + willowisp: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, perfectIVs: 3, moves: ["happyhour", "bittermalice", "nastyplot", "terablast"], pokeball: "cherishball"}, + ], + }, + minccino: { + learnset: { + afteryou: ["8L28", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + aquatail: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L1", "7L3", "6L3"], + calmmind: ["8M", "7M", "6M", "5M"], + captivate: ["7L39", "6L39", "5L39"], + charm: ["8M", "8L16", "7L27", "6L27", "5L27"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleslap: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["8L8", "7M", "7L33", "6M", "6L33", "5M", "5L33"], + encore: ["8M", "8L24", "7L15", "6L15", "5L15"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M", "7E", "6E", "5E"], + flail: ["8E", "7E", "6E", "5E"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + growl: ["5L3"], + gunkshot: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "8L4", "7T", "7L7", "6T", "6L7", "5T", "5L7"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M", "8L44", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lastresort: ["8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + mudslap: ["7E", "6E", "5E"], + playrough: ["8M"], + pound: ["8L1", "7L1", "6L1", "5L1"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shockwave: ["7T", "6T"], + sing: ["8L12", "7L21", "6L21", "5L21"], + slam: ["8L40", "7L37", "6L37", "5L37"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "8L20", "7L19", "6L19", "5L19"], + tailslap: ["8M", "8L32", "7L25", "6L25", "5L25"], + tailwhip: ["8E", "7E", "6E", "5E"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + tickle: ["8L36", "7L9", "6L9", "5L9"], + toxic: ["7M", "6M", "5M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + wakeupslap: ["7L31", "6L31", "5L31"], + workup: ["8M", "7M", "5M"], + }, + }, + cinccino: { + learnset: { + afteryou: ["8L1", "7T", "6T", "5T"], + aquatail: ["7T", "6T", "5T"], + attract: ["8M", "7M", "6M", "5M"], + babydolleyes: ["8L1"], + bulletseed: ["8M", "8L1", "7L1", "6L1", "5L1"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L1"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["8L1", "7M", "6M", "5M"], + encore: ["8M", "8L1"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gunkshot: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L1", "7T", "6T", "5T"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["8L1", "7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + playrough: ["8M"], + pound: ["8L1"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockblast: ["8M", "8L1", "7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + shockwave: ["7T", "6T"], + sing: ["8L1", "7L1", "6L1", "5L1"], + slam: ["8L1"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "8L1"], + tailslap: ["8M", "8L1", "7L1", "6L1", "5L1"], + thief: ["8M", "7M", "6M", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + tickle: ["8L1", "7L1", "6L1", "5L1"], + toxic: ["7M", "6M", "5M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + }, + }, + gothita: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L46", "6L46", "5L46"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L3", "6L3", "5L3"], + covet: ["7T", "6T", "5T"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5E"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fakeout: ["9E", "8E"], + faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L10"], + feintattack: ["7L24", "6L24", "5L24"], + flash: ["6M", "5M"], + flatter: ["9L40", "8L40", "7L28", "6L28", "5L28"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["9L44", "8M", "8L44", "7L31", "6L31", "5L31"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + healbell: ["7T", "6T", "5T"], + healblock: ["7L33", "6L33", "5L33"], + healpulse: ["9E", "8E", "7E", "6E"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["9L24", "8L24"], + imprison: ["9M"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["9L48", "8M", "8L48", "7T", "7L48", "6T", "6L48", "5T", "5L48"], + meanlook: ["9E", "8E", "7E", "6E", "5E"], + miracleeye: ["7E", "6E", "5E"], + mirrorcoat: ["9E", "8E", "7E", "6E", "5E"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + playnice: ["9L4", "8L4", "7L8", "6L8"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], + psychic: ["9M", "9L36", "8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychicterrain: ["9M"], + psychup: ["9L33", "8L33", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "7L40", "6L40", "5M", "5L40"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L8", "8L8", "7L7", "6L7", "5L7"], + torment: ["9E", "8E", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + }, + gothorita: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L50", "6L50", "5L50"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1"], + covet: ["7T", "6T", "5T"], + darkpulse: ["9M", "8M", "7M", "6M"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L1"], + feintattack: ["7L24", "6L24", "5L24"], + flash: ["6M", "5M"], + flatter: ["9L46", "8L46", "7L28", "6L28", "5L28", "5S0", "5S1"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["9L52", "8M", "8L52", "7L31", "6L31", "5L31", "5S0", "5S1"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + healbell: ["7T", "6T", "5T"], + healblock: ["7L34", "6L34", "5L34"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hypnosis: ["9L24", "8L24"], + imprison: ["9M", "5S1"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["9L58", "8M", "8L58", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + metronome: ["9M"], + mirrorcoat: ["5S0"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + playnice: ["9L1", "8L1", "7L1", "6L1"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], + psychic: ["9M", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["9M"], + psychup: ["9L35", "8L35", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25", "5S0", "5S1"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "7L43", "6L43", "5M", "5L43"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L1", "8L1", "7L1", "6L1", "5L1"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 32, gender: "M", isHidden: true, moves: ["psyshock", "flatter", "futuresight", "mirrorcoat"]}, + {generation: 5, level: 32, gender: "M", isHidden: true, moves: ["psyshock", "flatter", "futuresight", "imprison"]}, + ], + encounters: [ + {generation: 5, level: 31}, + ], + }, + gothitelle: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M", "9L16", "8M", "8L16", "7L54", "6L54", "5L54"], + confide: ["7M", "6M"], + confusion: ["9L1", "8L1", "7L1", "6L1", "5L1"], + cosmicpower: ["8M"], + covet: ["7T", "6T", "5T"], + darkpulse: ["9M", "8M", "7M", "6M"], + doubleslap: ["7L14", "6L14", "5L14"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "7L19", "6M", "6L19", "5M", "5L19"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["9M", "8M", "7M", "6M", "5M"], + faketears: ["9M", "9L28", "8M", "8L28", "7L10", "6L10", "5L1"], + feintattack: ["7L24", "6L24", "5L24"], + flash: ["6M", "5M"], + flatter: ["9L48", "8L48", "7L28", "6L28", "5L28"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["9L56", "8M", "8L56", "7L31", "6L31", "5L31"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + healbell: ["7T", "6T", "5T"], + healblock: ["7L34", "6L34", "5L34"], + helpinghand: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + hypnosis: ["9L24", "8L24"], + imprison: ["9M", "8M"], + laserfocus: ["7T"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["9L64", "8M", "8L64", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + playnice: ["9L1", "8L1", "7L1", "6L1"], + pound: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psybeam: ["9M", "9L12", "8L12", "7L16", "6L16", "5L16"], + psychic: ["9M", "9L40", "8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["9M"], + psychup: ["9L35", "8L35", "7M", "6M", "5M"], + psyshock: ["9M", "9L20", "8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + telekinesis: ["7T", "7L45", "6L45", "5M", "5L45"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderbolt: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + tickle: ["9L1", "8L1", "7L1", "6L1", "5L1"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "8M", "7T", "6T", "5T"], + trickroom: ["9M", "8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 34}, + ], + }, + solosis: { + learnset: { + acidarmor: ["8E", "7E", "6E", "5E"], + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "8L28", "7T"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E"], + confusion: ["8L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L8", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L44", "7L31", "6L31", "5L31"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healblock: ["7L46", "6L46", "5L46"], + helpinghand: ["8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], + imprison: ["8M", "7E", "6E", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + magiccoat: ["7T", "6T", "5T"], + nightshade: ["7E", "6E", "5E"], + painsplit: ["8L33", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + powerswap: ["8M"], + protect: ["8M", "8L1", "7M", "6M", "5M"], + psybeam: ["8L12"], + psychic: ["8M", "8L36", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L4", "7L24", "6L24", "5L24"], + reflect: ["8M", "8L24", "7M", "7L3", "6M", "6L3", "5M", "5L3"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + rollout: ["7L7", "6L7", "5L7"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["7E", "6M", "6E", "5E"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L40", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "7L10", "6T", "6L10", "5T", "5L10"], + snore: ["8M", "7T", "6T", "5T"], + steelroller: ["8T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L48", "7T", "7L48", "6T", "6L48", "5T", "5L48"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + }, + duosion: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "8L28", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confusion: ["8L1"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L52", "7L31", "6L31", "5L31"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + healblock: ["7L50", "6L50", "5L50"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], + imprison: ["8M", "5D"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + magiccoat: ["7T", "6T", "5T"], + painsplit: ["8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], + powerswap: ["8M"], + protect: ["8M", "8L1", "7M", "6M", "5M"], + psybeam: ["8L12"], + psychic: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L1", "7L24", "6L24", "5L24", "5D"], + reflect: ["8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L46", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + steelroller: ["8T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T", "5D"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L58", "7T", "7L53", "6T", "6L53", "5T", "5L53"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 31}, + ], + }, + reuniclus: { + learnset: { + afteryou: ["7T", "6T", "5T"], + allyswitch: ["8M", "8L28", "7T"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + charm: ["8M", "8L16", "7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + confusion: ["8L1"], + dizzypunch: ["7L1", "6L41", "5L41"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + encore: ["8M"], + endeavor: ["8L1", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M", "8L56", "7L31", "6L31", "5L31"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L0"], + healblock: ["7L54", "6L54", "5L54"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "7L14", "6M", "6L14", "5M", "5L14"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "8L24", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + magiccoat: ["7T", "6T", "5T"], + megapunch: ["8M"], + painsplit: ["8L35", "7T", "7L34", "6T", "6L34", "5T", "5L34"], + powerswap: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "8L1", "7M", "6M", "5M"], + psybeam: ["8L12"], + psychic: ["8M", "8L40", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["8M"], + psychup: ["7M", "6M", "5M"], + psyshock: ["8M", "8L20", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + psywave: ["7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L1", "7L24", "6L24", "5L24"], + reflect: ["8M", "8L24", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + skillswap: ["8M", "8L48", "7T", "7L45", "6T", "6L45", "5T", "5L45"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "7L1", "6T", "6L1", "5T", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + steelroller: ["8T"], + storedpower: ["8M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + wonderroom: ["8M", "8L64", "7T", "7L59", "6T", "6L59", "5T", "5L59"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 34}, + ], + }, + ducklett: { + learnset: { + aerialace: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + aircutter: ["7E", "6E", "5E"], + airslash: ["7L27", "6L27", "5L27"], + aquajet: ["7E"], + aquaring: ["7L24", "6L24", "5L24"], + attract: ["7M", "6M", "5M"], + bravebird: ["7L41", "6L41", "5L41"], + brine: ["7E", "6E", "5E", "5D"], + bubblebeam: ["7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + defog: ["7T", "7L6", "6L6", "5L6", "5D"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + featherdance: ["7L21", "6L21", "5L21"], + fly: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gust: ["7E", "6E", "5E"], + hail: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["7L46", "6L46", "5L46"], + icebeam: ["7M", "6M", "5M"], + icywind: ["7T", "6T", "5T"], + liquidation: ["7T"], + luckychant: ["7E", "6E", "5E"], + mefirst: ["7E", "6E", "5E", "5D"], + mirrormove: ["7E", "6E", "5E"], + mudsport: ["7E", "6E"], + pluck: ["5M"], + protect: ["7M", "6M", "5M"], + raindance: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["7M", "7L30", "6M", "6L30", "5T", "5L30"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + steelwing: ["7M", "7E", "6M", "6E", "5E"], + substitute: ["7M", "6M", "5M"], + surf: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwind: ["7T", "7L37", "6T", "6L37", "5T", "5L37"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + watergun: ["7L1", "6L1", "5L1"], + waterpulse: ["7T", "7L13", "6T", "6L13", "5L13"], + watersport: ["7L3", "6L3", "5L3"], + wingattack: ["7L9", "6L9", "5L9"], + }, + }, + swanna: { + learnset: { + aerialace: ["7M", "7L15", "6M", "6L15", "5M", "5L15"], + airslash: ["7L27", "6L27", "5L27"], + aquaring: ["7L24", "6L24", "5L24"], + attract: ["7M", "6M", "5M"], + bravebird: ["7L47", "6L47", "5L47"], + bubblebeam: ["7L19", "6L19", "5L19"], + confide: ["7M", "6M"], + defog: ["7T", "7L1", "6L1", "5L1"], + dive: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + facade: ["7M", "6M", "5M"], + featherdance: ["7L21", "6L21", "5L21"], + fly: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["7M", "6M", "5M"], + hail: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["7L55", "6L55", "5L55"], + hyperbeam: ["7M", "6M", "5M"], + icebeam: ["7M", "6M", "5M"], + icywind: ["7T", "6T", "5T"], + liquidation: ["7T"], + pluck: ["5M"], + protect: ["7M", "6M", "5M"], + raindance: ["7M", "7L34", "6M", "6L34", "5M", "5L34"], + rest: ["7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["7M", "7L30", "6M", "6L30", "5T", "5L30"], + round: ["7M", "6M", "5M"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + skyattack: ["7T", "6T", "5T"], + sleeptalk: ["7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + steelwing: ["7M", "6M"], + substitute: ["7M", "6M", "5M"], + surf: ["7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwind: ["7T", "7L40", "6T", "6L40", "5T", "5L40"], + toxic: ["7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + watergun: ["7L1", "6L1", "5L1"], + waterpulse: ["7T", "7L13", "6T", "6L13", "5L13"], + watersport: ["7L1", "6L1", "5L1"], + wingattack: ["7L1", "6L1", "5L1"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + vanillite: { + learnset: { + acidarmor: ["8L32", "7L31", "6L31", "5L31"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L7", "6L7", "5L7"], + attract: ["8M", "7M", "6M", "5M"], + auroraveil: ["8E"], + autotomize: ["8E", "7E", "6E", "5E"], + avalanche: ["8M", "8L16", "7L19", "6L19", "5L19"], + blizzard: ["8M", "8L44", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + explosion: ["8E", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + hail: ["8M", "8L20", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + harden: ["8L1", "7L4", "6L4", "5L4"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M"], + icebeam: ["8M", "8L40", "7M", "7L35", "6M", "6L35", "5M", "5L35"], + iceshard: ["8E", "7E", "6E", "5E"], + iciclecrash: ["8E"], + iciclespear: ["8M", "8L24", "7L1", "6L1", "5L1"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + imprison: ["8M", "7E", "6E", "5E"], + irondefense: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + mirrorcoat: ["8L36", "7L44", "6L44", "5L44"], + mirrorshot: ["7L26", "6L26", "5L26"], + mist: ["8L8", "7L16", "6L16", "5L16"], + naturalgift: ["7E", "6E", "5E"], + powdersnow: ["7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sheercold: ["8L48", "7L53", "6L53", "5L53"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "8L4", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L10", "6T", "6L10", "5T", "5L10"], + waterpulse: ["7T", "7E", "6T", "6E", "5E"], + }, + }, + vanillish: { + learnset: { + acidarmor: ["8L32", "7L31", "6L31", "5L31"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["8M", "8L16", "7L19", "6L19", "5L19"], + blizzard: ["8M", "8L50", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + hail: ["8M", "8L20", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + harden: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["8M"], + icebeam: ["8M", "8L44", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + iceshard: ["5D"], + iciclespear: ["8M", "8L24", "7L1", "6L1", "5L1"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + imprison: ["8M", "5D"], + irondefense: ["8M", "7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + mirrorcoat: ["8L38", "7L47", "6L47", "5L47"], + mirrorshot: ["7L26", "6L26", "5L26", "5D"], + mist: ["8L1", "7L16", "6L16", "5L16"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sheercold: ["8L56", "7L58", "6L58", "5L58"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "8L1", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + waterpulse: ["7T", "6T"], + }, + }, + vanilluxe: { + learnset: { + acidarmor: ["8L32", "7L31", "6L31", "5L31"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["8M", "8L16", "7L19", "6L19", "5L19"], + beatup: ["8M"], + blizzard: ["8M", "8L52", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + explosion: ["7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1", "7L1", "6L1"], + frostbreath: ["7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "8L20", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + harden: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M"], + icebeam: ["8M", "8L44", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + iciclecrash: ["8L1"], + iciclespear: ["8M", "8L24", "7L1", "6L1", "5L1"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + imprison: ["8M"], + irondefense: ["8M", "7T", "6T", "5T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + mirrorcoat: ["8L38", "7L50", "6L50", "5L50"], + mirrorshot: ["7L26", "6L26", "5L26"], + mist: ["8L1", "7L16", "6L16", "5L16"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sheercold: ["8L60", "7L1", "6L1", "5L67"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "8L1", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "8L28", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + waterpulse: ["7T", "6T"], + weatherball: ["8M", "8L1", "7L1", "6L1", "5L1"], + }, + }, + deerling: { + learnset: { + agility: ["9M", "9E", "7E", "6E", "5E"], + aromatherapy: ["7L28", "6L28", "5L28", "5S0"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M", "9E", "7E", "6E", "5E"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16"], + camouflage: ["7L1", "6L1", "5L1"], + charm: ["9M", "9L32", "7L36", "6L36", "5L36"], + confide: ["7M", "6M"], + dig: ["9M"], + doubleedge: ["9L37", "7L46", "6L46", "5L46"], + doublekick: ["9L10", "7L10", "6L10", "5L10"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + facade: ["9M", "7M", "6M", "5M"], + faketears: ["9M", "9E", "7E", "6E", "5E"], + feintattack: ["7L16", "6L16", "5L16", "5S0"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + grassknot: ["9M", "7M", "6M", "5M"], + grasswhistle: ["7E", "6E", "5E"], + grassyterrain: ["9M"], + growl: ["9L4", "7L4", "6L4", "5L4"], + headbutt: ["9E", "7E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + jumpkick: ["7L24", "6L24", "5L24", "5S0"], + lastresort: ["7T", "6T", "5T"], + leafstorm: ["9M"], + leechseed: ["9L13", "7L13", "6L13", "5L13"], + lightscreen: ["9M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + naturalgift: ["7E", "6E", "5E"], + naturepower: ["7M", "7L41", "6M", "6L41", "5L41"], + odorsleuth: ["7E", "6E", "5E"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + sandattack: ["9L7", "7L7", "6L7", "5L7"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T", "5T"], + shadowball: ["9M", "7M", "6M", "5M"], + sleeptalk: ["9M", "9E", "7M", "7E", "6M", "6E", "5T", "5E"], + snore: ["7T", "6T", "5T"], + solarbeam: ["9M", "9L42", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synthesis: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20", "5S0"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + worryseed: ["9E", "7T", "7E", "6T", "6E", "5T", "5E"], + zenheadbutt: ["9M", "9L24"], + }, + eventData: [ + {generation: 5, level: 30, gender: "F", isHidden: true, moves: ["feintattack", "takedown", "jumpkick", "aromatherapy"]}, + ], + }, + sawsbuck: { + learnset: { + agility: ["9M"], + aromatherapy: ["7L28", "6L28", "5L28"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L16"], + camouflage: ["7L1", "6L1", "5L1"], + charm: ["9M", "9L36", "7L36", "6L36", "5L36"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + dig: ["9M"], + doubleedge: ["9L44", "7L52", "6L52", "5L52"], + doublekick: ["9L10", "7L10", "6L10", "5L10"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "9L28", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + facade: ["9M", "7M", "6M", "5M"], + faketears: ["9M"], + feintattack: ["7L16", "6L16", "5L16"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "7T", "6T", "5T"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1", "5L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + hornleech: ["9L0", "7L1", "6L37", "5L37"], + hyperbeam: ["9M", "7M", "6M", "5M"], + jumpkick: ["7L24", "6L24", "5L24"], + lastresort: ["7T", "6T", "5T"], + leafstorm: ["9M"], + leechseed: ["9L13", "7L13", "6L13", "5L13"], + lightscreen: ["9M", "7M", "6M", "5M"], + magicalleaf: ["9M"], + megahorn: ["9L1", "7L1", "6L1", "5L1"], + naturepower: ["7M", "7L44", "6M", "6L44", "5L44"], + playrough: ["9M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["7M", "6M", "5M"], + sandattack: ["9L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T", "5T"], + shadowball: ["9M", "7M", "6M", "5M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + smartstrike: ["9M"], + snore: ["7T", "6T", "5T"], + solarbeam: ["9M", "9L52", "7M", "7L60", "6M", "6L60", "5M", "5L60"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "7M", "6M", "5M"], + synthesis: ["7T", "6T", "5T"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + takedown: ["9M", "9L20", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M", "5M"], + workup: ["7M", "5M"], + worryseed: ["7T", "6T", "5T"], + zenheadbutt: ["9M", "9L24"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + emolga: { + learnset: { + acrobatics: ["8M", "8L25", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L55", "7L46", "6L46", "5L46"], + airslash: ["8M", "7E", "6E", "5E", "5D"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "7E", "6E", "5E"], + charge: ["8L20", "7L10", "6L10", "5L10"], + chargebeam: ["7M", "6M", "5M"], + charm: ["8M", "7E", "6E", "5E", "5D"], + confide: ["7M", "6M"], + covet: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + cut: ["6M", "5M"], + defog: ["8E", "7T"], + discharge: ["8L50", "7L50", "6L50", "5L50"], + doubleteam: ["8L5", "7M", "7L19", "6M", "6L19", "5M", "5L19"], + dualwingbeat: ["8T"], + eerieimpulse: ["8M"], + electroball: ["8M", "7L26", "6L26", "5L26"], + electroweb: ["8M", "7T", "6T"], + encore: ["8M", "8L35", "7L38", "6L38", "5L38"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + iondeluge: ["7E", "6E"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + knockoff: ["7T", "6T", "5T"], + lastresort: ["7T", "6T", "5T"], + lightscreen: ["8M", "8L45", "7M", "7L34", "6M", "6L34", "5M", "5L34"], + nuzzle: ["8L1", "7L15", "6L15"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7L16", "6L16", "5L16"], + quickattack: ["8L10", "7L4", "6L4", "5L4", "5D"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shockwave: ["8E", "7T", "7L22", "7E", "6T", "6L22", "6E", "5L22", "5E"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M"], + spark: ["8L30", "7L13", "6L13", "5L13"], + speedswap: ["8M", "7E"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwhip: ["8L1", "7L7", "6L7", "5L7"], + tailwind: ["7T", "6T", "5T"], + taunt: ["8M", "7M", "6M", "5M"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L15", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + uturn: ["8M", "7M", "6M", "5M"], + voltswitch: ["8M", "8L40", "7M", "7L42", "6M", "6L42", "5M", "5L42"], + wildcharge: ["8M", "7M", "6M", "5M"], + }, + }, + karrablast: { + learnset: { + acidspray: ["8L16"], + aerialace: ["7M", "6M", "5M"], + attract: ["8M", "7M", "6M", "5M"], + bugbite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + bugbuzz: ["8M", "8L44", "7L28", "6L28", "5L28", "5S0"], + confide: ["7M", "6M"], + counter: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M"], + doubleedge: ["8L48", "7L56", "6L56", "5L56"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "7T", "7E", "6T", "6E"], + encore: ["8M"], + endure: ["8M", "8L8", "7L8", "6L8", "5L8", "5D"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25", "5S0"], + feintattack: ["7E", "6E", "5E"], + flail: ["8L24", "7L49", "6L49", "5L49", "5S1"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L16", "6L16", "5L16", "5S0"], + furycutter: ["8L4", "7L13", "6L13", "5L13"], + gigadrain: ["8M", "7T", "6T", "5T"], + headbutt: ["8L20", "7L20", "6L20", "5L20", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + hornattack: ["7E", "6E", "5E"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + leer: ["8L1", "7L4", "6L4", "5L4"], + megahorn: ["8M", "7E", "6E", "5E", "5D", "5S1"], + nightslash: ["8E"], + peck: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L28", "7L40", "6L40", "5L40"], + screech: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + slash: ["8E", "7L32", "6L32", "5L32"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L36", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + takedown: ["8L40", "7L37", "6L37", "5L37", "5S1"], + toxic: ["7M", "6M", "5M"], + xscissor: ["8M", "8L32", "7M", "7L44", "6M", "6L44", "5M", "5L44", "5S1"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["furyattack", "headbutt", "falseswipe", "bugbuzz"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["megahorn", "takedown", "xscissor", "flail"], pokeball: "cherishball"}, + ], + }, + escavalier: { + learnset: { + acidspray: ["8L16"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L44", "7L28", "6L28", "5L28"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleedge: ["8L1", "7L1", "6L1"], + doubleteam: ["7M", "6M", "5M"], + drillrun: ["8M", "7T", "6T"], + encore: ["8M"], + endure: ["8M", "8L1"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + fellstinger: ["8L1", "7L1", "6L1"], + flail: ["8L1"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L16", "6L16", "5L16"], + furycutter: ["8L1"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "8L48", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + headbutt: ["8L20", "7L20", "6L20", "5L20"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "8L28", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + ironhead: ["8M", "8L40", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + megahorn: ["8M"], + metalburst: ["8L52"], + peck: ["8L1", "7L1", "6L1", "5L1"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + quickguard: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + razorshell: ["8M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M", "8L24", "7L49", "6L49", "5L49"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L1"], + screech: ["8M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + slash: ["7L32", "6L32", "5L32"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L36", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + takedown: ["8L1"], + taunt: ["8M"], + toxic: ["7M", "6M", "5M"], + twineedle: ["7L1", "6L1", "5L1"], + xscissor: ["8M", "8L32", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + }, + }, + foongus: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L1", "5L1"], + afteryou: ["7T", "6T", "5T"], + astonish: ["9L1", "8L1", "7L8", "6L8", "5L8"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L12", "6L12", "5L12"], + bodyslam: ["9M", "8M", "7E", "6E", "5E"], + bulletseed: ["9M"], + clearsmog: ["9L20", "8L20", "7L39", "6L39", "5L39"], + confide: ["7M", "6M"], + defensecurl: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "8M", "7E", "6E", "5E"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L20", "6L20", "5L20"], + flash: ["6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "7E", "6T", "6E", "5T", "5E"], + gigadrain: ["9M", "9L28", "8M", "8L28", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyterrain: ["9M"], + growth: ["9L4", "8L4", "7L6", "7E", "6L6", "6E", "5L6", "5E"], + hiddenpower: ["7M", "6M", "5M"], + ingrain: ["9L32", "8L32", "7L18", "6L18", "5L18"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "7L15", "6L15", "5L15"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M"], + poisonpowder: ["9E", "8E", "7E", "6E", "5E"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + ragepowder: ["9L40", "8L40", "7L45", "6L45", "5L45"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rollout: ["9E", "8E", "7E", "6E", "5E"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "9L44", "8M", "8L44", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + spore: ["9L48", "8L48", "7L50", "6L50", "5L50"], + stunspore: ["9L8", "8L8", "7E", "6E", "5E"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["9L24", "8L24", "7L24", "6L24", "5L24"], + synthesis: ["9L16", "8L16", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + terablast: ["9M"], + toxic: ["9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + worryseed: ["9E", "8E", "7T", "6T", "5T"], + }, + }, + amoonguss: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L1", "5L1"], + afteryou: ["7T", "6T", "5T"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L1", "6L1", "5L1"], + bodyslam: ["9M", "8M"], + bulletseed: ["9M"], + clearsmog: ["9L20", "8L20", "8S0", "7L43", "6L43", "5L43"], + confide: ["7M", "6M"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L20", "6L20", "5L20"], + flash: ["6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["9M", "9L28", "8M", "8L28", "7T", "7L28", "6T", "6L28", "5T", "5L28"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "7L1", "6L1", "5L1"], + hex: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + ingrain: ["9L32", "8L32", "7L18", "6L18", "5L18"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12", "7L15", "6L15", "5L15"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "6M", "5M"], + pollenpuff: ["9M", "8M"], + protect: ["9M", "8M", "8S0", "7M", "6M", "5M"], + ragepowder: ["9L42", "8L42", "8S0", "7L54", "6L54", "5L54"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + seedbomb: ["9M", "8M", "7T", "6T", "5T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "9L48", "8M", "8L48", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + spore: ["9L54", "8L54", "8S0", "7L62", "6L62", "5L62"], + stompingtantrum: ["9M", "8M", "7T"], + stunspore: ["9L1", "8L1"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + sweetscent: ["9L24", "8L24", "7L24", "6L24", "5L24"], + synthesis: ["9L16", "8L16", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + terablast: ["9M"], + toxic: ["9L36", "8L36", "7M", "7L32", "6M", "6L32", "5M", "5L32"], + venoshock: ["9M", "8M", "7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + eventData: [ + {generation: 8, level: 50, shiny: true, gender: "F", nature: "Sassy", ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 0}, isHidden: true, moves: ["clearsmog", "spore", "protect", "ragepowder"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 5, level: 37}, + {generation: 5, level: 35, isHidden: true}, + ], + }, + frillish: { + learnset: { + absorb: ["8L1", "7L5", "6L5", "5L5"], + acidarmor: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M"], + brine: ["8M", "8L24", "7L32", "6L32", "5L32"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["8E", "7L13", "6L13", "5L13"], + confide: ["7M", "6M"], + confuseray: ["8E", "7E", "6E", "5E"], + constrict: ["7E", "6E", "5E"], + darkpulse: ["8M", "7M", "6M", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + destinybond: ["8L44"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + hail: ["8M", "7M", "6M", "5M"], + hex: ["8M", "8L20", "7L43", "6L43", "5L43"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L41", "7L49", "6L49", "5L49"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + magiccoat: ["7T", "6T", "5T"], + mist: ["8E", "7E", "6E", "5E"], + nightshade: ["8L8", "7L9", "6L9", "5L9"], + ominouswind: ["7L27", "6L27", "5L27"], + painsplit: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + poisonsting: ["8L4"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "8L16", "7M", "7L37", "6M", "6L37", "5M", "5L37"], + recover: ["8L28", "7L17", "7E", "6L17", "6E", "5L17", "5E"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L32", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + strengthsap: ["8E"], + substitute: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L22", "6T", "6L22", "5L22"], + watersport: ["7L1", "6L1", "5L1"], + waterspout: ["8L48", "7L61", "6L61", "5L61"], + whirlpool: ["8M", "8L36"], + willowisp: ["8M", "7M", "6M", "5M"], + wringout: ["7L55", "6L55", "5L55"], + }, + }, + jellicent: { + learnset: { + absorb: ["8L1", "7L1", "6L1", "5L1"], + acidarmor: ["8L1"], + attract: ["8M", "7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + blizzard: ["8M", "7M", "6M", "5M"], + brine: ["8M", "8L24", "7L32", "6L32", "5L32", "5S0"], + bubble: ["7L1", "6L1", "5L1"], + bubblebeam: ["7L13", "6L13", "5L13"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M", "5T"], + dazzlinggleam: ["8M", "7M", "6M"], + destinybond: ["8L48"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + hex: ["8M", "8L20", "7L45", "6L45", "5L45"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L43", "7L53", "6L53", "5L53"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icebeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + magiccoat: ["7T", "6T", "5T"], + muddywater: ["8M"], + nightshade: ["8L1", "7L1", "6L1", "5L1"], + ominouswind: ["7L27", "6L27", "5L27", "5S0"], + painsplit: ["7T", "6T", "5T"], + poisonsting: ["8L1"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["8M", "8L16", "7M", "7L37", "6M", "6L37", "5M", "5L37", "5S0"], + recover: ["8L28", "7L17", "6L17", "5L17"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L32", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + waterfall: ["8M", "7M", "6M", "5M"], + watergun: ["8L1"], + waterpulse: ["8L12", "7T", "7L22", "6T", "6L22", "5L22", "5S0"], + watersport: ["7L1", "6L1", "5L1"], + waterspout: ["8L54", "7L1", "6L1", "5L69"], + whirlpool: ["8M", "8L36"], + willowisp: ["8M", "7M", "6M", "5M"], + wringout: ["7L1", "6L1", "5L61"], + }, + eventData: [ + {generation: 5, level: 40, isHidden: true, moves: ["waterpulse", "ominouswind", "brine", "raindance"]}, + ], + encounters: [ + {generation: 5, level: 5}, + ], + }, + alomomola: { + learnset: { + acrobatics: ["9M"], + aquajet: ["9L9", "7L9", "6L9", "5L9"], + aquaring: ["9L5", "7L5", "6L5", "5L5", "5D"], + attract: ["7M", "6M", "5M"], + batonpass: ["9M"], + blizzard: ["9M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bounce: ["9E", "7T", "6T", "5T"], + brine: ["9L41", "7L41", "6L41", "5L41"], + calmmind: ["9M", "7M", "6M", "5M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["6M", "5M"], + doubleslap: ["7L13", "6L13", "5L13"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "9E", "7E", "6E", "5E"], + facade: ["9M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M"], + hail: ["7M", "6M", "5M"], + healingwish: ["9L29", "7L1", "6L1", "5L57"], + healpulse: ["7L17", "6L17", "5L17"], + helpinghand: ["9M", "9L13", "7T", "7L1", "6T", "6L49", "5T", "5L49"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "9L55", "7L1", "6L1", "5L61"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M", "6M", "5M"], + icywind: ["9M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + liquidation: ["9M", "7T"], + magiccoat: ["7T", "6T", "5T"], + mirrorcoat: ["9E", "7E", "6E", "5E", "5D"], + mist: ["9E", "7E", "6E", "5E"], + mistyterrain: ["9M"], + painsplit: ["9E", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + playnice: ["9L1", "7L1"], + playrough: ["9M"], + pound: ["9L1", "7L1", "6L1", "5L1"], + protect: ["9M", "9L21", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + psychic: ["9M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + refresh: ["7E", "6E", "5E"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + safeguard: ["9L45", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + scald: ["7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "7M", "6M", "5M"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + snowscape: ["9M"], + soak: ["9L33", "7L33", "6L33", "5L33"], + substitute: ["9M", "7M", "6M", "5M"], + surf: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["9E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + wakeupslap: ["7L29", "6L29", "5L29"], + waterfall: ["9M", "7M", "6M", "5M"], + waterpulse: ["9M", "9L25", "7T", "7L25", "6T", "6L25", "5L25"], + watersport: ["7L1", "6L1", "5L1"], + whirlpool: ["9L49", "7L49"], + wideguard: ["9L13", "7L1", "6L1", "5L53"], + wish: ["9L37", "7L37", "6L37", "5L37"], + zenheadbutt: ["9M"], + }, + }, + joltik: { + learnset: { + absorb: ["8L1", "7L1"], + agility: ["8M", "8L24", "7L37", "6L37", "5L37"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bugbite: ["8L8", "7T", "7L18", "6T", "6L18", "5T", "5L18"], + bugbuzz: ["8M", "8L48", "7L48", "6L48", "5L48"], + camouflage: ["7E", "6E"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crosspoison: ["8M", "7E", "6E", "5E"], + cut: ["6M", "5M"], + disable: ["7E", "6E", "5E"], + discharge: ["8L37", "7L45", "6L45", "5L45"], + doubleteam: ["8E", "7M", "6M", "5M"], + electroball: ["8M", "8L20", "7L29", "6L29", "5L29"], + electroweb: ["8M", "8L4", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L12", "6L12", "5L12"], + gastroacid: ["8L44", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + gigadrain: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["8E", "7M", "6M"], + leechlife: ["8M", "7M", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + lunge: ["8E", "7E"], + magnetrise: ["7T", "6T", "5T"], + pinmissile: ["8M", "7E", "6E", "5E"], + poisonjab: ["8M", "7M", "6M", "5M"], + poisonsting: ["8E", "7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockclimb: ["7E", "6E", "5E"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L40", "7L7", "6L7", "5L7"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], + skittersmack: ["8T"], + slash: ["8L32", "7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + spiderweb: ["7L1", "6L1", "5L1"], + stringshot: ["8L12", "7L1", "6L1", "5L1"], + strugglebug: ["8E", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L28", "7L40", "6L40", "5L40"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "8L16", "7M", "7L4", "6M", "6L4", "5M", "5L4"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + }, + galvantula: { + learnset: { + absorb: ["8L1", "7L1"], + agility: ["8M", "8L24", "7L40", "6L40", "5L40"], + attract: ["8M", "7M", "6M", "5M"], + bounce: ["8M", "7T", "6T", "5T"], + bugbite: ["8L1", "7T", "7L18", "6T", "6L18", "5T", "5L18"], + bugbuzz: ["8M", "8L56", "7L60", "6L60", "5L60"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crosspoison: ["8M"], + cut: ["6M", "5M"], + disable: ["5D"], + discharge: ["8L39", "7L54", "6L54", "5L54"], + doubleteam: ["7M", "6M", "5M"], + electroball: ["8M", "8L20", "7L29", "6L29", "5L29", "5D"], + electroweb: ["8M", "8L1", "7T", "7L15", "6T", "6L15", "5T", "5L15"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L12", "6L12", "5L12"], + gastroacid: ["8L50", "7T", "7L23", "6T", "6L23", "5T", "5L23"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + leechlife: ["8M", "7M", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + pinmissile: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["5D"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L44", "7L7", "6L7", "5L7"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "7L34", "6T", "6L34", "5T", "5L34"], + skittersmack: ["8T"], + slash: ["8L32", "7L26", "6L26", "5L26"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + speedswap: ["8M"], + spiderweb: ["7L1", "6L1", "5L1"], + stickyweb: ["8L0", "7L1", "6L1"], + stringshot: ["8L12", "7L1", "6L1", "5L1"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L28", "7L46", "6L46", "5L46"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "8L16", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + ferroseed: { + learnset: { + acidspray: ["8E", "7E", "6E"], + assurance: ["8M"], + attract: ["8M"], + bulletseed: ["8M", "7E", "6E", "5E"], + confide: ["7M", "6M"], + curse: ["8L41", "7L9", "6L9", "5L9"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + explosion: ["8L50", "7M", "7L55", "6M", "6L55", "5M", "5L55"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "8L20", "7M", "7L52", "6M", "6L52", "5M", "5L52"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gravity: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + gyroball: ["8M", "8L45", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + harden: ["8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + ingrain: ["8L15", "7L35", "6L35", "5L35"], + irondefense: ["8M", "8L35", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + ironhead: ["8M", "8L25", "7T", "7L43", "6T", "6L43", "5T", "5L43"], + knockoff: ["8E", "7T", "6T"], + leechseed: ["8E", "7E", "6E", "5E"], + magnetrise: ["7T", "6T", "5T"], + metalclaw: ["8L5", "7L14", "6L14", "5L14"], + mirrorshot: ["7L30", "6L30", "5L30"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "7L47", "6M", "6L47", "5M", "5L47"], + pinmissile: ["8M", "8L10", "7L18", "6L18", "5L18"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + rockclimb: ["7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rollout: ["7L6", "6L6", "5L6"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + selfdestruct: ["8M", "8L30", "7L38", "6L38", "5L38"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M", "7E", "6E", "5E"], + stealthrock: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["8E", "7M", "6M", "5M"], + worryseed: ["7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + ferrothorn: { + learnset: { + aerialace: ["7M", "6M", "5M"], + assurance: ["8M"], + attract: ["8M"], + block: ["7T", "6T"], + bodypress: ["8M"], + brutalswing: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + bulletseed: ["8M"], + confide: ["7M", "6M"], + curse: ["8L43", "7L1", "6L1", "5L1"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + explosion: ["8L56", "7M", "7L67", "6M", "6L67", "5M", "5L67"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "8L20", "7M", "7L61", "6M", "6L61", "5M", "5L61"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gyroball: ["8M", "8L49", "7M", "7L21", "6M", "6L21", "5M", "5L21"], + harden: ["8L1", "7L1", "6L1", "5L1"], + heavyslam: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + ingrain: ["8L15", "7L35", "6L35", "5L35"], + irondefense: ["8M", "8L35", "7T", "7L26", "6T", "6L26", "5T", "5L26"], + ironhead: ["8M", "8L25", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + knockoff: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + metalclaw: ["8L1", "7L14", "6L14", "5L14"], + mirrorshot: ["7L30", "6L30", "5L30"], + naturepower: ["7M", "6M"], + payback: ["8M", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + pinmissile: ["8M", "8L1", "7L18", "6L18", "5L18"], + poisonjab: ["8M", "7M", "6M", "5M"], + powerwhip: ["8M", "8L0", "7L1", "6L40", "5L40"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + rockclimb: ["7L1", "6L1", "5L1"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rollout: ["7L1", "6L1", "5L1"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + selfdestruct: ["8M", "8L30", "7L38", "6L38", "5L38"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spikes: ["8M"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1", "5L1"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + worryseed: ["7T", "6T", "5T"], + }, + }, + klink: { + learnset: { + assurance: ["8M"], + autotomize: ["8L20", "7L31", "6L31", "5L31"], + bind: ["8L4", "7T", "7L21", "6T", "6L21", "5T", "5L21"], + charge: ["8L8", "7L6", "6L6", "5L6"], + chargebeam: ["8L12", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + confide: ["7M", "6M"], + discharge: ["8L24", "7L42", "6L42", "5L42"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + geargrind: ["8L32", "7L16", "6L16", "5L16"], + gravity: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "8L48", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + irondefense: ["8M", "7T", "6T", "5T"], + lockon: ["8L36", "7L50", "6L50", "5L51"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T"], + metalsound: ["8L16", "7L45", "6L45", "5L45"], + mirrorshot: ["7L36", "6L36", "5L36"], + powergem: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L28", "7L39", "6L39", "5L39"], + secretpower: ["6M"], + shiftgear: ["8L40", "7L48", "6L48", "5L48"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L1", "7L11", "6L11", "5L11"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + visegrip: ["8L1", "7L1", "6L1", "5L1"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L44", "7L54", "6L54", "5L54"], + }, + }, + klang: { + learnset: { + allyswitch: ["8M", "7T"], + assurance: ["8M"], + autotomize: ["8L20", "7L31", "6L31", "5L31"], + bind: ["8L1", "7T", "7L21", "6T", "6L21", "5T", "5L21"], + charge: ["8L1", "7L1", "6L1", "5L1"], + chargebeam: ["8L12", "7M", "7L26", "6M", "6L26", "5M", "5L26", "5D"], + confide: ["7M", "6M"], + discharge: ["8L24", "7L44", "6L44", "5L44"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + geargrind: ["8L32", "7L1", "6L1", "5L1"], + gravity: ["7T", "6T", "5T", "5D"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "8L54", "7M", "7L64", "6M", "6L64", "5M", "5L64"], + irondefense: ["8M", "7T", "6T", "5T"], + lockon: ["8L36", "7L56", "6L56", "5L56"], + magiccoat: ["7T", "6T", "5T"], + magnetrise: ["7T", "6T", "5T", "5D"], + metalsound: ["8L16", "7L48", "6L48", "5L48"], + mirrorshot: ["7L36", "6L36", "5L36"], + powergem: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L28", "7L40", "6L40", "5L40"], + secretpower: ["6M"], + shiftgear: ["8L42", "7L52", "6L52", "5L52"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L1", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + visegrip: ["8L1", "7L1", "6L1", "5L1"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L48", "7L60", "6L60", "5L60"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + klinklang: { + learnset: { + allyswitch: ["8M", "7T"], + assurance: ["8M"], + autotomize: ["8L20", "7L31", "6L31", "5L31"], + bind: ["8L1", "7T", "7L21", "6T", "6L21", "5T", "5L21"], + charge: ["8L1", "7L1", "6L1", "5L1"], + chargebeam: ["8L12", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + confide: ["7M", "6M"], + discharge: ["8L24", "7L44", "6L44", "5L44"], + doubleteam: ["7M", "6M", "5M"], + electricterrain: ["8M", "8L64"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + geargrind: ["8L32", "7L1", "6L1", "5L1"], + gearup: ["8L1", "7L1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "8L56", "7M", "7L72", "6M", "6L72", "5M", "5L72"], + irondefense: ["8M", "7T", "6T", "5T"], + lockon: ["8L36", "7L60", "6L60", "5L60"], + magiccoat: ["7T", "6T", "5T"], + magneticflux: ["8L1", "7L1", "6L1"], + magnetrise: ["7T", "6T", "5T"], + metalsound: ["8L16", "7L48", "6L48", "5L48"], + mirrorshot: ["7L36", "6L36", "5L36"], + powergem: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L28", "7L40", "6L40", "5L40"], + secretpower: ["6M"], + shiftgear: ["8L42", "7L54", "6L54", "5L54"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thundershock: ["8L1", "7L1", "6L1", "5L1"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + visegrip: ["8L1", "7L1", "6L1", "5L1"], + voltswitch: ["8M", "7M", "6M", "5M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zapcannon: ["8L48", "7L66", "6L1", "5L66"], + }, + }, + tynamo: { + learnset: { + chargebeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5L1"], + magnetrise: ["7T", "6T", "5T"], + spark: ["9L1", "7L1", "6L1", "5L1"], + tackle: ["9L1", "7L1", "6L1", "5L1"], + terablast: ["9M"], + thunderwave: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5L1"], + }, + }, + eelektrik: { + learnset: { + acid: ["9L19", "7L19", "6L19", "5L19"], + acidspray: ["9M", "9L49", "7L49", "6L49", "5L49"], + acrobatics: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["9L9", "7T", "7L9", "6T", "6L9", "5T", "5L9"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + chargebeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + coil: ["9L54", "7L54", "6L54", "5L54"], + confide: ["7M", "6M"], + crunch: ["9M", "9L0", "7L1", "6L39", "5L39"], + discharge: ["9L29", "7L29", "6L29", "5L29"], + doubleteam: ["7M", "6M", "5M"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["9M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["9L64", "7T", "7L64", "6T", "6L64", "5T", "5L64"], + gigadrain: ["9M", "7T", "6T", "5T"], + headbutt: ["9L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + spark: ["9L1", "7L1", "6L1", "5L1"], + substitute: ["9M", "7M", "6M", "5M"], + superfang: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L74", "7L74", "6L74", "5L74"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "9L44", "7M", "7L44", "6M", "6L44", "5M", "5L44"], + thunderfang: ["9M"], + thunderwave: ["9M", "9L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "7M", "6M", "5M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "9L59", "7M", "7L59", "6M", "6L59", "5M", "5L59"], + zapcannon: ["9L69", "7L69", "6L69", "5L69"], + }, + }, + eelektross: { + learnset: { + acid: ["9L1", "7L1", "6L1", "5L1"], + acidspray: ["9M"], + acrobatics: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["7M", "6M", "5M"], + bind: ["7T", "6T", "5T"], + bodypress: ["9M"], + bodyslam: ["9M"], + bounce: ["7T", "6T", "5T"], + brickbreak: ["9M", "7M", "6M", "5M"], + bulkup: ["9M"], + bulldoze: ["9M"], + chargebeam: ["9M", "7M", "6M", "5M"], + closecombat: ["9M"], + coil: ["9L1", "7L1", "6L1"], + confide: ["7M", "6M"], + confuseray: ["9M"], + crunch: ["9M", "9L1", "7L1", "6L1", "5L1"], + crushclaw: ["9L1", "7L1", "6L1", "5L1"], + cut: ["6M", "5M"], + discharge: ["9L1", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dragonclaw: ["9M", "7M", "6M", "5M"], + dragonpulse: ["9M", "7T", "6T"], + dragontail: ["9M", "7M", "6M", "5M"], + drainpunch: ["9M", "7T", "6T", "5T"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M", "5M"], + firepunch: ["9M", "7T", "6T", "5T"], + flamethrower: ["9M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["9M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["9L1", "7T", "7L1", "6T", "6L1", "5T"], + gigadrain: ["9M", "7T", "6T", "5T"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + headbutt: ["9L1", "7L1", "6L1", "5L1"], + heavyslam: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M"], + iondeluge: ["7L1", "6L1"], + irontail: ["7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + liquidation: ["9M"], + magnetrise: ["7T", "6T", "5T"], + outrage: ["9M", "7T", "6T"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M"], + raindance: ["9M", "7M", "6M", "5M"], + rest: ["9M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["7M", "6M", "5M"], + rockslide: ["9M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "7M", "6M", "5M"], + round: ["7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snore: ["7T", "6T", "5T"], + stompingtantrum: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superfang: ["7T", "6T", "5T"], + superpower: ["7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L1", "7L1", "6L1"], + throatchop: ["7T"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "7M", "6M", "5M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "7T", "6T", "5T"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "7M", "6M", "5M"], + voltswitch: ["9M", "7M", "6M", "5M"], + wildcharge: ["9M", "9L5", "7M", "6M", "5M"], + zapcannon: ["9L1", "7L1", "6L1"], + zenheadbutt: ["9M"], + }, + }, + elgyem: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["8M"], + allyswitch: ["8M", "7T", "7E", "6E", "5M"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + barrier: ["7E", "6E", "5E", "5D"], + calmmind: ["8M", "8L48", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1"], + cosmicpower: ["8M", "7E", "6E"], + darkpulse: ["8M", "7M", "6M", "5T"], + destinybond: ["8E"], + disable: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + growl: ["8L1", "7L4", "6L4", "5L4"], + guardsplit: ["8L24", "7L50", "6L50", "5L50"], + guardswap: ["8M", "7E", "6E", "5E"], + headbutt: ["8L30", "7L18", "6L18", "5L18"], + healblock: ["7L8", "6L8", "5L8", "5D"], + hiddenpower: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + imprison: ["8M", "8L6", "7L25", "6L25", "5L25"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + meteorbeam: ["8T"], + miracleeye: ["7L11", "6L11", "5L11"], + nastyplot: ["8M", "7E", "6E", "5E", "5D"], + painsplit: ["7T", "6T", "5T"], + powersplit: ["8L24", "7L50", "6L50", "5L50"], + powerswap: ["8M", "7E", "6E", "5E"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L18", "7L15", "6L15", "5L15"], + psychic: ["8M", "8L60", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychup: ["8E", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L43", "7L46", "6L46", "5L46"], + recycle: ["7T", "6T", "5T"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["7L29", "6L29", "5L29"], + skillswap: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synchronoise: ["7L53", "6L53", "5L53"], + telekinesis: ["7T", "5M"], + teleport: ["8L12", "7E", "6E", "5E"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wonderroom: ["8M", "8L54", "7T", "7L56", "6T", "6L56", "5T", "5L56"], + zenheadbutt: ["8M", "8L36", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + }, + }, + beheeyem: { + learnset: { + afteryou: ["7T", "6T", "5T"], + agility: ["8M"], + allyswitch: ["8M", "7T", "5M"], + attract: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L52", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + confusion: ["8L1", "7L1", "6L1", "5L1"], + cosmicpower: ["8M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M"], + frustration: ["7M", "6M", "5M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + growl: ["8L1", "7L1", "6L1", "5L1"], + guardsplit: ["8L24", "7L56", "6L56", "5L56"], + guardswap: ["8M"], + headbutt: ["8L30", "7L18", "6L18", "5L18"], + healblock: ["7L1", "6L1", "5L1"], + hiddenpower: ["7M", "7L22", "6M", "6L22", "5M", "5L22"], + hyperbeam: ["8M", "7M", "6M", "5M"], + imprison: ["8M", "8L1", "7L25", "6L25", "5L25"], + lightscreen: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + meteorbeam: ["8T"], + miracleeye: ["7L1", "6L1", "5L1"], + nastyplot: ["8M"], + painsplit: ["7T", "6T", "5T"], + powersplit: ["8L24", "7L58", "6L58", "5L58"], + powerswap: ["8M"], + protect: ["8M", "7M", "6M", "5M"], + psybeam: ["8L18", "7L15", "6L15", "5L15"], + psychic: ["8M", "8L68", "7M", "7L39", "6M", "6L39", "5M", "5L39"], + psychicterrain: ["8M", "8L1", "7L1"], + psychup: ["7M", "7L36", "6M", "6L36", "5M", "5L36"], + psyshock: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L45", "7L50", "6L50", "5L50"], + recycle: ["7T", "6T", "5T"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + simplebeam: ["7L29", "6L29", "5L29"], + skillswap: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + synchronoise: ["7L1", "6L1", "5L63"], + telekinesis: ["7T", "5M"], + teleport: ["8L1"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + triattack: ["8M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wonderroom: ["8M", "8L60", "7T", "7L1", "6T", "6L1", "5T", "5L68"], + zenheadbutt: ["8M", "8L36", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + }, + }, + litwick: { + learnset: { + acid: ["7E", "6E", "5E"], + acidarmor: ["8E", "7E", "6E", "5E"], + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + calmmind: ["8M", "7M", "6M", "5M"], + captivate: ["7E", "6E", "5E"], + clearsmog: ["8E", "7E", "6E", "5E"], + confide: ["7M", "6M"], + confuseray: ["8L12", "7L10", "6L10", "5L10"], + curse: ["8L32", "7L43", "6L43", "5L43"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + ember: ["8L4", "7L1", "6L1", "5L1"], + endure: ["8M", "7E", "6E", "5E"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + fireblast: ["8M", "7M", "6M", "5M"], + firespin: ["8M", "8L24", "7L7", "6L7", "5L7"], + flameburst: ["7L20", "6L20", "5L20"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + haze: ["8E", "7E", "6E", "5E"], + heatwave: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + hex: ["8M", "8L16", "7L28", "6L28", "5L28"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["8M", "8L44", "7L24", "6L24", "5L24"], + incinerate: ["6M", "5M"], + inferno: ["8L40", "7L38", "6L38", "5L38"], + memento: ["8L56", "7L33", "6L33", "5L33"], + minimize: ["8L8", "7L3", "6L3", "5L3"], + mysticalfire: ["8M"], + nightshade: ["8L28", "7L13", "6L13", "5L13"], + overheat: ["8M", "8L52", "7M", "7L61", "6M", "6L61", "5M", "5L61"], + painsplit: ["8L48", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["8T"], + powersplit: ["8E", "7E", "6E"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L36", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smog: ["8L1", "7L5", "6L5", "5L5"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + }, + }, + lampent: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + calmmind: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["8L12", "7L10", "6L10", "5L10"], + curse: ["8L32", "7L45", "6L45", "5L45"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + ember: ["8L1", "7L1", "6L1", "5L1"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + fireblast: ["8M", "7M", "6M", "5M"], + firespin: ["8M", "8L24", "7L7", "6L7", "5L7"], + flameburst: ["7L20", "6L20", "5L20"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + heatwave: ["8M", "7T", "6T", "5T"], + hex: ["8M", "8L16", "7L28", "6L28", "5L28"], + hiddenpower: ["7M", "6M", "5M"], + imprison: ["8M", "8L46", "7L24", "6L24", "5L24"], + incinerate: ["6M", "5M"], + inferno: ["8L40", "7L38", "6L38", "5L38"], + memento: ["8L64", "7L33", "6L33", "5L33"], + minimize: ["8L1", "7L1", "6L1", "5L1"], + mysticalfire: ["8M"], + nightshade: ["8L28", "7L13", "6L13", "5L13"], + overheat: ["8M", "8L58", "7M", "7L69", "6M", "6L69", "5M", "5L69"], + painsplit: ["8L52", "7T", "7L61", "6T", "6L61", "5T", "5L61"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L36", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smog: ["8L1", "7L1", "6L1", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8L20", "7M", "7L16", "6M", "6L16", "5M", "5L16"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + chandelure: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1"], + attract: ["8M", "7M", "6M", "5M"], + burningjealousy: ["8T"], + calmmind: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L1", "6L1", "5L1"], + curse: ["8L1"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + dreameater: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + ember: ["8L1"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M", "5S0"], + facade: ["8M", "7M", "6M", "5M"], + fireblast: ["8M", "7M", "6M", "5M"], + firespin: ["8M", "8L1"], + flameburst: ["7L1", "6L1", "5L1"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heatwave: ["8M", "7T", "6T", "5T", "5S0"], + hex: ["8M", "8L1", "7L1", "6L1", "5L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + imprison: ["8M", "8L1"], + incinerate: ["6M", "5M"], + inferno: ["8L1"], + laserfocus: ["7T"], + memento: ["8L1"], + minimize: ["8L1"], + mysticalfire: ["8M"], + nightshade: ["8L1"], + overheat: ["8M", "8L1", "7M", "6M", "5M"], + painsplit: ["8L1", "7T", "7L1", "6T", "6L1", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M", "5S0"], + psychup: ["7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["8M", "8L1", "7M", "6M", "5M", "5S0"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smog: ["8L1", "7L1", "6L1", "5L1"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spite: ["7T", "6T", "5T"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["8M", "7T", "6T", "5T"], + trickroom: ["8M", "7M", "6M", "5M"], + willowisp: ["8M", "8L1", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 50, gender: "F", nature: "Modest", ivs: {spa: 31}, abilities: ["flashfire"], moves: ["heatwave", "shadowball", "energyball", "psychic"], pokeball: "cherishball"}, + ], + }, + axew: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["9E", "7T", "6T", "5T"], + assurance: ["9L9", "8M", "8L9", "7L7", "6L7", "5L7"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L3", "8L3"], + breakingswipe: ["9L30", "8M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "6E", "5E", "5D"], + crunch: ["9M", "9L24", "8M", "8L24"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S1"], + dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L41", "7E", "6T", "6L41", "6E", "5T", "5L41", "5E"], + dragonrage: ["7L10", "6L10", "5L10", "5D", "5S0", "5S1", "5S2"], + dragontail: ["9M"], + dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + endeavor: ["9E", "8E", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "8M", "7E", "6E", "5E", "5S1"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L6", "8M", "8L6", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + firstimpression: ["9E", "8E"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L33", "8M", "7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "9L48", "8M", "8L48", "7M", "7L61", "6M", "6L61", "5M", "5L61", "5S2"], + guillotine: ["9L45", "8L45", "7L50", "6L50", "5L51"], + harden: ["8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["9E", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + laserfocus: ["8L33"], + leer: ["9L1", "8L1", "7L4", "6L4", "5L4"], + nightslash: ["9E", "8E", "7E", "6E", "5E", "5D"], + outrage: ["9M", "9L42", "8M", "8L42", "7T", "7L56", "6T", "6L56", "5T", "5L56", "5S2"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + razorwind: ["7E", "6E", "5E"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M", "5S1"], + reversal: ["9M", "8M", "7E", "6E", "5E"], + roar: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0", "5S2"], + secretpower: ["6M"], + shadowclaw: ["9M"], + shockwave: ["7T", "6T"], + slash: ["9L15", "8L15", "7L20", "6L20", "5L20"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L39", "8M", "8L39", "7M", "7L46", "6M", "6L46", "5M", "5L46"], + takedown: ["9M"], + taunt: ["9M", "9L12", "8M", "8L12", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: 1, gender: "M", nature: "Naive", ivs: {spe: 31}, abilities: ["moldbreaker"], moves: ["scratch", "dragonrage"], pokeball: "pokeball"}, + {generation: 5, level: 10, gender: "F", abilities: ["moldbreaker"], moves: ["dragonrage", "return", "endure", "dragonclaw"], pokeball: "cherishball"}, + {generation: 5, level: 30, gender: "M", nature: "Naive", abilities: ["rivalry"], moves: ["dragonrage", "scratch", "outrage", "gigaimpact"], pokeball: "cherishball"}, + ], + }, + fraxure: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["9L9", "8M", "8L9", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L1", "8L1"], + breakingswipe: ["9L30", "8M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L24", "8M", "8L24"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["9M", "7M", "6M", "5M"], + dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L33", "8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "9L56", "8M", "8L56", "7M", "7L66", "6M", "6L66", "5M", "5L66"], + guillotine: ["9L51", "8L51", "7L54", "6L54", "5L54"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "7T", "6T", "5T"], + laserfocus: ["8L33"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + outrage: ["9M", "9L46", "8M", "8L46", "7T", "7L60", "6T", "6L60", "5T", "5L60"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M", "8M"], + roar: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slash: ["9L15", "8L15", "7L20", "6L20", "5L20"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L41", "8M", "8L41", "7M", "7L48", "6M", "6L48", "5M", "5L48"], + takedown: ["9M"], + taunt: ["9M", "9L12", "8M", "8L12", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + haxorus: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["9L9", "8M", "8L9", "7L1", "6L1", "5L1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L1", "8L1"], + bodyslam: ["9M"], + breakingswipe: ["9L30", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L24", "8M", "8L24"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonclaw: ["9M", "9L18", "8M", "8L18", "7M", "7L28", "6M", "6L28", "5M", "5L28"], + dragondance: ["9M", "9L27", "8M", "8L27", "7L32", "6L32", "5L32", "5S0"], + dragonpulse: ["9M", "9L36", "8M", "8L36", "7T", "7L42", "6T", "6L42", "5T", "5L42"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["9M", "7M", "6M", "5M"], + dualchop: ["8L30", "7T", "7L13", "6T", "6L13", "5T", "5L13", "5S0"], + earthquake: ["9M", "8M", "7M", "6M", "5M", "5S0"], + endeavor: ["7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "9L1", "8M", "8L1", "7M", "7L24", "6M", "6L24", "5M", "5L24"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focusenergy: ["9L33", "8M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "9L60", "8M", "8L60", "7M", "7L74", "6M", "6L74", "5M", "5L74"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + guillotine: ["9L53", "8L53", "7L58", "6L58", "5L58"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["9M"], + irontail: ["8M", "7T", "6T", "5T"], + laserfocus: ["8L33", "7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M"], + outrage: ["9M", "9L46", "8M", "8L46", "7T", "7L1", "6T", "6L1", "5T", "5L66"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychocut: ["8M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M", "8M"], + roar: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L21", "8M", "8L21", "7L16", "6L16", "5L16"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slash: ["9L15", "8L15", "7L20", "6L20", "5L20"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M"], + snore: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L41", "8M", "8L41", "7M", "7L50", "6M", "6L50", "5M", "5L50"], + takedown: ["9M"], + taunt: ["9M", "9L12", "8M", "8L12", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + xscissor: ["9M", "8M", "7M", "6M", "5M", "5S0"], + }, + eventData: [ + {generation: 5, level: 59, gender: "F", nature: "Naive", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, abilities: ["moldbreaker"], moves: ["earthquake", "dualchop", "xscissor", "dragondance"], pokeball: "cherishball"}, + ], + }, + cubchoo: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + assurance: ["8M", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["9M", "8M", "7E", "6E", "5E"], + bide: ["7L9", "6L9", "5L9", "5S0"], + blizzard: ["9M", "9L39", "8M", "8L39", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + bodypress: ["9M"], + bodyslam: ["9M"], + brine: ["9L15", "8M", "8L15", "7L21", "6L21", "5L21"], + bulldoze: ["9M"], + charm: ["9M", "9L27", "8M", "8L27", "7L29", "6L29", "5L29"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M", "7E", "6E", "5E"], + endure: ["9M", "9L3", "8M", "8L3", "7L25", "6L25", "5L25"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flail: ["9L24", "8L24", "7L36", "6L36", "5L36"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["9E", "8E", "7T", "7E", "6T", "6E", "5E"], + frostbreath: ["9L18", "8L18", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L6", "8L6", "7L17", "6L17", "5L17"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L5", "5S0"], + hail: ["8M", "8L30", "7M", "7L49", "6M", "6L49", "5M", "5L49"], + heavyslam: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + icywind: ["9M", "9L9", "8M", "8L9", "7T", "7L13", "6T", "6L13", "5T", "5L13", "5S0"], + liquidation: ["9M"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9E", "8E", "7E", "6E", "5E"], + playnice: ["9L12", "8L12", "7L15", "6L15"], + playrough: ["9M", "8M", "7E", "6E"], + powdersnow: ["9L1", "8L1", "7L5", "6L5", "5L1", "5S0"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "9L36", "8M", "8L36", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + return: ["7M", "6M", "5M"], + rockslide: ["9M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + sheercold: ["9L42", "8L42", "7L57", "6L57", "5L57"], + slash: ["9L21", "8L21", "7L33", "6L33", "5L33"], + sleeptalk: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M", "9L30"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L33", "8L33", "7L53", "6L53", "5L53"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T"], + xscissor: ["9M"], + yawn: ["9E", "8E", "7E", "6E", "5E"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["powdersnow", "growl", "bide", "icywind"], pokeball: "cherishball"}, + ], + }, + beartic: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + aquajet: ["9L1", "8L1", "7L1", "6L1", "5L1"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + avalanche: ["9M", "8M"], + bide: ["7L1", "6L1", "5L1"], + blizzard: ["9M", "9L41", "8M", "8L41", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brine: ["9L15", "8M", "8L15", "7L21", "6L21", "5L21"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + charm: ["9M", "9L1", "8M", "8L1"], + chillingwater: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + crunch: ["9M"], + cut: ["6M", "5M"], + dig: ["9M", "8M", "6M", "5M"], + dive: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["9M"], + echoedvoice: ["7M", "6M", "5M"], + encore: ["9M", "8M"], + endure: ["9M", "9L1", "8M", "8L1", "7L25", "6L25", "5L25"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flail: ["9L24", "8L24", "7L36", "6L36", "5L36"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frostbreath: ["9L18", "8L18", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["9L1", "8L1", "7L17", "6L17", "5L17"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + growl: ["9L1", "8L1", "7L1", "6L1", "5L1"], + hail: ["8M", "8L30", "7M", "7L53", "6M", "6L53", "5M", "5L53"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icebeam: ["9M", "8M", "7M", "6M", "5M"], + icefang: ["9M", "8M"], + icepunch: ["9M", "8M", "7T", "6T", "5T"], + iciclecrash: ["9L0", "8L0", "7L1", "6L37", "5L37"], + iciclespear: ["8M"], + icywind: ["9M", "9L9", "8M", "8L9", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + liquidation: ["9M", "8M"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playnice: ["9L12", "8L12", "7L15", "6L9"], + playrough: ["9M", "8M"], + powdersnow: ["9L1", "8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "9L36", "8M", "8L36", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + return: ["7M", "6M", "5M"], + reversal: ["9M"], + roar: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + sheercold: ["9L46", "8L46", "7L1", "6L1", "5L66"], + slash: ["9L21", "8L21", "7L33", "6L33", "5L33"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M", "9L30"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L51", "8M", "8L51", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["9L27", "8L27", "7M", "7L29", "6M", "6L29", "5M", "5L29"], + swordsdance: ["9M", "8M", "7M", "6M", "5M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L33", "8L33", "7L1", "6L1", "5L59"], + throatchop: ["8M", "7T"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + waterpulse: ["9M", "7T", "6T"], + xscissor: ["9M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + cryogonal: { + learnset: { + acidarmor: ["9L52", "8L52", "7L17", "6L29", "5L29"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + ancientpower: ["9L20", "8L24", "7L21"], + attract: ["7M", "6M", "5M"], + aurorabeam: ["9L24", "8L28", "7L13", "6L25", "5L25"], + auroraveil: ["9E", "7M"], + avalanche: ["9M", "8M"], + bind: ["9L1", "8L1", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + blizzard: ["9M", "8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M", "9L4", "8L4", "7L41", "6L45", "5L45"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + explosion: ["9E", "7M", "6M", "5M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + freezedry: ["9L36", "8L36", "7L49", "6L50"], + frostbreath: ["9E", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M"], + hail: ["8M", "7M", "6M", "5M"], + haze: ["9L16", "8L20", "7L9", "6L1", "5L21"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icebeam: ["9M", "9L48", "8M", "8L48", "7M", "7L25", "6M", "6L33", "5M", "5L33"], + iceshard: ["9L1", "8L1", "7L1", "6L1", "5L5"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "9L12", "8M", "8L16", "7T", "7L5", "6T", "6L17", "5T", "5L17"], + irondefense: ["9M", "8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["8L12", "7T"], + lightscreen: ["9M", "9L40", "8M", "8L40", "7M", "7L29", "6M", "6L37", "5M", "5L37"], + magiccoat: ["7T", "6T", "5T"], + mist: ["9L16", "8L20", "7L9", "6L1", "5L21"], + nightslash: ["9L32", "8L32", "7L1", "6L1", "5L57"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rapidspin: ["9L8", "8L8", "7L1", "6L13", "5L13"], + recover: ["9L44", "8L44", "7L45", "6L49", "5L49"], + reflect: ["9M", "9L40", "8M", "8L40", "7M", "7L33", "6M", "6L37", "5M", "5L37"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sharpen: ["7L1", "6L9", "5L9"], + sheercold: ["9L60", "8L60", "7L1", "6L1", "5L61"], + signalbeam: ["7T", "6T", "5T"], + slash: ["9L28", "8L32", "7L37", "6L41", "5L41"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], + solarbeam: ["9M", "9L56", "8M", "8L56", "7M", "7L50", "6M", "6L53", "5M", "5L53"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + tripleaxel: ["8T"], + waterpulse: ["9M", "7T", "6T"], + }, + }, + shelmet: { + learnset: { + absorb: ["8L1", "7L1"], + acid: ["8L4", "7L4", "6L4", "5L4", "5D"], + acidarmor: ["8L24", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "7E", "6E", "5E", "5D"], + bide: ["7L8", "6L8", "5L8"], + bodyslam: ["8M", "8L36", "7L40", "6L40", "5L40", "5S1"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L44", "7L44", "6L44", "5L44", "5S1"], + confide: ["7M", "6M"], + curse: ["8L8", "7L13", "6L13", "5L13"], + doubleedge: ["8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + encore: ["8M", "7E", "6E", "5E", "5D", "5S1"], + endure: ["8M", "7E", "6E", "5E"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + feint: ["8E", "7E", "6E", "5E"], + finalgambit: ["8L48", "7L56", "6L56", "5L56"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["8M", "8L28", "7T", "7L37", "6T", "6L37", "5T", "5L37", "5S1"], + guardsplit: ["8E", "7E", "6E", "5E"], + guardswap: ["8M", "8L32", "7L50", "6L50", "5L52"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + leechlife: ["8M", "7M", "6L1", "5L1"], + megadrain: ["8L12", "7L20", "6L20", "5L20", "5S0"], + mindreader: ["8E", "7E", "6E", "5E"], + mudshot: ["8M"], + mudslap: ["7E", "6E", "5E"], + protect: ["8M", "8L1", "7M", "7L28", "6M", "6L28", "5M", "5L28", "5S0"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L40", "7L49", "6L49", "5L49"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spikes: ["8M", "7E", "6E", "5E"], + strugglebug: ["8L16", "7L16", "6M", "6L16", "5M", "5L16", "5S0"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + toxicspikes: ["8M", "7E"], + venoshock: ["8M", "7M", "6M", "5M"], + yawn: ["8L20", "7L25", "6L25", "5L25", "5S0"], + }, + eventData: [ + {generation: 5, level: 30, moves: ["strugglebug", "megadrain", "yawn", "protect"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["encore", "gigadrain", "bodyslam", "bugbuzz"], pokeball: "cherishball"}, + ], + }, + accelgor: { + learnset: { + absorb: ["8L1", "7L1"], + acid: ["8L1"], + acidarmor: ["8L1"], + acidspray: ["8L1", "7L1", "6L1", "5L1"], + agility: ["8M", "8L24", "7L32", "6L32", "5L32"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M"], + bodyslam: ["8M", "8L1"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L44", "7L44", "6L44", "5L44"], + confide: ["7M", "6M"], + curse: ["8L1"], + doubleteam: ["8L1", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + drainpunch: ["8M"], + encore: ["8M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + finalgambit: ["8L48", "7L1", "6L1", "5L56"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["8M", "8L28", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + gigaimpact: ["8M", "7M", "6M", "5M"], + guardswap: ["8M", "8L1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + leechlife: ["8M", "7M", "6L1", "5L1"], + mefirst: ["7L28", "6L28", "5L28"], + megadrain: ["8L12", "7L20", "6L20", "5L20"], + mudshot: ["8M"], + powerswap: ["8M", "8L32", "7L1", "6L1", "5L52"], + protect: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + raindance: ["8M", "7M", "6M", "5M"], + recover: ["8L40", "7L49", "6L49", "5L49"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["8M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spikes: ["8M"], + strugglebug: ["8L16", "7L16", "6M", "6L16", "5M", "5L16"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "8L20", "7L25", "6L25", "5L25"], + toxic: ["8L52", "7M", "6M", "5M"], + toxicspikes: ["8M"], + uturn: ["8M", "8L36", "7M", "7L40", "6M", "6L40", "5M", "5L40"], + venomdrench: ["8M"], + venoshock: ["8M", "7M", "6M", "5M"], + watershuriken: ["8L1", "7L1", "6L1"], + yawn: ["8L1"], + }, + }, + stunfisk: { + learnset: { + aquatail: ["7T", "6T", "5T"], + astonish: ["8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + bide: ["7L5", "6L5", "5L5"], + bounce: ["8M", "8L35", "7T", "7L35", "6T", "6L35", "5T", "5L35"], + bulldoze: ["8M", "7M", "6M", "5M"], + camouflage: ["7L17", "6L17", "5L17"], + charge: ["8L20"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E", "5D"], + dig: ["8M", "6M", "5M"], + discharge: ["8L45", "7L25", "6L25", "5L25"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + earthquake: ["8M", "7M", "6M", "5M"], + eerieimpulse: ["8M", "7E", "6E"], + electricterrain: ["8M", "8L30"], + electroweb: ["8M", "7T", "6T", "5T"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "8L5", "7L30", "6L30", "5L30"], + facade: ["8M", "7M", "6M", "5M"], + fissure: ["8L55", "7L1", "6L1", "5L61"], + flail: ["8L50", "7L1", "6L1", "5L55"], + flash: ["6M", "5M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + hiddenpower: ["7M", "6M", "5M"], + infestation: ["7M", "6M"], + lashout: ["8T"], + magnetrise: ["7T", "6T", "5T"], + mefirst: ["7E", "6E"], + mudbomb: ["7L21", "6L21", "5L21"], + muddywater: ["8M", "8L40", "7L40", "6L40", "5L40"], + mudshot: ["8M", "8L10", "7L13", "6L13", "5L13"], + mudslap: ["8L1", "7L1", "6L1", "5L1", "5D"], + mudsport: ["7L1", "6L1", "5L1"], + painsplit: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflecttype: ["8E", "7E", "6E"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "8L15", "7L50", "6L50", "5L50"], + rockslide: ["8M", "7M", "6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + shockwave: ["7T", "7E", "6T", "6E", "5E"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + sludgebomb: ["8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + spark: ["8E", "7E", "6E", "5E"], + spite: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8L25"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["8L1", "7L1", "6L1"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + thundershock: ["8L1", "7L9", "6L9", "5L9"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + watergun: ["8L1", "7L1", "6L1"], + waterpulse: ["7T", "6T"], + yawn: ["8E", "7E", "6E", "5E", "5D"], + }, + }, + stunfiskgalar: { + learnset: { + astonish: ["8E"], + attract: ["8M"], + bind: ["8E"], + bounce: ["8M", "8L35"], + bulldoze: ["8M"], + counter: ["8E"], + crunch: ["8M"], + curse: ["8E"], + dig: ["8M"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M", "8L5"], + facade: ["8M"], + fissure: ["8L55"], + flail: ["8L50"], + flashcannon: ["8M"], + foulplay: ["8M"], + icefang: ["8M"], + irondefense: ["8M", "8L30"], + lashout: ["8T"], + metalclaw: ["8L1"], + metalsound: ["8L20"], + muddywater: ["8M", "8L40"], + mudshot: ["8M", "8L10"], + mudslap: ["8L1"], + painsplit: ["8E"], + payback: ["8M"], + protect: ["8M"], + raindance: ["8M"], + reflecttype: ["8E"], + rest: ["8M"], + revenge: ["8M", "8L15"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sandstorm: ["8M"], + scald: ["8M"], + screech: ["8M"], + sleeptalk: ["8M"], + sludgebomb: ["8M"], + sludgewave: ["8M"], + snaptrap: ["8L45"], + snore: ["8M"], + spite: ["8E"], + stealthrock: ["8M"], + steelbeam: ["8T"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L25"], + surf: ["8M"], + tackle: ["8L1"], + terrainpulse: ["8T"], + thunderwave: ["8M"], + uproar: ["8M"], + watergun: ["8L1"], + yawn: ["8E"], + }, + }, + mienfoo: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + allyswitch: ["8M", "7T", "7E", "6E"], + attract: ["8M", "7M", "6M", "5M"], + aurasphere: ["8M", "8L45", "7L61", "6L61", "5L61"], + batonpass: ["8M", "7E", "6E", "5E"], + bounce: ["8M", "8L51", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulkup: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L55", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + detect: ["8L1", "7L9", "6L9", "5L9"], + dig: ["8M", "6M", "5M"], + doubleslap: ["7L17", "6L17", "5L17"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + dualchop: ["7T", "6T", "5T"], + endure: ["8M", "7E", "6E", "5E"], + facade: ["8M", "7M", "6M", "5M"], + fakeout: ["8L5", "7L13", "6L13", "5L13"], + feint: ["8E", "7E", "6E", "5E"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["8E", "7T", "6T"], + forcepalm: ["8L25", "7L29", "6L29", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L15"], + grassknot: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["8L60", "7L50", "6L50", "5L53"], + honeclaws: ["8L40"], + jumpkick: ["7L37", "6L37", "5L37"], + knockoff: ["8E", "7T", "7E", "6T", "6E", "5T", "5E"], + lowkick: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lowsweep: ["8M", "7M", "6M", "5M"], + meditate: ["7L5", "6L5", "5L5"], + mefirst: ["7E", "6E", "5E"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickguard: ["8L20", "7L45", "6L45", "5L45"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M", "8L10", "7L57", "6L57", "5L57"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smellingsalts: ["7E", "6E", "5E"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "7L21", "6L21", "5L21"], + swordsdance: ["8M", "7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uturn: ["8M", "8L30", "7M", "7L41", "6M", "6L41", "5M", "5L41"], + vitalthrow: ["8E", "7E", "6E", "5E"], + workup: ["8M", "7M", "5M"], + }, + }, + mienshao: { + learnset: { + acrobatics: ["8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + agility: ["8M"], + allyswitch: ["8M", "7T"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + aurasphere: ["8M", "8L45", "7L1", "6L1", "5L70"], + batonpass: ["8M"], + blazekick: ["8M"], + bounce: ["8M", "8L53", "7T", "7L49", "6T", "6L49", "5T", "5L49"], + brickbreak: ["8M", "7M", "6M", "5M"], + brutalswing: ["8M"], + bulkup: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "8L59", "7M", "7L25", "6M", "6L25", "5M", "5L25"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + detect: ["8L1", "7L1", "6L1", "5L1"], + dig: ["8M", "6M", "5M"], + doubleslap: ["7L17", "6L17", "5L17"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "8L35", "7T", "7L33", "6T", "6L33", "5T", "5L33"], + dualchop: ["7T", "7S0", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + fakeout: ["8L1", "7L1", "7S0", "6L1", "5L1"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T"], + forcepalm: ["8L25", "7L29", "6L29", "5L29"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L15"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + highjumpkick: ["8L66", "7L56", "7S0", "6L56", "5L56"], + honeclaws: ["8L40"], + hyperbeam: ["8M", "7M", "6M", "5M"], + jumpkick: ["7L37", "6L37", "5L37"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "7M", "6M", "5M"], + meditate: ["7L1", "6L1", "5L1"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickguard: ["8L1"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M", "8L1", "7L1", "6L1", "5L63"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M", "7L21", "6L21", "5L21"], + swordsdance: ["8M", "7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uturn: ["8M", "8L30", "7M", "7L41", "7S0", "6M", "6L41", "5M", "5L41"], + wideguard: ["8L20", "7L45", "6L45", "5L45"], + workup: ["8M", "7M", "5M"], + }, + eventData: [ + {generation: 7, level: 65, gender: "M", abilities: ["innerfocus"], moves: ["fakeout", "dualchop", "highjumpkick", "uturn"], pokeball: "cherishball"}, + ], + }, + druddigon: { + learnset: { + aerialace: ["7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["8L5", "7L9", "6L9", "5L9", "5D"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + chipaway: ["7L31", "6L31", "5L31"], + confide: ["7M", "6M"], + crunch: ["8M", "8L40", "7L25", "6L25", "5L25"], + crushclaw: ["7E", "6E", "5E"], + cut: ["6M", "5M"], + darkpulse: ["8M", "7M", "6M", "5T"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "5T"], + dragonclaw: ["8M", "8L30", "7M", "7L27", "6M", "6L27", "5M", "5L27"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragonrage: ["7L18", "6L18", "5L18"], + dragontail: ["8L10", "7M", "7L45", "6M", "6L45", "5M", "5L45"], + dualwingbeat: ["8T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + firefang: ["8M", "7E", "6E", "5E", "5D"], + firepunch: ["8M", "7T", "6T", "5T"], + flamethrower: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + glare: ["8E", "7E", "6E", "5E"], + gunkshot: ["8M", "7T", "6T", "5T"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L35", "7L5", "6M", "6L5", "5M", "5L5"], + hyperbeam: ["8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + ironhead: ["8M", "8L45", "7T", "6T", "5T"], + irontail: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1", "5S0"], + megapunch: ["8M"], + metalclaw: ["8L15", "7E", "6E", "5E"], + nightslash: ["8E", "7L40", "6L40", "5L40"], + outrage: ["8M", "8L50", "7T", "7L62", "6T", "6L62", "5T", "5L62"], + payback: ["8M", "7M", "6M", "5M"], + poisontail: ["8E", "7E", "6E", "5E"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7L35", "6L35", "5L35"], + roar: ["7M", "6M", "5M"], + rockclimb: ["7L49", "6L49", "5L49"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L20", "7L13", "6L13", "5L13"], + scratch: ["8L1", "7L1", "6L1", "5L1", "5S0"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + slash: ["8L25", "7L21", "6L21", "5L21"], + sleeptalk: ["8M", "7M", "6M", "5T"], + sludgebomb: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "7E", "6T", "6E", "5T", "5E"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8E", "7E", "6E", "5E", "5D"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "8L55", "7T", "7L55", "6T", "6L55", "5T", "5L55"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + taunt: ["8M", "7M", "6M", "5M"], + thunderfang: ["8M", "7E", "6E", "5E"], + thunderpunch: ["8M", "7T", "6T", "5T"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["leer", "scratch"], pokeball: "pokeball"}, + ], + }, + golett: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + curse: ["8L16", "7L45", "6L40", "5L40"], + defensecurl: ["8L4", "7L1", "6L1", "5L1"], + dig: ["8M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + dynamicpunch: ["8L56", "7L35", "6L30", "5L30"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "8L52", "7M", "7L50", "6M", "6L45", "5M", "5L45"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T", "5D"], + flash: ["6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "7L61", "6T", "6L55", "5L55"], + frustration: ["7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gyroball: ["8M", "7M", "6M", "5M"], + hammerarm: ["8L48", "7L55", "6L50", "5L50"], + heavyslam: ["8M", "8L40"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + icebeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + irondefense: ["8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnitude: ["7L30", "6L25", "5L25"], + megakick: ["8M"], + megapunch: ["8M", "8L32", "7L25", "6L21", "5L21"], + mudslap: ["8L1", "7L5", "6L5", "5L5"], + nightshade: ["8L20", "7L40", "6L35", "5L35"], + phantomforce: ["8M", "8L44"], + poltergeist: ["8T"], + pound: ["8L8", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L9", "6L9", "5L9", "5D"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + selfdestruct: ["8M"], + shadowball: ["8M", "8L36", "7M", "6M", "5M"], + shadowpunch: ["8L12", "7L13", "6L13", "5L13"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "8L24", "7L21"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T", "5D"], + toxic: ["7M", "6M", "5M"], + }, + }, + golurk: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1", "5L1"], + block: ["7T", "6T", "5T"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M", "5M"], + bulldoze: ["8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + curse: ["8L16", "7L47", "6L40", "5L40"], + darkestlariat: ["8M"], + defensecurl: ["8L1", "7L1", "6L1", "5L1"], + dig: ["8M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M", "7T", "6T", "5T"], + dynamicpunch: ["8L64", "7L35", "6L30", "5L30"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "8L58", "7M", "7L54", "6M", "6L50", "5M", "5L50"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + firepunch: ["8M", "7T", "6T", "5T"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["8L1", "7T", "7L69", "6T", "6L1", "5L70"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gyroball: ["8M", "7M", "6M", "5M", "5S0"], + hammerarm: ["8L52", "7L61", "6L60", "5L60", "5S0"], + heatcrash: ["8M"], + heavyslam: ["8M", "8L40", "7L1", "6L43", "5L43"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M", "8L1", "7L1"], + hyperbeam: ["8M", "7M", "6M", "5M", "5S0"], + icebeam: ["8M", "7M", "6M", "5M"], + icepunch: ["8M", "7T", "6T", "5T"], + icywind: ["8M", "7T", "6T", "5T"], + imprison: ["8M"], + irondefense: ["8M", "8L28", "7T", "7L17", "6T", "6L17", "5T", "5L17"], + lowkick: ["8M", "7T", "6T", "5T"], + lowsweep: ["8M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magnitude: ["7L30", "6L25", "5L25"], + megakick: ["8M"], + megapunch: ["8M", "8L32", "7L25", "6L21", "5L21"], + mudslap: ["8L1", "7L1", "6L1", "5L1"], + nightshade: ["8L20", "7L40", "6L35", "5L35"], + phantomforce: ["8M", "8L46", "7L76", "6L1"], + poltergeist: ["8T"], + pound: ["8L1", "7L1", "6L1", "5L1"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + rollout: ["7L9", "6L9", "5L9"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + selfdestruct: ["8M"], + shadowball: ["8M", "8L36", "7M", "6M", "5M"], + shadowpunch: ["8L12", "7L13", "6L13", "5L13", "5S0"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "8L24", "7T", "7L21"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + telekinesis: ["7T", "5M"], + thief: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderpunch: ["8M", "7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + trick: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 70, shiny: true, abilities: ["ironfist"], moves: ["shadowpunch", "hyperbeam", "gyroball", "hammerarm"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + pawniard: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M"], + assurance: ["9L25", "8M", "8L25", "7L33", "6L33", "5L33"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L17", "6L17", "5L17"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L5", "8L5", "7L9", "6L9", "5L9", "5D"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + guillotine: ["9L65", "8L65", "7L62", "6L62", "5L62"], + headbutt: ["9E", "8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + irondefense: ["9M", "9L45", "8M", "8L45", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + ironhead: ["9M", "9L55", "8M", "8L55", "7T", "7L54", "6T", "6L54", "5T", "5L54"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["8L50"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L6", "6L6", "5L6"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + meanlook: ["9E", "8E", "7E", "6E", "5E"], + metalclaw: ["9M", "9L10", "8L10", "7L25", "6L25", "5L25"], + metalsound: ["9L30", "8L30", "7L38", "6L38", "5L38"], + nightslash: ["9L40", "8L40", "7L49", "6L49", "5L49"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychocut: ["8M", "7E", "6E", "5E", "5D"], + pursuit: ["7E", "6E", "5E"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L50", "8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L22", "6L22", "5L22"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + slash: ["9L35", "8L35", "7L30", "6L30", "5L30"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + steelbeam: ["9M", "8T"], + stoneedge: ["9M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + suckerpunch: ["9E", "8E", "7E", "6E", "5E", "5D"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "9L60", "8M", "8L60", "7M", "7L57", "6M", "6L57", "5M", "5L57"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["9L15", "8L15", "7M", "7L14", "6M", "6L14", "5M", "5L14"], + toxic: ["7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + }, + bisharp: { + learnset: { + aerialace: ["9M", "7M", "6M", "5M"], + airslash: ["9M", "8M"], + assurance: ["9L25", "8M", "8L25", "7L33", "6L33", "5L33"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T"], + embargo: ["7M", "7L41", "6M", "6L41", "5M", "5L41"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + falseswipe: ["9M", "8M", "7M", "6M", "5M"], + feintattack: ["7L17", "6L17", "5L17"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + furycutter: ["9L1", "8L1", "7L1", "6L1", "5L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + guillotine: ["9L71", "8L71", "7L1", "6L1", "5L71"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + irondefense: ["9M", "9L45", "8M", "8L45", "7T", "7L46", "6T", "6L46", "5T", "5L46"], + ironhead: ["9M", "9L57", "8M", "8L57", "7T", "7L1", "6T", "6L1", "5T", "5L57"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["8L50", "7T"], + lashout: ["8T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + lowkick: ["9M", "8M", "7T", "6T", "5T"], + lowsweep: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + metalburst: ["9L1", "8L1", "7L1", "6L1", "5L1"], + metalclaw: ["9M", "9L1", "8L1", "7L25", "6L25", "5L25"], + metalsound: ["9L30", "8L30", "7L38", "6L38", "5L38"], + nightslash: ["9L40", "8L40", "7L49", "6L49", "5L49"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychocut: ["8M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["9L50", "8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["9M"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M", "8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L22", "6L22", "5L22"], + scratch: ["9L1", "8L1", "7L1", "6L1", "5L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + slash: ["9L35", "8L35", "7L30", "6L30", "5L30"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + steelbeam: ["9M", "8T"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "9L64", "8M", "8L64", "7M", "7L63", "6M", "6L63", "5M", "5L63"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["9L15", "8L15", "7M", "7L1", "6M", "6L1", "5M", "5L1"], + toxic: ["7M", "6M", "5M"], + xscissor: ["9M", "8M", "7M", "6M", "5M"], + }, + encounters: [ + {generation: 7, level: 33}, + ], + }, + kingambit: { + learnset: { + aerialace: ["9M"], + airslash: ["9M"], + assurance: ["9L25"], + brickbreak: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + foulplay: ["9M"], + furycutter: ["9L1"], + gigaimpact: ["9M"], + grassknot: ["9M"], + guillotine: ["9L71"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L45"], + ironhead: ["9M", "9L57"], + kowtowcleave: ["9L0"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalburst: ["9L1"], + metalclaw: ["9M", "9L1"], + metalsound: ["9L30"], + nightslash: ["9L40"], + poisonjab: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + retaliate: ["9L50"], + reversal: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M", "9L20"], + scratch: ["9L1"], + shadowclaw: ["9M"], + slash: ["9L35"], + sleeptalk: ["9M"], + snarl: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + swordsdance: ["9M", "9L64"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + torment: ["9L15"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + bouffalant: { + learnset: { + aerialace: ["7M", "6M", "5M"], + amnesia: ["8M", "7E", "6E", "5E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["8E", "7E", "6E"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cottonguard: ["8E", "7E"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthquake: ["8M", "7M", "6M", "6S0", "5M"], + endeavor: ["8E", "7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "6S0", "5M"], + focusenergy: ["8M", "8L5", "7L36", "6L36", "5L36"], + frustration: ["7M", "6M", "5M"], + furyattack: ["8L10", "7L11", "6L11", "5L11"], + gigaimpact: ["8M", "8L55", "7M", "7L61", "6M", "6L61", "5M", "5L61"], + headbutt: ["8E", "7E", "6E", "5E"], + headcharge: ["8L40", "7L31", "6L31", "6S0", "5L31"], + hiddenpower: ["7M", "6M", "5M"], + highhorsepower: ["8M"], + hornattack: ["8L25", "7L16", "6L16", "5L16"], + ironhead: ["8M", "7T", "7E", "6T", "6E", "5T", "5E"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + megahorn: ["8M", "8L50", "7L41", "6L41", "5L41"], + mudshot: ["8M", "7E", "6E", "5E"], + mudslap: ["8E", "7E", "6E", "5E"], + outrage: ["8M", "7T", "6T", "5T"], + payback: ["8M", "7M", "6M", "5M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7L1", "6L1", "5L1"], + rage: ["7L6", "6L6", "5L6"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "8L15", "7L26", "6L26", "5L26"], + reversal: ["8M", "8L30", "7L46", "6L46", "5L46"], + rockclimb: ["7E", "6E", "5E"], + rockslide: ["8M", "7M", "6M", "6S0", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "8L20", "7L21", "6L21", "5L21"], + secretpower: ["6M"], + skullbash: ["8E", "7E", "6E", "5E"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T", "6T", "5T"], + stomp: ["8E", "7E", "6E", "5E"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["8M", "8L45", "7M", "7L56", "6M", "6L56", "5M", "5L56"], + tackle: ["8L1"], + taunt: ["8M", "7M", "6M", "5M"], + thrash: ["7L50", "6L50", "5L51"], + throatchop: ["8M", "8L35"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + wildcharge: ["8M", "7M", "6M", "5M"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Adamant", ivs: {hp: 31, atk: 31}, isHidden: true, moves: ["headcharge", "facade", "earthquake", "rockslide"], pokeball: "cherishball"}, + ], + }, + rufflet: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L30", "8L30", "7M", "7L23", "6M", "6L23", "5M", "5L23"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "9L55", "8M", "8L55", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bravebird: ["9M", "9L72", "8M", "8L72", "7L59", "6L59", "5L59"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + crushclaw: ["9L48", "8L48", "7L46", "6L46", "5L46"], + cut: ["6M", "5M"], + defog: ["9L60", "8L60", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L5", "6L5", "5L5"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L6", "8L6", "7L14", "6M", "6L14", "5M", "5L14"], + hurricane: ["9M", "8M"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + peck: ["9L1", "8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["9E", "6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["9E", "7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L24", "8M", "8L24", "7L19", "6L19", "5L19"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skydrop: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + slash: ["9L36", "8L36", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L66", "8L66", "7L64", "6L64", "5L64"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L42", "8L42", "7L55", "6L55", "5L55"], + wingattack: ["9L12", "8L12", "7L10", "6L10", "5L10"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M"], + }, + }, + braviary: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L30", "8L30", "7M", "7L23", "6M", "6L23", "5M", "5L23", "5S0"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "9L57", "8M", "8L57", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["8M", "7M", "6M", "5M"], + bodyslam: ["9M"], + bravebird: ["9M", "8M", "8L80", "7L1", "6L1", "5L63"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + closecombat: ["9M", "8M"], + confide: ["7M", "6M"], + crushclaw: ["9L48", "8L48", "7L46", "6L46", "5L46"], + cut: ["6M", "5M"], + defog: ["9L64", "8L64", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L1", "6L1", "5L1"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["9L1", "8L1", "7L14", "6M", "6L14", "5M", "5L14", "5S0"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + ironhead: ["9M", "8M"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L1", "6L1", "5L1"], + metalclaw: ["9M"], + peck: ["9L1", "8L1", "7L1", "6L1", "5L1"], + pluck: ["5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M"], + rockslide: ["9M", "8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L24", "8M", "8L24", "7L19", "6L19", "5L19", "5S0"], + secretpower: ["6M"], + shadowclaw: ["9M", "8M", "7M", "6M", "5M"], + skyattack: ["9L1", "8L1", "7T", "6T", "5T"], + skydrop: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + slash: ["9L36", "8L36", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1", "5T", "5L51"], + swagger: ["7M", "6M", "5M"], + swift: ["9M", "8M"], + tailwind: ["9M", "9L18", "8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L72", "8L72", "7L1", "6L1", "5L70"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L42", "8L42", "7L1", "6L1", "5L57"], + wingattack: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + workup: ["8M", "7M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T"], + }, + eventData: [ + {generation: 5, level: 25, gender: "M", isHidden: true, moves: ["wingattack", "honeclaws", "scaryface", "aerialace"]}, + ], + encounters: [ + {generation: 6, level: 45}, + ], + }, + braviaryhisui: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M", "9L30"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L57"], + bodyslam: ["9M"], + bravebird: ["9M"], + bulkup: ["9M"], + calmmind: ["9M"], + closecombat: ["9M"], + confuseray: ["9M"], + crushclaw: ["9L48"], + dazzlinggleam: ["9M"], + defog: ["9L64"], + endure: ["9M"], + esperwing: ["9L0"], + facade: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + honeclaws: ["9L1"], + hurricane: ["9M", "9L80"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + leer: ["9L1"], + metalclaw: ["9M"], + nightshade: ["9M"], + peck: ["9L1"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M", "9L24"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skyattack: ["9L1"], + slash: ["9L36"], + sleeptalk: ["9M"], + snarl: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L1"], + swift: ["9M"], + tailwind: ["9M", "9L18"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L72"], + uturn: ["9M"], + whirlwind: ["9L42"], + wingattack: ["9L1"], + zenheadbutt: ["9M"], + }, + }, + vullaby: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M", "8L42", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["8M", "8L66", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bravebird: ["8M", "8L72", "7L59", "6L59", "5L59"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], + defog: ["8L60", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + embargo: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M", "7E", "6E", "5E"], + feintattack: ["7L23", "6L23", "5L23"], + flatter: ["8L6", "7L19", "6L19", "5L19"], + fly: ["8M", "7M", "6M", "5M"], + foulplay: ["8M", "7T", "7E", "6T", "6E", "5T"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L5", "6L5", "5L5"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "8L30", "5T"], + knockoff: ["8L24", "7T", "7E", "6T", "6E", "5T", "5E"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + meanlook: ["8E", "7E", "6E", "5E"], + mirrormove: ["7L64", "6L64", "5L64"], + nastyplot: ["8M", "8L54", "7L14", "6L14", "5L14"], + payback: ["8M", "7M", "6M", "5M"], + pluck: ["8L12", "7L10", "6L10", "5M", "5L10"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L28", "6L28", "5L28"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["8E", "7M", "7E", "6M", "6E", "5T", "5E"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "7E", "6M", "6E", "5E"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["8E", "7M", "6M", "5M"], + uturn: ["8M", "7M", "6M", "5M"], + whirlwind: ["8L36", "7L55", "6L55", "5L55"], + }, + }, + mandibuzz: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M", "8L42", "7L41", "6L41", "5L41"], + assurance: ["8M"], + attract: ["8M", "8L72", "7M", "6M", "5M"], + block: ["7T", "6T", "5T"], + bonerush: ["8L0", "7L1", "6L1", "5L51"], + bravebird: ["8M", "8L80", "7L1", "6L1", "5L63"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + darkpulse: ["8M", "8L48", "7M", "7L46", "6M", "6L46", "5T", "5L46"], + defog: ["8L64", "7T", "7L32", "6L32", "5L32"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + embargo: ["7M", "7L50", "6M", "6L50", "5M", "5L50"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + faketears: ["8M"], + feintattack: ["7L23", "6L23", "5L23", "5S0"], + flatter: ["8L1", "7L19", "6L19", "5L19", "5S0"], + fly: ["8M", "7M", "6M", "5M"], + foulplay: ["8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + furyattack: ["7L1", "6L1", "5L1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gust: ["8L1", "7L1", "6L1", "5L1"], + heatwave: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irondefense: ["8M", "8L30", "7T", "5T"], + knockoff: ["8L24", "7T", "6T", "5T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + mirrormove: ["7L1", "6L1", "5L70"], + nastyplot: ["8M", "8L57", "7L14", "6L14", "5L14", "5S0"], + payback: ["8M", "7M", "6M", "5M"], + pluck: ["8L1", "7L1", "6L1", "5M", "5L1", "5S0"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + punishment: ["7L28", "6L28", "5L28"], + raindance: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + skyattack: ["8L1", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snarl: ["8M", "7M", "6M", "5M"], + snatch: ["7T", "6T", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["8L18", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["8L1", "7M", "6M", "5M"], + uturn: ["8M", "7M", "6M", "5M"], + whirlwind: ["8L36", "7L1", "6L1", "5L57"], + }, + eventData: [ + {generation: 5, level: 25, gender: "F", isHidden: true, moves: ["pluck", "nastyplot", "flatter", "feintattack"]}, + ], + }, + heatmor: { + learnset: { + aerialace: ["7M", "6M", "5M"], + amnesia: ["8M", "8L45", "7L47", "6L44", "5L46"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["8E", "7E", "6E"], + bind: ["8L30", "7T", "7L11", "6T", "6L11", "5T", "5L11"], + bodyslam: ["8M", "7E", "6E", "5E"], + brutalswing: ["8M"], + bugbite: ["8L15", "7T", "7L36", "6T", "6L36", "5T", "5L36"], + burningjealousy: ["8T"], + confide: ["7M", "6M"], + curse: ["8E", "7E", "6E", "5E"], + cut: ["6M", "5M"], + dig: ["8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["8M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + fireblast: ["8M", "7M", "6M", "5M"], + firelash: ["8L35", "7L44"], + firepunch: ["8M", "7T", "6T", "5T"], + firespin: ["8M", "8L50", "7L16", "6L16", "5L16"], + flameburst: ["7L31", "6L31", "5L31"], + flamethrower: ["8M", "7M", "7L50", "6M", "6L47", "5M", "5L51"], + flareblitz: ["8M", "8L60", "7L61"], + fling: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + furyswipes: ["8L5", "7L21", "6L21", "5L21"], + gastroacid: ["7T", "6T", "5T"], + gigadrain: ["8M", "7T", "6T", "5T", "5D"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heatwave: ["8M", "7T", "7E", "6T", "6E", "5T", "5E", "5D"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["8L40", "7L1", "6M", "6L1", "5M"], + incinerate: ["8L10", "7L1", "6M", "6L1", "5M", "5L1", "5D"], + inferno: ["8L55", "7L66", "6L1", "5L61"], + knockoff: ["7T", "6T", "5T"], + lick: ["8L1", "7L1", "6L1", "5L1"], + lowkick: ["8M", "7T", "6T", "5T"], + nightslash: ["8E", "7E", "6E", "5E"], + odorsleuth: ["7L6", "6L6", "5L6"], + overheat: ["8M", "7M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M", "5M"], + pursuit: ["7E", "6E", "5E"], + raindance: ["8M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["8L25", "7L41", "6L41", "5L41"], + sleeptalk: ["8M", "7M", "7E", "6M", "6E", "5T", "5E"], + snatch: ["7T", "7L26", "6T", "6L26", "5T", "5L26"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + spitup: ["8L20", "7L56", "6L50", "5L56"], + stockpile: ["8L20", "7L56", "6L50", "5L56"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M", "6M", "5M"], + suckerpunch: ["8E", "7E", "6E", "5E"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swallow: ["8L20", "7L56", "6L50", "5L56"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "7M", "6M", "5M"], + thief: ["8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T", "5T"], + tickle: ["8E", "7E", "6E", "5E"], + toxic: ["7M", "6M", "5M"], + willowisp: ["8M", "7M", "6M", "5M"], + wrap: ["7E", "6E", "5E"], + }, + }, + durant: { + learnset: { + aerialace: ["7M", "6M", "5M"], + agility: ["8M", "8L24", "7L6", "6L16", "5L16"], + attract: ["8M", "7M", "6M", "5M"], + batonpass: ["8M", "7E", "6E", "5E"], + beatup: ["8M", "8L12"], + bite: ["8L20", "7L1", "6L11", "5L11"], + bugbite: ["8L16", "7T", "7L16", "6T", "6L26", "5T", "5L26"], + confide: ["7M", "6M"], + crunch: ["8M", "8L36", "7L21", "6L31", "5L31"], + cut: ["6M", "5M"], + dig: ["8M", "8L28", "7L31", "6M", "6L41", "5M", "5L41"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M", "7E", "6E", "5E", "5D"], + energyball: ["8M", "7M", "6M", "5M"], + entrainment: ["8L48", "7L36", "6L46", "5L46"], + facade: ["8M", "7M", "6M", "5M"], + feintattack: ["7E", "6E", "5E"], + firstimpression: ["8E"], + flail: ["8E"], + flashcannon: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L1", "6L6", "5L6", "5D"], + gigaimpact: ["8M", "7M", "6M", "5M"], + guillotine: ["8L56", "7L1", "6L1", "5L61"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + infestation: ["8E"], + irondefense: ["8M", "8L52", "7T", "7L46", "6T", "6L1", "5T", "5L56"], + ironhead: ["8M", "8L44", "7T", "7L26", "6T", "6L36", "5T", "5L36"], + metalburst: ["8E"], + metalclaw: ["8L8", "7L11", "6L21", "5L21"], + metalsound: ["8L40", "7L1", "6L1", "5L66"], + protect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockclimb: ["7E", "6E", "5E"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sandattack: ["8L1", "7L1", "6L1", "5L1"], + sandstorm: ["8M", "7M", "6M", "5M"], + screech: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stompingtantrum: ["8M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + strugglebug: ["8E", "6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + thunderfang: ["8M", "7E", "6E", "5E", "5D"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + visegrip: ["8L4", "7L1", "6L1", "5L1"], + xscissor: ["8M", "8L32", "7M", "7L41", "6M", "6L51", "5M", "5L51"], + }, + }, + deino: { + learnset: { + aquatail: ["7T", "6T", "5T"], + assurance: ["9L16", "8M", "8L16", "7E", "6E", "5E"], + astonish: ["9E", "8E", "7E", "6E", "5E"], + attract: ["8M", "7M", "6M", "5M"], + belch: ["9E", "8E", "7E"], + bite: ["9L8", "8L8", "7L9", "6L9", "5L9"], + bodyslam: ["9M", "9L44", "8M", "8L44", "7L48", "6L48", "5L48"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "5L25"], + darkpulse: ["9M", "8M", "7M", "7E", "6M", "6E", "5T", "5E"], + doublehit: ["9E", "8E", "7E", "6E", "5E"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonbreath: ["9L4", "8L4", "7L17", "6L17", "5L17"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + dragonrage: ["7L1", "6L1", "5L1", "5S0"], + dragonrush: ["9L52", "8L52", "7L42", "6L42", "5L42"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M", "7E", "6E", "5E"], + focusenergy: ["9L1", "8M", "8L1", "7L4", "6L4", "5L4"], + frustration: ["7M", "6M", "5M"], + headbutt: ["9L20", "8L20", "7L12", "6L12", "5L12"], + headsmash: ["9E", "8E", "7E", "6E", "5E"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["9M", "9L48", "8M", "8L48", "7T", "7L58", "6T", "6L58", "5T", "5L58"], + icefang: ["9M", "8M", "7E", "6E", "5E"], + incinerate: ["6M", "5M"], + nastyplot: ["9M", "9L56", "8M", "8L56"], + outrage: ["9M", "9L60", "8M", "8L60", "7T", "7L62", "6T", "6L62", "5T", "5L62"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L50", "6L50", "5L52"], + screech: ["8M", "7E", "6E", "5E"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + slam: ["9L28", "8L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderfang: ["9M", "8M", "7E", "6E", "5E"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + workup: ["9L24", "8M", "8L24", "7M", "7L38", "6L38", "5M", "5L38"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 1, shiny: true, moves: ["tackle", "dragonrage"], pokeball: "pokeball"}, + ], + }, + zweilous: { + learnset: { + aquatail: ["7T", "6T", "5T"], + assurance: ["9L16", "8M", "8L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1"], + bodyslam: ["9M", "9L44", "8M", "8L44", "7L48", "6L48", "5L48"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "5L25"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + doublehit: ["9L1", "8L1", "7L1", "6L1", "5L1"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonbreath: ["9L1", "8L1", "7L17", "6L17", "5L17"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + dragonrage: ["7L1", "6L1", "5L1"], + dragonrush: ["9L54", "8L54", "7L42", "6L42", "5L42"], + dragontail: ["9M", "7M", "6M", "5M"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "5M"], + headbutt: ["9L20", "8L20", "7L12", "6L12", "5L12"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + hypervoice: ["9M", "9L48", "8M", "8L48", "7T", "7L64", "6T", "6L64", "5T", "5L64"], + icefang: ["9M", "8M"], + incinerate: ["6M", "5M"], + nastyplot: ["9M", "9L60", "8M", "8L60"], + outrage: ["9M", "9L66", "8M", "8L66", "7T", "7L71", "6T", "6L71", "5T", "5L71"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L55", "6L55", "5L55"], + screech: ["8M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + slam: ["9L28", "8L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stompingtantrum: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thunderfang: ["9M", "8M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["8M", "7T", "6T", "5T"], + workup: ["9L24", "8M", "8L24", "7M", "7L38", "6L38", "5M", "5L38"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + encounters: [ + {generation: 5, level: 49}, + ], + }, + hydreigon: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aquatail: ["7T", "6T", "5T"], + assurance: ["9L16", "8M", "8L16"], + attract: ["8M", "7M", "6M", "5M"], + beatup: ["8M"], + bite: ["9L1", "8L1", "7L1", "6L1", "5L1"], + bodyslam: ["9M", "9L44", "8M", "8L44", "7L48", "6L48", "5L48"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M", "6M", "5M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L32", "8M", "8L32", "7L25", "6L25", "6S1", "5L25"], + darkpulse: ["9M", "8M", "7M", "6M", "5T"], + defog: ["7T"], + doublehit: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["9M", "8T", "7T", "6T", "5T"], + dragonbreath: ["9L1", "8L1", "7L17", "6L17", "5L17", "5S0"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L32", "6T", "6L32", "5T", "5L32"], + dragonrage: ["7L1", "6L1", "5L1"], + dragonrush: ["9L54", "8L54", "7L42", "6L42", "6S1", "5L42"], + dragontail: ["9M", "7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["9M", "8M", "7T", "6T", "5T"], + earthquake: ["9M", "8M", "7M", "6M", "5M"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firefang: ["9M", "8M"], + firespin: ["9M", "8M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M", "5S0"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M", "5S0"], + focusenergy: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + frustration: ["7M", "6M", "6S1", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + headbutt: ["9L20", "8L20", "7L12", "6L12", "5L12"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + helpinghand: ["9M", "8M"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "9L76", "8M", "8L76", "7M", "6M", "5M"], + hypervoice: ["9M", "9L48", "8M", "8L48", "7T", "7L1", "6T", "6L1", "5T", "5L68", "5S0"], + icefang: ["9M", "8M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + nastyplot: ["9M", "9L60", "8M", "8L60"], + outrage: ["9M", "9L68", "8M", "8L68", "7T", "7L1", "6T", "6L1", "5T", "5L79"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + raindance: ["9M", "8M", "7M", "6M", "5M"], + reflect: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roar: ["9L12", "8L12", "7M", "7L20", "6M", "6L20", "5M", "5L20"], + rockslide: ["9M", "8M", "7M", "6M", "6S1", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["9M", "8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["9M", "9L36", "8M", "8L36", "7L55", "6L55", "5L55"], + screech: ["8M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + slam: ["9L28", "8L28", "7L28", "6L28", "5L28"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snarl: ["9M", "8M"], + snore: ["8M", "7T", "6T", "5T"], + spite: ["7T", "6T", "5T"], + stealthrock: ["9M"], + steelwing: ["8M", "7M", "6M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tackle: ["9L1", "8L1"], + tailwind: ["9M", "7T", "6T", "5T"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + throatchop: ["8M", "7T"], + thunderfang: ["9M", "8M"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + triattack: ["9L1", "8M", "8L1", "7L1", "6L1", "5L1"], + uproar: ["8M", "7T", "6T", "5T"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + workup: ["9L24", "8M", "8L24", "7M", "7L38", "6L38", "5M", "5L38"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 70, shiny: true, gender: "M", moves: ["hypervoice", "dragonbreath", "flamethrower", "focusblast"], pokeball: "cherishball"}, + {generation: 6, level: 52, gender: "M", perfectIVs: 2, moves: ["dragonrush", "crunch", "rockslide", "frustration"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 59}, + ], + }, + larvesta: { + learnset: { + absorb: ["9E", "8E", "7L10"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + amnesia: ["9M", "9L54", "8M", "8L54", "7L80", "6L80", "5L80"], + attract: ["8M"], + bodyslam: ["9M"], + bugbite: ["9L24", "8L24", "7T", "7L40", "6T", "6L40", "5T", "5L40"], + bugbuzz: ["9M", "9L42", "8M", "8L42", "7L70", "6L70", "5L70"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + doubleedge: ["9L60", "8L60", "7L50", "6L50", "5L50"], + doubleteam: ["7M", "6M", "5M"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], + endure: ["9M", "8M", "7E", "6E", "5E"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fireblast: ["9M", "8M", "7M", "6M", "5M"], + firespin: ["9M"], + flamecharge: ["9M", "9L6", "8L6", "7M", "7L30", "6M", "6L30", "5M", "5L30"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flamewheel: ["9L18", "8L18", "7L60", "6L60", "5L60"], + flareblitz: ["9M", "9L66", "8M", "8L66", "7L100", "6L100", "5L100"], + foresight: ["7E", "6E", "5E"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T"], + harden: ["9E", "8E", "7E", "6E", "5E"], + heatwave: ["9M", "8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + incinerate: ["6M", "5M"], + leechlife: ["9M", "9L36", "8M", "8L36", "7M", "6L10", "5L10"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "7E", "6T", "6E", "5T", "5E"], + morningsun: ["9E", "7E", "6E", "5E"], + overheat: ["9M", "8M", "7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["9L30", "8M", "8L30"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + stringshot: ["9L1", "8L1", "7L1", "7E", "6L1", "6E", "5L1", "5E"], + strugglebug: ["9M", "9L12", "8L12", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + takedown: ["9M", "9L48", "8L48", "7L20", "6L20", "5L20"], + terablast: ["9M"], + thrash: ["9E", "8E", "7L90", "6L90", "5L90"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "7E", "6T", "6E", "5T", "5E"], + }, + }, + volcarona: { + learnset: { + absorb: ["7L1"], + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + aircutter: ["9M"], + airslash: ["9M"], + amnesia: ["9M", "9L54", "8M", "8L54", "7L1", "6L1"], + attract: ["8M"], + bodyslam: ["9M"], + bugbite: ["9L24", "8L24", "7T", "6T", "5T"], + bugbuzz: ["9M", "9L42", "8M", "8L42", "7L1", "6L1", "5L70", "5S1"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + defog: ["7T"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + ember: ["9L1", "8L1", "7L1", "6L1", "5L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fierydance: ["9L1", "8L1", "7L1", "6L1", "5L100"], + fireblast: ["9M", "9L70", "8M", "8L70", "7M", "6M", "5M"], + firespin: ["9M", "9L1", "8M", "8L1", "7L30", "6L30", "5L30", "5S0"], + flamecharge: ["9M", "9L1", "8L1", "7M", "6M", "5M"], + flamethrower: ["9M", "8M", "7M", "6M", "5M"], + flamewheel: ["9L18", "8L18", "7L1", "6L1"], + flareblitz: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + fly: ["9M", "8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["9M", "8M", "7T", "6T", "5T"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + heatwave: ["9M", "9L48", "8M", "8L48", "7T", "7L1", "6T", "6L1", "5T", "5L60"], + hiddenpower: ["7M", "6M", "5M"], + hurricane: ["9M", "9L62", "8M", "8L62", "7L1", "6L1", "5L90"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M", "5S1"], + incinerate: ["6M", "5M"], + leechlife: ["9M", "9L36", "8M", "8L36", "7M", "6L1", "5L1", "5S0"], + lightscreen: ["9M", "8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + mysticalfire: ["8M"], + overheat: ["9M", "8M", "7M", "6M", "5M", "5S1"], + poisonjab: ["9M", "8M", "7M", "6M", "5M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + quiverdance: ["9L0", "8L0", "7L1", "6L1", "5L59", "5S1"], + ragepowder: ["9L78", "8L78", "7L1", "6L1", "5L80"], + raindance: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + screech: ["9L30", "8M", "8L30"], + secretpower: ["6M"], + signalbeam: ["7T", "6T", "5T"], + silverwind: ["7L50", "6L50", "5L50"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["9M", "8M", "7M", "6M", "5M"], + stringshot: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S0"], + strugglebug: ["9M", "9L1", "8L1", "6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M", "8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + tailwind: ["9M", "7T", "6T", "5T"], + takedown: ["9M", "9L1", "8L1"], + terablast: ["9M"], + thrash: ["7L1", "6L1"], + toxic: ["7M", "6M", "5M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + whirlwind: ["9L1", "8L1", "7L40", "6L40", "5L40"], + wildcharge: ["9M", "8M", "7M", "6M", "5M"], + willowisp: ["9M", "8M", "7M", "6M", "5M"], + zenheadbutt: ["9M", "8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 35, moves: ["stringshot", "leechlife", "gust", "firespin"]}, + {generation: 5, level: 77, gender: "M", nature: "Calm", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["bugbuzz", "overheat", "hyperbeam", "quiverdance"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 41}, + ], + }, + cobalion: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + block: ["7T", "6T", "5T"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "8L63", "8S5", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + magnetrise: ["7T", "6T", "5T"], + megahorn: ["8M"], + metalburst: ["8L35", "7L1", "6L1", "5L67"], + metalclaw: ["8L7", "7L1", "6L13", "5L13"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "7S4", "6L1", "5L1"], + quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + steelbeam: ["8T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + takedown: ["8L42", "7L7", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + xscissor: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "ironhead", "sacredsword"]}, + {generation: 5, level: 45, shiny: 1, moves: ["helpinghand", "retaliate", "ironhead", "sacredsword"]}, + {generation: 5, level: 65, shiny: 1, moves: ["sacredsword", "swordsdance", "quickguard", "workup"]}, + {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "ironhead", "sacredsword", "swordsdance"]}, + {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "quickattack", "ironhead"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "ironhead", "closecombat"]}, + ], + eventOnly: true, + }, + terrakion: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + block: ["7T", "6T", "5T"], + brickbreak: ["8M"], + bulldoze: ["8M", "7M", "6M", "5M"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["8M", "7T", "6T", "5T"], + earthquake: ["8M", "7M", "6M", "5M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + ironhead: ["8M", "7T", "6T", "5T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1", "6L1", "5L1"], + megahorn: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["8M", "8L35", "7M", "7L25", "7S4", "6M", "6L37", "6S3", "5M", "5L37", "5S0", "5S1"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + safeguard: ["8M", "7M", "6M", "5M"], + sandstorm: ["8M", "7M", "6M", "5M"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smackdown: ["8L7", "7M", "7L1", "6M", "6L13", "5M", "5L13"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["8M", "7T", "6T", "5T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "8L63", "8S5", "7M", "7L55", "7S4", "6M", "6L67", "5M", "5L67"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + takedown: ["8L42", "7L7", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + xscissor: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "rockslide", "sacredsword"]}, + {generation: 5, level: 45, shiny: 1, moves: ["helpinghand", "retaliate", "rockslide", "sacredsword"]}, + {generation: 5, level: 65, shiny: 1, moves: ["sacredsword", "swordsdance", "quickguard", "workup"]}, + {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "rockslide", "sacredsword", "swordsdance"]}, + {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "rockslide", "stoneedge"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "stoneedge", "closecombat"]}, + ], + eventOnly: true, + }, + virizion: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + block: ["7T", "6T", "5T"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "8S5", "7L1", "6L1", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "5L7"], + doubleteam: ["7M", "6M", "5M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigadrain: ["8M", "8L35", "7T", "7L25", "7S4", "6T", "6L37", "6S3", "5T", "5L37", "5S0", "5S1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + grassknot: ["8M", "7M", "6M", "5M"], + grassyglide: ["8T"], + helpinghand: ["8M", "8L1", "7T", "7L13", "6T", "6L25", "5T", "5L25", "5S0", "5S1"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + laserfocus: ["7T"], + leafblade: ["8M", "8L63", "8S5", "7L1", "7S4", "6L1", "5L67"], + leafstorm: ["8M"], + leer: ["8L1", "7L1", "6L1", "5L1"], + lightscreen: ["8M", "7M", "6M", "5M"], + magicalleaf: ["8M", "8L7", "7L1", "6L13", "5L13"], + megahorn: ["8M"], + naturepower: ["7M", "6M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + quickguard: ["8L14", "7L42", "6L1", "5L55", "5S2"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L19", "6M", "6L31", "6S3", "5M", "5L31", "5S0", "5S1"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S5", "7L31", "7S4", "6L42", "6S3", "5L42", "5S0", "5S1", "5S2"], + safeguard: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + solarblade: ["8M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S5", "7M", "7L37", "7S4", "6M", "6L49", "6S3", "5M", "5L49", "5S2"], + synthesis: ["7T", "6T", "5T"], + takedown: ["8L42", "7L7", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + workup: ["8M", "8L1", "7M", "7L49", "6L1", "5M", "5L61", "5S2"], + worryseed: ["7T", "6T", "5T"], + xscissor: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 42, shiny: 1, moves: ["helpinghand", "retaliate", "gigadrain", "sacredsword"]}, + {generation: 5, level: 45, shiny: 1, moves: ["helpinghand", "retaliate", "gigadrain", "sacredsword"]}, + {generation: 5, level: 65, shiny: 1, moves: ["sacredsword", "swordsdance", "quickguard", "workup"]}, + {generation: 6, level: 50, shiny: 1, moves: ["retaliate", "gigadrain", "sacredsword", "swordsdance"]}, + {generation: 7, level: 60, shiny: 1, moves: ["sacredsword", "swordsdance", "gigadrain", "leafblade"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sacredsword", "swordsdance", "leafblade", "closecombat"]}, + ], + eventOnly: true, + }, + tornadus: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M", "5M"], + aerialace: ["7M", "6M", "5M"], + agility: ["9M", "9L25", "8M", "8L25", "8S7", "7L31", "6L37", "6S3", "5L37", "5S0"], + aircutter: ["9M", "9L20", "8L20", "7L19", "6L25", "5L25", "5S0"], + airslash: ["9M", "9L35", "8M", "8L35", "7L37", "7S4", "7S5", "6L43", "6S3", "5L43", "5S2"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L15", "8L15", "7L7", "6L13", "5L13"], + bleakwindstorm: ["9L77"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L40", "8M", "8L40", "7L43", "7S4", "7S5", "6L49", "6S3", "5L49"], + darkpulse: ["9M", "8M", "7M", "7L67", "6M", "6L73", "5T", "5L73"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + embargo: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + extrasensory: ["9L45", "8L45", "7L25", "6L31", "6S3", "5L31", "5S0"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "6M", "5M"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "7S6", "6M", "5M"], + gust: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + hammerarm: ["9L55", "8L55", "7L1", "6L1", "5L79", "5S2"], + heatwave: ["9M", "8M", "8S7", "7T", "7S6", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M", "5S2"], + hurricane: ["9M", "9L65", "8M", "8L65", "8S7", "7L1", "7S6", "6L1", "5L67", "5S2"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + icywind: ["9M", "8M", "8S7", "7T", "6T", "5T"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["9L5", "8L5"], + metronome: ["9M"], + nastyplot: ["9M", "8M"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "9L60", "8M", "8L60", "7M", "7L55", "7S4", "7S5", "6M", "6L61", "5M", "5L61"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7L13", "6L19", "5L19", "5S0"], + reversal: ["9M"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + snowscape: ["9M"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["9L10", "8L10", "7M", "7L1", "6M", "6L7", "5M", "5L7"], + tailwind: ["9M", "9L30", "8L30", "7T", "7L49", "7S4", "7S5", "7S6", "6T", "6L1", "5T", "5L55"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L70", "8L70", "7L1", "6L1", "5L85"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + weatherball: ["8M"], + }, + eventData: [ + {generation: 5, level: 40, shiny: 1, moves: ["revenge", "aircutter", "extrasensory", "agility"]}, + {generation: 5, level: 5, isHidden: true, moves: ["uproar", "astonish", "gust"], pokeball: "dreamball"}, + {generation: 5, level: 70, moves: ["hurricane", "hammerarm", "airslash", "hiddenpower"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["extrasensory", "agility", "airslash", "crunch"]}, + {generation: 7, level: 60, shiny: 1, moves: ["airslash", "crunch", "tailwind", "raindance"]}, + {generation: 7, level: 60, moves: ["airslash", "crunch", "tailwind", "raindance"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["hurricane", "heatwave", "grassknot", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["hurricane", "agility", "icywind", "heatwave"]}, + ], + eventOnly: true, + }, + tornadustherian: { + eventOnly: true, + }, + thundurus: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L25", "8M", "8L25", "7L31", "6L37", "6S3", "5L37", "5S0"], + assurance: ["8M"], + astonish: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + attract: ["8M", "7M", "6M", "5M"], + bite: ["9L15", "8L15", "7L7", "6L13", "5L13"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + charge: ["9L30", "8L30", "7L49", "7S4", "7S5", "6L1", "5L55"], + chargebeam: ["9M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L40", "8M", "8L40", "7L43", "7S4", "7S5", "6L49", "6S3", "5L49"], + darkpulse: ["9M", "8M", "7M", "7L67", "6M", "6L73", "5T", "5L73"], + defog: ["7T"], + discharge: ["9L45", "8L45", "7L37", "7S4", "7S5", "6L43", "6S3", "5L43"], + doubleteam: ["7M", "6M", "5M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T", "6T"], + embargo: ["7M", "6M", "5M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M", "5M"], + flashcannon: ["9M", "8M", "7M", "6M", "5M"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "7M", "7S6", "6M", "5M", "5S2"], + foulplay: ["9M", "8M", "7T", "6T", "5T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "7S6", "6M", "5M"], + hammerarm: ["9L55", "8L55", "7L1", "6L1", "5L79", "5S2"], + healblock: ["7L25", "6L31", "6S3", "5L31", "5S0"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + incinerate: ["6M", "5M"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + lashout: ["8T"], + leer: ["9L5", "8L5"], + nastyplot: ["9M", "8M", "7L1", "7S4", "7S5", "7S6", "6L1", "5L61"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + raindance: ["9M", "9L60", "8M", "8L60", "8S7", "7M", "6M", "5M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + revenge: ["8M", "7L13", "6L19", "5L19", "5S0"], + risingvoltage: ["8T"], + rocksmash: ["6M", "5M"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + shockwave: ["9L20", "8L20", "7T", "7L19", "6T", "6L25", "5L25", "5S0"], + skydrop: ["7M", "6M", "5M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + sludgewave: ["8M", "8S7", "7M", "6M", "5M"], + smackdown: ["7M", "6M", "5M"], + smartstrike: ["9M", "8M", "7M"], + snarl: ["9M"], + snore: ["8M", "7T", "6T", "5T"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["9L10", "8L10", "7M", "7L1", "6M", "6L7", "5M", "5L7"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M", "5M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M", "5M"], + thrash: ["9L70", "8L70", "7L1", "6L1", "5L85"], + thunder: ["9M", "9L65", "8M", "8L65", "8S7", "7M", "7L61", "6M", "6L67", "5M", "5L67", "5S2"], + thunderbolt: ["9M", "8M", "7M", "7S6", "6M", "5M"], + thunderpunch: ["9M", "8M", "7T", "6T", "5T"], + thundershock: ["9L1", "8L1", "7L1", "6L1", "5L1", "5S1"], + thunderwave: ["9M", "8M", "7M", "6M", "5M"], + torment: ["7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + uproar: ["9L50", "8M", "8L50", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + uturn: ["9M", "8M", "7M", "6M", "5M"], + voltswitch: ["9M", "9L35", "8M", "8L35", "7M", "6M", "5M"], + weatherball: ["8M", "8S7"], + wildboltstorm: ["9L75"], + wildcharge: ["9M", "8M", "7M", "6M", "5M", "5S2"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 5, level: 40, shiny: 1, moves: ["revenge", "shockwave", "healblock", "agility"]}, + {generation: 5, level: 5, isHidden: true, moves: ["uproar", "astonish", "thundershock"], pokeball: "dreamball"}, + {generation: 5, level: 70, moves: ["thunder", "hammerarm", "focusblast", "wildcharge"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["healblock", "agility", "discharge", "crunch"]}, + {generation: 7, level: 60, shiny: 1, moves: ["discharge", "crunch", "charge", "nastyplot"]}, + {generation: 7, level: 60, moves: ["discharge", "crunch", "charge", "nastyplot"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["thunderbolt", "focusblast", "grassknot", "nastyplot"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["thunder", "raindance", "weatherball", "sludgewave"]}, + ], + eventOnly: true, + }, + thundurustherian: { + eventOnly: true, + }, + reshiram: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blueflare: ["8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L16", "7L71", "6L71", "5L71"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "7S6", "6T", "5T", "5S2"], + dragonbreath: ["8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], + dragonclaw: ["8M", "8S7", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L32", "7T", "7L54", "7S4", "7S5", "6T", "6L54", "5T", "5L54", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "7S6", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endure: ["8M"], + extrasensory: ["8L24", "8S7", "7L43", "7S4", "7S5", "6L43", "6S3", "5L43", "5S0", "5S1"], + facade: ["8M", "7M", "6M", "5M"], + fireblast: ["8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + firefang: ["8M", "8L1", "7L1", "6L1", "5L1"], + flamecharge: ["7M", "6M", "5M"], + flamethrower: ["8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + flareblitz: ["8M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + fusionflare: ["8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], + gigaimpact: ["8M", "7M", "6M", "5M"], + heatcrash: ["8M"], + heatwave: ["8M", "7T", "6T", "5T"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + imprison: ["8M", "8L72", "7L64", "6L8", "5L8", "5S1"], + incinerate: ["6M", "5M"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + mist: ["5S2"], + mysticalfire: ["8M"], + nobleroar: ["8L1", "8S7", "7L64"], + outrage: ["8M", "8L80", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + overheat: ["8M", "7M", "6M", "5M"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + slash: ["8L8", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "5M"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["7T", "6T", "5T"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + willowisp: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, moves: ["dragonbreath", "slash", "extrasensory", "fusionflare"]}, + {generation: 5, level: 70, moves: ["extrasensory", "fusionflare", "dragonpulse", "imprison"]}, + {generation: 5, level: 100, moves: ["blueflare", "fusionflare", "mist", "dracometeor"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "extrasensory", "fusionflare"]}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "extrasensory", "fusionflare", "dragonpulse"]}, + {generation: 7, level: 60, moves: ["slash", "extrasensory", "fusionflare", "dragonpulse"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["fusionflare", "blueflare", "dracometeor", "earthpower"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["nobleroar", "extrasensory", "fusionflare", "dragonclaw"]}, + ], + eventOnly: true, + }, + zekrom: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + bodypress: ["8M"], + boltstrike: ["8L88", "7L100", "7S6", "6L100", "5L100", "5S2"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L16", "7L71", "6L71", "5L71"], + cut: ["6M", "5M"], + defog: ["7T"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S3", "5L29", "5S0"], + dragonclaw: ["8M", "8L32", "8S7", "7M", "7L54", "7S4", "7S5", "6M", "6L54", "5M", "5L54", "5S1"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T", "5T"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + fusionbolt: ["8L48", "8S7", "7L50", "7S4", "7S5", "7S6", "6L50", "6S3", "5L50", "5S0", "5S1", "5S2"], + gigaimpact: ["8M", "7M", "6M", "5M"], + haze: ["5S2"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L56", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + imprison: ["8M", "8L72", "7L64", "6L8", "5L8", "5S1"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + magnetrise: ["7T", "6T", "5T"], + nobleroar: ["8L1", "8S7", "7L64"], + outrage: ["8M", "8L80", "7T", "7L85", "7S6", "6T", "6L85", "5T", "5L85", "5S2"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + risingvoltage: ["8T"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "8S7", "7L36", "7S4", "7S5", "6L36", "6S3", "5L36", "5S0"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "7S6", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + tailwind: ["7T", "6T", "5T"], + thunder: ["8M", "8L64", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + thunderbolt: ["8M", "8L40", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + thunderfang: ["8M", "8L1", "7L1", "6L1", "5L1"], + thunderpunch: ["8M", "7T", "6T", "5T"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + voltswitch: ["8M", "7M", "6M", "5M"], + weatherball: ["8M"], + wildcharge: ["8M", "7M", "6M", "5M"], + zenheadbutt: ["8M", "8L24", "7T", "7L43", "7S4", "7S5", "6T", "6L43", "6S3", "5T", "5L43", "5S0", "5S1"], + }, + eventData: [ + {generation: 5, level: 50, moves: ["dragonbreath", "slash", "zenheadbutt", "fusionbolt"]}, + {generation: 5, level: 70, moves: ["zenheadbutt", "fusionbolt", "dragonclaw", "imprison"]}, + {generation: 5, level: 100, moves: ["boltstrike", "fusionbolt", "haze", "outrage"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "zenheadbutt", "fusionbolt"]}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "zenheadbutt", "fusionbolt", "dragonclaw"]}, + {generation: 7, level: 60, moves: ["slash", "zenheadbutt", "fusionbolt", "dragonclaw"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["fusionbolt", "boltstrike", "outrage", "stoneedge"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["nobleroar", "slash", "fusionbolt", "dragonclaw"]}, + ], + eventOnly: true, + }, + landorus: { + learnset: { + attract: ["8M", "7M", "6M", "5M"], + block: ["9L10", "8L10", "7T", "7L1", "6T", "6L1", "5T", "5L1", "5S1"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M", "7M", "6M", "5M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "8M", "7M", "6M", "5M"], + bulldoze: ["9M", "9L15", "8M", "8L15", "8S5", "7M", "7L13", "6M", "6L19", "5M", "5L19"], + calmmind: ["9M", "8M", "7M", "6M", "5M"], + confide: ["7M", "6M"], + crunch: ["9M"], + defog: ["7T"], + dig: ["9M", "8M", "6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + earthpower: ["9M", "9L40", "8M", "8L40", "7T", "7L37", "7S4", "6T", "6L43", "6S2", "5T", "5L43"], + earthquake: ["9M", "9L65", "8M", "8L65", "7M", "7L49", "7S4", "6M", "6L55", "6S3", "5M", "5L55", "5S0"], + endure: ["9M", "8M"], + explosion: ["7M", "6M", "5M"], + extrasensory: ["9L45", "8L45", "7L25", "6L31", "6S2", "5L31"], + facade: ["9M", "8M", "7M", "6M", "5M"], + fissure: ["9L75", "8L75", "7L1", "6L1", "5L67", "5S0"], + fling: ["9M", "8M", "7M", "6M", "5M"], + fly: ["9M", "8M", "7M", "6M", "5M"], + focusblast: ["9M", "8M", "8S5", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "8M", "7M", "6M", "5M"], + grassknot: ["9M", "8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + hammerarm: ["9L55", "8L55", "7L1", "6L1", "5L79"], + hiddenpower: ["7M", "6M", "5M"], + hyperbeam: ["9M", "8M", "7M", "6M", "5M"], + imprison: ["9M", "9L30", "8M", "8L30", "7L1", "6L7", "5L7"], + irontail: ["8M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "6S3", "5T"], + leer: ["9L5", "8L5"], + mudshot: ["9M", "8M", "7L1", "6L1", "5L1", "5S1"], + mudslap: ["9M"], + nastyplot: ["9M"], + outrage: ["9M", "9L70", "8M", "8L70", "7T", "7L1", "6T", "6L1", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["9M", "8M", "7M", "6M", "5M"], + psychic: ["9M", "8M", "7M", "6M", "5M"], + punishment: ["7L7", "6L13", "5L13"], + raindance: ["9M"], + rest: ["9M", "8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + rockslide: ["9M", "9L35", "8M", "8L35", "8S5", "7M", "7L43", "7S4", "6M", "6L49", "6S2", "5M", "5L49", "5S0"], + rocksmash: ["6M", "5M"], + rockthrow: ["8L1", "7L19", "6L25", "5L25"], + rocktomb: ["9M", "9L20", "8M", "8L20", "7M", "7L1", "6M", "6L1", "6S3", "5M", "5L1", "5S1"], + roleplay: ["7T", "6T", "5T"], + round: ["8M", "7M", "6M", "5M"], + sandsearstorm: ["9L80"], + sandstorm: ["9M", "9L60", "8M", "8L60", "7M", "7L55", "7S4", "6M", "6L61", "5M", "5L61", "5S0"], + sandtomb: ["9L1", "8M", "8L1", "8S5"], + scaryface: ["9M", "8M"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M", "5T"], + sludgebomb: ["9M", "8M", "7M", "6M", "5M"], + sludgewave: ["8M", "7M", "6M", "5M"], + smackdown: ["9L1", "7M", "6M", "5M"], + snore: ["8M", "7T", "6T", "5T"], + stealthrock: ["9M", "8M", "7T", "6T", "5T"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L50", "8M", "8L50", "7M", "7L67", "6M", "6L73", "5M", "5L73"], + strength: ["6M", "5M"], + substitute: ["9M", "8M", "7M", "6M", "5M"], + sunnyday: ["9M"], + superpower: ["8M", "7T", "6T", "5T"], + swagger: ["7M", "6M", "5M"], + swordsdance: ["9M", "8M", "8L25", "7M", "7L31", "6M", "6L37", "6S2", "5M", "5L37"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + toxic: ["7M", "6M", "5M"], + uturn: ["9M", "8M", "7M", "6M", "6S3", "5M"], + weatherball: ["8M"], + }, + eventData: [ + {generation: 5, level: 70, shiny: 1, moves: ["rockslide", "earthquake", "sandstorm", "fissure"]}, + {generation: 5, level: 5, isHidden: true, moves: ["block", "mudshot", "rocktomb"], pokeball: "dreamball"}, + {generation: 6, level: 65, shiny: 1, moves: ["extrasensory", "swordsdance", "earthpower", "rockslide"]}, + {generation: 6, level: 50, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 1, spd: 31, spe: 24}, moves: ["earthquake", "knockoff", "uturn", "rocktomb"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["earthpower", "rockslide", "earthquake", "sandstorm"]}, + {generation: 8, level: 70, shiny: 1, moves: ["sandtomb", "rockslide", "bulldoze", "focusblast"]}, + ], + eventOnly: true, + }, + landorustherian: { + eventOnly: true, + }, + kyurem: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + glaciate: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L50", "5S0", "5S1"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["8M", "7T", "6T", "6S3", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + nobleroar: ["8L1", "7L64"], + outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L43", "5S1"], + secretpower: ["6M"], + shadowball: ["8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sheercold: ["8L88"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 75, shiny: 1, moves: ["glaciate", "dragonpulse", "imprison", "endeavor"]}, + {generation: 5, level: 70, shiny: 1, moves: ["scaryface", "glaciate", "dragonpulse", "imprison"]}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "scaryface", "glaciate"]}, + {generation: 6, level: 100, moves: ["glaciate", "scaryface", "dracometeor", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "scaryface", "glaciate", "dragonpulse"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "scaryface"]}, + ], + eventOnly: true, + }, + kyuremblack: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1"], + freezeshock: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], + frustration: ["7M", "6M", "5M"], + fusionbolt: ["8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L50", "5S1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["8M", "7T", "6T", "6S3", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + nobleroar: ["8L1", "7L64"], + outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sheercold: ["8L88"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 75, shiny: 1, moves: ["freezeshock", "dragonpulse", "imprison", "endeavor"]}, + {generation: 5, level: 70, shiny: 1, moves: ["fusionbolt", "freezeshock", "dragonpulse", "imprison"]}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "fusionbolt", "freezeshock"]}, + {generation: 6, level: 100, moves: ["freezeshock", "fusionbolt", "dracometeor", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "fusionbolt", "freezeshock", "dragonpulse"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "fusionbolt"]}, + ], + eventOnly: true, + }, + kyuremwhite: { + learnset: { + ancientpower: ["8L1", "7L15", "6L15", "5L15"], + blizzard: ["8M", "8L56", "7M", "7L78", "6M", "6L78", "5M", "5L78"], + bodypress: ["8M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + confide: ["7M", "6M"], + cut: ["6M", "5M"], + doubleteam: ["7M", "6M", "5M"], + dracometeor: ["8T", "7T", "6T", "6S3", "5T"], + dragonbreath: ["8L1", "7L29", "6L29", "6S2", "5L29"], + dragonclaw: ["8M", "7M", "6M", "5M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L24", "7T", "7L57", "7S4", "6T", "6L57", "5T", "5L57", "5S0", "5S1"], + dragonrage: ["7L1", "6L1", "5L1"], + dragontail: ["7M", "6M", "5M"], + dualwingbeat: ["8T"], + earthpower: ["8M", "7T", "6T", "5T"], + echoedvoice: ["7M", "6M", "5M"], + endeavor: ["8L16", "7T", "7L71", "6T", "6L71", "5T", "5L71", "5S0"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fling: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + focusblast: ["8M", "7M", "6M", "5M"], + freezedry: ["8L1"], + frustration: ["7M", "6M", "5M"], + fusionflare: ["8L48", "8S5", "7L43", "7S4", "6L43", "6S2", "6S3", "5L50", "5S1"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "6M", "5M"], + hypervoice: ["8M", "8L40", "8S5", "7T", "7L92", "6T", "6L92", "5T", "5L92"], + icebeam: ["8M", "8L32", "8S5", "7M", "7L22", "6M", "6L22", "5M", "5L22"], + iceburn: ["8L80", "7L50", "7S4", "6L50", "6S2", "6S3", "5L43", "5S0", "5S1"], + iciclespear: ["8M"], + icywind: ["8M", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + imprison: ["8M", "8L64", "7L64", "6L8", "5L8", "5S0", "5S1"], + ironhead: ["8M", "7T", "6T", "6S3", "5T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M", "6M", "5M"], + nobleroar: ["8L1", "7L64"], + outrage: ["8M", "8L72", "7T", "7L85", "6T", "6L85", "5T", "5L85"], + payback: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockslide: ["8M", "7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + rocktomb: ["8M", "7M", "6M", "5M"], + roost: ["7M", "6M", "5T"], + round: ["8M", "7M", "6M", "5M"], + safeguard: ["8M", "7M", "6M", "5M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "8S5", "7M", "6M", "5M"], + shadowclaw: ["8M", "7M", "6M", "5M"], + sheercold: ["8L88"], + signalbeam: ["7T", "6T", "5T"], + slash: ["8L8", "7L36", "7S4", "6L36", "6S2", "5L36"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + toxic: ["7M", "6M", "5M"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 75, shiny: 1, moves: ["iceburn", "dragonpulse", "imprison", "endeavor"]}, + {generation: 5, level: 70, shiny: 1, moves: ["fusionflare", "iceburn", "dragonpulse", "imprison"]}, + {generation: 6, level: 50, shiny: 1, moves: ["dragonbreath", "slash", "fusionflare", "iceburn"]}, + {generation: 6, level: 100, moves: ["iceburn", "fusionflare", "dracometeor", "ironhead"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["slash", "fusionflare", "iceburn", "dragonpulse"]}, + {generation: 8, level: 70, shiny: 1, moves: ["icebeam", "hypervoice", "shadowball", "fusionflare"]}, + ], + eventOnly: true, + }, + keldeo: { + learnset: { + aerialace: ["7M", "6M", "5M"], + airslash: ["8M"], + aquajet: ["8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0", "5S1"], + aquatail: ["8L35", "7T", "7L37", "6T", "6L37", "5T", "5L37"], + aurasphere: ["8M"], + bounce: ["8M", "7T", "6T", "5T"], + brickbreak: ["8M"], + bubblebeam: ["8L7", "7L1", "6L13", "6S3", "5L13", "5S0"], + calmmind: ["8M", "7M", "6M", "5M"], + closecombat: ["8M", "8L70", "7L73", "6L73", "5L73"], + coaching: ["8T"], + confide: ["7M", "6M"], + covet: ["7T", "6T", "5T"], + cut: ["6M", "5M"], + doublekick: ["8L21", "7L1", "6L7", "6S2", "6S3", "5L7", "5S0"], + doubleteam: ["7M", "6M", "5M"], + endeavor: ["7T", "6T", "5T"], + endure: ["8M"], + facade: ["8M", "7M", "6M", "5M"], + falseswipe: ["8M", "7M", "6M", "5M"], + flipturn: ["8T"], + focusblast: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["8M", "7M", "6M", "5M"], + hail: ["8M", "7M", "6M", "5M"], + helpinghand: ["8M", "8L1", "7T", "7L25", "6T", "6L25", "5T", "5L25"], + hiddenpower: ["7M", "6M", "5M"], + hydropump: ["8M", "8L63", "8S4", "7L67", "6L67", "6S2", "5L67", "5S1"], + hyperbeam: ["8M", "7M", "6M", "5M"], + icywind: ["8M", "7T", "6T", "5T"], + lastresort: ["7T", "6T", "5T"], + leer: ["8L1", "7L1", "6L1", "6S2", "6S3", "5L1", "5S0"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T"], + megahorn: ["8M"], + muddywater: ["8M"], + poisonjab: ["8M", "7M", "6M", "5M"], + protect: ["8M", "7M", "6M", "5M"], + psychup: ["7M", "6M", "5M"], + quickguard: ["8L14", "7L55", "6L55", "5L55"], + raindance: ["8M", "7M", "6M", "5M"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + retaliate: ["8M", "8L28", "7L31", "6M", "6L31", "5M", "5L31"], + return: ["7M", "6M", "5M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M", "5M"], + rocksmash: ["6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + sacredsword: ["8L49", "8S4", "7L43", "6L43", "5L43", "5S1"], + safeguard: ["8M", "7M", "6M", "5M"], + scald: ["8M", "7M", "6M", "5M"], + secretpower: ["6M"], + secretsword: ["8L1", "8S4", "7T", "6T", "5T"], + sleeptalk: ["8M", "7M", "6M", "5T"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T", "5T"], + stoneedge: ["8M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + sunnyday: ["8M"], + superpower: ["8M", "7T", "6T", "5T"], + surf: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + swordsdance: ["8M", "8L56", "8S4", "7M", "7L49", "6M", "6L49", "5M", "5L49", "5S1"], + takedown: ["8L42", "7L19", "6L19", "5L19"], + taunt: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + waterpulse: ["7T", "6T"], + workup: ["8M", "8L1", "7M", "7L61", "6L61", "5M", "5L61"], + xscissor: ["8M", "7M", "6M", "5M"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["aquajet", "leer", "doublekick", "bubblebeam"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["sacredsword", "hydropump", "aquajet", "swordsdance"], pokeball: "cherishball"}, + {generation: 6, level: 15, moves: ["aquajet", "leer", "doublekick", "hydropump"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["aquajet", "leer", "doublekick", "bubblebeam"], pokeball: "cherishball"}, + {generation: 8, level: 65, moves: ["secretsword", "sacredsword", "swordsdance", "hydropump"]}, + ], + eventOnly: true, + }, + keldeoresolute: { + eventOnly: true, + }, + meloetta: { + learnset: { + acrobatics: ["9M", "9L26", "7M", "7L26", "6M", "6L26", "5M", "5L26"], + allyswitch: ["7T"], + batonpass: ["9M"], + brickbreak: ["9M", "7M", "6M", "5M"], + calmmind: ["9M", "7M", "6M", "5M"], + celebrate: ["7S3"], + chargebeam: ["7M", "6M", "5M"], + charm: ["9M"], + closecombat: ["9M", "9L78", "7L78", "7S2", "6L78", "5L78", "5S1"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L1", "6L11", "5L11", "5S0"], + covet: ["7T", "6T", "5T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + doubleteam: ["7M", "6M", "5M"], + drainpunch: ["9M", "7T", "6T", "5T"], + dreameater: ["7M", "6M", "5M"], + dualchop: ["7T", "6T", "5T"], + echoedvoice: ["9L36", "7M", "7L36", "6M", "6L36", "5M", "5L36"], + embargo: ["7M", "6M", "5M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M", "5M"], + facade: ["9M", "7M", "6M", "5M"], + faketears: ["9M"], + firepunch: ["9M", "7T", "6T", "5T"], + flash: ["6M", "5M"], + fling: ["9M", "7M", "6M", "5M"], + focusblast: ["9M", "7M", "6M", "5M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M", "5M"], + gigaimpact: ["9M", "7M", "6M", "5M"], + grassknot: ["9M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + healbell: ["7T", "6T", "5T"], + helpinghand: ["9M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["9M", "7M", "6M", "5M"], + hypervoice: ["9M", "9L64", "7T", "7L64", "6T", "6L64", "5T", "5L64"], + icepunch: ["9M", "7T", "6T", "5T"], + knockoff: ["7T", "6T", "5T"], + laserfocus: ["7T"], + lastresort: ["7T", "6T", "5T"], + lightscreen: ["9M", "7M", "6M", "5M"], + lowkick: ["9M", "7T", "6T", "5T"], + lowsweep: ["9M", "7M", "6M", "5M"], + magiccoat: ["7T", "6T", "5T"], + magicroom: ["7T", "6T", "5T"], + metronome: ["9M"], + payback: ["7M", "6M", "5M"], + perishsong: ["9L85", "7L85", "6L85", "5L85"], + playrough: ["9M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M", "5M"], + psybeam: ["9M", "9L31", "7L31", "6L31", "5L31"], + psychic: ["9M", "9L57", "7M", "7L57", "7S2", "6M", "6L57", "5M", "5L57", "5S1"], + psychup: ["7M", "6M", "5M"], + psyshock: ["9M", "7M", "6M", "5M"], + quickattack: ["9L1", "7L1", "6L6", "5L6", "5S0"], + raindance: ["9M", "7M", "6M", "5M"], + recycle: ["7T", "6T", "5T"], + relicsong: ["9L50", "7T", "7S3", "6T", "5T"], + rest: ["9M", "7M", "6M", "5M"], + retaliate: ["6M", "5M"], + return: ["7M", "6M", "5M"], + reversal: ["9M"], + rocksmash: ["6M", "5M"], + roleplay: ["9L71", "7T", "7L71", "6T", "6L71", "5T", "5L71"], + round: ["9L1", "7M", "7L1", "7S3", "6M", "6L1", "5M", "5L1", "5S0", "5S1"], + safeguard: ["7M", "6M", "5M"], + secretpower: ["6M"], + shadowball: ["9M", "7M", "6M", "5M"], + shadowclaw: ["9M", "7M", "6M", "5M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T", "5T"], + sing: ["9L1", "7L1", "7S2", "7S3", "6L16", "5L16"], + skillswap: ["9M", "7T", "6T", "5T"], + sleeptalk: ["9M", "7M", "6M", "5T"], + snatch: ["7T", "6T", "5T"], + snore: ["7T", "6T", "5T"], + stoneedge: ["9M", "7M", "6M", "5M"], + strength: ["6M", "5M"], + substitute: ["9M", "7M", "6M", "5M"], + sunnyday: ["9M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["9M"], + swordsdance: ["9M"], + teeterdance: ["9L21", "7L21", "6L21", "5L21", "5S1"], + telekinesis: ["7T", "5M"], + terablast: ["9M"], + thunder: ["9M", "7M", "6M", "5M"], + thunderbolt: ["9M", "7M", "6M", "5M"], + thunderpunch: ["9M", "7T", "6T", "5T"], + thunderwave: ["9M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + trick: ["9M", "7T", "6T", "5T"], + trickroom: ["9M", "7M", "6M", "5M"], + uproar: ["7T", "6T", "5T"], + uturn: ["9M", "9L43", "7M", "7L43", "6M", "6L43", "5M", "5L43"], + wakeupslap: ["7L50", "6L50", "5L50"], + wonderroom: ["7T", "6T", "5T"], + workup: ["7M", "5M"], + zenheadbutt: ["9M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 15, moves: ["quickattack", "confusion", "round"], pokeball: "cherishball"}, + {generation: 5, level: 50, moves: ["round", "teeterdance", "psychic", "closecombat"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["sing", "psychic", "closecombat"], pokeball: "cherishball"}, + {generation: 7, level: 50, moves: ["sing", "celebrate", "round", "relicsong"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + genesect: { + learnset: { + aerialace: ["7M", "6M", "5M"], + allyswitch: ["8M", "7T"], + assurance: ["8M"], + blazekick: ["8M", "5S2"], + blizzard: ["8M", "7M", "6M", "5M"], + bugbite: ["7T", "6T", "5T"], + bugbuzz: ["8M", "8L56", "7L55", "6L55", "5L55"], + chargebeam: ["7M", "6M", "5M"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M", "5T"], + doubleteam: ["7M", "6M", "5M"], + electroweb: ["8M", "7T", "6T", "5T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M", "5M"], + explosion: ["7M", "6M", "5M"], + extremespeed: ["5S2"], + facade: ["8M", "7M", "6M", "5M"], + fellstinger: ["8L21", "8S4", "7L1", "6L1"], + flamecharge: ["8L28", "7M", "7L18", "6M", "6L18", "5M", "5L18"], + flamethrower: ["8M", "7M", "6M", "5M"], + flash: ["6M", "5M"], + flashcannon: ["8M", "7M", "6M", "5M"], + fly: ["8M", "7M", "6M", "5M"], + frustration: ["7M", "6M", "5M"], + furycutter: ["8L1", "7L7", "6L7", "5L7"], + gigadrain: ["8M", "7T", "6T", "5T"], + gigaimpact: ["8M", "7M", "6M", "5M"], + gravity: ["7T", "6T", "5T"], + gunkshot: ["8M", "7T", "6T", "5T"], + hiddenpower: ["7M", "6M", "5M"], + honeclaws: ["6M", "5M"], + hyperbeam: ["8M", "7M", "7L73", "6M", "6L73", "5M", "5L73"], + icebeam: ["8M", "7M", "6M", "5M"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T", "5T"], + ironhead: ["8M", "7T", "6T", "5T"], + lastresort: ["7T", "6T", "5T"], + leechlife: ["8M"], + lightscreen: ["8M", "7M", "6M", "5M"], + lockon: ["8L77", "7L11", "6L11", "5L11"], + magiccoat: ["7T", "6T", "5T"], + magnetbomb: ["7L22", "6L22", "6S3", "5L22", "5S0", "5S1"], + magnetrise: ["8L49", "7T", "7L1", "6T", "6L1", "5T", "5L1"], + metalclaw: ["8L14", "8S4", "7L1", "6L1", "5L1"], + metalsound: ["8L35", "7L33", "6L33", "5L33"], + protect: ["8M", "7M", "6M", "5M"], + psychic: ["8M", "7M", "6M", "5M"], + quickattack: ["8L1", "7L1", "6L1", "5L1"], + recycle: ["7T", "6T", "5T"], + reflect: ["8M", "7M", "6M", "5M"], + rest: ["8M", "7M", "6M", "5M"], + return: ["7M", "6M", "5M"], + rockpolish: ["7M", "6M", "5M"], + round: ["8M", "7M", "6M", "5M"], + screech: ["8M", "8L7", "7L1", "6L1", "5L1"], + secretpower: ["6M"], + selfdestruct: ["8M", "8L91", "7L77", "6L77", "5L77"], + shadowclaw: ["8M", "7M", "6M", "5M"], + shiftgear: ["5S2"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "7L40", "6T", "6L40", "6S3", "5T", "5L40", "5S0", "5S1"], + simplebeam: ["8L63", "7L62", "6L62", "5L62"], + slash: ["7L29", "6L29", "5L29"], + sleeptalk: ["8M", "7M", "6M", "5T"], + snore: ["8M", "7T", "6T", "5T"], + solarbeam: ["8M", "7M", "6M", "6S3", "5M", "5S0", "5S1"], + steelbeam: ["8T"], + strugglebug: ["6M", "5M"], + substitute: ["8M", "7M", "6M", "5M"], + swagger: ["7M", "6M", "5M"], + swift: ["8M"], + technoblast: ["8L84", "8S4", "7L1", "6L1", "6S3", "5L1", "5S0", "5S1", "5S2"], + telekinesis: ["7T"], + thunder: ["8M", "7M", "6M", "5M"], + thunderbolt: ["8M", "7M", "6M", "5M"], + thunderwave: ["8M", "7M", "6M", "5M"], + toxic: ["7M", "6M", "5M"], + triattack: ["8M", "7L44", "6L44", "5L44"], + uturn: ["8M", "7M", "6M", "5M"], + xscissor: ["8M", "8L42", "8S4", "7M", "7L51", "6M", "6L51", "5M", "5L51"], + zapcannon: ["8L70", "7L66", "6L66", "5L66"], + zenheadbutt: ["8M", "7T", "6T", "5T"], + }, + eventData: [ + {generation: 5, level: 50, moves: ["technoblast", "magnetbomb", "solarbeam", "signalbeam"], pokeball: "cherishball"}, + {generation: 5, level: 15, moves: ["technoblast", "magnetbomb", "solarbeam", "signalbeam"], pokeball: "cherishball"}, + {generation: 5, level: 100, shiny: true, nature: "Hasty", ivs: {atk: 31, spe: 31}, moves: ["extremespeed", "technoblast", "blazekick", "shiftgear"], pokeball: "cherishball"}, + {generation: 6, level: 100, moves: ["technoblast", "magnetbomb", "solarbeam", "signalbeam"], pokeball: "cherishball"}, + {generation: 8, level: 60, moves: ["technoblast", "xscissor", "metalclaw", "fellstinger"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + genesectburn: { + eventOnly: true, + }, + genesectchill: { + eventOnly: true, + }, + genesectdouse: { + eventOnly: true, + }, + genesectshock: { + eventOnly: true, + }, + chespin: { + learnset: { + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bellydrum: ["9E", "7E", "6E"], + bite: ["9L11", "7L11", "6L11"], + bodyslam: ["9M", "9L42", "7L42", "6L42"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["7M", "7L39", "6M", "6L39"], + bulldoze: ["9M", "7M", "6M"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + curse: ["9E", "7E", "6E"], + cut: ["6M"], + defensecurl: ["7E", "6E"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dualchop: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grasspledge: ["9M", "7T", "6T"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1"], + gyroball: ["7M", "6M"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + irondefense: ["7T", "6T"], + ironhead: ["9M", "7T", "6T"], + irontail: ["7T", "6T"], + leafstorm: ["9M"], + leechseed: ["9L15", "7L15", "6L15"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["7M", "6M"], + magicalleaf: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "9L35", "7L35", "6L35"], + naturepower: ["7M", "6M"], + painsplit: ["9L45", "7T", "7L45", "6T", "6L45"], + payback: ["7M", "6M"], + pinmissile: ["9L18", "7L18", "6L18"], + poisonjab: ["9M", "7M", "6M"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "7M", "6M"], + quickguard: ["9E", "7E", "6E"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + rollout: ["9L8", "7L8", "7E", "6L8", "6E"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L32", "7T", "7L32", "6T", "6L32"], + shadowclaw: ["9M", "7M", "6M"], + sleeptalk: ["9M", "7M", "6M"], + sludgebomb: ["7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + spikes: ["9M", "9E", "7E", "6E"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superfang: ["9E", "7T", "6T"], + superpower: ["7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["7M", "6M"], + synthesis: ["9E", "7T", "7E", "6T", "6E"], + tackle: ["6L1"], + takedown: ["9M", "9L27", "7L27", "6L27"], + taunt: ["7M", "6M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L5"], + wideguard: ["9E"], + woodhammer: ["9L48", "7L48", "6L48"], + workup: ["7M"], + worryseed: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + quilladin: { + learnset: { + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bite: ["9L11", "7L11", "6L11"], + bodyslam: ["9M", "9L43", "7L48", "6L48"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L38", "7M", "7L44", "6M", "6L44"], + bulldoze: ["9M", "7M", "6M"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + cut: ["6M"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dualchop: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grasspledge: ["9M", "7T", "6T"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1"], + gyroball: ["7M", "6M"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + irondefense: ["9M", "7T", "6T"], + ironhead: ["9M", "7T", "6T"], + irontail: ["7T", "6T"], + leafstorm: ["9M"], + leechseed: ["9L15", "7L15", "6L15"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["9M", "7M", "6M"], + magicalleaf: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "9L34", "7L39", "6L39"], + naturepower: ["7M", "6M"], + needlearm: ["7L1", "6L26"], + painsplit: ["9L47", "7T", "7L52", "6T", "6L52"], + payback: ["7M", "6M"], + pinmissile: ["9L24", "7L19", "6L20"], + poisonjab: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + rollout: ["9L8", "7L8", "6L8"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L20", "7T", "7L35", "6T", "6L35"], + shadowclaw: ["9M", "7M", "6M"], + sleeptalk: ["9M", "7M", "6M"], + sludgebomb: ["7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + spikes: ["9M"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superfang: ["7T", "6T"], + superpower: ["7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["7M", "6M"], + synthesis: ["7T", "6T"], + tackle: ["6L1"], + takedown: ["9M", "9L29", "7L29", "6L30"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L5"], + woodhammer: ["9L53", "7L56", "6L55"], + workup: ["7M"], + worryseed: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + chesnaught: { + learnset: { + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bellydrum: ["7L1", "6L1"], + bite: ["9L11", "7L11", "6L11"], + block: ["7T", "6T"], + bodypress: ["9M"], + bodyslam: ["9M", "9L54", "7L54", "6L48"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L48", "7M", "7L48", "6M", "6L44"], + bulldoze: ["9M", "7M", "6M"], + bulletseed: ["9M"], + closecombat: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M"], + cut: ["6M"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + dragonclaw: ["9M", "7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dualchop: ["7T", "6T"], + earthquake: ["9M", "7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + feint: ["9L1", "7L1", "6L1"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focusblast: ["9M", "7M", "6M"], + focuspunch: ["7T", "6T"], + frenzyplant: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "9L78", "7M", "7L78", "6M", "6L70"], + grassknot: ["9M", "7M", "6M"], + grasspledge: ["9M", "7T", "6T"], + grassyterrain: ["9M"], + growl: ["9L1", "7L1", "6L1"], + gyroball: ["7M", "6M"], + hammerarm: ["9L1", "7L1", "6L1"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hyperbeam: ["9M", "7M", "6M"], + irondefense: ["9M", "7T", "6T"], + ironhead: ["9M", "7T", "6T"], + irontail: ["7T", "6T"], + leafstorm: ["9M"], + leechseed: ["9L15", "7L15", "6L15"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["9M", "7M", "6M"], + magicalleaf: ["9M"], + metalclaw: ["9M"], + mudshot: ["9M", "9L41", "7L41", "6L41"], + mudslap: ["9M"], + naturepower: ["7M", "6M"], + needlearm: ["7L1", "6L26"], + painsplit: ["9L60", "7T", "7L60", "6T", "6L52"], + payback: ["7M", "6M"], + pinmissile: ["9L19", "7L19", "6L20"], + poisonjab: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + reversal: ["9M"], + roar: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + rollout: ["9L1", "7L1", "6L8"], + round: ["7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L35", "7T", "7L35", "6T", "6L35"], + shadowclaw: ["9M", "7M", "6M"], + sleeptalk: ["9M", "7M", "6M"], + sludgebomb: ["7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + spikes: ["9M"], + spikyshield: ["9L0", "7L1", "6L36"], + stompingtantrum: ["9M", "7T"], + stoneedge: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superfang: ["7T", "6T"], + superpower: ["7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["9M", "7M", "6M"], + synthesis: ["7T", "6T"], + tackle: ["9L1", "7L1", "6L1"], + takedown: ["9M", "9L29", "7L29", "6L30"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L5"], + woodhammer: ["9L66", "7L66", "6L55"], + workup: ["7M"], + worryseed: ["7T", "6T"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + fennekin: { + learnset: { + agility: ["9M"], + attract: ["7M", "6M"], + calmmind: ["9M"], + charm: ["9M"], + confide: ["7M", "6M"], + copycat: ["9E"], + covet: ["7T", "6T"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + ember: ["9L5", "7L5", "6L5"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "9L48", "7M", "7L48", "6M", "6L48"], + firepledge: ["9M", "7T", "6T"], + firespin: ["9M", "9L20", "7L20", "6L20"], + flamecharge: ["9M", "9L14", "7M", "7L14", "6M", "6L14"], + flamethrower: ["9M", "9L35", "7M", "7L35", "6M", "6L35", "6S0"], + flareblitz: ["9M"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + heatwave: ["9M", "9E", "7T", "7E", "6T", "6E"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M", "6S0"], + howl: ["9L11", "7L11", "6L11"], + hypnosis: ["9E", "7E", "6E"], + imprison: ["9M"], + incinerate: ["6M"], + irontail: ["7T", "6T"], + lightscreen: ["9M", "9L25", "7M", "7L27", "6M", "6L27"], + luckychant: ["7L25", "6L25"], + magiccoat: ["7T", "7E", "6T", "6E"], + magicroom: ["9E", "7T", "7L46", "6T", "6L46"], + mudshot: ["9M"], + mudslap: ["9M"], + overheat: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "9L41", "7M", "7L41", "6M", "6L41"], + psychicterrain: ["9M", "7E"], + psychup: ["7M", "6M"], + psyshock: ["9M", "9L31", "7M", "7L31", "6M", "6L31"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + scratch: ["9L1", "7L1", "6L1", "6S0"], + secretpower: ["6M"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "9L43", "7M", "7L43", "6M", "6L43"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwhip: ["9L1", "7L1", "6L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M", "9L38", "7M", "7L38", "6M", "6L38"], + wish: ["9E", "7E", "6E"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 15, gender: "F", nature: "Hardy", moves: ["scratch", "flamethrower", "hiddenpower"], pokeball: "cherishball"}, + ], + }, + braixen: { + learnset: { + agility: ["9M"], + allyswitch: ["7T"], + attract: ["7M", "6M"], + calmmind: ["9M"], + charm: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + ember: ["9L1", "7L1", "6L5"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "9L59", "7M", "7L59", "6M", "6L55"], + firepledge: ["9M", "7T", "6T"], + firepunch: ["9M", "7T", "6T"], + firespin: ["9M", "9L22", "7L22", "6L22"], + flamecharge: ["9M", "9L14", "7M", "7L14", "6M", "6L14"], + flamethrower: ["9M", "9L41", "7M", "7L41", "6M", "6L41"], + flareblitz: ["9M"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + howl: ["9L11", "7L11", "6L11"], + imprison: ["9M"], + incinerate: ["6M"], + irontail: ["7T", "6T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L28", "7M", "7L31", "6M", "6L30"], + lowkick: ["9M", "7T", "6T"], + luckychant: ["7L28", "6L27"], + magiccoat: ["7T", "6T"], + magicroom: ["9L56", "7T", "7L56", "6T", "6L53"], + mudshot: ["9M"], + mudslap: ["9M"], + overheat: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L18", "7L18", "6L18"], + psychic: ["9M", "9L49", "7M", "7L49", "6M", "6L48"], + psychicterrain: ["9M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "9L36", "7M", "7L36", "6M", "6L34"], + raindance: ["9M", "7M", "6M"], + recycle: ["7T", "6T"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + scratch: ["9L1", "7L1", "6L1"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skillswap: ["9M", "7T", "6T"], + sleeptalk: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "9L52", "7M", "7L52", "6M", "6L51"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwhip: ["9L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trick: ["9M", "7T", "6T"], + trickroom: ["9M"], + willowisp: ["9M", "9L45", "7M", "7L45", "6M", "6L45"], + wonderroom: ["7T", "6T"], + workup: ["7M"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + delphox: { + learnset: { + agility: ["9M"], + allyswitch: ["7T"], + attract: ["7M", "6M"], + blastburn: ["9M", "7T", "6T"], + calmmind: ["9M", "7M", "6M"], + charm: ["9M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + covet: ["7T", "6T"], + cut: ["6M"], + dazzlinggleam: ["9M", "7M", "6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + ember: ["9L1", "7L1", "6L5"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "9L74", "7M", "7L74", "6M", "6L61"], + firepledge: ["9M", "7T", "6T"], + firepunch: ["9M", "7T", "6T"], + firespin: ["9M", "9L22", "7L22", "6L22"], + flamecharge: ["9M", "9L14", "7M", "7L14", "6M", "6L14"], + flamethrower: ["9M", "9L45", "7M", "7L45", "6M", "6L42"], + flareblitz: ["9M"], + focusblast: ["9M"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + futuresight: ["9L1", "7L1", "6L1"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M"], + hex: ["9M"], + hiddenpower: ["7M", "6M"], + howl: ["9L1", "7L1", "6L11"], + hyperbeam: ["9M", "7M", "6M"], + hypervoice: ["9M"], + imprison: ["9M"], + incinerate: ["6M"], + irontail: ["7T", "6T"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L28", "7M", "7L31", "6M", "6L30"], + lowkick: ["9M", "7T", "6T"], + luckychant: ["7L28", "6L27"], + magiccoat: ["7T", "6T"], + magicroom: ["9L68", "7T", "7L68", "6T", "6L58"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + mysticalfire: ["9L0", "7L1", "6L36"], + nastyplot: ["9M"], + nightshade: ["9M"], + overheat: ["9M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L18", "7L18", "6L18"], + psychic: ["9M", "9L57", "7M", "7L57", "6M", "6L51"], + psychicterrain: ["9M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "9L38", "7M", "7L38", "6M", "6L34"], + raindance: ["9M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["9M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["9L1", "7T", "7L1", "6T", "6L1"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + scratch: ["9L1", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["9M", "9L1", "7M", "7L1", "6M", "6L1"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["9M", "7T", "6T"], + sleeptalk: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "9L62", "7M", "7L62", "6M", "6L55"], + swagger: ["7M", "6M"], + swift: ["9M"], + switcheroo: ["9L1", "7L1", "6L1"], + tailwhip: ["9L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderpunch: ["9M", "7T", "6T"], + toxic: ["7M", "6M"], + trick: ["9M", "7T", "6T"], + trickroom: ["9M", "7M", "6M"], + willowisp: ["9M", "9L51", "7M", "7L51", "6M", "6L47"], + wonderroom: ["7T", "6T"], + workup: ["7M"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + froakie: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + bestow: ["7E", "6E"], + blizzard: ["9M", "7M", "6M"], + bounce: ["9L39", "7T", "7L39", "6T", "6L39"], + bubble: ["7L5", "6L5", "6S0"], + camouflage: ["7E", "6E"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E"], + cut: ["6M"], + dig: ["9M", "6M"], + dive: ["6M"], + doubleteam: ["9L43", "7M", "7L43", "6M", "6L43"], + echoedvoice: ["7M", "6M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + falseswipe: ["9M"], + fling: ["9M", "9L25", "7M", "7L25", "6M", "6L25"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + growl: ["9L1", "7L1", "6L1", "6S0"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L48", "7L48", "6L48"], + icebeam: ["9M", "7M", "6M"], + icywind: ["9M", "7T", "6T"], + lick: ["9L10", "7L10", "6L10"], + liquidation: ["9M"], + mindreader: ["7E", "6E"], + mudshot: ["9M"], + mudslap: ["9M"], + mudsport: ["7E", "6E"], + pound: ["9L1", "7L1", "6L1", "6S0"], + poweruppunch: ["7E", "6M"], + protect: ["9M", "7M", "6M"], + quickattack: ["9L8", "7L8", "6L8"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["9E"], + return: ["7M", "6M", "6S0"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + roleplay: ["7T", "6T"], + round: ["9L21", "7M", "7L21", "6M", "6L21"], + scald: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + smackdown: ["9L29", "7M", "7L29", "6M", "6L29"], + smokescreen: ["9L18", "7L18", "6L18"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + snowscape: ["9M"], + spikes: ["9M", "9E"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["9M", "9L35", "7M", "7L35", "6M", "6L35"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + switcheroo: ["9E"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + toxicspikes: ["9M", "9E", "7E", "6E"], + trailblaze: ["9M"], + uturn: ["9M", "7M", "6M"], + waterfall: ["9M", "7M", "6M"], + watergun: ["9L5"], + waterpledge: ["9M", "7T", "6T"], + waterpulse: ["9M", "9L14", "7T", "7L14", "6T", "6L14"], + watersport: ["7E", "6E"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 7, moves: ["pound", "growl", "bubble", "return"], pokeball: "cherishball"}, + ], + }, + frogadier: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + attract: ["7M", "6M"], + blizzard: ["9M", "7M", "6M"], + bounce: ["9L45", "7T", "7L45", "6T", "6L44"], + bubble: ["7L1", "6L5"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["7M", "6M"], + dig: ["9M", "6M"], + dive: ["6M"], + doubleteam: ["9L50", "7M", "7L50", "6M", "6L48"], + echoedvoice: ["7M", "6M"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + falseswipe: ["9M"], + fling: ["9M", "9L28", "7M", "7L28", "6M", "6L28"], + frustration: ["7M", "6M"], + grassknot: ["9M", "7M", "6M"], + growl: ["9L1", "7L1", "6L1"], + gunkshot: ["9M", "7T", "6T"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L56", "7L56", "6L55"], + icebeam: ["9M", "7M", "6M"], + icepunch: ["9M", "7T", "6T"], + icywind: ["9M", "7T", "6T"], + lick: ["9L10", "7L10", "6L10"], + liquidation: ["9M"], + lowkick: ["9M", "7T", "6T"], + mudshot: ["9M"], + mudslap: ["9M"], + pound: ["9L1", "7L1", "6L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + quickattack: ["9L8", "7L8", "6L8"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + roleplay: ["7T", "6T"], + round: ["9L23", "7M", "7L23", "6M", "6L23"], + scald: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + smackdown: ["9L33", "7M", "7L33", "6M", "6L33"], + smokescreen: ["9L19", "7L19", "6L20"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + snowscape: ["9M"], + spikes: ["9M"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["9M", "9L40", "7M", "7L40", "6M", "6L38"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "7M", "6M"], + waterfall: ["9M", "7M", "6M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T"], + waterpulse: ["9M", "9L14", "7T", "7L14", "6T", "6L14"], + workup: ["7M"], + }, + }, + greninja: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["9M", "9L33", "7M", "6M"], + attract: ["7M", "6M"], + blizzard: ["9M", "7M", "6M"], + bounce: ["7T", "6T"], + brickbreak: ["9M"], + brutalswing: ["7M"], + bubble: ["7L1", "6L5"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["9M", "7M", "6M"], + dig: ["9M", "6M"], + dive: ["6M"], + doubleteam: ["9L56", "7M", "7L56", "6M", "6L52"], + echoedvoice: ["7M", "6M"], + endure: ["9M"], + extrasensory: ["9L49", "7L49", "6L49"], + facade: ["9M", "7M", "6M"], + falseswipe: ["9M"], + feintattack: ["7L33", "6L33"], + fling: ["9M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + growl: ["9L1", "7L1", "6L1"], + gunkshot: ["9M", "7T", "6T", "6S1"], + happyhour: ["6S1"], + haze: ["9L1", "7L1", "6L56"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hydrocannon: ["9M", "7T", "6T", "6S1"], + hydropump: ["9M", "9L68", "7L68", "6L60", "6S0"], + hyperbeam: ["9M", "7M", "6M"], + icebeam: ["9M", "7M", "6M"], + icepunch: ["9M", "7T", "6T"], + icywind: ["9M", "7T", "6T"], + lick: ["9L10", "7L10", "6L10"], + liquidation: ["9M"], + lowkick: ["9M", "7T", "6T"], + lowsweep: ["9M"], + matblock: ["7L1", "6L1", "6S1"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9L1", "7L1", "6L1"], + pound: ["9L1", "7L1", "6L1"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + quickattack: ["9L1", "7L1", "6L8"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "7M", "6M"], + roleplay: ["9L1", "7T", "7L1", "6T", "6L1"], + round: ["7M", "6M"], + scald: ["7M", "6M"], + secretpower: ["6M"], + shadowsneak: ["9L23", "7L23", "6L23", "6S0"], + sleeptalk: ["9M", "7M", "6M"], + smackdown: ["7M", "6M"], + smokescreen: ["9L19", "7L19", "6L20"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + snowscape: ["9M"], + spikes: ["9M", "9L28", "7L28", "6L28"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["9M", "9L42", "7M", "7L42", "6M", "6L43", "6S0"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "7M", "6M"], + waterfall: ["9M", "7M", "6M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T", "6T"], + waterpulse: ["9M", "9L14", "7T", "7L14", "6T", "6L14"], + watershuriken: ["9L0", "7L1", "6L36", "6S0"], + workup: ["7M"], + }, + eventData: [ + {generation: 6, level: 36, ivs: {spe: 31}, isHidden: true, moves: ["watershuriken", "shadowsneak", "hydropump", "substitute"], pokeball: "cherishball"}, + {generation: 6, level: 100, isHidden: true, moves: ["hydrocannon", "gunkshot", "matblock", "happyhour"], pokeball: "cherishball"}, + ], + }, + greninjabond: { + learnset: { + acrobatics: ["7M"], + aerialace: ["9M", "9L33", "7M", "7S0"], + attract: ["7M"], + blizzard: ["9M", "7M"], + bounce: ["7T"], + brickbreak: ["9M"], + brutalswing: ["7M"], + bubble: ["7L1"], + chillingwater: ["9M"], + confide: ["7M"], + darkpulse: ["9M", "7M"], + dig: ["9M"], + doubleteam: ["9L56", "7M", "7L56", "7S0"], + echoedvoice: ["7M"], + endure: ["9M"], + extrasensory: ["9L49", "7L49"], + facade: ["9M", "7M"], + falseswipe: ["9M"], + feintattack: ["7L33"], + fling: ["9M", "7M"], + frustration: ["7M"], + gigaimpact: ["9M", "7M"], + grassknot: ["9M", "7M"], + growl: ["9L1", "7L1"], + gunkshot: ["9M", "7T"], + haze: ["9L1", "7L1"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hydrocannon: ["9M", "7T"], + hydropump: ["9M", "9L68", "7L68"], + hyperbeam: ["9M", "7M"], + icebeam: ["9M", "7M"], + icepunch: ["9M", "7T"], + icywind: ["9M", "7T"], + lick: ["9L10", "7L10"], + liquidation: ["9M"], + lowkick: ["9M", "7T"], + lowsweep: ["9M"], + matblock: ["7L1"], + mudshot: ["9M"], + mudslap: ["9M"], + nightslash: ["9L1", "7L1", "7S0"], + pound: ["9L1", "7L1"], + protect: ["9M", "7M"], + quickattack: ["9L1", "7L1"], + raindance: ["9M", "7M"], + rest: ["9M", "7M"], + return: ["7M"], + rockslide: ["9M", "7M"], + rocktomb: ["9M", "7M"], + roleplay: ["9L1", "7T", "7L1"], + round: ["7M"], + scald: ["7M"], + shadowsneak: ["9L23", "7L23"], + sleeptalk: ["9M", "7M"], + smackdown: ["7M"], + smokescreen: ["9L19", "7L19"], + snatch: ["7T"], + snore: ["7T"], + snowscape: ["9M"], + spikes: ["9M", "9L28", "7L28"], + spite: ["7T"], + substitute: ["9M", "9L42", "7M", "7L42"], + surf: ["9M", "7M"], + swagger: ["7M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + toxic: ["7M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "7M"], + waterfall: ["9M", "7M"], + watergun: ["9L1"], + waterpledge: ["9M", "7T"], + waterpulse: ["9M", "9L14", "7T", "7L14"], + watershuriken: ["9L0", "7L1", "7S0"], + workup: ["7M"], + }, + eventData: [ + {generation: 7, level: 36, ivs: {hp: 20, atk: 31, def: 20, spa: 31, spd: 20, spe: 31}, moves: ["watershuriken", "aerialace", "doubleteam", "nightslash"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + bunnelby: { + learnset: { + agility: ["8M", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + bounce: ["8M", "8L27", "7T", "7L38", "6T", "6L38"], + brickbreak: ["8M", "7M", "6M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L21", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + defensecurl: ["8E", "7E", "6E"], + dig: ["8M", "8L24", "7L33", "6M", "6L33"], + doublekick: ["8L18", "7L20", "6L20"], + doubleslap: ["7L10", "6L10"], + doubleteam: ["7M", "6M"], + earthquake: ["8M", "8L36", "7M", "7L49", "6M", "6L49"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "7L47", "6M", "6L47"], + flail: ["8L15", "7L29", "6L29"], + fling: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + grassknot: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["8L6"], + lastresort: ["7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + mudshot: ["8M", "8L12", "7L18", "6L18"], + mudslap: ["8L1", "7L13", "6L13"], + naturepower: ["7M", "6M"], + odorsleuth: ["7L25", "6L25"], + payback: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quickattack: ["8L9", "7L7", "6L7"], + recycle: ["7T", "6T"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + rollout: ["8E", "7E", "6E"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["8M", "7T", "6T"], + spikes: ["8M", "7E", "6E"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + superfang: ["8L39", "7T", "7L42", "6T", "6L42"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L33"], + tackle: ["8L3", "7L1", "6L1"], + takedown: ["8L30", "7L15", "6L15"], + thief: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + wildcharge: ["8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + }, + diggersby: { + learnset: { + agility: ["8M", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + bodyslam: ["8M"], + bounce: ["8M", "8L33", "7T", "7L43", "6T", "6L42"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L23", "7M", "7L1", "6M", "6L1"], + confide: ["7M", "6M"], + cut: ["6M"], + dig: ["8M", "8L28", "7L37", "6M", "6L37"], + doublekick: ["8L18", "7L21", "6L20"], + doubleslap: ["7L13"], + doubleteam: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L48", "7M", "7L57", "6M", "6L57"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "7L54", "6M", "6L53"], + firepunch: ["8M", "7T", "6T"], + flail: ["8L15", "7L32", "6L31"], + fling: ["8M", "7M", "6M"], + focuspunch: ["7T", "6T"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gastroacid: ["7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + gunkshot: ["8M", "7T", "6T"], + hammerarm: ["8L58", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M"], + icepunch: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + knockoff: ["7T", "6T"], + laserfocus: ["8L1"], + lastresort: ["7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + lowkick: ["8M", "7T", "6T"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["8M", "8L12", "7L18", "6L18"], + mudslap: ["8L1", "7L13", "6L13"], + naturepower: ["7M", "6M"], + odorsleuth: ["7L27", "6L26"], + payback: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quickattack: ["8L9", "7L7", "6L7"], + recycle: ["7T", "6T"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + rototiller: ["7L1", "6L1"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + sandtomb: ["8M"], + scorchingsands: ["8T"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spikes: ["8M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + superfang: ["8L53", "7T", "7L48", "6T", "6L48"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L43", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + takedown: ["8L38", "7L15", "6L15"], + thief: ["8M", "7M", "6M"], + thunderpunch: ["8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + uturn: ["8M", "7M", "6M"], + wildcharge: ["8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + }, + fletchling: { + learnset: { + acrobatics: ["9M", "9L20", "8M", "8L20", "7M", "7L39", "6M", "6L39"], + aerialace: ["9M", "9L30", "8L30", "7M", "6M"], + agility: ["9M", "9L25", "8M", "8L25", "7L13", "6L13"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["8M", "7M", "6M"], + bravebird: ["9M"], + confide: ["7M", "6M"], + defog: ["9E", "8E", "7T"], + doubleteam: ["7M", "6M"], + dualwingbeat: ["8T"], + ember: ["9L10", "8L10"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L15", "8L15", "7L16", "6L16"], + flamecharge: ["9M", "9E", "8E", "7M", "7L34", "6M", "6L34"], + flareblitz: ["9M"], + fly: ["9M", "9L50", "8M", "8L50", "7M", "6M"], + frustration: ["7M", "6M"], + growl: ["9L1", "8L1", "7L1", "6L1"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M"], + mefirst: ["7L41", "6L41"], + naturalgift: ["7L29", "6L29"], + overheat: ["9M", "8M", "7M", "6M"], + peck: ["9L1", "8L1", "7L10", "6L10"], + protect: ["9M", "8M", "7M", "6M"], + quickattack: ["9L5", "8L5", "7L6", "6L6"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M"], + razorwind: ["7L25", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L45", "8L45", "7M", "7L21", "6M", "6L21"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["8M", "7T", "6T"], + steelwing: ["9L40", "8M", "8L40", "7M", "7L48", "6M", "6L48"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M"], + tackle: ["7L1", "6L1"], + tailwind: ["9M", "9L35", "8L35", "7T", "7L45", "7E", "6T", "6L45", "6E"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + willowisp: ["8M"], + workup: ["8M", "7M"], + }, + }, + fletchinder: { + learnset: { + acrobatics: ["9M", "9L22", "8M", "8L22", "7M", "7L42", "6M", "6L42"], + aerialace: ["9M", "9L36", "8L36", "7M", "6M"], + agility: ["9M", "9L29", "8M", "8L29", "7L13", "6L13"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["8M", "7M", "6M"], + bravebird: ["9M"], + confide: ["7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + dualwingbeat: ["8T"], + ember: ["9L1", "8L1", "7L1", "6L17"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feint: ["9L1", "8L1"], + fireblast: ["9M", "8M", "7M", "6M"], + firespin: ["9M", "8M"], + flail: ["9L15", "8L15", "7L16", "6L16"], + flamecharge: ["9M", "9L0", "8L0", "7M", "7L38", "6M", "6L38"], + flamethrower: ["9M", "8M", "7M", "6M"], + flareblitz: ["9M"], + fly: ["9M", "9L64", "8M", "8L64", "7M", "6M"], + frustration: ["7M", "6M"], + growl: ["9L1", "8L1", "7L1", "6L1"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M"], + incinerate: ["6M"], + mefirst: ["7L46", "6L46"], + naturalgift: ["7L31", "6L31"], + overheat: ["9M", "8M", "7M", "6M"], + peck: ["9L1", "8L1", "7L10", "6L10"], + protect: ["9M", "8M", "7M", "6M"], + quickattack: ["9L1", "8L1", "7L1", "6L6"], + raindance: ["9M"], + razorwind: ["7L27", "6L27"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L57", "8L57", "7M", "7L25", "6M", "6L25"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + steelwing: ["9L50", "8M", "8L50", "7M", "7L55", "6M", "6L55"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M"], + tackle: ["7L1", "6L1"], + tailwind: ["9M", "9L43", "8L43", "7T", "7L51", "6T", "6L51"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + willowisp: ["9M", "8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + encounters: [ + {generation: 7, level: 16}, + ], + }, + talonflame: { + learnset: { + acrobatics: ["9M", "9L22", "8M", "8L22", "7M", "7L44", "6M", "6L44"], + aerialace: ["9M", "9L38", "8L38", "7M", "6M"], + agility: ["9M", "9L29", "8M", "8L29", "7L13", "6L13"], + aircutter: ["9M"], + airslash: ["9M"], + attract: ["8M", "7M", "6M"], + bravebird: ["9M", "9L83", "8M", "8L83", "7L1", "6L1"], + bulkup: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + dualwingbeat: ["8T"], + ember: ["9L1", "8L1", "7L1", "6L17"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feint: ["9L1", "8L1"], + fireblast: ["9M", "8M", "7M", "6M"], + firespin: ["9M", "8M"], + flail: ["9L15", "8L15", "7L16", "6L16"], + flamecharge: ["9M", "9L1", "8L1", "7M", "7L39", "6M", "6L39"], + flamethrower: ["9M", "8M", "7M", "6M"], + flareblitz: ["9M", "9L1", "8M", "8L1", "7L1", "6L1"], + fly: ["9M", "9L74", "8M", "8L74", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + growl: ["9L1", "8L1", "7L1", "6L1"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + incinerate: ["6M"], + mefirst: ["7L49", "6L49"], + naturalgift: ["7L31", "6L31"], + overheat: ["9M", "8M", "7M", "6M"], + peck: ["9L1", "8L1", "7L1", "6L10"], + protect: ["9M", "8M", "7M", "6M"], + quickattack: ["9L1", "8L1", "7L1", "6L6"], + raindance: ["9M"], + razorwind: ["7L27", "6L27"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L65", "8L65", "7M", "7L25", "6M", "6L25"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steelwing: ["9L56", "8M", "8L56", "7M", "7L60", "6M", "6L60"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M", "6M"], + tackle: ["7L1", "6L1"], + tailwind: ["9M", "9L47", "8L47", "7T", "7L55", "6T", "6L55"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + willowisp: ["9M", "8M", "7M", "6M"], + workup: ["8M", "7M"], + }, + }, + scatterbug: { + learnset: { + bugbite: ["9L15", "7T", "7L15", "6T", "6L15"], + poisonpowder: ["9E", "7E", "6E"], + pounce: ["9M"], + ragepowder: ["9E", "7E", "6E"], + stringshot: ["9L1", "7L1", "6L1"], + strugglebug: ["9M"], + stunspore: ["9L6", "7L6", "7E", "6L6", "6E"], + tackle: ["9L1", "7L1", "6L1"], + terablast: ["9M"], + }, + }, + spewpa: { + learnset: { + bugbite: ["7T", "6T"], + electroweb: ["7T", "6T"], + harden: ["9L1", "7L1", "6L1"], + irondefense: ["9M", "7T", "6T"], + pounce: ["9M"], + protect: ["9M", "9L0", "7M", "7L1", "6M", "6L9"], + strugglebug: ["9M"], + terablast: ["9M"], + }, + }, + vivillon: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["7M", "6M"], + aircutter: ["9M"], + airslash: ["9M"], + aromatherapy: ["7L31", "6L31"], + attract: ["7M", "6M"], + bugbite: ["7T", "6T"], + bugbuzz: ["9M", "9L35", "7L35", "6L35"], + calmmind: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L25", "7L25", "6L25"], + dreameater: ["7M", "6M"], + electroweb: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + gust: ["9L0", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M", "9L50", "7L50", "6L50"], + hyperbeam: ["9M", "7M", "6M"], + infestation: ["7M", "6M"], + irondefense: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L12", "7M", "7L12", "6M", "6L1"], + poisonpowder: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + pounce: ["9M"], + powder: ["7L1", "6L1"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "7M", "6M"], + psychup: ["7M", "6M"], + quiverdance: ["9L45", "7L45", "6L45"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L31", "7M", "7L41", "6M", "6L41"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + sleeppowder: ["9L1", "7L1", "6L1"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strugglebug: ["9M", "9L1", "7L1", "6M", "6L12"], + stunspore: ["9L1", "7L1", "6L1"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + supersonic: ["9L21", "7L21", "6L21"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwind: ["9M", "7T", "6T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "7M", "6M"], + }, + }, + vivillonfancy: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["7M", "6M"], + aircutter: ["9M"], + airslash: ["9M"], + aromatherapy: ["7L31", "6L31"], + attract: ["7M", "6M"], + bugbite: ["7T", "6T"], + bugbuzz: ["9M", "9L35", "7L35", "6L35"], + calmmind: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L25", "7L25", "6L25"], + dreameater: ["7M", "6M"], + electroweb: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + gust: ["9L0", "7L1", "6L1", "6S0"], + hiddenpower: ["7M", "6M"], + holdhands: ["6S0"], + hurricane: ["9M", "9L50", "7L50", "6L50"], + hyperbeam: ["9M", "7M", "6M"], + infestation: ["7M", "6M"], + irondefense: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L12", "7M", "7L12", "6M", "6L1", "6S0"], + poisonpowder: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + pounce: ["9M"], + powder: ["7L1", "6L1"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "7M", "6M"], + psychup: ["7M", "6M"], + quiverdance: ["9L45", "7L45", "6L45"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L31", "7M", "7L41", "6M", "6L41"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + sleeppowder: ["9L1", "7L1", "6L1"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strugglebug: ["9M", "9L1", "7L1", "6M", "6L12", "6S0"], + stunspore: ["9L1", "7L1", "6L1"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + supersonic: ["9L21", "7L21", "6L21"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwind: ["9M", "7T", "6T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "7M", "6M"], + }, + eventData: [ + {generation: 6, level: 12, moves: ["gust", "lightscreen", "strugglebug", "holdhands"], pokeball: "cherishball"}, + ], + }, + vivillonpokeball: { + learnset: { + acrobatics: ["9M", "7M", "6M"], + aerialace: ["7M", "6M"], + aircutter: ["9M"], + airslash: ["9M"], + aromatherapy: ["7L31", "6L31"], + attract: ["7M", "6M"], + bugbite: ["7T", "6T"], + bugbuzz: ["9M", "9L35", "7L35", "6L35"], + calmmind: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["9M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L25", "7L25", "6L25"], + dreameater: ["7M", "6M"], + electroweb: ["7T", "6T"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + gust: ["9L0", "7L1", "6L1", "6S0"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M", "9L50", "7L50", "6L50"], + hyperbeam: ["9M", "7M", "6M"], + infestation: ["7M", "6M"], + irondefense: ["9M"], + laserfocus: ["7T"], + lightscreen: ["9M", "9L12", "7M", "7L12", "6M", "6L1", "6S0"], + poisonpowder: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + pounce: ["9M"], + powder: ["7L1", "6L1"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L17", "7L17", "6L17"], + psychic: ["9M", "7M", "6M"], + psychup: ["7M", "6M"], + quiverdance: ["9L45", "7L45", "6L45"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L31", "7M", "7L41", "6M", "6L41"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + sleeppowder: ["9L1", "7L1", "6L1"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strugglebug: ["9M", "9L1", "7L1", "6M", "6L12", "6S0"], + stunspore: ["9L1", "7L1", "6L1", "6S0"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + supersonic: ["9L21", "7L21", "6L21"], + swagger: ["7M", "6M"], + swift: ["9M"], + tailwind: ["9M", "7T", "6T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["9M", "7M", "6M"], + }, + eventData: [ + {generation: 6, level: 12, moves: ["stunspore", "gust", "lightscreen", "strugglebug"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + litleo: { + learnset: { + acrobatics: ["9M"], + attract: ["7M", "6M"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M", "6M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L39", "7L39", "6L39"], + darkpulse: ["7M", "6M"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + echoedvoice: ["9L33", "7M", "7L33", "6M", "6L33"], + ember: ["9L5", "7L5", "6L5"], + endeavor: ["9L28", "7T", "7L28", "6T", "6L28"], + endure: ["9M"], + entrainment: ["9E", "7E", "6E"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "7M", "6M"], + firefang: ["9M", "9L23", "7L23", "6L23"], + firespin: ["9M", "9E", "7E", "6E"], + flamecharge: ["9M", "7M", "6M"], + flamethrower: ["9M", "9L36", "7M", "7L36", "6M", "6L36"], + flareblitz: ["9M", "9E", "7E"], + frustration: ["7M", "6M"], + headbutt: ["9L11", "7L11", "6L11"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hypervoice: ["9M", "9L43", "7T", "7L43", "6T", "6L43"], + incinerate: ["9L46", "7L46", "6M", "6L46"], + irontail: ["7T", "6T"], + leer: ["9L1", "7L1", "6L1"], + mudslap: ["9M"], + nobleroar: ["9L15", "7L15", "6L15"], + overheat: ["9M", "9L50", "7M", "7L50", "6M", "6L50"], + payback: ["7M", "6M"], + protect: ["9M", "7M", "6M"], + psychicfangs: ["9M"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rocksmash: ["6M"], + round: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + snarl: ["9M", "7M", "6M"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1"], + takedown: ["9M", "9L20", "7L20", "6L20"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderfang: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M"], + willowisp: ["9M", "7M", "6M"], + workup: ["9L8", "7M", "7L8", "6L8"], + yawn: ["9E", "7E", "6E"], + }, + }, + pyroar: { + learnset: { + acrobatics: ["9M"], + attract: ["7M", "6M"], + bodyslam: ["9M"], + bounce: ["7T", "6T"], + bulldoze: ["9M", "7M", "6M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L42", "7L42", "6L42"], + darkpulse: ["9M", "7M", "6M", "6S0"], + dig: ["9M", "6M"], + doubleteam: ["7M", "6M"], + echoedvoice: ["9L33", "7M", "7L33", "6M", "6L33"], + ember: ["9L1", "7L1", "6L5"], + endeavor: ["9L28", "7T", "7L28", "6T", "6L28"], + endure: ["9M"], + facade: ["9M", "7M", "6M"], + fireblast: ["9M", "7M", "6M", "6S0"], + firefang: ["9M", "9L23", "7L23", "6L23"], + firespin: ["9M"], + flamecharge: ["9M", "7M", "6M"], + flamethrower: ["9M", "9L38", "7M", "7L38", "6M", "6L38"], + flareblitz: ["9M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "7M", "6M"], + headbutt: ["9L11", "7L11", "6L11"], + heatwave: ["9M", "7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "9L1", "7M", "7L1", "6M", "6L1"], + hypervoice: ["9M", "9L48", "7T", "7L48", "6T", "6L48", "6S0"], + incinerate: ["9L51", "7L51", "6M", "6L51"], + irontail: ["7T", "6T"], + leer: ["9L1", "7L1", "6L1"], + mudslap: ["9M"], + nobleroar: ["9L15", "7L15", "6L15"], + overheat: ["9M", "9L57", "7M", "7L57", "6M", "6L57"], + payback: ["7M", "6M"], + protect: ["9M", "7M", "6M"], + psychicfangs: ["9M"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rocksmash: ["6M"], + round: ["7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "7M", "6M"], + snarl: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L1", "7L1", "6L1"], + takedown: ["9M", "9L20", "7L20", "6L20"], + taunt: ["9M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + thunderfang: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + wildcharge: ["9M", "7M", "6M"], + willowisp: ["9M", "7M", "6M"], + workup: ["9L1", "7M", "7L1", "6L8"], + }, + eventData: [ + {generation: 6, level: 49, gender: "M", perfectIVs: 2, abilities: ["unnerve"], moves: ["hypervoice", "fireblast", "darkpulse"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 6, level: 30}, + ], + }, + flabebe: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["7T"], + aromatherapy: ["7L33", "6L33"], + attract: ["7M", "6M"], + batonpass: ["9M"], + calmmind: ["9M", "7M", "6M"], + camouflage: ["7E", "6E"], + captivate: ["7E", "6E"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + copycat: ["9E", "7E", "6E"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + echoedvoice: ["7M", "6M"], + endeavor: ["9E", "7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + fairywind: ["9L6", "7L6", "6L6"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grassyterrain: ["9M", "9L24", "7L24", "6L24"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["9M"], + luckychant: ["7L10", "6L10"], + magicalleaf: ["9M", "9L22", "7L22", "6L22"], + magiccoat: ["7T", "6T"], + mistyterrain: ["9M", "9L37", "7L37", "6L37"], + moonblast: ["9L41", "7L41", "6L41"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L28", "7L28", "6L28"], + petaldance: ["9L45", "7L45", "6L45"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "6M"], + psychic: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L15", "7L15", "6L15"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L10", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "9L48", "7M", "7L48", "6M", "6L48"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + synthesis: ["9L33", "7T", "6T"], + tackle: ["9L1", "7L1", "6L1"], + tearfullook: ["9E", "7E"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L1"], + wish: ["9L20", "7L20", "6L20"], + worryseed: ["7T", "6T"], + }, + }, + floette: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["7T"], + aromatherapy: ["7L38", "6L38"], + attract: ["7M", "6M"], + batonpass: ["9M"], + calmmind: ["9M", "7M", "6M"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "7M", "6M"], + disarmingvoice: ["9M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + fairywind: ["9L1", "7L1", "6L6"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grassyterrain: ["9M", "9L27", "7L27", "6L27"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["9M"], + luckychant: ["7L10", "6L10"], + magicalleaf: ["9M", "9L25", "7L25", "6L25"], + magiccoat: ["7T", "6T"], + metronome: ["9M"], + mistyterrain: ["9M", "9L43", "7L43", "6L43"], + moonblast: ["9L46", "7L46", "6L46"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L33", "7L33", "6L33"], + petaldance: ["9L51", "7L51", "6L51"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "6M"], + psychic: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L15", "7L15", "6L15"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L10", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "9L58", "7M", "7L58", "6M", "6L58"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + synthesis: ["9L38", "7T", "6T"], + tackle: ["9L1", "7L1", "6L1"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + trick: ["9M"], + vinewhip: ["9L1", "7L1", "6L1"], + wish: ["9L20", "7L20", "6L20"], + worryseed: ["7T", "6T"], + }, + }, + floetteeternal: { + learnset: { + afteryou: ["7T"], + allyswitch: ["7T"], + aromatherapy: ["6L38"], + attract: ["6M"], + calmmind: ["6M"], + confide: ["6M"], + covet: ["7T"], + dazzlinggleam: ["6M"], + doubleteam: ["6M"], + echoedvoice: ["6M"], + endeavor: ["7T"], + energyball: ["6M"], + facade: ["6M"], + fairywind: ["6L6"], + flash: ["6M"], + frustration: ["6M"], + gigadrain: ["7T"], + grassknot: ["6M"], + grassyterrain: ["6L27"], + healbell: ["7T"], + helpinghand: ["7T"], + hiddenpower: ["6M"], + lightofruin: ["6L50"], + luckychant: ["6L10"], + magicalleaf: ["6L25"], + magiccoat: ["7T"], + mistyterrain: ["6L43"], + moonblast: ["6L46"], + naturepower: ["6M"], + petalblizzard: ["6L33"], + petaldance: ["6L51"], + protect: ["6M"], + psychic: ["6M"], + raindance: ["6M"], + razorleaf: ["6L15"], + rest: ["6M"], + return: ["6M"], + round: ["6M"], + safeguard: ["6M"], + secretpower: ["6M"], + seedbomb: ["7T"], + sleeptalk: ["6M"], + snore: ["7T"], + solarbeam: ["6M", "6L58"], + substitute: ["6M"], + sunnyday: ["6M"], + swagger: ["6M"], + synthesis: ["7T"], + tackle: ["6L1"], + toxic: ["6M"], + vinewhip: ["6L1"], + wish: ["6L20"], + worryseed: ["7T"], + }, + }, + florges: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["7T"], + aromatherapy: ["7L1", "6L1"], + attract: ["7M", "6M"], + batonpass: ["9M"], + calmmind: ["9M", "7M", "6M"], + charm: ["9M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "7M", "6M"], + defog: ["7T"], + disarmingvoice: ["9M", "9L1", "7L1", "6L1"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + flash: ["6M"], + flowershield: ["7L1", "6L1"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "9L1", "7M", "7L1", "6M", "6L1"], + grassyterrain: ["9M", "9L1", "7L1", "6L1"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "7M", "6M"], + lightscreen: ["9M", "7M", "6M"], + luckychant: ["7L1", "6L1"], + magicalleaf: ["9M", "9L1", "7L1", "6L1"], + magiccoat: ["7T", "6T"], + metronome: ["9M"], + mistyterrain: ["9M", "9L1", "7L1", "6L1"], + moonblast: ["9L5", "7L1", "6L1"], + naturepower: ["7M", "6M"], + petalblizzard: ["9L1", "7L1", "6L1"], + petaldance: ["9L1", "7L1", "6L1"], + pollenpuff: ["9M"], + protect: ["9M", "7M", "6M"], + psychic: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + round: ["7M", "6M"], + safeguard: ["9L1", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "7T", "6T"], + skillswap: ["9M"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "9L1", "7M", "6M"], + storedpower: ["9M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + synthesis: ["9L1", "7T", "6T"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + trick: ["9M"], + wish: ["9L1", "7L1", "6L1"], + worryseed: ["7T", "6T"], + }, + }, + skiddo: { + learnset: { + attract: ["7M", "6M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L34", "7M", "7L34", "6M", "6L34"], + bulldoze: ["9M", "9L26", "7M", "7L26", "6M", "6L26"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + defensecurl: ["9E", "7E", "6E"], + dig: ["9M", "6M"], + doubleedge: ["9L38", "7L38", "6L38"], + doubleteam: ["7M", "6M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + grassknot: ["9M", "7M", "6M"], + grassyterrain: ["9M", "9E", "7E"], + growth: ["9L1", "7L1", "6L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hornleech: ["9L42", "7L42", "6L42"], + irontail: ["7T", "6T"], + leafblade: ["9L45", "7L45", "6L45"], + leafstorm: ["9M"], + leechseed: ["9L12", "7L12", "6L12"], + magicalleaf: ["9M"], + milkdrink: ["9E", "7L50", "7E", "6L50", "6E"], + mudshot: ["9M"], + mudslap: ["9M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M"], + playrough: ["9M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L13", "7L13", "6L13"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + rollout: ["9E", "7E", "6E"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L30", "7T", "7L30", "6T", "6L30"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + stompingtantrum: ["9M"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["9L20", "7T", "7L20", "6T", "6L20"], + tackle: ["9L1", "7L1", "6L1"], + tailwhip: ["9L9", "7L9", "6L9"], + takedown: ["9M", "9L22", "7L22", "6L22"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L7", "7L7", "6L7"], + wildcharge: ["9M", "7M", "6M"], + workup: ["7M"], + worryseed: ["9L16", "7T", "7L16", "6T", "6L16"], + zenheadbutt: ["9M", "7T", "6T"], + }, + }, + gogoat: { + learnset: { + aerialace: ["9M", "9L0", "7M", "7L1", "6M", "6L1"], + attract: ["7M", "6M"], + bodyslam: ["9M"], + bounce: ["7T", "6T"], + brickbreak: ["9M", "7M", "6M"], + bulkup: ["9M", "9L34", "7M", "7L34", "6M", "6L34"], + bulldoze: ["9M", "9L26", "7M", "7L26", "6M", "6L26"], + bulletseed: ["9M"], + confide: ["7M", "6M"], + dig: ["9M", "6M"], + doubleedge: ["9L40", "7L40", "6L40"], + doubleteam: ["7M", "6M"], + earthquake: ["9M", "9L1", "7M", "7L1", "6M", "6L60"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + frustration: ["7M", "6M"], + gigadrain: ["9M", "7T", "6T"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + grassyterrain: ["9M"], + growth: ["9L1", "7L1", "6L1"], + helpinghand: ["9M"], + hiddenpower: ["7M", "6M"], + hornleech: ["9L47", "7L47", "6L47"], + hyperbeam: ["9M", "7M", "6M"], + irontail: ["7T", "6T"], + leafblade: ["9L55", "7L55", "6L55"], + leafstorm: ["9M"], + leechseed: ["9L12", "7L12", "6L12"], + magicalleaf: ["9M"], + milkdrink: ["9L58", "7L58", "6L58"], + mudshot: ["9M"], + mudslap: ["9M"], + naturepower: ["7M", "6M"], + payback: ["7M", "6M"], + playrough: ["9M"], + protect: ["9M", "7M", "6M"], + raindance: ["9M", "7M", "6M"], + razorleaf: ["9L13", "7L13", "6L13"], + rest: ["9M", "7M", "6M"], + retaliate: ["6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["9M", "7M", "6M"], + rocksmash: ["6M"], + round: ["7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M", "9L30", "7T", "7L30", "6T", "6L30"], + sleeptalk: ["9M", "7M", "6M"], + snore: ["7T", "6T"], + solarbeam: ["9M", "7M", "6M"], + stompingtantrum: ["9M", "7T"], + strength: ["6M"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + superpower: ["7T", "6T"], + surf: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["9L20", "7T", "7L20", "6T", "6L20"], + tackle: ["9L1", "7L1", "6L1"], + tailwhip: ["9L1", "7L1", "6L9"], + takedown: ["9M", "9L22", "7L22", "6L22"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + vinewhip: ["9L1", "7L1", "6L7"], + wildcharge: ["9M", "7M", "6M"], + workup: ["7M"], + worryseed: ["9L16", "7T", "7L16", "6T", "6L16"], + zenheadbutt: ["9M", "7T", "6T"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + pancham: { + learnset: { + aerialace: ["7M", "6M"], + armthrust: ["8L4", "7L7", "6L7", "6S0"], + attract: ["8M", "7M", "6M"], + block: ["7T", "6T"], + bodyslam: ["8M", "8L36", "7L33", "6L33"], + brickbreak: ["8M", "7M", "6M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + circlethrow: ["8L12", "7L25", "6L25"], + coaching: ["8T"], + cometpunch: ["7L15", "6L15"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + crunch: ["8M", "8L33", "7L39", "6L39"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M", "6S0"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["8M", "7T", "6T"], + dualchop: ["7T", "6T"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + entrainment: ["8L44", "7L42", "6L42"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + firepunch: ["8M", "7T", "6T"], + fling: ["8M", "7M", "6M"], + focuspunch: ["7T", "6T"], + foulplay: ["8M", "7T", "7E", "6T", "6E"], + frustration: ["7M", "6M"], + grassknot: ["8M", "7M", "6M"], + gunkshot: ["8M", "7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + icepunch: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + karatechop: ["7L12", "6L12"], + knockoff: ["7T", "6T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1"], + lowkick: ["8M", "7T", "6T"], + lowsweep: ["8M", "8L16", "7M", "6M"], + mefirst: ["7E", "6E"], + megakick: ["8M"], + megapunch: ["8M"], + partingshot: ["8L40", "7L45", "6L45"], + payback: ["8M", "7M", "6M"], + powertrip: ["8E", "7E"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quash: ["8E", "7E", "6E"], + quickguard: ["8E", "7E", "6E"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + seismictoss: ["8E"], + shadowclaw: ["8M", "7M", "6M"], + skyuppercut: ["7L48", "6L48"], + slash: ["8L24", "7L20", "6L20"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + stoneedge: ["8M", "7M", "6M", "6S0"], + stormthrow: ["8E", "7E", "6E"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "8L8"], + thunderpunch: ["8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + vitalthrow: ["8L28", "7L27", "6L27"], + workup: ["8M", "8L20", "7M", "7L10", "6L10"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 30, gender: "M", nature: "Adamant", abilities: ["moldbreaker"], moves: ["armthrust", "stoneedge", "darkpulse"], pokeball: "cherishball"}, + ], + }, + pangoro: { + learnset: { + aerialace: ["7M", "6M"], + armthrust: ["8L1", "7L1", "6L7"], + attract: ["8M", "7M", "6M"], + beatup: ["8M"], + block: ["7T", "6T"], + bodyslam: ["8M", "8L40", "7L35", "6L35"], + brickbreak: ["8M", "7M", "6M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + bulletpunch: ["8L1", "7L1"], + circlethrow: ["8L12", "7L25", "6L25"], + closecombat: ["8M"], + coaching: ["8T"], + cometpunch: ["7L15", "6L15"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + crunch: ["8M", "8L35", "7L42", "6L42"], + cut: ["6M"], + darkestlariat: ["8M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonclaw: ["8M", "7M", "6M"], + drainpunch: ["8M", "7T", "6T"], + dualchop: ["7T", "6T"], + earthquake: ["8M", "7M", "6M"], + echoedvoice: ["7M", "6M"], + embargo: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + entrainment: ["8L52", "7L1", "6L1"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + firepunch: ["8M", "7T", "6T"], + fling: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "6M"], + focusenergy: ["8M"], + focuspunch: ["7T", "6T"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + gunkshot: ["8M", "7T", "6T"], + hammerarm: ["8L58", "7L1", "6L1"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + icepunch: ["8M", "7T", "6T"], + infestation: ["7M", "6M"], + ironhead: ["8M", "7T", "6T"], + karatechop: ["7L12", "6L12"], + knockoff: ["7T", "6T"], + laserfocus: ["7T"], + lashout: ["8T"], + leer: ["8L1", "7L1", "6L1"], + lowkick: ["8M", "7T", "6T"], + lowsweep: ["8M", "8L16", "7M", "7L1", "6M", "6L70"], + megakick: ["8M"], + megapunch: ["8M"], + nightslash: ["8L0"], + outrage: ["8M", "7T", "6T"], + partingshot: ["8L46", "7L48", "6L48"], + payback: ["8M", "7M", "6M"], + poisonjab: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + quash: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + scaryface: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + skyuppercut: ["7L52", "6L52"], + slash: ["8L24", "7L20", "6L20"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snarl: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "8L1", "7M", "7L65", "6M", "6L65"], + thief: ["8M", "7M", "6M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + vitalthrow: ["8L28", "7L27", "6L27"], + workup: ["8M", "8L20", "7M", "7L1", "6L10"], + xscissor: ["8M", "7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + encounters: [ + {generation: 7, level: 24}, + ], + }, + furfrou: { + learnset: { + attract: ["7M", "6M"], + babydolleyes: ["7L9", "6L9"], + bite: ["7L22", "6L22"], + captivate: ["7E", "6E"], + chargebeam: ["7M", "6M"], + charm: ["7L38", "6L38"], + confide: ["7M", "6M"], + cottonguard: ["7L48", "6L48"], + darkpulse: ["7M", "6M"], + dig: ["6M"], + doubleteam: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + facade: ["7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigaimpact: ["7M", "6M"], + grassknot: ["7M", "6M"], + growl: ["7L1", "6L1"], + headbutt: ["7L12", "6L12"], + helpinghand: ["7T", "6T"], + hiddenpower: ["7M", "6M"], + hypervoice: ["7T", "6T"], + irontail: ["7T", "6T"], + lastresort: ["7T", "6T"], + mimic: ["7E", "6E"], + odorsleuth: ["7L27", "6L27"], + protect: ["7M", "6M"], + raindance: ["7M", "6M"], + refresh: ["7E", "6E"], + rest: ["7M", "6M"], + retaliate: ["7L33", "6M", "6L33"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "7E", "6T", "6E"], + round: ["7M", "6M"], + sandattack: ["7L5", "6L5"], + secretpower: ["6M"], + sleeptalk: ["7M", "6M"], + snarl: ["7M", "6M"], + snore: ["7T", "6T"], + substitute: ["7M", "6M"], + suckerpunch: ["7L42", "6L42"], + sunnyday: ["7M", "6M"], + surf: ["7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["7L1", "6L1"], + tailwhip: ["7L15", "6L15"], + takedown: ["7L35", "6L35"], + thunderwave: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["7T", "6T"], + uturn: ["7M", "6M"], + wildcharge: ["7M", "6M"], + workup: ["7M", "7E", "6E"], + zenheadbutt: ["7T", "6T"], + }, + }, + espurr: { + learnset: { + allyswitch: ["8M", "7T"], + assist: ["7E", "6E"], + attract: ["8M", "7M", "6M"], + barrier: ["7E", "6E"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L9", "6L9"], + covet: ["8L18", "7T", "7L5", "6T", "6L5"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + disarmingvoice: ["8L6", "7L22", "6L22"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M"], + fakeout: ["8L3", "7L19", "6L19"], + faketears: ["8M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gravity: ["7T", "6T"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + lightscreen: ["8M", "8L30", "7M", "7L13", "6M", "6L13"], + magiccoat: ["7T", "6T"], + magicroom: ["8M", "7T", "6T"], + nastyplot: ["8M"], + payback: ["8M", "7M", "6M"], + payday: ["8M"], + playrough: ["8M"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L21", "7L17", "6L17"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + psyshock: ["8M", "8L33", "7M", "7L25", "6M", "6L25"], + raindance: ["8M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["8M", "8L30", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + tickle: ["8E"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T", "7E", "6T", "6E"], + trickroom: ["8M", "7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + workup: ["8M", "7M"], + yawn: ["8E", "7E", "6E"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + meowstic: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + charm: ["8M", "8L15", "7L28", "6L28"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L1", "6L9"], + covet: ["8L18", "7T", "7L1", "6T", "6L5"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + disarmingvoice: ["8L1", "7L22", "6L22"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M"], + fakeout: ["8L1", "7L19", "6L19"], + faketears: ["8M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + gravity: ["7T", "6T"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "8L12", "7T", "7L1", "6T", "6L1"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + imprison: ["8M", "8L44", "7L45", "6L45"], + irontail: ["8M", "7T", "6T"], + leer: ["8L1", "7L1", "6L1"], + lightscreen: ["8M", "8L34", "7M", "7L13", "6M", "6L13"], + magiccoat: ["7T", "6T"], + magicroom: ["8M", "7T", "6T"], + meanlook: ["8L1", "7L1", "6L1"], + miracleeye: ["7L31", "6L31"], + mistyterrain: ["8M", "8L59", "7L50", "6L50"], + nastyplot: ["8M"], + payback: ["8M", "7M", "6M"], + payday: ["8M"], + playrough: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L21", "7L17", "6L17"], + psychic: ["8M", "8L54", "7M", "7L40", "6M", "6L40"], + psychicterrain: ["8M"], + psychup: ["7M", "6M"], + psyshock: ["8M", "8L39", "7M", "7L25", "6M", "6L25"], + quickguard: ["8L49", "7L1", "6L1"], + raindance: ["8M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["8M", "8L34", "7M", "7L35", "6M", "6L35"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["8L29", "7T", "7L43", "6T", "6L43"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + suckerpunch: ["8L24", "7L48", "6L48"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailslap: ["8M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T", "6T"], + trickroom: ["8M", "7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + meowsticf: { + learnset: { + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["8L15", "7M", "7L28", "6M", "6L28"], + charm: ["8M"], + confide: ["7M", "6M"], + confusion: ["8L9", "7L1", "6L9"], + covet: ["8L18", "7T", "7L1", "6L5"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + disarmingvoice: ["8L1", "7L22", "6L22"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + echoedvoice: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + expandingforce: ["8T"], + extrasensory: ["8L44", "7L35", "6L35"], + facade: ["8M", "7M", "6M"], + fakeout: ["8L1", "7L19", "6L19"], + faketears: ["8M"], + flash: ["6M"], + frustration: ["7M", "6M"], + futuresight: ["8M", "8L59", "7L50", "6L50"], + gigaimpact: ["8M", "7M", "6M"], + gravity: ["7T"], + healbell: ["7T"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + irontail: ["8M", "7T"], + leer: ["8L1", "7L1", "6L1"], + lightscreen: ["8M", "8L34", "7M", "7L13", "6M", "6L13"], + magicalleaf: ["8M", "8L1", "7L1", "6L1"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + mefirst: ["7L1", "6L1"], + nastyplot: ["8M"], + payback: ["8M", "7M", "6M"], + payday: ["8M"], + playrough: ["8M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L21", "7L17", "6L17"], + psychic: ["8M", "8L54", "7M", "7L40", "6M", "6L40"], + psychicterrain: ["8M"], + psychup: ["7M", "6M"], + psyshock: ["8M", "8L39", "7M", "7L25", "6M", "6L25"], + raindance: ["8M", "7M", "6M"], + recycle: ["7T"], + reflect: ["8M", "8L34", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roleplay: ["8L29", "7T", "7L43", "6L43"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["8M", "8L49", "7M", "7L31", "6M", "6L31"], + shockwave: ["7T"], + signalbeam: ["7T", "7L45", "6L45"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T"], + snore: ["8M", "7T"], + storedpower: ["8M", "8L12", "7L1", "6L1"], + substitute: ["8M", "7M", "6M"], + suckerpunch: ["8L24", "7L48", "6L48"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailslap: ["8M"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T"], + trickroom: ["8M", "7M", "6M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + }, + honedge: { + learnset: { + aerialace: ["8L12", "7M", "7L22", "6M", "6L22"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + autotomize: ["8L8", "7L18", "6L18"], + block: ["8E"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + destinybond: ["8E", "7E", "6E"], + doubleteam: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L1", "7L5", "6L5"], + gyroball: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + irondefense: ["8M", "8L32", "7T", "7L32", "6T", "6L32"], + ironhead: ["8M", "8L36", "7T", "7L42", "6T", "6L42"], + laserfocus: ["7T"], + magnetrise: ["7T", "6T"], + metalsound: ["8L16", "7L8", "7E", "6L8", "6E"], + nightslash: ["8L24", "7L35", "6L35"], + powertrick: ["8L40", "7L39", "6L39"], + protect: ["8M", "7M", "6M"], + psychocut: ["8M"], + pursuit: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "8L28", "7L26", "6M", "6L26"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M"], + sacredsword: ["8L48", "7L47", "6L47"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shadowsneak: ["8L4", "7L20", "7E", "6L20", "6E"], + shockwave: ["7T", "6T"], + slash: ["8L20", "7L29", "6L29"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarblade: ["8M"], + spite: ["7T", "6T"], + steelbeam: ["8T"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L44", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + toxic: ["7M", "6M"], + wideguard: ["8E", "7E", "6E"], + }, + }, + doublade: { + learnset: { + aerialace: ["8L12", "7M", "7L22", "6M", "6L22"], + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + autotomize: ["8L1", "7L18", "6L18"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L1", "7L1", "6L5"], + gyroball: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + irondefense: ["8M", "8L32", "7T", "7L32", "6T", "6L32"], + ironhead: ["8M", "8L38", "7T", "7L45", "6T", "6L45"], + laserfocus: ["7T"], + magnetrise: ["7T", "6T"], + metalsound: ["8L16", "7L8", "6L8"], + nightslash: ["8L24", "7L36", "6L36"], + powertrick: ["8L44", "7L41", "6L41"], + protect: ["8M", "7M", "6M"], + psychocut: ["8M"], + pursuit: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "8L28", "7L26", "6M", "6L26"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M"], + sacredsword: ["8L56", "7L51", "6L51"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shadowsneak: ["8L1", "7L20", "6L20"], + shockwave: ["7T", "6T"], + slash: ["8L20", "7L29", "6L29"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarblade: ["8M"], + spite: ["7T", "6T"], + steelbeam: ["8T"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L50", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + toxic: ["7M", "6M"], + }, + }, + aegislash: { + learnset: { + aerialace: ["8L1", "7M", "7L1", "6M", "6L1"], + afteryou: ["7T", "6T"], + airslash: ["8M"], + attract: ["8M", "7M", "6M"], + autotomize: ["8L1", "7L1", "6L1"], + block: ["7T", "6T"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + doubleteam: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + flashcannon: ["8M", "7M", "6M", "6S0"], + frustration: ["7M", "6M"], + furycutter: ["8L1", "7L1", "6L1"], + gigaimpact: ["8M", "7M", "6M"], + gyroball: ["8M", "7M", "6M"], + headsmash: ["8L1", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + irondefense: ["8M", "8L1", "7T", "7L1", "6T", "6L1"], + ironhead: ["8M", "8L1", "7T", "7L1", "6T", "6L1"], + kingsshield: ["8L0", "7L1", "6L1", "6S0"], + laserfocus: ["7T"], + magnetrise: ["7T", "6T"], + metalsound: ["8L1"], + nightslash: ["8L1", "7L1", "6L1"], + powertrick: ["8L1", "7L1", "6L1"], + protect: ["8M", "7M", "6M"], + psychocut: ["8M"], + pursuit: ["7L1", "6L1"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "8L1", "6M"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M", "7M", "6M"], + sacredsword: ["8L1", "7L1", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M", "6S0"], + shadowclaw: ["8M", "7M", "6M"], + shadowsneak: ["8L1", "7L1", "6L1"], + shockwave: ["7T", "6T"], + slash: ["8L1", "7L1", "6L1"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarblade: ["8M"], + spite: ["7T", "6T"], + steelbeam: ["8T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "8L1", "7M", "7L1", "6M", "6L1"], + tackle: ["8L1"], + toxic: ["7M", "6M"], + wideguard: ["6S0"], + }, + eventData: [ + {generation: 6, level: 50, gender: "F", nature: "Quiet", moves: ["wideguard", "kingsshield", "shadowball", "flashcannon"], pokeball: "cherishball"}, + ], + }, + spritzee: { + learnset: { + afteryou: ["8E", "7T", "6T"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L12", "7L25", "6L25"], + attract: ["8M", "8L18", "7M", "7L29", "6M", "6L29"], + calmmind: ["8M", "8L33", "7M", "7L17", "6M", "6L17"], + captivate: ["7E", "6E"], + chargebeam: ["7M", "6M"], + charm: ["8M", "8L30", "7L35", "6L35"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + disable: ["8E", "7E", "6E"], + disarmingvoice: ["7L50", "6L50"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L9", "7L21", "6L21"], + dreameater: ["7M", "6M"], + echoedvoice: ["8L6", "7M", "7L13", "6M", "6L13"], + encore: ["8M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L1", "7L1", "6L1"], + faketears: ["8M"], + flail: ["8L21", "7L38", "6L38"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gyroball: ["8M", "7M", "6M"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L24", "7L42", "6L42"], + moonblast: ["8L36", "7L31", "6L31"], + nastyplot: ["8M", "7E"], + odorsleuth: ["7L8", "6L8"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "8L27", "7M", "7L48", "6M", "6L48"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + refresh: ["7E", "6E"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + skillswap: ["8M", "8L39", "7T", "7L44", "6T", "6L44"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetkiss: ["8L3", "7L6", "6L6"], + sweetscent: ["8L1", "7L1", "6L1"], + telekinesis: ["7T"], + thunderbolt: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M"], + wish: ["8E", "7E", "6E"], + }, + }, + aromatisse: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L12", "7L25", "6L25"], + aromaticmist: ["8L1", "7L1", "6L1"], + attract: ["8M", "8L18", "7M", "7L29", "6M", "6L29"], + calmmind: ["8M", "8L33", "7M", "7L17", "6M", "6L17"], + chargebeam: ["7M", "6M"], + charm: ["8M", "8L30", "7L35", "6L35"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + disable: ["6S0"], + disarmingvoice: ["8L9", "7L53", "6L53"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L15", "7L21", "6L21"], + drainpunch: ["8M", "7T", "6T"], + dreameater: ["7M", "6M"], + echoedvoice: ["8L1", "7M", "7L13", "6M", "6L13"], + encore: ["8M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L1", "7L1", "6L1"], + faketears: ["8M"], + flail: ["8L21", "7L38", "6L38"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + gyroball: ["8M", "7M", "6M"], + healbell: ["7T", "6T"], + healpulse: ["8L1", "7L1", "6L1", "6S0"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + metronome: ["8M"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L24", "7L42", "6L42"], + moonblast: ["8L36", "7L31", "6L31", "6S0"], + nastyplot: ["8M"], + odorsleuth: ["7L1", "6L8"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "8L27", "7M", "7L48", "6M", "6L48"], + psychup: ["8L42", "7M", "7L64", "6M", "6L64"], + psyshock: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "7L57", "6M", "6L57"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + skillswap: ["8M", "8L39", "7T", "7L44", "6T", "6L44"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetkiss: ["8L1", "7L1", "6L6"], + sweetscent: ["8L1", "7L1", "6L1"], + telekinesis: ["7T"], + thunder: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M", "6S0"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Relaxed", isHidden: true, moves: ["trickroom", "healpulse", "disable", "moonblast"], pokeball: "cherishball"}, + ], + }, + swirlix: { + learnset: { + afteryou: ["8E", "7T", "7E", "6T", "6E"], + amnesia: ["8M"], + aromatherapy: ["8L9", "7L26", "6L26"], + attract: ["8M", "7M", "6M"], + bellydrum: ["7E", "6E"], + calmmind: ["8M", "7M", "6M"], + charm: ["8M"], + confide: ["7M", "6M"], + copycat: ["8E", "7E", "6E"], + cottonguard: ["8L36", "7L41", "6L41"], + cottonspore: ["8L24", "7L17", "6L17"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L12", "7L31", "6L31"], + dreameater: ["7M", "6M"], + endeavor: ["8L39", "7T", "7L21", "6T", "6L21"], + endure: ["8M"], + energyball: ["8M", "8L27", "7M", "7L36", "6M", "6L36"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L6", "7L5", "6L5"], + faketears: ["8M", "8L15", "7L10", "6L10"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gastroacid: ["7T", "6T"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + lightscreen: ["8M", "7M", "7L58", "6M", "6L58"], + magiccoat: ["7T", "6T"], + mistyexplosion: ["8T"], + playnice: ["8L3", "7L8", "6L8"], + playrough: ["8M", "8L33", "7L49", "6L49"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "8L18", "7M", "7L13", "6M", "6L13"], + safeguard: ["8M", "7M", "7L67", "6M", "6L67"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stickyweb: ["8E", "7E"], + stringshot: ["8L21"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetscent: ["8L1", "7L1", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + thief: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + wish: ["8L30", "7L45", "6L45"], + yawn: ["8E", "7E", "6E"], + }, + }, + slurpuff: { + learnset: { + afteryou: ["7T", "6T"], + amnesia: ["8M"], + aromatherapy: ["8L9", "7L26", "6L26"], + attract: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + charm: ["8M"], + confide: ["7M", "6M"], + cottonguard: ["8L36", "7L41", "6L41"], + cottonspore: ["8L24", "7L17", "6L17"], + covet: ["7T", "6T"], + dazzlinggleam: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M", "8L12", "7L31", "6L31"], + drainpunch: ["8M", "7T", "6T"], + dreameater: ["7M", "6M"], + endeavor: ["8L39", "7T", "7L21", "6T", "6L21"], + endure: ["8M"], + energyball: ["8M", "8L27", "7M", "7L36", "6M", "6L36"], + facade: ["8M", "7M", "6M"], + fairywind: ["8L1", "7L1", "6L5"], + faketears: ["8M", "8L15", "7L10", "6L10"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + gastroacid: ["7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], + healbell: ["7T", "6T"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + lightscreen: ["8M", "7M", "7L58", "6M", "6L58"], + magiccoat: ["7T", "6T"], + metronome: ["8M"], + mistyexplosion: ["8T"], + playnice: ["8L1", "7L1", "6L8"], + playrough: ["8M", "8L33", "7L49", "6L49"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "8L18", "7M", "7L13", "6M", "6L13"], + safeguard: ["8M", "7M", "7L67", "6M", "6L67"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stickyweb: ["8L42"], + stringshot: ["8L21"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + sweetscent: ["8L1", "7L1", "6L1"], + tackle: ["8L1", "7L1", "6L1"], + thief: ["8M", "7M", "6M"], + thunder: ["8M"], + thunderbolt: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + wish: ["8L30", "7L45", "6L45"], + }, + }, + inkay: { + learnset: { + acupressure: ["8E"], + aerialace: ["7M", "6M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + batonpass: ["8M"], + bind: ["7T", "6T"], + calmmind: ["8M", "7M", "6M"], + camouflage: ["7E", "6E"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + destinybond: ["8E", "7E", "6E"], + disable: ["8E"], + doubleteam: ["7M", "6M"], + embargo: ["7M", "6M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M"], + faketears: ["8M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + flatter: ["7E", "6E"], + fling: ["8M", "7M", "6M"], + foulplay: ["8M", "8L33", "7T", "7L8", "6T", "6L8", "6S0"], + frustration: ["7M", "6M"], + futuresight: ["8M"], + guardswap: ["8M", "7E"], + happyhour: ["6S0"], + hiddenpower: ["7M", "6M"], + hypnosis: ["8L3", "7L18", "6L18", "6S0"], + knockoff: ["7T", "6T"], + lashout: ["8T"], + lightscreen: ["8M", "7M", "7L31", "6M", "6L31"], + liquidation: ["8M"], + nastyplot: ["8M"], + nightslash: ["8L24", "7L46", "6L46"], + payback: ["8M", "8L9", "7M", "7L27", "6M", "6L27"], + peck: ["8L1", "7L1", "6L1"], + pluck: ["8L12", "7L35", "6L35"], + powersplit: ["7E", "6E"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L15", "7L21", "6L21"], + psychic: ["8M", "7M", "6M"], + psychocut: ["8M", "8L27", "7L39", "6L39"], + psychup: ["7M", "6M"], + psywave: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "7L4", "6M", "6L4"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + simplebeam: ["7E", "6E"], + slash: ["8L21", "7L43", "6L43"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "8L39", "7T", "7L48", "6T", "6L48"], + swagger: ["8L18", "7M", "7L12", "6M", "6L12"], + switcheroo: ["8L31", "7L23", "6L23"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "7M", "6M"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + topsyturvy: ["8L36", "7L15", "6L15", "6S0"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M"], + wrap: ["8L6"], + }, + eventData: [ + {generation: 6, level: 10, moves: ["happyhour", "foulplay", "hypnosis", "topsyturvy"], pokeball: "cherishball"}, + ], + }, + malamar: { + learnset: { + aerialace: ["7M", "6M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + batonpass: ["8M"], + bind: ["7T", "6T"], + block: ["7T", "6T"], + brutalswing: ["8M", "7M"], + calmmind: ["8M", "7M", "6M"], + confide: ["7M", "6M"], + constrict: ["7L1", "6L1"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + embargo: ["7M", "6M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M", "6M", "6S0"], + faketears: ["8M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + fling: ["8M", "7M", "6M"], + foulplay: ["8M", "8L37", "7T", "7L8", "6T", "6L8"], + frustration: ["7M", "6M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M", "6M"], + guardswap: ["8M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + hypnosis: ["8L1", "7L18", "6L18"], + knockoff: ["7T", "6T", "6S0"], + lashout: ["8T"], + lightscreen: ["8M", "7M", "7L31", "6M", "6L31"], + liquidation: ["8M"], + nastyplot: ["8M"], + nightslash: ["8L24", "7L46", "6L46"], + payback: ["8M", "8L9", "7M", "7L27", "6M", "6L27"], + peck: ["8L1", "7L1", "6L1"], + pluck: ["8L12", "7L35", "6L35"], + protect: ["8M", "7M", "6M"], + psybeam: ["8L15", "7L21", "6L21"], + psychic: ["8M", "7M", "6M"], + psychocut: ["8M", "8L27", "7L39", "6L39"], + psychup: ["7M", "6M"], + psyshock: ["8M", "7M", "6M"], + psywave: ["7L13", "6L13"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "7L1", "6M", "6L4"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + reversal: ["8M", "8L1", "7L1", "6L1"], + rockslide: ["8M", "7M", "6M", "6S0"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + scaryface: ["8M"], + secretpower: ["6M"], + signalbeam: ["7T", "6T"], + slash: ["8L21", "7L43", "6L43"], + sleeptalk: ["8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + storedpower: ["8M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "8L47", "7T", "7L48", "6T", "6L1", "6S0"], + swagger: ["8L18", "7M", "7L12", "6M", "6L12"], + switcheroo: ["8L33", "7L23", "6L23"], + tackle: ["8L1", "7L1", "6L1"], + taunt: ["8M", "7M", "6M"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + throatchop: ["8M", "7T"], + thunderbolt: ["8M", "7M", "6M"], + topsyturvy: ["8L42", "7L15", "6L15"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trickroom: ["8M", "7M", "6M"], + wrap: ["8L1"], + }, + eventData: [ + {generation: 6, level: 50, nature: "Adamant", ivs: {hp: 31, atk: 31}, abilities: ["contrary"], moves: ["superpower", "knockoff", "facade", "rockslide"], pokeball: "cherishball"}, + ], + }, + binacle: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L20", "7L28", "6L28"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + beatup: ["8M"], + blizzard: ["8M", "7M", "6M"], + brickbreak: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + clamp: ["7L20", "6L20"], + confide: ["7M", "6M"], + crosschop: ["8L44", "7L49", "6L49"], + cut: ["6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dualchop: ["7T", "6T"], + earthquake: ["8M", "7M", "6M"], + embargo: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + fling: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L12", "7L37", "6L37"], + furyswipes: ["8L16", "7L10", "6L10"], + grassknot: ["8M", "7M", "6M"], + helpinghand: ["8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "6M"], + honeclaws: ["8L32", "7L32", "6M", "6L32"], + icebeam: ["8M", "7M", "6M"], + icywind: ["8M", "7T", "6T"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + liquidation: ["8M", "7T"], + mudshot: ["8M"], + mudslap: ["8L1", "7L18", "6L18"], + naturepower: ["7M", "6M"], + nightslash: ["8E", "7L41", "6L41"], + payback: ["8M", "7M", "6M"], + poisonjab: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + razorshell: ["8M", "8L36", "7L45", "6L45"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["8L24", "7M", "7L24", "6M", "6L24"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandattack: ["8E", "7L1", "6L1"], + sandstorm: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shellsmash: ["8L40", "7L1", "6L1"], + slash: ["8L28", "7L13", "6L13"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + switcheroo: ["8E", "7E", "6E"], + swordsdance: ["8M", "7M", "6M"], + taunt: ["8M", "7M", "6M"], + thief: ["8M", "7M", "6M"], + tickle: ["7E", "6E"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M"], + watergun: ["8L8", "7L4", "6L4"], + waterpulse: ["7T", "6T"], + watersport: ["7E", "6E"], + withdraw: ["8L4", "7L7", "6L7"], + xscissor: ["8M", "7M", "6M"], + }, + }, + barbaracle: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L20", "7L28", "6L28"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + beatup: ["8M"], + blizzard: ["8M", "7M", "6M"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + clamp: ["7L20", "6L20"], + confide: ["7M", "6M"], + crosschop: ["8L48", "7L55", "6L55"], + cut: ["6M"], + dig: ["8M", "6M"], + dive: ["8M"], + doubleteam: ["7M", "6M"], + dragonclaw: ["8M", "7M", "6M"], + dualchop: ["7T", "6T"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "7M", "6M"], + embargo: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + falseswipe: ["8M", "7M", "6M"], + fling: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + furycutter: ["8L12", "7L37", "6L37"], + furyswipes: ["8L16", "7L10", "6L10"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + helpinghand: ["8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["8L32", "7L32", "6M", "6L32"], + hyperbeam: ["8M", "7M", "6M"], + icebeam: ["8M", "7M", "6M"], + icywind: ["8M", "7T", "6T"], + infestation: ["7M", "6M"], + irondefense: ["8M", "7T", "6T"], + laserfocus: ["7T"], + liquidation: ["8M", "7T"], + lowkick: ["8M", "7T", "6T"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["8M"], + mudslap: ["8L1", "7L18", "6L18"], + naturepower: ["7M", "6M"], + nightslash: ["7L44", "6L44"], + payback: ["8M", "7M", "6M"], + poisonjab: ["8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + razorshell: ["8M", "8L36", "7L48", "6L48"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["8L24", "7M", "7L24", "6M", "6L24"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandattack: ["7L1", "6L1"], + sandstorm: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scratch: ["8L1", "7L1", "6L1"], + screech: ["8M"], + secretpower: ["6M"], + shadowclaw: ["8M", "7M", "6M"], + shellsmash: ["8L42", "7L1", "6L1"], + skullbash: ["8L1", "7L1", "6L1"], + slash: ["8L28", "7L13", "6L13"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "8L54", "7M", "7L1", "6M", "6L1"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["8M", "7M", "6M"], + taunt: ["8M", "7M", "6M"], + thief: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M"], + watergun: ["8L1", "7L1", "6L4"], + waterpulse: ["7T", "6T"], + whirlpool: ["8M"], + withdraw: ["8L1", "7L7", "6L7"], + xscissor: ["8M", "7M", "6M"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + skrelp: { + learnset: { + acid: ["9L5", "8L5", "7L15", "6L15"], + acidarmor: ["9E", "8E", "7E", "6E"], + acidspray: ["9M"], + aquatail: ["9L45", "8L45", "7T", "7L35", "6T", "6L35"], + attract: ["8M", "7M", "6M"], + bounce: ["8M", "7T", "6T"], + bubble: ["7L12", "6L12"], + camouflage: ["7L19", "6L19"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M"], + doubleteam: ["9L20", "8L20", "7M", "7L28", "6M", "6L28"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L49", "6T", "6L49"], + dragontail: ["9M", "9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feintattack: ["7L5", "6L5"], + flipturn: ["8T"], + frustration: ["7M", "6M"], + gunkshot: ["9M", "8M", "7T", "6T"], + hail: ["8M", "7M", "6M"], + haze: ["9E", "8E", "7E", "6E"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L55", "8M", "8L55", "7L42", "6L42"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M", "8M", "7T", "6T"], + playrough: ["9M", "8M", "7E", "6E"], + poisontail: ["9M", "9L25", "8L25", "7L23", "6L23"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scaleshot: ["8T"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shockwave: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "9L50", "8M", "8L50", "7M", "7L38", "6M", "6L38"], + sludgewave: ["8M", "7M", "6M"], + smokescreen: ["9L1", "8L1", "7L1", "6L1"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwhip: ["9L15", "8L15", "7L9", "6L9"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["9L35", "8L35", "7M", "7L32", "6M", "6L32"], + toxicspikes: ["9M", "8M", "7E", "6E"], + twister: ["9E", "8E"], + venomdrench: ["8M", "7E", "6E"], + venoshock: ["9M", "8M", "7M", "6M"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L10", "8L10", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L25", "6T", "6L25"], + }, + }, + dragalge: { + learnset: { + acid: ["9L1", "8L1", "7L15", "6L15"], + acidspray: ["9M"], + aquatail: ["9L45", "8L45", "7T", "7L35", "6T", "6L35"], + attract: ["8M", "7M", "6M"], + bounce: ["8M", "7T", "6T"], + bubble: ["7L12", "6L12"], + camouflage: ["7L19", "6L19"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + dive: ["8M", "6M"], + doubleteam: ["9L20", "8L20", "7M", "7L28", "6M", "6L28"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L53", "6T", "6L53"], + dragontail: ["7M", "7L1", "6M", "6L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feintattack: ["7L1", "6L5"], + flipturn: ["8T"], + focusblast: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gunkshot: ["9M", "8M", "7T", "6T"], + hail: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L59", "8M", "8L59", "7L42", "6L42"], + hyperbeam: ["9M", "8M", "7M", "6M"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M", "9L66", "8M", "8L66", "7T", "6T"], + playrough: ["9M", "8M"], + poisontail: ["9M", "9L25", "8L25", "7L23", "6L23"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scaleshot: ["8T"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shockwave: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "9L52", "8M", "8L52", "7M", "7L38", "6M", "6L38"], + sludgewave: ["8M", "7M", "6M"], + smokescreen: ["9L1", "8L1", "7L1", "6L1"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwhip: ["9L15", "8L15", "7L9", "6L9"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M", "8M", "7M", "6M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["9L35", "8L35", "7M", "7L32", "6M", "6L32"], + toxicspikes: ["9M", "8M"], + twister: ["7L1", "6L1"], + venomdrench: ["8M"], + venoshock: ["9M", "8M", "7M", "6M"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L25", "6T", "6L25"], + }, + encounters: [ + {generation: 6, level: 35}, + ], + }, + clauncher: { + learnset: { + aquajet: ["9L15", "8L15", "7L43", "7E", "6L43", "6E"], + aquatail: ["9E", "8E", "7T", "6T"], + attract: ["8M", "7M", "6M"], + aurasphere: ["9M", "9L40", "8M", "8L40"], + blizzard: ["9M"], + bounce: ["9L45", "8M", "8L45", "7T", "6T"], + bubble: ["7L12", "6L12"], + bubblebeam: ["9E", "8E", "7L20", "6L20"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crabhammer: ["9L55", "8L55", "7L30", "7E", "6L30", "6E"], + cut: ["6M"], + darkpulse: ["9M"], + dive: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonpulse: ["9M", "8M", "7T", "6T"], + endure: ["9M", "8M", "7E", "6E"], + entrainment: ["9E", "8E", "7E", "6E"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L10", "8L10", "7L16", "6L16"], + flashcannon: ["9M", "8M", "7M", "6M"], + flipturn: ["8T"], + frustration: ["7M", "6M"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "6M"], + honeclaws: ["9L25", "8L25"], + hydropump: ["9M"], + icebeam: ["9M", "8M", "7M", "6M"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + liquidation: ["9M"], + muddywater: ["9L50", "8M", "8L50", "7L48", "6L48"], + mudshot: ["9M"], + mudslap: ["9M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["9L20", "8L20", "7M", "7L39", "6M", "6L39"], + snore: ["8M", "7T", "6T"], + splash: ["9L1", "8L1", "7L1", "6L1"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["9M", "9L35", "8M", "8L35", "7M", "7L25", "6M", "6L25"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + venoshock: ["9M", "8M", "7M", "6M"], + visegrip: ["9L5", "8L5", "7L9", "6L9"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L34", "6T", "6L34"], + watersport: ["7L7", "6L7"], + }, + }, + clawitzer: { + learnset: { + aquajet: ["9L15", "8L15", "7L49", "6L47"], + aquatail: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + aurasphere: ["9M", "9L42", "8M", "8L42", "7L1", "6L1"], + blizzard: ["9M"], + bodyslam: ["9M"], + bounce: ["9L49", "8M", "8L49", "7T", "6T"], + bubble: ["7L12", "6L12"], + bubblebeam: ["7L20", "6L20"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crabhammer: ["9L63", "8L63", "7L30", "6L30"], + cut: ["6M"], + darkpulse: ["9M", "9L1", "8M", "8L1", "7M", "7L1", "6M", "6L1"], + dive: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonpulse: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L1", "8L1", "7L16", "6L16"], + flashcannon: ["9M", "8M", "7M", "6M"], + flipturn: ["8T"], + focusblast: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + healpulse: ["9L1", "8L1", "7L1", "6L1"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["9L25", "8L25"], + hydropump: ["9M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + icebeam: ["9M", "8M", "7M", "6M"], + icywind: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["7T"], + liquidation: ["9M", "8M", "7T"], + muddywater: ["9L56", "8M", "8L56", "7L57", "6L53"], + mudshot: ["9M"], + mudslap: ["9M"], + pounce: ["9M"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + scald: ["8M", "7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["9L20", "8L20", "7M", "7L42", "6M", "6L42"], + snore: ["8M", "7T", "6T"], + splash: ["9L1", "8L1", "7L1", "6L1"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swordsdance: ["9M", "9L35", "8M", "8L35", "7M", "7L25", "6M", "6L25"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + thief: ["9M"], + toxic: ["7M", "6M"], + uturn: ["9M", "8M", "7M", "6M"], + venoshock: ["9M", "8M", "7M", "6M"], + visegrip: ["9L1", "8L1", "7L1", "6L9"], + waterfall: ["9M", "8M", "7M", "6M"], + watergun: ["9L1", "8L1", "7L1", "6L1"], + waterpulse: ["9M", "9L30", "8L30", "7T", "7L34", "6T", "6L34"], + watersport: ["7L1", "6L7"], + }, + encounters: [ + {generation: 6, level: 35}, + ], + }, + helioptile: { + learnset: { + agility: ["8M", "7E", "6E"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L20", "7M", "7L35", "6M", "6L35"], + camouflage: ["7E", "6E"], + charge: ["8L16", "7L11", "6L11"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dragonrush: ["8E"], + dragontail: ["8E", "7M", "6M"], + electricterrain: ["8M", "7E", "6E"], + electrify: ["8L40", "7L45", "6L45"], + electroball: ["8M"], + electroweb: ["8M", "7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + frustration: ["7M", "6M"], + glare: ["8E", "7E", "6E"], + grassknot: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "7M", "6M"], + lowsweep: ["8M", "7M", "6M"], + magnetrise: ["7T", "6T"], + mudslap: ["8L1", "7L13", "6L13"], + paraboliccharge: ["8L28", "7L25", "6L25"], + pound: ["8L4", "7L1", "6L1"], + protect: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + quickattack: ["8L12", "7L17", "6L17"], + raindance: ["8M", "7M", "6M"], + razorwind: ["7L22", "6L22"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + risingvoltage: ["8T"], + rockslide: ["8M", "7M", "6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailwhip: ["8L1", "7L1", "6L1"], + thunder: ["8M", "8L44", "7M", "6M"], + thunderbolt: ["8M", "8L36", "7M", "7L49", "6M", "6L49"], + thundershock: ["8L8", "7L6", "6L6"], + thunderwave: ["8M", "8L32", "7M", "7L31", "6M", "6L31"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + voltswitch: ["8M", "8L24", "7M", "7L40", "6M", "6L40"], + wildcharge: ["8M", "7M", "6M"], + }, + }, + heliolisk: { + learnset: { + agility: ["8M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "8L1", "7M", "6M"], + charge: ["8L1", "7L1", "6L1"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + discharge: ["8L1"], + doubleteam: ["7M", "6M"], + dragonpulse: ["8M", "7T", "6T"], + dragontail: ["7M", "6M"], + eerieimpulse: ["8M", "8L1", "7L1", "6L1"], + electricterrain: ["8M"], + electrify: ["8L1", "7L1", "6L1"], + electroball: ["8M"], + electroweb: ["8M", "7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + firepunch: ["8M", "7T", "6T"], + flash: ["6M"], + focusblast: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "7M", "6M"], + lowkick: ["8M", "7T", "6T"], + lowsweep: ["8M", "7M", "6M"], + magnetrise: ["7T", "6T"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["8L1"], + paraboliccharge: ["8L1", "7L1", "6L1"], + pound: ["8L1"], + protect: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + quickattack: ["8L1", "7L1", "6L1"], + raindance: ["8M", "7M", "6M"], + razorwind: ["7L1", "6L1"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + risingvoltage: ["8T"], + rockslide: ["8M", "7M", "6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["8M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailwhip: ["8L1"], + thunder: ["8M", "8L1", "7M", "7L1", "6M", "6L1"], + thunderbolt: ["8M", "8L1", "7M", "6M"], + thunderpunch: ["8M", "7T", "6T"], + thundershock: ["8L1"], + thunderwave: ["8M", "8L1", "7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + voltswitch: ["8M", "8L1", "7M", "6M"], + weatherball: ["8M"], + wildcharge: ["8M", "7M", "6M"], + }, + }, + tyrunt: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L8", "7L26", "6L26"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + bide: ["7L12", "6L12"], + bite: ["8L16", "7L17", "6L17"], + block: ["7T", "6T"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M", "6M"], + bulldoze: ["8M", "7M", "6M"], + charm: ["8M", "8L12", "7L20", "6L20"], + closecombat: ["8M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L32", "7L34", "6L34"], + curse: ["8E", "7E", "6E"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dracometeor: ["8T", "7T", "6T"], + dragonclaw: ["8M", "8L36", "7M", "7L37", "6M", "6L37"], + dragondance: ["8M", "7E", "6E"], + dragonpulse: ["8M", "7T", "6T"], + dragontail: ["8L20", "7M", "7L30", "6M", "6L30"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L44", "7M", "7L44", "6M", "6L44"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + firefang: ["8M", "7E", "6E"], + frustration: ["7M", "6M"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + horndrill: ["8L48", "7L49", "6L49"], + hypervoice: ["8M", "7T", "6T"], + icefang: ["8M", "7E", "6E"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lashout: ["8T"], + meteorbeam: ["8T"], + outrage: ["8M", "7T", "6T"], + playrough: ["8M"], + poisonfang: ["8E", "7E", "6E"], + protect: ["8M", "7M", "6M"], + psychicfangs: ["8M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["8L4", "7M", "7L6", "6M", "6L6", "6S0"], + rockblast: ["8M"], + rockpolish: ["8E", "7M", "7E", "6M", "6E"], + rockslide: ["8M", "8L28", "7M", "6M"], + rocksmash: ["6M"], + rockthrow: ["8E"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "7L15", "6T", "6L15"], + stomp: ["8L24", "7L10", "6L10", "6S0"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + tackle: ["8L1", "7L1", "6L1", "6S0"], + tailwhip: ["8L1", "7L1", "6L1", "6S0"], + thrash: ["8L40", "7L40", "6L40"], + thunderfang: ["8M", "7E", "6E"], + toxic: ["7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 10, isHidden: true, moves: ["tailwhip", "tackle", "roar", "stomp"], pokeball: "cherishball"}, + ], + }, + tyrantrum: { + learnset: { + aerialace: ["7M", "6M"], + ancientpower: ["8L1", "7L26", "6L26"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + bide: ["7L12", "6L12"], + bite: ["8L16", "7L17", "6L17"], + block: ["7T", "6T"], + bodyslam: ["8M"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M"], + charm: ["8M", "8L12", "7L20", "6L20"], + closecombat: ["8M"], + confide: ["7M", "6M"], + crunch: ["8M", "8L32", "7L34", "6L34"], + darkpulse: ["8M", "7M", "6M"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + dracometeor: ["8T", "7T", "6T"], + dragonclaw: ["8M", "8L36", "7M", "7L37", "6M", "6L37"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T", "6T"], + dragontail: ["8L20", "7M", "7L30", "6M", "6L30"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L48", "7M", "7L47", "6M", "6L47"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + firefang: ["8M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "8L60", "7M", "7L68", "6M", "6L75"], + headsmash: ["8L66", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["8M"], + honeclaws: ["6M"], + horndrill: ["8L54", "7L53", "6L53"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + icefang: ["8M"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lashout: ["8T"], + meteorbeam: ["8T"], + outrage: ["8M", "7T", "6T"], + playrough: ["8M"], + protect: ["8M", "7M", "6M"], + psychicfangs: ["8M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["8L1", "7M", "7L1", "6M", "6L6"], + rockblast: ["8M"], + rockpolish: ["7M", "6M"], + rockslide: ["8M", "8L28", "7M", "7L1", "6M", "6L68"], + rocksmash: ["6M"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + scaleshot: ["8T"], + scaryface: ["8M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "7L15", "6T", "6L15"], + stomp: ["8L24", "7L1", "6L10"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + tailwhip: ["8L1", "7L1", "6L1"], + thrash: ["8L42", "7L42", "6L42"], + thunderfang: ["8M"], + toxic: ["7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + amaura: { + learnset: { + ancientpower: ["8L8", "7L26", "6L26"], + aquatail: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + aurorabeam: ["8L24", "7L20", "6L20"], + auroraveil: ["8E"], + avalanche: ["8M", "7L34", "6L34"], + barrier: ["7E", "6E"], + blizzard: ["8M", "8L52", "7M", "7L65", "6M", "6L65"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M"], + discharge: ["8E", "7E", "6E"], + doubleteam: ["7M", "6M"], + dragontail: ["7M", "6M"], + dreameater: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + echoedvoice: ["7M", "6M"], + encore: ["8M", "8L4", "7L44", "6L44"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + freezedry: ["8L36"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + growl: ["8L1", "7L1", "6L1", "6S0"], + hail: ["8M", "8L48", "7M", "7L38", "6M", "6L38"], + haze: ["8E", "7E", "6E"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "8L56", "7M", "7L57", "6M", "6L57"], + hypervoice: ["8M", "7T", "6T"], + icebeam: ["8M", "8L40", "7M", "7L50", "6M", "6L50"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L44", "7M", "7L47", "6M", "6L47"], + magnetrise: ["7T", "7E", "6T", "6E"], + meteorbeam: ["8T"], + mirrorcoat: ["8E", "7E", "6E"], + mist: ["8L20", "7L18", "6L18"], + mudshot: ["8M"], + naturepower: ["8L32", "7M", "7L41", "6M", "6L41"], + outrage: ["8M", "7T", "6T"], + powdersnow: ["8L1", "7L1", "6L1", "6S0"], + protect: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rockthrow: ["8E", "7L10", "6L10", "6S0"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "8L16", "7M", "7L30", "6M", "6L30"], + safeguard: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + takedown: ["8E", "7L15", "6L15"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "8L28", "7M", "7L5", "6M", "6L5", "6S0"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 10, isHidden: true, moves: ["growl", "powdersnow", "thunderwave", "rockthrow"], pokeball: "cherishball"}, + ], + }, + aurorus: { + learnset: { + ancientpower: ["8L1", "7L26", "6L26"], + aquatail: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + aurorabeam: ["8L24", "7L20", "6L20"], + avalanche: ["8M", "7L34", "6L34"], + blizzard: ["8M", "8L60", "7M", "7L74", "6M", "6L74"], + bodyslam: ["8M"], + bulldoze: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + darkpulse: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + dragontail: ["7M", "6M"], + dreameater: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "7M", "6M"], + echoedvoice: ["7M", "6M"], + encore: ["8M", "8L1", "7L46", "6L46"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + freezedry: ["8L36", "7L1", "6L1"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + growl: ["8L1", "7L1", "6L1"], + hail: ["8M", "8L54", "7M", "7L38", "6M", "6L38"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "8L66", "7M", "7L63", "6M", "6L63"], + hypervoice: ["8M", "7T", "6T"], + icebeam: ["8M", "8L42", "7M", "7L56", "6M", "6L56"], + iciclespear: ["8M"], + icywind: ["8M", "8L12", "7T", "7L13", "6T", "6L13"], + irondefense: ["8M", "7T", "6T"], + ironhead: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + lightscreen: ["8M", "8L48", "7M", "7L50", "6M", "6L50"], + magnetrise: ["7T", "6T"], + meteorbeam: ["8T"], + mist: ["8L20", "7L18", "6L18"], + mudshot: ["8M"], + naturepower: ["8L32", "7M", "7L43", "6M", "6L43"], + outrage: ["8M", "7T", "6T"], + powdersnow: ["8L1", "7L1", "6L1"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockblast: ["8M"], + rockpolish: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + rockthrow: ["7L1", "6L10"], + rocktomb: ["8M", "7M", "6M"], + round: ["8M", "8L16", "7M", "7L30", "6M", "6L30"], + safeguard: ["8M", "7M", "6M"], + sandstorm: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stealthrock: ["8M", "7T", "6T"], + stoneedge: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + takedown: ["7L15", "6L15"], + thunder: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "8L28", "7M", "7L1", "6M", "6L5"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + weatherball: ["8M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + }, + sylveon: { + learnset: { + attract: ["8M", "7M", "6M"], + babydolleyes: ["9L15", "8L15", "7L9", "6S1"], + batonpass: ["9M", "9L1", "8M", "8L1"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M"], + calmmind: ["9M", "8M", "7M", "7S2", "6M"], + celebrate: ["6S0"], + charm: ["9M", "9L1", "8M", "8L1"], + confide: ["7M", "6M"], + copycat: ["9L1", "8L1"], + covet: ["9L1", "8L1", "7T", "6T"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + dig: ["9M", "8M", "6M"], + disarmingvoice: ["9M", "9L0", "8L0", "7L1", "6L1", "6S1"], + doubleedge: ["9L1", "8L1"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L30", "8M", "8L30", "7L20", "7S2", "6L20", "6S1"], + echoedvoice: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + fairywind: ["7L1", "6L9", "6S0"], + faketears: ["9M", "8M"], + flash: ["6M"], + focusenergy: ["8M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + growl: ["9L1", "8L1"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "6T", "6L1", "6S0"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "7S2", "6M"], + hypervoice: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["7T"], + lastresort: ["9L55", "8L55", "7T", "7L41", "6T", "6L41"], + lightscreen: ["9M", "9L25", "8M", "8L25", "7M", "7L33", "6M", "6L33"], + magicalleaf: ["9M", "8M"], + magiccoat: ["7T", "6T"], + mistyexplosion: ["8T"], + mistyterrain: ["9M", "9L35", "8M", "8L35", "7L29", "6L29"], + moonblast: ["9L50", "8L50", "7L37", "6L37"], + mysticalfire: ["8M"], + payday: ["8M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M"], + psychup: ["9L45", "8L45", "7M", "7L45", "6M", "6L45"], + psyshock: ["9M", "8M", "7M", "7S2", "6M"], + quickattack: ["9L10", "8L10", "7L13", "6L13", "6S1"], + raindance: ["9M", "8M", "7M", "6M"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandattack: ["9L5", "8L5", "7L5", "6L5", "6S0"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + skillswap: ["9M", "9L40", "8M", "8L40", "7T", "7L25", "6T", "6L25"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M", "9L20", "8M", "8L20", "7L17", "6L17"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M", "9L1", "8L1"], + telekinesis: ["7T"], + terablast: ["9M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + weatherball: ["8M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 6, level: 10, moves: ["celebrate", "helpinghand", "sandattack", "fairywind"], pokeball: "cherishball"}, + {generation: 6, level: 10, gender: "F", moves: ["disarmingvoice", "babydolleyes", "quickattack", "drainingkiss"], pokeball: "cherishball"}, + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["hyperbeam", "drainingkiss", "psyshock", "calmmind"], pokeball: "cherishball"}, + ], + }, + hawlucha: { + learnset: { + acrobatics: ["9M", "8M", "7M", "6M"], + aerialace: ["9M", "9L12", "8L12", "7M", "7L16", "6M", "6L16"], + agility: ["9M", "8M", "7E", "6E"], + allyswitch: ["8M", "7T", "7E", "6E"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + batonpass: ["9M", "8M", "7E", "6E"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + bounce: ["9L28", "8M", "8L28", "7T", "7L32", "6T", "6L32"], + bravebird: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "7M", "6M"], + bulkup: ["9M", "8M", "7M", "6M"], + closecombat: ["9M", "8M"], + coaching: ["8T"], + confide: ["7M", "6M"], + crosschop: ["9E", "8E"], + cut: ["6M"], + defog: ["9E", "8E", "7T"], + detect: ["9L8", "8L8", "7L1", "6L1"], + dig: ["9M", "8M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "8M", "7T", "6T"], + dualchop: ["7T", "6T"], + dualwingbeat: ["8T"], + encore: ["9M", "9L16", "8M", "8L16", "7L20", "6L20"], + endeavor: ["9L52", "8L52", "7T", "7L36", "6T", "6L36"], + endure: ["9M", "8M"], + entrainment: ["9E", "8E", "7E", "6E"], + facade: ["9M", "8M", "7M", "6M"], + falseswipe: ["9M", "8M", "7M", "6M"], + featherdance: ["9L20", "8L20", "7L40", "6L40"], + feint: ["9E", "8E", "7E"], + firepunch: ["9M", "8M", "7T", "6T"], + fling: ["9M", "8M", "7M", "7L24", "6M", "6L24"], + fly: ["9M", "8M", "7M", "6M"], + flyingpress: ["9L44", "8L44", "7L28", "6L28"], + focusblast: ["9M", "8M", "7M", "6M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + highjumpkick: ["9L48", "8L48", "7L44", "6L44"], + honeclaws: ["9L1", "8L1", "7L1", "6M", "6L1"], + hyperbeam: ["9M"], + ironhead: ["9M", "8M", "7T", "6T"], + karatechop: ["7L4", "6L4"], + laserfocus: ["7T"], + lastresort: ["7T", "6T"], + lowkick: ["9M", "8M", "7T", "6T"], + lowsweep: ["9M", "8M", "7M", "6M"], + meanlook: ["9E", "8E"], + mefirst: ["7E", "6E"], + megakick: ["8M"], + megapunch: ["8M"], + mudsport: ["7E", "6E"], + payback: ["8M", "7M", "6M"], + poisonjab: ["9M", "8M", "7M", "6M"], + poweruppunch: ["6M"], + protect: ["9M", "8M", "7M", "6M"], + quickguard: ["9E", "8E", "7E", "6E"], + raindance: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "8M", "7M", "6M"], + roost: ["9L36", "8L36", "7M", "7L12", "6M", "6L12"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + skyattack: ["9L56", "8L56", "7T", "7L48", "6T", "6L48"], + skydrop: ["7M", "7L55", "6M", "6L55"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + steelwing: ["8M", "7M", "6M"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + submission: ["8L24"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L40", "8M", "8L40", "7M", "7L60", "6M", "6L60"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwind: ["7T", "6T"], + takedown: ["9M"], + taunt: ["9M", "9L32", "8M", "8L32", "7M", "6M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["8M", "7T"], + thunderpunch: ["9M", "8M", "7T", "6T"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M"], + wingattack: ["9L4", "8L4", "7L8", "6L8"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M", "7M", "6M"], + zenheadbutt: ["9M", "8M", "7T", "6T"], + }, + }, + dedenne: { + learnset: { + aerialace: ["7M", "6M"], + agility: ["9M"], + allyswitch: ["8M", "7T"], + attract: ["8M", "7M", "6M"], + charge: ["9L10", "8L10", "7L11", "6L11"], + chargebeam: ["9M", "7M", "7L34", "6M", "6L34"], + charm: ["9M", "9L20", "8M", "8L20", "7L14", "6L14"], + confide: ["7M", "6M"], + covet: ["9E", "8E", "7T", "7E", "6T", "6E"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M"], + dig: ["9M", "8M", "6M"], + discharge: ["9L40", "8L40", "7L50", "6L50"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M"], + eerieimpulse: ["9M", "8M", "7E", "6E"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M", "7T", "6T"], + endure: ["9M", "8M"], + entrainment: ["9L55", "8L55", "7L39", "6L39"], + facade: ["9M", "8M", "7M", "6M"], + flash: ["6M"], + fling: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + grassknot: ["9M", "8M", "7M", "6M"], + helpinghand: ["9M", "8M", "7T", "7E", "6T", "6E"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M"], + irontail: ["8M", "7T", "6T"], + lastresort: ["7T", "6T"], + lightscreen: ["9M"], + magnetrise: ["9E", "8E", "7T", "6T"], + mistyterrain: ["9M"], + naturalgift: ["7E", "6E"], + nuzzle: ["9L1", "8L1", "7L20", "6L20"], + paraboliccharge: ["9L25", "8L25", "7L17", "6L17"], + playrough: ["9M", "9L45", "8M", "8L45", "7L42", "6L42"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + recycle: ["7T", "6T"], + rest: ["9M", "9L35", "8M", "8L35", "7M", "7L30", "6M", "6L30"], + retaliate: ["8M", "6M"], + return: ["7M", "6M"], + risingvoltage: ["8T"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["9M"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["9L35", "8M", "8L35", "7T", "7L31", "6T", "6L31"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superfang: ["9L50", "8L50", "7T", "6T"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L5", "8L5", "7L1", "6L1"], + tailwhip: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + tearfullook: ["9E", "8E", "7E"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + thunder: ["9M", "9L60", "8M", "8L60", "7M", "7L45", "6M", "6L45"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thunderpunch: ["9M", "8M", "7T", "6T"], + thundershock: ["9L15", "8L15", "7L7", "6L7"], + thunderwave: ["9M", "8M", "7M", "7L23", "6M", "6L23"], + toxic: ["7M", "6M"], + trailblaze: ["9M"], + uturn: ["9M", "8M", "7M", "6M"], + voltswitch: ["9M", "9L30", "8M", "8L30", "7M", "7L26", "6M", "6L26"], + wildcharge: ["9M", "8M", "7M", "6M"], + }, + }, + carbink: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["8M", "7T"], + ancientpower: ["9L20", "8L20", "7L31", "6L31"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], + charm: ["9M", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + earthpower: ["9M", "8M", "7T", "6T"], + endure: ["9M", "8M"], + explosion: ["7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L15", "8L15", "7L35", "6L35"], + flash: ["6M"], + flashcannon: ["9M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M"], + gravity: ["7T", "6T"], + guardsplit: ["9L5", "8L5", "7L27", "6L27"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + heavyslam: ["9M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M"], + irondefense: ["9M", "8M", "7T", "6T"], + ironhead: ["9M"], + lightscreen: ["9M", "9L30", "8M", "8L30", "7M", "7L60", "6M", "6L60"], + magiccoat: ["7T", "6T"], + magnetrise: ["7T", "6T"], + meteorbeam: ["8T"], + mistyexplosion: ["8T"], + mistyterrain: ["9M"], + moonblast: ["9L55", "8L55", "7L50", "6L50"], + naturepower: ["7M", "6M"], + powergem: ["9M", "9L45", "8M", "8L45", "7L46", "6L46"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychup: ["7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "7L18", "6M", "6L18"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockblast: ["9M"], + rockpolish: ["9L25", "8L25", "7M", "6M"], + rockslide: ["9M", "9L35", "8M", "8L35", "7M", "6M"], + rockthrow: ["7L5", "6L5"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "7L70", "6M", "6L70"], + sandstorm: ["9M", "8M", "7M", "6M"], + sandtomb: ["8M"], + secretpower: ["6M"], + sharpen: ["7L8", "6L8"], + skillswap: ["9M", "9L40", "8M", "8L40", "7T", "7L40", "6T", "6L40"], + sleeptalk: ["9M", "8M", "7M", "6M"], + smackdown: ["9L10", "8L10", "7M", "7L12", "6M", "6L12"], + snore: ["8M", "7T", "6T"], + spikes: ["9M"], + stealthrock: ["9M", "9L50", "8M", "8L50", "7T", "7L21", "6T", "6L21"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L49", "6M", "6L49"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M", "6M"], + trickroom: ["9M", "8M", "7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + }, + }, + goomy: { + learnset: { + absorb: ["9L1", "8L1", "7L5", "6L5"], + acidarmor: ["7E", "6E"], + attract: ["8M", "7M", "6M"], + bide: ["7L13", "6L13"], + bodyslam: ["9M", "9L45", "8M", "8L45", "7L32", "7S0", "6L32"], + bubble: ["7L1", "6L1"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + counter: ["9E", "8E", "7E", "7S0", "6E"], + curse: ["9L41", "8L41", "7E", "6E"], + doubleteam: ["7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonbreath: ["9L10", "8L10", "7L18", "6L18"], + dragonpulse: ["9M", "9L35", "8M", "8L35", "7T", "7L42", "7S0", "6T", "6L42"], + endure: ["9M", "8M", "7E", "6E"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L20", "8L20", "7L28", "6L28"], + frustration: ["7M", "6M"], + hiddenpower: ["7M", "6M"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "7E", "6T", "6E"], + lifedew: ["9E", "8E"], + muddywater: ["9L50", "8M", "8L50", "7L38", "6L38"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "6T"], + poisontail: ["7E", "6E"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "7L9", "6M", "6L9"], + raindance: ["9M", "9L30", "8M", "8L30", "7M", "7L25", "6M", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + watergun: ["9L5", "8L5"], + waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, isHidden: true, moves: ["bodyslam", "dragonpulse", "counter"], pokeball: "cherishball"}, + ], + }, + sliggoo: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L5"], + acidarmor: ["9L1"], + acidspray: ["9M", "9L0", "8L0"], + attract: ["8M", "7M", "6M"], + bide: ["7L13", "6L13"], + blizzard: ["9M", "8M", "7M", "6M"], + bodyslam: ["9M", "9L49", "8M", "8L49", "7L32", "6L32"], + bubble: ["7L1", "6L1"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["9L43", "8L43"], + doubleteam: ["7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonbreath: ["9L1", "8L1", "7L18", "6L18"], + dragonpulse: ["9M", "9L35", "8M", "8L35", "7T", "7L47", "6T", "6L47"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flail: ["9L20", "8L20", "7L28", "6L28"], + frustration: ["7M", "6M"], + hiddenpower: ["7M", "6M"], + icebeam: ["9M", "8M", "7M", "6M"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + muddywater: ["9L56", "8M", "8L56", "7L38", "6L38"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "6T"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "7L9", "6M", "6L9"], + raindance: ["9M", "9L30", "8M", "8L30", "7M", "7L25", "6M", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + toxic: ["7M", "6M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], + }, + encounters: [ + {generation: 6, level: 30}, + ], + }, + sliggoohisui: { + learnset: { + absorb: ["9L1"], + acidarmor: ["9L1"], + acidspray: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + curse: ["9L43"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonpulse: ["9M", "9L35"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L20"], + flashcannon: ["9M"], + heavyslam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M", "9L49"], + muddywater: ["9L56"], + mudshot: ["9M"], + outrage: ["9M"], + protect: ["9M", "9L15"], + raindance: ["9M", "9L30"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + shelter: ["9L0"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + steelbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L25"], + }, + }, + goodra: { + learnset: { + absorb: ["9L1", "8L1", "7L1", "6L5"], + acidspray: ["9M", "9L1", "8L1"], + aquatail: ["9L0", "8L0", "7T", "7L1", "6T", "6L50"], + assurance: ["8M"], + attract: ["8M", "7M", "6M"], + bide: ["7L13", "6L13"], + blizzard: ["9M", "8M", "7M", "6M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L49", "8M", "8L49", "7L32", "6L32"], + breakingswipe: ["8M"], + brutalswing: ["8M", "7M"], + bubble: ["7L1", "6L1"], + bulldoze: ["9M", "8M", "7M", "6M"], + charm: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + curse: ["9L43", "8L43"], + doubleteam: ["7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonbreath: ["9L1", "8L1", "7L18", "6L18"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "8M", "8L35", "7T", "7L47", "6T", "6L47"], + dragontail: ["9M", "7M", "6M"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + feint: ["9L1", "8L1", "7L1", "6L1"], + fireblast: ["9M", "8M", "7M", "6M"], + firepunch: ["9M", "8M", "7T", "6T"], + flail: ["9L20", "8L20", "7L28", "6L28"], + flamethrower: ["9M", "8M", "7M", "6M"], + focusblast: ["9M", "8M", "7M", "6M"], + focuspunch: ["7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + icebeam: ["9M", "8M", "7M", "6M"], + incinerate: ["6M"], + infestation: ["7M", "6M"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["7T"], + megakick: ["8M"], + megapunch: ["8M"], + muddywater: ["9L58", "8M", "8L58", "7L38", "6L38"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M", "7T", "7L1", "6T", "6L1"], + poisontail: ["9M", "9L1", "8L1"], + powerwhip: ["9L67", "8M", "8L67", "7L50", "6L55"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "7L1", "6M", "6L9"], + raindance: ["9M", "9L30", "8M", "8L30", "7M", "7L25", "6M", "6L25"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + stompingtantrum: ["9M", "8M", "7T"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["9M", "8M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + thunder: ["9M", "8M", "7M", "6M"], + thunderbolt: ["9M", "8M", "7M", "6M"], + thunderpunch: ["9M", "8M", "7T", "6T"], + toxic: ["7M", "6M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L25", "8L25", "7T", "6T"], + weatherball: ["8M"], + }, + }, + goodrahisui: { + learnset: { + absorb: ["9L1"], + acidspray: ["9M", "9L1"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L49"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + curse: ["9L43"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "9L35"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + feint: ["9L1"], + fireblast: ["9M"], + firepunch: ["9M"], + flail: ["9L20"], + flamethrower: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M", "9L67"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M", "9L49"], + irontail: ["9L0"], + muddywater: ["9L58"], + mudshot: ["9M"], + outrage: ["9M"], + protect: ["9M", "9L15"], + raindance: ["9M", "9L30"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + shelter: ["9L1"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + surf: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + tearfullook: ["9L1"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L25"], + }, + }, + klefki: { + learnset: { + astonish: ["9L1", "8L1", "7L8", "6L8"], + attract: ["8M", "7M", "6M"], + calmmind: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + craftyshield: ["8L16", "7L23", "6L23"], + cut: ["6M"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "9L24", "8M", "8L24", "7L18", "6L18"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + fairylock: ["9L16", "8L1", "7L1", "6L1"], + fairywind: ["9L8", "8L8", "7L5", "6L5"], + flashcannon: ["9M", "9L36", "8M", "8L36", "7M", "6M"], + foulplay: ["9M", "9L48", "8M", "8L48", "7T", "7L27", "6T", "6L27"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + healblock: ["7L50", "6L50"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + imprison: ["9M", "9L32", "8M", "8L32", "7L36", "6L36"], + irondefense: ["9M", "8M", "7T", "7E", "6T", "6E"], + lastresort: ["9L52", "8L52", "7T", "6T"], + lightscreen: ["9M", "8M", "7M", "6M"], + lockon: ["7E", "6E"], + magiccoat: ["7T", "6T"], + magicroom: ["9L44", "8M", "8L44", "7T", "7L44", "6T", "6L44"], + magnetrise: ["9E", "8E", "7T", "6T"], + metalsound: ["9L20", "8L20", "7L12", "6L12"], + mirrorshot: ["7L34", "6L34"], + mistyterrain: ["9M", "8M"], + playrough: ["9M", "9L40", "8M", "8L40", "7L43", "6L43"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + recycle: ["9L28", "8L28", "7T", "7L40", "6T", "6L40"], + reflect: ["9M", "8M", "7M", "6M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + sandstorm: ["9M"], + secretpower: ["6M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + spikes: ["9M", "8M", "7L15", "6L15"], + steelbeam: ["9M", "8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + switcheroo: ["9E", "8E", "7E", "6E"], + tackle: ["9L4", "8L4", "7L1", "6L1"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "7E", "6M", "6E"], + thunderwave: ["9M", "8M", "7M", "6M"], + torment: ["9L12", "8L12", "7M", "7L32", "6M", "6L32"], + toxic: ["7M", "6M"], + trickroom: ["9M"], + }, + }, + phantump: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L5", "6L5"], + attract: ["8M", "7M", "6M"], + bestow: ["7E", "6E"], + branchpoke: ["8L4"], + bulldoze: ["8M", "7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["8L12", "7L1", "6L1"], + curse: ["8L32", "7L28", "6L28"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + destinybond: ["8L48", "7L39", "6L39"], + dig: ["8M", "6M"], + disable: ["8E"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + facade: ["8M", "7M", "6M"], + feintattack: ["7L19", "6L19"], + forestscurse: ["8L52", "7L35", "6L35"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["8M", "7T", "6T"], + grassknot: ["8M", "7M", "6M"], + grassyglide: ["8T"], + growth: ["8L24", "7L8", "6L8"], + grudge: ["8E", "7E", "6E"], + hex: ["8M", "8L20"], + hiddenpower: ["7M", "6M"], + hornleech: ["8L28", "7L54", "6L54"], + imprison: ["8M", "7E", "6E"], + ingrain: ["8L40", "7L13", "6L13"], + leechseed: ["8L8", "7L23", "6L23"], + magicalleaf: ["8M"], + magiccoat: ["7T", "6T"], + naturepower: ["7M", "6M"], + painsplit: ["7T", "6T"], + phantomforce: ["8M", "8L36", "7L45", "6L45"], + poisonjab: ["8M", "7M", "6M"], + poltergeist: ["8T"], + poweruppunch: ["7E"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T"], + shadowball: ["8M", "7M", "6M"], + shadowclaw: ["8M", "7M", "6M"], + skillswap: ["8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["8M", "7M", "6M"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + suckerpunch: ["8E"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T", "6T"], + trickroom: ["8M", "7M", "6M"], + venomdrench: ["8M", "7E", "6E"], + willowisp: ["8M", "8L16", "7M", "7L31", "6M", "6L31"], + woodhammer: ["8L44", "7L49", "6L49"], + worryseed: ["7T", "6T"], + }, + }, + trevenant: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L5"], + attract: ["8M", "7M", "6M"], + block: ["7T", "6T"], + branchpoke: ["8L1"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M", "6M"], + calmmind: ["8M", "7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["8L12", "7L1", "6L1"], + curse: ["8L32", "7L28", "6L28"], + cut: ["6M"], + darkpulse: ["8M", "7M", "6M"], + destinybond: ["8L48", "7L39", "6L39"], + dig: ["8M", "6M"], + doubleteam: ["7M", "6M"], + drainpunch: ["8M", "7T", "6T"], + dreameater: ["7M", "6M"], + earthquake: ["8M", "7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + facade: ["8M", "7M", "6M"], + feintattack: ["7L19", "6L19"], + focusblast: ["8M", "7M", "6M"], + forestscurse: ["8L52", "7L35", "6L35"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["8M", "7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + grassyglide: ["8T"], + growth: ["8L24", "7L1", "6L8"], + hex: ["8M", "8L20"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hornleech: ["8L28", "7L1", "6L1"], + hyperbeam: ["8M", "7M", "6M"], + imprison: ["8M"], + ingrain: ["8L40", "7L13", "6L13"], + leafstorm: ["8M"], + leechseed: ["8L1", "7L23", "6L23"], + magicalleaf: ["8M"], + magiccoat: ["7T", "6T"], + naturepower: ["7M", "6M"], + painsplit: ["7T", "6T"], + phantomforce: ["8M", "8L36", "7L45", "6L45"], + poisonjab: ["8M", "7M", "6M"], + poltergeist: ["8T"], + poweruppunch: ["6M"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + secretpower: ["6M"], + seedbomb: ["8M", "7T", "6T"], + shadowball: ["8M", "7M", "6M"], + shadowclaw: ["8M", "8L0", "7M", "7L1", "6M", "6L55"], + skillswap: ["8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["8M", "7M", "6M"], + spite: ["7T", "6T"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["8L1", "7L1", "6L1"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "7T", "6T"], + trickroom: ["8M", "7M", "6M"], + venomdrench: ["8M"], + willowisp: ["8M", "8L16", "7M", "7L31", "6M", "6L31"], + woodhammer: ["8L44", "7L49", "6L49"], + worryseed: ["7T", "6T"], + xscissor: ["8M", "7M", "6M"], + }, + }, + pumpkaboo: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + bestow: ["7E", "6E"], + bulletseed: ["8M", "8L20", "7L26", "6L26"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["8L8", "7L1", "6L1"], + curse: ["8E", "7E"], + darkpulse: ["8M", "7M", "6M"], + destinybond: ["8E", "7E", "6E"], + disable: ["8E", "7E", "6E"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + explosion: ["7M", "6M"], + facade: ["8M", "7M", "6M"], + fireblast: ["8M", "7M", "6M"], + flamecharge: ["7M", "6M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["8M", "7T", "6T"], + grassknot: ["8M", "7M", "6M"], + grassyglide: ["8T"], + gyroball: ["8M", "7M", "6M"], + hex: ["8M"], + hiddenpower: ["7M", "6M"], + imprison: ["8M"], + incinerate: ["6M"], + leechseed: ["8L16", "7L20", "6L20"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + mysticalfire: ["8M"], + naturepower: ["7M", "6M"], + painsplit: ["8L44", "7T", "7L42", "6T", "6L42"], + poltergeist: ["8T"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + razorleaf: ["8L12", "7L16", "6L16"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["8M", "8L24", "7L4", "6L4"], + secretpower: ["6M"], + seedbomb: ["8M", "8L32", "7T", "7L48", "6T", "6L48"], + shadowball: ["8M", "8L36", "7M", "7L36", "6M", "6L36"], + shadowsneak: ["8L4", "7L30", "6L30"], + skillswap: ["8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snore: ["8M"], + solarbeam: ["8M", "7M", "6M"], + spite: ["7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["7T", "6T"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "8L40", "7T", "7L1", "6T", "6L1"], + trickortreat: ["8L1", "7L23", "6L6"], + trickroom: ["8M", "7M", "6M"], + willowisp: ["8M", "7M", "6M"], + worryseed: ["8L28", "7T", "7L11", "6T", "6L11"], + }, + }, + pumpkaboosuper: { + learnset: { + astonish: ["6S0"], + scaryface: ["6S0"], + shadowsneak: ["6S0"], + trickortreat: ["6S0"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["trickortreat", "astonish", "scaryface", "shadowsneak"], pokeball: "cherishball"}, + ], + }, + gourgeist: { + learnset: { + allyswitch: ["8M", "7T"], + astonish: ["8L1", "7L1", "6L1"], + attract: ["8M", "7M", "6M"], + brutalswing: ["8M"], + bulletseed: ["8M", "8L20", "7L26", "6L26"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confuseray: ["8L1", "7L1", "6L1"], + darkpulse: ["8M", "7M", "6M"], + doubleteam: ["7M", "6M"], + dreameater: ["7M", "6M"], + endure: ["8M"], + energyball: ["8M", "7M", "6M"], + explosion: ["8L1", "7M", "7L1", "6M", "6L1"], + facade: ["8M", "7M", "6M"], + fireblast: ["8M", "7M", "6M"], + flamecharge: ["7M", "6M"], + flamethrower: ["8M", "7M", "6M"], + flash: ["6M"], + focusblast: ["8M", "7M", "6M"], + foulplay: ["8M", "7T", "6T"], + frustration: ["7M", "6M"], + gigadrain: ["8M", "7T", "6T"], + gigaimpact: ["8M", "7M", "6M"], + grassknot: ["8M", "7M", "6M"], + grassyglide: ["8T"], + gyroball: ["8M", "7M", "6M"], + hex: ["8M"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["8M", "7M", "6M"], + imprison: ["8M"], + incinerate: ["6M"], + leechseed: ["8L16", "7L20", "6L20"], + lightscreen: ["8M", "7M", "6M"], + magiccoat: ["7T", "6T"], + moonblast: ["8L1"], + mysticalfire: ["8M"], + nastyplot: ["8M"], + naturepower: ["7M", "6M"], + painsplit: ["8L44", "7T", "7L42", "6T", "6L42"], + phantomforce: ["8M", "8L48", "7L1", "6L1"], + poltergeist: ["8T"], + powerwhip: ["8M"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + razorleaf: ["8L12", "7L16", "6L16"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + roleplay: ["7T", "6T"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["8M", "8L24", "7L1", "6L4"], + secretpower: ["6M"], + seedbomb: ["8M", "8L32", "7T", "7L48", "6T", "6L48"], + shadowball: ["8M", "8L36", "7M", "7L36", "6M", "6L36"], + shadowsneak: ["8L1", "7L30", "6L30"], + skillswap: ["8M", "7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + sludgebomb: ["8M", "7M", "6M"], + snore: ["8M"], + solarbeam: ["8M", "7M", "6M"], + spite: ["7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + synthesis: ["7T", "6T"], + telekinesis: ["7T"], + thief: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + trick: ["8M", "8L40", "7T", "7L1", "6T", "6L1"], + trickortreat: ["8L1", "7L23", "6L6"], + trickroom: ["8M", "7M", "6M"], + willowisp: ["8M", "7M", "6M"], + worryseed: ["8L28", "7T", "7L11", "6T", "6L11"], + }, + }, + bergmite: { + learnset: { + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + auroraveil: ["9E", "8E"], + avalanche: ["9M", "9L18", "8M", "8L18", "7L39", "6L39"], + barrier: ["7E", "6E"], + bite: ["9L21", "8L21", "7L1", "6L1"], + blizzard: ["9M", "9L39", "8M", "8L39", "7M", "7L43", "6M", "6L43"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L33", "8M", "8L33"], + curse: ["9L9", "8L9", "7L22", "6L22"], + doubleedge: ["9L42", "8L42", "7L49", "6L49"], + doubleteam: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + gyroball: ["8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + iceball: ["7L30", "6L30"], + icebeam: ["9M", "8M", "7M", "6M"], + icefang: ["9M", "9L24", "8M", "8L24", "7L26", "6L26"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "9L12", "8M", "8L12", "7T", "7L10", "6T", "6L10"], + irondefense: ["9M", "9L27", "8M", "8L27", "7T", "6T"], + mirrorcoat: ["9E", "8E", "7E", "6E"], + mist: ["9E", "8E", "7E", "6E"], + powdersnow: ["9L6", "8L6", "7L5", "6L5"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rapidspin: ["9L1", "8L1", "7L35", "6L35"], + recover: ["9L30", "8L30", "7L47", "7E", "6L47", "6E"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + rockpolish: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + secretpower: ["6M"], + sharpen: ["7L20", "6L20"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + surf: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L3", "8L3", "7L1", "6L1"], + takedown: ["9M", "9L36", "8L36", "7L15", "6L15"], + terablast: ["9M"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + }, + }, + avalugg: { + learnset: { + afteryou: ["7T", "6T"], + attract: ["8M", "7M", "6M"], + avalanche: ["9M", "9L18", "8M", "8L18", "7L42", "6L42"], + bite: ["9L21", "8L21", "7L1", "6L1"], + blizzard: ["9M", "9L41", "8M", "8L41", "7M", "7L46", "6M", "6L46"], + block: ["7T", "6T"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L0", "8M", "8L0", "7L1"], + bulldoze: ["9M", "8M", "7M", "6M"], + chillingwater: ["9M"], + confide: ["7M", "6M"], + crunch: ["9M", "9L33", "8M", "8L33", "7L1", "6L1"], + curse: ["9L9", "8L9", "7L22", "6L22"], + doubleedge: ["9L46", "8L46", "7L56", "6L56"], + doubleteam: ["7M", "6M"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["9M", "8M", "7M", "6M"], + frostbreath: ["7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gyroball: ["8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + iceball: ["7L30", "6L30"], + icebeam: ["9M", "8M", "7M", "6M"], + icefang: ["9M", "9L24", "8M", "8L24", "7L26", "6L26"], + icespinner: ["9M"], + iciclecrash: ["9L51"], + iciclespear: ["8M"], + icywind: ["9M", "9L12", "8M", "8L12", "7T", "7L10", "6T", "6L10"], + irondefense: ["9M", "9L27", "8M", "8L27", "7T", "7L1", "6T", "6L1"], + ironhead: ["9M", "8M", "7T", "6T"], + powdersnow: ["9L1", "8L1", "7L1", "6L5"], + protect: ["9M", "9L15", "8M", "8L15", "7M", "6M"], + raindance: ["9M", "8M", "7M", "6M"], + rapidspin: ["9L1", "8L1", "7L35", "6L35"], + recover: ["9L30", "8L30", "7L51", "6L51"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockpolish: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "6M"], + scaryface: ["9M"], + secretpower: ["6M"], + sharpen: ["7L20", "6L20"], + skullbash: ["8L51", "7L1", "6L1"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + surf: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M", "9L36", "8L36", "7L15", "6L15"], + terablast: ["9M"], + toxic: ["7M", "6M"], + waterpulse: ["7T", "6T"], + wideguard: ["9L1", "8L1", "7L1"], + }, + }, + avalugghisui: { + learnset: { + avalanche: ["9M", "9L18"], + bite: ["9L21"], + blizzard: ["9M", "9L41"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M", "9L33"], + curse: ["9L9"], + dig: ["9M"], + doubleedge: ["9L46"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + harden: ["9L1"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M", "9L24"], + icespinner: ["9M"], + icywind: ["9M", "9L12"], + irondefense: ["9M", "9L27"], + ironhead: ["9M"], + mountaingale: ["9L61"], + powdersnow: ["9L1"], + protect: ["9M", "9L15"], + raindance: ["9M"], + rapidspin: ["9L1"], + recover: ["9L30"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L0"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L51"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + wideguard: ["9L1"], + }, + }, + noibat: { + learnset: { + absorb: ["9L1", "8L1", "7L5"], + acrobatics: ["9M", "8M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + agility: ["9M", "8M", "7L18", "6L18"], + aircutter: ["9M", "9L24", "8L24", "7L23", "6L23"], + airslash: ["9M", "9L36", "8M", "8L36", "7L48", "6L48"], + attract: ["8M", "7M", "6M"], + bite: ["9L20", "8L20", "7L13", "6L13"], + brickbreak: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["9M", "8M", "7M", "6M"], + defog: ["9E", "8E", "7T"], + doubleteam: ["9L12", "8L12", "7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "8M", "7T", "6T"], + dragonrush: ["9E", "8E"], + dreameater: ["7M", "6M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + fly: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gust: ["9L4", "8L4", "7L11", "6L11"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hurricane: ["9M", "9L52", "8M", "8L52", "7L58", "6L58"], + hypervoice: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + leechlife: ["9M", "8M", "7M", "6L5"], + outrage: ["9M", "8M", "7T", "7E", "6T", "6E"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + razorwind: ["7L31", "6L31"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L44", "8L44", "7M", "7L27", "6M", "6L27"], + round: ["8M", "7M", "6M"], + screech: ["9L40", "8M", "8L40", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "8M", "7M", "6M"], + skyattack: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "7E", "6T", "6E"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steelwing: ["8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superfang: ["9L32", "8L32", "7T", "7L43", "6T", "6L43"], + supersonic: ["9L8", "8L8", "7L1", "6L1"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + switcheroo: ["7E", "6E"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwind: ["9M", "9L49", "8L49", "7T", "7L35", "7E", "6T", "6L35", "6E"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + uturn: ["9M", "8M", "7M", "6M"], + waterpulse: ["7T", "6T"], + whirlwind: ["9L28", "8L28", "7L40", "6L40"], + wildcharge: ["9M", "8M", "7M", "6M"], + wingattack: ["9L16", "8L16", "7L16", "6L16"], + xscissor: ["9M", "8M", "7M", "6M"], + }, + }, + noivern: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + acrobatics: ["9M", "8M", "7M", "6M"], + aerialace: ["9M", "7M", "6M"], + agility: ["9M", "8M", "7L18", "6L18"], + aircutter: ["9M", "9L24", "8L24", "7L23", "6L23"], + airslash: ["9M", "9L36", "8M", "8L36", "7L53", "6L53"], + attract: ["8M", "7M", "6M"], + bite: ["9L20", "8L20", "7L13", "6L13"], + bodyslam: ["9M"], + boomburst: ["9L62", "8L62", "7L1", "6L1"], + brickbreak: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["9M", "8M", "7M", "6M"], + defog: ["7T"], + doubleteam: ["9L12", "8L12", "7M", "6M"], + dracometeor: ["9M", "8T", "7T", "6T"], + dragonclaw: ["9M", "8M", "7M", "6M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L0", "8M", "8L0", "7T", "7L1", "6T", "6L1"], + dragontail: ["9M"], + dreameater: ["7M", "6M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M", "6M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M", "6M"], + flamethrower: ["9M", "8M", "7M", "6M"], + fly: ["9M", "8M", "7M", "6M"], + focusblast: ["9M", "8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gust: ["9L1", "8L1", "7L11", "6L11"], + heatwave: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hurricane: ["9M", "9L56", "8M", "8L56", "7L1", "6L1"], + hyperbeam: ["9M", "8M", "7M", "6M"], + hypervoice: ["9M", "8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + laserfocus: ["7T"], + leechlife: ["9M", "8M", "7M", "6L5"], + moonlight: ["9L1", "8L1", "7L1", "6L1"], + outrage: ["9M", "8M", "7T", "6T"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + razorwind: ["7L31", "6L31"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roost: ["9L44", "8L44", "7M", "7L27", "6M", "6L27"], + round: ["8M", "7M", "6M"], + scaryface: ["9M"], + screech: ["9L40", "8M", "8L40", "7L1", "6L1"], + secretpower: ["6M"], + shadowball: ["9M", "8M", "7M", "6M"], + shadowclaw: ["9M", "8M", "7M", "6M"], + skyattack: ["7T", "6T"], + sleeptalk: ["9M", "8M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steelwing: ["8M", "7M", "6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superfang: ["9L32", "8L32", "7T", "7L43", "6T", "6L43"], + supersonic: ["9L1", "8L1", "7L1", "6L1"], + swagger: ["7M", "6M"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + tailwind: ["9M", "9L51", "8L51", "7T", "7L35", "6T", "6L35"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M", "6M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uproar: ["8M", "7T", "6T"], + uturn: ["9M", "8M", "7M", "6M"], + waterpulse: ["9M", "7T", "6T"], + whirlwind: ["9L28", "8L28", "7L40", "6L40"], + wildcharge: ["9M", "8M", "7M", "6M"], + wingattack: ["9L16", "8L16", "7L16", "6L16"], + xscissor: ["9M", "8M", "7M", "6M"], + }, + }, + xerneas: { + learnset: { + aromatherapy: ["8L25", "7L1", "6L1", "6S1"], + aurorabeam: ["8L10", "7L10", "6L10"], + block: ["7T", "6T"], + bodyslam: ["8M"], + calmmind: ["8M", "7M", "6M"], + closecombat: ["8M", "8L75", "7L80", "6L80"], + confide: ["7M", "6M"], + cut: ["6M"], + dazzlinggleam: ["8M", "8S5", "7M", "6M"], + defog: ["7T"], + doubleteam: ["7M", "6M"], + drainingkiss: ["8M"], + echoedvoice: ["7M", "6M"], + endeavor: ["7T", "6T"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + flash: ["6M"], + flashcannon: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "7S4", "6M", "6S1"], + frustration: ["7M", "6M"], + geomancy: ["8L55", "7L26", "7S2", "7S3", "7S4", "6L26", "6S0", "6S1"], + gigaimpact: ["8M", "8L85", "7M", "7L88", "6M", "6L88"], + grassknot: ["8M", "7M", "7S4", "6M"], + gravity: ["8L1", "7T", "7L18", "6T", "6L18", "6S0"], + hail: ["8M", "7M", "6M"], + healpulse: ["8L65", "7L1", "6L1"], + hiddenpower: ["7M", "6M"], + hornleech: ["8L35", "8S5", "7L55", "7S2", "7S3", "6L55"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + ingrain: ["8L45", "8S5", "7L1", "6L1"], + laserfocus: ["7T"], + lightscreen: ["8M", "8L5", "7M", "7L5", "6M", "6L5"], + megahorn: ["8M", "8L70", "7L44", "6L44", "6S0"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L40", "7L63", "6L63"], + moonblast: ["8L60", "8S5", "7L35", "7S2", "7S3", "7S4", "6L35", "6S0", "6S1"], + naturepower: ["8L15", "7M", "7L72", "6M", "6L72"], + nightslash: ["8L20", "7L51", "7S2", "7S3", "6L51"], + outrage: ["8M", "8L80", "7T", "7L93", "6T", "6L93"], + playrough: ["8M"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "7M", "6M"], + psychup: ["8L30", "7M", "7L59", "6M", "6L59"], + psyshock: ["8M", "7M", "6M"], + raindance: ["8M", "7M", "6M"], + reflect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + sleeptalk: ["8M", "7M", "6M"], + smartstrike: ["8M"], + snore: ["8M", "7T", "6T"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tackle: ["8L1"], + takedown: ["8L50", "7L1", "6L1"], + terrainpulse: ["8T"], + thunder: ["8M", "7M", "6M"], + thunderbolt: ["8M", "7M", "6M"], + thunderwave: ["8M", "7M", "6M"], + toxic: ["7M", "6M"], + wonderroom: ["8M", "7T", "6T"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["gravity", "geomancy", "moonblast", "megahorn"]}, + {generation: 6, level: 100, shiny: true, moves: ["geomancy", "moonblast", "aromatherapy", "focusblast"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["geomancy", "hornleech", "nightslash", "moonblast"]}, + {generation: 7, level: 60, moves: ["geomancy", "hornleech", "nightslash", "moonblast"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["geomancy", "focusblast", "grassknot", "moonblast"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["ingrain", "dazzlinggleam", "moonblast", "hornleech"]}, + ], + eventOnly: true, + }, + yveltal: { + learnset: { + acrobatics: ["8M", "7M", "6M"], + aerialace: ["7M", "6M"], + airslash: ["8M", "8L35", "7L10", "6L10"], + block: ["7T", "6T"], + bodyslam: ["8M"], + confide: ["7M", "6M"], + cut: ["6M"], + darkpulse: ["8M", "8L40", "7M", "7L44", "7S2", "7S3", "7S4", "6M", "6L44", "6S0", "6S1"], + defog: ["7T"], + disable: ["8L15", "7L35", "6L35", "6S0"], + doubleteam: ["8L1", "7M", "7L5", "6M", "6L5"], + dragonclaw: ["8M", "7M", "6M"], + dragonrush: ["8L65", "8S5", "7L63", "6L63"], + dreameater: ["7M", "6M"], + dualwingbeat: ["8T"], + embargo: ["7M", "6M"], + endure: ["8M"], + facade: ["8M", "7M", "6M"], + fly: ["8M", "7M", "6M"], + focusblast: ["8M", "8L75", "7M", "7L72", "6M", "6L72"], + foulplay: ["8M", "8L60", "7T", "7L51", "6T", "6L51", "6S1"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + gust: ["8L1"], + heatwave: ["8M", "7T", "7S4", "6T"], + hiddenpower: ["7M", "6M"], + honeclaws: ["6M"], + hurricane: ["8M", "8L70", "7L1", "6L1"], + hyperbeam: ["8M", "8L85", "7M", "7L88", "6M", "6L88"], + hypervoice: ["8M", "7T", "6T"], + knockoff: ["7T", "6T"], + laserfocus: ["7T"], + lashout: ["8T"], + oblivionwing: ["8L50", "8S5", "7L26", "7S2", "7S3", "7S4", "6L26", "6S0", "6S1"], + payback: ["8M"], + phantomforce: ["8M", "8L55", "7L55", "7S2", "7S3", "6L55"], + protect: ["8M", "7M", "6M"], + psychic: ["8M", "8L45", "7M", "7L59", "7S2", "7S3", "6M", "6L59"], + raindance: ["8M", "7M", "6M"], + razorwind: ["7L1", "6L1"], + rest: ["8M", "7M", "6M"], + return: ["7M", "6M"], + rockslide: ["8M", "7M", "6M"], + roost: ["8L30", "7M", "7L1", "6M", "6L1"], + round: ["8M", "7M", "6M"], + secretpower: ["6M"], + shadowball: ["8M", "7M", "6M"], + shadowclaw: ["8M", "7M", "6M"], + skyattack: ["8L80", "7T", "7L93", "6T", "6L93"], + skydrop: ["7M", "6M"], + sleeptalk: ["8M", "7M", "6M"], + snarl: ["8M", "8L10", "7M", "7L18", "6M", "6L18", "6S0"], + snore: ["8M", "7T", "6T"], + steelwing: ["8M", "7M", "6M"], + substitute: ["8M", "7M", "6M"], + suckerpunch: ["8L20", "8S5", "7L80", "6L80", "6S1"], + sunnyday: ["8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["8M"], + tailwind: ["8L25", "7T", "7S4", "6T"], + taunt: ["8M", "8L5", "8S5", "7M", "7L1", "6M", "6L1"], + thief: ["8M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + uturn: ["8M", "7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["snarl", "oblivionwing", "disable", "darkpulse"]}, + {generation: 6, level: 100, shiny: true, moves: ["oblivionwing", "suckerpunch", "darkpulse", "foulplay"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: 1, moves: ["oblivionwing", "darkpulse", "phantomforce", "psychic"]}, + {generation: 7, level: 60, moves: ["oblivionwing", "darkpulse", "phantomforce", "psychic"], pokeball: "cherishball"}, + {generation: 7, level: 100, moves: ["oblivionwing", "darkpulse", "heatwave", "tailwind"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["taunt", "oblivionwing", "dragonrush", "suckerpunch"]}, + ], + eventOnly: true, + }, + zygarde: { + learnset: { + bind: ["8L1", "8S9", "7T", "7L18", "7S2", "7S3", "7S4", "6T", "6L18"], + bite: ["8L1", "7L1", "6L1"], + block: ["7T", "6T"], + bodyslam: ["8M"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M", "6M"], + bulldoze: ["8M", "8L1", "7M", "7L1", "6M", "6L1"], + camouflage: ["7L59", "6L59", "6S0"], + coil: ["8L72", "7L72", "6L80"], + confide: ["7M", "6M"], + coreenforcer: ["8L1", "7T"], + crunch: ["8M", "8L32", "7L51", "6L51", "6S0"], + dig: ["8M", "8L16", "7L10", "7S2", "6M", "6L10"], + doubleteam: ["7M", "6M"], + dracometeor: ["8T", "7T", "6T"], + dragonbreath: ["8L1", "7L1", "7S5", "7S6", "6L1"], + dragondance: ["8M", "7T", "7S7", "7S8", "6L72"], + dragonpulse: ["8M", "8L40", "8S9", "7T", "7L63", "6T", "6L63", "6S0"], + dragontail: ["7M", "6M"], + earthpower: ["8M", "7T", "6T"], + earthquake: ["8M", "8L80", "7M", "7L55", "6M", "6L55", "6S0"], + endure: ["8M"], + extremespeed: ["7T", "7S7", "7S8", "6L88", "6S1"], + facade: ["8M", "7M", "6M"], + focusblast: ["8M", "7M", "6M"], + frustration: ["7M", "6M"], + gigaimpact: ["8M", "7M", "6M"], + glare: ["8L56", "7L1", "7S5", "7S6", "6L1", "6S1"], + grassknot: ["8M", "7M", "6M"], + haze: ["8L8", "7L44", "7S3", "7S4", "6L44"], + hiddenpower: ["7M", "6M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M", "6M"], + hypervoice: ["8M", "7T", "6T"], + irontail: ["8M", "7T", "6T"], + landswrath: ["8L48", "8S9", "7L26", "7S2", "7S3", "7S4", "7S5", "7S6", "6L26", "6S1"], + outrage: ["8M", "8L88", "7T", "7L80", "7S7", "7S8", "6T", "6L93", "6S1"], + painsplit: ["7T", "6T"], + payback: ["8M"], + protect: ["8M", "7M", "6M"], + rest: ["8M", "7M", "6M"], + retaliate: ["8M"], + return: ["7M", "6M"], + reversal: ["8M"], + rockslide: ["8M", "7M", "6M"], + rocksmash: ["6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "8L24", "7M", "7L5", "7S2", "7S5", "7S6", "6M", "6L5"], + sandstorm: ["8M", "8L64", "7M", "7L35", "7S3", "7S4", "6M", "6L35"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + secretpower: ["6M"], + shockwave: ["7T", "6T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + snore: ["8M", "7T", "6T"], + spite: ["7T", "6T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M", "6M"], + strength: ["6M"], + substitute: ["8M", "7M", "6M"], + sunnyday: ["8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + swift: ["8M"], + thousandarrows: ["8L1", "8S9", "7T", "7S7", "7S8"], + thousandwaves: ["8L1", "7T"], + toxic: ["7M", "6M"], + zenheadbutt: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 70, moves: ["crunch", "earthquake", "camouflage", "dragonpulse"]}, + {generation: 6, level: 100, moves: ["landswrath", "extremespeed", "glare", "outrage"], pokeball: "cherishball"}, + {generation: 7, level: 30, moves: ["safeguard", "dig", "bind", "landswrath"]}, // 10% + {generation: 7, level: 50, moves: ["bind", "landswrath", "sandstorm", "haze"]}, + {generation: 7, level: 50, isHidden: true, moves: ["bind", "landswrath", "sandstorm", "haze"]}, + {generation: 7, level: 60, shiny: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: true, isHidden: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, // 10% + {generation: 7, level: 100, shiny: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, + {generation: 7, level: 100, shiny: true, isHidden: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, // 10% + {generation: 8, level: 70, shiny: 1, isHidden: true, moves: ["thousandarrows", "landswrath", "dragonpulse", "bind"]}, + ], + eventOnly: true, + }, + zygarde10: { + learnset: { + bind: ["8S5", "7S0", "7S1", "7S2"], + dig: ["7S0", "7S2"], + dragonbreath: ["7S3"], + dragondance: ["7S4"], + dragonpulse: ["8S5"], + extremespeed: ["7S4"], + glare: ["7S3"], + haze: ["7S1"], + landswrath: ["8S5", "7S0", "7S1", "7S2", "7S3"], + outrage: ["7S4"], + safeguard: ["7S0", "7S2", "7S3"], + sandstorm: ["7S1"], + thousandarrows: ["8S5", "7S4"], + }, + eventData: [ + {generation: 7, level: 30, moves: ["safeguard", "dig", "bind", "landswrath"]}, + {generation: 7, level: 50, isHidden: true, moves: ["bind", "landswrath", "sandstorm", "haze"]}, // 50% + {generation: 7, level: 50, isHidden: true, moves: ["safeguard", "dig", "bind", "landswrath"]}, + {generation: 7, level: 60, shiny: true, isHidden: true, moves: ["landswrath", "glare", "safeguard", "dragonbreath"], pokeball: "cherishball"}, + {generation: 7, level: 100, shiny: true, isHidden: true, moves: ["thousandarrows", "outrage", "extremespeed", "dragondance"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, isHidden: true, moves: ["thousandarrows", "landswrath", "dragonpulse", "bind"]}, // 50% + ], + eventOnly: true, + }, + diancie: { + learnset: { + afteryou: ["7T", "6T"], + allyswitch: ["8M"], + amnesia: ["9M", "8M"], + ancientpower: ["9L28", "8L28", "7L27", "6L31"], + batonpass: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M", "8M", "7M", "6M"], + charm: ["9M", "8M"], + confide: ["7M", "6M"], + covet: ["7T", "6T"], + dazzlinggleam: ["9M", "8M", "7M", "6M"], + diamondstorm: ["9L1", "8L91", "7L50", "6L50", "6S0", "6S1"], + doubleteam: ["7M", "6M"], + drainingkiss: ["9M", "8M"], + earthpower: ["9M", "8M", "7T", "6T"], + encore: ["9M", "8M"], + endeavor: ["7T", "6T"], + endure: ["9M", "8M"], + explosion: ["7M", "6M"], + facade: ["9M", "8M", "7M", "6M"], + faketears: ["9M", "8M"], + flail: ["9L21", "8L21", "7L31", "6L35"], + flash: ["6M"], + flashcannon: ["9M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gravity: ["7T", "6T"], + guardsplit: ["9L7", "8L7", "7L21", "6L27"], + guardswap: ["8M"], + gyroball: ["8M", "7M", "6M"], + hail: ["8M", "7M", "6M"], + harden: ["9L1", "8L1", "7L1", "6L1"], + healbell: ["7T", "6T"], + helpinghand: ["9M", "8M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "8M", "7M", "6M"], + irondefense: ["9M", "8M", "7T", "6T"], + lastresort: ["7T", "6T"], + lightscreen: ["9M", "9L42", "8M", "8L42", "7M", "7L60", "6M", "6L60"], + magnetrise: ["7T", "6T"], + meteorbeam: ["8T"], + metronome: ["9M", "8M"], + mistyexplosion: ["8T"], + moonblast: ["9L77", "8L77", "7L50", "6L50", "6S0", "6S1"], + mysticalfire: ["8M"], + naturepower: ["7M", "6M"], + playrough: ["9M", "8M"], + powergem: ["9M", "9L63", "8M", "8L63", "7L40"], + protect: ["9M", "8M", "7M", "6M"], + psychic: ["9M", "8M", "7M", "6M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "8M", "7M", "6M"], + raindance: ["9M"], + reflect: ["9M", "8M", "7M", "7L12", "6M", "6L18", "6S0", "6S1"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M", "6S0", "6S1"], + rockpolish: ["9L35", "8L35", "7M", "6M"], + rockslide: ["9M", "9L49", "8M", "8L49", "7M", "6M"], + rockthrow: ["7L1", "6L5"], + rocktomb: ["9M", "8M", "7M", "6M"], + round: ["8M", "7M", "6M"], + safeguard: ["8M", "7M", "7L70", "6M", "6L70"], + sandstorm: ["9M", "8M", "7M", "6M"], + sandtomb: ["8M"], + secretpower: ["6M"], + sharpen: ["7L5", "6L8"], + skillswap: ["9M", "9L56", "8M", "8L56", "7T", "7L35", "6T", "6L40"], + sleeptalk: ["9M", "8M", "7M", "6M"], + smackdown: ["9L14", "8L14", "7M", "7L8", "6M", "6L12"], + snore: ["8M", "7T", "6T"], + snowscape: ["9M"], + spikes: ["9M"], + stealthrock: ["9M", "9L70", "8M", "8L70", "7T", "7L18", "6T", "6L21"], + stoneedge: ["9M", "9L84", "8M", "8L84", "7M", "7L49", "6M", "6L49"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + tackle: ["9L1", "8L1", "7L1", "6L1"], + takedown: ["9M"], + telekinesis: ["7T"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M", "6M"], + trickroom: ["9M", "8M", "7M", "7L46", "6M", "6L46"], + wonderroom: ["8M", "7T", "6T"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["diamondstorm", "reflect", "return", "moonblast"], pokeball: "cherishball"}, + {generation: 6, level: 50, shiny: true, moves: ["diamondstorm", "moonblast", "reflect", "return"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + hoopa: { + learnset: { + allyswitch: ["9L1", "7T", "7L1", "6L1"], + astonish: ["9L6", "7L6", "6L6", "6S0"], + block: ["7T", "6T"], + brickbreak: ["9M", "7M", "6M"], + calmmind: ["9M", "7M", "6M"], + chargebeam: ["7M", "6M"], + confide: ["7M", "6M"], + confusion: ["9L1", "7L1", "6L1"], + covet: ["7T", "6T"], + darkpulse: ["9M", "7M", "7L55", "6L55"], + destinybond: ["9L1", "7L1", "6L1"], + doubleteam: ["7M", "6M"], + drainpunch: ["9M", "7T", "6T"], + dreameater: ["7M", "6M"], + dualchop: ["7T", "6T"], + embargo: ["7M", "6M"], + endure: ["9M"], + energyball: ["9M", "7M", "6M"], + facade: ["9M", "7M", "6M"], + firepunch: ["9M", "7T", "6T"], + flash: ["6M"], + fling: ["9M", "7M", "6M"], + focusblast: ["9M", "7M", "6M"], + focuspunch: ["7T", "6T"], + foulplay: ["9M", "7T", "6T"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "7M", "6M"], + grassknot: ["9M", "7M", "6M"], + gravity: ["7T", "6T"], + guardsplit: ["9L29", "7L29", "6L29"], + gunkshot: ["9M", "7T", "6T"], + hiddenpower: ["7M", "6M"], + hyperbeam: ["9M", "7M", "6M"], + hyperspacefury: ["9L85", "7L1", "6L1"], + hyperspacehole: ["9L85", "7L1", "7S1", "6L1", "6S0"], + icepunch: ["9M", "7T", "6T"], + knockoff: ["9L46", "7T", "7L46", "6T", "6L46"], + laserfocus: ["7T"], + lastresort: ["7T", "6T"], + lightscreen: ["9M", "9L15", "7M", "7L15", "6M", "6L15"], + magiccoat: ["7T", "7L10", "6T", "6L10"], + magicroom: ["7T", "6T"], + nastyplot: ["9M", "9L68", "7L68", "7S1", "6L68", "6S0"], + phantomforce: ["9M", "9L35", "7L35", "6L35"], + powersplit: ["9L29", "7L29", "6L29"], + poweruppunch: ["6M"], + protect: ["9M", "7M", "6M"], + psybeam: ["9M", "9L19", "7L19", "6L15"], + psychic: ["9M", "9L75", "7M", "7L75", "7S1", "6M", "6L75", "6S0"], + psychicterrain: ["9M"], + psychup: ["7M", "6M"], + psyshock: ["9M", "7M", "6M"], + quash: ["7M", "6M"], + raindance: ["9M", "7M", "6M"], + recycle: ["7T", "6T"], + reflect: ["9M", "7M", "6M"], + rest: ["9M", "7M", "6M"], + return: ["7M", "6M"], + rocktomb: ["9M"], + roleplay: ["7T", "6T"], + round: ["7M", "6M"], + safeguard: ["7M", "6M"], + sandstorm: ["9M"], + scaryface: ["9M"], + secretpower: ["6M"], + shadowball: ["9M", "9L55", "7M", "7L55", "7S1", "6M", "6L55"], + shockwave: ["7T", "6T"], + signalbeam: ["7T", "6T"], + skillswap: ["9M", "9L25", "7T", "7L25", "6T", "6L25"], + sleeptalk: ["9M", "7M", "6M"], + snatch: ["7T", "6T"], + snore: ["7T", "6T"], + substitute: ["9M", "7M", "6M"], + sunnyday: ["9M", "7M", "6M"], + swagger: ["7M", "6M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "7M", "6M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "7M", "6M"], + throatchop: ["7T"], + thunderbolt: ["9M", "7M", "6M"], + thunderpunch: ["9M", "7T", "6T"], + thunderwave: ["9M", "7M", "6M"], + torment: ["7M", "6M"], + toxic: ["7M", "6M"], + trick: ["9M", "9L10", "7T", "7L1", "6T", "6L1"], + trickroom: ["9M", "9L50", "7M", "7L50", "6M", "6L50"], + uproar: ["7T", "6T"], + wonderroom: ["9L50", "7T", "7L50", "6T", "6L50"], + zenheadbutt: ["9M", "9L46", "7T", "7L46", "6T", "6L46"], + }, + eventData: [ + {generation: 6, level: 50, moves: ["hyperspacehole", "nastyplot", "psychic", "astonish"], pokeball: "cherishball"}, + {generation: 7, level: 15, moves: ["shadowball", "nastyplot", "psychic", "hyperspacehole"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + hoopaunbound: { + eventOnly: true, + }, + volcanion: { + learnset: { + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M", "7L46", "6L46"], + brickbreak: ["9M", "8M", "7M", "6M"], + bulldoze: ["9M", "8M", "7M", "6M"], + confide: ["7M", "6M"], + cut: ["6M"], + defog: ["7T"], + dig: ["9M"], + doubleteam: ["7M", "6M"], + earthpower: ["9M", "8M", "7T", "6T"], + earthquake: ["9M", "8M", "7M", "6M"], + endure: ["9M", "8M"], + explosion: ["9L90", "8L90", "7M", "7L76", "6M", "6L76", "6S1"], + facade: ["9M", "8M", "7M", "6M"], + fireblast: ["9M", "8M", "7M", "6M"], + firefang: ["9M"], + firespin: ["9M", "9L1", "8M", "8L1"], + flamecharge: ["9M", "9L18", "8L18", "7M", "7L15", "6M", "6L15"], + flamethrower: ["9M", "8M", "7M", "6M", "6S1"], + flareblitz: ["9M", "9L78", "8M", "8L78", "8S2", "7L1", "6L1"], + flashcannon: ["9M", "8M", "7M", "6M"], + fling: ["9M", "8M", "7M", "6M"], + focusblast: ["9M", "8M", "7M", "6M"], + focusenergy: ["8M"], + frustration: ["7M", "6M"], + gigaimpact: ["9M", "8M", "7M", "6M"], + gyroball: ["8M", "7M", "6M"], + haze: ["9L60", "8L60", "8S2", "7L11", "6L11"], + heatcrash: ["8M"], + heatwave: ["9M", "8M", "7T", "6T"], + heavyslam: ["9M", "8M"], + hiddenpower: ["7M", "6M"], + hydropump: ["9M", "9L66", "8M", "8L66", "7L50", "6L50", "6S0", "6S1"], + hyperbeam: ["9M", "8M", "7M", "6M"], + incinerate: ["9L36", "8L36", "8S2", "6M"], + leer: ["9L6", "8L6"], + liquidation: ["9M", "8M", "7T"], + mist: ["9L60", "8L60", "7L8", "6L8", "6S0"], + mistyterrain: ["9M", "8M"], + mudshot: ["9M", "8M"], + overheat: ["9M", "9L84", "8M", "8L84", "7M", "7L65", "6M", "6L65", "6S0"], + protect: ["9M", "8M", "7M", "6M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M", "7M", "6M"], + return: ["7M", "6M"], + roar: ["7M", "6M"], + rockslide: ["9M", "8M", "7M", "6M"], + rocksmash: ["6M"], + rocktomb: ["9M"], + round: ["8M", "7M", "6M"], + sandstorm: ["9M", "8M", "7M", "6M"], + scald: ["9L48", "8M", "8L48", "7M", "7L32", "6M", "6L32"], + scaryface: ["9M", "9L30", "8M", "8L30"], + scorchingsands: ["8T"], + secretpower: ["6M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M", "7M", "6M"], + sludgebomb: ["9M", "8M", "7M", "6M"], + sludgewave: ["8M", "7M", "6M"], + smackdown: ["7M", "6M"], + snore: ["8M", "7T", "6T"], + solarbeam: ["9M", "8M", "7M", "6M"], + steameruption: ["9L1", "8L72", "8S2", "7L1", "6L1", "6S0", "6S1"], + stomp: ["9L42", "8L42", "7L28", "6L28"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M", "6M"], + strength: ["6M"], + substitute: ["9M", "8M", "7M", "6M"], + sunnyday: ["9M", "8M", "7M", "6M"], + superpower: ["8M", "7T", "6T"], + swagger: ["7M", "6M"], + takedown: ["9M", "9L54", "8L54", "7L1", "6L1"], + taunt: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + toxic: ["7M", "6M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M", "9L24", "8L24", "7T", "7L21", "6T", "6L21"], + weatherball: ["9L12", "8M", "8L12", "7L40", "6L40"], + wildcharge: ["9M"], + willowisp: ["9M", "8M", "7M", "6M"], + }, + eventData: [ + {generation: 6, level: 70, moves: ["steameruption", "overheat", "hydropump", "mist"], pokeball: "cherishball"}, + {generation: 6, level: 70, moves: ["steameruption", "flamethrower", "hydropump", "explosion"], pokeball: "cherishball"}, + {generation: 8, level: 60, moves: ["steameruption", "flareblitz", "incinerate", "haze"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + rowlet: { + learnset: { + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + astonish: ["9L6", "8L6", "7L11"], + attract: ["8M", "7M"], + batonpass: ["8M", "7E"], + bravebird: ["9M", "9L36", "8M", "8L36", "7L43"], + bulletseed: ["9M"], + confide: ["7M"], + confuseray: ["9M", "9E", "8E", "7E"], + covet: ["7T"], + curse: ["7E"], + defog: ["9E", "8E", "7T", "7E"], + doubleteam: ["9E", "8E", "7M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + featherdance: ["9L33", "8L33", "7L39"], + foresight: ["7L18"], + frustration: ["7M"], + furyattack: ["7L29"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L4"], + haze: ["7E"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + knockoff: ["9E", "8E"], + leafage: ["9L3", "8L3", "7L1"], + leafblade: ["9L30", "8M", "8L30", "7L36"], + leafstorm: ["9M"], + lightscreen: ["9M", "8M", "7M"], + magicalleaf: ["9M"], + nastyplot: ["9M", "9L24", "8M", "8L24", "7L46"], + naturepower: ["7M"], + nightshade: ["9M"], + ominouswind: ["7L16", "7E"], + peck: ["9L9", "8L9", "7L8"], + pluck: ["9L21", "8L21", "7L22"], + protect: ["9M", "8M", "7M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["9E", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + shadowclaw: ["9M", "8M", "7M"], + shadowsneak: ["9L12", "8L12"], + skyattack: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + steelwing: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L27", "8L27", "7L32"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L18", "8L18", "7T", "7L25"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + workup: ["8M", "7M"], + worryseed: ["7T"], + }, + }, + dartrix: { + learnset: { + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + astonish: ["9L1", "8L1", "7L11"], + attract: ["8M", "7M"], + batonpass: ["9M", "8M"], + bravebird: ["9M", "9L50", "8M", "8L50", "7L51"], + bulletseed: ["9M"], + confide: ["7M"], + covet: ["7T"], + defog: ["7T"], + doubleteam: ["7M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + featherdance: ["9L45", "8L45", "7L46"], + foresight: ["7L19"], + frustration: ["7M"], + furyattack: ["7L33"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L1"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + leafage: ["9L1", "8L1", "7L1"], + leafblade: ["9L40", "8M", "8L40", "7L42"], + leafstorm: ["9M"], + lightscreen: ["8M", "7M"], + magicalleaf: ["9M"], + nastyplot: ["9M", "9L30", "8M", "8L30", "7L55"], + naturepower: ["7M"], + ominouswind: ["7L16"], + peck: ["9L9", "8L9", "7L1"], + pluck: ["9L25", "8L25", "7L24"], + protect: ["9M", "8M", "7M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + shadowclaw: ["9M", "8M", "7M"], + shadowsneak: ["9L12", "8L12"], + skyattack: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + steelwing: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L35", "8L35", "7L37"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L20", "8L20", "7T", "7L28"], + tackle: ["9L1", "8L1", "7L1"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + workup: ["8M", "7M"], + worryseed: ["7T"], + }, + }, + decidueye: { + learnset: { + acrobatics: ["9M", "8M", "7M"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + astonish: ["9L1", "8L1", "7L11"], + attract: ["8M", "7M"], + batonpass: ["9M", "8M"], + bravebird: ["9M", "9L58", "8M", "8L58", "7L55", "7S0"], + bulletseed: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + covet: ["7T"], + defog: ["7T"], + doubleteam: ["7M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + featherdance: ["9L51", "8L51", "7L49"], + foresight: ["7L19"], + frenzyplant: ["9M", "8T", "7T"], + frustration: ["7M"], + furyattack: ["7L33"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grasspledge: ["9M", "8T", "7T"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1", "7L1"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + laserfocus: ["7T"], + leafage: ["9L1", "8L1", "7L1"], + leafblade: ["9L44", "8M", "8L44", "7L44", "7S0"], + leafstorm: ["9M", "9L1", "8M", "8L1", "7L1"], + lightscreen: ["9M", "8M", "7M"], + lowkick: ["9M"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M"], + nastyplot: ["9M", "9L30", "8M", "8L30", "7L60"], + naturepower: ["7M"], + nightshade: ["9M"], + ominouswind: ["7L16"], + peck: ["9L9", "8L9", "7L1"], + phantomforce: ["9M", "9L1", "8M", "8L1", "7L1", "7S0"], + pluck: ["9L25", "8L25", "7L24"], + poltergeist: ["8T"], + protect: ["9M", "8M", "7M"], + psychocut: ["8M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L14"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + shadowball: ["9M", "8M", "7M"], + shadowclaw: ["9M", "8M", "7M"], + shadowsneak: ["9L12", "8L12", "7L1", "7S0"], + skittersmack: ["8T"], + skyattack: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + solarblade: ["8M"], + spiritshackle: ["9L0", "8L0", "7L1"], + spite: ["9L1", "8L1", "7T"], + steelwing: ["8M", "7M"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L37", "8L37", "7L38"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L20", "8L20", "7T", "7L28"], + tackle: ["9L1", "8L1", "7L1"], + tailwind: ["9M", "7T"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + uturn: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + workup: ["8M", "7M"], + worryseed: ["7T"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["leafblade", "phantomforce", "shadowsneak", "bravebird"], pokeball: "pokeball"}, + ], + }, + decidueyehisui: { + learnset: { + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + aurasphere: ["9M"], + batonpass: ["9M"], + bravebird: ["9M", "9L58"], + brickbreak: ["9M"], + bulkup: ["9M", "9L30"], + bulletseed: ["9M"], + closecombat: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + featherdance: ["9L51"], + focusblast: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyterrain: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + leafage: ["9L1"], + leafblade: ["9L44"], + leafstorm: ["9M", "9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M"], + nastyplot: ["9M"], + peck: ["9L9"], + pluck: ["9L25"], + protect: ["9M"], + raindance: ["9M"], + razorleaf: ["9L15"], + rest: ["9M"], + reversal: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9L12"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L37"], + sunnyday: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + synthesis: ["9L20"], + tackle: ["9L1"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + triplearrows: ["9L0"], + uturn: ["9M", "9L1"], + }, + }, + litten: { + learnset: { + acrobatics: ["8M", "7M"], + attract: ["8M", "7M"], + bite: ["8L15", "7L22"], + bodyslam: ["8M", "7E"], + bulkup: ["8M", "7M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["8M", "7E"], + doublekick: ["8L18", "7L16"], + doubleteam: ["7M"], + ember: ["8L3", "7L1"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["8E", "7E"], + fireblast: ["8M", "7M"], + firefang: ["8M", "8L21", "7L14"], + firepledge: ["8T", "7T"], + firespin: ["8M"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L30", "7M", "7L36"], + flareblitz: ["8M", "8L36", "7L43"], + frustration: ["7M"], + furyswipes: ["8L12", "7L29"], + growl: ["8L1", "7L4"], + heatwave: ["8M", "7T", "7E"], + hiddenpower: ["7M"], + leechlife: ["8M", "7M"], + leer: ["7L11"], + lick: ["8L6", "7L8"], + nastyplot: ["8M", "7E"], + outrage: ["8M", "7T", "7L46"], + overheat: ["8M", "7M"], + partingshot: ["8E"], + payday: ["8M"], + powertrip: ["8E", "7E"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M", "7E"], + roar: ["8L9", "7M", "7L18"], + round: ["8M", "7M"], + scaryface: ["8M", "8L24", "7L39"], + scratch: ["8L1", "7L1"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["8L27", "7M", "7L25"], + swordsdance: ["8M", "7M"], + taunt: ["8M", "7M"], + thrash: ["8L33", "7L32"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + }, + torracat: { + learnset: { + acrobatics: ["8M", "7M"], + attract: ["8M", "7M"], + bite: ["8L15", "7L24"], + bodyslam: ["8M"], + bulkup: ["8M", "7M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["8M"], + doublekick: ["8L20", "7L16"], + doubleteam: ["7M"], + dualchop: ["7T"], + ember: ["8L1", "7L1"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + firefang: ["8M", "8L25", "7L14"], + firepledge: ["8T", "7T"], + firespin: ["8M"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L40", "7M", "7L42"], + flareblitz: ["8M", "8L50", "7L51"], + frustration: ["7M"], + furyswipes: ["8L12", "7L33"], + growl: ["8L1", "7L1"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + leechlife: ["8M", "7M"], + leer: ["7L11"], + lick: ["8L1", "7L1"], + nastyplot: ["8M"], + outrage: ["8M", "7T", "7L55"], + overheat: ["8M", "7M"], + payday: ["8M"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + roar: ["8L9", "7M", "7L19"], + round: ["8M", "7M"], + scaryface: ["8M", "8L30", "7L46"], + scratch: ["8L1", "7L1"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["8L35", "7M", "7L28"], + swordsdance: ["8M", "7M"], + taunt: ["8M", "7M"], + thrash: ["8L45", "7L37"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + }, + incineroar: { + learnset: { + acrobatics: ["8M", "7M"], + assurance: ["8M"], + attract: ["8M", "7M"], + bind: ["7T"], + bite: ["8L15", "7L24"], + blastburn: ["8T", "7T"], + blazekick: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "8L1", "7M", "7L1"], + bulldoze: ["8M", "7M"], + burningjealousy: ["8T"], + closecombat: ["8M"], + confide: ["7M"], + covet: ["7T"], + crosschop: ["8L1", "7L66"], + crunch: ["8M"], + darkestlariat: ["8M", "8L0", "7L1", "7S0"], + darkpulse: ["8M", "7M"], + doublekick: ["8L20", "7L16"], + doubleteam: ["7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + embargo: ["7M"], + ember: ["8L1", "7L1"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["7S0"], + fireblast: ["8M", "7M"], + firefang: ["8M", "8L25", "7L14"], + firepledge: ["8T", "7T"], + firepunch: ["8M", "7T"], + firespin: ["8M"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L44", "7M", "7L44"], + flareblitz: ["8M", "8L58", "7L55", "7S0"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + furyswipes: ["8L12", "7L33"], + gigaimpact: ["8M", "7M"], + growl: ["8L1", "7L1"], + heatcrash: ["8M"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + lashout: ["8T"], + leechlife: ["8M", "7M"], + leer: ["7L11"], + lick: ["8L1", "7L1"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["8M"], + outrage: ["8M", "7T", "7L60"], + overheat: ["8M", "7M"], + payday: ["8M"], + protect: ["8M", "7M"], + quash: ["7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["8L9", "7M", "7L19"], + round: ["8M", "7M"], + scaryface: ["8M", "8L30", "7L49"], + scorchingsands: ["8T"], + scratch: ["8L1", "7L1"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["8L32", "7M", "7L28"], + swordsdance: ["8M", "7M"], + taunt: ["8M", "7M"], + thrash: ["8L51", "7L38"], + throatchop: ["8M", "8L1", "7T", "7L1"], + thunderpunch: ["8M", "7T"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M", "7S0"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["fakeout", "uturn", "darkestlariat", "flareblitz"], pokeball: "pokeball"}, + ], + }, + popplio: { + learnset: { + acrobatics: ["8M", "7M"], + amnesia: ["8M", "7E"], + aquajet: ["8L9", "7L14"], + aquaring: ["8E", "7E"], + aquatail: ["7T"], + aromaticmist: ["7E"], + attract: ["8M", "7M"], + babydolleyes: ["8L12", "7L11"], + blizzard: ["8M", "7M"], + brine: ["8M"], + bubblebeam: ["8L21", "7L22"], + captivate: ["7L39"], + charm: ["8M", "7E"], + confide: ["7M"], + covet: ["7T"], + disarmingvoice: ["8L6", "7L8"], + dive: ["8M"], + doubleslap: ["7L29"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + encore: ["8M", "8L24", "7L18"], + endure: ["8M"], + facade: ["8M", "7M"], + flipturn: ["8T"], + frustration: ["7M"], + growl: ["8L1", "7L4"], + hail: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L36", "7L43"], + hypervoice: ["8M", "8L30", "7T", "7L32"], + icebeam: ["8M", "7M"], + icywind: ["8M", "8L15", "7T", "7L16"], + irontail: ["8M", "7T"], + lifedew: ["8E"], + mistyterrain: ["8M", "8L27", "7L46"], + moonblast: ["8L33", "7L36"], + perishsong: ["8E", "7E"], + playrough: ["8M"], + pound: ["8L1", "7L1"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + sing: ["8L18", "7L25"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L3", "7L1"], + waterpledge: ["8T", "7T"], + waterpulse: ["7T"], + whirlpool: ["8M"], + wonderroom: ["8M", "7T", "7E"], + workup: ["8M", "7M"], + }, + }, + brionne: { + learnset: { + acrobatics: ["8M", "7M"], + amnesia: ["8M"], + aquajet: ["8L9", "7L14"], + aquatail: ["7T"], + attract: ["8M", "7M"], + babydolleyes: ["8L12", "7L11"], + blizzard: ["8M", "7M"], + brine: ["8M"], + bubblebeam: ["8L25", "7L24"], + captivate: ["7L46"], + charm: ["8M"], + confide: ["7M"], + covet: ["7T"], + disarmingvoice: ["8L1", "7L1"], + dive: ["8M"], + doubleslap: ["7L33"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + encore: ["8M", "8L30", "7L19"], + endure: ["8M"], + facade: ["8M", "7M"], + flipturn: ["8T"], + frustration: ["7M"], + growl: ["8L1", "7L1"], + hail: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L50", "7L51"], + hypervoice: ["8M", "8L40", "7T", "7L37"], + icebeam: ["8M", "7M"], + icywind: ["8M", "8L15", "7T", "7L16"], + irontail: ["8M", "7T"], + mistyterrain: ["8M", "8L35", "7L55"], + moonblast: ["8L45", "7L42"], + playrough: ["8M"], + pound: ["8L1", "7L1"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + sing: ["8L20", "7L28"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpledge: ["8T", "7T"], + waterpulse: ["7T"], + whirlpool: ["8M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + }, + primarina: { + learnset: { + acrobatics: ["8M", "7M"], + amnesia: ["8M"], + aquajet: ["8L9", "7L14"], + aquatail: ["7T"], + attract: ["8M", "7M"], + babydolleyes: ["8L12", "7L11"], + blizzard: ["8M", "7M"], + brine: ["8M"], + bubblebeam: ["8L25", "7L24"], + calmmind: ["8M"], + captivate: ["7L49"], + charm: ["8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["8M", "7M"], + disarmingvoice: ["8L1", "7L1"], + dive: ["8M"], + doubleslap: ["7L33"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + encore: ["8M", "8L30", "7L19"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + flipturn: ["8T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + growl: ["8L1", "7L1"], + hail: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hydrocannon: ["8T", "7T"], + hydropump: ["8M", "8L58", "7L55"], + hyperbeam: ["8M"], + hypervoice: ["8M", "8L44", "7T", "7L38", "7S0"], + icebeam: ["8M", "7M"], + icywind: ["8M", "8L15", "7T", "7L16", "7S0"], + irontail: ["8M", "7T"], + lightscreen: ["8M", "7M"], + liquidation: ["8M", "7T"], + magiccoat: ["7T"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L37", "7L60"], + moonblast: ["8L51", "7L44", "7S0"], + perishsong: ["7S0"], + playrough: ["8M"], + pound: ["8L1", "7L1"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychup: ["7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + shadowball: ["8M", "7M"], + sing: ["8L20", "7L28"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + sparklingaria: ["8L0", "7L1"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + uproar: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpledge: ["8T", "7T"], + waterpulse: ["7T"], + weatherball: ["8M"], + whirlpool: ["8M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["hypervoice", "moonblast", "icywind", "perishsong"], pokeball: "pokeball"}, + ], + }, + pikipek: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + boomburst: ["7E"], + bravebird: ["7E"], + brickbreak: ["7M"], + bulletseed: ["7L31"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + drillpeck: ["7L27"], + echoedvoice: ["7M", "7L7"], + featherdance: ["7L33"], + flamecharge: ["7M"], + fly: ["7M"], + frustration: ["7M"], + furyattack: ["7L21"], + growl: ["7L3"], + gunkshot: ["7T"], + heatwave: ["7T"], + hiddenpower: ["7M"], + hypervoice: ["7T", "7L37"], + knockoff: ["7T"], + mirrormove: ["7E"], + peck: ["7L1"], + pluck: ["7L15"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + rocksmash: ["7L9"], + roost: ["7M", "7L19"], + round: ["7M"], + screech: ["7L25"], + skyattack: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + supersonic: ["7L13"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwind: ["7T", "7E"], + thief: ["7M"], + toxic: ["7M"], + uproar: ["7T", "7E"], + uturn: ["7M"], + workup: ["7M"], + }, + }, + trumbeak: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + brickbreak: ["7M"], + bulletseed: ["7L37"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + drillpeck: ["7L32"], + echoedvoice: ["7M", "7L1"], + featherdance: ["7L40"], + flamecharge: ["7M"], + fly: ["7M"], + frustration: ["7M"], + furyattack: ["7L24"], + growl: ["7L1"], + gunkshot: ["7T"], + heatwave: ["7T"], + hiddenpower: ["7M"], + hypervoice: ["7T", "7L45"], + knockoff: ["7T"], + peck: ["7L1"], + pluck: ["7L16"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + rockblast: ["7L1"], + rocksmash: ["7L1"], + roost: ["7M", "7L21"], + round: ["7M"], + screech: ["7L29"], + skyattack: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + supersonic: ["7L13"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwind: ["7T"], + thief: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + workup: ["7M"], + }, + }, + toucannon: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + beakblast: ["7L1"], + brickbreak: ["7M"], + bulletseed: ["7L40"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + drillpeck: ["7L34"], + echoedvoice: ["7M", "7L1"], + featherdance: ["7L44"], + flamecharge: ["7M"], + flashcannon: ["7M"], + fly: ["7M"], + frustration: ["7M"], + furyattack: ["7L24"], + growl: ["7L1"], + gunkshot: ["7T"], + heatwave: ["7T"], + hiddenpower: ["7M"], + hypervoice: ["7T", "7L50"], + knockoff: ["7T"], + overheat: ["7M"], + peck: ["7L1"], + pluck: ["7L16"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + rockblast: ["7L1"], + rocksmash: ["7L1"], + roost: ["7M", "7L21"], + round: ["7M"], + screech: ["7L30"], + seedbomb: ["7T"], + skyattack: ["7T"], + sleeptalk: ["7M"], + smackdown: ["7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["7M"], + sunnyday: ["7M"], + supersonic: ["7L13"], + swagger: ["7M"], + swordsdance: ["7M"], + tailwind: ["7T"], + thief: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + workup: ["7M"], + }, + encounters: [ + {generation: 7, level: 26}, + ], + }, + yungoos: { + learnset: { + attract: ["7M"], + bide: ["7L16"], + bite: ["9L19", "7L19"], + bulldoze: ["9M"], + chillingwater: ["9M"], + confide: ["7M"], + crunch: ["9M", "9L34", "7L34"], + dig: ["9M"], + doubleteam: ["7M"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["9E", "7T"], + endure: ["9M"], + facade: ["9M", "7M"], + firefang: ["9M", "9E", "7E"], + frustration: ["7M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperfang: ["7L37"], + icefang: ["9M", "9E", "7E"], + irontail: ["7T"], + lastresort: ["9E", "7T", "7E"], + leer: ["9L3", "7L3"], + mudshot: ["9M"], + mudslap: ["9M", "9L22", "7L22"], + odorsleuth: ["7L13"], + payback: ["9L7", "7M"], + protect: ["9M", "7M"], + psychicfangs: ["9M"], + pursuit: ["7L7"], + raindance: ["9M"], + rest: ["9M", "9L43", "7M", "7L46"], + return: ["7M"], + revenge: ["7E"], + reversal: ["9M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandattack: ["9L10", "7L10"], + sandstorm: ["9M", "7M"], + scaryface: ["9M", "9L31", "7L31"], + seedbomb: ["9M"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M"], + sunnyday: ["9M"], + superfang: ["9L25", "7T", "7L25"], + swagger: ["7M"], + tackle: ["9L1", "7L1"], + takedown: ["9M", "9L28", "7L28"], + taunt: ["9M", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thrash: ["9L40", "7L43"], + thunderfang: ["9M", "9E", "7E"], + torment: ["7M"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["7T"], + uturn: ["9M", "7M"], + wildcharge: ["9M"], + workup: ["9L13", "7M"], + yawn: ["9L37", "7L40"], + zenheadbutt: ["9M"], + }, + }, + gumshoos: { + learnset: { + attract: ["7M"], + bide: ["7L16"], + bite: ["9L19", "7L19"], + block: ["7T"], + bodyslam: ["9M"], + bulldoze: ["9M", "7M"], + chillingwater: ["9M"], + confide: ["7M"], + crunch: ["9M", "9L39", "7L39"], + dig: ["9M"], + doubleteam: ["7M"], + dualchop: ["7T"], + earthquake: ["9M", "7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M"], + facade: ["9M", "7M"], + firefang: ["9M"], + firepunch: ["9M", "7T"], + fling: ["9M", "7M"], + frustration: ["7M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + hyperfang: ["7L43"], + icefang: ["9M"], + icepunch: ["9M", "7T"], + ironhead: ["9M", "7T"], + irontail: ["7T"], + lastresort: ["7T"], + leer: ["9L1", "7L1"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M", "9L23", "7L23"], + odorsleuth: ["7L13"], + payback: ["9L1", "7M"], + protect: ["9M", "7M"], + psychicfangs: ["9M"], + pursuit: ["7L1"], + raindance: ["9M"], + rest: ["9M", "9L52", "7M", "7L55"], + return: ["7M"], + reversal: ["9M"], + roar: ["7M"], + rocktomb: ["9M", "7M"], + round: ["7M"], + sandattack: ["9L1", "7L1"], + sandstorm: ["9M", "7M"], + scaryface: ["9M", "9L35", "7L35"], + seedbomb: ["9M"], + shockwave: ["7T"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M"], + sunnyday: ["9M"], + superfang: ["9L27", "7T", "7L27"], + swagger: ["7M"], + tackle: ["9L1", "7L1"], + takedown: ["9M", "9L31", "7L31"], + taunt: ["9M", "7M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thrash: ["9L47", "7L51"], + thunderfang: ["9M"], + thunderpunch: ["9M", "7T"], + torment: ["7M"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["7T"], + uturn: ["9M", "7M"], + wildcharge: ["9M"], + workup: ["9L13", "7M"], + yawn: ["9L43", "7L47"], + zenheadbutt: ["9M", "7T"], + }, + encounters: [ + {generation: 7, level: 17}, + ], + }, + gumshoostotem: { + learnset: { + attract: ["7M"], + bide: ["7L16", "7S0"], + bite: ["7L19", "7S0"], + block: ["7T"], + bulldoze: ["7M"], + confide: ["7M"], + crunch: ["7L39"], + doubleteam: ["7M"], + dualchop: ["7T"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + facade: ["7M"], + firepunch: ["7T"], + fling: ["7M"], + frustration: ["7M"], + hiddenpower: ["7M"], + hyperfang: ["7L43"], + icepunch: ["7T"], + ironhead: ["7T"], + irontail: ["7T"], + lastresort: ["7T"], + leer: ["7L1"], + mudslap: ["7L23"], + odorsleuth: ["7L13", "7S0"], + payback: ["7M"], + protect: ["7M"], + pursuit: ["7L1"], + rest: ["7M", "7L55"], + return: ["7M"], + roar: ["7M"], + rocktomb: ["7M"], + round: ["7M"], + sandattack: ["7L1", "7S0"], + sandstorm: ["7M"], + scaryface: ["7L35"], + shockwave: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + stompingtantrum: ["7T"], + substitute: ["7M"], + superfang: ["7T", "7L27"], + swagger: ["7M"], + tackle: ["7L1"], + takedown: ["7L31"], + taunt: ["7M"], + thief: ["7M"], + thrash: ["7L51"], + thunderpunch: ["7T"], + torment: ["7M"], + toxic: ["7M"], + uproar: ["7T"], + uturn: ["7M"], + workup: ["7M"], + yawn: ["7L47"], + zenheadbutt: ["7T"], + }, + eventData: [ + {generation: 7, level: 20, perfectIVs: 3, moves: ["sandattack", "odorsleuth", "bide", "bite"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + grubbin: { + learnset: { + acrobatics: ["8M", "7M", "7L19"], + attract: ["8M", "7M"], + bite: ["8L15", "7L10"], + bugbite: ["8L10", "7T", "7L13"], + chargebeam: ["7M"], + confide: ["7M"], + crunch: ["8M", "8L35", "7L22"], + dig: ["8M", "8L40", "7L28"], + discharge: ["8E"], + doubleteam: ["7M"], + electroweb: ["8M", "7T", "7E"], + endure: ["8M", "7E"], + facade: ["8M", "7M"], + frustration: ["7M"], + harden: ["8E", "7E"], + hiddenpower: ["7M"], + lightscreen: ["8M", "7M"], + magnetrise: ["7T"], + mudshot: ["8M", "7E"], + mudslap: ["8L1", "7L7"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + screech: ["8M"], + shockwave: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spark: ["8L21", "7L16"], + stickyweb: ["8L25"], + stringshot: ["8L5", "7L4"], + substitute: ["8M", "7M"], + swagger: ["7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + visegrip: ["8L1", "7L1"], + voltswitch: ["8M", "7M"], + wildcharge: ["8M", "7M"], + xscissor: ["8M", "8L30", "7M", "7L25"], + }, + }, + charjabug: { + learnset: { + acrobatics: ["8M", "7M", "7L19"], + attract: ["8M", "7M"], + bite: ["8L15", "7L1"], + bugbite: ["8L1", "7T", "7L13"], + charge: ["8L0", "7L1"], + chargebeam: ["7M"], + confide: ["7M"], + crunch: ["8M", "8L43", "7L25"], + dig: ["8M", "8L50", "7L37"], + discharge: ["8L64", "7L43"], + doubleteam: ["7M"], + eerieimpulse: ["8M"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + endure: ["8M"], + facade: ["8M", "7M"], + frustration: ["7M"], + hiddenpower: ["7M"], + irondefense: ["8M", "8L57", "7T", "7L49"], + lightscreen: ["8M", "7M"], + magnetrise: ["7T"], + mudshot: ["8M"], + mudslap: ["8L1", "7L1"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + screech: ["8M"], + shockwave: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spark: ["8L23", "7L16"], + stickyweb: ["8L29"], + stringshot: ["8L1", "7L1"], + substitute: ["8M", "7M"], + swagger: ["7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + visegrip: ["8L1", "7L1"], + voltswitch: ["8M", "7M"], + wildcharge: ["8M", "7M"], + xscissor: ["8M", "8L36", "7M", "7L31"], + }, + }, + vikavolt: { + learnset: { + acrobatics: ["8M", "7M", "7L19"], + agility: ["8M", "8L57", "7L49"], + airslash: ["8M", "7L1"], + attract: ["8M", "7M"], + bite: ["8L15", "7L1"], + bugbite: ["8L1", "7T", "7L13"], + bugbuzz: ["8M", "8L36", "7L31"], + charge: ["8L1", "7L1"], + chargebeam: ["7M"], + confide: ["7M"], + crunch: ["8M", "8L1"], + dig: ["8M", "8L1", "7L37"], + discharge: ["8L1"], + doubleteam: ["7M"], + dualwingbeat: ["8T"], + eerieimpulse: ["8M"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + flashcannon: ["8M", "7M"], + fly: ["8M", "8L50"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + guillotine: ["8L43", "7L25"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "8L1", "7T"], + laserfocus: ["7T"], + lightscreen: ["8M", "7M"], + magnetrise: ["7T"], + mudshot: ["8M"], + mudslap: ["8L1", "7L1"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + roost: ["7M"], + round: ["8M", "7M"], + screech: ["8M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skittersmack: ["8T"], + skydrop: ["7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spark: ["8L23", "7L16"], + stickyweb: ["8L29"], + stringshot: ["8L1", "7L1"], + substitute: ["8M", "7M"], + swagger: ["7M"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "8L0", "7M", "7L1"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + visegrip: ["8L1", "7L1"], + voltswitch: ["8M", "7M"], + wildcharge: ["8M", "7M"], + xscissor: ["8M", "8L1", "7M"], + zapcannon: ["8L64", "7L41"], + }, + }, + vikavolttotem: { + learnset: { + acrobatics: ["7M", "7L19", "7S0"], + agility: ["7L49"], + airslash: ["7L1"], + attract: ["7M"], + bite: ["7L1"], + bugbite: ["7T", "7L13"], + bugbuzz: ["7L31", "7S0"], + charge: ["7L1"], + chargebeam: ["7M"], + confide: ["7M"], + dig: ["7L37"], + doubleteam: ["7M"], + electroweb: ["7T"], + energyball: ["7M"], + facade: ["7M"], + flashcannon: ["7M"], + frustration: ["7M"], + gigaimpact: ["7M"], + guillotine: ["7L25", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + irondefense: ["7T"], + laserfocus: ["7T"], + lightscreen: ["7M"], + magnetrise: ["7T"], + mudslap: ["7L1"], + poisonjab: ["7M"], + protect: ["7M"], + raindance: ["7M"], + rest: ["7M"], + return: ["7M"], + roost: ["7M"], + round: ["7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skydrop: ["7M"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + spark: ["7L16", "7S0"], + stringshot: ["7L1"], + substitute: ["7M"], + swagger: ["7M"], + thunder: ["7M"], + thunderbolt: ["7M", "7L1"], + thunderwave: ["7M"], + toxic: ["7M"], + visegrip: ["7L1"], + voltswitch: ["7M"], + wildcharge: ["7M"], + xscissor: ["7M"], + zapcannon: ["7L41"], + }, + eventData: [ + {generation: 7, level: 35, perfectIVs: 3, moves: ["spark", "acrobatics", "guillotine", "bugbuzz"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + crabrawler: { + learnset: { + amnesia: ["9M", "7E"], + attract: ["7M"], + bodyslam: ["9M"], + brickbreak: ["9M", "9L22", "7M"], + brutalswing: ["7M"], + bubble: ["7L1"], + bubblebeam: ["9L13", "7L17"], + bulkup: ["9M", "7M"], + bulldoze: ["9M", "7M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L49", "7L49"], + confide: ["7M"], + crabhammer: ["9L37", "7L37"], + dig: ["9M"], + dizzypunch: ["7L25"], + doubleteam: ["7M"], + drainpunch: ["9M", "7T"], + dualchop: ["7T"], + dynamicpunch: ["9L45", "7L45"], + earthquake: ["9M", "7M"], + endeavor: ["9E", "7T", "7E"], + endure: ["9M"], + facade: ["9M", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M", "7M"], + focuspunch: ["9E", "7T"], + frostbreath: ["7M"], + frustration: ["7M"], + gunkshot: ["9M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + icepunch: ["9M", "7T"], + irondefense: ["9M", "9L42", "7T", "7L42"], + ironhead: ["9M", "7T"], + leer: ["9L9", "7L9"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9L29", "7M", "7L29"], + poweruppunch: ["7L22"], + protect: ["9M", "9L17", "7M"], + pursuit: ["7L13"], + raindance: ["9M", "7M"], + rest: ["9M", "7M"], + return: ["7M"], + reversal: ["9M", "9L33", "7L33"], + rockslide: ["9M", "7M"], + rocksmash: ["9L5", "7L5"], + rocktomb: ["9M", "7M"], + round: ["7M"], + scald: ["7M"], + slam: ["9L25"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + stompingtantrum: ["9M"], + stoneedge: ["7M"], + substitute: ["9M", "7M"], + sunnyday: ["9M", "7M"], + superpower: ["9E", "7T", "7E"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunderpunch: ["9M", "7T"], + toxic: ["7M"], + visegrip: ["9L1"], + wideguard: ["9E", "7E"], + workup: ["7M"], + zenheadbutt: ["9M", "7T"], + }, + }, + crabominable: { + learnset: { + amnesia: ["9M"], + attract: ["7M"], + avalanche: ["9M", "9L29", "7L29"], + blizzard: ["9M", "7M"], + block: ["7T"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "9L22", "7M"], + brutalswing: ["7M"], + bubble: ["7L1"], + bubblebeam: ["9L17", "7L17"], + bulkup: ["9M", "7M"], + bulldoze: ["9M", "7M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L49", "7L49"], + confide: ["7M"], + dig: ["9M"], + dizzypunch: ["7L25"], + doubleteam: ["7M"], + drainpunch: ["9M", "7T"], + dualchop: ["7T"], + dynamicpunch: ["9L45", "7L45"], + earthquake: ["9M", "7M"], + endeavor: ["7T"], + endure: ["9M"], + facade: ["9M", "7M"], + fling: ["9M", "7M"], + focusblast: ["9M", "7M"], + focuspunch: ["7T"], + frostbreath: ["7M"], + frustration: ["7M"], + gigaimpact: ["9M", "7M"], + gunkshot: ["9M"], + hail: ["7M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M"], + icehammer: ["9L37", "7L37"], + icepunch: ["9M", "9L0", "7T", "7L1"], + icespinner: ["9M"], + icywind: ["9M", "7T"], + irondefense: ["9M", "9L42", "7T", "7L42"], + ironhead: ["9M", "7T"], + leer: ["9L1", "7L1"], + liquidation: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["7M"], + poweruppunch: ["7L22"], + protect: ["9M", "9L1", "7M"], + pursuit: ["7L1"], + raindance: ["9M", "7M"], + rest: ["9M", "7M"], + return: ["7M"], + reversal: ["9M", "9L33", "7L33"], + rockslide: ["9M", "7M"], + rocksmash: ["9L1", "7L1"], + rocktomb: ["9M", "7M"], + round: ["7M"], + scald: ["7M"], + scaryface: ["9M"], + slam: ["9L25"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["7M"], + substitute: ["9M", "7M"], + sunnyday: ["9M", "7M"], + superpower: ["7T"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "7M"], + thunderpunch: ["9M", "7T"], + toxic: ["7M"], + workup: ["7M"], + zenheadbutt: ["9M", "7T"], + }, + }, + oricorio: { + learnset: { + acrobatics: ["9M", "9L23", "7M"], + aerialace: ["9M", "7M"], + agility: ["9M", "9L43", "7L46"], + aircutter: ["9M", "9L13", "7L13"], + airslash: ["9M", "9L36", "7L36"], + attract: ["9E", "7M"], + batonpass: ["9M", "9L16", "7L16"], + calmmind: ["9M", "7M"], + captivate: ["7L33", "7E"], + charm: ["9M"], + confide: ["7M"], + covet: ["7T"], + defog: ["9E", "7T"], + doubleslap: ["7L23"], + doubleteam: ["7M"], + embargo: ["7M"], + endure: ["9M"], + facade: ["9M", "7M"], + featherdance: ["9L20", "7L20"], + flatter: ["9L33"], + fly: ["9M", "7M"], + frustration: ["7M"], + growl: ["9L4", "7L4"], + helpinghand: ["9M", "9L10", "7T", "7L10"], + hiddenpower: ["7M"], + hurricane: ["9M", "9L47", "7L50"], + icywind: ["9M", "7T"], + mirrormove: ["7L43"], + peck: ["9L6", "7L6"], + pluck: ["9E", "7E"], + pound: ["9L1", "7L1"], + protect: ["9M", "7M"], + quash: ["7M"], + quiverdance: ["9E"], + raindance: ["9M"], + rest: ["9M", "7M"], + return: ["7M"], + revelationdance: ["9L40", "7L40"], + reversal: ["9M"], + roleplay: ["7T"], + roost: ["9L30", "7M", "7L30"], + round: ["7M"], + safeguard: ["9E", "7M", "7E"], + sandstorm: ["9M", "7M"], + skyattack: ["7T"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + steelwing: ["7M"], + substitute: ["9M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + swift: ["9M"], + swordsdance: ["9M", "7M"], + tailwind: ["9M", "7T", "7E"], + takedown: ["9M"], + taunt: ["9M", "7M"], + teeterdance: ["9L26", "7L26"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + uturn: ["9M", "7M"], + workup: ["7M"], + }, + }, + cutiefly: { + learnset: { + absorb: ["8L1", "7L1"], + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + afteryou: ["7T"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L30", "7L36"], + aromaticmist: ["8E"], + attract: ["8M", "7M"], + batonpass: ["8M", "7E"], + bestow: ["7E"], + bugbite: ["7T"], + bugbuzz: ["8M", "8L48", "7L26"], + calmmind: ["8M", "7M"], + charm: ["8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["8M", "8L42", "7M", "7L31"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["8M", "8L18", "7L16"], + dreameater: ["7M"], + dualwingbeat: ["8T"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + fairywind: ["8L1", "7L4"], + faketears: ["8M"], + frustration: ["7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + imprison: ["8M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["8M", "7M"], + lightscreen: ["8M", "7M"], + magicroom: ["8M", "7T"], + moonblast: ["8E", "7E"], + playrough: ["8M"], + powder: ["7E"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychup: ["7M"], + quiverdance: ["8L54", "7L41"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + signalbeam: ["7T"], + silverwind: ["7L13"], + skillswap: ["8M", "7T", "7E"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + speedswap: ["8M", "7E"], + stickyweb: ["8E", "7E"], + strugglebug: ["8L24", "7L10"], + stunspore: ["8L6", "7L7"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + sweetscent: ["8L12", "7L21"], + swift: ["8M"], + switcheroo: ["8L36"], + tailwind: ["7T"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + uturn: ["8M", "7M"], + wonderroom: ["8M", "7T"], + }, + }, + ribombee: { + learnset: { + absorb: ["8L1", "7L1"], + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + afteryou: ["7T"], + allyswitch: ["8M", "7T"], + aromatherapy: ["8L32", "7L42"], + attract: ["8M", "7M"], + batonpass: ["8M"], + bugbite: ["7T"], + bugbuzz: ["8M", "8L56", "7L28"], + calmmind: ["8M", "7M"], + charm: ["8M"], + confide: ["7M"], + covet: ["8L1", "7T"], + dazzlinggleam: ["8M", "8L48", "7M", "7L35"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["8M", "8L18", "7L16"], + dreameater: ["7M"], + dualwingbeat: ["8T"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + fairywind: ["8L1", "7L1"], + faketears: ["8M"], + frustration: ["7M"], + gigaimpact: ["8M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + imprison: ["8M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["8M", "7M"], + lightscreen: ["8M", "7M"], + magicalleaf: ["8M"], + magicroom: ["8M", "7T"], + naturepower: ["7M"], + playrough: ["8M"], + pollenpuff: ["8M", "8L0", "7L1"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychup: ["7M"], + quiverdance: ["8L64", "7L49"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + signalbeam: ["7T"], + silverwind: ["7L13"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + speedswap: ["8M"], + strugglebug: ["8L24", "7L1"], + stunspore: ["8L1", "7L1"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + sweetscent: ["8L1", "7L21"], + swift: ["8M"], + switcheroo: ["8L40"], + tailwind: ["7T"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + uturn: ["8M", "7M"], + wonderroom: ["8M", "7T"], + }, + }, + ribombeetotem: { + learnset: { + absorb: ["7L1"], + acrobatics: ["7M"], + aerialace: ["7M"], + afteryou: ["7T"], + allyswitch: ["7T"], + aromatherapy: ["7L42", "7S0"], + attract: ["7M"], + bugbite: ["7T"], + bugbuzz: ["7L28", "7S0"], + calmmind: ["7M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["7M", "7L35", "7S0"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["7L16"], + dreameater: ["7M"], + energyball: ["7M"], + facade: ["7M"], + fairywind: ["7L1"], + frustration: ["7M"], + helpinghand: ["7T"], + hiddenpower: ["7M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["7M"], + lightscreen: ["7M"], + magicroom: ["7T"], + naturepower: ["7M"], + pollenpuff: ["7L1"], + protect: ["7M"], + psychic: ["7M"], + psychup: ["7M"], + quiverdance: ["7L49", "7S0"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + roost: ["7M"], + round: ["7M"], + safeguard: ["7M"], + signalbeam: ["7T"], + silverwind: ["7L13"], + skillswap: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + strugglebug: ["7L1"], + stunspore: ["7L1"], + substitute: ["7M"], + sunnyday: ["7M"], + swagger: ["7M"], + sweetscent: ["7L21"], + tailwind: ["7T"], + telekinesis: ["7T"], + thief: ["7M"], + toxic: ["7M"], + trick: ["7T"], + uturn: ["7M"], + wonderroom: ["7T"], + }, + eventData: [ + {generation: 7, level: 50, perfectIVs: 3, moves: ["bugbuzz", "dazzlinggleam", "aromatherapy", "quiverdance"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + rockruff: { + learnset: { + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L7"], + bodyslam: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["9M", "9L36", "8M", "8L36", "7L40"], + crushclaw: ["7E"], + dig: ["9M"], + doubleteam: ["9L8", "8L8", "7M"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["9E", "8E", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M", "7E"], + frustration: ["7M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["9E", "8E", "7T"], + leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9L28", "8L28", "7M", "7L26"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L4", "8L4", "7L4"], + sandstorm: ["9M"], + scaryface: ["9M", "9L40", "8M", "8L40", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L44", "8M", "8L44", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["7E"], + swagger: ["7M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E"], + thunderfang: ["9M", "8M", "7E"], + toxic: ["7M"], + trailblaze: ["9M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + rockruffdusk: { + learnset: { + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L7", "7S1", "7S0"], + bodyslam: ["9M"], + bulldoze: ["9M"], + charm: ["9M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["9M", "9L36", "8M", "8L36", "7L40"], + crushclaw: ["7E"], + dig: ["9M"], + doubleteam: ["9L8", "8L8", "7M"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["9E", "8E", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M", "7E", "7S0"], + frustration: ["7M"], + happyhour: ["7S1", "7S0"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["9E", "8E", "7T"], + leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9L28", "8L28", "7M", "7L26"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L32", "8M", "8L32", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L4", "8L4", "7L4"], + sandstorm: ["9M"], + scaryface: ["9M", "9L40", "8M", "8L40", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L44", "8M", "8L44", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L48", "8M", "8L48", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["7E"], + swagger: ["7M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1", "7L1", "7S1", "7S0"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thrash: ["9E", "8E", "7E"], + thunderfang: ["9M", "8M", "7E", "7S1"], + toxic: ["7M"], + trailblaze: ["9M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["tackle", "bite", "firefang", "happyhour"], pokeball: "cherishball"}, + {generation: 7, level: 10, moves: ["tackle", "bite", "thunderfang", "happyhour"], pokeball: "cherishball"}, + ], + }, + lycanroc: { + learnset: { + accelerock: ["9L1", "8L1", "7L1"], + agility: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + covet: ["7T"], + crunch: ["9M", "9L42", "8M", "8L42", "7L40"], + dig: ["9M"], + doubleteam: ["9L1", "8L1", "7M"], + drillrun: ["9M", "8M", "7T"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["7T"], + leer: ["9L1", "8L1", "7L1"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1", "7L1"], + quickguard: ["9L1", "8L1", "7L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9L30", "8L30", "7M", "7L26"], + rockblast: ["9M", "8M"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "7L1"], + sandstorm: ["9M", "8M"], + scaryface: ["9M", "9L48", "8M", "8L48", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L54", "8M", "8L54", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L0", "8L0"], + sunnyday: ["9M"], + swagger: ["7M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + toxic: ["7M"], + trailblaze: ["9M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + lycanrocmidnight: { + learnset: { + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + counter: ["9L0", "8L0", "7L1"], + covet: ["7T"], + crunch: ["9M", "9L42", "8M", "8L42", "7L40"], + dig: ["9M"], + doubleteam: ["9L1", "8L1", "7M"], + dualchop: ["7T"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M", "7S0"], + firepunch: ["9M", "8M", "7T"], + fling: ["9M"], + focuspunch: ["7T"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + laserfocus: ["7T"], + lashout: ["8T"], + lastresort: ["7T"], + leer: ["9L1", "8L1", "7L1"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudslap: ["9M"], + odorsleuth: ["7L18"], + outrage: ["9M", "8M", "7T"], + payback: ["8M"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["9M", "9L1", "8M", "8L1", "7L1"], + roar: ["9L30", "8L30", "7M", "7L26"], + rockblast: ["9M", "8M"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "7L1"], + sandstorm: ["9M", "8M"], + scaryface: ["9M", "9L48", "8M", "8L48", "7L37"], + shadowclaw: ["9M"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L54", "8M", "8L54", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L48", "7S0"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["7S0"], + sunnyday: ["9M"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M", "7S0"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L1"], + terablast: ["9M"], + throatchop: ["8M", "7T"], + thunderfang: ["9M", "8M"], + thunderpunch: ["9M", "8M", "7T"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M", "7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, isHidden: true, moves: ["stoneedge", "firefang", "suckerpunch", "swordsdance"], pokeball: "cherishball"}, + ], + }, + lycanrocdusk: { + learnset: { + accelerock: ["9L1", "8L1", "7L1"], + attract: ["8M", "7M"], + bite: ["9L20", "8L20", "7L1"], + brickbreak: ["9M", "8M", "7M"], + bulkup: ["9M", "8M", "7M"], + bulldoze: ["9M"], + charm: ["9M"], + closecombat: ["9M", "8M"], + confide: ["7M"], + counter: ["9L1", "8L1", "7L1"], + covet: ["7T"], + crunch: ["9M", "9L42", "8M", "8L42", "7L40"], + crushclaw: ["9L0", "8L0"], + dig: ["9M"], + doubleteam: ["9L1", "8L1", "7M"], + drillrun: ["9M", "8M", "7T"], + earthpower: ["9M", "8M", "7T"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M", "7M"], + firefang: ["9M", "8M"], + focusenergy: ["8M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M"], + hiddenpower: ["7M"], + howl: ["9L16", "8L16", "7L12"], + hypervoice: ["9M", "8M", "7T"], + irondefense: ["9M", "8M", "7T"], + ironhead: ["9M", "8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["7T"], + leer: ["9L1", "8L1", "7L1"], + odorsleuth: ["7L18"], + outrage: ["9M", "8M", "7T"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + quickguard: ["9L1", "8L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + reversal: ["9M", "9L1", "8M", "8L1"], + roar: ["9L30", "8L30", "7M", "7L26"], + rockblast: ["9M", "8M"], + rockclimb: ["7L45"], + rockpolish: ["7M"], + rockslide: ["9M", "9L36", "8M", "8L36", "7M", "7L34"], + rockthrow: ["9L12", "8L12", "7L15"], + rocktomb: ["9M", "9L24", "8M", "8L24", "7M", "7L23"], + round: ["8M", "7M"], + sandattack: ["9L1", "8L1", "7L1"], + sandstorm: ["9M", "8M"], + scaryface: ["9M", "9L48", "8M", "8L48", "7L37"], + sleeptalk: ["9M", "8M", "7M"], + snarl: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "9L54", "8M", "8L54", "7T", "7L29"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M", "9L60", "8M", "8L60", "7M", "7L48"], + substitute: ["9M", "8M", "7M"], + suckerpunch: ["9L1", "8L1"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M"], + tackle: ["9L1", "8L1", "7L1"], + tailslap: ["8M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M"], + terablast: ["9M"], + thrash: ["7L1"], + thunderfang: ["9M", "8M"], + toxic: ["7M"], + trailblaze: ["9M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + wishiwashi: { + learnset: { + aquaring: ["8L36", "7L17"], + aquatail: ["8L32", "7T", "7L38"], + attract: ["8M", "7M"], + beatup: ["8M", "8L8", "7L33"], + brine: ["8M", "8L12", "7L14"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + covet: ["7T"], + dive: ["8M", "8L20", "7L30"], + doubleedge: ["8L48", "7L41"], + doubleteam: ["7M"], + earthquake: ["8M", "7M"], + endeavor: ["8L40", "7T", "7L49"], + endure: ["8M"], + facade: ["8M", "7M"], + feintattack: ["7L9"], + flipturn: ["8T"], + frustration: ["7M"], + growl: ["8L1", "7L1"], + hail: ["8M", "7M"], + helpinghand: ["8M", "8L4", "7T", "7L6"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L44", "7L54"], + icebeam: ["8M", "7M"], + irontail: ["8M", "7T"], + liquidation: ["8M"], + mist: ["8E", "7E"], + muddywater: ["8M", "7E"], + mudshot: ["8M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + scaleshot: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L24", "7L46"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + takedown: ["8E", "7L25"], + tearfullook: ["8L16", "7L22"], + toxic: ["7M"], + uproar: ["8M", "8L28"], + uturn: ["8M", "7M"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpulse: ["8E", "7T", "7E"], + watersport: ["7E"], + whirlpool: ["8M", "7E"], + }, + }, + mareanie: { + learnset: { + acidspray: ["9M", "9L40"], + afteryou: ["7T"], + attract: ["8M", "7M"], + bite: ["9L10", "8L10", "7L9"], + blizzard: ["9M", "8M", "7M"], + brine: ["8M"], + chillingwater: ["9M"], + confide: ["7M"], + covet: ["7T"], + doubleteam: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gastroacid: ["7T"], + gunkshot: ["9M", "8M", "7T"], + hail: ["8M", "7M"], + haze: ["9E", "8E", "7E"], + hiddenpower: ["7M"], + hydropump: ["9M", "8M"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T"], + infestation: ["9E", "8E", "7M"], + irondefense: ["9M", "8M", "7T"], + knockoff: ["7T"], + liquidation: ["9M", "9L35", "8M", "8L35", "7T", "7L49"], + magiccoat: ["7T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + peck: ["9L1", "8L1", "7L5"], + pinmissile: ["9L25", "8M", "8L25", "7L45"], + poisonjab: ["9M", "9L45", "8M", "8L45", "7M", "7L37"], + poisonsting: ["9L1", "8L1", "7L1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + recover: ["9L20", "8L20", "7L33"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + sludgewave: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spikecannon: ["7L29"], + spite: ["7T"], + spitup: ["9E", "8E", "7E"], + stockpile: ["9E", "8E", "7E", "7S0"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + swallow: ["9E", "8E", "7E", "7S0"], + terablast: ["9M"], + toxic: ["9L50", "8L50", "7M", "7L21", "7S0"], + toxicspikes: ["9M", "9L30", "8M", "8L30", "7L13"], + venomdrench: ["8M", "8L40", "7L41"], + venoshock: ["9M", "9L15", "8M", "8L15", "7M", "7L25"], + waterpulse: ["9M", "7T"], + wideguard: ["9L5", "8L5", "7L17"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, isHidden: true, moves: ["toxic", "stockpile", "swallow"], pokeball: "cherishball"}, + ], + }, + toxapex: { + learnset: { + acidspray: ["9M", "9L42"], + afteryou: ["7T"], + attract: ["8M", "7M"], + banefulbunker: ["9L0", "8L0", "7L1"], + bite: ["9L1", "8L1", "7L1"], + blizzard: ["9M", "8M", "7M"], + block: ["7T"], + bodyslam: ["9M"], + brine: ["8M"], + chillingwater: ["9M"], + confide: ["7M"], + covet: ["7T"], + crosspoison: ["8M"], + doubleteam: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gastroacid: ["7T"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T"], + hail: ["8M", "7M"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + icywind: ["9M", "8M", "7T"], + infestation: ["7M"], + irondefense: ["9M", "8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M"], + liquidation: ["9M", "9L35", "8M", "8L35", "7T", "7L58"], + magiccoat: ["7T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + peck: ["9L1", "8L1", "7L1"], + pinmissile: ["9L25", "8M", "8L25", "7L51"], + poisonjab: ["9M", "9L49", "8M", "8L49", "7M", "7L37"], + poisonsting: ["9L1", "8L1", "7L1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + raindance: ["9M", "8M", "7M"], + recover: ["9L20", "8L20", "7L33"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + scaryface: ["9M"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + sludgewave: ["8M", "7M"], + smackdown: ["7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spikecannon: ["7L29"], + spite: ["7T"], + substitute: ["9M", "8M", "7M"], + surf: ["9M", "8M", "7M"], + swagger: ["7M"], + terablast: ["9M"], + toxic: ["9L56", "8L56", "7M", "7L21"], + toxicspikes: ["9M", "9L30", "8M", "8L30", "7L1"], + venomdrench: ["8M", "8L42", "7L44"], + venoshock: ["9M", "9L15", "8M", "8L15", "7M", "7L25"], + waterpulse: ["9M", "7T"], + wideguard: ["9L1", "8L1", "7L17"], + }, + }, + mudbray: { + learnset: { + attract: ["8M", "7M"], + bide: ["7L22"], + bodyslam: ["9M", "8M", "7E"], + bulldoze: ["9M", "9L12", "8M", "8L12", "7M", "7L10"], + closecombat: ["9M", "8M", "7E"], + confide: ["7M"], + counter: ["9L24", "8L24", "7L36"], + doubleedge: ["9E", "8E", "7E"], + doublekick: ["9L8", "8L8", "7L15"], + doubleteam: ["7M"], + earthpower: ["9M", "8M", "7T"], + earthquake: ["9M", "9L36", "8M", "8L36", "7M", "7L38"], + endeavor: ["9E", "7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fissure: ["9E", "8E"], + frustration: ["7M"], + heavyslam: ["9M", "9L32", "8M", "8L32", "7L31"], + hiddenpower: ["7M"], + highhorsepower: ["9L28", "8M", "8L28", "7L24"], + irondefense: ["9M", "9L4", "8M", "8L4", "7T", "7L29"], + ironhead: ["9M", "8M", "7T"], + lowkick: ["9M", "8M", "7T"], + lowsweep: ["9M", "8M", "7M"], + magnitude: ["7E"], + megakick: ["9L40", "8M", "8L40", "7L43"], + mudbomb: ["7E"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + mudsport: ["7L3"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + roar: ["9E", "8E", "7M"], + rockslide: ["9M", "8M", "7M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M"], + rototiller: ["7L8"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + sandtomb: ["8M"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["9E", "8E"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8M", "7T"], + stomp: ["9L16", "8L16", "7L17"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + strength: ["9L20", "8L20"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + superpower: ["9L44", "8M", "8L44", "7T", "7L45"], + swagger: ["7M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + }, + }, + mudsdale: { + learnset: { + attract: ["8M", "7M"], + bide: ["7L22"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "9L12", "8M", "8L12", "7M", "7L1"], + closecombat: ["9M", "8M"], + confide: ["7M"], + counter: ["9L24", "8L24", "7L42"], + doublekick: ["9L1", "8L1", "7L15"], + doubleteam: ["7M"], + earthpower: ["9M", "8M", "7T"], + earthquake: ["9M", "9L40", "8M", "8L40", "7M", "7L47"], + endeavor: ["7T"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + frustration: ["7M"], + gigaimpact: ["9M", "8M", "7M"], + heavyslam: ["9M", "9L34", "8M", "8L34", "7L34"], + hiddenpower: ["7M"], + highhorsepower: ["9L28", "8M", "8L28", "7L24"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1", "7T", "7L29"], + ironhead: ["9M", "8M", "7T"], + lashout: ["8T"], + lowkick: ["9M", "8M", "7T"], + lowsweep: ["9M", "8M", "7M"], + megakick: ["9L46", "8M", "8L46", "7L55"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9L1", "8L1", "7L1"], + mudsport: ["7L1"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + revenge: ["8M"], + roar: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M", "7M"], + rototiller: ["7L1"], + round: ["8M", "7M"], + sandstorm: ["9M", "8M", "7M"], + sandtomb: ["8M"], + scaryface: ["9M", "8M"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["9M", "8M", "7T"], + stomp: ["9L16", "8L16", "7L17"], + stompingtantrum: ["9M", "8M", "7T"], + stoneedge: ["9M"], + strength: ["9L20", "8L20"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + superpower: ["9L52", "8M", "8L52", "7T", "7L60"], + swagger: ["7M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + }, + encounters: [ + {generation: 7, level: 29}, + ], + }, + dewpider: { + learnset: { + aquaring: ["8L16", "7L24"], + attract: ["8M", "7M"], + aurorabeam: ["7E"], + bite: ["8L8", "7L21"], + blizzard: ["8M", "7M"], + bubble: ["7L1"], + bubblebeam: ["8L12", "7L16"], + bugbite: ["8L4", "7T", "7L13"], + bugbuzz: ["8M"], + confide: ["7M"], + crunch: ["8M", "8L24", "7L32"], + doubleteam: ["7M"], + endure: ["8M"], + entrainment: ["8L32", "7L48"], + facade: ["8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigadrain: ["8M", "7T"], + headbutt: ["8L20"], + hiddenpower: ["7M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + infestation: ["8L1", "7M", "7L5"], + irondefense: ["8M", "7T"], + leechlife: ["8M", "8L44", "7M", "7L29"], + liquidation: ["8M", "8L40", "7T", "7L45"], + lunge: ["8L36", "7L37"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + mirrorcoat: ["8L48", "7L40"], + poisonjab: ["8M", "7M"], + powersplit: ["8E", "7E"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scald: ["8M", "7M"], + signalbeam: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L28"], + spiderweb: ["7L8"], + spitup: ["8E", "7E"], + stickyweb: ["8E", "7E"], + stockpile: ["8E", "7E"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + waterfall: ["8M", "7M"], + watergun: ["8L1"], + waterpulse: ["7T"], + watersport: ["7L1"], + wonderroom: ["8M", "7T"], + xscissor: ["8M", "7M"], + }, + }, + araquanid: { + learnset: { + aquaring: ["8L16", "7L26"], + attract: ["8M", "7M"], + bite: ["8L1", "7L21"], + blizzard: ["8M", "7M"], + bubble: ["7L1"], + bubblebeam: ["8L12", "7L16"], + bugbite: ["8L1", "7T", "7L1"], + bugbuzz: ["8M"], + confide: ["7M"], + crunch: ["8M", "8L26", "7L38"], + dive: ["8M"], + doubleteam: ["7M"], + endure: ["8M"], + entrainment: ["8L38", "7L62"], + facade: ["8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigadrain: ["8M", "7T"], + headbutt: ["8L20"], + hiddenpower: ["7M"], + hydropump: ["8M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + infestation: ["8L1", "7M", "7L1"], + irondefense: ["8M", "7T"], + laserfocus: ["7T"], + leechlife: ["8M", "8L56", "7M", "7L33"], + liquidation: ["8M", "8L50", "7T", "7L57"], + lunge: ["8L44", "7L45"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + mirrorcoat: ["8L62", "7L50"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + signalbeam: ["7T"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L32", "7L1"], + spiderweb: ["7L1"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + toxic: ["7M"], + waterfall: ["8M", "7M"], + watergun: ["8L1"], + waterpulse: ["7T"], + wideguard: ["8L1", "7L1"], + wonderroom: ["8M", "7T"], + xscissor: ["8M", "7M"], + }, + }, + araquanidtotem: { + learnset: { + aquaring: ["7L26"], + attract: ["7M"], + bite: ["7L21", "7S0"], + blizzard: ["7M"], + bubble: ["7L1"], + bubblebeam: ["7L16", "7S0"], + bugbite: ["7T", "7L1", "7S0"], + confide: ["7M"], + crunch: ["7L38"], + doubleteam: ["7M"], + entrainment: ["7L62"], + facade: ["7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigadrain: ["7T"], + hiddenpower: ["7M"], + icebeam: ["7M"], + icywind: ["7T"], + infestation: ["7M", "7L1"], + irondefense: ["7T"], + laserfocus: ["7T"], + leechlife: ["7M", "7L33"], + liquidation: ["7T", "7L57"], + lunge: ["7L45"], + magiccoat: ["7T"], + magicroom: ["7T"], + mirrorcoat: ["7L50"], + poisonjab: ["7M"], + protect: ["7M"], + raindance: ["7M"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + scald: ["7M"], + signalbeam: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + soak: ["7L1"], + spiderweb: ["7L1", "7S0"], + substitute: ["7M"], + surf: ["7M"], + swagger: ["7M"], + toxic: ["7M"], + waterfall: ["7M"], + waterpulse: ["7T"], + wideguard: ["7L1"], + wonderroom: ["7T"], + xscissor: ["7M"], + }, + eventData: [ + {generation: 7, level: 25, perfectIVs: 3, moves: ["spiderweb", "bugbite", "bubblebeam", "bite"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + fomantis: { + learnset: { + aromatherapy: ["8E", "7E"], + attract: ["8M", "7M"], + bugbite: ["7T"], + bulletseed: ["9M", "8M"], + confide: ["7M"], + defog: ["9E", "8E", "7T", "7E"], + doubleteam: ["7M"], + dualchop: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + furycutter: ["9L1", "8L1", "7L1"], + gigadrain: ["9M", "8M", "7T", "7E"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + growth: ["9L5", "8L5", "7L14"], + hiddenpower: ["7M"], + ingrain: ["9L10", "8L10", "7L19"], + leafage: ["9L1", "8L1", "7L5"], + leafblade: ["9L40", "8M", "8L40", "7L23"], + leafstorm: ["9M", "8M", "7E"], + leechlife: ["9M", "8M", "7M"], + magicalleaf: ["9M", "8M"], + naturepower: ["7M"], + payback: ["8M", "7M"], + poisonjab: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + razorleaf: ["9L15", "8L15", "7L10"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + signalbeam: ["7T"], + slash: ["9L25", "8L25", "7L32"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "9L50", "8M", "8L50", "7M", "7L41"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "9L45", "8M", "8L45", "7M", "7L46"], + swagger: ["7M"], + sweetscent: ["9L20", "8L20", "7L37"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L35", "8L35", "7T", "7L28"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + weatherball: ["8M", "7E"], + worryseed: ["9E", "8E", "7T"], + xscissor: ["9M", "9L30", "8M", "8L30", "7M"], + }, + }, + lurantis: { + learnset: { + aerialace: ["7M"], + attract: ["8M", "7M"], + brickbreak: ["9M", "8M", "7M"], + bugbite: ["7T"], + bulletseed: ["9M", "8M"], + confide: ["7M"], + crosspoison: ["8M"], + defog: ["7T"], + doubleteam: ["7M"], + dualchop: ["8L1", "7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + falseswipe: ["9M", "8M", "7M"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + furycutter: ["9L1", "8L1", "7L1"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L1", "8L1", "7L1"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + ingrain: ["9L1", "8L1", "7L19"], + knockoff: ["7T"], + laserfocus: ["7T"], + leafage: ["9L1", "8L1", "7L1"], + leafblade: ["9L44", "8M", "8L44", "7L23"], + leafstorm: ["9M", "8M"], + leechlife: ["9M", "8M", "7M"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M", "8M"], + naturepower: ["7M"], + nightslash: ["9L1", "8L1", "7L1"], + payback: ["8M", "7M"], + petalblizzard: ["9L0", "8L0", "7L1"], + poisonjab: ["9M", "8M", "7M"], + pollenpuff: ["9M"], + protect: ["9M", "8M", "7M"], + psychocut: ["8M"], + raindance: ["9M"], + razorleaf: ["9L15", "8L15", "7L1"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["9M"], + seedbomb: ["9M", "8M", "7T"], + signalbeam: ["7T"], + slash: ["9L25", "8L25", "7L32"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "9L1", "8M", "8L1", "7M"], + solarblade: ["9L63", "8M", "8L63", "7L47"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "9L51", "8M", "8L51", "7M", "7L55"], + superpower: ["8M", "7T"], + swagger: ["7M"], + sweetscent: ["9L20", "8L20", "7L40"], + swordsdance: ["9M", "8M", "7M"], + synthesis: ["9L37", "8L37", "7T", "7L28"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + weatherball: ["8M"], + worryseed: ["7T"], + xscissor: ["9M", "9L30", "8M", "8L30", "7M", "7L1"], + }, + }, + lurantistotem: { + learnset: { + aerialace: ["7M"], + attract: ["7M"], + brickbreak: ["7M"], + bugbite: ["7T"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + dualchop: ["7T"], + energyball: ["7M"], + facade: ["7M"], + falseswipe: ["7M"], + fling: ["7M"], + frustration: ["7M"], + furycutter: ["7L1"], + gigadrain: ["7T"], + gigaimpact: ["7M"], + grassknot: ["7M"], + growth: ["7L1", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + ingrain: ["7L19", "7S0"], + knockoff: ["7T"], + laserfocus: ["7T"], + leafage: ["7L1"], + leafblade: ["7L23", "7S0"], + leechlife: ["7M"], + lowsweep: ["7M"], + naturepower: ["7M"], + nightslash: ["7L1"], + payback: ["7M"], + petalblizzard: ["7L1"], + poisonjab: ["7M"], + protect: ["7M"], + razorleaf: ["7L1"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + seedbomb: ["7T"], + signalbeam: ["7T"], + slash: ["7L32"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + solarblade: ["7L47"], + substitute: ["7M"], + sunnyday: ["7M", "7L55"], + superpower: ["7T"], + swagger: ["7M"], + sweetscent: ["7L40"], + swordsdance: ["7M"], + synthesis: ["7T", "7L28", "7S0"], + toxic: ["7M"], + worryseed: ["7T"], + xscissor: ["7M", "7L1"], + }, + eventData: [ + {generation: 7, level: 30, perfectIVs: 3, moves: ["growth", "ingrain", "leafblade", "synthesis"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + morelull: { + learnset: { + absorb: ["8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["8M", "7E"], + astonish: ["8L1", "7L4"], + attract: ["8M", "7M"], + confide: ["7M"], + confuseray: ["8L4", "7L25"], + dazzlinggleam: ["8M", "8L32", "7M"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + dreameater: ["8L44", "7M", "7L43"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M"], + flash: ["7L8"], + frustration: ["7M"], + gigadrain: ["8M", "8L28", "7T", "7L29"], + grassknot: ["8M", "7M"], + growth: ["8E", "7E"], + hiddenpower: ["7M"], + ingrain: ["8L8", "7L22"], + leechseed: ["8E", "7E"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + megadrain: ["8L12", "7L15"], + moonblast: ["8L40", "7L39"], + moonlight: ["8L20", "7L11"], + naturepower: ["7M"], + poisonpowder: ["8E", "7E"], + pollenpuff: ["8M"], + protect: ["8M", "7M"], + recycle: ["7T"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["8M", "7T"], + signalbeam: ["7T"], + sleeppowder: ["8L16", "7L18"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spore: ["8L36", "7L36"], + spotlight: ["7L46"], + strengthsap: ["8L25", "7L32"], + stunspore: ["8E", "7E"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + synthesis: ["7T"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + wonderroom: ["8M", "7T"], + worryseed: ["7T"], + }, + }, + shiinotic: { + learnset: { + absorb: ["8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["8M"], + astonish: ["8L1", "7L1"], + attract: ["8M", "7M"], + chargebeam: ["7M"], + confide: ["7M"], + confuseray: ["8L1", "7L26"], + dazzlinggleam: ["8M", "8L38", "7M"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + drainpunch: ["8M"], + dreameater: ["8L56", "7M", "7L49"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M"], + flash: ["7L1"], + frustration: ["7M"], + gigadrain: ["8M", "8L32", "7T", "7L31"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + ingrain: ["8L1", "7L1"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + megadrain: ["8L12", "7L15"], + moonblast: ["8L50", "7L44"], + moonlight: ["8L20", "7L11"], + naturepower: ["7M"], + pollenpuff: ["8M"], + protect: ["8M", "7M"], + raindance: ["8M"], + recycle: ["7T"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["8M", "7T"], + signalbeam: ["7T"], + sleeppowder: ["8L16", "7L18"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spore: ["8L44", "7L40"], + spotlight: ["7L53"], + strengthsap: ["8L27", "7L35"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + synthesis: ["7T"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + weatherball: ["8M"], + wonderroom: ["8M", "7T"], + worryseed: ["7T"], + }, + }, + salandit: { + learnset: { + acidspray: ["9M"], + agility: ["9M"], + attract: ["8M", "7M"], + beatup: ["8M"], + belch: ["9E", "8E", "7E"], + confide: ["7M"], + covet: ["7T"], + doubleslap: ["7L21"], + doubleteam: ["7M"], + dragonclaw: ["9M", "8M", "7M"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "7T", "7L48"], + dragonrage: ["7L13"], + ember: ["9L10", "8L10", "7L5"], + endeavor: ["9L55", "8L60"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["9E", "8E", "7E"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M"], + flameburst: ["7L24"], + flamecharge: ["7M"], + flamethrower: ["9M", "9L45", "8M", "8L50", "7M", "7L40"], + flareblitz: ["9M"], + fling: ["9M", "8M", "7M"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M"], + gunkshot: ["9M", "8M", "7T"], + heatwave: ["9M", "8M", "7T"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + incinerate: ["9L30", "8L30"], + irontail: ["8M", "7T"], + knockoff: ["7T", "7E"], + leechlife: ["9M", "8M", "7M"], + mudslap: ["9M", "9E", "8E"], + nastyplot: ["9M", "9L25", "8M", "8L25", "7L32"], + overheat: ["9M", "8M", "7M"], + payback: ["8M", "7M"], + poisonfang: ["9L15", "8L15"], + poisongas: ["9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + poisontail: ["9M"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + sandattack: ["9E", "8E", "7E"], + scaleshot: ["8T"], + scaryface: ["9M"], + scratch: ["9L1", "8L1", "7L1"], + shadowclaw: ["9M", "8M", "7M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + sludgewave: ["8M", "7M"], + smog: ["9L5", "8L5", "7L16"], + snatch: ["7T", "7E"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + sweetscent: ["9L20", "8L20", "7L8"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M"], + torment: ["7M"], + toxic: ["9L50", "8L55", "7M", "7L29"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L45", "7L45"], + venoshock: ["9M", "9L35", "8M", "8L35", "7M", "7L37"], + willowisp: ["9M", "8M", "7M"], + }, + }, + salazzle: { + learnset: { + acidspray: ["9M"], + acrobatics: ["9M", "8M", "7M"], + agility: ["9M"], + attract: ["8M", "7M"], + beatup: ["8M"], + bodyslam: ["9M"], + breakingswipe: ["8M"], + captivate: ["7L1"], + confide: ["7M"], + corrosivegas: ["8T"], + covet: ["7T"], + crosspoison: ["8M"], + disable: ["9L1", "8L1", "7L1"], + doubleslap: ["7L21"], + doubleteam: ["7M"], + dragonclaw: ["9M", "8M", "7M"], + dragondance: ["9M", "8M"], + dragonpulse: ["9M", "9L44", "8M", "8L44", "7T", "7L56"], + dragonrage: ["7L13"], + dragontail: ["7M"], + ember: ["9L1", "8L1", "7L1"], + encore: ["9M", "9L1", "8M", "8L1", "7L1"], + endeavor: ["9L1", "8L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + fakeout: ["7S0"], + faketears: ["9M", "8M"], + fireblast: ["9M", "8M", "7M"], + firefang: ["9M"], + firelash: ["9L0", "8L0"], + flameburst: ["7L24"], + flamecharge: ["7M"], + flamethrower: ["9M", "9L51", "8M", "8L58", "7M", "7L44", "7S0"], + flareblitz: ["9M", "8M"], + fling: ["9M", "8M", "7M"], + foulplay: ["9M", "8M", "7T"], + frustration: ["7M"], + gigaimpact: ["9M"], + gunkshot: ["9M", "8M", "7T"], + heatwave: ["9M", "8M", "7T"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + incinerate: ["9L30", "8L30"], + irontail: ["8M", "7T"], + knockoff: ["9L1", "8L1", "7T"], + laserfocus: ["7T"], + leechlife: ["9M", "8M", "7M"], + mudslap: ["9M"], + nastyplot: ["9M", "9L25", "8M", "8L25", "7L32"], + overheat: ["9M", "8M", "7M"], + payback: ["8M", "7M"], + poisonfang: ["9L15", "8L15"], + poisongas: ["9L1", "8L1", "7L1"], + poisonjab: ["9M", "8M", "7M"], + poisontail: ["9M"], + pound: ["9L1", "8L1", "7L1"], + protect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scaleshot: ["8T"], + scaryface: ["9M"], + scratch: ["9L1", "8L1"], + shadowclaw: ["9M", "8M", "7M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M", "7S0"], + sludgewave: ["8M", "7M"], + smog: ["9L1", "8L1", "7L16"], + snatch: ["7T"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["9L1", "8L1", "7M", "7L1"], + sweetscent: ["9L20", "8L20", "7L1"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M"], + torment: ["9L1", "8L1", "7M", "7L1"], + toxic: ["9L58", "8L65", "7M", "7L29", "7S0"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + venomdrench: ["8M", "8L51", "7L51"], + venoshock: ["9M", "9L37", "8M", "8L37", "7M", "7L39"], + willowisp: ["9M", "8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["fakeout", "toxic", "sludgebomb", "flamethrower"], pokeball: "cherishball"}, + ], + encounters: [ + {generation: 7, level: 16}, + ], + }, + salazzletotem: { + learnset: { + acrobatics: ["7M"], + attract: ["7M"], + captivate: ["7L1"], + confide: ["7M"], + covet: ["7T"], + disable: ["7L1"], + doubleslap: ["7L21", "7S0"], + doubleteam: ["7M"], + dragonclaw: ["7M"], + dragonpulse: ["7T", "7L56"], + dragonrage: ["7L13"], + dragontail: ["7M"], + ember: ["7L1"], + encore: ["7L1"], + facade: ["7M"], + fireblast: ["7M"], + flameburst: ["7L24", "7S0"], + flamecharge: ["7M"], + flamethrower: ["7M", "7L44"], + fling: ["7M"], + foulplay: ["7T"], + frustration: ["7M"], + gunkshot: ["7T"], + heatwave: ["7T"], + helpinghand: ["7T"], + hiddenpower: ["7M"], + irontail: ["7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leechlife: ["7M"], + nastyplot: ["7L32"], + overheat: ["7M"], + payback: ["7M"], + poisongas: ["7L1"], + poisonjab: ["7M"], + pound: ["7L1"], + protect: ["7M"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + shadowclaw: ["7M"], + sleeptalk: ["7M"], + sludgebomb: ["7M"], + sludgewave: ["7M"], + smog: ["7L16", "7S0"], + snatch: ["7T"], + snore: ["7T"], + substitute: ["7M"], + swagger: ["7M", "7L1"], + sweetscent: ["7L1"], + taunt: ["7M"], + thief: ["7M"], + torment: ["7M", "7L1"], + toxic: ["7M", "7L29", "7S0"], + venomdrench: ["7L51"], + venoshock: ["7M", "7L39"], + willowisp: ["7M"], + }, + eventData: [ + {generation: 7, level: 30, perfectIVs: 3, moves: ["smog", "doubleslap", "flameburst", "toxic"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + stufful: { + learnset: { + aerialace: ["7M"], + attract: ["8M", "7M"], + babydolleyes: ["8L4", "7L10"], + bide: ["7L5"], + bind: ["7T"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "8L12", "7M", "7L14"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + charm: ["8M"], + coaching: ["8T"], + confide: ["7M"], + defensecurl: ["8E"], + doubleedge: ["8L44", "7L46"], + doubleteam: ["7M"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + endure: ["8M", "8L16", "7E"], + facade: ["8M", "7M"], + flail: ["8L28", "7L19"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + forcepalm: ["8E", "7E"], + frustration: ["7M"], + hammerarm: ["8L32", "7L32"], + hiddenpower: ["7M"], + icepunch: ["8M", "7T", "7E"], + ironhead: ["8M", "7T"], + leer: ["8L1", "7L1"], + lowsweep: ["8M", "7M"], + megakick: ["8M", "7E"], + megapunch: ["8M"], + painsplit: ["8L40", "7T", "7L41"], + payback: ["8M", "8L8", "7M", "7L23"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roleplay: ["7T"], + rollout: ["8E"], + round: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + stomp: ["8E"], + stompingtantrum: ["8M", "7T", "7E"], + strength: ["8L20"], + substitute: ["8M", "7M"], + superpower: ["8M", "8L48", "7T", "7L50"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + takedown: ["8L24", "7L28"], + taunt: ["8M", "7M"], + thrash: ["8L36", "7L37"], + thunderpunch: ["8M", "7T", "7E"], + toxic: ["7M"], + wideguard: ["7E"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + }, + bewear: { + learnset: { + aerialace: ["7M"], + attract: ["8M", "7M"], + babydolleyes: ["8L1", "7L10", "7S0"], + bide: ["7L5"], + bind: ["8L0", "7T", "7L1", "7S0"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "8L12", "7M", "7L14", "7S0"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + charm: ["8M"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M"], + darkestlariat: ["8M"], + doubleedge: ["8L54", "7L56"], + doubleteam: ["7M"], + dragonclaw: ["8M", "7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + endure: ["8M", "8L16"], + facade: ["8M", "7M"], + flail: ["8L30", "7L19"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + hammerarm: ["8L36", "7L36"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M"], + icepunch: ["8M", "7T"], + ironhead: ["8M", "7T"], + leer: ["8L1", "7L1"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + painsplit: ["8L48", "7T", "7L49"], + payback: ["8M", "8L1", "7M", "7L23"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + stompingtantrum: ["8M", "7T"], + strength: ["8L20"], + substitute: ["8M", "7M"], + superpower: ["8M", "8L60", "7T", "7L62", "7S0"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + takedown: ["8L24", "7L30"], + taunt: ["8M", "7M"], + thrash: ["8L42", "7L43"], + thunderpunch: ["8M", "7T"], + toxic: ["7M"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, gender: "F", isHidden: true, moves: ["babydolleyes", "brutalswing", "superpower", "bind"], pokeball: "cherishball"}, + ], + }, + bounsweet: { + learnset: { + acupressure: ["9E", "8E", "7E"], + aromatherapy: ["8L36"], + aromaticmist: ["9L32", "8L32", "7L33"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + bulletseed: ["9M"], + charm: ["9M", "8M", "7E"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["9M", "8M", "7M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endeavor: ["9E", "8E", "7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + feint: ["7E"], + flail: ["9L24", "8L24", "7L29"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grasswhistle: ["7E"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + leafstorm: ["9M"], + lightscreen: ["9M", "8M", "7M"], + magicalleaf: ["9M", "9L20", "8M", "8L20", "7L21"], + naturepower: ["7M"], + playnice: ["9L4", "8L4", "7L5"], + playrough: ["9M", "8M", "7E"], + protect: ["9M", "8M", "7M"], + rapidspin: ["9L8", "8L8", "7L9"], + razorleaf: ["9L12", "8L12", "7L13"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + splash: ["9L1", "8L1", "7L1"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + sweetscent: ["9L16", "8L16", "7L17"], + swift: ["9M"], + synthesis: ["9E", "8E", "7T", "7E"], + takedown: ["9M"], + teeterdance: ["9L28", "8L28", "7L25"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + worryseed: ["7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + steenee: { + learnset: { + aromatherapy: ["8L46", "7L41"], + aromaticmist: ["9L40", "8L40", "7L33"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + bulletseed: ["9M"], + captivate: ["7L37"], + charm: ["9M", "8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["9M", "8M", "7M"], + doubleslap: ["7L1", "7S0"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + knockoff: ["7T"], + leafstorm: ["9M", "9L46", "8M", "8L52", "7L45"], + lightscreen: ["9M", "8M", "7M"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M", "9L22", "8M", "8L22", "7L21", "7S0"], + naturepower: ["7M"], + payback: ["8M", "7M"], + playnice: ["9L1", "8L1", "7L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M", "7M"], + rapidspin: ["9L1", "8L1", "7L1"], + razorleaf: ["9L1", "8L1", "7L1"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + splash: ["9L1", "8L1", "7L1"], + stomp: ["9L28", "8L28", "7L29"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + sweetscent: ["9L16", "8L16", "7L17", "7S0"], + swift: ["9M"], + synthesis: ["7T"], + takedown: ["9M"], + teeterdance: ["9L34", "8L34", "7L25"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + worryseed: ["7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 20, nature: "Naive", abilities: ["leafguard"], moves: ["magicalleaf", "doubleslap", "sweetscent"], pokeball: "cherishball"}, + ], + }, + tsareena: { + learnset: { + acrobatics: ["9M", "8M", "7M"], + aromatherapy: ["8L46", "7L41"], + aromaticmist: ["9L40", "8L40", "7L33"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + bulletseed: ["9M"], + captivate: ["7L37"], + charm: ["9M", "8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["9M", "8M", "7M"], + doubleslap: ["7L1"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + helpinghand: ["9M", "8M", "7T"], + hiddenpower: ["7M"], + highjumpkick: ["9L58", "8L58", "7L49"], + hyperbeam: ["9M", "8M"], + knockoff: ["7T"], + laserfocus: ["7T"], + leafstorm: ["9M", "9L46", "8M", "8L52", "7L45"], + lightscreen: ["9M", "8M", "7M"], + lowkick: ["9M", "8M", "7T"], + lowsweep: ["9M", "8M", "7M"], + magicalleaf: ["9M", "9L22", "8M", "8L22", "7L21"], + megakick: ["8M"], + naturepower: ["7M"], + payback: ["8M", "7M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + powerwhip: ["9L1", "8M", "8L1", "7L53"], + protect: ["9M", "8M", "7M"], + punishment: ["7L1"], + rapidspin: ["9L1", "8L1", "7L1"], + razorleaf: ["9L1", "8L1", "7L1"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["9M", "8M", "7M"], + solarblade: ["8M"], + splash: ["9L1", "8L1", "7L1"], + stomp: ["9L28", "8L28", "7L29"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["9L1", "8L1", "7M", "7L1"], + sweetscent: ["9L16", "8L16", "7L17"], + swift: ["9M"], + synthesis: ["7T"], + takedown: ["9M"], + taunt: ["9M", "8M"], + teeterdance: ["9L34", "8L34", "7L25"], + terablast: ["9M"], + toxic: ["7M"], + trailblaze: ["9M"], + tripleaxel: ["8T"], + tropkick: ["9L0", "8L0", "7L1"], + uturn: ["9M", "8M", "7M"], + worryseed: ["7T"], + zenheadbutt: ["9M", "8M", "7T"], + }, + }, + comfey: { + learnset: { + acrobatics: ["8M", "7M"], + afteryou: ["8E", "7T", "7E"], + allyswitch: ["8M", "7T"], + amnesia: ["8M", "7E"], + aromatherapy: ["8L36", "7L43"], + attract: ["8M", "7M"], + bind: ["7T"], + bulletseed: ["8M"], + calmmind: ["8M", "7M"], + celebrate: ["7S0"], + charm: ["8M"], + confide: ["7M"], + covet: ["7T"], + dazzlinggleam: ["8M", "7M"], + defog: ["7T"], + doubleteam: ["7M"], + drainingkiss: ["8M", "8L9", "7L7", "7S0"], + echoedvoice: ["7M"], + encore: ["8M"], + endure: ["8M", "7E"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + fling: ["8M", "7M"], + floralhealing: ["8L30", "7L37"], + flowershield: ["8L12", "7L1"], + frustration: ["7M"], + gigadrain: ["8M", "7T"], + grassknot: ["8M", "8L24", "7M", "7L34"], + grassyglide: ["8T"], + grassyterrain: ["8M", "8L48", "7L46"], + growth: ["8L1", "7L13"], + healbell: ["7T"], + helpinghand: ["8M", "8L6", "7T", "7L1"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + leaftornado: ["8E"], + leechseed: ["8L21", "7L4", "7S0"], + lightscreen: ["8M", "7M"], + luckychant: ["7E"], + magicalleaf: ["8M", "8L15", "7L10", "7S0"], + magiccoat: ["7T"], + naturalgift: ["7L22"], + naturepower: ["7M"], + painsplit: ["7T"], + petalblizzard: ["8L33", "7L25"], + petaldance: ["8L45", "7L40"], + playrough: ["8M", "8L39", "7L49"], + pollenpuff: ["8M"], + protect: ["8M", "7M"], + psychup: ["7M"], + rest: ["8M", "7M"], + return: ["7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + seedbomb: ["8M", "7T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + sweetkiss: ["8L27", "7L19"], + sweetscent: ["8L42", "7L31"], + synthesis: ["8L18", "7T", "7L28"], + tailwind: ["7T"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + trickroom: ["8M", "7M"], + uturn: ["8M", "7M"], + vinewhip: ["8L3", "7L1"], + worryseed: ["8E", "7T"], + wrap: ["8L1", "7L16"], + }, + eventData: [ + {generation: 7, level: 10, nature: "Jolly", moves: ["celebrate", "leechseed", "drainingkiss", "magicalleaf"], pokeball: "cherishball"}, + ], + }, + oranguru: { + learnset: { + afteryou: ["9L5", "8L5", "7T", "7L4"], + allyswitch: ["8M", "7T", "7S1"], + attract: ["8M"], + block: ["7T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["9M", "8M", "7M"], + calmmind: ["9M", "9L10", "8M", "8L10", "7M", "7L39"], + chargebeam: ["9M", "7M"], + chillingwater: ["9M"], + confide: ["7M"], + confusion: ["9L1", "8L1", "7L1"], + covet: ["7T"], + doubleteam: ["7M"], + dreameater: ["9E", "8E", "7M"], + earthquake: ["9M", "8M", "7M"], + embargo: ["7M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + expandingforce: ["8T"], + extrasensory: ["9E", "8E", "7E"], + facade: ["9M", "8M", "7M"], + feintattack: ["7L22"], + fling: ["9M", "8M", "7M"], + focusblast: ["9M", "8M", "7M"], + foulplay: ["9M", "9L55", "8M", "8L55", "7T", "7L36", "7S1"], + frustration: ["7M"], + futuresight: ["9L60", "8M", "8L60", "7L46"], + gigaimpact: ["9M", "8M", "7M"], + gravity: ["7T"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M"], + imprison: ["9M", "8M"], + instruct: ["9L50", "8L50", "7L32", "7S0", "7S1"], + knockoff: ["7T"], + lastresort: ["9E", "8E"], + lightscreen: ["9M", "8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + nastyplot: ["9M", "9L30", "8M", "8L30", "7L25"], + naturepower: ["7M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + psybeam: ["9M"], + psychic: ["9M", "9L45", "8M", "8L45", "7M", "7L43", "7S0"], + psychicterrain: ["9M", "8M", "7E", "7S0"], + psychup: ["9L20", "8L20", "7M", "7L18"], + psyshock: ["9M", "8M", "7M"], + quash: ["9L25", "8L25", "7M", "7L11"], + raindance: ["9M", "8M", "7M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockslide: ["9M", "8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["9M"], + shadowball: ["9M", "8M", "7M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spite: ["7T"], + storedpower: ["9M", "9L15", "8M", "8L15", "7L15"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + swagger: ["7M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1", "7M", "7L8"], + telekinesis: ["7T"], + terablast: ["9M"], + terrainpulse: ["8T"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T"], + trickroom: ["9M", "9L40", "8M", "8L40", "7M", "7L50", "7S1"], + wonderroom: ["8M", "7T", "7E"], + workup: ["8M", "7M"], + yawn: ["9E", "8E"], + zenheadbutt: ["9M", "9L35", "8M", "8L35", "7T", "7L29"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, abilities: ["telepathy"], moves: ["instruct", "psychic", "psychicterrain"], pokeball: "cherishball"}, + {generation: 7, level: 50, isHidden: true, moves: ["instruct", "foulplay", "trickroom", "allyswitch"], pokeball: "pokeball"}, + ], + }, + passimian: { + learnset: { + acrobatics: ["9M", "8M", "7M"], + aerialace: ["7M"], + assurance: ["8M"], + attract: ["8M", "7M"], + batonpass: ["9M"], + beatup: ["9L15", "8M", "8L15", "7L15"], + bestow: ["7L25", "7S0"], + block: ["7T"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["9M", "9L35", "8M", "8L35", "7M", "7L32"], + bulldoze: ["9M", "8M", "7M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L50", "8M", "8L50", "7L43", "7S1"], + coaching: ["8T"], + confide: ["7M"], + counter: ["9E", "8E"], + doubleedge: ["9L45", "8L45", "7L36"], + doubleteam: ["7M"], + drainpunch: ["9M", "8M", "7T"], + earthquake: ["9M", "8M", "7M"], + electroweb: ["8M", "7T"], + endeavor: ["7T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + feint: ["9E", "8E", "7E", "7S0"], + fling: ["9M", "9L30", "8M", "8L30", "7M", "7L39", "7S0"], + focusblast: ["9M", "8M", "7M"], + focusenergy: ["9L10", "8M", "8L10", "7L11"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["9M", "9L60", "8M", "8L60", "7M", "7L50"], + grassknot: ["9M", "8M", "7M"], + gunkshot: ["9M", "8M", "7T", "7S1"], + gyroball: ["8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + ironhead: ["9M", "8M", "7T", "7E"], + irontail: ["8M", "7T"], + knockoff: ["9E", "8E", "7T", "7S1"], + laserfocus: ["7T"], + leer: ["9L1", "8L1", "7L4"], + lowkick: ["9M"], + lowsweep: ["9M", "8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + payback: ["8M", "7M"], + protect: ["9M", "8M", "7M"], + quickattack: ["9E", "8E", "7E"], + quickguard: ["9E", "8E", "7E"], + raindance: ["9M", "8M", "7M"], + rest: ["9M", "8M", "7M"], + retaliate: ["8M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["9M", "9L55", "8M", "8L55", "7L46"], + rockslide: ["9M", "8M", "7M"], + rocksmash: ["9L5", "8L5", "7L8"], + rocktomb: ["9M", "8M", "7M"], + round: ["8M", "7M"], + scaryface: ["9M", "9L20", "8M", "8L20", "7L18"], + seedbomb: ["9M", "8M", "7T"], + seismictoss: ["9E", "8E", "7E"], + shadowball: ["9M", "8M", "7M"], + shockwave: ["7T"], + sleeptalk: ["9M", "8M", "7M"], + smackdown: ["7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M", "8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + tackle: ["9L1", "8L1", "7L1"], + takedown: ["9M", "9L25", "8L25", "7L22"], + taunt: ["9M", "8M", "7M"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thrash: ["9L40", "8L40", "7L29"], + toxic: ["7M"], + trailblaze: ["9M"], + uproar: ["8M", "7T"], + uturn: ["9M", "8M", "7M", "7S1"], + vitalthrow: ["8E", "7E"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, moves: ["bestow", "fling", "feint"], pokeball: "cherishball"}, + {generation: 7, level: 50, isHidden: true, moves: ["closecombat", "uturn", "knockoff", "gunkshot"], pokeball: "pokeball"}, + ], + }, + wimpod: { + learnset: { + aquajet: ["8E", "7E"], + assurance: ["8M"], + attract: ["8M", "7M"], + bugbuzz: ["8M"], + confide: ["7M"], + defensecurl: ["8L1"], + doubleteam: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + frustration: ["7M"], + hail: ["8M", "7M"], + harden: ["8E", "7E"], + hiddenpower: ["7M"], + leechlife: ["8M", "7M"], + metalclaw: ["8E", "7E"], + mudshot: ["8M"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rollout: ["8E"], + round: ["8M", "7M"], + sandattack: ["8L1", "7L1"], + scald: ["8M", "7M"], + screech: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spikes: ["8M", "7E"], + strugglebug: ["8L1", "7L1"], + substitute: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + taunt: ["8M", "7M"], + toxic: ["7M"], + waterfall: ["8M", "7M"], + wideguard: ["8E", "7E"], + }, + }, + golisopod: { + learnset: { + aerialace: ["7M"], + assurance: ["8M"], + attract: ["8M", "7M"], + blizzard: ["8M", "7M"], + brickbreak: ["8M", "7M"], + bugbite: ["8L16", "7T", "7L10"], + bugbuzz: ["8M"], + bulkup: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M"], + darkpulse: ["8M", "7M"], + defensecurl: ["8L1"], + dive: ["8M"], + doubleteam: ["7M"], + drillrun: ["8M", "7T"], + dualchop: ["7T"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + firstimpression: ["8L0", "7L1"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + frostbreath: ["7M"], + frustration: ["7M"], + furycutter: ["8L8", "7L1"], + gigaimpact: ["8M", "7M"], + hail: ["8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + irondefense: ["8M", "8L20", "7T", "7L36"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + leechlife: ["8M", "7M"], + liquidation: ["8M", "8L44", "7T", "7L48"], + muddywater: ["8M"], + mudshot: ["8M", "8L12"], + painsplit: ["7T"], + payback: ["8M", "7M"], + pinmissile: ["8M", "8L36", "7L41"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + psychup: ["7M"], + raindance: ["8M", "7M"], + razorshell: ["8M", "8L32", "7L26"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + rocksmash: ["8L4", "7L1"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + sandattack: ["8L1", "7L1"], + scald: ["8M", "7M"], + screech: ["8M"], + shadowclaw: ["8M", "7M"], + skittersmack: ["8T"], + slash: ["8L28", "7L21"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + spikes: ["8M"], + spite: ["8L1", "7T", "7L13"], + strugglebug: ["8L1", "7L1"], + substitute: ["8M", "7M"], + suckerpunch: ["8L24", "7L31"], + surf: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "8L40", "7M", "7L16"], + taunt: ["8M", "7M"], + throatchop: ["8M", "7T"], + toxic: ["7M"], + venoshock: ["8M", "7M"], + waterfall: ["8M", "7M"], + waterpulse: ["7T"], + xscissor: ["8M", "7M"], + }, + }, + sandygast: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["9M", "8M", "7E"], + ancientpower: ["9E", "8E", "7E"], + astonish: ["9L5", "8L5", "7L5"], + attract: ["8M", "7M"], + block: ["7T"], + brine: ["8M"], + bulldoze: ["9M", "9L25", "8M", "8L25", "7M", "7L23"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + curse: ["9E", "8E", "7E"], + destinybond: ["9E", "8E", "7E"], + doubleteam: ["7M"], + earthpower: ["9M", "9L50", "8M", "8L50", "7T", "7L45"], + earthquake: ["9M", "8M", "7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M"], + fling: ["9M"], + frustration: ["7M"], + gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7L36"], + gravity: ["7T"], + harden: ["9L1", "8L1", "7L1"], + hex: ["9M"], + hiddenpower: ["7M"], + hypnosis: ["9L30", "8L30", "7L27"], + imprison: ["9M"], + infestation: ["7M"], + irondefense: ["9M", "9L40", "8M", "8L40", "7T", "7L32"], + megadrain: ["9L15", "8L15", "7L18"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + nightshade: ["9M"], + painsplit: ["7T"], + poltergeist: ["8T"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + raindance: ["9M"], + recycle: ["7T"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + sandattack: ["9L20", "8L20", "7L9"], + sandstorm: ["9M", "9L60", "8M", "8L60", "7M", "7L54"], + sandtomb: ["9L10", "8M", "8L10", "7L14"], + scaryface: ["9M"], + scorchingsands: ["8T"], + shadowball: ["9M", "9L45", "8M", "8L45", "7M", "7L41"], + shoreup: ["9L55", "8L55", "7L50"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M"], + snore: ["8M", "7T"], + spite: ["7T"], + spitup: ["9E", "8E", "7E"], + stealthrock: ["9M", "8M", "7T"], + stockpile: ["9E", "8E", "7E"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + swallow: ["9E", "8E", "7E"], + terablast: ["9M"], + toxic: ["7M"], + trick: ["9M", "8M", "7T"], + }, + }, + palossand: { + learnset: { + absorb: ["9L1", "8L1", "7L1"], + afteryou: ["7T"], + amnesia: ["9M", "8M"], + astonish: ["9L1", "8L1", "7L1"], + attract: ["8M", "7M"], + block: ["7T"], + bodyslam: ["9M"], + brine: ["8M"], + bulldoze: ["9M", "9L25", "8M", "8L25", "7M", "7L23"], + chillingwater: ["9M"], + confide: ["7M"], + confuseray: ["9M"], + doubleteam: ["7M"], + earthpower: ["9M", "9L54", "8M", "8L54", "7T", "7L47"], + earthquake: ["9M", "8M", "7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + facade: ["9M", "8M", "7M"], + flashcannon: ["9M"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "9L35", "8M", "8L35", "7T", "7L36"], + gigaimpact: ["9M", "8M", "7M"], + gravity: ["7T"], + harden: ["9L1", "8L1", "7L1"], + hex: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + hypnosis: ["9L30", "8L30", "7L27"], + imprison: ["9M"], + infestation: ["7M"], + irondefense: ["9M", "9L40", "8M", "8L40", "7T", "7L32"], + megadrain: ["9L15", "8L15", "7L18"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + nightshade: ["9M"], + painsplit: ["7T"], + poltergeist: ["8T"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + quash: ["7M"], + raindance: ["9M"], + recycle: ["7T"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["9M", "8M", "7M"], + rocktomb: ["9M", "8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + sandattack: ["9L20", "8L20", "7L1"], + sandstorm: ["9M", "9L68", "8M", "8L68", "7M", "7L60"], + sandtomb: ["9L1", "8M", "8L1", "7L14"], + scaryface: ["9M"], + scorchingsands: ["8T"], + shadowball: ["9M", "9L47", "8M", "8L47", "7M", "7L41"], + shoreup: ["9L61", "8L61", "7L54"], + skillswap: ["9M", "8M", "7T"], + sleeptalk: ["9M", "8M", "7M"], + sludgebomb: ["9M", "8M", "7M"], + snore: ["8M", "7T"], + spite: ["7T"], + stealthrock: ["9M", "8M", "7T"], + stoneedge: ["9M", "8M", "7M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + terablast: ["9M"], + terrainpulse: ["8T"], + toxic: ["7M"], + trick: ["9M", "8M", "7T"], + }, + }, + pyukumuku: { + learnset: { + attract: ["8M", "7M"], + batonpass: ["8M", "8L1", "7L1"], + bestow: ["7E"], + bide: ["7L1"], + block: ["7T"], + confide: ["7M"], + counter: ["8L20", "7L17"], + curse: ["8L30", "7L25"], + doubleteam: ["7M"], + endure: ["8M", "7E"], + gastroacid: ["8L35", "7T", "7L29"], + hail: ["8M", "7M"], + harden: ["8L1", "7L1"], + helpinghand: ["8M", "8L5", "7T", "7L5"], + lightscreen: ["8M", "7M"], + memento: ["8L60", "7L49"], + mirrorcoat: ["8E"], + mudsport: ["7L1"], + painsplit: ["8L40", "7T", "7L33"], + protect: ["8M", "7M"], + psychup: ["7M"], + purify: ["8L25", "7L21"], + quash: ["7M"], + raindance: ["8M", "7M"], + recover: ["8L45", "7L37"], + recycle: ["7T"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + safeguard: ["8M", "8L15", "7M", "7L13"], + screech: ["8M"], + sleeptalk: ["8M", "7M"], + soak: ["8L50", "7L41"], + spite: ["8E", "7T", "7E"], + substitute: ["8M", "7M"], + swagger: ["8E", "7M"], + taunt: ["8M", "8L10", "7M", "7L9"], + tickle: ["8E", "7E"], + toxic: ["8L55", "7M", "7L45"], + venomdrench: ["8M", "7E"], + watersport: ["7L1"], + }, + }, + typenull: { + learnset: { + aerialace: ["8L5", "7M", "7L20"], + airslash: ["8M", "8L30", "7L60", "7S1"], + confide: ["7M"], + crushclaw: ["8L25", "7L25", "7S0"], + doubleedge: ["8L55", "7L80"], + doublehit: ["8L15", "7L55", "7S1"], + doubleteam: ["7M"], + dragonclaw: ["8M", "7M"], + endure: ["8M"], + facade: ["8M", "7M"], + flamecharge: ["7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + hail: ["8M", "7M"], + healblock: ["7L85"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + icywind: ["8M", "7T"], + imprison: ["8M", "8L1", "7L15"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "8L45", "8S2", "7T", "7L50", "7S1"], + lastresort: ["7T"], + magiccoat: ["7T"], + metalsound: ["8L20", "7L45", "7S1"], + payback: ["8M", "7M"], + protect: ["8M", "7M"], + punishment: ["7L65"], + pursuit: ["7L10"], + rage: ["7L5"], + raindance: ["8M", "7M"], + razorwind: ["7L70"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + round: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scaryface: ["8M", "8L10", "7L30", "7S0"], + shadowclaw: ["8M", "7M"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + takedown: ["8L50", "8S2", "7L40", "7S0"], + terrainpulse: ["8T"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + triattack: ["8M", "8L35", "8S2", "7L75"], + uturn: ["8M", "7M"], + workup: ["8M", "7M"], + xscissor: ["8M", "8L40", "8S2", "7M", "7L35", "7S0"], + }, + eventData: [ + {generation: 7, level: 40, shiny: 1, perfectIVs: 3, moves: ["crushclaw", "scaryface", "xscissor", "takedown"], pokeball: "pokeball"}, + {generation: 7, level: 60, shiny: 1, perfectIVs: 3, moves: ["metalsound", "ironhead", "doublehit", "airslash"], pokeball: "pokeball"}, + {generation: 8, level: 50, shiny: 1, perfectIVs: 3, moves: ["triattack", "xscissor", "ironhead", "takedown"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + silvally: { + learnset: { + aerialace: ["8L1", "7M", "7L20"], + airslash: ["8M", "8L30", "7L60"], + bite: ["8L1", "7L15"], + confide: ["7M"], + crunch: ["8M", "8L45", "7L50"], + crushclaw: ["8L25", "7L25"], + defog: ["7T"], + doubleedge: ["8L55", "7L80"], + doublehit: ["8L15", "7L55"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + endure: ["8M"], + explosion: ["8L1", "7M"], + facade: ["8M", "7M"], + firefang: ["8M", "8L1", "7L1"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + flashcannon: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grasspledge: ["8T", "7T"], + hail: ["8M", "7M"], + healblock: ["7L1"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + icebeam: ["8M", "7M"], + icefang: ["8M", "8L1", "7L1"], + icywind: ["8M", "7T"], + imprison: ["8M", "8L1", "7L1"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "8L1", "7T", "7L1"], + laserfocus: ["7T"], + lastresort: ["7T"], + magiccoat: ["7T"], + metalsound: ["8L20", "7L45"], + multiattack: ["8L0", "7L1", "7S0"], + outrage: ["8M", "7T"], + partingshot: ["8L60", "7L85", "7S0"], + payback: ["8M", "7M"], + poisonfang: ["8L1", "7L1"], + protect: ["8M", "7M"], + psychicfangs: ["8M"], + punishment: ["7L65", "7S0"], + pursuit: ["7L10"], + rage: ["7L5"], + raindance: ["8M", "7M"], + razorwind: ["7L70"], + rest: ["8M", "7M"], + return: ["7M"], + reversal: ["8M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + round: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scaryface: ["8M", "8L1", "7L30", "7S0"], + selfdestruct: ["8M"], + shadowball: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + steelbeam: ["8T"], + steelwing: ["8M", "7M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + tailwind: ["7T"], + takedown: ["8L50", "7L40"], + terrainpulse: ["8T"], + thunderbolt: ["8M", "7M"], + thunderfang: ["8M", "8L1", "7L1"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + triattack: ["8M", "8L35", "7L75"], + uturn: ["8M", "7M"], + workup: ["8M", "7M"], + xscissor: ["8M", "8L40", "7M", "7L35"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 100, shiny: true, moves: ["multiattack", "partingshot", "punishment", "scaryface"], pokeball: "cherishball"}, + ], + }, + minior: { + learnset: { + acrobatics: ["7M"], + ancientpower: ["7L17"], + attract: ["7M"], + autotomize: ["7L31"], + bulldoze: ["7M"], + calmmind: ["7M"], + chargebeam: ["7M"], + confide: ["7M"], + confuseray: ["7L10"], + cosmicpower: ["7L36"], + dazzlinggleam: ["7M"], + defensecurl: ["7L3"], + doubleedge: ["7L43"], + doubleteam: ["7M"], + earthquake: ["7M"], + endeavor: ["7T"], + explosion: ["7M", "7L50"], + facade: ["7M"], + frustration: ["7M"], + gigaimpact: ["7M"], + gravity: ["7T"], + gyroball: ["7M"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + ironhead: ["7T"], + lastresort: ["7T"], + lightscreen: ["7M"], + magnetrise: ["7T"], + powergem: ["7L38"], + protect: ["7M"], + psychic: ["7M"], + psychup: ["7M"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + rockpolish: ["7M"], + rockslide: ["7M"], + rocktomb: ["7M"], + rollout: ["7L8"], + round: ["7M"], + safeguard: ["7M"], + sandstorm: ["7M"], + selfdestruct: ["7L22"], + shellsmash: ["7L45"], + sleeptalk: ["7M"], + snore: ["7T"], + solarbeam: ["7M"], + stealthrock: ["7T", "7L24"], + stoneedge: ["7M"], + substitute: ["7M"], + swagger: ["7M"], + swift: ["7L15"], + tackle: ["7L1"], + takedown: ["7L29"], + telekinesis: ["7T"], + toxic: ["7M"], + uturn: ["7M"], + zenheadbutt: ["7T"], + }, + }, + komala: { + learnset: { + acrobatics: ["9M", "7M"], + attract: ["7M"], + bodyslam: ["9M"], + brickbreak: ["9M", "7M"], + bulkup: ["9M", "7M"], + bulldoze: ["9M", "7M"], + calmmind: ["9M", "7M"], + charm: ["9M", "9E", "7E"], + confide: ["7M"], + defensecurl: ["9L1", "7L1"], + doubleteam: ["7M"], + earthquake: ["9M", "7M"], + endeavor: ["7T"], + endure: ["9M"], + facade: ["9M", "7M"], + flail: ["9L26", "7L26"], + fling: ["9M"], + frustration: ["7M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + hiddenpower: ["7M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + ironhead: ["9M", "7T"], + knockoff: ["7T"], + lastresort: ["7T"], + lowkick: ["9M"], + lowsweep: ["9M", "7M"], + metalclaw: ["9M"], + payback: ["7M"], + playrough: ["9M", "9E", "7E"], + protect: ["9M", "7M"], + psychup: ["9L36", "7M", "7L36"], + quash: ["7M"], + raindance: ["9M"], + rapidspin: ["9L11", "7L11"], + return: ["7M"], + reversal: ["9M"], + rockslide: ["9M", "7M"], + rocktomb: ["9M"], + rollout: ["9L1", "7L1"], + round: ["7M"], + seedbomb: ["9M"], + shadowclaw: ["9M", "7M"], + sing: ["9E", "7E"], + slam: ["9L21", "7L21"], + sleeptalk: ["9M", "7M"], + snore: ["7T"], + spitup: ["9L6", "7L6"], + stockpile: ["9L6", "7L6"], + stompingtantrum: ["9M", "7T"], + substitute: ["9M", "7M"], + suckerpunch: ["9L31", "7L31"], + sunnyday: ["9M", "7M"], + superpower: ["9E", "7T"], + swagger: ["7M"], + swallow: ["9L6", "7L6"], + swordsdance: ["9M", "7M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L46", "7L46"], + toxic: ["7M"], + trailblaze: ["9M"], + uturn: ["9M", "7M"], + wish: ["9E", "7E"], + woodhammer: ["9L41", "7L41"], + workup: ["7M"], + yawn: ["9L16", "7L16"], + zenheadbutt: ["9M", "7T"], + }, + }, + turtonator: { + learnset: { + attract: ["8M", "7M"], + block: ["7T"], + bodypress: ["8M"], + bodyslam: ["8M", "8L32", "7L33", "7S0"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + burningjealousy: ["8T"], + chargebeam: ["7M"], + confide: ["7M"], + curse: ["8E"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + dragonpulse: ["8M", "8L28", "7T", "7L41"], + dragontail: ["7M", "7S1"], + earthquake: ["8M", "7M"], + ember: ["8L4", "7L1"], + endeavor: ["7T"], + endure: ["8M", "8L12", "7L21"], + explosion: ["8L52", "7M", "7L53"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + firespin: ["8M", "7E"], + flail: ["8L16", "7L17"], + flamecharge: ["7M"], + flamethrower: ["8M", "8L36", "7M", "7L29", "7S0", "7S1"], + flashcannon: ["8M", "7M"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + headsmash: ["8E", "7E"], + heatcrash: ["8M"], + heatwave: ["8M", "7T"], + heavyslam: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + incinerate: ["8L20", "7L13"], + irondefense: ["8M", "8L24", "7T", "7L25"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T"], + lashout: ["8T"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "7T"], + overheat: ["8M", "8L48", "7M", "7L49"], + payback: ["8M", "7M"], + protect: ["8M", "8L8", "7M", "7L9"], + rapidspin: ["8E"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M", "7E"], + roar: ["7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + scaleshot: ["8T"], + scorchingsands: ["8T"], + shellsmash: ["8L44", "7L37"], + shelltrap: ["8L40", "7L45", "7S1"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + smog: ["8L1", "7L5"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + tackle: ["8L1", "7L1"], + taunt: ["8M", "7M"], + toxic: ["7M"], + uproar: ["8M", "7T"], + venoshock: ["8M", "7M"], + wideguard: ["8E", "7E", "7S0"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, moves: ["flamethrower", "bodyslam", "wideguard"], pokeball: "cherishball"}, + {generation: 7, level: 30, gender: "M", nature: "Brave", moves: ["flamethrower", "shelltrap", "dragontail"], pokeball: "cherishball"}, + ], + }, + togedemaru: { + learnset: { + afteryou: ["7T"], + agility: ["8M"], + assurance: ["8M"], + attract: ["8M", "7M"], + bounce: ["8M", "7T"], + charge: ["8L10", "7L13"], + chargebeam: ["7M"], + confide: ["7M"], + covet: ["7T"], + defensecurl: ["8L5", "7L5"], + disarmingvoice: ["8E", "7E"], + discharge: ["8L45", "7L29"], + doubleteam: ["7M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L50", "7L37"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + encore: ["8M", "7E"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["8E", "7E"], + fellstinger: ["8L20", "7L53"], + flail: ["8E", "7E"], + fling: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + gyroball: ["8M", "7M"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T"], + lastresort: ["7T"], + magnetrise: ["8L35", "7T", "7L25"], + nuzzle: ["8L1", "7L21"], + payback: ["8M", "7M"], + pinmissile: ["8M", "8L30", "7L45"], + poisonjab: ["8M", "7M"], + present: ["8E", "7E"], + protect: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + reversal: ["8M", "7E"], + risingvoltage: ["8T"], + roleplay: ["7T"], + rollout: ["7L9"], + round: ["8M", "7M"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spark: ["8L25", "7L17"], + spikyshield: ["8L60", "7L49"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "7M"], + superfang: ["7T"], + swagger: ["7M"], + swift: ["8M"], + tackle: ["8L1", "7L1"], + thief: ["8M", "7M"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thundershock: ["8L15", "7L1"], + thunderwave: ["8M", "7M"], + tickle: ["8E", "7E"], + toxic: ["7M"], + twineedle: ["7E"], + uturn: ["8M", "7M"], + voltswitch: ["8M", "7M"], + wildcharge: ["8M", "8L55", "7M", "7L41"], + wish: ["8E", "7E"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + zingzap: ["8L40", "7L33"], + }, + }, + togedemarutotem: { + learnset: { + afteryou: ["7T"], + attract: ["7M"], + bounce: ["7T"], + charge: ["7L13"], + chargebeam: ["7M"], + confide: ["7M"], + covet: ["7T"], + defensecurl: ["7L5"], + discharge: ["7L29", "7S0"], + doubleteam: ["7M"], + electricterrain: ["7L37"], + electroweb: ["7T"], + endeavor: ["7T"], + facade: ["7M"], + fellstinger: ["7L53"], + fling: ["7M"], + frustration: ["7M"], + gigaimpact: ["7M"], + grassknot: ["7M"], + gravity: ["7T"], + gyroball: ["7M"], + helpinghand: ["7T"], + hiddenpower: ["7M"], + ironhead: ["7T"], + irontail: ["7T"], + lastresort: ["7T"], + magnetrise: ["7T", "7L25", "7S0"], + nuzzle: ["7L21", "7S0"], + payback: ["7M"], + pinmissile: ["7L45"], + poisonjab: ["7M"], + protect: ["7M"], + reflect: ["7M"], + rest: ["7M"], + return: ["7M"], + roleplay: ["7T"], + rollout: ["7L9"], + round: ["7M"], + shockwave: ["7T"], + sleeptalk: ["7M"], + snore: ["7T"], + spark: ["7L17"], + spikyshield: ["7L49"], + substitute: ["7M"], + superfang: ["7T"], + swagger: ["7M"], + tackle: ["7L1"], + thief: ["7M"], + thunder: ["7M"], + thunderbolt: ["7M"], + thundershock: ["7L1"], + thunderwave: ["7M"], + toxic: ["7M"], + uturn: ["7M"], + voltswitch: ["7M"], + wildcharge: ["7M", "7L41"], + workup: ["7M"], + zenheadbutt: ["7T"], + zingzap: ["7L33", "7S0"], + }, + eventData: [ + {generation: 7, level: 30, perfectIVs: 3, moves: ["nuzzle", "magnetrise", "discharge", "zingzap"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + mimikyu: { + learnset: { + afteryou: ["7T"], + astonish: ["9L1", "8L1", "7L1", "7S0", "7S1"], + attract: ["8M", "7M"], + babydolleyes: ["9L18", "8L18", "7L10", "7S0"], + beatup: ["8M"], + bulkup: ["9M", "8M", "7M"], + burningjealousy: ["8T"], + chargebeam: ["7M"], + charm: ["9M", "9L48", "8M", "8L48", "7L28"], + confide: ["7M"], + confuseray: ["9M"], + copycat: ["9L1", "8L1", "7L1", "7S0", "7S1"], + covet: ["7T"], + curse: ["9E", "8E", "7E"], + darkpulse: ["9M", "8M", "7M"], + dazzlinggleam: ["9M", "8M", "7M"], + destinybond: ["9E", "8E", "7E", "7S2"], + doubleteam: ["9L12", "8L12", "7M", "7L5"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M", "7T"], + dreameater: ["7M"], + embargo: ["7M"], + endure: ["9M", "8M"], + facade: ["9M", "8M", "7M"], + feintattack: ["7L23"], + fling: ["9M", "8M", "7M"], + frustration: ["7M"], + gigadrain: ["9M", "8M", "7T"], + gigaimpact: ["9M", "8M"], + grudge: ["8E", "7E"], + hex: ["9M", "8M"], + hiddenpower: ["7M"], + honeclaws: ["9L30", "8L30", "7L41"], + hyperbeam: ["9M", "8M", "7M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["9M", "8M", "7M"], + lightscreen: ["9M", "8M", "7M"], + magicroom: ["8M", "7T"], + mimic: ["9L24", "8L24", "7L19", "7S2"], + mistyterrain: ["9M"], + nightmare: ["7E"], + nightshade: ["9M"], + painsplit: ["9L60", "8L60", "7T", "7L50"], + payback: ["8M", "7M"], + phantomforce: ["9M", "8M"], + playrough: ["9M", "9L54", "8M", "8L54", "7L46", "7S1"], + pounce: ["9M"], + protect: ["9M", "8M", "7M"], + psychic: ["9M", "8M", "7M"], + psychup: ["7M"], + raindance: ["9M"], + rest: ["9M", "8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scratch: ["9L1", "8L1", "7L1"], + screech: ["8M"], + shadowball: ["9M", "8M", "7M"], + shadowclaw: ["9M", "9L42", "8M", "8L42", "7M", "7L37"], + shadowsneak: ["9L6", "8L6", "7L14"], + slash: ["9L36", "8L36", "7L32"], + sleeptalk: ["9M", "8M", "7M"], + snatch: ["7T", "7S2"], + snore: ["8M", "7T"], + spite: ["7T"], + splash: ["9L1", "8L1", "7L1", "7S0"], + substitute: ["9M", "8M", "7M", "7S1"], + sunnyday: ["9M"], + swagger: ["7M"], + swordsdance: ["9M", "8M", "7M"], + takedown: ["9M"], + taunt: ["9M", "8M", "7M"], + telekinesis: ["7T"], + terablast: ["9M"], + thief: ["9M", "8M", "7M"], + thunder: ["9M", "8M", "7M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], + toxic: ["7M"], + trailblaze: ["9M"], + trick: ["9M", "8M", "7T", "7S2"], + trickroom: ["9M", "8M", "7M"], + willowisp: ["9M", "8M", "7M"], + woodhammer: ["9L1", "8L1", "7L1"], + workup: ["8M", "7M"], + xscissor: ["9M", "8M", "7M"], + }, + eventData: [ + {generation: 7, level: 10, moves: ["copycat", "babydolleyes", "splash", "astonish"], pokeball: "cherishball"}, + {generation: 7, level: 10, shiny: true, moves: ["astonish", "playrough", "copycat", "substitute"], pokeball: "cherishball"}, + {generation: 7, level: 50, shiny: true, moves: ["mimic", "snatch", "trick", "destinybond"], pokeball: "cherishball"}, + ], + }, + mimikyutotem: { + learnset: { + afteryou: ["7T"], + astonish: ["7L1"], + attract: ["7M"], + babydolleyes: ["7L10"], + bulkup: ["7M"], + chargebeam: ["7M"], + charm: ["7L28", "7S0"], + confide: ["7M"], + copycat: ["7L1"], + covet: ["7T"], + darkpulse: ["7M"], + dazzlinggleam: ["7M"], + doubleteam: ["7M", "7L5"], + drainpunch: ["7T"], + dreameater: ["7M"], + embargo: ["7M"], + facade: ["7M"], + feintattack: ["7L23", "7S0"], + fling: ["7M"], + frustration: ["7M"], + gigadrain: ["7T"], + hiddenpower: ["7M"], + honeclaws: ["7L41"], + hyperbeam: ["7M"], + infestation: ["7M"], + lastresort: ["7T"], + leechlife: ["7M"], + lightscreen: ["7M"], + magicroom: ["7T"], + mimic: ["7L19"], + painsplit: ["7T", "7L50"], + payback: ["7M"], + playrough: ["7L46"], + protect: ["7M"], + psychic: ["7M"], + psychup: ["7M"], + rest: ["7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + scratch: ["7L1"], + shadowball: ["7M"], + shadowclaw: ["7M", "7L37", "7S0"], + shadowsneak: ["7L14"], + slash: ["7L32", "7S0"], + sleeptalk: ["7M"], + snatch: ["7T"], + snore: ["7T"], + spite: ["7T"], + splash: ["7L1"], + substitute: ["7M"], + swagger: ["7M"], + swordsdance: ["7M"], + taunt: ["7M"], + telekinesis: ["7T"], + thief: ["7M"], + thunder: ["7M"], + thunderbolt: ["7M"], + thunderwave: ["7M"], + toxic: ["7M"], + trick: ["7T"], + trickroom: ["7M"], + willowisp: ["7M"], + woodhammer: ["7L1"], + workup: ["7M"], + xscissor: ["7M"], + }, + eventData: [ + {generation: 7, level: 40, perfectIVs: 3, moves: ["feintattack", "charm", "slash", "shadowclaw"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + bruxish: { + learnset: { + aerialace: ["7M"], + afteryou: ["7T"], + agility: ["9M"], + allyswitch: ["7T"], + aquajet: ["9L17", "7L17"], + aquatail: ["9L33", "7T", "7L33"], + astonish: ["9L4", "7L4"], + attract: ["7M"], + bite: ["9L12", "7L12"], + blizzard: ["9M", "7M"], + bulkup: ["9M", "7M"], + calmmind: ["9M", "7M"], + chillingwater: ["9M"], + confide: ["7M"], + confusion: ["9L9", "7L9"], + crunch: ["9M", "9L28", "7L28"], + disable: ["9L20", "7L20"], + doubleteam: ["7M"], + dreameater: ["7M"], + embargo: ["7M"], + endure: ["9M"], + facade: ["9M", "7M"], + fling: ["7M"], + frostbreath: ["7M"], + frustration: ["7M"], + gigaimpact: ["9M", "7M"], + hiddenpower: ["7M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M", "7M"], + icefang: ["9M", "9E", "7E"], + icywind: ["9M"], + irontail: ["7T"], + lightscreen: ["9M", "7M"], + liquidation: ["9M", "7T"], + magiccoat: ["7T"], + magicroom: ["7T"], + painsplit: ["7T"], + payback: ["7M"], + poisonfang: ["9E", "7E"], + protect: ["9M", "7M"], + psychic: ["9M", "7M"], + psychicfangs: ["9M", "9L41", "7L41"], + psychicterrain: ["9M"], + psyshock: ["9M", "9L25"], + psywave: ["7L25"], + rage: ["7E"], + raindance: ["9M", "7M"], + reflect: ["9M", "7M"], + rest: ["9M", "7M"], + return: ["7M"], + round: ["7M"], + safeguard: ["7M"], + scald: ["7M"], + scaryface: ["9M"], + screech: ["9L36", "7L36"], + signalbeam: ["7T"], + sleeptalk: ["9M", "7M"], + snatch: ["7T"], + snore: ["7T"], + substitute: ["9M", "7M"], + superfang: ["9E"], + surf: ["9M", "7M"], + swagger: ["7M"], + swordsdance: ["9M", "7M"], + synchronoise: ["7L44"], + takedown: ["9M"], + taunt: ["9M", "7M"], + telekinesis: ["7T"], + terablast: ["9M"], + torment: ["7M"], + toxic: ["7M"], + trickroom: ["9M", "7M"], + uproar: ["7T"], + venoshock: ["9M", "7M"], + waterfall: ["9M", "7M"], + watergun: ["9L1", "7L1"], + waterpulse: ["9M", "9E", "7T", "7E"], + wavecrash: ["9L44"], + wonderroom: ["7T"], + }, + }, + drampa: { + learnset: { + amnesia: ["8M"], + attract: ["8M", "7M"], + blizzard: ["8M", "7M"], + block: ["7T"], + breakingswipe: ["8M"], + bulldoze: ["8M", "7M"], + calmmind: ["8M", "7M"], + confide: ["7M"], + defog: ["7T"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonbreath: ["8L25", "7L29"], + dragonclaw: ["8M", "7M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L35", "7T", "7L41"], + dragonrage: ["7L21"], + dragonrush: ["8E", "7E"], + dragontail: ["7M"], + earthquake: ["8M", "7M"], + echoedvoice: ["8L1", "7M", "7L1", "7S0"], + endeavor: ["7T"], + endure: ["8M"], + energyball: ["8M", "7M"], + extrasensory: ["8L30", "7L37"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + flamethrower: ["8M", "7M"], + fling: ["8M", "7M"], + fly: ["8M", "8L45", "7M", "7L45"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + glare: ["8L15", "7L13"], + grassknot: ["8M", "7M"], + heatwave: ["8M", "7T"], + helpinghand: ["8M", "7T"], + hiddenpower: ["7M"], + hurricane: ["8M", "7E", "7S0"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "8L50", "7T", "7L49"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + lashout: ["8T"], + lightscreen: ["8M", "8L40", "7M", "7L17"], + mist: ["8E", "7E"], + naturalgift: ["7L25"], + naturepower: ["7M"], + outrage: ["8M", "8L55", "7T", "7L53"], + playnice: ["8L1", "7L1", "7S0"], + playrough: ["8M", "7E"], + protect: ["8M", "8L10", "7M", "7L9"], + psychup: ["7M"], + raindance: ["8M", "7M"], + razorwind: ["7E"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "8L20", "7M", "7L33"], + scaleshot: ["8T"], + shadowball: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + steelwing: ["8M", "7M"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "7T"], + surf: ["8M", "7M"], + swift: ["8M"], + tailwind: ["7T"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + tickle: ["8E"], + toxic: ["7M"], + twister: ["8L5", "7L5"], + uproar: ["8M", "7T"], + waterpulse: ["7T"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 1, shiny: 1, isHidden: true, moves: ["playnice", "echoedvoice", "hurricane"], pokeball: "cherishball"}, + ], + }, + dhelmise: { + learnset: { + absorb: ["8L1", "7L1"], + aerialace: ["7M"], + allyswitch: ["8M", "7T"], + anchorshot: ["8L52", "7L32"], + assurance: ["8M"], + astonish: ["8L4", "7L1"], + attract: ["7M"], + block: ["7T"], + bodypress: ["8M"], + brickbreak: ["8M", "7M"], + brine: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + doubleteam: ["7M"], + earthquake: ["8M", "7M"], + embargo: ["7M"], + endure: ["8M"], + energyball: ["8M", "8L56", "7M", "7L41"], + facade: ["8M", "7M"], + flashcannon: ["8M", "7M"], + frustration: ["7M"], + gigadrain: ["8M", "8L28", "7T", "7L23"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + grassyglide: ["8T"], + growth: ["8L16", "7L1"], + gyroball: ["8M", "8L20", "7M", "7L14"], + heavyslam: ["8M", "8L36", "7L50"], + helpinghand: ["8M", "7T"], + hex: ["8M"], + hiddenpower: ["7M"], + hydropump: ["8M"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + liquidation: ["8M"], + megadrain: ["8L12", "7L5"], + metalsound: ["8L48", "7L18"], + muddywater: ["8M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + phantomforce: ["8M", "8L60", "7L54"], + poltergeist: ["8T"], + powerwhip: ["8M", "8L64", "7L59"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + rapidspin: ["8L1", "7L1"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + shadowball: ["8M", "8L44", "7M", "7L36"], + shadowclaw: ["8M", "7M"], + slam: ["8L40", "7L45"], + sleeptalk: ["8M", "7M"], + sludgewave: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + solarblade: ["8M"], + spite: ["7T"], + steelroller: ["8T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + surf: ["8M", "7M"], + swagger: ["7M"], + switcheroo: ["8L24", "7L1"], + swordsdance: ["8M", "7M"], + synthesis: ["7T"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + toxic: ["7M"], + whirlpool: ["8M", "8L32", "7L27"], + wrap: ["8L8", "7L9"], + }, + }, + jangmoo: { + learnset: { + aerialace: ["7M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + bide: ["7L9"], + brickbreak: ["8M", "7M"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + counter: ["8E", "7E"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonbreath: ["8E", "7E"], + dragonclaw: ["8M", "8L32", "7M", "7L41"], + dragondance: ["8M", "8L40", "7L49"], + dragonpulse: ["8M", "7T"], + dragontail: ["8L8", "7M", "7L17"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + fling: ["8M"], + focusblast: ["8M", "7M"], + focuspunch: ["8E"], + frustration: ["7M"], + headbutt: ["8L16", "7L25"], + hiddenpower: ["7M"], + irondefense: ["8M", "8L28", "7T", "7L37"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T"], + leer: ["8L1", "7L5"], + lowkick: ["8M", "7T"], + nobleroar: ["8L36", "7L45"], + outrage: ["8M", "8L44", "7T", "7L53"], + payback: ["8M", "7M"], + protect: ["8M", "8L4", "7M", "7L13"], + rest: ["8M", "7M"], + return: ["7M"], + reversal: ["8M", "7E"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L12", "7L21"], + screech: ["8M", "8L24", "7L33"], + shadowclaw: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + taunt: ["8M", "7M"], + toxic: ["7M"], + uproar: ["8M", "7T"], + workup: ["8M", "8L20", "7M", "7L29"], + xscissor: ["8M", "7M"], + }, + }, + hakamoo: { + learnset: { + aerialace: ["7M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + autotomize: ["8L1", "7L1"], + bide: ["7L1"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + closecombat: ["8M", "8L56", "7L63"], + coaching: ["8T"], + confide: ["7M"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "8L32", "7M", "7L43"], + dragondance: ["8M", "8L44", "7L53"], + dragonpulse: ["8M", "7T"], + dragontail: ["8L1", "7M", "7L17"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + headbutt: ["8L16", "7L25"], + hiddenpower: ["7M"], + irondefense: ["8M", "8L28", "7T", "7L38"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T"], + leer: ["8L1", "7L1"], + lowkick: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + nobleroar: ["8L38", "7L48"], + outrage: ["8M", "8L50", "7T", "7L58"], + payback: ["8M", "7M"], + protect: ["8M", "8L1", "7M", "7L1"], + rest: ["8M", "7M"], + return: ["7M"], + reversal: ["8M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L12", "7L21"], + screech: ["8M", "8L24", "7L33"], + shadowclaw: ["8M", "7M"], + skyuppercut: ["7L1"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + taunt: ["8M", "7M"], + toxic: ["7M"], + uproar: ["8M", "7T"], + workup: ["8M", "8L20", "7M", "7L29"], + xscissor: ["8M", "7M"], + }, + }, + kommoo: { + learnset: { + aerialace: ["7M"], + aquatail: ["7T"], + attract: ["8M", "7M"], + aurasphere: ["8M"], + autotomize: ["8L1", "7L1"], + bellydrum: ["8L1", "7L1"], + bide: ["7L1"], + bodypress: ["8M"], + boomburst: ["8L76"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + bulldoze: ["8M", "7M"], + clangingscales: ["8L0", "7L1"], + clangoroussoul: ["8L68"], + closecombat: ["8M", "8L60", "7L75"], + coaching: ["8T"], + confide: ["7M"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "8L32", "7M", "7L43"], + dragondance: ["8M", "8L44", "7L59"], + dragonpulse: ["8M", "7T"], + dragontail: ["8L1", "7M", "7L17"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + firepunch: ["8M", "7T"], + flamethrower: ["8M", "7M"], + flashcannon: ["8M", "7M"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + headbutt: ["8L16", "7L25"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + icepunch: ["8M", "7T"], + irondefense: ["8M", "8L28", "7T", "7L38"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T"], + laserfocus: ["7T"], + leer: ["8L1", "7L1"], + lowkick: ["8M", "7T"], + megakick: ["8M"], + megapunch: ["8M"], + nobleroar: ["8L38", "7L51"], + outrage: ["8M", "8L52", "7T", "7L67"], + payback: ["8M", "7M"], + poisonjab: ["8M", "7M"], + protect: ["8M", "8L1", "7M", "7L1"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + roar: ["7M"], + rockpolish: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["8M", "7M"], + scaleshot: ["8T"], + scaryface: ["8M", "8L12", "7L21"], + screech: ["8M", "8L24", "7L33"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + skyuppercut: ["7L1"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + stealthrock: ["8M", "7T"], + stompingtantrum: ["8M", "7T"], + substitute: ["8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + tackle: ["8L1", "7L1"], + taunt: ["8M", "7M"], + thunderpunch: ["8M", "7T"], + toxic: ["7M"], + uproar: ["8M", "7T"], + waterpulse: ["7T"], + workup: ["8M", "8L20", "7M", "7L29"], + xscissor: ["8M", "7M"], + }, + encounters: [ + {generation: 7, level: 41}, + ], + }, + kommoototem: { + learnset: { + aerialace: ["7M"], + aquatail: ["7T"], + attract: ["7M"], + autotomize: ["7L1"], + bellydrum: ["7L1"], + bide: ["7L1"], + brickbreak: ["7M"], + brutalswing: ["7M"], + bulkup: ["7M"], + bulldoze: ["7M"], + clangingscales: ["7L1"], + closecombat: ["7L75"], + confide: ["7M"], + doubleteam: ["7M"], + dracometeor: ["7T"], + dragonclaw: ["7M", "7L43", "7S0"], + dragondance: ["7L59"], + dragonpulse: ["7T"], + dragontail: ["7M", "7L17"], + drainpunch: ["7T"], + dualchop: ["7T"], + earthquake: ["7M"], + echoedvoice: ["7M"], + endeavor: ["7T"], + facade: ["7M"], + falseswipe: ["7M"], + firepunch: ["7T"], + flamethrower: ["7M"], + flashcannon: ["7M"], + fling: ["7M"], + focusblast: ["7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigaimpact: ["7M"], + headbutt: ["7L25"], + hiddenpower: ["7M"], + hyperbeam: ["7M"], + hypervoice: ["7T"], + icepunch: ["7T"], + irondefense: ["7T", "7L38", "7S0"], + ironhead: ["7T"], + irontail: ["7T"], + laserfocus: ["7T"], + leer: ["7L1"], + lowkick: ["7T"], + nobleroar: ["7L51"], + outrage: ["7T", "7L67"], + payback: ["7M"], + poisonjab: ["7M"], + protect: ["7M", "7L1"], + rest: ["7M"], + return: ["7M"], + roar: ["7M"], + rockpolish: ["7M"], + rockslide: ["7M"], + rocktomb: ["7M"], + round: ["7M"], + safeguard: ["7M"], + sandstorm: ["7M"], + scaryface: ["7L21"], + screech: ["7L33", "7S0"], + shadowclaw: ["7M"], + shockwave: ["7T"], + skyuppercut: ["7L1"], + sleeptalk: ["7M"], + snore: ["7T"], + stealthrock: ["7T"], + stompingtantrum: ["7T"], + substitute: ["7M"], + superpower: ["7T"], + swagger: ["7M"], + swordsdance: ["7M"], + tackle: ["7L1"], + taunt: ["7M"], + thunderpunch: ["7T"], + toxic: ["7M"], + uproar: ["7T"], + waterpulse: ["7T"], + workup: ["7M", "7L29", "7S0"], + xscissor: ["7M"], + }, + eventData: [ + {generation: 7, level: 50, perfectIVs: 3, moves: ["workup", "screech", "irondefense", "dragonclaw"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + tapukoko: { + learnset: { + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + agility: ["8M", "8L35", "7L53", "7S0", "7S1"], + assurance: ["8M"], + bravebird: ["8M", "8L65", "8S3", "7L1"], + calmmind: ["8M", "7M"], + charge: ["8L30", "7L26"], + confide: ["7M"], + dazzlinggleam: ["8M", "7M", "7S2"], + defog: ["7T"], + discharge: ["8L45", "7L48", "7S0", "7S1"], + doubleteam: ["7M"], + echoedvoice: ["7M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L75", "7L1"], + electroball: ["8M", "7L58", "7S0", "7S1"], + electroweb: ["8M", "7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fairywind: ["8L10"], + falseswipe: ["8M", "8L15", "7M", "7L1"], + fly: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + lightscreen: ["8M", "7M"], + meanlook: ["8L50", "7L1"], + mirrormove: ["7L38"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1", "7S2"], + powerswap: ["8M", "8L70", "7L1"], + protect: ["8M", "7M"], + psychup: ["7M"], + quickattack: ["8L1", "8S3", "7L1"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M"], + return: ["7M"], + roar: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + screech: ["8M", "8L40", "7L20"], + shockwave: ["8L25", "7T", "7L14"], + skyattack: ["7T"], + skydrop: ["7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + spark: ["8L20", "7L8"], + steelwing: ["8M", "7M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M"], + taunt: ["8M", "8S3", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "8S3", "7M", "7S2"], + thunderpunch: ["8M", "7T"], + thundershock: ["8L1", "7L1"], + thunderwave: ["8M", "7M"], + torment: ["7M"], + toxic: ["7M"], + uturn: ["8M", "7M"], + voltswitch: ["8M", "7M", "7S2"], + wildcharge: ["8M", "8L60", "7M", "7L32"], + withdraw: ["8L5", "7L1"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "discharge", "agility", "electroball"]}, + {generation: 7, level: 60, shiny: true, nature: "Timid", moves: ["naturesmadness", "discharge", "agility", "electroball"], pokeball: "cherishball"}, + {generation: 7, level: 60, shiny: true, moves: ["thunderbolt", "dazzlinggleam", "voltswitch", "naturesmadness"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["thunderbolt", "quickattack", "bravebird", "taunt"]}, + ], + eventOnly: true, + }, + tapulele: { + learnset: { + allyswitch: ["8M", "7T"], + aromatherapy: ["8L10", "7L1"], + aromaticmist: ["8L30", "7L1"], + astonish: ["8L1", "7L1"], + calmmind: ["8M", "7M"], + chargebeam: ["7M"], + charm: ["8M", "8S2"], + confide: ["7M"], + confusion: ["8L1", "7L1"], + dazzlinggleam: ["8M", "7M"], + doubleteam: ["7M"], + drainingkiss: ["8M", "8L15", "7L1"], + echoedvoice: ["7M"], + endure: ["8M"], + energyball: ["8M", "7M"], + extrasensory: ["8L40", "7L48", "7S0", "7S1"], + facade: ["8M", "7M"], + flatter: ["8L25", "7L53", "7S0", "7S1"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + guardswap: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "8S2", "7T"], + meanlook: ["8L50", "7L1"], + moonblast: ["8L60", "7L58", "7S0", "7S1"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1"], + playrough: ["8M", "8S2"], + powerswap: ["8M"], + protect: ["8M", "7M"], + psybeam: ["8L20", "7L14"], + psychic: ["8M", "8S2", "7M"], + psychicterrain: ["8M", "8L75", "7L1"], + psychocut: ["8M"], + psychup: ["7M"], + psyshock: ["8M", "8L45", "7M", "7L32"], + psywave: ["7L8"], + reflect: ["8M", "7M"], + rest: ["8M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + shadowball: ["8M", "7M"], + skillswap: ["8M", "8L70", "7T", "7L26"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + speedswap: ["8M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + sweetscent: ["8L35", "7L20"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + tickle: ["8L65", "7L38"], + torment: ["7M"], + toxic: ["7M"], + withdraw: ["8L5", "7L1"], + wonderroom: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "extrasensory", "flatter", "moonblast"]}, + {generation: 7, level: 60, shiny: true, moves: ["naturesmadness", "extrasensory", "flatter", "moonblast"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["psychic", "playrough", "magicroom", "charm"]}, + ], + eventOnly: true, + }, + tapubulu: { + learnset: { + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + bulletseed: ["8M"], + calmmind: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M"], + darkestlariat: ["8M"], + dazzlinggleam: ["8M", "7M"], + disable: ["8L10", "7L1"], + dualchop: ["7T"], + echoedvoice: ["7M"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + gigadrain: ["8M", "7T", "7L14"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + grassyterrain: ["8M", "8L75", "7L1"], + guardswap: ["8M"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hornattack: ["8L30", "7L8"], + hornleech: ["8L40", "7L32"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + leafage: ["8L1", "7L1"], + leechseed: ["8L15", "7L26"], + lightscreen: ["8M", "7M"], + meanlook: ["8L50", "7L1"], + megadrain: ["8L20"], + megahorn: ["8M", "8L65", "8S2", "7L53", "7S0", "7S1"], + megapunch: ["8M"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1"], + payback: ["8M", "7M"], + powerswap: ["8M"], + protect: ["8M", "7M"], + psychup: ["7M"], + reflect: ["8M", "7M"], + rest: ["8M"], + return: ["7M"], + revenge: ["8M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocksmash: ["8L1"], + rocktomb: ["8M", "7M"], + rototiller: ["7L38"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["8M", "8L35", "8S2", "7L20"], + seedbomb: ["8M", "7T"], + skullbash: ["8L70", "7L58", "7S0", "7S1"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + stoneedge: ["8M", "7M"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + superpower: ["8M", "8S2", "7T", "7L1"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + synthesis: ["7T"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + torment: ["7M"], + toxic: ["7M"], + whirlwind: ["8L25", "7L1"], + withdraw: ["8L5", "7L1"], + woodhammer: ["8L60", "8S2", "7L1"], + workup: ["8M", "7M"], + worryseed: ["7T"], + zenheadbutt: ["8M", "8L45", "7T", "7L48", "7S0", "7S1"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "zenheadbutt", "megahorn", "skullbash"]}, + {generation: 7, level: 60, shiny: true, moves: ["naturesmadness", "zenheadbutt", "megahorn", "skullbash"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["superpower", "megahorn", "woodhammer", "scaryface"]}, + ], + eventOnly: true, + }, + tapufini: { + learnset: { + aquaring: ["8L15", "7L53", "7S0", "7S1"], + blizzard: ["8M", "7M"], + brine: ["8M", "8L25", "8S2", "7L32"], + calmmind: ["8M", "7M"], + confide: ["7M"], + dazzlinggleam: ["8M", "7M"], + defog: ["8L30", "7T", "7L38"], + disarmingvoice: ["8L1"], + dive: ["8M"], + doubleteam: ["7M"], + drainingkiss: ["8M"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + guardswap: ["8M"], + haze: ["8L10", "7L1"], + healpulse: ["8L35", "7L1"], + hiddenpower: ["7M"], + hydropump: ["8M", "8L65", "7L58", "7S0", "7S1"], + hyperbeam: ["8M", "7M"], + icebeam: ["8M", "7M"], + icepunch: ["8M", "7T"], + icywind: ["8M", "7T"], + irondefense: ["8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + meanlook: ["8L50", "7L1"], + mist: ["8L10", "7L1"], + mistyterrain: ["8M", "8L75", "7L1"], + moonblast: ["8L60", "8S2", "7L1"], + muddywater: ["8M", "8L45", "7L48", "7S0", "7S1"], + naturepower: ["7M"], + naturesmadness: ["8L55", "7L43", "7S0", "7S1"], + playrough: ["8M"], + protect: ["8M", "7M"], + psychup: ["7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + refresh: ["7L26"], + rest: ["8M"], + return: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scald: ["8M", "7M"], + shadowball: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + soak: ["8L70", "7L20"], + storedpower: ["8M"], + substitute: ["8M", "7M"], + surf: ["8M", "8L40", "7M"], + swagger: ["7M"], + taunt: ["8M", "7M"], + telekinesis: ["7T"], + torment: ["7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + waterfall: ["8M", "7M"], + watergun: ["8L1", "7L1"], + waterpulse: ["8L20", "8S2", "7T", "7L8"], + whirlpool: ["8M", "8S2", "7L14"], + withdraw: ["8L5", "7L1"], + wonderroom: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["naturesmadness", "muddywater", "aquaring", "hydropump"]}, + {generation: 7, level: 60, shiny: true, moves: ["naturesmadness", "muddywater", "aquaring", "hydropump"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["whirlpool", "waterpulse", "brine", "moonblast"]}, + ], + eventOnly: true, + }, + cosmog: { + learnset: { + splash: ["8L1", "8S1", "7L1", "7S0"], + teleport: ["8L1", "8S1", "7L23"], + }, + eventData: [ + {generation: 7, level: 5, moves: ["splash"]}, + {generation: 8, level: 5, moves: ["splash", "teleport"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + cosmoem: { + learnset: { + cosmicpower: ["8M", "8L0", "7L1"], + teleport: ["8L1", "7L1"], + }, + }, + solgaleo: { + learnset: { + agility: ["8M"], + bulldoze: ["8M", "7M"], + calmmind: ["8M", "7M"], + closecombat: ["8M"], + confide: ["7M"], + cosmicpower: ["8M", "8L1", "7L1", "7S0", "7S1"], + crunch: ["8M", "8L42", "7L37", "7S0", "7S1"], + doubleteam: ["7M"], + earthquake: ["8M", "7M"], + endeavor: ["7T"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + firespin: ["8M", "8S3"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + flareblitz: ["8M", "8L70", "7L61"], + flashcannon: ["8M", "8L28", "7M", "7L23"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "8L84", "7M", "7L73"], + gyroball: ["8M", "7M"], + heatcrash: ["8M"], + heavyslam: ["8M"], + helpinghand: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "8L7", "7T", "7L7"], + irontail: ["8M", "8S3", "7T"], + knockoff: ["7T"], + lastresort: ["7T"], + lightscreen: ["8M", "7M"], + metalburst: ["8L49", "7L43"], + metalclaw: ["8L1", "7L1"], + metalsound: ["8L14", "7L13"], + meteorbeam: ["8T"], + morningsun: ["8L35", "7L31", "7S2"], + mysticalfire: ["8M"], + nobleroar: ["8L1", "8S3", "7L59", "7S2"], + outrage: ["8M", "7T"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychicfangs: ["8M"], + psychup: ["7M"], + psyshock: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["8M"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "8L63", "7M", "7L47"], + steelbeam: ["8T"], + steelroller: ["8T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + sunsteelstrike: ["8L0", "7L1", "7S0", "7S1", "7S2"], + superpower: ["8M", "7T"], + swagger: ["7M"], + swift: ["8M"], + teleport: ["8L1", "7L1"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + trickroom: ["8M", "7M"], + wakeupslap: ["7L1"], + wideguard: ["8L77", "7L67"], + wildcharge: ["8M", "8L56", "7M"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "8L21", "8S3", "7T", "7L19", "7S0", "7S1", "7S2"], + }, + eventData: [ + {generation: 7, level: 55, moves: ["sunsteelstrike", "cosmicpower", "crunch", "zenheadbutt"]}, + {generation: 7, level: 60, moves: ["sunsteelstrike", "cosmicpower", "crunch", "zenheadbutt"]}, + {generation: 7, level: 60, shiny: true, moves: ["sunsteelstrike", "zenheadbutt", "nobleroar", "morningsun"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["zenheadbutt", "firespin", "irontail", "nobleroar"]}, + ], + }, + lunala: { + learnset: { + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + agility: ["8M"], + airslash: ["8M", "8L21", "7L19"], + blizzard: ["8M", "7M"], + calmmind: ["8M", "7M"], + chargebeam: ["7M"], + confide: ["7M"], + confuseray: ["8L14", "7L13"], + confusion: ["8L1", "7L1"], + cosmicpower: ["8M", "8L1", "7L1", "7S0", "7S1"], + dazzlinggleam: ["8M", "7M"], + defog: ["7T"], + doubleteam: ["7M"], + dreameater: ["8L70", "7M", "7L59"], + dualwingbeat: ["8T"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M"], + fly: ["8M", "7M"], + focusblast: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M"], + heatwave: ["8M", "7T"], + helpinghand: ["8M"], + hex: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "8L84", "7M", "7L73"], + hypnosis: ["8L1", "7L1"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["8L49", "8S3", "7T", "7L43"], + magicroom: ["8M", "7T"], + meteorbeam: ["8T"], + moonblast: ["8L56", "8S3", "7L47", "7S2"], + moongeistbeam: ["8L0", "7L1", "7S0", "7S1", "7S2"], + moonlight: ["8L35", "7L31", "7S2"], + nightdaze: ["8L42", "7L37", "7S0", "7S1"], + nightshade: ["8L7", "7L7"], + phantomforce: ["8M", "8L63", "7L61"], + poltergeist: ["8T"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychocut: ["8M"], + psychup: ["7M"], + psyshock: ["8M", "7M", "7S2"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + roar: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + scaryface: ["8M"], + shadowball: ["8M", "8L28", "8S3", "7M", "7L23", "7S0", "7S1"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skyattack: ["7T"], + skydrop: ["7M"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spite: ["7T"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M", "8S3"], + tailwind: ["7T"], + telekinesis: ["7T"], + teleport: ["8L1", "7L1"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + trick: ["8M", "7T"], + trickroom: ["8M", "7M"], + wideguard: ["8L77", "7L67"], + willowisp: ["8M", "7M"], + wonderroom: ["8M", "7T"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 55, moves: ["moongeistbeam", "cosmicpower", "nightdaze", "shadowball"]}, + {generation: 7, level: 60, moves: ["moongeistbeam", "cosmicpower", "nightdaze", "shadowball"]}, + {generation: 7, level: 60, shiny: true, moves: ["moongeistbeam", "psyshock", "moonblast", "moonlight"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["shadowball", "moonblast", "magiccoat", "swift"]}, + ], + }, + nihilego: { + learnset: { + acid: ["8L5", "7L1"], + acidspray: ["8L15", "8S2", "7L47", "7S0", "7S1"], + allyswitch: ["8M", "7T"], + bind: ["7T"], + bodyslam: ["8M"], + brutalswing: ["8M", "8S2", "7M"], + chargebeam: ["7M"], + clearsmog: ["8L20", "7L7"], + confide: ["7M"], + constrict: ["7L1"], + corrosivegas: ["8T"], + crosspoison: ["8M"], + dazzlinggleam: ["8M", "7M"], + doubleteam: ["7M"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + grassknot: ["8M", "7M"], + guardsplit: ["8L25", "7L1"], + gunkshot: ["8M", "7T"], + headbutt: ["8L35", "7L19"], + headsmash: ["8L70", "7L73"], + hex: ["8M"], + hiddenpower: ["7M"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + meteorbeam: ["8T"], + mirrorcoat: ["8L60", "7L43", "7S0", "7S1"], + painsplit: ["7T"], + poisonjab: ["8M", "7M"], + pound: ["8L1", "7L1"], + powergem: ["8M", "8L50", "7L37", "7S0", "7S1"], + powersplit: ["8L25", "7L1"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psyshock: ["8M", "7M"], + psywave: ["7L13"], + reflect: ["7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M"], + rocktomb: ["8M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M", "7L31"], + sandstorm: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "8S2", "7M"], + snore: ["8M", "7T"], + spite: ["7T"], + stealthrock: ["8M", "8L55", "7T", "7L59", "7S1"], + substitute: ["8M", "7M"], + swagger: ["7M"], + telekinesis: ["7T"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "7M"], + thunderwave: ["8M", "7M"], + tickle: ["8L10", "7L1"], + toxic: ["7M"], + toxicspikes: ["8M", "8L40", "7L29"], + trickroom: ["8M", "7M"], + venomdrench: ["8M", "8L45", "7L53", "7S0"], + venoshock: ["8M", "8L30", "7M", "7L23"], + wonderroom: ["8M", "8L65", "8S2", "7T", "7L67"], + worryseed: ["7T"], + wrap: ["8L1"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 55, moves: ["powergem", "mirrorcoat", "acidspray", "venomdrench"]}, + {generation: 7, level: 60, shiny: 1, moves: ["powergem", "acidspray", "stealthrock", "mirrorcoat"]}, + {generation: 8, level: 70, shiny: 1, moves: ["wonderroom", "sludgewave", "brutalswing", "acidspray"]}, + ], + eventOnly: true, + }, + buzzwole: { + learnset: { + bodyslam: ["8M"], + bounce: ["8M", "7T"], + brickbreak: ["8M", "7M"], + bugbite: ["7T"], + bulkup: ["8M", "8L20", "7M", "7L13"], + bulldoze: ["8M", "7M"], + closecombat: ["8M"], + coaching: ["8T"], + cometpunch: ["7L7"], + confide: ["7M"], + counter: ["8L55", "7L43", "7S0", "7S1"], + darkestlariat: ["8M"], + doubleteam: ["7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + dualwingbeat: ["8T"], + dynamicpunch: ["8L50", "8S2", "7L59", "7S0", "7S1"], + earthquake: ["8M", "7M"], + endeavor: ["7T"], + endure: ["8M", "8L25", "7L23"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + fellstinger: ["8L10", "7L1"], + fling: ["8M", "7M"], + focusenergy: ["8M", "8L45", "7L1"], + focuspunch: ["8L70", "7T", "7L73"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + gyroball: ["8M", "7M"], + hammerarm: ["8L60", "7L47", "7S0", "7S1"], + harden: ["8L1", "7L1"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + icepunch: ["8M", "7T", "7L1"], + ironhead: ["8M", "7T"], + leechlife: ["8M", "8S2", "7M", "7L29"], + lowsweep: ["8M", "7M"], + lunge: ["8L40", "7L53", "7S0", "7S1"], + megapunch: ["8M", "8L35", "7L37"], + outrage: ["8M", "7T"], + payback: ["8M", "7M"], + poisonjab: ["8M", "7M"], + poweruppunch: ["8L1", "8S2", "7L1"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M", "8L30", "7L1"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roost: ["7M"], + round: ["8M", "7M"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + superpower: ["8M", "8L65", "7T", "7L67"], + swagger: ["7M"], + taunt: ["8M", "8L5", "8S2", "7M", "7L31"], + thunderpunch: ["8M", "7T", "7L1"], + toxic: ["7M"], + vitalthrow: ["8L15", "7L19"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 65, moves: ["counter", "hammerarm", "lunge", "dynamicpunch"]}, + {generation: 7, level: 60, shiny: 1, moves: ["counter", "hammerarm", "lunge", "dynamicpunch"]}, + {generation: 8, level: 70, shiny: 1, moves: ["poweruppunch", "taunt", "leechlife", "dynamicpunch"]}, + ], + eventOnly: true, + }, + pheromosa: { + learnset: { + agility: ["8M", "8L40", "7L37"], + assurance: ["8M"], + blizzard: ["8M", "7M"], + block: ["7T"], + bounce: ["8M", "8L50", "7T", "7L29"], + brickbreak: ["8M", "7M"], + bugbite: ["8L15", "7T"], + bugbuzz: ["8M", "8L60", "7L53", "7S0", "7S1"], + closecombat: ["8M"], + coaching: ["8T"], + confide: ["7M"], + doublekick: ["8L25", "7L1"], + doubleteam: ["7M"], + drillrun: ["8M", "7T"], + echoedvoice: ["7M"], + electroweb: ["8M", "7T"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + feint: ["8L1", "7L19"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + hiddenpower: ["7M"], + highjumpkick: ["8L70", "8S2", "7L67"], + hyperbeam: ["8M", "7M"], + icebeam: ["8M", "7M"], + icywind: ["8M", "7T"], + jumpkick: ["7L31"], + laserfocus: ["7T"], + leer: ["8L5", "7L1"], + lowkick: ["8M", "8L20", "7T", "7L1"], + lowsweep: ["8M", "7M"], + lunge: ["8L45", "8S2", "7L47", "7S0", "7S1"], + mefirst: ["7L59", "7S0", "7S1"], + outrage: ["8M", "7T"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + quickguard: ["8L10", "7L1"], + quiverdance: ["8L65", "7L1"], + rapidspin: ["8L1", "7L1"], + rest: ["8M", "7M"], + return: ["7M"], + roost: ["7M"], + round: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + silverwind: ["7L23"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + speedswap: ["8M", "8L55", "7L73"], + stomp: ["8L35", "7L13"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swift: ["8M", "8S2", "7L7"], + taunt: ["8M", "7M"], + throatchop: ["8M", "8S2", "7T"], + torment: ["7M"], + toxic: ["7M"], + tripleaxel: ["8T"], + triplekick: ["8L30", "7L43", "7S0", "7S1"], + uturn: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["triplekick", "lunge", "bugbuzz", "mefirst"]}, + {generation: 7, level: 60, shiny: 1, moves: ["triplekick", "lunge", "bugbuzz", "mefirst"]}, + {generation: 8, level: 70, shiny: 1, moves: ["highjumpkick", "swift", "throatchop", "lunge"]}, + ], + eventOnly: true, + }, + xurkitree: { + learnset: { + bind: ["7T"], + brutalswing: ["8M", "8S2", "7M"], + calmmind: ["8M", "7M"], + charge: ["8L5", "7L1"], + chargebeam: ["7M"], + confide: ["7M"], + dazzlinggleam: ["8M", "7M"], + discharge: ["8L45", "8S2", "7L47", "7S0", "7S1"], + doubleteam: ["7M"], + eerieimpulse: ["8M", "8L35", "8S2", "7L29"], + electricterrain: ["8M", "8L60", "7L53", "7S0", "7S1"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + endure: ["8M"], + energyball: ["8M", "7M"], + facade: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypnosis: ["8L30", "7L43", "7S0", "7S1"], + ingrain: ["8L15", "7L19"], + iondeluge: ["7L67"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magnetrise: ["8L50", "7T"], + naturepower: ["7M"], + powerwhip: ["8M", "8L65", "8S2", "7L59", "7S0", "7S1"], + protect: ["8M", "7M"], + raindance: ["8M", "7M"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + shockwave: ["8L25", "7T", "7L13"], + signalbeam: ["7T", "7L31"], + sleeptalk: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + spark: ["8L20", "7L1"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + tailglow: ["7L1"], + thunder: ["8M", "7M"], + thunderbolt: ["8M", "8L55", "7M", "7L37"], + thunderpunch: ["8M", "8L40", "7T", "7L23"], + thundershock: ["8L1", "7L1"], + thunderwave: ["8M", "8L10", "7M", "7L7"], + toxic: ["7M"], + voltswitch: ["8M", "7M"], + wildcharge: ["8M", "7M"], + wrap: ["8L1", "7L1"], + zapcannon: ["8L70", "7L73"], + }, + eventData: [ + {generation: 7, level: 65, moves: ["hypnosis", "discharge", "electricterrain", "powerwhip"]}, + {generation: 7, level: 60, shiny: 1, moves: ["hypnosis", "discharge", "electricterrain", "powerwhip"]}, + {generation: 8, level: 70, shiny: 1, moves: ["powerwhip", "discharge", "eerieimpulse", "brutalswing"]}, + ], + eventOnly: true, + }, + celesteela: { + learnset: { + absorb: ["8L1", "7L1"], + acrobatics: ["8M", "7M"], + airslash: ["8M", "7L1"], + autotomize: ["8L30", "7L43", "7S0", "7S1"], + block: ["7T"], + bodyslam: ["8M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + confide: ["7M"], + doubleedge: ["8L65", "7L73"], + doubleteam: ["7M"], + earthquake: ["8M", "8S2", "7M"], + endure: ["8M"], + energyball: ["8M", "7M"], + explosion: ["7M"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + flashcannon: ["8M", "8L40", "7M", "7L37"], + fly: ["8M", "7M"], + frustration: ["7M"], + gigadrain: ["8M", "8L35", "7T", "7L31"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + gravity: ["7T"], + gyroball: ["8M", "8S2", "7M"], + harden: ["8L5", "7L1"], + heavyslam: ["8M", "8L60", "7L67"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + ingrain: ["8L25", "7L1"], + irondefense: ["8M", "8L50", "7T", "7L59", "7S0", "7S1"], + ironhead: ["8M", "7T", "7L29"], + leechseed: ["8L55", "8S2", "7L19"], + magnetrise: ["7T"], + megadrain: ["8L15", "7L13"], + megahorn: ["8M"], + metalsound: ["8L45", "7L23"], + meteorbeam: ["8T"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + round: ["8M", "7M"], + seedbomb: ["8M", "7T", "7L47", "7S0", "7S1"], + selfdestruct: ["8M"], + shockwave: ["7T"], + skullbash: ["8L70", "7L53", "7S0", "7S1"], + sleeptalk: ["8M", "7M"], + smackdown: ["8L20", "8S2", "7M", "7L7"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + superpower: ["8M", "7T"], + swagger: ["7M"], + tackle: ["8L1", "7L1"], + toxic: ["7M"], + wideguard: ["8L10", "7L1"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 65, moves: ["autotomize", "seedbomb", "skullbash", "irondefense"]}, + {generation: 7, level: 60, shiny: 1, moves: ["autotomize", "seedbomb", "skullbash", "irondefense"]}, + {generation: 8, level: 70, shiny: 1, moves: ["leechseed", "smackdown", "gyroball", "earthquake"]}, + ], + eventOnly: true, + }, + kartana: { + learnset: { + aerialace: ["8L25", "7M", "7L23"], + aircutter: ["8L20", "8S2", "7L1"], + airslash: ["8M", "7L59", "7S0", "7S1"], + brickbreak: ["8M", "7M"], + calmmind: ["8M", "7M"], + confide: ["7M"], + cut: ["8L15", "7L1"], + defog: ["8L50", "7T", "7L1"], + detect: ["8L30", "7L53", "7S0", "7S1"], + doubleteam: ["7M"], + endure: ["8M"], + falseswipe: ["8M", "8L10", "7M", "7L7"], + frustration: ["7M"], + furycutter: ["8L1", "7L1"], + gigadrain: ["8M", "7T"], + gigaimpact: ["8M", "7M"], + guillotine: ["8L70", "7L73"], + hiddenpower: ["7M"], + irondefense: ["8M", "7T"], + knockoff: ["7T"], + laserfocus: ["8L45", "7T", "7L29"], + lastresort: ["7T"], + leafblade: ["8M", "8L55", "8S2", "7L43", "7S0", "7S1"], + nightslash: ["8L35", "7L31"], + protect: ["8M", "7M"], + psychocut: ["8M", "7L67"], + razorleaf: ["8L5", "7L13"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + sacredsword: ["8L60", "7L1"], + screech: ["8M"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + solarblade: ["8M"], + steelbeam: ["8T"], + substitute: ["8M", "7M"], + swagger: ["7M"], + swordsdance: ["8M", "8L65", "8S2", "7M", "7L37"], + synthesis: ["8L40", "7T", "7L19"], + tailwind: ["7T"], + toxic: ["7M"], + vacuumwave: ["8L1", "8S2", "7L1"], + xscissor: ["8M", "7M", "7L47", "7S0", "7S1"], + }, + eventData: [ + {generation: 7, level: 60, moves: ["leafblade", "xscissor", "detect", "airslash"]}, + {generation: 7, level: 60, shiny: 1, moves: ["leafblade", "xscissor", "detect", "airslash"]}, + {generation: 8, level: 70, shiny: 1, moves: ["vacuumwave", "aircutter", "leafblade", "swordsdance"]}, + ], + eventOnly: true, + }, + guzzlord: { + learnset: { + amnesia: ["8M"], + belch: ["8L60", "7L1"], + bite: ["8L1", "7L1"], + bodypress: ["8M"], + bodyslam: ["8M", "8L35"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "8S2", "7M", "7L13"], + bulldoze: ["8M", "7M"], + corrosivegas: ["8T"], + crunch: ["8M", "8L30", "7L37"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + dragonpulse: ["8M", "7T"], + dragonrage: ["7L1"], + dragonrush: ["8L55", "8S2", "7L73"], + dragontail: ["8L1", "7M", "7L23"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + earthquake: ["8M", "7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fireblast: ["8M", "7M"], + flamethrower: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + gastroacid: ["8L40", "7T", "7L53", "7S0", "7S1"], + gigaimpact: ["8M", "8L70", "7M"], + gyroball: ["8M", "7M"], + hammerarm: ["8L45", "7L43", "7S1"], + heatcrash: ["8M"], + heatwave: ["8M", "7T"], + heavyslam: ["8M", "8L50", "7L59", "7S0", "7S1"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "7M"], + irondefense: ["8M", "7T"], + ironhead: ["8M", "7T"], + irontail: ["8M", "7T", "7L29"], + knockoff: ["8L10", "7T"], + lashout: ["8T"], + lastresort: ["7T"], + magnetrise: ["7T"], + megakick: ["8M"], + megapunch: ["8M", "8S2"], + outrage: ["8M", "7T"], + payback: ["8M", "7M"], + poisonjab: ["8M", "7M"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + smackdown: ["7M"], + snarl: ["8M", "7M"], + snore: ["8M", "7T"], + steamroller: ["7L19"], + steelroller: ["8T"], + stockpile: ["8L5", "7L1"], + stomp: ["8L15", "7L7"], + stompingtantrum: ["8M", "8L20", "8S2", "7T", "7L31"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + swallow: ["8L5", "7L1"], + thief: ["8M", "7M"], + thrash: ["8L65", "7L47", "7S0", "7S1"], + toxic: ["7M"], + wideguard: ["8L25", "7L1"], + wringout: ["7L67", "7S0"], + }, + eventData: [ + {generation: 7, level: 70, moves: ["thrash", "gastroacid", "heavyslam", "wringout"]}, + {generation: 7, level: 60, shiny: 1, moves: ["hammerarm", "thrash", "gastroacid", "heavyslam"]}, + {generation: 8, level: 70, shiny: 1, moves: ["dragonrush", "stompingtantrum", "brutalswing", "megapunch"]}, + ], + eventOnly: true, + }, + necrozma: { + learnset: { + aerialace: ["7M"], + allyswitch: ["8M", "7T"], + autotomize: ["8L80", "8S3", "7L47"], + breakingswipe: ["8M"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulldoze: ["8M", "7M"], + calmmind: ["8M", "7M"], + chargebeam: ["8L1", "8S3", "7M", "7L1"], + confide: ["7M"], + confusion: ["8L1", "7L1"], + cosmicpower: ["8M"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + dragondance: ["8M"], + dragonpulse: ["8M", "7T"], + earthpower: ["8M", "7T"], + earthquake: ["8M", "7M"], + embargo: ["7M"], + endure: ["8M"], + expandingforce: ["8T"], + facade: ["8M", "7M"], + flashcannon: ["8M", "7M"], + fling: ["8M", "7M"], + frustration: ["7M"], + futuresight: ["8M"], + gigaimpact: ["8M", "7M"], + gravity: ["8L1", "7T", "7L31"], + gyroball: ["8M", "7M"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypervoice: ["8M", "7T"], + imprison: ["8M"], + irondefense: ["8M", "8L56", "7T", "7L59", "7S0", "7S1"], + ironhead: ["8M", "7T"], + knockoff: ["7T"], + lightscreen: ["8M", "7M", "7S2"], + magnetrise: ["7T"], + metalclaw: ["8L1", "7L1"], + meteorbeam: ["8T"], + mirrorshot: ["7L1"], + moonlight: ["8L1", "7L1", "7S2"], + morningsun: ["8L1", "7L1"], + nightslash: ["8L24", "7L23", "7S1"], + outrage: ["8M", "7T"], + photongeyser: ["8L72", "7L50", "7S1"], + powergem: ["8M", "8L64", "8S3", "7L43", "7S1"], + prismaticlaser: ["8L88", "7L73", "7S0"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psychicfangs: ["8M"], + psychocut: ["8M", "8L32", "8S3", "7L37"], + psyshock: ["8M", "7M"], + recycle: ["7T"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockblast: ["8M", "8L48", "7L19"], + rockpolish: ["7M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + round: ["8M", "7M"], + scaryface: ["8M"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + slash: ["8L16", "7L7"], + sleeptalk: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snore: ["8M", "7T"], + solarbeam: ["8M", "7M"], + stealthrock: ["8M", "8L8", "7T", "7L53", "7S0"], + stoneedge: ["8M", "7M"], + storedpower: ["8M", "8L40", "7L13"], + substitute: ["8M", "7M", "7S2"], + swagger: ["7M"], + swordsdance: ["8M", "7M"], + telekinesis: ["7T"], + thief: ["8M", "7M"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + trickroom: ["8M", "7M"], + wringout: ["7L67", "7S0"], + xscissor: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 75, moves: ["stealthrock", "irondefense", "wringout", "prismaticlaser"]}, + {generation: 7, level: 65, moves: ["photongeyser", "irondefense", "powergem", "nightslash"]}, + {generation: 7, level: 75, shiny: true, moves: ["lightscreen", "substitute", "moonlight"], pokeball: "cherishball"}, + {generation: 8, level: 70, shiny: 1, moves: ["psychocut", "chargebeam", "powergem", "autotomize"]}, + ], + eventOnly: true, + }, + necrozmaduskmane: { + learnset: { + sunsteelstrike: ["8R", "7R"], + }, + eventOnly: true, + }, + necrozmadawnwings: { + learnset: { + moongeistbeam: ["8R", "7R"], + }, + eventOnly: true, + }, + necrozmaultra: { + learnset: { + moongeistbeam: ["8R", "7R"], + sunsteelstrike: ["8R", "7R"], + }, + }, + magearna: { + learnset: { + afteryou: ["7T"], + agility: ["9M", "8M"], + aurasphere: ["9M", "9L66", "8M", "8L66", "7L81"], + aurorabeam: ["9L36", "8L36", "7L17"], + batonpass: ["9M", "8M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M", "7M"], + calmmind: ["9M", "8M", "7M"], + chargebeam: ["9M", "7M"], + confide: ["7M"], + confuseray: ["9M"], + craftyshield: ["8L54", "7L1"], + dazzlinggleam: ["9M", "8M", "7M"], + defensecurl: ["9L6", "8L6", "7L1"], + disarmingvoice: ["9M"], + doubleteam: ["7M"], + drainingkiss: ["9M", "8M"], + echoedvoice: ["7M"], + eerieimpulse: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M"], + embargo: ["7M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M", "7M"], + explosion: ["7M"], + facade: ["9M"], + falseswipe: ["9M", "8M", "7M"], + flashcannon: ["9M", "9L72", "8M", "8L72", "7M", "7L41", "7S0"], + fleurcannon: ["9L90", "8L90", "7L49", "7S0"], + focusblast: ["9M", "8M", "7M"], + frustration: ["7M"], + gearup: ["8L24", "7L1"], + gigaimpact: ["9M", "8M", "7M"], + grassknot: ["9M", "8M", "7M"], + guardswap: ["8M"], + gyroball: ["9L1", "8M", "8L1", "7M"], + healbell: ["7T"], + heartswap: ["7L89"], + heavyslam: ["9M"], + helpinghand: ["9M", "9L1", "8M", "8L1", "7T", "7L1", "7S0"], + hiddenpower: ["7M"], + hyperbeam: ["9M", "8M", "7M"], + icebeam: ["9M", "8M", "7M"], + icespinner: ["9M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L18", "8M", "8L18", "7T", "7L57"], + ironhead: ["9M", "9L60", "8M", "8L60", "7T", "7L1"], + lastresort: ["7T"], + lightscreen: ["9M", "8M", "7M"], + lockon: ["9L42"], + luckychant: ["7L9", "7S0"], + magneticflux: ["9L24"], + magnetrise: ["7T"], + mindreader: ["8L42", "7L33"], + mirrorshot: ["7L25"], + mistyexplosion: ["8T"], + mistyterrain: ["9M"], + painsplit: ["9L78", "8L78", "7T", "7L65"], + playrough: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M", "7M"], + psybeam: ["9M", "9L30", "8L30", "7L1"], + psychic: ["9M"], + psyshock: ["9M"], + reflect: ["9M", "8M", "7M"], + rest: ["9M", "8M"], + return: ["7M"], + rollout: ["9L12", "8L12"], + round: ["8M", "7M"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M", "7M"], + shiftgear: ["9L48", "8L48", "7L1"], + shockwave: ["7T"], + signalbeam: ["7T"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["8M", "7T"], + snowscape: ["9M"], + solarbeam: ["9M", "8M", "7M"], + sonicboom: ["7L1"], + speedswap: ["8M"], + spikes: ["9M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M", "7M"], + sunnyday: ["9M"], + swagger: ["7M"], + swift: ["9M"], + synchronoise: ["7L73"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M", "7M"], + thunderwave: ["9M", "8M", "7M"], + triattack: ["8M"], + trick: ["9M", "9L54", "8M"], + trickroom: ["9M", "8M", "7M"], + trumpcard: ["7L97"], + voltswitch: ["9M", "8M", "7M"], + zapcannon: ["9L84", "8L84"], + zenheadbutt: ["9M", "8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["fleurcannon", "flashcannon", "luckychant", "helpinghand"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + magearnaoriginal: { + learnset: { + agility: ["9M", "8M"], + aurasphere: ["9M", "9L66", "8M", "8L66"], + aurorabeam: ["9L36", "8L36"], + batonpass: ["9M", "8M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M"], + calmmind: ["9M", "8M"], + chargebeam: ["9M"], + confuseray: ["9M"], + craftyshield: ["8L54"], + dazzlinggleam: ["9M", "8M"], + defensecurl: ["9L6", "8L6", "8S0"], + disarmingvoice: ["9M"], + drainingkiss: ["9M", "8M"], + eerieimpulse: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M"], + falseswipe: ["9M", "8M"], + flashcannon: ["9M", "9L72", "8M", "8L72", "8S0"], + fleurcannon: ["9L90", "8L90", "8S0"], + focusblast: ["9M", "8M"], + gearup: ["8L24"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + guardswap: ["8M"], + gyroball: ["9L1", "8M", "8L1"], + heavyslam: ["9M"], + helpinghand: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icespinner: ["9M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L18", "8M", "8L18"], + ironhead: ["9M", "9L60", "8M", "8L60"], + lightscreen: ["9M", "8M"], + lockon: ["9L42"], + magneticflux: ["9L24"], + mindreader: ["8L42"], + mistyexplosion: ["8T"], + mistyterrain: ["9M"], + painsplit: ["9L78", "8L78"], + playrough: ["9M"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L30", "8L30"], + psychic: ["9M"], + psyshock: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M", "8S0"], + rollout: ["9L12", "8L12"], + round: ["8M"], + selfdestruct: ["8M"], + shadowball: ["9M", "8M"], + shiftgear: ["9L48", "8L48"], + skillswap: ["9M"], + sleeptalk: ["9M"], + snore: ["8M"], + snowscape: ["9M"], + solarbeam: ["9M", "8M"], + speedswap: ["8M"], + spikes: ["9M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M", "8M"], + thunderwave: ["9M", "8M"], + triattack: ["8M"], + trick: ["9M", "9L54", "8M"], + trickroom: ["9M", "8M"], + voltswitch: ["9M", "8M"], + zapcannon: ["9L84", "8L84"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 50, nature: "Mild", ivs: {hp: 31, atk: 30, def: 30, spa: 31, spd: 31, spe: 0}, moves: ["fleurcannon", "flashcannon", "defensecurl", "rest"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + marshadow: { + learnset: { + acrobatics: ["8M", "7M"], + agility: ["8M"], + assurance: ["8M", "8L36", "7L1"], + aurasphere: ["8M"], + blazekick: ["8M"], + bounce: ["8M", "7T"], + brickbreak: ["8M", "7M"], + bulkup: ["8M", "7M"], + calmmind: ["8M", "7M"], + closecombat: ["8M", "8L99", "7L50", "7S0"], + coaching: ["8T"], + confide: ["7M"], + copycat: ["8L1", "7L20"], + counter: ["8L1", "7L1"], + doubleteam: ["7M"], + drainpunch: ["8M", "8L1", "8S1", "7T", "7L1"], + echoedvoice: ["7M"], + endeavor: ["8L90", "7T", "7L60"], + endure: ["8M"], + facade: ["8M", "7M"], + falseswipe: ["8M", "7M"], + feint: ["8L1", "7L11"], + firepunch: ["8M", "8L1", "7T", "7L1"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + forcepalm: ["8L27", "8S1", "7L5", "7S0"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + hex: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M"], + icepunch: ["8M", "8L1", "7T", "7L1"], + ironhead: ["8M", "7T"], + jumpkick: ["7L35"], + knockoff: ["7T"], + laserfocus: ["8L81", "7T", "7L1"], + lastresort: ["7T"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "7T"], + payback: ["8M", "7M"], + phantomforce: ["8M"], + poisonjab: ["8M", "7M"], + poltergeist: ["8T"], + protect: ["8M", "7M"], + psychup: ["8L63", "7M", "7L41"], + pursuit: ["7L1"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + rockslide: ["8M", "7M"], + rocktomb: ["8M", "7M"], + roleplay: ["8L9", "7T", "7L30"], + rollingkick: ["7L15"], + round: ["8M", "7M"], + shadowball: ["8M", "7M", "7S0"], + shadowclaw: ["8M", "7M"], + shadowpunch: ["8L18", "7L26"], + shadowsneak: ["8L1", "8S1", "7L1"], + skittersmack: ["8T"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spectralthief: ["8L72", "8S1", "7L45", "7S0"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + suckerpunch: ["8L45", "7L56"], + superpower: ["8M", "7T"], + swagger: ["7M"], + swift: ["8M"], + thief: ["8M", "7M"], + throatchop: ["8M", "7T"], + thunderpunch: ["8M", "8L1", "7T", "7L1"], + toxic: ["7M"], + willowisp: ["8M", "7M"], + workup: ["8M", "7M"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["spectralthief", "closecombat", "forcepalm", "shadowball"], pokeball: "cherishball"}, + {generation: 8, level: 60, moves: ["spectralthief", "drainpunch", "forcepalm", "shadowsneak"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + poipole: { + learnset: { + acid: ["8L1", "8S2", "7L1"], + charm: ["8M", "8L21", "7L19", "7S0"], + confide: ["7M"], + covet: ["7T"], + dragonpulse: ["8M", "8L1", "7T", "7L1", "7S1"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fellstinger: ["8L14", "8S2", "7L47"], + frustration: ["7M"], + furyattack: ["8L7", "8S2", "7L7"], + gastroacid: ["8L56", "7T"], + growl: ["8L1", "7L1"], + gunkshot: ["8M", "7T"], + helpinghand: ["8M", "8L1", "8S2", "7T", "7L1"], + hiddenpower: ["7M"], + irontail: ["8M", "7T"], + nastyplot: ["8M", "8L42", "7L31", "7S0", "7S1"], + peck: ["8L1", "7L1"], + pinmissile: ["8M"], + poisonjab: ["8M", "8L49", "7M", "7L37", "7S0", "7S1"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + signalbeam: ["7T"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + substitute: ["8M", "7M"], + toxic: ["8L63", "7M", "7L41"], + toxicspikes: ["8M"], + uproar: ["8M", "7T"], + venomdrench: ["8M", "8L35", "7L23", "7S0", "7S1"], + venoshock: ["8M", "8L28", "7M", "7L13"], + }, + eventData: [ + {generation: 7, level: 40, shiny: 1, perfectIVs: 3, moves: ["charm", "venomdrench", "nastyplot", "poisonjab"], pokeball: "pokeball"}, + {generation: 7, level: 40, shiny: true, nature: "Modest", perfectIVs: 3, moves: ["venomdrench", "nastyplot", "poisonjab", "dragonpulse"], pokeball: "cherishball"}, + {generation: 8, level: 20, moves: ["helpinghand", "acid", "furyattack", "fellstinger"], pokeball: "beastball"}, + ], + eventOnly: true, + }, + naganadel: { + learnset: { + acid: ["8L1", "7L1"], + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + aircutter: ["8L0", "7L1"], + airslash: ["8M", "8L1", "7L53"], + allyswitch: ["8M", "7T"], + assurance: ["8M"], + breakingswipe: ["8M"], + charm: ["8M", "8L21", "7L19"], + confide: ["7M"], + crosspoison: ["8M"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + dracometeor: ["8T", "7T"], + dragonclaw: ["8M", "7M"], + dragondance: ["8M"], + dragonpulse: ["8M", "8L1", "7T", "7L1"], + dragonrush: ["8L70"], + dragontail: ["7M"], + dualwingbeat: ["8T"], + echoedvoice: ["7M"], + endure: ["8M"], + facade: ["8M", "7M"], + fellstinger: ["8L14", "7L47"], + fireblast: ["8M", "7M"], + flamethrower: ["8M", "7M"], + fly: ["8M", "7M"], + frustration: ["7M"], + furyattack: ["8L7", "7L7"], + gastroacid: ["8L56", "7T"], + gigaimpact: ["8M"], + growl: ["8L1", "7L1"], + gunkshot: ["8M", "7T"], + heatwave: ["8M", "7T"], + helpinghand: ["8M", "8L1", "7T", "7L1"], + hex: ["8M"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + irontail: ["8M", "7T"], + laserfocus: ["7T"], + leechlife: ["8M", "7M"], + nastyplot: ["8M", "8L42", "7L31"], + outrage: ["8M", "7T"], + peck: ["8L1", "7L1"], + pinmissile: ["8M"], + poisonjab: ["8M", "8L49", "7M", "7L37"], + protect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + round: ["8M", "7M"], + scaleshot: ["8T"], + shadowclaw: ["8M", "7M"], + shockwave: ["7T"], + signalbeam: ["7T"], + skyattack: ["7T"], + skydrop: ["7M"], + sleeptalk: ["8M", "7M"], + sludgebomb: ["8M", "7M"], + sludgewave: ["8M", "7M"], + smartstrike: ["8M", "7M"], + snarl: ["8M", "7M"], + snatch: ["7T"], + snore: ["8M", "7T"], + spikes: ["8M"], + substitute: ["8M", "7M"], + swift: ["8M"], + tailwind: ["7T"], + thief: ["8M", "7M"], + throatchop: ["8M", "7T"], + thunderbolt: ["8M", "7M"], + toxic: ["8L63", "7M", "7L41"], + toxicspikes: ["8M"], + uproar: ["8M", "7T"], + uturn: ["8M", "7M"], + venomdrench: ["8M", "8L35", "7L23"], + venoshock: ["8M", "8L28", "7M", "7L13"], + xscissor: ["8M", "7M"], + }, + }, + stakataka: { + learnset: { + allyswitch: ["8M", "7T"], + autotomize: ["8L35", "8S1", "7L31"], + bide: ["7L17"], + bind: ["7T"], + block: ["8L20", "7T"], + bodypress: ["8M"], + bodyslam: ["8M"], + brutalswing: ["8M", "8S1", "7M"], + bulldoze: ["8M", "7M"], + doubleedge: ["8L70", "8S1", "7L61"], + earthquake: ["8M", "7M"], + endure: ["8M"], + facade: ["8M", "7M"], + flashcannon: ["8M", "7M"], + frustration: ["7M"], + gigaimpact: ["8M", "7M"], + gravity: ["7T"], + gyroball: ["8M", "7M"], + harden: ["8L1"], + heatcrash: ["8M"], + heavyslam: ["8M"], + hiddenpower: ["7M"], + highhorsepower: ["8M"], + infestation: ["7M"], + irondefense: ["8M", "8L50", "7T", "7L37", "7S0"], + ironhead: ["8M", "8L55", "7T", "7L43", "7S0"], + lightscreen: ["8M", "7M"], + magiccoat: ["7T"], + magicroom: ["8M", "7T"], + magnetrise: ["8L45", "7T"], + megakick: ["8M"], + meteorbeam: ["8T"], + protect: ["8M", "8L10", "7M", "7L1"], + recycle: ["7T"], + reflect: ["8M", "7M"], + rest: ["8M", "7M"], + return: ["7M"], + rockblast: ["8M", "8L40", "7L47", "7S0"], + rockpolish: ["7M"], + rockslide: ["8M", "8L25", "8S1", "7M", "7L5"], + rockthrow: ["8L5", "7L23"], + rocktomb: ["8M", "7M"], + roleplay: ["7T"], + round: ["8M", "7M"], + safeguard: ["8M", "7M"], + sandstorm: ["8M", "7M"], + skillswap: ["8M", "7T"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + stealthrock: ["8M", "8L65", "7T", "7L11"], + steelbeam: ["8T"], + steelroller: ["8T"], + stomp: ["8L15"], + stompingtantrum: ["8M", "7T"], + stoneedge: ["8M", "7M"], + substitute: ["8M", "7M"], + superpower: ["8M", "7T"], + tackle: ["8L1", "7L1"], + takedown: ["8L60", "7L19"], + telekinesis: ["7T"], + toxic: ["7M"], + trickroom: ["8M", "7M"], + wideguard: ["8L30", "7L53", "7S0"], + wonderroom: ["8M", "7T"], + zenheadbutt: ["8M", "7T"], + }, + eventData: [ + {generation: 7, level: 60, shiny: 1, moves: ["irondefense", "ironhead", "rockblast", "wideguard"]}, + {generation: 8, level: 70, shiny: 1, moves: ["rockslide", "doubleedge", "brutalswing", "autotomize"]}, + ], + eventOnly: true, + }, + blacephalon: { + learnset: { + afteryou: ["7T"], + astonish: ["8L1", "7L1"], + calmmind: ["8M", "8L50", "7M", "7L31"], + confide: ["7M"], + confuseray: ["8L20"], + darkpulse: ["8M", "7M"], + doubleteam: ["7M"], + ember: ["8L10", "7L1"], + encore: ["8M"], + endure: ["8M"], + expandingforce: ["8T"], + explosion: ["7M"], + facade: ["8M", "7M"], + fireblast: ["8M", "8L65", "8S1", "7M", "7L37", "7S0"], + firepunch: ["8M"], + firespin: ["8M", "8L1"], + flameburst: ["7L17"], + flamecharge: ["7M"], + flamethrower: ["8M", "7M"], + fling: ["8M", "7M"], + foulplay: ["8M", "7T"], + frustration: ["7M"], + heatwave: ["8M", "7T"], + hiddenpower: ["7M"], + hyperbeam: ["8M", "7M"], + hypnosis: ["8L35"], + incinerate: ["8L30"], + knockoff: ["7T"], + lastresort: ["7T"], + lightscreen: ["8M", "8L5", "7M", "7L29"], + magiccoat: ["8L25", "7L7"], + mindblown: ["8L70", "7L59", "7S0"], + mysticalfire: ["8M", "8L40"], + nightshade: ["8L15", "7L23"], + overheat: ["8M", "7M"], + painsplit: ["7T"], + payback: ["8M", "7M"], + protect: ["8M", "7M"], + psychic: ["8M", "7M"], + psyshock: ["8M", "7M"], + quash: ["7M"], + recycle: ["7T"], + rest: ["8M", "7M"], + return: ["7M"], + rockblast: ["8M"], + round: ["8M", "7M"], + selfdestruct: ["8M"], + shadowball: ["8M", "8L45", "7M", "7L41", "7S0"], + shadowclaw: ["8M", "8S1", "7M"], + sleeptalk: ["8M", "7M"], + smackdown: ["7M"], + snore: ["8M", "7T"], + solarbeam: ["8M"], + spite: ["7T"], + storedpower: ["8M", "7L13"], + substitute: ["8M", "7M"], + sunnyday: ["8M", "7M"], + swagger: ["7M"], + taunt: ["8M", "8S1", "7M"], + thief: ["8M", "7M"], + torment: ["7M"], + toxic: ["7M"], + trick: ["8M", "8L60", "7T", "7L47", "7S0"], + uproar: ["8M", "7T"], + willowisp: ["8M", "8L55", "7M"], + zenheadbutt: ["8M", "8S1"], + }, + eventData: [ + {generation: 7, level: 60, shiny: 1, moves: ["fireblast", "shadowball", "trick", "mindblown"]}, + {generation: 8, level: 70, shiny: 1, moves: ["shadowclaw", "taunt", "fireblast", "zenheadbutt"]}, + ], + eventOnly: true, + }, + zeraora: { + learnset: { + acrobatics: ["8M", "7M"], + aerialace: ["7M"], + agility: ["8M", "8L80"], + assurance: ["8M"], + aurasphere: ["8M"], + blazekick: ["8M", "8S1"], + bounce: ["8M", "7T"], + brickbreak: ["8M", "7M"], + brutalswing: ["8M", "7M"], + bulkup: ["8M", "7M"], + calmmind: ["8M", "7M"], + charge: ["8L40", "7L26"], + closecombat: ["8M", "8L96", "8S1", "7L47", "7S0"], + coaching: ["8T"], + confide: ["7M"], + discharge: ["8L64", "7L50"], + doubleteam: ["7M"], + drainpunch: ["8M", "7T"], + dualchop: ["7T"], + echoedvoice: ["7M"], + electricterrain: ["8M"], + electroball: ["8M"], + electroweb: ["8M", "7T"], + endeavor: ["7T"], + endure: ["8M"], + facade: ["8M", "7M"], + fakeout: ["8L1", "7L22"], + falseswipe: ["8M", "7M"], + firepunch: ["8M", "7T"], + fling: ["8M", "7M"], + focusblast: ["8M", "7M"], + focuspunch: ["7T"], + frustration: ["7M"], + furyswipes: ["8L8", "7L12"], + gigaimpact: ["8M", "7M"], + grassknot: ["8M", "7M"], + helpinghand: ["8M"], + hiddenpower: ["7M"], + honeclaws: ["8L56", "7L5"], + hyperbeam: ["8M"], + irontail: ["8M", "7T"], + knockoff: ["7T"], + laserfocus: ["7T"], + lowkick: ["8M", "7T"], + lowsweep: ["8M", "7M"], + megakick: ["8M"], + megapunch: ["8M"], + outrage: ["8M", "8S1", "7T"], + payday: ["8M"], + plasmafists: ["8L88", "8S1", "7L43", "7S0"], + playrough: ["8M"], + poweruppunch: ["8L1"], + protect: ["8M", "7M"], + quickattack: ["8L1", "7L8"], + quickguard: ["8L16", "7L40"], + rest: ["8M", "7M"], + return: ["7M"], + revenge: ["8M"], + reversal: ["8M"], + risingvoltage: ["8T"], + round: ["8M", "7M"], + scaryface: ["8M"], + scratch: ["8L1", "7L1"], + shockwave: ["7T"], + slash: ["8L24", "7L33"], + sleeptalk: ["8M", "7M"], + snarl: ["8M", "8L1", "7M", "7L19"], + snatch: ["7T"], + snore: ["8M", "7T"], + spark: ["8L1", "7L1"], + substitute: ["8M", "7M"], + superpower: ["8M", "7T"], + swift: ["8M"], + taunt: ["8M", "7M"], + throatchop: ["8M", "7T"], + thunder: ["8M", "7M", "7S0"], + thunderbolt: ["8M", "7M"], + thunderpunch: ["8M", "8L48", "7T", "7L29", "7S0"], + thunderwave: ["8M", "7M"], + toxic: ["7M"], + voltswitch: ["8M", "8L32", "7M", "7L15"], + wildcharge: ["8M", "8L72", "7M", "7L36"], + workup: ["8M", "7M"], + }, + eventData: [ + {generation: 7, level: 50, moves: ["plasmafists", "thunderpunch", "closecombat", "thunder"], pokeball: "cherishball"}, + {generation: 8, level: 100, shiny: true, nature: "Hasty", ivs: {hp: 31, atk: 31, def: 30, spa: 31, spd: 31, spe: 31}, moves: ["plasmafists", "closecombat", "blazekick", "outrage"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + meltan: { + learnset: { + acidarmor: ["8L32", "8V", "7L36"], + endure: ["8M"], + facade: ["8M"], + flashcannon: ["8M", "8L40", "8V", "7M", "7L45"], + gyroball: ["8M"], + harden: ["8L1", "8V", "7L1"], + headbutt: ["8L16", "8V", "7M", "7L1"], + irondefense: ["8M"], + protect: ["8M", "8V", "7M"], + rest: ["8M", "8V", "7M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + steelbeam: ["8T"], + substitute: ["8M", "8V", "7M"], + tailwhip: ["8L8", "8V", "7L9"], + thunderbolt: ["8M", "8V", "7M"], + thundershock: ["8L1", "8V", "7L27"], + thunderwave: ["8M", "8L24", "8V", "7M", "7L18"], + toxic: ["8V", "7M"], + }, + }, + melmetal: { + learnset: { + acidarmor: ["8L32", "8V", "7L36"], + bodypress: ["8M"], + bodyslam: ["8M"], + brickbreak: ["8M", "8V", "7M"], + brutalswing: ["8M"], + darkestlariat: ["8M"], + discharge: ["8L64"], + doubleironbash: ["8L88", "8V", "8S0", "7L72"], + dynamicpunch: ["8L72", "8S0"], + earthquake: ["8M", "8V", "7M"], + electricterrain: ["8M"], + endure: ["8M"], + facade: ["8M", "8V", "7M"], + flashcannon: ["8M", "8L40", "8V", "7M", "7L45"], + gigaimpact: ["8M"], + gyroball: ["8M"], + harden: ["8L1", "8V", "7L1"], + headbutt: ["8L1", "8V", "7M", "7L1"], + heavyslam: ["8M"], + highhorsepower: ["8M"], + hyperbeam: ["8M", "8L96", "8V", "8S0", "7M", "7L90"], + icebeam: ["8M", "8V", "7M"], + icepunch: ["8M", "8V", "7M"], + irondefense: ["8M"], + ironhead: ["8M"], + megakick: ["8M"], + megapunch: ["8M", "8L48", "8V", "7L54"], + protect: ["8M", "8L56", "8V", "7M", "7L63"], + rest: ["8M", "8V", "7M"], + rockslide: ["8M", "8V", "7M"], + rocktomb: ["8M"], + round: ["8M"], + selfdestruct: ["8M", "8V", "7M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M", "8V", "7M"], + steelbeam: ["8T"], + steelroller: ["8T"], + substitute: ["8M", "8V", "7M"], + superpower: ["8M", "8L80", "8V", "7M", "7L81"], + tailwhip: ["8L1", "8V", "7L1"], + thunder: ["8M", "8V", "7M"], + thunderbolt: ["8M", "8V", "7M"], + thunderpunch: ["8M", "8L0", "8V", "8S0", "7M", "7L0"], + thundershock: ["8L1", "8V", "7L27"], + thunderwave: ["8M", "8L24", "8V", "7M", "7L1"], + toxic: ["8V", "7M"], + }, + eventData: [ + {generation: 8, level: 100, nature: "Brave", ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 0}, moves: ["doubleironbash", "hyperbeam", "dynamicpunch", "thunderpunch"], pokeball: "cherishball"}, + ], + }, + grookey: { + learnset: { + acrobatics: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M"], + branchpoke: ["9L6", "8L6"], + bulletseed: ["9M"], + drainpunch: ["9M", "8M"], + endeavor: ["9L36", "8L36"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M"], + focusenergy: ["8M"], + gigadrain: ["9M", "8M"], + grassknot: ["9M", "8M"], + grasspledge: ["9M", "8T"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1"], + growth: ["9E", "8E"], + hammerarm: ["9E", "8E"], + knockoff: ["9L20", "8L20"], + leafstorm: ["9M"], + leechseed: ["9E", "8E"], + lowkick: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + naturepower: ["8E"], + protect: ["9M", "8M"], + razorleaf: ["9L12", "8L12"], + rest: ["9M", "8M"], + round: ["8M"], + scratch: ["9L1", "8L1"], + screech: ["9L17", "8M", "8L17"], + seedbomb: ["9M"], + slam: ["9L24", "8L24"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["8M"], + strength: ["9E", "8E"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L8", "8M", "8L8"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9L28", "8M", "8L28"], + uturn: ["9M", "8M"], + woodhammer: ["9L32", "8L32"], + workup: ["8M"], + worryseed: ["9E", "8E"], + }, + }, + thwackey: { + learnset: { + acrobatics: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M"], + branchpoke: ["9L1", "8L1"], + bulletseed: ["9M"], + doublehit: ["9L0", "8L0"], + drainpunch: ["9M", "8M"], + endeavor: ["9L48", "8L48"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M"], + focusenergy: ["8M"], + gigadrain: ["9M", "8M"], + grassknot: ["9M", "8M"], + grasspledge: ["9M", "8T"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + growl: ["9L1", "8L1"], + knockoff: ["9L24", "8L24"], + leafstorm: ["9M"], + lowkick: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + protect: ["9M", "8M"], + razorleaf: ["9L12", "8L12"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M"], + scratch: ["9L1", "8L1"], + screech: ["9L19", "8M", "8L19"], + seedbomb: ["9M"], + slam: ["9L30", "8L30"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9L36", "8M", "8L36"], + uturn: ["9M", "8M"], + woodhammer: ["9L42", "8L42"], + workup: ["8M"], + }, + }, + rillaboom: { + learnset: { + acrobatics: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + boomburst: ["9L62", "8L62"], + branchpoke: ["9L1", "8L1"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulkup: ["9M", "8M"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "8M"], + darkestlariat: ["8M"], + doublehit: ["9L1", "8L1"], + drainpunch: ["9M", "8M"], + drumbeating: ["9L0", "8L0"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endeavor: ["9L54", "8L54"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + frenzyplant: ["9M", "8T"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grasspledge: ["9M", "8T"], + grassyglide: ["8T"], + grassyterrain: ["9M", "9L1", "8M", "8L1"], + growl: ["9L1", "8L1"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + knockoff: ["9L24", "8L24"], + leafstorm: ["9M", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M", "8M"], + nobleroar: ["9L1", "8L1"], + protect: ["9M", "8M"], + razorleaf: ["9L12", "8L12"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + scratch: ["9L1", "8L1"], + screech: ["9L19", "8M", "8L19"], + seedbomb: ["9M"], + slam: ["9L30", "8L30"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L1", "8M", "8L1"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9L38", "8M", "8L38"], + uturn: ["9M", "8M"], + woodhammer: ["9L46", "8L46"], + workup: ["8M"], + }, + }, + scorbunny: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L20", "8M", "8L20"], + allyswitch: ["8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + blazekick: ["8M"], + bounce: ["9L32", "8M", "8L32"], + counter: ["9L28", "8L28"], + doubleedge: ["9L36", "8L36"], + doublekick: ["9L12", "8L12"], + electroball: ["9M", "8M"], + ember: ["9L6", "8L6"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T"], + firespin: ["9M"], + flamecharge: ["9M", "9L17", "8L17"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M"], + focusenergy: ["8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + headbutt: ["9L24", "8L24"], + heatwave: ["9M", "8M"], + helpinghand: ["9M"], + highjumpkick: ["9E", "8E"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + mudshot: ["8M"], + overheat: ["9M", "8M"], + protect: ["9M", "8M"], + quickattack: ["9L8", "8L8"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sandattack: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9E", "8E"], + sunnyday: ["9M", "8M"], + superfang: ["9E", "8E"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + raboot: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + blazekick: ["8M"], + bounce: ["9L42", "8M", "8L42"], + bulkup: ["9M", "8M"], + counter: ["9L36", "8L36"], + doubleedge: ["9L48", "8L48"], + doublekick: ["9L12", "8L12"], + electroball: ["9M", "8M"], + ember: ["9L1", "8L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T"], + firespin: ["9M"], + flamecharge: ["9M", "9L19", "8L19"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + focusenergy: ["8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + headbutt: ["9L30", "8L30"], + heatwave: ["9M", "8M"], + helpinghand: ["9M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + overheat: ["9M", "8M"], + protect: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + cinderace: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + blastburn: ["9M", "8T"], + blazekick: ["8M"], + bounce: ["9L46", "8M", "8L46"], + bulkup: ["9M", "8M"], + coaching: ["8T"], + counter: ["9L38", "8L38"], + courtchange: ["9L62", "8L62"], + doubleedge: ["9L54", "8L54"], + doublekick: ["9L12", "8L12"], + electroball: ["9M", "8M"], + ember: ["9L1", "8L1"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + feint: ["9L1", "8L1"], + fireblast: ["9M", "8M"], + firefang: ["9M", "8M"], + firepledge: ["9M", "8T"], + firepunch: ["9M", "8M"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L19", "8L19"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + fling: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + headbutt: ["9L30", "8L30"], + heatwave: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + ironhead: ["9M", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + overheat: ["9M", "8M"], + protect: ["9M", "8M"], + pyroball: ["9L0", "8L0"], + quickattack: ["9L1", "8L1"], + rest: ["9M", "8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scorchingsands: ["8T"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + willowisp: ["9M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + sobble: { + learnset: { + aquajet: ["9E", "8E"], + aquaring: ["9E", "8E"], + attract: ["8M"], + batonpass: ["8M"], + bind: ["9L8", "8L8"], + bounce: ["8M"], + chillingwater: ["9M"], + dive: ["8M"], + doubleteam: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fellstinger: ["9E", "8E"], + growl: ["9L1", "8L1"], + haze: ["9E", "8E"], + hydropump: ["9M"], + iceshard: ["9E", "8E"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "9L28", "8M", "8L28"], + mist: ["9E", "8E"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M", "9L36", "8M", "8L36"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + soak: ["9L32", "8L32"], + substitute: ["9M", "8M"], + suckerpunch: ["9L20", "8L20"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + tearfullook: ["9L17", "8L17"], + terablast: ["9M"], + uturn: ["9M", "9L24", "8M", "8L24"], + waterfall: ["9M"], + watergun: ["9L6", "8L6"], + waterpledge: ["9M", "8T"], + waterpulse: ["9M", "9L12", "8L12"], + weatherball: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + drizzile: { + learnset: { + attract: ["8M"], + batonpass: ["9M", "8M"], + bind: ["9L1", "8L1"], + bounce: ["8M"], + chillingwater: ["9M"], + dive: ["8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + growl: ["9L1", "8L1"], + hydropump: ["9M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "9L36", "8M", "8L36"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M", "9L48", "8M", "8L48"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + soak: ["9L42", "8L42"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + tearfullook: ["9L19", "8L19"], + terablast: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30"], + waterfall: ["9M"], + watergun: ["9L1", "8L1"], + waterpledge: ["9M", "8T"], + waterpulse: ["9M", "9L12", "8L12"], + weatherball: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + inteleon: { + learnset: { + acrobatics: ["9M", "9L1", "8M", "8L1"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + attract: ["8M"], + batonpass: ["9M", "8M"], + bind: ["9L1", "8L1"], + blizzard: ["9M", "8M"], + bounce: ["8M"], + breakingswipe: ["8M"], + chillingwater: ["9M"], + darkpulse: ["9M", "8M"], + dive: ["8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + hydrocannon: ["9M", "8T"], + hydropump: ["9M", "9L62", "8M", "8L62"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + iciclespear: ["8M"], + icywind: ["9M", "8M"], + lightscreen: ["9M", "8M"], + liquidation: ["9M", "9L38", "8M", "8L38"], + metronome: ["9M", "8M"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + pound: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M", "9L54", "8M", "8L54"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scald: ["8M"], + scaleshot: ["8T"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snipeshot: ["9L0", "8L0"], + snore: ["8M"], + snowscape: ["9M"], + soak: ["9L46", "8L46"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M"], + tearfullook: ["9L19", "8L19"], + terablast: ["9M"], + uturn: ["9M", "9L30", "8M", "8L30"], + waterfall: ["9M", "8M"], + watergun: ["9L1", "8L1"], + waterpledge: ["9M", "8T"], + waterpulse: ["9M", "9L12", "8L12"], + weatherball: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + skwovet: { + learnset: { + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + belch: ["9L45", "8L45"], + bellydrum: ["9E", "8E"], + bite: ["9L5", "8L5"], + bodyslam: ["9M", "9L20", "8M", "8L20"], + brutalswing: ["8M"], + bulletseed: ["9M", "9L35", "8M", "8L35"], + counter: ["9L30", "8L30"], + crunch: ["9M", "8M"], + defensecurl: ["9E", "8E"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + gyroball: ["8M"], + hypervoice: ["9M", "8M"], + irontail: ["8M"], + lastresort: ["9E", "8E"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + payback: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "9L25", "8M", "8L25"], + rollout: ["9E", "8E"], + round: ["8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spitup: ["9L15", "8L15"], + stockpile: ["9L15", "8L15"], + stuffcheeks: ["9L10", "8L10"], + substitute: ["9M", "8M"], + superfang: ["9L40", "8L40"], + swallow: ["9L15", "8L15"], + tackle: ["9L1", "8L1"], + tailslap: ["8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + trailblaze: ["9M"], + uproar: ["8M"], + }, + }, + greedent: { + learnset: { + amnesia: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + belch: ["9L55", "8L55"], + bite: ["9L1", "8L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L20", "8M", "8L20"], + brutalswing: ["8M"], + bulldoze: ["9M"], + bulletseed: ["9M", "9L41", "8M", "8L41"], + counter: ["9L34", "8L34"], + covet: ["9L0", "8L0"], + crunch: ["9M", "8M"], + dig: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gyroball: ["8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + icefang: ["9M", "8M"], + irontail: ["8M"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + payback: ["8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "9L27", "8M", "8L27"], + round: ["8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spitup: ["9L15", "8L15"], + stockpile: ["9L15", "8L15"], + stompingtantrum: ["9M", "8M"], + stuffcheeks: ["9L1", "8L1"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superfang: ["9L48", "8L48"], + superpower: ["8M"], + swallow: ["9L15", "8L15"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + tailslap: ["8M"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunderfang: ["9M", "8M"], + uproar: ["8M"], + wildcharge: ["9M", "8M"], + }, + }, + rookidee: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bravebird: ["9M", "9L36", "8M", "8L36"], + defog: ["9E", "8E"], + drillpeck: ["9L28", "8L28"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["8M"], + furyattack: ["9L12", "8L12"], + honeclaws: ["9L8", "8L8"], + leer: ["9L1", "8L1"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L16", "8L16"], + powertrip: ["9L4", "8L4"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rocksmash: ["9E", "8E"], + roost: ["9E", "8E"], + round: ["8M"], + sandattack: ["9E", "8E"], + scaryface: ["9M", "9L24", "8M", "8L24"], + skyattack: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spite: ["9E", "8E"], + substitute: ["9M", "8M"], + swagger: ["9L32", "8L32"], + swift: ["9M", "8M"], + tailwind: ["9M", "9E", "8E"], + takedown: ["9M"], + taunt: ["9M", "9L20", "8M", "8L20"], + terablast: ["9M"], + thief: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + corvisquire: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bravebird: ["9M", "9L46", "8M", "8L46"], + drillpeck: ["9L34", "8L34"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["8M"], + furyattack: ["9L12", "8L12"], + honeclaws: ["9L1", "8L1"], + hurricane: ["9M"], + leer: ["9L1", "8L1"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L16", "8L16"], + powertrip: ["9L1", "8L1"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L28", "8M", "8L28"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L40", "8L40"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L22", "8M", "8L22"], + terablast: ["9M"], + thief: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + corviknight: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "8M"], + aircutter: ["9M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bravebird: ["9M", "9L50", "8M", "8L50"], + bulkup: ["9M", "8M"], + drillpeck: ["9L34", "8L34"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + faketears: ["9M", "8M"], + flashcannon: ["9M", "8M"], + fly: ["9M", "8M"], + focusenergy: ["8M"], + furyattack: ["9L12", "8L12"], + gigaimpact: ["9M", "8M"], + heavyslam: ["9M", "8M"], + honeclaws: ["9L1", "8L1"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1"], + ironhead: ["9M", "8M"], + leer: ["9L1", "8L1"], + lightscreen: ["9M", "8M"], + metalclaw: ["9M"], + metalsound: ["9L1", "8L1"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pluck: ["9L16", "8L16"], + powertrip: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L28", "8M", "8L28"], + screech: ["9L1", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + steelbeam: ["9M", "8T"], + steelwing: ["9L0", "8M", "8L0"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L42", "8L42"], + swift: ["9M", "8M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L22", "8M", "8L22"], + terablast: ["9M"], + thief: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + }, + }, + blipbug: { + learnset: { + infestation: ["8E"], + recover: ["8E"], + stickyweb: ["8E"], + strugglebug: ["8L1"], + supersonic: ["8E"], + }, + }, + dottler: { + learnset: { + allyswitch: ["8M"], + attract: ["8M"], + bodypress: ["8M"], + bugbuzz: ["8M"], + calmmind: ["8M"], + confusion: ["8L0"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + futuresight: ["8M"], + guardswap: ["8M"], + helpinghand: ["8M"], + imprison: ["8M"], + irondefense: ["8M"], + leechlife: ["8M"], + lightscreen: ["8M", "8L0"], + magicroom: ["8M"], + payback: ["8M"], + powerswap: ["8M"], + protect: ["8M"], + psychic: ["8M"], + psychicterrain: ["8M"], + psyshock: ["8M"], + reflect: ["8M", "8L0"], + rest: ["8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + storedpower: ["8M"], + strugglebug: ["8L1"], + substitute: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + orbeetle: { + learnset: { + afteryou: ["8L40"], + agility: ["8M", "8L12"], + allyswitch: ["8M", "8L24"], + attract: ["8M"], + batonpass: ["8M"], + bodypress: ["8M"], + bugbuzz: ["8M", "8L28"], + calmmind: ["8M", "8L44"], + confuseray: ["8L4"], + confusion: ["8L1"], + endure: ["8M"], + energyball: ["8M"], + expandingforce: ["8T"], + facade: ["8M"], + futuresight: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + guardswap: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypnosis: ["8L20"], + imprison: ["8M"], + irondefense: ["8M"], + leechlife: ["8M"], + lightscreen: ["8M", "8L1"], + magiccoat: ["8L8"], + magicroom: ["8M"], + mirrorcoat: ["8L32"], + payback: ["8M"], + powerswap: ["8M"], + protect: ["8M"], + psybeam: ["8L16"], + psychic: ["8M", "8L36"], + psychicterrain: ["8M", "8L48"], + psychocut: ["8M"], + psyshock: ["8M"], + reflect: ["8M", "8L1"], + rest: ["8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["8M"], + skillswap: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + storedpower: ["8M"], + strugglebug: ["8L1"], + substitute: ["8M"], + trick: ["8M"], + trickroom: ["8M"], + uturn: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["8M"], + }, + }, + nickit: { + learnset: { + agility: ["8M"], + assurance: ["8M", "8L16"], + attract: ["8M"], + batonpass: ["8M"], + beatup: ["8M", "8L4"], + dig: ["8M"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + foulplay: ["8M", "8L36"], + honeclaws: ["8L8"], + howl: ["8E"], + knockoff: ["8E"], + lashout: ["8T"], + mudshot: ["8M"], + nastyplot: ["8M", "8L20"], + nightslash: ["8L28"], + playrough: ["8M"], + protect: ["8M"], + quickattack: ["8L1"], + quickguard: ["8E"], + rest: ["8M"], + round: ["8M"], + screech: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L12"], + snore: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L24"], + swift: ["8M"], + tailslap: ["8M", "8L32"], + tailwhip: ["8L1"], + taunt: ["8M"], + thief: ["8M"], + torment: ["8E"], + }, + }, + thievul: { + learnset: { + acrobatics: ["8M"], + agility: ["8M"], + assurance: ["8M", "8L16"], + attract: ["8M"], + batonpass: ["8M"], + beatup: ["8M", "8L1"], + burningjealousy: ["8T"], + crunch: ["8M"], + darkpulse: ["8M"], + dig: ["8M"], + endure: ["8M"], + facade: ["8M"], + faketears: ["8M"], + firefang: ["8M"], + foulplay: ["8M", "8L46"], + gigaimpact: ["8M"], + grassknot: ["8M"], + honeclaws: ["8L1"], + hyperbeam: ["8M"], + icefang: ["8M"], + lashout: ["8T"], + mudshot: ["8M"], + nastyplot: ["8M", "8L22"], + nightslash: ["8L34"], + partingshot: ["8L52"], + playrough: ["8M"], + protect: ["8M"], + psychic: ["8M"], + quickattack: ["8L1"], + rest: ["8M"], + round: ["8M"], + screech: ["8M"], + shadowball: ["8M"], + shadowclaw: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M", "8L12"], + snore: ["8M"], + substitute: ["8M"], + suckerpunch: ["8L28"], + swift: ["8M"], + tailslap: ["8M", "8L40"], + tailwhip: ["8L1"], + taunt: ["8M"], + thief: ["8M", "8L0"], + thunderfang: ["8M"], + uturn: ["8M"], + }, + }, + gossifleur: { + learnset: { + aromatherapy: ["8L32"], + attract: ["8M"], + bulletseed: ["8M"], + charm: ["8M"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + grassknot: ["8M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + growth: ["8E"], + helpinghand: ["8M"], + hypervoice: ["8M", "8L28"], + leafage: ["8L1"], + leafstorm: ["8M", "8L36"], + leaftornado: ["8L21"], + leechseed: ["8E"], + lightscreen: ["8M"], + magicalleaf: ["8M"], + poisonpowder: ["8E"], + pollenpuff: ["8M"], + protect: ["8M"], + rapidspin: ["8L4"], + razorleaf: ["8L12"], + rest: ["8M"], + round: ["8M", "8L16"], + sing: ["8L1"], + sleeppowder: ["8E"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stunspore: ["8E"], + substitute: ["8M"], + sunnyday: ["8M"], + sweetscent: ["8L8"], + synthesis: ["8L24"], + worryseed: ["8E"], + }, + }, + eldegoss: { + learnset: { + aromatherapy: ["8L40"], + attract: ["8M"], + bulletseed: ["8M"], + charm: ["8M"], + cottonguard: ["8L52"], + cottonspore: ["8L0"], + endure: ["8M"], + energyball: ["8M"], + facade: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + grassknot: ["8M"], + grassyglide: ["8T"], + grassyterrain: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypervoice: ["8M", "8L34"], + leafage: ["8L1"], + leafstorm: ["8M", "8L46"], + leaftornado: ["8L23"], + lightscreen: ["8M"], + magicalleaf: ["8M"], + pollenpuff: ["8M"], + protect: ["8M"], + rapidspin: ["8L1"], + razorleaf: ["8L12"], + rest: ["8M"], + round: ["8M", "8L16"], + seedbomb: ["8M"], + sing: ["8L1"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + sweetscent: ["8L1"], + synthesis: ["8L28"], + weatherball: ["8M"], + }, + }, + wooloo: { + learnset: { + agility: ["8M"], + attract: ["8M"], + copycat: ["8L8"], + cottonguard: ["8L36"], + counter: ["8E"], + defensecurl: ["8L4"], + doubleedge: ["8L40"], + doublekick: ["8L16"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + grassyglide: ["8T"], + growl: ["8L1"], + guardsplit: ["8L12"], + guardswap: ["8M", "8L28"], + headbutt: ["8L21"], + payback: ["8M"], + protect: ["8M"], + rest: ["8M"], + reversal: ["8M", "8L32"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8E"], + substitute: ["8M"], + swagger: ["8E"], + tackle: ["8L1"], + takedown: ["8L25"], + thunderwave: ["8M"], + wildcharge: ["8M"], + }, + }, + dubwool: { + learnset: { + agility: ["8M"], + attract: ["8M"], + batonpass: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + bounce: ["8M"], + copycat: ["8L1"], + cottonguard: ["8L44"], + defensecurl: ["8L1"], + doubleedge: ["8L50"], + doublekick: ["8L16"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + gigaimpact: ["8M"], + grassyglide: ["8T"], + growl: ["8L1"], + guardsplit: ["8L12"], + guardswap: ["8M", "8L32"], + headbutt: ["8L21"], + hyperbeam: ["8M"], + lastresort: ["8L56"], + megakick: ["8M"], + payback: ["8M"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + reversal: ["8M", "8L38"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + substitute: ["8M"], + swordsdance: ["8M"], + tackle: ["8L1"], + takedown: ["8L27"], + thunderwave: ["8M"], + wildcharge: ["8M"], + zenheadbutt: ["8M"], + }, + }, + chewtle: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bite: ["9L7", "8L7"], + bodyslam: ["9M", "9L49", "8M", "8L49"], + chillingwater: ["9M"], + counter: ["9L28", "8L28"], + crunch: ["9M"], + dive: ["8M"], + dragontail: ["9M", "9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M"], + gastroacid: ["9E", "8E"], + headbutt: ["9L21", "8L21"], + hydropump: ["9M", "8M"], + icefang: ["9M", "8M"], + jawlock: ["9L35", "8L35"], + liquidation: ["9M", "9L42", "8M", "8L42"], + mudshot: ["9M", "8M"], + payback: ["8M"], + poisonjab: ["9M"], + protect: ["9M", "9L14", "8M", "8L14"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + round: ["8M"], + scaleshot: ["8T"], + scaryface: ["9M"], + shellsmash: ["9E"], + skittersmack: ["8T"], + skullbash: ["8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stompingtantrum: ["9M"], + substitute: ["9M", "8M"], + surf: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + waterfall: ["9M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + drednaw: { + learnset: { + assurance: ["8M"], + attract: ["8M"], + bite: ["9L1", "8L1"], + blizzard: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L57", "8M", "8L57"], + bulldoze: ["9M", "8M"], + chillingwater: ["9M"], + counter: ["9L30", "8L30"], + crunch: ["9M", "9L1", "8M", "8L1"], + dig: ["9M", "8M"], + dive: ["8M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L21", "8L21"], + headsmash: ["9L66", "8L66"], + highhorsepower: ["8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icefang: ["9M", "8M"], + icespinner: ["9M"], + irondefense: ["9M", "8M"], + irontail: ["8M"], + jawlock: ["9L39", "8L39"], + liquidation: ["9M", "9L48", "8M", "8L48"], + megahorn: ["8M"], + meteorbeam: ["8T"], + muddywater: ["8M"], + mudshot: ["9M", "8M"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "9L1", "8M", "8L1"], + raindance: ["9M", "8M"], + razorshell: ["9L1", "8M", "8L1"], + rest: ["9M", "8M"], + revenge: ["8M"], + rockblast: ["9M", "8M"], + rockpolish: ["9L1", "8L1"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "9L0", "8M", "8L0"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["8M"], + scald: ["8M"], + scaleshot: ["8T"], + scaryface: ["9M", "8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + superpower: ["8M"], + surf: ["9M", "8M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + waterfall: ["9M", "8M"], + watergun: ["9L1", "8L1"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + yamper: { + learnset: { + attract: ["8M"], + bite: ["8L10"], + charge: ["8L35"], + charm: ["8M", "8L26"], + crunch: ["8M", "8L30"], + dig: ["8M"], + discharge: ["8E"], + doubleedge: ["8E"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + firefang: ["8M"], + flamecharge: ["8E"], + helpinghand: ["8M"], + howl: ["8E"], + nuzzle: ["8L5"], + playrough: ["8M", "8L45"], + protect: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + roar: ["8L15"], + round: ["8M"], + sandattack: ["8E"], + sleeptalk: ["8M"], + snarl: ["8M"], + snore: ["8M"], + spark: ["8L20"], + substitute: ["8M"], + swift: ["8M"], + tackle: ["8L1"], + tailwhip: ["8L1"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderwave: ["8M"], + uproar: ["8M"], + voltswitch: ["8M"], + wildcharge: ["8M", "8L40"], + }, + }, + boltund: { + learnset: { + agility: ["8M"], + attract: ["8M"], + bite: ["8L1"], + bulkup: ["8M"], + charge: ["8L41"], + charm: ["8M", "8L28"], + crunch: ["8M", "8L34"], + dig: ["8M"], + eerieimpulse: ["8M"], + electricterrain: ["8M", "8L62"], + electrify: ["8L1"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + firefang: ["8M"], + focusenergy: ["8M"], + gigaimpact: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + nuzzle: ["8L1"], + playrough: ["8M", "8L55"], + protect: ["8M"], + psychicfangs: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + roar: ["8L15"], + round: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M"], + snore: ["8M"], + spark: ["8L20"], + substitute: ["8M"], + swift: ["8M"], + tackle: ["8L1"], + tailwhip: ["8L1"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderwave: ["8M"], + uproar: ["8M"], + voltswitch: ["8M"], + wildcharge: ["8M", "8L48"], + }, + }, + rolycoly: { + learnset: { + ancientpower: ["9L20", "8L20"], + attract: ["8M"], + block: ["9E", "8E"], + bodyslam: ["9M"], + bulldoze: ["9M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + explosion: ["9E", "8E"], + facade: ["9M", "8M"], + gyroball: ["8M"], + heatcrash: ["9L35", "8M", "8L35"], + incinerate: ["9L25", "8L25"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + meteorbeam: ["8T"], + mudslap: ["9M", "9E", "8E"], + powergem: ["9M"], + protect: ["9M", "8M"], + rapidspin: ["9L5", "8L5"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "9L40", "8M", "8L40"], + rockpolish: ["9L15", "8L15"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["8M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9L10", "8L10"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "9L30", "8M", "8L30"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "8M"], + }, + }, + carkol: { + learnset: { + ancientpower: ["9L20", "8L20"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + burnup: ["8L55"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L0", "8L0"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + gyroball: ["8M"], + heatcrash: ["9L41", "8M", "8L41"], + heatwave: ["9M", "8M"], + heavyslam: ["9M", "8M"], + highhorsepower: ["8M"], + incinerate: ["9L27", "8L27"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + meteorbeam: ["8T"], + mudslap: ["9M"], + overheat: ["9M", "8M"], + powergem: ["9M"], + protect: ["9M", "8M"], + rapidspin: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "9L48", "8M", "8L48"], + rockpolish: ["9L15", "8L15"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["8M"], + scald: ["8M"], + scorchingsands: ["8T"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9L1", "8L1"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "9L35", "8M", "8L35"], + stoneedge: ["9M", "9L55", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "8M"], + }, + }, + coalossal: { + learnset: { + ancientpower: ["9L20", "8L20"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + burnup: ["8L63"], + dig: ["9M", "8M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + firepunch: ["9M", "8M"], + firespin: ["9M", "8M"], + flamecharge: ["9M", "9L1", "8L1"], + flamethrower: ["9M", "8M"], + flareblitz: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gyroball: ["8M"], + heatcrash: ["9L45", "8M", "8L45"], + heatwave: ["9M", "8M"], + heavyslam: ["9M", "8M"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M"], + incinerate: ["9L27", "8L27"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + overheat: ["9M", "8M"], + powergem: ["9M"], + protect: ["9M", "8M"], + rapidspin: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "9L54", "8M", "8L54"], + rockpolish: ["9L15", "8L15"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["8M"], + scald: ["8M"], + scorchingsands: ["8T"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + smackdown: ["9L1", "8L1"], + smokescreen: ["9L1", "8L1"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + spikes: ["9M", "8M"], + stealthrock: ["9M", "9L37", "8M", "8L37"], + stoneedge: ["9M", "9L63", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + tarshot: ["9L0", "8L0"], + terablast: ["9M"], + willowisp: ["9M", "8M"], + }, + }, + applin: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M"], + defensecurl: ["9E", "8E"], + dracometeor: ["8T"], + grassyglide: ["8T"], + pounce: ["9M"], + recycle: ["9E", "8E"], + rollout: ["9E", "8E"], + suckerpunch: ["9E", "8E"], + terablast: ["9M"], + withdraw: ["9L1", "8L1"], + }, + }, + flapple: { + learnset: { + acidspray: ["9M", "9L4", "8L4"], + acrobatics: ["9M", "9L8", "8M", "8L8"], + aerialace: ["9M"], + airslash: ["9M", "8M"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + bulletseed: ["9M", "8M"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L20", "8L20"], + dragondance: ["9M", "9L24", "8M", "8L24"], + dragonpulse: ["9M", "9L28", "8M", "8L28"], + dragonrush: ["9L44", "8L44"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + facade: ["9M", "8M"], + fly: ["9M", "9L40", "8M", "8L40"], + focusenergy: ["8M"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + gravapple: ["9L32", "8L32"], + growth: ["9L1", "8L1"], + heavyslam: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L36", "8M", "8L36"], + leafstorm: ["9M"], + leechseed: ["9L12", "8L12"], + magicalleaf: ["9M"], + outrage: ["9M", "8M"], + pounce: ["9M"], + protect: ["9M", "9L16", "8M", "8L16"], + recycle: ["9L1", "8L1"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + twister: ["9L1", "8L1"], + uturn: ["9M", "8M"], + wingattack: ["9L0", "8L0"], + withdraw: ["9L1", "8L1"], + }, + }, + appletun: { + learnset: { + amnesia: ["9M", "8M"], + appleacid: ["9L28", "8L28"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L32", "8M", "8L32"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "9L20", "8M", "8L20"], + curse: ["9L4", "8L4"], + dracometeor: ["9M", "8T"], + dragonpulse: ["9M", "9L40", "8M", "8L40"], + dragontail: ["9M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L44", "8M", "8L44"], + facade: ["9M", "8M"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyglide: ["8T"], + grassyterrain: ["9M"], + growth: ["9L1", "8L1"], + gyroball: ["8M"], + headbutt: ["9L0", "8L0"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L36", "8M", "8L36"], + ironhead: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L12", "8L12"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M"], + outrage: ["9M", "8M"], + payback: ["8M"], + pounce: ["9M"], + protect: ["9M", "9L16", "8M", "8L16"], + raindance: ["9M"], + recover: ["9L24", "8L24"], + recycle: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + stomp: ["9L8", "8L8"], + stompingtantrum: ["9M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + sweetscent: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + withdraw: ["9L1", "8L1"], + zenheadbutt: ["9M"], + }, + }, + silicobra: { + learnset: { + attract: ["8M"], + belch: ["9E", "8E"], + bodyslam: ["9M"], + brutalswing: ["9L10", "8M", "8L10"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + coil: ["9L45", "8L45"], + dig: ["9M", "9L30", "8M", "8L30"], + dragonrush: ["9E", "8E"], + drillrun: ["9M", "8M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + glare: ["9L25", "8L25"], + headbutt: ["9L20", "8L20"], + lastresort: ["9E", "8E"], + minimize: ["9L5", "8L5"], + mudshot: ["9M", "8M"], + mudslap: ["9M", "9E", "8E"], + poisontail: ["9M", "9E", "8E"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + round: ["8M"], + sandattack: ["9L1", "8L1"], + sandstorm: ["9M", "9L35", "8M", "8L35"], + sandtomb: ["9L50", "8M", "8L50"], + scaleshot: ["8T"], + scaryface: ["9M"], + scorchingsands: ["8T"], + screech: ["8M"], + skittersmack: ["8T"], + slam: ["9L40", "8L40"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + wrap: ["9L1", "8L1"], + }, + }, + sandaconda: { + learnset: { + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M"], + brutalswing: ["9L1", "8M", "8L1"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + coil: ["9L49", "8L49"], + dig: ["9M", "9L30", "8M", "8L30"], + drillrun: ["9M", "8M"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + glare: ["9L25", "8L25"], + headbutt: ["9L20", "8L20"], + highhorsepower: ["8M"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + minimize: ["9L1", "8L1"], + mudshot: ["9M", "8M"], + mudslap: ["9M"], + outrage: ["9M", "8M"], + poisontail: ["9M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + sandattack: ["9L1", "8L1"], + sandstorm: ["9M", "9L35", "8M", "8L35"], + sandtomb: ["9L51", "8M", "8L51"], + scaleshot: ["8T"], + scaryface: ["9M"], + scorchingsands: ["8T"], + screech: ["8M"], + skittersmack: ["8T"], + skullbash: ["8L1"], + slam: ["9L42", "8L42"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + wrap: ["9L1", "8L1"], + zenheadbutt: ["9M", "8M"], + }, + }, + cramorant: { + learnset: { + aerialace: ["8E"], + agility: ["8M"], + airslash: ["8M"], + amnesia: ["8M", "8L42"], + aquaring: ["8E"], + assurance: ["8M"], + attract: ["8M"], + belch: ["8L1"], + blizzard: ["8M"], + bravebird: ["8M"], + defog: ["8E"], + dive: ["8M", "8L28"], + drillpeck: ["8L35"], + dualwingbeat: ["8T"], + endure: ["8M"], + facade: ["8M"], + featherdance: ["8E"], + fly: ["8M"], + furyattack: ["8L14"], + gigaimpact: ["8M"], + hurricane: ["8M"], + hydropump: ["8M", "8L56"], + hyperbeam: ["8M"], + icebeam: ["8M"], + icywind: ["8M"], + liquidation: ["8M"], + peck: ["8L1"], + pluck: ["8L21"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M"], + reversal: ["8M"], + roost: ["8E"], + round: ["8M"], + scald: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + spitup: ["8L1"], + steelwing: ["8M"], + stockpile: ["8L1"], + substitute: ["8M"], + superpower: ["8M"], + surf: ["8M"], + swallow: ["8L1"], + thief: ["8M"], + thrash: ["8L49"], + throatchop: ["8M"], + uproar: ["8M"], + watergun: ["8L7"], + weatherball: ["8M"], + whirlpool: ["8M"], + }, + }, + arrokuda: { + learnset: { + acupressure: ["9E", "8E"], + agility: ["9M", "9L18", "8M", "8L18"], + aquajet: ["9L1", "8L1"], + assurance: ["8M"], + attract: ["8M"], + bite: ["9L12", "8L12"], + bounce: ["8M"], + brickbreak: ["9M", "8M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "9L36", "8M", "8L36"], + dive: ["9L24", "8M", "8L24"], + doubleedge: ["9L48", "8L48"], + drillrun: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + focusenergy: ["9L30", "8M"], + furyattack: ["9L6", "8L6"], + hydropump: ["9M"], + icefang: ["9M", "8M"], + laserfocus: ["8L30"], + liquidation: ["9M", "9L42", "8M", "8L42"], + nightslash: ["9E", "8E"], + peck: ["9L1", "8L1"], + poisonjab: ["8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + scaleshot: ["8T"], + slash: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + surf: ["9M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E", "8E"], + throatchop: ["8M"], + waterfall: ["9M", "8M"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + barraskewda: { + learnset: { + agility: ["9M", "9L18", "8M", "8L18"], + aquajet: ["9L1", "8L1"], + assurance: ["8M"], + attract: ["8M"], + bite: ["9L1", "8L1"], + blizzard: ["9M"], + bounce: ["8M"], + brickbreak: ["9M", "8M"], + chillingwater: ["9M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "9L40", "8M", "8L40"], + dive: ["9L24", "8M", "8L24"], + doubleedge: ["9L56", "8L56"], + drillrun: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flipturn: ["8T"], + focusenergy: ["9L32", "8M"], + furyattack: ["9L1", "8L1"], + gigaimpact: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M"], + icefang: ["9M", "8M"], + laserfocus: ["8L32"], + liquidation: ["9M", "9L48", "8M", "8L48"], + peck: ["9L1", "8L1"], + poisonjab: ["9M", "8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + scaleshot: ["8T"], + scaryface: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9L1", "8M", "8L1"], + waterfall: ["9M", "8M"], + waterpulse: ["9M"], + whirlpool: ["8M"], + }, + }, + toxel: { + learnset: { + acid: ["9L1", "8L1", "8S0"], + attract: ["8M"], + belch: ["9L1", "8L1"], + charm: ["9M"], + encore: ["9M", "8M"], + endeavor: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flail: ["9L1", "8L1", "8S0"], + growl: ["9L1", "8L1", "8S0"], + metalsound: ["9E", "8E"], + nuzzle: ["9L1", "8L1", "8S0"], + poweruppunch: ["8E"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + }, + eventData: [ + {generation: 8, level: 1, isHidden: false, moves: ["nuzzle", "growl", "flail", "acid"], pokeball: "luxuryball"}, + ], + }, + toxtricity: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M", "9L1", "8L1"], + attract: ["8M"], + belch: ["9L1", "8L1"], + boomburst: ["9L48", "8L48", "8S0"], + brickbreak: ["9M"], + charge: ["9L4", "8L4"], + chargebeam: ["9M"], + charm: ["9M"], + discharge: ["9L36", "8L36"], + drainpunch: ["9M", "8M"], + eerieimpulse: ["9M", "8M", "8L1"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firepunch: ["9M", "8M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + leer: ["9L1", "8L1"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + nobleroar: ["9L1", "8L1"], + nuzzle: ["9L1", "8L1"], + overdrive: ["9L44", "8L44", "8S0"], + payback: ["8M"], + poisonjab: ["9M", "9L40", "8M", "8L40"], + poisontail: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "8M"], + risingvoltage: ["8T", "8S0"], + round: ["8M"], + scaryface: ["9M", "9L12", "8M", "8L12"], + screech: ["9L24", "8M", "8L24"], + shiftgear: ["9L52", "8L52"], + shockwave: ["9L8", "8L8"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M", "8S0"], + snarl: ["9M", "8M"], + snore: ["8M"], + spark: ["9L0", "8L0"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L28", "8L28"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L16", "8M", "8L16"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + toxic: ["9L32", "8L32"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uproar: ["8M"], + venoshock: ["9M", "8M", "8L20"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 50, shiny: true, nature: "Rash", abilities: ["punkrock"], moves: ["overdrive", "sludgewave", "boomburst", "risingvoltage"], pokeball: "cherishball"}, + ], + }, + toxtricitylowkey: { + learnset: { + acid: ["9L1", "8L1"], + acidspray: ["9M", "9L1", "8L1"], + attract: ["8M"], + belch: ["9L1", "8L1"], + boomburst: ["9L48", "8L48"], + brickbreak: ["9M"], + charge: ["9L4", "8L4"], + chargebeam: ["9M"], + charm: ["9M"], + discharge: ["9L36", "8L36"], + drainpunch: ["9M", "8M"], + eerieimpulse: ["9M", "8M", "8L1"], + electricterrain: ["9M"], + electroball: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firepunch: ["9M", "8M"], + flail: ["9L1", "8L1"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + gunkshot: ["9M", "8M"], + helpinghand: ["9M"], + hex: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + leer: ["9L1", "8L1"], + magneticflux: ["9L52", "8L52"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M"], + nobleroar: ["9L1", "8L1"], + nuzzle: ["9L1", "8L1"], + overdrive: ["9L44", "8L44"], + payback: ["8M"], + poisonjab: ["9M", "9L40", "8M", "8L40"], + poisontail: ["9M"], + protect: ["9M", "8M"], + raindance: ["9M"], + rest: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + scaryface: ["9M", "9L12", "8M", "8L12"], + screech: ["9L24", "8M", "8L24"], + shockwave: ["9L8", "8L8"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M"], + sludgewave: ["8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + spark: ["9L0", "8L0"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swagger: ["9L28", "8L28"], + swift: ["9M", "8M"], + takedown: ["9M"], + taunt: ["9M", "9L16", "8M", "8L16"], + tearfullook: ["9L1", "8L1"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderfang: ["9M"], + thunderpunch: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + toxic: ["9L32", "8L32"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uproar: ["8M"], + venomdrench: ["8M", "8L20"], + venoshock: ["9M"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], + }, + }, + sizzlipede: { + learnset: { + attract: ["8M"], + bite: ["8L10"], + brutalswing: ["8M"], + bugbite: ["8L20"], + bugbuzz: ["8M"], + burnup: ["8L55"], + coil: ["8L25"], + crunch: ["8M", "8L40"], + defensecurl: ["8E"], + ember: ["8L1"], + endure: ["8M"], + facade: ["8M"], + firelash: ["8L45"], + firespin: ["8M", "8L35"], + flamewheel: ["8L15"], + heatcrash: ["8M"], + heatwave: ["8M"], + knockoff: ["8E"], + leechlife: ["8M"], + lunge: ["8L50"], + powerwhip: ["8M"], + protect: ["8M"], + rest: ["8M"], + rollout: ["8E"], + round: ["8M"], + scald: ["8M"], + scorchingsands: ["8T"], + skittersmack: ["8T"], + slam: ["8L30"], + sleeptalk: ["8M"], + smokescreen: ["8L1"], + snore: ["8M"], + strugglebug: ["8E"], + substitute: ["8M"], + sunnyday: ["8M"], + venoshock: ["8M"], + wrap: ["8L5"], + }, + }, + centiskorch: { + learnset: { + attract: ["8M"], + bite: ["8L1"], + brutalswing: ["8M"], + bugbite: ["8L20"], + bugbuzz: ["8M"], + burnup: ["8L67"], + coil: ["8L25"], + crunch: ["8M", "8L46"], + ember: ["8L1"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firelash: ["8L53"], + firespin: ["8M", "8L39"], + flamethrower: ["8M"], + flamewheel: ["8L15"], + flareblitz: ["8M"], + gigaimpact: ["8M"], + heatcrash: ["8M"], + heatwave: ["8M"], + hyperbeam: ["8M"], + inferno: ["8L1"], + leechlife: ["8M"], + lunge: ["8L60"], + mysticalfire: ["8M"], + overheat: ["8M"], + powerwhip: ["8M"], + protect: ["8M"], + rest: ["8M"], + round: ["8M"], + scald: ["8M"], + scorchingsands: ["8T"], + skittersmack: ["8T"], + slam: ["8L32"], + sleeptalk: ["8M"], + smokescreen: ["8L1"], + snore: ["8M"], + solarbeam: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + thunderfang: ["8M"], + venoshock: ["8M"], + willowisp: ["8M"], + wrap: ["8L1"], + xscissor: ["8M"], + }, + }, + clobbopus: { + learnset: { + attract: ["8M"], + bind: ["8L10"], + bodyslam: ["8M"], + brickbreak: ["8M", "8L20"], + brine: ["8M"], + bulkup: ["8M", "8L25"], + circlethrow: ["8E"], + closecombat: ["8M"], + coaching: ["8T"], + detect: ["8L15"], + dive: ["8M"], + endure: ["8M"], + facade: ["8M"], + feint: ["8L5"], + focusblast: ["8M"], + icepunch: ["8M"], + leer: ["8L1"], + liquidation: ["8M"], + megapunch: ["8M"], + muddywater: ["8M"], + mudshot: ["8M"], + painsplit: ["8E"], + payback: ["8M"], + poweruppunch: ["8E"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["8M", "8L40"], + rocksmash: ["8L1"], + round: ["8M"], + seismictoss: ["8E"], + sleeptalk: ["8M"], + snore: ["8M"], + soak: ["8E"], + submission: ["8L30"], + substitute: ["8M"], + suckerpunch: ["8E"], + superpower: ["8M", "8L45"], + taunt: ["8M", "8L35"], + waterfall: ["8M"], + workup: ["8M"], + }, + }, + grapploct: { + learnset: { + attract: ["8M"], + bind: ["8L1"], + bodyslam: ["8M"], + brickbreak: ["8M", "8L20"], + brine: ["8M"], + brutalswing: ["8M"], + bulkup: ["8M", "8L25"], + closecombat: ["8M"], + coaching: ["8T"], + detect: ["8L15"], + dig: ["8M"], + dive: ["8M"], + drainpunch: ["8M"], + endure: ["8M"], + facade: ["8M"], + feint: ["8L1"], + focusblast: ["8M"], + gigaimpact: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icepunch: ["8M"], + leer: ["8L1"], + liquidation: ["8M"], + megapunch: ["8M"], + muddywater: ["8M"], + mudshot: ["8M"], + octazooka: ["8L1"], + octolock: ["8L0"], + payback: ["8M"], + protect: ["8M"], + rest: ["8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["8M", "8L40"], + rocksmash: ["8L1"], + round: ["8M"], + scaryface: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["8M"], + snore: ["8M"], + stompingtantrum: ["8M"], + submission: ["8L30"], + substitute: ["8M"], + superpower: ["8M", "8L45"], + surf: ["8M"], + taunt: ["8M", "8L35"], + topsyturvy: ["8L50"], + waterfall: ["8M"], + whirlpool: ["8M"], + workup: ["8M"], + }, + }, + sinistea: { + learnset: { + allyswitch: ["9E", "8M"], + aromatherapy: ["8L30"], + aromaticmist: ["9L6", "8L6"], + astonish: ["9L1", "8L1"], + batonpass: ["9M", "8M"], + calmmind: ["9M"], + confuseray: ["9M"], + darkpulse: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigadrain: ["9M", "9L36", "8M", "8L36"], + hex: ["9M", "8M"], + imprison: ["9M", "8M"], + magicalleaf: ["9M"], + megadrain: ["9L12", "8L12"], + memento: ["9L54", "8L54"], + metronome: ["9M", "8M"], + nastyplot: ["9M", "9L42", "8M", "8L42"], + nightshade: ["9M"], + payback: ["8M"], + phantomforce: ["9M", "8M"], + poltergeist: ["8T"], + protect: ["9M", "8M", "8L18"], + psybeam: ["9M"], + psychic: ["9M", "8M"], + psyshock: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + shadowball: ["9M", "9L48", "8M", "8L48"], + shellsmash: ["9L60", "8L60"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + sweetscent: ["9L30"], + terablast: ["9M"], + trick: ["9M", "8M"], + trickroom: ["9M"], + willowisp: ["9M", "8M"], + withdraw: ["9L1", "8L1"], + wonderroom: ["8M"], + }, + }, + sinisteaantique: { + learnset: { + allyswitch: ["9E"], + aromatherapy: ["8S0"], + aromaticmist: ["9L6"], + astonish: ["9L1"], + batonpass: ["9M"], + calmmind: ["9M"], + celebrate: ["8S0"], + confuseray: ["9M"], + darkpulse: ["9M"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M", "9L36"], + hex: ["9M"], + imprison: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L12"], + memento: ["9L54", "8S0"], + metronome: ["9M", "8S0"], + nastyplot: ["9M", "9L42"], + nightshade: ["9M"], + phantomforce: ["9M"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + rest: ["9M"], + shadowball: ["9M", "9L48"], + shellsmash: ["9L60"], + skillswap: ["9M"], + sleeptalk: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L24"], + sweetscent: ["9L30"], + terablast: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + willowisp: ["9M"], + withdraw: ["9L1"], + }, + eventData: [ + {generation: 8, level: 50, isHidden: true, moves: ["memento", "metronome", "aromatherapy", "celebrate"], pokeball: "cherishball"}, + ], + }, + polteageist: { + learnset: { + allyswitch: ["8M"], + aromatherapy: ["8L30"], + aromaticmist: ["9L1", "8L1"], + astonish: ["9L1", "8L1"], + batonpass: ["9M", "8M"], + calmmind: ["9M"], + confuseray: ["9M"], + curse: ["9L66", "8L66"], + darkpulse: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigadrain: ["9M", "9L36", "8M", "8L36"], + gigaimpact: ["9M", "8M"], + hex: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M"], + megadrain: ["9L1", "8L1"], + memento: ["9L54", "8L54"], + metronome: ["9M", "8M"], + nastyplot: ["9M", "9L42", "8M", "8L42"], + nightshade: ["9M"], + payback: ["8M"], + phantomforce: ["9M", "8M"], + poltergeist: ["8T"], + protect: ["9M", "9L18", "8M", "8L18"], + psybeam: ["9M"], + psychic: ["9M", "8M"], + psyshock: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + selfdestruct: ["8M"], + shadowball: ["9M", "9L48", "8M", "8L48"], + shellsmash: ["9L60", "8L60"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + strengthsap: ["9L1", "8L1"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + sweetscent: ["9L30"], + teatime: ["9L0", "8L0"], + terablast: ["9M"], + trick: ["9M", "8M"], + trickroom: ["9M"], + willowisp: ["9M", "8M"], + withdraw: ["9L1", "8L1"], + wonderroom: ["8M"], + }, + }, + hatenna: { + learnset: { + afteryou: ["9E", "8E"], + aromatherapy: ["8L15"], + aromaticmist: ["9L15", "8E"], + attract: ["8M"], + batonpass: ["9M", "8M"], + calmmind: ["9M", "9L35", "8M", "8L35"], + charm: ["9M", "8M"], + confusion: ["9L1", "8L1"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "9L30", "8M", "8L30"], + disarmingvoice: ["9M", "9L10", "8L10"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + gigadrain: ["9M", "8M"], + healingwish: ["9L45", "8L45"], + healpulse: ["9L25", "8L25"], + helpinghand: ["9M", "8M"], + imprison: ["9M", "8M"], + lifedew: ["9L5", "8L5"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + metronome: ["9M"], + mistyterrain: ["9M"], + mysticalfire: ["9E", "8M"], + nuzzle: ["9E", "8E"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L20", "8L20"], + psychic: ["9M", "9L40", "8M", "8L40"], + psychicterrain: ["9M"], + psyshock: ["9M", "8M"], + quash: ["9E", "8E"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + trick: ["9M"], + trickroom: ["9M"], + }, + }, + hattrem: { + learnset: { + aromatherapy: ["8L15"], + aromaticmist: ["9L15"], + attract: ["8M"], + batonpass: ["9M", "8M"], + brutalswing: ["9L0", "8M", "8L0"], + calmmind: ["9M", "9L37", "8M", "8L37"], + charm: ["9M", "8M"], + confusion: ["9L1", "8L1"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "9L30", "8M", "8L30"], + disarmingvoice: ["9M", "9L1", "8L1"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + gigadrain: ["9M", "8M"], + healingwish: ["9L51", "8L51"], + healpulse: ["9L25", "8L25"], + helpinghand: ["9M", "8M"], + imprison: ["9M", "8M"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + metronome: ["9M"], + mistyterrain: ["9M"], + mysticalfire: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L20", "8L20"], + psychic: ["9M", "9L44", "8M", "8L44"], + psychicterrain: ["9M"], + psyshock: ["9M", "8M"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + trick: ["9M"], + trickroom: ["9M"], + }, + }, + hatterene: { + learnset: { + agility: ["9M"], + aromatherapy: ["8L15"], + aromaticmist: ["9L15"], + attract: ["8M"], + batonpass: ["9M", "8M"], + brutalswing: ["9L1", "8M", "8L1"], + calmmind: ["9M", "9L37", "8M", "8L37"], + charm: ["9M", "8M"], + confusion: ["9L1", "8L1"], + darkpulse: ["9M", "8M"], + dazzlinggleam: ["9M", "9L30", "8M", "8L30"], + disarmingvoice: ["9M", "9L1", "8L1"], + drainingkiss: ["9M", "8M"], + endure: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + futuresight: ["8M"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + guardswap: ["8M"], + healingwish: ["9L55", "8L55"], + healpulse: ["9L25", "8L25"], + helpinghand: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lifedew: ["9L1", "8L1"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicpowder: ["9L64", "8L64"], + magicroom: ["8M"], + metronome: ["9M"], + mistyexplosion: ["8T"], + mistyterrain: ["9M"], + mysticalfire: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + powerswap: ["8M"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L20", "8L20"], + psychic: ["9M", "9L46", "8M", "8L46"], + psychicterrain: ["9M"], + psychocut: ["9L0", "8M", "8L0"], + psyshock: ["9M", "8M"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + swordsdance: ["9M", "8M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + trick: ["9M"], + trickroom: ["9M", "8M"], + wonderroom: ["8M"], + }, + }, + impidimp: { + learnset: { + assurance: ["9L16", "8M", "8L16"], + attract: ["8M"], + bite: ["9L4", "8L4"], + burningjealousy: ["8T"], + chillingwater: ["9M"], + confide: ["9L1", "8L1"], + darkpulse: ["9M", "9L33", "8M", "8L33"], + dazzlinggleam: ["9M", "8M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M", "9L12", "8M", "8L12"], + flatter: ["9L8", "8L8"], + fling: ["9M"], + foulplay: ["9M", "9L44", "8M", "8L44"], + lashout: ["8T"], + leechlife: ["9M", "8M"], + lightscreen: ["9M"], + lowkick: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + mistyterrain: ["9M"], + nastyplot: ["9M", "9L36", "8M", "8L36"], + partingshot: ["9E"], + playrough: ["9M", "9L40", "8M", "8L40"], + protect: ["9M", "8M"], + reflect: ["9M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + round: ["8M"], + scaryface: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + swagger: ["9L20", "8L20"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunderwave: ["9M", "8M"], + torment: ["9L28", "8L28"], + trailblaze: ["9M"], + trick: ["9M", "8M"], + uproar: ["8M"], + }, + }, + morgrem: { + learnset: { + assurance: ["9L16", "8M", "8L16"], + attract: ["8M"], + bite: ["9L1", "8L1"], + burningjealousy: ["8T"], + chillingwater: ["9M"], + confide: ["9L1", "8L1"], + darkpulse: ["9M", "9L35", "8M", "8L35"], + dazzlinggleam: ["9M", "8M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M", "9L12", "8M", "8L12"], + falsesurrender: ["9L0", "8L0"], + flatter: ["9L1", "8L1"], + fling: ["9M"], + foulplay: ["9M", "9L52", "8M", "8L52"], + imprison: ["9M"], + lashout: ["8T"], + leechlife: ["9M", "8M"], + lightscreen: ["9M", "8M"], + lowkick: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + mistyterrain: ["9M"], + nastyplot: ["9M", "9L40", "8M", "8L40"], + playrough: ["9M", "9L46", "8M", "8L46"], + protect: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + round: ["8M"], + scaryface: ["9M"], + shadowclaw: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + swagger: ["9L20", "8L20"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + throatchop: ["8M"], + thunderwave: ["9M", "8M"], + torment: ["9L28", "8L28"], + trailblaze: ["9M"], + trick: ["9M", "8M"], + uproar: ["8M"], + }, + }, + grimmsnarl: { + learnset: { + assurance: ["9L16", "8M", "8L16"], + attract: ["8M"], + bite: ["9L1", "8L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + bulkup: ["9M", "9L1", "8M", "8L1"], + burningjealousy: ["8T"], + chillingwater: ["9M"], + confide: ["9L1", "8L1"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "9L35", "8M", "8L35"], + dazzlinggleam: ["9M", "8M"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fakeout: ["9L1", "8L1"], + faketears: ["9M", "9L12", "8M", "8L12"], + falsesurrender: ["9L1", "8L1"], + firepunch: ["9M", "8M"], + flatter: ["9L1", "8L1"], + fling: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + foulplay: ["9M", "9L56", "8M", "8L56"], + gigaimpact: ["9M", "8M"], + hammerarm: ["9L64", "8L64"], + hyperbeam: ["9M", "8M"], + icepunch: ["9M", "8M"], + imprison: ["9M"], + lashout: ["8T"], + leechlife: ["9M", "8M"], + lightscreen: ["9M", "9S0", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metronome: ["9M", "8M"], + mistyterrain: ["9M"], + nastyplot: ["9M", "9L40", "8M", "8L40"], + playrough: ["9M", "9L48", "8M", "8L48"], + powerswap: ["8M"], + poweruppunch: ["8L1"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + reflect: ["9M", "9S0", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + shadowclaw: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spiritbreak: ["9L0", "9S0", "8L0"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L24", "8L24"], + superpower: ["8M"], + swagger: ["9L20", "8L20"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + throatchop: ["8M"], + thunderpunch: ["9M", "8M"], + thunderwave: ["9M", "9S0", "8M"], + torment: ["9L28", "8L28"], + trailblaze: ["9M"], + trick: ["9M", "8M"], + uproar: ["8M"], + wonderroom: ["8M"], + }, + eventData: [ + {generation: 9, level: 50, nature: "Calm", shiny: true, abilities: ["prankster"], ivs: {hp: 31, atk: 0, def: 31, spa: 31, spd: 31, spe: 31}, moves: ["thunderwave", "spiritbreak", "reflect", "lightscreen"], pokeball: "cherishball"}, + ], + }, + milcery: { + learnset: { + acidarmor: ["8L30"], + aromatherapy: ["8L20"], + aromaticmist: ["8L1"], + attract: ["8M", "8L25", "8S0"], + babydolleyes: ["8E"], + celebrate: ["8S0"], + charm: ["8M"], + dazzlinggleam: ["8M", "8L35"], + drainingkiss: ["8M", "8L15"], + endure: ["8M"], + entrainment: ["8L50", "8S0"], + facade: ["8M"], + fling: ["8M"], + helpinghand: ["8M"], + lastresort: ["8E", "8S0"], + mistyterrain: ["8M", "8L45"], + protect: ["8M"], + recover: ["8L40"], + rest: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + sweetkiss: ["8L5"], + sweetscent: ["8L10"], + tackle: ["8L1"], + }, + eventData: [ + {generation: 8, level: 5, nature: "Hardy", isHidden: false, moves: ["celebrate", "lastresort", "entrainment", "attract"], pokeball: "cherishball"}, + ], + }, + alcremie: { + learnset: { + acidarmor: ["8L30"], + aromatherapy: ["8L20"], + aromaticmist: ["8L1"], + attract: ["8M", "8L25"], + calmmind: ["8M"], + charm: ["8M"], + dazzlinggleam: ["8M", "8L35"], + decorate: ["8L0"], + drainingkiss: ["8M", "8L15"], + drainpunch: ["8M"], + encore: ["8M"], + endure: ["8M"], + energyball: ["8M"], + entrainment: ["8L50"], + facade: ["8M"], + faketears: ["8M"], + fling: ["8M"], + gigadrain: ["8M"], + gigaimpact: ["8M"], + helpinghand: ["8M"], + hyperbeam: ["8M"], + imprison: ["8M"], + lightscreen: ["8M"], + magicalleaf: ["8M"], + magicroom: ["8M"], + metronome: ["8M"], + mistyexplosion: ["8T"], + mistyterrain: ["8M", "8L45"], + mysticalfire: ["8M"], + playrough: ["8M"], + protect: ["8M"], + psychic: ["8M"], + psyshock: ["8M"], + recover: ["8L40"], + rest: ["8M"], + round: ["8M"], + safeguard: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + storedpower: ["8M"], + substitute: ["8M"], + sweetkiss: ["8L1"], + sweetscent: ["8L1"], + tackle: ["8L1"], + triattack: ["8M"], + wonderroom: ["8M"], + }, + }, + falinks: { + learnset: { + agility: ["9M", "8M"], + assurance: ["8M"], + beatup: ["8M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M"], + bulkup: ["9M", "9L20", "8M", "8L20"], + closecombat: ["9M", "9L50", "8M", "8L50"], + coaching: ["8T"], + counter: ["9L60", "8L60"], + endure: ["9M", "9L25", "8M", "8L25"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firstimpression: ["9L35", "8L35"], + focusblast: ["9M", "8M"], + focusenergy: ["9L10", "8M", "8L10"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L15", "8L15"], + helpinghand: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L45", "8M", "8L45"], + ironhead: ["9M", "8M"], + megahorn: ["9L55", "8M", "8L55"], + noretreat: ["9L40", "8L40"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "9L1", "8M", "8L1"], + raindance: ["9M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "9L30", "8M", "8L30"], + rockslide: ["9M", "8M"], + rocksmash: ["9L5", "8L5"], + rocktomb: ["9M", "8M"], + round: ["8M"], + screech: ["8M"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superpower: ["8M"], + swordsdance: ["9M", "8M"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + trailblaze: ["9M"], + zenheadbutt: ["9M", "8M"], + }, + }, + pincurchin: { + learnset: { + acupressure: ["9L55", "8L55"], + assurance: ["8M"], + attract: ["8M"], + bodyslam: ["9M"], + brine: ["8M"], + bubblebeam: ["9L25", "8L25"], + charge: ["9L10", "8L10"], + chargebeam: ["9M"], + chillingwater: ["9M"], + curse: ["9L35", "8L35"], + discharge: ["9L60", "8L60"], + electricterrain: ["9M", "9L40", "8M", "8L40"], + electroball: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + furyattack: ["9L15", "8L15"], + gigaimpact: ["9M"], + hex: ["9M", "8M"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + liquidation: ["9M", "8M"], + memento: ["9E", "8E"], + muddywater: ["8M"], + payback: ["8M"], + peck: ["9L1", "8L1"], + pinmissile: ["8M"], + poisonjab: ["9M", "9L45", "8M", "8L45"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + recover: ["9L30", "8L30"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + scald: ["8M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + spark: ["9L20", "8L20"], + spikes: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9E", "8E"], + surf: ["9M", "8M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "8M"], + toxicspikes: ["9M", "8M"], + venomdrench: ["8M"], + venoshock: ["9M", "8M"], + watergun: ["9L5", "8L5"], + wildcharge: ["9M"], + zingzap: ["9L50", "8L50"], + }, + }, + snom: { + learnset: { + attract: ["8M"], + bugbite: ["9E", "8E"], + bugbuzz: ["9M", "8M"], + endure: ["8M"], + facade: ["9M", "8M"], + fairywind: ["9E", "8E"], + iciclespear: ["8M"], + icywind: ["9M", "8M"], + mirrorcoat: ["9E", "8E"], + pounce: ["9M"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + strugglebug: ["9M", "9L1", "8L1"], + substitute: ["9M", "8M"], + terablast: ["9M"], + }, + }, + frosmoth: { + learnset: { + acrobatics: ["9M", "8M"], + airslash: ["9M", "8M"], + attract: ["9L1", "8M", "8L1"], + aurorabeam: ["9L24", "8L24"], + auroraveil: ["9L36", "8L36"], + avalanche: ["9M", "8M"], + blizzard: ["9M", "9L40", "8M", "8L40"], + bugbuzz: ["9M", "9L32", "8M", "8L32"], + calmmind: ["9M", "8M"], + dazzlinggleam: ["9M", "8M"], + defog: ["9L16", "8L16"], + dualwingbeat: ["8T"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + featherdance: ["9L21", "8L21"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + hail: ["8M", "8L28"], + helpinghand: ["9M", "9L1", "8M", "8L1"], + hurricane: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + icespinner: ["9M"], + iciclespear: ["8M"], + icywind: ["9M", "9L0", "8M", "8L0"], + imprison: ["9M", "8M"], + infestation: ["9L8", "8L8"], + leechlife: ["9M", "8M"], + lightscreen: ["9M", "8M"], + mist: ["9L12", "8L12"], + playrough: ["9M", "8M"], + pounce: ["9M"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M"], + quiverdance: ["9L52", "8L52"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + skittersmack: ["8T"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M", "9L28"], + strugglebug: ["9M", "9L1", "8L1"], + stunspore: ["9L4", "8L4"], + substitute: ["9M", "8M"], + swift: ["9M"], + tailwind: ["9M", "9L44", "8L44"], + takedown: ["9M"], + terablast: ["9M"], + tripleaxel: ["8T"], + uturn: ["9M", "8M"], + weatherball: ["8M"], + wideguard: ["9L48", "8L48"], + }, + }, + stonjourner: { + learnset: { + ancientpower: ["9E", "8E"], + assurance: ["8M"], + attract: ["8M"], + block: ["9L1", "8L1"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "9L42", "8M", "8L42"], + brutalswing: ["8M"], + bulldoze: ["9M", "8M"], + curse: ["9E", "8E"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gravity: ["9L18", "8L18"], + heatcrash: ["8M"], + heavyslam: ["9M", "9L54", "8M", "8L54"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "8M"], + lowkick: ["9M"], + lowsweep: ["9M"], + megakick: ["9L66", "8M", "8L66"], + meteorbeam: ["8T"], + powergem: ["9M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockpolish: ["9L6", "8L6"], + rockslide: ["9M", "9L36", "8M", "8L36"], + rockthrow: ["9L1", "8L1"], + rocktomb: ["9M", "9L12", "8M", "8L12"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["9M", "8M"], + sandtomb: ["8M"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "9L30", "8M", "8L30"], + stomp: ["9L24", "8L24"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "9L60", "8M", "8L60"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + superpower: ["8M"], + takedown: ["9M"], + terablast: ["9M"], + wideguard: ["9L48", "8L48"], + wonderroom: ["8M"], + }, + }, + eiscue: { + learnset: { + agility: ["9M", "8M"], + amnesia: ["9M", "9L30", "8M", "8L30"], + aquaring: ["9E", "8E"], + attract: ["8M"], + auroraveil: ["9L48", "8L48"], + avalanche: ["9M", "8M"], + bellydrum: ["9E", "8E"], + blizzard: ["9M", "9L60", "8M", "8L60"], + bodyslam: ["9M"], + brine: ["8M"], + chillingwater: ["9M"], + dive: ["8M"], + doubleedge: ["9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + freezedry: ["9L36", "8L36"], + gigaimpact: ["9M"], + hail: ["8M", "8L42"], + headbutt: ["9L24", "8L24"], + headsmash: ["9E", "8E"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M"], + icebeam: ["9M", "8M"], + icepunch: ["9M", "8M"], + icespinner: ["9M"], + iciclecrash: ["9E", "8E"], + iciclespear: ["8M"], + icywind: ["9M", "9L18", "8M", "8L18"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "8M"], + liquidation: ["9M", "8M"], + mist: ["9L6", "8L6"], + powdersnow: ["9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M", "9L42"], + soak: ["9E", "8E"], + substitute: ["9M", "8M"], + surf: ["9M", "9L54", "8M", "8L54"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + waterfall: ["9M", "8M"], + waterpulse: ["9M"], + weatherball: ["9L12", "8M", "8L12"], + whirlpool: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + indeedee: { + learnset: { + afteryou: ["9L25", "8L25"], + allyswitch: ["8M"], + aromatherapy: ["8L30"], + attract: ["8M"], + bodyslam: ["9M"], + calmmind: ["9M", "9L40", "8M", "8L40"], + dazzlinggleam: ["9M", "8M"], + disarmingvoice: ["9M", "9L10", "8L10"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + encore: ["9M", "9L5", "8M", "8L5"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + expandingforce: ["8T"], + extrasensory: ["9E", "8E"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + futuresight: ["8M"], + healingwish: ["9L30"], + helpinghand: ["9M", "9L20", "8M", "8L20"], + hypervoice: ["9M", "8M"], + imprison: ["9M", "8M"], + lastresort: ["9L55", "8L55"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + metronome: ["9M", "8M"], + mysticalfire: ["8M"], + payday: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + powersplit: ["9L45", "8L45"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L15", "8L15"], + psychic: ["9M", "9L35", "8M", "8L35"], + psychicterrain: ["9M", "9L50", "8M", "8L50"], + psychup: ["9E", "8E"], + psyshock: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + shadowball: ["9M", "8M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "9L1", "8M", "8L1"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + indeedeef: { + learnset: { + allyswitch: ["8M"], + aromatherapy: ["8L30"], + attract: ["8M"], + batonpass: ["9M", "9L5", "8M", "8L5"], + bodyslam: ["9M"], + calmmind: ["9M", "9L40", "8M", "8L40"], + charm: ["9M"], + dazzlinggleam: ["9M", "8M"], + disarmingvoice: ["9M", "9L10", "8L10"], + drainingkiss: ["9M", "8M"], + drainpunch: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "8M"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + fakeout: ["9E", "8E"], + followme: ["9L25", "8L25"], + futuresight: ["8M"], + guardsplit: ["9L45", "8L45"], + guardswap: ["8M"], + healingwish: ["9L30", "8L55"], + healpulse: ["9E", "8E"], + helpinghand: ["9M", "9L20", "8M", "8L20"], + hypervoice: ["9M", "9S0", "8M"], + imprison: ["9M", "8M"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + metronome: ["9M", "8M"], + mysticalfire: ["8M"], + payday: ["8M"], + playnice: ["9L1", "8L1"], + playrough: ["9M", "8M"], + protect: ["9M", "8M"], + psybeam: ["9M", "9L15", "8L15"], + psychic: ["9M", "9L35", "9S0", "8M", "8L35"], + psychicterrain: ["9M", "9L50", "8M", "8L50"], + psychoshift: ["8E"], + psychup: ["9E", "8E"], + psyshock: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + shadowball: ["9M", "9S0", "8M"], + skillswap: ["9M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + storedpower: ["9M", "9L1", "8M", "8L1"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + terrainpulse: ["8T"], + trick: ["9M", "8M"], + trickroom: ["9S0"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 9, level: 75, shiny: 1, perfectIVs: 4, moves: ["psychic", "hypervoice", "shadowball", "trickroom"]}, + ], + }, + morpeko: { + learnset: { + agility: ["8M", "8L40"], + assurance: ["8M"], + attract: ["8M"], + aurawheel: ["8L55"], + bite: ["8L25"], + brickbreak: ["8M"], + bulletseed: ["8M", "8L45"], + charge: ["8E"], + crunch: ["8M", "8L50"], + darkpulse: ["8M"], + electricterrain: ["8M"], + electroball: ["8M"], + electroweb: ["8M"], + endure: ["8M"], + facade: ["8M"], + fakeout: ["8E"], + faketears: ["8M"], + firefang: ["8M"], + flatter: ["8L20"], + fling: ["8M"], + foulplay: ["8M"], + icefang: ["8M"], + lashout: ["8T"], + leer: ["8L5"], + nastyplot: ["8M"], + outrage: ["8M"], + partingshot: ["8E"], + payback: ["8M"], + powertrip: ["8L10"], + protect: ["8M"], + psychicfangs: ["8M"], + quash: ["8E"], + quickattack: ["8L15"], + rapidspin: ["8E"], + rest: ["8M"], + revenge: ["8M"], + risingvoltage: ["8T"], + round: ["8M"], + scaryface: ["8M"], + seedbomb: ["8M"], + sleeptalk: ["8M"], + snarl: ["8M"], + snore: ["8M"], + spark: ["8L30"], + stompingtantrum: ["8M"], + substitute: ["8M"], + superfang: ["8E"], + swagger: ["8E"], + swift: ["8M"], + tailwhip: ["8L1"], + taunt: ["8M"], + thief: ["8M"], + thrash: ["8L60"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderpunch: ["8M"], + thundershock: ["8L1"], + thunderwave: ["8M"], + tickle: ["8E"], + torment: ["8L35"], + uproar: ["8M"], + voltswitch: ["8M"], + wildcharge: ["8M"], + }, + }, + cufant: { + learnset: { + attract: ["8M"], + belch: ["9E", "8E"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + curse: ["9E", "8E"], + defensecurl: ["9E", "8E"], + dig: ["9M", "9L30", "8M", "8L30"], + doubleedge: ["9E", "8E"], + earthpower: ["9M", "8M"], + earthquake: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fissure: ["9E", "8E"], + flashcannon: ["9M"], + fling: ["9M", "8M"], + growl: ["9L1", "8L1"], + heavyslam: ["9M"], + highhorsepower: ["9L50", "8M", "8L50"], + irondefense: ["9M", "9L25", "8M", "8L25"], + ironhead: ["9M", "9L40", "8M", "8L40"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + playrough: ["9M", "9L45", "8M", "8L45"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L10", "8L10"], + rocktomb: ["9M", "8M"], + rollout: ["9L5", "8L5"], + round: ["8M"], + sandstorm: ["9M"], + screech: ["8M"], + slam: ["9E", "8E"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stomp: ["9L20", "8L20"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M"], + strength: ["9L35", "8L35"], + substitute: ["9M", "8M"], + superpower: ["9L55", "8M", "8L55"], + swagger: ["9E", "8E"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + terablast: ["9M"], + whirlwind: ["9E", "8E"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + copperajah: { + learnset: { + attract: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulldoze: ["9M", "9L15", "8M", "8L15"], + dig: ["9M", "9L30", "8M", "8L30"], + earthpower: ["9M", "8M"], + earthquake: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + flashcannon: ["9M", "8M"], + fling: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + growl: ["9L1", "8L1"], + heatcrash: ["8M"], + heavyslam: ["9M", "9L0", "8M", "8L0"], + highhorsepower: ["9L58", "8M", "8L58"], + hyperbeam: ["9M", "8M"], + irondefense: ["9M", "9L25", "8M", "8L25"], + ironhead: ["9M", "9L44", "8M", "8L44"], + megakick: ["8M"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M"], + payback: ["8M"], + playrough: ["9M", "9L51", "8M", "8L51"], + powerwhip: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + rockblast: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M"], + rollout: ["9L1", "8L1"], + round: ["8M"], + sandstorm: ["9M"], + scaryface: ["8M"], + screech: ["8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + stealthrock: ["9M", "8M"], + steelbeam: ["9M", "8T"], + steelroller: ["8T"], + stomp: ["9L20", "8L20"], + stompingtantrum: ["9M", "8M"], + stoneedge: ["9M", "8M"], + strength: ["9L37", "8L37"], + substitute: ["9M", "8M"], + superpower: ["9L65", "8M", "8L65"], + tackle: ["9L1", "8L1"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + dracozolt: { + learnset: { + aerialace: ["8L14"], + ancientpower: ["8L21"], + bodyslam: ["8M"], + boltbeak: ["8L63"], + breakingswipe: ["8M"], + brutalswing: ["8M"], + bulldoze: ["8M"], + charge: ["8L7", "8S0"], + discharge: ["8L56"], + dracometeor: ["8T"], + dragonclaw: ["8M"], + dragonpulse: ["8M", "8L70"], + dragonrush: ["8L77"], + dragontail: ["8L35"], + earthpower: ["8M"], + earthquake: ["8M"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + fireblast: ["8M"], + firefang: ["8M"], + firespin: ["8M"], + flamethrower: ["8M"], + gigaimpact: ["8M"], + highhorsepower: ["8M"], + hyperbeam: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + outrage: ["8M"], + pluck: ["8L28"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + slam: ["8L49"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8L42"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + sunnyday: ["8M"], + tackle: ["8L1", "8S0"], + taunt: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderpunch: ["8M"], + thundershock: ["8L1", "8S0"], + thunderwave: ["8M"], + wildcharge: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["tackle", "thundershock", "charge"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + arctozolt: { + learnset: { + ancientpower: ["8L21"], + avalanche: ["8M", "8L35"], + blizzard: ["8M", "8L77"], + bodyslam: ["8M"], + boltbeak: ["8L63"], + bulldoze: ["8M"], + charge: ["8L7", "8S0"], + discharge: ["8L56"], + echoedvoice: ["8L14"], + electroball: ["8M"], + endure: ["8M"], + facade: ["8M"], + freezedry: ["8L42"], + gigaimpact: ["8M"], + hail: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + hypervoice: ["8M"], + icebeam: ["8M"], + icefang: ["8M"], + iciclecrash: ["8L70"], + iciclespear: ["8M"], + icywind: ["8M"], + irontail: ["8M"], + lowkick: ["8M"], + megakick: ["8M"], + megapunch: ["8M"], + meteorbeam: ["8T"], + payback: ["8M"], + pluck: ["8L28"], + powdersnow: ["8L1", "8S0"], + protect: ["8M"], + raindance: ["8M"], + rest: ["8M"], + risingvoltage: ["8T"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + slam: ["8L49"], + sleeptalk: ["8M"], + snore: ["8M"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + surf: ["8M"], + taunt: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderfang: ["8M"], + thunderpunch: ["8M"], + thundershock: ["8L1", "8S0"], + thunderwave: ["8M"], + wildcharge: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["powdersnow", "thundershock", "charge"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + dracovish: { + learnset: { + ancientpower: ["8L21"], + bite: ["8L28"], + bodyslam: ["8M"], + brine: ["8M"], + brutalswing: ["8M", "8L14"], + bulldoze: ["8M"], + crunch: ["8M", "8L56"], + dive: ["8M"], + dracometeor: ["8T"], + dragonbreath: ["8L35"], + dragonpulse: ["8M", "8L70"], + dragonrush: ["8L77", "8S1"], + earthpower: ["8M"], + earthquake: ["8M"], + endure: ["8M"], + facade: ["8M"], + fishiousrend: ["8L63", "8S1"], + gigaimpact: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icefang: ["8M", "8S1"], + ironhead: ["8M"], + leechlife: ["8M"], + liquidation: ["8M"], + lowkick: ["8M"], + megakick: ["8M"], + meteorbeam: ["8T"], + outrage: ["8M"], + protect: ["8M", "8L7", "8S0"], + psychicfangs: ["8M"], + raindance: ["8M"], + rest: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + scald: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stomp: ["8L42"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + superfang: ["8L49"], + surf: ["8M"], + tackle: ["8L1", "8S0"], + waterfall: ["8M"], + watergun: ["8L1", "8S1", "8S0"], + whirlpool: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["tackle", "watergun", "protect"], pokeball: "pokeball"}, + {generation: 8, level: 80, nature: "Naive", abilities: ["strongjaw"], ivs: {hp: 30, atk: 31, def: 31, spa: 30, spd: 30, spe: 31}, moves: ["fishiousrend", "dragonrush", "icefang", "watergun"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + arctovish: { + learnset: { + ancientpower: ["8L21"], + auroraveil: ["8L35"], + avalanche: ["8M"], + bite: ["8L28"], + blizzard: ["8M", "8L77"], + bodyslam: ["8M"], + brine: ["8M"], + crunch: ["8M", "8L56"], + dive: ["8M"], + endure: ["8M"], + facade: ["8M"], + fishiousrend: ["8L63"], + freezedry: ["8L42"], + gigaimpact: ["8M"], + hail: ["8M"], + hydropump: ["8M"], + hyperbeam: ["8M"], + icebeam: ["8M"], + icefang: ["8M"], + iciclecrash: ["8L70"], + iciclespear: ["8M"], + icywind: ["8M", "8L14"], + irondefense: ["8M"], + ironhead: ["8M"], + liquidation: ["8M"], + meteorbeam: ["8T"], + powdersnow: ["8L1", "8S0"], + protect: ["8M", "8L7", "8S0"], + psychicfangs: ["8M"], + raindance: ["8M"], + rest: ["8M"], + rockblast: ["8M"], + rockslide: ["8M"], + rocktomb: ["8M"], + round: ["8M"], + sleeptalk: ["8M"], + snore: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + superfang: ["8L49"], + surf: ["8M"], + waterfall: ["8M"], + watergun: ["8L1", "8S0"], + whirlpool: ["8M"], + zenheadbutt: ["8M"], + }, + eventData: [ + {generation: 8, level: 10, shiny: 1, perfectIVs: 3, moves: ["powdersnow", "watergun", "protect"], pokeball: "pokeball"}, + ], + eventOnly: true, + }, + duraludon: { + learnset: { + attract: ["8M"], + bodypress: ["8M"], + bodyslam: ["8M"], + breakingswipe: ["8M", "8L24"], + brickbreak: ["8M"], + darkpulse: ["8M"], + dracometeor: ["8T"], + dragonclaw: ["8M", "8L48"], + dragonpulse: ["8M"], + dragontail: ["8L30"], + endure: ["8M"], + facade: ["8M"], + flashcannon: ["8M", "8L54"], + foulplay: ["8M"], + gigaimpact: ["8M"], + gyroball: ["8M"], + heavyslam: ["8M"], + honeclaws: ["8L12"], + hyperbeam: ["8M", "8L66"], + irondefense: ["8M", "8L36"], + ironhead: ["8M"], + laserfocus: ["8L42"], + leer: ["8L1"], + lightscreen: ["8M"], + metalburst: ["8L60"], + metalclaw: ["8L1"], + metalsound: ["8L18"], + mirrorcoat: ["8E"], + nightslash: ["8E"], + outrage: ["8M"], + protect: ["8M"], + reflect: ["8M"], + rest: ["8M"], + rockslide: ["8M"], + rocksmash: ["8L6"], + rocktomb: ["8M"], + round: ["8M"], + scaryface: ["8M"], + screech: ["8M"], + slash: ["8E"], + sleeptalk: ["8M"], + snarl: ["8M"], + snore: ["8M"], + solarbeam: ["8M"], + stealthrock: ["8M"], + steelbeam: ["8T"], + steelroller: ["8T"], + stompingtantrum: ["8M"], + stoneedge: ["8M"], + substitute: ["8M"], + swordsdance: ["8M"], + thunder: ["8M"], + thunderbolt: ["8M"], + thunderwave: ["8M"], + }, + }, + dreepy: { + learnset: { + astonish: ["9L1", "8L1"], + attract: ["8M"], + batonpass: ["9M", "8M"], + bite: ["9L1", "8L1"], + confuseray: ["9M", "9E", "8E"], + curse: ["9E", "8E"], + disable: ["9E", "8E"], + doubleteam: ["9E", "8E"], + dracometeor: ["9M", "8T"], + dragontail: ["9M", "9E", "8E"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + grudge: ["8E"], + helpinghand: ["9M", "8M"], + infestation: ["9L1", "8L1"], + protect: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + rest: ["9M", "8M"], + round: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9E", "8E"], + swift: ["9M", "8M"], + terablast: ["9M"], + thunderwave: ["9M", "8M"], + }, + }, + drakloak: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["9L12", "8M", "8L12"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + batonpass: ["9M", "8M"], + beatup: ["8M"], + bite: ["9L1", "8L1"], + breakingswipe: ["8M"], + brine: ["8M"], + dive: ["8M"], + doubleedge: ["9L66", "8L66"], + doublehit: ["9L30", "8L30"], + dracometeor: ["9M", "8T"], + dragondance: ["9M", "9L42", "8M", "8L42"], + dragonpulse: ["9M", "9L0", "8M", "8L0"], + dragonrush: ["9L61", "8L61"], + dragontail: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L18", "8M", "8L18"], + hydropump: ["9M", "8M"], + infestation: ["9L1", "8L1"], + lastresort: ["9L72", "8L72"], + lightscreen: ["9M"], + lockon: ["9L6", "8L6"], + nightshade: ["9M"], + outrage: ["9M", "8M"], + phantomforce: ["9M", "9L48", "8M", "8L48"], + pounce: ["9M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + reflect: ["9M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + steelwing: ["8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M", "9L54", "8L54"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderwave: ["9M", "8M"], + uturn: ["9M", "9L36", "8M", "8L36"], + willowisp: ["9M", "8M"], + }, + }, + dragapult: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "9L24", "8M", "8L24"], + allyswitch: ["8M"], + assurance: ["9L12", "8M", "8L12"], + astonish: ["9L1", "8L1"], + attract: ["8M"], + batonpass: ["9M", "8M"], + beatup: ["8M"], + bite: ["9L1", "8L1"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + brine: ["8M"], + dive: ["8M"], + doubleedge: ["9L70", "8L70"], + doublehit: ["9L30", "8L30"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L1", "8L1"], + dragonclaw: ["9M", "8M"], + dragondance: ["9M", "9L42", "8M", "8L42"], + dragondarts: ["9L0", "8L0"], + dragonpulse: ["9M", "8M"], + dragonrush: ["9L63", "8L63"], + dragontail: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + fireblast: ["9M", "8M"], + flamethrower: ["9M", "8M"], + fly: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + helpinghand: ["9M", "8M"], + hex: ["9M", "9L18", "8M", "8L18"], + hydropump: ["9M", "8M"], + hyperbeam: ["9M", "8M"], + infestation: ["9L1", "8L1"], + lastresort: ["9L78", "8L78"], + lightscreen: ["9M", "8M"], + lockon: ["9L6", "8L6"], + nightshade: ["9M"], + outrage: ["9M", "8M"], + phantomforce: ["9M", "9L48", "8M", "8L48"], + pounce: ["9M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + steelwing: ["8M"], + substitute: ["9M", "8M"], + suckerpunch: ["8L1"], + sunnyday: ["9M"], + surf: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M", "9L54", "8L54"], + terablast: ["9M"], + thief: ["9M", "8M"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "8M"], + thunderwave: ["9M", "8M"], + triattack: ["8M"], + uturn: ["9M", "9L36", "8M", "8L36"], + willowisp: ["9M", "8M"], + }, + }, + zacian: { + learnset: { + agility: ["9M", "8M"], + airslash: ["9M", "8M"], + assurance: ["8M"], + bite: ["9L1", "8L1"], + bodyslam: ["9M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + closecombat: ["9M", "9L77", "8M", "8L77"], + crunch: ["9M", "9L55", "8M", "8L55", "8S0"], + dazzlinggleam: ["9M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firefang: ["9M", "8M"], + flashcannon: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "9L88", "8M", "8L88"], + helpinghand: ["9M", "8M"], + howl: ["9L1", "8L1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + icefang: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M"], + ironhead: ["9M", "9L33", "8M", "8L33", "8S0", "8S1"], + irontail: ["8M"], + laserfocus: ["8L44"], + metalclaw: ["9M", "9L1", "8L1"], + mistyterrain: ["9M"], + moonblast: ["9L66", "8L66"], + nobleroar: ["9L44"], + playrough: ["9M", "8M", "8S1"], + poisonjab: ["9M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + psychocut: ["8M"], + quickattack: ["9L1", "8L1"], + quickguard: ["9L1", "8L1"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + sacredsword: ["9L1", "8L1", "8S0", "8S1"], + scaryface: ["9M", "8M"], + slash: ["9L11", "8L11"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarblade: ["8M"], + steelbeam: ["9M", "8T"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L22", "8M", "8L22", "8S0", "8S1"], + tailslap: ["8M"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + trailblaze: ["9M"], + wildcharge: ["9M", "8M"], + workup: ["8M"], + }, + eventData: [ + {generation: 8, level: 70, perfectIVs: 3, moves: ["sacredsword", "swordsdance", "ironhead", "crunch"]}, + {generation: 8, level: 100, shiny: true, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 30, spd: 31, spe: 31}, moves: ["ironhead", "playrough", "swordsdance", "sacredsword"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zaciancrowned: { + learnset: { + behemothblade: ["9R", "8R"], + }, + eventOnly: true, + }, + zamazenta: { + learnset: { + agility: ["9M", "8M"], + bite: ["9L1", "8L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + closecombat: ["9M", "9L77", "8M", "8L77", "8S1"], + coaching: ["8T"], + crunch: ["9M", "9L55", "8M", "8L55", "8S0"], + dazzlinggleam: ["9M", "8M"], + dig: ["9M", "8M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + flashcannon: ["9M", "8M"], + focusblast: ["9M", "8M"], + focusenergy: ["8M"], + gigaimpact: ["9M", "9L88", "8M", "8L88"], + guardswap: ["8M"], + heavyslam: ["9M"], + helpinghand: ["9M", "8M"], + howl: ["9L1", "8L1"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + icefang: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L22", "8M", "8L22", "8S0", "8S1"], + ironhead: ["9M", "9L33", "8M", "8L33", "8S0", "8S1"], + irontail: ["8M"], + laserfocus: ["8L44"], + lightscreen: ["9M", "8M"], + metalburst: ["9L44", "8L1"], + metalclaw: ["9M", "9L1", "8L1"], + moonblast: ["9L66", "8L66"], + payback: ["8M"], + playrough: ["9M", "8M"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psychicfangs: ["9M", "8M"], + quickattack: ["9L1", "8L1"], + raindance: ["9M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + sandstorm: ["9M"], + scaryface: ["9M", "8M"], + slash: ["9L11", "8L11", "8S0"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + steelbeam: ["9M", "8T"], + stoneedge: ["9M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + swift: ["9M", "8M"], + tailslap: ["8M"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M", "8M"], + trailblaze: ["9M"], + wideguard: ["9L1", "8L1", "8S1"], + wildcharge: ["9M", "8M"], + workup: ["8M"], + }, + eventData: [ + {generation: 8, level: 70, perfectIVs: 3, moves: ["slash", "crunch", "ironhead", "irondefense"]}, + {generation: 8, level: 100, shiny: true, nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 30, spd: 31, spe: 31}, moves: ["ironhead", "closecombat", "irondefense", "wideguard"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zamazentacrowned: { + learnset: { + behemothbash: ["9R", "8R"], + }, + eventOnly: true, + }, + eternatus: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1"], + assurance: ["8M"], + bodyslam: ["9M"], + brutalswing: ["8M"], + confuseray: ["9M", "9L1", "8L1"], + cosmicpower: ["9L64", "8M", "8L64"], + crosspoison: ["9L32", "8M", "8L32", "8S0"], + dracometeor: ["9M", "8T"], + dragondance: ["9M", "9L24", "8M", "8L24"], + dragonpulse: ["9M", "9L40", "8M", "8L40", "8S0"], + dragontail: ["9M", "9L1", "8L1"], + dynamaxcannon: ["9L56", "8L56", "8S1", "8S0"], + endure: ["9M", "8M"], + eternabeam: ["8L88", "8S1"], + facade: ["9M", "8M"], + fireblast: ["9M"], + firespin: ["9M"], + flamethrower: ["9M", "9L48", "8M", "8L48", "8S1", "8S0"], + flashcannon: ["9M", "8M"], + fly: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + gunkshot: ["9M"], + hyperbeam: ["9M", "9L80", "8M", "8L80"], + lightscreen: ["9M", "8M"], + meteorbeam: ["8T"], + mysticalfire: ["8M"], + outrage: ["9M", "9L88"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + poisontail: ["9M", "9L1", "8L1"], + protect: ["9M", "8M"], + raindance: ["9M"], + recover: ["9L72", "8L72"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + screech: ["8M"], + shadowball: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + sludgebomb: ["9M", "8M", "8S1"], + sludgewave: ["8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + toxic: ["9L8", "8L8"], + toxicspikes: ["9M", "8M"], + venomdrench: ["8M"], + venoshock: ["9M", "9L16", "8M", "8L16"], + }, + eventData: [ + {generation: 8, level: 60, perfectIVs: 3, moves: ["crosspoison", "dragonpulse", "flamethrower", "dynamaxcannon"]}, + {generation: 8, level: 100, shiny: true, nature: "Timid", perfectIVs: 6, moves: ["eternabeam", "dynamaxcannon", "sludgebomb", "flamethrower"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + kubfu: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "9L12", "8L12"], + attract: ["8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "8L24"], + bulkup: ["9M", "9L32", "8M", "8L32"], + closecombat: ["9M", "9L48", "8M", "8L48"], + coaching: ["8T"], + counter: ["9L44", "8L44"], + detect: ["9L28", "8L28"], + dig: ["9M", "8M"], + dynamicpunch: ["9L40", "8L40"], + endure: ["9M", "9L4", "8M", "8L4", "8S0"], + facade: ["9M", "8M"], + firepunch: ["9M", "8M"], + fling: ["9M"], + focusenergy: ["9L8", "8M", "8L8", "8S0"], + focuspunch: ["9L52", "8L52"], + headbutt: ["9L20", "8L20"], + helpinghand: ["9M", "8M"], + icepunch: ["9M", "8M"], + ironhead: ["9M", "9L36", "8M", "8L36"], + leer: ["9L1", "8L1", "8S0"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rocksmash: ["9L1", "8L1", "8S0"], + round: ["8M"], + scaryface: ["9M", "9L16", "8M", "8L16"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + superpower: ["8M"], + swordsdance: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M", "8M"], + uturn: ["9M", "8M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + // TODO get actual event data + {generation: 8, level: 10, perfectIVs: 3, moves: ["rocksmash", "leer", "endure", "focusenergy"]}, + ], + eventOnly: true, + }, + urshifu: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "9L12", "8L12"], + assurance: ["8M"], + attract: ["8M"], + aurasphere: ["9M", "8M"], + beatup: ["8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "8L24"], + bulkup: ["9M", "9L32", "8M", "8L32"], + closecombat: ["9M", "9L48", "8M", "8L48"], + coaching: ["8T"], + counter: ["9L44", "8L44"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M"], + detect: ["9L28", "8L28"], + dig: ["9M", "8M"], + drainpunch: ["9M", "8M"], + dynamicpunch: ["9L40", "8L40"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firepunch: ["9M", "8M"], + fling: ["9M", "8M"], + focusblast: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1"], + focuspunch: ["9L52", "8L52"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L20", "8L20"], + helpinghand: ["9M", "8M"], + icepunch: ["9M", "8M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "9L36", "8M", "8L36"], + lashout: ["8T"], + leer: ["9L1", "8L1"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + metalclaw: ["9M"], + payback: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L16", "8M", "8L16"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + suckerpunch: ["9L1", "8L1"], + superpower: ["8M"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + throatchop: ["8M"], + thunderpunch: ["9M", "8M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + wickedblow: ["9L0", "8L0"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + urshifurapidstrike: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M", "9L12", "8L12"], + aquajet: ["9L1", "8L1"], + attract: ["8M"], + aurasphere: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "9L24", "8M", "8L24"], + brine: ["8M"], + bulkup: ["9M", "9L32", "8M", "8L32"], + chillingwater: ["9M"], + closecombat: ["9M", "9L48", "8M", "8L48"], + coaching: ["8T"], + counter: ["9L44", "8L44"], + detect: ["9L28", "8L28"], + dig: ["9M", "8M"], + dive: ["8M"], + drainpunch: ["9M", "8M"], + dynamicpunch: ["9L40", "8L40"], + endure: ["9M", "9L1", "8M", "8L1"], + facade: ["9M", "8M"], + falseswipe: ["9M", "8M"], + firepunch: ["9M", "8M"], + fling: ["9M"], + focusblast: ["9M", "8M"], + focusenergy: ["9L1", "8M", "8L1"], + focuspunch: ["9L52", "8L52"], + gigaimpact: ["9M", "8M"], + headbutt: ["9L20", "8L20"], + helpinghand: ["9M", "8M"], + icepunch: ["9M", "8M"], + icespinner: ["9M"], + irondefense: ["9M", "8M"], + ironhead: ["9M", "9L36", "8M", "8L36"], + leer: ["9L1", "8L1"], + liquidation: ["9M", "8M"], + lowkick: ["9M", "8M"], + lowsweep: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + poisonjab: ["9M", "8M"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rest: ["9M", "8M"], + retaliate: ["8M"], + revenge: ["8M"], + reversal: ["9M", "8M"], + rockslide: ["9M", "8M"], + rocksmash: ["9L1", "8L1"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scald: ["8M"], + scaryface: ["9M", "9L16", "8M", "8L16"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + stoneedge: ["9M", "8M"], + substitute: ["9M", "8M"], + superpower: ["8M"], + surgingstrikes: ["9L0", "8L0"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thunderpunch: ["9M", "8M"], + trailblaze: ["9M"], + uturn: ["9M", "8M"], + waterfall: ["9M", "8M"], + whirlpool: ["8M"], + workup: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + }, + zarude: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M"], + assurance: ["8M"], + bind: ["9L1", "8L1"], + bite: ["9L42", "8L42"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulkup: ["9M", "8M"], + bulletseed: ["9M", "8M"], + closecombat: ["9M", "8M", "8S0"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + drainpunch: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L60", "8M", "8L60"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + furyswipes: ["9L24", "8L24"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "9L36", "8M", "8L36"], + grassyglide: ["8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L18", "8L18"], + hammerarm: ["9L72", "8L72"], + helpinghand: ["9M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + irontail: ["8M"], + junglehealing: ["9L90", "8L90"], + lashout: ["8T"], + leafstorm: ["9M"], + leer: ["9L6", "8L6"], + lowkick: ["9M", "8M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + powerwhip: ["9L84", "8M", "8L84", "8S0"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L30", "8M", "8L30"], + scratch: ["9L1", "8L1"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M", "8S0"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swagger: ["9L54", "8L54", "8S0"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + synthesis: ["9L66", "8L66"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L78", "8L78"], + throatchop: ["8M"], + trailblaze: ["9M"], + uturn: ["9M", "9L48", "8M", "8L48"], + vinewhip: ["9L12", "8L12"], + }, + eventData: [ + {generation: 8, level: 60, nature: "Sassy", moves: ["closecombat", "powerwhip", "swagger", "snarl"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + zarudedada: { + learnset: { + acrobatics: ["9M", "8M"], + aerialace: ["9M"], + assurance: ["8M"], + bind: ["9L1", "8L1"], + bite: ["9L42", "8L42"], + bodyslam: ["9M", "8M"], + brickbreak: ["9M", "8M"], + brutalswing: ["8M"], + bulkup: ["9M", "8M"], + bulletseed: ["9M", "8M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "8M"], + darkestlariat: ["8M"], + darkpulse: ["9M", "8M"], + dig: ["9M", "8M"], + drainpunch: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L60", "8M", "8L60", "8S0"], + facade: ["9M", "8M"], + fling: ["9M", "8M"], + furyswipes: ["9L24", "8L24"], + gigadrain: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "9L36", "8M", "8L36"], + grassyglide: ["8T"], + grassyterrain: ["9M", "8M"], + growth: ["9L18", "8L18"], + hammerarm: ["9L72", "8L72", "8S0"], + helpinghand: ["9M"], + hyperbeam: ["9M", "8M"], + hypervoice: ["9M", "8M"], + irontail: ["8M"], + junglehealing: ["9L90", "8L90", "8S0"], + lashout: ["8T"], + leafstorm: ["9M"], + leer: ["9L6", "8L6"], + lowkick: ["9M", "8M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "8M"], + megakick: ["8M"], + megapunch: ["8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "8M"], + payback: ["8M"], + powerwhip: ["9L84", "8M", "8L84", "8S0"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + revenge: ["8M"], + rockslide: ["9M", "8M"], + rocktomb: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "9L30", "8M", "8L30"], + scratch: ["9L1", "8L1"], + seedbomb: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "8M"], + solarblade: ["8M"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swagger: ["9L54", "8L54"], + swift: ["9M", "8M"], + swordsdance: ["9M"], + synthesis: ["9L66", "8L66"], + takedown: ["9M"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thief: ["9M", "8M"], + thrash: ["9L78", "8L78"], + throatchop: ["8M"], + trailblaze: ["9M"], + uturn: ["9M", "9L48", "8M", "8L48"], + vinewhip: ["9L12", "8L12"], + }, + eventData: [ + {generation: 8, level: 70, nature: "Adamant", moves: ["junglehealing", "hammerarm", "powerwhip", "energyball"], pokeball: "cherishball"}, + ], + eventOnly: true, + }, + regieleki: { + learnset: { + acrobatics: ["9M", "8M"], + agility: ["9M", "8M"], + ancientpower: ["9L12", "8L12"], + assurance: ["8M"], + bodyslam: ["9M", "8M"], + bounce: ["8M"], + chargebeam: ["9M"], + eerieimpulse: ["9M", "8M"], + electricterrain: ["9M", "8M"], + electroball: ["9M", "8M"], + electroweb: ["9L6", "8M", "8L6"], + endure: ["9M", "8M"], + explosion: ["9L78", "8L78"], + extremespeed: ["9L30", "8L30"], + facade: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + hyperbeam: ["9M", "9L72", "8M", "8L72"], + lightscreen: ["9M", "8M"], + lockon: ["9L60", "8L60", "8S0"], + magnetrise: ["9L48", "8L48"], + protect: ["9M", "8M"], + raindance: ["9M", "8M"], + rapidspin: ["9L1", "8L1"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + risingvoltage: ["8T"], + round: ["8M"], + screech: ["8M"], + selfdestruct: ["8M"], + shockwave: ["9L18", "8L18"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L54", "8L54", "8S0"], + thunder: ["9M", "8M"], + thunderbolt: ["9M", "9L42", "8M", "8L42"], + thundercage: ["9L36", "8L36", "8S0"], + thundershock: ["9L1", "8L1"], + thunderwave: ["9M", "9L24", "8M", "8L24"], + voltswitch: ["9M", "8M"], + wildcharge: ["9M", "8M"], + zapcannon: ["9L66", "8L66", "8S0"], + }, + eventData: [ + {generation: 8, level: 70, shiny: 1, moves: ["thundercage", "thrash", "lockon", "zapcannon"]}, + ], + eventOnly: true, + }, + regidrago: { + learnset: { + ancientpower: ["9L12", "8L12"], + bite: ["9L6", "8L6"], + bodyslam: ["9M", "8M"], + breakingswipe: ["8M"], + crunch: ["9M", "9L30", "8M", "8L30"], + dracometeor: ["9M", "8T"], + dragonbreath: ["9L18", "8L18"], + dragonclaw: ["9M", "9L36", "8M", "8L36", "8S0"], + dragondance: ["9M", "9L48", "8M", "8L48"], + dragonenergy: ["9L66", "8L66", "8S0"], + dragonpulse: ["9M", "8M"], + earthpower: ["9M"], + earthquake: ["9M"], + endure: ["9M", "8M"], + explosion: ["9L78", "8L78"], + facade: ["9M", "8M"], + firefang: ["9M", "8M"], + focusenergy: ["9L60", "8M", "8L24"], + gigaimpact: ["9M", "8M"], + hammerarm: ["9L42", "8L42", "8S0"], + hyperbeam: ["9M", "9L72", "8M", "8L72"], + icefang: ["9M"], + laserfocus: ["8L60", "8S0"], + lightscreen: ["9M", "8M"], + outrage: ["9M", "8M"], + protect: ["9M", "8M"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + reversal: ["9M", "8M"], + round: ["8M"], + scaleshot: ["8T"], + selfdestruct: ["8M"], + sleeptalk: ["9M", "8M"], + snore: ["8M"], + substitute: ["9M", "8M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L54", "8L54"], + thunderfang: ["9M", "8M"], + twister: ["9L1", "8L1"], + visegrip: ["9L1", "8L1"], + }, + eventData: [ + {generation: 8, level: 70, shiny: 1, moves: ["dragonenergy", "dragonclaw", "hammerarm", "laserfocus"]}, + ], + eventOnly: true, + }, + glastrier: { + learnset: { + assurance: ["8M"], + avalanche: ["9M", "9L12", "8M", "8L12"], + blizzard: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + closecombat: ["9M", "8M"], + crunch: ["9M", "8M"], + doubleedge: ["9L66", "8L66", "8S0"], + doublekick: ["9L6", "8L6"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + hail: ["8M"], + heavyslam: ["9M", "8M"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + iciclecrash: ["9L36", "8L36", "8S0"], + iciclespear: ["8M"], + icywind: ["9M", "8M"], + irondefense: ["9M", "9L48", "8M", "8L48"], + lashout: ["8T"], + megahorn: ["8M"], + mist: ["9L30", "8L30"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M"], + payback: ["8M"], + protect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + stomp: ["9L18", "8L18"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + superpower: ["8M"], + swordsdance: ["9M", "9L72", "8M", "8L72", "8S0"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L42", "8L42"], + taunt: ["9M", "9L60", "8M", "8L60", "8S0"], + terablast: ["9M"], + thrash: ["9L54", "8L54"], + throatchop: ["8M"], + torment: ["9L24", "8L24"], + trailblaze: ["9M"], + uproar: ["8M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 8, level: 75, moves: ["taunt", "doubleedge", "swordsdance", "iciclecrash"]}, + ], + eventOnly: true, + }, + spectrier: { + learnset: { + agility: ["9M", "9L48", "8M", "8L48"], + assurance: ["8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + calmmind: ["9M", "8M"], + confuseray: ["9M", "9L24", "8L24"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M"], + disable: ["9L60", "8L60", "8S0"], + doubleedge: ["9L66", "8L66", "8S0"], + doublekick: ["9L6", "8L6"], + drainingkiss: ["9M"], + endure: ["9M", "8M"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + gigaimpact: ["9M", "8M"], + haze: ["9L30", "8L30"], + hex: ["9M", "9L12", "8M", "8L12"], + hyperbeam: ["9M", "8M"], + lashout: ["8T"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "9L72", "8M", "8L72", "8S0"], + nightshade: ["9M"], + payback: ["8M"], + phantomforce: ["9M", "8M"], + protect: ["9M", "8M"], + psychic: ["9M"], + psychocut: ["8M"], + rest: ["9M", "8M"], + round: ["8M"], + scaryface: ["9M", "8M"], + shadowball: ["9M", "9L36", "8M", "8L36"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + stomp: ["9L18", "8L18"], + stompingtantrum: ["9M", "8M"], + substitute: ["9M", "8M"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L42", "8L42"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thrash: ["9L54", "8L54", "8S0"], + uproar: ["8M"], + willowisp: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 75, moves: ["thrash", "doubleedge", "disable", "nastyplot"]}, + ], + eventOnly: true, + }, + calyrex: { + learnset: { + agility: ["9M", "8M"], + allyswitch: ["8M"], + aromatherapy: ["8L40"], + batonpass: ["9M", "8M"], + bodypress: ["9M"], + bulletseed: ["9M", "8M"], + calmmind: ["9M", "8M"], + confusion: ["9L1", "8L1"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L48", "8M", "8L48"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + futuresight: ["9L88", "8M", "8L88"], + gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyterrain: ["9M", "9L40", "8M"], + growth: ["9L1", "8L1"], + guardswap: ["8M"], + healpulse: ["9L72", "8L72"], + helpinghand: ["9M", "9L32", "8M", "8L32"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + leafstorm: ["9M", "8M"], + leechseed: ["9L64", "8L64"], + lifedew: ["9L8", "8L8"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + megadrain: ["9L1", "8L1"], + metronome: ["9M", "8M"], + mudshot: ["9M"], + payday: ["8M"], + pollenpuff: ["9M", "8M"], + pound: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L56", "8M", "8L56", "8S0"], + psychicterrain: ["9M", "9L40", "8M"], + psyshock: ["9M", "9L24", "8M", "8L24"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scaryface: ["9M"], + seedbomb: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M"], + snore: ["8M"], + solarbeam: ["9M", "9L80", "8M", "8L80"], + solarblade: ["8M"], + speedswap: ["8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + takedown: ["9M"], + terablast: ["9M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 80, moves: ["psychic", "gigadrain"]}, + ], + eventOnly: true, + }, + calyrexice: { + learnset: { + agility: ["9M", "8M"], + allyswitch: ["8M"], + aromatherapy: ["8L40"], + assurance: ["8M"], + avalanche: ["9M", "9L1", "8M", "8L1"], + batonpass: ["9M", "8M"], + blizzard: ["9M", "8M"], + bodypress: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "8M"], + calmmind: ["9M", "8M"], + closecombat: ["9M", "8M"], + confusion: ["9L1", "8L1"], + crunch: ["9M", "8M"], + doubleedge: ["9L1", "8L1"], + doublekick: ["9L1", "8L1"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L48", "8M", "8L48"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + futuresight: ["9L88", "8M", "8L88"], + gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], + gigaimpact: ["9M", "8M"], + glaciallance: ["9L1", "8L1", "8S0"], + grassknot: ["9M", "8M"], + grassyterrain: ["9M", "9L40", "8M"], + growth: ["9L1", "8L1"], + guardswap: ["8M"], + hail: ["8M"], + healpulse: ["9L72", "8L72"], + heavyslam: ["9M", "8M"], + helpinghand: ["9M", "9L32", "8M", "8L32"], + highhorsepower: ["8M"], + hyperbeam: ["9M", "8M"], + icebeam: ["9M", "8M"], + iciclecrash: ["9L1", "8L1"], + iciclespear: ["8M"], + icywind: ["9M", "8M"], + imprison: ["9M", "8M"], + irondefense: ["9M", "9L1", "8M", "8L1", "8S0"], + lashout: ["8T"], + leafstorm: ["9M", "8M"], + leechseed: ["9L64", "8L64"], + lifedew: ["9L8", "8L8"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + megadrain: ["9L1", "8L1"], + megahorn: ["8M"], + metronome: ["9M", "8M"], + mist: ["9L1", "8L1"], + mudshot: ["9M", "8M"], + outrage: ["9M", "8M"], + payback: ["8M"], + payday: ["8M"], + pollenpuff: ["9M", "8M"], + pound: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L56", "8M", "8L56", "8S0"], + psychicterrain: ["9M", "9L40", "8M"], + psyshock: ["9M", "9L24", "8M", "8L24"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + smartstrike: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + snowscape: ["9M"], + solarbeam: ["9M", "9L80", "8M", "8L80"], + solarblade: ["8M"], + speedswap: ["8M"], + stomp: ["9L1", "8L1"], + stompingtantrum: ["9M", "8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + superpower: ["8M"], + swift: ["9M", "8M"], + swordsdance: ["9M", "9L1", "8M", "8L1"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L1", "8L1"], + taunt: ["9M", "9L1", "8M", "8L1"], + terablast: ["9M"], + thrash: ["9L1", "8L1"], + throatchop: ["8M"], + torment: ["9L1", "8L1"], + trailblaze: ["9M"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + uproar: ["8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 80, moves: ["glaciallance", "psychic", "irondefense", "gigadrain"]}, + ], + eventOnly: true, + }, + calyrexshadow: { + learnset: { + agility: ["9M", "9L1", "8M", "8L1", "8S0"], + allyswitch: ["8M"], + aromatherapy: ["8L40"], + assurance: ["8M"], + astralbarrage: ["9L1", "8L1", "8S0"], + batonpass: ["9M", "8M"], + bodyslam: ["9M", "8M"], + bulldoze: ["9M", "8M"], + bulletseed: ["9M", "8M"], + calmmind: ["9M", "8M"], + confuseray: ["9M", "9L1", "8L1"], + confusion: ["9L1", "8L1"], + crunch: ["9M", "8M"], + darkpulse: ["9M", "8M"], + disable: ["9L1", "8L1"], + doubleedge: ["9L1", "8L1"], + doublekick: ["9L1", "8L1"], + drainingkiss: ["9M", "8M"], + encore: ["9M", "8M"], + endure: ["9M", "8M"], + energyball: ["9M", "9L48", "8M", "8L48"], + expandingforce: ["8T"], + facade: ["9M", "8M"], + foulplay: ["9M", "8M"], + futuresight: ["9L88", "8M", "8L88"], + gigadrain: ["9M", "9L16", "8M", "8L16", "8S0"], + gigaimpact: ["9M", "8M"], + grassknot: ["9M", "8M"], + grassyterrain: ["9M", "9L40", "8M"], + growth: ["9L1", "8L1"], + guardswap: ["8M"], + haze: ["9L1", "8L1"], + healpulse: ["9L72", "8L72"], + helpinghand: ["9M", "9L32", "8M", "8L32"], + hex: ["9M", "9L1", "8M", "8L1"], + hyperbeam: ["9M", "8M"], + imprison: ["9M", "8M"], + lashout: ["8T"], + leafstorm: ["9M", "8M"], + leechseed: ["9L64", "8L64"], + lifedew: ["9L8", "8L8"], + lightscreen: ["9M", "8M"], + magicalleaf: ["9M", "8M"], + magicroom: ["8M"], + megadrain: ["9L1", "8L1"], + metronome: ["9M", "8M"], + mudshot: ["9M", "8M"], + nastyplot: ["9M", "9L1", "8M", "8L1"], + nightshade: ["9M"], + payback: ["8M"], + payday: ["8M"], + phantomforce: ["9M", "8M"], + pollenpuff: ["9M", "8M"], + pound: ["9L1", "8L1"], + powerswap: ["8M"], + protect: ["9M", "8M"], + psybeam: ["9M"], + psychic: ["9M", "9L56", "8M", "8L56", "8S0"], + psychicterrain: ["9M", "9L40", "8M"], + psychocut: ["8M"], + psyshock: ["9M", "9L24", "8M", "8L24"], + reflect: ["9M", "8M"], + rest: ["9M", "8M"], + round: ["8M"], + safeguard: ["8M"], + scaryface: ["9M", "8M"], + seedbomb: ["9M", "8M"], + shadowball: ["9M", "9L1", "8M", "8L1"], + skillswap: ["9M", "8M"], + sleeptalk: ["9M", "8M"], + snarl: ["9M", "8M"], + snore: ["8M"], + solarbeam: ["9M", "9L80", "8M", "8L80"], + solarblade: ["8M"], + speedswap: ["8M"], + stomp: ["9L1", "8L1"], + stompingtantrum: ["9M", "8M"], + storedpower: ["9M", "8M"], + substitute: ["9M", "8M"], + sunnyday: ["9M", "8M"], + swift: ["9M", "8M"], + tackle: ["9L1", "8L1"], + tailwhip: ["9L1", "8L1"], + takedown: ["9M", "9L1", "8L1"], + taunt: ["9M", "8M"], + terablast: ["9M"], + thrash: ["9L1", "8L1"], + triattack: ["8M"], + trick: ["9M", "8M"], + trickroom: ["9M", "8M"], + uproar: ["8M"], + willowisp: ["9M", "8M"], + wonderroom: ["8M"], + zenheadbutt: ["9M", "8M"], + }, + eventData: [ + {generation: 8, level: 80, moves: ["astralbarrage", "psychic", "agility", "gigadrain"]}, + ], + eventOnly: true, + }, + enamorus: { + learnset: { + agility: ["9M"], + astonish: ["9L1"], + bodyslam: ["9M"], + calmmind: ["9M"], + dazzlinggleam: ["9M", "9L40"], + disarmingvoice: ["9M"], + drainingkiss: ["9M", "9L20"], + earthpower: ["9M"], + endure: ["9M"], + extrasensory: ["9L45"], + facade: ["9M"], + fairywind: ["9L1"], + flatter: ["9L10"], + fly: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + healingwish: ["9L60"], + hyperbeam: ["9M"], + imprison: ["9M", "9L30"], + irondefense: ["9M", "9L25"], + ironhead: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L65"], + mysticalfire: ["9L35"], + outrage: ["9M", "9L70"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + springtidestorm: ["9L75"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L55"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + torment: ["9L5"], + twister: ["9L15"], + uproar: ["9L50"], + zenheadbutt: ["9M"], + }, + }, + enamorustherian: { + learnset: { + agility: ["9M"], + astonish: ["9L1"], + bodyslam: ["9M"], + calmmind: ["9M"], + dazzlinggleam: ["9M", "9L40"], + disarmingvoice: ["9M"], + drainingkiss: ["9M", "9L20"], + earthpower: ["9M"], + endure: ["9M"], + extrasensory: ["9L45"], + facade: ["9M"], + fairywind: ["9L1"], + flatter: ["9L10"], + fly: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + healingwish: ["9L60"], + hyperbeam: ["9M"], + imprison: ["9M", "9L30"], + irondefense: ["9M", "9L25"], + ironhead: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L65"], + mysticalfire: ["9L35"], + outrage: ["9M", "9L70"], + playrough: ["9M"], + protect: ["9M"], + psychic: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + springtidestorm: ["9L75"], + substitute: ["9M"], + sunnyday: ["9M"], + superpower: ["9L55"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + torment: ["9L5"], + twister: ["9L15"], + uproar: ["9L50"], + zenheadbutt: ["9M"], + }, + }, + sprigatito: { + learnset: { + acrobatics: ["9M"], + agility: ["9M"], + allyswitch: ["9E"], + bite: ["9L7"], + bulletseed: ["9M"], + charm: ["9M"], + copycat: ["9E"], + disarmingvoice: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L32"], + facade: ["9M"], + faketears: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + leafage: ["9L1"], + leafstorm: ["9M"], + leechseed: ["9E"], + magicalleaf: ["9M", "9L13"], + mudslap: ["9M"], + nastyplot: ["9M"], + petalblizzard: ["9E"], + playrough: ["9M", "9L36"], + protect: ["9M"], + quickattack: ["9L15"], + rest: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M", "9L17"], + shadowclaw: ["9M"], + slash: ["9L28"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + suckerpunch: ["9E"], + swift: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "9L21"], + worryseed: ["9L25"], + }, + }, + floragato: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + bite: ["9L7"], + bulletseed: ["9M"], + charm: ["9M"], + disarmingvoice: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L38"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + leafage: ["9L1"], + leafstorm: ["9M", "9L46"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "9L13"], + mudslap: ["9M"], + nastyplot: ["9M"], + playrough: ["9M", "9L42"], + protect: ["9M"], + quickattack: ["9L15"], + rest: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M", "9L20"], + shadowclaw: ["9M"], + slash: ["9L33"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + swift: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "9L24"], + worryseed: ["9L28"], + }, + }, + meowscarada: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aurasphere: ["9M"], + bite: ["9L7"], + brickbreak: ["9M"], + bulletseed: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + darkpulse: ["9M"], + disarmingvoice: ["9M"], + doubleteam: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L42"], + facade: ["9M"], + faketears: ["9M"], + fling: ["9M"], + flowertrick: ["9L0"], + foulplay: ["9M"], + frenzyplant: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grasspledge: ["9M"], + grassyterrain: ["9M", "9L58"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + hyperbeam: ["9M"], + knockoff: ["9L52"], + leafage: ["9L1"], + leafstorm: ["9M", "9L64"], + lowkick: ["9M"], + lowsweep: ["9M"], + magicalleaf: ["9M", "9L13"], + mudslap: ["9M"], + nastyplot: ["9M"], + nightslash: ["9L38"], + playrough: ["9M", "9L47"], + pollenpuff: ["9M"], + powergem: ["9M"], + protect: ["9M"], + quickattack: ["9L15"], + rest: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M", "9L20"], + shadowball: ["9M"], + shadowclaw: ["9M"], + skillswap: ["9M"], + slash: ["9L33"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + swift: ["9M"], + tailwhip: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderpunch: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uturn: ["9M", "9L24"], + worryseed: ["9L29"], + }, + }, + fuecoco: { + learnset: { + belch: ["9E"], + bite: ["9L12"], + bodyslam: ["9M"], + crunch: ["9M"], + curse: ["9E"], + dig: ["9M"], + disarmingvoice: ["9M"], + ember: ["9L1"], + encore: ["9M", "9E"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M", "9L36"], + firefang: ["9M"], + firepledge: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L28"], + flareblitz: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M", "9L32"], + incinerate: ["9L15"], + leer: ["9L1"], + mudslap: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9L25"], + round: ["9L7"], + seedbomb: ["9M"], + slackoff: ["9E"], + sleeptalk: ["9M"], + snarl: ["9M", "9L21"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + willowisp: ["9M"], + yawn: ["9L17"], + zenheadbutt: ["9M"], + }, + }, + crocalor: { + learnset: { + bite: ["9L12"], + bodyslam: ["9M"], + crunch: ["9M"], + dig: ["9M"], + disarmingvoice: ["9M"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M", "9L47"], + firefang: ["9M"], + firepledge: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L32"], + flareblitz: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hypervoice: ["9M", "9L38"], + incinerate: ["9L17"], + leer: ["9L1"], + lick: ["9L7"], + mudslap: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + roar: ["9L28"], + round: ["9L10"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M", "9L24"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + willowisp: ["9M", "9L42"], + yawn: ["9L15"], + zenheadbutt: ["9M"], + }, + }, + skeledirge: { + learnset: { + bite: ["9L15"], + blastburn: ["9M"], + bodyslam: ["9M"], + crunch: ["9M"], + dig: ["9M"], + disarmingvoice: ["9M"], + earthpower: ["9M"], + earthquake: ["9M"], + ember: ["9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M", "9L58"], + firefang: ["9M"], + firepledge: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L32"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M", "9L47"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L42"], + imprison: ["9M"], + incinerate: ["9L17"], + leer: ["9L1"], + lick: ["9L7"], + mudslap: ["9M"], + nightshade: ["9M"], + outrage: ["9M"], + overheat: ["9M", "9L64"], + protect: ["9M"], + rest: ["9M"], + roar: ["9L28"], + round: ["9L10"], + scaryface: ["9M", "9L12"], + seedbomb: ["9M"], + shadowball: ["9M", "9L38"], + shadowclaw: ["9M"], + sing: ["9L1"], + sleeptalk: ["9M"], + snarl: ["9M", "9L24"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + torchsong: ["9L0"], + willowisp: ["9M", "9L47"], + zenheadbutt: ["9M"], + }, + }, + quaxly: { + learnset: { + acrobatics: ["9M", "9L31"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L24"], + aquacutter: ["9L21"], + aquajet: ["9L13"], + batonpass: ["9M"], + bravebird: ["9M"], + chillingwater: ["9M"], + detect: ["9E"], + disarmingvoice: ["9M"], + doublehit: ["9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + focusenergy: ["9L28"], + growl: ["9L1"], + helpinghand: ["9M"], + hydropump: ["9M"], + lastresort: ["9E"], + liquidation: ["9M", "9L35"], + lowkick: ["9M"], + mistyterrain: ["9M"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9E"], + rest: ["9M"], + roost: ["9E"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + wingattack: ["9L10"], + workup: ["9L7"], + }, + }, + quaxwell: { + learnset: { + acrobatics: ["9M", "9L38"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L27"], + aquacutter: ["9L23"], + aquajet: ["9L13"], + batonpass: ["9M"], + bravebird: ["9M"], + chillingwater: ["9M"], + disarmingvoice: ["9M"], + doublehit: ["9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9L48"], + focusenergy: ["9L32"], + growl: ["9L1"], + helpinghand: ["9M"], + hydropump: ["9M"], + liquidation: ["9M", "9L43"], + lowkick: ["9M"], + lowsweep: ["9M", "9L19"], + mistyterrain: ["9M"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + waterpulse: ["9M", "9L17"], + wingattack: ["9L10"], + workup: ["9L7"], + }, + }, + quaquaval: { + learnset: { + acrobatics: ["9M", "9L43"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L27"], + aquacutter: ["9L21"], + aquajet: ["9L13"], + aquastep: ["9L0"], + batonpass: ["9M"], + bravebird: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M", "9L58"], + counter: ["9L1"], + disarmingvoice: ["9M"], + doublehit: ["9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9L52"], + fling: ["9M"], + focusenergy: ["9L32"], + gigaimpact: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hurricane: ["9M"], + hydrocannon: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + liquidation: ["9M", "9L47"], + lowkick: ["9M"], + lowsweep: ["9M", "9L17"], + megakick: ["9L38"], + mistyterrain: ["9M"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + surf: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + uturn: ["9M"], + watergun: ["9L1"], + waterpledge: ["9M"], + waterpulse: ["9M", "9L17"], + wavecrash: ["9L64"], + wingattack: ["9L10"], + workup: ["9L7"], + }, + }, + lechonk: { + learnset: { + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + chillingwater: ["9M"], + covet: ["9L15", "9S0"], + dig: ["9M", "9L17", "9S0"], + disarmingvoice: ["9M", "9L5"], + doubleedge: ["9L35"], + echoedvoice: ["9L8"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + headbutt: ["9L21"], + helpinghand: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + mudshot: ["9M", "9L12", "9S0"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + spitup: ["9E"], + stockpile: ["9E"], + stuffcheeks: ["9E"], + substitute: ["9M"], + sunnyday: ["9M"], + swallow: ["9E"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M", "9L27"], + terablast: ["9M", "9S0"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9L32"], + workup: ["9L30"], + yawn: ["9L24"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 15, gender: "M", isHidden: true, moves: ["terablast", "mudshot", "covet", "dig"], pokeball: "cherishball"}, + ], + }, + oinkologne: { + learnset: { + belch: ["9L54"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + chillingwater: ["9M"], + covet: ["9L15"], + dig: ["9M", "9L17"], + disarmingvoice: ["9M", "9L5"], + doubleedge: ["9L42"], + earthpower: ["9M", "9L48"], + echoedvoice: ["9L8"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L23"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + mudshot: ["9M", "9L12"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M", "9L26"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9L38"], + workup: ["9L34"], + yawn: ["9L27"], + zenheadbutt: ["9M"], + }, + }, + oinkolognef: { + learnset: { + belch: ["9L51"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + bulletseed: ["9M"], + chillingwater: ["9M"], + covet: ["9L12"], + dig: ["9M", "9L15"], + disarmingvoice: ["9M", "9L3"], + doubleedge: ["9L39"], + earthpower: ["9M", "9L45"], + echoedvoice: ["9L6"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L17"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + ironhead: ["9M"], + mudshot: ["9M", "9L9"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L1"], + takedown: ["9M", "9L28"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uproar: ["9L34"], + workup: ["9L30"], + yawn: ["9L23"], + zenheadbutt: ["9M"], + }, + }, + tarountula: { + learnset: { + assurance: ["9L8"], + block: ["9L18"], + bodyslam: ["9M"], + bugbite: ["9L14"], + bugbuzz: ["9M"], + bulletseed: ["9M"], + circlethrow: ["9L36"], + counter: ["9L22"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + feint: ["9L11"], + firstimpression: ["9E"], + gastroacid: ["9L33"], + gigadrain: ["9M"], + grassknot: ["9M"], + headbutt: ["9L25"], + leechlife: ["9M"], + lunge: ["9E"], + memento: ["9E"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + shadowclaw: ["9M"], + skittersmack: ["9L44"], + sleeptalk: ["9M"], + spikes: ["9M"], + stickyweb: ["9L29"], + stringshot: ["9L1"], + strugglebug: ["9M", "9L5"], + substitute: ["9M"], + suckerpunch: ["9E"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L40"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + xscissor: ["9M"], + }, + }, + spidops: { + learnset: { + aerialace: ["9M"], + assurance: ["9L8"], + block: ["9L19"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bugbite: ["9L14"], + bugbuzz: ["9M"], + bulletseed: ["9M"], + circlethrow: ["9L41"], + counter: ["9L24"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + feint: ["9L11"], + fling: ["9M"], + gastroacid: ["9L37"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + headbutt: ["9L28"], + leechlife: ["9M"], + lowkick: ["9M"], + poisonjab: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rocktomb: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + silktrap: ["9L0"], + skittersmack: ["9L49"], + sleeptalk: ["9M"], + spikes: ["9M"], + stickyweb: ["9L33"], + stringshot: ["9L1"], + strugglebug: ["9M", "9L5"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L45"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + }, + }, + nymble: { + learnset: { + agility: ["9M", "9L30"], + assurance: ["9L9"], + astonish: ["9L6"], + bugbite: ["9L22"], + bugbuzz: ["9M"], + counter: ["9E"], + doublekick: ["9L11"], + endure: ["9M", "9L18"], + facade: ["9M"], + feint: ["9L26"], + firstimpression: ["9L41"], + leechlife: ["9M"], + leer: ["9L1"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + screech: ["9L14"], + skittersmack: ["9E"], + sleeptalk: ["9M"], + strugglebug: ["9M", "9L4"], + substitute: ["9M"], + suckerpunch: ["9L38"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + }, + }, + lokix: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L32"], + assurance: ["9L9"], + astonish: ["9L6"], + axekick: ["9L53"], + bounce: ["9L48"], + brickbreak: ["9M"], + bugbite: ["9L22"], + bugbuzz: ["9M"], + darkpulse: ["9M"], + detect: ["9L1"], + doublekick: ["9L11"], + endure: ["9M", "9L18"], + facade: ["9M"], + feint: ["9L28"], + firstimpression: ["9L44"], + fling: ["9M"], + gigaimpact: ["9M"], + leechlife: ["9M"], + leer: ["9L1"], + lowkick: ["9M", "9L1"], + lowsweep: ["9M"], + lunge: ["9L0"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + scaryface: ["9M"], + screech: ["9L14"], + sleeptalk: ["9M"], + strugglebug: ["9M", "9L4"], + substitute: ["9M"], + suckerpunch: ["9L40"], + sunnyday: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L36"], + trailblaze: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + }, + }, + rellor: { + learnset: { + bugbite: ["9L20"], + bugbuzz: ["9M"], + cosmicpower: ["9E"], + defensecurl: ["9L1"], + dig: ["9M", "9L29"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + gunkshot: ["9M"], + irondefense: ["9M"], + leechlife: ["9M"], + lunge: ["9L35"], + memento: ["9E"], + mudshot: ["9M", "9L15"], + mudslap: ["9M"], + pounce: ["9M"], + protect: ["9M"], + recover: ["9E"], + rest: ["9M"], + rocktomb: ["9M"], + rollout: ["9L11"], + sandattack: ["9L4"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + strugglebug: ["9M", "9L7"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L24"], + terablast: ["9M"], + thief: ["9M"], + weatherball: ["9E"], + xscissor: ["9M"], + }, + }, + rabsca: { + learnset: { + bugbite: ["9L20"], + bugbuzz: ["9M", "9L45"], + calmmind: ["9M"], + confuseray: ["9M"], + confusion: ["9L1"], + dazzlinggleam: ["9M"], + defensecurl: ["9L1"], + dig: ["9M"], + earthpower: ["9M"], + electroball: ["9M"], + endure: ["9M"], + energyball: ["9M"], + extrasensory: ["9L29"], + facade: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + guardswap: ["9L40"], + gunkshot: ["9M"], + hyperbeam: ["9M"], + imprison: ["9M"], + irondefense: ["9M"], + leechlife: ["9M"], + lightscreen: ["9M"], + lunge: ["9L35"], + mudshot: ["9M"], + mudslap: ["9M"], + pounce: ["9M"], + powergem: ["9M"], + powerswap: ["9L40"], + protect: ["9M"], + psybeam: ["9M", "9L15"], + psychic: ["9M", "9L50"], + psychicterrain: ["9M"], + psychup: ["9L1"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + revivalblessing: ["9L0"], + rocktomb: ["9M"], + rollout: ["9L11"], + safeguard: ["9L1"], + sandattack: ["9L4"], + sandstorm: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + speedswap: ["9L40"], + storedpower: ["9M"], + strugglebug: ["9M", "9L7"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L24"], + terablast: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + }, + greavard: { + learnset: { + allyswitch: ["9E"], + bite: ["9L6"], + bulldoze: ["9M"], + charm: ["9M", "9L46"], + confuseray: ["9M"], + crunch: ["9M", "9L28"], + destinybond: ["9E"], + dig: ["9M", "9L16"], + disable: ["9E"], + doubleedge: ["9L52"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + growl: ["9L1"], + headbutt: ["9L12"], + helpinghand: ["9M", "9L37"], + hex: ["9M"], + howl: ["9E"], + icefang: ["9M"], + lick: ["9L3"], + memento: ["9E"], + mudshot: ["9M"], + mudslap: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M", "9L41"], + playrough: ["9M", "9L32"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L24"], + roar: ["9L9"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + shadowsneak: ["9E"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L6"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trick: ["9M"], + yawn: ["9E"], + }, + }, + houndstone: { + learnset: { + bite: ["9L6"], + bodypress: ["9M"], + bulldoze: ["9M"], + charm: ["9M", "9L51"], + confuseray: ["9M"], + crunch: ["9M", "9L28"], + dig: ["9M", "9L16"], + doubleedge: ["9L58"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + headbutt: ["9L12"], + helpinghand: ["9M", "9L41"], + hex: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + lastrespects: ["9L0"], + lick: ["9L3"], + mudshot: ["9M"], + mudslap: ["9M"], + nightshade: ["9M"], + phantomforce: ["9M", "9L46"], + playrough: ["9M", "9L36"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L24"], + roar: ["9L9"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L6"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trick: ["9M"], + willowisp: ["9M"], + }, + }, + flittle: { + learnset: { + agility: ["9M", "9L29"], + allyswitch: ["9E"], + babydolleyes: ["9L8"], + batonpass: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + confusion: ["9L5"], + disarmingvoice: ["9M", "9L11"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hypnosis: ["9E"], + lightscreen: ["9M"], + mudslap: ["9M"], + peck: ["9L1"], + pluck: ["9L24"], + pounce: ["9M"], + protect: ["9M"], + psybeam: ["9M", "9L19"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quickattack: ["9L15"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + roost: ["9E"], + sandstorm: ["9M"], + seedbomb: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9L34"], + uturn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + espathra: { + learnset: { + aerialace: ["9M"], + agility: ["9M", "9L29"], + babydolleyes: ["9L8"], + batonpass: ["9M"], + bodyslam: ["9M"], + bravebird: ["9M"], + calmmind: ["9M"], + confuseray: ["9M"], + confusion: ["9L5"], + dazzlinggleam: ["9M", "9L43"], + disarmingvoice: ["9M", "9L11"], + drillpeck: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + featherdance: ["9L1"], + flashcannon: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lastresort: ["9L54"], + lightscreen: ["9M"], + lowkick: ["9M"], + luminacrash: ["9L0"], + mudslap: ["9M"], + nightshade: ["9M"], + peck: ["9L1"], + pluck: ["9L24"], + pounce: ["9M"], + protect: ["9M"], + psybeam: ["9M", "9L19"], + psychic: ["9M", "9L49"], + psychicterrain: ["9M"], + psyshock: ["9M"], + quickattack: ["9L15"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + uproar: ["9L34"], + uturn: ["9M"], + zenheadbutt: ["9M"], + }, + }, + farigiraf: { + learnset: { + agility: ["9M", "9L23"], + amnesia: ["9M"], + assurance: ["9L10"], + astonish: ["9L1"], + batonpass: ["9M", "9L41"], + bodyslam: ["9M"], + bulldoze: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + confuseray: ["9M"], + confusion: ["9L5"], + crunch: ["9M", "9L37"], + dazzlinggleam: ["9M"], + doublehit: ["9L28"], + earthquake: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + growl: ["9L1"], + guardswap: ["9L1"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + imprison: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + nastyplot: ["9M", "9L46"], + nightshade: ["9M"], + powerswap: ["9L1"], + protect: ["9M"], + psybeam: ["9M", "9L19"], + psychic: ["9M", "9L50"], + psychicfangs: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M"], + skillswap: ["9M"], + sleeptalk: ["9M"], + stomp: ["9L14"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + trailblaze: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + twinbeam: ["9L32"], + zenheadbutt: ["9M"], + }, + }, + wiglett: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + blizzard: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dig: ["9M", "9L28"], + earthpower: ["9M"], + endure: ["9M"], + facade: ["9M"], + finalgambit: ["9E"], + foulplay: ["9M"], + headbutt: ["9L24"], + helpinghand: ["9M"], + hydropump: ["9M"], + icebeam: ["9M"], + liquidation: ["9M", "9L40"], + memento: ["9E"], + mudshot: ["9M"], + mudslap: ["9M", "9L4"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sandattack: ["9L1"], + sandstorm: ["9M"], + slam: ["9L20"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L32"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9L36"], + watergun: ["9L1"], + waterpulse: ["9M", "9L20"], + wrap: ["9L8"], + }, + }, + wugtrio: { + learnset: { + agility: ["9M"], + aquajet: ["9L12"], + blizzard: ["9M"], + bulldoze: ["9M"], + chillingwater: ["9M"], + dig: ["9M", "9L36"], + earthpower: ["9M"], + endure: ["9M"], + facade: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L24"], + helpinghand: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + liquidation: ["9M", "9L54"], + mudshot: ["9M"], + mudslap: ["9M", "9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sandattack: ["9L1"], + sandstorm: ["9M"], + slam: ["9L16"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + suckerpunch: ["9L42"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + throatchop: ["9L48"], + tripledive: ["9L30"], + watergun: ["9L1"], + waterpulse: ["9M", "9L20"], + wrap: ["9L1"], + }, + }, + dondozo: { + learnset: { + aquatail: ["9L40"], + avalanche: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M", "9L35"], + bulldoze: ["9M"], + chillingwater: ["9M"], + crunch: ["9M"], + curse: ["9E"], + dive: ["9L20"], + doubleedge: ["9L60"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9E"], + flail: ["9L10"], + gigaimpact: ["9M"], + heavyslam: ["9M", "9L55"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + liquidation: ["9M"], + nobleroar: ["9L25"], + orderup: ["9L50"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M", "9L45"], + rest: ["9M", "9L15"], + rockslide: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M", "9L15"], + soak: ["9L30"], + stompingtantrum: ["9M"], + substitute: ["9M"], + supersonic: ["9L1"], + surf: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E"], + tickle: ["9L5"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L65"], + yawn: ["9E"], + zenheadbutt: ["9M"], + }, + }, + veluza: { + learnset: { + agility: ["9M"], + aquacutter: ["9L25"], + aquajet: ["9L1"], + blizzard: ["9M"], + bodyslam: ["9M"], + chillingwater: ["9M"], + crunch: ["9M", "9L50"], + drillrun: ["9M"], + endure: ["9M"], + filletaway: ["9L30"], + finalgambit: ["9L55"], + focusenergy: ["9L15"], + gigaimpact: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icywind: ["9M"], + liquidation: ["9M", "9L45"], + nightslash: ["9L35"], + pluck: ["9L7"], + protect: ["9M"], + psychic: ["9M"], + psychicfangs: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9L40"], + raindance: ["9M"], + recover: ["9E"], + rest: ["9M"], + slash: ["9L20"], + sleeptalk: ["9M"], + snowscape: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + surf: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9E"], + waterfall: ["9M"], + waterpulse: ["9M", "9L11"], + zenheadbutt: ["9M"], + }, + }, + finizen: { + learnset: { + acrobatics: ["9M", "9L29"], + agility: ["9M"], + aquajet: ["9L13"], + aquatail: ["9L39"], + astonish: ["9L7"], + blizzard: ["9M"], + bodyslam: ["9M"], + boomburst: ["9E"], + bounce: ["9E"], + charm: ["9M", "9L25"], + chillingwater: ["9M"], + counter: ["9E"], + disarmingvoice: ["9M"], + dive: ["9L21"], + doublehit: ["9L17"], + drainingkiss: ["9M"], + encore: ["9M", "9L34"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + focusenergy: ["9L10"], + haze: ["9E"], + helpinghand: ["9M"], + hydropump: ["9M", "9L50"], + icebeam: ["9M"], + icywind: ["9M"], + liquidation: ["9M"], + mist: ["9L44"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + supersonic: ["9L1"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + tickle: ["9E"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + zenheadbutt: ["9M"], + }, + }, + palafin: { + learnset: { + acrobatics: ["9M", "9L29"], + agility: ["9M"], + aquajet: ["9L13"], + aquatail: ["9L39"], + astonish: ["9L7"], + aurasphere: ["9M"], + blizzard: ["9M"], + bodyslam: ["9M"], + bulkup: ["9M"], + charm: ["9M", "9L25"], + chillingwater: ["9M"], + closecombat: ["9M"], + disarmingvoice: ["9M"], + dive: ["9L21"], + doublehit: ["9L17"], + drainingkiss: ["9M"], + drainpunch: ["9M"], + encore: ["9M", "9L34"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9L0"], + focusblast: ["9M"], + focusenergy: ["9L10"], + focuspunch: ["9L55"], + gigaimpact: ["9M"], + grassknot: ["9M"], + haze: ["9S0"], + helpinghand: ["9M"], + hydropump: ["9M", "9L50"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icepunch: ["9M"], + icywind: ["9M"], + ironhead: ["9M"], + jetpunch: ["9L1", "9S0"], + liquidation: ["9M"], + mist: ["9L44"], + outrage: ["9M"], + protect: ["9M", "9S0"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + supersonic: ["9L1"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + waterfall: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M"], + wavecrash: ["9L61", "9S0"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, gender: "F", nature: "Adamant", ivs: {hp: 31, atk: 31, def: 31, spa: 17, spd: 31, spe: 31}, moves: ["jetpunch", "wavecrash", "haze", "protect"], pokeball: "cherishball"}, + ], + }, + smoliv: { + learnset: { + absorb: ["9L5"], + bulletseed: ["9M"], + charm: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L30"], + facade: ["9M"], + flail: ["9L16"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L23"], + growth: ["9L7"], + helpinghand: ["9M", "9L13"], + leafstorm: ["9M"], + leechseed: ["9L34"], + magicalleaf: ["9M"], + megadrain: ["9L20"], + memento: ["9E"], + protect: ["9M"], + razorleaf: ["9L10"], + rest: ["9M"], + seedbomb: ["9M", "9L27"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + strengthsap: ["9E"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + swift: ["9M"], + synthesis: ["9E"], + tackle: ["9L1"], + terablast: ["9M"], + terrainpulse: ["9L38"], + trailblaze: ["9M"], + weatherball: ["9E"], + }, + }, + dolliv: { + learnset: { + absorb: ["9L5"], + bulletseed: ["9M"], + charm: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L34"], + facade: ["9M"], + flail: ["9L16"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L23"], + growth: ["9L7"], + helpinghand: ["9M", "9L13"], + leafstorm: ["9M"], + leechseed: ["9L37"], + magicalleaf: ["9M"], + megadrain: ["9L20"], + protect: ["9M"], + razorleaf: ["9L10"], + rest: ["9M"], + seedbomb: ["9M", "9L29"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + terrainpulse: ["9L42"], + trailblaze: ["9M"], + }, + }, + arboliva: { + learnset: { + absorb: ["9L5"], + bulletseed: ["9M"], + charm: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M", "9L34"], + facade: ["9M"], + flail: ["9L16"], + fling: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L23"], + growth: ["9L7"], + helpinghand: ["9M", "9L13"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + leafstorm: ["9M"], + leechseed: ["9L39"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L20"], + metronome: ["9M"], + mirrorcoat: ["9L1"], + petalblizzard: ["9L52"], + petaldance: ["9L58"], + pollenpuff: ["9M"], + protect: ["9M"], + razorleaf: ["9L10"], + reflect: ["9M"], + rest: ["9M"], + safeguard: ["9L1"], + seedbomb: ["9M", "9L29"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9L1"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + terrainpulse: ["9L46"], + trailblaze: ["9M"], + }, + }, + capsakid: { + learnset: { + bite: ["9L4"], + bulletseed: ["9M", "9L21"], + crunch: ["9M", "9L38"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + growth: ["9L10"], + headbutt: ["9L24"], + helpinghand: ["9M"], + ingrain: ["9E"], + leafage: ["9L1"], + leafstorm: ["9M"], + leechseed: ["9E"], + leer: ["9L1"], + magicalleaf: ["9M"], + protect: ["9M"], + ragepowder: ["9E"], + razorleaf: ["9L13"], + rest: ["9M"], + rollout: ["9E"], + sandstorm: ["9M"], + seedbomb: ["9M", "9L44"], + sleeptalk: ["9M"], + solarbeam: ["9M", "9L48"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L17"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + worryseed: ["9E"], + zenheadbutt: ["9M", "9L28"], + }, + }, + scovillain: { + learnset: { + bite: ["9L4"], + bulletseed: ["9M", "9L21"], + crunch: ["9M", "9L38"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L1"], + flamethrower: ["9M", "9L0"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + growth: ["9L10"], + headbutt: ["9L24"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + leafage: ["9L1"], + leafstorm: ["9M"], + leer: ["9L1"], + magicalleaf: ["9M"], + overheat: ["9M", "9L48"], + protect: ["9M"], + razorleaf: ["9L13"], + rest: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M", "9L44"], + sleeptalk: ["9M"], + solarbeam: ["9M", "9L48"], + spicyextract: ["9L0"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L17"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + willowisp: ["9M"], + worryseed: ["9L33"], + zenheadbutt: ["9M", "9L28"], + }, + }, + tadbulb: { + learnset: { + acidspray: ["9M"], + charge: ["9L17"], + chargebeam: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + discharge: ["9L32"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L40"], + electroball: ["9M"], + endure: ["9M"], + flail: ["9L25"], + hypervoice: ["9M"], + lightscreen: ["9M"], + muddywater: ["9E"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + paraboliccharge: ["9E"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + soak: ["9E"], + spark: ["9L21"], + substitute: ["9M"], + suckerpunch: ["9L45"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L7"], + thunderwave: ["9M"], + voltswitch: ["9M"], + watergun: ["9L11"], + waterpulse: ["9M"], + weatherball: ["9L36"], + wildcharge: ["9M"], + zapcannon: ["9L50"], + }, + }, + bellibolt: { + learnset: { + acidspray: ["9M"], + charge: ["9L17"], + chargebeam: ["9M"], + chillingwater: ["9M"], + confuseray: ["9M"], + discharge: ["9L32"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L40"], + electroball: ["9M"], + endure: ["9M"], + flail: ["9L25"], + gigaimpact: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + lightscreen: ["9M"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + slackoff: ["9L1"], + sleeptalk: ["9M"], + spark: ["9L21"], + substitute: ["9M"], + suckerpunch: ["9L45"], + swift: ["9M"], + tackle: ["9L1"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L7"], + thunderwave: ["9M"], + voltswitch: ["9M"], + watergun: ["9L11"], + waterpulse: ["9M"], + weatherball: ["9L36"], + wildcharge: ["9M"], + zapcannon: ["9L50"], + }, + }, + varoom: { + learnset: { + acidspray: ["9M"], + assurance: ["9L10"], + bodyslam: ["9M"], + bulldoze: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gunkshot: ["9M", "9L50"], + gyroball: ["9L17"], + haze: ["9E"], + headbutt: ["9L21"], + irondefense: ["9M"], + ironhead: ["9M", "9L28"], + lick: ["9L1"], + partingshot: ["9E"], + poisongas: ["9L1"], + poisonjab: ["9M", "9L36"], + protect: ["9M"], + raindance: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L25"], + selfdestruct: ["9E"], + sleeptalk: ["9M"], + sludge: ["9L13"], + sludgebomb: ["9M"], + smog: ["9L4"], + spinout: ["9L46"], + steelbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L32"], + takedown: ["9M"], + taunt: ["9M", "9L7"], + terablast: ["9M"], + thief: ["9M"], + torment: ["9E"], + toxic: ["9E"], + toxicspikes: ["9M"], + uproar: ["9L41"], + venoshock: ["9M"], + zenheadbutt: ["9M"], + }, + }, + revavroom: { + learnset: { + acidspray: ["9M"], + assurance: ["9L10"], + bodyslam: ["9M"], + bulldoze: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M", "9L58"], + gyroball: ["9L17"], + headbutt: ["9L21"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M"], + ironhead: ["9M", "9L28"], + lick: ["9L1"], + magnetrise: ["9L1"], + overheat: ["9M"], + poisongas: ["9L1"], + poisonjab: ["9M", "9L36"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + screech: ["9L25"], + shiftgear: ["9L0"], + sleeptalk: ["9M"], + sludge: ["9L13"], + sludgebomb: ["9M"], + smog: ["9L4"], + spinout: ["9L52"], + steelbeam: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L32"], + takedown: ["9M"], + taunt: ["9M", "9L7"], + terablast: ["9M"], + thief: ["9M"], + toxicspikes: ["9M"], + uproar: ["9L46"], + venoshock: ["9M"], + zenheadbutt: ["9M"], + }, + }, + orthworm: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L16"], + coil: ["9E"], + curse: ["9E"], + dig: ["9M", "9L30"], + earthpower: ["9M"], + earthquake: ["9M", "9L47"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + harden: ["9L1"], + headbutt: ["9S0"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L38"], + ironhead: ["9M", "9L21"], + irontail: ["9L43", "9S0"], + metalburst: ["9E"], + mudshot: ["9M"], + mudslap: ["9M", "9L7"], + protect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandstorm: ["9M", "9L34", "9S0"], + shedtail: ["9L52"], + sleeptalk: ["9M"], + smackdown: ["9L12"], + spikes: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L26"], + terablast: ["9M"], + wrap: ["9L1", "9S0"], + }, + eventData: [ + {generation: 9, level: 29, gender: "M", nature: "Quirky", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["irontail", "headbutt", "wrap", "sandstorm"]}, + ], + }, + tandemaus: { + learnset: { + aerialace: ["9M"], + afteryou: ["9E"], + agility: ["9M"], + babydolleyes: ["9L1"], + batonpass: ["9M", "9E"], + beatup: ["9L37"], + bite: ["9E"], + bulletseed: ["9M", "9L18"], + charm: ["9M", "9L33"], + copycat: ["9L41"], + crunch: ["9M"], + dig: ["9M"], + doublehit: ["9L14"], + echoedvoice: ["9L5"], + encore: ["9M", "9L22"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + feint: ["9E"], + grassknot: ["9M"], + helpinghand: ["9M", "9L8"], + hypervoice: ["9M", "9L30"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L26"], + populationbomb: ["9L46"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9L11"], + swift: ["9M"], + switcheroo: ["9E"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + tickle: ["9E"], + uturn: ["9M"], + waterpulse: ["9M"], + }, + }, + maushold: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + babydolleyes: ["9L1"], + beatup: ["9L41"], + bulletseed: ["9M", "9L18"], + charm: ["9M", "9L37"], + chillingwater: ["9M"], + copycat: ["9L46"], + crunch: ["9M"], + dig: ["9M"], + doublehit: ["9L14"], + echoedvoice: ["9L5"], + encore: ["9M", "9L22"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + followme: ["9L1"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M", "9L8"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L33"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L29"], + populationbomb: ["9L53"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9L11"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + tidyup: ["9L1"], + trailblaze: ["9M"], + uturn: ["9M"], + waterpulse: ["9M"], + }, + }, + mausholdfour: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + babydolleyes: ["9L1"], + beatup: ["9L41"], + bulletseed: ["9M", "9L18"], + charm: ["9M", "9L37"], + chillingwater: ["9M"], + copycat: ["9L46"], + crunch: ["9M"], + dig: ["9M"], + doublehit: ["9L14"], + echoedvoice: ["9L5"], + encore: ["9M", "9L22"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + followme: ["9L1"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M", "9L8"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L33"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L29"], + populationbomb: ["9L53"], + pound: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + seedbomb: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + superfang: ["9L11"], + swift: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + tidyup: ["9L1"], + trailblaze: ["9M"], + uturn: ["9M"], + waterpulse: ["9M"], + }, + }, + cetoddle: { + learnset: { + amnesia: ["9M", "9L40"], + avalanche: ["9M", "9L27"], + bellydrum: ["9E"], + blizzard: ["9M", "9L53"], + bodypress: ["9M"], + bodyslam: ["9M", "9L36"], + bounce: ["9L31"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + doubleedge: ["9L49"], + earthquake: ["9M"], + echoedvoice: ["9L9"], + endure: ["9M"], + entrainment: ["9E"], + facade: ["9M"], + flail: ["9L25"], + growl: ["9L6"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + iceshard: ["9L12"], + icespinner: ["9M", "9L44"], + iciclecrash: ["9E"], + icywind: ["9M"], + liquidation: ["9M"], + playrough: ["9M"], + powdersnow: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L15"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + superpower: ["9E"], + tackle: ["9L1"], + takedown: ["9M", "9L19"], + terablast: ["9M"], + waterpulse: ["9M"], + yawn: ["9E"], + }, + }, + cetitan: { + learnset: { + amnesia: ["9M", "9L40"], + avalanche: ["9M", "9L27"], + blizzard: ["9M", "9L53"], + bodypress: ["9M"], + bodyslam: ["9M", "9L36"], + bounce: ["9L31"], + bulldoze: ["9M"], + charm: ["9M"], + chillingwater: ["9M"], + doubleedge: ["9L49"], + earthquake: ["9M"], + echoedvoice: ["9L9"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L25"], + gigaimpact: ["9M"], + growl: ["9L6"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + iceshard: ["9L12"], + icespinner: ["9M", "9L44"], + icywind: ["9M"], + liquidation: ["9M"], + playrough: ["9M"], + powdersnow: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M", "9L15"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L19"], + terablast: ["9M"], + waterpulse: ["9M"], + }, + }, + frigibax: { + learnset: { + aquatail: ["9E"], + avalanche: ["9M"], + bite: ["9L24"], + blizzard: ["9M"], + bodyslam: ["9M"], + crunch: ["9M", "9L44"], + dig: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragonclaw: ["9M", "9L32"], + dragonpulse: ["9M"], + dragonrush: ["9E"], + dragontail: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + focusenergy: ["9L18"], + freezedry: ["9E"], + helpinghand: ["9M"], + icebeam: ["9M", "9L40"], + icefang: ["9M", "9L29"], + iciclecrash: ["9L48"], + iciclespear: ["9E"], + icywind: ["9M", "9L6"], + leer: ["9L1"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L36"], + terablast: ["9M"], + }, + }, + arctibax: { + learnset: { + aerialace: ["9M"], + avalanche: ["9M"], + bite: ["9L24"], + blizzard: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + crunch: ["9M", "9L50"], + dig: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragonclaw: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + focusenergy: ["9L18"], + helpinghand: ["9M"], + icebeam: ["9M", "9L45"], + icefang: ["9M", "9L29"], + iciclecrash: ["9L55"], + icywind: ["9M", "9L6"], + ironhead: ["9M"], + leer: ["9L1"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L40"], + terablast: ["9M"], + }, + }, + baxcalibur: { + learnset: { + aerialace: ["9M"], + avalanche: ["9M"], + bite: ["9L24"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9L1"], + brickbreak: ["9M"], + bulldoze: ["9M"], + crunch: ["9M", "9L55"], + dig: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L12"], + dragonclaw: ["9M", "9L35"], + dragondance: ["9M"], + dragonpulse: ["9M"], + dragontail: ["9M", "9L1"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + focusenergy: ["9L18"], + gigaimpact: ["9M"], + glaiverush: ["9L0"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M", "9L48"], + icefang: ["9M", "9L29"], + iceshard: ["9L1"], + iciclecrash: ["9L62"], + icywind: ["9M", "9L6"], + ironhead: ["9M"], + leer: ["9L1"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M", "9L1"], + stompingtantrum: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M", "9L42"], + terablast: ["9M"], + thunderfang: ["9M"], + zenheadbutt: ["9M"], + }, + }, + tatsugiri: { + learnset: { + batonpass: ["9M", "9E"], + chillingwater: ["9M"], + counter: ["9E"], + dracometeor: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M", "9L52", "9S0"], + endure: ["9M"], + facade: ["9M"], + gigaimpact: ["9M"], + harden: ["9L6"], + helpinghand: ["9M", "9L12"], + hydropump: ["9M"], + hyperbeam: ["9M"], + icywind: ["9M", "9S0"], + memento: ["9L34"], + mirrorcoat: ["9L47"], + muddywater: ["9L39", "9S0"], + nastyplot: ["9M", "9L43"], + outrage: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rapidspin: ["9E"], + rest: ["9M"], + sleeptalk: ["9M"], + soak: ["9L23"], + splash: ["9L1"], + substitute: ["9M"], + surf: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L28", "9S0"], + terablast: ["9M"], + watergun: ["9L1"], + waterpulse: ["9M", "9L17"], + }, + eventData: [ + {generation: 9, level: 57, gender: "M", nature: "Quiet", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["muddywater", "icywind", "taunt", "dragonpulse"]}, + ], + }, + tatsugiristretchy: { + learnset: { + celebrate: ["9S0"], + dracometeor: ["9S0"], + helpinghand: ["9S0"], + muddywater: ["9S0"], + }, + eventData: [ + {generation: 9, level: 50, moves: ["dracometeor", "muddywater", "helpinghand", "celebrate"], pokeball: "cherishball"}, + ], + }, + cyclizar: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aquatail: ["9E"], + bite: ["9L23"], + bodyslam: ["9M"], + breakingswipe: ["9L14"], + crunch: ["9M"], + doubleedge: ["9L51"], + dracometeor: ["9M"], + dragonclaw: ["9M", "9L36"], + dragonpulse: ["9M", "9L45"], + dragonrush: ["9L57"], + dragontail: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icespinner: ["9M"], + ironhead: ["9M"], + irontail: ["9E"], + knockoff: ["9E"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M"], + overheat: ["9M"], + powerwhip: ["9E"], + protect: ["9M"], + quickattack: ["9L18"], + raindance: ["9M"], + rapidspin: ["9L7"], + rest: ["9M"], + shedtail: ["9L31"], + shiftgear: ["9L40"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M", "9L11"], + terablast: ["9M"], + thief: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "9L27"], + wildcharge: ["9M"], + }, + }, + pawmi: { + learnset: { + agility: ["9M", "9L40"], + batonpass: ["9M"], + bite: ["9L19"], + charge: ["9L8"], + chargebeam: ["9M"], + charm: ["9M"], + crunch: ["9M"], + dig: ["9M", "9L15"], + discharge: ["9L38"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9L31"], + facade: ["9M"], + fakeout: ["9E"], + fling: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + machpunch: ["9E"], + metalclaw: ["9M"], + nuzzle: ["9L12"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + raindance: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + slam: ["9L35"], + sleeptalk: ["9M"], + spark: ["9L23"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetkiss: ["9E"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thundershock: ["9L3"], + thunderwave: ["9M", "9L27"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L44"], + wish: ["9E"], + }, + }, + pawmo: { + learnset: { + agility: ["9M", "9L46"], + armthrust: ["9L0"], + batonpass: ["9M"], + bite: ["9L19"], + charge: ["9L8"], + chargebeam: ["9M"], + charm: ["9M"], + crunch: ["9M"], + dig: ["9M", "9L15"], + discharge: ["9L42"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9L38"], + facade: ["9M"], + fling: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M"], + nuzzle: ["9L12"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + raindance: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + slam: ["9L32"], + sleeptalk: ["9M"], + spark: ["9L23"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thundershock: ["9L3"], + thunderwave: ["9M", "9L27"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L52"], + }, + }, + pawmot: { + learnset: { + agility: ["9M", "9L54"], + armthrust: ["9L25"], + batonpass: ["9M"], + bite: ["9L19"], + bodypress: ["9M"], + brickbreak: ["9M"], + bulkup: ["9M"], + charge: ["9L8"], + chargebeam: ["9M"], + charm: ["9M"], + closecombat: ["9M", "9L44"], + crunch: ["9M"], + dig: ["9M", "9L15"], + discharge: ["9L49"], + doubleshock: ["9L60"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + encore: ["9M"], + endure: ["9M"], + entrainment: ["9L39"], + facade: ["9M"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + metalclaw: ["9M"], + metronome: ["9M"], + nuzzle: ["9L12"], + playrough: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + raindance: ["9M"], + rest: ["9M"], + revivalblessing: ["9L0"], + rocktomb: ["9M"], + scratch: ["9L1"], + seedbomb: ["9M"], + slam: ["9L33"], + sleeptalk: ["9M"], + spark: ["9L23"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thundershock: ["9L3"], + thunderwave: ["9M", "9L29"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L1"], + }, + }, + wattrel: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L32"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M"], + chargebeam: ["9M"], + discharge: ["9L43"], + dualwingbeat: ["9L27"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9E"], + fly: ["9M"], + growl: ["9L1"], + hurricane: ["9M"], + peck: ["9L1"], + pluck: ["9L11"], + protect: ["9M"], + quickattack: ["9L7"], + rest: ["9M"], + roost: ["9L23"], + sleeptalk: ["9M"], + spark: ["9L15"], + spitup: ["9E"], + stockpile: ["9E"], + substitute: ["9M"], + swallow: ["9E"], + swift: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + uproar: ["9L19"], + uturn: ["9M"], + voltswitch: ["9M", "9L37"], + weatherball: ["9E"], + wildcharge: ["9M"], + }, + }, + kilowattrel: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M", "9L36"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M"], + chargebeam: ["9M"], + discharge: ["9L48"], + dualwingbeat: ["9L30"], + eerieimpulse: ["9M"], + electricterrain: ["9M"], + electroball: ["9M", "9L0"], + endure: ["9M"], + facade: ["9M"], + fly: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + hurricane: ["9M", "9L55"], + hyperbeam: ["9M"], + peck: ["9L1"], + pluck: ["9L11"], + protect: ["9M"], + quickattack: ["9L7"], + rest: ["9M"], + roost: ["9L24"], + scaryface: ["9M"], + sleeptalk: ["9M"], + spark: ["9L15"], + substitute: ["9M"], + swift: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L4"], + thunderwave: ["9M"], + uproar: ["9L19"], + uturn: ["9M"], + voltswitch: ["9M", "9L43"], + wildcharge: ["9M"], + }, + }, + bombirdier: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M"], + darkpulse: ["9M"], + drillrun: ["9M"], + dualwingbeat: ["9L42"], + endure: ["9M"], + facade: ["9M"], + featherdance: ["9E"], + fly: ["9M"], + foulplay: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + honeclaws: ["9L1"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + knockoff: ["9L53"], + leer: ["9L1"], + memento: ["9L1"], + nastyplot: ["9M"], + partingshot: ["9L60"], + payback: ["9L36"], + peck: ["9L1"], + pluck: ["9L20", "9S0"], + powergem: ["9M"], + powertrip: ["9E"], + protect: ["9M"], + raindance: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L47"], + rockthrow: ["9L11", "9S0"], + rocktomb: ["9M", "9L29"], + roost: ["9E"], + sandstorm: ["9M"], + scaryface: ["9M"], + skyattack: ["9E"], + sleeptalk: ["9M"], + snarl: ["9M"], + stealthrock: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + suckerpunch: ["9E"], + sunnyday: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M", "9L7"], + torment: ["9L24", "9S0"], + uturn: ["9M"], + whirlwind: ["9L16"], + wingattack: ["9L1", "9S0"], + }, + eventData: [ + {generation: 9, level: 20, gender: "F", nature: "Jolly", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, isHidden: true, moves: ["rockthrow", "wingattack", "pluck", "torment"]}, + ], + }, + squawkabilly: { + learnset: { + aerialace: ["9M", "9L13"], + aircutter: ["9M"], + airslash: ["9M"], + bravebird: ["9M", "9L42"], + copycat: ["9L27"], + doubleedge: ["9E"], + endure: ["9M"], + facade: ["9M", "9L34"], + faketears: ["9M"], + finalgambit: ["9E"], + flatter: ["9E"], + fly: ["9M", "9L30"], + foulplay: ["9M"], + furyattack: ["9L17"], + gigaimpact: ["9M"], + growl: ["9L1"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + mimic: ["9L1"], + partingshot: ["9E"], + peck: ["9L1"], + pounce: ["9M"], + protect: ["9M"], + quickattack: ["9L6"], + rest: ["9M"], + reversal: ["9M", "9L52"], + roost: ["9L47"], + scaryface: ["9M"], + sleeptalk: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L38"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L20"], + terablast: ["9M"], + thief: ["9M"], + torment: ["9L10"], + uproar: ["9L24"], + uturn: ["9M"], + }, + }, + flamigo: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + agility: ["9M"], + aircutter: ["9M"], + airslash: ["9M", "9L35"], + bravebird: ["9M", "9L54"], + bulkup: ["9M"], + chillingwater: ["9M"], + closecombat: ["9M"], + copycat: ["9L1"], + detect: ["9L9"], + doublekick: ["9L5"], + doubleteam: ["9E"], + endure: ["9M"], + facade: ["9M"], + feint: ["9L21"], + fling: ["9M"], + fly: ["9M"], + focusenergy: ["9L15"], + gigaimpact: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + liquidation: ["9M"], + lowkick: ["9M", "9L18"], + lowsweep: ["9M"], + megakick: ["9L39"], + payback: ["9L27"], + peck: ["9L1"], + pounce: ["9M"], + protect: ["9M"], + quickguard: ["9E"], + rest: ["9M"], + reversal: ["9M"], + roost: ["9L31"], + skyattack: ["9E"], + sleeptalk: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + throatchop: ["9L48"], + uturn: ["9M"], + waterpulse: ["9M"], + wideguard: ["9L44"], + wingattack: ["9L12"], + }, + }, + klawf: { + learnset: { + ancientpower: ["9E"], + block: ["9S0"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + crabhammer: ["9E"], + dig: ["9M"], + earthpower: ["9M"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + flail: ["9L37"], + fling: ["9M"], + gigaimpact: ["9M"], + guillotine: ["9L56"], + harden: ["9L6"], + helpinghand: ["9M"], + highhorsepower: ["9L47"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L51"], + knockoff: ["9E"], + metalclaw: ["9M", "9L17"], + mudshot: ["9M"], + mudslap: ["9M"], + powergem: ["9M"], + protect: ["9M", "9L21"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockblast: ["9M", "9L24"], + rockslide: ["9M", "9L42"], + rocksmash: ["9L9", "9S0"], + rockthrow: ["9L1"], + rocktomb: ["9M", "9L13", "9S0"], + sandstorm: ["9M"], + scaryface: ["9M"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M", "9L33"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + visegrip: ["9L1", "9S0"], + xscissor: ["9M", "9L29"], + }, + eventData: [ + {generation: 9, level: 16, gender: "F", nature: "Gentle", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, abilities: ["angershell"], moves: ["visegrip", "rocksmash", "block", "rocktomb"]}, + ], + }, + nacli: { + learnset: { + ancientpower: ["9E"], + bodyslam: ["9M"], + bulldoze: ["9M"], + curse: ["9E"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L40"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9E"], + flashcannon: ["9M"], + harden: ["9L1"], + headbutt: ["9L16"], + heavyslam: ["9M", "9L35"], + helpinghand: ["9M"], + irondefense: ["9M", "9L20"], + ironhead: ["9M"], + mudshot: ["9M", "9L7"], + powergem: ["9M", "9E"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9L25"], + rest: ["9M"], + rockpolish: ["9L13"], + rockslide: ["9M", "9L30"], + rockthrow: ["9L5"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9L10"], + stealthrock: ["9M", "9L33"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L45"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + zenheadbutt: ["9M"], + }, + }, + naclstack: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L45"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + harden: ["9L1"], + headbutt: ["9L16"], + heavyslam: ["9M", "9L41"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + irondefense: ["9M", "9L20"], + ironhead: ["9M"], + mudshot: ["9M", "9L7"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + recover: ["9L30"], + rest: ["9M"], + rockpolish: ["9L13"], + rockslide: ["9M", "9L34"], + rockthrow: ["9L5"], + saltcure: ["9L0"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + smackdown: ["9L10"], + stealthrock: ["9M", "9L38"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L51"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + zenheadbutt: ["9M"], + }, + }, + garganacl: { + learnset: { + avalanche: ["9M"], + block: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L49"], + endure: ["9M"], + explosion: ["9L60"], + facade: ["9M"], + firepunch: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + gigaimpact: ["9M"], + hammerarm: ["9L0"], + harden: ["9L1"], + headbutt: ["9L16"], + heavyslam: ["9M", "9L44"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icepunch: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + mudshot: ["9M", "9L7"], + powergem: ["9M"], + protect: ["9M", "9S0"], + raindance: ["9M"], + recover: ["9L30", "9S0"], + rest: ["9M"], + rockblast: ["9M", "9L1"], + rockpolish: ["9L13"], + rockslide: ["9M", "9L34"], + rockthrow: ["9L5"], + rocktomb: ["9M", "9L10"], + saltcure: ["9L24", "9S0"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + stealthrock: ["9M", "9L40"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L54"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunderpunch: ["9M"], + wideguard: ["9L1", "9S0"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 50, gender: "M", nature: "Careful", ivs: {hp: 31, atk: 31, def: 31, spa: 22, spd: 31, spe: 31}, moves: ["saltcure", "recover", "wideguard", "protect"], pokeball: "cherishball"}, + ], + }, + glimmet: { + learnset: { + acidarmor: ["9L41"], + acidspray: ["9M", "9L7"], + ancientpower: ["9L11"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + endure: ["9M"], + explosion: ["9E"], + facade: ["9M"], + gunkshot: ["9M"], + harden: ["9L1"], + irondefense: ["9M"], + lightscreen: ["9M"], + memento: ["9E"], + mudshot: ["9M"], + powergem: ["9M", "9L37"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockpolish: ["9L15"], + rockslide: ["9M", "9L33"], + rockthrow: ["9L1"], + rocktomb: ["9M"], + sandstorm: ["9M", "9L26"], + selfdestruct: ["9L29"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L46"], + smackdown: ["9L1"], + spikes: ["9M"], + stealthrock: ["9M", "9L18"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + terablast: ["9M"], + toxic: ["9E"], + toxicspikes: ["9M"], + venoshock: ["9M", "9L22"], + }, + }, + glimmora: { + learnset: { + acidarmor: ["9L44"], + acidspray: ["9M", "9L7"], + ancientpower: ["9L11"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gunkshot: ["9M"], + harden: ["9L1"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + mortalspin: ["9L0"], + mudshot: ["9M"], + powergem: ["9M", "9L39"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockpolish: ["9L15"], + rockslide: ["9M", "9L33"], + rockthrow: ["9L1"], + rocktomb: ["9M"], + sandstorm: ["9M", "9L26"], + selfdestruct: ["9L29"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + sludgewave: ["9L50"], + smackdown: ["9L1"], + solarbeam: ["9M"], + spikes: ["9M"], + spikyshield: ["9L1"], + stealthrock: ["9M", "9L18"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + terablast: ["9M"], + toxicspikes: ["9M", "9L1"], + venoshock: ["9M", "9L22"], + }, + }, + shroodle: { + learnset: { + acidspray: ["9M", "9L5"], + acrobatics: ["9M"], + batonpass: ["9M"], + bite: ["9L8"], + copycat: ["9E"], + crosspoison: ["9E"], + dig: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + flatter: ["9L18"], + fling: ["9M"], + foulplay: ["9M"], + furyswipes: ["9L8"], + gunkshot: ["9M", "9L45"], + helpinghand: ["9M"], + knockoff: ["9L40"], + leer: ["9L1"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + partingshot: ["9E"], + poisonfang: ["9L14"], + poisonjab: ["9M", "9L29"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scratch: ["9L1"], + slash: ["9L21"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + substitute: ["9M", "9L36"], + sunnyday: ["9M"], + superfang: ["9E"], + swagger: ["9E"], + switcheroo: ["9L11"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L33"], + terablast: ["9M"], + thief: ["9M"], + toxic: ["9E"], + trailblaze: ["9M"], + uturn: ["9M", "9L25"], + venoshock: ["9M"], + }, + }, + grafaiai: { + learnset: { + acidspray: ["9M", "9L5"], + acrobatics: ["9M"], + batonpass: ["9M"], + dig: ["9M"], + doodle: ["9L0"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + flatter: ["9L18"], + fling: ["9M"], + foulplay: ["9M"], + furyswipes: ["9L8"], + gigaimpact: ["9M"], + gunkshot: ["9M", "9L51"], + helpinghand: ["9M"], + knockoff: ["9L45"], + leer: ["9L1"], + lowkick: ["9M"], + lowsweep: ["9M"], + metronome: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + nastyplot: ["9M"], + poisonfang: ["9L14"], + poisonjab: ["9M", "9L33"], + poisontail: ["9M"], + pounce: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + scratch: ["9L1"], + shadowclaw: ["9M"], + slash: ["9L21"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + substitute: ["9M", "9L40"], + sunnyday: ["9M"], + switcheroo: ["9L11"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L37"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + uturn: ["9M", "9L25"], + venoshock: ["9M"], + xscissor: ["9M"], + }, + }, + fidough: { + learnset: { + agility: ["9M"], + babydolleyes: ["9L15"], + batonpass: ["9M", "9L26"], + bite: ["9L11"], + bodyslam: ["9M"], + charm: ["9M", "9L36"], + copycat: ["9E"], + covet: ["9L8"], + crunch: ["9M", "9L40"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["9L33"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + howl: ["9E"], + icefang: ["9M"], + lastresort: ["9L45"], + lick: ["9L3"], + mistyterrain: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L18"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9L30"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + sweetscent: ["9E"], + tackle: ["9L1"], + tailwhip: ["9L6"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + wish: ["9E"], + workup: ["9L22"], + yawn: ["9E"], + }, + }, + dachsbun: { + learnset: { + agility: ["9M"], + babydolleyes: ["9L15"], + batonpass: ["9M", "9L29"], + bite: ["9L11"], + bodypress: ["9M"], + bodyslam: ["9M"], + charm: ["9M", "9L42"], + covet: ["9L8"], + crunch: ["9M", "9L47"], + dazzlinggleam: ["9M"], + dig: ["9M"], + doubleedge: ["9L38"], + drainingkiss: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + growl: ["9L1"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + lastresort: ["9L53"], + lick: ["9L3"], + mistyterrain: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M", "9L18"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9L33"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + tackle: ["9L1"], + tailwhip: ["9L6"], + takedown: ["9M"], + terablast: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + workup: ["9L22"], + }, + }, + maschiff: { + learnset: { + bite: ["9L14"], + bodyslam: ["9M"], + charm: ["9M"], + crunch: ["9M", "9L31"], + darkpulse: ["9M"], + destinybond: ["9E"], + dig: ["9M"], + doubleedge: ["9L49"], + endeavor: ["9E"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + firefang: ["9M"], + headbutt: ["9L22"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + icefang: ["9M"], + jawlock: ["9L43"], + leer: ["9L1"], + lick: ["9L4"], + payback: ["9L26"], + playrough: ["9M", "9E"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + retaliate: ["9E"], + reversal: ["9M", "9L39"], + roar: ["9L18"], + scaryface: ["9M", "9L1"], + sleeptalk: ["9M"], + snarl: ["9M", "9L7"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L35"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + }, + }, + mabosstiff: { + learnset: { + bite: ["9L14"], + bodyslam: ["9M"], + charm: ["9M"], + comeuppance: ["9L0"], + crunch: ["9M", "9L34"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9L55"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + firefang: ["9M"], + gigaimpact: ["9M"], + headbutt: ["9L22"], + helpinghand: ["9M"], + honeclaws: ["9L10"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icefang: ["9M"], + jawlock: ["9L48"], + leer: ["9L1"], + lick: ["9L4"], + outrage: ["9M", "9L60"], + payback: ["9L26"], + playrough: ["9M"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M", "9L43"], + roar: ["9L18"], + scaryface: ["9M", "9L1"], + sleeptalk: ["9M"], + snarl: ["9M", "9L7"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L39"], + tackle: ["9L1"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderfang: ["9M"], + trailblaze: ["9M"], + wildcharge: ["9M"], + }, + }, + bramblin: { + learnset: { + absorb: ["9L5"], + astonish: ["9L1"], + beatup: ["9E"], + block: ["9E"], + bulletseed: ["9M", "9L13"], + confuseray: ["9M"], + curse: ["9L45"], + defensecurl: ["9L1"], + disable: ["9L29"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M", "9L40"], + grassknot: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L21"], + infestation: ["9L17"], + leafstorm: ["9M"], + leechseed: ["9E"], + megadrain: ["9L25"], + nightshade: ["9M"], + painsplit: ["9L50"], + phantomforce: ["9M", "9L35"], + pounce: ["9M"], + powerwhip: ["9L55"], + protect: ["9M"], + rapidspin: ["9L9"], + rest: ["9M"], + rollout: ["9L1"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + shadowsneak: ["9E"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + strengthsap: ["9E"], + substitute: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + }, + }, + brambleghast: { + learnset: { + absorb: ["9L5"], + astonish: ["9L1"], + bulletseed: ["9M", "9L13"], + confuseray: ["9M"], + curse: ["9L45"], + defensecurl: ["9L1"], + disable: ["9L29"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M", "9L40"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + hex: ["9M", "9L21"], + hyperbeam: ["9M"], + infestation: ["9L17"], + leafstorm: ["9M"], + megadrain: ["9L25"], + nightshade: ["9M"], + painsplit: ["9L50"], + phantomforce: ["9M", "9L35"], + pounce: ["9M"], + powerwhip: ["9L55"], + protect: ["9M"], + rapidspin: ["9L9"], + rest: ["9M"], + rollout: ["9L1"], + scaryface: ["9M"], + seedbomb: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + substitute: ["9M"], + terablast: ["9M"], + thief: ["9M"], + trailblaze: ["9M"], + }, + }, + gimmighoul: { + learnset: { + astonish: ["9L1", "9S0"], + confuseray: ["9M"], + endure: ["9M"], + hex: ["9M", "9S1"], + lightscreen: ["9M"], + nastyplot: ["9M"], + nightshade: ["9M"], + powergem: ["9M", "9S1"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M", "9S1"], + sleeptalk: ["9M"], + substitute: ["9M"], + tackle: ["9L1", "9S0"], + takedown: ["9M", "9S1"], + terablast: ["9M"], + thief: ["9M"], + }, + eventData: [ + {generation: 9, level: 5, moves: ["astonish", "tackle"]}, + {generation: 9, level: 75, shiny: 1, perfectIVs: 4, moves: ["takedown", "shadowball", "hex", "powergem"]}, + ], + eventOnly: true, + }, + gholdengo: { + learnset: { + astonish: ["9L1"], + chargebeam: ["9M"], + confuseray: ["9M", "9L14"], + dazzlinggleam: ["9M"], + electroball: ["9M"], + endure: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + ironhead: ["9M"], + lightscreen: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + makeitrain: ["9L56"], + memento: ["9L70"], + metalsound: ["9L28"], + nastyplot: ["9M", "9L63"], + nightshade: ["9M", "9L7"], + powergem: ["9M", "9L49"], + protect: ["9M"], + psychic: ["9M"], + psyshock: ["9M"], + recover: ["9L42"], + reflect: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + shadowball: ["9M", "9L35"], + sleeptalk: ["9M"], + steelbeam: ["9M"], + substitute: ["9M", "9L21"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + }, + }, + greattusk: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M", "9L28", "9S0"], + bulkup: ["9M"], + bulldoze: ["9M", "9L7"], + closecombat: ["9M", "9L63"], + defensecurl: ["9L1"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L49", "9S1"], + endeavor: ["9L70"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M", "9L56", "9S1"], + headlongrush: ["9L91"], + headsmash: ["9L84"], + heavyslam: ["9M"], + hornattack: ["9L1"], + hyperbeam: ["9M"], + icefang: ["9M"], + icespinner: ["9M"], + ironhead: ["9M"], + knockoff: ["9L42", "9S0", "9S1"], + megahorn: ["9L77"], + mudshot: ["9M"], + mudslap: ["9M"], + playrough: ["9M"], + protect: ["9M"], + psyshock: ["9M"], + rapidspin: ["9L21", "9S0"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + rollout: ["9L1"], + sandstorm: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M", "9L35", "9S0", "9S1"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + takedown: ["9M"], + taunt: ["9M", "9L14"], + terablast: ["9M"], + thunderfang: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 45, nature: "Naughty", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["rapidspin", "brickbreak", "knockoff", "stompingtantrum"]}, + {generation: 9, level: 57, shiny: 1, moves: ["stompingtantrum", "knockoff", "earthquake", "gigaimpact"]}, + ], + eventOnly: true, + }, + brutebonnet: { + learnset: { + absorb: ["9L1"], + astonish: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulletseed: ["9M"], + clearsmog: ["9L28", "9S0"], + closecombat: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + earthpower: ["9M"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + gigadrain: ["9M", "9L49", "9S0"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + growth: ["9L1"], + hex: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9L70"], + leafstorm: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L14"], + outrage: ["9M"], + payback: ["9L35", "9S0"], + pollenpuff: ["9M"], + protect: ["9M"], + ragepowder: ["9L77"], + rest: ["9M"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M", "9L91"], + spore: ["9L63"], + stompingtantrum: ["9M"], + stunspore: ["9L7"], + substitute: ["9M"], + suckerpunch: ["9L56"], + sunnyday: ["9M", "9L1"], + synthesis: ["9L21"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thrash: ["9L42", "9S0"], + trailblaze: ["9M"], + venoshock: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["thrash", "gigadrain", "clearsmog", "payback"]}, + ], + eventOnly: true, + }, + sandyshocks: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L14"], + chargebeam: ["9M", "9L21"], + discharge: ["9L56"], + earthpower: ["9M", "9L63"], + earthquake: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gravity: ["9L77"], + heavyslam: ["9M", "9L42", "9S0"], + hyperbeam: ["9M"], + irondefense: ["9M"], + lightscreen: ["9M"], + magneticflux: ["9L91"], + metalsound: ["9L49", "9S0"], + mirrorcoat: ["9L70"], + mudshot: ["9M"], + powergem: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + sandstorm: ["9M"], + screech: ["9L35", "9S0"], + sleeptalk: ["9M"], + spark: ["9L7"], + spikes: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + supersonic: ["9L1"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thundershock: ["9L1"], + thunderwave: ["9M", "9L1"], + triattack: ["9L28", "9S0"], + voltswitch: ["9M"], + wildcharge: ["9M"], + zapcannon: ["9L84"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["screech", "heavyslam", "metalsound", "triattack"]}, + ], + eventOnly: true, + }, + screamtail: { + learnset: { + amnesia: ["9M"], + batonpass: ["9M"], + bite: ["9L21"], + blizzard: ["9M"], + bodyslam: ["9M", "9L28", "9S0"], + boomburst: ["9L91"], + bulkup: ["9M"], + calmmind: ["9M"], + crunch: ["9M", "9L63"], + dazzlinggleam: ["9M"], + dig: ["9M"], + disable: ["9L1"], + drainpunch: ["9M"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + faketears: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + gyroball: ["9L77"], + helpinghand: ["9M"], + howl: ["9L7"], + hyperbeam: ["9M"], + hypervoice: ["9M", "9L49", "9S0"], + icebeam: ["9M"], + icefang: ["9M"], + icepunch: ["9M"], + imprison: ["9M"], + lightscreen: ["9M"], + metronome: ["9M"], + mistyterrain: ["9M"], + nobleroar: ["9L14"], + perishsong: ["9L84"], + playrough: ["9M", "9L42", "9S0"], + pound: ["9L1"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicfangs: ["9M", "9L56"], + psychicterrain: ["9M"], + psyshock: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M", "9L35", "9S0"], + rocktomb: ["9M"], + sandstorm: ["9M"], + scaryface: ["9M"], + sing: ["9L1"], + sleeptalk: ["9M"], + snowscape: ["9M"], + stealthrock: ["9M"], + stompingtantrum: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + waterpulse: ["9M"], + wish: ["9L70"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["playrough", "hypervoice", "bodyslam", "rest"]}, + ], + eventOnly: true, + }, + fluttermane: { + learnset: { + astonish: ["9L1"], + calmmind: ["9M"], + chargebeam: ["9M"], + charm: ["9M"], + confuseray: ["9M", "9L1"], + darkpulse: ["9M"], + dazzlinggleam: ["9M", "9L35", "9S0"], + disarmingvoice: ["9M"], + drainingkiss: ["9M"], + endure: ["9M"], + energyball: ["9M"], + faketears: ["9M"], + gigaimpact: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + magicalleaf: ["9M"], + meanlook: ["9L14"], + memento: ["9L21"], + mistyterrain: ["9M"], + moonblast: ["9L84"], + mysticalfire: ["9L49", "9S0"], + nightshade: ["9M"], + painsplit: ["9L77"], + perishsong: ["9L91"], + phantomforce: ["9M", "9L70"], + powergem: ["9M", "9L56"], + protect: ["9M"], + psybeam: ["9M", "9L7"], + psyshock: ["9M", "9L63"], + rest: ["9M"], + shadowball: ["9M", "9L42", "9S0"], + sleeptalk: ["9M"], + spite: ["9L1"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + swift: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderwave: ["9M"], + trickroom: ["9M"], + wish: ["9L28", "9S0"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["shadowball", "mysticalfire", "wish", "dazzlinggleam"]}, + ], + eventOnly: true, + }, + slitherwing: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bugbite: ["9L1"], + bugbuzz: ["9M"], + bulkup: ["9M", "9L56"], + closecombat: ["9M"], + dualwingbeat: ["9L63"], + earthquake: ["9M"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + firstimpression: ["9L70"], + flamecharge: ["9M", "9L14"], + flareblitz: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + gust: ["9L1"], + heatwave: ["9M"], + heavyslam: ["9M"], + hurricane: ["9M"], + hyperbeam: ["9M"], + leechlife: ["9M", "9L84"], + lowkick: ["9M"], + lowsweep: ["9M", "9L28", "9S0"], + lunge: ["9L42", "9S0"], + morningsun: ["9L35", "9S0"], + poisonpowder: ["9L7"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + reversal: ["9M"], + sandstorm: ["9M"], + sleeptalk: ["9M"], + stomp: ["9L21"], + stompingtantrum: ["9M"], + stunspore: ["9L7"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + superpower: ["9L49", "9S0"], + takedown: ["9M"], + terablast: ["9M"], + thrash: ["9L91"], + trailblaze: ["9M"], + uturn: ["9M"], + whirlwind: ["9L77"], + wildcharge: ["9M"], + willowisp: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["morningsun", "lunge", "superpower", "lowsweep"]}, + ], + eventOnly: true, + }, + roaringmoon: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + airslash: ["9M"], + bite: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9L1"], + brickbreak: ["9M"], + crunch: ["9M"], + darkpulse: ["9M"], + dig: ["9M"], + doubleedge: ["9L91"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonclaw: ["9M", "9L28", "9S0"], + dragondance: ["9M", "9L56"], + dragonpulse: ["9M"], + dragonrush: ["9L63"], + dragontail: ["9M"], + earthquake: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamethrower: ["9M", "9L42", "9S0"], + fly: ["9M", "9L70"], + focusenergy: ["9L1"], + gigaimpact: ["9M"], + headbutt: ["9L14"], + heatwave: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + incinerate: ["9L7"], + ironhead: ["9M"], + jawlock: ["9L1"], + leer: ["9L1"], + metalclaw: ["9M"], + nightslash: ["9L49", "9S0"], + outrage: ["9M"], + protect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + roost: ["9L84"], + scaleshot: ["9L1"], + scaryface: ["9M", "9L21"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + stompingtantrum: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + throatchop: ["9L77"], + thunderfang: ["9M"], + uturn: ["9M"], + xscissor: ["9M"], + zenheadbutt: ["9M", "9L35", "9S0"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["zenheadbutt", "flamethrower", "nightslash", "dragonclaw"]}, + ], + eventOnly: true, + }, + irontreads: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L7"], + defensecurl: ["9L1"], + earthpower: ["9M"], + earthquake: ["9M", "9L49", "9S1"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + endeavor: ["9L70"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M", "9L84"], + heavyslam: ["9M", "9L56", "9S1"], + hornattack: ["9L1"], + hyperbeam: ["9M"], + icefang: ["9M"], + icespinner: ["9M"], + irondefense: ["9M"], + ironhead: ["9M", "9L28", "9S0"], + knockoff: ["9L42", "9S0", "9S1"], + megahorn: ["9L77"], + mudshot: ["9M"], + mudslap: ["9M"], + protect: ["9M"], + rapidspin: ["9L21", "9S0"], + rest: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + rollout: ["9L1"], + sandstorm: ["9M"], + scaryface: ["9M"], + smartstrike: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + steelroller: ["9L91"], + stompingtantrum: ["9M", "9L35", "9S0", "9S1"], + stoneedge: ["9M"], + substitute: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderfang: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L63"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 45, nature: "Naughty", ivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}, moves: ["rapidspin", "ironhead", "knockoff", "stompingtantrum"]}, + {generation: 9, level: 57, shiny: 1, moves: ["knockoff", "earthquake", "heavyslam", "stompingtantrum"]}, + ], + }, + ironmoth: { + learnset: { + acidspray: ["9M", "9L1"], + acrobatics: ["9M"], + agility: ["9M"], + airslash: ["9M"], + bugbuzz: ["9M", "9L84"], + chargebeam: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + discharge: ["9L42", "9S0"], + electricterrain: ["9M", "9L1"], + ember: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + fierydance: ["9L56"], + fireblast: ["9M"], + firespin: ["9M", "9L14"], + flamecharge: ["9M"], + flamethrower: ["9M"], + flareblitz: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + gust: ["9L1"], + heatwave: ["9M"], + helpinghand: ["9M"], + hurricane: ["9M", "9L77"], + hyperbeam: ["9M"], + lightscreen: ["9M"], + lunge: ["9L28", "9S0"], + metalsound: ["9L63"], + morningsun: ["9L70"], + overheat: ["9M", "9L91"], + pounce: ["9M"], + protect: ["9M"], + psychic: ["9M"], + rest: ["9M"], + screech: ["9L35", "9S0"], + sleeptalk: ["9M"], + sludgewave: ["9L49", "9S0"], + solarbeam: ["9M"], + strugglebug: ["9M", "9L7"], + substitute: ["9M"], + sunnyday: ["9M"], + swift: ["9M"], + takedown: ["9M", "9L21"], + terablast: ["9M"], + toxicspikes: ["9M"], + uturn: ["9M"], + venoshock: ["9M"], + whirlwind: ["9L1"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["screech", "discharge", "sludgewave", "lunge"]}, + ], + eventOnly: true, + }, + ironhands: { + learnset: { + armthrust: ["9L1"], + bellydrum: ["9L84"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + charge: ["9L49", "9S0"], + closecombat: ["9M", "9L63"], + detect: ["9L70"], + drainpunch: ["9M"], + earthquake: ["9M"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + fakeout: ["9L7"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + focusenergy: ["9L1"], + focuspunch: ["9L91"], + forcepalm: ["9L35", "9S0"], + gigaimpact: ["9M"], + heavyslam: ["9M", "9L77"], + hyperbeam: ["9M"], + icepunch: ["9M"], + irondefense: ["9M"], + ironhead: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + metronome: ["9M"], + playrough: ["9M"], + protect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rockslide: ["9M"], + rocktomb: ["9M"], + sandattack: ["9L1"], + scaryface: ["9M"], + seismictoss: ["9L42", "9S0"], + slam: ["9L28", "9S0"], + sleeptalk: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + tackle: ["9L1"], + takedown: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M", "9L21"], + voltswitch: ["9M"], + whirlwind: ["9L14"], + wildcharge: ["9M", "9L56"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["forcepalm", "seismictoss", "charge", "slam"]}, + ], + eventOnly: true, + }, + ironjugulis: { + learnset: { + acrobatics: ["9M"], + aircutter: ["9M", "9L1"], + airslash: ["9M", "9L56"], + assurance: ["9L14"], + bodyslam: ["9M"], + chargebeam: ["9M"], + crunch: ["9M", "9L35", "9S0"], + darkpulse: ["9M", "9L70"], + dragonbreath: ["9L21", "9S0"], + dragonpulse: ["9M", "9L84"], + dragontail: ["9M"], + earthpower: ["9M"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + flamethrower: ["9M"], + flashcannon: ["9M"], + fly: ["9M"], + focusblast: ["9M"], + focusenergy: ["9L1"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hurricane: ["9M"], + hydropump: ["9M"], + hyperbeam: ["9M", "9L91"], + hypervoice: ["9M", "9L42", "9S0"], + ironhead: ["9M"], + knockoff: ["9L63"], + outrage: ["9M", "9L77"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9L7"], + rocktomb: ["9M"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M", "9L28", "9S0"], + substitute: ["9M"], + sunnyday: ["9M"], + tailwind: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + triattack: ["9L1"], + uturn: ["9M"], + workup: ["9L1"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["snarl", "crunch", "hypervoice", "dragonbreath"]}, + ], + eventOnly: true, + }, + ironthorns: { + learnset: { + bite: ["9L28", "9S0"], + blizzard: ["9M"], + bodypress: ["9M"], + bodyslam: ["9M"], + brickbreak: ["9M"], + bulldoze: ["9M"], + charge: ["9L35", "9S0"], + chargebeam: ["9M"], + crunch: ["9M"], + dig: ["9M"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragontail: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L70"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M", "9L1"], + firepunch: ["9M"], + flamethrower: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + gigaimpact: ["9M", "9L91"], + heavyslam: ["9M"], + hyperbeam: ["9M"], + icebeam: ["9M"], + icefang: ["9M", "9L1"], + icepunch: ["9M"], + irondefense: ["9M", "9L1"], + ironhead: ["9M"], + lowkick: ["9M"], + metalclaw: ["9M"], + pinmissile: ["9L63"], + powergem: ["9M"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + rockblast: ["9M"], + rockslide: ["9M", "9L42", "9S0"], + rockthrow: ["9L1"], + rocktomb: ["9M", "9L21"], + sandstorm: ["9M", "9L49", "9S0"], + scaryface: ["9M"], + screech: ["9L7"], + snarl: ["9M"], + spikes: ["9M"], + stealthrock: ["9M", "9L77"], + stompingtantrum: ["9M"], + stoneedge: ["9M", "9L84"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunder: ["9M"], + thunderbolt: ["9M"], + thunderfang: ["9M", "9L1"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M", "9L56"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["charge", "rockslide", "sandstorm", "bite"]}, + ], + eventOnly: true, + }, + ironbundle: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L63"], + aircutter: ["9M"], + auroraveil: ["9L84"], + avalanche: ["9M"], + blizzard: ["9M", "9L91"], + bodyslam: ["9M"], + chillingwater: ["9M"], + drillpeck: ["9L28", "9S0"], + electricterrain: ["9M", "9L1"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fling: ["9M"], + flipturn: ["9L49", "9S0"], + freezedry: ["9L42", "9S0"], + gigaimpact: ["9M"], + helpinghand: ["9M", "9L35", "9S0"], + hydropump: ["9M", "9L77"], + hyperbeam: ["9M"], + icebeam: ["9M", "9L56"], + icepunch: ["9M"], + icespinner: ["9M"], + icywind: ["9M"], + playrough: ["9M"], + powdersnow: ["9L7"], + present: ["9L1"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + sleeptalk: ["9M"], + snowscape: ["9M", "9L70"], + substitute: ["9M"], + swift: ["9M"], + takedown: ["9M", "9L21"], + taunt: ["9M"], + terablast: ["9M"], + thief: ["9M"], + uturn: ["9M"], + waterpulse: ["9M"], + whirlpool: ["9L14"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["drillpeck", "helpinghand", "freezedry", "flipturn"]}, + ], + eventOnly: true, + }, + ironvaliant: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + aurasphere: ["9M"], + brickbreak: ["9M"], + calmmind: ["9M"], + chargebeam: ["9M"], + closecombat: ["9M", "9L63"], + confuseray: ["9M"], + dazzlinggleam: ["9M", "9L28", "9S0"], + destinybond: ["9L77"], + disable: ["9L1"], + doubleteam: ["9L1"], + drainpunch: ["9M"], + electricterrain: ["9M", "9L1"], + encore: ["9M"], + endure: ["9M"], + energyball: ["9M"], + falseswipe: ["9M"], + feint: ["9L14"], + firepunch: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + furycutter: ["9L1"], + futuresight: ["9L21"], + gigaimpact: ["9M"], + grassknot: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + hypervoice: ["9M"], + hypnosis: ["9L7"], + icepunch: ["9M"], + icywind: ["9M"], + imprison: ["9M"], + knockoff: ["9L70"], + leafblade: ["9L49", "9S0"], + lightscreen: ["9M"], + liquidation: ["9M"], + lowkick: ["9M"], + magicalleaf: ["9M"], + metronome: ["9M"], + mistyterrain: ["9M"], + moonblast: ["9L56"], + nightslash: ["9L42", "9S0"], + poisonjab: ["9M"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psychocut: ["9L35", "9S0"], + psyshock: ["9M"], + quickguard: ["9L84"], + reflect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M"], + shadowsneak: ["9L1"], + skillswap: ["9M"], + sleeptalk: ["9M"], + spiritbreak: ["9L91"], + storedpower: ["9M"], + substitute: ["9M"], + swift: ["9M"], + swordsdance: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + thunderbolt: ["9M"], + thunderpunch: ["9M"], + thunderwave: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wideguard: ["9L84"], + xscissor: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 52, shiny: 1, moves: ["psychocut", "nightslash", "leafblade", "dazzlinggleam"]}, + ], + eventOnly: true, + }, + tinglu: { + learnset: { + bodypress: ["9M"], + bodyslam: ["9M"], + bulldoze: ["9M", "9L20"], + darkpulse: ["9M", "9L40"], + dig: ["9M"], + earthpower: ["9M"], + earthquake: ["9M", "9L70"], + endure: ["9M"], + facade: ["9M"], + fissure: ["9L75"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + meanlook: ["9L1"], + memento: ["9L65"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9L10"], + protect: ["9M"], + rest: ["9M"], + rockslide: ["9M", "9L60", "9S0"], + rocktomb: ["9M"], + ruination: ["9L50", "9S0"], + sandstorm: ["9M"], + sandtomb: ["9L1"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + spikes: ["9M", "9L5"], + spite: ["9L1"], + stealthrock: ["9M"], + stomp: ["9L15"], + stompingtantrum: ["9M", "9L45", "9S0"], + stoneedge: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + taunt: ["9M", "9L30"], + terablast: ["9M"], + thrash: ["9L35"], + throatchop: ["9L55", "9S0"], + whirlwind: ["9L25"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["stompingtantrum", "ruination", "throatchop", "rockslide"]}, + ], + eventOnly: true, + }, + chienpao: { + learnset: { + acrobatics: ["9M"], + aerialace: ["9M"], + avalanche: ["9M"], + blizzard: ["9M"], + brickbreak: ["9M"], + crunch: ["9M"], + darkpulse: ["9M", "9L40"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + gigaimpact: ["9M"], + haze: ["9L15"], + hex: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + iceshard: ["9L20"], + icespinner: ["9M"], + iciclecrash: ["9L45", "9S0"], + icywind: ["9M", "9L5"], + meanlook: ["9L1"], + mist: ["9L15"], + nightslash: ["9L35"], + payback: ["9L10"], + powdersnow: ["9L1"], + protect: ["9M"], + psychicfangs: ["9M"], + raindance: ["9M"], + recover: ["9L65"], + rest: ["9M"], + ruination: ["9L50", "9S0"], + sacredsword: ["9L60", "9S0"], + scaryface: ["9M"], + sheercold: ["9L75"], + sleeptalk: ["9M"], + snarl: ["9M"], + snowscape: ["9M", "9L30"], + spite: ["9L1"], + substitute: ["9M"], + suckerpunch: ["9L55", "9S0"], + swordsdance: ["9M", "9L25"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + throatchop: ["9L70"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["iciclecrash", "ruination", "suckerpunch", "sacredsword"]}, + ], + eventOnly: true, + }, + wochien: { + learnset: { + absorb: ["9L1"], + bodypress: ["9M"], + bodyslam: ["9M"], + bulletseed: ["9M"], + darkpulse: ["9M", "9L40"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + foulplay: ["9M", "9L55", "9S0"], + gigadrain: ["9M", "9L45", "9S0"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M", "9L65"], + growth: ["9L30"], + hex: ["9M"], + hyperbeam: ["9M"], + ingrain: ["9L35"], + knockoff: ["9L70"], + leafstorm: ["9M", "9L75"], + leechseed: ["9L25"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + meanlook: ["9L1"], + megadrain: ["9L20"], + mudshot: ["9M"], + mudslap: ["9M"], + payback: ["9L10"], + poisonpowder: ["9L15"], + pollenpuff: ["9M"], + powerwhip: ["9L60", "9S0"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + rest: ["9M"], + ruination: ["9L50", "9S0"], + scaryface: ["9M"], + seedbomb: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + spite: ["9L1"], + stunspore: ["9L15"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + tickle: ["9L5"], + trailblaze: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["gigadrain", "ruination", "foulplay", "powerwhip"]}, + ], + eventOnly: true, + }, + chiyu: { + learnset: { + bounce: ["9L55", "9S0"], + confuseray: ["9M", "9L30"], + crunch: ["9M"], + darkpulse: ["9M", "9L40"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M"], + flamecharge: ["9M", "9L20"], + flamethrower: ["9M"], + flamewheel: ["9L5"], + flareblitz: ["9M"], + gigaimpact: ["9M"], + heatwave: ["9M"], + hex: ["9M"], + hyperbeam: ["9M"], + incinerate: ["9L25"], + inferno: ["9L65"], + lavaplume: ["9L45", "9S0"], + lightscreen: ["9M"], + meanlook: ["9L1"], + memento: ["9L70"], + nastyplot: ["9M", "9L35"], + overheat: ["9M", "9L75"], + payback: ["9L10"], + protect: ["9M"], + psychic: ["9M"], + reflect: ["9M"], + rest: ["9M"], + ruination: ["9L50", "9S0"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + spite: ["9L1"], + substitute: ["9M"], + sunnyday: ["9M"], + swagger: ["9L60", "9S0"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "9L15"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 60, moves: ["lavaplume", "ruination", "bounce", "swagger"]}, + ], + eventOnly: true, + }, + koraidon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L35"], + ancientpower: ["9L14"], + bodypress: ["9M"], + bodyslam: ["9M"], + breakingswipe: ["9L1"], + brickbreak: ["9M", "9L28"], + bulkup: ["9M", "9S1"], + bulldoze: ["9M"], + closecombat: ["9M", "9L84"], + collisioncourse: ["9L56", "9S0", "9S1"], + counter: ["9L70"], + crunch: ["9M"], + dig: ["9M"], + dracometeor: ["9M"], + dragonclaw: ["9M", "9L42"], + dragonpulse: ["9M"], + dragontail: ["9M"], + drainpunch: ["9M", "9L21"], + endure: ["9M", "9S0"], + facade: ["9M"], + fireblast: ["9M"], + firefang: ["9M"], + firespin: ["9M"], + flamecharge: ["9M"], + flamethrower: ["9M", "9L49", "9S0", "9S1"], + flareblitz: ["9M", "9L91"], + focusblast: ["9M"], + gigaimpact: ["9M", "9L98", "9S1"], + heatwave: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M"], + icefang: ["9M"], + ironhead: ["9M"], + lowkick: ["9M"], + lowsweep: ["9M"], + mudshot: ["9M"], + mudslap: ["9M"], + outrage: ["9M", "9L77"], + overheat: ["9M"], + protect: ["9M"], + rest: ["9M"], + reversal: ["9M"], + rocksmash: ["9L7"], + scaryface: ["9M"], + screech: ["9L63"], + shadowclaw: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + stompingtantrum: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M", "9S0"], + thunderfang: ["9M"], + uturn: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 68, nature: "Quirky", ivs: {hp: 31, atk: 31, def: 28, spa: 31, spd: 28, spe: 31}, moves: ["flamethrower", "collisioncourse", "endure", "terablast"], pokeball: "pokeball"}, + {generation: 9, level: 72, nature: "Adamant", ivs: {hp: 25, atk: 31, def: 25, spa: 31, spd: 25, spe: 31}, moves: ["gigaimpact", "bulkup", "collisioncourse", "flamethrower"]}, + ], + eventOnly: true, + }, + miraidon: { + learnset: { + acrobatics: ["9M"], + agility: ["9M", "9L35"], + bodyslam: ["9M"], + calmmind: ["9M"], + charge: ["9L14", "9S1"], + chargebeam: ["9M"], + confuseray: ["9M"], + crunch: ["9M"], + dazzlinggleam: ["9M"], + discharge: ["9L28"], + dracometeor: ["9M"], + dragonbreath: ["9L1"], + dragonclaw: ["9M"], + dragonpulse: ["9M", "9L42"], + dragontail: ["9M"], + eerieimpulse: ["9M"], + electricterrain: ["9M", "9L1"], + electroball: ["9M"], + electrodrift: ["9L56", "9S0", "9S1"], + endure: ["9M", "9S0"], + facade: ["9M"], + flashcannon: ["9M"], + gigaimpact: ["9M"], + heavyslam: ["9M"], + helpinghand: ["9M"], + hyperbeam: ["9M", "9L98", "9S1"], + lightscreen: ["9M"], + metalsound: ["9L63"], + mirrorcoat: ["9L70"], + outrage: ["9M", "9L77"], + overheat: ["9M", "9L91"], + paraboliccharge: ["9L21"], + powergem: ["9M", "9S0", "9S1"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + shockwave: ["9L7"], + sleeptalk: ["9M"], + snarl: ["9M"], + solarbeam: ["9M"], + substitute: ["9M"], + swordsdance: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M", "9S0"], + thunder: ["9M", "9L84"], + thunderbolt: ["9M"], + thundershock: ["9L1"], + thunderwave: ["9M"], + uturn: ["9M"], + voltswitch: ["9M"], + wildcharge: ["9M"], + zenheadbutt: ["9M"], + }, + eventData: [ + {generation: 9, level: 68, nature: "Quirky", ivs: {hp: 31, atk: 31, def: 28, spa: 31, spd: 28, spe: 31}, moves: ["powergem", "electrodrift", "endure", "terablast"], pokeball: "pokeball"}, + {generation: 9, level: 72, nature: "Modest", ivs: {hp: 25, atk: 31, def: 25, spa: 31, spd: 25, spe: 31}, moves: ["hyperbeam", "charge", "electrodrift", "powergem"]}, + ], + eventOnly: true, + }, + tinkatink: { + learnset: { + astonish: ["9L1"], + babydolleyes: ["9L5"], + brutalswing: ["9L24"], + covet: ["9L11"], + drainingkiss: ["9M", "9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fairywind: ["9L1"], + fakeout: ["9L39"], + faketears: ["9M"], + feint: ["9E"], + flashcannon: ["9M", "9L31"], + flatter: ["9L43"], + fling: ["9M"], + foulplay: ["9M"], + helpinghand: ["9M"], + icehammer: ["9E"], + knockoff: ["9L52"], + lightscreen: ["9M"], + metalclaw: ["9M", "9L8"], + metronome: ["9M"], + playrough: ["9M", "9L35"], + pounce: ["9M"], + protect: ["9M"], + quash: ["9E"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L14"], + rocktomb: ["9M"], + skillswap: ["9M"], + skittersmack: ["9L47"], + slam: ["9L27"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sweetkiss: ["9L21"], + swordsdance: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + }, + }, + tinkatuff: { + learnset: { + astonish: ["9L1"], + babydolleyes: ["9L5"], + brickbreak: ["9M"], + brutalswing: ["9L24"], + covet: ["9L11"], + drainingkiss: ["9M", "9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fairywind: ["9L1"], + fakeout: ["9L39"], + faketears: ["9M"], + flashcannon: ["9M", "9L31"], + flatter: ["9L43"], + fling: ["9M"], + foulplay: ["9M"], + helpinghand: ["9M"], + knockoff: ["9L52"], + lightscreen: ["9M"], + metalclaw: ["9M", "9L8"], + metronome: ["9M"], + playrough: ["9M", "9L35"], + pounce: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L14"], + rocktomb: ["9M"], + skillswap: ["9M"], + skittersmack: ["9L47"], + slam: ["9L27"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sweetkiss: ["9L21"], + swordsdance: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + }, + }, + tinkaton: { + learnset: { + astonish: ["9L1"], + babydolleyes: ["9L5"], + brickbreak: ["9M"], + brutalswing: ["9L24"], + bulldoze: ["9M"], + covet: ["9L11"], + drainingkiss: ["9M", "9L17"], + encore: ["9M"], + endure: ["9M"], + facade: ["9M"], + fairywind: ["9L1"], + fakeout: ["9L39"], + faketears: ["9M"], + flashcannon: ["9M", "9L31"], + flatter: ["9L43"], + fling: ["9M"], + foulplay: ["9M"], + gigatonhammer: ["9L0"], + heavyslam: ["9M"], + helpinghand: ["9M"], + knockoff: ["9L52"], + lightscreen: ["9M"], + metalclaw: ["9M", "9L8"], + metronome: ["9M"], + playrough: ["9M", "9L35"], + pounce: ["9M"], + protect: ["9M"], + reflect: ["9M"], + rest: ["9M"], + rockslide: ["9M"], + rocksmash: ["9L14"], + rocktomb: ["9M"], + skillswap: ["9M"], + skittersmack: ["9L47"], + slam: ["9L27"], + sleeptalk: ["9M"], + stealthrock: ["9M"], + steelbeam: ["9M"], + stoneedge: ["9M"], + substitute: ["9M"], + sweetkiss: ["9L21"], + swordsdance: ["9M"], + terablast: ["9M"], + thief: ["9M"], + thunderwave: ["9M"], + }, + }, + charcadet: { + learnset: { + astonish: ["9L1"], + clearsmog: ["9L8"], + confuseray: ["9M"], + destinybond: ["9E"], + disable: ["9E"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M", "9L12"], + flamecharge: ["9M", "9L24"], + flamethrower: ["9M"], + flareblitz: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + incinerate: ["9L28"], + lavaplume: ["9L32"], + leer: ["9L1"], + nightshade: ["9M", "9L20"], + overheat: ["9M"], + protect: ["9M"], + sleeptalk: ["9M"], + spite: ["9E"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "9L16"], + }, + }, + armarouge: { + learnset: { + acidspray: ["9M"], + allyswitch: ["9L42"], + armorcannon: ["9L62"], + astonish: ["9L1"], + aurasphere: ["9M"], + calmmind: ["9M", "9L37"], + clearsmog: ["9L8"], + confuseray: ["9M"], + darkpulse: ["9M"], + dragonpulse: ["9M"], + ember: ["9L1"], + endure: ["9M"], + energyball: ["9M"], + expandingforce: ["9L56"], + facade: ["9M"], + fireblast: ["9M"], + firespin: ["9M", "9L12"], + flamecharge: ["9M", "9L24"], + flamethrower: ["9M", "9L48"], + flareblitz: ["9M"], + flashcannon: ["9M"], + fling: ["9M"], + focusblast: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + incinerate: ["9L28"], + irondefense: ["9M"], + lavaplume: ["9L32"], + leer: ["9L1"], + lightscreen: ["9M"], + mysticalfire: ["9L1"], + nightshade: ["9M", "9L20"], + overheat: ["9M"], + protect: ["9M"], + psybeam: ["9M"], + psychic: ["9M"], + psychicterrain: ["9M"], + psyshock: ["9M", "9L0"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M"], + sleeptalk: ["9M"], + solarbeam: ["9M"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trick: ["9M"], + trickroom: ["9M"], + wideguard: ["9L1"], + willowisp: ["9M", "9L16"], + }, + }, + ceruledge: { + learnset: { + allyswitch: ["9L42"], + astonish: ["9L1"], + bitterblade: ["9L48"], + brickbreak: ["9M"], + bulkup: ["9M"], + clearsmog: ["9L8"], + closecombat: ["9M"], + confuseray: ["9M"], + dragonclaw: ["9M"], + ember: ["9L1"], + endure: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + fireblast: ["9M"], + firespin: ["9M", "9L12"], + flamecharge: ["9M", "9L24"], + flamethrower: ["9M"], + flareblitz: ["9M", "9L62"], + fling: ["9M"], + heatwave: ["9M"], + helpinghand: ["9M"], + hex: ["9M"], + incinerate: ["9L28"], + irondefense: ["9M"], + ironhead: ["9M"], + lavaplume: ["9L32"], + leer: ["9L1"], + lightscreen: ["9M"], + nightshade: ["9M", "9L20"], + nightslash: ["9L1"], + overheat: ["9M"], + phantomforce: ["9M"], + poisonjab: ["9M"], + protect: ["9M"], + psychocut: ["9L56"], + quickguard: ["9L1"], + reflect: ["9M"], + rest: ["9M"], + shadowball: ["9M"], + shadowclaw: ["9M", "9L0"], + shadowsneak: ["9L1"], + sleeptalk: ["9M"], + solarblade: ["9L1"], + storedpower: ["9M"], + substitute: ["9M"], + sunnyday: ["9M"], + swordsdance: ["9M", "9L37"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + willowisp: ["9M", "9L16"], + xscissor: ["9M"], + }, + }, + toedscool: { + learnset: { + absorb: ["9L4"], + acidspray: ["9M"], + acupressure: ["9E"], + bulletseed: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M", "9L48"], + endure: ["9M"], + energyball: ["9M"], + flashcannon: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M", "9L44"], + grassknot: ["9M"], + grassyterrain: ["9M"], + growth: ["9L40"], + hex: ["9M", "9L28"], + knockoff: ["9E"], + leafstorm: ["9M"], + leechseed: ["9E"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L16"], + mirrorcoat: ["9E"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + poisonpowder: ["9L8"], + powerwhip: ["9L52"], + protect: ["9M"], + ragepowder: ["9E"], + raindance: ["9M"], + rapidspin: ["9E"], + reflect: ["9M"], + rest: ["9M"], + scaryface: ["9M"], + screech: ["9L20"], + seedbomb: ["9M", "9L32"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spore: ["9L36"], + stunspore: ["9L8"], + substitute: ["9M"], + supersonic: ["9L12"], + swift: ["9M"], + tackle: ["9L15"], + taunt: ["9M"], + terablast: ["9M"], + tickle: ["9E"], + toxic: ["9E"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + trickroom: ["9M"], + venoshock: ["9M"], + wrap: ["9L1"], + }, + }, + toedscruel: { + learnset: { + absorb: ["9L4"], + acidspray: ["9M"], + bulletseed: ["9M"], + confuseray: ["9M"], + dazzlinggleam: ["9M"], + earthpower: ["9M", "9L54"], + endure: ["9M"], + energyball: ["9M"], + flashcannon: ["9M"], + foulplay: ["9M"], + gigadrain: ["9M", "9L48"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + growth: ["9L44"], + hex: ["9M", "9L28"], + hyperbeam: ["9M"], + leafstorm: ["9M"], + lightscreen: ["9M"], + magicalleaf: ["9M"], + megadrain: ["9L16"], + mudshot: ["9M", "9L24"], + mudslap: ["9M", "9L1"], + poisonpowder: ["9L8"], + powerwhip: ["9L58"], + protect: ["9M"], + raindance: ["9M"], + reflect: ["9M"], + reflecttype: ["9L1"], + rest: ["9M"], + scaryface: ["9M"], + screech: ["9L20"], + seedbomb: ["9M", "9L34"], + sleeptalk: ["9M"], + sludgebomb: ["9M"], + solarbeam: ["9M"], + spikes: ["9M"], + spore: ["9L40"], + stunspore: ["9L8"], + substitute: ["9M"], + supersonic: ["9L12"], + swift: ["9M"], + tackle: ["9L15"], + taunt: ["9M"], + terablast: ["9M"], + toxicspikes: ["9M"], + trailblaze: ["9M"], + trickroom: ["9M"], + venoshock: ["9M"], + wrap: ["9L1"], + }, + }, + walkingwake: { + learnset: { + agility: ["9M"], + aquajet: ["9L1"], + bite: ["9L07"], + bodyslam: ["9M"], + breakingswipe: ["9L35"], + chillingwater: ["9M"], + crunch: ["9M"], + dracometeor: ["9M"], + dragonbreath: ["9L28"], + dragonclaw: ["9M"], + dragondance: ["9M"], + dragonpulse: ["9M", "9L63", "9S0"], + dragonrush: ["9L42"], + dragontail: ["9M"], + endure: ["9M"], + facade: ["9M"], + firefang: ["9M"], + flamethrower: ["9M", "9L77", "9S0"], + gigaimpact: ["9M"], + honeclaws: ["9L1"], + hurricane: ["9M"], + hydropump: ["9M", "9L84"], + hydrosteam: ["9L56", "9S0"], + hyperbeam: ["9M"], + leer: ["9L1"], + liquidation: ["9M"], + lowkick: ["9M"], + mudshot: ["9M"], + nobleroar: ["9L21", "9S0"], + outrage: ["9M", "9L70"], + protect: ["9M"], + raindance: ["9M"], + rest: ["9M"], + roar: ["9L1"], + scaryface: ["9M"], + sleeptalk: ["9M"], + snarl: ["9M"], + substitute: ["9M"], + sunnyday: ["9M", "9L1"], + surf: ["9M"], + swift: ["9M"], + takedown: ["9M"], + terablast: ["9M"], + twister: ["9L1"], + waterfall: ["9M"], + waterpulse: ["9M", "9L14"], + }, + eventData: [ + {generation: 9, level: 75, perfectIVs: 3, moves: ["hydrosteam", "dragonpulse", "nobleroar", "flamethrower"]}, + ], + eventOnly: true, + }, + ironleaves: { + learnset: { + aerialace: ["9M"], + agility: ["9M"], + airslash: ["9M"], + allyswitch: ["9L84"], + brickbreak: ["9M"], + calmmind: ["9M"], + closecombat: ["9M", "9L63"], + electricterrain: ["9M", "9L1"], + endure: ["9M"], + energyball: ["9M"], + facade: ["9M"], + falseswipe: ["9M"], + focusblast: ["9M"], + gigadrain: ["9M"], + gigaimpact: ["9M"], + grassknot: ["9M"], + grassyterrain: ["9M"], + helpinghand: ["9M", "9L1"], + hyperbeam: ["9M"], + imprison: ["9M", "9L70"], + irondefense: ["9M"], + leafblade: ["9L49", "9S0"], + leafstorm: ["9M"], + leer: ["9L1"], + magicalleaf: ["9M", "9L07"], + megahorn: ["9L77", "9S0"], + nightslash: ["9L28"], + protect: ["9M"], + psyblade: ["9L56", "9S0"], + psychicterrain: ["9M"], + quash: ["9L1"], + quickattack: ["9L1"], + quickguard: ["9L21"], + rest: ["9M"], + retaliate: ["9L14"], + reversal: ["9M"], + sacredsword: ["9L42"], + scaryface: ["9M"], + sleeptalk: ["9M"], + smartstrike: ["9M"], + solarbeam: ["9M"], + solarblade: ["9L91"], + substitute: ["9M"], + swift: ["9M"], + swordsdance: ["9M", "9L35", "9S0"], + takedown: ["9M"], + taunt: ["9M"], + terablast: ["9M"], + trailblaze: ["9M"], + wildcharge: ["9M"], + workup: ["9L1"], + xscissor: ["9M"], + }, + eventData: [ + {generation: 9, level: 75, perfectIVs: 3, moves: ["psyblade", "leafblade", "megahorn", "swordsdance"]}, + ], + eventOnly: true, + }, +}; diff --git a/data/mods/gen9predlc/moves.ts b/data/mods/gen9predlc/moves.ts new file mode 100644 index 000000000000..1af9032814ea --- /dev/null +++ b/data/mods/gen9predlc/moves.ts @@ -0,0 +1,70 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + aurawheel: { + inherit: true, + isNonstandard: "Past", + }, + bloodmoon: { + inherit: true, + isNonstandard: "Future", + }, + clangingscales: { + inherit: true, + isNonstandard: "Past", + }, + clangoroussoul: { + inherit: true, + isNonstandard: "Past", + }, + darkvoid: { + inherit: true, + isNonstandard: "Past", + }, + doomdesire: { + inherit: true, + isNonstandard: "Past", + }, + forestscurse: { + inherit: true, + isNonstandard: "Past", + }, + grassyglide: { + inherit: true, + basePower: 60, + }, + ivycudgel: { + inherit: true, + isNonstandard: "Future", + }, + jetpunch: { + inherit: true, + hasSheerForce: true, + }, + matchagotcha: { + inherit: true, + isNonstandard: "Future", + }, + seedflare: { + inherit: true, + isNonstandard: "Past", + }, + strangesteam: { + inherit: true, + isNonstandard: "Past", + }, + syrupbomb: { + inherit: true, + isNonstandard: "Future", + }, + tailglow: { + inherit: true, + isNonstandard: "Past", + }, + takeheart: { + inherit: true, + isNonstandard: "Past", + }, + toxicthread: { + inherit: true, + isNonstandard: "Past", + }, +}; diff --git a/data/mods/gen9predlc/pokedex.ts b/data/mods/gen9predlc/pokedex.ts new file mode 100644 index 000000000000..8d215ef7e7ae --- /dev/null +++ b/data/mods/gen9predlc/pokedex.ts @@ -0,0 +1,18 @@ +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { + shiftry: { + inherit: true, + abilities: {0: "Chlorophyll", 1: "Early Bird", H: "Pickpocket"}, + }, + piplup: { + inherit: true, + abilities: {0: "Torrent", H: "Defiant"}, + }, + prinplup: { + inherit: true, + abilities: {0: "Torrent", H: "Defiant"}, + }, + empoleon: { + inherit: true, + abilities: {0: "Torrent", H: "Defiant"}, + }, +}; diff --git a/data/mods/gen9predlc/scripts.ts b/data/mods/gen9predlc/scripts.ts new file mode 100644 index 000000000000..912445888bbf --- /dev/null +++ b/data/mods/gen9predlc/scripts.ts @@ -0,0 +1,4 @@ +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + inherit: 'gen9dlc1', +}; diff --git a/data/mods/gen9ssb/abilities.ts b/data/mods/gen9ssb/abilities.ts new file mode 100644 index 000000000000..badd191ed69f --- /dev/null +++ b/data/mods/gen9ssb/abilities.ts @@ -0,0 +1,3173 @@ +import {ssbSets} from "./random-teams"; +import {changeSet, getName, PSEUDO_WEATHERS} from "./scripts"; + +const STRONG_WEATHERS = ['desolateland', 'primordialsea', 'deltastream', 'deserteddunes', 'millenniumcastle']; + +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + /* + // Example + abilityid: { + shortDesc: "", // short description, shows up in /dt + desc: "", // long description + name: "Ability Name", + // The bulk of an ability is not easily shown in an example since it varies + // For more examples, see https://github.com/smogon/pokemon-showdown/blob/master/data/abilities.ts + }, + */ + // Please keep abilites organized alphabetically based on staff member name! + // Aelita + fortifiedmetal: { + shortDesc: "This Pokemon's weight is doubled and Attack is 1.5x when statused.", + name: "Fortified Metal", + onModifyWeightPriority: 1, + onModifyWeight(weighthg) { + return weighthg * 2; + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, pokemon) { + if (pokemon.status) { + return this.chainModify(1.5); + } + }, + flags: {breakable: 1}, + gen: 9, + }, + + // Aethernum + theeminenceintheshadow: { + shortDesc: "Unaware + Supreme Overlord with half the boost.", + name: "The Eminence in the Shadow", + onAnyModifyBoost(boosts, pokemon) { + const unawareUser = this.effectState.target; + if (unawareUser === pokemon) return; + if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { + boosts['def'] = 0; + boosts['spd'] = 0; + boosts['evasion'] = 0; + } + if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { + boosts['atk'] = 0; + boosts['def'] = 0; + boosts['spa'] = 0; + boosts['accuracy'] = 0; + } + }, + onStart(pokemon) { + if (pokemon.side.totalFainted) { + this.add('-activate', pokemon, 'ability: The Eminence in the Shadow'); + const fallen = Math.min(pokemon.side.totalFainted, 5); + this.add('-start', pokemon, `fallen${fallen}`, '[silent]'); + this.effectState.fallen = fallen; + } + }, + onEnd(pokemon) { + this.add('-end', pokemon, `fallen${this.effectState.fallen}`, '[silent]'); + }, + onBasePowerPriority: 21, + onBasePower(basePower, attacker, defender, move) { + if (this.effectState.fallen) { + const powMod = [20, 21, 22, 23, 24, 25]; + this.debug(`Supreme Overlord boost: ${powMod[this.effectState.fallen]}/25`); + return this.chainModify([powMod[this.effectState.fallen], 20]); + } + }, + flags: {breakable: 1}, + }, + + // Akir + takeitslow: { + shortDesc: "Regenerator + Psychic Surge.", + name: "Take it Slow", + onSwitchOut(pokemon) { + pokemon.heal(pokemon.baseMaxhp / 3); + }, + onStart(source) { + this.field.setTerrain('psychicterrain'); + }, + flags: {}, + gen: 9, + }, + + // Alex + pawprints: { + shortDesc: "Oblivious + status moves ignore abilities.", + name: "Pawprints", + onUpdate(pokemon) { + if (pokemon.volatiles['attract']) { + this.add('-activate', pokemon, 'ability: Paw Prints'); + pokemon.removeVolatile('attract'); + this.add('-end', pokemon, 'move: Attract', '[from] ability: Paw Prints'); + } + if (pokemon.volatiles['taunt']) { + this.add('-activate', pokemon, 'ability: Paw Prints'); + pokemon.removeVolatile('taunt'); + // Taunt's volatile already sends the -end message when removed + } + }, + onImmunity(type, pokemon) { + if (type === 'attract') return false; + }, + onTryHit(pokemon, target, move) { + if (move.id === 'attract' || move.id === 'captivate' || move.id === 'taunt') { + this.add('-immune', pokemon, '[from] ability: Paw Prints'); + return null; + } + }, + onTryBoost(boost, target, source, effect) { + if (effect.name === 'Intimidate' && boost.atk) { + delete boost.atk; + this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Paw Prints', '[of] ' + target); + } + }, + onModifyMove(move) { + if (move.category === 'Status') { + move.ignoreAbility = true; + } + }, + flags: {breakable: 1}, + }, + + // Alexander489 + confirmedtown: { + shortDesc: "Technician + Protean.", + name: "Confirmed Town", + onBasePowerPriority: 30, + onBasePower(basePower, attacker, defender, move) { + const basePowerAfterMultiplier = this.modify(basePower, this.event.modifier); + this.debug('Base Power: ' + basePowerAfterMultiplier); + if (basePowerAfterMultiplier <= 60) { + this.debug('Confirmed Town boost'); + return this.chainModify(1.5); + } + }, + onPrepareHit(source, target, move) { + if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return; + const type = move.type; + if (type && type !== '???' && source.getTypes().join() !== type) { + if (!source.setType(type)) return; + this.add('-start', source, 'typechange', type, '[from] ability: Confirmed Town'); + } + }, + flags: {}, + }, + + // Apple + orchardsgift: { + shortDesc: "Summons Grassy Terrain. 1.5x Sp. Atk and Sp. Def during Grassy Terrain.", + name: "Orchard's Gift", + onStart(pokemon) { + if (this.field.setTerrain('grassyterrain')) { + this.add('-activate', pokemon, 'Orchard\'s Gift', '[source]'); + } else if (this.field.isTerrain('grassyterrain')) { + this.add('-activate', pokemon, 'ability: Orchard\'s Gift'); + } + }, + onModifyAtkPriority: 5, + onModifySpA(spa, pokemon) { + if (this.field.isTerrain('grassyterrain')) { + this.debug('Orchard\'s Gift boost'); + return this.chainModify(1.5); + } + }, + onModifySpDPriority: 6, + onModifySpD(spd, pokemon) { + if (this.field.isTerrain('grassyterrain')) { + this.debug('Orchard\'s Gift boost'); + return this.chainModify(1.5); + } + }, + }, + + // Appletun a la Mode + servedcold: { + shortDesc: "This Pokemon's Defense is raised 2 stages if hit by an Ice move; Ice immunity.", + name: "Served Cold", + onTryHit(target, source, move) { + if (target !== source && move.type === 'Ice') { + if (!this.boost({def: 2})) { + this.add('-immune', target, '[from] ability: Served Cold'); + } + return null; + } + }, + flags: {breakable: 1}, + }, + + // aQrator + neverendingfhunt: { + desc: "This Pokemon's non-damaging moves have their priority increased by 1. Opposing Dark-type Pokemon are immune to these moves, and any move called by these moves, if the resulting user of the move has this Ability.", + shortDesc: "This Pokemon's Status moves have priority raised by 1, but Dark types are immune.", + name: "Neverending fHunt", + onModifyPriority(priority, pokemon, target, move) { + if (move?.category === 'Status') { + move.pranksterBoosted = true; + return priority + 1; + } + }, + flags: {}, + }, + + // A Quag To The Past + quagofruin: { + shortDesc: "Active Pokemon without this Ability have 0.85x Defense. Ignores abilities.", + desc: "Active Pokemon without this Ability have their Defense multiplied by 0.85x. This Pokemon's moves and their effects ignore certain Abilities of other Pokemon.", + name: "Quag of Ruin", + onStart(pokemon) { + if (this.suppressingAbility(pokemon)) return; + this.add('-ability', pokemon, 'Quag of Ruin'); + }, + onAnyModifyDef(def, target, source, move) { + if (!move) return; + const abilityHolder = this.effectState.target; + if (target.hasAbility('Quag of Ruin')) return; + if (!move.ruinedDef?.hasAbility('Quag of Ruin')) move.ruinedDef = abilityHolder; + if (move.ruinedDef !== abilityHolder) return; + this.debug('Quag of Ruin Def drop'); + return this.chainModify(0.85); + }, + onModifyMove(move) { + move.ignoreAbility = true; + }, + flags: {}, + gen: 9, + }, + clodofruin: { + shortDesc: "Active Pokemon without this Ability have 0.85x Attack. Ignores stat changes.", + desc: "Active Pokemon without this Ability have their Attack multiplied by 0.85x. This Pokemon ignores other Pokemon's stat stages when taking or doing damage.", + name: "Clod of Ruin", + onStart(pokemon) { + if (this.suppressingAbility(pokemon)) return; + this.add('-ability', pokemon, 'Clod of Ruin'); + }, + onAnyModifyAtk(atk, target, source, move) { + if (!move) return; + const abilityHolder = this.effectState.target; + if (target.hasAbility('Clod of Ruin')) return; + if (!move.ruinedAtk?.hasAbility('Clod of Ruin')) move.ruinedAtk = abilityHolder; + if (move.ruinedAtk !== abilityHolder) return; + this.debug('Clod of Ruin Atk drop'); + return this.chainModify(0.85); + }, + onAnyModifyBoost(boosts, pokemon) { + const unawareUser = this.effectState.target; + if (unawareUser === pokemon) return; + if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { + boosts['def'] = 0; + boosts['spd'] = 0; + boosts['evasion'] = 0; + } + if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { + boosts['atk'] = 0; + boosts['def'] = 0; + boosts['spa'] = 0; + boosts['accuracy'] = 0; + } + }, + flags: {breakable: 1}, + gen: 9, + }, + + // Archas + saintlybullet: { + shortDesc: "Snipe Shot always has STAB and heals the user by 1/8 (or 1/6 on a crit) of its max HP.", + name: "Saintly Bullet", + onModifyMove(move) { + if (move.id === 'snipeshot') { + move.forceSTAB = true; + } + }, + onAfterMoveSecondarySelf(source, target, move) { + if (move.id === 'snipeshot') { + const ratio = target.getMoveHitData(move).crit ? 6 : 8; + this.heal(source.maxhp / ratio, source, source); + } + }, + flags: {}, + gen: 9, + }, + + // Arcueid + marblephantasm: { + shortDesc: "Deoxys-Defense is immune to status moves/effects. Deoxys-Attack gains Fairy type.", + desc: "If this Pokemon is a Deoxys-Defense, it is immune to status moves and cannot be afflicted with any non-volatile status condition. If this Pokemon is a Deoxys-Attack, it gains an additional Fairy typing for as long as this Ability remains active.", + name: "Marble Phantasm", + onStart(source) { + if (source.species.name === "Deoxys-Attack" && source.setType(['Psychic', 'Fairy'])) { + this.add('-start', source, 'typechange', source.getTypes(true).join('/'), '[from] ability: Marble Phantasm'); + } else if (source.species.name === "Deoxys-Defense" && source.setType('Psychic')) { + this.add('-start', source, 'typechange', 'Psychic', '[from] ability: Marble Phantasm'); + } + }, + onTryHit(target, source, move) { + if (move.category === 'Status' && target !== source && target.species.name === "Deoxys-Defense") { + this.add('-immune', target, '[from] ability: Marble Phantasm'); + return null; + } + }, + onSetStatus(status, target, source, effect) { + if (target.species.name === "Deoxys-Defense") { + this.add('-immune', target, '[from] ability: Marble Phantasm'); + return false; + } + }, + flags: {}, + gen: 9, + }, + + // Arsenal + absorbphys: { + shortDesc: "This Pokemon heals 1/4 of its max HP when hit by Normal moves; Normal immunity.", + name: "Absorb Phys", + onTryHit(target, source, move) { + if (target !== source && move.type === 'Normal') { + if (!this.heal(target.baseMaxhp / 4)) { + this.add('-immune', target, '[from] ability: Absorb Phys'); + } + return null; + } + }, + flags: {breakable: 1}, + gen: 9, + }, + + // Artemis + supervisedlearning: { + shortDesc: "Unaware + Clear Body.", + name: "Supervised Learning", + onAnyModifyBoost(boosts, pokemon) { + const unawareUser = this.effectState.target; + if (unawareUser === pokemon) return; + if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { + boosts['def'] = 0; + boosts['spd'] = 0; + boosts['evasion'] = 0; + } + if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { + boosts['atk'] = 0; + boosts['def'] = 0; + boosts['spa'] = 0; + boosts['accuracy'] = 0; + } + }, + onTryBoost(boost, target, source, effect) { + if (source && target === source) return; + let showMsg = false; + let i: BoostID; + for (i in boost) { + if (boost[i]! < 0) { + delete boost[i]; + showMsg = true; + } + } + if (showMsg && !(effect as ActiveMove).secondaries && effect.id !== 'octolock') { + this.add("-fail", target, "unboost", "[from] ability: Supervised Learning", "[of] " + target); + } + }, + flags: {}, + gen: 9, + }, + + // Audiino + mitosis: { + shortDesc: "Regenerator + Multiscale.", + name: "Mitosis", + onSwitchOut(pokemon) { + pokemon.heal(pokemon.baseMaxhp / 3); + }, + onSourceModifyDamage(damage, source, target, move) { + if (target.hp >= target.maxhp) { + this.debug('Multiscale weaken'); + return this.chainModify(0.5); + } + }, + flags: {breakable: 1}, + }, + + // ausma + cascade: { + shortDesc: "At 25% HP, transforms into a Mismagius. Sigil's Storm becomes Ghost type and doesn't charge.", + name: "Cascade", + onUpdate(pokemon) { + if (pokemon.baseSpecies.baseSpecies !== 'Hatterene' || pokemon.transformed || !pokemon.hp) return; + if (pokemon.species.id === 'mismagius' || pokemon.hp > pokemon.maxhp / 4) return; + this.add(`c:|${getName('ausma')}|that's it, yall mfs are about to face the wrath of Big Stall™`); + this.add(`c:|${getName('ausma')}|or i guess moreso Big Pult. pick your poison`); + this.add('-activate', pokemon, 'ability: Cascade'); + changeSet(this, pokemon, ssbSets['ausma-Mismagius'], true); + pokemon.cureStatus(); + this.heal(pokemon.maxhp / 3); + if (this.field.pseudoWeather['trickroom']) { + this.field.removePseudoWeather('trickroom'); + this.boost({spe: 2}, pokemon, pokemon, this.effect); + } + }, + flags: {}, + }, + + // Bert122 + pesteringassault: { + shortDesc: "Uses Knock Off, Taunt, Torment, Soak, and Confuse Ray with 40% accuracy at turn end.", + name: "Pestering Assault", + onResidual(pokemon, s, effect) { + const moves = ['knockoff', 'taunt', 'torment', 'soak', 'confuseray']; + for (const moveid of moves) { + const move = this.dex.getActiveMove(moveid); + move.accuracy = 40; + const target = pokemon.foes()[0]; + if (target && !target.fainted) { + this.actions.useMove(move, pokemon, {target, sourceEffect: effect}); + } + } + }, + flags: {}, + }, + + // blazeofvictory + prismaticlens: { + shortDesc: "Pixilate + Tinted Lens.", + name: "Prismatic Lens", + onModifyTypePriority: -1, + onModifyType(move, pokemon) { + const noModifyType = [ + 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball', + ]; + if (move.type === 'Normal' && !noModifyType.includes(move.id) && + !(move.isZ && move.category !== 'Status') && !(move.name === 'Tera Blast' && pokemon.terastallized)) { + move.type = 'Fairy'; + move.typeChangerBoosted = this.effect; + } + }, + onBasePowerPriority: 23, + onBasePower(basePower, pokemon, target, move) { + if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); + }, + onModifyDamage(damage, source, target, move) { + if (target.getMoveHitData(move).typeMod < 0) { + this.debug('Tinted Lens boost'); + return this.chainModify(2); + } + }, + flags: {}, + }, + + // Blitz + blitzofruin: { + shortDesc: "Active Pokemon without this Ability have 0.75x Speed.", + desc: "Active Pokemon without this Ability have their Speed multiplied by 0.75x.", + name: "Blitz of Ruin", + onStart(pokemon) { + this.add('-ability', pokemon, 'Blitz of Ruin'); + this.add('-message', `${pokemon.name}'s Blitz of Ruin lowered the Speed of all surrounding Pokémon!`); + }, + onAnyModifySpe(spe, pokemon) { + if (!pokemon.hasAbility('Blitz of Ruin')) { + return this.chainModify(0.75); + } + }, + flags: {breakable: 1}, + }, + + // Breadey + painfulexit: { + shortDesc: "When this Pokemon switches out, foes lose 25% HP.", + name: "Painful Exit", + onBeforeSwitchOutPriority: -1, + onBeforeSwitchOut(pokemon) { + this.add(`c:|${getName('Breadey')}|Just kidding!! Take this KNUCKLE SANDWICH`); + for (const foe of pokemon.foes()) { + if (!foe || foe.fainted || !foe.hp) continue; + this.add(`-anim`, pokemon, "Tackle", foe); + this.damage(foe.hp / 4, foe, pokemon); + } + }, + flags: {}, + }, + + // Chloe + acetosa: { + shortDesc: "This Pokemon's moves are changed to be Grass type and have 1.2x power.", + name: "Acetosa", + onModifyTypePriority: 1, + onModifyType(move, pokemon) { + const noModifyType = [ + 'hiddenpower', 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'struggle', 'technoblast', 'terrainpulse', 'weatherball', + ]; + if (!(move.isZ && move.category !== 'Status') && !noModifyType.includes(move.id) && + !(move.name === 'Tera Blast' && pokemon.terastallized)) { + move.type = 'Grass'; + move.typeChangerBoosted = this.effect; + } + }, + onBasePowerPriority: 23, + onBasePower(basePower, pokemon, target, move) { + if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); + }, + flags: {}, + }, + + // Chris + astrothunder: { + shortDesc: "Drizzle + Static.", + name: "Astrothunder", + onStart(source) { + for (const action of this.queue) { + if (action.choice === 'runPrimal' && action.pokemon === source && source.species.id === 'kyogre') return; + if (action.choice !== 'runSwitch' && action.choice !== 'runPrimal') break; + } + this.field.setWeather('raindance'); + }, + onDamagingHit(damage, target, source, move) { + if (this.checkMoveMakesContact(move, source, target)) { + if (this.randomChance(3, 10)) { + source.trySetStatus('par', target); + } + } + }, + }, + + // Clefable + thatshacked: { + shortDesc: "Tries to inflict the foe with Torment at the end of each turn.", + name: "That's Hacked", + onResidual(target, source, effect) { + if (!target.foes()?.length) return; + const abilMessages = [ + "All hacks and hacking methods are banned!", + "Can't be having that.", + "Naaah, miss me with that shit.", + "Bit bullshit that, mate.", + "Wait, thats illegal!", + "Nope.", + "I can't believe you've done this.", + "No thank you.", + "Seems a bit suss.", + "Thats probably hacked, shouldnt use it here.", + "Hacks will get you banned.", + "You silly sausage", + "Can you not?", + "Yeah, thats a no from me.", + "Lets not", + "No fun allowed", + ]; + this.add(`c:|${getName((target.illusion || target).name)}|${this.sample(abilMessages)}`); + for (const foe of target.foes()) { + if (foe && !foe.fainted && !foe.volatiles['torment']) { + foe.addVolatile('torment'); + } + } + }, + flags: {}, + }, + + // Clementine + meltingpoint: { + shortDesc: "+2 Speed. Fire moves change user to Water type. Fire immunity.", + name: "Melting Point", + onTryHit(target, source, move) { + if (target !== source && move.type === 'Fire') { + if (target.setType('Water')) { + this.add('-start', target, 'typechange', 'Water', '[from] ability: Melting Point'); + this.boost({spe: 2}, target, source, this.dex.abilities.get('meltingpoint')); + } else { + this.add('-immune', target, '[from] ability: Melting Point'); + } + return null; + } + }, + }, + + // clerica + masquerade: { + shortDesc: "(Mimikyu only) The first hit is blocked: instead, takes 1/8 damage and gets +1 Atk/Spe.", + desc: "If this Pokemon is a Mimikyu, the first hit it takes in battle deals 0 neutral damage. Its disguise is then broken, it changes to Busted Form, its Attack and Speed are boosted by 1 stage, and it loses 1/8 of its max HP. Confusion damage also breaks the disguise.", + name: "Masquerade", + onDamagePriority: 1, + onDamage(damage, target, source, effect) { + if ( + effect && effect.effectType === 'Move' && + ['mimikyu', 'mimikyutotem'].includes(target.species.id) && !target.transformed + ) { + this.add('-activate', target, 'ability: Masquerade'); + this.effectState.busted = true; + return 0; + } + }, + onCriticalHit(target, source, move) { + if (!target) return; + if (!['mimikyu', 'mimikyutotem'].includes(target.species.id) || target.transformed) { + return; + } + const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); + if (hitSub) return; + + if (!target.runImmunity(move.type)) return; + return false; + }, + onEffectiveness(typeMod, target, type, move) { + if (!target || move.category === 'Status') return; + if (!['mimikyu', 'mimikyutotem'].includes(target.species.id) || target.transformed) { + return; + } + + const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); + if (hitSub) return; + + if (!target.runImmunity(move.type)) return; + return 0; + }, + onUpdate(pokemon) { + if (['mimikyu', 'mimikyutotem'].includes(pokemon.species.id) && this.effectState.busted) { + const speciesid = pokemon.species.id === 'mimikyutotem' ? 'Mimikyu-Busted-Totem' : 'Mimikyu-Busted'; + pokemon.formeChange(speciesid, this.effect, true); + this.damage(pokemon.baseMaxhp / 8, pokemon, pokemon, this.dex.species.get(speciesid)); + this.boost({atk: 1, spe: 1}); + this.add(`c:|${getName('clerica')}|oop`); + } + }, + flags: {breakable: 1, failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, + }, + + // Clouds + jetstream: { + shortDesc: "Delta Stream + Stealth Rock immunity.", + name: "Jet Stream", + onStart(source) { + this.field.setWeather('deltastream'); + this.add('message', `Strong air currents keep Flying-types ahead of the chase!`); + }, + onAnySetWeather(target, source, weather) { + if (this.field.isWeather('deltastream') && !STRONG_WEATHERS.includes(weather.id)) return false; + }, + onEnd(pokemon) { + if (this.field.weatherState.source !== pokemon) return; + for (const target of this.getAllActive()) { + if (target === pokemon) continue; + if (target.hasAbility(['deltastream', 'jetstream'])) { + this.field.weatherState.source = target; + return; + } + } + this.field.clearWeather(); + }, + onDamage(damage, target, source, effect) { + if (effect && effect.name === 'Stealth Rock') { + return false; + } + }, + flags: {breakable: 1}, + }, + + // Coolcodename + firewall: { + shortDesc: "Burns foes that attempt to use status moves on this Pokemon; Status move immunity.", + name: "Firewall", + onTryHit(target, source, move) { + if (move.category === 'Status' && target !== source) { + if (!source.trySetStatus('brn', target)) { + this.add('-immune', target, '[from] ability: Firewall'); + } + return null; + } + }, + flags: {breakable: 1}, + }, + + // Corthius + grassyemperor: { + shortDesc: "On switch-in, summons Grassy Terrain. During Grassy Terrain, Attack is 1.33x.", + name: "Grassy Emperor", + onStart(pokemon) { + if (this.field.setTerrain('grassyterrain')) { + this.add('-activate', pokemon, 'Grassy Emperor', '[source]'); + } else if (this.field.isTerrain('grassyterrain')) { + this.add('-activate', pokemon, 'ability: Grassy Emperor'); + } + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, pokemon) { + if (this.field.isTerrain('grassyterrain')) { + this.debug('Grassy Emperor boost'); + return this.chainModify([5461, 4096]); + } + }, + flags: {}, + }, + + // Dawn of Artemis + formchange: { + shortDesc: ">50% HP Necrozma, else Necrozma-Ultra. SpA boosts become Atk boosts and vice versa.", + desc: "If this Pokemon is a Necrozma, it changes to Necrozma-Ultra and switches its Attack and Special Attack stat stage changes if it has 1/2 or less of its maximum HP at the end of a turn. If Necrozma-Ultra's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Necrozma and switches its Attack and Special Attack stat stage changes.", + name: "Form Change", + onResidual(pokemon) { + if (pokemon.baseSpecies.baseSpecies !== 'Necrozma' || pokemon.transformed || !pokemon.hp) return; + let newSet = 'Dawn of Artemis'; + if (pokemon.hp > pokemon.maxhp / 2) { + if (pokemon.species.id === 'necrozma') return; + this.add(`c:|${getName('Dawn of Artemis')}|Good, I'm healthy again, time to swap back.`); + } else { + if (pokemon.species.id === 'necrozmaultra') return; + this.add(`c:|${getName('Dawn of Artemis')}|Time for me to transform and you to witness the power of Ares now!`); + newSet += '-Ultra'; + } + this.add('-activate', pokemon, 'ability: Form Change'); + changeSet(this, pokemon, ssbSets[newSet]); + [pokemon.boosts['atk'], pokemon.boosts['spa']] = [pokemon.boosts['spa'], pokemon.boosts['atk']]; + this.add('-setboost', pokemon, 'spa', pokemon.boosts['spa'], '[silent]'); + this.add('-setboost', pokemon, 'atk', pokemon.boosts['atk'], '[silent]'); + this.add('-message', `${pokemon.name} swapped its Attack and Special Attack boosts!`); + }, + flags: {}, + }, + + // DaWoblefet + shadowartifice: { + shortDesc: "Traps adjacent foes. If KOed with a move, that move's user loses an equal amount of HP.", + name: "Shadow Artifice", + onFoeTrapPokemon(pokemon) { + if (!pokemon.hasAbility(['shadowtag', 'shadowartifice']) && pokemon.isAdjacent(this.effectState.target)) { + pokemon.tryTrap(true); + } + }, + onFoeMaybeTrapPokemon(pokemon, source) { + if (!source) source = this.effectState.target; + if (!source || !pokemon.isAdjacent(source)) return; + if (!pokemon.hasAbility(['shadowtag', 'shadowartifice'])) { + pokemon.maybeTrapped = true; + } + }, + onDamagingHitOrder: 1, + onDamagingHit(damage, target, source, move) { + if (!target.hp) { + this.damage(target.getUndynamaxedHP(damage), source, target); + } + }, + flags: {}, + }, + + // dhelmise + coalescence: { + shortDesc: "Moves drain 37%. Allies heal 5% HP. <25% HP, moves drain 114%, allies get 10%.", + desc: "All moves heal 37% of damage dealt. Unfainted allies heal 5% HP at the end of each turn. If this Pokemon's HP is less than 25%, moves heal 114% of damage dealt, and allies restore 10% of their health.", + name: "Coalescence", + onModifyMove(move, source, target) { + if (move.category !== "Status") { + // move.flags['heal'] = 1; // For Heal Block + if (source.hp > source.maxhp / 4) { + move.drain = [37, 100]; + } else { + move.drain = [114, 100]; + } + } + }, + onResidualOrder: 5, + onResidualSubOrder: 4, + onResidual(pokemon) { + for (const ally of pokemon.side.pokemon) { + if (!ally.hp || ally === pokemon) continue; + if (ally.heal(this.modify(ally.baseMaxhp, pokemon.hp > pokemon.maxhp / 4 ? 0.05 : 0.1))) { + this.add('-heal', ally, ally.getHealth, '[from] ability: Coalescence', '[of] ' + pokemon); + } + } + }, + flags: {}, + }, + + // Elly + stormsurge: { + shortDesc: "On switch-in, summons rain that causes wind moves to have perfect accuracy and 1.2x Base Power.", + desc: "Summons the Storm Surge weather on switch-in. While Storm Surge is active, wind moves used by any Pokemon are perfectly accurate and become 20% stronger. Water moves are 50% stronger, Fire moves are 50% weaker.", + name: "Storm Surge", + onStart(source) { + this.field.setWeather('stormsurge'); + }, + }, + + // Emboar02 + hogwash: { + shortDesc: "Reckless; on STAB moves, also add Rock Head. On non-STAB moves, recoil is recovery.", + desc: "This Pokemon's attacks that would normally have recoil or crash damage have their power multiplied by 1.2. Does not affect Struggle. STAB recoil attacks used by this Pokemon do not deal recoil damage to the user. Non-STAB recoil attacks used by this Pokemon will heal the user instead of dealing recoil damage.", + name: "Hogwash", + onBasePowerPriority: 23, + onBasePower(basePower, attacker, defender, move) { + if (move.recoil || move.hasCrashDamage) { + this.debug('Hogwash boost'); + return this.chainModify([4915, 4096]); + } + }, + onDamage(damage, target, source, effect) { + if (effect.id === 'recoil') { + let trueSource = source; + // For some reason, the source of the damage is the subsitute user when + // hitting a sub. + if (source !== target) trueSource = target; + if (!this.activeMove) throw new Error("Battle.activeMove is null"); + if (this.activeMove.id !== 'struggle') { + if (!trueSource.hasType(this.activeMove.type)) this.heal(damage); + return null; + } + } + }, + }, + + // Frostyicelad + almostfrosty: { + shortDesc: "This Pokemon's damaging moves hit twice. The second hit has its damage halved.", + name: "Almost Frosty", + onPrepareHit(source, target, move) { + if (move.category === 'Status' || move.multihit || move.flags['noparentalbond'] || move.flags['charge'] || + move.flags['futuremove'] || move.spreadHit || move.isZ || move.isMax) return; + move.multihit = 2; + move.multihitType = 'parentalbond'; + }, + // Damage modifier implemented in BattleActions#modifyDamage() + onSourceModifySecondaries(secondaries, target, source, move) { + if (move.multihitType === 'parentalbond' && move.id === 'secretpower' && move.hit < 2) { + // hack to prevent accidentally suppressing King's Rock/Razor Fang + return secondaries.filter(effect => effect.volatileStatus === 'flinch'); + } + }, + }, + + // Frozoid + snowballer: { + shortDesc: "This Pokemon's Attack is raised 1 stage if hit by an Ice move; Ice immunity.", + name: "Snowballer", + onTryHitPriority: 1, + onTryHit(target, source, move) { + if (target !== source && move.type === 'Ice') { + if (!this.boost({atk: 1})) { + this.add('-immune', target, '[from] ability: Snowballer'); + } + return null; + } + }, + flags: {breakable: 1}, + }, + + // Fame + socialjumpluffwarrior: { + shortDesc: "Serene Grace + Mycelium Might.", + name: "Social Jumpluff Warrior", + onFractionalPriority(priority, pokemon, target, move) { + if (move.category === 'Status') { + return -0.1; + } + }, + onModifyMovePriority: -2, + onModifyMove(move) { + if (move.category === 'Status') { + move.ignoreAbility = true; + } + if (move.secondaries) { + this.debug('doubling secondary chance'); + for (const secondary of move.secondaries) { + if (secondary.chance) secondary.chance *= 2; + } + } + if (move.self?.chance) move.self.chance *= 2; + }, + flags: {}, + }, + + // Ganjafin + gamblingaddiction: { + shortDesc: "When under 1/4 max HP: +1 Spe, heal to full HP, and all moves become Final Gambit.", + name: "Gambling Addiction", + onResidualOrder: 29, + onResidual(pokemon) { + if (!this.effectState.gamblingAddiction && pokemon.hp && pokemon.hp < pokemon.maxhp / 4) { + this.boost({spe: 1}); + this.heal(pokemon.maxhp); + const move = this.dex.moves.get('finalgambit'); + const finalGambit = { + move: move.name, + id: move.id, + pp: (move.noPPBoosts || move.isZ) ? move.pp : move.pp * 8 / 5, + maxpp: (move.noPPBoosts || move.isZ) ? move.pp : move.pp * 8 / 5, + target: move.target, + disabled: false, + used: false, + }; + pokemon.moveSlots.fill(finalGambit); + pokemon.baseMoveSlots.fill(finalGambit); + this.effectState.gamblingAddiction = true; + } + }, + flags: {}, + }, + + // havi + mensiscage: { + shortDesc: "Immune to status and is considered to be asleep. 30% chance to Disable when hit.", + name: "Mensis Cage", + onDamagingHit(damage, target, source, move) { + if (source.volatiles['disable']) return; + if (!move.isMax && !move.flags['futuremove'] && move.id !== 'struggle') { + if (this.randomChance(3, 10)) { + source.addVolatile('disable', this.effectState.target); + } + } + }, + onStart(pokemon) { + this.add('-ability', pokemon, 'Mensis Cage'); + }, + onSetStatus(status, target, source, effect) { + if ((effect as Move)?.status) { + this.add('-immune', target, '[from] ability: Mensis Cage'); + } + return false; + }, + // Permanent sleep "status" implemented in the relevant sleep-checking effects + flags: {}, + }, + + // Hecate + hacking: { + name: "Hacking", + shortDesc: "Hacks into PS and finds out if the enemy has any super effective moves.", + onStart(pokemon) { + const name = (pokemon.illusion || pokemon).name; + this.add(`c:|${getName(name)}|One moment, please. One does not simply go into battle blind.`); + const side = pokemon.side.id === 'p1' ? 'p2' : 'p1'; + this.add( + `message`, + ( + `ssh sim@pokemonshowdown.com && nc -U logs/repl/sim <<< ` + + `"Users.get('${this.toID(name)}').popup(battle.sides.get('${side}').pokemon.map(m => Teams.exportSet(m)))"` + ) + ); + let warnMoves: (Move | Pokemon)[][] = []; + let warnBp = 1; + for (const target of pokemon.foes()) { + for (const moveSlot of target.moveSlots) { + const move = this.dex.moves.get(moveSlot.move); + let bp = move.basePower; + if (move.ohko) bp = 150; + if (move.id === 'counter' || move.id === 'metalburst' || move.id === 'mirrorcoat') bp = 120; + if (bp === 1) bp = 80; + if (!bp && move.category !== 'Status') bp = 80; + if (bp > warnBp) { + warnMoves = [[move, target]]; + warnBp = bp; + } else if (bp === warnBp) { + warnMoves.push([move, target]); + } + } + } + if (!warnMoves.length) { + this.add(`c:|${getName(name)}|Fascinating. None of your sets have any moves of interest.`); + return; + } + const [warnMoveName, warnTarget] = this.sample(warnMoves); + this.add( + 'message', + `${name} hacked into PS and looked at ${name === 'Hecate' ? 'her' : 'their'} opponent's sets. ` + + `${warnTarget.name}'s move ${warnMoveName} drew ${name === 'Hecate' ? 'her' : 'their'} eye.` + ); + this.add(`c:|${getName(name)}|Interesting. With that in mind, bring it!`); + }, + flags: {}, + }, + + // HoeenHero + misspelled: { + shortDesc: "Swift Swim + Special Attack 1.5x, Accuracy 0.8x. Never misses, only misspells.", + name: "Misspelled", + onModifySpAPriority: 5, + onModifySpA(spa) { + return this.modify(spa, 1.5); + }, + onSourceModifyAccuracyPriority: -1, + onSourceModifyAccuracy(accuracy, target, source, move) { + if (move.category === 'Special' && typeof accuracy === 'number') { + return this.chainModify([3277, 4096]); + } + }, + onModifySpe(spe, pokemon) { + if (['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) { + return this.chainModify(2); + } + }, + // Misspelling implemented in scripts.ts#hitStepAccuracy + flags: {}, + }, + + // Hydrostatics + hydrostaticpositivity: { + shortDesc: "Sturdy + Storm Drain + Motor Drive + 1.3x accuracy of Water & Electric moves", + name: "Hydrostatic Positivity", + onTryHit(target, source, move) { + // Storm Drain + if (target !== source && move.type === 'Water') { + if (!this.boost({spa: 1})) { + this.add('-immune', target, '[from] ability: Hydrostatic Positivity'); + } + return null; + } + + // Motor Drive + if (target !== source && move.type === 'Electric') { + if (!this.boost({spe: 1})) { + this.add('-immune', target, '[from] ability: Hydrostatic Positivity'); + } + return null; + } + + // Sturdy + if (move.ohko) { + this.add('-immune', target, '[from] ability: Hydrostatic Positivity'); + return null; + } + }, + onAnyRedirectTarget(target, source, source2, move) { + // Storm Drain + if (move.type !== 'Water' || ['firepledge', 'grasspledge', 'waterpledge'].includes(move.id)) return; + const redirectTarget = ['randomNormal', 'adjacentFoe'].includes(move.target) ? 'normal' : move.target; + if (this.validTarget(this.effectState.target, source, redirectTarget)) { + if (move.smartTarget) move.smartTarget = false; + if (this.effectState.target !== target) { + this.add('-activate', this.effectState.target, 'ability: Hydrostatic Positivity'); + } + return this.effectState.target; + } + }, + onDamagePriority: -30, + onDamage(damage, target, source, effect) { + // Sturdy + if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') { + this.add('-ability', target, 'Hydrostatic Positivity'); + return target.hp - 1; + } + }, + onSourceModifyAccuracyPriority: -1, + onSourceModifyAccuracy(accuracy, target, source, move) { + if (typeof accuracy !== 'number') return; + if (['Electric', 'Water'].includes(move.type)) { + this.debug('Hydrostatic Positivity - enhancing accuracy'); + return this.chainModify([5325, 4096]); + } + }, + }, + + // Imperial + frozenfortuity: { + shortDesc: "On switch-in, changes the Pokemon to Kyurem-Black if the target's Defense is lower, otherwise Kyurem-White.", + name: "Frozen Fortuity", + onStart(pokemon) { + if (pokemon.species.id !== 'kyurem' || pokemon.transformed || !pokemon.hp) return; + if (pokemon.beingCalledBack) return; + let totaldef = 0; + let totalspd = 0; + for (const target of pokemon.foes()) { + totaldef += target.getStat('def', false, true); + totalspd += target.getStat('spd', false, true); + } + this.add('-ability', pokemon, 'Frozen Fortuity'); + if (totaldef < totalspd) { + changeSet(this, pokemon, ssbSets['Imperial-Black']); + } else { + changeSet(this, pokemon, ssbSets['Imperial-White']); + } + }, + onSwitchOut(pokemon) { + if (pokemon.baseSpecies.baseSpecies !== 'Kyurem' || pokemon.transformed || !pokemon.hp) return; + changeSet(this, pokemon, ssbSets['Imperial']); + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, + }, + + // in the hills + illiterit: { + shortDesc: "Immune to moves with 12 or more alphanumeric characters.", + name: "Illiterit", + onTryHit(target, source, move) { + if (target !== source && move.id.length >= 12) { + this.add('-immune', target, '[from] ability: Illiterit'); + this.add(`c:|${getName('in the hills')}|Gee ${source.name}, maybe I should get a dictionary so I can understand what move you just used.`); + return null; + } + }, + flags: {breakable: 1}, + }, + + // Irpachuza + mimeknowsbest: { + shortDesc: "When this Pokemon switches in, it uses a random screen or protect move.", + desc: "When this Pokemon switches in, it will randomly use one of Light Screen, Reflect, Protect, Detect, Barrier, Spiky Shield, Baneful Bunker, Safeguard, Mist, King's Shield, Magic Coat, or Aurora Veil.", + name: "Mime knows best", + onStart(target) { + const randomMove = [ + "Light Screen", "Reflect", "Protect", "Detect", "Barrier", "Spiky Shield", "Baneful Bunker", + "Safeguard", "Mist", "King's Shield", "Magic Coat", "Aurora Veil", + ]; + const move = this.dex.getActiveMove(this.sample(randomMove)); + // allows use of Aurora Veil without hail + if (move.name === "Aurora Veil") delete move.onTry; + this.actions.useMove(move, target); + }, + flags: {}, + }, + + // J0rdy004 + fortifyingfrost: { + shortDesc: "If Snow is active, this Pokemon's Sp. Atk and Sp. Def are 1.5x.", + name: "Fortifying Frost", + onModifySpAPriority: 5, + onModifySpA(spa, pokemon) { + if (['hail', 'snow'].includes(pokemon.effectiveWeather())) { + return this.chainModify(1.5); + } + }, + onModifySpD(spd, pokemon) { + if (['hail', 'snow'].includes(pokemon.effectiveWeather())) { + return this.chainModify(1.5); + } + }, + flags: {}, + }, + + // kenn + deserteddunes: { + shortDesc: "Summons Deserted Dunes until switch-out; Sandstorm + Rock weaknesses removed.", + desc: "On switch-in, the weather becomes Deserted Dunes, which removes the weaknesses of the Rock type from Rock-type Pokemon. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by the Desolate Land, Primordial Sea or Delta Stream Abilities.", + name: "Deserted Dunes", + onStart(source) { + this.field.setWeather('deserteddunes'); + }, + onAnySetWeather(target, source, weather) { + if (this.field.getWeather().id === 'deserteddunes' && !STRONG_WEATHERS.includes(weather.id)) return false; + }, + onEnd(pokemon) { + if (this.field.weatherState.source !== pokemon) return; + for (const target of this.getAllActive()) { + if (target === pokemon) continue; + if (target.hasAbility('deserteddunes')) { + this.field.weatherState.source = target; + return; + } + } + this.field.clearWeather(); + }, + flags: {}, + gen: 9, + }, + + // Kennedy + anfield: { + shortDesc: "Clears terrain/hazards/pseudo weathers. Summons Anfield Atmosphere.", + name: "Anfield", + onStart(target) { + let success = false; + if (this.field.terrain) { + success = this.field.clearTerrain(); + } + for (const side of this.sides) { + const remove = [ + 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + for (const sideCondition of remove) { + if (side.removeSideCondition(sideCondition)) { + this.add('-sideend', side, this.dex.conditions.get(sideCondition).name, '[from] ability: Anfield', '[of] ' + target); + } + } + } + for (const pseudoWeather of PSEUDO_WEATHERS) { + if (this.field.removePseudoWeather(pseudoWeather)) success = true; + } + if (success) { + this.add('-activate', target, 'ability: Anfield'); + } + this.field.addPseudoWeather('anfieldatmosphere', target, target.getAbility()); + }, + flags: {}, + }, + youllneverwalkalone: { + shortDesc: "Boosts Atk, Def, SpD, and Spe by 25% under Anfield Atmosphere.", + name: "You'll Never Walk Alone", + onStart(pokemon) { + if (this.field.getPseudoWeather('anfieldatmosphere')) { + this.add('-ability', pokemon, 'You\'ll Never Walk Alone'); + } + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, source, target, move) { + if (this.field.getPseudoWeather('anfieldatmosphere')) { + this.debug('You\'ll Never Walk Alone atk boost'); + return this.chainModify([5120, 4096]); + } + }, + onModifyDefPriority: 6, + onModifyDef(def, target, source, move) { + if (this.field.getPseudoWeather('anfieldatmosphere')) { + this.debug('You\'ll Never Walk Alone def boost'); + return this.chainModify([5120, 4096]); + } + }, + onModifySpDPriority: 6, + onModifySpD(spd, target, source, move) { + if (this.field.getPseudoWeather('anfieldatmosphere')) { + this.debug('You\'ll Never Walk Alone spd boost'); + return this.chainModify([5120, 4096]); + } + }, + onModifySpe(spe, pokemon) { + if (this.field.getPseudoWeather('anfieldatmosphere')) { + this.debug('You\'ll Never Walk Alone spe boost'); + return this.chainModify([5120, 4096]); + } + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, cantsuppress: 1}, + }, + + // kingbaruk + peerpressure: { + shortDesc: "All moves used while this Pokemon is on the field consume 4 PP.", + name: "Peer Pressure", + onStart(pokemon) { + this.add('-ability', pokemon, 'Peer Pressure'); + }, + onAnyDeductPP(target, source) { + return 3; + }, + flags: {}, + }, + + // Kiwi + surehitsorcery: { + shortDesc: "No Guard + Prankster + Grassy Surge.", + name: "Sure Hit Sorcery", + onAnyInvulnerabilityPriority: 1, + onAnyInvulnerability(target, source, move) { + if (move && (source === this.effectState.target || target === this.effectState.target)) return 0; + }, + onAnyAccuracy(accuracy, target, source, move) { + if (move && (source === this.effectState.target || target === this.effectState.target)) { + return true; + } + return accuracy; + }, + onModifyPriority(priority, pokemon, target, move) { + if (move?.category === 'Status') { + move.pranksterBoosted = true; + return priority + 1; + } + }, + onStart(source) { + this.field.setTerrain('grassyterrain'); + }, + flags: {}, + }, + + // Klmondo + superskilled: { + shortDesc: "Skill Link + Multiscale.", + name: "Super Skilled", + onModifyMove(move) { + if (move.multihit && Array.isArray(move.multihit) && move.multihit.length) { + move.multihit = move.multihit[1]; + } + if (move.multiaccuracy) { + delete move.multiaccuracy; + } + }, + onSourceModifyDamage(damage, source, target, move) { + if (target.hp >= target.maxhp) { + this.debug('Multiscale weaken'); + return this.chainModify(0.5); + } + }, + flags: {breakable: 1}, + }, + + // Kry + flashfreeze: { + shortDesc: "Heatproof + If attacker's used offensive stat has positive stat changes, take 0.75x damage.", + name: "Flash Freeze", + onSourceModifyAtkPriority: 6, + onSourceModifyAtk(atk, attacker, defender, move) { + if (move.type === 'Fire') { + this.debug('Heatproof Atk weaken'); + return this.chainModify(0.5); + } + }, + onSourceModifySpAPriority: 5, + onSourceModifySpA(atk, attacker, defender, move) { + if (move.type === 'Fire') { + this.debug('Heatproof SpA weaken'); + return this.chainModify(0.5); + } + }, + onDamage(damage, target, source, effect) { + if (effect && effect.id === 'brn') { + return damage / 2; + } + }, + onSourceModifyDamage(damage, source, target, move) { + if ( + (move.category === 'Special' && source.boosts['spa'] > 0) || + (move.category === 'Physical' && source.boosts['atk'] > 0) + ) { + return this.chainModify(0.75); + } + }, + flags: {breakable: 1}, + }, + + // Lasen + idealizedworld: { + shortDesc: "Removes everything on switch-in.", + desc: "When this Pokemon switches in, all stat boosts, entry hazards, weathers, terrains, persistent weathers (such as Primordial Sea), and any other field effects (such as Aurora Veil) are removed from all sides of the field.", + name: "Idealized World", + onStart(pokemon) { + const target = pokemon.side.foe; + this.add('-ability', pokemon, 'Idealized World'); + const displayText = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const targetCondition of Object.keys(target.sideConditions)) { + if (target.removeSideCondition(targetCondition) && displayText.includes(targetCondition)) { + this.add('-sideend', target, this.dex.conditions.get(targetCondition).name, '[from] ability: Idealized World', '[of] ' + pokemon); + } + } + for (const sideCondition of Object.keys(pokemon.side.sideConditions)) { + if (pokemon.side.removeSideCondition(sideCondition) && displayText.includes(sideCondition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(sideCondition).name, '[from] ability: Idealized World', '[of] ' + pokemon); + } + } + this.field.clearTerrain(); + this.field.clearWeather(); + for (const pseudoWeather of PSEUDO_WEATHERS) { + this.field.removePseudoWeather(pseudoWeather); + } + this.add('-clearallboost'); + for (const poke of this.getAllActive()) { + poke.clearBoosts(); + } + }, + flags: {}, + }, + + // Lumari + pyrotechnic: { + shortDesc: "Critical hits are guaranteed when the foe is burned.", + name: "Pyrotechnic", + onModifyCritRatio(critRatio, source, target) { + if (target?.status === 'brn') return 5; + }, + flags: {}, + }, + + // Lunell + lowtidehightide: { + shortDesc: "Switch-in sets Gravity, immune to Water, traps Water-type foes.", + name: "Low Tide, High Tide", + onStart(source) { + this.field.addPseudoWeather('gravity', source); + }, + onTryHit(target, source, move) { + if (target !== source && move.type === 'Water') { + this.add('-immune', target, '[from] ability: Low Tide, High Tide'); + return null; + } + }, + onFoeTrapPokemon(pokemon) { + if (pokemon.hasType('Water') && pokemon.isAdjacent(this.effectState.target)) { + pokemon.tryTrap(true); + } + }, + onFoeMaybeTrapPokemon(pokemon, source) { + if (!source) source = this.effectState.target; + if (!source || !pokemon.isAdjacent(source)) return; + if (!pokemon.knownType || pokemon.hasType('Water')) { + pokemon.maybeTrapped = true; + } + }, + flags: {breakable: 1}, + }, + + // Lyna + magicaura: { + shortDesc: "Magic Guard + Magic Bounce.", + name: "Magic Aura", + onDamage(damage, target, source, effect) { + if (effect.effectType !== 'Move') { + if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); + return false; + } + }, + onTryHitPriority: 1, + onTryHit(target, source, move) { + if (target === source || move.hasBounced || !move.flags['reflectable']) { + return; + } + const newMove = this.dex.getActiveMove(move.id); + newMove.hasBounced = true; + newMove.pranksterBoosted = false; + this.actions.useMove(newMove, target, {target: source}); + return null; + }, + onAllyTryHitSide(target, source, move) { + if (target.isAlly(source) || move.hasBounced || !move.flags['reflectable']) { + return; + } + const newMove = this.dex.getActiveMove(move.id); + newMove.hasBounced = true; + newMove.pranksterBoosted = false; + this.actions.useMove(newMove, this.effectState.target, {target: source}); + return null; + }, + condition: { + duration: 1, + }, + flags: {breakable: 1}, + }, + + // Maia + powerabuse: { + shortDesc: "Drought + 60% damage reduction + 20% burn after physical move.", + name: "Power Abuse", + onStart() { + this.field.setWeather('sunnyday'); + }, + onSourceModifyDamage() { + return this.chainModify(0.4); + }, + onDamagingHit(damage, target, source, move) { + if (move.category === "Physical" && this.randomChance(1, 5)) { + source.trySetStatus('brn', target); + } + }, + flags: {breakable: 1}, + }, + + // maroon + builtdifferent: { + shortDesc: "Stamina + Normal-type moves get +1 priority.", + name: "Built Different", + onDamagingHit(damage, target, source, effect) { + this.boost({def: 1}); + }, + onModifyPriority(priority, pokemon, target, move) { + if (move?.type === 'Normal') return priority + 1; + }, + flags: {}, + }, + + // Mathy + dynamictyping: { + shortDesc: "Moves used by all Pokemon are ??? type.", + name: "Dynamic Typing", + onStart(pokemon) { + this.add('-ability', pokemon, "Dynamic Typing"); + }, + onModifyTypePriority: 2, + onAnyModifyType(move, pokemon, target) { + move.type = "???"; + }, + flags: {}, + }, + + // Merritty + endround: { + shortDesc: "Clears everything.", + desc: "When this Pokemon switches in, all weather, terrains, field conditions, entry hazards, stat stage changes, and volatile status conditions are removed from the field.", + name: "End Round", + onStart(pokemon) { + if (this.suppressingAbility(pokemon)) return; + this.add('-ability', pokemon, 'End Round'); + this.add('-message', 'A new round is starting! Resetting the field...'); + this.field.clearWeather(); + this.field.clearTerrain(); + for (const pseudoWeather of PSEUDO_WEATHERS) { + this.field.removePseudoWeather(pseudoWeather); + } + for (const side of this.sides) { + const remove = [ + 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + 'bioticorbfoe', 'bioticorbself', 'tailwind', 'luckychant', 'alting', + ]; + for (const sideCondition of remove) { + if (side.removeSideCondition(sideCondition)) { + this.add('-sideend', side, this.dex.conditions.get(sideCondition).name, '[from] ability: End Round', '[of] ' + pokemon); + } + } + } + for (const mon of this.getAllActive()) { + const volatilesToClear = [ + 'substitute', 'aquaring', 'snack', 'attract', 'confusion', 'bide', 'partiallytrapped', 'perfectmimic', + 'mustrecharge', 'defensecurl', 'disable', 'focusenergy', 'dragoncheer', 'embargo', 'endure', 'gastroacid', + 'foresight', 'glaiverush', 'grudge', 'healblock', 'imprison', 'curse', 'leechseed', 'magnetrise', 'minimize', + 'miracleeye', 'nightmare', 'noretreat', 'octolock', 'lockedmove', 'powder', 'powershift', 'powertrick', + 'rage', 'ragepowder', 'roost', 'saltcure', 'smackdown', 'snatch', 'sparklingaria', 'spotlight', 'stockpile', + 'syrupbomb', 'tarshot', 'taunt', 'telekinesis', 'torment', 'uproar', 'yawn', 'flashfire', 'protosynthesis', + 'quarkdrive', 'slowstart', 'truant', 'unburden', 'metronome', 'beakblast', 'charge', 'echoedvoice', 'encore', + 'focuspunch', 'furycutter', 'gmaxcannonade', 'gmaxchistrike', 'gmaxvinelash', 'gmaxvolcalith', 'gmaxwildfire', + 'iceball', 'rollout', 'laserfocus', 'lockon', 'perishsong', 'shelltrap', 'throatchop', 'trapped', 'ultramystik', + 'choicelock', 'stall', 'catstampofapproval', 'beefed', 'boiled', 'flipped', 'therollingspheal', 'treasurebag', + 'torisstori', 'anyonecanbekilled', 'sigilsstorm', 'wonderwing', 'riseabove', 'superrollout', 'meatgrinder', + 'risingsword', + ]; + for (const volatile of volatilesToClear) { + if (mon.volatiles[volatile]) { + if (volatile === 'perishsong') { + // will implode the pokemon otherwise + delete mon.volatiles[volatile]; + } else { + mon.removeVolatile(volatile); + } + if (volatile === 'flipped') { + changeSet(this, mon, ssbSets['Clementine']); + this.add(`c:|${getName('Clementine')}|┬──┬◡ノ(° -°ノ)`); + } + this.add('-activate', pokemon, 'ability: End Round'); + } + } + mon.clearBoosts(); + this.add('-clearboost', mon, '[from] ability: End Round', '[of] ' + pokemon); + } + }, + flags: {cantsuppress: 1}, + }, + + // Meteordash + tatsuglare: { + shortDesc: "Fur Coat + All of the user's moves use the Special Attack stat.", + name: "TatsuGlare", + onModifyMove(move, pokemon, target) { + if (move.category !== "Status") move.overrideOffensiveStat = 'spa'; + }, + onModifyDefPriority: 6, + onModifyDef(def) { + return this.chainModify(2); + }, + flags: {breakable: 1}, + }, + + // Mex + timedilation: { + shortDesc: "+10% BP for every 10 turns passed in battle, max 200%.", + name: "Time Dilation", + onBasePowerPriority: 21, + onBasePower(basePower, attacker, defender, move) { + const turnMultiplier = Math.floor(this.turn / 10); + let bpMod = 1 + (0.1 * turnMultiplier); + if (bpMod > 2) bpMod = 2; + return this.chainModify(bpMod); + }, + flags: {}, + }, + + // Miojo + therollingspheal: { + shortDesc: "1.5x dmg boost for every repeated move use. Up to 5 uses. +1 Spe when use contact.", + name: "The Rolling Spheal", + onStart(pokemon) { + pokemon.addVolatile('therollingspheal'); + }, + onSourceHit(target, source, move) { + if (move.flags['contact'] && move.category === 'Physical') { + this.add('-activate', source, 'ability: The Rolling Spheal'); + this.boost({spe: 1}, source, source, move); + } + }, + condition: { + onStart(pokemon) { + this.effectState.lastMove = ''; + this.effectState.numConsecutive = 0; + }, + onTryMovePriority: -2, + onTryMove(pokemon, target, move) { + if (!pokemon.hasAbility('therollingspheal')) { + pokemon.removeVolatile('therollingspheal'); + return; + } + if (this.effectState.lastMove === move.id && pokemon.moveLastTurnResult) { + this.effectState.numConsecutive++; + } else if (pokemon.volatiles['twoturnmove']) { + if (this.effectState.lastMove !== move.id) { + this.effectState.numConsecutive = 1; + } else { + this.effectState.numConsecutive++; + } + } else { + this.effectState.numConsecutive = 0; + } + this.effectState.lastMove = move.id; + }, + onModifyDamage(damage, source, target, move) { + if (this.effectState.numConsecutive > 0) { + this.debug(`Current Metronome boost: 6144/4096`); + return this.chainModify([6144, 4096]); + } + }, + onAfterMove(source, target, move) { + if (this.effectState.numConsecutive > 5) { + this.effectState.numConsecutive = 0; + } + }, + }, + flags: {}, + }, + + // Monkey + harambehit: { + shortDesc: "Unseen Fist + Punch moves have 1.5x power.", + name: "Harambe Hit", + onModifyMove(move) { + if (move.flags['contact']) delete move.flags['protect']; + }, + onBasePowerPriority: 23, + onBasePower(basePower, attacker, defender, move) { + if (move.flags['punch']) { + this.debug('Harambe Hit boost'); + return this.chainModify([6144, 4096]); + } + }, + flags: {}, + }, + + // MyPearl + eoncall: { + shortDesc: "Changes into Latios after status move, Latias after special move.", + desc: "If this Pokemon is a Latios, it changes into Latias after using a status move. If this Pokemon is a Latias, it changes into Latios after using a special attack.", + name: "Eon Call", + onAfterMove(source, target, move) { + if (move.category === 'Status' && source.species.baseSpecies === 'Latias') { + changeSet(this, source, ssbSets['MyPearl'], true); + } else if (move.category === 'Special' && source.species.baseSpecies === 'Latios') { + changeSet(this, source, ssbSets['MyPearl-Latias'], true); + } + }, + flags: {}, + }, + + // Neko + weatherproof: { + shortDesc: "Water-/Fire-type moves against this Pokemon deal damage with a halved offensive stat.", + name: "Weatherproof", + onSourceModifyAtkPriority: 6, + onSourceModifyAtk(atk, attacker, defender, move) { + if (move.type === 'Water' || move.type === 'Fire') { + this.debug('Weatherproof weaken'); + return this.chainModify(0.5); + } + }, + onSourceModifySpAPriority: 5, + onSourceModifySpA(atk, attacker, defender, move) { + if (move.type === 'Water' || move.type === 'Fire') { + this.debug('Weatherproof weaken'); + return this.chainModify(0.5); + } + }, + flags: {breakable: 1}, + }, + + // Ney + pranksterplus: { + shortDesc: "This Pokemon's Status moves have priority raised by 1. Dark types are not immune.", + name: "Prankster Plus", + onModifyPriority(priority, pokemon, target, move) { + if (move?.category === 'Status') { + return priority + 1; + } + }, + flags: {}, + }, + + // Notater517 + ventcrosser: { + shortDesc: "Uses Baton Pass after every move.", + name: "Vent Crosser", + onAfterMove(source, target, move) { + this.actions.useMove('Baton Pass', source); + }, + flags: {}, + }, + + // nya + adorablegrace: { + shortDesc: "This Pokemon's secondary effects and certain items have their activation chance doubled.", + desc: "This Pokemon's secondary effects of attacks, as well as the effects of chance based items like Focus Band and King's Rock, have their activation chance doubled.", + name: "Adorable Grace", + onModifyMovePriority: -2, + onModifyMove(move) { + if (move.secondaries) { + this.debug('doubling secondary chance'); + for (const secondary of move.secondaries) { + if (secondary.chance) secondary.chance *= 2; + } + } + if (move.self?.chance) move.self.chance *= 2; + }, + // Item chances modified in items.js + }, + + // pants + drifting: { + shortDesc: "Wandering Spirit + Stakeout.", + name: "Drifting", + onDamagingHit(damage, target, source, move) { + if (source.getAbility().flags['failskillswap'] || target.volatiles['dynamax']) return; + + if (this.checkMoveMakesContact(move, source, target)) { + const targetCanBeSet = this.runEvent('SetAbility', target, source, this.effect, source.ability); + if (!targetCanBeSet) return targetCanBeSet; + const sourceAbility = source.setAbility('drifting', target); + if (!sourceAbility) return; + if (target.isAlly(source)) { + this.add('-activate', target, 'Skill Swap', '', '', '[of] ' + source); + } else { + this.add('-activate', target, 'ability: Drifting', this.dex.abilities.get(sourceAbility).name, 'Drifting', '[of] ' + source); + } + target.setAbility(sourceAbility); + } + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, attacker, defender) { + if (!defender.activeTurns) { + this.debug('Stakeout boost'); + return this.chainModify(2); + } + }, + onModifySpAPriority: 5, + onModifySpA(atk, attacker, defender) { + if (!defender.activeTurns) { + this.debug('Stakeout boost'); + return this.chainModify(2); + } + }, + flags: {}, + }, + + // PartMan + ctiershitposter: { + shortDesc: "-1 Atk/SpA, +1 Def/SpD. +1 Atk/SpA/Spe, -1 Def/SpD, Mold Breaker if 420+ dmg taken.", + desc: "When this Pokemon switches in, its Defense and Special Defense are boosted by 1 stage and its Attack and Special Attack are lowered by 1 stage. Once this Pokemon has taken total damage throughout the battle equal to or greater than 420 HP, it instead ignores the Abilities of opposing Pokemon when attacking and its existing stat stage changes are cleared. After this and whenever it gets sent out from this point onwards, this Pokemon boosts its Attack, Special Attack, and Speed by 1 stage, and lowers its Defense and Special Defense by 1 stage.", + name: "C- Tier Shitposter", + onDamage(damage, target, source, effect) { + target.m.damageTaken ??= 0; + target.m.damageTaken += damage; + if (target.set && !target.set.shiny) { + if (target.m.damageTaken >= 420) { + target.set.shiny = true; + if (!target.hp) { + return this.add(`c:|${getName('PartMan')}|MWAHAHA NOW YOU - oh I'm dead`); + } + this.add(`c:|${getName('PartMan')}|That's it. Get ready to be rapid-fire hugged.`); + target.clearBoosts(); + this.add('-clearboost', target); + this.boost({atk: 1, def: -1, spa: 1, spd: -1, spe: 1}); + const details = target.species.name + (target.level === 100 ? '' : ', L' + target.level) + + (target.gender === '' ? '' : ', ' + target.gender) + (target.set.shiny ? ', shiny' : ''); + target.details = details; + this.add('replace', target, details); + } + } + }, + onModifyMove(move, pokemon) { + if (pokemon.set.shiny) move.ignoreAbility = true; + }, + onStart(pokemon) { + if (!pokemon.set.shiny) { + this.boost({atk: -1, def: 1, spa: -1, spd: 1}); + } else { + this.boost({atk: 1, def: -1, spa: 1, spd: -1, spe: 1}); + } + }, + }, + + // Pastor Gigas + godsmercy: { + shortDesc: "Summons Grassy Terrain and cures the team's status conditions on switch-in.", + name: "God's Mercy", + onStart(source) { + this.field.setTerrain('grassyterrain'); + const allies = [...source.side.pokemon, ...source.side.allySide?.pokemon || []]; + for (const ally of allies) { + if (ally !== source && ally.hasAbility('sapsipper')) { + continue; + } + ally.cureStatus(); + } + }, + flags: {}, + }, + + // phoopes + ididitagain: { + shortDesc: "Bypasses Sleep Clause Mod.", + name: "I Did It Again", + flags: {}, + // implemented in rulesets.ts + }, + + // Princess Autumn + lasthymn: { + shortDesc: "Weakens incoming attacks by 10% for each Pokemon fainted.", + name: "Last Hymn", + onStart(pokemon) { + if (pokemon.side.totalFainted) { + this.add('-activate', pokemon, 'ability: Last Hymn'); + const fallen = Math.min(pokemon.side.totalFainted, 5); + this.add('-start', pokemon, `fallen${fallen}`, '[silent]'); + this.effectState.fallen = fallen; + } + }, + onEnd(pokemon) { + this.add('-end', pokemon, `fallen${this.effectState.fallen}`, '[silent]'); + }, + onBasePowerPriority: 21, + onFoeBasePower(basePower, attacker, defender, move) { + if (this.effectState.fallen) { + return this.chainModify([10, (10 + this.effectState.fallen)]); + } + }, + }, + + // Pulse_kS + pulseluck: { + shortDesc: "Mega Launcher + Super Luck.", + name: "Pulse Luck", + onBasePowerPriority: 19, + onBasePower(basePower, attacker, defender, move) { + if (move.flags['pulse']) { + return this.chainModify(1.5); + } + }, + onModifyCritRatio(critRatio) { + return critRatio + 1; + }, + flags: {}, + }, + + // PYRO + hardcorehustle: { + shortDesc: "Moves have 15% more power and -5% Acc for each fainted ally, up to 5 allies.", + name: "Hardcore Hustle", + onStart(pokemon) { + if (pokemon.side.totalFainted) { + this.add('-activate', pokemon, 'ability: Hardcore Hustle'); + const fallen = Math.min(pokemon.side.totalFainted, 5); + this.add('-start', pokemon, `fallen${fallen}`, '[silent]'); + this.effectState.fallen = fallen; + } + }, + onEnd(pokemon) { + this.add('-end', pokemon, `fallen${this.effectState.fallen}`, '[silent]'); + }, + onBasePowerPriority: 21, + onBasePower(basePower, attacker, defender, move) { + if (this.effectState.fallen) { + const powMod = [1, 1.15, 1.3, 1.45, 1.6, 1.75]; + this.debug(`Hardcore Hustle boost: ${powMod[this.effectState.fallen]}`); + return this.chainModify(powMod[this.effectState.fallen]); + } + }, + onSourceModifyAccuracyPriority: -1, + onSourceModifyAccuracy(accuracy, target, source, move) { + if (this.effectState.fallen) { + const accMod = [1, 0.95, 0.90, 0.85, 0.80, 0.75]; + this.debug(`Hardcore Hustle debuff: ${accMod[this.effectState.fallen]}`); + return this.chainModify(accMod[this.effectState.fallen]); + } + }, + flags: {}, + }, + + // Quite Quiet + fancyscarf: { + shortDesc: "Shield Dust + Magic Guard", + name: "Fancy Scarf", + onDamage(damage, target, source, effect) { + if (effect.effectType !== 'Move') { + if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); + return false; + } + }, + onModifySecondaries(secondaries) { + this.debug('Fancy Scarf prevent secondary'); + return secondaries.filter(effect => !!(effect.self || effect.dustproof)); + }, + flags: {}, + }, + + // quziel + highperformancecomputing: { + shortDesc: "Becomes a random typing at the beginning of each turn.", + name: "High Performance Computing", + flags: {}, + onResidual(source) { + const type = this.sample(this.dex.types.names().filter(i => i !== 'Stellar')); + if (source.setType(type)) { + this.add('-start', source, 'typechange', type, '[from] ability: High Performance Computing'); + } + }, + }, + + // R8 + antipelau: { + shortDesc: "Boosts Sp. Atk by 2 and sets a 25% Wish upon switch-in.", + name: "Anti-Pelau", + onStart(target) { + this.boost({spa: 2}, target); + const wish = this.dex.getActiveMove('wish'); + wish.condition = { + duration: 2, + onStart(pokemon, source) { + this.effectState.hp = source.maxhp / 4; + }, + onResidualOrder: 4, + onEnd(pokemon) { + if (pokemon && !pokemon.fainted) { + const damage = this.heal(this.effectState.hp, pokemon, pokemon); + if (damage) { + this.add('-heal', pokemon, pokemon.getHealth, '[from] move: Wish', '[wisher] ' + this.effectState.source.name); + } + } + }, + }; + this.actions.useMove(wish, target); + }, + flags: {}, + }, + + // Rainshaft + rainysaura: { + shortDesc: "On switch-in, this Pokemon summons rain. Boosts all Psychic-type damage by 33%.", + name: "Rainy's Aura", + onStart(source) { + if (this.suppressingAbility(source)) return; + for (const action of this.queue) { + if (action.choice === 'runPrimal' && action.pokemon === source && source.species.id === 'kyogre') return; + if (action.choice !== 'runSwitch' && action.choice !== 'runPrimal') break; + } + this.field.setWeather('raindance'); + }, + onAnyBasePowerPriority: 20, + onAnyBasePower(basePower, source, target, move) { + if (target === source || move.category === 'Status' || move.type !== 'Psychic') return; + if (!move.auraBooster?.hasAbility('Rainy\'s Aura')) move.auraBooster = this.effectState.target; + if (move.auraBooster !== this.effectState.target) return; + return this.chainModify([move.hasAuraBreak ? 3072 : 5448, 4096]); + }, + flags: {}, + }, + + // Ransei + ultramystik: { + shortDesc: "Stats 1.3x + Magic Guard + Leftovers until hit super effectively.", + desc: "This Pokemon can only be damaged by direct attacks. At the end of each turn, this Pokemon restores 1/16 of its maximum HP. This Pokemon's Attack, Defense, Special Attack, Special Defense, and Speed are boosted by 1.3x. This ability will be replaced with Healer if it is hit with a super effective attack.", + name: "Ultra Mystik", + onStart(target) { + if (!this.effectState.superHit) { + target.addVolatile('ultramystik'); + } + }, + onEnd(pokemon) { + delete pokemon.volatiles['ultramystik']; + this.add('-end', pokemon, 'Ultra Mystik', '[silent]'); + }, + onSourceModifyDamage(damage, source, target, move) { + if (target.getMoveHitData(move).typeMod > 0) { + this.effectState.superHit = true; + target.removeVolatile('ultramystik'); + target.setAbility('Healer', null, true); + target.baseAbility = target.ability; + } + }, + condition: { + noCopy: true, + onStart(pokemon, source, effect) { + this.add('-activate', pokemon, 'ability: Ultra Mystik'); + this.add('-start', pokemon, 'ultramystik'); + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, pokemon) { + if (pokemon.ignoringAbility()) return; + return this.chainModify(1.3); + }, + onModifyDefPriority: 6, + onModifyDef(def, pokemon) { + if (pokemon.ignoringAbility()) return; + return this.chainModify(1.3); + }, + onModifySpAPriority: 5, + onModifySpA(spa, pokemon) { + if (pokemon.ignoringAbility()) return; + return this.chainModify(1.3); + }, + onModifySpDPriority: 6, + onModifySpD(spd, pokemon) { + if (pokemon.ignoringAbility()) return; + return this.chainModify(1.3); + }, + onModifySpe(spe, pokemon) { + if (pokemon.ignoringAbility()) return; + return this.chainModify(1.3); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Ultra Mystik'); + }, + }, + onDamage(damage, target, source, effect) { + if (effect.effectType !== 'Move') { + if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); + return false; + } + }, + onResidual(pokemon) { + this.heal(pokemon.baseMaxhp / 16, pokemon, pokemon, pokemon.getAbility()); + }, + }, + + // ReturnToMonkey + monkeseemonkedo: { + shortDesc: "Boosts Atk or SpA by 1 based on foe's defenses, then copies foe's Ability.", + name: "Monke See Monke Do", + onStart(pokemon) { + let totaldef = 0; + let totalspd = 0; + for (const target of pokemon.foes()) { + totaldef += target.getStat('def', false, true); + totalspd += target.getStat('spd', false, true); + } + if (totaldef && totaldef >= totalspd) { + this.boost({spa: 1}); + } else if (totalspd) { + this.boost({atk: 1}); + } + + // n.b. only affects Hackmons + // interaction with No Ability is complicated: https://www.smogon.com/forums/threads/pokemon-sun-moon-battle-mechanics-research.3586701/page-76#post-7790209 + if (pokemon.adjacentFoes().some(foeActive => foeActive.ability === 'noability')) { + this.effectState.gaveUp = true; + } + // interaction with Ability Shield is similar to No Ability + if (pokemon.hasItem('Ability Shield')) { + this.add('-block', pokemon, 'item: Ability Shield'); + this.effectState.gaveUp = true; + } + }, + onUpdate(pokemon) { + if (!pokemon.isStarted || this.effectState.gaveUp) return; + + const possibleTargets = pokemon.adjacentFoes().filter( + target => !target.getAbility().flags['notrace'] && target.ability !== 'noability' + ); + if (!possibleTargets.length) return; + + const target = this.sample(possibleTargets); + const ability = target.getAbility(); + if (pokemon.setAbility(ability)) { + this.add('-ability', pokemon, ability, '[from] ability: Monke See Monke Do', '[of] ' + target); + } + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1}, + }, + + // Rissoux + hardheaded: { + shortDesc: "Reckless + Rock Head.", + name: "Hard Headed", + onBasePowerPriority: 23, + onBasePower(basePower, attacker, defender, move) { + if (move.recoil || move.hasCrashDamage) { + this.debug('Reckless boost'); + return this.chainModify([4915, 4096]); + } + }, + onDamage(damage, target, source, effect) { + if (effect.id === 'recoil') { + if (!this.activeMove) throw new Error("Battle.activeMove is null"); + if (this.activeMove.id !== 'struggle') return null; + } + }, + flags: {}, + }, + + // RSB + hotpursuit: { + shortDesc: "This Pokemon's damaging moves have the Pursuit effect.", + name: "Hot Pursuit", + onBeforeTurn(pokemon) { + for (const side of this.sides) { + if (side.hasAlly(pokemon)) continue; + side.addSideCondition('hotpursuit', pokemon); + const data = side.getSideConditionData('hotpursuit'); + if (!data.sources) { + data.sources = []; + } + data.sources.push(pokemon); + } + }, + onBasePower(relayVar, source, target, move) { + // You can't get here unless the pursuit succeeds + if (target.beingCalledBack || target.switchFlag) { + this.debug('Pursuit damage boost'); + return move.basePower * 2; + } + return move.basePower; + }, + onModifyMove(move, source, target) { + if (target?.beingCalledBack || target?.switchFlag) move.accuracy = true; + }, + onTryHit(source, target) { + target.side.removeSideCondition('hotpursuit'); + }, + condition: { + duration: 1, + onBeforeSwitchOut(pokemon) { + const move = this.queue.willMove(pokemon.foes()[0]); + const moveName = move && move.moveid ? move.moveid.toString() : ""; + this.debug('Pursuit start'); + let alreadyAdded = false; + pokemon.removeVolatile('destinybond'); + for (const source of this.effectState.sources) { + if (!source.isAdjacent(pokemon) || !this.queue.cancelMove(source) || !source.hp) continue; + if (!alreadyAdded) { + this.add('-activate', pokemon.foes()[0], 'ability: Hot Pursuit'); + alreadyAdded = true; + } + // Run through each action in queue to check if the Pursuit user is supposed to Mega Evolve this turn. + // If it is, then Mega Evolve before moving. + if (source.canMegaEvo || source.canUltraBurst) { + for (const [actionIndex, action] of this.queue.entries()) { + if (action.pokemon === source && action.choice === 'megaEvo') { + this.actions.runMegaEvo(source); + this.queue.list.splice(actionIndex, 1); + break; + } + } + } + this.actions.runMove(moveName, source, source.getLocOf(pokemon)); + } + }, + }, + flags: {}, + }, + + // Rumia + youkaiofthedusk: { + shortDesc: "This Pokemon's Defense is doubled and its status moves gain +1 priority.", + name: "Youkai of the Dusk", + onModifyDefPriority: 6, + onModifyDef(def) { + return this.chainModify(2); + }, + onModifyPriority(priority, pokemon, target, move) { + if (move?.category === 'Status') { + move.pranksterBoosted = true; + return priority + 1; + } + }, + flags: {}, + }, + + // SexyMalasada + ancestryritual: { + shortDesc: "Recoil heals. While below 50% HP, changes to Typhlosion-Hisui.", + desc: "Moves that would deal recoil or crash damage, aside from Struggle, heal this Pokemon for the corresponding amount instead. If this Pokemon is a Typhlosion, it changes to Typhlosion-Hisui if it has 1/2 or less of its maximum HP at the end of a turn. If Typhlosion-Hisui's HP is above 1/2 of its maximum HP at the end of a turn, it changes back to Typhlosion.", + name: "Ancestry Ritual", + onDamage(damage, target, source, effect) { + if (effect.id === 'recoil') { + if (!this.activeMove) throw new Error("Battle.activeMove is null"); + if (this.activeMove.id !== 'struggle') { + this.heal(damage); + return null; + } + } + }, + onResidualOrder: 20, + onResidual(pokemon) { + if (pokemon.baseSpecies.baseSpecies !== 'Typhlosion' || pokemon.transformed) { + return; + } + if (pokemon.hp <= pokemon.maxhp / 2 && pokemon.species.id !== 'typhlosionhisui') { + pokemon.formeChange('Typhlosion-Hisui'); + } else if (pokemon.hp > pokemon.maxhp / 2 && pokemon.species.id === 'typhlosionhisui') { + pokemon.formeChange('Typhlosion'); + } + }, + flags: {}, + }, + + // Siegfried + magicalmysterycharge: { + shortDesc: "Summons Electric Terrain upon switch-in, +1 boost to Sp. Def during Electric Terrain.", + name: "Magical Mystery Charge", + onStart(source) { + this.field.setTerrain('electricterrain'); + }, + onModifySpDPriority: 5, + onModifySpD(spd, pokemon) { + if (this.field.isTerrain('electricterrain')) { + return this.chainModify(1.5); + } + }, + flags: {}, + }, + + // Sificon + perfectlyimperfect: { + desc: "If a Pokemon uses a Fire- or Ice-type attack against this Pokemon, that Pokemon's offensive stat is halved when calculating the damage to this Pokemon.", + shortDesc: "Fire-/Ice-type moves against this Pokemon deal damage with a halved offensive stat.", + name: "Perfectly Imperfect", + onSourceModifyAtkPriority: 6, + onSourceModifyAtk(atk, attacker, defender, move) { + if (move.type === 'Ice' || move.type === 'Fire') { + this.debug('Perfectly Imperfect weaken'); + return this.chainModify(0.5); + } + }, + onSourceModifySpAPriority: 5, + onSourceModifySpA(atk, attacker, defender, move) { + if (move.type === 'Ice' || move.type === 'Fire') { + this.debug('Perfectly Imperfect weaken'); + return this.chainModify(0.5); + } + }, + flags: {breakable: 1}, + }, + + // skies + spikesofwrath: { + shortDesc: "Cheek Pouch + sets Spikes and Toxic Spikes upon getting KOed.", + name: "Spikes of Wrath", + onDamagingHit(damage, target, source, effect) { + if (!target.hp) { + const side = source.isAlly(target) ? source.side.foe : source.side; + const spikes = side.sideConditions['spikes']; + const toxicSpikes = side.sideConditions['toxicspikes']; + if (!spikes || spikes.layers < 3) { + this.add('-activate', target, 'ability: Spikes of Wrath'); + side.addSideCondition('spikes', target); + } + if (!toxicSpikes || toxicSpikes.layers < 2) { + this.add('-activate', target, 'ability: Spikes of Wrath'); + side.addSideCondition('toxicspikes', target); + } + } + }, + onEatItem(item, pokemon) { + this.heal(pokemon.baseMaxhp / 3); + }, + flags: {}, + }, + + // Soft Flex + adaptiveengineering: { + shortDesc: "Every turn, raises a random stat by 1 stage if the foe has more raised stats.", + name: "Adaptive Engineering", + onResidual(source) { + if (source === undefined || source.foes() === undefined || source.foes()[0] === undefined) return; + if (source.positiveBoosts() < source.foes()[0].positiveBoosts()) { + const stats: BoostID[] = []; + let stat: BoostID; + for (stat in source.boosts) { + if (stat === 'accuracy' || stat === 'evasion') continue; + if (source.boosts[stat] < 6) { + stats.push(stat); + } + } + if (stats.length) { + const randomStat = this.sample(stats); + this.boost({[randomStat]: 1}, source, source); + } + } + }, + flags: {}, + }, + + // Solaros & Lunaris + ridethesun: { + shortDesc: "Drought + Spe 1.5x in sun.", + desc: "On switch-in, this Pokemon summons Sunny Day. If Sunny Day is active, this Pokemon's Speed is 1.5x.", + name: "Ride the Sun!", + onStart(source) { + for (const action of this.queue) { + if (action.choice === 'runPrimal' && action.pokemon === source && source.species.id === 'groudon') return; + if (action.choice !== 'runSwitch' && action.choice !== 'runPrimal') break; + } + this.field.setWeather('sunnyday'); + }, + onModifySpe(spe, pokemon) { + if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) { + return this.chainModify(1.5); + } + }, + flags: {}, + }, + + // spoo + icanheartheheartbeatingasone: { + shortDesc: "Pixilate + Sharpness. -1 Atk upon KOing an opposing Pokemon.", + name: "I Can Hear The Heart Beating As One", + onModifyTypePriority: -1, + onModifyType(move, pokemon) { + const noModifyType = [ + 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball', + ]; + if (move.type === 'Normal' && !noModifyType.includes(move.id) && + !(move.isZ && move.category !== 'Status') && !(move.name === 'Tera Blast' && pokemon.terastallized)) { + move.type = 'Fairy'; + move.typeChangerBoosted = this.effect; + } + }, + onBasePowerPriority: 23, + onBasePower(basePower, pokemon, target, move) { + if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); + if (move.flags['slicing']) { + this.debug('Sharpness boost'); + return this.chainModify(1.5); + } + }, + onSourceAfterFaint(length, target, source, effect) { + if (effect && effect.effectType === 'Move') { + this.boost({atk: -length}, source); + } + }, + flags: {}, + }, + + // Steorra + ghostlyhallow: { + shortDesc: "This Pokémon can hit Normal types with Ghost-type moves.", + name: "Ghostly Hallow", + onModifyMovePriority: -5, + onModifyMove(move) { + if (!move.ignoreImmunity) move.ignoreImmunity = {}; + if (move.ignoreImmunity !== true) { + move.ignoreImmunity['Ghost'] = true; + } + }, + }, + + // Struchni + overaskedclause: { + shortDesc: "Moves used by opposing Pokemon on the previous turn will always fail.", + name: "Overasked Clause", + onFoeBeforeMove(target, source, move) { + if (target.lastMove && target.lastMove.id !== 'struggle') { + if (move.id === target.lastMove.id) { + this.attrLastMove('[still]'); + this.add('cant', target, 'ability: Overasked Clause', move, '[of] ' + source); + return false; + } + } + }, + }, + + // Sulo + protectionofthegelatin: { + shortDesc: "Magic Guard + Stamina", + name: "Protection of the Gelatin", + onDamage(damage, target, source, effect) { + if (effect.effectType !== 'Move') { + if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); + return false; + } + }, + onDamagingHit(damage, target, source, effect) { + this.boost({def: 1}); + }, + }, + + // Swiffix + stinky: { + desc: "10% chance to either poison or paralyze the target on hit.", + name: "Stinky", + onModifyMovePriority: -1, + onModifyMove(move) { + if (move.category !== "Status") { + this.debug('Adding Stinky psn/par'); + if (!move.secondaries) move.secondaries = []; + move.secondaries.push({ + chance: 10, + onHit(target, source) { + const result = this.random(2); + if (result === 0) { + target.trySetStatus('par', source); + } else { + target.trySetStatus('psn', source); + } + }, + }); + } + }, + flags: {}, + }, + + // Tenshi + sandsleuth: { + desc: "Sets Gravity and identifies foes on switch-in. Priority immune from identified foes.", + name: "Sand Sleuth", + onStart(target) { + this.field.addPseudoWeather('gravity', target); + for (const opponent of target.adjacentFoes()) { + if (!opponent.volatiles['foresight']) { + opponent.addVolatile('foresight'); + } + } + }, + onFoeTryMove(target, source, move) { + if (target.volatiles['foresight']) { + const targetAllExceptions = ['perishsong', 'flowershield', 'rototiller']; + if (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) { + return; + } + const dazzlingHolder = this.effectState.target; + if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) { + this.attrLastMove('[still]'); + this.add('cant', target, 'ability: Sand Sleuth', move, '[of] ' + source); + return false; + } + } + }, + flags: {}, + }, + + // Tico + eternalgenerator: { + shortDesc: "Regenerator + Magic Guard + immune to Sticky Web.", + name: "Eternal Generator", + onSwitchOut(pokemon) { + pokemon.heal(pokemon.baseMaxhp / 3); + }, + onDamage(damage, target, source, effect) { + if (effect.effectType !== 'Move') { + if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); + return false; + } + }, + flags: {breakable: 1}, + }, + + // TheJesucristoOsAma + thegraceofjesuschrist: { + shortDesc: "Changes plates at the end of every turn.", + name: "The Grace Of Jesus Christ", + onResidualOrder: 28, + onResidualSubOrder: 2, + onResidual(pokemon) { + const plates = this.dex.items.all().filter(item => item.onPlate && !item.zMove); + const item = this.sample(plates.filter(plate => this.toID(plate) !== this.toID(pokemon.item))); + pokemon.item = ''; + this.add('-item', pokemon, item, '[from] ability: The Grace Of Jesus Christ'); + pokemon.setItem(item); + pokemon.formeChange("Arceus-" + item.onPlate!, this.dex.abilities.get('thegraceofjesuschrist'), true); + }, + flags: {}, + }, + + // trace + eyesofeternity: { + shortDesc: "Moves used by/against this Pokemon always hit; only damaged by attacks.", + name: "Eyes of Eternity", + onAnyInvulnerabilityPriority: 1, + onAnyInvulnerability(target, source, move) { + if (move && (source === this.effectState.target || target === this.effectState.target)) return 0; + }, + onAnyAccuracy(accuracy, target, source, move) { + if (move && (source === this.effectState.target || target === this.effectState.target)) { + return true; + } + return accuracy; + }, + onDamage(damage, target, source, effect) { + if (effect.effectType !== 'Move') { + if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); + return false; + } + }, + flags: {}, + }, + + // Two of Roses + aswesee: { + shortDesc: "1x per turn: Stat gets boosted -> 50% chance to copy, 15% to raise another.", + desc: "Once per turn, when any active Pokemon has a stat boosted, this Pokemon has a 50% chance of copying it and a 15% chance to raise another random stat.", + name: "As We See", + onFoeAfterBoost(boost, target, source, effect) { // Opportunist + if (this.randomChance(1, 2)) { + if (effect && ['As We See', 'Mirror Herb', 'Opportunist'].includes(effect.name)) return; + const pokemon = this.effectState.target; + const positiveBoosts: Partial = {}; + let i: BoostID; + for (i in boost) { + if (boost[i]! > 0) { + positiveBoosts[i] = boost[i]; + } + } + if (Object.keys(positiveBoosts).length < 1) return; + this.boost(positiveBoosts, pokemon); + this.effectState.triggered = true; + } + }, + onResidual(target, source, effect) { + if (this.randomChance(15, 100) && this.effectState.triggered) { + const stats: BoostID[] = []; + const boost: SparseBoostsTable = {}; + let statPlus: BoostID; + for (statPlus in target.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (target.boosts[statPlus] < 6) { + stats.push(statPlus); + } + } + const randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + if (randomStat) boost[randomStat] = 1; + this.boost(boost, target, target); + } + this.effectState.triggered = false; + }, + flags: {}, + }, + + // UT + galeguard: { + shortDesc: "Mountaineer + Fur Coat.", + name: "Gale Guard", + onDamage(damage, target, source, effect) { + if (effect && effect.name === 'Stealth Rock') { + return false; + } + }, + onTryHit(target, source, move) { + if (move.type === 'Rock' && !target.activeTurns) { + this.add('-immune', target, '[from] ability: Mountaineer'); + return null; + } + }, + onModifyDef(def) { + return this.chainModify(2); + }, + flags: {breakable: 1}, + }, + + // umuwo + soulsurfer: { + name: "Soul Surfer", + shortDesc: "Drizzle + Surge Surfer.", + onStart(source) { + this.field.setWeather('raindance'); + }, + onModifySpe(spe) { + if (this.field.isTerrain('electricterrain')) { + return this.chainModify(2); + } + }, + flags: {}, + }, + + // Valerian + fullbloom: { + shortDesc: "This Pokémon's priority moves have double power.", + name: "Full Bloom", + onBasePowerPriority: 30, + onBasePower(basePower, pokemon, target, move) { + if (move.priority > 0) { + return this.chainModify(2); + } + }, + }, + + // Venous + concreteoverwater: { + shortDesc: "Gains +1 Defense and Sp. Def before getting hit by a super effective move.", + name: "Concrete Over Water", + onTryHit(target, source, move) { + if (target === source || move.category === 'Status') return; + if (target.runEffectiveness(move) > 0) { + this.boost({def: 1, spd: 1}, target); + } + }, + flags: {}, + }, + + // Violet + seenoevilhearnoevilspeaknoevil: { + shortDesc: "Dark immune; Cornerstone: Sound immune. Wellspring: Moves never miss. Hearthflame: 1.3x BP vs male.", + desc: "This Pokemon is immune to Dark-type attacks. If this Pokemon is Ogerpon-Cornerstone, it is immune to sound moves. If this Pokemon is Ogerpon-Wellspring, its moves will never miss. If this Pokemon is Ogerpon-Hearthflame, its damage against male targets is multiplied by 1.3x.", + name: "See No Evil, Hear No Evil, Speak No Evil", + onTryHit(target, source, move) { + if (target !== source && move.flags['sound'] && target.species.id.startsWith('ogerponcornerstone')) { + if (!this.heal(target.baseMaxhp / 4)) { + this.add('-immune', target, '[from] ability: See No Evil, Hear No Evil, Speak No Evil'); + } + return null; + } + + if (target !== source && move.type === 'Dark') { + this.add('-immune', target, '[from] ability: See No Evil, Hear No Evil, Speak No Evil'); + return null; + } + }, + onSourceAccuracy(accuracy, target, source, move) { + if (!source.species.id.startsWith('ogerponwellspring')) return; + if (typeof accuracy !== 'number') return; + return true; + }, + onSourceModifyDamage(damage, source, target, move) { + if (!source.species.id.startsWith('ogerponwellspring')) return; + if (typeof move.accuracy === 'number' && move.accuracy < 100) { + this.debug('neutralize'); + return this.chainModify(0.75); + } + }, + onBasePowerPriority: 24, + onBasePower(basePower, attacker, defender, move) { + if (!attacker.species.id.startsWith('ogerponhearthflame')) return; + if (defender.gender === 'M') { + this.debug('attack boost'); + return this.chainModify(1.3); + } + }, + flags: {breakable: 1}, + }, + + // Vistar + virtualidol: { + shortDesc: "Dancer + Punk Rock.", + name: "Virtual Idol", + onBasePowerPriority: 7, + onBasePower(basePower, attacker, defender, move) { + if (move.flags['sound']) { + this.debug('Punk Rock boost'); + return this.chainModify([5325, 4096]); + } + }, + onSourceModifyDamage(damage, source, target, move) { + if (move.flags['sound']) { + this.debug('Punk Rock weaken'); + return this.chainModify(0.5); + } + }, + flags: {breakable: 1}, + }, + + // vmnunes + wildgrowth: { + shortDesc: "Attacking moves also inflict Leech Seed on the target.", + name: "Wild Growth", + onModifyMovePriority: -1, + onAfterMove(source, target, move) { + if (target.hasType('Grass') || target.hasAbility('Sap Sipper') || !move.hit || target === source) return null; + target.addVolatile('leechseed', source); + }, + flags: {}, + }, + + // WarriorGallade + primevalharvest: { + shortDesc: "Sun: Heal 1/8 max HP, random berry if no item. Else 50% random berry if no item.", + desc: "In Sun, the user restores 1/8th of its maximum HP at the end of the turn and has a 100% chance to get a random berry if it has no item. Outside of sun, there is a 50% chance to get a random berry. Berry given will be one of: Cheri, Chesto, Pecha, Lum, Aguav, Liechi, Ganlon, Petaya, Apicot, Salac, Micle, Lansat, Enigma, Custap, Kee or Maranga.", + name: "Primeval Harvest", + onResidualOrder: 28, + onResidualSubOrder: 2, + onResidual(pokemon) { + const isSunny = this.field.isWeather(['sunnyday', 'desolateland']); + if (isSunny) { + this.heal(pokemon.baseMaxhp / 8, pokemon, pokemon, pokemon.getAbility()); + } + if (isSunny || this.randomChance(1, 2)) { + if (pokemon.hp && !pokemon.item) { + const berry = this.sample([ + 'cheri', 'chesto', 'pecha', 'lum', 'aguav', 'liechi', 'ganlon', 'petaya', + 'apicot', 'salac', 'micle', 'lansat', 'enigma', 'custap', 'kee', 'maranga', + ]) + 'berry'; + pokemon.setItem(berry); + pokemon.lastItem = ''; + this.add('-item', pokemon, pokemon.getItem(), '[from] ability: Primeval Harvest'); + } + } + }, + flags: {}, + }, + + // WigglyTree + treestance: { + shortDesc: "Rock Head + Filter.", + name: "Tree Stance", + onDamage(damage, target, source, effect) { + if (effect.id === 'recoil') { + if (!this.activeMove) throw new Error("Battle.activeMove is null"); + if (this.activeMove.id !== 'struggle') return null; + } + }, + onSourceModifyDamage(damage, source, target, move) { + if (target.getMoveHitData(move).typeMod > 0) { + this.debug('Tree Stance neutralize'); + return this.chainModify(0.75); + } + }, + flags: {breakable: 1}, + }, + + // xy01 + panic: { + shortDesc: "Lowers the foe's Atk and Sp. Atk by 1 upon switch-in.", + name: "Panic", + onStart(pokemon) { + let activated = false; + for (const target of pokemon.adjacentFoes()) { + if (!activated) { + this.add('-ability', pokemon, 'Panic', 'boost'); + activated = true; + } + if (target.volatiles['substitute']) { + this.add('-immune', target); + } else { + this.boost({atk: -1, spa: -1}, target, pokemon, null, true); + } + } + }, + flags: {}, + }, + + // Yellow Paint + yellowmagic: { + shortDesc: "+25% HP, +1 SpA, +1 Spe, Charge, or paralyzes attacker when hit by an Electric move; Electric immunity.", + desc: "This Pokemon is immune to Electric type moves. When this Pokemon is hit by one, it either: restores 25% of its maximum HP, boosts its Special Attack by 1 stage, boosts its Speed by 1 stage, gains the Charge effect, or paralyzes the attacker.", + name: "Yellow Magic", + onTryHit(target, source, move) { + if (target !== source && move.type === 'Electric') { + let didSomething = false; + switch (this.random(5)) { + case 0: + didSomething = !!this.heal(target.baseMaxhp / 4); + break; + case 1: + didSomething = !!this.boost({spa: 1}, target, target); + break; + case 2: + didSomething = !!this.boost({spe: 1}, target, target); + break; + case 3: + if (!target.volatiles['charge']) { + this.add('-ability', target, 'Yellow Magic'); + target.addVolatile('charge', target); + didSomething = true; + } + break; + case 4: + didSomething = source.trySetStatus('par', target); + break; + } + if (!didSomething) { + this.add('-immune', target, '[from] ability: Yellow Magic'); + } + return null; + } + }, + flags: {breakable: 1}, + }, + + // yeet dab xd + treasurebag: { + shortDesc: "At the end of the turn and when top kek is used, use one Treasure Bag item in the cycle.", + desc: "At the end of each turn and when top kek is used, one of the following effects will occur, starting at the top and moving to the next item for each use of Treasure Bag: Deal 100 HP of damage to the foe, heal the user for 100 HP, paralyze the foe, set Aurora Veil for 5 turns, or grant the user a permanent Reviver Seed condition that causes it to revive to 50% upon reaching 0 HP once. If the Reviver Seed effect is set, all future cycles will replace that effect with a no-effect Reviser Seed item. The state of the cycle persists if the Pokemon switches out and back in.", + name: "Treasure Bag", + onStart(target) { + this.add('-ability', target, 'Treasure Bag'); + target.addVolatile('treasurebag'); + }, + onResidual(target, source, effect) { + if (!target.volatiles['treasurebag']) target.addVolatile('treasurebag'); + }, + condition: { + onStart(pokemon, source, sourceEffect) { + if (!pokemon.m.bag) { + pokemon.m.bag = ['Blast Seed', 'Oran Berry', 'Petrify Orb', 'Luminous Orb', 'Reviver Seed']; + } + }, + onResidual(pokemon, source, effect) { + if (!pokemon.m.bag) { + pokemon.m.bag = ['Blast Seed', 'Oran Berry', 'Petrify Orb', 'Luminous Orb', 'Reviver Seed']; + } + if (!pokemon.m.cycledTreasureBag) { + const currentItem = pokemon.m.bag.shift(); + const foe = pokemon.foes()[0]; + switch (currentItem) { + case 'Blast Seed': + this.add('-activate', pokemon, 'ability: Treasure Bag'); + this.add('-message', `${pokemon.name} dug through its Treasure Bag and found a ${currentItem}!`); + if (foe) { + this.damage(100, foe, pokemon, this.effect); + } else { + this.add('-message', `But there was no target!`); + } + break; + case 'Oran Berry': + this.add('-activate', pokemon, 'ability: Treasure Bag'); + this.add('-message', `${pokemon.name} dug through its Treasure Bag and found an ${currentItem}!`); + this.heal(100, pokemon, pokemon, this.dex.items.get('Oran Berry')); + break; + case 'Petrify Orb': + this.add('-activate', pokemon, 'ability: Treasure Bag'); + this.add('-message', `${pokemon.name} dug through its Treasure Bag and found a ${currentItem}!`); + if (foe?.trySetStatus('par', pokemon, this.effect)) { + this.add('-message', `${pokemon.name} petrified ${foe.name}`); + } else if (!foe) { + this.add('-message', `But there was no target!`); + } else { + this.add('-message', `But it failed!`); + } + break; + case 'Luminous Orb': + this.add('-activate', pokemon, 'ability: Treasure Bag'); + this.add('-message', `${pokemon.name} dug through its Treasure Bag and found a ${currentItem}!`); + if (!pokemon.side.addSideCondition('auroraveil', pokemon, this.effect)) { + this.add('-message', `But it failed!`); + } + break; + // Handled separately + case 'Reviver Seed': + this.add('-activate', pokemon, 'ability: Treasure Bag'); + this.add('-message', `${pokemon.name} dug through its Treasure Bag and found a Reviver Seed!`); + pokemon.m.seedActive = true; + break; + } + pokemon.m.bag = [...pokemon.m.bag, currentItem]; + } + delete pokemon.m.cycledTreasureBag; + }, + onAfterMoveSecondarySelf(source, target, move) { + if (move.id !== 'topkek') return; + if (!source.m.bag) { + source.m.bag = ['Blast Seed', 'Oran Berry', 'Petrify Orb', 'Luminous Orb', 'Reviver Seed']; + } + if (!source.m.cycledTreasureBag) { + const currentItem = source.m.bag.shift(); + const foe = source.foes()[0]; + switch (currentItem) { + case 'Blast Seed': + this.add('-activate', source, 'ability: Treasure Bag'); + this.add('-message', `${source.name} dug through its Treasure Bag and found a ${currentItem}!`); + if (foe) { + this.damage(100, foe, source, this.effect); + } else { + this.add('-message', `But there was no target!`); + } + break; + case 'Oran Berry': + this.add('-activate', source, 'ability: Treasure Bag'); + this.add('-message', `${source.name} dug through its Treasure Bag and found an ${currentItem}!`); + this.heal(100, source, source, this.dex.items.get('Oran Berry')); + break; + case 'Petrify Orb': + this.add('-activate', source, 'ability: Treasure Bag'); + this.add('-message', `${source.name} dug through its Treasure Bag and found a ${currentItem}!`); + if (foe?.trySetStatus('par', source, this.effect)) { + this.add('-message', `${source.name} petrified ${foe.name}`); + } else if (!foe) { + this.add('-message', `But there was no target!`); + } else { + this.add('-message', `But it failed!`); + } + break; + case 'Luminous Orb': + this.add('-activate', source, 'ability: Treasure Bag'); + this.add('-message', `${source.name} dug through its Treasure Bag and found a ${currentItem}!`); + if (!source.side.addSideCondition('auroraveil', source, this.effect)) { + this.add('-message', `But it failed!`); + } + break; + // Handled separately + case 'Reviver Seed': + this.add('-activate', source, 'ability: Treasure Bag'); + this.add('-message', `${source.name} dug through its Treasure Bag and found a Reviver Seed!`); + source.m.seedActive = true; + break; + } + source.m.bag = [...source.m.bag, currentItem]; + } + delete source.m.cycledTreasureBag; + }, + onDamage(damage, pokemon, source, effect) { + if (damage >= pokemon.hp && pokemon.m.seedActive) { + if (!pokemon.m.reviverSeedTriggered) { + // Can't set hp to 0 because it causes visual bugs + pokemon.hp = 1; + this.add('-damage', pokemon, pokemon.getHealth, '[silent]'); + this.add('-activate', pokemon, 'ability: Treasure Bag'); + this.add('-message', `${pokemon.name} dug through its Treasure Bag and found a Reviver Seed!`); + pokemon.m.reviverSeedTriggered = true; + pokemon.hp = Math.floor(pokemon.maxhp / 2); + this.add('-heal', pokemon, pokemon.getHealth, '[silent]'); + this.add('-message', `${pokemon.name} was revived!`); + return 0; + } else { + this.add('-activate', pokemon, 'ability: Treasure Bag'); + this.add('-message', `${pokemon.name} was revived!`); + this.add('-message', `...thought it was the right one...`); + this.add('-message', `...looking closer, this is...`); + this.add('-message', `Not a Reviver Seed, but a Reviser Seed!`); + this.add(`c:|${getName('yeet dab xd')}|An "s"?`); + this.add('-message', `that wasn't a "v", but an "s"!`); + this.add('-message', `yeet dab xd burst into spontaneous laughter and fainted!`); + return damage; + } + } + }, + }, + }, + + // yuki + partyup: { + shortDesc: "On switch-in, this Pokemon's ability is replaced with a random teammate's ability.", + name: "Party Up", + onStart(target) { + const abilities = target.side.pokemon.map(x => x.getAbility()).filter(x => !x.flags['notrace']); + if (!abilities.length) return; + this.add('-ability', target, 'Party Up'); + target.setAbility(this.sample(abilities), target); + this.add('-ability', target, target.getAbility().name); + }, + flags: {notrace: 1}, + }, + + // YveltalNL + heightadvantage: { + shortDesc: "If this Pokemon's height is more than that of the foe, -1 to foe's Attack/Sp. Atk.", + name: "Height Advantage", + onStart(pokemon) { + let activated = false; + for (const target of pokemon.adjacentFoes()) { + if (!activated) { + this.add('-ability', pokemon, 'Height Advantage', 'boost'); + activated = true; + } + if (target.volatiles['substitute']) { + this.add('-immune', target); + } else { + if (this.dex.species.get(pokemon.species).heightm > this.dex.species.get(target.species).heightm) { + this.boost({atk: -1, spa: -1}, target, pokemon, null, true); + } + } + } + }, + flags: {}, + }, + + // za + troll: { + shortDesc: "Using moves that can flinch makes user move first in their priority bracket.", + name: "Troll", + onFractionalPriority(priority, pokemon, target, move) { + if (move?.secondaries?.some(m => m.volatileStatus === 'flinch')) { + this.add('-activate', pokemon, 'ability: Troll'); + return 0.1; + } + }, + }, + + // Zarel + tempochange: { + shortDesc: "Switches Meloetta's forme between Aria and Pirouette at the end of each turn.", + name: "Tempo Change", + onResidualOrder: 29, + onResidual(pokemon) { + if (pokemon.species.baseSpecies !== 'Meloetta') return; + if (pokemon.species.name === 'Meloetta') { + changeSet(this, pokemon, ssbSets['Zarel-Pirouette'], true); + } else { + changeSet(this, pokemon, ssbSets['Zarel'], true); + } + }, + flags: {failroleplay: 1, noreceiver: 1, noentrain: 1, notrace: 1, failskillswap: 1, notransform: 1}, + }, + + // zoro + ninelives: { + shortDesc: "Twice per battle, this Pokemon will survive a lethal hit with 1 HP remaining, regardless of HP.", + name: "Nine Lives", + onTryHit(pokemon, target, move) { + if (move.ohko) { + this.add('-immune', pokemon, '[from] ability: Nine Lives'); + return null; + } + }, + onDamagePriority: -30, + onDamage(damage, target, source, effect) { + if (damage >= target.hp && effect?.effectType === 'Move' && !this.effectState.busted) { + this.add('-ability', target, 'Nine Lives'); + if (this.effectState.busted === 0) { + this.effectState.busted = 1; + } else { + this.effectState.busted = 0; + } + return target.hp - 1; + } + }, + // Yes, this looks very patchwork-y. declaring new persistent global variables seems to be a no-go here + // so i repurposed one which should likely not affect anything else - have tested with clerica/zoro on both sides + // and their disguise/sturdy state is unaffected by modifying anything here. but let wg know if this breaks stuff. + flags: {breakable: 1}, + }, + + // Modified abilities + baddreams: { + inherit: true, + onResidual(pokemon) { + if (!pokemon.hp) return; + for (const target of pokemon.foes()) { + if (target.status === 'slp' || target.hasAbility(['comatose', 'mensiscage'])) { + this.damage(target.baseMaxhp / 8, target, pokemon); + } + } + }, + }, + deltastream: { + inherit: true, + onAnySetWeather(target, source, weather) { + if (this.field.getWeather().id === 'deltastream' && !STRONG_WEATHERS.includes(weather.id)) return false; + }, + }, + desolateland: { + inherit: true, + onAnySetWeather(target, source, weather) { + if (this.field.getWeather().id === 'desolateland' && !STRONG_WEATHERS.includes(weather.id)) return false; + }, + }, + dryskin: { + inherit: true, + onWeather(target, source, effect) { + if (target.hasItem('utilityumbrella')) return; + if (effect.id === 'raindance' || effect.id === 'primordialsea' || effect.id === 'stormsurge') { + this.heal(target.baseMaxhp / 8); + } else if (effect.id === 'sunnyday' || effect.id === 'desolateland') { + this.damage(target.baseMaxhp / 8, target, target); + } + }, + }, + forecast: { + inherit: true, + onWeatherChange(pokemon) { + if (pokemon.baseSpecies.baseSpecies !== 'Castform' || pokemon.transformed) return; + let forme = null; + switch (pokemon.effectiveWeather()) { + case 'sunnyday': + case 'desolateland': + if (pokemon.species.id !== 'castformsunny') forme = 'Castform-Sunny'; + break; + case 'raindance': + case 'primordialsea': + case 'stormsurge': + if (pokemon.species.id !== 'castformrainy') forme = 'Castform-Rainy'; + break; + case 'hail': + case 'snow': + if (pokemon.species.id !== 'castformsnowy') forme = 'Castform-Snowy'; + break; + default: + if (pokemon.species.id !== 'castform') forme = 'Castform'; + break; + } + if (pokemon.isActive && forme) { + pokemon.formeChange(forme, this.effect, false, '0', '[msg]'); + } + }, + }, + hydration: { + inherit: true, + onResidual(pokemon) { + if (pokemon.status && ['raindance', 'primordialsea', 'stormsurge'].includes(pokemon.effectiveWeather())) { + this.debug('hydration'); + this.add('-activate', pokemon, 'ability: Hydration'); + pokemon.cureStatus(); + } + }, + }, + neutralizinggas: { + inherit: true, + onPreStart(pokemon) { + this.add('-ability', pokemon, 'Neutralizing Gas'); + pokemon.abilityState.ending = false; + for (const target of this.getAllActive()) { + if (target.hasItem('Ability Shield')) { + this.add('-block', target, 'item: Ability Shield'); + continue; + } + // Can't suppress a Tatsugiri inside of Dondozo already + if (target.volatiles['commanding']) { + continue; + } + if (target.illusion) { + this.singleEvent('End', this.dex.abilities.get('Illusion'), target.abilityState, target, pokemon, 'neutralizinggas'); + } + if (target.volatiles['slowstart']) { + delete target.volatiles['slowstart']; + this.add('-end', target, 'Slow Start', '[silent]'); + } + if (STRONG_WEATHERS.includes(target.getAbility().id)) { + this.singleEvent('End', this.dex.abilities.get(target.getAbility().id), target.abilityState, target, pokemon, 'neutralizinggas'); + } + } + }, + }, + overcoat: { + inherit: true, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'deserteddunes' || type === 'hail' || type === 'powder') return false; + }, + }, + primordialsea: { + inherit: true, + onAnySetWeather(target, source, weather) { + if (this.field.getWeather().id === 'primordialsea' && !STRONG_WEATHERS.includes(weather.id)) return false; + }, + }, + raindish: { + inherit: true, + onWeather(target, source, effect) { + if (target.hasItem('utilityumbrella')) return; + if (effect.id === 'raindance' || effect.id === 'primordialsea' || effect.id === 'stormsurge') { + this.heal(target.baseMaxhp / 16); + } + }, + }, + sandforce: { + inherit: true, + onBasePower(basePower, attacker, defender, move) { + if (this.field.isWeather(['sandstorm', 'deserteddunes'])) { + if (move.type === 'Rock' || move.type === 'Ground' || move.type === 'Steel') { + this.debug('Sand Force boost'); + return this.chainModify([5325, 4096]); + } + } + }, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'deserteddunes') return false; + }, + }, + sandrush: { + inherit: true, + onModifySpe(spe, pokemon) { + if (this.field.isWeather(['sandstorm', 'deserteddunes'])) { + return this.chainModify(2); + } + }, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'deserteddunes') return false; + }, + }, + sandveil: { + inherit: true, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'deserteddunes') return false; + }, + onModifyAccuracy(accuracy) { + if (typeof accuracy !== 'number') return; + if (this.field.isWeather(['sandstorm', 'deserteddunes'])) { + this.debug('Sand Veil - decreasing accuracy'); + return this.chainModify([3277, 4096]); + } + }, + }, + swiftswim: { + inherit: true, + onModifySpe(spe, pokemon) { + if (['raindance', 'primordialsea', 'stormsurge'].includes(pokemon.effectiveWeather())) { + return this.chainModify(2); + } + }, + }, +}; diff --git a/data/mods/gen9ssb/conditions.ts b/data/mods/gen9ssb/conditions.ts new file mode 100644 index 000000000000..320f09d04b61 --- /dev/null +++ b/data/mods/gen9ssb/conditions.ts @@ -0,0 +1,3339 @@ +import {ssbSets} from "./random-teams"; +import {changeSet, getName, enemyStaff} from './scripts'; +import {ModdedConditionData} from "../../../sim/dex-conditions"; + +export const Conditions: {[id: IDEntry]: ModdedConditionData & {innateName?: string}} = { + /* + // Example: + userid: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Username')}|Switch In Message`); + }, + onSwitchOut() { + this.add(`c:|${getName('Username')}|Switch Out Message`); + }, + onFaint() { + this.add(`c:|${getName('Username')}|Faint Message`); + }, + // Innate effects go here + }, + IMPORTANT: Obtain the username from getName + */ + // Please keep statuses organized alphabetically based on staff member name! + aegii: { + noCopy: true, + onStart() { + this.add(`c:|${getName('aegii')}|**It is now aegii's turn to beat you down.**`); + }, + onSwitchOut(pokemon) { + if (this.randomChance(2, 100)) { + this.add(`c:|${getName('aegii')}|...right, I was saying in SSB4 to "stan loona", but this has to be changed now that we've found out that the company managing loona is shady af. I would like to amend that to "stan the individual members of loona" (or if you want, you can choose to stan any other group of your choice!)`); + } else { + pokemon.side.addSlotCondition(pokemon, 'aegiibpmsg'); + } + }, + onFaint() { + this.add(`c:|${getName('aegii')}|nerd`); + }, + }, + aegiibpmsg: { + onSwap(target, source) { + if (!target.fainted) { + this.add(`c:|${getName('aegii')}|~yes ${target.name}`); + target.side.removeSlotCondition(target, 'aegiibpmsg'); + } + }, + }, + aelita: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Aelita')}|You know, no one appreciates the work that goes into making weapons and towers.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Aelita')}|Gotta use this tower to change sectors, BRB.`); + }, + onFaint() { + this.add(`c:|${getName('Aelita')}|Well, I hope the Lyoko Warriors are at least well equipped.`); + }, + }, + aethernum: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Aethernum')}|We are the Shadow Garden, and your time has come. Prepare yourself`); + }, + onSwitchOut() { + this.add(`c:|${getName('Aethernum')}|Better play the side character for now, i'll wait a more favorable opportunity`); + }, + onFaint() { + this.add(`c:|${getName('Aethernum')}|There are important things that i have to attend, i don't have any more time for you`); + }, + }, + akir: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Akir')}|hey whats up`); + }, + onSwitchOut() { + this.add(`c:|${getName('Akir')}|ok c ya`); + }, + onFaint() { + this.add(`c:|${getName('Akir')}|oh woops`); + }, + }, + alex: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Alex')}|meow`); + }, + onSwitchOut() { + this.add(`c:|${getName('Alex')}|meow meow`); + }, + onFaint() { + this.add(`c:|${getName('Alex')}|:3`); + }, + }, + alexander489: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Alexander489')}|gm`); + }, + onSwitchOut() { + this.add(`c:|${getName('Alexander489')}|gn`); + }, + onFaint() { + this.add(`c:|${getName('Alexander489')}|kek`); + }, + }, + apple: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Apple')}|An Apple a day keeps the Opplesite mon away!`); + }, + onSwitchOut() { + this.add(`c:|${getName('Apple')}|Going to the teachers desk!`); + }, + onFaint() { + this.add(`c:|${getName('Apple')}|I crumbled like an Apple Pie :(`); + }, + }, + appletunalamode: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Appletun a la Mode')}|QuQ`); + }, + onFaint() { + this.add(`c:|${getName('Appletun a la Mode')}|QnQ`); + }, + innateName: "Ripen", + shortDesc: "When this Pokemon eats certain Berries, the effects are doubled.", + onTryHeal(damage, target, source, effect) { + if (!effect || target.illusion) return; + if (effect.name === 'Berry Juice' || effect.name === 'Leftovers') { + this.add('-activate', target, 'ability: Ripen'); + } + if ((effect as Item).isBerry) return this.chainModify(2); + }, + onChangeBoost(boost, target, source, effect) { + if (target.illusion) return; + if (effect && (effect as Item).isBerry) { + let b: BoostID; + for (b in boost) { + boost[b]! *= 2; + } + } + }, + onSourceModifyDamagePriority: -1, + onSourceModifyDamage(damage, source, target, move) { + if (target.illusion) return; + if (target.abilityState.berryWeaken) { + target.abilityState.berryWeaken = false; + return this.chainModify(0.5); + } + }, + onTryEatItemPriority: -1, + onTryEatItem(item, pokemon) { + if (pokemon.illusion) return; + this.add('-activate', pokemon, 'ability: Ripen'); + }, + onEatItem(item, pokemon) { + if (pokemon.illusion) return; + const weakenBerries = [ + 'Babiri Berry', 'Charti Berry', 'Chilan Berry', 'Chople Berry', 'Coba Berry', 'Colbur Berry', 'Haban Berry', 'Kasib Berry', 'Kebia Berry', 'Occa Berry', 'Passho Berry', 'Payapa Berry', 'Rindo Berry', 'Roseli Berry', 'Shuca Berry', 'Tanga Berry', 'Wacan Berry', 'Yache Berry', + ]; + // Record if the pokemon ate a berry to resist the attack + pokemon.abilityState.berryWeaken = weakenBerries.includes(item.name); + }, + }, + aqrator: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('aQrator')}|Let me tell you my sTori.`); + if (this.toID(enemyStaff(pokemon)) === 'warriorgallade') { + this.add(`c:|${getName('aQrator')}|Hey Zeiol, how's your brother?`); + } + }, + onSwitchOut() { + this.add(`c:|${getName('aQrator')}|A few Water Guns and Force Palms later, Tori and Riolu- Wait where are you going?`); + }, + onFaint() { + this.add(`c:|${getName('aQrator')}|But I only got to part 3...`); + }, + }, + aquagtothepast: { + noCopy: true, + onStart() { + this.add(`c:|${getName('A Quag To The Past')}|I'm coming out of my cage and I've been doing just fine`); + }, + onSwitchOut() { + this.add(`c:|${getName('A Quag To The Past')}|so true`); + }, + onFaint() { + const lines = [ + 'Anger he felt', + 'Before Showderp he knelt', + 'A moderator so quiet', + 'Inventing his riot', + '[[]]', + 'Onward he gazed', + 'As his cattle had grazed', + 'Wolves on the hills', + 'Mom paying his bills', + '[[]]', + 'His keyboard he used', + 'His power: abused', + '"Silent as me"', + '"You must be"', + '[[]]', + 'The chatroom is dead', + 'Yet quickly he fled', + 'Before retaliation, he made fast', + 'A Quag To The Past', + ]; + for (const line of lines) { + this.add(`c:|${getName('A Quag To The Past')}|${line}`); + } + }, + }, + archas: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Archas')}|We'll get over this barrier together!`); + }, + onSwitchOut() { + this.add(`c:|${getName('Archas')}|Stand your ground, everyone!`); + }, + onFaint() { + this.add(`c:|${getName('Archas')}|What would Grandfather... think of me now...`); + }, + }, + arcueid: { + noCopy: true, + onStart() { + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠛⠛⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⠋⠈⠀⠀⠀⠀⠐⠺⣖⢄⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⡏⢀⡆⠀⠀⠀⢋⣭⣽⡚⢮⣲⠆⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⡇⡼⠀⠀⠀⠀⠈⠻⣅⣨⠇⠈⠀⠰⣀⣀⣀⡀⠀⢸⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⡇⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣟⢷⣶⠶⣃⢀⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠀⠈⠓⠚⢸⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⢀⡠⠀⡄⣀⠀⠀⠀⢻⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠐⠉⠀⠀⠙⠉⠀⠠⡶⣸⠁⠀⣠⣿⣿⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣦⡆⠀⠐⠒⠢⢤⣀⡰⠁⠇⠈⠘⢶⣿⣿⣿⣿⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠠⣄⣉⣙⡉⠓⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿`); + this.add('-message', `⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣀⣀⠀⣀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿`); + }, + onFaint() { + this.add(`c:|${getName('Arcueid')}|change da world,,, my final message. Goodb ye`); + }, + }, + arsenal: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Arsenal')}|Show me your true form!`); + }, + onSwitchOut() { + this.add(`c:|${getName('Arsenal')}|I should write something`); + }, + onFaint() { + this.add(`c:|${getName('Arsenal')}|Dont forget this feeling !`); + }, + }, + artemis: { + noCopy: true, + onFoeAfterFaint(target, source, effect) { + this.add('message', `${source.name} was banned from Pok\u00e9mon Showdown!`); + }, + }, + arya: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Arya')}|NORMAL SUMMON DEEP SEA DIVA`); + }, + onSwitchOut() { + this.add(`c:|${getName('Arya')}|Oleeeee too good for this fight!`); + }, + onFaint() { + this.add(`c:|${getName('Arya')}|Nevermind, happy tuesday and let's pray for the 33.`); + }, + onAfterMega() { + this.add(`c:|${getName('Arya')}|W-whats this? Oh, come on...!!!`); + }, + }, + audiino: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Audiino')}|anyone up for othello, scrabble, connect 4, splendor, codenames, catan, actually that's a long enough list already so don't actually take me up on all of those simultaneously`); + }, + onSwitchOut() { + this.add(`c:|${getName('Audiino')}|im only thinking, ill be back...`); + }, + onFaint() { + this.add(`c:|${getName('Audiino')}|ggs, with that i take my leave`); + }, + }, + autumn: { + noCopy: true, + onFaint() { + this.add(`c:|${getName('autumn')}|lost ggs`); + }, + }, + ausma: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('ausma')}|what it Do what it Be`); + switch (this.toID(enemyStaff(pokemon))) { + case 'umuwo': + this.add(`c:|${getName('ausma')}|it's.... chu......`); + break; + case 'spoo': + this.add(`c:|${getName('ausma')}|LOOL SPOOP?!`); + break; + case 'rumia': + this.add(`c:|${getName('ausma')}|oh no... it's poomia....`); + break; + case 'lily': + this.add(`c:|${getName('ausma')}|togedemaru`); + break; + case 'lumari': + this.add(`c:|${getName('ausma')}|we should watch the next ladybug ep after this tbh`); + break; + } + }, + onSwitchOut() { + const phrases = [ + 'vr shift', + 'commission', + 'bio lab', + 'lab report', + 'council post', + 'anti-tera blast propaganda post', + ]; + this.add(`c:|${getName('ausma')}|oh shit i forgot to do this ${this.sample(phrases)} hang on`); + }, + onFaint() { + this.add(`c:|${getName('ausma')}|God has punished me for my hubris.`); + }, + onTryMove(source, target, move) { + this.effectState.foeMemory = target.name; + }, + onFoeSwitchOut(pokemon) { + if (this.effectState.foeMemory && pokemon.species.name === "Fennekin") { + changeSet(this, pokemon, ssbSets[this.effectState.foeMemory]); + } + }, + onFoeFaint(target, source, effect) { + if (this.effectState.foeMemory && target.species.name === "Fennekin") { + changeSet(this, target, ssbSets[this.effectState.foeMemory]); + } + }, + }, + auzbat: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('AuzBat')}|I'm Batman`); + }, + onSwitchOut() { + this.add(`c:|${getName('AuzBat')}|I believe what doesn't kill you simply makes you, stranger`); + }, + onFaint() { + this.add(`c:|${getName('AuzBat')}|All I have are negative thoughts.`); + }, + }, + avarice: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('avarice')}|so what's tea`); + }, + onSwitchOut() { + this.add(`c:|${getName('avarice')}|l8r h8r`); + }, + onFaint() { + this.add(`c:|${getName('avarice')}|gg ig`); + }, + }, + beowulf: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Beowulf')}|Fear the bee`); + }, + onSwitchOut() { + this.add(`c:|${getName('Beowulf')}|/me buzzes`); + }, + onFaint() { + this.add(`c:|${getName('Beowulf')}|/me buzzes`); + }, + }, + berry: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('berry')}|berry`); + }, + onSwitchOut() { + this.add(`c:|${getName('berry')}|rock`); + }, + onFaint() { + this.add(`c:|${getName('berry')}|and all I got was this lousy t-shirt`); + }, + }, + bert122: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Bert122')}|*cackling laughter and gem crunching noises*`); + }, + onSwitchOut() { + this.add(`c:|${getName('Bert122')}|Off to collect more shiny rocks! Hehehe!`); + }, + onFaint() { + this.add(`c:|${getName('Bert122')}|Ack, all my gems are gone!`); + }, + }, + billo: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Billo')}|So where did you say you got this mon from again?`); + }, + onFaint(pokemon) { + if (pokemon.species.name === 'Solgaleo' && !pokemon.getVolatile('perishsong')) { + this.add(`c:|${getName('Billo')}|Bruh this is the worst hack I've ever seen...`); + } else if (pokemon.species.name === 'Solgaleo') { + this.add(`c:|${getName('Billo')}|@Room Owner this user needs blacklisting but I have to head to bed.`); + } else if (pokemon.species.name === 'Lunala') { + this.add(`c:|${getName('Billo')}|Someone take me to the hozzy please.`); + } + }, + innateName: "Sheer Force/Reckless", + shortDesc: "Lunala: Sheer Force. Solgaleo: Reckless", + onModifyMove(move, pokemon) { + if (!pokemon.illusion && pokemon.species.name === 'Lunala') { + if (move.secondaries) { + delete move.secondaries; + // Technically not a secondary effect, but it is negated + delete move.self; + if (move.id === 'clangoroussoulblaze') delete move.selfBoost; + // Actual negation of `AfterMoveSecondary` effects implemented in scripts.js + move.hasSheerForce = true; + } + } + }, + onBasePowerPriority: 21, + onBasePower(basePower, pokemon, target, move) { + if (move.hasSheerForce) return this.chainModify([5325, 4096]); + if (!pokemon.illusion && pokemon.species.name === 'Solgaleo') { + if (move.recoil || move.hasCrashDamage) { + this.debug('Reckless boost'); + return this.chainModify([4915, 4096]); + } + } + }, + + }, + blazeofvictory: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('blazeofvictory')}|blazeofvictorys in ur puter, askin u trivia questinz`); + }, + onSwitchOut() { + this.add(`c:|${getName('blazeofvictory')}|I'll let you have bp... for now...`); + }, + onFaint() { + this.add(`c:|${getName('blazeofvictory')}|[ bleps at you sadly :( ]`); + }, + }, + blitzuser: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Blitz')}|Hey guys, did you know that Chi-Yu is a Water/Dark-type Pokémon introduced in Generation IX? Chi-Yu is number 1004 in the National Dex, and a member of the Undiscovered egg group. Chi-Yu has no evolutionary relatives. Chi-Yu has a base stat total of 570, as do all the Treasures of Ruin, and it has the ability Blitz of Ruin. Chi-Yu learns various strong moves, such as Fiery Wrath, Lava Plume, and Nasty Plot. Chi-Yu is a blue Pokémon with a fish-like build, weighing in at 10.8 pounds and standing 1'04" feet tall. Chi-Yu's design is inspired by goldfish, flames, and beads. Chi-Yu controls flames burning at over 5,400 degrees Fahrenheit, and casually swims through the sea of lava it creates by melting rock and sand, according to various Pokedex entries. Chi-Yu is the only Treasure of Ruin in Generation IX that was quickbanned from Smogon's OverUsed tier. Many Trainers like Chi-Yu for its design, which mixes cool and cute, as well as its good stats and movepool.`); + this.add('-start', pokemon, 'typechange', 'Water/Dark', '[silent]'); + }, + onSwitchOut() { + this.add(`c:|${getName('Blitz')}|Splashyyy!`); + }, + onFaint() { + this.add(`c:|${getName('Blitz')}|https://www.youtube.com/watch?v=lPGipwoJiOM`); + }, + }, + breadey: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Breadey')}|I loeuf you <3`); + }, + // onSwitchOut implemented in ability instead + onFaint() { + this.add(`c:|${getName('Breadey')}|Oh, ma vie... c'est 'pitable'...`); + }, + onFoeFaint(target, source, effect) { + if (source === this.effectState.target && effect?.name === 'Painful Exit') { + this.add(`c:|${getName('Breadey')}|Ashes to ashes, crust to crust.`); + } else { + this.add(`c:|${getName('Breadey')}|Ope, someone's swallowing fishes.`); + } + }, + innateName: "Well-Baked Body", + shortDesc: "This Pokemon's Defense is raised 2 stages if hit by a Fire move; Fire immunity.", + onTryHit(target, source, move) { + if (!target.illusion && target !== source && move.type === 'Fire') { + if (!this.boost({def: 2})) { + this.add('-immune', target, '[from] ability: Well-Baked Body'); + } + return null; + } + }, + }, + cake: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Cake')}|randem batels`); + if (pokemon.illusion) return; + this.effectState.moves = [ + pokemon.moveSlots[0].id, + pokemon.moveSlots[1].id, + pokemon.moveSlots[2].id, + ]; + }, + onSwitchOut(pokemon) { + this.add(`c:|${getName('Cake')}|hustle is a good ability`); + if (!this.effectState.moves) return; + for (const [i, moveid] of this.effectState.moves.entries()) { + const replacement = this.dex.moves.get(moveid); + const replacementMove = { + move: replacement.name, + id: replacement.id, + pp: replacement.pp, + maxpp: replacement.pp, + target: replacement.target, + disabled: false, + used: false, + }; + pokemon.moveSlots[i] = replacementMove; + pokemon.baseMoveSlots[i] = replacementMove; + } + // very notable infinite pp problem here, especially with the set changes... + // consider nerfing custom move pp and removing switch-out moveset restoration. + }, + onFaint() { + this.add(`c:|${getName('Cake')}|livid washed is a nerd`); + }, + }, + chaos: { + noCopy: true, + }, + chloe: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Chloe')}|hey!`); + }, + onSwitchOut() { + this.add(`c:|${getName('Chloe')}|cya soon o/`); + }, + onFaint() { + this.add(`c:|${getName('Chloe')}|ouch :(`); + }, + }, + chris: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Chris')}|Sun is down, freezing cold`); + }, + onSwitchOut() { + this.add(`c:|${getName('Chris')}|She thought it was the ocean, it's just the pool!`); + }, + onFaint() { + this.add(`c:|${getName('Chris')}|Had me out like a light (like a light)`); + }, + }, + ciran: { + noCopy: true, + onStart() { + this.add(`c:|${getName('ciran')}|Nobody expects the Spanish Inquisition!`); + }, + onSwitchOut() { + this.add(`c:|${getName('ciran')}|Had enough, eh? Just a flesh wound!`); + }, + onFaint() { + this.add(`c:|${getName('ciran')}|Alright then, we'll call it a draw.`); + }, + }, + clefableuser: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Clefable')}|LF: A win`); + }, + onSwitchOut() { + this.add(`c:|${getName('Clefable')}|Catch you on the flip side!`); + }, + onFaint() { + this.add(`c:|${getName('Clefable')}|I needed a VISA to be in Paldea, Wasn't even worth it. Bloody Brexit.`); + }, + innateName: "Oblivious", + desc: "This Pokemon cannot be infatuated or taunted. Gaining this Ability while infatuated or taunted cures it. This Pokemon is immune to the effect of the Intimidate Ability.", + shortDesc: "This Pokemon cannot be infatuated or taunted. Immune to Intimidate.", + onUpdate(pokemon) { + if (pokemon.illusion) return; + if (pokemon.volatiles['attract']) { + this.add('-activate', pokemon, 'ability: Oblivious'); + pokemon.removeVolatile('attract'); + this.add('-end', pokemon, 'move: Attract', '[from] ability: Oblivious'); + } + if (pokemon.volatiles['taunt']) { + this.add('-activate', pokemon, 'ability: Oblivious'); + pokemon.removeVolatile('taunt'); + // Taunt's volatile already sends the -end message when removed + } + }, + onImmunity(type, pokemon) { + if (pokemon.illusion) return; + if (type === 'attract') return false; + }, + onTryHit(pokemon, target, move) { + if (pokemon.illusion) return; + if (move.id === 'attract' || move.id === 'captivate' || move.id === 'taunt') { + this.add('-immune', pokemon, '[from] ability: Oblivious'); + return null; + } + }, + onTryBoost(boost, target, source, effect) { + if (target.illusion) return; + if (effect.name === 'Intimidate' && boost.atk) { + delete boost.atk; + this.add('-fail', target, 'unboost', 'Attack', '[from] ability: Oblivious', '[of] ' + target); + } + }, + }, + clementine: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Clementine')}|Je suis peut-être con comme une table`); + }, + onSwitchOut(pokemon) { + if (pokemon.volatiles['flipped']) { + pokemon.removeVolatile('flipped'); + changeSet(this, pokemon, ssbSets['Clementine']); + this.add(`c:|${getName('Clementine')}|┬──┬◡ノ(° -°ノ)`); + } else { + this.add(`c:|${getName('Clementine')}|I fucking love air-conditioning.`); + } + }, + onFoeSwitchIn(pokemon) { + if ((pokemon.illusion || pokemon).name === 'Kennedy') { + this.add(`c:|${getName('Clementine')}|yikes`); + } + }, + onFaint() { + this.add(`c:|${getName('Clementine')}|ofc`); + }, + }, + clerica: { + noCopy: true, + onStart() { + this.add(`c:|${getName('clerica')}|gm`); + }, + onSwitchOut() { + this.add(`c:|${getName('clerica')}|gn`); + }, + onFaint() { + this.add(`c:|${getName('clerica')}|unfort`); + }, + }, + clouds: { + onStart() { + this.add(`c:|${getName('Clouds')}|i can feel it coming in the air tonight...`); + }, + onSwitchOut() { + this.add(`c:|${getName('Clouds')}|oh lord`); + }, + onFaint() { + this.add(`c:|${getName('Clouds')}|and i've been waiting for this moment for all my life`); + }, + }, + coolcodename: { + onStart(pokemon) { + this.add(`c:|${getName('Coolcodename')}|LFGI ${pokemon.side.name}`); + }, + onSwitchOut() { + this.add(`c:|${getName('Coolcodename')}|right, i forgot i have a skill issue`); + }, + onFaint() { + this.add(`c:|${getName('Coolcodename')}|mb LOL`); + }, + }, + corthius: { + onStart(pokemon) { + this.add(`c:|${getName('Corthius')}|*exessively drums on its chest*`); + }, + onSwitchOut() { + this.add(`c:|${getName('Corthius')}|I left my oven on, brb.`); + }, + onFaint() { + this.add(`c:|${getName('Corthius')}|Maurice, I can't "move it move it" anymore.`); + }, + }, + dawnofartemis: { + noCopy: true, + onStart(pokemon) { + const god = (pokemon.species.id === 'necrozmaultra') ? 'Ares' : 'Artemis'; + this.add(`c:|${getName('Dawn of Artemis')}|Time for you to witness the power of ${god}!`); + }, + onSwitchOut() { + this.add(`c:|${getName('Dawn of Artemis')}|You'll witness it again later.`); + }, + onFaint() { + this.add(`c:|${getName('Dawn of Artemis')}|Sad.`); + }, + }, + dawoblefet: { + noCopy: true, + onStart() { + this.add(`c:|${getName('DaWoblefet')}|What's going on guys? This is DaWoblefet, and welcome to Mechanics Monday.`); + }, + onSwitchOut() { + this.add(`c:|${getName('DaWoblefet')}|Until next time, have a good one.`); + }, + onFaint() { + this.add(`c:|${getName('DaWoblefet')}|mished`); + }, + }, + deftinwolf: { + noCopy: true, + onStart() { + this.add(`c:|${getName('deftinwolf')}|Run, little rabbit.`); + }, + onSwitchOut() { + this.add(`c:|${getName('deftinwolf')}|I'll give you a moment to say your prayers.`); + }, + onFaint() { + this.add(`c:|${getName('deftinwolf')}|Death is only the beginning.`); + }, + }, + dhelmiseuser: { + noCopy: true, + onStart(pokemon) { + let quotes: string[] = []; + if (!pokemon.m.sentOutBefore) { + quotes = [ + `Humanity is shackled. I will find the key.`, + `Humanity is shackled. I hold the key.`, + `Our minds are shackled. Submission is the key.`, + ]; + pokemon.m.sentOutBefore = true; + } else { + quotes = [ + `If it must be done, let it be done quickly.`, + `Let us keep our questionable choices to a minimum.`, + `On with it.`, + `I'll see this matter resolved.`, + `Knowledge is its own reward.`, + `More field research? Grand...`, + `Much lies in store. Let us see to it.`, + `Push your limits. Nothing breaks that I cannot mend.`, + `Your work is a hypothesis. Prove it.`, + `Let us go on to the end.`, + `Victory grows more certain by the minute.`, + `Victory is within our grasp.`, + `I have come not to sve, but to __empower__.`, + `Now our true work begins.`, + `My soul hungers.`, + `Do not fight your true nature.`, + ]; + if (pokemon.side.pokemonLeft > pokemon.side.foe.pokemonLeft) { + quotes.push(`We hold the advantage. Shall we keep it?`); + } else if (pokemon.side.pokemonLeft === pokemon.side.foe.pokemonLeft) { + quotes.push( + `If we're hopingto win, now's the time.`, + `It all comes down to this.`, + `Prepare yourselves for the decisive battle.`, + `This fight is all that remains.` + ); + } else { + quotes.push( + `Another setback and all will be lost.`, + `One more mistake, and we fail.`, + `We cannot tolerate any more missteps.`, + `We must reverse the course that we are on.` + ); + } + } + this.add(`c:|${getName('dhelmise')}|${this.sample(quotes)}`); + }, + onSwitchOut() { + const quotes = [ + `Fading.`, + `Like shadow.`, + `Obscured.`, + `Of the Void.`, + `Dissolution.`, + `Into darkness.`, + `Unknowable.`, + ]; + this.add(`c:|${getName('dhelmise')}|${this.sample(quotes)}`); + }, + onFaint() { + this.add(`c:|${getName('dhelmise')}|Revive me.`); + }, + }, + diananicole: { + noCopy: true, + onStart() { + this.add(`c:|${getName('DianaNicole')}|Ready for Initiative? Cause I'm gonna Clickity Clackity, Roll to Attackity!`); + }, + onSwitchOut() { + this.add(`c:|${getName('DianaNicole')}|Dropping out of Initiative`); + }, + onFaint() { + this.add(`c:|${getName('DianaNicole')}|Guess I didn't roll high enough`); + }, + }, + easyonthehills: { + noCopy: true, + onStart() { + this.add(`c:|${getName('EasyOnTheHills')}|Yo`); + }, + onSwitchOut() { + this.add(`c:|${getName('EasyOnTheHills')}|Would you rather have unlimited bacon, but no more video games, or would you rather have games, unlimited games, but no more games.`); + }, + onFaint() { + this.add(`c:|${getName('EasyOnTheHills')}|__loud Dorito bag crinkling noises__`); + }, + }, + elliot: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Elliot')}|Anyone fancy a brew?`); + }, + onFaint(pokemon) { + if (pokemon.getVolatile('boiled')) { + this.add(`c:|${getName('Elliot')}|Also try Vimbos!`); + } else { + this.add(`c:|${getName('Elliot')}|We've ran out of teabags :(`); + } + }, + }, + elly: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Elly')}|any`); + }, + onSwitchOut() { + this.add(`c:|${getName('Elly')}|ok bye`); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Elly')}|that wasn't very nice, ${enemyStaff(pokemon)}.`); + }, + }, + emboar02: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Emboar02')}|I'm the best fire-fighting starter!`); + }, + onSwitchOut() { + this.add(`c:|${getName('Emboar02')}|This is boaring...`); + }, + onFaint() { + this.add(`c:|${getName('Emboar02')}|Too much recoil D:`); + }, + }, + fame: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Fame')}|:hi:`); + }, + onSwitchOut() { + this.add(`c:|${getName('Fame')}|:bye:`); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Fame')}|NOOOOOOOOOOOO! I'M A STAR! PLEASE, IM A STAR!`); + }, + }, + felucia: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Felucia')}|Good morning gamers! Just here to fix a few things`); + }, + onSwitchOut(pokemon) { + this.add(`c:|${getName('Felucia')}|I have bots to make and chatrooms to manage...`); + if (pokemon.illusion) return; + pokemon.heal(pokemon.baseMaxhp / 3); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Felucia')}|Okay that's enough work for today`); + }, + innateName: "Regenerator", + shortDesc: "Regenerator + innate +1 Speed.", + onModifySpe(spe, pokemon) { + if (pokemon.illusion) return; + return this.chainModify(1.5); + }, + }, + froggeh: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Froggeh')}|Hello. Froggeh the dad here. And welcome to The Happy Place!`); + switch (this.toID(enemyStaff(pokemon))) { + case 'valerian': + this.add(`c:|${getName('Froggeh')}|See that frog, she is green, diggin the froggy queen!`); + break; + case 'queeni': + this.add(`c:|${getName('Froggeh')}|Imagine if you will- a frog with a smol crown on her head.`); + break; + } + }, + onSwitchOut() { + this.add(`c:|${getName('Froggeh')}|It's not easy being dad.`); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Froggeh')}|URG! I've croaked...`); + }, + }, + frostyicelad: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Frostyicelad')}|why am I a Qwilfish`); + }, + onSwitchOut() { + this.add(`c:|${getName('Frostyicelad')}|time to bring in the Ice types`); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Frostyicelad')}|Why am I not lapras`); + }, + }, + frozoid: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Frozoid')}|Let's do this`); + }, + onSwitchOut() { + this.add(`c:|${getName('Frozoid')}|Wait let me finish what i was doi-`); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Frozoid')}|Man.`); + }, + }, + ganjafin: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Ganjafin')}|How's it going guys, Ganjafin here`); + }, + onSwitchOut() { + this.add(`c:|${getName('Ganjafin')}|And I'll see you guys, in the next one`); + }, + onFaint() { + this.add(`c:|${getName('Ganjafin')}|I knew I'd die before Silksong came out`); + }, + }, + hasteinky: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Haste Inky')}|Wanna see whatever weird thing I can do?`); + }, + onSwitchOut() { + this.add(`c:|${getName('Haste Inky')}|Good call! I wasn't liking this situation either.`); + }, + onFaint() { + this.add(`c:|${getName('Haste Inky')}| I am NOT feeling full of beans rn…`); + }, + }, + havi: { + noCopy: true, + onStart() { + this.add(`c:|${getName('havi')}|kos, or some say kosm`); + }, + onSwitchOut() { + this.add(`c:|${getName('havi')}|grant us eyes, grant us eyes`); + }, + onFaint() { + this.add(`c:|${getName('havi')}|the nightmare swirls and churns unending n_n`); + }, + }, + hecate: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Hecate')}|git pull ps hecate`); + }, + onSwitchOut() { + this.add(`c:|${getName('Hecate')}|git switch`); + }, + onFaint() { + this.add(`c:|${getName('Hecate')}|git checkout --detach HEAD && git commit -m "war crimes"`); + }, + }, + hizo: { + noCopy: true, + onStart() { + const tier = this.sample(['Partners in Crime', 'Sketchmons', 'OMMs', 'Triples']); + this.add(`c:|${getName('HiZo')}|Why am I needed here, I was busy playing ${tier} with friends`); + this.add(`c:|${getName('HiZo')}|Did I break something again`); + }, + onSwitchOut() { + this.add(`c:|${getName('HiZo')}|This isn't my fault this time I swear`); + this.add(`c:|${getName('HiZo')}|Ok maybe it is but that doesn't mean you should blame me automatically`); + }, + onFaint() { + this.add(`c:|${getName('HiZo')}|What did I do to deserve this`); + this.add(`c:|${getName('HiZo')}|Actually on second thought don't answer that question`); + }, + }, + hoeenhero: { + noCopy: true, + onStart() { + this.add(`c:|${getName('HoeenHero')}|Ok what did Hippopotas break now?`); + }, + onSwitchOut() { + this.add(`c:|${getName('HoeenHero')}|TODO think of a switch out message later.`); + }, + onFaint() { + this.add(`c:|${getName('HoeenHero')}|I should of reprogrammed the RNG to be in my favor too...`); + }, + }, + hsy: { + noCopy: true, + onStart() { + this.add(`c:|${getName('hsy')}|BANJO!`); + }, + onSwitchOut() { + this.add(`c:|${getName('hsy')}|LEMME SCRAP COWARD`); + }, + onFaint() { + this.add(`c:|${getName('hsy')}|https://www.youtube.com/watch?v=g104OJIh9hs`); + }, + }, + hydrostaticsuser: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Hydrostatics')}|Straighten your backs and get some hydration :]`); + this.add('-start', pokemon, 'typechange', 'Electric/Water', '[silent]'); + }, + onSwitchOut() { + this.add(`c:|${getName('Hydrostatics')}|Brb getting some water :d`); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Hydrostatics')}|Seems like you were more hydrated than me :c`); + if (pokemon.side.pokemon.some(mon => mon.name === 'PartMan')) { + // Custom message for PartMan + // Yes, this reveals that the enemy has PartMan + this.add(`c:|${getName('PartMan')}|Hydro here have a tiara`); + } + }, + }, + imperial: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Imperial')}|gmcat`); + }, + onSwitchOut(pokemon) { + const foe = pokemon.side.foes()[0]?.name; + if (foe) { + this.add(`c:|${getName('Imperial')}|ofc u have ${foe}. bad mu as always...`); + } + }, + onFaint() { + this.add(`c:|${getName('Imperial')}|crazy rng`); + }, + }, + inthehills: { + noCopy: true, + onStart() { + this.add(`c:|${getName('in the hills')}|in (the hills)`); + }, + onSwitchOut() { + this.add(`c:|${getName('in the hills')}|i'll be out back`); + }, + onFaint() { + this.add(`c:|${getName('in the hills')}|im starting to feel kinda stupid can i please leave`); + }, + }, + ironwater: { + noCopy: true, + onStart() { + this.add(`c:|${getName('ironwater')}|Jirachi Ban Hammer!`); + }, + onSwitchOut() { + this.add(`c:|${getName('ironwater')}|Let me grab a bigger hammer`); + }, + onFaint() { + this.add(`c:|${getName('ironwater')}|I'll ban you in the next game...`); + }, + }, + irpachuza: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Irpachuza!')}|Hf. I never say gl because I sincerely don't want my oppo to have better luck than me in rands n.n`); + }, + onSwitchOut() { + this.add(`c:|${getName('Irpachuza!')}|bye and HOOP HOOP n.n`); + }, + onFaint(pokemon) { + this.add(`c:|${getName('Irpachuza!')}|how DARE YOU ${pokemon.side.foe.name} ;-; n.n`); + }, + innateName: "Prankster", + desc: "This Pokemon's non-damaging moves have their priority increased by 1. Opposing Dark-type Pokemon are immune to these moves, and any move called by these moves, if the resulting user of the move has this Ability.", + shortDesc: "This Pokemon's Status moves have priority raised by 1, but Dark types are immune.", + onModifyPriority(priority, pokemon, target, move) { + if (pokemon.illusion) return; + if (move?.category === 'Status') { + move.pranksterBoosted = true; + return priority + 1; + } + }, + }, + isaiah: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Isaiah')}|Who dyin'?`); + }, + onSwitchOut() { + this.add(`c:|${getName('Isaiah')}|Misclick`); + }, + onFaint() { + this.add(`c:|${getName('Isaiah')}|Bruh, nice cteam`); + }, + }, + j0rdy004: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('J0rdy004 ♫')}|Get-get-get-get, got-got-got-got`); + }, + onSwitchOut() { + this.add(`c:|${getName('J0rdy004 ♫')}|I've seen footage, I stay noided`); + }, + onFaint() { + this.add(`c:|${getName('J0rdy004 ♫')}|So softly a supergod dies...`); + }, + }, + kalalokki: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Kalalokki')}|FLAMIGOOOO!`); + }, + onFaint() { + this.add(`c:|${getName('Kalalokki')}|Flamigoooo...`); + }, + innateName: "Tinted Lens", + shortDesc: "Resisted moves hit with double power.", + onModifyDamage(damage, source, target, move) { + if (source.illusion) return; + if (target.getMoveHitData(move).typeMod < 0) { + this.debug('Tinted Lens boost'); + return this.chainModify(2); + } + }, + }, + karthik: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Karthik')}|>>> const staraptor = battle.player('${pokemon.side.name}').active[0]`); + }, + onSwitchOut(pokemon) { + this.add(`c:|${getName('Karthik')}|>>> staraptor.heal(staraptor.baseMaxhp / 3)`); + if (!pokemon.illusion) pokemon.heal(pokemon.baseMaxhp / 3); + }, + onFaint() { + this.add(`c:|${getName('Karthik')}|>>> staraptor.faint()`); + }, + innateName: "Regenerator", + shortDesc: "This Pokemon restores 1/3 of its maximum HP, rounded down, when it switches out.", + }, + ken: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('ken')}|gm.`); + }, + onSwitchOut() { + this.add(`c:|${getName('ken')}|whoopsies`); + }, + onFaint() { + this.add(`c:|${getName('ken')}|have a good day!`); + }, + }, + kenn: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('kenn')}|*old man grumbling*`); + }, + onSwitchOut() { + this.add(`c:|${getName('kenn')}|Ope`); + }, + onFaint() { + this.add(`c:|${getName('kenn')}|I'm too old for this shi-`); + }, + }, + kennedy: { + noCopy: true, + innateName: "Battle Bond", + shortDesc: "After KOing a Pokemon: becomes Cinderace-Gmax.", + onStart(target, source, effect) { + const message = this.sample(['Justice for the 97', 'up the reds']); + this.add(`c:|${getName('Kennedy')}|${message}`); + if (source && source.name === 'Clementine') { + if (source.volatiles['flipped']) { + source.removeVolatile('flipped'); + changeSet(this, source, ssbSets['Clementine']); + this.add(`c:|${getName('Kennedy')}|┬──┬◡ノ(° -°ノ)`); + } else { + source.addVolatile('flipped', target, this.effect); + changeSet(this, source, ssbSets['Clementine-Flipped']); + this.add(`c:|${getName('Kennedy')}|(╯°o°)╯︵ ┻━┻`); + } + } + if (target.species.id === 'cinderacegmax' && !target.terastallized) { + this.add('-start', target, 'typechange', target.getTypes(true, true).join('/'), '[silent]'); + } + }, + onSwitchOut() { + this.add(`c:|${getName('Kennedy')}|Stream some Taylor Swift whilst I'm gone!`); // TODO replace + }, + onFoeSwitchIn(pokemon) { + switch ((pokemon.illusion || pokemon).name) { + case 'Clementine': + this.add(`c:|${getName('Kennedy')}|Not the Fr*nch....`); + break; + case 'dhelmise': + this.add(`c:|${getName('Kennedy')}|fuck that`); + this.effectState.target.faint(); + this.add('message', 'Kennedy fainted mysteriously.....'); + break; + } + }, + onFaint() { + this.add(`c:|${getName('Kennedy')}|FUCK OFF, REALLY?????`); + }, + onSourceAfterFaint(length, target, source, effect) { + const message = this.sample(['ALLEZZZZZ', 'VAMOSSSSS', 'FORZAAAAA', 'LET\'S GOOOOO']); + this.add(`c:|${getName('Kennedy')}|${message}`); + if (source.species.id === 'cinderace' && this.field.pseudoWeather['anfieldatmosphere'] && + !source.transformed && effect?.effectType === 'Move' && source.hp && source.side.foePokemonLeft()) { + this.add('-activate', source, 'ability: Battle Bond'); + source.formeChange('Cinderace-Gmax', this.effect, true); + source.baseMaxhp = Math.floor(Math.floor( + 2 * source.species.baseStats['hp'] + source.set.ivs['hp'] + Math.floor(source.set.evs['hp'] / 4) + 100 + ) * source.level / 100 + 10); + const newMaxHP = source.volatiles['dynamax'] ? (2 * source.baseMaxhp) : source.baseMaxhp; + source.hp = newMaxHP - (source.maxhp - source.hp); + source.maxhp = newMaxHP; + this.add('-heal', source, source.getHealth, '[silent]'); + } + }, + onUpdate(pokemon) { + if (pokemon.volatiles['attract']) { + this.add(`c:|${getName('Kennedy')}|NAAA FUCK OFF, I'd rather be dead`); + pokemon.faint(); + this.add('message', 'Kennedy would have been infatuated but fainted mysteriously'); + } + }, + onSourceCriticalHit(pokemon, source, move) { + this.add(`c:|${getName('Kennedy')}|LOOOOOOL ffs`); + }, + onFlinch(pokemon) { + if (pokemon.illusion) return; + this.add(`c:|${getName('Kennedy')}|LOOOOOOL ffs`); + }, + }, + keys: { + noCopy: true, + onStart() { + this.add(`c:|${getName('keys')}|It's Prime Time`); + }, + onSwitchOut() { + this.add(`c:|${getName('keys')}|Don't worry, I'll be back`); + }, + onFaint() { + this.add(`c:|${getName('keys')}|...`); + }, + }, + kingbaruk: { + noCopy: true, + onStart() { + this.add(`c:|${getName('kingbaruk')}|Pressure pushing down on me`); + }, + onSwitchOut() { + this.add(`c:|${getName('kingbaruk')}|Pressing down on you`); + }, + onFaint() { + this.add(`c:|${getName('kingbaruk')}|Why can't we give love that one more chance?`); + }, + innateName: "Multiscale", + onSourceModifyDamage(damage, source, target, move) { + if (target.illusion) return; + if (target.hp >= target.maxhp) { + this.debug('Multiscale weaken'); + return this.chainModify(0.5); + } + }, + }, + kiwi: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Kiwi')}|Hey, are you a goldfish or a shark? I guess it depends on how quickly you get flushed down`); + }, + onSwitchOut() { + this.add(`c:|${getName('Kiwi')}|You're lively, but I'm not done peeling off your scales`); + }, + onFaint() { + this.add(`c:|${getName('Kiwi')}|Too late, the manifestation has completed. You'll be reduced to a fillet one day unexpectedly...`); + }, + }, + klmondo: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Klmondo')}|Gm`); + }, + onSwitchOut() { + this.add(`c:|${getName('Klmondo')}|I need a snack`); + }, + onFaint() { + this.add(`c:|${getName('Klmondo')}|It's Klmondover`); + }, + }, + kolohe: { + noCopy: true, + onStart(pokemon) { + const foe = enemyStaff(pokemon); + if (foe === 'Rumia') { + this.add(`c:|${getName('kolohe ✮彡')}|You come around here often?`); + } else if (foe === 'spoo') { + this.add(`c:|${getName('kolohe ✮彡')}|Big bald head spotted...`); + } else if (foe === 'ausma') { + this.add(`c:|${getName('kolohe ✮彡')}|The weekly Smogon furry convention starts NOW`); + } else if (foe === 'Peary') { + this.add(`c:|${getName('kolohe ✮彡')}|Any arters or culturers?`); + } else { + this.add(`c:|${getName('kolohe ✮彡')}|Hey, howzit!`); + } + }, + onSwitchOut() { + this.add(`c:|${getName('kolohe ✮彡')}|Wait, I just got started!`); + }, + onFaint() { + this.add(`c:|${getName('kolohe ✮彡')}|change da world... my final message. goodbye`); + }, + }, + kry: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Kry')}|:3`); + }, + onSwitchOut() { + this.add(`c:|${getName('Kry')}|PartMan is a nerd`); + }, + onFaint() { + this.add(`c:|${getName('Kry')}|Guys whatever you do don't say Farigiraf backwards`); + }, + }, + lasen: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Lasen')}|That's a Hungarian yield sign, easy Budapest guess.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Lasen')}|Will give QC 2/2 after implementation.`); + }, + onFaint() { + this.add(`c:|${getName('Lasen')}|I'm out and NOT about...`); + }, + }, + letsgoshuckles: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Lets go shuckles')}|Behold the magnificence of Shuckle.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Lets go shuckles')}|Wise men don't fight battles they cannot win.`); + }, + onFaint() { + this.add(`c:|${getName('Lets go shuckles')}|He who lives by the Shuckle shall die by the Shuckle.`); + }, + }, + lily: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Lily')}|buying gf`); + }, + onSwitchOut() { + this.add(`c:|${getName('Lily')}|accidentally burnt the shrimps`); + }, + onFaint() { + this.add(`c:|${getName('Lily')}|oh dear, i am dead`); + }, + }, + loethalion: { + noCopy: true, + onStart(pokemon) { + const foe = enemyStaff(pokemon); + if (foe === 'WigglyTree') { + this.add(`c:|${getName('Loethalion')}|No, I'm not drawing Dialga on a bike again`); + } else if (foe === 'Swiffix') { + this.add(`c:|${getName('Loethalion')}|Oh hi Stinky`); + } else if (foe === 'Mex') { + this.add(`c:|${getName('Loethalion')}|In spain without the A`); + } else if (foe === 'Billo') { + this.add(`c:|${getName('Loethalion')}|So your saying I can't ban myself?`); + } else if (foe === 'Clefable') { + this.add(`c:|${getName('Loethalion')}|But what if I hack a tiny bit?`); + } else if (foe === 'Lunell') { + this.add(`c:|${getName('Loethalion')}|We bean posting?`); + } else if (foe === 'Ciran') { + this.add(`c:|${getName('Loethalion')}|So I have another great piplup drawing idea :>`); + } else { + this.add(`c:|${getName('Loethalion')}| ...from Zero`); + } + }, + onSourceAfterFaint(length, target, source, effect) { + if (enemyStaff(source) === 'Swiffix') { + this.add(`c:|${getName('Loethalion')}|It's still pfp...`); + } + }, + onSwitchOut(pokemon) { + this.add(`c:|${getName('Loethalion')}| I don't remember why I'm even here __walks out the room__`); + }, + onFaint() { + this.add(`c:|${getName('Loethalion')}|__Wheezing laugh__`); + }, + }, + lumari: { + noCopy: true, + // quotes added later + onSwitchOut(pokemon) { + if (pokemon.illusion) return; + pokemon.heal(pokemon.baseMaxhp / 3); + }, + innateName: "Regenerator", + shortDesc: "User will heal 33% of their max HP on switch-out.", + }, + lunell: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Lunell')}|vapowo`); + }, + onSwitchOut() { + this.add(`c:|${getName('Lunell')}|brb looking for bean images, don't disturb`); + }, + onFaint() { + this.add(`c:|${getName('Lunell')}|*sad vaporeon noises*`); + }, + }, + lyna: { + noCopy: true, + onStart(pokemon) { + let phrase = ''; + switch (this.toID(enemyStaff(pokemon))) { + case 'alex': + case 'nya': + this.add(`c:|${getName('Lyna 氷')}|Oh, a cat <3`); + break; + case 'r8': + case 'clementine': + case 'teclis': + case 'swiffix': + case 'ironwater': + phrase = 'slt'; + break; + default: + phrase = 'Hey <3'; + break; + } + this.add(`c:|${getName('Lyna 氷')}|${phrase}`); + }, + onSwitchOut(pokemon) { + let phrase = ''; + switch (this.toID(enemyStaff(pokemon))) { + case 'alex': + case 'nya': + phrase = 'You\'re so cute, I can\'t hit you...'; + break; + case 'r8': + case 'clementine': + case 'teclis': + case 'swiffix': + case 'ironwater': + phrase = '**Tournoi Hebdo sur <> !**'; + break; + default: + phrase = 'Nvm I\'m too busy for that, cya!'; + break; + } + this.add(`c:|${getName('Lyna 氷')}|${phrase}`); + }, + onFaint(pokemon) { + let phrase = ''; + switch (this.toID(enemyStaff(pokemon))) { + case 'alex': + case 'nya': + phrase = 'You\'re definitely too cute...'; + break; + case 'r8': + phrase = 'ok mais on dit pain au chocolat.'; + break; + case 'clementine': + case 'teclis': + case 'swiffix': + case 'ironwater': + phrase = 't\'as de la chance que je sois sympa..'; + break; + default: + phrase = 'The flames were too frozen...'; + break; + } + this.add(`c:|${getName('Lyna 氷')}|${phrase}`); + }, + }, + maia: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Maia')}|gm ${enemyStaff(pokemon)}`); + }, + onSwitchOut() { + this.add(`c:|${getName('Maia')}|(cat)ch you later`); + }, + onFaint() { + this.add(`c:|${getName('Maia')}|gn`); + }, + }, + marillvibes: { + noCopy: true, + onStart() { + this.add(`c:|${getName('marillvibes ♫')}|Is that a __rat__?`); + }, + onSwitchOut() { + this.add(`c:|${getName('marillvibes ♫')}|Here for a good time, not a long time!`); + }, + onFaint() { + this.add(`c:|${getName('marillvibes ♫')}|The vibes are off... :(`); + }, + }, + maroon: { + noCopy: true, + onStart() { + this.add(`c:|${getName('maroon')}|It's not my fault you're, like, in love with me!`); + }, + onSwitchOut() { + this.add(`c:|${getName('maroon')}|That's why her hair is so big. It's full of secrets.`); + }, + onFoeSwitchOut() { + this.add(`c:|${getName('maroon')}|You wanna do something fun? You wanna go to Taco Bell?`); + }, + onFaint() { + this.add(`c:|${getName('maroon')}|Gretchen, I'm sorry I laughed at you that time you got diarrhea at Barnes & Noble. And I'm sorry for telling everyone about it. And I'm sorry for repeating it now.`); + }, + }, + mathy: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Mathy')}|Nooooo i broke tera again`); + }, + onSwitchOut(pokemon) { + this.add(`c:|${getName('Mathy')}|whatever i'll make ${enemyStaff(pokemon)} fix it`); + }, + onFaint() { + this.add(`c:|${getName('Mathy')}|thanks for making my job harder :/`); + }, + }, + merritty: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Merritty')}|Deadline.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Merritty')}|If you believe there's been a mistake, please let me know ASAP.`); + }, + onFaint() { + this.add(`c:|${getName('Merritty')}|congratulations to our winner`); + }, + innateName: "Tourban", + shortDesc: "Takes half damage from Ghost moves, deals double damge to Ghost-types.", + onSourceModifyDamage(damage, source, target, move) { + if (source.illusion) return; + if (move.type === 'Ghost') { + this.debug('Tourban Ghost weaken'); + return this.chainModify(0.5); + } + }, + onModifyDamage(damage, source, target, move) { + if (source.illusion) return; + if (target?.hasType('Ghost')) { + this.debug('Tourban boost'); + return this.chainModify(2); + } + }, + }, + meteordash: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Meteordash')}|hi`); + }, + onSwitchOut() { + this.add(`c:|${getName('Meteordash')}|oh`); + }, + onFaint() { + this.add(`c:|${getName('Meteordash')}|man.`); + }, + }, + mex: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Mex')}|Time to make the donuts.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Mex')}|Brb, there's a Dialga raid.`); + }, + onFaint() { + this.add(`c:|${getName('Mex')}|pain.`); + }, + }, + miojo: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Miojo')}|They see me rollin'`); + }, + onSwitchOut() { + this.add(`c:|${getName('Miojo')}|They hatin'`); + }, + onFaint() { + this.add(`c:|${getName('Miojo')}|Em caso de investigação policial, eu declaro que não tenho envolvimento com este grupo e não sei como estou no mesmo, provavelmente fui inserido por terceiros, declaro que estou disposto a colaborar com as investigações e estou disposto a me apresentar a depoimento se necessário`); + }, + }, + monkey: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Monkey')}|Hmm, monke`); + }, + onSwitchOut() { + this.add(`c:|${getName('Monkey')}|Don't mind me I was just monkeying around`); + }, + onFaint() { + this.add(`c:|${getName('Monkey')}|I'm a seeker too. But my dreams aren't like yours. I can't help thinking that somewhere in the universe there has to be something better than man. Has to be.`); + }, + }, + mypearl: { + noCopy: true, + onStart() { + this.add(`c:|${getName('MyPearl')}|sim, estou no ssb, like se amaste`); + }, + onSwitchOut() { + this.add(`c:|${getName('MyPearl')}|nossa, ela é tãaaao regina george`); + }, + onFaint() { + this.add(`c:|${getName('MyPearl')}|ta permitido isso?`); + }, + }, + neko: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Neko')}|Gmeow :3`); + }, + onSwitchOut() { + this.add(`c:|${getName('Neko')}|Meow go poof :3c`); + }, + onFaint() { + this.add(`c:|${getName('Neko')}|Chien-Meow is cute when it doesn't scratch the ground, between it and Flutter Mane its dangerous to go out and ladder. You have been warned ;w;`); + }, + }, + ney: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Ney')}|Hi I'm Ney. I love mischiefs.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Ney')}|Unloading more tricks.`); + }, + onFaint() { + this.add(`c:|${getName('Ney')}|How long am I banned for?`); + }, + }, + notater517: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Notater517')}|OwO What's This?`); + }, + onSwitchOut() { + this.add(`c:|${getName('Notater517')}|brb, dealing with mobile connection, here's a song to listen to before I return: https://www.youtube.com/watch?v=dQw4w9WgXcQ`); + }, + onFaint() { + this.add(`c:|${getName('Notater517')}|ngl that was pretty sus ඩ`); + }, + }, + nya: { + noCopy: true, + onStart() { + this.add(`c:|${getName('nya~ ❤')}|:3`); + }, + onSwitchOut() { + this.add(`c:|${getName('nya~ ❤')}|nya~`); + }, + onFaint() { + this.add(`c:|${getName('nya~ ❤')}|>~<`); + }, + innateName: "Fickle Beam", + shortDesc: "This Pokemon's moves have a 30% chance to be doubled in power.", + onBasePower(basePower, attacker, defender, move) { + if (attacker.illusion) return; + if (this.randomChance(3, 10)) { + let allOutAnim = 'Draco Meteor'; + switch (move.id) { + case 'voltswitch': allOutAnim = 'Thunder'; break; + case 'freezedry': allOutAnim = 'Glacial Lance'; break; + case 'triattack': allOutAnim = 'Blood Moon'; break; + case '3': allOutAnim = 'Fleur Cannon'; break; + } + this.attrLastMove('[anim] ' + allOutAnim); + this.add('-activate', attacker, 'move: Fickle Beam'); + return this.chainModify(2); + } + }, + }, + pants: { + noCopy: true, + onStart() { + this.add(`c:|${getName('pants')}|hell yeah, bro`); + }, + onSwitchOut() { + this.add(`c:|${getName('pants')}|cya, dude :)`); + }, + onFaint() { + this.add(`c:|${getName('pants')}|peace, bud`); + }, + }, + partman: { + noCopy: true, + onStart(pokemon) { + let message; + switch (this.toID(enemyStaff(pokemon))) { + case 'partman': + message = 'Hii Q - oh, it\'s just me.'; + break; + case 'arsenal': + message = 'Do I count as a gunner?'; + break; + case 'aqrator': + message = 'Speaking of cafes - this Pokemon is so popular, it has an entire cafe dedicated to it in the Pokemon world! Alongside the cafe, there\'s also stuff like a bus tour where you can sit one-on-one with the Pokemon and admire its beauty.'; + break; + case 'beowulf': + message = 'BEE'; + break; + case 'breadey': + message = 'BREADBOWL'; + break; + case 'clerica': + message = 'SMELY HIIII'; + break; + case 'computerwizard8800': + message = 'CWIZ SLEEP'; + break; + case 'hydrostatics': + message = 'Here to bully Hydro'; + break; + case 'kennedy': + message = 'Down the reds!'; + break; + case 'kry': + this.add(`c:|${getName('PartMan')}|%r 14 // @Kry`); + this.add(`c:|${getName('Ice Kyubs')}|Roll: 14`); + message = null; + break; + case 'mex': + message = 'Probopass moment'; + break; + case 'monkey': + message = 'Remember to smile!'; + break; + case 'notater517': + message = 'E-excuse me s-senpai >///<'; + break; + case 'pissog': + message = 'Ma ciaomi queste noci'; + break; + case 'pyro': + message = 'Fight me you boiled potato'; + break; + case 'rsb': + message = '/me hugs'; + break; + case 'siegfried': + message = 'Is Sieg baked or boiled?'; + break; + case 'softflex': + message = '/me softly flexes'; + break; + case 'sulo': + message = '...Sulo\'s AFK again, aren\'t they?'; + break; + case 'trace': + this.add('-message', `PartMan's Neutralizing Gas filled the area! (but not really)`); + message = null; + break; + case 'warriorgallade': + message = 'Berry nice to meet you!'; + break; + case 'za': + message = '/me shitposts'; + break; + case 'zalm': + message = '<(:O)00000>'; + break; + default: + message = 'Hiii QT :3'; + } + if (message) this.add(`c:|${getName('PartMan')}|${message}`); + }, + onSwitchOut() { + this.add(`c:|${getName('PartMan')}|Deez nuts`); + }, + onFaint() { + this.add(`c:|${getName('PartMan')}|Okay weeb`); + }, + onFoeSwitchIn(pokemon) { + if (pokemon.name === 'Hydrostatics') { + this.add(`c:|${getName('PartMan')}|LUAAAAA!`); + this.add(`c:|${getName('PartMan')}|/me pats`); + } + }, + onFoeFaint(target, source, effect) { + // Message happens when PartMan is on the enemy team + // Handled in Hydro's conditions + if (target.name === 'Hydrostatics') return; + this.add(`c:|${getName('PartMan')}|Skill issue`); + }, + onHit(target, source, move) { + if (!move.num) { + this.add(`c:|${getName('PartMan')}|That's what she said!`); + } + }, + innateName: "Skill Issue", + shortDesc: "Any move that does damage equal to this Pokemon's max HP fails.", + // onDamagePriority: 1, + onDamage(damage, target, source, effect) { + if (target.illusion) return; + if (effect?.effectType === 'Move' && damage >= target.maxhp) { + this.add('-activate', target, 'ability: Skill Issue'); + this.add(`c:|${getName('PartMan')}|THAT'S WHAT SHE SAID!`); + return false; + } + }, + }, + pastorgigas: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Pastor Gigas')}|Turn back to God`); + }, + onSwitchOut() { + this.add(`c:|${getName('Pastor Gigas')}|I'll leave, but God stays forever`); + }, + onFaint() { + this.add(`c:|${getName('Pastor Gigas')}|I'm going to pray for you`); + }, + }, + peary: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Peary')}|This bout to grind yalls gears`); + }, + onSwitchOut() { + this.add(`c:|${getName('Peary')}|Did my Part, no Man`); + }, + onFaint() { + this.add(`c:|${getName('Peary')}|Blood all on my gears... damn`); + }, + }, + phoopes: { + noCopy: true, + innateName: 'Gen 1 Special Stat', + desc: 'SpA stat changes also change SpD and vice versa.', + // implemented in scripts + onStart() { + this.add(`c:|${getName('phoopes')}|phoopes! (There It Is)`); + }, + onSwitchOut() { + this.add(`c:|${getName('phoopes')}|phoopes! (There He Goes)`); + }, + onFaint() { + this.add(`c:|${getName('phoopes')}|Jynx! Knock on wood`); + }, + }, + pissog: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Pissog')}|Hi I'm Pissog ^^`); + }, + onSwitchOut() { + this.add(`c:|${getName('Pissog')}|^^ gossiP m'I iH`); + }, + onFaint() { + this.add(`c:|${getName('Pissog')}|Yes, there are two paths you can go by, but in the long run`); + }, + }, + pokemonvortex: { + noCopy: true, + onStart() { + this.add(`c:|${getName('pokemonvortex')}|i just like the bowtie`); + }, + onSwitchOut() { + this.add(`c:|${getName('pokemonvortex')}|ok`); + }, + onFaint() { + this.add(`c:|${getName('pokemonvortex')}|人不可貌相,海水不可斗量`); + }, + }, + princessautumn: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Princess Autumn')}|good meowning, here's why you're wrong.`); + }, + onSwitchOut(pokemon) { + this.add(`c:|${getName('Princess Autumn')}|good nyight, I'm always right.`); + if (pokemon.illusion || !pokemon.status) return; + this.add('-curestatus', pokemon, pokemon.status, '[from] ability: Natural Cure'); + pokemon.clearStatus(); + }, + onFaint() { + this.add(`c:|${getName('Princess Autumn')}|We let TPP cook too hard...`); + }, + innateName: "Natural Cure", + }, + ptoad: { + noCopy: true, + onStart() { + this.add(`c:|${getName('ptoad')}|/me enters the stage`); + }, + onSwitchOut() { + this.add(`c:|${getName('ptoad')}|Taking 5!`); + }, + onFaint() { + this.add(`c:|${getName('ptoad')}|Who told you you're allowed to rain on my parade?`); + }, + }, + pulseks: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Pulse_kS')}|Mid Skill, God Luck`); + }, + onSwitchOut() { + this.add(`c:|${getName('Pulse_kS')}|brb lemme run the numbers`); + }, + onFaint() { + this.add(`c:|${getName('Pulse_kS')}|If my model is accurate (it isn't)`); + }, + }, + pyro: { + noCopy: true, + onStart() { + this.add(`c:|${getName('PYRO')}|and I'm your host, the Supervillain`); + }, + onSwitchOut() { + this.add(`c:|${getName('PYRO')}|Operation: Lifesaver is in effect, as of right now`); + }, + onFaint() { + this.add(`c:|${getName('PYRO')}|Just remember ALL CAPS when you spell the man name...`); + }, + onSourceAfterFaint(length, target, source, effect) { + if (effect?.effectType === 'Move') { + if (effect.id === 'meatgrinder') { + this.add(`c:|${getName('PYRO')}|Tripping off the beat kinda, dripping off the meat grinder`); + return; + } + if (!source.m.msgPlayed) { + this.add(`c:|${getName('PYRO')}|This Villain was a ruthless mass conqueror, with aspirations to dominate the universe`); + source.m.msgPlayed = true; + } + } + }, + }, + quitequiet: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Quite Quiet')}|what are we even doing here`); + }, + onFaint() { + this.add(`c:|${getName('Quite Quiet')}|hm`); + }, + }, + quziel: { + noCopy: true, + onStart() { + this.add(`c:|${getName('quziel')}|Gaze`); + }, + onSwitchOut() { + this.add(`c:|${getName('quziel')}|See y-disconnects`); + }, + onFaint() { + this.add(`c:|${getName('quziel')}|I am become Tilt`); + }, + }, + r8: { + noCopy: true, + onStart() { + this.add(`c:|${getName('R8')}|!randcat`); + }, + onSwitchOut() { + this.add(`c:|${getName('R8')}|wow emoji`); + }, + onFaint() { + this.add(`c:|${getName('R8')}|Getting KOed won't prevent me from making propaganda: https://www.smogon.com/forums/forums/national-dex-other-tiers.738/`); + }, + }, + rainshaft: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Rainshaft')}|Hello ${pokemon.side.name} and ${pokemon.side.foe.name} :P`); + }, + onSwitchOut() { + this.add(`c:|${getName('Rainshaft')}|Hope you got lucky there...`); + }, + onFaint() { + this.add(`c:|${getName('Rainshaft')}|You weren't lucky enough, join <> for more practice XD`); + }, + }, + ransei: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Ransei')}|Heyo, I'm hosting a program known as Pokémon Lore Tutoring this generation and I was wondering if any of you guys would be interested in tutoring. Every generation of Pokémon lore is available for tutoring, however we are in need of tutors to start off with. If you are interested let me know. Oh yeah I'm also hosting a program known as OM Tutoring.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Ransei')}|A perfect world of Pokémon has everything balanced, whether it's truth and ideals, life and death, time and space, or the organisms of nature and the organisms of whom were genetically engineered. All Pokémon are welcomed as long as they help maintain this balance. Remember this. It's what Arceus always wanted.`); + }, + onFaint() { + this.add(`c:|${getName('Ransei')}|Well, at least I tried. ripsei.`); + }, + }, + returntomonkey: { + noCopy: true, + onStart() { + this.add(`c:|${getName('ReturnToMonkey')}|Where banana`); + }, + onSwitchOut() { + this.add(`c:|${getName('ReturnToMonkey')}|**Monkey Scream**`); + }, + onFaint() { + this.add(`c:|${getName('ReturnToMonkey')}|Reject the humanity...if you dare...`); + }, + }, + rissoux: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Rissoux')}|:squad:`); + }, + onFaint() { + this.add(`c:|${getName('Rissoux')}|Welcome to the Family`); + }, + }, + rsb: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('RSB')}|Time to take a bite out of crime!`); + const dog = (this.toID(enemyStaff(pokemon))); + if (dog === 'rsb' || dog === 'shiloh' || dog === 'valerian' || dog === 'breadey' || dog === 'yuki') { + this.add(`c:|${getName('RSB')}|DOGGO!`); + } + }, + onSwitchOut() { + this.add(`c:|${getName('RSB')}|Requesting backup!`); + }, + onFaint() { + this.add(`c:|${getName('RSB')}|Officer down.`); + }, + onBasePowerPriority: 19, + onBasePower(basePower, attacker, defender, move) { + if (!attacker.illusion && move.flags['bite']) { + return this.chainModify(1.5); + } + }, + onTryHit(target, source, move) { + if (!target.illusion && target !== source && move.type === 'Fire') { + move.accuracy = true; + if (!target.addVolatile('flashfire')) { + this.add('-immune', target, '[from] ability: Flash Fire'); + } + return null; + } + }, + onEnd(pokemon) { + pokemon.removeVolatile('flashfire'); + }, + innateName: "Flash Fire + Strong Jaw", + shortDesc: "Flash Fire + Strong Jaw.", + }, + rumia: { + noCopy: true, + onStart(pokemon) { + if (enemyStaff(pokemon) === 'kolohe') { + this.add(`c:|${getName('Rumia')}|OMG who could that be (⁠●⁠♡⁠∀⁠♡⁠)`); + } else { + this.add(`c:|${getName('Rumia')}|is the mon in front of me the edible kind?`); + } + }, + onSwitchOut(pokemon) { + if (enemyStaff(pokemon) === 'kolohe') { + this.add(`c:|${getName('Rumia')}|i cant bring myself to do this...`); + } else { + this.add(`c:|${getName('Rumia')}|brb ^_^`); + } + }, + onFaint(pokemon) { + if (enemyStaff(pokemon) === 'kolohe') { + this.add(`c:|${getName('Rumia')}|this is the best way to go out...`); + } else { + this.add(`c:|${getName('Rumia')}|is that sooooo...`); + } + }, + }, + scotteh: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Scotteh')}|\`\`Compilation completed successfully. Executing...\`\``); + }, + onSwitchOut() { + this.add(`c:|${getName('Scotteh')}|\`\`Execution temporarily paused.\`\``); + }, + onFaint() { + this.add(`c:|${getName('Scotteh')}|\`\`Segmentation fault (core dumped)\`\``); + }, + }, + sexymalasada: { + noCopy: true, + onStart(pokemon) { + switch (this.toID(enemyStaff(pokemon))) { + case 'wigglytree': + this.add(`c:|${getName('SexyMalasada')}|Hey Wiggles! I made pizza again! Wanna learn more RNG btw?`); + break; + case 'appletunalamode': + this.add(`c:|${getName('SexyMalasada')}|And now you must learn how to RNG with nothing but a sundial for a timer! __Trust me!__`); + break; + case 'loethalion': + this.add(`c:|${getName('SexyMalasada')}|For the hundredth time Loe, check. the. pins.`); + break; + case 'nicolic': + this.add(`c:|${getName('SexyMalasada')}|Hi Nic! Why you keep postponing learning old-gen RNG? q_q`); + break; + case 'swiffix': + this.add(`c:|${getName('SexyMalasada')}|....something smells in here`); + break; + case 'mex': + this.add(`c:|${getName('SexyMalasada')}|Today is the day you finally learn RNG Mex, deal with it!`); + break; + case 'clefable': + this.add(`c:|${getName('SexyMalasada')}|Oi! I'm not hacking, it's RNG!`); + break; + case 'billo': + this.add(`c:|${getName('SexyMalasada')}|Billo help! The tool isn't working again q_q`); + break; + default: + this.add(`c:|${getName('SexyMalasada')}|Hello! Do you have some time to talk about RNGesus and its awesome teachings: The Art of RNG abuse??`); + break; + } + }, + onSwitchOut(pokemon) { + switch (this.toID(enemyStaff(pokemon))) { + case 'loethalion': + this.add(`c:|${getName('SexyMalasada')}|fricking heck`); + break; + case 'swiffix': + this.add(`c:|${getName('SexyMalasada')}|Just shower already!`); + break; + case 'billo': + this.add(`c:|${getName('SexyMalasada')}|Fiiiine I'll read the wiki...`); + break; + default: + this.add(`c:|${getName('SexyMalasada')}|Crap! I missed my frame... Resetting... q_q`); + break; + } + }, + onFaint(pokemon) { + switch (this.toID(enemyStaff(pokemon))) { + case 'loethalion': + this.add(`c:|${getName('SexyMalasada')}|fricking heck`); + break; + case 'swiffix': + this.add(`c:|${getName('SexyMalasada')}|Just shower already!`); + break; + case 'billo': + this.add(`c:|${getName('SexyMalasada')}|Fiiiine I'll read the wiki...`); + break; + default: + this.add(`c:|${getName('SexyMalasada')}|Well then.. have fun soft-resetting for your shiny! >:( Cya on the flipside 🕶️`); + break; + } + }, + }, + sharpclaw: { + noCopy: true, + onStart(pokemon) { + if (pokemon.species.name === 'Sneasel') { + this.add(`c:|${getName('sharp_claw')}|Hi, I'm Tumble! hf :D`); + } else { + this.add(`c:|${getName('sharp_claw')}|Hi, I'm Rough! gl >:)`); + } + }, + onSwitchOut(pokemon) { + if (pokemon.species.name === 'Sneasel') { + this.add(`c:|${getName('sharp_claw')}|brb, getting my brother :3`); + if (pokemon.illusion) return; + changeSet(this, pokemon, ssbSets['sharp_claw-Rough']); + } else { + this.add(`c:|${getName('sharp_claw')}|brb, getting my sister c:`); + if (pokemon.illusion) return; + changeSet(this, pokemon, ssbSets['sharp_claw']); + } + }, + onFaint(pokemon) { + if (pokemon.species.name === 'Sneasel') { + this.add(`c:|${getName('sharp_claw')}|ur no fun ;~;`); + } else { + this.add(`c:|${getName('sharp_claw')}|ur no fun T_T`); + } + }, + innateName: "Rough and Tumble", + shortDesc: "Changes Sneasel forme on switch out.", + }, + siegfried: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Siegfried')}|You say goodbye and I say hello`); + }, + onSwitchOut() { + this.add(`c:|${getName('Siegfried')}|Oh, I get by with a little help from my friends.`); + }, + onFaint() { + this.add(`c:|${getName('Siegfried')}|Living is easy with eyes closed.`); + }, + }, + sificon: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Sificon~')}|gm (it's 4pm and I woke up just now)`); + }, + onSwitchOut() { + this.add(`c:|${getName('Sificon~')}|guess I'll go to bed (we all know that I won't)`); + }, + onFaint() { + this.add(`c:|${getName('Sificon~')}|oop`); + }, + }, + skies: { + noCopy: true, + onStart() { + this.add(`c:|${getName('skies')}|the baddest in the room, so tell em to make room... `); + }, + onSwitchOut() { + this.add(`c:|${getName('skies')}|u thought i was feelin u?`); + }, + onFaint() { + this.add(`c:|${getName('skies')}|what did i do? like?`); + }, + }, + snake: { + noCopy: true, + onStart() { + this.add(`c:|${getName('snake')}|CAP Concept: Pure Utility Pokemon`); + }, + onSwitchOut() { + this.add(`c:|${getName('snake')}|CAP is a community focused project that creates singular Pokemon through structured Smogon based discussion threads. We define a concept to build around and proceed through various stages to determine typing, ability, stats, and movepool to complement that concept. We also run stages to determine a CAP's art, name, Pokedex entry, and sprite, so even if you're not a competitive Pokemon person you can get involved. At the end of each process we implement each CAP here on Pokemon Showdown!, where they are made available with the rest of our creations in the CAP metagame, found under 'S/V Singles'.`); + }, + onFaint() { + this.add(`c:|${getName('snake')}|CAP does not accept personal creations. This refers to any idea for a Pokemon that already has predefined typing, stats, abilities, movepool, name, art, pokedex entries, weight, height, or even generic themes such as "rabbit" or "angry". These facets of a Pokemon are all decided through community discussion in CAP during the CAP process. If you think you have an idea for a Pokemon that does not define these features, you may have a concept. CAP bases our Pokemon around concepts that look to explore the mechanics behind Pokemon and we take open submissions whenever we start a new project. Examples of past concepts include Perfect Sketch User, Momentum, Trapping mechanics, delayed move user, and weather enabler.`); + }, + }, + softflex: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Soft Flex')}|*beep beep beep*`); + }, + onSwitchOut() { + this.add(`c:|${getName('Soft Flex')}|*whrrrr*`); + }, + }, + solaroslunaris: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Solaros & Lunaris')}|Get a taste of this!`); + }, + onSwitchOut() { + this.add(`c:|${getName('Solaros & Lunaris')}|Too hot to handle!`); + }, + }, + spiderz: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Spiderz')}|whats good gangy`); + }, + onSwitchOut() { + this.add(`c:|${getName('Spiderz')}|im moving DIFFERENT`); + }, + onFaint() { + this.add(`c:|${getName('Spiderz')}|fuck 12`); + }, + }, + spoo: { + noCopy: true, + onStart() { + this.add(`c:|${getName('spoo')}|hemogoblin`); + }, + onSwitchOut() { + this.add(`c:|${getName('spoo')}|danger`); + }, + onFaint() { + this.add(`c:|${getName('spoo')}|dies`); + }, + }, + steorra: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Steorra')}|BOO`); + }, + onSwitchOut() { + this.add(`c:|${getName('Steorra')}|Into the shadows I go`); + }, + onFaint() { + this.add(`c:|${getName('Steorra')}|I'm dead but not really (lol ghost)`); + }, + }, + struchni: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Struchni')}|~tt newgame`); + }, + onSwitchOut() { + this.add(`c:|${getName('Struchni')}|~tt endgame`); + }, + onFaint() { + this.add(`c:|${getName('Struchni')}|**selfveto**`); + }, + }, + sulo: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Sulo')}|everybody is so damn dramatic. me included.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Sulo')}|afk sorry guys brb`); + }, + onFaint() { + this.add(`c:|${getName('Sulo')}|Charon, take me home...`); + }, + }, + swiffix: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Swiffix')}|:uwupip:`); + }, + onSwitchOut() { + this.add(`c:|${getName('Swiffix')}|brb, gonna get some ketchup for my pizza`); + }, + onFaint() { + this.add(`c:|${getName('Swiffix')}|Remember: it's pp, not pfp!`); + }, + innateName: "Skill Link", + onModifyMove(move, pokemon, target) { + if (pokemon.illusion) return; + if (move.multihit && Array.isArray(move.multihit) && move.multihit.length) { + move.multihit = move.multihit[1]; + } + if (move.multiaccuracy) { + delete move.multiaccuracy; + } + }, + }, + syrinix: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Syrinix')}|You kept me like a secret but I kept you like an oath`); + }, + onSwitchOut() { + this.add(`c:|${getName('Syrinix')}|They don't think it be like it is, but it do`); + }, + onFaint() { + this.add(`c:|${getName('Syrinix')}|Aight Imma head out`); + }, + }, + teclis: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Teclis')}|Thanks for having me.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Teclis')}|Until next time!`); + }, + onFaint() { + this.add(`c:|${getName('Teclis')}|This was my last dance.`); + }, + }, + tenshi: { + noCopy: true, + onStart(pokemon) { + switch (this.toID(enemyStaff(pokemon))) { + case 'blitz': + this.add(`c:|${getName('Tenshi')}|le fishe`); + break; + case 'ut': + case 'clouds': + this.add(`c:|${getName('Tenshi')}|birbs cannot save u from SAND`); + break; + default: + this.add(`c:|${getName('Tenshi')}|he SLEUTHING`); + } + }, + onSwitchOut(pokemon) { + this.add(`c:|${getName('Tenshi')}|omg no SAND save him! :(`); + const replacementIndex = Math.max( + pokemon.moves.indexOf('pyroball'), + pokemon.moves.indexOf('aquatail'), + pokemon.moves.indexOf('tripleaxel'), + pokemon.moves.indexOf('stoneedge') + ); + if (replacementIndex < 0) { + return; + } + const replacement = this.dex.moves.get('dynamicpunch'); + const replacementMove = { + move: replacement.name, + id: replacement.id, + pp: replacement.pp, + maxpp: replacement.pp, + target: replacement.target, + disabled: false, + used: false, + }; + pokemon.moveSlots[replacementIndex] = replacementMove; + pokemon.baseMoveSlots[replacementIndex] = replacementMove; + }, + onFaint(pokemon) { + switch (this.toID(enemyStaff(pokemon))) { + case 'blitz': + this.add(`c:|${getName('Tenshi')}|YOU KILLED YOUR SON`); + break; + case 'ut': + this.add(`c:|${getName('Tenshi')}|worryrex`); + break; + case 'clouds': + this.add(`c:|${getName('Tenshi')}|SAND is no longer in the air tonight :(`); + break; + default: + this.add(`c:|${getName('Tenshi')}|Wait no that's illegal`); + } + }, + }, + tico: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Tico')}|oie`); + if (pokemon.illusion) return; + this.add('-ability', pokemon, 'Mold Breaker'); + }, + onSwitchOut() { + this.add(`c:|${getName('Tico')}|t+`); + }, + onFaint() { + this.add(`c:|${getName('Tico')}|It's been 3,000 years…`); + }, + onModifyMove(move, pokemon) { + if (pokemon.illusion) return; + move.ignoreAbility = true; + }, + innateName: "Mold Breaker", + }, + thejesucristoosama: { + noCopy: true, + onStart() { + this.add(`c:|${getName('TheJesucristoOsAma')}|In the name of the Father, the Son and the Holy Spirit. I bless you, Amen.`); + }, + onSwitchOut() { + this.add(`c:|${getName('TheJesucristoOsAma')}|Oh well, I think it's time to call my apostles.`); + }, + onFaint() { + this.add(`c:|${getName('TheJesucristoOsAma')}|And that's how I've died for the third time, I'll go to host a game at eventos.`); + }, + }, + traceuser: { + noCopy: true, + onStart() { + this.add(`c:|${getName('trace')}|I'm both the beginning and the end.`); + }, + onSwitchOut() { + this.add(`c:|${getName('trace')}|Why does the violence never end?`); + }, + onFaint() { + this.add(`c:|${getName('trace')}|How disappointingly short a dream lasts.`); + }, + }, + tuthur: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Tuthur')}|QUEUE !`); + }, + onSwitchOut() { + this.add(`c:|${getName('Tuthur')}|feur`); + }, + onFaint() { + this.add(`c:|${getName('Tuthur')}|this wouldn't have gone like this if we'd played kunc`); + }, + }, + twoofroses: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('Two of Roses')}|I'm here! I'm uhh- Yes! Also hi! Happy to be here.`); + this.singleEvent('WeatherChange', this.effect, this.effectState, pokemon); + this.singleEvent('TerrainChange', this.effect, this.effectState, pokemon); + }, + onSwitchOut() { + this.add(`c:|${getName('Two of Roses')}|Pfft! I prefer lurking anyway.`); + }, + onFaint() { + this.add(`c:|${getName('Two of Roses')}|It matters not how much we try but only that we try. For if the tides swell the dunes of a timeless existence, and our strength wanes in the coming unlight- And if we are to be as the forsaken namesakes before us, for the yesterday that never came and the tomorrow that is forever promised, know this; We dilly, so they do not dally...`); + }, + innateName: "Wonderer", + shortDesc: "This Pokemon's secondary type changes based on the active weather or terrain, monotype if neither.", + onWeatherChange(target, source, sourceEffect) { + const currentWeather = this.field.getWeather().id; + const currentTerrain = this.field.getTerrain().id; + let type; + if (!currentWeather && !target.hasType('Dark')) { + if (currentTerrain) { + this.singleEvent('TerrainChange', this.effect, this.effectState, target); + return; + } + type = 'Dark'; + } else if (currentWeather) { + if (['raindance', 'primordialsea'].includes(currentWeather) && !target.hasType('Water')) { + type = 'Water'; + } else if (['sunnyday', 'desolateland'].includes(currentWeather) && !target.hasType('Fire')) { + type = 'Fire'; + } else if (['sandstorm', 'deserteddunes'].includes(currentWeather) && !target.hasType('Rock')) { + type = 'Rock'; + } else if (['hail', 'snow'].includes(currentWeather) && !target.hasType('Ice')) { + type = 'Ice'; + } else { + // do nothing if it's not the 4 primary weathers...unless there are more? + } + } + if (type && !target.terastallized) { + target.addType(type); + this.add('-start', target, 'typeadd', type, '[from] ability: Wonderer'); + } + }, + onTerrainChange(target, source, sourceEffect) { + const currentWeather = this.field.getWeather().id; + const currentTerrain = this.field.getTerrain().id; + let type; + if (!currentTerrain && !target.hasType('Dark')) { + if (currentWeather) { + this.singleEvent('WeatherChange', this.effect, this.effectState, target); + return; + } + type = 'Dark'; + } else if (currentTerrain) { + if (currentTerrain === 'electricterrain') { + target.setType('Electric'); + type = ''; + } else if (currentTerrain === 'psychicterrain' && !target.hasType('Psychic')) { + type = 'Psychic'; + } else if (currentTerrain === 'grassyterrain' && !target.hasType('Grass')) { + type = 'Grass'; + } else if (currentTerrain === 'mistyterrain' && !target.hasType('Fairy')) { + type = 'Fairy'; + } else if (!target.hasType('Ghost')) { // custom terrains + type = 'Ghost'; + } + } + if (type && !target.terastallized) { + target.addType(type); + this.add('-start', target, 'typeadd', type, '[from] ability: Wonderer'); + } + }, + }, + ut: { + noCopy: true, + onStart() { + this.add(`c:|${getName('UT')}|__being this young is art, aquamarine__`); + }, + onSwitchOut() { + this.add(`c:|${getName('UT')}|__make sure nobody sees you leave__`); + }, + onFaint() { + this.add(`c:|${getName('UT')}|__swaying as the room burnded down__`); + }, + }, + valerian: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Valerian ✿ ♡')}|Lucario's shiny should've been red.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Valerian ✿ ♡')}|As a wise man once said, "I'll be back".`); + }, + onFaint() { + this.add(`c:|${getName('Valerian ✿ ♡')}|My name is based on a flower, NOT the movie!`); + }, + }, + venous: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Venous')}|bro the flute on stal is bonkers`); + }, + onSwitchOut() { + this.add(`c:|${getName('2013 hindi room')}|when i said tine wins i didnt mean now`); + this.add(`c:|${getName('Venous')}|dw watch this`); + }, + onFaint() { + this.add(`c:|${getName('Venous')}|teachin bitches how to swim`); + }, + }, + violet: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Vio͜͡let')}|I'm not hating you just decided to be wrong`); + }, + onSwitchOut() { + this.add(`c:|${getName('Vio͜͡let')}|anyway…`); + }, + onFaint() { + this.add(`c:|${getName('Vio͜͡let')}|blatantly carried by cheating but you'll still find a way to downplay`); + }, + innateName: "Do No Evil", + shortDesc: "When this Pokemon uses an attacking move, it transforms into the Ogerpon form of the corresponding type.", + onModifyMove(move, attacker, defender) { + if (attacker.species.baseSpecies !== 'Ogerpon' || attacker.transformed) return; + let targetForme = 'Ogerpon'; + switch (move.type) { + case 'Rock': + targetForme += '-Cornerstone'; + break; + case 'Fire': + targetForme += '-Hearthflame'; + break; + case 'Water': + targetForme += '-Wellspring'; + break; + case 'Grass': + // Do nothing + break; + default: + return; + } + if (attacker.terastallized) targetForme += (targetForme === 'Ogerpon' ? '-Teal' : '') + '-Tera'; + if (attacker.species.name !== targetForme) { + this.add('-activate', attacker, 'ability: Do No Evil'); + attacker.formeChange(targetForme); + } + }, + }, + vistar: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Vistar')}|Oh hi! (0_0)/`); + }, + onSwitchOut() { + this.add(`c:|${getName('Vistar')}|I'll go on a break, wait for me!`); + }, + onFaint() { + this.add(`c:|${getName('Vistar')}|So... this is how my career ends...`); + }, + }, + vmnunes: { + noCopy: true, + }, + warriorgallade: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('WarriorGallade')}|i wanted to proc berries, but it seems that i was better at proc rastinating instead. nom nom nom.`); + if (this.toID(enemyStaff(pokemon)) === 'aqrator') { + this.add(`c:|${getName('WarriorGallade')}|Hi Tori, how goes your conquest?`); + } + // innate + if (pokemon.illusion) return; + pokemon.abilityState.gluttony = true; + this.add('-activate', pokemon, 'ability: Nutrient Boost'); + this.boost({def: 1, spd: 1}, pokemon); + }, + onSwitchOut() { + this.add(`c:|${getName('WarriorGallade')}|amidst this tactical retreat, you didn't think i forgot about the pokeradar, did you? you can bet that my return with even more questions will be __eventful__ :3`); + }, + onFaint() { + this.add(`c:|${getName('WarriorGallade')}|a wig flew, and now i must bid you adieu. farewell my berries accrued, for this is the end of my etude.`); + }, + onSourceAfterFaint() { + this.add(`c:|${getName('WarriorGallade')}|Triumphant through trouncing tough, tenacious threats today, though testing 212 takeovers tarry. Theorizing these techniques tends to torrid, terribly tiresome tabulations, therefore torrential tactics traverse thorough thoughts.`); + }, + innateName: "Nutrient Boost", + shortDesc: "Gluttony + Thick Fat + Neuroforce + +1 Def/Sp. Def boost.", + onDamage(item, pokemon) { + if (pokemon.illusion) return; + pokemon.abilityState.gluttony = true; + }, + onSourceModifyAtkPriority: 6, + onSourceModifyAtk(atk, attacker, defender, move) { + if (defender.illusion) return; + if (move.type === 'Ice' || move.type === 'Fire') { + this.debug('Thick Fat weaken'); + return this.chainModify(0.5); + } + }, + onSourceModifySpAPriority: 5, + onSourceModifySpA(atk, attacker, defender, move) { + if (defender.illusion) return; + if (move.type === 'Ice' || move.type === 'Fire') { + this.debug('Thick Fat weaken'); + return this.chainModify(0.5); + } + }, + onModifyDamage(damage, source, target, move) { + if (source.illusion) return; + if (move && target.getMoveHitData(move).typeMod > 0) { + return this.chainModify([5120, 4096]); + } + }, + }, + waves: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Waves')}|Nice opinion, one small issue: 252+ SpA Wailord Water Spout (150 BP) vs. 0 HP / 0- SpD Your Argument in Rain: 1202-1416 (413 - 486.5%) -- guaranteed OHKO.`); + }, + onSwitchOut() { + this.add(`c:|${getName('Waves')}|Ocean man, take me by the hand.`); + }, + onFaint() { + this.add(`c:|${getName('Waves')}|/me waves goodbye.`); + }, + }, + wigglytree: { + noCopy: true, + onStart() { + this.add(`c:|${getName('WigglyTree')}|hi ur qt :3`); + }, + onSwitchOut() { + this.add(`c:|${getName('WigglyTree')}|Is that a watering can I see?`); + }, + onFaint() { + this.add(`c:|${getName('WigglyTree')}|Keep wiggling!`); + }, + }, + xprienzo: { + noCopy: true, + onStart() { + this.add(`c:|${getName('XpRienzo ☑◡☑')}|Would I lie to you?`); + }, + onSwitchOut() { + this.add(`c:|${getName('XpRienzo ☑◡☑')}|What? You don't trust me? >.>`); + }, + onFaint() { + this.add(`c:|${getName('XpRienzo ☑◡☑')}|Bleh, lame.`); + }, + }, + xy01: { + noCopy: true, + }, + yeetdabxd: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('yeet dab xd')}|Ah, welcome~! The merchandise you have chosen will cost your soul. Is that acceptable?`); + }, + onSwitchOut() { + this.add(`c:|${getName('yeet dab xd')}|brb mum's getting the camera`); + }, + onFaint(pokemon) { + if (pokemon.m.seedActivated) return; + this.add(`c:|${getName('yeet dab xd')}|wait no you didn't join QW yet`); + }, + }, + yellowpaint: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Yellow Paint')}|cheers`); + }, + onSwitchOut() { + this.add(`c:|${getName('Yellow Paint')}|luckynbad`); + }, + onFaint() { + this.add(`c:|${getName('Yellow Paint')}|The canvas is filled with different screams.`); + }, + onModifyMove(move) { + if (move.id === 'iondeluge') { + move.onHitField = function () { + this.add(`c:|${getName('Yellow Paint')}|Paint it Yellow!`); + }; + } + }, + }, + yuki: { + noCopy: true, + innateName: "Snow Warning", + onStart(source) { + if (source.illusion) return; + this.field.setWeather('snow', source, this.dex.abilities.get('snowwarning')); + }, + }, + yveltalnl: { + noCopy: true, + onStart(pokemon) { + this.add(`c:|${getName('YveltalNL')}|It's over ${pokemon.side.foe.name}, I have the high ground!`); + }, + onSwitchOut() { + this.add(`c:|${getName('YveltalNL')}|brb playing a draft game rq`); + }, + onFaint() { + this.add(`c:|${getName('YveltalNL')}|whatever i'll go watch football`); + }, + }, + za: { + noCopy: true, + onStart() { + this.add(`c:|${getName('za')}|Benvenuto`); + }, + onSwitchOut() { + this.add(`c:|${getName('za')}|mish`); + }, + onFaint() { + this.add(`c:|${getName('za')}|!track Between the Buried and Me - Sun Of Nothing - 2020 Remix / Remaster`); + }, + }, + zalm: { + noCopy: true, + onStart() { + this.add(`c:|${getName('Zalm')}|<(:O)00000>`); + }, + onSwitchOut() { + this.add(`c:|${getName('Zalm')}|brb gonna check if my lasagne didn't explode e-e`); + }, + onFaint() { + this.add(`c:|${getName('Zalm')}|I should have picked an actual fish pokémon like veluza instead...`); + }, + }, + zarel: { + noCopy: true, + }, + zee: { + noCopy: true, + onStart() { + this.add(`c:|${getName('zee')}|So is this your first VGC tournament?`); + }, + onSwitchOut() { + this.add(`c:|${getName('zee')}|Sorry, I've got a plane to catch!`); + }, + onFaint() { + this.add(`c:|${getName('zee')}|Hey everyone it's been a great time working with you all in this Super Staff Bros battle but I think it's the right time for me to step down. Thank you all and see you around.`); + }, + }, + zoro: { + noCopy: true, + onStart() { + this.add(`c:|${getName('zoro')}|gmeow`); + }, + onSwitchOut() { + this.add(`c:|${getName('zoro')}|brb I want to chase some yarn`); + }, + onFaint() { + this.add(`c:|${getName('zoro')}|time to take a cat nap`); + }, + }, + + // Custom effects + + // Clementine + flipped: { + name: 'Flipped', + onStart(target) { + this.add('-start', target, 'flipped'); + }, + onEnd(target) { + this.add('-end', target, 'flipped'); + }, + }, + + // dhelmise + bioticorbself: { + name: "Biotic Orb (Self)", + // side condition + effectType: 'Condition', + duration: 4, + onSideStart(side, source) { + this.effectState.source = source; + this.add('-sidestart', side, 'move: Biotic Orb (Self)'); + }, + onResidualOrder: 5, + onResidualSubOrder: 1, + onResidual(target, pokemon, effect) { + const source = this.effectState.source; + const quotes: string[] = [ + `A cure for all that ails.`, + `A sip for the parched.`, + `Be nourished!`, + `I offer something more.`, + `Receive my aid.`, + `Be nurtured.`, + `Know mother's kindness.`, + `A salve for all that ails.`, + `An eldritch blessing.`, + `Flourish.`, + `Now feast.`, + `Recover your strength.`, + ]; + if (target.hp) { + let amount = 65; + if (this.effectState.duration === 4) amount = 40; + this.heal(amount, target, source, effect); + } + this.add(`c:|${getName((source.illusion || source).name)}|${this.sample(quotes)}`); + }, + onSideResidualOrder: 26, + onSideResidualSubOrder: 5, + onSideEnd(side) { + this.add('-sideend', side, 'move: Biotic Orb (Self)'); + }, + }, + bioticorbfoe: { + name: "Biotic Orb (Foe)", + // side condition + effectType: 'Condition', + duration: 4, + onSideStart(side, source) { + this.effectState.source = source; + this.add('-sidestart', side, 'move: Biotic Orb (Foe)'); + }, + onResidualOrder: 5, + onResidualSubOrder: 1, + onResidual(target, pokemon, effect) { + const source = this.effectState.source; + let quotes: string[] = [ + `A taste of poison.`, + `Misery made manifest.`, + `Pain is inevitable.`, + `You cannot escape me!`, + `Your end is within my reach.`, + `Bí ag stangadh leat.`, + `Ruination is imminent.`, + `The weak can fend for themselves.`, + `Know darkness.`, + `Let shadow consume you.`, + `Your pain will be endless.`, + ]; + if (target.hp) { + this.damage(50, target, source, effect); + } + if (target.fainted || target.hp <= 0) { + quotes = [ + `Expect the unexpected.`, + `In chaos lies opportunity.`, + `Mind your surroundings.`, + `Perhaps next time you should not stand in the way of the orb.`, + `A torturous gift.`, + `The darkness will find them.`, + `The gloom takes you.`, + ]; + } + this.add(`c:|${getName((source.illusion || source).name)}|${this.sample(quotes)}`); + }, + onSideResidualOrder: 26, + onSideResidualSubOrder: 5, + onSideEnd(side) { + this.add('-sideend', side, 'move: Biotic Orb (Foe)'); + }, + }, + + // EasyOnTheHills + snack: { + name: "Snack", + duration: 3, + onStart(target) { + this.add('-start', target, 'snack'); + }, + onEnd(target) { + this.add('-end', target, 'snack'); + }, + onResidualOrder: 5, + onResidualSubOrder: 4, + onResidual(target, source, effect) { + this.heal(target.baseMaxhp / 4); + }, + }, + + // Elliot + beefed: { + name: "Beefed", + onStart(target) { + this.add('-start', target, 'beefed'); + }, + onEnd(target) { + this.add('-end', target, 'beefed'); + }, + onModifyMovePriority: -1, + onModifyMove(move, pokemon, target) { + if (!target || !this.checkMoveMakesContact(move, pokemon, target) || move.category === "Status") return; + if (!move.secondaries) move.secondaries = []; + move.secondaries.push({ + chance: 30, + status: 'brn', + }); + }, + onDamagingHitOrder: 1, + onDamagingHit(damage, target, source, move) { + if (this.checkMoveMakesContact(move, source, target, true)) { + this.damage(source.baseMaxhp / 8, source, target); + } + if (this.checkMoveMakesContact(move, source, target) && this.randomChance(3, 10)) { + source.trySetStatus('brn', target); + } + }, + onResidual(target, source, effect) { + this.heal(target.baseMaxhp / 8); + }, + onSourceAfterFaint(length, target, source, effect) { + this.add(`c:|${getName('Elliot')}|Get Bovriled`); + }, + }, + boiled: { + name: "Boiled", + onStart(target) { + this.add('-start', target, 'boiled'); + }, + onEnd(target) { + this.add('-end', target, 'boiled'); + }, + onModifySpAPriority: 5, + onModifySpA(relayVar, source, target, move) { + return this.chainModify(1.5); + }, + onModifyMovePriority: -1, + onModifyMove(move, pokemon, target) { + if (!target) return; + if (move.category !== "Status") { + if (!move.secondaries) move.secondaries = []; + move.secondaries.push({ + chance: 30, + status: 'brn', + }); + } + }, + }, + + // Elly + stormsurge: { + name: 'StormSurge', + effectType: 'Weather', + duration: 5, + durationCallback(source, effect) { + if (source?.hasItem('damprock')) { + return 8; + } + return 5; + }, + onEffectivenessPriority: -1, + onEffectiveness(typeMod, target, type, move) { + if (move?.effectType === 'Move' && move.category !== 'Status' && type === 'Flying' && typeMod > 0) { + this.add('-fieldactivate', 'Storm Surge'); + return 0; + } + }, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (defender.hasItem('utilityumbrella')) return; + if (move.flags['wind']) { + this.debug('Storm Surge wind boost'); + return this.chainModify(1.2); + } + if (move.type === 'Water') { + this.debug('Storm Surge water boost'); + return this.chainModify(1.5); + } + if (move.type === 'Fire') { + this.debug('Storm Surge fire suppress'); + return this.chainModify(0.5); + } + }, + onAccuracy(accuracy, attacker, defender, move) { + if (move?.flags['wind'] && !attacker.hasItem('utilityumbrella')) return true; + return accuracy; + }, + onFieldStart(battle, source, effect) { + if (effect?.effectType === 'Ability') { + if (this.gen <= 5) this.effectState.duration = 0; + this.add('-weather', 'StormSurge', '[from] ability: ' + effect.name, '[of] ' + source); + } else { + this.add('-weather', 'StormSurge'); + } + }, + onImmunity(type, pokemon) { + if (pokemon.hasItem('utilityumbrella')) return; + if (type === 'frz') return false; + }, + onFieldResidualOrder: 1, + onFieldResidual() { + this.add('-weather', 'StormSurge', '[upkeep]'); + this.eachEvent('Weather'); + }, + onFieldEnd() { + this.add('-weather', 'none'); + }, + }, + + // kenn + deserteddunes: { + name: 'DesertedDunes', + effectType: 'Weather', + duration: 0, + onEffectivenessPriority: -1, + onEffectiveness(typeMod, target, type, move) { + if (move?.effectType === 'Move' && move.category !== 'Status' && type === 'Rock' && typeMod > 0) { + this.add('-fieldactivate', 'Deserted Dunes'); + return 0; + } + }, + onModifySpDPriority: 10, + onModifySpD(spd, pokemon) { + if (pokemon.hasType('Rock') && this.field.isWeather('deserteddunes')) { + return this.modify(spd, 1.5); + } + }, + onFieldStart(field, source, effect) { + this.add('-weather', 'DesertedDunes', '[from] ability: ' + effect.name, '[of] ' + source); + }, + onFieldResidualOrder: 1, + onFieldResidual() { + this.add('-weather', 'DesertedDunes', '[upkeep]'); + this.eachEvent('Weather'); + }, + onWeather(target) { + this.damage(target.baseMaxhp / 16); + }, + onFieldEnd() { + this.add('-weather', 'none'); + }, + }, + + // Neko + catstampofapproval: { + name: "Cat Stamp of Approval", + noCopy: true, + onStart(target) { + this.add('-start', target, 'Cat Stamp of Approval'); + this.effectState.bestStat = target.getBestStat(false, true); + }, + onEnd(target) { + this.add('-end', target, 'Cat Stamp of Approval'); + }, + onModifyAtkPriority: 5, + onModifyAtk(atk, pokemon) { + if (this.effectState.bestStat !== 'atk' || pokemon.ignoringAbility()) return; + this.debug('Cat Stamp of Approval atk boost'); + return this.chainModify([5325, 4096]); + }, + onModifyDefPriority: 6, + onModifyDef(def, pokemon) { + if (this.effectState.bestStat !== 'def' || pokemon.ignoringAbility()) return; + this.debug('Cat Stamp of Approval def boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpAPriority: 5, + onModifySpA(spa, pokemon) { + if (this.effectState.bestStat !== 'spa' || pokemon.ignoringAbility()) return; + this.debug('Cat Stamp of Approval spa boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpDPriority: 6, + onModifySpD(spd, pokemon) { + if (this.effectState.bestStat !== 'spd' || pokemon.ignoringAbility()) return; + this.debug('Cat Stamp of Approval spd boost'); + return this.chainModify([5325, 4096]); + }, + onModifySpe(spe, pokemon) { + if (this.effectState.bestStat !== 'spe' || pokemon.ignoringAbility()) return; + this.debug('Cat Stamp of Approval spe boost'); + return this.chainModify(1.5); + }, + }, + + // Effects needed to be overriden for things to happen + attract: { + onStart(pokemon, source, effect) { + if (!(pokemon.gender === 'M' && source.gender === 'F') && !(pokemon.gender === 'F' && source.gender === 'M')) { + if (!['The Love Of Christ', ':3'].includes(effect.name)) { + this.debug('incompatible gender'); + return false; + } + } + if (!this.runEvent('Attract', pokemon, source)) { + this.debug('Attract event failed'); + return false; + } + + if (effect.name === 'Cute Charm') { + this.add('-start', pokemon, 'Attract', '[from] ability: Cute Charm', '[of] ' + source); + } else if (effect.name === 'Destiny Knot') { + this.add('-start', pokemon, 'Attract', '[from] item: Destiny Knot', '[of] ' + source); + } else { + this.add('-start', pokemon, 'Attract'); + } + }, + onUpdate(pokemon) { + if (this.effectState.source && !this.effectState.source.isActive && pokemon.volatiles['attract']) { + this.debug('Removing Attract volatile on ' + pokemon); + pokemon.removeVolatile('attract'); + } + }, + onBeforeMovePriority: 2, + onBeforeMove(pokemon, target, move) { + this.add('-activate', pokemon, 'move: Attract', '[of] ' + this.effectState.source); + if (this.randomChance(1, 2)) { + this.add('cant', pokemon, 'Attract'); + return false; + } + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Attract', '[silent]'); + }, + }, + + gravity: { + duration: 5, + durationCallback(source, effect) { + if (source?.hasAbility('persistent')) { + this.add('-activate', source, 'ability: Persistent', '[move] Gravity'); + return 7; + } + return 5; + }, + onFieldStart(target, source) { + if (source?.hasAbility('persistent')) { + this.add('-fieldstart', 'move: Gravity', '[persistent]'); + } else { + this.add('-fieldstart', 'move: Gravity'); + } + for (const pokemon of this.getAllActive()) { + let applies = false; + if (pokemon.removeVolatile('bounce') || pokemon.removeVolatile('fly')) { + applies = true; + this.queue.cancelMove(pokemon); + pokemon.removeVolatile('twoturnmove'); + } + if (pokemon.volatiles['skydrop']) { + applies = true; + this.queue.cancelMove(pokemon); + + if (pokemon.volatiles['skydrop'].source) { + this.add('-end', pokemon.volatiles['twoturnmove'].source, 'Sky Drop', '[interrupt]'); + } + pokemon.removeVolatile('skydrop'); + pokemon.removeVolatile('twoturnmove'); + } + if (pokemon.volatiles['magnetrise']) { + applies = true; + delete pokemon.volatiles['magnetrise']; + } + if (pokemon.volatiles['telekinesis']) { + applies = true; + delete pokemon.volatiles['telekinesis']; + } + if (applies) this.add('-activate', pokemon, 'move: Gravity'); + } + }, + onModifyAccuracy(accuracy) { + if (typeof accuracy !== 'number') return; + return this.chainModify([6840, 4096]); + }, + onDisableMove(pokemon) { + for (const moveSlot of pokemon.moveSlots) { + if (this.dex.moves.get(moveSlot.id).flags['gravity']) { + pokemon.disableMove(moveSlot.id); + } + } + }, + // groundedness implemented in battle.engine.js:BattlePokemon#isGrounded + onBeforeMovePriority: 6, + onBeforeMove(pokemon, target, move) { + if (move.flags['gravity'] && !move.isZ) { + this.add('cant', pokemon, 'move: Gravity', move); + return false; + } + }, + onModifyMove(move, pokemon, target) { + if (move.flags['gravity'] && !move.isZ) { + this.add('cant', pokemon, 'move: Gravity', move); + return false; + } + }, + onFieldResidualOrder: 27, + onFieldResidualSubOrder: 2, + onFieldEnd() { + this.add('-fieldend', 'move: Gravity'); + const activePokemon = this.getAllActive(); + for (const a of activePokemon) { + if (a.name === "Lunell") { + this.add(`c:|${getName('Lunell')}|ope there goes gravity`); + break; + } + } + }, + }, + raindance: { + inherit: true, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (defender.hasItem('utilityumbrella') || move.id === 'geyserblast') return; + if (move.type === 'Water') { + this.debug('rain water boost'); + return this.chainModify(1.5); + } + if (move.type === 'Fire') { + this.debug('rain fire suppress'); + return this.chainModify(0.5); + } + }, + }, + sunnyday: { + inherit: true, + onWeatherModifyDamage(damage, attacker, defender, move) { + if (defender.hasItem('utilityumbrella') || move.id === 'geyserblast') return; + if (move.type === 'Fire') { + this.debug('Sunny Day fire boost'); + return this.chainModify(1.5); + } + if (move.type === 'Water' && move.id !== 'hydrosteam') { + this.debug('Sunny Day water suppress'); + return this.chainModify(0.5); + } + }, + }, + confusion: { + inherit: true, + onBeforeMove(pokemon) { + pokemon.volatiles['confusion'].time--; + if (!pokemon.volatiles['confusion'].time) { + pokemon.removeVolatile('confusion'); + return; + } + this.add('-activate', pokemon, 'confusion'); + if (!this.randomChance(33, 100)) { + return; + } + this.activeTarget = pokemon; + const damage = this.actions.getConfusionDamage(pokemon, 40); + if (typeof damage !== 'number') throw new Error("Confusion damage not dealt"); + const activeMove = {id: this.toID('confused'), effectType: 'Move', type: '???'}; + this.damage(damage, pokemon, pokemon, activeMove as ActiveMove); + if (this.effectState.sourceEffect?.id === 'cringedadjoke') { + for (const target of this.getAllActive()) { + if (target === pokemon) continue; + if (target.volatiles['cringedadjoke']) { + this.boost({atk: 1, def: 1}, target); + } + } + } + return false; + }, + }, +}; diff --git a/data/mods/gen9ssb/items.ts b/data/mods/gen9ssb/items.ts new file mode 100644 index 000000000000..ba538d227f08 --- /dev/null +++ b/data/mods/gen9ssb/items.ts @@ -0,0 +1,145 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + // Archas + lilligantiumz: { + name: "Lilligantium Z", + spritenum: 633, + onTakeItem: false, + zMove: "Aura Rain", + zMoveFrom: "Quiver Dance", + itemUser: ["Lilligant"], + desc: "If held by a Lilligant with Quiver Dance, it can use Aura Rain.", + }, + // Arya + flygonite: { + name: "Flygonite", + spritenum: 111, + itemUser: ["Flygon"], + megaEvolves: "Flygon", + megaStone: "Trapinch", + onTakeItem(item, source) { + if (item.megaEvolves === source.baseSpecies.baseSpecies) return false; + return true; + }, + desc: "If held by a Flygon, this item allows it to Mega Evolve in battle.", + }, + // Irpachuza + irpatuziniumz: { + name: "Irpatuzinium Z", + spritenum: 648, + onTakeItem: false, + zMove: "Bibbidi-Bobbidi-Rands", + zMoveFrom: "Fleur Cannon", + itemUser: ["Mr. Mime"], + desc: "If held by a Mr. Mime with Fleur Cannon, it can use Bibbidi-Bobbidi-Rands.", + }, + // Loethalion + gardevoirite: { + inherit: true, + itemUser: ["Ralts"], + megaEvolves: "Ralts", + desc: "If held by a Ralts, this item allows it to Mega Evolve in battle.", + }, + // Peary + pearyumz: { + name: "Pearyum Z", + spritenum: 647, + onTakeItem: false, + zMove: "1000 Gears", + zMoveFrom: "Gear Grind", + itemUser: ["Klinklang"], + desc: "If held by a Klinklang with Gear Grind, it can use 1000 Gears.", + }, + // Rainshaft + rainiumz: { + name: "Rainium Z", + spritenum: 652, + onTakeItem: false, + zMove: "Hatsune Miku's Lucky Orb", + zMoveFrom: "Sparkling Aria", + itemUser: ["Xerneas"], + desc: "If held by a Xerneas with Sparkling Aria, it can use Hatsune Miku's Lucky Orb.", + }, + + // Modified for other effects + + eviolite: { + inherit: true, + onModifyDef(def, pokemon) { + // Added Pichu-Spiky-eared for Hydrostatics to use Eviolite + if (pokemon.baseSpecies.nfe || pokemon.species.id === 'pichuspikyeared') { + return this.chainModify(1.5); + } + }, + onModifySpD(spd, pokemon) { + // Added Pichu-Spiky-eared for Hydrostatics to use Eviolite + if (pokemon.baseSpecies.nfe || pokemon.species.id === 'pichuspikyeared') { + return this.chainModify(1.5); + } + }, + }, + + // modified for nya's ability + focusband: { + inherit: true, + onDamage(damage, target, source, effect) { + const chance = target.hasAbility('adorablegrace') ? 2 : 1; + if (this.randomChance(chance, 10) && damage >= target.hp && effect && effect.effectType === 'Move') { + this.add("-activate", target, "item: Focus Band"); + return target.hp - 1; + } + }, + }, + quickclaw: { + inherit: true, + onFractionalPriority(priority, pokemon) { + const chance = pokemon.hasAbility('adorablegrace') ? 2 : 1; + if (priority <= 0 && this.randomChance(chance, 5)) { + this.add('-activate', pokemon, 'item: Quick Claw'); + return 0.1; + } + }, + }, + + // modified for SexyMalasada's ability + lifeorb: { + inherit: true, + onAfterMoveSecondarySelf(source, target, move) { + if (source && source !== target && move && move.category !== 'Status' && !source.forceSwitchFlag) { + if (source.hasAbility('Ancestry Ritual')) { + this.heal(source.baseMaxhp / 10, source, source, this.dex.items.get('lifeorb')); + } else { + this.damage(source.baseMaxhp / 10, source, source, this.dex.items.get('lifeorb')); + } + } + }, + }, + + safetygoggles: { + inherit: true, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'deserteddunes' || type === 'hail' || type === 'powder') return false; + }, + }, + utilityumbrella: { + inherit: true, + onStart(pokemon) { + if (!pokemon.ignoringItem()) return; + if (['sunnyday', 'raindance', 'desolateland', 'primordialsea', 'stormsurge'].includes(this.field.effectiveWeather())) { + this.runEvent('WeatherChange', pokemon, pokemon, this.effect); + } + }, + onUpdate(pokemon) { + if (!this.effectState.inactive) return; + this.effectState.inactive = false; + if (['sunnyday', 'raindance', 'desolateland', 'primordialsea', 'stormsurge'].includes(this.field.effectiveWeather())) { + this.runEvent('WeatherChange', pokemon, pokemon, this.effect); + } + }, + onEnd(pokemon) { + if (['sunnyday', 'raindance', 'desolateland', 'primordialsea', 'stormsurge'].includes(this.field.effectiveWeather())) { + this.runEvent('WeatherChange', pokemon, pokemon, this.effect); + } + this.effectState.inactive = true; + }, + }, +}; diff --git a/data/mods/gen9ssb/moves.ts b/data/mods/gen9ssb/moves.ts new file mode 100644 index 000000000000..35c1284202f1 --- /dev/null +++ b/data/mods/gen9ssb/moves.ts @@ -0,0 +1,7101 @@ +import {ssbSets} from "./random-teams"; +import {PSEUDO_WEATHERS, changeSet, getName} from "./scripts"; +import {Teams} from '../../../sim/teams'; + +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + /* + // Example + moveid: { + accuracy: 100, // a number or true for always hits + basePower: 100, // Not used for Status moves, base power of the move, number + category: "Physical", // "Physical", "Special", or "Status" + shortDesc: "", // short description, shows up in /dt + desc: "", // long description + name: "Move Name", + gen: 8, + pp: 10, // unboosted PP count + priority: 0, // move priority, -6 -> 6 + flags: {}, // Move flags https://github.com/smogon/pokemon-showdown/blob/master/data/moves.js#L1-L27 + onTryMove() { + this.attrLastMove('[still]'); // For custom animations + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Move Name 1', source); + this.add('-anim', source, 'Move Name 2', source); + }, // For custom animations + secondary: { + status: "tox", + chance: 20, + }, // secondary, set to null to not use one. Exact usage varies, check data/moves.js for examples + target: "normal", // What does this move hit? + // normal = the targeted foe, self = the user, allySide = your side (eg light screen), foeSide = the foe's side (eg spikes), all = the field (eg raindance). More can be found in data/moves.js + type: "Water", // The move's type + // Other useful things + noPPBoosts: true, // add this to not boost the PP of a move, not needed for Z moves, dont include it otherwise + isZ: "crystalname", // marks a move as a z move, list the crystal name inside + zMove: {effect: ''}, // for status moves, what happens when this is used as a Z move? check data/moves.js for examples + zMove: {boost: {atk: 2}}, // for status moves, stat boost given when used as a z move + critRatio: 2, // The higher the number (above 1) the higher the ratio, lowering it lowers the crit ratio + drain: [1, 2], // recover first num / second num % of the damage dealt + heal: [1, 2], // recover first num / second num % of the target's HP + }, + */ + // Please keep sets organized alphabetically based on staff member name! + // aegii + equipaegislash: { + accuracy: 100, + basePower: 80, + category: "Physical", + shortDesc: "50% +1 Atk, 50% +1 Def, eats berry.", + desc: "This move has a 50% chance to raise the user's Attack by 1 stage and a 50% chance to raise the user's Defense by 1 stage. After using the move, the user eats its berry if holding one.", + name: "Equip Aegislash", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Shadow Sneak', target); + this.add('-anim', source, 'Swords Dance', source); + this.add('-anim', source, 'Iron Defense', source); + }, + secondaries: [ + { + chance: 50, + self: { + boosts: { + atk: 1, + }, + }, + }, { + chance: 50, + self: { + boosts: { + def: 1, + }, + }, + }, + ], + self: { + onHit(target, source) { + if (!source.getItem().isBerry) return; + source.eatItem(true); + }, + }, + secondary: null, + target: "normal", + type: "Steel", + }, + + // Aelita + smelt: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "User burns itself and gains +2 Spe/+1 Atk.", + desc: "This move burns the user, raises their Speed by 2 stages, and raises their Attack by 1 stage.", + name: "Smelt", + gen: 9, + pp: 10, + priority: 0, + flags: {}, + onPrepareHit(pokemon) { + this.attrLastMove('[still]'); + }, + onHit(pokemon) { + pokemon.trySetStatus('brn'); + this.add('-anim', pokemon, 'Shift Gear', pokemon); + this.boost({spe: 2, atk: 1}); + }, + secondary: null, + target: "self", + type: "Steel", + }, + + // Aethernum + iamatomic: { + accuracy: 100, + basePower: 140, + category: "Special", + shortDesc: "Lowers user's Def, Sp. Atk and Speed by 2 stages.", + desc: "Lowers the user's Defense, Special Attack, and Speed by 2 stages.", + name: "I. AM. ATOMIC.", + gen: 9, + pp: 5, + priority: 0, + flags: {protect: 1}, + onPrepareHit(target, source, move) { + this.add('-anim', source, 'Trick Room', target); + this.add('-anim', source, 'Clangerous Soul', source); + this.add('-anim', source, 'Flash', target); + this.add(`c:|${getName((source.illusion || source).name)}|I`); + this.add(`c:|${getName((source.illusion || source).name)}|AM`); + this.add(`c:|${getName((source.illusion || source).name)}|ATOMIC.`); + }, + self: { + boosts: { + spe: -2, + def: -2, + spa: -2, + }, + }, + secondary: null, + target: "normal", + type: "Ghost", + }, + + // Akir + freeswitchbutton: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Haze + Parting Shot + Replacement heals 33%.", + desc: "Resets the stat stages of all active Pokemon to 0, then lowers the foe's Attack and Special Attack by 1 stage each while switching out. The Pokemon that switches in heals 33% of its maximum HP. This move bypasses all Protect-like effects.", + name: "Free Switch Button", + gen: 9, + pp: 10, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onHit(target, source, move) { + this.add('-clearallboost'); + for (const pokemon of this.getAllActive()) { + pokemon.clearBoosts(); + } + const foe = source.foes()[0]; + if (!foe) return; + const success = this.boost({atk: -1, spa: -1}, foe, source); + if (!success && !foe.hasAbility('mirrorarmor')) { + delete move.selfSwitch; + } + }, + // the foe cannot be set as the target in move properties because it breaks the 33% replacement heal + selfSwitch: true, + onPrepareHit(target, source) { + this.add('-anim', source, 'Haze', source); + }, + slotCondition: 'freeswitchbutton', + condition: { + onSwap(target) { + if (!target.fainted && (target.hp < target.maxhp)) { + target.heal(target.maxhp / 3); + this.add('-heal', target, target.getHealth, '[from] move: Free Switch Button'); + target.side.removeSlotCondition(target, 'freeswitchbutton'); + } + }, + }, + secondary: null, + target: "self", + type: "Water", + }, + + // Alex + spicierextract: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Leech Seed + Heal Block + Infestation", + desc: "Applies the effects of Leech Seed, Heal Block, and partial trapping to the target, causing the user to steal 1/8 of the target's maximum HP at the end of each turn until the target switches out, preventing the target from using any moves, items, or Abilities that heal HP for 5 turns, and preventing the target from switching out while damaging it for an additional 1/8 of its maximum HP at the end of each turn for 4-5 turns. If the target uses Baton Pass, the effects of Leech Seed, Heal Block, and partial trapping will remain in effect for the replacement.", + name: "Spicier Extract", + pp: 15, + priority: 0, + flags: {protect: 1, reflectable: 1, mirror: 1, powder: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Leafage', target); + this.add('-anim', source, 'Stun Spore', target); + }, + onHit(target, source) { + let success = false; + if (target.addVolatile('partiallytrapped', source)) success = true; + if (target.addVolatile('leechseed', source)) success = true; + if (target.addVolatile('healblock', source)) success = true; + return success; + }, + secondary: null, + target: "normal", + type: "Grass", + }, + + // Alexander489 + scumhunt: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Uses a random damaging, non-resisted move.", + desc: "A random damaging non-resisted move is selected for use, other than moves uncallable by Metronome and moves originating from Super Staff Bros Ultimate.", + name: "Scumhunt", + pp: 10, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + const nresTypes = []; + for (const i of this.dex.types.names()) { + if (i === "Stellar") continue; + if (target) { + const effect = this.dex.getEffectiveness(i, target); + const immune = !this.dex.getImmunity(i, target); + if (effect >= 0 && !immune) { + nresTypes.push(i); + } + } + } + if (!nresTypes.length) return; + const netType = this.sample(nresTypes); + const moves = this.dex.moves.all().filter(m => ( + (![2, 4].includes(this.gen) || !source.moves.includes(m.id)) && + (!m.isNonstandard || m.isNonstandard === 'Unobtainable') && + m.flags['metronome'] && m.type === netType && m.category !== "Status" + )); + let randomMove = ''; + if (moves.length) { + moves.sort((a, b) => a.num - b.num); + randomMove = this.sample(moves).id; + } + if (!randomMove) return false; + source.side.lastSelectedMove = this.toID(randomMove); + this.add('-anim', source, 'Spite', target); + this.add('-anim', source, 'Grudge', target); + this.add('-anim', source, 'Metronome', source); + this.actions.useMove(randomMove, source); + }, + target: "normal", + type: "???", + }, + + // Apple + woppleorflopple: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Confuse; +2 SpA/D. Fail=Confuse self; -1 SpA/D.", + desc: "Usually moves first. This move has a 50% chance of confusing the target and raising the user's Special Attack and Special Defense by 2 stages. Otherwise, it will confuse the user and lower the user's Special Attack and Special Defense by 1 stage.", + name: "Wopple or Flopple", + gen: 9, + pp: 10, + priority: 1, + flags: {protect: 1, reflectable: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Moonlight', source); + }, + onHit(target, source, move) { + if (this.randomChance(1, 2)) { + target.addVolatile('confusion'); + this.boost({spa: 2, spd: 2}, source); + } else { + source.addVolatile('confusion'); + this.boost({spa: -1, spd: -1}, source); + } + }, + secondary: null, + target: "normal", + type: "Normal", + }, + + // Appletun a la Mode + extracourse: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Recycles berry, +1 to 2 random stats (-acc/eva).", + desc: "The user regains the item it last used, and then boosts two random stats by 1 stage each, except Accuracy and Evasion. If the user is currently holding an item or has had their item forcibly removed, the stat boosts occur without the Recycle effect.", + name: "Extra Course", + gen: 9, + pp: 5, + priority: 0, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Recycle', target); + }, + flags: {snatch: 1}, + onHit(pokemon) { + if (!pokemon.item && pokemon.lastItem) { + const item = pokemon.lastItem; + pokemon.lastItem = ''; + this.add('-item', pokemon, this.dex.items.get(item), '[from] move: Extra Course'); + pokemon.setItem(item); + } + let stats: BoostID[] = []; + const boost: SparseBoostsTable = {}; + let statPlus: BoostID; + for (statPlus in pokemon.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (pokemon.boosts[statPlus] < 6) { + stats.push(statPlus); + } + } + let randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + if (randomStat) boost[randomStat] = 1; + stats = []; + for (statPlus in pokemon.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (pokemon.boosts[statPlus] < 6 && statPlus !== randomStat) { + stats.push(statPlus); + } + } + randomStat = stats.length ? this.sample(stats) : undefined; + if (randomStat) boost[randomStat] = 1; + this.boost(boost, pokemon, pokemon); + }, + target: "self", + type: "Normal", + }, + + // aQrator + torisstori: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Confuses foe & deals 1/6th max HP for 4-5 turns.", + desc: "Causes the target to become confused. If this move is successful, the target takes damage equal to 1/6th of its maximum HP at the end of each turn for 4-5 turns.", + name: "Tori's Stori", + gen: 9, + pp: 5, + priority: 0, + flags: {protect: 1, reflectable: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Water Spout', target); + this.add('-anim', source, 'Confuse Ray', target); + }, + volatileStatus: 'torisstori', + condition: { + duration: 5, + durationCallback(target, source) { + if (source?.hasItem('gripclaw')) return 8; + return this.random(5, 6); + }, + onStart(target) { + this.add('-start', target, 'Tori\'s Stori'); + }, + onResidualOrder: 6, + onResidual(pokemon) { + this.damage(pokemon.baseMaxhp / 6); + }, + onEnd(target) { + this.add('-end', target, 'Tori\'s Stori'); + }, + }, + secondary: { + chance: 100, + volatileStatus: 'confusion', + }, + target: "normal", + type: "Water", + }, + + // A Quag To The Past + sireswitch: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Quag: Protect; Clod: Recover. Switch sires.", + desc: "Nearly always moves first. If the user is Quagsire, the user is protected from most attacks made by other Pokemon during this turn and then transforms into Clodsire. If the user is Clodsire, the user recovers 1/2 of its maximum HP and then transforms into Quagsire. This move fails if the user is neither Quagsire nor Clodsire.", + name: "Sire Switch", + gen: 9, + pp: 20, + priority: 4, + onTry(source) { + if (['Quagsire', 'Clodsire'].includes(source.species.name)) { + return; + } + this.hint("Only Clodsire and Quagsire can use this move."); + this.attrLastMove('[still]'); + this.add('-fail', source, 'move: Sire Switch'); + return null; + }, + onModifyPriority(relayVar, source, target, move) { + if (source.species.name === 'Clodsire') { + return -6; + } + }, + flags: {failcopycat: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Max Guard', source); + if (source.species.name === 'Quagsire') { + this.add('-anim', source, 'Protect', source); + return !!this.queue.willAct() && this.runEvent('StallMove', source); + } else { + this.add('-anim', source, 'Recover', source); + } + }, + volatileStatus: 'protect', + onModifyMove(move, pokemon) { + if (pokemon.species.name === 'Clodsire') { + move.flags['heal'] = 1; + move.heal = [1, 2]; + delete move.volatileStatus; + } + }, + onHit(pokemon) { + if (pokemon.species.name === 'Quagsire') { + pokemon.addVolatile('stall'); + changeSet(this, pokemon, ssbSets['A Quag To The Past-Clodsire'], true); + } else { + changeSet(this, pokemon, ssbSets['A Quag To The Past'], true); + } + }, + secondary: null, + target: "self", + type: "Ground", + }, + + // Archas + aurarain: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Cures team status, all but user heal 50% max HP.", + desc: "Z-Move that requires Lilligantium Z. Every Pokemon in the user's party is cured of its non-volatile status condition. With the exception of the user, every Pokemon in the user's party heals for 1/2 of their maximum HP. This effect cannot revive fainted Pokemon.", + name: "Aura Rain", + pp: 1, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Rain Dance', source); + this.add('-anim', source, 'Water Sport', source); + this.add('-anim', source, 'Aromatherapy', source); + }, + onHit(pokemon) { + this.add('-message', 'An alleviating aura rains down on the field!'); + let success = false; + const allies = [...pokemon.side.pokemon, ...pokemon.side.allySide?.pokemon || []]; + for (const ally of allies) { + if (ally === pokemon) continue; + if (ally.heal(this.modify(ally.maxhp, 0.5))) { + this.add('-heal', ally, ally.getHealth); + success = true; + } + if (ally.cureStatus()) success = true; + } + return success; + }, + isZ: "lilligantiumz", + secondary: null, + target: "self", + type: "Grass", + }, + + // Arcueid + funnyvamp: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Changes user's forme, effects vary with forme.", + desc: "If the user is Deoxys-Defense, it transforms into Deoxys-Attack and uses a random move from its moveset. If the user is Deoxys-Attack, it transforms into Deoxys-Defense and boosts two random stats by 1 stage each, except Accuracy and Evasion.", + name: "Funny Vamp", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, failcopycat: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Moonlight', target); + this.add('-anim', source, 'Quiver Dance', target); + this.add('-anim', source, 'Geomancy', target); + this.add(`c:|${getName('Arcueid')}|I've got nine lives 🐈. You knew that about cats, right, 😹? That means I haven't lost until you beat me nine times 🙀!`); + }, + onHit(target, source, move) { + if (source.species.name === "Deoxys-Defense") { + changeSet(this, source, ssbSets['Arcueid-Attack'], true); + let randMove = this.random(3) - 1; + if (randMove < 0) randMove = 0; + this.actions.useMove(source.moveSlots[randMove].id, target); + } else { + changeSet(this, source, ssbSets['Arcueid'], true); + for (let i = 0; i < 2; i++) { + const stats: BoostID[] = []; + const boost: SparseBoostsTable = {}; + let statPlus: BoostID; + for (statPlus in source.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (source.boosts[statPlus] < 6) { + stats.push(statPlus); + } + } + const randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + if (randomStat) boost[randomStat] = 1; + this.boost(boost, source, source); + } + this.heal(source.baseMaxhp / 2, source); + } + }, + secondary: null, + target: "self", + type: "Psychic", + }, + + // Arsenal + megidolaon: { + accuracy: 100, + basePower: 255, + category: "Special", + shortDesc: "Flinches if resulting in a critical hit.", + name: "Megidolaon", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Hyper Beam', target); + this.add('-anim', source, 'Earthquake', target); + }, + volatileStatus: 'flinch', + secondary: null, + target: "normal", + type: "???", + }, + + // Artemis + automatedresponse: { + accuracy: 100, + basePower: 80, + category: "Special", + shortDesc: "Change move/user's type to SE. 25% NVE instead.", + desc: "Randomly changes the move's and user's type to deal super effective damage. There is a 25% chance that this move has a false positive and changes the move's and user's type to deal not very effective damage instead.", + name: "Automated Response", + pp: 10, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + beforeTurnCallback(source, target) { + const seTypes = []; + const nveTypes = []; + let netType = ""; + for (const i of this.dex.types.names()) { + if (target) { + const effect = this.dex.getEffectiveness(i, target); + const isImmune = !this.dex.getImmunity(i, target); + if (effect > 0 && !isImmune) { + seTypes.push(i); + } else if (effect < 0 && !isImmune) { + nveTypes.push(i); + } + } + } + let falsePositive = false; + if (!seTypes.length) seTypes.push('Electric'); + if (!nveTypes.length) nveTypes.push('Electric'); + if (this.randomChance(75, 100)) { + netType = this.sample(seTypes); + } else { // false positive + falsePositive = true; + netType = this.sample(nveTypes); + } + if (falsePositive) { + this.add('-message', `${(target.illusion || target).name} triggered a false-positive and caused Automated Response to become not-very effective!`); + } + if (source.setType(netType)) { + this.add('-start', source, 'typechange', netType); + } + source.m.artemisMoveType = netType; + }, + onPrepareHit(target, source, move) { + this.add('-anim', source, 'Techno Blast', target); + }, + onModifyType(move, pokemon, target) { + if (pokemon.m.artemisMoveType) { + move.type = pokemon.m.artemisMoveType; + } + }, + self: { + boosts: { + spa: -2, + }, + }, + target: "normal", + type: "Electric", + }, + + // Arya + anyonecanbekilled: { + accuracy: 95, + basePower: 80, + category: "Special", + shortDesc: "+2 SpA for 2 turns.", + desc: "The user's Special Attack is boosted by 2 stages for 2 turns and is restored to its original value at the end. Does not stack with itself.", + name: "Anyone can be killed", + pp: 10, + priority: 0, + flags: {protect: 1, sound: 1, bypasssub: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + self: { + volatileStatus: 'anyonecanbekilled', + }, + condition: { + duration: 3, + onResidualOrder: 3, + onStart(target, source, sourceEffect) { + this.boost({spa: 2}, source); + }, + onEnd(target) { + this.boost({spa: -2}, target); + }, + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Dragon Dance', target); + this.add('-anim', source, 'Earth Power', target); + }, + target: "normal", + type: "Ground", + }, + + // Audiino + thinkinginprogress: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Cure status, +1 Def/SpA/SpD.", + name: "Thinking In Progress", + gen: 9, + pp: 20, + priority: 0, + flags: {snatch: 1, metronome: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Calm Mind', source); + }, + onHit(target, source, move) { + source.cureStatus(); + }, + boosts: { + def: 1, + spa: 1, + spd: 1, + }, + secondary: null, + target: "self", + type: "Psychic", + }, + + // autumn + seasonssmite: { + accuracy: 100, + basePower: 90, + category: "Special", + shortDesc: "+1 Defense if Protosynthesis is active.", + desc: "Raises the user's Defense by 1 stage if the user is under the effect of the Protosynthesis Ability.", + name: "Season's Smite", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', target, 'Morning Sun', target); + }, + secondary: { + chance: 100, + onHit(target, source, move) { + if (source.volatiles['protosynthesis']) { + this.boost({def: 1}, source, source, move); + } + }, + }, + target: "normal", + type: "Ghost", + }, + + // ausma + sigilsstorm: { + accuracy: 100, + basePower: 123, + category: "Special", + shortDesc: "If hit, Trick Room. Else, attack+random effect.", + desc: "Begins to charge an attack at the start of the turn. Nearly always moves last. If the user is directly damaged while charging, Trick Room is set instead, making the slower Pokemon move first for 5 turns. The Trick Room effect occurs before Cascade if both would activate on the same turn. If the user was not directly damaged while charging, the attack executes and one random effect will occur from the following: poison; burn; paralysis; confusion; the user recovers HP equal to 75% of damage dealt; all entry hazards are removed from the field; a random entry hazard is set, except G-Max Steelsurge; two random stats of the user are raised by 1 stage each, except Accuracy and Evasion; two random stats of the target are lowered by 1 stage each, except Accuracy and Evasion; or the target transforms into a Fennekin with Ember, Scratch, and Growl until they switch out.", + name: "Sigil's Storm", + pp: 20, + priority: -6, + onModifyPriority(priority, source, target, move) { + if (source.species.id === 'mismagius') return priority + 6; + }, + flags: {snatch: 1, metronome: 1, protect: 1, failcopycat: 1}, + priorityChargeCallback(pokemon) { + if (pokemon.species.id === 'mismagius') return; + pokemon.addVolatile('sigilsstorm'); + this.add('-anim', pokemon, 'Calm Mind', pokemon); + }, + beforeMoveCallback(pokemon) { + if (pokemon.species.id === 'mismagius') return; + if (pokemon.volatiles['sigilsstorm']?.lostFocus) { + this.add('cant', pokemon, 'sigilsstorm', 'sigilsstorm'); + this.actions.useMove('trickroom', pokemon); + this.add(`c:|${getName('ausma')}|dog can you not`); + return true; + } + }, + onModifyType(move, pokemon, target) { + if (pokemon.species.id === 'mismagius') { + move.type = 'Ghost'; + } + }, + condition: { + duration: 1, + onStart(pokemon) { + this.add('-singleturn', pokemon, 'move: Sigil\'s Storm'); + }, + onHit(pokemon, source, move) { + if (move.category !== 'Status') { + this.effectState.lostFocus = true; + } + }, + onTryAddVolatile(status, pokemon) { + if (status.id === 'flinch') return null; + }, + }, + onTry(source) { + if (source.illusion || source.name === 'ausma') { + return; + } + this.attrLastMove('[still]'); + this.add('-fail', source, 'move: Sigil\'s Storm'); + this.hint("Only a Pokemon whose nickname is \"ausma\" can use this move."); + return null; + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Geomancy', source); + this.add('-anim', source, 'Blood Moon', target); + }, + secondary: { + chance: 100, + onHit(target, source, move) { + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + const chance = this.random(100); + if (chance <= 10) { + target.trySetStatus('psn', target); + } else if (chance <= 20) { + target.trySetStatus('par', target); + } else if (chance <= 30) { + target.trySetStatus('brn', target); + } else if (chance <= 50) { + const stats: BoostID[] = []; + const boost: SparseBoostsTable = {}; + let statPlus: BoostID; + const statTarget = chance <= 40 ? target : source; + for (statPlus in statTarget.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (chance <= 40 && statTarget.boosts[statPlus] > -6) { + stats.push(statPlus); + } else if (chance <= 50 && statTarget.boosts[statPlus] < 6) { + stats.push(statPlus); + } + } + const randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + const randomStat2: BoostID | undefined = stats.length ? this.sample(stats.filter(s => s !== randomStat)) : undefined; + if (randomStat && randomStat2) { + if (chance <= 40) { + boost[randomStat] = -1; + boost[randomStat2] = -1; + } else { + boost[randomStat] = 1; + boost[randomStat2] = 1; + } + this.boost(boost, statTarget, statTarget); + } + } else if (chance <= 60) { + target.addVolatile('confusion', source); + } else if (chance <= 70) { + for (const condition of sideConditions) { + if (source.side.removeSideCondition(condition)) { + this.add('-sideend', source.side, this.dex.conditions.get(condition).name, '[from] move: Sigil\'s Storm', '[of] ' + source); + } + } + } else if (chance <= 80) { + target.side.addSideCondition(this.sample(sideConditions.filter(hazard => !target.side.getSideCondition(hazard)))); + } else if (chance <= 90) { + move.drain = [3, 4]; + } else { + changeSet(this, target, ssbSets["ausma-Fennekin"], true); + this.add(`c:|${getName('ausma')}|oh shit i posted to the wrong account`); + } + }, + }, + target: "normal", + type: "Psychic", + }, + + // AuzBat + preptime: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Raises the user's Sp. Atk by 2 and Speed by 1.", + desc: "The user's Special Attack is boosted by 2 stages and its Speed is boosted by 1 stage.", + name: "Prep Time", + pp: 5, + priority: 0, + flags: {snatch: 1, metronome: 1}, + boosts: { + spa: 2, + spe: 1, + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Tidy Up', source); + }, + target: "self", + type: "Psychic", + }, + + // avarice + yugiohreference: { + accuracy: 90, + basePower: 105, + category: "Special", + shortDesc: "40% chance to force the foe out.", + desc: "Nearly always moves last. If this attack is successful, there is a 40% chance that the target is forced to switch out and be replaced with a random unfainted ally.", + name: "yu-gi-oh reference", + pp: 5, + priority: -6, + flags: {protect: 1, bullet: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Never-Ending Nightmare', target); + }, + secondary: { + chance: 40, + onHit(target, source, move) { + move.forceSwitch = true; + }, + }, + target: "normal", + type: "Ghost", + }, + + // Beowulf + buzzerstingercounter: { + accuracy: 100, + basePower: 50, + category: "Physical", + shortDesc: "+3 prio if foe uses custom move. +3 Atk on KO.", + desc: "This move will nearly always move first (+3 priority) if the target would use a custom move from Super Staff Bros Ultimate this turn. Raises the user's Attack by 3 stages if this move knocks out the target.", + name: "Buzzer Stinger Counter", + gen: 9, + pp: 10, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onModifyPriority(priority, pokemon, target) { + if (!target) return; + const move = this.queue.willMove(target)?.moveid; + if (move && target.moves.indexOf(move) === target.moves.length - 1) { + this.debug('BSC priority boost'); + return priority + 3; + } + }, + onAfterMoveSecondarySelf(pokemon, target, move) { + if (!target || target.fainted || target.hp <= 0) this.boost({atk: 3}, pokemon, pokemon, move); + }, + secondary: null, + target: "normal", + type: "Bug", + }, + + // berry + whatkind: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Eats berry, gives random new berry, heals 25%.", + desc: "The user consumes its held berry if it is holding one, heals 25% of its maximum HP, and then gains a random item from the following: Iapapa Berry, Leppa Berry, Lum Berry, Maranga Berry, Ganlon Berry, Starf Berry, Liechi Berry, or Enigma Berry.", + name: "what kind", + gen: 9, + pp: 10, + priority: 0, + flags: {}, + onPrepareHit() { + this.attrLastMove('[anim] Nasty Plot'); + }, + onHit(pokemon, qwerty, move) { + if (pokemon.item && pokemon.getItem().isBerry) { + pokemon.eatItem(true); + } + pokemon.lastItem = ''; + const berries = ['iapapa', 'leppa', 'lum', 'maranga', 'ganlon', 'starf', 'liechi', 'enigma']; + const item = this.dex.items.get(this.sample(berries) + 'berry'); + pokemon.setItem(item, pokemon, move); + this.add('-item', pokemon, item, '[from] move: what kind'); + this.heal(pokemon.baseMaxhp / 4, pokemon); + }, + secondary: null, + target: "self", + type: "Water", + }, + + // Bert122 + shatterandscatter: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Protect, hit=-2 Atk/SpA/or Spe, user swap.", + desc: "Nearly always moves first. This move can only be used by Mega Sableye. The user is protected from most attacks made by other Pokemon during this turn. If a targeted move is blocked during this effect, the attacker's stats are lowered depending on the move used. If the attacker used a physical attack, their Attack is lowered by 2 stages. If the attacker used a special attack, their Special Attack is lowere dby 2 stages. If the attacker used a status move, their Speed is lowered by 2 stages. If this move successfully decreases a Pokemon's stat stages, this Pokemon's Mega Evolution is removed, and it immediately switches out and is replaced by a selected party member. This move fails if the user moves last, and has an increasing chance to fail when used consecutively.", + name: "Shatter and Scatter", + pp: 10, + priority: 4, + flags: {failinstruct: 1, failcopycat: 1}, + stallingMove: true, + volatileStatus: 'shatterandscatter', + onTry(source) { + if (source.species.name === 'Sableye-Mega') { + return; + } + this.hint("Only Sableye-Mega can use this move."); + this.attrLastMove('[still]'); + this.add('-fail', source, 'move: Shatter and Scatter'); + return null; + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(pokemon) { + this.add('-anim', pokemon, 'Protect', pokemon); + this.add('-anim', pokemon, 'Rock Polish', pokemon); + return !!this.queue.willAct() && this.runEvent('StallMove', pokemon); + }, + onHit(pokemon) { + pokemon.addVolatile('stall'); + }, + condition: { + duration: 1, + onStart(target) { + this.add('-singleturn', target, 'Protect'); + }, + onTryHitPriority: 3, + onTryHit(target, source, move) { + if (!move.flags['protect']) { + if (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return; + if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; + return; + } + if (move.smartTarget) { + move.smartTarget = false; + } else { + this.add('-activate', target, 'move: Protect'); + } + const lockedmove = source.getVolatile('lockedmove'); + if (lockedmove) { + // Outrage counter is reset + if (source.volatiles['lockedmove'].duration === 2) { + delete source.volatiles['lockedmove']; + } + } + let statDebuff = 'spe'; + if (move.category === 'Special') statDebuff = 'spa'; + if (move.category === 'Physical') statDebuff = 'atk'; + const success = this.boost({[statDebuff]: -2}, source, target, this.dex.getActiveMove("Shatter and Scatter")); + if (success) { + target.formeChange('Sableye', this.dex.getActiveMove('Shatter and Scatter'), true); + target.canMegaEvo = 'Sableye-Mega'; + target.switchFlag = 'shatterandscatter' as ID; + } + return this.NOT_FAIL; + }, + onHit(target, source, move) { + if (move.isZOrMaxPowered) { + let statDebuff = 'spe'; + if (move.category === 'Special') statDebuff = 'spa'; + if (move.category === 'Physical') statDebuff = 'atk'; + const success = this.boost({[statDebuff]: -2}, source, target, this.dex.getActiveMove("Shatter and Scatter")); + if (success) { + target.formeChange('Sableye', this.dex.getActiveMove('Shatter and Scatter'), true); + target.canMegaEvo = 'Sableye-Mega'; + target.switchFlag = 'shatterandscatter' as ID; + } + } + }, + }, + secondary: null, + target: "self", + type: "Dark", + }, + + // Billo + hackcheck: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Cosmog: 80%: Change into Lunala, else Solgaleo.", + desc: "This move has an 80% chance of transforming the user into Lunala. It has a 20% chance of instead transforming the user into Solgaleo, boosting its Attack by 1 stage, preventing it from switching out, and causing it to faint after three turns, akin to Perish Song. This move cannot be used successfully unless the user's current form, while considering Transform, is Cosmog.", + name: "Hack Check", + gen: 9, + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1, bypasssub: 1, failcopycat: 1}, + onTry(source) { + if (source.species.name === 'Cosmog') { + return; + } + this.hint("Only Cosmog can use this move."); + this.attrLastMove('[still]'); + this.add('-fail', source, 'move: Hack Check'); + return null; + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onHit(target, source, move) { + if (this.randomChance(1, 5)) { + changeSet(this, source, ssbSets['Billo-Solgaleo'], true); + source.addVolatile('trapped', source, move, 'trapper'); + source.addVolatile('perishsong'); + this.add('-start', source, 'perish3', '[silent]'); + this.boost({atk: 1}, source, source, move); + this.add(`c:|${getName('Billo')}|This is a streamer mon, you're banned from the room.`); + } else { + changeSet(this, source, ssbSets['Billo-Lunala'], true); + this.add(`c:|${getName('Billo')}|Everything checks out, remember to report any suspicious mons to staff!`); + } + }, + target: "self", + type: "Normal", + }, + + // blazeofvictory + veto: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Protects user, Disables attackers.", + desc: "Nearly always moves first. The user is protected from most attacks made by other Pokemon during this turn. If a targeted move is blocked during this effect, the move used by the target is disabled and cannot be selected for 4 turns. This move cannot disable more than one move at a time. This move fails if the user moves last, and has an increasing chance to fail when used consecutively.", + name: "Veto", + gen: 9, + pp: 10, + priority: 3, + flags: {noassist: 1, failcopycat: 1}, + stallingMove: true, + volatileStatus: 'veto', + onPrepareHit(pokemon) { + return !!this.queue.willAct() && this.runEvent('StallMove', pokemon); + }, + onHit(pokemon) { + pokemon.addVolatile('stall'); + }, + condition: { + duration: 1, + onStart(target) { + this.add('-singleturn', target, 'move: Protect'); + }, + onTryHitPriority: 3, + onTryHit(target, source, move) { + if (!move.flags['protect']) { + if (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return; + if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; + return; + } + if (move.smartTarget) { + move.smartTarget = false; + } else { + this.add('-activate', target, 'move: Protect'); + } + const lockedmove = source.getVolatile('lockedmove'); + if (lockedmove) { + // Outrage counter is reset + if (source.volatiles['lockedmove'].duration === 2) { + delete source.volatiles['lockedmove']; + } + } + if (!source.volatiles['disable']) { + source.addVolatile('disable', this.effectState.target); + } + return this.NOT_FAIL; + }, + onHit(target, source, move) { + if (move.isZOrMaxPowered && !source.volatiles['disable']) { + source.addVolatile('disable', this.effectState.target); + } + }, + }, + secondary: null, + target: "self", + type: "Normal", + }, + + // Blitz + geyserblast: { + accuracy: 95, + basePower: 100, + category: "Special", + shortDesc: "Fire + Water-type attack. Ignores weather.", + desc: "This move combines Fire in its type effectiveness against the target and does not increase or decrease damage dealt based on the current weather condition.", + name: "Geyser Blast", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Steam Eruption'); + }, + onEffectiveness(typeMod, target, type, move) { + return typeMod + this.dex.getEffectiveness('Fire', type); + }, + secondary: null, + target: "normal", + type: "Water", + }, + + // Breadey + bakersdouzeoff: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Wake up -> Wish + Substitute -> Baton Pass.", + desc: "The user wakes up if it is asleep. Then, the user uses the moves Wish, Substitute, and Baton Pass in that order. If the user does not have enough HP to set a Substitute, the rest of the effects of the move will still occur.", + name: "Baker's Douze Off", + gen: 9, + pp: 15, + priority: 1, + flags: {}, + sleepUsable: true, + slotCondition: 'Wish', + volatileStatus: 'substitute', + onPrepareHit(pokemon) { + this.attrLastMove('[anim] Teleport'); + if (pokemon.status === 'slp') pokemon.cureStatus(); + }, + onTry(source, target, move) { + if (source.volatiles['substitute'] || + source.hp <= source.maxhp / 4 || source.maxhp === 1) { // Shedinja clause + delete move.volatileStatus; + } + }, + onHit(target, source, move) { + if (move.volatileStatus) this.directDamage(target.maxhp / 4); + }, + onAfterMoveSecondarySelf(source) { + if (this.canSwitch(source.side)) { + this.actions.useMove('batonpass', source); + source.skipBeforeSwitchOutEventFlag = false; + } + }, + secondary: null, + target: "self", + type: "Normal", + }, + + // Cake + rolesystem: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Protects, changes set. Can't use twice in a row.", + // it was easier to do it this way rather than implement failing on consecutive uses + desc: "Nearly always moves first. This move cannot be selected if it was the last move used by this Pokemon. The user is protected from most attacks made by other Pokemon during this turn, and all of the user's stat changes are set to 0. Then, the user gains varying stat boosts and changes its moveset based on the role it picks. Fast Attacker: +2 Attack, +4 Speed with Hyper Drill, Combat Torque, and Extreme Speed. Bulky Setup: +1 Attack, +1 Defense, +2 Special Defense with Coil, Body Slam, and Heal Order. Bulky Support: +2 Defense, +2 Special Defense with Heal Order and any two of Ceaseless Edge, Stone Axe, Mortal Spin, and G-Max Steelsurge. Wallbreaker: +6 Special Attack with Blood Moon.", + name: "Role System", + gen: 9, + pp: 40, + priority: 6, + flags: {protect: 1, mirror: 1, cantusetwice: 1, failcopycat: 1}, + onTry(source) { + if (source.species.baseSpecies === 'Dunsparce') { + return; + } + this.attrLastMove('[still]'); + this.add('-fail', source, 'move: Role System'); + this.hint("Only a Pokemon whose form is Dunsparce can use this move."); + return null; + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Haze', target); + }, + onHit(target, source, move) { + if (this.randomChance(1, 256)) { + this.add('-activate', target, 'move: Celebrate'); + } else { + target.clearBoosts(); + this.add('-clearboost', target); + target.addVolatile('protect'); + const set = Math.floor(Math.random() * 4); + const newMoves = []; + let role = ''; + switch (set) { + case 0: + newMoves.push('hyperdrill', 'combattorque', 'extremespeed'); + role = 'Fast Attacker'; + this.boost({atk: 2, spe: 4}); + break; + case 1: + newMoves.push('coil', 'bodyslam', 'healorder'); + role = 'Bulky Setup'; + this.boost({atk: 1, def: 1, spd: 2}); + break; + case 2: + const varMoves = ['Ceaseless Edge', 'Stone Axe', 'Mortal Spin', 'G-Max Steelsurge']; + const move1 = this.sample(varMoves); + const move2 = this.sample(varMoves.filter(i => i !== move1)); + newMoves.push('healorder', move1, move2); + role = 'Bulky Support'; + this.boost({def: 2, spd: 2}); + break; + case 3: + newMoves.push('bloodmoon', 'bloodmoon', 'bloodmoon'); + role = 'Wallbreaker'; + this.boost({spa: 6}); + break; + // removing moveslots becomes very messy so this was the next best thing + } + this.add('-message', `Cake takes up the role of ${role}!`); + for (let i = 0; i < 3; i++) { + const replacement = this.dex.moves.get(newMoves[i]); + const replacementMove = { + move: replacement.name, + id: replacement.id, + pp: replacement.pp, + maxpp: replacement.pp, + target: replacement.target, + disabled: false, + used: false, + }; + source.moveSlots[i] = replacementMove; + source.baseMoveSlots[i] = replacementMove; + } + } + }, + secondary: null, + target: "self", + type: "Normal", + // bird type crashes during testing (runStatusImmunity for Bird at sim\pokemon.ts:2101:10). no-go. + }, + + // chaos + outage: { + accuracy: 95, + basePower: 110, + category: "Special", + shortDesc: "Clear Smog + Taunt + Embargo.", + desc: "If this move is successful, the target has all stat stages reset to 0, cannot use status moves for the next 3 turns, and cannot gain any effect from held items for 5 turns. Z-Crystals and forme-changing items are unaffected.", + name: "Outage", + gen: 9, + pp: 5, + priority: 0, + flags: {contact: 1, protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Dark Pulse', target); + }, + secondaries: [ + { + chance: 100, + volatileStatus: 'taunt', + }, { + chance: 100, + volatileStatus: 'embargo', + }, + { + chance: 100, + onHit(target) { + target.clearBoosts(); + this.add('-clearboost', target); + }, + }, + ], + target: "normal", + type: "Dark", + }, + + // Chloe + detodaslasflores: { + accuracy: 90, + basePower: 90, + category: "Physical", + shortDesc: "Sets Grassy Terrain before. -50% HP on miss.", + desc: "Before attacking, this move will set Grassy Terrain for 5 turns. If the attack is not successful, the user loses half of its maximum HP, rounded down, as crash damage.", + name: "De Todas las Flores", + gen: 9, + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1, gravity: 1}, + hasCrashDamage: true, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.field.setTerrain('grassyterrain'); + this.add('-anim', source, 'High Jump Kick', target); + }, + onMoveFail(target, source, move) { + this.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick')); + }, + secondary: null, + target: "normal", + type: "Grass", + }, + + // Chris + antidote: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Antidote", + shortDesc: "Heal 50% HP + 3 turn Magnet Rise.", + desc: "The user restores 1/2 of its maximum HP, rounded half up. If the user is not currently under the effect of Magnet Rise, it gains the effect of Magnet Rise for 3 turns, causing it to be immune to all Ground-type moves except Thousand Arrows for the duration.", + pp: 10, + priority: 0, + flags: {snatch: 1, heal: 1, gravity: 1, metronome: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(pokemon) { + this.add('-anim', pokemon, 'Recover', pokemon); + this.add('-anim', pokemon, 'Magnet Rise', pokemon); + }, + onTry(source, target, move) { + if (target.volatiles['smackdown'] || target.volatiles['ingrain']) return false; + + // Additional Gravity check for Z-move variant + if (this.field.getPseudoWeather('Gravity')) { + this.add('cant', source, 'move: Gravity', move); + return null; + } + }, + onHit(target, source, move) { + const success = !!this.heal(this.modify(source.maxhp, 0.25)); + return source.addVolatile('magnetrise', source, move) || success; + }, + secondary: null, + target: "self", + type: "Normal", + }, + + // ciran + summonmonsterviiifiendishmonstrouspiplupedecolossal: { + accuracy: 90, + basePower: 60, + basePowerCallback(pokemon, target, move) { + if (move.hit === 1) return 60; + if (move.hit === 2) return 0; + return 20; + }, + category: "Physical", + shortDesc: "60 BP Bite->Toxic->2-5 multihit w/ 20 BP each.", + desc: "The user calls the following effects in order: a 100% accurate 60 Base Power Poison-type attack with a 20% chance to cause the target to flinch; 100% accurate Toxic; and 2-5 90% accurate 20 Base Power Poison-type attacks.", + name: "Summon Monster VIII: Fiendish monstrous Piplupede, Colossal", + gen: 9, + pp: 15, + priority: 0, + flags: {protect: 1, contact: 1, mirror: 1}, + multihit: [3, 7], + self: { + volatileStatus: 'summonmonsterviiifiendishmonstrouspiplupedecolossal', + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Crunch', target); + this.add('-anim', source, 'Fury Swipes', target); + }, + condition: { + duration: 1, + noCopy: true, + onAccuracy(accuracy, target, source, move) { + if (move.hit <= 2) return 100; + return 90; + }, + }, + secondaries: [ + { + chance: 20, + onHit(target, source, move) { + if (move.hit !== 1) return; + target.addVolatile('flinch', source, move); + }, + }, + { + chance: 100, + onHit(target, source, move) { + if (move.hit !== 2) return; + target.trySetStatus('tox', source, move); + }, + }, + ], + onAfterMove(source, target, move) { + this.add(`c:|${getName((source.illusion || source).name)}|There's no way this'll faint in one punch!`); + }, + target: "allAdjacentFoes", + type: "Poison", + }, + + // Clefable + giveaway: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "User switches, passing stat changes and more.", + desc: "The user is replaced with another Pokemon in its party. The selected Pokemon has the user's stat stage changes, confusion, and certain move effects transferred to it.", + name: "Giveaway!", + gen: 9, + pp: 10, + priority: 0, + flags: {metronome: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Teleport', target); + this.add('-anim', source, 'Baton Pass', target); + }, + // Baton Pass clones are stupid client side so we're doing this + onHit(target) { + this.actions.useMove('batonpass', target); + }, + secondary: null, + target: "self", + type: "Normal", + }, + + // Clementine + o: { + accuracy: 100, + basePower: 100, + category: "Special", + shortDesc: "Phys if Atk > SpA. Flips user.", + desc: "This move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes. This move's type depends on the user's primary type. If this move is successful and the user is an Avalugg, it either gains or loses the Flipped condition, changing its moveset and base stats. When under the Flipped condition, Avalugg's Base Stats are 95/46/44/184/116/95 and its moveset changes to Earth Power, Volt Switch, and Heal Pulse. This move is super effective against Kennedy.", + name: "(╯°o°)╯︵ ┻━┻", + pp: 10, + priority: 0, + flags: {protect: 1, failcopycat: 1, nosketch: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Malicious Moonsault', target); + this.add('-anim', source, 'Blizzard', target); + }, + onModifyMove(move, pokemon) { + if (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) move.category = 'Physical'; + }, + onModifyType(move, pokemon) { + let type = pokemon.getTypes()[0]; + if (type === "Bird") type = "???"; + if (type === "Stellar") type = pokemon.getTypes(false, true)[0]; + move.type = type; + }, + onEffectiveness(typeMod, target, type) { + if (target?.name === 'Kennedy') return 1; + }, + onHit(target, source, move) { + if (source.illusion || source.baseSpecies.baseSpecies !== 'Avalugg') return; + if (source.volatiles['flipped']) { + source.removeVolatile('flipped'); + changeSet(this, source, ssbSets['Clementine']); + } else { + source.addVolatile('flipped', source, move); + changeSet(this, source, ssbSets['Clementine-Flipped']); + } + }, + target: "normal", + type: "Normal", + }, + + // clerica + stockholmsyndrome: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Curses and traps foe. User loses 1/2 HP.", + desc: "The user loses 1/2 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active and becoming unable to switch out.", + name: "Stockholm Syndrome", + pp: 5, + priority: 0, + flags: {bypasssub: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Curse', target); + this.add('-anim', source, 'Block', target); + }, + onHit(target, source, move) { + let success = false; + if (!target.volatiles['curse']) { + this.directDamage(source.maxhp / 2, source, source); + target.addVolatile('curse'); + success = true; + } + return target.addVolatile('trapped', source, move, 'trapper') || success; + }, + zMove: {effect: 'heal'}, + secondary: null, + target: "normal", + type: "Ghost", + }, + + // Clouds + windsofchange: { + accuracy: 100, + basePower: 70, + category: "Physical", + shortDesc: "User sets Tailwind and switches out.", + desc: "If this attack is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member, and its party members have their Speed doubled for 4 turns.", + name: "Winds of Change", + pp: 15, + priority: 0, + flags: {protect: 1}, + self: { + sideCondition: 'tailwind', + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Tailwind', target); + this.add('-anim', source, 'U-turn', target); + }, + selfSwitch: true, + secondary: null, + target: "normal", + type: "Flying", + }, + + // Coolcodename + haxerswill: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "70% +1 SpA/Spe & Focus Energy, else lose boosts.", + desc: "This move has a 70% chance to boost the user's Special Attack and Speed by 1 stage and grant the user an increased chance of dealing critical hits. If it does not do this, the user's positive stat stage changes will instead be removed.", + name: "Haxer's Will", + gen: 9, + pp: 15, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Clangorous Soul', source); + this.add('-anim', source, 'Focus Energy', source); + }, + onHit(pokemon) { + if (this.randomChance(7, 10)) { + this.boost({spa: 1, spe: 1}); + pokemon.addVolatile('focusenergy'); + } else { + pokemon.clearBoosts(); + this.add('-clearboost', pokemon); + } + }, + target: "self", + type: "Normal", + }, + + // Corthius + monkeybeatup: { + accuracy: 100, + basePower: 20, + category: "Physical", + shortDesc: "Hits 4-5 times. +1 priority under Grassy Terrain.", + desc: "Usually moves first when Grassy Terrain is in effect. This move has a 50% chance to hit 4 times and a 50% chance to hit 5 times.", + name: "Monkey Beat Up", + gen: 9, + pp: 10, + priority: 0, + multihit: [4, 5], + flags: {protect: 1, contact: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Beat Up', target); + this.add('-anim', source, 'Wood Hammer', target); + }, + onModifyPriority(priority, source, target, move) { + if (this.field.isTerrain('grassyterrain') && source.isGrounded()) { + return priority + 1; + } + }, + target: "normal", + type: "Grass", + }, + + // Dawn of Artemis + magicalfocus: { + accuracy: 100, + basePower: 80, + category: "Special", + name: "Magical Focus", + shortDesc: "Move type cycles. Sets Reflect. Fail if Ultra.", + desc: "This move's type cycles between Fire, Electric, and Ice depending on the current turn number, starting at Fire on turn 1, Electric on turn 2, Ice on turn 3, and repeating this pattern on future turns. For 5 turns, all Pokemon on the user's side of the field take 0.5x damage from physical attacks. This move fails if the user is Necrozma-Ultra.", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove(target, source, move) { + switch (move.type) { + case 'Fire': + this.attrLastMove('[anim] Flamethrower'); + break; + case 'Electric': + this.attrLastMove('[anim] Thunderbolt'); + break; + case 'Ice': + this.attrLastMove('[anim] Ice Beam'); + break; + default: + this.attrLastMove('[anim] Hyper Beam'); + break; + } + }, + onModifyType(move) { + if (this.turn % 3 === 1) { + move.type = 'Fire'; + } else if (this.turn % 3 === 2) { + move.type = 'Electric'; + } else { + move.type = 'Ice'; + } + }, + onDisableMove(pokemon) { + if (pokemon.species.id === 'necrozmaultra') pokemon.disableMove('magicalfocus'); + }, + self: { + sideCondition: 'reflect', + }, + target: "normal", + type: "Normal", + }, + + // DaWoblefet + superegoinflation: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "User heals 25% HP; Target: +2 Atk/SpA + Taunt.", + desc: "The user heals 1/4 of its maximum HP. The target's Attack and Special Attack are raised by 2 stages each, and the target cannot use status moves for 3 turns.", + name: "Super Ego Inflation", + gen: 9, + pp: 5, + priority: -7, + flags: {protect: 1, mirror: 1, bypasssub: 1, reflectable: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Follow Me', source); + this.add('-anim', target, 'Swords Dance', target); + this.add('-anim', target, 'Nasty Plot', target); + }, + onHit(target, source) { + this.heal(source.maxhp / 4, source); + this.boost({atk: 2, spa: 2}); + target.addVolatile('taunt'); + }, + target: "normal", + type: "Normal", + }, + + // deftinwolf + trivialpursuit: { + accuracy: 100, + basePower: 70, + basePowerCallback(pokemon, target, move) { + // You can't get here unless the pursuit succeeds + if (target.beingCalledBack || target.switchFlag) { + this.debug('Trivial Pursuit damage boost'); + return move.basePower * 2; + } + return move.basePower; + }, + category: "Physical", + shortDesc: "If foe is switching out, 2x power. Doesn't KO.", + desc: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using Flip Turn, Parting Shot, Teleport, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over. Leaves the target with at least 1 HP.", + name: "Trivial Pursuit", + pp: 5, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Pursuit'); + }, + beforeTurnCallback(pokemon) { + for (const side of this.sides) { + if (side.hasAlly(pokemon)) continue; + side.addSideCondition('trivialpursuit', pokemon); + const data = side.getSideConditionData('trivialpursuit'); + if (!data.sources) { + data.sources = []; + } + data.sources.push(pokemon); + } + }, + onModifyMove(move, source, target) { + if (target?.beingCalledBack || target?.switchFlag) move.accuracy = true; + }, + onTryHit(target, pokemon) { + target.side.removeSideCondition('trivialpursuit'); + }, + condition: { + duration: 1, + onBeforeSwitchOut(pokemon) { + this.debug('Trivial Pursuit start'); + let alreadyAdded = false; + pokemon.removeVolatile('destinybond'); + for (const source of this.effectState.sources) { + if (!source.isAdjacent(pokemon) || !this.queue.cancelMove(source) || !source.hp) continue; + if (!alreadyAdded) { + this.add('-activate', pokemon, 'move: Pursuit'); + alreadyAdded = true; + } + // Run through each action in queue to check if the Pursuit user is supposed to Mega Evolve this turn. + // If it is, then Mega Evolve before moving. + if (source.canMegaEvo || source.canUltraBurst) { + for (const [actionIndex, action] of this.queue.entries()) { + if (action.pokemon === source && action.choice === 'megaEvo') { + this.actions.runMegaEvo(source); + this.queue.list.splice(actionIndex, 1); + break; + } + } + } + this.actions.runMove('trivialpursuit', source, source.getLocOf(pokemon)); + } + }, + }, + onDamagePriority: -20, + onDamage(damage, target, source, effect) { + if (damage >= target.hp) return target.hp - 1; + }, + secondary: null, + target: "normal", + type: "Dark", + }, + + // dhelmise + bioticorb: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: ">50% HP:Set orb that damages foes.<50% heals you.", + desc: "If the user's HP is at or above 50% of its maximum HP, a damaging orb is set on the opponent's side of the field, dealing 50 points of damage at the end of each turn for 4 turns. If the user's HP is below 50% of its maximum HP, a healing orb is set on the user's side of the field, healing the active Pokemon for 65 HP at the end of each turn until it has healed a total of 300 HP. If the appropriate side already has its orb, this move will try to place the other orb down. This move fails if an orb is already in place on the side an orb would be set.", + name: "Biotic Orb", + gen: 9, + pp: 10, + priority: 0, + flags: {reflectable: 1, mustpressure: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + if (source.hp < source.maxhp / 2) { + this.add('-anim', source, 'Wish', source); + } else { + this.add('-anim', source, 'Shadow Ball', target); + } + }, + // Volatiles implemented in conditions.ts + onHit(target, source, move) { + if (source.hp < source.maxhp / 2) { + if (!source.side.addSideCondition('bioticorbself', source, move)) { + if (!source.side.foe.addSideCondition('bioticorbfoe', source, move)) return null; + } + } else { + if (!source.side.foe.addSideCondition('bioticorbfoe', source, move)) { + if (!source.side.addSideCondition('bioticorbself', source, move)) return null; + } + } + }, + secondary: null, + target: "normal", + type: "Poison", + }, + + // DianaNicole + breathoftiamat: { + accuracy: 95, + basePower: 20, + category: "Special", + shortDesc: "5 hits: Fire, Ice, Poison, Elec, Poison. Is STAB.", + desc: "This move hits 5 times. The first hit is Fire-type, the second is Ice-type, the third is Poison-type, the fourth is Electric-type, and the fifth is Poison-type. Each move checks accuracy individually, and if one hit misses, the attack stops. If the target is immune to one or more of the hits, the rest will still execute as normal. This move will always have Same-Type Attack Bonus.", + name: "Breath of Tiamat", + pp: 20, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + if (target.runImmunity('Fire')) { + this.add('-anim', source, 'Flamethrower', target); + } + }, + onHit(target, source, move) { + const moveTypes = ['Fire', 'Ice', 'Poison', 'Electric', 'Poison']; + const hitTypes = moveTypes.filter(x => target.runImmunity(x)); + if (move.hit >= hitTypes.length) { + move.basePower = 0; + move.category = 'Status'; + /* Problem here - we can't retroactively change the multihit parameter. + With this specific code, the move functions as intended, but will display the incorrect + number of hits if a target is immune to any of them. Even if you try to return false, null, etc + during this step, it will not interrupt the move. Nor will a this.add(-fail) do so either. + This seems to be the only way to get it to work and is a decent enough compromise for now. */ + } else { + move.type = hitTypes[move.hit]; + const moveAnims = ['Flamethrower', 'Ice Beam', 'Gunk Shot', 'Charge Beam', 'Sludge Bomb']; + const hitAnims = []; + for (const [i, anim] of moveAnims.entries()) { + const index2 = Math.min(i, hitTypes.length - 1); + if (moveTypes[i] === hitTypes[index2]) { + hitAnims.push(anim); + } + } + this.add('-anim', source, hitAnims[move.hit], target); + } + }, + multihit: 5, + multiaccuracy: true, + forceSTAB: true, + secondary: null, + target: 'normal', + type: "Fire", + }, + + // EasyOnTheHills + snacktime: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Charges.Turn 2: +2 Atk/Def, heal 25% for 3 turns.", + desc: "Boosts the user's Attack and Defense by 2 stages, and heals the user for 1/4 of its maximum HP at the end of each turn for 3 turns. This attack charges on the first turn and executes on the second. This move will fail if it is already in effect.", + name: "Snack Time", + pp: 10, + priority: 0, + flags: {}, + volatileStatus: 'snack', + onTryMove(attacker, defender, move) { + if (attacker.volatiles['snack']) { + this.add('-fail', attacker, 'move: Snack Time'); + this.attrLastMove('[still]'); + return null; + } + if (attacker.removeVolatile(move.id)) { + this.attrLastMove('[still]'); + this.add('-anim', attacker, 'Shell Smash', attacker); + return; + } + this.attrLastMove('[still]'); + this.add('-anim', attacker, 'Geomancy', attacker); + if (!this.runEvent('ChargeMove', attacker, defender, move)) { + return; + } + attacker.addVolatile('twoturnmove', defender); + return null; + }, + boosts: { + atk: 2, + def: 2, + }, + // passive recovery implemented in conditions.ts + secondary: null, + target: "self", + type: "Normal", + }, + + // Elliot + teaparty: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Recover & Refresh. 7/8 get Boiled, 1/8 Beefed.", + desc: "The user heals 1/2 of its maximum HP and cures its non-volatile status condition. The user has a 7/8 chance of gaining the Boiled condition, removing all previously-added extra types, adding a Water typing to the user, replacing its ability with Speed Boost, and replacing Teatime or Body Press with Steam Eruption if it exists on the set; and a 1/8 chance of gaining the Beefed condition, removing all previously-added extra types, adding a Fighting typing to the user, replacing its ability with Stamina, and replacing Teatime or Steam Eruption with Body Press.", + name: "Tea Party", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1, heal: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Milk Drink', source); + }, + onHit(pokemon) { + this.heal(pokemon.baseMaxhp / 2); + pokemon.cureStatus(); + let newMove = ""; + let backupMove = ""; + if (this.randomChance(7, 8)) { // get boiled + pokemon.removeVolatile('beefed'); + pokemon.addVolatile('boiled'); + pokemon.setAbility("Speed Boost"); + newMove = 'steameruption'; + backupMove = 'bodypress'; + if (!pokemon.hasType('Water') && pokemon.addType('Water')) { + this.add('-start', pokemon, 'typeadd', 'Water', '[from] move: Tea Party'); + } + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|Just tea, thank you`); + } else { // get beefed + pokemon.removeVolatile('boiled'); + pokemon.addVolatile('beefed'); + pokemon.setAbility("Stamina"); + newMove = 'bodypress'; + backupMove = 'steameruption'; + if (!pokemon.hasType('Fighting') && pokemon.addType('Fighting')) { + this.add('-start', pokemon, 'typeadd', 'Fighting', '[from] move: Tea Party'); + } + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|BOVRIL TIME`); + } + // -start for beefed and boiled is not necessary, i put it in there for an indicator + // as to what form sinistea is currently using. backupMove also eases the form switch + let teaIndex = pokemon.moves.indexOf('teatime'); + const replacement = this.dex.moves.get(newMove); + if (teaIndex < 0) { + if (pokemon.moves.includes(backupMove)) { + teaIndex = pokemon.moves.indexOf(backupMove); + } else { + return; + } + } + const newMoveSlot = { + move: replacement.name, + id: replacement.id, + pp: replacement.pp, + maxpp: replacement.pp, + target: replacement.target, + disabled: false, + used: false, + }; + pokemon.moveSlots[teaIndex] = newMoveSlot; + }, + secondary: null, + target: 'self', + type: "Flying", + }, + + // Elly + sustainedwinds: { + accuracy: 90, + basePower: 20, + category: "Special", + shortDesc: "Hits 5 times.", + name: "Sustained Winds", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, wind: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Bleakwind Storm'); + }, + multihit: 5, + secondary: null, + target: 'normal', + type: "Flying", + }, + + // Emboar02 + insertboarpunhere: { + accuracy: 100, + basePower: 80, + category: "Physical", + shortDesc: "Has 33% recoil. Switch after using.", + desc: "If the target lost HP, the user takes recoil damage equal to 33% of the HP lost by the target, rounded half up, but not less than 1 HP. If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", + name: "Insert boar pun here", + pp: 20, + priority: 0, + flags: {protect: 1, contact: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Collision Course', target); + this.add('-anim', source, 'U-turn', target); + }, + selfSwitch: true, + recoil: [33, 100], + secondary: null, + target: 'normal', + type: "Fighting", + }, + + // Fame + solidarity: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Creates a Substitute and sets Leech Seed.", + desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The Pokemon at the user's position steals 1/8 of the target's maximum HP, rounded down, at the end of each turn. If either of the affected Pokemon uses Baton Pass, its respective effect will remain for its replacement.", + name: "Solidarity", + pp: 15, + priority: 0, + flags: {protect: 1, reflectable: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Substitute'); + this.add('-anim', source, 'Leech Seed', target); + }, + onHit(target, source) { + if (target.hasType('Grass') || target.isProtected()) return null; + target.addVolatile('leechseed', source); + }, + self: { + onHit(target, source) { + if (source.volatiles['substitute']) return; + if (source.hp <= source.maxhp / 4 || source.maxhp === 1) { // Shedinja clause + this.add('-fail', source, 'move: Substitute', '[weak]'); + } else { + source.addVolatile('substitute'); + this.directDamage(source.maxhp / 4); + } + }, + }, + secondary: null, + target: 'normal', + type: "Grass", + }, + + // Felucia + riggeddice: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Stat changes: inverts, else Taunt. User switches.", + desc: "If the target has any stat stage changes, the target's positive stat stages become negative and vice versa. If the target does not have any stat stage changes, the target cannot use status moves for 3 turns. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", + name: "Rigged Dice", + pp: 10, + priority: 0, + flags: {protect: 1, reflectable: 1}, + selfSwitch: true, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Smart Strike', source); + }, + onHit(target, source) { + let success = false; + let i: BoostID; + for (i in target.boosts) { + if (target.boosts[i] === 0) continue; + target.boosts[i] = -target.boosts[i]; + success = true; + } + if (success) { + this.add('-invertboost', target, '[from] move: Rigged Dice'); + } else { + target.addVolatile('taunt', source); + } + }, + secondary: null, + target: 'normal', + type: "Bug", + }, + + // Froggeh + cringedadjoke: { + accuracy: 90, + basePower: 90, + category: "Physical", + shortDesc: "Confuses the foe. Foe self-hits: +1 Atk/Def.", + desc: "Confuses the target. When the target hits itself in confusion from this move, the user's Attack and Defense are boosted by 1 stage.", + name: "Cringe Dad Joke", + pp: 10, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Dizzy Punch', target); + this.add('-anim', source, 'Bulk Up', source); + }, + self: { + volatileStatus: 'cringedadjoke', + }, + secondary: { + chance: 100, + volatileStatus: 'confusion', + }, + target: 'normal', + type: "Fighting", + // confusion self-hit stat bonus implemented as an innate because it doesn't work as a move effect + }, + + // Frostyicelad + puffyspikydestruction: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Turn 1 out: DDance, TSpikes, -Psn type.", + desc: "Nearly always moves first. Removes the user's Poison typing if it has one, and boosts the user's Attack and Speed by 1 stage. Sets one layer of Toxic Spikes on the opposing side of the field, poisoning all grounded, non-Poison-type Pokemon that switch in. Fails unless it's the user's first turn on the field.", + name: "Puffy Spiky Destruction", + pp: 5, + priority: 4, + flags: {}, + onTry(source) { + if (source.activeMoveActions > 1) { + this.hint("Puffy Spiky Destruction only works on your first turn out."); + return false; + } + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Quiver Dance', source); + this.add('-anim', source, 'Spiky Shield', source); + this.add('-anim', source, 'Toxic Spikes', target); + }, + onHit(target, source, move) { + source.setType(source.getTypes(true).filter(type => type !== "Poison")); + this.add('-start', source, 'typechange', source.getTypes().join('/'), '[from] move: Puffy Spiky Destruction'); + const foeSide = source.side.foe; + if (!foeSide.sideConditions['toxicspikes'] || foeSide.sideConditions['toxicspikes'].layers < 2) { + foeSide.addSideCondition('toxicspikes', source, move); + } + }, + boosts: { + spe: 1, + atk: 1, + }, + secondary: null, + target: 'self', + type: "Poison", + }, + + // Frozoid + flatoutfalling: { + accuracy: 100, + basePower: 75, + category: "Physical", + shortDesc: "Sets Gravity.", + desc: "Sets Gravity for 5 turns, multiplying the evasiveness of all active Pokemon by 0.6 and grounding them.", + name: "Flat out falling", + pp: 5, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Head Smash', target); + this.add('-anim', source, 'Gravity', target); + }, + self: { + onHit(source) { + this.field.addPseudoWeather('gravity', source); + }, + }, + secondary: null, + target: 'normal', + type: "???", + }, + + // Ganjafin + wigglingstrike: { + accuracy: 95, + basePower: 10, + category: "Physical", + shortDesc: "Applies Salt Cure and sets a layer of spikes.", + desc: "Causes damage to the target equal to 1/8 of its maximum HP (1/4 if the target is Steel or Water type), rounded down, at the end of each turn during effect. This effect ends when the target is no longer active. Sets a layer of Spikes on the target's side of the field, damaging grounded foes when they switch in.", + name: "Wiggling Strike", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Water Pulse', target); + this.add('-anim', target, 'Aqua Ring', target); + }, + self: { + onHit(source) { + for (const side of source.side.foeSidesWithConditions()) { + side.addSideCondition('spikes'); + } + }, + }, + secondary: { + chance: 100, + volatileStatus: 'saltcure', + }, + target: "normal", + type: "Water", + }, + + // Haste Inky + hastyrevolution: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Clear foe stats+copies neg stats+inverts on user.", + desc: "Resets the stat stages of the target to 0. Then, the target receives a copy of the user's negative stat stage changes, and the user's negative stat stage changes become positive.", + name: "Hasty Revolution", + pp: 10, + priority: 4, + flags: {protect: 1, mirror: 1, noassist: 1, failcopycat: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Pain Split', target); + return !!this.queue.willAct() && this.runEvent('StallMove', source); + }, + onHit(target, source, move) { + source.addVolatile('stall'); + target.clearBoosts(); + this.add('-clearboost', target); + let i: BoostID; + for (i in source.boosts) { + if (source.boosts[i] < 0) { + target.boosts[i] += source.boosts[i]; + this.add('-setboost', target, i as string, target.boosts[i], '[silent]'); + source.boosts[i] = -source.boosts[i]; + this.add('-setboost', source, i as string, source.boosts[i], '[silent]'); + } + } + this.add('-message', `${target.name} received ${source.name}'s negative stat boosts!'`); + this.add('-message', `${source.name} inverted their negative stat boosts!`); + }, + stallingMove: true, + self: { + volatileStatus: 'protect', + }, + secondary: null, + target: "normal", + type: "Normal", + }, + + // havi + augurofebrietas: { + accuracy: 100, + basePower: 70, + category: "Special", + shortDesc: "Disables the target's last move and switches.", + desc: "The target's last used move is disabled and cannot be selected for 4 turns. This move cannot disable more than one move at a time. The user then switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members.", + name: "Augur of Ebrietas", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Spirit Shackle'); + }, + onAfterHit(target, source, move) { + this.add(`c:|${getName((source.illusion || source).name)}|as you once did for the vacuous Rom,`); + }, + selfSwitch: true, + volatileStatus: 'disable', + target: "normal", + type: "Ghost", + }, + + // Hecate + testinginproduction: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "+2, -2 to random stats, small chance of harm.", + desc: "The user boosts a random stat by 2 stages, and the user lowers a random stat by 2 stages. These can be the same stat, and cannot include Accuracy or Evasion. Independently, there is a 10% chance for the user to lose 10% of their maximum HP, and there is a 5% chance for the user to gain a random non-volatile status condition.", + name: "Testing in Production", + gen: 9, + pp: 5, + priority: 0, + flags: {}, + onPrepareHit() { + this.attrLastMove('[anim] Curse'); + }, + onHit(pokemon) { + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|Please don't break...`); + let stats: BoostID[] = []; + const boost: SparseBoostsTable = {}; + let statPlus: BoostID; + for (statPlus in pokemon.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (pokemon.boosts[statPlus] < 6) { + stats.push(statPlus); + } + } + let randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + if (randomStat) boost[randomStat] = 2; + + stats = []; + let statMinus: BoostID; + for (statMinus in pokemon.boosts) { + if (statMinus === 'accuracy' || statMinus === 'evasion') continue; + if (pokemon.boosts[statMinus] > -6) { + stats.push(statMinus); + } + } + randomStat = stats.length ? this.sample(stats) : undefined; + if (randomStat) { + if (boost[randomStat]) { + boost[randomStat] = 0; + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|Well. Guess that broke. Time to roll back.`); + return; + } else { + boost[randomStat] = -2; + } + } + + this.boost(boost, pokemon, pokemon); + }, + onAfterMove(pokemon) { + if (this.randomChance(1, 10)) { + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|Ouch! That crash is really getting on my nerves...`); + this.damage(pokemon.baseMaxhp / 10); + if (pokemon.hp <= 0) return; + } + + if (this.randomChance(1, 20)) { + const status = this.sample(['frz', 'brn', 'psn', 'par']); + let statusText = status; + if (status === 'frz') { + statusText = 'froze'; + } else if (status === 'brn') { + statusText = 'burned'; + } else if (status === 'par') { + statusText = 'paralyzed'; + } else if (status === 'psn') { + statusText = 'poisoned'; + } + + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|Darn. A bug ${statusText} me. Guess I should have tested this first.`); + pokemon.setStatus(status); + } + }, + secondary: null, + target: "self", + type: "Electric", + }, + + // HiZo + scapegoat: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "KO a teammate; gain more Atk/SpA/Spe if healthy.", + desc: "A party member is selected and faints, raising the user's Attack, Special Attack, and Speed by 1 stage if the party member's HP is below 33%, by 2 stages if the party member's HP is between 33% and 66%, and by 3 stages if the party member's HP is above 66%. Fails if there are no non-fainted Pokemon on the user's side.", + name: "Scapegoat", + gen: 9, + pp: 5, + priority: 0, + flags: {}, + onTryHit(source) { + if (!this.canSwitch(source.side)) { + this.attrLastMove('[still]'); + this.add('-fail', source); + return this.NOT_FAIL; + } + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Swords Dance', source); + }, + onHit(target, source) { + this.add(`c:|${getName((source.illusion || source).name)}|Ok I have a stupid idea, just hear me out`); + this.add('message', `A sacrifice is needed.`); + }, + slotCondition: 'scapegoat', + // fake switch a la revival blessing + selfSwitch: true, + condition: { + duration: 1, + // reviving implemented in side.ts, kind of + }, + secondary: null, + target: "self", + type: "Dark", + }, + + + // HoeenHero + reprogram: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Rain Dance + Lock-On.", + name: "Re-Program", + pp: 10, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Calm Mind', source); + this.add('-anim', source, 'Geomancy', target); + }, + onHit(target, source, move) { + let success = false; + if (this.field.setWeather('raindance', source, move)) { + this.add('-message', 'HoeenHero made the environment easier to work with!'); + success = true; + } + if (source.addVolatile('lockon', target)) { + this.add('-message', 'HoeenHero double checked their work and fixed any errors!'); + this.add('-activate', source, 'move: Lock-On', '[of] ' + target); + success = true; + } + if (success) { + this.add('-message', 'HoeenHero reprograms the battle to be more beneficial to them!'); + } + }, + target: "normal", + type: "Psychic", + }, + + // hsy + wonderwing: { + accuracy: 90, + basePower: 150, + category: "Physical", + shortDesc: "No dmg rest of turn. Next turn user has -1 prio.", + desc: "Usually moves last. The user becomes immune to all damage sources for the rest of the turn. The turn after this move is used, the user's moves all gain -1 priority. This move ignores all negative effects associated with contact moves.", + name: "Wonder Wing", + pp: 5, + priority: 0, + flags: {contact: 1}, + // No negative contact effects implemented in Battle#checkMovesMakeContact + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Electric Terrain', source); + this.add('-anim', source, 'Giga Impact', target); + }, + self: { + volatileStatus: 'wonderwing', + }, + condition: { + noCopy: true, + duration: 2, + onStart(pokemon) { + this.add('-start', pokemon, 'Wonder Wing'); + }, + onRestart(target, source, sourceEffect) { + target.removeVolatile('wonderwing'); + }, + onDamage(damage, target, source, effect) { + if (this.effectState.duration < 2) return; + this.add('-activate', source, 'move: Wonder Wing'); + return false; + }, + onModifyPriority(relayVar, source, target, move) { + return -1; + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Wonder Wing', '[silent]'); + }, + }, + target: "normal", + type: "Flying", + }, + + // Hydrostatics + hydrostatics: { + accuracy: 100, + basePower: 90, + category: "Special", + name: "Hydrostatics", + shortDesc: "70%:+1 SpA,50%:prz,Elec/Water. Differs when Tera.", + desc: "If the user has not Terastallized, this move has a 70% chance to raise the user's Special Attack by 1 stage, has a 50% chance to paralyze the target, and combines the Water type in its type effectiveness. When the user has Terastallized, this move is a purely Water-type attack that gains Same-Type Attack Bonus with Water-types, and it has an 80% chance to raise the user's Special Attack by 1 stage, has a 60% chance to change the target's typing to Water, and is super effective against Water.", + pp: 20, + priority: 1, + flags: {protect: 1, mirror: 1}, + onModifyMove(move, source, target) { + if (source.terastallized) { + move.type = 'Water'; + } + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + if (!source.terastallized) this.add('-anim', source, 'Charge Beam', source); + else this.add('-anim', source, 'Water Pulse', target); + }, + onEffectiveness(typeMod, target, type, move) { + if (move.type === 'Electric') return typeMod + this.dex.getEffectiveness('Water', type); + else if (type === 'Water' && move.type === 'Water') return 1; + }, + secondary: { + chance: 100, + onHit(target, source, move) { + // None of these stack with Serene Grace + if (!source.terastallized) { + if (this.randomChance(70, 100)) { + this.boost({spa: 1}, source); + } + if (this.randomChance(50, 100)) { + if (target.isActive) target.trySetStatus('par', source, this.effect); + } + } else { + if (this.randomChance(80, 100)) { + this.boost({spa: 1}, source); + } + if (this.randomChance(60, 100)) { + // Soak + if (target.getTypes().join() !== 'Water' && target.setType('Water')) { + this.add('-start', target, 'typechange', 'Water'); + } + } + } + }, + }, + target: "normal", + type: "Electric", + }, + + // Imperial + stormshroud: { + accuracy: 100, + basePower: 95, + category: "Special", + name: "Storm Shroud", + shortDesc: "Physical + contact if stronger.", + desc: "This move becomes a physical attack that makes contact if the value of ((((2 * the user's level / 5 + 2) * 90 * X) / Y) / 50), where X is the user's Attack stat and Y is the target's Defense stat, is greater than the same value where X is the user's Special Attack stat and Y is the target's Special Defense stat. No stat modifiers other than stat stage changes are considered for this purpose. If the two values are equal, this move chooses a damage category at random.", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Clangorous Soulblaze', target); + }, + onModifyMove(move, pokemon, target) { + if (!target) return; + const atk = pokemon.getStat('atk', false, true); + const spa = pokemon.getStat('spa', false, true); + const def = target.getStat('def', false, true); + const spd = target.getStat('spd', false, true); + const physical = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * atk) / def) / 50); + const special = Math.floor(Math.floor(Math.floor(Math.floor(2 * pokemon.level / 5 + 2) * 90 * spa) / spd) / 50); + if (physical > special || (physical === special && this.random(2) === 0)) { + move.category = 'Physical'; + move.flags.contact = 1; + } + }, + secondary: null, + target: "normal", + type: "Dragon", + }, + + // in the hills + "102040": { + accuracy: 100, + basePower: 10, + category: "Physical", + name: "10-20-40", + shortDesc: "Hits 3 times, 3rd hit crits. sets Safeguard.", + desc: "Hits three times. Power increases to 20 for the second hit and 40 for the third. The third hit is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities. If this move deals damage, it applies the effect of Safeguard for 5 turns, protecting the user's team from confusion and non-volatile status conditions.", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1}, + basePowerCallback(pokemon, target, move) { + return [10, 20, 40][move.hit - 1]; + }, + onTryHit(target, source, move) { + if (move.hit === 3) { + move.willCrit = true; + } + }, + onPrepareHit() { + this.attrLastMove('[anim] Triple Kick'); + }, + self: { + sideCondition: 'safeguard', + }, + secondary: null, + multihit: 3, + target: "normal", + type: "Ground", + }, + + // ironwater + jirachibanhammer: { + accuracy: 100, + basePower: 120, + category: "Physical", + shortDesc: "Prevents the target from switching out.", + desc: "Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Flip Turn, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", + name: "Jirachi Ban Hammer", + pp: 5, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Gigaton Hammer'); + }, + secondary: { + chance: 100, + onHit(target, source, move) { + if (source.isActive) target.addVolatile('trapped', source, move, 'trapper'); + }, + }, + target: "normal", + type: "Steel", + }, + + // Irpachuza + bibbidibobbidirands: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Changes target to a Randbats set.", + desc: "Z-Move requiring Irpatuzinium Z. Nearly always moves first. Permanently transforms the target into a randomized Pokemon that would be generated in one of the following formats: Gen 9 Random Battle, Gen 9 Hackmons Cup, Gen 9 Challenge Cup, or Computer-Generated Teams. In the vast majority of circumstances, this also prevents the target from acting this turn.", + name: "Bibbidi-Bobbidi-Rands", + gen: 9, + pp: 1, + priority: 0, + flags: {protect: 1}, + onPrepareHit(target, source) { + this.attrLastMove('[anim] Doom Desire'); + }, + onHit(target, source) { + const formats = ['gen9randombattle', 'gen9hackmonscup', 'gen9challengecup1v1', 'gen9computergeneratedteams']; + const randFormat = this.sample(formats); + let msg; + switch (randFormat) { + case 'gen9randombattle': + msg = "Ta-dah! You are now blessed with a set from the most popular format on the sim, hope you like it! n.n"; + break; + case 'gen9hackmonscup': + msg = "Hackmons Cup is like Rands but scrambled eggs, cheese and pasta. I'm sure you'll love it too n.n"; + break; + case 'gen9challengecup1v1': + msg = "The only difference between a Challenge Cup Pokémon and my in-game one is that the former actually surpassed lvl. 60, enjoy n.n"; + break; + case 'gen9computergeneratedteams': + msg = "We asked an AI to make a randbats set. YOU WON'T BELIEVE WHAT IT CAME UP WITH N.N"; + break; + } + let team = [] as PokemonSet[]; + const unModdedDex = Dex.mod('base'); + let depth = 0; + while (!team.length) { + team = Teams.generate(randFormat, {name: target.side.name}); + if (depth >= 50) break; // Congrats you won the lottery! + team = team.filter(p => { + const baseSpecies = unModdedDex.species.get(p.species); + const curSpecies = this.dex.species.get(p.species); + if (Object.values(baseSpecies.baseStats).join() !== Object.values(curSpecies.baseStats).join()) { + return false; + } + if (Object.values(baseSpecies.abilities).join() !== Object.values(curSpecies.abilities).join()) { + return false; + } + if (baseSpecies.types.join() !== curSpecies.types.join()) { + return false; + } + return true; + }); + depth++; + } + + this.addMove('-anim', target, 'Wish', target); + target.clearBoosts(); + this.add('-clearboost', target); + // @ts-ignore set wants a sig but randbats sets don't have one + changeSet(this, target, team[0], true); + this.add(`c:|${getName((source.illusion || source).name)}|${msg}`); + }, + isZ: "irpatuziniumz", + secondary: null, + target: "normal", + type: "Fairy", + }, + + // Isaiah + simplegameplan: { + accuracy: 100, + basePower: 95, + category: "Physical", + name: "Simple Gameplan", + shortDesc: "No additional effect.", + pp: 10, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onPrepareHit(target, source) { + this.attrLastMove('[anim] High Jump Kick'); + }, + secondary: null, + target: "allAdjacent", + type: "Psychic", + }, + + // J0rdy004 + snowysamba: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Snowy Samba", + shortDesc: "Sets Snow, +1 Sp. Atk, +2 Speed.", + desc: "Raises the user's Special Attack by 1 stage and Speed by 2 stages, and changes the weather to Snow, boosting the defense of Ice-types by 1.5x for 5 turns. Snow will not be set if the weather cannot be changed or if the weather is already Snow.", + pp: 15, + priority: 0, + flags: {snatch: 1, metronome: 1}, + boosts: { + spe: 2, + spa: 1, + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Agility', target); + this.add('-anim', source, 'Snowscape', target); + }, + weather: 'snow', + secondary: null, + target: "self", + type: "Ice", + }, + + // Kalalokki + knotweak: { + accuracy: 80, + basePower: 150, + category: "Physical", + name: "Knot Weak", + shortDesc: "Has 1/2 recoil.", + desc: "If the target lost HP, the user takes recoil damage equal to 1/2 the HP lost by the target, rounded half up, but not less than 1 HP.", + pp: 5, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + recoil: [1, 2], + secondary: null, + priority: 0, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Focus Punch', target); + }, + target: "normal", + type: "Fighting", + }, + + // Karthik + salvagedsacrifice: { + accuracy: 100, + basePower: 0, + damageCallback(pokemon) { + this.add('-anim', pokemon, 'Roost', pokemon); + this.heal(this.modify(pokemon.maxhp, 0.25), pokemon, pokemon, this.dex.getActiveMove('Salvaged Sacrifice')); + const damage = pokemon.hp; + this.add('-anim', pokemon, 'Final Gambit', this.activeTarget); + pokemon.faint(); + return damage; + }, + selfdestruct: "ifHit", + category: "Physical", + name: "Salvaged Sacrifice", + shortDesc: "Heals 25% HP, then uses Final Gambit.", + desc: "The user heals 1/4 of its maximum HP, then deals damage to the target equal to the user's current HP. If this attack is successful, the user faints.", + pp: 5, + priority: 0, + flags: {protect: 1, metronome: 1, noparentalbond: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + secondary: null, + target: "normal", + type: "Fighting", + }, + + // ken + ac: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Does something random.", + desc: "This move performs exactly one of the following at random, ignoring options that would do nothing: 10% chance to burn the target; 10% chance to paralyze the target; 10% chance to poison the target; 3% chance to put the target to sleep; 2% chance to freeze the target; 5% chance each to confuse, infatuate, Taunt, Encore, Torment, or Heal Block the target; 5% chance each to set Stealth Rock, Spikes, Toxic Spikes, or Sticky Web; 5% chance to remove entry hazards from the user's side of the field; 5% chance to lower the foe's highest stat by 1 stage; and a 5% chance to switch out.", + name: ", (ac)", + pp: 15, + priority: 0, + flags: {reflectable: 1, mustpressure: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Fling', target); + }, + secondary: { + chance: 100, + onHit(target, source, move) { + let success = false; + while (!success) { + const effect = this.random(100); + if (effect < 10) { + if (target.trySetStatus('psn', target)) { + success = true; + } + } else if (effect < 20) { + if (target.trySetStatus('par', target)) { + success = true; + } + } else if (effect < 30) { + if (target.trySetStatus('par', target)) { + success = true; + } + } else if (effect < 33) { + if (target.trySetStatus('slp', target)) { + success = true; + } + } else if (effect < 35) { + if (target.trySetStatus('frz', target)) { + success = true; + } + } else if (effect < 40) { + if (!target.volatiles['confusion']) { + target.addVolatile('confusion', source); + success = true; + } + } else if (effect < 45) { + if (!target.volatiles['attract']) { + target.addVolatile('attract', source); + success = true; + } + } else if (effect < 50) { + if (!target.volatiles['taunt']) { + target.addVolatile('taunt', source); + success = true; + } + } else if (effect < 55) { + if (target.lastMove && !target.volatiles['encore']) { + target.addVolatile('encore', source); + success = true; + } + } else if (effect < 60) { + if (!target.volatiles['torment']) { + target.addVolatile('torment', source); + success = true; + } + } else if (effect < 65) { + if (!target.volatiles['healblock']) { + target.addVolatile('healblock', source); + success = true; + } + } else if (effect < 70) { + if (target.side.addSideCondition('stealthrock')) { + success = true; + } + } else if (effect < 75) { + if (target.side.addSideCondition('stickyweb')) { + success = true; + } + } else if (effect < 80) { + if (target.side.addSideCondition('spikes')) { + success = true; + } + } else if (effect < 85) { + if (target.side.addSideCondition('toxicspikes')) { + success = true; + } + } else if (effect < 90) { + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (source.side.removeSideCondition(condition)) { + success = true; + this.add('-sideend', source.side, this.dex.conditions.get(condition).name, '[from] move: , (ac)', '[of] ' + source); + } + } + } else if (effect < 95) { + const bestStat = target.getBestStat(true, true); + this.boost({[bestStat]: -1}, target); + success = true; + } else { + if (this.canSwitch(source.side)) { + this.actions.useMove("teleport", source); + success = true; + } + } + } + }, + }, + target: "normal", + type: "Psychic", + }, + + // kenn + stonefaced: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Sets Stealth Rock. Target: -1 Defense/Speed.", + desc: "Lowers the target's Defense and Speed by 1 stage, and sets Stealth Rock on the target's side of the field, damaging Pokemon as they switch in. If Stealth Rock is already on the target's side of the field, the move will not set Stealth Rock but the other effects will still occur.", + name: "Stone Faced", + pp: 15, + priority: 0, + flags: {reflectable: 1, mustpressure: 1}, + sideCondition: 'stealthrock', + onPrepareHit(target, source) { + this.attrLastMove('[anim] Scary Face'); + this.attrLastMove('[anim] Stone Axe'); + }, + boosts: { + def: -1, + spe: -1, + }, + secondary: null, + target: "normal", + type: "Rock", + }, + + // Kennedy + hattrick: { + accuracy: 98, + basePower: 19, + category: "Physical", + shortDesc: "3 hits. Third hit crits. 3.5% chance to curse.", + desc: "Hits three times. The third hit is always a critical hit unless the target is under the effect of Lucky Chant or has the Battle Armor or Shell Armor Abilities. Each hit has a 3.5% chance to apply the Curse effect to the target, causing them to take damage equal to 25% of their maximum HP at the end of each turn until they switch out.", + name: "Hat-Trick", + gen: 9, + pp: 10, + priority: 0, + flags: {contact: 1, protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Focus Energy', source); + this.add('-anim', source, 'High Jump Kick', target); + this.add('-anim', target, 'Boomburst', source); + this.add('-anim', source, 'Aqua Step', target); + this.add('-anim', source, 'Aqua Step', target); + }, + onTryHit(target, source, move) { + if (move.hit === 3) { + move.willCrit = true; + } + }, + secondary: { + chance: 3.5, + volatileStatus: 'curse', + }, + multihit: 3, + target: "normal", + type: "Ice", + }, + anfieldatmosphere: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Anfield Atmosphere", + shortDesc: "No weather/sleep,share statuses,halve hazard dmg.", + desc: "For 6 turns, sets a field effect. Negates all weather conditions. Prevents Pokemon from falling asleep. Any status conditions and volatile status conditions applied to one Pokemon will also apply to the all Pokemon on the field. Halves entry hazard damage.", + pp: 5, + priority: 0, + flags: {mirror: 1}, + pseudoWeather: 'anfieldatmosphere', + condition: { + duration: 6, + durationCallback(source, effect) { + if (source?.hasAbility('persistent')) { + this.add('-activate', source, 'ability: Persistent', '[move] Anfield Atmosphere'); + return 8; + } + return 6; + }, + onUpdate(pokemon) { + if (pokemon.volatiles['confusion']) { + pokemon.removeVolatile('confusion'); + } + }, + onFieldStart(target, source) { + if (source?.hasAbility('persistent')) { + this.add('-fieldstart', 'move: Anfield Atmosphere', '[of] ' + source, '[persistent]'); + } else { + this.add('-fieldstart', 'move: Anfield Atmosphere', '[of] ' + source); + } + for (const pokemon of this.getAllActive()) { + if (pokemon.volatiles['confusion']) { + pokemon.removeVolatile('confusion'); + } + } + }, + onFieldRestart(target, source) { + this.field.removePseudoWeather('anfieldatmosphere'); + }, + onAnySetWeather(target, source, weather) { + return false; + }, + onSetStatus(status, target, source, effect) { + if (effect.id === 'anfieldatmosphere') return; + if (status.id === 'slp' && !target.isSemiInvulnerable()) { + this.add('-activate', target, 'move: Anfield Atmosphere'); + return false; + } + for (const pokemon of this.getAllActive()) { + if (!pokemon.hp || pokemon.fainted) continue; + pokemon.trySetStatus(status, source, this.effect); + } + }, + onTryAddVolatile(status, target) { + if (target.isSemiInvulnerable()) return; + if (status.id === 'yawn' || status.id === 'confusion') { + this.add('-activate', target, 'move: Anfield Atmosphere'); + return null; + } + }, + onDamage(damage, target, source, effect) { + if (effect && ['stealthrock', 'spikes', 'gmaxsteelsurge'].includes(effect.id)) { + return damage / 2; + } + }, + onFieldResidualOrder: 27, + onFieldResidualSubOrder: 1, + onFieldEnd() { + this.add('-fieldend', 'move: Anfield Atmosphere'); + }, + }, + secondary: null, + target: "all", + type: "Psychic", + }, + + // keys + protectoroftheskies: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Forces both Pokemon out. Can't be blocked.", + desc: "Both the target and the user are forced to switch out and be replaced with random unfainted allies. This effect cannot be blocked by any means other than having no valid allies that can be sent out.", + name: "Protector of the Skies", + pp: 10, + priority: -1, + flags: {}, + onTryMove(source, target, move) { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + for (const pokemon of this.getAllActive()) { + this.add('-anim', source, 'Whirlwind', pokemon); + } + }, + onModifyPriority(priority, source, target, move) { + const foe = source.foes()[0]; + if (foe && Object.values(foe.boosts).some(x => x !== 0)) { + return priority + 1; + } + }, + onHitField(target, source, move) { + for (const pokemon of this.getAllActive()) { + if (pokemon.hp <= 0 || pokemon.fainted) continue; + pokemon.forceSwitchFlag = true; + } + }, + secondary: null, + target: "all", + type: "Flying", + }, + + // kingbaruk + platinumrecord: { + accuracy: true, + basePower: 70, + category: "Special", + shortDesc: "Heals 50% HP, restores 1 PP for all other moves.", + desc: "Heals the user for 1/2 of their maximum HP, and restores 1 PP to all moves on the user's set other than Platinum Record.", + name: "Platinum Record", + pp: 5, + priority: 0, + flags: {sound: 1, heal: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Sing', target); + this.add('-anim', source, 'Iron Defense', target); + }, + onHit(target, source, move) { + this.heal(source.maxhp / 2, source, source, move); + for (const moveSlot of source.moveSlots) { + if (moveSlot.id === move.id) continue; + if (moveSlot.pp < moveSlot.maxpp) moveSlot.pp += 1; + } + }, + target: "normal", + type: "Fairy", + + }, + + // Kiwi + madmanifest: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "User: +1 Spe, Foe:Free Curse, 50% brn/par/psn.", + desc: "Applies the Curse effect to the target, causing them to take damage equal to 25% of their maximum HP at the end of each turn until they switch out. Has a 50% chance to cause the target to either become burned, become poisoned, or become paralyzed. Raises the user's Speed by 1 stage.", + name: "Mad Manifest", + pp: 10, + priority: 0, + flags: {}, + volatileStatus: 'curse', + onHit(target, source) { + const result = this.random(3); + if (result === 0) { + target.trySetStatus('psn', target); + } else if (result === 1) { + target.trySetStatus('par', target); + } else { + target.trySetStatus('brn', target); + } + this.boost({spe: 1}, source); + }, + onPrepareHit(target, source) { + this.attrLastMove('[anim] Dark Void'); + }, + target: "normal", + type: "Fairy", + + }, + + // Klmondo + thebetterwatershuriken: { + accuracy: 100, + basePower: 20, + category: "Physical", + shortDesc: "+1 Priority. Hits 2-5 times.", + desc: "Usually moves first. Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + name: "The Better Water Shuriken", + pp: 30, + priority: 1, + flags: {protect: 1, mirror: 1, metronome: 1}, + multihit: [2, 5], + secondary: null, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Water Shuriken', target); + this.add('-anim', source, 'Electro Shot', target); + }, + target: "normal", + type: "Water", + }, + + // kolohe + hangten: { + accuracy: 100, + basePower: 75, + category: "Special", + name: "Hang Ten", + shortDesc: "User sets Electric Terrain on hit.", + desc: "If this move is successful, the terrain becomes Electric Terrain.", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Stoked Sparksurfer', target); + this.add('-anim', source, 'Surf', target); + }, + secondary: { + chance: 100, + self: { + onHit() { + this.field.setTerrain('electricterrain'); + }, + }, + }, + target: "normal", + type: "Water", + }, + + // Kry + attackofopportunity: { + accuracy: 100, + basePower: 60, + basePowerCallback(pokemon, target, move) { + if (target.beingCalledBack || target.switchFlag) { + this.debug('Attack of Opportunity damage boost'); + return move.basePower * 1.5; + } + return move.basePower; + }, + category: "Physical", + shortDesc: "Pursuit, +2 Attack when KOing on switch.", + desc: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field. Power is multiplied by 1.5x and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the user's Attack is boosted by 2 stages and the replacement Pokemon does not become active until the end of the turn. If the user moves after an opponent using Flip Turn, Parting Shot, Teleport, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field.", + name: "Attack of Opportunity", + pp: 20, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Pursuit', target); + this.add('-anim', source, 'Behemoth Blade', target); + }, + beforeTurnCallback(pokemon) { + for (const side of this.sides) { + if (side.hasAlly(pokemon)) continue; + side.addSideCondition('attackofopportunity', pokemon); + const data = side.getSideConditionData('attackofopportunity'); + if (!data.sources) { + data.sources = []; + } + data.sources.push(pokemon); + } + }, + onModifyMove(move, source, target) { + if (target?.beingCalledBack || target?.switchFlag) { + move.accuracy = true; + move.onAfterMoveSecondarySelf = function (s, t, m) { + if (!t || t.fainted || t.hp <= 0) { + this.boost({atk: 1}, s, s, m); + } + }; + } + }, + onTryHit(target, pokemon) { + target.side.removeSideCondition('attackofopportunity'); + }, + condition: { + duration: 1, + onBeforeSwitchOut(pokemon) { + this.debug('Attack of Opportunity start'); + let alreadyAdded = false; + pokemon.removeVolatile('destinybond'); + for (const source of this.effectState.sources) { + if (!source.isAdjacent(pokemon) || !this.queue.cancelMove(source) || !source.hp) continue; + if (!alreadyAdded) { + this.add('-activate', pokemon, 'move: Pursuit'); + alreadyAdded = true; + } + if (source.canMegaEvo) { + for (const [actionIndex, action] of this.queue.entries()) { + if (action.pokemon === source && action.choice === 'megaEvo') { + this.actions.runMegaEvo(source); + this.queue.list.splice(actionIndex, 1); + break; + } + } + } + this.actions.runMove('attackofopportunity', source, source.getLocOf(pokemon)); + } + }, + }, + secondary: null, + target: "normal", + type: "Steel", + contestType: "Clever", + }, + + // Lasen + riseabove: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Magnet Rise + Aqua Ring.", + desc: "For 5 turns, the user is immune to Ground-type attacks and effects as long as it remains active, and the user will recover 1/16th of their maximum HP at the end of each turn as long as it remains active. If the user uses Baton Pass, the replacement will gain the effects.", + name: "Rise Above", + gen: 9, + pp: 5, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(pokemon) { + this.add('-anim', pokemon, 'Magnet Rise', pokemon); + this.add('-anim', pokemon, 'Quiver Dance', pokemon); + }, + volatileStatus: 'riseabove', + onTry(source, target, move) { + if (target.volatiles['smackdown'] || target.volatiles['ingrain']) return false; + + // Additional Gravity check for Z-move variant + if (this.field.getPseudoWeather('Gravity')) { + this.add('cant', source, 'move: Gravity', move); + return null; + } + }, + condition: { + duration: 5, + onStart(target) { + this.add('-start', target, 'Rise Above'); + }, + onImmunity(type) { + if (type === 'Ground') return false; + }, + onResidualOrder: 6, + onResidual(pokemon) { + this.heal(pokemon.baseMaxhp / 16); + }, + onEnd(target) { + this.add('-end', target, 'Rise Above'); + }, + }, + secondary: null, + target: "self", + type: "Electric", + }, + + // Lets go shuckles + shucklepower: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Trick Room + Power Trick.", + desc: "Until the user switches out, it swaps its Attack and Defense stats, and stat stage changes remain on their respective stats. Sets Trick Room for 5 turns, making the slower Pokemon move first.", + name: "Shuckle Power", + pp: 5, + priority: -6, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Power Trick', source); + }, + pseudoWeather: 'trickroom', + volatileStatus: 'powertrick', + secondary: null, + target: "self", + type: "Psychic", + }, + + // Lily + powerup: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Power Up", + shortDesc: "Heals 50% HP. Heals 3% more per fainted ally.", + desc: "Heals the user for 50% of their maximum HP. Heals an additional 3% of the user's maximum HP for each team member on the user's side that has fainted.", + pp: 5, + priority: 0, + flags: {heal: 1}, + onModifyMove(move, source, target) { + const fntAllies = source.side.pokemon.filter(ally => ally !== source && ally.fainted); + if (move.heal) move.heal[0] = 50 + (3 * fntAllies.length); + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(pokemon) { + this.add('-anim', pokemon, 'Shore Up', pokemon); + this.add('-anim', pokemon, 'Charge', pokemon); + this.add('-anim', pokemon, 'Moonlight', pokemon); + }, + heal: [50, 100], + secondary: null, + target: "self", + type: "Electric", + }, + + // Loethalion + darkmooncackle: { + accuracy: 100, + basePower: 30, + basePowerCallback(pokemon, target, move) { + const bp = move.basePower + 20 * pokemon.positiveBoosts(); + this.debug('BP: ' + bp); + return bp; + }, + category: "Special", + desc: "Power is equal to 30+(X*20), where X is the user's total stat stage changes that are greater than 0. Has a 100% chance to raise the user's Special Attack by 1 stage.", + shortDesc: "+20 bp per stat boost. 100% chance +1 SpA.", + name: "Darkmoon Cackle", + pp: 15, + priority: 0, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Bulk Up', source); + this.add('-anim', source, 'Cosmic Power', source); + this.add('-anim', source, 'Moonblast', target); + }, + secondary: { + chance: 100, + self: { + boosts: { + spa: 1, + }, + }, + }, + target: "normal", + type: "Normal", + }, + + // Lumari + mysticalbonfire: { + accuracy: 100, + basePower: 100, + basePowerCallback(pokemon, target, move) { + if (target.status || target.hasAbility(['comatose', 'mensiscage'])) { + this.debug('BP doubled from status condition'); + return move.basePower * 1.5; + } + return move.basePower; + }, + category: "Physical", + shortDesc: "50% burn. 1.5x power if target is already statused.", + desc: "This move has a 50% chance to give the target a burn. This move's power is 1.5x stronger if the target has a non-volatile status condition.", + name: "Mystical Bonfire", + pp: 15, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Infernal Parade', target); + this.add('-anim', source, 'Fury Attack', target); + }, + secondary: { + chance: 50, + status: 'brn', + }, + target: "normal", + type: "Psychic", + }, + + // Lunell + praisethemoon: { + accuracy: 90, + basePower: 120, + category: "Special", + shortDesc: "First turn: +1 SpA. No charge in Gravity.", + desc: "This attack charges on the first turn and executes on the second. Raises the user's Special Attack by 1 stage on the first turn. If the user is holding a Power Herb or Gravity is active, the move completes in one turn.", + name: "Praise the Moon", + pp: 10, + priority: 0, + flags: {charge: 1, protect: 1, mirror: 1}, + onTryMove(attacker, defender, move) { + this.attrLastMove('[still]'); + if (attacker.removeVolatile(move.id)) { + return; + } + this.boost({spa: 1}, attacker, attacker, move); + if (this.field.pseudoWeather['gravity']) { + this.attrLastMove('[still]'); + this.addMove('-anim', attacker, move.name, defender); + return; + } + if (!this.runEvent('ChargeMove', attacker, defender, move)) { + return; + } + attacker.addVolatile('twoturnmove', defender); + return null; + }, + secondary: null, + hasSheerForce: true, + onPrepareHit(target, source) { + this.attrLastMove('[still]'); + this.add('-anim', source, 'Lunar Dance', target); + this.add('-anim', source, 'Moongeist Beam', target); + }, + target: "normal", + type: "Fairy", + }, + + // Lyna + wrathoffrozenflames: { + accuracy: 100, + basePower: 100, + category: "Physical", + shortDesc: "80% gain Ice type, 20% gain Fire type.", + desc: "After using the move, there is an 80% chance the user gains an additional Ice typing, and a 20% chance the user gains an additional Fire typing.", + name: "Wrath of Frozen Flames", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Clangorous Soulblaze', target); + }, + onHit(target, source, move) { + if (source.terastallized) return; + if (this.randomChance(8, 10)) { + source.addType('Ice'); + this.add('-start', source, 'typeadd', 'Ice', '[from] move: Wrath of Frozen Flames'); + } else { + source.addType('Fire'); + this.add('-start', source, 'typeadd', 'Fire', '[from] move: Wrath of Frozen Flames'); + } + }, + secondary: null, + target: "normal", + type: "Dragon", + }, + + // Maia + bodycount: { + accuracy: 100, + basePower: 50, + basePowerCallback(pokemon, target, move) { + return 50 + 50 * pokemon.side.totalFainted; + }, + category: "Special", + shortDesc: "+50 power for each time a party member fainted.", + desc: "Power is equal to 50+(X*50), where X is the total number of times any Pokemon has fainted on the user's side, and X cannot be greater than 100.", + name: "Body Count", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Core Enforcer'); + }, + secondary: null, + target: "normal", + type: "Ghost", + }, + + // marillvibes + goodvibesonly: { + accuracy: 100, + basePower: 90, + category: "Physical", + shortDesc: "Raises the user's Speed by 1 stage.", + desc: "Has a 100% chance to raise the user's Speed by 1 stage.", + name: "Good Vibes Only", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, contact: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Aqua Step', target); + }, + secondary: { + chance: 100, + self: { + boosts: { + spe: 1, + }, + }, + }, + target: "normal", + type: "Fairy", + }, + + // maroon + metalblast: { + accuracy: 90, + basePower: 90, + category: "Physical", + shortDesc: "Sets G-Max Steelsurge on the foe's side.", + desc: "If this move is successful, it sets up G-Max Steelsurge on the opposing side of the field, damaging each opposing Pokemon that switches in. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Steel type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", + name: "Metal Blast", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Steel Beam', target); + this.add('-anim', source, 'G-max Steelsurge', target); + }, + onAfterHit(target, source, move) { + if (!move.hasSheerForce && source.hp) { + for (const side of source.side.foeSidesWithConditions()) { + side.addSideCondition('gmaxsteelsurge'); + } + } + }, + onAfterSubDamage(damage, target, source, move) { + if (!move.hasSheerForce && source.hp) { + for (const side of source.side.foeSidesWithConditions()) { + side.addSideCondition('gmaxsteelsurge'); + } + } + }, + secondary: {}, // Sheer Force-boosted + target: "normal", + type: "Steel", + }, + + // Mathy + breakingchange: { + accuracy: 100, + basePower: 70, + category: "Physical", + shortDesc: "Ignores target's Ability; disables it on hit.", + desc: "This move and its effects ignore the Abilities of other Pokemon. When this move hits the target, the target's Ability is suppressed until it switches out. Innate Abilities are unaffected.", + name: "Breaking Change", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Salt Cure'); + }, + onHit(target, source) { + if (target.getAbility().flags['cantsuppress']) return; + if (!target.addVolatile('gastroacid')) return; + this.add(`c:|${getName((source.illusion || source).name)}|Sorry i tried to fix smth but accidentally broke your ability :( will fix it next week`); + }, + ignoreAbility: true, + secondary: null, + target: "normal", + type: "Normal", + }, + + // Merritty + newbracket: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Forces both Pokemon out. Can't be blocked.", + desc: "Both the target and the user are forced to switch out and be replaced with random unfainted allies. This effect cannot be blocked by any means other than having no valid allies that can be sent out.", + name: "New Bracket", + pp: 10, + priority: 0, + flags: {}, + onTryMove(source, target, move) { + this.attrLastMove('[still]'); + if (source.side.pokemonLeft === 1) { + this.add('-fail', source); + return false; + } + if (!source.hasAbility('endround')) { + this.add('-fail', source); + this.hint(`The user's ability needs to be End Round for New Bracket to work.`); + return false; + } + this.attrLastMove(`[anim] Trick Room`); + }, + onHitField(target, source, move) { + for (const pokemon of this.getAllActive()) { + if (pokemon.hp <= 0 || pokemon.fainted || pokemon.isSemiInvulnerable()) { + continue; + } + pokemon.forceSwitchFlag = true; + } + }, + secondary: null, + target: "all", + type: "Electric", + }, + + // Meteordash + plagiarism: { + accuracy: 100, + basePower: 0, + category: "Status", + name: "Plagiarism", + shortDesc: "Steal+use foe sig move+imprison. Fail: +1 stats.", + desc: "User copies opponents signature move and adds it to its own movepool, replacing this move. The user then uses the copied move immediately and gains the Imprison condition, preventing foes from using moves in the user's moveset. The PP of the copied move will be adjusted to match the PP the copied signature move is supposed to have. If the copied custom move would fail if used in this manner, Plagiarism fails and the user boosts all stats by 1 stage, except Accuracy and Evasion.", + pp: 5, + priority: 1, + flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, nosketch: 1}, + onTry(source) { + if (source.m.usedPlagiarism) { + this.hint("Plagiarism only works once per switch-in."); + return false; + } + }, + onPrepareHit() { + this.attrLastMove('[anim] Mimic'); + this.attrLastMove('[anim] Imprison'); + }, + onHit(target, source, m) { + let sigMoveName = ssbSets[(target.illusion || target).name]?.signatureMove; + if (!sigMoveName) sigMoveName = target.moveSlots[target.moveSlots.length - 1].id; + const move = this.dex.getActiveMove(sigMoveName); + if (!target || this.queue.willSwitch(target) || target.beingCalledBack || + move.flags['failcopycat'] || move.flags['nosketch']) { + this.boost({spa: 1, spd: 1, spe: 1}, source, source, m); + return; + } + const plagiarismIndex = source.moves.indexOf('plagiarism'); + if (plagiarismIndex < 0) return false; + this.add(`c:|${getName((source.illusion || source).name)}|yoink`); + const plagiarisedMove = { + move: move.name, + id: move.id, + pp: move.pp, + maxpp: move.pp, + target: move.target, + disabled: false, + used: false, + }; + source.moveSlots[plagiarismIndex] = plagiarisedMove; + this.add('-activate', source, 'move: Plagiarism', move.name); + this.add('-message', `${source.name} plagiarised ${target.name}'s ${move.name}!`); + this.actions.useMove(move.id, source, {target}); + delete target.volatiles['imprison']; + source.addVolatile('imprison', source); + source.m.usedPlagiarism = true; + }, + secondary: null, + target: "normal", + type: "Dark", + }, + + // Mex + timeskip: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Time Skip", + shortDesc: "Clears hazards. +10 turns. +1 Spe.", + desc: "Removes all entry hazards from the user's side of the field, increases the turn counter by 10, and boosts the user's Speed by 1 stage.", + pp: 10, + priority: 0, + flags: {}, + onPrepareHit() { + this.attrLastMove('[anim] Trick Room'); + }, + self: { + onHit(pokemon) { + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Time Skip', '[of] ' + pokemon); + } + } + // 9 turn addition so the +1 from endTurn totals to 10 turns + this.turn += 9; + }, + boosts: { + spe: 1, + }, + }, + secondary: null, + target: "all", + type: "Dragon", + }, + + // Miojo + vruuuuuum: { + accuracy: 100, + basePower: 90, + category: "Physical", + shortDesc: "Super effective on Water.", + desc: "This move's type effectiveness against Water is changed to be super effective no matter what this move's type is.", + name: "vruuuuuum", + pp: 20, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Shift Gear', source); + this.add('-anim', source, 'Ice Spinner', target); + }, + onEffectiveness(typeMod, target, type) { + if (type === 'Water') return 1; + }, + secondary: null, + target: "normal", + type: "Ice", + }, + + // Monkey + bananabreakfast: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "2 random stats +1; Lock-On/Laser Focus/Charge.", + desc: "Boosts 2 random stats of the user by 1 stage each, except Accuracy and Evasion. These stats can be the same. Applies one of Lock-On, Laser Focus, or Charge to the user at random.", + name: "Banana Breakfast", + gen: 9, + pp: 10, + priority: 2, + flags: {mirror: 1, heal: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Fire Fang', target); + this.add('-anim', source, 'Belly Drum', target); + }, + onHit(target, source) { + const stats: BoostID[] = []; + const boost: SparseBoostsTable = {}; + let statPlus: BoostID; + for (statPlus in source.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (source.boosts[statPlus] < 6) { + stats.push(statPlus); + } + } + const randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + const randomStat2: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + if (randomStat) boost[randomStat] = 1; + if (randomStat2 && randomStat === randomStat2) boost[randomStat] = 2; + else if (randomStat2) boost[randomStat2] = 1; + this.boost(boost, source); + const result = this.random(3); + if (result === 0) { + this.actions.useMove("laserfocus", target); + } else if (result === 1) { + this.actions.useMove("lockon", target); + } else { + this.actions.useMove("charge", target); + } // This is easier than implementing each condition manually + this.heal(target.maxhp / 4, target, target, this.effect); + }, + secondary: null, + target: "self", + type: "Grass", + }, + + // MyPearl + eonassault: { + accuracy: 100, + basePower: 45, + category: "Special", + shortDesc: "Hits twice. 20% -1 Sp. Atk, 20% -1 Sp. Def.", + desc: "Hits 2 times. Each hit has a 20% chance to lower Special Attack by 1 stage, and a 20% chance to lower Special Defense by 1 stage.", + name: "Eon Assault", + gen: 9, + pp: 15, + priority: 0, + flags: {protect: 1}, + multihit: 2, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Mist Ball', target); + this.add('-anim', source, 'Luster Purge', target); + }, + secondaries: [ + { + chance: 20, + boosts: { + spa: -1, + }, + }, { + chance: 20, + boosts: { + spd: -1, + }, + }, + ], + target: "normal", + type: "Psychic", + }, + + // Neko + qualitycontrolzoomies: { + accuracy: 100, + basePower: 50, + basePowerCallback(pokemon, target, move) { + if (pokemon.side.pokemonLeft === 1) return move.basePower + 30; + return move.basePower; + }, + category: "Physical", + shortDesc: "Pivot; switchin: Booster Energy. If last: 80BP.", + desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The replacement party member gains a Cat Stamp of Approval with the effect of Booster Energy, boosting its highest stat by 1.3x, or 1.5x in the case of Speed. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities. If there are no unfainted party members, the move's Base Power is increased to 80 and the user gains the Cat Stamp of Approval boost instead.", + name: "Quality Control Zoomies", + gen: 9, + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Ice Spinner', target); + this.add('-anim', source, 'Chilly Reception', source); + }, + self: { + slotCondition: 'qualitycontrolzoomies', + }, + condition: { + onSwap(target) { + if (!target.fainted) { + target.addVolatile('catstampofapproval'); + target.side.removeSlotCondition(target, 'qualitycontrolzoomies'); + } + }, + }, + onHit(target, source, move) { + let message = 'Meow has no other options, so ;w;'; + if (source.side.pokemonLeft > 1) { + message = 'Meow is not the right Pokemon to be an example here, swap meow out please.'; + } + this.add(`c:|${getName('Neko')}|${message}`); + }, + onModifyMove(move, pokemon, target) { + if (pokemon.side.pokemonLeft === 1) { + move.self = { + onHit(t, source, m) { + source.addVolatile('catstampofapproval'); + }, + }; + delete move.condition; + } + }, + selfSwitch: true, + secondary: null, + target: "normal", + type: "Ice", + }, + + // Ney + shadowdance: { + accuracy: 90, + basePower: 110, + category: "Physical", + shortDesc: "Raises the user's Attack by 1 stage.", + desc: "100% chance to raise the user's Attack by 1 stage.", + name: "Shadow Dance", + gen: 9, + pp: 10, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1, dance: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Poltergeist', target); + this.add('-anim', source, 'Dragon Dance', source); + }, + secondary: { + chance: 100, + self: { + boosts: { + atk: 1, + }, + }, + }, + target: "normal", + type: "Ghost", + }, + + // Notater517 + nyaa: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Haze and then +1 Atk / Def.", + desc: "Resets the stat stages of all active Pokemon to 0, and then raises the user's Attack and Defense by 1 stage.", + name: "~nyaa", + gen: 9, + pp: 10, + priority: 0, + flags: {bypasssub: 1}, + onPrepareHit(target, source) { + this.attrLastMove('[anim] Haze'); + this.attrLastMove('[anim] Sweet Kiss'); + this.attrLastMove('[anim] Baton Pass'); + }, + onHitField(target, source, move) { + this.add('-clearallboost'); + for (const pokemon of this.getAllActive()) { + pokemon.clearBoosts(); + } + this.boost({atk: 1, def: 1}, source, source, move); + }, + slotCondition: 'nyaa', + condition: { + onSwap(target) { + const source = this.effectState.source; + if (!target.fainted) { + this.add(`c:|${getName((source.illusion || source).name)}|~nyaa ${target.name}`); + this.add(`c:|${getName('Jeopard-E')}|**It is now ${target.name}'s turn to ask a question.**`); + target.side.removeSlotCondition(target, 'nyaa'); + } + }, + }, + secondary: null, + target: "all", + type: "Steel", + }, + + // nya + '3': { + accuracy: 100, + basePower: 70, + category: "Special", + shortDesc: "Moves first. 40% infatuates. 10% backfire chance.", + desc: "Usually moves first. This move has a 40% chance to infatuate the target, regardless of gender, but this move has a 10% chance to be used by the target at the user instead.", + name: ":3", + gen: 9, + pp: 5, + priority: 1, + flags: {protect: 1}, + onTry(pokemon, target, move) { + if (move.sourceEffect !== '3' && this.randomChance(1, 10)) { + this.add('-message', "The move backfired!"); + const activeMove = this.dex.getActiveMove(':3'); + activeMove.hasBounced = true; + this.actions.useMove(activeMove, target, {target: pokemon}); + return null; + } + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Attract', target); + }, + secondary: { + volatileStatus: 'attract', + chance: 40, + }, + target: "normal", + type: "Fairy", + }, + + // pants + eerieapathy: { + accuracy: 100, + basePower: 0, + category: "Status", + name: "Eerie Apathy", + shortDesc: "Wish + Taunts the foe.", + pp: 15, + priority: 0, + flags: {snatch: 1, heal: 1, protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + self: { + slotCondition: 'Wish', + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Memento', target); + }, + onHit(target, source, move) { + if (!target.volatiles['taunt']) { + target.addVolatile('taunt', source, move); + } + }, + secondary: null, + target: "normal", + type: "Ghost", + }, + + // PartMan + alting: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Alting", + shortDesc: "Switch+Protect, Shiny: 69BP ???-type atk instead.", + desc: "If the user is not shiny, it switches out even if it is trapped and is replaced immediately by a selected party member, and if the user moved first this turn, the selected party member will be protected from most attacks made by other Pokemon this turn. If the user is shiny, this move instead becomes a 69 Base Power ???-type special attack.", + pp: 5, + priority: 0, + flags: {snatch: 1}, + stallingMove: true, + sideCondition: 'alting', + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Memento', target); + + this.add(`l|${getName((source.illusion || source).name).split('|')[1]}`); + this.add(`j|FakePart`); + }, + onModifyMove(move, source, target) { + move.type = "???"; + if (source.set?.shiny) { + move.accuracy = 100; + move.basePower = 69; + move.category = "Special"; + move.flags = {protect: 1, bypasssub: 1}; + move.target = "normal"; + + delete move.selfSwitch; + delete move.stallingMove; + delete move.sideCondition; + delete move.condition; + + // Note: Taunt will disable all forms of Alting, including the damaging one. + // This is intentional. + } + }, + condition: { + duration: 1, + onSideStart(target, source) { + this.add('-singleturn', source, 'Alting'); + }, + onTryHitPriority: 3, + onTryHit(target, source, move) { + if (!move.flags['protect']) { + if (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return; + if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; + return; + } + if (move && (move.target === 'self' || move.category === 'Status')) return; + this.add('-activate', target, 'move: Alting', move.name); + const lockedmove = source.getVolatile('lockedmove'); + if (lockedmove) { + // Outrage counter is reset + if (source.volatiles['lockedmove'].duration === 2) { + delete source.volatiles['lockedmove']; + } + } + return this.NOT_FAIL; + }, + }, + selfSwitch: true, + target: "allySide", + type: "Ghost", // Updated to ??? in onModifyMove + }, + + // Pastor Gigas + calltorepentance: { + accuracy: 100, + basePower: 80, + category: "Physical", + shortDesc: "Applies Heal Block and Taunt.", + desc: "If this move deals damage, the target is prevented from using any status moves for 3 turns or restoring any HP for 5 turns, with both effects ending if the target switches out. During the effect, status moves and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP or use status moves. The Regenerator Ability is unaffected, and Pokemon with Oblivious are immune to the Taunt effect.", + name: "Call to Repentance", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Hyper Voice', target); + this.add('-anim', source, 'Judgment', target); + }, + secondaries: [ + { + chance: 100, + volatileStatus: 'healblock', + }, { + chance: 100, + volatileStatus: 'taunt', + }, + ], + target: "normal", + type: "Normal", + }, + + // Peary + "1000gears": { + accuracy: true, + basePower: 0, + category: "Status", + name: "1000 Gears", + shortDesc: "Heals 100% HP,cures status,+1 Def/SpD,+5 levels.", + desc: "Z-Move requiring Pearyum Z. Heals the user for 100% of its maximum HP, cures its non-volatile status effects, boosts its Defense and Special Defense by 1 stage, and raises its level by 5.", + pp: 1, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(pokemon) { + this.add('-anim', pokemon, 'Shift Gear', pokemon); + this.add('-anim', pokemon, 'Belly Drum', pokemon); + }, + onHit(target, pokemon, move) { + this.heal(pokemon.maxhp, pokemon, pokemon, move); + pokemon.cureStatus(); + this.boost({def: 1, spd: 1}); + (pokemon as any).level += 5; + pokemon.details = pokemon.species.name + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + + (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); + this.add('-anim', pokemon, 'Geomancy', pokemon); + this.add('replace', pokemon, pokemon.details); + this.add('-message', `${pokemon.name} gained 5 levels!`); + }, + isZ: "pearyumz", + secondary: null, + target: "self", + type: "Steel", + }, + + // phoopes + gen1blizzard: { + accuracy: 90, + basePower: 120, + category: "Special", + name: "Gen 1 Blizzard", + desc: "Has a 10% chance to freeze the target.", + shortDesc: "10% chance to freeze the target.", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Blizzard'); + }, + secondary: { + chance: 10, + status: 'frz', + }, + target: "normal", + type: "Ice", + }, + + // Pissog + asongoficeandfire: { + accuracy: 100, + basePower: 100, + category: "Special", + name: "A Song of Ice and Fire", + shortDesc: "Type depends on form. Switches form.", + desc: "If the user is Volcarona, this move is Ice-type and, after dealing damage, transforms the user into a Snow Warning Frosmoth with Blizzard, Chilly Reception, and Aurora Veil. If the user is Frosmoth, this move is Fire-type and, after dealing damage, transforms the user into a Drought Volcarona with Torch Song, Morning Sun, and Solar Beam. This move fails if the user is neither Frosmoth nor Volcarona.", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, failcopycat: 1, nosketch: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + if (source.species.name === 'Volcarona') { + this.add('-anim', source, 'Blizzard', target); + } else { + this.add('-anim', source, 'Fiery Dance', target); + } + }, + onModifyType(move, pokemon) { + if (pokemon.species.name === 'Volcarona') { + move.type = "Ice"; + } else { + move.type = "Fire"; + } + }, + onHit(target, source, move) { + if (source.species.name === 'Volcarona') { + changeSet(this, source, ssbSets['Pissog-Frosmoth'], true); + } else if (source.species.name === 'Frosmoth') { + changeSet(this, source, ssbSets['Pissog'], true); + } + }, + target: "normal", + type: "Fire", + }, + + // pokemonvortex + roulette: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Roulette", + shortDesc: "Use a random move, and get a random moveset.", + desc: "A random move is selected for use, and then the user's other three moves are replaced with random moves. Aura Wheel, Dark Void, Explosion, Final Gambit, Healing Wish, Hyperspace Fury, Lunar Dance, Memento, Misty Explosion, Revival Blessing, and Self-Destruct cannot be selected.", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Nasty Plot', source); + this.add('-anim', source, 'Metronome', target); + this.add('-anim', source, 'Explosion', target); + }, + onHit(target, source) { + const bannedList = [ + 'aurawheel', 'darkvoid', 'explosion', 'finalgambit', 'healingwish', 'hyperspacefury', + 'lunardance', 'memento', 'mistyexplosion', 'revivalblessing', 'selfdestruct', + ]; + const moves = this.dex.moves.all().filter(move => ( + !source.moves.includes(move.id) && + (!move.isNonstandard || move.isNonstandard === 'Unobtainable') + )); + this.actions.useMove(this.sample(moves.filter(x => !bannedList.includes(x.id))), target); + for (const i of target.moveSlots.keys()) { + if (i > 2) break; + const randomMove = this.sample(moves.filter(x => !bannedList.includes(x.id))); + bannedList.push(randomMove.id); + const replacement = { + move: randomMove.name, + id: randomMove.id, + pp: randomMove.pp, + maxpp: randomMove.pp, + target: randomMove.target, + disabled: false, + used: false, + }; + target.moveSlots[i] = target.baseMoveSlots[i] = replacement; + } + }, + target: "self", + type: "Normal", + }, + + // Princess Autumn + cottoncandycrush: { + accuracy: 100, + basePower: 80, + category: "Physical", + shortDesc: "Uses Sp. Def over Attack in damage calculation.", + desc: "Damage is calculated using the user's Special Defense stat as its Attack, including stat stage changes. Other effects that modify the Attack stat are used as normal.", + name: "Cotton Candy Crush", + overrideOffensiveStat: "spd", + gen: 9, + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Fusion Bolt', target); + this.add('-anim', source, 'Fleur Cannon', target); + }, + target: "normal", + type: "Fairy", + }, + + // ptoad + pleek: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Pleek...", + shortDesc: "+4 Attack + inflict Perish Song on the user.", + desc: "Raises the user's Attack by 4 stages. Inflicts the Perish Song effect on the user, causing it to faint in three turns at the end of the turn.", + pp: 10, + priority: 0, + flags: {sound: 1, bypasssub: 1}, + onTry(source) { + if (source.m.usedPleek) { + this.hint("Pleek... only works once per switch-in."); + return false; + } + }, + onPrepareHit() { + this.attrLastMove('[anim] Hyper Voice'); + this.attrLastMove('[anim] Splash'); + }, + onHit(target, source, move) { + this.add(`c:|${getName((source.illusion || source).name)}|Pleek...`); + this.boost({atk: 4}, source, source, move); + source.addVolatile('perishsong'); + this.add('-start', source, 'perish3', '[silent]'); + source.m.usedPleek = true; + }, + target: "self", + type: "Fairy", + }, + + // Pulse_kS + luckpulse: { + accuracy: 100, + basePower: 90, + category: "Special", + name: "Luck Pulse", + shortDesc: "Random type. 40% random effect. High crit.", + desc: "This move's typing is chosen randomly between the 18 standard types, and each type has a 40% chance to apply a status effect to the target specific to that type. This move has an increased chance to result in a critical hit. The list of effects per type are as follows: Normal can apply drowsy; Fire can apply burn; Water can apply Aqua Ring; Grass can apply Leech Seed; Flying can apply confusion; Fighting can apply partial trapping; Poison can apply Toxic poison; Electric can apply paralysis; Ground can apply No Retreat, trapping the target without granting boosts; Rock can apply Salt Cure; Psychic can apply sleep; Ice can apply freeze; Bug can apply poison; Ghost can apply Disable; Steel can cause the target to flinch; Dragon can cause the target to recharge on their next turn, as if they had just used Hyper Beam; Dark can apply Taunt; and Fairy can apply infatuation.", + critRatio: 2, + pp: 10, + priority: 0, + flags: {pulse: 1, protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + this.add('-anim', source, 'Tera Blast ' + move.type, target); + }, + onModifyType(move, pokemon, target) { + const type = this.sample(this.dex.types.names().filter(i => i !== 'Stellar')); + move.type = type; + }, + onTryHit(target, source, move) { + const messages = [ + 'Kai Shinden', + 'Kaio Sama', + 'Kaiba, Seto', + 'Kairyu-Shin', + 'Kaito Shizuki', + 'Kanga Skhan', + 'KanSas', + 'Karakuri Shogun', + 'Kate Stewart', + 'Kendo Spirit', + 'Keratan sulfate', + 'Kernel streaming', + 'Key Stage', + 'Kids Suck', + 'KillSteal', + 'Kilometers / Second', + 'Kilosecond', + 'King of the Swamp', + 'King\'s Shield', + 'Kirk/Spock', + 'Klingon Security', + 'Kuroudo (Cloud) Strife', + 'Kyouko Sakura', + 'KyrgyzStan', + 'Kpop Star', + 'Kartana Swords dance', + ]; + this.add(`c:|${getName((source.illusion || source).name)}|The kS stands for ${this.sample(messages)}`); + }, + secondary: { + chance: 40, + onHit(target, source, move) { + const table: {[k: string]: {volatileStatus?: string, status?: string}} = { + Normal: {volatileStatus: 'yawn'}, + Fire: {status: 'brn'}, + Water: {volatileStatus: 'aquaring'}, + Grass: {volatileStatus: 'leechseed'}, + Flying: {volatileStatus: 'confusion'}, + Fighting: {volatileStatus: 'partiallytrapped'}, + Poison: {status: 'tox'}, + Electric: {status: 'par'}, + Ground: {volatileStatus: 'trapped'}, + Rock: {volatileStatus: 'saltcure'}, + Psychic: {status: 'slp'}, + Ice: {status: 'frz'}, + Bug: {status: 'psn'}, + Ghost: {volatileStatus: 'disable'}, + Steel: {volatileStatus: 'flinch'}, + Dark: {volatileStatus: 'mustrecharge'}, + Dragon: {volatileStatus: 'taunt'}, + Fairy: {volatileStatus: 'attract'}, + }; + let condition = table[move.type]; + if (!condition) condition = table['Normal']; + if (condition.status) { + target.trySetStatus(condition.status); + } else if (condition.volatileStatus) { + target.addVolatile(condition.volatileStatus); + } + }, + }, + target: "normal", + type: "???", + }, + + // PYRO + meatgrinder: { + accuracy: 100, + basePower: 60, + category: "Physical", + name: "Meat Grinder", + shortDesc: "User:+1/8 HP/turn;Foe:-1/8 HP/turn,Nrm/Fairy 1/4.", + desc: "Causes damage to the target equal to 1/8 of its maximum HP (1/4 if the target is Normal or Fairy type), rounded down, and heals the user equal to 1/8 of its maximum HP, both at the end of each turn during effect. This effect ends when the target is no longer active.", + pp: 15, + priority: 0, + flags: {protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Guillotine'); + }, + condition: { + noCopy: true, + onStart(pokemon) { + this.add('-start', pokemon, 'Meat Grinder'); + }, + onResidualOrder: 13, + onResidual(pokemon, source) { + this.damage(pokemon.baseMaxhp / (pokemon.hasType(['Normal', 'Fairy']) ? 4 : 8)); + + const target = this.getAtSlot(pokemon.volatiles['meatgrinder'].sourceSlot); + if (!pokemon || pokemon.fainted || pokemon.hp <= 0) { + this.add(`c:|${getName((target.illusion || target).name)}|Tripping off the beat kinda, dripping off the meat grinder`); + } + if (!target || target.fainted || target.hp <= 0) { + this.debug('Nothing to heal'); + return; + } + this.heal(target.baseMaxhp / 8, target, pokemon); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Meat Grinder'); + }, + }, + secondary: { + chance: 100, + volatileStatus: 'meatgrinder', + }, + target: "normal", + type: "Steel", + }, + + // Quite Quiet + worriednoises: { + accuracy: 100, + basePower: 90, + category: "Special", + name: "*Worried Noises*", + shortDesc: "+1 SpA. Type varies based on user's primary type.", + desc: "Has a 100% chance to raise the user's Special Attack by 1 stage. This move's type depends on the user's primary type. If the user's primary type is typeless, this move's type is the user's secondary type if it has one, otherwise the added type from effects that add extra typings. This move is typeless if the user's type is typeless alone.", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Tidy Up', source); + this.add('-anim', source, 'Bug Buzz', target); + }, + onModifyType(move, pokemon) { + let type = pokemon.getTypes()[0]; + if (type === "Bird") type = "???"; + move.type = type; + }, + secondary: { + chance: 100, + self: { + boosts: { + spa: 1, + }, + }, + }, + target: "normal", + type: "Normal", + }, + + // quziel + reshape: { + accuracy: 100, + basePower: 0, + category: "Status", + name: "Reshape", + shortDesc: "User: +1 SpA. Target becomes a random monotype.", + desc: "Raises the user's Special Attack by 1 stage and changes the target's typing to any one of the 18 standard types at random, replacing their old typing.", + pp: 10, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Reflect Type', target); + }, + onHit(target, source, move) { + const type = this.sample(this.dex.types.names().filter(i => i !== 'Stellar')); + target.setType(type); + this.add('-start', target, 'typechange', type, '[from] move: Reshape'); + this.boost({spa: 1}, source); + }, + target: "normal", + type: "Normal", + }, + + // R8 + magictrick: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Magic Trick", + shortDesc: "Teleport + Clears field effects.", + desc: "Removes any terrain, weather, entry hazard, or other removable field condition, and then causes the user to switch out out even if it is trapped and be replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, and the user will still attempt to switch out if there are no active field conditions.", + pp: 5, + priority: 0, + flags: {bypasssub: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Explosion', target); + }, + onHit(target, source, move) { + let success = false; + const displayText = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const player of this.sides) { + for (const targetCondition of Object.keys(player.sideConditions)) { + if (player.removeSideCondition(targetCondition)) { + success = true; + if (displayText.includes(targetCondition)) { + this.add('-sideend', player, this.dex.conditions.get(targetCondition).name, '[from] move: Magic Trick', '[of] ' + source); + } + } + } + } + if (this.field.clearTerrain()) success = true; + if (this.field.clearWeather()) success = true; + for (const pseudoWeather of PSEUDO_WEATHERS) { + if (this.field.removePseudoWeather(pseudoWeather)) success = true; + } + return success || !!this.canSwitch(source.side); + }, + selfSwitch: true, + secondary: null, + target: "self", + type: "Normal", + }, + + // Rainshaft + "hatsunemikusluckyorb": { + accuracy: true, + basePower: 0, + category: "Status", + name: "Hatsune Miku's Lucky Orb", + shortDesc: "Gains +3 to random stat, then uses Baton Pass.", + desc: "Z-Move requiring Rainium Z. Boosts a random stat (except Accuracy and Evasion) by 3 stages, then the user is replaced with another Pokemon in its party. The selected Pokemon has the user's stat stage changes, confusion, and certain move effects transferred to it.", + pp: 1, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(pokemon) { + this.add('-anim', pokemon, 'Life Dew', pokemon); + this.add('-anim', pokemon, 'Geomancy', pokemon); + }, + onHit(target, pokemon, move) { + const stats: BoostID[] = []; + let stat: BoostID; + for (stat in target.boosts) { + if (stat === 'accuracy' || stat === 'evasion') continue; + if (target.boosts[stat] < 6) { + stats.push(stat); + } + } + if (stats.length) { + const randomStat = this.sample(stats); + this.boost({[randomStat]: 3}, pokemon, pokemon, move); + this.actions.useMove('Baton Pass', target); + } + }, + isZ: "rainiumz", + secondary: null, + target: "self", + type: "Water", + }, + + // Ransei + floodoflore: { + accuracy: 100, + basePower: 100, + category: "Special", + name: "Flood of Lore", + shortDesc: "Sets Psychic Terrain.", + desc: "If this move is successful, the terrain becomes Psychic Terrain.", + pp: 5, + priority: 0, + flags: {protect: 1}, + terrain: 'psychicterrain', + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Photon Geyser', target); + }, + secondary: null, + target: "normal", + type: "Psychic", + }, + + // ReturnToMonkey + monkemagic: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Monke Magic", + shortDesc: "Sets Trick Room; user SpA +1.", + desc: "Nearly always goes last. Raises the user's Special Attack by 1 stage and sets Trick Room for 5 turns, making the slower Pokemon move first for the duration.", + pp: 5, + priority: -7, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Trick', target); + this.add('-anim', source, 'Trick Room', target); + this.add('-anim', source, 'Nasty Plot', target); + }, + pseudoWeather: 'trickroom', + self: { + boosts: { + spa: 1, + }, + }, + target: "all", + type: "Psychic", + }, + + // Rissoux + callofthewild: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Call of the Wild", + shortDesc: "Boosts Atk, Spe, and accuracy by 1 stage.", + pp: 5, + priority: 0, + flags: {sound: 1}, + boosts: { + atk: 1, + spe: 1, + accuracy: 1, + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Dragon Dance', source); + this.add('-anim', source, 'Lock-On', source); + }, + secondary: null, + target: "self", + type: "Fire", + }, + + // RSB + confiscate: { + accuracy: 100, + basePower: 60, + category: "Physical", + name: "Confiscate", + shortDesc: "First turn only. Steals boosts and screens.", + desc: "Nearly always moves first. The target's stat stages greater than 0 are stolen from it and applied to the user, and any present effects of Reflect, Light Screen, and Aurora Veil are moved from the target's side of the field to the user's, before dealing damage. Fails unless it is the user's first turn on the field.", + pp: 5, + priority: 2, + flags: {contact: 1, protect: 1, mirror: 1, bite: 1}, + onTry(source) { + if (source.activeMoveActions > 1) { + this.hint("Confiscate only works on your first turn out."); + return false; + } + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Crunch', target); + this.add('-anim', source, 'Thief', target); + }, + onTryHit(target, source) { + this.add(`c:|${getName((source.illusion || source).name)}|Contraband detected, confiscating.`); + for (const condition of ['reflect', 'lightscreen', 'auroraveil']) { + if (target.side.removeSideCondition(condition)) { + source.side.addSideCondition(condition); + } + } + }, + stealsBoosts: true, + target: "normal", + type: "Dark", + }, + + // Rumia + midnightbird: { + accuracy: 100, + basePower: 85, + category: "Special", + name: "Midnight Bird", + shortDesc: "100% chance to raise the user's Sp. Atk by 1.", + desc: "Has a 100% chance to raise the user's Special Attack by 1 stage.", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Memento', target); + this.add('-anim', source, 'Brutal Swing', target); + }, + secondary: { + chance: 100, + self: { + boosts: { + spa: 1, + }, + }, + }, + target: "normal", + type: "Dark", + }, + + // Scotteh + purification: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Heals 50% of max HP. Cures status.", + desc: "Heals the user for 1/2 of their maximum HP and removes any non-volatile status effect from the user.", + name: "Purification", + pp: 5, + priority: 0, + flags: {heal: 1, bypasssub: 1, allyanim: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Moonlight'); + }, + onHit(pokemon) { + const success = !!this.heal(this.modify(pokemon.maxhp, 0.5)); + return pokemon.cureStatus() || success; + }, + secondary: null, + target: "self", + type: "Water", + }, + + // SexyMalasada + hexadecimalfire: { + accuracy: 100, + basePower: 75, + category: "Special", + shortDesc: "20% burn, 20% spite, 20% 1/4th recoil.", + desc: "This move independently has a 20% chance to leave the target with a burn, a 20% chance to reduce the PP of the target's last used move by 4, and a 20% chance to cause the user to take damage equal to 1/4 of the damage dealt to the target.", + name: "Hexadecimal Fire", + pp: 15, + priority: 0, + flags: {heal: 1, bypasssub: 1, allyanim: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Sacred Fire', target); + this.add('-anim', source, 'Hex', target); + }, + secondaries: [ + { + chance: 20, + status: 'brn', + }, + { + chance: 20, + onHit(target) { + if (!target.hp) return; + let move: Move | ActiveMove | null = target.lastMove; + if (!move || move.isZ) return; + if (move.isMax && move.baseMove) move = this.dex.moves.get(move.baseMove); + const ppDeducted = target.deductPP(move.id, 4); + if (!ppDeducted) return; + this.add('-activate', target, 'move: Hexadecimal Fire', move.name, ppDeducted); + }, + }, + { + chance: 20, + onHit(target, source, move) { + move.recoil = [25, 100]; + }, + }, + ], + target: "normal", + type: "Ghost", + }, + + // sharp_claw + treacheroustraversal: { + accuracy: 100, + basePower: 70, + category: "Physical", + shortDesc: "Clears hazards, sets spikes, switches out.", + desc: "Removes all entry hazards and active terrains from the field, then sets one layer of Spikes if the user is Sneasel or Toxic Spikes otherwise. If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", + name: "Treacherous Traversal", + gen: 9, + pp: 20, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Defog', source); + this.add('-anim', source, 'Extreme Speed', target); + }, + selfSwitch: true, + self: { + onHit(source) { + let success = false; + const removeTarget = [ + 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + const removeAll = [ + 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + const targetSide = source.side.foe; + for (const targetCondition of removeTarget) { + if (targetSide.removeSideCondition(targetCondition)) { + if (!removeAll.includes(targetCondition)) continue; + this.add('-sideend', targetSide, this.dex.conditions.get(targetCondition).name, '[from] move: Treacherous Traversal', '[of] ' + source); + success = true; + } + } + for (const sideCondition of removeAll) { + if (source.side.removeSideCondition(sideCondition)) { + this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Treacherous Traversal', '[of] ' + source); + success = true; + } + } + success = this.field.clearTerrain(); + for (const side of source.side.foeSidesWithConditions()) { + if (source.species.name === 'Sneasel') { + success = side.addSideCondition('spikes'); + } else { + success = side.addSideCondition('toxicspikes'); + } + } + return success; + }, + }, + secondary: {}, // allows sheer force to trigger + target: "normal", + type: "Rock", + }, + + // Siegfried + boltbeam: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Calls 45 BP Thunderbolt + 45 BP Ice Beam.", + desc: "When used, calls a 45 Base Power Thunderbolt for use, and then calls a 45 Base Power Ice Beam for use. If one move fails, the other will still execute.", + name: "BoltBeam", + pp: 15, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onTryHit(target) { + const tbolt = this.dex.getActiveMove('thunderbolt'); + tbolt.basePower = 45; + const icebeam = this.dex.getActiveMove('icebeam'); + icebeam.basePower = 45; + this.actions.useMove(tbolt, target); + this.actions.useMove(icebeam, target); + return null; + }, + secondary: null, + target: "self", + type: "Electric", + }, + + // Sificon + grassgaming: { + accuracy: 100, + basePower: 100, + category: "Special", + shortDesc: "Remove item, Leech Seed, Psn if stat raised.", + desc: "If the user has not fainted, the target loses its held item. This move cannot cause Pokemon with the Sticky Hold Ability or Pokemon holding Z-Crystals or Mega Stones to lose their held items. This move summons Leech Seed on the foe. Has a 100% chance to poison the target if it had a stat stage raised this turn.", + name: "Grass Gaming", + pp: 15, + priority: 0, + flags: {protect: 1, reflectable: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'G-Max Vine Lash', target); + }, + onBasePower(basePower, source, target, move) { + const item = target.getItem(); + if (!this.singleEvent('TakeItem', item, target.itemState, target, target, move, item)) return; + if (item.id) { + return this.chainModify(1.5); + } + }, + onAfterHit(target, source) { + if (source.hp) { + const item = target.takeItem(); + if (item) { + this.add('-enditem', target, item.name, '[from] move: Grass Gaming', '[of] ' + source); + } + } + }, + onHit(target, source, move) { + if (target?.statsRaisedThisTurn) { + target.trySetStatus('psn', source, move); + } + if (!target.hasType('Grass')) { + target.addVolatile('leechseed', source); + } + }, + secondary: null, + target: "normal", + type: "Grass", + }, + + // skies + like: { + accuracy: 100, + basePower: 80, + category: "Physical", + shortDesc: "The user recycles their item.", + desc: "If this attack is successful, the user regains its last used held item, unless it was forcibly removed.", + name: "Like..?", + pp: 5, + priority: 0, + flags: {reflectable: 1, protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Recycle', target); + this.add('-anim', source, 'Seed Bomb', target); + }, + self: { + onHit(pokemon) { + if (!pokemon.item && pokemon.lastItem) { + const item = pokemon.lastItem; + pokemon.lastItem = ''; + this.add('-item', pokemon, this.dex.items.get(item), '[from] move: Recycle'); + pokemon.setItem(item); + } + }, + }, + secondary: null, + target: "normal", + type: "Grass", + }, + + // snake + conceptrelevant: { + accuracy: 100, + basePower: 70, + category: "Physical", + shortDesc: "Sets up 2 random hazards+psn foe. Switch.", + desc: "If this move is successful, all entry hazards are removed from the user's side of the field, the target becomes poisoned, and two random entry hazards are set on the target's side. If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", + name: "Concept Relevant", + gen: 9, + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Mortal Spin', target); + this.add('-anim', source, 'Spikes', target); + this.add('-anim', source, 'U-turn', target); + }, + onAfterHit(target, pokemon) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Concept Relevant', '[of] ' + pokemon); + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Concept Relevant', '[of] ' + pokemon); + } + } + if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { + pokemon.removeVolatile('partiallytrapped'); + } + for (let i = 0; i < 2; i++) { + const usableSideConditions = sideConditions.filter(condition => { + if (condition === 'spikes') { + return !target.side.sideConditions[condition] || target.side.sideConditions[condition].layers < 3; + } + if (condition === 'toxicspikes') { + return !target.side.sideConditions[condition] || target.side.sideConditions[condition].layers < 2; + } + return !target.side.sideConditions[condition]; + }); + if (usableSideConditions.length) { + target.side.addSideCondition(this.sample(usableSideConditions)); + } + } + }, + onAfterSubDamage(damage, target, pokemon) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Concept Relevant', '[of] ' + pokemon); + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Concept Relevant', '[of] ' + pokemon); + } + } + if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { + pokemon.removeVolatile('partiallytrapped'); + } + for (let i = 0; i < 2; i++) { + const usableSideConditions = sideConditions.filter(condition => { + if (condition === 'spikes') { + return !target.side.sideConditions[condition] || target.side.sideConditions[condition].layers < 3; + } + if (condition === 'toxicspikes') { + return !target.side.sideConditions[condition] || target.side.sideConditions[condition].layers < 2; + } + return !target.side.sideConditions[condition]; + }); + if (usableSideConditions.length) { + target.side.addSideCondition(this.sample(usableSideConditions)); + } + } + }, + secondary: { + chance: 100, + status: 'psn', + }, + selfSwitch: true, + target: "normal", + type: "Bug", + }, + + // Soft Flex + adaptivebeam: { + accuracy: 100, + basePower: 90, + category: "Special", + shortDesc: "If target has boosts, steals them, +1 prio, 0 BP.", + desc: "If the target of this move has positive stat stage changes, this move will usually move first, and on use the attack deals no damage and instead moves all positive stat stage changes from the target to the user.", + name: "Adaptive Beam", + pp: 15, + priority: 0, + flags: {sound: 1, protect: 1, bypasssub: 1}, + stealsBoosts: true, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Flash Cannon', target); + if (target.positiveBoosts()) { + this.add('-anim', source, 'Extreme Evoboost', source); + } + }, + onModifyMove(move, pokemon, target) { + if (target?.positiveBoosts()) { + move.basePower = 0; + move.category = 'Status'; + } + }, + onModifyPriority(priority, source, target, move) { + if (target?.positiveBoosts()) return priority + 1; + return priority; + }, + secondary: null, + target: "normal", + type: "Steel", + }, + + // Solaros & Lunaris + mindmelt: { + accuracy: 100, + basePower: 100, + category: "Special", + overrideDefensiveStat: 'def', + shortDesc: "Target's the foe's Def instead of Sp. Def.", + desc: "Deals damage to the target based on its Defense instead of Special Defense.", + name: "Mind Melt", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Burn Up', target); + }, + secondary: null, + target: "normal", + type: "Fire", + }, + + // Spiderz + shepherdofthemafiaroom: { + accuracy: 90, + basePower: 65, + category: "Physical", + shortDesc: "Sets Sticky Web. 1.3x power if moves first.", + desc: "If this move deals damage, it sets up a hazard on the opposing side of the field. This hazard lowers the Speed of each opposing Pokemon that switches in by 1 stage, unless it is a Flying-type Pokemon or has the Levitate Ability. This move's damage is multiplied by 1.3 if the user is the first Pokemon to move during the turn.", + name: "Shepherd of the Mafia Room", + gen: 9, + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + this.add('-anim', source, 'Explosion', source); + this.add('-anim', source, 'Explosion', source); + this.add('-anim', source, 'Explosion', source); + this.add('-anim', source, 'Explosion', source); + this.add('-anim', source, 'Explosion', source); + this.add('-anim', source, 'Explosion', source); + }, + onBasePower(relayVar, source, target, move) { + if (source.getStat('spe', false, true) > target.getStat('spe', false, true)) { + return this.chainModify([5325, 4096]); + } + }, + onAfterHit(target, source, move) { + if (!move.hasSheerForce && source.hp) { + for (const side of source.side.foeSidesWithConditions()) { + side.addSideCondition('stickyweb'); + } + } + }, + onAfterSubDamage(damage, target, source, move) { + if (!move.hasSheerForce && source.hp) { + for (const side of source.side.foeSidesWithConditions()) { + side.addSideCondition('stickyweb'); + } + } + }, + secondary: {}, // Sheer Force-boosted + target: "normal", + type: "Dark", + }, + + // spoo + cardiotraining: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Boosts Atk, Def, and Sp. Def by 1 stage.", + desc: "Boosts the user's Attack, Defense, and Special Defense by 1 stage.", + name: "Cardio Training", + gen: 9, + pp: 5, + priority: 0, + flags: {snatch: 1, dance: 1, metronome: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + this.add('-anim', source, 'Geomancy', source); + }, + boosts: { + atk: 1, + def: 1, + spd: 1, + }, + secondary: null, + target: "self", + type: "Fire", + }, + + // Steorra + phantomweapon: { + accuracy: 100, + basePower: 65, + category: "Physical", + name: "Phantom Weapon", + shortDesc: "2x power if user is holding item; destroys item.", + desc: "If the user is holding an item, this move will deal double damage and the user's held item will be removed.", + pp: 20, + priority: 0, + onModifyPriority(priority, pokemon) { + if (!pokemon.item) return priority + 1; + }, + flags: {protect: 1, mirror: 1}, + onModifyMove(move, pokemon, target) { + if (!pokemon.item) { + move.flags['contact'] = 1; + move.flags['mirror'] = 1; + } + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + this.add('-anim', source, 'Shadow Force', target); + if (!source.item || source.ignoringItem()) return; + const item = source.getItem(); + if (!this.singleEvent('TakeItem', item, source.itemState, source, source, move, item)) return; + move.basePower *= 2; + source.addVolatile('phantomweapon'); + }, + condition: { + onUpdate(pokemon) { + const item = pokemon.getItem(); + pokemon.setItem(''); + pokemon.lastItem = item.id; + pokemon.usedItemThisTurn = true; + this.add('-enditem', pokemon, item.name, '[from] move: Phantom Weapon'); + this.runEvent('AfterUseItem', pokemon, null, null, item); + pokemon.removeVolatile('phantomweapon'); + }, + }, + secondary: null, + target: "normal", + type: "Ghost", + }, + + // Struchni + randfact: { + accuracy: 100, + basePower: 120, + category: "Physical", + shortDesc: "Random type.", + desc: "This move's typing is chosen randomly between the 18 standard types.", + name: "~randfact", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source, move) { + move.type = this.sample(this.dex.types.names().filter(i => i !== 'Stellar')); + this.add('-anim', source, 'Nasty Plot', source); + this.add('-anim', source, 'Head Smash', target); + }, + secondary: null, + target: "normal", + type: "Steel", + }, + + // Sulo + vengefulmood: { + accuracy: 100, + basePower: 60, + basePowerCallback(pokemon) { + return Math.min(140, 60 + 20 * pokemon.timesAttacked); + }, + category: "Special", + shortDesc: "+20 power for each time user was hit. Max 4 hits.", + desc: "Power is equal to 60+(X*20), where X is the total number of times the user has been hit by a damaging attack during the battle, even if the user did not lose HP from the attack. X cannot be greater than 4 and does not reset upon switching out or fainting. Each hit of a multi-hit attack is counted, but confusion damage is not counted.", + name: "Vengeful Mood", + gen: 9, + pp: 15, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Aura Sphere', source); + }, + secondary: null, + target: "normal", + type: "Fighting", + }, + + // Swiffix + stinkbomb: { + accuracy: 85, + basePower: 10, + category: "Special", + shortDesc: "Hits 10 times. Each hit can miss.", + desc: "Hits ten times. This move checks accuracy for each hit, and the attack ends if the target avoids a hit. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit ten times. If the user is holding Loaded Dice, this move hits four to ten times at random without checking accuracy between hits.", + name: "Stink Bomb", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Population Bomb', target); + this.add('-anim', source, 'Venoshock', target); + }, + multihit: 10, + multiaccuracy: true, + secondary: null, + target: "normal", + type: "Poison", + }, + + // Syrinix + asoulforasoul: { + accuracy: 100, + basePower: 0, + category: "Physical", + shortDesc: "KOes foe + user if ally was KOed prev. turn.", + desc: "If one of the user's party members fainted last turn, this move results in a guaranteed KO for both the target and the user. This move can hit Normal-type Pokemon. Fails if one of the user's party members did not faint last turn.", + name: "A Soul for a Soul", + pp: 5, + priority: 1, + flags: {protect: 1, contact: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Explosion', target); + this.add('-anim', source, 'Final Gambit', target); + }, + onTry(source, target) { + if (!source.side.faintedLastTurn) return false; + source.faint(source); + target?.faint(source); + }, + ignoreImmunity: true, + secondary: null, + target: "normal", + type: "Ghost", + }, + + // Teclis + risingsword: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Boosts Attack, Speed, and Crit ratio by 1.", + desc: "Boosts the user's Attack and Speed by 1 stage and increases the user's chance of landing a critical hit.", + name: "Rising Sword", + pp: 5, + priority: 0, + onTryMove() { + this.attrLastMove('[still]'); + }, + onHit(pokemon) { + const success = !!this.boost({atk: 1, spe: 1}); + return pokemon.addVolatile('risingsword') || success; + }, + condition: { + onStart(pokemon, source) { + this.add('-start', pokemon, 'move: Rising Sword'); + }, + onModifyCritRatio(critRatio, source) { + return critRatio + 1; + }, + }, + flags: {}, + onPrepareHit(target, source) { + this.add('-anim', source, 'Focus Energy', target); + this.add('-anim', source, 'Agility', target); + }, + secondary: null, + target: "self", + type: "Psychic", + }, + + // Tenshi + sandeat: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Protects user, changes type and gains a new move.", + desc: "Nearly always moves first. The user protects itself from most attacks made by other Pokemon this turn and gains a random type. If the user has Dynamic Punch, Pyro Ball, Triple Axel, Stone Edge, or Aqua Tail, it will also replace that move with a new move based on the type gained. It can gain Fire type and Pyro Ball, Ice type and Triple Axel, Rock type and Stone Edge, and Water type and Aqua Tail. This move fails entirely if the user moved last this turn or if the foe switches out, and this move has an increasing chance to fail when used consectively.", + name: "SAND EAT", + pp: 10, + priority: 4, + flags: {noassist: 1}, + stallingMove: true, + volatileStatus: 'protect', + onTryMove() { + this.attrLastMove('[still]'); + }, + onHit(pokemon) { + pokemon.addVolatile('stall'); + const types = ['Fire', 'Water', 'Ice', 'Rock']; + const moves = ['pyroball', 'aquatail', 'tripleaxel', 'stoneedge']; + const newType = this.sample(types.filter(i => !pokemon.hasType(i))); + const newMove = moves[types.indexOf(newType)]; + const replacementIndex = Math.max( + pokemon.moves.indexOf('dynamicpunch'), + pokemon.moves.indexOf('pyroball'), + pokemon.moves.indexOf('aquatail'), + pokemon.moves.indexOf('tripleaxel'), + pokemon.moves.indexOf('stoneedge') + ); + if (replacementIndex < 0) { + return; + } + const replacement = this.dex.moves.get(newMove); + const replacementMove = { + move: replacement.name, + id: replacement.id, + pp: replacement.pp, + maxpp: replacement.pp, + target: replacement.target, + disabled: false, + used: false, + }; + pokemon.moveSlots[replacementIndex] = replacementMove; + pokemon.baseMoveSlots[replacementIndex] = replacementMove; + pokemon.addType(newType); + this.add('-start', pokemon, 'typeadd', newType, '[from] move: SAND EAT'); + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|omg look HE EAT`); + }, + onPrepareHit(pokemon, source) { + this.add('-anim', source, 'Dig', pokemon); + this.add('-anim', source, 'Odor Sleuth', pokemon); + this.add('-anim', source, 'Stuff Cheeks', pokemon); + this.add(`c:|${getName((pokemon.illusion || pokemon).name)}|he do be searching for rocks tho`); + return !!this.queue.willAct() && this.runEvent('StallMove', pokemon); + }, + secondary: null, + target: "self", + type: "Ground", + }, + + // Tico + eternalwish: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Wish + Aromatherapy + Defog.", + desc: "Sets a Wish on the user's side, healing the active Pokemon for 50% of the user's maximum HP at the end of the next turn. Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, G-Max Steelsurge, and Sticky Web end for the target's side, and for the user's side all team members' non-volatile status conditions and the effects of Spikes, Toxic Spikes, Stealth Rock, G-Max Steelsurge, and Sticky Web are removed. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness. If there is a terrain active and this move is successful, the terrain will be cleared.", + name: "Eternal Wish", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(source, target) { + this.add('-anim', target, 'Wish', target); + this.add('-anim', target, 'Aromatherapy', target); + this.add('-anim', target, 'Defog', target); + }, + onHit(target, source, move) { + let success = false; + if (!target.volatiles['substitute'] || move.infiltrates) success = !!this.boost({evasion: -1}); + const removeTarget = [ + 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + const removeAll = [ + 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + for (const targetCondition of removeTarget) { + if (target.side.removeSideCondition(targetCondition)) { + if (!removeAll.includes(targetCondition)) continue; + this.add('-sideend', target.side, this.dex.conditions.get(targetCondition).name, '[from] move: Eternal Wish', '[of] ' + source); + success = true; + } + } + for (const sideCondition of removeAll) { + if (source.side.removeSideCondition(sideCondition)) { + this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Eternal Wish', '[of] ' + source); + success = true; + } + } + this.field.clearTerrain(); + return success; + }, + self: { + slotCondition: 'Wish', + onHit(target, source, move) { + this.add('-activate', source, 'move: Eternal Wish'); + let success = false; + const allies = [...source.side.pokemon, ...source.side.allySide?.pokemon || []]; + for (const ally of allies) { + if (ally !== source && ((ally.hasAbility('sapsipper')) || + (ally.volatiles['substitute'] && !move.infiltrates))) { + continue; + } + if (ally.cureStatus()) success = true; + } + return success; + }, + }, + secondary: null, + target: "normal", + type: "Ghost", + }, + + // TheJesucristoOsAma + theloveofchrist: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Infatuates and confuses the target.", + desc: "Causes the target to become confused and infatuated, regardless of gender. This move cannot ever have more than 1 PP.", + name: "The Love Of Christ", + gen: 9, + pp: 1, + noPPBoosts: true, + priority: 0, + flags: {protect: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Morning Sun', source); + this.add('-anim', source, 'Lovely Kiss', target); + }, + onHit(target, source) { + target.addVolatile('attract', source); + target.addVolatile('confusion', source); + }, + secondary: null, + target: "normal", + type: "Normal", + }, + + // trace + chronostasis: { + accuracy: 90, + basePower: 80, + category: "Special", + shortDesc: "If target is KOed, user boosts random stat by 2.", + desc: "If this move knocks out the target, the user boosts a random stat, except Accuracy and Evasion, by 2 stages.", + name: "Chronostasis", + gen: 9, + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + onPrepareHit() { + this.attrLastMove('[anim] Future Sight'); + }, + onAfterMoveSecondarySelf(pokemon, target, move) { + if (!target || target.fainted || target.hp <= 0) { + const stats: BoostID[] = []; + let stat: BoostID; + for (stat in target.boosts) { + if (stat === 'accuracy' || stat === 'evasion') continue; + if (target.boosts[stat] < 6) { + stats.push(stat); + } + } + if (stats.length) { + const randomStat = this.sample(stats); + this.boost({[randomStat]: 2}, pokemon, pokemon, move); + } + } + }, + secondary: null, + target: "normal", + type: "Psychic", + }, + + // Tuthur + symphonieduzero: { + accuracy: 100, + basePower: 80, + category: "Special", + shortDesc: "Deals an additional 12.5% HP at end of turn.", + desc: "If this move deals damage, at the end of the turn, the target will take an additional 12.5% of its maximum HP in non-attack damage if it is still on the field.", + name: "Symphonie du Ze\u0301ro", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Alluring Voice', target); + }, + volatileStatus: 'symphonieduzero', + condition: { + noCopy: true, + onStart(pokemon) { + this.add('-start', pokemon, 'Symphonie du Ze\u0301ro'); + }, + onResidualOrder: 13, + onResidual(pokemon) { + this.damage(pokemon.baseMaxhp / 8); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Symphonie du Ze\u0301ro'); + }, + }, + secondary: null, + target: "normal", + type: "Fairy", + }, + + // Two of Roses + dillydally: { + accuracy: 90, + basePower: 40, + category: "Physical", + shortDesc: "2 hits, +1 random stat/hit. Type=User 2nd type.", + desc: "This move hits 2 times. For each successful hit, the user boosts a random stat, except Accuracy and Evasion, by 1 stage. The typing of this move is equal to the user's secondary type; it will instead use the user's primary type if the user lacks a secondary type.", + name: "Dilly Dally", + pp: 20, + priority: 0, + multihit: 2, + flags: {protect: 1, contact: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Volt Tackle', source); + this.add('-anim', source, 'Extreme Speed', target); + }, + onModifyType(move, pokemon) { + let type = pokemon.getTypes()[pokemon.getTypes().length - 1]; + if (type === "Bird" || type === undefined) type = "???"; + if (type === "Stellar") type = pokemon.getTypes()[pokemon.getTypes(false, true).length - 1]; + move.type = type; + }, + secondary: { + chance: 100, + onHit(target, source, move) { + const stats: BoostID[] = []; + const boost: SparseBoostsTable = {}; + let statPlus: BoostID; + for (statPlus in source.boosts) { + if (statPlus === 'accuracy' || statPlus === 'evasion') continue; + if (source.boosts[statPlus] < 6) { + stats.push(statPlus); + } + } + const randomStat: BoostID | undefined = stats.length ? this.sample(stats) : undefined; + if (randomStat) boost[randomStat] = 1; + this.boost(boost, source, source); + }, + }, + target: "normal", + type: "???", + }, + + + // UT + myboys: { + accuracy: 100, + basePower: 60, + category: "Physical", + shortDesc: "Uses two status moves, then switches out.", + desc: "The user uses two, at random, of: Feather Dance, Growl, Rain Dance, Sunny Day, Tailwind and Taunt. After these moves execute, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members out.", + name: "My Boys", + pp: 20, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + const varMoves = ['Feather Dance', 'Growl', 'Rain Dance', 'Sunny Day', 'Tailwind', 'Taunt', 'Will-O-Wisp']; + const move1 = this.sample(varMoves); + const move2 = this.sample(varMoves.filter(i => i !== move1)); + this.add('-message', `Fletchling used ${move1}!`); + this.actions.useMove(move1, source); + this.add('-message', `Taillow used ${move2}!`); + this.actions.useMove(move2, source); + this.add('-message', `Talonflame attacked!`); + this.add('-anim', source, 'U-Turn', target); + }, + selfSwitch: true, + secondary: null, + target: "normal", + type: "Flying", + }, + + // Valerian + firststrike: { + accuracy: 100, + basePower: 25, + category: "Physical", + name: "First Strike", + shortDesc: "Turn 1 only. Atk: +1 NVE, +2 NE, +3 SE.", + desc: "Boosts the user's Attack by 1 stage if the attack is not very effective, 2 stages if the attack is neutral, and 3 stages if the attack is super effective. Fails unless it is the user's first turn on the field.", + pp: 15, + priority: 3, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Fake Out", target); + }, + onTry(source) { + if (source.activeMoveActions > 1) { + this.hint("First Strike only works on your first turn out."); + return false; + } + }, + onAfterMoveSecondarySelf(pokemon, target, move) { + let boost = 2; + const typeMod = target.getMoveHitData(move).typeMod; + if (typeMod > 0) { + boost = 3; + } else if (typeMod < 0) { + boost = 1; + } + this.boost({atk: boost}, pokemon, pokemon, move); + }, + secondary: null, + target: "normal", + type: "Steel", + }, + + // Venous + yourcripplinginterest: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Your Crippling Interest", + shortDesc: "Tox; clears terrain and hazards on both sides.", + desc: "The target becomes badly poisoned, and all entry hazards and terrain effects are removed from both sides of the field. If the target already has a non-volatile status condition, the removal effect can still occur.", + pp: 15, + priority: 0, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Esper Wing", target); + this.add('-anim', source, "Defog", source); + }, + onHit(target, source, move) { + let success = false; + if (!target.volatiles['substitute'] || move.infiltrates) success = !!target.trySetStatus('tox', source); + const removeTarget = [ + 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + const removeAll = [ + 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', + ]; + for (const targetCondition of removeTarget) { + if (target.side.removeSideCondition(targetCondition)) { + if (!removeAll.includes(targetCondition)) continue; + this.add('-sideend', target.side, this.dex.conditions.get(targetCondition).name, '[from] move: Your Crippling Interest', '[of] ' + source); + success = true; + } + } + for (const sideCondition of removeAll) { + if (source.side.removeSideCondition(sideCondition)) { + this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Your Crippling Interest', '[of] ' + source); + success = true; + } + } + this.field.clearTerrain(); + return success; + }, + ignoreAbility: true, + secondary: null, + target: "normal", + type: "Flying", + }, + + // Violet + buildingcharacter: { + accuracy: 100, + basePower: 50, + basePowerCallback(pokemon, target, move) { + if (target?.terastallized) { + this.debug('BP doubled from tera'); + return move.basePower * 2; + } + return move.basePower; + }, + category: "Physical", + shortDesc: "Vs Tera'd target: 0 prio, 2x BP, removes Tera.", + desc: "Usually moves first. If the target has Terastallized, this move becomes +0 priority and does double damage. If this move is successful against a Terastallized target, the target's Terastallization effect is permanently removed.", + name: "building character", + gen: 9, + pp: 10, + priority: 1, + onModifyPriority(priority, pokemon, target, move) { + if (target?.terastallized) return 0; + }, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + if (target?.terastallized) this.add('-anim', source, "Block", target); + this.add('-anim', source, "Wicked Blow", target); + }, + onHit(pokemon, source) { + if (pokemon?.terastallized) { + this.add(`c:|${getName((source.illusion || source).name)}|lol never do that ever again thanks`); + this.add('custom', '-endterastallize', pokemon); + delete pokemon.terastallized; + const details = pokemon.species.name + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + + (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); + this.add('detailschange', pokemon, details); + } + }, + secondary: null, + target: "normal", + type: "Grass", + }, + + // Vistar + virtualavatar: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Changes to Idol forme and sets a substitute.", + desc: "If the user is a Zeraora, the user's ability changes to Virtual Idol and its full moveset becomes Overdrive, Sparkling Aria, Torch Song, and Teeter Dance, replacing every currently present move. The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle.", + name: "Virtual Avatar", + pp: 10, + priority: 0, + flags: {sound: 1, failcopycat: 1}, + secondary: null, + onTryMove() { + this.attrLastMove('[still]'); + }, + onTry(source) { + if (source.species.name === 'Zeraora') { + return; + } + this.hint("Only Zeraora can use this move."); + this.attrLastMove('[still]'); + this.add('-fail', source, 'move: Virtual Avatar'); + return null; + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Morning Sun', source); + this.add('-anim', source, 'Seed Flare', target); + }, + onHit(target, source) { + changeSet(this, target, ssbSets['Vistar-Idol'], true); + this.add(`c:|${getName((source.illusion || source).name)}|Finally, I'm making my debut`); + if (source.volatiles['substitute']) return; + if (source.hp <= source.maxhp / 4 || source.maxhp === 1) { // Shedinja clause + this.add('-fail', source, 'move: Substitute', '[weak]'); + } else { + source.addVolatile('substitute'); + this.directDamage(source.maxhp / 4); + } + }, + target: "self", + type: "Normal", + }, + + // vmnunes + gracideasblessing: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Uses Wish, switches out. Recipient gets Aqua Ring.", + desc: "Sets a Wish on the user's side, healing the active Pokemon for 50% of the user's maximum HP at the end of the next turn. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member, which will gain the Aqua Ring effect. The user does not switch out if there are no unfainted party members.", + name: "Gracidea's Blessing", + pp: 10, + priority: 0, + flags: {}, + secondary: null, + selfSwitch: true, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Morning Sun', source); + this.add('-anim', source, 'Seed Flare', target); + }, + slotCondition: 'gracideasblessing', + condition: { + duration: 2, + onStart(pokemon, source) { + this.effectState.hp = source.maxhp / 2; + }, + onSwap(target) { + if (!target.fainted) target.addVolatile('aquaring', target); + }, + onResidualOrder: 4, + onEnd(target) { + if (target && !target.fainted) { + this.heal(this.effectState.hp, target, target); + } + }, + }, + target: "self", + type: "Grass", + }, + + // WarriorGallade + fruitfullongbow: { + accuracy: 90, + basePower: 160, + category: "Special", + shortDesc: "Hit off higher atk, eats berry, Dragon/Fly eff.", + desc: "Uses the user's higher attack stat in damage calculation. Does not need to charge in sun. If this move is successful and the user is holding a berry, the user consumed its held berry and restored 25% of the its maximum HP. This move combines Dragon in its type effectiveness.", + name: "Fruitful Longbow", + gen: 9, + pp: 15, + priority: 0, + flags: {charge: 1, protect: 1, mirror: 1, slicing: 1, wind: 1}, + critRatio: 2, + onEffectiveness(typeMod, target, type, move) { + return typeMod + this.dex.getEffectiveness('Dragon', type); + }, + onModifyMove(move, pokemon, target) { + if (pokemon.getStat('atk') > pokemon.getStat('spa')) { + move.overrideOffensiveStat = 'atk'; + } + }, + onTryMove(attacker, defender, move) { + if (attacker.removeVolatile(move.id)) { + this.attrLastMove('[still]'); + this.add('-anim', attacker, 'Signal Beam', defender); + this.add('-anim', attacker, 'Twister', defender); + this.add('-anim', attacker, 'Psycho Cut', defender); + return; + } + this.add('-anim', attacker, 'Tailwind', attacker); + this.add('-message', `${attacker.name} whipped up an intense whirlwind and began to glow a vivine green!`); + if (attacker.getItem().isBerry) { + attacker.eatItem(true); + this.heal(attacker.maxhp / 4, attacker); + } + if (['sunnyday', 'desolateland'].includes(attacker.effectiveWeather())) { + this.attrLastMove('[still]'); + this.add('-anim', attacker, 'Signal Beam', defender); + this.add('-anim', attacker, 'Twister', defender); + this.add('-anim', attacker, 'Psycho Cut', defender); + return; + } + if (!this.runEvent('ChargeMove', attacker, defender, move)) { + return; + } + attacker.addVolatile('twoturnmove', defender); + return null; + }, + secondary: null, + target: "normal", + type: "Flying", + }, + + // Waves + torrentialdrain: { + accuracy: 100, + basePower: 60, + category: "Special", + shortDesc: "Recovers 50% of damage dealt.", + desc: "The user recovers 1/2 the HP lost by the target, rounded half up.", + name: "Torrential Drain", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, heal: 1, metronome: 1}, + drain: [1, 2], + secondary: null, + target: "allAdjacent", + type: "Water", + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Aqua Ring', source); + this.add('-anim', source, 'Origin Pulse', target); + this.add('-anim', source, 'Parabolic Charge', target); + }, + }, + + // WigglyTree + perfectmimic: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Endure + Me First. Copied move hits off Atk.", + desc: "Nearly always moves first. The user uses the move the target chose for use this turn against it, if possible, with its power multiplied by 1.5. The move must be a damaging move usable by Me First. The user also activates the Endure effect on itself, preventing it from falling below 1 HP through direct attacks this turn. Ignores the target's substitute for the purpose of copying the move. The move will fail entirely if the user did not move first this turn, or if the target switched out. If the target would use a move not usable by Me First, the Endure effect still occurs. This move has an increasing chance of failing when used in succession.", + name: "Perfect Mimic", + gen: 9, + pp: 10, + priority: 4, + flags: {}, + volatileStatus: 'perfectmimic', + onTryMove() { + this.attrLastMove('[anim] Endure'); + }, + onDisableMove(pokemon) { + if (pokemon.lastMove?.id === 'perfectmimic') pokemon.disableMove('perfectmimic'); + }, + condition: { + duration: 1, + onStart(target) { + this.add('-singleturn', target, 'move: Endure'); + }, + onDamagePriority: -10, + onDamage(damage, target, source, effect) { + if (effect?.effectType === 'Move') { + this.effectState.move = effect.id; + if (damage >= target.hp) { + this.add('-activate', target, 'move: Endure'); + return target.hp - 1; + } + } + }, + onSourceAfterMove(target, source) { + if (target === this.effectState.target || source !== this.effectState.target) return; + if (!target.hp || !this.effectState.move) return; + const move = this.dex.getActiveMove(this.effectState.move); + if (move.isZ || move.isMax || move.category === 'Status') return; + this.add('-message', source.name + ' tried to copy the move!'); + this.add('-anim', source, "Me First", target); + move.overrideOffensiveStat = 'atk'; + this.actions.useMove(move, source, {target}); + delete this.effectState.move; + }, + onBasePowerPriority: 12, + onBasePower() { + return this.chainModify(1.5); + }, + }, + secondary: null, + target: "self", + type: "Normal", + }, + + // XpRienzo + scorchingtruth: { + accuracy: 100, + basePower: 80, + category: "Special", + desc: "Damage is doubled if this move is not very effective against the target.", + shortDesc: "Deals 2x damage with resisted hits.", + name: "Scorching Truth", + gen: 9, + pp: 15, + priority: 0, + flags: {protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, 'Focus Energy', source); + this.add('-anim', source, 'Fusion Flare', target); + }, + onBasePower(basePower, source, target, move) { + if (target.runEffectiveness(move) < 0) { + this.debug(`Scorching truth resisted buff`); + return this.chainModify(2); + } + }, + secondary: null, + target: "normal", + type: "Fire", + }, + + // xy01 + poisonouswind: { + accuracy: true, + basePower: 0, + category: "Status", + name: "Poisonous Wind", + shortDesc: "Badly poisons the foe and forces them out.", + desc: "Badly poisons the target. If the infliction of status is successful, the target is forced to switch out and be replaced with a random unfainted ally. Fails if the target is the last unfainted Pokemon in its party, or if the target used Ingrain previously or has the Suction Cups Ability. This move will fail entirely if the target has a non-volatile status condition.", + pp: 10, + priority: -6, + flags: {reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1, noassist: 1, failcopycat: 1, wind: 1}, + forceSwitch: true, + status: 'tox', + secondary: null, + target: "normal", + type: "Poison", + }, + + // yeet dab xd + topkek: { + accuracy: 100, + basePower: 70, + category: "Physical", + shortDesc: "Gives foe Miracle Seed. Cycles Treasure Bag.", + desc: "If the target is holding an item that can be removed from it, it is replaced with a Mircle Seed. Cycles Treasure Bag.", + name: "top kek", + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Thief", target); + this.add('-anim', source, "Trick", target); + this.add('-anim', source, "Nasty Plot", source); + }, + onAfterHit(target, source, move) { + if (source.hp) { + if (!target.hasItem('Miracle Seed')) { + const item = target.takeItem(); + if (item) { + this.add('-enditem', target, item.name, '[from] move: top kek', '[of] ' + source); + target.setItem('Miracle Seed', source, move); + } + } + } + }, + secondary: null, + target: "normal", + type: "Dark", + }, + + // Yellow Paint + whiteout: { + accuracy: 85, + basePower: 70, + category: "Special", + shortDesc: "Sets up Snow. Target's ability becomes Normalize.", + desc: "If this move is successful, the current weather becomes snow, boosting the Defense of Ice-types by 1.5x for 5 turns, and the target's ability is replaced with Normalize.", + name: "Whiteout", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1, bullet: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Weather Ball", target); + this.add('-anim', source, "Snowscape", source); + }, + onHit(target, source) { + this.field.setWeather('snow'); + if (target.setAbility('normalize')) { + this.add('-ability', target, 'Normalize', '[from] move: Whiteout'); + } + this.add(`c:|${getName((source.illusion || source).name)}|A blank canvas.`); + }, + secondary: null, + target: "normal", + type: "Ice", + }, + + // yuki + tagyoureit: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Switch out; replacement: Focus Energy, +1 Spe.", + desc: "The user switches out even if it is trapped and is replaced immediately by a selected party member. The replacement's Speed is boosted by 1 stage, and its critical hit rate is boosted by 2 stages. The user does not switch out if there are no unfainted party members.", + name: "Tag, You're It!", + pp: 5, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Baton Pass", target); + }, + slotCondition: 'tagyoureit', + condition: { + onSwap(target) { + if (target && !target.fainted) { + this.add('-anim', target, "Baton Pass", target); + target.addVolatile('focusenergy'); + this.boost({spe: 1}, target, this.effectState.source, this.dex.getActiveMove('tagyoureit')); + target.side.removeSlotCondition(target, 'tagyoureit'); + } + }, + }, + selfSwitch: true, + secondary: null, + target: "self", + type: "Dark", + }, + + // YveltalNL + highground: { + accuracy: 100, + basePower: 90, + category: "Special", + shortDesc: "If the user is taller than the target, +1 SpA.", + desc: "If the user's height as listed on its Pokedex data is greater than the target's height, the user's Special Attack is boosted by 1 stage.", + name: "High Ground", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1}, + secondary: { + chance: 100, + onHit(target, source, move) { + if (this.dex.species.get(source.species).heightm > this.dex.species.get(target.species).heightm) { + this.boost({spa: 1}, source); + } + }, + }, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Dragon Ascent", target); + this.add('-anim', source, "Scorching Sands", target); + }, + target: "normal", + type: "Ground", + }, + + // Zalm + dudurafish: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Heals 25% HP and sets Aqua Ring.", + desc: "The user recovers 1/4 of its maximum HP and gains the Aqua Ring effect, healing it for 1/16th of its maximum HP at the end of each turn. The healing effect will still occur if the user already has Aqua Ring active.", + name: "Dud ur a fish", + pp: 5, + priority: 0, + flags: {heal: 1, snatch: 1}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', target, "Recover", source); + this.add('-anim', target, "Aqua Ring", source); + }, + onHit(pokemon) { + let didSomething: boolean; + if (pokemon.hasType("Water")) { + didSomething = !!this.heal(this.modify(pokemon.baseMaxhp, 1, 2)); + didSomething = pokemon.cureStatus() || didSomething; + } else { + didSomething = !!this.heal(this.modify(pokemon.baseMaxhp, 1, 4)); + } + didSomething = pokemon.addVolatile('aquaring') || didSomething; + return didSomething; + }, + secondary: null, + target: "self", + type: "Water", + }, + + // za + shitpost: { + accuracy: 100, + basePower: 0, + category: "Status", + name: "Shitpost", + shortDesc: "Confuses and paralyzes the target.", + pp: 20, + priority: 0, + flags: {protect: 1, reflectable: 1}, + onTryMove(pokemon, target, move) { + this.attrLastMove('[still]'); + if (this.randomChance(1, 256)) { + this.add('-fail', pokemon); + this.add('-message', '(In Gen 1, moves with 100% accuracy have a 1/256 chance to miss.)'); + return false; + } + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Hex", target); + }, + onHit(target, source, move) { + if (!target.volatiles['confusion']) { + target.addVolatile('confusion', source, move); + } + target.trySetStatus('par', source, move); + }, + secondary: null, + target: "normal", + type: "Normal", + }, + + // Zarel + tsignore: { + accuracy: 100, + basePower: 100, + category: "Special", + shortDesc: "Bypasses everything. Uses Higher Atk.", + desc: "This move will bypass any negative effect on the field or the target that would impede its ability to deal damage, including type-based immunities. This move is physical if the user's Attack is higher than its Special Attack.", + name: "@ts-ignore", + gen: 9, + pp: 5, + priority: 0, + flags: {}, + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Conversion", source); + this.add('-anim', source, "Techno Blast", target); + }, + onModifyMove(move, pokemon, target) { + if (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) { + move.category = 'Physical'; + } + }, + onModifyType(move, pokemon) { + if (pokemon.species.baseSpecies === 'Meloetta' && pokemon.terastallized) { + move.type = 'Stellar'; + } + }, + ignoreAbility: true, + ignoreImmunity: true, + ignoreDefensive: true, + ignoreNegativeOffensive: true, + breaksProtect: true, + ignoreAccuracy: true, + secondary: null, + target: "normal", + type: "Normal", + }, + + // zee + solarsummon: { + accuracy: 100, + basePower: 0, + category: "Status", + shortDesc: "Sets up Sunny Day and creates a Substitute.", + desc: "Sets sun, powering up Fire-type moves and weakening Water-type moves for 5 turns. The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. If one part of this move is already in effect, the other part will still be attempted.", + name: "Solar Summon", + gen: 9, + pp: 5, + priority: 0, + flags: {}, + onPrepareHit() { + this.attrLastMove('[anim] Sunny Day'); + }, + onHit(pokemon) { + let success = false; + if (this.field.setWeather('sunnyday')) success = true; + if (!pokemon.volatiles['substitute']) { + if (pokemon.hp <= pokemon.maxhp / 4 || pokemon.maxhp === 1) { // Shedinja clause + this.add('-fail', pokemon, 'move: Substitute', '[weak]'); + } else { + pokemon.addVolatile('substitute'); + this.directDamage(pokemon.maxhp / 4); + success = true; + } + } + return success; + }, + secondary: null, + target: "self", + type: "Fire", + }, + + // zoro + darkestnight: { + accuracy: 100, + basePower: 95, + category: "Physical", + shortDesc: "Literally just Foul Play.", + desc: "Damage is calculated using the target's Attack stat, including stat stage changes. The user's Ability, item, and burn are used as normal.", + name: "Darkest Night", + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + overrideOffensivePokemon: 'target', + secondary: null, + target: "normal", + type: "Dark", + onTryMove() { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Foul Play", target); + }, + }, + + // Modified moves + bleakwindstorm: { + inherit: true, + onModifyMove(move, pokemon, target) { + if (target && ['raindance', 'primordialsea', 'stormsurge'].includes(target.effectiveWeather())) { + move.accuracy = true; + } + }, + }, + dig: { + inherit: true, + condition: { + duration: 2, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'deserteddunes' || type === 'hail') return false; + }, + onInvulnerability(target, source, move) { + if (['earthquake', 'magnitude'].includes(move.id)) { + return; + } + return false; + }, + onSourceModifyDamage(damage, source, target, move) { + if (move.id === 'earthquake' || move.id === 'magnitude') { + return this.chainModify(2); + } + }, + }, + }, + dive: { + inherit: true, + condition: { + duration: 2, + onImmunity(type, pokemon) { + if (type === 'sandstorm' || type === 'deserteddunes' || type === 'hail') return false; + }, + onInvulnerability(target, source, move) { + if (['surf', 'whirlpool'].includes(move.id)) { + return; + } + return false; + }, + onSourceModifyDamage(damage, source, target, move) { + if (move.id === 'surf' || move.id === 'whirlpool') { + return this.chainModify(2); + } + }, + }, + }, + dreameater: { + inherit: true, + onTryImmunity(target) { + return target.status === 'slp' || target.hasAbility(['comatose', 'mensiscage']); + }, + }, + electroshot: { + inherit: true, + onTryMove(attacker, defender, move) { + if (attacker.removeVolatile(move.id)) { + return; + } + this.add('-prepare', attacker, move.name); + this.boost({spa: 1}, attacker, attacker, move); + if (['raindance', 'primordialsea', 'stormsurge'].includes(attacker.effectiveWeather())) { + this.attrLastMove('[still]'); + this.addMove('-anim', attacker, move.name, defender); + return; + } + if (!this.runEvent('ChargeMove', attacker, defender, move)) { + return; + } + attacker.addVolatile('twoturnmove', defender); + return null; + }, + }, + hex: { + inherit: true, + basePowerCallback(pokemon, target, move) { + if (target.status || target.hasAbility(['comatose', 'mensiscage'])) { + this.debug('BP doubled from status condition'); + return move.basePower * 2; + } + return move.basePower; + }, + }, + hurricane: { + inherit: true, + onModifyMove(move, pokemon, target) { + switch (target?.effectiveWeather()) { + case 'raindance': + case 'primordialsea': + case 'stormsurge': + move.accuracy = true; + break; + case 'sunnyday': + case 'desolateland': + move.accuracy = 50; + break; + } + }, + }, + infernalparade: { + inherit: true, + basePowerCallback(pokemon, target, move) { + if (target.status || target.hasAbility(['comatose', 'mensiscage'])) return move.basePower * 2; + return move.basePower; + }, + }, + ingrain: { + inherit: true, + condition: { + onStart(pokemon) { + this.add('-start', pokemon, 'move: Ingrain'); + }, + onResidualOrder: 7, + onResidual(pokemon) { + this.heal(pokemon.baseMaxhp / 16); + }, + onTrapPokemon(pokemon) { + pokemon.tryTrap(); + }, + // groundedness implemented in battle.engine.js:BattlePokemon#isGrounded + onDragOut(pokemon, source, move) { + if (source && this.queue.willMove(source)?.moveid === 'protectoroftheskies') return; + this.add('-activate', pokemon, 'move: Ingrain'); + return null; + }, + }, + }, + mistyterrain: { + inherit: true, + condition: { + duration: 5, + durationCallback(source, effect) { + if (source?.hasItem('terrainextender')) { + return 8; + } + return 5; + }, + onSetStatus(status, target, source, effect) { + if (!target.isGrounded() || target.isSemiInvulnerable()) return; + if (effect && ((effect as Move).status || effect.id === 'yawn')) { + this.add('-activate', target, 'move: Misty Terrain'); + } + return false; + }, + onTryHitPriority: 4, + onTryHit(target, source, effect) { + if (effect && effect.name === "Puffy Spiky Destruction") { + this.add('-activate', target, 'move: Misty Terrain'); + return null; + } + }, + onTryAddVolatile(status, target, source, effect) { + if (!target.isGrounded() || target.isSemiInvulnerable()) return; + if (status.id === 'confusion') { + if (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Misty Terrain'); + return null; + } + }, + onBasePowerPriority: 6, + onBasePower(basePower, attacker, defender, move) { + if (move.type === 'Dragon' && defender.isGrounded() && !defender.isSemiInvulnerable()) { + this.debug('misty terrain weaken'); + return this.chainModify(0.5); + } + }, + onFieldStart(field, source, effect) { + if (effect?.effectType === 'Ability') { + this.add('-fieldstart', 'move: Misty Terrain', '[from] ability: ' + effect.name, '[of] ' + source); + } else { + this.add('-fieldstart', 'move: Misty Terrain'); + } + }, + onFieldResidualOrder: 27, + onFieldResidualSubOrder: 7, + onFieldEnd() { + this.add('-fieldend', 'Misty Terrain'); + }, + }, + }, + moonlight: { + inherit: true, + onHit(pokemon) { + let factor = 0.5; + switch (pokemon.effectiveWeather()) { + case 'sunnyday': + case 'desolateland': + factor = 0.667; + break; + case 'raindance': + case 'primordialsea': + case 'stormsurge': + case 'sandstorm': + case 'deserteddunes': + case 'hail': + case 'snow': + factor = 0.25; + break; + } + const success = !!this.heal(this.modify(pokemon.maxhp, factor)); + if (!success) { + this.add('-fail', pokemon, 'heal'); + return this.NOT_FAIL; + } + return success; + }, + }, + morningsun: { + inherit: true, + onHit(pokemon) { + let factor = 0.5; + switch (pokemon.effectiveWeather()) { + case 'sunnyday': + case 'desolateland': + factor = 0.667; + break; + case 'raindance': + case 'primordialsea': + case 'stormsurge': + case 'sandstorm': + case 'deserteddunes': + case 'hail': + case 'snow': + factor = 0.25; + break; + } + const success = !!this.heal(this.modify(pokemon.maxhp, factor)); + if (!success) { + this.add('-fail', pokemon, 'heal'); + return this.NOT_FAIL; + } + return success; + }, + }, + nightmare: { + inherit: true, + condition: { + noCopy: true, + onStart(pokemon) { + if (pokemon.status !== 'slp' && !pokemon.hasAbility(['comatose', 'mensiscage'])) { + return false; + } + this.add('-start', pokemon, 'Nightmare'); + }, + onResidualOrder: 11, + onResidual(pokemon) { + this.damage(pokemon.baseMaxhp / 4); + }, + }, + }, + psychicterrain: { + inherit: true, + condition: { + duration: 5, + durationCallback(source, effect) { + if (source?.hasItem('terrainextender')) { + return 8; + } + return 5; + }, + onTryHitPriority: 4, + onTryHit(target, source, effect) { + if (effect && (effect.priority <= 0.1 || effect.target === 'self') && effect.name !== "Puffy Spiky Destruction") { + return; + } + if (target.isSemiInvulnerable() || target.isAlly(source)) return; + if (!target.isGrounded()) { + const baseMove = this.dex.moves.get(effect.id); + if (baseMove.priority > 0) { + this.hint("Psychic Terrain doesn't affect Pokémon immune to Ground."); + } + return; + } + this.add('-activate', target, 'move: Psychic Terrain'); + return null; + }, + onBasePowerPriority: 6, + onBasePower(basePower, attacker, defender, move) { + if (move.type === 'Psychic' && attacker.isGrounded() && !attacker.isSemiInvulnerable()) { + this.debug('psychic terrain boost'); + return this.chainModify([5325, 4096]); + } + }, + onFieldStart(field, source, effect) { + if (effect?.effectType === 'Ability') { + this.add('-fieldstart', 'move: Psychic Terrain', '[from] ability: ' + effect.name, '[of] ' + source); + } else { + this.add('-fieldstart', 'move: Psychic Terrain'); + } + }, + onFieldResidualOrder: 27, + onFieldResidualSubOrder: 7, + onFieldEnd() { + this.add('-fieldend', 'move: Psychic Terrain'); + }, + }, + }, + rest: { + inherit: true, + onTry(source) { + if (source.status === 'slp' || source.hasAbility(['comatose', 'mensiscage'])) return false; + + if (source.hp === source.maxhp) { + this.add('-fail', source, 'heal'); + return null; + } + if (source.hasAbility(['insomnia', 'vitalspirit'])) { + this.add('-fail', source, '[from] ability: ' + source.getAbility().name, '[of] ' + source); + return null; + } + }, + }, + sandsearstorm: { + inherit: true, + onModifyMove(move, pokemon, target) { + if (target && ['raindance', 'primordialsea', 'stormsurge'].includes(target.effectiveWeather())) { + move.accuracy = true; + } + }, + }, + shoreup: { + inherit: true, + onHit(pokemon) { + let factor = 0.5; + if (this.field.isWeather(['sandstorm', 'deserteddunes'])) { + factor = 0.667; + } + const success = !!this.heal(this.modify(pokemon.maxhp, factor)); + if (!success) { + this.add('-fail', pokemon, 'heal'); + return this.NOT_FAIL; + } + return success; + }, + }, + sleeptalk: { + inherit: true, + onTry(source) { + return source.status === 'slp' || source.hasAbility(['comatose', 'mensiscage']); + }, + }, + snore: { + inherit: true, + onTry(source) { + return source.status === 'slp' || source.hasAbility(['comatose', 'mensiscage']); + }, + }, + solarbeam: { + inherit: true, + onBasePower(basePower, pokemon, target) { + const weakWeathers = ['raindance', 'primordialsea', 'stormsurge', 'sandstorm', 'deserteddunes', 'hail', 'snow']; + if (weakWeathers.includes(pokemon.effectiveWeather())) { + this.debug('weakened by weather'); + return this.chainModify(0.5); + } + }, + }, + solarblade: { + inherit: true, + onBasePower(basePower, pokemon, target) { + const weakWeathers = ['raindance', 'primordialsea', 'stormsurge', 'sandstorm', 'deserteddunes', 'hail', 'snow']; + if (weakWeathers.includes(pokemon.effectiveWeather())) { + this.debug('weakened by weather'); + return this.chainModify(0.5); + } + }, + }, + stickyweb: { + inherit: true, + condition: { + onSideStart(side) { + this.add('-sidestart', side, 'move: Sticky Web'); + }, + onEntryHazard(pokemon) { + if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots') || pokemon.hasAbility('eternalgenerator')) return; + this.add('-activate', pokemon, 'move: Sticky Web'); + this.boost({spe: -1}, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb')); + }, + }, + }, + synthesis: { + inherit: true, + onHit(pokemon) { + let factor = 0.5; + switch (pokemon.effectiveWeather()) { + case 'sunnyday': + case 'desolateland': + factor = 0.667; + break; + case 'raindance': + case 'primordialsea': + case 'stormsurge': + case 'sandstorm': + case 'deserteddunes': + case 'hail': + case 'snow': + factor = 0.25; + break; + } + const success = !!this.heal(this.modify(pokemon.maxhp, factor)); + if (!success) { + this.add('-fail', pokemon, 'heal'); + return this.NOT_FAIL; + } + return success; + }, + }, + thunder: { + inherit: true, + onModifyMove(move, pokemon, target) { + switch (target?.effectiveWeather()) { + case 'raindance': + case 'primordialsea': + case 'stormsurge': + move.accuracy = true; + break; + case 'sunnyday': + case 'desolateland': + move.accuracy = 50; + break; + } + }, + }, + wakeupslap: { + inherit: true, + basePowerCallback(pokemon, target, move) { + if (target.status === 'slp' || target.hasAbility(['comatose', 'mensiscage'])) { + this.debug('BP doubled on sleeping target'); + return move.basePower * 2; + } + return move.basePower; + }, + }, + weatherball: { + inherit: true, + onModifyType(move, pokemon) { + switch (pokemon.effectiveWeather()) { + case 'sunnyday': + case 'desolateland': + move.type = 'Fire'; + break; + case 'raindance': + case 'primordialsea': + case 'stormsurge': + move.type = 'Water'; + break; + case 'sandstorm': + case 'deserteddunes': + move.type = 'Rock'; + break; + case 'hail': + case 'snow': + move.type = 'Ice'; + break; + } + }, + onModifyMove(move, pokemon) { + switch (pokemon.effectiveWeather()) { + case 'sunnyday': + case 'desolateland': + case 'raindance': + case 'primordialsea': + case 'stormsurge': + case 'sandstorm': + case 'deserteddunes': + case 'hail': + case 'snow': + move.basePower *= 2; + break; + } + this.debug('BP: ' + move.basePower); + }, + }, + wildboltstorm: { + inherit: true, + onModifyMove(move, pokemon, target) { + if (target && ['raindance', 'primordialsea', 'stormsurge'].includes(target.effectiveWeather())) { + move.accuracy = true; + } + }, + }, + gravity: { + inherit: true, + condition: { + duration: 5, + durationCallback(source, effect) { + if (source?.hasAbility('persistent')) { + this.add('-activate', source, 'ability: Persistent', '[move] Gravity'); + return 7; + } + return 5; + }, + onFieldStart(target, source) { + if (source?.hasAbility('persistent')) { + this.add('-fieldstart', 'move: Gravity', '[persistent]'); + } else { + this.add('-fieldstart', 'move: Gravity'); + } + for (const pokemon of this.getAllActive()) { + let applies = false; + if (pokemon.removeVolatile('bounce') || pokemon.removeVolatile('fly')) { + applies = true; + this.queue.cancelMove(pokemon); + pokemon.removeVolatile('twoturnmove'); + } + if (pokemon.volatiles['skydrop']) { + applies = true; + this.queue.cancelMove(pokemon); + + if (pokemon.volatiles['skydrop'].source) { + this.add('-end', pokemon.volatiles['twoturnmove'].source, 'Sky Drop', '[interrupt]'); + } + pokemon.removeVolatile('skydrop'); + pokemon.removeVolatile('twoturnmove'); + } + if (pokemon.volatiles['magnetrise']) { + applies = true; + delete pokemon.volatiles['magnetrise']; + } + if (pokemon.volatiles['riseabove']) { + applies = true; + delete pokemon.volatiles['riseabove']; + } + if (pokemon.volatiles['telekinesis']) { + applies = true; + delete pokemon.volatiles['telekinesis']; + } + if (applies) this.add('-activate', pokemon, 'move: Gravity'); + } + }, + onModifyAccuracy(accuracy) { + if (typeof accuracy !== 'number') return; + return this.chainModify([6840, 4096]); + }, + onDisableMove(pokemon) { + for (const moveSlot of pokemon.moveSlots) { + if (this.dex.moves.get(moveSlot.id).flags['gravity']) { + pokemon.disableMove(moveSlot.id); + } + } + }, + // groundedness implemented in battle.engine.js:BattlePokemon#isGrounded + onBeforeMovePriority: 6, + onBeforeMove(pokemon, target, move) { + if (move.flags['gravity'] && !move.isZ) { + this.add('cant', pokemon, 'move: Gravity', move); + return false; + } + }, + onModifyMove(move, pokemon, target) { + if (move.flags['gravity'] && !move.isZ) { + this.add('cant', pokemon, 'move: Gravity', move); + return false; + } + }, + onFieldResidualOrder: 27, + onFieldResidualSubOrder: 2, + onFieldEnd() { + this.add('-fieldend', 'move: Gravity'); + }, + }, + }, + magnetrise: { + inherit: true, + condition: { + duration: 5, + durationCallback(target, source, effect) { + if (effect?.name === 'Antidote') return 3; + return 5; + }, + onStart(target) { + this.add('-start', target, 'Magnet Rise'); + }, + onImmunity(type) { + if (type === 'Ground') return false; + }, + onResidualOrder: 18, + onEnd(target) { + this.add('-end', target, 'Magnet Rise'); + }, + }, + }, + + // Try playing Staff Bros with dynamax clause and see what happens + supermetronome: { + accuracy: true, + basePower: 0, + category: "Status", + desc: "Uses 2-5 random moves. Does not include 1-Base Power Z-Moves, Super Metronome, Metronome, or 10-Base Power Max moves.", + shortDesc: "Uses 2-5 random moves.", + name: "Super Metronome", + isNonstandard: "Custom", + pp: 100, + noPPBoosts: true, + priority: 0, + flags: {}, + onTryMove(pokemon) { + this.attrLastMove('[still]'); + }, + onPrepareHit(target, source) { + this.add('-anim', source, "Metronome", source); + }, + onHit(target, source, effect) { + const moves = []; + for (const move of this.dex.moves.all()) { + if (move.realMove || move.id.includes('metronome')) continue; + // Calling 1 BP move is somewhat lame and disappointing. However, + // signature Z moves are fine, as they actually have a base power. + if (move.isZ && move.basePower === 1) continue; + if (move.gen > this.gen) continue; + if (move.isMax) continue; + moves.push(move.name); + } + let randomMove: string; + if (moves.length) { + randomMove = this.sample(moves); + } else { + return false; + } + this.actions.useMove(randomMove, target); + }, + multihit: [2, 5], + secondary: null, + target: "self", + type: "???", + }, +}; diff --git a/data/mods/gen9ssb/pokedex.ts b/data/mods/gen9ssb/pokedex.ts new file mode 100644 index 000000000000..a5ff11d6362e --- /dev/null +++ b/data/mods/gen9ssb/pokedex.ts @@ -0,0 +1,1194 @@ +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { + /* + // Example + id: { + inherit: true, // Always use this, makes the pokemon inherit its default values from the parent mod (gen7) + baseStats: {hp: 100, atk: 100, def: 100, spa: 100, spd: 100, spe: 100}, // the base stats for the pokemon + }, + */ + // aegii + scizor: { + inherit: true, + abilities: {0: "Unburden"}, + }, + + // Aelita + melmetal: { + inherit: true, + abilities: {0: "Fortified Metal"}, + }, + + // Aethernum + giratinaorigin: { + inherit: true, + abilities: {0: "The Eminence in the Shadow"}, + }, + + // Akir + slowbro: { + inherit: true, + abilities: {0: "Take it Slow"}, + }, + + // Alex + sprigatito: { + inherit: true, + baseStats: {hp: 90, atk: 61, def: 84, spa: 45, spd: 85, spe: 65}, + abilities: {0: "Pawprints"}, + }, + + // Alexander489 + charizard: { + inherit: true, + abilities: {0: "Confirmed Town"}, + }, + + // Apple + applin: { + inherit: true, + baseStats: {hp: 106, atk: 80, def: 110, spa: 120, spd: 80, spe: 44}, + abilities: {0: "Orchard's Gift"}, + }, + + // Appletun a la Mode + appletun: { + inherit: true, + abilities: {0: "Served Cold"}, + }, + + // aQrator + totodile: { + inherit: true, + baseStats: {hp: 85, atk: 105, def: 100, spa: 79, spd: 83, spe: 78}, + abilities: {0: "Neverending fHunt"}, + }, + + // A Quag To The Past + quagsire: { + inherit: true, + baseStats: {hp: 130, atk: 100, def: 75, spa: 20, spd: 60, spe: 45}, + abilities: {0: "Quag of Ruin"}, + }, + clodsire: { + inherit: true, + baseStats: {hp: 130, atk: 60, def: 75, spa: 40, spd: 100, spe: 20}, + abilities: {0: "Clod of Ruin"}, + }, + + // Archas + lilligant: { + inherit: true, + abilities: {0: "Saintly Bullet"}, + }, + + // Arcueid + deoxysattack: { + inherit: true, + abilities: {0: "Marble Phantasm"}, + }, + deoxysdefense: { + inherit: true, + abilities: {0: "Marble Phantasm"}, + }, + + // Arsenal + rabsca: { + inherit: true, + baseStats: {hp: 100, atk: 50, def: 100, spa: 115, spd: 100, spe: 45}, + abilities: {0: "Absorb Phys"}, + }, + + // Artemis + genesect: { + inherit: true, + abilities: {0: "Supervised Learning"}, + }, + + // Arya + trapinch: { + inherit: true, + types: ["Ground", "Dragon"], + baseStats: {hp: 80, atk: 100, def: 90, spa: 120, spd: 100, spe: 130}, + abilities: {0: "Punk Rock"}, + }, + flygon: { + inherit: true, + abilities: {0: "Tinted Lens"}, + }, + + // Audiino + audino: { + inherit: true, + abilities: {0: "Mitosis"}, + }, + + // ausma + hatterene: { + inherit: true, + abilities: {0: "Cascade"}, + }, + + // AuzBat + swoobat: { + inherit: true, + abilities: {0: "Magic Guard"}, + }, + + // avarice + sinistchamasterpiece: { + inherit: true, + abilities: {0: "Serene Grace"}, + }, + + // Beowulf + beedrill: { + inherit: true, + abilities: {0: "Intrepid Sword"}, + }, + + // berry + regirock: { + inherit: true, + abilities: {0: "Sturdy"}, + }, + + // Bert122 + sableye: { + inherit: true, + abilities: {0: "Prankster"}, + }, + sableyemega: { + inherit: true, + abilities: {0: "Pestering Assault"}, + }, + + // Billo + cosmog: { + inherit: true, + abilities: {0: "Wonder Guard"}, + }, + solgaleo: { + inherit: true, + abilities: {0: "Magic Guard"}, + }, + + // blazeofvictory + sylveon: { + inherit: true, + abilities: {0: "Prismatic Lens"}, + }, + + // Blitz + chiyu: { + inherit: true, + types: ["Water", "Dark"], + abilities: {0: "Blitz of Ruin"}, + }, + + // Breadey + dachsbun: { + inherit: true, + abilities: {0: "Painful Exit"}, + }, + + // Cake + dunsparce: { + inherit: true, + abilities: {0: "Scrappy"}, + }, + + // chaos + ironjugulis: { + inherit: true, + abilities: {0: "Transistor"}, + }, + + // Chloe + tsareena: { + inherit: true, + abilities: {0: "Acetosa"}, + }, + + // Chris + ragingbolt: { + inherit: true, + abilities: {0: "Astrothunder"}, + }, + + // ciran + rapidash: { + inherit: true, + abilities: {0: "Defiant"}, + }, + + // Clefable + clefable: { + inherit: true, + abilities: {0: "That's Hacked"}, + }, + + // Clementine + avalugg: { + inherit: true, + abilities: {0: "Melting Point"}, + }, + avalugghisui: { + inherit: true, + types: ["Ice"], + baseStats: {hp: 95, atk: 46, def: 44, spa: 184, spd: 117, spe: 95}, + abilities: {0: "Melting Point"}, + }, + + // clerica + mimikyu: { + inherit: true, + abilities: {0: "Masquerade"}, + }, + mimikyubusted: { + inherit: true, + abilities: {0: "Masquerade"}, + }, + + // Clouds + corvisquire: { + inherit: true, + baseStats: {hp: 98, atk: 87, def: 105, spa: 53, spd: 85, spe: 67}, + abilities: {0: "Jet Stream"}, + }, + + // Coolcodename + victini: { + inherit: true, + abilities: {0: "Firewall"}, + }, + + // Corthius + thwackey: { + inherit: true, + abilities: {0: "Grassy Emperor"}, + }, + + // Dawn of Artemis + necrozma: { + inherit: true, + abilities: {0: "Form Change"}, + }, + necrozmaultra: { + inherit: true, + abilities: {0: "Form Change"}, + }, + + // DaWoblefet + wobbuffet: { + inherit: true, + abilities: {0: "Shadow Artifice"}, + }, + + // deftinwolf + yveltal: { + inherit: true, + abilities: {0: "Sharpness"}, + }, + + // dhelmise + slowkinggalar: { + inherit: true, + abilities: {0: "Coalescence"}, + }, + + // DianaNicole + abomasnow: { + inherit: true, + abilities: {0: "Snow Warning"}, + }, + abomasnowmega: { + inherit: true, + abilities: {0: "Flash Fire"}, + }, + + // EasyOnTheHills + snorlax: { + inherit: true, + abilities: {0: "Immunity"}, + }, + + // Elliot + sinistea: { + inherit: true, + baseStats: {hp: 69, atk: 65, def: 114, spa: 134, spd: 65, spe: 70}, + abilities: {0: "Natural Cure"}, + }, + + // Elly + thundurus: { + inherit: true, + abilities: {0: "Storm Surge"}, + }, + + // Emboar02 + emboar: { + inherit: true, + abilities: {0: "Hogwash"}, + }, + + // Fame + jumpluff: { + inherit: true, + abilities: {0: "Social Jumpluff Warrior"}, + }, + + // Felucia + vespiquen: { + inherit: true, + abilities: {0: "Mountaineer"}, + }, + + // Froggeh + toxicroak: { + inherit: true, + abilities: {0: "Super Luck"}, + }, + + // Frostyicelad + qwilfishhisui: { + inherit: true, + abilities: {0: "Almost Frosty"}, + }, + + // Frozoid + gible: { + inherit: true, + baseStats: {hp: 65, atk: 110, def: 55, spa: 50, spd: 55, spe: 108}, + abilities: {0: "Snowballer"}, + }, + + // Ganjafin + wiglett: { + inherit: true, + baseStats: {hp: 80, atk: 60, def: 80, spa: 60, spd: 80, spe: 100}, + abilities: {0: "Gambling Addiction"}, + }, + + // Haste Inky + falinks: { + inherit: true, + abilities: {0: "Simple"}, + }, + + // havi + gastly: { + inherit: true, + baseStats: {hp: 60, atk: 65, def: 60, spa: 130, spd: 75, spe: 110}, + abilities: {0: "Mensis Cage"}, + }, + + // Hecate + mewtwo: { + inherit: true, + abilities: {0: "Hacking"}, + }, + mewtwomegax: { + inherit: true, + abilities: {0: "Hacking"}, + }, + + // HiZo + zoroarkhisui: { + inherit: true, + abilities: {0: "Justified"}, + }, + + // HoeenHero + ludicolo: { + inherit: true, + abilities: {0: "Misspelled"}, + }, + + // hsy + ursaluna: { + inherit: true, + abilities: {0: "Hustle"}, + }, + + // Hydrostatics + pichuspikyeared: { + inherit: true, + baseStats: {hp: 35, atk: 55, def: 40, spa: 50, spd: 50, spe: 90}, + abilities: {0: 'Hydrostatic Positivity'}, + types: ["Electric", "Water"], + }, + + // Imperial + kyurem: { + inherit: true, + abilities: {0: "Frozen Fortuity"}, + }, + kyuremblack: { + inherit: true, + abilities: {0: "Frozen Fortuity"}, + }, + kyuremwhite: { + inherit: true, + abilities: {0: "Frozen Fortuity"}, + }, + + // in the hills + gligar: { + inherit: true, + abilities: {0: "Illterit"}, + }, + + // ironwater + jirachi: { + inherit: true, + abilities: {0: "Good as Gold"}, + }, + + // Irpachuza + mrmime: { + inherit: true, + abilities: {0: "Mime knows best"}, + }, + + // Isaiah + medicham: { + inherit: true, + abilities: {0: "Psychic Surge"}, + }, + + // J0rdy004 + vulpixalola: { + inherit: true, + baseStats: {hp: 73, atk: 67, def: 75, spa: 81, spd: 100, spe: 109}, + abilities: {0: "Fortifying Frost"}, + }, + + // Kalalokki + flamigo: { + inherit: true, + abilities: {0: "Scrappy"}, + }, + + // Karthik + staraptor: { + inherit: true, + abilities: {0: "Tough Claws"}, + }, + + // ken + jigglypuff: { + inherit: true, + baseStats: {hp: 115, atk: 65, def: 99, spa: 65, spd: 115, spe: 111}, + abilities: {0: "Aroma Veil"}, + }, + + // kenn + larvitar: { + inherit: true, + baseStats: {hp: 100, atk: 84, def: 70, spa: 65, spd: 70, spe: 61}, + abilities: {0: "Deserted Dunes"}, + }, + + // Kennedy + cinderace: { + inherit: true, + abilities: {0: "Anfield"}, + otherFormes: ["Cinderace-Gmax"], + }, + cinderacegmax: { + inherit: true, + types: ["Fire", "Ice"], + baseStats: {hp: 84, atk: 119, def: 78, spa: 77, spd: 81, spe: 105}, + abilities: {0: "You'll Never Walk Alone"}, + weightkg: 103, + }, + + // keys + rayquaza: { + inherit: true, + abilities: {0: "Defeatist"}, + }, + rayquazamega: { + inherit: true, + abilities: {0: "Defeatist"}, + requiredMove: "Protector of the Skies", + }, + + // kingbaruk + wigglytuff: { + inherit: true, + abilities: {0: "Peer Pressure"}, + }, + + // Kiwi + minccino: { + inherit: true, + abilities: {0: "Sure Hit Sorcery"}, + }, + + // Klmondo + cloyster: { + inherit: true, + abilities: {0: "Super Skilled"}, + }, + + // kolohe + pikachu: { + inherit: true, + baseStats: {hp: 45, atk: 80, def: 50, spa: 75, spd: 60, spe: 120}, + abilities: {0: "Soul Surfer"}, + }, + + // Kry + mawile: { + inherit: true, + abilities: {0: "Flash Freeze"}, + }, + + // Lasen + zekrom: { + inherit: true, + abilities: {0: "Idealized World"}, + }, + + // Lets go shuckles + shuckle: { + inherit: true, + abilities: {0: "Persistent"}, + }, + + // Lily + togedemaru: { + inherit: true, + abilities: {0: "Unaware"}, + }, + + // Loethalion + ralts: { + inherit: true, + abilities: {0: "Psychic Surge"}, + }, + + // Lumari + ponytagalar: { + inherit: true, + baseStats: {hp: 65, atk: 100, def: 70, spa: 80, spd: 80, spe: 105}, + abilities: {0: "Pyrotechnic"}, + }, + + // Lunell + vaporeon: { + inherit: true, + abilities: {0: "Low Tide, High Tide"}, + }, + + // Lyna + dragonair: { + inherit: true, + baseStats: {hp: 82, atk: 80, def: 80, spa: 80, spd: 80, spe: 80}, + abilities: {0: "Magic Aura"}, + }, + + // Maia + litwick: { + inherit: true, + abilities: {0: "Power Abuse"}, + }, + + // marillvibes + marill: { + inherit: true, + baseStats: {hp: 100, atk: 50, def: 80, spa: 60, spd: 80, spe: 50}, + abilities: {0: "Huge Power"}, + }, + + // maroon + archaludon: { + inherit: true, + abilities: {0: "Built Different"}, + }, + + // Mathy + furret: { + inherit: true, + baseStats: {hp: 105, atk: 96, def: 84, spa: 45, spd: 75, spe: 110}, + abilities: {0: "Dynamic Typing"}, + }, + + // Merritty + torchic: { + inherit: true, + baseStats: {hp: 65, atk: 60, def: 60, spa: 80, spd: 70, spe: 85}, + abilities: {0: "End Round"}, + }, + + // Meteordash + tatsugiri: { + inherit: true, + abilities: {0: "TatsuGlare"}, + }, + + // Mex + dialga: { + inherit: true, + abilities: {0: "Time Dilation"}, + }, + + // Miojo + spheal: { + inherit: true, + baseStats: {hp: 110, atk: 95, def: 90, spa: 80, spd: 90, spe: 65}, + abilities: {0: "The Rolling Spheal"}, + }, + + // Monkey + infernape: { + inherit: true, + abilities: {0: "Harambe Hit"}, + }, + + // MyPearl + latios: { + inherit: true, + abilities: {0: "Eon Call"}, + }, + latias: { + inherit: true, + abilities: {0: "Eon Call"}, + }, + + // Neko + chienpao: { + inherit: true, + abilities: {0: "Weatherproof"}, + }, + + // Ney + banette: { + inherit: true, + abilities: {0: "Insomnia"}, + }, + banettemega: { + inherit: true, + abilities: {0: "Prankster Plus"}, + }, + + // Notater517 + incineroar: { + inherit: true, + abilities: {0: "Vent Crosser"}, + }, + + // nya + delcatty: { + inherit: true, + types: ["Fairy"], + baseStats: {hp: 80, atk: 65, def: 80, spa: 70, spd: 80, spe: 90}, + abilities: {0: "Adorable Grace"}, + }, + + // pants + annihilape: { + inherit: true, + abilities: {0: "Drifting"}, + }, + + // PartMan + chandelure: { + inherit: true, + abilities: {0: "C- Tier Shitposter"}, + }, + + // Pastor Gigas + regigigas: { + inherit: true, + abilities: {0: "God's Mercy"}, + }, + + // Peary + klinklang: { + inherit: true, + abilities: {0: "Levitate"}, + }, + + // phoopes + jynx: { + inherit: true, + baseStats: {hp: 65, atk: 50, def: 35, spa: 115, spd: 115, spe: 95}, + abilities: {0: "I Did It Again"}, + }, + + // Pissog + volcarona: { + inherit: true, + abilities: {0: "Drought"}, + }, + frosmoth: { + inherit: true, + abilities: {0: "Snow Warning"}, + }, + + // pokemonvortex + pokestarsmeargle: { + inherit: true, + baseStats: {hp: 100, atk: 100, def: 100, spa: 100, spd: 100, spe: 100}, + abilities: {0: "Prankster"}, + }, + + // Princess Autumn + altaria: { + inherit: true, + abilities: {0: "Last Hymn"}, + }, + altariamega: { + inherit: true, + abilities: {0: "Last Hymn"}, + }, + + // ptoad + politoed: { + inherit: true, + abilities: {0: "Drizzle"}, + }, + + // Pulse_kS + hydreigon: { + inherit: true, + abilities: {0: "Pulse Luck"}, + }, + + // PYRO + kingambit: { + inherit: true, + abilities: {0: "Hardcore Hustle"}, + }, + + // Quite Quiet + ribombee: { + inherit: true, + abilities: {0: "Fancy Scarf"}, + }, + + // quziel + chromera: { + inherit: true, + abilities: {0: "High Performance Computing"}, + }, + + // R8 + chansey: { + inherit: true, + abilities: {0: "Anti-Pelau"}, + }, + + // Rainshaft + xerneas: { + inherit: true, + abilities: {0: "Rainy's Aura"}, + }, + + // Ransei + audinomega: { + inherit: true, + abilities: {0: "Healer", 1: "Ultra Mystik"}, + }, + + // ReturnToMonkey + oranguru: { + inherit: true, + abilities: {0: "Monke See Monke Do"}, + }, + + // Rissoux + arcaninehisui: { + inherit: true, + abilities: {0: "Hard Headed"}, + }, + + // RSB + growlithe: { + inherit: true, + baseStats: {hp: 70, atk: 86, def: 60, spa: 86, spd: 66, spe: 76}, + abilities: {0: "Hot Pursuit"}, + }, + + // Rumia + duskull: { + inherit: true, + types: ["Ghost", "Dark"], + baseStats: {hp: 50, atk: 55, def: 90, spa: 90, spd: 55, spe: 55}, + abilities: {0: "Youkai of the Dusk"}, + }, + + // Scotteh + suicune: { + inherit: true, + abilities: {0: "Water Absorb"}, + }, + + // SexyMalasada + typhlosion: { + inherit: true, + abilities: {0: "Ancestry Ritual"}, + }, + typhlosionhisui: { + inherit: true, + abilities: {0: "Ancestry Ritual"}, + }, + + // sharp_claw + sneasel: { + inherit: true, + baseStats: {hp: 55, atk: 105, def: 95, spa: 35, spd: 95, spe: 135}, + abilities: {0: "Regenerator"}, + }, + sneaselhisui: { + inherit: true, + baseStats: {hp: 55, atk: 135, def: 75, spa: 35, spd: 85, spe: 135}, + abilities: {0: "Regenerator"}, + }, + + // Siegfried + ampharos: { + inherit: true, + abilities: {0: "Static"}, + }, + ampharosmega: { + inherit: true, + abilities: {0: "Magical Mystery Charge"}, + }, + + // Sificon + hoppip: { + inherit: true, + baseStats: {hp: 75, atk: 55, def: 70, spa: 55, spd: 95, spe: 110}, + abilities: {0: "Perfectly Imperfect"}, + }, + + // skies + chespin: { + inherit: true, + baseStats: {hp: 88, atk: 107, def: 122, spa: 74, spd: 75, spe: 64}, + abilities: {0: "Spikes of Wrath"}, + }, + + // snake + fidgit: { + inherit: true, + abilities: {0: "Persistent"}, + }, + + // Soft Flex + magnezone: { + inherit: true, + abilities: {0: "Adaptive Engineering"}, + }, + + // Solaros & Lunaris + scovillain: { + inherit: true, + abilities: {0: "Ride the Sun!"}, + }, + + // Spiderz + ironthorns: { + inherit: true, + types: ['Dark', 'Ground'], + abilities: {0: "Poison Heal"}, + }, + + // spoo + hemogoblin: { + inherit: true, + abilities: {0: "I Can Hear The Heart Beating As One"}, + }, + + // Steorra + kitsunoh: { + inherit: true, + abilities: {0: "Ghostly Hallow"}, + }, + + // Struchni + aggron: { + inherit: true, + abilities: {0: "Overasked Clause"}, + }, + + // Sulo + reuniclus: { + inherit: true, + abilities: {0: "Protection of the Gelatin"}, + }, + + // Swiffix + piplup: { + inherit: true, + baseStats: {hp: 64, atk: 66, def: 68, spa: 81, spd: 76, spe: 50}, + abilities: {0: "Stinky"}, + }, + + // Syrinix + ceruledge: { + inherit: true, + abilities: {0: "Sword of Ruin"}, + }, + + // Teclis + gallade: { + inherit: true, + abilities: {0: "Sharpness"}, + }, + + // Tenshi + sandshrew: { + inherit: true, + baseStats: {hp: 50, atk: 115, def: 130, spa: 50, spd: 65, spe: 98}, + abilities: {0: "Sand Sleuth"}, + }, + + // TheJesuchristoOsAma + arceus: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusbug: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusdark: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusdragon: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceuselectric: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusfairy: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusfighting: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusfire: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusflying: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusghost: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusgrass: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusground: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusice: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceuspoison: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceuspsychic: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceusrock: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceussteel: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + arceuswater: { + inherit: true, + abilities: {0: "The Grace of Jesus Christ"}, + }, + + // Tico + floetteeternal: { + inherit: true, + abilities: {0: "Eternal Generator"}, + }, + + // trace + delphox: { + inherit: true, + abilities: {0: "Eyes of Eternity"}, + }, + + // Tuthur + screamtail: { + inherit: true, + abilities: {0: "Poison Heal"}, + }, + + // Two of Roses + luxray: { + inherit: true, + abilities: {0: "As We See"}, + }, + + // UT + talonflame: { + inherit: true, + abilities: {0: "Gale Guard"}, + }, + + // Valerian + lucario: { + inherit: true, + abilities: {0: "Full Bloom"}, + }, + + // Venous + mantine: { + inherit: true, + abilities: {0: "Concrete Over Water"}, + }, + + // Violet + ogerpon: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + ogerpontealtera: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + ogerponcornerstone: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + ogerponcornerstonetera: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + ogerponhearthflame: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + ogerponhearthflametera: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + ogerponwellspring: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + ogerponwellspringtera: { + inherit: true, + abilities: {0: "See No Evil, Hear No Evil, Speak No Evil"}, + }, + + // Vistar + zeraora: { + inherit: true, + abilities: {0: "Prankster"}, + }, + + // vmnunes + shayminsky: { + inherit: true, + abilities: {0: "Wild Growth"}, + }, + + // WarriorGallade + tropius: { + inherit: true, + abilities: {0: "Primeval Harvest"}, + }, + + // Waves + wailord: { + inherit: true, + abilities: {0: "Primordial Sea"}, + }, + + // WigglyTree + sudowoodo: { + inherit: true, + abilities: {0: "Tree Stance"}, + baseStats: {hp: 70, atk: 100, def: 115, spa: 30, spd: 65, spe: 50}, + }, + + // xy01 + blissey: { + inherit: true, + abilities: {0: "Panic"}, + }, + + // yeet dab xd + kecleon: { + inherit: true, + abilities: {0: "Treasure Bag"}, + }, + + // Yellow Paint + rotomfrost: { + inherit: true, + abilities: {0: "Yellow Magic"}, + }, + + ninetalesalola: { + inherit: true, + abilities: {0: "Party Up"}, + }, + + // YveltalNL + farigiraf: { + inherit: true, + abilities: {0: "Height Advantage"}, + }, + + // za + greedent: { + inherit: true, + abilities: {0: "Troll"}, + }, + + // Zalm + weedle: { + inherit: true, + baseStats: {hp: 100, atk: 90, def: 100, spa: 35, spd: 90, spe: 100}, + abilities: {0: "Water Bubble"}, + }, + + // Zarel + meloetta: { + inherit: true, + abilities: {0: "Tempo Change"}, + }, + meloettapirouette: { + inherit: true, + abilities: {0: "Tempo Change"}, + }, + + // zee + lilliganthisui: { + inherit: true, + abilities: {0: "Chlorophyll"}, + }, + + // zoro + umbreon: { + inherit: true, + abilities: {0: "Nine Lives"}, + }, +}; diff --git a/data/mods/gen9ssb/random-teams.ts b/data/mods/gen9ssb/random-teams.ts new file mode 100644 index 000000000000..995a731f1f11 --- /dev/null +++ b/data/mods/gen9ssb/random-teams.ts @@ -0,0 +1,1250 @@ +import RandomTeams from '../../random-battles/gen9/teams'; + +export interface SSBSet { + species: string; + ability: string | string[]; + item: string | string[]; + gender: GenderName | GenderName[]; + moves: (string | string[])[]; + signatureMove: string; + evs?: {hp?: number, atk?: number, def?: number, spa?: number, spd?: number, spe?: number}; + ivs?: {hp?: number, atk?: number, def?: number, spa?: number, spd?: number, spe?: number}; + nature?: string | string[]; + shiny?: number | boolean; + level?: number; + happiness?: number; + skip?: string; + teraType?: string | string[]; +} +interface SSBSets {[k: string]: SSBSet} + +export const ssbSets: SSBSets = { + /* + // Example: + Username: { + species: 'Species', ability: 'Ability', item: 'Item', gender: '', + moves: ['Move Name', ['Move Name', 'Move Name']], + signatureMove: 'Move Name', + evs: {stat: number}, ivs: {stat: number}, nature: 'Nature', teraType: 'Type', + }, + // Species, ability, and item need to be captialized properly ex: Ludicolo, Swift Swim, Life Orb + // Gender can be M, F, N, or left as an empty string + // each slot in moves needs to be a string (the move name, captialized properly ex: Hydro Pump), or an array of strings (also move names) + // signatureMove also needs to be capitalized properly ex: Scripting + // You can skip Evs (defaults to 84 all) and/or Ivs (defaults to 31 all), or just skip part of the Evs (skipped evs are 0) and/or Ivs (skipped Ivs are 31) + // You can also skip shiny, defaults to false. Level can be skipped (defaults to 100). + // Nature needs to be a valid nature with the first letter capitalized ex: Modest + */ + // Please keep sets organized alphabetically based on staff member name! + aegii: { + species: 'Scizor', ability: 'Unburden', item: 'Lansat Berry', gender: 'M', + moves: ['Acrobatics', 'Attack Order', ['Cross Chop', 'Night Slash']], + signatureMove: 'Equip Aegislash', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Adamant', teraType: 'Flying', + }, + Aelita: { + species: 'Melmetal', ability: 'Fortified Metal', item: 'Leftovers', gender: '', + moves: ['Heavy Slam', 'Bitter Blade', 'Liquidation'], + signatureMove: 'Smelt', + evs: {hp: 252, atk: 4, spd: 252}, nature: 'Careful', teraType: 'Steel', shiny: true, + }, + Aethernum: { + species: 'Giratina-Origin', ability: 'The Eminence in the Shadow', item: 'Griseous Core', gender: '', + moves: ['Fiery Wrath', 'Lunar Blessing', 'Dragon Energy'], + signatureMove: 'I. AM. ATOMIC.', + evs: {atk: 4, spa: 252, spe: 252}, nature: 'Hasty', teraType: 'Dark', shiny: true, + }, + Akir: { + species: 'Slowbro', ability: 'Take it Slow', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Future Sight', 'Slack Off', 'Steam Eruption'], + signatureMove: 'Free Switch Button', + evs: {hp: 248, def: 8, spa: 252}, ivs: {spe: 0}, nature: 'Relaxed', teraType: 'Fairy', + }, + Alex: { + species: 'Sprigatito', ability: 'Pawprints', item: 'Eviolite', gender: '', + moves: [['Charm', 'Tickle'], 'Protect', 'Soak'], + signatureMove: 'Spicier Extract', + evs: {hp: 252, def: 4, spd: 252}, nature: 'Careful', teraType: 'Water', + }, + Alexander489: { + species: 'Charizard', ability: 'Confirmed Town', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['No Retreat', 'Bitter Blade', 'Dual Wingbeat'], + signatureMove: 'Scumhunt', + evs: {atk: 252, spa: 4, spe: 252}, nature: 'Naughty', teraType: 'Fire', shiny: true, + }, + Apple: { + species: 'Applin', ability: 'Orchard\'s Gift', item: 'Lum Berry', gender: ['M', 'F'], + moves: ['Apple Acid', 'Leech Seed', 'Dragon Pulse'], + signatureMove: 'Wopple or Flopple', + evs: {hp: 252, spa: 4, spd: 252}, nature: 'Sassy', shiny: 2, teraType: 'Dragon', + }, + 'Appletun a la Mode': { + species: 'Appletun', ability: 'Served Cold', item: 'Sitrus Berry', gender: 'F', + moves: ['Freeze-Dry', 'Apple Acid', 'Fickle Beam'], + signatureMove: "Extra Course", + evs: {hp: 252, spa: 4, spd: 252}, nature: 'Calm', teraType: 'Ground', + }, + aQrator: { + species: 'Totodile', ability: 'Neverending fHunt', item: 'Eviolite', gender: 'F', + moves: ['Whirlpool', 'Noble Roar', 'Slack Off'], + signatureMove: "Tori's Stori", + evs: {hp: 252, def: 4, spd: 252}, nature: 'Sassy', teraType: 'Fighting', + }, + 'A Quag To The Past': { + species: 'Quagsire', ability: 'Quag of Ruin', item: 'Leftovers', gender: 'M', + moves: ['Surging Strikes', 'Precipice Blades', 'Gunk Shot'], + signatureMove: 'Sire Switch', + evs: {hp: 252, def: 4, spd: 252}, nature: 'Careful', teraType: 'Water', + }, + 'A Quag To The Past-Clodsire': { + species: 'Clodsire', ability: 'Clod of Ruin', item: 'Leftovers', gender: 'M', + moves: ['Coil', 'Strength Sap', 'Toxic'], + signatureMove: 'Sire Switch', + evs: {hp: 252, def: 4, spd: 252}, nature: 'Careful', teraType: 'Poison', skip: 'A Quag To The Past', + }, + Archas: { + species: 'Lilligant', ability: 'Saintly Bullet', item: 'Lilligantium Z', gender: 'F', + moves: ['Giga Drain', 'Snipe Shot', 'Aeroblast'], + signatureMove: 'Quiver Dance', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', + }, + Arcueid: { + species: 'Deoxys-Defense', ability: 'Marble Phantasm', item: 'Heavy-Duty Boots', gender: 'N', + moves: [['Lunar Blessing', 'Jungle Healing'], 'Body Press', ['Toxic', 'Will-O-Wisp', 'Topsy-Turvy']], + signatureMove: 'Funny Vamp', + evs: {hp: 248, def: 252, spd: 8}, nature: 'Bold', teraType: 'Fairy', shiny: true, + }, + 'Arcueid-Attack': { + species: 'Deoxys-Attack', ability: 'Marble Phantasm', item: 'Heavy-Duty Boots', gender: 'N', + moves: ['Moonblast', 'Photon Geyser', 'Flamethrower'], + signatureMove: 'Funny Vamp', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Fairy', shiny: true, skip: 'Arcueid', + }, + Arsenal: { + species: 'Rabsca', ability: 'Absorb Phys', item: 'Covert Cloak', gender: 'N', + moves: ['Recover', 'Calm Mind', 'Speed Swap'], + signatureMove: 'Megidolaon', + evs: {hp: 4, spa: 252, spd: 252}, nature: 'Modest', teraType: 'Stellar', shiny: true, + }, + Artemis: { + species: 'Genesect', ability: 'Supervised Learning', item: 'Choice Specs', gender: 'N', + moves: [], + signatureMove: 'Automated Response', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Serious', shiny: true, + }, + Arya: { + species: 'Flygon', ability: 'Tinted Lens', item: 'Flygonite', gender: 'F', + moves: ['Clanging Scales', 'Roost', 'Bug Buzz'], + signatureMove: 'Anyone can be killed', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', + }, + Audiino: { + species: 'Audino', ability: 'Mitosis', item: 'Leftovers', gender: 'N', + moves: ['Recover', 'Moongeist Beam', 'Hyper Voice'], + signatureMove: 'Thinking In Progress', + evs: {hp: 252, def: 4, spa: 252}, nature: 'Modest', teraType: 'Ghost', + }, + autumn: { + species: 'Flutter Mane', ability: 'Protosynthesis', item: 'Booster Energy', gender: 'N', + moves: ['Moonblast', 'Taunt', 'Strength Sap'], + signatureMove: 'Season\'s Smite', + evs: {def: 8, spa: 244, spe: 252}, nature: 'Timid', teraType: 'Fairy', + }, + ausma: { + species: 'Hatterene', ability: 'Cascade', item: 'Leftovers', gender: 'F', + moves: ['Light of Ruin', 'Strength Sap', 'Substitute'], + signatureMove: 'Sigil\'s Storm', + evs: {hp: 252, def: 4, spa: 252}, ivs: {atk: 0, spe: 0}, nature: 'Modest', teraType: 'Fairy', + }, + 'ausma-Mismagius': { + species: 'Mismagius', ability: 'Levitate', item: 'Leftovers', gender: 'F', + moves: ['Light of Ruin', 'Strength Sap', 'Substitute'], + signatureMove: 'Sigil\'s Storm', + evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Modest', teraType: 'Fairy', skip: 'ausma', + }, + 'ausma-Fennekin': { + species: 'Fennekin', ability: 'Blaze', item: '', gender: '', + moves: ['Tackle', 'Growl'], + signatureMove: 'Ember', + evs: {}, skip: 'ausma', + }, + AuzBat: { + species: 'Swoobat', ability: 'Magic Guard', item: 'Focus Sash', gender: 'M', + moves: ['Stored Power', 'Hurricane', ['Roost', 'Focus Blast']], + signatureMove: 'Prep Time', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Psychic', shiny: 8192, + }, + avarice: { + species: 'Sinistcha-Masterpiece', ability: 'Serene Grace', item: ['Covert Cloak', 'Leftovers'], gender: 'N', + moves: ['Strength Sap', 'Calm Mind', 'Matcha Gotcha'], + signatureMove: 'yu-gi-oh reference', + evs: {hp: 252, def: 160, spe: 90}, nature: 'Bold', teraType: 'Steel', + }, + Beowulf: { + species: 'Beedrill', ability: 'Intrepid Sword', item: 'Beedrillite', gender: 'M', + moves: ['Poison Jab', 'X-Scissor', ['Earthquake', 'Volt Tackle', 'Glacial Lance']], + signatureMove: 'Buzzer Stinger Counter', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Jolly', shiny: 2, + }, + berry: { + species: 'Regirock', ability: 'Sturdy', item: 'Maranga Berry', gender: 'F', + moves: ['Curse', 'Salt Cure', 'Stone Axe'], + signatureMove: 'what kind', + evs: {hp: 252, atk: 4, spd: 252}, nature: 'Careful', teraType: 'Rock', + }, + Bert122: { + species: 'Sableye', ability: 'Prankster', item: 'Sablenite', gender: '', + moves: ['Metal Burst', 'Recover', 'Will-O-Wisp'], + signatureMove: 'Shatter and Scatter', + evs: {hp: 252, def: 28, spd: 224}, ivs: {atk: 0, spe: 0}, nature: 'Relaxed', + }, + Billo: { + species: 'Cosmog', ability: 'Wonder Guard', item: 'Eviolite', gender: 'N', + moves: [], + signatureMove: 'Hack Check', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', + }, + 'Billo-Solgaleo': { + species: 'Solgaleo', ability: 'Magic Guard', item: 'Choice Scarf', gender: 'N', + moves: ['Wave Crash', 'Volt Tackle', 'Flare Blitz'], + signatureMove: 'Head Smash', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', skip: 'Billo', shiny: true, + }, + 'Billo-Lunala': { + species: 'Lunala', ability: 'Shadow Shield', item: 'Lunalium Z', gender: 'N', + moves: ['Moongeist Beam', 'Moonblast', 'Ice Beam'], + signatureMove: 'Thunderbolt', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', skip: 'Billo', + }, + blazeofvictory: { + species: 'Sylveon', ability: 'Prismatic Lens', item: 'Leftovers', gender: 'F', + moves: ['Wish', 'Baton Pass', 'Hyper Voice'], + signatureMove: 'Veto', + evs: {hp: 252, spa: 252, spe: 4}, nature: 'Modest', teraType: 'Fairy', + }, + Blitz: { + species: 'Chi-Yu', ability: 'Blitz of Ruin', item: 'Life Orb', gender: 'N', + moves: ['Fiery Wrath', 'Lava Plume', 'Nasty Plot'], + signatureMove: 'Geyser Blast', + evs: {def: 4, spa: 252, spe: 252}, nature: 'Modest', teraType: 'Water', shiny: true, + }, + Breadey: { + species: 'Dachsbun', ability: 'Painful Exit', item: 'Leftovers', gender: '', + moves: ['Protect', 'Rest', 'Play Rough'], + signatureMove: 'Baker\'s Douze Off', + evs: {hp: 252, def: 252, spd: 4}, nature: 'Impish', teraType: 'Steel', + }, + Cake: { + species: 'Dunsparce', ability: 'Scrappy', item: 'Eviolite', gender: 'N', + moves: [ + 'Topsy-Turvy', 'Lunar Blessing', 'Lovely Kiss', 'Glare', 'Knock Off', 'Gastro Acid', + 'Trick Room', 'Toxic', 'Heal Bell', 'Octolock', 'G-Max Befuddle', 'G-Max Centiferno', + 'G-Max Cannonade', 'Magic Powder', 'Whirlwind', 'Lunar Dance', 'Power Split', + 'Snatch', 'Heal Order', 'Parting Shot', 'Population Bomb', 'Metronome', + ], + signatureMove: 'Role System', + // eslint-disable-next-line max-len + evs: {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}, nature: 'Hardy', teraType: ['Ghost', 'Poison', 'Fairy'], shiny: 1024, level: 97, + }, + chaos: { + species: 'Iron Jugulis', ability: 'Transistor', item: 'Heavy-Duty Boots', gender: 'N', + moves: [['Oblivion Wing', 'Hurricane'], ['Thunderclap', 'Volt Switch'], ['Defog', 'Roost']], + signatureMove: 'Outage', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: ['Steel', 'Flying', 'Electric', 'Dark'], + }, + Chloe: { + species: 'Tsareena', ability: 'Acetosa', item: 'Assault Vest', gender: 'F', + moves: ['Rapid Spin', 'Fishious Rend', 'Stone Axe'], + signatureMove: 'De Todas las Flores', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Grass', shiny: true, + }, + Chris: { + species: 'Raging Bolt', ability: 'Astrothunder', item: 'Leftovers', gender: 'N', + moves: ['Thunder', 'Dragon Pulse', 'Calm Mind'], + signatureMove: 'Antidote', + evs: {hp: 148, def: 156, spa: 204}, nature: 'Quiet', teraType: 'Steel', + }, + ciran: { + species: 'Rapidash', ability: 'Defiant', item: 'Heavy-Duty Boots', gender: 'N', + moves: ['Protect', 'Sketch', 'Bitter Blade'], + signatureMove: 'Summon Monster VIII: Fiendish monstrous Piplupede, Colossal', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Poison', shiny: true, + }, + Clefable: { + species: 'Clefable', ability: 'That\'s Hacked', item: 'Leftovers', gender: 'M', + moves: ['Cosmic Power', 'Soft-Boiled', 'Thunder Wave'], + signatureMove: 'Giveaway!', + evs: {hp: 252, def: 200, spd: 56}, nature: 'Calm', teraType: 'Any', shiny: true, + }, + Clementine: { + species: 'Avalugg', ability: 'Melting Point', item: 'Heavy-Duty Boots', gender: '', + moves: ['Land\'s Wrath', 'Flip Turn', 'Milk Drink'], + signatureMove: '(╯°o°)╯︵ ┻━┻', + nature: 'Quirky', teraType: ['Poison', 'Steel'], + }, + 'Clementine-Flipped': { + species: 'Avalugg-Hisui', ability: 'Melting Point', item: 'Heavy-Duty Boots', gender: '', + moves: ['Earth Power', 'Volt Switch', 'Heal Pulse'], + signatureMove: '(╯°o°)╯︵ ┻━┻', + nature: 'Quirky', teraType: ['Poison', 'Steel'], skip: 'Clementine', + }, + clerica: { + species: 'Mimikyu', ability: 'Masquerade', item: 'Ghostium Z', gender: 'F', + moves: ['Protect', 'Substitute', 'Phantom Force'], + signatureMove: 'Stockholm Syndrome', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', + }, + Clouds: { + species: 'Corvisquire', ability: 'Jet Stream', item: 'Leftovers', gender: 'M', + moves: ['Brave Bird', 'Roost', 'Defog'], + signatureMove: 'Winds of Change', + evs: {hp: 252, atk: 4, def: 252}, nature: 'Jolly', teraType: 'Flying', shiny: 822, + }, + Coolcodename: { + species: 'Victini', ability: 'Firewall', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Searing Shot', 'Psychic', 'Dazzling Gleam'], + signatureMove: 'Haxer\'s Will', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Fairy', shiny: 1024, + }, + Corthius: { + species: 'Thwackey', ability: 'Grassy Emperor', item: 'Eviolite', gender: 'M', + moves: ['Swords Dance', 'U-turn', 'Close Combat'], + signatureMove: 'Monkey Beat Up', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Adamant', shiny: 69, + }, + 'Dawn of Artemis': { + species: 'Necrozma', ability: 'Form Change', item: 'Expert Belt', gender: 'F', + moves: ['Calm Mind', 'Photon Geyser', 'Earth Power'], + signatureMove: 'Magical Focus', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Psychic', shiny: 8192, + }, + 'Dawn of Artemis-Ultra': { + species: 'Necrozma-Ultra', ability: 'Form Change', item: 'Expert Belt', gender: 'F', + moves: ['Swords Dance', 'Photon Geyser', 'Outrage'], + signatureMove: 'Magical Focus', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Dragon', skip: 'Dawn of Artemis', + }, + DaWoblefet: { + species: 'Wobbuffet', ability: 'Shadow Artifice', item: 'Iapapa Berry', gender: 'M', + moves: ['Counter', 'Mirror Coat', 'Encore'], + signatureMove: 'Super Ego Inflation', + evs: {hp: 252, def: 252, spd: 4}, ivs: {spe: 0}, nature: 'Relaxed', teraType: 'Fairy', + }, + deftinwolf: { + species: 'Yveltal', ability: 'Sharpness', item: 'Dread Plate', gender: '', + moves: ['Aerial Ace', 'Ceaseless Edge', 'Cross Poison'], + signatureMove: 'Trivial Pursuit', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', teraType: 'Poison', + }, + dhelmise: { + species: 'Slowking-Galar', ability: 'Coalescence', item: 'Black Sludge', gender: 'N', + moves: ['Sludge Bomb', 'Psychic Noise', 'Parting Shot'], + signatureMove: 'Biotic Orb', + evs: {hp: 252, def: 252, spa: 4}, nature: 'Bold', teraType: ['Psychic', 'Poison'], + }, + DianaNicole: { + species: 'Abomasnow', ability: 'Snow Warning', item: 'Abomasite', gender: 'F', + moves: ['Giga Drain', 'Earth Power', 'Blizzard'], + signatureMove: 'Breath of Tiamat', + evs: {hp: 252, def: 4, spa: 252}, nature: 'Modest', shiny: true, + }, + EasyOnTheHills: { + species: 'Snorlax', ability: 'Immunity', item: 'Life Orb', gender: 'M', + moves: ['Darkest Lariat', 'Body Slam', 'Heavy Slam'], + signatureMove: 'Snack Time', + evs: {hp: 252, atk: 252, spd: 4}, nature: 'Adamant', teraType: 'Ghost', shiny: true, + }, + Elliot: { + species: 'Sinistea', ability: 'Natural Cure', item: 'Focus Sash', gender: 'N', + moves: ['Moonblast', 'Shadow Ball', 'Teatime'], + signatureMove: 'Tea Party', + evs: {def: 4, spa: 252, spe: 252}, nature: 'Modest', teraType: 'Water', shiny: true, + }, + Elly: { + species: 'Thundurus', ability: 'Storm Surge', item: 'Heavy-Duty Boots', gender: 'F', + moves: ['Wildbolt Storm', 'Sandsear Storm', 'Volt Switch'], + signatureMove: 'Sustained Winds', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Ground', + }, + Emboar02: { + species: 'Emboar', ability: 'Hogwash', item: 'Choice Band', gender: 'F', + moves: ['Flare Blitz', 'Wave Crash', 'Volt Tackle'], + signatureMove: 'Insert boar pun here', + // eslint-disable-next-line max-len + evs: {hp: 252, atk: 252, def: 4}, nature: 'Adamant', teraType: ['Fire', 'Water', 'Fighting', 'Electric'], shiny: 50 / 49, + }, + Fame: { + species: 'Jumpluff', ability: 'Social Jumpluff Warrior', item: 'Leftovers', gender: 'F', + moves: ['Air Slash', 'Thunder Wave', 'Toxic'], + signatureMove: 'Solidarity', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Fire', + }, + Felucia: { + species: 'Vespiquen', ability: 'Mountaineer', item: 'Red Card', gender: 'F', + moves: ['Strength Sap', ['Oblivion Wing', 'Night Shade'], ['Thief', 'Calm Mind', 'Toxic']], + signatureMove: 'Rigged Dice', + evs: {hp: 252, def: 4, spd: 252}, nature: 'Calm', + }, + Froggeh: { + species: 'Toxicroak', ability: 'Super Luck', item: 'Leftovers', gender: 'M', + moves: ['Gunk Shot', 'Sucker Punch', 'Drain Punch'], + signatureMove: 'Cringe Dad Joke', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', teraType: 'Dark', + }, + Frostyicelad: { + species: 'Qwilfish-Hisui', ability: 'Almost Frosty', item: 'Eviolite', gender: 'M', + moves: ['Darkest Lariat', 'Recover', ['Dire Claw', 'Meteor Mash', 'Bitter Malice']], + signatureMove: 'Puffy Spiky Destruction', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: ['Dark', 'Poison', 'Ghost', 'Steel'], shiny: 1024, + }, + Frozoid: { + species: 'Gible', ability: 'Snowballer', item: 'Eviolite', gender: 'M', + moves: ['Dragon Dance', 'Dragon Rush', 'Precipice Blades'], + signatureMove: 'Flat out falling', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', teraType: 'Any', shiny: true, + }, + Ganjafin: { + species: 'Wiglett', ability: 'Gambling Addiction', item: 'Eviolite', gender: 'M', + moves: ['Wrap', 'Cosmic Power', 'Strength Sap'], + signatureMove: 'Wiggling Strike', + evs: {hp: 252, def: 4, spe: 252}, nature: 'Timid', teraType: 'Grass', shiny: 2, + }, + 'Haste Inky': { + species: 'Falinks', ability: 'Simple', item: 'Sitrus Berry', gender: 'N', + moves: ['Superpower', 'Ice Hammer', 'Throat Chop'], + signatureMove: 'Hasty Revolution', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Dark', + }, + havi: { + species: 'Gastly', ability: 'Mensis Cage', item: 'Leftovers', gender: 'F', + moves: ['Astral Barrage', 'Moonblast', 'Substitute'], + signatureMove: 'Augur of Ebrietas', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Ghost', + }, + Hecate: { + species: 'Mewtwo', ability: 'Hacking', item: 'Mewtwonite X', gender: 'F', + moves: ['Photon Geyser', 'Drain Punch', 'Iron Head'], + signatureMove: 'Testing in Production', + evs: {atk: 252, spa: 4, spe: 252}, nature: 'Jolly', + }, + HiZo: { + species: 'Zoroark-Hisui', ability: 'Justified', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Last Respects', 'Blood Moon', 'Spirit Break'], + signatureMove: 'Scapegoat', + evs: {atk: 252, spa: 4, spe: 252}, nature: 'Naive', teraType: 'Fairy', + }, + HoeenHero: { + species: 'Ludicolo', ability: 'Misspelled', item: 'Life Orb', gender: 'M', + moves: [['Hydro Pump', 'Surf'], 'Giga Drain', 'Ice Beam'], + signatureMove: 'Re-Program', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Water', + }, + hsy: { + species: 'Ursaluna', ability: 'Hustle', item: 'Blunder Policy', gender: 'M', + moves: ['Drill Peck', 'Egg Bomb', 'Headlong Rush'], + signatureMove: 'Wonder Wing', + evs: {hp: 252, atk: 252, spe: 4}, nature: 'Adamant', teraType: 'Flying', + }, + Hydrostatics: { + species: 'Pichu-Spiky-eared', ability: 'Hydrostatic Positivity', item: 'Eviolite', gender: 'M', + moves: ['Hydro Pump', 'Thunder', 'Ice Beam'], + signatureMove: 'Hydrostatics', + evs: {def: 4, spa: 252, spe: 252}, nature: 'Modest', teraType: 'Water', shiny: 2, + }, + Imperial: { + species: 'Kyurem', ability: 'Frozen Fortuity', item: 'Never-Melt Ice', gender: 'N', + moves: ['Chilly Reception', 'Fusion Bolt', 'Fusion Flare'], + signatureMove: 'Storm Shroud', + evs: {atk: 128, spa: 128, spe: 252}, nature: 'Docile', teraType: 'Ice', shiny: 193, + }, + 'Imperial-Black': { + species: 'Kyurem-Black', ability: 'Frozen Fortuity', item: 'Never-Melt Ice', gender: 'N', + moves: ['Mountain Gale', 'Fusion Bolt', 'Ice Shard'], + signatureMove: 'Storm Shroud', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Adamant', teraType: 'Electric', shiny: 193, skip: 'Imperial', + }, + 'Imperial-White': { + species: 'Kyurem-White', ability: 'Frozen Fortuity', item: 'Never-Melt Ice', gender: 'N', + moves: ['Ice Beam', 'Freeze-Dry', 'Fusion Flare'], + signatureMove: 'Storm Shroud', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Modest', teraType: 'Fire', shiny: 193, skip: 'Imperial', + }, + 'in the hills': { + species: 'Gligar', ability: 'Illiterit', item: 'Eviolite', gender: 'M', + moves: ['Roost', 'Knock Off', 'Tidy Up'], + signatureMove: '10-20-40', + evs: {hp: 252, def: 4, spd: 252}, nature: 'Careful', teraType: 'Water', + }, + ironwater: { + species: 'Jirachi', ability: 'Good as Gold', item: 'Leftovers', gender: 'N', + moves: ['Swords Dance', 'Zen Headbutt', 'Hammer Arm'], + signatureMove: 'Jirachi Ban Hammer', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Steel', + }, + 'Irpachuza!': { + species: 'Mr. Mime', ability: 'Mime knows best', item: 'Irpatuzinium Z', gender: 'M', + moves: [['Destiny Bond', 'Lunar Dance'], 'Parting Shot', 'Taunt'], + signatureMove: 'Fleur Cannon', + evs: {hp: 252, spa: 4, spd: 252}, nature: 'Modest', + }, + Isaiah: { + species: 'Medicham', ability: 'Psychic Surge', item: 'Medichamite', gender: 'M', + moves: ['Close Combat', 'Knock Off', 'Triple Axel'], + signatureMove: 'Simple Gameplan', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', shiny: true, + }, + 'J0rdy004 ♫': { + species: 'Vulpix-Alola', ability: 'Fortifying Frost', item: 'Never-Melt Ice', gender: 'N', + moves: ['Blizzard', 'Focus Blast', 'Recover'], + signatureMove: 'Snowy Samba', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', shiny: 4, + }, + Kalalokki: { + species: 'Flamigo', ability: 'Scrappy', item: 'Choice Band', gender: 'M', + moves: ['Brave Bird', 'Sucker Punch', ['Drain Punch', 'Rapid Spin']], + signatureMove: 'Knot Weak', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: ['Fighting', 'Flying'], + }, + Karthik: { + species: 'Staraptor', ability: 'Tough Claws', item: 'Choice Scarf', gender: 'M', + moves: ['Brave Bird', 'Head Smash', ['Flare Blitz', 'Wave Crash']], + signatureMove: 'Salvaged Sacrifice', + evs: {hp: 252, atk: 4, spe: 252}, nature: 'Adamant', teraType: 'Flying', + }, + ken: { + species: 'Jigglypuff', ability: 'Aroma Veil', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Dazzling Gleam', 'Heal Order', 'Mortal Spin'], + signatureMove: ', (ac)', + evs: {hp: 252, def: 252, spa: 4}, nature: 'Bold', teraType: 'Any', + }, + kenn: { + species: 'Larvitar', ability: 'Deserted Dunes', item: 'Eviolite', gender: 'M', + moves: ['Salt Cure', 'Shore Up', ['Precipice Blades', 'Headlong Rush']], + signatureMove: 'Stone Faced', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', teraType: 'Rock', shiny: true, + }, + Kennedy: { + species: 'Cinderace', ability: 'Anfield', item: 'Berserk Gene', gender: 'M', + moves: ['Blaze Kick', ['Triple Kick', 'Trop Kick'], 'U-turn'], + signatureMove: 'Hat-Trick', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Any', + }, + keys: { + species: 'Rayquaza', ability: 'Defeatist', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Oblivion Wing', 'Sizzly Slide', 'Bouncy Bubble'], + signatureMove: 'Protector of the Skies', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', shiny: 10, + }, + kingbaruk: { + species: 'Wigglytuff', ability: 'Peer Pressure', item: 'Silk Scarf', gender: 'M', + moves: ['Trump Card', 'Encore', ['Protect', 'Thunder Wave']], + signatureMove: 'Platinum Record', + evs: {hp: 252, def: 4, spa: 252}, nature: 'Modest', teraType: 'Normal', + }, + Kiwi: { + species: 'Minccino', ability: 'Sure Hit Sorcery', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Dynamic Punch', 'Substitute', 'Noble Roar'], + signatureMove: 'Mad Manifest', + evs: {hp: 252, atk: 144, spe: 112}, nature: 'Adamant', teraType: 'Fighting', shiny: true, + }, + Klmondo: { + species: 'Cloyster', ability: 'Super Skilled', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Victory Dance', 'Icicle Spear', 'Rock Blast'], + signatureMove: 'The Better Water Shuriken', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Adamant', teraType: 'Water', + }, + 'kolohe ✮彡': { + species: 'Pikachu', ability: 'Soul Surfer', item: 'Light Ball', gender: '', + moves: ['Thunder', 'Volt Switch', 'Bouncy Bubble'], + signatureMove: 'Hang Ten', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Water', + }, + Kry: { + species: 'Mawile', ability: 'Flash Freeze', item: 'Mawilite', gender: 'M', + moves: ['Sucker Punch', 'Fire Lash', 'Play Rough'], + signatureMove: 'Attack of Opportunity', + evs: {hp: 252, atk: 252, spd: 4}, nature: 'Adamant', shiny: 1024, + }, + Lasen: { + species: 'Zekrom', ability: 'Idealized World', item: 'Leftovers', gender: 'M', + moves: ['Volt Switch', 'Fusion Bolt', 'Dragon Claw'], + signatureMove: 'Rise Above', + evs: {hp: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Fire', + }, + 'Lets go shuckles': { + species: 'Shuckle', ability: 'Persistent', item: 'Berry Juice', gender: 'M', + moves: ['Diamond Storm', 'Headlong Rush', ['Glacial Lance', 'U-turn']], + signatureMove: 'Shuckle Power', + evs: {hp: 252, def: 252, spd: 4}, ivs: {spe: 0}, nature: 'Relaxed', teraType: 'Ground', shiny: 213, + }, + Lily: { + species: 'Togedemaru', ability: 'Unaware', item: 'Leftovers', gender: 'F', + moves: ['Victory Dance', 'Plasma Fists', 'Meteor Mash'], + signatureMove: 'Power Up', + evs: {hp: 252, def: 4, spd: 252}, nature: 'Careful', teraType: 'Fairy', shiny: 1734, + }, + Loethalion: { + species: 'Ralts', ability: 'Psychic Surge', item: 'Gardevoirite', gender: '', + moves: [['Esper Wing', 'Lumina Crash', 'Psychic Noise'], ['Agility', 'Calm Mind'], ['Draining Kiss', 'Matcha Gotcha']], + signatureMove: 'Darkmoon Cackle', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', shiny: true, + }, + Lumari: { + species: 'Ponyta-Galar', ability: 'Pyrotechnic', item: 'Eviolite', gender: 'F', + moves: ['Substitute', 'Sappy Seed', 'Magical Torque'], + signatureMove: 'Mystical Bonfire', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Fairy', + }, + Lunell: { + species: 'Vaporeon', ability: 'Low Tide, High Tide', item: 'Leftovers', gender: 'F', + moves: ['Hydro Pump', 'Thunder', 'Moonlight'], + signatureMove: 'Praise the Moon', + evs: {hp: 252, def: 4, spa: 252}, nature: 'Calm', teraType: 'Fairy', shiny: 512, + }, + 'Lyna 氷': { + species: 'Dragonair', ability: 'Magic Aura', item: 'Eviolite', gender: 'F', + moves: ['Victory Dance', 'V-create', 'Glacial Lance'], + signatureMove: 'Wrath of Frozen Flames', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Dragon', + }, + Maia: { + species: 'Litwick', ability: 'Power Abuse', item: 'Eviolite', gender: 'F', + moves: ['Shadow Ball', 'Flamethrower', 'Giga Drain'], + signatureMove: 'Body Count', + evs: {hp: 252, spa: 252, spd: 4}, nature: 'Modest', teraType: 'Ghost', + }, + 'marillvibes ♫': { + species: 'Marill', ability: 'Huge Power', item: 'Life Orb', gender: 'M', + moves: ['Surging Strikes', 'Jet Punch', 'Close Combat'], + signatureMove: 'Good Vibes Only', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Adamant', teraType: 'Water', shiny: true, + }, + maroon: { + species: 'Archaludon', ability: 'Built Different', item: 'Leftovers', gender: 'M', + moves: ['Body Press', 'Stealth Rock', 'Rapid Spin'], + signatureMove: 'Metal Blast', + evs: {hp: 252, def: 252, spa: 4}, nature: 'Bold', teraType: 'Flying', + }, + Mathy: { + species: 'Furret', ability: 'Dynamic Typing', item: 'Big Root', gender: 'M', + moves: ['Bitter Blade', 'Swords Dance', 'Taunt'], + signatureMove: 'Breaking Change', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Ghost', + }, + Merritty: { + species: 'Torchic', ability: 'End Round', item: 'Eviolite', gender: 'M', + moves: ['Quiver Dance', 'Fiery Dance', 'Strength Sap'], + signatureMove: 'New Bracket', + evs: {hp: 4, def: 36, spa: 196, spd: 36, spe: 236}, nature: 'Timid', teraType: 'Flying', shiny: true, + }, + Meteordash: { + species: 'Tatsugiri', ability: 'TatsuGlare', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Spacial Rend', 'Steam Eruption', 'Glare'], + signatureMove: 'Plagiarism', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Steel', + }, + Mex: { + species: 'Dialga', ability: 'Time Dilation', item: 'Adamant Orb', gender: 'N', + moves: ['Dragon Pulse', 'Flash Cannon', ['Aura Sphere', 'Volt Switch', 'Meteor Beam']], + signatureMove: 'Time Skip', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Steel', shiny: true, + }, + Miojo: { + species: 'Spheal', ability: 'The Rolling Spheal', item: 'Choice Band', gender: '', + moves: ['Liquidation', 'Collision Course', 'Flip Turn'], + signatureMove: 'vruuuuuum', + evs: {hp: 8, atk: 252, spd: 4, spe: 244}, nature: 'Jolly', teraType: 'Fighting', shiny: 363, + }, + Monkey: { + species: 'Infernape', ability: 'Harambe Hit', item: 'Blunder Policy', gender: 'M', + moves: ['Dynamic Punch', 'Plasma Fists', 'Fire Punch'], + signatureMove: 'Banana Breakfast', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Jolly', teraType: 'Electric', shiny: 69, + }, + MyPearl: { + species: 'Latios', ability: 'Eon Call', item: 'Soul Dew', gender: 'M', + moves: ['Draco Meteor', 'Aura Sphere', 'Flip Turn'], + signatureMove: 'Eon Assault', + evs: {hp: 252, def: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', teraType: 'Steel', shiny: 50, + }, + 'MyPearl-Latias': { + species: 'Latias', ability: 'Eon Call', item: 'Soul Dew', gender: 'F', + moves: ['Calm Mind', 'Recover', 'Thunder Wave'], + signatureMove: 'Eon Assault', + evs: {hp: 252, def: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', teraType: 'Steel', shiny: 50, skip: 'MyPearl', + }, + Neko: { + species: 'Chien-Pao', ability: 'Weatherproof', item: 'Heavy-Duty Boots', gender: 'N', + moves: ['Swords Dance', 'Bitter Blade', ['Crunch', 'Sucker Punch']], + signatureMove: 'Quality Control Zoomies', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Fire', + }, + Ney: { + species: 'Banette', ability: 'Insomnia', item: 'Banettite', gender: 'M', + moves: ['Destiny Bond', 'Will-O-Wisp', 'Parting Shot'], + signatureMove: 'Shadow Dance', + evs: {hp: 252, atk: 252, def: 4}, ivs: {spe: 0}, nature: 'Brave', shiny: true, + }, + Notater517: { + species: 'Incineroar', ability: 'Vent Crosser', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Ceaseless Edge', 'Pyro Ball', ['Rapid Spin', 'Encore']], + signatureMove: '~nyaa', + evs: {hp: 252, atk: 252, spd: 4}, nature: 'Adamant', teraType: 'Steel', + }, + 'nya~ ❤': { + species: 'Delcatty', ability: 'Adorable Grace', item: 'Focus Band', gender: 'F', + moves: ['Freeze-Dry', 'Flamethrower', 'Volt Switch'], + signatureMove: ':3', + evs: {hp: 252, spa: 4, spe: 252}, nature: 'Naive', teraType: 'Ice', + }, + pants: { + species: 'Annihilape', ability: 'Drifting', item: 'Leftovers', gender: 'M', + moves: ['Rage Fist', 'Drain Punch', 'Dragon Dance'], + signatureMove: 'Eerie Apathy', + evs: {hp: 240, spd: 252, spe: 16}, nature: 'Careful', teraType: 'Ghost', + }, + PartMan: { + species: 'Chandelure', ability: 'C- Tier Shitposter', item: 'Leek', gender: 'M', + moves: ['Searing Shot', 'Hex', 'Morning Sun'], + signatureMove: 'Alting', + evs: {hp: 252, spa: 69, spe: 188}, nature: 'Timid', + }, + 'Pastor Gigas': { + species: 'Regigigas', ability: 'God\'s Mercy', item: 'Clear Amulet', gender: 'N', + moves: ['Sacred Fire', 'Knock Off', 'Healing Wish'], + signatureMove: 'Call to Repentance', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', teraType: 'Fairy', + }, + Peary: { + species: 'Klinklang', ability: 'Levitate', item: 'Pearyum Z', gender: '', + moves: ['Lock On', 'Sheer Cold', 'Substitute'], + signatureMove: 'Gear Grind', + evs: {hp: 252, def: 4, spe: 252}, nature: 'Jolly', + }, + phoopes: { + species: 'Jynx', ability: 'I Did It Again', item: 'Focus Sash', gender: 'F', + moves: ['Lovely Kiss', 'Psychic', 'Amnesia'], + signatureMove: 'Gen 1 Blizzard', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Ice', + }, + Pissog: { + species: 'Volcarona', ability: 'Drought', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Torch Song', 'Morning Sun', 'Solar Beam'], + signatureMove: 'A Song Of Ice And Fire', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Fire', shiny: 1096, + }, + 'Pissog-Frosmoth': { + species: 'Frosmoth', ability: 'Snow Warning', item: 'Heavy-Duty Boots', gender: 'F', + moves: ['Blizzard', 'Chilly Reception', 'Aurora Veil'], + signatureMove: 'A Song Of Ice And Fire', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Ice', skip: 'Pissog', shiny: 1096, + }, + pokemonvortex: { + species: 'Pokestar Smeargle', ability: 'Prankster', item: 'Focus Sash', gender: 'N', + moves: ['Spore', 'Extreme Evoboost', 'Substitute'], + signatureMove: 'Roulette', + evs: {hp: 252, def: 4, spe: 252}, nature: 'Timid', teraType: 'Ghost', + }, + 'Princess Autumn': { + species: 'Altaria', ability: 'Last Hymn', item: 'Altarianite', gender: 'F', + moves: ['Earthquake', 'Amnesia', 'Roost'], + signatureMove: 'Cotton Candy Crush', + evs: {hp: 248, spd: 164, spe: 96}, nature: 'Careful', shiny: 4, + }, + ptoad: { + species: 'Politoed', ability: 'Drizzle', item: 'Leftovers', gender: 'M', + moves: ['Jet Punch', 'Ice Punch', 'Earthquake'], + signatureMove: 'Pleek...', + evs: {hp: 252, atk: 252, spd: 4}, nature: 'Adamant', teraType: 'Water', + }, + Pulse_kS: { + species: 'Hydreigon', ability: 'Pulse Luck', item: 'Quick Claw', gender: 'N', + moves: ['Dark Pulse', 'Dragon Pulse', 'Origin Pulse'], + signatureMove: 'Luck Pulse', + evs: {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}, nature: 'Serious', teraType: ['Steel', 'Poison'], + }, + PYRO: { + species: 'Kingambit', ability: 'Hardcore Hustle', item: 'Leftovers', gender: 'M', + moves: ['Kowtow Cleave', 'Sucker Punch', 'Swords Dance'], + signatureMove: 'Meat Grinder', + evs: {hp: 252, atk: 252, def: 4}, nature: 'Adamant', teraType: 'Flying', + }, + 'Quite Quiet': { + species: 'Ribombee', ability: 'Fancy Scarf', item: ['Life Orb', 'Leftovers'], gender: 'F', + moves: ['Roost', 'Moonblast', ['Aura Sphere', 'U-turn']], + signatureMove: '*Worried Noises*', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Flying', + // The nature not being Quiet is a crime + }, + quziel: { + species: 'Chromera', ability: 'High Performance Computing', item: 'Covert Cloak', gender: 'M', + moves: ['Recover', 'Revelation Dance', 'Boomburst'], + signatureMove: 'Reshape', + evs: {def: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Ghost', + }, + R8: { + species: 'Chansey', ability: 'Anti-Pelau', item: 'Eviolite', gender: 'N', + moves: ['Ice Beam', 'Thunderbolt', 'Flamethrower'], + signatureMove: 'Magic Trick', + evs: {hp: 252, spa: 252, spe: 4}, ivs: {atk: 0}, nature: 'Modest', teraType: 'Ice', shiny: 256, + }, + Rainshaft: { + species: 'Xerneas', ability: 'Rainy\'s Aura', item: 'Rainium Z', gender: 'F', + moves: ['Psychic Noise', 'Sing', 'Alluring Voice'], + signatureMove: 'Sparkling Aria', + evs: {hp: 252, spa: 252, spe: 4}, nature: 'Mild', + }, + Ransei: { + species: 'Audino-Mega', ability: 'Ultra Mystik', item: 'Safety Goggles', gender: 'M', + moves: ['Psystrike', 'Transform', 'Light of Ruin'], + signatureMove: 'Flood of Lore', + evs: {hp: 252, def: 4, spa: 252}, ivs: {spe: 0}, nature: 'Modest', shiny: 2, + }, + ReturnToMonkey: { + species: 'Oranguru', ability: 'Monke See Monke Do', item: 'Twisted Spoon', gender: 'M', + moves: ['Hyper Voice', 'Psyshock', 'Focus Blast'], + signatureMove: 'Monke Magic', + evs: {hp: 252, def: 4, spa: 252}, ivs: {spe: 0}, nature: 'Quiet', teraType: 'Fighting', + }, + Rissoux: { + species: 'Arcanine-Hisui', ability: 'Hard Headed', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Head Smash', 'Flare Blitz', 'Morning Sun'], + signatureMove: 'Call of the Wild', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Jolly', teraType: 'Grass', + }, + RSB: { + species: 'Growlithe', ability: 'Hot Pursuit', item: 'Eviolite', gender: 'M', + moves: ['Fire Fang', 'Thunder Fang', 'Morning Sun'], + signatureMove: 'Confiscate', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Grass', + }, + Rumia: { + species: 'Duskull', ability: 'Youkai of the Dusk', item: 'Eviolite', gender: 'N', + moves: ['Infernal Parade', 'Strength Sap', 'Mortal Spin'], + signatureMove: 'Midnight Bird', + evs: {hp: 252, def: 252, spa: 4}, nature: 'Bold', teraType: 'Poison', shiny: true, + }, + Scotteh: { + species: 'Suicune', ability: 'Water Absorb', item: 'Leftovers', gender: '', + moves: ['Calm Mind', 'Scald', 'Ice Beam'], + signatureMove: 'Purification', + evs: {hp: 252, def: 252, spd: 4}, nature: 'Bold', teraType: 'Water', + }, + SexyMalasada: { + species: 'Typhlosion', ability: 'Ancestry Ritual', item: 'Life Orb', gender: 'M', + moves: ['Calm Mind', 'Aura Sphere', 'Flamethrower'], + signatureMove: 'Hexadecimal Fire', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Ghost', shiny: true, + }, + sharp_claw: { + species: 'Sneasel', ability: 'Regenerator', item: 'Heavy-Duty Boots', gender: 'F', + moves: ['Knock Off', 'Ice Spinner', 'Ice Shard'], + signatureMove: 'Treacherous Traversal', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Poison', + }, + 'sharp_claw-Rough': { + species: 'Sneasel-Hisui', ability: 'Regenerator', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Combat Torque', 'Noxious Torque', 'Mach Punch'], + signatureMove: 'Treacherous Traversal', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Poison', skip: 'sharp_claw', + }, + Siegfried: { + species: 'Ampharos', ability: 'Static', item: 'Ampharosite', gender: 'M', + moves: ['Calm Mind', 'Thunderclap', 'Draco Meteor'], + signatureMove: 'BoltBeam', + evs: {hp: 252, spa: 252, spd: 4}, nature: 'Modest', shiny: 64, + }, + 'Sificon~': { + species: 'Hoppip', ability: 'Perfectly Imperfect', item: 'Eviolite', gender: 'M', + moves: ['Strength Sap', 'Spikes', 'Seismic Toss'], + signatureMove: 'Grass Gaming', + evs: {hp: 252, def: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', teraType: 'Dragon', + }, + skies: { + species: 'Chespin', ability: 'Spikes of Wrath', item: 'Sitrus Berry', gender: 'F', + moves: ['Bulk Up', 'Strength Sap', 'Body Press'], + signatureMove: 'Like..?', + evs: {hp: 252, atk: 4, def: 252}, nature: 'Impish', teraType: ['Water', 'Steel'], shiny: 15, + }, + snake: { + species: 'Fidgit', ability: 'Persistent', item: ['Mental Herb', 'Covert Cloak', 'Leppa Berry'], gender: 'M', + moves: ['Tailwind', 'Revival Blessing', 'Taunt'], + signatureMove: 'Concept Relevant', + evs: {hp: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Water', + }, + 'Soft Flex': { + species: 'Magnezone', ability: 'Adaptive Engineering', item: 'Leftovers', gender: 'N', + moves: ['Thunderbolt', 'Substitute', 'Parabolic Charge'], + signatureMove: 'Adaptive Beam', + evs: {hp: 248, def: 8, spe: 252}, nature: 'Timid', teraType: 'Flying', + }, + 'Solaros & Lunaris': { + species: 'Scovillain', ability: 'Ride the Sun!', item: 'Heavy-Duty Boots', gender: 'N', + moves: ['Solar Beam', 'Growth', 'Moonlight'], + signatureMove: 'Mind Melt', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Modest', teraType: 'Fire', + }, + Spiderz: { + species: 'Iron Thorns', ability: 'Poison Heal', item: 'Toxic Orb', gender: 'M', + moves: ['Spiky Shield', 'Stone Axe', 'Thousand Arrows'], + signatureMove: 'Shepherd of the Mafia Room', + evs: {hp: 252, atk: 252, spe: 4}, nature: 'Adamant', teraType: 'Steel', shiny: true, + }, + spoo: { + species: 'Hemogoblin', ability: 'I Can Hear The Heart Beating As One', item: 'Heavy-Duty Boots', gender: 'N', + moves: ['Extreme Speed', 'Bitter Blade', 'Moonlight'], + signatureMove: 'Cardio Training', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', teraType: 'Fairy', shiny: 32, + }, + Steorra: { + species: 'Kitsunoh', ability: 'Ghostly Hallow', item: 'Choice Band', gender: '', + moves: ['Meteor Mash', 'Shadow Strike', 'U-turn'], + signatureMove: 'Phantom Weapon', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: ['Steel', 'Ghost'], shiny: 2, + }, + Struchni: { + species: 'Aggron', ability: 'Overasked Clause', item: 'Leftovers', gender: 'M', + moves: ['Detect', 'Encore', 'U-turn'], + signatureMove: '~randfact', + evs: {hp: 252, def: 16, spd: 240}, nature: 'Careful', teraType: 'Steel', + }, + Sulo: { + species: 'Reuniclus', ability: 'Protection of the Gelatin', item: 'Life Orb', gender: 'M', + moves: ['Calm Mind', 'Draining Kiss', 'Stored Power'], + signatureMove: 'Vengeful Mood', + evs: {hp: 252, def: 252, spd: 4}, nature: 'Bold', teraType: 'Fairy', shiny: true, + }, + Swiffix: { + species: 'Piplup', ability: 'Stinky', item: 'Eviolite', gender: 'M', + moves: ['Water Shuriken', 'Nasty Plot', 'Roost'], + signatureMove: 'Stink Bomb', + evs: {hp: 252, def: 4, spa: 252}, nature: 'Modest', teraType: 'Water', + }, + Syrinix: { + species: 'Ceruledge', ability: 'Sword of Ruin', item: 'Life Orb', gender: 'N', + moves: ['Poltergeist', 'Swords Dance', 'Bitter Blade'], + signatureMove: 'A Soul for a Soul', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Adamant', teraType: 'Fire', + }, + Teclis: { + species: 'Gallade', ability: 'Sharpness', item: 'Life Orb', gender: 'M', + moves: ['Sacred Sword', 'Psycho Cut', 'Leaf Blade'], + signatureMove: 'Rising Sword', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Adamant', teraType: 'Psychic', + }, + Tenshi: { + species: 'Sandshrew', ability: 'Sand Sleuth', item: 'Eviolite', gender: 'M', + moves: ['Precipice Blades', 'Dynamic Punch', 'Rapid Spin'], + signatureMove: 'SAND EAT', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Ground', shiny: 10, + }, + TheJesucristoOsAma: { + species: 'Arceus', ability: 'The Grace Of Jesus Christ', gender: 'N', + item: [ + 'Draco Plate', 'Dread Plate', 'Earth Plate', 'Fist Plate', 'Flame Plate', 'Icicle Plate', 'Insect Plate', 'Iron Plate', 'Meadow Plate', + 'Mind Plate', 'Pixie Plate', 'Sky Plate', 'Splash Plate', 'Spooky Plate', 'Stone Plate', 'Toxic Plate', 'Zap Plate', + ], + moves: ['Earthquake', 'Surf', 'Judgment'], + signatureMove: 'The Love Of Christ', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', + }, + Tico: { + species: 'Floette-Eternal', ability: 'Eternal Generator', item: ['Covert Cloak', 'Red Card'], gender: 'M', + moves: ['Light of Ruin', 'Lava Plume', 'Teleport'], + signatureMove: 'Eternal Wish', + evs: {hp: 252, def: 16, spe: 240}, nature: 'Timid', teraType: ['Fire', 'Steel'], shiny: false, + }, + trace: { + species: 'Delphox', ability: 'Eyes of Eternity', item: 'Life Orb', gender: 'F', + moves: ['Calm Mind', 'Inferno', 'Recover'], + signatureMove: 'Chronostasis', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Modest', teraType: 'Psychic', + }, + Tuthur: { + species: 'Scream Tail', ability: 'Poison Heal', item: 'Toxic Orb', gender: 'M', + moves: ['Spikes', 'Burning Bulwark', 'Encore'], + signatureMove: 'Symphonie du Ze\u0301ro', + evs: {hp: 244, def: 12, spe: 252}, nature: 'Timid', teraType: 'Water', + }, + 'Two of Roses': { + species: 'Luxray', ability: 'As We See', item: 'Mirror Herb', gender: 'M', + moves: ['Knock Off', 'Supercell Slam', 'Trailblaze'], + signatureMove: 'Dilly Dally', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Flying', shiny: 1024, + }, + UT: { + species: 'Talonflame', ability: 'Gale Guard', item: 'Leftovers', gender: 'M', + moves: ['Brave Bird', 'Roost', 'Defog'], + signatureMove: 'My Boys', + evs: {hp: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Flying', + }, + Valerian: { + species: 'Lucario', ability: 'Full Bloom', item: 'Clear Amulet', gender: 'F', + moves: ['Bullet Punch', 'Mach Punch', 'Parting Shot'], + signatureMove: 'First Strike', + evs: {hp: 252, atk: 252, def: 4}, nature: 'Adamant', teraType: 'Fighting', + }, + Venous: { + species: 'Mantine', ability: 'Concrete Over Water', item: 'Leftovers', gender: '', + moves: ['Scald', 'Roost', 'Clear Smog'], + signatureMove: 'Your Crippling Interest', + evs: {hp: 248, def: 244, spd: 16}, nature: 'Calm', teraType: 'Normal', shiny: 5, + }, + 'Vio͜͡let': { + species: 'Ogerpon', ability: 'See No Evil, Hear No Evil, Speak No Evil', item: 'Berry Juice', gender: 'F', + moves: ['Crabhammer', 'Mighty Cleave', 'Fire Lash'], + signatureMove: 'building character', + evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', teraType: 'Stellar', + }, + Vistar: { + species: 'Zeraora', ability: 'Prankster', item: 'Throat Spray', gender: 'M', + moves: ['Encore', 'Volt Switch', 'Copycat'], + signatureMove: 'Virtual Avatar', + evs: {def: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Electric', + }, + 'Vistar-Idol': { + species: 'Zeraora', ability: 'Virtual Idol', item: 'Throat Spray', gender: 'M', + moves: ['Sparkling Aria', 'Torch Song', 'Teeter Dance'], + signatureMove: 'Overdrive', + evs: {def: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Electric', shiny: true, skip: 'Vistar', + }, + vmnunes: { + species: 'Shaymin-Sky', ability: 'Wild Growth', item: 'Big Root', gender: 'M', + moves: ['Giga Drain', 'Oblivion Wing', 'Draining Kiss'], + signatureMove: 'Gracidea\'s Blessing', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', teraType: 'Fairy', + }, + WarriorGallade: { + species: 'Tropius', ability: 'Primeval Harvest', item: 'Starf Berry', gender: ['M', 'M', 'F'], + moves: ['Sunny Day', 'Natural Gift', ['Bitter Blade', 'Sappy Seed', 'Stored Power', 'Counter']], + signatureMove: 'Fruitful Longbow', + // eslint-disable-next-line max-len + evs: {hp: 184, atk: 112, def: 36, spd: 88, spe: 88}, ivs: {spa: 29}, nature: 'Impish', teraType: ['Dragon', 'Psychic', 'Fighting'], shiny: 20, + }, + Waves: { + species: 'Wailord', ability: 'Primordial Sea', item: 'Assault Vest', gender: 'M', + moves: ['Water Spout', 'Hurricane', 'Thunder'], + signatureMove: 'Torrential Drain', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Modest', teraType: 'Water', + }, + WigglyTree: { + species: 'Sudowoodo', ability: 'Tree Stance', item: 'Liechi Berry', gender: 'M', + moves: ['Shell Smash', 'Wood Hammer', 'Head Smash'], + signatureMove: 'Perfect Mimic', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Adamant', teraType: 'Grass', + }, + 'XpRienzo ☑◡☑': { + species: 'Reshiram', ability: 'Turboblaze', item: 'Choice Scarf', gender: 'M', + moves: ['Draco Meteor', 'Volt Switch', 'Flash Cannon'], + signatureMove: 'Scorching Truth', + evs: {spa: 252, spd: 4, spe: 252}, nature: 'Modest', teraType: 'Fire', + }, + xy01: { + species: 'Blissey', ability: 'Panic', item: 'Heavy-Duty Boots', gender: 'M', + moves: ['Soft-Boiled', 'Seismic Toss', 'Aromatherapy'], + signatureMove: 'Poisonous Wind', + evs: {hp: 248, def: 252, spd: 8}, nature: 'Bold', teraType: 'Fairy', shiny: true, + }, + 'yeet dab xd': { + species: 'Kecleon', ability: 'Treasure Bag', item: 'Silk Scarf', gender: 'M', happiness: 0, + moves: ['Frustration', 'Shadow Sneak', 'Fake Out'], + signatureMove: 'top kek', + evs: {hp: 252, atk: 4, spd: 252}, nature: 'Careful', teraType: 'Ghost', + }, + 'Yellow Paint': { + species: 'Rotom-Frost', ability: 'Yellow Magic', item: 'Chilan Berry', gender: 'N', + moves: ['Thunderbolt', 'Blizzard', 'Ion Deluge'], + signatureMove: 'Whiteout', + evs: {hp: 252, spa: 252, spe: 4}, nature: 'Modest', teraType: 'Steel', shiny: 2, + }, + 'yuki ♪': { + species: 'Ninetales-Alola', ability: 'Party Up', item: 'Light Clay', gender: '', + moves: ['Blizzard', 'Aurora Veil', ['Encore', 'Lovely Kiss']], + signatureMove: 'Tag, You\'re It!', + evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Ghost', + }, + YveltalNL: { + species: 'Farigiraf', ability: 'Height Advantage', item: 'Leftovers', gender: 'M', + moves: ['Freezing Glare', 'Ice Beam', 'Slack Off'], + signatureMove: 'High Ground', + evs: {hp: 248, spa: 252, spe: 8}, nature: 'Modest', teraType: 'Ground', + }, + za: { + species: 'Greedent', ability: 'Troll', item: 'Leftovers', gender: 'M', + moves: ['Headbutt', 'Iron Head', 'Foul Play'], + signatureMove: 'Shitpost', + evs: {hp: 252, def: 252, spe: 6}, nature: 'Impish', teraType: 'Steel', + }, + Zalm: { + species: 'Weedle', ability: 'Water Bubble', item: 'Clear Amulet', gender: '', + moves: ['Surging Strikes', 'Attack Order', 'Dire Claw'], + signatureMove: 'Dud ur a fish', + evs: {hp: 4, atk: 252, spe: 252}, nature: 'Adamant', teraType: 'Water', + }, + Zarel: { + species: 'Meloetta', ability: 'Tempo Change', item: 'Leftovers', gender: 'M', + moves: ['Psystrike', 'Armor Cannon', 'Obstruct'], + signatureMove: '@ts-ignore', + evs: {def: 4, spa: 252, spe: 252}, nature: 'Timid', teraType: 'Stellar', + }, + 'Zarel-Pirouette': { + species: 'Meloetta-Pirouette', ability: 'Tempo Change', item: 'Leftovers', gender: 'M', + moves: ['Close Combat', 'Knock Off', 'Silk Trap'], + signatureMove: '@ts-ignore', + evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', teraType: 'Stellar', skip: 'Zarel', + }, + zee: { + species: 'Lilligant-Hisui', ability: 'Chlorophyll', item: 'Heat Rock', gender: 'F', + moves: [['Close Combat', 'Axe Kick'], ['Solar Blade', 'Seed Bomb'], 'Victory Dance'], + signatureMove: 'Solar Summon', + evs: {hp: 80, atk: 176, spe: 252}, nature: 'Adamant', teraType: 'Fire', + }, + zoro: { + species: 'Umbreon', ability: 'Nine Lives', item: 'Leftovers', gender: 'M', + moves: ['Wish', 'Protect', 'Toxic'], + signatureMove: 'Darkest Night', + evs: {hp: 252, def: 240, spd: 16}, nature: 'Calm', teraType: 'Steel', shiny: true, + }, +}; + +const afdSSBSets: SSBSets = { + 'Fox': { + species: 'Fennekin', ability: 'No Ability', item: '', gender: '', + moves: [], + signatureMove: 'Super Metronome', + }, +}; + +export class RandomStaffBrosTeams extends RandomTeams { + randomStaffBrosTeam(options: {inBattle?: boolean} = {}) { + this.enforceNoDirectCustomBanlistChanges(); + + const team: PokemonSet[] = []; + const debug: string[] = []; // Set this to a list of SSB sets to override the normal pool for debugging. + const ruleTable = this.dex.formats.getRuleTable(this.format); + const meme = ruleTable.has('dynamaxclause') && !debug.length; + const monotype = this.forceMonotype || (ruleTable.has('sametypeclause') ? + this.sample([...this.dex.types.names().filter(x => x !== 'Stellar')]) : false); + + let pool = meme ? Object.keys(afdSSBSets) : Object.keys(ssbSets); + if (debug.length) { + while (debug.length < 6) { + const staff = this.sampleNoReplace(pool); + if (debug.includes(staff) || ssbSets[staff].skip) continue; + debug.push(staff); + } + pool = debug; + } + if (monotype && !debug.length) { + pool = pool.filter(x => this.dex.species.get(ssbSets[x].species).types.includes(monotype)); + } + if (global.Config?.disabledssbsets?.length) { + pool = pool.filter(x => !global.Config.disabledssbsets.includes(this.dex.toID(x))); + } + const typePool: {[k: string]: number} = {}; + let depth = 0; + while (pool.length && team.length < this.maxTeamSize) { + if (depth >= 200) throw new Error(`Infinite loop in Super Staff Bros team generation.`); + depth++; + const name = meme ? this.sample(pool) : this.sampleNoReplace(pool); + const ssbSet: SSBSet = meme ? this.dex.deepClone(afdSSBSets[name]) : this.dex.deepClone(ssbSets[name]); + if (ssbSet.skip) continue; + + // Enforce typing limits + if (!(debug.length || monotype || meme)) { // Type limits are ignored for debugging, monotype, or memes. + const species = this.dex.species.get(ssbSet.species); + + const weaknesses = []; + for (const type of this.dex.types.names()) { + const typeMod = this.dex.getEffectiveness(type, species.types); + if (typeMod > 0) weaknesses.push(type); + } + let rejected = false; + for (const type of weaknesses) { + if (typePool[type] === undefined) typePool[type] = 0; + if (typePool[type] >= 3) { + // Reject + rejected = true; + break; + } + } + if (ssbSet.ability === 'Wonder Guard') { + if (!typePool['wonderguard']) { + typePool['wonderguard'] = 1; + } else { + rejected = true; + } + } + if (rejected) continue; + // Update type counts + for (const type of weaknesses) { + typePool[type]++; + } + } + + let teraType: string | undefined; + if (ssbSet.teraType) { + teraType = ssbSet.teraType === 'Any' ? + this.sample(this.dex.types.names()) : + this.sampleIfArray(ssbSet.teraType); + } + const moves: string[] = []; + while (moves.length < 3 && ssbSet.moves.length > 0) { + let move = this.sampleNoReplace(ssbSet.moves); + if (Array.isArray(move)) move = this.sampleNoReplace(move); + moves.push(this.dex.moves.get(move).name); + } + moves.push(this.dex.moves.get(ssbSet.signatureMove).name); + const ivs = {...{hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, ...ssbSet.ivs}; + if (!moves.map(x => this.dex.moves.get(x)).some(x => x.category === 'Physical')) { + ivs.atk = 0; + } + + const set: PokemonSet = { + name, + species: ssbSet.species, + item: this.sampleIfArray(ssbSet.item), + ability: this.sampleIfArray(ssbSet.ability), + moves, + nature: ssbSet.nature ? Array.isArray(ssbSet.nature) ? this.sampleNoReplace(ssbSet.nature) : ssbSet.nature : 'Serious', + gender: ssbSet.gender ? this.sampleIfArray(ssbSet.gender) : this.sample(['M', 'F', 'N']), + evs: ssbSet.evs ? {...{hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0}, ...ssbSet.evs} : + {hp: 84, atk: 84, def: 84, spa: 84, spd: 84, spe: 84}, + ivs, + level: this.adjustLevel || ssbSet.level || 100, + happiness: typeof ssbSet.happiness === 'number' ? ssbSet.happiness : 255, + shiny: typeof ssbSet.shiny === 'number' ? this.randomChance(1, ssbSet.shiny) : !!ssbSet.shiny, + }; + + // Any set specific tweaks occur here. + if (set.name === "Felucia") { + const cmIndex = set.moves.indexOf("Calm Mind"); + if (cmIndex >= 0 && set.moves.includes("Night Shade")) { + set.moves[cmIndex] = this.sample(["Thief", "Toxic"]); + } + } + if (set.name === "Frostyicelad" && set.shiny) { + const moveIndex = Math.max(set.moves.indexOf('Dire Claw'), + set.moves.indexOf('Meteor Mash'), set.moves.indexOf('Bitter Malice')); + if (moveIndex >= 0) { + set.moves[moveIndex] = 'Fishious Rend'; + teraType = 'Water'; + } + } + + if (teraType) set.teraType = teraType; + + team.push(set); + + // Team specific tweaks occur here + // Swap last and second to last sets if last set has Illusion + if (team.length === this.maxTeamSize && (set.ability === 'Illusion')) { + team[this.maxTeamSize - 1] = team[this.maxTeamSize - 2]; + team[this.maxTeamSize - 2] = set; + } + } + return team; + } +} + +export default RandomStaffBrosTeams; diff --git a/data/mods/gen9ssb/rulesets.ts b/data/mods/gen9ssb/rulesets.ts new file mode 100644 index 000000000000..c5f7cf7d79b8 --- /dev/null +++ b/data/mods/gen9ssb/rulesets.ts @@ -0,0 +1,25 @@ +export const Rulesets: import('../../../sim/dex-formats').ModdedFormatDataTable = { + sleepclausemod: { + inherit: true, + onSetStatus(status, target, source) { + if (source && source.isAlly(target)) { + return; + } + if (status.id === 'slp') { + for (const pokemon of target.side.pokemon) { + if (pokemon.hp && pokemon.status === 'slp') { + if (!pokemon.statusState.source || !pokemon.statusState.source.isAlly(pokemon)) { + if (source.hasAbility('ididitagain')) { + this.add('-ability', source, 'I Did It Again'); + return; + } + this.add('-message', 'Sleep Clause Mod activated.'); + this.hint("Sleep Clause Mod prevents players from putting more than one of their opponent's Pokémon to sleep at a time"); + return false; + } + } + } + } + }, + }, +}; diff --git a/data/mods/gen9ssb/scripts.ts b/data/mods/gen9ssb/scripts.ts new file mode 100644 index 000000000000..3fe0e55a73b8 --- /dev/null +++ b/data/mods/gen9ssb/scripts.ts @@ -0,0 +1,2097 @@ +import {SSBSet} from "./random-teams"; +import {ChosenAction} from '../../../sim/side'; +import {FS} from '../../../lib'; +import {toID} from '../../../sim/dex-data'; + +// Similar to User.usergroups. Cannot import here due to users.ts requiring Chat +// This also acts as a cache, meaning ranks will only update when a hotpatch/restart occurs +const usergroups: {[userid: string]: string} = {}; +const usergroupData = FS('config/usergroups.csv').readIfExistsSync().split('\n'); +for (const row of usergroupData) { + if (!toID(row)) continue; + + const cells = row.split(','); + if (cells.length > 3) throw new Error(`Invalid entry when parsing usergroups.csv`); + usergroups[toID(cells[0])] = cells[1].trim() || ' '; +} + +const roomauth: {[roomid: string]: {[userid: string]: string}} = {}; +/** + * Given a username and room, returns the auth they have in that room. Used for some conditional messages/effects. + * Each room is cached on the first call until the process is restarted. + */ +export function getRoomauth(name: string, room: string) { + const userid = toID(name); + const roomid = toID(room); + if (roomauth[roomid]) return roomauth[roomid][userid] || null; + const roomsList: any[] = JSON.parse(FS('config/chatrooms.json').readIfExistsSync() || '[]'); + const roomData = roomsList.find(r => toID(r.title) === roomid); + if (!roomData) return null; + roomauth[roomid] = roomData.auth; + return roomauth[roomid][userid] || null; +} + +export function getName(name: string): string { + const userid = toID(name); + if (!userid) throw new Error('No/Invalid name passed to getSymbol'); + + let group = usergroups[userid] || ' '; + if (name === 'Artemis') group = '@'; + if (name === 'Jeopard-E' || name === 'Ice Kyubs') group = '*'; + return Math.floor(Date.now() / 1000) + '|' + group + name; +} + +export function enemyStaff(pokemon: Pokemon): string { + const foePokemon = pokemon.side.foe.active[0]; + if (foePokemon.illusion) return foePokemon.illusion.name; + return foePokemon.name; +} + +/** TODO: What happened to make this work weird? + * Assigns a new set to a Pokémon + * @param pokemon the Pokemon to assign the set to + * @param newSet the SSBSet to assign + */ +export function changeSet(context: Battle, pokemon: Pokemon, newSet: SSBSet, changeAbility = false) { + if (pokemon.transformed) return; + const evs: StatsTable = { + hp: newSet.evs?.hp || 0, + atk: newSet.evs?.atk || 0, + def: newSet.evs?.def || 0, + spa: newSet.evs?.spa || 0, + spd: newSet.evs?.spd || 0, + spe: newSet.evs?.spe || 0, + }; + const ivs: StatsTable = { + hp: newSet.ivs?.hp || 31, + atk: newSet.ivs?.atk || 31, + def: newSet.ivs?.def || 31, + spa: newSet.ivs?.spa || 31, + spd: newSet.ivs?.spd || 31, + spe: newSet.ivs?.spe || 31, + }; + pokemon.set.evs = evs; + pokemon.set.ivs = ivs; + if (newSet.nature) pokemon.set.nature = Array.isArray(newSet.nature) ? context.sample(newSet.nature) : newSet.nature; + const oldGender = pokemon.set.gender; + if ((pokemon.set.gender !== newSet.gender) && !Array.isArray(newSet.gender)) { + pokemon.set.gender = newSet.gender; + // @ts-ignore Shut up sharp_claw wanted this + pokemon.gender = newSet.gender; + } + const oldShiny = pokemon.set.shiny; + pokemon.set.shiny = (typeof newSet.shiny === 'number') ? context.randomChance(1, newSet.shiny) : !!newSet.shiny; + let percent = (pokemon.hp / pokemon.baseMaxhp); + if (newSet.species === 'Shedinja') percent = 1; + pokemon.formeChange(newSet.species, context.effect, true); + if (!pokemon.terastallized && newSet.teraType) { + const allTypes = context.dex.types.names(); + pokemon.teraType = newSet.teraType === 'Any' ? context.sample(allTypes) : + Array.isArray(newSet.teraType) ? context.sample(newSet.teraType) : newSet.teraType; + } + const details = pokemon.species.name + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + + (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); + if (oldShiny !== pokemon.set.shiny || oldGender !== pokemon.gender) context.add('replace', pokemon, details); + if (changeAbility) pokemon.setAbility(newSet.ability as string, undefined, true); + + pokemon.baseMaxhp = pokemon.species.name === 'Shedinja' ? 1 : Math.floor(Math.floor( + 2 * pokemon.species.baseStats.hp + pokemon.set.ivs.hp + Math.floor(pokemon.set.evs.hp / 4) + 100 + ) * pokemon.level / 100 + 10); + const newMaxHP = pokemon.baseMaxhp; + pokemon.hp = Math.round(newMaxHP * percent); + pokemon.maxhp = newMaxHP; + context.add('-heal', pokemon, pokemon.getHealth, '[silent]'); + if (pokemon.item) { + let item = newSet.item; + if (typeof item !== 'string') item = item[context.random(item.length)]; + if (context.toID(item) !== (pokemon.item || pokemon.lastItem)) pokemon.setItem(item); + } + if (!pokemon.m.datacorrupt) { + const newMoves = changeMoves(context, pokemon, newSet.moves.concat(newSet.signatureMove)); + pokemon.moveSlots = newMoves; + // Necessary so pokemon doesn't get 8 moves + (pokemon as any).baseMoveSlots = newMoves; + } + pokemon.canMegaEvo = context.actions.canMegaEvo(pokemon); + pokemon.canUltraBurst = context.actions.canUltraBurst(pokemon); + pokemon.canTerastallize = (pokemon.canTerastallize === null) ? null : context.actions.canTerastallize(pokemon); + context.add('message', `${pokemon.name} changed form!`); +} + +export const PSEUDO_WEATHERS = [ + // Normal pseudo weathers + 'fairylock', 'gravity', 'iondeluge', 'magicroom', 'mudsport', 'trickroom', 'watersport', 'wonderroom', + // SSB pseudo weathers + 'anfieldatmosphere', +]; + +/** + * Assigns new moves to a Pokemon + * @param pokemon The Pokemon whose moveset is to be modified + * @param newSet The set whose moves should be assigned + */ +export function changeMoves(context: Battle, pokemon: Pokemon, newMoves: (string | string[])[]) { + const carryOver = pokemon.moveSlots.slice().map(m => m.pp / m.maxpp); + // In case there are ever less than 4 moves + while (carryOver.length < 4) { + carryOver.push(1); + } + const result = []; + let slot = 0; + for (const newMove of newMoves) { + const moveName = Array.isArray(newMove) ? newMove[context.random(newMove.length)] : newMove; + const move = context.dex.moves.get(context.toID(moveName)); + if (!move.id) continue; + const moveSlot = { + move: move.name, + id: move.id, + // eslint-disable-next-line max-len + pp: ((move.noPPBoosts || move.isZ) ? Math.floor(move.pp * carryOver[slot]) : Math.floor((move.pp * (8 / 5)) * carryOver[slot])), + maxpp: ((move.noPPBoosts || move.isZ) ? move.pp : move.pp * 8 / 5), + target: move.target, + disabled: false, + disabledSource: '', + used: false, + }; + result.push(moveSlot); + slot++; + } + return result; +} + +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + inherit: 'gen9', + boost(boost, target, source, effect, isSecondary, isSelf) { + if (this.event) { + if (!target) target = this.event.target; + if (!source) source = this.event.source; + if (!effect) effect = this.effect; + } + if (!target?.hp) return 0; + if (!target.isActive) return false; + if (this.gen > 5 && !target.side.foePokemonLeft()) return false; + boost = this.runEvent('ChangeBoost', target, source, effect, {...boost}); + boost = target.getCappedBoost(boost); + boost = this.runEvent('TryBoost', target, source, effect, {...boost}); + let success = null; + let boosted = isSecondary; + let boostName: BoostID; + if (target.set.name === 'phoopes') { + if (boost.spa) { + boost.spd = boost.spa; + } + if (boost.spd) { + boost.spa = boost.spd; + } + } + for (boostName in boost) { + const currentBoost: SparseBoostsTable = { + [boostName]: boost[boostName], + }; + let boostBy = target.boostBy(currentBoost); + let msg = '-boost'; + if (boost[boostName]! < 0 || target.boosts[boostName] === -6) { + msg = '-unboost'; + boostBy = -boostBy; + } + if (boostBy) { + success = true; + switch (effect?.id) { + case 'bellydrum': case 'angerpoint': + this.add('-setboost', target, 'atk', target.boosts['atk'], '[from] ' + effect.fullname); + break; + case 'bellydrum2': + this.add(msg, target, boostName, boostBy, '[silent]'); + this.hint("In Gen 2, Belly Drum boosts by 2 when it fails."); + break; + case 'zpower': + this.add(msg, target, boostName, boostBy, '[zeffect]'); + break; + default: + if (!effect) break; + if (effect.effectType === 'Move') { + this.add(msg, target, boostName, boostBy); + } else if (effect.effectType === 'Item') { + this.add(msg, target, boostName, boostBy, '[from] item: ' + effect.name); + } else { + if (effect.effectType === 'Ability' && !boosted) { + this.add('-ability', target, effect.name, 'boost'); + boosted = true; + } + this.add(msg, target, boostName, boostBy); + } + break; + } + this.runEvent('AfterEachBoost', target, source, effect, currentBoost); + } else if (effect?.effectType === 'Ability') { + if (isSecondary || isSelf) this.add(msg, target, boostName, boostBy); + } else if (!isSecondary && !isSelf) { + this.add(msg, target, boostName, boostBy); + } + } + this.runEvent('AfterBoost', target, source, effect, boost); + if (success) { + if (Object.values(boost).some(x => x > 0)) target.statsRaisedThisTurn = true; + if (Object.values(boost).some(x => x < 0)) target.statsLoweredThisTurn = true; + } + return success; + }, + getActionSpeed(action) { + if (action.choice === 'move') { + let move = action.move; + if (action.zmove) { + const zMoveName = this.actions.getZMove(action.move, action.pokemon, true); + if (zMoveName) { + const zMove = this.dex.getActiveMove(zMoveName); + if (zMove.exists && zMove.isZ) { + move = zMove; + } + } + } + if (action.maxMove) { + const maxMoveName = this.actions.getMaxMove(action.maxMove, action.pokemon); + if (maxMoveName) { + const maxMove = this.actions.getActiveMaxMove(action.move, action.pokemon); + if (maxMove.exists && maxMove.isMax) { + move = maxMove; + } + } + } + // WHY DOES onModifyPriority TAKE A TARGET ARG WHEN IT IS ALWAYS NULL????? + const target = this.getTarget(action.pokemon, action.move, action.targetLoc); + // take priority from the base move, so abilities like Prankster only apply once + // (instead of compounding every time `getActionSpeed` is called) + let priority = this.dex.moves.get(move.id).priority; + // Grassy Glide priority + priority = this.singleEvent('ModifyPriority', move, null, action.pokemon, target, null, priority); + priority = this.runEvent('ModifyPriority', action.pokemon, target, move, priority); + action.priority = priority + action.fractionalPriority; + // In Gen 6, Quick Guard blocks moves with artificially enhanced priority. + if (this.gen > 5) action.move.priority = priority; + } + + if (!action.pokemon) { + action.speed = 1; + } else { + action.speed = action.pokemon.getActionSpeed(); + } + }, + // For some god forsaken reason removing the boolean declarations causes the "battles dont end automatically" bug + // I don't know why but in any case please don't touch this unless you know how to fix this + faintMessages(lastFirst = false, forceCheck = false, checkWin = true) { + if (this.ended) return; + const length = this.faintQueue.length; + if (!length) { + if (forceCheck && this.checkWin()) return true; + return false; + } + if (lastFirst) { + this.faintQueue.unshift(this.faintQueue[this.faintQueue.length - 1]); + this.faintQueue.pop(); + } + let faintQueueLeft, faintData; + while (this.faintQueue.length) { + faintQueueLeft = this.faintQueue.length; + faintData = this.faintQueue.shift()!; + const pokemon: Pokemon = faintData.target; + if (!pokemon.fainted && + this.runEvent('BeforeFaint', pokemon, faintData.source, faintData.effect)) { + if (!pokemon.isActive) { + this.add('message', `${pokemon.name} was killed by ${pokemon.side.name}!`); + // TODO: Custom Protocol needed for teambar update + } else { + this.add('faint', pokemon); + } + if (pokemon.side.pokemonLeft) pokemon.side.pokemonLeft--; + if (pokemon.side.totalFainted < 100) pokemon.side.totalFainted++; + this.runEvent('Faint', pokemon, faintData.source, faintData.effect); + this.singleEvent('End', pokemon.getAbility(), pokemon.abilityState, pokemon); + pokemon.clearVolatile(false); + pokemon.fainted = true; + pokemon.illusion = null; + pokemon.isActive = false; + pokemon.isStarted = false; + delete pokemon.terastallized; + pokemon.side.faintedThisTurn = pokemon; + if (this.faintQueue.length >= faintQueueLeft) checkWin = true; + } + } + + if (this.gen <= 1) { + // in gen 1, fainting skips the rest of the turn + // residuals don't exist in gen 1 + this.queue.clear(); + // Fainting clears accumulated Bide damage + for (const pokemon of this.getAllActive()) { + if (pokemon.volatiles['bide'] && pokemon.volatiles['bide'].damage) { + pokemon.volatiles['bide'].damage = 0; + this.hint("Desync Clause Mod activated!"); + this.hint("In Gen 1, Bide's accumulated damage is reset to 0 when a Pokemon faints."); + } + } + } else if (this.gen <= 3 && this.gameType === 'singles') { + // in gen 3 or earlier, fainting in singles skips to residuals + for (const pokemon of this.getAllActive()) { + if (this.gen <= 2) { + // in gen 2, fainting skips moves only + this.queue.cancelMove(pokemon); + } else { + // in gen 3, fainting skips all moves and switches + this.queue.cancelAction(pokemon); + } + } + } + + if (checkWin && this.checkWin(faintData)) return true; + + if (faintData && length) { + this.runEvent('AfterFaint', faintData.target, faintData.source, faintData.effect, length); + } + return false; + }, + checkMoveMakesContact(move, attacker, defender, announcePads) { + if (move.flags['contact'] && attacker.hasItem('protectivepads')) { + if (announcePads) { + this.add('-activate', defender, this.effect.fullname); + this.add('-activate', attacker, 'item: Protective Pads'); + } + return false; + } + if (move.id === 'wonderwing') return false; + return !!move.flags['contact']; + }, + // Fake switch needed for HiZo's Scapegoat + runAction(action) { + const pokemonOriginalHP = action.pokemon?.hp; + let residualPokemon: (readonly [Pokemon, number])[] = []; + // returns whether or not we ended in a callback + switch (action.choice) { + case 'start': { + for (const side of this.sides) { + if (side.pokemonLeft) side.pokemonLeft = side.pokemon.length; + } + + this.add('start'); + + // Change Zacian/Zamazenta into their Crowned formes + for (const pokemon of this.getAllPokemon()) { + let rawSpecies: Species | null = null; + if (pokemon.species.id === 'zacian' && pokemon.item === 'rustedsword') { + rawSpecies = this.dex.species.get('Zacian-Crowned'); + } else if (pokemon.species.id === 'zamazenta' && pokemon.item === 'rustedshield') { + rawSpecies = this.dex.species.get('Zamazenta-Crowned'); + } + if (!rawSpecies) continue; + const species = pokemon.setSpecies(rawSpecies); + if (!species) continue; + pokemon.baseSpecies = rawSpecies; + pokemon.details = species.name + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + + (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); + // pokemon.setAbility(species.abilities['0'], null, true); + // pokemon.baseAbility = pokemon.ability; + + const behemothMove: {[k: string]: string} = { + 'Zacian-Crowned': 'behemothblade', 'Zamazenta-Crowned': 'behemothbash', + }; + const ironHead = pokemon.baseMoves.indexOf('ironhead'); + if (ironHead >= 0) { + const move = this.dex.moves.get(behemothMove[rawSpecies.name]); + pokemon.baseMoveSlots[ironHead] = { + move: move.name, + id: move.id, + pp: (move.noPPBoosts || move.isZ) ? move.pp : move.pp * 8 / 5, + maxpp: (move.noPPBoosts || move.isZ) ? move.pp : move.pp * 8 / 5, + target: move.target, + disabled: false, + disabledSource: '', + used: false, + }; + pokemon.moveSlots = pokemon.baseMoveSlots.slice(); + } + } + + if (this.format.onBattleStart) this.format.onBattleStart.call(this); + for (const rule of this.ruleTable.keys()) { + if ('+*-!'.includes(rule.charAt(0))) continue; + const subFormat = this.dex.formats.get(rule); + if (subFormat.onBattleStart) subFormat.onBattleStart.call(this); + } + + for (const side of this.sides) { + for (let i = 0; i < side.active.length; i++) { + if (!side.pokemonLeft) { + // forfeited before starting + side.active[i] = side.pokemon[i]; + side.active[i].fainted = true; + side.active[i].hp = 0; + } else { + this.actions.switchIn(side.pokemon[i], i); + } + } + } + for (const pokemon of this.getAllPokemon()) { + this.singleEvent('Start', this.dex.conditions.getByID(pokemon.species.id), pokemon.speciesState, pokemon); + } + this.midTurn = true; + break; + } + + case 'move': + if (!action.pokemon.isActive) return false; + if (action.pokemon.fainted) return false; + this.actions.runMove(action.move, action.pokemon, action.targetLoc, { + sourceEffect: action.sourceEffect, zMove: action.zmove, + maxMove: action.maxMove, originalTarget: action.originalTarget, + }); + break; + case 'megaEvo': + this.actions.runMegaEvo(action.pokemon); + break; + case 'runDynamax': + action.pokemon.addVolatile('dynamax'); + action.pokemon.side.dynamaxUsed = true; + if (action.pokemon.side.allySide) action.pokemon.side.allySide.dynamaxUsed = true; + break; + case 'terastallize': + this.actions.terastallize(action.pokemon); + break; + case 'beforeTurnMove': + if (!action.pokemon.isActive) return false; + if (action.pokemon.fainted) return false; + this.debug('before turn callback: ' + action.move.id); + const target = this.getTarget(action.pokemon, action.move, action.targetLoc); + if (!target) return false; + if (!action.move.beforeTurnCallback) throw new Error(`beforeTurnMove has no beforeTurnCallback`); + action.move.beforeTurnCallback.call(this, action.pokemon, target); + break; + case 'priorityChargeMove': + if (!action.pokemon.isActive) return false; + if (action.pokemon.fainted) return false; + this.debug('priority charge callback: ' + action.move.id); + if (!action.move.priorityChargeCallback) throw new Error(`priorityChargeMove has no priorityChargeCallback`); + action.move.priorityChargeCallback.call(this, action.pokemon); + break; + + case 'event': + this.runEvent(action.event!, action.pokemon); + break; + case 'team': + if (action.index === 0) { + action.pokemon.side.pokemon = []; + } + action.pokemon.side.pokemon.push(action.pokemon); + action.pokemon.position = action.index; + // we return here because the update event would crash since there are no active pokemon yet + return; + + case 'pass': + return; + case 'instaswitch': + case 'switch': + if (action.choice === 'switch' && action.pokemon.status) { + this.singleEvent('CheckShow', this.dex.abilities.getByID('naturalcure' as ID), null, action.pokemon); + } + if (this.actions.switchIn(action.target, action.pokemon.position, action.sourceEffect) === 'pursuitfaint') { + // a pokemon fainted from Pursuit before it could switch + if (this.gen <= 4) { + // in gen 2-4, the switch still happens + this.hint("Previously chosen switches continue in Gen 2-4 after a Pursuit target faints."); + action.priority = -101; + this.queue.unshift(action); + break; + } else { + // in gen 5+, the switch is cancelled + this.hint("A Pokemon can't switch between when it runs out of HP and when it faints"); + break; + } + } + break; + case 'revivalblessing': + action.pokemon.side.pokemonLeft++; + if (action.target.position < action.pokemon.side.active.length) { + this.queue.addChoice({ + choice: 'instaswitch', + pokemon: action.target, + target: action.target, + }); + } + action.target.fainted = false; + action.target.faintQueued = false; + action.target.subFainted = false; + action.target.status = ''; + action.target.hp = 1; // Needed so hp functions works + action.target.sethp(action.target.maxhp / 2); + this.add('-heal', action.target, action.target.getHealth, '[from] move: Revival Blessing'); + action.pokemon.side.removeSlotCondition(action.pokemon, 'revivalblessing'); + break; + // @ts-ignore I'm sorry but it takes a lot + case 'scapegoat': + // @ts-ignore + const percent = (action.target.hp / action.target.baseMaxhp) * 100; + // @ts-ignore TODO: Client support for custom faint + action.target.faint(); + if (percent > 66) { + this.add('message', `Your courage will be greatly rewarded.`); + // @ts-ignore + this.boost({atk: 3, spa: 3, spe: 3}, action.pokemon, action.pokemon, this.dex.moves.get('scapegoat')); + } else if (percent > 33) { + this.add('message', `Your offering was accepted.`); + // @ts-ignore + this.boost({atk: 2, spa: 2, spe: 2}, action.pokemon, action.pokemon, this.dex.moves.get('scapegoat')); + } else { + this.add('message', `Coward.`); + // @ts-ignore + this.boost({atk: 1, spa: 1, spe: 1}, action.pokemon, action.pokemon, this.dex.moves.get('scapegoat')); + } + // @ts-ignore + this.add(`c:|${getName((action.pokemon.illusion || action.pokemon).name)}|Don't worry, if this plan fails we can just blame ${action.target.name}`); + // @ts-ignore + action.pokemon.side.removeSlotCondition(action.pokemon, 'scapegoat'); + break; + case 'runUnnerve': + this.singleEvent('PreStart', action.pokemon.getAbility(), action.pokemon.abilityState, action.pokemon); + break; + case 'runSwitch': + this.actions.runSwitch(action.pokemon); + break; + case 'runPrimal': + if (!action.pokemon.transformed) { + this.singleEvent('Primal', action.pokemon.getItem(), action.pokemon.itemState, action.pokemon); + } + break; + case 'shift': + if (!action.pokemon.isActive) return false; + if (action.pokemon.fainted) return false; + this.swapPosition(action.pokemon, 1); + break; + + case 'beforeTurn': + this.eachEvent('BeforeTurn'); + break; + case 'residual': + this.add(''); + this.clearActiveMove(true); + this.updateSpeed(); + residualPokemon = this.getAllActive().map(pokemon => [pokemon, pokemon.getUndynamaxedHP()] as const); + this.residualEvent('Residual'); + this.add('upkeep'); + break; + } + + // phazing (Roar, etc) + for (const side of this.sides) { + for (const pokemon of side.active) { + if (pokemon.forceSwitchFlag) { + if (pokemon.hp) this.actions.dragIn(pokemon.side, pokemon.position); + pokemon.forceSwitchFlag = false; + } + } + } + + this.clearActiveMove(); + + // fainting + + this.faintMessages(); + if (this.ended) return true; + + // switching (fainted pokemon, U-turn, Baton Pass, etc) + + if (!this.queue.peek() || (this.gen <= 3 && ['move', 'residual'].includes(this.queue.peek()!.choice))) { + // in gen 3 or earlier, switching in fainted pokemon is done after + // every move, rather than only at the end of the turn. + this.checkFainted(); + } else if (action.choice === 'megaEvo' && this.gen === 7) { + this.eachEvent('Update'); + // In Gen 7, the action order is recalculated for a Pokémon that mega evolves. + for (const [i, queuedAction] of this.queue.list.entries()) { + if (queuedAction.pokemon === action.pokemon && queuedAction.choice === 'move') { + this.queue.list.splice(i, 1); + queuedAction.mega = 'done'; + this.queue.insertChoice(queuedAction, true); + break; + } + } + return false; + } else if (this.queue.peek()?.choice === 'instaswitch') { + return false; + } + + if (this.gen >= 5) { + this.eachEvent('Update'); + for (const [pokemon, originalHP] of residualPokemon) { + const maxhp = pokemon.getUndynamaxedHP(pokemon.maxhp); + if (pokemon.hp && pokemon.getUndynamaxedHP() <= maxhp / 2 && originalHP > maxhp / 2) { + this.runEvent('EmergencyExit', pokemon); + } + } + } + + if (action.choice === 'runSwitch') { + const pokemon = action.pokemon; + if (pokemon.hp && pokemon.hp <= pokemon.maxhp / 2 && pokemonOriginalHP! > pokemon.maxhp / 2) { + this.runEvent('EmergencyExit', pokemon); + } + } + + const switches = this.sides.map( + side => side.active.some(pokemon => pokemon && !!pokemon.switchFlag) + ); + + for (let i = 0; i < this.sides.length; i++) { + let reviveSwitch = false; // Used to ignore the fake switch for Revival Blessing + if (switches[i] && !this.canSwitch(this.sides[i])) { + for (const pokemon of this.sides[i].active) { + if (this.sides[i].slotConditions[pokemon.position]['revivalblessing'] || + this.sides[i].slotConditions[pokemon.position]['scapegoat']) { + reviveSwitch = true; + continue; + } + pokemon.switchFlag = false; + } + if (!reviveSwitch) switches[i] = false; + } else if (switches[i]) { + for (const pokemon of this.sides[i].active) { + if (pokemon.hp && pokemon.switchFlag && pokemon.switchFlag !== 'revivalblessing' && + pokemon.switchFlag !== 'scapegoat' && !pokemon.skipBeforeSwitchOutEventFlag) { + this.runEvent('BeforeSwitchOut', pokemon); + pokemon.skipBeforeSwitchOutEventFlag = true; + this.faintMessages(); // Pokemon may have fainted in BeforeSwitchOut + if (this.ended) return true; + if (pokemon.fainted) { + switches[i] = this.sides[i].active.some(sidePokemon => sidePokemon && !!sidePokemon.switchFlag); + } + } + } + } + } + + for (const playerSwitch of switches) { + if (playerSwitch) { + this.makeRequest('switch'); + return true; + } + } + + if (this.gen < 5) this.eachEvent('Update'); + + if (this.gen >= 8 && (this.queue.peek()?.choice === 'move' || this.queue.peek()?.choice === 'runDynamax')) { + // In gen 8, speed is updated dynamically so update the queue's speed properties and sort it. + this.updateSpeed(); + for (const queueAction of this.queue.list) { + if (queueAction.pokemon) this.getActionSpeed(queueAction); + } + this.queue.sort(); + } + + return false; + }, + actions: { + terastallize(pokemon) { + if (pokemon.illusion && ['Ogerpon', 'Terapagos'].includes(pokemon.illusion.species.baseSpecies)) { + this.battle.singleEvent('End', this.dex.abilities.get('Illusion'), pokemon.abilityState, pokemon); + } + + const type = pokemon.teraType; + this.battle.add('-terastallize', pokemon, type); + pokemon.terastallized = type; + for (const ally of pokemon.side.pokemon) { + ally.canTerastallize = null; + } + pokemon.addedType = ''; + pokemon.knownType = true; + pokemon.apparentType = type; + if (pokemon.species.baseSpecies === 'Ogerpon') { + const tera = pokemon.species.id === 'ogerpon' ? 'tealtera' : 'tera'; + pokemon.formeChange(pokemon.species.id + tera, null, true); + } + if (pokemon.species.name === 'Terapagos-Terastal' && type === 'Stellar') { + pokemon.formeChange('Terapagos-Stellar', null, true); + pokemon.baseMaxhp = Math.floor(Math.floor( + 2 * pokemon.species.baseStats['hp'] + pokemon.set.ivs['hp'] + Math.floor(pokemon.set.evs['hp'] / 4) + 100 + ) * pokemon.level / 100 + 10); + const newMaxHP = pokemon.baseMaxhp; + pokemon.hp = newMaxHP - (pokemon.maxhp - pokemon.hp); + pokemon.maxhp = newMaxHP; + this.battle.add('-heal', pokemon, pokemon.getHealth, '[silent]'); + } + if (!pokemon.illusion && pokemon.name === 'Neko') { + this.battle.add(`c:|${getName('Neko')}|Possible thermal failure if operation continues (Meow on fire ?)`); + } + this.battle.runEvent('AfterTerastallization', pokemon); + }, + modifyDamage(baseDamage, pokemon, target, move, suppressMessages) { + const tr = this.battle.trunc; + if (!move.type) move.type = '???'; + const type = move.type; + + baseDamage += 2; + + if (move.spreadHit) { + // multi-target modifier (doubles only) + const spreadModifier = move.spreadModifier || (this.battle.gameType === 'freeforall' ? 0.5 : 0.75); + this.battle.debug('Spread modifier: ' + spreadModifier); + baseDamage = this.battle.modify(baseDamage, spreadModifier); + } else if (move.multihitType === 'parentalbond' && move.hit > 1) { + // Parental Bond modifier + const bondModifier = this.battle.gen > 6 && !pokemon.hasAbility('Almost Frosty') ? 0.25 : 0.5; + this.battle.debug(`Parental Bond modifier: ${bondModifier}`); + baseDamage = this.battle.modify(baseDamage, bondModifier); + } + + // weather modifier + baseDamage = this.battle.runEvent('WeatherModifyDamage', pokemon, target, move, baseDamage); + + // crit - not a modifier + const isCrit = target.getMoveHitData(move).crit; + if (isCrit) { + baseDamage = tr(baseDamage * (move.critModifier || (this.battle.gen >= 6 ? 1.5 : 2))); + } else { + if (move.id === 'megidolaon') delete move.volatileStatus; + } + + // random factor - also not a modifier + baseDamage = this.battle.randomizer(baseDamage); + + // STAB + // The "???" type never gets STAB + // Not even if you Roost in Gen 4 and somehow manage to use + // Struggle in the same turn. + // (On second thought, it might be easier to get a MissingNo.) + if (type !== '???') { + let stab: number | [number, number] = 1; + + const isSTAB = move.forceSTAB || pokemon.hasType(type) || pokemon.getTypes(false, true).includes(type); + if (isSTAB) { + stab = 1.5; + } + + // The Stellar tera type makes this incredibly confusing + // If the move's type does not match one of the user's base types, + // the Stellar tera type applies a one-time 1.2x damage boost for that type. + // + // If the move's type does match one of the user's base types, + // then the Stellar tera type applies a one-time 2x STAB boost for that type, + // and then goes back to using the regular 1.5x STAB boost for those types. + if (pokemon.terastallized === 'Stellar') { + if (!pokemon.stellarBoostedTypes.includes(type)) { + stab = isSTAB ? 2 : [4915, 4096]; + if (!(pokemon.species.name === 'Terapagos-Stellar' || pokemon.species.baseSpecies === 'Meloetta')) { + pokemon.stellarBoostedTypes.push(type); + } + } + } else { + if (pokemon.terastallized === type && pokemon.getTypes(false, true).includes(type)) { + stab = 2; + } + stab = this.battle.runEvent('ModifySTAB', pokemon, target, move, stab); + } + + baseDamage = this.battle.modify(baseDamage, stab); + } + + // types + let typeMod = target.runEffectiveness(move); + typeMod = this.battle.clampIntRange(typeMod, -6, 6); + target.getMoveHitData(move).typeMod = typeMod; + if (typeMod > 0) { + if (!suppressMessages) this.battle.add('-supereffective', target); + + for (let i = 0; i < typeMod; i++) { + baseDamage *= 2; + } + } + if (typeMod < 0) { + if (!suppressMessages) this.battle.add('-resisted', target); + + for (let i = 0; i > typeMod; i--) { + baseDamage = tr(baseDamage / 2); + } + } + + if (isCrit && !suppressMessages) this.battle.add('-crit', target); + + if (pokemon.status === 'brn' && move.category === 'Physical' && + !pokemon.hasAbility(['guts', 'fortifiedmetal'])) { + if (this.battle.gen < 6 || move.id !== 'facade') { + baseDamage = this.battle.modify(baseDamage, 0.5); + } + } + + // Generation 5, but nothing later, sets damage to 1 before the final damage modifiers + if (this.battle.gen === 5 && !baseDamage) baseDamage = 1; + + // Final modifier. Modifiers that modify damage after min damage check, such as Life Orb. + baseDamage = this.battle.runEvent('ModifyDamage', pokemon, target, move, baseDamage); + + if (move.isZOrMaxPowered && target.getMoveHitData(move).zBrokeProtect) { + baseDamage = this.battle.modify(baseDamage, 0.25); + this.battle.add('-zbroken', target); + } + + // Generation 6-7 moves the check for minimum 1 damage after the final modifier... + if (this.battle.gen !== 5 && !baseDamage) return 1; + + // ...but 16-bit truncation happens even later, and can truncate to 0 + return tr(baseDamage, 16); + }, + switchIn(pokemon, pos, sourceEffect, isDrag) { + if (!pokemon || pokemon.isActive) { + this.battle.hint("A switch failed because the Pokémon trying to switch in is already in."); + return false; + } + + const side = pokemon.side; + if (pos >= side.active.length) { + throw new Error(`Invalid switch position ${pos} / ${side.active.length}`); + } + const oldActive = side.active[pos]; + const unfaintedActive = oldActive?.hp ? oldActive : null; + if (unfaintedActive) { + oldActive.beingCalledBack = true; + let switchCopyFlag: 'copyvolatile' | 'shedtail' | boolean = false; + if (sourceEffect && typeof (sourceEffect as Move).selfSwitch === 'string') { + switchCopyFlag = (sourceEffect as Move).selfSwitch!; + } + if (!oldActive.skipBeforeSwitchOutEventFlag && !isDrag) { + this.battle.runEvent('BeforeSwitchOut', oldActive); + if (this.battle.gen >= 5) { + this.battle.eachEvent('Update'); + } + } + oldActive.skipBeforeSwitchOutEventFlag = false; + if (!this.battle.runEvent('SwitchOut', oldActive)) { + // Warning: DO NOT interrupt a switch-out if you just want to trap a pokemon. + // To trap a pokemon and prevent it from switching out, (e.g. Mean Look, Magnet Pull) + // use the 'trapped' flag instead. + + // Note: Nothing in the real games can interrupt a switch-out (except Pursuit KOing, + // which is handled elsewhere); this is just for custom formats. + return false; + } + if (!oldActive.hp) { + // a pokemon fainted from Pursuit before it could switch + return 'pursuitfaint'; + } + + // will definitely switch out at this point + + oldActive.illusion = null; + this.battle.singleEvent('End', oldActive.getAbility(), oldActive.abilityState, oldActive); + + // if a pokemon is forced out by Whirlwind/etc or Eject Button/Pack, it can't use its chosen move + this.battle.queue.cancelAction(oldActive); + + let newMove = null; + if (this.battle.gen === 4 && sourceEffect) { + newMove = oldActive.lastMove; + } + if (switchCopyFlag) { + pokemon.copyVolatileFrom(oldActive, switchCopyFlag); + } + if (newMove) pokemon.lastMove = newMove; + oldActive.clearVolatile(); + } + if (oldActive) { + oldActive.isActive = false; + oldActive.isStarted = false; + oldActive.usedItemThisTurn = false; + oldActive.statsRaisedThisTurn = false; + oldActive.statsLoweredThisTurn = false; + // ptoad + delete oldActive.m.usedPleek; + delete oldActive.m.usedPlagiarism; + oldActive.position = pokemon.position; + pokemon.position = pos; + side.pokemon[pokemon.position] = pokemon; + side.pokemon[oldActive.position] = oldActive; + } + pokemon.isActive = true; + side.active[pos] = pokemon; + pokemon.activeTurns = 0; + pokemon.activeMoveActions = 0; + for (const moveSlot of pokemon.moveSlots) { + moveSlot.used = false; + } + this.battle.runEvent('BeforeSwitchIn', pokemon); + if (sourceEffect) { + this.battle.add(isDrag ? 'drag' : 'switch', pokemon, pokemon.getDetails, '[from] ' + sourceEffect); + } else { + this.battle.add(isDrag ? 'drag' : 'switch', pokemon, pokemon.getDetails); + } + pokemon.abilityOrder = this.battle.abilityOrder++; + if (isDrag && this.battle.gen === 2) pokemon.draggedIn = this.battle.turn; + pokemon.previouslySwitchedIn++; + + if (isDrag && this.battle.gen >= 5) { + // runSwitch happens immediately so that Mold Breaker can make hazards bypass Clear Body and Levitate + this.battle.singleEvent('PreStart', pokemon.getAbility(), pokemon.abilityState, pokemon); + this.runSwitch(pokemon); + } else { + this.battle.queue.insertChoice({choice: 'runUnnerve', pokemon}); + this.battle.queue.insertChoice({choice: 'runSwitch', pokemon}); + } + + return true; + }, + canTerastallize(pokemon) { + if ( + pokemon.terastallized || pokemon.species.isMega || pokemon.species.isPrimal || pokemon.species.forme === "Ultra" || + pokemon.getItem().zMove || pokemon.canMegaEvo || pokemon.side.canDynamaxNow() || this.dex.gen !== 9 + ) { + return null; + } + if (pokemon.baseSpecies.id === 'arceus') return null; + return pokemon.teraType; + }, + // 1 mega per pokemon + runMegaEvo(pokemon) { + const speciesid = pokemon.canMegaEvo || pokemon.canUltraBurst; + if (!speciesid) return false; + + if (speciesid === 'Trapinch' && pokemon.name === 'Arya') { + this.battle.add(`c:|${getName('Arya')}|Oh yeaaaaah!!!!! Finally??!! I can finally Mega-Evolve!!! Vamossss`); + } + + pokemon.formeChange(speciesid, pokemon.getItem(), true); + if (pokemon.canMegaEvo) { + pokemon.canMegaEvo = null; + } else { + pokemon.canUltraBurst = null; + } + + this.battle.runEvent('AfterMega', pokemon); + + // Visual mega type changes here + if (['Arya'].includes(pokemon.name) && !pokemon.illusion) { + this.battle.add('-start', pokemon, 'typechange', pokemon.getTypes(true).join('/'), '[silent]'); + } + + this.battle.add('-ability', pokemon, `${pokemon.getAbility().name}`); + + return true; + }, + + // Modded for Mega Rayquaza + canMegaEvo(pokemon) { + const species = pokemon.baseSpecies; + const altForme = species.otherFormes && this.dex.species.get(species.otherFormes[0]); + const item = pokemon.getItem(); + // Mega Rayquaza + if (altForme?.isMega && altForme?.requiredMove && + pokemon.baseMoves.includes(this.battle.toID(altForme.requiredMove)) && !item.zMove) { + return altForme.name; + } + // a hacked-in Megazard X can mega evolve into Megazard Y, but not into Megazard X + if (item.megaEvolves === species.baseSpecies && item.megaStone !== species.name) { + return item.megaStone; + } + return null; + }, + + // 1 Z per pokemon + canZMove(pokemon) { + if (pokemon.m.zMoveUsed || + (pokemon.transformed && + (pokemon.species.isMega || pokemon.species.isPrimal || pokemon.species.forme === "Ultra")) + ) return; + const item = pokemon.getItem(); + if (!item.zMove) return; + if (item.itemUser && !item.itemUser.includes(pokemon.species.name)) return; + let atLeastOne = false; + let mustStruggle = true; + const zMoves: ZMoveOptions = []; + for (const moveSlot of pokemon.moveSlots) { + if (moveSlot.pp <= 0) { + zMoves.push(null); + continue; + } + if (!moveSlot.disabled) { + mustStruggle = false; + } + const move = this.dex.moves.get(moveSlot.move); + let zMoveName = this.getZMove(move, pokemon, true) || ''; + if (zMoveName) { + const zMove = this.dex.moves.get(zMoveName); + if (!zMove.isZ && zMove.category === 'Status') zMoveName = "Z-" + zMoveName; + zMoves.push({move: zMoveName, target: zMove.target}); + } else { + zMoves.push(null); + } + if (zMoveName) atLeastOne = true; + } + if (atLeastOne && !mustStruggle) return zMoves; + }, + + getZMove(move, pokemon, skipChecks) { + const item = pokemon.getItem(); + if (!skipChecks) { + if (pokemon.m.zMoveUsed) return; + if (!item.zMove) return; + if (item.itemUser && !item.itemUser.includes(pokemon.species.name)) return; + const moveData = pokemon.getMoveData(move); + // Draining the PP of the base move prevents the corresponding Z-move from being used. + if (!moveData?.pp) return; + } + + if (move.name === item.zMoveFrom) { + return item.zMove as string; + } else if (item.zMove === true && move.type === item.zMoveType) { + if (move.category === "Status") { + return move.name; + } else if (move.zMove?.basePower) { + return this.Z_MOVES[move.type]; + } + } + }, + + hitStepAccuracy(targets: Pokemon[], pokemon: Pokemon, move: ActiveMove) { + const hitResults = []; + for (const [i, target] of targets.entries()) { + this.battle.activeTarget = target; + // calculate true accuracy + let accuracy = move.accuracy; + if (move.ohko) { // bypasses accuracy modifiers + if (!target.isSemiInvulnerable()) { + accuracy = 30; + if (move.ohko === 'Ice' && this.battle.gen >= 7 && !pokemon.hasType('Ice')) { + accuracy = 20; + } + if (!target.volatiles['dynamax'] && pokemon.level >= target.level && + (move.ohko === true || !target.hasType(move.ohko))) { + accuracy += (pokemon.level - target.level); + } else { + this.battle.add('-immune', target, '[ohko]'); + hitResults[i] = false; + continue; + } + } + } else { + accuracy = this.battle.runEvent('ModifyAccuracy', target, pokemon, move, accuracy); + if (accuracy !== true) { + let boost = 0; + if (!move.ignoreAccuracy) { + const boosts = this.battle.runEvent('ModifyBoost', pokemon, null, null, {...pokemon.boosts}); + boost = this.battle.clampIntRange(boosts['accuracy'], -6, 6); + } + if (!move.ignoreEvasion) { + const boosts = this.battle.runEvent('ModifyBoost', target, null, null, {...target.boosts}); + boost = this.battle.clampIntRange(boost - boosts['evasion'], -6, 6); + } + if (boost > 0) { + accuracy = this.battle.trunc(accuracy * (3 + boost) / 3); + } else if (boost < 0) { + accuracy = this.battle.trunc(accuracy * 3 / (3 - boost)); + } + } + } + if (move.alwaysHit || (move.id === 'toxic' && this.battle.gen >= 8 && pokemon.hasType('Poison')) || + (move.target === 'self' && move.category === 'Status' && !target.isSemiInvulnerable())) { + accuracy = true; // bypasses ohko accuracy modifiers + } else { + accuracy = this.battle.runEvent('Accuracy', target, pokemon, move, accuracy); + } + if (accuracy !== true && !this.battle.randomChance(accuracy, 100)) { + if (move.smartTarget) { + move.smartTarget = false; + } else { + if (pokemon.hasAbility('misspelled')) { + // Custom miss for HoeenHero + // Typo the move + const typoedMove = move.name.charAt(0) + move.name.charAt(2) + move.name.charAt(1) + move.name.slice(3); + + // Modify the used move to be typoed. + const logEntries = this.battle.log[this.battle.lastMoveLine].split('|'); + logEntries[3] = typoedMove; + this.battle.log[this.battle.lastMoveLine] = logEntries.join('|'); + + this.battle.attrLastMove('[still]'); + this.battle.add('-message', `But it was misspelled!`); + } else { + if (!move.spreadHit) this.battle.attrLastMove('[miss]'); + this.battle.add('-miss', pokemon, target); + } + } + if (!move.ohko && pokemon.hasItem('blunderpolicy') && pokemon.useItem()) { + this.battle.boost({spe: 2}, pokemon); + } + hitResults[i] = false; + continue; + } + hitResults[i] = true; + } + return hitResults; + }, + + runMove(moveOrMoveName, pokemon, targetLoc, options) { + pokemon.activeMoveActions++; + const zMove = options?.zMove; + const maxMove = options?.maxMove; + const externalMove = options?.externalMove; + const originalTarget = options?.originalTarget; + let sourceEffect = options?.sourceEffect; + let target = this.battle.getTarget(pokemon, maxMove || zMove || moveOrMoveName, targetLoc, originalTarget); + let baseMove = this.dex.getActiveMove(moveOrMoveName); + const priority = baseMove.priority; + const pranksterBoosted = baseMove.pranksterBoosted; + if (baseMove.id !== 'struggle' && !zMove && !maxMove && !externalMove) { + const changedMove = this.battle.runEvent('OverrideAction', pokemon, target, baseMove); + if (changedMove && changedMove !== true) { + baseMove = this.dex.getActiveMove(changedMove); + baseMove.priority = priority; + if (pranksterBoosted) baseMove.pranksterBoosted = pranksterBoosted; + target = this.battle.getRandomTarget(pokemon, baseMove); + } + } + let move = baseMove; + if (zMove) { + move = this.getActiveZMove(baseMove, pokemon); + } else if (maxMove) { + move = this.getActiveMaxMove(baseMove, pokemon); + } + + move.isExternal = externalMove; + + this.battle.setActiveMove(move, pokemon, target); + + /* if (pokemon.moveThisTurn) { + // THIS IS PURELY A SANITY CHECK + // DO NOT TAKE ADVANTAGE OF THIS TO PREVENT A POKEMON FROM MOVING; + // USE this.battle.queue.cancelMove INSTEAD + this.battle.debug('' + pokemon.id + ' INCONSISTENT STATE, ALREADY MOVED: ' + pokemon.moveThisTurn); + this.battle.clearActiveMove(true); + return; + } */ + const willTryMove = this.battle.runEvent('BeforeMove', pokemon, target, move); + if (!willTryMove) { + this.battle.runEvent('MoveAborted', pokemon, target, move); + this.battle.clearActiveMove(true); + // The event 'BeforeMove' could have returned false or null + // false indicates that this counts as a move failing for the purpose of calculating Stomping Tantrum's base power + // null indicates the opposite, as the Pokemon didn't have an option to choose anything + pokemon.moveThisTurnResult = willTryMove; + return; + } + if (move.beforeMoveCallback) { + if (move.beforeMoveCallback.call(this.battle, pokemon, target, move)) { + this.battle.clearActiveMove(true); + pokemon.moveThisTurnResult = false; + return; + } + } + pokemon.lastDamage = 0; + let lockedMove; + if (!externalMove) { + lockedMove = this.battle.runEvent('LockMove', pokemon); + if (lockedMove === true) lockedMove = false; + if (!lockedMove) { + if (!pokemon.deductPP(baseMove, null, target) && (move.id !== 'struggle')) { + this.battle.add('cant', pokemon, 'nopp', move); + this.battle.clearActiveMove(true); + pokemon.moveThisTurnResult = false; + return; + } + } else { + sourceEffect = this.dex.conditions.get('lockedmove'); + } + pokemon.moveUsed(move, targetLoc); + } + + // Dancer Petal Dance hack + // TODO: implement properly + const noLock = externalMove && !pokemon.volatiles['lockedmove']; + + if (zMove) { + if (pokemon.illusion) { + this.battle.singleEvent('End', this.dex.abilities.get('Illusion'), pokemon.abilityState, pokemon); + } + this.battle.add('-zpower', pokemon); + // 1 z move per poke + pokemon.m.zMoveUsed = true; + } + + const oldActiveMove = move; + + const moveDidSomething = this.useMove(baseMove, pokemon, {target, sourceEffect, zMove, maxMove}); + this.battle.lastSuccessfulMoveThisTurn = moveDidSomething ? this.battle.activeMove && this.battle.activeMove.id : null; + if (this.battle.activeMove) move = this.battle.activeMove; + this.battle.singleEvent('AfterMove', move, null, pokemon, target, move); + this.battle.runEvent('AfterMove', pokemon, target, move); + + // Dancer's activation order is completely different from any other event, so it's handled separately + if (move.flags['dance'] && moveDidSomething && !move.isExternal) { + const dancers = []; + for (const currentPoke of this.battle.getAllActive()) { + if (pokemon === currentPoke) continue; + if (currentPoke.hasAbility(['dancer', 'virtualidol']) && !currentPoke.isSemiInvulnerable()) { + dancers.push(currentPoke); + } + } + // Dancer activates in order of lowest speed stat to highest + // Note that the speed stat used is after any volatile replacements like Speed Swap, + // but before any multipliers like Agility or Choice Scarf + // Ties go to whichever Pokemon has had the ability for the least amount of time + dancers.sort( + (a, b) => -(b.storedStats['spe'] - a.storedStats['spe']) || b.abilityOrder - a.abilityOrder + ); + const targetOf1stDance = this.battle.activeTarget!; + for (const dancer of dancers) { + if (this.battle.faintMessages()) break; + if (dancer.fainted) continue; + this.battle.add('-activate', dancer, 'ability: ' + dancer.getAbility().name); + const dancersTarget = !targetOf1stDance.isAlly(dancer) && pokemon.isAlly(dancer) ? + targetOf1stDance : + pokemon; + const dancersTargetLoc = dancer.getLocOf(dancersTarget); + this.runMove(move.id, dancer, dancersTargetLoc, {sourceEffect: dancer.getAbility(), externalMove: true}); + } + } + if (noLock && pokemon.volatiles['lockedmove']) delete pokemon.volatiles['lockedmove']; + this.battle.faintMessages(); + this.battle.checkWin(); + + if (this.battle.gen <= 4) { + // In gen 4, the outermost move is considered the last move for Copycat + this.battle.activeMove = oldActiveMove; + } + }, + useMoveInner(moveOrMoveName, pokemon, options) { + let target = options?.target; + let sourceEffect = options?.sourceEffect; + const zMove = options?.zMove; + const maxMove = options?.maxMove; + if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; + if (sourceEffect && ['instruct', 'custapberry'].includes(sourceEffect.id)) sourceEffect = null; + + let move = this.dex.getActiveMove(moveOrMoveName); + pokemon.lastMoveUsed = move; + if (move.id === 'weatherball' && zMove) { + // Z-Weather Ball only changes types if it's used directly, + // not if it's called by Z-Sleep Talk or something. + this.battle.singleEvent('ModifyType', move, null, pokemon, target, move, move); + if (move.type !== 'Normal') sourceEffect = move; + } + if (zMove || (move.category !== 'Status' && sourceEffect && (sourceEffect as ActiveMove).isZ)) { + move = this.getActiveZMove(move, pokemon); + } + if (maxMove && move.category !== 'Status') { + // Max move outcome is dependent on the move type after type modifications from ability and the move itself + this.battle.singleEvent('ModifyType', move, null, pokemon, target, move, move); + this.battle.runEvent('ModifyType', pokemon, target, move, move); + } + if (maxMove || (move.category !== 'Status' && sourceEffect && (sourceEffect as ActiveMove).isMax)) { + move = this.getActiveMaxMove(move, pokemon); + } + + if (this.battle.activeMove) { + move.priority = this.battle.activeMove.priority; + if (!move.hasBounced) move.pranksterBoosted = this.battle.activeMove.pranksterBoosted; + } + const baseTarget = move.target; + let targetRelayVar = {target}; + targetRelayVar = this.battle.runEvent('ModifyTarget', pokemon, target, move, targetRelayVar, true); + if (targetRelayVar.target !== undefined) target = targetRelayVar.target; + if (target === undefined) target = this.battle.getRandomTarget(pokemon, move); + if (move.target === 'self' || move.target === 'allies') { + target = pokemon; + } + if (sourceEffect) { + move.sourceEffect = sourceEffect.id; + move.ignoreAbility = (sourceEffect as ActiveMove).ignoreAbility; + } + let moveResult = false; + + this.battle.setActiveMove(move, pokemon, target); + + this.battle.singleEvent('ModifyType', move, null, pokemon, target, move, move); + this.battle.singleEvent('ModifyMove', move, null, pokemon, target, move, move); + if (baseTarget !== move.target) { + // Target changed in ModifyMove, so we must adjust it here + // Adjust before the next event so the correct target is passed to the + // event + target = this.battle.getRandomTarget(pokemon, move); + } + move = this.battle.runEvent('ModifyType', pokemon, target, move, move); + move = this.battle.runEvent('ModifyMove', pokemon, target, move, move); + if (baseTarget !== move.target) { + // Adjust again + target = this.battle.getRandomTarget(pokemon, move); + } + if (!move || pokemon.fainted) { + return false; + } + + let attrs = ''; + + let movename = move.name; + if (move.id === 'hiddenpower') movename = 'Hidden Power'; + if (sourceEffect) attrs += `|[from]${sourceEffect.fullname}`; + if (zMove && move.isZ === true) { + attrs = '|[anim]' + movename + attrs; + movename = 'Z-' + movename; + } + this.battle.addMove('move', pokemon, movename, target + attrs); + + if (zMove) this.runZPower(move, pokemon); + + if (!target) { + this.battle.attrLastMove('[notarget]'); + this.battle.add(this.battle.gen >= 5 ? '-fail' : '-notarget', pokemon); + return false; + } + + const {targets, pressureTargets} = pokemon.getMoveTargets(move, target); + if (targets.length) { + target = targets[targets.length - 1]; // in case of redirection + } + + // Pursuit Clones support + const pursuitClones = ['pursuit', 'trivialpursuit', 'attackofopportunity']; + const callerMoveForPressure = sourceEffect && (sourceEffect as ActiveMove).pp ? sourceEffect as ActiveMove : null; + if (!sourceEffect || callerMoveForPressure || pursuitClones.includes(sourceEffect.id)) { + let extraPP = 0; + for (const source of pressureTargets) { + const ppDrop = this.battle.runEvent('DeductPP', source, pokemon, move); + if (ppDrop !== true) { + extraPP += ppDrop || 0; + } + } + if (extraPP > 0) { + pokemon.deductPP(callerMoveForPressure || moveOrMoveName, extraPP); + } + } + + if (!this.battle.singleEvent('TryMove', move, null, pokemon, target, move) || + !this.battle.runEvent('TryMove', pokemon, target, move)) { + move.mindBlownRecoil = false; + return false; + } + + this.battle.singleEvent('UseMoveMessage', move, null, pokemon, target, move); + + if (move.ignoreImmunity === undefined) { + move.ignoreImmunity = (move.category === 'Status'); + } + + if (this.battle.gen !== 4 && move.selfdestruct === 'always') { + this.battle.faint(pokemon, pokemon, move); + } + + let damage: number | false | undefined | '' = false; + if (move.target === 'all' || move.target === 'foeSide' || move.target === 'allySide' || move.target === 'allyTeam') { + damage = this.tryMoveHit(targets, pokemon, move); + if (damage === this.battle.NOT_FAIL) pokemon.moveThisTurnResult = null; + if (damage || damage === 0 || damage === undefined) moveResult = true; + } else { + if (!targets.length) { + this.battle.attrLastMove('[notarget]'); + this.battle.add(this.battle.gen >= 5 ? '-fail' : '-notarget', pokemon); + return false; + } + if (this.battle.gen === 4 && move.selfdestruct === 'always') { + this.battle.faint(pokemon, pokemon, move); + } + moveResult = this.trySpreadMoveHit(targets, pokemon, move); + } + if (move.selfBoost && moveResult) this.moveHit(pokemon, pokemon, move, move.selfBoost, false, true); + if (!pokemon.hp) { + this.battle.faint(pokemon, pokemon, move); + } + + if (!moveResult) { + this.battle.singleEvent('MoveFail', move, null, target, pokemon, move); + return false; + } + + if ( + !move.negateSecondary && + !(move.hasSheerForce && pokemon.hasAbility('sheerforce')) && + !move.flags['futuremove'] + ) { + const originalHp = pokemon.hp; + this.battle.singleEvent('AfterMoveSecondarySelf', move, null, pokemon, target, move); + this.battle.runEvent('AfterMoveSecondarySelf', pokemon, target, move); + if (pokemon && pokemon !== target && move.category !== 'Status') { + if (pokemon.hp <= pokemon.maxhp / 2 && originalHp > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon, pokemon); + } + } + } + + return true; + }, + hitStepMoveHitLoop(targets, pokemon, move) { // Temporary name + let damage: (number | boolean | undefined)[] = []; + for (const i of targets.keys()) { + damage[i] = 0; + } + move.totalDamage = 0; + pokemon.lastDamage = 0; + let targetHits = move.multihit || 1; + if (Array.isArray(targetHits)) { + // yes, it's hardcoded... meh + if (targetHits[0] === 2 && targetHits[1] === 5) { + if (this.battle.gen >= 5) { + // 35-35-15-15 out of 100 for 2-3-4-5 hits + targetHits = this.battle.sample([2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5]); + if (targetHits < 4 && pokemon.hasItem('loadeddice')) { + targetHits = 5 - this.battle.random(2); + } + } else { + targetHits = this.battle.sample([2, 2, 2, 3, 3, 3, 4, 5]); + } + } else { + targetHits = this.battle.random(targetHits[0], targetHits[1] + 1); + } + } + if (targetHits === 10 && pokemon.hasItem('loadeddice')) targetHits -= this.battle.random(7); + targetHits = Math.floor(targetHits); + let nullDamage = true; + let moveDamage: (number | boolean | undefined)[] = []; + // There is no need to recursively check the ´sleepUsable´ flag as Sleep Talk can only be used while asleep. + const isSleepUsable = move.sleepUsable || this.dex.moves.get(move.sourceEffect).sleepUsable; + + let targetsCopy: (Pokemon | false | null)[] = targets.slice(0); + let hit: number; + for (hit = 1; hit <= targetHits; hit++) { + if (damage.includes(false)) break; + if (hit > 1 && pokemon.status === 'slp' && (!isSleepUsable || this.battle.gen === 4)) break; + if (targets.every(target => !target?.hp)) break; + move.hit = hit; + if (move.smartTarget && targets.length > 1) { + targetsCopy = [targets[hit - 1]]; + damage = [damage[hit - 1]]; + } else { + targetsCopy = targets.slice(0); + } + const target = targetsCopy[0]; // some relevant-to-single-target-moves-only things are hardcoded + if (target && typeof move.smartTarget === 'boolean') { + if (hit > 1) { + this.battle.addMove('-anim', pokemon, move.name, target); + } else { + this.battle.retargetLastMove(target); + } + } + + // like this (Triple Kick) + if (target && move.multiaccuracy && hit > 1) { + let accuracy = move.accuracy; + const boostTable = [1, 4 / 3, 5 / 3, 2, 7 / 3, 8 / 3, 3]; + if (accuracy !== true) { + if (!move.ignoreAccuracy) { + const boosts = this.battle.runEvent('ModifyBoost', pokemon, null, null, {...pokemon.boosts}); + const boost = this.battle.clampIntRange(boosts['accuracy'], -6, 6); + if (boost > 0) { + accuracy *= boostTable[boost]; + } else { + accuracy /= boostTable[-boost]; + } + } + if (!move.ignoreEvasion) { + const boosts = this.battle.runEvent('ModifyBoost', target, null, null, {...target.boosts}); + const boost = this.battle.clampIntRange(boosts['evasion'], -6, 6); + if (boost > 0) { + accuracy /= boostTable[boost]; + } else if (boost < 0) { + accuracy *= boostTable[-boost]; + } + } + } + accuracy = this.battle.runEvent('ModifyAccuracy', target, pokemon, move, accuracy); + if (!move.alwaysHit) { + accuracy = this.battle.runEvent('Accuracy', target, pokemon, move, accuracy); + if (accuracy !== true && !this.battle.randomChance(accuracy, 100)) break; + } + } + + const moveData = move; + if (!moveData.flags) moveData.flags = {}; + + let moveDamageThisHit; + // Modifies targetsCopy (which is why it's a copy) + [moveDamageThisHit, targetsCopy] = this.spreadMoveHit(targetsCopy, pokemon, move, moveData); + // When Dragon Darts targets two different pokemon, targetsCopy is a length 1 array each hit + // so spreadMoveHit returns a length 1 damage array + if (move.smartTarget) { + moveDamage.push(...moveDamageThisHit); + } else { + moveDamage = moveDamageThisHit; + } + + if (!moveDamage.some(val => val !== false)) break; + nullDamage = false; + + for (const [i, md] of moveDamage.entries()) { + if (move.smartTarget && i !== hit - 1) continue; + // Damage from each hit is individually counted for the + // purposes of Counter, Metal Burst, and Mirror Coat. + damage[i] = md === true || !md ? 0 : md; + // Total damage dealt is accumulated for the purposes of recoil (Parental Bond). + move.totalDamage += damage[i] as number; + } + if (move.mindBlownRecoil) { + const hpBeforeRecoil = pokemon.hp; + this.battle.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get(move.id), true); + move.mindBlownRecoil = false; + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon, pokemon); + } + } + this.battle.eachEvent('Update'); + if (!pokemon.hp && targets.length === 1) { + hit++; // report the correct number of hits for multihit moves + break; + } + } + // hit is 1 higher than the actual hit count + if (hit === 1) return damage.fill(false); + if (nullDamage) damage.fill(false); + this.battle.faintMessages(false, false, !pokemon.hp); + if (move.multihit && typeof move.smartTarget !== 'boolean') { + this.battle.add('-hitcount', targets[0], hit - 1); + } + + if ((move.recoil || move.id === 'chloroblast') && move.totalDamage) { + const hpBeforeRecoil = pokemon.hp; + this.battle.damage(this.calcRecoilDamage(move.totalDamage, move, pokemon), pokemon, pokemon, 'recoil'); + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon, pokemon); + } + } + + if (move.struggleRecoil) { + const hpBeforeRecoil = pokemon.hp; + let recoilDamage; + if (this.dex.gen >= 5) { + recoilDamage = this.battle.clampIntRange(Math.round(pokemon.baseMaxhp / 4), 1); + } else { + recoilDamage = this.battle.clampIntRange(this.battle.trunc(pokemon.maxhp / 4), 1); + } + this.battle.directDamage(recoilDamage, pokemon, pokemon, {id: 'strugglerecoil'} as Condition); + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon, pokemon); + } + } + + // smartTarget messes up targetsCopy, but smartTarget should in theory ensure that targets will never fail, anyway + if (move.smartTarget) { + targetsCopy = targets.slice(0); + } + + for (const [i, target] of targetsCopy.entries()) { + if (target && pokemon !== target) { + target.gotAttacked(move, moveDamage[i] as number | false | undefined, pokemon); + if (typeof moveDamage[i] === 'number') { + target.timesAttacked += move.smartTarget ? 1 : hit - 1; + } + } + } + + if (move.ohko && !targets[0].hp) this.battle.add('-ohko'); + + if (!damage.some(val => !!val || val === 0)) return damage; + + this.battle.eachEvent('Update'); + + this.afterMoveSecondaryEvent(targetsCopy.filter(val => !!val) as Pokemon[], pokemon, move); + + if (!move.negateSecondary && !(move.hasSheerForce && pokemon.hasAbility('sheerforce'))) { + for (const [i, d] of damage.entries()) { + // There are no multihit spread moves, so it's safe to use move.totalDamage for multihit moves + // The previous check was for `move.multihit`, but that fails for Dragon Darts + const curDamage = targets.length === 1 ? move.totalDamage : d; + if (typeof curDamage === 'number' && targets[i].hp) { + const targetHPBeforeDamage = (targets[i].hurtThisTurn || 0) + curDamage; + if (targets[i].hp <= targets[i].maxhp / 2 && targetHPBeforeDamage > targets[i].maxhp / 2) { + this.battle.runEvent('EmergencyExit', targets[i], pokemon); + } + } + } + } + + return damage; + }, + hitStepTryImmunity(targets, pokemon, move) { + const hitResults = []; + for (const [i, target] of targets.entries()) { + if (this.battle.gen >= 6 && move.flags['powder'] && target !== pokemon && !this.dex.getImmunity('powder', target)) { + this.battle.debug('natural powder immunity'); + this.battle.add('-immune', target); + hitResults[i] = false; + } else if (!this.battle.singleEvent('TryImmunity', move, {}, target, pokemon, move)) { + this.battle.add('-immune', target); + hitResults[i] = false; + } else if (this.battle.gen >= 7 && move.pranksterBoosted && + // Prankster Clone immunity + (pokemon.hasAbility('prankster') || pokemon.hasAbility('youkaiofthedusk') || + pokemon.volatiles['irpachuza'] || pokemon.hasAbility('neverendingfhunt')) && + !targets[i].isAlly(pokemon) && !this.dex.getImmunity('prankster', target)) { + this.battle.debug('natural prankster immunity'); + if (!target.illusion) this.battle.hint("Since gen 7, Dark is immune to Prankster moves."); + this.battle.add('-immune', target); + hitResults[i] = false; + } else { + hitResults[i] = true; + } + } + return hitResults; + }, + spreadMoveHit(targets, pokemon, moveOrMoveName, hitEffect, isSecondary, isSelf) { + // Hardcoded for single-target purposes + // (no spread moves have any kind of onTryHit handler) + const target = targets[0]; + let damage: (number | boolean | undefined)[] = []; + for (const i of targets.keys()) { + damage[i] = true; + } + const move = this.dex.getActiveMove(moveOrMoveName); + let hitResult: boolean | number | null = true; + let moveData = hitEffect as ActiveMove; + if (!moveData) moveData = move; + if (!moveData.flags) moveData.flags = {}; + if (move.target === 'all' && !isSelf) { + hitResult = this.battle.singleEvent('TryHitField', moveData, {}, target || null, pokemon, move); + } else if ((move.target === 'foeSide' || move.target === 'allySide' || move.target === 'allyTeam') && !isSelf) { + hitResult = this.battle.singleEvent('TryHitSide', moveData, {}, target || null, pokemon, move); + } else if (target) { + hitResult = this.battle.singleEvent('TryHit', moveData, {}, target, pokemon, move); + } + if (!hitResult) { + if (hitResult === false) { + this.battle.add('-fail', pokemon); + this.battle.attrLastMove('[still]'); + } + return [[false], targets]; // single-target only + } + + // 0. check for substitute + if (!isSecondary && !isSelf) { + if (move.target !== 'all' && move.target !== 'allyTeam' && move.target !== 'allySide' && move.target !== 'foeSide') { + damage = this.tryPrimaryHitEvent(damage, targets, pokemon, move, moveData, isSecondary); + } + } + + for (const i of targets.keys()) { + if (damage[i] === this.battle.HIT_SUBSTITUTE) { + damage[i] = true; + targets[i] = null; + } + if (targets[i] && isSecondary && !moveData.self) { + damage[i] = true; + } + if (!damage[i]) targets[i] = false; + } + // 1. call to this.battle.getDamage + damage = this.getSpreadDamage(damage, targets, pokemon, move, moveData, isSecondary, isSelf); + + for (const i of targets.keys()) { + if (damage[i] === false) targets[i] = false; + } + + // 2. call to this.battle.spreadDamage + damage = this.battle.spreadDamage(damage, targets, pokemon, move); + + for (const i of targets.keys()) { + if (damage[i] === false) targets[i] = false; + } + + // 3. onHit event happens here + damage = this.runMoveEffects(damage, targets, pokemon, move, moveData, isSecondary, isSelf); + + for (const i of targets.keys()) { + if (!damage[i] && damage[i] !== 0) targets[i] = false; + } + + // steps 4 and 5 can mess with this.battle.activeTarget, which needs to be preserved for Dancer + const activeTarget = this.battle.activeTarget; + + // 4. self drops (start checking for targets[i] === false here) + if (moveData.self && !move.selfDropped) this.selfDrops(targets, pokemon, move, moveData, isSecondary); + + // 5. secondary effects + if (moveData.secondaries) this.secondaries(targets, pokemon, move, moveData, isSelf); + + this.battle.activeTarget = activeTarget; + + // 6. force switch + if (moveData.forceSwitch) damage = this.forceSwitch(damage, targets, pokemon, move); + + for (const i of targets.keys()) { + if (!damage[i] && damage[i] !== 0) targets[i] = false; + } + + const damagedTargets: Pokemon[] = []; + const damagedDamage = []; + for (const [i, t] of targets.entries()) { + if (typeof damage[i] === 'number' && t) { + damagedTargets.push(t); + damagedDamage.push(damage[i]); + } + } + const pokemonOriginalHP = pokemon.hp; + if (damagedDamage.length && !isSecondary && !isSelf) { + this.battle.runEvent('DamagingHit', damagedTargets, pokemon, move, damagedDamage); + if (moveData.onAfterHit) { + for (const t of damagedTargets) { + this.battle.singleEvent('AfterHit', moveData, {}, t, pokemon, move); + } + } + if (pokemon.hp && pokemon.hp <= pokemon.maxhp / 2 && pokemonOriginalHP > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon); + } + } + + return [damage, targets]; + }, + }, + pokemon: { + isGrounded(negateImmunity) { + if ('gravity' in this.battle.field.pseudoWeather) return true; + if ('ingrain' in this.volatiles && this.battle.gen >= 4) return true; + if ('smackdown' in this.volatiles) return true; + const item = (this.ignoringItem() ? '' : this.item); + if (item === 'ironball') return true; + // If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded. + if (!negateImmunity && this.hasType('Flying') && !(this.hasType('???') && 'roost' in this.volatiles)) return false; + if (this.hasAbility('levitate') && !this.battle.suppressingAbility(this)) return null; + if ('magnetrise' in this.volatiles) return false; + if ('riseabove' in this.volatiles) return false; + if ('telekinesis' in this.volatiles) return false; + return item !== 'airballoon'; + }, + effectiveWeather() { + const weather = this.battle.field.effectiveWeather(); + switch (weather) { + case 'sunnyday': + case 'raindance': + case 'desolateland': + case 'primordialsea': + case 'stormsurge': + if (this.hasItem('utilityumbrella')) return ''; + } + return weather; + }, + getMoveTargets(move, target) { + let targets: Pokemon[] = []; + + switch (move.target) { + case 'all': + case 'foeSide': + case 'allySide': + case 'allyTeam': + if (!move.target.startsWith('foe')) { + targets.push(...this.alliesAndSelf()); + } + if (!move.target.startsWith('ally')) { + targets.push(...this.foes(true)); + } + if (targets.length && !targets.includes(target)) { + this.battle.retargetLastMove(targets[targets.length - 1]); + } + break; + case 'allAdjacent': + targets.push(...this.adjacentAllies()); + // falls through + case 'allAdjacentFoes': + targets.push(...this.adjacentFoes()); + if (targets.length && !targets.includes(target)) { + this.battle.retargetLastMove(targets[targets.length - 1]); + } + break; + case 'allies': + targets = this.alliesAndSelf(); + break; + default: + const selectedTarget = target; + if (!target || (target.fainted && !target.isAlly(this)) && this.battle.gameType !== 'freeforall') { + // If a targeted foe faints, the move is retargeted + const possibleTarget = this.battle.getRandomTarget(this, move); + if (!possibleTarget) return {targets: [], pressureTargets: []}; + target = possibleTarget; + } + if (this.battle.activePerHalf > 1 && !move.tracksTarget) { + const isCharging = move.flags['charge'] && !this.volatiles['twoturnmove'] && + !(move.id.startsWith('solarb') && ['sunnyday', 'desolateland'].includes(this.effectiveWeather())) && + !(move.id === 'fruitfullongbow' && ['sunnyday', 'desolateland'].includes(this.effectiveWeather())) && + !(move.id === 'praisethemoon' && this.battle.field.getPseudoWeather('gravity')) && + !(move.id === 'electroshot' && ['stormsurge', 'raindance', 'primordialsea'].includes(this.effectiveWeather())) && + !(this.hasItem('powerherb') && move.id !== 'skydrop'); + if (!isCharging) { + target = this.battle.priorityEvent('RedirectTarget', this, this, move, target); + } + } + if (move.smartTarget) { + targets = this.getSmartTargets(target, move); + target = targets[0]; + } else { + targets.push(target); + } + if (target.fainted && !move.flags['futuremove']) { + return {targets: [], pressureTargets: []}; + } + if (selectedTarget !== target) { + this.battle.retargetLastMove(target); + } + } + + // Resolve apparent targets for Pressure. + let pressureTargets = targets; + if (move.target === 'foeSide') { + pressureTargets = []; + } + if (move.flags['mustpressure']) { + pressureTargets = this.foes(); + } + + return {targets, pressureTargets}; + }, + }, + side: { + getChoice() { + if (this.choice.actions.length > 1 && this.choice.actions.every(action => action.choice === 'team')) { + return `team ` + this.choice.actions.map(action => action.pokemon!.position + 1).join(', '); + } + return this.choice.actions.map(action => { + switch (action.choice) { + case 'move': + let details = ``; + if (action.targetLoc && this.active.length > 1) details += ` ${action.targetLoc > 0 ? '+' : ''}${action.targetLoc}`; + if (action.mega) details += (action.pokemon!.item === 'ultranecroziumz' ? ` ultra` : ` mega`); + if (action.zmove) details += ` zmove`; + if (action.maxMove) details += ` dynamax`; + if (action.terastallize) details += ` terastallize`; + return `move ${action.moveid}${details}`; + case 'switch': + case 'instaswitch': + case 'revivalblessing': + // @ts-ignore custom status falls through + case 'scapegoat': + return `switch ${action.target!.position + 1}`; + case 'team': + return `team ${action.pokemon!.position + 1}`; + default: + return action.choice; + } + }).join(', '); + }, + + chooseSwitch(slotText) { + if (this.requestState !== 'move' && this.requestState !== 'switch') { + return this.emitChoiceError(`Can't switch: You need a ${this.requestState} response`); + } + const index = this.getChoiceIndex(); + if (index >= this.active.length) { + if (this.requestState === 'switch') { + return this.emitChoiceError(`Can't switch: You sent more switches than Pokémon that need to switch`); + } + return this.emitChoiceError(`Can't switch: You sent more choices than unfainted Pokémon`); + } + const pokemon = this.active[index]; + let slot; + if (!slotText) { + if (this.requestState !== 'switch') { + return this.emitChoiceError(`Can't switch: You need to select a Pokémon to switch in`); + } + if (this.slotConditions[pokemon.position]['revivalblessing']) { + slot = 0; + while (!this.pokemon[slot].fainted) slot++; + } else { + if (!this.choice.forcedSwitchesLeft) return this.choosePass(); + slot = this.active.length; + while (this.choice.switchIns.has(slot) || this.pokemon[slot].fainted) slot++; + } + } else { + slot = parseInt(slotText) - 1; + } + if (isNaN(slot) || slot < 0) { + // maybe it's a name/species id! + slot = -1; + for (const [i, mon] of this.pokemon.entries()) { + if (slotText!.toLowerCase() === mon.name.toLowerCase() || toID(slotText) === mon.species.id) { + slot = i; + break; + } + } + if (slot < 0) { + return this.emitChoiceError(`Can't switch: You do not have a Pokémon named "${slotText}" to switch to`); + } + } + if (slot >= this.pokemon.length) { + return this.emitChoiceError(`Can't switch: You do not have a Pokémon in slot ${slot + 1} to switch to`); + } else if (slot < this.active.length && !this.slotConditions[pokemon.position]['revivalblessing']) { + return this.emitChoiceError(`Can't switch: You can't switch to an active Pokémon`); + } else if (this.choice.switchIns.has(slot)) { + return this.emitChoiceError(`Can't switch: The Pokémon in slot ${slot + 1} can only switch in once`); + } + const targetPokemon = this.pokemon[slot]; + + if (this.slotConditions[pokemon.position]['revivalblessing']) { + if (!targetPokemon.fainted) { + return this.emitChoiceError(`Can't switch: You have to pass to a fainted Pokémon`); + } + // Should always subtract, but stop at 0 to prevent errors. + this.choice.forcedSwitchesLeft = this.battle.clampIntRange(this.choice.forcedSwitchesLeft - 1, 0); + pokemon.switchFlag = false; + this.choice.actions.push({ + choice: 'revivalblessing', + pokemon, + target: targetPokemon, + } as ChosenAction); + return true; + } + + if (targetPokemon.fainted) { + return this.emitChoiceError(`Can't switch: You can't switch to a fainted Pokémon`); + } + + if (this.slotConditions[pokemon.position]['scapegoat']) { + // Should always subtract, but stop at 0 to prevent errors. + this.choice.forcedSwitchesLeft = this.battle.clampIntRange(this.choice.forcedSwitchesLeft - 1, 0); + pokemon.switchFlag = false; + // @ts-ignore custom request + this.choice.actions.push({ + choice: 'scapegoat', + pokemon, + target: targetPokemon, + } as ChosenAction); + return true; + } + + if (this.requestState === 'move') { + if (pokemon.trapped) { + const includeRequest = this.updateRequestForPokemon(pokemon, req => { + let updated = false; + if (req.maybeTrapped) { + delete req.maybeTrapped; + updated = true; + } + if (!req.trapped) { + req.trapped = true; + updated = true; + } + return updated; + }); + const status = this.emitChoiceError(`Can't switch: The active Pokémon is trapped`, includeRequest); + if (includeRequest) this.emitRequest(this.activeRequest!); + return status; + } else if (pokemon.maybeTrapped) { + this.choice.cantUndo = this.choice.cantUndo || pokemon.isLastActive(); + } + } else if (this.requestState === 'switch') { + if (!this.choice.forcedSwitchesLeft) { + throw new Error(`Player somehow switched too many Pokemon`); + } + this.choice.forcedSwitchesLeft--; + } + + this.choice.switchIns.add(slot); + + this.choice.actions.push({ + choice: (this.requestState === 'switch' ? 'instaswitch' : 'switch'), + pokemon, + target: targetPokemon, + } as ChosenAction); + + return true; + }, + }, + queue: { + resolveAction(action, midTurn) { + if (!action) throw new Error(`Action not passed to resolveAction`); + if (action.choice === 'pass') return []; + const actions = [action]; + + if (!action.side && action.pokemon) action.side = action.pokemon.side; + if (!action.move && action.moveid) action.move = this.battle.dex.getActiveMove(action.moveid); + if (!action.order) { + const orders: {[choice: string]: number} = { + team: 1, + start: 2, + instaswitch: 3, + beforeTurn: 4, + beforeTurnMove: 5, + revivalblessing: 6, + scapegoat: 7, + + runUnnerve: 100, + runSwitch: 101, + runPrimal: 102, + switch: 103, + megaEvo: 104, + runDynamax: 105, + terastallize: 106, + priorityChargeMove: 107, + + shift: 200, + // default is 200 (for moves) + + residual: 300, + }; + if (action.choice in orders) { + action.order = orders[action.choice]; + } else { + action.order = 200; + if (!['move', 'event'].includes(action.choice)) { + throw new Error(`Unexpected orderless action ${action.choice}`); + } + } + } + if (!midTurn) { + if (action.choice === 'move') { + if (!action.maxMove && !action.zmove && action.move.beforeTurnCallback) { + actions.unshift(...this.resolveAction({ + choice: 'beforeTurnMove', pokemon: action.pokemon, move: action.move, targetLoc: action.targetLoc, + })); + } + if (action.mega && !action.pokemon.isSkyDropped()) { + actions.unshift(...this.resolveAction({ + choice: 'megaEvo', + pokemon: action.pokemon, + })); + } + if (action.terastallize && !action.pokemon.terastallized) { + actions.unshift(...this.resolveAction({ + choice: 'terastallize', + pokemon: action.pokemon, + })); + } + if (action.maxMove && !action.pokemon.volatiles['dynamax']) { + actions.unshift(...this.resolveAction({ + choice: 'runDynamax', + pokemon: action.pokemon, + })); + } + if (!action.maxMove && !action.zmove && action.move.priorityChargeCallback) { + actions.unshift(...this.resolveAction({ + choice: 'priorityChargeMove', + pokemon: action.pokemon, + move: action.move, + })); + } + action.fractionalPriority = this.battle.runEvent('FractionalPriority', action.pokemon, null, action.move, 0); + } else if (['switch', 'instaswitch'].includes(action.choice)) { + if (typeof action.pokemon.switchFlag === 'string') { + action.sourceEffect = this.battle.dex.moves.get(action.pokemon.switchFlag as ID) as any; + } + action.pokemon.switchFlag = false; + } + } + + const deferPriority = this.battle.gen === 7 && action.mega && action.mega !== 'done'; + if (action.move) { + let target = null; + action.move = this.battle.dex.getActiveMove(action.move); + + if (!action.targetLoc) { + target = this.battle.getRandomTarget(action.pokemon, action.move); + // TODO: what actually happens here? + if (target) action.targetLoc = action.pokemon.getLocOf(target); + } + action.originalTarget = action.pokemon.getAtLoc(action.targetLoc); + } + if (!deferPriority) this.battle.getActionSpeed(action); + return actions as any; + }, + }, +}; diff --git a/data/mods/gen9ssb/typechart.ts b/data/mods/gen9ssb/typechart.ts new file mode 100644 index 000000000000..490d656b5e5e --- /dev/null +++ b/data/mods/gen9ssb/typechart.ts @@ -0,0 +1,82 @@ +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { + ground: { + inherit: true, + damageTaken: { + sandstorm: 3, + deserteddunes: 3, + Bug: 0, + Dark: 0, + Dragon: 0, + Electric: 3, + Fairy: 0, + Fighting: 0, + Fire: 0, + Flying: 0, + Ghost: 0, + Grass: 1, + Ground: 0, + Ice: 1, + Normal: 0, + Poison: 2, + Psychic: 0, + Rock: 2, + Steel: 0, + Stellar: 0, + Water: 1, + }, + }, + rock: { + inherit: true, + damageTaken: { + sandstorm: 3, + deserteddunes: 3, + Bug: 0, + Dark: 0, + Dragon: 0, + Electric: 0, + Fairy: 0, + Fighting: 1, + Fire: 2, + Flying: 2, + Ghost: 0, + Grass: 1, + Ground: 1, + Ice: 0, + Normal: 2, + Poison: 2, + Psychic: 0, + Rock: 0, + Steel: 1, + Stellar: 0, + Water: 1, + }, + }, + steel: { + inherit: true, + damageTaken: { + psn: 3, + tox: 3, + sandstorm: 3, + deserteddunes: 3, + Bug: 2, + Dark: 0, + Dragon: 2, + Electric: 0, + Fairy: 2, + Fighting: 1, + Fire: 1, + Flying: 2, + Ghost: 0, + Grass: 2, + Ground: 1, + Ice: 2, + Normal: 2, + Poison: 3, + Psychic: 2, + Rock: 2, + Steel: 2, + Stellar: 0, + Water: 0, + }, + }, +}; diff --git a/data/mods/gennext/README.md b/data/mods/gennext/README.md deleted file mode 100644 index 4403733a35ee..000000000000 --- a/data/mods/gennext/README.md +++ /dev/null @@ -1,535 +0,0 @@ -Generation NEXT! -======================================================================== - -Instructions ------------------------------------------------------------------------- - -Gen-NEXT hasn't been updated in a very long time, but is still playable by -using the `/challenge gen6nextou` command in a PM chat box. - -Manifesto ------------------------------------------------------------------------- - -The goal of NEXT is to improve the diversity of the OU metagame by only doing -things that could plausibly be done between gens. - -Specifically, the core rules of NEXT are: - -1. no base stat changes -2. no removing from movepools -3. no removing from ability distribution -4. no typing changes (except on formes) -5. no buffing OU mons, except maybe tiny buffs to mons at the bottom of OU -6. no doing things that make zero sense flavor-wise - -What's left is mainly changes to how abilities and moves work, which is -most of what NEXT is about. - -A good example is what Game Freak did by giving Ditto the Imposter ability. -This gave a Ditto a role in OU, while still making sense flavor-wise, and -without removing anything it used to have. - -A good example of what NEXT changes is Cherrim. We have taken an interesting -idea (ability designed for Sunny Day support) and made it viable in OU. - -This approach is in sharp contrast to many mods that do change many things on -NEXT's "don't change" list. The result is a metagame that feels a lot like -a new generation: existing OU threats stay mostly the same, but many new -threats and strategies are introduced. - -And yes, we know that "no base stat changes" has been broken in Gen 6. We're -still not doing it, because it's hard to constrain and hard to keep track of. - -Recent changes ------------------------------------------------------------------------- - -A changelog for NEXT is available here: - -https://github.com/smogon/pokemon-showdown/commits/master/data/mods/gennext - -Changes ------------------------------------------------------------------------- - -Generation NEXT currently makes the following changes: - -Major changes: - -- Stealth Rock now does 1/4 damage against Flying-types, and 1/8 damage against - everything else. - -- Drives will change Genesect's typing immediately after switch-in, to Bug/Ice, - Bug/Fire, Bug/Electric, or Bug/Water. However, Download will not activate for - Genesect unless it holds a Drive. - -- Unown gets an item named Strange Orb (select "Stick" in the teambuilder) - It doubles its SpA, SpD, and Spe, and changes its type to the type of its - Hidden Power. - -- Weather moves, such as Sunny Day, Rain Dance, Hail, and Sandstorm have +1 - Priority. - -- Forecast will make weather moves last forever. Cherrim will make Sunny Day - last forever. Phione will make Rain Dance last forever. Cryogonal will make - Hail last forever. Probopass will make Sandstorm last forever. - -- Hail is improved: - - Silver Wind, Ominous Wind, and Avalanche deal 1.5x damage in Hail - - Snow Cloak no longer modifies evasion, but instead decreases damage by 25% - in Hail (and 12.5% out of Hail) - - Ice Body has 30% chance of freezing a contact move (and grants passive - healing out of Hail, too) - - Thick Fat, Marvel Scale, and Flame Body grant immunity to Hail damage - -- Freezing doesn't have a 20% thaw chance. Instead, thawing happens at the end - of the second turn. Because this new freeze effect is a nerf, Blizzard now - has a 30% chance of inflicting freeze. - -- Swift Swim, Chlorophyll, and Sand Rush are nerfed to give a 1.5x speed buff instead. - -- Every Hidden Ability is released. - -- Moves with a charge turn are now a lot more powerful. They remove Protect and - Substitute before hitting, they always crit (although their base power has - been adjusted accordingly), they have perfect accuracy, and one other change - depending on the move: - - SolarBeam: heal 50% on the charge turn, 80 bp - - Razor Wind: 100% confusion, 60 bp - - Skull Bash: +1 Def, +1 SpD, +1 accuracy on the charge turn, 70 bp - - Sky Attack: 100% -1 Def, 95 bp - - Freeze Shock: 100% paralysis, 95 bp - - Ice Burn: 100% burn, 95 bp - - Bounce: 30% paralysis, 60 bp - - Fly: 100% -1 Def, 60 bp - - Dig: 100% -1 Def, 60 bp - - Dive: 100% -1 Def, 60 bp - - Shadow Force: 100% Ghost-Curse, 40 bp - - Sky Drop: 100% -1 Def, 60 bp - - Phantom Force: 100% -1 Def, 60 bp - -- Recharge moves are similarly buffed. They have 100 base power, always crit, - and they only recharge if they KO. Be careful - in return for a KO, they - still give the foe a free switch-in _and_ a turn to set up. - -- Flower Gift now only boosts Sp. Def, but if Sunny Day is used while Cherrim - is out, the next switch-in also receives +1 SpD - -- All Quiver Dancers (except Smeargle) get an item named Gossamer Wing (Select - "Stick" in the teambuilder). It makes them take half damage from Rock, Ice, - and Electric moves if they are Flying type, prevents them from taking - double SR damage, heals 1/16 after using a Status move, and makes Twister - do 1.5x Damage. - -- Swarm also makes the user take half damage from Rock, Ice, Electric moves, - and Stealth Rock if they are Flying type. - -- Relic Song switches Meloetta's SpA and Atk EVs, boosts, and certain natures, - specifically: Modest <-> Adamant, Jolly <-> Timid, other natures are left - untouched. It's now 60 base power +1 priority, with no secondary. - -- Shuckle gets Berry Shell (select "Stick" in the teambuilder), which gives a - 50% boost to Defense and Sp. Def. - -- Ambipom, Spinda, and Mr. Mime get Sketch as an egg move, allowing it to use - exactly one move not normally in its learnset. - -- Spinda gets V-Create, Superpower, Close Combat, Overheat, Leaf Storm, Draco - Meteor. - -- Echoed Voice now has 80 base power, hits once, and then, 2 turns later, - hits again for 80 base power. It's like Doom Desire, except it still hits - that first time. - -- Confusion now deals 30 base power damage every attack, but does not stop - the attack. It now lasts 3-5 turns. - -- Parental Bond now deals half damage on both hits, but confers perfect - accuracy like all multi-hit moves. - -- Life Orb now behaves much more consistently as normal recoil. Reckless - will boost every move if Life Orb is held, and Rock Head will negate Life - Orb recoil. - -- Twister is now a 80 base power Flying move with a 30% confusion chance - -- Floette-Eternal-Flower is released. - -New mechanic: Signature Pokémon: - -- Certain moves have a Signature Pokémon associated with them. A move will - deal 1.5x its usual damage when used by its Signature Pokémon. Some of these - moves also receive other changes that apply to all Pokémon using the move - - those changes are listed in parentheses. - - - Flareon: Fire Fang (20% burn, 30% flinch, 100% accuracy) - - - Walrein: Ice Fang (20% freeze, 30% flinch, 100% accuracy) - - - Luxray: Thunder Fang (20% paralysis, 30% flinch, 100% accuracy) - - - Drapion: Poison Fang (65 base power, 100% toxic poison, 30% flinch) - - - Seviper: Poison Tail (60 base power, 60% toxic poison) - - - Muk: Sludge (60 base power, 100% poison) - - - Weezing: Smog (75 base power, 100% poison, 100% accuracy) - - - Rapidash: Flame Charge (60 base power) - - - Darmanitan: Flame Wheel - - - Eelektross: Spark - - - Hitmontop: Triple Kick - - - Kingdra: BubbleBeam (30% -1 Spe) - - - Galvantula: Electroweb (60 base power, 100% accuracy) - - - Skarmory: Steel Wing (60 base power, 100% accuracy, 50% +1 Def) - - - Beautifly: Giga Drain - - - Glaceon: Icy Wind (60 base power, 100% accuracy) - - - Swampert: Mud Shot (60 base power, 100% accuracy) - - - Kyurem: Glaciate (80 base power, 100% accuracy) - - - Octillery: Octazooka (75 base power, 90% accuracy, 100% -1 accuracy) - - - Serperior: Leaf Tornado (75 base power, 90% accuracy, 100% -1 accuracy) - - - Weavile: Ice Shard - - - Sharpedo: Aqua Jet - - - Hitmonchan: Mach Punch - - - Banette: Shadow Sneak - - - Masquerain: Surf (10% -1 Spe) - - - Snorlax: Snore (100 base power) - - - Persian: Slash (60 base power 30% -1 Def) - -- Again, note that while the Signature Pokémon will get the 1.5x damage boost, - all Pokémon will get the other changes to the move listed above. - -New mechanic: Intrinsics: - -- Pokémon that previously get Levitate are now immune to Ground intrinsically, although - Mold Breaker still bypasses this immunity. Instead, many of them get new abilities - in addition to their Ground immunity: - - - Azelf: Steadfast - - - Bronzong: Heatproof - - - Claydol: Filter - - - Cryogonal: Ice Body - - - Eelektross: Poison Heal - - - Flygon: Compoundeyes, Sand Rush - - - Hydreigon: Sheer Force - - - Mesprit: Serene Grace - - - Mismagius: Cursed Body - - - Rotom (all formes): Trace - - - Unown: Shadow Tag - - - Uxie: Synchronize - - - Weezing: Aftermath - -New: Type-specific items: - -- Big Root: also acts like Leftovers + Shell Bell for Grass types - -- Black Sludge: heals 1/8 per turn for pure Poison types - -- Focus Band: breaks on first hit, but allows pure Fighting types to survive - that hit with 1 HP (so basically it'd be a Focus sash that stays intact - after residual damage); does nothing for other Pokémon - -- Wise Glasses: 1.2x Special damage for pure Psychic types - -- Muscle Band: 1.2x Physical damage for pure Fighting types - -Minor move changes: - -- Parabolic Charge now has 40 base power, but gives -1 SpA, -1 SpD to the - target and +1 SpA, +1 SpD to the user - -- Draining Kiss now has 40 base power, but gives -1 SpA, -1 Atk to the - target and +1 SpA, +1 Atk to the user - -- Defend Order and Heal Order now have +1 priority - -- Rock Throw now removes Stealth Rock from the user's side of the field, - and has 100% accuracy - -- Rapid Spin now has 30 base power - -- Rock Throw and Rapid Spin remove hazards before fainting from Rocky - Helmet etc. And double in power if they remove hazards. - -- All moves' accuracy is rounded up to the nearest multiple of 10% - (including Jump Kick) - -- Charge Beam and Rock Slide are now 100% accurate - -- Blue Flare has 30% burn chance, Fire Blast has 20% burn chance and is - 80% accurate - -- Focus Blast has 30% accuracy (use HP Fighting unless you have No Guard) - -- Close Combat has been nerfed: it now gives -2 Def, -2 SpD - -- Moves that were originally perfect accuracy have their base power increased - to 90 (this includes Aerial Ace, Disarming Voice, and Aura Sphere, among - others) - -- Scald and Steam Eruption's damage is no longer affected by weather: - instead, they get 60% burn chance in sun - -- High Jump Kick now has 100 base power - -- Shadow Ball now has 90 base power and 30% -SpD - -- Multi-hit moves are now all perfect-accuracy - -- Silver Wind, Ominous Wind, and AncientPower have a 100% chance of raising - one of Def/SpA/SpD/Spe at random, rather than a 10% chance of raising every - stat - -- Twineedle has a new base power of 50 - -- Tri Attack now hits 3 times and has a base power of 30 - -- Strength now has a 30% chance of raising user's Atk - -- Cut and Rock Smash are 50 base power and now have a 100% chance of - lowering foe's Def - -- Psycho Cut's Base Power is now 90 - -- Drill Peck, Needle Arm, Attack Order, and Leaf Blade's Base - Powers are now 100 - -- Stomp and Steamroller now have 100 Base Power and perfect accuracy to - reflect their thematic status as counters to Minimize - -- Bide is now a +1 priority move that gives the user Endure (the user - survives all move damage with at least 1 HP) for its duration. Bide fails - if the user has 1 HP when it's used, or if the user's last move used was - Bide. - -- Withdraw gives +1 SpD as well as +1 Def - -- Muddy Water is now 85 base power and 100% accurate - -- Leech Life is now 75 base power - -- Sound-based moves are no longer affected by immunities (ghosts can hear - things) - -- Bonemerang, Bone Club and Bone Rush are no longer affected by immunities - (you can throw a bone to hit birds), Bone Rush nerfed to 20 base power - since it should never be viable - -- Wing Attack and Power Gem are now like Dual Chop: 40 base power, 2-hit - -- Autotomize now gives +3 Speed - -- Zoroark gets a significantly wider movepool. It now learns: Ice Beam, Giga - Drain, Earthquake, Stone Edge, Superpower, X-Scissor - -- If Illusion is active, Night Daze now displays as a random non-Status move - in the copied Pokémon's moveset - -- Selfdestruct and Explosion are now 200 and 250 base power autocrit moves, - respectively, and they are both perfect-accuracy - -- Acid and Acid Spray aren't affected by immunities - -- Protect does not protect Substitutes (with passive healing being more - common, Sub/Protect stalling could be overpowered) and Substitutes increase - accuracy against them to 100% - -- Dizzy Punch is 90 base power, 50% confusion chance - -- Sacred Sword now has 95 base power - -- Egg Bomb is now 40 base power autocrit - -- Minimize only increases evasion by one stage - -- Double Team takes 25% of user's max HP (like Substitute) - -Minor learnset changes: - -- Azumarill gets Belly Drum with no incompatibilities - -- Mantine gets many new moves: Recover, Whirlwind, Baton Pass, Wish, Soak, - Lock-On, Acid Spray, Octazooka, Stockpile - -- Masquerain gets Surf - -- Butterfree, Beautifly, Masquerain, and Mothim get Hurricane - -- Roserade gets Sludge - -- Meloetta gets Fiery Dance - -- Galvantula gets Zap Cannon - -- Virizion gets Horn Leech - -- Scolipede and Steelix get Coil - -- Lumineon, Ampharos, and Lanturn get Tail Glow - -- Rotom formes learn more things: - - Rotom-Wash: BubbleBeam - - Rotom-Fan: Hurricane, Twister - - Rotom-Frost: Frost Breath - - Rotom-Heat: Heat Wave - - Rotom-Mow: Magical Leaf - -- Starters get a new ability option - - Venusaur: Leaf Guard - - Charizard: Flame Body - - Blastoise: Shell Armor - - Meganium: Harvest - - Typhlosion: Magma Armor - - Feraligatr: Strong Jaw - - Sceptile: Limber - - Blaziken: Reckless - - Swampert: Hydration - - Torterra: Weak Armor - - Infernape: No Guard - - Empoleon: Ice Body - - Serperior: Own Tempo - - Emboar: Sheer Force - - Samurott: Technician - - Chesnaught: Battle Armor - - Delphox: Magic Guard - - Greninja: Pickpocket - -- Crawdaunt's Hidden Ability is now Tough Claws (this is because of a - nerf to Adaptability which is discussed below) - -Minor ability changes: - -- Static, Poison Point, and Cute Charm now always activate on - contact. - -- Weak Armor reduces incoming move damage by 1/10 of the user's max HP - and increases the user's Speed for the first hit after switch-in (and - does not activate again until the next switch-in) instead of its - previous effect - -- Shell Armor and Battle Armor reduce incoming move damage by 1/10 of - the user's max HP in addition to their crit negation (also, Shell - Armor is removed when using Shell Smash) - -- Magma Armor reduces incoming move damage by 1/10 of the user's max HP, - provides immunity to Hail and freeze, and provides a one-time immunity - to Water and Ice, after which it turns into Battle Armor - -- Prism Armor reduces incoming move damage by 1/10 of the user's max HP in addition to its normal effects. - -- Adaptability is now 1.33x to non-STAB moves instead of to STAB moves - -- Shadow Tag now lasts only one turn - -- Static and Poison Point have a 100% chance of activating - -- Speed Boost does not activate on turns Protect, Detect, Endure, etc - are used - -- Telepathy grants Imprison on switch-in - -- Compound Eyes and Keen Eye now grant 1.6x accuracy (this replaces Keen - Eye's previous effect) - -- Victory Star grants 1.5x accuracy (but only for the user) - -- Solid Rock and Filter now reduce damage of SE moves by 1/2, not 1/4 - -- Iron Fist now grants a 1.33x boost to punching moves - -- Outrage, Thrash, and Petal Dance don't lock if the user has Own Tempo - -- Stench now grants a 40% flinch chance - -- Slow Start now only lasts 3 turns instead of 5 - -- Truant will only activate if a move succeeds (e.g. not if it misses, fails, - or is Protected against), and will heal the user by 33% during its Truant - turn - -- Clear Body and White Smoke prevents all stat lowering (relevant: the Regis' - Superpower, Metagross' Hammer Arm, and Torkoal's Overheat) - -- Thick Fat grants half damage from Fighting - -- Aftermath no longer requires contact, and is buffed to deal 1/3 of the - foe's max HP - -- Cursed Body works like Aftermath now, but instead of dealing damage, it - causes the foe to be Cursed (like Ghost-type Curse) - -- Gluttony allows a Pokémon to use a Berry twice - -- Heatproof now grants the user immunity to Fire and burns - -- Guts, Quick Feet, and Toxic Boost take half damage from poisoning - -- Guts, Quick Feet, and Flare Boost take half damage from burns - -- Sand Veil grants 20% damage reduction in sand (this replaces Sand Veil's - usual effect) - -- Water Veil grans 12.5% damage reduction out of rain and 25% damage - reduction in rain, in addition to its usual effect - -- Multiscale decreases damage by 1/3 rather than 1/2 (Sorry, Dragonite, - this is in exchange for a usable physical Flying STAB from a buffed - Aerial Ace) - -Minor item changes: - -- Zoom Lens now grants 1.6x accuracy - -- Wide Lens now grants 1.3x accuracy - -Bans: - -- The OU banlist (i.e. Pokémon considered Uber) is now: - - Every Pokémon with over 600 BST except Slaking, Regigigas, and Hoopa-Unbound - - Deoxys (all formes) - - Darkrai - - Shaymin-Sky - -- The following clauses are in effect: - - OHKO Clause - - Sleep Clause - - Soul Dew is banned - -Specifically, differences from regular OU: - -- unbanned: Aegislash, Blaziken, Genesect, Landorus, Gengarite, Kangaskhanite, - Lucarionite, Mawilite, Salamencite - -- banned: Hoopa-Unbound, Kyurem, Kyurem-Black - -- There is no Moody Clause or Evasion Clause diff --git a/data/mods/gennext/abilities.ts b/data/mods/gennext/abilities.ts deleted file mode 100644 index f02dc101b4a7..000000000000 --- a/data/mods/gennext/abilities.ts +++ /dev/null @@ -1,684 +0,0 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { - swiftswim: { - inherit: true, - onModifySpe(spe, pokemon) { - if (this.field.isWeather(['raindance', 'primordialsea'])) { - return this.chainModify(1.5); - } - }, - shortDesc: "If Rain Dance is active, this Pokemon's Speed is multiplied by 1.5.", - }, - chlorophyll: { - inherit: true, - onModifySpe(spe) { - if (this.field.isWeather(['sunnyday', 'desolateland'])) { - return this.chainModify(1.5); - } - }, - shortDesc: "If Sunny Day is active, this Pokemon's Speed is multiplied by 1.5.", - }, - sandrush: { - inherit: true, - onModifySpe(spe, pokemon) { - if (this.field.isWeather('sandstorm')) { - return this.chainModify(1.5); - } - }, - shortDesc: "If Sandstorm is active, this Pokemon's Speed is multiplied by 1.5.", - }, - slushrush: { - inherit: true, - onModifySpe(spe, pokemon) { - if (this.field.isWeather('hail')) { - return this.chainModify(1.5); - } - }, - shortDesc: "If Hail is active, this Pokemon's Speed is multiplied by 1.5.", - }, - forecast: { - inherit: true, - onModifyMove(move) { - if (move.weather) { - const weather = move.weather; - move.weather = ''; - move.onHit = function (target, source) { - this.field.setWeather(weather, source, this.dex.abilities.get('forecast')); - this.field.weatherState.duration = 0; - }; - move.target = 'self'; - } - }, - desc: "If this Pokemon is a Castform, its type changes to the current weather condition's type, except Sandstorm. Weather moves last forever.", - shortDesc: "Castform's type changes to the current weather condition's type, except Sandstorm; weather moves last forever.", - }, - thickfat: { - inherit: true, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - }, - onSourceModifyAtk(atk, attacker, defender, move) { - if (move.type === 'Ice' || move.type === 'Fire' || move.type === 'Fighting') { - this.add('-message', "The attack was weakened by Thick Fat!"); - return this.chainModify(0.5); - } - }, - onSourceModifySpA(atk, attacker, defender, move) { - if (move.type === 'Ice' || move.type === 'Fire' || move.type === 'Fighting') { - this.add('-message', "The attack was weakened by Thick Fat!"); - return this.chainModify(0.5); - } - }, - desc: "If a Pokemon uses a Fire- or Ice- or Fighting-type attack against this Pokemon, that Pokemon's attacking stat is halved when calculating the damage to this Pokemon. This Pokemon takes no damage from Hail.", - shortDesc: "Fire/Ice/Fighting-type moves against this Pokemon deal damage with a halved attacking stat; immunity to Hail.", - }, - marvelscale: { - inherit: true, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - }, - desc: "If this Pokemon has a major status condition, its Defense is multiplied by 1.5. This Pokemon takes no damage from Hail.", - shortDesc: "If this Pokemon is statused, its Defense is 1.5x; immunity to Hail.", - }, - snowcloak: { - inherit: true, - onSourceBasePower(basePower) { - if (this.field.isWeather('hail')) { - return basePower * 3 / 4; - } - return basePower * 7 / 8; - }, - onModifyAccuracy() {}, - desc: "If Hail is active, attacks against this Pokemon do 25% less than normal. If Hail is not active, attacks against this Pokemon do 12.5% less than normal. This Pokemon takes no damage from Hail.", - shortDesc: "If Hail is active, attacks against this Pokemon do 25% less; immunity to Hail.", - }, - sandveil: { - inherit: true, - desc: "If Sandstorm is active, attacks against this Pokemon do 25% less than normal. If Sandstorm is not active, attacks against this Pokemon do 12.5% less than normal. This Pokemon takes no damage from Sandstorm.", - shortDesc: "If Sandstorm is active, attacks against this Pokemon do 25% less; immunity to Sandstorm.", - onSourceBasePower(basePower) { - if (this.field.isWeather('sandstorm')) { - return basePower * 4 / 5; - } - }, - onModifyAccuracy() {}, - }, - waterveil: { - inherit: true, - onSourceBasePower(basePower) { - if (this.field.isWeather(['raindance', 'primordialsea'])) { - return basePower * 3 / 4; - } - return basePower * 7 / 8; - }, - desc: "If Rain Dance is active, attacks against this Pokemon do 25% less than normal. This Pokemon cannot be burned. Gaining this Ability while burned cures it.", - shortDesc: "If Rain Dance is active, attacks against this Pokemon do 25% less; This Pokemon cannot be burned.", - }, - icebody: { - inherit: true, - desc: "This Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn. This Pokemon takes no damage from Hail. There is a 30% chance a Pokemon making contact with this Pokemon will be frozen.", - shortDesc: "This Pokemon heals 1/16 of its max HP each turn; immunity to Hail; 30% chance a Pokemon making contact with this Pokemon will be frozen.", - onResidual(target, source, effect) { - this.heal(target.baseMaxhp / 16); - }, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact'] && this.field.isWeather('hail')) { - if (this.randomChance(3, 10)) { - source.trySetStatus('frz', target); - } - } - }, - onWeather() {}, - }, - flamebody: { - inherit: true, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - }, - shortDesc: "30% chance a Pokemon making contact with this Pokemon will be burned; immunity to Hail.", - }, - static: { - inherit: true, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact']) { - source.trySetStatus('par', target); - } - }, - shortDesc: "100% chance a Pokemon making contact with this Pokemon will be paralyzed.", - }, - cutecharm: { - inherit: true, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact']) { - source.addVolatile('Attract', target); - } - }, - desc: "There is a 100% chance a Pokemon making contact with this Pokemon will become infatuated if it is of the opposite gender.", - shortDesc: "100% chance of infatuating Pokemon of the opposite gender if they make contact.", - }, - poisonpoint: { - inherit: true, - onDamagingHit(damage, target, source, move) { - if (move.flags['contact']) { - source.trySetStatus('psn', target); - } - }, - shortDesc: "100% chance a Pokemon making contact with this Pokemon will be poisoned.", - }, - flowergift: { - inherit: true, - onModifyMove(move) { - if (move.id === 'sunnyday') { - const weather = move.weather as string; - move.weather = ''; - move.onHit = function (target, source) { - this.field.setWeather(weather, source, this.dex.abilities.get('flowergift')); - this.field.weatherState.duration = 0; - }; - move.target = 'self'; - move.sideCondition = 'flowergift'; - } - }, - onUpdate(pokemon) { - if (this.field.isWeather(['sunnyday', 'desolateland'])) { - if (pokemon.isActive && pokemon.species.id === 'cherrim' && this.effectState.forme !== 'Sunshine') { - this.effectState.forme = 'Sunshine'; - this.add('-formechange', pokemon, 'Cherrim-Sunshine', '[msg]'); - this.boost({spd: 1}); - } - } else if (pokemon.isActive && pokemon.species.id === 'cherrim' && this.effectState.forme) { - delete this.effectState.forme; - this.add('-formechange', pokemon, 'Cherrim', '[msg]'); - } - }, - condition: { - onSwitchInPriority: 1, - onSwitchIn(target) { - if (!target.fainted) { - this.boost({spd: 1}, target, target, this.dex.abilities.get('flowergift')); - } - target.side.removeSideCondition('flowergift'); - }, - }, - desc: "If this Pokemon is a Cherrim and Sunny Day is active, it changes to Sunshine Form and the Special Defense of it is multiplied by 1.5. The next Pokemon that switches in gets its Special Defense also multiplied by 1.5.", - shortDesc: "If user is Cherrim and Sunny Day is active, its Sp. Def is multiplied by 1.5; the next switch-in also gets its SpD multiplied by 1.5.", - }, - slowstart: { - inherit: true, - condition: { - duration: 3, - onStart(target) { - this.add('-start', target, 'Slow Start'); - }, - onModifyAtk(atk, pokemon) { - if (pokemon.ability !== 'slowstart') { - pokemon.removeVolatile('slowstart'); - return; - } - return atk / 2; - }, - onModifySpe(spe, pokemon) { - if (pokemon.ability !== 'slowstart') { - pokemon.removeVolatile('slowstart'); - return; - } - return spe / 2; - }, - onEnd(target) { - this.add('-end', target, 'Slow Start'); - }, - }, - shortDesc: "On switch-in, this Pokemon's Attack and Speed are halved for 3 turns.", - }, - compoundeyes: { - inherit: true, - desc: "The accuracy of this Pokemon's moves receives a 60% increase; for example, a 50% accurate move becomes 80% accurate.", - shortDesc: "This Pokemon's moves have their Accuracy boosted to 1.6x.", - onSourceModifyAccuracy(accuracy) { - if (typeof accuracy !== 'number') return; - this.debug('compoundeyes - enhancing accuracy'); - return accuracy * 1.6; - }, - }, - keeneye: { - inherit: true, - desc: "The accuracy of this Pokemon's moves receives a 60% increase; for example, a 50% accurate move becomes 80% accurate.", - shortDesc: "This Pokemon's moves have their Accuracy boosted to 1.6x.", - onModifyMove(move) { - if (typeof move.accuracy !== 'number') return; - this.debug('keeneye - enhancing accuracy'); - move.accuracy *= 1.6; - }, - }, - solidrock: { - inherit: true, - shortDesc: "This Pokemon receives 1/2 damage from supereffective attacks.", - onSourceModifyDamage(damage, attacker, defender, move) { - if (defender.getMoveHitData(move).typeMod > 0) { - this.add('-message', "The attack was weakened by Solid Rock!"); - return this.chainModify(0.5); - } - }, - }, - filter: { - inherit: true, - shortDesc: "This Pokemon receives 1/2 damage from supereffective attacks.", - onSourceModifyDamage(damage, attacker, defender, move) { - if (defender.getMoveHitData(move).typeMod > 0) { - this.add('-message', "The attack was weakened by Filter!"); - return this.chainModify(0.5); - } - }, - }, - heatproof: { - inherit: true, - desc: "The user is completely immune to Fire-type moves and burn damage.", - shortDesc: "The user is immune to Fire type attacks and burn damage.", - onImmunity(type, pokemon) { - if (type === 'Fire' || type === 'brn') return false; - }, - }, - reckless: { - inherit: true, - onBasePower(basePower, attacker, defender, move) { - if (move.recoil || move.hasCrashDamage || attacker.item === 'lifeorb') { - this.debug('Reckless boost'); - return basePower * 12 / 10; - } - }, - desc: "This Pokemon's attacks with recoil or crash damage or if the user is holding a Life Orb have their power multiplied by 1.2. Does not affect Struggle.", - shortDesc: "This Pokemon's attacks with recoil or crash damage or the user's item is Life Orb have 1.2x power; not Struggle.", - }, - clearbody: { - inherit: true, - onTryBoost(boost, target, source) { - let i: BoostID; - for (i in boost) { - if (boost[i]! < 0) { - delete boost[i]; - this.add("-message", target.name + "'s stats were not lowered! (placeholder)"); - } - } - }, - shortDesc: "Prevents any negative stat changes on this Pokemon.", - }, - whitesmoke: { - inherit: true, - onTryBoost(boost, target, source) { - let i: BoostID; - for (i in boost) { - if (boost[i]! < 0) { - delete boost[i]; - this.add("-message", target.name + "'s stats were not lowered! (placeholder)"); - } - } - }, - shortDesc: "Prevents any negative stat changes on this Pokemon.", - }, - rockhead: { - inherit: true, - onDamage(damage, target, source, effect) { - if (effect && ['lifeorb', 'recoil'].includes(effect.id)) return false; - }, - desc: "This Pokemon does not take recoil damage besides Struggle, and crash damage.", - shortDesc: "This Pokemon does not take recoil damage besides Struggle/crash damage.", - }, - download: { - inherit: true, - onStart(pokemon) { - if (pokemon.species.baseSpecies === 'Genesect') { - if (!pokemon.getItem().onDrive) return; - } - let totaldef = 0; - let totalspd = 0; - for (const foe of pokemon.foes()) { - totaldef += foe.storedStats.def; - totalspd += foe.storedStats.spd; - } - if (totaldef && totaldef >= totalspd) { - this.boost({spa: 1}); - } else if (totalspd) { - this.boost({atk: 1}); - } - }, - desc: "On switch-in, this Pokemon's Attack or Special Attack is raised by 1 stage based on the weaker combined defensive stat of all opposing Pokemon. Attack is raised if their Defense is lower, and Special Attack is raised if their Special Defense is the same or lower. If the user is a Genesect, this will not have effect unless it holds a Drive.", - shortDesc: "On switch-in, Attack or Sp. Atk is raised 1 stage based on the foes' weaker Defense; Genesect must hold a plate for the effect to work.", - }, - victorystar: { - inherit: true, - onAllyModifyMove(move) { - if (typeof move.accuracy === 'number') { - move.accuracy *= 1.5; - } - }, - shortDesc: "This Pokemon's moves' accuracy is multiplied by 1.5.", - }, - shellarmor: { - inherit: true, - onDamage(damage, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.add('-message', "Its damage was reduced by Shell Armor!"); - damage -= target.maxhp / 10; - if (damage < 0) damage = 0; - return damage; - } - }, - onHit(target, source, move) { - if (move.id === 'shellsmash') { - target.setAbility(''); - } - }, - desc: "This Pokemon cannot be struck by a critical hit. This ability also reduces incoming move damage by 1/10 of the user's max HP. If the user uses Shell Smash, this ability's effect ends.", - shortDesc: "This Pokemon can't be struck critical hit; reduces incoming move damage by 1/10 of the user's max HP.", - }, - prismarmor: { - inherit: true, - onDamage(damage, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.add('-message', "Its damage was reduced by Prism Armor!"); - damage -= target.maxhp / 10; - if (damage < 0) damage = 0; - return damage; - } - }, - desc: "This Pokemon receives 3/4 damage from supereffective attacks. Moongeist Beam, Sunsteel Strike, and the Abilities Mold Breaker, Teravolt, and Turboblaze cannot ignore this Ability. This ability also reduces incoming move damage by 1/10 of the user's max HP.", - shortDesc: "This Pokemon receives 3/4 damage from supereffective attacks; reduces incoming move damage by 1/10 of the user's max HP.", - }, - battlearmor: { - inherit: true, - onDamage(damage, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.add('-message', "Its damage was reduced by Battle Armor!"); - damage -= target.maxhp / 10; - if (damage < 0) damage = 0; - return damage; - } - }, - desc: "This Pokemon cannot be struck by a critical hit. This ability also reduces incoming move damage by 1/10 of the user's max HP.", - shortDesc: "This Pokemon can't be struck critical hit; reduces incoming move damage by 1/10 of the user's max HP.", - }, - weakarmor: { - inherit: true, - onDamage(damage, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.add('-message', "Its damage was reduced by Weak Armor!"); - damage -= target.maxhp / 10; - if (damage < 0) damage = 0; - target.setAbility(''); - this.boost({spe: 1}); - return damage; - } - }, - onDamagingHit() {}, - desc: "This ability reduces incoming move damage by 1/10 of the user's max HP and increases the user's Speed for the first hit after switch-in (and does not activate again until the next switch-in).", - shortDesc: "Reduces incoming move damage by 1/10 of the user's max HP and increases the user's Spe for the 1st hit after switch-in (doesn't activate until next switch-in).", - }, - magmaarmor: { - inherit: true, - onImmunity(type, pokemon) { - if (type === 'hail') return false; - if (type === 'frz') return false; - }, - onDamage(damage, target, source, effect) { - if (effect && effect.effectType === 'Move') { - damage -= target.maxhp / 10; - if (damage < 0) damage = 0; - if (effect.type === 'Ice' || effect.type === 'Water') { - this.add('-activate', target, 'ability: Magma Armor'); - target.setAbility('battlearmor'); - damage = 0; - } else { - this.add('-message', "Its damage was reduced by Magma Armor!"); - } - return damage; - } - }, - desc: "This ability reduces incoming move damage by 1/10 of the user's max HP, provides immunity to Hail and freeze, and provides a one-time immunity to Water and Ice (after which it turns into Battle Armor).", - shortDesc: "Reduces incoming move damage by 1/10 of the user's max HP, provides immunity to Hail & Frz, and provides a 1 time immunity to Water and Ice.", - }, - multiscale: { - inherit: true, - onSourceModifyDamage(damage, source, target, move) { - if (target.hp >= target.maxhp) { - this.add('-message', "The attack was slightly weakened by Multiscale!"); - return this.chainModify(2 / 3); - } - }, - shortDesc: "If this Pokemon is at full HP, damage taken from attacks is lessened by 1/3.", - }, - ironfist: { - inherit: true, - onBasePower(basePower, attacker, defender, move) { - if (move.flags['punch']) { - return basePower * 1.33; - } - }, - desc: "This Pokemon's punch-based attacks have their power multiplied by 1.33.", - shortDesc: "This Pokemon's punch-based attacks have 1.33x power. Sucker Punch is not boosted.", - }, - stench: { - inherit: true, - onModifyMove(move) { - if (move.category !== "Status") { - this.debug('Adding Stench flinch'); - if (!move.secondaries) move.secondaries = []; - for (const secondary of move.secondaries) { - if (secondary.volatileStatus === 'flinch') return; - } - move.secondaries.push({ - chance: 40, - volatileStatus: 'flinch', - }); - } - }, - shortDesc: "This Pokemon's attacks without a chance to flinch have a 40% chance to flinch.", - }, - aftermath: { - inherit: true, - onDamagingHit(damage, target, source, move) { - if (!target.hp) { - this.damage(source.baseMaxhp / 3, source, target, null, true); - } - }, - desc: "If this Pokemon is knocked out, that move's user loses 1/4 of its maximum HP, rounded down. If any active Pokemon has the Ability Damp, this effect is prevented.", - shortDesc: "If this Pokemon is KOed, that move's user loses 1/4 its max HP.", - }, - cursedbody: { - desc: "When this Pokemon faints, attacker is Cursed.", - shortDesc: "When this Pokemon faints, attacker is Cursed.", - onFaint(target, source, effect) { - if (effect && effect.effectType === 'Move' && source) { - source.addVolatile('curse'); - } - }, - name: "Cursed Body", - rating: 3, - num: 130, - }, - gluttony: { - inherit: true, - onResidualOrder: 26, - onResidualSubOrder: 1, - onResidual(pokemon) { - if (!pokemon.m.gluttonyFlag && !pokemon.item && this.dex.items.get(pokemon.lastItem).isBerry) { - pokemon.m.gluttonyFlag = true; - pokemon.setItem(pokemon.lastItem); - pokemon.lastItem = ''; - this.add("-item", pokemon, pokemon.item, '[from] ability: Gluttony'); - } - }, - shortDesc: "When this Pokemon has 1/2 or less of its maximum HP, it uses certain Berries early. Each berry has 2 uses.", - }, - guts: { - inherit: true, - onDamage(damage, attacker, defender, effect) { - if (effect && (effect.id === 'brn' || effect.id === 'psn' || effect.id === 'tox')) { - return damage / 2; - } - }, - desc: "If this Pokemon has a major status condition, its Attack is multiplied by 1.5; burn's physical damage halving is ignored; takes half damage from burn/poison/toxic.", - shortDesc: "If this Pokemon is statused, its Attack is 1.5x; ignores burn halving physical damage; takes 1/2 damage from brn/psn/tox.", - }, - quickfeet: { - inherit: true, - onDamage(damage, attacker, defender, effect) { - if (effect && (effect.id === 'brn' || effect.id === 'psn' || effect.id === 'tox')) { - return damage / 2; - } - }, - desc: "If this Pokemon has a major status condition, its Speed is multiplied by 1.5; the Speed drop from paralysis is ignored; takes half damage from burn/poison/toxic.", - shortDesc: "If this Pokemon is statused, its Speed is 1.5x; ignores Speed drop from paralysis; takes 1/2 damage from brn/psn/tox.", - }, - toxicboost: { - inherit: true, - onDamage(damage, attacker, defender, effect) { - if (effect && (effect.id === 'psn' || effect.id === 'tox')) { - return damage / 2; - } - }, - desc: "While this Pokemon is poisoned, the power of its physical attacks is multiplied by 1.5; takes half damage from poison/toxic.", - shortDesc: "While this Pokemon is poisoned, its physical attacks have 1.5x power; takes 1/2 damage from psn/tox.", - }, - truant: { - inherit: true, - onBeforeMove() {}, - onModifyMove(move, pokemon) { - if (!move.self) move.self = {}; - if (!move.self.volatileStatus) move.self.volatileStatus = 'truant'; - }, - condition: { - duration: 2, - onStart(pokemon) { - this.add('-start', pokemon, 'Truant'); - }, - onBeforeMovePriority: 99, - onBeforeMove(pokemon, target, move) { - if (pokemon.removeVolatile('truant')) { - this.add('cant', pokemon, 'ability: Truant'); - this.heal(pokemon.baseMaxhp / 3); - return false; - } - }, - }, - shortDesc: "This Pokemon will not be able to move the turn after a successful move; heals 1/3 of its max HP on its Truant turn.", - }, - flareboost: { - inherit: true, - onDamage(damage, defender, attacker, effect) { - if (effect && (effect.id === 'brn')) { - return damage / 2; - } - }, - desc: "While this Pokemon is burned, the power of its special attacks is multiplied by 1.5; takes half damage from burns.", - shortDesc: "While this Pokemon is burned, its special attacks have 1.5x power; takes 1/2 damage from brn.", - }, - telepathy: { - inherit: true, - onStart(target) { - this.add('-start', target, 'move: Imprison'); - }, - onFoeDisableMove(pokemon) { - for (const moveSlot of this.effectState.target.moveSlots) { - pokemon.disableMove(moveSlot.id, 'hidden'); - } - pokemon.maybeDisabled = true; - }, - onFoeBeforeMove(attacker, defender, move) { - if (move.id !== 'struggle' && this.effectState.target.hasMove(move.id) && !move.isZ) { - this.add('cant', attacker, 'move: Imprison', move); - return false; - } - }, - shortDesc: "This Pokemon does not take damage from attacks made by its allies; imprisons the target upon entry.", - }, - speedboost: { - inherit: true, - onResidualPriority: -1, - onResidual(pokemon) { - if (pokemon.activeTurns && !pokemon.volatiles['stall']) { - this.boost({spe: 1}); - } - }, - desc: "This Pokemon's Speed is raised by 1 stage at the end of each full turn it has been on the field. This ability does not activate on turns Protect, Detect, Endure, etc are used.", - }, - parentalbond: { - inherit: true, - onModifyMove(move, pokemon, target) { - if (move.category === 'Status' || move.selfdestruct || move.multihit) return; - if (!target) return; - // singles, or single-target move - if (this.activePerHalf === 1 || ['any', 'normal', 'randomNormal'].includes(move.target)) { - move.multihit = 2; - move.accuracy = true; - pokemon.addVolatile('parentalbond'); - } - }, - condition: { - duration: 1, - onBasePowerPriority: 8, - onBasePower(basePower) { - return this.chainModify(0.5); - }, - }, - desc: "This Pokemon's damaging moves become multi-hit moves that hit twice. Both hits' damage are halved. Does not affect multi-hit moves or moves that have multiple targets. The moves that are affected will never miss.", - shortDesc: "This Pokemon's damaging moves hit twice. Both hits have their damage halved. Moves affected have -- accuracy.", - }, - swarm: { - inherit: true, - onFoeBasePower(basePower, attacker, defender, move) { - if (defender.hasType('Flying')) { - if (move.type === 'Rock' || move.type === 'Electric' || move.type === 'Ice') { - this.add('-message', "The attack was weakened by Swarm!"); - return basePower / 2; - } - } - }, - onDamage(damage, defender, attacker, effect) { - if (defender.hasType('Flying')) { - if (effect && effect.id === 'stealthrock') { - return damage / 2; - } - } - }, - desc: "When this Pokemon has 1/3 or less of its maximum HP, rounded down, its attacking stat is multiplied by 1.5 while using a Bug-type attack. The user takes half damage from Rock, Ice, Electric moves, and Stealth Rock if they are Flying type.", - shortDesc: "When this Pokemon has 1/3 or less of its max HP, its Bug attacks do 1.5x damage. The user takes 1/2 damage from Rock/Ice/Electric moves, and Stealth Rock, if the user is Flying type.", - }, - adaptability: { - inherit: true, - onModifyMove(move) {}, - onBasePower(power, attacker, defender, move) { - if (!attacker.hasType(move.type)) { - return this.chainModify(1.33); - } - }, - desc: "This Pokemon's moves that don't match one of its types have an attack bonus of 1.33.", - shortDesc: "This Pokemon's non-STAB moves is 1.33x.", - }, - shadowtag: { - desc: "For the first turn after this Pokemon switches in, prevent adjacent opposing Pokemon from choosing to switch out unless they are immune to trapping or also have this Ability.", - shortDesc: "Prevents adjacent foes from choosing to switch for one turn.", - inherit: true, - onStart(pokemon) { - pokemon.addVolatile('shadowtag'); - }, - condition: { - duration: 2, - onFoeTrapPokemon(pokemon) { - if (pokemon.ability !== 'shadowtag') { - pokemon.tryTrap(true); - } - }, - }, - onBeforeMovePriority: 15, - onBeforeMove(pokemon) { - pokemon.removeVolatile('shadowtag'); - }, - onFoeMaybeTrapPokemon(pokemon, source) { - if (!source) source = this.effectState.target; - if (!source || !pokemon.isAdjacent(source)) return; - if (pokemon.ability !== 'shadowtag' && !source.volatiles['shadowtag']) { - pokemon.maybeTrapped = true; - } - }, - onFoeTrapPokemon(pokemon) {}, - }, -}; diff --git a/data/mods/gennext/conditions.ts b/data/mods/gennext/conditions.ts deleted file mode 100644 index cba06a34a1a1..000000000000 --- a/data/mods/gennext/conditions.ts +++ /dev/null @@ -1,387 +0,0 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { - frz: { - name: 'frz', - effectType: 'Status', - onStart(target) { - this.add('-status', target, 'frz'); - }, - duration: 2, - onBeforeMovePriority: 2, - onBeforeMove(pokemon, target, move) { - if (move.flags['defrost']) { - pokemon.cureStatus(); - return; - } - this.add('cant', pokemon, 'frz'); - return false; - }, - onHit(target, source, move) { - if (move.type === 'Fire' && move.category !== 'Status' || move.flags['defrost']) { - target.cureStatus(); - } - }, - onEnd(target) { - this.add('-curestatus', target, 'frz'); - }, - }, - lockedmove: { - // Outrage, Thrash, Petal Dance... - name: 'lockedmove', - durationCallback() { - return this.random(2, 4); - }, - onResidual(target) { - const move = target.lastMove as Move; - if (!move.self || move.self.volatileStatus !== 'lockedmove') { - // don't lock, and bypass confusion for calming - delete target.volatiles['lockedmove']; - } else if (target.ability === 'owntempo') { - // Own Tempo prevents locking - delete target.volatiles['lockedmove']; - } - }, - onEnd(target) { - target.addVolatile('confusion'); - }, - onLockMove(pokemon) { - return pokemon.lastMove!.id; - }, - }, - confusion: { - // this is a volatile status - name: 'confusion', - onStart(target, source, sourceEffect) { - if (sourceEffect && sourceEffect.id === 'lockedmove') { - this.add('-start', target, 'confusion', '[fatigue]'); - } else { - this.add('-start', target, 'confusion'); - } - this.effectState.time = this.random(3, 4); - }, - onEnd(target) { - this.add('-end', target, 'confusion'); - }, - onBeforeMove(pokemon) { - pokemon.volatiles['confusion'].time--; - if (!pokemon.volatiles['confusion'].time) { - pokemon.removeVolatile('confusion'); - return; - } - const damage = this.actions.getDamage(pokemon, pokemon, 40); - if (typeof damage !== 'number') throw new Error("Confusion damage not dealt"); - this.directDamage(damage); - }, - }, - - // weather! - - raindance: { - inherit: true, - onBasePower(basePower, attacker, defender, move) { - if (move.id === 'scald' || move.id === 'steameruption') { - return; - } - if (move.type === 'Water') { - this.debug('rain water boost'); - return basePower * 1.5; - } - if (move.type === 'Fire') { - this.debug('rain fire suppress'); - return basePower * 0.5; - } - }, - }, - sunnyday: { - inherit: true, - onBasePower(basePower, attacker, defender, move) { - if (move.id === 'scald' || move.id === 'steameruption') { - return; - } - if (move.type === 'Fire') { - this.debug('Sunny Day fire boost'); - return basePower * 1.5; - } - if (move.type === 'Water') { - this.debug('Sunny Day water suppress'); - return basePower * 0.5; - } - }, - }, - - // intrinsics! - - bidestall: { - name: 'bidestall', - duration: 3, - }, - - unown: { - // Unown: Shadow Tag - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'shadowtag' as ID; - pokemon.baseAbility = 'shadowtag' as ID; - } - if (pokemon.transformed) return; - pokemon.setType(pokemon.hpType || 'Dark'); - }, - }, - bronzong: { - // Bronzong: Heatproof - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'heatproof' as ID; - pokemon.baseAbility = 'heatproof' as ID; - } - }, - }, - weezing: { - // Weezing: Aftermath - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'aftermath' as ID; - pokemon.baseAbility = 'aftermath' as ID; - } - }, - }, - flygon: { - // Flygon: Compoundeyes - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'compoundeyes' as ID; - pokemon.baseAbility = 'compoundeyes' as ID; - } - }, - }, - eelektross: { - // Eelektross: Poison Heal - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'poisonheal' as ID; - pokemon.baseAbility = 'poisonheal' as ID; - } - }, - }, - claydol: { - // Claydol: Filter - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'filter' as ID; - pokemon.baseAbility = 'filter' as ID; - } - }, - }, - gengar: { - // Gengar: Cursed Body - onImmunity(type, pokemon) { - if (pokemon.species.id !== 'gengarmega' && type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'cursedbody' as ID; - pokemon.baseAbility = 'cursedbody' as ID; - } - }, - }, - mismagius: { - // Mismagius: Cursed Body - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'cursedbody' as ID; - pokemon.baseAbility = 'cursedbody' as ID; - } - }, - }, - mesprit: { - // Mesprit: Serene Grace - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'serenegrace' as ID; - pokemon.baseAbility = 'serenegrace' as ID; - } - }, - }, - uxie: { - // Uxie: Synchronize - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'synchronize' as ID; - pokemon.baseAbility = 'synchronize' as ID; - } - }, - }, - azelf: { - // Azelf: Steadfast - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'steadfast' as ID; - pokemon.baseAbility = 'steadfast' as ID; - } - }, - }, - hydreigon: { - // Hydreigon: Sheer Force - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'sheerforce' as ID; - pokemon.baseAbility = 'sheerforce' as ID; - } - }, - }, - rotom: { - // All Rotoms: Trace - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'trace' as ID; - pokemon.baseAbility = 'trace' as ID; - } - }, - }, - rotomheat: { - // All Rotoms: Trace - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'trace' as ID; - pokemon.baseAbility = 'trace' as ID; - } - }, - }, - rotomwash: { - // All Rotoms: Trace - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'trace' as ID; - pokemon.baseAbility = 'trace' as ID; - } - }, - }, - rotomfan: { - // All Rotoms: Trace - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'trace' as ID; - pokemon.baseAbility = 'trace' as ID; - } - }, - }, - rotomfrost: { - // All Rotoms: Trace - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'trace' as ID; - pokemon.baseAbility = 'trace' as ID; - } - }, - }, - rotommow: { - // All Rotoms: Trace - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'trace' as ID; - pokemon.baseAbility = 'trace' as ID; - } - }, - }, - cryogonal: { - // Cryogonal: infinite hail, Ice Body - onModifyMove(move) { - if (move.id === 'hail') { - const weather = move.weather as string; - move.weather = ''; - move.onHit = function (target, source) { - this.field.setWeather(weather, source, this.dex.abilities.get('snowwarning')); - this.field.weatherState.duration = 0; - }; - move.target = 'self'; - } - }, - onImmunity(type, pokemon) { - if (type === 'Ground' && !this.suppressingAbility(pokemon)) return false; - }, - onStart(pokemon) { - if (pokemon.ability === 'levitate') { - pokemon.ability = 'icebody' as ID; - pokemon.baseAbility = 'icebody' as ID; - } - }, - }, - probopass: { - // Probopass: infinite sand - onModifyMove(move) { - if (move.id === 'sandstorm') { - const weather = move.weather as string; - move.weather = ''; - move.onHit = function (target, source) { - this.field.setWeather(weather, source, this.dex.abilities.get('sandstream')); - this.field.weatherState.duration = 0; - }; - move.target = 'self'; - } - }, - }, - phione: { - // Phione: infinite rain - onModifyMove(move) { - if (move.id === 'raindance') { - const weather = move.weather as string; - move.weather = ''; - move.onHit = function (target, source) { - this.field.setWeather(weather, source, this.dex.abilities.get('drizzle')); - this.field.weatherState.duration = 0; - }; - move.target = 'self'; - } - }, - }, -}; diff --git a/data/mods/gennext/formats-data.ts b/data/mods/gennext/formats-data.ts deleted file mode 100644 index b208a289c873..000000000000 --- a/data/mods/gennext/formats-data.ts +++ /dev/null @@ -1,62 +0,0 @@ -export const FormatsData: {[k: string]: ModdedSpeciesFormatsData} = { - aegislash: { - inherit: true, - tier: "OU", - }, - blaziken: { - inherit: true, - tier: "OU", - }, - blazikenmega: { - inherit: true, - tier: "OU", - }, - genesect: { - inherit: true, - tier: "OU", - }, - gengarmega: { - inherit: true, - tier: "OU", - }, - greninja: { - inherit: true, - tier: "OU", - }, - kangaskhanmega: { - inherit: true, - tier: "OU", - }, - landorus: { - inherit: true, - tier: "OU", - }, - mawilemega: { - inherit: true, - tier: "OU", - }, - salamencemega: { - inherit: true, - tier: "OU", - }, - deoxysdefense: { - inherit: true, - tier: "Uber", - }, - deoxysspeed: { - inherit: true, - tier: "Uber", - }, - hoopaunbound: { - inherit: true, - tier: "OU", - }, - kyurem: { - inherit: true, - tier: "Uber", - }, - kyuremblack: { - inherit: true, - tier: "Uber", - }, -}; diff --git a/data/mods/gennext/items.ts b/data/mods/gennext/items.ts deleted file mode 100644 index d6ac4b4e160d..000000000000 --- a/data/mods/gennext/items.ts +++ /dev/null @@ -1,178 +0,0 @@ -export const Items: {[k: string]: ModdedItemData} = { - burndrive: { - inherit: true, - onBasePower(basePower, user, target, move) {}, - desc: "Changes Genesect to Genesect-Burn.", - }, - chilldrive: { - inherit: true, - onBasePower(basePower, user, target, move) {}, - desc: "Changes Genesect to Genesect-Chill.", - }, - dousedrive: { - inherit: true, - onBasePower(basePower, user, target, move) {}, - desc: "Changes Genesect to Genesect-Douse.", - }, - shockdrive: { - inherit: true, - onBasePower(basePower, user, target, move) {}, - desc: "Changes Genesect to Genesect-Shock.", - }, - widelens: { - inherit: true, - onSourceModifyAccuracy(accuracy) { - if (typeof accuracy === 'number') { - return accuracy * 1.3; - } - }, - desc: "The accuracy of attacks by the holder is 1.6x.", - }, - zoomlens: { - inherit: true, - onSourceModifyAccuracy(accuracy, target) { - if (typeof accuracy === 'number' && !this.queue.willMove(target)) { - this.debug('Zoom Lens boosting accuracy'); - return accuracy * 1.6; - } - }, - desc: "The accuracy of attacks by the holder is 1.6x if it moves after its target.", - }, - bigroot: { - inherit: true, - onAfterMoveSecondarySelf(source, target) { - if (source.hasType('Grass')) { - this.heal(source.lastDamage / 8, source); - } - }, - onResidualOrder: 5, - onResidualSubOrder: 2, - onResidual(pokemon) { - if (pokemon.hasType('Grass')) { - this.heal(pokemon.baseMaxhp / 16); - } - }, - desc: "Holder gains 1.3x HP from draining/Aqua Ring/Ingrain/Leech Seed/Strength Sap; If the user is a Grass type, the holder heals 1/16 of its max HP every turn, and for every damaging move the holder uses 1/8th of the damage dealt is restored.", - shortDesc: "Holder gains 1.3x from most healing moves; if the user is a Grass type, Leftovers & Shell Bell effects occur.", - }, - blacksludge: { - inherit: true, - onResidualOrder: 5, - onResidualSubOrder: 2, - onResidual(pokemon) { - if (pokemon.hasType('Poison')) { - this.heal(pokemon.baseMaxhp / (pokemon.getTypes().length === 1 ? 8 : 16)); - } else { - this.damage(pokemon.baseMaxhp / 8); - } - }, - desc: "Each turn, if holder is a Poison type, restores 1/16 max HP; loses 1/8 if not. Pure Poison types restore 1/8 max HP.", - }, - focusband: { - inherit: true, - onDamage(damage, target, source, effect) { - const types = target.getTypes(); - if (types.length === 1 && types[0] === 'Fighting' && - effect && effect.effectType === 'Move' && - target.useItem()) { - if (damage >= target.hp) { - this.add("-message", target.name + " held on using its Focus Band!"); - return target.hp - 1; - } else { - this.add("-message", target.name + "'s Focus Band broke!"); - } - } - }, - desc: "Breaks on first hit, but allows pure Fighting types to survive that hit with 1 HP.", - }, - wiseglasses: { - inherit: true, - onBasePower(basePower, user, target, move) { - if (move.category === 'Special') { - const types = user.getTypes(); - if (types.length === 1 && types[0] === 'Psychic') { - return basePower * 1.2; - } - return basePower * 1.1; - } - }, - desc: "Holder's special attacks have 1.1x power. Pure Psychic types special attacks have 1.2x power.", - shortDesc: "Holder's SpA have 1.1x power. Pure Psychic types SpA have 1.2x power.", - }, - muscleband: { - inherit: true, - onBasePower(basePower, user, target, move) { - if (move.category === 'Physical') { - const types = user.getTypes(); - if (types.length === 1 && types[0] === 'Fighting') { - return basePower * 1.2; - } - return basePower * 1.1; - } - }, - desc: "Holder's physical attacks have 1.1x power. Pure Fighting types physical attacks have 1.2x power.", - shortDesc: "Holder's Atk have 1.1x power. Pure Fighting types Atk have 1.2x power.", - }, - stick: { - inherit: true, - // The Stick is a stand-in for a number of pokemon-exclusive items - // introduced with Gen Next - onModifyCritRatio(critRatio, user) { - if (user.species.id === 'farfetchd') { - return critRatio + 2; - } - }, - onModifyDef(def, pokemon) { - if (pokemon.species.name === 'Shuckle') { - return def * 1.5; - } - }, - onModifySpA(spa, pokemon) { - if (pokemon.species.name === 'Unown') { - return spa * 2; - } - }, - onModifySpD(spd, pokemon) { - if (pokemon.species.name === 'Unown') { - return spd * 2; - } - if (pokemon.species.name === 'Shuckle') { - return spd * 1.5; - } - }, - onModifySpe(spe, pokemon) { - if (pokemon.species.name === 'Unown') { - return spe * 2; - } - }, - onFoeBasePower(basePower, attacker, defender, move) { - const GossamerWingUsers = ["Butterfree", "Masquerain", "Beautifly", "Mothim", "Vivillon"]; - if (GossamerWingUsers.includes(defender.species.name)) { - if (['Rock', 'Electric', 'Ice'].includes(move.type)) { - this.add('-message', "The attack was weakened by GoassamerWing!"); - return basePower / 2; - } - } - }, - onDamage(damage, defender, attacker, effect) { - const GossamerWingUsers = ["Butterfree", "Masquerain", "Beautifly", "Mothim", "Vivillon"]; - if (GossamerWingUsers.includes(defender.species.name)) { - if (effect && effect.id === 'stealthrock') { - return damage / 2; - } - } - }, - onAfterMoveSecondarySelf(source, target, move) { - const GossamerWingUsers = ["Butterfree", "Masquerain", "Beautifly", "Mothim", "Vivillon"]; - if (move.effectType === 'Move' && move.category === 'Status' && GossamerWingUsers.includes(source.species.name)) { - this.heal(source.baseMaxhp / 16); - } - }, - // onResidual(pokemon) { - // if (pokemon.species.name === 'Shuckle') { - // this.heal(this.clampIntRange(pokemon.maxhp / 16, 1)); - // } - // }, - desc: "Raises Farfetch\u2019d's critical hit rate two stages.", - }, -}; diff --git a/data/mods/gennext/moves.ts b/data/mods/gennext/moves.ts deleted file mode 100644 index 7fe95c997a4b..000000000000 --- a/data/mods/gennext/moves.ts +++ /dev/null @@ -1,2119 +0,0 @@ -export const Moves: {[k: string]: ModdedMoveData} = { - /****************************************************************** - Perfect accuracy moves: - - base power increased to 90 - - Justification: - - perfect accuracy is too underpowered to have such low base power - - it's not even an adequate counter to accuracy boosting, which - is why the latter is banned in OU - - Precedent: - - Giga Drain and Drain Punch, similar 60 base power moves, have - been upgraded - ******************************************************************/ - aerialace: { - inherit: true, - basePower: 90, - }, - feintattack: { - inherit: true, - basePower: 90, - }, - shadowpunch: { - inherit: true, - basePower: 90, - }, - magnetbomb: { - inherit: true, - basePower: 90, - }, - magicalleaf: { - inherit: true, - basePower: 90, - }, - shockwave: { - inherit: true, - basePower: 90, - }, - swift: { - inherit: true, - basePower: 90, - }, - disarmingvoice: { - inherit: true, - basePower: 90, - }, - aurasphere: { - inherit: true, - basePower: 90, - }, - clearsmog: { - inherit: true, - basePower: 90, - }, - /****************************************************************** - HMs: - - shouldn't suck (as much) - - Justification: - - there are HMs that don't suck - - Precedent: - - Dive! Technically, it was to be in-line with Dig, but still. - ******************************************************************/ - strength: { - inherit: true, - secondary: { - chance: 30, - self: { - boosts: { - atk: 1, - }, - }, - }, - shortDesc: "30% chance of raising user's Atk by 1 stage.", - desc: "This move has a 30% chance of raising the user's Attack by one stage.", - }, - cut: { - inherit: true, - accuracy: 100, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - desc: "100% chance of lowering the target's Defense by one stage.", - shortDesc: "Lowers the target's Def by 1 stage.", - }, - rocksmash: { - inherit: true, - basePower: 50, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - desc: "100% chance of lowering the target's Defense by one stage.", - shortDesc: "Lowers the target's Def by 1 stage.", - }, - /****************************************************************** - Weather moves: - - have increased priority - - Justification: - - several Rain abusers get Prankster, which makes Rain otherwise - overpowered - ******************************************************************/ - raindance: { - inherit: true, - priority: 1, - }, - sunnyday: { - inherit: true, - priority: 1, - }, - sandstorm: { - inherit: true, - priority: 1, - }, - hail: { - inherit: true, - priority: 1, - }, - /****************************************************************** - Substitute: - - has precedence over Protect - - makes all moves hit against it - Minimize: - - only +1 evasion - Double Team: - - -25% maxhp when used - - Justification: - - Sub/Protect stalling is annoying - - Evasion stalling is annoying - ******************************************************************/ - substitute: { - inherit: true, - condition: { - onStart(target) { - this.add('-start', target, 'Substitute'); - this.effectState.hp = Math.floor(target.maxhp / 4); - delete target.volatiles['partiallytrapped']; - }, - onAccuracyPriority: -100, - onAccuracy(accuracy, target, source, move) { - return 100; - }, - onTryPrimaryHitPriority: 2, - onTryPrimaryHit(target, source, move) { - if (target === source || move.flags['bypasssub'] || move.infiltrates) { - return; - } - let damage = this.actions.getDamage(source, target, move); - if (!damage) { - return null; - } - damage = this.runEvent('SubDamage', target, source, move, damage); - if (!damage) { - return damage; - } - if (damage > target.volatiles['substitute'].hp) { - damage = target.volatiles['substitute'].hp as number; - } - target.volatiles['substitute'].hp -= damage; - source.lastDamage = damage; - if (target.volatiles['substitute'].hp <= 0) { - target.removeVolatile('substitute'); - } else { - this.add('-activate', target, 'Substitute', '[damage]'); - } - if (move.recoil) { - this.damage(this.clampIntRange(Math.round(damage * move.recoil[0] / move.recoil[1]), 1), source, target, 'recoil'); - } - if (move.drain) { - this.heal(Math.ceil(damage * move.drain[0] / move.drain[1]), source, target, 'drain'); - } - this.runEvent('AfterSubDamage', target, source, move, damage); - return this.HIT_SUBSTITUTE; - }, - onEnd(target) { - this.add('-end', target, 'Substitute'); - }, - }, - }, - protect: { - inherit: true, - condition: { - duration: 1, - onStart(target) { - this.add('-singleturn', target, 'Protect'); - }, - onTryHitPriority: 3, - onTryHit(target, source, move) { - if (target.volatiles['substitute'] || !move.flags['protect']) return; - this.add('-activate', target, 'Protect'); - const lockedmove = source.getVolatile('lockedmove'); - if (lockedmove) { - // Outrage counter is reset - if (source.volatiles['lockedmove'].duration === 2) { - delete source.volatiles['lockedmove']; - } - } - return null; - }, - }, - }, - kingsshield: { - inherit: true, - condition: { - duration: 1, - onStart(target) { - this.add('-singleturn', target, 'Protect'); - }, - onTryHitPriority: 3, - onTryHit(target, source, move) { - if (target.volatiles['substitute'] || !move.flags['protect'] || move.category === 'Status') return; - this.add('-activate', target, 'Protect'); - const lockedmove = source.getVolatile('lockedmove'); - if (lockedmove) { - // Outrage counter is reset - if (source.volatiles['lockedmove'].duration === 2) { - delete source.volatiles['lockedmove']; - } - } - if (move.flags['contact']) { - this.boost({atk: -2}, source, target, move); - } - return null; - }, - }, - }, - spikyshield: { - inherit: true, - condition: { - duration: 1, - onStart(target) { - this.add('-singleturn', target, 'move: Protect'); - }, - onTryHitPriority: 3, - onTryHit(target, source, move) { - if (target.volatiles['substitute'] || !move.flags['protect']) return; - if (move && (move.target === 'self' || move.id === 'suckerpunch')) return; - this.add('-activate', target, 'move: Protect'); - if (move.flags['contact']) { - this.damage(source.baseMaxhp / 8, source, target); - } - return null; - }, - }, - }, - minimize: { - inherit: true, - boosts: { - evasion: 1, - }, - desc: "Raises the user's evasiveness by 1 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Heavy Slam, Phantom Force, Shadow Force, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", - shortDesc: "Raises the user's evasiveness by 1.", - }, - doubleteam: { - inherit: true, - onTryHit(target) { - if (target.boosts.evasion >= 6) { - return false; - } - if (target.hp <= target.maxhp / 4 || target.maxhp === 1) { // Shedinja clause - return false; - } - }, - onHit(target) { - this.directDamage(target.maxhp / 4); - }, - boosts: { - evasion: 1, - }, - desc: "Raises the user's evasiveness by 1 stage; the user loses 1/4 of its max HP.", - shortDesc: "Raises the user's evasiveness by 1; the user loses 25% of its max HP.", - }, - /****************************************************************** - Two-turn moves: - - now a bit better - - Justification: - - Historically, these moves are useless. - ******************************************************************/ - solarbeam: { - inherit: true, - basePower: 80, - basePowerCallback(pokemon, target) { - return 80; - }, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - condition: { - duration: 2, - onLockMove: 'solarbeam', - onStart(pokemon) { - this.heal(pokemon.baseMaxhp / 2); - }, - }, - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Hail, Rain Dance, or Sandstorm. If the user is holding a Power Herb or the weather is Sunny Day, the move completes in one turn. The user heals 1/2 of its max HP during the charge turn. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Charges turn 1. Hits turn 2. No charge in sunlight. Heals 1/2 of the user's max HP, on charge.", - flags: {charge: 1, mirror: 1}, - breaksProtect: true, - }, - razorwind: { - inherit: true, - basePower: 60, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - volatileStatus: 'confusion', - }, - desc: "Has a higher chance for a critical hit. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn. 100% chance to confuse the target. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Charges, then hits foe(s) turn 2. High crit ratio. Confuses target.", - flags: {charge: 1, mirror: 1}, - breaksProtect: true, - }, - skullbash: { - inherit: true, - basePower: 70, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - onTryMove(attacker, defender, move) { - if (attacker.removeVolatile(move.id)) { - return; - } - this.add('-prepare', attacker, move.name); - this.boost({def: 1, spd: 1, accuracy: 1}, attacker, attacker, move); - if (!this.runEvent('ChargeMove', attacker, defender, move)) { - return; - } - attacker.addVolatile('twoturnmove', defender); - return null; - }, - flags: {contact: 1, charge: 1, mirror: 1}, - breaksProtect: true, - desc: "This attack charges on the first turn and executes on the second. Raises the user's Defense, Special Defense, and Accuracy by 1 stage on the first turn. If the user is holding a Power Herb, the move completes in one turn. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Raises user's Def, SpD, Acc by 1 on turn 1. Hits turn 2.", - }, - skyattack: { - inherit: true, - basePower: 95, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - flags: {charge: 1, mirror: 1, distance: 1}, - breaksProtect: true, - desc: "Has a 30% chance to flinch the target and a higher chance for a critical hit. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn. 100% chance to lower the target's Defense by one stage. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Charges, then hits turn 2. 30% flinch. High crit.", - }, - freezeshock: { - inherit: true, - basePower: 95, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - status: 'par', - }, - flags: {charge: 1, mirror: 1}, - breaksProtect: true, - desc: "Has a 100% chance to paralyze the target. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Charges turn 1. Hits turn 2. 100% paralyze.", - }, - iceburn: { - inherit: true, - basePower: 95, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - status: 'brn', - }, - flags: {charge: 1, mirror: 1}, - breaksProtect: true, - desc: "Has a 100% chance to burn the target. This attack charges on the first turn and executes on the second. If the user is holding a Power Herb, the move completes in one turn. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Charges turn 1. Hits turn 2. 100% burn.", - }, - bounce: { - inherit: true, - basePower: 60, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - flags: {contact: 1, charge: 1, mirror: 1, gravity: 1, distance: 1}, - breaksProtect: true, - desc: "Has a 30% chance to paralyze the target. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister. If the user is holding a Power Herb, the move completes in one turn. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Bounces turn 1. Hits turn 2. 30% paralyze.", - }, - fly: { - inherit: true, - basePower: 60, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - flags: {contact: 1, charge: 1, mirror: 1, gravity: 1, distance: 1}, - breaksProtect: true, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister. If the user is holding a Power Herb, the move completes in one turn. 100% chance to lower the target's Defense by one stage. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Flies up on first turn, then strikes the next turn. Lowers target's Def by 1 stage.", - }, - dig: { - inherit: true, - basePower: 60, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Earthquake and Magnitude but takes double damage from them, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn. 100% chance to lower the target's Defense by one stage. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Digs underground turn 1, strikes turn 2. Lowers target's Def by 1 stage.", - flags: {contact: 1, charge: 1, mirror: 1, nonsky: 1}, - breaksProtect: true, - }, - dive: { - inherit: true, - basePower: 60, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - desc: "This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks other than Surf and Whirlpool but takes double damage from them, and is also unaffected by weather. If the user is holding a Power Herb, the move completes in one turn. 100% chance to lower the target's Defense by one stage. This move removes the target's Substitute (if one is active), and bypasses Protect. This move is also a guaranteed critical hit.", - shortDesc: "Dives underwater turn 1, strikes turn 2. Lowers target's Def by 1 stage.", - flags: {contact: 1, charge: 1, mirror: 1, nonsky: 1}, - breaksProtect: true, - }, - phantomforce: { - inherit: true, - basePower: 60, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - desc: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn. Damage doubles and no accuracy check is done if the target has used Minimize while active. 100% chance to lower the target's Defense by one stage. This move removes the target's Substitute (if one is active). This move is also a guaranteed critical hit.", - shortDesc: "Disappears turn 1. Hits turn 2. Breaks protection. Lowers target's Def by 1 stage.", - }, - shadowforce: { - inherit: true, - basePower: 40, - willCrit: true, - accuracy: true, - onTryHit(target) { - target.removeVolatile('substitute'); - }, - secondary: { - chance: 100, - volatileStatus: 'curse', - }, - desc: "If this move is successful, it breaks through the target's Detect, King's Shield, Protect, or Spiky Shield for this turn, allowing other Pokemon to attack the target normally. If the target's side is protected by Crafty Shield, Mat Block, Quick Guard, or Wide Guard, that protection is also broken for this turn and other Pokemon may attack the target's side normally. This attack charges on the first turn and executes on the second. On the first turn, the user avoids all attacks. If the user is holding a Power Herb, the move completes in one turn. Damage doubles and no accuracy check is done if the target has used Minimize while active. 100% chance to inflict a curse (ghost type) onto the target. This move removes the target's Substitute (if one is active). This move is also a guaranteed critical hit.", - shortDesc: "Disappears turn 1. Hits turn 2. Breaks protection. Curses the target.", - }, - skydrop: { - inherit: true, - basePower: 60, - willCrit: true, - accuracy: true, - secondary: { - chance: 100, - boosts: { - def: -1, - }, - }, - desc: "This attack takes the target into the air with the user on the first turn and executes on the second. Pokemon weighing 200kg or more cannot be lifted. On the first turn, the user and the target avoid all attacks other than Gust, Hurricane, Sky Uppercut, Smack Down, Thousand Arrows, Thunder, and Twister. The user and the target cannot make a move between turns, but the target can select a move to use. This move cannot damage Flying-type Pokemon. Fails on the first turn if the target is an ally or if the target has a substitute. Lowers the target's Defense by one stage. This move is a guaranteed critical hit. This move ignores Protection.", - shortDesc: "User and foe fly up turn 1. Damages on turn 2. Lowers target's Def by 1 stage.", - flags: {contact: 1, charge: 1, mirror: 1, gravity: 1, distance: 1}, - breaksProtect: true, - }, - hyperbeam: { - inherit: true, - accuracy: true, - basePower: 100, - willCrit: true, - self: null, - onHit(target, source) { - if (!target.hp) { - source.addVolatile('mustrecharge'); - } - }, - desc: "If this move is successful, the user must recharge on the following turn and cannot make a move. If the target is knocked out by this move, the user does not have to recharge. This move is a guaranteed critical hit.", - shortDesc: "User cannot move next turn, if the target isn't KO'ed.", - }, - gigaimpact: { - inherit: true, - accuracy: true, - basePower: 100, - willCrit: true, - self: null, - onHit(target, source) { - if (!target.hp) { - source.addVolatile('mustrecharge'); - } - }, - desc: "If this move is successful, the user must recharge on the following turn and cannot make a move. If the target is knocked out by this move, the user does not have to recharge. This move is a guaranteed critical hit.", - shortDesc: "User cannot move next turn, if the target isn't KO'ed.", - }, - blastburn: { - inherit: true, - accuracy: true, - basePower: 100, - willCrit: true, - self: null, - onHit(target, source) { - if (!target.hp) { - source.addVolatile('mustrecharge'); - } - }, - desc: "If this move is successful, the user must recharge on the following turn and cannot make a move. If the target is knocked out by this move, the user does not have to recharge. This move is a guaranteed critical hit.", - shortDesc: "User cannot move next turn, if the target isn't KO'ed.", - }, - frenzyplant: { - inherit: true, - accuracy: true, - basePower: 100, - willCrit: true, - self: null, - onHit(target, source) { - if (!target.hp) { - source.addVolatile('mustrecharge'); - } - }, - desc: "If this move is successful, the user must recharge on the following turn and cannot make a move. If the target is knocked out by this move, the user does not have to recharge. This move is a guaranteed critical hit.", - shortDesc: "User cannot move next turn, if the target isn't KO'ed.", - }, - hydrocannon: { - inherit: true, - accuracy: true, - basePower: 100, - willCrit: true, - self: null, - onHit(target, source) { - if (!target.hp) { - source.addVolatile('mustrecharge'); - } - }, - desc: "If this move is successful, the user must recharge on the following turn and cannot make a move. If the target is knocked out by this move, the user does not have to recharge. This move is a guaranteed critical hit.", - shortDesc: "User cannot move next turn, if the target isn't KO'ed.", - }, - rockwrecker: { - inherit: true, - accuracy: true, - basePower: 100, - willCrit: true, - self: null, - onHit(target, source) { - if (!target.hp) { - source.addVolatile('mustrecharge'); - } - }, - desc: "If this move is successful, the user must recharge on the following turn and cannot make a move. If the target is knocked out by this move, the user does not have to recharge. This move is a guaranteed critical hit.", - shortDesc: "User cannot move next turn, if the target isn't KO'ed.", - }, - roaroftime: { - inherit: true, - accuracy: true, - basePower: 100, - willCrit: true, - self: null, - onHit(target, source) { - if (!target.hp) { - source.addVolatile('mustrecharge'); - } - }, - desc: "If this move is successful, the user must recharge on the following turn and cannot make a move. If the target is knocked out by this move, the user does not have to recharge. This move is a guaranteed critical hit.", - shortDesc: "User cannot move next turn, if the target isn't KO'ed.", - }, - bide: { - inherit: true, - onTryHit(pokemon) { - return this.queue.willAct() && this.runEvent('StallMove', pokemon); - }, - condition: { - duration: 2, - onLockMove: 'bide', - onStart(pokemon) { - if (pokemon.removeVolatile('bidestall') || pokemon.hp <= 1) return false; - pokemon.addVolatile('bidestall'); - this.effectState.totalDamage = 0; - this.add('-start', pokemon, 'Bide'); - }, - onDamagePriority: -11, - onDamage(damage, target, source, effect) { - if (!effect || effect.effectType !== 'Move') return; - if (!source || source.isAlly(target)) return; - if (effect.effectType === 'Move' && damage >= target.hp) { - damage = target.hp - 1; - } - this.effectState.totalDamage += damage; - this.effectState.sourceSlot = source.getSlot(); - return damage; - }, - onAfterSetStatus(status, pokemon) { - if (status.id === 'slp') { - pokemon.removeVolatile('bide'); - pokemon.removeVolatile('bidestall'); - } - }, - onBeforeMove(pokemon, t, move) { - if (this.effectState.duration === 1) { - if (!this.effectState.totalDamage) { - this.add('-end', pokemon, 'Bide'); - this.add('-fail', pokemon); - return false; - } - this.add('-end', pokemon, 'Bide'); - const target = this.getAtSlot(this.effectState.sourceSlot); - const moveData = { - damage: this.effectState.totalDamage * 2, - } as unknown as ActiveMove; - this.actions.moveHit(target, pokemon, this.dex.getActiveMove('bide'), moveData); - return false; - } - this.add('-activate', pokemon, 'Bide'); - return false; - }, - onMoveAborted(pokemon) { - pokemon.removeVolatile('bide'); - }, - }, - }, - /****************************************************************** - Snore: - - base power increased to 100 - - Justification: - - Sleep Talk needs some competition - ******************************************************************/ - snore: { - inherit: true, - basePower: 100, - onBasePower(power, user) { - if (user.species.id === 'snorlax') return power * 1.5; - }, - ignoreImmunity: true, - desc: "Has a 30% chance to flinch the target. Fails if the user is not asleep. If the user is a Snorlax, this move does 1.5x more damage.", - }, - /****************************************************************** - Sound-based Normal-type moves: - - not affected by immunities - - Justification: - - they're already affected by Soundproof, also, ghosts can hear - sounds - ******************************************************************/ - boomburst: { - inherit: true, - ignoreImmunity: true, - }, - hypervoice: { - inherit: true, - ignoreImmunity: true, - }, - round: { - inherit: true, - ignoreImmunity: true, - }, - uproar: { - inherit: true, - ignoreImmunity: true, - }, - /****************************************************************** - Bonemerang, Bone Rush, Bone Club moves: - - not affected by Ground immunities - - Bone Rush nerfed to 20 base power so it's not viable on Lucario - - Justification: - - flavor, also Marowak could use a buff - ******************************************************************/ - bonemerang: { - inherit: true, - ignoreImmunity: true, - accuracy: true, - }, - bonerush: { - inherit: true, - basePower: 20, - ignoreImmunity: true, - accuracy: true, - }, - boneclub: { - inherit: true, - ignoreImmunity: true, - accuracy: 90, - }, - /****************************************************************** - Relic Song: - - now 60 bp priority move with no secondary - - Justification: - - Meloetta-P needs viability - ******************************************************************/ - relicsong: { - inherit: true, - basePower: 60, - ignoreImmunity: true, - onHit(target, pokemon) { - if (pokemon.baseSpecies.name !== 'Meloetta' || pokemon.transformed) { - return; - } - const natureChange: {[k: string]: string} = { - Modest: 'Adamant', - Adamant: 'Modest', - Timid: 'Jolly', - Jolly: 'Timid', - }; - let tmpAtkEVs: number; - let Atk2SpA: number; - if (pokemon.species.id === 'meloettapirouette' && pokemon.formeChange('Meloetta', this.effect, false, '[msg]')) { - tmpAtkEVs = pokemon.set.evs.atk; - pokemon.set.evs.atk = pokemon.set.evs.spa; - pokemon.set.evs.spa = tmpAtkEVs; - if (natureChange[pokemon.set.nature]) pokemon.set.nature = natureChange[pokemon.set.nature]; - Atk2SpA = (pokemon.boosts.spa || 0) - (pokemon.boosts.atk || 0); - this.boost({ - atk: Atk2SpA, - spa: -Atk2SpA, - }, pokemon); - } else if (pokemon.formeChange('Meloetta-Pirouette', this.effect, false, '[msg]')) { - tmpAtkEVs = pokemon.set.evs.atk; - pokemon.set.evs.atk = pokemon.set.evs.spa; - pokemon.set.evs.spa = tmpAtkEVs; - if (natureChange[pokemon.set.nature]) pokemon.set.nature = natureChange[pokemon.set.nature]; - Atk2SpA = (pokemon.boosts.spa || 0) - (pokemon.boosts.atk || 0); - this.boost({ - atk: Atk2SpA, - spa: -Atk2SpA, - }, pokemon); - } - // renderer takes care of this for us - pokemon.transformed = false; - }, - priority: 1, - secondary: null, - desc: "Has a 10% chance to cause the target to fall asleep. If this move is successful on at least one target and the user is a Meloetta, it changes to Pirouette Forme if it is currently in Aria Forme, or changes to Aria Forme if it is currently in Pirouette Forme. This forme change does not happen if the Meloetta has the Ability Sheer Force. The Pirouette Forme reverts to Aria Forme when Meloetta is not active. This move also switches Meloetta's SpA and Atk EVs, boosts, and certain natures, specifically: Modest <-> Adamant, Jolly <-> Timid, other natures are left untouched.", - }, - /****************************************************************** - Defend Order, Heal Order: - - now +1 priority - - Justification: - - Vespiquen needs viability - ******************************************************************/ - defendorder: { - inherit: true, - priority: 1, - }, - healorder: { - inherit: true, - priority: 1, - }, - /****************************************************************** - Stealth Rock: - - 1/4 damage to Flying-types, 1/8 damage to everything else - - Justification: - - Never has one move affected the viability of types been affected - by one move to such an extent. Stealth Rock makes many - interesting pokemon NU, changing it gives them a fighting chance. - - Flavor justification: - - Removes from it the status of only residual damage affected by - weaknesses/resistances, which is nice. The double damage to - Flying can be explained as counteracting Flying's immunity to - Spikes. - ******************************************************************/ - stealthrock: { - inherit: true, - condition: { - // this is a side condition - onSideStart(side) { - this.add('-sidestart', side, 'move: Stealth Rock'); - }, - onEntryHazard(pokemon) { - let factor = 2; - if (pokemon.hasType('Flying')) factor = 4; - this.damage(pokemon.maxhp * factor / 16); - }, - }, - desc: "Sets up a hazard on the foe's side of the field. Flying types take 1/4 of their max HP from this hazard. Everything else takes 1/8 of their max HP. Can be removed from the foe's side if any foe uses Rapid Spin or Defog, or is hit by Defog.", - shortDesc: "Hurts foes on switch-in (1/8 for every type except Flying types take 1/4).", - }, - /****************************************************************** - Silver Wind, Ominous Wind, AncientPower: - - 100% chance of raising one stat, instead of 10% chance of raising - all stats - - Silver Wind, Ominous Wind: 90 base power in Hail - - Justification: - - Hail sucks - - Precedent: - - Many weathers strengthen moves. SolarBeam's base power is - modified by weather. - - Flavor justification: - - Winds are more damaging when it's hailing. - ******************************************************************/ - silverwind: { - inherit: true, - basePowerCallback() { - if (this.field.isWeather('hail')) { - return 90; - } - return 60; - }, - secondary: { - chance: 100, - self: { - onHit(target, source) { - const stats: BoostID[] = []; - let stat: BoostID; - for (stat in target.boosts) { - if (stat !== 'accuracy' && stat !== 'evasion' && stat !== 'atk' && target.boosts[stat] < 6) { - stats.push(stat); - } - } - if (stats.length) { - const randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - this.boost(boost); - } else { - return false; - } - }, - }, - }, - desc: "Has a 100% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage. This attack's base power becomes 90, if the weather is set to Hail.", - shortDesc: "Raises all stats by 1 (not acc/eva).", - }, - ominouswind: { - inherit: true, - basePowerCallback() { - if (this.field.isWeather('hail')) { - return 90; - } - return 60; - }, - secondary: { - chance: 100, - self: { - onHit(target, source) { - const stats: BoostID[] = []; - let stat: BoostID; - for (stat in target.boosts) { - if (stat !== 'accuracy' && stat !== 'evasion' && stat !== 'atk' && target.boosts[stat] < 6) { - stats.push(stat); - } - } - if (stats.length) { - const randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - this.boost(boost); - } else { - return false; - } - }, - }, - }, - desc: "Has a 100% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage. This attack's base power becomes 90, if the weather is set to Hail.", - shortDesc: "Raises all stats by 1 (not acc/eva).", - }, - ancientpower: { - inherit: true, - secondary: { - chance: 100, - self: { - onHit(target, source) { - const stats: BoostID[] = []; - let stat: BoostID; - for (stat in target.boosts) { - if (stat !== 'accuracy' && stat !== 'evasion' && stat !== 'atk' && target.boosts[stat] < 6) { - stats.push(stat); - } - } - if (stats.length) { - const randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - this.boost(boost); - } else { - return false; - } - }, - }, - }, - desc: "Has a 100% chance to raise the user's Attack, Defense, Special Attack, Special Defense, and Speed by 1 stage.", - shortDesc: "Raises all stats by 1 (not acc/eva).", - }, - /****************************************************************** - Moves relating to Hail: - - boost in some way - - Justification: - - Hail sucks - ******************************************************************/ - avalanche: { - inherit: true, - basePowerCallback(pokemon, source) { - const lastAttackedBy = pokemon.getLastAttackedBy(); - if (lastAttackedBy) { - if (lastAttackedBy.damage > 0 && lastAttackedBy.thisTurn) { - this.debug('Boosted for getting hit by ' + lastAttackedBy.move); - return this.field.isWeather('hail') ? 180 : 120; - } - } - return this.field.isWeather('hail') ? 90 : 60; - }, - desc: "Power doubles if the user was hit by the target this turn. If the weather is set to hail, this move does 1.5x more damage.", - shortDesc: "Power doubles if user is damaged by the target.", - }, - /****************************************************************** - Direct phazing moves: - - changed to perfect accuracy - - Justification: - - NEXT has buffed perfect accuracy to the point where unbanning - +evasion could be viable. - - as the primary counter to set-up, these should be able to counter - DT (and subDT) in case they are ever unbanned. - - Precedent: - - Haze, a move with a similar role, has perfect accuracy - - Flavor justification: - - Whirlwinds and roaring are wide-area enough that dodging them - isn't generally feasible. - ******************************************************************/ - roar: { - inherit: true, - accuracy: true, - }, - whirlwind: { - inherit: true, - accuracy: true, - }, - /****************************************************************** - Multi-hit moves: - - changed to perfect accuracy - - Justification: - - as an Interesting Mechanic in terms of being able to hit past - Substitute, it could use a buff - - Flavor justification: - - You're going to attack that many times and they're all going to - miss? - ******************************************************************/ - doublehit: { - inherit: true, - accuracy: true, - }, - armthrust: { - inherit: true, - accuracy: true, - }, - barrage: { - inherit: true, - accuracy: true, - }, - beatup: { - inherit: true, - accuracy: true, - }, - bulletseed: { - inherit: true, - accuracy: true, - }, - cometpunch: { - inherit: true, - accuracy: true, - }, - doublekick: { - inherit: true, - accuracy: true, - }, - doubleslap: { - inherit: true, - accuracy: true, - }, - dualchop: { - inherit: true, - accuracy: true, - }, - furyattack: { - inherit: true, - accuracy: true, - }, - furyswipes: { - inherit: true, - accuracy: true, - }, - geargrind: { - inherit: true, - accuracy: true, - }, - iciclespear: { - inherit: true, - accuracy: true, - }, - pinmissile: { - inherit: true, - accuracy: true, - }, - rockblast: { - inherit: true, - accuracy: true, - }, - spikecannon: { - inherit: true, - accuracy: true, - }, - tailslap: { - inherit: true, - accuracy: true, - }, - watershuriken: { - inherit: true, - accuracy: true, - }, - /****************************************************************** - Draining moves: - - buff Leech Life - - Justification: - - Poison, Bug, Grass, and Ghost make sense for draining types. - ******************************************************************/ - leechlife: { - inherit: true, - basePower: 75, - }, - /****************************************************************** - Flying moves: - - now a bit better - - Justification: - - Flying has always been the type that's suffered from limited - distribution. Let's see how it does without that disadvantage. - ******************************************************************/ - twister: { - inherit: true, - basePower: 80, - onBasePower(power, user) { - const GossamerWingUsers = [ - "Butterfree", "Venomoth", "Masquerain", "Dustox", "Beautifly", "Mothim", "Lilligant", "Volcarona", "Vivillon", - ]; - if (user.hasItem('stick') && GossamerWingUsers.includes(user.species.name)) { - return power * 1.5; - } - }, - secondary: { - chance: 30, - volatileStatus: 'confusion', - }, - desc: "Has a 30% chance to flinch the target. Damage doubles if the target is using Bounce, Fly, or Sky Drop. If the user holds the Gossamer Wing, this move does 1.5x more damage.", - shortDesc: "30% chance to flinch the foe(s).", - pp: 15, - type: "Flying", - }, - wingattack: { - inherit: true, - basePower: 40, - accuracy: true, - multihit: [2, 2], - desc: "This move hits twice.", - shortDesc: "Hits twice.", - }, - /****************************************************************** - Moves with not enough drawbacks: - - intensify drawbacks - - Justification: - - Close Combat is way too common. - ******************************************************************/ - closecombat: { - inherit: true, - self: { - boosts: { - def: -2, - spd: -2, - }, - }, - desc: "Lowers the user's Defense and Special Defense by 2 stage.", - shortDesc: "Lowers the user's Defense and Sp. Def by 2.", - }, - /****************************************************************** - Blizzard: - - 30% freeze chance - - Justification: - - freeze was nerfed, Blizzard can now have Thunder/Hurricane-like - secondary chances. - ******************************************************************/ - blizzard: { - inherit: true, - secondary: { - chance: 30, - status: 'frz', - }, - desc: "Has a 30% chance to freeze the target. If the weather is Hail, this move does not check accuracy.", - shortDesc: "30% chance to freeze foe(s). Can't miss in hail.", - }, - /****************************************************************** - Special Ghost and Fighting: - - buff Ghost, nerf Fighting - - Justification: - - Special Fighting shouldn't be so strong. - - Special Ghost is buffed to compensate for having to use HP - Fighting after this - ******************************************************************/ - focusblast: { - inherit: true, - accuracy: 30, - }, - shadowball: { - inherit: true, - basePower: 90, - secondary: { - chance: 30, - boosts: { - spd: -1, - }, - }, - desc: "Has a 30% chance to lower the target's Special Defense by 1 stage.", - shortDesc: "30% chance to lower the target's Sp. Def by 1.", - }, - /****************************************************************** - Selfdestruct and Explosion: - - 200 and 250 base power autocrit - - Justification: - - these were nerfed unreasonably in gen 5, they're now somewhat - usable again. - ******************************************************************/ - selfdestruct: { - inherit: true, - basePower: 200, - accuracy: true, - willCrit: true, - desc: "The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Ability Damp. This move is a guaranteed critical hit.", - }, - explosion: { - inherit: true, - basePower: 250, - accuracy: true, - willCrit: true, - desc: "The user faints after using this move, even if this move fails for having no target. This move is prevented from executing if any active Pokemon has the Ability Damp. This move is a guaranteed critical hit.", - }, - /****************************************************************** - Scald and Steam Eruption: - - base power not affected by weather - - 60% burn in sun - - Justification: - - rain could use a nerf - ******************************************************************/ - scald: { - inherit: true, - onModifyMove(move) { - switch (this.field.effectiveWeather()) { - case 'sunnyday': - move.secondary!.chance = 60; - break; - } - }, - desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen. If the weather is set to Sunny Day, there is a 60% chance to burn the target.", - }, - steameruption: { - inherit: true, - accuracy: 100, - onModifyMove(move) { - switch (this.field.effectiveWeather()) { - case 'sunnyday': - move.secondary!.chance = 60; - break; - } - }, - desc: "Has a 30% chance to burn the target. The target thaws out if it is frozen. If the weather is set to Sunny Day, there is a 60% chance to burn the target.", - }, - /****************************************************************** - High Jump Kick: - - 100 bp - - Justification: - - Blaziken nerf - ******************************************************************/ - highjumpkick: { - inherit: true, - basePower: 100, - }, - /****************************************************************** - Echoed Voice: - - change - - Justification: - - no one uses Echoed Voice. - ******************************************************************/ - echoedvoice: { - inherit: true, - basePower: 80, - basePowerCallback() { - return 80; - }, - ignoreImmunity: true, - onHit(target, source) { - if (!target.side.addSlotCondition(target, 'futuremove')) return false; - Object.assign(target.side.slotConditions[target.position]['futuremove'], { - duration: 3, - move: 'echoedvoice', - source: source, - moveData: { - id: 'echoedvoice', - name: "Echoed Voice", - accuracy: 100, - basePower: 80, - category: "Special", - priority: 0, - flags: {futuremove: 1}, - ignoreImmunity: false, - effectType: 'Move', - type: 'Normal', - }, - }); - this.add('-start', source, 'move: Echoed Voice'); - return null; - }, - desc: "Deals damage two turns after this move is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move or Future Sight is already in effect for the target's position.", - shortDesc: "Hits two turns after being used.", - }, - /****************************************************************** - Rapid Spin, Rock Throw: - - remove hazards before dealing damage - - double damage if hazards are removed - - Rock Throw removes SR only - - Rapid Spin now has base power 30 - - Rock Throw now has accuracy 100 - - Justification: - - hazards could use a nerf - ******************************************************************/ - rapidspin: { - inherit: true, - basePower: 30, - onBasePower(power, user) { - let doubled = false; - if (user.removeVolatile('leechseed')) { - this.add('-end', user, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + user); - doubled = true; - } - const sideConditions = ['spikes', 'toxicspikes', 'stealthrock']; - for (const condition of sideConditions) { - if (user.side.removeSideCondition(condition)) { - this.add('-sideend', user.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + user); - doubled = true; - } - } - if (user.volatiles['partiallytrapped']) { - this.add('-remove', user, user.volatiles['partiallytrapped'].sourceEffect.name, '[from] move: Rapid Spin', '[of] ' + user, '[partiallytrapped]'); - doubled = true; - delete user.volatiles['partiallytrapped']; - } - if (doubled) return power * 2; - }, - self: undefined, - desc: "If this move is successful the user removes hazards before it attacks, the effects of Leech Seed and partial-trapping moves end for the user, and all hazards are removed from the user's side of the field. This move does double the damage, if a hazard is removed.", - }, - rockthrow: { - inherit: true, - accuracy: 100, - onBasePower(power, user) { - if (user.side.removeSideCondition('stealthrock')) { - this.add('-sideend', user.side, "Stealth Rock", '[from] move: Rapid Spin', '[of] ' + user); - return power * 2; - } - }, - desc: "This move attempts to remove Stealth Rocks from the user's side, if Stealth Rocks are removed this move does double the damage.", - shortDesc: "Frees the user of Stealth Rock, does 2x damage if it does.", - }, - /****************************************************************** - New feature: Signature Pokemon - - Selected weak moves receive a 1.5x damage boost when used by a - compatible Pokemon. - - Justification: - - Gives a use for many otherwise competitively unviable moves - - This is the sort of change that Game Freak is likely to make - ******************************************************************/ - firefang: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'flareon') return this.chainModify(1.5); - }, - accuracy: 100, - secondaries: [ - {chance: 20, status: 'brn'}, - {chance: 30, volatileStatus: 'flinch'}, - ], - desc: "Has a 20% chance to burn the target and a 30% chance to flinch it. If the user is a Flareon, this move does 1.5x more damage.", - shortDesc: "20% chance to burn. 30% chance to flinch.", - }, - icefang: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'walrein') return this.chainModify(1.5); - }, - accuracy: 100, - secondaries: [ - {chance: 20, status: 'frz'}, - {chance: 30, volatileStatus: 'flinch'}, - ], - desc: "Has a 20% chance to freeze the target and a 30% chance to flinch it. If the user is a Walrein, this move does 1.5x more damage.", - shortDesc: "20% chance to freeze. 30% chance to flinch.", - }, - thunderfang: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'luxray') return this.chainModify(1.5); - }, - accuracy: 100, - secondaries: [ - {chance: 20, status: 'par'}, - {chance: 30, volatileStatus: 'flinch'}, - ], - desc: "Has a 20% chance to paralyze the target and a 30% chance to flinch it. If the user is a Luxray, this move does 1.5x more damage.", - shortDesc: "20% chance to paralyze. 30% chance to flinch.", - }, - poisonfang: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'drapion') return this.chainModify(1.5); - }, - accuracy: 100, - secondaries: [ - {chance: 100, status: 'tox'}, - {chance: 30, volatileStatus: 'flinch'}, - ], - desc: "Has a 100% chance to badly poison the target and a 30% chance to flinch it. If the user is a Drapion, this move does 1.5x more damage.", - shortDesc: "100% chance to badly poison. 30% chance to flinch.", - }, - poisontail: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'seviper') return this.chainModify(1.5); - }, - accuracy: 100, - secondary: { - chance: 60, - status: 'tox', - }, - desc: "Has a 60% chance to badly poison the target and a higher chance for a critical hit. If the user is a Seviper, this move does 1.5x more damage.", - shortDesc: "High critical hit ratio. 60% chance to badly poison.", - }, - slash: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'persian') return this.chainModify(1.5); - }, - secondary: { - chance: 30, - boosts: { - def: -1, - }, - }, - desc: "Has a higher chance for a critical hit. 30% chance to lower the target's Defense by one stage. If the user is a Persian, this move does 1.5x more damage.", - shortDesc: "High critical hit ratio. 30% chance to lower Def by 1.", - }, - sludge: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'muk') return this.chainModify(1.5); - }, - secondary: { - chance: 100, - status: 'psn', - }, - desc: "Has a 100% chance to poison the target. If the user is a Muk, this move does 1.5x more damage.", - shortDesc: "100% chance to poison the target.", - }, - smog: { - inherit: true, - basePower: 75, - accuracy: 100, - onBasePower(power, user) { - if (user.species.id === 'weezing') return this.chainModify(1.5); - }, - secondary: { - chance: 100, - status: 'psn', - }, - desc: "Has a 100% chance to poison the target. If the user is a Weezing, this move does 1.5x more damage.", - shortDesc: "100% chance to poison the target.", - }, - flamecharge: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'rapidash') return this.chainModify(1.5); - }, - desc: "Has a 100% chance to raise the user's Speed by 1 stage. If the user is a Rapidash, this move does 1.5x more damage.", - }, - flamewheel: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'darmanitan') return this.chainModify(1.5); - }, - desc: "Has a 10% chance to burn the target. If the user is a Darmanitan, this move does 1.5x more damage.", - }, - spark: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'eelektross') return this.chainModify(1.5); - }, - desc: "Has a 30% chance to paralyze the target. If the user is an Eelektross, this move does 1.5x more damage.", - }, - triplekick: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'hitmontop') return this.chainModify(1.5); - }, - accuracy: true, - desc: "Hits three times. Power increases to 20 for the second hit and 30 for the third. This move checks accuracy for each hit, and the attack ends if the target avoids any of the hits. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Ability Skill Link, this move will always hit three times. If the user is a Hitmontop, this move does 1.5x more damage.", - }, - bubblebeam: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'kingdra') return this.chainModify(1.5); - }, - secondary: { - chance: 30, - boosts: { - spe: -1, - }, - }, - desc: "Has a 30% chance to lower the target's Speed by 1 stage. If the user is a Kingdra, this move does 1.5x more damage.", - shortDesc: "30% chance to lower the target's Speed by 1.", - }, - electroweb: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'galvantula') return this.chainModify(1.5); - }, - desc: "Has a 100% chance to lower the target's Speed by 1 stage. If the user is a Galvantula, this move does 1.5x more damage.", - accuracy: 100, - }, - gigadrain: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'beautifly') return this.chainModify(1.5); - }, - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. If the user is a Beautifly, this move does 1.5x more damage.", - accuracy: 100, - }, - icywind: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'glaceon') return this.chainModify(1.5); - }, - desc: "Has a 100% chance to lower the target's Speed by 1 stage. If the user is a Glaceon, this move does 1.5x more damage.", - accuracy: 100, - }, - mudshot: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'swampert') return this.chainModify(1.5); - }, - desc: "Has a 100% chance to lower the target's Speed by 1 stage. If the user is a Swampert, this move does 1.5x more damage.", - accuracy: 100, - }, - glaciate: { - inherit: true, - basePower: 80, - onBasePower(power, user) { - if (user.species.id === 'kyurem') return this.chainModify(1.5); - }, - desc: "Has a 100% chance to lower the target's Speed by 1 stage. If the user is a Kyurem, this move does 1.5x more damage.", - accuracy: 100, - }, - octazooka: { - inherit: true, - basePower: 75, - onBasePower(power, user) { - if (user.species.id === 'octillery') return this.chainModify(1.5); - }, - accuracy: 90, - secondary: { - chance: 100, - boosts: { - accuracy: -1, - }, - }, - desc: "Has a 100% chance to lower the target's accuracy by 1 stage. If the user is a Octillery, this move does 1.5x more damage.", - shortDesc: "100% chance to lower the target's accuracy by 1.", - }, - leaftornado: { - inherit: true, - basePower: 75, - onBasePower(power, user) { - if (user.species.id === 'serperior') return this.chainModify(1.5); - }, - accuracy: 90, - secondary: { - chance: 100, - boosts: { - accuracy: -1, - }, - }, - desc: "Has a 100% chance to lower the target's accuracy by 1 stage. If the user is a Serperior, this move does 1.5x more damage.", - shortDesc: "100% chance to lower the target's accuracy by 1.", - }, - iceshard: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'weavile') return this.chainModify(1.5); - }, - desc: "If the user is a Weavile, this move does 1.5x more damage.", - }, - aquajet: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'sharpedo') return this.chainModify(1.5); - }, - desc: "If the user is a Sharpedo, this move does 1.5x more damage.", - }, - machpunch: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'hitmonchan') return this.chainModify(1.5); - }, - desc: "If the user is a Hitmonchan, this move does 1.5x more damage.", - }, - shadowsneak: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'banette') return this.chainModify(1.5); - }, - desc: "If the user is a Banette, this move does 1.5x more damage.", - }, - steelwing: { - inherit: true, - basePower: 60, - onBasePower(power, user) { - if (user.species.id === 'skarmory') return this.chainModify(1.5); - }, - accuracy: 100, - secondary: { - chance: 50, - self: { - boosts: { - def: 1, - }, - }, - }, - desc: "Has a 50% chance to raise the user's Defense by 1 stage. If the user is a Skarmory, this move does 1.5x more damage.", - shortDesc: "50% chance to raise the user's Defense by 1.", - }, - surf: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'masquerain') return this.chainModify(1.5); - }, - secondary: { - chance: 10, - boosts: { - spe: -1, - }, - }, - desc: "Damage doubles if the target is using Dive. 10% chance to lower the target's Speed by one stage. If the user is a Masquerain, this move does 1.5x more damage.", - shortDesc: "Power doubles on Dive. 10% chance to lower Spe by 1.", - }, - hiddenpower: { - inherit: true, - onBasePower(power, user) { - if (user.species.id === 'unown') return this.chainModify(1.5); - }, - }, - /****************************************************************** - Moves with accuracy not a multiple of 10% - - round up to a multiple of 10% - - Rock Slide and Charge Beam also round up to 100% - - Justification: - - missing Hydro Pump is losing a gamble, but missing V-create is - nothing but hax - - Rock Slide is included for being similar enough to Air Slash - - Charge Beam is included because its 30% chance of no boost is enough - ******************************************************************/ - jumpkick: { - inherit: true, - accuracy: 100, - }, - razorshell: { - inherit: true, - accuracy: 100, - }, - drillrun: { - inherit: true, - accuracy: 100, - }, - vcreate: { - inherit: true, - accuracy: 100, - }, - aeroblast: { - inherit: true, - accuracy: 100, - }, - sacredfire: { - inherit: true, - accuracy: 100, - }, - spacialrend: { - inherit: true, - accuracy: 100, - }, - originpulse: { - inherit: true, - accuracy: 90, - }, - precipiceblades: { - inherit: true, - accuracy: 90, - }, - airslash: { - inherit: true, - accuracy: 100, - }, - rockslide: { - inherit: true, - accuracy: 100, - }, - chargebeam: { - inherit: true, - accuracy: 100, - }, - aircutter: { - inherit: true, - accuracy: 100, - }, - furycutter: { - inherit: true, - accuracy: 100, - }, - flyingpress: { - inherit: true, - accuracy: 100, - }, - crushclaw: { - inherit: true, - accuracy: 100, - }, - razorleaf: { - inherit: true, - accuracy: 100, - }, - stringshot: { - inherit: true, - accuracy: 100, - }, - metalclaw: { - inherit: true, - accuracy: 100, - }, - diamondstorm: { - inherit: true, - accuracy: 100, - }, - snarl: { - inherit: true, - accuracy: 100, - }, - powerwhip: { - inherit: true, - accuracy: 90, - }, - seedflare: { - inherit: true, - accuracy: 90, - }, - willowisp: { - inherit: true, - accuracy: 90, - }, - meteormash: { - inherit: true, - accuracy: 90, - }, - boltstrike: { - inherit: true, - accuracy: 90, - secondary: { - chance: 30, - status: 'par', - }, - desc: "Has a 30% chance to paralyze the target.", - shortDesc: "30% chance to paralyze the target.", - }, - blueflare: { - inherit: true, - accuracy: 90, - secondary: { - chance: 30, - status: 'brn', - }, - desc: "Has a 30% chance to burn the target.", - shortDesc: "30% chance to burn the target.", - }, - dragonrush: { - inherit: true, - accuracy: 80, - }, - rocktomb: { - inherit: true, - accuracy: 100, - }, - fireblast: { - inherit: true, - accuracy: 80, - secondary: { - chance: 20, - status: 'brn', - }, - desc: "Has a 20% chance to burn the target.", - shortDesc: "20% chance to burn the target.", - }, - irontail: { - inherit: true, - accuracy: 80, - }, - magmastorm: { - inherit: true, - accuracy: 80, - }, - megahorn: { - inherit: true, - accuracy: 90, - }, - megapunch: { - inherit: true, - accuracy: 90, - }, - megakick: { - inherit: true, - accuracy: 80, - }, - slam: { - inherit: true, - accuracy: 80, - }, - rollingkick: { - inherit: true, - accuracy: 90, - }, - takedown: { - inherit: true, - accuracy: 90, - }, - mudbomb: { - inherit: true, - accuracy: 90, - }, - mirrorshot: { - inherit: true, - accuracy: 90, - }, - rockclimb: { - inherit: true, - accuracy: 90, - }, - poisonpowder: { - inherit: true, - accuracy: 80, - }, - stunspore: { - inherit: true, - accuracy: 80, - }, - sleeppowder: { - inherit: true, - accuracy: 80, - }, - sweetkiss: { - inherit: true, - accuracy: 80, - }, - lovelykiss: { - inherit: true, - accuracy: 80, - }, - whirlpool: { - inherit: true, - accuracy: 90, - }, - firespin: { - inherit: true, - accuracy: 90, - }, - clamp: { - inherit: true, - accuracy: 90, - }, - sandtomb: { - inherit: true, - accuracy: 90, - }, - bind: { - inherit: true, - accuracy: 90, - }, - grasswhistle: { - inherit: true, - accuracy: 60, - }, - sing: { - inherit: true, - accuracy: 60, - }, - supersonic: { - inherit: true, - accuracy: 60, - }, - screech: { - inherit: true, - accuracy: 90, - }, - metalsound: { - inherit: true, - accuracy: 90, - }, - /****************************************************************** - Signature moves and other moves with limited distribution: - - buffed in various ways - - Justification: - - more metagame variety is always good - ******************************************************************/ - psychocut: { - inherit: true, - basePower: 90, - }, - twineedle: { - inherit: true, - accuracy: true, - basePower: 50, - }, - drillpeck: { - inherit: true, - basePower: 100, - pp: 10, - }, - needlearm: { - inherit: true, - basePower: 100, - pp: 10, - }, - leafblade: { - inherit: true, - basePower: 100, - pp: 10, - }, - attackorder: { - inherit: true, - basePower: 100, - pp: 10, - }, - withdraw: { - inherit: true, - boosts: { - def: 1, - spd: 1, - }, - desc: "Raises the user's Defense and Special Defense by 1 stage.", - shortDesc: "Raises the user's Def and SpD by 1.", - }, - paraboliccharge: { - inherit: true, - basePower: 40, - secondary: { - chance: 100, - boosts: { - spa: -1, - spd: -1, - }, - self: { - boosts: { - spa: 1, - spd: 1, - }, - }, - }, - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. 100% chance to lower the target's Special Attack and Special Defense by one stage, and boost the user's Special Attack and Special Defense by one stage.", - }, - drainingkiss: { - inherit: true, - basePower: 40, - secondary: { - chance: 100, - boosts: { - spa: -1, - atk: -1, - }, - self: { - boosts: { - spa: 1, - atk: 1, - }, - }, - }, - desc: "The user recovers 3/4 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. 100% chance to lower the target's Special Attack and Special Defense by one stage, and boost the user's Special Attack and Special Defense by one stage.", - }, - stomp: { - inherit: true, - basePower: 100, - accuracy: true, - pp: 10, - }, - steamroller: { - inherit: true, - basePower: 100, - accuracy: true, - pp: 10, - }, - crabhammer: { - inherit: true, - basePower: 100, - accuracy: 100, - }, - autotomize: { - inherit: true, - boosts: { - spe: 3, - }, - desc: "Raises the user's Speed by 3 stages. If the user's Speed was changed, the user's weight is reduced by 100kg as long as it remains active. This effect is stackable but cannot reduce the user's weight to less than 0.1kg.", - shortDesc: "Raises the user's Speed by 3; user loses 100 kg.", - }, - dizzypunch: { - inherit: true, - basePower: 90, - secondary: { - chance: 50, - volatileStatus: 'confusion', - }, - desc: "Has a 50% chance to confuse the target.", - shortDesc: "50% chance to confuse the target.", - }, - nightdaze: { - inherit: true, - accuracy: 100, - onModifyMove(move, user) { - if (user.illusion) { - const illusionMoves = user.illusion.moves.filter(m => this.dex.moves.get(m).category !== 'Status'); - if (!illusionMoves.length) return; - // I'll figure out a better fix for this later - (move as any).name = this.dex.moves.get(this.sample(illusionMoves)).name; - } - }, - desc: "Has a 40% chance to lower the target's accuracy by 1 stage. If Illusion is active, displays as a random non-Status move in the copied Pokémon's moveset.", - }, - muddywater: { - inherit: true, - basePower: 85, - accuracy: 100, - }, - powergem: { - inherit: true, - basePower: 40, - accuracy: true, - multihit: [2, 2], - desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit.", - shortDesc: "Hits 2 times in one turn.", - }, - acid: { - inherit: true, - ignoreImmunity: true, - }, - acidspray: { - inherit: true, - ignoreImmunity: true, - }, - eggbomb: { - inherit: true, - accuracy: 80, - basePower: 60, - willCrit: true, - desc: "This move is always a critical hit unless the target is under the effect of Lucky Chant or has the Abilities Battle Armor or Shell Armor.", - shortDesc: "Always results in a critical hit.", - }, - sacredsword: { - inherit: true, - basePower: 95, - }, - triattack: { - inherit: true, - accuracy: true, - basePower: 30, - desc: "Hits 3 times. Has a 10% chance to burn, paralyze or freeze the target each time.", - shortDesc: "Hits 3x; 10% chance to paralyze/burn/freeze.", - multihit: [3, 3], - secondary: { - chance: 10, - onHit(target, source) { - const result = this.random(3); - if (result === 0) { - target.trySetStatus('brn', source); - } else if (result === 1) { - target.trySetStatus('par', source); - } else { - target.trySetStatus('frz', source); - } - }, - }, - }, - /****************************************************************** - Custom moves: - ******************************************************************/ - magikarpsrevenge: { - num: 0, - accuracy: true, - basePower: 120, - category: "Physical", - desc: "Has a 100% chance to confuse the target and lower its Defense and Special Attack by 1 stage. The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. The user steals the foe's boosts. If this move is successful, the weather changes to rain unless it is already in effect, and the user gains the effects of Aqua Ring and Magic Coat.", - shortDesc: "Does many things turn 1. Can't move turn 2.", - name: "Magikarp's Revenge", - pp: 10, - priority: 0, - flags: {contact: 1, recharge: 1, protect: 1, mirror: 1, heal: 1}, - noSketch: true, - drain: [1, 2], - onTry(pokemon) { - if (pokemon.species.name !== 'Magikarp') { - this.add('-fail', pokemon, 'move: Magikarp\'s Revenge'); - return null; - } - }, - self: { - onHit(source) { - this.field.setWeather('raindance'); - source.addVolatile('magiccoat'); - source.addVolatile('aquaring'); - }, - volatileStatus: 'mustrecharge', - }, - secondary: { - chance: 100, - volatileStatus: 'confusion', - boosts: { - def: -1, - spa: -1, - }, - }, - stealsBoosts: true, - target: "normal", - type: "Water", - contestType: "Cute", - }, -}; diff --git a/data/mods/gennext/pokedex.ts b/data/mods/gennext/pokedex.ts deleted file mode 100644 index d04603358bc7..000000000000 --- a/data/mods/gennext/pokedex.ts +++ /dev/null @@ -1,18 +0,0 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { - genesectdouse: { - inherit: true, - types: ["Bug", "Water"], - }, - genesectshock: { - inherit: true, - types: ["Bug", "Electric"], - }, - genesectburn: { - inherit: true, - types: ["Bug", "Fire"], - }, - genesectchill: { - inherit: true, - types: ["Bug", "Ice"], - }, -}; diff --git a/data/mods/gennext/scripts.ts b/data/mods/gennext/scripts.ts deleted file mode 100644 index c0916bf04b6b..000000000000 --- a/data/mods/gennext/scripts.ts +++ /dev/null @@ -1,145 +0,0 @@ -export const Scripts: ModdedBattleScriptsData = { - inherit: 'gen6', - init() { - this.modData('Pokedex', 'cherrimsunshine').types = ['Grass', 'Fire']; - - // Give Hurricane to all the Bug/Flying Quiver-dancers - // Precedent: Volcarona - this.modData('Learnsets', 'masquerain').learnset.hurricane = ['5L100']; - this.modData('Learnsets', 'butterfree').learnset.hurricane = ['5L100']; - this.modData('Learnsets', 'beautifly').learnset.hurricane = ['5L100']; - this.modData('Learnsets', 'mothim').learnset.hurricane = ['5L100']; - - // Masquerain also gets Surf because we want it to be viable - this.modData('Learnsets', 'masquerain').learnset.surf = ['5M']; - - // Roserade gets Sludge - this.modData('Learnsets', 'roserade').learnset.sludge = ['5L100']; - - // Meloetta: Fiery Dance - this.modData('Learnsets', 'meloetta').learnset.fierydance = ['5L100']; - - // Galvantula: Zap Cannon - this.modData('Learnsets', 'galvantula').learnset.zapcannon = ['5L100']; - - // Virizion: Horn Leech - this.modData('Learnsets', 'virizion').learnset.hornleech = ['5L100']; - - // Scolipede, Milotic, Steelix: Coil - this.modData('Learnsets', 'milotic').learnset.coil = ['5L100']; - this.modData('Learnsets', 'scolipede').learnset.coil = ['5L100']; - this.modData('Learnsets', 'steelix').learnset.coil = ['5L100']; - - // Rotoms: lots of moves - this.modData('Learnsets', 'rotomwash').learnset.bubblebeam = ['5L100']; - this.modData('Learnsets', 'rotomfan').learnset.hurricane = ['5L100']; - this.modData('Learnsets', 'rotomfan').learnset.twister = ['5L100']; - this.modData('Learnsets', 'rotomfrost').learnset.frostbreath = ['5L100']; - this.modData('Learnsets', 'rotomheat').learnset.heatwave = ['5L100']; - this.modData('Learnsets', 'rotommow').learnset.magicalleaf = ['5L100']; - - // Zororark: much wider movepool - this.modData('Learnsets', 'zoroark').learnset.earthquake = ['5M']; - this.modData('Learnsets', 'zoroark').learnset.stoneedge = ['5M']; - this.modData('Learnsets', 'zoroark').learnset.icebeam = ['5M']; - this.modData('Learnsets', 'zoroark').learnset.xscissor = ['5M']; - this.modData('Learnsets', 'zoroark').learnset.gigadrain = ['5T']; - this.modData('Learnsets', 'zoroark').learnset.superpower = ['5T']; - - // Mantine: lots of moves - this.modData('Learnsets', 'mantine').learnset.recover = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.whirlwind = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.batonpass = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.wish = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.soak = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.lockon = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.acidspray = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.octazooka = ['5L100']; - this.modData('Learnsets', 'mantine').learnset.stockpile = ['5L100']; - - // eggSketch! :D - this.modData('Learnsets', 'aipom').learnset.sketch = ['5E']; - this.modData('Learnsets', 'spinda').learnset.sketch = ['5E']; - this.modData('Learnsets', 'mimejr').learnset.sketch = ['5E']; - - // Tail Glow :D - this.modData('Learnsets', 'finneon').learnset.tailglow = ['5L100']; - this.modData('Learnsets', 'lumineon').learnset.tailglow = ['5L100']; - this.modData('Learnsets', 'mareep').learnset.tailglow = ['5L100']; - this.modData('Learnsets', 'ampharos').learnset.tailglow = ['5L100']; - this.modData('Learnsets', 'chinchou').learnset.tailglow = ['5L100']; - this.modData('Learnsets', 'lanturn').learnset.tailglow = ['5L100']; - - // Spinda: Contrary - this.modData('Learnsets', 'spinda').learnset.vcreate = ['5L100']; - this.modData('Learnsets', 'spinda').learnset.superpower = ['5L100']; - this.modData('Learnsets', 'spinda').learnset.closecombat = ['5L100']; - this.modData('Learnsets', 'spinda').learnset.overheat = ['5L100']; - this.modData('Learnsets', 'spinda').learnset.leafstorm = ['5L100']; - this.modData('Learnsets', 'spinda').learnset.dracometeor = ['5L100']; - - // Venusaur - this.modData('Pokedex', 'venusaur').abilities['1'] = 'Leaf Guard'; - // Charizard - this.modData('Pokedex', 'charizard').abilities['1'] = 'Flame Body'; - // Blastoise - this.modData('Pokedex', 'blastoise').abilities['1'] = 'Shell Armor'; - // Meganium - this.modData('Pokedex', 'meganium').abilities['1'] = 'Harvest'; - // Typhlosion - this.modData('Pokedex', 'typhlosion').abilities['1'] = 'Magma Armor'; - // Feraligatr - this.modData('Pokedex', 'feraligatr').abilities['1'] = 'Strong Jaw'; - // Sceptile - this.modData('Pokedex', 'sceptile').abilities['1'] = 'Limber'; - // Blaziken - this.modData('Pokedex', 'blaziken').abilities['1'] = 'Reckless'; - // Swampert - this.modData('Pokedex', 'swampert').abilities['1'] = 'Hydration'; - // Torterra - this.modData('Pokedex', 'torterra').abilities['1'] = 'Weak Armor'; - // Infernape - this.modData('Pokedex', 'infernape').abilities['1'] = 'No Guard'; - // Empoleon - this.modData('Pokedex', 'empoleon').abilities['1'] = 'Ice Body'; - // Serperior - this.modData('Pokedex', 'serperior').abilities['1'] = 'Own Tempo'; - // Emboar - this.modData('Pokedex', 'emboar').abilities['1'] = 'Sheer Force'; - // Samurott - this.modData('Pokedex', 'samurott').abilities['1'] = 'Technician'; - // Chesnaught - this.modData('Pokedex', 'chesnaught').abilities['1'] = 'Battle Armor'; - // Delphox - this.modData('Pokedex', 'delphox').abilities['1'] = 'Magic Guard'; - // Greninja - this.modData('Pokedex', 'greninja').abilities['1'] = 'Pickpocket'; - - // Levitate mons - this.modData('Pokedex', 'unown').abilities['1'] = 'Shadow Tag'; - this.modData('Pokedex', 'flygon').abilities['1'] = 'Compound Eyes'; - this.modData('Pokedex', 'flygon').abilities['H'] = 'Sand Rush'; - this.modData('Pokedex', 'weezing').abilities['1'] = 'Aftermath'; - this.modData('Pokedex', 'eelektross').abilities['1'] = 'Poison Heal'; - this.modData('Pokedex', 'claydol').abilities['1'] = 'Filter'; - this.modData('Pokedex', 'mismagius').abilities['1'] = 'Cursed Body'; - this.modData('Pokedex', 'cryogonal').abilities['1'] = 'Ice Body'; - this.modData('Pokedex', 'mesprit').abilities['1'] = 'Serene Grace'; - this.modData('Pokedex', 'uxie').abilities['1'] = 'Synchronize'; - this.modData('Pokedex', 'azelf').abilities['1'] = 'Steadfast'; - this.modData('Pokedex', 'hydreigon').abilities['1'] = 'Sheer Force'; - // Rotoms - this.modData('Pokedex', 'rotom').abilities['1'] = 'Trace'; - this.modData('Pokedex', 'rotomwash').abilities['1'] = 'Trace'; - this.modData('Pokedex', 'rotomheat').abilities['1'] = 'Trace'; - this.modData('Pokedex', 'rotommow').abilities['1'] = 'Trace'; - this.modData('Pokedex', 'rotomfrost').abilities['1'] = 'Trace'; - this.modData('Pokedex', 'rotomfan').abilities['1'] = 'Trace'; - - // Adaptability change - this.modData('Pokedex', 'crawdaunt').abilities['H'] = 'Tough Claws'; - - // Vespiquen - this.modData('Pokedex', 'vespiquen').abilities['1'] = 'Swarm'; - }, -}; diff --git a/data/mods/littlecolosseum/abilities.ts b/data/mods/littlecolosseum/abilities.ts new file mode 100644 index 000000000000..e9fe1f5299aa --- /dev/null +++ b/data/mods/littlecolosseum/abilities.ts @@ -0,0 +1,168 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + hazardabsorb: { + // implemented in moves.ts + flags: {}, + shortDesc: "This Pokemon doesn't take damage from hazards.", + name: "Hazard Absorb", + rating: 4, + }, + proteangen7: { + onPrepareHit(source, target, move) { + if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return; + const type = move.type; + if (type && type !== '???' && source.getTypes().join() !== type) { + if (!source.setType(type)) return; + this.add('-start', source, 'typechange', type, '[from] ability: Protean (Gen 7)'); + } + }, + flags: {}, + name: "Protean (Gen 7)", + shortDesc: "This Pokemon's type changes to the type of the move it is using.", + rating: 4, + num: -168, + }, + spikedfur: { + onDamagingHitOrder: 1, + onDamagingHit(damage, target, source, move) { + const bp = move.basePower; + if (bp <= 60) { + this.damage(source.baseMaxhp / 8, source, target); + } + }, + flags: {}, + name: "Spiked Fur", + rating: 2.5, + shortDesc: "Pokemon that use moves with ≤60 BP against this Pokemon lose 1/8 of their max HP.", + }, + galewings: { + onModifyPriority(priority, pokemon, target, move) { + for (const poke of this.getAllActive()) { + if (poke.hasAbility('counteract') && poke.side.id !== pokemon.side.id && !poke.abilityState.ending) { + return; + } + } + if (move?.type === 'Flying' && pokemon.hp >= pokemon.maxhp / 4) return priority + 1; + }, + flags: {}, + name: "Gale Wings", + shortDesc: "If this Pokemon has 25% of its max HP or more, its Flying-type moves have +1 priority.", + rating: 3, + num: 177, + }, + magicresistance: { + onSourceModifyAtkPriority: 6, + onSourceModifyAtk(atk, attacker, defender, move) { + if (move.type === 'Ice' || move.type === 'Fire') { + this.debug('Magic Resistance weaken'); + return this.chainModify(0.5); + } + }, + onSourceModifySpAPriority: 5, + onSourceModifySpA(atk, attacker, defender, move) { + if (move.type === 'Ice' || move.type === 'Fire') { + this.debug('Magic Resistance weaken'); + return this.chainModify(0.5); + } + }, + onAfterMoveSecondarySelf(source, target, move) { + if (!move || !target || source.switchFlag === true) return; + if (target !== source && move.category !== 'Status') { + if (source.item || source.volatiles['gem'] || move.id === 'fling') return; + const yourItem = target.takeItem(source); + if (!yourItem) return; + if (!source.setItem(yourItem)) { + target.item = yourItem.id; // bypass setItem so we don't break choicelock or anything + return; + } + this.add('-item', source, yourItem, '[from] ability: Magic Resistance', '[of] ' + target); + } + }, + flags: {breakable: 1}, + name: "Magic Resistance", + rating: 3.5, + shortDesc: "This Pokemon steals foe's item after hitting them, and takes 50% damage from Fire/Ice.", + }, + hover: { + // implemented in moves.ts + // and also scripts.ts + flags: {}, + shortDesc: "This Pokemon is immune to Ground moves and Stealth Rock.", + name: "Hover", + rating: 4, + }, + stall: { + onBeforeMove(target, source, move) { + if (move.category === 'Status') { + this.actions.useMove(move, target, {target: source}); + } + }, + onFractionalPriority: -0.1, + flags: {}, + shortDesc: "This Pokemon's status moves are used twice, but it usually moves last.", + name: "Stall", + rating: 1, + num: 100, + }, + gowiththeflow: { + onAnyModifyBoost(boosts, pokemon) { + const unawareUser = this.effectState.target; + if (unawareUser === pokemon) return; + if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { + boosts['def'] = 0; + boosts['spd'] = 0; + boosts['evasion'] = 0; + } + if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { + boosts['atk'] = 0; + boosts['def'] = 0; + boosts['spa'] = 0; + boosts['accuracy'] = 0; + } + }, + onTryHit(target, source, move) { + if (target !== source && move.type === 'Water') { + if (!this.heal(target.baseMaxhp / 4)) { + this.add('-immune', target, '[from] ability: Go with the Flow'); + } + return null; + } + }, + flags: {breakable: 1}, + shortDesc: "Effects of Unware and Water Absorb.", + name: "Go with the Flow", + rating: 4, + }, + slidingwhale: { + onDamagingHitOrder: 1, + onDamagingHit(damage, target, source, move) { + if (!target.hp && this.checkMoveMakesContact(move, source, target, true)) { + this.damage(source.baseMaxhp / 4, source, target); + } + }, + onModifySpe(spe, pokemon) { + if (this.field.isWeather(['hail', 'snow'])) { + return this.chainModify(2); + } + }, + flags: {}, + shortDesc: "Effects of Slush Rush and Aftermath.", + name: "Sliding Whale", + rating: 3, + }, + fluffycharger: { + onSourceModifyDamage(damage, source, target, move) { + let mod = 1; + if (move.type === 'Fire') mod *= 2; + if (move.flags['contact']) mod /= 2; + return this.chainModify(mod); + }, + onDamagingHitOrder: 1, + onDamagingHit(damage, target, source, move) { + target.addVolatile('charge'); + }, + flags: {breakable: 1}, + shortDesc: "Effects of Fluffy and Electromorphosis.", + name: "Fluffy Charger", + rating: 4, + }, +}; diff --git a/data/mods/littlecolosseum/moves.ts b/data/mods/littlecolosseum/moves.ts new file mode 100644 index 000000000000..7cb2e7b9e4f5 --- /dev/null +++ b/data/mods/littlecolosseum/moves.ts @@ -0,0 +1,88 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + surginglava: { + accuracy: true, + basePower: 0, + category: "Status", + shortDesc: "Raises the user's SpA & Spe by 1 stage.", + name: "Surging Lava", + pp: 20, + priority: 0, + flags: {snatch: 1, metronome: 1}, + onPrepareHit(target, source, move) { + this.attrLastMove('[still]'); + this.add('-anim', source, "Morning Sun", target); + }, + boosts: { + spa: 1, + spe: 1, + }, + secondary: null, + target: "self", + type: "Fire", + zMove: {effect: 'clearnegativeboost'}, + contestType: "Cool", + }, + + // Unedited moves + stealthrock: { + num: 446, + accuracy: true, + basePower: 0, + category: "Status", + name: "Stealth Rock", + pp: 20, + priority: 0, + flags: {reflectable: 1, snatch: 1}, + sideCondition: 'stealthrock', + condition: { + // this is a side condition + onSideStart(side) { + this.add('-sidestart', side, 'move: Stealth Rock'); + }, + onEntryHazard(pokemon) { + if (pokemon.hasItem('heavydutyboots') || pokemon.hasAbility('hazardabsorb') || pokemon.hasAbility('hover')) return; + const typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6); + this.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8); + }, + }, + secondary: null, + target: "foeSide", + type: "Rock", + zMove: {boost: {def: 1}}, + contestType: "Cool", + }, + spikes: { + num: 191, + accuracy: true, + basePower: 0, + category: "Status", + name: "Spikes", + pp: 20, + priority: 0, + flags: {reflectable: 1, nonsky: 1, mustpressure: 1, snatch: 1}, + sideCondition: 'spikes', + condition: { + // this is a side condition + onSideStart(side) { + this.add('-sidestart', side, 'Spikes'); + this.effectState.layers = 1; + }, + onSideRestart(side) { + if (this.effectState.layers >= 3) return false; + this.add('-sidestart', side, 'Spikes'); + this.effectState.layers++; + }, + onEntryHazard(pokemon) { + if (!pokemon.isGrounded()) return; + if (pokemon.hasItem('heavydutyboots') || pokemon.hasAbility('hazardabsorb')) return; + const damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4 + this.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24); + }, + }, + secondary: null, + target: "foeSide", + type: "Ground", + zMove: {boost: {def: 1}}, + contestType: "Clever", + }, +}; diff --git a/data/mods/littlecolosseum/pokedex.ts b/data/mods/littlecolosseum/pokedex.ts new file mode 100644 index 000000000000..fc70a3bbedec --- /dev/null +++ b/data/mods/littlecolosseum/pokedex.ts @@ -0,0 +1,94 @@ +export const Pokedex: import('../../../sim/dex-species').ModdedSpeciesDataTable = { + gastly: { + inherit: true, + baseStats: {hp: 30, atk: 35, def: 30, spa: 70, spd: 35, spe: 60}, + abilities: {0: "Frisk", 1: "Protean", H: "Neutralizing Gas"}, + }, + swablu: { + inherit: true, + types: ["Fairy", "Flying"], + baseStats: {hp: 45, atk: 45, def: 60, spa: 45, spd: 75, spe: 50}, + abilities: {0: "Natural Cure", 1: "Scrappy", H: "Pixilate"}, + }, + slugma: { + inherit: true, + baseStats: {hp: 30, atk: 40, def: 40, spa: 80, spd: 30, spe: 40}, + abilities: {0: "Flame Body", 1: "Weak Armor", H: "Hazard Absorb"}, + }, + sprigatito: { + inherit: true, + baseStats: {hp: 40, atk: 65, def: 54, spa: 31, spd: 45, spe: 75}, + abilities: {0: "Overgrow", H: "Protean (Gen 7)"}, + }, + dreepy: { + inherit: true, + baseStats: {hp: 41, atk: 60, def: 40, spa: 42, spd: 40, spe: 82}, + }, + tepig: { + inherit: true, + types: ["Fire", "Ground"], + baseStats: {hp: 65, atk: 63, def: 50, spa: 35, spd: 50, spe: 45}, + abilities: {0: "Blaze", H: "Sap Sipper"}, + }, + meowthgalar: { + inherit: true, + baseStats: {hp: 60, atk: 65, def: 65, spa: 40, spd: 40, spe: 40}, + abilities: {0: "Tough Claws", H: "Spiked Fur"}, + }, + toxel: { + inherit: true, + baseStats: {hp: 60, atk: 48, def: 55, spa: 64, spd: 55, spe: 40}, + abilities: {0: "Rattled", 1: "Static", H: "Pickpocket"}, + }, + fletchling: { + inherit: true, + types: ["Fire", "Flying"], + baseStats: {hp: 45, atk: 50, def: 55, spa: 40, spd: 38, spe: 52}, + }, + spoink: { + inherit: true, + types: ["Psychic", "Rock"], + baseStats: {hp: 60, atk: 25, def: 35, spa: 70, spd: 75, spe: 70}, + abilities: {0: "Magic Resistance", 1: "Own Tempo", H: "Gluttony"}, + }, + cutiefly: { + inherit: true, + baseStats: {hp: 50, atk: 35, def: 50, spa: 50, spd: 50, spe: 25}, + abilities: {0: "Oblivious", 1: "Shield Dust", H: "Hover"}, + }, + shieldon: { + inherit: true, + abilities: {0: "Sturdy", 1: "Battle Armor", H: "Stall"}, + }, + wooperpaldea: { + inherit: true, + baseStats: {hp: 55, atk: 65, def: 65, spa: 25, spd: 45, spe: 35}, + }, + wooper: { + inherit: true, + baseStats: {hp: 55, atk: 65, def: 65, spa: 25, spd: 45, spe: 35}, + abilities: {0: "Damp", 1: "Go with the Flow"}, + }, + corphish: { + inherit: true, + types: ["Water", "Dark"], + baseStats: {hp: 50, atk: 80, def: 65, spa: 50, spd: 35, spe: 46}, + abilities: {0: "Adaptability", 1: "Hyper Cutter", H: "Shell Armor"}, + }, + jangmoo: { + inherit: true, + types: ["Dragon", "Fairy"], + baseStats: {hp: 65, atk: 65, def: 65, spa: 55, spd: 55, spe: 55}, + abilities: {0: "Bulletproof", 1: "Overcoat", H: "Marvel Scale"}, + }, + mareep: { + inherit: true, + types: ["Electric", "Grass"], + baseStats: {hp: 55, atk: 40, def: 40, spa: 65, spd: 60, spe: 35}, + abilities: {0: "Static", H: "Fluffy Charger"}, + }, + cetoddle: { + inherit: true, + abilities: {0: "Thick Fat", 1: "Sheer Force", H: "Sliding Whale"}, + }, +}; diff --git a/data/mods/littlecolosseum/scripts.ts b/data/mods/littlecolosseum/scripts.ts new file mode 100644 index 000000000000..1a7579b68cba --- /dev/null +++ b/data/mods/littlecolosseum/scripts.ts @@ -0,0 +1,105 @@ +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + init() { + this.modData("Learnsets", "swablu").learnset.willowisp = ["9L1"]; + this.modData("Learnsets", "swablu").learnset.bodypress = ["9L1"]; + this.modData("Learnsets", "swablu").learnset.encore = ["9L1"]; + this.modData("Learnsets", "slugma").learnset.surginglava = ["9L1"]; + delete this.modData('Learnsets', 'slugma').learnset.lightscreen; + delete this.modData('Learnsets', 'slugma').learnset.reflect; + this.modData("Learnsets", "gastly").learnset.drainingkiss = ["9L1"]; + this.modData("Learnsets", "gastly").learnset.psychicnoise = ["9L1"]; + delete this.modData('Learnsets', 'gastly').learnset.energyball; + delete this.modData('Learnsets', 'gastly').learnset.dazzlinggleam; + delete this.modData('Learnsets', 'gastly').learnset.nastyplot; + this.modData("Learnsets", "sprigatito").learnset.flowertrick = ["9L1"]; + this.modData("Learnsets", "sprigatito").learnset.knockoff = ["9L1"]; + this.modData("Learnsets", "meowthgalar").learnset.slackoff = ["9L1"]; + this.modData("Learnsets", "tepig").learnset.slackoff = ["9L1"]; + this.modData("Learnsets", "tepig").learnset.earthquake = ["9L1"]; + this.modData("Learnsets", "tepig").learnset.highhorsepower = ["9L1"]; + this.modData("Learnsets", "tepig").learnset.stealthrock = ["9L1"]; + this.modData("Learnsets", "dreepy").learnset.willowisp = ["9L1"]; + this.modData("Learnsets", "dreepy").learnset.dragonclaw = ["9L1"]; + this.modData("Learnsets", "dreepy").learnset.uturn = ["9L1"]; + this.modData("Learnsets", "dreepy").learnset.hex = ["9L1"]; + this.modData("Learnsets", "dreepy").learnset.psychicfangs = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.spark = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.thunder = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.thunderbolt = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.discharge = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.voltswitch = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.poisonjab = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.acidspray = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.clearsmog = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.sludgebomb = ["9L1"]; + this.modData("Learnsets", "toxel").learnset.slackoff = ["9L1"]; + this.modData("Learnsets", "fletchling").learnset.flamethrower = ["9L1"]; + this.modData("Learnsets", "fletchling").learnset.fireblast = ["9L1"]; + delete this.modData('Learnsets', 'fletchling').learnset.bravebird; + this.modData("Learnsets", "spoink").learnset.ancientpower = ["9L1"]; + this.modData("Learnsets", "spoink").learnset.meteorbeam = ["9L1"]; + delete this.modData('Learnsets', 'cutiefly').learnset.calmmind; + delete this.modData('Learnsets', 'cutiefly').learnset.psychic; + delete this.modData('Learnsets', 'cutiefly').learnset.quiverdance; + this.modData("Learnsets", "cutiefly").learnset.tailglow = ["9L1"]; + this.modData("Learnsets", "shieldon").learnset.bodypress = ["9L1"]; + this.modData("Learnsets", "shieldon").learnset.slackoff = ["9L1"]; + this.modData("Learnsets", "wooper").learnset.icepunch = ["9L1"]; + this.modData("Learnsets", "wooper").learnset.poisonjab = ["9L1"]; + this.modData("Learnsets", "corphish").learnset.flipturn = ["9L1"]; + this.modData("Learnsets", "jangmoo").learnset.takeheart = ["9L1"]; + this.modData("Learnsets", "jangmoo").learnset.heartswap = ["9L1"]; + this.modData("Learnsets", "jangmoo").learnset.drainingkiss = ["9L1"]; + this.modData("Learnsets", "jangmoo").learnset.playrough = ["9L1"]; + this.modData("Learnsets", "jangmoo").learnset.slackoff = ["9L1"]; + delete this.modData('Learnsets', 'cetoddle').learnset.iciclespear; + delete this.modData('Learnsets', 'cetoddle').learnset.earthquake; + delete this.modData('Learnsets', 'cetoddle').learnset.superpower; + delete this.modData('Learnsets', 'cetoddle').learnset.knockoff; + this.modData("Learnsets", "cetoddle").learnset.rapidspin = ["9L1"]; + this.modData("Learnsets", "mareep").learnset.bodypress = ["9L1"]; + this.modData("Learnsets", "mareep").learnset.gigadrain = ["9L1"]; + this.modData("Learnsets", "mareep").learnset.worryseed = ["9L1"]; + this.modData("Learnsets", "mareep").learnset.slackoff = ["9L1"]; + }, + pokemon: { + runImmunity(type: string, message?: string | boolean) { + if (!type || type === '???') return true; + if (!this.battle.dex.types.isName(type)) { + throw new Error("Use runStatusImmunity for " + type); + } + if (this.fainted) return false; + + const negateImmunity = !this.battle.runEvent('NegateImmunity', this, type); + const notImmune = type === 'Ground' ? + this.isGrounded(negateImmunity) : + negateImmunity || this.battle.dex.getImmunity(type, this); + if (notImmune) return true; + if (message) { + if (notImmune === null) { + this.battle.add('-immune', this, '[from] ability: ' + this.getAbility().name); + } else { + this.battle.add('-immune', this); + } + } + return false; + }, + isGrounded(negateImmunity = false) { + if ('gravity' in this.battle.field.pseudoWeather) return true; + if ('ingrain' in this.volatiles && this.battle.gen >= 4) return true; + if ('smackdown' in this.volatiles) return true; + const item = (this.ignoringItem() ? '' : this.item); + if (item === 'ironball') return true; + // If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded. + if (!negateImmunity && this.hasType('Flying') && !('roost' in this.volatiles)) return false; + if ( + (this.hasAbility(['levitate', 'hover'])) && + !this.battle.suppressingAbility(this) + ) return null; + if ('magnetrise' in this.volatiles) return false; + if ('telekinesis' in this.volatiles) return false; + return item !== 'airballoon'; + }, + }, +}; diff --git a/data/mods/mixandmega/items.ts b/data/mods/mixandmega/items.ts index 81ba194b786d..e4d3533f2753 100644 --- a/data/mods/mixandmega/items.ts +++ b/data/mods/mixandmega/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { abomasite: { inherit: true, isNonstandard: null, @@ -90,6 +90,13 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + cornerstonemask: { + inherit: true, + onBasePower(basePower, user, target, move) { + return this.chainModify([4915, 4096]); + }, + onTakeItem: false, + }, diancite: { inherit: true, isNonstandard: null, @@ -127,6 +134,13 @@ export const Items: {[k: string]: ModdedItemData} = { inherit: true, isNonstandard: null, }, + hearthflamemask: { + inherit: true, + onBasePower(basePower, user, target, move) { + return this.chainModify([4915, 4096]); + }, + onTakeItem: false, + }, heracronite: { inherit: true, isNonstandard: null, @@ -231,12 +245,10 @@ export const Items: {[k: string]: ModdedItemData} = { rustedshield: { inherit: true, onTakeItem: false, - isNonstandard: null, }, rustedsword: { inherit: true, onTakeItem: false, - isNonstandard: null, }, sablenite: { inherit: true, @@ -287,4 +299,11 @@ export const Items: {[k: string]: ModdedItemData} = { }, onTakeItem: false, }, + wellspringmask: { + inherit: true, + onBasePower(basePower, user, target, move) { + return this.chainModify([4915, 4096]); + }, + onTakeItem: false, + }, }; diff --git a/data/mods/mixandmega/scripts.ts b/data/mods/mixandmega/scripts.ts index 56568ef9d8e6..a687f445ba51 100644 --- a/data/mods/mixandmega/scripts.ts +++ b/data/mods/mixandmega/scripts.ts @@ -59,10 +59,11 @@ export const Scripts: ModdedBattleScriptsData = { } for (const pokemon of this.getAllPokemon()) { const item = pokemon.getItem(); - if (['adamantcrystal', 'griseouscore', 'lustrousglobe', 'vilevial'].includes(item.id) && - item.forcedForme !== pokemon.species.name) { - // @ts-ignore - const rawSpecies = this.actions.getMixedSpecies(pokemon.m.originalSpecies, item.forcedForme!, pokemon); + if ([ + 'adamantcrystal', 'griseouscore', 'lustrousglobe', 'wellspringmask', + 'cornerstonemask', 'hearthflamemask', 'vilevial', + ].includes(item.id) && item.forcedForme !== pokemon.species.name) { + const rawSpecies = (this.actions as any).getMixedSpecies(pokemon.m.originalSpecies, item.forcedForme!, pokemon); const species = pokemon.setSpecies(rawSpecies); if (!species) continue; pokemon.baseSpecies = rawSpecies; @@ -90,7 +91,7 @@ export const Scripts: ModdedBattleScriptsData = { this.queue.addChoice({choice: 'start'}); this.midTurn = true; - if (!this.requestState) this.go(); + if (!this.requestState) this.turnLoop(); }, runAction(action) { const pokemonOriginalHP = action.pokemon?.hp; @@ -109,11 +110,9 @@ export const Scripts: ModdedBattleScriptsData = { let rawSpecies: Species | null = null; const item = pokemon.getItem(); if (item.id === 'rustedsword') { - // @ts-ignore - rawSpecies = this.actions.getMixedSpecies(pokemon.m.originalSpecies, 'Zacian-Crowned', pokemon); + rawSpecies = (this.actions as any).getMixedSpecies(pokemon.m.originalSpecies, 'Zacian-Crowned', pokemon); } else if (item.id === 'rustedshield') { - // @ts-ignore - rawSpecies = this.actions.getMixedSpecies(pokemon.m.originalSpecies, 'Zamazenta-Crowned', pokemon); + rawSpecies = (this.actions as any).getMixedSpecies(pokemon.m.originalSpecies, 'Zamazenta-Crowned', pokemon); } if (!rawSpecies) continue; const species = pokemon.setSpecies(rawSpecies); @@ -173,8 +172,10 @@ export const Scripts: ModdedBattleScriptsData = { case 'move': if (!action.pokemon.isActive) return false; if (action.pokemon.fainted) return false; - this.actions.runMove(action.move, action.pokemon, action.targetLoc, action.sourceEffect, - action.zmove, undefined, action.maxMove, action.originalTarget); + this.actions.runMove(action.move, action.pokemon, action.targetLoc, { + sourceEffect: action.sourceEffect, zMove: action.zmove, + maxMove: action.maxMove, originalTarget: action.originalTarget, + }); break; case 'megaEvo': this.actions.runMegaEvo(action.pokemon); @@ -407,34 +408,74 @@ export const Scripts: ModdedBattleScriptsData = { runMegaEvo(pokemon) { if (pokemon.species.isMega) return false; - // @ts-ignore - const species: Species = this.getMixedSpecies(pokemon.m.originalSpecies, pokemon.canMegaEvo, pokemon); + const species: Species = (this as any).getMixedSpecies(pokemon.m.originalSpecies, pokemon.canMegaEvo, pokemon); - // Do we have a proper sprite for it? + /* Do we have a proper sprite for it? Code for when megas actually exist if (this.dex.species.get(pokemon.canMegaEvo!).baseSpecies === pokemon.m.originalSpecies) { pokemon.formeChange(species, pokemon.getItem(), true); - } else { - const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); - // @ts-ignore - const oMegaSpecies = this.dex.species.get(species.originalSpecies); - pokemon.formeChange(species, pokemon.getItem(), true); - this.battle.add('-start', pokemon, oMegaSpecies.requiredItem, '[silent]'); - if (oSpecies.types.length !== pokemon.species.types.length || oSpecies.types[1] !== pokemon.species.types[1]) { - this.battle.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); - } + } else { */ + const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); + const oMegaSpecies = this.dex.species.get((species as any).originalSpecies); + pokemon.formeChange(species, pokemon.getItem(), true); + this.battle.add('-start', pokemon, oMegaSpecies.requiredItem, '[silent]'); + if (oSpecies.types.length !== pokemon.species.types.length || oSpecies.types[1] !== pokemon.species.types[1]) { + this.battle.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); } + // } pokemon.canMegaEvo = null; return true; }, - getMixedSpecies(originalForme, megaForme, pokemon) { + terastallize(pokemon) { + if (pokemon.illusion?.species.baseSpecies === 'Ogerpon') { + this.battle.singleEvent('End', this.dex.abilities.get('Illusion'), pokemon.abilityState, pokemon); + } + if (pokemon.illusion?.species.baseSpecies === 'Terapagos') { + this.battle.singleEvent('End', this.dex.abilities.get('Illusion'), pokemon.abilityState, pokemon); + } + + let type = pokemon.teraType; + if (pokemon.species.baseSpecies !== 'Ogerpon' && pokemon.getItem().name.endsWith('Mask')) { + type = this.dex.species.get(pokemon.getItem().forcedForme).forceTeraType!; + } + this.battle.add('-terastallize', pokemon, type); + pokemon.terastallized = type; + for (const ally of pokemon.side.pokemon) { + ally.canTerastallize = null; + } + pokemon.addedType = ''; + pokemon.knownType = true; + pokemon.apparentType = type; + if (pokemon.species.baseSpecies === 'Ogerpon') { + const tera = pokemon.species.id === 'ogerpon' ? 'tealtera' : 'tera'; + pokemon.formeChange(pokemon.species.id + tera, pokemon.getItem(), true); + } else { + if (pokemon.getItem().name.endsWith('Mask')) { + const species: Species = (this as any).getMixedSpecies(pokemon.m.originalSpecies, + pokemon.getItem().forcedForme! + '-Tera', pokemon); + const oSpecies = this.dex.species.get(pokemon.m.originalSpecies); + const originalTeraSpecies = this.dex.species.get((species as any).originalSpecies); + pokemon.formeChange(species, pokemon.getItem(), true); + this.battle.add('-start', pokemon, originalTeraSpecies.requiredItem, '[silent]'); + if (oSpecies.types.length !== pokemon.species.types.length || oSpecies.types[1] !== pokemon.species.types[1]) { + this.battle.add('-start', pokemon, 'typechange', pokemon.species.types.join('/'), '[silent]'); + } + } + } + if (pokemon.species.name === 'Terapagos-Terastal' && type === 'Stellar') { + pokemon.formeChange('Terapagos-Stellar', null, true); + } + this.battle.runEvent('AfterTerastallization', pokemon); + }, + getMixedSpecies(originalForme, formeChange, pokemon) { const originalSpecies = this.dex.species.get(originalForme); - const megaSpecies = this.dex.species.get(megaForme); - if (originalSpecies.baseSpecies === megaSpecies.baseSpecies) return megaSpecies; - // @ts-ignore - const deltas = this.getFormeChangeDeltas(megaSpecies, pokemon); - // @ts-ignore - const species = this.mutateOriginalSpecies(originalSpecies, deltas); + const formeChangeSpecies = this.dex.species.get(formeChange); + if (originalSpecies.baseSpecies === formeChangeSpecies.baseSpecies && + !formeChangeSpecies.isMega && !formeChangeSpecies.isPrimal) { + return formeChangeSpecies; + } + const deltas = (this as any).getFormeChangeDeltas(formeChangeSpecies, pokemon); + const species = (this as any).mutateOriginalSpecies(originalSpecies, deltas); return species; }, getFormeChangeDeltas(formeChangeSpecies, pokemon) { @@ -443,6 +484,7 @@ export const Scripts: ModdedBattleScriptsData = { ability: string, baseStats: SparseStatsTable, weighthg: number, + heightm: number, originalSpecies: string, requiredItem: string | undefined, type?: string, @@ -451,6 +493,7 @@ export const Scripts: ModdedBattleScriptsData = { ability: formeChangeSpecies.abilities['0'], baseStats: {}, weighthg: formeChangeSpecies.weighthg - baseSpecies.weighthg, + heightm: ((formeChangeSpecies.heightm * 10) - (baseSpecies.heightm * 10)) / 10, originalSpecies: formeChangeSpecies.name, requiredItem: formeChangeSpecies.requiredItem, }; @@ -461,7 +504,7 @@ export const Scripts: ModdedBattleScriptsData = { if (formeChangeSpecies.types.length > baseSpecies.types.length) { deltas.type = formeChangeSpecies.types[1]; } else if (formeChangeSpecies.types.length < baseSpecies.types.length) { - deltas.type = 'mono'; + deltas.type = this.battle.ruleTable.has('mixandmegaoldaggronite') ? 'mono' : baseSpecies.types[0]; } else if (formeChangeSpecies.types[1] !== baseSpecies.types[1]) { deltas.type = formeChangeSpecies.types[1]; } @@ -492,12 +535,11 @@ export const Scripts: ModdedBattleScriptsData = { baseStats[statName] = this.battle.clampIntRange(baseStats[statName] + deltas.baseStats[statName], 1, 255); } species.weighthg = Math.max(1, species.weighthg + deltas.weighthg); + species.heightm = Math.max(0.1, ((species.heightm * 10) + (deltas.heightm * 10)) / 10); species.originalSpecies = deltas.originalSpecies; species.requiredItem = deltas.requiredItem; - switch (deltas.formeType) { - case 'Mega': species.isMega = true; break; - case 'Primal': species.isPrimal = true; break; - } + if (deltas.formeType === 'Mega') species.isMega = true; + if (deltas.formeType === 'Primal') species.isPrimal = true; return species; }, }, diff --git a/data/mods/partnersincrime/abilities.ts b/data/mods/partnersincrime/abilities.ts index 35c6b26c6e75..72b17c7736e2 100644 --- a/data/mods/partnersincrime/abilities.ts +++ b/data/mods/partnersincrime/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { neutralizinggas: { inherit: true, // Ability suppression implemented in sim/pokemon.ts:Pokemon#ignoringAbility @@ -19,7 +19,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { this.add('-end', target, 'Slow Start', '[silent]'); } if (target.m.innate) { - if (!this.dex.abilities.get(target.m.innate.slice(8)).isPermanent) { + if (!this.dex.abilities.get(target.m.innate.slice(8)).flags['cantsuppress']) { target.removeVolatile(target.m.innate); } } @@ -39,13 +39,13 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { const sortedActive = this.getAllActive(); this.speedSort(sortedActive); for (const pokemon of sortedActive) { + if (pokemon.m.innate) { + if (!pokemon.volatiles[pokemon.m.innate]) pokemon.addVolatile(pokemon.m.innate, pokemon); + } if (pokemon !== source) { // Will be suppressed by Pokemon#ignoringAbility if needed this.singleEvent('Start', pokemon.getAbility(), pokemon.abilityState, pokemon); } - if (pokemon.m.innate) { - if (!pokemon.volatiles[pokemon.m.innate]) pokemon.addVolatile(pokemon.m.innate, pokemon); - } } }, }, @@ -55,13 +55,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { if (!pokemon.isStarted || this.effectState.gaveUp) return; const isAbility = pokemon.ability === 'trace'; - const additionalBannedAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode', - ]; - const possibleTargets = pokemon.adjacentFoes().filter(target => ( - !target.getAbility().isPermanent && !additionalBannedAbilities.includes(target.ability) - )); + const possibleTargets = pokemon.adjacentFoes().filter( + target => !target.getAbility().flags['notrace'] && target.ability !== 'noability' + ); if (!possibleTargets.length) return; const target = this.sample(possibleTargets); diff --git a/data/mods/partnersincrime/items.ts b/data/mods/partnersincrime/items.ts index eead07f923aa..f82827da2ea2 100644 --- a/data/mods/partnersincrime/items.ts +++ b/data/mods/partnersincrime/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { leppaberry: { inherit: true, onEat(pokemon) { diff --git a/data/mods/partnersincrime/moves.ts b/data/mods/partnersincrime/moves.ts index cc4157d28004..aef86678d043 100644 --- a/data/mods/partnersincrime/moves.ts +++ b/data/mods/partnersincrime/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { gastroacid: { inherit: true, condition: { @@ -32,8 +32,8 @@ export const Moves: {[k: string]: ModdedMoveData} = { if (moveSlot.id === move.id) { moveSlot.pp = 0; if (!source.m.curMoves.includes(moveSlot.id) && source.m.trackPP.get(moveSlot.id)) { - source.m.trackPP.set(moveSlot.id, moveSlot.maxpp - moveSlot.pp); - } + source.m.trackPP.set(moveSlot.id, moveSlot.maxpp - moveSlot.pp); + } this.add('-activate', source, 'move: Grudge', move.name); } } diff --git a/data/mods/partnersincrime/scripts.ts b/data/mods/partnersincrime/scripts.ts index b73c4599e037..68f391110d89 100644 --- a/data/mods/partnersincrime/scripts.ts +++ b/data/mods/partnersincrime/scripts.ts @@ -1,7 +1,9 @@ +import {Utils} from '../../../lib'; + export const Scripts: ModdedBattleScriptsData = { gen: 9, inherit: 'gen9', - nextTurn() { + endTurn() { this.turn++; this.lastSuccessfulMoveThisTurn = null; @@ -81,9 +83,20 @@ export const Scripts: ModdedBattleScriptsData = { moveSlot.disabled = false; moveSlot.disabledSource = ''; } + if (pokemon.volatiles['encore']) { + // Encore check happens earlier than PiC move swapping, so end encore here. + const encoredMove = pokemon.volatiles['encore'].move; + if (!pokemon.moves.includes(encoredMove)) { + pokemon.removeVolatile('encore'); + } + } this.runEvent('DisableMove', pokemon); for (const moveSlot of pokemon.moveSlots) { - this.singleEvent('DisableMove', this.dex.getActiveMove(moveSlot.id), null, pokemon); + const activeMove = this.dex.getActiveMove(moveSlot.id); + this.singleEvent('DisableMove', activeMove, null, pokemon); + if (activeMove.flags['cantusetwice'] && pokemon.lastMove?.id === moveSlot.id) { + pokemon.disableMove(pokemon.lastMove.id); + } } // If it was an illusion, it's not any more @@ -190,7 +203,7 @@ export const Scripts: ModdedBattleScriptsData = { // Please remove me once there is client support. if (this.ruleTable.has('crazyhouserule')) { for (const side of this.sides) { - let buf = `raw|${side.name}'s team:
`; + let buf = `raw|${Utils.escapeHTML(side.name)}'s team:
`; for (const pokemon of side.pokemon) { if (!buf.endsWith('
')) buf += '/​'; if (pokemon.fainted) { @@ -259,7 +272,7 @@ export const Scripts: ModdedBattleScriptsData = { if (typeof ability === 'string') ability = this.battle.dex.abilities.get(ability); const oldAbility = this.ability; if (!isFromFormeChange) { - if (ability.isPermanent || this.getAbility().isPermanent) return false; + if (ability.flags['cantsuppress'] || this.getAbility().flags['cantsuppress']) return false; } if (!this.battle.runEvent('SetAbility', this, source, this.battle.effect, ability)) return false; this.battle.singleEvent('End', this.battle.dex.abilities.get(oldAbility), this.abilityState, this, source); @@ -311,9 +324,10 @@ export const Scripts: ModdedBattleScriptsData = { }, transformInto(pokemon, effect) { const species = pokemon.species; - if (pokemon.fainted || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) || + if (pokemon.fainted || this.illusion || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) || (pokemon.transformed && this.battle.gen >= 2) || (this.transformed && this.battle.gen >= 5) || - species.name === 'Eternatus-Eternamax') { + species.name === 'Eternatus-Eternamax' || (['Ogerpon', 'Terapagos'].includes(species.baseSpecies) && + (this.terastallized || pokemon.terastallized))) { return false; } @@ -329,7 +343,7 @@ export const Scripts: ModdedBattleScriptsData = { this.transformed = true; this.weighthg = pokemon.weighthg; - const types = pokemon.getTypes(true); + const types = pokemon.getTypes(true, true); this.setType(pokemon.volatiles['roost'] ? pokemon.volatiles['roost'].typeWas : types, true); this.addedType = pokemon.addedType; this.knownType = this.isAlly(pokemon) && pokemon.knownType; @@ -341,9 +355,9 @@ export const Scripts: ModdedBattleScriptsData = { if (this.modifiedStats) this.modifiedStats[statName] = pokemon.modifiedStats![statName]; // Gen 1: Copy modified stats. } this.moveSlots = []; - this.set.ivs = (this.battle.gen >= 5 ? this.set.ivs : pokemon.set.ivs); this.hpType = (this.battle.gen >= 5 ? this.hpType : pokemon.hpType); this.hpPower = (this.battle.gen >= 5 ? this.hpPower : pokemon.hpPower); + this.timesAttacked = pokemon.timesAttacked; for (const moveSlot of pokemon.moveSlots) { let moveName = moveSlot.move; if (!pokemon.m.curMoves.includes(moveSlot.id)) continue; @@ -367,13 +381,13 @@ export const Scripts: ModdedBattleScriptsData = { this.boosts[boostName] = pokemon.boosts[boostName]; } if (this.battle.gen >= 6) { - const volatilesToCopy = ['focusenergy', 'gmaxchistrike', 'laserfocus']; + const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus']; + for (const volatile of volatilesToCopy) this.removeVolatile(volatile); for (const volatile of volatilesToCopy) { if (pokemon.volatiles[volatile]) { this.addVolatile(volatile); if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers; - } else { - this.removeVolatile(volatile); + if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType; } } } @@ -382,7 +396,11 @@ export const Scripts: ModdedBattleScriptsData = { } else { this.battle.add('-transform', this, pokemon); } - if (this.battle.gen > 2) this.setAbility(pokemon.ability, this, true); + if (this.terastallized) { + this.knownType = true; + this.apparentType = this.terastallized; + } + if (this.battle.gen > 2) this.setAbility(pokemon.ability, this, true, true); // Change formes based on held items (for Transform) // Only ever relevant in Generation 4 since Generation 3 didn't have item-based forme changes @@ -405,6 +423,11 @@ export const Scripts: ModdedBattleScriptsData = { } } + // Pokemon transformed into Ogerpon cannot Terastallize + // restoring their ability to tera after they untransform is handled ELSEWHERE + if (this.species.baseSpecies === 'Ogerpon' && this.canTerastallize) this.canTerastallize = false; + if (this.species.baseSpecies === 'Terapagos' && this.canTerastallize) this.canTerastallize = false; + return true; }, deductPP(move, amount, target) { diff --git a/data/mods/passiveaggressive/abilities.ts b/data/mods/passiveaggressive/abilities.ts new file mode 100644 index 000000000000..bf5437a18f9f --- /dev/null +++ b/data/mods/passiveaggressive/abilities.ts @@ -0,0 +1,65 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + aftermath: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (!target.hp && this.checkMoveMakesContact(move, source, target, true)) { + const calc = calculate(this, target, source); + this.damage(calc * source.baseMaxhp / 4, source, target); + } + }, + }, + baddreams: { + inherit: true, + onResidual(pokemon) { + if (!pokemon.hp) return; + for (const target of pokemon.foes()) { + if (target.status === 'slp' || target.hasAbility('comatose')) { + const calc = calculate(this, pokemon, target); + this.damage(calc * target.baseMaxhp / 8, target, pokemon); + } + } + }, + }, + gulpmissile: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (!source.hp || !source.isActive || target.isSemiInvulnerable()) return; + if (['cramorantgulping', 'cramorantgorging'].includes(target.species.id)) { + const calc = calculate(this, target, source); + if (calc) this.damage(calc * source.baseMaxhp / 4, source, target); + if (target.species.id === 'cramorantgulping') { + this.boost({def: -1}, source, target, null, true); + } else { + source.trySetStatus('par', target, move); + } + target.formeChange('cramorant', move); + } + }, + }, + ironbarbs: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (this.checkMoveMakesContact(move, source, target, true)) { + const calc = calculate(this, target, source); + this.damage(calc * source.baseMaxhp / 8, source, target); + } + }, + }, + roughskin: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (this.checkMoveMakesContact(move, source, target, true)) { + const calc = calculate(this, target, source); + this.damage(calc * source.baseMaxhp / 8, source, target); + } + }, + }, +}; + +function calculate(battle: Battle, source: Pokemon, pokemon: Pokemon) { + const move = battle.dex.getActiveMove('tackle'); + move.type = source.getTypes()[0]; + const typeMod = Math.pow(2, battle.clampIntRange(pokemon.runEffectiveness(move), -6, 6)); + if (!pokemon.runImmunity(move.type)) return 0; + return typeMod; +} diff --git a/data/mods/passiveaggressive/conditions.ts b/data/mods/passiveaggressive/conditions.ts new file mode 100644 index 000000000000..a6ee835c6b28 --- /dev/null +++ b/data/mods/passiveaggressive/conditions.ts @@ -0,0 +1,56 @@ +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { + tox: { + inherit: true, + onResidual(pokemon) { + if (this.effectState.stage < 15) { + this.effectState.stage++; + } + const calc = calculate(this, this.effectState.source, pokemon); + this.damage(calc * this.clampIntRange(pokemon.baseMaxhp / 16, 1) * this.effectState.stage); + }, + }, + brn: { + inherit: true, + onResidual(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon); + this.damage(calc * pokemon.baseMaxhp / 16); + }, + }, + psn: { + inherit: true, + onResidual(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon); + this.damage(calc * pokemon.baseMaxhp / 8); + }, + }, + partiallytrapped: { + inherit: true, + onResidual(pokemon) { + const source = this.effectState.source; + // G-Max Centiferno and G-Max Sandblast continue even after the user leaves the field + const gmaxEffect = ['gmaxcentiferno', 'gmaxsandblast'].includes(this.effectState.sourceEffect.id); + if (source && (!source.isActive || source.hp <= 0 || !source.activeTurns) && !gmaxEffect) { + delete pokemon.volatiles['partiallytrapped']; + this.add('-end', pokemon, this.effectState.sourceEffect, '[partiallytrapped]', '[silent]'); + return; + } + const calc = calculate(this, source, pokemon); + this.damage(calc * pokemon.baseMaxhp / this.effectState.boundDivisor); + }, + }, + sandstorm: { + inherit: true, + onWeather(target) { + const calc = calculate(this, this.effectState.source, target); + this.damage(calc * target.baseMaxhp / 16); + }, + }, +}; + +function calculate(battle: Battle, source: Pokemon, pokemon: Pokemon) { + const move = battle.dex.getActiveMove('tackle'); + move.type = source.getTypes()[0]; + const typeMod = Math.pow(2, battle.clampIntRange(pokemon.runEffectiveness(move), -6, 6)); + if (!pokemon.runImmunity(move.type)) return 0; + return typeMod; +} diff --git a/data/mods/passiveaggressive/items.ts b/data/mods/passiveaggressive/items.ts new file mode 100644 index 000000000000..22f829fecdc0 --- /dev/null +++ b/data/mods/passiveaggressive/items.ts @@ -0,0 +1,68 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + blacksludge: { + inherit: true, + onResidual(pokemon) { + if (pokemon.hasType('Poison')) { + this.heal(pokemon.baseMaxhp / 16); + } else { + const calc = calculate(this, pokemon, pokemon); + if (calc) this.damage(calc * pokemon.baseMaxhp / 8); + } + }, + }, + jabocaberry: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (move.category === 'Physical' && source.hp && source.isActive && !source.hasAbility('magicguard')) { + if (target.eatItem()) { + const calc = calculate(this, target, source); + if (calc) this.damage(calc * source.baseMaxhp / (target.hasAbility('ripen') ? 4 : 8), source, target); + } + } + }, + }, + lifeorb: { + inherit: true, + onAfterMoveSecondarySelf(source, target, move) { + if (source && source !== target && move && move.category !== 'Status' && !source.forceSwitchFlag) { + const calc = calculate(this, source, source); + if (calc) this.damage(calc * source.baseMaxhp / 10, source, source, this.dex.items.get('lifeorb')); + } + }, + }, + rockyhelmet: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (this.checkMoveMakesContact(move, source, target)) { + const calc = calculate(this, target, source); + if (calc) this.damage(calc * source.baseMaxhp / 6, source, target); + } + }, + }, + rowapberry: { + inherit: true, + onDamagingHit(damage, target, source, move) { + if (move.category === 'Special' && source.hp && source.isActive && !source.hasAbility('magicguard')) { + if (target.eatItem()) { + const calc = calculate(this, target, source); + if (calc) this.damage(calc * source.baseMaxhp / (target.hasAbility('ripen') ? 4 : 8), source, target); + } + } + }, + }, + stickybarb: { + inherit: true, + onResidual(pokemon) { + const calc = calculate(this, pokemon, pokemon); + if (calc) this.damage(calc * pokemon.baseMaxhp / 8); + }, + }, +}; + +function calculate(battle: Battle, source: Pokemon, pokemon: Pokemon) { + const move = battle.dex.getActiveMove('tackle'); + move.type = source.getTypes()[0]; + const typeMod = Math.pow(2, battle.clampIntRange(pokemon.runEffectiveness(move), -6, 6)); + if (!pokemon.runImmunity(move.type)) return 0; + return typeMod; +} diff --git a/data/mods/passiveaggressive/moves.ts b/data/mods/passiveaggressive/moves.ts new file mode 100644 index 000000000000..c7dcea0b7589 --- /dev/null +++ b/data/mods/passiveaggressive/moves.ts @@ -0,0 +1,305 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + stealthrock: { + inherit: true, + condition: { + // this is a side condition + onSideStart(side, source) { + this.add('-sidestart', side, 'move: Stealth Rock'); + }, + onEntryHazard(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon, 'stealthrock'); + if (pokemon.hasItem('heavydutyboots') || !calc) return; + this.damage(calc * pokemon.maxhp / 8); + }, + }, + }, + gmaxsteelsurge: { + inherit: true, + condition: { + // this is a side condition + onSideStart(side, source) { + this.add('-sidestart', side, 'move: G-Max Steelsurge'); + }, + onEntryHazard(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon, 'stealthrock'); + if (pokemon.hasItem('heavydutyboots') || !calc) return; + this.damage(calc * pokemon.maxhp / 8); + }, + }, + }, + spikes: { + inherit: true, + condition: { + // this is a side condition + onSideStart(side, source) { + this.add('-sidestart', side, 'Spikes'); + this.effectState.layers = 1; + }, + onSideRestart(side, source) { + if (this.effectState.layers >= 3) return false; + this.add('-sidestart', side, 'Spikes'); + this.effectState.layers++; + }, + onEntryHazard(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon, 'spikes'); + if (!calc || !pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return; + const damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4 + this.damage(calc * damageAmounts[this.effectState.layers] * pokemon.maxhp / 24); + }, + }, + }, + axekick: { + inherit: true, + onMoveFail(target, source, move) { + const calc = calculate(this, source, source, 'axekick'); + if (calc) this.damage(calc * source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick')); + }, + }, + curse: { + inherit: true, + condition: { + onStart(pokemon, source) { + this.add('-start', pokemon, 'Curse', '[of] ' + source); + }, + onResidualOrder: 12, + onResidual(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon, 'curse'); + if (calc) this.damage(calc * pokemon.baseMaxhp / 4); + }, + }, + }, + firepledge: { + inherit: true, + condition: { + duration: 4, + onSideStart(targetSide, source) { + this.add('-sidestart', targetSide, 'Fire Pledge'); + }, + onResidualOrder: 5, + onResidualSubOrder: 1, + onResidual(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon, 'firepledge'); + if (!pokemon.hasType('Fire') && calc) this.damage(calc * pokemon.baseMaxhp / 8, pokemon); + }, + onSideResidualOrder: 26, + onSideResidualSubOrder: 8, + onSideEnd(targetSide) { + this.add('-sideend', targetSide, 'Fire Pledge'); + }, + }, + }, + flameburst: { + inherit: true, + onHit(target, source, move) { + for (const ally of target.adjacentAllies()) { + const calc = calculate(this, source, ally, 'flameburst'); + if (calc) this.damage(calc * ally.baseMaxhp / 16, ally, source, this.dex.conditions.get('Flame Burst')); + } + }, + onAfterSubDamage(damage, target, source, move) { + for (const ally of target.adjacentAllies()) { + const calc = calculate(this, source, ally, 'flameburst'); + if (calc) this.damage(calc * ally.baseMaxhp / 16, ally, source, this.dex.conditions.get('Flame Burst')); + } + }, + }, + highjumpkick: { + inherit: true, + onMoveFail(target, source, move) { + const calc = calculate(this, source, source, 'highjumpkick'); + if (calc) this.damage(calc * source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick')); + }, + }, + jumpkick: { + inherit: true, + onMoveFail(target, source, move) { + const calc = calculate(this, source, source, 'jumpkick'); + if (calc) this.damage(calc * source.baseMaxhp / 2, source, source, this.dex.conditions.get('Jump Kick')); + }, + }, + leechseed: { + inherit: true, + condition: { + onStart(target, source) { + this.add('-start', target, 'move: Leech Seed'); + }, + onResidualOrder: 8, + onResidual(pokemon) { + const target = this.getAtSlot(pokemon.volatiles['leechseed'].sourceSlot); + if (!target || target.fainted || target.hp <= 0) { + this.debug('Nothing to leech into'); + return; + } + const calc = calculate(this, this.effectState.source, pokemon, 'leechseed'); + const damage = this.damage(calc * pokemon.baseMaxhp / 8, pokemon, target); + if (damage) { + this.heal(damage, target, pokemon); + } + }, + }, + }, + mindblown: { + inherit: true, + onAfterMove(pokemon, target, move) { + if (move.mindBlownRecoil && !move.multihit) { + const hpBeforeRecoil = pokemon.hp; + const calc = calculate(this, pokemon, pokemon, 'mindblown'); + this.damage(Math.round(calc * pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Mind Blown'), true); + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.runEvent('EmergencyExit', pokemon, pokemon); + } + } + }, + }, + nightmare: { + inherit: true, + condition: { + noCopy: true, + onStart(pokemon, source) { + if (pokemon.status !== 'slp' && !pokemon.hasAbility('comatose')) { + return false; + } + this.add('-start', pokemon, 'Nightmare'); + this.effectState.source = source; + }, + onResidualOrder: 11, + onResidual(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon, 'nightmare'); + if (calc) this.damage(calc * pokemon.baseMaxhp / 4); + }, + }, + }, + powder: { + inherit: true, + condition: { + duration: 1, + onStart(target, source) { + this.add('-singleturn', target, 'Powder'); + }, + onTryMovePriority: -1, + onTryMove(pokemon, target, move) { + if (move.type === 'Fire') { + this.add('-activate', pokemon, 'move: Powder'); + const calc = calculate(this, this.effectState.source, pokemon, 'powder'); + if (calc) this.damage(this.clampIntRange(Math.round(calc * pokemon.maxhp / 4), 1)); + this.attrLastMove('[still]'); + return false; + } + }, + }, + }, + saltcure: { + inherit: true, + condition: { + noCopy: true, + onStart(pokemon, source) { + this.add('-start', pokemon, 'Salt Cure'); + this.effectState.source = source; + }, + onResidualOrder: 13, + onResidual(pokemon) { + const calc = calculate(this, this.effectState.source, pokemon, 'saltcure'); + if (calc) this.damage(calc * pokemon.baseMaxhp / (pokemon.hasType(['Water', 'Steel']) ? 4 : 8)); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Salt Cure'); + }, + }, + }, + spikyshield: { + inherit: true, + condition: { + duration: 1, + onStart(target) { + this.add('-singleturn', target, 'move: Protect'); + }, + onTryHitPriority: 3, + onTryHit(target, source, move) { + if (!move.flags['protect']) { + if (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return; + if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; + return; + } + if (move.smartTarget) { + move.smartTarget = false; + } else { + this.add('-activate', target, 'move: Protect'); + } + const lockedmove = source.getVolatile('lockedmove'); + if (lockedmove) { + // Outrage counter is reset + if (source.volatiles['lockedmove'].duration === 2) { + delete source.volatiles['lockedmove']; + } + } + const calc = calculate(this, target, source, 'spikyshield'); + if (this.checkMoveMakesContact(move, source, target) && calc) { + this.damage(calc * source.baseMaxhp / 8, source, target); + } + return this.NOT_FAIL; + }, + onHit(target, source, move) { + const calc = calculate(this, target, source, 'spikyshield'); + if (calc && move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) { + this.damage(calc * source.baseMaxhp / 8, source, target); + } + }, + }, + }, + steelbeam: { + inherit: true, + onAfterMove(pokemon, target, move) { + if (move.mindBlownRecoil && !move.multihit) { + const hpBeforeRecoil = pokemon.hp; + const calc = calculate(this, pokemon, pokemon, 'steelbeam'); + this.damage(Math.round(calc * pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Steel Beam'), true); + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.runEvent('EmergencyExit', pokemon, pokemon); + } + } + }, + }, + supercellslam: { + inherit: true, + onMoveFail(target, source, move) { + const calc = calculate(this, source, source, 'supercellslam'); + if (calc) this.damage(calc * source.baseMaxhp / 2, source, source, this.dex.conditions.get('Supercell Slam')); + }, + }, + toxicspikes: { + inherit: true, + condition: { + // this is a side condition + onSideStart(side) { + this.add('-sidestart', side, 'move: Toxic Spikes'); + this.effectState.layers = 1; + }, + onSideRestart(side) { + if (this.effectState.layers >= 2) return false; + this.add('-sidestart', side, 'move: Toxic Spikes'); + this.effectState.layers++; + }, + onEntryHazard(pokemon) { + if (!pokemon.isGrounded()) return; + if (pokemon.hasType('Poison')) { + this.add('-sideend', pokemon.side, 'move: Toxic Spikes', '[of] ' + pokemon); + pokemon.side.removeSideCondition('toxicspikes'); + } else if (pokemon.hasType('Steel') || pokemon.hasItem('heavydutyboots')) { + return; + } else if (this.effectState.layers >= 2) { + pokemon.trySetStatus('tox', this.effectState.source); + } else { + pokemon.trySetStatus('psn', this.effectState.source); + } + }, + }, + }, +}; + +function calculate(battle: Battle, source: Pokemon, pokemon: Pokemon, moveid = 'tackle') { + const move = battle.dex.getActiveMove(moveid); + move.type = source.getTypes()[0]; + const typeMod = Math.pow(2, battle.clampIntRange(pokemon.runEffectiveness(move), -6, 6)); + if (!pokemon.runImmunity(move.type)) return 0; + return typeMod; +} diff --git a/data/mods/passiveaggressive/scripts.ts b/data/mods/passiveaggressive/scripts.ts new file mode 100644 index 000000000000..017908a0409e --- /dev/null +++ b/data/mods/passiveaggressive/scripts.ts @@ -0,0 +1,213 @@ +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + actions: { + hitStepMoveHitLoop(targets, pokemon, move) { // Temporary name + let damage: (number | boolean | undefined)[] = []; + for (const i of targets.keys()) { + damage[i] = 0; + } + move.totalDamage = 0; + pokemon.lastDamage = 0; + let targetHits = move.multihit || 1; + if (Array.isArray(targetHits)) { + // yes, it's hardcoded... meh + if (targetHits[0] === 2 && targetHits[1] === 5) { + if (this.battle.gen >= 5) { + // 35-35-15-15 out of 100 for 2-3-4-5 hits + targetHits = this.battle.sample([2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5]); + if (targetHits < 4 && pokemon.hasItem('loadeddice')) { + targetHits = 5 - this.battle.random(2); + } + } else { + targetHits = this.battle.sample([2, 2, 2, 3, 3, 3, 4, 5]); + } + } else { + targetHits = this.battle.random(targetHits[0], targetHits[1] + 1); + } + } + if (targetHits === 10 && pokemon.hasItem('loadeddice')) targetHits -= this.battle.random(7); + targetHits = Math.floor(targetHits); + let nullDamage = true; + let moveDamage: (number | boolean | undefined)[] = []; + // There is no need to recursively check the ´sleepUsable´ flag as Sleep Talk can only be used while asleep. + const isSleepUsable = move.sleepUsable || this.dex.moves.get(move.sourceEffect).sleepUsable; + + let targetsCopy: (Pokemon | false | null)[] = targets.slice(0); + let hit: number; + for (hit = 1; hit <= targetHits; hit++) { + if (damage.includes(false)) break; + if (hit > 1 && pokemon.status === 'slp' && (!isSleepUsable || this.battle.gen === 4)) break; + if (targets.every(target => !target?.hp)) break; + move.hit = hit; + if (move.smartTarget && targets.length > 1) { + targetsCopy = [targets[hit - 1]]; + damage = [damage[hit - 1]]; + } else { + targetsCopy = targets.slice(0); + } + const target = targetsCopy[0]; // some relevant-to-single-target-moves-only things are hardcoded + if (target && typeof move.smartTarget === 'boolean') { + if (hit > 1) { + this.battle.addMove('-anim', pokemon, move.name, target); + } else { + this.battle.retargetLastMove(target); + } + } + + // like this (Triple Kick) + if (target && move.multiaccuracy && hit > 1) { + let accuracy = move.accuracy; + const boostTable = [1, 4 / 3, 5 / 3, 2, 7 / 3, 8 / 3, 3]; + if (accuracy !== true) { + if (!move.ignoreAccuracy) { + const boosts = this.battle.runEvent('ModifyBoost', pokemon, null, null, {...pokemon.boosts}); + const boost = this.battle.clampIntRange(boosts['accuracy'], -6, 6); + if (boost > 0) { + accuracy *= boostTable[boost]; + } else { + accuracy /= boostTable[-boost]; + } + } + if (!move.ignoreEvasion) { + const boosts = this.battle.runEvent('ModifyBoost', target, null, null, {...target.boosts}); + const boost = this.battle.clampIntRange(boosts['evasion'], -6, 6); + if (boost > 0) { + accuracy /= boostTable[boost]; + } else if (boost < 0) { + accuracy *= boostTable[-boost]; + } + } + } + accuracy = this.battle.runEvent('ModifyAccuracy', target, pokemon, move, accuracy); + if (!move.alwaysHit) { + accuracy = this.battle.runEvent('Accuracy', target, pokemon, move, accuracy); + if (accuracy !== true && !this.battle.randomChance(accuracy, 100)) break; + } + } + + const moveData = move; + if (!moveData.flags) moveData.flags = {}; + + let moveDamageThisHit; + // Modifies targetsCopy (which is why it's a copy) + [moveDamageThisHit, targetsCopy] = this.spreadMoveHit(targetsCopy, pokemon, move, moveData); + // When Dragon Darts targets two different pokemon, targetsCopy is a length 1 array each hit + // so spreadMoveHit returns a length 1 damage array + if (move.smartTarget) { + moveDamage.push(...moveDamageThisHit); + } else { + moveDamage = moveDamageThisHit; + } + + if (!moveDamage.some(val => val !== false)) break; + nullDamage = false; + + for (const [i, md] of moveDamage.entries()) { + if (move.smartTarget && i !== hit - 1) continue; + // Damage from each hit is individually counted for the + // purposes of Counter, Metal Burst, and Mirror Coat. + damage[i] = md === true || !md ? 0 : md; + // Total damage dealt is accumulated for the purposes of recoil (Parental Bond). + move.totalDamage += damage[i] as number; + } + if (move.mindBlownRecoil) { + const hpBeforeRecoil = pokemon.hp; + const calc = calculate(this.battle, pokemon, pokemon, move.id); + this.battle.damage(Math.round(calc * pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get(move.id), true); + move.mindBlownRecoil = false; + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon, pokemon); + } + } + this.battle.eachEvent('Update'); + if (!pokemon.hp && targets.length === 1) { + hit++; // report the correct number of hits for multihit moves + break; + } + } + // hit is 1 higher than the actual hit count + if (hit === 1) return damage.fill(false); + if (nullDamage) damage.fill(false); + this.battle.faintMessages(false, false, !pokemon.hp); + if (move.multihit && typeof move.smartTarget !== 'boolean') { + this.battle.add('-hitcount', targets[0], hit - 1); + } + + if ((move.recoil || move.id === 'chloroblast') && move.totalDamage) { + const hpBeforeRecoil = pokemon.hp; + const recoilDamage = this.calcRecoilDamage(move.totalDamage, move, pokemon); + if (recoilDamage !== 1.1) this.battle.damage(recoilDamage, pokemon, pokemon, 'recoil'); + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon, pokemon); + } + } + + if (move.struggleRecoil) { + const hpBeforeRecoil = pokemon.hp; + let recoilDamage; + if (this.dex.gen >= 5) { + recoilDamage = this.battle.clampIntRange(Math.round(pokemon.baseMaxhp / 4), 1); + } else { + recoilDamage = this.battle.clampIntRange(this.battle.trunc(pokemon.maxhp / 4), 1); + } + this.battle.directDamage(recoilDamage, pokemon, pokemon, {id: 'strugglerecoil'} as Condition); + if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { + this.battle.runEvent('EmergencyExit', pokemon, pokemon); + } + } + + // smartTarget messes up targetsCopy, but smartTarget should in theory ensure that targets will never fail, anyway + if (move.smartTarget) { + targetsCopy = targets.slice(0); + } + + for (const [i, target] of targetsCopy.entries()) { + if (target && pokemon !== target) { + target.gotAttacked(move, moveDamage[i] as number | false | undefined, pokemon); + if (typeof moveDamage[i] === 'number') { + target.timesAttacked += move.smartTarget ? 1 : hit - 1; + } + } + } + + if (move.ohko && !targets[0].hp) this.battle.add('-ohko'); + + if (!damage.some(val => !!val || val === 0)) return damage; + + this.battle.eachEvent('Update'); + + this.afterMoveSecondaryEvent(targetsCopy.filter(val => !!val) as Pokemon[], pokemon, move); + + if (!move.negateSecondary && !(move.hasSheerForce && pokemon.hasAbility('sheerforce'))) { + for (const [i, d] of damage.entries()) { + // There are no multihit spread moves, so it's safe to use move.totalDamage for multihit moves + // The previous check was for `move.multihit`, but that fails for Dragon Darts + const curDamage = targets.length === 1 ? move.totalDamage : d; + if (typeof curDamage === 'number' && targets[i].hp) { + const targetHPBeforeDamage = (targets[i].hurtThisTurn || 0) + curDamage; + if (targets[i].hp <= targets[i].maxhp / 2 && targetHPBeforeDamage > targets[i].maxhp / 2) { + this.battle.runEvent('EmergencyExit', targets[i], pokemon); + } + } + } + } + + return damage; + }, + calcRecoilDamage(damageDealt, move, pokemon): number { + const calc = calculate(this.battle, pokemon, pokemon, move.id); + if (calc === 0) return 1.1; + if (move.id === 'chloroblast') return Math.round(calc * pokemon.maxhp / 2); + const recoil = Math.round(damageDealt * calc * move.recoil![0] / move.recoil![1]); + return this.battle.clampIntRange(recoil, 1); + }, + }, +}; + +function calculate(battle: Battle, source: Pokemon, pokemon: Pokemon, moveid = 'tackle') { + const move = battle.dex.getActiveMove(moveid); + move.type = source.getTypes()[0]; + const typeMod = Math.pow(2, battle.clampIntRange(pokemon.runEffectiveness(move), -6, 6)); + if (!pokemon.runImmunity(move.type)) return 0; + return typeMod; +} diff --git a/data/mods/pokebilities/abilities.ts b/data/mods/pokebilities/abilities.ts index ecd9cf78530e..de3ba4e4d1eb 100644 --- a/data/mods/pokebilities/abilities.ts +++ b/data/mods/pokebilities/abilities.ts @@ -1,10 +1,10 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { mummy: { inherit: true, onDamagingHit(damage, target, source, move) { if (target.ability === 'mummy') { const sourceAbility = source.getAbility(); - if (sourceAbility.isPermanent || sourceAbility.id === 'mummy') { + if (sourceAbility.flags['cantsuppress'] || sourceAbility.id === 'mummy') { return; } if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) { @@ -15,7 +15,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } } else { const possibleAbilities = [source.ability, ...(source.m.innates || [])] - .filter(val => !this.dex.abilities.get(val).isPermanent && val !== 'mummy'); + .filter(val => !this.dex.abilities.get(val).flags['cantsuppress'] && val !== 'mummy'); if (!possibleAbilities.length) return; if (this.checkMoveMakesContact(move, source, target, !source.isAlly(target))) { const abil = this.sample(possibleAbilities); @@ -44,7 +44,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { // Remove setter's innates before the ability starts if (pokemon.m.innates) { for (const innate of pokemon.m.innates) { - if (this.dex.abilities.get(innate).isPermanent || innate === 'neutralizinggas') continue; + if (this.dex.abilities.get(innate).flags['cantsuppress'] || innate === 'neutralizinggas') continue; pokemon.removeVolatile('ability:' + innate); } } @@ -58,7 +58,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } if (target.m.innates) { for (const innate of target.m.innates) { - if (this.dex.abilities.get(innate).isPermanent) continue; + if (this.dex.abilities.get(innate).flags['cantsuppress']) continue; target.removeVolatile('ability:' + innate); } } @@ -92,12 +92,6 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } }, }, - poisontouch: { - inherit: true, - // Activate after Sheer Force to make interaction determistic. The ordering for this ability is - // an arbitary decision, but is modelled on Stench, which is reflective of on-cart behaviour. - onModifyMovePriority: -1, - }, powerofalchemy: { inherit: true, onAllyFaint(ally) { @@ -106,11 +100,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { const isAbility = pokemon.ability === 'powerofalchemy'; let possibleAbilities = [ally.ability]; if (ally.m.innates) possibleAbilities.push(...ally.m.innates); - const additionalBannedAbilities = [ - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'wonderguard', pokemon.ability, ...(pokemon.m.innates || []), - ]; + const additionalBannedAbilities = [pokemon.ability, ...(pokemon.m.innates || [])]; possibleAbilities = possibleAbilities - .filter(val => !this.dex.abilities.get(val).isPermanent && !additionalBannedAbilities.includes(val)); + .filter(val => !this.dex.abilities.get(val).flags['noreceiver'] && !additionalBannedAbilities.includes(val)); if (!possibleAbilities.length) return; const ability = this.dex.abilities.get(possibleAbilities[this.random(possibleAbilities.length)]); this.add('-ability', pokemon, ability, '[from] ability: Power of Alchemy', '[of] ' + ally); @@ -130,11 +122,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { const isAbility = pokemon.ability === 'receiver'; let possibleAbilities = [ally.ability]; if (ally.m.innates) possibleAbilities.push(...ally.m.innates); - const additionalBannedAbilities = [ - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'wonderguard', pokemon.ability, ...(pokemon.m.innates || []), - ]; + const additionalBannedAbilities = [pokemon.ability, ...(pokemon.m.innates || [])]; possibleAbilities = possibleAbilities - .filter(val => !this.dex.abilities.get(val).isPermanent && !additionalBannedAbilities.includes(val)); + .filter(val => !this.dex.abilities.get(val).flags['noreceiver'] && !additionalBannedAbilities.includes(val)); if (!possibleAbilities.length) return; const ability = this.dex.abilities.get(possibleAbilities[this.random(possibleAbilities.length)]); this.add('-ability', pokemon, ability, '[from] ability: Receiver', '[of] ' + ally); @@ -162,12 +152,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { const target = possibleTargets[rand]; let possibleAbilities = [target.ability]; if (target.m.innates) possibleAbilities.push(...target.m.innates); - const additionalBannedAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode', pokemon.ability, ...(pokemon.m.innates || []), - ]; + const additionalBannedAbilities = [pokemon.ability, ...(pokemon.m.innates || [])]; possibleAbilities = possibleAbilities - .filter(val => !this.dex.abilities.get(val).isPermanent && !additionalBannedAbilities.includes(val)); + .filter(val => !this.dex.abilities.get(val).flags['notrace'] && !additionalBannedAbilities.includes(val)); if (!possibleAbilities.length) { possibleTargets.splice(rand, 1); continue; @@ -188,13 +175,8 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { inherit: true, onDamagingHit(damage, target, source, move) { const isAbility = target.ability === 'wanderingspirit'; - const additionalBannedAbilities = ['hungerswitch', 'illusion', 'neutralizinggas', 'wonderguard']; if (isAbility) { - if (source.getAbility().isPermanent || additionalBannedAbilities.includes(source.ability) || - target.volatiles['dynamax'] - ) { - return; - } + if (source.getAbility().flags['failskillswap'] || target.volatiles['dynamax']) return; if (this.checkMoveMakesContact(move, source, target)) { const sourceAbility = source.setAbility('wanderingspirit', target); @@ -209,7 +191,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } else { // Make Wandering Spirit replace a random ability const possibleAbilities = [source.ability, ...(source.m.innates || [])] - .filter(val => !this.dex.abilities.get(val).isPermanent && !additionalBannedAbilities.includes(val)); + .filter(val => !this.dex.abilities.get(val).flags['failskillswap']); if (!possibleAbilities.length || target.volatiles['dynamax']) return; if (move.flags['contact']) { const sourceAbility = this.sample(possibleAbilities); diff --git a/data/mods/pokebilities/moves.ts b/data/mods/pokebilities/moves.ts index 8fd18a791128..c473cb8bba8d 100644 --- a/data/mods/pokebilities/moves.ts +++ b/data/mods/pokebilities/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { gastroacid: { inherit: true, condition: { diff --git a/data/mods/pokebilities/scripts.ts b/data/mods/pokebilities/scripts.ts index 75e2f3c5d2fe..e9564991a2ac 100644 --- a/data/mods/pokebilities/scripts.ts +++ b/data/mods/pokebilities/scripts.ts @@ -32,7 +32,7 @@ export const Scripts: ModdedBattleScriptsData = { ((this.volatiles['gastroacid'] || (neutralizinggas && (this.ability !== ('neutralizinggas' as ID) || this.m.innates?.some((k: string) => k === 'neutralizinggas')) - )) && !this.getAbility().isPermanent + )) && !this.getAbility().flags['cantsuppress'] ) ); }, @@ -92,13 +92,14 @@ export const Scripts: ModdedBattleScriptsData = { this.boosts[boostName] = pokemon.boosts[boostName]; } if (this.battle.gen >= 6) { - const volatilesToCopy = ['focusenergy', 'gmaxchistrike', 'laserfocus']; + // we need to remove all crit volatiles before adding any crit volatiles + const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus']; + for (const volatile of volatilesToCopy) this.removeVolatile(volatile); for (const volatile of volatilesToCopy) { if (pokemon.volatiles[volatile]) { this.addVolatile(volatile); if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers; - } else { - this.removeVolatile(volatile); + if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType; } } } @@ -172,6 +173,7 @@ export const Scripts: ModdedBattleScriptsData = { (this.gender === '' ? '' : ', ' + this.gender) + (this.set.shiny ? ', shiny' : ''); this.battle.add('detailschange', this, (this.illusion || this).details); if (source.effectType === 'Item') { + this.canTerastallize = null; // National Dex behavior if (source.zMove) { this.battle.add('-burst', this, apparentSpecies, species.requiredItem); this.moveThisTurnResult = true; // Ultra Burst counts as an action for Truant diff --git a/data/mods/pokemoves/abilities.ts b/data/mods/pokemoves/abilities.ts new file mode 100644 index 000000000000..e448152e0e93 --- /dev/null +++ b/data/mods/pokemoves/abilities.ts @@ -0,0 +1,71 @@ +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { + trace: { + inherit: true, + onUpdate(pokemon) { + if (!pokemon.isStarted || this.effectState.gaveUp) return; + const isAbility = pokemon.ability === 'trace'; + + const possibleTargets = pokemon.adjacentFoes().filter( + target => !target.getAbility().flags['notrace'] && target.ability !== 'noability' + ); + if (!possibleTargets.length) return; + + const target = this.sample(possibleTargets); + const ability = target.getAbility(); + + if (isAbility) { + if (pokemon.setAbility(ability)) { + this.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target); + } + } else { + pokemon.removeVolatile('ability:trace'); + pokemon.addVolatile('ability:' + ability.id, pokemon); + this.add('-ability', pokemon, ability, '[from] ability: Trace', '[of] ' + target); + } + }, + }, + neutralizinggas: { + inherit: true, + // Ability suppression implemented in sim/pokemon.ts:Pokemon#ignoringAbility + onPreStart(pokemon) { + this.add('-ability', pokemon, 'Neutralizing Gas'); + pokemon.abilityState.ending = false; + // Remove setter's innates before the ability starts + for (const target of this.getAllActive()) { + if (target.illusion) { + this.singleEvent('End', this.dex.abilities.get('Illusion'), target.abilityState, target, pokemon, 'neutralizinggas'); + } + if (target.volatiles['slowstart']) { + delete target.volatiles['slowstart']; + this.add('-end', target, 'Slow Start', '[silent]'); + } + if (target.m.pokemove && !this.dex.abilities.get(target.m.pokemove.abilities['0']).flags['cantsuppress']) { + target.removeVolatile('ability:' + this.toID(target.m.pokemove.abilities['0'])); + } + } + }, + onEnd(source) { + this.add('-end', source, 'ability: Neutralizing Gas'); + + // FIXME this happens before the pokemon switches out, should be the opposite order. + // Not an easy fix since we cant use a supported event. Would need some kind of special event that + // gathers events to run after the switch and then runs them when the ability is no longer accessible. + // (If you're tackling this, do note extreme weathers have the same issue) + + // Mark this pokemon's ability as ending so Pokemon#ignoringAbility skips it + if (source.abilityState.ending) return; + source.abilityState.ending = true; + const sortedActive = this.getAllActive(); + this.speedSort(sortedActive); + for (const pokemon of sortedActive) { + if (pokemon !== source) { + // Will be suppressed by Pokemon#ignoringAbility if needed + this.singleEvent('Start', pokemon.getAbility(), pokemon.abilityState, pokemon); + } + if (pokemon.m.pokemove && !pokemon.volatiles['ability:' + this.toID(pokemon.m.pokemove.abilities['0'])]) { + pokemon.addVolatile('ability:' + this.toID(pokemon.m.pokemove.abilities['0']), pokemon); + } + } + }, + }, +}; diff --git a/data/mods/pokemoves/moves.ts b/data/mods/pokemoves/moves.ts new file mode 100644 index 000000000000..6423c3a8b43b --- /dev/null +++ b/data/mods/pokemoves/moves.ts @@ -0,0 +1,30 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + conversion: { + inherit: true, + onHit(target) { + const moveSlotID = target.moveSlots[0].id; + let type = this.dex.moves.get(moveSlotID).type; + if (this.dex.species.get(moveSlotID).exists) { + type = this.dex.species.get(moveSlotID).types[0]; + } + if (target.hasType(type) || !target.setType(type)) return false; + this.add('-start', target, 'typechange', type); + }, + }, + gastroacid: { + inherit: true, + condition: { + // Ability suppression implemented in Pokemon.ignoringAbility() within sim/pokemon.js + onStart(pokemon) { + this.add('-endability', pokemon); + this.singleEvent('End', pokemon.getAbility(), pokemon.abilityState, pokemon, pokemon, 'gastroacid'); + const keys = Object.keys(pokemon.volatiles).filter(x => x.startsWith("ability:")); + if (keys.length) { + for (const abil of keys) { + pokemon.removeVolatile(abil); + } + } + }, + }, + }, +}; diff --git a/data/mods/pokemoves/scripts.ts b/data/mods/pokemoves/scripts.ts new file mode 100644 index 000000000000..20bc864dbb1f --- /dev/null +++ b/data/mods/pokemoves/scripts.ts @@ -0,0 +1,48 @@ +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + field: { + suppressingWeather() { + for (const pokemon of this.battle.getAllActive()) { + const pokemove = pokemon.m.pokemove; + if (pokemon && !pokemon.ignoringAbility() && + (pokemon.getAbility().suppressWeather || + (pokemove && pokemon.volatiles['ability:' + this.battle.toID(pokemove.abilities['0'])] && + this.battle.dex.abilities.get(pokemove.abilities['0']).suppressWeather))) { + return true; + } + } + return false; + }, + }, + pokemon: { + hasAbility(ability) { + if (this.ignoringAbility()) return false; + if (Array.isArray(ability)) return ability.some(abil => this.hasAbility(abil)); + const abilityid = this.battle.toID(ability); + return this.ability === abilityid || !!this.volatiles['ability:' + abilityid]; + }, + ignoringAbility() { + // Check if any active pokemon have the ability Neutralizing Gas + let neutralizinggas = false; + for (const pokemon of this.battle.getAllActive()) { + // can't use hasAbility because it would lead to infinite recursion + if ( + (pokemon.ability === ('neutralizinggas' as ID) || pokemon.volatiles['ability:neutralizinggas']) && + !pokemon.volatiles['gastroacid'] && !pokemon.abilityState.ending + ) { + neutralizinggas = true; + break; + } + } + + return !!( + (this.battle.gen >= 5 && !this.isActive) || + ((this.volatiles['gastroacid'] || + (neutralizinggas && (this.ability !== ('neutralizinggas' as ID) || + this.volatiles['ability:neutralizinggas']) + )) && !this.getAbility().flags['cantsuppress'] + ) + ); + }, + }, +}; diff --git a/data/mods/potd/random-teams.ts b/data/mods/potd/random-teams.ts deleted file mode 100644 index b4f3b5d93688..000000000000 --- a/data/mods/potd/random-teams.ts +++ /dev/null @@ -1,208 +0,0 @@ -import {RandomTeams} from './../../random-teams'; - -const potdPokemon = [ - "hoopa", "groudon", "dachsbun", "squawkabilly", "cacturne", "typhlosion", "jolteon", "masquerain", "falinks", - "wyrdeer", "gardevoir", "decidueye", "hawlucha", "azelf", "gothitelle", "donphan", "pikachu", "zaciancrowned", - "quagsire", "uxie", "dondozo", "orthworm", "klawf", "dunsparce", "avalugg", "pawmot", "qwilfish", "lilliganthisui", -]; - -export class RandomPOTDTeams extends RandomTeams { - randomTeam() { - this.enforceNoDirectCustomBanlistChanges(); - - const seed = this.prng.seed; - const ruleTable = this.dex.formats.getRuleTable(this.format); - const pokemon: RandomTeamsTypes.RandomSet[] = []; - - // For Monotype - const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); - const isDoubles = this.format.gameType !== 'singles'; - const typePool = this.dex.types.names(); - const type = this.forceMonotype || this.sample(typePool); - - // PotD stuff - const day = new Date().getDate(); - const potd = this.dex.species.get(potdPokemon[day > 28 ? 27 : day - 1]); - - const baseFormes: {[k: string]: number} = {}; - - const tierCount: {[k: string]: number} = {}; - const typeCount: {[k: string]: number} = {}; - const typeComboCount: {[k: string]: number} = {}; - const typeWeaknesses: {[k: string]: number} = {}; - const teamDetails: RandomTeamsTypes.TeamDetails = {}; - const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, isDoubles); - - // Remove PotD from baseSpeciesPool - if (baseSpeciesPool.includes(potd.baseSpecies)) { - this.fastPop(baseSpeciesPool, baseSpeciesPool.indexOf(potd.baseSpecies)); - } - - // Add PotD to type counts - for (const typeName of potd.types) { - typeCount[typeName] = 1; - } - typeComboCount[potd.types.slice().sort().join()] = 1; - - // Increment weakness counter - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, potd) > 0) { - typeWeaknesses[typeName] = 1; - } - } - - while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { - const baseSpecies = this.sampleNoReplace(baseSpeciesPool); - const currentSpeciesPool: Species[] = []; - for (const poke of pokemonPool) { - const species = this.dex.species.get(poke); - if (species.baseSpecies === baseSpecies) currentSpeciesPool.push(species); - } - let species = this.sample(currentSpeciesPool); - if (!species.exists) continue; - // Illusion shouldn't be on the last slot - if (species.baseSpecies === 'Zoroark' && pokemon.length >= (this.maxTeamSize - 1)) continue; - - // If Zoroark is in the team, the sixth slot should not be a Pokemon with extremely low level - if ( - pokemon.some(pkmn => pkmn.name === 'Zoroark') && - pokemon.length >= (this.maxTeamSize - 1) && - this.getLevel(species, isDoubles) < 72 && - !this.adjustLevel - ) { - continue; - } - - // Pokemon with Last Respects, Intrepid Sword, and Dauntless Shield shouldn't be leading - if (['Basculegion', 'Houndstone', 'Zacian', 'Zamazenta'].includes(species.baseSpecies) && !pokemon.length) continue; - - const tier = species.tier; - const types = species.types; - const typeCombo = types.slice().sort().join(); - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - - // Limit one Pokemon per tier, two for Monotype - // Disable this for now, since it is still a new gen - // Unless you want to have a lot of Ubers! - // if ( - // (tierCount[tier] >= (this.forceMonotype || isMonotype ? 2 : 1) * limitFactor) && - // !this.randomChance(1, Math.pow(5, tierCount[tier])) - // ) { - // continue; - // } - - if (!isMonotype && !this.forceMonotype) { - let skip = false; - - // Limit two of any type - for (const typeName of types) { - if (typeCount[typeName] >= 2 * limitFactor) { - skip = true; - break; - } - } - if (skip) continue; - - // Limit three weak to any type - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; - if (typeWeaknesses[typeName] >= 3 * limitFactor) { - skip = true; - break; - } - } - } - if (skip) continue; - } - - // Limit one of any type combination, two in Monotype - if (!this.forceMonotype && typeComboCount[typeCombo] >= (isMonotype ? 2 : 1) * limitFactor) continue; - - // The Pokemon of the Day - if (potd?.exists && (pokemon.length === 1 || this.maxTeamSize === 1)) species = potd; - - const set = this.randomSet(species, teamDetails, pokemon.length === 0, isDoubles); - - // Okay, the set passes, add it to our team - pokemon.push(set); - if (pokemon.length === this.maxTeamSize) { - // Set Zoroark's level to be the same as the last Pokemon - const illusion = teamDetails.illusion; - if (illusion) pokemon[illusion - 1].level = pokemon[this.maxTeamSize - 1].level; - - // Don't bother tracking details for the last Pokemon - break; - } - - // Now that our Pokemon has passed all checks, we can increment our counters - baseFormes[species.baseSpecies] = 1; - - // Increment tier counter - if (tierCount[tier]) { - tierCount[tier]++; - } else { - tierCount[tier] = 1; - } - - // Don't increment type/weakness counters for POTD, since they were added at the beginning - if (pokemon.length !== 1 && this.maxTeamSize !== 1) { - // Increment type counters - for (const typeName of types) { - if (typeName in typeCount) { - typeCount[typeName]++; - } else { - typeCount[typeName] = 1; - } - } - if (typeCombo in typeComboCount) { - typeComboCount[typeCombo]++; - } else { - typeComboCount[typeCombo] = 1; - } - - // Increment weakness counter - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - typeWeaknesses[typeName]++; - } - } - } - - // Track what the team has - if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; - if (set.ability === 'Drought' || set.moves.includes('sunnyday')) teamDetails.sun = 1; - if (set.ability === 'Sand Stream') teamDetails.sand = 1; - if (set.ability === 'Snow Warning' || set.moves.includes('snowscape') || set.moves.includes('chillyreception')) { - teamDetails.snow = 1; - } - if (set.moves.includes('spikes')) teamDetails.spikes = (teamDetails.spikes || 0) + 1; - if (set.moves.includes('stealthrock')) teamDetails.stealthRock = 1; - if (set.moves.includes('stickyweb')) teamDetails.stickyWeb = 1; - if (set.moves.includes('stoneaxe')) teamDetails.stealthRock = 1; - if (set.moves.includes('toxicspikes')) teamDetails.toxicSpikes = 1; - if (set.moves.includes('defog')) teamDetails.defog = 1; - if (set.moves.includes('rapidspin')) teamDetails.rapidSpin = 1; - if (set.moves.includes('mortalspin')) teamDetails.rapidSpin = 1; - if (set.moves.includes('tidyup')) teamDetails.rapidSpin = 1; - if (set.moves.includes('auroraveil') || (set.moves.includes('reflect') && set.moves.includes('lightscreen'))) { - teamDetails.screens = 1; - } - if (set.role === 'Tera Blast user') teamDetails.teraBlast = 1; - - // For setting Zoroark's level - if (set.ability === 'Illusion') teamDetails.illusion = pokemon.length; - } - if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { // large teams sometimes cannot be built - throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); - } - - return pokemon; - } -} - -export default RandomPOTDTeams; diff --git a/data/mods/randomroulette/scripts.ts b/data/mods/randomroulette/scripts.ts new file mode 100644 index 000000000000..7832aab0fe22 --- /dev/null +++ b/data/mods/randomroulette/scripts.ts @@ -0,0 +1,121 @@ +import {PRNG} from '../../../sim/prng'; +import {Pokemon} from '../../../sim/pokemon'; +import {Teams} from '../../../sim/teams'; + +export const Scripts: ModdedBattleScriptsData = { + start() { + // Choose a random format + this.gen = this.random(1, 10); + const format = Dex.formats.get(`gen${this.gen}randombattle@@@${(this.format.customRules || []).join(',')}`); + this.dex = Dex.forFormat(format); + this.ruleTable = this.dex.formats.getRuleTable(format); + this.teamGenerator = Teams.getGenerator(format); + + this.actions.battle = this; + this.actions.dex = this.dex; + if (this.actions.dex.data.Scripts.actions) Object.assign(this.actions, this.actions.dex.data.Scripts.actions); + if (format.actions) Object.assign(this.actions, format.actions); + + for (const i in this.dex.data.Scripts) { + const entry = this.dex.data.Scripts[i]; + if (typeof entry === 'function') (this as any)[i] = entry; + } + + for (const rule of this.ruleTable.keys()) { + if ('+*-!'.includes(rule.charAt(0))) continue; + const subFormat = this.dex.formats.get(rule); + if (subFormat.exists) { + const hasEventHandler = Object.keys(subFormat).some( + // skip event handlers that are handled elsewhere + val => val.startsWith('on') && ![ + 'onBegin', 'onTeamPreview', 'onBattleStart', 'onValidateRule', 'onValidateTeam', 'onChangeSet', 'onValidateSet', + ].includes(val) + ); + if (hasEventHandler) this.field.addPseudoWeather(rule); + } + } + + // Generate teams using the format + for (const side of this.sides) { + this.teamGenerator.setSeed(PRNG.generateSeed()); + + const team = this.teamGenerator.getTeam(); + side.team = team; + side.pokemon = []; + for (let i = 0; i < team.length && i < 24; i++) { + side.pokemon.push(new Pokemon(team[i], side)); + side.pokemon[i].position = i; + } + side.dynamaxUsed = this.gen !== 8; + } + + // Everything below is copied from sim/battle.ts + + // Deserialized games should use restart() + if (this.deserialized) return; + // need all players to start + if (!this.sides.every(side => !!side)) throw new Error(`Missing sides: ${this.sides}`); + + if (this.started) throw new Error(`Battle already started`); + + this.started = true; + if (this.gameType === 'multi') { + this.sides[1].foe = this.sides[2]!; + this.sides[0].foe = this.sides[3]!; + this.sides[2]!.foe = this.sides[1]; + this.sides[3]!.foe = this.sides[0]; + this.sides[1].allySide = this.sides[3]!; + this.sides[0].allySide = this.sides[2]!; + this.sides[2]!.allySide = this.sides[0]; + this.sides[3]!.allySide = this.sides[1]; + // sync side conditions + this.sides[2]!.sideConditions = this.sides[0].sideConditions; + this.sides[3]!.sideConditions = this.sides[1].sideConditions; + } else { + this.sides[1].foe = this.sides[0]; + this.sides[0].foe = this.sides[1]; + if (this.sides.length > 2) { // ffa + this.sides[2]!.foe = this.sides[3]!; + this.sides[3]!.foe = this.sides[2]!; + } + } + + for (const side of this.sides) { + this.add('teamsize', side.id, side.pokemon.length); + } + + this.add('gen', this.gen); + + this.add('tier', format.name); + if (this.rated) { + if (this.rated === 'Rated battle') this.rated = true; + this.add('rated', typeof this.rated === 'string' ? this.rated : ''); + } + + if (format.onBegin) format.onBegin.call(this); + for (const rule of this.ruleTable.keys()) { + if ('+*-!'.includes(rule.charAt(0))) continue; + const subFormat = this.dex.formats.get(rule); + if (subFormat.onBegin) subFormat.onBegin.call(this); + } + + if (this.sides.some(side => !side.pokemon[0])) { + throw new Error('Battle not started: A player has an empty team.'); + } + + if (this.debugMode) { + this.checkEVBalance(); + } + + if (format.onTeamPreview) format.onTeamPreview.call(this); + for (const rule of this.ruleTable.keys()) { + if ('+*-!'.includes(rule.charAt(0))) continue; + const subFormat = this.dex.formats.get(rule); + if (subFormat.onTeamPreview) subFormat.onTeamPreview.call(this); + } + + this.queue.addChoice({choice: 'start'}); + this.midTurn = true; + if (!this.requestState) this.turnLoop(); + }, +}; diff --git a/data/mods/sharedpower/abilities.ts b/data/mods/sharedpower/abilities.ts index f715c4e0d4e8..8d815709d741 100644 --- a/data/mods/sharedpower/abilities.ts +++ b/data/mods/sharedpower/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { neutralizinggas: { inherit: true, // Ability suppression implemented in sim/pokemon.ts:Pokemon#ignoringAbility @@ -16,7 +16,7 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { } if (target.m.abils?.length) { for (const key of target.m.abils) { - if (this.dex.abilities.get(key.slice(8)).isPermanent) continue; + if (this.dex.abilities.get(key.slice(8)).flags['cantsuppress']) continue; target.removeVolatile(key); } } @@ -56,13 +56,9 @@ export const Abilities: {[k: string]: ModdedAbilityData} = { if (!pokemon.isStarted || this.effectState.gaveUp) return; const isAbility = pokemon.ability === 'trace'; - const additionalBannedAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'noability', 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode', - ]; - const possibleTargets = pokemon.adjacentFoes().filter(target => ( - !target.getAbility().isPermanent && !additionalBannedAbilities.includes(target.ability) - )); + const possibleTargets = pokemon.adjacentFoes().filter( + target => !target.getAbility().flags['notrace'] && target.ability !== 'noability' + ); if (!possibleTargets.length) return; const target = this.sample(possibleTargets); diff --git a/data/mods/sharedpower/moves.ts b/data/mods/sharedpower/moves.ts index b0d980560b5f..a883f0fa81f0 100644 --- a/data/mods/sharedpower/moves.ts +++ b/data/mods/sharedpower/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { gastroacid: { inherit: true, condition: { diff --git a/data/mods/sharedpower/scripts.ts b/data/mods/sharedpower/scripts.ts index c6260f5e32f0..572e4d265724 100644 --- a/data/mods/sharedpower/scripts.ts +++ b/data/mods/sharedpower/scripts.ts @@ -39,7 +39,7 @@ export const Scripts: ModdedBattleScriptsData = { ((this.volatiles['gastroacid'] || (neutralizinggas && (this.ability !== ('neutralizinggas' as ID) || this.m.abils?.includes('ability:neutralizinggas')) - )) && !this.getAbility().isPermanent + )) && !this.getAbility().flags['cantsuppress'] ) ); }, diff --git a/data/mods/sharingiscaring/conditions.ts b/data/mods/sharingiscaring/conditions.ts new file mode 100644 index 000000000000..1a5bef5f3c23 --- /dev/null +++ b/data/mods/sharingiscaring/conditions.ts @@ -0,0 +1,44 @@ +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { + choicelock: { + inherit: true, + onBeforeMove(pokemon, target, move) { + const choiceItem = pokemon.getItem().isChoice || + Object.keys(pokemon.volatiles).some(v => ( + v.startsWith('item:') && this.dex.items.get(v.split(':')[1]).isChoice + )); + if (!choiceItem) { + pokemon.removeVolatile('choicelock'); + return; + } + if ( + !pokemon.ignoringItem() && !pokemon.volatiles['dynamax'] && + move.id !== this.effectState.move && move.id !== 'struggle' + ) { + // Fails unless the Choice item is being ignored, and no PP is lost + this.addMove('move', pokemon, move.name); + this.attrLastMove('[still]'); + this.debug("Disabled by Choice item lock"); + this.add('-fail', pokemon); + return false; + } + }, + onDisableMove(pokemon) { + const choiceItem = pokemon.getItem().isChoice || + Object.keys(pokemon.volatiles).some(v => ( + v.startsWith('item:') && this.dex.items.get(v.split(':')[1]).isChoice + )); + if (!choiceItem || !pokemon.hasMove(this.effectState.move)) { + pokemon.removeVolatile('choicelock'); + return; + } + if (pokemon.ignoringItem() || pokemon.volatiles['dynamax']) { + return; + } + for (const moveSlot of pokemon.moveSlots) { + if (moveSlot.id !== this.effectState.move) { + pokemon.disableMove(moveSlot.id, false, this.effectState.sourceEffect); + } + } + }, + }, +}; diff --git a/data/mods/sharingiscaring/items.ts b/data/mods/sharingiscaring/items.ts new file mode 100644 index 000000000000..ebf65b471007 --- /dev/null +++ b/data/mods/sharingiscaring/items.ts @@ -0,0 +1,31 @@ +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { + airballoon: { + inherit: true, + // airborneness implemented in sim/pokemon.js:Pokemon#isGrounded + onDamagingHit(damage, target, source, move) { + this.add('-enditem', target, 'Air Balloon'); + if (target.item === 'airballoon') { + target.item = ''; + target.itemState = {id: '', target}; + } else { + delete target.volatiles['item:airballoon']; + target.m.sharedItemsUsed.push('airballoon'); + } + this.runEvent('AfterUseItem', target, null, null, this.dex.items.get('airballoon')); + }, + onAfterSubDamage(damage, target, source, effect) { + this.debug('effect: ' + effect.id); + if (effect.effectType === 'Move') { + this.add('-enditem', target, 'Air Balloon'); + if (target.item === 'airballoon') { + target.item = ''; + target.itemState = {id: '', target}; + } else { + delete target.volatiles['item:airballoon']; + target.m.sharedItemsUsed.push('airballoon'); + } + this.runEvent('AfterUseItem', target, null, null, this.dex.items.get('airballoon')); + } + }, + }, +}; diff --git a/data/mods/sharingiscaring/moves.ts b/data/mods/sharingiscaring/moves.ts new file mode 100644 index 000000000000..311112585582 --- /dev/null +++ b/data/mods/sharingiscaring/moves.ts @@ -0,0 +1,8 @@ +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { + poltergeist: { + inherit: true, + onTry(source, target) { + return !!target.item || Object.keys(target.volatiles).some(volatile => volatile.startsWith('item:')); + }, + }, +}; diff --git a/data/mods/sharingiscaring/scripts.ts b/data/mods/sharingiscaring/scripts.ts new file mode 100644 index 000000000000..5222a9bc84c2 --- /dev/null +++ b/data/mods/sharingiscaring/scripts.ts @@ -0,0 +1,144 @@ +import {RESTORATIVE_BERRIES} from '../../../sim/pokemon'; + +export const Scripts: ModdedBattleScriptsData = { + gen: 9, + inherit: 'gen9', + pokemon: { + isGrounded(negateImmunity) { + if ('gravity' in this.battle.field.pseudoWeather) return true; + if ('ingrain' in this.volatiles && this.battle.gen >= 4) return true; + if ('smackdown' in this.volatiles) return true; + const item = (this.ignoringItem() ? '' : this.item); + if (item === 'ironball' || (this.volatiles['item:ironball'] && !this.ignoringItem())) return true; + // If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded. + if (!negateImmunity && this.hasType('Flying') && !(this.hasType('???') && 'roost' in this.volatiles)) return false; + if (this.hasAbility('levitate') && !this.battle.suppressingAbility(this)) return null; + if ('magnetrise' in this.volatiles) return false; + if ('telekinesis' in this.volatiles) return false; + if (item === 'airballoon' || (this.volatiles['item:airballoon'] && !this.ignoringItem())) return false; + return true; + }, + hasItem(item) { + if (Array.isArray(item)) { + return item.some(i => this.hasItem(i)); + } else { + if (this.battle.toID(item) !== this.item && !this.volatiles['item:' + this.battle.toID(item)]) return false; + } + return !this.ignoringItem(); + }, + useItem(source, sourceEffect) { + const hasAnyItem = !!this.item || Object.keys(this.volatiles).some(v => v.startsWith('item:')); + // Best to declare everything early because ally might have a gem that needs proccing + if (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect; + if (!source && this.battle.event && this.battle.event.target) source = this.battle.event.target; + const item = (sourceEffect?.id.startsWith('item:')) ? sourceEffect as Item : this.getItem(); + if ((!this.hp && !item.isGem) || !this.isActive) return false; + if (!hasAnyItem) return false; + + if (this.battle.runEvent('UseItem', this, null, null, item)) { + switch (item.id.startsWith('item:') ? item.id.slice(5) : item.id) { + case 'redcard': + this.battle.add('-enditem', this, item.fullname, '[of] ' + source); + break; + default: + if (item.isGem) { + this.battle.add('-enditem', this, item.fullname, '[from] gem'); + } else { + this.battle.add('-enditem', this, item.fullname); + } + break; + } + if (item.boosts) { + this.battle.boost(item.boosts, this, source, item); + } + + this.battle.singleEvent('Use', item, this.itemState, this, source, sourceEffect); + + if (item.id.startsWith('item:')) { + delete this.volatiles[item.id]; + this.m.sharedItemsUsed.push(item.id.slice(5)); + } else { + this.lastItem = this.item; + this.item = ''; + this.itemState = {id: '', target: this}; + } + this.usedItemThisTurn = true; + this.battle.runEvent('AfterUseItem', this, null, null, item); + return true; + } + return false; + }, + eatItem(force, source, sourceEffect) { + const hasAnyItem = !!this.item || Object.keys(this.volatiles).some(v => v.startsWith('item:')); + if (!sourceEffect && this.battle.effect) sourceEffect = this.battle.effect; + if (!source && this.battle.event && this.battle.event.target) source = this.battle.event.target; + const item = (sourceEffect?.id.startsWith('item:')) ? sourceEffect as Item : this.getItem(); + if (!hasAnyItem) return false; + if ((!this.hp && this.battle.toID(item.name) !== 'jabocaberry' && this.battle.toID(item.name) !== 'rowapberry') || + !this.isActive) return false; + + if ( + this.battle.runEvent('UseItem', this, null, null, item) && + (force || this.battle.runEvent('TryEatItem', this, null, null, item)) + ) { + this.battle.add('-enditem', this, item.fullname, '[eat]'); + + this.battle.singleEvent('Eat', item, this.itemState, this, source, sourceEffect); + this.battle.runEvent('EatItem', this, null, null, item); + + if (RESTORATIVE_BERRIES.has(item.id.startsWith('item:') ? item.id.slice(5) as ID : item.id)) { + switch (this.pendingStaleness) { + case 'internal': + if (this.staleness !== 'external') this.staleness = 'internal'; + break; + case 'external': + this.staleness = 'external'; + break; + } + this.pendingStaleness = undefined; + } + + if (item.id.startsWith('item:')) { + delete this.volatiles[item.id]; + this.m.sharedItemsUsed.push(item.id.slice(5)); + } else { + this.lastItem = this.item; + this.item = ''; + this.itemState = {id: '', target: this}; + } + this.usedItemThisTurn = true; + this.ateBerry = true; + this.battle.runEvent('AfterUseItem', this, null, null, item); + return true; + } + return false; + }, + setItem(item, source, effect) { + if (!this.hp || !this.isActive) return false; + if (this.itemState.knockedOff) return false; + if (typeof item === 'string') item = this.battle.dex.items.get(item); + + const effectid = this.battle.effect ? this.battle.effect.id : ''; + if (RESTORATIVE_BERRIES.has('leppaberry' as ID)) { + const inflicted = ['trick', 'switcheroo'].includes(effectid); + const external = inflicted && source && !source.isAlly(this); + this.pendingStaleness = external ? 'external' : 'internal'; + } else { + this.pendingStaleness = undefined; + } + const oldItem = this.getItem(); + const oldItemState = this.itemState; + this.item = item.id; + this.itemState = {id: item.id, target: this}; + if (oldItem.exists) this.battle.singleEvent('End', oldItem, oldItemState, this); + if (item.id) { + this.battle.singleEvent('Start', item, this.itemState, this, source, effect); + for (const ally of this.side.pokemon) { + if (!ally.m.sharedItemsUsed) continue; + ally.m.sharedItemsUsed = ally.m.sharedItemsUsed.filter((i: ID) => i !== (item as Item).id); + } + } + return true; + }, + }, +}; diff --git a/data/mods/ssb/abilities.ts b/data/mods/ssb/abilities.ts deleted file mode 100644 index b75b709a0511..000000000000 --- a/data/mods/ssb/abilities.ts +++ /dev/null @@ -1,2241 +0,0 @@ -import {SSBSet, ssbSets} from "./random-teams"; -import {getName} from './conditions'; - -// Used in many abilities, placed here to reduce the number of updates needed and to reduce the chance of errors -const STRONG_WEATHERS = ['desolateland', 'primordialsea', 'deltastream', 'heavyhailstorm', 'winterhail', 'turbulence']; - -/** - * Assigns a new set to a Pokémon - * @param pokemon the Pokemon to assign the set to - * @param newSet the SSBSet to assign - */ -export function changeSet(context: Battle, pokemon: Pokemon, newSet: SSBSet, changeAbility = false) { - if (pokemon.transformed) return; - const evs: StatsTable = { - hp: newSet.evs?.hp || 0, - atk: newSet.evs?.atk || 0, - def: newSet.evs?.def || 0, - spa: newSet.evs?.spa || 0, - spd: newSet.evs?.spd || 0, - spe: newSet.evs?.spe || 0, - }; - const ivs: StatsTable = { - hp: newSet.ivs?.hp || 31, - atk: newSet.ivs?.atk || 31, - def: newSet.ivs?.def || 31, - spa: newSet.ivs?.spa || 31, - spd: newSet.ivs?.spd || 31, - spe: newSet.ivs?.spe || 31, - }; - pokemon.set.evs = evs; - pokemon.set.ivs = ivs; - if (newSet.nature) pokemon.set.nature = Array.isArray(newSet.nature) ? context.sample(newSet.nature) : newSet.nature; - const oldShiny = pokemon.set.shiny; - pokemon.set.shiny = (typeof newSet.shiny === 'number') ? context.randomChance(1, newSet.shiny) : !!newSet.shiny; - let percent = (pokemon.hp / pokemon.baseMaxhp); - if (newSet.species === 'Shedinja') percent = 1; - pokemon.formeChange(newSet.species, context.effect, true); - const details = pokemon.species.name + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + - (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); - if (oldShiny !== pokemon.set.shiny) context.add('replace', pokemon, details); - if (changeAbility) pokemon.setAbility(newSet.ability as string); - - pokemon.baseMaxhp = pokemon.species.name === 'Shedinja' ? 1 : Math.floor(Math.floor( - 2 * pokemon.species.baseStats.hp + pokemon.set.ivs.hp + Math.floor(pokemon.set.evs.hp / 4) + 100 - ) * pokemon.level / 100 + 10); - const newMaxHP = pokemon.baseMaxhp; - pokemon.hp = Math.round(newMaxHP * percent); - pokemon.maxhp = newMaxHP; - context.add('-heal', pokemon, pokemon.getHealth, '[silent]'); - if (pokemon.item) { - let item = newSet.item; - if (typeof item !== 'string') item = item[context.random(item.length)]; - if (context.toID(item) !== (pokemon.item || pokemon.lastItem)) pokemon.setItem(item); - } - if (!pokemon.m.datacorrupt) { - const newMoves = changeMoves(context, pokemon, newSet.moves.concat(newSet.signatureMove)); - pokemon.moveSlots = newMoves; - // @ts-ignore Necessary so pokemon doesn't get 8 moves - pokemon.baseMoveSlots = newMoves; - } - context.add('-ability', pokemon, `${pokemon.getAbility().name}`); - context.add('message', `${pokemon.name} changed form!`); -} - -/** - * Assigns new moves to a Pokemon - * @param pokemon The Pokemon whose moveset is to be modified - * @param newSet The set whose moves should be assigned - */ -export function changeMoves(context: Battle, pokemon: Pokemon, newMoves: (string | string[])[]) { - const carryOver = pokemon.moveSlots.slice().map(m => m.pp / m.maxpp); - // In case there are ever less than 4 moves - while (carryOver.length < 4) { - carryOver.push(1); - } - const result = []; - let slot = 0; - for (const newMove of newMoves) { - const moveName = Array.isArray(newMove) ? newMove[context.random(newMove.length)] : newMove; - const move = context.dex.moves.get(context.toID(moveName)); - if (!move.id) continue; - const moveSlot = { - move: move.name, - id: move.id, - // eslint-disable-next-line max-len - pp: ((move.noPPBoosts || move.isZ) ? Math.floor(move.pp * carryOver[slot]) : Math.floor((move.pp * (8 / 5)) * carryOver[slot])), - maxpp: ((move.noPPBoosts || move.isZ) ? move.pp : move.pp * 8 / 5), - target: move.target, - disabled: false, - disabledSource: '', - used: false, - }; - result.push(moveSlot); - slot++; - } - return result; -} - -export const Abilities: {[k: string]: ModdedAbilityData} = { - /* - // Example - "abilityid": { - desc: "", // long description - shortDesc: "", // short description, shows up in /dt - name: "Ability Name", - // The bulk of an ability is not easily shown in an example since it varies - // For more examples, see https://github.com/smogon/pokemon-showdown/blob/master/data/abilities.js - }, - */ - // Please keep abilites organized alphabetically based on staff member name! - // Aelita - scyphozoa: { - desc: "On switch-in, this Pokemon removes all field conditions, entry hazards, and stat boosts on both sides, gaining one random boost for every field condition, entry hazard, or boosted stat that gets cleared. This Pokemon's moves ignore abilities. If this Pokemon is a Zygarde in its 10% or 50% Forme, it changes to Complete Forme when it has 1/2 or less of its maximum HP at the end of the turn.", - shortDesc: "Power Construct + Mold Breaker. On switch-in, clears everything for random boosts.", - name: "Scyphozoa", - onSwitchIn(source) { - let successes = 0; - this.add('-ability', source, 'Scyphozoa'); - this.add('-clearallboost'); - for (const pokemon of this.getAllActive()) { - const boostTotal = Object.values(pokemon.boosts).reduce((num, add) => num + add); - if (boostTotal !== 0 || pokemon.positiveBoosts()) successes++; - pokemon.clearBoosts(); - if (pokemon.removeVolatile('substitute')) successes++; - } - const target = source.side.foe.active[0]; - - const removeAll = [ - 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'gmaxsteelsurge', - 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', - ]; - const silentRemove = ['reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist']; - for (const sideCondition of removeAll) { - if (target.side.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', target.side, this.dex.conditions.get(sideCondition).name, '[from] ability: Scyphozoa', '[of] ' + source); - } - successes++; - } - if (source.side.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] ability: Scyphozoa', '[of] ' + source); - } - successes++; - } - } - for (const clear in this.field.pseudoWeather) { - if (clear.endsWith('mod') || clear.endsWith('clause')) continue; - this.field.removePseudoWeather(clear); - successes++; - } - if (this.field.clearWeather()) successes++; - if (this.field.clearTerrain()) successes++; - const stats: BoostID[] = []; - const exclude: string[] = ['accuracy', 'evasion']; - for (let x = 0; x < successes; x++) { - let stat: BoostID; - for (stat in source.boosts) { - if (source.boosts[stat] < 6 && !exclude.includes(stat)) { - stats.push(stat); - } - } - if (stats.length) { - const randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - this.boost(boost, source, source); - } - } - }, - isPermanent: true, - onModifyMove(move) { - move.ignoreAbility = true; - }, - onResidualOrder: 27, - onResidual(pokemon) { - if (pokemon.baseSpecies.baseSpecies !== 'Zygarde' || pokemon.transformed || !pokemon.hp) return; - if (pokemon.species.id === 'zygardecomplete' || pokemon.hp > pokemon.maxhp / 2) return; - this.add('-activate', pokemon, 'ability: Scyphozoa'); - pokemon.formeChange('Zygarde-Complete', this.effect, true); - pokemon.baseMaxhp = Math.floor(Math.floor( - 2 * pokemon.species.baseStats['hp'] + pokemon.set.ivs['hp'] + Math.floor(pokemon.set.evs['hp'] / 4) + 100 - ) * pokemon.level / 100 + 10); - const newMaxHP = pokemon.volatiles['dynamax'] ? (2 * pokemon.baseMaxhp) : pokemon.baseMaxhp; - pokemon.hp = newMaxHP - (pokemon.maxhp - pokemon.hp); - pokemon.maxhp = newMaxHP; - this.add('-heal', pokemon, pokemon.getHealth, '[silent]'); - }, - gen: 8, - }, - - // aegii - setthestage: { - desc: "If this Pokemon is an Aegislash, it changes to Blade Forme before attempting to use an attacking move, and changes to Shield Forme before attempting to use King's Shield. This Pokemon's moves that match one of its types have a same-type attack bonus (STAB) of 2 instead of 1.5. On switch-in, this Pokemon selects a physical or special set.", - shortDesc: "Stance Change + Adaptability; on switch-in, selects physical or special set.", - isPermanent: true, - onSwitchIn(pokemon) { - if (pokemon.species.baseSpecies !== 'Aegislash') return; - const forme = this.randomChance(1, 2) ? 'aegii-Alt' : 'aegii'; - changeSet(this, pokemon, ssbSets[forme]); - const setType = pokemon.moves.includes('shadowball') ? 'specially' : 'physically'; - this.add('-message', `aegii currently has a ${setType} oriented set.`); - }, - onModifyMove(move, attacker, defender) { - move.stab = 2; - if (attacker.species.baseSpecies !== 'Aegislash' || attacker.transformed) return; - if (move.category === 'Status' && move.id !== 'kingsshield' && move.id !== 'reset') return; - const targetForme = (move.id === 'kingsshield' || move.id === 'reset' ? 'Aegislash' : 'Aegislash-Blade'); - if (attacker.species.name !== targetForme) attacker.formeChange(targetForme); - }, - name: "Set the Stage", - gen: 8, - }, - - // Aeonic - arsene: { - desc: "On switch-in, this Pokemon summons Sandstorm. If Sandstorm is active, this Pokemon's Speed is doubled. This Pokemon takes no damage from Sandstorm.", - shortDesc: "Sand Stream + Sand Rush.", - name: "Arsene", - onStart(source) { - this.field.setWeather('sandstorm'); - }, - onModifySpe(spe, pokemon) { - if (this.field.isWeather('sandstorm')) { - return this.chainModify(2); - } - }, - onImmunity(type) { - if (type === 'sandstorm') return false; - }, - gen: 8, - }, - - // Aethernum - rainyseason: { - desc: "On switch-in, this Pokemon summons Rain Dance. If Rain Dance or Heavy Rain is active, this Pokemon has doubled Speed, collects a raindrop, and restores 1/8 of its maximum HP, rounded down, at the end of each turn. If this Pokemon is holding Big Root, it will restore 1/6 of its maximum HP, rounded down, at the end of the turn. If this Pokemon is holding Utility Umbrella, its HP does not get restored and it does not collect raindrops. Each raindrop raises this Pokemon's Defense and Special Defense by 1 stage while it is collected.", - shortDesc: "Drizzle + Swift Swim. Restore HP if raining. Collect raindrops.", - name: "Rainy Season", - isPermanent: true, - onStart(source) { - for (const action of this.queue) { - if (action.choice === 'runPrimal' && action.pokemon === source && source.species.id === 'kyogre') return; - if (action.choice !== 'runSwitch' && action.choice !== 'runPrimal') break; - } - this.field.setWeather('raindance'); - }, - onWeather(target, source, effect) { - if (target.hasItem('utilityumbrella')) return; - if (['raindance', 'primordialsea'].includes(effect.id)) { - this.heal(target.baseMaxhp / (target.hasItem('bigroot') ? 6 : 8)); - target.addVolatile('raindrop'); - } - }, - onModifySpe(spe, pokemon) { - if (['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) { - return this.chainModify(2); - } - }, - gen: 8, - }, - - // Akir - fortifications: { - desc: "Pokemon making contact with this Pokemon lose 1/8 of their maximum HP, rounded down. At the end of every turn, this Pokemon Restores 1/16 of its max HP.", - shortDesc: "Foe loses 1/8 HP if makes contact; Restores 1/16 of its max HP every turn.", - onDamagingHitOrder: 1, - onDamagingHit(damage, target, source, move) { - if (this.checkMoveMakesContact(move, source, target, true)) { - this.damage(source.baseMaxhp / 8, source, target); - } - }, - onResidual(pokemon) { - this.heal(pokemon.baseMaxhp / 16); - }, - name: "Fortifications", - gen: 8, - }, - - // Alpha - iceage: { - desc: "The weather becomes an extremely heavy hailstorm that prevents damaging Steel-type moves from executing, causes Ice-type moves to be 50% stronger, causes all non-Ice-type Pokemon on the opposing side to take 1/8 damage from hail, and causes all moves to have a 10% chance to freeze. This weather bypasses Magic Guard and Overcoat. This weather remains in effect until the 3 turns are up, or the weather is changed by Delta Stream, Desolate Land, or Primordial Sea.", - shortDesc: "Weather: Steel fail. 1.5x Ice.", - onStart(source) { - this.field.setWeather('heavyhailstorm'); - }, - onAnySetWeather(target, source, weather) { - if (this.field.getWeather().id === 'heavyhailstorm' && !STRONG_WEATHERS.includes(weather.id)) return false; - }, - onEnd(pokemon) { - if (this.field.weatherState.source !== pokemon) return; - for (const target of this.getAllActive()) { - if (target === pokemon) continue; - if (target.hasAbility('iceage')) { - this.field.weatherState.source = target; - return; - } - } - this.field.clearWeather(); - }, - name: "Ice Age", - gen: 8, - }, - - // Annika - overprotective: { - desc: "If this Pokemon is the last unfainted team member, its Speed is raised by 1 stage.", - shortDesc: "+1 Speed on switch-in if all other team members have fainted.", - onSwitchIn(pokemon) { - if (pokemon.side.pokemonLeft === 1) this.boost({spe: 1}); - }, - name: "Overprotective", - gen: 8, - }, - - // A Quag To The Past - carefree: { - desc: "This Pokemon blocks certain status moves and instead uses the move against the original user. This Pokemon ignores other Pokemon's Attack, Special Attack, and accuracy stat stages when taking damage, and ignores other Pokemon's Defense, Special Defense, and evasiveness stat stages when dealing damage.", - shortDesc: "Magic Bounce + Unaware.", - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['spd'] = 0; - boosts['accuracy'] = 0; - } - }, - onTryHitPriority: 1, - onTryHit(target, source, move) { - if (target === source || move.hasBounced || !move.flags['reflectable']) { - return; - } - const newMove = this.dex.getActiveMove(move.id); - newMove.hasBounced = true; - newMove.pranksterBoosted = false; - this.add('-ability', target, 'Carefree'); - this.actions.useMove(newMove, target, source); - return null; - }, - onAllyTryHitSide(target, source, move) { - if (target.isAlly(source) || move.hasBounced || !move.flags['reflectable']) { - return; - } - const newMove = this.dex.getActiveMove(move.id); - newMove.hasBounced = true; - newMove.pranksterBoosted = false; - this.add('-ability', target, 'Carefree'); - this.actions.useMove(newMove, this.effectState.target, source); - return null; - }, - condition: { - duration: 1, - }, - name: "Carefree", - gen: 8, - }, - - // Arby - wavesurge: { - desc: "On switch-in, this Pokemon summons Wave Terrain for 5 turns. During the effect, the accuracy of Water-type moves is multiplied by 1.2, all current entry hazards are removed, and no entry hazards can be set.", - shortDesc: "On switch-in, 5 turns: no hazards; Water move acc 1.2x.", - onStart(source) { - this.field.setTerrain('waveterrain'); - }, - name: "Wave Surge", - gen: 8, - }, - - // Archas - indomitable: { - desc: "This Pokemon cures itself if it is confused or has a major status condition. Single use.", - onUpdate(pokemon) { - if ((pokemon.status || pokemon.volatiles['confusion']) && !this.effectState.indomitableActivated) { - this.add('-activate', pokemon, 'ability: Indomitable'); - pokemon.cureStatus(); - pokemon.removeVolatile('confusion'); - this.effectState.indomitableActivated = true; - } - }, - name: "Indomitable", - gen: 8, - }, - - // biggie - superarmor: { - desc: "Reduces damage taken from physical moves by 25% if the user has not yet attacked.", - onSourceModifyDamage(damage, source, target, move) { - if (this.queue.willMove(target) && move.category === 'Physical') { - return this.chainModify(0.75); - } - }, - name: "Super Armor", - gen: 8, - }, - - // Billo - proofpolicy: { - desc: "Pokemon making contact with this Pokemon have the effects of Yawn, Taunt, and Torment applied to them.", - shortDesc: "Upon contact, opposing Pokemon is made drowsy and applies Taunt + Torment.", - onDamagingHit(damage, target, source, move) { - if (this.checkMoveMakesContact(move, source, target, true)) { - source.addVolatile('taunt', target); - source.addVolatile('yawn', target); - source.addVolatile('torment', target); - } - }, - name: "Proof Policy", - gen: 8, - }, - - // Brandon - banesurge: { - desc: "On switch-in, this Pokemon summons Bane Terrain for 5 turns. For the duration of the effect, all Pokemon use their weaker offensive stat for all attacks. The move category used does not change.", - shortDesc: "On switch-in, 5 turns: all Pokemon use weaker offensive stat.", - onStart(source) { - this.field.setTerrain('baneterrain'); - }, - name: "Bane Surge", - gen: 8, - }, - - // brouha - turbulence: { - desc: "While this Pokemon is on the field, all entry hazards and terrains are removed at the end of each turn, non-Flying-type Pokemon lose 6% of their HP, rounded down, at the end of each turn.", - shortDesc: "End of each turn: clears terrain/hazards, non-Flying lose 6% HP.", - onStart(source) { - this.field.setWeather('turbulence'); - }, - onAnySetWeather(target, source, weather) { - if (this.field.getWeather().id === 'turbulence' && !STRONG_WEATHERS.includes(weather.id)) return false; - }, - onEnd(pokemon) { - if (this.field.weatherState.source !== pokemon) return; - for (const target of this.getAllActive()) { - if (target === pokemon) continue; - if (target.hasAbility('turbulence')) { - this.field.weatherState.source = target; - return; - } - } - this.field.clearWeather(); - }, - name: "Turbulence", - gen: 8, - }, - - // Buffy - speedcontrol: { - onStart(pokemon) { - this.boost({spe: 1}, pokemon); - }, - desc: "On switch-in, this Pokemon's Speed is raised by 1 stage.", - name: "Speed Control", - gen: 8, - }, - - // cant say - ragequit: { - desc: "If a Pokemon with this ability uses a move that misses or fails, the Pokemon faints and reduces the foe's Attack and Special Attack by 2 stages", - shortDesc: "If move misses or fails, use Memento.", - name: "Rage Quit", - onAfterMove(pokemon, target, move) { - if (pokemon.moveThisTurnResult === false) { - this.add('-ability', pokemon, 'Rage Quit'); - pokemon.faint(); - if (pokemon.side.foe.active[0]) { - this.boost({atk: -2, spa: -2}, pokemon.side.foe.active[0], pokemon, null, true); - } - } - }, - gen: 8, - }, - - // Celine - guardianarmor: { - desc: "On switch-in, this Pokemon's Defense and Special Defense are raised by 2 stages.", - name: "Guardian Armor", - onStart(pokemon) { - this.boost({def: 2, spd: 2}, pokemon); - }, - gen: 8, - }, - - // drampa's grandpa - oldmanpa: { - desc: "This Pokemon's sound-based moves have their power multiplied by 1.3. This Pokemon takes halved damage from sound-based moves. This Pokemon ignores other Pokemon's Attack, Special Attack, and accuracy stat stages when taking damage, and ignores other Pokemon's Defense, Special Defense, and evasiveness stat stages when dealing damage. Upon switching in, this Pokemon's Defense and Special Defense are raised by 1 stage.", - shortDesc: "Effects of Punk Rock + Unaware. On switch-in, boosts Def and Sp. Def by 1.", - name: "Old Manpa", - onBasePowerPriority: 7, - onBasePower(basePower, attacker, defender, move) { - if (move.flags['sound']) { - this.debug('Old Manpa boost'); - return this.chainModify([5325, 4096]); - } - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.flags['sound']) { - this.debug('Old Manpa weaken'); - return this.chainModify(0.5); - } - }, - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['spd'] = 0; - boosts['accuracy'] = 0; - } - }, - onStart(pokemon) { - this.boost({def: 1, spd: 1}); - }, - gen: 8, - }, - - // dream - greedpunisher: { - desc: "This Pokemon can only be damaged by direct attacks. On switch-in, this Pokemon's stats are boosted based on the number of hazards on the field. 1 random stat is raised if 1-2 hazards are up, and 2 random stats are raised if 3 or more hazards are up.", - shortDesc: "On switch-in, boosts stats based on the number of hazards on this Pokemon's side.", - name: "Greed Punisher", - onSwitchIn(pokemon) { - const side = pokemon.side; - const sideConditions = Object.keys(side.sideConditions); - const activeCount = sideConditions.length; - const stats: BoostID[] = []; - const exclude: string[] = ['accuracy', 'evasion']; - for (let x = 0; x < activeCount; x++) { - let stat: BoostID; - for (stat in pokemon.boosts) { - if (pokemon.boosts[stat] < 6 && !exclude.includes(stat)) { - stats.push(stat); - } - } - if (stats.length) { - const randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - this.boost(boost, pokemon, pokemon); - } - } - }, - onDamage(damage, target, source, effect) { - if (effect.id === 'heavyhailstorm') return; - if (effect.effectType !== 'Move') { - if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); - return false; - } - }, - gen: 8, - }, - - // Emeri - drakeskin: { - desc: "This Pokemon's Normal-type moves become Dragon-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Dragon type and have 1.2x power.", - name: "Drake Skin", - onModifyTypePriority: -1, - onModifyType(move, pokemon) { - const noModifyType = [ - 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball', - ]; - if (move.type === 'Normal' && !noModifyType.includes(move.id) && !(move.isZ && move.category !== 'Status')) { - move.type = 'Dragon'; - move.typeChangerBoosted = this.effect; - } - }, - onBasePowerPriority: 23, - onBasePower(basePower, pokemon, target, move) { - if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); - }, - gen: 8, - }, - - // EpicNikolai - dragonheart: { - desc: "Once per battle, when this Pokemon's HP is at or below 25% of its max HP, this Pokemon heals 50% of its max HP.", - shortDesc: "Once per battle, heals 50% when 25% or lower.", - name: "Dragon Heart", - onUpdate(pokemon) { - if (pokemon.hp > 0 && pokemon.hp < pokemon.maxhp / 4 && !this.effectState.dragonheart) { - this.effectState.dragonheart = true; - this.heal(pokemon.maxhp / 2); - } - }, - gen: 8, - }, - - // estarossa - sandsoftime: { - desc: "On switch-in, this Pokemon summons Sandstorm. If Sandstorm is active, this Pokemon's Ground-, Rock-, and Steel-type attacks have their power multiplied by 1.3. This Pokemon takes no damage from Sandstorm.", - shortDesc: "Sand Stream + Sand Force.", - name: "Sands of Time", - onStart(source) { - this.field.setWeather('sandstorm'); - }, - onImmunity(type, pokemon) { - if (type === 'sandstorm') return false; - }, - onBasePower(basePower, attacker, defender, move) { - if (this.field.isWeather('sandstorm')) { - if (move.type === 'Rock' || move.type === 'Ground' || move.type === 'Steel') { - this.debug('Sands of Time boost'); - return this.chainModify([5325, 4096]); - } - } - }, - gen: 8, - }, - - // fart - bipolar: { - desc: "If this Pokemon is a Kartana, then when it switches in, it changes to two random types and gets corresponding STAB attacks.", - shortDesc: "Kartana: User gains 2 random types and STAB moves on switch-in.", - name: "Bipolar", - isPermanent: true, - onSwitchIn(pokemon) { - if (pokemon.species.baseSpecies !== 'Kartana') return; - const typeMap: {[key: string]: string} = { - Normal: "Return", - Fighting: "Sacred Sword", - Flying: "Drill Peck", - Poison: "Poison Jab", - Ground: "Earthquake", - Rock: "Stone Edge", - Bug: "Lunge", - Ghost: "Shadow Bone", - Steel: "Iron Head", - Electric: "Zing Zap", - Psychic: "Psychic Fangs", - Ice: "Icicle Crash", - Dragon: "Dual Chop", - Dark: "Jaw Lock", - Fairy: "Play Rough", - }; - const types = Object.keys(typeMap); - this.prng.shuffle(types); - const newTypes = [types[0], types[1]]; - this.add('-start', pokemon, 'typechange', newTypes.join('/')); - pokemon.setType(newTypes); - let move = this.dex.moves.get(typeMap[newTypes[0]]); - pokemon.moveSlots[3] = pokemon.moveSlots[1]; - pokemon.moveSlots[1] = { - move: move.name, - id: move.id, - pp: move.pp, - maxpp: move.pp, - target: move.target, - disabled: false, - used: false, - virtual: true, - }; - move = this.dex.moves.get(typeMap[newTypes[1]]); - pokemon.moveSlots[2] = { - move: move.name, - id: move.id, - pp: move.pp, - maxpp: move.pp, - target: move.target, - disabled: false, - used: false, - virtual: true, - }; - }, - gen: 8, - }, - - // Finland - windingsong: { - desc: "If this Pokemon's species is Alcremie, it alternates one of its moves between two different options at the end of each turn, depending on the forme of Alcremie.", - shortDesc: "Alcremie: alternates between moves each turn.", - name: "Winding Song", - isPermanent: true, - onResidual(pokemon) { - if (pokemon.species.baseSpecies !== 'Alcremie') return; - let coolMoves = []; - if (pokemon.species.forme === 'Lemon-Cream') { - coolMoves = ['Reflect', 'Light Screen']; - } else if (pokemon.species.forme === 'Ruby-Swirl') { - coolMoves = ['Refresh', 'Destiny Bond']; - } else if (pokemon.species.forme === 'Mint-Cream') { - coolMoves = ['Light of Ruin', 'Sparkling Aria']; - } else { - coolMoves = ['Infestation', 'Whirlwind']; - } - let oldMove; - let move; - if (pokemon.moves.includes(this.toID(coolMoves[0]))) { - oldMove = this.toID(coolMoves[0]); - move = this.dex.moves.get(coolMoves[1]); - } else if (pokemon.moves.includes(this.toID(coolMoves[1]))) { - oldMove = this.toID(coolMoves[1]); - move = this.dex.moves.get(coolMoves[0]); - } else { - return; - } - if (!oldMove || !move) return; - const sketchIndex = pokemon.moves.indexOf(oldMove); - if (sketchIndex < 0) return false; - const sketchedMove = { - move: move.name, - id: move.id, - pp: (move.pp * 8 / 5), - maxpp: (move.pp * 8 / 5), - target: move.target, - disabled: false, - used: false, - }; - pokemon.moveSlots[sketchIndex] = sketchedMove; - pokemon.baseMoveSlots[sketchIndex] = sketchedMove; - this.add('-message', `Finland changed its move ${this.dex.moves.get(oldMove).name} to ${move.name}!`); - }, - gen: 8, - }, - - // frostyicelad - iceshield: { - desc: "This Pokemon can only be damaged by direct attacks. This Pokemon cannot lose its held item due to another Pokemon's attack.", - shortDesc: "Can only be damaged by direct attacks. Cannot lose its held item.", - name: "Ice Shield", - onDamage(damage, target, source, effect) { - if (effect.effectType !== 'Move') { - if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); - return false; - } - }, - onTakeItem(item, pokemon, source) { - if (this.suppressingAbility(pokemon) || !pokemon.hp || pokemon.item === 'stickybarb') return; - if (!this.activeMove) throw new Error("Battle.activeMove is null"); - if ((source && source !== pokemon) || this.activeMove.id === 'knockoff') { - this.add('-activate', pokemon, 'ability: Ice Shield'); - return false; - } - }, - gen: 8, - }, - - // gallant's pear - armortime: { - name: "Armor Time", - desc: "If this Pokemon uses a status move or King Giri Giri Slash, it changes its typing and boosts one of its stats by 1 stage randomly between four options: Bug/Fire type with a Special Attack boost, Bug/Steel type with a Defense boost, Bug/Rock type with a Special Defense boost, and Bug/Electric type with a Speed boost.", - shortDesc: "On use of status or King Giri Giri Slash, the user changes type and gets a boost.", - isPermanent: true, - onBeforeMove(source, target, move) { - if (move.category !== "Status" && move.id !== "kinggirigirislash") return; - const types = ['Fire', 'Steel', 'Rock', 'Electric']; - const type = ['Bug', this.sample(types)]; - if (!source.setType(type)) return; - this.add('-start', source, 'typechange', type.join('/'), '[from] ability: Armor Time'); - switch (type[1]) { - case 'Fire': - this.add('-message', 'Armor Time: Fire Armor!'); - this.boost({spa: 1}, source); - break; - case 'Steel': - this.add('-message', 'Armor Time: Steel Armor!'); - this.boost({def: 1}, source); - break; - case 'Rock': - this.add('-message', 'Armor Time: Rock Armor!'); - this.boost({spd: 1}, source); - break; - case 'Electric': - this.add('-message', 'Armor Time: Electric Armor!'); - this.boost({spe: 1}, source); - break; - } - }, - gen: 8, - }, - - // Gimmick - ic3peak: { - desc: "This Pokemon's Normal-type moves become Ice-type moves and have their power multiplied by 1.2. This Pokemon's moves, if they are not affected by Refrigerate, have their Base Power multiplied by the number of consecutive turns the move is used by this Pokemon.", - shortDesc: "Refrigerate; Echoed Voice modifier on non-Refrigerate moves.", - name: "IC3PEAK", - onModifyTypePriority: -1, - onModifyType(move, pokemon) { - const noModifyType = [ - 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball', - ]; - if (move.type === 'Normal' && !noModifyType.includes(move.id) && !(move.isZ && move.category !== 'Status')) { - move.type = 'Ice'; - move.typeChangerBoosted = this.effect; - } - }, - onBasePowerPriority: 23, - onBasePower(basePower, pokemon, target, move) { - if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); - }, - onModifyMovePriority: -2, - onModifyMove(move, attacker) { - if (move.typeChangerBoosted === this.effect) return; - move.onTry = function () { - this.field.addPseudoWeather('echoedvoiceclone'); - this.field.pseudoWeather.echoedvoiceclone.lastmove = move.name; - }; - // eslint-disable-next-line @typescript-eslint/no-shadow - move.basePowerCallback = function (pokemon, target, move) { - if (this.field.pseudoWeather.echoedvoiceclone) { - if (this.field.pseudoWeather.echoedvoiceclone.lastmove === move.name) { - return move.basePower * this.field.pseudoWeather.echoedvoiceclone.multiplier; - } else { - this.field.removePseudoWeather('echoedvoiceclone'); - } - } - return move.basePower; - }; - }, - gen: 8, - }, - - // GMars - capsulearmor: { - desc: "While in Minior-Meteor forme, this Pokemon cannot be affected by major status conditions and is immune to critical hits. This ability cannot be ignored by Moongeist Beam, Sunsteel Strike, Mold Breaker, Teravolt, or Turboblaze.", - shortDesc: "Minior-Meteor: Immune to crits and status", - name: "Capsule Armor", - isPermanent: true, - isBreakable: false, - onCriticalHit: false, - onSetStatus(status, target, source, effect) { - if (target.species.id !== 'miniormeteor' || target.transformed) return; - if ((effect as Move)?.status) { - this.add('-immune', target, '[from] ability: Capsule Armor'); - } - return false; - }, - onTryAddVolatile(status, target) { - if (target.species.id !== 'miniormeteor' || target.transformed) return; - if (status.id !== 'yawn') return; - this.add('-immune', target, '[from] ability: Capsule Armor'); - return null; - }, - }, - - // grimAuxiliatrix - aluminumalloy: { - desc: "This Pokemon restores 1/3 of its maximum HP, rounded down, when it switches out, and other Pokemon cannot lower this Pokemon's stat stages. -1 Speed, +1 Def/Sp.Def when hit with a Water-type attacking move, switching into rain or starting rain while this Pokemon is on the field.", - shortDesc: "Regenerator+Clear Body.+1 def/spd,-1 spe in rain/hit by water", - name: "Aluminum Alloy", - onSwitchIn(pokemon) { - if (['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) { - this.boost({def: 1, spd: 1, spe: -1}, pokemon, pokemon); - this.add('-message', `${pokemon.name} is rusting...`); - } - }, - onDamagingHit(damage, target, source, move) { - if (move.type === 'Water') { - this.boost({def: 1, spd: 1, spe: -1}, target, target); - this.add('-message', `${target.name} is rusting...`); - } - }, - onWeatherChange() { - const pokemon = this.effectState.target; - if (this.field.isWeather(['raindance', 'primordialsea'])) { - this.boost({def: 1, spd: 1, spe: -1}, pokemon, pokemon); - this.add('-message', `${pokemon.name} is rusting...`); - } - }, - onSwitchOut(pokemon) { - pokemon.heal(pokemon.baseMaxhp / 3); - }, - onTryBoost(boost, target, source, effect) { - if (source && target === source) return; - let showMsg = false; - let i: BoostID; - for (i in boost) { - if (boost[i]! < 0) { - delete boost[i]; - showMsg = true; - } - } - if (showMsg && !(effect as ActiveMove).secondaries && effect.id !== 'octolock') { - this.add("-fail", target, "unboost", "[from] ability: Aluminum Alloy", "[of] " + target); - } - }, - gen: 8, - }, - - // HoeenHero - tropicalcyclone: { - desc: "On switch-in, this Pokemon summons Rain Dance. If Rain Dance or Heavy Rain is active, this Pokemon's Speed is doubled.", - shortDesc: "Summons Rain. 2x Speed while rain is active.", - name: "Tropical Cyclone", - onStart(source) { - this.field.setWeather('raindance'); - }, - onModifySpe(spe, pokemon) { - if (['raindance', 'primordialsea'].includes(pokemon.effectiveWeather())) { - return this.chainModify(2); - } - }, - gen: 8, - }, - - // Hydro - hydrostatic: { - desc: "This Pokemon is immune to Water- and Electric-type moves and raises its Special Attack by 1 stage when hit by a Water- or Electric-type move. If this Pokemon is not the target of a single-target Water- or Electric-type move used by another Pokemon, this Pokemon redirects that move to itself if it is within the range of that move. This Pokemon's Water- and Electric-type moves have their accuracy multiplied by 1.3.", - shortDesc: "Storm Drain + Lightning Rod. This Pokemon's Water/Electric moves have 1.3x acc.", - onSourceModifyAccuracyPriority: 9, - onSourceModifyAccuracy(accuracy, source, target, move) { - if (typeof accuracy !== 'number') return; - if (!['Water', 'Electric'].includes(move.type)) return; - this.debug('hydrostatic - enhancing accuracy'); - return accuracy * 1.3; - }, - onTryHit(target, source, move) { - if (target !== source && ['Water', 'Electric'].includes(move.type)) { - if (!this.boost({spa: 1})) { - this.add('-immune', target, '[from] ability: Hydrostatic'); - } - return null; - } - }, - onAnyRedirectTarget(target, source, source2, move) { - if (!['Water', 'Electric'].includes(move.type) || move.flags['pledgecombo']) return; - const redirectTarget = ['randomNormal', 'adjacentFoe'].includes(move.target) ? 'normal' : move.target; - if (this.validTarget(this.effectState.target, source, redirectTarget)) { - if (move.smartTarget) move.smartTarget = false; - if (this.effectState.target !== target) { - this.add('-activate', this.effectState.target, 'ability: Hydrostatic'); - } - return this.effectState.target; - } - }, - name: "Hydrostatic", - gen: 8, - }, - - // Inactive - dragonsfury: { - desc: "If this Pokemon has a non-volatile status condition, its Defense is multiplied by 1.5x and its HP is restored by 25% of damage it deals.", - shortDesc: "If this Pokemon is statused, its Def is 1.5x and it heals for 25% of dmg dealt.", - onModifyDefPriority: 6, - onModifyDef(def, pokemon) { - if (pokemon.status) { - return this.chainModify(1.5); - } - }, - onModifyMove(move, attacker) { - if (attacker.status) move.drain = [1, 4]; - }, - name: "Dragon's Fury", - gen: 8, - }, - - // Iyarito - pollodiablo: { - desc: "This Pokemon's Special Attack is 1.5x, but it can only select the first move it executes.", - shortDesc: "This Pokemon's Sp. Atk is 1.5x, but it can only select the first move it executes.", - name: "Pollo Diablo", - onStart(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - onBeforeMove(pokemon, target, move) { - if (move.isZOrMaxPowered || move.id === 'struggle') return; - if (pokemon.abilityState.choiceLock && pokemon.abilityState.choiceLock !== move.id) { - this.addMove('move', pokemon, move.name); - this.attrLastMove('[still]'); - this.debug("Disabled by Pollo Diablo"); - this.add('-fail', pokemon); - return false; - } - }, - onModifyMove(move, pokemon) { - if (pokemon.abilityState.choiceLock || move.isZOrMaxPowered || move.id === 'struggle') return; - pokemon.abilityState.choiceLock = move.id; - }, - onModifySpAPriority: 1, - onModifySpA(spa, pokemon) { - if (pokemon.volatiles['dynamax']) return; - this.debug('Pollo Diablo Spa Boost'); - return this.chainModify(1.5); - }, - onDisableMove(pokemon) { - if (!pokemon.abilityState.choiceLock) return; - if (pokemon.volatiles['dynamax']) return; - for (const moveSlot of pokemon.moveSlots) { - if (moveSlot.id !== pokemon.abilityState.choiceLock) { - pokemon.disableMove(moveSlot.id, false, this.effectState.sourceEffect); - } - } - }, - onEnd(pokemon) { - pokemon.abilityState.choiceLock = ""; - }, - gen: 8, - }, - - // Jett - deceiver: { - desc: "This Pokemon's moves that match one of its types have a same-type attack bonus of 2 instead of 1.5. If this Pokemon is at full HP, it survives one hit with at least 1 HP.", - shortDesc: "Adaptability + Sturdy.", - onModifyMove(move) { - move.stab = 2; - }, - onTryHit(pokemon, target, move) { - if (move.ohko) { - this.add('-immune', pokemon, '[from] ability: Deceiver'); - return null; - } - }, - onDamagePriority: -100, - onDamage(damage, target, source, effect) { - if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') { - this.add('-ability', target, 'Deceiver'); - return target.hp - 1; - } - }, - name: "Deceiver", - gen: 8, - }, - - // Jho - venomize: { - desc: "This Pokemon's Normal-type moves become Poison-type moves and have their power multiplied by 1.2. This effect comes after other effects that change a move's type, but before Ion Deluge and Electrify's effects.", - shortDesc: "This Pokemon's Normal-type moves become Poison type and have 1.2x power.", - onModifyTypePriority: -1, - onModifyType(move, pokemon) { - const noModifyType = [ - 'judgment', 'multiattack', 'naturalgift', 'revelationdance', 'technoblast', 'terrainpulse', 'weatherball', - ]; - if (move.type === 'Normal' && !noModifyType.includes(move.id) && !(move.isZ && move.category !== 'Status')) { - move.type = 'Poison'; - move.typeChangerBoosted = this.effect; - } - }, - onBasePowerPriority: 23, - onBasePower(basePower, pokemon, target, move) { - if (move.typeChangerBoosted === this.effect) return this.chainModify([4915, 4096]); - }, - name: "Venomize", - gen: 8, - }, - - // Jordy - divinesandstorm: { - desc: "On switch-in, this Pokemon summons Sandstorm. This Pokemon does not take recoil damage besides Struggle/Life Orb/crash damage.", - shortDesc: "Sand Stream + Rock Head.", - name: "Divine Sandstorm", - onDamage(damage, target, source, effect) { - if (effect.id === 'recoil') { - if (!this.activeMove) return; - if (this.activeMove.id !== 'struggle') return null; - } - }, - onStart(pokemon) { - this.field.setWeather('sandstorm'); - }, - gen: 8, - }, - - // Kaiju Bunny - secondwind: { - desc: "Once per battle, when this Pokemon's HP is at or below 25% of its max HP, this Pokemon heals 50% of its max HP.", - shortDesc: "Once per battle, heals 50% when 25% or lower.", - name: "Second Wind", - onUpdate(pokemon) { - if (pokemon.hp > 0 && pokemon.hp < pokemon.maxhp / 4 && !this.effectState.dragonheart) { - this.effectState.dragonheart = true; - this.heal(pokemon.maxhp / 2); - } - }, - gen: 8, - }, - - // Kennedy - falsenine: { - desc: "This Pokemon's type changes to match the type of the move it is about to use. This effect comes after all effects that change a move's type. This Pokemon's critical hit ratio is raised by 1 stage.", - shortDesc: "Protean + Super Luck.", - onPrepareHit(source, target, move) { - if (move.hasBounced) return; - const type = move.type; - if (type && type !== '???' && source.getTypes().join() !== type) { - if (!source.setType(type)) return; - this.add('-start', source, 'typechange', type, '[from] ability: False Nine'); - } - }, - onModifyCritRatio(critRatio) { - return critRatio + 1; - }, - name: "False Nine", - gen: 8, - }, - - // Kev - kingofatlantis: { - desc: "On switch-in, this Pokemon summons Rain Dance for 5 turns, plus 1 additional turn for each Water-type teammate. This Pokemon also has the effects of Dry Skin.", - shortDesc: "Drizzle + Dry Skin; +1 turn of rain for each Water-type teammate.", - onStart(source) { - this.field.setWeather('raindance', source); - // See conditions.ts for weather modifications. - }, - onTryHit(target, source, move) { - if (target !== source && move.type === 'Water') { - if (!this.heal(target.baseMaxhp / 4)) { - this.add('-immune', target, '[from] ability: King of Atlantis'); - } - return null; - } - }, - onFoeBasePowerPriority: 17, - onFoeBasePower(basePower, attacker, defender, move) { - if (this.effectState.target !== defender) return; - if (move.type === 'Fire') { - return this.chainModify(1.25); - } - }, - onWeather(target, source, effect) { - if (target.hasItem('utilityumbrella')) return; - if (effect.id === 'raindance' || effect.id === 'primordialsea') { - this.heal(target.baseMaxhp / 8); - } else if (effect.id === 'sunnyday' || effect.id === 'desolateland') { - this.damage(target.baseMaxhp / 8, target, target); - } - }, - name: "King of Atlantis", - gen: 8, - }, - - // KingSwordYT - bambookingdom: { - desc: "On switch-in, this Pokemon's Defense and Special Defense are raised by 1 stage. Attacking moves used by this Pokemon have their priority set to -7.", - shortDesc: "+1 Def/SpD. -7 priority on attacks.", - name: "Bamboo Kingdom", - onStart(pokemon) { - this.boost({def: 1, spd: 1}, pokemon); - }, - onModifyPriority(priority, pokemon, target, move) { - if (move?.category !== 'Status') return -7; - }, - gen: 8, - }, - - // Kipkluif - degenerator: { - desc: "While this Pokemon is active, foes that switch out lose 1/3 of their maximum HP, rounded down. This damage will never cause a Pokemon to faint, and will instead leave them at 1 HP.", - shortDesc: "While this Pokemon is active, foes that switch out lose 1/3 of their maximum HP.", - onStart(pokemon) { - pokemon.side.foe.addSideCondition('degeneratormod', pokemon); - const data = pokemon.side.foe.getSideConditionData('degeneratormod'); - if (!data.sources) { - data.sources = []; - } - data.sources.push(pokemon); - }, - onEnd(pokemon) { - pokemon.side.foe.removeSideCondition('degeneratormod'); - }, - name: "Degenerator", - gen: 8, - }, - - // Lionyx - tension: { - desc: "On switch-in, the Pokemon builds up tension, making the next attack always hit and always be a critical hit.", - shortDesc: "On switch-in, the Pokemon's next attack will always be a critical hit and will always hit.", - name: "Tension", - onStart(pokemon) { - this.add('-ability', pokemon, 'Tension'); - pokemon.addVolatile('tension'); - }, - condition: { - onStart(pokemon, source, effect) { - if (effect && (['imposter', 'psychup', 'transform'].includes(effect.id))) { - this.add('-start', pokemon, 'move: Tension', '[silent]'); - } else { - this.add('-start', pokemon, 'move: Tension'); - } - this.add("-message", `${pokemon.name} has built up tension!`); - }, - onModifyCritRatio(critRatio) { - return 5; - }, - onAnyInvulnerability(target, source, move) { - if (move && (source === this.effectState.target || target === this.effectState.target)) return 0; - }, - onSourceAccuracy(accuracy) { - return true; - }, - onAfterMove(pokemon, source) { - pokemon.removeVolatile('tension'); - }, - onEnd(pokemon) { - this.add('-end', pokemon, 'move: Tension', '[silent]'); - }, - }, - gen: 8, - }, - - // LittEleven - darkroyalty: { - desc: "While this Pokemon is active, priority moves from opposing Pokemon targeted at allies are prevented from having an effect. Dark-type attacks used by this Pokemon have their power multiplied by 1.2.", - shortDesc: "Immune to priority. Dark-type attacks have 1.2x power.", - onFoeTryMove(target, source, move) { - const targetAllExceptions = ['perishsong', 'flowershield', 'rototiller']; - if (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) { - return; - } - - const dazzlingHolder = this.effectState.target; - if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) { - this.attrLastMove('[still]'); - this.add('-ability', dazzlingHolder, 'Dark Royalty'); - this.add('cant', target, move, '[of] ' + dazzlingHolder); - return false; - } - }, - onAllyBasePower(basePower, attacker, defender, move) { - if (move.type === 'Dark') { - this.debug('Dark Royalty boost'); - return this.chainModify(1.2); - } - }, - name: "Dark Royalty", - }, - - // Lunala - magichat: { - desc: "This Pokemon can only be damaged by direct attacks. This Pokemon blocks certain status moves and instead uses the move against the original user.", - shortDesc: "Magic Guard + Magic Bounce.", - onDamage(damage, target, source, effect) { - if (effect.id === 'heavyhailstorm') return; - if (effect.effectType !== 'Move') { - if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); - return false; - } - }, - onTryHitPriority: 1, - onTryHit(target, source, move) { - if (target === source || move.hasBounced || !move.flags['reflectable']) { - return; - } - const newMove = this.dex.getActiveMove(move.id); - newMove.hasBounced = true; - newMove.pranksterBoosted = false; - this.add('-ability', target, 'Magic Hat'); - this.actions.useMove(newMove, target, source); - return null; - }, - onAllyTryHitSide(target, source, move) { - if (target.isAlly(source) || move.hasBounced || !move.flags['reflectable']) { - return; - } - const newMove = this.dex.getActiveMove(move.id); - newMove.hasBounced = true; - newMove.pranksterBoosted = false; - this.add('-ability', target, 'Magic Hat'); - this.actions.useMove(newMove, this.effectState.target, source); - return null; - }, - condition: { - duration: 1, - }, - name: "Magic Hat", - gen: 8, - }, - - // Mad Monty ¾° - petrichor: { - desc: "On switch-in, this Pokemon summons Rain Dance. If Rain Dance or Heavy Rain is active, this Pokemon's Electric-type moves have 1.2x power.", - shortDesc: "Summons rain. Electric-type moves have 1.2x power in rain.", - name: "Petrichor", - onStart(source) { - this.field.setWeather('raindance'); - }, - onBasePowerPriority: 23, - onBasePower(basePower, pokemon, target, move) { - if (move.type === 'Electric' && this.field.getWeather().id === 'raindance') { - return this.chainModify([4915, 4096]); - } - }, - }, - - // Marshmallon - stubbornness: { - desc: "this Pokemon does not take recoil damage. The first time an opposing Pokemon boosts a stat each time this Pokemon is active, this Pokemon's Attack, Defense, and Special Defense are raised by 1 stage; each time the opponent boosts after this, this Pokemon's Attack is boosted by 1 stage. Activation of opposing Stubbornness will not activate Stubbornness.", - shortDesc: "Rock Head + when foe first boosts, Atk/Def/SpD+1. Further foe boosts=+1 Atk.", - name: "Stubbornness", - onDamage(damage, target, source, effect) { - if (effect.id === 'recoil') { - if (!this.activeMove) throw new Error("Battle.activeMove is null"); - if (this.activeMove.id !== 'struggle') return null; - } - }, - onSwitchOut(pokemon) { - if (this.effectState.happened) delete this.effectState.happened; - }, - onFoeAfterBoost(boost, target, source, effect) { - const pokemon = target.side.foe.active[0]; - let success = false; - let i: BoostID; - for (i in boost) { - if (boost[i]! > 0) { - success = true; - } - } - // Infinite Loop preventer - if (effect?.name === 'Stubbornness') return; - if (success) { - if (!this.effectState.happened) { - this.boost({atk: 1, def: 1, spd: 1}, pokemon); - this.effectState.happened = true; - } else { - this.boost({atk: 1}, pokemon); - } - } - }, - gen: 8, - }, - - // Mitsuki - photosynthesis: { - desc: "On switch-in, this Pokemon summons Sunny Day. If Sunny Day is active and this Pokemon is not holding Utility Umbrella, this Pokemon's Speed is doubled.", - shortDesc: "Drought + Chlorophyll", - name: "Photosynthesis", - onStart(source) { - for (const action of this.queue) { - if (action.choice === 'runPrimal' && action.pokemon === source && source.species.id === 'groudon') return; - if (action.choice !== 'runSwitch' && action.choice !== 'runPrimal') break; - } - this.field.setWeather('sunnyday'); - }, - onModifySpe(spe, pokemon) { - if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) { - return this.chainModify(2); - } - }, - gen: 8, - }, - - // n10siT - greedymagician: { - desc: "This Pokemon steals the item off a Pokemon it hits with an attack. If this Pokemon already has an item, it is replaced with the stolen item. This ability does not affect Doom Desire and Future Sight.", - shortDesc: "Steals item from foe on attack; replace current item with stolen item.", - name: "Greedy Magician", - onSourceHit(target, source, move) { - if (!move || !target) return; - if (target !== source && move.category !== 'Status') { - const yourItem = target.takeItem(source); - if (!yourItem) return; - if (!source.setItem(yourItem)) { - target.item = yourItem.id; - return; - } - this.add('-item', source, yourItem, '[from] ability: Greedy Magician', '[of] ' + source); - } - }, - gen: 8, - }, - - // Nol - burningsoul: { - desc: "On switch-in, this Pokemon summons Sunny Day. If this Pokemon is at full HP, it survives one hit with at least 1 HP. OHKO moves fail when used against this Pokemon.", - shortDesc: "Drought + Sturdy.", - onStart(source) { - this.field.setWeather('sunnyday'); - }, - onTryHit(pokemon, target, move) { - if (move.ohko) { - this.add('-immune', pokemon, '[from] ability: Burning Soul'); - return null; - } - }, - onDamagePriority: -100, - onDamage(damage, target, source, effect) { - if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') { - this.add('-ability', target, 'Burning Soul'); - return target.hp - 1; - } - }, - name: "Burning Soul", - gen: 8, - }, - - // Notater517 - lastminutelag: { - desc: "This Pokemon applies the Recharge status to the opposing Pokemon if this Pokemon needs to recharge. If this Pokemon KOs an opposing Pokemon with a recharge move, then the user does not need to recharge.", - shortDesc: "Gives Recharge to the target if this Pokemon has it. KO: No recharge.", - onModifyMove(move, pokemon, target) { - if (move.self?.volatileStatus === 'mustrecharge') { - if (!move.volatileStatus) { - move.volatileStatus = 'mustrecharge'; - } else { - if (!move.secondaries) move.secondaries = []; - move.secondaries.push({chance: 100, volatileStatus: 'mustrecharge'}); - } - } - }, - onAfterMoveSecondarySelf(pokemon, target, move) { - if (!target || target.fainted || target.hp <= 0) { - if (pokemon.volatiles['mustrecharge']) { - this.add('-ability', pokemon, 'Last Minute Lag'); - this.add('-end', pokemon, 'mustrecharge'); - delete pokemon.volatiles['mustrecharge']; - this.hint('It may look like this Pokemon is going to recharge next turn, but it will not recharge.'); - } - } - }, - name: "Last-Minute Lag", - gen: 8, - }, - - // nui - conditionoverride: { - desc: "This Pokemon can attract opponents regardless of gender. Pokemon that are attracted have their Special Defense stat reduced by 25%.", - shortDesc: "Attracts anyone. Attracted Pokemon have SpD reduced by 25%.", - // See conditions.ts for implementation - name: "Condition Override", - gen: 8, - }, - - // pants - ghostspores: { - desc: "This Pokemon ignores the foe's stat boosts. On switch-out, this Pokemon regenerates 1/3 HP, rounded down. If this Pokemon is hit by an attack, Leech Seed is applied to the foe. If this Pokemon is KOed, Curse is applied to the foe.", - shortDesc: "Unaware + Regenerator. If hit, foe is Leech Seeded. If KOed, foe is Cursed.", - name: 'Ghost Spores', - onDamagingHit(damage, target, source, move) { - if (!target.hp) { - source.addVolatile('curse', target); - } else { - source.addVolatile('leechseed', target); - } - }, - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['accuracy'] = 0; - } - }, - onSwitchOut(pokemon) { - pokemon.heal(pokemon.baseMaxhp / 3); - }, - }, - - // PartMan - hecatomb: { - desc: "This Pokemon's Speed is raised by 1 stage if it attacks and knocks out another Pokemon. If the Pokemon is Chandelure and is not shiny, it changes its set.", - shortDesc: "Spe +1 on KOing foe. Chandelure: changes sets.", - name: 'Hecatomb', - onSourceAfterFaint(length, target, source, effect) { - if (effect && effect.effectType === 'Move') { - this.boost({spe: length}, source); - if (source.species.baseSpecies !== 'Chandelure') return; - if (source.set.shiny) return; - source.m.nowShiny = true; - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|THE LIGHT! IT BURNS!`); - changeSet(this, source, ssbSets['PartMan-Shiny']); - } - }, - gen: 8, - }, - - // peapod - stealthblack: { - desc: "No competitive use.", - name: 'Stealth Black', - gen: 8, - }, - - // Perish Song - soupsipper: { - desc: "This Pokemon is immune to Grass- and Water-type moves, restores 1/4 of its maximum HP, rounded down, when hit by these types, and boosts its Attack by 1 stage when hit by these types.", - shortDesc: "Immune to Water and Grass moves, heals 1/4 HP and gains +1 Atk when hit by them.", - onTryHit(target, source, move) { - if (target !== source && ['Water', 'Grass'].includes(move.type)) { - let success = false; - if (this.heal(target.baseMaxhp / 4)) success = true; - if (this.boost({atk: 1})) success = true; - if (!success) { - this.add('-immune', target, '[from] ability: Soup Sipper'); - } - return null; - } - }, - name: "Soup Sipper", - gen: 8, - }, - - // phiwings99 - plausibledeniability: { - desc: "This Pokemon's Status moves have priority raised by 1, but Dark-types are immune. Additionally, This Pokemon ignores other Pokemon's Attack, Special Attack, and accuracy stat stages when taking damage, and ignores other Pokemon's Defense, Special Defense, and evasiveness stat stages when dealing damage.", - shortDesc: "Unaware + Prankster. Dark-types still immune to Prankster moves.", - name: "Plausible Deniability", - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['spd'] = 0; - boosts['accuracy'] = 0; - } - }, - onModifyPriority(priority, pokemon, target, move) { - if (move?.category === 'Status') { - move.pranksterBoosted = true; - return priority + 1; - } - }, - gen: 8, - }, - - // piloswine gripado - foreverwinternights: { - desc: "On switch-in, this Pokemon summons Winter Hail. Winter Hail is hail that also lowers the Speed of non-Ice-type Pokemon by 50%. This weather remains in effect until this Ability is no longer active for any Pokemon, or the weather is changed by Delta Stream, Desolate Land, or Primordial Sea.", - shortDesc: "Sets permahail until this Pokemon switches out. Non-Ice: 1/2 Speed", - onStart(source) { - this.field.setWeather('winterhail'); - }, - onAnySetWeather(target, source, weather) { - if (this.field.getWeather().id === 'winterhail' && !STRONG_WEATHERS.includes(weather.id)) return false; - }, - onEnd(pokemon) { - if (this.field.weatherState.source !== pokemon) return; - for (const target of this.getAllActive()) { - if (target === pokemon) continue; - if (target.hasAbility('winterhail')) { - this.field.weatherState.source = target; - return; - } - } - this.field.clearWeather(); - }, - name: "Forever Winter Nights", - gen: 8, - }, - - // PiraTe Princess - wildmagicsurge: { - desc: "Randomly changes this Pokemon's type at the end of every turn to the type of one of its moves; same-type attack bonus (STAB) is 2 instead of 1.5.", - shortDesc: "Adaptability + Randomly changes to the type of one of its moves every turn.", - name: "Wild Magic Surge", - onModifyMove(move) { - move.stab = 2; - }, - onResidual(pokemon) { - if (!pokemon.hp) return; - const types = pokemon.moveSlots.map(slot => this.dex.moves.get(slot.id).type); - const type = types.length ? this.sample(types) : '???'; - if (this.dex.types.isName(type) && pokemon.setType(type)) { - this.add('-ability', pokemon, 'Wild Magic Surge'); - this.add('-start', pokemon, 'typechange', type); - } - }, - gen: 8, - }, - - // Psynergy - supernova: { - desc: "On switch-in, if total positive boosts - total negative boosts ≥ 8, both Pokemon faint.", - onStart(source) { - let result = 0; - const pokemon = this.getAllActive(); - for (const poke of pokemon) { - result += Object.values(poke.boosts).reduce((total, x) => total + x); - } - if (result < 8) return; - this.add('-ability', source, 'Supernova'); - for (const x of pokemon) { - this.add('-anim', x, 'Explosion', x); - x.faint(); - } - }, - name: "Supernova", - gen: 8, - }, - - // ptoad - swampysurge: { - desc: "On switch-in, this Pokemon summons Swampy Terrain. Swampy Terrain halves the power of Electric-, Grass-, and Ice-type moves used by grounded Pokemon and heals grounded Water- and Ground-types by 1/16 of their maximum HP, rounded down, each turn.", - shortDesc: "5 turns: Grounded: 1/2 Elec/Grass/Ice power, +1/16 HP/turn for Water or Ground.", - onStart(source) { - this.field.setTerrain('swampyterrain'); - }, - name: "Swampy Surge", - gen: 8, - }, - - // Rach - burnitdown: { - desc: "On switch-in, this Pokemon lowers the foe's higher offensive stat.", - shortDesc: "Lower the foe's higher offensive stat.", - onStart(pokemon) { - let totalatk = 0; - let totalspa = 0; - for (const target of pokemon.foes()) { - totalatk += target.getStat('atk', false, true); - totalspa += target.getStat('spa', false, true); - } - for (const target of pokemon.foes()) { - this.add('-ability', pokemon, 'BURN IT DOWN!'); - if (totalatk && totalatk >= totalspa) { - this.boost({atk: -1}, target, pokemon, null, true); - } else if (totalspa) { - this.boost({spa: -1}, target, pokemon, null, true); - } - } - }, - name: "BURN IT DOWN!", - gen: 8, - }, - - // Rage - inversionsurge: { - desc: "On switch-in, this Pokemon summons Inversion Terrain. While Inversion Terrain is active, type effectiveness for all Pokemon on the field is inverted, and paralyzed Pokemon have doubled, instead of halved, Speed.", - shortDesc: "Summons Inversion Terrain; 5 turns: Inverse Battle, par: 2x Spe.", - onStart(source) { - this.field.setTerrain('inversionterrain'); - }, - name: "Inversion Surge", - gen: 8, - }, - - // Raihan Kibana - royalcoat: { - desc: "If Sandstorm is active, this Pokemon's Speed is doubled and its Special Defense is multiplied by 1.5. This Pokemon takes no damage from Sandstorm.", - shortDesc: "If Sandstorm, Speed x2 and SpD x1.5; immunity to Sandstorm.", - name: "Royal Coat", - onModifySpe(spe, pokemon) { - if (this.field.isWeather('sandstorm')) { - return this.chainModify(2); - } - }, - onModifySpD(spd, pokemon) { - if (this.field.isWeather('sandstorm')) { - return this.chainModify(1.5); - } - }, - onImmunity(type, pokemon) { - if (type === 'sandstorm') return false; - }, - gen: 8, - }, - - // RavioliQueen - phantomplane: { - desc: "On switch-in, this Pokemon summons Pitch Black Terrain. While Pitch Black Terrain is active, all non-Ghost-type Pokemon take damage equal to 1/16 of their max HP, rounded down, at the end of each turn.", - shortDesc: "Summons Pitch Black Terrain, which damages non-Ghosts by 1/16 per turn.", - onStart(source) { - this.field.setTerrain('pitchblackterrain'); - }, - name: "Phantom Plane", - gen: 8, - }, - - // Robb576 - thenumbersgame: { - desc: "If this Pokemon is a forme of Necrozma, its forme changes on switch-in depending on the number of unfainted Pokemon on the user's team: Necrozma-Dusk-Mane if 3 or fewer Pokemon and Necrozma-Dawn-Wings was sent out already; Necrozma-Ultra if it is the last Pokemon left on the team and Necrozma-Dusk-Mane was sent out already.", - shortDesc: "Changes forme on switch-in depending on # of remaining Pokemon on user's team.", - name: "The Numbers Game", - isPermanent: true, - onStart(target) { - if (target.baseSpecies.baseSpecies !== 'Necrozma' || target.transformed) return; - if (target.side.pokemonLeft <= 3) { - if (target.species.name === 'Necrozma-Dusk-Mane' && target.side.pokemonLeft === 1 && target.m.flag2) { - changeSet(this, target, ssbSets['Robb576-Ultra']); - } else if (target.species.name === "Necrozma-Dawn-Wings" && target.m.flag1) { - changeSet(this, target, ssbSets['Robb576-Dusk-Mane']); - target.m.flag2 = true; - } - } - target.m.flag1 = true; - }, - gen: 8, - }, - - // Sectonia - royalaura: { - desc: "If this Pokemon is the target of an opposing Pokemon's move, that move loses one additional PP. Moves used by this Pokemon only use 0.5 PP.", - shortDesc: "Pressure, and this Pokemon uses 0.5 PP per move.", - name: "Royal Aura", - onStart(pokemon) { - this.add('-ability', pokemon, 'Royal Aura'); - }, - onDeductPP(target, source) { - if (target.isAlly(source)) return; - return 1; - }, - onTryMove(pokemon, target, move) { - const moveData = pokemon.getMoveData(move.id); - if (!moveData || moveData.pp < 0.5) return; - // Lost 1 PP due to move usage, restore 0.5 PP to make it so that only 0.5 PP - // would be used. - moveData.pp += 0.5; - }, - gen: 8, - }, - - // Segmr - skilldrain: { - desc: "While this Pokemon is active, no moves will trigger their secondary effects, and moves that cause the user to switch out will no longer do so.", - shortDesc: "While active: no secondary effects, moves can't switch out.", - name: "Skill Drain", - onAnyModifyMove(move) { - delete move.secondaries; - }, - // afterSecondarySelf and switch nullifying handled in ssb/scripts.ts - gen: 8, - }, - - // sejesensei - trashconsumer: { - desc: "This Pokemon is immune to Poison-type moves and restores 1/4 of its maximum HP, rounded down, when hit by a Poison-type move. Pokemon making contact with this Pokemon lose 1/8 of their maximum HP, rounded down.", - shortDesc: "Poison Absorb + Rough Skin", - name: "Trash Consumer", - onTryHit(target, source, move) { - if (target !== source && move.type === 'Poison') { - if (!this.heal(target.baseMaxhp / 4)) { - this.add('-immune', target, '[from] ability: Trash Consumer'); - } - return null; - } - }, - onDamagingHitOrder: 1, - onDamagingHit(damage, target, source, move) { - if (this.checkMoveMakesContact(move, source, target, true)) { - this.damage(source.baseMaxhp / 8, source, target); - } - }, - gen: 8, - }, - - // Shadecession - shadydeal: { - desc: "On switch-in, this Pokemon boosts a random stat other than Special Attack by 1 stage and gains 2 random type immunities that are displayed to the opponent.", - shortDesc: "On switch-in, gains random +1 to non-SpA, 2 random immunities.", - onStart(pokemon) { - const stats: BoostID[] = []; - let stat: BoostID; - for (stat in pokemon.boosts) { - const noBoost: string[] = ['accuracy', 'evasion', 'spa']; - if (!noBoost.includes(stat) && pokemon.boosts[stat] < 6) { - stats.push(stat); - } - } - if (stats.length) { - const randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - this.boost(boost); - } - if (this.effectState.immunities) return; - const typeList = this.dex.types.names(); - const firstTypeIndex = this.random(typeList.length); - const secondType = this.sample(typeList.slice(0, firstTypeIndex).concat(typeList.slice(firstTypeIndex + 1))); - this.effectState.immunities = [typeList[firstTypeIndex], secondType]; - this.add('-start', pokemon, `${this.effectState.immunities[0]} Immunity`, '[silent]'); - this.add('-start', pokemon, `${this.effectState.immunities[1]} Immunity`, '[silent]'); - this.add("-message", `${pokemon.name} is now immune to ${this.effectState.immunities[0]} and ${this.effectState.immunities[1]} type attacks!`); - }, - onTryHit(target, source, move) { - if (target !== source && this.effectState.immunities?.includes(move.type)) { - this.add('-immune', target, '[from] ability: Shady Deal'); - return null; - } - }, - onEnd(pokemon) { - if (!this.effectState.immunities) return; - this.add('-end', pokemon, `${this.effectState.immunities[0]} Immunity`, '[silent]'); - this.add('-end', pokemon, `${this.effectState.immunities[1]} Immunity`, '[silent]'); - delete this.effectState.immunities; - }, - name: "Shady Deal", - gen: 8, - }, - - // Soft Flex - eyeofthestorm: { - name: "Eye of the Storm", - desc: "On switch-in, this Pokemon summons Rain Dance and Tempest Terrain. While Tempest Terrain is active, Electric-type Pokemon are healed by 1/16 of their maximum HP, rounded down, at the end of each turn, and Flying- and Steel-type Pokemon lose 1/16 of their maximum HP, rounded down, at the end of each turn. If the Flying- or Steel-type Pokemon is also Electric-type, they only receive the healing.", - shortDesc: "5 turns: Rain, +1/16 HP/turn to Elec, -1/16/turn to Fly/Steel.", - onStart(source) { - this.field.setWeather('raindance', source); - this.field.setTerrain('tempestterrain', source); - }, - }, - // Spandan - hackedcorrosion: { - desc: "This Pokemon ignores other Pokemon's stat stages when taking or doing damage. This Pokemon can poison or badly poison Pokemon regardless of their typing.", - shortDesc: "Unaware + Corrosion.", - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['spd'] = 0; - boosts['accuracy'] = 0; - } - }, - name: "Hacked Corrosion", - }, - - // Struchni - overaskedclause: { - desc: "If this Pokemon is an Aggron and is hit by a move that is not very effective, this Pokemon becomes Aggron-Mega and its Attack is boosted by 1 stage.", - shortDesc: "Aggron: If hit by resisted move, Mega Evolve and gain +1 Atk.", - name: "Overasked Clause", - isPermanent: true, - onHit(target, source, move) { - if (target.getMoveHitData(move).typeMod < 0) { - if (!target.hp) return; - if (target.species.id.includes('aggron') && !target.illusion && !target.transformed) { - this.boost({atk: 1}, target); - if (target.species.name !== 'Aggron') return; - this.actions.runMegaEvo(target); - } - } - }, - gen: 8, - }, - - // Teclis - fieryfur: { - name: "Fiery Fur", - desc: "If this Pokemon is at full HP, damage taken from attacks is halved.", - onSourceModifyDamage(damage, source, target, move) { - if (target.hp >= target.maxhp) { - this.debug('Fiery Fur weaken'); - return this.chainModify(0.5); - } - }, - }, - - // temp - chargedup: { - desc: "If this Pokemon has a negative stat boost at -2 or lower, this Pokemon's negative stat boosts are cleared.", - shortDesc: "Resets negative stat boosts if there is one at -2 or lower.", - name: "Charged Up", - onUpdate(pokemon) { - let activate = false; - const boosts: SparseBoostsTable = {}; - let i: BoostID; - for (i in pokemon.boosts) { - if (pokemon.boosts[i] <= -2) { - activate = true; - boosts[i] = 0; - } - } - if (activate) { - pokemon.setBoost(boosts); - this.add('-activate', pokemon, 'ability: Charged Up'); - this.add('-clearnegativeboost', pokemon); - } - }, - gen: 8, - }, - - // tiki - truegrit: { - desc: "This Pokemon receives 1/2 damage from special attacks. This Pokemon ignores other Pokemon's Attack, Special Attack, and accuracy stat stages when taking damage, and ignores other Pokemon's Defense, Special Defense, and evasiveness stat stages when dealing damage.", - shortDesc: "Takes 1/2 damage from special moves and ignores boosts.", - name: "True Grit", - onSourceModifyDamage(damage, source, target, move) { - if (move.category === 'Special') { - return this.chainModify(0.5); - } - }, - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['spd'] = 0; - boosts['accuracy'] = 0; - } - }, - gen: 8, - }, - - // Trickster - trillionageroots: { - desc: "This Pokemon applies Leech Seed to the opposing Pokemon when hit with an attacking move. If this Pokemon is at full HP, it survives one hit with at least 1 HP. OHKO moves fail when used against this Pokemon.", - shortDesc: "Sturdy + apply Leech Seed when hit by foe.", - onTryHit(pokemon, target, move) { - if (move.ohko) { - this.add('-immune', pokemon, '[from] ability: Trillionage Roots'); - return null; - } - }, - onDamagePriority: -100, - onDamage(damage, target, source, effect) { - if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') { - this.add('-ability', target, 'Trillionage Roots'); - return target.hp - 1; - } - }, - onDamagingHit(damage, target, source, move) { - if (source.volatiles['leechseed']) return; - if (!move.flags['futuremove']) { - source.addVolatile('leechseed', this.effectState.target); - } - }, - name: "Trillionage Roots", - gen: 8, - }, - - // Volco - speedrunning: { - desc: "This Pokemon's Special Attack is raised by 1 stage when another Pokemon faints. Moves used by this Pokemon that are 60 Base Power or lower gain an additional 25 Base Power. No moves can defrost a frozen Pokemon while this Pokemon is active. However, using a move that would defrost will still go through freeze.", - shortDesc: "Soul Heart + Weak moves get +25 BP. Moves can't defrost. Defrost moves go thru frz.", - onAnyFaintPriority: 1, - onAnyFaint() { - this.boost({spa: 1}, this.effectState.target); - }, - onAnyModifyMove(move, pokemon) { - if (move.thawsTarget) { - delete move.thawsTarget; - } - if (move.flags["defrost"]) { - delete move.flags["defrost"]; - } - }, - onBasePowerPriority: 21, - onBasePower(basePower, pokemon, target, move) { - if (move.basePower <= 60) return basePower + 25; - }, - name: "Speedrunning", - gen: 8, - }, - - // Vexen - aquilasblessing: { - desc: "This Pokemon's attacks with secondary effects have their power multiplied by 1.3, but the secondary effects are removed. If this Pokemon gets hit by a damaging Fire type move, its Defense and Special Defense get raised by 1 stage.", - shortDesc: "Sheer Force + when hit with Fire move: +1 Def/SpD.", - onModifyMove(move, pokemon) { - if (move.secondaries) { - delete move.secondaries; - // Technically not a secondary effect, but it is negated - if (move.id === 'clangoroussoulblaze') delete move.selfBoost; - // Actual negation of `AfterMoveSecondary` effects implemented in scripts.js - move.hasSheerForce = true; - } - }, - onBasePowerPriority: 21, - onBasePower(basePower, pokemon, target, move) { - if (move.hasSheerForce) return this.chainModify([5325, 4096]); - }, - onDamagingHit(damage, target, source, move) { - if (move.type === 'Fire') { - this.boost({def: 1, spd: 1}); - } - }, - name: "Aquila's Blessing", - gen: 8, - }, - - // vooper - qigong: { - desc: "This Pokemon's Defense is doubled, and it receives 1/2 damage from special attacks.", - onModifyDefPriority: 6, - onModifyDef(def) { - return this.chainModify(2); - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.category === 'Special') { - return this.chainModify(0.5); - } - }, - name: "Qi-Gong", - gen: 8, - }, - - // yuki - combattraining: { - desc: "If this Pokemon is a Cosplay Pikachu forme, the first hit it takes in battle deals 0 neutral damage. Confusion damage also breaks the immunity.", - shortDesc: "(Pikachu-Cosplay only) First hit deals 0 damage.", - isPermanent: true, - onDamagePriority: 1, - onDamage(damage, target, source, effect) { - const cosplayFormes = [ - 'pikachucosplay', 'pikachuphd', 'pikachulibre', 'pikachupopstar', 'pikachurockstar', 'pikachubelle', - ]; - if ( - effect?.effectType === 'Move' && - cosplayFormes.includes(target.species.id) && !target.transformed && - !this.effectState.busted - ) { - this.add('-activate', target, 'ability: Combat Training'); - this.effectState.busted = true; - return 0; - } - }, - onCriticalHit(target, source, move) { - if (!target) return; - const cosplayFormes = [ - 'pikachucosplay', 'pikachuphd', 'pikachulibre', 'pikachupopstar', 'pikachurockstar', 'pikachubelle', - ]; - if (!cosplayFormes.includes(target.species.id) || target.transformed) { - return; - } - const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); - if (hitSub) return; - - if (!target.runImmunity(move.type)) return; - return false; - }, - onEffectiveness(typeMod, target, type, move) { - if (!target) return; - const cosplayFormes = [ - 'pikachucosplay', 'pikachuphd', 'pikachulibre', 'pikachupopstar', 'pikachurockstar', 'pikachubelle', - ]; - if (!cosplayFormes.includes(target.species.id) || target.transformed) { - return; - } - const hitSub = target.volatiles['substitute'] && !move.flags['bypasssub'] && !(move.infiltrates && this.gen >= 6); - if (hitSub) return; - - if (!target.runImmunity(move.type)) return; - return 0; - }, - name: "Combat Training", - gen: 8, - }, - // Modified Illusion to support SSB volatiles - illusion: { - inherit: true, - onEnd(pokemon) { - if (pokemon.illusion) { - this.debug('illusion cleared'); - let disguisedAs = this.toID(pokemon.illusion.name); - pokemon.illusion = null; - const details = pokemon.species.name + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + - (pokemon.gender === '' ? '' : ', ' + pokemon.gender) + (pokemon.set.shiny ? ', shiny' : ''); - this.add('replace', pokemon, details); - this.add('-end', pokemon, 'Illusion'); - // Handle users whose names match a species - if (this.dex.species.get(disguisedAs).exists) disguisedAs += 'user'; - if (pokemon.volatiles[disguisedAs]) { - pokemon.removeVolatile(disguisedAs); - } - if (!pokemon.volatiles[this.toID(pokemon.name)]) { - const status = this.dex.conditions.get(this.toID(pokemon.name)); - if (status?.exists) { - pokemon.addVolatile(this.toID(pokemon.name), pokemon); - } - } - } - }, - }, - - // Modified various abilities to support Alpha's move & pilo's abiility - deltastream: { - inherit: true, - onAnySetWeather(target, source, weather) { - if (this.field.getWeather().id === 'deltastream' && !STRONG_WEATHERS.includes(weather.id)) return false; - }, - }, - desolateland: { - inherit: true, - onAnySetWeather(target, source, weather) { - if (this.field.getWeather().id === 'desolateland' && !STRONG_WEATHERS.includes(weather.id)) return false; - }, - }, - primordialsea: { - inherit: true, - onAnySetWeather(target, source, weather) { - if (this.field.getWeather().id === 'primordialsea' && !STRONG_WEATHERS.includes(weather.id)) return false; - }, - }, - forecast: { - inherit: true, - onUpdate(pokemon) { - if (pokemon.baseSpecies.baseSpecies !== 'Castform' || pokemon.transformed) return; - let forme = null; - switch (pokemon.effectiveWeather()) { - case 'sunnyday': - case 'desolateland': - if (pokemon.species.id !== 'castformsunny') forme = 'Castform-Sunny'; - break; - case 'raindance': - case 'primordialsea': - if (pokemon.species.id !== 'castformrainy') forme = 'Castform-Rainy'; - break; - case 'winterhail': - case 'heavyhailstorm': - case 'hail': - if (pokemon.species.id !== 'castformsnowy') forme = 'Castform-Snowy'; - break; - default: - if (pokemon.species.id !== 'castform') forme = 'Castform'; - break; - } - if (pokemon.isActive && forme) { - pokemon.formeChange(forme, this.effect, false, '[msg]'); - } - }, - }, - icebody: { - inherit: true, - desc: "If Hail or Heavy Hailstorm is active, this Pokemon restores 1/16 of its maximum HP, rounded down, at the end of each turn. This Pokemon takes no damage from Hail or Heavy Hailstorm.", - shortDesc: "Hail-like weather active: heals 1/16 max HP each turn; immunity to Hail-like weather.", - onWeather(target, source, effect) { - if (['heavyhailstorm', 'hail', 'winterhail'].includes(effect.id)) { - this.heal(target.baseMaxhp / 16); - } - }, - onImmunity(type, pokemon) { - if (['heavyhailstorm', 'hail', 'winterhail'].includes(type)) return false; - }, - }, - iceface: { - inherit: true, - desc: "If this Pokemon is an Eiscue, the first physical hit it takes in battle deals 0 neutral damage. Its ice face is then broken and it changes forme to Noice Face. Eiscue regains its Ice Face forme when Hail or Heavy Hailstorm begins or when Eiscue switches in while Hail or Heavy Hailstorm is active. Confusion damage also breaks the ice face.", - shortDesc: "If Eiscue, first physical hit taken deals 0 damage. Effect is restored in Hail-like weather.", - onStart(pokemon) { - if (this.field.isWeather(['heavyhailstorm', 'hail', 'winterhail']) && - pokemon.species.id === 'eiscuenoice' && !pokemon.transformed) { - this.add('-activate', pokemon, 'ability: Ice Face'); - this.effectState.busted = false; - pokemon.formeChange('Eiscue', this.effect, true); - } - }, - onWeatherChange() { - const pokemon = this.effectState.target; - if (this.field.isWeather(['heavyhailstorm', 'hail', 'winterhail']) && - pokemon.species.id === 'eiscuenoice' && !pokemon.transformed) { - this.add('-activate', pokemon, 'ability: Ice Face'); - this.effectState.busted = false; - pokemon.formeChange('Eiscue', this.effect, true); - } - }, - }, - slushrush: { - inherit: true, - shortDesc: "If a Hail-like weather is active, this Pokemon's Speed is doubled.", - onModifySpe(spe, pokemon) { - if (this.field.isWeather(['heavyhailstorm', 'hail', 'winterhail'])) { - return this.chainModify(2); - } - }, - }, - snowcloak: { - inherit: true, - desc: "If Heavy Hailstorm, Winter Hail, or Hail is active, this Pokemon's evasiveness is multiplied by 1.25. This Pokemon takes no damage from Heavy Hailstorm or Hail.", - shortDesc: "If a Hail-like weather is active, 1.25x evasion; immunity to Hail-like weathers.", - onImmunity(type, pokemon) { - if (['heavyhailstorm', 'hail', 'winterhail'].includes(type)) return false; - }, - onModifyAccuracy(accuracy) { - if (typeof accuracy !== 'number') return; - if (this.field.isWeather(['heavyhailstorm', 'hail', 'winterhail'])) { - this.debug('Snow Cloak - decreasing accuracy'); - return accuracy * 0.8; - } - }, - }, - // Modified Magic Guard for Alpha - magicguard: { - inherit: true, - shortDesc: "This Pokemon can only be damaged by direct attacks and Heavy Hailstorm.", - onDamage(damage, target, source, effect) { - if (effect.id === 'heavyhailstorm') return; - if (effect.effectType !== 'Move') { - if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); - return false; - } - }, - }, - // Modified Unaware for Blaz's move - unaware: { - inherit: true, - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['spd'] = 0; - boosts['accuracy'] = 0; - } - }, - }, - // Modified Stakeout for Hubriz to have a failsafe - stakeout: { - inherit: true, - onModifyAtkPriority: 5, - onModifyAtk(atk, attacker, defender) { - if (!defender?.activeTurns) { - this.debug('Stakeout boost'); - return this.chainModify(2); - } - }, - onModifySpAPriority: 5, - onModifySpA(atk, attacker, defender) { - if (!defender?.activeTurns) { - this.debug('Stakeout boost'); - return this.chainModify(2); - } - }, - }, -}; diff --git a/data/mods/ssb/conditions.ts b/data/mods/ssb/conditions.ts deleted file mode 100644 index b51de897286d..000000000000 --- a/data/mods/ssb/conditions.ts +++ /dev/null @@ -1,2542 +0,0 @@ -import {FS} from '../../../lib'; -import {toID} from '../../../sim/dex-data'; - -// Similar to User.usergroups. Cannot import here due to users.ts requiring Chat -// This also acts as a cache, meaning ranks will only update when a hotpatch/restart occurs -const usergroups: {[userid: string]: string} = {}; -const usergroupData = FS('config/usergroups.csv').readIfExistsSync().split('\n'); -for (const row of usergroupData) { - if (!toID(row)) continue; - - const cells = row.split(','); - if (cells.length > 3) throw new Error(`Invalid entry when parsing usergroups.csv`); - usergroups[toID(cells[0])] = cells[1].trim() || ' '; -} - -export function getName(name: string): string { - const userid = toID(name); - if (!userid) throw new Error('No/Invalid name passed to getSymbol'); - - const group = usergroups[userid] || ' '; - return group + name; -} - -export const Conditions: {[k: string]: ModdedConditionData & {innateName?: string}} = { - /* - // Example: - userid: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Username')}|Switch In Message`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Username')}|Switch Out Message`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Username')}|Faint Message`); - }, - // Innate effects go here - }, - IMPORTANT: Obtain the username from getName - */ - // Please keep statuses organized alphabetically based on staff member name! - abdelrahman: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Abdelrahman')}|good morning, i'm town`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Abdelrahman')}|brb gonna go lynch scum`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Abdelrahman')}|I CC COP TOWN FAILED`); - }, - }, - adri: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Adri')}|This time will definitely be the one !`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Adri')}|//afk`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Adri')}|Until next time...`); - }, - }, - aelita: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aelita')}|The Scyphozoa's absorbing Aelita's memories!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aelita')}|We scared it away but it will be back. We can't let it get ahold of Aelita's memories.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aelita')}|X.A.N.A. is finally finished for good.`); - }, - }, - aegii: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('aegii')}|shoot! take a pano~rama~ https://youtu.be/G8GaQdW2wHc`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('aegii')}|${this.sample([`brb, buying albums`, `brb, downloading fancams`, `brb, streaming mvs`, `brb, learning choreos`])}`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('aegii')}|i forgot to stan loona...`); - }, - }, - aeonic: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|What's bonkin?`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|I am thou, thou art I`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|Guys the emoji movie wasn't __that bad__`); - }, - }, - aethernum: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aethernum')}|Hlelo ^_^ Lotad is so cute, don't you think? But don't underestimate him!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aethernum')}|Sinking in this sea of possibilities for now...but i'll float back once again!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aethernum')}|Ok, ok, i have procrastinated enough here, time to go ^_^' See ya around!`); - }, - }, - akir: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Akir')}|hey whats up`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Akir')}|let me get back to you`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Akir')}|ah well maybe next time`); - }, - }, - alpha: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Alpha')}|eccomi dimmi`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Alpha')}|FRATM FACI FRIDDU`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Alpha')}|caio`); - }, - }, - andrew: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Andrew')}|/me vents in`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Andrew')}|purple sus`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Andrew')}|tidal otter is impostor! He vented in front of me in admin! Vote him out next!`); - }, - }, - annika: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Annika')}|The circumstances of one's birth are irrelevant; it is what you do with the gift of life that determines who you are.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Annika')}|I'll be stronger when I'm back ^_^`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Annika')}|oh, I crashed the server again...`); - }, - }, - aquagtothepast: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('A Quag To The Past')}|Whatever happens, happens.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('A Quag To The Past')}|See you space cowboy...`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('A Quag To The Past')}|You're gonna carry that weight.`); - }, - }, - arby: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arby')}|Time to win this :)`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arby')}|MSU need a sub`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arby')}|Authhate is real.`); - }, - }, - archas: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Archas')}|Ready the main batteries, gentlemen! Hit ‘em hard and fast!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Archas')}|Helmsman, full reverse at speed!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Archas')}|They say the captain always goes down with the ship...`); - }, - }, - arcticblast: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|words are difficult`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|oh no`); - }, - onFaint() { - if (this.randomChance(1, 100)) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|get **mished** kid`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|single battles are bad anyway, why am I here?`); - } - }, - }, - awauser: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|awa!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|well, at least i didn't lose the game`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|or did i?`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('awa!')}|awawa?! awa awawawa awawa >:(`); - }, - }, - beowulf: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|:^)`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|/me buzzes`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|time for my own isekai`); - }, - onSourceFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Beowulf')}|another one reincarnating into an isekai`); - }, - }, - biggie: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('biggie')}|gonna take you for a ride`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('biggie')}|mahvel baybee!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('biggie')}|it was all a dream`); - }, - }, - billo: { - noCopy: true, - onStart(source) { - let activeMon = source.side.foe.active[0].species.name; - if (!activeMon) activeMon = "Pokemon"; - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Billo')}|Your ${activeMon} looks hacked.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Billo')}|Let me inspect your Pokemon, brb`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Billo')}|Yep, definitely hacked.`); - }, - innateName: "Unaware", - shortDesc: "This Pokemon ignores other Pokemon's stat stages when taking or doing damage.", - // Unaware innate - onAnyModifyBoost(boosts, pokemon) { - const unawareUser = this.effectState.target; - if (unawareUser.illusion) return; - if (unawareUser === pokemon) return; - if (unawareUser === this.activePokemon && pokemon === this.activeTarget) { - boosts['def'] = 0; - boosts['spd'] = 0; - boosts['evasion'] = 0; - } - if (pokemon === this.activePokemon && unawareUser === this.activeTarget) { - boosts['atk'] = 0; - boosts['def'] = 0; - boosts['spa'] = 0; - boosts['accuracy'] = 0; - } - }, - }, - blaz: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Blaz')}|Give me, give me, give me the truth now oh oh oh oh`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Blaz')}|Tell me... why? Please tell me why do we worry? Why? Why do we worry at all?`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Blaz')}|the game (lol u lost)`); - }, - }, - brandon: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Brandon')}|I didn't come here to play. I came here to slay!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Brandon')}|${this.sample([`I need to catch my breath`, `brb getting a snack`])}`); - }, - onFaint(pokemon) { - const foeName = pokemon.side.foe.active[0].illusion ? - pokemon.side.foe.active[0].illusion.name : pokemon.side.foe.active[0].name; - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Brandon')}|${this.sample([`This battle was rigga morris!`, `At least I'll snag Miss Congeniality...`, `This battle was rigged for ${foeName} anyway >:(`])}`); - }, - }, - brouha: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('brouha')}|lmf`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('brouha')}|....`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('brouha')}|sobL`); - }, - }, - buffy: { - noCopy: true, - // No quotes requested - }, - cake: { - noCopy: true, - innateName: "h", - shortDesc: "On switch-in and at the end of every turn, this Pokemon changes type randomly.", - onStart(target, pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Cake')}|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA`); - // h innate - if (pokemon.illusion) return; - const typeList = [...this.dex.types.names()]; - this.prng.shuffle(typeList); - const firstType = typeList[0]; - this.prng.shuffle(typeList); - const secondType = typeList[0]; - const newTypes = [firstType]; - if (firstType !== secondType) newTypes.push(secondType); - this.add('html|h'); - this.add('-start', pokemon, 'typechange', newTypes.join('/'), '[silent]'); - pokemon.setType(newTypes); - }, - onSwitchOut(pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Cake')}|${pokemon.side.name} is a nerd`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Cake')}|Chowder was a good show`); - }, - onResidualOrder: 26, - onResidualSubOrder: 1, - onResidual(pokemon) { - if (pokemon.illusion) return; - if (pokemon.activeTurns) { - const typeList = [...this.dex.types.names()]; - this.prng.shuffle(typeList); - const firstType = typeList[0]; - this.prng.shuffle(typeList); - const secondType = typeList[0]; - const newTypes = [firstType]; - if (firstType !== secondType) newTypes.push(secondType); - this.add('html|h'); - this.add('-start', pokemon, 'typechange', newTypes.join('/'), '[silent]'); - pokemon.setType(newTypes); - } - }, - }, - cantsay: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('cant say')}|haha volc go brrrr`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('cant say')}|lol CTed`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('cant say')}|${this.sample(['imagine taking pokemon seriously when you can just get haxed', '/me plays curb your enthusiasm theme', 'bad players always get lucky'])}`); - }, - innateName: "Magic Guard", - shortDesc: "This Pokemon can only be damaged by direct attacks.", - // Magic Guard Innate - onDamage(damage, target, source, effect) { - if (target.illusion) return; - if (effect.effectType !== 'Move') { - if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); - return false; - } - }, - }, - celine: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Celine')}|Support has arrived!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Celine')}|Brb writing`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Celine')}|'Tis only a flesh wound!`); - }, - }, - ckilgannon: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('c.kilgannon')}|Take a look to the sky just before you die`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('c.kilgannon')}|Death does wait; there's no debate.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('c.kilgannon')}|Memento mori.`); - }, - }, - coconut: { - noCopy: true, - // no quotes - }, - dogknees: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dogknees')}|Your opinion is wrong if you think cats are better than dogs ૮・ﻌ・ა`); - if (source.illusion) return; - this.add('-start', source, 'typechange', source.types.join('/'), '[silent]'); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dogknees')}|Yes, dogs do have knees. Stop asking me.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dogknees')}|Nap time!`); - }, - }, - dragonwhale: { - noCopy: true, - // No quotes - }, - drampasgrandpa: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('drampa\'s grandpa')}|Where are my glasses?`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('drampa\'s grandpa')}|Darn kids...`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('drampa\'s grandpa')}|Bah humbug!`); - }, - }, - dream: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dream')}|It's Prime Time`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dream')}|oh no please god tell me we're dreaming`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('dream')}|perdemos`); - }, - }, - elgino: { - noCopy: true, - onStart(target, pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Elgino')}|Time to save Hyrule!`); - if (pokemon.illusion) return; - this.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[silent]'); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Elgino')}|Hold on I need to stock up on ${this.sample(['Bombs', 'Arrows', 'Magic', 'Seeds'])}`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Elgino')}|I'm out of fairies D:!`); - }, - }, - emeri: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Emeri')}|hey !`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Emeri')}|//busy`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Emeri')}|don't forget to chall SFG or Agarica in gen8ou`); - }, - }, - epicnikolai: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('EpicNikolai')}|I never give up until I get something right, which means destroying you ☜(゚ヮ゚☜)`); - if (source.species.id !== 'garchompmega' || source.illusion) return; - this.add('-start', source, 'typechange', source.types.join('/'), '[silent]'); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('EpicNikolai')}|This wasn't as fun as I thought it would be, I'm out ¯_( ͡~ ͜ʖ ͡°)_/¯`); // eslint-disable-line no-irregular-whitespace - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('EpicNikolai')}|I like to keep a positive attitude even though it is hard sometimes <('o'<)~*/`); - }, - }, - estarossa: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('estarossa')}|honestly best pairing for hazard coverage wtih molt is like molt + tsareena/dhelmise`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('estarossa')}|sand balance <333`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('estarossa')}|*eurgh*`); - }, - }, - explodingdaisies: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('explodingdaisies')}|Turn and run now, and I will mercifully pretend this never happened.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('explodingdaisies')}|You are beneath me, and it shows.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('explodingdaisies')}|Unacceptable!`); - }, - }, - fart: { - noCopy: true, - onStart(source) { - let activeMon; - activeMon = source.side.foe.active[0]; - activeMon = activeMon.illusion ? activeMon.illusion.name : activeMon.name; - const family = ['aethernum', 'trickster', 'celestial', 'gimmick', 'zalm', 'aelita', 'biggie']; - if (this.toID(activeMon) === 'hoeenhero') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|🎵 it's friday, friday, gotta get down on friday 🎵`); - } else if (this.toID(activeMon) === 'grimauxiliatrix') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|howdy ho, neighbor`); - } else if (this.toID(activeMon) === 'fart') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|How Can Mirrors Be Real If Our Eyes Aren't Real`); - } else if (family.includes(this.toID(activeMon))) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|hey, hey, hey. ${activeMon} is OK`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|rats, rats, we are the rats`); - } - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|if I can't win this game, then I'll make it boring for everyone.`); - }, - onFaint(pokemon) { - let activeMon; - activeMon = pokemon.side.foe.active[0]; - activeMon = this.toID(activeMon.illusion ? activeMon.illusion.name : activeMon.name); - const family = ['aethernum', 'trickster', 'celestial', 'gimmick', 'zalm', 'aelita', 'biggie']; - if (family.includes(activeMon)) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|at least I wasn't boring, right?`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|oy, I die`); - } - }, - }, - felucia: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Felucia')}|battlesignup! I dropped my dice somewhere and now all I can do is make you play with them (join using %join one)`); - if (source.illusion) return; - this.add('-start', source, 'typechange', source.types.join('/'), '[silent]'); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Felucia')}|battlesignup: I lost connection to a player so I guess I'll get a new one (/me in to sub)`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Felucia')}|%remp Felucia`); - }, - }, - finland: { - noCopy: true, - onStart(source) { - const roll = this.random(100); - let message: string; - if (roll < 70) { - message = 'pog'; - } else if (roll < 80) { - message = 'very pog'; - } else if (roll < 90) { - message = 'poggaroo'; - } else if (roll < 95) { - message = 'PogU'; - } else { - message = 'poog'; - } - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|${message}`); - if (source.illusion) return; - this.boost({spa: 1, spd: 1}, source); - }, - onBeforeMovePriority: 0.5, - onBeforeMove(attacker, defender, move) { - if (attacker.illusion) return; - attacker.clearBoosts(); - this.add('-clearboost', attacker); - if (move.category === 'Status') { - this.boost({def: 1, spd: 1}, attacker); - } else { - this.boost({spa: 1, spe: 1}, attacker); - } - }, - innateName: "Fickle Decorator", - shortDesc: "Calm Mind on switch-in. Changes boosts depending on move used.", - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|i hope running away is safe on shield?`); - }, - onFaint() { - if (this.randomChance(99, 100)) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|FINLAND!!!`); - } else { - // personally i like young link from oot3d and mm3d - sp - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Finland')}|i hate young link. i hate you i hate you i hate you. i hate you. young link i hate you. i despise you. i loathe you. your existence is an affront to my person. to my own existence. it's an offense. a despicable crime. a wretched abomination. even worse than mega man. a cruel barbarity. an awful curse from capricious, pernicious fate. oh do i hate young link. i scorn you. i cast you away to ignominy and hatred even worse than mega man. you are shameful young link, and you should never show your face again`); - } - }, - }, - frostyicelad: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('frostyicelad ❆')}|Oh i guess its my turn now! Time to sweep!`); - }, - onSwitchOut(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('frostyicelad ❆')}|Hey! ${source.side.name} why dont you keep me in and let me sweep? Mean.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('frostyicelad ❆')}|So c-c-cold`); - }, - }, - gallantspear: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('gallant\'s pear')}|**Rejoice! The one to inherit all Rider powers, the time king who will rule over the past and the future.**`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('gallant\'s pear')}|My Overlord..`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('gallant\'s pear')}|Damn you, Decade!!!`); - }, - }, - gimmick: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|Mama, they say I'm a TRRST`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|Ic3peak to you later`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|I did nothing wrong (but I got on the blacklist)`); - }, - // Unburden Innate - onAfterUseItem(item, pokemon) { - if (pokemon !== this.effectState.target) return; - pokemon.addVolatile('unburden'); - }, - onTakeItem(item, pokemon) { - pokemon.addVolatile('unburden'); - }, - onEnd(pokemon) { - pokemon.removeVolatile('unburden'); - }, - innateName: "Unburden", - desc: "If this Pokemon loses its held item for any reason, its Speed is doubled. This boost is lost if it switches out or gains a new item.", - shortDesc: "Speed is doubled on held item loss; boost is lost if it switches or gets new item.", - }, - gmars: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('GMars')}|It's ya boy GEEEEEEEEMARS`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('GMars')}|Who switches out a Minior in prime position?`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('GMars')}|Follow me on bandcamp`); - }, - }, - grimauxiliatrix: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('grimAuxiliatrix')}|${this.sample(['THE JUICE IS LOOSE', 'TOOTHPASTE\'S OUT OF THE TUBE', 'PREPARE TO DISCORPORATE'])}`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('grimAuxiliatrix')}|${this.sample(['NOT LIKE THIS', 'HALT - MODULE CORE HEMORRHAGE', 'AAAAAAAAAAAAAAAAAAA', 'Change da world... my final message. Goodb ye.'])}`); - }, - }, - hoeenhero: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('HoeenHero')}|A storm is brewing...`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('HoeenHero')}|The eye of the hurricane provides a brief respite from the storm.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('HoeenHero')}|All storms eventually disipate.`); - }, - }, - hubriz: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hubriz')}|Free hugs!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hubriz')}|The soil's pH level is too high. I'm out!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hubriz')}|Delicate Flower Quest failed...`); - }, - }, - hydro: { - noCopy: true, - onStart(pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|Person reading this is a qt nerd and there is absolutely NOTHING u can do about it :)`); - if (pokemon.illusion) return; - this.add('-start', pokemon, 'typechange', pokemon.types.join('/'), '[silent]'); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|brb, taking a break from ur nerdiness`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|RUUUUUDEEE`); - }, - }, - inactive: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Inactive')}|Are you my nightmare? Or am I yours?`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Inactive')}|This is not the end...`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Inactive')}|/me turns to stone and crumbles`); - }, - }, - instructuser: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|lets drink to a great time!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Swagn')}|Hey, instruct. Here's those 15,000 walls of text you ordered. :3`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|ya know, why __do__ you always flood my dms?`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|whatever im just gonna go get some more coke`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|wait did we run out of coca-cola?`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|laaaaaaaaaaame`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('instruct')}|yall suck im going home`); - }, - innateName: "Last Laugh", - desc: "Upon fainting to an opponent's direct attack, this Pokemon deals damage to all Pokemon that have made contact with it equal to 50% of their max HP. This damage cannot KO Pokemon.", - shortDesc: "Upon foe KOing user, deal 50% of their max HP to all foes that this Pokemon contacted.", - // Innate - onSourceHit(target, source, move) { - if (source.illusion) return; - if (!move || !target) return; - if (target !== source && move.category !== 'Status') { - if (move.flags['contact']) { - if (!target.m.marked) this.add('-message', `${target.name} was marked by an unknown being...`); - target.m.marked = true; - } - } - }, - onDamagingHit(damage, target, source, move) { - if (target.illusion) return; - if (this.checkMoveMakesContact(move, source, target)) { - if (!source.m.marked) this.add('-message', `${source.name} was marked by an unknown being...`); - source.m.marked = true; - } - if (!target.hp) { - for (const foe of source.side.pokemon) { - if (foe.fainted || !foe.hp) continue; - if (!foe.m.marked) continue; - this.add('-activate', target, 'ability: Last Laugh'); - let collateral = this.clampIntRange(foe.baseMaxhp / 2, 1); - this.add('-message', `${foe.name} became insane and attacked themselves!`); - if (collateral >= foe.hp) collateral = foe.hp - 1; - foe.hp = foe.hp - collateral; - if (foe === source) { - this.add('-damage', foe, foe.getHealth); - } - } - } - }, - }, - iyarito: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Iyarito')}|Madre de Dios, ¡es el Pollo Diablo!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Iyarito')}|Well, you're not taking me without a fight!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Iyarito')}|RIP Patrona`); - }, - }, - jett: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jett')}|It's a good day for a hunt.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jett')}|I'll be back for more.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jett')}|They got lucky.`); - }, - }, - jho: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jho')}|Hey there party people`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jho')}|The Terminator(1984), 00:57:10`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jho')}|Unfortunately, CAP no longer accepts custom elements`); - }, - }, - jordy: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jordy')}|I heard there's a badge here. Please give it to me immediately.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jordy')}|Au Revoir. Was that right?`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jordy')}|hjb`); - }, - }, - kaijubunny: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kaiju Bunny')}|I heard SOMEONE wasn't getting enough affection!  ̄( ÒㅅÓ) ̄`); - if (source.species.id !== 'lopunnymega' || source.illusion) return; - this.add('-start', source, 'typechange', source.types.join('/'), '[silent]'); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kaiju Bunny')}|Brb, need more coffee  ̄( =ㅅ=) ̄`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kaiju Bunny')}|Wow, okay, r00d  ̄(ಥㅅಥ) ̄`); - }, - }, - kalalokki: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(•_•)`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|( •_•)>⌐■-■`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(⌐■_■)`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(⌐■_■)`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|( •_•)>⌐■-■`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kalalokki')}|(x_x)`); - }, - innateName: "Sturdy", - shortDesc: "If this Pokemon is at full HP, it survives one hit with at least 1 HP. Immune to OHKO.", - // Sturdy Innate - onTryHit(pokemon, target, move) { - if (target.illusion) return; - if (move.ohko) { - this.add('-immune', pokemon, '[from] ability: Sturdy'); - return null; - } - }, - onDamagePriority: -100, - onDamage(damage, target, source, effect) { - if (target.illusion) return; - if (target.hp === target.maxhp && damage >= target.hp && effect && effect.effectType === 'Move') { - this.add('-ability', target, 'Sturdy'); - return target.hp - 1; - } - }, - }, - kennedy: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kennedy')}|up the reds`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kennedy')}|brb Jayi is PMing me (again) -_-`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kennedy')}|I'm not meant to score goals anyway, I'm a defensive striker.`); - }, - }, - kev: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kev')}|Sorry for raining on your parade`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kev')}|Rain, rain, go away, come again another day`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kev')}|I guess I'm all washed up...`); - }, - }, - kingbaruk: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kingbaruk')}|:cute:`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kingbaruk')}|//none`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kingbaruk')}|Fijne avond nog`); - }, - }, - kingswordyt: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('KingSwordYT')}|Mucho texto`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('KingSwordYT')}|Hasta la próximaaaa`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('KingSwordYT')}|**__Se anula el host__**`); - }, - }, - kipkluif: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kipkluif')}|Please play LCUU, it's fun`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kipkluif')}| /teleport`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kipkluif')}|I've failed you.. I pray you hurry.. with those reinforcments.. you promised..`); - }, - }, - kris: { - innateName: "phuck", - desc: "If this Pokemon is an Unown forme, it is immune to indirect damage and transforms into a different Unown letter forme, aside from ! and ?, at the end of each turn.", - shortDesc: "Unown: Magic Guard + change letter every turn.", - noCopy: true, - onStart(source) { - const foeName = source.side.foe.active[0].illusion ? - source.side.foe.active[0].illusion.name : source.side.foe.active[0].name; - if (foeName === 'Aeonic' || source.side.foe.name === 'Aeonic') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|HAPPY BIRTHDAY AEONIC!!!!`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|hi ${foeName}`); - } - }, - onSwitchOut(source) { - const foeName = source.side.foe.active[0].illusion ? - source.side.foe.active[0].illusion.name : source.side.foe.active[0].name; - if (foeName === 'Aeonic' || source.side.foe.name === 'Aeonic') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|HAPPY BIRTHDAY AEONIC!!!!`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|bye ${foeName}`); - } - }, - onFaint(target) { - const foeName = target.illusion ? - target.illusion.name : target.name; - if (foeName === 'Aeonic' || target.side.name === 'Aeonic') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|HAPPY BIRTHDAY AEONIC!!!!`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|Fortnite Battle Royale`); - } - }, - // phuck innate - onDamage(damage, target, source, effect) { // Magic Guard - if (effect.id === 'heavyhailstorm') return; - if (target.illusion) return; - if (!target.species.id.includes('unown')) return; - if (effect.effectType !== 'Move') { - if (effect.effectType === 'Ability') this.add('-activate', source, 'ability: ' + effect.name); - return false; - } - }, - onResidual(pokemon) { - if (pokemon.illusion) return; - if (!pokemon.species.id.includes('unown')) return; - // So this doesn't activate upon switching in - if (pokemon.activeTurns < 1) return; - const unownLetters = 'abcdefghijklmnopgrstuvwxyz'.split(''); - const currentFormeID = this.toID(pokemon.set.species); - const currentLetter = currentFormeID.charAt(5) || 'a'; - const chosenLetter = this.sample(unownLetters.filter(letter => letter !== currentLetter)); - // Change is permanent so when you switch out you keep the letter - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|watch this`); - if (chosenLetter === 'w') { - this.add('-activate', pokemon, 'ability: phuck'); - pokemon.formeChange(`unownw`, this.effect, true); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|W? More like L`); - this.add('-activate', pokemon, 'ability: phuck'); - pokemon.formeChange(`unownl`, this.effect, true); - this.hint(`There are no W Pokemon that work with Kris's signature move, so we're counting this as a loss`); - } else if (chosenLetter === 'u') { - this.add('-activate', pokemon, 'ability: phuck'); - pokemon.formeChange(`unownu`, this.effect, true); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Kris')}|U? I'm already an Unown, no`); - this.add('-activate', pokemon, 'ability: phuck'); - const chosenLetter2 = this.sample(unownLetters.filter(letter => letter !== 'u' && letter !== 'w')); - pokemon.formeChange(`unown${chosenLetter2}`, this.effect, true); - this.hint(`There are no U Pokemon that work with Kris's signature move, so we're counting this as a loss`); - } else { - this.add('-activate', pokemon, 'ability: phuck'); - pokemon.formeChange(`unown${chosenLetter === 'a' ? '' : chosenLetter}`, this.effect, true); - } - }, - }, - lamp: { - noCopy: true, - onStart(pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lamp')}|DUDE HI ${pokemon.side.foe.name} (:`); - }, - onSwitchOut(pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lamp')}|bye ${pokemon.side.foe.name} :)`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lamp')}|no u`); - }, - }, - lionyx: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lionyx')}|Hi, this is ps-chan, how may I help you, user-kun? (。◕‿‿◕。)`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lionyx')}|Teclis au secours`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lionyx')}|The cold never bothered me anyway...`); - }, - }, - litteleven: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Litt♥Eleven')}|The coin is flipped, what follows is destiny alone.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Litt♥Eleven')}|Looks like my business is finished here... for now.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Litt♥Eleven')}|Perhaps, coin tossing isn't the optimal way to win a war...`); - }, - }, - lunalauser: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lunala')}|o bella`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lunala')}|Condivido schermo cosi' guardiamo i tre porcellini?`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Lunala')}|BE... Ok mejo chiudere gioco... vedo documentario su Bibbia`); - }, - }, - madmonty: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mad Monty ¾°')}|Ah, the sweet smell of rain... Oh! Hi there!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mad Monty ¾°')}|Hey, I was enjoying the weather! Awww...`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mad Monty ¾°')}|Nooo, if I go, who will stop the llamas?`); - }, - }, - majorbowman: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('MajorBowman')}|Aaaand Cracktion!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('MajorBowman')}|This isn't Maury Povich!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('MajorBowman')}|Never loved ya.`); - }, - }, - marshmallon: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Marshmallon')}|I'm hungry. Are you edible? c:`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Marshmallon')}|RAWWWR`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Marshmallon')}|I'm still hungry. rawr. :c`); - }, - }, - meicoo: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|cool quiz`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|/leavehunt`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|/endhunt`); - }, - }, - mitsuki: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mitsuki')}|alguem quer batalha?????`); - }, - onSwitchOut(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mitsuki')}|You're weak, ${source.side.foe.name}. Why? Because you lack... hatred.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Mitsuki')}|THIS WORLD SHALL KNOW P A I N`); - }, - }, - n10sit: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('n10siT')}|Heheheh... were you surprised?`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('n10siT')}|Heheheh... did I scare you?`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('n10siT')}|Hoopa never saw one of those!`); - }, - }, - naziel: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Naziel')}|ay ola soy nasieeeeeeel`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Naziel')}|YAY, I WILL NOT DIE THIS TIME`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Naziel')}|Toy xikito no puedo ;-;`); - }, - }, - nol: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Nol')}|What's up nerds`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Nol')}|cya nerds later`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Nol')}|nerd`); - }, - innateName: "RSUA", - shortDesc: "+1 priority to status moves. 1.5x Defense and Special Defense.", - // Innate Prankster and Eviolite - onModifyPriority(priority, pokemon, target, move) { - if (move?.category === 'Status') { - move.pranksterBoosted = true; - return priority + 1; - } - }, - onModifyDefPriority: 2, - onModifyDef(def, pokemon) { - if (pokemon.illusion) return; - return this.chainModify(1.5); - }, - onModifySpDPriority: 2, - onModifySpD(spd, pokemon) { - if (pokemon.illusion) return; - return this.chainModify(1.5); - }, - }, - notater517: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Notater517')}|nyaa~... I mean, 'tis a swell day to twirl one's mustache, isn't it?!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Notater517')}|/me corrupt trivia noises`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Notater517')}|This is probably a good time to fix my sleep schedule`); - }, - }, - nui: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('nui')}|/html `); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('nui')}|/html `); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('nui')}|/html `); - }, - }, - overneat: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Overneat')}|Lets end this ${source.side.foe.name}!!`); - if (source.species.id !== 'absolmega' || source.illusion) return; - this.add('-start', source, 'typechange', source.types.join('/'), '[silent]'); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Overneat')}|I can do better!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Overneat')}|I was to cocky...`); - }, - }, - om: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('OM~!')}|What's Up Gamers`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('OM~!')}|Let me just ${this.sample(['host murder for the 100th time', 'clean out scum zzz', 'ladder mnm rq'])}`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('OM~!')}|ugh, I ${this.sample(['rolled a 1, damnit.', 'got killed night 1, seriously?', 'got v-create\'d by fucking dragapult lmaoo'])}`); - }, - }, - pants: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|neat`); - }, - onSwitchOut(source) { - if (source.side.sideConditions.givewistfulthinking) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|brb contemplating things`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|brb dying a little`); - } - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('pants')}|how do you even knock out something that's already dead? i call bs`); - }, - }, - paradise: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Paradise ╱╲☼')}|You ever notice that the first thing a PS tryhard does is put their PS auth in their smogon signature?`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Paradise ╱╲☼')}|Pokemon Showdown copypastas have to be among the worst I've seen on any website. People spam garbage over and over until eventually the mods get fed up and clamp down on spam. I don't blame them for it. Have you ever seen a copypasta fail as hard as the dead memes on this website? There are mods on here who still think that "Harambe" and "Damn Daniel" are the peak of comedy. Not to mention that there are rooms on here that don't even talk about pokemon lol. Yeah, I don't see this website lasting more than 2 years, I'd suggest becoming a mod somewhere else.`); - }, - onFaint(pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Paradise ╱╲☼')}|Paradise has been kicked, not banned, therefore you could still potentially invite them back. However, do not do this @${pokemon.side.name}, unless of course, you want to be banned too, because if you invite them back you and Paradise will both be banned.`); - }, - }, - partman: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|${this.sample([`OMA HI ${source.side.name.toUpperCase()} BIG FAN`, `HYDRO IS A NERD`, `Greetings, today we are all gathered here to pay respects to - wait, this is only ${source.side.foe.name}'s funeral. Never mind.`, `__I'm on fiiiiiiiiiiire__`, `/me hugs`, `A SACRIFICE FOR SNOM`, `${source.side.name} more like nerd`, `NER`])}`); - }, - onSwitchOut(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|Hi ${source.side.name}, I'm PartMan!`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|Hi PartMan, I'm PartMan!`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|Hi PartMan, I'm PartMan!`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Hydro')}|/log PartMan was muted by Hydro for 7 minutes. (flood)`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|${this.sample(['B-booli. >.<', 'Remember to dab on iph', 'Excuse me what', 'RUDE', ':pout:', '/html '])}`); - }, - }, - peapodc: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('peapod c')}|/me sprints into the room`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('peapod c')}|Must maintain m o m e n t u m`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('peapod c')}|They say sleep is the cousin of death — but even ghosts need to sleep!`); - }, - }, - perishsonguser: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Perish Song')}|(╯°□°)╯︵ ┻━┻`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Perish Song')}|┬──┬◡ノ(° -°ノ)`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Perish Song')}|Thanks for coming to my TED talk.`); - }, - }, - phiwings99: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('phiwings99')}|Pick.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('phiwings99')}|I'm boated.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('phiwings99')}|God, Nalei is fucking terrible at this game.`); - }, - }, - piloswinegripado: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('piloswine gripado')}|Suave?`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('piloswine gripado')}|cya frend :)`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('piloswine gripado')}|This was lame :/`); - }, - }, - pirateprincess: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|Ahoy! o/`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|brb making tea`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|I failed my death save`); - }, - onHit(target, source, move) { - if (move?.effectType === 'Move' && target.getMoveHitData(move).crit) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|NATURAL 20!!!`); - } - }, - }, - psynergy: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Psynergy')}|Will you survive?`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Psynergy')}|yadon moment`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Psynergy')}|oh`); - }, - }, - ptoad: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('ptoad')}|I'm ptoad.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('ptoad')}|Bye, ribbitch!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('ptoad')}|OKKKK DUUUDE`); - }, - innateName: "Sticky Hold", - shortDesc: "This Pokemon cannot lose its held item due to another Pokemon's attack.", - // Sticky Hold Innate - onTakeItem(item, pokemon, source) { - if (this.suppressingAbility(pokemon) || !pokemon.hp || pokemon.item === 'stickybarb') return; - if (!this.activeMove) throw new Error("Battle.activeMove is null"); - if ((source && source !== pokemon) || this.activeMove.id === 'knockoff') { - this.add('-activate', pokemon, 'ability: Sticky Hold'); - return false; - } - }, - }, - rabia: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rabia')}|eternally`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rabia')}|rabia`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rabia')}|im top 500 in relevant tiers and lead gp, i have 8 badges, im fine, gg`); - }, - }, - rach: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rach')}|Hel-lo`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rach')}|I was doing better alone`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rach')}|I'm all good already, so moved on, it's scary`); - }, - }, - rageuser: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rage')}|/html `); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rage')}|im off, cya lads`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Rage')}|/me quits`); - }, - }, - raihankibana: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raihan Kibana')}|Hi gm`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raihan Kibana')}|Ight Imma head out`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raihan Kibana')}|Grr bork bork :(`); - }, - }, - rajshoot: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raj.Shoot')}|Plaza Power!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raj.Shoot')}|We'll be back!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raj.Shoot')}|You'll join me in the shadow realm soon....`); - }, - }, - ransei: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Ransei')}|Sup! This is Gen 8 so imma run an Eternamax set. Best of luck. You’ll need it :^)`); - }, - onFaint(pokemon) { - const target = pokemon.side.foe.active[0]; - if (!target || target.fainted || target.hp <= 0) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Ransei')}|Ahah yes you got rekt! Welcome to Hackmons! gg m8!`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Ransei')}|ripsei... Ok look you might’ve won this time but I kid you not you’re losing next game!`); - } - }, - }, - ravioliqueen: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('RavioliQueen')}|The Noodle Noble has Arrived!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('RavioliQueen')}|Time to spaghett out of here!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('RavioliQueen')}|This is impastable!`); - }, - innateName: "Pitch Black Witch", - desc: "When this Pokemon sets or switches into Pitch Black errain, its Special Attack and Special Defense are boosted by 1 stage. If this Pokemon gets hit while Pitch Black Terrain is up, it gets +1 speed", - shortDesc: "Pitch Black Terrain: Calm Mind on switch-in, +1 Spe when attacked.", - // Coded in the terrain itself - }, - robb576: { - noCopy: true, - onStart(target, pokemon) { - if (pokemon.side.pokemonLeft === 1) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|This is our last stand. Give it everything you got ${pokemon.side.name}!`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|1, 2, 3, 4, dunno how to count no more!`); - } - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|5, 7, 6, I will be right back into the mix!`); - }, - onFaint(pokemon) { - if (pokemon.species.name === "Necrozma-Ultra") { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|gg better luck next time. Sorry I couldn't handle them all :^(`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Robb576')}|8, 9, 10, it has been a pleasure man!`); - } - }, - }, - sectonia: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Sectonia')}|I love one (1) queen bee`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Sectonia')}|My search for my lost queen continues....`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Sectonia')}|NOOOOOO NOT THE JELLY BABY`); - }, - }, - segmr: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Segmr')}|*awakens conquerors haki* Greetings.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Segmr')}|Lemme show you this`); - this.add(`l|Segmr`); - }, - onFaint(pokemon) { - const name = pokemon.side.foe.active[0].illusion ? - pokemon.side.foe.active[0].illusion.name : pokemon.side.foe.active[0].name; - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Segmr')}|I'm sorry ${name} but could you please stop talking to me?`); - }, - }, - sejesensei: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('sejesensei')}|yoyo, what’ve you been reading lately`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('sejesensei')}|bbl, gonna go read some manga`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('sejesensei')}|B-but, this didn’t happen in the manga…`); - }, - }, - seso: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|I have good spacial awareness, and I'm pretty comfortable with a sword.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|In the blink of an eye.`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|I feel just, you know, defeated.`); - }, - }, - shadecession: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Shadecession')}|Better put on my Shadecessions`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Shadecession')}|⌐■_■`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Shadecession')}|ah, gg fam`); - }, - }, - softflex: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Soft Flex')}|:]`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Soft Flex')}|:[`); - }, - }, - spandan: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Spandan')}|Mareanie!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Spandan')}|You can't end this toxic relationship just like that!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Spandan')}|You didnt do shit. I coded myself to faint.`); - }, - }, - struchni: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Struchni')}|~tt newgame`); - }, - onSwitchOut(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Struchni')}|~tt endgame`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Struchni')}|**selfveto**`); - }, - }, - teclis: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Teclis')}|Fire at will!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Teclis')}|A spark remains...`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Teclis')}|You set my soul on fire!`); - }, - }, - temp: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('temp')}|hi, i'm here to drop dracos`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('temp')}|how did I not win yet`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('temp')}|oh I died`); - }, - }, - theimmortal: { - noCopy: true, - onStart(source) { - const foe = source.side.foe.active[0]; - const foeName = foe.illusion ? foe.illusion.name : foe.name; - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('The Immortal')}|${!foe || foe.fainted || foe.hp <= 0 ? 'hi' : foeName}`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('The Immortal')}|ok`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('The Immortal')}|ban stall`); - }, - }, - thewaffleman: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('thewaffleman')}|Whats Good Youtube its your boy thewaffleman`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('thewaffleman')}|Never Gonna Give You Up`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('thewaffleman')}|coyg`); - }, - }, - tiki: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|just tiki.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|/html `); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|aksfgkjag o k`); - }, - }, - traceuser: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('trace')}|Daishouri!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('trace')}|¯\\_(ツ)_/¯`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('trace')}|sucks to sucks`); - }, - }, - trickster: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Trickster')}|(¤﹏¤)`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Trickster')}|(︶︹︺)`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Trickster')}|(ಥ﹏ಥ)`); - }, - }, - vexen: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Vexen')}|Most unlucky for you!`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Vexen')}|brb reading Bleach`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Vexen')}|Wait this wasn't supposed to happen`); - }, - }, - vivalospride: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vivalospride')}|hola mi amore`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vivalospride')}|no hablo español`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vivalospride')}|classic honestly`); - }, - }, - volco: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|/me loud controller noises`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|/me controller clicking fades`); - }, - onFaint(source, target, effect) { - if (effect?.id === 'glitchexploiting') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|Dammit, time for a reset.`); - return; - } - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|Looks like the game fro-`); - this.add(`raw|
This Pokemon Showdown battle has frozen!
Don't worry, we're working on fixing it, so just carry on like you never saw this.
(Do not report this, this is intended.)
`); - }, - }, - vooper: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vooper')}|${this.sample(['Paws out, claws out!', 'Ready for the prowl!'])}`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vooper')}|Must... eat... bamboo...`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('vooper')}|I guess Kung Fu isn't for everyone...`); - }, - }, - yuki: { - noCopy: true, - onStart(target, pokemon) { - let bst = 0; - for (const stat of Object.values(pokemon.species.baseStats)) { - bst += stat; - } - let targetBst = 0; - for (const stat of Object.values(target.species.baseStats)) { - targetBst += stat; - } - let message: string; - if (bst > targetBst) { - message = 'You dare challenge me!?'; - } else { - message = 'Sometimes, you go for it'; - } - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('yuki')}|${message}`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('yuki')}|Catch me if you can!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('yuki')}|You'll never extinguish our hopes!`); - }, - }, - zalm: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zalm')}|<(:O)000>`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zalm')}|Run for the hills!`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zalm')}|Woah`); - }, - }, - zarel: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zarel')}|the melo-p represents PS's battles, and the melo-a represents PS's chatrooms`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zarel')}|THIS melo-a represents kicking your ass, though`); - }, - }, - zodiax: { - noCopy: true, - onStart(source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|Zodiax is here to Zodihax`); - - // Easter Egg - const activeMon = this.toID( - source.side.foe.active[0].illusion ? source.side.foe.active[0].illusion.name : source.side.foe.active[0].name - ); - if (activeMon === 'aeonic') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|Happy Birthday Aeonic`); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Aeonic')}|THIS JOKE IS AS BORING AS YOU ARE`); - } - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|Don't worry I'll be back again`); - }, - onFaint(pokemon) { - const name = pokemon.side.foe.name; - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|${name}, Why would you hurt this poor little pompombirb :(`); - }, - }, - zyguser: { - noCopy: true, - onStart() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zyg')}|Free Swirlyder.`); - }, - onSwitchOut() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zyg')}|/me sighs... what is there to say?`); - }, - onFaint() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zyg')}|At least I have a tier.`); - }, - }, - // Heavy Hailstorm status support for Alpha - heavyhailstorm: { - name: 'HeavyHailstorm', - effectType: 'Weather', - duration: 0, - onTryMovePriority: 1, - onTryMove(attacker, defender, move) { - if (move.type === 'Steel' && move.category !== 'Status') { - this.debug('Heavy Hailstorm Steel suppress'); - this.add('-message', 'The hail suppressed the move!'); - this.add('-fail', attacker, move, '[from] Heavy Hailstorm'); - this.attrLastMove('[still]'); - return null; - } - }, - onWeatherModifyDamage(damage, attacker, defender, move) { - if (move.type === 'Ice') { - this.debug('Heavy Hailstorm ice boost'); - return this.chainModify(1.5); - } - }, - onFieldStart(field, source, effect) { - this.add('-weather', 'Hail', '[from] ability: ' + effect, '[of] ' + source); - this.add('-message', 'The hail became extremely chilling!'); - }, - onModifyMove(move, pokemon, target) { - if (!this.field.isWeather('heavyhailstorm')) return; - if (move.category !== "Status") { - this.debug('Adding Heavy Hailstorm freeze'); - if (!move.secondaries) move.secondaries = []; - for (const secondary of move.secondaries) { - if (secondary.status === 'frz') return; - } - move.secondaries.push({ - chance: 10, - status: 'frz', - }); - } - }, - onFieldResidualOrder: 1, - onFieldResidual() { - this.add('-weather', 'Hail', '[upkeep]'); - if (this.field.isWeather('heavyhailstorm')) this.eachEvent('Weather'); - }, - onWeather(target, source, effect) { - if (target.isAlly(this.effectState.source)) return; - // Hail is stronger from Heavy Hailstorm - if (!target.hasType('Ice')) this.damage(target.baseMaxhp / 8); - }, - onFieldEnd() { - this.add('-weather', 'none'); - }, - }, - // Forever Winter Hail support for piloswine gripado - winterhail: { - name: 'Winter Hail', - effectType: 'Weather', - duration: 0, - onFieldStart(field, source, effect) { - this.add('-weather', 'Hail', '[from] ability: ' + effect, '[of] ' + source); - this.add('-message', 'It became winter!'); - }, - onModifySpe(spe, pokemon) { - if (!pokemon.hasType('Ice')) return this.chainModify(0.5); - }, - onFieldResidualOrder: 1, - onFieldResidual() { - this.add('-weather', 'Hail', '[upkeep]'); - if (this.field.isWeather('winterhail')) this.eachEvent('Weather'); - }, - onWeather(target) { - if (target.hasType('Ice')) return; - this.damage(target.baseMaxhp / 8); - }, - onFieldEnd() { - this.add('-weather', 'none'); - }, - }, - raindrop: { - name: 'Raindrop', - noCopy: true, - onStart(target) { - this.effectState.layers = 1; - this.effectState.def = 0; - this.effectState.spd = 0; - this.add('-start', target, 'Raindrop'); - this.add('-message', `${target.name} has ${this.effectState.layers} raindrop(s)!`); - const [curDef, curSpD] = [target.boosts.def, target.boosts.spd]; - this.boost({def: 1, spd: 1}, target, target); - if (curDef !== target.boosts.def) this.effectState.def--; - if (curSpD !== target.boosts.spd) this.effectState.spd--; - }, - onRestart(target) { - this.effectState.layers++; - this.add('-start', target, 'Raindrop'); - this.add('-message', `${target.name} has ${this.effectState.layers} raindrop(s)!`); - const curDef = target.boosts.def; - const curSpD = target.boosts.spd; - this.boost({def: 1, spd: 1}, target, target); - if (curDef !== target.boosts.def) this.effectState.def--; - if (curSpD !== target.boosts.spd) this.effectState.spd--; - }, - onEnd(target) { - if (this.effectState.def || this.effectState.spd) { - const boosts: SparseBoostsTable = {}; - if (this.effectState.def) boosts.def = this.effectState.def; - if (this.effectState.spd) boosts.spd = this.effectState.spd; - this.boost(boosts, target, target); - } - this.add('-end', target, 'Raindrop'); - if (this.effectState.def !== this.effectState.layers * -1 || this.effectState.spd !== this.effectState.layers * -1) { - this.hint("Raindrop keeps track of how many times it successfully altered each stat individually."); - } - }, - }, - // Brilliant Condition for Arcticblast - brilliant: { - name: 'Brilliant', - duration: 5, - onStart(pokemon) { - this.add('-start', pokemon, 'Brilliant'); - }, - onModifyAtk() { - return this.chainModify(1.5); - }, - onModifyDef() { - return this.chainModify(1.5); - }, - onModifySpA() { - return this.chainModify(1.5); - }, - onModifySpD() { - return this.chainModify(1.5); - }, - onModifySpe() { - return this.chainModify(1.5); - }, - onUpdate(pokemon) { - if (pokemon.volatiles['perishsong']) pokemon.removeVolatile('perishsong'); - }, - onTryAddVolatile(status) { - if (status.id === 'perishsong') return null; - }, - onResidualOrder: 7, - onResidual(pokemon) { - this.heal(pokemon.baseMaxhp / 16); - }, - onTrapPokemon(pokemon) { - pokemon.tryTrap(); - }, - onDragOut(pokemon) { - this.add('-activate', pokemon, 'move: Ingrain'); - return null; - }, - onEnd(pokemon) { - this.add('-end', pokemon, 'Brilliant'); - }, - }, - // Custom status for HoeenHero's move - stormsurge: { - name: "Storm Surge", - duration: 2, - durationCallback(target, source, effect) { - const windSpeeds = [65, 85, 95, 115, 140]; - return windSpeeds.indexOf((effect as ActiveMove).basePower) + 2; - }, - onSideStart(targetSide) { - this.add('-sidestart', targetSide, 'Storm Surge'); - this.add('-message', `Storm Surge flooded the afflicted side of the battlefield!`); - }, - onEnd(targetSide) { - this.add('-sideend', targetSide, 'Storm Surge'); - this.add('-message', 'The Storm Surge receded.'); - }, - onModifySpe() { - return this.chainModify(0.75); - }, - }, - // Kipkluif, needs to end in mod to not trigger aelita/andrew's effect - degeneratormod: { - onBeforeSwitchOut(pokemon) { - let alreadyAdded = false; - for (const source of this.effectState.sources) { - if (!source.hp || source.volatiles['gastroacid']) continue; - if (!alreadyAdded) { - const foe = pokemon.side.foe.active[0]; - if (foe) this.add('-activate', foe, 'ability: Degenerator'); - alreadyAdded = true; - } - this.damage((pokemon.baseMaxhp * 33) / 100, pokemon); - } - }, - }, - // For ravioliqueen - haunting: { - name: 'Haunting', - onTrapPokemon(pokemon) { - pokemon.tryTrap(); - }, - onStart(target) { - this.add('-start', target, 'Haunting'); - }, - onResidualOrder: 11, - onResidual(pokemon) { - this.damage(pokemon.baseMaxhp / 8); - }, - onEnd(pokemon) { - this.add('-end', pokemon, 'Haunting'); - }, - }, - // for pants' move - givewistfulthinking: { - duration: 1, - onSwitchInPriority: 1, - onSwitchIn(pokemon) { - pokemon.addVolatile('wistfulthinking'); - }, - }, - // focus punch effect for litt's move - nexthuntcheck: { - duration: 1, - onStart(pokemon) { - this.add('-singleturn', pokemon, 'move: /nexthunt'); - }, - onHit(pokemon, source, move) { - if (move.category !== 'Status') { - pokemon.volatiles['nexthuntcheck'].lostFocus = true; - } - }, - }, - // For Gmars' Effects - minior: { - noCopy: true, - name: 'Minior', - // Special Forme Effects - onBeforeMove(pokemon) { - if (pokemon.set.shiny) return; - if (pokemon.species.id === "miniorviolet") { - this.add(`${getName("GMars")} is thinking...`); - if (this.randomChance(1, 3)) { - this.add('cant', pokemon, 'ability: Truant'); - return false; - } - } - }, - onSwitchIn(pokemon) { - if (pokemon.set.shiny) return; - if (pokemon.species.id === 'miniorindigo') { - this.boost({atk: 1, spa: 1}, pokemon.side.foe.active[0]); - } else if (pokemon.species.id === 'miniorgreen') { - this.boost({atk: 1}, pokemon); - } - }, - onTryBoost(boost, target, source, effect) { - if (target.set.shiny) return; - if (source && target === source) return; - if (target.species.id !== 'miniorblue') return; - let showMsg = false; - let i: BoostID; - for (i in boost) { - if (boost[i]! < 0) { - delete boost[i]; - showMsg = true; - } - } - if (showMsg && !(effect as ActiveMove).secondaries && effect.id !== 'octolock') { - this.add('message', 'Minior is translucent!'); - } - }, - onFoeTryMove(target, source, move) { - if (move.id === 'haze' && target.species.id === 'miniorblue' && !target.set.shiny) { - move.onHitField = function (this: Battle) { - this.add('-clearallboost'); - for (const pokemon of this.getAllActive()) { - if (pokemon.species.id === 'miniorblue') continue; - pokemon.clearBoosts(); - } - }.bind(this); - return; - } - const dazzlingHolder = this.effectState.target; - if (!dazzlingHolder.set.shiny) return; - if (dazzlingHolder.species.id !== 'minior') return; - const targetAllExceptions = ['perishsong', 'flowershield', 'rototiller']; - if (move.target === 'foeSide' || (move.target === 'all' && !targetAllExceptions.includes(move.id))) { - return; - } - - if ((source.isAlly(dazzlingHolder) || move.target === 'all') && move.priority > 0.1) { - this.attrLastMove('[still]'); - this.add('message', 'Minior dazzles!'); - this.add('cant', target, move, '[of] ' + dazzlingHolder); - return false; - } - }, - }, - // modified paralysis for Inversion Terrain - par: { - name: 'par', - effectType: 'Status', - onStart(target, source, sourceEffect) { - if (sourceEffect && sourceEffect.effectType === 'Ability') { - this.add('-status', target, 'par', '[from] ability: ' + sourceEffect.name, '[of] ' + source); - } else { - this.add('-status', target, 'par'); - } - }, - onModifySpe(spe, pokemon) { - if (pokemon.hasAbility('quickfeet')) return; - if (this.field.isTerrain('inversionterrain') && pokemon.isGrounded()) { - return this.chainModify(2); - } - return this.chainModify(0.5); - }, - onBeforeMovePriority: 1, - onBeforeMove(pokemon) { - if (this.randomChance(1, 4)) { - this.add('cant', pokemon, 'par'); - return false; - } - }, - }, - bigstormcomingmod: { - name: "Big Storm Coming Mod", - duration: 1, - onBasePower() { - return this.chainModify([1229, 4096]); - }, - }, - - // condition used for brouha's ability - turbulence: { - name: 'Turbulence', - effectType: 'Weather', - duration: 0, - onFieldStart(field, source, effect) { - this.add('-weather', 'DeltaStream', '[from] ability: ' + effect, '[of] ' + source); - }, - onFieldResidualOrder: 1, - onFieldResidual() { - this.add('-weather', 'DeltaStream', '[upkeep]'); - this.eachEvent('Weather'); - }, - onWeather(target) { - if (!target.hasType('Flying')) this.damage(target.baseMaxhp * 0.06); - if (this.sides.some(side => Object.keys(side.sideConditions).length)) { - this.add(`-message`, 'The Turbulence blew away the hazards on both sides!'); - } - if (this.field.terrain) { - this.add(`-message`, 'The Turbulence blew away the terrain!'); - } - const silentRemove = ['reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist']; - for (const side of this.sides) { - const keys = Object.keys(side.sideConditions); - for (const key of keys) { - if (key.endsWith('mod') || key.endsWith('clause')) continue; - side.removeSideCondition(key); - if (!silentRemove.includes(key)) { - this.add('-sideend', side, this.dex.conditions.get(key).name, '[from] ability: Turbulence'); - } - } - } - this.field.clearTerrain(); - }, - onFieldEnd() { - this.add('-weather', 'none'); - }, - }, - // Modded rain dance for Kev's ability - raindance: { - name: 'RainDance', - effectType: 'Weather', - duration: 5, - durationCallback(source) { - let newDuration = 5; - let boostNum = 0; - if (source?.hasItem('damprock')) { - newDuration = 8; - } - if (source?.hasAbility('kingofatlantis')) { - for (const teammate of source.side.pokemon) { - if (teammate.hasType('Water') && teammate !== source) { - boostNum++; - } - } - } - return newDuration + boostNum; - }, - onWeatherModifyDamage(damage, attacker, defender, move) { - if (defender.hasItem('utilityumbrella')) return; - if (move.type === 'Water') { - this.debug('rain water boost'); - return this.chainModify(1.5); - } - if (move.type === 'Fire') { - this.debug('rain fire suppress'); - return this.chainModify(0.5); - } - }, - onFieldStart(field, source, effect) { - if (effect?.effectType === 'Ability') { - if (this.gen <= 5) this.effectState.duration = 0; - this.add('-weather', 'RainDance', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-weather', 'RainDance'); - } - }, - onFieldResidualOrder: 1, - onFieldResidual() { - this.add('-weather', 'RainDance', '[upkeep]'); - this.eachEvent('Weather'); - }, - onFieldEnd() { - this.add('-weather', 'none'); - }, - }, - // Modded hazard moves to fail when Wave terrain is active - auroraveil: { - name: "Aurora Veil", - duration: 5, - durationCallback(target, source) { - if (source?.hasItem('lightclay')) { - return 8; - } - return 5; - }, - onAnyModifyDamage(damage, source, target, move) { - if (target !== source && this.effectState.target.hasAlly(target)) { - if ((target.side.getSideCondition('reflect') && this.getCategory(move) === 'Physical') || - (target.side.getSideCondition('lightscreen') && this.getCategory(move) === 'Special')) { - return; - } - if (!target.getMoveHitData(move).crit && !move.infiltrates) { - this.debug('Aurora Veil weaken'); - if (this.activePerHalf > 1) return this.chainModify([2732, 4096]); - return this.chainModify(0.5); - } - } - }, - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Aurora Veil from starting!`); - return null; - } - this.add('-sidestart', side, 'move: Aurora Veil'); - }, - onSideResidualOrder: 21, - onSideResidualSubOrder: 1, - onSideEnd(side) { - this.add('-sideend', side, 'move: Aurora Veil'); - }, - }, - lightscreen: { - name: "Light Screen", - duration: 5, - durationCallback(target, source) { - if (source?.hasItem('lightclay')) { - return 8; - } - return 5; - }, - onAnyModifyDamage(damage, source, target, move) { - if (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Special') { - if (!target.getMoveHitData(move).crit && !move.infiltrates) { - this.debug('Light Screen weaken'); - if (this.activePerHalf > 1) return this.chainModify([2732, 4096]); - return this.chainModify(0.5); - } - } - }, - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Light Screen from starting!`); - return null; - } - this.add('-sidestart', side, 'move: Light Screen'); - }, - onSideResidualOrder: 21, - onSideResidualSubOrder: 1, - onSideEnd(side) { - this.add('-sideend', side, 'move: Light Screen'); - }, - }, - mist: { - name: "Mist", - duration: 5, - onTryBoost(boost, target, source, effect) { - if (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return; - if (source && target !== source) { - let showMsg = false; - let i: BoostID; - for (i in boost) { - if (boost[i]! < 0) { - delete boost[i]; - showMsg = true; - } - } - if (showMsg && !(effect as ActiveMove).secondaries) { - this.add('-activate', target, 'move: Mist'); - } - } - }, - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Mist from starting!`); - return null; - } - this.add('-sidestart', side, 'move: Mist'); - }, - onSideResidualOrder: 21, - onSideResidualSubOrder: 3, - onSideEnd(side) { - this.add('-sideend', side, 'Mist'); - }, - }, - reflect: { - name: "Reflect", - duration: 5, - durationCallback(target, source) { - if (source?.hasItem('lightclay')) { - return 8; - } - return 5; - }, - onAnyModifyDamage(damage, source, target, move) { - if (target !== source && this.effectState.target.hasAlly(target) && this.getCategory(move) === 'Physical') { - if (!target.getMoveHitData(move).crit && !move.infiltrates) { - this.debug('Reflect weaken'); - if (this.activePerHalf > 1) return this.chainModify([2732, 4096]); - return this.chainModify(0.5); - } - } - }, - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Reflect from starting!`); - return null; - } - this.add('-sidestart', side, 'Reflect'); - }, - onSideResidualOrder: 21, - onSideEnd(side) { - this.add('-sideend', side, 'Reflect'); - }, - }, - safeguard: { - name: "Safeguard", - duration: 5, - durationCallback(target, source, effect) { - if (source?.hasAbility('persistent')) { - this.add('-activate', source, 'ability: Persistent', effect); - return 7; - } - return 5; - }, - onSetStatus(status, target, source, effect) { - if (!effect || !source) return; - if (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return; - if (target !== source) { - this.debug('interrupting setStatus'); - if (effect.id === 'synchronize' || (effect.effectType === 'Move' && !effect.secondaries)) { - this.add('-activate', target, 'move: Safeguard'); - } - return null; - } - }, - onTryAddVolatile(status, target, source, effect) { - if (!effect || !source) return; - if (effect.effectType === 'Move' && effect.infiltrates && !target.isAlly(source)) return; - if ((status.id === 'confusion' || status.id === 'yawn') && target !== source) { - if (effect.effectType === 'Move' && !effect.secondaries) this.add('-activate', target, 'move: Safeguard'); - return null; - } - }, - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Safeguard from starting!`); - return null; - } - this.add('-sidestart', side, 'move: Safeguard'); - }, - onSideResidualOrder: 21, - onSideResidualSubOrder: 2, - onSideEnd(side) { - this.add('-sideend', side, 'Safeguard'); - }, - }, - gmaxsteelsurge: { - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Steel Spikes from starting!`); - return null; - } - this.add('-sidestart', side, 'move: G-Max Steelsurge'); - }, - onEntryHazard(pokemon) { - if (pokemon.hasItem('heavydutyboots')) return; - // Ice Face and Disguise correctly get typed damage from Stealth Rock - // because Stealth Rock bypasses Substitute. - // They don't get typed damage from Steelsurge because Steelsurge doesn't, - // so we're going to test the damage of a Steel-type Stealth Rock instead. - const steelHazard = this.dex.getActiveMove('Stealth Rock'); - steelHazard.type = 'Steel'; - const typeMod = this.clampIntRange(pokemon.runEffectiveness(steelHazard), -6, 6); - this.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8); - }, - }, - spikes: { - name: "Spikes", - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Spikes from starting!`); - return null; - } - this.effectState.layers = 1; - this.add('-sidestart', side, 'move: Spikes'); - }, - onSideRestart(side) { - if (this.effectState.layers >= 3) return false; - this.add('-sidestart', side, 'Spikes'); - this.effectState.layers++; - }, - onEntryHazard(pokemon) { - if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return; - const damageAmounts = [0, 3, 4, 6]; // 1/8, 1/6, 1/4 - this.damage(damageAmounts[this.effectState.layers] * pokemon.maxhp / 24); - }, - }, - stealthrock: { - name: "Stealth Rock", - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Stealth Rock from starting!`); - return null; - } - this.add('-sidestart', side, 'move: Stealth Rock'); - }, - onEntryHazard(pokemon) { - if (pokemon.hasItem('heavydutyboots')) return; - const typeMod = this.clampIntRange(pokemon.runEffectiveness(this.dex.getActiveMove('stealthrock')), -6, 6); - this.damage(pokemon.maxhp * Math.pow(2, typeMod) / 8); - }, - }, - stickyweb: { - name: "Sticky Web", - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Sticky Web from starting!`); - return null; - } - this.add('-sidestart', side, 'move: Sticky Web'); - }, - onEntryHazard(pokemon) { - if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return; - this.add('-activate', pokemon, 'move: Sticky Web'); - this.boost({spe: -1}, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb')); - }, - }, - toxicspikes: { - name: "Toxic Spikes", - onSideStart(side) { - if (this.field.isTerrain('waveterrain')) { - this.add('-message', `Wave Terrain prevented Toxic Spikes from starting!`); - return null; - } - this.add('-sidestart', side, 'move: Toxic Spikes'); - this.effectState.layers = 1; - }, - onSideRestart(side) { - if (this.effectState.layers >= 2) return false; - this.add('-sidestart', side, 'move: Toxic Spikes'); - this.effectState.layers++; - }, - onEntryHazard(pokemon) { - if (!pokemon.isGrounded()) return; - if (pokemon.hasType('Poison')) { - this.add('-sideend', pokemon.side, 'move: Toxic Spikes', '[of] ' + pokemon); - pokemon.side.removeSideCondition('toxicspikes'); - } else if (pokemon.hasType('Steel') || pokemon.hasItem('heavydutyboots')) { - return; - } else if (this.effectState.layers >= 2) { - pokemon.trySetStatus('tox', pokemon.side.foe.active[0]); - } else { - pokemon.trySetStatus('psn', pokemon.side.foe.active[0]); - } - }, - }, - frz: { - inherit: true, - onHit(target, source, move) { - if (move.thawsTarget || move.type === 'Fire' && move.category !== 'Status') { - target.cureStatus(); - if (move.id === 'randomscreaming') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|Give me some more paaain, baaaby`); - } - } - }, - }, - // No, you're not dynamaxing. - dynamax: { - inherit: true, - onStart(pokemon) { - pokemon.removeVolatile('minimize'); - pokemon.removeVolatile('substitute'); - if (pokemon.volatiles['torment']) { - delete pokemon.volatiles['torment']; - this.add('-end', pokemon, 'Torment', '[silent]'); - } - if (['cramorantgulping', 'cramorantgorging'].includes(pokemon.species.id) && !pokemon.transformed) { - pokemon.formeChange('cramorant'); - } - this.add('-start', pokemon, 'Dynamax'); - if (pokemon.gigantamax) this.add('-formechange', pokemon, pokemon.species.name + '-Gmax'); - if (pokemon.baseSpecies.name !== 'Shedinja') { - // Changes based on dynamax level, 2 is max (at LVL 10) - const ratio = this.format.id.startsWith('gen8doublesou') ? 1.5 : 2; - - pokemon.maxhp = Math.floor(pokemon.maxhp * ratio); - pokemon.hp = Math.floor(pokemon.hp * ratio); - - this.add('-heal', pokemon, pokemon.getHealth, '[silent]'); - } - this.add('-message', 'Ok. sure. Dynamax. Just abuse it and win the game already.'); - // This is just for fun, as dynamax cannot be in a rated battle. - this.win(pokemon.side); - }, - }, - echoedvoiceclone: { - duration: 2, - onFieldStart() { - this.effectState.multiplier = 1; - }, - onFieldRestart() { - if (this.effectState.duration !== 2) { - this.effectState.duration = 2; - if (this.effectState.multiplier < 5) { - this.effectState.multiplier++; - } - } - }, - }, -}; diff --git a/data/mods/ssb/items.ts b/data/mods/ssb/items.ts deleted file mode 100644 index 91b86e9baaaa..000000000000 --- a/data/mods/ssb/items.ts +++ /dev/null @@ -1,45 +0,0 @@ -export const Items: {[k: string]: ModdedItemData} = { - // Alpha - caioniumz: { - name: "Caionium Z", - onTakeItem: false, - zMove: "Blistering Ice Age", - zMoveFrom: "Blizzard", - itemUser: ["Aurorus"], - gen: 8, - desc: "If held by an Aurorus with Blizzard, it can use Blistering Ice Age.", - }, - - // A Quag To The Past - quagniumz: { - name: "Quagnium Z", - onTakeItem: false, - zMove: "Bounty Place", - zMoveFrom: "Scorching Sands", - itemUser: ["Quagsire"], - gen: 8, - desc: "If held by a Quagsire with Scorching Sands, it can use Bounty Place.", - }, - - // Kalalokki - kalalokkiumz: { - name: "Kalalokkium Z", - onTakeItem: false, - zMove: "Gaelstrom", - zMoveFrom: "Blackbird", - itemUser: ["Wingull"], - gen: 8, - desc: "If held by a Wingull with Blackbird, it can use Gaelstrom.", - }, - - // Robb576 - modium6z: { - name: "Modium-6 Z", - onTakeItem: false, - zMove: "Integer Overflow", - zMoveFrom: "Photon Geyser", - itemUser: ["Necrozma-Ultra"], - gen: 8, - desc: "If held by a Robb576 with Photon Geyser, it can use Integer Overflow.", - }, -}; diff --git a/data/mods/ssb/moves.ts b/data/mods/ssb/moves.ts deleted file mode 100644 index 6d51e5a6e5da..000000000000 --- a/data/mods/ssb/moves.ts +++ /dev/null @@ -1,5376 +0,0 @@ -import {getName} from './conditions'; -import {changeSet, changeMoves} from "./abilities"; -import {ssbSets} from "./random-teams"; - -export const Moves: {[k: string]: ModdedMoveData} = { - /* - // Example - moveid: { - accuracy: 100, // a number or true for always hits - basePower: 100, // Not used for Status moves, base power of the move, number - category: "Physical", // "Physical", "Special", or "Status" - desc: "", // long description - shortDesc: "", // short description, shows up in /dt - name: "Move Name", - gen: 8, - pp: 10, // unboosted PP count - priority: 0, // move priority, -6 -> 6 - flags: {}, // Move flags https://github.com/smogon/pokemon-showdown/blob/master/data/moves.js#L1-L27 - onTryMove() { - this.attrLastMove('[still]'); // For custom animations - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Move Name 1', source); - this.add('-anim', source, 'Move Name 2', source); - }, // For custom animations - secondary: { - status: "tox", - chance: 20, - }, // secondary, set to null to not use one. Exact usage varies, check data/moves.js for examples - target: "normal", // What does this move hit? - // normal = the targeted foe, self = the user, allySide = your side (eg light screen), foeSide = the foe's side (eg spikes), all = the field (eg raindance). More can be found in data/moves.js - type: "Water", // The move's type - // Other useful things - noPPBoosts: true, // add this to not boost the PP of a move, not needed for Z moves, dont include it otherwise - isZ: "crystalname", // marks a move as a z move, list the crystal name inside - zMove: {effect: ''}, // for status moves, what happens when this is used as a Z move? check data/moves.js for examples - zMove: {boost: {atk: 2}}, // for status moves, stat boost given when used as a z move - critRatio: 2, // The higher the number (above 1) the higher the ratio, lowering it lowers the crit ratio - drain: [1, 2], // recover first num / second num % of the damage dealt - heal: [1, 2], // recover first num / second num % of the target's HP - }, - */ - // Please keep sets organized alphabetically based on staff member name! - // Abdelrahman - thetownoutplay: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Sets Trick Room and has 10% chance to burn the opponent.", - shortDesc: "Sets Trick Room. 10% chance to burn.", - name: "The Town Outplay", - gen: 8, - pp: 5, - priority: -5, - flags: {}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Trick Room', target); - }, - onHit(target, source, move) { - if (this.randomChance(1, 10)) { - for (const foe of source.foes()) { - foe.trySetStatus('brn', source); - } - } - }, - pseudoWeather: 'trickroom', - secondary: null, - target: "self", - type: "Fire", - }, - - // Adri - skystriker: { - accuracy: 100, - basePower: 50, - category: "Special", - desc: "If this move is successful and the user has not fainted, the effects of Leech Seed and binding moves end for the user, and all hazards are removed from the user's side of the field. Raises the user's Speed by 1 stage.", - shortDesc: "Free user from hazards/bind/Leech Seed; +1 Spe.", - name: "Skystriker", - gen: 8, - pp: 30, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Aerial Ace', target); - }, - onAfterHit(target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Skystriker', '[of] ' + pokemon); - } - const sideConditions = [ - 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', - ]; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Skystriker', '[of] ' + pokemon); - } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); - } - }, - onAfterSubDamage(damage, target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Skystriker', '[of] ' + pokemon); - } - const sideConditions = [ - 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', - ]; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Skystriker', '[of] ' + pokemon); - } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); - } - }, - self: { - boosts: { - spe: 1, - }, - }, - secondary: null, - target: "normal", - type: "Flying", - }, - - // aegii - reset: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "This move acts as King's Shield for the purpose of Stance Change. The user is protected from most attacks this turn, but not status moves. Reduces the opponent's relevant attacking stat by 1 if they attempt to use a Special or contact move. If the user is Aegislash, changes the user's set from Physical to Special or Special to Physical.", - shortDesc: "King's Shield; -1 offense stat on hit; change set.", - name: "Reset", - gen: 8, - pp: 10, - priority: 4, - flags: {}, - stallingMove: true, - volatileStatus: 'reset', - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this .add('-anim', source, 'Petal Dance', target); - this .add('-anim', source, 'King\'s Shield', source); - }, - onTryHit(pokemon) { - return !!this.queue.willAct() && this.runEvent('StallMove', pokemon); - }, - onHit(pokemon) { - pokemon.addVolatile('stall'); - if (pokemon.species.baseSpecies === 'Aegislash') { - let specialSet = pokemon.moves.includes('shadowball'); - changeSet(this, pokemon, ssbSets[specialSet ? 'aegii' : 'aegii-Alt']); - specialSet = pokemon.moves.includes('shadowball'); - const setType = specialSet ? 'specially' : 'physically'; - this.add('-message', `aegii now has a ${setType} oriented set.`); - } - }, - condition: { - duration: 1, - onStart(target) { - this.add('-singleturn', target, 'Protect'); - }, - onTryHitPriority: 3, - onTryHit(target, source, move) { - if (!move.flags['protect'] || move.category === 'Status') { - if (move.isZ || (move.isMax && !move.breaksProtect)) target.getMoveHitData(move).zBrokeProtect = true; - return; - } - if (move.smartTarget) { - move.smartTarget = false; - } else { - this.add('-activate', target, 'move: Protect'); - } - const lockedmove = source.getVolatile('lockedmove'); - if (lockedmove) { - // Outrage counter is reset - if (source.volatiles['lockedmove'].duration === 2) { - delete source.volatiles['lockedmove']; - } - } - if (move.category === "Special") { - this.boost({spa: -1}, source, target, this.dex.getActiveMove("Reset")); - } else if (move.category === "Physical" && move.flags["contact"]) { - this.boost({atk: -1}, source, target, this.dex.getActiveMove("Reset")); - } - return this.NOT_FAIL; - }, - }, - secondary: null, - target: "self", - type: "Steel", - }, - - // Aelita - xanaskeystolyoko: { - accuracy: 100, - basePower: 20, - basePowerCallback(pokemon, target, move) { - return move.basePower + 20 * pokemon.positiveBoosts(); - }, - category: "Physical", - desc: "Power is equal to 20+(X*20), where X is the user's total stat stage changes that are greater than 0. User raises a random stat if it has less than 5 positive stat changes.", - shortDesc: "+20 power/boost. +1 random stat if < 5 boosts.", - name: "XANA's Keys To Lyoko", - gen: 8, - pp: 40, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Draco Meteor', target); - }, - self: { - onHit(pokemon) { - if (pokemon.positiveBoosts() < 5) { - const stats: BoostID[] = []; - let stat: BoostID; - for (stat in pokemon.boosts) { - if (!['accuracy', 'evasion'].includes(stat) && pokemon.boosts[stat] < 6) { - stats.push(stat); - } - } - if (stats.length) { - const randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - this.boost(boost); - } - } - }, - }, - secondary: null, - target: "normal", - type: "Dragon", - }, - - // Aeonic - lookingcool: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Sets up Stealth Rock on the opposing side of the field and boosts the user's Attack by 2 stages. Can only be used once per the user's time on the field.", - shortDesc: "1 use per switch-in. +2 Atk + Stealth Rock.", - name: "Looking Cool", - gen: 8, - pp: 5, - priority: 0, - flags: {snatch: 1}, - volatileStatus: 'lookingcool', - onTryMove(target) { - if (target.volatiles['lookingcool']) return false; - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - const foe = source.side.foe.active[0]; - this.add('-anim', source, 'Smokescreen', source); - this.add('-anim', source, 'Stealth Rock', foe); - }, - onHit(target, source, move) { - const foe = source.side.foe; - if (!foe.getSideCondition('stealthrock')) { - foe.addSideCondition('stealthrock'); - } - }, - boosts: { - atk: 2, - }, - secondary: null, - target: "self", - type: "Dark", - }, - - // Aethernum - lilypadoverflow: { - accuracy: 100, - basePower: 62, - basePowerCallback(source, target, move) { - if (!source.volatiles['raindrop']?.layers) return move.basePower; - return move.basePower + (source.volatiles['raindrop'].layers * 20); - }, - category: "Special", - desc: "Power is equal to 62 + (Number of Raindrops collected * 20). Whether or not this move is successful, the user's Defense and Special Defense decrease by as many stages as Raindrop had increased them, and the user's Raindrop count resets to 0.", - shortDesc: "More power per Raindrop. Lose Raindrops.", - name: "Lilypad Overflow", - gen: 8, - pp: 5, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Water Spout', target); - this.add('-anim', source, 'Max Geyser', target); - }, - onAfterMove(pokemon) { - if (pokemon.volatiles['raindrop']) pokemon.removeVolatile('raindrop'); - }, - secondary: null, - target: "normal", - type: "Water", - }, - - // Akir - ravelin: { - accuracy: 100, - basePower: 70, - category: "Physical", - desc: "Heals 50% of the user's max HP; Sets up Light Screen for 5 turns on the user's side.", - shortDesc: "Recover + Light Screen.", - name: "Ravelin", - gen: 8, - pp: 5, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, heal: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Aura Sphere', target); - this.add('-anim', source, 'Protect', source); - }, - onAfterMoveSecondarySelf(pokemon, target, move) { - this.heal(pokemon.maxhp / 2, pokemon, pokemon, move); - if (pokemon.side.getSideCondition('lightscreen')) return; - pokemon.side.addSideCondition('lightscreen'); - }, - secondary: null, - target: "normal", - type: "Steel", - }, - - // Alpha - blisteringiceage: { - accuracy: true, - basePower: 190, - category: "Special", - desc: "User's ability becomes Ice Age, and the weather becomes an extremely heavy hailstorm that prevents damaging Steel-type moves from executing, causes Ice-type moves to be 50% stronger, causes all non-Ice-type Pokemon on the opposing side to take 1/8 damage from hail, and causes all moves to have a 10% chance to freeze. This weather bypasses Magic Guard and Overcoat. This weather remains in effect until the 3 turns are up, or the weather is changed by Delta Stream, Desolate Land, or Primordial Sea.", - shortDesc: "Weather: Steel fail. 1.5x Ice.", - name: "Blistering Ice Age", - gen: 8, - pp: 1, - noPPBoosts: true, - priority: 0, - flags: {}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Hail', target); - this.add('-anim', target, 'Subzero Slammer', target); - this.add('-anim', source, 'Subzero Slammer', source); - }, - onAfterMove(source) { - source.baseAbility = 'iceage' as ID; - source.setAbility('iceage'); - this.add('-ability', source, source.getAbility().name, '[from] move: Blistering Ice Age'); - }, - isZ: "caioniumz", - secondary: null, - target: "normal", - type: "Ice", - }, - - // Andrew - whammerjammer: { - accuracy: 100, - basePower: 60, - category: "Special", - desc: "If this move is successful, the user switches out and all field conditions (entry hazards, terrains, weathers, screens, etc.) are removed from both sides.", - shortDesc: "Removes field conditions, switches out.", - name: "Whammer Jammer", - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Shadow Ball', target); - }, - onHit(target, source, move) { - const removeAll = [ - 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', - 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', - ]; - const silentRemove = ['reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist']; - for (const sideCondition of removeAll) { - if (target.side.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', target.side, this.dex.conditions.get(sideCondition).name, '[from] move: Whammer Jammer', '[of] ' + source); - } - } - if (source.side.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Whammer Jammer', '[of] ' + source); - } - } - } - this.field.clearWeather(); - this.field.clearTerrain(); - for (const clear in this.field.pseudoWeather) { - if (clear.endsWith('mod') || clear.endsWith('clause')) continue; - this.field.removePseudoWeather(clear); - } - }, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Ghost", - }, - - // Annika - datacorruption: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Replaces the target's moveset with four vaguely competitively viable moves. 100% chance to cause the target to flinch. Fails unless it is the user's first turn on the field.", - shortDesc: "First Turn: Gives foe 4 new moves; flinches.", - name: "Data Corruption", - gen: 8, - pp: 1, - noPPBoosts: true, - flags: {bypasssub: 1, reflectable: 1}, - priority: 3, - onTry(pokemon, target) { - if (pokemon.activeMoveActions > 1) { - this.attrLastMove('[still]'); - this.add('-fail', pokemon); - this.hint("Data Corruption only works on your first turn out."); - return null; - } - }, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', target, 'Shift Gear', target); - this.add('-anim', source, 'Plasma Fists', target); - this.add('-anim', target, 'Nasty Plot', target); - }, - onHit(target, source) { - this.add('-message', `${source.name} corrupted the opposing ${target.name}'s data storage!`); - // Ran from a script - const possibleMoves = [ - "agility", "anchorshot", "appleacid", "aquatail", "aromatherapy", "attackorder", "aurasphere", "autotomize", "banefulbunker", - "behemothbash", "behemothblade", "bellydrum", "blazekick", "blizzard", "blueflare", "bodypress", "bodyslam", - "boltbeak", "boltstrike", "boomburst", "bravebird", "bugbuzz", "bulkup", "calmmind", "circlethrow", "clangingscales", - "clangoroussoul", "clearsmog", "closecombat", "coil", "cottonguard", "courtchange", "crabhammer", "crosschop", "crunch", - "curse", "darkestlariat", "darkpulse", "dazzlinggleam", "defog", "destinybond", "disable", "discharge", "doomdesire", - "doubleedge", "doubleironbash", "dracometeor", "dragonclaw", "dragondance", "dragondarts", "dragonhammer", "dragonpulse", - "dragontail", "drainingkiss", "drillpeck", "drillrun", "drumbeating", "dynamaxcannon", "earthpower", "earthquake", - "encore", "energyball", "eruption", "expandingforce", "explosion", "extrasensory", "extremespeed", "facade", - "fierydance", "fireblast", "firelash", "fishiousrend", "flamethrower", "flareblitz", "flashcannon", "fleurcannon", - "flipturn", "focusblast", "foulplay", "freezedry", "fusionbolt", "fusionflare", "futuresight", "geargrind", "glare", - "grassknot", "gravapple", "gunkshot", "gyroball", "haze", "headsmash", "healbell", "healingwish", "heatwave", - "hex", "highhorsepower", "highjumpkick", "honeclaws", "hurricane", "hydropump", "hypervoice", "icebeam", "iciclecrash", - "irondefense", "ironhead", "kingsshield", "knockoff", "lavaplume", "leafblade", "leafstorm", "leechlife", - "leechseed", "lightscreen", "liquidation", "lowkick", "lunge", "magiccoat", "megahorn", "memento", "meteormash", - "milkdrink", "moonblast", "moongeistbeam", "moonlight", "morningsun", "muddywater", "multiattack", "nastyplot", - "nightdaze", "nightshade", "noretreat", "nuzzle", "obstruct", "outrage", "overdrive", "overheat", "painsplit", - "poltergeist", "partingshot", "perishsong", "petalblizzard", "photongeyser", "plasmafists", "playrough", "poisonjab", - "pollenpuff", "powergem", "powerwhip", "protect", "psychic", "psychicfangs", "psyshock", "psystrike", "pursuit", - "pyroball", "quiverdance", "rapidspin", "recover", "reflect", "rest", "return", "roar", "rockpolish", "roost", - "sacredsword", "scald", "scorchingsands", "secretsword", "seedbomb", "seismictoss", "selfdestruct", "shadowball", - "shadowbone", "shadowclaw", "shellsidearm", "shellsmash", "shiftgear", "skullbash", "skyattack", "slackoff", - "slam", "sleeppowder", "sleeptalk", "sludgebomb", "sludgewave", "snipeshot", "softboiled", "sparklingaria", - "spectralthief", "spikes", "spikyshield", "spiritshackle", "spore", "stealthrock", "stickyweb", "stoneedge", "stormthrow", - "strangesteam", "strengthsap", "substitute", "suckerpunch", "sunsteelstrike", "superpower", "surf", "surgingstrikes", - "switcheroo", "swordsdance", "synthesis", "tailwind", "takedown", "taunt", "throatchop", "thunder", "thunderbolt", - "thunderwave", "toxic", "toxicspikes", "transform", "triattack", "trick", "tripleaxel", "uturn", "vcreate", - "voltswitch", "volttackle", "waterfall", "waterspout", "whirlwind", "wickedblow", "wildcharge", "willowisp", - "wish", "woodhammer", "xscissor", "yawn", "zenheadbutt", "zingzap", - ]; - const newMoves = []; - for (let i = 0; i < 4; i++) { - const moveIndex = this.random(possibleMoves.length); - newMoves.push(possibleMoves[moveIndex]); - possibleMoves.splice(moveIndex, 1); - } - const newMoveSlots = changeMoves(this, target, newMoves); - target.m.datacorrupt = true; - target.moveSlots = newMoveSlots; - // @ts-ignore - target.baseMoveSlots = newMoveSlots; - }, - secondary: { - chance: 100, - volatileStatus: 'flinch', - }, - target: "adjacentFoe", - type: "Psychic", - }, - - // A Quag To The Past - bountyplace: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Puts a bounty on the target. If the target is KOed by a direct attack, the attacker will gain +1 Attack, Defense, Special Attack, Special Defense, and Speed.", - shortDesc: "If target is ever KOed, attacker omniboosts.", - name: "Bounty Place", - gen: 8, - pp: 1, - noPPBoosts: true, - priority: 0, - flags: {bypasssub: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Pay Day', target); - this.add('-anim', source, 'Block', target); - }, - onHit(target, source, move) { - // See formats.ts for implementation - target.m.hasBounty = true; - this.add('-start', target, 'bounty', '[silent]'); - this.add('-message', `${source.name} placed a bounty on ${target.name}!`); - }, - isZ: "quagniumz", - secondary: null, - target: "normal", - type: "Ground", - }, - - // Arby - quickhammer: { - accuracy: 100, - basePower: 40, - category: "Special", - desc: "Usually moves first (Priority +1). If this move KOes the opponent, the user gains +2 Special Attack. Otherwise, the user gains -1 Defense and Special Defense.", - shortDesc: "+1 Prio. +2 SpA if KO, -1 Def/SpD if not.", - name: "Quickhammer", - gen: 8, - pp: 10, - priority: 1, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Crabhammer', target); - }, - onAfterMoveSecondarySelf(pokemon, target, move) { - if (!target || target.fainted || target.hp <= 0) { - this.boost({spa: 2}, pokemon, pokemon, move); - } else { - this.boost({def: -1, spd: -1}, pokemon, pokemon, move); - } - }, - secondary: null, - target: "normal", - type: "Water", - }, - - // used for Arby's ability - waveterrain: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "For 5 turns, the terrain becomes Wave Terrain. During the effect, the accuracy of Water type moves is multiplied by 1.2, even if the user is not grounded. Hazards and screens are removed and cannot be set while Wave Terrain is active. Fails if the current terrain is Inversion Terrain.", - shortDesc: "5 turns. Removes hazards. Water move acc 1.2x.", - name: "Wave Terrain", - gen: 8, - pp: 10, - priority: 0, - flags: {}, - terrain: 'waveterrain', - condition: { - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('terrainextender')) { - return 8; - } - return 5; - }, - onModifyAccuracy(accuracy, target, source, move) { - if (move.type === 'Water') { - return this.chainModify(1.2); - } - }, - onFieldStart(field, source, effect) { - if (effect && effect.effectType === 'Ability') { - this.add('-fieldstart', 'move: Wave Terrain', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-fieldstart', 'move: Wave Terrain'); - } - this.add('-message', 'The battlefield suddenly flooded!'); - const removeAll = [ - 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', 'spikes', - 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', - ]; - const silentRemove = ['reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist']; - for (const sideCondition of removeAll) { - if (source.side.foe.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', source.side.foe, this.dex.conditions.get(sideCondition).name, '[from] move: Wave Terrain', '[of] ' + source); - } - } - if (source.side.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Wave Terrain', '[of] ' + source); - } - } - } - this.add('-message', `Hazards were removed by the terrain!`); - }, - onFieldResidualOrder: 21, - onFieldResidualSubOrder: 3, - onFieldEnd() { - this.add('-fieldend', 'move: Wave Terrain'); - }, - }, - secondary: null, - target: "all", - type: "Water", - }, - - // Archas - broadsidebarrage: { - accuracy: 90, - basePower: 30, - category: "Physical", - desc: "Hits 4 times. If one hit breaks the target's substitute, it will take damage for the remaining hits. This move is super effective against Steel-type Pokemon.", - shortDesc: "Hits 4 times. Super effective on Steel.", - name: "Broadside Barrage", - gen: 8, - pp: 5, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', target, 'Close Combat', target); - this.add('-anim', target, 'Earthquake', target); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Archas')}|Fire all guns! Fiiiiire!`); - }, - onEffectiveness(typeMod, target, type) { - if (type === 'Steel') return 1; - }, - multihit: 4, - secondary: null, - target: "normal", - type: "Steel", - }, - - // Arcticblast - radiantburst: { - accuracy: 100, - basePower: 180, - category: "Special", - desc: "User gains Brilliant if not Brilliant without attacking. User attacks and loses Brilliant if Brilliant. Being Brilliant multiplies all stats by 1.5 and grants Perish Song immunity and Ingrain. This move loses priority if the user is already brilliant.", - shortDesc: "Gain or lose Brilliant. Attack if Brilliant.", - name: "Radiant Burst", - gen: 8, - pp: 10, - priority: 1, - flags: {protect: 1, snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onTry(source, target) { - if (!source.volatiles['brilliant']) { - this.add('-anim', source, 'Recover', source); - source.addVolatile('brilliant'); - return null; - } - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Diamond Storm', target); - }, - onModifyPriority(priority, source, target, move) { - if (source.volatiles['brilliant']) return 0; - }, - onModifyMove(move, source) { - if (!source.volatiles['brilliant']) { - move.accuracy = true; - move.target = "self"; - delete move.flags.protect; - move.flags.bypasssub = 1; - } - }, - onHit(target, pokemon) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Arcticblast')}|YEET`); - if (pokemon.volatiles['brilliant']) pokemon.removeVolatile('brilliant'); - }, - secondary: null, - target: "normal", - type: "Fairy", - }, - - // awa - awa: { - accuracy: 100, - basePower: 90, - category: "Physical", - desc: "Sets up Sandstorm.", - shortDesc: "Sets up Sandstorm.", - name: "awa!", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Let\'s Snuggle Forever', target); - }, - weather: 'sandstorm', - secondary: null, - target: "normal", - type: "Rock", - }, - - // Beowulf - buzzinspection: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user gains the ability Compound Eyes for the remainder of the battle and then switches out", - shortDesc: "Gains Compound Eyes and switches.", - name: "Buzz Inspection", - gen: 8, - pp: 10, - priority: 0, - flags: {}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Night Shade', source); - }, - onHit(pokemon) { - pokemon.baseAbility = 'compoundeyes' as ID; - pokemon.setAbility('compoundeyes'); - this.add('-ability', pokemon, pokemon.getAbility().name, '[from] move: Buzz Inspection'); - }, - selfSwitch: true, - secondary: null, - target: "self", - type: "Bug", - }, - - // biggie - juggernautpunch: { - accuracy: 100, - basePower: 150, - category: "Physical", - desc: "The user loses its focus and does nothing if it is hit by a damaging attack equal to or greater than 20% of the user's maxmimum HP this turn before it can execute the move.", - shortDesc: "Fails if the user takes ≥20% before it hits.", - name: "Juggernaut Punch", - gen: 8, - pp: 20, - priority: -3, - flags: {contact: 1, protect: 1, punch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Focus Punch', target); - }, - beforeTurnCallback(pokemon) { - pokemon.addVolatile('juggernautpunch'); - }, - beforeMoveCallback(pokemon) { - if (pokemon.volatiles['juggernautpunch'] && pokemon.volatiles['juggernautpunch'].lostFocus) { - this.add('cant', pokemon, 'Juggernaut Punch', 'Juggernaut Punch'); - return true; - } - }, - condition: { - duration: 1, - onStart(pokemon) { - this.add('-singleturn', pokemon, 'move: Juggernaut Punch'); - }, - onDamagePriority: -101, - onDamage(damage, target, source, effect) { - if (effect.effectType !== 'Move') return; - if (damage > target.baseMaxhp / 5) { - target.volatiles['juggernautpunch'].lostFocus = true; - } - }, - }, - secondary: null, - target: "normal", - type: "Fighting", - }, - - // Billo - fishingforhacks: { - accuracy: 100, - basePower: 80, - category: "Special", - desc: "Knocks off opponent's item and randomly sets Stealth Rocks, Spikes, or Toxic Spikes.", - shortDesc: "Knock off foe's item. Set random hazard.", - name: "Fishing for Hacks", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Mist Ball', target); - }, - onAfterHit(target, source) { - if (source.hp) { - const item = target.takeItem(source); - if (item) { - this.add('-enditem', target, item.name, '[from] move: Fishing for Hacks', '[of] ' + source); - } - } - const hazard = this.sample(['Stealth Rock', 'Spikes', 'Toxic Spikes']); - target.side.addSideCondition(hazard); - }, - secondary: null, - target: "normal", - type: "Fairy", - }, - - // Blaz - bleakdecember: { - accuracy: 100, - basePower: 80, - category: "Special", - desc: "Damage is calculated using the user's Special Defense stat as its Special Attack, including stat stage changes. Other effects that modify the Special Attack stat are used as normal.", - shortDesc: "Uses user's SpD stat as SpA in damage calculation.", - name: "Bleak December", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Spirit Break', target); - }, - overrideOffensiveStat: 'spd', - secondary: null, - target: "normal", - type: "Fairy", - }, - - // Brandon - flowershower: { - accuracy: 100, - basePower: 100, - category: "Special", - desc: "This move is physical if the target's Defense is lower than the target's Special Defense.", - shortDesc: "Physical if target Def < Sp. Def.", - name: "Flower Shower", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Petal Dance', target); - }, - onModifyMove(move, source, target) { - if (target && target.getStat('def', false, true) < target.getStat('spd', false, true)) { - move.category = "Physical"; - } - }, - secondary: null, - target: "normal", - type: "Grass", - }, - - // Used for Brandon's ability - baneterrain: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "For 5 turns, the terrain becomes Bane Terrain. During the effect, moves hit off of the Pokemon's weaker attacking stat. Fails if the current terrain is Bane Terrain.", - shortDesc: "5 turns. Moves hit off of weaker stat.", - name: "Bane Terrain", - pp: 10, - priority: 0, - flags: {nonsky: 1}, - terrain: 'baneterrain', - condition: { - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('terrainextender')) { - return 8; - } - return 5; - }, - onModifyMove(move, source, target) { - if (move.overrideOffensiveStat && !['atk', 'spa'].includes(move.overrideOffensiveStat)) return; - const attacker = move.overrideOffensivePokemon === 'target' ? target : source; - if (!attacker) return; - const attackerAtk = attacker.getStat('atk', false, true); - const attackerSpa = attacker.getStat('spa', false, true); - move.overrideOffensiveStat = attackerAtk > attackerSpa ? 'spa' : 'atk'; - }, - // Stat modifying in scripts.ts - onFieldStart(field, source, effect) { - if (effect?.effectType === 'Ability') { - this.add('-fieldstart', 'move: Bane Terrain', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-fieldstart', 'move: Bane Terrain'); - } - this.add('-message', 'The battlefield suddenly became grim!'); - }, - onFieldResidualOrder: 21, - onFieldResidualSubOrder: 3, - onFieldEnd() { - this.add('-fieldend', 'move: Bane Terrain'); - }, - }, - secondary: null, - target: "all", - type: "Grass", - zMove: {boost: {def: 1}}, - contestType: "Beautiful", - }, - - // brouha - kinetosis: { - accuracy: 100, - basePower: 70, - category: "Special", - desc: "Badly poisons the target. If it is the user's first turn out, this move has +3 priority.", - shortDesc: "First turn: +3 priority. Target: TOX.", - name: "Kinetosis", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Aeroblast', target); - this.add('-anim', source, 'Haze', target); - }, - onModifyPriority(priority, source) { - if (source.activeMoveActions < 1) return priority + 3; - }, - secondary: { - chance: 100, - status: 'tox', - }, - target: 'normal', - type: 'Flying', - }, - - // Buffy - pandorasbox: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Gains Protean and replaces Swords Dance and Pandora's Box with two moves from two random types.", - shortDesc: "Gains Protean and some random moves.", - name: "Pandora's Box", - gen: 8, - pp: 5, - priority: 1, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Teeter Dance', target); - }, - volatileStatus: 'pandorasbox', - condition: { - onStart(target) { - const typeMovePair: {[key: string]: string} = { - Normal: 'Body Slam', - Fighting: 'Drain Punch', - Flying: 'Floaty Fall', - Poison: 'Baneful Bunker', - Ground: 'Shore Up', - Rock: 'Stealth Rock', - Bug: 'Sticky Web', - Ghost: 'Shadow Sneak', - Steel: 'Iron Defense', - Fire: 'Fire Fang', - Water: 'Life Dew', - Grass: 'Synthesis', - Electric: 'Thunder Fang', - Psychic: 'Psychic Fangs', - Ice: 'Icicle Crash', - Dragon: 'Dragon Darts', - Dark: 'Taunt', - Fairy: 'Play Rough', - }; - const newMoveTypes = Object.keys(typeMovePair); - this.prng.shuffle(newMoveTypes); - const moves = [typeMovePair[newMoveTypes[0]], typeMovePair[newMoveTypes[1]]]; - target.m.replacedMoves = moves; - for (const moveSlot of target.moveSlots) { - if (!(moveSlot.id === 'swordsdance' || moveSlot.id === 'pandorasbox')) continue; - if (!target.m.backupMoves) { - target.m.backupMoves = [this.dex.deepClone(moveSlot)]; - } else { - target.m.backupMoves.push(this.dex.deepClone(moveSlot)); - } - const moveData = this.dex.moves.get(this.toID(moves.pop())); - if (!moveData.id) continue; - target.moveSlots[target.moveSlots.indexOf(moveSlot)] = { - move: moveData.name, - id: moveData.id, - pp: Math.floor(moveData.pp * (moveSlot.pp / moveSlot.maxpp)), - maxpp: ((moveData.noPPBoosts || moveData.isZ) ? moveData.pp : moveData.pp * 8 / 5), - target: moveData.target, - disabled: false, - disabledSource: '', - used: false, - }; - } - target.setAbility('protean'); - this.add('-ability', target, target.getAbility().name, '[from] move: Pandora\'s Box'); - this.add('-message', `${target.name} learned new moves!`); - }, - onEnd(pokemon) { - if (!pokemon.m.backupMoves) return; - for (const [index, moveSlot] of pokemon.moveSlots.entries()) { - if (!(pokemon.m.replacedMoves.includes(moveSlot.move))) continue; - pokemon.moveSlots[index] = pokemon.m.backupMoves.shift(); - pokemon.moveSlots[index].pp = Math.floor(pokemon.moveSlots[index].maxpp * (moveSlot.pp / moveSlot.maxpp)); - } - delete pokemon.m.backupMoves; - delete pokemon.m.replacedMoves; - }, - }, - target: "self", - type: "Dragon", - }, - - // Cake - kevin: { - accuracy: true, - basePower: 100, - category: "Physical", - desc: "This move combines the user's current typing in its type effectiveness against the target. If the target lost HP, the user takes recoil damage equal to 1/8 of the HP lost by the target, rounded half up, but not less than 1 HP.", - shortDesc: "This move is the user's type combo. 1/8 recoil.", - name: "Kevin", - gen: 8, - pp: 10, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source, move) { - this.add('-anim', source, 'Brave Bird', target); - if (!this.randomChance(255, 256)) { - this.attrLastMove('[miss]'); - this.add('-activate', target, 'move: Celebrate'); - this.add('-miss', source); - this.hint("In Super Staff Bros, this move can still miss 1/256 of the time regardless of accuracy or evasion."); - return null; - } - }, - onModifyType(move, pokemon, target) { - move.type = pokemon.types[0]; - }, - onTryImmunity(target, pokemon) { - if (pokemon.types[1]) { - if (!target.runImmunity(pokemon.types[1])) return false; - } - return true; - }, - onEffectiveness(typeMod, target, type, move) { - if (!target) return; - const pokemon = target.side.foe.active[0]; - if (pokemon.types[1]) { - return typeMod + this.dex.getEffectiveness(pokemon.types[1], type); - } - return typeMod; - }, - priority: 0, - recoil: [1, 8], - secondary: null, - target: "normal", - type: "Bird", - }, - - // cant say - neverlucky: { - accuracy: 85, - basePower: 110, - category: "Special", - desc: "Doubles base power if statused. Has a 10% chance to boost every stat 1 stage. High Crit Ratio.", - shortDesc: "x2 power if statused. 10% omniboost. High crit.", - name: "Never Lucky", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Overheat', target); - }, - onBasePower(basePower, pokemon) { - if (pokemon.status && pokemon.status !== 'slp') { - return this.chainModify(2); - } - }, - secondary: { - chance: 10, - self: { - boosts: { - atk: 1, - def: 1, - spa: 1, - spd: 1, - spe: 1, - }, - }, - }, - critRatio: 2, - target: "normal", - type: "Fire", - }, - - // Celine - statusguard: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "Protects from physical moves. If hit by physical move, opponent is either badly poisoned, burned, or paralyzed at random and is forced out. Special attacks and status moves go through this protect.", - shortDesc: "Protected from physical moves. Gives brn/par/tox.", - name: "Status Guard", - gen: 8, - pp: 10, - priority: 4, - flags: {}, - stallingMove: true, - volatileStatus: 'statusguard', - onTryMove() { - this.attrLastMove('[still]'); - }, - onHit(pokemon) { - pokemon.addVolatile('stall'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Protect', source); - }, - onTryHit(pokemon) { - return !!this.queue.willAct() && this.runEvent('StallMove', pokemon); - }, - condition: { - duration: 1, - onStart(target) { - this.add('-singleturn', target, 'Protect'); - }, - onTryHitPriority: 3, - onTryHit(target, source, move) { - if (!move.flags['protect']) { - if (move.isZ || (move.isMax && !move.breaksProtect)) target.getMoveHitData(move).zBrokeProtect = true; - return; - } - if (move.category === 'Special' || move.category === 'Status') { - return; - } else if (move.smartTarget) { - move.smartTarget = false; - } else { - this.add('-activate', target, 'move: Protect'); - } - const lockedmove = source.getVolatile('lockedmove'); - if (lockedmove) { - // Outrage counter is reset - if (source.volatiles['lockedmove'].duration === 2) { - delete source.volatiles['lockedmove']; - } - } - if (move.category === 'Physical') { - const statuses = ['brn', 'par', 'tox']; - source.trySetStatus(this.sample(statuses), target); - source.forceSwitchFlag = true; - } - return this.NOT_FAIL; - }, - onHit(target, source, move) { - if (move.category === 'Physical') { - const statuses = ['brn', 'par', 'tox']; - source.trySetStatus(this.sample(statuses), target); - source.forceSwitchFlag = true; - } - }, - }, - secondary: null, - target: "self", - type: "Normal", - }, - - // c.kilgannon - soulsiphon: { - accuracy: 100, - basePower: 70, - category: "Physical", - desc: "Lowers the target's Attack by 1 stage. The user restores its HP equal to the target's Attack stat calculated with its stat stage before this move was used. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. Fails if the target's Attack stat stage is -6.", - shortDesc: "User heals HP=target's Atk stat. Lowers Atk by 1.", - name: "Soul Siphon", - gen: 8, - pp: 10, - priority: 0, - flags: {contact: 1, mirror: 1, protect: 1, heal: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Supersonic Skystrike', target); - }, - onHit(target, source) { - if (target.boosts.atk === -6) return false; - const atk = target.getStat('atk', false, true); - const success = this.boost({atk: -1}, target, source, null, false, true); - return !!(this.heal(atk, source, target) || success); - }, - secondary: null, - target: "normal", - type: "Flying", - }, - - // Coconut - devolutionbeam: { - accuracy: 100, - basePower: 80, - category: "Special", - desc: "If the target Pokemon is evolved, this move will reduce the target to its first-stage form. If the target Pokemon is single-stage or is already in its first-stage form, this move lowers all of the opponent's stats by 1. Hits Ghost types.", - shortDesc: "Devolves evolved mons;-1 all stats to LC.", - name: "Devolution Beam", - gen: 8, - pp: 5, - priority: 0, - flags: {protect: 1}, - ignoreImmunity: {'Normal': true}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Psywave', target); - }, - onHit(target, source, move) { - let species = target.species; - if (species.isMega) species = this.dex.species.get(species.baseSpecies); - const ability = target.ability; - const isSingleStage = (species.nfe && !species.prevo) || (!species.nfe && !species.prevo); - if (!isSingleStage) { - let prevo = species.prevo; - if (this.dex.species.get(prevo).prevo) { - prevo = this.dex.species.get(prevo).prevo; - } - target.formeChange(prevo, this.effect); - target.canMegaEvo = null; - target.setAbility(ability); - } else { - this.boost({atk: -1, def: -1, spa: -1, spd: -1, spe: -1}, target, source); - } - }, - secondary: null, - target: "normal", - type: "Normal", - }, - - // dogknees - bellyrubs: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Heals the user by 25% of their maximum HP. Boosts the user's Attack and Defense by 1 stage.", - shortDesc: "Heals 25% HP. Boosts Atk/Def by 1 stage.", - name: "Belly Rubs", - gen: 8, - pp: 5, - priority: 0, - flags: {heal: 1, snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Belly Drum', target); - }, - self: { - boosts: { - atk: 1, - def: 1, - }, - }, - onHit(pokemon, target, move) { - this.heal(pokemon.maxhp / 4, pokemon, pokemon, move); - }, - secondary: null, - zMove: {boost: {spe: 1}}, - target: "self", - type: "Normal", - }, - - // drampa's grandpa - getoffmylawn: { - accuracy: 100, - basePower: 78, - category: "Special", - desc: "The target is forced out after being damaged.", - shortDesc: "Phazes target.", - name: "GET OFF MY LAWN!", - gen: 8, - pp: 10, - priority: -6, - flags: {protect: 1, sound: 1, bypasssub: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Boomburst', target); - }, - onHit() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('drampa\'s grandpa')}|GET OFF MY LAWN!!!`); - }, - secondary: null, - forceSwitch: true, - target: "normal", - type: "Normal", - }, - - // DragonWhale - cloakdance: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "If Mimikyu's Disguise is intact, the user is not Mimikyu, or Mimikyu is the last remaining Pokemon, Attack goes up 2 stages. If Mimikyu's Disguise is busted and there are other Pokemon on Mimikyu's side, the Disguise will be repaired and Mimikyu will switch out.", - shortDesc: "Busted: Repair, switch. Last mon/else: +2 Atk.", - name: "Cloak Dance", - pp: 5, - priority: 0, - flags: {snatch: 1, dance: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - const moveAnim = (!source.abilityState.busted || source.side.pokemonLeft === 1) ? 'Swords Dance' : 'Teleport'; - this.add('-anim', source, moveAnim, target); - }, - onHit(target, source) { - if (!source.abilityState.busted || source.side.pokemonLeft === 1) { - this.boost({atk: 2}, target); - } else { - delete source.abilityState.busted; - if (source.species.baseSpecies === 'Mimikyu') source.formeChange('Mimikyu', this.effect, true); - source.switchFlag = true; - } - }, - secondary: null, - target: "self", - type: "Fairy", - }, - - // dream - lockandkey: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "Raises the user's Special Attack and Special Defense stats by 1 stage and prevents the target from switching out.", - shortDesc: "Raises user's SpA and SpD by 1. Traps foe.", - name: "Lock and Key", - gen: 8, - pp: 10, - priority: 0, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Calm Mind', source); - this.add('-anim', target, 'Imprison', target); - }, - onHit(target, source, move) { - if (source.isActive) target.addVolatile('trapped', source, move, 'trapper'); - }, - self: { - boosts: { - spa: 1, - spd: 1, - }, - }, - secondary: null, - target: "allAdjacentFoes", - type: "Steel", - }, - - // Elgino - navisgrace: { - accuracy: 100, - basePower: 90, - category: "Special", - desc: "This move is super effective on Steel- and Poison-type Pokemon.", - shortDesc: "Super effective on Steel- and Poison-types.", - name: "Navi's Grace", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1}, - secondary: null, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Dazzling Gleam', target); - this.add('-anim', source, 'Earth Power', target); - }, - onEffectiveness(typeMod, target, type) { - if (type === 'Poison' || type === 'Steel') return 1; - }, - target: 'normal', - type: 'Fairy', - }, - - // Emeri - forcedlanding: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user restores 1/2 of its maximum HP, rounded half up. For 5 turns, the evasiveness of all active Pokemon is multiplied by 0.6. At the time of use, Bounce, Fly, Magnet Rise, Sky Drop, and Telekinesis end immediately for all active Pokemon. During the effect, Bounce, Fly, Flying Press, High Jump Kick, Jump Kick, Magnet Rise, Sky Drop, Splash, and Telekinesis are prevented from being used by all active Pokemon. Ground-type attacks, Spikes, Toxic Spikes, Sticky Web, and the Arena Trap Ability can affect Flying types or Pokemon with the Levitate Ability. Fails if this move is already in effect.", - shortDesc: "Restore 50% HP + set Gravity.", - name: "Forced Landing", - gen: 8, - pp: 10, - priority: 0, - flags: {heal: 1}, - onHit(pokemon, target, move) { - this.heal(pokemon.maxhp / 2, pokemon, pokemon, move); - }, - pseudoWeather: 'gravity', - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Roost', source); - this.add('-anim', source, 'Gravity', source); - }, - secondary: null, - target: "self", - type: "Flying", - }, - - // EpicNikolai - epicrage: { - accuracy: 95, - basePower: 120, - category: "Physical", - desc: "Has a 25% chance to paralyze the target, and take 40% recoil. If the user is fire-type, it has a 25% chance to burn the target and take 33% recoil.", - shortDesc: "25% Par + 40% recoil.Fire: 25% burn + 33% recoil.", - name: "Epic Rage", - gen: 8, - pp: 5, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Draco Meteor', target); - }, - onModifyMove(move, pokemon) { - if (!pokemon.types.includes('Fire')) return; - move.secondaries = [{ - chance: 25, - status: 'brn', - }]; - move.recoil = [33, 100]; - }, - recoil: [4, 10], - secondary: { - chance: 25, - status: "par", - }, - target: "normal", - type: "Fire", - }, - - // estarossa - sandbalance: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user uses Roar, then switches out after forcing out the opposing Pokemon.", - shortDesc: "Uses Roar, switches out after.", - name: "Sand Balance", - gen: 8, - pp: 10, - priority: -6, - flags: {bypasssub: 1, protect: 1, mirror: 1, sound: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Roar', target); - this.add('-anim', source, 'Parting Shot', target); - }, - forceSwitch: true, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Ground", - }, - - // explodingdaisies - youhavenohope: { - accuracy: 100, - basePower: 0, - damageCallback(pokemon, target) { - return target.getUndynamaxedHP() - pokemon.hp; - }, - onTryImmunity(target, pokemon) { - return pokemon.hp < target.hp; - }, - category: "Physical", - desc: "Lowers the target's HP to the user's HP. This move bypasses the target's substitute.", - shortDesc: "Lowers the target's HP to the user's HP.", - name: "You Have No Hope!", - pp: 1, - noPPBoosts: true, - priority: 0, - flags: {bypasssub: 1, contact: 1, protect: 1, mirror: 1}, - gen: 8, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Endeavor', target); - }, - onHit(target, source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('explodingdaisies')}|You have no hope ${target.name}!`); - }, - secondary: null, - target: "normal", - type: "Normal", - }, - // fart - soupstealing7starstrikeredux: { - accuracy: 100, - basePower: 40, - basePowerCallback() { - if (this.field.pseudoWeather.soupstealing7starstrikeredux) { - return 40 * this.field.pseudoWeather.soupstealing7starstrikeredux.multiplier; - } - return 40; - }, - category: "Physical", - desc: "This move is either a Water, Fire, or Grass type move. The selected type is added to the user of this move. For every consecutive turn that this move is used by at least one Pokemon, this move's power is multiplied by the number of turns to pass, but not more than 5.", - shortDesc: "Change type to F/W/G. Power+ on repeat.", - name: "Soup-Stealing 7-Star Strike: Redux", - gen: 8, - pp: 15, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTry() { - this.field.addPseudoWeather('soupstealing7starstrikeredux'); - }, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, "Conversion", source); - }, - onModifyMove(move, pokemon) { - const types = ['Fire', 'Water', 'Grass']; - const randomType = this.sample(types); - move.type = randomType; - pokemon.addType(randomType); - this.add('-start', pokemon, 'typeadd', randomType); - }, - onHit(target, source) { - this.add('-anim', source, 'Spectral Thief', target); - if (this.randomChance(1, 2)) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|I hl on soup`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('fart')}|I walk with purpose. bring me soup.`); - } - }, - condition: { - duration: 2, - onFieldStart() { - this.effectState.multiplier = 1; - }, - onFieldRestart() { - if (this.effectState.duration !== 2) { - this.effectState.duration = 2; - if (this.effectState.multiplier < 5) { - this.effectState.multiplier++; - } - } - }, - }, - secondary: null, - target: "normal", - type: "Normal", - }, - - // Felucia - riggeddice: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Inverts target's stat boosts if they have any; taunts otherwise. User then switches out.", - shortDesc: "If target has boosts, invert; else, taunt. Switch out.", - name: "Rigged Dice", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Smart Strike', source); - }, - onHit(target, source, move) { - let success = false; - let i: BoostID; - for (i in target.boosts) { - if (target.boosts[i] === 0) continue; - target.boosts[i] = -target.boosts[i]; - success = true; - } - if (success) { - this.add('-invertboost', target, '[from] move: Rigged Dice'); - } else { - target.addVolatile("taunt"); - } - }, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Ice", - }, - - // Finland - cradilychaos: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "All Pokemon on the field get a +1 boost to a random stat. The target is badly poisoned, regardless of typing. If the user is Alcremie, it changes to a non-Vanilla Cream forme.", - shortDesc: "Random boosts to all mons. Tox. Change forme.", - name: "Cradily Chaos", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Psywave', target); - }, - onHit(target, source, move) { - const boosts: BoostID[] = ['atk', 'def', 'spa', 'spd', 'spe']; - const selfBoost: SparseBoostsTable = {}; - selfBoost[boosts[this.random(5)]] = 1; - const oppBoost: SparseBoostsTable = {}; - oppBoost[boosts[this.random(5)]] = 1; - this.boost(selfBoost, source); - this.boost(oppBoost, target); - target.trySetStatus('tox', source); - if (source.species.baseSpecies === 'Alcremie') { - const formes = ['Finland', 'Finland-Tsikhe', 'Finland-Nezavisa', 'Finland-Järvilaulu'] - .filter(forme => ssbSets[forme].species !== source.species.name); - const newSet = this.sample(formes); - changeSet(this, source, ssbSets[newSet]); - } - }, - secondary: null, - target: "normal", - type: "Poison", - }, - - // frostyicelad - frostywave: { - accuracy: 100, - basePower: 95, - category: "Special", - desc: "This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Ignores abilities.", - name: "Frosty Wave", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, - ignoreAbility: true, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Boomburst', target); - this.add('-anim', source, 'Frost Breath', target); - }, - secondary: null, - target: "allAdjacentFoes", - type: "Ice", - }, - - // gallant's pear - kinggirigirislash: { - accuracy: 100, - basePower: 100, - category: "Special", - desc: "Removes the opponent's Reflect, Light Screen, Aurora Veil, and Safeguard. Secondary effect depends on the user's secondary typing: Psychic: 100% chance to lower target's Speed by 1; Fire: 10% burn; Steel: 10% flinch; Rock: apply Smack Down; Electric: 10% paralyze; else: no additional effect.", - shortDesc: "Breaks screens. Secondary depends on type.", - name: "King Giri Giri Slash", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onModifyMove(move, pokemon) { - move.type = pokemon.types[1] || "Normal"; - if (!move.secondaries) move.secondaries = []; - if (move.type === 'Rock') { - move.secondaries.push({ - chance: 100, - volatileStatus: 'smackdown', - }); - } else if (move.type === 'Fire') { - move.secondaries.push({ - chance: 10, - status: 'brn', - }); - } else if (move.type === 'Steel') { - move.secondaries.push({ - chance: 10, - volatileStatus: 'flinch', - }); - } else if (move.type === 'Electric') { - move.secondaries.push({ - chance: 10, - status: 'par', - }); - } else if (move.type === 'Psychic') { - move.secondaries.push({ - chance: 100, - boosts: {spe: -1}, - }); - } - }, - onTryHit(pokemon, source, move) { - // will shatter screens through sub, before you hit - if (pokemon.runImmunity(move.type)) { - pokemon.side.removeSideCondition('reflect'); - pokemon.side.removeSideCondition('lightscreen'); - pokemon.side.removeSideCondition('auroraveil'); - } - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Solar Blade', target); - }, - secondary: null, - target: "normal", - type: "Normal", - }, - - // Gimmick - randomscreaming: { - accuracy: 100, - basePower: 50, - category: "Special", - desc: "Has a 10% chance to freeze the target. If the target is frozen, this move will deal double damage and thaw the target.", - shortDesc: "10% frz. FRZ: 2x damage then thaw.", - name: "Random Screaming", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Hyper Voice', target); - this.add('-anim', source, 'Misty Terrain', target); - }, - onBasePower(basePower, source, target, move) { - if (target.status === 'frz') { - return this.chainModify(2); - } - }, - secondary: { - chance: 10, - status: 'frz', - onHit() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Gimmick')}|Show me some more paaain, baaaby`); - }, - }, - thawsTarget: true, - target: "normal", - type: "Fire", - }, - - // GMars - gacha: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Lowers the user's Defense and Special Defense by 1 stage. Raises the user's Attack, Special Attack, and Speed by 2 stages. If the user is Minior-Meteor, its forme changes, with a different effect for each forme.", - shortDesc: "Shell Smash; Minior: change forme.", - name: "Gacha", - pp: 15, - priority: 0, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Brick Break', source); - }, - onHit(target, source, move) { - if (target.species.id !== 'miniormeteor') return; - let forme: string; - let message = ""; - const random = this.random(100); - let shiny = false; - if (random < 3) { - forme = "Minior-Violet"; - message = "Oof, Violet. Tough break. A Violet Minior is sluggish and won't always listen to your commands. Best of luck! Rating: ★ ☆ ☆ ☆ ☆ "; - } else if (random < 13) { - forme = "Minior-Indigo"; - message = "Uh oh, an Indigo Minior. Its inspiring color may have had some unintended effects and boosted your foe's attacking stats. Better hope you can take it down first! Rating: ★ ☆ ☆ ☆ ☆"; - } else if (random < 33) { - forme = "Minior"; - message = "Nice one, a Red Minior is hard for your opponent to ignore. They'll be goaded into attacking the first time they see this! Rating: ★ ★ ★ ☆ ☆ "; - } else if (random < 66) { - forme = "Minior-Orange"; - message = "Solid, you pulled an Orange Minior. Nothing too fancy, but it can definitely get the job done if you use it right. Rating: ★ ★ ☆ ☆ ☆"; - } else if (random < 86) { - forme = "Minior-Yellow"; - message = "Sweet, a Yellow Minior! This thing had a lot of static energy built up that released when you cracked it open, paralyzing the foe. Rating: ★ ★ ★ ☆ ☆ "; - } else if (random < 96) { - forme = "Minior-Blue"; - message = "Woah! You got a Blue Minior. This one's almost translucent; it looks like it'd be hard for an opponent to find a way to reduce its stats. Rating: ★ ★ ★ ★ ☆"; - } else if (random < 99) { - forme = "Minior-Green"; - message = "Nice! You cracked a Green Minior, that's definitely a rare one. This type of Minior packs an extra punch, and it's great for breaking through defensive teams without risking multiple turns of setup. Rating: ★ ★ ★ ★ ★"; - } else { - forme = "Minior"; - shiny = true; - target.set.shiny = true; - target.m.nowShiny = true; - message = "YO!! I can't believe it, you cracked open a Shiny Minior! Its multicolored interior dazzles its opponents and throws off their priority moves. Big grats. Rating: ★ ★ ★ ★ ★ ★"; - } - target.formeChange(forme, move, true); - const details = target.species.name + (target.level === 100 ? '' : ', L' + target.level) + - (target.gender === '' ? '' : ', ' + target.gender) + (target.set.shiny ? ', shiny' : ''); - if (shiny) this.add('replace', target, details); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('GMars')}|${message}`); - target.setAbility('capsulearmor'); - target.baseAbility = target.ability; - if (target.set.shiny) return; - if (forme === 'Minior-Indigo') { - this.boost({atk: 1, spa: 1}, target.side.foe.active[0]); - } else if (forme === 'Minior') { - target.side.foe.active[0].addVolatile('taunt'); - } else if (forme === 'Minior-Yellow') { - target.side.foe.active[0].trySetStatus('par', target); - } else if (forme === 'Minior-Green') { - this.boost({atk: 1}, target); - } - }, - boosts: { - def: -1, - spd: -1, - atk: 2, - spa: 2, - spe: 2, - }, - secondary: null, - target: "self", - type: "Normal", - }, - - // grimAuxiliatrix - skyscrapersuplex: { - accuracy: 100, - basePower: 75, - onBasePower(basePower, pokemon, target) { - if (target?.statsRaisedThisTurn) { - return this.chainModify(2); - } - }, - category: "Special", - desc: "Power doubles if the target had a stat stage raised this turn.", - shortDesc: "2x power if the target that had a stat rise this turn.", - name: "Skyscraper Suplex", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Steel Beam', target); - }, - secondary: null, - target: "normal", - type: "Steel", - }, - - // HoeenHero - landfall: { - accuracy: 100, - category: "Special", - basePower: 0, - basePowerCallback(target, source, move) { - const windSpeeds = [65, 85, 85, 95, 95, 95, 95, 115, 115, 140]; - move.basePower = windSpeeds[this.random(0, 10)]; - return move.basePower; - }, - desc: "The foe is hit with a hurricane with a Base Power that varies based on the strength (category) of the hurricane. Category 1 is 65, category 2 is 85, category 3 is 95, category 4 is 115, and category 5 is 140. In addition, the target's side of the field is covered in a storm surge. Storm surge applies a 75% Speed multiplier to pokemon on that side of the field. Storm surge will last for as many turns as the hurricane's category (not including the turn Landfall was used).", - shortDesc: "Higher category = +dmg, foe side speed 75%.", - name: "Landfall", - gen: 8, - pp: 5, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Hurricane', target); - this.add('-anim', source, 'Surf', target); - }, - onHit(target, source, move) { - const windSpeeds = [65, 85, 95, 115, 140]; - const category = windSpeeds.indexOf(move.basePower) + 1; - this.add('-message', `A category ${category} hurricane made landfall!`); - }, - sideCondition: 'stormsurge', // Programmed in conditions.ts - target: "normal", - type: "Water", - }, - - // Hubriz - steroidanaphylaxia: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Inverts the target's stat stages.", - name: "Steroid Anaphylaxia", - gen: 8, - pp: 20, - priority: 1, - flags: {protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onHit(target) { - let success = false; - let i: BoostID; - for (i in target.boosts) { - if (target.boosts[i] === 0) continue; - target.boosts[i] = -target.boosts[i]; - success = true; - } - if (!success) return false; - this.add('-invertboost', target, '[from] move: Steroid Anaphylaxia'); - }, - target: "normal", - type: "Poison", - }, - - // Hydro - hydrostatics: { - accuracy: 100, - basePower: 75, - category: "Special", - desc: "Has a 70% chance to raise the user's Special Attack by 1 stage and a 50% chance to paralyze the target. This move combines Electric in its type effectiveness against the target.", - shortDesc: "70% +1 SpA; 50% par; +Electric in type effect.", - name: "Hydrostatics", - gen: 8, - pp: 10, - priority: 2, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Origin Pulse', target); - this.add('-anim', source, 'Charge Beam', target); - }, - secondaries: [{ - chance: 70, - self: { - boosts: { - spa: 1, - }, - }, - }, { - chance: 50, - status: 'par', - }], - onEffectiveness(typeMod, target, type, move) { - return typeMod + this.dex.getEffectiveness('Electric', type); - }, - target: "normal", - type: "Water", - }, - - // Inactive - paranoia: { - accuracy: 90, - basePower: 100, - category: "Physical", - desc: "Has a 15% chance to burn the target.", - name: "Paranoia", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Max Flare', target); - }, - secondary: { - chance: 15, - status: 'brn', - }, - target: "normal", - type: "Dark", - }, - - // instruct - sodabreak: { - accuracy: true, - basePower: 10, - category: "Physical", - desc: "Has a 100% chance to make the target flinch. Causes the user to switch out. Fails unless it is the user's first turn on the field.", - shortDesc: "First turn: Flinches the target then switches out.", - name: "Soda Break", - isNonstandard: "Custom", - gen: 8, - pp: 10, - priority: 3, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Milk Drink', source); - this.add('-anim', source, 'Fling', target); - this.add('-anim', source, 'U-turn', target); - }, - onTry(pokemon, target) { - if (pokemon.activeMoveActions > 1) { - this.attrLastMove('[still]'); - this.add('-fail', pokemon); - this.hint("Soda Break only works on your first turn out."); - return null; - } - }, - secondary: { - chance: 100, - volatileStatus: 'flinch', - }, - selfSwitch: true, - target: "normal", - type: "???", - }, - - // Iyarito - patronaattack: { - accuracy: 100, - basePower: 50, - category: "Special", - desc: "Usually goes first.", - name: "Patrona Attack", - gen: 8, - pp: 20, - priority: 1, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Moongeist Beam', target); - }, - secondary: null, - target: "normal", - type: "Ghost", - }, - - // Jett - thehuntison: { - accuracy: 100, - basePower: 55, - basePowerCallback(pokemon, target, move) { - // You can't get here unless the pursuit effect succeeds - if (target.beingCalledBack) { - this.debug('The Hunt is On! damage boost'); - return move.basePower * 2; - } - return move.basePower; - }, - category: "Physical", - desc: "If an opposing Pokemon switches out this turn, this move hits that Pokemon before it leaves the field, even if it was not the original target. If the user moves after an opponent using Parting Shot, U-turn, or Volt Switch, but not Baton Pass, it will hit that opponent before it leaves the field. Power doubles and no accuracy check is done if the user hits an opponent switching out, and the user's turn is over; if an opponent faints from this, the replacement Pokemon does not become active until the end of the turn.", - shortDesc: "Foe: 2x power when switching.", - name: "The Hunt is On!", - gen: 8, - pp: 15, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Sucker Punch', target); - this.add('-anim', source, 'Pursuit', target); - }, - beforeTurnCallback(pokemon) { - for (const side of this.sides) { - if (side === pokemon.side) continue; - side.addSideCondition('thehuntison', pokemon); - const data = side.getSideConditionData('thehuntison'); - if (!data.sources) { - data.sources = []; - } - data.sources.push(pokemon); - } - }, - onModifyMove(move, source, target) { - if (target?.beingCalledBack) move.accuracy = true; - }, - onTryHit(target, pokemon) { - target.side.removeSideCondition('thehuntison'); - }, - onAfterMoveSecondarySelf(pokemon, target, move) { - if (!target || target.fainted || target.hp <= 0) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Jett')}|Owned!`); - } - }, - condition: { - duration: 1, - onBeforeSwitchOut(pokemon) { - this.debug('Thehuntison start'); - let alreadyAdded = false; - pokemon.removeVolatile('destinybond'); - for (const source of this.effectState.sources) { - if (!this.queue.cancelMove(source) || !source.hp) continue; - if (!alreadyAdded) { - this.add('-activate', pokemon, 'move: The Hunt is On!'); - alreadyAdded = true; - } - this.actions.runMove('thehuntison', source, source.getLocOf(pokemon)); - } - }, - }, - secondary: null, - target: "normal", - type: "Dark", - }, - - // Jho - genrechange: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "If the user is a Toxtricity, it changes into its Low-Key forme and Nasty Plot and Overdrive change to Aura Sphere and Boomburst, respectively. If the user is a Toxtricity in its Low-Key forme, it changes into its Amped forme and Aura Sphere and Boomburst turn into Nasty Plot and Overdrive, respectively. Raises the user's Speed by 1 stage.", - shortDesc: "Toxtricity: +1 Speed. Changes forme.", - name: "Genre Change", - gen: 8, - pp: 5, - priority: 0, - flags: {snatch: 1, sound: 1}, - onTryMove(pokemon, target, move) { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Screech', source); - // The transform animation is done via `formeChange` - }, - onHit(pokemon) { - if (pokemon.species.baseSpecies === 'Toxtricity') { - if (pokemon.species.forme === 'Low-Key') { - changeSet(this, pokemon, ssbSets['Jho']); - } else { - changeSet(this, pokemon, ssbSets['Jho-Low-Key']); - } - } - }, - boosts: { - spe: 1, - }, - secondary: null, - target: "self", - type: "Normal", - }, - - // Jordy - archeopssrage: { - accuracy: 85, - basePower: 90, - category: "Physical", - desc: "Upon damaging the target, the user gains +1 Speed.", - shortDesc: "+1 Speed upon hit.", - name: "Archeops's Rage", - gen: 8, - pp: 5, - flags: {contact: 1, protect: 1, mirror: 1}, - priority: 0, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Sunsteel Strike', target); - }, - self: { - boosts: { - spe: 1, - }, - }, - secondary: null, - target: "normal", - type: "Flying", - }, - - // Kaiju Bunny - cozycuddle: { - accuracy: 95, - basePower: 0, - category: "Status", - desc: "Traps the target and lowers its Attack and Defense by 2 stages.", - shortDesc: "Target: trapped, Atk and Def lowered by 2.", - name: "Cozy Cuddle", - gen: 8, - pp: 20, - priority: 0, - flags: {contact: 1, protect: 1, reflectable: 1}, - volatileStatus: 'cozycuddle', - onTryMove() { - this.attrLastMove('[still]'); - }, - onTryHit(target, source, move) { - if (target.volatiles['cozycuddle']) return false; - if (target.volatiles['trapped']) { - delete move.volatileStatus; - } - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Flatter', target); - this.add('-anim', source, 'Let\'s Snuggle Forever', target); - }, - onHit(target, source, move) { - this.boost({atk: -2, def: -2}, target, target); - }, - condition: { - onStart(pokemon, source) { - this.add('-start', pokemon, 'Cozy Cuddle'); - }, - onTrapPokemon(pokemon) { - if (this.effectState.source?.isActive) pokemon.tryTrap(); - }, - }, - secondary: null, - target: "normal", - type: "Fairy", - }, - - // Kalalokki - blackbird: { - accuracy: 100, - basePower: 70, - category: "Special", - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", - shortDesc: "User switches out after damaging the target.", - name: "Blackbird", - gen: 8, - pp: 20, - priority: 0, - flags: {protect: 1, mirror: 1}, - selfSwitch: true, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Gust', target); - this.add('-anim', source, 'Parting Shot', target); - }, - secondary: null, - target: "normal", - type: "Flying", - }, - gaelstrom: { - accuracy: true, - basePower: 140, - category: "Special", - desc: "Hits foe and phazes them out, phaze the next one out and then another one, set a random entry hazard at the end of the move.", - shortDesc: "Hits foe, phazes 3 times, sets random hazard.", - name: "Gaelstrom", - gen: 8, - pp: 1, - noPPBoosts: true, - priority: 0, - flags: {}, - isZ: "kalalokkiumz", - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Hurricane', target); - }, - sideCondition: 'gaelstrom', - condition: { - duration: 1, - onSwitchIn(pokemon) { - if (!this.effectState.count) this.effectState.count = 1; - if (this.effectState.count < 3) { - pokemon.forceSwitchFlag = true; - this.effectState.count++; - return; - } - pokemon.side.removeSideCondition('gaelstrom'); - }, - onSideStart(side, source) { - side.addSideCondition(['spikes', 'toxicspikes', 'stealthrock', 'stickyweb'][this.random(4)], source); - }, - }, - forceSwitch: true, - target: "normal", - type: "Flying", - }, - - // Kennedy - topbins: { - accuracy: 70, - basePower: 130, - category: "Physical", - desc: "Has a 20% chance to burn the target and a 10% chance to cause the target to flinch.", - shortDesc: "20% chance to burn. 10% chance to flinch.", - name: "Top Bins", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Pyro Ball', target); - this.add('-anim', source, 'Blaze Kick', target); - }, - secondaries: [{ - chance: 20, - status: 'brn', - }, { - chance: 10, - volatileStatus: 'flinch', - }], - target: "normal", - type: "Fire", - }, - - // Kev - kingstrident: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Raises the user's Special Attack by 1 stage and Speed by 2 stages.", - shortDesc: "Gives user +1 SpA and +2 Spe.", - name: "King's Trident", - gen: 8, - pp: 10, - priority: 0, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target) { - this.add('-anim', target, 'Dragon Dance', target); - }, - self: { - boosts: { - spa: 1, - spe: 2, - }, - }, - secondary: null, - target: "self", - type: "Water", - }, - - // Kingbaruk - leaveittotheteam: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user faints and the Pokemon brought out to replace it gets Healing Wish effects and has its Attack, Defense, Special Attack, and Special Defense boosted by 1 stage.", - shortDesc: "User faints. Next: healed & +1 Atk/Def/SpA/SpD.", - name: "Leave it to the team!", - gen: 8, - pp: 5, - priority: 0, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onTryHit(source) { - if (!this.canSwitch(source.side)) { - this.attrLastMove('[still]'); - this.add('-fail', source); - return this.NOT_FAIL; - } - }, - selfdestruct: "ifHit", - sideCondition: 'leaveittotheteam', - condition: { - duration: 2, - onSideStart(side, source) { - this.debug('Leave it to the team! started on ' + side.name); - this.effectState.positions = []; - for (const i of side.active.keys()) { - this.effectState.positions[i] = false; - } - this.effectState.positions[source.position] = true; - }, - onSideRestart(side, source) { - this.effectState.positions[source.position] = true; - }, - onSwitchInPriority: 1, - onSwitchIn(target) { - const positions: boolean[] = this.effectState.positions; - if (target.getSlot() !== this.effectState.sourceSlot) { - return; - } - if (!target.fainted) { - target.heal(target.maxhp); - this.boost({atk: 1, def: 1, spa: 1, spd: 1}, target); - target.clearStatus(); - for (const moveSlot of target.moveSlots) { - moveSlot.pp = moveSlot.maxpp; - } - this.add('-heal', target, target.getHealth, '[from] move: Leave it to the team!'); - positions[target.position] = false; - } - if (!positions.some(affected => affected === true)) { - target.side.removeSideCondition('leaveittotheteam'); - } - }, - }, - secondary: null, - target: "self", - type: "Fairy", - }, - - // KingSwordYT - clashofpangoros: { - accuracy: 100, - basePower: 90, - category: "Physical", - desc: "Target can't use status moves for its next 3 turns. Lowers the target's Attack by 1 stage. At the end of the move, the user switches out.", - shortDesc: "Taunts, lowers Atk, switches out.", - name: "Clash of Pangoros", - gen: 8, - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, heal: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Black Hole Eclipse', target); - }, - onHit(target, pokemon, move) { - this.boost({atk: -1}, target, target, move); - target.addVolatile('taunt', pokemon); - }, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Dark", - }, - - // Kipkluif - kipup: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. When used, if hit by an attack on the same turn this move was used, this Pokemon boosts its Defense and Special Defense by 2 stages if the relevant stat is at 0 or lower, or 1 stage if the relevant stat is at +1 or higher, and increases priority of the next used move by 1.", - shortDesc: "Endure;If hit, +Def/SpD; next move +1 prio.", - name: "Kip Up", - pp: 10, - priority: 3, - flags: {}, - onTryMove(source) { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Focus Energy', source); - }, - onHit(target, pokemon, move) { - if (pokemon.volatiles['kipup']) return false; - pokemon.addVolatile('kipup'); - }, - condition: { - duration: 1, - onStart(pokemon) { - this.add('-message', 'This Pokémon prepares itself to be knocked down!'); - }, - onDamagePriority: -10, - onDamage(damage, target, source, effect) { - if (this.effectState.gotHit) return damage; - if (effect?.effectType === 'Move' && damage >= target.hp) { - this.add('-activate', target, 'move: Kip Up'); - return target.hp - 1; - } - }, - onHit(pokemon, source, move) { - if (!pokemon.hp) return; - if (this.effectState.gotHit) return; - if (!pokemon.isAlly(source) && move.category !== 'Status') { - this.effectState.gotHit = true; - this.add('-message', 'Gossifleur was prepared for the impact!'); - const boosts: {[k: string]: number} = {def: 2, spd: 2}; - if (pokemon.boosts.def >= 1) boosts.def--; - if (pokemon.boosts.spd >= 1) boosts.spd--; - this.boost(boosts, pokemon); - this.add('-message', "Gossifleur did a Kip Up and can jump right back into the action!"); - this.effectState.duration++; - } - }, - onModifyPriority(priority, pokemon, target, move) { - if (!this.effectState.gotHit) return priority; - return priority + 1; - }, - }, - secondary: null, - target: "self", - type: "Fighting", - }, - - // Kris - alphabetsoup: { - accuracy: true, - basePower: 100, - category: "Special", - desc: "The user changes into a random Pokemon with a first name letter that matches the forme Unown is currently in (A -> Alakazam, etc) that has base stats that would benefit from Unown's EV/IV/Nature spread and moves. Using it while in a forme that is not Unown will make it revert back to the Unown forme it transformed in (If an Unown transforms into Alakazam, it'll transform back to Unown-A when used again). Light of Ruin becomes Strange Steam, Psystrike becomes Psyshock, Secret Sword becomes Aura Sphere, Mind Blown becomes Flamethrower, and Seed Flare becomes Apple Acid while in a non-Unown forme. This move's type varies based on the user's primary type.", - shortDesc: "Transform into Unown/mon. Type=user 1st type.", - name: "Alphabet Soup", - gen: 8, - pp: 20, - priority: 0, - flags: {protect: 1}, - onTryMove(source) { - this.attrLastMove('[still]'); - if (source.name !== 'Kris') { - this.add('-fail', source); - this.hint("Only Kris can use Alphabet Soup."); - return null; - } - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Dark Pulse', target); - this.add('-anim', source, 'Teleport', source); - }, - onModifyType(move, pokemon) { - let type = pokemon.types[0]; - if (type === "Bird") type = "???"; - move.type = type; - }, - onHit(target, source) { - if (!source) return; - if (source.species.id.includes('unown')) { - const monList = Object.keys(this.dex.data.Pokedex).filter(speciesid => { - const species = this.dex.species.get(speciesid); - if (species.id.startsWith('unown')) return false; - if (species.isNonstandard && ['Gigantamax', 'Unobtainable'].includes(species.isNonstandard)) return false; - if (['Arceus', 'Silvally'].includes(species.baseSpecies) && species.types[0] !== 'Normal') return false; - if (species.baseStats.spa < 80) return false; - if (species.baseStats.spe < 80) return false; - const unownLetter = source.species.id.charAt(5) || 'a'; - if (!species.id.startsWith(unownLetter.trim().toLowerCase())) return false; - return true; - }); - source.formeChange(this.sample(monList), this.effect); - source.setAbility('Protean'); - source.moveSlots = source.moveSlots.map(slot => { - const newMoves: {[k: string]: string} = { - lightofruin: 'strangesteam', - psystrike: 'psyshock', - secretsword: 'aurasphere', - mindblown: 'flamethrower', - seedflare: 'appleacid', - }; - if (slot.id in newMoves) { - const newMove = this.dex.moves.get(newMoves[slot.id]); - const newSlot = { - id: newMove.id, - move: newMove.name, - pp: newMove.pp * 8 / 5, - maxpp: newMove.pp * 8 / 5, - disabled: slot.disabled, - used: false, - }; - return newSlot; - } - return slot; - }); - } else { - let transformingLetter = source.species.id[0]; - if (transformingLetter === 'a') transformingLetter = ''; - source.formeChange(`unown${transformingLetter}`, this.effect, true); - source.moveSlots = source.moveSlots.map(slot => { - const newMoves: {[k: string]: string} = { - strangesteam: 'lightofruin', - psyshock: 'psystrike', - aurasphere: 'secretsword', - flamethrower: 'mindblown', - appleacid: 'seedflare', - }; - if (slot.id in newMoves) { - const newMove = this.dex.moves.get(newMoves[slot.id]); - const newSlot = { - id: newMove.id, - move: newMove.name, - pp: newMove.pp * 8 / 5, - maxpp: newMove.pp * 8 / 5, - disabled: slot.disabled, - used: false, - }; - return newSlot; - } - return slot; - }); - } - }, - secondary: null, - target: "normal", - type: "Dark", - }, - - // Lamp - soulswap: { - accuracy: 100, - basePower: 90, - category: "Special", - desc: "The user copies the target's positive stat stage changes and then inverts the target's stats.", - shortDesc: "Copies target's stat boosts then inverts.", - name: "Soul Swap", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Spectral Thief', target); - this.add('-anim', source, 'Teleport', source); - this.add('-anim', source, 'Topsy-Turvy', target); - }, - onHit(target, source) { - let i: BoostID; - const boosts: SparseBoostsTable = {}; - for (i in target.boosts) { - const stage = target.boosts[i]; - if (stage > 0) { - boosts[i] = stage; - } - if (target.boosts[i] !== 0) { - target.boosts[i] = -target.boosts[i]; - } - } - this.add('-message', `${source.name} stole ${target.name}'s boosts!`); - this.boost(boosts, source); - this.add('-invertboost', target, '[from] move: Soul Swap'); - }, - secondary: null, - target: "normal", - type: "Ghost", - }, - - // Lionyx - bigbang: { - accuracy: 100, - basePower: 120, - category: "Special", - desc: "The user loses HP equal to 33% of the damage dealt by this attack. Resets the field by clearing all hazards, terrains, screens, and weather.", - shortDesc: "33% recoil; removes field conditions.", - name: "Big Bang", - gen: 8, - pp: 5, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Extreme Evoboost', source); - this.add('-anim', source, 'Light of Ruin', target); - this.add('-anim', source, 'Dark Void', target); - }, - onHit(target, source, move) { - let success = false; - const removeAll = [ - 'reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist', - 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', - ]; - const silentRemove = ['reflect', 'lightscreen', 'auroraveil', 'safeguard', 'mist']; - for (const sideCondition of removeAll) { - if (target.side.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', target.side, this.dex.conditions.get(sideCondition).name, '[from] move: Big Bang', '[of] ' + source); - } - success = true; - } - if (source.side.removeSideCondition(sideCondition)) { - if (!silentRemove.includes(sideCondition)) { - this.add('-sideend', source.side, this.dex.conditions.get(sideCondition).name, '[from] move: Big Bang', '[of] ' + source); - } - success = true; - } - } - this.field.clearTerrain(); - this.field.clearWeather(); - return success; - }, - recoil: [33, 100], - secondary: null, - target: "normal", - type: "Fairy", - }, - - // LittEleven - nexthunt: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "If this Pokemon does not take damage this turn, it switches out to another Pokemon in the party and gives it a +2 boost corresponding to its highest stat. Fails otherwise.", - shortDesc: "Focus: switch out, next Pokemon +2 Beast Boost.", - name: "/nexthunt", - pp: 10, - priority: -6, - flags: {snatch: 1}, - beforeTurnCallback(pokemon) { - pokemon.addVolatile('nexthuntcheck'); - }, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Teleport', source); - }, - beforeMoveCallback(pokemon) { - if (pokemon.volatiles['nexthuntcheck'] && pokemon.volatiles['nexthuntcheck'].lostFocus) { - this.add('cant', pokemon, '/nexthunt', '/nexthunt'); - return true; - } - }, - onHit(target, source, move) { - this.add('-message', 'Time for the next hunt!'); - }, - sideCondition: 'nexthunt', - condition: { - duration: 1, - onSideStart(side, source) { - this.debug('/nexthunt started on ' + side.name); - this.effectState.positions = []; - for (const i of side.active.keys()) { - this.effectState.positions[i] = false; - } - this.effectState.positions[source.position] = true; - }, - onSideRestart(side, source) { - this.effectState.positions[source.position] = true; - }, - onSwitchInPriority: 1, - onSwitchIn(target) { - this.add('-activate', target, 'move: /nexthunt'); - let statName = 'atk'; - let bestStat = 0; - let s: StatIDExceptHP; - for (s in target.storedStats) { - if (target.storedStats[s] > bestStat) { - statName = s; - bestStat = target.storedStats[s]; - } - } - this.boost({[statName]: 2}, target, null, this.dex.getActiveMove('/nexthunt')); - }, - }, - selfSwitch: true, - secondary: null, - target: "self", - type: "Normal", - }, - - // Lunala - hatofwisdom: { - accuracy: 100, - basePower: 110, - category: "Special", - desc: "The user switches out, and this move deals damage one turn after it is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move, Future Sight, or Doom Desire is already in effect for the target's position.", - shortDesc: "Hits 1 turn after being used. User switches.", - name: "Hat of Wisdom", - gen: 8, - pp: 15, - priority: 0, - flags: {futuremove: 1}, - ignoreImmunity: true, - onTry(source, target) { - this.attrLastMove('[still]'); - if (!target.side.addSlotCondition(target, 'futuremove')) return false; - this.add('-anim', source, 'Calm Mind', target); - this.add('-anim', source, 'Teleport', target); - Object.assign(target.side.slotConditions[target.position]['futuremove'], { - duration: 2, - move: 'hatofwisdom', - source: source, - moveData: { - id: 'hatofwisdom', - name: "Hat of Wisdom", - accuracy: 100, - basePower: 110, - category: "Special", - priority: 0, - flags: {futuremove: 1}, - ignoreImmunity: false, - effectType: 'Move', - type: 'Psychic', - }, - }); - this.add('-start', source, 'move: Hat of Wisdom'); - source.switchFlag = 'hatofwisdom' as ID; - return this.NOT_FAIL; - }, - secondary: null, - target: "normal", - type: "Psychic", - }, - - // Mad Monty ¾° - callamaty: { - accuracy: 100, - basePower: 75, - category: "Physical", - desc: "30% chance to paralyze. Starts Rain Dance if not currently active.", - shortDesc: "30% paralyze. Sets Rain Dance.", - name: "Ca-LLAMA-ty", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Dark Void', target); - this.add('-anim', source, 'Plasma Fists', target); - }, - secondary: { - chance: 30, - status: 'par', - }, - self: { - onHit(source) { - this.field.setWeather('raindance'); - }, - }, - target: "normal", - type: "Electric", - }, - - // MajorBowman - corrosivecloud: { - accuracy: true, - basePower: 90, - category: "Special", - desc: "Has a 30% chance to burn the target. This move's type effectiveness against Steel is changed to be super effective no matter what this move's type is.", - shortDesc: "30% chance to burn. Super effective on Steel.", - name: "Corrosive Cloud", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Poison Gas', target); - this.add('-anim', source, 'Fire Spin', target); - }, - onEffectiveness(typeMod, target, type) { - if (type === 'Steel') return 1; - }, - ignoreImmunity: {'Poison': true}, - secondary: { - chance: 30, - status: 'brn', - }, - target: "normal", - type: "Poison", - }, - - // Marshmallon - rawwwr: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Heals the user by 33% of its max HP. Forces the target to switch to a random ally. User switches out after.", - shortDesc: "33% heal. Force out target, then switch.", - name: "RAWWWR", - gen: 8, - pp: 10, - priority: 0, - flags: {reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, heal: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Slack Off', source); - this.add('-anim', source, 'Roar of Time', target); - this.add('-anim', source, 'Roar', target); - }, - onAfterMoveSecondarySelf(pokemon, target, move) { - this.heal(pokemon.maxhp / 3, pokemon, pokemon, move); - }, - forceSwitch: true, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Dark", - }, - - // Meicoo - spamguess: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Calls the following moves in order, each with their normal respective accuracy: Haze -> Worry Seed -> Poison Powder -> Stun Spore -> Leech Seed -> Struggle (150 BP)", - shortDesc: "Does many things then struggles.", - name: "spamguess", - gen: 8, - pp: 10, - priority: 0, - flags: {}, - onTryMove() { - this.attrLastMove('[still]'); - }, - // fruit this move. - onHit(target, source) { - for (const move of ['Haze', 'Worry Seed', 'Poison Powder', 'Stun Spore', 'Leech Seed']) { - this.actions.useMove(move, source); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|That is not the answer - try again!`); - } - const strgl = this.dex.getActiveMove('Struggle'); - strgl.basePower = 150; - this.actions.useMove(strgl, source); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Meicoo')}|That is not the answer - try again!`); - }, - secondary: null, - target: "self", - type: "Fighting", - }, - - - // Mitsuki - terraforming: { - accuracy: 100, - basePower: 70, - category: "Physical", - desc: "Upon use, this move sets up Stealth Rock on the target's side of the field.", - shortDesc: "Sets up Stealth Rock.", - name: "Terraforming", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Rock Slide', target); - this.add('-anim', source, 'Ingrain', target); - this.add('-anim', source, 'Stealth Rock', target); - }, - sideCondition: 'stealthrock', - secondary: null, - target: "normal", - type: "Rock", - }, - - // n10siT - "unbind": { - accuracy: 100, - basePower: 60, - category: "Special", - desc: "Has a 100% chance to raise the user's Speed by 1 stage. If the user is a Hoopa in its Confined forme, this move is Psychic type, and Hoopa will change into its Unbound forme. If the user is a Hoopa in its Unbound forme, this move is Dark type, and Hoopa will change into its Confined forme. This move cannot be used successfully unless the user's current form, while considering Transform, is Confined or Unbound Hoopa.", - shortDesc: "Hoopa: Psychic; Unbound: Dark; 100% +1 Spe. Changes form.", - name: "Unbind", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1}, - onTryMove(pokemon, target, move) { - this.attrLastMove('[still]'); - if (pokemon.species.baseSpecies === 'Hoopa') { - return; - } - this.add('-fail', pokemon, 'move: Unbind'); - this.hint("Only a Pokemon whose form is Hoopa or Hoopa-Unbound can use this move."); - return null; - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Hyperspace Hole', target); - this.add('-anim', source, 'Hyperspace Fury', target); - }, - onHit(target, pokemon, move) { - if (pokemon.baseSpecies.baseSpecies === 'Hoopa') { - const forme = pokemon.species.forme === 'Unbound' ? '' : '-Unbound'; - pokemon.formeChange(`Hoopa${forme}`, this.effect, false, '[msg]'); - this.boost({spe: 1}, pokemon, pokemon, move); - } - }, - onModifyType(move, pokemon) { - if (pokemon.baseSpecies.baseSpecies !== 'Hoopa') return; - move.type = pokemon.species.name === 'Hoopa-Unbound' ? 'Dark' : 'Psychic'; - }, - secondary: null, - target: "normal", - type: "Psychic", - }, - - // naziel - notsoworthypirouette: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "50% chance to OHKO the target; otherwise, it OHKOes itself. On successive uses, this move has a 1/X chance of OHKOing the target, where X starts at 2 and doubles each time this move OHKOes the target. X resets to 2 if this move is not used in a turn.", - shortDesc: "50/50 to KO target/self. Worse used repeatedly.", - name: "Not-so-worthy Pirouette", - pp: 5, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, "High Jump Kick", target); - }, - onHit(target, source) { - source.addVolatile('notsoworthypirouette'); - const chance = source.volatiles['notsoworthypirouette']?.counter ? source.volatiles['notsoworthypirouette'].counter : 2; - if (this.randomChance(1, chance)) { - target.faint(); - } else { - source.faint(); - } - }, - condition: { - duration: 2, - onStart() { - this.effectState.counter = 2; - }, - onRestart() { - this.effectState.counter *= 2; - this.effectState.duration = 2; - }, - }, - secondary: null, - target: "normal", - type: "Fairy", - }, - - // Nol - madhacks: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Raises the user's Defense, Special Attack, and Special Defense by 1 stage. Sets Trick Room.", - shortDesc: "+1 Def/Spa/Spd. Sets Trick Room.", - name: "Mad Hacks", - gen: 8, - pp: 5, - priority: -7, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Acupressure', source); - }, - onHit(target, source) { - this.field.addPseudoWeather('trickroom'); - }, - boosts: { - def: 1, - spa: 1, - spd: 1, - }, - secondary: null, - target: "self", - type: "Ghost", - }, - - // Notater517 - technotubertransmission: { - accuracy: 90, - basePower: 145, - category: "Special", - desc: "If this move is successful, the user must recharge on the following turn and cannot select a move.", - shortDesc: "User cannot move next turn.", - name: "Techno Tuber Transmission", - pp: 5, - priority: 0, - flags: {recharge: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Techno Blast', target); - this.add('-anim', source, 'Never-Ending Nightmare', target); - }, - onHit() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Notater517')}|/html For more phantasmic music, check out this link.`); - }, - self: { - volatileStatus: 'mustrecharge', - }, - secondary: null, - target: "normal", - type: "Ghost", - }, - - // nui - wincondition: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "Inflicts the opponent with random status of sleep, paralysis, burn, or toxic. Then uses Dream Eater, Iron Head, Fire Blast, or Venoshock, respectively.", - shortDesc: "Chooses one of four move combos at random.", - name: "Win Condition", - pp: 10, - priority: 0, - flags: {protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, "Celebrate", target); - }, - onHit(target, source) { - const hax = this.sample(['slp', 'brn', 'par', 'tox']); - target.trySetStatus(hax, source); - if (hax === 'slp') { - this.actions.useMove('Dream Eater', source); - } else if (hax === 'par') { - this.actions.useMove('Iron Head', source); - } else if (hax === 'brn') { - this.actions.useMove('Fire Blast', source); - } else if (hax === 'tox') { - this.actions.useMove('Venoshock', source); - } - }, - secondary: null, - target: "normal", - type: "Fairy", - }, - - // OM~! - omzoom: { - accuracy: 100, - basePower: 70, - category: "Physical", - desc: "If this move is successful and the user has not fainted, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if there are no unfainted party members, or if the target switched out using an Eject Button or through the effect of the Emergency Exit or Wimp Out Abilities.", - shortDesc: "User switches out after damaging the target.", - name: "OM Zoom", - gen: 8, - pp: 10, - priority: 0, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Icicle Spear', target); - this.add('-anim', source, 'U-turn', target); - }, - onHit() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('OM~!')}|Bang Bang`); - }, - flags: {protect: 1, mirror: 1}, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Ice", - }, - - // Overneat - healingyou: { - accuracy: 100, - basePower: 115, - category: "Physical", - desc: "Heals the target by 50% of their maximum HP and eliminates any status problem before dealing damage, and lowers the target's Defense and Special Defense stat by 1 stage after dealing damage.", - shortDesc: "Foe: heal 50%HP & status, dmg, then -1 Def/SpD.", - name: "Healing you?", - gen: 8, - pp: 5, - priority: 0, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Heal Pulse', target); - this.heal(Math.ceil(target.baseMaxhp * 0.5)); - target.cureStatus(); - this.add('-anim', source, 'Close Combat', target); - }, - flags: {contact: 1, mirror: 1, protect: 1}, - secondary: { - chance: 100, - boosts: { - def: -1, - spd: -1, - }, - }, - target: "normal", - type: "Dark", - }, - - // Pants - wistfulthinking: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "Burns the target and switches out. The next Pokemon on the user's side heals 1/16 of their maximum HP per turn until they switch out.", - shortDesc: "Burn foe; switch out. Heals replacement.", - name: "Wistful Thinking", - pp: 10, - priority: 0, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Will-O-Wisp', target); - this.add('-anim', source, 'Parting Shot', target); - }, - onHit(target, source) { - target.trySetStatus('brn', source); - }, - self: { - sideCondition: 'givewistfulthinking', - }, - condition: { - onStart(pokemon) { - this.add('-start', pokemon, 'move: Wistful Thinking'); - }, - onResidualOrder: 5, - onResidualSubOrder: 5, - onResidual(pokemon) { - this.heal(pokemon.baseMaxhp / 16); - }, - }, - flags: {protect: 1, reflectable: 1}, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Ghost", - }, - - // Paradise - rapidturn: { - accuracy: 100, - basePower: 50, - category: "Physical", - desc: "Removes entry hazards, then user switches out after dealing damage", - shortDesc: "Removes hazards then switches out", - name: "Rapid Turn", - gen: 8, - pp: 20, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Rapid Spin', target); - this.add('-anim', source, 'U-turn', target); - }, - onAfterHit(target, pokemon) { - const sideConditions = [ - 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', - ]; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Turn', '[of] ' + pokemon); - } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); - } - }, - onAfterSubDamage(damage, target, pokemon) { - const sideConditions = [ - 'spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge', - ]; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Turn', '[of] ' + pokemon); - } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); - } - }, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Normal", - }, - - // PartMan - balefulblaze: { - accuracy: 100, - basePower: 75, - basePowerCallback(pokemon) { - if (pokemon.set.shiny) { - return 95; - } - return 75; - }, - category: "Special", - desc: "This move combines Ghost in its type effectiveness against the target. Raises the user's Special Attack by 1 stage if this move knocks out the target. If the user is shiny, the move's Base Power becomes 95.", - shortDesc: "+Ghost. +1 SpA if KOes target. Shiny: BP=95.", - name: "Baleful Blaze", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Inferno', target); - this.add('-anim', source, 'Hex', target); - }, - onEffectiveness(typeMod, target, type, move) { - return typeMod + this.dex.getEffectiveness('Ghost', type); - }, - onAfterMoveSecondarySelf(pokemon, target, move) { - if (!target || target.fainted || target.hp <= 0) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PartMan')}|FOR SNOM!`); - this.boost({spa: 1}, pokemon, pokemon, move); - } - }, - secondary: null, - target: "normal", - type: "Fire", - }, - - // peapod c - submartingale: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "Inflicts the target with burn, toxic, or paralysis, then sets up a Substitute.", - shortDesc: "Inflicts burn/toxic/paralysis. Makes Substitute.", - name: "Submartingale", - pp: 10, - priority: 0, - flags: {protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, "Dark Void", target); - this.add('-anim', source, "Celebrate", target); - }, - onTryHit(target, source) { - this.actions.useMove('Substitute', source); - }, - onHit(target, source) { - target.trySetStatus('brn', source); - target.trySetStatus('tox', source); - target.trySetStatus('par', source); - }, - secondary: null, - target: "normal", - type: "Dark", - }, - - // Perish Song - trickery: { - accuracy: 95, - basePower: 100, - category: "Physical", - desc: "Changes the target's item to something random.", - shortDesc: "Changes the target's item to something random.", - name: "Trickery", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, "Amnesia", source); - this.add('-anim', source, "Trick", target); - }, - onHit(target, source, effect) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Perish Song')}|/html `); - const item = target.takeItem(source); - if (!target.item) { - if (item) this.add('-enditem', target, item.name, '[from] move: Trickery', '[of] ' + source); - const items = this.dex.items.all().map(i => i.name); - let randomItem = ''; - if (items.length) randomItem = this.sample(items); - if (!randomItem) { - return; - } - if (target.setItem(randomItem)) { - this.add('-item', target, randomItem, '[from] move: Trickery', '[of] ' + source); - } - } - }, - secondary: null, - target: "normal", - type: "Ground", - }, - - // phiwings99 - ghostof1v1past: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Imprisons and traps the target, and then transforms into them. The user will be trapped after the use of this move. The user faints if the target faints.", - shortDesc: "Trap + ImprisonForm. Faints if the target faints.", - name: "Ghost of 1v1 Past", - gen: 8, - pp: 1, - noPPBoosts: true, - priority: 0, - flags: {protect: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Imprison', source); - this.add('-anim', source, 'Mean Look', target); - this.add('-anim', source, 'Transform', target); - }, - onHit(target, pokemon, move) { - target.addVolatile('trapped', pokemon, move, 'trapper'); - pokemon.addVolatile('imprison', pokemon, move); - if (!pokemon.transformInto(target)) { - return false; - } - pokemon.addVolatile('trapped', target, move, 'trapper'); - pokemon.addVolatile('ghostof1v1past', pokemon); - pokemon.volatiles['ghostof1v1past'].targetPokemon = target; - }, - condition: { - onAnyFaint(target) { - if (target === this.effectState.targetPokemon) this.effectState.source.faint(); - }, - }, - secondary: null, - target: "normal", - type: "Ghost", - }, - - // piloswine gripado - iciclespirits: { - accuracy: 100, - basePower: 90, - category: "Physical", - desc: "The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down.", - shortDesc: "User recovers 50% of the damage dealt.", - name: "Icicle Spirits", - gen: 8, - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, heal: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Horn Leech', target); - }, - drain: [1, 2], - secondary: null, - target: "normal", - type: "Ice", - }, - - // PiraTe Princess - dungeonsdragons: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Prevents the target from switching out and adds Dragon to the target's type. Has a 5% chance to either confuse the user or guarantee that the next attack is a critical hit, 15% chance to raise the user's Attack, Defense, Special Attack, Special Defense, or Speed by 1 stage, and a 15% chance to raise user's Special Attack and Speed by 1 stage.", - shortDesc: "Target: can't switch,+Dragon. Does other things.", - name: "Dungeons & Dragons", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Imprison', target); - this.add('-anim', source, 'Trick-or-Treat', target); - this.add('-anim', source, 'Shell Smash', source); - }, - onHit(target, source, move) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('PiraTe Princess')}|did someone say d&d?`); - target.addVolatile('trapped', source, move, 'trapper'); - if (!target.hasType('Dragon') && target.addType('Dragon')) { - this.add('-start', target, 'typeadd', 'Dragon', '[from] move: Dungeons & Dragons'); - } - const result = this.random(21); - if (result === 20) { - source.addVolatile('laserfocus'); - } else if (result >= 2 && result <= 16) { - const boost: SparseBoostsTable = {}; - const stats: BoostID[] = ['atk', 'def', 'spa', 'spd', 'spe']; - boost[stats[this.random(5)]] = 1; - this.boost(boost, source); - } else if (result >= 17 && result <= 19) { - this.boost({spa: 1, spe: 1}, source); - } else { - source.addVolatile('confusion'); - } - }, - target: "normal", - type: "Dragon", - }, - - // Psynergy - clearbreath: { - accuracy: 100, - basePower: 0, - basePowerCallback(pokemon, target) { - let power = 60 + 20 * target.positiveBoosts(); - if (power > 200) power = 200; - return power; - }, - category: "Special", - desc: "Power is equal to 60+(X*20), where X is the target's total stat stage changes that are greater than 0, but not more than 200 power.", - shortDesc: "60 power +20 for each of the target's stat boosts.", - gen: 8, - name: "Clear Breath", - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Dragon Breath', target); - this.add('-anim', source, 'Haze', target); - }, - secondary: null, - target: "normal", - type: "Flying", - }, - - // ptoad - croak: { - accuracy: 100, - basePower: 20, - basePowerCallback(pokemon, target, move) { - const bp = move.basePower + 20 * pokemon.positiveBoosts(); - return bp; - }, - category: "Special", - desc: "Power is equal to 20+(X*20), where X is the user's total stat stage changes that are greater than 0. User raises 2 random stats by 1 if it has less than 8 positive stat changes.", - shortDesc: "+20 power/boost. +1 2 random stats < 8 boosts.", - name: "Croak", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source, move) { - this.add('-anim', source, 'Splash', source); - if (source.positiveBoosts() < 8) { - const stats: BoostID[] = []; - let stat: BoostID; - const exclude: string[] = ['accuracy', 'evasion']; - for (stat in source.boosts) { - if (source.boosts[stat] < 6 && !exclude.includes(stat)) { - stats.push(stat); - } - } - if (stats.length) { - let randomStat = this.sample(stats); - const boost: SparseBoostsTable = {}; - boost[randomStat] = 1; - if (stats.length > 1) { - stats.splice(stats.indexOf(randomStat), 1); - randomStat = this.sample(stats); - boost[randomStat] = 1; - } - this.boost(boost, source, source, move); - } - } - this.add('-anim', source, 'Hyper Voice', source); - }, - secondary: null, - target: "normal", - type: "Water", - }, - - // used for ptoad's ability - swampyterrain: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "For 5 turns, the terrain becomes Swampy Terrain. During the effect, the power of Electric-type, Grass-type, and Ice-type attacks made by grounded Pokemon are halved and Water and Ground types heal 1/16 at the end of each turn if grounded. Fails if the current terrain is Swampy Terrain.", - shortDesc: "5trn. Grounded:-Elec/Grs/Ice pow, Wtr/Grd:Lefts.", - name: "Swampy Terrain", - pp: 10, - priority: 0, - flags: {nonsky: 1}, - terrain: 'swampyterrain', - condition: { - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('terrainextender')) { - return 8; - } - return 5; - }, - onBasePowerPriority: 6, - onBasePower(basePower, attacker, defender, move) { - if (['Electric', 'Grass', 'Ice'].includes(move.type) && attacker.isGrounded() && !attacker.isSemiInvulnerable()) { - this.debug('swampy terrain weaken'); - return this.chainModify(0.5); - } - }, - onFieldStart(field, source, effect) { - if (effect?.effectType === 'Ability') { - this.add('-fieldstart', 'move: Swampy Terrain', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-fieldstart', 'move: Swampy Terrain'); - } - this.add('-message', 'The battlefield became swamped!'); - }, - onResidualOrder: 5, - onResidual(pokemon) { - if ((pokemon.hasType('Water') || pokemon.hasType('Ground')) && pokemon.isGrounded() && !pokemon.isSemiInvulnerable()) { - this.debug('Pokemon is grounded and a Water or Ground type, healing through Swampy Terrain.'); - if (this.heal(pokemon.baseMaxhp / 16, pokemon, pokemon)) { - this.add('-message', `${pokemon.name} was healed by the terrain!`); - } - } - }, - onFieldResidualOrder: 21, - onFieldResidualSubOrder: 3, - onFieldEnd() { - this.add('-fieldend', 'move: Swampy Terrain'); - }, - }, - secondary: null, - target: "all", - type: "Ground", - }, - - // Rabia - psychodrive: { - accuracy: 100, - basePower: 80, - category: "Special", - desc: "Has a 30% chance to boost the user's Speed by 1 stage.", - shortDesc: "30% chance to boost the user's Spe by 1.", - name: "Psycho Drive", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Genesis Supernova', target); - }, - secondary: { - chance: 30, - self: { - boosts: {spe: 1}, - }, - }, - target: "normal", - type: "Psychic", - }, - - // Rach - spindawheel: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user uses a random hazard-setting move; burns, badly poisons, or paralyzes the target; and then switches out.", - shortDesc: "Sets random hazard; brn/tox/par; switches.", - name: "Spinda Wheel", - gen: 8, - pp: 20, - priority: 0, - flags: {reflectable: 1, protect: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - target.m.spindaHazard = this.sample(['Sticky Web', 'Stealth Rock', 'Spikes', 'Toxic Spikes', 'G-Max Steelsurge']); - target.m.spindaStatus = this.sample(['Thunder Wave', 'Toxic', 'Will-O-Wisp']); - if (target.m.spindaHazard) { - this.add('-anim', source, target.m.spindaHazard, target); - } - if (target.m.spindaStatus) { - this.add('-anim', source, target.m.spindaStatus, target); - } - }, - onHit(target, source, move) { - if (target) { - if (target.m.spindaHazard) { - target.side.addSideCondition(target.m.spindaHazard); - } - if (target.m.spindaStatus) { - const s = target.m.spindaStatus; - target.trySetStatus(s === 'Toxic' ? 'tox' : s === 'Thunder Wave' ? 'par' : 'brn'); - } - } - }, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Normal", - }, - - // Rage - shockedlapras: { - accuracy: 100, - basePower: 75, - category: "Special", - desc: "Has a 100% chance to paralyze the user.", - shortDesc: "100% chance to paralyze the user.", - name: ":shockedlapras:", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Thunder', target); - if (!source.status) this.add('-anim', source, 'Thunder Wave', source); - }, - onHit() { - this.add(`raw|`); - }, - secondary: { - chance: 100, - self: { - status: 'par', - }, - }, - target: "normal", - type: "Electric", - }, - - // used for Rage's ability - inversionterrain: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "For 5 turns, the terrain becomes Inversion Terrain. During the effect, the the type chart is inverted, and grounded, paralyzed Pokemon have their Speed doubled. Fails if the current terrain is Inversion Terrain.", - shortDesc: "5 turns. Type chart inverted. Par: 2x Spe.", - name: "Inversion Terrain", - gen: 8, - pp: 10, - priority: 0, - flags: {}, - terrain: 'inversionterrain', - condition: { - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('terrainextender')) { - return 8; - } - return 5; - }, - onNegateImmunity: false, - onEffectivenessPriority: 1, - onEffectiveness(typeMod, target, type, move) { - // The effectiveness of Freeze Dry on Water isn't reverted - if (move && move.id === 'freezedry' && type === 'Water') return; - if (move && !this.dex.getImmunity(move, type)) return 1; - return -typeMod; - }, - onFieldStart(field, source, effect) { - if (effect?.effectType === 'Ability') { - this.add('-fieldstart', 'move: Inversion Terrain', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-fieldstart', 'move: Inversion Terrain'); - } - this.add('-message', 'The battlefield became upside down!'); - }, - onFieldResidualOrder: 21, - onFieldResidualSubOrder: 3, - onFieldEnd() { - this.add('-fieldend', 'move: Inversion Terrain'); - }, - }, - secondary: null, - target: "all", - type: "Psychic", - }, - - // Raihan Kibana - stonykibbles: { - accuracy: 100, - basePower: 90, - category: "Physical", - desc: "For 5 turns, the weather becomes Sandstorm. At the end of each turn except the last, all active Pokemon lose 1/16 of their maximum HP, rounded down, unless they are a Ground, Rock, or Steel type, or have the Magic Guard, Overcoat, Sand Force, Sand Rush, or Sand Veil Abilities. During the effect, the Special Defense of Rock-type Pokemon is multiplied by 1.5 when taking damage from a special attack. Lasts for 8 turns if the user is holding Smooth Rock. Fails if the current weather is Sandstorm.", - shortDesc: "Sets Sandstorm.", - name: "Stony Kibbles", - gen: 8, - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onHit() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Raihan Kibana')}|Let the winds blow! Stream forward, Sandstorm!`); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Rock Slide', target); - this.add('-anim', source, 'Crunch', target); - this.add('-anim', source, 'Sandstorm', target); - }, - weather: 'Sandstorm', - target: "normal", - type: "Normal", - }, - - // Raj.Shoot - fanservice: { - accuracy: 100, - basePower: 90, - category: "Physical", - desc: "The user has its Attack and Speed raised by 1 stage after KOing a target. If the user is a Charizard in its base form, it will Mega Evolve into Mega Charizard X.", - shortDesc: "+1 Atk/Spe after KO. Mega evolves user.", - name: "Fan Service", - gen: 8, - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source, move) { - this.add('-anim', source, 'Sacred Fire', target); - }, - onAfterMoveSecondarySelf(pokemon, target, move) { - if (!target || target.fainted || target.hp <= 0) { - this.boost({atk: 1, spe: 1}, pokemon, pokemon, move); - } - }, - onHit(target, source) { - if (source.species.id === 'charizard') { - this.actions.runMegaEvo(source); - } - }, - secondary: null, - target: "normal", - type: "Grass", - }, - - // Ransei - ripsei: { - accuracy: 100, - basePower: 0, - damageCallback(pokemon) { - const damage = pokemon.hp; - return damage; - }, - category: "Special", - desc: "Deals damage to the target equal to the user's current HP. If this move is successful, the user faints.", - shortDesc: "Does damage equal to the user's HP. User faints.", - name: "ripsei", - gen: 8, - pp: 5, - priority: 1, - flags: {contact: 1, protect: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Final Gambit', target); - }, - onAfterMove(pokemon, target, move) { - if (pokemon.moveThisTurnResult === true) { - pokemon.faint(); - } - }, - secondary: null, - target: "normal", - type: "Fighting", - }, - - // RavioliQueen - witchinghour: { - accuracy: 90, - basePower: 60, - category: "Special", - desc: "50% chance to trap the target, dealing 1/8th of their HP, rounded down, in damage each turn it is trapped.", - shortDesc: "50% to trap, dealing 1/8 each turn.", - name: "Witching Hour", - pp: 5, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Spirit Shackle', target); - this.add('-anim', source, 'Curse', target); - }, - secondary: { - chance: 50, - volatileStatus: 'haunting', - }, - target: "normal", - type: "Ghost", - }, - - // for RavioliQueen's ability - pitchblackterrain: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "For 5 turns, Non Ghost types take 1/16th damage; Has boosting effects on Mismagius.", - shortDesc: "5 turns. Non Ghost types take 1/16th damage; Has boosting effects on Mismagius.", - name: "Pitch Black Terrain", - gen: 8, - pp: 10, - priority: 0, - flags: {}, - terrain: 'pitchblackterrain', - condition: { - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('terrainextender')) { - return 8; - } - return 5; - }, - onHit(target, source, move) { - if (!target.hp || target.species.name !== 'Mismagius') return; - if (move?.effectType === 'Move' && move.category !== 'Status') { - if (this.boost({spe: 1}, target)) { - this.add('-message', `${target.name} got a boost by the terrain!`); - } - } - }, - onSwitchInPriority: -1, - onSwitchIn(target) { - if (target?.species.name !== 'Mismagius') return; - if (this.boost({spa: 1, spd: 1}, target)) { - this.add('-message', `${target.name} got a boost by the terrain!`); - } - }, - onFieldStart(field, source, effect) { - if (effect?.effectType === 'Ability') { - this.add('-fieldstart', 'move: Pitch Black Terrain', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-fieldstart', 'move: Pitch Black Terrain'); - } - this.add('-message', 'The battlefield became dark!'); - if (source?.species.name !== 'Mismagius') return; - if (this.boost({spa: 1, spd: 1}, source)) { - this.add('-message', `${source.name} got a boost by the terrain!`); - } - }, - onResidualOrder: 5, - onResidual(pokemon) { - if (pokemon.isSemiInvulnerable()) return; - if (!pokemon || pokemon.hasType('Ghost')) return; - if (this.damage(pokemon.baseMaxhp / 16, pokemon)) { - this.add('-message', `${pokemon.name} was hurt by the terrain!`); - } - }, - onFieldResidualOrder: 21, - onFieldResidualSubOrder: 3, - onFieldEnd() { - this.add('-fieldend', 'move: Pitch Black Terrain'); - }, - }, - secondary: null, - target: "all", - type: "Ghost", - }, - - // Robb576 - integeroverflow: { - accuracy: true, - basePower: 200, - category: "Special", - desc: "This move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes. This move and its effects ignore the Abilities of other Pokemon.", - shortDesc: "Physical if user's Atk > Sp. Atk. Ignores Abilities.", - name: "Integer Overflow", - gen: 8, - pp: 1, - noPPBoosts: true, - priority: 0, - flags: {}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Light That Burns The Sky', target); - }, - onModifyMove(move, pokemon) { - if (pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) move.category = 'Physical'; - }, - ignoreAbility: true, - isZ: "modium6z", - secondary: null, - target: "normal", - type: "Psychic", - }, - - mode5offensive: { - accuracy: true, - basePower: 30, - category: "Special", - desc: "This move hits three times. Every hit has a 20% chance to drop the target's SpD by 1 stage.", - shortDesc: "3 hits. Each hit: 20% -1 SpD.", - name: "Mode [5: Offensive]", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Focus Blast', target); - this.add('-anim', source, 'Zap Cannon', target); - }, - secondary: { - chance: 20, - boosts: { - spd: -1, - }, - }, - multihit: 3, - target: "normal", - type: "Fighting", - }, - - mode7defensive: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "This move cures the user's party of all status conditions, and then forces the target to switch to a random ally.", - shortDesc: "Heal Bell + Whirlwind.", - name: "Mode [7: Defensive]", - gen: 8, - pp: 15, - priority: -6, - flags: {reflectable: 1, protect: 1, sound: 1, bypasssub: 1}, - forceSwitch: true, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Heal Bell', source); - this.add('-anim', source, 'Roar', source); - }, - onHit(pokemon, source) { - this.add('-activate', source, 'move: Mode [7: Defensive]'); - const side = source.side; - let success = false; - for (const ally of side.pokemon) { - if (ally.hasAbility('soundproof')) continue; - if (ally.cureStatus()) success = true; - } - return success; - }, - target: "normal", - type: "Normal", - }, - - // Sectonia - homunculussvanity: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Raises the Defense and Special Defense by 1 stage. Lowers the foe's higher offensive stat by 1 stage.", - shortDesc: "+1 Def & SpD. -1 to foe's highest offensive stat.", - name: "Homunculus's Vanity", - gen: 8, - pp: 10, - priority: 0, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Cosmic Power', source); - this.add('-anim', source, 'Psychic', target); - }, - self: { - onHit(source) { - let totalatk = 0; - let totalspa = 0; - for (const target of source.foes()) { - totalatk += target.getStat('atk', false, true); - totalspa += target.getStat('spa', false, true); - if (totalatk && totalatk >= totalspa) { - this.boost({atk: -1}, target); - } else if (totalspa) { - this.boost({spa: -1}, target); - } - } - this.boost({def: 1, spd: 1}, source); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Sectonia')}|Jelly baby ;w;`); - }, - }, - secondary: null, - target: "self", - type: "Psychic", - zMove: {boost: {atk: 1}}, - }, - - // Segmr - tsukuyomi: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "The user loses 1/4 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. Fails if there is no target or if the target is already affected. Prevents the target from switching out. The target can still switch out if it is holding Shed Shell or uses Baton Pass, Parting Shot, Teleport, U-turn, or Volt Switch. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field.", - shortDesc: "Curses the target for 1/4 HP and traps it.", - name: "Tsukuyomi", - gen: 8, - pp: 5, - priority: 0, - flags: {bypasssub: 1, protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Dark Void', target); - this.add('-anim', source, 'Curse', target); - }, - onHit(pokemon, source, move) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Segmr')}|I don't like naruto actually let someone else write this message plz.`); - this.directDamage(source.maxhp / 4, source, source); - pokemon.addVolatile('curse'); - pokemon.addVolatile('trapped', source, move, 'trapper'); - }, - secondary: null, - target: "normal", - type: "Dark", - }, - - // sejesensei - badopinion: { - accuracy: 90, - basePower: 120, - category: "Physical", - desc: "Forces the opponent out. The user's Defense is raised by 1 stage upon hitting.", - shortDesc: "Forces the opponent out. +1 Def.", - name: "Bad Opinion", - gen: 8, - pp: 10, - priority: -6, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Hyper Voice', target); - this.add('-anim', source, 'Sludge Bomb', target); - }, - onHit() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('sejesensei')}|Please go read To Love-Ru I swear its really good, wait... don’t leave…`); - }, - self: { - boosts: { - def: 1, - }, - }, - forceSwitch: true, - secondary: null, - target: "normal", - type: "Poison", - }, - - // Seso - legendaryswordsman: { - accuracy: 85, - basePower: 95, - onTry(source, target) { - this.attrLastMove('[still]'); - const action = this.queue.willMove(target); - const move = action?.choice === 'move' ? action.move : null; - if (!move || (move.category === 'Status' && move.id !== 'mefirst') || target.volatiles['mustrecharge']) { - if (move?.category === 'Status') { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|Irritating a better swordsman than yourself is always a good way to end up dead.`); - } else { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|Scars on the back are a swordsman's shame.`); - } - return false; - } - }, - category: "Physical", - desc: "If the move hits, the user gains +1 Speed. This move deals not very effective damage to Flying-type Pokemon. This move fails if the target does not intend to attack.", - shortDesc: "+1 Spe on hit. Fails if target doesn't attack.", - name: "Legendary Swordsman", - gen: 8, - pp: 10, - priority: 1, - flags: {contact: 1, protect: 1}, - ignoreImmunity: {'Ground': true}, - onEffectiveness(typeMod, target, type) { - if (type === 'Flying') return -1; - }, - onTryMove(source, target, move) { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Seso')}|FORWARD!`); - this.add('-anim', source, 'Gear Grind', target); - this.add('-anim', source, 'Thief', target); - }, - secondary: { - chance: 100, - self: { - boosts: { - spe: 1, - }, - }, - }, - target: "normal", - type: "Ground", - }, - - // Shadecession - shadeuppercut: { - accuracy: 100, - basePower: 90, - category: "Physical", - desc: "This move ignores type effectiveness, substitutes, and the opposing side's Reflect, Light Screen, Safeguard, Mist and Aurora Veil.", - shortDesc: "Ignores typing, sub, & screens.", - name: "Shade Uppercut", - gen: 8, - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Sky Uppercut', target); - this.add('-anim', source, 'Shadow Sneak', target); - }, - onEffectiveness(typeMod, target, type) { - return 0; - }, - infiltrates: true, - secondary: null, - target: "normal", - type: "Dark", - }, - - // Soft Flex - updraft: { - accuracy: 75, - basePower: 75, - category: "Special", - desc: "Changes target's secondary typing to Flying for 2-5 turns unless the target is Ground-type or affected by Ingrain. This move cannot miss in rain.", - shortDesc: "Target: +Flying type. Rain: never misses.", - name: "Updraft", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Twister', target); - }, - onModifyMove(move, pokemon, target) { - if (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) { - move.accuracy = true; - } - }, - condition: { - noCopy: true, - duration: 5, - durationCallback(target, source) { - return this.random(5, 7); - }, - onStart(target) { - this.effectState.origTypes = target.getTypes(); // store original types - if (target.getTypes().length === 1) { // single type mons - if (!target.addType('Flying')) return false; - this.add('-start', target, 'typeadd', 'Flying', '[from] move: Updraft'); - } else { // dual typed mons - const primary = target.getTypes()[0]; // take the first type - if (!target.setType([primary, 'Flying'])) return false; - this.add('-start', target, 'typechange', primary + '/Flying', '[from] move: Updraft'); - } - }, - onEnd(target) { - if (!target.setType(this.effectState.origTypes)) return false; // reset the types - this.add('-start', target, 'typechange', this.effectState.origTypes.join('/'), '[silent]'); - }, - }, - secondary: { - chance: 100, - onHit(target) { - if (target.hasType(['Flying', 'Ground']) || target.volatiles['ingrain'] || target.volatiles['brilliant']) return false; - target.addVolatile('updraft'); - }, - }, - target: "normal", - type: "Flying", - }, - - // used for Soft Flex's ability - tempestterrain: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Heals Electric types for 1/16 of their maximum HP, rounded down, at the end of each turn. Causes Flying- and Steel-types and Levitate users to lose 1/16 of their maximum HP, rounded down, at the end of each turn; if the Pokemon is also Electric-type, they only get the healing effect.", - shortDesc: "Heals Electrics. Hurts Flyings and Steels.", - name: "Tempest Terrain", - pp: 10, - priority: 0, - flags: {nonsky: 1}, - terrain: 'tempestterrain', - condition: { - duration: 5, - durationCallback(source, effect) { - if (source?.hasItem('terrainextender')) { - return 8; - } - return 5; - }, - onResidualOrder: 5, - onResidual(pokemon) { - if (pokemon.hasType('Electric')) { - if (this.heal(pokemon.baseMaxhp / 8, pokemon)) { - this.add('-message', `${pokemon.name} was healed by the terrain!`); - } - } else if (!pokemon.hasType('Electric') && (pokemon.hasType(['Flying', 'Steel']) || pokemon.hasAbility('levitate'))) { - if (this.damage(pokemon.baseMaxhp / 8, pokemon)) { - this.add('-message', `${pokemon.name} was hurt by the terrain!`); - } - } - }, - onFieldStart(field, source, effect) { - if (effect?.effectType === 'Ability') { - this.add('-fieldstart', 'move: Tempest Terrain', '[from] ability: ' + effect, '[of] ' + source); - } else { - this.add('-fieldstart', 'move: Tempest Terrain'); - } - this.add('-message', 'The battlefield became stormy!'); - }, - onFieldResidualOrder: 21, - onFieldResidualSubOrder: 3, - onFieldEnd() { - this.add('-fieldend', 'move: Tempest Terrain'); - }, - }, - secondary: null, - target: "all", - type: "Electric", - zMove: {boost: {spe: 1}}, - contestType: "Clever", - }, - - // Spandan - imtoxicyoureslippinunder: { - accuracy: true, - basePower: 110, - category: "Physical", - overrideOffensivePokemon: 'target', - overrideOffensiveStat: 'spd', - desc: "This move uses the target's Special Defense to calculate damage (like Foul Play). This move is neutrally effective against Steel-types.", - shortDesc: "Uses foe's SpD as user's Atk. Hits Steel.", - name: "I'm Toxic You're Slippin' Under", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Sludge Bomb', target); - this.add('-anim', source, 'Sludge Wave', target); - }, - ignoreImmunity: {'Poison': true}, - secondary: null, - target: "normal", - type: "Poison", - }, - - // Struchni - veto: { - accuracy: 100, - basePower: 80, - category: "Physical", - desc: "If the user's stats was raised on the previous turn, double power and gain +1 priority.", - shortDesc: "If stat raised last turn: x2 power, +1 prio.", - name: "Veto", - gen: 8, - pp: 5, - priority: 0, - flags: {contact: 1, protect: 1}, - onTryMove(source) { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Head Smash', target); - }, - // Veto interactions located in formats.ts - onModifyPriority(priority, source, target, move) { - if (source.m.statsRaisedLastTurn) { - return priority + 1; - } - }, - basePowerCallback(pokemon, target, move) { - if (pokemon.m.statsRaisedLastTurn) { - return move.basePower * 2; - } - return move.basePower; - }, - onHit(target, source) { - if (source.m.statsRaisedLastTurn) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Struchni')}|**veto**`); - } - }, - target: "normal", - type: "Steel", - }, - - // Teclis - kaboom: { - accuracy: 100, - basePower: 150, - category: "Special", - desc: "This move's Base Power is equal to 70+(80*user's current HP/user's max HP). Sets Sunny Day.", - shortDesc: "Better Eruption. Sets Sun.", - name: "Kaboom", - pp: 5, - priority: 0, - flags: {protect: 1, mirror: 1}, - weather: 'sunnyday', - basePowerCallback(pokemon, target, move) { - return 70 + 80 * Math.floor(pokemon.hp / pokemon.maxhp); - }, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Eruption', target); - this.add('-anim', source, 'Earthquake', target); - }, - secondary: null, - target: "normal", - type: "Fire", - }, - - // temp - dropadraco: { - accuracy: 90, - basePower: 130, - category: "Special", - desc: "Lowers the user's Special Attack by 2 stages, then raises it by 1 stage.", - shortDesc: "Lowers user's Sp. Atk by 2, then raises by 1.", - name: "DROP A DRACO", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Draco Meteor', target); - }, - self: { - boosts: { - spa: -2, - }, - }, - onAfterMoveSecondarySelf(source, target) { - this.boost({spa: 1}, source, source, this.dex.getActiveMove('dropadraco')); - }, - secondary: null, - target: "normal", - type: "Dragon", - }, - - // The Immortal - wattup: { - accuracy: 100, - basePower: 73, - category: "Special", - desc: "Has a 75% chance to raise the user's Speed by 1 stage.", - shortDesc: "75% chance to raise the user's Speed by 1 stage.", - name: "Watt Up", - gen: 8, - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Volt Switch', target); - this.add('-anim', source, 'Nasty Plot', source); - }, - secondary: { - chance: 75, - self: { - boosts: { - spe: 1, - }, - }, - }, - target: "normal", - type: "Electric", - }, - - // thewaffleman - icepress: { - accuracy: 100, - basePower: 80, - category: "Physical", - desc: "Damage is calculated using the user's Defense stat as its Attack, including stat stage changes. Other effects that modify the Attack stat are used as normal. This move has a 10% chance to freeze the target and is super effective against Fire-types.", - shortDesc: "Body Press. 10% Frz. SE vs Fire.", - name: "Ice Press", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, contact: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Body Press', target); - }, - onEffectiveness(typeMod, target, type) { - if (type === 'Fire') return 1; - }, - overrideOffensiveStat: 'def', - secondary: { - chance: 10, - status: "frz", - }, - target: "normal", - type: "Ice", - }, - - // tiki - rightoncue: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Randomly uses 1-5 different support moves.", - shortDesc: "Uses 1-5 support moves.", - name: "Right. On. Cue!", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onHit(target, source) { - const supportMoves = [ - 'Wish', 'Heal Bell', 'Defog', 'Spikes', 'Taunt', 'Torment', - 'Haze', 'Encore', 'Reflect', 'Light Screen', 'Sticky Web', 'Acupressure', - 'Gastro Acid', 'Hail', 'Heal Block', 'Spite', 'Parting Shot', 'Trick Room', - ]; - const randomTurns = this.random(5) + 1; - let successes = 0; - for (let x = 1; x <= randomTurns; x++) { - const randomMove = this.sample(supportMoves); - supportMoves.splice(supportMoves.indexOf(randomMove), 1); - this.actions.useMove(randomMove, target); - successes++; - } - if (successes === 1) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|truly a dumpster fire`); - } else if (successes >= 4) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('tiki')}|whos ${source.side.foe.name}?`); - } - }, - secondary: null, - target: "self", - type: "Normal", - }, - - // trace - herocreation: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user switches out and raises the incoming Pokemon's Attack and Special Attack by 1 stage.", - shortDesc: "User switches, +1 Atk/SpA to replacement.", - name: "Hero Creation", - gen: 8, - pp: 10, - priority: -6, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Teleport', source); - this.add('-anim', source, 'Work Up', source); - }, - selfSwitch: true, - sideCondition: 'herocreation', - condition: { - duration: 1, - onSideStart(side, source) { - this.debug('Hero Creation started on ' + side.name); - this.effectState.positions = []; - for (const i of side.active.keys()) { - this.effectState.positions[i] = false; - } - this.effectState.positions[source.position] = true; - }, - onSideRestart(side, source) { - this.effectState.positions[source.position] = true; - }, - onSwitchInPriority: 1, - onSwitchIn(target) { - this.add('-activate', target, 'move: Hero Creation'); - this.boost({atk: 1, spa: 1}, target, null, this.dex.getActiveMove('herocreation')); - }, - }, - secondary: null, - target: "self", - type: "Psychic", - }, - - // Trickster - soulshatteringstare: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "The user loses 1/4 of its maximum HP, rounded down and even if it would cause fainting, in exchange for the target losing 1/4 of its maximum HP, rounded down, at the end of each turn while it is active. If the target uses Baton Pass, the replacement will continue to be affected. For 5 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected.", - shortDesc: "Curses target for 1/4 HP & blocks it from healing.", - name: "Soul-Shattering Stare", - gen: 8, - pp: 10, - priority: -7, - flags: {bypasssub: 1, protect: 1, reflectable: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Glare', target); - this.add('-anim', source, 'Trick-or-Treat', source); - }, - onHit(pokemon, source) { - this.directDamage(source.maxhp / 4, source, source); - pokemon.addVolatile('curse'); - pokemon.addVolatile('healblock'); - }, - secondary: null, - target: "normal", - type: "Ghost", - }, - - // Vexen - asteriusstrike: { - accuracy: 85, - basePower: 100, - category: "Physical", - desc: "Has a 25% chance to confuse the target.", - shortDesc: "25% chance to confuse the target.", - name: "Asterius Strike", - gen: 8, - pp: 5, - priority: 0, - flags: {protect: 1, contact: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Giga Impact', target); - }, - secondary: { - chance: 25, - volatileStatus: 'confusion', - }, - target: "normal", - type: "Normal", - }, - - // vivalospride - dripbayless: { - accuracy: true, - basePower: 85, - category: "Special", - desc: "This move's type effectiveness against Water is changed to be super effective no matter what this move's type is.", - shortDesc: "Super effective on Water.", - name: "DRIP BAYLESS", - gen: 8, - pp: 20, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Lava Plume', target); - this.add('-anim', source, 'Sunny Day', target); - }, - onEffectiveness(typeMod, target, type) { - if (type === 'Water') return 1; - }, - secondary: null, - target: "normal", - type: "Fire", - }, - - // Volco - glitchexploiting: { - accuracy: 100, - basePower: 60, - category: "Special", - desc: "1/4096 chance to KO the target and then the user, and a 1/1024 chance to force out the target and then the user; 20% chance to burn the target, and a 5% chance to freeze or paralyze a random Pokemon on the field; 30% chance to confuse the target.", - shortDesc: "Has a chance to do many things.", - name: "Glitch Exploiting", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Explosion', target); - this.add('-anim', source, 'Tackle', source); - this.add('-anim', source, 'Blue Flare', target); - }, - onHit(target, source, move) { - const random = this.random(4096); - if (random === 1) { - target.faint(source, move); - source.faint(source, move); - } else if ([1024, 2048, 3072, 4096].includes(random)) { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|haha memory corruption go brrr...`); - target.forceSwitchFlag = true; - source.forceSwitchFlag = true; - } else if (random === 69) { - this.add(`raw|
Pokemon Showdown has not crashed!
It just got sick of all the rng in Volco's Glitch Exploiting move and gave up.
(Do not report this, this is intended.)
`); - this.tie(); - } - }, - secondaries: [ - { - chance: 5, - onHit(target, source) { - const status = this.sample(['frz', 'par']); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Volco')}|Ever just screw up the trick and corrupt the memory and cause the wrong thing to happen possibly ruining a run? No? Just me? okay...`); - if (this.randomChance(1, 2)) { - target.trySetStatus(status); - } else { - source.trySetStatus(status); - } - }, - }, - { - chance: 20, - status: 'brn', - }, - { - chance: 30, - volatileStatus: 'confusion', - }, - ], - target: "normal", - type: "Fire", - }, - - // vooper - pandaexpress: { - accuracy: 100, - basePower: 0, - category: "Status", - desc: "Lowers the target's Attack and Special Attack by 2 stages. If this move is successful, the user switches out even if it is trapped and is replaced immediately by a selected party member. The user does not switch out if the target's Attack and Special Attack stat stages were both unchanged, or if there are no unfainted party members.", - shortDesc: "Double strength Parting Shot.", - name: "Panda Express", - gen: 8, - pp: 20, - priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Parting Shot', target); - }, - onHit(target, source, move) { - const success = this.boost({atk: -2, spa: -2}, target, source); - if (!success && !target.hasAbility('mirrorarmor')) { - delete move.selfSwitch; - } - }, - selfSwitch: true, - secondary: null, - target: "normal", - type: "Dark", - }, - - // yuki - classchange: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "If the user is a cosplay Pikachu forme, it randomly changes forme and has an effect depending on the forme chosen: Cleric uses Strength Sap, Ninja uses Confuse Ray, Dancer uses Feather Dance, Songstress uses Sing, and Jester uses Charm.", - shortDesc: "Pikachu: Random forme and effect.", - name: "Class Change", - gen: 8, - pp: 6, - noPPBoosts: true, - priority: 0, - flags: {}, - onTryMove(source) { - this.attrLastMove('[still]'); - }, - onPrepareHit(foe, source, move) { - const formes = ['Cleric', 'Ninja', 'Dancer', 'Songstress', 'Jester'] - .filter(forme => ssbSets[`yuki-${forme}`].species !== source.species.name); - source.m.yukiCosplayForme = this.sample(formes); - switch (source.m.yukiCosplayForme) { - case 'Cleric': - this.actions.useMove("Strength Sap", source); - break; - case 'Ninja': - this.actions.useMove("Confuse Ray", source); - break; - case 'Dancer': - this.actions.useMove("Feather Dance", source); - break; - case 'Songstress': - this.actions.useMove("Sing", source); - break; - case 'Jester': - this.actions.useMove("Charm", source); - break; - } - }, - onHit(target, source) { - if (source.baseSpecies.baseSpecies !== 'Pikachu') return; - switch (source.m.yukiCosplayForme) { - case 'Cleric': - changeSet(this, source, ssbSets['yuki-Cleric']); - this.add('-message', 'yuki patches up her wounds!'); - return; - case 'Ninja': - changeSet(this, source, ssbSets['yuki-Ninja']); - this.add('-message', `yuki's fast movements confuse ${target.name}!`); - return; - case 'Dancer': - changeSet(this, source, ssbSets['yuki-Dancer']); - this.add('-message', `yuki dazzles ${target.name} with her moves!`); - return; - case 'Songstress': - changeSet(this, source, ssbSets['yuki-Songstress']); - this.add('-message', `yuki sang an entrancing melody!`); - return; - case 'Jester': - changeSet(this, source, ssbSets['yuki-Jester']); - this.add('-message', `yuki tries her best to impress ${target.name}!`); - return; - } - }, - secondary: null, - target: "self", - type: "Normal", - }, - - // Zalm - ingredientforaging: { - accuracy: 100, - basePower: 70, - category: "Special", - desc: "Heals 50% of the user's max HP, rounded down, if the target is holding an item. Removes the target's item and enables Belch on the user.", - shortDesc: "If foe has item: Heal 50% and remove it.", - name: "Ingredient Foraging", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Thief', target); - }, - onAfterHit(target, source) { - const item = target.getItem(); - if (source.hp && target.takeItem(source)) { - this.add('-enditem', target, item.name, '[from] stealeat', '[move] Ingredient Foraging', '[of] ' + source); - this.heal(source.maxhp / 2, source); - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zalm')}|Yum`); - source.ateBerry = true; - } - }, - secondary: null, - target: "normal", - type: "Bug", - }, - - // Zarel - relicdance: { - accuracy: 100, - basePower: 80, - category: "Special", - desc: "+1 Special Attack and, if the user is a Meloetta forme, transforms into the other Meloetta forme with its accompanying moveset, regardless of the outcome of the move. The move becomes fighting if Meloetta-P uses the move. If the user is Meloetta-Pirouette, this move is Fighting-type.", - shortDesc: "+1 SpA. Meloetta transforms. Fighting type if Melo-P.", - name: "Relic Dance", - gen: 8, - pp: 10, - priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, - secondary: null, - onTryMove(pokemon, target, move) { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Relic Song', target); - }, - onAfterMove(source) { - this.boost({spa: 1}, source); - if (source.species.baseSpecies !== 'Meloetta') return; - if (source.species.name === "Meloetta-Pirouette") { - changeSet(this, source, ssbSets['Zarel']); - } else { - changeSet(this, source, ssbSets['Zarel-Pirouette']); - } - }, - onModifyMove(move, pokemon) { - if (pokemon.species.name === "Meloetta-Pirouette") move.type = "Fighting"; - }, - target: "allAdjacentFoes", - type: "Psychic", - }, - - // Zodiax - bigstormcoming: { - accuracy: true, - basePower: 0, - category: "Special", - desc: "Uses Hurricane, Thunder, Blizzard, and then Weather Ball, each at 30% of their normal Base Power.", - shortDesc: "30% power: Hurricane, Thunder, Blizzard, W. Ball.", - name: "Big Storm Coming", - gen: 8, - pp: 10, - priority: 0, - flags: {}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit() { - this.add(`c:|${Math.floor(Date.now() / 1000)}|${getName('Zodiax')}|There is a hail no storm okayyyyyy`); - }, - onTry(pokemon, target) { - pokemon.addVolatile('bigstormcomingmod'); - this.actions.useMove("Hurricane", pokemon); - this.actions.useMove("Thunder", pokemon); - this.actions.useMove("Blizzard", pokemon); - this.actions.useMove("Weather Ball", pokemon); - }, - secondary: null, - target: "normal", - type: "Flying", - }, - // Zyg - luckofthedraw: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Raises the user's Attack, Defense, and Speed by 1 stage.", - shortDesc: "Raises the user's Attack, Defense, Speed by 1.", - name: "Luck of the Draw", - gen: 8, - pp: 10, - priority: 0, - flags: {snatch: 1}, - onTryMove() { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, 'Quiver Dance', source); - }, - boosts: { - atk: 1, - def: 1, - spe: 1, - }, - secondary: null, - target: "self", - type: "Psychic", - }, - // These moves need modified to support Alpha's move - auroraveil: { - inherit: true, - desc: "For 5 turns, the user and its party members take 0.5x damage from physical and special attacks, or 0.66x damage if in a Double Battle; does not reduce damage further with Reflect or Light Screen. Critical hits ignore this protection. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Brick Break and Psychic Fangs remove the effect before damage is calculated. Lasts for 8 turns if the user is holding Light Clay. Fails unless the weather is Heavy Hailstorm or Hail.", - shortDesc: "For 5 turns, damage to allies is halved. Hail-like weather only.", - onTryHitSide() { - if (!this.field.isWeather(['winterhail', 'heavyhailstorm', 'hail'])) return false; - }, - }, - blizzard: { - inherit: true, - desc: "Has a 10% chance to freeze the target. If the weather is Heavy Hailstorm or Hail, this move does not check accuracy.", - shortDesc: "10% freeze foe(s). Can't miss in Hail-like weather.", - onModifyMove(move) { - if (this.field.isWeather(['winterhail', 'heavyhailstorm', 'hail'])) move.accuracy = true; - }, - }, - dig: { - inherit: true, - condition: { - duration: 2, - onImmunity(type, pokemon) { - if (['sandstorm', 'winterhail', 'heavyhailstorm', 'hail'].includes(type)) return false; - }, - onInvulnerability(target, source, move) { - if (['earthquake', 'magnitude'].includes(move.id)) { - return; - } - return false; - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.id === 'earthquake' || move.id === 'magnitude') { - return this.chainModify(2); - } - }, - }, - }, - dive: { - inherit: true, - condition: { - duration: 2, - onImmunity(type, pokemon) { - if (['sandstorm', 'winterhail', 'heavyhailstorm', 'hail'].includes(type)) return false; - }, - onInvulnerability(target, source, move) { - if (['surf', 'whirlpool'].includes(move.id)) { - return; - } - return false; - }, - onSourceModifyDamage(damage, source, target, move) { - if (move.id === 'surf' || move.id === 'whirlpool') { - return this.chainModify(2); - } - }, - }, - }, - moonlight: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Heavy Hailstorm, Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - onHit(pokemon) { - let factor = 0.5; - switch (pokemon.effectiveWeather()) { - case 'sunnyday': - case 'desolateland': - factor = 0.667; - break; - case 'raindance': - case 'primordialsea': - case 'sandstorm': - case 'heavyhailstorm': - case 'winterhail': - case 'hail': - factor = 0.25; - break; - } - return !!this.heal(this.modify(pokemon.maxhp, factor)); - }, - }, - morningsun: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Heavy Hailstorm, Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - onHit(pokemon) { - let factor = 0.5; - switch (pokemon.effectiveWeather()) { - case 'sunnyday': - case 'desolateland': - factor = 0.667; - break; - case 'raindance': - case 'primordialsea': - case 'sandstorm': - case 'heavyhailstorm': - case 'winterhail': - case 'hail': - factor = 0.25; - break; - } - return !!this.heal(this.modify(pokemon.maxhp, factor)); - }, - }, - solarbeam: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Heavy Hailstorm, Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn. If the user is holding Utility Umbrella and the weather is Desolate Land or Sunny Day, the move still requires a turn to charge.", - onBasePower(basePower, pokemon, target) { - const weathers = ['raindance', 'primordialsea', 'sandstorm', 'winterhail', 'heavyhailstorm', 'hail']; - if (weathers.includes(pokemon.effectiveWeather())) { - this.debug('weakened by weather'); - return this.chainModify(0.5); - } - }, - }, - solarblade: { - inherit: true, - desc: "This attack charges on the first turn and executes on the second. Power is halved if the weather is Heavy Hailstorm, Hail, Primordial Sea, Rain Dance, or Sandstorm and the user is not holding Utility Umbrella. If the user is holding a Power Herb or the weather is Desolate Land or Sunny Day, the move completes in one turn. If the user is holding Utility Umbrella and the weather is Desolate Land or Sunny Day, the move still requires a turn to charge.", - onBasePower(basePower, pokemon, target) { - const weathers = ['raindance', 'primordialsea', 'sandstorm', 'winterhail', 'heavyhailstorm', 'hail']; - if (weathers.includes(pokemon.effectiveWeather())) { - this.debug('weakened by weather'); - return this.chainModify(0.5); - } - }, - }, - synthesis: { - inherit: true, - desc: "The user restores 1/2 of its maximum HP if Delta Stream or no weather conditions are in effect or if the user is holding Utility Umbrella, 2/3 of its maximum HP if the weather is Desolate Land or Sunny Day, and 1/4 of its maximum HP if the weather is Heavy Hailstorm, Hail, Primordial Sea, Rain Dance, or Sandstorm, all rounded half down.", - onHit(pokemon) { - let factor = 0.5; - switch (pokemon.effectiveWeather()) { - case 'sunnyday': - case 'desolateland': - factor = 0.667; - break; - case 'raindance': - case 'primordialsea': - case 'sandstorm': - case 'heavyhailstorm': - case 'winterhail': - case 'hail': - factor = 0.25; - break; - } - return !!this.heal(this.modify(pokemon.maxhp, factor)); - }, - }, - weatherball: { - inherit: true, - desc: "Power doubles if a weather condition other than Delta Stream is active, and this move's type changes to match. Ice type during Heavy Hailstorm or Hail, Water type during Primordial Sea or Rain Dance, Rock type during Sandstorm, and Fire type during Desolate Land or Sunny Day. If the user is holding Utility Umbrella and uses Weather Ball during Primordial Sea, Rain Dance, Desolate Land, or Sunny Day, the move is still Normal-type and does not have a base power boost.", - onModifyType(move, pokemon) { - switch (pokemon.effectiveWeather()) { - case 'sunnyday': - case 'desolateland': - move.type = 'Fire'; - break; - case 'raindance': - case 'primordialsea': - move.type = 'Water'; - break; - case 'sandstorm': - move.type = 'Rock'; - break; - case 'heavyhailstorm': - case 'winterhail': - case 'hail': - move.type = 'Ice'; - break; - } - }, - onModifyMove(move, pokemon) { - switch (pokemon.effectiveWeather()) { - case 'sunnyday': - case 'desolateland': - move.basePower *= 2; - break; - case 'raindance': - case 'primordialsea': - move.basePower *= 2; - break; - case 'sandstorm': - move.basePower *= 2; - break; - case 'heavyhailstorm': - case 'winterhail': - case 'hail': - move.basePower *= 2; - break; - } - }, - }, - // Modified move descriptions for support of Segmr's move - doomdesire: { - inherit: true, - desc: "Deals damage two turns after this move is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move, Disconnect, or Future Sight is already in effect for the target's position.", - }, - futuresight: { - inherit: true, - desc: "Deals damage two turns after this move is used. At the end of that turn, the damage is calculated at that time and dealt to the Pokemon at the position the target had when the move was used. If the user is no longer active at the time, damage is calculated based on the user's natural Special Attack stat, types, and level, with no boosts from its held item or Ability. Fails if this move, Doom Desire, or Disconnect is already in effect for the target's position.", - }, - // Terrain Pulse for consistency - terrainpulse: { - inherit: true, - onModifyType(move, pokemon) { - if (!pokemon.isGrounded()) return; - switch (this.field.terrain) { - case 'electricterrain': - move.type = 'Electric'; - break; - case 'grassyterrain': - move.type = 'Grass'; - break; - case 'mistyterrain': - move.type = 'Fairy'; - break; - case 'psychicterrain': - move.type = 'Psychic'; - break; - case 'baneterrain': - move.type = 'Ice'; - break; - case 'swampyterrain': - move.type = 'Ground'; - break; - case 'inversionterrain': - move.type = '???'; - break; - case 'pitchblack': - move.type = 'Ghost'; - break; - case 'waveterrain': - move.type = 'Water'; - break; - case 'tempestterrain': - move.type = 'Flying'; - break; - } - }, - }, - // genderless infatuation for nui's Condition Override - attract: { - inherit: true, - condition: { - noCopy: true, // doesn't get copied by Baton Pass - onStart(pokemon, source, effect) { - if (!source.hasAbility('conditionoverride')) { - if (!(pokemon.gender === 'M' && source.gender === 'F') && !(pokemon.gender === 'F' && source.gender === 'M')) { - this.debug('incompatible gender'); - return false; - } - } - if (!this.runEvent('Attract', pokemon, source)) { - this.debug('Attract event failed'); - return false; - } - - if (effect.id === 'cutecharm') { - this.add('-start', pokemon, 'Attract', '[from] ability: Cute Charm', '[of] ' + source); - } else if (effect.id === 'destinyknot') { - this.add('-start', pokemon, 'Attract', '[from] item: Destiny Knot', '[of] ' + source); - } else { - this.add('-start', pokemon, 'Attract'); - } - }, - onUpdate(pokemon) { - if (this.effectState.source && !this.effectState.source.isActive && pokemon.volatiles['attract']) { - this.debug('Removing Attract volatile on ' + pokemon); - pokemon.removeVolatile('attract'); - } - }, - onModifySpDPriority: 1, - onModifySpD(spd, pokemon) { - for (const target of this.getAllActive()) { - if (target === pokemon) continue; - if (target.hasAbility('conditionoverride')) return this.chainModify(0.75); - } - return; - }, - onBeforeMovePriority: 2, - onBeforeMove(pokemon, target, move) { - this.add('-activate', pokemon, 'move: Attract', '[of] ' + this.effectState.source); - if (this.randomChance(1, 2)) { - this.add('cant', pokemon, 'Attract'); - return false; - } - }, - onEnd(pokemon) { - this.add('-end', pokemon, 'Attract', '[silent]'); - }, - }, - onTryImmunity(target, source) { - if (source.hasAbility('conditionoverride')) return true; - return (target.gender === 'M' && source.gender === 'F') || (target.gender === 'F' && source.gender === 'M'); - }, - }, - - // Try playing Staff Bros without dynamax and see what happens - supermetronome: { - accuracy: true, - basePower: 0, - category: "Status", - desc: "Uses 2-5 random moves. Does not include 1-Base Power Z-Moves, Super Metronome, Metronome, or 10-Base Power Max moves.", - shortDesc: "Uses 2-5 random moves.", - name: "Super Metronome", - isNonstandard: "Custom", - pp: 100, - noPPBoosts: true, - priority: 0, - flags: {}, - onTryMove(pokemon) { - this.attrLastMove('[still]'); - }, - onPrepareHit(target, source) { - this.add('-anim', source, "Metronome", source); - }, - onHit(target, source, effect) { - const moves = []; - for (const id in this.dex.data.Moves) { - const move = this.dex.moves.get(id); - if (move.realMove || move.id.includes('metronome')) continue; - // Calling 1 BP move is somewhat lame and disappointing. However, - // signature Z moves are fine, as they actually have a base power. - if (move.isZ && move.basePower === 1) continue; - if (move.gen > this.gen) continue; - if (move.isMax === true && move.basePower === 10) continue; - moves.push(move.name); - } - let randomMove: string; - if (moves.length) { - randomMove = this.sample(moves); - } else { - return false; - } - this.actions.useMove(randomMove, target); - }, - multihit: [2, 5], - secondary: null, - target: "self", - type: "???", - }, -}; diff --git a/data/mods/ssb/pokedex.ts b/data/mods/ssb/pokedex.ts deleted file mode 100644 index 2376792acefe..000000000000 --- a/data/mods/ssb/pokedex.ts +++ /dev/null @@ -1,265 +0,0 @@ -export const Pokedex: {[k: string]: ModdedSpeciesData} = { - /* - // Example - id: { - inherit: true, // Always use this, makes the pokemon inherit its default values from the parent mod (gen7) - baseStats: {hp: 100, atk: 100, def: 100, spa: 100, spd: 100, spe: 100}, // the base stats for the pokemon - }, - */ - // Abdelrahman - cameruptmega: { - inherit: true, - abilities: {0: "Water Absorb"}, - }, - // Aelita - zygardecomplete: { - inherit: true, - abilities: {0: "Scyphozoa"}, - }, - // aegii - aegislash: { - inherit: true, - abilities: {0: "Set the Stage"}, - }, - aegislashblade: { - inherit: true, - abilities: {0: "Set the Stage"}, - }, - // Aeonic - nosepass: { - inherit: true, - baseStats: {hp: 70, atk: 85, def: 135, spa: 45, spd: 90, spe: 70}, - }, - // Aethernum - lotad: { - inherit: true, - baseStats: {hp: 40, atk: 70, def: 70, spa: 80, spd: 90, spe: 70}, - }, - // Annika - mewtwomegay: { - inherit: true, - baseStats: {hp: 106, atk: 110, def: 90, spa: 154, spd: 90, spe: 130}, - abilities: {0: "Overprotective"}, - }, - // A Quag To The Past - quagsire: { - inherit: true, - baseStats: {hp: 95, atk: 65, def: 85, spa: 65, spd: 85, spe: 35}, - }, - // Billo - cosmog: { - inherit: true, - baseStats: {hp: 86, atk: 58, def: 62, spa: 87, spd: 62, spe: 74}, - }, - // dogknees - furret: { - inherit: true, - types: ["Normal", "Ghost"], - }, - // Elgino - celebi: { - inherit: true, - types: ["Grass", "Fairy"], - }, - // EpicNikolai - garchompmega: { - inherit: true, - abilities: {0: "Dragon Heart"}, - types: ["Dragon", "Fire"], - }, - // Felucia - uxie: { - inherit: true, - types: ["Psychic", "Normal"], - }, - // frostyicelad - laprasgmax: { - inherit: true, - heightm: 2.5, - weightkg: 220, - }, - // GMars - minior: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - miniorviolet: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - miniorindigo: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - miniorblue: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - miniorgreen: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - minioryellow: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - miniororange: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - miniormeteor: { - inherit: true, - abilities: {0: "Capsule Armor"}, - }, - // Hydro - pichu: { - inherit: true, - types: ["Electric", "Water"], - baseStats: {hp: 67, atk: 58, def: 57, spa: 81, spd: 67, spe: 101}, - }, - // Inactive - gyaradosmega: { - inherit: true, - abilities: {0: "Dragon's Fury"}, - }, - // Jho - toxtricity: { - inherit: true, - abilities: {0: "Punk Rock"}, - }, - toxtricitylowkey: { - inherit: true, - abilities: {0: "Venomize"}, - }, - // Kaiju Bunny - lopunnymega: { - inherit: true, - abilities: {0: "Second Wind"}, - types: ["Normal", "Fairy"], - }, - // Kris - unown: { - inherit: true, - baseStats: {hp: 100, atk: 100, def: 100, spa: 100, spd: 100, spe: 100}, - // For reverting back to an Unown forme - abilities: {0: "Protean"}, - }, - // Lamp - lampent: { - inherit: true, - baseStats: {hp: 60, atk: 80, def: 100, spa: 135, spd: 100, spe: 95}, - }, - // Meicoo - venusaurmega: { - inherit: true, - abilities: {0: "Unaware"}, - }, - // nui - jigglypuff: { - inherit: true, - baseStats: {hp: 115, atk: 128, def: 62, spa: 128, spd: 78, spe: 62}, - }, - // Overneat - absolmega: { - inherit: true, - abilities: {0: "Fluffy"}, - types: ["Dark", "Fairy"], - }, - // PartMan - chandelure: { - inherit: true, - abilities: {0: "Hecatomb"}, - }, - // Psynergy - rayquaza: { - inherit: true, - abilities: {0: "Supernova"}, - }, - rayquazamega: { - inherit: true, - abilities: {0: "Supernova"}, - requiredMove: "Clear Breath", - }, - // Robb576 - necrozmadawnwings: { - inherit: true, - abilities: {0: "The Numbers Game"}, - }, - necrozmaduskmane: { - inherit: true, - abilities: {0: "The Numbers Game"}, - }, - necrozmaultra: { - inherit: true, - abilities: {0: "The Numbers Game"}, - }, - // Strucni - aggronmega: { - inherit: true, - abilities: {0: "Overasked Clause"}, - }, - // Finland - alcremie: { - inherit: true, - abilities: {0: "Winding Song"}, - }, - // tiki - snom: { - inherit: true, - baseStats: {hp: 70, atk: 65, def: 60, spa: 125, spd: 90, spe: 65}, - }, - // vivalospride's interaction with Coconut's move - darumaka: { - inherit: true, - evos: ["Darmanitan", "Darmanitan-Zen"], - }, - darmanitanzen: { - inherit: true, - prevo: "Darumaka", - }, - // yuki - pikachucosplay: { - inherit: true, - baseStats: {hp: 60, atk: 85, def: 50, spa: 95, spd: 85, spe: 110}, - abilities: {0: "Combat Training"}, - }, - pikachuphd: { - inherit: true, - baseStats: {hp: 60, atk: 85, def: 50, spa: 95, spd: 85, spe: 110}, - abilities: {0: "Triage"}, - }, - pikachulibre: { - inherit: true, - baseStats: {hp: 60, atk: 85, def: 50, spa: 95, spd: 85, spe: 110}, - abilities: {0: "White Smoke"}, - }, - pikachupopstar: { - inherit: true, - baseStats: {hp: 60, atk: 85, def: 50, spa: 95, spd: 85, spe: 110}, - abilities: {0: "Dancer"}, - }, - pikachurockstar: { - inherit: true, - baseStats: {hp: 60, atk: 85, def: 50, spa: 95, spd: 85, spe: 110}, - abilities: {0: "Punk Rock"}, - }, - pikachubelle: { - inherit: true, - baseStats: {hp: 60, atk: 85, def: 50, spa: 95, spd: 85, spe: 110}, - abilities: {0: "Weak Armor"}, - }, - // Zalm - weedle: { - inherit: true, - baseStats: {hp: 100, atk: 35, def: 100, spa: 90, spd: 90, spe: 100}, - }, - // Zarel - meloetta: { - inherit: true, - abilities: {0: "Dancer"}, - }, - meloettapirouette: { - inherit: true, - abilities: {0: "Serene Grace"}, - }, -}; diff --git a/data/mods/ssb/random-teams.ts b/data/mods/ssb/random-teams.ts deleted file mode 100644 index 6758947171dd..000000000000 --- a/data/mods/ssb/random-teams.ts +++ /dev/null @@ -1,980 +0,0 @@ -import RandomGen8Teams from '../gen8/random-teams'; - -export interface SSBSet { - species: string; - ability: string | string[]; - item: string | string[]; - gender: GenderName; - moves: (string | string[])[]; - signatureMove: string; - evs?: {hp?: number, atk?: number, def?: number, spa?: number, spd?: number, spe?: number}; - ivs?: {hp?: number, atk?: number, def?: number, spa?: number, spd?: number, spe?: number}; - nature?: string | string[]; - shiny?: number | boolean; - level?: number; - happiness?: number; - skip?: string; -} -interface SSBSets {[k: string]: SSBSet} - -export const ssbSets: SSBSets = { - /* - // Example: - Username: { - species: 'Species', ability: 'Ability', item: 'Item', gender: '', - moves: ['Move Name', ['Move Name', 'Move Name']], - signatureMove: 'Move Name', - evs: {stat: number}, ivs: {stat: number}, nature: 'Nature', level: 100, shiny: false, - }, - // Species, ability, and item need to be captialized properly ex: Ludicolo, Swift Swim, Life Orb - // Gender can be M, F, N, or left as an empty string - // each slot in moves needs to be a string (the move name, captialized properly ex: Hydro Pump), or an array of strings (also move names) - // signatureMove also needs to be capitalized properly ex: Scripting - // You can skip Evs (defaults to 82 all) and/or Ivs (defaults to 31 all), or just skip part of the Evs (skipped evs are 0) and/or Ivs (skipped Ivs are 31) - // You can also skip shiny, defaults to false. Level can be skipped (defaults to 100). - // Nature needs to be a valid nature with the first letter capitalized ex: Modest - */ - // Please keep sets organized alphabetically based on staff member name! - Abdelrahman: { - species: 'Camerupt', ability: 'Water Absorb', item: 'Cameruptite', gender: 'M', - moves: ['Eruption', 'Earth Power', 'Fire Blast'], - signatureMove: 'The Town Outplay', - evs: {hp: 252, spd: 172, spe: 84}, nature: 'Calm', - }, - Adri: { - species: 'Latios', ability: 'Psychic Surge', item: 'Leftovers', gender: 'M', - moves: ['Psyshock', 'Calm Mind', 'Aura Sphere'], - signatureMove: 'Skystriker', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Aelita: { - species: 'Zygarde', ability: 'Scyphozoa', item: 'Focus Sash', gender: 'F', - moves: ['Protect', 'Leech Seed', 'Thousand Arrows'], - signatureMove: 'XANA\'s Keys To Lyoko', - evs: {hp: 252, atk: 4, spd: 252}, nature: 'Careful', - }, - aegii: { - species: 'Aegislash', ability: 'Set the Stage', item: 'Life Orb', gender: 'M', - moves: ['Shadow Claw', 'Iron Head', 'Shadow Sneak'], - signatureMove: 'Reset', - evs: {hp: 252, def: 192, spd: 64}, nature: 'Sassy', - }, - 'aegii-Alt': { - species: 'Aegislash', ability: 'Set the Stage', item: 'Life Orb', gender: 'M', - moves: ['Shadow Ball', 'Flash Cannon', 'Shadow Sneak'], - signatureMove: 'Reset', - evs: {hp: 252, def: 192, spd: 64}, nature: 'Sassy', - skip: 'aegii', - }, - Aeonic: { - species: 'Nosepass', ability: 'Arsene', item: 'Stone Plate', gender: 'M', - moves: ['Diamond Storm', 'Earthquake', 'Milk Drink'], - signatureMove: 'Looking Cool', - evs: {atk: 252, def: 4, spd: 252}, nature: 'Impish', - }, - Aethernum: { - species: 'Lotad', ability: 'Rainy Season', item: 'Big Root', gender: 'M', - moves: ['Giga Drain', 'Muddy Water', 'Hurricane'], - signatureMove: 'Lilypad Overflow', - evs: {spa: 252, spd: 4, spe: 252}, nature: 'Modest', - }, - Akir: { - species: 'Forretress', ability: 'Fortifications', item: 'Leftovers', gender: 'M', - moves: ['Rapid Spin', 'Stealth Rock', ['U-turn', 'Toxic']], - signatureMove: 'Ravelin', - evs: {hp: 248, def: 252, spe: 8}, ivs: {spa: 0}, nature: 'Impish', - }, - Alpha: { - species: 'Aurorus', ability: 'Snow Warning', item: 'Caionium Z', gender: 'M', - moves: ['Freeze-Dry', 'Ancient Power', 'Earth Power'], - signatureMove: 'Blizzard', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', shiny: true, - }, - Andrew: { - species: 'Spectrier', ability: 'Neutralizing Gas', item: 'Choice Specs', gender: 'M', - moves: ['Moongeist Beam', 'Pollen Puff', 'Trick'], - signatureMove: 'Whammer Jammer', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Annika: { - species: 'Mewtwo', ability: 'Overprotective', item: 'Mewtwonite Y', gender: 'F', - moves: [['Rising Voltage', 'Lava Plume'], ['Hex', 'Aurora Beam'], ['Psychic', 'Psyshock']], - signatureMove: 'Data Corruption', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Quirky', shiny: true, - }, - 'A Quag To The Past': { - species: 'Quagsire', ability: 'Carefree', item: 'Quagnium Z', gender: 'M', - moves: ['Shore Up', 'Flip Turn', ['Haze', 'Toxic']], - signatureMove: 'Scorching Sands', - evs: {hp: 252, def: 252, spd: 4}, ivs: {spe: 0}, nature: 'Relaxed', - }, - Arby: { - species: 'Keldeo-Resolute', ability: 'Wave Surge', item: 'Expert Belt', gender: '', - moves: ['Hydro Pump', 'Secret Sword', 'Ice Beam'], - signatureMove: 'Quickhammer', - evs: {def: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Arcticblast: { - species: 'Tapu Fini', ability: 'Misty Surge', item: 'Misty Seed', gender: '', - moves: ['Heal Order', 'Sparkling Aria', ['Clear Smog', 'Moonblast']], - signatureMove: 'Radiant Burst', - evs: {hp: 252, def: 252, spe: 4}, ivs: {atk: 0}, nature: 'Bold', - }, - Archas: { - species: 'Naviathan', ability: 'Indomitable', item: 'Iron Plate', gender: 'F', - moves: ['Waterfall', 'Icicle Crash', 'No Retreat'], - signatureMove: 'Broadside Barrage', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - 'awa!': { - species: 'Lycanroc', ability: 'Sand Rush', item: 'Life Orb', gender: 'F', - moves: ['Earthquake', 'Close Combat', 'Swords Dance'], - signatureMove: 'awa!', - evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', - }, - Beowulf: { - species: 'Beedrill', ability: 'Intrepid Sword', item: 'Beedrillite', gender: '', - moves: ['Megahorn', 'Gunk Shot', ['Precipice Blades', 'Head Smash']], - signatureMove: 'Buzz Inspection', - evs: {hp: 4, atk: 252, spe: 252}, nature: 'Jolly', shiny: 2, - }, - biggie: { - species: 'Snorlax', ability: 'Super Armor', item: 'Leftovers', gender: 'M', - moves: ['Body Slam', 'Darkest Lariat', 'Assist'], - signatureMove: 'Juggernaut Punch', - evs: {hp: 4, def: 252, spd: 252}, nature: 'Brave', - }, - Billo: { - species: 'Cosmog', ability: 'Proof Policy', item: 'Eviolite', gender: 'N', - moves: ['Cosmic Power', 'Calm Mind', 'Stored Power'], - signatureMove: 'Fishing for Hacks', - evs: {hp: 252, spa: 252, spd: 4}, ivs: {atk: 0}, nature: 'Modest', shiny: true, - }, - Blaz: { - species: 'Carbink', ability: 'Solid Rock', item: 'Leftovers', gender: 'N', - moves: ['Cosmic Power', 'Body Press', 'Recover'], - signatureMove: 'Bleak December', - evs: {hp: 4, def: 252, spd: 252}, ivs: {atk: 0}, nature: 'Careful', shiny: true, - }, - Brandon: { - species: 'Shaymin', ability: 'Bane Surge', item: ['Leftovers', 'Terrain Extender'], gender: 'M', - moves: [['Ice Beam', 'Paleo Wave'], ['Earthquake', 'Flamethrower'], 'Recover'], - signatureMove: 'Flower Shower', - evs: {hp: 84, atk: 84, def: 84, spa: 84, spd: 84, spe: 84}, nature: 'Quirky', - }, - brouha: { - species: 'Mantine', ability: 'Turbulence', item: 'Leftovers', gender: 'M', - moves: ['Scald', 'Recover', 'Haze'], - signatureMove: 'Kinetosis', - evs: {hp: 248, def: 8, spd: 252}, ivs: {atk: 0}, nature: 'Calm', - }, - Buffy: { - species: 'Dragonite', ability: 'Speed Control', item: 'Metal Coat', gender: '', - moves: ['Swords Dance', 'Thousand Arrows', 'Double Iron Bash'], - signatureMove: 'Pandora\'s Box', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', shiny: 2, - }, - Cake: { - species: 'Dunsparce', ability: 'Wonder Guard', item: 'Shell Bell', gender: 'M', - moves: ['Haze', 'Jungle Healing', ['Baton Pass', 'Poison Gas', 'Corrosive Gas', 'Magic Powder', 'Speed Swap', 'Spite', 'Screech', 'Trick Room', 'Heal Block', 'Geomancy']], - signatureMove: 'Kevin', - evs: {hp: 252, atk: 252, spd: 4}, nature: 'Adamant', - }, - 'cant say': { - species: 'Volcarona', ability: 'Rage Quit', item: 'Kee Berry', gender: 'M', - moves: ['Quiver Dance', 'Roost', 'Will-O-Wisp'], - signatureMove: 'Never Lucky', - evs: {hp: 248, def: 36, spe: 224}, ivs: {atk: 0}, nature: 'Timid', - }, - Celine: { - species: 'Lucario', ability: 'Guardian Armor', item: 'Leftovers', gender: 'F', - moves: ['Wish', 'Teleport', 'Drain Punch'], - signatureMove: 'Status Guard', - evs: {hp: 248, def: 252, spd: 8}, nature: 'Impish', - }, - 'c.kilgannon': { - species: 'Yveltal', ability: 'Infiltrator', item: 'Choice Scarf', gender: 'N', - moves: ['Knock Off', 'Steel Wing', 'U-turn'], - signatureMove: 'Soul Siphon', - evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', - }, - Coconut: { - species: 'Misdreavus', ability: 'Levitate', item: 'Focus Sash', gender: 'F', - moves: ['Dazzling Gleam', 'Shadow Ball', 'Snatch'], - signatureMove: 'Devolution Beam', - evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', - }, - dogknees: { - species: 'Furret', ability: 'Adaptability', item: ['Normalium Z', 'Ghostium Z'], gender: 'M', - moves: ['Extreme Speed', 'Shadow Claw', 'Explosion'], - signatureMove: 'Belly Rubs', - evs: {hp: 4, atk: 252, spe: 252}, nature: 'Jolly', - }, - DragonWhale: { - species: 'Mimikyu', ability: 'Disguise', item: 'Life Orb', gender: 'M', - moves: ['Play Rough', 'Spectral Thief', 'Shadow Sneak'], - signatureMove: 'Cloak Dance', - evs: {hp: 4, atk: 252, spe: 252}, nature: 'Jolly', - }, - 'drampa\'s grandpa': { - species: 'Drampa', ability: 'Old Manpa', item: 'Wise Glasses', gender: 'M', - moves: [ - ['Spikes', 'Stealth Rock', 'Toxic Spikes'], 'Slack Off', ['Core Enforcer', 'Snarl', 'Lava Plume', 'Scorching Sands'], - ], - signatureMove: 'GET OFF MY LAWN!', - evs: {hp: 248, def: 8, spa: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - dream: { - species: 'Klefki', ability: 'Greed Punisher', item: 'Life Orb', gender: 'N', - moves: ['Light of Ruin', 'Steel Beam', 'Mind Blown'], - signatureMove: 'Lock and Key', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - Elgino: { - species: 'Celebi', ability: 'Magic Guard', item: 'Life Orb', gender: 'M', - moves: ['Leaf Storm', 'Nasty Plot', 'Power Gem'], - signatureMove: 'Navi\'s Grace', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', shiny: true, - }, - Emeri: { - species: 'Flygon', ability: 'Drake Skin', item: 'Throat Spray', gender: 'M', - moves: ['Boomburst', 'Earth Power', 'Agility'], - signatureMove: 'Forced Landing', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - estarossa: { - species: 'Hippowdon', ability: 'Sands of Time', item: 'Leftovers', gender: 'M', - moves: ['Earthquake', 'Stone Edge', 'Slack Off'], - signatureMove: 'Sand Balance', - evs: {hp: 252, atk: 252, def: 4}, nature: 'Adamant', - }, - EpicNikolai: { - species: 'Garchomp', ability: 'Dragon Heart', item: 'Garchompite', gender: 'M', - moves: ['Outrage', 'Earthquake', 'Swords Dance'], - signatureMove: 'Epic Rage', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - explodingdaisies: { - species: 'Shedinja', ability: 'Wonder Guard', item: 'Heavy-Duty Boots', gender: 'M', - moves: ['Swords Dance', 'X-Scissor', 'Shadow Sneak'], - signatureMove: 'You Have No Hope!', - evs: {atk: 252, spd: 4, spe: 252}, nature: 'Adamant', - }, - fart: { - species: 'Kartana', ability: 'Bipolar', item: 'Metronome', gender: 'M', - moves: ['U-turn'], - signatureMove: 'Soup-Stealing 7-Star Strike: Redux', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', level: 100, shiny: true, - }, - Felucia: { - species: 'Uxie', ability: 'Regenerator', item: 'Red Card', gender: 'F', - moves: ['Strength Sap', ['Psyshock', 'Night Shade'], ['Thief', 'Toxic']], - signatureMove: 'Rigged Dice', - evs: {hp: 252, def: 4, spd: 252}, nature: 'Calm', - }, - Finland: { - species: 'Alcremie', ability: 'Winding Song', item: 'Leftovers', gender: 'M', - moves: ['Shore Up', 'Moonblast', ['Infestation', 'Whirlwind']], - signatureMove: 'Cradily Chaos', - evs: {hp: 252, def: 64, spa: 64, spd: 64, spe: 64}, ivs: {atk: 0}, nature: 'Serious', - }, - 'Finland-Tsikhe': { - species: 'Alcremie-Lemon-Cream', ability: 'Winding Song', item: 'Leftovers', gender: 'M', - moves: ['Shore Up', 'Spiky Shield', ['Reflect', 'Light Screen']], - signatureMove: 'Cradily Chaos', - evs: {hp: 252, def: 64, spa: 64, spd: 64, spe: 64}, ivs: {atk: 0}, nature: 'Serious', - skip: 'Finland', - }, - 'Finland-Nezavisa': { - species: 'Alcremie-Ruby-Swirl', ability: 'Winding Song', item: 'Leftovers', gender: 'M', - moves: ['Lava Plume', 'Scorching Sands', ['Refresh', 'Destiny Bond']], - signatureMove: 'Cradily Chaos', - evs: {hp: 252, def: 64, spa: 64, spd: 64, spe: 64}, ivs: {atk: 0}, nature: 'Serious', - skip: 'Finland', - }, - 'Finland-Järvilaulu': { - species: 'Alcremie-Mint-Cream', ability: 'Winding Song', item: 'Leftovers', gender: 'M', - moves: ['Sticky Web', 'Parting Shot', ['Light of Ruin', 'Sparkling Aria']], - signatureMove: 'Cradily Chaos', - evs: {hp: 252, def: 64, spa: 64, spd: 64, spe: 64}, ivs: {atk: 0}, nature: 'Serious', - skip: 'Finland', - }, - 'frostyicelad ❆': { - species: 'Lapras-Gmax', ability: 'Ice Shield', item: 'Life Orb', gender: 'M', - moves: ['Quiver Dance', 'Sparkling Aria', 'Recover'], - signatureMove: 'Frosty Wave', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - 'gallant\'s pear': { - species: 'Orbeetle', ability: 'Armor Time', item: ['Life Orb', 'Heavy-Duty Boots'], gender: 'M', - moves: ['Bug Buzz', 'Nasty Plot', 'Snipe Shot'], - signatureMove: 'King Giri Giri Slash', - evs: {hp: 252, def: 4, spe: 252}, nature: 'Timid', - }, - Gimmick: { - species: 'Grimmsnarl', ability: 'IC3PEAK', item: 'Throat Spray', gender: 'M', - moves: ['Boomburst', 'Disarming Voice', 'Snarl'], - signatureMove: 'Random Screaming', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', shiny: true, - }, - GMars: { - species: 'Minior-Meteor', ability: 'Capsule Armor', item: 'White Herb', gender: 'N', - moves: ['Acrobatics', 'Earthquake', 'Diamond Storm'], - signatureMove: 'Gacha', - evs: {hp: 68, atk: 252, spe: 188}, nature: 'Adamant', - }, - grimAuxiliatrix: { - species: 'Duraludon', ability: 'Aluminum Alloy', item: 'Assault Vest', gender: '', - moves: [['Core Enforcer', 'Draco Meteor'], 'Fire Blast', ['Thunderbolt', 'Earth Power']], - signatureMove: 'Skyscraper Suplex', - evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', - }, - HoeenHero: { - species: 'Ludicolo', ability: 'Tropical Cyclone', item: 'Life Orb', gender: 'M', - moves: ['Scald', 'Giga Drain', 'Hurricane'], - signatureMove: 'Landfall', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - Hubriz: { - species: 'Roserade', ability: 'Stakeout', item: 'Rose Incense', gender: 'F', - moves: [['Toxic Spikes', 'Spikes'], 'Leaf Storm', 'Sludge Bomb'], - signatureMove: 'Steroid Anaphylaxia', - evs: {def: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Hydro: { - species: 'Pichu', ability: 'Hydrostatic', item: 'Eviolite', gender: 'M', - moves: ['Hydro Pump', 'Thunder', 'Ice Beam'], - signatureMove: 'Hydrostatics', - evs: {def: 4, spa: 252, spe: 252}, nature: 'Modest', - }, - Inactive: { - species: 'Gyarados', ability: 'Dragon\'s Fury', item: 'Gyaradosite', gender: '', - moves: ['Dragon Dance', 'Earthquake', 'Crabhammer'], - signatureMove: 'Paranoia', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - instruct: { - species: 'Riolu', ability: 'Truant', item: 'Heavy-Duty Boots', gender: '', - moves: ['Explosion', 'Lunar Dance', 'Memento'], - signatureMove: 'Soda Break', - evs: {hp: 252, atk: 4, spe: 252}, nature: 'Jolly', - }, - Iyarito: { - species: 'Gengar', ability: 'Pollo Diablo', item: 'Choice Specs', gender: 'F', - moves: ['Sludge Wave', 'Volt Switch', 'Fusion Flare'], - signatureMove: 'Patrona Attack', - evs: {def: 4, spa: 252, spe: 252}, nature: 'Timid', shiny: true, - }, - Jett: { - species: 'Sneasel', ability: 'Deceiver', item: 'Heavy Duty Boots', gender: 'F', - moves: ['Knock Off', 'Triple Axel', 'Counter'], - signatureMove: 'The Hunt is On!', - evs: {hp: 4, atk: 252, spe: 252}, nature: 'Jolly', - }, - Jho: { - species: 'Toxtricity', ability: 'Punk Rock', item: 'Throat Spray', gender: 'M', - moves: ['Nasty Plot', 'Overdrive', 'Volt Switch'], - signatureMove: 'Genre Change', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - 'Jho-Low-Key': { - species: 'Toxtricity-Low-Key', ability: 'Venomize', item: 'Throat Spray', gender: 'M', - moves: ['Aura Sphere', 'Boomburst', 'Volt Switch'], - signatureMove: 'Genre Change', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - skip: 'Jho', - }, - Jordy: { - species: 'Archeops', ability: 'Divine Sandstorm', item: 'Life Orb', gender: 'M', - moves: ['Brave Bird', 'Head Smash', ['U-turn', 'Roost', 'Icicle Crash']], - signatureMove: 'Archeops\'s Rage', - evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', - }, - 'Kaiju Bunny': { - species: 'Lopunny', ability: 'Second Wind', item: 'Lopunnite', gender: 'F', - moves: ['Return', 'Play Rough', ['Drain Punch', 'High Jump Kick']], - signatureMove: 'Cozy Cuddle', - evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', shiny: true, - }, - Kalalokki: { - species: 'Wingull', ability: 'Magic Guard', item: 'Kalalokkium Z', gender: 'M', - moves: ['Tailwind', 'Encore', 'Healing Wish'], - signatureMove: 'Blackbird', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Kennedy: { - species: 'Cinderace', ability: 'False Nine', item: 'Choice Band', gender: 'M', - moves: ['High Jump Kick', 'Triple Axel', 'U-turn'], - signatureMove: 'Top Bins', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Adamant', - }, - Kev: { - species: 'Kingdra', ability: 'King of Atlantis', item: 'Life Orb', gender: 'M', - moves: ['Hydro Pump', 'Core Enforcer', 'Hurricane'], - signatureMove: 'King\'s Trident', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - Kingbaruk: { - species: 'Stonjourner', ability: 'Sturdy', item: 'Heavy Duty Boots', gender: 'M', - moves: ['Diamond Storm', ['Superpower', 'Earthquake'], 'King\'s Shield'], - signatureMove: 'Leave it to the team!', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - KingSwordYT: { - species: 'Pangoro', ability: 'Bamboo Kingdom', item: 'Rocky Helmet', gender: 'M', - moves: ['Body Press', 'Spiky Shield', 'Shore Up'], - signatureMove: 'Clash of Pangoros', - evs: {hp: 252, atk: 4, def: 252}, nature: 'Impish', shiny: true, - }, - Kipkluif: { - species: 'Gossifleur', ability: 'Degenerator', item: 'Eviolite', gender: 'M', - moves: ['Strength Sap', 'Apple Acid', 'Court Change'], - signatureMove: 'Kip Up', - evs: {hp: 196, def: 116, spa: 36, spd: 116, spe: 36}, ivs: {atk: 0}, nature: 'Modest', shiny: true, - }, - Kris: { - species: 'Unown', ability: 'Protean', item: 'Life Orb', gender: 'N', - moves: ['Light of Ruin', 'Psystrike', ['Secret Sword', 'Mind Blown', 'Seed Flare']], - signatureMove: 'Alphabet Soup', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Lamp: { - species: 'Lampent', ability: 'Soul-Heart', item: 'Eviolite', gender: 'M', - moves: ['Nasty Plot', 'Searing Shot', 'Recover'], - signatureMove: 'Soul Swap', - evs: {def: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Lionyx: { - species: 'Gardevoir', ability: 'Tension', item: 'Blunder Policy', gender: 'F', - moves: [ - ['Psychic', 'Psystrike'], 'Quiver Dance', [ - 'Blizzard', 'Focus Blast', 'Hurricane', 'Hydro Pump', 'Inferno', 'Zap Cannon', - ], - ], - signatureMove: 'Big Bang', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', shiny: true, - }, - 'Litt♥Eleven': { - species: 'Bisharp', ability: 'Dark Royalty', item: 'Black Glasses', gender: 'M', - moves: ['Sucker Punch', 'Knock Off', 'Iron Head'], - signatureMove: '/nexthunt', - evs: {hp: 4, atk: 252, spe: 252}, nature: 'Adamant', shiny: true, - }, - Lunala: { - species: 'Hattrem', ability: 'Magic Hat', item: 'Eviolite', gender: 'F', - moves: ['Nuzzle', 'Flamethrower', 'Healing Wish'], - signatureMove: 'Hat of Wisdom', - evs: {hp: 252, def: 4, spd: 252}, ivs: {atk: 0}, nature: 'Sassy', - }, - 'Mad Monty ¾°': { - species: 'Zekrom', ability: 'Petrichor', item: 'Damp Rock', gender: 'N', - moves: ['Bolt Strike', 'Dragon Claw', 'Liquidation'], - signatureMove: 'Ca-LLAMA-ty', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', shiny: true, - }, - MajorBowman: { - species: 'Weezing-Galar', ability: 'Neutralizing Gas', item: 'Black Sludge', gender: 'M', - moves: ['Strange Steam', ['Toxic Spikes', 'Haze'], 'Recover'], - signatureMove: 'Corrosive Cloud', - evs: {hp: 252, def: 252, spd: 4}, nature: 'Bold', - }, - Marshmallon: { - species: 'Munchlax', ability: 'Stubbornness', item: 'Eviolite', gender: 'M', - moves: ['Head Charge', 'Flare Blitz', 'Wood Hammer', 'Head Smash'], - signatureMove: 'RAWWWR', - evs: {hp: 248, def: 252, spd: 8}, ivs: {spe: 0}, nature: 'Relaxed', - }, - Meicoo: { - species: 'Venusaur', ability: 'Regenerator', item: 'Venusaurite', gender: 'M', - moves: ['Sludge Bomb', ['Giga Drain', 'Knock Off', 'Flamethrower'], ['Recover', 'Strength Sap']], - signatureMove: 'spamguess', - evs: {hp: 252, def: 252, spd: 4}, nature: 'Bold', - }, - Mitsuki: { - species: 'Leafeon', ability: 'Photosynthesis', item: ['Life Orb', 'Miracle Seed'], gender: 'M', - moves: ['Leaf Blade', 'Attack Order', 'Thousand Arrows'], - signatureMove: 'Terraforming', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - n10siT: { - species: 'Hoopa', ability: 'Greedy Magician', item: 'Focus Sash', gender: 'N', - moves: ['Hyperspace Hole', 'Shadow Ball', 'Aura Sphere'], - signatureMove: 'Unbind', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Naziel: { - species: 'Kirlia', ability: 'Prankster', item: 'Eviolite', gender: '', - moves: ['Glare', 'Defog', 'Swagger'], - signatureMove: 'Not-so-worthy Pirouette', - evs: {hp: 252, def: 200, spd: 56}, ivs: {atk: 0}, nature: 'Calm', shiny: true, - }, - Nol: { - species: 'Litwick', ability: 'Burning Soul', item: 'Spooky Plate', gender: 'F', - moves: ['Shadow Ball', 'Flamethrower', 'Giga Drain'], - signatureMove: 'Mad Hacks', - evs: {hp: 252, spa: 252, spd: 4}, ivs: {atk: 0, spe: 0}, nature: 'Quiet', shiny: true, - }, - Notater517: { - species: 'Jellicent', ability: 'Last-Minute Lag', item: 'Leftovers', gender: 'M', - moves: ['Hydro Cannon', 'Blast Burn', ['Toxic Spikes', 'Recover']], - signatureMove: 'Techno Tuber Transmission', - evs: {hp: 236, spa: 252, spe: 20}, ivs: {atk: 0}, nature: 'Modest', - }, - nui: { - species: 'Jigglypuff', ability: 'Condition Override', item: 'King\'s Rock', gender: 'M', - moves: ['Stealth Rock', 'Attract', 'Heal Order'], - signatureMove: 'Win Condition', - evs: {hp: 248, def: 92, spd: 168}, nature: 'Bold', shiny: true, - }, - 'OM~!': { - species: 'Glastrier', ability: 'Filter', item: 'Heavy Duty Boots', gender: 'M', - moves: ['Recover', 'Stealth Rock', 'Earthquake'], - signatureMove: 'OM Zoom', - evs: {hp: 252, def: 252, spd: 4}, ivs: {spe: 0}, nature: 'Relaxed', - }, - Overneat: { - species: 'Absol', ability: 'Intimidate', item: 'Absolite', gender: 'M', - moves: ['Play Rough', 'U-turn', 'Close Combat'], - signatureMove: 'Healing you?', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - pants: { - species: 'Phantump', ability: 'Ghost Spores', item: 'Eviolite', gender: 'M', - moves: ['Taunt', 'Spirit Shackle', ['Horn Leech', 'U-turn', 'Flip Turn']], - signatureMove: 'Wistful Thinking', - evs: {hp: 252, def: 4, spd: 252}, nature: 'Impish', shiny: true, - }, - 'Paradise ╱╲☼': { - species: 'Slaking', ability: 'Unaware', item: 'Choice Scarf', gender: '', - moves: ['Sacred Fire', 'Spectral Thief', 'Icicle Crash'], - signatureMove: 'Rapid Turn', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - PartMan: { - species: 'Chandelure', ability: 'Hecatomb', item: 'Focus Sash', gender: 'M', - moves: ['Nasty Plot', 'Draining Kiss', 'Dark Pulse'], - signatureMove: 'Baleful Blaze', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - 'PartMan-Shiny': { - species: 'Chandelure', ability: 'Hecatomb', item: 'Focus Sash', gender: 'M', - moves: ['Nasty Plot', 'Light of Ruin', 'Fiery Wrath'], - signatureMove: 'Baleful Blaze', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', shiny: true, - skip: 'PartMan', - }, - 'peapod c': { - species: 'Dragapult', ability: 'Stealth Black', item: 'Leftovers', gender: 'M', - moves: ['Hex', 'Dragon Darts', 'Work Up'], - signatureMove: 'Submartingale', - evs: {atk: 4, spa: 252, spe: 252}, nature: 'Mild', - }, - 'Perish Song': { - species: 'Rhydon', ability: 'Soup Sipper', item: 'Rocky Helmet', gender: 'M', - moves: ['Swords Dance', 'Stealth Rock', 'Rock Blast'], - signatureMove: 'Trickery', - evs: {hp: 252, atk: 4, def: 252}, nature: 'Impish', - }, - phiwings99: { - species: 'Froslass', ability: 'Plausible Deniability', item: 'Heavy Duty Boots', gender: 'M', - moves: ['Moongeist Beam', 'Spikes', 'Haze'], - signatureMove: 'Ghost of 1v1 Past', - evs: {hp: 252, spa: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - 'piloswine gripado': { - species: 'Piloswine', ability: 'Forever Winter Nights', item: 'Eviolite', gender: 'M', - moves: ['Earthquake', 'Bulk Up', 'refresh'], - signatureMove: 'Icicle Spirits', - evs: {hp: 252, atk: 252, def: 4}, nature: 'Adamant', - }, - 'PiraTe Princess': { - species: 'Polteageist', ability: 'Wild Magic Surge', item: 'Expert Belt', gender: 'F', - moves: [ - 'Moongeist Beam', 'Spacial Rend', [ - 'Tri Attack', 'Fiery Dance', 'Scald', 'Discharge', 'Apple Acid', 'Ice Beam', - 'Aura Sphere', 'Sludge Bomb', 'Earth Power', 'Oblivion Wing', 'Psyshock', 'Bug Buzz', - 'Power Gem', 'Dark Pulse', 'Flash Cannon', 'Dazzling Gleam', - ], - ], - signatureMove: 'Dungeons & Dragons', - evs: {def: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - Psynergy: { - species: 'Rayquaza', ability: 'Supernova', item: 'Wise Glasses', gender: 'M', - moves: ['Bouncy Bubble', 'Discharge', 'Lava Plume'], - signatureMove: 'Clear Breath', - evs: {spa: 252, spd: 4, spe: 252}, nature: 'Serious', shiny: true, - }, - ptoad: { - species: 'Palpitoad', ability: 'Swampy Surge', item: 'Eviolite', gender: 'M', - moves: ['Recover', 'Refresh', ['Sludge Bomb', 'Sludge Wave']], - signatureMove: 'Croak', - evs: {hp: 248, def: 8, spd: 252}, ivs: {atk: 0}, nature: 'Calm', - }, - Rabia: { - species: 'Mew', ability: 'Psychic Surge', item: 'Life Orb', gender: 'M', - moves: ['Nasty Plot', ['Flamethrower', 'Fire Blast'], 'Roost'], - signatureMove: 'Psycho Drive', - evs: {spa: 252, spd: 4, spe: 252}, nature: 'Timid', shiny: true, - }, - Rach: { - species: 'Spinda', ability: 'BURN IT DOWN!', item: 'Leftovers', gender: 'F', - moves: ['Extreme Speed', 'Recover', 'Knock Off'], - signatureMove: 'Spinda Wheel', - evs: {hp: 252, atk: 4, def: 252}, nature: 'Impish', - }, - Rage: { - species: 'Espeon', ability: 'Inversion Surge', item: 'Leftovers', gender: 'M', - moves: ['Psychic', 'Calm Mind', 'Hyper Voice'], - signatureMove: ':shockedlapras:', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - 'Raihan Kibana': { - species: 'Stoutland', ability: 'Royal Coat', item: 'Leftovers', gender: 'M', - moves: ['Knock Off', 'Thousand Waves', ['Play Rough', 'Power Whip']], - signatureMove: 'Stony Kibbles', - evs: {atk: 128, spd: 252, spe: 128}, nature: 'Jolly', - }, - 'Raj.Shoot': { - species: 'Charizard', ability: 'Tough Claws', item: 'Heavy-Duty Boots', gender: 'N', - moves: ['Flare Blitz', 'Dragon Claw', 'Roost'], - signatureMove: 'Fan Service', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - Ransei: { - species: 'Audino', ability: 'Neutralizing Gas', item: 'Choice Scarf', gender: 'M', - moves: ['Trick', 'Recover', 'Spectral Thief'], - signatureMove: 'ripsei', - evs: {hp: 252, atk: 4, spe: 252}, nature: 'Jolly', - }, - RavioliQueen: { - species: 'Mismagius', ability: 'Phantom Plane', item: 'Spell Tag', gender: '', - moves: ['Shadow Ball', 'Dark Pulse', 'Psychic'], - signatureMove: 'Witching Hour', - evs: {def: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - Robb576: { - species: 'Necrozma-Dawn-Wings', ability: 'The Numbers Game', item: 'Metronome', gender: 'M', - moves: ['Moongeist Beam', 'Psystrike', 'Thunder Wave'], - signatureMove: 'Mode [5: Offensive]', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - 'Robb576-Dusk-Mane': { - species: 'Necrozma-Dusk-Mane', ability: 'The Numbers Game', item: 'Leftovers', gender: 'M', - moves: ['Sunsteel Strike', 'Toxic', 'Rapid Spin'], - signatureMove: 'Mode [7: Defensive]', - evs: {hp: 252, atk: 4, spd: 252}, nature: 'Careful', - skip: 'Robb576', // This set is transformed into by The Numbers Game ability - }, - 'Robb576-Ultra': { - species: 'Necrozma-Ultra', ability: 'The Numbers Game', item: 'Modium-6 Z', gender: 'M', - moves: ['Earthquake', 'Dynamax Cannon', 'Fusion Flare'], - signatureMove: 'Photon Geyser', - evs: {atk: 204, spa: 200, spe: 104}, nature: 'Hasty', - skip: 'Robb576', // This set is transformed into by The Numbers Game ability - }, - Sectonia: { - species: 'Reuniclus', ability: 'Royal Aura', item: 'Leftovers', gender: 'M', - moves: ['Eerie Spell', 'Moonblast', 'Recover'], - signatureMove: 'Homunculus\'s Vanity', - evs: {hp: 252, def: 252, spd: 4}, ivs: {atk: 0, spe: 0}, nature: 'Relaxed', shiny: true, - }, - Segmr: { - species: 'Runerigus', ability: 'Skill Drain', item: 'Leftovers', gender: 'M', - moves: ['Recover', 'Will-O-Wisp', 'Protect'], - signatureMove: 'Tsukuyomi', - evs: {hp: 252, def: 4, spd: 252}, nature: 'Calm', shiny: true, - }, - sejesensei: { - species: 'Garbodor', ability: 'Trash Consumer', item: 'Red Card', gender: 'M', - moves: ['Toxic Spikes', 'Spikes', 'Thousand Waves'], - signatureMove: 'Bad Opinion', - evs: {hp: 252, atk: 56, def: 200}, nature: 'Impish', shiny: 2, - }, - Seso: { - species: 'Nidoking', ability: 'Intrepid Sword', item: 'Weakness Policy', gender: 'M', - moves: ['Sacred Sword', 'Leaf Blade', 'Behemoth Blade'], - signatureMove: 'Legendary Swordsman', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Adamant', shiny: true, - }, - Shadecession: { - species: 'Honchkrow', ability: 'Shady Deal', item: 'Heavy Duty Boots', gender: 'M', - moves: ['Knock Off', 'Roost', 'Brave Bird'], - signatureMove: 'Shade Uppercut', - evs: {atk: 252, spd: 4, spe: 252}, nature: 'Jolly', shiny: true, - }, - 'Soft Flex': { - species: 'Zapdos', ability: 'Eye of the Storm', item: ['Leftovers', 'Damp Rock'], gender: '', - moves: ['Thunder', 'Roost', ['Defog', 'Toxic']], - signatureMove: 'Updraft', - evs: {hp: 252, def: 252, spe: 8}, ivs: {atk: 0}, nature: 'Bold', shiny: 1024, - }, - Spandan: { - species: 'Mareanie', ability: 'Hacked Corrosion', item: 'Eviolite', gender: 'M', - moves: ['Toxic', 'Recover', 'Spiky Shield'], - signatureMove: 'I\'m Toxic You\'re Slippin\' Under', - evs: {hp: 252, def: 4, spd: 252}, nature: 'Calm', - }, - Struchni: { - species: 'Aggron', ability: 'Overasked Clause', item: 'Choice Band', gender: 'M', - moves: ['Pursuit', 'U-turn', 'Fishious Rend'], - signatureMove: 'Veto', - evs: {hp: 251, atk: 5, def: 11, spd: 241}, nature: 'Careful', - }, - Teclis: { - species: 'Typhlosion', ability: 'Fiery Fur', item: 'Heavy Duty Boots', gender: 'M', - moves: ['Earth Power', 'Seed Flare', 'Spiky Shield'], - signatureMove: 'Kaboom', - evs: {def: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - temp: { - species: 'Latias', ability: 'Charged Up', item: 'Dragon Fang', gender: 'F', - moves: ['Psychic', 'Surf', 'Roost'], - signatureMove: 'DROP A DRACO', - evs: {def: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', shiny: true, - }, - 'The Immortal': { - species: 'Xurkitree', ability: 'Teravolt', item: 'Electrium Z', gender: '', - moves: ['Tail Glow', 'Freeze Dry', 'Secret Sword'], - signatureMove: 'Watt Up', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Timid', - }, - thewaffleman: { - species: 'Mr. Rime', ability: 'Prankster', item: 'Kasib Berry', gender: 'M', - moves: ['Cotton Guard', 'Slack Off', 'Focus Blast'], - signatureMove: 'Ice Press', - evs: {hp: 252, def: 4, spd: 252}, ivs: {atk: 0}, nature: 'Calm', - }, - tiki: { - species: 'Snom', ability: 'True Grit', item: 'Eviolite', gender: 'M', - moves: ['Toxic', 'Strength Sap', 'U-turn'], - signatureMove: 'Right. On. Cue!', - evs: {hp: 128, def: 144, spd: 236}, ivs: {atk: 0}, nature: 'Bold', - }, - trace: { - species: 'Jirachi', ability: 'Trace', item: 'Leftovers', gender: '', - moves: ['Wish', 'Protect', 'Psychic'], - signatureMove: 'Hero Creation', - evs: {hp: 248, def: 8, spd: 252}, ivs: {atk: 0}, nature: 'Calm', - }, - Trickster: { - species: 'Shiinotic', ability: 'Trillionage Roots', item: 'Leftovers', gender: '', - moves: ['Strength Sap', 'Cosmic Power', 'Knock Off'], - signatureMove: 'Soul-Shattering Stare', - evs: {hp: 252, def: 252, spd: 4}, nature: 'Bold', shiny: true, - }, - Vexen: { - species: 'Tauros', ability: 'Aquila\'s Blessing', item: 'Life Orb', gender: 'M', - moves: ['Earthquake', 'Zen Headbutt', 'Rock Slide'], - signatureMove: 'Asterius Strike', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, - vivalospride: { - species: 'Darmanitan-Zen', ability: 'Regenerator', item: 'Heavy Duty Boots', gender: 'M', - moves: ['Teleport', 'Future Sight', 'Toxic'], - signatureMove: 'DRIP BAYLESS', - evs: {hp: 252, spa: 252, def: 4}, ivs: {atk: 0}, nature: 'Modest', - }, - Volco: { - species: 'Volcanion', ability: 'Speedrunning', item: 'Choice Scarf', - moves: ['Steam Eruption', ['Vacuum Wave', 'Secret Sword'], 'Overdrive'], - signatureMove: 'Glitch Exploiting', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: 'Timid', gender: 'N', - }, - vooper: { - species: 'Pancham', ability: 'Qi-Gong', item: 'Eviolite', gender: 'M', - moves: ['Drain Punch', 'Knock Off', 'Swords Dance'], - signatureMove: 'Panda Express', - evs: {hp: 252, atk: 252, spd: 4}, ivs: {atk: 0}, nature: 'Adamant', - }, - yuki: { - species: 'Pikachu-Cosplay', ability: 'Combat Training', item: 'Light Ball', gender: 'F', - moves: ['Quick Attack', 'Agility'], - signatureMove: 'Class Change', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, nature: ['Modest', 'Timid'], - }, - 'yuki-Cleric': { - species: 'Pikachu-PhD', ability: 'Triage', item: 'Light Ball', gender: 'F', - moves: ['Parabolic Charge', 'Wish', 'Baton Pass'], - signatureMove: 'Class Change', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, - skip: 'yuki', - }, - 'yuki-Dancer': { - species: 'Pikachu-Pop-Star', ability: 'Dancer', item: 'Light Ball', gender: 'F', - moves: ['Fiery Dance', 'Revelation Dance', 'Quiver Dance'], - signatureMove: 'Class Change', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, - skip: 'yuki', - }, - 'yuki-Ninja': { - species: 'Pikachu-Libre', ability: 'White Smoke', item: 'Light Ball', gender: 'F', - moves: ['Water Shuriken', 'Frost Breath', 'Toxic'], - signatureMove: 'Class Change', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, - skip: 'yuki', - }, - 'yuki-Songstress': { - species: 'Pikachu-Rock-Star', ability: 'Punk Rock', item: 'Light Ball', gender: 'F', - moves: ['Hyper Voice', 'Overdrive', 'Sing'], - signatureMove: 'Class Change', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, - skip: 'yuki', - }, - 'yuki-Jester': { - species: 'Pikachu-Belle', ability: 'Weak Armor', item: 'Light Ball', gender: 'F', - moves: ['Fire Blast', 'Thunder', 'Blizzard'], - signatureMove: 'Class Change', - evs: {hp: 4, spa: 252, spe: 252}, ivs: {atk: 0}, - skip: 'yuki', - }, - Zalm: { - species: 'Weedle', ability: 'Berserk', item: 'Sitrus Berry', gender: 'M', - moves: ['Quiver Dance', 'Belch', ['Snipe Shot', 'Power Gem']], - signatureMove: 'Ingredient Foraging', - evs: {hp: 252, spa: 252, spd: 4}, ivs: {atk: 0}, nature: 'Modest', - }, - Zarel: { - species: 'Meloetta', ability: 'Dancer', item: 'Leftovers', gender: 'N', - moves: ['Quiver Dance', 'Feather Dance', 'Lunar Dance'], - signatureMove: 'Relic Dance', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - }, - 'Zarel-Pirouette': { - species: 'Meloetta-Pirouette', ability: 'Serene Grace', item: 'Leftovers', gender: 'N', - moves: ['Revelation Dance', 'Fiery Dance', 'Petal Dance'], - signatureMove: 'Relic Dance', - evs: {spa: 252, spd: 4, spe: 252}, ivs: {atk: 0}, nature: 'Modest', - skip: 'Zarel', - }, - Zodiax: { - species: 'Oricorio-Pom-Pom', ability: 'Primordial Sea', item: 'Heavy-Duty Boots', gender: 'M', - moves: ['Quiver Dance', 'Hurricane', 'Thunder'], - signatureMove: 'Big Storm Coming', - evs: {hp: 4, spa: 252, spe: 252}, nature: 'Timid', - }, - Zyg: { - species: 'Azelf', ability: 'Magic Bounce', item: ['Life Orb', 'Expert Belt'], gender: 'M', - moves: ['Photon Geyser', 'Knock Off', ['U-turn', 'Play Rough', 'Close Combat']], - signatureMove: 'Luck of the Draw', - evs: {atk: 252, def: 4, spe: 252}, nature: 'Jolly', - }, -}; - -const afdSSBSets: SSBSets = { - 'Fox': { - species: 'Delphox', ability: 'No Ability', item: '', gender: '', - moves: [], - signatureMove: 'Super Metronome', - }, -}; - -export class RandomStaffBrosTeams extends RandomGen8Teams { - randomStaffBrosTeam(options: {inBattle?: boolean} = {}) { - this.enforceNoDirectCustomBanlistChanges(); - - const team: PokemonSet[] = []; - const debug: string[] = []; // Set this to a list of SSB sets to override the normal pool for debugging. - const ruleTable = this.dex.formats.getRuleTable(this.format); - const wiiulegacy = !ruleTable.has('dynamaxclause'); - const monotype = ruleTable.has('sametypeclause') ? this.sample([...this.dex.types.names()]) : false; - - let pool = debug.length ? debug : wiiulegacy ? Object.keys(afdSSBSets) : Object.keys(ssbSets); - if (monotype && !debug.length) { - pool = pool.filter(x => this.dex.species.get(ssbSets[x].species).types.includes(monotype)); - } - const typePool: {[k: string]: number} = {}; - let depth = 0; - while (pool.length && team.length < this.maxTeamSize) { - if (depth >= 200) throw new Error(`Infinite loop in Super Staff Bros team generation.`); - depth++; - const name = wiiulegacy ? this.sample(pool) : this.sampleNoReplace(pool); - const ssbSet: SSBSet = wiiulegacy ? this.dex.deepClone(afdSSBSets[name]) : this.dex.deepClone(ssbSets[name]); - if (ssbSet.skip) continue; - - // Enforce typing limits - if (!(debug.length || monotype || wiiulegacy)) { // Type limits are ignored for debugging, monotype, or memes. - const species = this.dex.species.get(ssbSet.species); - if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; - - const weaknesses = []; - for (const type of this.dex.types.names()) { - const typeMod = this.dex.getEffectiveness(type, species.types); - if (typeMod > 0) weaknesses.push(type); - } - let rejected = false; - for (const type of weaknesses) { - if (typePool[type] === undefined) typePool[type] = 0; - if (typePool[type] >= 3) { - // Reject - rejected = true; - break; - } - } - if (ssbSet.ability === 'Wonder Guard') { - if (!typePool['wonderguard']) { - typePool['wonderguard'] = 1; - } else { - rejected = true; - } - } - if (rejected) continue; - // Update type counts - for (const type of weaknesses) { - typePool[type]++; - } - } - - const set: PokemonSet = { - name: name, - species: ssbSet.species, - item: Array.isArray(ssbSet.item) ? this.sampleNoReplace(ssbSet.item) : ssbSet.item, - ability: Array.isArray(ssbSet.ability) ? this.sampleNoReplace(ssbSet.ability) : ssbSet.ability, - moves: [], - nature: ssbSet.nature ? Array.isArray(ssbSet.nature) ? this.sampleNoReplace(ssbSet.nature) : ssbSet.nature : 'Serious', - gender: ssbSet.gender || this.sample(['M', 'F', 'N']), - evs: ssbSet.evs ? {...{hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0}, ...ssbSet.evs} : - {hp: 84, atk: 84, def: 84, spa: 84, spd: 84, spe: 84}, - ivs: {...{hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, ...ssbSet.ivs}, - level: this.adjustLevel || ssbSet.level || 100, - happiness: typeof ssbSet.happiness === 'number' ? ssbSet.happiness : 255, - shiny: typeof ssbSet.shiny === 'number' ? this.randomChance(1, ssbSet.shiny) : !!ssbSet.shiny, - }; - while (set.moves.length < 3 && ssbSet.moves.length > 0) { - let move = this.sampleNoReplace(ssbSet.moves); - if (Array.isArray(move)) move = this.sampleNoReplace(move); - set.moves.push(move); - } - set.moves.push(ssbSet.signatureMove); - - // Any set specific tweaks occur here. - if (set.name === 'Marshmallon' && !set.moves.includes('Head Charge')) set.moves[this.random(3)] = 'Head Charge'; - - if (wiiulegacy) { - const egg = this.random(100); - if (egg === 69) { - set.name = 'Falco'; - set.species = 'Swellow'; - } else if (egg === 96) { - set.name = 'Captain Falcon'; - set.species = 'Talonflame'; - } - if (this.randomChance(1, 100)) { - set.item = 'Mail'; - } - } - - team.push(set); - - // Team specific tweaks occur here - // Swap last and second to last sets if last set has Illusion - if (team.length === this.maxTeamSize && set.ability === 'Illusion') { - team[this.maxTeamSize - 1] = team[this.maxTeamSize - 2]; - team[this.maxTeamSize - 2] = set; - } - } - return team; - } -} - -export default RandomStaffBrosTeams; diff --git a/data/mods/ssb/scripts.ts b/data/mods/ssb/scripts.ts deleted file mode 100644 index 778c403aaf35..000000000000 --- a/data/mods/ssb/scripts.ts +++ /dev/null @@ -1,1037 +0,0 @@ -export const Scripts: ModdedBattleScriptsData = { - gen: 8, - inherit: 'gen8', - actions: { - // 1 mega per pokemon - runMegaEvo(pokemon) { - if (pokemon.name === 'Struchni' && pokemon.species.name === 'Aggron') pokemon.canMegaEvo = 'Aggron-Mega'; - if (pokemon.name === 'Raj.Shoot' && pokemon.species.name === 'Charizard') pokemon.canMegaEvo = 'Charizard-Mega-X'; - const speciesid = pokemon.canMegaEvo || pokemon.canUltraBurst; - if (!speciesid) return false; - - pokemon.formeChange(speciesid, pokemon.getItem(), true); - if (pokemon.canMegaEvo) { - pokemon.canMegaEvo = null; - } else { - pokemon.canUltraBurst = null; - } - - this.battle.runEvent('AfterMega', pokemon); - - if (['Kaiju Bunny', 'Overneat', 'EpicNikolai'].includes(pokemon.name) && !pokemon.illusion) { - this.battle.add('-start', pokemon, 'typechange', pokemon.types.join('/')); - } - - this.battle.add('-ability', pokemon, `${pokemon.getAbility().name}`); - - return true; - }, - - // Modded for Mega Rayquaza - canMegaEvo(pokemon) { - const species = pokemon.baseSpecies; - const altForme = species.otherFormes && this.dex.species.get(species.otherFormes[0]); - const item = pokemon.getItem(); - // Mega Rayquaza - if (altForme?.isMega && altForme?.requiredMove && - pokemon.baseMoves.includes(this.battle.toID(altForme.requiredMove)) && !item.zMove) { - return altForme.name; - } - // a hacked-in Megazard X can mega evolve into Megazard Y, but not into Megazard X - if (item.megaEvolves === species.baseSpecies && item.megaStone !== species.name) { - return item.megaStone; - } - return null; - }, - - // 1 Z per pokemon - canZMove(pokemon) { - if (pokemon.m.zMoveUsed || - (pokemon.transformed && - (pokemon.species.isMega || pokemon.species.isPrimal || pokemon.species.forme === "Ultra")) - ) return; - const item = pokemon.getItem(); - if (!item.zMove) return; - if (item.itemUser && !item.itemUser.includes(pokemon.species.name)) return; - let atLeastOne = false; - let mustStruggle = true; - const zMoves: ZMoveOptions = []; - for (const moveSlot of pokemon.moveSlots) { - if (moveSlot.pp <= 0) { - zMoves.push(null); - continue; - } - if (!moveSlot.disabled) { - mustStruggle = false; - } - const move = this.dex.moves.get(moveSlot.move); - let zMoveName = this.getZMove(move, pokemon, true) || ''; - if (zMoveName) { - const zMove = this.dex.moves.get(zMoveName); - if (!zMove.isZ && zMove.category === 'Status') zMoveName = "Z-" + zMoveName; - zMoves.push({move: zMoveName, target: zMove.target}); - } else { - zMoves.push(null); - } - if (zMoveName) atLeastOne = true; - } - if (atLeastOne && !mustStruggle) return zMoves; - }, - - getZMove(move, pokemon, skipChecks) { - const item = pokemon.getItem(); - if (!skipChecks) { - if (pokemon.m.zMoveUsed) return; - if (!item.zMove) return; - if (item.itemUser && !item.itemUser.includes(pokemon.species.name)) return; - const moveData = pokemon.getMoveData(move); - // Draining the PP of the base move prevents the corresponding Z-move from being used. - if (!moveData?.pp) return; - } - - if (move.name === item.zMoveFrom) { - return item.zMove as string; - } else if (item.zMove === true && move.type === item.zMoveType) { - if (move.category === "Status") { - return move.name; - } else if (move.zMove?.basePower) { - return this.Z_MOVES[move.type]; - } - } - }, - - runMove(moveOrMoveName, pokemon, targetLoc, sourceEffect, zMove, externalMove, maxMove, originalTarget) { - pokemon.activeMoveActions++; - let target = this.battle.getTarget(pokemon, maxMove || zMove || moveOrMoveName, targetLoc, originalTarget); - let baseMove = this.dex.getActiveMove(moveOrMoveName); - const pranksterBoosted = baseMove.pranksterBoosted; - if (baseMove.id !== 'struggle' && !zMove && !maxMove && !externalMove) { - const changedMove = this.battle.runEvent('OverrideAction', pokemon, target, baseMove); - if (changedMove && changedMove !== true) { - baseMove = this.dex.getActiveMove(changedMove); - if (pranksterBoosted) baseMove.pranksterBoosted = pranksterBoosted; - target = this.battle.getRandomTarget(pokemon, baseMove); - } - } - let move = baseMove; - if (zMove) { - move = this.getActiveZMove(baseMove, pokemon); - } else if (maxMove) { - move = this.getActiveMaxMove(baseMove, pokemon); - } - - move.isExternal = externalMove; - - this.battle.setActiveMove(move, pokemon, target); - - /* if (pokemon.moveThisTurn) { - // THIS IS PURELY A SANITY CHECK - // DO NOT TAKE ADVANTAGE OF THIS TO PREVENT A POKEMON FROM MOVING; - // USE this.battle.queue.cancelMove INSTEAD - this.battle.debug('' + pokemon.id + ' INCONSISTENT STATE, ALREADY MOVED: ' + pokemon.moveThisTurn); - this.battle.clearActiveMove(true); - return; - } */ - const willTryMove = this.battle.runEvent('BeforeMove', pokemon, target, move); - if (!willTryMove) { - this.battle.runEvent('MoveAborted', pokemon, target, move); - this.battle.clearActiveMove(true); - // The event 'BeforeMove' could have returned false or null - // false indicates that this counts as a move failing for the purpose of calculating Stomping Tantrum's base power - // null indicates the opposite, as the Pokemon didn't have an option to choose anything - pokemon.moveThisTurnResult = willTryMove; - return; - } - if (move.beforeMoveCallback) { - if (move.beforeMoveCallback.call(this.battle, pokemon, target, move)) { - this.battle.clearActiveMove(true); - pokemon.moveThisTurnResult = false; - return; - } - } - pokemon.lastDamage = 0; - let lockedMove; - if (!externalMove) { - lockedMove = this.battle.runEvent('LockMove', pokemon); - if (lockedMove === true) lockedMove = false; - if (!lockedMove) { - if (!pokemon.deductPP(baseMove, null, target) && (move.id !== 'struggle')) { - this.battle.add('cant', pokemon, 'nopp', move); - const gameConsole = [ - null, 'Game Boy', 'Game Boy Color', 'Game Boy Advance', 'DS', 'DS', '3DS', '3DS', - ][this.battle.gen] || 'Switch'; - this.battle.hint(`This is not a bug, this is really how it works on the ${gameConsole}; try it yourself if you don't believe us.`); - this.battle.clearActiveMove(true); - pokemon.moveThisTurnResult = false; - return; - } - } else { - sourceEffect = this.dex.conditions.get('lockedmove'); - } - pokemon.moveUsed(move, targetLoc); - } - - // Dancer Petal Dance hack - // TODO: implement properly - const noLock = externalMove && !pokemon.volatiles['lockedmove']; - - if (zMove) { - if (pokemon.illusion) { - this.battle.singleEvent('End', this.dex.abilities.get('Illusion'), pokemon.abilityState, pokemon); - } - this.battle.add('-zpower', pokemon); - // In SSB Z-Moves are limited to 1 per pokemon. - pokemon.m.zMoveUsed = true; - } - const moveDidSomething = this.battle.actions.useMove(baseMove, pokemon, target, sourceEffect, zMove, maxMove); - if (this.battle.activeMove) move = this.battle.activeMove; - this.battle.singleEvent('AfterMove', move, null, pokemon, target, move); - this.battle.runEvent('AfterMove', pokemon, target, move); - - // Dancer's activation order is completely different from any other event, so it's handled separately - if (move.flags['dance'] && moveDidSomething && !move.isExternal) { - const dancers = []; - for (const currentPoke of this.battle.getAllActive()) { - if (pokemon === currentPoke) continue; - if (currentPoke.hasAbility('dancer') && !currentPoke.isSemiInvulnerable()) { - dancers.push(currentPoke); - } - } - // Dancer activates in order of lowest speed stat to highest - // Note that the speed stat used is after any volatile replacements like Speed Swap, - // but before any multipliers like Agility or Choice Scarf - // Ties go to whichever Pokemon has had the ability for the least amount of time - dancers.sort( - (a, b) => -(b.storedStats['spe'] - a.storedStats['spe']) || b.abilityOrder - a.abilityOrder - ); - for (const dancer of dancers) { - if (this.battle.faintMessages()) break; - if (dancer.fainted) continue; - this.battle.add('-activate', dancer, 'ability: Dancer'); - const dancersTarget = !target!.isAlly(dancer) && pokemon.isAlly(dancer) ? target! : pokemon; - const dancersTargetLoc = dancer.getLocOf(dancersTarget); - this.runMove(move.id, dancer, dancersTargetLoc, this.dex.abilities.get('dancer'), undefined, true); - } - } - if (noLock && pokemon.volatiles['lockedmove']) delete pokemon.volatiles['lockedmove']; - }, - - // Dollar Store Brand prankster immunity implementation - hitStepTryImmunity(targets, pokemon, move) { - const hitResults = []; - for (const [i, target] of targets.entries()) { - if (this.battle.gen >= 6 && move.flags['powder'] && target !== pokemon && !this.dex.getImmunity('powder', target)) { - this.battle.debug('natural powder immunity'); - this.battle.add('-immune', target); - hitResults[i] = false; - } else if (!this.battle.singleEvent('TryImmunity', move, {}, target, pokemon, move)) { - this.battle.add('-immune', target); - hitResults[i] = false; - } else if ( - this.battle.gen >= 7 && move.pranksterBoosted && - (pokemon.hasAbility('prankster') || pokemon.hasAbility('plausibledeniability') || pokemon.volatiles['nol']) && - !targets[i].isAlly(pokemon) && !this.dex.getImmunity('prankster', target) - ) { - this.battle.debug('natural prankster immunity'); - if (!target.illusion) this.battle.hint("Since gen 7, Dark is immune to Prankster moves."); - this.battle.add('-immune', target); - hitResults[i] = false; - } else { - hitResults[i] = true; - } - } - return hitResults; - }, - - // For Jett's The Hunt is On! - useMoveInner(moveOrMoveName, pokemon, target, sourceEffect, zMove, maxMove) { - if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; - if (sourceEffect && ['instruct', 'custapberry'].includes(sourceEffect.id)) sourceEffect = null; - - let move = this.dex.getActiveMove(moveOrMoveName); - if (move.id === 'weatherball' && zMove) { - // Z-Weather Ball only changes types if it's used directly, - // not if it's called by Z-Sleep Talk or something. - this.battle.singleEvent('ModifyType', move, null, pokemon, target, move, move); - if (move.type !== 'Normal') sourceEffect = move; - } - if (zMove || (move.category !== 'Status' && sourceEffect && (sourceEffect as ActiveMove).isZ)) { - move = this.getActiveZMove(move, pokemon); - } - if (maxMove && move.category !== 'Status') { - // Max move outcome is dependent on the move type after type modifications from ability and the move itself - this.battle.singleEvent('ModifyType', move, null, pokemon, target, move, move); - this.battle.runEvent('ModifyType', pokemon, target, move, move); - } - if (maxMove || (move.category !== 'Status' && sourceEffect && (sourceEffect as ActiveMove).isMax)) { - move = this.getActiveMaxMove(move, pokemon); - } - - if (this.battle.activeMove) { - move.priority = this.battle.activeMove.priority; - if (!move.hasBounced) move.pranksterBoosted = this.battle.activeMove.pranksterBoosted; - } - const baseTarget = move.target; - if (target === undefined) target = this.battle.getRandomTarget(pokemon, move); - if (move.target === 'self' || move.target === 'allies') { - target = pokemon; - } - if (sourceEffect) { - move.sourceEffect = sourceEffect.id; - move.ignoreAbility = false; - } - let moveResult = false; - - this.battle.setActiveMove(move, pokemon, target); - - this.battle.singleEvent('ModifyType', move, null, pokemon, target, move, move); - this.battle.singleEvent('ModifyMove', move, null, pokemon, target, move, move); - if (baseTarget !== move.target) { - // Target changed in ModifyMove, so we must adjust it here - // Adjust before the next event so the correct target is passed to the - // event - target = this.battle.getRandomTarget(pokemon, move); - } - move = this.battle.runEvent('ModifyType', pokemon, target, move, move); - move = this.battle.runEvent('ModifyMove', pokemon, target, move, move); - if (baseTarget !== move.target) { - // Adjust again - target = this.battle.getRandomTarget(pokemon, move); - } - if (!move || pokemon.fainted) { - return false; - } - - let attrs = ''; - - let movename = move.name; - if (move.id === 'hiddenpower') movename = 'Hidden Power'; - if (sourceEffect) attrs += '|[from]' + this.dex.conditions.get(sourceEffect); - if (zMove && move.isZ === true) { - attrs = '|[anim]' + movename + attrs; - movename = 'Z-' + movename; - } - this.battle.addMove('move', pokemon, movename, target + attrs); - - if (zMove) this.runZPower(move, pokemon); - - if (!target) { - this.battle.attrLastMove('[notarget]'); - this.battle.add(this.battle.gen >= 5 ? '-fail' : '-notarget', pokemon); - return false; - } - - const {targets, pressureTargets} = pokemon.getMoveTargets(move, target); - if (targets.length) { - target = targets[targets.length - 1]; // in case of redirection - } - - if (!sourceEffect || sourceEffect.id === 'pursuit' || sourceEffect.id === 'thehuntison') { - let extraPP = 0; - for (const source of pressureTargets) { - const ppDrop = this.battle.runEvent('DeductPP', source, pokemon, move); - if (ppDrop !== true) { - extraPP += ppDrop || 0; - } - } - if (extraPP > 0) { - pokemon.deductPP(move, extraPP); - } - } - - if (!this.battle.singleEvent('TryMove', move, null, pokemon, target, move) || - !this.battle.runEvent('TryMove', pokemon, target, move)) { - move.mindBlownRecoil = false; - return false; - } - - this.battle.singleEvent('UseMoveMessage', move, null, pokemon, target, move); - - if (move.ignoreImmunity === undefined) { - move.ignoreImmunity = (move.category === 'Status'); - } - - if (this.battle.gen !== 4 && move.selfdestruct === 'always') { - this.battle.faint(pokemon, pokemon, move); - } - - let damage: number | false | undefined | '' = false; - if (move.target === 'all' || move.target === 'foeSide' || move.target === 'allySide' || move.target === 'allyTeam') { - damage = this.tryMoveHit(target, pokemon, move); - if (damage === this.battle.NOT_FAIL) pokemon.moveThisTurnResult = null; - if (damage || damage === 0 || damage === undefined) moveResult = true; - } else { - if (!targets.length) { - this.battle.attrLastMove('[notarget]'); - this.battle.add(this.battle.gen >= 5 ? '-fail' : '-notarget', pokemon); - return false; - } - if (this.battle.gen === 4 && move.selfdestruct === 'always') { - this.battle.faint(pokemon, pokemon, move); - } - moveResult = this.trySpreadMoveHit(targets, pokemon, move); - } - if (move.selfBoost && moveResult) this.moveHit(pokemon, pokemon, move, move.selfBoost, false, true); - if (!pokemon.hp) { - this.battle.faint(pokemon, pokemon, move); - } - - if (!moveResult) { - this.battle.singleEvent('MoveFail', move, null, target, pokemon, move); - return false; - } - - if ( - !move.negateSecondary && - !(move.hasSheerForce && pokemon.hasAbility(['sheerforce', 'aquilasblessing'])) && - !this.battle.getAllActive().some(x => x.hasAbility('skilldrain')) - ) { - const originalHp = pokemon.hp; - this.battle.singleEvent('AfterMoveSecondarySelf', move, null, pokemon, target, move); - this.battle.runEvent('AfterMoveSecondarySelf', pokemon, target, move); - if (pokemon !== target && move.category !== 'Status') { - if (pokemon.hp <= pokemon.maxhp / 2 && originalHp > pokemon.maxhp / 2) { - this.battle.runEvent('EmergencyExit', pokemon, pokemon); - } - } - } - - if (move.selfSwitch && this.battle.getAllActive().some(x => x.hasAbility('skilldrain'))) { - this.battle.hint(`Self-switching doesn't trigger when a Pokemon with Skill Drain is active.`); - } - - return true; - }, - afterMoveSecondaryEvent(targets, pokemon, move) { - // console.log(`${targets}, ${pokemon}, ${move}`) - if ( - !move.negateSecondary && - !(move.hasSheerForce && pokemon.hasAbility(['sheerforce', 'aquilasblessing'])) && - !this.battle.getAllActive().some(x => x.hasAbility('skilldrain')) - ) { - this.battle.singleEvent('AfterMoveSecondary', move, null, targets[0], pokemon, move); - this.battle.runEvent('AfterMoveSecondary', targets, pokemon, move); - } - return undefined; - }, - hitStepMoveHitLoop(targets, pokemon, move) { // Temporary name - const damage: (number | boolean | undefined)[] = []; - for (const i of targets.keys()) { - damage[i] = 0; - } - move.totalDamage = 0; - pokemon.lastDamage = 0; - let targetHits = move.multihit || 1; - if (Array.isArray(targetHits)) { - // yes, it's hardcoded... meh - if (targetHits[0] === 2 && targetHits[1] === 5) { - if (this.battle.gen >= 5) { - targetHits = this.battle.sample([2, 2, 3, 3, 4, 5]); - } else { - targetHits = this.battle.sample([2, 2, 2, 3, 3, 3, 4, 5]); - } - } else { - targetHits = this.battle.random(targetHits[0], targetHits[1] + 1); - } - } - targetHits = Math.floor(targetHits); - let nullDamage = true; - let moveDamage: (number | boolean | undefined)[]; - // There is no need to recursively check the ´sleepUsable´ flag as Sleep Talk can only be used while asleep. - const isSleepUsable = move.sleepUsable || this.dex.moves.get(move.sourceEffect).sleepUsable; - - let targetsCopy: (Pokemon | false | null)[] = targets.slice(0); - let hit: number; - for (hit = 1; hit <= targetHits; hit++) { - if (damage.includes(false)) break; - if (hit > 1 && pokemon.status === 'slp' && !isSleepUsable) break; - if (targets.every(target => !target?.hp)) break; - move.hit = hit; - if (move.smartTarget && targets.length > 1) { - targetsCopy = [targets[hit - 1]]; - } else { - targetsCopy = targets.slice(0); - } - const target = targetsCopy[0]; // some relevant-to-single-target-moves-only things are hardcoded - if (target && typeof move.smartTarget === 'boolean') { - if (hit > 1) { - this.battle.addMove('-anim', pokemon, move.name, target); - } else { - this.battle.retargetLastMove(target); - } - } - - // like this (Triple Kick) - if (target && move.multiaccuracy && hit > 1) { - let accuracy = move.accuracy; - const boostTable = [1, 4 / 3, 5 / 3, 2, 7 / 3, 8 / 3, 3]; - if (accuracy !== true) { - if (!move.ignoreAccuracy) { - const boosts = this.battle.runEvent('ModifyBoost', pokemon, null, null, {...pokemon.boosts}); - const boost = this.battle.clampIntRange(boosts['accuracy'], -6, 6); - if (boost > 0) { - accuracy *= boostTable[boost]; - } else { - accuracy /= boostTable[-boost]; - } - } - if (!move.ignoreEvasion) { - const boosts = this.battle.runEvent('ModifyBoost', target, null, null, {...target.boosts}); - const boost = this.battle.clampIntRange(boosts['evasion'], -6, 6); - if (boost > 0) { - accuracy /= boostTable[boost]; - } else if (boost < 0) { - accuracy *= boostTable[-boost]; - } - } - } - accuracy = this.battle.runEvent('ModifyAccuracy', target, pokemon, move, accuracy); - if (!move.alwaysHit) { - accuracy = this.battle.runEvent('Accuracy', target, pokemon, move, accuracy); - if (accuracy !== true && !this.battle.randomChance(accuracy, 100)) break; - } - } - - const moveData = move; - if (!moveData.flags) moveData.flags = {}; - - // Modifies targetsCopy (which is why it's a copy) - [moveDamage, targetsCopy] = this.spreadMoveHit(targetsCopy, pokemon, move, moveData); - - if (!moveDamage.some(val => val !== false)) break; - nullDamage = false; - - for (const [i, md] of moveDamage.entries()) { - // Damage from each hit is individually counted for the - // purposes of Counter, Metal Burst, and Mirror Coat. - damage[i] = md === true || !md ? 0 : md; - // Total damage dealt is accumulated for the purposes of recoil (Parental Bond). - // @ts-ignore - move.totalDamage += damage[i]; - } - if (move.mindBlownRecoil) { - this.battle.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Mind Blown'), true); - move.mindBlownRecoil = false; - } - this.battle.eachEvent('Update'); - if (!pokemon.hp && targets.length === 1) { - hit++; // report the correct number of hits for multihit moves - break; - } - } - // hit is 1 higher than the actual hit count - if (hit === 1) return damage.fill(false); - if (nullDamage) damage.fill(false); - if (move.multihit && typeof move.smartTarget !== 'boolean') { - this.battle.add('-hitcount', targets[0], hit - 1); - } - - if (move.recoil && move.totalDamage) { - this.battle.damage(this.calcRecoilDamage(move.totalDamage, move), pokemon, pokemon, 'recoil'); - } - - if (move.struggleRecoil) { - let recoilDamage; - if (this.dex.gen >= 5) { - recoilDamage = this.battle.clampIntRange(Math.round(pokemon.baseMaxhp / 4), 1); - } else { - recoilDamage = this.battle.trunc(pokemon.maxhp / 4); - } - this.battle.directDamage(recoilDamage, pokemon, pokemon, {id: 'strugglerecoil'} as Condition); - } - - // smartTarget messes up targetsCopy, but smartTarget should in theory ensure that targets will never fail, anyway - if (move.smartTarget) targetsCopy = targets.slice(0); - - for (const [i, target] of targetsCopy.entries()) { - if (target && pokemon !== target) { - target.gotAttacked(move, damage[i] as number | false | undefined, pokemon); - } - } - - if (move.ohko && !targets[0].hp) this.battle.add('-ohko'); - - if (!damage.some(val => !!val || val === 0)) return damage; - - this.battle.eachEvent('Update'); - - this.afterMoveSecondaryEvent(targetsCopy.filter(val => !!val) as Pokemon[], pokemon, move); - - if ( - !move.negateSecondary && - !(move.hasSheerForce && pokemon.hasAbility(['sheerforce', 'aquilasblessing'])) && - !this.battle.getAllActive().some(x => x.hasAbility('skilldrain')) - ) { - for (const [i, d] of damage.entries()) { - // There are no multihit spread moves, so it's safe to use move.totalDamage for multihit moves - // The previous check was for `move.multihit`, but that fails for Dragon Darts - const curDamage = targets.length === 1 ? move.totalDamage : d; - if (typeof curDamage === 'number' && targets[i].hp) { - if (targets[i].hp <= targets[i].maxhp / 2 && targets[i].hp + curDamage > targets[i].maxhp / 2) { - this.battle.runEvent('EmergencyExit', targets[i], pokemon); - } - } - } - } - - return damage; - }, - - // For Spandan's custom move and Brandon's ability - getDamage(source, target, move, suppressMessages = false) { - if (typeof move === 'string') move = this.dex.getActiveMove(move); - - if (typeof move === 'number') { - const basePower = move; - move = new Dex.Move({ - basePower, - type: '???', - category: 'Physical', - willCrit: false, - }) as unknown as ActiveMove; - move.hit = 0; - } - - if (!move.ignoreImmunity || (move.ignoreImmunity !== true && !move.ignoreImmunity[move.type])) { - if (!target.runImmunity(move.type, !suppressMessages)) { - return false; - } - } - - if (move.ohko) return target.maxhp; - if (move.damageCallback) return move.damageCallback.call(this.battle, source, target); - if (move.damage === 'level') { - return source.level; - } else if (move.damage) { - return move.damage; - } - - const category = this.battle.getCategory(move); - - let basePower: number | false | null = move.basePower; - if (move.basePowerCallback) { - basePower = move.basePowerCallback.call(this.battle, source, target, move); - } - if (!basePower) return basePower === 0 ? undefined : basePower; - basePower = this.battle.clampIntRange(basePower, 1); - - let critMult; - let critRatio = this.battle.runEvent('ModifyCritRatio', source, target, move, move.critRatio || 0); - if (this.battle.gen <= 5) { - critRatio = this.battle.clampIntRange(critRatio, 0, 5); - critMult = [0, 16, 8, 4, 3, 2]; - } else { - critRatio = this.battle.clampIntRange(critRatio, 0, 4); - if (this.battle.gen === 6) { - critMult = [0, 16, 8, 2, 1]; - } else { - critMult = [0, 24, 8, 2, 1]; - } - } - - const moveHit = target.getMoveHitData(move); - moveHit.crit = move.willCrit || false; - if (move.willCrit === undefined) { - if (critRatio) { - moveHit.crit = this.battle.randomChance(1, critMult[critRatio]); - } - } - - if (moveHit.crit) { - moveHit.crit = this.battle.runEvent('CriticalHit', target, null, move); - } - - // happens after crit calculation - basePower = this.battle.runEvent('BasePower', source, target, move, basePower, true); - - if (!basePower) return 0; - basePower = this.battle.clampIntRange(basePower, 1); - - const level = source.level; - - const attacker = move.overrideOffensivePokemon === 'target' ? target : source; - const defender = move.overrideDefensivePokemon === 'source' ? source : target; - - const isPhysical = move.category === 'Physical'; - let attackStat: StatIDExceptHP = move.overrideOffensiveStat || (isPhysical ? 'atk' : 'spa'); - const defenseStat: StatIDExceptHP = move.overrideDefensiveStat || (isPhysical ? 'def' : 'spd'); - - const statTable = {atk: 'Atk', def: 'Def', spa: 'SpA', spd: 'SpD', spe: 'Spe'}; - - let atkBoosts = attacker.boosts[attackStat]; - let defBoosts = defender.boosts[defenseStat]; - - let ignoreNegativeOffensive = !!move.ignoreNegativeOffensive; - let ignorePositiveDefensive = !!move.ignorePositiveDefensive; - - if (moveHit.crit) { - ignoreNegativeOffensive = true; - ignorePositiveDefensive = true; - } - const ignoreOffensive = !!(move.ignoreOffensive || (ignoreNegativeOffensive && atkBoosts < 0)); - const ignoreDefensive = !!(move.ignoreDefensive || (ignorePositiveDefensive && defBoosts > 0)); - - if (ignoreOffensive) { - this.battle.debug('Negating (sp)atk boost/penalty.'); - atkBoosts = 0; - } - if (ignoreDefensive) { - this.battle.debug('Negating (sp)def boost/penalty.'); - defBoosts = 0; - } - - let attack = attacker.calculateStat(attackStat, atkBoosts); - let defense = defender.calculateStat(defenseStat, defBoosts); - - attackStat = (category === 'Physical' ? 'atk' : 'spa'); - - // Apply Stat Modifiers - attack = this.battle.runEvent('Modify' + statTable[attackStat], source, target, move, attack); - defense = this.battle.runEvent('Modify' + statTable[defenseStat], target, source, move, defense); - - if (this.battle.gen <= 4 && ['explosion', 'selfdestruct'].includes(move.id) && defenseStat === 'def') { - defense = this.battle.clampIntRange(Math.floor(defense / 2), 1); - } - - const tr = this.battle.trunc; - - // int(int(int(2 * L / 5 + 2) * A * P / D) / 50); - const baseDamage = tr(tr(tr(tr(2 * level / 5 + 2) * basePower * attack) / defense) / 50); - - // Calculate damage modifiers separately (order differs between generations) - return this.modifyDamage(baseDamage, source, target, move, suppressMessages); - }, - - runMoveEffects(damage, targets, pokemon, move, moveData, isSecondary, isSelf) { - let didAnything: number | boolean | null | undefined = damage.reduce(this.combineResults); - for (const [i, target] of targets.entries()) { - if (target === false) continue; - let hitResult; - let didSomething: number | boolean | null | undefined = undefined; - - if (target) { - if (moveData.boosts && !target.fainted) { - hitResult = this.battle.boost(moveData.boosts, target, pokemon, move, isSecondary, isSelf); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.heal && !target.fainted) { - if (target.hp >= target.maxhp) { - this.battle.add('-fail', target, 'heal'); - this.battle.attrLastMove('[still]'); - damage[i] = this.combineResults(damage[i], false); - didAnything = this.combineResults(didAnything, null); - continue; - } - const amount = target.baseMaxhp * moveData.heal[0] / moveData.heal[1]; - const d = target.heal((this.battle.gen < 5 ? Math.floor : Math.round)(amount)); - if (!d && d !== 0) { - this.battle.add('-fail', pokemon); - this.battle.attrLastMove('[still]'); - this.battle.debug('heal interrupted'); - damage[i] = this.combineResults(damage[i], false); - didAnything = this.combineResults(didAnything, null); - continue; - } - this.battle.add('-heal', target, target.getHealth); - didSomething = true; - } - if (moveData.status) { - hitResult = target.trySetStatus(moveData.status, pokemon, moveData.ability ? moveData.ability : move); - if (!hitResult && move.status) { - damage[i] = this.combineResults(damage[i], false); - didAnything = this.combineResults(didAnything, null); - continue; - } - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.forceStatus) { - hitResult = target.setStatus(moveData.forceStatus, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.volatileStatus) { - hitResult = target.addVolatile(moveData.volatileStatus, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.sideCondition) { - hitResult = target.side.addSideCondition(moveData.sideCondition, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.slotCondition) { - hitResult = target.side.addSlotCondition(target, moveData.slotCondition, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.weather) { - hitResult = this.battle.field.setWeather(moveData.weather, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.terrain) { - hitResult = this.battle.field.setTerrain(moveData.terrain, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.pseudoWeather) { - hitResult = this.battle.field.addPseudoWeather(moveData.pseudoWeather, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (moveData.forceSwitch && !this.battle.getAllActive().some(x => x.hasAbility('skilldrain'))) { - hitResult = !!this.battle.canSwitch(target.side); - didSomething = this.combineResults(didSomething, hitResult); - } - // Hit events - // These are like the TryHit events, except we don't need a FieldHit event. - // Scroll up for the TryHit event documentation, and just ignore the "Try" part. ;) - if (move.target === 'all' && !isSelf) { - if (moveData.onHitField) { - hitResult = this.battle.singleEvent('HitField', moveData, {}, target, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - } else if ((move.target === 'foeSide' || move.target === 'allySide') && !isSelf) { - if (moveData.onHitSide) { - hitResult = this.battle.singleEvent('HitSide', moveData, {}, target.side, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - } else { - if (moveData.onHit) { - hitResult = this.battle.singleEvent('Hit', moveData, {}, target, pokemon, move); - didSomething = this.combineResults(didSomething, hitResult); - } - if (!isSelf && !isSecondary) { - this.battle.runEvent('Hit', target, pokemon, move); - } - } - } - if (moveData.selfdestruct === 'ifHit' && damage[i] !== false) { - this.battle.faint(pokemon, pokemon, move); - } - if (moveData.selfSwitch && !this.battle.getAllActive().some(x => x.hasAbility('skilldrain'))) { - if (this.battle.canSwitch(pokemon.side)) { - didSomething = true; - } else { - didSomething = this.combineResults(didSomething, false); - } - } - // Move didn't fail because it didn't try to do anything - if (didSomething === undefined) didSomething = true; - damage[i] = this.combineResults(damage[i], didSomething === null ? false : didSomething); - didAnything = this.combineResults(didAnything, didSomething); - } - - - if (!didAnything && didAnything !== 0 && !moveData.self && !moveData.selfdestruct) { - if (!isSelf && !isSecondary) { - if (didAnything === false) { - this.battle.add('-fail', pokemon); - this.battle.attrLastMove('[still]'); - } - } - this.battle.debug('move failed because it did nothing'); - } else if (move.selfSwitch && pokemon.hp && !this.battle.getAllActive().some(x => x.hasAbility('skilldrain'))) { - pokemon.switchFlag = move.id; - } - - return damage; - }, - }, - - pokemon: { - isGrounded(negateImmunity) { - if ('gravity' in this.battle.field.pseudoWeather) return true; - if ('ingrain' in this.volatiles && this.battle.gen >= 4) return true; - if ('smackdown' in this.volatiles) return true; - const item = (this.ignoringItem() ? '' : this.item); - if (item === 'ironball') return true; - // If a Fire/Flying type uses Burn Up and Roost, it becomes ???/Flying-type, but it's still grounded. - if (!negateImmunity && this.hasType('Flying') && !('roost' in this.volatiles)) return false; - if (this.hasAbility('levitate') && !this.battle.suppressingAbility()) return null; - if ('magnetrise' in this.volatiles) return false; - if ('telekinesis' in this.volatiles) return false; - return item !== 'airballoon'; - }, - setStatus(status, source, sourceEffect, ignoreImmunities) { - if (!this.hp) return false; - status = this.battle.dex.conditions.get(status); - if (this.battle.event) { - if (!source) source = this.battle.event.source; - if (!sourceEffect) sourceEffect = this.battle.effect; - } - if (!source) source = this; - - if (this.status === status.id) { - if ((sourceEffect as Move)?.status === this.status) { - this.battle.add('-fail', this, this.status); - } else if ((sourceEffect as Move)?.status) { - this.battle.add('-fail', source); - this.battle.attrLastMove('[still]'); - } - return false; - } - - if (!ignoreImmunities && status.id && - !((source?.hasAbility('corrosion') || source?.hasAbility('hackedcorrosion') || sourceEffect?.id === 'cradilychaos') && - ['tox', 'psn'].includes(status.id))) { - // the game currently never ignores immunities - if (!this.runStatusImmunity(status.id === 'tox' ? 'psn' : status.id)) { - this.battle.debug('immune to status'); - if ((sourceEffect as Move)?.status) { - this.battle.add('-immune', this); - } - return false; - } - } - const prevStatus = this.status; - const prevStatusState = this.statusState; - if (status.id) { - const result: boolean = this.battle.runEvent('SetStatus', this, source, sourceEffect, status); - if (!result) { - this.battle.debug('set status [' + status.id + '] interrupted'); - return result; - } - } - - this.status = status.id; - this.statusState = {id: status.id, target: this}; - if (source) this.statusState.source = source; - if (status.duration) this.statusState.duration = status.duration; - if (status.durationCallback) { - this.statusState.duration = status.durationCallback.call(this.battle, this, source, sourceEffect); - } - - if (status.id && !this.battle.singleEvent('Start', status, this.statusState, this, source, sourceEffect)) { - this.battle.debug('status start [' + status.id + '] interrupted'); - // cancel the setstatus - this.status = prevStatus; - this.statusState = prevStatusState; - return false; - } - if (status.id && !this.battle.runEvent('AfterSetStatus', this, source, sourceEffect, status)) { - return false; - } - return true; - }, - }, - - // Modded to add a property to work with Struchni's move - nextTurn() { - this.turn++; - this.lastSuccessfulMoveThisTurn = null; - - const trappedBySide: boolean[] = []; - const stalenessBySide: ('internal' | 'external' | undefined)[] = []; - for (const side of this.sides) { - let sideTrapped = true; - let sideStaleness: 'internal' | 'external' | undefined; - for (const pokemon of side.active) { - if (!pokemon) continue; - pokemon.moveThisTurn = ''; - pokemon.newlySwitched = false; - pokemon.moveLastTurnResult = pokemon.moveThisTurnResult; - pokemon.moveThisTurnResult = undefined; - if (this.turn !== 1) { - pokemon.usedItemThisTurn = false; - // Used for Veto - pokemon.m.statsRaisedLastTurn = !!pokemon.statsRaisedThisTurn; - pokemon.statsRaisedThisTurn = false; - pokemon.statsLoweredThisTurn = false; - // It shouldn't be possible in a normal battle for a Pokemon to be damaged before turn 1's move selection - // However, this could be potentially relevant in certain OMs - pokemon.hurtThisTurn = null; - } - - pokemon.maybeDisabled = false; - for (const moveSlot of pokemon.moveSlots) { - moveSlot.disabled = false; - moveSlot.disabledSource = ''; - } - this.runEvent('DisableMove', pokemon); - if (!pokemon.ateBerry) pokemon.disableMove('belch'); - if (!pokemon.getItem().isBerry) pokemon.disableMove('stuffcheeks'); - - // If it was an illusion, it's not any more - if (pokemon.getLastAttackedBy() && this.gen >= 7) pokemon.knownType = true; - - for (let i = pokemon.attackedBy.length - 1; i >= 0; i--) { - const attack = pokemon.attackedBy[i]; - if (attack.source.isActive) { - attack.thisTurn = false; - } else { - pokemon.attackedBy.splice(pokemon.attackedBy.indexOf(attack), 1); - } - } - - if (this.gen >= 7) { - // In Gen 7, the real type of every Pokemon is visible to all players via the bottom screen while making choices - const seenPokemon = pokemon.illusion || pokemon; - const realTypeString = seenPokemon.getTypes(true).join('/'); - if (realTypeString !== seenPokemon.apparentType) { - this.add('-start', pokemon, 'typechange', realTypeString, '[silent]'); - seenPokemon.apparentType = realTypeString; - if (pokemon.addedType) { - // The typechange message removes the added type, so put it back - this.add('-start', pokemon, 'typeadd', pokemon.addedType, '[silent]'); - } - } - } - - pokemon.trapped = pokemon.maybeTrapped = false; - this.runEvent('TrapPokemon', pokemon); - if (!pokemon.knownType || this.dex.getImmunity('trapped', pokemon)) { - this.runEvent('MaybeTrapPokemon', pokemon); - } - // canceling switches would leak information - // if a foe might have a trapping ability - if (this.gen > 2) { - for (const source of pokemon.foes()) { - const species = (source.illusion || source).species; - if (!species.abilities) continue; - for (const abilitySlot in species.abilities) { - const abilityName = species.abilities[abilitySlot as keyof Species['abilities']]; - if (abilityName === source.ability) { - // pokemon event was already run above so we don't need - // to run it again. - continue; - } - const ruleTable = this.ruleTable; - if ((ruleTable.has('+hackmons') || !ruleTable.has('obtainableabilities')) && !this.format.team) { - // hackmons format - continue; - } else if (abilitySlot === 'H' && species.unreleasedHidden) { - // unreleased hidden ability - continue; - } - const ability = this.dex.abilities.get(abilityName); - if (ruleTable.has('-ability:' + ability.id)) continue; - if (pokemon.knownType && !this.dex.getImmunity('trapped', pokemon)) continue; - this.singleEvent('FoeMaybeTrapPokemon', ability, {}, pokemon, source); - } - } - } - - if (pokemon.fainted) continue; - - sideTrapped = sideTrapped && pokemon.trapped; - const staleness = pokemon.volatileStaleness || pokemon.staleness; - if (staleness) sideStaleness = sideStaleness === 'external' ? sideStaleness : staleness; - pokemon.activeTurns++; - } - trappedBySide.push(sideTrapped); - stalenessBySide.push(sideStaleness); - side.faintedLastTurn = side.faintedThisTurn; - side.faintedThisTurn = null; - } - - if (this.maybeTriggerEndlessBattleClause(trappedBySide, stalenessBySide)) return; - - if (this.gameType === 'triples' && !this.sides.filter(side => side.pokemonLeft > 1).length) { - // If both sides have one Pokemon left in triples and they are not adjacent, they are both moved to the center. - const actives = this.getAllActive(); - if (actives.length > 1 && !actives[0].isAdjacent(actives[1])) { - this.swapPosition(actives[0], 1, '[silent]'); - this.swapPosition(actives[1], 1, '[silent]'); - this.add('-center'); - } - } - - this.add('turn', this.turn); - - this.makeRequest('move'); - }, -}; diff --git a/data/mods/thecardgame/abilities.ts b/data/mods/thecardgame/abilities.ts index 5c9af8011c37..5dcf9c71d947 100644 --- a/data/mods/thecardgame/abilities.ts +++ b/data/mods/thecardgame/abilities.ts @@ -1,4 +1,4 @@ -export const Abilities: {[k: string]: ModdedAbilityData} = { +export const Abilities: import('../../../sim/dex-abilities').ModdedAbilityDataTable = { aerilate: { inherit: true, onModifyType(move, pokemon) { diff --git a/data/mods/thecardgame/conditions.ts b/data/mods/thecardgame/conditions.ts index 8a47e300630f..f56bbc9811f0 100644 --- a/data/mods/thecardgame/conditions.ts +++ b/data/mods/thecardgame/conditions.ts @@ -1,4 +1,4 @@ -export const Conditions: {[k: string]: ModdedConditionData} = { +export const Conditions: import('../../../sim/dex-conditions').ModdedConditionDataTable = { deltastream: { inherit: true, onEffectiveness(typeMod, target, type, move) { diff --git a/data/mods/thecardgame/items.ts b/data/mods/thecardgame/items.ts index 9d47db5e5976..b7bbed8f4b9e 100644 --- a/data/mods/thecardgame/items.ts +++ b/data/mods/thecardgame/items.ts @@ -1,4 +1,4 @@ -export const Items: {[k: string]: ModdedItemData} = { +export const Items: import('../../../sim/dex-items').ModdedItemDataTable = { buggem: { inherit: true, onSourceTryPrimaryHit(target, source, move) { diff --git a/data/mods/thecardgame/moves.ts b/data/mods/thecardgame/moves.ts index 61714cd75f58..3be0468d7699 100644 --- a/data/mods/thecardgame/moves.ts +++ b/data/mods/thecardgame/moves.ts @@ -1,4 +1,4 @@ -export const Moves: {[k: string]: ModdedMoveData} = { +export const Moves: import('../../../sim/dex-moves').ModdedMoveDataTable = { camouflage: { inherit: true, onHit(target) { @@ -21,6 +21,22 @@ export const Moves: {[k: string]: ModdedMoveData} = { return typeMod + this.dex.getEffectiveness('Normal', type); }, }, + ivycudgel: { + inherit: true, + onModifyType(move, pokemon) { + switch (pokemon.species.name) { + case 'Ogerpon-Wellspring': case 'Ogerpon-Wellspring-Tera': + move.type = 'Water'; + break; + case 'Ogerpon-Hearthflame': case 'Ogerpon-Hearthflame-Tera': + move.type = 'Fire'; + break; + case 'Ogerpon-Cornerstone': case 'Ogerpon-Cornerstone-Tera': + move.type = 'Fighting'; + break; + } + }, + }, roost: { inherit: true, condition: { diff --git a/data/mods/thecardgame/typechart.ts b/data/mods/thecardgame/typechart.ts index 61e7d0fe950b..9b1f9a7371c7 100644 --- a/data/mods/thecardgame/typechart.ts +++ b/data/mods/thecardgame/typechart.ts @@ -1,4 +1,4 @@ -export const TypeChart: {[k: string]: ModdedTypeData} = { +export const TypeChart: import('../../../sim/dex-data').ModdedTypeDataTable = { dark: { inherit: true, damageTaken: { diff --git a/data/mods/trademarked/scripts.ts b/data/mods/trademarked/scripts.ts index 2a38c693f6a8..7f5654e3feff 100644 --- a/data/mods/trademarked/scripts.ts +++ b/data/mods/trademarked/scripts.ts @@ -1,7 +1,9 @@ +import {Utils} from '../../../lib'; + export const Scripts: ModdedBattleScriptsData = { gen: 9, inherit: 'gen9', - nextTurn() { + endTurn() { this.turn++; this.lastSuccessfulMoveThisTurn = null; @@ -71,7 +73,11 @@ export const Scripts: ModdedBattleScriptsData = { } this.runEvent('DisableMove', pokemon); for (const moveSlot of pokemon.moveSlots) { - this.singleEvent('DisableMove', this.dex.getActiveMove(moveSlot.id), null, pokemon); + const activeMove = this.dex.getActiveMove(moveSlot.id); + this.singleEvent('DisableMove', activeMove, null, pokemon); + if (activeMove.flags['cantusetwice'] && pokemon.lastMove?.id === moveSlot.id) { + pokemon.disableMove(pokemon.lastMove.id); + } } // If it was an illusion, it's not any more @@ -178,7 +184,7 @@ export const Scripts: ModdedBattleScriptsData = { // Please remove me once there is client support. if (this.ruleTable.has('crazyhouserule')) { for (const side of this.sides) { - let buf = `raw|${side.name}'s team:
`; + let buf = `raw|${Utils.escapeHTML(side.name)}'s team:
`; for (const pokemon of side.pokemon) { if (!buf.endsWith('
')) buf += '/​'; if (pokemon.fainted) { @@ -200,6 +206,7 @@ export const Scripts: ModdedBattleScriptsData = { return { id: move.id, name: move.name, + flags: {}, // Does not need activation message with this fullname: 'ability: ' + move.name, onStart(this: Battle, pokemon: Pokemon) { @@ -223,7 +230,8 @@ export const Scripts: ModdedBattleScriptsData = { const species = pokemon.species; if (pokemon.fainted || this.illusion || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) || (pokemon.transformed && this.battle.gen >= 2) || (this.transformed && this.battle.gen >= 5) || - species.name === 'Eternatus-Eternamax') { + species.name === 'Eternatus-Eternamax' || (['Ogerpon', 'Terapagos'].includes(species.baseSpecies) && + (this.terastallized || pokemon.terastallized)) || this.terastallized === 'Stellar') { return false; } @@ -251,7 +259,6 @@ export const Scripts: ModdedBattleScriptsData = { if (this.modifiedStats) this.modifiedStats[statName] = pokemon.modifiedStats![statName]; // Gen 1: Copy modified stats. } this.moveSlots = []; - this.set.ivs = (this.battle.gen >= 5 ? this.set.ivs : pokemon.set.ivs); this.hpType = (this.battle.gen >= 5 ? this.hpType : pokemon.hpType); this.hpPower = (this.battle.gen >= 5 ? this.hpPower : pokemon.hpPower); this.timesAttacked = pokemon.timesAttacked; @@ -276,13 +283,14 @@ export const Scripts: ModdedBattleScriptsData = { this.boosts[boostName] = pokemon.boosts[boostName]; } if (this.battle.gen >= 6) { - const volatilesToCopy = ['focusenergy', 'gmaxchistrike', 'laserfocus']; + const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus']; + // we need to remove all the crit volatiles before adding any crit volatile + for (const volatile of volatilesToCopy) this.removeVolatile(volatile); for (const volatile of volatilesToCopy) { if (pokemon.volatiles[volatile]) { this.addVolatile(volatile); if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers; - } else { - this.removeVolatile(volatile); + if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType; } } } @@ -319,6 +327,11 @@ export const Scripts: ModdedBattleScriptsData = { } } + // Pokemon transformed into Ogerpon cannot Terastallize + // restoring their ability to tera after they untransform is handled ELSEWHERE + if (this.species.baseSpecies === 'Ogerpon' && this.canTerastallize) this.canTerastallize = false; + if (this.species.baseSpecies === 'Terapagos' && this.canTerastallize) this.canTerastallize = false; + return true; }, }, diff --git a/data/moves.ts b/data/moves.ts index dabd68d866c1..1305ab57fb6c 100644 --- a/data/moves.ts +++ b/data/moves.ts @@ -1,6 +1,6 @@ // List of flags and their descriptions can be found in sim/dex-moves.ts -export const Moves: {[moveid: string]: MoveData} = { +export const Moves: import('../sim/dex-moves').MoveDataTable = { "10000000voltthunderbolt": { num: 719, accuracy: true, @@ -26,7 +26,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Absorb", pp: 25, priority: 0, - flags: {protect: 1, mirror: 1, heal: 1}, + flags: {protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [1, 2], secondary: null, target: "normal", @@ -41,7 +41,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Accelerock", pp: 20, priority: 1, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Rock", @@ -55,7 +55,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Acid", pp: 30, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -74,7 +74,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Acid Armor", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 2, }, @@ -108,7 +108,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Acid Spray", pp: 20, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 100, boosts: { @@ -134,7 +134,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Acrobatics", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, distance: 1}, + flags: {contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1}, secondary: null, target: "any", type: "Flying", @@ -148,7 +148,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Acupressure", pp: 30, priority: 0, - flags: {}, + flags: {metronome: 1}, onHit(target) { const stats: BoostID[] = []; let stat: BoostID; @@ -180,7 +180,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aerial Ace", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, distance: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1, slicing: 1}, secondary: null, target: "any", type: "Flying", @@ -191,11 +191,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Special", - isNonstandard: "Past", name: "Aeroblast", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, distance: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, wind: 1}, critRatio: 2, secondary: null, target: "any", @@ -212,7 +211,7 @@ export const Moves: {[moveid: string]: MoveData} = { priority: 0, flags: {bypasssub: 1, allyanim: 1}, onHit(target) { - if (target.side.active.length < 2) return false; // fails in singles + if (this.activePerHalf === 1) return false; // fails in singles const action = this.queue.willMove(target); if (action) { this.queue.prioritizeAction(action); @@ -235,7 +234,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Agility", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { spe: 2, }, @@ -253,7 +252,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Air Cutter", pp: 25, priority: 0, - flags: {protect: 1, mirror: 1, slicing: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, slicing: 1, wind: 1}, critRatio: 2, secondary: null, target: "allAdjacentFoes", @@ -268,7 +267,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Air Slash", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, distance: 1, slicing: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, slicing: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -293,6 +292,26 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Fighting", contestType: "Cool", }, + alluringvoice: { + num: 914, + accuracy: 100, + basePower: 80, + category: "Special", + name: "Alluring Voice", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, + secondary: { + chance: 100, + onHit(target, source, move) { + if (target?.statsRaisedThisTurn) { + target.addVolatile('confusion', source, move); + } + }, + }, + target: "normal", + type: "Fairy", + }, allyswitch: { num: 502, accuracy: true, @@ -301,22 +320,50 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ally Switch", pp: 15, priority: 2, - flags: {}, - stallingMove: true, + flags: {metronome: 1}, onPrepareHit(pokemon) { - return !!this.queue.willAct() && this.runEvent('StallMove', pokemon); - }, - onTryHit(source) { - if (source.side.active.length === 1) return false; - if (source.side.active.length === 3 && source.position === 1) return false; + return pokemon.addVolatile('allyswitch'); }, onHit(pokemon) { - pokemon.addVolatile('stall'); + let success = true; + // Fail in formats where you don't control allies + if (this.format.gameType !== 'doubles' && this.format.gameType !== 'triples') success = false; + + // Fail in triples if the Pokemon is in the middle + if (pokemon.side.active.length === 3 && pokemon.position === 1) success = false; + const newPosition = (pokemon.position === 0 ? pokemon.side.active.length - 1 : 0); - if (!pokemon.side.active[newPosition]) return false; - if (pokemon.side.active[newPosition].fainted) return false; + if (!pokemon.side.active[newPosition]) success = false; + if (pokemon.side.active[newPosition].fainted) success = false; + if (!success) { + this.add('-fail', pokemon, 'move: Ally Switch'); + this.attrLastMove('[still]'); + return this.NOT_FAIL; + } this.swapPosition(pokemon, newPosition, '[from] move: Ally Switch'); }, + condition: { + duration: 2, + counterMax: 729, + onStart() { + this.effectState.counter = 3; + }, + onRestart(pokemon) { + // this.effectState.counter should never be undefined here. + // However, just in case, use 1 if it is undefined. + const counter = this.effectState.counter || 1; + this.debug("Ally Switch success chance: " + Math.round(100 / counter) + "%"); + const success = this.randomChance(1, counter); + if (!success) { + delete pokemon.volatiles['allyswitch']; + return false; + } + if (this.effectState.counter < (this.effect as Condition).counterMax!) { + this.effectState.counter *= 3; + } + this.effectState.duration = 2; + }, + }, secondary: null, target: "self", type: "Psychic", @@ -331,7 +378,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Amnesia", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { spd: 2, }, @@ -350,7 +397,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Anchor Shot", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, onHit(target, source, move) { @@ -369,7 +416,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ancient Power", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, self: { @@ -412,7 +459,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aqua Cutter", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, slicing: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, slicing: 1}, critRatio: 2, secondary: null, target: "normal", @@ -427,7 +474,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aqua Jet", pp: 20, priority: 1, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Water", @@ -441,7 +488,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aqua Ring", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, volatileStatus: 'aquaring', condition: { onStart(pokemon) { @@ -466,7 +513,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aqua Step", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, dance: 1}, + flags: {contact: 1, protect: 1, mirror: 1, dance: 1, metronome: 1}, secondary: { chance: 100, self: { @@ -487,7 +534,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aqua Tail", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Water", @@ -520,7 +567,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Arm Thrust", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -536,7 +583,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aromatherapy", pp: 5, priority: 0, - flags: {snatch: 1, distance: 1}, + flags: {snatch: 1, distance: 1, metronome: 1}, onHit(target, source, move) { this.add('-activate', source, 'move: Aromatherapy'); let success = false; @@ -563,7 +610,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aromatic Mist", pp: 20, priority: 0, - flags: {bypasssub: 1}, + flags: {bypasssub: 1, metronome: 1}, boosts: { spd: 1, }, @@ -582,7 +629,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Assist", pp: 20, priority: 0, - flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onHit(target) { const moves = []; for (const pokemon of target.side.pokemon) { @@ -603,6 +650,7 @@ export const Moves: {[moveid: string]: MoveData} = { } this.actions.useMove(randomMove, target); }, + callsMove: true, secondary: null, target: "self", type: "Normal", @@ -623,7 +671,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Assurance", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dark", @@ -637,7 +685,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Astonish", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -667,7 +715,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Attack Order", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -682,7 +730,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Attract", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'attract', condition: { noCopy: true, // doesn't get copied by Baton Pass @@ -739,7 +787,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aura Sphere", pp: 20, priority: 0, - flags: {bullet: 1, protect: 1, pulse: 1, mirror: 1, distance: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, bullet: 1, pulse: 1}, secondary: null, target: "any", type: "Fighting", @@ -750,7 +798,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 110, category: "Physical", - isNonstandard: "Past", name: "Aura Wheel", pp: 10, priority: 0, @@ -790,7 +837,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aurora Beam", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -809,7 +856,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Aurora Veil", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, sideCondition: 'auroraveil', onTry() { return this.field.isWeather(['hail', 'snow']); @@ -859,7 +906,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Autotomize", pp: 15, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onTryHit(pokemon) { const hasContrary = pokemon.hasAbility('contrary'); if ((!hasContrary && pokemon.boosts.spe === 6) || (hasContrary && pokemon.boosts.spe === -6)) { @@ -899,7 +946,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Avalanche", pp: 10, priority: -4, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ice", @@ -913,7 +960,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Axe Kick", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, hasCrashDamage: true, onMoveFail(target, source, move) { this.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick')); @@ -933,7 +980,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Baby-Doll Eyes", pp: 30, priority: 1, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, boosts: { atk: -1, }, @@ -1024,11 +1071,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 60, category: "Physical", - isNonstandard: "Unobtainable", name: "Barb Barrage", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, pokemon, target) { if (target.status === 'psn' || target.status === 'tox') { return this.chainModify(2); @@ -1050,7 +1096,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Barrage", pp: 20, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -1066,7 +1112,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Barrier", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 2, }, @@ -1084,8 +1130,8 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Baton Pass", pp: 40, priority: 0, - flags: {}, - onTryHit(target) { + flags: {metronome: 1}, + onHit(target) { if (!this.canSwitch(target.side) || target.volatiles['commanded']) { this.attrLastMove('[still]'); this.add('-fail', target); @@ -1109,11 +1155,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - isNonstandard: "Past", name: "Beak Blast", pp: 15, priority: -3, - flags: {bullet: 1, protect: 1, noassist: 1, failmefirst: 1, nosleeptalk: 1, failcopycat: 1, failinstruct: 1}, + flags: {protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, bullet: 1}, priorityChargeCallback(pokemon) { pokemon.addVolatile('beakblast'); }, @@ -1151,7 +1196,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Beat Up", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, allyanim: 1, metronome: 1}, onModifyMove(move, pokemon) { move.allies = pokemon.side.pokemon.filter(ally => ally === pokemon || !ally.fainted && !ally.status); move.multihit = move.allies.length; @@ -1182,7 +1227,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Behemoth Blade", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1, failcopycat: 1, failmimic: 1}, + flags: {contact: 1, protect: 1, mirror: 1, failcopycat: 1, failmimic: 1, slicing: 1}, secondary: null, target: "normal", type: "Steel", @@ -1195,7 +1240,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Belch", pp: 10, priority: 0, - flags: {protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {protect: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onDisableMove(pokemon) { if (!pokemon.ateBerry) pokemon.disableMove('belch'); }, @@ -1212,7 +1257,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Belly Drum", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onHit(target) { if (target.hp <= target.maxhp / 2 || target.boosts.atk >= 6 || target.maxhp === 1) { // Shedinja clause return false; @@ -1263,7 +1308,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bide", pp: 10, priority: 1, - flags: {contact: 1, protect: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {contact: 1, protect: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1}, volatileStatus: 'bide', ignoreImmunity: true, beforeMoveCallback(pokemon) { @@ -1336,7 +1381,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bind", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -1351,7 +1396,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bite", pp: 25, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -1368,7 +1413,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bitter Blade", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1, slicing: 1}, drain: [1, 2], secondary: null, target: "normal", @@ -1382,7 +1427,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bitter Malice", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -1416,7 +1461,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Blast Burn", pp: 5, priority: 0, - flags: {recharge: 1, protect: 1, mirror: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -1433,7 +1478,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Blaze Kick", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: { chance: 10, @@ -1453,7 +1498,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 10, priority: 0, flags: { - protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, + failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1, }, secondary: { chance: 30, @@ -1467,11 +1513,15 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 100, category: "Special", - isNonstandard: "Unobtainable", name: "Bleakwind Storm", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, + onModifyMove(move, pokemon, target) { + if (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) { + move.accuracy = true; + } + }, secondary: { chance: 30, boosts: { @@ -1489,7 +1539,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Blizzard", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, onModifyMove(move) { if (this.field.isWeather(['hail', 'snow'])) move.accuracy = true; }, @@ -1509,7 +1559,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Block", pp: 5, priority: 0, - flags: {reflectable: 1, mirror: 1}, + flags: {reflectable: 1, mirror: 1, metronome: 1}, onHit(target, source, move) { return target.addVolatile('trapped', source, move, 'trapper'); }, @@ -1519,6 +1569,19 @@ export const Moves: {[moveid: string]: MoveData} = { zMove: {boost: {def: 1}}, contestType: "Cute", }, + bloodmoon: { + num: 901, + accuracy: 100, + basePower: 140, + category: "Special", + name: "Blood Moon", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1, metronome: 1, cantusetwice: 1}, + secondary: null, + target: "normal", + type: "Normal", + }, bloomdoom: { num: 644, accuracy: true, @@ -1540,11 +1603,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 130, category: "Special", - isNonstandard: "Past", name: "Blue Flare", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, status: 'brn', @@ -1575,7 +1637,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Body Slam", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: { chance: 30, status: 'par', @@ -1601,7 +1663,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bolt Beak", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Electric", @@ -1611,11 +1673,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 130, category: "Physical", - isNonstandard: "Past", name: "Bolt Strike", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, status: 'par', @@ -1633,7 +1694,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bone Club", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, volatileStatus: 'flinch', @@ -1651,7 +1712,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bonemerang", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: 2, secondary: null, target: "normal", @@ -1667,7 +1728,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bone Rush", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -1684,7 +1745,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Boomburst", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, secondary: null, target: "allAdjacent", type: "Normal", @@ -1699,7 +1760,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 5, priority: 0, flags: { - contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, + contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, + metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, }, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { @@ -1771,7 +1833,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Brave Bird", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, distance: 1}, + flags: {contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1}, recoil: [33, 100], secondary: null, target: "any", @@ -1820,7 +1882,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Brick Break", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onTryHit(pokemon) { // will shatter screens through sub, before you hit pokemon.side.removeSideCondition('reflect'); @@ -1840,7 +1902,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Brine", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, pokemon, target) { if (target.hp * 2 <= target.maxhp) { return this.chainModify(2); @@ -1859,7 +1921,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Brutal Swing", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "allAdjacent", type: "Dark", @@ -1874,7 +1936,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bubble", pp: 30, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -1893,7 +1955,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bubble Beam", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -1912,7 +1974,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bug Bite", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onHit(target, source) { const item = target.getItem(); if (source.hp && item.isBerry && target.takeItem(source)) { @@ -1937,7 +1999,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bug Buzz", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -1956,7 +2018,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bulk Up", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { atk: 1, def: 1, @@ -1975,7 +2037,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bulldoze", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -1994,7 +2056,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bullet Punch", pp: 30, priority: 1, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: null, target: "normal", type: "Steel", @@ -2008,7 +2070,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Bullet Seed", pp: 30, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -2017,6 +2079,62 @@ export const Moves: {[moveid: string]: MoveData} = { maxMove: {basePower: 130}, contestType: "Cool", }, + burningbulwark: { + num: 908, + accuracy: true, + basePower: 0, + category: "Status", + name: "Burning Bulwark", + pp: 10, + priority: 4, + flags: {metronome: 1, noassist: 1, failcopycat: 1}, + stallingMove: true, + volatileStatus: 'burningbulwark', + onPrepareHit(pokemon) { + return !!this.queue.willAct() && this.runEvent('StallMove', pokemon); + }, + onHit(pokemon) { + pokemon.addVolatile('stall'); + }, + condition: { + duration: 1, + onStart(target) { + this.add('-singleturn', target, 'move: Protect'); + }, + onTryHitPriority: 3, + onTryHit(target, source, move) { + if (!move.flags['protect'] || move.category === 'Status') { + if (['gmaxoneblow', 'gmaxrapidflow'].includes(move.id)) return; + if (move.isZ || move.isMax) target.getMoveHitData(move).zBrokeProtect = true; + return; + } + if (move.smartTarget) { + move.smartTarget = false; + } else { + this.add('-activate', target, 'move: Protect'); + } + const lockedmove = source.getVolatile('lockedmove'); + if (lockedmove) { + // Outrage counter is reset + if (source.volatiles['lockedmove'].duration === 2) { + delete source.volatiles['lockedmove']; + } + } + if (this.checkMoveMakesContact(move, source, target)) { + source.trySetStatus('brn', target); + } + return this.NOT_FAIL; + }, + onHit(target, source, move) { + if (move.isZOrMaxPowered && this.checkMoveMakesContact(move, source, target)) { + source.trySetStatus('brn', target); + } + }, + }, + secondary: null, + target: "self", + type: "Fire", + }, burningjealousy: { num: 807, accuracy: 100, @@ -2025,7 +2143,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Burning Jealousy", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, onHit(target, source, move) { @@ -2043,10 +2161,11 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 130, category: "Special", + isNonstandard: "Unobtainable", name: "Burn Up", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, + flags: {protect: 1, mirror: 1, defrost: 1, metronome: 1}, onTryMove(pokemon, target, move) { if (pokemon.hasType('Fire')) return; this.add('-fail', pokemon, 'move: Burn Up'); @@ -2090,7 +2209,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Calm Mind", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { spa: 1, spd: 1, @@ -2110,7 +2229,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Camouflage", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onHit(target) { let newType = 'Normal'; if (this.field.isTerrain('electricterrain')) { @@ -2141,7 +2260,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Captivate", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, onTryImmunity(pokemon, source) { return (pokemon.gender === 'M' && source.gender === 'F') || (pokemon.gender === 'F' && source.gender === 'M'); }, @@ -2175,19 +2294,25 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 65, category: "Physical", - isNonstandard: "Unobtainable", name: "Ceaseless Edge", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, - self: { - onHit(source) { + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, + onAfterHit(target, source, move) { + if (!move.hasSheerForce && source.hp) { for (const side of source.side.foeSidesWithConditions()) { side.addSideCondition('spikes'); } - }, + } + }, + onAfterSubDamage(damage, target, source, move) { + if (!move.hasSheerForce && source.hp) { + for (const side of source.side.foeSidesWithConditions()) { + side.addSideCondition('spikes'); + } + } }, - secondary: {}, // allows sheer force to trigger + secondary: {}, // Sheer Force-boosted target: "normal", type: "Dark", }, @@ -2199,7 +2324,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Celebrate", pp: 40, priority: 0, - flags: {nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onTryHit(target, source) { this.add('-activate', target, 'move: Celebrate'); }, @@ -2217,7 +2342,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Charge", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, volatileStatus: 'charge', condition: { onStart(pokemon, source, effect) { @@ -2272,7 +2397,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Charge Beam", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 70, self: { @@ -2293,7 +2418,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Charm", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, boosts: { atk: -2, }, @@ -2313,10 +2438,9 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 20, priority: 0, flags: { - protect: 1, mirror: 1, sound: 1, distance: 1, bypasssub: 1, nosleeptalk: 1, noassist: 1, - failcopycat: 1, failinstruct: 1, failmimic: 1, + protect: 1, mirror: 1, sound: 1, distance: 1, bypasssub: 1, + nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1, }, - noSketch: true, secondary: { chance: 100, volatileStatus: 'confusion', @@ -2370,7 +2494,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Chip Away", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, ignoreDefensive: true, ignoreEvasion: true, secondary: null, @@ -2383,21 +2507,11 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 150, category: "Special", - isNonstandard: "Unobtainable", name: "Chloroblast", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, - mindBlownRecoil: true, - onAfterMove(pokemon, target, move) { - if (move.mindBlownRecoil && !move.multihit) { - const hpBeforeRecoil = pokemon.hp; - this.damage(Math.round(pokemon.maxhp / 2), pokemon, pokemon, this.dex.conditions.get('Chloroblast'), true); - if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { - this.runEvent('EmergencyExit', pokemon, pokemon); - } - } - }, + flags: {protect: 1, mirror: 1, metronome: 1}, + // Recoil implemented in battle-actions.ts secondary: null, target: "normal", type: "Grass", @@ -2410,7 +2524,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Circle Throw", pp: 10, priority: -6, - flags: {contact: 1, protect: 1, mirror: 1, noassist: 1, failcopycat: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, noassist: 1, failcopycat: 1}, forceSwitch: true, target: "normal", type: "Fighting", @@ -2425,7 +2539,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Clamp", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -2437,11 +2551,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 110, category: "Special", - isNonstandard: "Past", name: "Clanging Scales", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, selfBoost: { boosts: { def: -1, @@ -2457,7 +2570,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Clangorous Soul", pp: 5, priority: 0, @@ -2518,7 +2630,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Clear Smog", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onHit(target) { target.clearBoosts(); this.add('-clearboost', target); @@ -2536,7 +2648,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Close Combat", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, self: { boosts: { def: -1, @@ -2556,7 +2668,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Coaching", pp: 10, priority: 0, - flags: {bypasssub: 1, allyanim: 1}, + flags: {bypasssub: 1, allyanim: 1, metronome: 1}, secondary: null, boosts: { atk: 1, @@ -2573,7 +2685,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Coil", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { atk: 1, def: 1, @@ -2616,7 +2728,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 10, priority: 0, flags: { - protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, + failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1, }, secondary: { chance: 30, @@ -2634,7 +2747,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Comet Punch", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -2681,7 +2794,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Confide", pp: 20, priority: 0, - flags: {reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, boosts: { spa: -1, }, @@ -2699,7 +2812,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Confuse Ray", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, volatileStatus: 'confusion', secondary: null, target: "normal", @@ -2715,7 +2828,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Confusion", pp: 25, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, volatileStatus: 'confusion', @@ -2733,7 +2846,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Constrict", pp: 35, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -2765,11 +2878,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Conversion", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onHit(target) { const type = this.dex.moves.get(target.moveSlots[0].id).type; if (target.hasType(type) || !target.setType(type)) return false; @@ -2786,22 +2898,21 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Conversion 2", pp: 30, priority: 0, - flags: {bypasssub: 1}, + flags: {bypasssub: 1, metronome: 1}, onHit(target, source) { if (!target.lastMoveUsed) { return false; } const possibleTypes = []; const attackType = target.lastMoveUsed.type; - for (const type of this.dex.types.names()) { - if (source.hasType(type)) continue; - const typeCheck = this.dex.types.get(type).damageTaken[attackType]; + for (const typeName of this.dex.types.names()) { + if (source.hasType(typeName)) continue; + const typeCheck = this.dex.types.get(typeName).damageTaken[attackType]; if (typeCheck === 2 || typeCheck === 3) { - possibleTypes.push(type); + possibleTypes.push(typeName); } } if (!possibleTypes.length) { @@ -2826,7 +2937,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Copycat", pp: 20, priority: 0, - flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onHit(pokemon) { let move: Move | ActiveMove | null = this.lastMove; if (!move) return; @@ -2837,6 +2948,7 @@ export const Moves: {[moveid: string]: MoveData} = { } this.actions.useMove(move.id, pokemon); }, + callsMove: true, secondary: null, target: "self", type: "Normal", @@ -2852,14 +2964,14 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Core Enforcer", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onHit(target) { - if (target.getAbility().isPermanent) return; + if (target.getAbility().flags['cantsuppress']) return; if (target.newlySwitched || this.queue.willMove(target)) return; target.addVolatile('gastroacid'); }, onAfterSubDamage(damage, target) { - if (target.getAbility().isPermanent) return; + if (target.getAbility().flags['cantsuppress']) return; if (target.newlySwitched || this.queue.willMove(target)) return; target.addVolatile('gastroacid'); }, @@ -2890,10 +3002,11 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", + isNonstandard: "Unobtainable", name: "Corrosive Gas", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onHit(target, source) { const item = target.takeItem(source); if (item) { @@ -2911,11 +3024,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Unobtainable", name: "Cosmic Power", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 1, spd: 1, @@ -2934,7 +3046,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Cotton Guard", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 3, }, @@ -2952,7 +3064,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Cotton Spore", pp: 40, priority: 0, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1}, boosts: { spe: -2, }, @@ -3016,10 +3128,10 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Court Change", pp: 10, priority: 0, - flags: {mirror: 1}, + flags: {mirror: 1, metronome: 1}, onHitField(target, source) { const sideConditions = [ - 'mist', 'lightscreen', 'reflect', 'spikes', 'safeguard', 'tailwind', 'toxicspikes', 'stealthrock', 'waterpledge', 'firepledge', 'grasspledge', 'stickyweb', 'auroraveil', 'gmaxsteelsurge', 'gmaxcannonade', 'gmaxvinelash', 'gmaxwildfire', + 'mist', 'lightscreen', 'reflect', 'spikes', 'safeguard', 'tailwind', 'toxicspikes', 'stealthrock', 'waterpledge', 'firepledge', 'grasspledge', 'stickyweb', 'auroraveil', 'luckychant', 'gmaxsteelsurge', 'gmaxcannonade', 'gmaxvinelash', 'gmaxwildfire', 'gmaxvolcalith', ]; let success = false; if (this.gameType === "freeforall") { @@ -3119,7 +3231,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Crabhammer", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -3166,7 +3278,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Cross Chop", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -3181,7 +3293,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Cross Poison", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, secondary: { chance: 10, status: 'psn', @@ -3199,7 +3311,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Crunch", pp: 15, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondary: { chance: 20, boosts: { @@ -3218,7 +3330,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Crush Claw", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 50, boosts: { @@ -3241,11 +3353,10 @@ export const Moves: {[moveid: string]: MoveData} = { return bp; }, category: "Physical", - isNonstandard: "Past", name: "Crush Grip", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -3261,7 +3372,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Curse", pp: 10, priority: 0, - flags: {bypasssub: 1}, + flags: {bypasssub: 1, metronome: 1}, volatileStatus: 'curse', onModifyMove(move, source, target) { if (!source.hasType('Ghost')) { @@ -3303,10 +3414,11 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 50, category: "Physical", + isNonstandard: "Unobtainable", name: "Cut", pp: 30, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, secondary: null, target: "normal", type: "Normal", @@ -3320,7 +3432,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Darkest Lariat", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, ignoreEvasion: true, ignoreDefensive: true, secondary: null, @@ -3336,7 +3448,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dark Pulse", pp: 15, priority: 0, - flags: {protect: 1, pulse: 1, mirror: 1, distance: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, pulse: 1}, secondary: { chance: 20, volatileStatus: 'flinch', @@ -3350,11 +3462,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 50, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Dark Void", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1, nosketch: 1}, status: 'slp', onTry(source, target, move) { if (source.species.name === 'Darkrai' || move.hasBounced) { @@ -3378,7 +3489,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dazzling Gleam", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "allAdjacentFoes", type: "Fairy", @@ -3389,7 +3500,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Decorate", pp: 15, priority: 0, @@ -3410,7 +3520,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Defend Order", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 1, spd: 1, @@ -3429,7 +3539,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Defense Curl", pp: 40, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 1, }, @@ -3452,7 +3562,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Defog", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, onHit(target, source, move) { let success = false; if (!target.volatiles['substitute'] || move.infiltrates) success = !!this.boost({evasion: -1}); @@ -3597,7 +3707,10 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dig", pp: 10, priority: 0, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1}, + flags: { + contact: 1, charge: 1, protect: 1, mirror: 1, + nonsky: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, + }, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -3639,7 +3752,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Disable", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'disable', onTryHit(target) { if (!target.lastMove || target.lastMove.isZ || target.lastMove.isMax || target.lastMove.id === 'struggle') { @@ -3670,7 +3783,7 @@ export const Moves: {[moveid: string]: MoveData} = { } } if (effect.effectType === 'Ability') { - this.add('-start', pokemon, 'Disable', pokemon.lastMove.name, '[from] ability: Cursed Body', '[of] ' + source); + this.add('-start', pokemon, 'Disable', pokemon.lastMove.name, '[from] ability: ' + effect.name, '[of] ' + source); } else { this.add('-start', pokemon, 'Disable', pokemon.lastMove.name); } @@ -3709,7 +3822,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Disarming Voice", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, secondary: null, target: "allAdjacentFoes", type: "Fairy", @@ -3723,7 +3836,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Discharge", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'par', @@ -3737,11 +3850,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Physical", - isNonstandard: "Unobtainable", name: "Dire Claw", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 50, onHit(target, source) { @@ -3767,7 +3879,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 10, priority: 0, flags: { - contact: 1, charge: 1, protect: 1, mirror: 1, nonsky: 1, allyanim: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, + contact: 1, charge: 1, protect: 1, mirror: 1, + nonsky: 1, allyanim: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, }, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { @@ -3815,7 +3928,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dizzy Punch", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: { chance: 20, volatileStatus: 'confusion', @@ -3835,14 +3948,16 @@ export const Moves: {[moveid: string]: MoveData} = { flags: {}, onHit(target, source, move) { let success: boolean | null = false; - for (const pokemon of source.alliesAndSelf()) { - if (pokemon.ability === target.ability) continue; - const oldAbility = pokemon.setAbility(target.ability); - if (oldAbility) { - this.add('-ability', pokemon, target.getAbility().name, '[from] move: Doodle'); - success = true; - } else if (!success && oldAbility === null) { - success = null; + if (!target.getAbility().flags['failroleplay']) { + for (const pokemon of source.alliesAndSelf()) { + if (pokemon.ability === target.ability || pokemon.getAbility().flags['cantsuppress']) continue; + const oldAbility = pokemon.setAbility(target.ability); + if (oldAbility) { + this.add('-ability', pokemon, target.getAbility().name, '[from] move: Doodle'); + success = true; + } else if (!success && oldAbility === null) { + success = null; + } } } if (!success) { @@ -3862,11 +3977,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 140, category: "Special", - isNonstandard: "Past", name: "Doom Desire", pp: 5, priority: 0, - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, onTry(source, target) { if (!target.side.addSlotCondition(target, 'futuremove')) return false; Object.assign(target.side.slotConditions[target.position]['futuremove'], { @@ -3879,7 +3993,7 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 140, category: "Special", priority: 0, - flags: {futuremove: 1}, + flags: {metronome: 1, futuremove: 1}, effectType: 'Move', type: 'Steel', }, @@ -3900,7 +4014,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Double-Edge", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [33, 100], secondary: null, target: "normal", @@ -3915,7 +4029,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Double Hit", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 2, secondary: null, target: "normal", @@ -3953,7 +4067,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Double Kick", pp: 30, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 2, secondary: null, target: "normal", @@ -3996,7 +4110,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Double Slap", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -4011,7 +4125,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Double Team", pp: 15, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { evasion: 1, }, @@ -4029,7 +4143,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Draco Meteor", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, self: { boosts: { spa: -2, @@ -4067,7 +4181,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dragon Breath", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'par', @@ -4076,15 +4190,47 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Dragon", contestType: "Cool", }, - dragonclaw: { - num: 337, - accuracy: 100, - basePower: 80, - category: "Physical", + dragoncheer: { + num: 913, + accuracy: true, + basePower: 0, + category: "Status", + name: "Dragon Cheer", + pp: 15, + priority: 0, + flags: {bypasssub: 1, allyanim: 1, metronome: 1}, + volatileStatus: 'dragoncheer', + condition: { + onStart(target, source, effect) { + if (target.volatiles['focusenergy']) return false; + if (effect && (['costar', 'imposter', 'psychup', 'transform'].includes(effect.id))) { + this.add('-start', target, 'move: Dragon Cheer', '[silent]'); + } else { + this.add('-start', target, 'move: Dragon Cheer'); + } + // Store at the start because the boost doesn't change if a Pokemon + // Terastallizes into Dragon while having this volatile + // Found by DarkFE: + // https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9894139 + this.effectState.hasDragonType = target.hasType("Dragon"); + }, + onModifyCritRatio(critRatio, source) { + return critRatio + (this.effectState.hasDragonType ? 2 : 1); + }, + }, + secondary: null, + target: "adjacentAlly", + type: "Dragon", + }, + dragonclaw: { + num: 337, + accuracy: 100, + basePower: 80, + category: "Physical", name: "Dragon Claw", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dragon", @@ -4098,7 +4244,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dragon Dance", pp: 20, priority: 0, - flags: {snatch: 1, dance: 1}, + flags: {snatch: 1, dance: 1, metronome: 1}, boosts: { atk: 1, spe: 1, @@ -4117,7 +4263,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dragon Darts", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, noparentalbond: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, noparentalbond: 1}, multihit: 2, smartTarget: true, secondary: null, @@ -4148,11 +4294,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - isNonstandard: "Past", name: "Dragon Hammer", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dragon", @@ -4166,7 +4311,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dragon Pulse", pp: 10, priority: 0, - flags: {protect: 1, pulse: 1, mirror: 1, distance: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, pulse: 1}, secondary: null, target: "any", type: "Dragon", @@ -4182,7 +4327,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dragon Rage", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dragon", @@ -4196,7 +4341,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dragon Rush", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, volatileStatus: 'flinch', @@ -4213,7 +4358,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dragon Tail", pp: 10, priority: -6, - flags: {contact: 1, protect: 1, mirror: 1, noassist: 1, failcopycat: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, noassist: 1, failcopycat: 1}, forceSwitch: true, target: "normal", type: "Dragon", @@ -4227,7 +4372,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Draining Kiss", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, heal: 1}, + flags: {contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [3, 4], secondary: null, target: "normal", @@ -4242,7 +4387,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Drain Punch", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1, heal: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, heal: 1, metronome: 1}, drain: [1, 2], secondary: null, target: "normal", @@ -4257,7 +4402,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dream Eater", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, heal: 1}, + flags: {protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [1, 2], onTryImmunity(target) { return target.status === 'slp' || target.hasAbility('comatose'); @@ -4275,7 +4420,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Drill Peck", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, distance: 1}, + flags: {contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1}, secondary: null, target: "any", type: "Flying", @@ -4289,7 +4434,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Drill Run", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -4323,7 +4468,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dual Chop", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 2, secondary: null, target: "normal", @@ -4339,7 +4484,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dual Wingbeat", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 2, secondary: null, target: "normal", @@ -4354,7 +4499,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dynamax Cannon", pp: 5, priority: 0, - flags: {protect: 1, failencore: 1, nosleeptalk: 1, noparentalbond: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {protect: 1, failencore: 1, nosleeptalk: 1, failcopycat: 1, failmimic: 1, failinstruct: 1, noparentalbond: 1}, secondary: null, target: "normal", type: "Dragon", @@ -4367,7 +4512,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Dynamic Punch", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: { chance: 100, volatileStatus: 'confusion', @@ -4384,7 +4529,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Earth Power", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -4403,7 +4548,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Earthquake", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: null, target: "allAdjacent", type: "Ground", @@ -4425,7 +4570,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Echoed Voice", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, onTry() { this.field.addPseudoWeather('echoedvoice'); }, @@ -4456,7 +4601,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Eerie Impulse", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { spa: -2, }, @@ -4474,7 +4619,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Eerie Spell", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, secondary: { chance: 100, onHit(target) { @@ -4500,7 +4645,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Egg Bomb", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: null, target: "normal", type: "Normal", @@ -4514,7 +4659,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Electric Terrain", pp: 10, priority: 0, - flags: {nonsky: 1}, + flags: {nonsky: 1, metronome: 1}, terrain: 'electricterrain', condition: { duration: 5, @@ -4574,7 +4719,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Electrify", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, allyanim: 1, metronome: 1}, volatileStatus: 'electrify', onTryHit(target) { if (!this.queue.willMove(target) && target.activeTurns) return false; @@ -4613,7 +4758,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Electro Ball", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: null, target: "normal", type: "Electric", @@ -4642,6 +4787,37 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Electric", contestType: "Cool", }, + electroshot: { + num: 905, + accuracy: 100, + basePower: 130, + category: "Special", + name: "Electro Shot", + pp: 10, + priority: 0, + flags: {charge: 1, protect: 1, mirror: 1, metronome: 1}, + onTryMove(attacker, defender, move) { + if (attacker.removeVolatile(move.id)) { + return; + } + this.add('-prepare', attacker, move.name); + this.boost({spa: 1}, attacker, attacker, move); + if (['raindance', 'primordialsea'].includes(attacker.effectiveWeather())) { + this.attrLastMove('[still]'); + this.addMove('-anim', attacker, move.name, defender); + return; + } + if (!this.runEvent('ChargeMove', attacker, defender, move)) { + return; + } + attacker.addVolatile('twoturnmove', defender); + return null; + }, + secondary: null, + hasSheerForce: true, + target: "normal", + type: "Electric", + }, electroweb: { num: 527, accuracy: 95, @@ -4650,7 +4826,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Electroweb", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -4670,7 +4846,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Embargo", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, volatileStatus: 'embargo', condition: { duration: 5, @@ -4698,7 +4874,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ember", pp: 25, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'brn', @@ -4715,7 +4891,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Encore", pp: 5, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, failencore: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1, failencore: 1}, volatileStatus: 'encore', condition: { duration: 3, @@ -4741,7 +4917,7 @@ export const Moves: {[moveid: string]: MoveData} = { }, onResidualOrder: 16, onResidual(target) { - if (target.moves.includes(this.effectState.move) && + if (!target.moves.includes(this.effectState.move) || target.moveSlots[target.moves.indexOf(this.effectState.move)].pp <= 0) { // early termination if you run out of PP target.removeVolatile('encore'); @@ -4778,7 +4954,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Endeavor", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, noparentalbond: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, noparentalbond: 1}, onTryImmunity(target, pokemon) { return pokemon.hp < target.hp; }, @@ -4833,7 +5009,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Energy Ball", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 10, boosts: { @@ -4852,18 +5028,13 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Entrainment", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onTryHit(target, source) { if (target === source || target.volatiles['dynamax']) return false; - - const additionalBannedSourceAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'zenmode', - ]; if ( target.ability === source.ability || - target.getAbility().isPermanent || target.ability === 'truant' || - source.getAbility().isPermanent || additionalBannedSourceAbilities.includes(source.ability) + target.getAbility().flags['cantsuppress'] || target.ability === 'truant' || + source.getAbility().flags['noentrain'] ) { return false; } @@ -4896,7 +5067,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Eruption", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "allAdjacentFoes", type: "Fire", @@ -4907,11 +5078,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 80, category: "Special", - isNonstandard: "Unobtainable", name: "Esper Wing", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: { chance: 100, @@ -4949,7 +5119,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Expanding Force", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, source) { if (this.field.isTerrain('psychicterrain') && source.isGrounded()) { this.debug('terrain buff'); @@ -4973,7 +5143,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Explosion", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, noparentalbond: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, noparentalbond: 1}, selfdestruct: "always", secondary: null, target: "allAdjacent", @@ -4988,7 +5158,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Extrasensory", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, volatileStatus: 'flinch', @@ -5028,7 +5198,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Extreme Speed", pp: 5, priority: 2, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -5042,7 +5212,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Facade", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, pokemon) { if (pokemon.status && pokemon.status !== 'slp') { return this.chainModify(2); @@ -5061,7 +5231,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fairy Lock", pp: 10, priority: 0, - flags: {mirror: 1, bypasssub: 1}, + flags: {mirror: 1, bypasssub: 1, metronome: 1}, pseudoWeather: 'fairylock', condition: { duration: 2, @@ -5086,7 +5256,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fairy Wind", pp: 30, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, secondary: null, target: "normal", type: "Fairy", @@ -5100,7 +5270,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fake Out", pp: 10, priority: 3, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onTry(source) { if (source.activeMoveActions > 1) { this.hint("Fake Out only works on your first turn out."); @@ -5123,7 +5293,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fake Tears", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, boosts: { spd: -2, }, @@ -5154,7 +5324,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "False Swipe", pp: 40, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onDamagePriority: -20, onDamage(damage, target, source, effect) { if (damage >= target.hp) return target.hp - 1; @@ -5172,7 +5342,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Feather Dance", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, dance: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, dance: 1, allyanim: 1, metronome: 1}, boosts: { atk: -2, }, @@ -5207,7 +5377,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Feint Attack", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dark", @@ -5221,7 +5391,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fell Stinger", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onAfterMoveSecondarySelf(pokemon, target, move) { if (!target || target.fainted || target.hp <= 0) this.boost({atk: 3}, pokemon, pokemon, move); }, @@ -5230,6 +5400,26 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Bug", contestType: "Cool", }, + ficklebeam: { + num: 907, + accuracy: 100, + basePower: 80, + category: "Special", + name: "Fickle Beam", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1, metronome: 1}, + onBasePower(basePower, pokemon) { + if (this.randomChance(3, 10)) { + this.attrLastMove('[anim] Fickle Beam All Out'); + this.add('-activate', pokemon, 'move: Fickle Beam'); + return this.chainModify(2); + } + }, + secondary: null, + target: "normal", + type: "Dragon", + }, fierydance: { num: 552, accuracy: 100, @@ -5238,7 +5428,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fiery Dance", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, + flags: {protect: 1, mirror: 1, dance: 1, metronome: 1}, secondary: { chance: 50, self: { @@ -5304,11 +5494,12 @@ export const Moves: {[moveid: string]: MoveData} = { pokemon.faint(); return damage; }, + selfdestruct: "ifHit", category: "Special", name: "Final Gambit", pp: 5, priority: 0, - flags: {protect: 1, noparentalbond: 1}, + flags: {protect: 1, metronome: 1, noparentalbond: 1}, secondary: null, target: "normal", type: "Fighting", @@ -5323,7 +5514,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fire Blast", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'brn', @@ -5340,7 +5531,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fire Fang", pp: 15, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondaries: [ { chance: 10, @@ -5362,7 +5553,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fire Lash", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -5382,13 +5573,13 @@ export const Moves: {[moveid: string]: MoveData} = { this.add('-combine'); return 150; } - return 80; + return move.basePower; }, category: "Special", name: "Fire Pledge", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1, pledgecombo: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1, pledgecombo: 1}, onPrepareHit(target, source, move) { for (const action of this.queue.list as MoveAction[]) { if ( @@ -5445,7 +5636,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fire Punch", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: { chance: 10, status: 'brn', @@ -5462,7 +5653,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fire Spin", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -5477,7 +5668,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "First Impression", pp: 10, priority: 2, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onTry(source) { if (source.activeMoveActions > 1) { this.hint("First Impression only works on your first turn out."); @@ -5506,7 +5697,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fishious Rend", pp: 10, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondary: null, target: "normal", type: "Water", @@ -5519,7 +5710,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fissure", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, ohko: true, secondary: null, target: "normal", @@ -5532,7 +5723,7 @@ export const Moves: {[moveid: string]: MoveData} = { num: 175, accuracy: 100, basePower: 0, - basePowerCallback(pokemon, target) { + basePowerCallback(pokemon) { const ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1); let bp; if (ratio < 2) { @@ -5555,7 +5746,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flail", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -5572,7 +5763,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flame Burst", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onHit(target, source, move) { for (const ally of target.adjacentAllies()) { this.damage(ally.baseMaxhp / 16, ally, source, this.dex.conditions.get('Flame Burst')); @@ -5596,7 +5787,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flame Charge", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, self: { @@ -5617,7 +5808,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flame Wheel", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, defrost: 1}, + flags: {contact: 1, protect: 1, mirror: 1, defrost: 1, metronome: 1}, secondary: { chance: 10, status: 'brn', @@ -5634,7 +5825,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flamethrower", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'brn', @@ -5651,7 +5842,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flare Blitz", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, defrost: 1}, + flags: {contact: 1, protect: 1, mirror: 1, defrost: 1, metronome: 1}, recoil: [33, 100], secondary: { chance: 10, @@ -5670,7 +5861,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flash", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { accuracy: -1, }, @@ -5688,7 +5879,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flash Cannon", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -5707,7 +5898,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flatter", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, volatileStatus: 'confusion', boosts: { spa: 1, @@ -5745,7 +5936,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fling", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, allyanim: 1, noparentalbond: 1}, + flags: {protect: 1, mirror: 1, allyanim: 1, metronome: 1, noparentalbond: 1}, onPrepareHit(target, source, move) { if (source.ignoringItem()) return false; const item = source.getItem(); @@ -5797,7 +5988,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flip Turn", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, selfSwitch: true, secondary: null, target: "normal", @@ -5826,11 +6017,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Floral Healing", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, heal: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, heal: 1, allyanim: 1, metronome: 1}, onHit(target, source) { let success = false; if (this.field.isTerrain('grassyterrain')) { @@ -5862,7 +6052,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flower Shield", pp: 10, priority: 0, - flags: {distance: 1}, + flags: {distance: 1, metronome: 1}, onHitField(t, source, move) { const targets: Pokemon[] = []; for (const pokemon of this.getAllActive()) { @@ -5895,7 +6085,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Flower Trick", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, willCrit: true, secondary: null, target: "normal", @@ -5910,7 +6100,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 15, priority: 0, flags: { - contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, + contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, + metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, }, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { @@ -5949,7 +6140,7 @@ export const Moves: {[moveid: string]: MoveData} = { category: "Physical", name: "Flying Press", pp: 10, - flags: {contact: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nonsky: 1, metronome: 1}, onEffectiveness(typeMod, target, type, move) { return typeMod + this.dex.getEffectiveness('Flying', type); }, @@ -5968,7 +6159,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Focus Blast", pp: 5, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 10, boosts: { @@ -5987,10 +6178,11 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Focus Energy", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, volatileStatus: 'focusenergy', condition: { onStart(target, source, effect) { + if (target.volatiles['dragoncheer']) return false; if (effect?.id === 'zpower') { this.add('-start', target, 'move: Focus Energy', '[zeffect]'); } else if (effect && (['costar', 'imposter', 'psychup', 'transform'].includes(effect.id))) { @@ -6091,7 +6283,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Force Palm", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'par', @@ -6109,7 +6301,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Foresight", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'foresight', onTryHit(target) { if (target.volatiles['miracleeye']) return false; @@ -6139,11 +6331,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Forest's Curse", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onHit(target) { if (target.hasType('Grass')) return false; if (!target.addType('Grass')) return false; @@ -6163,7 +6354,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Foul Play", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, overrideOffensivePokemon: 'target', secondary: null, target: "normal", @@ -6178,7 +6369,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Freeze-Dry", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onEffectiveness(typeMod, target, type) { if (type === 'Water') return 1; }, @@ -6195,7 +6386,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Physical", - isNonstandard: "Past", name: "Freeze Shock", pp: 5, priority: 0, @@ -6264,7 +6454,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Frenzy Plant", pp: 5, priority: 0, - flags: {recharge: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -6281,7 +6471,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Frost Breath", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, willCrit: true, secondary: null, target: "normal", @@ -6300,7 +6490,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Frustration", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -6316,7 +6506,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fury Attack", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -6339,7 +6529,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fury Cutter", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, condition: { duration: 2, onStart() { @@ -6365,7 +6555,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Fury Swipes", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -6378,11 +6568,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - isNonstandard: "Past", name: "Fusion Bolt", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, pokemon) { if (this.lastSuccessfulMoveThisTurn === 'fusionflare') { this.debug('double power'); @@ -6399,11 +6588,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - isNonstandard: "Past", name: "Fusion Flare", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, + flags: {protect: 1, mirror: 1, defrost: 1, metronome: 1}, onBasePower(basePower, pokemon) { if (this.lastSuccessfulMoveThisTurn === 'fusionbolt') { this.debug('double power'); @@ -6423,12 +6611,11 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Future Sight", pp: 10, priority: 0, - flags: {allyanim: 1, futuremove: 1}, + flags: {allyanim: 1, metronome: 1, futuremove: 1}, ignoreImmunity: true, onTry(source, target) { if (!target.side.addSlotCondition(target, 'futuremove')) return false; Object.assign(target.side.slotConditions[target.position]['futuremove'], { - duration: 3, move: 'futuresight', source: source, moveData: { @@ -6438,7 +6625,7 @@ export const Moves: {[moveid: string]: MoveData} = { basePower: 120, category: "Special", priority: 0, - flags: {allyanim: 1, futuremove: 1}, + flags: {allyanim: 1, metronome: 1, futuremove: 1}, ignoreImmunity: false, effectType: 'Move', type: 'Psychic', @@ -6460,10 +6647,10 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gastro Acid", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, volatileStatus: 'gastroacid', onTryHit(target) { - if (target.getAbility().isPermanent) { + if (target.getAbility().flags['cantsuppress']) { return false; } if (target.hasItem('Ability Shield')) { @@ -6479,7 +6666,7 @@ export const Moves: {[moveid: string]: MoveData} = { this.singleEvent('End', pokemon.getAbility(), pokemon.abilityState, pokemon, pokemon, 'gastroacid'); }, onCopy(pokemon) { - if (pokemon.getAbility().isPermanent) pokemon.removeVolatile('gastroacid'); + if (pokemon.getAbility().flags['cantsuppress']) pokemon.removeVolatile('gastroacid'); }, }, secondary: null, @@ -6497,7 +6684,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gear Grind", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 2, secondary: null, target: "normal", @@ -6515,7 +6702,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gear Up", pp: 20, priority: 0, - flags: {snatch: 1, bypasssub: 1}, + flags: {snatch: 1, bypasssub: 1, metronome: 1}, onHitSide(side, source, move) { const targets = side.allies().filter(target => ( target.hasAbility(['plus', 'minus']) && @@ -6566,7 +6753,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Geomancy", pp: 10, priority: 0, - flags: {charge: 1, nonsky: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {charge: 1, nonsky: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1}, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -6597,7 +6784,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Giga Drain", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, heal: 1}, + flags: {protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [1, 2], secondary: null, target: "normal", @@ -6612,7 +6799,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Giga Impact", pp: 5, priority: 0, - flags: {contact: 1, recharge: 1, protect: 1, mirror: 1}, + flags: {contact: 1, recharge: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -6629,19 +6816,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gigaton Hammer", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, - onDisableMove(pokemon) { - if (pokemon.lastMove?.id === 'gigatonhammer') pokemon.disableMove('gigatonhammer'); - }, - beforeMoveCallback(pokemon) { - if (pokemon.lastMove?.id === 'gigatonhammer') pokemon.addVolatile('gigatonhammer'); - }, - onAfterMove(pokemon) { - if (pokemon.removeVolatile('gigatonhammer')) { - this.add('-hint', "Some effects can force a Pokemon to use Gigaton Hammer again in a row."); - } - }, - condition: {}, + flags: {protect: 1, mirror: 1, metronome: 1, cantusetwice: 1}, secondary: null, target: "normal", type: "Steel", @@ -6680,11 +6855,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 65, category: "Special", - isNonstandard: "Past", name: "Glaciate", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -6703,7 +6877,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Glaive Rush", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'glaiverush', }, @@ -6736,7 +6910,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Glare", pp: 30, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, status: 'par', secondary: null, target: "normal", @@ -7653,7 +7827,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Grass Knot", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, onTryHit(target, source, move) { if (target.volatiles['dynamax']) { this.add('-fail', source, 'move: Grass Knot', '[from] Dynamax'); @@ -7677,13 +7851,13 @@ export const Moves: {[moveid: string]: MoveData} = { this.add('-combine'); return 150; } - return 80; + return move.basePower; }, category: "Special", name: "Grass Pledge", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1, pledgecombo: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1, pledgecombo: 1}, onPrepareHit(target, source, move) { for (const action of this.queue.list as MoveAction[]) { if ( @@ -7739,7 +7913,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Grass Whistle", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, status: 'slp', secondary: null, target: "normal", @@ -7750,12 +7924,12 @@ export const Moves: {[moveid: string]: MoveData} = { grassyglide: { num: 803, accuracy: 100, - basePower: 60, + basePower: 55, category: "Physical", name: "Grassy Glide", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onModifyPriority(priority, source, target, move) { if (this.field.isTerrain('grassyterrain') && source.isGrounded()) { return priority + 1; @@ -7774,7 +7948,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Grassy Terrain", pp: 10, priority: 0, - flags: {nonsky: 1}, + flags: {nonsky: 1, metronome: 1}, terrain: 'grassyterrain', condition: { duration: 5, @@ -7855,7 +8029,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gravity", pp: 5, priority: 0, - flags: {nonsky: 1}, + flags: {nonsky: 1, metronome: 1}, pseudoWeather: 'gravity', condition: { duration: 5, @@ -7945,7 +8119,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Growl", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, boosts: { atk: -1, }, @@ -7963,7 +8137,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Growth", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onModifyMove(move, pokemon) { if (['sunnyday', 'desolateland'].includes(pokemon.effectiveWeather())) move.boosts = {atk: 2, spa: 2}; }, @@ -7986,7 +8160,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Grudge", pp: 5, priority: 0, - flags: {bypasssub: 1}, + flags: {bypasssub: 1, metronome: 1}, volatileStatus: 'grudge', condition: { onStart(pokemon) { @@ -8053,7 +8227,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Guard Split", pp: 10, priority: 0, - flags: {protect: 1, allyanim: 1}, + flags: {protect: 1, allyanim: 1, metronome: 1}, onHit(target, source) { const newdef = Math.floor((target.storedStats.def + source.storedStats.def) / 2); target.storedStats.def = newdef; @@ -8077,7 +8251,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Guard Swap", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1}, onHit(target, source) { const targetBoosts: SparseBoostsTable = {}; const sourceBoosts: SparseBoostsTable = {}; @@ -8107,7 +8281,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Guillotine", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, ohko: true, secondary: null, target: "normal", @@ -8124,7 +8298,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gunk Shot", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'psn', @@ -8141,7 +8315,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gust", pp: 35, priority: 0, - flags: {protect: 1, mirror: 1, distance: 1, wind: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, wind: 1}, secondary: null, target: "any", type: "Flying", @@ -8162,7 +8336,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Gyro Ball", pp: 5, priority: 0, - flags: {bullet: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: null, target: "normal", type: "Steel", @@ -8179,7 +8353,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hail", pp: 10, priority: 0, - flags: {}, + flags: {metronome: 1}, weather: 'hail', secondary: null, target: "all", @@ -8195,7 +8369,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hammer Arm", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, self: { boosts: { spe: -1, @@ -8214,7 +8388,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Happy Hour", pp: 30, priority: 0, - flags: {}, + flags: {metronome: 1}, onTryHit(target, source) { this.add('-activate', target, 'move: Happy Hour'); }, @@ -8232,7 +8406,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Harden", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 1, }, @@ -8242,6 +8416,26 @@ export const Moves: {[moveid: string]: MoveData} = { zMove: {boost: {def: 1}}, contestType: "Tough", }, + hardpress: { + num: 912, + accuracy: 100, + basePower: 0, + basePowerCallback(pokemon, target) { + const hp = target.hp; + const maxHP = target.maxhp; + const bp = Math.floor(Math.floor((100 * (100 * Math.floor(hp * 4096 / maxHP)) + 2048 - 1) / 4096) / 100) || 1; + this.debug('BP for ' + hp + '/' + maxHP + " HP: " + bp); + return bp; + }, + category: "Physical", + name: "Hard Press", + pp: 10, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + secondary: null, + target: "normal", + type: "Steel", + }, haze: { num: 114, accuracy: true, @@ -8250,7 +8444,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Haze", pp: 30, priority: 0, - flags: {bypasssub: 1}, + flags: {bypasssub: 1, metronome: 1}, onHitField() { this.add('-clearallboost'); for (const pokemon of this.getAllActive()) { @@ -8271,7 +8465,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Headbutt", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -8289,7 +8483,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Head Charge", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [1, 4], secondary: null, target: "normal", @@ -8304,7 +8498,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Headlong Rush", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, self: { boosts: { def: -1, @@ -8323,7 +8517,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Head Smash", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [1, 2], secondary: null, target: "normal", @@ -8335,11 +8529,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Unobtainable", name: "Heal Bell", pp: 5, priority: 0, - flags: {snatch: 1, sound: 1, distance: 1, bypasssub: 1}, + flags: {snatch: 1, sound: 1, distance: 1, bypasssub: 1, metronome: 1}, onHit(target, source) { this.add('-activate', source, 'move: Heal Bell'); let success = false; @@ -8364,11 +8557,14 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heal Block", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, volatileStatus: 'healblock', condition: { duration: 5, durationCallback(target, source, effect) { + if (effect?.name === "Psychic Noise") { + return 2; + } if (source?.hasAbility('persistent')) { this.add('-activate', source, 'ability: Persistent', '[move] Heal Block'); return 7; @@ -8407,7 +8603,9 @@ export const Moves: {[moveid: string]: MoveData} = { if ((effect?.id === 'zpower') || this.effectState.isZ) return damage; return false; }, - onRestart(target, source) { + onRestart(target, source, effect) { + if (effect?.name === 'Psychic Noise') return; + this.add('-fail', target, 'move: Heal Block'); // Succeeds to supress downstream messages if (!source.moveThisTurnResult) { source.moveThisTurnResult = false; @@ -8428,7 +8626,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Healing Wish", pp: 10, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, onTryHit(source) { if (!this.canSwitch(source.side)) { this.attrLastMove('[still]'); @@ -8462,7 +8660,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heal Order", pp: 10, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, heal: [1, 2], secondary: null, target: "self", @@ -8478,7 +8676,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heal Pulse", pp: 10, priority: 0, - flags: {protect: 1, pulse: 1, reflectable: 1, distance: 1, heal: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, distance: 1, heal: 1, allyanim: 1, metronome: 1, pulse: 1}, onHit(target, source) { let success = false; if (source.hasAbility('megalauncher')) { @@ -8510,7 +8708,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heart Stamp", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -8527,7 +8725,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heart Swap", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1}, onHit(target, source) { const targetBoosts: SparseBoostsTable = {}; const sourceBoosts: SparseBoostsTable = {}; @@ -8575,7 +8773,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heat Crash", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, onTryHit(target, pokemon, move) { if (target.volatiles['dynamax']) { this.add('-fail', pokemon, 'Dynamax'); @@ -8598,7 +8796,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heat Wave", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, secondary: { chance: 10, status: 'brn', @@ -8633,7 +8831,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Heavy Slam", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, onTryHit(target, pokemon, move) { if (target.volatiles['dynamax']) { this.add('-fail', pokemon, 'Dynamax'); @@ -8698,7 +8896,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hex", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ghost", @@ -8714,7 +8912,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hidden Power", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onModifyType(move, pokemon) { move.type = pokemon.hpType || 'Dark'; }, @@ -8987,7 +9185,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "High Horsepower", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ground", @@ -9001,7 +9199,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "High Jump Kick", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, gravity: 1}, + flags: {contact: 1, protect: 1, mirror: 1, gravity: 1, metronome: 1}, hasCrashDamage: true, onMoveFail(target, source, move) { this.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('High Jump Kick')); @@ -9016,10 +9214,11 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 40, category: "Physical", + isNonstandard: "Unobtainable", name: "Hold Back", pp: 40, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onDamagePriority: -20, onDamage(damage, target, source, effect) { if (damage >= target.hp) return target.hp - 1; @@ -9034,10 +9233,11 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", + isNonstandard: "Unobtainable", name: "Hold Hands", pp: 40, priority: 0, - flags: {bypasssub: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {bypasssub: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, secondary: null, target: "adjacentAlly", type: "Normal", @@ -9052,7 +9252,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hone Claws", pp: 15, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { atk: 1, accuracy: 1, @@ -9071,7 +9271,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Horn Attack", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -9085,7 +9285,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Horn Drill", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, ohko: true, secondary: null, target: "normal", @@ -9102,7 +9302,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Horn Leech", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, heal: 1}, + flags: {contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [1, 2], secondary: null, target: "normal", @@ -9117,7 +9317,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Howl", pp: 40, priority: 0, - flags: {snatch: 1, sound: 1}, + flags: {snatch: 1, sound: 1, metronome: 1}, boosts: { atk: 1, }, @@ -9135,7 +9335,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hurricane", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, distance: 1, wind: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, wind: 1}, onModifyMove(move, pokemon, target) { switch (target?.effectiveWeather()) { case 'raindance': @@ -9164,7 +9364,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hydro Cannon", pp: 5, priority: 0, - flags: {recharge: 1, protect: 1, mirror: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -9181,7 +9381,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hydro Pump", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Water", @@ -9195,7 +9395,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hydro Steam", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, + flags: {protect: 1, mirror: 1, defrost: 1, metronome: 1}, // Damage boost in Sun applied in conditions.ts thawsTarget: true, secondary: null, @@ -9226,7 +9426,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hyper Beam", pp: 5, priority: 0, - flags: {recharge: 1, protect: 1, mirror: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -9258,7 +9458,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hyper Fang", pp: 15, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondary: { chance: 10, volatileStatus: 'flinch', @@ -9275,7 +9475,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hyperspace Fury", pp: 5, priority: 0, - flags: {mirror: 1, bypasssub: 1}, + flags: {mirror: 1, bypasssub: 1, nosketch: 1}, breaksProtect: true, onTry(source) { if (source.species.name === 'Hoopa-Unbound') { @@ -9324,7 +9524,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hyper Voice", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, secondary: null, target: "allAdjacentFoes", type: "Normal", @@ -9338,7 +9538,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Hypnosis", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, status: 'slp', secondary: null, target: "normal", @@ -9374,14 +9574,11 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ice Ball", pp: 20, priority: 0, - flags: {bullet: 1, contact: 1, protect: 1, mirror: 1, noparentalbond: 1, failinstruct: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1, bullet: 1, noparentalbond: 1}, onModifyMove(move, pokemon, target) { if (pokemon.volatiles['iceball'] || pokemon.status === 'slp' || !target) return; pokemon.addVolatile('iceball'); - // @ts-ignore - // TS thinks pokemon.volatiles['iceball'] doesn't exist because of the condition on the return above - // but it does exist now because addVolatile created it - pokemon.volatiles['iceball'].targetSlot = move.sourceEffect ? pokemon.lastMoveTargetLoc : pokemon.getLocOf(target); + if (move.sourceEffect) pokemon.lastMoveTargetLoc = pokemon.getLocOf(target); }, onAfterMove(source, target, move) { const iceballData = source.volatiles["iceball"]; @@ -9425,7 +9622,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ice Beam", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'frz', @@ -9439,7 +9636,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Special", - isNonstandard: "Past", name: "Ice Burn", pp: 5, priority: 0, @@ -9471,7 +9667,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ice Fang", pp: 15, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondaries: [ { chance: 10, @@ -9493,7 +9689,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ice Hammer", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, self: { boosts: { spe: -1, @@ -9512,7 +9708,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ice Punch", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: { chance: 10, status: 'frz', @@ -9529,7 +9725,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ice Shard", pp: 30, priority: 1, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ice", @@ -9543,12 +9739,16 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ice Spinner", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onHit() { - this.field.clearTerrain(); + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + onAfterHit(target, source) { + if (source.hp) { + this.field.clearTerrain(); + } }, - onAfterSubDamage() { - this.field.clearTerrain(); + onAfterSubDamage(damage, target, source) { + if (source.hp) { + this.field.clearTerrain(); + } }, secondary: null, target: "normal", @@ -9562,7 +9762,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Icicle Crash", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -9579,7 +9779,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Icicle Spear", pp: 30, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -9596,7 +9796,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Icy Wind", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, secondary: { chance: 100, boosts: { @@ -9615,7 +9815,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Imprison", pp: 10, priority: 0, - flags: {snatch: 1, bypasssub: 1, mustpressure: 1}, + flags: {snatch: 1, bypasssub: 1, metronome: 1, mustpressure: 1}, volatileStatus: 'imprison', condition: { noCopy: true, @@ -9651,7 +9851,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Incinerate", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onHit(pokemon, source) { const item = pokemon.getItem(); if ((item.isBerry || item.isGem) && pokemon.takeItem(source)) { @@ -9672,11 +9872,10 @@ export const Moves: {[moveid: string]: MoveData} = { return move.basePower; }, category: "Special", - isNonstandard: "Unobtainable", name: "Infernal Parade", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'brn', @@ -9692,7 +9891,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Inferno", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, status: 'brn', @@ -9725,7 +9924,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Infestation", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -9740,7 +9939,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ingrain", pp: 20, priority: 0, - flags: {snatch: 1, nonsky: 1}, + flags: {snatch: 1, nonsky: 1, metronome: 1}, volatileStatus: 'ingrain', condition: { onStart(pokemon) { @@ -9809,7 +10008,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ion Deluge", pp: 25, priority: 1, - flags: {}, + flags: {metronome: 1}, pseudoWeather: 'iondeluge', condition: { duration: 1, @@ -9839,7 +10038,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Iron Defense", pp: 15, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 2, }, @@ -9857,7 +10056,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Iron Head", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -9874,7 +10073,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Iron Tail", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, boosts: { @@ -9885,6 +10084,38 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Steel", contestType: "Cool", }, + ivycudgel: { + num: 904, + accuracy: 100, + basePower: 100, + category: "Physical", + name: "Ivy Cudgel", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, metronome: 1}, + critRatio: 2, + onPrepareHit(target, source, move) { + if (move.type !== "Grass") { + this.attrLastMove('[anim] Ivy Cudgel ' + move.type); + } + }, + onModifyType(move, pokemon) { + switch (pokemon.species.name) { + case 'Ogerpon-Wellspring': case 'Ogerpon-Wellspring-Tera': + move.type = 'Water'; + break; + case 'Ogerpon-Hearthflame': case 'Ogerpon-Hearthflame-Tera': + move.type = 'Fire'; + break; + case 'Ogerpon-Cornerstone': case 'Ogerpon-Cornerstone-Tera': + move.type = 'Rock'; + break; + } + }, + secondary: null, + target: "normal", + type: "Grass", + }, jawlock: { num: 746, accuracy: 100, @@ -9893,7 +10124,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Jaw Lock", pp: 10, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, onHit(target, source, move) { source.addVolatile('trapped', target, move, 'trapper'); target.addVolatile('trapped', source, move, 'trapper'); @@ -9912,7 +10143,6 @@ export const Moves: {[moveid: string]: MoveData} = { priority: 1, flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, secondary: null, - hasSheerForce: true, target: "normal", type: "Water", contestType: "Cool", @@ -9925,7 +10155,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Judgment", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onModifyType(move, pokemon) { if (pokemon.ignoringItem()) return; const item = pokemon.getItem(); @@ -9947,7 +10177,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Jump Kick", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, gravity: 1}, + flags: {contact: 1, protect: 1, mirror: 1, gravity: 1, metronome: 1}, hasCrashDamage: true, onMoveFail(target, source, move) { this.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('Jump Kick')); @@ -9983,7 +10213,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Karate Chop", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -9999,7 +10229,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Kinesis", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { accuracy: -1, }, @@ -10076,7 +10306,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Knock Off", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, source, target, move) { const item = target.getItem(); if (!this.singleEvent('TakeItem', item, target.itemState, target, target, move, item)) return; @@ -10105,7 +10335,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Kowtow Cleave", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, secondary: null, target: "normal", type: "Dark", @@ -10119,7 +10349,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Land's Wrath", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: null, target: "allAdjacentFoes", type: "Ground", @@ -10135,7 +10365,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Laser Focus", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, volatileStatus: 'laserfocus', condition: { duration: 2, @@ -10171,7 +10401,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lash Out", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, source) { if (source.statsLoweredThisTurn) { this.debug('lashout buff'); @@ -10190,7 +10420,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Last Resort", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onTry(source) { if (source.moveSlots.length < 2) return false; // Last Resort fails unless the user knows at least 2 moves let hasLastResort = false; // User must actually have Last Resort for it to succeed @@ -10219,7 +10449,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Last Respects", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ghost", @@ -10232,7 +10462,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lava Plume", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'brn', @@ -10249,7 +10479,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Leafage", pp: 40, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Grass", @@ -10263,7 +10493,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Leaf Blade", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, critRatio: 2, secondary: null, target: "normal", @@ -10278,7 +10508,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Leaf Storm", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, self: { boosts: { spa: -2, @@ -10298,7 +10528,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Leaf Tornado", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 50, boosts: { @@ -10317,7 +10547,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Leech Life", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, heal: 1}, + flags: {contact: 1, protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [1, 2], secondary: null, target: "normal", @@ -10332,7 +10562,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Leech Seed", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, volatileStatus: 'leechseed', condition: { onStart(target) { @@ -10368,7 +10598,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Leer", pp: 30, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { def: -1, }, @@ -10402,7 +10632,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lick", pp: 30, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'par', @@ -10449,7 +10679,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Light Screen", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, sideCondition: 'lightscreen', condition: { duration: 5, @@ -10511,7 +10741,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Liquidation", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, boosts: { @@ -10530,7 +10760,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lock-On", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onTryHit(target, source) { if (source.volatiles['lockon']) return false; }, @@ -10564,7 +10794,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lovely Kiss", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, status: 'slp', secondary: null, target: "normal", @@ -10599,7 +10829,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Low Kick", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onTryHit(target, pokemon, move) { if (target.volatiles['dynamax']) { this.add('-fail', pokemon, 'Dynamax'); @@ -10621,7 +10851,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Low Sweep", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -10641,7 +10871,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lucky Chant", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, sideCondition: 'luckychant', condition: { duration: 5, @@ -10669,7 +10899,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lumina Crash", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -10684,11 +10914,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Unobtainable", name: "Lunar Blessing", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, onHit(pokemon) { const success = !!this.heal(this.modify(pokemon.maxhp, 0.25)); return pokemon.cureStatus() || success; @@ -10705,7 +10934,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lunar Dance", pp: 10, priority: 0, - flags: {snatch: 1, heal: 1, dance: 1}, + flags: {snatch: 1, dance: 1, heal: 1, metronome: 1}, onTryHit(source) { if (!this.canSwitch(source.side)) { this.attrLastMove('[still]'); @@ -10747,7 +10976,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Lunge", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -10761,13 +10990,12 @@ export const Moves: {[moveid: string]: MoveData} = { lusterpurge: { num: 295, accuracy: 100, - basePower: 70, + basePower: 95, category: "Special", - isNonstandard: "Past", name: "Luster Purge", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 50, boosts: { @@ -10786,7 +11014,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mach Punch", pp: 30, priority: 1, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: null, target: "normal", type: "Fighting", @@ -10800,7 +11028,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magical Leaf", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Grass", @@ -10816,7 +11044,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 10, priority: 0, flags: { - protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, + failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1, }, secondary: { chance: 30, @@ -10834,7 +11063,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magic Coat", pp: 15, priority: 4, - flags: {}, + flags: {metronome: 1}, volatileStatus: 'magiccoat', condition: { duration: 1, @@ -10852,7 +11081,7 @@ export const Moves: {[moveid: string]: MoveData} = { const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; newMove.pranksterBoosted = this.effectState.pranksterBoosted; - this.actions.useMove(newMove, target, source); + this.actions.useMove(newMove, target, {target: source}); return null; }, onAllyTryHitSide(target, source, move) { @@ -10862,7 +11091,7 @@ export const Moves: {[moveid: string]: MoveData} = { const newMove = this.dex.getActiveMove(move.id); newMove.hasBounced = true; newMove.pranksterBoosted = false; - this.actions.useMove(newMove, this.effectState.target, source); + this.actions.useMove(newMove, this.effectState.target, {target: source}); return null; }, }, @@ -10880,7 +11109,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magic Powder", pp: 20, priority: 0, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1, powder: 1}, onHit(target) { if (target.getTypes().join() === 'Psychic' || !target.setType('Psychic')) return false; this.add('-start', target, 'typechange', 'Psychic'); @@ -10897,7 +11126,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magic Room", pp: 10, priority: 0, - flags: {mirror: 1}, + flags: {mirror: 1, metronome: 1}, pseudoWeather: 'magicroom', condition: { duration: 5, @@ -10942,7 +11171,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magma Storm", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -10958,7 +11187,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magnet Bomb", pp: 20, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: null, target: "normal", type: "Steel", @@ -10972,7 +11201,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magnetic Flux", pp: 20, priority: 0, - flags: {snatch: 1, distance: 1, bypasssub: 1}, + flags: {snatch: 1, distance: 1, bypasssub: 1, metronome: 1}, onHitSide(side, source, move) { const targets = side.allies().filter(ally => ( ally.hasAbility(['plus', 'minus']) && @@ -11000,7 +11229,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magnet Rise", pp: 10, priority: 0, - flags: {snatch: 1, gravity: 1}, + flags: {snatch: 1, gravity: 1, metronome: 1}, volatileStatus: 'magnetrise', onTry(source, target, move) { if (target.volatiles['smackdown'] || target.volatiles['ingrain']) return false; @@ -11039,7 +11268,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Magnitude", pp: 30, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, onModifyMove(move, pokemon) { const i = this.random(100); if (i < 5) { @@ -11110,6 +11339,22 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Dark", contestType: "Cool", }, + malignantchain: { + num: 919, + accuracy: 100, + basePower: 100, + category: "Special", + name: "Malignant Chain", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1, metronome: 1}, + secondary: { + chance: 50, + status: 'tox', + }, + target: "normal", + type: "Poison", + }, matblock: { num: 561, accuracy: true, @@ -11159,6 +11404,24 @@ export const Moves: {[moveid: string]: MoveData} = { zMove: {boost: {def: 1}}, contestType: "Cool", }, + matchagotcha: { + num: 902, + accuracy: 90, + basePower: 80, + category: "Special", + name: "Matcha Gotcha", + pp: 15, + priority: 0, + flags: {protect: 1, mirror: 1, defrost: 1, heal: 1, metronome: 1}, + drain: [1, 2], + thawsTarget: true, + secondary: { + chance: 20, + status: 'brn', + }, + target: "allAdjacentFoes", + type: "Grass", + }, maxairstream: { num: 766, accuracy: true, @@ -11615,7 +11878,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mean Look", pp: 5, priority: 0, - flags: {reflectable: 1, mirror: 1}, + flags: {reflectable: 1, mirror: 1, metronome: 1}, onHit(target, source, move) { return target.addVolatile('trapped', source, move, 'trapper'); }, @@ -11634,7 +11897,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Meditate", pp: 40, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { atk: 1, }, @@ -11655,7 +11918,8 @@ export const Moves: {[moveid: string]: MoveData} = { priority: 0, flags: { protect: 1, bypasssub: 1, - failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, + failcopycat: 1, failmimic: 1, failinstruct: 1, }, onTryHit(target, pokemon) { const action = this.queue.willMove(target); @@ -11666,7 +11930,7 @@ export const Moves: {[moveid: string]: MoveData} = { if (move.category === 'Status' || move.flags['failmefirst']) return false; pokemon.addVolatile('mefirst'); - this.actions.useMove(move, pokemon, target); + this.actions.useMove(move, pokemon, {target}); return null; }, condition: { @@ -11676,6 +11940,7 @@ export const Moves: {[moveid: string]: MoveData} = { return this.chainModify(1.5); }, }, + callsMove: true, secondary: null, target: "adjacentFoe", type: "Normal", @@ -11690,7 +11955,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mega Drain", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, heal: 1}, + flags: {protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [1, 2], secondary: null, target: "normal", @@ -11706,7 +11971,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Megahorn", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Bug", @@ -11720,7 +11985,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mega Kick", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -11734,7 +11999,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mega Punch", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -11748,7 +12013,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Memento", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, boosts: { atk: -2, spa: -2, @@ -11792,7 +12057,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Metal Burst", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, failmefirst: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, failmefirst: 1}, onTry(source) { const lastDamagedBy = source.getLastDamagedBy(true); if (lastDamagedBy === undefined || !lastDamagedBy.thisTurn) return false; @@ -11816,7 +12081,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Metal Claw", pp: 35, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, self: { @@ -11837,7 +12102,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Metal Sound", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, metronome: 1}, boosts: { spd: -2, }, @@ -11856,7 +12121,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Meteor Assault", pp: 5, priority: 0, - flags: {protect: 1, recharge: 1, mirror: 1, failinstruct: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, failinstruct: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -11872,7 +12137,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Meteor Beam", pp: 10, priority: 0, - flags: {charge: 1, protect: 1, mirror: 1}, + flags: {charge: 1, protect: 1, mirror: 1, metronome: 1}, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -11897,7 +12162,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Meteor Mash", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: { chance: 20, self: { @@ -11918,16 +12183,12 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Metronome", pp: 10, priority: 0, - flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, - noMetronome: [ - "After You", "Apple Acid", "Armor Cannon", "Assist", "Astral Barrage", "Aura Wheel", "Baneful Bunker", "Beak Blast", "Behemoth Bash", "Behemoth Blade", "Belch", "Bestow", "Blazing Torque", "Body Press", "Branch Poke", "Breaking Swipe", "Celebrate", "Chatter", "Chilling Water", "Chilly Reception", "Clangorous Soul", "Collision Course", "Combat Torque", "Comeuppance", "Copycat", "Counter", "Covet", "Crafty Shield", "Decorate", "Destiny Bond", "Detect", "Diamond Storm", "Doodle", "Double Iron Bash", "Double Shock", "Dragon Ascent", "Dragon Energy", "Drum Beating", "Dynamax Cannon", "Electro Drift", "Endure", "Eternabeam", "False Surrender", "Feint", "Fiery Wrath", "Fillet Away", "Fleur Cannon", "Focus Punch", "Follow Me", "Freeze Shock", "Freezing Glare", "Glacial Lance", "Grav Apple", "Helping Hand", "Hold Hands", "Hyper Drill", "Hyperspace Fury", "Hyperspace Hole", "Ice Burn", "Instruct", "Jet Punch", "Jungle Healing", "King's Shield", "Life Dew", "Light of Ruin", "Magical Torque", "Make It Rain", "Mat Block", "Me First", "Meteor Assault", "Metronome", "Mimic", "Mind Blown", "Mirror Coat", "Mirror Move", "Moongeist Beam", "Nature Power", "Nature's Madness", "Noxious Torque", "Obstruct", "Order Up", "Origin Pulse", "Overdrive", "Photon Geyser", "Plasma Fists", "Population Bomb", "Pounce", "Power Shift", "Precipice Blades", "Protect", "Pyro Ball", "Quash", "Quick Guard", "Rage Fist", "Rage Powder", "Raging Bull", "Raging Fury", "Relic Song", "Revival Blessing", "Ruination", "Salt Cure", "Secret Sword", "Shed Tail", "Shell Trap", "Silk Trap", "Sketch", "Sleep Talk", "Snap Trap", "Snarl", "Snatch", "Snore", "Snowscape", "Spectral Thief", "Spicy Extract", "Spiky Shield", "Spirit Break", "Spotlight", "Springtide Storm", "Steam Eruption", "Steel Beam", "Strange Steam", "Struggle", "Sunsteel Strike", "Surging Strikes", "Switcheroo", "Techno Blast", "Thief", "Thousand Arrows", "Thousand Waves", "Thunder Cage", "Thunderous Kick", "Tidy Up", "Trailblaze", "Transform", "Trick", "Twin Beam", "V-create", "Wicked Blow", "Wicked Torque", "Wide Guard", - ], + flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onHit(target, source, effect) { const moves = this.dex.moves.all().filter(move => ( (![2, 4].includes(this.gen) || !source.moves.includes(move.id)) && - !move.realMove && !move.isZ && !move.isMax && (!move.isNonstandard || move.isNonstandard === 'Unobtainable') && - !effect.noMetronome!.includes(move.name) + move.flags['metronome'] )); let randomMove = ''; if (moves.length) { @@ -11938,11 +12199,25 @@ export const Moves: {[moveid: string]: MoveData} = { source.side.lastSelectedMove = this.toID(randomMove); this.actions.useMove(randomMove, target); }, + callsMove: true, secondary: null, target: "self", type: "Normal", contestType: "Cute", }, + mightycleave: { + num: 910, + accuracy: 100, + basePower: 95, + category: "Physical", + name: "Mighty Cleave", + pp: 5, + priority: 0, + flags: {contact: 1, mirror: 1, metronome: 1, slicing: 1}, + secondary: null, + target: "normal", + type: "Rock", + }, milkdrink: { num: 208, accuracy: true, @@ -11951,7 +12226,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Milk Drink", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, heal: [1, 2], secondary: null, target: "self", @@ -11969,7 +12244,7 @@ export const Moves: {[moveid: string]: MoveData} = { priority: 0, flags: { protect: 1, bypasssub: 1, allyanim: 1, - failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1, }, onHit(target, source) { const move = target.lastMove; @@ -12032,7 +12307,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mind Reader", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onTryHit(target, source) { if (source.volatiles['lockon']) return false; }, @@ -12054,14 +12329,14 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Minimize", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, volatileStatus: 'minimize', condition: { noCopy: true, onRestart: () => null, onSourceModifyDamage(damage, source, target, move) { const boostedMoves = [ - 'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault', + 'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault', 'supercellslam', ]; if (boostedMoves.includes(move.id)) { return this.chainModify(2); @@ -12069,7 +12344,7 @@ export const Moves: {[moveid: string]: MoveData} = { }, onAccuracy(accuracy, target, source, move) { const boostedMoves = [ - 'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault', + 'stomp', 'steamroller', 'bodyslam', 'flyingpress', 'dragonrush', 'heatcrash', 'heavyslam', 'maliciousmoonsault', 'supercellslam', ]; if (boostedMoves.includes(move.id)) { return true; @@ -12095,7 +12370,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Miracle Eye", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'miracleeye', onTryHit(target) { if (target.volatiles['foresight']) return false; @@ -12174,15 +12449,16 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mirror Move", pp: 20, priority: 0, - flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onTryHit(target, pokemon) { const move = target.lastMove; if (!move?.flags['mirror'] || move.isZ || move.isMax) { return false; } - this.actions.useMove(move.id, pokemon, target); + this.actions.useMove(move.id, pokemon, {target}); return null; }, + callsMove: true, secondary: null, target: "normal", type: "Flying", @@ -12198,7 +12474,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mirror Shot", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, boosts: { @@ -12217,7 +12493,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mist", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, sideCondition: 'mist', condition: { duration: 5, @@ -12255,13 +12531,12 @@ export const Moves: {[moveid: string]: MoveData} = { mistball: { num: 296, accuracy: 100, - basePower: 70, + basePower: 95, category: "Special", - isNonstandard: "Past", name: "Mist Ball", pp: 5, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 50, boosts: { @@ -12280,7 +12555,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Misty Explosion", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, selfdestruct: "always", onBasePower(basePower, source) { if (this.field.isTerrain('mistyterrain') && source.isGrounded()) { @@ -12300,7 +12575,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Misty Terrain", pp: 10, priority: 0, - flags: {nonsky: 1}, + flags: {nonsky: 1, metronome: 1}, terrain: 'mistyterrain', condition: { duration: 5, @@ -12358,7 +12633,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Moonblast", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, boosts: { @@ -12374,7 +12649,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - isNonstandard: "Past", name: "Moongeist Beam", pp: 5, priority: 0, @@ -12393,7 +12667,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Moonlight", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, onHit(pokemon) { let factor = 0.5; switch (pokemon.effectiveWeather()) { @@ -12430,7 +12704,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Morning Sun", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, onHit(pokemon) { let factor = 0.5; switch (pokemon.effectiveWeather()) { @@ -12467,33 +12741,37 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mortal Spin", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onAfterHit(target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', '[of] ' + pokemon); - } - const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + pokemon); + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + onAfterHit(target, pokemon, move) { + if (!move.hasSheerForce) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', '[of] ' + pokemon); + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + pokemon); + } + } + if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { + pokemon.removeVolatile('partiallytrapped'); } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); } }, - onAfterSubDamage(damage, target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', '[of] ' + pokemon); - } - const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + pokemon); + onAfterSubDamage(damage, target, pokemon, move) { + if (!move.hasSheerForce) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Mortal Spin', '[of] ' + pokemon); + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Mortal Spin', '[of] ' + pokemon); + } + } + if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { + pokemon.removeVolatile('partiallytrapped'); } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); } }, secondary: { @@ -12508,11 +12786,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 100, category: "Physical", - isNonstandard: "Unobtainable", name: "Mountain Gale", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -12529,7 +12806,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mud Bomb", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 30, boosts: { @@ -12548,7 +12825,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mud Shot", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -12567,7 +12844,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mud-Slap", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -12587,7 +12864,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mud Sport", pp: 15, priority: 0, - flags: {nonsky: 1}, + flags: {nonsky: 1, metronome: 1}, pseudoWeather: 'mudsport', condition: { duration: 5, @@ -12621,7 +12898,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Muddy Water", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: { chance: 30, boosts: { @@ -12641,7 +12918,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Multi-Attack", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onModifyType(move, pokemon) { if (pokemon.ignoringItem()) return; move.type = this.runEvent('Memory', pokemon, null, move, 'Normal'); @@ -12661,7 +12938,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Mystical Fire", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -12677,11 +12954,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 70, category: "Special", - isNonstandard: "Unobtainable", name: "Mystical Power", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, self: { @@ -12701,7 +12977,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Nasty Plot", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { spa: 2, }, @@ -12720,7 +12996,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Natural Gift", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onModifyType(move, pokemon) { if (pokemon.ignoringItem()) return; const item = pokemon.getItem(); @@ -12754,7 +13030,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Nature Power", pp: 20, priority: 0, - flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onTryHit(target, pokemon) { let move = 'triattack'; if (this.field.isTerrain('electricterrain')) { @@ -12766,9 +13042,10 @@ export const Moves: {[moveid: string]: MoveData} = { } else if (this.field.isTerrain('psychicterrain')) { move = 'psychic'; } - this.actions.useMove(move, pokemon, target); + this.actions.useMove(move, pokemon, {target}); return null; }, + callsMove: true, secondary: null, target: "normal", type: "Normal", @@ -12801,7 +13078,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Needle Arm", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -12834,7 +13111,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Night Daze", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 40, boosts: { @@ -12854,7 +13131,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Nightmare", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'nightmare', condition: { noCopy: true, @@ -12884,7 +13161,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Night Shade", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ghost", @@ -12898,7 +13175,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Night Slash", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, critRatio: 2, secondary: null, target: "normal", @@ -12913,7 +13190,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Noble Roar", pp: 30, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, boosts: { atk: -1, spa: -1, @@ -12932,7 +13209,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "No Retreat", pp: 5, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, volatileStatus: 'noretreat', onTry(source, target, move) { if (source.volatiles['noretreat']) return false; @@ -12969,7 +13246,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 10, priority: 0, flags: { - protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, + failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1, }, secondary: { chance: 30, @@ -12986,7 +13264,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Nuzzle", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, status: 'par', @@ -13004,7 +13282,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Oblivion Wing", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, distance: 1, heal: 1}, + flags: {protect: 1, mirror: 1, distance: 1, heal: 1, metronome: 1}, drain: [3, 4], secondary: null, target: "any", @@ -13093,7 +13371,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Octazooka", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 50, boosts: { @@ -13113,7 +13391,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Octolock", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onTryImmunity(target) { return this.dex.getImmunity('trapped', target); }, @@ -13149,7 +13427,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Odor Sleuth", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1}, volatileStatus: 'foresight', onTryHit(target) { if (target.volatiles['miracleeye']) return false; @@ -13169,7 +13447,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Ominous Wind", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, self: { @@ -13224,7 +13502,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Origin Pulse", pp: 10, priority: 0, - flags: {protect: 1, pulse: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, pulse: 1}, target: "allAdjacentFoes", type: "Water", contestType: "Beautiful", @@ -13237,7 +13515,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Outrage", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, failinstruct: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1}, self: { volatileStatus: 'lockedmove', }, @@ -13272,7 +13550,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Overheat", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, self: { boosts: { spa: -2, @@ -13291,7 +13569,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Pain Split", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, allyanim: 1, metronome: 1}, onHit(target, pokemon) { const targetHP = target.getUndynamaxedHP(); const averagehp = Math.floor((targetHP + pokemon.hp) / 2) || 1; @@ -13307,26 +13585,6 @@ export const Moves: {[moveid: string]: MoveData} = { zMove: {boost: {def: 1}}, contestType: "Clever", }, - paleowave: { - num: 0, - accuracy: 100, - basePower: 85, - category: "Special", - isNonstandard: "CAP", - name: "Paleo Wave", - pp: 15, - priority: 0, - flags: {protect: 1, mirror: 1}, - secondary: { - chance: 20, - boosts: { - atk: -1, - }, - }, - target: "normal", - type: "Rock", - contestType: "Beautiful", - }, paraboliccharge: { num: 570, accuracy: 100, @@ -13335,7 +13593,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Parabolic Charge", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, heal: 1}, + flags: {protect: 1, mirror: 1, heal: 1, metronome: 1}, drain: [1, 2], secondary: null, target: "allAdjacent", @@ -13350,7 +13608,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Parting Shot", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, onHit(target, source, move) { const success = this.boost({atk: -1, spa: -1}, target, source); if (!success && !target.hasAbility('mirrorarmor')) { @@ -13380,7 +13638,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Payback", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dark", @@ -13394,7 +13652,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Pay Day", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -13408,7 +13666,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Peck", pp: 35, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, distance: 1}, + flags: {contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1}, secondary: null, target: "any", type: "Flying", @@ -13422,7 +13680,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Perish Song", pp: 5, priority: 0, - flags: {sound: 1, distance: 1, bypasssub: 1}, + flags: {sound: 1, distance: 1, bypasssub: 1, metronome: 1}, onHitField(target, source, move) { let result = false; let message = false; @@ -13468,7 +13726,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Petal Blizzard", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, secondary: null, target: "allAdjacent", type: "Grass", @@ -13482,7 +13740,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Petal Dance", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, dance: 1, failinstruct: 1}, + flags: {contact: 1, protect: 1, mirror: 1, dance: 1, metronome: 1, failinstruct: 1}, self: { volatileStatus: 'lockedmove', }, @@ -13504,7 +13762,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Phantom Force", pp: 10, priority: 0, - flags: {contact: 1, charge: 1, mirror: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1}, + flags: {contact: 1, charge: 1, mirror: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1}, breaksProtect: true, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { @@ -13531,7 +13789,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Special", - isNonstandard: "Past", name: "Photon Geyser", pp: 5, priority: 0, @@ -13573,7 +13830,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Pin Missile", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -13606,7 +13863,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Play Nice", pp: 20, priority: 0, - flags: {reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, boosts: { atk: -1, }, @@ -13624,7 +13881,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Play Rough", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -13643,7 +13900,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Pluck", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, distance: 1}, + flags: {contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1}, onHit(target, source) { const item = target.getItem(); if (source.hp && item.isBerry && target.takeItem(source)) { @@ -13668,7 +13925,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Poison Fang", pp: 15, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondary: { chance: 50, status: 'tox', @@ -13685,7 +13942,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Poison Gas", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, status: 'psn', secondary: null, target: "allAdjacentFoes", @@ -13701,7 +13958,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Poison Jab", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'psn', @@ -13718,7 +13975,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Poison Powder", pp: 35, priority: 0, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1}, status: 'psn', secondary: null, target: "normal", @@ -13734,7 +13991,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Poison Sting", pp: 35, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'psn', @@ -13751,7 +14008,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Poison Tail", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: { chance: 10, @@ -13769,17 +14026,30 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Pollen Puff", pp: 15, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, allyanim: 1, metronome: 1, bullet: 1}, onTryHit(target, source, move) { if (source.isAlly(target)) { move.basePower = 0; move.infiltrates = true; } }, - onHit(target, source) { + onTryMove(source, target, move) { + if (source.isAlly(target) && source.volatiles['healblock']) { + this.attrLastMove('[still]'); + this.add('cant', source, 'move: Heal Block', move); + return false; + } + }, + onHit(target, source, move) { if (source.isAlly(target)) { if (!this.heal(Math.floor(target.baseMaxhp * 0.5))) { - this.add('-immune', target); + if (target.volatiles['healblock'] && target.hp !== target.maxhp) { + this.attrLastMove('[still]'); + // Wrong error message, correct one not supported yet + this.add('cant', source, 'move: Heal Block', move); + } else { + this.add('-immune', target); + } return this.NOT_FAIL; } } @@ -13797,7 +14067,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Poltergeist", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onTry(source, target) { return !!target.item; }, @@ -13850,7 +14120,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Pound", pp: 35, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -13865,7 +14135,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Powder", pp: 20, priority: 1, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1, powder: 1}, volatileStatus: 'powder', condition: { duration: 1, @@ -13896,7 +14166,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Powder Snow", pp: 25, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'frz', @@ -13913,7 +14183,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Power Gem", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Rock", @@ -13933,23 +14203,23 @@ export const Moves: {[moveid: string]: MoveData} = { condition: { onStart(pokemon) { this.add('-start', pokemon, 'Power Shift'); - [pokemon.storedStats.atk, pokemon.storedStats.spa, - pokemon.storedStats.def, pokemon.storedStats.spd] = - [pokemon.storedStats.def, pokemon.storedStats.spd, - pokemon.storedStats.atk, pokemon.storedStats.spa]; + const newatk = pokemon.storedStats.def; + const newdef = pokemon.storedStats.atk; + pokemon.storedStats.atk = newatk; + pokemon.storedStats.def = newdef; }, onCopy(pokemon) { - [pokemon.storedStats.atk, pokemon.storedStats.spa, - pokemon.storedStats.def, pokemon.storedStats.spd] = - [pokemon.storedStats.def, pokemon.storedStats.spd, - pokemon.storedStats.atk, pokemon.storedStats.spa]; + const newatk = pokemon.storedStats.def; + const newdef = pokemon.storedStats.atk; + pokemon.storedStats.atk = newatk; + pokemon.storedStats.def = newdef; }, onEnd(pokemon) { this.add('-end', pokemon, 'Power Shift'); - [pokemon.storedStats.atk, pokemon.storedStats.spa, - pokemon.storedStats.def, pokemon.storedStats.spd] = - [pokemon.storedStats.def, pokemon.storedStats.spd, - pokemon.storedStats.atk, pokemon.storedStats.spa]; + const newatk = pokemon.storedStats.def; + const newdef = pokemon.storedStats.atk; + pokemon.storedStats.atk = newatk; + pokemon.storedStats.def = newdef; }, onRestart(pokemon) { pokemon.removeVolatile('Power Shift'); @@ -13967,7 +14237,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Power Split", pp: 10, priority: 0, - flags: {protect: 1, allyanim: 1}, + flags: {protect: 1, allyanim: 1, metronome: 1}, onHit(target, source) { const newatk = Math.floor((target.storedStats.atk + source.storedStats.atk) / 2); target.storedStats.atk = newatk; @@ -13991,7 +14261,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Power Swap", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1}, onHit(target, source) { const targetBoosts: SparseBoostsTable = {}; const sourceBoosts: SparseBoostsTable = {}; @@ -14021,7 +14291,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Power Trick", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, volatileStatus: 'powertrick', condition: { onStart(pokemon) { @@ -14067,7 +14337,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Power Trip", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dark", @@ -14084,7 +14354,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Power-Up Punch", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: { chance: 100, self: { @@ -14105,7 +14375,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Power Whip", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Grass", @@ -14132,7 +14402,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Present", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onModifyMove(move, pokemon, target) { const rand = this.random(10); if (rand < 2) { @@ -14156,11 +14426,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 160, category: "Special", - isNonstandard: "Past", name: "Prismatic Laser", pp: 10, priority: 0, - flags: {recharge: 1, protect: 1, mirror: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -14227,7 +14496,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psybeam", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, volatileStatus: 'confusion', @@ -14244,7 +14513,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psyblade", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, secondary: null, onBasePower(basePower, source) { if (this.field.isTerrain('electricterrain')) { @@ -14263,19 +14532,22 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psych Up", pp: 10, priority: 0, - flags: {bypasssub: 1, allyanim: 1}, + flags: {bypasssub: 1, allyanim: 1, metronome: 1}, onHit(target, source) { let i: BoostID; for (i in target.boosts) { source.boosts[i] = target.boosts[i]; } - const volatilesToCopy = ['focusenergy', 'gmaxchistrike', 'laserfocus']; + + const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus']; + // we need to remove all crit stage volatiles first; otherwise copying e.g. dragoncheer onto a mon with focusenergy + // will crash the server (since addVolatile fails due to overlap, leaving the source mon with no hasDragonType to set) + for (const volatile of volatilesToCopy) source.removeVolatile(volatile); for (const volatile of volatilesToCopy) { if (target.volatiles[volatile]) { source.addVolatile(volatile); if (volatile === 'gmaxchistrike') source.volatiles[volatile].layers = target.volatiles[volatile].layers; - } else { - source.removeVolatile(volatile); + if (volatile === 'dragoncheer') source.volatiles[volatile].hasDragonType = target.volatiles[volatile].hasDragonType; } } this.add('-copyboost', source, target, '[from] move: Psych Up'); @@ -14294,7 +14566,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psychic", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, boosts: { @@ -14313,7 +14585,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psychic Fangs", pp: 10, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, onTryHit(pokemon) { // will shatter screens through sub, before you hit pokemon.side.removeSideCondition('reflect'); @@ -14325,6 +14597,22 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Psychic", contestType: "Clever", }, + psychicnoise: { + num: 917, + accuracy: 100, + basePower: 75, + category: "Special", + name: "Psychic Noise", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, + secondary: { + chance: 100, + volatileStatus: 'healblock', + }, + target: "normal", + type: "Psychic", + }, psychicterrain: { num: 678, accuracy: true, @@ -14333,7 +14621,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psychic Terrain", pp: 10, priority: 0, - flags: {nonsky: 1}, + flags: {nonsky: 1, metronome: 1}, terrain: 'psychicterrain', condition: { duration: 5, @@ -14390,11 +14678,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 140, category: "Special", - isNonstandard: "Past", name: "Psycho Boost", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, self: { boosts: { spa: -2, @@ -14413,7 +14700,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psycho Cut", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, slicing: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, slicing: 1}, critRatio: 2, secondary: null, target: "normal", @@ -14429,7 +14716,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psycho Shift", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onTryHit(target, source, move) { if (!source.status) return false; move.status = source.status; @@ -14450,11 +14737,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 70, category: "Physical", - isNonstandard: "Unobtainable", name: "Psyshield Bash", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, self: { @@ -14475,7 +14761,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psyshock", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Psychic", @@ -14490,7 +14776,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psystrike", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Psychic", @@ -14508,7 +14794,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Psywave", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Psychic", @@ -14545,7 +14831,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Punishment", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Dark", @@ -14562,7 +14848,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Purify", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, heal: 1}, + flags: {protect: 1, reflectable: 1, heal: 1, metronome: 1}, onHit(target, source) { if (!target.cureStatus()) { this.add('-fail', source); @@ -14594,7 +14880,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Pursuit", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, beforeTurnCallback(pokemon) { for (const side of this.sides) { if (side.hasAlly(pokemon)) continue; @@ -14626,10 +14912,17 @@ export const Moves: {[moveid: string]: MoveData} = { } // Run through each action in queue to check if the Pursuit user is supposed to Mega Evolve this turn. // If it is, then Mega Evolve before moving. - if (source.canMegaEvo || source.canUltraBurst) { + if (source.canMegaEvo || source.canUltraBurst || source.canTerastallize) { for (const [actionIndex, action] of this.queue.entries()) { - if (action.pokemon === source && action.choice === 'megaEvo') { - this.actions.runMegaEvo(source); + if (action.pokemon === source) { + if (action.choice === 'megaEvo') { + this.actions.runMegaEvo(source); + } else if (action.choice === 'terastallize') { + // Also a "forme" change that happens before moves, though only possible in NatDex + this.actions.terastallize(source); + } else { + continue; + } this.queue.list.splice(actionIndex, 1); break; } @@ -14691,7 +14984,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Quick Attack", pp: 30, priority: 1, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -14753,7 +15046,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Quiver Dance", pp: 20, priority: 0, - flags: {snatch: 1, dance: 1}, + flags: {snatch: 1, dance: 1, metronome: 1}, boosts: { spa: 1, spd: 1, @@ -14774,7 +15067,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rage", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'rage', }, @@ -14822,7 +15115,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rage Powder", pp: 20, priority: 2, - flags: {powder: 1, noassist: 1, failcopycat: 1}, + flags: {noassist: 1, failcopycat: 1, powder: 1}, volatileStatus: 'ragepowder', onTry(source) { return this.activePerHalf > 1; @@ -14887,7 +15180,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 120, category: "Physical", - isNonstandard: "Unobtainable", name: "Raging Fury", pp: 10, priority: 0, @@ -14912,7 +15204,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rain Dance", pp: 5, priority: 0, - flags: {}, + flags: {metronome: 1}, weather: 'RainDance', secondary: null, target: "all", @@ -14928,33 +15220,37 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rapid Spin", pp: 40, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - onAfterHit(target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); - } - const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + onAfterHit(target, pokemon, move) { + if (!move.hasSheerForce) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); + } + } + if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { + pokemon.removeVolatile('partiallytrapped'); } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); } }, - onAfterSubDamage(damage, target, pokemon) { - if (pokemon.hp && pokemon.removeVolatile('leechseed')) { - this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); - } - const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; - for (const condition of sideConditions) { - if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { - this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); + onAfterSubDamage(damage, target, pokemon, move) { + if (!move.hasSheerForce) { + if (pokemon.hp && pokemon.removeVolatile('leechseed')) { + this.add('-end', pokemon, 'Leech Seed', '[from] move: Rapid Spin', '[of] ' + pokemon); + } + const sideConditions = ['spikes', 'toxicspikes', 'stealthrock', 'stickyweb', 'gmaxsteelsurge']; + for (const condition of sideConditions) { + if (pokemon.hp && pokemon.side.removeSideCondition(condition)) { + this.add('-sideend', pokemon.side, this.dex.conditions.get(condition).name, '[from] move: Rapid Spin', '[of] ' + pokemon); + } + } + if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { + pokemon.removeVolatile('partiallytrapped'); } - } - if (pokemon.hp && pokemon.volatiles['partiallytrapped']) { - pokemon.removeVolatile('partiallytrapped'); } }, secondary: { @@ -14977,7 +15273,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Razor Leaf", pp: 25, priority: 0, - flags: {protect: 1, mirror: 1, slicing: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, slicing: 1}, critRatio: 2, secondary: null, target: "allAdjacentFoes", @@ -14992,7 +15288,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Razor Shell", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, secondary: { chance: 50, boosts: { @@ -15012,7 +15308,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Razor Wind", pp: 10, priority: 0, - flags: {charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1}, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -15038,7 +15334,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Recover", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, heal: [1, 2], secondary: null, target: "self", @@ -15054,7 +15350,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Recycle", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onHit(pokemon) { if (pokemon.item || !pokemon.lastItem) return false; const item = pokemon.lastItem; @@ -15076,7 +15372,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Reflect", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, sideCondition: 'reflect', condition: { duration: 5, @@ -15118,7 +15414,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Reflect Type", pp: 15, priority: 0, - flags: {protect: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, bypasssub: 1, allyanim: 1, metronome: 1}, onHit(target, source) { if (source.species && (source.species.num === 493 || source.species.num === 773)) return false; if (source.terastallized) return false; @@ -15152,7 +15448,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Refresh", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onHit(pokemon) { if (['', 'slp', 'frz'].includes(pokemon.status)) return false; pokemon.cureStatus(); @@ -15184,7 +15480,7 @@ export const Moves: {[moveid: string]: MoveData} = { onAfterMoveSecondarySelf(pokemon, target, move) { if (move.willChangeForme) { const meloettaForme = pokemon.species.id === 'meloettapirouette' ? '' : '-Pirouette'; - pokemon.formeChange('Meloetta' + meloettaForme, this.effect, false, '[msg]'); + pokemon.formeChange('Meloetta' + meloettaForme, this.effect, false, '0', '[msg]'); } }, target: "allAdjacentFoes", @@ -15199,7 +15495,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rest", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, onTry(source) { if (source.status === 'slp' || source.hasAbility('comatose')) return false; @@ -15207,8 +15503,13 @@ export const Moves: {[moveid: string]: MoveData} = { this.add('-fail', source, 'heal'); return null; } - if (source.hasAbility(['insomnia', 'vitalspirit'])) { - this.add('-fail', source, '[from] ability: ' + source.getAbility().name, '[of] ' + source); + // insomnia and vital spirit checks are separate so that the message is accurate in multi-ability mods + if (source.hasAbility('insomnia')) { + this.add('-fail', source, '[from] ability: Insomnia', '[of] ' + source); + return null; + } + if (source.hasAbility('vitalspirit')) { + this.add('-fail', source, '[from] ability: Vital Spirit', '[of] ' + source); return null; } }, @@ -15233,7 +15534,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Retaliate", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, pokemon) { if (pokemon.side.faintedLastTurn) { this.debug('Boosted for a faint last turn'); @@ -15257,7 +15558,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Return", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -15273,10 +15574,12 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Revelation Dance", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, + flags: {protect: 1, mirror: 1, dance: 1, metronome: 1}, onModifyType(move, pokemon) { - let type = pokemon.getTypes()[0]; - if (type === "Bird") type = "???"; + const types = pokemon.getTypes(); + let type = types[0]; + if (type === 'Bird') type = '???'; + if (type === '???' && types[1]) type = types[1]; move.type = type; }, secondary: null, @@ -15303,7 +15606,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Revenge", pp: 10, priority: -4, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Fighting", @@ -15313,7 +15616,7 @@ export const Moves: {[moveid: string]: MoveData} = { num: 179, accuracy: 100, basePower: 0, - basePowerCallback(pokemon, target) { + basePowerCallback(pokemon) { const ratio = Math.max(Math.floor(pokemon.hp * 48 / pokemon.maxhp), 1); let bp; if (ratio < 2) { @@ -15336,7 +15639,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Reversal", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Fighting", @@ -15352,7 +15655,7 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 1, noPPBoosts: true, priority: 0, - flags: {}, + flags: {heal: 1, nosketch: 1}, onTryHit(source) { if (!source.side.pokemon.filter(ally => ally.fainted).length) { return false; @@ -15386,7 +15689,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rising Voltage", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Electric", @@ -15400,7 +15703,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Roar", pp: 20, priority: -6, - flags: {reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, noassist: 1, failcopycat: 1}, + flags: {reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, metronome: 1, noassist: 1, failcopycat: 1}, forceSwitch: true, secondary: null, target: "normal", @@ -15416,7 +15719,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Roar of Time", pp: 5, priority: 0, - flags: {recharge: 1, protect: 1, mirror: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, metronome: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -15433,7 +15736,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rock Blast", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -15451,7 +15754,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rock Climb", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, volatileStatus: 'confusion', @@ -15468,7 +15771,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rock Polish", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { spe: 2, }, @@ -15486,7 +15789,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rock Slide", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -15503,7 +15806,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rock Smash", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 50, boosts: { @@ -15522,7 +15825,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rock Throw", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Rock", @@ -15536,7 +15839,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rock Tomb", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -15552,11 +15855,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 150, category: "Physical", - isNonstandard: "Past", name: "Rock Wrecker", pp: 5, priority: 0, - flags: {bullet: 1, recharge: 1, protect: 1, mirror: 1}, + flags: {recharge: 1, protect: 1, mirror: 1, metronome: 1, bullet: 1}, self: { volatileStatus: 'mustrecharge', }, @@ -15573,19 +15875,10 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Role Play", pp: 10, priority: 0, - flags: {bypasssub: 1, allyanim: 1}, + flags: {bypasssub: 1, allyanim: 1, metronome: 1}, onTryHit(target, source) { if (target.ability === source.ability) return false; - - const additionalBannedTargetAbilities = [ - // Zen Mode included here for compatability with Gen 5-6 - 'flowergift', 'forecast', 'hungerswitch', 'illusion', 'imposter', 'neutralizinggas', 'powerofalchemy', 'receiver', 'trace', 'wonderguard', 'zenmode', - ]; - - if (target.getAbility().isPermanent || additionalBannedTargetAbilities.includes(target.ability) || - source.getAbility().isPermanent) { - return false; - } + if (target.getAbility().flags['failroleplay'] || source.getAbility().flags['cantsuppress']) return false; }, onHit(target, source) { const oldAbility = source.setAbility(target.ability); @@ -15610,7 +15903,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rolling Kick", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -15646,14 +15939,11 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rollout", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, noparentalbond: 1, failinstruct: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1, noparentalbond: 1}, onModifyMove(move, pokemon, target) { if (pokemon.volatiles['rollout'] || pokemon.status === 'slp' || !target) return; pokemon.addVolatile('rollout'); - // @ts-ignore - // TS thinks pokemon.volatiles['rollout'] doesn't exist because of the condition on the return above - // but it does exist now because addVolatile created it - pokemon.volatiles['rollout'].targetSlot = move.sourceEffect ? pokemon.lastMoveTargetLoc : pokemon.getLocOf(target); + if (move.sourceEffect) pokemon.lastMoveTargetLoc = pokemon.getLocOf(target); }, onAfterMove(source, target, move) { const rolloutData = source.volatiles["rollout"]; @@ -15696,7 +15986,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Roost", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, heal: [1, 2], self: { volatileStatus: 'roost', @@ -15705,11 +15995,13 @@ export const Moves: {[moveid: string]: MoveData} = { duration: 1, onResidualOrder: 25, onStart(target) { - if (!target.terastallized) { - this.add('-singleturn', target, 'move: Roost'); - } else if (target.terastallized === "Flying") { - this.add('-hint', "If a Flying Terastallized Pokemon uses Roost, it remains Flying-type."); + if (target.terastallized) { + if (target.hasType('Flying')) { + this.add('-hint', "If a Terastallized Pokemon uses Roost, it remains Flying-type."); + } + return false; } + this.add('-singleturn', target, 'move: Roost'); }, onTypePriority: -1, onType(types, pokemon) { @@ -15732,7 +16024,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Rototiller", pp: 10, priority: 0, - flags: {distance: 1, nonsky: 1}, + flags: {distance: 1, nonsky: 1, metronome: 1}, onHitField(target, source) { const targets: Pokemon[] = []; let anyAirborne = false; @@ -15773,7 +16065,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Round", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, onTry(source, target, move) { for (const action of this.queue.list as MoveAction[]) { if (!action.pokemon || !action.move || action.maxMove || action.zmove) continue; @@ -15810,11 +16102,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 100, category: "Physical", - isNonstandard: "Past", name: "Sacred Fire", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, + flags: {protect: 1, mirror: 1, defrost: 1, metronome: 1}, secondary: { chance: 50, status: 'brn', @@ -15831,7 +16122,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sacred Sword", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, ignoreEvasion: true, ignoreDefensive: true, secondary: null, @@ -15847,7 +16138,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Safeguard", pp: 25, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, sideCondition: 'safeguard', condition: { duration: 5, @@ -15934,7 +16225,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sand Attack", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { accuracy: -1, }, @@ -15949,11 +16240,15 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 100, category: "Special", - isNonstandard: "Unobtainable", name: "Sandsear Storm", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, + onModifyMove(move, pokemon, target) { + if (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) { + move.accuracy = true; + } + }, secondary: { chance: 20, status: 'brn', @@ -15969,7 +16264,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sandstorm", pp: 10, priority: 0, - flags: {wind: 1}, + flags: {metronome: 1, wind: 1}, weather: 'Sandstorm', secondary: null, target: "all", @@ -15985,7 +16280,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sand Tomb", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -16035,7 +16330,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Scald", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, + flags: {protect: 1, mirror: 1, defrost: 1, metronome: 1}, thawsTarget: true, secondary: { chance: 30, @@ -16053,7 +16348,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Scale Shot", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], selfBoost: { boosts: { @@ -16075,7 +16370,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Scary Face", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, boosts: { spe: -2, }, @@ -16093,7 +16388,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Scorching Sands", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, defrost: 1}, + flags: {protect: 1, mirror: 1, defrost: 1, metronome: 1}, thawsTarget: true, secondary: { chance: 30, @@ -16110,7 +16405,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Scratch", pp: 35, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -16124,7 +16419,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Screech", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, allyanim: 1, metronome: 1}, boosts: { def: -2, }, @@ -16143,7 +16438,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Searing Shot", pp: 5, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 30, status: 'brn', @@ -16178,7 +16473,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Secret Power", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onModifyMove(move, pokemon) { if (this.field.isTerrain('')) return; move.secondaries = []; @@ -16221,12 +16516,11 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 85, category: "Special", - isNonstandard: "Past", overrideDefensiveStat: 'def', name: "Secret Sword", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, slicing: 1}, secondary: null, target: "normal", type: "Fighting", @@ -16240,7 +16534,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Seed Bomb", pp: 15, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: null, target: "normal", type: "Grass", @@ -16251,11 +16545,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 85, basePower: 120, category: "Special", - isNonstandard: "Past", name: "Seed Flare", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 40, boosts: { @@ -16275,7 +16568,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Seismic Toss", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: null, target: "normal", type: "Fighting", @@ -16290,7 +16583,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Self-Destruct", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1, noparentalbond: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, noparentalbond: 1}, selfdestruct: "always", secondary: null, target: "allAdjacent", @@ -16305,7 +16598,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shadow Ball", pp: 15, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 20, boosts: { @@ -16325,7 +16618,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shadow Bone", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, boosts: { @@ -16344,7 +16637,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shadow Claw", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -16359,7 +16652,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shadow Force", pp: 5, priority: 0, - flags: {contact: 1, charge: 1, mirror: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1}, + flags: {contact: 1, charge: 1, mirror: 1, metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1}, breaksProtect: true, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { @@ -16389,7 +16682,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shadow Punch", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: null, target: "normal", type: "Ghost", @@ -16403,32 +16696,12 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shadow Sneak", pp: 30, priority: 1, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ghost", contestType: "Clever", }, - shadowstrike: { - num: 0, - accuracy: 95, - basePower: 80, - category: "Physical", - isNonstandard: "CAP", - name: "Shadow Strike", - pp: 10, - priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, - secondary: { - chance: 50, - boosts: { - def: -1, - }, - }, - target: "normal", - type: "Ghost", - contestType: "Clever", - }, sharpen: { num: 159, accuracy: true, @@ -16438,7 +16711,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sharpen", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { atk: 1, }, @@ -16475,7 +16748,7 @@ export const Moves: {[moveid: string]: MoveData} = { flags: {}, volatileStatus: 'substitute', onTryHit(source) { - if (!this.canSwitch(source.side)) { + if (!this.canSwitch(source.side) || source.volatiles['commanded']) { this.add('-fail', source); return this.NOT_FAIL; } @@ -16510,7 +16783,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sheer Cold", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, ohko: 'Ice', target: "normal", @@ -16527,7 +16800,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shell Side Arm", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onPrepareHit(target, source, move) { if (!source.isAlly(target)) { this.attrLastMove('[anim] Shell Side Arm ' + move.category); @@ -16568,7 +16841,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shell Smash", pp: 15, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: -1, spd: -1, @@ -16627,11 +16900,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Unobtainable", name: "Shelter", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 2, }, @@ -16647,7 +16919,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shift Gear", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { spe: 2, atk: 1, @@ -16666,7 +16938,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shock Wave", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Electric", @@ -16680,7 +16952,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Shore Up", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, onHit(pokemon) { let factor = 0.5; if (this.field.isWeather('sandstorm')) { @@ -16708,7 +16980,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Signal Beam", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, volatileStatus: 'confusion', @@ -16780,7 +17052,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Silver Wind", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, self: { @@ -16802,13 +17074,12 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - isNonstandard: "Unobtainable", name: "Simple Beam", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onTryHit(target) { - if (target.getAbility().isPermanent || target.ability === 'simple' || target.ability === 'truant') { + if (target.getAbility().flags['cantsuppress'] || target.ability === 'simple' || target.ability === 'truant') { return false; } }, @@ -16834,7 +17105,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sing", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, status: 'slp', secondary: null, target: "normal", @@ -16881,19 +17152,18 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Sketch", pp: 1, noPPBoosts: true, priority: 0, flags: { - bypasssub: 1, allyanim: 1, failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + bypasssub: 1, allyanim: 1, failencore: 1, nosleeptalk: 1, noassist: 1, + failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1, }, onHit(target, source) { - const disallowedMoves = ['chatter', 'sketch', 'struggle']; const move = target.lastMove; if (source.transformed || !move || source.moves.includes(move.id)) return false; - if (disallowedMoves.includes(move.id) || move.isZ || move.isMax) return false; + if (move.flags['nosketch'] || move.isZ || move.isMax) return false; const sketchIndex = source.moves.indexOf('sketch'); if (sketchIndex < 0) return false; const sketchedMove = { @@ -16909,7 +17179,6 @@ export const Moves: {[moveid: string]: MoveData} = { source.baseMoveSlots[sketchIndex] = sketchedMove; this.add('-activate', source, 'move: Sketch', move.name); }, - noSketch: true, secondary: null, target: "normal", type: "Normal", @@ -16924,17 +17193,11 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Skill Swap", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1}, onTryHit(target, source) { - const additionalBannedAbilities = ['hungerswitch', 'illusion', 'neutralizinggas', 'wonderguard']; const targetAbility = target.getAbility(); const sourceAbility = source.getAbility(); - // TODO: research in what order these should be checked - if ( - target.volatiles['dynamax'] || - targetAbility.isPermanent || sourceAbility.isPermanent || - additionalBannedAbilities.includes(target.ability) || additionalBannedAbilities.includes(source.ability) - ) { + if (sourceAbility.flags['failskillswap'] || targetAbility.flags['failskillswap'] || target.volatiles['dynamax']) { return false; } const sourceCanBeSet = this.runEvent('SetAbility', source, source, this.effect, targetAbility); @@ -16956,6 +17219,7 @@ export const Moves: {[moveid: string]: MoveData} = { target.ability = sourceAbility.id; source.abilityState = {id: this.toID(source.ability), target: source}; target.abilityState = {id: this.toID(target.ability), target: target}; + source.volatileStaleness = undefined; if (!target.isAlly(source)) target.volatileStaleness = 'external'; this.singleEvent('Start', targetAbility, source.abilityState, source); this.singleEvent('Start', sourceAbility, target.abilityState, target); @@ -16974,7 +17238,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Skitter Smack", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -16993,7 +17257,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Skull Bash", pp: 10, priority: 0, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {contact: 1, charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1}, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -17019,7 +17283,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sky Attack", pp: 5, priority: 0, - flags: {charge: 1, protect: 1, mirror: 1, distance: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {charge: 1, protect: 1, mirror: 1, distance: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1}, critRatio: 2, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { @@ -17050,7 +17314,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 10, priority: 0, flags: { - contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, + contact: 1, charge: 1, protect: 1, mirror: 1, gravity: 1, distance: 1, + metronome: 1, nosleeptalk: 1, noassist: 1, failinstruct: 1, }, onModifyMove(move, source) { if (!source.volatiles['skydrop']) { @@ -17163,7 +17428,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sky Uppercut", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: null, target: "normal", type: "Fighting", @@ -17177,7 +17442,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Slack Off", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, heal: [1, 2], secondary: null, target: "self", @@ -17193,7 +17458,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Slam", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -17207,7 +17472,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Slash", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, critRatio: 2, secondary: null, target: "normal", @@ -17222,7 +17487,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sleep Powder", pp: 15, priority: 0, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1}, status: 'slp', secondary: null, target: "normal", @@ -17238,7 +17503,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sleep Talk", pp: 10, priority: 0, - flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {failencore: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, sleepUsable: true, onTry(source) { return source.status === 'slp' || source.hasAbility('comatose'); @@ -17261,6 +17526,7 @@ export const Moves: {[moveid: string]: MoveData} = { } this.actions.useMove(randomMove, pokemon); }, + callsMove: true, secondary: null, target: "self", type: "Normal", @@ -17275,7 +17541,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sludge", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'psn', @@ -17292,7 +17558,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sludge Bomb", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 30, status: 'psn', @@ -17309,7 +17575,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sludge Wave", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'psn', @@ -17326,7 +17592,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Smack Down", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, volatileStatus: 'smackdown', condition: { noCopy: true, @@ -17373,7 +17639,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Smart Strike", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Steel", @@ -17395,7 +17661,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Smelling Salts", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onHit(target) { if (target.status === 'par') target.cureStatus(); }, @@ -17412,7 +17678,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Smog", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 40, status: 'psn', @@ -17429,7 +17695,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Smokescreen", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { accuracy: -1, }, @@ -17516,7 +17782,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Snipe Shot", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, critRatio: 2, tracksTarget: true, secondary: null, @@ -17566,7 +17832,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Soak", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onHit(target) { if (target.getTypes().join() === 'Water' || !target.setType('Water')) { // Soak should animate even when it fails. @@ -17590,7 +17856,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Soft-Boiled", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, heal: [1, 2], secondary: null, target: "self", @@ -17606,7 +17872,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Solar Beam", pp: 10, priority: 0, - flags: {charge: 1, protect: 1, mirror: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1}, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -17643,7 +17909,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Solar Blade", pp: 10, priority: 0, - flags: {contact: 1, charge: 1, protect: 1, mirror: 1, slicing: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {contact: 1, charge: 1, protect: 1, mirror: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1, slicing: 1}, onTryMove(attacker, defender, move) { if (attacker.removeVolatile(move.id)) { return; @@ -17682,7 +17948,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sonic Boom", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -17712,7 +17978,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spacial Rend", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -17727,7 +17993,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spark", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, status: 'par', @@ -17741,11 +18007,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Special", - isNonstandard: "Past", name: "Sparkling Aria", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, secondary: { dustproof: true, chance: 100, @@ -17813,7 +18078,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Speed Swap", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1}, + flags: {protect: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1}, onHit(target, source) { const targetSpe = target.storedStats.spe; target.storedStats.spe = source.storedStats.spe; @@ -17852,7 +18117,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spider Web", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, onHit(target, source, move) { return target.addVolatile('trapped', source, move, 'trapper'); }, @@ -17871,7 +18136,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spike Cannon", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -17887,7 +18152,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spikes", pp: 20, priority: 0, - flags: {reflectable: 1, nonsky: 1, mustpressure: 1}, + flags: {reflectable: 1, nonsky: 1, metronome: 1, mustpressure: 1}, sideCondition: 'spikes', condition: { // this is a side condition @@ -17978,7 +18243,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spin Out", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, self: { boosts: { spe: -2, @@ -18014,7 +18279,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spirit Shackle", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, onHit(target, source, move) { @@ -18037,7 +18302,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spit Up", pp: 10, priority: 0, - flags: {protect: 1}, + flags: {protect: 1, metronome: 1}, onTry(source) { return !!source.volatiles['stockpile']; }, @@ -18057,7 +18322,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spite", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, onHit(target) { let move: Move | ActiveMove | null = target.lastMove; if (!move || move.isZ) return false; @@ -18081,7 +18346,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Splash", pp: 40, priority: 0, - flags: {gravity: 1}, + flags: {gravity: 1, metronome: 1}, onTry(source, target, move) { // Additional Gravity check for Z-move variant if (this.field.getPseudoWeather('Gravity')) { @@ -18146,7 +18411,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Spore", pp: 15, priority: 0, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1}, status: 'slp', secondary: null, target: "normal", @@ -18170,6 +18435,7 @@ export const Moves: {[moveid: string]: MoveData} = { }, condition: { duration: 1, + noCopy: true, // doesn't get copied by Baton Pass onStart(pokemon) { this.add('-singleturn', pokemon, 'move: Spotlight'); }, @@ -18192,7 +18458,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 100, category: "Special", - isNonstandard: "Unobtainable", name: "Springtide Storm", pp: 5, priority: 0, @@ -18214,7 +18479,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stealth Rock", pp: 20, priority: 0, - flags: {reflectable: 1, mustpressure: 1}, + flags: {reflectable: 1, metronome: 1, mustpressure: 1}, sideCondition: 'stealthrock', condition: { // this is a side condition @@ -18260,7 +18525,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Steamroller", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -18300,7 +18565,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Steel Roller", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onTry() { return !this.field.isTerrain(''); }, @@ -18322,7 +18587,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Steel Wing", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, self: { @@ -18343,7 +18608,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sticky Web", pp: 20, priority: 0, - flags: {reflectable: 1}, + flags: {reflectable: 1, metronome: 1}, sideCondition: 'stickyweb', condition: { onSideStart(side) { @@ -18352,7 +18617,7 @@ export const Moves: {[moveid: string]: MoveData} = { onEntryHazard(pokemon) { if (!pokemon.isGrounded() || pokemon.hasItem('heavydutyboots')) return; this.add('-activate', pokemon, 'move: Sticky Web'); - this.boost({spe: -1}, pokemon, this.effectState.source, this.dex.getActiveMove('stickyweb')); + this.boost({spe: -1}, pokemon, pokemon.side.foe.active[0], this.dex.getActiveMove('stickyweb')); }, }, secondary: null, @@ -18369,7 +18634,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stockpile", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onTry(source) { if (source.volatiles['stockpile'] && source.volatiles['stockpile'].layers >= 3) return false; }, @@ -18442,7 +18707,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stomp", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1}, + flags: {contact: 1, protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -18466,7 +18731,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stomping Tantrum", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Ground", @@ -18477,19 +18742,25 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 90, basePower: 65, category: "Physical", - isNonstandard: "Unobtainable", name: "Stone Axe", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, - self: { - onHit(source) { + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, + onAfterHit(target, source, move) { + if (!move.hasSheerForce && source.hp) { for (const side of source.side.foeSidesWithConditions()) { side.addSideCondition('stealthrock'); } - }, + } }, - secondary: {}, // allows sheer force to trigger + onAfterSubDamage(damage, target, source, move) { + if (!move.hasSheerForce && source.hp) { + for (const side of source.side.foeSidesWithConditions()) { + side.addSideCondition('stealthrock'); + } + } + }, + secondary: {}, // Sheer Force-boosted target: "normal", type: "Rock", }, @@ -18501,7 +18772,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stone Edge", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondary: null, target: "normal", @@ -18521,7 +18792,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stored Power", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Psychic", @@ -18538,7 +18809,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Storm Throw", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, willCrit: true, secondary: null, target: "normal", @@ -18550,7 +18821,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 90, category: "Special", - isNonstandard: "Past", name: "Strange Steam", pp: 10, priority: 0, @@ -18570,7 +18840,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Strength", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -18584,7 +18854,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Strength Sap", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, heal: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, heal: 1, metronome: 1}, onHit(target, source) { if (target.boosts.atk === -6) return false; const atk = target.getStat('atk', false, true); @@ -18605,7 +18875,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "String Shot", pp: 40, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { spe: -2, }, @@ -18626,9 +18896,8 @@ export const Moves: {[moveid: string]: MoveData} = { priority: 0, flags: { contact: 1, protect: 1, - failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1, }, - noSketch: true, onModifyMove(move, pokemon, target) { move.type = '???'; this.add('-activate', pokemon, 'move: Struggle'); @@ -18647,7 +18916,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Struggle Bug", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -18666,7 +18935,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stuff Cheeks", pp: 10, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onDisableMove(pokemon) { if (!pokemon.getItem().isBerry) pokemon.disableMove('stuffcheeks'); }, @@ -18689,7 +18958,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Stun Spore", pp: 30, priority: 0, - flags: {powder: 1, protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1, powder: 1}, status: 'par', secondary: null, target: "normal", @@ -18706,7 +18975,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Submission", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [1, 4], secondary: null, target: "normal", @@ -18721,7 +18990,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Substitute", pp: 10, priority: 0, - flags: {snatch: 1, nonsky: 1}, + flags: {snatch: 1, nonsky: 1, metronome: 1}, volatileStatus: 'substitute', onTryHit(source) { if (source.volatiles['substitute']) { @@ -18775,8 +19044,8 @@ export const Moves: {[moveid: string]: MoveData} = { } else { this.add('-activate', target, 'move: Substitute', '[damage]'); } - if (move.recoil) { - this.damage(this.actions.calcRecoilDamage(damage, move), source, target, 'recoil'); + if (move.recoil || move.id === 'chloroblast') { + this.damage(this.actions.calcRecoilDamage(damage, move, source), source, target, 'recoil'); } if (move.drain) { this.heal(Math.ceil(damage * move.drain[0] / move.drain[1]), source, target, 'drain'); @@ -18819,7 +19088,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sucker Punch", pp: 5, priority: 1, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onTry(source, target) { const action = this.queue.willMove(target); const move = action?.choice === 'move' ? action.move : null; @@ -18840,7 +19109,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sunny Day", pp: 5, priority: 0, - flags: {}, + flags: {metronome: 1}, weather: 'sunnyday', secondary: null, target: "all", @@ -18853,7 +19122,6 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 100, category: "Physical", - isNonstandard: "Past", name: "Sunsteel Strike", pp: 5, priority: 0, @@ -18864,6 +19132,23 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Steel", contestType: "Cool", }, + supercellslam: { + num: 916, + accuracy: 95, + basePower: 100, + category: "Physical", + name: "Supercell Slam", + pp: 15, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + hasCrashDamage: true, + onMoveFail(target, source, move) { + this.damage(source.baseMaxhp / 2, source, source, this.dex.conditions.get('Supercell Slam')); + }, + secondary: null, + target: "normal", + type: "Electric", + }, superfang: { num: 162, accuracy: 90, @@ -18875,7 +19160,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Super Fang", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -18889,7 +19174,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Superpower", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, self: { boosts: { atk: -1, @@ -18909,7 +19194,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Supersonic", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'confusion', secondary: null, target: "normal", @@ -18941,7 +19226,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Surf", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1}, secondary: null, target: "allAdjacent", type: "Water", @@ -18955,7 +19240,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Surging Strikes", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, punch: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, willCrit: true, multihit: 3, secondary: null, @@ -18972,7 +19257,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Swagger", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, volatileStatus: 'confusion', boosts: { atk: 2, @@ -18991,13 +19276,15 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Swallow", pp: 10, priority: 0, - flags: {snatch: 1, heal: 1}, - onTry(source) { + flags: {snatch: 1, heal: 1, metronome: 1}, + onTry(source, target, move) { + if (move.sourceEffect === 'snatch') return; return !!source.volatiles['stockpile']; }, onHit(pokemon) { + const layers = pokemon.volatiles['stockpile']?.layers || 1; const healAmount = [0.25, 0.5, 1]; - const success = !!this.heal(this.modify(pokemon.maxhp, healAmount[(pokemon.volatiles['stockpile'].layers - 1)])); + const success = !!this.heal(this.modify(pokemon.maxhp, healAmount[layers - 1])); if (!success) this.add('-fail', pokemon, 'heal'); pokemon.removeVolatile('stockpile'); return success || this.NOT_FAIL; @@ -19016,7 +19303,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sweet Kiss", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, volatileStatus: 'confusion', secondary: null, target: "normal", @@ -19032,7 +19319,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Sweet Scent", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { evasion: -2, }, @@ -19050,7 +19337,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Swift", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "allAdjacentFoes", type: "Normal", @@ -19112,7 +19399,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Swords Dance", pp: 20, priority: 0, - flags: {snatch: 1, dance: 1}, + flags: {snatch: 1, dance: 1, metronome: 1}, boosts: { atk: 2, }, @@ -19131,7 +19418,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Synchronoise", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onTryImmunity(target, source) { return target.hasType(source.getTypes()); }, @@ -19148,7 +19435,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Synthesis", pp: 5, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, onHit(pokemon) { let factor = 0.5; switch (pokemon.effectiveWeather()) { @@ -19177,6 +19464,58 @@ export const Moves: {[moveid: string]: MoveData} = { zMove: {effect: 'clearnegativeboost'}, contestType: "Clever", }, + syrupbomb: { + num: 903, + accuracy: 85, + basePower: 60, + category: "Special", + name: "Syrup Bomb", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, + condition: { + noCopy: true, + duration: 4, + onStart(pokemon) { + this.add('-start', pokemon, 'Syrup Bomb'); + }, + onUpdate(pokemon) { + if (this.effectState.source && !this.effectState.source.isActive) { + pokemon.removeVolatile('syrupbomb'); + } + }, + onResidualOrder: 14, + onResidual(pokemon) { + this.boost({spe: -1}, pokemon, this.effectState.source); + }, + onEnd(pokemon) { + this.add('-end', pokemon, 'Syrup Bomb', '[silent]'); + }, + }, + secondary: { + chance: 100, + volatileStatus: 'syrupbomb', + }, + target: "normal", + type: "Grass", + }, + tachyoncutter: { + num: 911, + accuracy: true, + basePower: 50, + category: "Special", + name: "Tachyon Cutter", + pp: 10, + priority: 0, + flags: {protect: 1, mirror: 1, metronome: 1, slicing: 1}, + multihit: 2, + secondary: null, + target: "normal", + type: "Steel", + zMove: {basePower: 180}, + maxMove: {basePower: 140}, + contestType: "Clever", + }, tackle: { num: 33, accuracy: 100, @@ -19185,7 +19524,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tackle", pp: 35, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -19196,11 +19535,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Tail Glow", pp: 20, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { spa: 3, }, @@ -19218,7 +19556,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tail Slap", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -19235,7 +19573,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tail Whip", pp: 30, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, boosts: { def: -1, }, @@ -19253,7 +19591,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tailwind", pp: 15, priority: 0, - flags: {snatch: 1, wind: 1}, + flags: {snatch: 1, metronome: 1, wind: 1}, sideCondition: 'tailwind', condition: { duration: 4, @@ -19294,7 +19632,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Take Down", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [1, 4], secondary: null, target: "normal", @@ -19306,11 +19644,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Take Heart", pp: 15, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, onHit(pokemon) { const success = !!this.boost({spa: 1, spd: 1}); return pokemon.cureStatus() || success; @@ -19327,10 +19664,11 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tar Shot", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, volatileStatus: 'tarshot', condition: { onStart(pokemon) { + if (pokemon.terastallized) return false; this.add('-start', pokemon, 'Tar Shot'); }, onEffectivenessPriority: -2, @@ -19356,7 +19694,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Taunt", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'taunt', condition: { duration: 3, @@ -19400,7 +19738,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tearful Look", pp: 20, priority: 0, - flags: {reflectable: 1, mirror: 1}, + flags: {reflectable: 1, mirror: 1, metronome: 1}, boosts: { atk: -1, spa: -1, @@ -19419,7 +19757,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Teatime", pp: 10, priority: 0, - flags: {bypasssub: 1}, + flags: {bypasssub: 1, metronome: 1}, onHitField(target, source, move) { const targets: Pokemon[] = []; for (const pokemon of this.getAllActive()) { @@ -19486,7 +19824,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Teeter Dance", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, dance: 1}, + flags: {protect: 1, mirror: 1, dance: 1, metronome: 1}, volatileStatus: 'confusion', secondary: null, target: "allAdjacent", @@ -19503,7 +19841,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Telekinesis", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, gravity: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, gravity: 1, allyanim: 1, metronome: 1}, volatileStatus: 'telekinesis', onTry(source, target, move) { // Additional Gravity check for Z-move variant @@ -19556,7 +19894,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Teleport", pp: 20, priority: -6, - flags: {}, + flags: {metronome: 1}, onTry(source) { return !!this.canSwitch(source.side); }, @@ -19567,15 +19905,46 @@ export const Moves: {[moveid: string]: MoveData} = { zMove: {effect: 'heal'}, contestType: "Cool", }, + temperflare: { + num: 915, + accuracy: 100, + basePower: 75, + basePowerCallback(pokemon, target, move) { + if (pokemon.moveLastTurnResult === false) { + this.debug('doubling Temper Flare BP due to previous move failure'); + return move.basePower * 2; + } + return move.basePower; + }, + category: "Physical", + name: "Temper Flare", + pp: 10, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + secondary: null, + target: "normal", + type: "Fire", + }, terablast: { num: 851, accuracy: 100, basePower: 80, + basePowerCallback(pokemon, target, move) { + if (pokemon.terastallized === 'Stellar') { + return 100; + } + return move.basePower; + }, category: "Special", name: "Tera Blast", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, mustpressure: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, mustpressure: 1}, + onPrepareHit(target, source, move) { + if (source.terastallized) { + this.attrLastMove('[anim] Tera Blast ' + source.teraType); + } + }, onModifyType(move, pokemon, target) { if (pokemon.terastallized) { move.type = pokemon.teraType; @@ -19585,6 +19954,35 @@ export const Moves: {[moveid: string]: MoveData} = { if (pokemon.terastallized && pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) { move.category = 'Physical'; } + if (pokemon.terastallized === 'Stellar') { + move.self = {boosts: {atk: -1, spa: -1}}; + } + }, + secondary: null, + target: "normal", + type: "Normal", + }, + terastarstorm: { + num: 906, + accuracy: 100, + basePower: 120, + category: "Special", + name: "Tera Starstorm", + pp: 5, + priority: 0, + flags: {protect: 1, mirror: 1, noassist: 1, failcopycat: 1, failmimic: 1, nosketch: 1}, + onModifyType(move, pokemon) { + if (pokemon.species.name === 'Terapagos-Stellar') { + move.type = 'Stellar'; + if (pokemon.terastallized && pokemon.getStat('atk', false, true) > pokemon.getStat('spa', false, true)) { + move.category = 'Physical'; + } + } + }, + onModifyMove(move, pokemon) { + if (pokemon.species.name === 'Terapagos-Stellar') { + move.target = 'allAdjacentFoes'; + } }, secondary: null, target: "normal", @@ -19598,7 +19996,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Terrain Pulse", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, pulse: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, pulse: 1}, onModifyType(move, pokemon) { if (!pokemon.isGrounded()) return; switch (this.field.terrain) { @@ -19710,7 +20108,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Thrash", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, failinstruct: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, failinstruct: 1}, self: { volatileStatus: 'lockedmove', }, @@ -19732,7 +20130,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Throat Chop", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, condition: { duration: 2, onStart(target) { @@ -19781,7 +20179,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Thunder", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onModifyMove(move, pokemon, target) { switch (target?.effectiveWeather()) { case 'raindance': @@ -19810,7 +20208,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Thunderbolt", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'par', @@ -19833,6 +20231,27 @@ export const Moves: {[moveid: string]: MoveData} = { target: "normal", type: "Electric", }, + thunderclap: { + num: 909, + accuracy: 100, + basePower: 70, + category: "Special", + name: "Thunderclap", + pp: 5, + priority: 1, + flags: {protect: 1, mirror: 1, metronome: 1}, + onTry(source, target) { + const action = this.queue.willMove(target); + const move = action?.choice === 'move' ? action.move : null; + if (!move || (move.category === 'Status' && move.id !== 'mefirst') || target.volatiles['mustrecharge']) { + return false; + } + }, + secondary: null, + target: "normal", + type: "Electric", + contestType: "Clever", + }, thunderfang: { num: 422, accuracy: 95, @@ -19841,7 +20260,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Thunder Fang", pp: 15, priority: 0, - flags: {bite: 1, contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, bite: 1}, secondaries: [ { chance: 10, @@ -19881,7 +20300,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Thunder Punch", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1, metronome: 1}, secondary: { chance: 10, status: 'par', @@ -19898,7 +20317,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Thunder Shock", pp: 30, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 10, status: 'par', @@ -19915,7 +20334,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Thunder Wave", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, status: 'par', ignoreImmunity: false, secondary: null, @@ -19932,7 +20351,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tickle", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, boosts: { atk: -1, def: -1, @@ -19979,11 +20398,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Topsy-Turvy", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onHit(target) { let success = false; let i: BoostID; @@ -20009,7 +20427,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Torch Song", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1}, secondary: { chance: 100, self: { @@ -20030,7 +20448,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Torment", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, bypasssub: 1, metronome: 1}, volatileStatus: 'torment', condition: { noCopy: true, @@ -20063,7 +20481,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Toxic", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, // No Guard-like effect for Poison-type users implemented in Scripts#tryMoveHit status: 'tox', secondary: null, @@ -20080,7 +20498,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Toxic Spikes", pp: 20, priority: 0, - flags: {reflectable: 1, nonsky: 1, mustpressure: 1}, + flags: {reflectable: 1, nonsky: 1, metronome: 1, mustpressure: 1}, sideCondition: 'toxicspikes', condition: { // this is a side condition @@ -20118,11 +20536,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 0, category: "Status", - isNonstandard: "Past", name: "Toxic Thread", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, status: 'psn', boosts: { spe: -1, @@ -20162,7 +20579,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Transform", pp: 10, priority: 0, - flags: {allyanim: 1, failencore: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1}, + flags: {allyanim: 1, failencore: 1, noassist: 1, failcopycat: 1, failmimic: 1, failinstruct: 1}, onHit(target, pokemon) { if (!pokemon.transformInto(target)) { return false; @@ -20182,7 +20599,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Tri Attack", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, onHit(target, source) { @@ -20257,7 +20674,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Trick-or-Treat", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onHit(target) { if (target.hasType('Ghost')) return false; if (!target.addType('Ghost')) return false; @@ -20285,7 +20702,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Trick Room", pp: 5, priority: -7, - flags: {mirror: 1}, + flags: {mirror: 1, metronome: 1}, pseudoWeather: 'trickroom', condition: { duration: 5, @@ -20324,11 +20741,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 100, basePower: 90, category: "Physical", - isNonstandard: "Unobtainable", name: "Triple Arrows", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, critRatio: 2, secondaries: [ { @@ -20355,7 +20771,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Triple Axel", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 3, multiaccuracy: true, secondary: null, @@ -20372,7 +20788,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Triple Dive", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 3, secondary: null, target: "normal", @@ -20386,11 +20802,10 @@ export const Moves: {[moveid: string]: MoveData} = { return 10 * move.hit; }, category: "Physical", - isNonstandard: "Past", name: "Triple Kick", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, multihit: 3, multiaccuracy: true, secondary: null, @@ -20408,7 +20823,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Trop Kick", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 100, boosts: { @@ -20458,7 +20873,7 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 5, noPPBoosts: true, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -20490,7 +20905,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Twineedle", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: 2, secondary: { chance: 20, @@ -20525,7 +20940,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Twister", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, secondary: { chance: 20, volatileStatus: 'flinch', @@ -20542,13 +20957,36 @@ export const Moves: {[moveid: string]: MoveData} = { name: "U-turn", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, selfSwitch: true, secondary: null, target: "normal", type: "Bug", contestType: "Cute", }, + upperhand: { + num: 918, + accuracy: 100, + basePower: 65, + category: "Physical", + name: "Upper Hand", + pp: 15, + priority: 3, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, + onTry(source, target) { + const action = this.queue.willMove(target); + const move = action?.choice === 'move' ? action.move : null; + if (!move || move.priority <= 0.1 || move.category === 'Status') { + return false; + } + }, + secondary: { + chance: 100, + volatileStatus: 'flinch', + }, + target: "normal", + type: "Fighting", + }, uproar: { num: 253, accuracy: 100, @@ -20557,7 +20995,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Uproar", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, nosleeptalk: 1, failinstruct: 1}, + flags: {protect: 1, mirror: 1, sound: 1, bypasssub: 1, metronome: 1, nosleeptalk: 1, failinstruct: 1}, self: { volatileStatus: 'uproar', }, @@ -20616,7 +21054,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Vacuum Wave", pp: 30, priority: 1, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Fighting", @@ -20627,6 +21065,7 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 95, basePower: 180, category: "Physical", + isNonstandard: "Unobtainable", name: "V-create", pp: 5, priority: 0, @@ -20673,7 +21112,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Venom Drench", pp: 20, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, onHit(target, source, move) { if (target.status === 'psn' || target.status === 'tox') { return !!this.boost({atk: -1, spa: -1, spe: -1}, target, source, move); @@ -20694,7 +21133,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Venoshock", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, onBasePower(basePower, pokemon, target) { if (target.status === 'psn' || target.status === 'tox') { return this.chainModify(2); @@ -20710,11 +21149,10 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: true, basePower: 0, category: "Status", - isNonstandard: "Unobtainable", name: "Victory Dance", pp: 10, priority: 0, - flags: {snatch: 1, dance: 1}, + flags: {snatch: 1, dance: 1, metronome: 1}, boosts: { atk: 1, def: 1, @@ -20732,7 +21170,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Vine Whip", pp: 25, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Grass", @@ -20746,7 +21184,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Vise Grip", pp: 30, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -20761,7 +21199,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Vital Throw", pp: 10, priority: -1, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Fighting", @@ -20775,7 +21213,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Volt Switch", pp: 20, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, selfSwitch: true, secondary: null, target: "normal", @@ -20790,7 +21228,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Volt Tackle", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [33, 100], secondary: { chance: 10, @@ -20816,7 +21254,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wake-Up Slap", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, onHit(target) { if (target.status === 'slp') target.cureStatus(); }, @@ -20833,7 +21271,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Waterfall", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, volatileStatus: 'flinch', @@ -20850,7 +21288,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Water Gun", pp: 25, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Water", @@ -20865,13 +21303,13 @@ export const Moves: {[moveid: string]: MoveData} = { this.add('-combine'); return 150; } - return 80; + return move.basePower; }, category: "Special", name: "Water Pledge", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, nonsky: 1, pledgecombo: 1}, + flags: {protect: 1, mirror: 1, nonsky: 1, metronome: 1, pledgecombo: 1}, onPrepareHit(target, source, move) { for (const action of this.queue) { if (action.choice !== 'move') continue; @@ -20936,7 +21374,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Water Pulse", pp: 20, priority: 0, - flags: {protect: 1, pulse: 1, mirror: 1, distance: 1}, + flags: {protect: 1, mirror: 1, distance: 1, metronome: 1, pulse: 1}, secondary: { chance: 20, volatileStatus: 'confusion', @@ -20960,7 +21398,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Water Shuriken", pp: 20, priority: 1, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, multihit: [2, 5], secondary: null, target: "normal", @@ -20976,7 +21414,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Water Sport", pp: 15, priority: 0, - flags: {nonsky: 1}, + flags: {nonsky: 1, metronome: 1}, pseudoWeather: 'watersport', condition: { duration: 5, @@ -21015,7 +21453,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Water Spout", pp: 5, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "allAdjacentFoes", type: "Water", @@ -21029,7 +21467,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wave Crash", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [33, 100], secondary: null, target: "normal", @@ -21043,7 +21481,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Weather Ball", pp: 10, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, onModifyType(move, pokemon) { switch (pokemon.effectiveWeather()) { case 'sunnyday': @@ -21098,7 +21536,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Whirlpool", pp: 15, priority: 0, - flags: {protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -21113,7 +21551,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Whirlwind", pp: 20, priority: -6, - flags: {reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, wind: 1, noassist: 1, failcopycat: 1}, + flags: {reflectable: 1, mirror: 1, bypasssub: 1, allyanim: 1, metronome: 1, noassist: 1, failcopycat: 1, wind: 1}, forceSwitch: true, secondary: null, target: "normal", @@ -21129,7 +21567,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wicked Blow", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, punch: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, punch: 1}, willCrit: true, secondary: null, target: "normal", @@ -21145,7 +21583,8 @@ export const Moves: {[moveid: string]: MoveData} = { pp: 10, priority: 0, flags: { - protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, failcopycat: 1, failinstruct: 1, failmimic: 1, + protect: 1, failencore: 1, failmefirst: 1, nosleeptalk: 1, noassist: 1, + failcopycat: 1, failmimic: 1, failinstruct: 1, nosketch: 1, }, secondary: { chance: 10, @@ -21208,11 +21647,15 @@ export const Moves: {[moveid: string]: MoveData} = { accuracy: 80, basePower: 100, category: "Special", - isNonstandard: "Unobtainable", name: "Wildbolt Storm", pp: 10, priority: 0, - flags: {protect: 1, mirror: 1, wind: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, wind: 1}, + onModifyMove(move, pokemon, target) { + if (target && ['raindance', 'primordialsea'].includes(target.effectiveWeather())) { + move.accuracy = true; + } + }, secondary: { chance: 20, status: 'par', @@ -21228,7 +21671,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wild Charge", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [1, 4], secondary: null, target: "normal", @@ -21243,7 +21686,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Will-O-Wisp", pp: 15, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, status: 'brn', secondary: null, target: "normal", @@ -21259,7 +21702,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wing Attack", pp: 35, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, distance: 1}, + flags: {contact: 1, protect: 1, mirror: 1, distance: 1, metronome: 1}, secondary: null, target: "any", type: "Flying", @@ -21273,14 +21716,21 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wish", pp: 10, priority: 0, - flags: {snatch: 1, heal: 1}, + flags: {snatch: 1, heal: 1, metronome: 1}, slotCondition: 'Wish', condition: { - duration: 2, onStart(pokemon, source) { this.effectState.hp = source.maxhp / 2; + this.effectState.startingTurn = this.getOverflowedTurnCount(); + if (this.effectState.startingTurn === 255) { + this.hint(`In Gen 8+, Wish will never resolve when used on the ${this.turn}th turn.`); + } }, onResidualOrder: 4, + onResidual(side: any) { + if (this.getOverflowedTurnCount() <= this.effectState.startingTurn) return; + side.removeSlotCondition(this.getAtSlot(this.effectState.sourceSlot), 'wish'); + }, onEnd(target) { if (target && !target.fainted) { const damage = this.heal(this.effectState.hp, target, target); @@ -21304,7 +21754,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Withdraw", pp: 40, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { def: 1, }, @@ -21322,7 +21772,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wonder Room", pp: 10, priority: 0, - flags: {mirror: 1}, + flags: {mirror: 1, metronome: 1}, pseudoWeather: 'wonderroom', condition: { duration: 5, @@ -21372,7 +21822,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wood Hammer", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, recoil: [33, 100], secondary: null, target: "normal", @@ -21387,7 +21837,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Work Up", pp: 30, priority: 0, - flags: {snatch: 1}, + flags: {snatch: 1, metronome: 1}, boosts: { atk: 1, spa: 1, @@ -21406,7 +21856,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Worry Seed", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, allyanim: 1, metronome: 1}, onTryImmunity(target) { // Truant and Insomnia have special treatment; they fail before // checking accuracy and will double Stomping Tantrum's BP @@ -21415,7 +21865,7 @@ export const Moves: {[moveid: string]: MoveData} = { } }, onTryHit(target) { - if (target.getAbility().isPermanent) { + if (target.getAbility().flags['cantsuppress']) { return false; } }, @@ -21444,7 +21894,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wrap", pp: 20, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, volatileStatus: 'partiallytrapped', secondary: null, target: "normal", @@ -21467,7 +21917,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Wring Out", pp: 5, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: null, target: "normal", type: "Normal", @@ -21483,7 +21933,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "X-Scissor", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1, slicing: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1, slicing: 1}, secondary: null, target: "normal", type: "Bug", @@ -21497,7 +21947,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Yawn", pp: 10, priority: 0, - flags: {protect: 1, reflectable: 1, mirror: 1}, + flags: {protect: 1, reflectable: 1, mirror: 1, metronome: 1}, volatileStatus: 'yawn', onTryHit(target) { if (target.status || !target.runStatusImmunity('slp')) { @@ -21530,7 +21980,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Zap Cannon", pp: 5, priority: 0, - flags: {bullet: 1, protect: 1, mirror: 1}, + flags: {protect: 1, mirror: 1, metronome: 1, bullet: 1}, secondary: { chance: 100, status: 'par', @@ -21547,7 +21997,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Zen Headbutt", pp: 15, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 20, volatileStatus: 'flinch', @@ -21564,7 +22014,7 @@ export const Moves: {[moveid: string]: MoveData} = { name: "Zing Zap", pp: 10, priority: 0, - flags: {contact: 1, protect: 1, mirror: 1}, + flags: {contact: 1, protect: 1, mirror: 1, metronome: 1}, secondary: { chance: 30, volatileStatus: 'flinch', @@ -21595,4 +22045,47 @@ export const Moves: {[moveid: string]: MoveData} = { type: "Electric", contestType: "Cool", }, + + // CAP moves + + paleowave: { + num: 0, + accuracy: 100, + basePower: 85, + category: "Special", + isNonstandard: "CAP", + name: "Paleo Wave", + pp: 15, + priority: 0, + flags: {protect: 1, mirror: 1}, + secondary: { + chance: 20, + boosts: { + atk: -1, + }, + }, + target: "normal", + type: "Rock", + contestType: "Beautiful", + }, + shadowstrike: { + num: 0, + accuracy: 95, + basePower: 80, + category: "Physical", + isNonstandard: "CAP", + name: "Shadow Strike", + pp: 10, + priority: 0, + flags: {contact: 1, protect: 1, mirror: 1}, + secondary: { + chance: 50, + boosts: { + def: -1, + }, + }, + target: "normal", + type: "Ghost", + contestType: "Clever", + }, }; diff --git a/data/natures.ts b/data/natures.ts index 0f44111dd866..d7fc4a80a705 100644 --- a/data/natures.ts +++ b/data/natures.ts @@ -1,4 +1,4 @@ -export const Natures: {[k: string]: NatureData} = { +export const Natures: import('../sim/dex-data').NatureDataTable = { adamant: { name: "Adamant", plus: 'atk', diff --git a/data/pokedex.ts b/data/pokedex.ts index 1340d5a3d6be..f80acd870965 100644 --- a/data/pokedex.ts +++ b/data/pokedex.ts @@ -1,4 +1,4 @@ -export const Pokedex: {[speciesid: string]: SpeciesData} = { +export const Pokedex: import('../sim/dex-species').SpeciesDataTable = { bulbasaur: { num: 1, name: "Bulbasaur", @@ -68,7 +68,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 80, atk: 82, def: 83, spa: 100, spd: 100, spe: 80}, abilities: {0: "Overgrow", H: "Chlorophyll"}, - heightm: 2, + heightm: 24, weightkg: 0, color: "Green", eggGroups: ["Monster", "Grass"], @@ -233,7 +233,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 79, atk: 83, def: 100, spa: 85, spd: 105, spe: 78}, abilities: {0: "Torrent", H: "Rain Dish"}, - heightm: 1.6, + heightm: 25, weightkg: 0, color: "Blue", eggGroups: ["Monster", "Water 1"], @@ -937,6 +937,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { color: "Purple", evos: ["Nidorino"], eggGroups: ["Monster", "Field"], + mother: 'nidoranf', }, nidorino: { num: 33, @@ -1961,7 +1962,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { baseStats: {hp: 52, atk: 95, def: 55, spa: 58, spd: 62, spe: 55}, abilities: {0: "Steadfast", H: "Scrappy"}, heightm: 0.8, - weightkg: 15, + weightkg: 42, color: "Brown", evos: ["Sirfetch\u2019d"], eggGroups: ["Flying", "Field"], @@ -2804,7 +2805,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { baseStats: {hp: 75, atk: 110, def: 105, spa: 30, spd: 70, spe: 100}, abilities: {0: "Intimidate", 1: "Anger Point", H: "Cud Chew"}, heightm: 1.4, - weightkg: 88.4, + weightkg: 115, color: "Black", eggGroups: ["Field"], }, @@ -2818,7 +2819,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { baseStats: {hp: 75, atk: 110, def: 105, spa: 30, spd: 70, spe: 100}, abilities: {0: "Intimidate", 1: "Anger Point", H: "Cud Chew"}, heightm: 1.4, - weightkg: 88.4, + weightkg: 85, color: "Black", eggGroups: ["Field"], }, @@ -2832,7 +2833,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { baseStats: {hp: 75, atk: 110, def: 105, spa: 30, spd: 70, spe: 100}, abilities: {0: "Intimidate", 1: "Anger Point", H: "Cud Chew"}, heightm: 1.4, - weightkg: 88.4, + weightkg: 110, color: "Black", eggGroups: ["Field"], }, @@ -3947,7 +3948,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { baseStats: {hp: 55, atk: 45, def: 45, spa: 25, spd: 25, spe: 15}, abilities: {0: "Poison Point", 1: "Water Absorb", H: "Unaware"}, heightm: 0.4, - weightkg: 8.5, + weightkg: 11, color: "Brown", evos: ["Clodsire"], eggGroups: ["Water 1", "Field"], @@ -5236,7 +5237,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { name: "Shiftry", types: ["Grass", "Dark"], baseStats: {hp: 90, atk: 100, def: 60, spa: 90, spd: 60, spe: 80}, - abilities: {0: "Chlorophyll", 1: "Early Bird", H: "Pickpocket"}, + abilities: {0: "Chlorophyll", 1: "Wind Rider", H: "Pickpocket"}, heightm: 1.3, weightkg: 59.6, color: "Brown", @@ -5823,6 +5824,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { weightkg: 17.7, color: "Gray", eggGroups: ["Bug", "Human-Like"], + mother: 'illumise', }, illumise: { num: 314, @@ -7152,7 +7154,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { types: ["Water"], genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 53, atk: 51, def: 53, spa: 61, spd: 56, spe: 40}, - abilities: {0: "Torrent", H: "Defiant"}, + abilities: {0: "Torrent", H: "Competitive"}, heightm: 0.4, weightkg: 5.2, color: "Blue", @@ -7165,7 +7167,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { types: ["Water"], genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 64, atk: 66, def: 68, spa: 81, spd: 76, spe: 50}, - abilities: {0: "Torrent", H: "Defiant"}, + abilities: {0: "Torrent", H: "Competitive"}, heightm: 0.8, weightkg: 23, color: "Blue", @@ -7180,7 +7182,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { types: ["Water", "Steel"], genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 84, atk: 86, def: 88, spa: 111, spd: 101, spe: 60}, - abilities: {0: "Torrent", H: "Defiant"}, + abilities: {0: "Torrent", H: "Competitive"}, heightm: 1.7, weightkg: 84.5, color: "Blue", @@ -8588,7 +8590,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Pressure", H: "Telepathy"}, heightm: 7, weightkg: 850, - color: "White", + color: "Blue", eggGroups: ["Undiscovered"], requiredItem: "Adamant Crystal", changesFrom: "Dialga", @@ -11646,9 +11648,23 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { prevo: "Frogadier", evoLevel: 36, eggGroups: ["Water 1"], - otherFormes: ["Greninja-Ash"], - // non-activated Greninja-Ash is forme 1, but PS does not currently distinguish it - formeOrder: ["Greninja", "Greninja", "Greninja-Ash"], + otherFormes: ["Greninja-Bond", "Greninja-Ash"], + formeOrder: ["Greninja", "Greninja-Bond", "Greninja-Ash"], + }, + greninjabond: { + num: 658, + name: "Greninja-Bond", + baseSpecies: "Greninja", + forme: "Bond", + types: ["Water", "Dark"], + gender: "M", + baseStats: {hp: 72, atk: 95, def: 67, spa: 103, spd: 71, spe: 122}, + abilities: {0: "Battle Bond"}, + heightm: 1.5, + weightkg: 40, + color: "Blue", + eggGroups: ["Undiscovered"], + gen: 7, }, greninjaash: { num: 658, @@ -11664,7 +11680,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { color: "Blue", eggGroups: ["Undiscovered"], requiredAbility: "Battle Bond", - battleOnly: "Greninja", + battleOnly: "Greninja-Bond", gen: 7, }, bunnelby: { @@ -11819,7 +11835,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { forme: "Pokeball", types: ["Bug", "Flying"], baseStats: {hp: 80, atk: 52, def: 50, spa: 90, spd: 50, spe: 89}, - abilities: {0: "Shield Dust", 1: "Compound Eyes"}, + abilities: {0: "Shield Dust", 1: "Compound Eyes", H: "Friend Guard"}, heightm: 1.2, weightkg: 17, color: "Black", @@ -12437,6 +12453,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { color: "Purple", prevo: "Sliggoo", evoLevel: 50, + evoCondition: "during rain", eggGroups: ["Dragon"], otherFormes: ["Goodra-Hisui"], formeOrder: ["Goodra", "Goodra-Hisui"], @@ -12454,6 +12471,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { color: "Purple", prevo: "Sliggoo-Hisui", evoLevel: 50, + evoCondition: "during rain", eggGroups: ["Dragon"], }, klefki: { @@ -13309,7 +13327,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { color: "Brown", prevo: "Rockruff", evoLevel: 25, - evoCondition: "from a special Rockruff", + evoCondition: "from a special Rockruff during the evening", eggGroups: ["Field"], }, wishiwashi: { @@ -14360,7 +14378,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 1.2, weightkg: 55.5, color: "White", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, buzzwole: { @@ -14373,7 +14391,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 2.4, weightkg: 333.6, color: "Red", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, pheromosa: { @@ -14386,7 +14404,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 1.8, weightkg: 25, color: "White", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, xurkitree: { @@ -14399,7 +14417,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 3.8, weightkg: 100, color: "Black", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, celesteela: { @@ -14412,7 +14430,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 9.2, weightkg: 999.9, color: "Green", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, kartana: { @@ -14425,7 +14443,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 0.3, weightkg: 0.1, color: "White", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, guzzlord: { @@ -14438,7 +14456,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 5.5, weightkg: 888, color: "Black", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, necrozma: { @@ -14554,7 +14572,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 0.6, weightkg: 1.8, color: "Purple", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], evos: ["Naganadel"], eggGroups: ["Undiscovered"], }, @@ -14568,7 +14586,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 3.6, weightkg: 150, color: "Purple", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], prevo: "Poipole", evoType: "levelMove", evoMove: "Dragon Pulse", @@ -14584,7 +14602,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 5.5, weightkg: 820, color: "Gray", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, blacephalon: { @@ -14597,7 +14615,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 1.8, weightkg: 13, color: "White", - tags: ["Sub-Legendary"], + tags: ["Ultra Beast"], eggGroups: ["Undiscovered"], }, zeraora: { @@ -14707,7 +14725,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 100, atk: 125, def: 90, spa: 60, spd: 70, spe: 85}, abilities: {0: "Overgrow", H: "Grassy Surge"}, - heightm: 3, + heightm: 28, weightkg: 0, color: "Green", eggGroups: ["Field", "Grass"], @@ -14765,7 +14783,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 80, atk: 116, def: 75, spa: 65, spd: 75, spe: 119}, abilities: {0: "Blaze", H: "Libero"}, - heightm: 3, + heightm: 27, weightkg: 0, color: "White", eggGroups: ["Field", "Human-Like"], @@ -14823,7 +14841,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 70, atk: 85, def: 65, spa: 125, spd: 65, spe: 120}, abilities: {0: "Torrent", H: "Sniper"}, - heightm: 3, + heightm: 40, weightkg: 0, color: "Blue", eggGroups: ["Water 1", "Field"], @@ -15165,7 +15183,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 0.2, weightkg: 0.5, color: "Green", - evos: ["Flapple", "Appletun"], + evos: ["Flapple", "Appletun", "Dipplin"], eggGroups: ["Grass", "Dragon"], }, flapple: { @@ -15782,7 +15800,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Sweet Veil", H: "Aroma Veil"}, heightm: 30, weightkg: 0, - color: "White", + color: "Yellow", eggGroups: ["Fairy", "Amorphous"], changesFrom: "Alcremie", }, @@ -15888,6 +15906,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { eggGroups: ["Fairy"], otherFormes: ["Indeedee-F"], formeOrder: ["Indeedee", "Indeedee-F"], + mother: 'indeedeef', }, indeedeef: { num: 876, @@ -16028,6 +16047,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { heightm: 1.8, weightkg: 40, color: "White", + evos: ["Archaludon"], eggGroups: ["Mineral", "Dragon"], canGigantamax: "G-Max Depletion", }, @@ -16244,7 +16264,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 100, atk: 130, def: 100, spa: 63, spd: 60, spe: 97}, abilities: {0: "Unseen Fist"}, - heightm: 3, + heightm: 29, weightkg: 0, color: "Gray", eggGroups: ["Undiscovered"], @@ -16259,8 +16279,8 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { genderRatio: {M: 0.875, F: 0.125}, baseStats: {hp: 100, atk: 130, def: 100, spa: 63, spd: 60, spe: 97}, abilities: {0: "Unseen Fist"}, - heightm: 1.9, - weightkg: 105, + heightm: 26, + weightkg: 0, color: "Gray", eggGroups: ["Undiscovered"], battleOnly: "Urshifu-Rapid-Strike", @@ -16400,7 +16420,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Intimidate", 1: "Frisk", H: "Sap Sipper"}, heightm: 1.8, weightkg: 95.1, - color: "White", + color: "Gray", prevo: "Stantler", evoType: "other", evoCondition: "Use Agile style Psyshield Bash 20 times", @@ -16416,7 +16436,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { weightkg: 89, color: "Brown", prevo: "Scyther", - evoType: "other", + evoType: "useItem", evoCondition: "Black Augurite", eggGroups: ["Bug"], }, @@ -16433,6 +16453,23 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { evoType: "other", evoCondition: "Peat Block when there's a full moon", eggGroups: ["Field"], + otherFormes: ["Ursaluna-Bloodmoon"], + formeOrder: ["Ursaluna", "Ursaluna-Bloodmoon"], + }, + ursalunabloodmoon: { + num: 901, + name: "Ursaluna-Bloodmoon", + baseSpecies: "Ursaluna", + forme: "Bloodmoon", + types: ["Ground", "Normal"], + gender: "M", + baseStats: {hp: 113, atk: 70, def: 120, spa: 135, spd: 65, spe: 52}, + abilities: {0: "Mind's Eye"}, + heightm: 2.7, + weightkg: 333, + color: "Brown", + eggGroups: ["Field"], + gen: 9, }, basculegion: { num: 902, @@ -16477,7 +16514,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Pressure", 1: "Unburden", H: "Poison Touch"}, heightm: 1.3, weightkg: 43, - color: "Purple", + color: "Blue", prevo: "Sneasel-Hisui", evoType: "levelHold", evoItem: "Razor Claw", @@ -16490,9 +16527,9 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { types: ["Dark", "Poison"], baseStats: {hp: 85, atk: 115, def: 95, spa: 65, spd: 65, spe: 85}, abilities: {0: "Poison Point", 1: "Swift Swim", H: "Intimidate"}, - heightm: 0.5, - weightkg: 3.9, - color: "Gray", + heightm: 2.5, + weightkg: 60.5, + color: "Black", prevo: "Qwilfish-Hisui", evoType: "other", evoCondition: "Use Strong style Barb Barrage 20 times", @@ -16971,7 +17008,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { types: ["Rock"], baseStats: {hp: 60, atk: 60, def: 100, spa: 35, spd: 65, spe: 35}, abilities: {0: "Purifying Salt", 1: "Sturdy", H: "Clear Body"}, - heightm: 0.5, + heightm: 0.6, weightkg: 105, color: "Brown", prevo: "Nacli", @@ -16985,7 +17022,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { types: ["Rock"], baseStats: {hp: 100, atk: 100, def: 130, spa: 45, spd: 90, spe: 35}, abilities: {0: "Purifying Salt", 1: "Sturdy", H: "Clear Body"}, - heightm: 2.5, + heightm: 2.3, weightkg: 240, color: "Brown", prevo: "Naclstack", @@ -17026,7 +17063,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Flash Fire", H: "Weak Armor"}, heightm: 1.6, weightkg: 62, - color: "Blue", + color: "Purple", prevo: "Charcadet", evoType: "useItem", evoItem: "Malicious Armor", @@ -17199,7 +17236,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { num: 951, name: "Capsakid", types: ["Grass"], - baseStats: {hp: 52, atk: 62, def: 40, spa: 62, spd: 40, spe: 50}, + baseStats: {hp: 50, atk: 62, def: 40, spa: 62, spd: 40, spe: 50}, abilities: {0: "Chlorophyll", 1: "Insomnia", H: "Klutz"}, heightm: 0.3, weightkg: 3, @@ -17559,7 +17596,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Commander", H: "Storm Drain"}, heightm: 0.3, weightkg: 8, - color: "Pink", + color: "Red", cosmeticFormes: ["Tatsugiri-Droopy", "Tatsugiri-Stretchy"], formeOrder: ["Tatsugiri", "Tatsugiri-Droopy", "Tatsugiri-Stretchy"], eggGroups: ["Water 2"], @@ -17687,7 +17724,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Protosynthesis"}, heightm: 1.2, weightkg: 21, - color: "Gray", + color: "White", tags: ["Paradox"], eggGroups: ["Undiscovered"], }, @@ -17713,7 +17750,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Protosynthesis"}, heightm: 3.2, weightkg: 92, - color: "Red", + color: "White", tags: ["Paradox"], eggGroups: ["Undiscovered"], }, @@ -17791,7 +17828,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Quark Drive"}, heightm: 1.2, weightkg: 36, - color: "Yellow", + color: "White", tags: ["Paradox"], eggGroups: ["Undiscovered"], }, @@ -17828,7 +17865,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Thermal Exchange", H: "Ice Body"}, heightm: 0.8, weightkg: 30, - color: "Gray", + color: "Blue", prevo: "Frigibax", evoLevel: 35, evos: ["Baxcalibur"], @@ -17842,7 +17879,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Thermal Exchange", H: "Ice Body"}, heightm: 2.1, weightkg: 210, - color: "Gray", + color: "Blue", prevo: "Arctibax", evoLevel: 54, eggGroups: ["Dragon", "Mineral"], @@ -17857,7 +17894,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Rattled"}, heightm: 0.3, weightkg: 5, - color: "Brown", + color: "Red", evos: ["Gholdengo"], otherFormes: ["Gimmighoul-Roaming"], formeOrder: ["Gimmighoul", "Gimmighoul-Roaming"], @@ -17874,7 +17911,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Run Away"}, heightm: 0.1, weightkg: 0.1, - color: "Blue", + color: "Gray", evos: ["Gholdengo"], eggGroups: ["Undiscovered"], }, @@ -17954,7 +17991,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Protosynthesis"}, heightm: 2, weightkg: 380, - color: "Green", + color: "Blue", tags: ["Paradox"], eggGroups: ["Undiscovered"], }, @@ -17993,7 +18030,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { abilities: {0: "Hadron Engine"}, heightm: 3.5, weightkg: 240, - color: "Blue", + color: "Purple", tags: ["Restricted Legendary"], eggGroups: ["Undiscovered"], }, @@ -18023,6 +18060,395 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { tags: ["Paradox"], eggGroups: ["Undiscovered"], }, + dipplin: { + num: 1011, + name: "Dipplin", + types: ["Grass", "Dragon"], + baseStats: {hp: 80, atk: 80, def: 110, spa: 95, spd: 80, spe: 40}, + abilities: {0: "Supersweet Syrup", 1: "Gluttony", H: "Sticky Hold"}, + heightm: 0.4, + weightkg: 4.4, + color: "Green", + prevo: "Applin", + evos: ["Hydrapple"], + evoType: "useItem", + evoItem: "Syrupy Apple", + eggGroups: ["Grass", "Dragon"], + }, + poltchageist: { + num: 1012, + name: "Poltchageist", + baseForme: "Counterfeit", + types: ["Grass", "Ghost"], + gender: "N", + baseStats: {hp: 40, atk: 45, def: 45, spa: 74, spd: 54, spe: 50}, + abilities: {0: "Hospitality", H: "Heatproof"}, + heightm: 0.1, + weightkg: 1.1, + color: "Green", + evos: ["Sinistcha"], + eggGroups: ["Mineral", "Amorphous"], + otherFormes: ["Poltchageist-Artisan"], + formeOrder: ["Poltchageist", "Poltchageist-Artisan"], + }, + poltchageistartisan: { + num: 1012, + name: "Poltchageist-Artisan", + baseSpecies: "Poltchageist", + forme: "Artisan", + types: ["Grass", "Ghost"], + gender: "N", + baseStats: {hp: 40, atk: 45, def: 45, spa: 74, spd: 54, spe: 50}, + abilities: {0: "Hospitality", H: "Heatproof"}, + heightm: 0.1, + weightkg: 1.1, + color: "Green", + evos: ["Sinistcha-Masterpiece"], + eggGroups: ["Undiscovered"], + }, + sinistcha: { + num: 1013, + name: "Sinistcha", + baseForme: "Unremarkable", + types: ["Grass", "Ghost"], + gender: "N", + baseStats: {hp: 71, atk: 60, def: 106, spa: 121, spd: 80, spe: 70}, + abilities: {0: "Hospitality", H: "Heatproof"}, + heightm: 0.2, + weightkg: 2.2, + color: "Green", + prevo: "Poltchageist", + evoType: "useItem", + evoItem: "Unremarkable Teacup", + eggGroups: ["Mineral", "Amorphous"], + otherFormes: ["Sinistcha-Masterpiece"], + formeOrder: ["Sinistcha", "Sinistcha-Masterpiece"], + }, + sinistchamasterpiece: { + num: 1013, + name: "Sinistcha-Masterpiece", + baseSpecies: "Sinistcha", + forme: "Masterpiece", + types: ["Grass", "Ghost"], + gender: "N", + baseStats: {hp: 71, atk: 60, def: 106, spa: 121, spd: 80, spe: 70}, + abilities: {0: "Hospitality", H: "Heatproof"}, + heightm: 0.2, + weightkg: 2.2, + color: "Green", + prevo: "Poltchageist-Artisan", + evoType: "useItem", + evoItem: "Masterpiece Teacup", + eggGroups: ["Undiscovered"], + }, + okidogi: { + num: 1014, + name: "Okidogi", + types: ["Poison", "Fighting"], + gender: "M", + baseStats: {hp: 88, atk: 128, def: 115, spa: 58, spd: 86, spe: 80}, + abilities: {0: "Toxic Chain", H: "Guard Dog"}, + heightm: 1.8, + weightkg: 92, + color: "Black", + tags: ["Sub-Legendary"], + eggGroups: ["Undiscovered"], + }, + munkidori: { + num: 1015, + name: "Munkidori", + types: ["Poison", "Psychic"], + gender: "M", + baseStats: {hp: 88, atk: 75, def: 66, spa: 130, spd: 90, spe: 106}, + abilities: {0: "Toxic Chain", H: "Frisk"}, + heightm: 1, + weightkg: 12.2, + color: "Black", + tags: ["Sub-Legendary"], + eggGroups: ["Undiscovered"], + }, + fezandipiti: { + num: 1016, + name: "Fezandipiti", + types: ["Poison", "Fairy"], + gender: "M", + baseStats: {hp: 88, atk: 91, def: 82, spa: 70, spd: 125, spe: 99}, + abilities: {0: "Toxic Chain", H: "Technician"}, + heightm: 1.4, + weightkg: 30.1, + color: "Black", + tags: ["Sub-Legendary"], + eggGroups: ["Undiscovered"], + }, + ogerpon: { + num: 1017, + name: "Ogerpon", + baseForme: "Teal", + types: ["Grass"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Defiant"}, + heightm: 1.2, + weightkg: 39.8, + color: "Green", + tags: ["Sub-Legendary"], + eggGroups: ["Undiscovered"], + otherFormes: ["Ogerpon-Wellspring", "Ogerpon-Hearthflame", "Ogerpon-Cornerstone", "Ogerpon-Teal-Tera", "Ogerpon-Wellspring-Tera", "Ogerpon-Hearthflame-Tera", "Ogerpon-Cornerstone-Tera"], + formeOrder: ["Ogerpon", "Ogerpon-Wellspring", "Ogerpon-Hearthflame", "Ogerpon-Cornerstone", "Ogerpon-Teal-Tera", "Ogerpon-Wellspring-Tera", "Ogerpon-Hearthflame-Tera", "Ogerpon-Cornerstone-Tera"], + forceTeraType: "Grass", + }, + ogerponwellspring: { + num: 1017, + name: "Ogerpon-Wellspring", + baseSpecies: "Ogerpon", + forme: "Wellspring", + types: ["Grass", "Water"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Water Absorb"}, + heightm: 1.2, + weightkg: 39.8, + color: "Blue", + eggGroups: ["Undiscovered"], + requiredItem: "Wellspring Mask", + changesFrom: "Ogerpon", + forceTeraType: "Water", + }, + ogerponhearthflame: { + num: 1017, + name: "Ogerpon-Hearthflame", + baseSpecies: "Ogerpon", + forme: "Hearthflame", + types: ["Grass", "Fire"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Mold Breaker"}, + heightm: 1.2, + weightkg: 39.8, + color: "Red", + eggGroups: ["Undiscovered"], + requiredItem: "Hearthflame Mask", + changesFrom: "Ogerpon", + forceTeraType: "Fire", + }, + ogerponcornerstone: { + num: 1017, + name: "Ogerpon-Cornerstone", + baseSpecies: "Ogerpon", + forme: "Cornerstone", + types: ["Grass", "Rock"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Sturdy"}, + heightm: 1.2, + weightkg: 39.8, + color: "Gray", + eggGroups: ["Undiscovered"], + requiredItem: "Cornerstone Mask", + changesFrom: "Ogerpon", + forceTeraType: "Rock", + }, + ogerpontealtera: { + num: 1017, + name: "Ogerpon-Teal-Tera", + baseSpecies: "Ogerpon", + forme: "Teal-Tera", + types: ["Grass"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Embody Aspect (Teal)"}, + heightm: 1.2, + weightkg: 39.8, + color: "Green", + eggGroups: ["Undiscovered"], + battleOnly: "Ogerpon", + forceTeraType: "Grass", + }, + ogerponwellspringtera: { + num: 1017, + name: "Ogerpon-Wellspring-Tera", + baseSpecies: "Ogerpon", + forme: "Wellspring-Tera", + types: ["Grass", "Water"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Embody Aspect (Wellspring)"}, + heightm: 1.2, + weightkg: 39.8, + color: "Blue", + eggGroups: ["Undiscovered"], + requiredItem: "Wellspring Mask", + battleOnly: "Ogerpon-Wellspring", + forceTeraType: "Water", + }, + ogerponhearthflametera: { + num: 1017, + name: "Ogerpon-Hearthflame-Tera", + baseSpecies: "Ogerpon", + forme: "Hearthflame-Tera", + types: ["Grass", "Fire"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Embody Aspect (Hearthflame)"}, + heightm: 1.2, + weightkg: 39.8, + color: "Red", + eggGroups: ["Undiscovered"], + requiredItem: "Hearthflame Mask", + battleOnly: "Ogerpon-Hearthflame", + forceTeraType: "Fire", + }, + ogerponcornerstonetera: { + num: 1017, + name: "Ogerpon-Cornerstone-Tera", + baseSpecies: "Ogerpon", + forme: "Cornerstone-Tera", + types: ["Grass", "Rock"], + gender: "F", + baseStats: {hp: 80, atk: 120, def: 84, spa: 60, spd: 96, spe: 110}, + abilities: {0: "Embody Aspect (Cornerstone)"}, + heightm: 1.2, + weightkg: 39.8, + color: "Gray", + eggGroups: ["Undiscovered"], + requiredItem: "Cornerstone Mask", + battleOnly: "Ogerpon-Cornerstone", + forceTeraType: "Rock", + }, + archaludon: { + num: 1018, + name: "Archaludon", + types: ["Steel", "Dragon"], + baseStats: {hp: 90, atk: 105, def: 130, spa: 125, spd: 65, spe: 85}, + abilities: {0: "Stamina", 1: "Sturdy", H: "Stalwart"}, + heightm: 2, + weightkg: 60, + color: "White", + prevo: "Duraludon", + evoType: "useItem", + evoItem: "Metal Alloy", + eggGroups: ["Mineral", "Dragon"], + }, + hydrapple: { + num: 1019, + name: "Hydrapple", + types: ["Grass", "Dragon"], + baseStats: {hp: 106, atk: 80, def: 110, spa: 120, spd: 80, spe: 44}, + abilities: {0: "Supersweet Syrup", 1: "Regenerator", H: "Sticky Hold"}, + heightm: 1.8, + weightkg: 93, + color: "Green", + prevo: "Dipplin", + evoType: "levelMove", + evoMove: "Dragon Cheer", + eggGroups: ["Grass", "Dragon"], + }, + gougingfire: { + num: 1020, + name: "Gouging Fire", + types: ["Fire", "Dragon"], + gender: "N", + baseStats: {hp: 105, atk: 115, def: 121, spa: 65, spd: 93, spe: 91}, + abilities: {0: "Protosynthesis"}, + heightm: 3.5, + weightkg: 590, + color: "Brown", + eggGroups: ["Undiscovered"], + }, + ragingbolt: { + num: 1021, + name: "Raging Bolt", + types: ["Electric", "Dragon"], + gender: "N", + baseStats: {hp: 125, atk: 73, def: 91, spa: 137, spd: 89, spe: 75}, + abilities: {0: "Protosynthesis"}, + heightm: 5.2, + weightkg: 480, + color: "Yellow", + eggGroups: ["Undiscovered"], + }, + ironboulder: { + num: 1022, + name: "Iron Boulder", + types: ["Rock", "Psychic"], + gender: "N", + baseStats: {hp: 90, atk: 120, def: 80, spa: 68, spd: 108, spe: 124}, + abilities: {0: "Quark Drive"}, + heightm: 1.5, + weightkg: 162.5, + color: "Gray", + eggGroups: ["Undiscovered"], + }, + ironcrown: { + num: 1023, + name: "Iron Crown", + types: ["Steel", "Psychic"], + gender: "N", + baseStats: {hp: 90, atk: 72, def: 100, spa: 122, spd: 108, spe: 98}, + abilities: {0: "Quark Drive"}, + heightm: 1.6, + weightkg: 156, + color: "Blue", + eggGroups: ["Undiscovered"], + }, + terapagos: { + num: 1024, + name: "Terapagos", + types: ["Normal"], + baseStats: {hp: 90, atk: 65, def: 85, spa: 65, spd: 85, spe: 60}, + abilities: {0: "Tera Shift"}, + heightm: 0.2, + weightkg: 6.5, + color: "Blue", + tags: ["Restricted Legendary"], + eggGroups: ["Undiscovered"], + otherFormes: ["Terapagos-Terastal", "Terapagos-Stellar"], + formeOrder: ["Terapagos", "Terapagos-Terastal", "Terapagos-Stellar"], + forceTeraType: "Stellar", + }, + terapagosterastal: { + num: 1024, + name: "Terapagos-Terastal", + baseSpecies: "Terapagos", + forme: "Terastal", + types: ["Normal"], + baseStats: {hp: 95, atk: 95, def: 110, spa: 105, spd: 110, spe: 85}, + abilities: {0: "Tera Shell"}, + heightm: 0.3, + weightkg: 16, + color: "Blue", + eggGroups: ["Undiscovered"], + battleOnly: "Terapagos", + forceTeraType: "Stellar", + }, + terapagosstellar: { + num: 1024, + name: "Terapagos-Stellar", + baseSpecies: "Terapagos", + forme: "Stellar", + types: ["Normal"], + baseStats: {hp: 160, atk: 105, def: 110, spa: 130, spd: 110, spe: 85}, + abilities: {0: "Teraform Zero"}, + heightm: 1.7, + weightkg: 77, + color: "Blue", + eggGroups: ["Undiscovered"], + battleOnly: "Terapagos", + forceTeraType: "Stellar", + }, + pecharunt: { + num: 1025, + name: "Pecharunt", + types: ["Poison", "Ghost"], + gender: "N", + baseStats: {hp: 88, atk: 88, def: 160, spa: 88, spd: 88, spe: 88}, + abilities: {0: "Poison Puppeteer"}, + heightm: 0.3, + weightkg: 0.3, + color: "Purple", + tags: ["Mythical"], + eggGroups: ["Undiscovered"], + }, missingno: { num: 0, name: "MissingNo.", @@ -18066,7 +18492,7 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { name: "Revenankh", types: ["Ghost", "Fighting"], baseStats: {hp: 90, atk: 105, def: 90, spa: 65, spd: 110, spe: 65}, - abilities: {0: "Shed Skin", 1: "Air Lock", H: "Triage"}, + abilities: {0: "Air Lock", 1: "Triage", H: "Shed Skin"}, heightm: 1.8, weightkg: 44, color: "White", @@ -18218,8 +18644,8 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { num: -14, name: "Kitsunoh", types: ["Ghost", "Steel"], - baseStats: {hp: 80, atk: 103, def: 85, spa: 55, spd: 80, spe: 110}, - abilities: {0: "Frisk", 1: "Limber", H: "Iron Fist"}, + baseStats: {hp: 80, atk: 117, def: 85, spa: 55, spd: 80, spe: 128}, + abilities: {0: "Frisk", 1: "Limber", H: "Trace"}, heightm: 1.1, weightkg: 51, color: "Gray", @@ -19016,6 +19442,90 @@ export const Pokedex: {[speciesid: string]: SpeciesData} = { eggGroups: ["Field"], gen: 8, }, + ababo: { + num: -69, + name: "Ababo", + types: ["Fairy"], + genderRatio: {M: 0.75, F: 0.25}, + baseStats: {hp: 42, atk: 35, def: 27, spa: 35, spd: 35, spe: 38}, + abilities: {0: "Pixilate", 1: "Rattled", H: "Own Tempo"}, + heightm: 0.5, + weightkg: 3.5, + color: "White", + evos: ["Scattervein"], + eggGroups: ["Undiscovered"], + canHatch: true, + gen: 9, + }, + scattervein: { + num: -70, + name: "Scattervein", + types: ["Fairy"], + genderRatio: {M: 0.75, F: 0.25}, + baseStats: {hp: 75, atk: 74, def: 87, spa: 62, spd: 89, spe: 63}, + abilities: {0: "Pixilate", 1: "Intimidate", H: "Own Tempo"}, + heightm: 1.5, + weightkg: 25, + color: "Pink", + prevo: "Ababo", + evoType: "levelFriendship", + evos: ["Hemogoblin"], + eggGroups: ["Monster", "Fairy"], + canHatch: true, + gen: 9, + }, + hemogoblin: { + num: -71, + name: "Hemogoblin", + types: ["Fairy", "Fire"], + genderRatio: {M: 0.75, F: 0.25}, + baseStats: {hp: 90, atk: 96, def: 87, spa: 96, spd: 89, spe: 55}, + abilities: {0: "Pixilate", 1: "Intimidate", H: "Own Tempo"}, + heightm: 1.4, + weightkg: 85, + color: "Pink", + prevo: "Scattervein", + evoType: "useItem", + evoItem: "Fire Stone", + eggGroups: ["Monster", "Fairy"], + gen: 9, + }, + cresceidon: { + num: -72, + name: "Cresceidon", + types: ["Water", "Fairy"], + baseStats: {hp: 80, atk: 32, def: 111, spa: 88, spd: 99, spe: 124}, + abilities: {0: "Multiscale", 1: "Rough Skin", H: "Water Veil"}, + heightm: 10, + weightkg: 999.9, + color: "Blue", + eggGroups: ["Amorphous", "Water 3"], + gen: 9, + }, + chuggalong: { + num: -75, + name: "Chuggalong", + types: ["Dragon", "Poison"], + baseStats: {hp: 45, atk: 43, def: 117, spa: 120, spd: 110, spe: 108}, + abilities: {0: "Armor Tail", 1: "White Smoke", H: "Slow Start"}, + heightm: 6.2, + weightkg: 201.6, + color: "Black", + eggGroups: ["Dragon", "Mineral"], + gen: 9, + }, + shox: { + num: -77, + name: "Shox", + types: ["Electric", "Normal"], + baseStats: {hp: 136, atk: 73, def: 81, spa: 90, spd: 98, spe: 56}, + abilities: {0: "Electromorphosis", 1: "Sticky Hold"}, + heightm: 3, + weightkg: 99.9, + color: "Brown", + eggGroups: ["Field"], + gen: 9, + }, // NOTE: PokeStar "formes" are not actually formes and thus do not have a formeOrder pokestarsmeargle: { num: -5000, diff --git a/data/pokemongo.ts b/data/pokemongo.ts new file mode 100644 index 000000000000..3c45b5b83663 --- /dev/null +++ b/data/pokemongo.ts @@ -0,0 +1,983 @@ +/** + * A listing of every Pokemon that can be obtained from Pokemon GO and how the can be obtained. + * If a Pokemon is not listed here, it cannot be obtained from Pokemon GO. + * + * Key: + * - Origin: + * - wild: Can be found in the overworld, either as a regular spawn or through a similar source such as GO Snapshot + * - egg: Hatches from 2, 5, or 10 km eggs + * - giovanni: Shadow Pokemon rescued from Giovanni and purified + * - 12kmegg: Hatches from a 12 km egg, which is obtained from Team GO Rocket Leaders which unlock at level 8 + * - raid: Caught from defeating a raid boss + * - research: Reward from field research, special research, or research breakthrough + * If the Pokemon is obtainable from the wild, other sources do not need to be included due to redundancy. + * For shinies that can't be obtained from the wild, all other sources should be included. + * + * - Shiny origin restrictions: + * - noshiny: This Pokemon's shiny form is unavailable in Pokemon GO + * - nowildshiny: This Pokemon can't be obtained as shiny from the wild + * + * - Trade restrictions: + * - notrade: This Pokemon cannot be traded at all + * - specialtrade: This Pokemon must be traded in a special trade + * + * Certain sources have been excluded from this list, which are: + * - GO Battle League: same level and IV floor as raid bosses, and all from GO Battle League have also been in raids + * - Shadow Pokemon: most can also be obtained from the wild, and those that can't are from defeating Giovanni, which + * is handled as as its own encounter + */ +export const PokemonGoData: import('../sim/dex-species').PokemonGoDataTable = { + bulbasaur: {encounters: ['wild']}, + ivysaur: {encounters: ['wild']}, + venusaur: {encounters: ['wild']}, + charmander: {encounters: ['wild']}, + charmeleon: {encounters: ['wild']}, + charizard: {encounters: ['wild']}, + squirtle: {encounters: ['wild']}, + wartortle: {encounters: ['wild']}, + blastoise: {encounters: ['wild']}, + caterpie: {encounters: ['wild']}, + metapod: {encounters: ['wild']}, + butterfree: {encounters: ['wild']}, + weedle: {encounters: ['wild']}, + kakuna: {encounters: ['wild']}, + beedrill: {encounters: ['wild']}, + pidgey: {encounters: ['wild']}, + pidgeotto: {encounters: ['wild']}, + pidgeot: {encounters: ['wild']}, + rattata: {encounters: ['wild']}, + rattataalola: {encounters: ['wild']}, + raticate: {encounters: ['wild']}, + raticatealola: {encounters: ['wild']}, + spearow: {encounters: ['wild']}, + fearow: {encounters: ['wild']}, + ekans: {encounters: ['wild']}, + arbok: {encounters: ['wild']}, + pikachu: {encounters: ['wild']}, + raichu: {encounters: ['wild']}, + raichualola: {encounters: ['wild']}, + sandshrew: {encounters: ['wild']}, + sandshrewalola: {encounters: ['wild']}, + sandslash: {encounters: ['wild']}, + sandslashalola: {encounters: ['wild']}, + nidoranf: {encounters: ['wild']}, + nidorina: {encounters: ['wild']}, + nidoqueen: {encounters: ['wild']}, + nidoranm: {encounters: ['wild']}, + nidorino: {encounters: ['wild']}, + nidoking: {encounters: ['wild']}, + clefairy: {encounters: ['wild']}, + clefable: {encounters: ['wild']}, + vulpix: {encounters: ['wild']}, + vulpixalola: {encounters: ['wild']}, + ninetales: {encounters: ['wild']}, + ninetalesalola: {encounters: ['wild']}, + jigglypuff: {encounters: ['wild']}, + wigglytuff: {encounters: ['wild']}, + zubat: {encounters: ['wild']}, + golbat: {encounters: ['wild']}, + oddish: {encounters: ['wild']}, + gloom: {encounters: ['wild']}, + vileplume: {encounters: ['wild']}, + paras: {encounters: ['wild']}, + parasect: {encounters: ['wild']}, + venonat: {encounters: ['wild']}, + venomoth: {encounters: ['wild']}, + diglett: {encounters: ['wild']}, + diglettalola: {encounters: ['wild']}, + dugtrio: {encounters: ['wild']}, + dugtrioalola: {encounters: ['wild']}, + meowth: {encounters: ['wild']}, + meowthalola: {encounters: ['wild']}, + meowthgalar: {encounters: ['wild']}, + persian: {encounters: ['wild']}, + persianalola: {encounters: ['wild']}, + psyduck: {encounters: ['wild']}, + golduck: {encounters: ['wild']}, + mankey: {encounters: ['wild']}, + primeape: {encounters: ['wild']}, + growlithe: {encounters: ['wild']}, + growlithehisui: {encounters: ['egg', 'raid', 'research', 'noshiny']}, // wild encounter available on 2023-08-26 + arcanine: {encounters: ['wild']}, + arcaninehisui: {encounters: ['egg', 'raid', 'research', 'noshiny']}, // wild encounter available on 2023-08-26 + poliwag: {encounters: ['wild']}, + poliwhirl: {encounters: ['wild']}, + poliwrath: {encounters: ['wild']}, + abra: {encounters: ['wild']}, + kadabra: {encounters: ['wild']}, + alakazam: {encounters: ['wild']}, + machop: {encounters: ['wild']}, + machoke: {encounters: ['wild']}, + machamp: {encounters: ['wild']}, + bellsprout: {encounters: ['wild']}, + weepinbell: {encounters: ['wild']}, + victreebel: {encounters: ['wild']}, + tentacool: {encounters: ['wild']}, + tentacruel: {encounters: ['wild']}, + geodude: {encounters: ['wild']}, + geodudealola: {encounters: ['wild']}, + graveler: {encounters: ['wild']}, + graveleralola: {encounters: ['wild']}, + golem: {encounters: ['wild']}, + golemalola: {encounters: ['wild']}, + ponyta: {encounters: ['wild']}, + ponytagalar: {encounters: ['wild']}, + rapidash: {encounters: ['wild']}, + rapidashgalar: {encounters: ['wild']}, + slowpoke: {encounters: ['wild']}, + slowpokegalar: {encounters: ['wild']}, + slowbro: {encounters: ['wild']}, + slowbrogalar: {encounters: ['wild']}, + magnemite: {encounters: ['wild']}, + magneton: {encounters: ['wild']}, + farfetchd: {encounters: ['wild']}, + farfetchdgalar: {encounters: ['wild']}, + doduo: {encounters: ['wild']}, + dodrio: {encounters: ['wild']}, + seel: {encounters: ['wild']}, + dewgong: {encounters: ['wild']}, + grimer: {encounters: ['wild']}, + grimeralola: {encounters: ['wild']}, + muk: {encounters: ['wild']}, + mukalola: {encounters: ['wild']}, + shellder: {encounters: ['wild']}, + cloyster: {encounters: ['wild']}, + gastly: {encounters: ['wild']}, + haunter: {encounters: ['wild']}, + gengar: {encounters: ['wild']}, + onix: {encounters: ['wild']}, + drowzee: {encounters: ['wild']}, + hypno: {encounters: ['wild']}, + krabby: {encounters: ['wild']}, + kingler: {encounters: ['wild']}, + voltorb: {encounters: ['wild']}, + voltorbhisui: {encounters: ['wild', 'noshiny']}, + electrode: {encounters: ['wild']}, + electrodehisui: {encounters: ['wild', 'noshiny']}, + exeggcute: {encounters: ['wild']}, + exeggutor: {encounters: ['wild']}, + exeggutoralola: {encounters: ['wild']}, + cubone: {encounters: ['wild']}, + marowak: {encounters: ['wild']}, + marowakalola: {encounters: ['wild']}, + hitmonlee: {encounters: ['wild']}, + hitmonchan: {encounters: ['wild']}, + lickitung: {encounters: ['wild']}, + koffing: {encounters: ['wild']}, + weezing: {encounters: ['wild']}, + weezinggalar: {encounters: ['wild']}, + rhyhorn: {encounters: ['wild']}, + rhydon: {encounters: ['wild']}, + chansey: {encounters: ['wild']}, + tangela: {encounters: ['wild']}, + kangaskhan: {encounters: ['wild']}, + horsea: {encounters: ['wild']}, + seadra: {encounters: ['wild']}, + goldeen: {encounters: ['wild']}, + seaking: {encounters: ['wild']}, + staryu: {encounters: ['wild']}, + starmie: {encounters: ['wild']}, + mrmime: {encounters: ['wild']}, + mrmimegalar: {encounters: ['wild']}, + scyther: {encounters: ['wild']}, + jynx: {encounters: ['wild']}, + electabuzz: {encounters: ['wild']}, + magmar: {encounters: ['wild']}, + pinsir: {encounters: ['wild']}, + tauros: {encounters: ['wild']}, + magikarp: {encounters: ['wild']}, + gyarados: {encounters: ['wild']}, + ditto: {encounters: ['wild']}, + eevee: {encounters: ['wild']}, + vaporeon: {encounters: ['wild']}, + jolteon: {encounters: ['wild']}, + flareon: {encounters: ['wild']}, + porygon: {encounters: ['wild']}, + omanyte: {encounters: ['wild']}, + omastar: {encounters: ['wild']}, + kabuto: {encounters: ['wild']}, + kabutops: {encounters: ['wild']}, + aerodactyl: {encounters: ['wild']}, + snorlax: {encounters: ['wild']}, + articuno: {encounters: ['wild']}, + articunogalar: {encounters: ['wild']}, + zapdos: {encounters: ['wild']}, + zapdosgalar: {encounters: ['wild']}, + moltres: {encounters: ['wild']}, + moltresgalar: {encounters: ['wild']}, + dratini: {encounters: ['wild']}, + dragonair: {encounters: ['wild']}, + dragonite: {encounters: ['wild']}, + mewtwo: { + encounters: ['giovanni', 'raid', 'research', 'specialtrade'], + LGPERestrictiveMoves: { + amnesia: 44, + swift: 33, + psybeam: 22, + mist: 11, + teleport: 1, + confuseray: 1, + confusion: 1, + disable: 1, + }, + }, + mew: { + encounters: ['research', 'notrade'], + LGPERestrictiveMoves: { + barrier: 44, + psywave: 33, + amnesia: 22, + swift: 11, + pound: 1, + confusion: 1, + mimic: 1, + }, + }, + chikorita: {encounters: ['wild']}, + bayleef: {encounters: ['wild']}, + meganium: {encounters: ['wild']}, + cyndaquil: {encounters: ['wild']}, + quilava: {encounters: ['wild']}, + typhlosion: {encounters: ['wild']}, + totodile: {encounters: ['wild']}, + croconaw: {encounters: ['wild']}, + feraligatr: {encounters: ['wild']}, + sentret: {encounters: ['wild']}, + furret: {encounters: ['wild']}, + hoothoot: {encounters: ['wild']}, + noctowl: {encounters: ['wild']}, + ledyba: {encounters: ['wild']}, + ledian: {encounters: ['wild']}, + spinarak: {encounters: ['wild']}, + ariados: {encounters: ['wild']}, + crobat: {encounters: ['wild']}, + chinchou: {encounters: ['wild']}, + lanturn: {encounters: ['wild']}, + pichu: {encounters: ['egg']}, + cleffa: {encounters: ['egg']}, + igglybuff: {encounters: ['egg']}, + togepi: {encounters: ['egg']}, + togetic: {encounters: ['wild']}, + natu: {encounters: ['wild']}, + xatu: {encounters: ['wild']}, + mareep: {encounters: ['wild']}, + flaaffy: {encounters: ['wild']}, + ampharos: {encounters: ['wild']}, + bellossom: {encounters: ['wild']}, + marill: {encounters: ['wild']}, + azumarill: {encounters: ['wild']}, + sudowoodo: {encounters: ['wild']}, + politoed: {encounters: ['wild']}, + hoppip: {encounters: ['wild']}, + skiploom: {encounters: ['wild']}, + jumpluff: {encounters: ['wild']}, + aipom: {encounters: ['wild']}, + sunkern: {encounters: ['wild']}, + sunflora: {encounters: ['wild']}, + yanma: {encounters: ['wild']}, + wooper: {encounters: ['wild']}, + quagsire: {encounters: ['wild']}, + espeon: {encounters: ['wild']}, + umbreon: {encounters: ['wild']}, + murkrow: {encounters: ['wild']}, + slowking: {encounters: ['wild']}, + slowkinggalar: {encounters: ['wild']}, + misdreavus: {encounters: ['wild']}, + unown: {encounters: ['wild']}, + unownb: {encounters: ['wild']}, + unownc: {encounters: ['wild']}, + unownd: {encounters: ['wild']}, + unowne: {encounters: ['wild']}, + unownf: {encounters: ['wild']}, + unowng: {encounters: ['wild']}, + unownh: {encounters: ['wild']}, + unowni: {encounters: ['wild']}, + unownj: {encounters: ['wild']}, + unownk: {encounters: ['wild', 'noshiny']}, + unownl: {encounters: ['wild']}, + unownm: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + unownn: {encounters: ['wild']}, + unowno: {encounters: ['wild']}, + unownp: {encounters: ['wild']}, + unownq: {encounters: ['wild', 'noshiny']}, + unownr: {encounters: ['wild']}, + unowns: {encounters: ['wild']}, + unownt: {encounters: ['wild']}, + unownu: {encounters: ['wild']}, + unownv: {encounters: ['wild']}, + unownw: {encounters: ['wild', 'noshiny']}, + unownx: {encounters: ['wild']}, + unowny: {encounters: ['wild']}, + unownz: {encounters: ['wild', 'noshiny']}, + unownexclamation: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + unownquestion: {encounters: ['wild', 'noshiny']}, + wobbuffet: {encounters: ['wild']}, + girafarig: {encounters: ['wild']}, + pineco: {encounters: ['wild']}, + forretress: {encounters: ['wild']}, + dunsparce: {encounters: ['wild']}, + gligar: {encounters: ['wild']}, + steelix: {encounters: ['wild']}, + snubbull: {encounters: ['wild']}, + granbull: {encounters: ['wild']}, + qwilfish: {encounters: ['wild']}, + qwilfishhisui: {encounters: ['wild', 'noshiny']}, + scizor: {encounters: ['wild']}, + shuckle: {encounters: ['wild']}, + heracross: {encounters: ['wild']}, + sneasel: {encounters: ['wild']}, + sneaselhisui: {encounters: ['wild', 'noshiny']}, + teddiursa: {encounters: ['wild']}, + ursaring: {encounters: ['wild']}, + slugma: {encounters: ['wild']}, + magcargo: {encounters: ['wild']}, + swinub: {encounters: ['wild']}, + piloswine: {encounters: ['wild']}, + corsola: {encounters: ['wild']}, + remoraid: {encounters: ['wild']}, + octillery: {encounters: ['wild']}, + delibird: {encounters: ['wild']}, + mantine: {encounters: ['wild']}, + skarmory: {encounters: ['wild']}, + houndour: {encounters: ['wild']}, + houndoom: {encounters: ['wild']}, + kingdra: {encounters: ['wild']}, + phanpy: {encounters: ['wild']}, + donphan: {encounters: ['wild']}, + porygon2: {encounters: ['wild']}, + stantler: {encounters: ['wild']}, + smeargle: {encounters: ['wild']}, + tyrogue: {encounters: ['egg']}, + hitmontop: {encounters: ['wild']}, + smoochum: {encounters: ['egg', 'research']}, + elekid: {encounters: ['egg', 'research']}, + magby: {encounters: ['egg']}, + miltank: {encounters: ['wild']}, + blissey: {encounters: ['wild']}, + raikou: {encounters: ['wild']}, + entei: {encounters: ['wild']}, + suicune: {encounters: ['wild']}, + larvitar: {encounters: ['wild']}, + pupitar: {encounters: ['wild']}, + tyranitar: {encounters: ['wild']}, + lugia: {encounters: ['giovanni', 'raid', 'research', 'specialtrade']}, + hooh: {encounters: ['giovanni', 'raid', 'research', 'specialtrade']}, + celebi: {encounters: ['research', 'notrade']}, + treecko: {encounters: ['wild']}, + grovyle: {encounters: ['wild']}, + sceptile: {encounters: ['wild']}, + torchic: {encounters: ['wild']}, + combusken: {encounters: ['wild']}, + blaziken: {encounters: ['wild']}, + mudkip: {encounters: ['wild']}, + marshtomp: {encounters: ['wild']}, + swampert: {encounters: ['wild']}, + poochyena: {encounters: ['wild']}, + mightyena: {encounters: ['wild']}, + zigzagoon: {encounters: ['wild']}, + zigzagoongalar: {encounters: ['wild']}, + linoone: {encounters: ['wild']}, + linoonegalar: {encounters: ['wild']}, + wurmple: {encounters: ['wild']}, + silcoon: {encounters: ['wild']}, + beautifly: {encounters: ['wild']}, + cascoon: {encounters: ['wild']}, + dustox: {encounters: ['wild']}, + lotad: {encounters: ['wild']}, + lombre: {encounters: ['wild']}, + ludicolo: {encounters: ['wild']}, + seedot: {encounters: ['wild']}, + nuzleaf: {encounters: ['wild']}, + shiftry: {encounters: ['wild']}, + taillow: {encounters: ['wild']}, + swellow: {encounters: ['wild']}, + wingull: {encounters: ['wild']}, + pelipper: {encounters: ['wild']}, + ralts: {encounters: ['wild']}, + kirlia: {encounters: ['wild']}, + gardevoir: {encounters: ['wild']}, + surskit: {encounters: ['wild']}, + masquerain: {encounters: ['wild']}, + shroomish: {encounters: ['wild']}, + breloom: {encounters: ['wild']}, + slakoth: {encounters: ['wild']}, + vigoroth: {encounters: ['wild']}, + slaking: {encounters: ['wild']}, + nincada: {encounters: ['wild']}, + ninjask: {encounters: ['wild']}, + shedinja: {encounters: ['research']}, + whismur: {encounters: ['wild']}, + loudred: {encounters: ['wild']}, + exploud: {encounters: ['wild']}, + makuhita: {encounters: ['wild']}, + hariyama: {encounters: ['wild']}, + azurill: {encounters: ['egg']}, + nosepass: {encounters: ['wild']}, + skitty: {encounters: ['wild']}, + delcatty: {encounters: ['wild']}, + sableye: {encounters: ['wild']}, + mawile: {encounters: ['wild']}, + aron: {encounters: ['wild']}, + lairon: {encounters: ['wild']}, + aggron: {encounters: ['wild']}, + meditite: {encounters: ['wild']}, + medicham: {encounters: ['wild']}, + electrike: {encounters: ['wild']}, + manectric: {encounters: ['wild']}, + plusle: {encounters: ['wild']}, + minun: {encounters: ['wild']}, + volbeat: {encounters: ['wild']}, + illumise: {encounters: ['wild']}, + roselia: {encounters: ['wild']}, + gulpin: {encounters: ['wild']}, + swalot: {encounters: ['wild']}, + carvanha: {encounters: ['wild']}, + sharpedo: {encounters: ['wild']}, + wailmer: {encounters: ['wild']}, + wailord: {encounters: ['wild']}, + numel: {encounters: ['wild']}, + camerupt: {encounters: ['wild']}, + torkoal: {encounters: ['wild']}, + spoink: {encounters: ['wild']}, + grumpig: {encounters: ['wild']}, + trapinch: {encounters: ['wild']}, + vibrava: {encounters: ['wild']}, + flygon: {encounters: ['wild']}, + cacnea: {encounters: ['wild']}, + cacturne: {encounters: ['wild']}, + swablu: {encounters: ['wild']}, + altaria: {encounters: ['wild']}, + zangoose: {encounters: ['wild']}, + seviper: {encounters: ['wild']}, + lunatone: {encounters: ['wild']}, + solrock: {encounters: ['wild']}, + barboach: {encounters: ['wild']}, + whiscash: {encounters: ['wild']}, + corphish: {encounters: ['wild']}, + crawdaunt: {encounters: ['wild']}, + baltoy: {encounters: ['wild']}, + claydol: {encounters: ['wild']}, + lileep: {encounters: ['wild']}, + cradily: {encounters: ['wild']}, + anorith: {encounters: ['wild']}, + armaldo: {encounters: ['wild']}, + feebas: {encounters: ['wild']}, + milotic: {encounters: ['wild']}, + castform: {encounters: ['wild']}, + kecleon: {encounters: ['wild']}, + shuppet: {encounters: ['wild']}, + banette: {encounters: ['wild']}, + duskull: {encounters: ['wild']}, + dusclops: {encounters: ['wild']}, + tropius: {encounters: ['wild']}, + chimecho: {encounters: ['wild']}, + absol: {encounters: ['wild']}, + wynaut: {encounters: ['egg']}, + snorunt: {encounters: ['wild']}, + glalie: {encounters: ['wild']}, + spheal: {encounters: ['wild']}, + sealeo: {encounters: ['wild']}, + walrein: {encounters: ['wild']}, + clamperl: {encounters: ['wild']}, + gorebyss: {encounters: ['wild']}, + huntail: {encounters: ['wild']}, + relicanth: {encounters: ['wild']}, + luvdisc: {encounters: ['wild']}, + bagon: {encounters: ['wild']}, + shelgon: {encounters: ['wild']}, + salamence: {encounters: ['wild']}, + beldum: {encounters: ['wild']}, + metang: {encounters: ['wild']}, + metagross: {encounters: ['wild']}, + regirock: {encounters: ['giovanni', 'raid', 'research', 'specialtrade']}, + regice: {encounters: ['giovanni', 'raid', 'research', 'specialtrade']}, + registeel: {encounters: ['giovanni', 'raid', 'research', 'specialtrade']}, + latias: {encounters: ['wild']}, + latios: {encounters: ['wild']}, + kyogre: {encounters: ['raid', 'research', 'specialtrade']}, + groudon: {encounters: ['raid', 'research', 'specialtrade']}, + rayquaza: {encounters: ['raid', 'research', 'specialtrade']}, + jirachi: {encounters: ['research', 'notrade']}, + deoxys: {encounters: ['raid', 'specialtrade']}, + turtwig: {encounters: ['wild']}, + grotle: {encounters: ['wild']}, + torterra: {encounters: ['wild']}, + chimchar: {encounters: ['wild']}, + monferno: {encounters: ['wild']}, + infernape: {encounters: ['wild']}, + piplup: {encounters: ['wild']}, + prinplup: {encounters: ['wild']}, + empoleon: {encounters: ['wild']}, + starly: {encounters: ['wild']}, + staravia: {encounters: ['wild']}, + staraptor: {encounters: ['wild']}, + bidoof: {encounters: ['wild']}, + bibarel: {encounters: ['wild']}, + kricketot: {encounters: ['wild']}, + kricketune: {encounters: ['wild']}, + shinx: {encounters: ['wild']}, + luxio: {encounters: ['wild']}, + luxray: {encounters: ['wild']}, + budew: {encounters: ['egg']}, + roserade: {encounters: ['wild']}, + cranidos: {encounters: ['wild']}, + rampardos: {encounters: ['wild']}, + shieldon: {encounters: ['wild']}, + bastiodon: {encounters: ['wild']}, + burmy: {encounters: ['wild']}, + wormadam: {encounters: ['wild']}, + wormadamsandy: {encounters: ['wild']}, + wormadamtrash: {encounters: ['wild']}, + mothim: {encounters: ['wild']}, + combee: {encounters: ['wild']}, + vespiquen: {encounters: ['wild']}, + pachirisu: {encounters: ['wild', 'noshiny']}, + buizel: {encounters: ['wild']}, + floatzel: {encounters: ['wild']}, + cherubi: {encounters: ['wild']}, + shellos: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + shelloseast: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + gastrodon: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + gastrodoneast: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + ambipom: {encounters: ['wild']}, + drifloon: {encounters: ['wild']}, + drifblim: {encounters: ['wild']}, + buneary: {encounters: ['wild']}, + lopunny: {encounters: ['wild']}, + mismagius: {encounters: ['wild']}, + honchkrow: {encounters: ['wild']}, + glameow: {encounters: ['wild']}, + purugly: {encounters: ['wild']}, + chingling: {encounters: ['egg', 'noshiny']}, + stunky: {encounters: ['wild', 'noshiny']}, + skuntank: {encounters: ['wild', 'noshiny']}, + bronzor: {encounters: ['wild']}, + bronzong: {encounters: ['wild']}, + bonsly: {encounters: ['egg']}, + mimejr: {encounters: ['egg']}, + happiny: {encounters: ['egg']}, + chatot: {encounters: ['wild', 'noshiny']}, + spiritomb: {encounters: ['research']}, + gible: {encounters: ['wild']}, + gabite: {encounters: ['wild']}, + garchomp: {encounters: ['wild']}, + munchlax: {encounters: ['egg']}, + riolu: {encounters: ['egg']}, + lucario: {encounters: ['egg', 'research']}, // wild encounter available on 2023-08-18 + hippopotas: {encounters: ['wild']}, + hippowdon: {encounters: ['wild']}, + skorupi: {encounters: ['wild']}, + drapion: {encounters: ['wild']}, + croagunk: {encounters: ['wild']}, + toxicroak: {encounters: ['wild']}, + carnivine: {encounters: ['wild', 'noshiny']}, + finneon: {encounters: ['wild']}, + lumineon: {encounters: ['wild']}, + mantyke: {encounters: ['egg']}, + snover: {encounters: ['wild']}, + abomasnow: {encounters: ['wild']}, + weavile: {encounters: ['wild']}, + magnezone: {encounters: ['wild']}, + lickilicky: {encounters: ['wild']}, + rhyperior: {encounters: ['wild']}, + tangrowth: {encounters: ['wild']}, + electivire: {encounters: ['wild']}, + magmortar: {encounters: ['wild']}, + togekiss: {encounters: ['wild']}, + yanmega: {encounters: ['wild']}, + leafeon: {encounters: ['wild']}, + glaceon: {encounters: ['wild']}, + gliscor: {encounters: ['wild']}, + mamoswine: {encounters: ['wild']}, + porygonz: {encounters: ['wild']}, + gallade: {encounters: ['wild']}, + probopass: {encounters: ['wild']}, + dusknoir: {encounters: ['wild']}, + froslass: {encounters: ['wild']}, + rotom: {encounters: ['wild', 'noshiny']}, + uxie: {encounters: ['wild']}, + mesprit: {encounters: ['wild']}, + azelf: {encounters: ['wild']}, + dialga: {encounters: ['raid', 'specialtrade']}, + palkia: {encounters: ['raid', 'specialtrade']}, + heatran: {encounters: ['raid', 'specialtrade']}, + regigigas: {encounters: ['raid', 'research', 'specialtrade']}, + giratina: {encounters: ['raid', 'specialtrade']}, + cresselia: {encounters: ['raid', 'research', 'specialtrade']}, + darkrai: {encounters: ['raid', 'notrade']}, + shaymin: {encounters: ['research', 'noshiny', 'notrade']}, + victini: {encounters: ['research', 'noshiny', 'notrade']}, + snivy: {encounters: ['wild']}, + servine: {encounters: ['wild']}, + serperior: {encounters: ['wild']}, + tepig: {encounters: ['wild']}, + pignite: {encounters: ['wild']}, + emboar: {encounters: ['wild']}, + oshawott: {encounters: ['wild']}, + dewott: {encounters: ['wild']}, + samurott: {encounters: ['wild']}, + patrat: {encounters: ['wild']}, + watchog: {encounters: ['wild']}, + lillipup: {encounters: ['wild']}, + herdier: {encounters: ['wild']}, + stoutland: {encounters: ['wild']}, + purrloin: {encounters: ['wild']}, + liepard: {encounters: ['wild']}, + pansage: {encounters: ['wild']}, + simisage: {encounters: ['wild']}, + pansear: {encounters: ['wild']}, + simisear: {encounters: ['wild']}, + panpour: {encounters: ['wild']}, + simipour: {encounters: ['wild']}, + munna: {encounters: ['wild']}, + musharna: {encounters: ['wild']}, + pidove: {encounters: ['wild']}, + tranquill: {encounters: ['wild']}, + unfezant: {encounters: ['wild']}, + blitzle: {encounters: ['wild']}, + zebstrika: {encounters: ['wild']}, + roggenrola: {encounters: ['wild']}, + boldore: {encounters: ['wild']}, + gigalith: {encounters: ['wild']}, + woobat: {encounters: ['wild']}, + swoobat: {encounters: ['wild']}, + drilbur: {encounters: ['wild']}, + exacdrill: {encounters: ['wild']}, + audino: {encounters: ['wild']}, + timburr: {encounters: ['egg', 'raid']}, // wild encounter available on 2023-08-26 + gurdurr: {encounters: ['egg', 'raid']}, // wild encounter available on 2023-08-26 + conkeldurr: {encounters: ['egg', 'raid']}, // wild encounter available on 2023-08-26 + tympole: {encounters: ['wild']}, + palpitoad: {encounters: ['wild']}, + seismitoad: {encounters: ['wild']}, + throh: {encounters: ['wild']}, + sawk: {encounters: ['wild']}, + sewaddle: {encounters: ['wild']}, + swadloon: {encounters: ['wild']}, + leavanny: {encounters: ['wild']}, + venipede: {encounters: ['wild']}, + whirlipede: {encounters: ['wild']}, + scolipede: {encounters: ['wild']}, + cottonee: {encounters: ['wild']}, + whimsicott: {encounters: ['wild']}, + petilil: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + lilligant: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + basculin: {encounters: ['wild', 'noshiny']}, + basculinbluestriped: {encounters: ['wild', 'noshiny']}, + sandile: {encounters: ['12kmegg', 'research', 'noshiny']}, + krokorok: {encounters: ['12kmegg', 'research', 'noshiny']}, + krookodile: {encounters: ['12kmegg', 'research', 'noshiny']}, + darumaka: {encounters: ['wild']}, + darumakagalar: {encounters: ['wild']}, + darmanitan: {encounters: ['wild']}, + darmanitangalar: {encounters: ['wild']}, + maractus: {encounters: ['wild', 'noshiny']}, + dwebble: {encounters: ['wild']}, + crustle: {encounters: ['wild']}, + scraggy: {encounters: ['wild', 'noshiny']}, + scrafty: {encounters: ['wild', 'noshiny']}, + sigilyph: {encounters: ['wild', 'noshiny']}, + yamask: {encounters: ['wild']}, + yamaskgalar: {encounters: ['egg', 'raid', 'research']}, + cofagrigus: {encounters: ['wild']}, + tirtouga: {encounters: ['wild']}, + carracosta: {encounters: ['wild']}, + archen: {encounters: ['wild']}, + archeops: {encounters: ['wild']}, + trubbish: {encounters: ['wild']}, + garbodor: {encounters: ['wild']}, + zorua: {encounters: ['wild', 'noshiny']}, + zoroark: {encounters: ['wild', 'noshiny']}, + minccino: {encounters: ['wild']}, + cinccino: {encounters: ['wild']}, + gothita: {encounters: ['wild', 'noshiny']}, + gothorita: {encounters: ['wild', 'noshiny']}, + gothitelle: {encounters: ['wild', 'noshiny']}, + solosis: {encounters: ['wild', 'noshiny']}, + duosion: {encounters: ['wild', 'noshiny']}, + reuniclus: {encounters: ['wild', 'noshiny']}, + ducklett: {encounters: ['wild', 'noshiny']}, + swanna: {encounters: ['wild', 'noshiny']}, + vanillite: {encounters: ['wild', 'noshiny']}, + vanillish: {encounters: ['wild', 'noshiny']}, + vanilluxe: {encounters: ['wild', 'noshiny']}, + deerling: {encounters: ['wild', 'noshiny']}, + deerlingsummer: {encounters: ['wild', 'noshiny']}, + deerlingautumn: {encounters: ['wild', 'noshiny']}, + deerlingwinter: {encounters: ['wild', 'noshiny']}, + sawsbuck: {encounters: ['wild', 'noshiny']}, + sawsbucksummer: {encounters: ['wild', 'noshiny']}, + sawsbuckautumn: {encounters: ['wild', 'noshiny']}, + sawsbuckwinter: {encounters: ['wild', 'noshiny']}, + emolga: {encounters: ['wild', 'noshiny']}, + karrablast: {encounters: ['wild']}, + escavalier: {encounters: ['wild']}, + foongus: {encounters: ['wild']}, + amoonguss: {encounters: ['wild']}, + frillish: {encounters: ['wild']}, + jellicent: {encounters: ['wild']}, + alomomola: {encounters: ['wild']}, + joltik: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + galvantula: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + ferroseed: {encounters: ['wild']}, + ferrothorn: {encounters: ['wild']}, + klink: {encounters: ['wild']}, + klang: {encounters: ['wild']}, + klinklang: {encounters: ['wild']}, + tynamo: {encounters: ['wild', 'noshiny']}, + eelektrik: {encounters: ['wild', 'noshiny']}, + eelektross: {encounters: ['wild', 'noshiny']}, + elgyem: {encounters: ['wild']}, + beheeyem: {encounters: ['wild']}, + litwick: {encounters: ['wild']}, + lampent: {encounters: ['wild']}, + chandelure: {encounters: ['wild']}, + axew: {encounters: ['wild']}, + fraxure: {encounters: ['wild']}, + haxorus: {encounters: ['wild']}, + cubchoo: {encounters: ['wild']}, + beartic: {encounters: ['wild']}, + cryogonal: {encounters: ['wild', 'noshiny']}, + shelmet: {encounters: ['wild']}, + accelgor: {encounters: ['wild']}, + stunfisk: {encounters: ['wild']}, + stunfiskgalar: {encounters: ['wild']}, + mienfoo: {encounters: ['wild', 'noshiny']}, + mienshao: {encounters: ['wild', 'noshiny']}, + druddigon: {encounters: ['raid', 'research']}, + golett: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-18 + golurk: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-18 + pawniard: {encounters: ['12kmegg', 'research']}, // wild encounter available on 2023-08-18 + bisharp: {encounters: ['12kmegg', 'research']}, // wild encounter available on 2023-08-18 + bouffalant: {encounters: ['wild', 'noshiny']}, + rufflet: {encounters: ['wild']}, + braviary: {encounters: ['wild']}, + braviaryhisui: {encounters: ['raid']}, + vullaby: {encounters: ['wild']}, + mandibuzz: {encounters: ['wild']}, + heatmor: {encounters: ['wild']}, + durant: {encounters: ['wild']}, + deino: {encounters: ['wild']}, + zweilous: {encounters: ['wild']}, + hydreigon: {encounters: ['wild']}, + larvesta: {encounters: ['egg', 'noshiny']}, + volcarona: {encounters: ['egg', 'noshiny']}, + cobalion: {encounters: ['raid', 'specialtrade']}, + terrakion: {encounters: ['raid', 'specialtrade']}, + virizion: {encounters: ['raid', 'specialtrade']}, + tornadus: {encounters: ['raid', 'specialtrade']}, + thundurus: {encounters: ['raid', 'specialtrade']}, + reshiram: {encounters: ['raid', 'specialtrade']}, + zekrom: {encounters: ['raid', 'specialtrade']}, + landorus: {encounters: ['raid', 'specialtrade']}, + kyurem: {encounters: ['raid', 'specialtrade']}, + // Kyurem-Black/White are not directly obtained from Pokemon GO but should be able to have legal Pokemon GO origin + kyuremblack: {encounters: ['raid', 'specialtrade']}, + kyuremwhite: {encounters: ['raid', 'specialtrade']}, + keldeo: {encounters: ['research', 'noshiny', 'notrade']}, + meloetta: {encounters: ['research', 'noshiny', 'notrade']}, + genesect: {encounters: ['raid', 'research', 'notrade']}, + chespin: {encounters: ['wild']}, + quilladin: {encounters: ['wild']}, + chesnaught: {encounters: ['wild']}, + fennekin: {encounters: ['wild']}, + braixen: {encounters: ['wild']}, + delphox: {encounters: ['wild']}, + froakie: {encounters: ['wild', 'noshiny']}, + frogadier: {encounters: ['wild', 'noshiny']}, + greninja: {encounters: ['wild', 'noshiny']}, + bunnelby: {encounters: ['wild']}, + diggersby: {encounters: ['wild']}, + fletchling: {encounters: ['wild']}, + fletchinder: {encounters: ['wild']}, + talonflame: {encounters: ['wild']}, + // Scatterbug is actually obtained in a special type of encounter, + // but the level and IV floors are the same as research encounters + scatterbug: {encounters: ['research', 'noshiny']}, + spewpa: {encounters: ['research', 'noshiny']}, + vivillon: {encounters: ['research', 'noshiny']}, + vivillonarchipelago: {encounters: ['research', 'noshiny']}, + vivilloncontinent: {encounters: ['research', 'noshiny']}, + vivillonelegant: {encounters: ['research', 'noshiny']}, + vivillongarden: {encounters: ['research', 'noshiny']}, + vivillonhighplains: {encounters: ['research', 'noshiny']}, + vivillonicysnow: {encounters: ['research', 'noshiny']}, + vivillonjungle: {encounters: ['research', 'noshiny']}, + vivillonmarine: {encounters: ['research', 'noshiny']}, + vivillonmodern: {encounters: ['research', 'noshiny']}, + vivillonmonsoon: {encounters: ['research', 'noshiny']}, + vivillonocean: {encounters: ['research', 'noshiny']}, + vivillonpolar: {encounters: ['research', 'noshiny']}, + vivillonriver: {encounters: ['research', 'noshiny']}, + vivillonsandstorm: {encounters: ['research', 'noshiny']}, + vivillonsavanna: {encounters: ['research', 'noshiny']}, + vivillonsun: {encounters: ['research', 'noshiny']}, + vivillontundra: {encounters: ['research', 'noshiny']}, + litleo: {encounters: ['wild']}, + pyroar: {encounters: ['wild']}, + flabebe: {encounters: ['wild', 'noshiny']}, + flabebeblue: {encounters: ['wild', 'noshiny']}, + flabebeorange: {encounters: ['wild', 'noshiny']}, + flabebewhite: {encounters: ['wild', 'noshiny']}, + flabebeyellow: {encounters: ['wild', 'noshiny']}, + floette: {encounters: ['wild', 'noshiny']}, + floetteblue: {encounters: ['wild', 'noshiny']}, + floetteorange: {encounters: ['wild', 'noshiny']}, + floettewhite: {encounters: ['wild', 'noshiny']}, + floetteyellow: {encounters: ['wild', 'noshiny']}, + florges: {encounters: ['wild', 'noshiny']}, + florgesblue: {encounters: ['wild', 'noshiny']}, + florgesorange: {encounters: ['wild', 'noshiny']}, + florgeswhite: {encounters: ['wild', 'noshiny']}, + florgesyellow: {encounters: ['wild', 'noshiny']}, + pancham: {encounters: ['wild', '12kmegg', 'raid', 'research', 'nowildshiny']}, + pangoro: {encounters: ['wild', '12kmegg', 'raid', 'research', 'nowildshiny']}, + furfrou: {encounters: ['wild']}, + furfroudandy: {encounters: ['wild']}, + furfroudebutante: {encounters: ['wild']}, + furfroudiamond: {encounters: ['wild']}, + furfrouheart: {encounters: ['wild']}, + furfroukabuki: {encounters: ['wild']}, + furfroulareine: {encounters: ['wild']}, + furfroumatron: {encounters: ['wild']}, + furfroupharaoh: {encounters: ['wild']}, + furfroustar: {encounters: ['wild']}, + espurr: {encounters: ['wild']}, + meowstic: {encounters: ['wild']}, + meowsticf: {encounters: ['wild']}, + spritzee: {encounters: ['wild']}, + aromatisse: {encounters: ['wild']}, + swirlix: {encounters: ['wild']}, + slurpuff: {encounters: ['wild']}, + inkay: {encounters: ['wild']}, + malamar: {encounters: ['wild']}, + binacle: {encounters: ['wild']}, + barbaracle: {encounters: ['wild']}, + skrelp: {encounters: ['wild', 'noshiny']}, + dragalge: {encounters: ['wild', 'noshiny']}, + clauncher: {encounters: ['wild']}, + clawitzer: {encounters: ['wild']}, + helioptile: {encounters: ['wild']}, + heliolisk: {encounters: ['wild']}, + tyrunt: {encounters: ['wild', 'noshiny']}, + tyrantrum: {encounters: ['wild', 'noshiny']}, + amaura: {encounters: ['wild', 'noshiny']}, + aurorus: {encounters: ['wild', 'noshiny']}, + sylveon: {encounters: ['wild']}, + hawlucha: {encounters: ['wild', 'noshiny']}, + dedenne: {encounters: ['wild']}, + carbink: {encounters: ['research', 'noshiny']}, + goomy: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + sliggoo: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + goodra: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + klefki: {encounters: ['wild', 'noshiny']}, + phantump: {encounters: ['wild', 'noshiny']}, + trevenant: {encounters: ['wild', 'noshiny']}, + pumpkaboo: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + pumpkaboolarge: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + pumpkaboosmall: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + pumpkaboosuper: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + gourgeist: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + gourgeistlarge: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + gourgeistsmall: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + gourgeistsuper: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + bergmite: {encounters: ['wild']}, + avalugg: {encounters: ['wild']}, + avalugghisui: {encounters: ['raid']}, + noibat: {encounters: ['wild']}, + noivern: {encounters: ['wild']}, + xerneas: {encounters: ['raid', 'specialtrade']}, + yveltal: {encounters: ['raid', 'specialtrade']}, + // zygarde: {encounters: ['research', 'noshiny']}, trading/transferring may be made available in the future + // diancie: {encounters: ['research', 'noshiny', 'notrade']}, transferring may be made available in the future + hoopa: {encounters: ['raid', 'research', 'noshiny', 'notrade']}, + rowlet: {encounters: ['wild', 'noshiny']}, + dartrix: {encounters: ['wild', 'noshiny']}, + decidueye: {encounters: ['wild', 'noshiny']}, + litten: {encounters: ['wild', 'noshiny']}, + torracat: {encounters: ['wild', 'noshiny']}, + incineroar: {encounters: ['wild', 'noshiny']}, + popplio: {encounters: ['wild', 'noshiny']}, + brionne: {encounters: ['wild', 'noshiny']}, + primarina: {encounters: ['wild', 'noshiny']}, + pikipek: {encounters: ['wild', 'noshiny']}, + trumbeak: {encounters: ['wild', 'noshiny']}, + toucannon: {encounters: ['wild', 'noshiny']}, + yungoos: {encounters: ['wild']}, + gumshoos: {encounters: ['wild']}, + grubbin: {encounters: ['wild', 'noshiny']}, + charjabug: {encounters: ['wild', 'noshiny']}, + vikavolt: {encounters: ['wild', 'noshiny']}, + crabrawler: {encounters: ['wild', 'noshiny']}, + crabominable: {encounters: ['wild', 'noshiny']}, + oricorio: {encounters: ['wild', 'noshiny']}, + cutiefly: {encounters: ['wild', 'noshiny']}, + ribombee: {encounters: ['wild', 'noshiny']}, + rockruff: {encounters: ['wild']}, + lycanroc: {encounters: ['wild']}, + lycanrocmidnight: {encounters: ['wild']}, + mareanie: {encounters: ['wild', 'noshiny']}, + toxapex: {encounters: ['wild', 'noshiny']}, + dewpider: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + araquanid: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-04 + fomantis: {encounters: ['wild']}, + lurantis: {encounters: ['wild']}, + morelull: {encounters: ['wild', 'noshiny']}, + shiinotic: {encounters: ['wild', 'noshiny']}, + salandit: {encounters: ['12kmegg', 'noshiny']}, + salazzle: {encounters: ['12kmegg', 'noshiny']}, + stufful: {encounters: ['wild']}, + bewear: {encounters: ['wild']}, + bounsweet: {encounters: ['wild', 'noshiny']}, + steenee: {encounters: ['wild', 'noshiny']}, + tsareena: {encounters: ['wild', 'noshiny']}, + comfey: {encounters: ['wild', 'noshiny']}, + oranguru: {encounters: ['wild', 'noshiny']}, // shiny available on 2023-08-26 + wimpod: {encounters: ['wild', 'noshiny']}, + golisopod: {encounters: ['wild', 'noshiny']}, + sandygast: {encounters: ['raid', 'research', 'noshiny']}, + palossand: {encounters: ['raid', 'research', 'noshiny']}, + komala: {encounters: ['wild', 'noshiny']}, + turtonator: {encounters: ['raid', 'research']}, + togedemaru: {encounters: ['wild', 'noshiny']}, + bruxish: {encounters: ['wild', 'noshiny']}, + jangmoo: {encounters: ['wild', 'noshiny']}, + hakamoo: {encounters: ['wild', 'noshiny']}, + kommoo: {encounters: ['wild', 'noshiny']}, + tapukoko: {encounters: ['raid']}, + tapulele: {encounters: ['raid']}, + tapubulu: {encounters: ['raid']}, + tapufini: {encounters: ['raid']}, + cosmog: {encounters: ['research', 'noshiny', 'specialtrade']}, + cosmoem: {encounters: ['research', 'noshiny', 'specialtrade']}, + solgaleo: {encounters: ['research', 'noshiny', 'specialtrade']}, + lunala: {encounters: ['research', 'noshiny', 'specialtrade']}, + nihilego: {encounters: ['raid', 'research', 'specialtrade']}, + buzzwole: {encounters: ['raid', 'research', 'noshiny', 'specialtrade']}, + pheromosa: {encounters: ['raid', 'research', 'noshiny', 'specialtrade']}, + xurkitree: {encounters: ['raid', 'research', 'noshiny', 'specialtrade']}, + celesteela: {encounters: ['raid', 'research', 'noshiny', 'specialtrade']}, + kartana: {encounters: ['raid', 'research', 'noshiny', 'specialtrade']}, + guzzlord: {encounters: ['raid', 'research', 'noshiny', 'specialtrade']}, + meltan: {encounters: ['wild']}, + melmetal: {encounters: ['wild']}, + skwovet: {encounters: ['wild', 'noshiny']}, + greedent: {encounters: ['wild', 'noshiny']}, + obstagoon: {encounters: ['wild']}, + perrserker: {encounters: ['wild']}, + sirfetchd: {encounters: ['wild']}, + mrrime: {encounters: ['wild']}, + runerigus: {encounters: ['egg', 'raid', 'research']}, + falinks: {encounters: ['wild', 'noshiny']}, + zacian: {encounters: ['raid', 'noshiny', 'specialtrade']}, + zamazenta: {encounters: ['raid', 'noshiny', 'specialtrade']}, + zarude: {encounters: ['research', 'noshiny', 'notrade']}, + regieleki: {encounters: ['raid', 'noshiny', 'specialtrade']}, + regidrago: {encounters: ['raid', 'noshiny', 'specialtrade']}, + kleavor: {encounters: ['wild']}, + ursaluna: {encounters: ['wild']}, + sneasler: {encounters: ['wild', 'noshiny']}, + overqwil: {encounters: ['wild', 'noshiny']}, + gimmighoulroaming: {encounters: ['wild', 'noshiny']}, + gholdengo: {encounters: ['wild', 'noshiny']}, +}; diff --git a/data/random-battles/gen1/data.json b/data/random-battles/gen1/data.json new file mode 100644 index 000000000000..94e121b00020 --- /dev/null +++ b/data/random-battles/gen1/data.json @@ -0,0 +1,721 @@ +{ + "bulbasaur": { + "level": 89, + "moves": ["bodyslam", "razorleaf", "sleeppowder", "swordsdance"] + }, + "ivysaur": { + "level": 80, + "moves": ["bodyslam", "razorleaf", "sleeppowder", "swordsdance"] + }, + "venusaur": { + "level": 74, + "moves": ["bodyslam", "razorleaf", "sleeppowder"], + "exclusiveMoves": ["hyperbeam", "swordsdance", "swordsdance"] + }, + "charmander": { + "level": 90, + "moves": ["counter", "seismictoss", "seismictoss", "slash", "slash"], + "essentialMoves": ["bodyslam", "fireblast"], + "comboMoves": ["bodyslam", "fireblast", "submission", "swordsdance"] + }, + "charmeleon": { + "level": 81, + "moves": ["counter", "seismictoss", "seismictoss", "slash", "slash"], + "essentialMoves": ["bodyslam", "fireblast"], + "comboMoves": ["bodyslam", "fireblast", "submission", "swordsdance"] + }, + "charizard": { + "level": 74, + "moves": ["bodyslam", "earthquake", "fireblast", "slash"], + "comboMoves": ["earthquake", "fireblast", "hyperbeam", "swordsdance"] + }, + "squirtle": { + "level": 90, + "moves": ["bodyslam", "counter"], + "essentialMoves": ["blizzard", "seismictoss"], + "exclusiveMoves": ["hydropump", "surf", "surf"] + }, + "wartortle": { + "level": 82, + "moves": ["counter", "rest", "seismictoss"], + "essentialMoves": ["blizzard", "bodyslam"], + "exclusiveMoves": ["hydropump", "surf", "surf"] + }, + "blastoise": { + "level": 75, + "moves": ["earthquake", "rest"], + "essentialMoves": ["blizzard", "bodyslam"], + "exclusiveMoves": ["hydropump", "surf", "surf"] + }, + "butterfree": { + "level": 77, + "moves": ["psychic", "sleeppowder", "stunspore"], + "exclusiveMoves": ["doubleedge", "hyperbeam", "megadrain", "substitute"] + }, + "beedrill": { + "level": 81, + "moves": ["hyperbeam", "swordsdance", "twineedle"], + "exclusiveMoves": ["agility", "agility", "megadrain"] + }, + "pidgey": { + "level": 93, + "moves": ["agility", "agility", "quickattack", "quickattack", "skyattack"], + "essentialMoves": ["doubleedge"], + "exclusiveMoves": ["mirrormove", "sandattack", "substitute"], + "comboMoves": ["agility", "doubleedge", "quickattack", "skyattack"] + }, + "pidgeotto": { + "level": 85, + "moves": ["agility", "agility", "quickattack", "quickattack", "skyattack"], + "essentialMoves": ["doubleedge"], + "exclusiveMoves": ["mirrormove", "sandattack", "substitute"], + "comboMoves": ["agility", "doubleedge", "quickattack", "skyattack"] + }, + "pidgeot": { + "level": 76, + "moves": ["agility", "doubleedge", "hyperbeam"], + "exclusiveMoves": ["mirrormove", "reflect", "sandattack", "skyattack", "skyattack", "substitute", "quickattack", "quickattack", "quickattack"] + }, + "rattata": { + "level": 89, + "moves": ["blizzard", "bodyslam", "superfang"], + "exclusiveMoves": ["doubleedge", "thunderbolt", "thunderbolt", "thunderbolt", "quickattack", "quickattack"] + }, + "raticate": { + "level": 75, + "moves": ["blizzard", "bodyslam", "hyperbeam", "superfang"] + }, + "spearow": { + "level": 89, + "moves": ["agility", "doubleedge", "drillpeck"], + "exclusiveMoves": ["leer", "mimic", "mirrormove", "substitute"] + }, + "fearow": { + "level": 75, + "moves": ["agility", "doubleedge", "drillpeck", "hyperbeam"] + }, + "ekans": { + "level": 90, + "moves": ["bodyslam", "earthquake", "glare", "rockslide"] + }, + "arbok": { + "level": 78, + "moves": ["earthquake", "glare", "hyperbeam"], + "exclusiveMoves": ["bodyslam", "rockslide", "rockslide"] + }, + "pikachu": { + "level": 87, + "moves": ["surf", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["agility", "bodyslam", "seismictoss", "seismictoss", "thunder"] + }, + "raichu": { + "level": 74, + "moves": ["surf", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["agility", "bodyslam", "hyperbeam", "hyperbeam", "seismictoss", "thunder"] + }, + "sandshrew": { + "level": 88, + "moves": ["bodyslam", "earthquake", "rockslide", "swordsdance"] + }, + "sandslash": { + "level": 76, + "moves": ["bodyslam", "earthquake", "rockslide", "swordsdance"] + }, + "nidoranf": { + "level": 90, + "moves": ["blizzard", "bodyslam", "thunderbolt"], + "exclusiveMoves": ["doubleedge", "doublekick"] + }, + "nidorina": { + "level": 82, + "moves": ["blizzard", "bodyslam", "thunderbolt"], + "exclusiveMoves": ["bubblebeam", "doubleedge", "doublekick"] + }, + "nidoqueen": { + "level": 74, + "moves": ["blizzard", "earthquake", "thunderbolt"], + "exclusiveMoves": ["bodyslam", "bodyslam", "substitute"] + }, + "nidoranm": { + "level": 90, + "moves": ["blizzard", "bodyslam", "thunderbolt"], + "exclusiveMoves": ["doubleedge", "doublekick"] + }, + "nidorino": { + "level": 82, + "moves": ["blizzard", "bodyslam", "thunderbolt"], + "exclusiveMoves": ["bubblebeam", "doubleedge", "doublekick"] + }, + "nidoking": { + "level": 74, + "moves": ["rockslide", "thunderbolt", "thunderbolt"], + "essentialMoves": ["blizzard", "earthquake"], + "exclusiveMoves": ["bodyslam", "bodyslam", "substitute"] + }, + "clefairy": { + "level": 88, + "moves": ["bodyslam", "bodyslam", "seismictoss", "thunderbolt"], + "essentialMoves": ["blizzard", "thunderwave"], + "exclusiveMoves": ["blizzard", "blizzard", "counter", "psychic", "sing", "sing"] + }, + "clefable": { + "level": 74, + "moves": ["bodyslam", "bodyslam", "thunderbolt", "thunderwave", "thunderwave"], + "essentialMoves": ["blizzard"], + "exclusiveMoves": ["blizzard", "counter", "hyperbeam", "hyperbeam", "psychic", "sing", "sing"] + }, + "vulpix": { + "level": 88, + "moves": ["bodyslam", "confuseray", "fireblast"], + "exclusiveMoves": ["flamethrower", "flamethrower", "quickattack", "reflect", "substitute", "substitute"] + }, + "ninetales": { + "level": 74, + "moves": ["bodyslam", "confuseray", "fireblast"], + "exclusiveMoves": ["flamethrower", "hyperbeam", "reflect", "substitute", "substitute"] + }, + "jigglypuff": { + "level": 89, + "moves": ["blizzard", "bodyslam", "seismictoss"], + "essentialMoves": ["thunderwave"], + "exclusiveMoves": ["counter", "sing", "thunderwave"] + }, + "wigglytuff": { + "level": 76, + "moves": ["blizzard", "bodyslam", "thunderwave"], + "exclusiveMoves": ["counter", "hyperbeam", "sing"] + }, + "zubat": { + "level": 100, + "moves": ["confuseray", "doubleedge", "megadrain"], + "exclusiveMoves": ["substitute", "substitute", "wingattack"] + }, + "golbat": { + "level": 78, + "moves": ["confuseray", "doubleedge", "hyperbeam", "megadrain"] + }, + "oddish": { + "level": 90, + "moves": ["doubleedge", "megadrain", "sleeppowder"], + "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] + }, + "gloom": { + "level": 82, + "moves": ["doubleedge", "megadrain", "sleeppowder"], + "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] + }, + "vileplume": { + "level": 76, + "moves": ["bodyslam", "megadrain", "sleeppowder"], + "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] + }, + "paras": { + "level": 90, + "moves": ["bodyslam", "megadrain", "spore"], + "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] + }, + "parasect": { + "level": 77, + "moves": ["bodyslam", "megadrain", "spore"], + "exclusiveMoves": ["hyperbeam", "slash", "stunspore", "stunspore", "stunspore", "swordsdance", "swordsdance"] + }, + "venonat": { + "level": 88, + "moves": ["psychic", "sleeppowder", "stunspore"], + "exclusiveMoves": ["doubleedge", "megadrain"] + }, + "venomoth": { + "level": 74, + "moves": ["psychic", "sleeppowder", "stunspore"], + "exclusiveMoves": ["doubleedge", "megadrain"] + }, + "diglett": { + "level": 86, + "moves": ["earthquake", "rockslide", "slash"], + "exclusiveMoves": ["bodyslam", "substitute"] + }, + "dugtrio": { + "level": 73, + "moves": ["earthquake", "rockslide", "slash"], + "exclusiveMoves": ["bodyslam", "substitute"] + }, + "meowth": { + "level": 85, + "moves": ["bodyslam", "bubblebeam", "slash", "thunderbolt"] + }, + "persian": { + "level": 73, + "moves": ["bodyslam", "bubblebeam", "slash"], + "exclusiveMoves": ["hyperbeam", "thunderbolt"] + }, + "psyduck": { + "level": 89, + "moves": ["amnesia", "blizzard", "surf"], + "exclusiveMoves": ["bodyslam", "hydropump", "rest", "seismictoss", "seismictoss"] + }, + "golduck": { + "level": 75, + "moves": ["amnesia", "blizzard", "surf"], + "exclusiveMoves": ["bodyslam", "hydropump", "rest", "rest", "seismictoss"] + }, + "mankey": { + "level": 89, + "moves": ["bodyslam", "rockslide", "submission"], + "exclusiveMoves": ["counter", "lowkick", "megakick"] + }, + "primeape": { + "level": 76, + "moves": ["rockslide", "rockslide", "rockslide", "thunderbolt"], + "essentialMoves": ["bodyslam", "submission"], + "exclusiveMoves": ["counter", "lowkick", "hyperbeam", "hyperbeam"] + }, + "growlithe": { + "level": 89, + "moves": ["agility", "bodyslam", "fireblast"], + "exclusiveMoves": ["flamethrower", "reflect"] + }, + "arcanine": { + "level": 75, + "moves": ["bodyslam", "fireblast", "hyperbeam"], + "exclusiveMoves": ["agility", "agility", "flamethrower", "flamethrower", "reflect", "rest"] + }, + "poliwag": { + "level": 86, + "moves": ["amnesia", "blizzard", "hypnosis", "surf"] + }, + "poliwhirl": { + "level": 79, + "moves": ["amnesia", "blizzard", "hypnosis", "surf"] + }, + "poliwrath": { + "level": 74, + "moves": ["bodyslam", "earthquake", "hypnosis", "submission"], + "essentialMoves": ["blizzard", "surf"], + "comboMoves": ["amnesia", "blizzard", "hypnosis", "surf"] + }, + "abra": { + "level": 84, + "moves": ["psychic", "seismictoss", "thunderwave"], + "exclusiveMoves": ["counter", "reflect", "substitute"] + }, + "kadabra": { + "level": 74, + "moves": ["psychic", "recover", "thunderwave"], + "exclusiveMoves": ["counter", "reflect", "reflect", "seismictoss", "seismictoss"] + }, + "alakazam": { + "level": 68, + "moves": ["psychic", "recover", "thunderwave"], + "exclusiveMoves": ["counter", "reflect", "reflect", "seismictoss", "seismictoss"] + }, + "machop": { + "level": 89, + "moves": ["bodyslam", "earthquake", "submission"], + "exclusiveMoves": ["counter", "rockslide", "rockslide"] + }, + "machoke": { + "level": 81, + "moves": ["bodyslam", "earthquake", "submission"], + "exclusiveMoves": ["counter", "rockslide", "rockslide"] + }, + "machamp": { + "level": 76, + "moves": ["bodyslam", "earthquake", "submission"], + "exclusiveMoves": ["counter", "hyperbeam", "hyperbeam", "rockslide", "rockslide"] + }, + "bellsprout": { + "level": 88, + "moves": ["doubleedge", "razorleaf", "sleeppowder"], + "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] + }, + "weepinbell": { + "level": 80, + "moves": ["doubleedge", "razorleaf", "sleeppowder"], + "exclusiveMoves": ["stunspore", "stunspore", "swordsdance"] + }, + "victreebel": { + "level": 74, + "moves": ["bodyslam", "razorleaf", "sleeppowder"], + "exclusiveMoves": ["hyperbeam", "stunspore", "stunspore", "stunspore", "swordsdance", "swordsdance"] + }, + "tentacool": { + "level": 86, + "moves": ["blizzard", "megadrain", "surf"], + "exclusiveMoves": ["barrier", "hydropump", "hydropump"] + }, + "tentacruel": { + "level": 73, + "moves": ["blizzard", "hyperbeam", "swordsdance"], + "exclusiveMoves": ["hydropump", "surf", "surf"] + }, + "geodude": { + "level": 88, + "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] + }, + "graveler": { + "level": 80, + "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] + }, + "golem": { + "level": 71, + "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] + }, + "ponyta": { + "level": 84, + "moves": ["agility", "bodyslam", "fireblast"], + "exclusiveMoves": ["reflect", "reflect", "reflect", "stomp", "substitute", "substitute"] + }, + "rapidash": { + "level": 75, + "moves": ["agility", "bodyslam", "fireblast", "hyperbeam"] + }, + "slowpoke": { + "level": 84, + "moves": ["blizzard", "psychic", "surf"], + "essentialMoves": ["amnesia", "thunderwave"], + "comboMoves": ["amnesia", "rest", "surf", "thunderwave"] + }, + "slowbro": { + "level": 68, + "moves": ["blizzard", "psychic", "surf"], + "essentialMoves": ["amnesia", "thunderwave"], + "comboMoves": ["amnesia", "rest", "surf", "thunderwave"] + }, + "magnemite": { + "level": 88, + "moves": ["thunder", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["doubleedge", "doubleedge", "mimic", "rest"] + }, + "magneton": { + "level": 76, + "moves": ["thunder", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["doubleedge", "hyperbeam", "hyperbeam", "mimic", "rest"] + }, + "farfetchd": { + "level": 78, + "moves": ["agility", "bodyslam", "slash", "swordsdance"] + }, + "doduo": { + "level": 87, + "moves": ["agility", "bodyslam", "doubleedge", "drillpeck"] + }, + "dodrio": { + "level": 73, + "moves": ["agility", "bodyslam", "drillpeck", "hyperbeam"] + }, + "seel": { + "level": 88, + "moves": ["blizzard", "bodyslam", "rest", "surf"] + }, + "dewgong": { + "level": 74, + "moves": ["blizzard", "bodyslam", "surf"], + "exclusiveMoves": ["hyperbeam", "rest", "rest", "rest"] + }, + "grimer": { + "level": 90, + "moves": ["fireblast", "fireblast", "megadrain", "sludge", "sludge", "sludge", "thunderbolt"], + "essentialMoves": ["bodyslam", "explosion"] + }, + "muk": { + "level": 76, + "moves": ["fireblast", "fireblast", "hyperbeam", "megadrain", "megadrain", "sludge", "sludge", "sludge", "thunderbolt"], + "essentialMoves": ["bodyslam", "explosion"] + }, + "shellder": { + "level": 90, + "moves": ["blizzard", "doubleedge", "explosion", "surf"] + }, + "cloyster": { + "level": 70, + "moves": ["blizzard", "explosion", "surf"], + "exclusiveMoves": ["doubleedge", "hyperbeam", "hyperbeam"] + }, + "gastly": { + "level": 83, + "moves": ["explosion", "explosion", "megadrain", "nightshade", "psychic", "psychic"], + "essentialMoves": ["thunderbolt", "hypnosis"] + }, + "haunter": { + "level": 74, + "moves": ["explosion", "explosion", "megadrain", "nightshade", "psychic", "psychic"], + "essentialMoves": ["thunderbolt", "hypnosis"] + }, + "gengar": { + "level": 68, + "moves": ["explosion", "explosion", "megadrain", "nightshade", "psychic", "psychic"], + "essentialMoves": ["thunderbolt", "hypnosis"] + }, + "onix": { + "level": 80, + "moves": ["bodyslam", "earthquake", "explosion", "rockslide"] + }, + "drowzee": { + "level": 84, + "moves": ["hypnosis", "psychic", "thunderwave"], + "exclusiveMoves": ["counter", "rest", "seismictoss", "seismictoss"] + }, + "hypno": { + "level": 72, + "moves": ["hypnosis", "psychic", "thunderwave"], + "exclusiveMoves": ["counter", "rest", "rest", "seismictoss", "seismictoss"] + }, + "krabby": { + "level": 89, + "moves": ["bodyslam", "crabhammer", "swordsdance"], + "exclusiveMoves": ["blizzard", "blizzard", "blizzard", "stomp"] + }, + "kingler": { + "level": 76, + "moves": ["bodyslam", "crabhammer", "hyperbeam", "swordsdance"] + }, + "voltorb": { + "level": 88, + "moves": ["explosion", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["takedown", "thunder"] + }, + "electrode": { + "level": 76, + "moves": ["explosion", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["hyperbeam", "hyperbeam", "takedown", "thunder", "thunder"] + }, + "exeggcute": { + "level": 84, + "moves": ["explosion", "psychic", "sleeppowder", "stunspore"] + }, + "exeggutor": { + "level": 68, + "moves": ["explosion", "psychic", "sleeppowder"], + "exclusiveMoves": ["doubleedge", "hyperbeam", "megadrain", "stunspore", "stunspore", "stunspore"] + }, + "cubone": { + "level": 89, + "moves": ["blizzard", "bodyslam", "earthquake", "seismictoss"] + }, + "marowak": { + "level": 79, + "moves": ["blizzard", "bodyslam", "earthquake", "seismictoss"] + }, + "hitmonlee": { + "level": 78, + "moves": ["bodyslam", "highjumpkick", "seismictoss"], + "exclusiveMoves": ["counter", "counter", "meditate", "megakick", "rollingkick"] + }, + "hitmonchan": { + "level": 80, + "moves": ["bodyslam", "seismictoss", "submission"], + "exclusiveMoves": ["agility", "agility", "counter", "counter", "megakick"] + }, + "lickitung": { + "level": 78, + "moves": ["bodyslam", "hyperbeam", "swordsdance"], + "exclusiveMoves": ["blizzard", "earthquake", "earthquake", "earthquake"] + }, + "koffing": { + "level": 90, + "moves": ["explosion", "fireblast", "sludge", "thunderbolt"] + }, + "weezing": { + "level": 76, + "moves": ["explosion", "fireblast", "sludge", "thunderbolt"] + }, + "rhyhorn": { + "level": 84, + "moves": ["bodyslam", "earthquake", "rockslide", "substitute"] + }, + "rhydon": { + "level": 68, + "moves": ["bodyslam", "earthquake", "rockslide", "substitute"] + }, + "chansey": { + "level": 68, + "moves": ["icebeam", "softboiled", "thunderwave"], + "exclusiveMoves": ["counter", "reflect", "seismictoss", "sing", "thunderbolt", "thunderbolt", "thunderbolt"] + }, + "tangela": { + "level": 74, + "moves": ["bodyslam", "megadrain", "sleeppowder"], + "exclusiveMoves": ["growth", "stunspore", "stunspore", "stunspore", "swordsdance", "swordsdance"] + }, + "kangaskhan": { + "level": 73, + "moves": ["bodyslam", "earthquake", "hyperbeam"], + "exclusiveMoves": ["counter", "rockslide", "rockslide", "surf"] + }, + "horsea": { + "level": 88, + "moves": ["agility", "blizzard", "surf"], + "exclusiveMoves": ["doubleedge", "hydropump", "smokescreen"] + }, + "seadra": { + "level": 77, + "moves": ["agility", "blizzard", "surf"], + "exclusiveMoves": ["doubleedge", "hydropump", "hyperbeam", "smokescreen"] + }, + "goldeen": { + "level": 88, + "moves": ["agility", "blizzard", "doubleedge", "surf"] + }, + "seaking": { + "level": 78, + "moves": ["agility", "doubleedge", "hyperbeam"], + "essentialMoves": ["blizzard", "surf"] + }, + "staryu": { + "level": 84, + "moves": ["blizzard", "thunderbolt", "thunderwave"], + "essentialMoves": ["recover"], + "exclusiveMoves": ["hydropump", "surf", "surf"] + }, + "starmie": { + "level": 68, + "moves": ["blizzard", "psychic", "thunderbolt", "thunderwave", "thunderwave"], + "essentialMoves": ["recover"], + "exclusiveMoves": ["hydropump", "psychic", "surf", "surf"] + }, + "mrmime": { + "level": 75, + "moves": ["psychic", "seismictoss", "thunderbolt", "thunderwave"] + }, + "scyther": { + "level": 75, + "moves": ["agility", "hyperbeam", "slash", "swordsdance"] + }, + "jynx": { + "level": 68, + "moves": ["blizzard", "lovelykiss", "psychic"], + "exclusiveMoves": ["bodyslam", "counter", "counter", "seismictoss", "substitute"] + }, + "electabuzz": { + "level": 74, + "moves": ["psychic", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["hyperbeam", "seismictoss", "seismictoss", "seismictoss"] + }, + "magmar": { + "level": 76, + "moves": ["bodyslam", "confuseray", "fireblast"], + "exclusiveMoves": ["hyperbeam", "psychic", "seismictoss"] + }, + "pinsir": { + "level": 75, + "moves": ["bodyslam", "bodyslam", "slash"], + "essentialMoves": ["hyperbeam", "swordsdance"], + "exclusiveMoves": ["seismictoss", "submission", "submission"] + }, + "tauros": { + "level": 68, + "moves": ["bodyslam", "earthquake", "hyperbeam"], + "exclusiveMoves": ["blizzard", "blizzard", "blizzard", "thunderbolt"] + }, + "gyarados": { + "level": 74, + "moves": ["blizzard", "bodyslam", "bodyslam", "hyperbeam", "thunderbolt"], + "exclusiveMoves": ["hydropump", "surf", "surf"] + }, + "lapras": { + "level": 69, + "moves": ["bodyslam", "rest", "sing", "surf"], + "essentialMoves": ["blizzard", "thunderbolt"] + }, + "ditto": { + "level": 100, + "moves": ["transform"] + }, + "eevee": { + "level": 88, + "moves": ["doubleedge", "doubleedge", "quickattack", "quickattack", "reflect"], + "essentialMoves": ["bodyslam"], + "exclusiveMoves": ["sandattack", "tailwhip"] + }, + "vaporeon": { + "level": 74, + "moves": ["blizzard", "rest", "surf"], + "exclusiveMoves": ["acidarmor", "bodyslam", "bodyslam", "bodyslam", "hydropump", "mimic"] + }, + "jolteon": { + "level": 69, + "moves": ["bodyslam", "thunderbolt", "thunderwave"], + "exclusiveMoves": ["agility", "agility", "doublekick", "pinmissile", "pinmissile"] + }, + "flareon": { + "level": 76, + "moves": ["bodyslam", "fireblast", "hyperbeam", "quickattack"] + }, + "porygon": { + "level": 76, + "moves": ["blizzard", "recover", "thunderwave"], + "exclusiveMoves": ["doubleedge", "psychic", "thunderbolt", "triattack"] + }, + "omanyte": { + "level": 87, + "moves": ["blizzard", "bodyslam", "rest"], + "exclusiveMoves": ["hydropump", "surf"] + }, + "omastar": { + "level": 74, + "moves": ["bodyslam", "rest", "seismictoss"], + "essentialMoves": ["blizzard"], + "exclusiveMoves": ["hydropump", "surf"] + }, + "kabuto": { + "level": 88, + "moves": ["blizzard", "bodyslam", "slash"], + "exclusiveMoves": ["hydropump", "surf", "surf"] + }, + "kabutops": { + "level": 75, + "moves": ["hyperbeam", "surf", "swordsdance"], + "exclusiveMoves": ["bodyslam", "slash"] + }, + "aerodactyl": { + "level": 75, + "moves": ["doubleedge", "fireblast", "hyperbeam"], + "exclusiveMoves": ["agility", "skyattack", "skyattack"] + }, + "snorlax": { + "level": 69, + "moves": ["amnesia", "blizzard", "bodyslam"], + "exclusiveMoves": ["rest", "selfdestruct"], + "comboMoves": ["bodyslam", "earthquake", "hyperbeam", "selfdestruct"] + }, + "articuno": { + "level": 70, + "moves": ["agility", "blizzard", "hyperbeam"], + "exclusiveMoves": ["icebeam", "mimic", "reflect"], + "comboMoves": ["blizzard", "icebeam", "reflect", "rest"] + }, + "zapdos": { + "level": 68, + "moves": ["agility", "drillpeck", "thunderbolt", "thunderwave"] + }, + "moltres": { + "level": 73, + "moves": ["agility", "fireblast", "hyperbeam"], + "exclusiveMoves": ["doubleedge", "doubleedge", "doubleedge", "reflect"] + }, + "dratini": { + "level": 89, + "moves": ["bodyslam", "hyperbeam", "thunderbolt", "thunderbolt"], + "essentialMoves": ["blizzard", "thunderwave"] + }, + "dragonair": { + "level": 80, + "moves": ["bodyslam", "hyperbeam", "thunderbolt", "thunderbolt"], + "essentialMoves": ["blizzard", "thunderwave"] + }, + "dragonite": { + "level": 74, + "moves": ["bodyslam", "hyperbeam", "thunderbolt", "thunderwave", "thunderwave"], + "essentialMoves": ["blizzard"] + }, + "mewtwo": { + "level": 60, + "moves": ["amnesia", "psychic", "recover"], + "exclusiveMoves": ["blizzard", "thunderbolt", "thunderwave", "thunderwave"] + }, + "mew": { + "level": 64, + "moves": ["blizzard", "blizzard", "earthquake", "explosion", "explosion", "thunderbolt"], + "essentialMoves": ["psychic", "softboiled", "thunderwave"] + } +} diff --git a/data/mods/gen1/random-teams.ts b/data/random-battles/gen1/teams.ts similarity index 72% rename from data/mods/gen1/random-teams.ts rename to data/random-battles/gen1/teams.ts index c8281714918c..2ce6a27ef455 100644 --- a/data/mods/gen1/random-teams.ts +++ b/data/random-battles/gen1/teams.ts @@ -1,6 +1,5 @@ -import RandomGen2Teams from '../gen2/random-teams'; +import RandomGen2Teams from '../gen2/teams'; import {Utils} from '../../../lib'; -import {MoveCounter} from '../gen8/random-teams'; interface HackmonsCupEntry { types: string[]; @@ -10,13 +9,13 @@ interface HackmonsCupEntry { interface Gen1RandomBattleSpecies { level?: number; moves?: ID[]; - essentialMove?: ID; + essentialMoves?: ID[]; exclusiveMoves?: ID[]; comboMoves?: ID[]; } export class RandomGen1Teams extends RandomGen2Teams { - randomData: {[species: string]: Gen1RandomBattleSpecies} = require('./random-data.json'); + randomData: {[species: IDEntry]: Gen1RandomBattleSpecies} = require('./data.json'); // Challenge Cup or CC teams are basically fully random teams. randomCCTeam() { @@ -28,7 +27,6 @@ export class RandomGen1Teams extends RandomGen2Teams { for (const pokemon of randomN) { const species = this.dex.species.get(pokemon); - const learnset = this.dex.species.getLearnset(species.id); // Level balance: calculate directly from stats rather than using some silly lookup table. const mbstmin = 1307; @@ -83,15 +81,7 @@ export class RandomGen1Teams extends RandomGen2Teams { // Four random unique moves from movepool. don't worry about "attacking" or "viable". // Since Gens 1 and 2 learnsets are shared, we need to weed out Gen 2 moves. - const pool: string[] = []; - if (learnset) { - for (const move in learnset) { - if (this.dex.moves.get(move).gen !== 1) continue; - if (learnset[move].some(learned => learned.startsWith('1'))) { - pool.push(move); - } - } - } + const pool = [...this.dex.species.getMovePool(species.id)]; team.push({ name: species.baseSpecies, @@ -128,19 +118,17 @@ export class RandomGen1Teams extends RandomGen2Teams { /** Pokémon that are not wholly incompatible with the team, but still pretty bad */ const rejectedButNotInvalidPool: string[] = []; - const nuTiers = ['UU', 'UUBL', 'NFE', 'LC', 'NU']; - const uuTiers = ['NFE', 'UU', 'UUBL', 'NU']; // Now let's store what we are getting. const typeCount: {[k: string]: number} = {}; const weaknessCount: {[k: string]: number} = {Electric: 0, Psychic: 0, Water: 0, Ice: 0, Ground: 0, Fire: 0}; - let uberCount = 0; - let nuCount = 0; + let numMaxLevelPokemon = 0; - const pokemonPool = this.getPokemonPool(type, pokemon, isMonotype); + const pokemonPool = Object.keys(this.getPokemonPool(type, pokemon, isMonotype, Object.keys(this.randomData))[0]); while (pokemonPool.length && pokemon.length < this.maxTeamSize) { const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - if (!species.exists || !this.randomData[species.id]?.moves) continue; + if (!species.exists) continue; + // Only one Ditto is allowed per battle in Generation 1, // as it can cause an endless battle if two Dittos are forced // to face each other. @@ -149,33 +137,12 @@ export class RandomGen1Teams extends RandomGen2Teams { // Dynamically scale limits for different team sizes. The default and minimum value is 1. const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - const tier = species.tier; - switch (tier) { - case 'LC': - case 'NFE': - // Don't add pre-evo mon if already 4 or more non-OUs - // Regardless, pre-evo mons are slightly less common. - if (nuCount >= 4 * limitFactor || this.randomChance(1, 3)) continue; - break; - case 'Uber': - // Only allow a single Uber. - if (uberCount >= 1 * limitFactor) continue; - break; - default: - // OUs are fine. Otherwise 50% chance to skip mon if already 4 or more non-OUs. - if (uuTiers.includes(tier) && pokemonPool.length > 1 && (nuCount >= 4 * limitFactor && this.randomChance(1, 2))) { - continue; - } - } - let skip = false; if (!isMonotype && !this.forceMonotype) { - // Limit 2 of any type as well. Diversity and minor weakness count. - // The second of a same type has halved chance of being added. + // Limit two of any type for (const typeName of species.types) { - if (typeCount[typeName] >= 2 * limitFactor || - (typeCount[typeName] >= 1 * limitFactor && this.randomChance(1, 2) && pokemonPool.length > 1)) { + if (typeCount[typeName] >= 2 * limitFactor) { skip = true; break; } @@ -188,7 +155,7 @@ export class RandomGen1Teams extends RandomGen2Teams { } // We need a weakness count of spammable attacks to avoid being swept by those. - // Spammable attacks are: Thunderbolt, Psychic, Surf, Blizzard, Earthquake. + // Spammable attacks are: Thunderbolt, Psychic, Surf, Blizzard, Earthquake, Fire Blast. const pokemonWeaknesses = []; for (const typeName in weaknessCount) { const increaseCount = this.dex.getImmunity(typeName, species) && this.dex.getEffectiveness(typeName, species) > 0; @@ -205,6 +172,12 @@ export class RandomGen1Teams extends RandomGen2Teams { continue; } + // Limit one level 100 Pokemon + if (!this.adjustLevel && (this.getLevel(species) === 100) && numMaxLevelPokemon >= limitFactor) { + rejectedButNotInvalidPool.push(species.id); + continue; + } + // The set passes the limitations. pokemon.push(this.randomSet(species)); @@ -223,12 +196,8 @@ export class RandomGen1Teams extends RandomGen2Teams { weaknessCount[weakness]++; } - // Increment tier bias counters. - if (tier === 'Uber') { - uberCount++; - } else if (nuTiers.includes(tier)) { - nuCount++; - } + // Increment level 100 counter + if (this.getLevel(species) === 100) numMaxLevelPokemon++; // Ditto check if (species.id === 'ditto') this.battleHasDitto = true; @@ -247,29 +216,6 @@ export class RandomGen1Teams extends RandomGen2Teams { return pokemon; } - shouldCullMove(move: Move, types: Set, moves: Set, counter: MoveCounter): {cull: boolean} { - switch (move.id) { - // bit redundant to have both, but neither particularly better than the other - case 'hydropump': - return {cull: moves.has('surf')}; - case 'surf': - return {cull: moves.has('hydropump')}; - - // other redundancies that aren't handled within the movesets themselves - case 'selfdestruct': - return {cull: moves.has('rest')}; - case 'rest': - return {cull: moves.has('selfdestruct')}; - case 'sharpen': case 'swordsdance': - return {cull: counter.get('Special') > counter.get('Physical') || !counter.get('Physical') || moves.has('growth')}; - case 'growth': - return {cull: counter.get('Special') < counter.get('Physical') || !counter.get('Special') || moves.has('swordsdance')}; - case 'poisonpowder': case 'stunspore': case 'sleeppowder': case 'toxic': - return {cull: counter.get('Status') > 1}; - } - return {cull: false}; - } - /** * Random set generation for Gen 1 Random Battles. */ @@ -280,14 +226,6 @@ export class RandomGen1Teams extends RandomGen2Teams { const data = this.randomData[species.id]; const movePool = data.moves?.slice() || []; const moves = new Set(); - const types = new Set(species.types); - - const counter = new MoveCounter(); - - // Moves that boost Attack: - const PhysicalSetup = ['swordsdance', 'sharpen']; - // Moves which boost Special Attack: - const SpecialSetup = ['amnesia', 'growth']; // Either add all moves or add none if (data.comboMoves && data.comboMoves.length <= this.maxMoveCount && this.randomChance(1, 2)) { @@ -296,13 +234,17 @@ export class RandomGen1Teams extends RandomGen2Teams { // Add one of the semi-mandatory moves // Often, these are used so that the Pokemon only gets one of the less useful moves + // This is added before the essential moves so that combos containing three moves can roll an exclusive move if (moves.size < this.maxMoveCount && data.exclusiveMoves) { moves.add(this.sample(data.exclusiveMoves)); } - // Add the mandatory move. SD Mew and Amnesia Snorlax are exceptions. - if (moves.size < this.maxMoveCount && data.essentialMove) { - moves.add(data.essentialMove); + // Add the mandatory moves. + if (moves.size < this.maxMoveCount && data.essentialMoves) { + for (const moveid of data.essentialMoves) { + moves.add(moveid); + if (moves.size === this.maxMoveCount) break; + } } while (moves.size < this.maxMoveCount && movePool.length) { @@ -311,45 +253,9 @@ export class RandomGen1Teams extends RandomGen2Teams { const moveid = this.sampleNoReplace(movePool); moves.add(moveid); } - - // Only do move choosing if we have backup moves in the pool... - if (movePool.length) { - for (const setMoveid of moves) { - const move = this.dex.moves.get(setMoveid); - const moveid = move.id; - if (!move.damage && !move.damageCallback) counter.add(move.category); - if (PhysicalSetup.includes(moveid)) counter.add('physicalsetup'); - if (SpecialSetup.includes(moveid)) counter.add('specialsetup'); - } - - for (const moveid of moves) { - if (moveid === data.essentialMove) continue; - const move = this.dex.moves.get(moveid); - if ( - (!data.essentialMove || moveid !== data.essentialMove) && - this.shouldCullMove(move, types, moves, counter).cull - ) { - moves.delete(moveid); - break; - } - counter.add(move.category); - } - } // End of the check for more than 4 moves on moveset. } - const levelScale: {[k: string]: number} = { - LC: 88, - NFE: 80, - PU: 77, - NU: 77, - NUBL: 76, - UU: 74, - UUBL: 71, - OU: 68, - Uber: 65, - }; - - const level = this.adjustLevel || data.level || levelScale[species.tier] || 80; + const level = this.getLevel(species); const evs = {hp: 255, atk: 255, def: 255, spa: 255, spd: 255, spe: 255}; const ivs = {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}; @@ -375,10 +281,14 @@ export class RandomGen1Teams extends RandomGen2Teams { ivs.atk = 2; } + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + return { name: species.name, species: species.name, - moves: Array.from(moves), + moves: shuffledMoves, ability: 'No Ability', evs, ivs, diff --git a/data/random-battles/gen2/sets.json b/data/random-battles/gen2/sets.json new file mode 100644 index 000000000000..36b5074fca13 --- /dev/null +++ b/data/random-battles/gen2/sets.json @@ -0,0 +1,1685 @@ +{ + "venusaur": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["growth", "hiddenpowerfire", "hiddenpowerice", "razorleaf", "sleeppowder", "synthesis"] + } + ] + }, + "charizard": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "earthquake", "fireblast", "rockslide", "swordsdance"] + } + ] + }, + "blastoise": { + "sets": [ + { + "role": "Generalist", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "zapcannon"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "rapidspin", "rest", "roar", "surf", "toxic"] + } + ] + }, + "butterfree": { + "level": 85, + "sets": [ + { + "role": "Generalist", + "movepool": ["nightmare", "psychic", "sleeppowder", "substitute"] + }, + { + "role": "Fast Attacker", + "movepool": ["psychic", "reflect", "sleeppowder", "stunspore"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerbug", "psychic", "sleeppowder", "stunspore"] + } + ] + }, + "beedrill": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "hiddenpowerground", "sludgebomb", "substitute", "swordsdance"] + } + ] + }, + "pidgeot": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "doubleedge", "rest", "sleeptalk"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "hiddenpowerground", "hiddenpowerwater", "rest", "sleeptalk"] + }, + { + "role": "Thief user", + "movepool": ["hiddenpowerground", "hiddenpowerwater", "return", "thief", "toxic"] + } + ] + }, + "raticate": { + "sets": [ + { + "role": "Generalist", + "movepool": ["doubleedge", "irontail", "rest", "return", "sleeptalk", "superfang"] + } + ] + }, + "fearow": { + "level": 71, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "drillpeck", "hiddenpowerground", "rest", "sleeptalk"] + } + ] + }, + "arbok": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "earthquake", "rest", "sleeptalk", "sludgebomb"] + }, + { + "role": "Fast Attacker", + "movepool": ["curse", "earthquake", "glare", "haze", "sludgebomb"] + }, + { + "role": "Bulky Attacker", + "movepool": ["curse", "earthquake", "glare", "rockslide", "sludgebomb"], + "preferredTypes": ["Ground"] + } + ] + }, + "pikachu": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["encore", "hiddenpowerfire", "hiddenpowerice", "surf", "thunderbolt"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerfire", "hiddenpowerice", "substitute", "surf", "thunderbolt"] + }, + { + "role": "Generalist", + "movepool": ["hiddenpowerice", "surf", "thunder", "thunderbolt"] + } + ] + }, + "raichu": { + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerice", "rest", "sleeptalk", "surf", "thunder"] + } + ] + }, + "sandslash": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerbug", "rockslide", "substitute", "swordsdance"], + "preferredTypes": ["Rock"] + }, + { + "role": "Generalist", + "movepool": ["earthquake", "rest", "rockslide", "sleeptalk"] + } + ] + }, + "nidoqueen": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "icebeam", "moonlight", "thunder"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "icebeam", "lovelykiss", "thunder"] + } + ] + }, + "nidoking": { + "level": 67, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "icebeam", "morningsun", "thunder"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "icebeam", "lovelykiss", "thunder"] + } + ] + }, + "clefable": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bellydrum", "bodyslam", "hiddenpowerground", "moonlight", "return", "thunderwave"] + }, + { + "role": "Bulky Support", + "movepool": ["bodyslam", "encore", "fireblast", "flamethrower", "moonlight"] + }, + { + "role": "Setup Sweeper", + "movepool": ["curse", "moonlight", "return", "thunderwave"] + } + ] + }, + "ninetales": { + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "rest", "sleeptalk", "sunnyday"] + } + ] + }, + "wigglytuff": { + "sets": [ + { + "role": "Bulky Support", + "movepool": ["curse", "doubleedge", "rest", "sleeptalk", "thunder"] + } + ] + }, + "vileplume": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["moonlight", "razorleaf", "sleeppowder", "sludgebomb", "stunspore"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerground", "moonlight", "sleeppowder", "sludgebomb", "swordsdance"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "moonlight", "sludgebomb", "stunspore"] + } + ] + }, + "parasect": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bodyslam", "hiddenpowerground", "return", "spore", "swordsdance"] + }, + { + "role": "Bulky Setup", + "movepool": ["hiddenpowerbug", "spore", "swordsdance", "synthesis"] + } + ] + }, + "venomoth": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["gigadrain", "hiddenpowerfire", "psychic", "sleeppowder", "sludgebomb", "stunspore"], + "preferredTypes": ["Fire", "Psychic"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "curse", "sleeppowder", "sludgebomb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "curse", "sludgebomb", "stunspore"] + } + ] + }, + "dugtrio": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "rockslide", "sludgebomb", "substitute", "thief"], + "preferredTypes": ["Rock"] + } + ] + }, + "persian": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "hypnosis", "irontail", "rest", "sleeptalk", "thief"] + }, + { + "role": "Generalist", + "movepool": ["doubleedge", "hypnosis", "rest", "sleeptalk", "thief", "thunder"], + "preferredTypes": ["Electric"] + }, + { + "role": "Setup Sweeper", + "movepool": ["curse", "doubleedge", "rest", "sleeptalk"] + } + ] + }, + "golduck": { + "sets": [ + { + "role": "Generalist", + "movepool": ["crosschop", "hiddenpowerelectric", "hydropump", "hypnosis", "icebeam"] + }, + { + "role": "Bulky Attacker", + "movepool": ["crosschop", "hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] + } + ] + }, + "primeape": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crosschop", "hiddenpowerghost", "meditate", "rest", "rockslide", "substitute"] + }, + { + "role": "Bulky Setup", + "movepool": ["crosschop", "doubleedge", "hiddenpowerghost", "meditate", "rockslide"] + }, + { + "role": "Generalist", + "movepool": ["meditate", "reversal", "rockslide", "substitute"] + } + ] + }, + "arcanine": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "doubleedge", "fireblast", "flamethrower", "hiddenpowergrass", "rest", "sleeptalk"] + } + ] + }, + "poliwhirl": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "earthquake", "lovelykiss", "return"] + }, + { + "role": "Generalist", + "movepool": ["bellydrum", "earthquake", "hiddenpowerrock", "lovelykiss"] + } + ] + }, + "poliwrath": { + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "growth", "rest", "sleeptalk", "submission", "surf"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "earthquake", "lovelykiss", "return"] + }, + { + "role": "Generalist", + "movepool": ["bellydrum", "earthquake", "hiddenpowerrock", "lovelykiss"] + } + ] + }, + "alakazam": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["encore", "firepunch", "hiddenpowerdark", "psychic", "recover", "thunderwave"], + "preferredTypes": ["Fire"] + } + ] + }, + "machamp": { + "sets": [ + { + "role": "Generalist", + "movepool": ["crosschop", "curse", "rest", "rockslide", "sleeptalk"] + }, + { + "role": "Setup Sweeper", + "movepool": ["crosschop", "curse", "earthquake", "hiddenpowerbug", "rockslide"], + "preferredTypes": ["Rock"] + } + ] + }, + "victreebel": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerground", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"] + } + ] + }, + "tentacruel": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hydropump", "sludgebomb", "substitute", "swordsdance"] + } + ] + }, + "golem": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["curse", "earthquake", "explosion", "rapidspin", "roar", "rockslide"] + } + ] + }, + "rapidash": { + "sets": [ + { + "role": "Generalist", + "movepool": ["doubleedge", "fireblast", "hiddenpowergrass", "hypnosis", "sunnyday"] + }, + { + "role": "Bulky Support", + "movepool": ["doubleedge", "fireblast", "flamethrower", "rest", "sleeptalk", "sunnyday"] + } + ] + }, + "slowbro": { + "sets": [ + { + "role": "Generalist", + "movepool": ["psychic", "rest", "sleeptalk", "surf"] + } + ] + }, + "magneton": { + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerice", "rest", "sleeptalk", "thunder"] + } + ] + }, + "farfetchd": { + "sets": [ + { + "role": "Generalist", + "movepool": ["agility", "batonpass", "return", "swordsdance"] + } + ] + }, + "dodrio": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "drillpeck", "hiddenpowerground", "rest", "sleeptalk"] + } + ] + }, + "dewgong": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "rest", "sleeptalk", "surf"] + }, + { + "role": "Generalist", + "movepool": ["encore", "icebeam", "protect", "toxic"] + } + ] + }, + "muk": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "explosion", "hiddenpowerground", "sludgebomb"], + "preferredTypes": ["Ground"] + } + ] + }, + "cloyster": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["explosion", "icebeam", "rapidspin", "spikes", "surf", "toxic"] + }, + { + "role": "Generalist", + "movepool": ["explosion", "rapidspin", "spikes", "surf", "toxic"] + }, + { + "role": "Bulky Support", + "movepool": ["explosion", "icebeam", "rapidspin", "spikes", "toxic"] + } + ] + }, + "gengar": { + "sets": [ + { + "role": "Generalist", + "movepool": ["explosion", "firepunch", "hypnosis", "icepunch", "psychic", "thunderbolt"], + "preferredTypes": ["Electric", "Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["destinybond", "firepunch", "hypnosis", "icepunch", "psychic", "thunderbolt"], + "preferredTypes": ["Electric", "Ice"] + } + ] + }, + "hypno": { + "sets": [ + { + "role": "Generalist", + "movepool": ["psychic", "rest", "seismictoss", "sleeptalk", "thunderwave"] + }, + { + "role": "Setup Sweeper", + "movepool": ["curse", "doubleedge", "rest", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "psychic", "rest", "return"] + } + ] + }, + "kingler": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerground", "protect", "rest", "return", "substitute", "swordsdance"] + }, + { + "role": "Bulky Setup", + "movepool": ["hiddenpowerground", "protect", "return", "substitute", "surf", "swordsdance"], + "preferredTypes": ["Normal"] + } + ] + }, + "electrode": { + "sets": [ + { + "role": "Generalist", + "movepool": ["explosion", "hiddenpowerice", "thunderbolt", "thunderwave"] + }, + { + "role": "Fast Attacker", + "movepool": ["explosion", "hiddenpowerice", "lightscreen", "reflect", "thunder", "thunderbolt"] + } + ] + }, + "exeggutor": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["explosion", "hiddenpowerfire", "hiddenpowergrass", "psychic", "sleeppowder", "stunspore", "thief"] + }, + { + "role": "Generalist", + "movepool": ["explosion", "gigadrain", "hiddenpowerfire", "psychic"] + } + ] + }, + "marowak": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerbug", "rockslide", "swordsdance"] + } + ] + }, + "hitmonlee": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerghost", "hiddenpowerrock", "highjumpkick", "meditate", "rest", "substitute"] + }, + { + "role": "Bulky Setup", + "movepool": ["doubleedge", "hiddenpowerghost", "hiddenpowerrock", "highjumpkick", "meditate"] + }, + { + "role": "Generalist", + "movepool": ["bodyslam", "hiddenpowerrock", "highjumpkick", "rest", "sleeptalk"] + } + ] + }, + "hitmonchan": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["curse", "hiddenpowerghost", "hiddenpowerrock", "highjumpkick", "machpunch"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "highjumpkick", "rest", "sleeptalk"] + }, + { + "role": "Generalist", + "movepool": ["bodyslam", "hiddenpowerrock", "highjumpkick", "rest", "sleeptalk"] + } + ] + }, + "lickitung": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bodyslam", "earthquake", "protect", "return", "swordsdance"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "doubleedge", "rest", "return", "sleeptalk", "swordsdance"] + }, + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "earthquake", "rest", "sleeptalk", "surf", "thunder"] + } + ] + }, + "weezing": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["explosion", "fireblast", "sludgebomb", "thunder"] + }, + { + "role": "Generalist", + "movepool": ["explosion", "hiddenpowerwater", "sludgebomb", "thunder"] + }, + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "haze", "hiddenpowerwater", "painsplit", "sludgebomb", "thunder"], + "preferredTypes": ["Electric"] + } + ] + }, + "rhydon": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["curse", "earthquake", "rest", "roar", "rockslide", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "rest", "rockslide", "sleeptalk"] + } + ] + }, + "tangela": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["gigadrain", "growth", "hiddenpowerfire", "hiddenpowerice", "sleeppowder", "synthesis"] + } + ] + }, + "kangaskhan": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "earthquake", "rest", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "doubleedge", "rest", "return", "sleeptalk"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bodyslam", "curse", "earthquake", "return", "roar"] + } + ] + }, + "seaking": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["agility", "hydropump", "return", "substitute", "swordsdance"], + "preferredTypes": ["Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["agility", "hiddenpowerground", "return", "substitute", "swordsdance"] + } + ] + }, + "starmie": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["psychic", "rapidspin", "recover", "surf", "thunderbolt", "thunderwave"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "psychic", "recover", "surf", "thunder"] + } + ] + }, + "mrmime": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["encore", "firepunch", "hypnosis", "psychic", "thief", "thunder"] + }, + { + "role": "Generalist", + "movepool": ["firepunch", "psychic", "rest", "sleeptalk", "thunder"] + }, + { + "role": "Bulky Attacker", + "movepool": ["barrier", "batonpass", "psychic", "thunder"] + } + ] + }, + "scyther": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "doubleedge", "hiddenpowerground", "swordsdance"] + } + ] + }, + "jynx": { + "sets": [ + { + "role": "Generalist", + "movepool": ["icebeam", "lovelykiss", "nightmare", "psychic"] + }, + { + "role": "Thief user", + "movepool": ["icebeam", "lovelykiss", "psychic", "thief"] + }, + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "lovelykiss", "psychic", "substitute"] + } + ] + }, + "electabuzz": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crosschop", "icepunch", "pursuit", "thief", "thunder", "thunderbolt"], + "preferredTypes": ["Fighting", "Ice"] + }, + { + "role": "Bulky Attacker", + "movepool": ["icepunch", "rest", "sleeptalk", "thunder"] + } + ] + }, + "magmar": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crosschop", "fireblast", "hiddenpowerground", "sunnyday", "thunderpunch"], + "preferredTypes": ["Electric"] + }, + { + "role": "Fast Attacker", + "movepool": ["crosschop", "fireblast", "hiddenpowerground", "thief", "thunderpunch"], + "preferredTypes": ["Electric"] + } + ] + }, + "pinsir": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerground", "protect", "rest", "return", "substitute", "swordsdance"] + } + ] + }, + "tauros": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "doubleedge", "earthquake", "rest", "return", "sleeptalk"] + } + ] + }, + "gyarados": { + "sets": [ + { + "role": "Generalist", + "movepool": ["doubleedge", "hiddenpowerflying", "hydropump", "roar", "thunder"], + "preferredTypes": ["Electric"] + }, + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "hiddenpowerflying", "hydropump", "rest", "sleeptalk", "surf"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "hiddenpowerflying", "rest", "sleeptalk"] + } + ] + }, + "lapras": { + "sets": [ + { + "role": "Generalist", + "movepool": ["icebeam", "rest", "sleeptalk", "surf"] + }, + { + "role": "Fast Attacker", + "movepool": ["rest", "sleeptalk", "surf", "thunder"] + }, + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "rest", "sleeptalk", "thunder"] + } + ] + }, + "ditto": { + "level": 90, + "sets": [ + { + "role": "Generalist", + "movepool": ["transform"] + } + ] + }, + "vaporeon": { + "sets": [ + { + "role": "Generalist", + "movepool": ["growth", "rest", "sleeptalk", "surf"] + } + ] + }, + "jolteon": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "growth", "hiddenpowerice", "substitute", "thunderbolt"] + } + ] + }, + "flareon": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "fireblast", "growth", "hiddenpowergrass"] + }, + { + "role": "Generalist", + "movepool": ["doubleedge", "fireblast", "flamethrower", "rest", "sleeptalk"] + } + ] + }, + "omastar": { + "sets": [ + { + "role": "Bulky Support", + "movepool": ["hiddenpowerelectric", "icebeam", "rest", "sandstorm", "sleeptalk", "surf"] + } + ] + }, + "kabutops": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["hiddenpowerground", "hydropump", "return", "swordsdance"] + }, + { + "role": "Setup Sweeper", + "movepool": ["ancientpower", "hiddenpowerground", "protect", "rest", "substitute", "swordsdance"] + } + ] + }, + "aerodactyl": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "earthquake", "hiddenpowerrock", "rest"] + }, + { + "role": "Setup Sweeper", + "movepool": ["ancientpower", "curse", "earthquake", "hiddenpowerflying"] + }, + { + "role": "Bulky Attacker", + "movepool": ["curse", "earthquake", "hiddenpowerrock", "whirlwind"] + } + ] + }, + "snorlax": { + "level": 63, + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "doubleedge", "earthquake", "rest", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "doubleedge", "earthquake", "rest", "return"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "curse", "earthquake", "lovelykiss", "return", "selfdestruct"] + } + ] + }, + "articuno": { + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "toxic"] + } + ] + }, + "zapdos": { + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerice", "rest", "sleeptalk", "thunder"] + } + ] + }, + "moltres": { + "sets": [ + { + "role": "Generalist", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "rest", "sleeptalk", "sunnyday"] + } + ] + }, + "dragonite": { + "sets": [ + { + "role": "Generalist", + "movepool": ["haze", "hiddenpowerflying", "rest", "surf", "thunder"] + }, + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "rest", "sleeptalk", "thunder"] + }, + { + "role": "Fast Attacker", + "movepool": ["dynamicpunch", "hiddenpowerflying", "icebeam", "thunder"] + } + ] + }, + "mewtwo": { + "level": 59, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["flamethrower", "icebeam", "psychic", "recover", "thunder"] + }, + { + "role": "Bulky Setup", + "movepool": ["barrier", "flamethrower", "psychic", "recover", "thunder"] + } + ] + }, + "mew": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "explosion", "rockslide", "swordsdance"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "rockslide", "softboiled", "swordsdance"] + } + ] + }, + "meganium": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "earthquake", "swordsdance", "synthesis"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerrock", "swordsdance", "synthesis"] + } + ] + }, + "typhlosion": { + "sets": [ + { + "role": "Generalist", + "movepool": ["earthquake", "fireblast", "flamethrower", "rest", "sleeptalk", "thunderpunch"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "fireblast", "sunnyday", "thunderpunch"] + } + ] + }, + "feraligatr": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] + } + ] + }, + "furret": { + "level": 73, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "doubleedge", "rest", "sleeptalk"] + }, + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "irontail", "rest", "sleeptalk", "surf"] + }, + { + "role": "Setup Sweeper", + "movepool": ["curse", "irontail", "quickattack", "return"] + } + ] + }, + "noctowl": { + "sets": [ + { + "role": "Thief user", + "movepool": ["hypnosis", "return", "thief", "toxic", "whirlwind"] + }, + { + "role": "Bulky Support", + "movepool": ["curse", "nightshade", "rest", "return", "sleeptalk"] + } + ] + }, + "ledian": { + "level": 77, + "sets": [ + { + "role": "Generalist", + "movepool": ["agility", "barrier", "batonpass", "lightscreen"] + } + ] + }, + "ariados": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["agility", "batonpass", "growth", "sludgebomb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["agility", "batonpass", "curse", "sludgebomb"] + } + ] + }, + "crobat": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["haze", "hiddenpowerground", "rest", "toxic", "wingattack"] + }, + { + "role": "Generalist", + "movepool": ["haze", "protect", "toxic", "wingattack"] + } + ] + }, + "lanturn": { + "sets": [ + { + "role": "Generalist", + "movepool": ["rest", "sleeptalk", "surf", "thunder"] + } + ] + }, + "togetic": { + "sets": [ + { + "role": "Bulky Support", + "movepool": ["curse", "doubleedge", "fireblast", "rest", "sleeptalk"] + }, + { + "role": "Setup Sweeper", + "movepool": ["encore", "fireblast", "solarbeam", "sunnyday", "zapcannon"], + "preferredTypes": ["Fire", "Grass"] + } + ] + }, + "xatu": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drillpeck", "psychic", "rest", "sleeptalk"] + }, + { + "role": "Thief user", + "movepool": ["confuseray", "drillpeck", "hiddenpowerfire", "psychic", "thief"] + } + ] + }, + "ampharos": { + "sets": [ + { + "role": "Generalist", + "movepool": ["firepunch", "hiddenpowerice", "rest", "sleeptalk", "thunder"] + } + ] + }, + "bellossom": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerfire", "hiddenpowerice", "leechseed", "moonlight", "razorleaf", "sleeppowder", "stunspore"] + }, + { + "role": "Bulky Setup", + "movepool": ["hiddenpowerground", "moonlight", "return", "stunspore", "swordsdance"], + "preferredTypes": ["Normal"] + } + ] + }, + "azumarill": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["perishsong", "rest", "surf", "whirlpool"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "lightscreen", "rest", "sleeptalk", "surf", "toxic"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "doubleedge", "rest", "sleeptalk"] + } + ] + }, + "sudowoodo": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["curse", "earthquake", "rockslide", "selfdestruct"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "rest", "rockslide", "sleeptalk"] + }, + { + "role": "Thief user", + "movepool": ["earthquake", "rockslide", "selfdestruct", "thief"] + } + ] + }, + "politoed": { + "sets": [ + { + "role": "Generalist", + "movepool": ["growth", "rest", "sleeptalk", "surf"] + } + ] + }, + "jumpluff": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["encore", "hiddenpowerflying", "stunspore", "synthesis"] + }, + { + "role": "Generalist", + "movepool": ["encore", "hiddenpowerflying", "leechseed", "stunspore"] + }, + { + "role": "Bulky Support", + "movepool": ["encore", "hiddenpowerflying", "sleeppowder", "stunspore"] + } + ] + }, + "aipom": { + "level": 77, + "sets": [ + { + "role": "Generalist", + "movepool": ["agility", "batonpass", "curse", "return"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "rest", "return", "sleeptalk"] + } + ] + }, + "sunflora": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["growth", "hiddenpowerfire", "hiddenpowerice", "razorleaf", "synthesis"] + } + ] + }, + "yanma": { + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["gigadrain", "hiddenpowerflying", "return", "thief"] + }, + { + "role": "Thief user", + "movepool": ["gigadrain", "hiddenpowerbug", "thief", "wingattack"] + }, + { + "role": "Setup Sweeper", + "movepool": ["endure", "hiddenpowerflying", "return", "reversal"] + } + ] + }, + "quagsire": { + "sets": [ + { + "role": "Generalist", + "movepool": ["earthquake", "rest", "sleeptalk", "surf"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "rest", "sleeptalk", "sludgebomb"] + } + ] + }, + "espeon": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "growth", "hiddenpowerfire", "psychic", "substitute"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "growth", "hiddenpowerfire", "morningsun", "psychic"] + } + ] + }, + "umbreon": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "growth", "hiddenpowerdark", "moonlight"] + } + ] + }, + "murkrow": { + "sets": [ + { + "role": "Generalist", + "movepool": ["drillpeck", "hiddenpowerdark", "pursuit", "toxic"] + }, + { + "role": "Thief user", + "movepool": ["drillpeck", "haze", "hiddenpowerdark", "thief", "toxic"], + "preferredTypes": ["Dark"] + } + ] + }, + "slowking": { + "sets": [ + { + "role": "Generalist", + "movepool": ["psychic", "rest", "sleeptalk", "surf"] + } + ] + }, + "misdreavus": { + "level": 67, + "sets": [ + { + "role": "Generalist", + "movepool": ["meanlook", "painsplit", "perishsong", "protect", "thunder"] + }, + { + "role": "Thief user", + "movepool": ["hypnosis", "psychic", "thief", "thunder"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hypnosis", "painsplit", "psychic", "shadowball", "thief", "thunder"], + "preferredTypes": ["Electric"] + } + ] + }, + "unown": { + "level": 100, + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerpsychic"] + } + ] + }, + "wobbuffet": { + "level": 95, + "sets": [ + { + "role": "Generalist", + "movepool": ["counter", "mimic", "mirrorcoat", "safeguard"] + } + ] + }, + "girafarig": { + "level": 71, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "psychic", "rest", "return", "sleeptalk", "thunder"] + }, + { + "role": "Setup Sweeper", + "movepool": ["agility", "amnesia", "batonpass", "psychic"] + }, + { + "role": "Bulky Setup", + "movepool": ["agility", "batonpass", "psychic", "thunder"] + } + ] + }, + "forretress": { + "sets": [ + { + "role": "Generalist", + "movepool": ["explosion", "hiddenpowerbug", "hiddenpowersteel", "rapidspin", "reflect", "spikes", "toxic"] + } + ] + }, + "dunsparce": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["curse", "glare", "hiddenpowerground", "return"] + }, + { + "role": "Generalist", + "movepool": ["curse", "rest", "return", "sleeptalk", "thunder"] + } + ] + }, + "gligar": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "hiddenpowerflying", "rest", "sleeptalk"] + }, + { + "role": "Thief user", + "movepool": ["counter", "earthquake", "hiddenpowerflying", "thief", "toxic"] + } + ] + }, + "steelix": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "earthquake", "irontail", "rest", "roar", "sleeptalk"] + }, + { + "role": "Bulky Attacker", + "movepool": ["curse", "earthquake", "irontail", "rest"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "earthquake", "explosion", "irontail", "roar"] + } + ] + }, + "granbull": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "rest", "return", "sleeptalk"] + }, + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerground", "rest", "return", "sleeptalk"] + }, + { + "role": "Setup Sweeper", + "movepool": ["curse", "hiddenpowerground", "lovelykiss", "return"] + } + ] + }, + "qwilfish": { + "level": 71, + "sets": [ + { + "role": "Generalist", + "movepool": ["haze", "hydropump", "rest", "sleeptalk", "sludgebomb", "spikes"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "hiddenpowerground", "hydropump", "sludgebomb", "spikes"] + } + ] + }, + "scizor": { + "sets": [ + { + "role": "Generalist", + "movepool": ["agility", "batonpass", "hiddenpowerbug", "hiddenpowersteel", "swordsdance"] + }, + { + "role": "Setup Sweeper", + "movepool": ["agility", "hiddenpowerground", "return", "swordsdance"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "hiddenpowerbug", "hiddenpowersteel", "rest", "sleeptalk", "swordsdance"] + } + ] + }, + "shuckle": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["defensecurl", "rest", "rollout", "toxic"] + } + ] + }, + "heracross": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "earthquake", "megahorn", "rest", "sleeptalk"] + }, + { + "role": "Setup Sweeper", + "movepool": ["curse", "earthquake", "hiddenpowerrock", "megahorn"] + } + ] + }, + "sneasel": { + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerground", "moonlight", "return", "toxic"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dynamicpunch", "icebeam", "moonlight", "return"] + }, + { + "role": "Thief user", + "movepool": ["dynamicpunch", "moonlight", "return", "thief"] + } + ] + }, + "ursaring": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "earthquake", "rest", "return", "sleeptalk"] + } + ] + }, + "magcargo": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "flamethrower", "hiddenpowergrass", "rest", "rockslide", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "fireblast", "flamethrower", "rest", "rockslide"] + } + ] + }, + "piloswine": { + "sets": [ + { + "role": "Generalist", + "movepool": ["earthquake", "icebeam", "rest", "sleeptalk"] + } + ] + }, + "corsola": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["curse", "icebeam", "recover", "rockslide", "sandstorm", "surf", "toxic"] + } + ] + }, + "octillery": { + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["flamethrower", "hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] + } + ] + }, + "delibird": { + "level": 81, + "sets": [ + { + "role": "Thief user", + "movepool": ["hiddenpowerflying", "icebeam", "rapidspin", "spikes", "thief", "toxic"] + } + ] + }, + "mantine": { + "level": 77, + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerelectric", "icebeam", "rest", "sleeptalk", "surf"] + } + ] + }, + "skarmory": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "drillpeck", "rest", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "drillpeck", "rest", "toxic", "whirlwind"] + } + ] + }, + "houndoom": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "fireblast", "pursuit", "solarbeam", "sunnyday"], + "preferredTypes": ["Grass"] + }, + { + "role": "Bulky Attacker", + "movepool": ["crunch", "fireblast", "rest", "sleeptalk"] + }, + { + "role": "Generalist", + "movepool": ["counter", "crunch", "fireblast", "pursuit"] + } + ] + }, + "kingdra": { + "sets": [ + { + "role": "Generalist", + "movepool": ["dragonbreath", "icebeam", "rest", "sleeptalk", "surf"] + } + ] + }, + "donphan": { + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "earthquake", "hiddenpowerrock", "rest", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "earthquake", "hiddenpowerrock", "roar"] + } + ] + }, + "porygon2": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "doubleedge", "icebeam", "recover", "thunder", "thunderwave"] + } + ] + }, + "stantler": { + "level": 71, + "sets": [ + { + "role": "Generalist", + "movepool": ["curse", "earthquake", "rest", "return", "sleeptalk"] + } + ] + }, + "smeargle": { + "sets": [ + { + "role": "Generalist", + "movepool": ["agility", "batonpass", "spikes", "spore", "swordsdance"] + } + ] + }, + "hitmontop": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["curse", "hiddenpowerghost", "hiddenpowerrock", "highjumpkick", "machpunch"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "highjumpkick", "rest", "sleeptalk"] + }, + { + "role": "Generalist", + "movepool": ["hiddenpowerghost", "hiddenpowerrock", "highjumpkick", "rest", "sleeptalk"] + } + ] + }, + "miltank": { + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink"] + } + ] + }, + "blissey": { + "sets": [ + { + "role": "Bulky Support", + "movepool": ["counter", "flamethrower", "healbell", "icebeam", "lightscreen", "present", "softboiled", "thunderwave", "toxic"] + }, + { + "role": "Bulky Attacker", + "movepool": ["healbell", "present", "softboiled", "thunder"] + } + ] + }, + "raikou": { + "sets": [ + { + "role": "Generalist", + "movepool": ["crunch", "hiddenpowerice", "rest", "sleeptalk", "thunder"] + } + ] + }, + "entei": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["fireblast", "hiddenpowerground", "hiddenpowerrock", "solarbeam", "sunnyday"] + }, + { + "role": "Generalist", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "rest", "return", "sleeptalk"] + } + ] + }, + "suicune": { + "sets": [ + { + "role": "Generalist", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "rest", "roar", "surf", "toxic"] + } + ] + }, + "tyranitar": { + "sets": [ + { + "role": "Generalist", + "movepool": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "rockslide", "thunderbolt"] + }, + { + "role": "Bulky Support", + "movepool": ["curse", "earthquake", "rest", "rockslide", "sleeptalk"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "rest", "roar", "rockslide"] + } + ] + }, + "lugia": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aeroblast", "curse", "earthquake", "recover"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "hiddenpowerflying", "recover", "whirlwind"] + }, + { + "role": "Bulky Support", + "movepool": ["psychic", "recover", "thunder", "whirlwind"] + } + ] + }, + "hooh": { + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["curse", "earthquake", "hiddenpowerflying", "recover"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "recover", "sacredfire", "thunder"] + } + ] + }, + "celebi": { + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "leechseed", "psychic", "recover", "toxic"] + }, + { + "role": "Bulky Attacker", + "movepool": ["healbell", "hiddenpowergrass", "psychic", "recover"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "curse", "recover", "return"] + } + ] + } +} diff --git a/data/random-battles/gen2/teams.ts b/data/random-battles/gen2/teams.ts new file mode 100644 index 000000000000..2ff19a98c159 --- /dev/null +++ b/data/random-battles/gen2/teams.ts @@ -0,0 +1,490 @@ +import RandomGen3Teams from '../gen3/teams'; +import {PRNG, PRNGSeed} from '../../../sim/prng'; +import type {MoveCounter} from '../gen8/teams'; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'milkdrink', 'moonlight', 'morningsun', 'painsplit', 'recover', 'softboiled', 'synthesis', +]; +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'curse', 'meditate', 'swordsdance', +]; +// Conglomerate for ease of access +const SETUP = [ + 'agility', 'bellydrum', 'curse', 'growth', 'meditate', 'raindance', 'sunnyday', 'swordsdance', +]; +// Moves that shouldn't be the only STAB moves: +const NO_STAB = [ + 'explosion', 'icywind', 'machpunch', 'pursuit', 'quickattack', 'rapidspin', 'selfdestruct', 'skyattack', 'thief', +]; + +// Moves that should be paired together when possible +const MOVE_PAIRS = [ + ['sleeptalk', 'rest'], + ['meanlook', 'perishsong'], +]; + +export class RandomGen2Teams extends RandomGen3Teams { + randomSets: {[species: IDEntry]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + + constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { + super(format, prng); + this.noStab = NO_STAB; + this.moveEnforcementCheckers = { + Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), + Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), + Flying: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Flying') && ['gligar', 'murkrow', 'xatu'].includes(species.id) + ), + Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), + Ice: (movePool, moves, abilities, types, counter) => !counter.get('Ice'), + Normal: (movePool, moves, abilities, types, counter) => !counter.get('Normal'), + Poison: (movePool, moves, abilities, types, counter) => !counter.get('Poison'), + Psychic: (movePool, moves, abilities, types, counter, species) => !counter.get('Psychic') && species.id !== 'starmie', + Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.id !== 'magcargo', + Water: (movePool, moves, abilities, types, counter) => !counter.get('Water'), + }; + } + + cullMovePool( + types: string[], + moves: Set, + abilities = {}, + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): void { + // Pokemon cannot have multiple Hidden Powers in any circumstance + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + if (hasHiddenPower) { + let movePoolHasHiddenPower = true; + while (movePoolHasHiddenPower) { + movePoolHasHiddenPower = false; + for (const moveid of movePool) { + if (moveid.startsWith('hiddenpower')) { + this.fastPop(movePool, movePool.indexOf(moveid)); + movePoolHasHiddenPower = true; + break; + } + } + } + } + + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there is not room for them both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Team-based move culls + if (teamDetails.spikes) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.statusCure) { + if (movePool.includes('healbell')) this.fastPop(movePool, movePool.indexOf('healbell')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [PHYSICAL_SETUP, PHYSICAL_SETUP], + [SETUP, 'haze'], + ['bodyslam', 'thunderwave'], + [['stunspore', 'thunderwave'], 'toxic'], + + // These attacks are redundant with each other + ['surf', 'hydropump'], + [['bodyslam', 'return'], ['bodyslam', 'doubleedge']], + ['fireblast', 'flamethrower'], + ['thunder', 'thunderbolt'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + if (!role.includes('Bulky')) this.incompatibleMoves(moves, movePool, ['rest', 'sleeptalk'], 'roar'); + } + + // Generate random moveset for a given species, role, preferred type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + movePool: string[], + preferredType: string, + role: RandomTeamsTypes.Role, + ): Set { + const preferredTypes = preferredType ? preferredType.split(',') : []; + const moves = new Set(); + let counter = this.newQueryMoves(moves, species, preferredType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, + preferredType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + // Still need to ensure that multiple Hidden Powers are not added (if maxMoveCount is increased) + while (movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + return moves; + } + + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, new Set(types), counter, species, teamDetails + ); + }; + + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Destiny Bond, Explosion, Present, Spikes and Spore + for (const moveid of ['destinybond', 'explosion', 'present', 'spikes', 'spore']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Baton Pass on Smeargle + if (movePool.includes('batonpass') && species.id === 'smeargle') { + counter = this.addMove('batonpass', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce moves of all Preferred Types + for (const type of preferredTypes) { + if (!counter.get(type)) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + // Rest/Sleep Talk count as recovery in Gen 2 + if (movePool.includes('rest')) { + counter = this.addMove('rest', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (movePool.includes('sleeptalk')) { + counter = this.addMove('sleeptalk', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce setup + if (role.includes('Setup')) { + // First, try to add a non-Speed setup move + const nonSpeedSetupMoves = movePool.filter(moveid => SETUP.includes(moveid) && moveid !== 'agility'); + if (nonSpeedSetupMoves.length) { + const moveid = this.sample(nonSpeedSetupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } else { + if (movePool.includes('agility')) { + counter = this.addMove('agility', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce Thief + if (role === 'Thief user') { + if (movePool.includes('thief')) { + counter = this.addMove('thief', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size && !moves.has('present')) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce coverage move + if (['Fast Attacker', 'Setup Sweeper', 'Bulky Attacker'].includes(role)) { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + return moves; + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + // First, the high-priority items + if (species.id === 'ditto') return 'Metal Powder'; + if (species.id === 'marowak') return 'Thick Club'; + if (species.id === 'pikachu') return 'Light Ball'; + + if (moves.has('thief')) return ''; + + if (moves.has('flail')) return 'Pink Bow'; + if (moves.has('reversal')) return 'Black Belt'; + + if (moves.has('rest') && !moves.has('sleeptalk') && !role.includes('Bulky')) return 'Mint Berry'; + + if (moves.has('bellydrum') && !counter.get('recovery') && this.randomChance(1, 2)) return 'Miracle Berry'; + + // Default to Leftovers + return 'Leftovers'; + } + + randomSet( + species: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false + ): RandomTeamsTypes.RandomSet { + species = this.dex.species.get(species); + const forme = this.getForme(species); + const sets = this.randomSets[species.id]["sets"]; + + const set = this.sampleIfArray(sets); + const role = set.role; + const movePool: string[] = Array.from(set.movepool); + const preferredTypes = set.preferredTypes; + // In Gen 2, if a set has multiple preferred types, enforce all of them. + const preferredType = preferredTypes ? preferredTypes.join() : ''; + + const ability = ''; + let item = undefined; + + const evs = {hp: 255, atk: 255, def: 255, spa: 255, spd: 255, spe: 255}; + const ivs = {hp: 30, atk: 30, def: 30, spa: 30, spd: 30, spe: 30}; + + const types = species.types; + const abilities: string[] = []; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, movePool, + preferredType, role); + const counter = this.newQueryMoves(moves, species, preferredType, abilities); + + // Get items + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + + const level = this.getLevel(species); + + // We use a special variable to track Hidden Power + // so that we can check for all Hidden Powers at once + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + + if (hasHiddenPower) { + let hpType; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hpType = move.substr(11); + } + if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); + const hpIVs: {[k: string]: Partial} = { + dragon: {def: 28}, + ice: {def: 26}, + psychic: {def: 24}, + electric: {atk: 28}, + grass: {atk: 28, def: 28}, + water: {atk: 28, def: 26}, + fire: {atk: 28, def: 24}, + steel: {atk: 26}, + ghost: {atk: 26, def: 28}, + bug: {atk: 26, def: 26}, + rock: {atk: 26, def: 24}, + ground: {atk: 24}, + poison: {atk: 24, def: 28}, + flying: {atk: 24, def: 26}, + fighting: {atk: 24, def: 24}, + }; + let iv: StatID; + for (iv in hpIVs[hpType]) { + ivs[iv] = hpIVs[hpType][iv]!; + } + if (ivs.atk === 28 || ivs.atk === 24) ivs.hp = 14; + if (ivs.def === 28 || ivs.def === 24) ivs.hp -= 8; + } + + // Prepare optimal HP + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if (moves.has('substitute') && item !== 'Leftovers') { + // Should be able to use four Substitutes + if (hp % 4 > 0) break; + } else if (moves.has('bellydrum') && item !== 'Leftovers') { + // Belly Drum users without Leftovers should reach exactly 50% HP + if (hp % 2 === 0) break; + } else { + break; + } + evs.hp -= 4; + } + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + + return { + name: species.baseSpecies, + species: forme, + level, + moves: shuffledMoves, + ability: 'No Ability', + evs, + ivs, + item, + role, + // No shiny chance because Gen 2 shinies have bad IVs + shiny: false, + gender: species.gender ? species.gender : 'M', + }; + } +} + +export default RandomGen2Teams; diff --git a/data/random-battles/gen3/sets.json b/data/random-battles/gen3/sets.json new file mode 100644 index 000000000000..21a4687dd5db --- /dev/null +++ b/data/random-battles/gen3/sets.json @@ -0,0 +1,3132 @@ +{ + "venusaur": { + "level": 81, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowergrass", "leechseed", "sleeppowder", "sludgebomb", "substitute"], + "abilities": ["Overgrow"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerghost", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"], + "abilities": ["Overgrow"], + "preferredTypes": ["Ground"] + } + ] + }, + "charizard": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dragondance", "earthquake", "fireblast", "hiddenpowerflying", "rockslide"], + "abilities": ["Blaze"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "earthquake", "hiddenpowerflying", "rockslide", "substitute"], + "abilities": ["Blaze"], + "preferredTypes": ["Ground"] + }, + { + "role": "Berry Sweeper", + "movepool": ["dragonclaw", "fireblast", "hiddenpowergrass", "substitute"], + "abilities": ["Blaze"] + } + ] + }, + "blastoise": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "rapidspin", "refresh", "roar", "surf", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "refresh", "surf", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "butterfree": { + "level": 96, + "sets": [ + { + "role": "Generalist", + "movepool": ["hiddenpowerfire", "morningsun", "psychic", "sleeppowder", "stunspore", "toxic"], + "abilities": ["Compound Eyes"], + "preferredTypes": ["Psychic"] + } + ] + }, + "beedrill": { + "level": 92, + "sets": [ + { + "role": "Berry Sweeper", + "movepool": ["brickbreak", "endure", "hiddenpowerbug", "sludgebomb", "swordsdance"], + "abilities": ["Swarm"], + "preferredTypes": ["Bug"] + }, + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "doubleedge", "hiddenpowerbug", "sludgebomb", "swordsdance"], + "abilities": ["Swarm"] + } + ] + }, + "pidgeot": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "doubleedge", "hiddenpowerground", "quickattack", "return", "toxic"], + "abilities": ["Keen Eye"], + "preferredTypes": ["Ground"] + }, + { + "role": "Berry Sweeper", + "movepool": ["aerialace", "hiddenpowerground", "return", "substitute"], + "abilities": ["Keen Eye"] + } + ] + }, + "raticate": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "hiddenpowerground", "quickattack", "return", "shadowball"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "facade", "hiddenpowerground", "return", "shadowball"], + "abilities": ["Guts"] + }, + { + "role": "Berry Sweeper", + "movepool": ["return", "reversal", "shadowball", "substitute"], + "abilities": ["Guts"] + } + ] + }, + "fearow": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "drillpeck", "hiddenpowerground", "quickattack", "return"], + "abilities": ["Keen Eye"] + } + ] + }, + "arbok": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "hiddenpowerghost", "rest", "rockslide", "sleeptalk", "sludgebomb"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "pikachu": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["encore", "hiddenpowerice", "substitute", "surf", "thunderbolt"], + "abilities": ["Static"], + "preferredTypes": ["Ice", "Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerice", "surf", "thunderbolt", "volttackle"], + "abilities": ["Static"] + } + ] + }, + "raichu": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["encore", "hiddenpowerice", "surf", "thunderbolt", "thunderwave", "toxic"], + "abilities": ["Static"], + "preferredTypes": ["Ice"] + }, + { + "role": "Berry Sweeper", + "movepool": ["hiddenpowerice", "substitute", "surf", "thunderbolt"], + "abilities": ["Static"] + } + ] + }, + "sandslash": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "hiddenpowerbug", "rapidspin", "rockslide", "swordsdance", "toxic"], + "abilities": ["Sand Veil"], + "preferredTypes": ["Rock"] + } + ] + }, + "nidoqueen": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "fireblast", "icebeam", "shadowball", "sludgebomb", "substitute", "thunderbolt"], + "abilities": ["Poison Point"] + } + ] + }, + "nidoking": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "fireblast", "icebeam", "megahorn", "shadowball", "sludgebomb", "substitute", "thunderbolt"], + "abilities": ["Poison Point"] + } + ] + }, + "clefable": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "return", "shadowball", "softboiled", "thunderwave", "toxic"], + "abilities": ["Cute Charm"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "softboiled", "thunderbolt"], + "abilities": ["Cute Charm"] + } + ] + }, + "ninetales": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "hypnosis", "substitute", "toxic", "willowisp"], + "abilities": ["Flash Fire"] + } + ] + }, + "wigglytuff": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "fireblast", "protect", "wish"], + "abilities": ["Cute Charm"] + }, + { + "role": "Bulky Support", + "movepool": ["doubleedge", "protect", "thunderwave", "toxic", "wish"], + "abilities": ["Cute Charm"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Cute Charm"] + } + ] + }, + "vileplume": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "hiddenpowerfire", "hiddenpowergrass", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll"] + } + ] + }, + "parasect": { + "level": 95, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aromatherapy", "gigadrain", "hiddenpowerbug", "return", "spore", "stunspore"], + "abilities": ["Effect Spore"], + "preferredTypes": ["Normal"] + } + ] + }, + "venomoth": { + "level": 87, + "sets": [ + { + "role": "Generalist", + "movepool": ["batonpass", "hiddenpowerfire", "psychic", "signalbeam", "sleeppowder", "sludgebomb", "substitute"], + "abilities": ["Shield Dust"] + }, + { + "role": "Bulky Support", + "movepool": ["hiddenpowerfire", "psychic", "signalbeam", "sleeppowder", "sludgebomb"], + "abilities": ["Shield Dust"] + } + ] + }, + "dugtrio": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "hiddenpowerbug", "rockslide", "sludgebomb"], + "abilities": ["Arena Trap"] + } + ] + }, + "persian": { + "level": 88, + "sets": [ + { + "role": "Berry Sweeper", + "movepool": ["hiddenpowerground", "irontail", "return", "shadowball", "substitute"], + "abilities": ["Limber"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerground", "hypnosis", "irontail", "return", "shadowball"], + "abilities": ["Limber"] + } + ] + }, + "golduck": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerelectric", "hiddenpowergrass", "hydropump", "hypnosis", "icebeam", "substitute", "surf"], + "abilities": ["Cloud Nine"], + "preferredTypes": ["Ice"] + } + ] + }, + "primeape": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "crosschop", "earthquake", "hiddenpowerghost", "rockslide"], + "abilities": ["Vital Spirit"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "crosschop", "hiddenpowerghost", "rockslide", "substitute"], + "abilities": ["Vital Spirit"] + }, + { + "role": "Berry Sweeper", + "movepool": ["bulkup", "hiddenpowerghost", "reversal", "substitute"], + "abilities": ["Vital Spirit"] + } + ] + }, + "arcanine": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["flamethrower", "hiddenpowergrass", "rest", "sleeptalk", "toxic"], + "abilities": ["Intimidate"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "extremespeed", "fireblast", "hiddenpowerrock", "irontail"], + "abilities": ["Intimidate"], + "preferredTypes": ["Steel"] + }, + { + "role": "Staller", + "movepool": ["flamethrower", "hiddenpowergrass", "hiddenpowerrock", "protect", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "poliwrath": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "bulkup", "earthquake", "hiddenpowerghost", "hydropump", "hypnosis", "substitute"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Attacker", + "movepool": ["brickbreak", "hiddenpowerghost", "hydropump", "hypnosis", "icebeam", "rest", "sleeptalk", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Generalist", + "movepool": ["focuspunch", "hydropump", "icebeam", "substitute", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "alakazam": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "encore", "firepunch", "icepunch", "psychic", "recover", "substitute", "thunderpunch"], + "abilities": ["Synchronize"], + "preferredTypes": ["Fire"] + } + ] + }, + "machamp": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "crosschop", "earthquake", "hiddenpowerghost", "rockslide"], + "abilities": ["Guts"] + }, + { + "role": "Bulky Attacker", + "movepool": ["crosschop", "hiddenpowerghost", "rest", "rockslide", "sleeptalk"], + "abilities": ["Guts"] + } + ] + }, + "victreebel": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfire", "sludgebomb", "solarbeam", "sunnyday"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerground", "magicalleaf", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerground", "sleeppowder", "sludgebomb", "swordsdance", "synthesis"], + "abilities": ["Chlorophyll"] + } + ] + }, + "tentacruel": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hydropump", "icebeam", "rapidspin", "sludgebomb", "surf", "toxic"], + "abilities": ["Clear Body", "Liquid Ooze"] + } + ] + }, + "golem": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "protect", "rockslide", "toxic"], + "abilities": ["Rock Head"] + }, + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "earthquake", "explosion", "hiddenpowerbug", "rockslide", "toxic"], + "abilities": ["Rock Head"] + } + ] + }, + "rapidash": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fireblast", "hiddenpowergrass", "hiddenpowerrock", "substitute", "toxic"], + "abilities": ["Flash Fire"] + } + ] + }, + "slowbro": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "psychic", "rest", "sleeptalk", "surf", "thunderwave", "toxic"], + "abilities": ["Own Tempo"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "psychic", "rest", "surf"], + "abilities": ["Own Tempo"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "rest", "sleeptalk", "surf"], + "abilities": ["Own Tempo"] + } + ] + }, + "magneton": { + "level": 85, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic"], + "abilities": ["Magnet Pull"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerice", "rest", "sleeptalk", "thunderbolt"], + "abilities": ["Magnet Pull"] + } + ] + }, + "farfetchd": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "batonpass", "return", "swordsdance"], + "abilities": ["Inner Focus"] + } + ] + }, + "dodrio": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "drillpeck", "hiddenpowerground", "quickattack", "return"], + "abilities": ["Early Bird"] + }, + { + "role": "Berry Sweeper", + "movepool": ["drillpeck", "flail", "hiddenpowerground", "quickattack", "substitute"], + "abilities": ["Early Bird"] + } + ] + }, + "dewgong": { + "level": 87, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Attacker", + "movepool": ["encore", "icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "muk": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["explosion", "fireblast", "hiddenpowerground", "rest", "sludgebomb", "toxic"], + "abilities": ["Sticky Hold"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["curse", "hiddenpowerground", "rest", "sludgebomb"], + "abilities": ["Sticky Hold"] + } + ] + }, + "cloyster": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["explosion", "icebeam", "rapidspin", "spikes", "surf", "toxic"], + "abilities": ["Shell Armor"] + }, + { + "role": "Bulky Support", + "movepool": ["explosion", "rapidspin", "spikes", "surf", "toxic"], + "abilities": ["Shell Armor"] + } + ] + }, + "gengar": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["destinybond", "explosion", "firepunch", "icepunch", "substitute", "thunderbolt", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Electric", "Ice"] + } + ] + }, + "hypno": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "calmmind", "firepunch", "psychic"], + "abilities": ["Insomnia"] + }, + { + "role": "Bulky Support", + "movepool": ["firepunch", "protect", "psychic", "toxic", "wish"], + "abilities": ["Insomnia"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Insomnia"] + } + ] + }, + "kingler": { + "level": 91, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "hiddenpowerghost", "hiddenpowerground", "surf", "swordsdance"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "electrode": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["explosion", "hiddenpowerice", "substitute", "thunderbolt", "toxic"], + "abilities": ["Static"] + } + ] + }, + "exeggutor": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["gigadrain", "hiddenpowerfire", "psychic", "sleeppowder", "stunspore", "synthesis"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Wallbreaker", + "movepool": ["explosion", "gigadrain", "hiddenpowerfire", "leechseed", "psychic", "sleeppowder", "stunspore", "substitute"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerfire", "psychic", "solarbeam", "sunnyday"], + "abilities": ["Chlorophyll"] + } + ] + }, + "marowak": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "earthquake", "rockslide", "swordsdance"], + "abilities": ["Rock Head"] + }, + { + "role": "Generalist", + "movepool": ["bonemerang", "doubleedge", "rockslide", "swordsdance"], + "abilities": ["Rock Head"] + } + ] + }, + "hitmonlee": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "bulkup", "earthquake", "hiddenpowerghost", "machpunch", "rockslide"], + "abilities": ["Limber"], + "preferredTypes": ["Ghost"] + }, + { + "role": "Berry Sweeper", + "movepool": ["earthquake", "hiddenpowerghost", "reversal", "rockslide", "substitute"], + "abilities": ["Limber"], + "preferredTypes": ["Ghost"] + } + ] + }, + "hitmonchan": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "earthquake", "hiddenpowerghost", "machpunch", "rapidspin", "rockslide", "skyuppercut", "toxic"], + "abilities": ["Keen Eye"], + "preferredTypes": ["Ghost"] + } + ] + }, + "lickitung": { + "level": 94, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "earthquake", "protect", "wish"], + "abilities": ["Own Tempo"] + }, + { + "role": "Bulky Support", + "movepool": ["healbell", "knockoff", "protect", "seismictoss", "wish"], + "abilities": ["Own Tempo"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Own Tempo"] + } + ] + }, + "weezing": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["explosion", "fireblast", "haze", "painsplit", "sludgebomb", "toxic", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rhydon": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "megahorn", "rockslide", "substitute", "swordsdance"], + "abilities": ["Rock Head"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "megahorn", "rockslide"], + "abilities": ["Rock Head"] + } + ] + }, + "tangela": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["hiddenpowergrass", "leechseed", "morningsun", "sleeppowder", "stunspore", "toxic"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerfire", "morningsun", "sleeppowder", "solarbeam", "sunnyday"], + "abilities": ["Chlorophyll"] + } + ] + }, + "kangaskhan": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "rest", "return", "shadowball", "toxic"], + "abilities": ["Early Bird"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "earthquake", "protect", "return", "wish"], + "abilities": ["Early Bird"] + } + ] + }, + "seaking": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerelectric", "hiddenpowergrass", "hydropump", "icebeam", "megahorn", "raindance"], + "abilities": ["Swift Swim"] + } + ] + }, + "starmie": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hydropump", "icebeam", "psychic", "recover", "surf", "thunderbolt"], + "abilities": ["Natural Cure"] + } + ] + }, + "mrmime": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "encore", "firepunch", "hypnosis", "psychic", "substitute", "thunderbolt"], + "abilities": ["Soundproof"] + } + ] + }, + "scyther": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "batonpass", "hiddenpowerground", "silverwind", "swordsdance"], + "abilities": ["Swarm"], + "preferredTypes": ["Ground"] + } + ] + }, + "jynx": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerfire", "icebeam", "lovelykiss", "psychic", "substitute"], + "abilities": ["Oblivious"] + } + ] + }, + "electabuzz": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crosschop", "firepunch", "focuspunch", "hiddenpowergrass", "icepunch", "substitute", "thunderbolt"], + "abilities": ["Static"], + "preferredTypes": ["Ice"] + }, + { + "role": "Berry Sweeper", + "movepool": ["firepunch", "hiddenpowergrass", "icepunch", "substitute", "thunderbolt"], + "abilities": ["Static"], + "preferredTypes": ["Ice"] + } + ] + }, + "magmar": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crosschop", "fireblast", "flamethrower", "focuspunch", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderpunch", "toxic"], + "abilities": ["Flame Body"], + "preferredTypes": ["Electric"] + }, + { + "role": "Berry Sweeper", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "hiddenpowerice", "substitute", "thunderpunch"], + "abilities": ["Flame Body"], + "preferredTypes": ["Electric"] + } + ] + }, + "pinsir": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerbug", "rockslide", "swordsdance"], + "abilities": ["Hyper Cutter"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "hiddenpowerbug", "rockslide"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "tauros": { + "level": 76, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "hiddenpowerghost", "return"], + "abilities": ["Intimidate"] + } + ] + }, + "gyarados": { + "level": 74, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "dragondance", "earthquake", "hiddenpowerflying", "hydropump"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "dragondance", "earthquake", "hiddenpowerflying", "substitute"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "lapras": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["healbell", "icebeam", "rest", "sleeptalk", "surf", "thunderbolt", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Fast Attacker", + "movepool": ["healbell", "icebeam", "rest", "sleeptalk", "thunderbolt", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "ditto": { + "level": 100, + "sets": [ + { + "role": "Generalist", + "movepool": ["transform"], + "abilities": ["Limber"] + } + ] + }, + "vaporeon": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "protect", "surf", "toxic", "wish"], + "abilities": ["Water Absorb"] + } + ] + }, + "jolteon": { + "level": 77, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic"], + "abilities": ["Volt Absorb"] + }, + { + "role": "Fast Attacker", + "movepool": ["batonpass", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Volt Absorb"] + } + ] + }, + "flareon": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["flamethrower", "hiddenpowergrass", "protect", "toxic", "wish"], + "abilities": ["Flash Fire"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "fireblast", "hiddenpowergrass", "hiddenpowerrock", "irontail", "shadowball", "toxic"], + "abilities": ["Flash Fire"] + } + ] + }, + "omastar": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "spikes", "surf"], + "abilities": ["Shell Armor", "Swift Swim"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"], + "abilities": ["Swift Swim"] + } + ] + }, + "kabutops": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "hiddenpowerflying", "rockslide", "surf", "swordsdance"], + "abilities": ["Battle Armor", "Swift Swim"] + } + ] + }, + "aerodactyl": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "hiddenpowerflying", "rockslide"], + "abilities": ["Rock Head"] + }, + { + "role": "Berry Sweeper", + "movepool": ["earthquake", "hiddenpowerflying", "rockslide", "substitute"], + "abilities": ["Pressure"] + } + ] + }, + "snorlax": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bodyslam", "earthquake", "return", "selfdestruct", "shadowball"], + "abilities": ["Immunity"] + }, + { + "role": "Bulky Support", + "movepool": ["bodyslam", "curse", "rest", "sleeptalk"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "earthquake", "rest"], + "abilities": ["Immunity", "Thick Fat"] + } + ] + }, + "articuno": { + "level": 80, + "sets": [ + { + "role": "Staller", + "movepool": ["healbell", "hiddenpowerfire", "icebeam", "protect", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerfire", "icebeam", "rest", "sleeptalk"], + "abilities": ["Pressure"] + } + ] + }, + "zapdos": { + "level": 74, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["batonpass", "hiddenpowerice", "substitute", "thunderbolt", "thunderwave", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerice", "rest", "sleeptalk", "thunderbolt"], + "abilities": ["Pressure"] + } + ] + }, + "moltres": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "morningsun", "substitute", "toxic", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "dragonite": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "dragondance", "earthquake", "healbell", "hiddenpowerflying", "rest", "substitute"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Ground"] + }, + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "doubleedge", "earthquake", "fireblast", "hiddenpowerflying"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Ground"] + } + ] + }, + "mewtwo": { + "level": 66, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "flamethrower", "psychic", "recover"], + "abilities": ["Pressure"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "flamethrower", "icebeam", "psychic", "thunderbolt"], + "abilities": ["Pressure"], + "preferredTypes": ["Electric"] + } + ] + }, + "mew": { + "level": 72, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["explosion", "flamethrower", "psychic", "softboiled", "thunderwave", "transform"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "flamethrower", "psychic", "softboiled", "thunderbolt"], + "abilities": ["Synchronize"] + }, + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "earthquake", "explosion", "rockslide", "softboiled", "swordsdance"], + "abilities": ["Synchronize"], + "preferredTypes": ["Ground", "Rock"] + } + ] + }, + "meganium": { + "level": 85, + "sets": [ + { + "role": "Staller", + "movepool": ["bodyslam", "earthquake", "hiddenpowergrass", "leechseed", "synthesis", "toxic"], + "abilities": ["Overgrow"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "earthquake", "hiddenpowerrock", "swordsdance", "synthesis"], + "abilities": ["Overgrow"], + "preferredTypes": ["Ground"] + } + ] + }, + "typhlosion": { + "level": 79, + "sets": [ + { + "role": "Berry Sweeper", + "movepool": ["fireblast", "flamethrower", "hiddenpowerice", "substitute", "thunderpunch"], + "abilities": ["Blaze"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "fireblast", "flamethrower", "focuspunch", "hiddenpowerice", "substitute", "thunderpunch", "toxic"], + "abilities": ["Blaze"], + "preferredTypes": ["Electric"] + } + ] + }, + "feraligatr": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "hiddenpowerflying", "hydropump", "rockslide", "swordsdance"], + "abilities": ["Torrent"], + "preferredTypes": ["Ground"] + } + ] + }, + "furret": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "doubleedge", "quickattack", "return", "shadowball"], + "abilities": ["Keen Eye"] + }, + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "doubleedge", "return", "shadowball", "trick"], + "abilities": ["Keen Eye"] + }, + { + "role": "Berry Sweeper", + "movepool": ["return", "reversal", "shadowball", "substitute"], + "abilities": ["Keen Eye"] + } + ] + }, + "noctowl": { + "level": 92, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerfire", "hypnosis", "return", "toxic", "whirlwind"], + "abilities": ["Insomnia"] + } + ] + }, + "ledian": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "batonpass", "silverwind", "swordsdance"], + "abilities": ["Swarm"] + }, + { + "role": "Generalist", + "movepool": ["batonpass", "silverwind", "substitute", "swordsdance"], + "abilities": ["Swarm"] + } + ] + }, + "ariados": { + "level": 98, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "batonpass", "signalbeam", "sludgebomb"], + "abilities": ["Insomnia", "Swarm"] + }, + { + "role": "Bulky Support", + "movepool": ["batonpass", "signalbeam", "sludgebomb", "spiderweb", "toxic"], + "abilities": ["Insomnia", "Swarm"], + "preferredTypes": ["Bug"] + }, + { + "role": "Bulky Setup", + "movepool": ["agility", "batonpass", "sludgebomb", "spiderweb"], + "abilities": ["Insomnia"] + } + ] + }, + "crobat": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "haze", "hiddenpowerground", "shadowball", "sludgebomb", "toxic"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Ground"] + } + ] + }, + "lanturn": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "thunderbolt", "toxic"], + "abilities": ["Volt Absorb"] + } + ] + }, + "togetic": { + "level": 96, + "sets": [ + { + "role": "Staller", + "movepool": ["charm", "encore", "flamethrower", "seismictoss", "softboiled", "thunderwave", "toxic"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Serene Grace"] + } + ] + }, + "xatu": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerfire", "psychic", "rest"], + "abilities": ["Early Bird"] + }, + { + "role": "Bulky Attacker", + "movepool": ["batonpass", "calmmind", "hiddenpowerfire", "protect", "psychic", "wish"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "psychic", "thunderwave", "toxic", "wish"], + "abilities": ["Synchronize"] + } + ] + }, + "ampharos": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["firepunch", "healbell", "hiddenpowerice", "thunderbolt", "toxic"], + "abilities": ["Static"], + "preferredTypes": ["Ice"] + } + ] + }, + "bellossom": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerfire", "leechseed", "magicalleaf", "moonlight", "sleeppowder", "stunspore"], + "abilities": ["Chlorophyll"] + } + ] + }, + "azumarill": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "doubleedge", "hiddenpowerghost", "hydropump", "rest", "return", "sleeptalk"], + "abilities": ["Huge Power"], + "preferredTypes": ["Normal"] + } + ] + }, + "sudowoodo": { + "level": 92, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["brickbreak", "doubleedge", "earthquake", "explosion", "rockslide", "toxic"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "politoed": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowergrass", "hypnosis", "icebeam", "rest", "surf", "toxic"], + "abilities": ["Water Absorb"], + "preferredTypes": ["Ice"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "jumpluff": { + "level": 87, + "sets": [ + { + "role": "Generalist", + "movepool": ["encore", "hiddenpowerflying", "sleeppowder", "synthesis", "toxic"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Staller", + "movepool": ["hiddenpowerflying", "leechseed", "protect", "substitute"], + "abilities": ["Chlorophyll"] + } + ] + }, + "aipom": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "focuspunch", "return", "shadowball", "substitute", "thunderwave", "toxic"], + "abilities": ["Pickup", "Run Away"], + "preferredTypes": ["Ghost"] + }, + { + "role": "Generalist", + "movepool": ["batonpass", "brickbreak", "return", "shadowball", "substitute", "thunderwave", "toxic"], + "abilities": ["Pickup", "Run Away"] + }, + { + "role": "Wallbreaker", + "movepool": ["batonpass", "brickbreak", "doubleedge", "return", "shadowball"], + "abilities": ["Pickup", "Run Away"] + } + ] + }, + "sunflora": { + "level": 100, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerfire", "leechseed", "razorleaf", "synthesis", "toxic"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfire", "solarbeam", "sunnyday", "synthesis"], + "abilities": ["Chlorophyll"] + } + ] + }, + "yanma": { + "level": 91, + "sets": [ + { + "role": "Berry Sweeper", + "movepool": ["hiddenpowerflying", "hypnosis", "reversal", "shadowball", "substitute"], + "abilities": ["Compound Eyes", "Speed Boost"] + }, + { + "role": "Fast Attacker", + "movepool": ["aerialace", "doubleedge", "hiddenpowerground", "hypnosis", "signalbeam", "toxic"], + "abilities": ["Compound Eyes", "Speed Boost"], + "preferredTypes": ["Ground"] + } + ] + }, + "quagsire": { + "level": 85, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "icebeam", "protect", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "espeon": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "hiddenpowerfire", "morningsun", "psychic", "substitute"], + "abilities": ["Synchronize"] + } + ] + }, + "umbreon": { + "level": 85, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerfire", "hiddenpowerground", "protect", "toxic", "wish"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Support", + "movepool": ["batonpass", "protect", "toxic", "wish"], + "abilities": ["Synchronize"] + } + ] + }, + "murkrow": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "drillpeck", "hiddenpowerfighting", "hiddenpowerground", "shadowball"], + "abilities": ["Insomnia"] + }, + { + "role": "Bulky Attacker", + "movepool": ["drillpeck", "hiddenpowerground", "pursuit", "shadowball", "thunderwave", "toxic"], + "abilities": ["Insomnia"], + "preferredTypes": ["Ground"] + } + ] + }, + "slowking": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "psychic", "rest", "sleeptalk", "surf", "thunderwave", "toxic"], + "abilities": ["Own Tempo"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "psychic", "rest", "surf"], + "abilities": ["Own Tempo"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "rest", "sleeptalk", "surf"], + "abilities": ["Own Tempo"] + } + ] + }, + "misdreavus": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["hiddenpowerice", "painsplit", "shadowball", "thunderbolt", "thunderwave", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Staller", + "movepool": ["meanlook", "perishsong", "protect", "shadowball"], + "abilities": ["Levitate"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Levitate"] + } + ] + }, + "unown": { + "level": 100, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerpsychic"], + "abilities": ["Levitate"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerbug", "hiddenpowerfighting"], + "abilities": ["Levitate"] + } + ] + }, + "wobbuffet": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["counter", "destinybond", "encore", "mirrorcoat"], + "abilities": ["Shadow Tag"] + } + ] + }, + "girafarig": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "hiddenpowerfire", "psychic", "rest", "substitute", "thunderbolt"], + "abilities": ["Early Bird"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "protect", "psychic", "return", "shadowball", "thunderbolt", "thunderwave", "toxic", "wish"], + "abilities": ["Early Bird"] + } + ] + }, + "forretress": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "hiddenpowerbug", "hiddenpowersteel", "rapidspin", "spikes", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "dunsparce": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "earthquake", "rest", "shadowball"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headbutt", "shadowball", "thunderwave"], + "abilities": ["Serene Grace"] + } + ] + }, + "gligar": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerflying", "quickattack", "rockslide", "substitute", "swordsdance"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "steelix": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "earthquake", "explosion", "hiddenpowerrock", "irontail", "rest", "roar", "toxic"], + "abilities": ["Rock Head"] + }, + { + "role": "Staller", + "movepool": ["doubleedge", "earthquake", "hiddenpowerrock", "protect", "toxic"], + "abilities": ["Rock Head"] + } + ] + }, + "granbull": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "rest", "return", "sleeptalk"], + "abilities": ["Intimidate"] + }, + { + "role": "Wallbreaker", + "movepool": ["bulkup", "doubleedge", "earthquake", "overheat", "shadowball"], + "abilities": ["Intimidate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "healbell", "return", "shadowball", "thunderwave"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "qwilfish": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hydropump", "selfdestruct", "shadowball", "sludgebomb", "swordsdance"], + "abilities": ["Poison Point", "Swift Swim"] + }, + { + "role": "Fast Attacker", + "movepool": ["destinybond", "hydropump", "selfdestruct", "sludgebomb", "spikes"], + "abilities": ["Poison Point", "Swift Swim"] + } + ] + }, + "scizor": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "hiddenpowerground", "morningsun", "silverwind", "steelwing", "swordsdance"], + "abilities": ["Swarm"] + }, + { + "role": "Generalist", + "movepool": ["agility", "batonpass", "hiddenpowerground", "silverwind", "steelwing"], + "abilities": ["Swarm"] + } + ] + }, + "shuckle": { + "level": 98, + "sets": [ + { + "role": "Staller", + "movepool": ["encore", "rest", "toxic", "wrap"], + "abilities": ["Sturdy"] + } + ] + }, + "heracross": { + "level": 77, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "earthquake", "hiddenpowerghost", "megahorn", "rockslide"], + "abilities": ["Guts"], + "preferredTypes": ["Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "megahorn", "rockslide", "swordsdance"], + "abilities": ["Guts"] + }, + { + "role": "Berry Sweeper", + "movepool": ["endure", "megahorn", "reversal", "rockslide", "substitute"], + "abilities": ["Swarm"] + } + ] + }, + "sneasel": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "hiddenpowerflying", "shadowball", "substitute", "swordsdance"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Fighting", "Ghost"] + }, + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "doubleedge", "hiddenpowerflying", "shadowball", "swordsdance"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Fighting", "Ghost"] + } + ] + }, + "ursaring": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "focuspunch", "hiddenpowerghost", "return"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "facade", "hiddenpowerghost", "return"], + "abilities": ["Guts"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerghost", "return", "swordsdance"], + "abilities": ["Guts"] + } + ] + }, + "magcargo": { + "level": 99, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "rest", "sleeptalk", "toxic"], + "abilities": ["Flame Body"] + }, + { + "role": "Staller", + "movepool": ["fireblast", "flamethrower", "hiddenpowergrass", "protect", "toxic"], + "abilities": ["Flame Body"] + } + ] + }, + "piloswine": { + "level": 87, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "icebeam", "protect", "toxic"], + "abilities": ["Oblivious"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "icebeam", "rest", "rockslide", "sleeptalk"], + "abilities": ["Oblivious"] + } + ] + }, + "corsola": { + "level": 97, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "recover", "surf", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "octillery": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "hiddenpowerelectric", "hiddenpowergrass", "icebeam", "surf", "thunderwave"], + "abilities": ["Suction Cups"], + "preferredTypes": ["Ice"] + } + ] + }, + "delibird": { + "level": 97, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aerialace", "doubleedge", "focuspunch", "hiddenpowerground", "icebeam", "quickattack"], + "abilities": ["Hustle"], + "preferredTypes": ["Ground"] + } + ] + }, + "mantine": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["hiddenpowergrass", "icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["haze", "icebeam", "protect", "surf", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"], + "abilities": ["Swift Swim"] + } + ] + }, + "skarmory": { + "level": 74, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["drillpeck", "protect", "spikes", "toxic"], + "abilities": ["Keen Eye"] + }, + { + "role": "Generalist", + "movepool": ["drillpeck", "spikes", "toxic", "whirlwind"], + "abilities": ["Keen Eye"] + }, + { + "role": "Staller", + "movepool": ["protect", "spikes", "toxic", "whirlwind"], + "abilities": ["Keen Eye"] + } + ] + }, + "houndoom": { + "level": 81, + "sets": [ + { + "role": "Berry Sweeper", + "movepool": ["crunch", "fireblast", "hiddenpowergrass", "substitute"], + "abilities": ["Flash Fire"] + }, + { + "role": "Fast Attacker", + "movepool": ["crunch", "fireblast", "hiddenpowergrass", "pursuit", "willowisp"], + "abilities": ["Flash Fire"] + } + ] + }, + "kingdra": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerelectric", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "substitute", "surf"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Ice"] + } + ] + }, + "donphan": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "rapidspin", "rest", "rockslide", "sleeptalk", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "porygon2": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "recover", "return", "thunderbolt", "thunderwave", "toxic"], + "abilities": ["Trace"] + } + ] + }, + "stantler": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "hypnosis", "return", "shadowball", "thunderbolt", "thunderwave"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "smeargle": { + "level": 89, + "sets": [ + { + "role": "Generalist", + "movepool": ["encore", "explosion", "spikes", "spore"], + "abilities": ["Own Tempo"] + } + ] + }, + "hitmontop": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "bulkup", "earthquake", "hiddenpowerghost", "machpunch", "rapidspin", "rockslide", "toxic"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ghost"] + } + ] + }, + "miltank": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "blissey": { + "level": 78, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "raikou": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "crunch", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Pressure"], + "preferredTypes": ["Ice"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerice", "rest", "sleeptalk", "thunderbolt"], + "abilities": ["Pressure"] + } + ] + }, + "entei": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["flamethrower", "rest", "sleeptalk", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Staller", + "movepool": ["flamethrower", "protect", "substitute", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "flamethrower", "hiddenpowergrass", "substitute"], + "abilities": ["Pressure"] + } + ] + }, + "suicune": { + "level": 74, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "rest", "sleeptalk", "surf"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "rest", "substitute", "surf"], + "abilities": ["Pressure"] + } + ] + }, + "tyranitar": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "fireblast", "hiddenpowerflying", "rockslide"], + "abilities": ["Sand Stream"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "rockslide", "thunderwave"], + "abilities": ["Sand Stream"] + }, + { + "role": "Wallbreaker", + "movepool": ["earthquake", "fireblast", "hiddenpowerflying", "rest", "rockslide", "sleeptalk"], + "abilities": ["Sand Stream"], + "preferredTypes": ["Ground"] + } + ] + }, + "lugia": { + "level": 69, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "psychic", "recover", "substitute", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "recover", "thunderbolt"], + "abilities": ["Pressure"] + } + ] + }, + "hooh": { + "level": 70, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "recover", "sacredfire", "substitute", "thunderbolt", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "recover", "sacredfire", "thunderbolt"], + "abilities": ["Pressure"] + } + ] + }, + "celebi": { + "level": 74, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "calmmind", "hiddenpowerfire", "hiddenpowergrass", "psychic", "recover"], + "abilities": ["Natural Cure"] + }, + { + "role": "Staller", + "movepool": ["healbell", "hiddenpowerfire", "hiddenpowergrass", "leechseed", "psychic", "recover", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "sceptile": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerfire", "hiddenpowerice", "leafblade", "leechseed", "substitute"], + "abilities": ["Overgrow"] + }, + { + "role": "Berry Sweeper", + "movepool": ["hiddenpowerice", "leafblade", "substitute", "thunderpunch"], + "abilities": ["Overgrow"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "hiddenpowerice", "leafblade", "thunderpunch", "toxic"], + "abilities": ["Overgrow"], + "preferredTypes": ["Ground"] + } + ] + }, + "blaziken": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "fireblast", "hiddenpowerice", "rockslide", "skyuppercut", "thunderpunch"], + "abilities": ["Blaze"] + }, + { + "role": "Berry Sweeper", + "movepool": ["endure", "fireblast", "reversal", "swordsdance"], + "abilities": ["Blaze"] + }, + { + "role": "Wallbreaker", + "movepool": ["earthquake", "fireblast", "rockslide", "skyuppercut", "swordsdance"], + "abilities": ["Blaze"] + } + ] + }, + "swampert": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "hydropump", "protect", "surf", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "hydropump", "rest", "sleeptalk", "surf"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "hydropump", "icebeam", "refresh", "surf", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "mightyena": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "doubleedge", "healbell", "hiddenpowerfighting", "shadowball", "toxic"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "linoone": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "extremespeed", "hiddenpowerfighting", "shadowball"], + "abilities": ["Pickup"] + }, + { + "role": "Bulky Setup", + "movepool": ["bellydrum", "hiddenpowerground", "return", "shadowball", "substitute"], + "abilities": ["Pickup"], + "preferredTypes": ["Ground"] + } + ] + }, + "beautifly": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerfire", "morningsun", "psychic", "toxic"], + "abilities": ["Swarm"] + } + ] + }, + "dustox": { + "level": 96, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerground", "moonlight", "sludgebomb", "toxic", "whirlwind"], + "abilities": ["Shield Dust"] + } + ] + }, + "ludicolo": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"], + "abilities": ["Swift Swim"] + } + ] + }, + "shiftry": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "explosion", "shadowball", "swordsdance"], + "abilities": ["Chlorophyll", "Early Bird"] + }, + { + "role": "Staller", + "movepool": ["hiddenpowerdark", "leechseed", "substitute", "toxic"], + "abilities": ["Chlorophyll", "Early Bird"] + } + ] + }, + "swellow": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aerialace", "doubleedge", "hiddenpowerground", "quickattack", "return"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["aerialace", "doubleedge", "facade", "hiddenpowerground", "return"], + "abilities": ["Guts"] + } + ] + }, + "pelipper": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Keen Eye"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Keen Eye"] + } + ] + }, + "gardevoir": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "firepunch", "hypnosis", "icepunch", "psychic", "substitute", "thunderbolt"], + "abilities": ["Trace"], + "preferredTypes": ["Fire"] + } + ] + }, + "masquerain": { + "level": 96, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hydropump", "icebeam", "stunspore", "substitute", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "breloom": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerghost", "hiddenpowerrock", "machpunch", "skyuppercut", "spore", "substitute", "swordsdance"], + "abilities": ["Effect Spore"] + }, + { + "role": "Generalist", + "movepool": ["focuspunch", "hiddenpowerghost", "hiddenpowerrock", "spore", "substitute"], + "abilities": ["Effect Spore"] + } + ] + }, + "vigoroth": { + "level": 84, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "bulkup", "earthquake", "return", "shadowball", "slackoff"], + "abilities": ["Vital Spirit"] + } + ] + }, + "slaking": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "hyperbeam", "return", "shadowball"], + "abilities": ["Truant"] + } + ] + }, + "ninjask": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "hiddenpowerflying", "substitute", "swordsdance"], + "abilities": ["Speed Boost"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "hiddenpowerflying", "protect", "swordsdance"], + "abilities": ["Speed Boost"] + } + ] + }, + "shedinja": { + "level": 100, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["agility", "batonpass", "hiddenpowerfighting", "shadowball", "silverwind", "toxic"], + "abilities": ["Wonder Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "exploud": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "overheat", "return", "shadowball"], + "abilities": ["Soundproof"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "flamethrower", "icebeam", "return", "shadowball", "substitute"], + "abilities": ["Soundproof"], + "preferredTypes": ["Ground"] + } + ] + }, + "hariyama": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "crosschop", "earthquake", "hiddenpowerghost", "knockoff", "rockslide"], + "abilities": ["Guts", "Thick Fat"] + }, + { + "role": "Bulky Attacker", + "movepool": ["crosschop", "hiddenpowerghost", "rest", "rockslide", "sleeptalk"], + "abilities": ["Guts"] + } + ] + }, + "nosepass": { + "level": 99, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "rockslide", "thunderwave", "toxic"], + "abilities": ["Magnet Pull"] + } + ] + }, + "delcatty": { + "level": 96, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["doubleedge", "protect", "thunderwave", "toxic", "wish"], + "abilities": ["Cute Charm"] + }, + { + "role": "Generalist", + "movepool": ["bodyslam", "healbell", "protect", "wish"], + "abilities": ["Cute Charm"] + }, + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "icebeam", "thunderbolt"], + "abilities": ["Cute Charm"] + } + ] + }, + "sableye": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "recover", "seismictoss", "toxic"], + "abilities": ["Keen Eye"] + }, + { + "role": "Bulky Attacker", + "movepool": ["recover", "seismictoss", "shadowball", "toxic"], + "abilities": ["Keen Eye"] + } + ] + }, + "mawile": { + "level": 95, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "brickbreak", "hiddenpowersteel", "rockslide", "substitute", "swordsdance"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Bulky Support", + "movepool": ["focuspunch", "hiddenpowersteel", "rockslide", "substitute", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "aggron": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "irontail", "rockslide", "thunderwave", "toxic"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + }, + { + "role": "Generalist", + "movepool": ["doubleedge", "earthquake", "focuspunch", "irontail", "rockslide", "substitute"], + "abilities": ["Rock Head"] + } + ] + }, + "medicham": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "bulkup", "recover", "rockslide", "shadowball", "substitute"], + "abilities": ["Pure Power"], + "preferredTypes": ["Ghost"] + }, + { + "role": "Berry Sweeper", + "movepool": ["bulkup", "reversal", "shadowball", "substitute"], + "abilities": ["Pure Power"] + } + ] + }, + "manectric": { + "level": 82, + "sets": [ + { + "role": "Berry Sweeper", + "movepool": ["crunch", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Static"] + } + ] + }, + "plusle": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["batonpass", "encore", "hiddenpowerice", "substitute", "thunderbolt", "toxic"], + "abilities": ["Plus"] + }, + { + "role": "Staller", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic"], + "abilities": ["Plus"] + }, + { + "role": "Bulky Support", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic", "wish"], + "abilities": ["Plus"] + } + ] + }, + "minun": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["batonpass", "encore", "hiddenpowerice", "substitute", "thunderbolt", "toxic"], + "abilities": ["Minus"] + }, + { + "role": "Staller", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic"], + "abilities": ["Minus"] + }, + { + "role": "Bulky Support", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic", "wish"], + "abilities": ["Minus"] + } + ] + }, + "volbeat": { + "level": 93, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "icepunch", "tailglow", "thunderbolt"], + "abilities": ["Swarm"] + } + ] + }, + "illumise": { + "level": 94, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "moonlight", "seismictoss", "thunderwave", "toxic"], + "abilities": ["Oblivious"] + }, + { + "role": "Generalist", + "movepool": ["batonpass", "encore", "seismictoss", "substitute", "thunderwave", "toxic"], + "abilities": ["Oblivious"] + } + ] + }, + "roselia": { + "level": 97, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerfire", "magicalleaf", "spikes", "synthesis"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "hiddenpowergrass", "spikes", "synthesis", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "swalot": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["encore", "explosion", "hiddenpowerground", "icebeam", "painsplit", "shadowball", "sludgebomb", "toxic", "yawn"], + "abilities": ["Liquid Ooze"] + } + ] + }, + "sharpedo": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "hiddenpowerflying", "hydropump"], + "abilities": ["Rough Skin"] + }, + { + "role": "Berry Sweeper", + "movepool": ["crunch", "hiddenpowerelectric", "hiddenpowergrass", "hydropump", "icebeam", "substitute"], + "abilities": ["Rough Skin"] + } + ] + }, + "wailord": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Water Veil"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowergrass", "icebeam", "selfdestruct", "surf", "toxic"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + } + ] + }, + "camerupt": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "explosion", "fireblast", "rest", "rockslide", "sleeptalk", "toxic"], + "abilities": ["Magma Armor"] + } + ] + }, + "torkoal": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["explosion", "fireblast", "flamethrower", "hiddenpowergrass", "rest", "toxic"], + "abilities": ["White Smoke"] + } + ] + }, + "grumpig": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "firepunch", "psychic", "substitute", "thunderpunch"], + "abilities": ["Thick Fat"], + "preferredTypes": ["Fire"] + } + ] + }, + "spinda": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["encore", "protect", "seismictoss", "shadowball", "substitute", "toxic"], + "abilities": ["Own Tempo"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Own Tempo"] + } + ] + }, + "flygon": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "hiddenpowerbug", "quickattack", "rockslide"], + "abilities": ["Levitate"] + }, + { + "role": "Staller", + "movepool": ["dragonclaw", "earthquake", "fireblast", "protect", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dragonclaw", "earthquake", "fireblast", "rockslide", "substitute", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "cacturne": { + "level": 94, + "sets": [ + { + "role": "Staller", + "movepool": ["focuspunch", "hiddenpowerdark", "leechseed", "substitute"], + "abilities": ["Sand Veil"] + }, + { + "role": "Generalist", + "movepool": ["hiddenpowerdark", "needlearm", "spikes", "thunderpunch"], + "abilities": ["Sand Veil"] + } + ] + }, + "altaria": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragonclaw", "earthquake", "flamethrower", "haze", "healbell", "rest", "toxic"], + "abilities": ["Natural Cure"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "fireblast", "healbell", "hiddenpowerflying", "rest"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Ground"] + } + ] + }, + "zangoose": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "quickattack", "return", "shadowball", "swordsdance"], + "abilities": ["Immunity"], + "preferredTypes": ["Ghost"] + } + ] + }, + "seviper": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crunch", "earthquake", "flamethrower", "hiddenpowergrass", "sludgebomb"], + "abilities": ["Shed Skin"], + "preferredTypes": ["Ground"] + } + ] + }, + "lunatone": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "hiddenpowerfire", "hypnosis", "icebeam", "psychic"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["explosion", "hiddenpowerfire", "hypnosis", "icebeam", "psychic", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "solrock": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "protect", "rockslide", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Wallbreaker", + "movepool": ["earthquake", "explosion", "overheat", "rockslide", "shadowball"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + } + ] + }, + "whiscash": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Oblivious"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "icebeam", "protect", "toxic"], + "abilities": ["Oblivious"] + } + ] + }, + "crawdaunt": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "crunch", "doubleedge", "hiddenpowerelectric", "hiddenpowergrass", "icebeam", "surf"], + "abilities": ["Hyper Cutter"], + "preferredTypes": ["Normal"] + }, + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "doubleedge", "hiddenpowerflying", "surf", "swordsdance"], + "abilities": ["Hyper Cutter"], + "preferredTypes": ["Normal"] + } + ] + }, + "claydol": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "icebeam", "psychic", "rapidspin", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "cradily": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "hiddenpowergrass", "recover", "rockslide", "toxic"], + "abilities": ["Suction Cups"], + "preferredTypes": ["Ground"] + } + ] + }, + "armaldo": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "hiddenpowerbug", "rapidspin", "rockslide", "swordsdance"], + "abilities": ["Battle Armor"], + "preferredTypes": ["Ground"] + } + ] + }, + "milotic": { + "level": 77, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "recover", "refresh", "surf", "toxic"], + "abilities": ["Marvel Scale"] + } + ] + }, + "castform": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "icebeam", "return", "thunderbolt", "thunderwave"], + "abilities": ["Forecast"] + } + ] + }, + "kecleon": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "return", "shadowball", "thunderwave", "trick"], + "abilities": ["Color Change"] + } + ] + }, + "banette": { + "level": 88, + "sets": [ + { + "role": "Berry Sweeper", + "movepool": ["destinybond", "endure", "hiddenpowerfighting", "shadowball"], + "abilities": ["Insomnia"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "hiddenpowerfighting", "knockoff", "shadowball", "willowisp"], + "abilities": ["Insomnia"], + "preferredTypes": ["Fighting"] + } + ] + }, + "dusclops": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["rest", "seismictoss", "sleeptalk", "willowisp"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["rest", "seismictoss", "shadowball", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Generalist", + "movepool": ["focuspunch", "icebeam", "painsplit", "shadowball", "substitute", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "tropius": { + "level": 95, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hiddenpowerflying", "swordsdance", "synthesis"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "hiddenpowerflying", "leechseed", "synthesis", "toxic"], + "abilities": ["Chlorophyll"] + } + ] + }, + "chimecho": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "healbell", "hiddenpowerfire", "psychic", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "absol": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "doubleedge", "hiddenpowerfighting", "quickattack", "shadowball", "swordsdance"], + "abilities": ["Pressure"], + "preferredTypes": ["Fighting", "Ghost"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "hiddenpowerfighting", "quickattack", "shadowball"], + "abilities": ["Pressure"] + } + ] + }, + "glalie": { + "level": 82, + "sets": [ + { + "role": "Generalist", + "movepool": ["earthquake", "explosion", "icebeam", "spikes", "toxic"], + "abilities": ["Inner Focus"] + } + ] + }, + "walrein": { + "level": 80, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Attacker", + "movepool": ["encore", "icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "huntail": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "hiddenpowerelectric", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Ice"] + } + ] + }, + "gorebyss": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerelectric", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"], + "abilities": ["Swift Swim"] + } + ] + }, + "relicanth": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "earthquake", "hiddenpowerflying", "rest", "rockslide", "sleeptalk", "toxic"], + "abilities": ["Rock Head", "Swift Swim"], + "preferredTypes": ["Ground"] + } + ] + }, + "luvdisc": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "substitute", "surf", "toxic"], + "abilities": ["Swift Swim"] + } + ] + }, + "salamence": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "fireblast", "hiddenpowerflying", "rockslide"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Wallbreaker", + "movepool": ["brickbreak", "doubleedge", "earthquake", "fireblast", "hiddenpowerflying", "rockslide"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "metagross": { + "level": 73, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "explosion", "meteormash", "rockslide"], + "abilities": ["Clear Body"] + }, + { + "role": "Setup Sweeper", + "movepool": ["agility", "earthquake", "explosion", "meteormash", "psychic", "rockslide"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + } + ] + }, + "regirock": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["curse", "earthquake", "explosion", "rest", "rockslide", "superpower"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "rest", "rockslide", "sleeptalk", "thunderwave", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "regice": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["explosion", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave"], + "abilities": ["Clear Body"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "thunderbolt", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "registeel": { + "level": 78, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["rest", "seismictoss", "sleeptalk", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "latias": { + "level": 67, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "dragonclaw", "hiddenpowerfire", "psychic", "recover"], + "abilities": ["Levitate"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "dragonclaw", "recover", "refresh"], + "abilities": ["Levitate"] + } + ] + }, + "latios": { + "level": 67, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "dragonclaw", "hiddenpowerfire", "psychic", "recover"], + "abilities": ["Levitate"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "dragonclaw", "recover", "refresh"], + "abilities": ["Levitate"] + } + ] + }, + "kyogre": { + "level": 67, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder"], + "abilities": ["Drizzle"] + } + ] + }, + "groudon": { + "level": 69, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "hiddenpowerbug", "overheat", "rockslide", "substitute", "swordsdance", "thunderwave"], + "abilities": ["Drought"], + "preferredTypes": ["Rock"] + } + ] + }, + "rayquaza": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "hiddenpowerflying", "overheat", "rockslide"], + "abilities": ["Air Lock"], + "preferredTypes": ["Ground"] + }, + { + "role": "Wallbreaker", + "movepool": ["earthquake", "extremespeed", "hiddenpowerflying", "overheat", "rockslide"], + "abilities": ["Air Lock"], + "preferredTypes": ["Ground", "Normal"] + } + ] + }, + "jirachi": { + "level": 73, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "firepunch", "protect", "psychic", "toxic", "wish"], + "abilities": ["Serene Grace"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "firepunch", "icepunch", "psychic", "substitute", "thunderbolt"], + "abilities": ["Serene Grace"], + "preferredTypes": ["Fire"] + } + ] + }, + "deoxys": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "firepunch", "icebeam", "psychoboost", "shadowball", "superpower"], + "abilities": ["Pressure"], + "preferredTypes": ["Fighting", "Ghost"] + } + ] + }, + "deoxysattack": { + "level": 71, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "firepunch", "icebeam", "psychoboost", "shadowball", "superpower"], + "abilities": ["Pressure"], + "preferredTypes": ["Fighting", "Ghost"] + } + ] + }, + "deoxysdefense": { + "level": 75, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["recover", "seismictoss", "spikes", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysspeed": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "firepunch", "icebeam", "psychic", "recover", "substitute"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + }, + { + "role": "Bulky Support", + "movepool": ["psychoboost", "recover", "spikes", "superpower", "toxic"], + "abilities": ["Pressure"] + } + ] + } +} diff --git a/data/random-battles/gen3/teams.ts b/data/random-battles/gen3/teams.ts new file mode 100644 index 000000000000..b67d2e3f65ca --- /dev/null +++ b/data/random-battles/gen3/teams.ts @@ -0,0 +1,773 @@ +import RandomGen4Teams from '../gen4/teams'; +import {PRNG, PRNGSeed} from '../../../sim/prng'; +import type {MoveCounter} from '../gen8/teams'; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'milkdrink', 'moonlight', 'morningsun', 'recover', 'slackoff', 'softboiled', 'synthesis', +]; +// Conglomerate for ease of access +const SETUP = [ + 'acidarmor', 'agility', 'bellydrum', 'bulkup', 'calmmind', 'curse', 'dragondance', 'growth', 'howl', 'irondefense', + 'meditate', 'raindance', 'sunnyday', 'swordsdance', 'tailglow', +]; +// Moves that shouldn't be the only STAB moves: +const NO_STAB = [ + 'eruption', 'explosion', 'fakeout', 'focuspunch', 'futuresight', 'icywind', 'knockoff', 'machpunch', 'pursuit', + 'quickattack', 'rapidspin', 'selfdestruct', 'skyattack', 'waterspout', +]; + +// Moves that should be paired together when possible +const MOVE_PAIRS = [ + ['sleeptalk', 'rest'], + ['protect', 'wish'], + ['leechseed', 'substitute'], + ['focuspunch', 'substitute'], + ['batonpass', 'spiderweb'], +]; + +export class RandomGen3Teams extends RandomGen4Teams { + battleHasDitto: boolean; + battleHasWobbuffet: boolean; + + randomSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + + constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { + super(format, prng); + this.noStab = NO_STAB; + this.battleHasDitto = false; + this.battleHasWobbuffet = false; + this.moveEnforcementCheckers = { + Bug: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Bug') && ['armaldo', 'heracross', 'parasect'].includes(species.id) + ), + Dark: (movePool, moves, abilities, types, counter) => !counter.get('Dark'), + Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), + Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), + Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), + Flying: (movePool, moves, abilities, types, counter, species) => (!counter.get('Flying') && species.id !== 'crobat'), + Ghost: (movePool, moves, abilities, types, counter) => !counter.get('Ghost'), + Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), + Ice: (movePool, moves, abilities, types, counter) => !counter.get('Ice'), + Normal: (movePool, moves, abilities, types, counter, species) => !counter.get('Normal'), + Poison: (movePool, moves, abilities, types, counter) => !counter.get('Poison') && !counter.get('Bug'), + Psychic: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Psychic') && species.baseStats.spa >= 100 + ), + Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock'), + Steel: (movePool, moves, abilities, types, counter, species) => (!counter.get('Steel') && species.id !== 'forretress'), + Water: (movePool, moves, abilities, types, counter, species) => !counter.get('Water'), + }; + } + + cullMovePool( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): void { + // Pokemon cannot have multiple Hidden Powers in any circumstance + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + if (hasHiddenPower) { + let movePoolHasHiddenPower = true; + while (movePoolHasHiddenPower) { + movePoolHasHiddenPower = false; + for (const moveid of movePool) { + if (moveid.startsWith('hiddenpower')) { + this.fastPop(movePool, movePool.indexOf(moveid)); + movePoolHasHiddenPower = true; + break; + } + } + } + } + + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there is not room for them both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Team-based move culls + if (teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.spikes && teamDetails.spikes >= 2) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.statusCure) { + if (movePool.includes('aromatherapy')) this.fastPop(movePool, movePool.indexOf('aromatherapy')); + if (movePool.includes('healbell')) this.fastPop(movePool, movePool.indexOf('healbell')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + // Develop additional move lists + const badWithSetup = ['knockoff', 'rapidspin', 'toxic']; + const statusMoves = this.cachedStatusMoves; + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [statusMoves, 'trick'], + [SETUP, badWithSetup], + ['rest', ['protect', 'substitute']], + [['selfdestruct', 'explosion'], ['destinybond', 'painsplit', 'rest']], + + // These attacks are redundant with each other + ['surf', 'hydropump'], + [['bodyslam', 'return'], ['bodyslam', 'doubleedge']], + ['fireblast', 'flamethrower'], + + // Assorted hardcodes go here: + // Granbull + ['bulkup', 'overheat'], + // Heracross + ['endure', 'substitute'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + const statusInflictingMoves = ['stunspore', 'thunderwave', 'toxic', 'willowisp', 'yawn']; + if (role !== 'Staller') { + this.incompatibleMoves(moves, movePool, statusInflictingMoves, statusInflictingMoves); + } + } + + // Generate random moveset for a given species, role, preferred type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + movePool: string[], + preferredType: string, + role: RandomTeamsTypes.Role, + ): Set { + const preferredTypes = preferredType ? preferredType.split(',') : []; + const moves = new Set(); + let counter = this.newQueryMoves(moves, species, preferredType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, + preferredType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + // Still need to ensure that multiple Hidden Powers are not added (if maxMoveCount is increased) + while (movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + return moves; + } + + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, new Set(types), counter, species, teamDetails + ); + }; + + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Seismic Toss and Spore + for (const moveid of ['seismictoss', 'spikes', 'spore']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Substitute on non-Setup sets with Baton Pass + if (!role.includes('Setup')) { + if (movePool.includes('batonpass') && movePool.includes('substitute')) { + counter = this.addMove('substitute', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce moves of all Preferred Types + for (const type of preferredTypes) { + if (!counter.get(type)) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup', 'Staller'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Staller moves + if (role === 'Staller') { + const enforcedMoves = ['protect', 'toxic', 'wish']; + for (const move of enforcedMoves) { + if (movePool.includes(move)) { + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce setup + if (role.includes('Setup') || role === 'Berry Sweeper') { + const setupMoves = movePool.filter(moveid => SETUP.includes(moveid)); + if (setupMoves.length) { + const moveid = this.sample(setupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Berry Sweeper moves + if (role === 'Berry Sweeper') { + // Enforce Flail/Reversal + for (const move of ['flail', 'reversal']) { + if (movePool.includes(move)) { + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + // Enforce one of Endure and Substitute, but not both + const hpControlMoves = []; + for (const moveid of movePool) { + if (['endure', 'substitute'].includes(moveid)) hpControlMoves.push(moveid); + } + if (hpControlMoves.length) { + const moveid = this.sample(hpControlMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce coverage move + if (['Fast Attacker', 'Setup Sweeper', 'Bulky Attacker', 'Wallbreaker', 'Berry Sweeper'].includes(role)) { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + return moves; + } + + shouldCullAbility( + ability: string, + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role + ) { + switch (ability) { + case 'Chlorophyll': + return !teamDetails.sun; + case 'Rock Head': + return !counter.get('recoil'); + case 'Swift Swim': + return !teamDetails.rain; + } + + return false; + } + + + getAbility( + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + if (abilities.length <= 1) return abilities[0]; + + // Hard-code abilities here + if (species.id === 'yanma') return counter.get('inaccurate') ? 'Compound Eyes' : 'Speed Boost'; + + const abilityAllowed: string[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilities) { + if (!this.shouldCullAbility( + ability, types, moves, abilities, counter, movePool, teamDetails, species, preferredType, role + )) { + abilityAllowed.push(ability); + } + } + + // Pick a random allowed ability + if (abilityAllowed.length >= 1) return this.sample(abilityAllowed); + + // If all abilities are rejected, prioritize weather abilities over non-weather abilities + if (!abilityAllowed.length) { + const weatherAbilities = abilities.filter(a => ['Chlorophyll', 'Swift Swim'].includes(a)); + if (weatherAbilities.length) return this.sample(weatherAbilities); + } + + // Pick a random ability + return this.sample(abilities); + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + // First, the high-priority items + if (species.id === 'farfetchd') return 'Stick'; + if (species.id === 'latias' || species.id === 'latios') return 'Soul Dew'; + if (species.id === 'linoone' && role === 'Setup Sweeper') return 'Silk Scarf'; + if (species.id === 'marowak') return 'Thick Club'; + if (species.id === 'pikachu') return 'Light Ball'; + if (species.id === 'shedinja') return 'Lum Berry'; + if (species.id === 'shuckle') return 'Leftovers'; + if (species.id === 'unown') return counter.get('Physical') ? 'Choice Band' : 'Twisted Spoon'; + + if (moves.has('trick')) return 'Choice Band'; + if ( + moves.has('rest') && !moves.has('sleeptalk') && + // Altaria wants Chesto Berry on Dragon Dance + Rest + (moves.has('dragondance') || !['Early Bird', 'Natural Cure', 'Shed Skin'].includes(ability)) + ) return 'Chesto Berry'; + + // Medium priority items + if (counter.get('Physical') >= 4) return 'Choice Band'; + if (counter.get('Physical') >= 3 && (moves.has('batonpass') || (role === 'Wallbreaker' && counter.get('Special')))) { + return 'Choice Band'; + } + + if ( + moves.has('dragondance') && ability !== 'Natural Cure' && + !moves.has('healbell') && !moves.has('substitute') + ) return 'Lum Berry'; + if (moves.has('bellydrum')) return moves.has('substitute') ? 'Salac Berry' : 'Lum Berry'; + + if (moves.has('raindance') && counter.get('Special') >= 3) return 'Petaya Berry'; + + if (role === 'Berry Sweeper') { + if (moves.has('endure')) return 'Salac Berry'; + if (moves.has('flail') || moves.has('reversal')) return (species.baseStats.spe >= 90) ? 'Liechi Berry' : 'Salac Berry'; + if (moves.has('substitute') && counter.get('Physical') >= 3) return 'Liechi Berry'; + if (moves.has('substitute') && counter.get('Special') >= 3) return 'Petaya Berry'; + } + + const salacReqs = species.baseStats.spe >= 60 && species.baseStats.spe <= 100 && !counter.get('priority'); + + if (moves.has('bulkup') && moves.has('substitute') && counter.get('Status') === 2 && salacReqs) return 'Salac Berry'; + + if (moves.has('swordsdance') && moves.has('substitute') && counter.get('Status') === 2) { + if (salacReqs) return 'Salac Berry'; + if (species.baseStats.spe > 100 && counter.get('Physical') >= 2) return 'Liechi Berry'; + } + + if (moves.has('swordsdance') && counter.get('Status') === 1) { + if (salacReqs) return 'Salac Berry'; + if (species.baseStats.spe > 100) { + return (counter.get('Physical') >= 3 && this.randomChance(1, 2)) ? 'Liechi Berry' : 'Lum Berry'; + } + } + + if (species.id === 'deoxys' || species.id === 'deoxysattack') return 'White Herb'; + + // Default to Leftovers + return 'Leftovers'; + } + + randomSet( + species: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false + ): RandomTeamsTypes.RandomSet { + species = this.dex.species.get(species); + const forme = this.getForme(species); + const sets = this.randomSets[species.id]["sets"]; + + const set = this.sampleIfArray(sets); + const role = set.role; + const movePool: string[] = Array.from(set.movepool); + const preferredTypes = set.preferredTypes; + // In Gen 3, if a set has multiple preferred types, enforce all of them. + const preferredType = preferredTypes ? preferredTypes.join() : ''; + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const abilities = set.abilities!; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, movePool, + preferredType, role); + const counter = this.newQueryMoves(moves, species, preferredType, abilities); + + // Get ability + ability = this.getAbility(new Set(types), moves, abilities, counter, movePool, teamDetails, species, + preferredType, role); + + // Get items + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + + const level = this.getLevel(species); + + // We use a special variable to track Hidden Power + // so that we can check for all Hidden Powers at once + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + + if (hasHiddenPower) { + let hpType; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hpType = move.substr(11); + } + if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); + const HPivs = this.dex.types.get(hpType).HPivs; + let iv: StatID; + for (iv in HPivs) { + ivs[iv] = HPivs[iv]!; + } + } + + // Prepare optimal HP + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if (moves.has('substitute') && ['flail', 'reversal'].some(m => moves.has(m))) { + // Flail/Reversal users should be able to use four Substitutes + if (hp % 4 > 0) break; + } else if (moves.has('substitute') && (item === 'Salac Berry' || item === 'Petaya Berry' || item === 'Liechi Berry')) { + // Other pinch berry holders should have berries activate after three Substitutes + if (hp % 4 === 0) break; + } else if (moves.has('bellydrum')) { + // Belly Drum users should be able to use Belly Drum twice + if (hp % 2 > 0) break; + } else { + break; + } + evs.hp -= 4; + } + + // Minimize confusion damage + if (!counter.get('Physical') && !moves.has('transform')) { + evs.atk = 0; + ivs.atk = hasHiddenPower ? (ivs.atk || 31) - 28 : 0; + } + + // Prepare optimal HP + let hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if (moves.has('substitute') && ['endeavor', 'flail', 'reversal'].some(m => moves.has(m))) { + // Endeavor/Flail/Reversal users should be able to use four Substitutes + if (hp % 4 === 0) evs.hp -= 4; + } else if (moves.has('substitute') && (item === 'Salac Berry' || item === 'Petaya Berry' || item === 'Liechi Berry')) { + // Other pinch berry holders should have berries activate after three Substitutes + while (hp % 4 > 0) { + evs.hp -= 4; + hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + } + } + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + + return { + name: species.baseSpecies, + species: forme, + gender: species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + role, + }; + } + + randomTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.seed; + const ruleTable = this.dex.formats.getRuleTable(this.format); + const pokemon: RandomTeamsTypes.RandomSet[] = []; + + // For Monotype + const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); + const typePool = this.dex.types.names(); + const type = this.forceMonotype || this.sample(typePool); + + const baseFormes: {[k: string]: number} = {}; + const typeCount: {[k: string]: number} = {}; + const typeWeaknesses: {[k: string]: number} = {}; + const typeDoubleWeaknesses: {[k: string]: number} = {}; + const teamDetails: RandomTeamsTypes.TeamDetails = {}; + let numMaxLevelPokemon = 0; + + const pokemonList = Object.keys(this.randomSets); + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, pokemonList); + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + const baseSpecies = this.sampleNoReplace(baseSpeciesPool); + const species = this.dex.species.get(this.sample(pokemonPool[baseSpecies])); + if (!species.exists) continue; + + // Limit to one of each species (Species Clause) + if (baseFormes[species.baseSpecies]) continue; + + // Prevent Shedinja from generating after Tyranitar + if (species.name === 'Shedinja' && teamDetails.sand) continue; + + // Limit to one Wobbuffet per battle (not just per team) + if (species.name === 'Wobbuffet' && this.battleHasWobbuffet) continue; + // Limit to one Ditto per battle in Gen 2 + if (this.dex.gen < 3 && species.name === 'Ditto' && this.battleHasDitto) continue; + + const types = species.types; + + if (!isMonotype && !this.forceMonotype) { + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + // Limit two of any type + let skip = false; + for (const typeName of types) { + if (typeCount[typeName] >= 2 * limitFactor) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit three weak to any type, and one double weak to any type + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; + if (typeWeaknesses[typeName] >= 3 * limitFactor) { + skip = true; + break; + } + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0; + if (typeDoubleWeaknesses[typeName] >= 1 * limitFactor) { + skip = true; + break; + } + } + } + if (skip) continue; + + // Limit one level 100 Pokemon + if (!this.adjustLevel && (this.getLevel(species) === 100) && numMaxLevelPokemon >= limitFactor) { + continue; + } + } + + // Okay, the set passes, add it to our team + const set = this.randomSet(species, teamDetails); + pokemon.push(set); + + // Don't bother tracking details for the last Pokemon + if (pokemon.length === this.maxTeamSize) break; + + // Now that our Pokemon has passed all checks, we can increment our counters + baseFormes[species.baseSpecies] = 1; + + // Increment type counters + for (const typeName of types) { + if (typeName in typeCount) { + typeCount[typeName]++; + } else { + typeCount[typeName] = 1; + } + } + + // Increment weakness counter + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + typeWeaknesses[typeName]++; + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + typeDoubleWeaknesses[typeName]++; + } + } + + // Increment level 100 counter + if (set.level === 100) numMaxLevelPokemon++; + + // Update team details + if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; + if (set.ability === 'Drought' || set.moves.includes('sunnyday')) teamDetails.sun = 1; + if (set.ability === 'Sand Stream') teamDetails.sand = 1; + if (set.moves.includes('aromatherapy') || set.moves.includes('healbell')) teamDetails.statusCure = 1; + if (set.moves.includes('spikes')) teamDetails.spikes = 1; + if (set.moves.includes('rapidspin')) teamDetails.rapidSpin = 1; + + // In Gen 3, Shadow Tag users can prevent each other from switching out, possibly causing and endless battle or at least causing a long stall war + // To prevent this, we prevent more than one Wobbuffet in a single battle. + if (species.id === 'wobbuffet') this.battleHasWobbuffet = true; + if (species.id === 'ditto') this.battleHasDitto = true; + } + + if (pokemon.length < this.maxTeamSize && !isMonotype && !this.forceMonotype && pokemon.length < 12) { + throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); + } + + return pokemon; + } +} + +export default RandomGen3Teams; diff --git a/data/random-battles/gen4/sets.json b/data/random-battles/gen4/sets.json new file mode 100644 index 000000000000..77a9f8faa612 --- /dev/null +++ b/data/random-battles/gen4/sets.json @@ -0,0 +1,3943 @@ +{ + "venusaur": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["leechseed", "powerwhip", "sleeppowder", "sludgebomb", "substitute"], + "abilities": ["Overgrow"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "leafstorm", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Overgrow"] + } + ] + }, + "charizard": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "dragonpulse", "fireblast", "hiddenpowergrass", "roost"], + "abilities": ["Blaze"] + } + ] + }, + "blastoise": { + "level": 85, + "sets": [ + { + "role": "Spinner", + "movepool": ["icebeam", "rapidspin", "rest", "roar", "surf", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "butterfree": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bugbuzz", "sleeppowder", "stunspore", "uturn"], + "abilities": ["Compound Eyes"] + } + ] + }, + "beedrill": { + "level": 97, + "sets": [ + { + "role": "Fast Support", + "movepool": ["brickbreak", "poisonjab", "toxicspikes", "uturn"], + "abilities": ["Swarm"] + }, + { + "role": "Fast Attacker", + "movepool": ["brickbreak", "poisonjab", "swordsdance", "uturn", "xscissor"], + "abilities": ["Swarm"] + } + ] + }, + "pidgeot": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "heatwave", "return", "roost"], + "abilities": ["Tangled Feet"] + }, + { + "role": "Wallbreaker", + "movepool": ["bravebird", "doubleedge", "pursuit", "quickattack", "return", "roost", "uturn"], + "abilities": ["Tangled Feet"] + } + ] + }, + "raticate": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "protect", "suckerpunch", "swordsdance", "uturn"], + "abilities": ["Guts"] + } + ] + }, + "fearow": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "drillpeck", "quickattack", "return", "uturn"], + "abilities": ["Keen Eye"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "drillpeck", "pursuit", "return", "uturn"], + "abilities": ["Keen Eye"] + } + ] + }, + "arbok": { + "level": 92, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crunch", "earthquake", "glare", "gunkshot", "poisonjab", "seedbomb", "switcheroo"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "pikachu": { + "level": 92, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "grassknot", "hiddenpowerice", "surf", "thunderbolt", "volttackle"], + "abilities": ["Static"], + "preferredTypes": ["Ice"] + } + ] + }, + "raichu": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["encore", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "surf", "thunderbolt"], + "abilities": ["Static"] + } + ] + }, + "sandslash": { + "level": 90, + "sets": [ + { + "role": "Spinner", + "movepool": ["earthquake", "nightslash", "rapidspin", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Sand Veil"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "nightslash", "stoneedge", "substitute", "swordsdance", "xscissor"], + "abilities": ["Sand Veil"], + "preferredTypes": ["Rock"] + } + ] + }, + "nidoqueen": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "icebeam", "roar", "stealthrock", "toxicspikes"], + "abilities": ["Poison Point"], + "preferredTypes": ["Ice"] + } + ] + }, + "nidoking": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "fireblast", "icebeam", "megahorn", "stealthrock", "suckerpunch", "thunderbolt"], + "abilities": ["Poison Point"], + "preferredTypes": ["Ice"] + } + ] + }, + "clefable": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "doubleedge", "fireblast", "icebeam", "softboiled", "stealthrock", "thunderwave"], + "abilities": ["Magic Guard"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "icebeam", "softboiled", "thunderbolt"], + "abilities": ["Magic Guard"] + } + ] + }, + "ninetales": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["energyball", "fireblast", "hiddenpowerrock", "hypnosis", "nastyplot"], + "abilities": ["Flash Fire"], + "preferredTypes": ["Grass"] + } + ] + }, + "wigglytuff": { + "level": 98, + "sets": [ + { + "role": "Fast Support", + "movepool": ["doubleedge", "protect", "thunderwave", "toxic", "wish"], + "abilities": ["Cute Charm"] + }, + { + "role": "Bulky Support", + "movepool": ["bodyslam", "fireblast", "healbell", "protect", "stealthrock", "wish"], + "abilities": ["Cute Charm"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Cute Charm"] + } + ] + }, + "vileplume": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "energyball", "hiddenpowerground", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerfire", "sludgebomb", "solarbeam", "sunnyday"], + "abilities": ["Chlorophyll"] + } + ] + }, + "parasect": { + "level": 97, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "seedbomb", "spore", "stunspore", "synthesis", "xscissor"], + "abilities": ["Dry Skin"] + }, + { + "role": "Bulky Attacker", + "movepool": ["pursuit", "seedbomb", "spore", "swordsdance", "xscissor"], + "abilities": ["Dry Skin"] + } + ] + }, + "venomoth": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bugbuzz", "roost", "sleeppowder", "toxicspikes", "uturn"], + "abilities": ["Tinted Lens"] + } + ] + }, + "dugtrio": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "nightslash", "stealthrock", "stoneedge", "suckerpunch"], + "abilities": ["Arena Trap"], + "preferredTypes": ["Rock"] + } + ] + }, + "persian": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bite", "doubleedge", "fakeout", "hypnosis", "return", "seedbomb", "taunt", "uturn"], + "abilities": ["Technician"], + "preferredTypes": ["Dark"] + } + ] + }, + "golduck": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "encore", "focusblast", "hiddenpowergrass", "hydropump", "icebeam", "psychic", "surf"], + "abilities": ["Cloud Nine"], + "preferredTypes": ["Ice"] + } + ] + }, + "primeape": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "encore", "stoneedge", "uturn"], + "abilities": ["Vital Spirit"], + "preferredTypes": ["Rock"] + } + ] + }, + "arcanine": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["extremespeed", "flareblitz", "hiddenpowergrass", "morningsun", "roar", "thunderfang", "toxic", "willowisp"], + "abilities": ["Intimidate"], + "preferredTypes": ["Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["crunch", "extremespeed", "flareblitz", "ironhead", "morningsun", "thunderfang"], + "abilities": ["Intimidate"], + "preferredTypes": ["Normal"] + } + ] + }, + "poliwrath": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["brickbreak", "bulkup", "icepunch", "waterfall"], + "abilities": ["Water Absorb"] + }, + { + "role": "Fast Support", + "movepool": ["encore", "focuspunch", "icepunch", "substitute", "waterfall"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Support", + "movepool": ["bulkup", "rest", "sleeptalk", "toxic", "waterfall"], + "abilities": ["Water Absorb"] + } + ] + }, + "alakazam": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "encore", "focusblast", "psychic", "shadowball", "substitute", "trick"], + "abilities": ["Synchronize"], + "preferredTypes": ["Fighting"] + } + ] + }, + "machamp": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulletpunch", "dynamicpunch", "earthquake", "payback", "stoneedge", "toxic"], + "abilities": ["No Guard"], + "preferredTypes": ["Dark"] + } + ] + }, + "victreebel": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerground", "leafblade", "leafstorm", "sleeppowder", "sludgebomb", "suckerpunch"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["sludgebomb", "solarbeam", "sunnyday", "weatherball"], + "abilities": ["Chlorophyll"] + } + ] + }, + "tentacruel": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "hydropump", "icebeam", "rapidspin", "sludgebomb", "surf", "toxicspikes"], + "abilities": ["Clear Body", "Liquid Ooze"] + } + ] + }, + "golem": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Rock Head"] + } + ] + }, + "rapidash": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["flareblitz", "hypnosis", "megahorn", "morningsun", "willowisp"], + "abilities": ["Flash Fire"] + } + ] + }, + "slowbro": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "icebeam", "psychic", "slackoff", "surf", "thunderwave", "toxic"], + "abilities": ["Own Tempo"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "psychic", "slackoff", "surf"], + "abilities": ["Own Tempo"] + } + ] + }, + "farfetchd": { + "level": 100, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "heatwave", "leafblade", "nightslash", "quickattack", "uturn"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Grass"] + }, + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "leafblade", "nightslash", "return", "swordsdance"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Grass"] + } + ] + }, + "dodrio": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bravebird", "pursuit", "quickattack", "return", "roost"], + "abilities": ["Early Bird"] + } + ] + }, + "dewgong": { + "level": 91, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Fast Attacker", + "movepool": ["raindance", "rest", "surf", "toxic"], + "abilities": ["Hydration"] + }, + { + "role": "Bulky Support", + "movepool": ["encore", "icebeam", "raindance", "rest", "surf", "toxic"], + "abilities": ["Hydration", "Thick Fat"] + } + ] + }, + "muk": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["brickbreak", "curse", "explosion", "gunkshot", "icepunch", "payback", "poisonjab", "rest", "shadowsneak"], + "abilities": ["Sticky Hold"], + "preferredTypes": ["Fighting"] + } + ] + }, + "cloyster": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["explosion", "iceshard", "rapidspin", "rockblast", "spikes", "surf", "toxicspikes"], + "abilities": ["Shell Armor", "Skill Link"] + } + ] + }, + "gengar": { + "level": 77, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["explosion", "focusblast", "painsplit", "shadowball", "sludgebomb", "substitute", "trick", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "hypno": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["protect", "psychic", "thunderwave", "toxic", "wish"], + "abilities": ["Insomnia"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Insomnia"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "focusblast", "nastyplot", "psychic"], + "abilities": ["Insomnia"] + } + ] + }, + "kingler": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crabhammer", "return", "superpower", "swordsdance", "xscissor"], + "abilities": ["Hyper Cutter"] + }, + { + "role": "Bulky Setup", + "movepool": ["agility", "crabhammer", "return", "swordsdance"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "electrode": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["explosion", "hiddenpowerice", "signalbeam", "taunt", "thunderbolt"], + "abilities": ["Static"], + "preferredTypes": ["Ice"] + } + ] + }, + "exeggutor": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["explosion", "hiddenpowerfire", "leafstorm", "psychic", "sleeppowder", "synthesis"], + "abilities": ["Chlorophyll"], + "preferredTypes": ["Psychic"] + } + ] + }, + "marowak": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "firepunch", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Rock Head"], + "preferredTypes": ["Rock"] + } + ] + }, + "hitmonlee": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "machpunch", "rapidspin", "stoneedge", "suckerpunch"], + "abilities": ["Limber"], + "preferredTypes": ["Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "closecombat", "earthquake", "machpunch", "stoneedge", "suckerpunch"], + "abilities": ["Limber"], + "preferredTypes": ["Rock"] + } + ] + }, + "hitmonchan": { + "level": 87, + "sets": [ + { + "role": "Spinner", + "movepool": ["closecombat", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"], + "abilities": ["Iron Fist"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "closecombat", "drainpunch", "icepunch", "machpunch", "stoneedge"], + "abilities": ["Iron Fist"] + } + ] + }, + "weezing": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "haze", "painsplit", "sludgebomb", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "rest", "sleeptalk", "sludgebomb"], + "abilities": ["Levitate"] + } + ] + }, + "kangaskhan": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["doubleedge", "earthquake", "fakeout", "hammerarm", "return", "suckerpunch"], + "abilities": ["Scrappy"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "earthquake", "protect", "return", "wish"], + "abilities": ["Scrappy"] + } + ] + }, + "seaking": { + "level": 93, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["icebeam", "megahorn", "raindance", "return", "waterfall"], + "abilities": ["Swift Swim"] + } + ] + }, + "starmie": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hydropump", "icebeam", "psychic", "recover", "thunderbolt"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "psychic", "rapidspin", "recover", "surf", "thunderwave"], + "abilities": ["Natural Cure"] + } + ] + }, + "mrmime": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "encore", "focusblast", "nastyplot", "psychic", "shadowball", "substitute"], + "abilities": ["Filter"], + "preferredTypes": ["Fighting"] + } + ] + }, + "scyther": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "brickbreak", "bugbite", "roost", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Wallbreaker", + "movepool": ["aerialace", "brickbreak", "pursuit", "uturn"], + "abilities": ["Technician"] + } + ] + }, + "jynx": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "icebeam", "lovelykiss", "psychic", "trick"], + "abilities": ["Forewarn"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psychic", "substitute"], + "abilities": ["Forewarn"] + } + ] + }, + "pinsir": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "stealthrock", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Mold Breaker"], + "preferredTypes": ["Rock"] + } + ] + }, + "tauros": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "payback", "pursuit", "return", "stoneedge"], + "abilities": ["Intimidate"] + } + ] + }, + "gyarados": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "substitute", "waterfall"], + "abilities": ["Intimidate"] + }, + { + "role": "Bulky Setup", + "movepool": ["dragondance", "rest", "sleeptalk", "waterfall"], + "abilities": ["Intimidate"] + } + ] + }, + "lapras": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hydropump", "icebeam", "thunderbolt", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["hydropump", "icebeam", "protect", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "ditto": { + "level": 100, + "sets": [ + { + "role": "Fast Support", + "movepool": ["transform"], + "abilities": ["Limber"] + } + ] + }, + "vaporeon": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "protect", "surf", "wish"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["protect", "surf", "toxic", "wish"], + "abilities": ["Water Absorb"] + } + ] + }, + "jolteon": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["batonpass", "hiddenpowerice", "substitute", "thunderbolt", "toxic"], + "abilities": ["Volt Absorb"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "shadowball", "signalbeam", "thunderbolt"], + "abilities": ["Volt Absorb"] + } + ] + }, + "flareon": { + "level": 94, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "hiddenpowergrass", "lavaplume", "protect", "superpower", "wish"], + "abilities": ["Flash Fire"] + }, + { + "role": "Staller", + "movepool": ["fireblast", "lavaplume", "protect", "toxic", "wish"], + "abilities": ["Flash Fire"] + } + ] + }, + "omastar": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "raindance"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Support", + "movepool": ["earthpower", "icebeam", "spikes", "stealthrock", "surf", "toxicspikes"], + "abilities": ["Shell Armor", "Swift Swim"], + "preferredTypes": ["Ice"] + } + ] + }, + "kabutops": { + "level": 83, + "sets": [ + { + "role": "Spinner", + "movepool": ["aquajet", "rapidspin", "stealthrock", "stoneedge", "superpower", "waterfall"], + "abilities": ["Battle Armor", "Swift Swim"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "stealthrock", "stoneedge", "superpower", "swordsdance", "waterfall"], + "abilities": ["Battle Armor", "Swift Swim"] + } + ] + }, + "aerodactyl": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "roost", "stealthrock", "stoneedge", "taunt", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Support", + "movepool": ["aerialace", "aquatail", "earthquake", "pursuit", "roost", "stealthrock", "stoneedge"], + "abilities": ["Pressure"], + "preferredTypes": ["Ground"] + } + ] + }, + "snorlax": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "crunch", "earthquake", "pursuit", "return", "selfdestruct"], + "abilities": ["Thick Fat"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["bodyslam", "curse", "rest", "sleeptalk"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "earthquake", "rest"], + "abilities": ["Thick Fat"] + } + ] + }, + "articuno": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["healbell", "icebeam", "roost", "substitute", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "zapdos": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["heatwave", "hiddenpowerice", "roost", "substitute", "thunderbolt", "toxic", "uturn"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["heatwave", "hiddenpowerice", "roost", "thunderbolt", "uturn"], + "abilities": ["Pressure"] + } + ] + }, + "moltres": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "fireblast", "hiddenpowergrass", "roost", "substitute", "toxic", "uturn"], + "abilities": ["Pressure"] + } + ] + }, + "dragonite": { + "level": 76, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "extremespeed", "outrage", "superpower"], + "abilities": ["Inner Focus"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "firepunch", "outrage", "roost"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Ground"] + } + ] + }, + "mewtwo": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "calmmind", "fireblast", "psychic", "recover", "shadowball"], + "abilities": ["Pressure"] + } + ] + }, + "mew": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["psychic", "softboiled", "stealthrock", "taunt", "uturn", "willowisp"], + "abilities": ["Synchronize"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "batonpass", "earthpower", "fireblast", "nastyplot", "psychic", "softboiled"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "earthquake", "explosion", "suckerpunch", "superpower", "swordsdance", "zenheadbutt"], + "abilities": ["Synchronize"], + "preferredTypes": ["Ground"] + } + ] + }, + "meganium": { + "level": 91, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "earthquake", "energyball", "leechseed", "synthesis", "toxic"], + "abilities": ["Overgrow"] + } + ] + }, + "typhlosion": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"], + "abilities": ["Blaze"] + } + ] + }, + "feraligatr": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "icepunch", "waterfall"], + "abilities": ["Torrent"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "return", "swordsdance", "waterfall"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "earthquake", "icepunch", "superpower", "waterfall"], + "abilities": ["Torrent"], + "preferredTypes": ["Ice"] + } + ] + }, + "furret": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "doubleedge", "firepunch", "shadowclaw", "trick", "uturn"], + "abilities": ["Keen Eye"] + } + ] + }, + "noctowl": { + "level": 96, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "nightshade", "roost", "toxic", "whirlwind"], + "abilities": ["Insomnia"] + } + ] + }, + "ledian": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["encore", "focusblast", "hiddenpowerflying", "knockoff", "roost", "toxic"], + "abilities": ["Early Bird"] + }, + { + "role": "Fast Support", + "movepool": ["agility", "batonpass", "encore", "swordsdance"], + "abilities": ["Early Bird"] + } + ] + }, + "ariados": { + "level": 100, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bugbite", "poisonjab", "suckerpunch", "toxicspikes"], + "abilities": ["Insomnia", "Swarm"] + } + ] + }, + "crobat": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bravebird", "heatwave", "roost", "superfang", "taunt", "toxic", "uturn"], + "abilities": ["Inner Focus"] + } + ] + }, + "lanturn": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["discharge", "healbell", "hydropump", "icebeam", "surf", "thunderbolt", "thunderwave", "toxic"], + "abilities": ["Volt Absorb"] + } + ] + }, + "xatu": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "grassknot", "heatwave", "hiddenpowerfighting", "psychic", "roost", "trick", "uturn"], + "abilities": ["Synchronize"], + "preferredTypes": ["Fire"] + }, + { + "role": "Bulky Support", + "movepool": ["heatwave", "hiddenpowerfighting", "psychic", "roost", "thunderwave", "toxic"], + "abilities": ["Synchronize"] + } + ] + }, + "ampharos": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["discharge", "focusblast", "healbell", "hiddenpowerice", "signalbeam", "thunderbolt", "toxic"], + "abilities": ["Static"] + } + ] + }, + "bellossom": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["energyball", "hiddenpowerfire", "hiddenpowerrock", "leafstorm", "leechseed", "sleeppowder", "stunspore", "synthesis"], + "abilities": ["Chlorophyll"] + } + ] + }, + "azumarill": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "doubleedge", "icepunch", "superpower", "waterfall"], + "abilities": ["Huge Power"], + "preferredTypes": ["Ice"] + }, + { + "role": "Bulky Setup", + "movepool": ["aquajet", "bellydrum", "return", "waterfall"], + "abilities": ["Huge Power"] + } + ] + }, + "sudowoodo": { + "level": 92, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"], + "abilities": ["Rock Head"] + } + ] + }, + "politoed": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["encore", "focusblast", "hiddenpowergrass", "hydropump", "icebeam", "rest", "surf", "toxic"], + "abilities": ["Water Absorb"], + "preferredTypes": ["Ice"] + }, + { + "role": "Staller", + "movepool": ["encore", "icebeam", "protect", "surf", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "jumpluff": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "energyball", "sleeppowder", "stunspore", "toxic", "uturn"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Fast Support", + "movepool": ["hiddenpowerflying", "leechseed", "protect", "substitute", "toxic"], + "abilities": ["Chlorophyll"] + } + ] + }, + "sunflora": { + "level": 98, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "hiddenpowerfire", "hiddenpowerice", "hiddenpowerrock", "leafstorm", "sludgebomb"], + "abilities": ["Chlorophyll"] + } + ] + }, + "quagsire": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "encore", "icebeam", "recover", "toxic", "waterfall"], + "abilities": ["Water Absorb"] + } + ] + }, + "espeon": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "hiddenpowerfighting", "morningsun", "psychic", "signalbeam", "trick"], + "abilities": ["Synchronize"] + }, + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "hiddenpowerfighting", "morningsun", "psychic", "substitute"], + "abilities": ["Synchronize"] + } + ] + }, + "umbreon": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["curse", "healbell", "moonlight", "payback", "toxic"], + "abilities": ["Synchronize"] + }, + { + "role": "Staller", + "movepool": ["payback", "protect", "toxic", "wish"], + "abilities": ["Synchronize"] + } + ] + }, + "slowking": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "psychic", "slackoff", "surf", "thunderwave", "toxic"], + "abilities": ["Own Tempo"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Wallbreaker", + "movepool": ["fireblast", "icebeam", "psychic", "slackoff", "surf", "trick", "trickroom"], + "abilities": ["Own Tempo"], + "preferredTypes": ["Psychic"] + } + ] + }, + "unown": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "hiddenpowerpsychic"], + "abilities": ["Levitate"] + } + ] + }, + "wobbuffet": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["counter", "destinybond", "encore", "mirrorcoat"], + "abilities": ["Shadow Tag"] + } + ] + }, + "girafarig": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "hiddenpowerfighting", "psychic", "substitute", "thunderbolt"], + "abilities": ["Inner Focus"] + } + ] + }, + "forretress": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["explosion", "payback", "rapidspin", "spikes", "stealthrock", "toxicspikes"], + "abilities": ["Sturdy"] + } + ] + }, + "dunsparce": { + "level": 93, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headbutt", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Support", + "movepool": ["bite", "bodyslam", "earthquake", "roost", "stealthrock"], + "abilities": ["Serene Grace"], + "preferredTypes": ["Dark"] + } + ] + }, + "steelix": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "ironhead", "roar", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Rock Head"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "ironhead", "protect", "toxic"], + "abilities": ["Rock Head"] + } + ] + }, + "granbull": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "crunch", "healbell", "return", "thunderwave"], + "abilities": ["Intimidate"] + } + ] + }, + "qwilfish": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "explosion", "spikes", "thunderwave", "toxicspikes", "waterfall"], + "abilities": ["Poison Point", "Swift Swim"] + } + ] + }, + "scizor": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbite", "bulletpunch", "roost", "superpower", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "pursuit", "superpower", "uturn"], + "abilities": ["Technician"] + } + ] + }, + "shuckle": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "knockoff", "protect", "stealthrock", "toxic"], + "abilities": ["Gluttony"] + } + ] + }, + "heracross": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "facade", "megahorn", "nightslash"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "megahorn", "nightslash", "stoneedge", "swordsdance"], + "abilities": ["Guts"] + } + ] + }, + "ursaring": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "protect"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "swordsdance"], + "abilities": ["Quick Feet"] + } + ] + }, + "magcargo": { + "level": 98, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerrock", "lavaplume", "recover", "stealthrock", "toxic"], + "abilities": ["Flame Body"] + } + ] + }, + "corsola": { + "level": 98, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["explosion", "powergem", "recover", "stealthrock", "surf", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "octillery": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["energyball", "fireblast", "icebeam", "surf", "thunderwave"], + "abilities": ["Sniper"] + } + ] + }, + "delibird": { + "level": 100, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "iceshard", "rapidspin", "seismictoss", "toxic"], + "abilities": ["Vital Spirit"] + } + ] + }, + "mantine": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["hiddenpowerflying", "protect", "surf", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "skarmory": { + "level": 75, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"], + "abilities": ["Keen Eye"] + }, + { + "role": "Staller", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "toxic"], + "abilities": ["Keen Eye"] + } + ] + }, + "houndoom": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"], + "abilities": ["Flash Fire"] + } + ] + }, + "kingdra": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["dragondance", "outrage", "rest", "substitute", "waterfall"], + "abilities": ["Sniper", "Swift Swim"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dracometeor", "hydropump", "icebeam", "raindance", "waterfall"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Support", + "movepool": ["dragondance", "outrage", "rest", "sleeptalk"], + "abilities": ["Sniper", "Swift Swim"] + } + ] + }, + "donphan": { + "level": 84, + "sets": [ + { + "role": "Spinner", + "movepool": ["earthquake", "iceshard", "rapidspin", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Sturdy"], + "preferredTypes": ["Rock"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "gunkshot", "iceshard", "stealthrock", "stoneedge"], + "abilities": ["Sturdy"], + "preferredTypes": ["Rock"] + } + ] + }, + "porygon2": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["discharge", "icebeam", "recover", "toxic", "triattack"], + "abilities": ["Download", "Trace"] + } + ] + }, + "stantler": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "hypnosis", "megahorn", "return", "suckerpunch", "thunderbolt"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "smeargle": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["explosion", "spikes", "spore", "stealthrock", "whirlwind"], + "abilities": ["Own Tempo"] + } + ] + }, + "hitmontop": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["closecombat", "earthquake", "rapidspin", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "miltank": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "blissey": { + "level": 81, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "raikou": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "hiddenpowerice", "shadowball", "thunderbolt"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Pressure"], + "preferredTypes": ["Ice"] + } + ] + }, + "entei": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "flareblitz", "ironhead", "stoneedge"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "flareblitz", "hiddenpowergrass", "stoneedge"], + "abilities": ["Pressure"] + } + ] + }, + "suicune": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "rest", "sleeptalk", "surf"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hydropump", "icebeam", "rest", "substitute", "surf"], + "abilities": ["Pressure"] + } + ] + }, + "tyranitar": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "stealthrock", "stoneedge", "superpower"], + "abilities": ["Sand Stream"] + }, + { + "role": "Bulky Setup", + "movepool": ["crunch", "dragondance", "earthquake", "firepunch", "icepunch", "stoneedge"], + "abilities": ["Sand Stream"] + } + ] + }, + "lugia": { + "level": 73, + "sets": [ + { + "role": "Staller", + "movepool": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["aeroblast", "calmmind", "earthpower", "roost"], + "abilities": ["Pressure"] + } + ] + }, + "hooh": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "earthquake", "roost", "sacredfire", "substitute", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "celebi": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthpower", "energyball", "leafstorm", "nastyplot", "psychic", "uturn"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Support", + "movepool": ["leafstorm", "psychic", "recover", "stealthrock", "thunderwave", "uturn"], + "abilities": ["Natural Cure"] + }, + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "energyball", "nastyplot", "psychic", "recover"], + "abilities": ["Natural Cure"] + } + ] + }, + "sceptile": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "focusblast", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "rockslide"], + "abilities": ["Overgrow"] + }, + { + "role": "Staller", + "movepool": ["energyball", "hiddenpowerfire", "hiddenpowerice", "leechseed", "substitute"], + "abilities": ["Overgrow"] + } + ] + }, + "blaziken": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["agility", "fireblast", "stoneedge", "superpower", "thunderpunch", "vacuumwave"], + "abilities": ["Blaze"] + }, + { + "role": "Wallbreaker", + "movepool": ["flareblitz", "stoneedge", "superpower", "swordsdance", "thunderpunch"], + "abilities": ["Blaze"] + } + ] + }, + "swampert": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "roar", "stealthrock", "toxic", "waterfall"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "toxic", "waterfall"], + "abilities": ["Torrent"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "icepunch", "stoneedge", "waterfall"], + "abilities": ["Torrent"] + } + ] + }, + "mightyena": { + "level": 94, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["crunch", "doubleedge", "firefang", "suckerpunch", "superfang", "taunt", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "linoone": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"], + "abilities": ["Gluttony"] + } + ] + }, + "beautifly": { + "level": 99, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bugbuzz", "hiddenpowerground", "psychic", "uturn"], + "abilities": ["Swarm"] + } + ] + }, + "dustox": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["bugbuzz", "hiddenpowerground", "roost", "toxic", "uturn", "whirlwind"], + "abilities": ["Shield Dust"] + } + ] + }, + "ludicolo": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["energyball", "hydropump", "icebeam", "raindance"], + "abilities": ["Swift Swim"] + }, + { + "role": "Wallbreaker", + "movepool": ["energyball", "hydropump", "icebeam", "surf"], + "abilities": ["Swift Swim"] + } + ] + }, + "shiftry": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "explosion", "hiddenpowerfire", "leafstorm", "lowkick", "suckerpunch"], + "abilities": ["Chlorophyll", "Early Bird"] + }, + { + "role": "Setup Sweeper", + "movepool": ["lowkick", "seedbomb", "suckerpunch", "swordsdance"], + "abilities": ["Chlorophyll", "Early Bird"] + } + ] + }, + "swellow": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "facade", "protect", "uturn"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["bravebird", "facade", "quickattack", "uturn"], + "abilities": ["Guts"] + } + ] + }, + "pelipper": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "hiddenpowergrass", "hydropump", "icebeam", "roost", "surf", "toxic", "uturn"], + "abilities": ["Keen Eye"] + } + ] + }, + "gardevoir": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "healingwish", "psychic", "shadowball", "thunderbolt", "trick"], + "abilities": ["Trace"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "focusblast", "psychic", "shadowball", "substitute", "willowisp"], + "abilities": ["Trace"], + "preferredTypes": ["Fighting"] + } + ] + }, + "masquerain": { + "level": 98, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "airslash", "batonpass", "bugbuzz", "hydropump", "roost"], + "abilities": ["Intimidate"] + }, + { + "role": "Bulky Support", + "movepool": ["airslash", "bugbuzz", "hydropump", "roost", "stunspore", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "breloom": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["facade", "machpunch", "seedbomb", "spore", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Poison Heal"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focuspunch", "spore", "stoneedge", "substitute"], + "abilities": ["Poison Heal"] + } + ] + }, + "vigoroth": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "earthquake", "encore", "nightslash", "return", "slackoff", "suckerpunch"], + "abilities": ["Vital Spirit"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "bulkup", "earthquake", "nightslash", "return", "slackoff"], + "abilities": ["Vital Spirit"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bodyslam", "bulkup", "earthquake", "nightslash", "return", "suckerpunch"], + "abilities": ["Vital Spirit"] + } + ] + }, + "slaking": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "gigaimpact", "nightslash", "return"], + "abilities": ["Truant"] + } + ] + }, + "ninjask": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "substitute", "swordsdance", "xscissor"], + "abilities": ["Speed Boost"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "protect", "swordsdance", "xscissor"], + "abilities": ["Speed Boost"] + } + ] + }, + "shedinja": { + "level": 98, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"], + "abilities": ["Wonder Guard"] + } + ] + }, + "exploud": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "earthquake", "fireblast", "icebeam", "return", "surf"], + "abilities": ["Soundproof"] + } + ] + }, + "hariyama": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bulletpunch", "closecombat", "facade", "fakeout", "payback", "stoneedge"], + "abilities": ["Guts"], + "preferredTypes": ["Dark"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "bulletpunch", "closecombat", "payback", "stoneedge"], + "abilities": ["Thick Fat"] + } + ] + }, + "delcatty": { + "level": 100, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["doubleedge", "protect", "thunderwave", "toxic", "wish"], + "abilities": ["Cute Charm"] + }, + { + "role": "Fast Support", + "movepool": ["doubleedge", "fakeout", "healbell", "suckerpunch", "thunderwave", "toxic"], + "abilities": ["Cute Charm"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "calmmind", "icebeam", "thunderbolt"], + "abilities": ["Cute Charm"] + } + ] + }, + "sableye": { + "level": 98, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["payback", "recover", "seismictoss", "toxic", "willowisp"], + "abilities": ["Keen Eye"] + } + ] + }, + "mawile": { + "level": 97, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "ironhead", "substitute", "suckerpunch", "swordsdance"], + "abilities": ["Intimidate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focuspunch", "ironhead", "substitute", "suckerpunch"], + "abilities": ["Intimidate"] + } + ] + }, + "aggron": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "earthquake", "headsmash", "icepunch", "rockpolish", "stealthrock"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "medicham": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "highjumpkick", "icepunch", "trick", "zenheadbutt"], + "abilities": ["Pure Power"] + } + ] + }, + "manectric": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["flamethrower", "hiddenpowerice", "overheat", "switcheroo", "thunderbolt"], + "abilities": ["Static"] + } + ] + }, + "plusle": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "encore", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Plus"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Plus"] + } + ] + }, + "minun": { + "level": 90, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "encore", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Minus"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Minus"] + } + ] + }, + "volbeat": { + "level": 99, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "bugbuzz", "substitute", "tailglow"], + "abilities": ["Swarm"] + }, + { + "role": "Bulky Support", + "movepool": ["batonpass", "bugbuzz", "encore", "tailglow"], + "abilities": ["Swarm"] + }, + { + "role": "Bulky Setup", + "movepool": ["batonpass", "bugbuzz", "roost", "tailglow"], + "abilities": ["Swarm"] + } + ] + }, + "illumise": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bugbuzz", "encore", "roost", "thunderwave", "toxic", "uturn"], + "abilities": ["Tinted Lens"] + } + ] + }, + "swalot": { + "level": 92, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "encore", "explosion", "icebeam", "painsplit", "sludgebomb", "toxic", "yawn"], + "abilities": ["Liquid Ooze"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "sludgebomb", "toxic"], + "abilities": ["Liquid Ooze"] + } + ] + }, + "sharpedo": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquajet", "crunch", "earthquake", "hydropump", "icebeam"], + "abilities": ["Rough Skin"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crunch", "earthquake", "icebeam", "waterfall"], + "abilities": ["Rough Skin"] + } + ] + }, + "wailord": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "selfdestruct", "waterspout"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + } + ] + }, + "camerupt": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "lavaplume", "stealthrock", "toxic"], + "abilities": ["Solid Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "explosion", "fireblast", "rockpolish", "stoneedge"], + "abilities": ["Solid Rock"] + } + ] + }, + "torkoal": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "lavaplume", "rapidspin", "stealthrock", "yawn"], + "abilities": ["White Smoke"] + } + ] + }, + "grumpig": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["focusblast", "healbell", "psychic", "thunderwave", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "focusblast", "psychic", "shadowball", "trick"], + "abilities": ["Thick Fat"] + } + ] + }, + "spinda": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["encore", "protect", "seismictoss", "shadowball", "substitute", "toxic"], + "abilities": ["Own Tempo"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Own Tempo"] + }, + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "fakeout", "lowkick", "shadowball", "suckerpunch"], + "abilities": ["Own Tempo"], + "preferredTypes": ["Fighting"] + } + ] + }, + "flygon": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "outrage", "roost", "stoneedge", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "earthquake", "fireblast", "roost", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "cacturne": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "encore", "lowkick", "seedbomb", "spikes", "suckerpunch"], + "abilities": ["Sand Veil"] + }, + { + "role": "Setup Sweeper", + "movepool": ["lowkick", "seedbomb", "suckerpunch", "swordsdance"], + "abilities": ["Sand Veil"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focuspunch", "seedbomb", "substitute", "suckerpunch"], + "abilities": ["Sand Veil"] + } + ] + }, + "altaria": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["dragondance", "earthquake", "outrage", "roost"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "earthquake", "fireblast", "haze", "healbell", "roost", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "zangoose": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "nightslash", "quickattack", "return", "swordsdance"], + "abilities": ["Immunity"], + "preferredTypes": ["Dark"] + } + ] + }, + "seviper": { + "level": 92, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquatail", "darkpulse", "earthquake", "flamethrower", "sludgebomb", "suckerpunch", "switcheroo"], + "abilities": ["Shed Skin"], + "preferredTypes": ["Ground"] + } + ] + }, + "lunatone": { + "level": 93, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["batonpass", "calmmind", "earthpower", "psychic", "signalbeam", "substitute"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["earthpower", "explosion", "psychic", "stealthrock", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "solrock": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "explosion", "rockpolish", "stealthrock", "stoneedge", "zenheadbutt"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + } + ] + }, + "whiscash": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "waterfall"], + "abilities": ["Anticipation"] + } + ] + }, + "crawdaunt": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crunch", "dragondance", "superpower", "waterfall", "xscissor"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "claydol": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "cradily": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["curse", "earthquake", "recover", "seedbomb", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Suction Cups"] + } + ] + }, + "armaldo": { + "level": 86, + "sets": [ + { + "role": "Spinner", + "movepool": ["earthquake", "rapidspin", "stealthrock", "stoneedge", "toxic", "xscissor"], + "abilities": ["Battle Armor"] + }, + { + "role": "Bulky Attacker", + "movepool": ["aquatail", "earthquake", "rockpolish", "stealthrock", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Battle Armor"] + } + ] + }, + "milotic": { + "level": 81, + "sets": [ + { + "role": "Staller", + "movepool": ["haze", "icebeam", "recover", "surf", "toxic"], + "abilities": ["Marvel Scale"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Marvel Scale"] + } + ] + }, + "castform": { + "level": 96, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "icebeam", "return", "thunderbolt", "thunderwave"], + "abilities": ["Forecast"] + } + ] + }, + "kecleon": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["recover", "return", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Color Change"] + } + ] + }, + "banette": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "shadowclaw", "shadowsneak", "thunderwave", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "tropius": { + "level": 95, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "earthquake", "leechseed", "roost", "toxic"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "dragondance", "earthquake", "leafblade"], + "abilities": ["Chlorophyll"] + } + ] + }, + "chimecho": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerfighting", "psychic", "recover", "thunderwave", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerfighting", "psychic", "recover", "signalbeam"], + "abilities": ["Levitate"] + } + ] + }, + "absol": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["nightslash", "psychocut", "pursuit", "suckerpunch", "superpower"], + "abilities": ["Super Luck"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["nightslash", "suckerpunch", "superpower", "swordsdance"], + "abilities": ["Super Luck"] + } + ] + }, + "glalie": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "icebeam", "spikes", "taunt"], + "abilities": ["Inner Focus"] + } + ] + }, + "walrein": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "icebeam", "roar", "superfang", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "protect", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "huntail": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "hiddenpowergrass", "hydropump", "icebeam", "suckerpunch", "surf"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Ice"] + } + ] + }, + "gorebyss": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "raindance", "surf"], + "abilities": ["Swift Swim"] + } + ] + }, + "relicanth": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headsmash", "stealthrock", "toxic", "waterfall"], + "abilities": ["Rock Head"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "headsmash", "rockpolish", "waterfall"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "luvdisc": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "substitute", "surf", "toxic"], + "abilities": ["Swift Swim"] + } + ] + }, + "salamence": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "fireblast", "outrage", "roost"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "metagross": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "earthquake", "explosion", "icepunch", "meteormash", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "earthquake", "explosion", "icepunch", "meteormash", "stealthrock", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + } + ] + }, + "regirock": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "rest", "stealthrock", "stoneedge", "thunderwave", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Support", + "movepool": ["curse", "earthquake", "rest", "sleeptalk", "stoneedge"], + "abilities": ["Clear Body"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "rockslide", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "regice": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["focusblast", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave"], + "abilities": ["Clear Body"], + "preferredTypes": ["Electric"] + }, + { + "role": "Setup Sweeper", + "movepool": ["explosion", "focusblast", "icebeam", "rockpolish", "thunderbolt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Electric"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "thunderbolt", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "registeel": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "ironhead", "rest", "sleeptalk"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "seismictoss", "sleeptalk", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "latias": { + "level": 70, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psychic", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "latios": { + "level": 70, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psychic", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "kyogre": { + "level": 67, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icebeam", "surf", "thunder", "waterspout"], + "abilities": ["Drizzle"] + }, + { + "role": "Bulky Support", + "movepool": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder"], + "abilities": ["Drizzle"] + } + ] + }, + "groudon": { + "level": 72, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "lavaplume", "roar", "stealthrock", "stoneedge", "thunderwave"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "firepunch", "rockpolish", "stoneedge", "swordsdance"], + "abilities": ["Drought"] + } + ] + }, + "rayquaza": { + "level": 73, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dracometeor", "earthquake", "extremespeed", "fireblast", "outrage"], + "abilities": ["Air Lock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "extremespeed", "outrage", "overheat"], + "abilities": ["Air Lock"], + "preferredTypes": ["Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["dragonclaw", "earthquake", "extremespeed", "swordsdance"], + "abilities": ["Air Lock"] + } + ] + }, + "jirachi": { + "level": 75, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "firepunch", "healingwish", "ironhead", "protect", "stealthrock", "toxic", "uturn", "wish"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerfire", "psychic", "substitute", "thunderbolt", "wish"], + "abilities": ["Serene Grace"], + "preferredTypes": ["Electric"] + } + ] + }, + "deoxys": { + "level": 74, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "psychoboost", "shadowball", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Support", + "movepool": ["icebeam", "psychoboost", "shadowball", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysattack": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "psychoboost", "shadowball", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Support", + "movepool": ["icebeam", "psychoboost", "shadowball", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysdefense": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["recover", "seismictoss", "spikes", "stealthrock", "taunt", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysspeed": { + "level": 79, + "sets": [ + { + "role": "Fast Support", + "movepool": ["psychoboost", "spikes", "stealthrock", "superpower", "taunt"], + "abilities": ["Pressure"] + } + ] + }, + "torterra": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "stealthrock", "stoneedge", "synthesis", "woodhammer"], + "abilities": ["Overgrow"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "rockpolish", "stoneedge", "woodhammer"], + "abilities": ["Overgrow"] + } + ] + }, + "infernape": { + "level": 76, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "grassknot", "machpunch", "overheat", "stealthrock"], + "abilities": ["Blaze"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "flareblitz", "machpunch", "stoneedge", "swordsdance", "uturn"], + "abilities": ["Blaze"] + } + ] + }, + "empoleon": { + "level": 79, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "stealthrock", "surf", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "roar", "stealthrock", "surf", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Setup Sweeper", + "movepool": ["agility", "grassknot", "hydropump", "icebeam"], + "abilities": ["Torrent"] + } + ] + }, + "staraptor": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "closecombat", "doubleedge", "pursuit", "quickattack", "return", "uturn"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "closecombat", "return", "roost", "uturn"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "bibarel": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["curse", "quickattack", "return", "waterfall"], + "abilities": ["Simple"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "quickattack", "return", "waterfall"], + "abilities": ["Simple"] + } + ] + }, + "kricketune": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "nightslash", "return", "swordsdance", "xscissor"], + "abilities": ["Swarm"] + } + ] + }, + "luxray": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "icefang", "roar", "superpower", "thunderbolt", "toxic"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Staller", + "movepool": ["protect", "superpower", "thunderbolt", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "roserade": { + "level": 81, + "sets": [ + { + "role": "Fast Support", + "movepool": ["energyball", "hiddenpowerground", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"], + "abilities": ["Natural Cure"] + } + ] + }, + "rampardos": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "firepunch", "rockpolish", "stoneedge", "zenheadbutt"], + "abilities": ["Mold Breaker"], + "preferredTypes": ["Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "headsmash", "stoneedge", "superpower"], + "abilities": ["Mold Breaker"] + } + ] + }, + "bastiodon": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["metalburst", "roar", "rockslide", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Staller", + "movepool": ["metalburst", "protect", "roar", "rockslide", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "wormadam": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerground", "hiddenpowerrock", "leafstorm", "psychic", "signalbeam"], + "abilities": ["Anticipation"] + } + ] + }, + "wormadamsandy": { + "level": 99, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "rest", "sleeptalk", "toxic"], + "abilities": ["Anticipation"] + } + ] + }, + "wormadamtrash": { + "level": 85, + "sets": [ + { + "role": "Staller", + "movepool": ["flashcannon", "protect", "stealthrock", "suckerpunch", "toxic"], + "abilities": ["Anticipation"] + } + ] + }, + "mothim": { + "level": 97, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "bugbuzz", "hiddenpowerfighting", "hiddenpowerground", "shadowball", "uturn"], + "abilities": ["Swarm"], + "preferredTypes": ["Bug"] + } + ] + }, + "vespiquen": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerflying", "roost", "toxic", "uturn"], + "abilities": ["Pressure"] + } + ] + }, + "pachirisu": { + "level": 96, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["discharge", "superfang", "thunderbolt", "thunderwave", "toxic", "uturn"], + "abilities": ["Pickup", "Run Away"] + }, + { + "role": "Staller", + "movepool": ["protect", "thunderbolt", "toxic", "uturn"], + "abilities": ["Pickup", "Run Away"] + } + ] + }, + "floatzel": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crunch", "icepunch", "return", "waterfall"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "icepunch", "return", "substitute", "waterfall"], + "abilities": ["Swift Swim"] + } + ] + }, + "cherrim": { + "level": 96, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "energyball", "hiddenpowerground", "leechseed", "synthesis", "toxic"], + "abilities": ["Flower Gift"] + } + ] + }, + "gastrodon": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icebeam", "recover", "surf", "toxic"], + "abilities": ["Sticky Hold"] + } + ] + }, + "ambipom": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "lowkick", "payback", "pursuit", "return", "uturn"], + "abilities": ["Technician"] + } + ] + }, + "drifblim": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "calmmind", "hiddenpowerfighting", "rest", "shadowball", "substitute", "thunderbolt"], + "abilities": ["Unburden"] + } + ] + }, + "lopunny": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["batonpass", "encore", "return", "substitute", "thunderwave", "toxic"], + "abilities": ["Cute Charm"] + }, + { + "role": "Wallbreaker", + "movepool": ["healingwish", "icepunch", "return", "skyuppercut", "switcheroo"], + "abilities": ["Cute Charm"] + } + ] + }, + "mismagius": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["destinybond", "hiddenpowerfighting", "painsplit", "shadowball", "substitute", "taunt", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "nastyplot", "shadowball", "thunderbolt", "trick"], + "abilities": ["Levitate"] + } + ] + }, + "honchkrow": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bravebird", "heatwave", "pursuit", "roost", "suckerpunch", "superpower"], + "abilities": ["Insomnia"] + } + ] + }, + "purugly": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "irontail", "return", "shadowclaw", "uturn"], + "abilities": ["Thick Fat"] + } + ] + }, + "skuntank": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "explosion", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"], + "abilities": ["Aftermath"] + } + ] + }, + "bronzong": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "explosion", "ironhead", "payback", "stealthrock", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "psychic", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "chatot": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["chatter", "encore", "heatwave", "hiddenpowergrass", "hypervoice", "nastyplot"], + "abilities": ["Tangled Feet"] + }, + { + "role": "Fast Attacker", + "movepool": ["chatter", "heatwave", "hiddenpowergrass", "hypervoice", "uturn"], + "abilities": ["Tangled Feet"] + } + ] + }, + "spiritomb": { + "level": 86, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "rest", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["darkpulse", "painsplit", "pursuit", "shadowsneak", "suckerpunch", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "garchomp": { + "level": 74, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "fireblast", "outrage", "stealthrock", "stoneedge"], + "abilities": ["Sand Veil"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "firefang", "outrage", "stoneedge", "swordsdance"], + "abilities": ["Sand Veil"] + }, + { + "role": "Bulky Setup", + "movepool": ["dragonclaw", "earthquake", "substitute", "swordsdance"], + "abilities": ["Sand Veil"] + } + ] + }, + "lucario": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "crunch", "extremespeed", "stoneedge", "swordsdance"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Normal"] + } + ] + }, + "hippowdon": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "roar", "slackoff", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Sand Stream"] + } + ] + }, + "drapion": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance"], + "abilities": ["Battle Armor"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["crunch", "earthquake", "poisonjab", "taunt", "toxicspikes", "whirlwind"], + "abilities": ["Battle Armor"] + } + ] + }, + "toxicroak": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crosschop", "earthquake", "icepunch", "poisonjab", "substitute", "suckerpunch", "swordsdance"], + "abilities": ["Dry Skin"] + } + ] + }, + "carnivine": { + "level": 97, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "powerwhip", "sleeppowder", "synthesis"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Setup", + "movepool": ["powerwhip", "return", "sleeppowder", "swordsdance", "synthesis"], + "abilities": ["Levitate"] + } + ] + }, + "lumineon": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerelectric", "hiddenpowergrass", "icebeam", "raindance", "surf", "uturn"], + "abilities": ["Swift Swim"] + } + ] + }, + "abomasnow": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "earthquake", "iceshard", "woodhammer"], + "abilities": ["Snow Warning"] + } + ] + }, + "weavile": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icepunch", "iceshard", "lowkick", "nightslash", "pursuit", "swordsdance"], + "abilities": ["Pressure"] + } + ] + }, + "magnezone": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["explosion", "flashcannon", "hiddenpowerfire", "hiddenpowerground", "hiddenpowerice", "thunderbolt"], + "abilities": ["Magnet Pull"] + }, + { + "role": "Staller", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic"], + "abilities": ["Magnet Pull"] + } + ] + }, + "lickilicky": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "healbell", "protect", "toxic", "wish"], + "abilities": ["Own Tempo"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "earthquake", "explosion", "powerwhip", "return", "swordsdance"], + "abilities": ["Own Tempo"], + "preferredTypes": ["Ground"] + } + ] + }, + "rhyperior": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icepunch", "megahorn", "rockpolish", "stealthrock", "stoneedge"], + "abilities": ["Solid Rock"] + } + ] + }, + "tangrowth": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "hiddenpowerfire", "leafstorm", "morningsun", "powerwhip", "rockslide", "sleeppowder"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "powerwhip", "rockslide", "swordsdance"], + "abilities": ["Chlorophyll"] + } + ] + }, + "electivire": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crosschop", "earthquake", "flamethrower", "hiddenpowergrass", "icepunch", "thunderbolt"], + "abilities": ["Motor Drive"], + "preferredTypes": ["Ice"] + } + ] + }, + "magmortar": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "fireblast", "focusblast", "hiddenpowerice", "taunt", "thunderbolt"], + "abilities": ["Flame Body"], + "preferredTypes": ["Electric"] + } + ] + }, + "togekiss": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["airslash", "aurasphere", "batonpass", "nastyplot", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Attacker", + "movepool": ["airslash", "healbell", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Fast Attacker", + "movepool": ["airslash", "aurasphere", "fireblast", "trick"], + "abilities": ["Serene Grace"] + } + ] + }, + "yanmega": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "bugbuzz", "hiddenpowerfire", "hiddenpowerground", "protect"], + "abilities": ["Speed Boost"] + }, + { + "role": "Wallbreaker", + "movepool": ["airslash", "bugbuzz", "hiddenpowerfire", "hiddenpowerground", "uturn"], + "abilities": ["Tinted Lens"] + } + ] + }, + "leafeon": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "leafblade", "synthesis", "toxic"], + "abilities": ["Leaf Guard"] + }, + { + "role": "Setup Sweeper", + "movepool": ["batonpass", "doubleedge", "leafblade", "substitute", "swordsdance", "synthesis", "xscissor"], + "abilities": ["Leaf Guard"], + "preferredTypes": ["Normal"] + } + ] + }, + "glaceon": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerground", "icebeam", "protect", "wish"], + "abilities": ["Snow Cloak"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "toxic", "wish"], + "abilities": ["Snow Cloak"] + } + ] + }, + "gliscor": { + "level": 81, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "roost", "stealthrock", "stoneedge", "taunt", "toxic", "uturn"], + "abilities": ["Hyper Cutter"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "roost", "stoneedge", "swordsdance"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "mamoswine": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "iceshard", "stealthrock", "stoneedge", "superpower"], + "abilities": ["Snow Cloak"] + } + ] + }, + "porygonz": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "hiddenpowerfighting", "icebeam", "nastyplot", "thunderbolt", "triattack", "trick"], + "abilities": ["Adaptability", "Download"] + } + ] + }, + "gallade": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "nightslash", "shadowsneak", "swordsdance", "trick", "zenheadbutt"], + "abilities": ["Steadfast"] + } + ] + }, + "probopass": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "explosion", "powergem", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Magnet Pull"] + } + ] + }, + "dusknoir": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icepunch", "painsplit", "shadowsneak", "toxic", "trick", "willowisp"], + "abilities": ["Pressure"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "shadowsneak", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focuspunch", "painsplit", "shadowsneak", "substitute"], + "abilities": ["Pressure"] + } + ] + }, + "froslass": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"], + "abilities": ["Snow Cloak"] + } + ] + }, + "rotom": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfighting", "hiddenpowerice", "shadowball", "thunderbolt", "trick"], + "abilities": ["Levitate"] + } + ] + }, + "rotomheat": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["overheat", "painsplit", "shadowball", "thunderbolt", "trick", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Fire"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "shadowball", "sleeptalk", "thunderbolt"], + "abilities": ["Levitate"] + } + ] + }, + "rotomwash": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hydropump", "painsplit", "shadowball", "thunderbolt", "trick", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Water"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "shadowball", "sleeptalk", "thunderbolt"], + "abilities": ["Levitate"] + } + ] + }, + "rotomfrost": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "painsplit", "shadowball", "thunderbolt", "trick", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Ice"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "shadowball", "sleeptalk", "thunderbolt"], + "abilities": ["Levitate"] + } + ] + }, + "rotomfan": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["painsplit", "shadowball", "thunderbolt", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "shadowball", "sleeptalk", "thunderbolt"], + "abilities": ["Levitate"] + } + ] + }, + "rotommow": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["leafstorm", "painsplit", "shadowball", "thunderbolt", "trick", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Grass"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "shadowball", "sleeptalk", "thunderbolt"], + "abilities": ["Levitate"] + } + ] + }, + "uxie": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "psychic", "stealthrock", "thunderwave", "uturn", "yawn"], + "abilities": ["Levitate"] + } + ] + }, + "mesprit": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "healingwish", "hiddenpowerfighting", "icebeam", "psychic", "thunderbolt", "trick", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["hiddenpowerfighting", "psychic", "stealthrock", "thunderwave", "toxic", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "azelf": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fireblast", "nastyplot", "psychic", "signalbeam", "thunderbolt", "trick", "uturn"], + "abilities": ["Levitate"], + "preferredTypes": ["Fire"] + }, + { + "role": "Fast Support", + "movepool": ["explosion", "fireblast", "psychic", "stealthrock", "taunt", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "dialga": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aurasphere", "dracometeor", "fireblast", "roar", "stealthrock", "thunderbolt", "toxic"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + }, + { + "role": "Bulky Support", + "movepool": ["bulkup", "outrage", "rest", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["bulkup", "dragonclaw", "earthquake", "fireblast", "rest"], + "abilities": ["Pressure"], + "preferredTypes": ["Ground"] + } + ] + }, + "palkia": { + "level": 69, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "fireblast", "hydropump", "spacialrend", "thunderwave"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + } + ] + }, + "heatran": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthpower", "eruption", "explosion", "fireblast"], + "abilities": ["Flash Fire"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dragonpulse", "earthpower", "explosion", "fireblast", "hiddenpowergrass", "lavaplume", "roar", "stealthrock", "toxic"], + "abilities": ["Flash Fire"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthpower", "fireblast", "lavaplume", "protect", "substitute", "toxic"], + "abilities": ["Flash Fire"] + } + ] + }, + "regigigas": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "return", "substitute", "thunderwave"], + "abilities": ["Slow Start"] + } + ] + }, + "giratinaorigin": { + "level": 71, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "earthquake", "outrage", "shadowball", "shadowsneak", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "giratina": { + "level": 68, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "dragonpulse", "rest", "sleeptalk"], + "abilities": ["Pressure"] + } + ] + }, + "cresselia": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerfighting", "moonlight", "psychic", "signalbeam"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["hiddenpowerfighting", "moonlight", "psychic", "thunderwave", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "phione": { + "level": 91, + "sets": [ + { + "role": "Staller", + "movepool": ["raindance", "rest", "surf", "toxic"], + "abilities": ["Hydration"] + }, + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "surf", "toxic", "uturn"], + "abilities": ["Hydration"] + } + ] + }, + "manaphy": { + "level": 75, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["energyball", "icebeam", "surf", "tailglow"], + "abilities": ["Hydration"] + } + ] + }, + "darkrai": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["darkpulse", "darkvoid", "focusblast", "nastyplot"], + "abilities": ["Bad Dreams"] + }, + { + "role": "Bulky Setup", + "movepool": ["darkpulse", "darkvoid", "nastyplot", "substitute"], + "abilities": ["Bad Dreams"] + } + ] + }, + "shaymin": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["airslash", "earthpower", "leechseed", "seedflare", "substitute", "synthesis"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Flying"] + } + ] + }, + "shayminsky": { + "level": 70, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "earthpower", "hiddenpowerice", "leechseed", "seedflare", "substitute"], + "abilities": ["Serene Grace"] + } + ] + }, + "arceus": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceusbug": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdark": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "focusblast", "judgment", "recover", "refresh"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdragon": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "outrage", "recover", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover", "refresh"], + "abilities": ["Multitype"] + } + ] + }, + "arceuselectric": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfighting": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfire": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment", "recover", "thunderbolt"], + "abilities": ["Multitype"] + } + ] + }, + "arceusflying": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover", "refresh"], + "abilities": ["Multitype"] + } + ] + }, + "arceusghost": { + "level": 69, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "focusblast", "judgment", "recover", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceusgrass": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusground": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Rock"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusice": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover", "thunderbolt"], + "abilities": ["Multitype"] + } + ] + }, + "arceuspoison": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "fireblast", "recover", "sludgebomb"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "icebeam", "recover", "sludgebomb", "stealthrock", "willowisp"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceuspsychic": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "darkpulse", "focusblast", "judgment", "recover"], + "abilities": ["Multitype"], + "preferredTypes": ["Fighting"] + } + ] + }, + "arceusrock": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceussteel": { + "level": 69, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceuswater": { + "level": 69, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "willowisp"], + "abilities": ["Multitype"] + } + ] + } +} diff --git a/data/random-battles/gen4/teams.ts b/data/random-battles/gen4/teams.ts new file mode 100644 index 000000000000..1ce2723fe08e --- /dev/null +++ b/data/random-battles/gen4/teams.ts @@ -0,0 +1,783 @@ +import RandomGen5Teams from '../gen5/teams'; +import {PRNG} from '../../../sim'; +import type {MoveCounter} from '../gen8/teams'; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'roost', 'slackoff', 'softboiled', 'synthesis', +]; +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'bulkup', 'curse', 'dragondance', 'howl', 'meditate', 'screech', 'swordsdance', +]; +// Conglomerate for ease of access +const SETUP = [ + 'acidarmor', 'agility', 'bellydrum', 'bulkup', 'calmmind', 'curse', 'dragondance', 'growth', 'howl', 'irondefense', + 'meditate', 'nastyplot', 'raindance', 'rockpolish', 'sunnyday', 'swordsdance', 'tailglow', +]; +// Moves that shouldn't be the only STAB moves: +const NO_STAB = [ + 'aquajet', 'bulletpunch', 'chatter', 'eruption', 'explosion', 'fakeout', 'focuspunch', 'futuresight', 'iceshard', + 'icywind', 'knockoff', 'machpunch', 'pluck', 'pursuit', 'quickattack', 'rapidspin', 'reversal', 'selfdestruct', + 'shadowsneak', 'skyattack', 'suckerpunch', 'uturn', 'vacuumwave', 'waterspout', +]; +// Hazard-setting moves +const HAZARDS = [ + 'spikes', 'stealthrock', 'toxicspikes', +]; + +// Moves that should be paired together when possible +const MOVE_PAIRS = [ + ['lightscreen', 'reflect'], + ['sleeptalk', 'rest'], + ['protect', 'wish'], + ['leechseed', 'substitute'], + ['focuspunch', 'substitute'], + ['raindance', 'rest'], +]; + +/** Pokemon who always want priority STAB, and are fine with it as its only STAB move of that type */ +const PRIORITY_POKEMON = [ + 'cacturne', 'dusknoir', 'honchkrow', 'mamoswine', 'scizor', 'shedinja', 'shiftry', +]; + +export class RandomGen4Teams extends RandomGen5Teams { + randomSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + + constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { + super(format, prng); + this.noStab = NO_STAB; + this.priorityPokemon = PRIORITY_POKEMON; + + this.moveEnforcementCheckers = { + Bug: (movePool, moves, abilities, types, counter) => ( + !counter.get('Bug') && movePool.includes('megahorn') + ), + Dark: (movePool, moves, abilities, types, counter) => !counter.get('Dark'), + Dragon: (movePool, moves, abilities, types, counter) => !counter.get('Dragon'), + Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), + Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), + Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), + Flying: (movePool, moves, abilities, types, counter, species) => !counter.get('Flying') && species.id !== 'aerodactyl', + Ghost: (movePool, moves, abilities, types, counter) => !counter.get('Ghost'), + Grass: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Grass') && + (species.baseStats.atk >= 100 || movePool.includes('leafstorm') || movePool.includes('solarbeam')) + ), + Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), + Ice: (movePool, moves, abilities, types, counter) => !counter.get('Ice'), + Poison: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Poison') && (types.has('Grass') || species.id === 'gengar') + ), + Psychic: (movePool, moves, abilities, types, counter) => ( + !counter.get('Psychic') && (types.has('Fighting') || movePool.includes('calmmind')) + ), + Rock: (movePool, moves, abilities, types, counter, species) => (!counter.get('Rock') && species.baseStats.atk >= 80), + Steel: (movePool, moves, abilities, types, counter, species) => (!counter.get('Steel') && species.id === 'metagross'), + Water: (movePool, moves, abilities, types, counter) => !counter.get('Water'), + }; + this.cachedStatusMoves = this.dex.moves.all() + .filter(move => move.category === 'Status') + .map(move => move.id); + } + + cullMovePool( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): void { + // Pokemon cannot have multiple Hidden Powers in any circumstance + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + if (hasHiddenPower) { + let movePoolHasHiddenPower = true; + while (movePoolHasHiddenPower) { + movePoolHasHiddenPower = false; + for (const moveid of movePool) { + if (moveid.startsWith('hiddenpower')) { + this.fastPop(movePool, movePool.indexOf(moveid)); + movePoolHasHiddenPower = true; + break; + } + } + } + } + + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there is not room for them both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Team-based move culls + if (teamDetails.screens && movePool.length >= this.maxMoveCount + 2) { + if (movePool.includes('reflect')) this.fastPop(movePool, movePool.indexOf('reflect')); + if (movePool.includes('lightscreen')) this.fastPop(movePool, movePool.indexOf('lightscreen')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stealthRock) { + if (movePool.includes('stealthrock')) this.fastPop(movePool, movePool.indexOf('stealthrock')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.toxicSpikes) { + if (movePool.includes('toxicspikes')) this.fastPop(movePool, movePool.indexOf('toxicspikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.spikes && teamDetails.spikes >= 2) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.statusCure) { + if (movePool.includes('aromatherapy')) this.fastPop(movePool, movePool.indexOf('aromatherapy')); + if (movePool.includes('healbell')) this.fastPop(movePool, movePool.indexOf('healbell')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + // Develop additional move lists + const badWithSetup = ['pursuit', 'toxic']; + const statusMoves = this.cachedStatusMoves; + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [statusMoves, ['healingwish', 'switcheroo', 'trick']], + [SETUP, 'uturn'], + [SETUP, HAZARDS], + [SETUP, badWithSetup], + [PHYSICAL_SETUP, PHYSICAL_SETUP], + [['fakeout', 'uturn'], ['switcheroo', 'trick']], + ['substitute', 'uturn'], + ['rest', 'substitute'], + ['explosion', ['destinybond', 'painsplit', 'rest', 'trick']], + + // These attacks are redundant with each other + ['surf', 'hydropump'], + [['bodyslam', 'return'], ['bodyslam', 'doubleedge']], + [['energyball', 'leafstorm'], ['leafblade', 'leafstorm', 'powerwhip']], + ['lavaplume', 'fireblast'], + ['closecombat', 'drainpunch'], + ['discharge', 'thunderbolt'], + ['gunkshot', 'poisonjab'], + ['payback', 'pursuit'], + ['protect', 'swordsdance'], + + // Assorted hardcodes go here: + // Manectric + ['flamethrower', 'overheat'], + // Walrein + ['encore', 'roar'], + // Smeargle + ['explosion', 'whirlwind'], + // Seviper + ['switcheroo', 'suckerpunch'], + // Jirachi + ['bodyslam', 'healingwish'], + // Blaziken + ['agility', 'vacuumwave'], + // Shuckle + ['knockoff', 'protect'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + const statusInflictingMoves = ['stunspore', 'thunderwave', 'toxic', 'willowisp', 'yawn']; + if (role !== 'Staller') { + this.incompatibleMoves(moves, movePool, statusInflictingMoves, statusInflictingMoves); + } + + // Cull filler moves for otherwise fixed set Stealth Rock users + if (!teamDetails.stealthRock) { + if (species.id === 'registeel' && role === 'Staller') { + if (movePool.includes('thunderwave')) this.fastPop(movePool, movePool.indexOf('thunderwave')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (species.id === 'wormadamtrash' && role === 'Staller') { + if (movePool.includes('suckerpunch')) this.fastPop(movePool, movePool.indexOf('suckerpunch')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + + // Generate random moveset for a given species, role, preferred type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + movePool: string[], + preferredType: string, + role: RandomTeamsTypes.Role, + ): Set { + const moves = new Set(); + let counter = this.newQueryMoves(moves, species, preferredType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, + preferredType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + // Still need to ensure that multiple Hidden Powers are not added (if maxMoveCount is increased) + while (movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + return moves; + } + + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, new Set(types), counter, species, teamDetails + ); + }; + + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Facade if Guts is a possible ability + if (movePool.includes('facade') && abilities.includes('Guts')) { + counter = this.addMove('facade', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce Seismic Toss, Spore, and Volt Tackle + for (const moveid of ['seismictoss', 'spore', 'volttackle']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Substitute on non-Setup sets with Baton Pass + if (!role.includes('Setup')) { + if (movePool.includes('batonpass') && movePool.includes('substitute')) { + counter = this.addMove('substitute', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce hazard removal on Bulky Support and Spinner if the team doesn't already have it + if (['Bulky Support', 'Spinner'].includes(role) && !teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) { + counter = this.addMove('rapidspin', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB priority + if (['Bulky Attacker', 'Bulky Setup'].includes(role) || this.priorityPokemon.includes(species.id)) { + const priorityMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (types.includes(moveType) && move.priority > 0 && (move.basePower || move.basePowerCallback)) { + priorityMoves.push(moveid); + } + } + if (priorityMoves.length) { + const moveid = this.sample(priorityMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Preferred Type + if (!counter.get('preferred')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && preferredType === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } else { + // If they have no regular STAB move, enforce U-turn on Bug types. + if (movePool.includes('uturn') && types.includes('Bug')) { + counter = this.addMove('uturn', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup', 'Spinner', 'Staller'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Staller moves + if (role === 'Staller') { + const enforcedMoves = ['protect', 'toxic', 'wish']; + for (const move of enforcedMoves) { + if (movePool.includes(move)) { + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce setup + if (role.includes('Setup')) { + const setupMoves = movePool.filter(moveid => SETUP.includes(moveid)); + if (setupMoves.length) { + const moveid = this.sample(setupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size && !(moves.has('uturn') && types.includes('Bug'))) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce coverage move + if (['Fast Attacker', 'Setup Sweeper', 'Bulky Attacker', 'Wallbreaker'].includes(role)) { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + return moves; + } + + shouldCullAbility( + ability: string, + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role + ): boolean { + switch (ability) { + case 'Chlorophyll': + return !teamDetails.sun; + case 'Swift Swim': + return !teamDetails.rain; + case 'Rock Head': + return !counter.get('recoil'); + case 'Skill Link': + return !counter.get('skilllink'); + } + + return false; + } + + + getAbility( + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + if (abilities.length <= 1) return abilities[0]; + + // Hard-code abilities here + if (species.id === 'dewgong') return moves.has('raindance') ? 'Hydration' : 'Thick Fat'; + if (species.id === 'cloyster' && counter.get('skilllink')) return 'Skill Link'; + + const abilityAllowed: string[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilities) { + if (!this.shouldCullAbility( + ability, types, moves, abilities, counter, movePool, teamDetails, species, preferredType, role + )) { + abilityAllowed.push(ability); + } + } + + // Pick a random allowed ability + if (abilityAllowed.length >= 1) return this.sample(abilityAllowed); + + // If all abilities are rejected, prioritize weather abilities over non-weather abilities + if (!abilityAllowed.length) { + const weatherAbilities = abilities.filter(a => ['Chlorophyll', 'Swift Swim'].includes(a)); + if (weatherAbilities.length) return this.sample(weatherAbilities); + } + + // Pick a random ability + return this.sample(abilities); + } + + getPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string | undefined { + if (species.requiredItems) return this.sample(species.requiredItems); + if (species.id === 'latias' || species.id === 'latios') return 'Soul Dew'; + if (species.id === 'marowak') return 'Thick Club'; + if (species.id === 'pikachu') return 'Light Ball'; + if (species.id === 'shedinja' || species.id === 'smeargle') return 'Focus Sash'; + if (species.id === 'unown') return 'Choice Specs'; + if (species.id === 'wobbuffet') return 'Custap Berry'; + if (species.id === 'ditto' || (species.id === 'rampardos' && role === 'Fast Attacker')) return 'Choice Scarf'; + if (ability === 'Poison Heal' || moves.has('facade')) return 'Toxic Orb'; + if (ability === 'Speed Boost' && species.id === 'yanmega') return 'Life Orb'; + if (['healingwish', 'switcheroo', 'trick'].some(m => moves.has(m))) { + if ( + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && role !== 'Wallbreaker' && !counter.get('priority') + ) { + return 'Choice Scarf'; + } else { + return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; + } + } + if (moves.has('bellydrum')) return 'Sitrus Berry'; + if (moves.has('waterspout')) return 'Choice Scarf'; + if (ability === 'Magic Guard') return 'Life Orb'; + if (moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; + if (moves.has('rest') && !moves.has('sleeptalk') && !['Natural Cure', 'Shed Skin'].includes(ability)) { + return (moves.has('raindance') && ability === 'Hydration') ? 'Damp Rock' : 'Chesto Berry'; + } + if (ability === 'Unburden') return 'Sitrus Berry'; + if (role === 'Staller') return 'Leftovers'; + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; + + const scarfReqs = ( + role !== 'Wallbreaker' && + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && + !counter.get('priority') && !moves.has('pursuit') + ); + + if ( + moves.has('pursuit') && moves.has('suckerpunch') && counter.get('Dark') && + (!this.priorityPokemon.includes(species.id) || counter.get('Dark') >= 2) + ) return 'Black Glasses'; + if (counter.get('Special') === 4) { + return ( + scarfReqs && species.baseStats.spa >= 90 && this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Specs'; + } + if ( + counter.get('Special') === 3 && role === 'Fast Attacker' && (moves.has('explosion') || moves.has('selfdestruct')) + ) return 'Choice Scarf'; + if (counter.get('Special') === 3 && moves.has('uturn')) return 'Choice Specs'; + if (counter.get('Physical') === 4 && species.id !== 'jirachi' && + ['fakeout', 'rapidspin'].every(m => !moves.has(m)) + ) { + return ( + scarfReqs && (species.baseStats.atk >= 100 || ability === 'Pure Power' || ability === 'Huge Power') && + this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Band'; + } + + if (types.includes('Normal') && moves.has('fakeout') && !!counter.get('Normal')) return 'Silk Scarf'; + if (species.id === 'palkia') return 'Lustrous Orb'; + if (species.id === 'farfetchd') return 'Stick'; + if (moves.has('outrage') && counter.get('setup') && !moves.has('sleeptalk')) return 'Lum Berry'; + if (['batonpass', 'protect', 'substitute'].some(m => moves.has(m))) return 'Leftovers'; + if ( + role === 'Fast Support' && isLead && defensiveStatTotal < 255 && !counter.get('recovery') && + (counter.get('hazards') || counter.get('setup')) && (!counter.get('recoil') || ability === 'Rock Head') + ) return 'Focus Sash'; + + // Default Items + if (role === 'Fast Support') { + return ( + counter.get('Physical') + counter.get('Special') >= 3 && + ['rapidspin', 'uturn'].every(m => !moves.has(m)) && + this.dex.getEffectiveness('Rock', species) < 2 + ) ? 'Life Orb' : 'Leftovers'; + } + // noStab moves that should reject Expert Belt + const noExpertBeltMoves = this.noStab.filter( + moveid => ['Dragon', 'Normal', 'Poison'].includes(this.dex.moves.get(moveid).type) + ); + const expertBeltReqs = ( + !counter.get('Dragon') && !counter.get('Normal') && !counter.get('Poison') && + noExpertBeltMoves.every(m => !moves.has(m)) + ); + if (!counter.get('Status') && expertBeltReqs && (moves.has('uturn') || role === 'Fast Attacker')) return 'Expert Belt'; + if ( + ['Fast Attacker', 'Setup Sweeper', 'Wallbreaker'].some(m => role === m) && + this.dex.getEffectiveness('Rock', species) < 2 && !moves.has('rapidspin') + ) return 'Life Orb'; + return 'Leftovers'; + } + + randomSet( + species: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false + ): RandomTeamsTypes.RandomSet { + species = this.dex.species.get(species); + const forme = this.getForme(species); + const sets = this.randomSets[species.id]["sets"]; + const possibleSets = []; + // Check if the Pokemon has a Spinner set + let canSpinner = false; + for (const set of sets) { + if (!teamDetails.rapidSpin && set.role === 'Spinner') canSpinner = true; + } + for (const set of sets) { + // Prevent Spinner if the team already has removal + if (teamDetails.rapidSpin && set.role === 'Spinner') continue; + // Enforce Spinner if the team does not have removal + if (canSpinner && set.role !== 'Spinner') continue; + possibleSets.push(set); + } + const set = this.sampleIfArray(possibleSets); + const role = set.role; + const movePool: string[] = Array.from(set.movepool); + const preferredTypes = set.preferredTypes; + const preferredType = this.sampleIfArray(preferredTypes) || ''; + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const abilities = set.abilities!; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, movePool, + preferredType, role); + const counter = this.newQueryMoves(moves, species, preferredType, abilities); + + // Get ability + ability = this.getAbility(new Set(types), moves, abilities, counter, movePool, teamDetails, species, + preferredType, role); + + // Get items + item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + if (item === undefined) { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + } + + // For Trick / Switcheroo + if (item === 'Leftovers' && types.includes('Poison')) { + item = 'Black Sludge'; + } + + const level = this.getLevel(species); + + // We use a special variable to track Hidden Power + // so that we can check for all Hidden Powers at once + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + + if (hasHiddenPower) { + let hpType; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hpType = move.substr(11); + } + if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); + const HPivs = this.dex.types.get(hpType).HPivs; + let iv: StatID; + for (iv in HPivs) { + ivs[iv] = HPivs[iv]!; + } + } + + // Prepare optimal HP + const srImmunity = ability === 'Magic Guard'; + const srWeakness = srImmunity ? 0 : this.dex.getEffectiveness('Rock', species); + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if (moves.has('substitute') && item === 'Sitrus Berry') { + // Two Substitutes should activate Sitrus Berry + if (hp % 4 === 0) break; + } else if (moves.has('bellydrum') && item === 'Sitrus Berry') { + // Belly Drum should activate Sitrus Berry + if (hp % 2 === 0) break; + } else { + // Maximize number of Stealth Rock switch-ins + if (srWeakness <= 0) break; + if (srWeakness === 1 && ['Black Sludge', 'Leftovers', 'Life Orb'].includes(item)) break; + if (item !== 'Sitrus Berry' && hp % (4 / srWeakness) > 0) break; + // Minimise number of Stealth Rock switch-ins to activate Sitrus Berry + if (item === 'Sitrus Berry' && hp % (4 / srWeakness) === 0) break; + } + evs.hp -= 4; + } + + // Minimize confusion damage + if (!counter.get('Physical') && !moves.has('transform')) { + evs.atk = 0; + ivs.atk = hasHiddenPower ? (ivs.atk || 31) - 28 : 0; + } + + if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { + evs.spe = 0; + ivs.spe = hasHiddenPower ? (ivs.spe || 31) - 28 : 0; + } + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + + return { + name: species.baseSpecies, + species: forme, + gender: species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + role, + }; + } +} + +export default RandomGen4Teams; diff --git a/data/random-battles/gen5/sets.json b/data/random-battles/gen5/sets.json new file mode 100644 index 000000000000..2c7b59fb49a7 --- /dev/null +++ b/data/random-battles/gen5/sets.json @@ -0,0 +1,5050 @@ +{ + "venusaur": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"], + "abilities": ["Chlorophyll", "Overgrow"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "leafstorm", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll", "Overgrow"] + } + ] + }, + "charizard": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "dragonpulse", "fireblast", "focusblast", "hiddenpowergrass", "roost"], + "abilities": ["Blaze", "Solar Power"] + }, + { + "role": "Bulky Attacker", + "movepool": ["airslash", "earthquake", "fireblast", "roost", "willowisp"], + "abilities": ["Blaze", "Solar Power"] + }, + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "dragondance", "earthquake", "flareblitz", "swordsdance"], + "abilities": ["Blaze"] + } + ] + }, + "blastoise": { + "level": 84, + "sets": [ + { + "role": "Spinner", + "movepool": ["icebeam", "rapidspin", "roar", "scald", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["haze", "icebeam", "protect", "scald", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "butterfree": { + "level": 93, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "quiverdance", "sleeppowder", "substitute"], + "abilities": ["Tinted Lens"] + }, + { + "role": "Bulky Setup", + "movepool": ["bugbuzz", "quiverdance", "roost", "sleeppowder"], + "abilities": ["Tinted Lens"] + } + ] + }, + "beedrill": { + "level": 97, + "sets": [ + { + "role": "Fast Support", + "movepool": ["drillrun", "poisonjab", "toxicspikes", "uturn"], + "abilities": ["Swarm"] + } + ] + }, + "pidgeot": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "heatwave", "return", "roost", "uturn", "workup"], + "abilities": ["Big Pecks"] + }, + { + "role": "Wallbreaker", + "movepool": ["bravebird", "quickattack", "return", "uturn"], + "abilities": ["Big Pecks"] + } + ] + }, + "raticate": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "flamewheel", "protect", "suckerpunch", "swordsdance", "uturn"], + "abilities": ["Guts"], + "preferredTypes": ["Dark"] + } + ] + }, + "fearow": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "drillpeck", "drillrun", "return", "uturn"], + "abilities": ["Sniper"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "drillpeck", "drillrun", "return", "roost"], + "abilities": ["Sniper"] + } + ] + }, + "arbok": { + "level": 91, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["coil", "earthquake", "glare", "gunkshot", "suckerpunch"], + "abilities": ["Intimidate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["coil", "earthquake", "gunkshot", "suckerpunch"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["coil", "earthquake", "gunkshot", "rest"], + "abilities": ["Shed Skin"], + "preferredTypes": ["Ground"] + } + ] + }, + "pikachu": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "grassknot", "hiddenpowerice", "voltswitch", "volttackle"], + "abilities": ["Lightning Rod"] + } + ] + }, + "raichu": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["encore", "focusblast", "grassknot", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "sandslash": { + "level": 87, + "sets": [ + { + "role": "Spinner", + "movepool": ["earthquake", "rapidspin", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Sand Rush"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Sand Rush"] + } + ] + }, + "nidoqueen": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "nidoking": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "clefable": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "doubleedge", "fireblast", "softboiled", "stealthrock", "thunderwave"], + "abilities": ["Magic Guard"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "softboiled", "thunderbolt"], + "abilities": ["Magic Guard", "Unaware"] + } + ] + }, + "ninetales": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["fireblast", "hypnosis", "nastyplot", "solarbeam", "willowisp"], + "abilities": ["Drought"], + "preferredTypes": ["Grass"] + }, + { + "role": "Setup Sweeper", + "movepool": ["fireblast", "hiddenpowerrock", "nastyplot", "solarbeam", "substitute"], + "abilities": ["Drought"], + "preferredTypes": ["Grass"] + } + ] + }, + "wigglytuff": { + "level": 97, + "sets": [ + { + "role": "Fast Support", + "movepool": ["doubleedge", "protect", "thunderwave", "toxic", "wish"], + "abilities": ["Frisk"] + }, + { + "role": "Bulky Support", + "movepool": ["bodyslam", "fireblast", "healbell", "protect", "stealthrock", "wish"], + "abilities": ["Frisk"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Frisk"] + } + ] + }, + "vileplume": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "gigadrain", "hiddenpowerground", "leechseed", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Effect Spore"] + } + ] + }, + "parasect": { + "level": 99, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "leechseed", "seedbomb", "spore", "stunspore", "synthesis", "xscissor"], + "abilities": ["Dry Skin"], + "preferredTypes": ["Bug"] + }, + { + "role": "Bulky Attacker", + "movepool": ["aromatherapy", "leechseed", "seedbomb", "spore", "stunspore", "xscissor"], + "abilities": ["Dry Skin"] + }, + { + "role": "Staller", + "movepool": ["leechseed", "protect", "spore", "xscissor"], + "abilities": ["Dry Skin"] + } + ] + }, + "venomoth": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbuzz", "quiverdance", "roost", "sleeppowder"], + "abilities": ["Tinted Lens"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "quiverdance", "sleeppowder", "substitute"], + "abilities": ["Tinted Lens"] + } + ] + }, + "dugtrio": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "memento", "stealthrock", "stoneedge", "suckerpunch"], + "abilities": ["Arena Trap"] + } + ] + }, + "persian": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bite", "doubleedge", "fakeout", "hypnosis", "return", "seedbomb", "taunt", "uturn"], + "abilities": ["Technician"], + "preferredTypes": ["Dark"] + } + ] + }, + "golduck": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "encore", "focusblast", "hydropump", "icebeam", "scald"], + "abilities": ["Cloud Nine", "Swift Swim"], + "preferredTypes": ["Ice"] + } + ] + }, + "primeape": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "honeclaws", "stoneedge", "uturn"], + "abilities": ["Defiant", "Vital Spirit"] + } + ] + }, + "arcanine": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "extremespeed", "flareblitz", "morningsun", "roar", "toxic", "wildcharge", "willowisp"], + "abilities": ["Intimidate"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "extremespeed", "flareblitz", "morningsun", "wildcharge"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "poliwrath": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "hydropump", "icebeam", "raindance"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Attacker", + "movepool": ["circlethrow", "rest", "scald", "sleeptalk"], + "abilities": ["Water Absorb"] + } + ] + }, + "alakazam": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["counter", "focusblast", "psychic", "psyshock", "shadowball"], + "abilities": ["Magic Guard"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball", "substitute"], + "abilities": ["Magic Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "machamp": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulletpunch", "dynamicpunch", "earthquake", "payback", "stoneedge", "toxic"], + "abilities": ["No Guard"], + "preferredTypes": ["Rock"] + } + ] + }, + "victreebel": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerground", "powerwhip", "sleeppowder", "sludgebomb", "suckerpunch"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["powerwhip", "sludgebomb", "sunnyday", "weatherball"], + "abilities": ["Chlorophyll"] + } + ] + }, + "tentacruel": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "icebeam", "rapidspin", "scald", "sludgebomb", "toxicspikes"], + "abilities": ["Clear Body", "Liquid Ooze"] + } + ] + }, + "golem": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "rapidash": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drillrun", "flareblitz", "morningsun", "wildcharge", "willowisp"], + "abilities": ["Flame Body", "Flash Fire"] + }, + { + "role": "Wallbreaker", + "movepool": ["drillrun", "flareblitz", "megahorn", "morningsun", "wildcharge"], + "abilities": ["Flash Fire"] + } + ] + }, + "slowbro": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], + "abilities": ["Regenerator"] + }, + { + "role": "Staller", + "movepool": ["calmmind", "psyshock", "scald", "slackoff"], + "abilities": ["Regenerator"] + }, + { + "role": "Wallbreaker", + "movepool": ["fireblast", "icebeam", "psyshock", "surf", "trick", "trickroom"], + "abilities": ["Regenerator"], + "preferredTypes": ["Psychic"] + } + ] + }, + "farfetchd": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bravebird", "leafblade", "quickattack", "return", "swordsdance"], + "abilities": ["Defiant"] + } + ] + }, + "dodrio": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bravebird", "pursuit", "quickattack", "return", "roost"], + "abilities": ["Early Bird"] + } + ] + }, + "dewgong": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["encore", "icebeam", "rest", "sleeptalk", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "muk": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["brickbreak", "curse", "icepunch", "poisonjab", "rest", "shadowsneak"], + "abilities": ["Poison Touch"], + "preferredTypes": ["Fighting"] + } + ] + }, + "cloyster": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hydropump", "iciclespear", "rockblast", "shellsmash"], + "abilities": ["Skill Link"] + } + ] + }, + "gengar": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "painsplit", "shadowball", "sludgewave", "substitute", "trick", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "hypno": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["focusblast", "foulplay", "protect", "psychic", "thunderwave", "toxic", "wish"], + "abilities": ["Insomnia"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Insomnia"] + } + ] + }, + "kingler": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bodyslam", "crabhammer", "rockslide", "superpower", "swordsdance", "xscissor"], + "abilities": ["Hyper Cutter", "Sheer Force"] + }, + { + "role": "Bulky Setup", + "movepool": ["agility", "crabhammer", "return", "swordsdance"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "electrode": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["foulplay", "hiddenpowerice", "signalbeam", "taunt", "thunderbolt", "voltswitch"], + "abilities": ["Aftermath", "Static"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Support", + "movepool": ["hiddenpowerice", "thunderbolt", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Aftermath", "Static"] + } + ] + }, + "exeggutor": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gigadrain", "hiddenpowerfire", "leechseed", "psychic", "sleeppowder", "substitute"], + "abilities": ["Harvest"], + "preferredTypes": ["Psychic"] + } + ] + }, + "marowak": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "firepunch", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Battle Armor", "Rock Head"], + "preferredTypes": ["Rock"] + } + ] + }, + "hitmonlee": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "fakeout", "rapidspin", "stoneedge", "suckerpunch"], + "abilities": ["Unburden"] + }, + { + "role": "Wallbreaker", + "movepool": ["earthquake", "highjumpkick", "machpunch", "stoneedge", "suckerpunch"], + "abilities": ["Reckless"] + } + ] + }, + "hitmonchan": { + "level": 86, + "sets": [ + { + "role": "Spinner", + "movepool": ["drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"], + "abilities": ["Iron Fist"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "drainpunch", "icepunch", "machpunch", "stoneedge"], + "abilities": ["Iron Fist"] + } + ] + }, + "weezing": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "haze", "painsplit", "sludgebomb", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rhydon": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "megahorn", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Lightning Rod"] + } + ] + }, + "chansey": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "kangaskhan": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["doubleedge", "drainpunch", "earthquake", "fakeout", "return", "suckerpunch"], + "abilities": ["Scrappy"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "drainpunch", "protect", "return", "wish"], + "abilities": ["Scrappy"] + } + ] + }, + "seaking": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["drillrun", "icebeam", "megahorn", "return", "waterfall"], + "abilities": ["Lightning Rod"] + }, + { + "role": "Setup Sweeper", + "movepool": ["drillrun", "icebeam", "megahorn", "raindance", "return", "waterfall"], + "abilities": ["Swift Swim"] + } + ] + }, + "starmie": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hydropump", "icebeam", "psyshock", "recover", "thunderbolt"], + "abilities": ["Analytic"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "psyshock", "rapidspin", "recover", "scald", "thunderwave"], + "abilities": ["Natural Cure"] + } + ] + }, + "mrmime": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["encore", "focusblast", "nastyplot", "psychic", "shadowball", "substitute"], + "abilities": ["Filter"], + "preferredTypes": ["Fighting"] + } + ] + }, + "scyther": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "brickbreak", "bugbite", "roost", "swordsdance"], + "abilities": ["Technician"] + } + ] + }, + "jynx": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "icebeam", "lovelykiss", "psychic", "psyshock", "trick"], + "abilities": ["Dry Skin"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psyshock"], + "abilities": ["Dry Skin"] + } + ] + }, + "pinsir": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "stealthrock", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Moxie"], + "preferredTypes": ["Rock"] + } + ] + }, + "tauros": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bodyslam", "earthquake", "fireblast", "rockslide", "zenheadbutt"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "stoneedge", "zenheadbutt"], + "abilities": ["Intimidate"] + } + ] + }, + "gyarados": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "substitute", "waterfall"], + "abilities": ["Intimidate", "Moxie"] + } + ] + }, + "lapras": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hydropump", "icebeam", "thunderbolt", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["hydropump", "icebeam", "protect", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "ditto": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["transform"], + "abilities": ["Imposter"] + } + ] + }, + "vaporeon": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "protect", "scald", "wish"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["protect", "scald", "toxic", "wish"], + "abilities": ["Water Absorb"] + } + ] + }, + "jolteon": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "signalbeam", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "flareon": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["facade", "flamecharge", "rest", "sleeptalk"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["facade", "flamecharge", "protect", "superpower"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["facade", "firefang", "flamecharge", "superpower"], + "abilities": ["Guts"] + } + ] + }, + "omastar": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash", "surf"], + "abilities": ["Shell Armor", "Swift Swim"] + } + ] + }, + "kabutops": { + "level": 86, + "sets": [ + { + "role": "Spinner", + "movepool": ["aquajet", "rapidspin", "stealthrock", "stoneedge", "superpower", "waterfall"], + "abilities": ["Battle Armor", "Swift Swim"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "stealthrock", "stoneedge", "superpower", "swordsdance", "waterfall"], + "abilities": ["Battle Armor", "Swift Swim"] + } + ] + }, + "aerodactyl": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "roost", "stealthrock", "stoneedge", "taunt", "toxic"], + "abilities": ["Unnerve"] + }, + { + "role": "Fast Support", + "movepool": ["aerialace", "aquatail", "earthquake", "pursuit", "roost", "stealthrock", "stoneedge"], + "abilities": ["Unnerve"], + "preferredTypes": ["Ground"] + } + ] + }, + "snorlax": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "crunch", "earthquake", "rest", "sleeptalk"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "curse", "rest", "sleeptalk"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "curse", "earthquake", "rest"], + "abilities": ["Thick Fat"] + } + ] + }, + "articuno": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "roost", "substitute", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Support", + "movepool": ["hurricane", "icebeam", "roost", "substitute", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "zapdos": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["heatwave", "hiddenpowerice", "roost", "substitute", "thunderbolt", "toxic", "uturn"], + "abilities": ["Pressure"] + } + ] + }, + "moltres": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "hiddenpowergrass", "hurricane", "roost", "substitute", "toxic", "uturn", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "dragonair": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "outrage", "rest", "waterfall"], + "abilities": ["Shed Skin"] + }, + { + "role": "Bulky Setup", + "movepool": ["dragondance", "outrage", "rest", "sleeptalk"], + "abilities": ["Marvel Scale", "Shed Skin"] + } + ] + }, + "dragonite": { + "level": 74, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "extremespeed", "outrage", "superpower"], + "abilities": ["Multiscale"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "firepunch", "outrage", "roost"], + "abilities": ["Multiscale"], + "preferredTypes": ["Ground"] + } + ] + }, + "mewtwo": { + "level": 70, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"], + "abilities": ["Unnerve"] + } + ] + }, + "mew": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["psychic", "softboiled", "stealthrock", "taunt", "uturn", "willowisp"], + "abilities": ["Synchronize"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "earthpower", "fireblast", "nastyplot", "psychic", "psyshock", "softboiled"], + "abilities": ["Synchronize"] + } + ] + }, + "meganium": { + "level": 91, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "dragontail", "earthquake", "gigadrain", "leechseed", "synthesis", "toxic"], + "abilities": ["Overgrow"] + } + ] + }, + "typhlosion": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"], + "abilities": ["Blaze"] + } + ] + }, + "feraligatr": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "icepunch", "waterfall"], + "abilities": ["Torrent"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "return", "swordsdance", "waterfall"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "earthquake", "icepunch", "superpower", "waterfall"], + "abilities": ["Torrent"], + "preferredTypes": ["Ice"] + } + ] + }, + "furret": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "doubleedge", "firepunch", "shadowclaw", "trick", "uturn"], + "abilities": ["Frisk"] + } + ] + }, + "noctowl": { + "level": 96, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["airslash", "heatwave", "hypervoice", "roost", "toxic", "whirlwind"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Normal"] + } + ] + }, + "ledian": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["acrobatics", "encore", "focusblast", "knockoff", "roost", "toxic"], + "abilities": ["Early Bird"] + } + ] + }, + "ariados": { + "level": 98, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["poisonjab", "suckerpunch", "toxicspikes", "xscissor"], + "abilities": ["Insomnia", "Swarm"] + } + ] + }, + "crobat": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bravebird", "heatwave", "hypnosis", "roost", "superfang", "taunt", "toxic", "uturn"], + "abilities": ["Inner Focus"] + } + ] + }, + "lanturn": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["healbell", "icebeam", "scald", "thunderbolt", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "xatu": { + "level": 84, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "heatwave", "psychic", "roost"], + "abilities": ["Magic Bounce"] + }, + { + "role": "Bulky Support", + "movepool": ["heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"], + "abilities": ["Magic Bounce"] + } + ] + }, + "ampharos": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["agility", "focusblast", "hiddenpowerice", "thunderbolt", "voltswitch"], + "abilities": ["Static"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focusblast", "healbell", "hiddenpowerice", "thunderbolt", "toxic", "voltswitch"], + "abilities": ["Static"] + } + ] + }, + "bellossom": { + "level": 94, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "leafstorm", "leechseed", "sleeppowder", "stunspore", "synthesis"], + "abilities": ["Chlorophyll"] + } + ] + }, + "azumarill": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "doubleedge", "icepunch", "superpower", "waterfall"], + "abilities": ["Huge Power"], + "preferredTypes": ["Ice"] + }, + { + "role": "Bulky Setup", + "movepool": ["aquajet", "bellydrum", "return", "waterfall"], + "abilities": ["Huge Power"] + } + ] + }, + "sudowoodo": { + "level": 93, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"], + "abilities": ["Rock Head"], + "preferredTypes": ["Grass"] + } + ] + }, + "politoed": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["encore", "focusblast", "hiddenpowergrass", "hypnosis", "icebeam", "rest", "scald"], + "abilities": ["Drizzle"], + "preferredTypes": ["Ice"] + }, + { + "role": "Staller", + "movepool": ["encore", "icebeam", "protect", "scald", "toxic"], + "abilities": ["Drizzle"] + } + ] + }, + "jumpluff": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["acrobatics", "encore", "sleeppowder", "uturn"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Staller", + "movepool": ["acrobatics", "leechseed", "sleeppowder", "substitute"], + "abilities": ["Chlorophyll"] + } + ] + }, + "sunflora": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "hiddenpowerfire", "hiddenpowerice", "hiddenpowerrock", "leafstorm", "sludgebomb"], + "abilities": ["Chlorophyll", "Early Bird"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthpower", "hiddenpowerfire", "solarbeam", "sunnyday"], + "abilities": ["Chlorophyll"] + } + ] + }, + "quagsire": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Unaware"] + } + ] + }, + "espeon": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "hiddenpowerfighting", "morningsun", "psychic", "psyshock", "signalbeam", "trick"], + "abilities": ["Magic Bounce"] + } + ] + }, + "umbreon": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["foulplay", "protect", "toxic", "wish"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Support", + "movepool": ["foulplay", "healbell", "moonlight", "toxic"], + "abilities": ["Synchronize"] + } + ] + }, + "murkrow": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bravebird", "foulplay", "haze", "roost", "taunt", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "slowking": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], + "abilities": ["Regenerator"] + }, + { + "role": "Wallbreaker", + "movepool": ["fireblast", "icebeam", "psyshock", "surf", "trick", "trickroom"], + "abilities": ["Regenerator"], + "preferredTypes": ["Psychic"] + } + ] + }, + "unown": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerpsychic"], + "abilities": ["Levitate"] + } + ] + }, + "wobbuffet": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["counter", "destinybond", "encore", "mirrorcoat"], + "abilities": ["Shadow Tag"] + } + ] + }, + "girafarig": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerfighting", "hypervoice", "psychic", "psyshock", "substitute", "thunderbolt"], + "abilities": ["Sap Sipper"] + } + ] + }, + "forretress": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], + "abilities": ["Sturdy"] + } + ] + }, + "dunsparce": { + "level": 93, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "glare", "headbutt", "roost"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "coil", "earthquake", "roost"], + "abilities": ["Serene Grace"] + } + ] + }, + "gligar": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "roost", "stealthrock", "taunt", "toxic", "uturn"], + "abilities": ["Immunity"] + } + ] + }, + "steelix": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "ironhead", "roar", "rockslide", "stealthrock", "toxic"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Steel"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "heavyslam", "protect", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "heavyslam", "roar", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "granbull": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "crunch", "healbell", "return", "thunderwave"], + "abilities": ["Intimidate"] + } + ] + }, + "qwilfish": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"], + "abilities": ["Intimidate"] + } + ] + }, + "scizor": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbite", "bulletpunch", "roost", "superpower", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "pursuit", "superpower", "uturn"], + "abilities": ["Technician"] + } + ] + }, + "shuckle": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "knockoff", "protect", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "heracross": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "facade", "megahorn", "nightslash"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "megahorn", "nightslash", "stoneedge"], + "abilities": ["Moxie"], + "preferredTypes": ["Rock"] + } + ] + }, + "ursaring": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "protect"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "swordsdance"], + "abilities": ["Quick Feet"] + } + ] + }, + "magcargo": { + "level": 95, + "sets": [ + { + "role": "Staller", + "movepool": ["hiddenpowerrock", "lavaplume", "recover", "stealthrock", "toxic"], + "abilities": ["Flame Body"] + } + ] + }, + "corsola": { + "level": 96, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["powergem", "recover", "scald", "stealthrock", "toxic"], + "abilities": ["Regenerator"] + } + ] + }, + "octillery": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["energyball", "fireblast", "hydropump", "icebeam", "thunderwave"], + "abilities": ["Sniper"] + } + ] + }, + "delibird": { + "level": 100, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "iceshard", "rapidspin", "seismictoss", "toxic"], + "abilities": ["Insomnia", "Vital Spirit"] + } + ] + }, + "mantine": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["airslash", "rest", "scald", "sleeptalk", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["airslash", "hydropump", "icebeam", "raindance"], + "abilities": ["Swift Swim"] + } + ] + }, + "skarmory": { + "level": 76, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"], + "abilities": ["Sturdy"] + }, + { + "role": "Staller", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "houndoom": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "fireblast", "hiddenpowergrass", "nastyplot", "suckerpunch"], + "abilities": ["Flash Fire"] + } + ] + }, + "kingdra": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["dragondance", "outrage", "rest", "substitute", "waterfall"], + "abilities": ["Sniper", "Swift Swim"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dracometeor", "hydropump", "icebeam", "raindance", "waterfall"], + "abilities": ["Swift Swim"] + } + ] + }, + "donphan": { + "level": 82, + "sets": [ + { + "role": "Spinner", + "movepool": ["earthquake", "iceshard", "rapidspin", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Sturdy"], + "preferredTypes": ["Rock"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "gunkshot", "iceshard", "stealthrock", "stoneedge"], + "abilities": ["Sturdy"], + "preferredTypes": ["Rock"] + } + ] + }, + "porygon2": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["discharge", "icebeam", "recover", "toxic", "triattack"], + "abilities": ["Download", "Trace"] + } + ] + }, + "stantler": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "hypnosis", "jumpkick", "megahorn", "suckerpunch", "thunderwave"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "smeargle": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["memento", "spikes", "spore", "stealthrock", "whirlwind"], + "abilities": ["Own Tempo"] + } + ] + }, + "hitmontop": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["closecombat", "earthquake", "rapidspin", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "miltank": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], + "abilities": ["Sap Sipper", "Thick Fat"] + } + ] + }, + "blissey": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "raikou": { + "level": 76, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "hiddenpowerice", "thunderbolt", "voltswitch"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Pressure"], + "preferredTypes": ["Ice"] + } + ] + }, + "entei": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bulldoze", "extremespeed", "flareblitz", "stoneedge"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "flareblitz", "hiddenpowergrass", "stoneedge"], + "abilities": ["Pressure"] + } + ] + }, + "suicune": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "rest", "scald", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hydropump", "icebeam", "rest", "scald", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Staller", + "movepool": ["calmmind", "protect", "scald", "substitute"], + "abilities": ["Pressure"] + } + ] + }, + "tyranitar": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "stealthrock", "stoneedge", "superpower"], + "abilities": ["Sand Stream"] + }, + { + "role": "Bulky Setup", + "movepool": ["crunch", "dragondance", "earthquake", "firepunch", "icepunch", "stoneedge"], + "abilities": ["Sand Stream"] + } + ] + }, + "lugia": { + "level": 71, + "sets": [ + { + "role": "Staller", + "movepool": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"], + "abilities": ["Multiscale"] + } + ] + }, + "hooh": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "earthquake", "roost", "sacredfire", "substitute", "toxic"], + "abilities": ["Regenerator"] + } + ] + }, + "celebi": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthpower", "gigadrain", "leafstorm", "nastyplot", "psychic", "uturn"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Support", + "movepool": ["leafstorm", "psychic", "recover", "stealthrock", "thunderwave", "uturn"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Setup", + "movepool": ["leafstorm", "nastyplot", "psychic", "recover"], + "abilities": ["Natural Cure"] + } + ] + }, + "sceptile": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "earthquake", "leafblade", "swordsdance"], + "abilities": ["Unburden"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "rockslide"], + "abilities": ["Overgrow"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "substitute"], + "abilities": ["Overgrow"] + } + ] + }, + "blaziken": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["flareblitz", "highjumpkick", "protect", "stoneedge", "swordsdance"], + "abilities": ["Speed Boost"] + }, + { + "role": "Wallbreaker", + "movepool": ["fireblast", "highjumpkick", "protect", "stoneedge"], + "abilities": ["Speed Boost"] + } + ] + }, + "swampert": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "roar", "scald", "stealthrock", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "mightyena": { + "level": 96, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crunch", "doubleedge", "firefang", "suckerpunch", "taunt"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fire"] + } + ] + }, + "linoone": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"], + "abilities": ["Quick Feet"] + } + ] + }, + "beautifly": { + "level": 99, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "hiddenpowerground", "psychic", "quiverdance"], + "abilities": ["Swarm"] + } + ] + }, + "dustox": { + "level": 93, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbuzz", "hiddenpowerground", "quiverdance", "roost", "sludgebomb"], + "abilities": ["Shield Dust"] + } + ] + }, + "ludicolo": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["gigadrain", "hydropump", "icebeam", "raindance"], + "abilities": ["Swift Swim"] + }, + { + "role": "Wallbreaker", + "movepool": ["gigadrain", "hydropump", "icebeam", "scald"], + "abilities": ["Swift Swim"] + } + ] + }, + "shiftry": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "hiddenpowerfire", "leafstorm", "naturepower", "suckerpunch"], + "abilities": ["Chlorophyll", "Early Bird"] + }, + { + "role": "Setup Sweeper", + "movepool": ["naturepower", "seedbomb", "suckerpunch", "swordsdance"], + "abilities": ["Chlorophyll", "Early Bird"] + } + ] + }, + "swellow": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "facade", "protect", "uturn"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["bravebird", "facade", "quickattack", "uturn"], + "abilities": ["Guts"] + } + ] + }, + "pelipper": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hurricane", "roost", "scald", "toxic", "uturn"], + "abilities": ["Rain Dish"] + } + ] + }, + "gardevoir": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "healingwish", "psychic", "shadowball", "thunderbolt", "trick"], + "abilities": ["Trace"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "focusblast", "psychic", "psyshock", "shadowball", "substitute", "willowisp"], + "abilities": ["Trace"], + "preferredTypes": ["Fighting"] + } + ] + }, + "masquerain": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "bugbuzz", "hydropump", "quiverdance", "roost"], + "abilities": ["Intimidate"] + } + ] + }, + "breloom": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletseed", "machpunch", "spore", "stoneedge", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focuspunch", "spore", "stoneedge", "substitute"], + "abilities": ["Poison Heal"] + } + ] + }, + "vigoroth": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "bulkup", "earthquake", "nightslash", "return", "slackoff"], + "abilities": ["Vital Spirit"] + } + ] + }, + "slaking": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "gigaimpact", "nightslash", "retaliate"], + "abilities": ["Truant"] + } + ] + }, + "ninjask": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "nightslash", "swordsdance", "uturn", "xscissor"], + "abilities": ["Speed Boost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "substitute", "swordsdance", "xscissor"], + "abilities": ["Speed Boost"] + } + ] + }, + "shedinja": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"], + "abilities": ["Wonder Guard"] + } + ] + }, + "exploud": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["fireblast", "focusblast", "hypervoice", "icebeam", "surf"], + "abilities": ["Scrappy"] + }, + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "earthquake", "facade", "lowkick"], + "abilities": ["Scrappy"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "fireblast", "focusblast", "return", "surf", "workup"], + "abilities": ["Scrappy"] + } + ] + }, + "hariyama": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bulletpunch", "closecombat", "facade", "fakeout", "stoneedge"], + "abilities": ["Guts"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "bulletpunch", "closecombat", "earthquake", "stoneedge"], + "abilities": ["Thick Fat"], + "preferredTypes": ["Rock"] + } + ] + }, + "delcatty": { + "level": 98, + "sets": [ + { + "role": "Fast Support", + "movepool": ["doubleedge", "fakeout", "healbell", "suckerpunch", "thunderwave", "toxic"], + "abilities": ["Wonder Skin"] + } + ] + }, + "sableye": { + "level": 88, + "sets": [ + { + "role": "Staller", + "movepool": ["foulplay", "recover", "taunt", "willowisp"], + "abilities": ["Prankster"] + }, + { + "role": "Bulky Support", + "movepool": ["recover", "seismictoss", "taunt", "toxic", "willowisp"], + "abilities": ["Prankster"] + } + ] + }, + "mawile": { + "level": 95, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["firefang", "ironhead", "suckerpunch", "swordsdance", "thunderpunch"], + "abilities": ["Intimidate", "Sheer Force"], + "preferredTypes": ["Fire"] + }, + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "ironhead", "stealthrock", "suckerpunch", "thunderpunch"], + "abilities": ["Intimidate", "Sheer Force"], + "preferredTypes": ["Fire"] + } + ] + }, + "aggron": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock", "thunderwave"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "medicham": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "highjumpkick", "icepunch", "trick", "zenheadbutt"], + "abilities": ["Pure Power"] + } + ] + }, + "manectric": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["flamethrower", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "plusle": { + "level": 90, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Plus"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Plus"] + } + ] + }, + "minun": { + "level": 92, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Minus"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Minus"] + } + ] + }, + "volbeat": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "roost", "thunderwave", "uturn"], + "abilities": ["Prankster"] + } + ] + }, + "illumise": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bugbuzz", "encore", "roost", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "swalot": { + "level": 93, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "encore", "icebeam", "painsplit", "sludgebomb", "toxic", "yawn"], + "abilities": ["Liquid Ooze"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "sludgebomb", "toxic"], + "abilities": ["Liquid Ooze"] + } + ] + }, + "sharpedo": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["crunch", "earthquake", "hydropump", "icebeam", "protect"], + "abilities": ["Speed Boost"] + } + ] + }, + "wailord": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "waterspout"], + "abilities": ["Water Veil"] + } + ] + }, + "camerupt": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "lavaplume", "roar", "stealthrock", "toxic"], + "abilities": ["Solid Rock"] + } + ] + }, + "torkoal": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "lavaplume", "rapidspin", "stealthrock", "yawn"], + "abilities": ["White Smoke"] + } + ] + }, + "grumpig": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["focusblast", "healbell", "psychic", "thunderwave", "toxic", "whirlwind"], + "abilities": ["Thick Fat"] + }, + { + "role": "Wallbreaker", + "movepool": ["calmmind", "focusblast", "psychic", "psyshock", "shadowball", "trick"], + "abilities": ["Thick Fat"] + } + ] + }, + "spinda": { + "level": 98, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["feintattack", "rapidspin", "return", "suckerpunch", "superpower"], + "abilities": ["Contrary"], + "preferredTypes": ["Fighting"] + } + ] + }, + "flygon": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "outrage", "stoneedge", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "earthquake", "fireblast", "roost", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "cacturne": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "focusblast", "gigadrain", "spikes", "suckerpunch"], + "abilities": ["Water Absorb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["drainpunch", "seedbomb", "suckerpunch", "swordsdance"], + "abilities": ["Water Absorb"] + } + ] + }, + "altaria": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["dragondance", "earthquake", "outrage", "roost"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "earthquake", "fireblast", "haze", "healbell", "roost", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "zangoose": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "facade", "nightslash", "quickattack", "swordsdance"], + "abilities": ["Toxic Boost"], + "preferredTypes": ["Dark"] + } + ] + }, + "seviper": { + "level": 92, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "flamethrower", "gigadrain", "sludgebomb", "suckerpunch", "switcheroo"], + "abilities": ["Shed Skin"], + "preferredTypes": ["Ground"] + } + ] + }, + "lunatone": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "icebeam", "moonlight", "psychic", "rockpolish"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["earthpower", "hiddenpowerrock", "moonlight", "psychic", "stealthrock", "toxic"], + "abilities": ["Levitate"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "moonlight", "psychic"], + "abilities": ["Levitate"] + } + ] + }, + "solrock": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "morningsun", "stealthrock", "stoneedge", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "whiscash": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "waterfall"], + "abilities": ["Anticipation", "Hydration"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Anticipation", "Hydration"] + } + ] + }, + "crawdaunt": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "superpower", "waterfall"], + "abilities": ["Adaptability"] + } + ] + }, + "claydol": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "cradily": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "earthquake", "recover", "seedbomb", "stoneedge", "swordsdance"], + "abilities": ["Storm Drain"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "gigadrain", "recover", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Storm Drain"], + "preferredTypes": ["Grass"] + } + ] + }, + "armaldo": { + "level": 87, + "sets": [ + { + "role": "Spinner", + "movepool": ["earthquake", "rapidspin", "stealthrock", "stoneedge", "toxic", "xscissor"], + "abilities": ["Battle Armor", "Swift Swim"] + }, + { + "role": "Bulky Attacker", + "movepool": ["aquatail", "earthquake", "stealthrock", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Battle Armor", "Swift Swim"] + } + ] + }, + "milotic": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["dragontail", "haze", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Marvel Scale"] + } + ] + }, + "castform": { + "level": 97, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "icebeam", "return", "scald", "thunderbolt", "thunderwave"], + "abilities": ["Forecast"] + } + ] + }, + "kecleon": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["foulplay", "recover", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Color Change"] + } + ] + }, + "banette": { + "level": 94, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "shadowclaw", "shadowsneak", "thunderwave", "willowisp"], + "abilities": ["Cursed Body", "Frisk", "Insomnia"] + } + ] + }, + "dusclops": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["rest", "seismictoss", "sleeptalk", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "tropius": { + "level": 94, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "leechseed", "protect", "substitute"], + "abilities": ["Harvest"] + } + ] + }, + "chimecho": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerfighting", "psychic", "recover", "thunderwave", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerfighting", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Levitate"] + } + ] + }, + "absol": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["nightslash", "pursuit", "suckerpunch", "superpower", "zenheadbutt"], + "abilities": ["Justified"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["nightslash", "suckerpunch", "superpower", "swordsdance"], + "abilities": ["Justified"] + } + ] + }, + "glalie": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icebeam", "spikes", "superfang", "taunt"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Ground"] + } + ] + }, + "walrein": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "icebeam", "roar", "superfang", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "huntail": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["icebeam", "return", "shellsmash", "suckerpunch", "waterfall"], + "abilities": ["Swift Swim", "Water Veil"], + "preferredTypes": ["Ice"] + } + ] + }, + "gorebyss": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"], + "abilities": ["Swift Swim"] + } + ] + }, + "relicanth": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headsmash", "stealthrock", "toxic", "waterfall", "yawn"], + "abilities": ["Rock Head"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "headsmash", "rockpolish", "waterfall"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "luvdisc": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "scald", "substitute", "toxic"], + "abilities": ["Hydration"] + } + ] + }, + "salamence": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "fireblast", "outrage", "roost"], + "abilities": ["Intimidate", "Moxie"], + "preferredTypes": ["Ground"] + } + ] + }, + "metagross": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "earthquake", "meteormash", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "earthquake", "explosion", "icepunch", "meteormash", "stealthrock", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + } + ] + }, + "regirock": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "drainpunch", "rest", "stoneedge"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Support", + "movepool": ["drainpunch", "earthquake", "stealthrock", "stoneedge", "thunderwave", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Staller", + "movepool": ["drainpunch", "earthquake", "protect", "rockslide", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "regice": { + "level": 85, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "thunderbolt", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focusblast", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave"], + "abilities": ["Clear Body"], + "preferredTypes": ["Electric"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "icebeam", "rockpolish", "thunderbolt"], + "abilities": ["Clear Body"] + } + ] + }, + "registeel": { + "level": 82, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "ironhead", "rest", "sleeptalk"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "seismictoss", "sleeptalk", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "latias": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "latios": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "kyogre": { + "level": 69, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icebeam", "surf", "thunder", "waterspout"], + "abilities": ["Drizzle"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "rest", "sleeptalk", "surf", "thunder"], + "abilities": ["Drizzle"] + } + ] + }, + "groudon": { + "level": 74, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "earthquake", "lavaplume", "stealthrock", "stoneedge", "thunderwave"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "firepunch", "rockpolish", "stoneedge", "swordsdance"], + "abilities": ["Drought"] + } + ] + }, + "rayquaza": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dracometeor", "earthquake", "extremespeed", "outrage", "vcreate"], + "abilities": ["Air Lock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "extremespeed", "outrage", "vcreate"], + "abilities": ["Air Lock"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "extremespeed", "outrage", "swordsdance", "vcreate"], + "abilities": ["Air Lock"], + "preferredTypes": ["Normal"] + } + ] + }, + "jirachi": { + "level": 76, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "firepunch", "healingwish", "ironhead", "protect", "stealthrock", "toxic", "uturn", "wish"], + "abilities": ["Serene Grace"] + } + ] + }, + "deoxys": { + "level": 73, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "extremespeed", "psychoboost", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Support", + "movepool": ["darkpulse", "icebeam", "psychoboost", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysattack": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "extremespeed", "psychoboost", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Support", + "movepool": ["darkpulse", "icebeam", "psychoboost", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysdefense": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["recover", "seismictoss", "spikes", "stealthrock", "taunt", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysspeed": { + "level": 78, + "sets": [ + { + "role": "Fast Support", + "movepool": ["psychoboost", "spikes", "stealthrock", "superpower", "taunt"], + "abilities": ["Pressure"] + } + ] + }, + "torterra": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "stealthrock", "stoneedge", "synthesis", "woodhammer"], + "abilities": ["Overgrow"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "rockpolish", "stoneedge", "woodhammer"], + "abilities": ["Overgrow"] + } + ] + }, + "infernape": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "grassknot", "machpunch", "overheat", "stealthrock"], + "abilities": ["Blaze", "Iron Fist"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "flareblitz", "machpunch", "stoneedge", "swordsdance", "uturn"], + "abilities": ["Blaze", "Iron Fist"] + } + ] + }, + "empoleon": { + "level": 80, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "scald", "stealthrock", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Support", + "movepool": ["icebeam", "roar", "scald", "stealthrock", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Setup Sweeper", + "movepool": ["agility", "grassknot", "hydropump", "icebeam"], + "abilities": ["Torrent"] + } + ] + }, + "staraptor": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "closecombat", "doubleedge", "quickattack", "uturn"], + "abilities": ["Reckless"], + "preferredTypes": ["Fighting"] + } + ] + }, + "bibarel": { + "level": 93, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["quickattack", "return", "waterfall", "workup"], + "abilities": ["Simple"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "quickattack", "return", "waterfall"], + "abilities": ["Simple"] + } + ] + }, + "kricketune": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "brickbreak", "bugbite", "nightslash", "swordsdance"], + "abilities": ["Technician"] + } + ] + }, + "luxray": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "superpower", "wildcharge"], + "abilities": ["Guts"] + }, + { + "role": "Bulky Attacker", + "movepool": ["crunch", "icefang", "superpower", "voltswitch", "wildcharge"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "roserade": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["gigadrain", "hiddenpowerground", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"], + "abilities": ["Natural Cure"] + } + ] + }, + "rampardos": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "firepunch", "rockpolish", "rockslide", "zenheadbutt"], + "abilities": ["Sheer Force"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "firepunch", "headsmash", "rockslide"], + "abilities": ["Sheer Force"] + } + ] + }, + "bastiodon": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["metalburst", "roar", "rockblast", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Staller", + "movepool": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "wormadam": { + "level": 100, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerground", "hiddenpowerrock", "leafstorm", "signalbeam", "synthesis", "toxic"], + "abilities": ["Anticipation", "Overcoat"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerground", "hiddenpowerrock", "leafstorm", "psychic", "signalbeam"], + "abilities": ["Anticipation", "Overcoat"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerground", "protect", "toxic"], + "abilities": ["Anticipation", "Overcoat"] + } + ] + }, + "wormadamsandy": { + "level": 92, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "protect", "stealthrock", "suckerpunch", "toxic"], + "abilities": ["Anticipation"] + } + ] + }, + "wormadamtrash": { + "level": 89, + "sets": [ + { + "role": "Staller", + "movepool": ["flashcannon", "protect", "stealthrock", "suckerpunch", "toxic"], + "abilities": ["Anticipation"] + } + ] + }, + "mothim": { + "level": 94, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "bugbuzz", "hiddenpowerground", "quiverdance", "substitute"], + "abilities": ["Tinted Lens"] + } + ] + }, + "vespiquen": { + "level": 98, + "sets": [ + { + "role": "Staller", + "movepool": ["acrobatics", "roost", "toxic", "uturn"], + "abilities": ["Pressure"] + } + ] + }, + "pachirisu": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["superfang", "thunderbolt", "thunderwave", "toxic", "uturn"], + "abilities": ["Volt Absorb"] + }, + { + "role": "Staller", + "movepool": ["protect", "thunderbolt", "toxic", "uturn"], + "abilities": ["Volt Absorb"] + } + ] + }, + "floatzel": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crunch", "icepunch", "lowkick", "switcheroo", "waterfall"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "crunch", "icepunch", "lowkick", "substitute", "waterfall"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + } + ] + }, + "cherrim": { + "level": 95, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["gigadrain", "healingwish", "hiddenpowerfire", "hiddenpowerrock", "morningsun", "naturepower"], + "abilities": ["Flower Gift"] + }, + { + "role": "Staller", + "movepool": ["aromatherapy", "gigadrain", "leechseed", "morningsun", "naturepower", "toxic"], + "abilities": ["Flower Gift"] + } + ] + }, + "gastrodon": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["clearsmog", "earthquake", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Storm Drain"] + } + ] + }, + "ambipom": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "lowkick", "payback", "pursuit", "return", "uturn"], + "abilities": ["Technician"] + } + ] + }, + "drifblim": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["acrobatics", "destinybond", "disable", "shadowball", "substitute", "willowisp"], + "abilities": ["Unburden"] + } + ] + }, + "lopunny": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["healingwish", "icepunch", "jumpkick", "return", "switcheroo"], + "abilities": ["Limber"] + } + ] + }, + "mismagius": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["destinybond", "hiddenpowerfighting", "painsplit", "shadowball", "substitute", "taunt", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "nastyplot", "shadowball", "thunderbolt", "trick"], + "abilities": ["Levitate"] + } + ] + }, + "honchkrow": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bravebird", "heatwave", "pursuit", "roost", "suckerpunch", "superpower"], + "abilities": ["Moxie"] + } + ] + }, + "purugly": { + "level": 89, + "sets": [ + { + "role": "Fast Support", + "movepool": ["fakeout", "hypnosis", "return", "shadowclaw", "uturn"], + "abilities": ["Defiant", "Thick Fat"] + }, + { + "role": "Setup Sweeper", + "movepool": ["honeclaws", "hypnosis", "irontail", "return"], + "abilities": ["Defiant", "Thick Fat"] + } + ] + }, + "skuntank": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"], + "abilities": ["Aftermath"] + } + ] + }, + "bronzong": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "hypnosis", "psychic", "stealthrock", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "psychic", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "chatot": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["chatter", "heatwave", "hiddenpowerground", "hypervoice", "nastyplot", "uturn"], + "abilities": ["Tangled Feet"] + }, + { + "role": "Setup Sweeper", + "movepool": ["chatter", "heatwave", "hiddenpowerground", "hypervoice", "nastyplot", "substitute"], + "abilities": ["Tangled Feet"] + } + ] + }, + "spiritomb": { + "level": 86, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "rest", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["foulplay", "painsplit", "pursuit", "suckerpunch", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "garchomp": { + "level": 74, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "fireblast", "outrage", "stealthrock", "stoneedge"], + "abilities": ["Rough Skin"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "firefang", "outrage", "stoneedge", "swordsdance"], + "abilities": ["Rough Skin"] + } + ] + }, + "lucario": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "crunch", "extremespeed", "stoneedge", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "flashcannon", "nastyplot", "vacuumwave"], + "abilities": ["Inner Focus"] + } + ] + }, + "hippowdon": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"], + "abilities": ["Sand Stream"] + } + ] + }, + "drapion": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquatail", "crunch", "earthquake", "poisonjab", "pursuit", "swordsdance"], + "abilities": ["Battle Armor"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["crunch", "earthquake", "poisonjab", "taunt", "toxicspikes", "whirlwind"], + "abilities": ["Battle Armor"] + } + ] + }, + "toxicroak": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["drainpunch", "earthquake", "icepunch", "poisonjab", "substitute", "suckerpunch", "swordsdance"], + "abilities": ["Dry Skin"] + } + ] + }, + "carnivine": { + "level": 98, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "powerwhip", "sleeppowder", "synthesis"], + "abilities": ["Levitate"] + } + ] + }, + "lumineon": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "scald", "toxic", "uturn"], + "abilities": ["Storm Drain"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "scald", "toxic", "uturn"], + "abilities": ["Storm Drain"] + }, + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowergrass", "icebeam", "scald", "toxic"], + "abilities": ["Storm Drain"] + } + ] + }, + "abomasnow": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "earthquake", "iceshard", "woodhammer"], + "abilities": ["Snow Warning"] + } + ] + }, + "weavile": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icepunch", "iceshard", "lowkick", "nightslash", "pursuit", "swordsdance"], + "abilities": ["Pressure"] + } + ] + }, + "magnezone": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["flashcannon", "hiddenpowerfire", "hiddenpowerground", "hiddenpowerice", "thunderbolt", "voltswitch"], + "abilities": ["Magnet Pull"] + }, + { + "role": "Staller", + "movepool": ["hiddenpowerice", "protect", "thunderbolt", "toxic"], + "abilities": ["Analytic"] + } + ] + }, + "lickilicky": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "healbell", "protect", "toxic", "wish"], + "abilities": ["Cloud Nine"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "earthquake", "explosion", "powerwhip", "return", "swordsdance"], + "abilities": ["Cloud Nine"], + "preferredTypes": ["Ground"] + } + ] + }, + "rhyperior": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge", "swordsdance"], + "abilities": ["Solid Rock"] + } + ] + }, + "tangrowth": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "hiddenpowerfire", "leafstorm", "leechseed", "morningsun", "powerwhip", "rockslide", "sleeppowder"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "hiddenpowerfire", "leafstorm", "powerwhip", "rockslide", "sleeppowder"], + "abilities": ["Regenerator"] + } + ] + }, + "electivire": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], + "abilities": ["Motor Drive"], + "preferredTypes": ["Ice"] + } + ] + }, + "magmortar": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "fireblast", "focusblast", "hiddenpowerice", "taunt", "thunderbolt"], + "abilities": ["Flame Body", "Vital Spirit"], + "preferredTypes": ["Electric"] + } + ] + }, + "togekiss": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["airslash", "aurasphere", "nastyplot", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Attacker", + "movepool": ["airslash", "healbell", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Fast Attacker", + "movepool": ["airslash", "aurasphere", "fireblast", "trick"], + "abilities": ["Serene Grace"] + } + ] + }, + "yanmega": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "bugbuzz", "hiddenpowerground", "protect"], + "abilities": ["Speed Boost"] + }, + { + "role": "Wallbreaker", + "movepool": ["airslash", "bugbuzz", "gigadrain", "uturn"], + "abilities": ["Tinted Lens"] + } + ] + }, + "leafeon": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "leafblade", "swordsdance", "synthesis", "xscissor"], + "abilities": ["Chlorophyll"], + "preferredTypes": ["Normal"] + } + ] + }, + "glaceon": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerground", "icebeam", "protect", "wish"], + "abilities": ["Ice Body"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "toxic", "wish"], + "abilities": ["Ice Body"] + } + ] + }, + "gliscor": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "protect", "substitute", "toxic"], + "abilities": ["Poison Heal"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "facade", "roost", "stealthrock", "stoneedge", "taunt", "toxic", "uturn"], + "abilities": ["Poison Heal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "facade", "roost", "swordsdance"], + "abilities": ["Poison Heal"] + } + ] + }, + "mamoswine": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "iceshard", "iciclecrash", "stealthrock"], + "abilities": ["Thick Fat"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "iceshard", "iciclecrash", "stoneedge", "superpower"], + "abilities": ["Thick Fat"] + } + ] + }, + "porygonz": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "hiddenpowerfighting", "icebeam", "nastyplot", "thunderbolt", "triattack", "trick"], + "abilities": ["Adaptability", "Download"] + } + ] + }, + "gallade": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "nightslash", "shadowsneak", "swordsdance", "trick", "zenheadbutt"], + "abilities": ["Justified"] + } + ] + }, + "probopass": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "powergem", "stealthrock", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Magnet Pull"] + } + ] + }, + "dusknoir": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icepunch", "painsplit", "shadowsneak", "toxic", "trick", "willowisp"], + "abilities": ["Pressure"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "shadowsneak", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "froslass": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"], + "abilities": ["Cursed Body"] + } + ] + }, + "rotom": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "painsplit", "shadowball", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomheat": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerice", "overheat", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomwash": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hydropump", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomfrost": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomfan": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "painsplit", "substitute", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotommow": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerice", "leafstorm", "painsplit", "thunderbolt", "thunderwave", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "uxie": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "psychic", "stealthrock", "thunderwave", "uturn", "yawn"], + "abilities": ["Levitate"] + } + ] + }, + "mesprit": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "healingwish", "hiddenpowerfighting", "icebeam", "psychic", "psyshock", "signalbeam", "thunderbolt", "trick", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["hiddenpowerfighting", "psychic", "stealthrock", "thunderwave", "toxic", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "azelf": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fireblast", "nastyplot", "psychic", "psyshock", "signalbeam", "thunderbolt", "trick", "uturn"], + "abilities": ["Levitate"], + "preferredTypes": ["Fire"] + }, + { + "role": "Fast Support", + "movepool": ["explosion", "fireblast", "psychic", "stealthrock", "taunt", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "dialga": { + "level": 70, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aurasphere", "dracometeor", "dragontail", "fireblast", "stealthrock", "thunderbolt", "toxic"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + } + ] + }, + "palkia": { + "level": 70, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "fireblast", "hydropump", "spacialrend", "thunderwave"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + } + ] + }, + "heatran": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthpower", "eruption", "fireblast", "hiddenpowerice"], + "abilities": ["Flash Fire"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "fireblast", "hiddenpowerice", "lavaplume", "roar", "stealthrock", "toxic"], + "abilities": ["Flash Fire"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthpower", "magmastorm", "protect", "toxic"], + "abilities": ["Flash Fire"] + } + ] + }, + "regigigas": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "return", "substitute", "thunderwave"], + "abilities": ["Slow Start"] + } + ] + }, + "giratina": { + "level": 70, + "sets": [ + { + "role": "Fast Support", + "movepool": ["dragonpulse", "dragontail", "rest", "sleeptalk", "willowisp"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "dragonpulse", "rest", "sleeptalk"], + "abilities": ["Pressure"] + } + ] + }, + "giratinaorigin": { + "level": 73, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "earthquake", "outrage", "shadowball", "shadowsneak", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "cresselia": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerfighting", "moonlight", "psyshock", "signalbeam"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["hiddenpowerfighting", "moonlight", "psychic", "thunderwave", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "phione": { + "level": 89, + "sets": [ + { + "role": "Staller", + "movepool": ["raindance", "rest", "scald", "toxic"], + "abilities": ["Hydration"] + }, + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "scald", "toxic", "uturn"], + "abilities": ["Hydration"] + } + ] + }, + "manaphy": { + "level": 75, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["energyball", "icebeam", "surf", "tailglow"], + "abilities": ["Hydration"] + } + ] + }, + "darkrai": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["darkpulse", "darkvoid", "focusblast", "nastyplot"], + "abilities": ["Bad Dreams"] + }, + { + "role": "Bulky Setup", + "movepool": ["darkpulse", "darkvoid", "nastyplot", "substitute"], + "abilities": ["Bad Dreams"] + } + ] + }, + "shaymin": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["airslash", "earthpower", "leechseed", "seedflare", "substitute", "synthesis"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Flying"] + } + ] + }, + "shayminsky": { + "level": 73, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "earthpower", "hiddenpowerice", "leechseed", "seedflare", "substitute"], + "abilities": ["Serene Grace"] + } + ] + }, + "arceus": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceusbug": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdark": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "focusblast", "judgment", "recover", "refresh"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdragon": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "outrage", "recover", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover", "refresh"], + "abilities": ["Multitype"] + } + ] + }, + "arceuselectric": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfighting": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfire": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment", "recover", "thunderbolt"], + "abilities": ["Multitype"] + } + ] + }, + "arceusflying": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover", "refresh"], + "abilities": ["Multitype"] + } + ] + }, + "arceusghost": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "focusblast", "judgment", "recover", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceusgrass": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusground": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Rock"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusice": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover", "thunderbolt"], + "abilities": ["Multitype"] + } + ] + }, + "arceuspoison": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "fireblast", "recover", "sludgebomb"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "icebeam", "recover", "sludgebomb", "stealthrock", "willowisp"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceuspsychic": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "darkpulse", "focusblast", "judgment", "recover"], + "abilities": ["Multitype"], + "preferredTypes": ["Fighting"] + } + ] + }, + "arceusrock": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceussteel": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceuswater": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "victini": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["boltstrike", "uturn", "vcreate", "zenheadbutt"], + "abilities": ["Victory Star"] + }, + { + "role": "Fast Attacker", + "movepool": ["boltstrike", "energyball", "focusblast", "psychic", "trick", "uturn", "vcreate"], + "abilities": ["Victory Star"], + "preferredTypes": ["Electric"] + } + ] + }, + "serperior": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aromatherapy", "dragonpulse", "gigadrain", "glare", "hiddenpowerfire", "leechseed", "substitute"], + "abilities": ["Overgrow"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "dragonpulse", "gigadrain", "hiddenpowerfire", "substitute"], + "abilities": ["Overgrow"] + }, + { + "role": "Wallbreaker", + "movepool": ["aquatail", "leafblade", "return", "swordsdance"], + "abilities": ["Overgrow"] + } + ] + }, + "emboar": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "flareblitz", "headsmash", "superpower", "wildcharge"], + "abilities": ["Blaze"] + }, + { + "role": "Wallbreaker", + "movepool": ["earthquake", "fireblast", "grassknot", "superpower", "wildcharge"], + "abilities": ["Blaze"] + } + ] + }, + "samurott": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquajet", "grassknot", "hydropump", "icebeam", "megahorn", "superpower"], + "abilities": ["Torrent"] + }, + { + "role": "Wallbreaker", + "movepool": ["aquajet", "megahorn", "superpower", "swordsdance", "waterfall"], + "abilities": ["Torrent"] + } + ] + }, + "watchog": { + "level": 95, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "hypnosis", "return", "superfang"], + "abilities": ["Analytic"] + }, + { + "role": "Setup Sweeper", + "movepool": ["crunch", "hypnosis", "lowkick", "return", "substitute", "swordsdance"], + "abilities": ["Analytic"], + "preferredTypes": ["Dark"] + } + ] + }, + "stoutland": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "return", "superpower", "thunderwave", "wildcharge"], + "abilities": ["Scrappy"], + "preferredTypes": ["Fighting"] + } + ] + }, + "liepard": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["darkpulse", "encore", "hiddenpowerfighting", "nastyplot", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "simisage": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "leafstorm", "rockslide", "superpower"], + "abilities": ["Overgrow"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "gigadrain", "hiddenpowerrock", "nastyplot", "substitute"], + "abilities": ["Overgrow"] + } + ] + }, + "simisear": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"], + "abilities": ["Blaze"] + } + ] + }, + "simipour": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hydropump", "icebeam", "nastyplot", "substitute"], + "abilities": ["Torrent"], + "preferredTypes": ["Ice"] + } + ] + }, + "musharna": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerfighting", "moonlight", "psychic", "signalbeam", "thunderwave", "toxic"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerfighting", "moonlight", "psyshock", "signalbeam"], + "abilities": ["Synchronize"] + } + ] + }, + "unfezant": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["hypnosis", "pluck", "return", "roost", "toxic", "uturn"], + "abilities": ["Super Luck"] + } + ] + }, + "zebstrika": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "overheat", "voltswitch", "wildcharge"], + "abilities": ["Sap Sipper"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "gigalith": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "superpower", "toxic"], + "abilities": ["Sturdy"], + "preferredTypes": ["Ground"] + } + ] + }, + "swoobat": { + "level": 86, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "heatwave", "roost", "storedpower"], + "abilities": ["Simple"] + }, + { + "role": "Setup Sweeper", + "movepool": ["airslash", "calmmind", "heatwave", "roost", "storedpower"], + "abilities": ["Simple"] + } + ] + }, + "excadrill": { + "level": 81, + "sets": [ + { + "role": "Spinner", + "movepool": ["earthquake", "ironhead", "rapidspin", "swordsdance"], + "abilities": ["Mold Breaker", "Sand Rush"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "ironhead", "rockslide", "swordsdance"], + "abilities": ["Mold Breaker", "Sand Rush"] + } + ] + }, + "audino": { + "level": 94, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["doubleedge", "healbell", "protect", "toxic", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "conkeldurr": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "drainpunch", "icepunch", "machpunch", "thunderpunch"], + "abilities": ["Iron Fist"] + } + ] + }, + "seismitoad": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hydropump", "raindance", "sludgewave"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "scald", "sludgebomb", "stealthrock", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "throh": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bulkup", "circlethrow", "payback", "rest", "sleeptalk"], + "abilities": ["Guts"] + } + ] + }, + "sawk": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "closecombat", "earthquake", "icepunch", "stoneedge"], + "abilities": ["Mold Breaker", "Sturdy"] + } + ] + }, + "leavanny": { + "level": 91, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["leafblade", "return", "swordsdance", "xscissor"], + "abilities": ["Chlorophyll", "Swarm"] + } + ] + }, + "scolipede": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "megahorn", "rockslide", "spikes", "swordsdance", "toxicspikes"], + "abilities": ["Swarm"], + "preferredTypes": ["Ground"] + } + ] + }, + "whimsicott": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["encore", "gigadrain", "stunspore", "taunt", "toxic", "uturn"], + "abilities": ["Prankster"] + }, + { + "role": "Staller", + "movepool": ["hurricane", "leechseed", "protect", "substitute"], + "abilities": ["Prankster"] + } + ] + }, + "lilligant": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "quiverdance", "sleeppowder"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"], + "abilities": ["Own Tempo"] + } + ] + }, + "basculin": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"], + "abilities": ["Adaptability"] + } + ] + }, + "krookodile": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crunch", "earthquake", "pursuit", "stealthrock", "stoneedge", "superpower"], + "abilities": ["Intimidate"] + } + ] + }, + "darmanitan": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"], + "abilities": ["Sheer Force"] + } + ] + }, + "maractus": { + "level": 98, + "sets": [ + { + "role": "Fast Support", + "movepool": ["gigadrain", "hiddenpowerfire", "spikes", "synthesis", "toxic"], + "abilities": ["Storm Drain", "Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "protect"], + "abilities": ["Storm Drain", "Water Absorb"] + } + ] + }, + "crustle": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "shellsmash", "stoneedge", "xscissor"], + "abilities": ["Sturdy"] + } + ] + }, + "scrafty": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "highjumpkick", "stoneedge", "zenheadbutt"], + "abilities": ["Intimidate", "Moxie"] + }, + { + "role": "Bulky Setup", + "movepool": ["bulkup", "crunch", "drainpunch", "rest"], + "abilities": ["Shed Skin"] + } + ] + }, + "sigilyph": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "calmmind", "heatwave", "psyshock", "roost"], + "abilities": ["Magic Guard"] + }, + { + "role": "Wallbreaker", + "movepool": ["airslash", "energyball", "heatwave", "icebeam", "psychic", "psyshock"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Staller", + "movepool": ["cosmicpower", "psychoshift", "roost", "storedpower"], + "abilities": ["Magic Guard"] + } + ] + }, + "cofagrigus": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "hiddenpowerfighting", "painsplit", "shadowball", "willowisp"], + "abilities": ["Mummy"] + }, + { + "role": "Bulky Setup", + "movepool": ["hiddenpowerfighting", "nastyplot", "shadowball", "trickroom"], + "abilities": ["Mummy"] + } + ] + }, + "carracosta": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aquajet", "earthquake", "icebeam", "shellsmash", "stoneedge", "waterfall"], + "abilities": ["Solid Rock", "Sturdy", "Swift Swim"] + } + ] + }, + "archeops": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["acrobatics", "earthquake", "roost", "stealthrock", "stoneedge", "uturn"], + "abilities": ["Defeatist"], + "preferredTypes": ["Ground"] + } + ] + }, + "garbodor": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "gunkshot", "haze", "painsplit", "spikes", "toxicspikes"], + "abilities": ["Aftermath"] + } + ] + }, + "zoroark": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "trick", "uturn"], + "abilities": ["Illusion"] + } + ] + }, + "cinccino": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletseed", "rockblast", "tailslap", "uturn"], + "abilities": ["Skill Link"] + } + ] + }, + "gothitelle": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "hiddenpowerfighting", "psychic", "signalbeam", "thunderbolt", "trick"], + "abilities": ["Shadow Tag"] + } + ] + }, + "reuniclus": { + "level": 83, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "focusblast", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Magic Guard"] + } + ] + }, + "swanna": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "icebeam", "roost", "scald", "toxic"], + "abilities": ["Hydration"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hurricane", "raindance", "rest", "surf"], + "abilities": ["Hydration"] + } + ] + }, + "vanilluxe": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["autotomize", "explosion", "flashcannon", "hiddenpowerground", "icebeam"], + "abilities": ["Weak Armor"], + "preferredTypes": ["Ground"] + } + ] + }, + "sawsbuck": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "hornleech", "naturepower", "return", "substitute", "swordsdance"], + "abilities": ["Sap Sipper"], + "preferredTypes": ["Normal"] + } + ] + }, + "emolga": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["acrobatics", "encore", "roost", "thunderbolt", "toxic", "uturn"], + "abilities": ["Motor Drive"] + } + ] + }, + "escavalier": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["ironhead", "megahorn", "pursuit", "return", "swordsdance"], + "abilities": ["Swarm"] + } + ] + }, + "amoonguss": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["clearsmog", "foulplay", "gigadrain", "hiddenpowerground", "sludgebomb", "spore", "stunspore", "toxic"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["gigadrain", "sludgebomb", "spore", "synthesis"], + "abilities": ["Regenerator"] + } + ] + }, + "jellicent": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "recover", "scald", "shadowball", "toxic", "willowisp"], + "abilities": ["Water Absorb"] + } + ] + }, + "alomomola": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["protect", "scald", "toxic", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "galvantula": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bugbuzz", "gigadrain", "hiddenpowerice", "thunder", "voltswitch"], + "abilities": ["Compound Eyes"], + "preferredTypes": ["Bug"] + } + ] + }, + "ferrothorn": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["gyroball", "leechseed", "powerwhip", "spikes", "stealthrock"], + "abilities": ["Iron Barbs"] + }, + { + "role": "Bulky Support", + "movepool": ["powerwhip", "spikes", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Iron Barbs"] + } + ] + }, + "klinklang": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"], + "abilities": ["Clear Body"] + } + ] + }, + "eelektross": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["flamethrower", "gigadrain", "hiddenpowerice", "superpower", "thunderbolt", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Setup", + "movepool": ["aquatail", "coil", "drainpunch", "firepunch", "wildcharge"], + "abilities": ["Levitate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "beheeyem": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "psychic", "recover", "signalbeam", "thunderbolt", "trick", "trickroom"], + "abilities": ["Analytic"] + } + ] + }, + "chandelure": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["energyball", "fireblast", "hiddenpowerfighting", "shadowball", "trick"], + "abilities": ["Flash Fire"], + "preferredTypes": ["Grass"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "shadowball", "substitute"], + "abilities": ["Flame Body", "Flash Fire"] + } + ] + }, + "haxorus": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "outrage", "superpower"], + "abilities": ["Mold Breaker"] + } + ] + }, + "beartic": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquajet", "iciclecrash", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Fighting"] + } + ] + }, + "cryogonal": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "hiddenpowerground", "icebeam", "rapidspin", "recover", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "accelgor": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bugbuzz", "encore", "focusblast", "hiddenpowerground", "hiddenpowerrock", "spikes", "uturn"], + "abilities": ["Hydration", "Sticky Hold"] + } + ] + }, + "stunfisk": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["discharge", "earthpower", "rest", "scald", "sleeptalk", "stealthrock", "toxic"], + "abilities": ["Static"] + } + ] + }, + "mienshao": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "highjumpkick", "stoneedge", "substitute", "swordsdance"], + "abilities": ["Reckless"], + "preferredTypes": ["Flying"] + }, + { + "role": "Fast Attacker", + "movepool": ["fakeout", "highjumpkick", "stoneedge", "uturn"], + "abilities": ["Regenerator"] + }, + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "highjumpkick", "stoneedge", "uturn"], + "abilities": ["Reckless"] + } + ] + }, + "druddigon": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "earthquake", "glare", "outrage", "stealthrock", "suckerpunch", "superpower"], + "abilities": ["Rough Skin"] + } + ] + }, + "golurk": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dynamicpunch", "earthquake", "icepunch", "rockpolish", "stealthrock", "stoneedge"], + "abilities": ["No Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "bisharp": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["ironhead", "nightslash", "pursuit", "suckerpunch"], + "abilities": ["Defiant"] + }, + { + "role": "Setup Sweeper", + "movepool": ["ironhead", "lowkick", "nightslash", "suckerpunch", "swordsdance"], + "abilities": ["Defiant"], + "preferredTypes": ["Fighting"] + } + ] + }, + "bouffalant": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headcharge", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Reckless", "Sap Sipper"] + } + ] + }, + "braviary": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "bulkup", "roost", "superpower"], + "abilities": ["Defiant"] + }, + { + "role": "Fast Attacker", + "movepool": ["bravebird", "return", "superpower", "uturn"], + "abilities": ["Defiant"] + } + ] + }, + "mandibuzz": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "foulplay", "roost", "taunt", "toxic", "whirlwind"], + "abilities": ["Overcoat"] + }, + { + "role": "Staller", + "movepool": ["foulplay", "roost", "taunt", "toxic", "whirlwind"], + "abilities": ["Overcoat"] + } + ] + }, + "heatmor": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["fireblast", "gigadrain", "suckerpunch", "superpower"], + "abilities": ["Flash Fire"] + } + ] + }, + "durant": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"], + "abilities": ["Hustle"], + "preferredTypes": ["Fighting"] + } + ] + }, + "hydreigon": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "dracometeor", "fireblast", "focusblast", "roost", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "volcarona": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerrock", "quiverdance", "roost"], + "abilities": ["Flame Body"] + } + ] + }, + "cobalion": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "ironhead", "stealthrock", "stoneedge", "taunt", "thunderwave", "toxic"], + "abilities": ["Justified"], + "preferredTypes": ["Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["closecombat", "ironhead", "stoneedge", "swordsdance"], + "abilities": ["Justified"] + } + ] + }, + "terrakion": { + "level": 76, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Ground"] + } + ] + }, + "virizion": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "leafblade", "stoneedge", "swordsdance"], + "abilities": ["Justified"] + } + ] + }, + "tornadus": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["acrobatics", "bulkup", "superpower", "taunt"], + "abilities": ["Defiant"] + }, + { + "role": "Fast Attacker", + "movepool": ["focusblast", "heatwave", "hurricane", "uturn"], + "abilities": ["Defiant"] + } + ] + }, + "tornadustherian": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "heatwave", "hurricane", "superpower", "uturn"], + "abilities": ["Regenerator"] + } + ] + }, + "thundurus": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Prankster"] + }, + { + "role": "Fast Support", + "movepool": ["hiddenpowerflying", "hiddenpowerice", "superpower", "taunt", "thunderbolt", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "thundurustherian": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "reshiram": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blueflare", "dracometeor", "flamecharge", "roost", "toxic"], + "abilities": ["Turboblaze"] + } + ] + }, + "zekrom": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["boltstrike", "dracometeor", "outrage", "roost", "voltswitch"], + "abilities": ["Teravolt"] + }, + { + "role": "Setup Sweeper", + "movepool": ["boltstrike", "honeclaws", "outrage", "roost", "substitute"], + "abilities": ["Teravolt"] + } + ] + }, + "landorus": { + "level": 76, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "focusblast", "psychic", "rockpolish", "rockslide", "sludgewave", "stealthrock"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "focusblast", "psychic", "rockpolish", "sludgewave"], + "abilities": ["Sheer Force"] + } + ] + }, + "landorustherian": { + "level": 76, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "stealthrock", "stoneedge", "toxic", "uturn"], + "abilities": ["Intimidate"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "rockpolish", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Intimidate"], + "preferredTypes": ["Rock"] + } + ] + }, + "kyurem": { + "level": 77, + "sets": [ + { + "role": "Staller", + "movepool": ["earthpower", "icebeam", "roost", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage", "roost", "substitute"], + "abilities": ["Pressure"] + } + ] + }, + "kyuremblack": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "fusionbolt", "icebeam", "outrage", "roost", "substitute"], + "abilities": ["Teravolt"] + } + ] + }, + "kyuremwhite": { + "level": 73, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "earthpower", "fusionflare", "icebeam", "roost"], + "abilities": ["Turboblaze"] + } + ] + }, + "keldeo": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerelectric", "hiddenpowerflying", "hiddenpowerice", "hydropump", "scald", "secretsword"], + "abilities": ["Justified"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "scald", "secretsword", "substitute"], + "abilities": ["Justified"] + }, + { + "role": "Fast Attacker", + "movepool": ["focusblast", "hydropump", "scald", "secretsword"], + "abilities": ["Justified"] + } + ] + }, + "meloetta": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "focusblast", "hypervoice", "psyshock", "uturn"], + "abilities": ["Serene Grace"] + }, + { + "role": "Wallbreaker", + "movepool": ["closecombat", "relicsong", "return", "shadowclaw"], + "abilities": ["Serene Grace"] + } + ] + }, + "genesect": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["blazekick", "ironhead", "shiftgear", "thunderbolt", "xscissor"], + "abilities": ["Download"] + }, + { + "role": "Wallbreaker", + "movepool": ["blazekick", "extremespeed", "ironhead", "uturn"], + "abilities": ["Download"] + }, + { + "role": "Fast Attacker", + "movepool": ["bugbuzz", "flamethrower", "flashcannon", "icebeam", "thunderbolt", "uturn"], + "abilities": ["Download"], + "preferredTypes": ["Bug"] + } + ] + } +} diff --git a/data/random-battles/gen5/teams.ts b/data/random-battles/gen5/teams.ts new file mode 100644 index 000000000000..0454eef66335 --- /dev/null +++ b/data/random-battles/gen5/teams.ts @@ -0,0 +1,986 @@ +import RandomGen6Teams from '../gen6/teams'; +import {PRNG} from '../../../sim'; +import {MoveCounter} from '../gen8/teams'; +import {toID} from '../../../sim/dex'; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'roost', 'slackoff', 'softboiled', 'synthesis', +]; +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'screech', 'swordsdance', +]; +// Some moves that only boost Speed: +const SPEED_SETUP = [ + 'agility', 'autotomize', 'flamecharge', 'rockpolish', +]; +// Conglomerate for ease of access +const SETUP = [ + 'acidarmor', 'agility', 'autotomize', 'bellydrum', 'bulkup', 'calmmind', 'coil', 'curse', 'dragondance', 'flamecharge', + 'growth', 'honeclaws', 'howl', 'irondefense', 'meditate', 'nastyplot', 'quiverdance', 'raindance', 'rockpolish', + 'shellsmash', 'shiftgear', 'sunnyday', 'swordsdance', 'tailglow', 'workup', +]; +// Moves that shouldn't be the only STAB moves: +const NO_STAB = [ + 'aquajet', 'bulletpunch', 'chatter', 'clearsmog', 'dragontail', 'eruption', 'explosion', 'fakeout', 'flamecharge', + 'futuresight', 'iceshard', 'icywind', 'incinerate', 'knockoff', 'machpunch', 'pluck', 'pursuit', 'quickattack', + 'rapidspin', 'reversal', 'selfdestruct', 'shadowsneak', 'skyattack', 'skydrop', 'snarl', 'suckerpunch', + 'uturn', 'vacuumwave', 'voltswitch', 'waterspout', +]; +// Hazard-setting moves +const HAZARDS = [ + 'spikes', 'stealthrock', 'toxicspikes', +]; +// Moves that switch the user out +const PIVOT_MOVES = [ + 'uturn', 'voltswitch', +]; + +// Moves that should be paired together when possible +const MOVE_PAIRS = [ + ['lightscreen', 'reflect'], + ['sleeptalk', 'rest'], + ['protect', 'wish'], + ['leechseed', 'substitute'], +]; + +/** Pokemon who always want priority STAB, and are fine with it as its only STAB move of that type */ +const PRIORITY_POKEMON = [ + 'bisharp', 'breloom', 'cacturne', 'dusknoir', 'honchkrow', 'scizor', 'shedinja', 'shiftry', +]; + +export class RandomGen5Teams extends RandomGen6Teams { + randomSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + + constructor(format: string | Format, prng: PRNG | PRNGSeed | null) { + super(format, prng); + this.noStab = NO_STAB; + this.priorityPokemon = PRIORITY_POKEMON; + + this.moveEnforcementCheckers = { + Bug: (movePool, moves, abilities, types, counter) => ( + !counter.get('Bug') && (movePool.includes('megahorn') || abilities.includes('Tinted Lens')) + ), + Dark: (movePool, moves, abilities, types, counter) => !counter.get('Dark'), + Dragon: (movePool, moves, abilities, types, counter) => !counter.get('Dragon'), + Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), + Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), + Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), + Flying: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Flying') && !['aerodactyl', 'mantine', 'murkrow'].includes(species.id) && + !movePool.includes('hiddenpowerflying') + ), + Ghost: (movePool, moves, abilities, types, counter) => !counter.get('Ghost'), + Grass: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Grass') && (species.baseStats.atk >= 100 || movePool.includes('leafstorm')) + ), + Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), + Ice: (movePool, moves, abilities, types, counter) => !counter.get('Ice'), + Poison: (movePool, moves, abilities, types, counter) => ( + !counter.get('Poison') && (types.has('Grass') || types.has('Ground')) + ), + Psychic: (movePool, moves, abilities, types, counter) => ( + !counter.get('Psychic') && (types.has('Fighting') || movePool.includes('calmmind')) + ), + Rock: (movePool, moves, abilities, types, counter, species) => (!counter.get('Rock') && species.baseStats.atk >= 80), + Steel: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Steel') && ['aggron', 'metagross'].includes(species.id) + ), + Water: (movePool, moves, abilities, types, counter) => !counter.get('Water'), + }; + // Nature Power is Earthquake this gen + this.cachedStatusMoves = this.dex.moves.all() + .filter(move => move.category === 'Status' && move.id !== 'naturepower') + .map(move => move.id); + } + + cullMovePool( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): void { + // Pokemon cannot have multiple Hidden Powers in any circumstance + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + if (hasHiddenPower) { + let movePoolHasHiddenPower = true; + while (movePoolHasHiddenPower) { + movePoolHasHiddenPower = false; + for (const moveid of movePool) { + if (moveid.startsWith('hiddenpower')) { + this.fastPop(movePool, movePool.indexOf(moveid)); + movePoolHasHiddenPower = true; + break; + } + } + } + } + + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there is not room for them both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Team-based move culls + if (teamDetails.screens && movePool.length >= this.maxMoveCount + 2) { + if (movePool.includes('reflect')) this.fastPop(movePool, movePool.indexOf('reflect')); + if (movePool.includes('lightscreen')) this.fastPop(movePool, movePool.indexOf('lightscreen')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stealthRock) { + if (movePool.includes('stealthrock')) this.fastPop(movePool, movePool.indexOf('stealthrock')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.toxicSpikes) { + if (movePool.includes('toxicspikes')) this.fastPop(movePool, movePool.indexOf('toxicspikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.spikes && teamDetails.spikes >= 2) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.statusCure) { + if (movePool.includes('aromatherapy')) this.fastPop(movePool, movePool.indexOf('aromatherapy')); + if (movePool.includes('healbell')) this.fastPop(movePool, movePool.indexOf('healbell')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + // Develop additional move lists + const badWithSetup = ['healbell', 'pursuit', 'toxic']; + const statusMoves = this.cachedStatusMoves; + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [statusMoves, ['healingwish', 'switcheroo', 'trick']], + [SETUP, PIVOT_MOVES], + [SETUP, HAZARDS], + [SETUP, badWithSetup], + [PHYSICAL_SETUP, PHYSICAL_SETUP], + [['fakeout', 'uturn'], ['switcheroo', 'trick']], + ['substitute', PIVOT_MOVES], + ['rest', 'substitute'], + + // These attacks are redundant with each other + ['psychic', 'psyshock'], + [['scald', 'surf'], 'hydropump'], + [['bodyslam', 'return'], ['bodyslam', 'doubleedge']], + [['gigadrain', 'leafstorm'], ['leafstorm', 'petaldance', 'powerwhip']], + [['drainpunch', 'focusblast'], ['closecombat', 'highjumpkick', 'superpower']], + ['payback', 'pursuit'], + + // Assorted hardcodes go here: + // Zebstrika + ['wildcharge', 'thunderbolt'], + // Manectric + ['flamethrower', 'overheat'], + // Meganium + ['leechseed', 'dragontail'], + // Volcarona and Heatran + [['fierydance', 'lavaplume'], 'fireblast'], + // Walrein + ['encore', 'roar'], + // Lunatone + ['moonlight', 'rockpolish'], + // Smeargle + ['memento', 'whirlwind'], + // Seviper + ['switcheroo', 'suckerpunch'], + // Jirachi + ['bodyslam', 'healingwish'], + // Shuckle + ['knockoff', 'protect'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + if (species.id === 'dugtrio') this.incompatibleMoves(moves, movePool, statusMoves, 'memento'); + + const statusInflictingMoves = ['stunspore', 'thunderwave', 'toxic', 'willowisp', 'yawn']; + if (!abilities.includes('Prankster') && role !== 'Staller') { + this.incompatibleMoves(moves, movePool, statusInflictingMoves, statusInflictingMoves); + } + + if (abilities.includes('Guts')) this.incompatibleMoves(moves, movePool, 'protect', 'swordsdance'); + + // Cull filler moves for otherwise fixed set Stealth Rock users + if (!teamDetails.stealthRock) { + if (species.id === 'registeel' && role === 'Staller') { + if (movePool.includes('thunderwave')) this.fastPop(movePool, movePool.indexOf('thunderwave')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (species.baseSpecies === 'Wormadam' && role === 'Staller') { + if (movePool.includes('suckerpunch')) this.fastPop(movePool, movePool.indexOf('suckerpunch')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + + // Generate random moveset for a given species, role, preferred type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + movePool: string[], + preferredType: string, + role: RandomTeamsTypes.Role, + ): Set { + const moves = new Set(); + let counter = this.newQueryMoves(moves, species, preferredType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, + preferredType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + // Still need to ensure that multiple Hidden Powers are not added (if maxMoveCount is increased) + while (movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + return moves; + } + + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, new Set(types), counter, species, teamDetails + ); + }; + + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Facade if Guts is a possible ability + if (movePool.includes('facade') && abilities.includes('Guts')) { + counter = this.addMove('facade', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce Seismic Toss and Spore + for (const moveid of ['seismictoss', 'spore']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Thunder Wave on Prankster users + if (movePool.includes('thunderwave') && abilities.includes('Prankster')) { + counter = this.addMove('thunderwave', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce hazard removal on Bulky Support and Spinner if the team doesn't already have it + if (['Bulky Support', 'Spinner'].includes(role) && !teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) { + counter = this.addMove('rapidspin', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB priority + if (['Bulky Attacker', 'Bulky Setup'].includes(role) || this.priorityPokemon.includes(species.id)) { + const priorityMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (types.includes(moveType) && move.priority > 0 && (move.basePower || move.basePowerCallback)) { + priorityMoves.push(moveid); + } + } + if (priorityMoves.length) { + const moveid = this.sample(priorityMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Preferred Type + if (!counter.get('preferred')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && preferredType === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } else { + // If they have no regular STAB move, enforce U-turn on Bug types. + if (movePool.includes('uturn') && types.includes('Bug')) { + counter = this.addMove('uturn', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup', 'Spinner', 'Staller'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Staller moves + if (role === 'Staller') { + const enforcedMoves = ['protect', 'toxic']; + for (const move of enforcedMoves) { + if (movePool.includes(move)) { + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce setup + if (role.includes('Setup')) { + // First, try to add a non-Speed setup move + const nonSpeedSetupMoves = movePool.filter(moveid => SETUP.includes(moveid) && !SPEED_SETUP.includes(moveid)); + if (nonSpeedSetupMoves.length) { + const moveid = this.sample(nonSpeedSetupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } else { + // No non-Speed setup moves, so add any (Speed) setup move + const setupMoves = movePool.filter(moveid => SETUP.includes(moveid)); + if (setupMoves.length) { + const moveid = this.sample(setupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size && !(moves.has('uturn') && types.includes('Bug'))) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce coverage move + if (['Fast Attacker', 'Setup Sweeper', 'Bulky Attacker', 'Wallbreaker'].includes(role)) { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + return moves; + } + + shouldCullAbility( + ability: string, + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role + ): boolean { + switch (ability) { + case 'Chlorophyll': case 'Solar Power': + return !teamDetails.sun; + case 'Hydration': case 'Swift Swim': + return !teamDetails.rain; + case 'Iron Fist': case 'Sheer Force': + return !counter.get(toID(ability)); + case 'Overgrow': + return !counter.get('Grass'); + case 'Rock Head': + return !counter.get('recoil'); + case 'Sand Force': case 'Sand Rush': + return !teamDetails.sand; + } + + return false; + } + + + getAbility( + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + if (abilities.length <= 1) return abilities[0]; + + // Hard-code abilities here + if (species.id === 'marowak' && counter.get('recoil')) return 'Rock Head'; + if (species.id === 'kingler' && counter.get('sheerforce')) return 'Sheer Force'; + if (species.id === 'golduck' && teamDetails.rain) return 'Swift Swim'; + + const abilityAllowed: string[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilities) { + if (!this.shouldCullAbility( + ability, types, moves, abilities, counter, movePool, teamDetails, species, preferredType, role + )) { + abilityAllowed.push(ability); + } + } + + // Pick a random allowed ability + if (abilityAllowed.length >= 1) return this.sample(abilityAllowed); + + // If all abilities are rejected, prioritize weather abilities over non-weather abilities + if (!abilityAllowed.length) { + const weatherAbilities = abilities.filter( + a => ['Chlorophyll', 'Hydration', 'Sand Force', 'Sand Rush', 'Solar Power', 'Swift Swim'].includes(a) + ); + if (weatherAbilities.length) return this.sample(weatherAbilities); + } + + // Pick a random ability + return this.sample(abilities); + } + + getPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string | undefined { + if (species.requiredItems) return this.sample(species.requiredItems); + if (species.id === 'farfetchd') return 'Stick'; + if (species.id === 'latias' || species.id === 'latios') return 'Soul Dew'; + if (species.id === 'marowak') return 'Thick Club'; + if (species.id === 'pikachu') return 'Light Ball'; + if (species.id === 'shedinja' || species.id === 'smeargle') return 'Focus Sash'; + if (species.id === 'unown') return 'Choice Specs'; + if (species.id === 'wobbuffet') return 'Custap Berry'; + if (ability === 'Harvest') return 'Sitrus Berry'; + if (species.id === 'ditto') return 'Choice Scarf'; + if (species.id === 'exploud' && role === 'Bulky Attacker') return 'Choice Band'; + if (ability === 'Poison Heal' || moves.has('facade')) return 'Toxic Orb'; + if (ability === 'Speed Boost' && species.id !== 'ninjask') return 'Life Orb'; + if (species.nfe) return 'Eviolite'; + if (['healingwish', 'memento', 'switcheroo', 'trick'].some(m => moves.has(m))) { + if ( + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && role !== 'Wallbreaker' && !counter.get('priority') + ) { + return 'Choice Scarf'; + } else { + return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; + } + } + if (moves.has('bellydrum')) return 'Sitrus Berry'; + if (moves.has('waterspout')) return 'Choice Scarf'; + if (moves.has('shellsmash')) return 'White Herb'; + if (moves.has('psychoshift')) return 'Flame Orb'; + if (ability === 'Magic Guard') return moves.has('counter') ? 'Focus Sash' : 'Life Orb'; + if (species.id === 'rampardos' && role === 'Fast Attacker') return 'Choice Scarf'; + if (ability === 'Sheer Force' && counter.get('sheerforce')) return 'Life Orb'; + if (moves.has('acrobatics')) return 'Flying Gem'; + if (species.id === 'hitmonlee' && ability === 'Unburden') return moves.has('fakeout') ? 'Normal Gem' : 'Fighting Gem'; + if (moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; + if (moves.has('rest') && !moves.has('sleeptalk') && !['Natural Cure', 'Shed Skin'].includes(ability)) { + return (moves.has('raindance') && ability === 'Hydration') ? 'Damp Rock' : 'Chesto Berry'; + } + if (role === 'Staller') return 'Leftovers'; + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; + + const scarfReqs = ( + role !== 'Wallbreaker' && + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && + !counter.get('priority') && !moves.has('pursuit') + ); + + if ( + moves.has('pursuit') && moves.has('suckerpunch') && counter.get('Dark') && + (!this.priorityPokemon.includes(species.id) || counter.get('Dark') >= 2) + ) return 'Black Glasses'; + if (counter.get('Special') === 4) { + return ( + scarfReqs && species.baseStats.spa >= 90 && this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Specs'; + } + if (counter.get('Special') === 3 && moves.has('uturn')) return 'Choice Specs'; + if (counter.get('Physical') === 4 && species.id !== 'jirachi' && species.id !== 'spinda' && + ['dragontail', 'fakeout', 'rapidspin'].every(m => !moves.has(m)) + ) { + return ( + scarfReqs && (species.baseStats.atk >= 100 || ability === 'Pure Power' || ability === 'Huge Power') && + this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Band'; + } + + if (ability === 'Sturdy' && moves.has('explosion')) return 'Custap Berry'; + if (types.includes('Normal') && moves.has('fakeout') && !!counter.get('Normal')) return 'Silk Scarf'; + if (species.id === 'palkia') return 'Lustrous Orb'; + if (moves.has('outrage') && counter.get('setup')) return 'Lum Berry'; + if ( + (ability === 'Rough Skin') || (species.id !== 'hooh' && role !== 'Wallbreaker' && + ability === 'Regenerator' && species.baseStats.hp + species.baseStats.def >= 180 && this.randomChance(1, 2)) + ) return 'Rocky Helmet'; + if (['protect', 'substitute'].some(m => moves.has(m))) return 'Leftovers'; + if ( + this.dex.getEffectiveness('Ground', species) >= 2 && + ability !== 'Levitate' + ) { + return 'Air Balloon'; + } + if ( + role === 'Fast Support' && isLead && defensiveStatTotal < 255 && !counter.get('recovery') && + (counter.get('hazards') || counter.get('setup')) && (!counter.get('recoil') || ability === 'Rock Head') + ) return 'Focus Sash'; + + // Default Items + if (role === 'Fast Support') { + return ( + counter.get('Physical') + counter.get('Special') >= 3 && + ['rapidspin', 'uturn', 'voltswitch'].every(m => !moves.has(m)) && + this.dex.getEffectiveness('Rock', species) < 2 + ) ? 'Life Orb' : 'Leftovers'; + } + // noStab moves that should reject Expert Belt + const noExpertBeltMoves = ( + this.noStab.filter(moveid => ['Dragon', 'Normal', 'Poison'].includes(this.dex.moves.get(moveid).type)) + ); + const expertBeltReqs = ( + !counter.get('Dragon') && !counter.get('Normal') && !counter.get('Poison') && + noExpertBeltMoves.every(m => !moves.has(m)) + ); + if ( + !counter.get('Status') && expertBeltReqs && + (moves.has('uturn') || moves.has('voltswitch') || role === 'Fast Attacker') + ) return 'Expert Belt'; + if ( + ['Fast Attacker', 'Setup Sweeper', 'Wallbreaker'].some(m => role === m) && + this.dex.getEffectiveness('Rock', species) < 2 && ability !== 'Sturdy' + ) return 'Life Orb'; + return 'Leftovers'; + } + + randomSet( + species: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false + ): RandomTeamsTypes.RandomSet { + species = this.dex.species.get(species); + const forme = this.getForme(species); + const sets = this.randomSets[species.id]["sets"]; + const possibleSets = []; + // Check if the Pokemon has a Spinner set + let canSpinner = false; + for (const set of sets) { + if (!teamDetails.rapidSpin && set.role === 'Spinner') canSpinner = true; + } + for (const set of sets) { + // Prevent Spinner if the team already has removal + if (teamDetails.rapidSpin && set.role === 'Spinner') continue; + // Enforce Spinner if the team does not have removal + if (canSpinner && set.role !== 'Spinner') continue; + possibleSets.push(set); + } + const set = this.sampleIfArray(possibleSets); + const role = set.role; + const movePool: string[] = Array.from(set.movepool); + const preferredTypes = set.preferredTypes; + const preferredType = this.sampleIfArray(preferredTypes) || ''; + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const abilities = set.abilities!; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, movePool, + preferredType, role); + const counter = this.newQueryMoves(moves, species, preferredType, abilities); + + // Get ability + ability = this.getAbility(new Set(types), moves, abilities, counter, movePool, teamDetails, species, + preferredType, role); + + // Get items + item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + if (item === undefined) { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + } + + // For Trick / Switcheroo + if (item === 'Leftovers' && types.includes('Poison')) { + item = 'Black Sludge'; + } + + const level = this.getLevel(species); + + // We use a special variable to track Hidden Power + // so that we can check for all Hidden Powers at once + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + + if (hasHiddenPower) { + let hpType; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hpType = move.substr(11); + } + if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); + const HPivs = this.dex.types.get(hpType).HPivs; + let iv: StatID; + for (iv in HPivs) { + ivs[iv] = HPivs[iv]!; + } + } + + // Prepare optimal HP + const srImmunity = ability === 'Magic Guard'; + const srWeakness = srImmunity ? 0 : this.dex.getEffectiveness('Rock', species); + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if (moves.has('substitute') && !['Black Sludge', 'Leftovers'].includes(item)) { + if (item === 'Sitrus Berry') { + // Two Substitutes should activate Sitrus Berry + if (hp % 4 === 0) break; + } else { + // Should be able to use Substitute four times from full HP without fainting + if (hp % 4 > 0) break; + } + } else if (moves.has('bellydrum') && item === 'Sitrus Berry') { + // Belly Drum should activate Sitrus Berry + if (hp % 2 === 0) break; + } else if (['highjumpkick', 'jumpkick'].some(m => moves.has(m))) { + // Crash damage move users want an odd HP to survive two misses + if (hp % 2 > 0) break; + } else { + // Maximize number of Stealth Rock switch-ins + if (srWeakness <= 0 || ability === 'Regenerator') break; + if (srWeakness === 1 && ['Black Sludge', 'Leftovers', 'Life Orb'].includes(item)) break; + if (item !== 'Sitrus Berry' && hp % (4 / srWeakness) > 0) break; + // Minimise number of Stealth Rock switch-ins to activate Sitrus Berry + if (item === 'Sitrus Berry' && hp % (4 / srWeakness) === 0) break; + } + evs.hp -= 4; + } + + // Minimize confusion damage, including if Foul Play is its only physical attack + if ( + (!counter.get('Physical') || (counter.get('Physical') <= 1 && (moves.has('foulplay') || moves.has('rapidspin')))) && + !moves.has('transform') + ) { + evs.atk = 0; + ivs.atk = hasHiddenPower ? (ivs.atk || 31) - 28 : 0; + } + + if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { + evs.spe = 0; + ivs.spe = hasHiddenPower ? (ivs.spe || 31) - 28 : 0; + } + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + + return { + name: species.baseSpecies, + species: forme, + gender: species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + role, + }; + } + + randomTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.seed; + const ruleTable = this.dex.formats.getRuleTable(this.format); + const pokemon: RandomTeamsTypes.RandomSet[] = []; + + // For Monotype + const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); + const typePool = this.dex.types.names(); + const type = this.forceMonotype || this.sample(typePool); + + const baseFormes: {[k: string]: number} = {}; + const typeCount: {[k: string]: number} = {}; + const typeWeaknesses: {[k: string]: number} = {}; + const typeDoubleWeaknesses: {[k: string]: number} = {}; + const teamDetails: RandomTeamsTypes.TeamDetails = {}; + let numMaxLevelPokemon = 0; + + const pokemonList = Object.keys(this.randomSets); + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, pokemonList); + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + const baseSpecies = this.sampleNoReplace(baseSpeciesPool); + const species = this.dex.species.get(this.sample(pokemonPool[baseSpecies])); + if (!species.exists) continue; + + // Limit to one of each species (Species Clause) + if (baseFormes[species.baseSpecies]) continue; + + // Illusion shouldn't be in the last slot + if (species.name === 'Zoroark' && pokemon.length >= (this.maxTeamSize - 1)) continue; + + // Prevent Shedinja from generating after Sandstorm/Hail setters + if (species.name === 'Shedinja' && (teamDetails.sand || teamDetails.hail)) continue; + + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + const types = species.types; + + if (!isMonotype && !this.forceMonotype) { + let skip = false; + + // Limit two of any type + for (const typeName of types) { + if (typeCount[typeName] >= 2 * limitFactor) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit three weak to any type, and one double weak to any type + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; + if (typeWeaknesses[typeName] >= 3 * limitFactor) { + skip = true; + break; + } + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0; + if (typeDoubleWeaknesses[typeName] >= 1 * limitFactor) { + skip = true; + break; + } + } + } + if (skip) continue; + + // Count Dry Skin as a Fire weakness + if (this.dex.getEffectiveness('Fire', species) === 0 && Object.values(species.abilities).includes('Dry Skin')) { + if (!typeWeaknesses['Fire']) typeWeaknesses['Fire'] = 0; + if (typeWeaknesses['Fire'] >= 3 * limitFactor) continue; + } + + // Limit one level 100 Pokemon + if (!this.adjustLevel && (this.getLevel(species) === 100) && numMaxLevelPokemon >= limitFactor) { + continue; + } + } + + const set = this.randomSet(species, teamDetails, pokemon.length === 0); + + // Okay, the set passes, add it to our team + pokemon.push(set); + + // Don't bother tracking details for the last Pokemon + if (pokemon.length === this.maxTeamSize) break; + + // Now that our Pokemon has passed all checks, we can increment our counters + baseFormes[species.baseSpecies] = 1; + + // Increment type counters + for (const typeName of types) { + if (typeName in typeCount) { + typeCount[typeName]++; + } else { + typeCount[typeName] = 1; + } + } + + // Increment weakness counter + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + typeWeaknesses[typeName]++; + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + typeDoubleWeaknesses[typeName]++; + } + } + // Count Dry Skin as a Fire weakness + if (set.ability === 'Dry Skin' && this.dex.getEffectiveness('Fire', species) === 0) typeWeaknesses['Fire']++; + + // Increment level 100 counter + if (set.level === 100) numMaxLevelPokemon++; + + // Team details + if (set.ability === 'Snow Warning' || set.moves.includes('hail')) teamDetails.hail = 1; + if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; + if (set.ability === 'Sand Stream') teamDetails.sand = 1; + if (set.ability === 'Drought' || set.moves.includes('sunnyday')) teamDetails.sun = 1; + if (set.moves.includes('aromatherapy') || set.moves.includes('healbell')) teamDetails.statusCure = 1; + if (set.moves.includes('spikes')) teamDetails.spikes = (teamDetails.spikes || 0) + 1; + if (set.moves.includes('stealthrock')) teamDetails.stealthRock = 1; + if (set.moves.includes('toxicspikes')) teamDetails.toxicSpikes = 1; + if (set.moves.includes('rapidspin')) teamDetails.rapidSpin = 1; + if (set.moves.includes('reflect') && set.moves.includes('lightscreen')) teamDetails.screens = 1; + } + if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { + throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); + } + + return pokemon; + } +} + +export default RandomGen5Teams; diff --git a/data/mods/gen6/factory-sets.json b/data/random-battles/gen6/factory-sets.json similarity index 99% rename from data/mods/gen6/factory-sets.json rename to data/random-battles/gen6/factory-sets.json index ad8e741a1f5e..12918022ce0f 100644 --- a/data/mods/gen6/factory-sets.json +++ b/data/random-battles/gen6/factory-sets.json @@ -9487,7 +9487,7 @@ "item": "Leftovers", "ability": "Sturdy", "evs": {"hp": 252, "atk": 0, "def": 4, "spa": 0, "spd": 252, "spe": 0}, - "nature": "Modest", + "nature": "Calm", "moves": [["Stealth Rock"], ["Flash Cannon"], ["Volt Switch"], ["Earth Power", "Toxic", "Thunder Wave"]] } ] @@ -10316,4 +10316,4 @@ ] } } -} \ No newline at end of file +} diff --git a/data/random-battles/gen6/sets.json b/data/random-battles/gen6/sets.json new file mode 100644 index 000000000000..b44fb4ce6d48 --- /dev/null +++ b/data/random-battles/gen6/sets.json @@ -0,0 +1,6079 @@ +{ + "venusaur": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"], + "abilities": ["Chlorophyll", "Overgrow"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "energyball", "knockoff", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll", "Overgrow"] + } + ] + }, + "venusaurmega": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "gigadrain", "knockoff", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll"] + } + ] + }, + "charizard": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "earthquake", "fireblast", "roost", "willowisp"], + "abilities": ["Blaze", "Solar Power"] + } + ] + }, + "charizardmegax": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragonclaw", "dragondance", "earthquake", "flareblitz", "roost"], + "abilities": ["Blaze"] + } + ] + }, + "charizardmegay": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "fireblast", "roost", "solarbeam"], + "abilities": ["Blaze"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dragonpulse", "fireblast", "roost", "solarbeam"], + "abilities": ["Blaze"] + } + ] + }, + "blastoise": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "rapidspin", "roar", "scald", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["haze", "icebeam", "protect", "rapidspin", "scald", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "blastoisemega": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aurasphere", "darkpulse", "icebeam", "rapidspin", "scald"], + "abilities": ["Rain Dish"] + } + ] + }, + "butterfree": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "psychic", "quiverdance", "sleeppowder"], + "abilities": ["Tinted Lens"] + } + ] + }, + "beedrill": { + "level": 94, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "knockoff", "poisonjab", "toxicspikes", "uturn"], + "abilities": ["Swarm"] + } + ] + }, + "beedrillmega": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["drillrun", "knockoff", "poisonjab", "protect", "uturn"], + "abilities": ["Swarm"] + } + ] + }, + "pidgeot": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "heatwave", "return", "roost", "uturn"], + "abilities": ["Big Pecks"] + } + ] + }, + "pidgeotmega": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "heatwave", "hurricane", "roost", "uturn", "workup"], + "abilities": ["Big Pecks"] + } + ] + }, + "raticate": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "flamewheel", "protect", "suckerpunch", "swordsdance", "uturn"], + "abilities": ["Guts"], + "preferredTypes": ["Dark"] + } + ] + }, + "fearow": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "drillpeck", "drillrun", "return", "uturn"], + "abilities": ["Sniper"] + } + ] + }, + "arbok": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aquatail", "coil", "earthquake", "gunkshot", "suckerpunch"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["coil", "earthquake", "gunkshot", "rest"], + "abilities": ["Shed Skin"] + } + ] + }, + "pikachu": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "grassknot", "hiddenpowerice", "knockoff", "surf", "voltswitch", "volttackle"], + "abilities": ["Lightning Rod"] + } + ] + }, + "raichu": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["encore", "hiddenpowerice", "knockoff", "nastyplot", "nuzzle", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["focusblast", "grassknot", "nastyplot", "surf", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "sandslash": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Sand Rush"] + } + ] + }, + "nidoqueen": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "nidoking": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "clefable": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "knockoff", "moonblast", "softboiled", "stealthrock", "thunderwave"], + "abilities": ["Magic Guard", "Unaware"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "moonblast", "softboiled"], + "abilities": ["Magic Guard", "Unaware"] + } + ] + }, + "ninetales": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["fireblast", "hiddenpowerrock", "nastyplot", "solarbeam"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["fireblast", "nastyplot", "solarbeam", "substitute", "willowisp"], + "abilities": ["Drought"], + "preferredTypes": ["Grass"] + } + ] + }, + "wigglytuff": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dazzlinggleam", "fireblast", "healbell", "knockoff", "protect", "stealthrock", "thunderwave", "wish"], + "abilities": ["Competitive"] + } + ] + }, + "vileplume": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "gigadrain", "hiddenpowerground", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Effect Spore"] + } + ] + }, + "parasect": { + "level": 100, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aromatherapy", "knockoff", "seedbomb", "spore", "stunspore", "xscissor"], + "abilities": ["Dry Skin"], + "preferredTypes": ["Bug"] + } + ] + }, + "venomoth": { + "level": 84, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbuzz", "quiverdance", "sleeppowder", "sludgebomb"], + "abilities": ["Tinted Lens"] + } + ] + }, + "dugtrio": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "memento", "stealthrock", "stoneedge", "suckerpunch"], + "abilities": ["Arena Trap"] + } + ] + }, + "persian": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "knockoff", "return", "seedbomb", "uturn"], + "abilities": ["Limber"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "fakeout", "knockoff", "return", "uturn"], + "abilities": ["Technician"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerfighting", "hypervoice", "nastyplot", "shadowball"], + "abilities": ["Technician"] + } + ] + }, + "golduck": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "encore", "focusblast", "hydropump", "icebeam", "scald"], + "abilities": ["Cloud Nine", "Swift Swim"], + "preferredTypes": ["Ice"] + } + ] + }, + "primeape": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "gunkshot", "honeclaws", "stoneedge", "uturn"], + "abilities": ["Defiant"] + } + ] + }, + "arcanine": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "extremespeed", "flareblitz", "morningsun", "roar", "toxic", "wildcharge", "willowisp"], + "abilities": ["Intimidate"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "extremespeed", "flareblitz", "morningsun", "wildcharge"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "poliwrath": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "icepunch", "raindance", "waterfall"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Attacker", + "movepool": ["circlethrow", "rest", "scald", "sleeptalk"], + "abilities": ["Water Absorb"] + } + ] + }, + "alakazam": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["counter", "focusblast", "psychic", "psyshock", "shadowball"], + "abilities": ["Magic Guard"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball", "substitute"], + "abilities": ["Magic Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "alakazammega": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball", "substitute"], + "abilities": ["Magic Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "machamp": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "bulletpunch", "dynamicpunch", "knockoff", "stoneedge"], + "abilities": ["No Guard"], + "preferredTypes": ["Dark"] + }, + { + "role": "AV Pivot", + "movepool": ["bulletpunch", "dynamicpunch", "knockoff", "stoneedge"], + "abilities": ["No Guard"] + } + ] + }, + "victreebel": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerground", "knockoff", "powerwhip", "sleeppowder", "sludgebomb", "suckerpunch"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["powerwhip", "sludgebomb", "sunnyday", "weatherball"], + "abilities": ["Chlorophyll"] + } + ] + }, + "tentacruel": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "knockoff", "rapidspin", "scald", "sludgebomb", "toxicspikes"], + "abilities": ["Clear Body", "Liquid Ooze"] + } + ] + }, + "golem": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "explosion", "rockpolish", "stoneedge", "suckerpunch"], + "abilities": ["Sturdy"] + } + ] + }, + "rapidash": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drillrun", "flareblitz", "morningsun", "wildcharge", "willowisp"], + "abilities": ["Flame Body", "Flash Fire"] + }, + { + "role": "Wallbreaker", + "movepool": ["drillrun", "flareblitz", "megahorn", "morningsun", "wildcharge"], + "abilities": ["Flash Fire"] + } + ] + }, + "slowbro": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], + "abilities": ["Regenerator"] + }, + { + "role": "AV Pivot", + "movepool": ["fireblast", "futuresight", "icebeam", "psyshock", "scald"], + "abilities": ["Regenerator"] + } + ] + }, + "slowbromega": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "fireblast", "psyshock", "scald", "slackoff"], + "abilities": ["Regenerator"] + } + ] + }, + "farfetchd": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bravebird", "knockoff", "leafblade", "return", "swordsdance"], + "abilities": ["Defiant"] + } + ] + }, + "dodrio": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bravebird", "doubleedge", "knockoff", "quickattack", "return"], + "abilities": ["Early Bird"] + }, + { + "role": "Fast Attacker", + "movepool": ["bravebird", "knockoff", "return", "roost"], + "abilities": ["Early Bird"] + } + ] + }, + "dewgong": { + "level": 93, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Support", + "movepool": ["encore", "icebeam", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "muk": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["brickbreak", "curse", "gunkshot", "haze", "icepunch", "poisonjab", "shadowsneak"], + "abilities": ["Poison Touch"], + "preferredTypes": ["Fighting"] + } + ] + }, + "cloyster": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hydropump", "iciclespear", "rockblast", "shellsmash"], + "abilities": ["Skill Link"] + } + ] + }, + "gengar": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "painsplit", "shadowball", "sludgewave", "substitute", "trick", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "gengarmega": { + "level": 77, + "sets": [ + { + "role": "Fast Support", + "movepool": ["disable", "perishsong", "protect", "shadowball", "substitute"], + "abilities": ["Levitate"] + }, + { + "role": "Fast Attacker", + "movepool": ["destinybond", "disable", "focusblast", "shadowball", "sludgewave", "taunt"], + "abilities": ["Levitate"] + } + ] + }, + "hypno": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["focusblast", "foulplay", "protect", "psychic", "thunderwave", "toxic", "wish"], + "abilities": ["Insomnia"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Insomnia"] + } + ] + }, + "kingler": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "crabhammer", "knockoff", "rockslide", "superpower", "swordsdance", "xscissor"], + "abilities": ["Hyper Cutter", "Sheer Force"] + } + ] + }, + "electrode": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["foulplay", "hiddenpowerice", "signalbeam", "taunt", "thunderbolt", "voltswitch"], + "abilities": ["Aftermath", "Static"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Support", + "movepool": ["hiddenpowerice", "thunderbolt", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Aftermath", "Static"] + } + ] + }, + "exeggutor": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gigadrain", "hiddenpowerfire", "leechseed", "psychic", "sleeppowder", "substitute"], + "abilities": ["Harvest"], + "preferredTypes": ["Psychic"] + } + ] + }, + "marowak": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Battle Armor", "Rock Head"], + "preferredTypes": ["Rock"] + } + ] + }, + "hitmonlee": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["highjumpkick", "knockoff", "machpunch", "poisonjab", "rapidspin", "stoneedge"], + "abilities": ["Reckless"], + "preferredTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "closecombat", "knockoff", "poisonjab", "stoneedge"], + "abilities": ["Unburden"], + "preferredTypes": ["Dark"] + } + ] + }, + "hitmonchan": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge"], + "abilities": ["Iron Fist"] + } + ] + }, + "weezing": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "painsplit", "sludgebomb", "toxicspikes", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rhydon": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "megahorn", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Lightning Rod"] + } + ] + }, + "chansey": { + "level": 86, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "kangaskhan": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["doubleedge", "drainpunch", "earthquake", "fakeout", "return", "suckerpunch"], + "abilities": ["Scrappy"] + }, + { + "role": "AV Pivot", + "movepool": ["drainpunch", "earthquake", "fakeout", "return", "suckerpunch"], + "abilities": ["Scrappy"] + } + ] + }, + "kangaskhanmega": { + "level": 71, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bodyslam", "crunch", "fakeout", "seismictoss", "suckerpunch"], + "abilities": ["Scrappy"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bodyslam", "crunch", "earthquake", "poweruppunch", "return", "suckerpunch"], + "abilities": ["Scrappy"], + "preferredTypes": ["Ground"] + } + ] + }, + "seaking": { + "level": 92, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["drillrun", "icebeam", "knockoff", "megahorn", "waterfall"], + "abilities": ["Lightning Rod"], + "preferredTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["drillrun", "icebeam", "knockoff", "megahorn", "raindance", "waterfall"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Dark"] + } + ] + }, + "starmie": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hydropump", "icebeam", "psyshock", "recover", "thunderbolt"], + "abilities": ["Analytic"] + }, + { + "role": "Bulky Support", + "movepool": ["psyshock", "rapidspin", "recover", "scald", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "mrmime": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dazzlinggleam", "encore", "focusblast", "healingwish", "nastyplot", "psychic", "psyshock", "shadowball"], + "abilities": ["Filter"], + "preferredTypes": ["Psychic"] + } + ] + }, + "scyther": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "brickbreak", "knockoff", "pursuit", "uturn"], + "abilities": ["Technician"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "brickbreak", "bugbite", "knockoff", "roost", "swordsdance"], + "abilities": ["Technician"] + } + ] + }, + "jynx": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "icebeam", "lovelykiss", "psychic", "psyshock", "trick"], + "abilities": ["Dry Skin"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psyshock"], + "abilities": ["Dry Skin"] + } + ] + }, + "pinsir": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Moxie"], + "preferredTypes": ["Ground"] + } + ] + }, + "pinsirmega": { + "level": 74, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["closecombat", "earthquake", "quickattack", "return", "swordsdance"], + "abilities": ["Hyper Cutter"] + } + ] + }, + "tauros": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bodyslam", "earthquake", "fireblast", "rockslide", "zenheadbutt"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "stoneedge", "zenheadbutt"], + "abilities": ["Intimidate"] + } + ] + }, + "gyarados": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "substitute", "waterfall"], + "abilities": ["Intimidate", "Moxie"] + } + ] + }, + "gyaradosmega": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "earthquake", "substitute", "waterfall"], + "abilities": ["Intimidate"] + } + ] + }, + "lapras": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["freezedry", "healbell", "hydropump", "icebeam", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["freezedry", "hydropump", "protect", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "ditto": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["transform"], + "abilities": ["Imposter"] + } + ] + }, + "vaporeon": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "protect", "scald", "wish"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["protect", "scald", "toxic", "wish"], + "abilities": ["Water Absorb"] + } + ] + }, + "jolteon": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "shadowball", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerice", "signalbeam", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "flareon": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["facade", "flamecharge", "flareblitz", "quickattack", "superpower"], + "abilities": ["Guts"] + } + ] + }, + "omastar": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"], + "abilities": ["Shell Armor", "Swift Swim"] + } + ] + }, + "kabutops": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["aquajet", "knockoff", "rapidspin", "stoneedge", "swordsdance", "waterfall"], + "abilities": ["Battle Armor", "Swift Swim"] + } + ] + }, + "aerodactyl": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "roost", "stealthrock", "stoneedge", "taunt", "toxic"], + "abilities": ["Unnerve"] + }, + { + "role": "Fast Support", + "movepool": ["aerialace", "aquatail", "defog", "earthquake", "pursuit", "roost", "stealthrock", "stoneedge"], + "abilities": ["Unnerve"], + "preferredTypes": ["Ground"] + } + ] + }, + "aerodactylmega": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "aquatail", "earthquake", "honeclaws", "roost", "stoneedge"], + "abilities": ["Unnerve"], + "preferredTypes": ["Ground"] + } + ] + }, + "snorlax": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "crunch", "curse", "earthquake", "rest", "sleeptalk"], + "abilities": ["Thick Fat"] + } + ] + }, + "articuno": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["freezedry", "roost", "substitute", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Support", + "movepool": ["freezedry", "hurricane", "roost", "substitute", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "zapdos": { + "level": 78, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "discharge", "heatwave", "hiddenpowerice", "roost", "toxic", "uturn"], + "abilities": ["Static"] + } + ] + }, + "moltres": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "fireblast", "hurricane", "roost", "toxic", "uturn", "willowisp"], + "abilities": ["Flame Body"] + } + ] + }, + "dragonite": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "ironhead", "outrage", "roost"], + "abilities": ["Multiscale"], + "preferredTypes": ["Ground"] + } + ] + }, + "mewtwo": { + "level": 71, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"], + "abilities": ["Unnerve"] + } + ] + }, + "mewtwomegax": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "drainpunch", "stoneedge", "taunt", "zenheadbutt"], + "abilities": ["Unnerve"] + } + ] + }, + "mewtwomegay": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"], + "abilities": ["Unnerve"] + } + ] + }, + "mew": { + "level": 80, + "sets": [ + { + "role": "Staller", + "movepool": ["defog", "knockoff", "psychic", "roost", "stealthrock", "taunt", "uturn", "willowisp"], + "abilities": ["Synchronize"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "earthpower", "fireblast", "nastyplot", "psychic", "psyshock", "roost"], + "abilities": ["Synchronize"] + }, + { + "role": "Fast Attacker", + "movepool": ["drainpunch", "knockoff", "swordsdance", "zenheadbutt"], + "abilities": ["Synchronize"] + } + ] + }, + "meganium": { + "level": 92, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "dragontail", "earthquake", "energyball", "leechseed", "synthesis", "toxic"], + "abilities": ["Overgrow"] + } + ] + }, + "typhlosion": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"], + "abilities": ["Flash Fire"] + } + ] + }, + "feraligatr": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "earthquake", "icepunch", "waterfall"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "furret": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "doubleedge", "firepunch", "knockoff", "trick", "uturn"], + "abilities": ["Frisk"], + "preferredTypes": ["Dark"] + } + ] + }, + "noctowl": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["airslash", "defog", "hypervoice", "roost", "toxic"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Normal"] + } + ] + }, + "ledian": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["encore", "focusblast", "knockoff", "roost", "toxic"], + "abilities": ["Early Bird"], + "preferredTypes": ["Dark"] + } + ] + }, + "ariados": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["megahorn", "poisonjab", "stickyweb", "suckerpunch", "toxicspikes"], + "abilities": ["Insomnia", "Swarm"] + } + ] + }, + "crobat": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "roost", "superfang", "taunt", "toxic", "uturn"], + "abilities": ["Infiltrator"] + } + ] + }, + "lanturn": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["healbell", "icebeam", "scald", "thunderbolt", "toxic", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "xatu": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "heatwave", "psychic", "roost"], + "abilities": ["Magic Bounce"] + }, + { + "role": "Bulky Support", + "movepool": ["heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"], + "abilities": ["Magic Bounce"] + } + ] + }, + "ampharos": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["focusblast", "healbell", "hiddenpowerice", "thunderbolt", "toxic", "voltswitch"], + "abilities": ["Static"] + } + ] + }, + "ampharosmega": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["agility", "dragonpulse", "focusblast", "thunderbolt", "voltswitch"], + "abilities": ["Static"] + }, + { + "role": "Bulky Support", + "movepool": ["discharge", "dragonpulse", "focusblast", "healbell", "rest", "sleeptalk", "voltswitch"], + "abilities": ["Static"] + } + ] + }, + "bellossom": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "moonblast", "sleeppowder", "synthesis", "toxic"], + "abilities": ["Chlorophyll"] + } + ] + }, + "azumarill": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "bellydrum", "knockoff", "playrough", "superpower", "waterfall"], + "abilities": ["Huge Power"] + } + ] + }, + "sudowoodo": { + "level": 94, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "stealthrock", "stoneedge", "suckerpunch", "toxic", "woodhammer"], + "abilities": ["Rock Head"], + "preferredTypes": ["Grass"] + } + ] + }, + "politoed": { + "level": 86, + "sets": [ + { + "role": "Staller", + "movepool": ["encore", "icebeam", "protect", "scald", "toxic"], + "abilities": ["Drizzle"] + }, + { + "role": "Bulky Support", + "movepool": ["encore", "icebeam", "rest", "scald", "toxic"], + "abilities": ["Drizzle"] + } + ] + }, + "jumpluff": { + "level": 89, + "sets": [ + { + "role": "Staller", + "movepool": ["acrobatics", "leechseed", "protect", "substitute"], + "abilities": ["Infiltrator"] + }, + { + "role": "Bulky Attacker", + "movepool": ["acrobatics", "encore", "sleeppowder", "toxic", "uturn"], + "abilities": ["Infiltrator"] + } + ] + }, + "sunflora": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "hiddenpowerfire", "hiddenpowerice", "hiddenpowerrock", "leafstorm", "sludgebomb"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthpower", "hiddenpowerfire", "solarbeam", "sunnyday"], + "abilities": ["Chlorophyll"] + } + ] + }, + "quagsire": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Unaware"] + } + ] + }, + "espeon": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "dazzlinggleam", "morningsun", "psychic", "psyshock", "shadowball", "trick"], + "abilities": ["Magic Bounce"], + "preferredTypes": ["Fairy"] + } + ] + }, + "umbreon": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["foulplay", "protect", "toxic", "wish"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Support", + "movepool": ["foulplay", "healbell", "moonlight", "toxic"], + "abilities": ["Synchronize"] + } + ] + }, + "murkrow": { + "level": 90, + "sets": [ + { + "role": "Staller", + "movepool": ["bravebird", "defog", "foulplay", "haze", "roost", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "slowking": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "nastyplot", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], + "abilities": ["Regenerator"] + }, + { + "role": "AV Pivot", + "movepool": ["dragontail", "fireblast", "futuresight", "icebeam", "psyshock", "scald"], + "abilities": ["Regenerator"] + } + ] + }, + "unown": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerpsychic"], + "abilities": ["Levitate"] + } + ] + }, + "wobbuffet": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["counter", "destinybond", "encore", "mirrorcoat"], + "abilities": ["Shadow Tag"] + } + ] + }, + "girafarig": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dazzlinggleam", "hypervoice", "nastyplot", "psychic", "psyshock", "substitute", "thunderbolt"], + "abilities": ["Sap Sipper"], + "preferredTypes": ["Psychic"] + } + ] + }, + "forretress": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], + "abilities": ["Sturdy"] + } + ] + }, + "dunsparce": { + "level": 92, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "glare", "headbutt", "roost"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "coil", "earthquake", "roost"], + "abilities": ["Serene Grace"] + } + ] + }, + "gligar": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["defog", "earthquake", "knockoff", "roost", "stealthrock", "toxic", "uturn"], + "abilities": ["Immunity"] + } + ] + }, + "steelix": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "ironhead", "roar", "rockslide", "stealthrock", "toxic"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Steel"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "heavyslam", "protect", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "heavyslam", "roar", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "steelixmega": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "earthquake", "heavyslam", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "granbull": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "healbell", "playrough", "thunderwave", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "qwilfish": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"], + "abilities": ["Intimidate"] + } + ] + }, + "scizor": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbite", "bulletpunch", "knockoff", "roost", "superpower", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "defog", "knockoff", "roost", "superpower", "uturn"], + "abilities": ["Technician"] + }, + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "knockoff", "pursuit", "superpower", "uturn"], + "abilities": ["Technician"] + } + ] + }, + "scizormega": { + "level": 75, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbite", "bulletpunch", "knockoff", "roost", "superpower", "swordsdance"], + "abilities": ["Light Metal"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "defog", "knockoff", "roost", "superpower", "uturn"], + "abilities": ["Light Metal"] + } + ] + }, + "shuckle": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "knockoff", "stealthrock", "stickyweb", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "heracross": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "facade", "knockoff", "megahorn"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "knockoff", "megahorn", "stoneedge"], + "abilities": ["Moxie"] + } + ] + }, + "heracrossmega": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "earthquake", "knockoff", "pinmissile", "rockblast", "substitute", "swordsdance"], + "abilities": ["Moxie"], + "preferredTypes": ["Rock"] + } + ] + }, + "ursaring": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "protect"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "swordsdance"], + "abilities": ["Quick Feet"] + } + ] + }, + "magcargo": { + "level": 97, + "sets": [ + { + "role": "Staller", + "movepool": ["ancientpower", "lavaplume", "recover", "stealthrock", "toxic"], + "abilities": ["Flame Body"] + } + ] + }, + "corsola": { + "level": 97, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["powergem", "recover", "scald", "stealthrock", "toxic"], + "abilities": ["Regenerator"] + } + ] + }, + "octillery": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["energyball", "fireblast", "gunkshot", "hydropump", "icebeam", "scald"], + "abilities": ["Sniper"] + }, + { + "role": "Bulky Attacker", + "movepool": ["energyball", "fireblast", "gunkshot", "icebeam", "scald", "thunderwave"], + "abilities": ["Sniper"] + } + ] + }, + "delibird": { + "level": 100, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "freezedry", "rapidspin", "spikes"], + "abilities": ["Insomnia", "Vital Spirit"] + } + ] + }, + "mantine": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["airslash", "defog", "haze", "rest", "scald", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["rest", "scald", "sleeptalk", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "skarmory": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"], + "abilities": ["Sturdy"] + }, + { + "role": "Staller", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "houndoom": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "fireblast", "nastyplot", "sludgebomb", "suckerpunch"], + "abilities": ["Flash Fire"] + } + ] + }, + "houndoommega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["darkpulse", "fireblast", "nastyplot", "sludgebomb", "taunt"], + "abilities": ["Flash Fire"] + } + ] + }, + "kingdra": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dracometeor", "hydropump", "icebeam", "raindance", "waterfall"], + "abilities": ["Swift Swim"] + }, + { + "role": "Fast Attacker", + "movepool": ["dragondance", "ironhead", "outrage", "waterfall"], + "abilities": ["Sniper", "Swift Swim"] + } + ] + }, + "donphan": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "porygon2": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["discharge", "icebeam", "recover", "toxic", "triattack"], + "abilities": ["Download", "Trace"] + } + ] + }, + "stantler": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "jumpkick", "megahorn", "suckerpunch", "thunderwave"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "smeargle": { + "level": 89, + "sets": [ + { + "role": "Fast Support", + "movepool": ["nuzzle", "spikes", "spore", "stealthrock", "stickyweb", "whirlwind"], + "abilities": ["Own Tempo"] + } + ] + }, + "hitmontop": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["closecombat", "earthquake", "rapidspin", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "miltank": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], + "abilities": ["Sap Sipper", "Thick Fat"] + } + ] + }, + "blissey": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "raikou": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "hiddenpowerice", "thunderbolt", "voltswitch"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Pressure"], + "preferredTypes": ["Ice"] + } + ] + }, + "entei": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bulldoze", "extremespeed", "flareblitz", "sacredfire"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "flareblitz", "sacredfire", "stoneedge"], + "abilities": ["Pressure"] + } + ] + }, + "suicune": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "rest", "scald", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "rest", "scald", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Staller", + "movepool": ["calmmind", "protect", "scald", "substitute"], + "abilities": ["Pressure"] + } + ] + }, + "tyranitar": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "stealthrock", "stoneedge"], + "abilities": ["Sand Stream"] + }, + { + "role": "Bulky Setup", + "movepool": ["crunch", "dragondance", "earthquake", "firepunch", "icepunch", "stoneedge"], + "abilities": ["Sand Stream"] + } + ] + }, + "tyranitarmega": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "earthquake", "firepunch", "icepunch", "stoneedge"], + "abilities": ["Sand Stream"] + } + ] + }, + "lugia": { + "level": 72, + "sets": [ + { + "role": "Staller", + "movepool": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"], + "abilities": ["Multiscale"] + } + ] + }, + "hooh": { + "level": 70, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "earthquake", "roost", "sacredfire", "substitute", "toxic"], + "abilities": ["Regenerator"] + } + ] + }, + "celebi": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthpower", "gigadrain", "leafstorm", "nastyplot", "psychic", "uturn"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Support", + "movepool": ["leafstorm", "psychic", "recover", "stealthrock", "thunderwave", "uturn"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Setup", + "movepool": ["leafstorm", "nastyplot", "psychic", "recover"], + "abilities": ["Natural Cure"] + } + ] + }, + "sceptile": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "rockslide"], + "abilities": ["Overgrow"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "substitute"], + "abilities": ["Overgrow"] + } + ] + }, + "sceptilemega": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragonpulse", "earthquake", "focusblast", "gigadrain", "leafstorm", "substitute"], + "abilities": ["Overgrow"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "leafblade", "outrage", "swordsdance"], + "abilities": ["Overgrow"] + } + ] + }, + "blaziken": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["flareblitz", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance"], + "abilities": ["Speed Boost"] + } + ] + }, + "blazikenmega": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["flareblitz", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance"], + "abilities": ["Speed Boost"] + } + ] + }, + "swampert": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "roar", "scald", "stealthrock", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "swampertmega": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "icepunch", "raindance", "superpower", "waterfall"], + "abilities": ["Damp"] + } + ] + }, + "mightyena": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "irontail", "playrough", "suckerpunch", "toxic"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fairy"] + } + ] + }, + "linoone": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "extremespeed", "seedbomb", "shadowclaw"], + "abilities": ["Quick Feet"] + } + ] + }, + "beautifly": { + "level": 98, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aircutter", "bugbuzz", "hiddenpowerground", "quiverdance"], + "abilities": ["Swarm"] + } + ] + }, + "dustox": { + "level": 95, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbuzz", "hiddenpowerground", "quiverdance", "roost", "sludgebomb"], + "abilities": ["Shield Dust"] + }, + { + "role": "Bulky Support", + "movepool": ["bugbuzz", "defog", "roost", "toxic", "uturn"], + "abilities": ["Shield Dust"] + } + ] + }, + "ludicolo": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["gigadrain", "hydropump", "icebeam", "raindance"], + "abilities": ["Swift Swim"] + }, + { + "role": "Wallbreaker", + "movepool": ["energyball", "hydropump", "icebeam", "scald"], + "abilities": ["Swift Swim"] + } + ] + }, + "shiftry": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["defog", "knockoff", "leafstorm", "lowkick", "suckerpunch"], + "abilities": ["Chlorophyll", "Pickpocket"] + }, + { + "role": "Setup Sweeper", + "movepool": ["knockoff", "leafblade", "lowkick", "suckerpunch", "swordsdance"], + "abilities": ["Chlorophyll", "Pickpocket"] + } + ] + }, + "swellow": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "facade", "protect", "uturn"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["bravebird", "facade", "quickattack", "uturn"], + "abilities": ["Guts"] + } + ] + }, + "pelipper": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "hurricane", "knockoff", "roost", "scald", "toxic", "uturn"], + "abilities": ["Rain Dish"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "knockoff", "roost", "scald", "toxic", "uturn"], + "abilities": ["Rain Dish"] + } + ] + }, + "gardevoir": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "focusblast", "healingwish", "moonblast", "psychic", "shadowball", "thunderbolt", "trick"], + "abilities": ["Trace"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "focusblast", "moonblast", "psyshock", "substitute", "willowisp"], + "abilities": ["Trace"] + } + ] + }, + "gardevoirmega": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "focusblast", "hypervoice", "psyshock", "substitute", "taunt", "willowisp"], + "abilities": ["Trace"] + } + ] + }, + "masquerain": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "bugbuzz", "hydropump", "quiverdance"], + "abilities": ["Intimidate"] + }, + { + "role": "Fast Support", + "movepool": ["airslash", "bugbuzz", "roost", "scald", "stickyweb", "stunspore", "uturn"], + "abilities": ["Intimidate"] + } + ] + }, + "breloom": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletseed", "machpunch", "rocktomb", "spore", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulletseed", "machpunch", "rocktomb", "swordsdance"], + "abilities": ["Technician"] + } + ] + }, + "vigoroth": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "bulkup", "earthquake", "return", "shadowclaw", "slackoff"], + "abilities": ["Vital Spirit"] + } + ] + }, + "slaking": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "gigaimpact", "nightslash", "retaliate"], + "abilities": ["Truant"] + } + ] + }, + "ninjask": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "nightslash", "swordsdance", "uturn", "xscissor"], + "abilities": ["Infiltrator"] + } + ] + }, + "shedinja": { + "level": 92, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"], + "abilities": ["Wonder Guard"] + } + ] + }, + "exploud": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["boomburst", "fireblast", "focusblast", "surf"], + "abilities": ["Scrappy"] + } + ] + }, + "hariyama": { + "level": 87, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["bulletpunch", "closecombat", "heavyslam", "knockoff", "stoneedge"], + "abilities": ["Guts", "Thick Fat"], + "preferredTypes": ["Dark"] + }, + { + "role": "Wallbreaker", + "movepool": ["bulletpunch", "closecombat", "facade", "fakeout", "knockoff"], + "abilities": ["Guts"], + "preferredTypes": ["Dark"] + } + ] + }, + "delcatty": { + "level": 100, + "sets": [ + { + "role": "Fast Support", + "movepool": ["doubleedge", "fakeout", "healbell", "suckerpunch", "thunderwave", "toxic"], + "abilities": ["Wonder Skin"] + } + ] + }, + "sableye": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["foulplay", "knockoff", "recover", "taunt", "willowisp"], + "abilities": ["Prankster"] + } + ] + }, + "sableyemega": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "recover", "willowisp"], + "abilities": ["Prankster"] + } + ] + }, + "mawile": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["ironhead", "knockoff", "playrough", "stealthrock", "suckerpunch", "swordsdance"], + "abilities": ["Intimidate", "Sheer Force"] + } + ] + }, + "mawilemega": { + "level": 76, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["ironhead", "knockoff", "playrough", "suckerpunch", "swordsdance"], + "abilities": ["Intimidate"] + } + ] + }, + "aggron": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "aggronmega": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "heavyslam", "roar", "stealthrock", "stoneedge", "thunderwave", "toxic"], + "abilities": ["Sturdy"], + "preferredTypes": ["Ground"] + } + ] + }, + "medicham": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "highjumpkick", "icepunch", "poisonjab", "zenheadbutt"], + "abilities": ["Pure Power"] + } + ] + }, + "medichammega": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "highjumpkick", "icepunch", "thunderpunch", "zenheadbutt"], + "abilities": ["Pure Power"] + } + ] + }, + "manectric": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["flamethrower", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "manectricmega": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "plusle": { + "level": 93, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Lightning Rod"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Lightning Rod"] + } + ] + }, + "minun": { + "level": 93, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Volt Absorb"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Volt Absorb"] + } + ] + }, + "volbeat": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "roost", "thunderwave", "uturn"], + "abilities": ["Prankster"] + } + ] + }, + "illumise": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bugbuzz", "encore", "roost", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "swalot": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "encore", "icebeam", "painsplit", "sludgebomb", "toxic", "yawn"], + "abilities": ["Liquid Ooze"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "sludgebomb", "toxic"], + "abilities": ["Liquid Ooze"] + } + ] + }, + "sharpedo": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "destinybond", "earthquake", "icebeam", "protect", "waterfall"], + "abilities": ["Speed Boost"] + } + ] + }, + "sharpedomega": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "icefang", "protect", "waterfall"], + "abilities": ["Speed Boost"] + } + ] + }, + "wailord": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "waterspout"], + "abilities": ["Water Veil"] + } + ] + }, + "camerupt": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "fireblast", "rockpolish", "stoneedge"], + "abilities": ["Solid Rock"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "lavaplume", "roar", "stealthrock", "toxic"], + "abilities": ["Solid Rock"] + } + ] + }, + "cameruptmega": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["ancientpower", "earthpower", "fireblast", "stealthrock", "toxic", "willowisp"], + "abilities": ["Solid Rock"] + } + ] + }, + "torkoal": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "lavaplume", "rapidspin", "stealthrock", "yawn"], + "abilities": ["White Smoke"] + } + ] + }, + "grumpig": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["focusblast", "healbell", "psychic", "thunderwave", "toxic", "whirlwind"], + "abilities": ["Thick Fat"] + } + ] + }, + "spinda": { + "level": 97, + "sets": [ + { + "role": "Staller", + "movepool": ["rest", "return", "sleeptalk", "suckerpunch", "superpower", "thief"], + "abilities": ["Contrary"], + "preferredTypes": ["Fighting"] + } + ] + }, + "flygon": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "outrage", "stoneedge", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "dracometeor", "earthquake", "roost", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "cacturne": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "focusblast", "gigadrain", "spikes", "suckerpunch"], + "abilities": ["Water Absorb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["drainpunch", "seedbomb", "suckerpunch", "swordsdance"], + "abilities": ["Water Absorb"] + } + ] + }, + "altaria": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["dragondance", "earthquake", "outrage", "roost"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["dracometeor", "earthquake", "fireblast", "healbell", "roost", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "altariamega": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "return", "roost"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "fireblast", "healbell", "return", "roost"], + "abilities": ["Natural Cure"] + } + ] + }, + "zangoose": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "facade", "knockoff", "quickattack", "swordsdance"], + "abilities": ["Toxic Boost"], + "preferredTypes": ["Dark"] + } + ] + }, + "seviper": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "flamethrower", "gigadrain", "glare", "knockoff", "sludgewave", "suckerpunch", "switcheroo"], + "abilities": ["Infiltrator"], + "preferredTypes": ["Ground"] + } + ] + }, + "lunatone": { + "level": 96, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "icebeam", "moonblast", "moonlight", "psychic", "rockpolish"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["earthpower", "moonlight", "psychic", "stealthrock", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "solrock": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "morningsun", "stealthrock", "stoneedge", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "whiscash": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "waterfall"], + "abilities": ["Hydration", "Oblivious"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Hydration", "Oblivious"] + } + ] + }, + "crawdaunt": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crabhammer", "dragondance", "knockoff", "superpower"], + "abilities": ["Adaptability"] + } + ] + }, + "claydol": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "cradily": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "earthquake", "recover", "seedbomb", "stoneedge", "swordsdance"], + "abilities": ["Storm Drain"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "gigadrain", "recover", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Storm Drain"], + "preferredTypes": ["Grass"] + } + ] + }, + "armaldo": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "toxic", "xscissor"], + "abilities": ["Battle Armor", "Swift Swim"] + }, + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "earthquake", "knockoff", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Battle Armor", "Swift Swim"] + } + ] + }, + "milotic": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["dragontail", "haze", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Competitive", "Marvel Scale"] + } + ] + }, + "castform": { + "level": 98, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["fireblast", "icebeam", "return", "scald", "thunderbolt", "thunderwave"], + "abilities": ["Forecast"], + "preferredTypes": ["Water"] + } + ] + }, + "kecleon": { + "level": 89, + "sets": [ + { + "role": "Fast Support", + "movepool": ["drainpunch", "fakeout", "knockoff", "recover", "shadowsneak", "stealthrock", "suckerpunch"], + "abilities": ["Protean"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "knockoff", "recover", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Protean"] + } + ] + }, + "banette": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["gunkshot", "knockoff", "shadowclaw", "shadowsneak", "thunderwave", "willowisp"], + "abilities": ["Cursed Body", "Frisk"] + } + ] + }, + "banettemega": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "knockoff", "shadowclaw", "taunt", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "tropius": { + "level": 94, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "leechseed", "protect", "substitute"], + "abilities": ["Harvest"] + } + ] + }, + "chimecho": { + "level": 97, + "sets": [ + { + "role": "Staller", + "movepool": ["healbell", "knockoff", "psychic", "recover", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Levitate"] + } + ] + }, + "absol": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Fairy"] + } + ] + }, + "absolmega": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["irontail", "knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Fairy"] + } + ] + }, + "glalie": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "freezedry", "spikes", "superfang", "taunt"], + "abilities": ["Inner Focus"] + } + ] + }, + "glaliemega": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "explosion", "freezedry", "iceshard", "return", "spikes"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Ground"] + } + ] + }, + "walrein": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "roar", "superfang", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "huntail": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["icebeam", "return", "shellsmash", "suckerpunch", "waterfall"], + "abilities": ["Swift Swim", "Water Veil"], + "preferredTypes": ["Ice"] + } + ] + }, + "gorebyss": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"], + "abilities": ["Swift Swim"] + } + ] + }, + "relicanth": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headsmash", "stealthrock", "toxic", "waterfall"], + "abilities": ["Rock Head"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "headsmash", "rockpolish", "waterfall"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "luvdisc": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "scald", "substitute", "toxic"], + "abilities": ["Hydration"] + } + ] + }, + "salamence": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "outrage", "roost"], + "abilities": ["Intimidate", "Moxie"] + } + ] + }, + "salamencemega": { + "level": 69, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "dragondance", "earthquake", "return", "roost"], + "abilities": ["Intimidate"] + } + ] + }, + "metagross": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["agility", "earthquake", "icepunch", "meteormash", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "earthquake", "explosion", "icepunch", "meteormash", "stealthrock", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + } + ] + }, + "metagrossmega": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["agility", "earthquake", "hammerarm", "meteormash", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hammerarm", "honeclaws", "meteormash", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Psychic"] + } + ] + }, + "regirock": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "drainpunch", "rest", "stoneedge"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["drainpunch", "earthquake", "stealthrock", "stoneedge", "thunderwave", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "regice": { + "level": 87, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "thunderbolt", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focusblast", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave"], + "abilities": ["Clear Body"], + "preferredTypes": ["Electric"] + }, + { + "role": "Bulky Setup", + "movepool": ["focusblast", "icebeam", "rockpolish", "thunderbolt"], + "abilities": ["Clear Body"] + } + ] + }, + "registeel": { + "level": 83, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "ironhead", "rest", "sleeptalk"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "seismictoss", "sleeptalk", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "latias": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "latiasmega": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "latios": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "latiosmega": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "kyogre": { + "level": 68, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icebeam", "originpulse", "scald", "thunder", "waterspout"], + "abilities": ["Drizzle"] + } + ] + }, + "kyogreprimal": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "rest", "scald", "sleeptalk"], + "abilities": ["Drizzle"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "icebeam", "originpulse", "thunder"], + "abilities": ["Drizzle"] + } + ] + }, + "groudon": { + "level": 74, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "lavaplume", "precipiceblades", "stealthrock", "stoneedge", "thunderwave"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["firepunch", "precipiceblades", "rockpolish", "stoneedge", "swordsdance"], + "abilities": ["Drought"] + } + ] + }, + "groudonprimal": { + "level": 64, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "lavaplume", "precipiceblades", "stealthrock", "thunderwave"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["firepunch", "precipiceblades", "rockpolish", "swordsdance"], + "abilities": ["Drought"] + } + ] + }, + "rayquaza": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dracometeor", "earthquake", "extremespeed", "outrage", "vcreate"], + "abilities": ["Air Lock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "extremespeed", "outrage", "vcreate"], + "abilities": ["Air Lock"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "extremespeed", "outrage", "swordsdance", "vcreate"], + "abilities": ["Air Lock"], + "preferredTypes": ["Normal"] + } + ] + }, + "rayquazamega": { + "level": 65, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragonascent", "dragondance", "earthquake", "extremespeed", "vcreate"], + "abilities": ["Air Lock"] + } + ] + }, + "jirachi": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "firepunch", "healingwish", "ironhead", "protect", "stealthrock", "toxic", "uturn", "wish"], + "abilities": ["Serene Grace"] + } + ] + }, + "deoxys": { + "level": 74, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["icebeam", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysattack": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["icebeam", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysdefense": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "recover", "seismictoss", "spikes", "stealthrock", "taunt", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["focusblast", "nastyplot", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysspeed": { + "level": 81, + "sets": [ + { + "role": "Fast Support", + "movepool": ["knockoff", "psychoboost", "spikes", "stealthrock", "superpower", "taunt"], + "abilities": ["Pressure"] + }, + { + "role": "Setup Sweeper", + "movepool": ["darkpulse", "focusblast", "nastyplot", "psychoboost"], + "abilities": ["Pressure"] + } + ] + }, + "torterra": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "stealthrock", "stoneedge", "synthesis", "woodhammer"], + "abilities": ["Overgrow"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "rockpolish", "stoneedge", "woodhammer"], + "abilities": ["Overgrow"] + } + ] + }, + "infernape": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "grassknot", "machpunch", "overheat", "stealthrock"], + "abilities": ["Blaze", "Iron Fist"] + }, + { + "role": "Fast Support", + "movepool": ["closecombat", "flareblitz", "machpunch", "stoneedge", "swordsdance", "uturn"], + "abilities": ["Blaze", "Iron Fist"] + } + ] + }, + "empoleon": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["defog", "knockoff", "protect", "scald", "stealthrock", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "icebeam", "knockoff", "roar", "scald", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Attacker", + "movepool": ["flashcannon", "grassknot", "hydropump", "icebeam", "knockoff", "scald"], + "abilities": ["Torrent"] + } + ] + }, + "staraptor": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "closecombat", "doubleedge", "quickattack", "uturn"], + "abilities": ["Reckless"], + "preferredTypes": ["Fighting"] + } + ] + }, + "bibarel": { + "level": 95, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["quickattack", "return", "waterfall", "workup"], + "abilities": ["Simple"] + }, + { + "role": "Bulky Setup", + "movepool": ["curse", "quickattack", "return", "waterfall"], + "abilities": ["Simple"] + } + ] + }, + "kricketune": { + "level": 97, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bugbite", "knockoff", "stickyweb", "taunt", "toxic"], + "abilities": ["Technician"] + } + ] + }, + "luxray": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "superpower", "wildcharge"], + "abilities": ["Guts"] + }, + { + "role": "AV Pivot", + "movepool": ["crunch", "icefang", "superpower", "voltswitch", "wildcharge"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "roserade": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["gigadrain", "hiddenpowerground", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"], + "abilities": ["Natural Cure", "Technician"] + } + ] + }, + "rampardos": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "firepunch", "rockpolish", "rockslide", "zenheadbutt"], + "abilities": ["Sheer Force"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "firepunch", "headsmash", "rockslide"], + "abilities": ["Sheer Force"] + } + ] + }, + "bastiodon": { + "level": 94, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["metalburst", "roar", "rockblast", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Staller", + "movepool": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "wormadam": { + "level": 100, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerground", "hiddenpowerrock", "leafstorm", "signalbeam", "synthesis", "toxic"], + "abilities": ["Anticipation", "Overcoat"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerground", "hiddenpowerrock", "leafstorm", "psychic", "signalbeam"], + "abilities": ["Anticipation", "Overcoat"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerground", "protect", "toxic"], + "abilities": ["Anticipation", "Overcoat"] + } + ] + }, + "wormadamsandy": { + "level": 89, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "infestation", "protect", "stealthrock", "toxic"], + "abilities": ["Overcoat"] + } + ] + }, + "wormadamtrash": { + "level": 87, + "sets": [ + { + "role": "Staller", + "movepool": ["flashcannon", "infestation", "protect", "stealthrock", "toxic"], + "abilities": ["Overcoat"] + } + ] + }, + "mothim": { + "level": 93, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "bugbuzz", "energyball", "quiverdance"], + "abilities": ["Tinted Lens"] + } + ] + }, + "vespiquen": { + "level": 99, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "defog", "roost", "toxic", "uturn"], + "abilities": ["Pressure"] + } + ] + }, + "pachirisu": { + "level": 94, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["nuzzle", "superfang", "thunderbolt", "toxic", "uturn"], + "abilities": ["Volt Absorb"] + } + ] + }, + "floatzel": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "icepunch", "lowkick", "substitute", "waterfall"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crunch", "icepunch", "lowkick", "waterfall"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + } + ] + }, + "cherrim": { + "level": 97, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dazzlinggleam", "energyball", "healingwish", "hiddenpowerfire", "hiddenpowerground", "hiddenpowerrock", "morningsun"], + "abilities": ["Flower Gift"] + }, + { + "role": "Staller", + "movepool": ["aromatherapy", "energyball", "hiddenpowerground", "leechseed", "morningsun", "toxic"], + "abilities": ["Flower Gift"] + } + ] + }, + "gastrodon": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["clearsmog", "earthquake", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Storm Drain"] + } + ] + }, + "ambipom": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "knockoff", "lowkick", "return", "uturn"], + "abilities": ["Technician"], + "preferredTypes": ["Dark"] + } + ] + }, + "drifblim": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["acrobatics", "defog", "destinybond", "shadowball", "substitute", "willowisp"], + "abilities": ["Unburden"] + }, + { + "role": "Bulky Support", + "movepool": ["acrobatics", "hex", "substitute", "willowisp"], + "abilities": ["Unburden"] + } + ] + }, + "lopunny": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["healingwish", "highjumpkick", "icepunch", "return", "switcheroo"], + "abilities": ["Limber"] + } + ] + }, + "lopunnymega": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["encore", "fakeout", "highjumpkick", "poweruppunch", "return", "substitute"], + "abilities": ["Limber"] + } + ] + }, + "mismagius": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dazzlinggleam", "destinybond", "painsplit", "shadowball", "taunt", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Wallbreaker", + "movepool": ["dazzlinggleam", "nastyplot", "shadowball", "thunderbolt", "trick"], + "abilities": ["Levitate"] + } + ] + }, + "honchkrow": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bravebird", "heatwave", "pursuit", "roost", "suckerpunch", "superpower"], + "abilities": ["Moxie"] + } + ] + }, + "purugly": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "knockoff", "return", "uturn", "wakeupslap"], + "abilities": ["Defiant", "Thick Fat"], + "preferredTypes": ["Dark"] + } + ] + }, + "skuntank": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "defog", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"], + "abilities": ["Aftermath"] + } + ] + }, + "bronzong": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "ironhead", "psychic", "stealthrock", "toxic"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "ironhead", "protect", "psychic", "toxic"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + } + ] + }, + "chatot": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["boomburst", "chatter", "heatwave", "hiddenpowerground", "uturn"], + "abilities": ["Tangled Feet"] + }, + { + "role": "Setup Sweeper", + "movepool": ["boomburst", "chatter", "heatwave", "nastyplot", "substitute"], + "abilities": ["Tangled Feet"] + } + ] + }, + "spiritomb": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "rest", "sleeptalk"], + "abilities": ["Infiltrator"] + }, + { + "role": "Bulky Attacker", + "movepool": ["foulplay", "painsplit", "pursuit", "suckerpunch", "toxic", "willowisp"], + "abilities": ["Infiltrator"] + } + ] + }, + "garchomp": { + "level": 75, + "sets": [ + { + "role": "Fast Support", + "movepool": ["dragonclaw", "earthquake", "fireblast", "outrage", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Rough Skin"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "firefang", "outrage", "stoneedge", "swordsdance"], + "abilities": ["Rough Skin"] + } + ] + }, + "garchompmega": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dracometeor", "earthquake", "fireblast", "stealthrock", "stoneedge"], + "abilities": ["Rough Skin"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "firefang", "outrage", "stoneedge", "swordsdance"], + "abilities": ["Rough Skin"] + } + ] + }, + "lucario": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "closecombat", "crunch", "extremespeed", "stoneedge", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "flashcannon", "nastyplot", "vacuumwave"], + "abilities": ["Inner Focus"] + } + ] + }, + "lucariomega": { + "level": 75, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bulletpunch", "closecombat", "irontail", "swordsdance"], + "abilities": ["Justified"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "flashcannon", "nastyplot", "vacuumwave"], + "abilities": ["Justified"] + } + ] + }, + "hippowdon": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"], + "abilities": ["Sand Stream"] + } + ] + }, + "drapion": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquatail", "earthquake", "knockoff", "poisonjab", "pursuit", "swordsdance"], + "abilities": ["Battle Armor"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "poisonjab", "taunt", "toxicspikes", "whirlwind"], + "abilities": ["Battle Armor"] + } + ] + }, + "toxicroak": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["drainpunch", "earthquake", "gunkshot", "knockoff", "substitute", "suckerpunch", "swordsdance"], + "abilities": ["Dry Skin"] + } + ] + }, + "carnivine": { + "level": 99, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "powerwhip", "sleeppowder", "synthesis", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "lumineon": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "icebeam", "scald", "toxic", "uturn"], + "abilities": ["Storm Drain"] + } + ] + }, + "abomasnow": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "earthquake", "gigadrain", "iceshard", "woodhammer"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + } + ] + }, + "abomasnowmega": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "earthquake", "gigadrain", "iceshard", "woodhammer"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + } + ] + }, + "weavile": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["iceshard", "iciclecrash", "knockoff", "lowkick", "pursuit", "swordsdance"], + "abilities": ["Pickpocket"] + } + ] + }, + "magnezone": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["flashcannon", "hiddenpowerground", "thunderbolt", "voltswitch"], + "abilities": ["Magnet Pull"] + }, + { + "role": "Staller", + "movepool": ["flashcannon", "protect", "thunderbolt", "toxic"], + "abilities": ["Analytic"] + } + ] + }, + "lickilicky": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "healbell", "knockoff", "protect", "wish"], + "abilities": ["Cloud Nine", "Oblivious"] + }, + { + "role": "AV Pivot", + "movepool": ["bodyslam", "dragontail", "earthquake", "explosion", "knockoff", "powerwhip"], + "abilities": ["Cloud Nine", "Own Tempo"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "earthquake", "explosion", "knockoff", "powerwhip", "return", "swordsdance"], + "abilities": ["Cloud Nine", "Oblivious"], + "preferredTypes": ["Dark"] + } + ] + }, + "rhyperior": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dragontail", "earthquake", "icepunch", "megahorn", "stoneedge"], + "abilities": ["Solid Rock"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge"], + "abilities": ["Solid Rock"] + } + ] + }, + "tangrowth": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "knockoff", "leafstorm", "leechseed", "morningsun", "powerwhip", "rockslide", "sleeppowder", "sludgebomb"], + "abilities": ["Regenerator"] + }, + { + "role": "AV Pivot", + "movepool": ["earthquake", "gigadrain", "knockoff", "powerwhip", "rockslide", "sludgebomb"], + "abilities": ["Regenerator"] + } + ] + }, + "electivire": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], + "abilities": ["Motor Drive"], + "preferredTypes": ["Ice"] + } + ] + }, + "magmortar": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "focusblast", "hiddenpowerice", "taunt", "thunderbolt"], + "abilities": ["Flame Body"], + "preferredTypes": ["Electric"] + } + ] + }, + "togekiss": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["airslash", "aurasphere", "nastyplot", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Attacker", + "movepool": ["airslash", "defog", "healbell", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Fast Attacker", + "movepool": ["airslash", "aurasphere", "dazzlinggleam", "trick"], + "abilities": ["Serene Grace"] + } + ] + }, + "yanmega": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "bugbuzz", "hiddenpowerground", "protect"], + "abilities": ["Speed Boost"] + }, + { + "role": "Wallbreaker", + "movepool": ["airslash", "bugbuzz", "gigadrain", "uturn"], + "abilities": ["Tinted Lens"] + } + ] + }, + "leafeon": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "knockoff", "leafblade", "swordsdance", "synthesis", "xscissor"], + "abilities": ["Chlorophyll"], + "preferredTypes": ["Dark"] + } + ] + }, + "glaceon": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerground", "icebeam", "protect", "wish"], + "abilities": ["Ice Body"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "toxic", "wish"], + "abilities": ["Ice Body"] + } + ] + }, + "gliscor": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "protect", "substitute", "toxic"], + "abilities": ["Poison Heal"] + }, + { + "role": "Staller", + "movepool": ["defog", "earthquake", "knockoff", "roost", "stealthrock", "taunt", "toxic", "uturn"], + "abilities": ["Poison Heal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "facade", "roost", "swordsdance"], + "abilities": ["Poison Heal"] + } + ] + }, + "mamoswine": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "iceshard", "iciclecrash", "knockoff", "stealthrock"], + "abilities": ["Thick Fat"] + } + ] + }, + "porygonz": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icebeam", "nastyplot", "shadowball", "thunderbolt", "triattack", "trick"], + "abilities": ["Adaptability", "Download"] + } + ] + }, + "gallade": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "icepunch", "knockoff", "shadowsneak", "swordsdance", "zenheadbutt"], + "abilities": ["Justified"], + "preferredTypes": ["Dark"] + } + ] + }, + "gallademega": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["closecombat", "knockoff", "swordsdance", "zenheadbutt"], + "abilities": ["Justified"] + } + ] + }, + "probopass": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "flashcannon", "stealthrock", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Magnet Pull"] + }, + { + "role": "Bulky Support", + "movepool": ["earthpower", "powergem", "stealthrock", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Magnet Pull"], + "preferredTypes": ["Ground"] + } + ] + }, + "dusknoir": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "haze", "icepunch", "painsplit", "shadowsneak", "toxic", "willowisp"], + "abilities": ["Frisk", "Pressure"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "shadowsneak", "toxic"], + "abilities": ["Frisk", "Pressure"] + } + ] + }, + "froslass": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave"], + "abilities": ["Cursed Body"] + } + ] + }, + "rotom": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["hiddenpowerice", "painsplit", "shadowball", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomheat": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerice", "overheat", "painsplit", "thunderbolt", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomwash": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hydropump", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomfrost": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomfan": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "painsplit", "thunderbolt", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotommow": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["hiddenpowerice", "leafstorm", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "uxie": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "knockoff", "psychic", "stealthrock", "thunderwave", "toxic", "uturn", "yawn"], + "abilities": ["Levitate"] + } + ] + }, + "mesprit": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "healingwish", "hiddenpowerfire", "psychic", "psyshock", "signalbeam", "thunderbolt", "uturn"], + "abilities": ["Levitate"], + "preferredTypes": ["Bug"] + }, + { + "role": "Bulky Support", + "movepool": ["knockoff", "psychic", "stealthrock", "thunderwave", "toxic", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "azelf": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dazzlinggleam", "fireblast", "nastyplot", "psychic", "psyshock", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Fast Support", + "movepool": ["explosion", "fireblast", "knockoff", "psychic", "stealthrock", "taunt", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "dialga": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "dragontail", "fireblast", "flashcannon", "stealthrock", "thunderbolt", "toxic"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + } + ] + }, + "palkia": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "fireblast", "hydropump", "spacialrend", "thunderwave"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + } + ] + }, + "heatran": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "flashcannon", "lavaplume", "magmastorm", "stealthrock", "taunt", "toxic"], + "abilities": ["Flash Fire"] + }, + { + "role": "Staller", + "movepool": ["earthpower", "magmastorm", "protect", "toxic"], + "abilities": ["Flash Fire"] + } + ] + }, + "regigigas": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "knockoff", "return", "substitute", "thunderwave"], + "abilities": ["Slow Start"], + "preferredTypes": ["Dark"] + } + ] + }, + "giratinaorigin": { + "level": 70, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "hex", "shadowsneak", "thunderwave", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Fast Attacker", + "movepool": ["defog", "dracometeor", "earthquake", "outrage", "shadowball", "shadowsneak", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "giratina": { + "level": 73, + "sets": [ + { + "role": "Fast Support", + "movepool": ["dragontail", "rest", "shadowball", "sleeptalk", "willowisp"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "dragonpulse", "rest", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "dragontail", "rest", "shadowball", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "cresselia": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "moonblast", "moonlight", "psyshock"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["moonblast", "moonlight", "psychic", "thunderwave", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "phione": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "knockoff", "scald", "toxic", "uturn"], + "abilities": ["Hydration"] + } + ] + }, + "manaphy": { + "level": 76, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["energyball", "icebeam", "surf", "tailglow"], + "abilities": ["Hydration"] + } + ] + }, + "darkrai": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["darkpulse", "darkvoid", "nastyplot", "sludgebomb"], + "abilities": ["Bad Dreams"], + "preferredTypes": ["Poison"] + } + ] + }, + "shaymin": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["airslash", "earthpower", "leechseed", "seedflare", "substitute", "synthesis"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Flying"] + } + ] + }, + "shayminsky": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "earthpower", "hiddenpowerice", "leechseed", "seedflare", "substitute"], + "abilities": ["Serene Grace"] + } + ] + }, + "arceus": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"], + "abilities": ["Multitype"] + } + ] + }, + "arceusbug": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdark": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "fireblast", "judgment", "recover", "sludgebomb", "toxic", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdragon": { + "level": 71, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "earthquake", "fireblast", "judgment", "recover", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "outrage", "recover", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceuselectric": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfairy": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfighting": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "shadowball"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfire": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "energyball", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusflying": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceusghost": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "focusblast", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["brickbreak", "extremespeed", "shadowforce", "swordsdance"], + "abilities": ["Multitype"] + } + ] + }, + "arceusgrass": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusground": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Rock"] + }, + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "toxic"], + "abilities": ["Multitype"] + } + ] + }, + "arceusice": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover", "thunderbolt"], + "abilities": ["Multitype"] + } + ] + }, + "arceuspoison": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "icebeam", "recover", "sludgebomb"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "recover", "sludgebomb"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceuspsychic": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "fireblast", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusrock": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceussteel": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceuswater": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "victini": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["boltstrike", "uturn", "vcreate", "zenheadbutt"], + "abilities": ["Victory Star"] + }, + { + "role": "AV Pivot", + "movepool": ["boltstrike", "energyball", "focusblast", "glaciate", "psychic", "uturn", "vcreate"], + "abilities": ["Victory Star"], + "preferredTypes": ["Electric"] + } + ] + }, + "serperior": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragonpulse", "glare", "hiddenpowerfire", "leafstorm", "leechseed", "substitute"], + "abilities": ["Contrary"] + } + ] + }, + "emboar": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["flareblitz", "headsmash", "suckerpunch", "superpower", "wildcharge"], + "abilities": ["Reckless"] + }, + { + "role": "AV Pivot", + "movepool": ["flareblitz", "grassknot", "suckerpunch", "superpower", "wildcharge"], + "abilities": ["Reckless"] + } + ] + }, + "samurott": { + "level": 87, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["aquajet", "grassknot", "hydropump", "icebeam", "knockoff", "megahorn", "scald", "superpower"], + "abilities": ["Torrent"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "knockoff", "megahorn", "superpower", "swordsdance", "waterfall"], + "abilities": ["Torrent"] + } + ] + }, + "watchog": { + "level": 94, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hypnosis", "knockoff", "return", "superfang"], + "abilities": ["Analytic"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hypnosis", "knockoff", "return", "substitute", "swordsdance"], + "abilities": ["Analytic"] + } + ] + }, + "stoutland": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crunch", "facade", "return", "superpower"], + "abilities": ["Scrappy"] + } + ] + }, + "liepard": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["copycat", "encore", "knockoff", "substitute", "thunderwave", "uturn"], + "abilities": ["Prankster"] + }, + { + "role": "Fast Attacker", + "movepool": ["gunkshot", "knockoff", "playrough", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "simisage": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["gunkshot", "hiddenpowerice", "knockoff", "leafstorm", "rockslide", "superpower"], + "abilities": ["Overgrow"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "gigadrain", "hiddenpowerice", "nastyplot", "substitute"], + "abilities": ["Overgrow"] + } + ] + }, + "simisear": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"], + "abilities": ["Blaze"] + } + ] + }, + "simipour": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hydropump", "icebeam", "nastyplot", "substitute"], + "abilities": ["Torrent"], + "preferredTypes": ["Ice"] + } + ] + }, + "musharna": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "moonlight", "psyshock", "shadowball", "signalbeam"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Support", + "movepool": ["healbell", "moonlight", "psychic", "signalbeam", "thunderwave", "toxic"], + "abilities": ["Synchronize"] + } + ] + }, + "unfezant": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["nightslash", "pluck", "return", "roost", "toxic", "uturn"], + "abilities": ["Super Luck"] + } + ] + }, + "zebstrika": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "overheat", "voltswitch", "wildcharge"], + "abilities": ["Sap Sipper"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "gigalith": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "superpower", "toxic"], + "abilities": ["Sturdy"], + "preferredTypes": ["Ground"] + } + ] + }, + "swoobat": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "heatwave", "roost", "storedpower"], + "abilities": ["Simple"] + }, + { + "role": "Setup Sweeper", + "movepool": ["airslash", "calmmind", "heatwave", "roost", "storedpower"], + "abilities": ["Simple"] + } + ] + }, + "excadrill": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"], + "abilities": ["Mold Breaker", "Sand Rush"] + } + ] + }, + "audino": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "protect", "toxic", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "audinomega": { + "level": 91, + "sets": [ + { + "role": "Staller", + "movepool": ["dazzlinggleam", "protect", "toxic", "wish"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["calmmind", "dazzlinggleam", "fireblast", "protect", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "conkeldurr": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "facade", "knockoff", "machpunch"], + "abilities": ["Guts"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "drainpunch", "knockoff", "machpunch"], + "abilities": ["Iron Fist"] + } + ] + }, + "seismitoad": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hydropump", "knockoff", "raindance", "sludgewave"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "scald", "stealthrock", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "throh": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bulkup", "circlethrow", "knockoff", "rest", "sleeptalk"], + "abilities": ["Guts"] + } + ] + }, + "sawk": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "closecombat", "earthquake", "knockoff", "poisonjab", "stoneedge"], + "abilities": ["Mold Breaker", "Sturdy"], + "preferredTypes": ["Dark"] + } + ] + }, + "leavanny": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["knockoff", "leafblade", "stickyweb", "toxic", "xscissor"], + "abilities": ["Chlorophyll", "Swarm"] + } + ] + }, + "scolipede": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "megahorn", "poisonjab", "spikes", "toxicspikes"], + "abilities": ["Speed Boost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "megahorn", "poisonjab", "swordsdance"], + "abilities": ["Speed Boost"] + } + ] + }, + "whimsicott": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["encore", "energyball", "moonblast", "stunspore", "taunt", "toxic", "uturn"], + "abilities": ["Prankster"] + }, + { + "role": "Staller", + "movepool": ["leechseed", "moonblast", "protect", "substitute"], + "abilities": ["Prankster"] + } + ] + }, + "lilligant": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "quiverdance", "sleeppowder"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"], + "abilities": ["Own Tempo"] + } + ] + }, + "basculin": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "crunch", "superpower", "waterfall", "zenheadbutt"], + "abilities": ["Adaptability"] + } + ] + }, + "krookodile": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "knockoff", "pursuit", "stealthrock", "stoneedge", "superpower"], + "abilities": ["Intimidate"] + } + ] + }, + "darmanitan": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"], + "abilities": ["Sheer Force"] + } + ] + }, + "maractus": { + "level": 98, + "sets": [ + { + "role": "Fast Support", + "movepool": ["gigadrain", "hiddenpowerfire", "knockoff", "spikes", "synthesis", "toxic"], + "abilities": ["Storm Drain", "Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "spikyshield"], + "abilities": ["Storm Drain", "Water Absorb"] + } + ] + }, + "crustle": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "knockoff", "shellsmash", "stoneedge", "xscissor"], + "abilities": ["Sturdy"], + "preferredTypes": ["Ground"] + } + ] + }, + "scrafty": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "highjumpkick", "ironhead", "knockoff"], + "abilities": ["Intimidate", "Moxie"] + }, + { + "role": "Bulky Setup", + "movepool": ["bulkup", "drainpunch", "knockoff", "rest"], + "abilities": ["Shed Skin"] + } + ] + }, + "sigilyph": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "calmmind", "heatwave", "psyshock", "roost"], + "abilities": ["Magic Guard"] + }, + { + "role": "Wallbreaker", + "movepool": ["airslash", "energyball", "heatwave", "icebeam", "psychic", "psyshock"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Staller", + "movepool": ["cosmicpower", "psychoshift", "roost", "storedpower"], + "abilities": ["Magic Guard"] + } + ] + }, + "cofagrigus": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "painsplit", "shadowball", "toxicspikes", "willowisp"], + "abilities": ["Mummy"] + }, + { + "role": "Bulky Setup", + "movepool": ["hiddenpowerfighting", "nastyplot", "shadowball", "trickroom"], + "abilities": ["Mummy"] + } + ] + }, + "carracosta": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aquajet", "earthquake", "icebeam", "shellsmash", "stoneedge", "waterfall"], + "abilities": ["Solid Rock", "Sturdy", "Swift Swim"] + } + ] + }, + "archeops": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["acrobatics", "defog", "earthquake", "knockoff", "roost", "stealthrock", "stoneedge", "uturn"], + "abilities": ["Defeatist"], + "preferredTypes": ["Ground"] + } + ] + }, + "garbodor": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "gunkshot", "haze", "painsplit", "spikes", "toxic", "toxicspikes"], + "abilities": ["Aftermath"] + } + ] + }, + "zoroark": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "sludgebomb", "trick", "uturn"], + "abilities": ["Illusion"], + "preferredTypes": ["Poison"] + } + ] + }, + "cinccino": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletseed", "knockoff", "rockblast", "tailslap", "uturn"], + "abilities": ["Skill Link"] + } + ] + }, + "gothitelle": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "hiddenpowerfighting", "psychic", "shadowball", "signalbeam", "thunderbolt", "trick"], + "abilities": ["Shadow Tag"] + } + ] + }, + "reuniclus": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "focusblast", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Magic Guard"] + } + ] + }, + "swanna": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "roost", "scald", "toxic"], + "abilities": ["Hydration"] + } + ] + }, + "vanilluxe": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["autotomize", "explosion", "flashcannon", "freezedry", "hiddenpowerground", "icebeam", "toxic"], + "abilities": ["Weak Armor"], + "preferredTypes": ["Ground"] + }, + { + "role": "AV Pivot", + "movepool": ["explosion", "flashcannon", "freezedry", "hiddenpowerground", "icebeam"], + "abilities": ["Weak Armor"], + "preferredTypes": ["Ground"] + } + ] + }, + "sawsbuck": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hornleech", "jumpkick", "return", "substitute", "swordsdance"], + "abilities": ["Sap Sipper"], + "preferredTypes": ["Normal"] + } + ] + }, + "emolga": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["acrobatics", "encore", "knockoff", "nuzzle", "roost", "thunderbolt", "toxic", "uturn"], + "abilities": ["Motor Drive"] + } + ] + }, + "escavalier": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drillrun", "ironhead", "knockoff", "megahorn", "pursuit", "swordsdance"], + "abilities": ["Overcoat", "Swarm"] + } + ] + }, + "amoonguss": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["clearsmog", "foulplay", "gigadrain", "hiddenpowerground", "sludgebomb", "spore"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["gigadrain", "sludgebomb", "spore", "synthesis"], + "abilities": ["Regenerator"] + } + ] + }, + "jellicent": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "recover", "scald", "shadowball", "taunt"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Support", + "movepool": ["hex", "recover", "scald", "toxic", "willowisp"], + "abilities": ["Water Absorb"] + } + ] + }, + "alomomola": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "protect", "scald", "toxic", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "galvantula": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bugbuzz", "gigadrain", "stickyweb", "thunder", "voltswitch"], + "abilities": ["Compound Eyes"], + "preferredTypes": ["Bug"] + } + ] + }, + "ferrothorn": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["gyroball", "leechseed", "powerwhip", "spikes", "stealthrock"], + "abilities": ["Iron Barbs"] + }, + { + "role": "Bulky Support", + "movepool": ["knockoff", "powerwhip", "spikes", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Iron Barbs"] + } + ] + }, + "klinklang": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"], + "abilities": ["Clear Body"] + } + ] + }, + "eelektross": { + "level": 85, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["discharge", "flamethrower", "gigadrain", "hiddenpowerice", "knockoff", "superpower", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "beheeyem": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "psychic", "psyshock", "recover", "signalbeam", "thunderbolt", "trick", "trickroom"], + "abilities": ["Analytic"], + "preferredTypes": ["Bug"] + } + ] + }, + "chandelure": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["energyball", "fireblast", "shadowball", "trick"], + "abilities": ["Flash Fire"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "shadowball", "substitute"], + "abilities": ["Flame Body", "Flash Fire"] + } + ] + }, + "haxorus": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "outrage", "poisonjab", "taunt"], + "abilities": ["Mold Breaker"], + "preferredTypes": ["Ground"] + } + ] + }, + "beartic": { + "level": 94, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquajet", "iciclecrash", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Fighting"] + } + ] + }, + "cryogonal": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["freezedry", "haze", "hiddenpowerground", "rapidspin", "recover", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "accelgor": { + "level": 89, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bugbuzz", "encore", "focusblast", "hiddenpowerground", "hiddenpowerrock", "spikes", "uturn"], + "abilities": ["Hydration", "Sticky Hold"] + } + ] + }, + "stunfisk": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["discharge", "earthpower", "rest", "scald", "sleeptalk", "stealthrock", "toxic"], + "abilities": ["Static"] + }, + { + "role": "AV Pivot", + "movepool": ["discharge", "earthpower", "foulplay", "scald", "sludgebomb"], + "abilities": ["Static"] + } + ] + }, + "mienshao": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["highjumpkick", "knockoff", "poisonjab", "stoneedge", "swordsdance", "uturn"], + "abilities": ["Reckless"], + "preferredTypes": ["Dark"] + }, + { + "role": "AV Pivot", + "movepool": ["fakeout", "highjumpkick", "knockoff", "uturn"], + "abilities": ["Regenerator"] + } + ] + }, + "druddigon": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["firepunch", "glare", "gunkshot", "outrage", "suckerpunch"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Poison"] + }, + { + "role": "Bulky Support", + "movepool": ["dragontail", "earthquake", "glare", "gunkshot", "outrage", "stealthrock", "suckerpunch"], + "abilities": ["Rough Skin"] + } + ] + }, + "golurk": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dynamicpunch", "earthquake", "icepunch", "rockpolish", "stealthrock", "stoneedge"], + "abilities": ["No Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "bisharp": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["ironhead", "knockoff", "pursuit", "suckerpunch", "swordsdance"], + "abilities": ["Defiant"] + } + ] + }, + "bouffalant": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headcharge", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Reckless", "Sap Sipper"] + } + ] + }, + "braviary": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "bulkup", "roost", "superpower"], + "abilities": ["Defiant"] + }, + { + "role": "Fast Attacker", + "movepool": ["bravebird", "return", "superpower", "uturn"], + "abilities": ["Defiant"] + } + ] + }, + "mandibuzz": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "foulplay", "knockoff", "roost", "taunt", "toxic", "uturn"], + "abilities": ["Overcoat"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "foulplay", "roost", "taunt", "toxic", "uturn"], + "abilities": ["Overcoat"] + } + ] + }, + "heatmor": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["fireblast", "gigadrain", "knockoff", "suckerpunch", "superpower"], + "abilities": ["Flash Fire"] + } + ] + }, + "durant": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"], + "abilities": ["Hustle"], + "preferredTypes": ["Fighting"] + } + ] + }, + "hydreigon": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "dracometeor", "earthpower", "fireblast", "flashcannon", "roost", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["darkpulse", "dracometeor", "fireblast", "roost", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "AV Pivot", + "movepool": ["darkpulse", "dracometeor", "flashcannon", "superpower", "uturn"], + "abilities": ["Levitate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "volcarona": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerrock", "quiverdance", "roost"], + "abilities": ["Flame Body", "Swarm"] + } + ] + }, + "cobalion": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "ironhead", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Justified"] + } + ] + }, + "terrakion": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Ground"] + } + ] + }, + "virizion": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "leafblade", "stoneedge", "swordsdance"], + "abilities": ["Justified"] + } + ] + }, + "tornadus": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["heatwave", "hurricane", "knockoff", "superpower", "taunt", "uturn"], + "abilities": ["Defiant", "Prankster"] + }, + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "bulkup", "knockoff", "superpower", "taunt"], + "abilities": ["Defiant"], + "preferredTypes": ["Fighting"] + } + ] + }, + "tornadustherian": { + "level": 79, + "sets": [ + { + "role": "Fast Support", + "movepool": ["heatwave", "hurricane", "knockoff", "superpower", "taunt", "uturn"], + "abilities": ["Regenerator"] + } + ] + }, + "thundurus": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Prankster"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerflying", "hiddenpowerice", "knockoff", "superpower", "taunt", "thunderbolt", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "thundurustherian": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "reshiram": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blueflare", "dracometeor", "roost", "toxic"], + "abilities": ["Turboblaze"] + } + ] + }, + "zekrom": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["boltstrike", "honeclaws", "outrage", "roost", "substitute"], + "abilities": ["Teravolt"] + }, + { + "role": "AV Pivot", + "movepool": ["boltstrike", "dracometeor", "outrage", "voltswitch"], + "abilities": ["Teravolt"] + } + ] + }, + "landorus": { + "level": 77, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "focusblast", "knockoff", "psychic", "rockpolish", "rockslide", "sludgewave", "stealthrock"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "focusblast", "psychic", "rockpolish", "sludgewave"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Poison"] + } + ] + }, + "landorustherian": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "stealthrock", "stoneedge", "toxic", "uturn"], + "abilities": ["Intimidate"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "knockoff", "rockpolish", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Intimidate"], + "preferredTypes": ["Rock"] + } + ] + }, + "kyurem": { + "level": 78, + "sets": [ + { + "role": "Staller", + "movepool": ["earthpower", "icebeam", "roost", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Support", + "movepool": ["dracometeor", "earthpower", "icebeam", "outrage", "roost", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage"], + "abilities": ["Pressure"] + } + ] + }, + "kyuremblack": { + "level": 76, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "fusionbolt", "icebeam", "outrage", "roost", "substitute"], + "abilities": ["Teravolt"] + } + ] + }, + "kyuremwhite": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "earthpower", "fusionflare", "icebeam", "roost"], + "abilities": ["Turboblaze"] + } + ] + }, + "keldeo": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerelectric", "hiddenpowerflying", "hydropump", "icywind", "scald", "secretsword"], + "abilities": ["Justified"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "scald", "secretsword", "substitute"], + "abilities": ["Justified"] + }, + { + "role": "Fast Attacker", + "movepool": ["focusblast", "hydropump", "scald", "secretsword"], + "abilities": ["Justified"] + } + ] + }, + "meloetta": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "focusblast", "hypervoice", "psyshock", "uturn"], + "abilities": ["Serene Grace"] + }, + { + "role": "Wallbreaker", + "movepool": ["closecombat", "knockoff", "relicsong", "return"], + "abilities": ["Serene Grace"] + } + ] + }, + "genesect": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["blazekick", "ironhead", "shiftgear", "thunderbolt", "xscissor"], + "abilities": ["Download"] + }, + { + "role": "Wallbreaker", + "movepool": ["blazekick", "extremespeed", "ironhead", "uturn"], + "abilities": ["Download"] + }, + { + "role": "Fast Attacker", + "movepool": ["bugbuzz", "flamethrower", "flashcannon", "icebeam", "thunderbolt", "uturn"], + "abilities": ["Download"], + "preferredTypes": ["Bug"] + } + ] + }, + "chesnaught": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bulkup", "drainpunch", "spikes", "synthesis", "toxic", "woodhammer"], + "abilities": ["Bulletproof"] + }, + { + "role": "Staller", + "movepool": ["drainpunch", "leechseed", "spikyshield", "woodhammer"], + "abilities": ["Bulletproof"] + } + ] + }, + "delphox": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "dazzlinggleam", "fireblast", "grassknot", "psyshock", "switcheroo"], + "abilities": ["Blaze"] + } + ] + }, + "greninja": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["grassknot", "gunkshot", "hydropump", "icebeam", "spikes", "taunt", "toxicspikes", "uturn"], + "abilities": ["Protean"], + "preferredTypes": ["Poison"] + } + ] + }, + "diggersby": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "earthquake", "knockoff", "quickattack", "return", "swordsdance"], + "abilities": ["Huge Power"], + "preferredTypes": ["Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "foulplay", "quickattack", "return", "uturn"], + "abilities": ["Huge Power"], + "preferredTypes": ["Normal"] + } + ] + }, + "talonflame": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "overheat", "roost", "uturn", "willowisp"], + "abilities": ["Gale Wings"] + }, + { + "role": "Bulky Setup", + "movepool": ["bravebird", "flareblitz", "roost", "swordsdance"], + "abilities": ["Gale Wings"] + } + ] + }, + "vivillon": { + "level": 83, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["energyball", "hurricane", "quiverdance", "sleeppowder"], + "abilities": ["Compound Eyes"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bugbuzz", "hurricane", "quiverdance", "sleeppowder"], + "abilities": ["Compound Eyes"] + } + ] + }, + "pyroar": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "fireblast", "hypervoice", "solarbeam", "sunnyday", "willowisp", "workup"], + "abilities": ["Unnerve"], + "preferredTypes": ["Normal"] + } + ] + }, + "floetteeternal": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfire", "hiddenpowerground", "lightofruin", "moonblast", "psychic"], + "abilities": ["Flower Veil"] + } + ] + }, + "florges": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "moonblast", "synthesis", "toxic"], + "abilities": ["Flower Veil"] + }, + { + "role": "Staller", + "movepool": ["moonblast", "protect", "toxic", "wish"], + "abilities": ["Flower Veil"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerground", "moonblast", "synthesis"], + "abilities": ["Flower Veil"] + } + ] + }, + "gogoat": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "earthquake", "hornleech", "milkdrink", "toxic"], + "abilities": ["Sap Sipper"] + } + ] + }, + "pangoro": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "gunkshot", "icepunch", "knockoff", "partingshot", "superpower", "swordsdance"], + "abilities": ["Iron Fist", "Scrappy"], + "preferredTypes": ["Poison"] + } + ] + }, + "furfrou": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["darkpulse", "rest", "return", "thunderwave", "toxic", "uturn"], + "abilities": ["Fur Coat"] + }, + { + "role": "Staller", + "movepool": ["cottonguard", "rest", "return", "substitute", "toxic"], + "abilities": ["Fur Coat"] + } + ] + }, + "meowstic": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "lightscreen", "psychic", "reflect", "signalbeam", "thunderwave", "toxic", "yawn"], + "abilities": ["Prankster"] + } + ] + }, + "meowsticf": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "darkpulse", "psychic", "psyshock", "signalbeam", "thunderbolt"], + "abilities": ["Competitive"], + "preferredTypes": ["Bug"] + } + ] + }, + "doublade": { + "level": 82, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["ironhead", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], + "abilities": ["No Guard"] + } + ] + }, + "aegislash": { + "level": 78, + "sets": [ + { + "role": "Staller", + "movepool": ["ironhead", "kingsshield", "shadowball", "substitute", "toxic"], + "abilities": ["Stance Change"] + }, + { + "role": "Setup Sweeper", + "movepool": ["ironhead", "kingsshield", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], + "abilities": ["Stance Change"], + "preferredTypes": ["Steel"] + } + ] + }, + "aromatisse": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["calmmind", "moonblast", "protect", "toxic", "wish"], + "abilities": ["Aroma Veil"] + } + ] + }, + "slurpuff": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "drainpunch", "playrough", "return"], + "abilities": ["Unburden"] + } + ] + }, + "malamar": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["knockoff", "rest", "sleeptalk", "superpower"], + "abilities": ["Contrary"] + }, + { + "role": "Fast Attacker", + "movepool": ["knockoff", "psychocut", "rest", "superpower"], + "abilities": ["Contrary"] + } + ] + }, + "barbaracle": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "lowkick", "razorshell", "shellsmash", "stoneedge"], + "abilities": ["Tough Claws"] + } + ] + }, + "dragalge": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "focusblast", "sludgewave", "toxicspikes"], + "abilities": ["Adaptability"] + }, + { + "role": "Wallbreaker", + "movepool": ["dracometeor", "dragonpulse", "focusblast", "sludgewave"], + "abilities": ["Adaptability"] + } + ] + }, + "clawitzer": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aurasphere", "darkpulse", "icebeam", "scald", "uturn", "waterpulse"], + "abilities": ["Mega Launcher"] + } + ] + }, + "heliolisk": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "glare", "hypervoice", "surf", "thunderbolt", "voltswitch"], + "abilities": ["Dry Skin"], + "preferredTypes": ["Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hypervoice", "raindance", "surf", "thunder"], + "abilities": ["Dry Skin"] + } + ] + }, + "tyrantrum": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragondance", "earthquake", "headsmash", "outrage", "superpower"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "aurorus": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["ancientpower", "blizzard", "earthpower", "freezedry", "haze", "stealthrock", "thunderwave"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["ancientpower", "earthpower", "freezedry", "haze", "hypervoice", "stealthrock", "thunderwave"], + "abilities": ["Refrigerate"], + "preferredTypes": ["Ground"] + } + ] + }, + "sylveon": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "hiddenpowerground", "hypervoice", "protect", "psyshock", "wish"], + "abilities": ["Pixilate"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hypervoice", "protect", "wish"], + "abilities": ["Pixilate"] + } + ] + }, + "hawlucha": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "highjumpkick", "skyattack", "substitute", "swordsdance"], + "abilities": ["Unburden"] + } + ] + }, + "dedenne": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["protect", "recycle", "thunderbolt", "toxic"], + "abilities": ["Cheek Pouch"] + }, + { + "role": "Staller", + "movepool": ["recycle", "substitute", "superfang", "thunderbolt", "toxic", "uturn"], + "abilities": ["Cheek Pouch"] + } + ] + }, + "carbink": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["lightscreen", "moonblast", "powergem", "reflect", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "goodra": { + "level": 85, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["dracometeor", "dragontail", "earthquake", "fireblast", "powerwhip", "sludgebomb"], + "abilities": ["Sap Sipper"] + } + ] + }, + "klefki": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dazzlinggleam", "foulplay", "spikes", "thunderwave"], + "abilities": ["Prankster"] + }, + { + "role": "Bulky Attacker", + "movepool": ["magnetrise", "playrough", "spikes", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "trevenant": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "earthquake", "hornleech", "rockslide", "shadowclaw", "trickroom", "woodhammer"], + "abilities": ["Natural Cure"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "hornleech", "protect", "toxic"], + "abilities": ["Harvest"] + } + ] + }, + "gourgeistsmall": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "gourgeistlarge": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "gourgeist": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "gourgeistsuper": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "avalugg": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["avalanche", "curse", "earthquake", "rapidspin", "recover"], + "abilities": ["Sturdy"] + } + ] + }, + "noivern": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["boomburst", "dracometeor", "flamethrower", "hurricane", "roost", "switcheroo", "uturn"], + "abilities": ["Infiltrator"] + } + ] + }, + "xerneas": { + "level": 64, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "geomancy", "moonblast", "psyshock"], + "abilities": ["Fairy Aura"] + } + ] + }, + "yveltal": { + "level": 70, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "oblivionwing", "roost", "suckerpunch", "taunt", "toxic", "uturn"], + "abilities": ["Dark Aura"] + } + ] + }, + "zygarde": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "extremespeed", "glare", "outrage", "substitute"], + "abilities": ["Aura Break"] + } + ] + }, + "diancie": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["diamondstorm", "earthpower", "healbell", "moonblast", "stealthrock", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "dianciemega": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "diamondstorm", "earthpower", "moonblast", "protect"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + } + ] + }, + "hoopa": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "nastyplot", "psychic", "psyshock", "shadowball", "trick"], + "abilities": ["Magician"] + } + ] + }, + "hoopaunbound": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "gunkshot", "hyperspacefury", "trick", "zenheadbutt"], + "abilities": ["Magician"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "gunkshot", "hyperspacefury", "psychic", "trick"], + "abilities": ["Magician"], + "preferredTypes": ["Psychic"] + } + ] + }, + "volcanion": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "fireblast", "sludgebomb", "steameruption", "superpower", "toxic"], + "abilities": ["Water Absorb"] + } + ] + } +} diff --git a/data/random-battles/gen6/teams.ts b/data/random-battles/gen6/teams.ts new file mode 100644 index 000000000000..dce848f40ad9 --- /dev/null +++ b/data/random-battles/gen6/teams.ts @@ -0,0 +1,1126 @@ +import {MoveCounter, TeamData} from '../gen8/teams'; +import RandomGen7Teams, {BattleFactorySpecies, ZeroAttackHPIVs} from '../gen7/teams'; +import {PRNG, PRNGSeed} from '../../../sim/prng'; +import {toID} from '../../../sim/dex'; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'recycle', 'roost', 'slackoff', 'softboiled', 'synthesis', +]; +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'poweruppunch', 'screech', 'swordsdance', +]; +// Moves which boost Special Attack: +const SPECIAL_SETUP = [ + 'calmmind', 'chargebeam', 'geomancy', 'nastyplot', 'quiverdance', 'tailglow', +]; +// Some moves that only boost Speed: +const SPEED_SETUP = [ + 'agility', 'autotomize', 'flamecharge', 'rockpolish', +]; +// Conglomerate for ease of access +const SETUP = [ + 'acidarmor', 'agility', 'autotomize', 'bellydrum', 'bulkup', 'calmmind', 'coil', 'curse', 'dragondance', 'flamecharge', + 'focusenergy', 'geomancy', 'growth', 'honeclaws', 'howl', 'irondefense', 'meditate', 'nastyplot', 'poweruppunch', + 'quiverdance', 'raindance', 'rockpolish', 'shellsmash', 'shiftgear', 'swordsdance', 'tailglow', 'workup', +]; +// Moves that shouldn't be the only STAB moves: +const NO_STAB = [ + 'aquajet', 'bulletpunch', 'clearsmog', 'dragontail', 'eruption', 'explosion', 'fakeout', 'flamecharge', + 'futuresight', 'iceshard', 'icywind', 'incinerate', 'infestation', 'machpunch', 'nuzzle', 'pluck', 'poweruppunch', + 'pursuit', 'quickattack', 'rapidspin', 'reversal', 'selfdestruct', 'shadowsneak', 'skyattack', 'skydrop', 'snarl', + 'suckerpunch', 'uturn', 'watershuriken', 'vacuumwave', 'voltswitch', 'waterspout', +]; +// Hazard-setting moves +const HAZARDS = [ + 'spikes', 'stealthrock', 'stickyweb', 'toxicspikes', +]; +// Protect and its variants +const PROTECT_MOVES = [ + 'kingsshield', 'protect', 'spikyshield', +]; +// Moves that switch the user out +const PIVOT_MOVES = [ + 'partingshot', 'uturn', 'voltswitch', +]; + +// Moves that should be paired together when possible +const MOVE_PAIRS = [ + ['lightscreen', 'reflect'], + ['sleeptalk', 'rest'], + ['protect', 'wish'], + ['spikyshield', 'wish'], + ['leechseed', 'substitute'], + ['perishsong', 'protect'], + ['solarbeam', 'sunnyday'], +]; + +/** Pokemon who always want priority STAB, and are fine with it as its only STAB move of that type */ +const PRIORITY_POKEMON = [ + 'aegislash', 'banette', 'breloom', 'cacturne', 'doublade', 'dusknoir', 'honchkrow', 'scizor', 'scizormega', 'shedinja', +]; + +export class RandomGen6Teams extends RandomGen7Teams { + randomSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + + constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { + super(format, prng); + + this.noStab = NO_STAB; + this.priorityPokemon = PRIORITY_POKEMON; + + this.moveEnforcementCheckers = { + Bug: (movePool, moves, abilities, types, counter) => ( + ['megahorn', 'pinmissile'].some(m => movePool.includes(m)) || + !counter.get('Bug') && abilities.includes('Tinted Lens') + ), + Dark: (movePool, moves, abilities, types, counter) => !counter.get('Dark'), + Dragon: (movePool, moves, abilities, types, counter) => !counter.get('Dragon'), + Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), + Fairy: (movePool, moves, abilities, types, counter) => !counter.get('Fairy'), + Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), + Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), + Flying: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Flying') && !['aerodactyl', 'aerodactylmega', 'mantine', 'murkrow'].includes(species.id) && + !movePool.includes('hiddenpowerflying') + ), + Ghost: (movePool, moves, abilities, types, counter) => !counter.get('Ghost'), + Grass: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Grass') && (species.baseStats.atk >= 100 || movePool.includes('leafstorm')) + ), + Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), + Ice: (movePool, moves, abilities, types, counter) => ( + !counter.get('Ice') || (moves.has('icebeam') && movePool.includes('freezedry')) || + abilities.includes('Refrigerate') && (movePool.includes('return') || movePool.includes('hypervoice')) + ), + Normal: movePool => movePool.includes('boomburst'), + Poison: (movePool, moves, abilities, types, counter) => !counter.get('Poison'), + Psychic: (movePool, moves, abilities, types, counter) => ( + !counter.get('Psychic') && (types.has('Fighting') || movePool.includes('calmmind')) + ), + Rock: (movePool, moves, abilities, types, counter, species) => (!counter.get('Rock') && species.baseStats.atk >= 80), + Steel: (movePool, moves, abilities, types, counter, species) => (!counter.get('Steel') && species.baseStats.atk >= 100), + Water: (movePool, moves, abilities, types, counter) => !counter.get('Water'), + }; + this.cachedStatusMoves = this.dex.moves.all() + .filter(move => move.category === 'Status') + .map(move => move.id); + } + + cullMovePool( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): void { + // Pokemon cannot have multiple Hidden Powers in any circumstance + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + if (hasHiddenPower) { + let movePoolHasHiddenPower = true; + while (movePoolHasHiddenPower) { + movePoolHasHiddenPower = false; + for (const moveid of movePool) { + if (moveid.startsWith('hiddenpower')) { + this.fastPop(movePool, movePool.indexOf(moveid)); + movePoolHasHiddenPower = true; + break; + } + } + } + } + + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there is not room for them both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Team-based move culls + if (teamDetails.screens && movePool.length >= this.maxMoveCount + 2) { + if (movePool.includes('reflect')) this.fastPop(movePool, movePool.indexOf('reflect')); + if (movePool.includes('lightscreen')) this.fastPop(movePool, movePool.indexOf('lightscreen')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stickyWeb) { + if (movePool.includes('stickyweb')) this.fastPop(movePool, movePool.indexOf('stickyweb')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stealthRock) { + if (movePool.includes('stealthrock')) this.fastPop(movePool, movePool.indexOf('stealthrock')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.defog || teamDetails.rapidSpin) { + if (movePool.includes('defog')) this.fastPop(movePool, movePool.indexOf('defog')); + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.toxicSpikes) { + if (movePool.includes('toxicspikes')) this.fastPop(movePool, movePool.indexOf('toxicspikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.spikes && teamDetails.spikes >= 2) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.statusCure) { + if (movePool.includes('aromatherapy')) this.fastPop(movePool, movePool.indexOf('aromatherapy')); + if (movePool.includes('healbell')) this.fastPop(movePool, movePool.indexOf('healbell')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + // Develop additional move lists + const badWithSetup = ['defog', 'dragontail', 'haze', 'healbell', 'nuzzle', 'pursuit', 'rapidspin', 'toxic']; + const statusMoves = this.cachedStatusMoves; + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [statusMoves, ['healingwish', 'memento', 'switcheroo', 'trick']], + [SETUP, PIVOT_MOVES], + [SETUP, HAZARDS], + [SETUP, badWithSetup], + [PHYSICAL_SETUP, PHYSICAL_SETUP], + [SPEED_SETUP, 'quickattack'], + ['defog', HAZARDS], + [['fakeout', 'uturn'], ['switcheroo', 'trick']], + ['substitute', PIVOT_MOVES], + ['leechseed', 'dragontail'], + ['rest', 'substitute'], + [PHYSICAL_SETUP, 'dracometeor'], + [SPECIAL_SETUP, 'knockoff'], + + // These attacks are redundant with each other + ['psychic', 'psyshock'], + ['scald', ['hydropump', 'originpulse', 'waterpulse']], + ['return', ['bodyslam', 'doubleedge']], + [['fierydance', 'lavaplume'], ['fireblast', 'magmastorm']], + [['flamethrower', 'flareblitz'], ['fireblast', 'overheat']], + ['hornleech', 'woodhammer'], + [['gigadrain', 'leafstorm'], ['leafstorm', 'petaldance', 'powerwhip']], + ['wildcharge', 'thunderbolt'], + ['gunkshot', 'poisonjab'], + [['drainpunch', 'focusblast'], ['closecombat', 'highjumpkick', 'superpower']], + ['stoneedge', 'headsmash'], + ['dracometeor', 'dragonpulse'], + ['dragonclaw', 'outrage'], + ['knockoff', ['darkpulse', 'foulplay']], + + // Status move incompatibilities + ['toxic', 'toxicspikes'], + ['taunt', 'disable'], + ['defog', ['leechseed', 'substitute']], + + // Assorted hardcodes go here: + // Lunatone + ['moonlight', 'rockpolish'], + // Smeargle + ['nuzzle', 'whirlwind'], + // Liepard + ['copycat', 'uturn'], + // Seviper + ['switcheroo', 'suckerpunch'], + // Jirachi + ['bodyslam', 'healingwish'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + if (!types.includes('Dark') && preferredType !== 'Dark') { + this.incompatibleMoves(moves, movePool, 'knockoff', ['pursuit', 'suckerpunch']); + } + + const statusInflictingMoves = ['thunderwave', 'toxic', 'willowisp', 'yawn']; + if (!abilities.includes('Prankster') && role !== 'Staller') { + this.incompatibleMoves(moves, movePool, statusInflictingMoves, statusInflictingMoves); + } + + if (abilities.includes('Guts')) this.incompatibleMoves(moves, movePool, 'protect', 'swordsdance'); + + // Force Protect and U-turn on Beedrill-Mega + if (species.id === 'beedrillmega') { + this.incompatibleMoves(moves, movePool, 'drillrun', 'knockoff'); + } + + // Cull filler moves for otherwise fixed set Stealth Rock users + if (!teamDetails.stealthRock) { + if (species.id === 'registeel' && role === 'Staller') { + if (movePool.includes('thunderwave')) this.fastPop(movePool, movePool.indexOf('thunderwave')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (species.baseSpecies === 'Wormadam' && role === 'Staller') { + if (movePool.includes('infestation')) this.fastPop(movePool, movePool.indexOf('infestation')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + + // Generate random moveset for a given species, role, preferred type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + movePool: string[], + preferredType: string, + role: RandomTeamsTypes.Role, + ): Set { + const moves = new Set(); + let counter = this.newQueryMoves(moves, species, preferredType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, + preferredType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + // Still need to ensure that multiple Hidden Powers are not added (if maxMoveCount is increased) + while (movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + return moves; + } + + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, new Set(types), counter, species, teamDetails + ); + }; + + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Facade if Guts is a possible ability + if (movePool.includes('facade') && abilities.includes('Guts')) { + counter = this.addMove('facade', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce Blizzard, Seismic Toss, Spore, and Sticky Web + for (const moveid of ['blizzard', 'seismictoss', 'spore', 'stickyweb']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Thunder Wave on Prankster users + if (movePool.includes('thunderwave') && abilities.includes('Prankster')) { + counter = this.addMove('thunderwave', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce Shadow Sneak on Kecleon + if (movePool.includes('shadowsneak') && species.id === 'kecleon') { + counter = this.addMove('shadowsneak', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce hazard removal on Bulky Support if the team doesn't already have it + if (role === 'Bulky Support' && !teamDetails.defog && !teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) { + counter = this.addMove('rapidspin', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (movePool.includes('defog')) { + counter = this.addMove('defog', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB priority + if (['Bulky Attacker', 'Bulky Setup', 'Wallbreaker'].includes(role) || this.priorityPokemon.includes(species.id)) { + const priorityMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (types.includes(moveType) && move.priority > 0 && (move.basePower || move.basePowerCallback)) { + priorityMoves.push(moveid); + } + } + if (priorityMoves.length) { + const moveid = this.sample(priorityMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Preferred Type + if (!counter.get('preferred')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && preferredType === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } else { + // If they have no regular STAB move, enforce U-turn on Bug types. + if (movePool.includes('uturn') && types.includes('Bug')) { + counter = this.addMove('uturn', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup', 'Staller'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Staller moves + if (role === 'Staller') { + const enforcedMoves = [...PROTECT_MOVES, 'toxic']; + for (const move of enforcedMoves) { + if (movePool.includes(move)) { + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce setup + if (role.includes('Setup')) { + const setupMoves = movePool.filter(moveid => SETUP.includes(moveid)); + if (setupMoves.length) { + const moveid = this.sample(setupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size && !(moves.has('uturn') && types.includes('Bug'))) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce coverage move + if (['Fast Attacker', 'Setup Sweeper', 'Bulky Attacker', 'Wallbreaker'].includes(role)) { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + return moves; + } + + shouldCullAbility( + ability: string, + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role + ): boolean { + switch (ability) { + case 'Chlorophyll': case 'Solar Power': + return !teamDetails.sun; + case 'Hydration': case 'Swift Swim': + return !teamDetails.rain; + case 'Iron Fist': case 'Sheer Force': case 'Technician': + return !counter.get(toID(ability)); + case 'Overgrow': + return !counter.get('Grass'); + case 'Prankster': + return !counter.get('Status'); + case 'Rock Head': + return !counter.get('recoil'); + case 'Sand Force': case 'Sand Rush': + return !teamDetails.sand; + case 'Swarm': + return !counter.get('Bug'); + } + + return false; + } + + + getAbility( + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + if (abilities.length <= 1) return abilities[0]; + + // Hard-code abilities here + if (species.id === 'pangoro' && counter.get('ironfist')) return 'Iron Fist'; + if (species.id === 'tornadus' && counter.get('Status')) return 'Prankster'; + if (species.id === 'marowak' && counter.get('recoil')) return 'Rock Head'; + if (species.id === 'kingler' && counter.get('sheerforce')) return 'Sheer Force'; + if (species.id === 'golduck' && teamDetails.rain) return 'Swift Swim'; + if (species.id === 'roserade' && counter.get('technician')) return 'Technician'; + + const abilityAllowed: string[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilities) { + if (!this.shouldCullAbility( + ability, types, moves, abilities, counter, movePool, teamDetails, species, preferredType, role + )) { + abilityAllowed.push(ability); + } + } + + // Pick a random allowed ability + if (abilityAllowed.length >= 1) return this.sample(abilityAllowed); + + // If all abilities are rejected, prioritize weather abilities over non-weather abilities + if (!abilityAllowed.length) { + const weatherAbilities = abilities.filter( + a => ['Chlorophyll', 'Hydration', 'Sand Force', 'Sand Rush', 'Solar Power', 'Swift Swim'].includes(a) + ); + if (weatherAbilities.length) return this.sample(weatherAbilities); + } + + // Pick a random ability + return this.sample(abilities); + } + + getPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string | undefined { + if (species.requiredItems) return this.sample(species.requiredItems); + if (role === 'AV Pivot') return 'Assault Vest'; + if (species.name === 'Farfetch\u2019d') return 'Stick'; + if (species.name === 'Latias' || species.name === 'Latios') return 'Soul Dew'; + if (species.name === 'Marowak') return 'Thick Club'; + if (species.name === 'Pikachu') return 'Light Ball'; + if (species.name === 'Shedinja' || species.name === 'Smeargle') return 'Focus Sash'; + if (species.name === 'Talonflame') return 'Sharp Beak'; + if (species.name === 'Unfezant' || moves.has('focusenergy')) return 'Scope Lens'; + if (species.name === 'Unown') return 'Choice Specs'; + if (species.name === 'Wobbuffet') return 'Custap Berry'; + if (species.name === 'Shuckle') return 'Mental Herb'; + if (ability === 'Harvest' || ability === 'Cheek Pouch') return 'Sitrus Berry'; + if (species.name === 'Ditto') return 'Choice Scarf'; + if (ability === 'Poison Heal') return 'Toxic Orb'; + if (ability === 'Speed Boost') return 'Life Orb'; + if (species.nfe) return (species.name === 'Scyther' && role === 'Fast Attacker') ? 'Choice Band' : 'Eviolite'; + if (['healingwish', 'memento', 'switcheroo', 'trick'].some(m => moves.has(m))) { + if (species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && role !== 'Wallbreaker') { + return 'Choice Scarf'; + } else { + return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; + } + } + if (moves.has('bellydrum')) return 'Sitrus Berry'; + if (moves.has('waterspout')) return 'Choice Scarf'; + if (moves.has('geomancy') || moves.has('skyattack')) return 'Power Herb'; + if (moves.has('shellsmash')) { + return (ability === 'Solid Rock' && !!counter.get('priority')) ? 'Weakness Policy' : 'White Herb'; + } + if (moves.has('psychoshift')) return 'Flame Orb'; + if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk') && species.id !== 'stoutland') { + return species.name === 'Conkeldurr' ? 'Flame Orb' : 'Toxic Orb'; + } + if (ability === 'Magic Guard') return moves.has('counter') ? 'Focus Sash' : 'Life Orb'; + if (species.id === 'rampardos' && role === 'Fast Attacker') return 'Choice Scarf'; + if (ability === 'Sheer Force' && counter.get('sheerforce')) return 'Life Orb'; + if (ability === 'Unburden') return (species.id === 'hitmonlee') ? 'White Herb' : 'Sitrus Berry'; + if (moves.has('acrobatics')) return ''; + if (moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; + if (moves.has('rest') && !moves.has('sleeptalk') && !['Hydration', 'Natural Cure', 'Shed Skin'].includes(ability)) { + return 'Chesto Berry'; + } + if (role === 'Staller') return 'Leftovers'; + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; + + const scarfReqs = ( + role !== 'Wallbreaker' && + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && + !counter.get('priority') && !moves.has('pursuit') + ); + + if ( + moves.has('pursuit') && moves.has('suckerpunch') && counter.get('Dark') && !this.priorityPokemon.includes(species.id) + ) return 'Black Glasses'; + if (counter.get('Special') === 4) { + return ( + scarfReqs && species.baseStats.spa >= 90 && this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Specs'; + } + if (counter.get('Special') === 3 && moves.has('uturn')) return 'Choice Specs'; + if (counter.get('Physical') === 4 && species.id !== 'jirachi' && + ['dragontail', 'fakeout', 'flamecharge', 'nuzzle', 'rapidspin'].every(m => !moves.has(m)) + ) { + return ( + scarfReqs && (species.baseStats.atk >= 100 || ability === 'Pure Power' || ability === 'Huge Power') && + this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Band'; + } + + if (ability === 'Sturdy' && moves.has('explosion') && !counter.get('speedsetup')) return 'Custap Berry'; + if (types.includes('Normal') && moves.has('fakeout') && !!counter.get('Normal')) return 'Silk Scarf'; + if (role === 'Bulky Setup' && !!counter.get('speedsetup') && !moves.has('swordsdance')) { + return 'Weakness Policy'; + } + if (species.id === 'palkia') return 'Lustrous Orb'; + if (species.id === 'archeops') return 'Expert Belt'; + if (!counter.get('Status') && ( + ['Fast Support', 'Bulky Support', 'Bulky Attacker'].some(m => role === m) || moves.has('rapidspin') + )) { + return 'Assault Vest'; + } + if (moves.has('outrage') && counter.get('setup')) return 'Lum Berry'; + if ( + (ability === 'Rough Skin') || ( + species.id !== 'hooh' && + ability === 'Regenerator' && species.baseStats.hp + species.baseStats.def >= 180 && this.randomChance(1, 2) + ) || ( + ability !== 'Regenerator' && !counter.get('setup') && counter.get('recovery') && + this.dex.getEffectiveness('Fighting', species) < 1 && + (species.baseStats.hp + species.baseStats.def) > 200 && this.randomChance(1, 2) + ) + ) return 'Rocky Helmet'; + if (['kingsshield', 'protect', 'spikyshield', 'substitute'].some(m => moves.has(m))) return 'Leftovers'; + if ( + this.dex.getEffectiveness('Ground', species) >= 2 && + ability !== 'Levitate' + ) { + return 'Air Balloon'; + } + if ( + (role === 'Fast Support' || moves.has('stickyweb')) && isLead && defensiveStatTotal < 255 && + !counter.get('recovery') && (counter.get('hazards') || counter.get('setup')) && + (!counter.get('recoil') || ability === 'Rock Head') + ) return 'Focus Sash'; + + // Default Items + if (role === 'Fast Support') { + return ( + counter.get('Physical') + counter.get('Special') >= 3 && + ['nuzzle', 'rapidspin', 'uturn', 'voltswitch'].every(m => !moves.has(m)) && + this.dex.getEffectiveness('Rock', species) < 2 + ) ? 'Life Orb' : 'Leftovers'; + } + if (!counter.get('Status')) { + return ( + (moves.has('uturn') || moves.has('voltswitch')) && !counter.get('Dragon') && !counter.get('Normal') + ) ? 'Expert Belt' : 'Life Orb'; + } + if ( + ['Fast Attacker', 'Setup Sweeper', 'Wallbreaker'].some(m => role === m) && + this.dex.getEffectiveness('Rock', species) < 2 && ability !== 'Sturdy' + ) return 'Life Orb'; + return 'Leftovers'; + } + + randomSet( + species: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false + ): RandomTeamsTypes.RandomSet { + species = this.dex.species.get(species); + const forme = this.getForme(species); + const sets = this.randomSets[species.id]["sets"]; + const possibleSets = []; + for (const set of sets) possibleSets.push(set); + const set = this.sampleIfArray(possibleSets); + const role = set.role; + const movePool: string[] = Array.from(set.movepool); + const preferredTypes = set.preferredTypes; + const preferredType = this.sampleIfArray(preferredTypes) || ''; + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const baseAbilities = set.abilities!; + // Use the mega's ability for moveset generation + const abilities = (species.battleOnly && !species.requiredAbility) ? Object.values(species.abilities) : baseAbilities; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, movePool, + preferredType, role); + const counter = this.newQueryMoves(moves, species, preferredType, abilities); + + // Get ability + ability = this.getAbility(new Set(types), moves, baseAbilities, counter, movePool, teamDetails, species, + preferredType, role); + + // Get items + item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + if (item === undefined) { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + } + + // For Trick / Switcheroo + if (item === 'Leftovers' && types.includes('Poison')) { + item = 'Black Sludge'; + } + + const level = this.getLevel(species); + + // Minimize confusion damage, including if Foul Play is its only physical attack + if ( + (!counter.get('Physical') || (counter.get('Physical') <= 1 && (moves.has('foulplay') || moves.has('rapidspin')))) && + !moves.has('copycat') && !moves.has('transform') + ) { + evs.atk = 0; + ivs.atk = 0; + } + + // We use a special variable to track Hidden Power + // so that we can check for all Hidden Powers at once + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + + if (hasHiddenPower) { + let hpType; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hpType = move.substr(11); + } + if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); + const HPivs = ivs.atk === 0 ? ZeroAttackHPIVs[hpType] : this.dex.types.get(hpType).HPivs; + let iv: StatID; + for (iv in HPivs) { + ivs[iv] = HPivs[iv]!; + } + } + + // Prepare optimal HP + const srImmunity = ability === 'Magic Guard'; + const srWeakness = srImmunity ? 0 : this.dex.getEffectiveness('Rock', species); + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if (moves.has('substitute') && !['Black Sludge', 'Leftovers'].includes(item)) { + if (item === 'Sitrus Berry') { + // Two Substitutes should activate Sitrus Berry + if (hp % 4 === 0) break; + } else { + // Should be able to use Substitute four times from full HP without fainting + if (hp % 4 > 0) break; + } + } else if (moves.has('bellydrum') && item === 'Sitrus Berry') { + // Belly Drum should activate Sitrus Berry + if (hp % 2 === 0) break; + } else if (['highjumpkick', 'jumpkick'].some(m => moves.has(m))) { + // Crash damage move users want an odd HP to survive two misses + if (hp % 2 > 0) break; + } else { + // Maximize number of Stealth Rock switch-ins + if (srWeakness <= 0 || ability === 'Regenerator') break; + if (srWeakness === 1 && ['Black Sludge', 'Leftovers', 'Life Orb'].includes(item)) break; + if (item !== 'Sitrus Berry' && hp % (4 / srWeakness) > 0) break; + // Minimise number of Stealth Rock switch-ins to activate Sitrus Berry + if (item === 'Sitrus Berry' && hp % (4 / srWeakness) === 0) break; + } + evs.hp -= 4; + } + + if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { + evs.spe = 0; + ivs.spe = (hasHiddenPower && level < 100) ? ivs.spe - 30 : 0; + } + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + + return { + name: species.baseSpecies, + species: forme, + gender: species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + role, + }; + } + + randomFactorySets: {[format: string]: {[species: string]: BattleFactorySpecies}} = require('./factory-sets.json'); + + randomFactorySet( + species: Species, + teamData: RandomTeamsTypes.FactoryTeamDetails, + tier: string + ): RandomTeamsTypes.RandomFactorySet | null { + const id = toID(species.name); + // const flags = this.randomFactorySets[tier][id].flags; + const setList = this.randomFactorySets[tier][id].sets; + + const itemsMax: {[k: string]: number} = {choicespecs: 1, choiceband: 1, choicescarf: 1}; + const movesMax: {[k: string]: number} = { + rapidspin: 1, batonpass: 1, stealthrock: 1, defog: 1, spikes: 1, toxicspikes: 1, + }; + const requiredMoves: {[k: string]: string} = {stealthrock: 'hazardSet', rapidspin: 'hazardClear', defog: 'hazardClear'}; + const weatherAbilitiesRequire: {[k: string]: string} = { + hydration: 'raindance', swiftswim: 'raindance', + leafguard: 'sunnyday', solarpower: 'sunnyday', chlorophyll: 'sunnyday', + sandforce: 'sandstorm', sandrush: 'sandstorm', sandveil: 'sandstorm', + snowcloak: 'hail', + }; + const weatherAbilities = ['drizzle', 'drought', 'snowwarning', 'sandstream']; + + // Build a pool of eligible sets, given the team partners + // Also keep track of sets with moves the team requires + let effectivePool: {set: AnyObject, moveVariants?: number[], itemVariants?: number, abilityVariants?: number}[] = []; + const priorityPool = []; + for (const curSet of setList) { + if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; + + const itemData = this.dex.items.get(curSet.item); + if (teamData.megaCount && teamData.megaCount > 0 && itemData.megaStone) continue; // reject 2+ mega stones + if (itemsMax[itemData.id] && teamData.has[itemData.id] >= itemsMax[itemData.id]) continue; + + const abilityState = this.dex.abilities.get(curSet.ability); + if (weatherAbilitiesRequire[abilityState.id] && teamData.weather !== weatherAbilitiesRequire[abilityState.id]) continue; + if (teamData.weather && weatherAbilities.includes(abilityState.id)) continue; // reject 2+ weather setters + + let reject = false; + let hasRequiredMove = false; + const curSetVariants = []; + for (const move of curSet.moves) { + const variantIndex = this.random(move.length); + const moveId = toID(move[variantIndex]); + if (movesMax[moveId] && teamData.has[moveId] >= movesMax[moveId]) { + reject = true; + break; + } + if (requiredMoves[moveId] && !teamData.has[requiredMoves[moveId]]) { + hasRequiredMove = true; + } + curSetVariants.push(variantIndex); + } + if (reject) continue; + effectivePool.push({set: curSet, moveVariants: curSetVariants}); + if (hasRequiredMove) priorityPool.push({set: curSet, moveVariants: curSetVariants}); + } + if (priorityPool.length) effectivePool = priorityPool; + + if (!effectivePool.length) { + if (!teamData.forceResult) return null; + for (const curSet of setList) { + effectivePool.push({set: curSet}); + } + } + + const setData = this.sample(effectivePool); + const moves = []; + for (const [i, moveSlot] of setData.set.moves.entries()) { + moves.push(setData.moveVariants ? moveSlot[setData.moveVariants[i]] : this.sample(moveSlot)); + } + + return { + name: setData.set.name || species.baseSpecies, + species: setData.set.species, + gender: setData.set.gender || species.gender || (this.randomChance(1, 2) ? 'M' : 'F'), + item: setData.set.item || '', + ability: setData.set.ability || species.abilities['0'], + shiny: typeof setData.set.shiny === 'undefined' ? this.randomChance(1, 1024) : setData.set.shiny, + level: this.adjustLevel || 100, + happiness: typeof setData.set.happiness === 'undefined' ? 255 : setData.set.happiness, + evs: setData.set.evs || {hp: 84, atk: 84, def: 84, spa: 84, spd: 84, spe: 84}, + ivs: setData.set.ivs || {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}, + nature: setData.set.nature || 'Serious', + moves: moves, + }; + } + + randomFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { + this.enforceNoDirectCustomBanlistChanges(); + + const forceResult = (depth >= 12); + + // The teams generated depend on the tier choice in such a way that + // no exploitable information is leaked from rolling the tier in getTeam(p1). + if (!this.factoryTier) this.factoryTier = this.sample(['Uber', 'OU', 'UU', 'RU', 'NU', 'PU']); + const chosenTier = this.factoryTier; + + const pokemon = []; + + const pokemonPool = Object.keys(this.randomFactorySets[chosenTier]); + + const teamData: TeamData = { + typeCount: {}, typeComboCount: {}, baseFormes: {}, megaCount: 0, has: {}, forceResult, + weaknesses: {}, resistances: {}, + }; + const requiredMoveFamilies = ['hazardSet', 'hazardClear']; + const requiredMoves: {[k: string]: string} = {stealthrock: 'hazardSet', rapidspin: 'hazardClear', defog: 'hazardClear'}; + const weatherAbilitiesSet: {[k: string]: string} = { + drizzle: 'raindance', drought: 'sunnyday', snowwarning: 'hail', sandstream: 'sandstorm', + }; + const resistanceAbilities: {[k: string]: string[]} = { + dryskin: ['Water'], waterabsorb: ['Water'], stormdrain: ['Water'], + flashfire: ['Fire'], heatproof: ['Fire'], + lightningrod: ['Electric'], motordrive: ['Electric'], voltabsorb: ['Electric'], + sapsipper: ['Grass'], + thickfat: ['Ice', 'Fire'], + levitate: ['Ground'], + }; + + while (pokemonPool.length && pokemon.length < this.maxTeamSize) { + const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); + if (!species.exists) continue; + + const speciesFlags = this.randomFactorySets[chosenTier][species.id].flags; + + // Limit to one of each species (Species Clause) + if (teamData.baseFormes[species.baseSpecies]) continue; + + // Limit the number of Megas to one + if (!teamData.megaCount) teamData.megaCount = 0; + if (teamData.megaCount >= 1 && speciesFlags.megaOnly) continue; + + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + // Limit 2 of any type + const types = species.types; + let skip = false; + for (const type of types) { + if (teamData.typeCount[type] >= 2 * limitFactor && this.randomChance(4, 5)) { + skip = true; + break; + } + } + if (skip) continue; + + const set = this.randomFactorySet(species, teamData, chosenTier); + if (!set) continue; + + // Limit 1 of any type combination + let typeCombo = types.slice().sort().join(); + if (set.ability === 'Drought' || set.ability === 'Drizzle') { + // Drought and Drizzle don't count towards the type combo limit + typeCombo = set.ability; + } + if (teamData.typeComboCount[typeCombo] >= 1 * limitFactor) continue; + + // Okay, the set passes, add it to our team + pokemon.push(set); + + // Now that our Pokemon has passed all checks, we can update team data: + for (const type of types) { + if (type in teamData.typeCount) { + teamData.typeCount[type]++; + } else { + teamData.typeCount[type] = 1; + } + } + teamData.typeComboCount[typeCombo] = (teamData.typeComboCount[typeCombo] + 1) || 1; + + teamData.baseFormes[species.baseSpecies] = 1; + + const itemData = this.dex.items.get(set.item); + if (itemData.megaStone) teamData.megaCount++; + if (itemData.id in teamData.has) { + teamData.has[itemData.id]++; + } else { + teamData.has[itemData.id] = 1; + } + + const abilityState = this.dex.abilities.get(set.ability); + if (abilityState.id in weatherAbilitiesSet) { + teamData.weather = weatherAbilitiesSet[abilityState.id]; + } + + for (const move of set.moves) { + const moveId = toID(move); + if (moveId in teamData.has) { + teamData.has[moveId]++; + } else { + teamData.has[moveId] = 1; + } + if (moveId in requiredMoves) { + teamData.has[requiredMoves[moveId]] = 1; + } + } + + for (const typeName of this.dex.types.names()) { + // Cover any major weakness (3+) with at least one resistance + if (teamData.resistances[typeName] >= 1) continue; + if (resistanceAbilities[abilityState.id]?.includes(typeName) || !this.dex.getImmunity(typeName, types)) { + // Heuristic: assume that Pokemon with these abilities don't have (too) negative typing. + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + continue; + } + const typeMod = this.dex.getEffectiveness(typeName, types); + if (typeMod < 0) { + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + } else if (typeMod > 0) { + teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; + } + } + } + if (pokemon.length < this.maxTeamSize) return this.randomFactoryTeam(side, ++depth); + + // Quality control + if (!teamData.forceResult) { + for (const requiredFamily of requiredMoveFamilies) { + if (!teamData.has[requiredFamily]) return this.randomFactoryTeam(side, ++depth); + } + for (const type in teamData.weaknesses) { + if (teamData.weaknesses[type] >= 3) return this.randomFactoryTeam(side, ++depth); + } + } + + return pokemon; + } +} + +export default RandomGen6Teams; diff --git a/data/mods/gen7/bss-factory-sets.json b/data/random-battles/gen7/bss-factory-sets.json similarity index 100% rename from data/mods/gen7/bss-factory-sets.json rename to data/random-battles/gen7/bss-factory-sets.json diff --git a/data/mods/gen7/factory-sets.json b/data/random-battles/gen7/factory-sets.json similarity index 99% rename from data/mods/gen7/factory-sets.json rename to data/random-battles/gen7/factory-sets.json index 16aff626df9a..b2e9a49749cb 100644 --- a/data/mods/gen7/factory-sets.json +++ b/data/random-battles/gen7/factory-sets.json @@ -1427,10 +1427,10 @@ "moves": [["Spikes"], ["Toxic Spikes"], ["Taunt"], ["Ice Beam"]] }] }, - "greninjaash": { + "greninjabond": { "flags": {}, "sets": [{ - "species": "Greninja", + "species": "Greninja-Bond", "gender": "M", "item": ["Choice Specs"], "ability": ["Battle Bond"], @@ -1438,7 +1438,7 @@ "nature": "Timid", "moves": [["Hydro Pump", "Surf"], ["Dark Pulse"], ["Water Shuriken"], ["Spikes"]] }, { - "species": "Greninja", + "species": "Greninja-Bond", "gender": "M", "item": ["Waterium Z"], "ability": ["Battle Bond"], diff --git a/data/random-battles/gen7/sets.json b/data/random-battles/gen7/sets.json new file mode 100644 index 000000000000..39c88d20c21c --- /dev/null +++ b/data/random-battles/gen7/sets.json @@ -0,0 +1,7653 @@ +{ + "venusaur": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"], + "abilities": ["Chlorophyll", "Overgrow"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "energyball", "knockoff", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll", "Overgrow"] + } + ] + }, + "venusaurmega": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "gigadrain", "knockoff", "sleeppowder", "sludgebomb", "synthesis"], + "abilities": ["Chlorophyll"] + } + ] + }, + "charizard": { + "level": 82, + "sets": [ + { + "role": "Z-Move user", + "movepool": ["airslash", "earthquake", "fireblast", "holdhands", "roost"], + "abilities": ["Blaze", "Solar Power"], + "preferredTypes": ["Normal"] + }, + { + "role": "Bulky Attacker", + "movepool": ["airslash", "earthquake", "fireblast", "roost", "willowisp"], + "abilities": ["Blaze", "Solar Power"] + } + ] + }, + "charizardmegax": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragonclaw", "dragondance", "earthquake", "flareblitz", "roost"], + "abilities": ["Blaze"] + } + ] + }, + "charizardmegay": { + "level": 76, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "fireblast", "roost", "solarbeam"], + "abilities": ["Blaze"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dragonpulse", "fireblast", "roost", "solarbeam"], + "abilities": ["Blaze"] + } + ] + }, + "blastoise": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "rapidspin", "roar", "scald", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["haze", "icebeam", "protect", "rapidspin", "scald", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "blastoisemega": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aurasphere", "darkpulse", "icebeam", "rapidspin", "scald"], + "abilities": ["Rain Dish"] + } + ] + }, + "butterfree": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "bugbuzz", "quiverdance", "sleeppowder"], + "abilities": ["Tinted Lens"] + }, + { + "role": "Z-Move user", + "movepool": ["airslash", "bugbuzz", "quiverdance", "sleeppowder"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Bug"] + } + ] + }, + "beedrill": { + "level": 94, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "knockoff", "poisonjab", "toxicspikes", "uturn"], + "abilities": ["Swarm"] + } + ] + }, + "beedrillmega": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["drillrun", "knockoff", "poisonjab", "swordsdance", "xscissor"], + "abilities": ["Swarm"] + }, + { + "role": "Fast Attacker", + "movepool": ["drillrun", "knockoff", "poisonjab", "uturn"], + "abilities": ["Swarm"] + } + ] + }, + "pidgeot": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "heatwave", "return", "roost", "uturn"], + "abilities": ["Big Pecks"] + } + ] + }, + "pidgeotmega": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "heatwave", "hurricane", "roost", "uturn", "workup"], + "abilities": ["Big Pecks"] + } + ] + }, + "raticate": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "protect", "stompingtantrum", "suckerpunch", "swordsdance", "uturn"], + "abilities": ["Guts"], + "preferredTypes": ["Dark"] + } + ] + }, + "raticatealola": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "knockoff", "pursuit", "return", "suckerpunch", "swordsdance"], + "abilities": ["Hustle"] + }, + { + "role": "Z-Move user", + "movepool": ["doubleedge", "knockoff", "suckerpunch", "swordsdance"], + "abilities": ["Hustle"], + "preferredTypes": ["Normal"] + } + ] + }, + "fearow": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "drillpeck", "drillrun", "return", "uturn"], + "abilities": ["Sniper"] + }, + { + "role": "Setup Sweeper", + "movepool": ["drillpeck", "drillrun", "focusenergy", "return"], + "abilities": ["Sniper"] + } + ] + }, + "arbok": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aquatail", "coil", "earthquake", "gunkshot", "suckerpunch"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["coil", "earthquake", "gunkshot", "rest"], + "abilities": ["Shed Skin"] + } + ] + }, + "pikachu": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "grassknot", "hiddenpowerice", "knockoff", "surf", "voltswitch", "volttackle"], + "abilities": ["Lightning Rod"] + } + ] + }, + "raichu": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["encore", "hiddenpowerice", "knockoff", "nastyplot", "nuzzle", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["focusblast", "grassknot", "nastyplot", "surf", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "raichualola": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "psyshock", "surf", "thunderbolt", "voltswitch"], + "abilities": ["Surge Surfer"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "nastyplot", "psyshock", "surf", "thunderbolt"], + "abilities": ["Surge Surfer"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Z-Move user", + "movepool": ["focusblast", "nastyplot", "psyshock", "surf", "thunderbolt"], + "abilities": ["Surge Surfer"], + "preferredTypes": ["Psychic"] + } + ] + }, + "sandslash": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Sand Rush"] + } + ] + }, + "sandslashalola": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "iciclecrash", "ironhead", "knockoff", "rapidspin", "stealthrock", "swordsdance"], + "abilities": ["Slush Rush"] + } + ] + }, + "nidoqueen": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "sludgewave", "stealthrock", "toxicspikes"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "nidoking": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "fireblast", "icebeam", "sludgewave", "substitute", "superpower"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "clefable": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "knockoff", "moonblast", "softboiled", "stealthrock", "thunderwave"], + "abilities": ["Magic Guard", "Unaware"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "moonblast", "softboiled"], + "abilities": ["Magic Guard", "Unaware"] + } + ] + }, + "ninetales": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["fireblast", "hiddenpowerrock", "nastyplot", "solarbeam"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["fireblast", "nastyplot", "solarbeam", "substitute", "willowisp"], + "abilities": ["Drought"], + "preferredTypes": ["Grass"] + } + ] + }, + "ninetalesalola": { + "level": 78, + "sets": [ + { + "role": "Fast Support", + "movepool": ["auroraveil", "blizzard", "encore", "freezedry", "hiddenpowerground", "moonblast", "nastyplot"], + "abilities": ["Snow Warning"] + } + ] + }, + "wigglytuff": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dazzlinggleam", "fireblast", "healbell", "knockoff", "protect", "stealthrock", "thunderwave", "wish"], + "abilities": ["Competitive"] + } + ] + }, + "vileplume": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "gigadrain", "hiddenpowerground", "sleeppowder", "sludgebomb", "strengthsap"], + "abilities": ["Effect Spore"] + } + ] + }, + "parasect": { + "level": 99, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aromatherapy", "knockoff", "leechlife", "seedbomb", "spore", "stunspore", "swordsdance"], + "abilities": ["Dry Skin"], + "preferredTypes": ["Bug"] + } + ] + }, + "venomoth": { + "level": 82, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbuzz", "quiverdance", "sleeppowder", "sludgebomb"], + "abilities": ["Tinted Lens"] + }, + { + "role": "Z-Move user", + "movepool": ["bugbuzz", "quiverdance", "roost", "sleeppowder", "sludgebomb"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Bug"] + } + ] + }, + "dugtrio": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "memento", "stealthrock", "stoneedge", "suckerpunch"], + "abilities": ["Arena Trap"] + } + ] + }, + "dugtrioalola": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "ironhead", "stealthrock", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Sand Force", "Tangling Hair"] + } + ] + }, + "persian": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "knockoff", "return", "seedbomb", "uturn"], + "abilities": ["Limber"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "fakeout", "knockoff", "return", "uturn"], + "abilities": ["Technician"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowerfighting", "hypervoice", "nastyplot", "shadowball"], + "abilities": ["Technician"] + } + ] + }, + "persianalola": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["darkpulse", "hiddenpowerfighting", "hypnosis", "nastyplot", "powergem", "thunderbolt"], + "abilities": ["Fur Coat"] + }, + { + "role": "Z-Move user", + "movepool": ["darkpulse", "hiddenpowerfighting", "hypnosis", "nastyplot", "powergem", "thunderbolt"], + "abilities": ["Fur Coat"], + "preferredTypes": ["Dark"] + } + ] + }, + "golduck": { + "level": 92, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "encore", "focusblast", "hydropump", "icebeam", "scald"], + "abilities": ["Cloud Nine", "Swift Swim"], + "preferredTypes": ["Ice"] + } + ] + }, + "primeape": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "gunkshot", "stoneedge", "throatchop", "uturn"], + "abilities": ["Defiant"] + }, + { + "role": "Setup Sweeper", + "movepool": ["closecombat", "earthquake", "gunkshot", "honeclaws", "stoneedge", "throatchop"], + "abilities": ["Defiant"], + "preferredTypes": ["Rock"] + } + ] + }, + "arcanine": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "extremespeed", "flareblitz", "morningsun", "roar", "toxic", "wildcharge", "willowisp"], + "abilities": ["Intimidate"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "extremespeed", "flareblitz", "morningsun", "wildcharge"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "poliwrath": { + "level": 91, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "icepunch", "raindance", "waterfall"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Attacker", + "movepool": ["circlethrow", "rest", "scald", "sleeptalk"], + "abilities": ["Water Absorb"] + } + ] + }, + "alakazam": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["counter", "focusblast", "psychic", "psyshock", "shadowball"], + "abilities": ["Magic Guard"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball", "substitute"], + "abilities": ["Magic Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "alakazammega": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "encore", "focusblast", "psychic", "psyshock", "shadowball", "substitute"], + "abilities": ["Magic Guard"], + "preferredTypes": ["Fighting"] + } + ] + }, + "machamp": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "bulletpunch", "dynamicpunch", "knockoff", "stoneedge"], + "abilities": ["No Guard"], + "preferredTypes": ["Dark"] + }, + { + "role": "AV Pivot", + "movepool": ["bulletpunch", "dynamicpunch", "knockoff", "stoneedge"], + "abilities": ["No Guard"] + }, + { + "role": "Wallbreaker", + "movepool": ["bulletpunch", "closecombat", "facade", "knockoff"], + "abilities": ["Guts"], + "preferredTypes": ["Dark"] + } + ] + }, + "victreebel": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["poisonjab", "powerwhip", "suckerpunch", "swordsdance"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerground", "knockoff", "powerwhip", "sleeppowder", "sludgebomb", "strengthsap", "suckerpunch"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Fast Attacker", + "movepool": ["powerwhip", "sludgebomb", "sunnyday", "weatherball"], + "abilities": ["Chlorophyll"] + } + ] + }, + "tentacruel": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "knockoff", "rapidspin", "scald", "sludgebomb", "toxicspikes"], + "abilities": ["Clear Body", "Liquid Ooze"] + } + ] + }, + "golem": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "explosion", "rockpolish", "stoneedge", "suckerpunch"], + "abilities": ["Sturdy"] + } + ] + }, + "golemalola": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["autotomize", "earthquake", "explosion", "return", "stoneedge"], + "abilities": ["Galvanize"], + "preferredTypes": ["Ground"] + } + ] + }, + "rapidash": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["flareblitz", "highhorsepower", "morningsun", "wildcharge", "willowisp"], + "abilities": ["Flame Body", "Flash Fire"] + }, + { + "role": "Wallbreaker", + "movepool": ["flareblitz", "highhorsepower", "megahorn", "morningsun", "wildcharge"], + "abilities": ["Flash Fire"] + } + ] + }, + "slowbro": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], + "abilities": ["Regenerator"] + }, + { + "role": "AV Pivot", + "movepool": ["fireblast", "futuresight", "icebeam", "psyshock", "scald"], + "abilities": ["Regenerator"] + } + ] + }, + "slowbromega": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "fireblast", "psyshock", "scald", "slackoff"], + "abilities": ["Regenerator"] + } + ] + }, + "farfetchd": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bravebird", "knockoff", "leafblade", "return", "swordsdance"], + "abilities": ["Defiant"] + } + ] + }, + "dodrio": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "jumpkick", "knockoff", "quickattack", "return", "swordsdance"], + "abilities": ["Early Bird"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Z-Move user", + "movepool": ["bravebird", "jumpkick", "knockoff", "return", "swordsdance"], + "abilities": ["Early Bird"], + "preferredTypes": ["Flying"] + } + ] + }, + "dewgong": { + "level": 94, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Support", + "movepool": ["encore", "icebeam", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "muk": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["brickbreak", "curse", "gunkshot", "haze", "icepunch", "poisonjab", "shadowsneak"], + "abilities": ["Poison Touch"], + "preferredTypes": ["Fighting"] + } + ] + }, + "mukalola": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "gunkshot", "knockoff", "recycle"], + "abilities": ["Gluttony"] + }, + { + "role": "AV Pivot", + "movepool": ["firepunch", "gunkshot", "icepunch", "knockoff", "poisonjab", "pursuit", "shadowsneak"], + "abilities": ["Poison Touch"] + } + ] + }, + "cloyster": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hydropump", "iciclespear", "rockblast", "shellsmash"], + "abilities": ["Skill Link"] + } + ] + }, + "gengar": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "painsplit", "shadowball", "sludgewave", "substitute", "trick", "willowisp"], + "abilities": ["Cursed Body"] + } + ] + }, + "gengarmega": { + "level": 78, + "sets": [ + { + "role": "Fast Support", + "movepool": ["disable", "perishsong", "protect", "shadowball", "substitute"], + "abilities": ["Cursed Body"] + }, + { + "role": "Fast Attacker", + "movepool": ["destinybond", "disable", "focusblast", "shadowball", "sludgewave", "taunt"], + "abilities": ["Cursed Body"] + } + ] + }, + "hypno": { + "level": 96, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["focusblast", "foulplay", "protect", "psychic", "thunderwave", "toxic", "wish"], + "abilities": ["Insomnia"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Insomnia"] + } + ] + }, + "kingler": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "knockoff", "liquidation", "rockslide", "superpower", "swordsdance", "xscissor"], + "abilities": ["Sheer Force"] + } + ] + }, + "electrode": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["foulplay", "hiddenpowerice", "signalbeam", "taunt", "thunderbolt", "voltswitch"], + "abilities": ["Aftermath", "Static"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Support", + "movepool": ["hiddenpowerice", "lightscreen", "reflect", "thunderbolt", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Aftermath", "Static"] + } + ] + }, + "exeggutor": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gigadrain", "hiddenpowerfire", "leechseed", "psychic", "sleeppowder", "substitute"], + "abilities": ["Harvest"], + "preferredTypes": ["Psychic"] + } + ] + }, + "exeggutoralola": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dracometeor", "flamethrower", "gigadrain", "leafstorm"], + "abilities": ["Frisk"] + }, + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "dragontail", "flamethrower", "knockoff", "moonlight", "sleeppowder", "stunspore", "woodhammer"], + "abilities": ["Harvest"], + "preferredTypes": ["Fire"] + } + ] + }, + "marowak": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Battle Armor", "Rock Head"], + "preferredTypes": ["Rock"] + } + ] + }, + "marowakalola": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "flamecharge", "flareblitz", "shadowbone", "stealthrock", "stoneedge", "swordsdance", "willowisp"], + "abilities": ["Rock Head"] + } + ] + }, + "hitmonlee": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["highjumpkick", "knockoff", "machpunch", "poisonjab", "rapidspin", "stoneedge"], + "abilities": ["Reckless"], + "preferredTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["closecombat", "curse", "knockoff", "poisonjab", "stoneedge"], + "abilities": ["Unburden"], + "preferredTypes": ["Dark"] + } + ] + }, + "hitmonchan": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "drainpunch", "icepunch", "machpunch", "rapidspin", "stoneedge", "throatchop"], + "abilities": ["Iron Fist"] + } + ] + }, + "weezing": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "painsplit", "sludgebomb", "toxicspikes", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rhydon": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "megahorn", "stealthrock", "stoneedge", "swordsdance", "toxic"], + "abilities": ["Lightning Rod"] + } + ] + }, + "chansey": { + "level": 86, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "kangaskhan": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["doubleedge", "drainpunch", "earthquake", "fakeout", "return", "suckerpunch"], + "abilities": ["Scrappy"] + }, + { + "role": "AV Pivot", + "movepool": ["drainpunch", "earthquake", "fakeout", "return", "suckerpunch"], + "abilities": ["Scrappy"] + } + ] + }, + "kangaskhanmega": { + "level": 76, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bodyslam", "crunch", "fakeout", "seismictoss", "suckerpunch"], + "abilities": ["Scrappy"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bodyslam", "crunch", "earthquake", "poweruppunch", "return", "suckerpunch"], + "abilities": ["Scrappy"], + "preferredTypes": ["Ground"] + } + ] + }, + "seaking": { + "level": 94, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["drillrun", "icebeam", "knockoff", "megahorn", "waterfall"], + "abilities": ["Lightning Rod"], + "preferredTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["drillrun", "icebeam", "knockoff", "megahorn", "raindance", "waterfall"], + "abilities": ["Swift Swim"], + "preferredTypes": ["Dark"] + } + ] + }, + "starmie": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hydropump", "icebeam", "psyshock", "recover", "thunderbolt"], + "abilities": ["Analytic"] + }, + { + "role": "Bulky Support", + "movepool": ["psyshock", "rapidspin", "recover", "scald", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "mrmime": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dazzlinggleam", "encore", "focusblast", "healingwish", "nastyplot", "psychic", "psyshock", "shadowball"], + "abilities": ["Filter"], + "preferredTypes": ["Psychic"] + } + ] + }, + "scyther": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "brickbreak", "knockoff", "pursuit", "uturn"], + "abilities": ["Technician"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aerialace", "brickbreak", "bugbite", "knockoff", "roost", "swordsdance"], + "abilities": ["Technician"] + } + ] + }, + "jynx": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "icebeam", "lovelykiss", "psychic", "psyshock", "trick"], + "abilities": ["Dry Skin"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psyshock"], + "abilities": ["Dry Skin"] + } + ] + }, + "pinsir": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Moxie"], + "preferredTypes": ["Ground"] + } + ] + }, + "pinsirmega": { + "level": 74, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["closecombat", "earthquake", "quickattack", "return", "swordsdance"], + "abilities": ["Moxie"] + } + ] + }, + "tauros": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bodyslam", "earthquake", "fireblast", "rockslide", "zenheadbutt"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "earthquake", "stoneedge", "zenheadbutt"], + "abilities": ["Intimidate"] + } + ] + }, + "gyarados": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "substitute", "waterfall"], + "abilities": ["Intimidate", "Moxie"] + }, + { + "role": "Z-Move user", + "movepool": ["bounce", "dragondance", "earthquake", "waterfall"], + "abilities": ["Moxie"], + "preferredTypes": ["Flying"] + } + ] + }, + "gyaradosmega": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "earthquake", "substitute", "waterfall"], + "abilities": ["Intimidate"] + } + ] + }, + "lapras": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["freezedry", "healbell", "hydropump", "icebeam", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["freezedry", "hydropump", "protect", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "ditto": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["transform"], + "abilities": ["Imposter"] + } + ] + }, + "vaporeon": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "protect", "scald", "wish"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["protect", "scald", "toxic", "wish"], + "abilities": ["Water Absorb"] + } + ] + }, + "jolteon": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "shadowball", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerice", "signalbeam", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "flareon": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["facade", "flamecharge", "flareblitz", "quickattack", "superpower"], + "abilities": ["Guts"] + } + ] + }, + "omastar": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"], + "abilities": ["Shell Armor", "Swift Swim"] + } + ] + }, + "kabutops": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["aquajet", "knockoff", "liquidation", "rapidspin", "stoneedge"], + "abilities": ["Battle Armor", "Swift Swim"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aquajet", "knockoff", "liquidation", "stoneedge", "swordsdance"], + "abilities": ["Weak Armor"] + }, + { + "role": "Z-Move user", + "movepool": ["aquajet", "knockoff", "liquidation", "stoneedge", "swordsdance"], + "abilities": ["Weak Armor"], + "preferredTypes": ["Rock"] + } + ] + }, + "aerodactyl": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "roost", "stealthrock", "stoneedge", "taunt", "toxic"], + "abilities": ["Unnerve"] + }, + { + "role": "Fast Support", + "movepool": ["aerialace", "aquatail", "defog", "earthquake", "pursuit", "roost", "stealthrock", "stoneedge"], + "abilities": ["Unnerve"], + "preferredTypes": ["Ground"] + }, + { + "role": "Z-Move user", + "movepool": ["earthquake", "honeclaws", "skyattack", "stoneedge"], + "abilities": ["Unnerve"], + "preferredTypes": ["Flying"] + } + ] + }, + "aerodactylmega": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "aquatail", "earthquake", "honeclaws", "roost", "stoneedge"], + "abilities": ["Unnerve"], + "preferredTypes": ["Ground"] + } + ] + }, + "snorlax": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "crunch", "curse", "earthquake", "rest", "return", "sleeptalk"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "crunch", "curse", "earthquake", "recycle", "return"], + "abilities": ["Gluttony"] + } + ] + }, + "articuno": { + "level": 86, + "sets": [ + { + "role": "Staller", + "movepool": ["freezedry", "roost", "substitute", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Support", + "movepool": ["freezedry", "hurricane", "roost", "substitute", "toxic"], + "abilities": ["Pressure"] + } + ] + }, + "zapdos": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "discharge", "heatwave", "hiddenpowerice", "roost", "toxic", "uturn"], + "abilities": ["Static"] + } + ] + }, + "moltres": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "fireblast", "hurricane", "roost", "toxic", "uturn", "willowisp"], + "abilities": ["Flame Body"] + } + ] + }, + "dragonite": { + "level": 72, + "sets": [ + { + "role": "Z-Move user", + "movepool": ["dragondance", "earthquake", "fly", "outrage"], + "abilities": ["Multiscale"], + "preferredTypes": ["Flying"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "ironhead", "outrage", "roost"], + "abilities": ["Multiscale"], + "preferredTypes": ["Ground"] + } + ] + }, + "mewtwo": { + "level": 72, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"], + "abilities": ["Unnerve"] + } + ] + }, + "mewtwomegax": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "drainpunch", "stoneedge", "taunt", "zenheadbutt"], + "abilities": ["Unnerve"] + } + ] + }, + "mewtwomegay": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "calmmind", "fireblast", "psystrike", "recover", "shadowball"], + "abilities": ["Unnerve"] + } + ] + }, + "mew": { + "level": 80, + "sets": [ + { + "role": "Staller", + "movepool": ["defog", "knockoff", "psychic", "roost", "stealthrock", "taunt", "uturn", "willowisp"], + "abilities": ["Synchronize"] + }, + { + "role": "Z-Move user", + "movepool": ["aurasphere", "earthpower", "fireblast", "nastyplot", "psychic", "roost"], + "abilities": ["Synchronize"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "leechlife", "swordsdance", "zenheadbutt"], + "abilities": ["Synchronize"] + } + ] + }, + "meganium": { + "level": 91, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "dragontail", "earthquake", "energyball", "leechseed", "synthesis", "toxic"], + "abilities": ["Overgrow"] + } + ] + }, + "typhlosion": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["eruption", "fireblast", "focusblast", "hiddenpowergrass", "hiddenpowerrock"], + "abilities": ["Flash Fire"] + } + ] + }, + "feraligatr": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "earthquake", "icepunch", "liquidation"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Ice"] + } + ] + }, + "furret": { + "level": 94, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "doubleedge", "firepunch", "knockoff", "trick", "uturn"], + "abilities": ["Frisk"], + "preferredTypes": ["Dark"] + }, + { + "role": "Bulky Setup", + "movepool": ["coil", "irontail", "knockoff", "return"], + "abilities": ["Frisk"] + } + ] + }, + "noctowl": { + "level": 94, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "hurricane", "hypervoice", "roost", "toxic"], + "abilities": ["Tinted Lens"] + } + ] + }, + "ledian": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "defog", "encore", "focusblast", "knockoff", "roost", "toxic"], + "abilities": ["Early Bird"] + } + ] + }, + "ariados": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["megahorn", "poisonjab", "stickyweb", "suckerpunch", "toxicspikes"], + "abilities": ["Insomnia", "Swarm"] + } + ] + }, + "crobat": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "roost", "superfang", "taunt", "toxic", "uturn"], + "abilities": ["Infiltrator"] + } + ] + }, + "lanturn": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["healbell", "icebeam", "scald", "thunderbolt", "toxic", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "xatu": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "heatwave", "psychic", "roost"], + "abilities": ["Magic Bounce"] + }, + { + "role": "Bulky Support", + "movepool": ["heatwave", "psychic", "roost", "thunderwave", "toxic", "uturn"], + "abilities": ["Magic Bounce"] + } + ] + }, + "ampharos": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["focusblast", "healbell", "hiddenpowerice", "thunderbolt", "toxic", "voltswitch"], + "abilities": ["Static"] + } + ] + }, + "ampharosmega": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["agility", "dragonpulse", "focusblast", "thunderbolt", "voltswitch"], + "abilities": ["Static"] + }, + { + "role": "Bulky Support", + "movepool": ["discharge", "dragonpulse", "focusblast", "healbell", "rest", "sleeptalk", "voltswitch"], + "abilities": ["Static"] + } + ] + }, + "bellossom": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["gigadrain", "moonblast", "quiverdance", "strengthsap"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Bulky Support", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "quiverdance", "strengthsap"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Z-Move user", + "movepool": ["gigadrain", "quiverdance", "sleeppowder", "strengthsap"], + "abilities": ["Chlorophyll"], + "preferredTypes": ["Grass"] + } + ] + }, + "azumarill": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "bellydrum", "knockoff", "liquidation", "playrough", "superpower"], + "abilities": ["Huge Power"] + } + ] + }, + "sudowoodo": { + "level": 93, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headsmash", "stealthrock", "suckerpunch", "toxic", "woodhammer"], + "abilities": ["Rock Head"], + "preferredTypes": ["Grass"] + } + ] + }, + "politoed": { + "level": 88, + "sets": [ + { + "role": "Staller", + "movepool": ["encore", "icebeam", "protect", "scald", "toxic"], + "abilities": ["Drizzle"] + }, + { + "role": "Bulky Support", + "movepool": ["encore", "icebeam", "rest", "scald", "toxic"], + "abilities": ["Drizzle"] + } + ] + }, + "jumpluff": { + "level": 89, + "sets": [ + { + "role": "Staller", + "movepool": ["acrobatics", "leechseed", "strengthsap", "substitute"], + "abilities": ["Infiltrator"] + }, + { + "role": "Bulky Attacker", + "movepool": ["acrobatics", "encore", "sleeppowder", "strengthsap", "toxic", "uturn"], + "abilities": ["Infiltrator"] + } + ] + }, + "sunflora": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "hiddenpowerfire", "hiddenpowerice", "hiddenpowerrock", "leafstorm", "sludgebomb"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthpower", "hiddenpowerfire", "solarbeam", "sunnyday"], + "abilities": ["Chlorophyll"] + } + ] + }, + "quagsire": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Unaware"] + } + ] + }, + "espeon": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "dazzlinggleam", "morningsun", "psychic", "psyshock", "shadowball", "trick"], + "abilities": ["Magic Bounce"], + "preferredTypes": ["Fairy"] + } + ] + }, + "umbreon": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["foulplay", "protect", "toxic", "wish"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Support", + "movepool": ["foulplay", "healbell", "moonlight", "toxic"], + "abilities": ["Synchronize"] + } + ] + }, + "slowking": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["fireblast", "icebeam", "nastyplot", "psyshock", "scald", "slackoff", "thunderwave", "toxic"], + "abilities": ["Regenerator"] + }, + { + "role": "AV Pivot", + "movepool": ["dragontail", "fireblast", "futuresight", "icebeam", "psyshock", "scald"], + "abilities": ["Regenerator"] + } + ] + }, + "unown": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerpsychic"], + "abilities": ["Levitate"] + } + ] + }, + "wobbuffet": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["counter", "destinybond", "encore", "mirrorcoat"], + "abilities": ["Shadow Tag"] + } + ] + }, + "girafarig": { + "level": 94, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dazzlinggleam", "nastyplot", "psychic", "psyshock", "substitute", "thunderbolt"], + "abilities": ["Sap Sipper"] + }, + { + "role": "Fast Attacker", + "movepool": ["hypervoice", "nastyplot", "psyshock", "thunderbolt"], + "abilities": ["Sap Sipper"] + } + ] + }, + "forretress": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gyroball", "rapidspin", "spikes", "stealthrock", "toxic", "voltswitch"], + "abilities": ["Sturdy"] + } + ] + }, + "dunsparce": { + "level": 95, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "glare", "headbutt", "roost"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "coil", "earthquake", "roost"], + "abilities": ["Serene Grace"] + } + ] + }, + "gligar": { + "level": 82, + "sets": [ + { + "role": "Staller", + "movepool": ["defog", "earthquake", "knockoff", "roost", "stealthrock", "toxic", "uturn"], + "abilities": ["Immunity"] + } + ] + }, + "steelix": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "ironhead", "roar", "rockslide", "stealthrock", "toxic"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Steel"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "heavyslam", "protect", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "heavyslam", "roar", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "steelixmega": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "earthquake", "heavyslam", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "granbull": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "healbell", "playrough", "thunderwave", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "qwilfish": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"], + "abilities": ["Intimidate"] + } + ] + }, + "scizor": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbite", "bulletpunch", "knockoff", "roost", "superpower", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "defog", "knockoff", "roost", "superpower", "uturn"], + "abilities": ["Technician"] + }, + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "knockoff", "pursuit", "superpower", "uturn"], + "abilities": ["Technician"] + } + ] + }, + "scizormega": { + "level": 76, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbite", "bulletpunch", "knockoff", "roost", "superpower", "swordsdance"], + "abilities": ["Light Metal"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "defog", "knockoff", "roost", "superpower", "uturn"], + "abilities": ["Light Metal"] + } + ] + }, + "shuckle": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["encore", "knockoff", "stealthrock", "stickyweb", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "heracross": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "facade", "knockoff", "swordsdance"], + "abilities": ["Guts"] + }, + { + "role": "Fast Attacker", + "movepool": ["closecombat", "knockoff", "megahorn", "stoneedge"], + "abilities": ["Moxie"] + } + ] + }, + "heracrossmega": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "earthquake", "knockoff", "pinmissile", "rockblast", "substitute", "swordsdance"], + "abilities": ["Moxie"], + "preferredTypes": ["Rock"] + } + ] + }, + "ursaring": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "protect"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["closecombat", "crunch", "facade", "swordsdance"], + "abilities": ["Quick Feet"] + } + ] + }, + "magcargo": { + "level": 94, + "sets": [ + { + "role": "Staller", + "movepool": ["ancientpower", "lavaplume", "recover", "stealthrock", "toxic"], + "abilities": ["Flame Body"] + }, + { + "role": "Z-Move user", + "movepool": ["ancientpower", "earthpower", "fireblast", "shellsmash"], + "abilities": ["Weak Armor"], + "preferredTypes": ["Fire", "Rock"] + } + ] + }, + "corsola": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["powergem", "recover", "scald", "stealthrock", "toxic"], + "abilities": ["Regenerator"] + } + ] + }, + "octillery": { + "level": 95, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["energyball", "fireblast", "gunkshot", "hydropump", "icebeam", "scald"], + "abilities": ["Sniper"] + } + ] + }, + "delibird": { + "level": 100, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "freezedry", "rapidspin", "spikes"], + "abilities": ["Insomnia", "Vital Spirit"] + } + ] + }, + "mantine": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["airslash", "defog", "haze", "roost", "scald", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "skarmory": { + "level": 78, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "whirlwind"], + "abilities": ["Sturdy"] + }, + { + "role": "Staller", + "movepool": ["bravebird", "roost", "spikes", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "houndoom": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "fireblast", "nastyplot", "sludgebomb", "suckerpunch"], + "abilities": ["Flash Fire"] + } + ] + }, + "houndoommega": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["darkpulse", "fireblast", "nastyplot", "sludgebomb", "taunt"], + "abilities": ["Flash Fire"] + } + ] + }, + "kingdra": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dracometeor", "hydropump", "icebeam", "raindance", "waterfall"], + "abilities": ["Swift Swim"] + }, + { + "role": "Fast Attacker", + "movepool": ["dragondance", "ironhead", "outrage", "waterfall"], + "abilities": ["Sniper", "Swift Swim"] + } + ] + }, + "donphan": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "porygon2": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["discharge", "icebeam", "recover", "toxic", "triattack"], + "abilities": ["Download", "Trace"] + } + ] + }, + "stantler": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "jumpkick", "megahorn", "suckerpunch", "throatchop", "thunderwave"], + "abilities": ["Intimidate"], + "preferredTypes": ["Ground"] + } + ] + }, + "smeargle": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["nuzzle", "spikes", "spore", "stealthrock", "stickyweb", "whirlwind"], + "abilities": ["Own Tempo"] + } + ] + }, + "hitmontop": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["closecombat", "earthquake", "rapidspin", "stoneedge", "suckerpunch", "toxic"], + "abilities": ["Intimidate"] + } + ] + }, + "miltank": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bodyslam", "curse", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], + "abilities": ["Sap Sipper", "Thick Fat"] + } + ] + }, + "blissey": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["protect", "seismictoss", "toxic", "wish"], + "abilities": ["Natural Cure"] + } + ] + }, + "raikou": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aurasphere", "hiddenpowerice", "thunderbolt", "voltswitch"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["aurasphere", "calmmind", "hiddenpowerice", "substitute", "thunderbolt"], + "abilities": ["Pressure"], + "preferredTypes": ["Ice"] + } + ] + }, + "entei": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "flareblitz", "sacredfire", "stompingtantrum"], + "abilities": ["Inner Focus"] + }, + { + "role": "Fast Attacker", + "movepool": ["extremespeed", "flareblitz", "sacredfire", "stoneedge"], + "abilities": ["Inner Focus"] + } + ] + }, + "suicune": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "rest", "scald", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "rest", "scald", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Staller", + "movepool": ["calmmind", "protect", "scald", "substitute"], + "abilities": ["Pressure"] + } + ] + }, + "tyranitar": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "earthquake", "fireblast", "icebeam", "pursuit", "stealthrock", "stoneedge"], + "abilities": ["Sand Stream"] + }, + { + "role": "Bulky Setup", + "movepool": ["crunch", "dragondance", "earthquake", "firepunch", "icepunch", "stoneedge"], + "abilities": ["Sand Stream"] + } + ] + }, + "tyranitarmega": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "dragondance", "earthquake", "firepunch", "icepunch", "stoneedge"], + "abilities": ["Sand Stream"] + } + ] + }, + "lugia": { + "level": 72, + "sets": [ + { + "role": "Staller", + "movepool": ["aeroblast", "earthquake", "roost", "substitute", "toxic", "whirlwind"], + "abilities": ["Multiscale"] + } + ] + }, + "hooh": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "earthquake", "roost", "sacredfire", "substitute", "toxic"], + "abilities": ["Regenerator"] + } + ] + }, + "celebi": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthpower", "gigadrain", "leafstorm", "nastyplot", "psychic", "uturn"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Support", + "movepool": ["leafstorm", "psychic", "recover", "stealthrock", "thunderwave", "uturn"], + "abilities": ["Natural Cure"] + }, + { + "role": "Z-Move user", + "movepool": ["leafstorm", "nastyplot", "psychic", "recover"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Grass"] + } + ] + }, + "sceptile": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "focusblast", "gigadrain", "hiddenpowerfire", "hiddenpowerice", "leafstorm", "rockslide"], + "abilities": ["Overgrow"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "substitute"], + "abilities": ["Overgrow"] + } + ] + }, + "sceptilemega": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragonpulse", "earthquake", "focusblast", "gigadrain", "leafstorm", "substitute"], + "abilities": ["Overgrow"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "leafblade", "outrage", "swordsdance"], + "abilities": ["Overgrow"] + } + ] + }, + "blaziken": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["flareblitz", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance"], + "abilities": ["Speed Boost"] + } + ] + }, + "blazikenmega": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["flareblitz", "highjumpkick", "knockoff", "protect", "stoneedge", "swordsdance"], + "abilities": ["Speed Boost"] + } + ] + }, + "swampert": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "icebeam", "roar", "scald", "stealthrock", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Torrent"] + } + ] + }, + "swampertmega": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "icepunch", "raindance", "superpower", "waterfall"], + "abilities": ["Damp"] + } + ] + }, + "mightyena": { + "level": 94, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "irontail", "playrough", "suckerpunch", "toxic"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fairy"] + } + ] + }, + "linoone": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "extremespeed", "stompingtantrum", "throatchop"], + "abilities": ["Gluttony"] + } + ] + }, + "beautifly": { + "level": 99, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aircutter", "bugbuzz", "hiddenpowerground", "quiverdance"], + "abilities": ["Swarm"] + } + ] + }, + "dustox": { + "level": 96, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bugbuzz", "hiddenpowerground", "quiverdance", "roost", "sludgebomb"], + "abilities": ["Shield Dust"] + }, + { + "role": "Bulky Support", + "movepool": ["bugbuzz", "defog", "roost", "toxic", "uturn"], + "abilities": ["Shield Dust"] + } + ] + }, + "ludicolo": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["gigadrain", "hydropump", "icebeam", "raindance"], + "abilities": ["Swift Swim"] + }, + { + "role": "Wallbreaker", + "movepool": ["energyball", "hydropump", "icebeam", "scald"], + "abilities": ["Swift Swim"] + } + ] + }, + "shiftry": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["defog", "knockoff", "leafstorm", "lowkick", "suckerpunch"], + "abilities": ["Chlorophyll", "Pickpocket"] + }, + { + "role": "Setup Sweeper", + "movepool": ["knockoff", "leafblade", "lowkick", "suckerpunch", "swordsdance"], + "abilities": ["Chlorophyll", "Pickpocket"] + } + ] + }, + "swellow": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "facade", "protect", "quickattack", "uturn"], + "abilities": ["Guts"] + }, + { + "role": "Wallbreaker", + "movepool": ["boomburst", "heatwave", "hurricane", "uturn"], + "abilities": ["Scrappy"] + } + ] + }, + "pelipper": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "hurricane", "knockoff", "roost", "scald", "uturn"], + "abilities": ["Drizzle"] + }, + { + "role": "Wallbreaker", + "movepool": ["hurricane", "hydropump", "scald", "uturn"], + "abilities": ["Drizzle"] + } + ] + }, + "gardevoir": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "focusblast", "healingwish", "moonblast", "psychic", "shadowball", "thunderbolt", "trick"], + "abilities": ["Trace"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "focusblast", "moonblast", "psyshock", "substitute", "willowisp"], + "abilities": ["Trace"] + } + ] + }, + "gardevoirmega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "focusblast", "hypervoice", "psyshock", "substitute", "taunt", "willowisp"], + "abilities": ["Trace"] + } + ] + }, + "masquerain": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "bugbuzz", "hydropump", "quiverdance"], + "abilities": ["Intimidate"] + }, + { + "role": "Fast Support", + "movepool": ["airslash", "bugbuzz", "roost", "scald", "stickyweb", "stunspore", "uturn"], + "abilities": ["Intimidate"] + } + ] + }, + "breloom": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletseed", "machpunch", "rocktomb", "spore", "swordsdance"], + "abilities": ["Technician"] + }, + { + "role": "Setup Sweeper", + "movepool": ["bulletseed", "machpunch", "rocktomb", "swordsdance"], + "abilities": ["Technician"] + } + ] + }, + "vigoroth": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "bulkup", "earthquake", "return", "shadowclaw", "slackoff"], + "abilities": ["Vital Spirit"] + } + ] + }, + "slaking": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "gigaimpact", "nightslash", "retaliate"], + "abilities": ["Truant"] + } + ] + }, + "ninjask": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aerialace", "leechlife", "nightslash", "swordsdance", "uturn"], + "abilities": ["Infiltrator"] + }, + { + "role": "Z-Move user", + "movepool": ["aerialace", "dig", "leechlife", "swordsdance"], + "abilities": ["Infiltrator"], + "preferredTypes": ["Ground"] + } + ] + }, + "shedinja": { + "level": 95, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["shadowclaw", "shadowsneak", "swordsdance", "willowisp", "xscissor"], + "abilities": ["Wonder Guard"] + } + ] + }, + "exploud": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["boomburst", "fireblast", "focusblast", "surf"], + "abilities": ["Scrappy"] + } + ] + }, + "hariyama": { + "level": 87, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["bulletpunch", "closecombat", "heavyslam", "knockoff", "stoneedge"], + "abilities": ["Thick Fat"], + "preferredTypes": ["Dark"] + }, + { + "role": "Wallbreaker", + "movepool": ["bulletpunch", "closecombat", "facade", "fakeout", "knockoff"], + "abilities": ["Guts"], + "preferredTypes": ["Dark"] + } + ] + }, + "delcatty": { + "level": 99, + "sets": [ + { + "role": "Fast Support", + "movepool": ["doubleedge", "fakeout", "healbell", "shadowball", "stompingtantrum", "thunderwave", "toxic"], + "abilities": ["Wonder Skin"] + } + ] + }, + "sableye": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["foulplay", "knockoff", "recover", "taunt", "toxic", "willowisp"], + "abilities": ["Prankster"] + } + ] + }, + "sableyemega": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "recover", "willowisp"], + "abilities": ["Prankster"] + } + ] + }, + "mawile": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["ironhead", "knockoff", "playrough", "stealthrock", "suckerpunch", "swordsdance"], + "abilities": ["Intimidate", "Sheer Force"] + } + ] + }, + "mawilemega": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["ironhead", "knockoff", "playrough", "suckerpunch", "swordsdance"], + "abilities": ["Intimidate"] + } + ] + }, + "aggron": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquatail", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "aggronmega": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "heavyslam", "roar", "stealthrock", "stoneedge", "thunderwave", "toxic"], + "abilities": ["Sturdy"], + "preferredTypes": ["Ground"] + } + ] + }, + "medicham": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletpunch", "highjumpkick", "icepunch", "poisonjab", "zenheadbutt"], + "abilities": ["Pure Power"] + } + ] + }, + "medichammega": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "highjumpkick", "icepunch", "thunderpunch", "zenheadbutt"], + "abilities": ["Pure Power"] + } + ] + }, + "manectric": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["flamethrower", "hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "manectricmega": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "plusle": { + "level": 95, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Lightning Rod"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Lightning Rod"] + } + ] + }, + "minun": { + "level": 94, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["encore", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Volt Absorb"], + "preferredTypes": ["Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hiddenpowerice", "nastyplot", "thunderbolt"], + "abilities": ["Volt Absorb"] + } + ] + }, + "volbeat": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "encore", "roost", "thunderwave", "uturn"], + "abilities": ["Prankster"] + }, + { + "role": "Staller", + "movepool": ["defog", "encore", "lunge", "roost", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "illumise": { + "level": 92, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bugbuzz", "defog", "encore", "roost", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "swalot": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "encore", "icebeam", "painsplit", "sludgebomb", "toxic", "yawn"], + "abilities": ["Liquid Ooze"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "sludgebomb", "toxic"], + "abilities": ["Liquid Ooze"] + } + ] + }, + "sharpedo": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "destinybond", "earthquake", "icebeam", "protect", "waterfall"], + "abilities": ["Speed Boost"] + } + ] + }, + "sharpedomega": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "icefang", "protect", "psychicfangs", "waterfall"], + "abilities": ["Speed Boost"] + } + ] + }, + "wailord": { + "level": 93, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "waterspout"], + "abilities": ["Water Veil"] + } + ] + }, + "camerupt": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "fireblast", "rockpolish", "stoneedge"], + "abilities": ["Solid Rock"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "lavaplume", "roar", "stealthrock", "toxic"], + "abilities": ["Solid Rock"] + } + ] + }, + "cameruptmega": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["ancientpower", "earthpower", "fireblast", "stealthrock", "toxic", "willowisp"], + "abilities": ["Solid Rock"] + } + ] + }, + "torkoal": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "lavaplume", "rapidspin", "solarbeam", "stealthrock", "yawn"], + "abilities": ["Drought"] + } + ] + }, + "grumpig": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["focusblast", "healbell", "psychic", "thunderwave", "toxic", "whirlwind"], + "abilities": ["Thick Fat"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "focusblast", "psychic", "psyshock", "recycle"], + "abilities": ["Gluttony"] + } + ] + }, + "spinda": { + "level": 99, + "sets": [ + { + "role": "Staller", + "movepool": ["rest", "return", "sleeptalk", "suckerpunch", "superpower", "thief"], + "abilities": ["Contrary"], + "preferredTypes": ["Fighting"] + } + ] + }, + "flygon": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragondance", "earthquake", "outrage", "stoneedge", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["defog", "dragondance", "earthquake", "outrage", "roost"], + "abilities": ["Levitate"] + }, + { + "role": "Z-Move user", + "movepool": ["dragondance", "earthquake", "outrage", "roost", "stoneedge"], + "abilities": ["Levitate"], + "preferredTypes": ["Dragon"] + } + ] + }, + "cacturne": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "focusblast", "gigadrain", "spikes", "suckerpunch"], + "abilities": ["Water Absorb"] + }, + { + "role": "Setup Sweeper", + "movepool": ["drainpunch", "seedbomb", "suckerpunch", "swordsdance"], + "abilities": ["Water Absorb"] + } + ] + }, + "altaria": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "dracometeor", "earthquake", "fireblast", "healbell", "roost", "toxic"], + "abilities": ["Natural Cure"] + } + ] + }, + "altariamega": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "return", "roost"], + "abilities": ["Natural Cure"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "earthquake", "fireblast", "healbell", "return", "roost"], + "abilities": ["Natural Cure"] + } + ] + }, + "zangoose": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "facade", "knockoff", "quickattack", "swordsdance"], + "abilities": ["Toxic Boost"], + "preferredTypes": ["Dark"] + } + ] + }, + "seviper": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "flamethrower", "gigadrain", "glare", "knockoff", "sludgewave", "suckerpunch", "switcheroo"], + "abilities": ["Infiltrator"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "poisonjab", "suckerpunch", "swordsdance"], + "abilities": ["Infiltrator"] + } + ] + }, + "lunatone": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "icebeam", "moonblast", "moonlight", "powergem", "psychic", "rockpolish"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["earthpower", "moonlight", "powergem", "psychic", "stealthrock", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "solrock": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "morningsun", "stealthrock", "stoneedge", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "whiscash": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "stoneedge", "waterfall"], + "abilities": ["Hydration", "Oblivious"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Hydration", "Oblivious"] + } + ] + }, + "crawdaunt": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crabhammer", "dragondance", "knockoff", "superpower"], + "abilities": ["Adaptability"] + } + ] + }, + "claydol": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "cradily": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "earthquake", "recover", "seedbomb", "stoneedge", "swordsdance"], + "abilities": ["Storm Drain"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "gigadrain", "recover", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Storm Drain"], + "preferredTypes": ["Grass"] + } + ] + }, + "armaldo": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "toxic", "xscissor"], + "abilities": ["Battle Armor", "Swift Swim"] + }, + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "earthquake", "knockoff", "liquidation", "stoneedge", "swordsdance", "xscissor"], + "abilities": ["Battle Armor", "Swift Swim"] + } + ] + }, + "milotic": { + "level": 84, + "sets": [ + { + "role": "Staller", + "movepool": ["dragontail", "haze", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Competitive", "Marvel Scale"] + } + ] + }, + "castform": { + "level": 99, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "fireblast", "icebeam", "return", "scald", "thunderbolt", "thunderwave"], + "abilities": ["Forecast"], + "preferredTypes": ["Water"] + } + ] + }, + "kecleon": { + "level": 90, + "sets": [ + { + "role": "Fast Support", + "movepool": ["drainpunch", "fakeout", "knockoff", "recover", "shadowsneak", "stealthrock", "suckerpunch"], + "abilities": ["Protean"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "knockoff", "recover", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Protean"] + } + ] + }, + "banette": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["gunkshot", "knockoff", "shadowclaw", "shadowsneak", "thunderwave", "willowisp"], + "abilities": ["Cursed Body", "Frisk"] + } + ] + }, + "banettemega": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "gunkshot", "knockoff", "shadowclaw", "shadowsneak", "taunt", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "tropius": { + "level": 93, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "leechseed", "protect", "substitute"], + "abilities": ["Harvest"] + } + ] + }, + "chimecho": { + "level": 94, + "sets": [ + { + "role": "Staller", + "movepool": ["defog", "healbell", "knockoff", "psychic", "recover", "toxic"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Levitate"] + } + ] + }, + "absol": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Fairy"] + } + ] + }, + "absolmega": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["irontail", "knockoff", "playrough", "pursuit", "suckerpunch", "superpower", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Fairy"] + } + ] + }, + "glalie": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "freezedry", "spikes", "superfang", "taunt"], + "abilities": ["Inner Focus"] + } + ] + }, + "glaliemega": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "explosion", "freezedry", "iceshard", "return", "spikes"], + "abilities": ["Inner Focus"], + "preferredTypes": ["Ground"] + } + ] + }, + "walrein": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["icebeam", "roar", "superfang", "surf", "toxic"], + "abilities": ["Thick Fat"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "surf", "toxic"], + "abilities": ["Thick Fat"] + } + ] + }, + "huntail": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["icebeam", "return", "shellsmash", "suckerpunch", "waterfall"], + "abilities": ["Swift Swim", "Water Veil"], + "preferredTypes": ["Ice"] + } + ] + }, + "gorebyss": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "shellsmash"], + "abilities": ["Swift Swim"] + } + ] + }, + "relicanth": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headsmash", "stealthrock", "toxic", "waterfall"], + "abilities": ["Rock Head"] + }, + { + "role": "Wallbreaker", + "movepool": ["doubleedge", "earthquake", "headsmash", "rockpolish", "waterfall"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + } + ] + }, + "luvdisc": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "scald", "substitute", "toxic"], + "abilities": ["Hydration"] + } + ] + }, + "salamence": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "outrage", "roost"], + "abilities": ["Intimidate", "Moxie"] + }, + { + "role": "Z-Move user", + "movepool": ["dragondance", "earthquake", "fly", "outrage"], + "abilities": ["Moxie"], + "preferredTypes": ["Flying"] + } + ] + }, + "salamencemega": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "dragondance", "earthquake", "return", "roost"], + "abilities": ["Intimidate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "dracometeor", "earthquake", "fireblast", "return", "roost"], + "abilities": ["Intimidate"] + } + ] + }, + "metagross": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["agility", "earthquake", "icepunch", "meteormash", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["bulletpunch", "earthquake", "explosion", "icepunch", "meteormash", "stealthrock", "thunderpunch", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Ground"] + } + ] + }, + "metagrossmega": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["agility", "earthquake", "hammerarm", "meteormash", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hammerarm", "honeclaws", "meteormash", "zenheadbutt"], + "abilities": ["Clear Body"], + "preferredTypes": ["Psychic"] + } + ] + }, + "regirock": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "drainpunch", "rest", "stoneedge"], + "abilities": ["Sturdy"] + }, + { + "role": "Bulky Support", + "movepool": ["drainpunch", "earthquake", "stealthrock", "stoneedge", "thunderwave", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "regice": { + "level": 87, + "sets": [ + { + "role": "Staller", + "movepool": ["icebeam", "protect", "thunderbolt", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Attacker", + "movepool": ["focusblast", "icebeam", "rest", "sleeptalk", "thunderbolt", "thunderwave"], + "abilities": ["Clear Body"], + "preferredTypes": ["Electric"] + }, + { + "role": "Bulky Setup", + "movepool": ["focusblast", "icebeam", "rockpolish", "thunderbolt"], + "abilities": ["Clear Body"] + } + ] + }, + "registeel": { + "level": 84, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["curse", "ironhead", "rest", "sleeptalk"], + "abilities": ["Clear Body"] + }, + { + "role": "Bulky Support", + "movepool": ["rest", "seismictoss", "sleeptalk", "toxic"], + "abilities": ["Clear Body"] + }, + { + "role": "Staller", + "movepool": ["protect", "seismictoss", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "latias": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["calmmind", "defog", "dracometeor", "healingwish", "hiddenpowerfire", "psyshock", "roost", "trick"], + "abilities": ["Levitate"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"], + "preferredTypes": ["Dragon"] + } + ] + }, + "latiasmega": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "latios": { + "level": 79, + "sets": [ + { + "role": "Fast Support", + "movepool": ["calmmind", "dracometeor", "hiddenpowerfire", "psyshock", "roost", "surf", "thunderbolt", "trick"], + "abilities": ["Levitate"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"], + "preferredTypes": ["Dragon"] + } + ] + }, + "latiosmega": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "dracometeor", "psyshock", "roost"], + "abilities": ["Levitate"] + } + ] + }, + "kyogre": { + "level": 69, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icebeam", "originpulse", "scald", "thunder", "waterspout"], + "abilities": ["Drizzle"] + } + ] + }, + "kyogreprimal": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "rest", "scald", "sleeptalk"], + "abilities": ["Drizzle"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "icebeam", "originpulse", "thunder"], + "abilities": ["Drizzle"] + } + ] + }, + "groudon": { + "level": 74, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "lavaplume", "precipiceblades", "stealthrock", "stoneedge", "thunderwave"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["firepunch", "precipiceblades", "rockpolish", "stoneedge", "swordsdance"], + "abilities": ["Drought"] + } + ] + }, + "groudonprimal": { + "level": 65, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dragontail", "lavaplume", "precipiceblades", "stealthrock", "thunderwave"], + "abilities": ["Drought"] + }, + { + "role": "Bulky Setup", + "movepool": ["firepunch", "precipiceblades", "rockpolish", "swordsdance"], + "abilities": ["Drought"] + } + ] + }, + "rayquaza": { + "level": 70, + "sets": [ + { + "role": "Z-Move user", + "movepool": ["dragonascent", "dragondance", "earthquake", "extremespeed", "vcreate"], + "abilities": ["Air Lock"], + "preferredTypes": ["Flying"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "extremespeed", "outrage", "vcreate"], + "abilities": ["Air Lock"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "extremespeed", "outrage", "swordsdance", "vcreate"], + "abilities": ["Air Lock"], + "preferredTypes": ["Normal"] + } + ] + }, + "rayquazamega": { + "level": 66, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragonascent", "dragondance", "earthquake", "extremespeed", "vcreate"], + "abilities": ["Air Lock"] + } + ] + }, + "jirachi": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "firepunch", "healingwish", "ironhead", "protect", "stealthrock", "toxic", "uturn", "wish"], + "abilities": ["Serene Grace"] + }, + { + "role": "Z-Move user", + "movepool": ["drainpunch", "happyhour", "ironhead", "psychic"], + "abilities": ["Serene Grace"], + "preferredTypes": ["Normal"] + } + ] + }, + "deoxys": { + "level": 75, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["icebeam", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysattack": { + "level": 74, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["extremespeed", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + }, + { + "role": "Fast Attacker", + "movepool": ["icebeam", "knockoff", "psychoboost", "superpower"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysdefense": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "recover", "seismictoss", "spikes", "stealthrock", "taunt", "toxic"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["focusblast", "nastyplot", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Pressure"] + } + ] + }, + "deoxysspeed": { + "level": 81, + "sets": [ + { + "role": "Fast Support", + "movepool": ["knockoff", "psychoboost", "spikes", "stealthrock", "superpower", "taunt"], + "abilities": ["Pressure"] + }, + { + "role": "Z-Move user", + "movepool": ["darkpulse", "focusblast", "nastyplot", "psychoboost"], + "abilities": ["Pressure"], + "preferredTypes": ["Psychic"] + } + ] + }, + "torterra": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "stealthrock", "stoneedge", "synthesis", "woodhammer"], + "abilities": ["Overgrow"] + }, + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "rockpolish", "stoneedge", "woodhammer"], + "abilities": ["Overgrow"] + } + ] + }, + "infernape": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "grassknot", "machpunch", "overheat", "stealthrock"], + "abilities": ["Blaze", "Iron Fist"] + }, + { + "role": "Z-Move user", + "movepool": ["fireblast", "focusblast", "grassknot", "nastyplot", "vacuumwave"], + "abilities": ["Blaze"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Fast Support", + "movepool": ["closecombat", "flareblitz", "machpunch", "stoneedge", "swordsdance", "uturn"], + "abilities": ["Blaze", "Iron Fist"] + } + ] + }, + "empoleon": { + "level": 83, + "sets": [ + { + "role": "Staller", + "movepool": ["defog", "knockoff", "protect", "scald", "stealthrock", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "icebeam", "knockoff", "roar", "scald", "toxic"], + "abilities": ["Torrent"] + }, + { + "role": "Bulky Attacker", + "movepool": ["flashcannon", "grassknot", "hydropump", "icebeam", "knockoff", "scald"], + "abilities": ["Torrent"] + } + ] + }, + "staraptor": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bravebird", "closecombat", "doubleedge", "quickattack", "uturn"], + "abilities": ["Reckless"], + "preferredTypes": ["Fighting"] + } + ] + }, + "bibarel": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aquajet", "liquidation", "quickattack", "return", "swordsdance"], + "abilities": ["Simple"] + } + ] + }, + "kricketune": { + "level": 97, + "sets": [ + { + "role": "Fast Support", + "movepool": ["knockoff", "leechlife", "stickyweb", "taunt", "toxic"], + "abilities": ["Swarm"] + } + ] + }, + "luxray": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "facade", "superpower", "wildcharge"], + "abilities": ["Guts"] + }, + { + "role": "AV Pivot", + "movepool": ["crunch", "icefang", "superpower", "voltswitch", "wildcharge"], + "abilities": ["Intimidate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "roserade": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["gigadrain", "hiddenpowerground", "leafstorm", "sleeppowder", "sludgebomb", "spikes", "synthesis", "toxicspikes"], + "abilities": ["Natural Cure", "Technician"] + } + ] + }, + "rampardos": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "firepunch", "rockpolish", "rockslide", "zenheadbutt"], + "abilities": ["Sheer Force"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "firepunch", "headsmash", "rockslide"], + "abilities": ["Sheer Force"] + } + ] + }, + "bastiodon": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["metalburst", "roar", "rockblast", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + }, + { + "role": "Staller", + "movepool": ["metalburst", "protect", "roar", "rockblast", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "wormadam": { + "level": 100, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "energyball", "gigadrain", "hiddenpowerground", "hiddenpowerrock", "quiverdance"], + "abilities": ["Anticipation", "Overcoat"] + }, + { + "role": "Wallbreaker", + "movepool": ["bugbuzz", "hiddenpowerground", "hiddenpowerrock", "leafstorm", "psychic"], + "abilities": ["Anticipation", "Overcoat"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerground", "protect", "toxic"], + "abilities": ["Anticipation", "Overcoat"] + } + ] + }, + "wormadamsandy": { + "level": 90, + "sets": [ + { + "role": "Staller", + "movepool": ["earthquake", "infestation", "protect", "stealthrock", "toxic"], + "abilities": ["Overcoat"] + } + ] + }, + "wormadamtrash": { + "level": 86, + "sets": [ + { + "role": "Staller", + "movepool": ["flashcannon", "infestation", "protect", "stealthrock", "toxic"], + "abilities": ["Overcoat"] + } + ] + }, + "mothim": { + "level": 94, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["airslash", "bugbuzz", "energyball", "quiverdance"], + "abilities": ["Tinted Lens"] + }, + { + "role": "Z-Move user", + "movepool": ["airslash", "bugbuzz", "energyball", "quiverdance"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Bug"] + } + ] + }, + "vespiquen": { + "level": 100, + "sets": [ + { + "role": "Staller", + "movepool": ["airslash", "defog", "roost", "toxic", "uturn"], + "abilities": ["Pressure"] + } + ] + }, + "pachirisu": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["nuzzle", "superfang", "thunderbolt", "toxic", "uturn"], + "abilities": ["Volt Absorb"] + } + ] + }, + "floatzel": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "icepunch", "liquidation", "lowkick", "substitute"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crunch", "icepunch", "liquidation", "lowkick"], + "abilities": ["Water Veil"], + "preferredTypes": ["Ice"] + }, + { + "role": "Z-Move user", + "movepool": ["bulkup", "icepunch", "liquidation", "lowkick"], + "abilities": ["Water Veil"], + "preferredTypes": ["Fighting"] + } + ] + }, + "cherrim": { + "level": 99, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dazzlinggleam", "energyball", "healingwish", "hiddenpowerfire", "hiddenpowerground", "hiddenpowerrock", "morningsun"], + "abilities": ["Flower Gift"] + }, + { + "role": "Staller", + "movepool": ["aromatherapy", "energyball", "hiddenpowerground", "leechseed", "morningsun", "toxic"], + "abilities": ["Flower Gift"] + } + ] + }, + "gastrodon": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["clearsmog", "earthquake", "icebeam", "recover", "scald", "toxic"], + "abilities": ["Storm Drain"] + } + ] + }, + "ambipom": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "knockoff", "lowkick", "return", "uturn"], + "abilities": ["Technician"], + "preferredTypes": ["Dark"] + } + ] + }, + "drifblim": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["acrobatics", "defog", "destinybond", "shadowball", "substitute", "willowisp"], + "abilities": ["Unburden"] + }, + { + "role": "Bulky Support", + "movepool": ["acrobatics", "hex", "substitute", "willowisp"], + "abilities": ["Unburden"] + } + ] + }, + "lopunny": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["brutalswing", "healingwish", "highjumpkick", "return", "switcheroo"], + "abilities": ["Limber"] + }, + { + "role": "Z-Move user", + "movepool": ["brutalswing", "highjumpkick", "return", "splash"], + "abilities": ["Limber"], + "preferredTypes": ["Normal"] + } + ] + }, + "lopunnymega": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["encore", "fakeout", "highjumpkick", "poweruppunch", "return", "substitute"], + "abilities": ["Limber"] + } + ] + }, + "mismagius": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dazzlinggleam", "painsplit", "shadowball", "taunt", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Wallbreaker", + "movepool": ["dazzlinggleam", "mysticalfire", "nastyplot", "shadowball", "thunderbolt", "trick"], + "abilities": ["Levitate"], + "preferredTypes": ["Fairy"] + } + ] + }, + "honchkrow": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bravebird", "heatwave", "pursuit", "roost", "suckerpunch", "superpower"], + "abilities": ["Moxie"] + } + ] + }, + "purugly": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["fakeout", "knockoff", "return", "stompingtantrum", "uturn"], + "abilities": ["Defiant", "Thick Fat"], + "preferredTypes": ["Dark"] + } + ] + }, + "skuntank": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["crunch", "defog", "fireblast", "poisonjab", "pursuit", "suckerpunch", "taunt"], + "abilities": ["Aftermath"] + } + ] + }, + "bronzong": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "ironhead", "psychic", "stealthrock", "toxic"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "ironhead", "protect", "psychic", "toxic"], + "abilities": ["Levitate"], + "preferredTypes": ["Ground"] + } + ] + }, + "chatot": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["boomburst", "chatter", "heatwave", "hiddenpowerground", "uturn"], + "abilities": ["Tangled Feet"] + }, + { + "role": "Setup Sweeper", + "movepool": ["boomburst", "chatter", "heatwave", "nastyplot", "substitute"], + "abilities": ["Tangled Feet"] + } + ] + }, + "spiritomb": { + "level": 92, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "darkpulse", "rest", "sleeptalk"], + "abilities": ["Infiltrator"] + }, + { + "role": "Bulky Attacker", + "movepool": ["foulplay", "painsplit", "pursuit", "suckerpunch", "toxic", "willowisp"], + "abilities": ["Infiltrator"] + } + ] + }, + "garchomp": { + "level": 75, + "sets": [ + { + "role": "Fast Support", + "movepool": ["dragonclaw", "earthquake", "fireblast", "outrage", "stealthrock", "stoneedge", "toxic"], + "abilities": ["Rough Skin"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "firefang", "outrage", "stoneedge", "swordsdance"], + "abilities": ["Rough Skin"] + }, + { + "role": "Z-Move user", + "movepool": ["earthquake", "firefang", "outrage", "stoneedge", "swordsdance"], + "abilities": ["Rough Skin"], + "preferredTypes": ["Dragon"] + } + ] + }, + "garchompmega": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dracometeor", "earthquake", "fireblast", "stealthrock", "stoneedge"], + "abilities": ["Rough Skin"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "firefang", "outrage", "stoneedge", "swordsdance"], + "abilities": ["Rough Skin"] + } + ] + }, + "lucario": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "crunch", "extremespeed", "meteormash", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "flashcannon", "nastyplot", "vacuumwave"], + "abilities": ["Inner Focus"] + } + ] + }, + "lucariomega": { + "level": 75, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["closecombat", "extremespeed", "meteormash", "swordsdance"], + "abilities": ["Justified"] + }, + { + "role": "Setup Sweeper", + "movepool": ["aurasphere", "flashcannon", "nastyplot", "vacuumwave"], + "abilities": ["Justified"] + } + ] + }, + "hippowdon": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"], + "abilities": ["Sand Stream"] + } + ] + }, + "drapion": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquatail", "earthquake", "knockoff", "poisonjab", "pursuit", "swordsdance"], + "abilities": ["Battle Armor"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "poisonjab", "taunt", "toxicspikes", "whirlwind"], + "abilities": ["Battle Armor"] + } + ] + }, + "toxicroak": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["drainpunch", "earthquake", "gunkshot", "knockoff", "substitute", "suckerpunch", "swordsdance"], + "abilities": ["Dry Skin"] + } + ] + }, + "carnivine": { + "level": 100, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "knockoff", "powerwhip", "sleeppowder", "synthesis", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "lumineon": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "icebeam", "scald", "toxic", "uturn"], + "abilities": ["Storm Drain"] + } + ] + }, + "abomasnow": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "earthquake", "gigadrain", "iceshard", "woodhammer"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + } + ] + }, + "abomasnowmega": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "earthquake", "gigadrain", "iceshard", "woodhammer"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + } + ] + }, + "weavile": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["iceshard", "iciclecrash", "knockoff", "lowkick", "pursuit", "swordsdance"], + "abilities": ["Pickpocket"] + } + ] + }, + "magnezone": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["flashcannon", "hiddenpowerground", "thunderbolt", "voltswitch"], + "abilities": ["Magnet Pull"] + }, + { + "role": "Staller", + "movepool": ["flashcannon", "protect", "thunderbolt", "toxic"], + "abilities": ["Analytic"] + } + ] + }, + "lickilicky": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bodyslam", "healbell", "knockoff", "protect", "wish"], + "abilities": ["Cloud Nine", "Oblivious"] + }, + { + "role": "AV Pivot", + "movepool": ["bodyslam", "dragontail", "earthquake", "explosion", "knockoff", "powerwhip"], + "abilities": ["Cloud Nine", "Own Tempo"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["bodyslam", "earthquake", "explosion", "knockoff", "powerwhip", "return", "swordsdance"], + "abilities": ["Cloud Nine", "Oblivious"], + "preferredTypes": ["Dark"] + } + ] + }, + "rhyperior": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dragontail", "earthquake", "icepunch", "megahorn", "stoneedge"], + "abilities": ["Solid Rock"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "icepunch", "megahorn", "rockpolish", "stoneedge"], + "abilities": ["Solid Rock"] + } + ] + }, + "tangrowth": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "knockoff", "leafstorm", "leechseed", "morningsun", "powerwhip", "rockslide", "sleeppowder", "sludgebomb"], + "abilities": ["Regenerator"] + }, + { + "role": "AV Pivot", + "movepool": ["earthquake", "gigadrain", "knockoff", "powerwhip", "rockslide", "sludgebomb"], + "abilities": ["Regenerator"] + } + ] + }, + "electivire": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], + "abilities": ["Motor Drive"], + "preferredTypes": ["Ice"] + } + ] + }, + "magmortar": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "fireblast", "focusblast", "hiddenpowerice", "taunt", "thunderbolt"], + "abilities": ["Flame Body"], + "preferredTypes": ["Electric"] + } + ] + }, + "togekiss": { + "level": 82, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["airslash", "aurasphere", "nastyplot", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Bulky Attacker", + "movepool": ["airslash", "defog", "healbell", "roost", "thunderwave"], + "abilities": ["Serene Grace"] + }, + { + "role": "Fast Attacker", + "movepool": ["airslash", "aurasphere", "dazzlinggleam", "trick"], + "abilities": ["Serene Grace"] + } + ] + }, + "yanmega": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "bugbuzz", "hiddenpowerground", "protect"], + "abilities": ["Speed Boost"] + }, + { + "role": "Wallbreaker", + "movepool": ["airslash", "bugbuzz", "gigadrain", "uturn"], + "abilities": ["Tinted Lens"] + } + ] + }, + "leafeon": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["doubleedge", "knockoff", "leafblade", "swordsdance", "synthesis", "xscissor"], + "abilities": ["Chlorophyll"], + "preferredTypes": ["Dark"] + } + ] + }, + "glaceon": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "hiddenpowerground", "icebeam", "protect", "wish"], + "abilities": ["Ice Body"] + }, + { + "role": "Staller", + "movepool": ["icebeam", "protect", "toxic", "wish"], + "abilities": ["Ice Body"] + }, + { + "role": "Z-Move user", + "movepool": ["celebrate", "hiddenpowerground", "icebeam", "storedpower"], + "abilities": ["Ice Body"], + "preferredTypes": ["Normal"] + } + ] + }, + "gliscor": { + "level": 78, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["earthquake", "protect", "substitute", "toxic"], + "abilities": ["Poison Heal"] + }, + { + "role": "Staller", + "movepool": ["defog", "earthquake", "knockoff", "roost", "stealthrock", "taunt", "toxic", "uturn"], + "abilities": ["Poison Heal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "facade", "roost", "swordsdance"], + "abilities": ["Poison Heal"] + } + ] + }, + "mamoswine": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "iceshard", "iciclecrash", "knockoff", "stealthrock"], + "abilities": ["Thick Fat"] + } + ] + }, + "porygonz": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["icebeam", "nastyplot", "shadowball", "thunderbolt", "triattack", "trick"], + "abilities": ["Adaptability", "Download"] + }, + { + "role": "Z-Move user", + "movepool": ["conversion", "icebeam", "recover", "shadowball", "thunderbolt"], + "abilities": ["Adaptability"], + "preferredTypes": ["Normal"] + } + ] + }, + "gallade": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "icepunch", "knockoff", "shadowsneak", "swordsdance", "zenheadbutt"], + "abilities": ["Justified"], + "preferredTypes": ["Dark"] + } + ] + }, + "gallademega": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["closecombat", "knockoff", "swordsdance", "zenheadbutt"], + "abilities": ["Justified"] + } + ] + }, + "probopass": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "flashcannon", "stealthrock", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Magnet Pull"] + }, + { + "role": "Bulky Support", + "movepool": ["earthpower", "powergem", "stealthrock", "thunderwave", "toxic", "voltswitch"], + "abilities": ["Magnet Pull"], + "preferredTypes": ["Ground"] + } + ] + }, + "dusknoir": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "haze", "icepunch", "painsplit", "shadowsneak", "toxic", "willowisp"], + "abilities": ["Frisk", "Pressure"], + "preferredTypes": ["Ground"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "shadowsneak", "toxic"], + "abilities": ["Frisk", "Pressure"] + } + ] + }, + "froslass": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["destinybond", "icebeam", "shadowball", "spikes", "taunt", "thunderwave", "willowisp"], + "abilities": ["Cursed Body"] + } + ] + }, + "rotom": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "hiddenpowerice", "painsplit", "shadowball", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomheat": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hiddenpowerice", "overheat", "painsplit", "thunderbolt", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomwash": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "hydropump", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotomfrost": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blizzard", "painsplit", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Z-Move user", + "movepool": ["blizzard", "painsplit", "thunderbolt", "voltswitch", "willowisp"], + "abilities": ["Levitate"], + "preferredTypes": ["Ice"] + } + ] + }, + "rotomfan": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["airslash", "defog", "painsplit", "thunderbolt", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "rotommow": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "hiddenpowerice", "leafstorm", "thunderbolt", "trick", "voltswitch", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "uxie": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "knockoff", "psychic", "stealthrock", "thunderwave", "toxic", "uturn", "yawn"], + "abilities": ["Levitate"] + } + ] + }, + "mesprit": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "healingwish", "hiddenpowerfire", "psychic", "psyshock", "signalbeam", "thunderbolt", "uturn"], + "abilities": ["Levitate"], + "preferredTypes": ["Bug"] + }, + { + "role": "Bulky Support", + "movepool": ["knockoff", "psychic", "stealthrock", "thunderwave", "toxic", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "azelf": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dazzlinggleam", "fireblast", "nastyplot", "psychic", "psyshock", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Fast Support", + "movepool": ["explosion", "fireblast", "knockoff", "psychic", "stealthrock", "taunt", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "dialga": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "dragontail", "fireblast", "flashcannon", "stealthrock", "thunderbolt", "toxic"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + } + ] + }, + "palkia": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "fireblast", "hydropump", "spacialrend", "thunderwave"], + "abilities": ["Pressure"], + "preferredTypes": ["Fire"] + } + ] + }, + "heatran": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "flashcannon", "lavaplume", "magmastorm", "stealthrock", "taunt", "toxic"], + "abilities": ["Flash Fire"] + }, + { + "role": "Staller", + "movepool": ["earthpower", "magmastorm", "protect", "toxic"], + "abilities": ["Flash Fire"] + } + ] + }, + "regigigas": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "knockoff", "return", "substitute", "thunderwave"], + "abilities": ["Slow Start"], + "preferredTypes": ["Dark"] + } + ] + }, + "giratinaorigin": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "hex", "shadowsneak", "thunderwave", "willowisp"], + "abilities": ["Levitate"] + }, + { + "role": "Fast Attacker", + "movepool": ["defog", "dracometeor", "earthquake", "outrage", "shadowball", "shadowsneak", "willowisp"], + "abilities": ["Levitate"] + } + ] + }, + "giratina": { + "level": 76, + "sets": [ + { + "role": "Fast Support", + "movepool": ["dragontail", "rest", "shadowball", "sleeptalk", "willowisp"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "dragonpulse", "rest", "sleeptalk"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "dragontail", "rest", "shadowball", "willowisp"], + "abilities": ["Pressure"] + } + ] + }, + "cresselia": { + "level": 82, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "moonblast", "moonlight", "psyshock"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Support", + "movepool": ["moonblast", "moonlight", "psychic", "thunderwave", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "phione": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "icebeam", "knockoff", "scald", "toxic", "uturn"], + "abilities": ["Hydration"] + } + ] + }, + "manaphy": { + "level": 77, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["energyball", "icebeam", "surf", "tailglow"], + "abilities": ["Hydration"] + }, + { + "role": "Z-Move user", + "movepool": ["energyball", "icebeam", "surf", "tailglow"], + "abilities": ["Hydration"], + "preferredTypes": ["Water"] + } + ] + }, + "darkrai": { + "level": 76, + "sets": [ + { + "role": "Z-Move user", + "movepool": ["darkpulse", "focusblast", "hypnosis", "nastyplot", "sludgebomb"], + "abilities": ["Bad Dreams"], + "preferredTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["darkpulse", "focusblast", "hypnosis", "nastyplot", "sludgebomb", "substitute"], + "abilities": ["Bad Dreams"], + "preferredTypes": ["Poison"] + } + ] + }, + "shaymin": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["airslash", "earthpower", "leechseed", "seedflare", "substitute", "synthesis"], + "abilities": ["Natural Cure"], + "preferredTypes": ["Flying"] + } + ] + }, + "shayminsky": { + "level": 73, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["airslash", "earthpower", "hiddenpowerice", "leechseed", "seedflare", "substitute"], + "abilities": ["Serene Grace"] + } + ] + }, + "arceus": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "extremespeed", "recover", "shadowclaw", "swordsdance"], + "abilities": ["Multitype"] + } + ] + }, + "arceusbug": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdark": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "fireblast", "judgment", "recover", "sludgebomb", "toxic", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceusdragon": { + "level": 72, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["defog", "earthquake", "fireblast", "judgment", "recover", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Z-Move user", + "movepool": ["earthquake", "extremespeed", "outrage", "recover", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceuselectric": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "icebeam", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfairy": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfighting": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "shadowball"], + "abilities": ["Multitype"] + } + ] + }, + "arceusfire": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "energyball", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "earthpower", "energyball", "fireblast", "recover"], + "abilities": ["Multitype"] + } + ] + }, + "arceusflying": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceusghost": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "focusblast", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Z-Move user", + "movepool": ["brickbreak", "extremespeed", "shadowforce", "swordsdance"], + "abilities": ["Multitype"] + } + ] + }, + "arceusgrass": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "judgment"], + "abilities": ["Multitype"] + } + ] + }, + "arceusground": { + "level": 72, + "sets": [ + { + "role": "Z-Move user", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Rock"] + }, + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "toxic"], + "abilities": ["Multitype"] + } + ] + }, + "arceusice": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "judgment", "recover", "thunderbolt"], + "abilities": ["Multitype"] + } + ] + }, + "arceuspoison": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "icebeam", "recover", "sludgebomb"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "icebeam", "recover", "sludgebomb"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "earthpower", "icebeam", "recover", "sludgebomb"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceuspsychic": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "earthpower", "fireblast", "judgment", "recover"], + "abilities": ["Multitype"] + }, + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "fireblast", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + } + ] + }, + "arceusrock": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Z-Move user", + "movepool": ["earthquake", "extremespeed", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceussteel": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "judgment", "recover", "toxic", "willowisp"], + "abilities": ["Multitype"] + }, + { + "role": "Z-Move user", + "movepool": ["earthquake", "ironhead", "recover", "stoneedge", "swordsdance"], + "abilities": ["Multitype"], + "preferredTypes": ["Ground"] + } + ] + }, + "arceuswater": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "icebeam", "judgment", "recover", "toxic"], + "abilities": ["Multitype"] + } + ] + }, + "victini": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["boltstrike", "uturn", "vcreate", "zenheadbutt"], + "abilities": ["Victory Star"] + }, + { + "role": "AV Pivot", + "movepool": ["boltstrike", "energyball", "focusblast", "glaciate", "psychic", "uturn", "vcreate"], + "abilities": ["Victory Star"], + "preferredTypes": ["Electric"] + }, + { + "role": "Z-Move user", + "movepool": ["blueflare", "boltstrike", "celebrate", "storedpower"], + "abilities": ["Victory Star"], + "preferredTypes": ["Normal"] + } + ] + }, + "serperior": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "dragonpulse", "glare", "hiddenpowerfire", "leafstorm", "leechseed", "substitute"], + "abilities": ["Contrary"] + } + ] + }, + "emboar": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["flareblitz", "headsmash", "suckerpunch", "superpower", "wildcharge"], + "abilities": ["Reckless"] + }, + { + "role": "AV Pivot", + "movepool": ["flareblitz", "grassknot", "suckerpunch", "superpower", "wildcharge"], + "abilities": ["Reckless"] + } + ] + }, + "samurott": { + "level": 88, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["aquajet", "grassknot", "hydropump", "icebeam", "knockoff", "megahorn", "sacredsword", "scald"], + "abilities": ["Torrent"] + }, + { + "role": "Fast Attacker", + "movepool": ["aquajet", "knockoff", "liquidation", "megahorn", "sacredsword", "swordsdance"], + "abilities": ["Torrent"] + } + ] + }, + "watchog": { + "level": 96, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hypnosis", "knockoff", "return", "superfang"], + "abilities": ["Analytic"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hypnosis", "knockoff", "return", "stompingtantrum", "swordsdance"], + "abilities": ["Analytic"], + "preferredTypes": ["Dark"] + } + ] + }, + "stoutland": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["crunch", "facade", "return", "superpower"], + "abilities": ["Scrappy"] + } + ] + }, + "liepard": { + "level": 91, + "sets": [ + { + "role": "Fast Support", + "movepool": ["copycat", "encore", "knockoff", "substitute", "thunderwave", "uturn"], + "abilities": ["Prankster"] + }, + { + "role": "Fast Attacker", + "movepool": ["gunkshot", "knockoff", "playrough", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "simisage": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["gunkshot", "hiddenpowerice", "knockoff", "leafstorm", "rockslide", "superpower"], + "abilities": ["Overgrow"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "gigadrain", "hiddenpowerice", "nastyplot", "substitute"], + "abilities": ["Overgrow"] + } + ] + }, + "simisear": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["fireblast", "focusblast", "grassknot", "hiddenpowerrock", "nastyplot", "substitute"], + "abilities": ["Blaze"] + } + ] + }, + "simipour": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["grassknot", "hydropump", "icebeam", "nastyplot", "substitute"], + "abilities": ["Torrent"], + "preferredTypes": ["Ice"] + } + ] + }, + "musharna": { + "level": 90, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "moonlight", "psyshock", "shadowball", "signalbeam"], + "abilities": ["Synchronize"] + }, + { + "role": "Bulky Support", + "movepool": ["healbell", "moonlight", "psychic", "signalbeam", "thunderwave", "toxic"], + "abilities": ["Synchronize"] + } + ] + }, + "unfezant": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "nightslash", "pluck", "return", "roost", "toxic", "uturn"], + "abilities": ["Super Luck"] + } + ] + }, + "zebstrika": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerice", "overheat", "voltswitch", "wildcharge"], + "abilities": ["Sap Sipper"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerice", "overheat", "thunderbolt", "voltswitch"], + "abilities": ["Lightning Rod"] + } + ] + }, + "gigalith": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "explosion", "stealthrock", "stoneedge", "superpower", "toxic"], + "abilities": ["Sand Stream"], + "preferredTypes": ["Ground"] + } + ] + }, + "swoobat": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "heatwave", "roost", "storedpower"], + "abilities": ["Simple"] + }, + { + "role": "Setup Sweeper", + "movepool": ["airslash", "calmmind", "heatwave", "roost", "storedpower"], + "abilities": ["Simple"] + } + ] + }, + "excadrill": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"], + "abilities": ["Mold Breaker", "Sand Rush"] + } + ] + }, + "audino": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "protect", "toxic", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "audinomega": { + "level": 92, + "sets": [ + { + "role": "Staller", + "movepool": ["dazzlinggleam", "protect", "toxic", "wish"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["calmmind", "dazzlinggleam", "fireblast", "protect", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "gurdurr": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bulkup", "drainpunch", "knockoff", "machpunch"], + "abilities": ["Guts"] + } + ] + }, + "conkeldurr": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "facade", "knockoff", "machpunch"], + "abilities": ["Guts"] + } + ] + }, + "seismitoad": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "hydropump", "knockoff", "raindance", "sludgewave"], + "abilities": ["Swift Swim"] + }, + { + "role": "Bulky Support", + "movepool": ["earthquake", "knockoff", "scald", "stealthrock", "toxic"], + "abilities": ["Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "protect", "scald", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "throh": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["bulkup", "facade", "knockoff", "stormthrow"], + "abilities": ["Guts"] + }, + { + "role": "Bulky Support", + "movepool": ["bulkup", "circlethrow", "knockoff", "rest", "sleeptalk"], + "abilities": ["Guts"] + } + ] + }, + "sawk": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "closecombat", "earthquake", "knockoff", "poisonjab", "stoneedge"], + "abilities": ["Mold Breaker", "Sturdy"], + "preferredTypes": ["Dark"] + } + ] + }, + "leavanny": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["knockoff", "leafblade", "stickyweb", "toxic", "xscissor"], + "abilities": ["Chlorophyll", "Swarm"] + } + ] + }, + "scolipede": { + "level": 81, + "sets": [ + { + "role": "Fast Support", + "movepool": ["earthquake", "megahorn", "poisonjab", "spikes", "toxicspikes"], + "abilities": ["Speed Boost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "megahorn", "poisonjab", "swordsdance"], + "abilities": ["Speed Boost"] + } + ] + }, + "whimsicott": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "encore", "energyball", "moonblast", "stunspore", "taunt", "toxic", "uturn"], + "abilities": ["Prankster"] + }, + { + "role": "Staller", + "movepool": ["leechseed", "moonblast", "protect", "substitute"], + "abilities": ["Prankster"] + } + ] + }, + "lilligant": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerrock", "quiverdance", "sleeppowder"], + "abilities": ["Chlorophyll"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfire", "hiddenpowerrock", "petaldance", "quiverdance", "sleeppowder"], + "abilities": ["Own Tempo"] + } + ] + }, + "basculin": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["aquajet", "crunch", "headsmash", "liquidation", "superpower"], + "abilities": ["Adaptability"] + } + ] + }, + "krookodile": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["earthquake", "knockoff", "pursuit", "stealthrock", "stoneedge", "superpower"], + "abilities": ["Intimidate"] + } + ] + }, + "darmanitan": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"], + "abilities": ["Sheer Force"] + } + ] + }, + "maractus": { + "level": 100, + "sets": [ + { + "role": "Fast Support", + "movepool": ["gigadrain", "hiddenpowerfire", "knockoff", "spikes", "synthesis", "toxic"], + "abilities": ["Storm Drain", "Water Absorb"] + }, + { + "role": "Staller", + "movepool": ["gigadrain", "hiddenpowerfire", "hiddenpowerice", "leechseed", "spikyshield"], + "abilities": ["Storm Drain", "Water Absorb"] + } + ] + }, + "crustle": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "knockoff", "shellsmash", "stoneedge", "xscissor"], + "abilities": ["Sturdy"], + "preferredTypes": ["Ground"] + } + ] + }, + "scrafty": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "highjumpkick", "ironhead", "knockoff"], + "abilities": ["Intimidate", "Moxie"] + }, + { + "role": "Bulky Setup", + "movepool": ["bulkup", "drainpunch", "knockoff", "rest"], + "abilities": ["Shed Skin"] + } + ] + }, + "sigilyph": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["airslash", "calmmind", "defog", "heatwave", "psyshock", "roost"], + "abilities": ["Magic Guard"] + }, + { + "role": "Wallbreaker", + "movepool": ["airslash", "energyball", "heatwave", "icebeam", "psychic", "psyshock"], + "abilities": ["Tinted Lens"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Setup", + "movepool": ["airslash", "cosmicpower", "roost", "storedpower"], + "abilities": ["Magic Guard"] + } + ] + }, + "cofagrigus": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "painsplit", "shadowball", "toxicspikes", "willowisp"], + "abilities": ["Mummy"] + }, + { + "role": "Bulky Setup", + "movepool": ["hiddenpowerfighting", "nastyplot", "shadowball", "trickroom"], + "abilities": ["Mummy"] + } + ] + }, + "carracosta": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["aquajet", "earthquake", "icebeam", "liquidation", "shellsmash", "stoneedge"], + "abilities": ["Solid Rock", "Sturdy", "Swift Swim"] + } + ] + }, + "archeops": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["acrobatics", "defog", "earthquake", "knockoff", "roost", "stealthrock", "stoneedge", "uturn"], + "abilities": ["Defeatist"], + "preferredTypes": ["Ground"] + } + ] + }, + "garbodor": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["gunkshot", "haze", "painsplit", "spikes", "stompingtantrum", "toxic", "toxicspikes"], + "abilities": ["Aftermath"] + } + ] + }, + "zoroark": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "sludgebomb", "trick", "uturn"], + "abilities": ["Illusion"], + "preferredTypes": ["Poison"] + } + ] + }, + "cinccino": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulletseed", "knockoff", "rockblast", "tailslap", "uturn"], + "abilities": ["Skill Link"] + } + ] + }, + "gothitelle": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "hiddenpowerfighting", "psychic", "shadowball", "signalbeam", "thunderbolt", "trick"], + "abilities": ["Shadow Tag"] + } + ] + }, + "reuniclus": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "focusblast", "psychic", "psyshock", "recover", "signalbeam"], + "abilities": ["Magic Guard"] + } + ] + }, + "swanna": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "roost", "scald", "toxic"], + "abilities": ["Hydration"] + }, + { + "role": "Z-Move user", + "movepool": ["hurricane", "raindance", "rest", "scald"], + "abilities": ["Hydration"], + "preferredTypes": ["Water"] + } + ] + }, + "vanilluxe": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["autotomize", "blizzard", "explosion", "flashcannon", "freezedry", "hiddenpowerground"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + }, + { + "role": "AV Pivot", + "movepool": ["blizzard", "explosion", "flashcannon", "freezedry", "hiddenpowerground"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + } + ] + }, + "sawsbuck": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["headbutt", "hornleech", "jumpkick", "return", "substitute", "swordsdance"], + "abilities": ["Sap Sipper", "Serene Grace"], + "preferredTypes": ["Normal"] + } + ] + }, + "emolga": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["acrobatics", "defog", "encore", "knockoff", "roost", "thunderbolt", "toxic", "uturn"], + "abilities": ["Motor Drive"] + } + ] + }, + "escavalier": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["drillrun", "ironhead", "knockoff", "megahorn", "pursuit", "swordsdance"], + "abilities": ["Overcoat", "Swarm"] + } + ] + }, + "amoonguss": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["clearsmog", "foulplay", "gigadrain", "sludgebomb", "spore", "stompingtantrum"], + "abilities": ["Regenerator"] + }, + { + "role": "Bulky Support", + "movepool": ["gigadrain", "sludgebomb", "spore", "synthesis"], + "abilities": ["Regenerator"] + } + ] + }, + "jellicent": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["icebeam", "recover", "scald", "shadowball", "taunt"], + "abilities": ["Water Absorb"] + }, + { + "role": "Bulky Support", + "movepool": ["hex", "recover", "scald", "toxic", "willowisp"], + "abilities": ["Water Absorb"] + } + ] + }, + "alomomola": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "protect", "scald", "toxic", "wish"], + "abilities": ["Regenerator"] + } + ] + }, + "galvantula": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bugbuzz", "gigadrain", "stickyweb", "thunder", "voltswitch"], + "abilities": ["Compound Eyes"], + "preferredTypes": ["Bug"] + } + ] + }, + "ferrothorn": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["gyroball", "leechseed", "powerwhip", "spikes", "stealthrock"], + "abilities": ["Iron Barbs"] + }, + { + "role": "Bulky Support", + "movepool": ["knockoff", "powerwhip", "spikes", "stealthrock", "thunderwave", "toxic"], + "abilities": ["Iron Barbs"] + } + ] + }, + "klinklang": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"], + "abilities": ["Clear Body"] + }, + { + "role": "Z-Move user", + "movepool": ["geargrind", "return", "shiftgear", "substitute", "wildcharge"], + "abilities": ["Clear Body"], + "preferredTypes": ["Electric", "Normal", "Steel"] + } + ] + }, + "eelektross": { + "level": 88, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["discharge", "flamethrower", "gigadrain", "hiddenpowerice", "knockoff", "superpower", "uturn"], + "abilities": ["Levitate"] + } + ] + }, + "beheeyem": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["hiddenpowerfighting", "psychic", "psyshock", "recover", "signalbeam", "thunderbolt", "trick", "trickroom"], + "abilities": ["Analytic"], + "preferredTypes": ["Bug"] + } + ] + }, + "chandelure": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["energyball", "fireblast", "shadowball", "trick"], + "abilities": ["Flash Fire"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "fireblast", "shadowball", "substitute"], + "abilities": ["Flame Body", "Flash Fire"] + } + ] + }, + "haxorus": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "earthquake", "outrage", "poisonjab", "taunt"], + "abilities": ["Mold Breaker"], + "preferredTypes": ["Ground"] + }, + { + "role": "Z-Move user", + "movepool": ["dragondance", "earthquake", "outrage", "poisonjab"], + "abilities": ["Mold Breaker"], + "preferredTypes": ["Dragon"] + } + ] + }, + "beartic": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aquajet", "iciclecrash", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Slush Rush", "Swift Swim"], + "preferredTypes": ["Fighting"] + } + ] + }, + "cryogonal": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["freezedry", "haze", "hiddenpowerground", "rapidspin", "recover", "toxic"], + "abilities": ["Levitate"] + } + ] + }, + "accelgor": { + "level": 90, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bugbuzz", "encore", "focusblast", "hiddenpowerground", "hiddenpowerrock", "spikes", "toxicspikes", "uturn"], + "abilities": ["Hydration", "Sticky Hold"] + } + ] + }, + "stunfisk": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["discharge", "earthpower", "rest", "scald", "sleeptalk", "stealthrock", "toxic"], + "abilities": ["Static"] + }, + { + "role": "AV Pivot", + "movepool": ["discharge", "earthpower", "foulplay", "scald", "sludgebomb"], + "abilities": ["Static"] + } + ] + }, + "mienshao": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["highjumpkick", "knockoff", "poisonjab", "stoneedge", "swordsdance", "uturn"], + "abilities": ["Reckless"], + "preferredTypes": ["Dark"] + }, + { + "role": "AV Pivot", + "movepool": ["fakeout", "highjumpkick", "knockoff", "uturn"], + "abilities": ["Regenerator"] + } + ] + }, + "druddigon": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["firepunch", "glare", "gunkshot", "outrage", "suckerpunch"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Poison"] + }, + { + "role": "Bulky Support", + "movepool": ["dragontail", "earthquake", "glare", "gunkshot", "outrage", "stealthrock", "suckerpunch"], + "abilities": ["Rough Skin"] + } + ] + }, + "golurk": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dynamicpunch", "earthquake", "icepunch", "rockpolish", "stealthrock", "stoneedge"], + "abilities": ["No Guard"], + "preferredTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "icepunch", "rockpolish", "shadowpunch"], + "abilities": ["Iron Fist"] + } + ] + }, + "bisharp": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["ironhead", "knockoff", "pursuit", "suckerpunch", "swordsdance"], + "abilities": ["Defiant"] + } + ] + }, + "bouffalant": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "headcharge", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Reckless", "Sap Sipper"] + } + ] + }, + "braviary": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "bulkup", "roost", "superpower"], + "abilities": ["Defiant"] + }, + { + "role": "Fast Attacker", + "movepool": ["bravebird", "return", "superpower", "uturn"], + "abilities": ["Defiant"] + } + ] + }, + "mandibuzz": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "foulplay", "knockoff", "roost", "taunt", "toxic", "uturn"], + "abilities": ["Overcoat"] + }, + { + "role": "Bulky Support", + "movepool": ["defog", "foulplay", "roost", "taunt", "toxic", "uturn"], + "abilities": ["Overcoat"] + } + ] + }, + "heatmor": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["fireblast", "firelash", "gigadrain", "knockoff", "suckerpunch", "superpower"], + "abilities": ["Flash Fire"] + } + ] + }, + "durant": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["honeclaws", "ironhead", "rockslide", "superpower", "xscissor"], + "abilities": ["Hustle"], + "preferredTypes": ["Fighting"] + } + ] + }, + "hydreigon": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "dracometeor", "earthpower", "fireblast", "flashcannon", "roost", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["darkpulse", "defog", "dracometeor", "fireblast", "roost", "uturn"], + "abilities": ["Levitate"] + }, + { + "role": "AV Pivot", + "movepool": ["darkpulse", "dracometeor", "flashcannon", "superpower", "uturn"], + "abilities": ["Levitate"], + "preferredTypes": ["Fighting"] + } + ] + }, + "volcarona": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "fierydance", "fireblast", "gigadrain", "hiddenpowerrock", "quiverdance", "roost"], + "abilities": ["Flame Body", "Swarm"] + }, + { + "role": "Z-Move user", + "movepool": ["bugbuzz", "fireblast", "gigadrain", "quiverdance", "roost"], + "abilities": ["Flame Body", "Swarm"], + "preferredTypes": ["Bug", "Fire"] + } + ] + }, + "cobalion": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "ironhead", "stealthrock", "stoneedge", "swordsdance"], + "abilities": ["Justified"] + }, + { + "role": "Z-Move user", + "movepool": ["closecombat", "ironhead", "stoneedge", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Fighting", "Steel"] + } + ] + }, + "terrakion": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "quickattack", "stealthrock", "stoneedge"], + "abilities": ["Justified"], + "preferredTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["closecombat", "earthquake", "stoneedge", "swordsdance"], + "abilities": ["Justified"] + }, + { + "role": "Z-Move user", + "movepool": ["closecombat", "earthquake", "stoneedge", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Fighting", "Rock"] + } + ] + }, + "virizion": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "leafblade", "stoneedge", "swordsdance"], + "abilities": ["Justified"] + }, + { + "role": "Z-Move user", + "movepool": ["closecombat", "leafblade", "stoneedge", "swordsdance"], + "abilities": ["Justified"], + "preferredTypes": ["Fighting"] + } + ] + }, + "tornadus": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "heatwave", "hurricane", "knockoff", "superpower", "taunt", "uturn"], + "abilities": ["Defiant", "Prankster"] + }, + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "bulkup", "knockoff", "superpower", "taunt"], + "abilities": ["Defiant"], + "preferredTypes": ["Fighting"] + } + ] + }, + "tornadustherian": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "heatwave", "hurricane", "knockoff", "superpower", "taunt", "uturn"], + "abilities": ["Regenerator"] + } + ] + }, + "thundurus": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "substitute", "thunderbolt"], + "abilities": ["Prankster"] + }, + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerflying", "hiddenpowerice", "knockoff", "superpower", "taunt", "thunderbolt", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "thundurustherian": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "hiddenpowerflying", "hiddenpowerice", "nastyplot", "thunderbolt", "voltswitch"], + "abilities": ["Volt Absorb"] + } + ] + }, + "reshiram": { + "level": 75, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["blueflare", "defog", "dracometeor", "roost", "toxic"], + "abilities": ["Turboblaze"] + } + ] + }, + "zekrom": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["boltstrike", "honeclaws", "outrage", "roost", "substitute"], + "abilities": ["Teravolt"] + }, + { + "role": "AV Pivot", + "movepool": ["boltstrike", "dracometeor", "outrage", "voltswitch"], + "abilities": ["Teravolt"] + }, + { + "role": "Z-Move user", + "movepool": ["boltstrike", "honeclaws", "outrage", "roost"], + "abilities": ["Teravolt"], + "preferredTypes": ["Dragon"] + } + ] + }, + "landorus": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthpower", "focusblast", "knockoff", "psychic", "rockpolish", "rockslide", "sludgewave", "stealthrock"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "earthpower", "focusblast", "psychic", "rockpolish", "sludgewave"], + "abilities": ["Sheer Force"], + "preferredTypes": ["Poison"] + } + ] + }, + "landorustherian": { + "level": 76, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthquake", "knockoff", "stealthrock", "stoneedge", "toxic", "uturn"], + "abilities": ["Intimidate"] + }, + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "knockoff", "rockpolish", "stoneedge", "superpower", "swordsdance"], + "abilities": ["Intimidate"], + "preferredTypes": ["Rock"] + }, + { + "role": "Z-Move user", + "movepool": ["earthquake", "fly", "rockpolish", "stoneedge", "swordsdance"], + "abilities": ["Intimidate"], + "preferredTypes": ["Flying"] + } + ] + }, + "kyurem": { + "level": 81, + "sets": [ + { + "role": "Staller", + "movepool": ["earthpower", "icebeam", "roost", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Support", + "movepool": ["dracometeor", "earthpower", "icebeam", "outrage", "roost", "substitute"], + "abilities": ["Pressure"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "earthpower", "focusblast", "icebeam", "outrage"], + "abilities": ["Pressure"] + } + ] + }, + "kyuremblack": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "fusionbolt", "icebeam", "outrage", "roost", "substitute"], + "abilities": ["Teravolt"] + }, + { + "role": "Z-Move user", + "movepool": ["freezeshock", "fusionbolt", "honeclaws", "outrage"], + "abilities": ["Teravolt"], + "preferredTypes": ["Ice"] + } + ] + }, + "kyuremwhite": { + "level": 76, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "earthpower", "fusionflare", "icebeam", "roost"], + "abilities": ["Turboblaze"] + } + ] + }, + "keldeo": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "hiddenpowerelectric", "hiddenpowerflying", "hydropump", "icywind", "scald", "secretsword"], + "abilities": ["Justified"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "scald", "secretsword", "substitute"], + "abilities": ["Justified"] + }, + { + "role": "Fast Attacker", + "movepool": ["focusblast", "hydropump", "scald", "secretsword"], + "abilities": ["Justified"] + } + ] + }, + "meloetta": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "focusblast", "hypervoice", "psyshock", "uturn"], + "abilities": ["Serene Grace"] + }, + { + "role": "Wallbreaker", + "movepool": ["closecombat", "knockoff", "relicsong", "return"], + "abilities": ["Serene Grace"] + }, + { + "role": "Z-Move user", + "movepool": ["celebrate", "focusblast", "hypervoice", "psyshock"], + "abilities": ["Serene Grace"], + "preferredTypes": ["Normal"] + } + ] + }, + "genesect": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["blazekick", "ironhead", "shiftgear", "thunderbolt", "xscissor"], + "abilities": ["Download"] + }, + { + "role": "Wallbreaker", + "movepool": ["blazekick", "extremespeed", "ironhead", "uturn"], + "abilities": ["Download"] + }, + { + "role": "Fast Attacker", + "movepool": ["bugbuzz", "flamethrower", "flashcannon", "icebeam", "thunderbolt", "uturn"], + "abilities": ["Download"], + "preferredTypes": ["Bug"] + } + ] + }, + "chesnaught": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["bulkup", "drainpunch", "spikes", "synthesis", "toxic", "woodhammer"], + "abilities": ["Bulletproof"] + }, + { + "role": "Staller", + "movepool": ["drainpunch", "leechseed", "spikyshield", "woodhammer"], + "abilities": ["Bulletproof"] + } + ] + }, + "delphox": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "dazzlinggleam", "fireblast", "grassknot", "psyshock", "switcheroo"], + "abilities": ["Blaze"] + } + ] + }, + "greninja": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["grassknot", "gunkshot", "hydropump", "icebeam", "spikes", "taunt", "toxicspikes", "uturn"], + "abilities": ["Protean"], + "preferredTypes": ["Poison"] + } + ] + }, + "greninjabond": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "hydropump", "icebeam", "uturn", "watershuriken"], + "abilities": ["Battle Bond"] + } + ] + }, + "diggersby": { + "level": 83, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["agility", "earthquake", "knockoff", "quickattack", "return", "swordsdance"], + "abilities": ["Huge Power"], + "preferredTypes": ["Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "foulplay", "quickattack", "return", "uturn"], + "abilities": ["Huge Power"], + "preferredTypes": ["Normal"] + } + ] + }, + "talonflame": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "defog", "overheat", "roost", "uturn", "willowisp"], + "abilities": ["Flame Body"] + }, + { + "role": "Z-Move user", + "movepool": ["bravebird", "flareblitz", "roost", "swordsdance"], + "abilities": ["Gale Wings"], + "preferredTypes": ["Flying"] + } + ] + }, + "vivillon": { + "level": 86, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["energyball", "hurricane", "quiverdance", "sleeppowder"], + "abilities": ["Compound Eyes"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bugbuzz", "hurricane", "quiverdance", "sleeppowder"], + "abilities": ["Compound Eyes"] + } + ] + }, + "pyroar": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["darkpulse", "fireblast", "hypervoice", "solarbeam", "sunnyday", "willowisp", "workup"], + "abilities": ["Unnerve"] + }, + { + "role": "Z-Move user", + "movepool": ["darkpulse", "fireblast", "hypervoice", "solarbeam", "willowisp"], + "abilities": ["Unnerve"], + "preferredTypes": ["Grass"] + } + ] + }, + "floetteeternal": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["hiddenpowerfire", "hiddenpowerground", "lightofruin", "moonblast", "psychic"], + "abilities": ["Flower Veil"] + } + ] + }, + "florges": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "defog", "moonblast", "synthesis", "toxic"], + "abilities": ["Flower Veil"] + }, + { + "role": "Staller", + "movepool": ["moonblast", "protect", "toxic", "wish"], + "abilities": ["Flower Veil"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hiddenpowerground", "moonblast", "synthesis"], + "abilities": ["Flower Veil"] + } + ] + }, + "gogoat": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "earthquake", "hornleech", "milkdrink", "toxic"], + "abilities": ["Sap Sipper"] + } + ] + }, + "pangoro": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["bulletpunch", "drainpunch", "gunkshot", "icepunch", "knockoff", "partingshot", "superpower", "swordsdance"], + "abilities": ["Iron Fist", "Scrappy"], + "preferredTypes": ["Poison"] + } + ] + }, + "furfrou": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["darkpulse", "rest", "return", "thunderwave", "toxic", "uturn"], + "abilities": ["Fur Coat"] + }, + { + "role": "Staller", + "movepool": ["cottonguard", "rest", "return", "substitute", "toxic"], + "abilities": ["Fur Coat"] + } + ] + }, + "meowstic": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["healbell", "lightscreen", "psychic", "reflect", "signalbeam", "thunderwave", "toxic", "yawn"], + "abilities": ["Prankster"] + } + ] + }, + "meowsticf": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "darkpulse", "psychic", "psyshock", "signalbeam", "thunderbolt"], + "abilities": ["Competitive"], + "preferredTypes": ["Bug"] + } + ] + }, + "doublade": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["ironhead", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], + "abilities": ["No Guard"] + } + ] + }, + "aegislash": { + "level": 78, + "sets": [ + { + "role": "Staller", + "movepool": ["ironhead", "kingsshield", "shadowball", "substitute", "toxic"], + "abilities": ["Stance Change"] + }, + { + "role": "Setup Sweeper", + "movepool": ["ironhead", "kingsshield", "sacredsword", "shadowclaw", "shadowsneak", "swordsdance"], + "abilities": ["Stance Change"], + "preferredTypes": ["Steel"] + } + ] + }, + "aromatisse": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["calmmind", "moonblast", "protect", "toxic", "wish"], + "abilities": ["Aroma Veil"] + } + ] + }, + "slurpuff": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bellydrum", "drainpunch", "playrough", "return"], + "abilities": ["Unburden"] + } + ] + }, + "malamar": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["knockoff", "rest", "sleeptalk", "superpower"], + "abilities": ["Contrary"] + }, + { + "role": "Z-Move user", + "movepool": ["happyhour", "knockoff", "psychocut", "superpower"], + "abilities": ["Contrary"], + "preferredTypes": ["Normal"] + } + ] + }, + "barbaracle": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["earthquake", "liquidation", "lowkick", "shellsmash", "stoneedge"], + "abilities": ["Tough Claws"] + } + ] + }, + "dragalge": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "focusblast", "sludgewave", "toxicspikes"], + "abilities": ["Adaptability"] + }, + { + "role": "Wallbreaker", + "movepool": ["dracometeor", "dragonpulse", "focusblast", "sludgewave"], + "abilities": ["Adaptability"] + } + ] + }, + "clawitzer": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["aurasphere", "darkpulse", "icebeam", "scald", "uturn", "waterpulse"], + "abilities": ["Mega Launcher"] + } + ] + }, + "heliolisk": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["darkpulse", "glare", "hypervoice", "surf", "thunderbolt", "voltswitch"], + "abilities": ["Dry Skin"] + }, + { + "role": "Setup Sweeper", + "movepool": ["hypervoice", "raindance", "surf", "thunder"], + "abilities": ["Dry Skin"] + } + ] + }, + "tyrantrum": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dragondance", "earthquake", "headsmash", "outrage", "superpower"], + "abilities": ["Rock Head"], + "preferredTypes": ["Ground"] + }, + { + "role": "Z-Move user", + "movepool": ["dragondance", "earthquake", "headsmash", "outrage"], + "abilities": ["Rock Head"], + "preferredTypes": ["Dragon", "Rock"] + } + ] + }, + "aurorus": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["ancientpower", "blizzard", "earthpower", "freezedry", "stealthrock", "thunderwave"], + "abilities": ["Snow Warning"], + "preferredTypes": ["Ground"] + } + ] + }, + "sylveon": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "hiddenpowerground", "hypervoice", "protect", "psyshock", "wish"], + "abilities": ["Pixilate"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hypervoice", "protect", "wish"], + "abilities": ["Pixilate"] + } + ] + }, + "hawlucha": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "highjumpkick", "skyattack", "substitute", "swordsdance"], + "abilities": ["Unburden"] + } + ] + }, + "dedenne": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["protect", "recycle", "thunderbolt", "toxic"], + "abilities": ["Cheek Pouch"] + }, + { + "role": "Staller", + "movepool": ["recycle", "substitute", "superfang", "thunderbolt", "toxic", "uturn"], + "abilities": ["Cheek Pouch"] + } + ] + }, + "carbink": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["lightscreen", "moonblast", "powergem", "reflect", "stealthrock", "toxic"], + "abilities": ["Sturdy"] + } + ] + }, + "goodra": { + "level": 85, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["dracometeor", "dragontail", "earthquake", "fireblast", "powerwhip", "sludgebomb"], + "abilities": ["Sap Sipper"] + } + ] + }, + "klefki": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["dazzlinggleam", "foulplay", "spikes", "thunderwave"], + "abilities": ["Prankster"] + }, + { + "role": "Bulky Attacker", + "movepool": ["magnetrise", "playrough", "spikes", "thunderwave"], + "abilities": ["Prankster"] + } + ] + }, + "trevenant": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "earthquake", "hornleech", "rockslide", "shadowclaw", "trickroom", "woodhammer"], + "abilities": ["Natural Cure"] + }, + { + "role": "Staller", + "movepool": ["earthquake", "hornleech", "protect", "toxic"], + "abilities": ["Harvest"] + } + ] + }, + "gourgeistsmall": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "gourgeistlarge": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "gourgeist": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "gourgeistsuper": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["seedbomb", "shadowsneak", "synthesis", "willowisp"], + "abilities": ["Frisk"] + } + ] + }, + "avalugg": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["avalanche", "curse", "earthquake", "rapidspin", "recover"], + "abilities": ["Sturdy"] + } + ] + }, + "noivern": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["boomburst", "dracometeor", "flamethrower", "hurricane", "roost", "switcheroo"], + "abilities": ["Infiltrator"] + }, + { + "role": "Fast Support", + "movepool": ["defog", "dracometeor", "flamethrower", "hurricane", "roost", "uturn"], + "abilities": ["Infiltrator"] + } + ] + }, + "xerneas": { + "level": 64, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["focusblast", "geomancy", "moonblast", "psyshock"], + "abilities": ["Fairy Aura"] + } + ] + }, + "yveltal": { + "level": 70, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["knockoff", "oblivionwing", "roost", "suckerpunch", "taunt", "toxic", "uturn"], + "abilities": ["Dark Aura"] + } + ] + }, + "zygarde": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["dragondance", "extremespeed", "outrage", "substitute", "thousandarrows"], + "abilities": ["Power Construct"] + }, + { + "role": "Bulky Setup", + "movepool": ["coil", "rest", "sleeptalk", "thousandarrows"], + "abilities": ["Power Construct"] + } + ] + }, + "zygarde10": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["extremespeed", "irontail", "outrage", "thousandarrows"], + "abilities": ["Aura Break"] + }, + { + "role": "Setup Sweeper", + "movepool": ["coil", "extremespeed", "irontail", "outrage", "thousandarrows"], + "abilities": ["Aura Break"] + }, + { + "role": "Z-Move user", + "movepool": ["coil", "extremespeed", "irontail", "outrage", "thousandarrows"], + "abilities": ["Aura Break"], + "preferredTypes": ["Dragon"] + } + ] + }, + "diancie": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["diamondstorm", "earthpower", "healbell", "moonblast", "stealthrock", "toxic"], + "abilities": ["Clear Body"] + } + ] + }, + "dianciemega": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "diamondstorm", "earthpower", "moonblast", "stealthrock"], + "abilities": ["Clear Body"] + } + ] + }, + "hoopa": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "nastyplot", "psychic", "psyshock", "shadowball", "trick"], + "abilities": ["Magician"] + } + ] + }, + "hoopaunbound": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["drainpunch", "gunkshot", "hyperspacefury", "trick", "zenheadbutt"], + "abilities": ["Magician"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Bulky Attacker", + "movepool": ["drainpunch", "gunkshot", "hyperspacefury", "psychic", "trick"], + "abilities": ["Magician"], + "preferredTypes": ["Psychic"] + } + ] + }, + "volcanion": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "earthpower", "fireblast", "sludgebomb", "steameruption", "superpower", "toxic"], + "abilities": ["Water Absorb"] + } + ] + }, + "decidueye": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "leafstorm", "roost", "spiritshackle", "uturn"], + "abilities": ["Overgrow"] + }, + { + "role": "Z-Move user", + "movepool": ["leafblade", "shadowsneak", "spiritshackle", "swordsdance"], + "abilities": ["Overgrow"] + } + ] + }, + "incineroar": { + "level": 83, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["darkestlariat", "earthquake", "fakeout", "flareblitz", "knockoff", "overheat", "uturn"], + "abilities": ["Intimidate"] + }, + { + "role": "Z-Move user", + "movepool": ["darkestlariat", "flamecharge", "flareblitz", "swordsdance"], + "abilities": ["Intimidate"] + } + ] + }, + "primarina": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["hydropump", "moonblast", "psychic", "scald"], + "abilities": ["Torrent"] + } + ] + }, + "toucannon": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["beakblast", "boomburst", "brickbreak", "bulletseed", "roost"], + "abilities": ["Keen Eye", "Skill Link"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bravebird", "brickbreak", "bulletseed", "knockoff", "rockblast", "swordsdance", "uturn"], + "abilities": ["Keen Eye", "Skill Link"] + } + ] + }, + "gumshoos": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["crunch", "earthquake", "return", "uturn"], + "abilities": ["Adaptability", "Stakeout"] + } + ] + }, + "vikavolt": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["agility", "bugbuzz", "energyball", "thunderbolt", "voltswitch"], + "abilities": ["Levitate"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bugbuzz", "discharge", "energyball", "roost", "toxic", "voltswitch"], + "abilities": ["Levitate"], + "preferredTypes": ["Bug"] + } + ] + }, + "crabominable": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["closecombat", "drainpunch", "earthquake", "icehammer", "stoneedge"], + "abilities": ["Iron Fist"] + }, + { + "role": "AV Pivot", + "movepool": ["drainpunch", "earthquake", "icehammer", "thunderpunch"], + "abilities": ["Iron Fist"] + } + ] + }, + "oricorio": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "hurricane", "revelationdance", "roost", "toxic"], + "abilities": ["Dancer"] + } + ] + }, + "oricoriopompom": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "hurricane", "revelationdance", "roost", "toxic"], + "abilities": ["Dancer"] + } + ] + }, + "oricoriopau": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "hurricane", "revelationdance", "roost", "toxic"], + "abilities": ["Dancer"] + } + ] + }, + "oricoriosensu": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "defog", "hurricane", "revelationdance", "roost", "toxic"], + "abilities": ["Dancer"] + } + ] + }, + "ribombee": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bugbuzz", "hiddenpowerground", "moonblast", "quiverdance", "roost"], + "abilities": ["Shield Dust"] + }, + { + "role": "Fast Support", + "movepool": ["aromatherapy", "moonblast", "roost", "stickyweb", "stunspore", "uturn"], + "abilities": ["Shield Dust"] + } + ] + }, + "lycanroc": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["accelerock", "drillrun", "stoneedge", "swordsdance", "zenheadbutt"], + "abilities": ["Sand Rush"], + "preferredTypes": ["Ground"] + }, + { + "role": "Z-Move user", + "movepool": ["accelerock", "drillrun", "stoneedge", "swordsdance", "zenheadbutt"], + "abilities": ["Sand Rush"], + "preferredTypes": ["Ground"] + } + ] + }, + "lycanrocmidnight": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["stealthrock", "stompingtantrum", "stoneedge", "suckerpunch", "swordsdance"], + "abilities": ["No Guard"] + }, + { + "role": "Z-Move user", + "movepool": ["stompingtantrum", "stoneedge", "suckerpunch", "swordsdance"], + "abilities": ["No Guard"] + } + ] + }, + "lycanrocdusk": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["accelerock", "drillrun", "return", "stoneedge", "swordsdance", "zenheadbutt"], + "abilities": ["Tough Claws"], + "preferredTypes": ["Ground"] + }, + { + "role": "Z-Move user", + "movepool": ["accelerock", "drillrun", "return", "stoneedge", "swordsdance", "zenheadbutt"], + "abilities": ["Tough Claws"], + "preferredTypes": ["Ground"] + } + ] + }, + "wishiwashi": { + "level": 89, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["earthquake", "hiddenpowergrass", "hydropump", "icebeam", "scald", "uturn"], + "abilities": ["Schooling"], + "preferredTypes": ["Ice"] + }, + { + "role": "Wallbreaker", + "movepool": ["hiddenpowergrass", "hydropump", "icebeam", "scald"], + "abilities": ["Schooling"] + } + ] + }, + "toxapex": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["haze", "recover", "scald", "toxic", "toxicspikes"], + "abilities": ["Regenerator"] + }, + { + "role": "Staller", + "movepool": ["banefulbunker", "recover", "scald", "toxic"], + "abilities": ["Regenerator"] + } + ] + }, + "mudsdale": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["closecombat", "earthquake", "heavyslam", "rockslide", "stealthrock", "toxic"], + "abilities": ["Stamina"], + "preferredTypes": ["Rock"] + } + ] + }, + "araquanid": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["leechlife", "liquidation", "mirrorcoat", "stickyweb", "toxic"], + "abilities": ["Water Bubble"] + } + ] + }, + "lurantis": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["defog", "hiddenpowerice", "knockoff", "leafstorm", "superpower", "synthesis"], + "abilities": ["Contrary"], + "preferredTypes": ["Fighting"] + }, + { + "role": "AV Pivot", + "movepool": ["hiddenpowerice", "hiddenpowerrock", "knockoff", "leafstorm", "superpower"], + "abilities": ["Contrary"] + } + ] + }, + "shiinotic": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["gigadrain", "hiddenpowerground", "leechseed", "moonblast", "spore", "strengthsap"], + "abilities": ["Effect Spore"] + } + ] + }, + "salazzle": { + "level": 84, + "sets": [ + { + "role": "Z-Move user", + "movepool": ["dragonpulse", "fireblast", "hiddenpowergrass", "nastyplot", "sludgewave"], + "abilities": ["Corrosion"], + "preferredTypes": ["Dragon", "Fire"] + }, + { + "role": "Staller", + "movepool": ["flamethrower", "protect", "substitute", "toxic"], + "abilities": ["Corrosion"] + } + ] + }, + "bewear": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["doubleedge", "return", "shadowclaw", "superpower", "swordsdance"], + "abilities": ["Fluffy"] + }, + { + "role": "Fast Attacker", + "movepool": ["doubleedge", "drainpunch", "shadowclaw", "superpower"], + "abilities": ["Fluffy"] + }, + { + "role": "Bulky Setup", + "movepool": ["bulkup", "doubleedge", "drainpunch", "return", "shadowclaw"], + "abilities": ["Fluffy"] + } + ] + }, + "tsareena": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["highjumpkick", "knockoff", "powerwhip", "rapidspin", "synthesis", "uturn"], + "abilities": ["Queenly Majesty"], + "preferredTypes": ["Fighting"] + } + ] + }, + "comfey": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["aromatherapy", "defog", "drainingkiss", "synthesis", "toxic", "uturn"], + "abilities": ["Triage"] + }, + { + "role": "Bulky Setup", + "movepool": ["calmmind", "drainingkiss", "gigadrain", "hiddenpowerground"], + "abilities": ["Triage"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "drainingkiss", "gigadrain", "hiddenpowerground", "synthesis"], + "abilities": ["Triage"], + "preferredTypes": ["Ground"] + } + ] + }, + "oranguru": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["focusblast", "nastyplot", "naturepower", "psychic", "psyshock", "thunderbolt", "trick"], + "abilities": ["Inner Focus"] + } + ] + }, + "passimian": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["closecombat", "earthquake", "gunkshot", "knockoff", "rockslide", "uturn"], + "abilities": ["Defiant"], + "preferredTypes": ["Dark"] + }, + { + "role": "Bulky Setup", + "movepool": ["bulkup", "drainpunch", "gunkshot", "knockoff"], + "abilities": ["Defiant"] + } + ] + }, + "golisopod": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["firstimpression", "knockoff", "leechlife", "liquidation", "spikes"], + "abilities": ["Emergency Exit"] + } + ] + }, + "palossand": { + "level": 89, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthpower", "shadowball", "shoreup", "stealthrock", "toxic"], + "abilities": ["Water Compaction"] + } + ] + }, + "pyukumuku": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["block", "recover", "soak", "toxic"], + "abilities": ["Unaware"] + } + ] + }, + "typenull": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["payback", "rest", "return", "sleeptalk", "swordsdance"], + "abilities": ["Battle Armor"] + } + ] + }, + "silvally": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["crunch", "doubleedge", "explosion", "flamecharge", "ironhead", "return", "swordsdance"], + "abilities": ["RKS System"], + "preferredTypes": ["Dark"] + } + ] + }, + "silvallybug": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "icebeam", "thunderbolt", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallydark": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["flamecharge", "ironhead", "multiattack", "swordsdance"], + "abilities": ["RKS System"] + } + ] + }, + "silvallydragon": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "dracometeor", "flamethrower", "ironhead", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"] + }, + { + "role": "Setup Sweeper", + "movepool": ["flamecharge", "ironhead", "outrage", "swordsdance"], + "abilities": ["RKS System"] + } + ] + }, + "silvallyelectric": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "icebeam", "multiattack", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"], + "preferredTypes": ["Ice"] + } + ] + }, + "silvallyfairy": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "multiattack", "partingshot", "surf", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallyfighting": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "icebeam", "multiattack", "partingshot", "shadowball", "toxic", "uturn"], + "abilities": ["RKS System"] + }, + { + "role": "Setup Sweeper", + "movepool": ["crunch", "flamecharge", "ironhead", "multiattack", "rockslide", "swordsdance"], + "abilities": ["RKS System"], + "preferredTypes": ["Dark"] + } + ] + }, + "silvallyfire": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "icebeam", "multiattack", "partingshot", "surf", "thunderbolt", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallyflying": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "ironhead", "multiattack", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallyghost": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "icebeam", "multiattack", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"] + }, + { + "role": "Setup Sweeper", + "movepool": ["explosion", "multiattack", "swordsdance", "xscissor"], + "abilities": ["RKS System"] + } + ] + }, + "silvallygrass": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "icebeam", "multiattack", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallyground": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "icebeam", "multiattack", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"] + }, + { + "role": "Setup Sweeper", + "movepool": ["flamecharge", "multiattack", "rockslide", "swordsdance"], + "abilities": ["RKS System"] + } + ] + }, + "silvallyice": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "multiattack", "partingshot", "thunderbolt", "toxic", "uturn"], + "abilities": ["RKS System"], + "preferredTypes": ["Electric"] + } + ] + }, + "silvallypoison": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "multiattack", "partingshot", "surf", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallypsychic": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "multiattack", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallyrock": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "grasspledge", "multiattack", "partingshot", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallysteel": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "flamethrower", "multiattack", "partingshot", "thunderbolt", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "silvallywater": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["defog", "icebeam", "multiattack", "partingshot", "thunderbolt", "toxic", "uturn"], + "abilities": ["RKS System"] + } + ] + }, + "minior": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["acrobatics", "earthquake", "powergem", "shellsmash"], + "abilities": ["Shields Down"] + } + ] + }, + "komala": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "knockoff", "rapidspin", "return", "suckerpunch", "superpower", "uturn", "woodhammer"], + "abilities": ["Comatose"], + "preferredTypes": ["Dark"] + } + ] + }, + "turtonator": { + "level": 88, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["dracometeor", "dragontail", "earthquake", "explosion", "fireblast"], + "abilities": ["Shell Armor"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dracometeor", "dragonpulse", "earthquake", "fireblast", "shellsmash"], + "abilities": ["Shell Armor"] + } + ] + }, + "togedemaru": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["ironhead", "nuzzle", "spikyshield", "uturn", "wish"], + "abilities": ["Iron Barbs", "Lightning Rod", "Sturdy"] + }, + { + "role": "Fast Support", + "movepool": ["ironhead", "spikyshield", "uturn", "wish", "zingzap"], + "abilities": ["Iron Barbs", "Lightning Rod", "Sturdy"] + }, + { + "role": "AV Pivot", + "movepool": ["ironhead", "nuzzle", "superfang", "uturn", "zingzap"], + "abilities": ["Iron Barbs", "Lightning Rod", "Sturdy"], + "preferredTypes": ["Steel"] + } + ] + }, + "mimikyu": { + "level": 73, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["drainpunch", "playrough", "shadowclaw", "shadowsneak", "swordsdance"], + "abilities": ["Disguise"] + }, + { + "role": "Z-Move user", + "movepool": ["drainpunch", "playrough", "shadowclaw", "shadowsneak", "swordsdance"], + "abilities": ["Disguise"] + } + ] + }, + "bruxish": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["aquajet", "crunch", "icefang", "liquidation", "psychicfangs", "swordsdance"], + "abilities": ["Strong Jaw"], + "preferredTypes": ["Dark"] + } + ] + }, + "drampa": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["dracometeor", "fireblast", "hypervoice", "thunderbolt"], + "abilities": ["Sap Sipper"] + }, + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "fireblast", "hypervoice", "roost"], + "abilities": ["Berserk"] + }, + { + "role": "Bulky Attacker", + "movepool": ["dracometeor", "fireblast", "glare", "hypervoice", "roost"], + "abilities": ["Berserk"] + } + ] + }, + "dhelmise": { + "level": 90, + "sets": [ + { + "role": "Fast Support", + "movepool": ["anchorshot", "earthquake", "knockoff", "powerwhip", "rapidspin", "synthesis"], + "abilities": ["Steelworker"], + "preferredTypes": ["Steel"] + } + ] + }, + "kommoo": { + "level": 75, + "sets": [ + { + "role": "Z-Move user", + "movepool": ["clangingscales", "closecombat", "dragondance", "ironhead"], + "abilities": ["Bulletproof", "Soundproof"], + "preferredTypes": ["Dragon"] + }, + { + "role": "Setup Sweeper", + "movepool": ["closecombat", "dragondance", "ironhead", "outrage"], + "abilities": ["Bulletproof", "Soundproof"] + } + ] + }, + "tapukoko": { + "level": 77, + "sets": [ + { + "role": "Fast Support", + "movepool": ["bravebird", "dazzlinggleam", "defog", "naturesmadness", "uturn", "wildcharge"], + "abilities": ["Electric Surge"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "dazzlinggleam", "grassknot", "roost", "thunderbolt"], + "abilities": ["Electric Surge"], + "preferredTypes": ["Electric"] + } + ] + }, + "tapulele": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["focusblast", "moonblast", "psychic", "psyshock"], + "abilities": ["Psychic Surge"] + }, + { + "role": "Setup Sweeper", + "movepool": ["calmmind", "focusblast", "moonblast", "psychic", "psyshock"], + "abilities": ["Psychic Surge"] + } + ] + }, + "tapubulu": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "hornleech", "megahorn", "stoneedge", "superpower", "woodhammer"], + "abilities": ["Grassy Surge"] + } + ] + }, + "tapufini": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["calmmind", "hydropump", "icebeam", "moonblast", "surf", "taunt"], + "abilities": ["Misty Surge"] + } + ] + }, + "solgaleo": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["earthquake", "flareblitz", "knockoff", "morningsun", "stoneedge", "sunsteelstrike", "zenheadbutt"], + "abilities": ["Full Metal Body"], + "preferredTypes": ["Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "flareblitz", "knockoff", "stoneedge", "sunsteelstrike", "zenheadbutt"], + "abilities": ["Full Metal Body"], + "preferredTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["earthquake", "flamecharge", "knockoff", "psychic", "sunsteelstrike"], + "abilities": ["Full Metal Body"], + "preferredTypes": ["Ground"] + } + ] + }, + "lunala": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "moonblast", "moongeistbeam", "roost"], + "abilities": ["Shadow Shield"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "moonblast", "moongeistbeam", "psyshock", "roost"], + "abilities": ["Shadow Shield"] + } + ] + }, + "nihilego": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["grassknot", "hiddenpowerfire", "hiddenpowerground", "powergem", "sludgewave", "stealthrock", "thunderbolt", "toxicspikes"], + "abilities": ["Beast Boost"], + "preferredTypes": ["Rock"] + } + ] + }, + "buzzwole": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["drainpunch", "earthquake", "ironhead", "leechlife", "stoneedge", "superpower"], + "abilities": ["Beast Boost"] + }, + { + "role": "Bulky Attacker", + "movepool": ["bulkup", "drainpunch", "leechlife", "roost", "stoneedge", "toxic"], + "abilities": ["Beast Boost"] + } + ] + }, + "pheromosa": { + "level": 76, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["highjumpkick", "icebeam", "poisonjab", "throatchop", "uturn"], + "abilities": ["Beast Boost"], + "preferredTypes": ["Dark"] + } + ] + }, + "xurkitree": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dazzlinggleam", "energyball", "hiddenpowerice", "tailglow", "thunderbolt", "voltswitch"], + "abilities": ["Beast Boost"] + }, + { + "role": "Z-Move user", + "movepool": ["dazzlinggleam", "electricterrain", "energyball", "hiddenpowerice", "thunderbolt"], + "abilities": ["Beast Boost"], + "preferredTypes": ["Electric"] + } + ] + }, + "celesteela": { + "level": 78, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["airslash", "earthquake", "fireblast", "heavyslam"], + "abilities": ["Beast Boost"] + }, + { + "role": "Staller", + "movepool": ["airslash", "heavyslam", "leechseed", "protect"], + "abilities": ["Beast Boost"] + }, + { + "role": "Bulky Setup", + "movepool": ["airslash", "autotomize", "earthquake", "fireblast", "heavyslam"], + "abilities": ["Beast Boost"] + } + ] + }, + "kartana": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["knockoff", "leafblade", "sacredsword", "smartstrike", "swordsdance"], + "abilities": ["Beast Boost"] + }, + { + "role": "Z-Move user", + "movepool": ["knockoff", "leafblade", "sacredsword", "smartstrike", "swordsdance"], + "abilities": ["Beast Boost"], + "preferredTypes": ["Fighting", "Grass", "Steel"] + } + ] + }, + "guzzlord": { + "level": 87, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["dracometeor", "earthquake", "fireblast", "heavyslam", "knockoff"], + "abilities": ["Beast Boost"] + } + ] + }, + "necrozma": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "heatwave", "moonlight", "photongeyser", "stealthrock"], + "abilities": ["Prism Armor"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "heatwave", "moonlight", "photongeyser"], + "abilities": ["Prism Armor"], + "preferredTypes": ["Psychic"] + }, + { + "role": "Fast Attacker", + "movepool": ["earthquake", "knockoff", "photongeyser", "swordsdance"], + "abilities": ["Prism Armor"] + } + ] + }, + "necrozmaduskmane": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["autotomize", "earthquake", "knockoff", "photongeyser", "sunsteelstrike", "swordsdance"], + "abilities": ["Prism Armor"], + "preferredTypes": ["Ground"] + }, + { + "role": "Z-Move user", + "movepool": ["autotomize", "earthquake", "knockoff", "photongeyser", "sunsteelstrike", "swordsdance"], + "abilities": ["Prism Armor"], + "preferredTypes": ["Psychic"] + } + ] + }, + "necrozmadawnwings": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["autotomize", "calmmind", "heatwave", "moongeistbeam", "photongeyser", "signalbeam"], + "abilities": ["Prism Armor"] + }, + { + "role": "Z-Move user", + "movepool": ["autotomize", "calmmind", "heatwave", "moongeistbeam", "photongeyser", "signalbeam"], + "abilities": ["Prism Armor"] + } + ] + }, + "magearna": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["calmmind", "flashcannon", "fleurcannon", "shiftgear"], + "abilities": ["Soul-Heart"] + }, + { + "role": "Bulky Support", + "movepool": ["aurasphere", "flashcannon", "fleurcannon", "healbell", "painsplit", "thunderwave", "voltswitch"], + "abilities": ["Soul-Heart"] + }, + { + "role": "Z-Move user", + "movepool": ["aurasphere", "fleurcannon", "ironhead", "shiftgear"], + "abilities": ["Soul-Heart"], + "preferredTypes": ["Fairy", "Steel"] + } + ] + }, + "marshadow": { + "level": 70, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["bulkup", "closecombat", "rocktomb", "shadowsneak", "spectralthief"], + "abilities": ["Technician"] + }, + { + "role": "Z-Move user", + "movepool": ["bulkup", "closecombat", "rocktomb", "shadowsneak", "spectralthief"], + "abilities": ["Technician"] + } + ] + }, + "naganadel": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["dracometeor", "fireblast", "sludgewave", "uturn"], + "abilities": ["Beast Boost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["dracometeor", "fireblast", "nastyplot", "sludgewave"], + "abilities": ["Beast Boost"] + }, + { + "role": "Z-Move user", + "movepool": ["dracometeor", "fireblast", "nastyplot", "sludgewave"], + "abilities": ["Beast Boost"], + "preferredTypes": ["Dragon"] + } + ] + }, + "stakataka": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["earthquake", "gyroball", "stoneedge", "superpower", "trickroom"], + "abilities": ["Beast Boost"] + } + ] + }, + "blacephalon": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["calmmind", "fireblast", "hiddenpowerice", "psyshock", "shadowball", "trick"], + "abilities": ["Beast Boost"] + }, + { + "role": "Z-Move user", + "movepool": ["calmmind", "fireblast", "hiddenpowerice", "psyshock", "shadowball"], + "abilities": ["Beast Boost"], + "preferredTypes": ["Fire", "Ghost"] + } + ] + }, + "zeraora": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["bulkup", "closecombat", "knockoff", "plasmafists"], + "abilities": ["Volt Absorb"] + }, + { + "role": "AV Pivot", + "movepool": ["closecombat", "grassknot", "hiddenpowerice", "knockoff", "plasmafists", "voltswitch"], + "abilities": ["Volt Absorb"], + "preferredTypes": ["Fighting"] + } + ] + } +} diff --git a/data/random-battles/gen7/teams.ts b/data/random-battles/gen7/teams.ts new file mode 100644 index 000000000000..d7fb776a4063 --- /dev/null +++ b/data/random-battles/gen7/teams.ts @@ -0,0 +1,1946 @@ +import {MoveCounter, TeamData, RandomGen8Teams} from '../gen8/teams'; +import {PRNG, PRNGSeed} from '../../../sim/prng'; +import {toID} from '../../../sim/dex'; + +export interface BattleFactorySpecies { + flags: {megaOnly?: 1, zmoveOnly?: 1, limEevee?: 1}; + sets: BattleFactorySet[]; +} +interface BattleFactorySet { + species: string; + item: string; + ability: string; + nature: string; + moves: string[]; + evs?: Partial; + ivs?: Partial; +} + +export const ZeroAttackHPIVs: {[k: string]: SparseStatsTable} = { + grass: {hp: 30, spa: 30}, + fire: {spa: 30, spe: 30}, + ice: {def: 30}, + ground: {spa: 30, spd: 30}, + fighting: {def: 30, spa: 30, spd: 30, spe: 30}, + electric: {def: 30, spe: 30}, + psychic: {spe: 30}, + flying: {spa: 30, spd: 30, spe: 30}, + rock: {def: 30, spd: 30, spe: 30}, +}; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'recycle', 'roost', 'shoreup', 'slackoff', 'softboiled', 'strengthsap', 'synthesis', +]; +// Moves that drop stats: +const CONTRARY_MOVES = [ + 'closecombat', 'leafstorm', 'overheat', 'superpower', 'vcreate', +]; +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'poweruppunch', 'screech', 'swordsdance', +]; +// Moves which boost Special Attack: +const SPECIAL_SETUP = [ + 'calmmind', 'chargebeam', 'geomancy', 'nastyplot', 'quiverdance', 'tailglow', +]; +// Moves that boost Attack AND Special Attack: +const MIXED_SETUP = [ + 'celebrate', 'growth', 'happyhour', 'holdhands', 'shellsmash', 'workup', +]; +// Some moves that only boost Speed: +const SPEED_SETUP = [ + 'agility', 'autotomize', 'flamecharge', 'rockpolish', +]; +// Conglomerate for ease of access +const SETUP = [ + 'acidarmor', 'agility', 'autotomize', 'bellydrum', 'bulkup', 'calmmind', 'celebrate', 'coil', 'conversion', 'curse', 'dragondance', + 'electricterrain', 'flamecharge', 'focusenergy', 'geomancy', 'growth', 'happyhour', 'holdhands', 'honeclaws', 'howl', 'irondefense', 'meditate', + 'nastyplot', 'poweruppunch', 'quiverdance', 'raindance', 'rockpolish', 'shellsmash', 'shiftgear', 'swordsdance', 'tailglow', 'workup', +]; +// Moves that shouldn't be the only STAB moves: +const NO_STAB = [ + 'accelerock', 'aquajet', 'bulletpunch', 'clearsmog', 'dragontail', 'eruption', 'explosion', + 'fakeout', 'firstimpression', 'flamecharge', 'futuresight', 'iceshard', 'icywind', 'incinerate', 'infestation', 'machpunch', + 'nuzzle', 'pluck', 'poweruppunch', 'pursuit', 'quickattack', 'rapidspin', 'reversal', 'selfdestruct', 'shadowsneak', + 'skyattack', 'skydrop', 'snarl', 'suckerpunch', 'uturn', 'watershuriken', 'vacuumwave', 'voltswitch', 'waterspout', +]; +// Hazard-setting moves +const HAZARDS = [ + 'spikes', 'stealthrock', 'stickyweb', 'toxicspikes', +]; +// Protect and its variants +const PROTECT_MOVES = [ + 'banefulbunker', 'kingsshield', 'protect', 'spikyshield', +]; +// Moves that switch the user out +const PIVOT_MOVES = [ + 'partingshot', 'uturn', 'voltswitch', +]; + +// Moves that should be paired together when possible +const MOVE_PAIRS = [ + ['lightscreen', 'reflect'], + ['sleeptalk', 'rest'], + ['protect', 'wish'], + ['spikyshield', 'wish'], + ['leechseed', 'substitute'], + ['perishsong', 'protect'], + ['solarbeam', 'sunnyday'], +]; + +/** Pokemon who always want priority STAB, and are fine with it as its only STAB move of that type */ +const PRIORITY_POKEMON = [ + 'aegislash', 'banette', 'breloom', 'cacturne', 'doublade', 'dusknoir', 'golisopod', 'honchkrow', 'mimikyu', 'scizor', 'scizormega', 'shedinja', +]; +function sereneGraceBenefits(move: Move) { + return move.secondary?.chance && move.secondary.chance >= 20 && move.secondary.chance < 100; +} + +export class RandomGen7Teams extends RandomGen8Teams { + randomSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + protected cachedStatusMoves: ID[]; + + constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { + super(format, prng); + + this.noStab = NO_STAB; + this.priorityPokemon = PRIORITY_POKEMON; + + this.moveEnforcementCheckers = { + Bug: (movePool, moves, abilities, types, counter) => ( + ['megahorn', 'pinmissile'].some(m => movePool.includes(m)) || + !counter.get('Bug') && (abilities.includes('Tinted Lens') || abilities.includes('Adaptability')) + ), + Dark: (movePool, moves, abilities, types, counter) => !counter.get('Dark'), + Dragon: (movePool, moves, abilities, types, counter) => !counter.get('Dragon') && !abilities.includes('Aerilate'), + Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), + Fairy: (movePool, moves, abilities, types, counter) => !counter.get('Fairy'), + Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), + Fire: (movePool, moves, abilities, types, counter) => !counter.get('Fire'), + Flying: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Flying') && !['aerodactyl', 'aerodactylmega', 'mantine'].includes(species.id) && + !movePool.includes('hiddenpowerflying') + ), + Ghost: (movePool, moves, abilities, types, counter) => !counter.get('Ghost'), + Grass: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Grass') && (species.baseStats.atk >= 100 || movePool.includes('leafstorm')) + ), + Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), + Ice: (movePool, moves, abilities, types, counter) => ( + !counter.get('Ice') || (moves.has('icebeam') && movePool.includes('freezedry')) || + (abilities.includes('Refrigerate') && movePool.includes('return')) + ), + Normal: movePool => (movePool.includes('boomburst') || movePool.includes('hypervoice')), + Poison: (movePool, moves, abilities, types, counter) => !counter.get('Poison'), + Psychic: (movePool, moves, abilities, types, counter) => ( + !counter.get('Psychic') && ( + types.has('Fighting') || movePool.includes('psychicfangs') || movePool.includes('calmmind') + ) + ), + Rock: (movePool, moves, abilities, types, counter, species) => (!counter.get('Rock') && species.baseStats.atk >= 80), + Steel: (movePool, moves, abilities, types, counter, species) => (!counter.get('Steel') && species.baseStats.atk >= 100), + Water: (movePool, moves, abilities, types, counter) => !counter.get('Water'), + }; + // Nature Power is Tri Attack this gen + this.cachedStatusMoves = this.dex.moves.all() + .filter(move => move.category === 'Status' && move.id !== 'naturepower') + .map(move => move.id); + } + + newQueryMoves( + moves: Set | null, + species: Species, + preferredType: string, + abilities: string[], + ): MoveCounter { + // This is primarily a helper function for random setbuilder functions. + const counter = new MoveCounter(); + const types = species.types; + if (!moves?.size) return counter; + + const categories = {Physical: 0, Special: 0, Status: 0}; + + // Iterate through all moves we've chosen so far and keep track of what they do: + for (const moveid of moves) { + let move = this.dex.moves.get(moveid); + // Nature Power calls Earthquake in Gen 5 + if (this.gen === 5 && moveid === 'naturepower') move = this.dex.moves.get('earthquake'); + if (this.gen > 5 && moveid === 'naturepower') move = this.dex.moves.get('triattack'); + + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (move.damage || move.damageCallback) { + // Moves that do a set amount of damage: + counter.add('damage'); + counter.damagingMoves.add(move); + } else { + // Are Physical/Special/Status moves: + categories[move.category]++; + } + // Moves that have a low base power: + if (moveid === 'lowkick' || (move.basePower && move.basePower <= 60 && !['nuzzle', 'rapidspin'].includes(moveid))) { + counter.add('technician'); + } + // Moves that hit up to 5 times: + if (move.multihit && Array.isArray(move.multihit) && move.multihit[1] === 5) counter.add('skilllink'); + if (move.recoil || move.hasCrashDamage) counter.add('recoil'); + if (move.drain) counter.add('drain'); + // Moves which have a base power: + if (move.basePower || move.basePowerCallback) { + if (!this.noStab.includes(moveid) || this.priorityPokemon.includes(species.id) && move.priority > 0) { + counter.add(moveType); + if (types.includes(moveType)) counter.add('stab'); + if (preferredType === moveType) counter.add('preferred'); + counter.damagingMoves.add(move); + } + if (move.flags['bite']) counter.add('strongjaw'); + if (move.flags['punch']) counter.add('ironfist'); + if (move.flags['sound']) counter.add('sound'); + if (move.priority > 0) counter.add('priority'); + } + // Moves with secondary effects: + if (move.secondary || move.hasSheerForce) { + counter.add('sheerforce'); + if (sereneGraceBenefits(move)) { + counter.add('serenegrace'); + } + } + // Moves with low accuracy: + if (move.accuracy && move.accuracy !== true && move.accuracy < 90) counter.add('inaccurate'); + + // Moves that change stats: + if (RECOVERY_MOVES.includes(moveid)) counter.add('recovery'); + if (CONTRARY_MOVES.includes(moveid)) counter.add('contrary'); + if (PHYSICAL_SETUP.includes(moveid)) counter.add('physicalsetup'); + if (SPECIAL_SETUP.includes(moveid)) counter.add('specialsetup'); + if (MIXED_SETUP.includes(moveid)) counter.add('mixedsetup'); + if (SPEED_SETUP.includes(moveid)) counter.add('speedsetup'); + if (SETUP.includes(moveid)) counter.add('setup'); + if (HAZARDS.includes(moveid)) counter.add('hazards'); + } + + counter.set('Physical', Math.floor(categories['Physical'])); + counter.set('Special', Math.floor(categories['Special'])); + counter.set('Status', categories['Status']); + return counter; + } + + cullMovePool( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): void { + // Pokemon cannot have multiple Hidden Powers in any circumstance + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + if (hasHiddenPower) { + let movePoolHasHiddenPower = true; + while (movePoolHasHiddenPower) { + movePoolHasHiddenPower = false; + for (const moveid of movePool) { + if (moveid.startsWith('hiddenpower')) { + this.fastPop(movePool, movePool.indexOf(moveid)); + movePoolHasHiddenPower = true; + break; + } + } + } + } + + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there is not room for them both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Team-based move culls + if (teamDetails.screens && movePool.length >= this.maxMoveCount + 2) { + if (movePool.includes('reflect')) this.fastPop(movePool, movePool.indexOf('reflect')); + if (movePool.includes('lightscreen')) this.fastPop(movePool, movePool.indexOf('lightscreen')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stickyWeb) { + if (movePool.includes('stickyweb')) this.fastPop(movePool, movePool.indexOf('stickyweb')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stealthRock) { + if (movePool.includes('stealthrock')) this.fastPop(movePool, movePool.indexOf('stealthrock')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.defog || teamDetails.rapidSpin) { + if (movePool.includes('defog')) this.fastPop(movePool, movePool.indexOf('defog')); + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.toxicSpikes) { + if (movePool.includes('toxicspikes')) this.fastPop(movePool, movePool.indexOf('toxicspikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.spikes && teamDetails.spikes >= 2) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.statusCure) { + if (movePool.includes('aromatherapy')) this.fastPop(movePool, movePool.indexOf('aromatherapy')); + if (movePool.includes('healbell')) this.fastPop(movePool, movePool.indexOf('healbell')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + // Develop additional move lists + const badWithSetup = ['defog', 'dragontail', 'haze', 'healbell', 'nuzzle', 'pursuit', 'rapidspin', 'toxic']; + const statusMoves = this.cachedStatusMoves; + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [statusMoves, ['healingwish', 'memento', 'switcheroo', 'trick']], + [PIVOT_MOVES, PIVOT_MOVES], + [SETUP, PIVOT_MOVES], + [SETUP, HAZARDS], + [SETUP, badWithSetup], + [PHYSICAL_SETUP, PHYSICAL_SETUP], + [SPEED_SETUP, 'quickattack'], + ['defog', HAZARDS], + [['fakeout', 'uturn'], ['switcheroo', 'trick']], + ['substitute', PIVOT_MOVES], + ['leechseed', 'dragontail'], + ['rest', 'substitute'], + [PHYSICAL_SETUP, 'dracometeor'], + [SPECIAL_SETUP, 'knockoff'], + + // These attacks are redundant with each other + ['psychic', 'psyshock'], + [['scald', 'surf'], ['hydropump', 'originpulse', 'waterpulse']], + ['return', ['bodyslam', 'doubleedge', 'headbutt']], + [['fierydance', 'firelash', 'lavaplume'], ['fireblast', 'magmastorm']], + [['flamethrower', 'flareblitz'], ['fireblast', 'overheat']], + ['hornleech', 'woodhammer'], + [['gigadrain', 'leafstorm'], ['energyball', 'leafstorm', 'petaldance', 'powerwhip']], + ['wildcharge', 'thunderbolt'], + ['gunkshot', 'poisonjab'], + [['drainpunch', 'focusblast'], ['closecombat', 'highjumpkick', 'superpower']], + ['dracometeor', 'dragonpulse'], + ['dragonclaw', 'outrage'], + ['knockoff', ['darkestlariat', 'darkpulse', 'foulplay']], + + // Status move incompatibilities + ['toxic', 'toxicspikes'], + ['taunt', 'disable'], + ['defog', ['leechseed', 'substitute']], + + // Assorted hardcodes go here: + // Lunatone + ['moonlight', 'rockpolish'], + // Smeargle + ['nuzzle', 'whirlwind'], + // Liepard + ['copycat', 'uturn'], + // Seviper + ['switcheroo', 'suckerpunch'], + // Jirachi + ['bodyslam', 'healingwish'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + if (!types.includes('Dark') && preferredType !== 'Dark') { + this.incompatibleMoves(moves, movePool, 'knockoff', ['pursuit', 'suckerpunch']); + } + + const statusInflictingMoves = ['thunderwave', 'toxic', 'willowisp', 'yawn']; + if (!abilities.includes('Prankster') && role !== 'Staller') { + this.incompatibleMoves(moves, movePool, statusInflictingMoves, statusInflictingMoves); + } + + if (abilities.includes('Guts')) this.incompatibleMoves(moves, movePool, 'protect', 'swordsdance'); + + // Z-Conversion Porygon-Z + if (species.id === 'porygonz') { + this.incompatibleMoves(moves, movePool, 'shadowball', 'recover'); + } + + // Cull filler moves for otherwise fixed set Stealth Rock users + if (!teamDetails.stealthRock) { + if (species.id === 'registeel' && role === 'Staller') { + if (movePool.includes('thunderwave')) this.fastPop(movePool, movePool.indexOf('thunderwave')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (species.baseSpecies === 'Wormadam' && role === 'Staller') { + if (movePool.includes('infestation')) this.fastPop(movePool, movePool.indexOf('infestation')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + + // Checks for and removes incompatible moves, starting with the first move in movesA. + incompatibleMoves( + moves: Set, + movePool: string[], + movesA: string | string[], + movesB: string | string[], + ): void { + const moveArrayA = (Array.isArray(movesA)) ? movesA : [movesA]; + const moveArrayB = (Array.isArray(movesB)) ? movesB : [movesB]; + if (moves.size + movePool.length <= this.maxMoveCount) return; + for (const moveid1 of moves) { + if (moveArrayB.includes(moveid1)) { + for (const moveid2 of moveArrayA) { + if (moveid1 !== moveid2 && movePool.includes(moveid2)) { + this.fastPop(movePool, movePool.indexOf(moveid2)); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + if (moveArrayA.includes(moveid1)) { + for (const moveid2 of moveArrayB) { + if (moveid1 !== moveid2 && movePool.includes(moveid2)) { + this.fastPop(movePool, movePool.indexOf(moveid2)); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + } + } + + // Adds a move to the moveset, returns the MoveCounter + addMove( + move: string, + moves: Set, + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + movePool: string[], + preferredType: string, + role: RandomTeamsTypes.Role, + ): MoveCounter { + moves.add(move); + this.fastPop(movePool, movePool.indexOf(move)); + const counter = this.newQueryMoves(moves, species, preferredType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, + preferredType, role); + return counter; + } + + // Returns the type of a given move for STAB/coverage enforcement purposes + getMoveType(move: Move, species: Species, abilities: string[], preferredType: string): string { + if (['judgment', 'multiattack', 'revelationdance'].includes(move.id)) return species.types[0]; + if (species.id === 'genesectdouse' && move.id === 'technoblast') return 'Water'; + + const moveType = move.type; + if (moveType === 'Normal') { + if (abilities.includes('Aerilate')) return 'Flying'; + if (abilities.includes('Galvanize')) return 'Electric'; + if (abilities.includes('Pixilate')) return 'Fairy'; + if (abilities.includes('Refrigerate')) return 'Ice'; + } + return moveType; + } + + // Generate random moveset for a given species, role, preferred type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + movePool: string[], + preferredType: string, + role: RandomTeamsTypes.Role, + ): Set { + const moves = new Set(); + let counter = this.newQueryMoves(moves, species, preferredType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, + preferredType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + // Still need to ensure that multiple Hidden Powers are not added (if maxMoveCount is increased) + while (movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + return moves; + } + + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, new Set(types), counter, species, teamDetails + ); + }; + + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Facade if Guts is a possible ability + if (movePool.includes('facade') && abilities.includes('Guts')) { + counter = this.addMove('facade', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce Aurora Veil, Blizzard, Seismic Toss, Spore, and Sticky Web + for (const moveid of ['auroraveil', 'blizzard', 'seismictoss', 'spore', 'stickyweb']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Thunder Wave on Prankster users + if (movePool.includes('thunderwave') && abilities.includes('Prankster')) { + counter = this.addMove('thunderwave', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce Shadow Sneak on Kecleon + if (movePool.includes('shadowsneak') && species.id === 'kecleon') { + counter = this.addMove('shadowsneak', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + + // Enforce hazard removal on Bulky Support if the team doesn't already have it + if (role === 'Bulky Support' && !teamDetails.defog && !teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) { + counter = this.addMove('rapidspin', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (movePool.includes('defog')) { + counter = this.addMove('defog', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB priority + if (['Bulky Attacker', 'Bulky Setup', 'Wallbreaker'].includes(role) || this.priorityPokemon.includes(species.id)) { + const priorityMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (types.includes(moveType) && move.priority > 0 && (move.basePower || move.basePowerCallback)) { + priorityMoves.push(moveid); + } + } + if (priorityMoves.length) { + const moveid = this.sample(priorityMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Preferred Type + if (!counter.get('preferred')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && preferredType === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } else { + // If they have no regular STAB move, enforce U-turn on Bug types. + if (movePool.includes('uturn') && types.includes('Bug')) { + counter = this.addMove('uturn', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup', 'Staller'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce Staller moves + if (role === 'Staller') { + const enforcedMoves = [...PROTECT_MOVES, 'toxic']; + for (const move of enforcedMoves) { + if (movePool.includes(move)) { + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce setup + if (role.includes('Setup') || role === 'Z-Move user') { + // Prioritise other setup moves over Flame Charge + const setupMoves = movePool.filter(moveid => SETUP.includes(moveid) && moveid !== 'flamecharge'); + if (setupMoves.length) { + const moveid = this.sample(setupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } else { + if (movePool.includes('flamecharge')) { + counter = this.addMove('flamecharge', moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size && !(moves.has('uturn') && types.includes('Bug'))) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + + // Enforce coverage move + if (['Fast Attacker', 'Setup Sweeper', 'Bulky Attacker', 'Wallbreaker', 'Z-Move user'].includes(role)) { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, preferredType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, + movePool, preferredType, role); + } + } + } + return moves; + } + + shouldCullAbility( + ability: string, + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role + ): boolean { + switch (ability) { + case 'Chlorophyll': case 'Solar Power': + return !teamDetails.sun; + case 'Hydration': case 'Swift Swim': + return !teamDetails.rain; + case 'Iron Fist': case 'Skill Link': case 'Technician': + return !counter.get(toID(ability)); + case 'Overgrow': + return !counter.get('Grass'); + case 'Prankster': + return !counter.get('Status'); + case 'Rock Head': + return !counter.get('recoil'); + case 'Sand Force': case 'Sand Rush': + return !teamDetails.sand; + case 'Slush Rush': + return !teamDetails.hail; + case 'Swarm': + return !counter.get('Bug'); + } + + return false; + } + + + getAbility( + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + if (abilities.length <= 1) return abilities[0]; + + // Hard-code abilities here + if (species.id === 'pangoro' && counter.get('ironfist')) return 'Iron Fist'; + if (species.id === 'tornadus' && counter.get('Status')) return 'Prankster'; + if (species.id === 'marowak' && counter.get('recoil')) return 'Rock Head'; + if (species.id === 'sawsbuck') return moves.has('headbutt') ? 'Serene Grace' : 'Sap Sipper'; + if (species.id === 'toucannon' && counter.get('skilllink')) return 'Skill Link'; + if (species.id === 'golduck' && teamDetails.rain) return 'Swift Swim'; + if (species.id === 'roserade' && counter.get('technician')) return 'Technician'; + + const abilityAllowed: string[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilities) { + if (!this.shouldCullAbility( + ability, types, moves, abilities, counter, movePool, teamDetails, species, preferredType, role + )) { + abilityAllowed.push(ability); + } + } + + // Pick a random allowed ability + if (abilityAllowed.length >= 1) return this.sample(abilityAllowed); + + // If all abilities are rejected, prioritize weather abilities over non-weather abilities + if (!abilityAllowed.length) { + const weatherAbilities = abilities.filter( + a => ['Chlorophyll', 'Hydration', 'Sand Force', 'Sand Rush', 'Slush Rush', 'Solar Power', 'Swift Swim'].includes(a) + ); + if (weatherAbilities.length) return this.sample(weatherAbilities); + } + + // Pick a random ability + return this.sample(abilities); + } + + getPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string | undefined { + // Z-Moves + if (role === 'Z-Move user') { + // Specific Z-Crystals + if (species.baseSpecies === 'Arceus' && species.requiredItems) return species.requiredItems[1]; + if (species.name === 'Raichu-Alola') return 'Aloraichium Z'; + if (species.name === 'Decidueye') return 'Decidium Z'; + if (species.name === 'Incineroar') return 'Incinium Z'; + if (species.name === 'Kommo-o') return 'Kommonium Z'; + if (species.name === 'Lunala') return 'Lunalium Z'; + if (species.baseSpecies === 'Lycanroc') return 'Lycanium Z'; + if (species.name === 'Marshadow') return 'Marshadium Z'; + if (species.name === 'Mew') return 'Mewnium Z'; + if (species.name === 'Mimikyu') return 'Mimikium Z'; + if (species.name === 'Necrozma-Dusk-Mane' || species.name === 'Necrozma-Dawn-Wings') { + if (moves.has('autotomize') && moves.has('sunsteelstrike')) return 'Solganium Z'; + if (moves.has('autotomize') && moves.has('moongeistbeam')) return 'Lunalium Z'; + return 'Ultranecrozium Z'; + } + // General Z-Crystals + if (preferredType === 'Normal') return 'Normalium Z'; + if (preferredType) return this.dex.species.get(`Arceus-${preferredType}`).requiredItems![1]; + } + if (species.requiredItems) { + if (species.baseSpecies === 'Arceus') return species.requiredItems[0]; + return this.sample(species.requiredItems); + } + if (role === 'AV Pivot') return 'Assault Vest'; + if (species.name === 'Farfetch\u2019d') return 'Stick'; + if (species.baseSpecies === 'Marowak') return 'Thick Club'; + if (species.name === 'Pikachu') return 'Light Ball'; + if (species.name === 'Shedinja' || species.name === 'Smeargle') return 'Focus Sash'; + if (species.name === 'Unfezant' || moves.has('focusenergy')) return 'Scope Lens'; + if (species.name === 'Unown') return 'Choice Specs'; + if (species.name === 'Wobbuffet') return 'Custap Berry'; + if (species.name === 'Shuckle') return 'Mental Herb'; + if ( + ability === 'Harvest' || ability === 'Cheek Pouch' || (ability === 'Emergency Exit' && !!counter.get('Status')) + ) return 'Sitrus Berry'; + if (species.name === 'Ditto') return 'Choice Scarf'; + if (ability === 'Poison Heal') return 'Toxic Orb'; + if (ability === 'Speed Boost') return 'Life Orb'; + if (species.nfe) return (species.name === 'Scyther' && role === 'Fast Attacker') ? 'Choice Band' : 'Eviolite'; + if (['healingwish', 'memento', 'switcheroo', 'trick'].some(m => moves.has(m))) { + if (species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && role !== 'Wallbreaker') { + return 'Choice Scarf'; + } else { + return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; + } + } + if (moves.has('bellydrum') || moves.has('recycle')) { + if (ability === 'Gluttony') { + return `${this.sample(['Aguav', 'Figy', 'Iapapa', 'Mago', 'Wiki'])} Berry`; + } else { + return 'Sitrus Berry'; + } + } + if (moves.has('waterspout')) return 'Choice Scarf'; + if (moves.has('geomancy') || moves.has('skyattack')) return 'Power Herb'; + if (moves.has('shellsmash')) { + return (ability === 'Solid Rock' && !!counter.get('priority')) ? 'Weakness Policy' : 'White Herb'; + } + if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk') && species.id !== 'stoutland') { + return (types.includes('Fire') || ability === 'Quick Feet' || ability === 'Toxic Boost') ? 'Toxic Orb' : 'Flame Orb'; + } + if (ability === 'Magic Guard') return moves.has('counter') ? 'Focus Sash' : 'Life Orb'; + if (species.id === 'rampardos' && role === 'Fast Attacker') return 'Choice Scarf'; + if (ability === 'Sheer Force' && counter.get('sheerforce')) return 'Life Orb'; + if (ability === 'Unburden') return moves.has('closecombat') ? 'White Herb' : 'Sitrus Berry'; + if (moves.has('acrobatics')) return ''; + if (moves.has('auroraveil') || moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; + if (moves.has('rest') && !moves.has('sleeptalk') && !['Hydration', 'Natural Cure', 'Shed Skin'].includes(ability)) { + return 'Chesto Berry'; + } + if (role === 'Staller') return 'Leftovers'; + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + preferredType: string, + role: RandomTeamsTypes.Role, + ): string { + const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; + + const scarfReqs = ( + role !== 'Wallbreaker' && + species.baseStats.spe >= 60 && species.baseStats.spe <= 109 && + !counter.get('priority') && !moves.has('pursuit') + ); + + if ( + moves.has('pursuit') && moves.has('suckerpunch') && counter.get('Dark') && !this.priorityPokemon.includes(species.id) + ) return 'Black Glasses'; + if (counter.get('Special') === 4) { + return ( + scarfReqs && species.baseStats.spa >= 90 && this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Specs'; + } + if (counter.get('Special') === 3 && moves.has('uturn')) return 'Choice Specs'; + if (counter.get('Physical') === 4 && species.id !== 'jirachi' && + ['dragontail', 'fakeout', 'flamecharge', 'nuzzle', 'rapidspin'].every(m => !moves.has(m)) + ) { + return ( + scarfReqs && (species.baseStats.atk >= 100 || ability === 'Pure Power' || ability === 'Huge Power') && + this.randomChance(1, 2) + ) ? 'Choice Scarf' : 'Choice Band'; + } + + if (ability === 'Sturdy' && moves.has('explosion') && !counter.get('speedsetup')) return 'Custap Berry'; + if (types.includes('Normal') && moves.has('fakeout') && !!counter.get('Normal')) return 'Silk Scarf'; + if (species.id === 'latias' || species.id === 'latios') return 'Soul Dew'; + if (role === 'Bulky Setup' && !!counter.get('speedsetup') && !moves.has('swordsdance')) { + return 'Weakness Policy'; + } + if (species.id === 'palkia') return 'Lustrous Orb'; + if (species.id === 'archeops') return 'Expert Belt'; + if (!counter.get('Status') && ( + ['Fast Support', 'Bulky Support', 'Bulky Attacker'].some(m => role === m) || moves.has('rapidspin') + )) { + return 'Assault Vest'; + } + if (moves.has('outrage') && counter.get('setup')) return 'Lum Berry'; + if ( + (ability === 'Rough Skin') || ( + species.id !== 'hooh' && + ability === 'Regenerator' && species.baseStats.hp + species.baseStats.def >= 180 && this.randomChance(1, 2) + ) || ( + ability !== 'Regenerator' && !counter.get('setup') && counter.get('recovery') && + this.dex.getEffectiveness('Fighting', species) < 1 && + (species.baseStats.hp + species.baseStats.def) > 200 && this.randomChance(1, 2) + ) + ) return 'Rocky Helmet'; + if (['kingsshield', 'protect', 'spikyshield', 'substitute'].some(m => moves.has(m))) return 'Leftovers'; + if ( + this.dex.getEffectiveness('Ground', species) >= 2 && + ability !== 'Levitate' && species.id !== 'golemalola' + ) { + return 'Air Balloon'; + } + if ( + (role === 'Fast Support' || moves.has('stickyweb')) && isLead && defensiveStatTotal < 255 && + !counter.get('recovery') && (counter.get('hazards') || counter.get('setup')) && + (!counter.get('recoil') || ability === 'Rock Head') + ) return 'Focus Sash'; + + // Default Items + if (role === 'Fast Support') { + return ( + counter.get('Physical') + counter.get('Special') >= 3 && + ['nuzzle', 'rapidspin', 'uturn', 'voltswitch'].every(m => !moves.has(m)) && + this.dex.getEffectiveness('Rock', species) < 2 + ) ? 'Life Orb' : 'Leftovers'; + } + if (!counter.get('Status')) { + return ( + (moves.has('uturn') || moves.has('voltswitch')) && !counter.get('Dragon') && !counter.get('Normal') + ) ? 'Expert Belt' : 'Life Orb'; + } + if ( + ['Fast Attacker', 'Setup Sweeper', 'Wallbreaker'].some(m => role === m) && + (this.dex.getEffectiveness('Rock', species) < 2 || species.id === 'ninjask') && + ability !== 'Sturdy' + ) return 'Life Orb'; + return 'Leftovers'; + } + + getLevel(species: Species): number { + // level set by rules + if (this.adjustLevel) return this.adjustLevel; + if (this.gen >= 2) { + // Revamped generations use random-sets.json + const sets = this.randomSets[species.id]; + if (sets.level) return sets.level; + } else { + // Other generations use random-data.json + const data = this.randomData[species.id]; + if (data.level) return data.level; + } + // Gen 2 still uses tier-based levelling + if (this.gen === 2) { + const levelScale: {[k: string]: number} = { + ZU: 81, + ZUBL: 79, + PU: 77, + PUBL: 75, + NU: 73, + NUBL: 71, + UU: 69, + UUBL: 67, + OU: 65, + Uber: 61, + }; + if (levelScale[species.tier]) return levelScale[species.tier]; + } + // Default to 80 + return 80; + } + + randomSet( + species: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false + ): RandomTeamsTypes.RandomSet { + species = this.dex.species.get(species); + const forme = this.getForme(species); + const sets = this.randomSets[species.id]["sets"]; + const possibleSets = []; + // Check if the Pokemon has a Z-Move user set + let canZMove = false; + for (const set of sets) { + if (!teamDetails.zMove && set.role === 'Z-Move user') canZMove = true; + } + for (const set of sets) { + // Prevent multiple Z-Move users + if (teamDetails.zMove && set.role === 'Z-Move user') continue; + // Prevent Setup Sweeper and Bulky Setup if Z-Move user is available + if (canZMove && ['Setup Sweeper', 'Bulky Setup'].includes(set.role)) continue; + possibleSets.push(set); + } + const set = this.sampleIfArray(possibleSets); + const role = set.role; + const movePool: string[] = Array.from(set.movepool); + const preferredTypes = set.preferredTypes; + const preferredType = this.sampleIfArray(preferredTypes) || ''; + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const baseAbilities = set.abilities!; + // Use the mega's ability for moveset generation + const abilities = (species.battleOnly && !species.requiredAbility) ? Object.values(species.abilities) : baseAbilities; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, movePool, + preferredType, role); + const counter = this.newQueryMoves(moves, species, preferredType, abilities); + + // Get ability + ability = this.getAbility(new Set(types), moves, baseAbilities, counter, movePool, teamDetails, species, + preferredType, role); + + // Get items + item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + if (item === undefined) { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, preferredType, role); + } + + // For Trick / Switcheroo + if (item === 'Leftovers' && types.includes('Poison')) { + item = 'Black Sludge'; + } + + const level = this.getLevel(species); + + // Minimize confusion damage, including if Foul Play is its only physical attack + if ( + (!counter.get('Physical') || (counter.get('Physical') <= 1 && (moves.has('foulplay') || moves.has('rapidspin')))) && + !moves.has('copycat') && !moves.has('transform') + ) { + evs.atk = 0; + ivs.atk = 0; + } + + if (ability === 'Beast Boost' && !counter.get('Special')) { + evs.spa = 0; + ivs.spa = 0; + } + + // We use a special variable to track Hidden Power + // so that we can check for all Hidden Powers at once + let hasHiddenPower = false; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hasHiddenPower = true; + } + + // Fix IVs for non-Bottle Cap-able sets + if (hasHiddenPower && level < 100) { + let hpType; + for (const move of moves) { + if (move.startsWith('hiddenpower')) hpType = move.substr(11); + } + if (!hpType) throw new Error(`hasHiddenPower is true, but no Hidden Power move was found.`); + const HPivs = ivs.atk === 0 ? ZeroAttackHPIVs[hpType] : this.dex.types.get(hpType).HPivs; + let iv: StatID; + for (iv in HPivs) { + ivs[iv] = HPivs[iv]!; + } + } + + // Prepare optimal HP + const srImmunity = ability === 'Magic Guard'; + const srWeakness = srImmunity ? 0 : this.dex.getEffectiveness('Rock', species); + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if (moves.has('substitute') && !['Black Sludge', 'Leftovers'].includes(item)) { + if (item === 'Sitrus Berry' || ability === 'Power Construct') { + // Two Substitutes should activate Sitrus Berry or Power Construct + if (hp % 4 === 0) break; + } else { + // Should be able to use Substitute four times from full HP without fainting + if (hp % 4 > 0) break; + } + } else if (moves.has('bellydrum') && (item === 'Sitrus Berry' || ability === 'Gluttony')) { + // Belly Drum should activate Sitrus Berry + if (hp % 2 === 0) break; + } else if (['highjumpkick', 'jumpkick'].some(m => moves.has(m))) { + // Crash damage move users want an odd HP to survive two misses + if (hp % 2 > 0) break; + } else { + // Maximize number of Stealth Rock switch-ins + if (srWeakness <= 0 || ability === 'Regenerator') break; + if (srWeakness === 1 && ['Black Sludge', 'Leftovers', 'Life Orb'].includes(item)) break; + if (item !== 'Sitrus Berry' && hp % (4 / srWeakness) > 0) break; + // Minimise number of Stealth Rock switch-ins to activate Sitrus Berry + if (item === 'Sitrus Berry' && hp % (4 / srWeakness) === 0) break; + } + evs.hp -= 4; + } + + // Ensure Nihilego's Beast Boost gives it Special Attack boosts instead of Special Defense + if (forme === 'Nihilego') { + while (evs.spd > 1) { + const spa = Math.floor(Math.floor(2 * species.baseStats.spa + ivs.spa + Math.floor(evs.spa / 4)) * level / 100 + 5); + const spd = Math.floor(Math.floor(2 * species.baseStats.spd + ivs.spd + Math.floor(evs.spd / 4)) * level / 100 + 5); + if (spa >= spd) break; + evs.spd -= 4; + } + } + + if (['gyroball', 'metalburst', 'trickroom'].some(m => moves.has(m))) { + evs.spe = 0; + ivs.spe = (hasHiddenPower && level < 100) ? ivs.spe - 30 : 0; + } + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + + // Z-Conversion Porygon-Z should have Shadow Ball first if no Recover, otherwise Thunderbolt + if (species.id === 'porygonz' && role === 'Z-Move user') { + const firstMove = (moves.has('shadowball') ? 'shadowball' : 'thunderbolt'); + this.fastPop(shuffledMoves, shuffledMoves.indexOf(firstMove)); + shuffledMoves.unshift(firstMove); + } + return { + name: species.baseSpecies, + species: forme, + gender: species.baseSpecies === 'Greninja' ? 'M' : species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + role, + }; + } + + randomTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.seed; + const ruleTable = this.dex.formats.getRuleTable(this.format); + const pokemon: RandomTeamsTypes.RandomSet[] = []; + + // For Monotype + const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); + const typePool = this.dex.types.names(); + const type = this.forceMonotype || this.sample(typePool); + + const baseFormes: {[k: string]: number} = {}; + let hasMega = false; + + const typeCount: {[k: string]: number} = {}; + const typeComboCount: {[k: string]: number} = {}; + const typeWeaknesses: {[k: string]: number} = {}; + const typeDoubleWeaknesses: {[k: string]: number} = {}; + const teamDetails: RandomTeamsTypes.TeamDetails = {}; + let numMaxLevelPokemon = 0; + + // We make at most two passes through the potential Pokemon pool when creating a team - if the first pass doesn't + // result in a team of six Pokemon we perform a second iteration relaxing as many restrictions as possible. + for (const restrict of [true, false]) { + if (pokemon.length >= this.maxTeamSize) break; + + const pokemonList = Object.keys(this.randomSets); + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, pokemonList); + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + const baseSpecies = this.sampleNoReplace(baseSpeciesPool); + const currentSpeciesPool: Species[] = []; + // Check if the base species has a mega forme available + let canMega = false; + for (const poke of pokemonPool[baseSpecies]) { + const species = this.dex.species.get(poke); + if (!hasMega && species.isMega) canMega = true; + } + for (const poke of pokemonPool[baseSpecies]) { + const species = this.dex.species.get(poke); + // Prevent multiple megas + if (hasMega && species.isMega) continue; + // Prevent base forme, if a mega is available + if (canMega && !species.isMega) continue; + currentSpeciesPool.push(species); + } + const species = this.sample(currentSpeciesPool); + + if (!species.exists) continue; + + // Limit to one of each species (Species Clause) + if (baseFormes[species.baseSpecies]) continue; + + // Limit one Mega per team + if (hasMega && species.isMega) continue; + + const types = species.types; + const typeCombo = types.slice().sort().join(); + const weakToFreezeDry = ( + this.dex.getEffectiveness('Ice', species) > 0 || + (this.dex.getEffectiveness('Ice', species) > -2 && types.includes('Water')) + ); + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + if (restrict) { + if (!isMonotype && !this.forceMonotype) { + // Limit two of any type + let skip = false; + for (const typeName of types) { + if (typeCount[typeName] >= 2 * limitFactor) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit three weak to any type, and one double weak to any type + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; + if (typeWeaknesses[typeName] >= 3 * limitFactor) { + skip = true; + break; + } + } + if (this.dex.getEffectiveness(typeName, species) > 0) { + if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0; + if (typeDoubleWeaknesses[typeName] >= 1 * limitFactor) { + skip = true; + break; + } + } + } + if (skip) continue; + + // Count Dry Skin/Fluffy as Fire weaknesses + if ( + this.dex.getEffectiveness('Fire', species) === 0 && + Object.values(species.abilities).filter(a => ['Dry Skin', 'Fluffy'].includes(a)).length + ) { + if (!typeWeaknesses['Fire']) typeWeaknesses['Fire'] = 0; + if (typeWeaknesses['Fire'] >= 3 * limitFactor) continue; + } + + // Limit four weak to Freeze-Dry + if (weakToFreezeDry) { + if (!typeWeaknesses['Freeze-Dry']) typeWeaknesses['Freeze-Dry'] = 0; + if (typeWeaknesses['Freeze-Dry'] >= 4 * limitFactor) continue; + } + + // Limit one level 100 Pokemon + if (!this.adjustLevel && (this.getLevel(species) === 100) && numMaxLevelPokemon >= limitFactor) { + continue; + } + } + + // Limit three of any type combination in Monotype + if (!this.forceMonotype && isMonotype && (typeComboCount[typeCombo] >= 3 * limitFactor)) continue; + } + + const set = this.randomSet( + species, + teamDetails, + pokemon.length === this.maxTeamSize - 1 + ); + + const item = this.dex.items.get(set.item); + + // Limit one Z-Move per team + if (item.zMove && teamDetails.zMove) continue; + + // Zoroark copies the last Pokemon and should not be generated in that slot + if (set.ability === 'Illusion' && pokemon.length < 1) continue; + + // Okay, the set passes, add it to our team + pokemon.unshift(set); + + // Don't bother tracking details for the last Pokemon + if (pokemon.length === this.maxTeamSize) break; + + // Now that our Pokemon has passed all checks, we can increment our counters + baseFormes[species.baseSpecies] = 1; + + // Increment type counters + for (const typeName of types) { + if (typeName in typeCount) { + typeCount[typeName]++; + } else { + typeCount[typeName] = 1; + } + } + if (typeCombo in typeComboCount) { + typeComboCount[typeCombo]++; + } else { + typeComboCount[typeCombo] = 1; + } + + // Increment weakness counter + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + typeWeaknesses[typeName]++; + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + typeDoubleWeaknesses[typeName]++; + } + } + // Count Dry Skin/Fluffy as Fire weaknesses + if (['Dry Skin', 'Fluffy'].includes(set.ability) && this.dex.getEffectiveness('Fire', species) === 0) { + typeWeaknesses['Fire']++; + } + if (weakToFreezeDry) typeWeaknesses['Freeze-Dry']++; + + // Increment level 100 counter + if (set.level === 100) numMaxLevelPokemon++; + + // Track what the team has + if (item.megaStone || species.name === 'Rayquaza-Mega') hasMega = true; + if (item.zMove) teamDetails.zMove = 1; + if (set.ability === 'Snow Warning' || set.moves.includes('hail')) teamDetails.hail = 1; + if (set.moves.includes('raindance') || set.ability === 'Drizzle' && !item.onPrimal) teamDetails.rain = 1; + if (set.ability === 'Sand Stream') teamDetails.sand = 1; + if (set.moves.includes('sunnyday') || set.ability === 'Drought' && !item.onPrimal) teamDetails.sun = 1; + if (set.moves.includes('aromatherapy') || set.moves.includes('healbell')) teamDetails.statusCure = 1; + if (set.moves.includes('spikes')) teamDetails.spikes = (teamDetails.spikes || 0) + 1; + if (set.moves.includes('stealthrock')) teamDetails.stealthRock = 1; + if (set.moves.includes('stickyweb')) teamDetails.stickyWeb = 1; + if (set.moves.includes('toxicspikes')) teamDetails.toxicSpikes = 1; + if (set.moves.includes('defog')) teamDetails.defog = 1; + if (set.moves.includes('rapidspin')) teamDetails.rapidSpin = 1; + if (set.moves.includes('auroraveil') || (set.moves.includes('reflect') && set.moves.includes('lightscreen'))) { + teamDetails.screens = 1; + } + } + } + if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { + throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); + } + + return pokemon; + } + + randomFactorySets: {[format: string]: {[species: string]: BattleFactorySpecies}} = require('./factory-sets.json'); + + randomFactorySet( + species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails, tier: string + ): RandomTeamsTypes.RandomFactorySet | null { + const id = toID(species.name); + const setList = this.randomFactorySets[tier][id].sets; + + const itemsMax: {[k: string]: number} = { + choicespecs: 1, + choiceband: 1, + choicescarf: 1, + }; + const movesMax: {[k: string]: number} = { + rapidspin: 1, + batonpass: 1, + stealthrock: 1, + defog: 1, + spikes: 1, + toxicspikes: 1, + }; + const requiredMoves: {[k: string]: string} = { + stealthrock: 'hazardSet', + rapidspin: 'hazardClear', + defog: 'hazardClear', + }; + const weatherAbilitiesRequire: {[k: string]: string} = { + hydration: 'raindance', swiftswim: 'raindance', + leafguard: 'sunnyday', solarpower: 'sunnyday', chlorophyll: 'sunnyday', + sandforce: 'sandstorm', sandrush: 'sandstorm', sandveil: 'sandstorm', + slushrush: 'hail', snowcloak: 'hail', + }; + const weatherAbilities = ['drizzle', 'drought', 'snowwarning', 'sandstream']; + + // Build a pool of eligible sets, given the team partners + // Also keep track of sets with moves the team requires + let effectivePool: {set: AnyObject, moveVariants?: number[], item?: string, ability?: string}[] = []; + const priorityPool = []; + for (const curSet of setList) { + if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; + + // reject disallowed items + const allowedItems: string[] = []; + for (const itemString of curSet.item) { + const item = this.dex.items.get(itemString); + if (teamData.megaCount && teamData.megaCount > 0 && item.megaStone) continue; // reject 2+ mega stones + if (teamData.zCount && teamData.zCount > 0 && item.zMove) continue; // reject 2+ Z stones + if (itemsMax[item.id] && teamData.has[item.id] >= itemsMax[item.id]) continue; // reject 2+ same choice item + allowedItems.push(itemString); + } + if (allowedItems.length === 0) continue; + const curSetItem = this.sample(allowedItems); + + // reject bad weather abilities + const allowedAbilities: string[] = []; + for (const abilityString of curSet.ability) { + const ability = this.dex.abilities.get(abilityString); + if (weatherAbilitiesRequire[ability.id] && teamData.weather !== weatherAbilitiesRequire[ability.id]) continue; + if (teamData.weather && weatherAbilities.includes(ability.id)) continue; // reject 2+ weather setters + allowedAbilities.push(abilityString); + } + if (allowedAbilities.length === 0) continue; + const curSetAbility = this.sample(allowedAbilities); + + let reject = false; + let hasRequiredMove = false; + const curSetVariants = []; + for (const move of curSet.moves) { + const variantIndex = this.random(move.length); + const moveId = toID(move[variantIndex]); + if (movesMax[moveId] && teamData.has[moveId] >= movesMax[moveId]) { + reject = true; + break; + } + if (requiredMoves[moveId] && !teamData.has[requiredMoves[moveId]]) { + hasRequiredMove = true; + } + curSetVariants.push(variantIndex); + } + if (reject) continue; + + const fullSetSpec = {set: curSet, moveVariants: curSetVariants, item: curSetItem, ability: curSetAbility}; + effectivePool.push(fullSetSpec); + if (hasRequiredMove) priorityPool.push(fullSetSpec); + } + if (priorityPool.length) effectivePool = priorityPool; + + if (!effectivePool.length) { + if (!teamData.forceResult) return null; + for (const curSet of setList) { + effectivePool.push({set: curSet}); + } + } + + const setData = this.sample(effectivePool); + const moves = []; + for (const [i, moveSlot] of setData.set.moves.entries()) { + moves.push(setData.moveVariants ? moveSlot[setData.moveVariants[i]] : this.sample(moveSlot)); + } + + + const item = setData.item || this.sampleIfArray(setData.set.item); + const ability = setData.ability || this.sampleIfArray(setData.set.ability); + const nature = this.sampleIfArray(setData.set.nature); + const level = this.adjustLevel || setData.set.level || (tier === "LC" ? 5 : 100); + + return { + name: setData.set.name || species.baseSpecies, + species: setData.set.species, + gender: setData.set.gender || species.gender || (this.randomChance(1, 2) ? 'M' : 'F'), + item: item || '', + ability: ability || species.abilities['0'], + shiny: typeof setData.set.shiny === 'undefined' ? this.randomChance(1, 1024) : setData.set.shiny, + level, + happiness: typeof setData.set.happiness === 'undefined' ? 255 : setData.set.happiness, + evs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0, ...setData.set.evs}, + ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31, ...setData.set.ivs}, + nature: nature || 'Serious', + moves, + }; + } + + randomFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { + this.enforceNoDirectCustomBanlistChanges(); + + const forceResult = (depth >= 12); + const isMonotype = !!this.forceMonotype || this.dex.formats.getRuleTable(this.format).has('sametypeclause'); + + // The teams generated depend on the tier choice in such a way that + // no exploitable information is leaked from rolling the tier in getTeam(p1). + if (!this.factoryTier) { + this.factoryTier = isMonotype ? 'Mono' : this.sample(['Uber', 'OU', 'UU', 'RU', 'NU', 'PU', 'LC']); + } else if (isMonotype && this.factoryTier !== 'Mono') { + // I don't think this can ever happen? + throw new Error(`Can't generate a Monotype Battle Factory set in a battle with factory tier ${this.factoryTier}`); + } + + const tierValues: {[k: string]: number} = { + Uber: 5, + OU: 4, UUBL: 4, + UU: 3, RUBL: 3, + RU: 2, NUBL: 2, + NU: 1, PUBL: 1, + PU: 0, + }; + + const pokemon = []; + const pokemonPool = Object.keys(this.randomFactorySets[this.factoryTier]); + + const typePool = this.dex.types.names(); + const type = this.sample(typePool); + + const teamData: TeamData = { + typeCount: {}, typeComboCount: {}, baseFormes: {}, megaCount: 0, zCount: 0, + has: {}, forceResult: forceResult, weaknesses: {}, resistances: {}, + }; + const requiredMoveFamilies = ['hazardSet', 'hazardClear']; + const requiredMoves: {[k: string]: string} = { + stealthrock: 'hazardSet', + rapidspin: 'hazardClear', + defog: 'hazardClear', + }; + const weatherAbilitiesSet: {[k: string]: string} = { + drizzle: 'raindance', + drought: 'sunnyday', + snowwarning: 'hail', + sandstream: 'sandstorm', + }; + const resistanceAbilities: {[k: string]: string[]} = { + dryskin: ['Water'], waterabsorb: ['Water'], stormdrain: ['Water'], + flashfire: ['Fire'], heatproof: ['Fire'], + lightningrod: ['Electric'], motordrive: ['Electric'], voltabsorb: ['Electric'], + sapsipper: ['Grass'], + thickfat: ['Ice', 'Fire'], + levitate: ['Ground'], + }; + + while (pokemonPool.length && pokemon.length < this.maxTeamSize) { + const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); + if (!species.exists) continue; + + // Lessen the need of deleting sets of Pokemon after tier shifts + if ( + this.factoryTier in tierValues && species.tier in tierValues && + tierValues[species.tier] > tierValues[this.factoryTier] + ) continue; + + const speciesFlags = this.randomFactorySets[this.factoryTier][species.id].flags; + + // Limit to one of each species (Species Clause) + if (teamData.baseFormes[species.baseSpecies]) continue; + + // Limit the number of Megas to one + if (!teamData.megaCount) teamData.megaCount = 0; + if (teamData.megaCount >= 1 && speciesFlags.megaOnly) continue; + + const set = this.randomFactorySet(species, teamData, this.factoryTier); + if (!set) continue; + + const itemData = this.dex.items.get(set.item); + + // Actually limit the number of Megas to one + if (teamData.megaCount >= 1 && itemData.megaStone) continue; + + // Limit the number of Z moves to one + if (teamData.zCount && teamData.zCount >= 1 && itemData.zMove) continue; + + let types = species.types; + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + // Enforce Monotype + if (isMonotype) { + // Prevents Mega Evolutions from breaking the type limits + if (itemData.megaStone) { + const megaSpecies = this.dex.species.get(itemData.megaStone); + if (types.length > megaSpecies.types.length) types = [species.types[0]]; + // Only check the second type because a Mega Evolution should always share the first type with its base forme. + if (megaSpecies.types[1] && types[1] && megaSpecies.types[1] !== types[1]) { + types = [megaSpecies.types[0]]; + } + } + if (!types.includes(type)) continue; + } else { + // If not Monotype, limit to two of each type + let skip = false; + for (const typeName of types) { + if (teamData.typeCount[typeName] >= 2 * limitFactor && this.randomChance(4, 5)) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit 1 of any type combination + let typeCombo = types.slice().sort().join(); + if (set.ability + '' === 'Drought' || set.ability + '' === 'Drizzle') { + // Drought and Drizzle don't count towards the type combo limit + typeCombo = set.ability + ''; + } + if (teamData.typeComboCount[typeCombo] >= 1 * limitFactor) continue; + } + + // Okay, the set passes, add it to our team + pokemon.push(set); + const typeCombo = types.slice().sort().join(); + // Now that our Pokemon has passed all checks, we can update team data: + for (const typeName of types) { + if (typeName in teamData.typeCount) { + teamData.typeCount[typeName]++; + } else { + teamData.typeCount[typeName] = 1; + } + } + teamData.typeComboCount[typeCombo] = (teamData.typeComboCount[typeCombo] + 1) || 1; + + teamData.baseFormes[species.baseSpecies] = 1; + + if (itemData.megaStone) teamData.megaCount++; + if (itemData.zMove) { + if (!teamData.zCount) teamData.zCount = 0; + teamData.zCount++; + } + if (itemData.id in teamData.has) { + teamData.has[itemData.id]++; + } else { + teamData.has[itemData.id] = 1; + } + + const abilityState = this.dex.abilities.get(set.ability); + if (abilityState.id in weatherAbilitiesSet) { + teamData.weather = weatherAbilitiesSet[abilityState.id]; + } + + for (const move of set.moves) { + const moveId = toID(move); + if (moveId in teamData.has) { + teamData.has[moveId]++; + } else { + teamData.has[moveId] = 1; + } + if (moveId in requiredMoves) { + teamData.has[requiredMoves[moveId]] = 1; + } + } + + for (const typeName of this.dex.types.names()) { + // Cover any major weakness (3+) with at least one resistance + if (teamData.resistances[typeName] >= 1) continue; + if (resistanceAbilities[abilityState.id]?.includes(typeName) || !this.dex.getImmunity(typeName, types)) { + // Heuristic: assume that Pokémon with these abilities don't have (too) negative typing. + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + continue; + } + const typeMod = this.dex.getEffectiveness(typeName, types); + if (typeMod < 0) { + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + } else if (typeMod > 0) { + teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; + } + } + } + if (pokemon.length < this.maxTeamSize) return this.randomFactoryTeam(side, ++depth); + + // Quality control + if (!teamData.forceResult) { + for (const requiredFamily of requiredMoveFamilies) { + if (!teamData.has[requiredFamily]) return this.randomFactoryTeam(side, ++depth); + } + for (const typeName in teamData.weaknesses) { + if (teamData.weaknesses[typeName] >= 3) return this.randomFactoryTeam(side, ++depth); + } + } + + return pokemon; + } + + randomBSSFactorySets: AnyObject = require('./bss-factory-sets.json'); + + randomBSSFactorySet( + species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails + ): RandomTeamsTypes.RandomFactorySet | null { + const id = toID(species.name); + // const flags = this.randomBSSFactorySets[tier][id].flags; + const setList = this.randomBSSFactorySets[id].sets; + + const movesMax: {[k: string]: number} = { + batonpass: 1, + stealthrock: 1, + spikes: 1, + toxicspikes: 1, + doubleedge: 1, + trickroom: 1, + }; + const requiredMoves: {[k: string]: number} = {}; + const weatherAbilitiesRequire: {[k: string]: string} = { + swiftswim: 'raindance', + sandrush: 'sandstorm', sandveil: 'sandstorm', + }; + const weatherAbilities = ['drizzle', 'drought', 'snowwarning', 'sandstream']; + + // Build a pool of eligible sets, given the team partners + // Also keep track of sets with moves the team requires + let effectivePool: {set: AnyObject, moveVariants?: number[], itemVariants?: number, abilityVariants?: number}[] = []; + const priorityPool = []; + for (const curSet of setList) { + if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; + + const item = this.dex.items.get(curSet.item); + if (teamData.megaCount && teamData.megaCount > 1 && item.megaStone) continue; // reject 3+ mega stones + if (teamData.zCount && teamData.zCount > 1 && item.zMove) continue; // reject 3+ Z stones + if (teamData.has[item.id]) continue; // Item clause + + const ability = this.dex.abilities.get(curSet.ability); + if (weatherAbilitiesRequire[ability.id] && teamData.weather !== weatherAbilitiesRequire[ability.id]) continue; + if (teamData.weather && weatherAbilities.includes(ability.id)) continue; // reject 2+ weather setters + + if (curSet.species === 'Aron' && teamData.weather !== 'sandstorm') continue; // reject Aron without a Sand Stream user + + let reject = false; + let hasRequiredMove = false; + const curSetVariants = []; + for (const move of curSet.moves) { + const variantIndex = this.random(move.length); + const moveId = toID(move[variantIndex]); + if (movesMax[moveId] && teamData.has[moveId] >= movesMax[moveId]) { + reject = true; + break; + } + if (requiredMoves[moveId] && !teamData.has[requiredMoves[moveId]]) { + hasRequiredMove = true; + } + curSetVariants.push(variantIndex); + } + if (reject) continue; + effectivePool.push({set: curSet, moveVariants: curSetVariants}); + if (hasRequiredMove) priorityPool.push({set: curSet, moveVariants: curSetVariants}); + } + if (priorityPool.length) effectivePool = priorityPool; + + if (!effectivePool.length) { + if (!teamData.forceResult) return null; + for (const curSet of setList) { + effectivePool.push({set: curSet}); + } + } + + const setData = this.sample(effectivePool); + const moves = []; + for (const [i, moveSlot] of setData.set.moves.entries()) { + moves.push(setData.moveVariants ? moveSlot[setData.moveVariants[i]] : this.sample(moveSlot)); + } + + return { + name: setData.set.nickname || setData.set.name || species.baseSpecies, + species: setData.set.species, + gender: setData.set.gender || species.gender || (this.randomChance(1, 2) ? 'M' : 'F'), + item: this.sampleIfArray(setData.set.item) || '', + ability: setData.set.ability || species.abilities['0'], + shiny: typeof setData.set.shiny === 'undefined' ? this.randomChance(1, 1024) : setData.set.shiny, + level: setData.set.level || 50, + happiness: typeof setData.set.happiness === 'undefined' ? 255 : setData.set.happiness, + evs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0, ...setData.set.evs}, + ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31, ...setData.set.ivs}, + nature: setData.set.nature || 'Serious', + moves, + }; + } + + randomBSSFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { + this.enforceNoDirectCustomBanlistChanges(); + + const forceResult = (depth >= 4); + + const pokemon = []; + + const pokemonPool = Object.keys(this.randomBSSFactorySets); + + const teamData: TeamData = { + typeCount: {}, typeComboCount: {}, baseFormes: {}, megaCount: 0, zCount: 0, + eeveeLimCount: 0, has: {}, forceResult, weaknesses: {}, resistances: {}, + }; + const requiredMoveFamilies: string[] = []; + const requiredMoves: {[k: string]: string} = {}; + const weatherAbilitiesSet: {[k: string]: string} = { + drizzle: 'raindance', + drought: 'sunnyday', + snowwarning: 'hail', + sandstream: 'sandstorm', + }; + const resistanceAbilities: {[k: string]: string[]} = { + waterabsorb: ['Water'], + flashfire: ['Fire'], + lightningrod: ['Electric'], voltabsorb: ['Electric'], + thickfat: ['Ice', 'Fire'], + levitate: ['Ground'], + }; + + while (pokemonPool.length && pokemon.length < this.maxTeamSize) { + const species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); + if (!species.exists) continue; + + const speciesFlags = this.randomBSSFactorySets[species.id].flags; + if (!teamData.megaCount) teamData.megaCount = 0; + + // Limit to one of each species (Species Clause) + if (teamData.baseFormes[species.baseSpecies]) continue; + + // Limit the number of Megas + Z-moves to 3 + if (teamData.megaCount + (teamData.zCount ? teamData.zCount : 0) >= 3 && speciesFlags.megaOnly) continue; + + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + // Limit 2 of any type + const types = species.types; + let skip = false; + for (const type of types) { + if (teamData.typeCount[type] >= 2 * limitFactor && this.randomChance(4, 5)) { + skip = true; + break; + } + } + if (skip) continue; + + // Restrict Eevee with certain Pokemon + if (speciesFlags.limEevee) { + if (!teamData.eeveeLimCount) teamData.eeveeLimCount = 0; + teamData.eeveeLimCount++; + } + if (teamData.eeveeLimCount && teamData.eeveeLimCount >= 1 && speciesFlags.limEevee) continue; + + const set = this.randomBSSFactorySet(species, teamData); + if (!set) continue; + + // Limit 1 of any type combination + let typeCombo = types.slice().sort().join(); + if (set.ability === 'Drought' || set.ability === 'Drizzle') { + // Drought and Drizzle don't count towards the type combo limit + typeCombo = set.ability; + } + if (teamData.typeComboCount[typeCombo] >= 1 * limitFactor) continue; + + // Okay, the set passes, add it to our team + pokemon.push(set); + + // Now that our Pokemon has passed all checks, we can update team data: + for (const type of types) { + if (type in teamData.typeCount) { + teamData.typeCount[type]++; + } else { + teamData.typeCount[type] = 1; + } + } + teamData.typeComboCount[typeCombo] = (teamData.typeComboCount[typeCombo] + 1) || 1; + + teamData.baseFormes[species.baseSpecies] = 1; + + // Limit Mega and Z-move + const itemData = this.dex.items.get(set.item); + if (itemData.megaStone) teamData.megaCount++; + if (itemData.zMove) { + if (!teamData.zCount) teamData.zCount = 0; + teamData.zCount++; + } + teamData.has[itemData.id] = 1; + + const abilityState = this.dex.abilities.get(set.ability); + if (abilityState.id in weatherAbilitiesSet) { + teamData.weather = weatherAbilitiesSet[abilityState.id]; + } + + for (const move of set.moves) { + const moveId = toID(move); + if (moveId in teamData.has) { + teamData.has[moveId]++; + } else { + teamData.has[moveId] = 1; + } + if (moveId in requiredMoves) { + teamData.has[requiredMoves[moveId]] = 1; + } + } + + for (const typeName of this.dex.types.names()) { + // Cover any major weakness (3+) with at least one resistance + if (teamData.resistances[typeName] >= 1) continue; + if (resistanceAbilities[abilityState.id]?.includes(typeName) || !this.dex.getImmunity(typeName, types)) { + // Heuristic: assume that Pokémon with these abilities don't have (too) negative typing. + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + continue; + } + const typeMod = this.dex.getEffectiveness(typeName, types); + if (typeMod < 0) { + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + } else if (typeMod > 0) { + teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; + } + } + } + if (pokemon.length < this.maxTeamSize) return this.randomBSSFactoryTeam(side, ++depth); + + // Quality control + if (!teamData.forceResult) { + for (const requiredFamily of requiredMoveFamilies) { + if (!teamData.has[requiredFamily]) return this.randomBSSFactoryTeam(side, ++depth); + } + for (const type in teamData.weaknesses) { + if (teamData.weaknesses[type] >= 3) return this.randomBSSFactoryTeam(side, ++depth); + } + } + + return pokemon; + } +} + +export default RandomGen7Teams; diff --git a/data/mods/gen7letsgo/random-data.json b/data/random-battles/gen7letsgo/data.json similarity index 99% rename from data/mods/gen7letsgo/random-data.json rename to data/random-battles/gen7letsgo/data.json index fb081f58eb12..7d8ba0f5ff0d 100644 --- a/data/mods/gen7letsgo/random-data.json +++ b/data/random-battles/gen7letsgo/data.json @@ -1346,7 +1346,7 @@ "greninja": { "moves": ["gunkshot", "hydropump", "icebeam", "spikes", "taunt", "toxicspikes", "uturn"] }, - "greninjaash": { + "greninjabond": { "moves": ["darkpulse", "hydropump", "icebeam", "uturn", "watershuriken"] }, "diggersby": { diff --git a/data/mods/gen7letsgo/random-teams.ts b/data/random-battles/gen7letsgo/teams.ts similarity index 96% rename from data/mods/gen7letsgo/random-teams.ts rename to data/random-battles/gen7letsgo/teams.ts index 3b1ca50bf800..74cca6128fab 100644 --- a/data/mods/gen7letsgo/random-teams.ts +++ b/data/random-battles/gen7letsgo/teams.ts @@ -1,8 +1,8 @@ import type {PRNG} from '../../../sim'; -import {MoveCounter, RandomGen8Teams, OldRandomBattleSpecies} from '../gen8/random-teams'; +import {MoveCounter, RandomGen8Teams, OldRandomBattleSpecies} from '../gen8/teams'; export class RandomLetsGoTeams extends RandomGen8Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); + randomData: {[species: string]: OldRandomBattleSpecies} = require('./data.json'); constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { super(format, prng); @@ -24,7 +24,7 @@ export class RandomLetsGoTeams extends RandomGen8Teams { move: Move, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, @@ -127,7 +127,7 @@ export class RandomLetsGoTeams extends RandomGen8Teams { const data = this.randomData[species.id]; - const movePool = (data.moves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice(); + const movePool: string[] = [...(data.moves || this.dex.species.getMovePool(species.id))]; const types = new Set(species.types); const moves = new Set(); @@ -140,13 +140,13 @@ export class RandomLetsGoTeams extends RandomGen8Teams { moves.add(moveid); } - counter = this.queryMoves(moves, species.types, new Set(), movePool); + counter = this.queryMoves(moves, species.types, [], movePool); // Iterate through the moves again, this time to cull them: for (const moveid of moves) { const move = this.dex.moves.get(moveid); - let {cull, isSetup} = this.shouldCullMove(move, types, moves, new Set(), counter, movePool, teamDetails); + let {cull, isSetup} = this.shouldCullMove(move, types, moves, [], counter, movePool, teamDetails); if ( !isSetup && @@ -184,7 +184,7 @@ export class RandomLetsGoTeams extends RandomGen8Teams { cull = true; } else { for (const type of types) { - if (this.moveEnforcementCheckers[type]?.(movePool, moves, new Set(), types, counter, species, teamDetails)) cull = true; + if (this.moveEnforcementCheckers[type]?.(movePool, moves, [], types, counter, species, teamDetails)) cull = true; } } } diff --git a/data/mods/gen8/bss-factory-sets.json b/data/random-battles/gen8/bss-factory-sets.json similarity index 100% rename from data/mods/gen8/bss-factory-sets.json rename to data/random-battles/gen8/bss-factory-sets.json diff --git a/data/mods/gen8/cap-1v1-sets.json b/data/random-battles/gen8/cap-1v1-sets.json similarity index 100% rename from data/mods/gen8/cap-1v1-sets.json rename to data/random-battles/gen8/cap-1v1-sets.json diff --git a/data/mods/gen8/random-data.json b/data/random-battles/gen8/data.json similarity index 94% rename from data/mods/gen8/random-data.json rename to data/random-battles/gen8/data.json index 43e7f00b153d..ffbb725fed59 100644 --- a/data/mods/gen8/random-data.json +++ b/data/random-battles/gen8/data.json @@ -1,6 +1,6 @@ { "venusaur": { - "level": 82, + "level": 83, "moves": ["gigadrain", "leechseed", "sleeppowder", "sludgebomb", "substitute"] }, "venusaurgmax": { @@ -8,7 +8,7 @@ "doublesMoves": ["earthpower", "energyball", "leechseed", "protect", "sleeppowder", "sludgebomb"] }, "charizard": { - "level": 82, + "level": 83, "moves": ["airslash", "earthquake", "fireblast", "focusblast", "roost"], "doublesLevel": 80, "doublesMoves": ["airslash", "heatwave", "overheat", "protect", "scorchingsands", "tailwind"], @@ -44,7 +44,7 @@ }, "pikachu": { "level": 92, - "moves": ["irontail", "knockoff", "surf", "voltswitch", "volttackle"], + "moves": ["knockoff", "playrough", "surf", "voltswitch", "volttackle"], "doublesLevel": 91, "doublesMoves": ["fakeout", "grassknot", "knockoff", "protect", "volttackle"] }, @@ -53,7 +53,7 @@ "doublesMoves": ["extremespeed", "fakeout", "knockoff", "surf", "volttackle"] }, "raichu": { - "level": 86, + "level": 87, "moves": ["focusblast", "grassknot", "nastyplot", "surf", "thunderbolt", "voltswitch"], "doublesLevel": 88, "doublesMoves": ["encore", "fakeout", "helpinghand", "nuzzle", "thunderbolt", "voltswitch"], @@ -66,19 +66,19 @@ "doublesMoves": ["focusblast", "nastyplot", "psyshock", "thunderbolt", "voltswitch"] }, "sandslash": { - "level": 86, + "level": 87, "moves": ["earthquake", "knockoff", "rapidspin", "spikes", "stealthrock", "stoneedge", "swordsdance", "toxic"], "doublesLevel": 89, "doublesMoves": ["drillrun", "knockoff", "protect", "stealthrock", "stoneedge", "swordsdance"] }, "sandslashalola": { - "level": 86, + "level": 87, "moves": ["earthquake", "ironhead", "knockoff", "rapidspin", "swordsdance", "tripleaxel"], "doublesLevel": 90, "doublesMoves": ["drillrun", "ironhead", "protect", "swordsdance", "tripleaxel"] }, "nidoqueen": { - "level": 84, + "level": 82, "moves": ["earthpower", "icebeam", "sludgewave", "stealthrock", "toxicspikes"], "doublesLevel": 84, "doublesMoves": ["earthpower", "icebeam", "protect", "sludgebomb", "stealthrock"] @@ -112,7 +112,7 @@ "doublesMoves": ["auroraveil", "blizzard", "encore", "freezedry", "moonblast"] }, "wigglytuff": { - "level": 90, + "level": 95, "moves": ["dazzlinggleam", "fireblast", "healbell", "lightscreen", "reflect", "stealthrock"], "doublesLevel": 90, "doublesMoves": ["dazzlinggleam", "healpulse", "helpinghand", "hypervoice", "thunderwave"] @@ -124,7 +124,7 @@ "doublesMoves": ["aromatherapy", "energyball", "pollenpuff", "sleeppowder", "sludgebomb", "strengthsap"] }, "dugtrio": { - "level": 82, + "level": 81, "moves": ["earthquake", "memento", "stoneedge", "suckerpunch"], "doublesLevel": 88, "doublesMoves": ["highhorsepower", "memento", "protect", "rockslide", "suckerpunch"] @@ -136,7 +136,7 @@ "doublesMoves": ["highhorsepower", "ironhead", "memento", "protect", "rockslide", "suckerpunch"] }, "persian": { - "level": 88, + "level": 90, "moves": ["doubleedge", "fakeout", "knockoff", "playrough", "uturn"], "doublesLevel": 90, "doublesMoves": ["doubleedge", "fakeout", "hypnosis", "icywind", "knockoff", "taunt"] @@ -148,8 +148,8 @@ "doublesMoves": ["fakeout", "foulplay", "icywind", "partingshot", "snarl", "taunt"] }, "golduck": { - "level": 86, - "moves": ["calmmind", "focusblast", "icebeam", "psyshock", "scald", "substitute"], + "level": 85, + "moves": ["calmmind", "focusblast", "icebeam", "scald", "substitute"], "doublesLevel": 88, "doublesMoves": ["calmmind", "encore", "icebeam", "muddywater", "protect"] }, @@ -160,7 +160,7 @@ "doublesMoves": ["closecombat", "extremespeed", "flareblitz", "morningsun", "protect", "snarl", "willowisp"] }, "poliwrath": { - "level": 84, + "level": 86, "moves": ["closecombat", "darkestlariat", "liquidation", "raindance"], "doublesLevel": 88, "doublesMoves": ["closecombat", "coaching", "helpinghand", "liquidation", "protect"] @@ -172,13 +172,13 @@ "doublesMoves": ["focusblast", "nastyplot", "protect", "psychic", "shadowball"] }, "machamp": { - "level": 82, + "level": 81, "moves": ["bulletpunch", "closecombat", "dynamicpunch", "facade", "knockoff", "stoneedge"], "doublesLevel": 88, "doublesMoves": ["bulletpunch", "closecombat", "facade", "knockoff", "protect"] }, "tentacruel": { - "level": 84, + "level": 83, "moves": ["haze", "knockoff", "rapidspin", "scald", "sludgebomb", "toxicspikes"], "doublesLevel": 87, "doublesMoves": ["acidspray", "icywind", "knockoff", "muddywater", "rapidspin", "sludgebomb"] @@ -190,32 +190,32 @@ "doublesMoves": ["flareblitz", "highhorsepower", "morningsun", "protect", "swordsdance", "wildcharge"] }, "rapidashgalar": { - "level": 84, + "level": 83, "moves": ["highhorsepower", "morningsun", "playrough", "swordsdance", "zenheadbutt"], "doublesLevel": 88, "doublesMoves": ["highhorsepower", "playrough", "protect", "swordsdance", "zenheadbutt"] }, "slowbro": { - "level": 84, + "level": 85, "moves": ["futuresight", "icebeam", "scald", "slackoff", "teleport", "thunderwave"], "doublesLevel": 84, "doublesMoves": ["calmmind", "fireblast", "icebeam", "psychic", "scald", "slackoff", "trickroom"] }, "slowbrogalar": { - "level": 86, + "level": 87, "moves": ["flamethrower", "psychic", "shellsidearm", "trick", "trickroom"], "doublesLevel": 85, "doublesMoves": ["fireblast", "healpulse", "protect", "psychic", "shellsidearm", "trickroom"] }, "farfetchd": { - "level": 90, + "level": 91, "moves": ["bravebird", "closecombat", "knockoff", "leafblade", "swordsdance"], "doublesLevel": 95, "doublesMoves": ["bravebird", "closecombat", "leafblade", "protect", "quickattack", "swordsdance"] }, "cloyster": { - "level": 80, - "moves": ["explosion", "hydropump", "iciclespear", "rockblast", "shellsmash"], + "level": 78, + "moves": ["hydropump", "iciclespear", "rockblast", "shellsmash"], "doublesLevel": 84, "doublesMoves": ["hydropump", "iciclespear", "protect", "rockblast", "shellsmash"], "noDynamaxMoves": ["hydropump", "iciclespear", "rockblast", "shellsmash"] @@ -245,63 +245,63 @@ "doublesMoves": ["energyball", "protect", "psychic", "sleeppowder", "trickroom"] }, "exeggutoralola": { - "level": 87, + "level": 86, "moves": ["dracometeor", "flamethrower", "gigadrain", "leafstorm", "trickroom"], "doublesLevel": 88, "doublesMoves": ["dragonpulse", "energyball", "flamethrower", "protect", "trickroom"] }, "marowak": { - "level": 86, + "level": 87, "moves": ["doubleedge", "earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["bonemerang", "knockoff", "protect", "stealthrock", "stoneedge"] }, "marowakalola": { - "level": 84, + "level": 83, "moves": ["earthquake", "flamecharge", "flareblitz", "poltergeist", "stealthrock", "stoneedge"], "doublesLevel": 83, "doublesMoves": ["bonemerang", "flamecharge", "flareblitz", "protect", "shadowbone"] }, "hitmonlee": { - "level": 84, + "level": 83, "moves": ["closecombat", "curse", "highjumpkick", "knockoff", "poisonjab", "stoneedge"], "doublesLevel": 86, "doublesMoves": ["closecombat", "fakeout", "knockoff", "poisonjab", "protect", "rockslide"] }, "hitmonchan": { - "level": 86, + "level": 87, "moves": ["bulkup", "drainpunch", "icepunch", "machpunch", "rapidspin", "throatchop"], "doublesLevel": 88, "doublesMoves": ["coaching", "drainpunch", "feint", "firepunch", "icepunch", "machpunch"] }, "weezing": { - "level": 86, + "level": 87, "moves": ["fireblast", "painsplit", "sludgebomb", "toxicspikes", "willowisp"], "doublesLevel": 88, "doublesMoves": ["fireblast", "painsplit", "sludgebomb", "toxicspikes", "willowisp"] }, "weezinggalar": { - "level": 86, + "level": 87, "moves": ["defog", "fireblast", "painsplit", "sludgebomb", "strangesteam", "toxicspikes", "willowisp"], "doublesLevel": 89, "doublesMoves": ["clearsmog", "defog", "fireblast", "painsplit", "strangesteam", "toxicspikes", "willowisp"] }, "rhydon": { - "level": 87, + "level": 85, "moves": ["earthquake", "megahorn", "stealthrock", "stoneedge", "toxic"] }, "chansey": { "level": 84, - "moves": ["healbell", "seismictoss", "softboiled", "stealthrock", "toxic"] + "moves": ["aromatherapy", "seismictoss", "softboiled", "stealthrock", "toxic"] }, "kangaskhan": { - "level": 84, + "level": 85, "moves": ["doubleedge", "earthquake", "fakeout", "hammerarm", "suckerpunch"], "doublesLevel": 88, "doublesMoves": ["doubleedge", "drainpunch", "fakeout", "protect", "rockslide", "suckerpunch"] }, "seaking": { - "level": 88, + "level": 90, "moves": ["drillrun", "knockoff", "megahorn", "swordsdance", "waterfall"], "doublesLevel": 88, "doublesMoves": ["drillrun", "knockoff", "megahorn", "protect", "scaleshot", "swordsdance", "waterfall"] @@ -319,17 +319,17 @@ "doublesMoves": ["dazzlinggleam", "fakeout", "icywind", "lightscreen", "psychic", "reflect"] }, "mrmimegalar": { - "level": 86, + "level": 84, "moves": ["focusblast", "freezedry", "nastyplot", "psychic", "rapidspin"] }, "scyther": { - "level": 81, + "level": 82, "moves": ["brickbreak", "dualwingbeat", "knockoff", "roost", "swordsdance", "uturn"], "doublesLevel": 84, "doublesMoves": ["brickbreak", "bugbite", "dualwingbeat", "uturn"] }, "jynx": { - "level": 86, + "level": 85, "moves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psyshock", "trick"], "doublesLevel": 86, "doublesMoves": ["focusblast", "icebeam", "lovelykiss", "nastyplot", "psychic"] @@ -341,19 +341,19 @@ "doublesMoves": ["closecombat", "feint", "protect", "rockslide", "swordsdance", "xscissor"] }, "tauros": { - "level": 82, - "moves": ["bodyslam", "closecombat", "rockslide", "throatchop", "zenheadbutt"], + "level": 81, + "moves": ["bodyslam", "closecombat", "throatchop", "zenheadbutt"], "doublesLevel": 84, "doublesMoves": ["bodyslam", "closecombat", "lashout", "protect", "rockslide"] }, "gyarados": { - "level": 76, + "level": 75, "moves": ["bounce", "dragondance", "earthquake", "powerwhip", "waterfall"], "doublesLevel": 81, "doublesMoves": ["bounce", "dragondance", "icefang", "powerwhip", "protect", "waterfall"] }, "laprasgmax": { - "level": 86, + "level": 85, "moves": ["freezedry", "icebeam", "protect", "sparklingaria", "thunderbolt", "toxic"], "doublesLevel": 84, "doublesMoves": ["freezedry", "helpinghand", "hydropump", "icywind", "protect", "thunderbolt"] @@ -365,7 +365,7 @@ "doublesMoves": ["transform"] }, "vaporeon": { - "level": 84, + "level": 85, "moves": ["healbell", "icebeam", "protect", "scald", "toxic", "wish"], "doublesLevel": 88, "doublesMoves": ["helpinghand", "icywind", "protect", "scald", "toxic", "wish"] @@ -377,25 +377,25 @@ "doublesMoves": ["faketears", "helpinghand", "shadowball", "thunderbolt", "thunderwave"] }, "flareon": { - "level": 86, + "level": 87, "moves": ["facade", "flamecharge", "flareblitz", "quickattack", "superpower"], "doublesLevel": 88, "doublesMoves": ["facade", "flamecharge", "flareblitz", "protect", "quickattack", "superpower"] }, "omastar": { "level": 82, - "moves": ["earthpower", "hydropump", "icebeam", "shellsmash", "spikes", "stealthrock"], + "moves": ["earthpower", "hydropump", "icebeam", "shellsmash"], "doublesLevel": 86, "doublesMoves": ["earthpower", "icebeam", "muddywater", "shellsmash"] }, "kabutops": { - "level": 82, + "level": 83, "moves": ["aquajet", "knockoff", "liquidation", "rapidspin", "stoneedge", "swordsdance"], "doublesLevel": 86, "doublesMoves": ["aquajet", "protect", "stoneedge", "superpower", "swordsdance", "waterfall"] }, "aerodactyl": { - "level": 82, + "level": 83, "moves": ["aquatail", "dualwingbeat", "earthquake", "honeclaws", "stoneedge"], "doublesLevel": 82, "doublesMoves": ["aquatail", "dragondance", "dualwingbeat", "earthquake", "rockslide"] @@ -411,13 +411,13 @@ "doublesMoves": ["bodyslam", "curse", "darkestlariat", "highhorsepower", "recycle"] }, "articuno": { - "level": 84, + "level": 85, "moves": ["defog", "freezedry", "healbell", "roost", "toxic"], "doublesLevel": 86, "doublesMoves": ["freezedry", "healbell", "hurricane", "icebeam", "roost"] }, "articunogalar": { - "level": 80, + "level": 81, "moves": ["airslash", "calmmind", "freezingglare", "recover"], "doublesLevel": 81, "doublesMoves": ["calmmind", "freezingglare", "hurricane", "recover", "tailwind"], @@ -430,7 +430,7 @@ "doublesMoves": ["heatwave", "hurricane", "roost", "tailwind", "thunderbolt", "voltswitch"] }, "zapdosgalar": { - "level": 76, + "level": 74, "moves": ["bravebird", "bulkup", "closecombat", "throatchop", "uturn"], "doublesLevel": 76, "doublesMoves": ["bravebird", "bulkup", "closecombat", "throatchop", "thunderouskick", "uturn"] @@ -443,7 +443,7 @@ "noDynamaxMoves": ["defog", "fireblast", "hurricane", "roost", "uturn"] }, "moltresgalar": { - "level": 75, + "level": 74, "moves": ["fierywrath", "hurricane", "nastyplot", "rest"], "doublesLevel": 75, "doublesMoves": ["fierywrath", "hurricane", "nastyplot", "protect"], @@ -457,13 +457,13 @@ "noDynamaxMoves": ["dragondance", "dualwingbeat", "earthquake", "outrage", "roost"] }, "mewtwo": { - "level": 72, + "level": 70, "moves": ["fireblast", "nastyplot", "psystrike", "recover", "shadowball"], "doublesLevel": 74, "doublesMoves": ["aurasphere", "icebeam", "nastyplot", "psystrike", "recover"] }, "mew": { - "level": 80, + "level": 79, "moves": ["bravebird", "closecombat", "dragondance", "flareblitz", "psychicfangs", "swordsdance"], "doublesLevel": 80, "doublesMoves": ["fakeout", "pollenpuff", "psychic", "stealthrock", "tailwind", "toxicspikes", "transform"], @@ -489,25 +489,25 @@ "doublesMoves": ["healbell", "icebeam", "protect", "scald", "thunderbolt", "thunderwave"] }, "xatu": { - "level": 89, + "level": 90, "moves": ["heatwave", "psychic", "roost", "teleport", "thunderwave"], "doublesLevel": 88, "doublesMoves": ["airslash", "heatwave", "lightscreen", "psychic", "reflect", "roost", "tailwind"] }, "bellossom": { - "level": 82, + "level": 81, "moves": ["gigadrain", "moonblast", "quiverdance", "sleeppowder", "strengthsap"], "doublesLevel": 86, "doublesMoves": ["energyball", "moonblast", "quiverdance", "sleeppowder", "strengthsap"] }, "azumarill": { - "level": 84, + "level": 83, "moves": ["aquajet", "knockoff", "liquidation", "playrough", "superpower"], "doublesLevel": 87, "doublesMoves": ["aquajet", "knockoff", "liquidation", "playrough", "protect"] }, "sudowoodo": { - "level": 87, + "level": 89, "moves": ["earthquake", "headsmash", "stealthrock", "suckerpunch", "woodhammer"], "doublesLevel": 90, "doublesMoves": ["bodypress", "firepunch", "headsmash", "protect", "suckerpunch", "woodhammer"] @@ -519,7 +519,7 @@ "doublesMoves": ["haze", "helpinghand", "icywind", "protect", "scald"] }, "quagsire": { - "level": 84, + "level": 82, "moves": ["earthquake", "icebeam", "recover", "scald", "toxic"], "doublesLevel": 88, "doublesMoves": ["highhorsepower", "protect", "recover", "scald", "yawn"] @@ -531,13 +531,13 @@ "doublesMoves": ["calmmind", "dazzlinggleam", "morningsun", "protect", "psychic", "shadowball"] }, "umbreon": { - "level": 82, + "level": 81, "moves": ["foulplay", "protect", "toxic", "wish"], "doublesLevel": 88, "doublesMoves": ["foulplay", "helpinghand", "moonlight", "protect", "snarl", "toxic"] }, "slowking": { - "level": 86, + "level": 87, "moves": ["fireblast", "futuresight", "psyshock", "scald", "slackoff", "teleport", "toxic", "trick"], "doublesLevel": 88, "doublesMoves": ["fireblast", "icebeam", "nastyplot", "psychic", "scald", "slackoff", "trickroom"] @@ -549,14 +549,14 @@ "doublesMoves": ["fireblast", "protect", "psychic", "sludgebomb", "trick", "trickroom"] }, "wobbuffet": { - "level": 92, + "level": 97, "moves": ["charm", "counter", "encore", "mirrorcoat"], "doublesLevel": 100, "doublesMoves": ["charm", "counter", "encore", "mirrorcoat"], "noDynamaxMoves": ["counter", "destinybond", "encore", "mirrorcoat"] }, "dunsparce": { - "level": 90, + "level": 91, "moves": ["bodyslam", "coil", "earthquake", "roost"], "doublesLevel": 90, "doublesMoves": ["glare", "headbutt", "protect", "rockslide"] @@ -569,13 +569,13 @@ "noDynamaxMoves": ["curse", "earthquake", "headsmash", "heavyslam", "stealthrock", "toxic"] }, "qwilfish": { - "level": 84, + "level": 85, "moves": ["destinybond", "spikes", "taunt", "thunderwave", "toxicspikes", "waterfall"], "doublesLevel": 88, "doublesMoves": ["liquidation", "poisonjab", "protect", "taunt", "thunderwave", "toxicspikes"] }, "scizor": { - "level": 80, + "level": 79, "moves": ["bulletpunch", "dualwingbeat", "knockoff", "roost", "superpower", "swordsdance", "uturn"], "doublesLevel": 80, "doublesMoves": ["bugbite", "bulletpunch", "dualwingbeat", "feint", "protect", "superpower", "swordsdance", "uturn"], @@ -594,7 +594,7 @@ "doublesMoves": ["closecombat", "facade", "knockoff", "megahorn", "protect", "swordsdance"] }, "corsola": { - "level": 93, + "level": 97, "moves": ["powergem", "recover", "scald", "stealthrock", "toxic"], "doublesLevel": 95, "doublesMoves": ["icywind", "lifedew", "recover", "scald", "toxic"] @@ -604,10 +604,10 @@ "moves": ["haze", "nightshade", "stealthrock", "strengthsap", "willowisp"] }, "octillery": { - "level": 86, - "moves": ["energyball", "fireblast", "gunkshot", "hydropump", "icebeam", "protect"], - "doublesLevel": 84, - "doublesMoves": ["fireblast", "gunkshot", "hydropump", "icebeam", "protect", "substitute"] + "level": 90, + "moves": ["energyball", "fireblast", "gunkshot", "hydropump", "icebeam", "scald", "thunderwave"], + "doublesLevel": 90, + "doublesMoves": ["fireblast", "gunkshot", "hydropump", "icebeam", "protect", "thunderwave"] }, "delibird": { "level": 100, @@ -617,7 +617,7 @@ }, "mantine": { "level": 86, - "moves": ["defog", "hurricane", "icebeam", "roost", "scald", "toxic"], + "moves": ["defog", "hurricane", "roost", "scald", "toxic"], "doublesLevel": 88, "doublesMoves": ["haze", "helpinghand", "hurricane", "roost", "scald", "tailwind"] }, @@ -641,37 +641,37 @@ "doublesMoves": ["icebeam", "recover", "thunderbolt", "toxic", "triattack", "trickroom"] }, "hitmontop": { - "level": 85, + "level": 86, "moves": ["closecombat", "earthquake", "rapidspin", "suckerpunch", "toxic", "tripleaxel"], "doublesLevel": 88, "doublesMoves": ["closecombat", "coaching", "fakeout", "helpinghand", "rapidspin", "suckerpunch", "tripleaxel"] }, "miltank": { - "level": 84, + "level": 83, "moves": ["bodyslam", "earthquake", "healbell", "milkdrink", "stealthrock", "toxic"], "doublesLevel": 86, "doublesMoves": ["bodypress", "bodyslam", "helpinghand", "icywind", "milkdrink", "protect", "rockslide"] }, "blissey": { - "level": 83, + "level": 84, "moves": ["seismictoss", "softboiled", "stealthrock", "teleport", "toxic"], "doublesLevel": 88, "doublesMoves": ["allyswitch", "healpulse", "helpinghand", "protect", "seismictoss", "softboiled", "thunderwave", "toxic"] }, "raikou": { - "level": 80, + "level": 79, "moves": ["aurasphere", "calmmind", "scald", "substitute", "thunderbolt", "voltswitch"], "doublesLevel": 82, "doublesMoves": ["aurasphere", "calmmind", "protect", "scald", "snarl", "thunderbolt", "voltswitch"] }, "entei": { - "level": 78, + "level": 77, "moves": ["extremespeed", "flareblitz", "sacredfire", "stompingtantrum", "stoneedge"], "doublesLevel": 79, "doublesMoves": ["extremespeed", "protect", "sacredfire", "snarl", "stompingtantrum", "stoneedge"] }, "suicune": { - "level": 80, + "level": 79, "moves": ["airslash", "calmmind", "icebeam", "rest", "scald", "sleeptalk"], "doublesLevel": 82, "doublesMoves": ["calmmind", "icebeam", "scald", "snarl", "tailwind"], @@ -684,19 +684,19 @@ "doublesMoves": ["dragondance", "firepunch", "highhorsepower", "lashout", "protect", "rockslide", "stoneedge"] }, "lugia": { - "level": 74, + "level": 73, "moves": ["airslash", "earthquake", "roost", "substitute", "toxic"], "doublesLevel": 72, "doublesMoves": ["aeroblast", "calmmind", "psyshock", "roost", "toxic"] }, "hooh": { - "level": 72, + "level": 70, "moves": ["bravebird", "defog", "earthquake", "roost", "sacredfire", "toxic"], "doublesLevel": 72, "doublesMoves": ["bravebird", "earthpower", "protect", "roost", "sacredfire", "tailwind"] }, "celebi": { - "level": 82, + "level": 80, "moves": ["earthpower", "gigadrain", "leafstorm", "nastyplot", "psychic", "recover", "stealthrock", "uturn"], "doublesLevel": 84, "doublesMoves": ["earthpower", "energyball", "nastyplot", "protect", "psychic", "recover"] @@ -708,7 +708,7 @@ "doublesMoves": ["breakingswipe", "energyball", "focusblast", "leafstorm"] }, "blaziken": { - "level": 76, + "level": 75, "moves": ["closecombat", "flareblitz", "knockoff", "stoneedge", "swordsdance"], "doublesLevel": 78, "doublesMoves": ["closecombat", "flareblitz", "knockoff", "protect", "swordsdance"] @@ -720,7 +720,7 @@ "doublesMoves": ["highhorsepower", "icywind", "muddywater", "protect", "stealthrock", "wideguard"] }, "linoone": { - "level": 84, + "level": 85, "moves": ["bellydrum", "extremespeed", "stompingtantrum", "throatchop"], "doublesLevel": 90, "doublesMoves": ["bellydrum", "extremespeed", "protect", "throatchop"] @@ -732,7 +732,7 @@ "doublesMoves": ["energyball", "fakeout", "hydropump", "icebeam", "raindance"] }, "shiftry": { - "level": 86, + "level": 87, "moves": ["darkpulse", "defog", "heatwave", "leafstorm", "nastyplot", "suckerpunch"], "doublesLevel": 88, "doublesMoves": ["defog", "fakeout", "knockoff", "leafblade", "suckerpunch", "tailwind"], @@ -757,56 +757,56 @@ "doublesMoves": ["acrobatics", "defog", "leechlife", "protect", "swordsdance"] }, "shedinja": { - "level": 88, + "level": 91, "moves": ["poltergeist", "shadowsneak", "swordsdance", "willowisp", "xscissor"], "doublesLevel": 95, "doublesMoves": ["poltergeist", "protect", "shadowsneak", "swordsdance", "willowisp", "xscissor"] }, "exploud": { - "level": 84, + "level": 85, "moves": ["boomburst", "fireblast", "focusblast", "surf"], "doublesLevel": 88, "doublesMoves": ["boomburst", "fireblast", "focusblast", "hypervoice", "icywind", "protect"] }, "sableye": { - "level": 88, + "level": 90, "moves": ["knockoff", "recover", "taunt", "toxic", "willowisp"], "doublesLevel": 88, "doublesMoves": ["disable", "encore", "fakeout", "foulplay", "knockoff", "quash", "recover", "willowisp"], "noDynamaxMoves": ["encore", "knockoff", "recover", "taunt", "toxic", "willowisp"] }, "mawile": { - "level": 86, + "level": 89, "moves": ["ironhead", "playrough", "stealthrock", "suckerpunch", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["firefang", "ironhead", "playrough", "protect", "suckerpunch", "swordsdance"] }, "aggron": { - "level": 85, + "level": 86, "moves": ["bodypress", "earthquake", "headsmash", "heavyslam", "rockpolish", "stealthrock"], "doublesLevel": 89, "doublesMoves": ["aquatail", "bodypress", "headsmash", "heavyslam", "highhorsepower", "rockpolish"] }, "manectric": { - "level": 86, + "level": 87, "moves": ["flamethrower", "overheat", "switcheroo", "thunderbolt", "voltswitch"], "doublesLevel": 88, "doublesMoves": ["overheat", "protect", "snarl", "thunderbolt", "voltswitch"] }, "sharpedo": { - "level": 82, + "level": 81, "moves": ["closecombat", "crunch", "hydropump", "protect"], "doublesLevel": 84, "doublesMoves": ["closecombat", "crunch", "flipturn", "icebeam", "protect", "waterfall"] }, "wailord": { - "level": 90, + "level": 91, "moves": ["hydropump", "hypervoice", "icebeam", "waterspout"], "doublesLevel": 88, "doublesMoves": ["hydropump", "heavyslam", "icebeam", "waterspout"] }, "torkoal": { - "level": 86, + "level": 87, "moves": ["earthquake", "lavaplume", "rapidspin", "solarbeam", "stealthrock"], "doublesLevel": 84, "doublesMoves": ["bodypress", "earthpower", "fireblast", "heatwave", "protect", "solarbeam", "willowisp"] @@ -818,37 +818,37 @@ "doublesMoves": ["dragonclaw", "dragondance", "earthquake", "firepunch", "protect", "rockslide", "tailwind"] }, "altaria": { - "level": 90, + "level": 91, "moves": ["defog", "dracometeor", "earthquake", "fireblast", "roost", "toxic"], "doublesLevel": 92, "doublesMoves": ["defog", "dracometeor", "fireblast", "roost", "tailwind", "toxic"] }, "lunatone": { - "level": 86, + "level": 88, "moves": ["earthpower", "moonblast", "nastyplot", "powergem", "psychic", "stealthrock"], "doublesLevel": 88, "doublesMoves": ["earthpower", "icebeam", "meteorbeam", "protect", "psychic", "trickroom"] }, "solrock": { - "level": 88, + "level": 91, "moves": ["earthquake", "explosion", "morningsun", "rockslide", "stealthrock", "willowisp"], "doublesLevel": 88, "doublesMoves": ["flareblitz", "helpinghand", "rockslide", "stoneedge", "willowisp"] }, "whiscash": { - "level": 86, + "level": 87, "moves": ["dragondance", "earthquake", "liquidation", "stoneedge", "zenheadbutt"], "doublesLevel": 90, "doublesMoves": ["dragondance", "earthquake", "liquidation", "protect", "stoneedge"] }, "crawdaunt": { - "level": 84, + "level": 85, "moves": ["aquajet", "closecombat", "crabhammer", "dragondance", "knockoff"], "doublesLevel": 86, "doublesMoves": ["aquajet", "closecombat", "crabhammer", "knockoff", "protect", "swordsdance"] }, "claydol": { - "level": 86, + "level": 87, "moves": ["earthquake", "icebeam", "psychic", "rapidspin", "stealthrock", "toxic"], "doublesLevel": 88, "doublesMoves": ["allyswitch", "earthpower", "icebeam", "psychic", "rapidspin"] @@ -860,14 +860,14 @@ "doublesMoves": ["powerwhip", "protect", "recover", "stealthrock", "stoneedge", "stringshot"] }, "armaldo": { - "level": 86, + "level": 89, "moves": ["earthquake", "knockoff", "liquidation", "rapidspin", "stealthrock", "stoneedge", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["knockoff", "liquidation", "stoneedge", "superpower", "xscissor"], "noDynamaxMoves": ["earthquake", "knockoff", "rapidspin", "stealthrock", "stoneedge", "swordsdance"] }, "milotic": { - "level": 82, + "level": 81, "moves": ["haze", "icebeam", "recover", "scald", "toxic"], "doublesLevel": 80, "doublesMoves": ["coil", "hypnosis", "muddywater", "recover"] @@ -879,10 +879,10 @@ "doublesMoves": ["closecombat", "knockoff", "protect", "suckerpunch", "swordsdance"] }, "glalie": { - "level": 80, - "moves": ["disable", "earthquake", "freezedry", "protect", "substitute"], - "doublesLevel": 84, - "doublesMoves": ["disable", "earthquake", "freezedry", "protect", "substitute"] + "level": 94, + "moves": ["earthquake", "freezedry", "spikes", "superfang", "taunt"], + "doublesLevel": 94, + "doublesMoves": ["disable", "foulplay", "freezedry", "helpinghand", "icywind", "protect"] }, "walrein": { "level": 86, @@ -891,14 +891,14 @@ "doublesMoves": ["brine", "icebeam", "icywind", "superfang"] }, "relicanth": { - "level": 86, + "level": 88, "moves": ["bodypress", "earthquake", "headsmash", "liquidation", "stealthrock", "yawn"], "doublesLevel": 88, "doublesMoves": ["bodypress", "headsmash", "liquidation", "stealthrock", "yawn"] }, "salamence": { - "level": 76, - "moves": ["dragondance", "dualwingbeat", "earthquake", "outrage", "roost"], + "level": 74, + "moves": ["dragondance", "dualwingbeat", "earthquake", "outrage"], "doublesLevel": 79, "doublesMoves": ["dragonclaw", "fireblast", "hurricane", "protect", "tailwind"] }, @@ -909,51 +909,51 @@ "doublesMoves": ["agility", "bulletpunch", "icepunch", "meteormash", "stompingtantrum", "trick", "zenheadbutt"] }, "regirock": { - "level": 85, + "level": 86, "moves": ["bodypress", "curse", "earthquake", "explosion", "rest", "rockslide", "stoneedge"], "doublesLevel": 86, "doublesMoves": ["bodypress", "curse", "rest", "rockslide"] }, "regice": { - "level": 84, + "level": 85, "moves": ["focusblast", "icebeam", "rest", "rockpolish", "sleeptalk", "thunderbolt"], "doublesLevel": 87, "doublesMoves": ["focusblast", "icebeam", "icywind", "rockpolish", "thunderbolt"] }, "registeel": { - "level": 83, + "level": 84, "moves": ["bodypress", "curse", "ironhead", "protect", "rest", "sleeptalk", "stealthrock", "toxic"], "doublesLevel": 86, "doublesMoves": ["bodypress", "curse", "ironhead", "rest", "toxic"] }, "latias": { "level": 80, - "moves": ["calmmind", "dracometeor", "healingwish", "mysticalfire", "psychic", "roost"], + "moves": ["calmmind", "dracometeor", "healingwish", "mysticalfire", "psyshock", "roost"], "doublesLevel": 82, "doublesMoves": ["calmmind", "dracometeor", "healpulse", "mysticalfire", "psyshock", "roost", "tailwind"] }, "latios": { - "level": 78, + "level": 77, "moves": ["calmmind", "dracometeor", "mysticalfire", "psyshock", "roost", "trick"], "doublesLevel": 80, "doublesMoves": ["dracometeor", "mysticalfire", "psychic", "psyshock", "roost", "tailwind", "trick"] }, "kyogre": { - "level": 72, + "level": 71, "moves": ["calmmind", "icebeam", "originpulse", "thunder", "waterspout"], "doublesLevel": 69, "doublesMoves": ["icebeam", "originpulse", "thunder", "waterspout"] }, "groudon": { - "level": 73, + "level": 71, "moves": ["heatcrash", "heavyslam", "precipiceblades", "stealthrock", "stoneedge", "swordsdance", "thunderwave"], "doublesLevel": 72, "doublesMoves": ["heatcrash", "precipiceblades", "rockpolish", "stoneedge", "swordsdance"], "noDynamaxMoves": ["heatcrash", "precipiceblades", "stealthrock", "stoneedge", "swordsdance", "thunderwave"] }, "rayquaza": { - "level": 74, - "moves": ["dracometeor", "dragonascent", "dragondance", "earthquake", "extremespeed", "swordsdance", "vcreate"], + "level": 73, + "moves": ["dragonascent", "dragondance", "earthquake", "extremespeed", "swordsdance", "vcreate"], "doublesLevel": 74, "doublesMoves": ["dracometeor", "dragonascent", "dragonclaw", "dragondance", "earthpower", "extremespeed", "vcreate"], "noDynamaxMoves": ["dracometeor", "dragonascent", "dragondance", "earthquake", "extremespeed", "vcreate"] @@ -965,7 +965,7 @@ "doublesMoves": ["firepunch", "followme", "ironhead", "lifedew", "protect", "thunderwave"] }, "luxray": { - "level": 84, + "level": 86, "moves": ["agility", "crunch", "facade", "superpower", "voltswitch", "wildcharge"], "doublesLevel": 84, "doublesMoves": ["playrough", "protect", "superpower", "voltswitch", "wildcharge"] @@ -977,13 +977,13 @@ "doublesMoves": ["energyball", "leafstorm", "protect", "sleeppowder", "sludgebomb"] }, "vespiquen": { - "level": 96, + "level": 97, "moves": ["airslash", "defog", "roost", "toxic", "uturn"], "doublesLevel": 98, "doublesMoves": ["airslash", "roost", "tailwind", "toxicspikes"] }, "cherrim": { - "level": 93, + "level": 94, "moves": ["dazzlinggleam", "energyball", "healingwish", "petaldance", "pollenpuff"], "doublesLevel": 92, "doublesMoves": ["energyball", "healingwish", "helpinghand", "pollenpuff"] @@ -993,31 +993,31 @@ "doublesMoves": ["playrough", "solarblade", "sunnyday", "weatherball"] }, "gastrodon": { - "level": 84, + "level": 85, "moves": ["clearsmog", "earthquake", "icebeam", "recover", "scald", "toxic"], "doublesLevel": 80, "doublesMoves": ["clearsmog", "earthpower", "icywind", "recover", "scald", "yawn"] }, "drifblim": { - "level": 84, + "level": 85, "moves": ["calmmind", "shadowball", "strengthsap", "thunderbolt"], "doublesLevel": 84, "doublesMoves": ["calmmind", "icywind", "shadowball", "strengthsap"] }, "lopunny": { - "level": 90, + "level": 93, "moves": ["closecombat", "facade", "healingwish", "switcheroo"], "doublesLevel": 92, "doublesMoves": ["closecombat", "fakeout", "switcheroo", "uturn"] }, "skuntank": { - "level": 85, + "level": 83, "moves": ["crunch", "defog", "fireblast", "poisonjab", "suckerpunch", "taunt", "toxic"], "doublesLevel": 88, "doublesMoves": ["crunch", "defog", "fireblast", "poisonjab", "suckerpunch", "taunt"] }, "bronzong": { - "level": 83, + "level": 84, "moves": ["earthquake", "ironhead", "protect", "stealthrock", "toxic"], "doublesLevel": 88, "doublesMoves": ["allyswitch", "bodypress", "ironhead", "trickroom"] @@ -1035,31 +1035,31 @@ "doublesMoves": ["dragonclaw", "earthquake", "fireblast", "protect", "rockslide", "swordsdance"] }, "lucario": { - "level": 82, + "level": 81, "moves": ["closecombat", "extremespeed", "meteormash", "stoneedge", "swordsdance"], "doublesLevel": 84, "doublesMoves": ["closecombat", "extremespeed", "icepunch", "meteormash", "protect", "swordsdance"] }, "hippowdon": { - "level": 80, + "level": 81, "moves": ["earthquake", "slackoff", "stealthrock", "stoneedge", "toxic", "whirlwind"], "doublesLevel": 88, "doublesMoves": ["highhorsepower", "slackoff", "stealthrock", "whirlwind", "yawn"] }, "drapion": { - "level": 82, + "level": 81, "moves": ["aquatail", "earthquake", "knockoff", "poisonjab", "swordsdance", "taunt", "toxicspikes"], "doublesLevel": 88, "doublesMoves": ["knockoff", "poisonjab", "protect", "swordsdance", "taunt"] }, "toxicroak": { - "level": 84, + "level": 85, "moves": ["drainpunch", "gunkshot", "icepunch", "knockoff", "substitute", "suckerpunch", "swordsdance"], "doublesLevel": 86, "doublesMoves": ["drainpunch", "fakeout", "gunkshot", "protect", "suckerpunch", "swordsdance", "taunt"] }, "abomasnow": { - "level": 82, + "level": 83, "moves": ["auroraveil", "blizzard", "earthquake", "iceshard", "woodhammer"], "doublesLevel": 88, "doublesMoves": ["auroraveil", "blizzard", "iceshard", "protect", "woodhammer"] @@ -1071,7 +1071,7 @@ "doublesMoves": ["fakeout", "iceshard", "knockoff", "lowkick", "tripleaxel"] }, "magnezone": { - "level": 84, + "level": 83, "moves": ["bodypress", "flashcannon", "mirrorcoat", "thunderbolt", "voltswitch"], "doublesLevel": 88, "doublesMoves": ["bodypress", "electroweb", "flashcannon", "protect", "thunderbolt", "voltswitch"] @@ -1083,7 +1083,7 @@ "doublesMoves": ["bodyslam", "explosion", "helpinghand", "icywind", "knockoff"] }, "rhyperior": { - "level": 82, + "level": 80, "moves": ["earthquake", "firepunch", "megahorn", "rockpolish", "stoneedge"], "doublesLevel": 84, "doublesMoves": ["highhorsepower", "icepunch", "megahorn", "protect", "rockslide", "stoneedge"] @@ -1095,13 +1095,13 @@ "doublesMoves": ["focusblast", "knockoff", "powerwhip", "ragepowder", "sleeppowder"] }, "electivire": { - "level": 82, + "level": 81, "moves": ["crosschop", "earthquake", "flamethrower", "icepunch", "voltswitch", "wildcharge"], "doublesLevel": 88, "doublesMoves": ["crosschop", "flamethrower", "icepunch", "stompingtantrum", "wildcharge"] }, "magmortar": { - "level": 86, + "level": 87, "moves": ["earthquake", "fireblast", "focusblast", "psychic", "taunt", "thunderbolt"], "doublesLevel": 88, "doublesMoves": ["fireblast", "focusblast", "heatwave", "protect", "thunderbolt"] @@ -1113,13 +1113,13 @@ "doublesMoves": ["airslash", "dazzlinggleam", "followme", "helpinghand", "protect", "tailwind"] }, "leafeon": { - "level": 86, - "moves": ["doubleedge", "knockoff", "leafblade", "swordsdance", "synthesis", "xscissor"], + "level": 87, + "moves": ["doubleedge", "knockoff", "leafblade", "swordsdance", "synthesis"], "doublesLevel": 86, "doublesMoves": ["doubleedge", "knockoff", "leafblade", "protect", "swordsdance"] }, "glaceon": { - "level": 88, + "level": 90, "moves": ["freezedry", "protect", "toxic", "wish"], "doublesLevel": 88, "doublesMoves": ["blizzard", "freezedry", "helpinghand", "protect", "shadowball", "wish"] @@ -1144,7 +1144,7 @@ "doublesMoves": ["closecombat", "feint", "knockoff", "protect", "swordsdance", "tripleaxel", "zenheadbutt"] }, "dusknoir": { - "level": 86, + "level": 88, "moves": ["earthquake", "icepunch", "painsplit", "poltergeist", "shadowsneak", "trick", "willowisp"], "doublesLevel": 86, "doublesMoves": ["earthquake", "haze", "icepunch", "poltergeist", "shadowsneak", "trickroom", "willowisp"] @@ -1156,7 +1156,7 @@ "doublesMoves": ["destinybond", "icebeam", "icywind", "protect", "shadowball", "willowisp"] }, "rotom": { - "level": 84, + "level": 85, "moves": ["nastyplot", "shadowball", "thunderbolt", "voltswitch", "willowisp"], "doublesLevel": 88, "doublesMoves": ["electroweb", "protect", "shadowball", "thunderbolt", "voltswitch", "willowisp"] @@ -1174,7 +1174,7 @@ "doublesMoves": ["hydropump", "protect", "thunderbolt", "thunderwave", "voltswitch", "willowisp"] }, "rotomfrost": { - "level": 84, + "level": 82, "moves": ["blizzard", "nastyplot", "thunderbolt", "voltswitch", "willowisp"], "doublesLevel": 86, "doublesMoves": ["blizzard", "nastyplot", "protect", "thunderbolt", "willowisp"] @@ -1186,7 +1186,7 @@ "doublesMoves": ["airslash", "nastyplot", "protect", "thunderbolt"] }, "rotommow": { - "level": 86, + "level": 84, "moves": ["leafstorm", "nastyplot", "thunderbolt", "trick", "voltswitch", "willowisp"], "doublesLevel": 88, "doublesMoves": ["electroweb", "leafstorm", "protect", "thunderbolt", "voltswitch", "willowisp"] @@ -1195,7 +1195,7 @@ "level": 82, "moves": ["healbell", "knockoff", "psychic", "stealthrock", "uturn", "yawn"], "doublesLevel": 86, - "doublesMoves": ["helpinghand", "knockoff", "psychic", "stealthrock", "thunderwave", "u-turn", "yawn"] + "doublesMoves": ["helpinghand", "knockoff", "psychic", "stealthrock", "thunderwave", "uturn", "yawn"] }, "mesprit": { "level": 84, @@ -1204,19 +1204,19 @@ "doublesMoves": ["dazzlinggleam", "knockoff", "nastyplot", "psychic", "thunderbolt", "thunderwave"] }, "azelf": { - "level": 82, + "level": 81, "moves": ["dazzlinggleam", "fireblast", "nastyplot", "psychic", "psyshock", "stealthrock", "taunt", "uturn"], "doublesLevel": 84, "doublesMoves": ["energyball", "fireblast", "nastyplot", "psychic", "shadowball", "uturn"] }, "dialga": { - "level": 74, + "level": 73, "moves": ["dracometeor", "fireblast", "flashcannon", "stealthrock", "thunderbolt", "toxic"], "doublesLevel": 74, "doublesMoves": ["dracometeor", "earthpower", "fireblast", "flashcannon", "protect", "thunderbolt", "thunderwave"] }, "palkia": { - "level": 74, + "level": 73, "moves": ["dracometeor", "fireblast", "hydropump", "spacialrend", "thunderwave"], "doublesLevel": 74, "doublesMoves": ["fireblast", "hydropump", "protect", "spacialrend", "thunderbolt", "thunderwave"] @@ -1234,7 +1234,7 @@ "doublesMoves": ["bodyslam", "knockoff", "protect", "thunderwave"] }, "giratinaorigin": { - "level": 74, + "level": 72, "moves": ["dualwingbeat", "honeclaws", "outrage", "poltergeist", "shadowsneak"], "doublesLevel": 74, "doublesMoves": ["dracometeor", "protect", "shadowball", "shadowsneak", "tailwind", "willowisp"], @@ -1253,25 +1253,25 @@ "doublesMoves": ["helpinghand", "icywind", "moonblast", "moonlight", "psychic", "thunderwave"] }, "victini": { - "level": 78, + "level": 77, "moves": ["blueflare", "boltstrike", "energyball", "glaciate", "uturn", "vcreate", "zenheadbutt"], "doublesLevel": 81, "doublesMoves": ["boltstrike", "glaciate", "protect", "uturn", "vcreate", "zenheadbutt"] }, "stoutland": { - "level": 86, + "level": 87, "moves": ["crunch", "facade", "playrough", "superpower", "wildcharge"], "doublesLevel": 90, "doublesMoves": ["facade", "helpinghand", "superpower", "thunderwave"] }, "liepard": { - "level": 86, + "level": 90, "moves": ["copycat", "encore", "knockoff", "playrough", "thunderwave", "uturn"], "doublesLevel": 88, "doublesMoves": ["copycat", "encore", "fakeout", "foulplay", "snarl", "taunt", "thunderwave"] }, "musharna": { - "level": 86, + "level": 87, "moves": ["calmmind", "moonblast", "moonlight", "psychic", "thunderwave"], "doublesLevel": 88, "doublesMoves": ["helpinghand", "hypnosis", "moonblast", "psychic", "trickroom"] @@ -1283,59 +1283,59 @@ "doublesMoves": ["bravebird", "nightslash", "quickattack", "tailwind", "uturn"] }, "gigalith": { - "level": 82, + "level": 83, "moves": ["earthquake", "explosion", "stealthrock", "stoneedge", "superpower"], "doublesLevel": 88, "doublesMoves": ["bodypress", "explosion", "protect", "rockslide", "stealthrock", "stompingtantrum", "stoneedge", "wideguard"] }, "swoobat": { - "level": 86, + "level": 89, "moves": ["airslash", "calmmind", "heatwave", "roost", "storedpower"], "doublesLevel": 86, "doublesMoves": ["airslash", "calmmind", "heatwave", "psychic"] }, "excadrill": { - "level": 78, + "level": 77, "moves": ["earthquake", "ironhead", "rapidspin", "rockslide", "swordsdance"], "doublesLevel": 80, "doublesMoves": ["highhorsepower", "ironhead", "protect", "rapidspin", "rockslide", "swordsdance"] }, "audino": { - "level": 91, + "level": 92, "moves": ["healbell", "knockoff", "protect", "toxic", "wish"], "doublesLevel": 90, "doublesMoves": ["bodyslam", "healpulse", "helpinghand", "knockoff", "protect", "thunderwave"] }, "gurdurr": { - "level": 83, + "level": 84, "moves": ["bulkup", "defog", "drainpunch", "knockoff", "machpunch"] }, "conkeldurr": { - "level": 80, + "level": 78, "moves": ["closecombat", "drainpunch", "facade", "knockoff", "machpunch"], "doublesLevel": 84, "doublesMoves": ["closecombat", "drainpunch", "icepunch", "knockoff", "machpunch", "protect"] }, "seismitoad": { - "level": 84, + "level": 83, "moves": ["earthquake", "liquidation", "raindance", "sludgebomb", "stealthrock"], "doublesLevel": 86, "doublesMoves": ["earthpower", "knockoff", "muddywater", "powerwhip", "protect", "raindance"] }, "throh": { - "level": 86, + "level": 85, "moves": ["bulkup", "circlethrow", "icepunch", "knockoff", "rest", "sleeptalk", "stormthrow"], "doublesLevel": 86, "doublesMoves": ["facade", "knockoff", "protect", "stormthrow", "wideguard"] }, "sawk": { - "level": 86, + "level": 85, "moves": ["bulkup", "closecombat", "knockoff", "poisonjab", "stoneedge"], "doublesLevel": 86, "doublesMoves": ["closecombat", "helpinghand", "knockoff", "poisonjab", "protect", "rockslide"] }, "scolipede": { - "level": 80, + "level": 79, "moves": ["earthquake", "megahorn", "poisonjab", "protect", "spikes", "swordsdance", "toxicspikes"], "doublesLevel": 84, "doublesMoves": ["megahorn", "poisonjab", "protect", "rockslide", "superpower", "swordsdance"] @@ -1359,12 +1359,6 @@ "doublesLevel": 86, "doublesMoves": ["flipturn", "liquidation", "muddywater", "protect", "superpower"] }, - "basculinbluestriped": { - "level": 86, - "moves": ["aquajet", "crunch", "flipturn", "liquidation", "psychicfangs", "superpower"], - "doublesLevel": 86, - "doublesMoves": ["flipturn", "liquidation", "muddywater", "protect", "superpower"] - }, "krookodile": { "level": 78, "moves": ["closecombat", "earthquake", "knockoff", "stealthrock", "stoneedge"], @@ -1372,30 +1366,30 @@ "doublesMoves": ["closecombat", "highhorsepower", "knockoff", "protect", "rockslide", "taunt"] }, "darmanitan": { - "level": 80, + "level": 79, "moves": ["earthquake", "flareblitz", "rockslide", "superpower", "uturn"], "doublesLevel": 82, "doublesMoves": ["earthquake", "flareblitz", "protect", "rockslide", "superpower", "uturn"] }, "darmanitangalar": { - "level": 78, + "level": 77, "moves": ["earthquake", "flareblitz", "iciclecrash", "superpower", "uturn"], "doublesLevel": 80, "doublesMoves": ["flareblitz", "iciclecrash", "rockslide", "superpower", "uturn"] }, "darmanitangalarzen": { - "level": 78, + "level": 77, "moves": ["bellydrum", "earthquake", "firepunch", "iciclecrash", "substitute"] }, "maractus": { - "level": 95, + "level": 96, "moves": ["energyball", "knockoff", "leechseed", "spikes", "spikyshield", "toxic"], "doublesLevel": 96, "doublesMoves": ["acupressure", "helpinghand", "leafstorm", "leechseed", "spikyshield"] }, "crustle": { "level": 82, - "moves": ["earthquake", "shellsmash", "spikes", "stealthrock", "stoneedge", "xscissor"], + "moves": ["earthquake", "shellsmash", "stoneedge", "xscissor"], "doublesLevel": 84, "doublesMoves": ["knockoff", "protect", "rockslide", "shellsmash", "xscissor"] }, @@ -1412,13 +1406,13 @@ "doublesMoves": ["airslash", "heatwave", "protect", "psychic", "tailwind"] }, "cofagrigus": { - "level": 86, + "level": 87, "moves": ["bodypress", "memento", "shadowball", "toxicspikes", "willowisp"], "doublesLevel": 88, "doublesMoves": ["bodypress", "irondefense", "painsplit", "shadowball", "trickroom", "willowisp"] }, "carracosta": { - "level": 84, + "level": 83, "moves": ["aquajet", "hydropump", "shellsmash", "stoneedge", "superpower"], "doublesLevel": 88, "doublesMoves": ["aquajet", "liquidation", "shellsmash", "stoneedge", "superpower"] @@ -1436,7 +1430,9 @@ "doublesMoves": ["drainpunch", "explosion", "gunkshot", "protect", "toxicspikes"] }, "zoroark": { + "level": 83, "moves": ["darkpulse", "flamethrower", "nastyplot", "sludgebomb", "trick"], + "doublesLevel": 84, "doublesMoves": ["darkpulse", "flamethrower", "focusblast", "nastyplot", "protect", "sludgebomb"] }, "cinccino": { @@ -1446,8 +1442,8 @@ "doublesMoves": ["bulletseed", "knockoff", "protect", "rockblast", "tailslap", "tripleaxel", "uturn"] }, "gothitelle": { - "level": 86, - "moves": ["nastyplot", "psychic", "shadowball", "thunderbolt", "trick"], + "level": 87, + "moves": ["darkpulse", "nastyplot", "psychic", "thunderbolt", "trick"], "doublesLevel": 83, "doublesMoves": ["fakeout", "healpulse", "helpinghand", "hypnosis", "protect", "psychic", "trickroom"] }, @@ -1464,7 +1460,7 @@ "doublesMoves": ["auroraveil", "blizzard", "explosion", "freezedry", "protect"] }, "emolga": { - "level": 88, + "level": 90, "moves": ["airslash", "defog", "energyball", "roost", "thunderbolt", "toxic", "uturn"], "doublesLevel": 88, "doublesMoves": ["acrobatics", "helpinghand", "nuzzle", "tailwind", "taunt", "voltswitch"] @@ -1476,38 +1472,38 @@ "doublesMoves": ["closecombat", "drillrun", "ironhead", "knockoff", "megahorn", "protect", "swordsdance"] }, "amoonguss": { - "level": 84, + "level": 83, "moves": ["gigadrain", "sludgebomb", "spore", "synthesis", "toxic"], "doublesLevel": 81, "doublesMoves": ["clearsmog", "pollenpuff", "protect", "ragepowder", "spore"] }, "jellicent": { - "level": 84, + "level": 86, "moves": ["icebeam", "recover", "scald", "shadowball", "toxic", "willowisp"], "doublesLevel": 84, "doublesMoves": ["scald", "shadowball", "strengthsap", "trickroom", "willowisp"] }, "galvantula": { - "level": 82, + "level": 81, "moves": ["bugbuzz", "gigadrain", "stickyweb", "thunder", "voltswitch"], "doublesLevel": 85, "doublesMoves": ["bugbuzz", "electroweb", "energyball", "protect", "stickyweb", "thunder"] }, "ferrothorn": { - "level": 78, + "level": 77, "moves": ["gyroball", "knockoff", "leechseed", "powerwhip", "protect", "spikes", "stealthrock"], "doublesLevel": 83, "doublesMoves": ["bodypress", "gyroball", "leechseed", "powerwhip", "protect", "toxic"] }, "klinklang": { - "level": 84, + "level": 83, "moves": ["geargrind", "shiftgear", "substitute", "wildcharge"], "doublesLevel": 88, "doublesMoves": ["geargrind", "protect", "shiftgear", "wildcharge"] }, "beheeyem": { - "level": 86, - "moves": ["psychic", "shadowball", "thunderbolt", "trick", "trickroom"], + "level": 89, + "moves": ["darkpulse", "psychic", "thunderbolt", "trick", "trickroom"], "doublesLevel": 88, "doublesMoves": ["protect", "psychic", "shadowball", "thunderbolt", "trickroom"] }, @@ -1536,14 +1532,14 @@ "doublesMoves": ["freezedry", "haze", "icebeam", "icywind", "rapidspin", "recover", "toxic"] }, "accelgor": { - "level": 86, - "moves": ["bugbuzz", "energyball", "focusblast", "sludgebomb", "spikes", "toxic", "yawn"], + "level": 90, + "moves": ["bugbuzz", "energyball", "focusblast", "sludgebomb", "spikes", "toxicspikes", "yawn"], "doublesLevel": 88, "doublesMoves": ["acidspray", "bugbuzz", "encore", "energyball", "focusblast"], "noDynamaxMoves": ["bugbuzz", "encore", "energyball", "focusblast", "spikes", "toxic"] }, "stunfisk": { - "level": 84, + "level": 83, "moves": ["discharge", "earthpower", "foulplay", "sludgebomb", "stealthrock"], "doublesLevel": 88, "doublesMoves": ["earthpower", "electroweb", "foulplay", "stealthrock", "thunderbolt"] @@ -1555,13 +1551,13 @@ "doublesMoves": ["earthquake", "stealthrock", "stoneedge", "thunderwave", "yawn"] }, "mienshao": { - "level": 82, + "level": 81, "moves": ["closecombat", "fakeout", "knockoff", "poisonjab", "stoneedge", "swordsdance", "uturn"], "doublesLevel": 84, "doublesMoves": ["closecombat", "fakeout", "knockoff", "poisonjab", "protect", "uturn"] }, "druddigon": { - "level": 84, + "level": 85, "moves": ["earthquake", "glare", "gunkshot", "outrage", "stealthrock", "suckerpunch", "superpower"], "doublesLevel": 87, "doublesMoves": ["dragonclaw", "firepunch", "glare", "gunkshot", "protect", "suckerpunch"] @@ -1585,19 +1581,19 @@ "doublesMoves": ["closecombat", "headcharge", "lashout", "protect", "wildcharge"] }, "braviary": { - "level": 82, + "level": 78, "moves": ["bravebird", "bulkup", "closecombat", "roost"], "doublesLevel": 82, "doublesMoves": ["bravebird", "bulkup", "closecombat", "roost", "tailwind"] }, "mandibuzz": { "level": 82, - "moves": ["bravebird", "defog", "foulplay", "roost", "toxic"], + "moves": ["bravebird", "defog", "foulplay", "roost", "toxic", "uturn"], "doublesLevel": 88, "doublesMoves": ["foulplay", "roost", "snarl", "tailwind", "taunt"] }, "heatmor": { - "level": 90, + "level": 92, "moves": ["firelash", "gigadrain", "knockoff", "substitute", "suckerpunch", "superpower"], "doublesLevel": 88, "doublesMoves": ["firelash", "gigadrain", "incinerate", "protect", "suckerpunch", "superpower"] @@ -1609,13 +1605,13 @@ "doublesMoves": ["firstimpression", "ironhead", "protect", "stompingtantrum", "superpower", "xscissor"] }, "hydreigon": { - "level": 80, + "level": 78, "moves": ["darkpulse", "dracometeor", "fireblast", "flashcannon", "nastyplot", "roost", "uturn"], "doublesLevel": 84, "doublesMoves": ["darkpulse", "dracometeor", "dragonpulse", "earthpower", "fireblast", "nastyplot", "protect", "tailwind"] }, "volcarona": { - "level": 76, + "level": 75, "moves": ["bugbuzz", "fireblast", "gigadrain", "quiverdance", "roost"], "doublesLevel": 80, "doublesMoves": ["bugbuzz", "gigadrain", "heatwave", "protect", "quiverdance"] @@ -1627,20 +1623,20 @@ "doublesMoves": ["closecombat", "ironhead", "protect", "stoneedge", "swordsdance", "thunderwave"] }, "terrakion": { - "level": 78, + "level": 79, "moves": ["closecombat", "earthquake", "quickattack", "stoneedge", "swordsdance"], "doublesLevel": 80, "doublesMoves": ["closecombat", "protect", "rockslide", "swordsdance"] }, "virizion": { - "level": 82, + "level": 81, "moves": ["closecombat", "leafblade", "stoneedge", "swordsdance"], "doublesLevel": 86, "doublesMoves": ["closecombat", "coaching", "leafblade", "protect", "stoneedge", "swordsdance"], "noDynamaxMoves": ["closecombat", "leafblade", "stoneedge", "swordsdance"] }, "tornadus": { - "level": 80, + "level": 79, "moves": ["defog", "grassknot", "heatwave", "hurricane", "nastyplot"], "doublesLevel": 80, "doublesMoves": ["heatwave", "hurricane", "nastyplot", "superpower", "tailwind", "taunt"] @@ -1652,19 +1648,19 @@ "doublesMoves": ["heatwave", "hurricane", "knockoff", "nastyplot", "protect", "uturn"] }, "thundurus": { - "level": 80, + "level": 81, "moves": ["grassknot", "knockoff", "nastyplot", "sludgewave", "superpower", "thunderbolt", "thunderwave"], "doublesLevel": 82, "doublesMoves": ["grassknot", "knockoff", "nastyplot", "protect", "sludgebomb", "thunderbolt", "thunderwave"] }, "thundurustherian": { - "level": 80, + "level": 79, "moves": ["focusblast", "grassknot", "nastyplot", "psychic", "thunderbolt", "voltswitch"], "doublesLevel": 82, "doublesMoves": ["agility", "focusblast", "grassknot", "nastyplot", "sludgebomb", "thunderbolt", "voltswitch"] }, "reshiram": { - "level": 74, + "level": 73, "moves": ["blueflare", "defog", "dracometeor", "earthpower", "roost", "stoneedge", "toxic"], "doublesLevel": 72, "doublesMoves": ["blueflare", "dracometeor", "earthpower", "heatwave", "roost", "tailwind"] @@ -1676,50 +1672,50 @@ "doublesMoves": ["boltstrike", "dragonclaw", "dragondance", "roost"] }, "landorus": { - "level": 76, + "level": 74, "moves": ["earthpower", "focusblast", "knockoff", "rockpolish", "rockslide", "sludgewave", "stealthrock"], "doublesLevel": 80, "doublesMoves": ["calmmind", "earthpower", "focusblast", "protect", "psychic", "sludgebomb"] }, "landorustherian": { - "level": 72, + "level": 73, "moves": ["earthquake", "fly", "stealthrock", "stoneedge", "swordsdance", "uturn"], "doublesLevel": 76, "doublesMoves": ["earthquake", "fly", "knockoff", "stoneedge", "swordsdance", "uturn"], "noDynamaxMoves": ["earthquake", "knockoff", "stealthrock", "stoneedge", "swordsdance", "uturn"] }, "kyurem": { - "level": 80, + "level": 79, "moves": ["dracometeor", "earthpower", "freezedry", "icebeam", "roost", "substitute"], "doublesLevel": 78, "doublesMoves": ["dracometeor", "earthpower", "freezedry", "glaciate", "protect", "roost"] }, "kyuremblack": { - "level": 73, + "level": 70, "moves": ["dragondance", "fusionbolt", "iciclespear", "outrage"], "doublesLevel": 75, "doublesMoves": ["dragonclaw", "dragondance", "fusionbolt", "iciclespear", "protect"] }, "kyuremwhite": { - "level": 74, + "level": 73, "moves": ["dracometeor", "earthpower", "freezedry", "fusionflare", "icebeam", "roost"], "doublesLevel": 72, "doublesMoves": ["dracometeor", "dragonpulse", "earthpower", "freezedry", "fusionflare", "icebeam", "protect", "roost"] }, "keldeoresolute": { - "level": 79, + "level": 77, "moves": ["airslash", "calmmind", "hydropump", "icywind", "scald", "secretsword", "substitute"], "doublesLevel": 82, "doublesMoves": ["airslash", "calmmind", "icywind", "muddywater", "protect", "secretsword"] }, "genesect": { - "level": 74, + "level": 72, "moves": ["blazekick", "extremespeed", "ironhead", "leechlife", "shiftgear", "thunderbolt", "uturn"], "doublesLevel": 78, "doublesMoves": ["blazekick", "ironhead", "leechlife", "protect", "shiftgear", "thunderbolt", "uturn"] }, "genesectdouse": { - "level": 74, + "level": 72, "moves": ["bugbuzz", "extremespeed", "flamethrower", "icebeam", "ironhead", "technoblast", "thunderbolt", "uturn"] }, "diggersby": { @@ -1732,7 +1728,7 @@ "level": 81, "moves": ["bravebird", "defog", "flareblitz", "roost", "swordsdance", "uturn"], "doublesLevel": 86, - "doublesMoves": ["bravebird", "defog", "incinerate", "overheat", "tailwind", "u-turn", "willowisp"] + "doublesMoves": ["bravebird", "defog", "incinerate", "overheat", "tailwind", "uturn", "willowisp"] }, "pangoro": { "level": 84, @@ -1748,12 +1744,12 @@ }, "meowsticf": { "level": 86, - "moves": ["energyball", "nastyplot", "psychic", "shadowball", "thunderbolt"], + "moves": ["darkpulse", "energyball", "nastyplot", "psychic", "thunderbolt"], "doublesLevel": 88, "doublesMoves": ["fakeout", "nastyplot", "psychic", "shadowball", "thunderbolt"] }, "doublade": { - "level": 82, + "level": 81, "moves": ["closecombat", "ironhead", "shadowclaw", "shadowsneak", "swordsdance"] }, "aegislash": { @@ -1769,13 +1765,13 @@ "doublesMoves": ["closecombat", "ironhead", "kingsshield", "shadowclaw", "shadowsneak", "swordsdance"] }, "aromatisse": { - "level": 88, + "level": 89, "moves": ["calmmind", "moonblast", "protect", "toxic", "wish"], "doublesLevel": 86, "doublesMoves": ["healpulse", "moonblast", "protect", "trickroom", "wish"] }, "slurpuff": { - "level": 80, + "level": 79, "moves": ["bellydrum", "drainpunch", "facade", "playrough"], "doublesLevel": 86, "doublesMoves": ["faketears", "flamethrower", "helpinghand", "playrough", "stickyweb"] @@ -1793,13 +1789,13 @@ "doublesMoves": ["liquidation", "protect", "rockslide", "shellsmash", "superpower"] }, "dragalge": { - "level": 86, + "level": 87, "moves": ["dracometeor", "dragonpulse", "flipturn", "focusblast", "sludgewave", "toxicspikes"], "doublesLevel": 86, "doublesMoves": ["dracometeor", "dragonpulse", "focusblast", "protect", "sludgebomb"] }, "clawitzer": { - "level": 84, + "level": 85, "moves": ["aurasphere", "darkpulse", "icebeam", "scald", "uturn", "waterpulse"], "doublesLevel": 84, "doublesMoves": ["aurasphere", "darkpulse", "icebeam", "muddywater", "uturn"] @@ -1811,7 +1807,7 @@ "doublesMoves": ["glare", "grassknot", "hypervoice", "protect", "thunderbolt", "voltswitch"] }, "tyrantrum": { - "level": 82, + "level": 83, "moves": ["closecombat", "dragondance", "earthquake", "headsmash", "outrage"], "doublesLevel": 86, "doublesMoves": ["closecombat", "dragonclaw", "dragondance", "headsmash", "highhorsepower"] @@ -1823,31 +1819,31 @@ "doublesMoves": ["auroraveil", "blizzard", "earthpower", "freezedry", "protect", "thunderwave"] }, "sylveon": { - "level": 84, + "level": 83, "moves": ["calmmind", "hypervoice", "mysticalfire", "protect", "psyshock", "shadowball", "wish"], "doublesLevel": 80, "doublesMoves": ["calmmind", "hypervoice", "mysticalfire", "protect", "psyshock"] }, "hawlucha": { - "level": 80, + "level": 79, "moves": ["bravebird", "closecombat", "roost", "stoneedge", "swordsdance", "throatchop"], "doublesLevel": 80, "doublesMoves": ["bravebird", "closecombat", "protect", "swordsdance"] }, "dedenne": { - "level": 87, + "level": 90, "moves": ["protect", "recycle", "thunderbolt", "toxic"], "doublesLevel": 88, "doublesMoves": ["eerieimpulse", "helpinghand", "nuzzle", "recycle", "superfang", "thunderbolt"] }, "carbink": { - "level": 86, + "level": 87, "moves": ["bodypress", "lightscreen", "moonblast", "reflect", "stealthrock"], "doublesLevel": 90, "doublesMoves": ["bodypress", "irondefense", "moonblast", "stealthrock"] }, "goodra": { - "level": 82, + "level": 83, "moves": ["dracometeor", "earthquake", "fireblast", "powerwhip", "sludgebomb", "thunderbolt"], "doublesLevel": 85, "doublesMoves": ["breakingswipe", "dracometeor", "fireblast", "muddywater", "powerwhip", "protect", "sludgebomb", "thunderbolt"] @@ -1859,19 +1855,19 @@ "doublesMoves": ["dazzlinggleam", "foulplay", "spikes", "thunderwave"] }, "trevenant": { - "level": 86, + "level": 87, "moves": ["earthquake", "hornleech", "poltergeist", "rockslide", "trickroom", "woodhammer"], "doublesLevel": 88, "doublesMoves": ["poltergeist", "protect", "trickroom", "willowisp", "woodhammer"] }, "gourgeist": { - "level": 84, + "level": 85, "moves": ["poltergeist", "powerwhip", "shadowsneak", "synthesis", "willowisp"], "doublesLevel": 88, "doublesMoves": ["leechseed", "poltergeist", "powerwhip", "substitute", "willowisp"] }, "gourgeistsmall": { - "level": 84, + "level": 82, "moves": ["leechseed", "poltergeist", "powerwhip", "substitute", "willowisp"], "doublesLevel": 88, "doublesMoves": ["leechseed", "poltergeist", "powerwhip", "substitute", "willowisp"] @@ -1895,14 +1891,14 @@ "doublesMoves": ["avalanche", "bodypress", "curse", "highhorsepower", "protect", "recover"] }, "noivern": { - "level": 82, + "level": 83, "moves": ["defog", "dracometeor", "flamethrower", "hurricane", "roost", "switcheroo"], "doublesLevel": 84, "doublesMoves": ["boomburst", "dracometeor", "flamethrower", "hurricane", "protect", "tailwind"] }, "xerneas": { - "level": 67, - "moves": ["focusblast", "geomancy", "moonblast", "psyshock", "thunderbolt"], + "level": 66, + "moves": ["focusblast", "geomancy", "moonblast", "psyshock"], "doublesLevel": 70, "doublesMoves": ["dazzlinggleam", "focusblast", "geomancy", "moonblast", "thunderbolt"] }, @@ -1913,13 +1909,13 @@ "doublesMoves": ["darkpulse", "heatwave", "knockoff", "oblivionwing", "roost", "suckerpunch", "tailwind"] }, "zygarde": { - "level": 70, + "level": 69, "moves": ["dragondance", "outrage", "substitute", "thousandarrows"], "doublesLevel": 72, "doublesMoves": ["coil", "dragondance", "extremespeed", "glare", "irontail", "thousandarrows"] }, "zygarde10": { - "level": 82, + "level": 81, "moves": ["coil", "extremespeed", "irontail", "outrage", "thousandarrows"], "doublesLevel": 77, "doublesMoves": ["dragondance", "extremespeed", "irontail", "protect", "stoneedge", "thousandarrows"] @@ -1931,7 +1927,7 @@ "doublesMoves": ["bodypress", "diamondstorm", "earthpower", "moonblast"] }, "volcanion": { - "level": 80, + "level": 78, "moves": ["defog", "earthpower", "flamethrower", "sludgebomb", "steameruption"], "doublesLevel": 80, "doublesMoves": ["earthpower", "heatwave", "protect", "sludgebomb", "steameruption"] @@ -1950,8 +1946,8 @@ "doublesMoves": ["fakeout", "flareblitz", "knockoff", "partingshot", "uturn"] }, "primarina": { - "level": 82, - "moves": ["energyball", "hydropump", "moonblast", "psychic", "sparklingaria"], + "level": 80, + "moves": ["energyball", "hydropump", "moonblast", "psychic", "scald"], "doublesLevel": 82, "doublesMoves": ["dazzlinggleam", "flipturn", "hypervoice", "moonblast", "protect", "psychic"] }, @@ -1962,43 +1958,43 @@ "doublesMoves": ["bugbuzz", "energyball", "protect", "stickyweb", "thunderbolt", "voltswitch"] }, "ribombee": { - "level": 82, + "level": 80, "moves": ["moonblast", "psychic", "stickyweb", "stunspore", "uturn"], "doublesLevel": 84, "doublesMoves": ["helpinghand", "moonblast", "pollenpuff", "speedswap", "stickyweb", "tailwind"] }, "lycanroc": { - "level": 80, + "level": 79, "moves": ["accelerock", "closecombat", "psychicfangs", "stoneedge", "swordsdance"], "doublesLevel": 84, "doublesMoves": ["accelerock", "closecombat", "drillrun", "protect", "rockslide", "swordsdance"] }, "lycanrocmidnight": { - "level": 82, + "level": 84, "moves": ["closecombat", "irontail", "stealthrock", "stoneedge", "suckerpunch", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["closecombat", "irontail", "protect", "stoneedge", "suckerpunch", "swordsdance"] }, "lycanrocdusk": { - "level": 80, + "level": 79, "moves": ["accelerock", "closecombat", "psychicfangs", "stoneedge", "swordsdance"], "doublesLevel": 81, "doublesMoves": ["accelerock", "closecombat", "drillrun", "protect", "rockslide", "swordsdance"] }, - "wishiwashischool": { - "level": 84, + "wishiwashi": { + "level": 86, "moves": ["earthquake", "hydropump", "icebeam", "scald", "uturn"], "doublesLevel": 88, "doublesMoves": ["earthquake", "helpinghand", "hydropump", "icebeam", "muddywater", "protect"] }, "toxapex": { - "level": 82, + "level": 79, "moves": ["banefulbunker", "haze", "recover", "scald", "toxic", "toxicspikes"], "doublesLevel": 90, "doublesMoves": ["banefulbunker", "haze", "recover", "scald", "toxic", "toxicspikes"] }, "mudsdale": { - "level": 82, + "level": 83, "moves": ["bodypress", "earthquake", "heavyslam", "rockslide", "stealthrock"], "doublesLevel": 86, "doublesMoves": ["bodypress", "heavyslam", "highhorsepower", "protect", "rest", "rocktomb"] @@ -2010,31 +2006,31 @@ "doublesMoves": ["leechlife", "liquidation", "lunge", "protect", "stickyweb", "wideguard"] }, "lurantis": { - "level": 86, + "level": 88, "moves": ["defog", "knockoff", "leafstorm", "superpower", "synthesis"], "doublesLevel": 88, "doublesMoves": ["defog", "knockoff", "leafstorm", "protect", "superpower"] }, "shiinotic": { - "level": 86, + "level": 89, "moves": ["energyball", "leechseed", "moonblast", "spore", "strengthsap"], "doublesLevel": 88, "doublesMoves": ["energyball", "moonblast", "protect", "spore", "strengthsap"] }, "salazzle": { - "level": 82, + "level": 81, "moves": ["flamethrower", "protect", "substitute", "toxic"], "doublesLevel": 88, "doublesMoves": ["encore", "fakeout", "fireblast", "nastyplot", "protect", "sludgebomb"] }, "bewear": { - "level": 82, + "level": 83, "moves": ["closecombat", "darkestlariat", "doubleedge", "icepunch", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["closecombat", "darkestlariat", "doubleedge", "drainpunch", "icepunch", "protect", "wideguard"] }, "tsareena": { - "level": 84, + "level": 85, "moves": ["highjumpkick", "knockoff", "powerwhip", "rapidspin", "synthesis", "tripleaxel", "uturn"], "doublesLevel": 88, "doublesMoves": ["highjumpkick", "knockoff", "playrough", "powerwhip", "rapidspin", "tripleaxel", "uturn"] @@ -2046,7 +2042,7 @@ "doublesMoves": ["drainingkiss", "floralhealing", "gigadrain", "helpinghand", "protect"] }, "oranguru": { - "level": 86, + "level": 90, "moves": ["focusblast", "nastyplot", "psychic", "thunderbolt", "trickroom"], "doublesLevel": 88, "doublesMoves": ["allyswitch", "focusblast", "instruct", "psychic", "trickroom"] @@ -2058,19 +2054,19 @@ "doublesMoves": ["closecombat", "gunkshot", "knockoff", "rockslide", "uturn"] }, "golisopod": { - "level": 84, + "level": 85, "moves": ["firstimpression", "knockoff", "leechlife", "liquidation", "spikes"], "doublesLevel": 88, "doublesMoves": ["aquajet", "firstimpression", "knockoff", "leechlife", "liquidation", "protect", "wideguard"] }, "palossand": { - "level": 86, + "level": 87, "moves": ["earthpower", "scorchingsands", "shadowball", "shoreup", "stealthrock", "toxic"], "doublesLevel": 88, "doublesMoves": ["hypnosis", "protect", "scorchingsands", "shadowball", "shoreup", "stealthrock"] }, "pyukumuku": { - "level": 84, + "level": 85, "moves": ["counter", "mirrorcoat", "recover", "toxic"], "doublesLevel": 100, "doublesMoves": ["helpinghand", "lightscreen", "memento", "reflect"] @@ -2080,109 +2076,109 @@ "moves": ["crushclaw", "payback", "rest", "sleeptalk", "swordsdance"] }, "silvally": { - "level": 84, + "level": 83, "moves": ["crunch", "explosion", "flamecharge", "flamethrower", "multiattack", "swordsdance", "uturn"], "doublesLevel": 88, "doublesMoves": ["crunch", "explosion", "flamethrower", "multiattack", "protect", "tailwind"] }, "silvallybug": { - "level": 84, + "level": 83, "moves": ["flamethrower", "multiattack", "partingshot", "psychicfangs", "thunderbolt"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "multiattack", "psychicfangs", "tailwind", "uturn"] }, "silvallydark": { - "level": 84, + "level": 83, "moves": ["ironhead", "multiattack", "partingshot", "psychicfangs", "swordsdance"], "doublesLevel": 86, "doublesMoves": ["ironhead", "multiattack", "psychicfangs", "swordsdance", "tailwind"] }, "silvallydragon": { - "level": 84, + "level": 83, "moves": ["flamecharge", "ironhead", "multiattack", "partingshot", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["firefang", "ironhead", "multiattack", "swordsdance", "tailwind"] }, "silvallyelectric": { - "level": 84, + "level": 83, "moves": ["flamethrower", "icebeam", "multiattack", "partingshot", "toxic"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "grasspledge", "icebeam", "multiattack", "tailwind"] }, "silvallyfairy": { - "level": 84, + "level": 83, "moves": ["flamecharge", "multiattack", "psychicfangs", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "multiattack", "partingshot", "tailwind"] }, "silvallyfighting": { - "level": 84, + "level": 83, "moves": ["crunch", "ironhead", "multiattack", "swordsdance", "uturn"], "doublesLevel": 88, "doublesMoves": ["crunch", "multiattack", "rockslide", "swordsdance", "tailwind"] }, "silvallyfire": { - "level": 84, + "level": 83, "moves": ["crunch", "ironhead", "multiattack", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["heatwave", "icebeam", "multiattack", "tailwind", "thunderbolt"] }, "silvallyflying": { - "level": 84, + "level": 83, "moves": ["flamecharge", "ironhead", "multiattack", "rockslide", "swordsdance"], "doublesLevel": 86, "doublesMoves": ["firefang", "ironhead", "multiattack", "swordsdance", "tailwind"] }, "silvallyghost": { - "level": 84, + "level": 83, "moves": ["flamecharge", "multiattack", "partingshot", "swordsdance", "xscissor"], "doublesLevel": 88, "doublesMoves": ["multiattack", "swordsdance", "tailwind", "xscissor"] }, "silvallygrass": { - "level": 84, + "level": 83, "moves": ["defog", "flamethrower", "icebeam", "multiattack", "partingshot"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "icebeam", "multiattack", "partingshot", "tailwind"] }, "silvallyground": { - "level": 84, + "level": 83, "moves": ["defog", "flamethrower", "icebeam", "multiattack", "partingshot", "toxic"], "doublesLevel": 89, "doublesMoves": ["multiattack", "rockslide", "swordsdance", "tailwind"] }, "silvallyice": { - "level": 84, + "level": 83, "moves": ["flamecharge", "multiattack", "psychicfangs", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "multiattack", "partingshot", "tailwind", "thunderbolt"] }, "silvallypoison": { - "level": 84, - "moves": ["defog", "flamethrower", "grasspledge", "multiattack", "partingshot", "toxic"], + "level": 83, + "moves": ["defog", "flamethrower", "multiattack", "partingshot", "surf", "toxic"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "grasspledge", "multiattack", "partingshot", "snarl", "tailwind"] }, "silvallypsychic": { - "level": 84, + "level": 83, "moves": ["crunch", "multiattack", "swordsdance", "uturn"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "multiattack", "partingshot", "tailwind", "xscissor"] }, "silvallyrock": { - "level": 84, + "level": 83, "moves": ["flamecharge", "multiattack", "partingshot", "psychicfangs", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["flamethrower", "multiattack", "partingshot", "psychicfangs", "tailwind"] }, "silvallysteel": { - "level": 84, + "level": 83, "moves": ["defog", "flamethrower", "multiattack", "partingshot", "thunderbolt", "toxic"], "doublesLevel": 87, "doublesMoves": ["flamethrower", "multiattack", "partingshot", "tailwind", "thunderbolt"] }, "silvallywater": { - "level": 84, + "level": 83, "moves": ["defog", "icebeam", "multiattack", "partingshot", "thunderbolt", "toxic"], "doublesLevel": 88, "doublesMoves": ["icebeam", "multiattack", "partingshot", "tailwind", "thunderbolt"] @@ -2200,7 +2196,7 @@ "doublesMoves": ["encore", "fakeout", "ironhead", "nuzzle", "spikyshield", "zingzap"] }, "mimikyu": { - "level": 76, + "level": 75, "moves": ["drainpunch", "playrough", "shadowclaw", "shadowsneak", "swordsdance"], "doublesLevel": 84, "doublesMoves": ["playrough", "shadowclaw", "shadowsneak", "swordsdance"] @@ -2212,7 +2208,7 @@ "doublesMoves": ["dracometeor", "dragonpulse", "heatwave", "hypervoice"] }, "dhelmise": { - "level": 86, + "level": 87, "moves": ["anchorshot", "earthquake", "poltergeist", "powerwhip", "rapidspin", "swordsdance"], "doublesLevel": 88, "doublesMoves": ["anchorshot", "knockoff", "powerwhip", "protect"] @@ -2224,13 +2220,13 @@ "doublesMoves": ["bodypress", "dracometeor", "irondefense", "protect"] }, "tapukoko": { - "level": 78, + "level": 77, "moves": ["calmmind", "dazzlinggleam", "grassknot", "substitute", "thunderbolt", "voltswitch"], "doublesLevel": 80, "doublesMoves": ["bravebird", "dazzlinggleam", "grassknot", "taunt", "thunderbolt", "uturn"] }, "tapulele": { - "level": 79, + "level": 78, "moves": ["calmmind", "focusblast", "moonblast", "psychic", "psyshock", "shadowball"], "doublesLevel": 80, "doublesMoves": ["calmmind", "dazzlinggleam", "focusblast", "moonblast", "protect", "psyshock"] @@ -2242,13 +2238,13 @@ "doublesMoves": ["closecombat", "hornleech", "protect", "stoneedge", "swordsdance", "woodhammer"] }, "tapufini": { - "level": 78, + "level": 77, "moves": ["calmmind", "defog", "moonblast", "surf", "taunt"], "doublesLevel": 80, "doublesMoves": ["haze", "healpulse", "moonblast", "muddywater", "naturesmadness", "protect", "taunt"] }, "solgaleo": { - "level": 72, + "level": 71, "moves": ["closecombat", "flamecharge", "flareblitz", "knockoff", "psychicfangs", "sunsteelstrike"], "doublesLevel": 76, "doublesMoves": ["closecombat", "flareblitz", "morningsun", "protect", "psychicfangs", "stoneedge", "sunsteelstrike"] @@ -2260,20 +2256,20 @@ "doublesMoves": ["calmmind", "moonblast", "moongeistbeam", "protect", "psyshock", "roost"] }, "nihilego": { - "level": 79, + "level": 78, "moves": ["grassknot", "powergem", "sludgewave", "stealthrock", "thunderbolt", "toxicspikes"], "doublesLevel": 81, "doublesMoves": ["grassknot", "meteorbeam", "protect", "sludgebomb", "thunderbolt"] }, "buzzwole": { - "level": 77, - "moves": ["closecombat", "darkestlariat", "dualwingbeat", "ironhead", "leechlife", "stoneedge"], + "level": 75, + "moves": ["closecombat", "darkestlariat", "dualwingbeat", "earthquake", "leechlife", "stoneedge"], "doublesLevel": 80, "doublesMoves": ["closecombat", "darkestlariat", "dualwingbeat", "ironhead", "leechlife", "stoneedge"], "noDynamaxMoves": ["bulkup", "closecombat", "darkestlariat", "leechlife", "poisonjab", "roost", "stoneedge"] }, "pheromosa": { - "level": 75, + "level": 73, "moves": ["closecombat", "icebeam", "poisonjab", "throatchop", "uturn"], "doublesLevel": 78, "doublesMoves": ["closecombat", "icebeam", "poisonjab", "protect", "throatchop", "uturn"] @@ -2285,20 +2281,20 @@ "doublesMoves": ["dazzlinggleam", "energyball", "thunderbolt", "voltswitch"] }, "celesteela": { - "level": 77, + "level": 76, "moves": ["airslash", "earthquake", "fireblast", "flashcannon", "leechseed", "protect"], "doublesLevel": 78, "doublesMoves": ["airslash", "fireblast", "flashcannon", "leechseed", "protect", "wideguard"], "noDynamaxMoves": ["airslash", "earthquake", "fireblast", "heavyslam", "leechseed", "protect"] }, "kartana": { - "level": 74, + "level": 72, "moves": ["knockoff", "leafblade", "sacredsword", "smartstrike", "swordsdance"], "doublesLevel": 78, "doublesMoves": ["knockoff", "leafblade", "sacredsword", "smartstrike", "swordsdance"] }, "guzzlord": { - "level": 84, + "level": 83, "moves": ["darkpulse", "dracometeor", "fireblast", "knockoff", "sludgebomb"], "doublesLevel": 88, "doublesMoves": ["dracometeor", "fireblast", "knockoff", "protect", "sludgebomb"] @@ -2310,50 +2306,44 @@ "doublesMoves": ["calmmind", "earthpower", "heatwave", "moonlight", "photongeyser", "protect"] }, "necrozmaduskmane": { - "level": 67, + "level": 64, "moves": ["dragondance", "earthquake", "morningsun", "photongeyser", "sunsteelstrike"], "doublesLevel": 72, "doublesMoves": ["dragondance", "photongeyser", "protect", "sunsteelstrike"] }, "necrozmadawnwings": { - "level": 76, + "level": 75, "moves": ["calmmind", "heatwave", "moongeistbeam", "photongeyser", "stealthrock"], "doublesLevel": 72, "doublesMoves": ["heatwave", "moongeistbeam", "photongeyser", "protect", "thunderwave"] }, "magearna": { - "level": 76, - "moves": ["agility", "calmmind", "flashcannon", "fleurcannon"], - "doublesLevel": 72, - "doublesMoves": ["agility", "aurasphere", "dazzlinggleam", "flashcannon", "fleurcannon", "protect", "trick"] - }, - "magearnaoriginal": { - "level": 76, + "level": 73, "moves": ["agility", "calmmind", "flashcannon", "fleurcannon"], "doublesLevel": 72, "doublesMoves": ["agility", "aurasphere", "dazzlinggleam", "flashcannon", "fleurcannon", "protect", "trick"] }, "marshadow": { - "level": 70, + "level": 69, "moves": ["bulkup", "closecombat", "icepunch", "rocktomb", "shadowsneak", "spectralthief"], "doublesLevel": 72, "doublesMoves": ["closecombat", "protect", "rocktomb", "shadowsneak", "spectralthief"] }, "naganadel": { - "level": 74, + "level": 72, "moves": ["airslash", "dracometeor", "fireblast", "nastyplot", "sludgewave"], "doublesLevel": 76, "doublesMoves": ["dracometeor", "flamethrower", "nastyplot", "sludgebomb", "uturn"], "noDynamaxMoves": ["dracometeor", "fireblast", "nastyplot", "sludgewave", "uturn"] }, "stakataka": { - "level": 80, + "level": 79, "moves": ["bodypress", "earthquake", "gyroball", "stealthrock", "stoneedge", "trickroom"], "doublesLevel": 82, "doublesMoves": ["bodypress", "gyroball", "highhorsepower", "rockslide", "trickroom"] }, "blacephalon": { - "level": 80, + "level": 79, "moves": ["calmmind", "fireblast", "psyshock", "shadowball", "trick"], "doublesLevel": 80, "doublesMoves": ["fireblast", "protect", "psyshock", "shadowball", "trick"] @@ -2365,29 +2355,29 @@ "doublesMoves": ["closecombat", "fakeout", "grassknot", "knockoff", "plasmafists", "snarl"] }, "melmetal": { - "level": 74, + "level": 73, "moves": ["doubleironbash", "earthquake", "superpower", "thunderpunch", "thunderwave"], "doublesLevel": 76, "doublesMoves": ["acidarmor", "bodypress", "doubleironbash", "protect", "thunderpunch", "thunderwave"] }, "rillaboom": { - "level": 78, + "level": 75, "moves": ["grassyglide", "highhorsepower", "knockoff", "uturn", "woodhammer"], "doublesLevel": 80, "doublesMoves": ["fakeout", "grassyglide", "highhorsepower", "protect", "uturn", "woodhammer"] }, "rillaboomgmax": { - "level": 78, + "level": 75, "moves": ["acrobatics", "grassyglide", "highhorsepower", "knockoff", "swordsdance"] }, "cinderace": { - "level": 74, + "level": 73, "moves": ["courtchange", "gunkshot", "highjumpkick", "pyroball", "uturn", "zenheadbutt"], "doublesLevel": 80, "doublesMoves": ["courtchange", "gunkshot", "highjumpkick", "protect", "pyroball", "suckerpunch", "uturn"] }, "cinderacegmax": { - "level": 74, + "level": 73, "moves": ["bulkup", "highjumpkick", "pyroball", "suckerpunch"] }, "inteleon": { @@ -2415,7 +2405,7 @@ "doublesMoves": ["bodypress", "bravebird", "bulkup", "roost", "tailwind"] }, "orbeetle": { - "level": 86, + "level": 87, "moves": ["bodypress", "bugbuzz", "calmmind", "psychic", "recover", "stickyweb", "uturn"] }, "orbeetlegmax": { @@ -2423,7 +2413,7 @@ "doublesMoves": ["helpinghand", "hypnosis", "lightscreen", "psychic", "reflect", "stickyweb", "strugglebug"] }, "thievul": { - "level": 86, + "level": 89, "moves": ["darkpulse", "foulplay", "grassknot", "nastyplot", "partingshot", "psychic"], "doublesLevel": 89, "doublesMoves": ["faketears", "foulplay", "partingshot", "snarl", "taunt"] @@ -2441,20 +2431,20 @@ "doublesMoves": ["doubleedge", "swordsdance", "thunderwave", "wildcharge", "zenheadbutt"] }, "drednaw": { - "level": 84, + "level": 82, "moves": ["liquidation", "stealthrock", "stoneedge", "superpower", "swordsdance"], "doublesLevel": 84, "doublesMoves": ["highhorsepower", "liquidation", "protect", "rockslide", "superpower", "swordsdance"], "noDynamaxMoves": ["liquidation", "raindance", "stealthrock", "stoneedge", "superpower"] }, "boltund": { - "level": 84, + "level": 85, "moves": ["bulkup", "crunch", "firefang", "playrough", "psychicfangs", "thunderfang", "voltswitch"], "doublesLevel": 86, "doublesMoves": ["crunch", "firefang", "nuzzle", "playrough", "protect", "psychicfangs", "snarl", "thunderfang"] }, "coalossalgmax": { - "level": 87, + "level": 88, "moves": ["overheat", "rapidspin", "spikes", "stealthrock", "stoneedge", "willowisp"], "doublesLevel": 85, "doublesMoves": ["fireblast", "incinerate", "protect", "stealthrock", "stoneedge", "willowisp"] @@ -2466,17 +2456,17 @@ "doublesMoves": ["acrobatics", "dragondance", "dragonrush", "gravapple", "protect"] }, "appletun": { - "level": 90, + "level": 91, "moves": ["appleacid", "dragonpulse", "leechseed", "recover"], "doublesLevel": 90, "doublesMoves": ["appleacid", "dragonpulse", "leechseed", "protect", "recover"] }, "appletungmax": { - "level": 90, + "level": 91, "moves": ["appleacid", "dracometeor", "leechseed", "recover"] }, "sandaconda": { - "level": 84, + "level": 83, "moves": ["coil", "earthquake", "glare", "rest", "stealthrock", "stoneedge"] }, "sandacondagmax": { @@ -2484,7 +2474,7 @@ "doublesMoves": ["coil", "glare", "highhorsepower", "protect", "stoneedge"] }, "cramorant": { - "level": 84, + "level": 85, "moves": ["bravebird", "defog", "roost", "superpower", "surf"], "doublesLevel": 88, "doublesMoves": ["bravebird", "icebeam", "protect", "roost", "surf", "tailwind"] @@ -2512,7 +2502,7 @@ "doublesMoves": ["boomburst", "overdrive", "sludgebomb", "snarl", "voltswitch"] }, "centiskorch": { - "level": 84, + "level": 86, "moves": ["coil", "firelash", "knockoff", "leechlife", "powerwhip"], "doublesLevel": 89, "doublesMoves": ["coil", "firelash", "knockoff", "leechlife", "powerwhip", "protect"] @@ -2522,29 +2512,29 @@ "doublesMoves": ["coil", "firelash", "knockoff", "leechlife", "powerwhip", "protect"] }, "grapploct": { - "level": 86, + "level": 87, "moves": ["brutalswing", "bulkup", "drainpunch", "icepunch", "suckerpunch"], "doublesLevel": 88, "doublesMoves": ["closecombat", "coaching", "drainpunch", "icepunch", "octolock", "protect"] }, "polteageist": { - "level": 78, + "level": 77, "moves": ["gigadrain", "shadowball", "shellsmash", "storedpower", "strengthsap"], "doublesLevel": 84, "doublesMoves": ["gigadrain", "protect", "shadowball", "shellsmash", "storedpower"] }, "hatterenegmax": { - "level": 86, + "level": 85, "moves": ["calmmind", "dazzlinggleam", "mysticalfire", "psychic", "psyshock", "trickroom"], "doublesLevel": 80, "doublesMoves": ["dazzlinggleam", "mysticalfire", "protect", "psychic", "trickroom"] }, "grimmsnarl": { - "level": 82, + "level": 84, "moves": ["lightscreen", "reflect", "spiritbreak", "taunt", "thunderwave"] }, "grimmsnarlgmax": { - "level": 82, + "level": 84, "moves": ["bulkup", "darkestlariat", "playrough", "rest", "suckerpunch", "trick"], "doublesLevel": 84, "doublesMoves": ["darkestlariat", "fakeout", "lightscreen", "reflect", "spiritbreak", "taunt", "thunderwave"] @@ -2556,26 +2546,26 @@ "doublesMoves": ["closecombat", "facade", "knockoff", "obstruct", "partingshot", "taunt"] }, "perrserker": { - "level": 86, + "level": 87, "moves": ["closecombat", "crunch", "fakeout", "ironhead", "uturn"], "doublesLevel": 88, "doublesMoves": ["closecombat", "fakeout", "ironhead", "lashout", "protect", "uturn"] }, "cursola": { - "level": 86, + "level": 88, "moves": ["earthpower", "hydropump", "icebeam", "shadowball", "stealthrock", "strengthsap"], "doublesLevel": 88, "doublesMoves": ["earthpower", "hydropump", "icebeam", "protect", "shadowball", "strengthsap"] }, "sirfetchd": { - "level": 82, + "level": 83, "moves": ["bravebird", "closecombat", "firstimpression", "knockoff", "swordsdance"], "doublesLevel": 85, "doublesMoves": ["bravebird", "closecombat", "firstimpression", "knockoff", "poisonjab", "protect", "swordsdance"], "noDynamaxMoves": ["bravebird", "closecombat", "firstimpression", "knockoff", "poisonjab", "swordsdance"] }, "mrrime": { - "level": 86, + "level": 87, "moves": ["focusblast", "freezedry", "psychic", "rapidspin", "slackoff", "trick"], "doublesLevel": 88, "doublesMoves": ["fakeout", "focusblast", "freezedry", "icywind", "protect", "psychic", "rapidspin"] @@ -2587,25 +2577,25 @@ "doublesMoves": ["earthquake", "poltergeist", "protect", "toxicspikes", "trickroom", "willowisp"] }, "alcremiegmax": { - "level": 86, + "level": 85, "moves": ["calmmind", "dazzlinggleam", "mysticalfire", "psychic", "recover"], "doublesLevel": 85, "doublesMoves": ["dazzlinggleam", "decorate", "mysticalfire", "protect", "recover"] }, "falinks": { "level": 84, - "moves": ["closecombat", "noretreat", "poisonjab", "rockslide", "throatchop"], + "moves": ["closecombat", "ironhead", "noretreat", "rockslide", "throatchop"], "doublesLevel": 86, "doublesMoves": ["closecombat", "noretreat", "poisonjab", "rockslide", "throatchop"] }, "pincurchin": { - "level": 88, + "level": 90, "moves": ["risingvoltage", "scald", "spikes", "suckerpunch", "toxicspikes"], "doublesLevel": 90, "doublesMoves": ["acupressure", "protect", "risingvoltage", "scald", "suckerpunch"] }, "frosmoth": { - "level": 82, + "level": 83, "moves": ["bugbuzz", "gigadrain", "hurricane", "icebeam", "quiverdance"], "doublesLevel": 88, "doublesMoves": ["bugbuzz", "gigadrain", "hurricane", "icebeam", "protect", "quiverdance", "wideguard"] @@ -2623,7 +2613,7 @@ "doublesMoves": ["bellydrum", "iciclecrash", "liquidation", "protect"] }, "indeedee": { - "level": 83, + "level": 84, "moves": ["calmmind", "expandingforce", "hypervoice", "mysticalfire", "trick"], "doublesLevel": 80, "doublesMoves": ["encore", "expandingforce", "hypervoice", "mysticalfire", "protect", "trick"] @@ -2641,72 +2631,72 @@ "doublesMoves": ["aurawheel", "fakeout", "partingshot", "protect", "rapidspin", "superfang"] }, "copperajah": { - "level": 84, + "level": 83, "moves": ["earthquake", "ironhead", "playrough", "rockslide", "stealthrock"], "doublesLevel": 88, "doublesMoves": ["heatcrash", "highhorsepower", "ironhead", "playrough", "powerwhip", "protect", "stoneedge"] }, "copperajahgmax": { - "level": 84, + "level": 83, "moves": ["earthquake", "heatcrash", "heavyslam", "powerwhip", "stoneedge"] }, "dracozolt": { - "level": 78, + "level": 77, "moves": ["aerialace", "boltbeak", "earthquake", "lowkick", "outrage"], "doublesLevel": 82, "doublesMoves": ["aerialace", "boltbeak", "dragonclaw", "highhorsepower", "rockslide"], "noDynamaxMoves": ["boltbeak", "dragonclaw", "earthquake", "outrage"] }, "arctozolt": { - "level": 86, + "level": 87, "moves": ["boltbeak", "freezedry", "iciclecrash", "stompingtantrum", "thunderwave"], "doublesLevel": 88, "doublesMoves": ["blizzard", "boltbeak", "iciclecrash", "lowkick", "protect"] }, "dracovish": { - "level": 80, + "level": 78, "moves": ["crunch", "fishiousrend", "icefang", "lowkick", "psychicfangs"], "doublesLevel": 78, "doublesMoves": ["crunch", "dragonrush", "fishiousrend", "icefang", "psychicfangs"] }, "arctovish": { - "level": 86, + "level": 87, "moves": ["bodyslam", "fishiousrend", "freezedry", "iciclecrash", "psychicfangs"], "doublesLevel": 88, "doublesMoves": ["blizzard", "fishiousrend", "iciclecrash", "protect", "superfang"] }, "duraludon": { - "level": 84, + "level": 83, "moves": ["bodypress", "dracometeor", "flashcannon", "stealthrock", "thunderbolt"], "doublesLevel": 87, "doublesMoves": ["bodypress", "dracometeor", "dragonpulse", "flashcannon", "protect", "snarl", "thunderbolt"] }, "dragapult": { - "level": 78, + "level": 76, "moves": ["dracometeor", "fireblast", "shadowball", "thunderbolt", "uturn"], "doublesLevel": 80, "doublesMoves": ["dragondarts", "fireblast", "protect", "shadowball", "thunderbolt", "thunderwave"] }, "zacian": { - "level": 68, + "level": 65, "moves": ["closecombat", "crunch", "playrough", "psychicfangs", "swordsdance"], "doublesLevel": 72, "doublesMoves": ["closecombat", "crunch", "playrough", "protect", "psychicfangs", "swordsdance"] }, "zaciancrowned": { - "level": 62, - "moves": ["behemothblade", "closecombat", "crunch", "playrough", "psychicfangs", "swordsdance"], + "level": 61, + "moves": ["behemothblade", "closecombat", "playrough", "psychicfangs", "swordsdance"], "doublesLevel": 65, "doublesMoves": ["behemothblade", "closecombat", "playrough", "protect", "psychicfangs", "swordsdance"] }, "zamazenta": { - "level": 73, + "level": 71, "moves": ["closecombat", "crunch", "psychicfangs", "wildcharge"], "doublesLevel": 74, "doublesMoves": ["closecombat", "crunch", "playrough", "protect", "psychicfangs"] }, "zamazentacrowned": { - "level": 71, + "level": 69, "moves": ["behemothbash", "closecombat", "crunch", "howl", "psychicfangs"], "doublesLevel": 72, "doublesMoves": ["behemothbash", "closecombat", "crunch", "howl", "protect"] @@ -2718,33 +2708,27 @@ "doublesMoves": ["cosmicpower", "dynamaxcannon", "flamethrower", "recover"] }, "urshifu": { - "level": 76, + "level": 74, "moves": ["closecombat", "ironhead", "suckerpunch", "uturn", "wickedblow"], "doublesLevel": 76, "doublesMoves": ["closecombat", "ironhead", "protect", "suckerpunch", "wickedblow"] }, "urshifurapidstrike": { - "level": 78, + "level": 76, "moves": ["bulkup", "drainpunch", "substitute", "surgingstrikes"], "doublesLevel": 80, "doublesMoves": ["aquajet", "closecombat", "icepunch", "protect", "surgingstrikes", "uturn"] }, "urshifugmax": { - "level": 76, + "level": 74, "moves": ["bulkup", "drainpunch", "substitute", "wickedblow"] }, "urshifurapidstrikegmax": { - "level": 78, + "level": 76, "moves": ["bulkup", "closecombat", "icepunch", "surgingstrikes", "uturn"] }, "zarude": { - "level": 78, - "moves": ["bulkup", "closecombat", "darkestlariat", "junglehealing", "powerwhip", "uturn"], - "doublesLevel": 80, - "doublesMoves": ["closecombat", "darkestlariat", "junglehealing", "powerwhip", "protect"] - }, - "zarudedada": { - "level": 78, + "level": 77, "moves": ["bulkup", "closecombat", "darkestlariat", "junglehealing", "powerwhip", "uturn"], "doublesLevel": 80, "doublesMoves": ["closecombat", "darkestlariat", "junglehealing", "powerwhip", "protect"] @@ -2763,7 +2747,7 @@ "doublesMoves": ["crunch", "dragonclaw", "dragonenergy", "firefang"] }, "glastrier": { - "level": 82, + "level": 83, "moves": ["closecombat", "highhorsepower", "iciclecrash", "swordsdance"], "doublesLevel": 82, "doublesMoves": ["closecombat", "highhorsepower", "iciclecrash", "protect"] @@ -2775,19 +2759,19 @@ "doublesMoves": ["darkpulse", "nastyplot", "protect", "shadowball"] }, "calyrex": { - "level": 88, + "level": 89, "moves": ["calmmind", "gigadrain", "leechseed", "psyshock", "substitute"], "doublesLevel": 94, "doublesMoves": ["helpinghand", "leafstorm", "pollenpuff", "protect"] }, "calyrexice": { - "level": 72, + "level": 71, "moves": ["agility", "closecombat", "glaciallance", "highhorsepower", "trickroom"], "doublesLevel": 72, "doublesMoves": ["closecombat", "glaciallance", "highhorsepower", "swordsdance", "trickroom"] }, "calyrexshadow": { - "level": 65, + "level": 64, "moves": ["astralbarrage", "nastyplot", "pollenpuff", "psyshock", "substitute", "trick"], "doublesLevel": 68, "doublesMoves": ["astralbarrage", "nastyplot", "pollenpuff", "protect", "psyshock"] diff --git a/data/mods/gen8/factory-sets.json b/data/random-battles/gen8/factory-sets.json similarity index 99% rename from data/mods/gen8/factory-sets.json rename to data/random-battles/gen8/factory-sets.json index 4b7be6a7bc86..301ddaf593d5 100644 --- a/data/mods/gen8/factory-sets.json +++ b/data/random-battles/gen8/factory-sets.json @@ -2754,7 +2754,7 @@ "ability": ["Sturdy"], "evs": {"hp": 252, "atk": 4, "spd": 252}, "nature": "Careful", - "moves": [["Earthquake"], ["Heavy Slam"], ["Stealth Rock", "Stealth Rock", "Protect"], ["Toxic"]] + "moves": [["Earthquake"], ["Heavy Slam"], ["Stealth Rock", "Protect"], ["Toxic"]] }] }, "suicune": { diff --git a/data/mods/gen8/random-teams.ts b/data/random-battles/gen8/teams.ts similarity index 85% rename from data/mods/gen8/random-teams.ts rename to data/random-battles/gen8/teams.ts index 21581bf54cb4..210968ed3df2 100644 --- a/data/mods/gen8/random-teams.ts +++ b/data/random-battles/gen8/teams.ts @@ -47,50 +47,46 @@ export class MoveCounter extends Utils.Multiset { this.damagingMoves = new Set(); this.setupType = ''; } - - get(key: string): number { - return super.get(key) || 0; - } } type MoveEnforcementChecker = ( - movePool: string[], moves: Set, abilities: Set, types: Set, + movePool: string[], moves: Set, abilities: string[], types: Set, counter: MoveCounter, species: Species, teamDetails: RandomTeamsTypes.TeamDetails ) => boolean; // Moves that restore HP: -const RecoveryMove = [ +const RECOVERY_MOVES = [ 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'roost', 'shoreup', 'slackoff', 'softboiled', 'strengthsap', 'synthesis', ]; // Moves that drop stats: -const ContraryMoves = [ +const CONTRARY_MOVES = [ 'closecombat', 'leafstorm', 'overheat', 'superpower', 'vcreate', ]; // Moves that boost Attack: -const PhysicalSetup = [ +const PHYSICAL_SETUP = [ 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'poweruppunch', 'screech', 'swordsdance', ]; // Moves which boost Special Attack: -const SpecialSetup = [ +const SPECIAL_SETUP = [ 'calmmind', 'chargebeam', 'geomancy', 'nastyplot', 'quiverdance', 'tailglow', ]; // Moves that boost Attack AND Special Attack: -const MixedSetup = [ +const MIXED_SETUP = [ 'clangoroussoul', 'growth', 'happyhour', 'holdhands', 'noretreat', 'shellsmash', 'workup', ]; // Some moves that only boost Speed: -const SpeedSetup = [ +const SPEED_SETUP = [ 'agility', 'autotomize', 'flamecharge', 'rockpolish', ]; // Moves that shouldn't be the only STAB moves: -const NoStab = [ +const NO_STAB = [ 'accelerock', 'aquajet', 'beakblast', 'bounce', 'breakingswipe', 'chatter', 'clearsmog', 'dragontail', 'eruption', 'explosion', 'fakeout', 'firstimpression', 'flamecharge', 'flipturn', 'iceshard', 'icywind', 'incinerate', 'machpunch', 'meteorbeam', 'pluck', 'pursuit', 'quickattack', 'reversal', 'selfdestruct', 'skydrop', 'snarl', 'suckerpunch', 'uturn', 'watershuriken', 'vacuumwave', 'voltswitch', 'waterspout', ]; // Hazard-setting moves -const Hazards = [ +const HAZARDS = [ 'spikes', 'stealthrock', 'stickyweb', 'toxicspikes', ]; @@ -99,18 +95,19 @@ function sereneGraceBenefits(move: Move) { } export class RandomGen8Teams { - dex: ModdedDex; + readonly dex: ModdedDex; gen: number; factoryTier: string; format: Format; prng: PRNG; noStab: string[]; + priorityPokemon: string[]; readonly maxTeamSize: number; readonly adjustLevel: number | null; readonly maxMoveCount: number; readonly forceMonotype: string | undefined; - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); + randomData: {[species: string]: OldRandomBattleSpecies} = require('./data.json'); /** * Checkers for move enforcement based on a Pokémon's types or other factors @@ -119,11 +116,17 @@ export class RandomGen8Teams { */ moveEnforcementCheckers: {[k: string]: MoveEnforcementChecker}; + /** Used by .getPools() */ + private poolsCacheKey: [string | undefined, number | undefined, RuleTable | undefined, boolean] | undefined; + private cachedPool: number[] | undefined; + private cachedSpeciesPool: Species[] | undefined; + constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { format = Dex.formats.get(format); this.dex = Dex.forFormat(format); this.gen = this.dex.gen; - this.noStab = NoStab; + this.noStab = NO_STAB; + this.priorityPokemon = []; const ruleTable = Dex.formats.getRuleTable(format); this.maxTeamSize = ruleTable.maxTeamSize; @@ -207,10 +210,11 @@ export class RandomGen8Teams { Ice: (movePool, moves, abilities, types, counter) => { if (!counter.get('Ice')) return true; if (movePool.includes('iciclecrash')) return true; - return abilities.has('Snow Warning') && movePool.includes('blizzard'); + return abilities.includes('Snow Warning') && movePool.includes('blizzard'); }, Normal: (movePool, moves, abilities, types, counter) => ( - (abilities.has('Guts') && movePool.includes('facade')) || (abilities.has('Pixilate') && !counter.get('Normal')) + (abilities.includes('Guts') && movePool.includes('facade')) || + (abilities.includes('Pixilate') && !counter.get('Normal')) ), Poison: (movePool, moves, abilities, types, counter) => { if (counter.get('Poison')) return false; @@ -219,7 +223,7 @@ export class RandomGen8Teams { Psychic: (movePool, moves, abilities, types, counter) => { if (counter.get('Psychic')) return false; if (types.has('Ghost') || types.has('Steel')) return false; - return abilities.has('Psychic Surge') || !!counter.setupType || movePool.includes('psychicfangs'); + return abilities.includes('Psychic Surge') || !!counter.setupType || movePool.includes('psychicfangs'); }, Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.baseStats.atk >= 80, Steel: (movePool, moves, abilities, types, counter, species) => { @@ -230,9 +234,12 @@ export class RandomGen8Teams { Water: (movePool, moves, abilities, types, counter, species) => { if (!counter.get('Water') && !moves.has('hypervoice')) return true; if (['hypervoice', 'liquidation', 'surgingstrikes'].some(m => movePool.includes(m))) return true; - return abilities.has('Huge Power') && movePool.includes('aquajet'); + return abilities.includes('Huge Power') && movePool.includes('aquajet'); }, }; + this.poolsCacheKey = undefined; + this.cachedPool = undefined; + this.cachedSpeciesPool = undefined; } setSeed(prng?: PRNG | PRNGSeed) { @@ -429,28 +436,11 @@ export class RandomGen8Teams { // Four random unique moves from the movepool let pool = ['struggle']; if (forme === 'Smeargle') { - pool = this.dex.moves - .all() + pool = this.dex.moves.all() .filter(move => !(move.isNonstandard || move.isZ || move.isMax || move.realMove)) .map(m => m.id); } else { - const formes = ['gastrodoneast', 'pumpkaboosuper', 'zygarde10']; - let learnset = this.dex.species.getLearnset(species.id); - if (formes.includes(species.id) || !learnset) { - learnset = this.dex.species.getLearnset(this.dex.species.get(species.baseSpecies).id); - } - if (learnset) { - pool = Object.keys(learnset).filter( - moveid => learnset![moveid].find(learned => learned.startsWith(String(this.gen))) - ); - } - if (species.changesFrom) { - learnset = this.dex.species.getLearnset(toID(species.changesFrom)); - const basePool = Object.keys(learnset!).filter( - moveid => learnset![moveid].find(learned => learned.startsWith(String(this.gen))) - ); - pool = [...new Set(pool.concat(basePool))]; - } + pool = [...this.dex.species.getMovePool(species.id)]; } const moves = this.multipleSamplesNoReplace(pool, this.maxMoveCount); @@ -536,7 +526,7 @@ export class RandomGen8Teams { }; if (this.gen === 9) { // Tera type - set.teraType = this.sample(this.dex.types.all()).name; + set.teraType = this.sample(this.dex.types.names()); } team.push(set); } @@ -544,37 +534,34 @@ export class RandomGen8Teams { return team; } - randomNPokemon(n: number, requiredType?: string, minSourceGen?: number, ruleTable?: RuleTable, requireMoves = false) { - // Picks `n` random pokemon--no repeats, even among formes - // Also need to either normalize for formes or select formes at random - // Unreleased are okay but no CAP - const last = [0, 151, 251, 386, 493, 649, 721, 807, 898, 1010][this.gen]; - - if (n <= 0 || n > last) throw new Error(`n must be a number between 1 and ${last} (got ${n})`); - if (requiredType && !this.dex.types.get(requiredType).exists) { - throw new Error(`"${requiredType}" is not a valid type.`); - } - + private getPools(requiredType?: string, minSourceGen?: number, ruleTable?: RuleTable, requireMoves = false) { + // Memoize pool and speciesPool because, at least during tests, they are constructed with the same parameters + // hundreds of times and are expensive to compute. const isNotCustom = !ruleTable; - - const pool: number[] = []; + let pool: number[] = []; let speciesPool: Species[] = []; - if (isNotCustom) { + const ck = this.poolsCacheKey; + if (ck && this.cachedPool && this.cachedSpeciesPool && + ck[0] === requiredType && ck[1] === minSourceGen && ck[2] === ruleTable && ck[3] === requireMoves) { + speciesPool = this.cachedSpeciesPool.slice(); + pool = this.cachedPool.slice(); + } else if (isNotCustom) { speciesPool = [...this.dex.species.all()]; for (const species of speciesPool) { if (species.isNonstandard && species.isNonstandard !== 'Unobtainable') continue; if (requireMoves) { - const hasMovesInCurrentGen = Object.values(this.dex.species.getLearnset(species.id) || {}) - .some(sources => sources.some(source => source.startsWith('9'))); + const hasMovesInCurrentGen = this.dex.species.getMovePool(species.id).size; if (!hasMovesInCurrentGen) continue; } if (requiredType && !species.types.includes(requiredType)) continue; if (minSourceGen && species.gen < minSourceGen) continue; const num = species.num; if (num <= 0 || pool.includes(num)) continue; - if (num > last) break; pool.push(num); } + this.poolsCacheKey = [requiredType, minSourceGen, ruleTable, requireMoves]; + this.cachedPool = pool.slice(); + this.cachedSpeciesPool = speciesPool.slice(); } else { const EXISTENCE_TAG = ['past', 'future', 'lgpe', 'unobtainable', 'cap', 'custom', 'nonexistent']; const nonexistentBanReason = ruleTable.check('nonexistent'); @@ -595,7 +582,7 @@ export class RandomGen8Teams { let tagBlacklisted = false; for (const ruleid of ruleTable.tagRules) { if (ruleid.startsWith('*')) continue; - const tagid = ruleid.slice(12); + const tagid = ruleid.slice(12) as ID; const tag = Tags[tagid]; if ((tag.speciesFilter || tag.genericFilter)!(species)) { const existenceTag = EXISTENCE_TAG.includes(tagid); @@ -619,7 +606,23 @@ export class RandomGen8Teams { if (pool.includes(num)) continue; pool.push(num); } + this.poolsCacheKey = [requiredType, minSourceGen, ruleTable, requireMoves]; + this.cachedPool = pool.slice(); + this.cachedSpeciesPool = speciesPool.slice(); } + return {pool, speciesPool}; + } + + randomNPokemon(n: number, requiredType?: string, minSourceGen?: number, ruleTable?: RuleTable, requireMoves = false) { + // Picks `n` random pokemon--no repeats, even among formes + // Also need to either normalize for formes or select formes at random + // Unreleased are okay but no CAP + if (requiredType && !this.dex.types.get(requiredType).exists) { + throw new Error(`"${requiredType}" is not a valid type.`); + } + + const {pool, speciesPool} = this.getPools(requiredType, minSourceGen, ruleTable, requireMoves); + const isNotCustom = !ruleTable; const hasDexNumber: {[k: string]: number} = {}; for (let i = 0; i < n; i++) { @@ -632,6 +635,7 @@ export class RandomGen8Teams { if (!(species.num in hasDexNumber)) continue; if (isNotCustom && (species.gen > this.gen || (species.isNonstandard && species.isNonstandard !== 'Unobtainable'))) continue; + if (requiredType && !species.types.includes(requiredType)) continue; if (!formes[hasDexNumber[species.num]]) formes[hasDexNumber[species.num]] = []; formes[hasDexNumber[species.num]].push(species.name); } @@ -889,7 +893,7 @@ export class RandomGen8Teams { }; if (this.gen === 9) { // Random Tera type - set.teraType = this.sample(this.dex.types.all()).name; + set.teraType = this.sample(this.dex.types.names()); } team.push(set); } @@ -900,7 +904,7 @@ export class RandomGen8Teams { queryMoves( moves: Set | null, types: string[], - abilities: Set = new Set(), + abilities: string[], movePool: string[] = [] ): MoveCounter { // This is primarily a helper function for random setbuilder functions. @@ -948,9 +952,9 @@ export class RandomGen8Teams { } } else if ( // Less obvious forms of STAB - (moveType === 'Normal' && (['Aerilate', 'Galvanize', 'Pixilate', 'Refrigerate'].some(abil => abilities.has(abil)))) || - (move.priority === 0 && (abilities.has('Libero') || abilities.has('Protean')) && !this.noStab.includes(moveid)) || - (moveType === 'Steel' && abilities.has('Steelworker')) + (moveType === 'Normal' && (['Aerilate', 'Galvanize', 'Pixilate', 'Refrigerate'].some(a => abilities.includes(a)))) || + (move.priority === 0 && (['Libero', 'Protean'].some(a => abilities.includes(a))) && !this.noStab.includes(moveid)) || + (moveType === 'Steel' && abilities.includes('Steelworker')) ) { counter.add('stab'); } @@ -958,7 +962,7 @@ export class RandomGen8Teams { if (move.flags['bite']) counter.add('strongjaw'); if (move.flags['punch']) counter.add('ironfist'); if (move.flags['sound']) counter.add('sound'); - if (move.priority !== 0 || (moveid === 'grassyglide' && abilities.has('Grassy Surge'))) { + if (move.priority !== 0 || (moveid === 'grassyglide' && abilities.includes('Grassy Surge'))) { counter.add('priority'); } counter.damagingMoves.add(move); @@ -974,19 +978,19 @@ export class RandomGen8Teams { if (move.accuracy && move.accuracy !== true && move.accuracy < 90) counter.add('inaccurate'); // Moves that change stats: - if (RecoveryMove.includes(moveid)) counter.add('recovery'); - if (ContraryMoves.includes(moveid)) counter.add('contrary'); - if (PhysicalSetup.includes(moveid)) { + if (RECOVERY_MOVES.includes(moveid)) counter.add('recovery'); + if (CONTRARY_MOVES.includes(moveid)) counter.add('contrary'); + if (PHYSICAL_SETUP.includes(moveid)) { counter.add('physicalsetup'); counter.setupType = 'Physical'; - } else if (SpecialSetup.includes(moveid)) { + } else if (SPECIAL_SETUP.includes(moveid)) { counter.add('specialsetup'); counter.setupType = 'Special'; } - if (MixedSetup.includes(moveid)) counter.add('mixedsetup'); - if (SpeedSetup.includes(moveid)) counter.add('speedsetup'); - if (Hazards.includes(moveid)) counter.add('hazards'); + if (MIXED_SETUP.includes(moveid)) counter.add('mixedsetup'); + if (SPEED_SETUP.includes(moveid)) counter.add('speedsetup'); + if (HAZARDS.includes(moveid)) counter.add('hazards'); } // Keep track of the available moves @@ -1042,7 +1046,7 @@ export class RandomGen8Teams { move: Move, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, @@ -1079,7 +1083,7 @@ export class RandomGen8Teams { return {cull: movePool.includes('protect') || movePool.includes('wish')}; case 'fireblast': // Special case for Togekiss, which always wants Aura Sphere - return {cull: abilities.has('Serene Grace') && (!moves.has('trick') || counter.get('Status') > 1)}; + return {cull: abilities.includes('Serene Grace') && (!moves.has('trick') || counter.get('Status') > 1)}; case 'firepunch': // Special case for Darmanitan-Zen-Galar, which doesn't always want Fire Punch return {cull: movePool.includes('bellydrum') || (moves.has('earthquake') && movePool.includes('substitute'))}; @@ -1097,7 +1101,7 @@ export class RandomGen8Teams { return {cull: species.id !== 'registeel' && (movePool.includes('sleeptalk') || bulkySetup)}; case 'sleeptalk': if (!moves.has('rest')) return {cull: true}; - if (movePool.length > 1 && !abilities.has('Contrary')) { + if (movePool.length > 1 && !abilities.includes('Contrary')) { const rest = movePool.indexOf('rest'); if (rest >= 0) this.fastPop(movePool, rest); } @@ -1186,7 +1190,7 @@ export class RandomGen8Teams { if ( !isDoubles && counter.get('Status') < 2 && - ['Hunger Switch', 'Speed Boost', 'Moody'].every(m => !abilities.has(m)) + ['Hunger Switch', 'Speed Boost'].every(m => !abilities.includes(m)) ) return {cull: true}; if (movePool.includes('leechseed') || (movePool.includes('toxic') && !moves.has('wish'))) return {cull: true}; if (isDoubles && ( @@ -1339,8 +1343,8 @@ export class RandomGen8Teams { return { cull: moves.has('hydropump') || (counter.get('Physical') >= 4 && movePool.includes('uturn')) || - (moves.has('substitute') && !abilities.has('Contrary')), - isSetup: abilities.has('Contrary'), + (moves.has('substitute') && !abilities.includes('Contrary')), + isSetup: abilities.includes('Contrary'), }; case 'poisonjab': return {cull: !types.has('Poison') && counter.get('Status') >= 2}; @@ -1361,7 +1365,7 @@ export class RandomGen8Teams { return {cull: (species.id === 'naganadel' && moves.has('nastyplot')) || hasRestTalk || - (abilities.has('Simple') && !!counter.get('recovery')) || + (abilities.includes('Simple') && !!counter.get('recovery')) || counter.setupType === 'Physical', }; case 'bravebird': @@ -1382,7 +1386,7 @@ export class RandomGen8Teams { return {cull: moves.has('rapidspin')}; case 'psyshock': // Special case for Sylveon which only wants Psyshock if it gets a Choice item - const sylveonCase = abilities.has('Pixilate') && counter.get('Special') < 4; + const sylveonCase = abilities.includes('Pixilate') && counter.get('Special') < 4; return {cull: moves.has('psychic') || (!counter.setupType && sylveonCase) || (isDoubles && moves.has('psychic'))}; case 'bugbuzz': return {cull: moves.has('uturn') && !counter.setupType}; @@ -1393,7 +1397,7 @@ export class RandomGen8Teams { movePool.includes('spikes'), }; case 'stoneedge': - const gutsCullCondition = abilities.has('Guts') && (!moves.has('dynamicpunch') || moves.has('spikes')); + const gutsCullCondition = abilities.includes('Guts') && (!moves.has('dynamicpunch') || moves.has('spikes')); const rockSlidePlusStatusPossible = counter.get('Status') && movePool.includes('rockslide'); const otherRockMove = moves.has('rockblast') || moves.has('rockslide'); const lucarioCull = species.id === 'lucario' && !!counter.setupType; @@ -1405,7 +1409,7 @@ export class RandomGen8Teams { return {cull: (isDoubles && moves.has('phantomforce')) || // Special case for Sylveon, which never wants Shadow Ball as its only coverage move - (abilities.has('Pixilate') && (!!counter.setupType || counter.get('Status') > 1)) || + (abilities.includes('Pixilate') && (!!counter.setupType || counter.get('Status') > 1)) || (!types.has('Ghost') && movePool.includes('focusblast')), }; case 'shadowclaw': @@ -1491,16 +1495,18 @@ export class RandomGen8Teams { ability: string, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, isDoubles: boolean, isNoDynamax: boolean ): boolean { if ([ - 'Flare Boost', 'Hydration', 'Ice Body', 'Immunity', 'Innards Out', 'Insomnia', 'Misty Surge', + 'Flare Boost', 'Hydration', 'Ice Body', 'Immunity', 'Innards Out', 'Insomnia', 'Misty Surge', 'Moody', 'Perish Body', 'Quick Feet', 'Rain Dish', 'Snow Cloak', 'Steadfast', 'Steam Engine', ].includes(ability)) return true; @@ -1511,7 +1517,7 @@ export class RandomGen8Teams { case 'Analytic': return (moves.has('rapidspin') || species.nfe || isDoubles); case 'Blaze': - return (isDoubles && abilities.has('Solar Power')) || (!isDoubles && !isNoDynamax && species.id === 'charizard'); + return (isDoubles && abilities.includes('Solar Power')) || (!isDoubles && !isNoDynamax && species.id === 'charizard'); // case 'Bulletproof': case 'Overcoat': // return !!counter.setupType; case 'Chlorophyll': @@ -1523,7 +1529,7 @@ export class RandomGen8Teams { case 'Compound Eyes': case 'No Guard': return !counter.get('inaccurate'); case 'Cursed Body': - return abilities.has('Infiltrator'); + return abilities.includes('Infiltrator'); case 'Defiant': return !counter.get('Physical'); case 'Download': @@ -1531,24 +1537,24 @@ export class RandomGen8Teams { case 'Early Bird': return (types.has('Grass') && isDoubles); case 'Flash Fire': - return (this.dex.getEffectiveness('Fire', species) < -1 || abilities.has('Drought')); + return (this.dex.getEffectiveness('Fire', species) < -1 || abilities.includes('Drought')); case 'Gluttony': return !moves.has('bellydrum'); case 'Guts': return (!moves.has('facade') && !moves.has('sleeptalk') && !species.nfe); case 'Harvest': - return (abilities.has('Frisk') && !isDoubles); + return (abilities.includes('Frisk') && !isDoubles); case 'Hustle': case 'Inner Focus': - return (counter.get('Physical') < 2 || abilities.has('Iron Fist')); + return ((species.id !== 'glalie' && counter.get('Physical') < 2) || abilities.includes('Iron Fist')); case 'Infiltrator': - return (moves.has('rest') && moves.has('sleeptalk')) || (isDoubles && abilities.has('Clear Body')); + return (moves.has('rest') && moves.has('sleeptalk')) || (isDoubles && abilities.includes('Clear Body')); case 'Intimidate': if (species.id === 'salamence' && moves.has('dragondance')) return true; return ['bodyslam', 'bounce', 'tripleaxel'].some(m => moves.has(m)); case 'Iron Fist': return (counter.get('ironfist') < 2 || moves.has('dynamicpunch')); case 'Justified': - return (isDoubles && abilities.has('Inner Focus')); + return (isDoubles && abilities.includes('Inner Focus')); case 'Lightning Rod': return (species.types.includes('Ground') || (!isNoDynamax && counter.setupType === 'Physical')); case 'Limber': @@ -1557,11 +1563,11 @@ export class RandomGen8Teams { return !moves.has('hypervoice'); case 'Magic Guard': // For Sigilyph - return (abilities.has('Tinted Lens') && !counter.get('Status') && !isDoubles); + return (abilities.includes('Tinted Lens') && !counter.get('Status') && !isDoubles); case 'Mold Breaker': return ( - abilities.has('Adaptability') || abilities.has('Scrappy') || (abilities.has('Unburden') && !!counter.setupType) || - (abilities.has('Sheer Force') && !!counter.get('sheerforce')) + abilities.includes('Adaptability') || abilities.includes('Scrappy') || (abilities.includes('Unburden') && !!counter.setupType) || + (abilities.includes('Sheer Force') && !!counter.get('sheerforce')) ); case 'Moxie': return (counter.get('Physical') < 2 || moves.has('stealthrock') || moves.has('defog')); @@ -1579,7 +1585,7 @@ export class RandomGen8Teams { return !counter.get('Normal'); case 'Regenerator': // For Reuniclus - return abilities.has('Magic Guard'); + return abilities.includes('Magic Guard'); case 'Reckless': return !counter.get('recoil') || moves.has('curse'); case 'Rock Head': @@ -1599,11 +1605,11 @@ export class RandomGen8Teams { // For Scrafty return moves.has('dragondance'); case 'Sheer Force': - return (!counter.get('sheerforce') || abilities.has('Guts') || (species.id === 'druddigon' && !isDoubles)); + return (!counter.get('sheerforce') || abilities.includes('Guts') || (species.id === 'druddigon' && !isDoubles)); case 'Shell Armor': return (species.id === 'omastar' && (moves.has('spikes') || moves.has('stealthrock'))); case 'Slush Rush': - return (!teamDetails.hail && !abilities.has('Swift Swim')); + return (!teamDetails.hail && !abilities.includes('Swift Swim')); case 'Sniper': // Inteleon wants Torrent unless it is Gmax return (species.name === 'Inteleon' || (counter.get('Water') > 1 && !moves.has('focusenergy'))); @@ -1614,7 +1620,7 @@ export class RandomGen8Teams { case 'Steely Spirit': return (moves.has('fakeout') && !isDoubles); case 'Sturdy': - return (moves.has('bulkup') || !!counter.get('recoil') || (!isNoDynamax && abilities.has('Solid Rock'))); + return (moves.has('bulkup') || !!counter.get('recoil') || (!isNoDynamax && abilities.includes('Solid Rock'))); case 'Swarm': return (!counter.get('Bug') || !!counter.get('recovery')); case 'Sweet Veil': @@ -1623,15 +1629,15 @@ export class RandomGen8Teams { if (isNoDynamax) { const neverWantsSwim = !moves.has('raindance') && [ 'Intimidate', 'Rock Head', 'Water Absorb', - ].some(m => abilities.has(m)); + ].some(m => abilities.includes(m)); const noSwimIfNoRain = !moves.has('raindance') && [ 'Cloud Nine', 'Lightning Rod', 'Intimidate', 'Rock Head', 'Sturdy', 'Water Absorb', 'Weak Armor', - ].some(m => abilities.has(m)); + ].some(m => abilities.includes(m)); return teamDetails.rain ? neverWantsSwim : noSwimIfNoRain; } return (!moves.has('raindance') && ( - ['Intimidate', 'Rock Head', 'Slush Rush', 'Water Absorb'].some(abil => abilities.has(abil)) || - (abilities.has('Lightning Rod') && !counter.setupType) + ['Intimidate', 'Rock Head', 'Slush Rush', 'Water Absorb'].some(abil => abilities.includes(abil)) || + (abilities.includes('Lightning Rod') && !counter.setupType) )); case 'Synchronize': return counter.get('Status') < 3; @@ -1639,7 +1645,7 @@ export class RandomGen8Teams { return ( !counter.get('technician') || moves.has('tailslap') || - abilities.has('Punk Rock') || + abilities.includes('Punk Rock') || // For Doubles Alolan Persian movePool.includes('snarl') ); @@ -1648,7 +1654,7 @@ export class RandomGen8Teams { // For Sigilyph moves.has('defog') || // For Butterfree - (moves.has('hurricane') && abilities.has('Compound Eyes')) || + (moves.has('hurricane') && abilities.includes('Compound Eyes')) || (counter.get('Status') > 2 && !counter.setupType) ); case 'Torrent': @@ -1661,13 +1667,13 @@ export class RandomGen8Teams { // For Swoobat and Clefable return (!!counter.setupType || moves.has('fireblast')); case 'Unburden': - return (abilities.has('Prankster') || !counter.setupType && !isDoubles); + return (abilities.includes('Prankster') || !counter.setupType && !isDoubles); case 'Volt Absorb': return (this.dex.getEffectiveness('Electric', species) < -1); case 'Water Absorb': return ( moves.has('raindance') || - ['Drizzle', 'Strong Jaw', 'Unaware', 'Volt Absorb'].some(abil => abilities.has(abil)) + ['Drizzle', 'Strong Jaw', 'Unaware', 'Volt Absorb'].some(abil => abilities.includes(abil)) ); case 'Weak Armor': // The Speed less than 50 case is intended for Cursola, but could apply to any slow Pokémon. @@ -1681,6 +1687,105 @@ export class RandomGen8Teams { return false; } + + getAbility( + types: Set, + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, + isDoubles: boolean, + isNoDynamax: boolean + ): string { + const abilityData = Array.from(abilities).map(a => this.dex.abilities.get(a)); + Utils.sortBy(abilityData, abil => -abil.rating); + + if (abilityData.length <= 1) return abilityData[0].name; + + // Hard-code abilities here + + // Lopunny, and other Facade users, don't want Limber, even if other abilities are poorly rated, + // since paralysis would arguably be good for them. + if (species.id === 'lopunny' && moves.has('facade')) return 'Cute Charm'; + if (species.id === 'copperajahgmax') return 'Heavy Metal'; + if (abilities.includes('Guts') && + // for Ursaring in BDSP + !abilities.includes('Quick Feet') && ( + species.id === 'gurdurr' || species.id === 'throh' || + moves.has('facade') || (moves.has('rest') && moves.has('sleeptalk')) + )) return 'Guts'; + if (abilities.includes('Moxie') && (counter.get('Physical') > 3 || moves.has('bounce')) && !isDoubles) return 'Moxie'; + + if (isDoubles) { + if (abilities.includes('Competitive') && species.id !== 'boltund' && species.id !== 'gothitelle') return 'Competitive'; + if (abilities.includes('Friend Guard')) return 'Friend Guard'; + if (abilities.includes('Gluttony') && moves.has('recycle')) return 'Gluttony'; + if (abilities.includes('Guts')) return 'Guts'; + if (abilities.includes('Harvest')) return 'Harvest'; + if (abilities.includes('Healer') && ( + abilities.includes('Natural Cure') || + (abilities.includes('Aroma Veil') && this.randomChance(1, 2)) + )) return 'Healer'; + if (abilities.includes('Intimidate')) return 'Intimidate'; + if (species.id === 'lopunny') return 'Klutz'; + if (abilities.includes('Magic Guard') && !abilities.includes('Unaware')) return 'Magic Guard'; + if (abilities.includes('Ripen')) return 'Ripen'; + if (abilities.includes('Stalwart')) return 'Stalwart'; + if (abilities.includes('Storm Drain')) return 'Storm Drain'; + if (abilities.includes('Telepathy') && ( + abilities.includes('Pressure') || abilities.includes('Analytic') + )) return 'Telepathy'; + } + + let abilityAllowed: Ability[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilityData) { + if (ability.rating >= 1 && !this.shouldCullAbility( + ability.name, types, moves, abilities, counter, movePool, teamDetails, species, '', '', isDoubles, isNoDynamax + )) { + abilityAllowed.push(ability); + } + } + + // If all abilities are rejected, re-allow all abilities + if (!abilityAllowed.length) { + for (const ability of abilityData) { + if (ability.rating > 0) abilityAllowed.push(ability); + } + if (!abilityAllowed.length) abilityAllowed = abilityData; + } + + if (abilityAllowed.length === 1) return abilityAllowed[0].name; + // Sort abilities by rating with an element of randomness + // All three abilities can be chosen + if (abilityAllowed[2] && abilityAllowed[0].rating - 0.5 <= abilityAllowed[2].rating) { + if (abilityAllowed[1].rating <= abilityAllowed[2].rating) { + if (this.randomChance(1, 2)) [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]]; + } else { + if (this.randomChance(1, 3)) [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]]; + } + if (abilityAllowed[0].rating <= abilityAllowed[1].rating) { + if (this.randomChance(2, 3)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; + } else { + if (this.randomChance(1, 2)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; + } + } else { + // Third ability cannot be chosen + if (abilityAllowed[0].rating <= abilityAllowed[1].rating) { + if (this.randomChance(1, 2)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; + } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) { + if (this.randomChance(1, 3)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; + } + } + + // After sorting, choose the first ability + return abilityAllowed[0].name; + } + getHighPriorityItem( ability: string, types: Set, @@ -1781,11 +1886,11 @@ export class RandomGen8Teams { ability: string, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, - ) { + ): string | undefined { const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; if ( @@ -1799,7 +1904,7 @@ export class RandomGen8Teams { moves.has('flipturn') || moves.has('uturn') )) { return ( - !counter.get('priority') && !abilities.has('Speed Boost') && + !counter.get('priority') && !abilities.includes('Speed Boost') && species.baseStats.spe >= 60 && species.baseStats.spe <= 100 && this.randomChance(1, 2) ) ? 'Choice Scarf' : 'Choice Band'; @@ -1903,7 +2008,7 @@ export class RandomGen8Teams { if (counter.damagingMoves.size >= 4 && defensiveStatTotal >= 235) return 'Assault Vest'; if ( ['clearsmog', 'curse', 'haze', 'healbell', 'protect', 'sleeptalk', 'strangesteam'].some(m => moves.has(m)) && - (ability === 'Moody' || !isDoubles) + !isDoubles ) return 'Leftovers'; } @@ -1911,7 +2016,7 @@ export class RandomGen8Teams { ability: string, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, @@ -1940,12 +2045,11 @@ export class RandomGen8Teams { (!teamDetails.defog || ability === 'Intimidate' || moves.has('uturn') || moves.has('voltswitch')) ); const spinnerCase = (moves.has('rapidspin') && (ability === 'Regenerator' || !!counter.get('recovery'))); - // Glalie prefers Leftovers - if (!isDoubles && (rockWeaknessCase || spinnerCase) && species.id !== 'glalie') return 'Heavy-Duty Boots'; + if (!isDoubles && (rockWeaknessCase || spinnerCase)) return 'Heavy-Duty Boots'; if ( !isDoubles && this.dex.getEffectiveness('Ground', species) >= 2 && !types.has('Poison') && - ability !== 'Levitate' && !abilities.has('Iron Barbs') + ability !== 'Levitate' && !abilities.includes('Iron Barbs') ) return 'Air Balloon'; if ( !isDoubles && @@ -2008,8 +2112,8 @@ export class RandomGen8Teams { const customScale: {[k: string]: number} = { // These Pokemon are too strong and need a lower level zaciancrowned: 65, calyrexshadow: 68, xerneas: 70, necrozmaduskmane: 72, zacian: 72, kyogre: 73, eternatus: 73, - zekrom: 74, marshadow: 75, glalie: 78, urshifurapidstrike: 79, haxorus: 80, inteleon: 80, - cresselia: 83, octillery: 84, jolteon: 84, swoobat: 84, dugtrio: 84, slurpuff: 84, polteageist: 84, + zekrom: 74, marshadow: 75, urshifurapidstrike: 79, haxorus: 80, inteleon: 80, + cresselia: 83, jolteon: 84, swoobat: 84, dugtrio: 84, slurpuff: 84, polteageist: 84, wobbuffet: 86, scrafty: 86, // These Pokemon are too weak and need a higher level delibird: 100, vespiquen: 96, pikachu: 92, shedinja: 92, solrock: 90, arctozolt: 88, reuniclus: 87, @@ -2043,6 +2147,28 @@ export class RandomGen8Teams { return 80; } + getForme(species: Species): string { + if (typeof species.battleOnly === 'string') { + // Only change the forme. The species has custom moves, and may have different typing and requirements. + return species.battleOnly; + } + if (species.cosmeticFormes) return this.sample([species.name].concat(species.cosmeticFormes)); + if (species.name.endsWith('-Gmax')) return species.name.slice(0, -5); + + // Consolidate mostly-cosmetic formes, at least for the purposes of Random Battles + if (['Magearna', 'Polteageist', 'Zarude'].includes(species.baseSpecies)) { + return this.sample([species.name].concat(species.otherFormes!)); + } + if (species.baseSpecies === 'Basculin') return 'Basculin' + this.sample(['', '-Blue-Striped']); + if (species.baseSpecies === 'Keldeo' && this.gen <= 7) return 'Keldeo' + this.sample(['', '-Resolute']); + if (species.baseSpecies === 'Pikachu' && this.dex.currentMod === 'gen8') { + return 'Pikachu' + this.sample( + ['', '-Original', '-Hoenn', '-Sinnoh', '-Unova', '-Kalos', '-Alola', '-Partner', '-World'] + ); + } + return species.name; + } + randomSet( species: string | Species, teamDetails: RandomTeamsTypes.TeamDetails = {}, @@ -2051,20 +2177,8 @@ export class RandomGen8Teams { isNoDynamax = false ): RandomTeamsTypes.RandomSet { species = this.dex.species.get(species); - let forme = species.name; - let gmax = false; - - if (typeof species.battleOnly === 'string') { - // Only change the forme. The species has custom moves, and may have different typing and requirements. - forme = species.battleOnly; - } - if (species.cosmeticFormes) { - forme = this.sample([species.name].concat(species.cosmeticFormes)); - } - if (species.name.endsWith('-Gmax')) { - forme = species.name.slice(0, -5); - gmax = true; - } + const forme = this.getForme(species); + const gmax = species.name.endsWith('-Gmax'); const data = this.randomData[species.id]; @@ -2072,8 +2186,8 @@ export class RandomGen8Teams { (isDoubles && data.doublesMoves) || (isNoDynamax && data.noDynamaxMoves) || data.moves; - const movePool = (randMoves || Object.keys(this.dex.species.getLearnset(species.id)!)).slice(); - if (this.format.gameType === 'multi' || this.format.gameType === 'freeforall') { + const movePool: string[] = [...(randMoves || this.dex.species.getMovePool(species.id))]; + if (this.format.playerCount > 2) { // Random Multi Battle uses doubles move pools, but Ally Switch fails in multi battles // Random Free-For-All also uses doubles move pools, for now const allySwitch = movePool.indexOf('allyswitch'); @@ -2094,8 +2208,9 @@ export class RandomGen8Teams { const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; const types = new Set(species.types); - const abilities = new Set(Object.values(species.abilities)); - if (species.unreleasedHidden) abilities.delete(species.abilities.H); + const abilitiesSet = new Set(Object.values(species.abilities)); + if (species.unreleasedHidden) abilitiesSet.delete(species.abilities.H); + const abilities = Array.from(abilitiesSet); const moves = new Set(); let counter: MoveCounter; @@ -2150,7 +2265,7 @@ export class RandomGen8Teams { !(species.id === 'shuckle' && ['stealthrock', 'stickyweb'].includes(move.id)) && ( move.category === 'Status' || (!types.has(move.type) && move.id !== 'judgment') || - (isLowBP && !move.multihit && !abilities.has('Technician')) + (isLowBP && !move.multihit && !abilities.includes('Technician')) ) ); // Setup-supported moves should only be rejected under specific circumstances @@ -2172,7 +2287,7 @@ export class RandomGen8Teams { // Swords Dance Mew should have Brave Bird (moves.has('swordsdance') && species.id === 'mew' && runEnforcementChecker('Flying')) || // Dhelmise should have Anchor Shot - (abilities.has('Steelworker') && runEnforcementChecker('Steel')) || + (abilities.includes('Steelworker') && runEnforcementChecker('Steel')) || // Check for miscellaneous important moves (!isDoubles && runEnforcementChecker('recovery') && move.id !== 'stickyweb') || runEnforcementChecker('screens') || @@ -2233,78 +2348,8 @@ export class RandomGen8Teams { } } - const abilityData = Array.from(abilities).map(a => this.dex.abilities.get(a)); - Utils.sortBy(abilityData, abil => -abil.rating); - - if (abilityData[1]) { - // Sort abilities by rating with an element of randomness - if (abilityData[2] && abilityData[1].rating <= abilityData[2].rating && this.randomChance(1, 2)) { - [abilityData[1], abilityData[2]] = [abilityData[2], abilityData[1]]; - } - if (abilityData[0].rating <= abilityData[1].rating) { - if (this.randomChance(1, 2)) [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } else if (abilityData[0].rating - 0.6 <= abilityData[1].rating) { - if (this.randomChance(2, 3)) [abilityData[0], abilityData[1]] = [abilityData[1], abilityData[0]]; - } - - // Start with the first abiility and work our way through, culling as we go - ability = abilityData[0].name; - let rejectAbility = false; - do { - rejectAbility = this.shouldCullAbility( - ability, types, moves, abilities, counter, movePool, teamDetails, species, isDoubles, isNoDynamax - ); - - if (rejectAbility) { - // Lopunny, and other Facade users, don't want Limber, even if other abilities are poorly rated, - // since paralysis would arguably be good for them. - const limberFacade = moves.has('facade') && ability === 'Limber'; - - if (ability === abilityData[0].name && (abilityData[1].rating >= 1 || limberFacade)) { - ability = abilityData[1].name; - } else if (ability === abilityData[1].name && abilityData[2] && (abilityData[2].rating >= 1 || limberFacade)) { - ability = abilityData[2].name; - } else { - // Default to the highest rated ability if all are rejected - ability = abilityData[0].name; - rejectAbility = false; - } - } - } while (rejectAbility); - - // Hardcoded abilities for certain contexts - if (forme === 'Copperajah' && gmax) { - ability = 'Heavy Metal'; - } else if (abilities.has('Guts') && - // for Ursaring in BDSP - !abilities.has('Quick Feet') && ( - species.id === 'gurdurr' || species.id === 'throh' || - moves.has('facade') || (moves.has('rest') && moves.has('sleeptalk')) - )) { - ability = 'Guts'; - } else if (abilities.has('Moxie') && (counter.get('Physical') > 3 || moves.has('bounce')) && !isDoubles) { - ability = 'Moxie'; - } else if (isDoubles) { - if (abilities.has('Competitive') && ability !== 'Shadow Tag' && ability !== 'Strong Jaw') ability = 'Competitive'; - if (abilities.has('Friend Guard')) ability = 'Friend Guard'; - if (abilities.has('Gluttony') && moves.has('recycle')) ability = 'Gluttony'; - if (abilities.has('Guts')) ability = 'Guts'; - if (abilities.has('Harvest')) ability = 'Harvest'; - if (abilities.has('Healer') && ( - abilities.has('Natural Cure') || - (abilities.has('Aroma Veil') && this.randomChance(1, 2)) - )) ability = 'Healer'; - if (abilities.has('Intimidate')) ability = 'Intimidate'; - if (abilities.has('Klutz') && ability === 'Limber') ability = 'Klutz'; - if (abilities.has('Magic Guard') && ability !== 'Friend Guard' && ability !== 'Unaware') ability = 'Magic Guard'; - if (abilities.has('Ripen')) ability = 'Ripen'; - if (abilities.has('Stalwart')) ability = 'Stalwart'; - if (abilities.has('Storm Drain')) ability = 'Storm Drain'; - if (abilities.has('Telepathy') && (ability === 'Pressure' || abilities.has('Analytic'))) ability = 'Telepathy'; - } - } else { - ability = abilityData[0].name; - } + ability = this.getAbility(types, moves, abilities, counter, movePool, teamDetails, species, + '', '', isDoubles, isNoDynamax); if (species.requiredItems) { item = this.sample(species.requiredItems); @@ -2331,9 +2376,6 @@ export class RandomGen8Teams { if (item === 'Leftovers' && types.has('Poison')) { item = 'Black Sludge'; } - if (species.baseSpecies === 'Pikachu' && !gmax && this.dex.currentMod !== 'gen8bdsp') { - forme = 'Pikachu' + this.sample(['', '-Original', '-Hoenn', '-Sinnoh', '-Unova', '-Kalos', '-Alola', '-Partner', '-World']); - } const level: number = this.getLevel(species, isDoubles, isNoDynamax); @@ -2403,12 +2445,14 @@ export class RandomGen8Teams { type: string, pokemonToExclude: RandomTeamsTypes.RandomSet[] = [], isMonotype = false, - ) { + pokemonList: string[] + ): [{[k: string]: string[]}, string[]] { const exclude = pokemonToExclude.map(p => toID(p.species)); - const pokemonPool = []; - for (let species of this.dex.species.all()) { - if (species.gen > this.gen || exclude.includes(species.id)) continue; - if (this.dex.currentMod === 'gen8bdsp' && species.gen > 4) continue; + const pokemonPool: {[k: string]: string[]} = {}; + const baseSpeciesPool = []; + for (const pokemon of pokemonList) { + let species = this.dex.species.get(pokemon); + if (exclude.includes(species.id)) continue; if (isMonotype) { if (!species.types.includes(type)) continue; if (typeof species.battleOnly === 'string') { @@ -2416,9 +2460,20 @@ export class RandomGen8Teams { if (!species.types.includes(type)) continue; } } - pokemonPool.push(species.id); + + if (species.baseSpecies in pokemonPool) { + pokemonPool[species.baseSpecies].push(pokemon); + } else { + pokemonPool[species.baseSpecies] = [pokemon]; + } } - return pokemonPool; + // Include base species 1x if 1-3 formes, 2x if 4-6 formes, 3x if 7+ formes + for (const baseSpecies of Object.keys(pokemonPool)) { + // Squawkabilly has 4 formes, but only 2 functionally different formes, so only include it 1x + const weight = (baseSpecies === 'Squawkabilly') ? 1 : Math.min(Math.ceil(pokemonPool[baseSpecies].length / 3), 3); + for (let i = 0; i < weight; i++) baseSpeciesPool.push(baseSpecies); + } + return [pokemonPool, baseSpeciesPool]; } randomTeam() { @@ -2430,6 +2485,7 @@ export class RandomGen8Teams { // For Monotype const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); + const isDoubles = this.format.gameType !== 'singles'; const typePool = this.dex.types.names(); const type = this.forceMonotype || this.sample(typePool); @@ -2439,86 +2495,49 @@ export class RandomGen8Teams { const baseFormes: {[k: string]: number} = {}; - const tierCount: {[k: string]: number} = {}; const typeCount: {[k: string]: number} = {}; const typeComboCount: {[k: string]: number} = {}; const typeWeaknesses: {[k: string]: number} = {}; + const typeDoubleWeaknesses: {[k: string]: number} = {}; const teamDetails: RandomTeamsTypes.TeamDetails = {}; + let numMaxLevelPokemon = 0; - const pokemonPool = this.getPokemonPool(type, pokemon, isMonotype); - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - let species = this.dex.species.get(this.sampleNoReplace(pokemonPool)); - if (!species.exists) continue; - - // Check if the forme has moves for random battle - if (this.format.gameType === 'singles') { - if (!this.randomData[species.id]?.moves) continue; - } else { - if (!this.randomData[species.id]?.doublesMoves) continue; + const pokemonList = []; + for (const poke of Object.keys(this.randomData)) { + if (isDoubles && this.randomData[poke]?.doublesMoves || !isDoubles && this.randomData[poke]?.moves) { + pokemonList.push(poke); } + } + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, pokemonList); + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + const baseSpecies = this.sampleNoReplace(baseSpeciesPool); + let species = this.dex.species.get(this.sample(pokemonPool[baseSpecies])); + if (!species.exists) continue; // Limit to one of each species (Species Clause) if (baseFormes[species.baseSpecies]) continue; - // Adjust rate for species with multiple sets - // TODO: investigate automating this by searching for Pokémon with multiple sets - switch (species.baseSpecies) { - case 'Arceus': case 'Silvally': - if (this.randomChance(8, 9) && !isMonotype) continue; - break; - case 'Aegislash': case 'Basculin': case 'Gourgeist': case 'Meloetta': case 'Rotom': - if (this.randomChance(1, 2)) continue; - break; - case 'Greninja': - if (this.gen >= 7 && this.randomChance(1, 2)) continue; - break; - case 'Darmanitan': - if (species.gen === 8 && this.randomChance(1, 2)) continue; - break; - case 'Necrozma': case 'Calyrex': - if (this.randomChance(2, 3)) continue; - break; - case 'Magearna': case 'Toxtricity': case 'Zacian': case 'Zamazenta': case 'Zarude': - case 'Appletun': case 'Blastoise': case 'Butterfree': case 'Copperajah': case 'Grimmsnarl': - case 'Inteleon': case 'Rillaboom': case 'Snorlax': case 'Urshifu': case 'Giratina': case 'Genesect': - case 'Cinderace': - if (this.gen >= 8 && this.randomChance(1, 2)) continue; - break; - } - // Illusion shouldn't be on the last slot if (species.name === 'Zoroark' && pokemon.length >= (this.maxTeamSize - 1)) continue; - // The sixth slot should not be very low level if a zoroark is present - // Also Zacian/Zamazenta/Eternatus are rejected as they make dynamax malfunction, regardless of level + // The sixth slot should not be Zacian/Zamazenta/Eternatus if Zoroark is present, + // as they make dynamax malfunction, regardless of level if ( pokemon.some(pkmn => pkmn.name === 'Zoroark') && pokemon.length >= (this.maxTeamSize - 1) && - (this.getLevel(species, - this.format.gameType !== 'singles', - this.dex.formats.getRuleTable(this.format).has('dynamaxclause')) < 72 && - !this.adjustLevel || - ['Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Eternatus'].includes(species.name)) + ['Zacian', 'Zacian-Crowned', 'Zamazenta', 'Zamazenta-Crowned', 'Eternatus'].includes(species.name) ) { continue; } - const tier = species.tier; const types = species.types; const typeCombo = types.slice().sort().join(); + const weakToFreezeDry = ( + this.dex.getEffectiveness('Ice', species) > 0 || + (this.dex.getEffectiveness('Ice', species) > -2 && types.includes('Water')) + ); // Dynamically scale limits for different team sizes. The default and minimum value is 1. const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - // Limit one Pokemon per tier, two for Monotype - // This limitation is not applied to BD/SP team generation, because tiering for BD/SP is not yet complete, - // meaning that most Pokémon are in OU. - if ( - this.dex.currentMod !== 'gen8bdsp' && - (tierCount[tier] >= (this.forceMonotype || isMonotype ? 2 : 1) * limitFactor) && - !this.randomChance(1, Math.pow(5, tierCount[tier])) - ) { - continue; - } - if (!isMonotype && !this.forceMonotype) { let skip = false; @@ -2531,7 +2550,7 @@ export class RandomGen8Teams { } if (skip) continue; - // Limit three weak to any type + // Limit three weak to any type, and one double weak to any type for (const typeName of this.dex.types.names()) { // it's weak to the type if (this.dex.getEffectiveness(typeName, species) > 0) { @@ -2541,40 +2560,55 @@ export class RandomGen8Teams { break; } } + if (this.dex.getEffectiveness(typeName, species) > 1) { + if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0; + if (typeDoubleWeaknesses[typeName] >= 1 * limitFactor) { + skip = true; + break; + } + } } if (skip) continue; + + // Count Dry Skin/Fluffy as Fire weaknesses + if ( + this.dex.getEffectiveness('Fire', species) === 0 && + Object.values(species.abilities).filter(a => ['Dry Skin', 'Fluffy'].includes(a)).length + ) { + if (!typeWeaknesses['Fire']) typeWeaknesses['Fire'] = 0; + if (typeWeaknesses['Fire'] >= 3 * limitFactor) continue; + } + + // Limit four weak to Freeze-Dry + if (weakToFreezeDry) { + if (!typeWeaknesses['Freeze-Dry']) typeWeaknesses['Freeze-Dry'] = 0; + if (typeWeaknesses['Freeze-Dry'] >= 4 * limitFactor) continue; + } + + // Limit one level 100 Pokemon + if ( + !this.adjustLevel && numMaxLevelPokemon >= limitFactor && + (this.getLevel(species, isDoubles, this.dex.formats.getRuleTable(this.format).has('dynamaxclause')) === 100) + ) continue; } - // Limit one of any type combination, two in Monotype - if (!this.forceMonotype && typeComboCount[typeCombo] >= (isMonotype ? 2 : 1) * limitFactor) continue; + // Limit three of any type combination in Monotype + if (!this.forceMonotype && isMonotype && (typeComboCount[typeCombo] >= 3 * limitFactor)) continue; // The Pokemon of the Day if (potd?.exists && (pokemon.length === 1 || this.maxTeamSize === 1)) species = potd; const set = this.randomSet(species, teamDetails, pokemon.length === 0, - this.format.gameType !== 'singles', this.dex.formats.getRuleTable(this.format).has('dynamaxclause')); + isDoubles, this.dex.formats.getRuleTable(this.format).has('dynamaxclause')); // Okay, the set passes, add it to our team pokemon.push(set); - if (pokemon.length === this.maxTeamSize) { - // Set Zoroark's level to be the same as the last Pokemon - const illusion = teamDetails.illusion; - if (illusion) pokemon[illusion - 1].level = pokemon[this.maxTeamSize - 1].level; - - // Don't bother tracking details for the last Pokemon - break; - } + // Don't bother tracking details for the last Pokemon + if (pokemon.length === this.maxTeamSize) break; // Now that our Pokemon has passed all checks, we can increment our counters baseFormes[species.baseSpecies] = 1; - // Increment tier counter - if (tierCount[tier]) { - tierCount[tier]++; - } else { - tierCount[tier] = 1; - } - // Increment type counters for (const typeName of types) { if (typeName in typeCount) { @@ -2595,7 +2629,18 @@ export class RandomGen8Teams { if (this.dex.getEffectiveness(typeName, species) > 0) { typeWeaknesses[typeName]++; } + if (this.dex.getEffectiveness(typeName, species) > 1) { + typeDoubleWeaknesses[typeName]++; + } } + // Count Dry Skin/Fluffy as Fire weaknesses + if (['Dry Skin', 'Fluffy'].includes(set.ability) && this.dex.getEffectiveness('Fire', species) === 0) { + typeWeaknesses['Fire']++; + } + if (weakToFreezeDry) typeWeaknesses['Freeze-Dry']++; + + // Increment level 100 counter + if (set.level === 100) numMaxLevelPokemon++; // Track what the team has if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; @@ -2611,9 +2656,6 @@ export class RandomGen8Teams { if (set.moves.includes('auroraveil') || (set.moves.includes('reflect') && set.moves.includes('lightscreen'))) { teamDetails.screens = 1; } - - // For setting Zoroark's level - if (set.ability === 'Illusion') teamDetails.illusion = pokemon.length; } if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { // large teams sometimes cannot be built throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); @@ -2685,16 +2727,30 @@ export class RandomGen8Teams { // Build a pool of eligible sets, given the team partners // Also keep track of sets with moves the team requires - let effectivePool: {set: AnyObject, moveVariants?: number[]}[] = []; + let effectivePool: {set: AnyObject, moveVariants?: number[], item?: string, ability?: string}[] = []; const priorityPool = []; for (const curSet of setList) { // if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; - const item = this.dex.items.get(curSet.item); - if (itemsMax[item.id] && teamData.has[item.id] >= itemsMax[item.id]) continue; + // reject disallowed items, specifically a second of any given choice item + const allowedItems: string[] = []; + for (const itemString of curSet.item) { + const item = this.dex.items.get(itemString); + if (itemsMax[item.id] && teamData.has[item.id] >= itemsMax[item.id]) continue; + allowedItems.push(itemString); + } + if (allowedItems.length === 0) continue; + const curSetItem = this.sample(allowedItems); - const ability = this.dex.abilities.get(curSet.ability); - if (teamData.weather && weatherAbilities.includes(ability.id)) continue; // reject 2+ weather setters + // reject 2+ weather setters + const allowedAbilities: string[] = []; + for (const abilityString of curSet.ability) { + const ability = this.dex.abilities.get(abilityString); + if (teamData.weather && weatherAbilities.includes(ability.id)) continue; + allowedAbilities.push(abilityString); + } + if (allowedAbilities.length === 0) continue; + const curSetAbility = this.sample(allowedAbilities); let reject = false; let hasRequiredMove = false; @@ -2712,8 +2768,10 @@ export class RandomGen8Teams { curSetVariants.push(variantIndex); } if (reject) continue; - effectivePool.push({set: curSet, moveVariants: curSetVariants}); - if (hasRequiredMove) priorityPool.push({set: curSet, moveVariants: curSetVariants}); + + const fullSetSpec = {set: curSet, moveVariants: curSetVariants, item: curSetItem, ability: curSetAbility}; + effectivePool.push(fullSetSpec); + if (hasRequiredMove) priorityPool.push(fullSetSpec); } if (priorityPool.length) effectivePool = priorityPool; @@ -2731,8 +2789,8 @@ export class RandomGen8Teams { } - const item = this.sampleIfArray(setData.set.item); - const ability = this.sampleIfArray(setData.set.ability); + const item = setData.item || this.sampleIfArray(setData.set.item); + const ability = setData.ability || this.sampleIfArray(setData.set.ability); const nature = this.sampleIfArray(setData.set.nature); const level = this.adjustLevel || setData.set.level || (tier === "LC" ? 5 : 100); @@ -3030,8 +3088,6 @@ export class RandomGen8Teams { typeCount: {}, typeComboCount: {}, baseFormes: {}, has: {}, forceResult: forceResult, weaknesses: {}, resistances: {}, }; - const requiredMoveFamilies: string[] = []; - const requiredMoves: {[k: string]: string} = {}; const weatherAbilitiesSet: {[k: string]: string} = { drizzle: 'raindance', drought: 'sunnyday', @@ -3045,31 +3101,29 @@ export class RandomGen8Teams { thickfat: ['Ice', 'Fire'], levitate: ['Ground'], }; + const limitFactor = Math.ceil(this.maxTeamSize / 6); + /** + * Weighted random shuffle + * Uses the fact that for two uniform variables x1 and x2, x1^(1/w1) is larger than x2^(1/w2) + * with probability equal to w1/(w1+w2), which is what we want. See e.g. here https://arxiv.org/pdf/1012.0256.pdf, + * original paper is behind a paywall. + */ + const shuffledSpecies = []; + for (const speciesName of pokemonPool) { + const sortObject = { + speciesName: speciesName, + score: Math.pow(this.prng.next(), 1 / this.randomBSSFactorySets[speciesName].usage), + }; + shuffledSpecies.push(sortObject); + } + shuffledSpecies.sort((a, b) => a.score - b.score); - while (pokemonPool.length && pokemon.length < this.maxTeamSize) { - // Weighted random sampling - let maxUsage = 0; - const sets: {[k: string]: number} = {}; - for (const specie of pokemonPool) { - if (teamData.baseFormes[this.dex.species.get(specie).baseSpecies]) continue; // Species Clause - const usage: number = this.randomBSSFactorySets[specie].usage; - sets[specie] = usage + maxUsage; - maxUsage += usage; - } - - const usage = this.random(1, maxUsage); - let last = 0; - let specie; - for (const key of Object.keys(sets)) { - if (usage > last && usage <= sets[key]) { - specie = key; - break; - } - last = sets[key]; - } - + while (shuffledSpecies.length && pokemon.length < this.maxTeamSize) { + // repeated popping from weighted shuffle is equivalent to repeated weighted sampling without replacement + const specie = shuffledSpecies.pop()!.speciesName; const species = this.dex.species.get(specie); if (!species.exists) continue; + if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; // Limit to one of each species (Species Clause) @@ -3078,10 +3132,12 @@ export class RandomGen8Teams { // Limit 2 of any type (most of the time) const types = species.types; let skip = false; - for (const type of types) { - if (teamData.typeCount[type] > 1 && this.randomChance(4, 5)) { - skip = true; - break; + if (!this.forceMonotype) { + for (const type of types) { + if (teamData.typeCount[type] >= 2 * limitFactor && this.randomChance(4, 5)) { + skip = true; + break; + } } } if (skip) continue; @@ -3095,7 +3151,7 @@ export class RandomGen8Teams { // Drought and Drizzle don't count towards the type combo limit typeCombo = set.ability; } - if (typeCombo in teamData.typeComboCount) continue; + if (!this.forceMonotype && teamData.typeComboCount[typeCombo] >= limitFactor) continue; const itemData = this.dex.items.get(set.item); if (teamData.has[itemData.id]) continue; // Item Clause @@ -3111,7 +3167,11 @@ export class RandomGen8Teams { teamData.typeCount[type] = 1; } } - teamData.typeComboCount[typeCombo] = 1; + if (typeCombo in teamData.typeComboCount) { + teamData.typeComboCount[typeCombo]++; + } else { + teamData.typeComboCount[typeCombo] = 1; + } teamData.baseFormes[species.baseSpecies] = 1; @@ -3129,9 +3189,6 @@ export class RandomGen8Teams { } else { teamData.has[moveId] = 1; } - if (moveId in requiredMoves) { - teamData.has[requiredMoves[moveId]] = 1; - } } for (const typeName of this.dex.types.names()) { @@ -3152,15 +3209,12 @@ export class RandomGen8Teams { } } } - if (pokemon.length < this.maxTeamSize) return this.randomBSSFactoryTeam(side, ++depth); + if (!teamData.forceResult && pokemon.length < this.maxTeamSize) return this.randomBSSFactoryTeam(side, ++depth); - // Quality control - if (!teamData.forceResult) { - for (const requiredFamily of requiredMoveFamilies) { - if (!teamData.has[requiredFamily]) return this.randomBSSFactoryTeam(side, ++depth); - } + // Quality control we cannot afford for monotype + if (!teamData.forceResult && !this.forceMonotype) { for (const type in teamData.weaknesses) { - if (teamData.weaknesses[type] >= 3) return this.randomBSSFactoryTeam(side, ++depth); + if (teamData.weaknesses[type] >= 3 * limitFactor) return this.randomBSSFactoryTeam(side, ++depth); } } diff --git a/data/mods/gen8bdsp/random-data.json b/data/random-battles/gen8bdsp/data.json similarity index 99% rename from data/mods/gen8bdsp/random-data.json rename to data/random-battles/gen8bdsp/data.json index e900fabee420..d4a11460f768 100644 --- a/data/mods/gen8bdsp/random-data.json +++ b/data/random-battles/gen8bdsp/data.json @@ -123,7 +123,7 @@ "moves": ["agility", "razorshell", "rockslide", "swordsdance", "xscissor"] }, "electrode": { - "moves": ["explosion", "lightscreen", "taunt", "thunderbolt", "voltswitch"] + "moves": ["explosion", "taunt", "thunderbolt", "voltswitch"] }, "exeggutor": { "moves": ["gigadrain", "leechseed", "psychic", "sleeppowder", "substitute"] @@ -261,7 +261,7 @@ "moves": ["acrobatics", "leechseed", "sleeppowder", "strengthsap", "substitute"] }, "sunflora": { - "moves": ["energyball", "lightscreen", "sludgebomb", "synthesis"] + "moves": ["energyball", "leechseed", "sludgebomb", "synthesis"] }, "quagsire": { "moves": ["earthquake", "recover", "scald", "toxic"] diff --git a/data/mods/gen8bdsp/random-teams.ts b/data/random-battles/gen8bdsp/teams.ts similarity index 93% rename from data/mods/gen8bdsp/random-teams.ts rename to data/random-battles/gen8bdsp/teams.ts index d6bfc0669e81..c083ff6c54d2 100644 --- a/data/mods/gen8bdsp/random-teams.ts +++ b/data/random-battles/gen8bdsp/teams.ts @@ -1,10 +1,10 @@ // BDSP team generation logic is currently largely shared with Swsh import {PRNG, PRNGSeed} from '../../../sim/prng'; -import {MoveCounter, RandomGen8Teams, OldRandomBattleSpecies} from '../gen8/random-teams'; +import {MoveCounter, RandomGen8Teams, OldRandomBattleSpecies} from '../gen8/teams'; export class RandomBDSPTeams extends RandomGen8Teams { - randomData: {[species: string]: OldRandomBattleSpecies} = require('./random-data.json'); + randomData: {[species: string]: OldRandomBattleSpecies} = require('./data.json'); constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { super(format, prng); @@ -133,7 +133,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { ability: string, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, teamDetails: RandomTeamsTypes.TeamDetails, species: Species, @@ -181,7 +181,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { move: Move, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, @@ -213,7 +213,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { return {cull: movePool.includes('protect') || movePool.includes('wish')}; case 'fireblast': // Special case for Togekiss, which always wants Aura Sphere - return {cull: abilities.has('Serene Grace') && (!moves.has('trick') || counter.get('Status') > 1)}; + return {cull: abilities.includes('Serene Grace') && (!moves.has('trick') || counter.get('Status') > 1)}; case 'firepunch': // Special case for Darmanitan-Zen-Galar, which doesn't always want Fire Punch return {cull: moves.has('earthquake') && movePool.includes('substitute')}; @@ -229,7 +229,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { // Milotic always wants RestTalk if (species.id === 'milotic') return {cull: false}; if (moves.has('stealthrock') || !moves.has('rest')) return {cull: true}; - if (movePool.length > 1 && !abilities.has('Contrary')) { + if (movePool.length > 1 && !abilities.includes('Contrary')) { const rest = movePool.indexOf('rest'); if (rest >= 0) this.fastPop(movePool, rest); } @@ -313,7 +313,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { if ( !isDoubles && counter.get('Status') < 2 && - ['Guts', 'Quick Feet', 'Speed Boost', 'Moody'].every(m => !abilities.has(m)) + ['Guts', 'Quick Feet', 'Speed Boost', 'Moody'].every(m => !abilities.includes(m)) ) return {cull: true}; if (movePool.includes('leechseed') || (movePool.includes('toxic') && !moves.has('wish'))) return {cull: true}; if (isDoubles && ( @@ -361,7 +361,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { return {cull: ( !!counter.get('speedsetup') || (counter.setupType && !bugSwordsDanceCase) || - (abilities.has('Speed Boost') && moves.has('protect')) || + (abilities.includes('Speed Boost') && moves.has('protect')) || (isDoubles && moves.has('leechlife')) )}; @@ -416,7 +416,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { return {cull: moves.has('closecombat') || (!types.has('Fighting') && movePool.includes('swordsdance'))}; case 'facade': // Prefer Dynamic Punch when it can be a guaranteed-hit STAB move (mostly for Machamp) - return {cull: moves.has('dynamicpunch') && species.types.includes('Fighting') && abilities.has('No Guard')}; + return {cull: moves.has('dynamicpunch') && species.types.includes('Fighting') && abilities.includes('No Guard')}; case 'focusblast': // Special cases for Blastoise and Regice; Blastoise wants Shell Smash, and Regice wants Thunderbolt return {cull: movePool.includes('shellsmash') || hasRestTalk}; @@ -424,8 +424,8 @@ export class RandomBDSPTeams extends RandomGen8Teams { return { cull: moves.has('hydropump') || (counter.get('Physical') >= 4 && movePool.includes('uturn')) || - (moves.has('substitute') && !abilities.has('Contrary')), - isSetup: abilities.has('Contrary'), + (moves.has('substitute') && !abilities.includes('Contrary')), + isSetup: abilities.includes('Contrary'), }; case 'poisonjab': return {cull: !types.has('Poison') && counter.get('Status') >= 2}; @@ -444,7 +444,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { case 'psyshock': return {cull: moves.has('psychic')}; case 'bugbuzz': - return {cull: moves.has('uturn') && !counter.setupType && !abilities.has('Tinted Lens')}; + return {cull: moves.has('uturn') && !counter.setupType && !abilities.includes('Tinted Lens')}; case 'leechlife': return {cull: (isDoubles && moves.has('lunge')) || @@ -509,7 +509,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { species.id !== 'breloom' && ['bulkup', 'nastyplot', 'painsplit', 'roost', 'swordsdance'].some(m => movePool.includes(m)) ); - const shayminCase = abilities.has('Serene Grace') && movePool.includes('airslash') && !moves.has('airslash'); + const shayminCase = abilities.includes('Serene Grace') && movePool.includes('airslash') && !moves.has('airslash'); return {cull: moves.has('rest') || moveBasedCull || shayminCase}; case 'helpinghand': // Special case for Shuckle in Doubles, which doesn't want sets with no method to harm foes @@ -528,11 +528,13 @@ export class RandomBDSPTeams extends RandomGen8Teams { ability: string, types: Set, moves: Set, - abilities: Set, + abilities: string[], counter: MoveCounter, movePool: string[], teamDetails: RandomTeamsTypes.TeamDetails, species: Species, + preferredType: string, + role: RandomTeamsTypes.Role, isDoubles: boolean, ): boolean { if ([ @@ -547,7 +549,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { case 'Analytic': return (moves.has('rapidspin') || species.nfe || isDoubles); case 'Blaze': - return (isDoubles && abilities.has('Solar Power')) || (!isDoubles && species.id === 'charizard'); + return (isDoubles && abilities.includes('Solar Power')) || (!isDoubles && species.id === 'charizard'); case 'Chlorophyll': return (species.baseStats.spe > 100 || !counter.get('Fire') && !moves.has('sunnyday') && !teamDetails.sun); case 'Cloud Nine': @@ -557,7 +559,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { case 'Compound Eyes': case 'No Guard': return !counter.get('inaccurate'); case 'Cursed Body': - return abilities.has('Infiltrator'); + return abilities.includes('Infiltrator'); case 'Defiant': return !counter.get('Physical'); case 'Download': @@ -565,36 +567,36 @@ export class RandomBDSPTeams extends RandomGen8Teams { case 'Early Bird': return (types.has('Grass') && isDoubles); case 'Flash Fire': - return (this.dex.getEffectiveness('Fire', species) < -1 || abilities.has('Drought')); + return (this.dex.getEffectiveness('Fire', species) < -1 || abilities.includes('Drought')); case 'Gluttony': return !moves.has('bellydrum'); case 'Guts': return (!moves.has('facade') && !moves.has('sleeptalk') && !species.nfe || - abilities.has('Quick Feet') && !!counter.setupType); + abilities.includes('Quick Feet') && !!counter.setupType); case 'Harvest': - return (abilities.has('Frisk') && !isDoubles); + return (abilities.includes('Frisk') && !isDoubles); case 'Hustle': case 'Inner Focus': - return (counter.get('Physical') < 2 || abilities.has('Iron Fist')); + return (counter.get('Physical') < 2 || abilities.includes('Iron Fist')); case 'Infiltrator': - return (moves.has('rest') && moves.has('sleeptalk')) || (isDoubles && abilities.has('Clear Body')); + return (moves.has('rest') && moves.has('sleeptalk')) || (isDoubles && abilities.includes('Clear Body')); case 'Intimidate': if (species.id === 'salamence' && moves.has('dragondance')) return true; return ['bodyslam', 'bounce', 'rockclimb', 'tripleaxel'].some(m => moves.has(m)); case 'Iron Fist': return (counter.get('ironfist') < 2 || moves.has('dynamicpunch')); case 'Justified': - return (isDoubles && abilities.has('Inner Focus')); + return (isDoubles && abilities.includes('Inner Focus')); case 'Lightning Rod': return (species.types.includes('Ground') || counter.setupType === 'Physical'); case 'Limber': return species.types.includes('Electric') || moves.has('facade'); case 'Mold Breaker': return ( - abilities.has('Adaptability') || abilities.has('Scrappy') || (abilities.has('Unburden') && !!counter.setupType) || - (abilities.has('Sheer Force') && !!counter.get('sheerforce')) + abilities.includes('Adaptability') || abilities.includes('Scrappy') || (abilities.includes('Unburden') && !!counter.setupType) || + (abilities.includes('Sheer Force') && !!counter.get('sheerforce')) ); case 'Moody': - return !!counter.setupType && abilities.has('Simple'); + return !!counter.setupType && abilities.includes('Simple'); case 'Moxie': return (counter.get('Physical') < 2 || moves.has('stealthrock') || moves.has('defog')); case 'Overgrow': @@ -618,24 +620,26 @@ export class RandomBDSPTeams extends RandomGen8Teams { case 'Scrappy': return (moves.has('earthquake') && species.id === 'miltank'); case 'Sheer Force': - return (!counter.get('sheerforce') || abilities.has('Guts')); + return (!counter.get('sheerforce') || abilities.includes('Guts')); case 'Shell Armor': return (species.id === 'omastar' && (moves.has('spikes') || moves.has('stealthrock'))); case 'Sniper': return counter.get('Water') > 1 && !moves.has('focusenergy'); + case 'Solar Power': + return (!teamDetails.sun || abilities.includes('Harvest')); case 'Speed Boost': return moves.has('uturn'); case 'Sturdy': - return (moves.has('bulkup') || !!counter.get('recoil') || abilities.has('Solid Rock')); + return (moves.has('bulkup') || !!counter.get('recoil') || abilities.includes('Solid Rock')); case 'Swarm': return (!counter.get('Bug') || !!counter.get('recovery')); case 'Swift Swim': const neverWantsSwim = !moves.has('raindance') && [ 'Intimidate', 'Rock Head', 'Water Absorb', - ].some(m => abilities.has(m)); + ].some(m => abilities.includes(m)); const noSwimIfNoRain = !moves.has('raindance') && [ 'Cloud Nine', 'Lightning Rod', 'Intimidate', 'Rock Head', 'Sturdy', 'Water Absorb', 'Water Veil', 'Weak Armor', - ].some(m => abilities.has(m)); + ].some(m => abilities.includes(m)); return teamDetails.rain ? neverWantsSwim : noSwimIfNoRain; case 'Synchronize': return counter.get('Status') < 3; @@ -643,12 +647,12 @@ export class RandomBDSPTeams extends RandomGen8Teams { return ( !counter.get('technician') || moves.has('tailslap') || - abilities.has('Punk Rock') + abilities.includes('Punk Rock') ); case 'Tinted Lens': return ( // For Butterfree - (moves.has('hurricane') && abilities.has('Compound Eyes')) || + (moves.has('hurricane') && abilities.includes('Compound Eyes')) || (counter.get('Status') > 2 && !counter.setupType) || // For Yanmega moves.has('protect') @@ -657,9 +661,9 @@ export class RandomBDSPTeams extends RandomGen8Teams { return species.id === 'bibarel'; case 'Unburden': return ( - abilities.has('Prankster') || + abilities.includes('Prankster') || // intended for Hitmonlee - abilities.has('Reckless') || + abilities.includes('Reckless') || !counter.setupType && !isDoubles ); case 'Volt Absorb': @@ -667,7 +671,7 @@ export class RandomBDSPTeams extends RandomGen8Teams { case 'Water Absorb': return ( moves.has('raindance') || - ['Drizzle', 'Strong Jaw', 'Unaware', 'Volt Absorb'].some(abil => abilities.has(abil)) + ['Drizzle', 'Strong Jaw', 'Unaware', 'Volt Absorb'].some(abil => abilities.includes(abil)) ); case 'Weak Armor': return ( diff --git a/data/random-battles/gen9/bss-factory-sets.json b/data/random-battles/gen9/bss-factory-sets.json new file mode 100644 index 000000000000..98120c4b2147 --- /dev/null +++ b/data/random-battles/gen9/bss-factory-sets.json @@ -0,0 +1,6176 @@ +{ + "chienpao": { + "weight": 10, + "sets": [ + { + "species": "Chien-Pao", + "weight": 35, + "moves": [ + ["Icicle Crash"], + ["Sucker Punch"], + ["Sacred Sword"], + ["Crunch", "Sheer Cold"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost"], + "ability": ["Sword of Ruin"] + }, + { + "species": "Chien-Pao", + "weight": 15, + "moves": [ + ["Icicle Crash"], + ["Sucker Punch"], + ["Sacred Sword"], + ["Tera Blast"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Electric"], + "wantsTera": true, + "ability": ["Sword of Ruin"] + }, + { + "species": "Chien-Pao", + "weight": 5, + "moves": [ + ["Tera Blast"], + ["Sacred Sword", "Sheer Cold"], + ["Icicle Crash"], + ["Sucker Punch"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 140, "atk": 236, "def": 4, "spd": 12, "spe": 116}, + "teraType": ["Electric", "Fairy", "Grass"], + "wantsTera": true, + "ability": ["Sword of Ruin"] + }, + { + "species": "Chien-Pao", + "weight": 5, + "moves": [ + ["Ice Spinner", "Icicle Crash"], + ["Tera Blast"], + ["Crunch"], + ["Sacred Sword"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Electric", "Fairy", "Grass"], + "wantsTera": true, + "ability": ["Sword of Ruin"] + }, + { + "species": "Chien-Pao", + "weight": 10, + "moves": [ + ["Ice Spinner", "Icicle Crash"], + ["Crunch", "Throat Chop"], + ["Ice Shard", "Sucker Punch"], + ["Sacred Sword"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Dark"], + "ability": ["Sword of Ruin"] + }, + { + "species": "Chien-Pao", + "weight": 10, + "moves": [ + ["Ice Spinner", "Icicle Crash"], + ["Tera Blast"], + ["Ice Shard", "Sucker Punch"], + ["Sacred Sword"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Electric", "Fairy", "Grass"], + "wantsTera": true, + "ability": ["Sword of Ruin"] + }, + { + "species": "Chien-Pao", + "weight": 5, + "moves": [ + ["Icicle Crash"], + ["Recover"], + ["Ice Shard", "Sucker Punch"], + ["Sacred Sword"] + ], + "item": ["Rocky Helmet"], + "nature": "Jolly", + "evs": {"hp": 252, "atk": 68, "def": 180, "spd": 4, "spe": 4}, + "teraType": ["Fairy", "Poison"], + "wantsTera": true, + "ability": ["Sword of Ruin"] + }, + { + "species": "Chien-Pao", + "weight": 15, + "moves": [ + ["Swords Dance"], + ["Icicle Crash"], + ["Tera Blast"], + ["Ice Shard", "Sucker Punch"] + ], + "item": ["Lum Berry"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Electric"], + "wantsTera": true, + "ability": ["Sword of Ruin"] + } + ] + }, + "dragonite": { + "weight": 10, + "sets": [ + { + "species": "Dragonite", + "weight": 40, + "moves": [ + ["Extreme Speed"], + ["Earthquake"], + ["Dragon Dance", "Encore"], + ["Roost"] + ], + "item": ["Heavy-Duty Boots", "Leftovers", "Rocky Helmet"], + "nature": "Adamant", + "evs": {"hp": 196, "atk": 204, "def": 4, "spd": 4, "spe": 100}, + "teraType": ["Normal"], + "wantsTera": true, + "ability": ["Multiscale"] + }, + { + "species": "Dragonite", + "weight": 10, + "moves": [ + ["Tera Blast"], + ["Earthquake"], + ["Dragon Dance"], + ["Roost"] + ], + "item": ["Heavy-Duty Boots", "Leftovers", "Lum Berry", "Rocky Helmet"], + "nature": "Adamant", + "evs": {"hp": 196, "atk": 204, "def": 4, "spd": 4, "spe": 100}, + "teraType": ["Fairy", "Fire", "Flying"], + "wantsTera": true, + "ability": ["Multiscale"] + }, + { + "species": "Dragonite", + "weight": 5, + "moves": [ + ["Outrage"], + ["Extreme Speed"], + ["Earthquake"], + ["Iron Head"] + ], + "item": ["Choice Band"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Normal", "Steel"], + "wantsTera": true, + "ability": ["Multiscale"] + }, + { + "species": "Dragonite", + "weight": 15, + "moves": [ + ["Outrage"], + ["Extreme Speed"], + ["Earthquake"], + ["Tera Blast"] + ], + "item": ["Choice Band"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Flying"], + "wantsTera": true, + "ability": ["Multiscale"] + }, + { + "species": "Dragonite", + "weight": 5, + "moves": [ + ["Air Slash"], + ["Encore", "Substitute"], + ["Thunder Wave"], + ["Roost"] + ], + "item": ["Rocky Helmet"], + "nature": "Bold", + "evs": {"hp": 244, "def": 148, "spe": 116}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Poison", "Water"], + "wantsTera": true, + "ability": ["Multiscale"] + }, + { + "species": "Dragonite", + "weight": 20, + "moves": [ + ["Scale Shot"], + ["Iron Head"], + ["Earthquake", "Low Kick"], + ["Dragon Dance"] + ], + "item": ["Loaded Dice"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Multiscale"] + }, + { + "species": "Dragonite", + "weight": 5, + "moves": [ + ["Fire Spin"], + ["Earthquake", "Thunder Wave"], + ["Roost"], + ["Encore"] + ], + "item": ["Leftovers"], + "nature": "Careful", + "evs": {"hp": 244, "atk": 12, "spd": 252}, + "teraType": ["Fairy", "Poison", "Steel"], + "wantsTera": true, + "ability": ["Multiscale"] + } + ] + }, + "fluttermane": { + "weight": 10, + "sets": [ + { + "species": "Flutter Mane", + "weight": 20, + "moves": [ + ["Moonblast"], + ["Calm Mind", "Shadow Ball"], + ["Charm"], + ["Pain Split"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Water"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 5, + "moves": [ + ["Draining Kiss"], + ["Shadow Ball"], + ["Charm"], + ["Calm Mind"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Water"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 15, + "moves": [ + ["Moonblast"], + ["Shadow Ball"], + ["Mystical Fire", "Pain Split", "Substitute"], + ["Calm Mind"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"hp": 4, "def": 132, "spa": 116, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Water"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 5, + "moves": [ + ["Moonblast"], + ["Shadow Ball", "Substitute"], + ["Tera Blast"], + ["Calm Mind"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"hp": 4, "def": 132, "spa": 116, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ground", "Water"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 10, + "moves": [ + ["Moonblast"], + ["Hex"], + ["Pain Split", "Taunt"], + ["Thunder Wave"] + ], + "item": ["Booster Energy"], + "nature": "Bold", + "evs": {"hp": 228, "def": 252, "spe": 28}, + "ivs": {"atk": 0}, + "teraType": ["Water"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 5, + "moves": [ + ["Moonblast"], + ["Shadow Ball"], + ["Hyper Voice", "Power Gem", "Thunderbolt"], + ["Perish Song"] + ], + "item": ["Choice Scarf"], + "nature": "Modest", + "evs": {"hp": 20, "def": 44, "spa": 204, "spd": 4, "spe": 236}, + "ivs": {"atk": 0}, + "teraType": ["Fairy"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 25, + "moves": [ + ["Moonblast"], + ["Shadow Ball"], + ["Hyper Voice", "Mystical Fire", "Power Gem", "Psyshock", "Thunderbolt"], + ["Perish Song"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 10, + "moves": [ + ["Moonblast"], + ["Hex", "Shadow Ball"], + ["Thunder Wave"], + ["Taunt"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Normal"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 2, + "moves": [ + ["Moonblast"], + ["Shadow Ball"], + ["Psyshock"], + ["Energy Ball"] + ], + "item": ["Assault Vest"], + "nature": "Modest", + "evs": {"hp": 164, "def": 28, "spa": 196, "spd": 4, "spe": 116}, + "ivs": {"atk": 0}, + "teraType": ["Grass"], + "ability": ["Protosynthesis"] + }, + { + "species": "Flutter Mane", + "weight": 3, + "moves": [ + ["Moonblast"], + ["Shadow Ball"], + ["Psyshock"], + ["Mystical Fire"] + ], + "item": ["Assault Vest"], + "nature": "Modest", + "evs": {"hp": 164, "def": 28, "spa": 196, "spd": 4, "spe": 116}, + "ivs": {"atk": 0}, + "teraType": ["Fire"], + "ability": ["Protosynthesis"] + } + ] + }, + "urshifurapidstrike": { + "weight": 10, + "sets": [ + { + "species": "Urshifu-Rapid-Strike", + "weight": 40, + "moves": [ + ["Surging Strikes"], + ["Close Combat", "Drain Punch"], + ["Aqua Jet", "Substitute"], + ["Swords Dance"] + ], + "item": ["Punching Glove"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass", "Poison", "Water"], + "wantsTera": true, + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu-Rapid-Strike", + "weight": 25, + "moves": [ + ["Surging Strikes"], + ["Close Combat"], + ["U-turn"], + ["Ice Punch"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Water"], + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu-Rapid-Strike", + "weight": 15, + "moves": [ + ["Surging Strikes"], + ["Close Combat"], + ["U-turn"], + ["Aqua Jet"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass", "Poison", "Water"], + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu-Rapid-Strike", + "weight": 20, + "moves": [ + ["Surging Strikes"], + ["Close Combat"], + ["Aqua Jet"], + ["Counter", "Ice Punch"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost", "Water"], + "ability": ["Unseen Fist"] + } + ] + }, + "ogerponhearthflame": { + "weight": 10, + "sets": [ + { + "species": "Ogerpon-Hearthflame", + "weight": 40, + "moves": [ + ["Ivy Cudgel"], + ["Knock Off", "Play Rough"], + ["Encore", "Swords Dance"], + ["Horn Leech", "Trailblaze"] + ], + "gender": "F", + "item": ["Hearthflame Mask"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fire"], + "ability": ["Mold Breaker"] + }, + { + "species": "Ogerpon-Hearthflame", + "weight": 40, + "moves": [ + ["Ivy Cudgel"], + ["Horn Leech"], + ["Swords Dance"], + ["Play Rough", "Substitute", "Trailblaze"] + ], + "gender": "F", + "item": ["Hearthflame Mask"], + "nature": "Jolly", + "evs": {"hp": 156, "atk": 36, "def": 4, "spd": 60, "spe": 252}, + "teraType": ["Fire"], + "ability": ["Mold Breaker"] + }, + { + "species": "Ogerpon-Hearthflame", + "weight": 20, + "moves": [ + ["Ivy Cudgel"], + ["Substitute"], + ["Leech Seed"], + ["Encore", "Horn Leech", "Play Rough"] + ], + "item": ["Hearthflame Mask"], + "nature": "Jolly", + "evs": {"hp": 156, "atk": 36, "def": 4, "spd": 60, "spe": 252}, + "teraType": ["Fire"], + "ability": ["Mold Breaker"] + } + ] + }, + "ursalunabloodmoon": { + "weight": 10, + "sets": [ + { + "species": "Ursaluna-Bloodmoon", + "weight": 15, + "moves": [ + ["Blood Moon"], + ["Earth Power"], + ["Vacuum Wave"], + ["Body Press"] + ], + "item": ["Rocky Helmet"], + "nature": "Bold", + "evs": {"hp": 116, "def": 236, "spa": 4, "spd": 116, "spe": 36}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Poison"], + "ability": ["Mind's Eye"] + }, + { + "species": "Ursaluna-Bloodmoon", + "weight": 25, + "moves": [ + ["Blood Moon", "Hyper Voice"], + ["Moonlight"], + ["Calm Mind"], + ["Yawn"] + ], + "item": ["Covert Cloak", "Leftovers"], + "nature": "Modest", + "evs": {"hp": 100, "def": 4, "spa": 236, "spd": 12, "spe": 156}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Poison"], + "ability": ["Mind's Eye"] + }, + { + "species": "Ursaluna-Bloodmoon", + "weight": 60, + "moves": [ + ["Blood Moon"], + ["Vacuum Wave"], + ["Earth Power"], + ["Hyper Voice"] + ], + "item": ["Assault Vest"], + "nature": "Modest", + "evs": {"hp": 4, "spa": 252, "spd": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Normal"], + "ability": ["Mind's Eye"] + } + ] + }, + "ironbundle": { + "weight": 9, + "sets": [ + { + "species": "Iron Bundle", + "weight": 10, + "moves": [ + ["Flip Turn"], + ["Freeze-Dry"], + ["Hydro Pump"], + ["Encore"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Bundle", + "weight": 70, + "moves": [ + ["Substitute"], + ["Encore"], + ["Hydro Pump"], + ["Freeze-Dry"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ghost", "Steel", "Water"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Bundle", + "weight": 10, + "moves": [ + ["Ice Beam"], + ["Hydro Pump"], + ["Freeze-Dry"], + ["Tera Blast"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Bundle", + "weight": 10, + "moves": [ + ["Ice Beam"], + ["Hydro Pump"], + ["Freeze-Dry"], + ["Flip Turn"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Water"], + "ability": ["Quark Drive"] + } + ] + }, + "urshifu": { + "weight": 9, + "sets": [ + { + "species": "Urshifu", + "weight": 55, + "moves": [ + ["Swords Dance"], + ["Wicked Blow"], + ["Close Combat", "Drain Punch"], + ["Sucker Punch"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Dark", "Ghost"], + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu", + "weight": 25, + "moves": [ + ["Swords Dance"], + ["Wicked Blow"], + ["Close Combat", "Drain Punch"], + ["Sucker Punch"] + ], + "item": ["Black Glasses"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Dark", "Ghost", "Poison"], + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu", + "weight": 5, + "moves": [ + ["Counter"], + ["Wicked Blow"], + ["Close Combat", "Drain Punch"], + ["Sucker Punch"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Dark", "Ghost"], + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu", + "weight": 5, + "moves": [ + ["Wicked Blow"], + ["Close Combat", "Drain Punch"], + ["Sucker Punch"], + ["U-turn"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Dark", "Ghost", "Poison"], + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu", + "weight": 5, + "moves": [ + ["Wicked Blow"], + ["Close Combat", "Drain Punch"], + ["Sucker Punch"], + ["Iron Head"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Unseen Fist"] + }, + { + "species": "Urshifu", + "weight": 5, + "moves": [ + ["Wicked Blow"], + ["Close Combat"], + ["Sucker Punch"], + ["U-turn"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Dark"], + "ability": ["Unseen Fist"] + } + ] + }, + "tinglu": { + "weight": 9, + "sets": [ + { + "species": "Ting-Lu", + "weight": 65, + "moves": [ + ["Stealth Rock"], + ["Ruination"], + ["Earthquake", "Heavy Slam"], + ["Whirlwind"] + ], + "item": ["Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 244, "atk": 20, "def": 116, "spd": 124, "spe": 4}, + "teraType": ["Fairy", "Poison", "Water"], + "ability": ["Vessel of Ruin"] + }, + { + "species": "Ting-Lu", + "weight": 15, + "moves": [ + ["Stealth Rock"], + ["Spikes"], + ["Earthquake", "Heavy Slam"], + ["Whirlwind"] + ], + "item": ["Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 244, "atk": 20, "def": 116, "spd": 124, "spe": 4}, + "teraType": ["Fairy", "Poison", "Water"], + "ability": ["Vessel of Ruin"] + }, + { + "species": "Ting-Lu", + "weight": 5, + "moves": [ + ["Earthquake"], + ["Heavy Slam"], + ["Fissure", "Stone Edge"], + ["Ruination"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 4, "atk": 252, "def": 4, "spd": 108, "spe": 140}, + "teraType": ["Steel"], + "ability": ["Vessel of Ruin"] + }, + { + "species": "Ting-Lu", + "weight": 5, + "moves": [ + ["Earthquake"], + ["Heavy Slam"], + ["Tera Blast"], + ["Ruination"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 4, "atk": 252, "def": 4, "spd": 108, "spe": 140}, + "teraType": ["Electric", "Fairy"], + "wantsTera": true, + "ability": ["Vessel of Ruin"] + }, + { + "species": "Ting-Lu", + "weight": 10, + "moves": [ + ["Earthquake"], + ["Heavy Slam"], + ["Rock Tomb"], + ["Ruination"] + ], + "item": ["Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 244, "atk": 76, "def": 116, "spd": 68, "spe": 4}, + "teraType": ["Steel"], + "ability": ["Vessel of Ruin"] + } + ] + }, + "gholdengo": { + "weight": 9, + "sets": [ + { + "species": "Gholdengo", + "weight": 25, + "moves": [ + ["Make It Rain"], + ["Shadow Ball"], + ["Focus Blast", "Recover", "Thunderbolt"], + ["Trick"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Steel", "Water"], + "ability": ["Good as Gold"] + }, + { + "species": "Gholdengo", + "weight": 30, + "moves": [ + ["Make It Rain"], + ["Shadow Ball"], + ["Focus Blast", "Recover", "Thunderbolt"], + ["Trick"] + ], + "item": ["Choice Scarf"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Normal", "Steel", "Water"], + "ability": ["Good as Gold"] + }, + { + "species": "Gholdengo", + "weight": 15, + "moves": [ + ["Focus Blast", "Make It Rain"], + ["Hex"], + ["Thunder Wave"], + ["Recover"] + ], + "item": ["Rocky Helmet"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Water"], + "ability": ["Good as Gold"] + }, + { + "species": "Gholdengo", + "weight": 20, + "moves": [ + ["Make It Rain"], + ["Shadow Ball"], + ["Nasty Plot"], + ["Recover"] + ], + "item": ["Covert Cloak"], + "nature": "Modest", + "evs": {"hp": 164, "def": 156, "spa": 36, "spd": 4, "spe": 148}, + "ivs": {"atk": 0}, + "teraType": ["Flying"], + "ability": ["Good as Gold"] + }, + { + "species": "Gholdengo", + "weight": 5, + "moves": [ + ["Tera Blast"], + ["Shadow Ball"], + ["Nasty Plot"], + ["Recover"] + ], + "item": ["Covert Cloak"], + "nature": "Modest", + "evs": {"hp": 164, "def": 156, "spa": 36, "spd": 4, "spe": 148}, + "ivs": {"atk": 0}, + "teraType": ["Fighting", "Water"], + "wantsTera": true, + "ability": ["Good as Gold"] + }, + { + "species": "Gholdengo", + "weight": 5, + "moves": [ + ["Make It Rain"], + ["Shadow Ball"], + ["Nasty Plot"], + ["Psyshock", "Recover", "Substitute"] + ], + "item": ["Air Balloon"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying"], + "ability": ["Good as Gold"] + } + ] + }, + "chiyu": { + "weight": 9, + "sets": [ + { + "species": "Chi-Yu", + "weight": 20, + "moves": [ + ["Overheat"], + ["Dark Pulse"], + ["Tera Blast"], + ["Flamethrower"] + ], + "item": ["Choice Scarf"], + "nature": "Modest", + "evs": {"hp": 116, "def": 84, "spa": 156, "spd": 4, "spe": 148}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Grass"], + "wantsTera": true, + "ability": ["Beads of Ruin"] + }, + { + "species": "Chi-Yu", + "weight": 35, + "moves": [ + ["Overheat"], + ["Lava Plume"], + ["Dark Pulse"], + ["Psychic"] + ], + "item": ["Choice Scarf"], + "nature": "Modest", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fire", "Ghost"], + "ability": ["Beads of Ruin"] + }, + { + "species": "Chi-Yu", + "weight": 10, + "moves": [ + ["Flame Charge", "Ruination"], + ["Overheat"], + ["Dark Pulse"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Calm", + "evs": {"hp": 252, "def": 4, "spa": 76, "spd": 156, "spe": 20}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Ghost", "Grass", "Water"], + "wantsTera": true, + "ability": ["Beads of Ruin"] + }, + { + "species": "Chi-Yu", + "weight": 5, + "moves": [ + ["Lava Plume"], + ["Ruination"], + ["Taunt"], + ["Dark Pulse"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ghost"], + "ability": ["Beads of Ruin"] + }, + { + "species": "Chi-Yu", + "weight": 20, + "moves": [ + ["Overheat"], + ["Flamethrower"], + ["Dark Pulse"], + ["Psychic"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fire"], + "ability": ["Beads of Ruin"] + }, + { + "species": "Chi-Yu", + "weight": 10, + "moves": [ + ["Overheat"], + ["Flamethrower"], + ["Dark Pulse"], + ["Tera Blast"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Ghost", "Water"], + "wantsTera": true, + "ability": ["Beads of Ruin"] + } + ] + }, + "garganacl": { + "weight": 9, + "sets": [ + { + "species": "Garganacl", + "weight": 45, + "moves": [ + ["Salt Cure"], + ["Protect"], + ["Recover"], + ["Fissure", "Stealth Rock", "Substitute"] + ], + "item": ["Leftovers"], + "nature": "Impish", + "evs": {"hp": 252, "atk": 4, "def": 252}, + "teraType": ["Fairy", "Poison", "Water"], + "wantsTera": true, + "ability": ["Purifying Salt"] + }, + { + "species": "Garganacl", + "weight": 20, + "moves": [ + ["Salt Cure"], + ["Recover"], + ["Curse"], + ["Earthquake", "Protect", "Substitute"] + ], + "item": ["Leftovers"], + "nature": "Careful", + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "teraType": ["Ghost"], + "wantsTera": true, + "ability": ["Purifying Salt"] + }, + { + "species": "Garganacl", + "weight": 35, + "moves": [ + ["Salt Cure"], + ["Recover"], + ["Iron Defense"], + ["Body Press"] + ], + "item": ["Leftovers"], + "nature": "Careful", + "evs": {"hp": 252, "def": 4, "spd": 252}, + "teraType": ["Fairy", "Poison", "Water"], + "wantsTera": true, + "ability": ["Purifying Salt"] + } + ] + }, + "garchomp": { + "weight": 8, + "sets": [ + { + "species": "Garchomp", + "weight": 45, + "moves": [ + ["Scale Shot"], + ["Earthquake"], + ["Iron Head", "Substitute"], + ["Swords Dance"] + ], + "item": ["Loaded Dice"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Rough Skin"] + }, + { + "species": "Garchomp", + "weight": 25, + "moves": [ + ["Stealth Rock"], + ["Spikes"], + ["Earthquake"], + ["Dragon Tail"] + ], + "item": ["Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 180, "atk": 4, "def": 36, "spd": 172, "spe": 116}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Rough Skin"] + }, + { + "species": "Garchomp", + "weight": 10, + "moves": [ + ["Outrage", "Scale Shot"], + ["Earthquake"], + ["Rock Tomb"], + ["Iron Head"] + ], + "item": ["Choice Band", "Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Rough Skin"] + }, + { + "species": "Garchomp", + "weight": 5, + "moves": [ + ["Earthquake"], + ["Iron Head"], + ["Scale Shot"], + ["Dragon Tail"] + ], + "item": ["Assault Vest"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "ability": ["Rough Skin"] + }, + { + "species": "Garchomp", + "weight": 10, + "moves": [ + ["Outrage", "Scale Shot"], + ["Earthquake"], + ["Rock Tomb"], + ["Tera Blast"] + ], + "item": ["Choice Band", "Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy", "Fire"], + "wantsTera": true, + "ability": ["Rough Skin"] + }, + { + "species": "Garchomp", + "weight": 5, + "moves": [ + ["Earthquake"], + ["Tera Blast"], + ["Scale Shot"], + ["Dragon Tail"] + ], + "item": ["Assault Vest"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Rough Skin"] + } + ] + }, + "landorustherian": { + "weight": 8, + "sets": [ + { + "species": "Landorus-Therian", + "weight": 30, + "moves": [ + ["Stealth Rock"], + ["Earthquake"], + ["Rock Tomb", "Taunt"], + ["U-turn"] + ], + "item": ["Leftovers", "Rocky Helmet", "Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Steel", "Water"], + "ability": ["Intimidate"] + }, + { + "species": "Landorus-Therian", + "weight": 45, + "moves": [ + ["Earthquake"], + ["U-turn"], + ["Tera Blast"], + ["Rock Tomb", "Stone Edge"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Flying"], + "wantsTera": true, + "ability": ["Intimidate"] + }, + { + "species": "Landorus-Therian", + "weight": 15, + "moves": [ + ["Earthquake"], + ["U-turn"], + ["Tera Blast"], + ["Rock Tomb", "Stone Edge"] + ], + "item": ["Choice Band", "Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Fairy", "Flying"], + "wantsTera": true, + "ability": ["Intimidate"] + }, + { + "species": "Landorus-Therian", + "weight": 5, + "moves": [ + ["Earthquake"], + ["U-turn"], + ["Fissure", "Tera Blast"], + ["Rock Tomb", "Smack Down"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Intimidate"] + }, + { + "species": "Landorus-Therian", + "weight": 5, + "moves": [ + ["Earthquake"], + ["Rock Tomb"], + ["U-turn"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "def": 4}, + "teraType": ["Flying", "Water"], + "wantsTera": true, + "ability": ["Intimidate"] + } + ] + }, + "scizor": { + "weight": 8, + "sets": [ + { + "species": "Scizor", + "weight": 15, + "moves": [ + ["Swords Dance"], + ["Bullet Punch"], + ["Close Combat"], + ["Knock Off", "Tera Blast", "U-turn"] + ], + "item": ["Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 28, "def": 204, "spd": 20, "spe": 4}, + "teraType": ["Water"], + "wantsTera": true, + "ability": ["Technician"] + }, + { + "species": "Scizor", + "weight": 20, + "moves": [ + ["Swords Dance"], + ["Bullet Punch"], + ["Close Combat", "U-turn"], + ["Knock Off"] + ], + "item": ["Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 28, "def": 204, "spd": 20, "spe": 4}, + "teraType": ["Flying", "Steel"], + "wantsTera": true, + "ability": ["Technician"] + }, + { + "species": "Scizor", + "weight": 50, + "moves": [ + ["Bullet Punch"], + ["U-turn"], + ["Knock Off"], + ["Close Combat"] + ], + "item": ["Assault Vest", "Choice Band"], + "nature": "Adamant", + "evs": {"hp": 236, "atk": 244, "def": 20, "spd": 4, "spe": 4}, + "teraType": ["Steel", "Water"], + "wantsTera": true, + "ability": ["Technician"] + }, + { + "species": "Scizor", + "weight": 15, + "moves": [ + ["Bullet Punch"], + ["U-turn"], + ["Knock Off", "Tera Blast"], + ["Close Combat"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 236, "atk": 244, "def": 20, "spd": 4, "spe": 4}, + "teraType": ["Water"], + "wantsTera": true, + "ability": ["Technician"] + } + ] + }, + "toxapex": { + "weight": 8, + "sets": [ + { + "species": "Toxapex", + "weight": 40, + "moves": [ + ["Toxic"], + ["Baneful Bunker", "Toxic Spikes"], + ["Recover"], + ["Haze"] + ], + "item": ["Black Sludge", "Mental Herb"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Poison"], + "ability": ["Regenerator"] + }, + { + "species": "Toxapex", + "weight": 60, + "moves": [ + ["Toxic"], + ["Liquidation"], + ["Recover"], + ["Haze"] + ], + "item": ["Leftovers", "Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Poison"], + "ability": ["Regenerator"] + } + ] + }, + "roaringmoon": { + "weight": 8, + "sets": [ + { + "species": "Roaring Moon", + "weight": 40, + "moves": [ + ["Dragon Dance"], + ["Acrobatics"], + ["Earthquake", "Roost", "Taunt"], + ["Knock Off"] + ], + "item": ["Booster Energy"], + "nature": "Jolly", + "evs": {"atk": 220, "def": 36, "spe": 252}, + "teraType": ["Flying"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Roaring Moon", + "weight": 10, + "moves": [ + ["Dragon Dance"], + ["Iron Head"], + ["Earthquake", "Roost", "Taunt"], + ["Knock Off"] + ], + "item": ["Booster Energy"], + "nature": "Jolly", + "evs": {"atk": 220, "def": 36, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Roaring Moon", + "weight": 5, + "moves": [ + ["Jaw Lock"], + ["Roost"], + ["Taunt"], + ["Dragon Dance"] + ], + "item": ["Leftovers", "Shed Shell"], + "nature": "Impish", + "evs": {"hp": 244, "atk": 4, "def": 196, "spd": 36, "spe": 28}, + "teraType": ["Fairy", "Poison"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Roaring Moon", + "weight": 10, + "moves": [ + ["Knock Off"], + ["U-turn"], + ["Earthquake", "Scale Shot"], + ["Tera Blast"] + ], + "item": ["Choice Band", "Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy", "Fire"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Roaring Moon", + "weight": 25, + "moves": [ + ["Knock Off"], + ["Earthquake", "U-turn"], + ["Iron Head"], + ["Outrage"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Dark", "Steel"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Roaring Moon", + "weight": 10, + "moves": [ + ["Dragon Dance"], + ["Knock Off"], + ["Earthquake"], + ["Scale Shot"] + ], + "item": ["Loaded Dice"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Protosynthesis"] + } + ] + }, + "dragapult": { + "weight": 8, + "sets": [ + { + "species": "Dragapult", + "weight": 35, + "moves": [ + ["Dragon Darts"], + ["U-turn"], + ["Sucker Punch"], + ["Phantom Force"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Dragon", "Steel"], + "ability": ["Infiltrator"] + }, + { + "species": "Dragapult", + "weight": 5, + "moves": [ + ["Dragon Darts"], + ["U-turn"], + ["Sucker Punch"], + ["Tera Blast"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy", "Fire", "Ghost", "Steel"], + "wantsTera": true, + "ability": ["Infiltrator"] + }, + { + "species": "Dragapult", + "weight": 15, + "moves": [ + ["Dragon Darts"], + ["Baton Pass", "Tera Blast"], + ["Substitute"], + ["Dragon Dance"] + ], + "item": ["Life Orb"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Fire"], + "wantsTera": true, + "ability": ["Clear Body"] + }, + { + "species": "Dragapult", + "weight": 25, + "moves": [ + ["Draco Meteor"], + ["Hex", "Shadow Ball"], + ["Will-O-Wisp"], + ["Thunder Wave"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ghost", "Normal"], + "ability": ["Cursed Body"] + }, + { + "species": "Dragapult", + "weight": 20, + "moves": [ + ["Shadow Ball"], + ["Draco Meteor"], + ["Thunderbolt"], + ["Flamethrower", "U-turn"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Electric", "Fighting", "Fire", "Ghost"], + "ability": ["Infiltrator"] + } + ] + }, + "baxcalibur": { + "weight": 8, + "sets": [ + { + "species": "Baxcalibur", + "weight": 5, + "moves": [ + ["Glaive Rush", "Scale Shot"], + ["Earthquake"], + ["Ice Shard"], + ["Icicle Spear", "Swords Dance"] + ], + "item": ["Focus Sash", "Life Orb"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Dragon", "Ghost"], + "wantsTera": true, + "ability": ["Thermal Exchange"] + }, + { + "species": "Baxcalibur", + "weight": 75, + "moves": [ + ["Ice Shard", "Scale Shot"], + ["Icicle Spear"], + ["Earthquake"], + ["Dragon Dance", "Swords Dance"] + ], + "item": ["Loaded Dice"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost", "Ground", "Ice"], + "wantsTera": true, + "ability": ["Thermal Exchange"] + }, + { + "species": "Baxcalibur", + "weight": 10, + "moves": [ + ["Icicle Crash", "Icicle Spear"], + ["Ice Shard"], + ["Glaive Rush"], + ["Earthquake"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Ground"], + "wantsTera": true, + "ability": ["Thermal Exchange"] + }, + { + "species": "Baxcalibur", + "weight": 5, + "moves": [ + ["Icicle Spear"], + ["Ice Shard"], + ["Tera Blast"], + ["Earthquake"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Electric", "Fairy", "Fire"], + "wantsTera": true, + "ability": ["Thermal Exchange"] + }, + { + "species": "Baxcalibur", + "weight": 5, + "moves": [ + ["Glaive Rush", "Scale Shot"], + ["Earthquake"], + ["Ice Shard"], + ["Icicle Spear"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Dragon", "Ice"], + "wantsTera": true, + "ability": ["Thermal Exchange"] + } + ] + }, + "ninetalesalola": { + "weight": 8, + "sets": [ + { + "species": "Ninetales-Alola", + "weight": 80, + "moves": [ + ["Aurora Veil"], + ["Moonblast"], + ["Encore"], + ["Blizzard", "Freeze-Dry"] + ], + "item": ["Light Clay"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Fire", "Ice", "Water"], + "ability": ["Snow Warning"] + }, + { + "species": "Ninetales-Alola", + "weight": 10, + "moves": [ + ["Aurora Veil"], + ["Moonblast"], + ["Encore"], + ["Disable"] + ], + "item": ["Light Clay", "Rocky Helmet"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Fire", "Water"], + "ability": ["Snow Warning"] + }, + { + "species": "Ninetales-Alola", + "weight": 10, + "moves": [ + ["Aurora Veil"], + ["Moonblast"], + ["Encore"], + ["Tera Blast"] + ], + "item": ["Light Clay"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Fire", "Water"], + "wantsTera": true, + "ability": ["Snow Warning"] + } + ] + }, + "ogerponcornerstone": { + "weight": 8, + "sets": [ + { + "species": "Ogerpon-Cornerstone", + "weight": 100, + "moves": [ + ["Ivy Cudgel"], + ["Horn Leech"], + ["Encore", "Knock Off"], + ["Quick Attack", "Rock Tomb", "Swords Dance"] + ], + "gender": "F", + "item": ["Cornerstone Mask"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Rock"], + "ability": ["Sturdy"] + } + ] + }, + "ogerponwellspring": { + "weight": 8, + "sets": [ + { + "species": "Ogerpon-Wellspring", + "weight": 60, + "moves": [ + ["Ivy Cudgel"], + ["Horn Leech", "Leech Seed"], + ["Encore", "Substitute"], + ["Synthesis"] + ], + "gender": "F", + "item": ["Wellspring Mask"], + "nature": "Careful", + "evs": {"hp": 252, "atk": 4, "def": 4, "spd": 188, "spe": 60}, + "teraType": ["Water"], + "ability": ["Water Absorb"] + }, + { + "species": "Ogerpon-Wellspring", + "weight": 40, + "moves": [ + ["Ivy Cudgel"], + ["Horn Leech"], + ["Knock Off", "Play Rough"], + ["Leech Seed", "Swords Dance"] + ], + "gender": "F", + "item": ["Wellspring Mask"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Water"], + "ability": ["Water Absorb"] + } + ] + }, + "glimmora": { + "weight": 8, + "sets": [ + { + "species": "Glimmora", + "weight": 30, + "moves": [ + ["Power Gem"], + ["Energy Ball"], + ["Stealth Rock"], + ["Endure"] + ], + "item": ["Red Card"], + "nature": "Calm", + "evs": {"hp": 252, "spd": 124, "spe": 132}, + "ivs": {"atk": 0}, + "teraType": ["Grass"], + "ability": ["Toxic Debris"] + }, + { + "species": "Glimmora", + "weight": 30, + "moves": [ + ["Stealth Rock"], + ["Energy Ball", "Power Gem", "Sludge Wave"], + ["Earth Power", "Mud Shot"], + ["Mortal Spin"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Flying", "Grass"], + "ability": ["Toxic Debris"] + }, + { + "species": "Glimmora", + "weight": 5, + "moves": [ + ["Mortal Spin"], + ["Stealth Rock", "Toxic Spikes"], + ["Mud Shot"], + ["Power Gem", "Sludge Bomb"] + ], + "item": ["Air Balloon", "Leftovers"], + "nature": "Bold", + "evs": {"hp": 244, "def": 76, "spd": 188}, + "teraType": ["Flying", "Grass"], + "ability": ["Toxic Debris"] + }, + { + "species": "Glimmora", + "weight": 20, + "moves": [ + ["Mortal Spin", "Sludge Wave"], + ["Earth Power"], + ["Energy Ball"], + ["Dazzling Gleam", "Power Gem"] + ], + "item": ["Assault Vest"], + "nature": "Modest", + "evs": {"hp": 252, "spa": 252, "spd": 4}, + "teraType": ["Fairy", "Grass", "Ground"], + "ability": ["Toxic Debris"] + }, + { + "species": "Glimmora", + "weight": 15, + "moves": [ + ["Sludge Wave"], + ["Earth Power"], + ["Energy Ball"], + ["Dazzling Gleam", "Power Gem"] + ], + "item": ["Choice Scarf"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy", "Grass", "Ground"], + "ability": ["Toxic Debris"] + } + ] + }, + "annihilape": { + "weight": 7, + "sets": [ + { + "species": "Annihilape", + "weight": 35, + "moves": [ + ["Drain Punch"], + ["Rage Fist"], + ["Bulk Up"], + ["Encore", "Taunt"] + ], + "item": ["Leftovers", "Sitrus Berry"], + "nature": "Jolly", + "evs": {"hp": 252, "def": 4, "spe": 252}, + "teraType": ["Fire", "Poison", "Steel"], + "ability": ["Vital Spirit"] + }, + { + "species": "Annihilape", + "weight": 25, + "moves": [ + ["Stealth Rock"], + ["Rage Fist"], + ["Drain Punch"], + ["Final Gambit", "Rock Tomb", "Taunt"] + ], + "item": ["Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 244, "def": 244, "spe": 20}, + "teraType": ["Fire", "Normal", "Steel"], + "ability": ["Vital Spirit"] + }, + { + "species": "Annihilape", + "weight": 25, + "moves": [ + ["Stealth Rock"], + ["Rage Fist"], + ["Close Combat", "Drain Punch"], + ["Final Gambit", "Rock Tomb", "Taunt"] + ], + "item": ["Focus Sash", "Roseli Berry"], + "nature": "Jolly", + "evs": {"hp": 252, "atk": 4, "spe": 252}, + "teraType": ["Fire", "Normal", "Steel"], + "ability": ["Vital Spirit"] + }, + { + "species": "Annihilape", + "weight": 15, + "moves": [ + ["U-turn"], + ["Close Combat"], + ["Rage Fist", "Shadow Claw"], + ["Final Gambit"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"hp": 252, "atk": 4, "spe": 252}, + "teraType": ["Ghost", "Normal"], + "ability": ["Defiant"] + } + ] + }, + "heatran": { + "weight": 7, + "sets": [ + { + "species": "Heatran", + "weight": 35, + "moves": [ + ["Magma Storm"], + ["Taunt"], + ["Protect"], + ["Earth Power", "Substitute", "Tera Blast"] + ], + "item": ["Leftovers"], + "nature": "Calm", + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "teraType": ["Grass"], + "wantsTera": true, + "ability": ["Flash Fire"] + }, + { + "species": "Heatran", + "weight": 40, + "moves": [ + ["Magma Storm"], + ["Earth Power"], + ["Flash Cannon"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Modest", + "evs": {"hp": 252, "def": 4, "spa": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Grass"], + "wantsTera": true, + "ability": ["Flash Fire"] + }, + { + "species": "Heatran", + "weight": 25, + "moves": [ + ["Magma Storm"], + ["Flash Cannon"], + ["Stealth Rock", "Tera Blast"], + ["Will-O-Wisp"] + ], + "item": ["Rocky Helmet", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spa": 4}, + "teraType": ["Fairy", "Grass"], + "wantsTera": true, + "ability": ["Flame Body"] + } + ] + }, + "breloom": { + "weight": 7, + "sets": [ + { + "species": "Breloom", + "weight": 85, + "moves": [ + ["Bullet Seed"], + ["Mach Punch"], + ["Bulldoze", "Rock Tomb"], + ["Spore"] + ], + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fighting", "Grass", "Ground"], + "ability": ["Technician"] + }, + { + "species": "Breloom", + "weight": 15, + "moves": [ + ["Bullet Seed"], + ["Mach Punch"], + ["Tera Blast"], + ["Spore", "Swords Dance"] + ], + "item": ["Loaded Dice"], + "nature": "Adamant", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fire"], + "wantsTera": true, + "ability": ["Technician"] + } + ] + }, + "cresselia": { + "weight": 7, + "sets": [ + { + "species": "Cresselia", + "weight": 60, + "moves": [ + ["Stored Power"], + ["Moonblast"], + ["Calm Mind"], + ["Moonlight"] + ], + "item": ["Covert Cloak", "Leftovers"], + "nature": "Bold", + "evs": {"hp": 252, "def": 116, "spe": 140}, + "ivs": {"atk": 0}, + "teraType": ["Electric", "Poison"], + "wantsTera": true, + "ability": ["Levitate"] + }, + { + "species": "Cresselia", + "weight": 40, + "moves": [ + ["Ice Beam", "Moonblast"], + ["Thunder Wave", "Trick Room"], + ["Moonlight"], + ["Lunar Dance"] + ], + "item": ["Mental Herb", "Rocky Helmet"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "teraType": ["Steel"], + "ability": ["Levitate"] + } + ] + }, + "dondozo": { + "weight": 7, + "sets": [ + { + "species": "Dondozo", + "weight": 60, + "moves": [ + ["Fissure"], + ["Heavy Slam", "Wave Crash"], + ["Protect", "Rest"], + ["Yawn"] + ], + "item": ["Leftovers"], + "nature": "Impish", + "evs": {"hp": 244, "def": 148, "spd": 116}, + "teraType": ["Fairy", "Grass", "Steel"], + "ability": ["Unaware"] + }, + { + "species": "Dondozo", + "weight": 20, + "moves": [ + ["Fissure"], + ["Body Press", "Wave Crash"], + ["Protect", "Rest"], + ["Yawn"] + ], + "item": ["Leftovers"], + "nature": "Impish", + "evs": {"hp": 244, "def": 252, "spd": 12}, + "teraType": ["Fairy", "Grass", "Steel"], + "ability": ["Unaware"] + }, + { + "species": "Dondozo", + "weight": 10, + "moves": [ + ["Avalanche", "Body Press", "Earthquake", "Fissure"], + ["Wave Crash"], + ["Rest"], + ["Sleep Talk", "Yawn"] + ], + "item": ["Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 244, "def": 252, "spd": 12}, + "teraType": ["Fairy", "Grass", "Steel"], + "ability": ["Unaware"] + }, + { + "species": "Dondozo", + "weight": 5, + "moves": [ + ["Wave Crash"], + ["Avalanche"], + ["Body Press", "Earthquake", "Heavy Slam"], + ["Fissure"] + ], + "item": ["Assault Vest"], + "nature": "Careful", + "evs": {"hp": 44, "atk": 212, "spd": 252}, + "teraType": ["Fairy", "Grass", "Ground", "Steel"], + "ability": ["Unaware"] + }, + { + "species": "Dondozo", + "weight": 5, + "moves": [ + ["Curse"], + ["Rest"], + ["Wave Crash"], + ["Fissure"] + ], + "item": ["Chesto Berry"], + "nature": "Careful", + "evs": {"hp": 252, "def": 4, "spd": 252}, + "teraType": ["Fairy", "Grass", "Steel"], + "ability": ["Unaware"] + } + ] + }, + "hippowdon": { + "weight": 7, + "sets": [ + { + "species": "Hippowdon", + "weight": 100, + "moves": [ + ["Stealth Rock"], + ["Yawn"], + ["Earthquake"], + ["Slack Off", "Whirlwind"] + ], + "item": ["Leftovers", "Sitrus Berry"], + "nature": "Careful", + "evs": {"hp": 252, "def": 4, "spd": 252}, + "teraType": ["Steel", "Water"], + "ability": ["Sand Stream"] + } + ] + }, + "mimikyu": { + "weight": 7, + "sets": [ + { + "species": "Mimikyu", + "weight": 25, + "moves": [ + ["Play Rough"], + ["Shadow Sneak"], + ["Curse"], + ["Pain Split"] + ], + "item": ["Life Orb"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 156, "def": 92, "spd": 4, "spe": 252}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Disguise"] + }, + { + "species": "Mimikyu", + "weight": 15, + "moves": [ + ["Play Rough"], + ["Shadow Sneak"], + ["Curse"], + ["Trick Room"] + ], + "item": ["Life Orb"], + "nature": "Adamant", + "evs": {"hp": 36, "atk": 236, "def": 180, "spd": 4, "spe": 52}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Disguise"] + }, + { + "species": "Mimikyu", + "weight": 25, + "moves": [ + ["Play Rough"], + ["Shadow Sneak"], + ["Drain Punch", "Shadow Claw"], + ["Swords Dance"] + ], + "item": ["Life Orb"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 156, "def": 92, "spd": 4, "spe": 252}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Disguise"] + }, + { + "species": "Mimikyu", + "weight": 15, + "moves": [ + ["Play Rough"], + ["Shadow Claw"], + ["Will-O-Wisp"], + ["Trick"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Disguise"] + }, + { + "species": "Mimikyu", + "weight": 5, + "moves": [ + ["Play Rough"], + ["Shadow Sneak"], + ["Pain Split", "Shadow Claw"], + ["Curse"] + ], + "item": ["Covert Cloak"], + "nature": "Jolly", + "evs": {"hp": 36, "atk": 220, "spe": 252}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Disguise"] + }, + { + "species": "Mimikyu", + "weight": 5, + "moves": [ + ["Play Rough"], + ["Shadow Sneak"], + ["Wood Hammer"], + ["Curse"] + ], + "item": ["Life Orb"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 156, "def": 92, "spd": 4, "spe": 252}, + "teraType": ["Grass"], + "ability": ["Disguise"] + }, + { + "species": "Mimikyu", + "weight": 5, + "moves": [ + ["Play Rough"], + ["Curse"], + ["Trick Room"], + ["Shadow Sneak"] + ], + "item": ["Covert Cloak"], + "nature": "Adamant", + "evs": {"hp": 36, "atk": 236, "def": 180, "spd": 4, "spe": 52}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Disguise"] + }, + { + "species": "Mimikyu", + "weight": 5, + "moves": [ + ["Shadow Claw", "Shadow Sneak"], + ["Substitute"], + ["Curse"], + ["Pain Split"] + ], + "item": ["Figy Berry"], + "nature": "Jolly", + "evs": {"hp": 4, "def": 252, "spe": 252}, + "teraType": ["Ghost"], + "ability": ["Disguise"] + } + ] + }, + "rotomwash": { + "weight": 7, + "sets": [ + { + "species": "Rotom-Wash", + "weight": 35, + "moves": [ + ["Hydro Pump"], + ["Volt Switch"], + ["Trick"], + ["Will-O-Wisp"] + ], + "item": ["Choice Scarf"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ghost", "Steel"], + "ability": ["Levitate"] + }, + { + "species": "Rotom-Wash", + "weight": 15, + "moves": [ + ["Hydro Pump"], + ["Thunderbolt"], + ["Volt Switch"], + ["Trick"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Electric"], + "ability": ["Levitate"] + }, + { + "species": "Rotom-Wash", + "weight": 45, + "moves": [ + ["Hydro Pump"], + ["Volt Switch"], + ["Foul Play"], + ["Will-O-Wisp"] + ], + "item": ["Rocky Helmet", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Ghost", "Steel"], + "ability": ["Levitate"] + }, + { + "species": "Rotom-Wash", + "weight": 5, + "moves": [ + ["Discharge", "Thunderbolt"], + ["Tera Blast"], + ["Nasty Plot"], + ["Substitute"] + ], + "item": ["Leftovers"], + "nature": "Timid", + "evs": {"hp": 252, "spa": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Levitate"] + } + ] + }, + "basculegion": { + "weight": 7, + "sets": [ + { + "species": "Basculegion", + "weight": 20, + "moves": [ + ["Last Respects"], + ["Wave Crash"], + ["Aqua Jet", "Sleep Talk"], + ["Flip Turn"] + ], + "gender": "M", + "item": ["Choice Scarf"], + "nature": "Adamant", + "evs": {"atk": 252, "spa": 4, "spe": 252}, + "teraType": ["Fairy", "Fighting", "Ghost", "Normal", "Water"], + "ability": ["Adaptability"] + }, + { + "species": "Basculegion", + "weight": 10, + "moves": [ + ["Last Respects"], + ["Wave Crash"], + ["Flip Turn"], + ["Tera Blast"] + ], + "gender": "M", + "item": ["Choice Scarf"], + "nature": "Adamant", + "evs": {"atk": 252, "spa": 4, "spe": 252}, + "teraType": ["Fairy", "Fighting"], + "wantsTera": true, + "ability": ["Adaptability"] + }, + { + "species": "Basculegion", + "weight": 40, + "moves": [ + ["Wave Crash"], + ["Aqua Jet"], + ["Agility", "Endeavor"], + ["Last Respects"] + ], + "gender": "M", + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost", "Normal", "Water"], + "ability": ["Adaptability"] + }, + { + "species": "Basculegion", + "weight": 20, + "moves": [ + ["Wave Crash"], + ["Aqua Jet"], + ["Agility", "Tera Blast"], + ["Last Respects"] + ], + "gender": "M", + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Adaptability"] + }, + { + "species": "Basculegion", + "weight": 10, + "moves": [ + ["Wave Crash"], + ["Aqua Jet"], + ["Substitute"], + ["Last Respects"] + ], + "gender": "M", + "item": ["Bright Powder"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost", "Normal", "Water"], + "ability": ["Adaptability"] + } + ] + }, + "corviknight": { + "weight": 6, + "sets": [ + { + "species": "Corviknight", + "weight": 50, + "moves": [ + ["U-turn"], + ["Roost"], + ["Body Press", "Iron Head"], + ["Brave Bird", "Taunt"] + ], + "item": ["Leftovers", "Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Dragon", "Fighting", "Water"], + "ability": ["Mirror Armor"] + }, + { + "species": "Corviknight", + "weight": 40, + "moves": [ + ["Iron Defense"], + ["Body Press"], + ["Roost"], + ["Iron Head", "Taunt", "U-turn"] + ], + "item": ["Covert Cloak", "Rocky Helmet", "Safety Goggles", "Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Dragon", "Fighting", "Water"], + "ability": ["Mirror Armor"] + }, + { + "species": "Corviknight", + "weight": 10, + "moves": [ + ["Bulk Up"], + ["Taunt"], + ["Roost"], + ["Brave Bird", "Iron Head"] + ], + "item": ["Covert Cloak", "Rocky Helmet", "Safety Goggles", "Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Dragon", "Water"], + "ability": ["Mirror Armor"] + } + ] + }, + "zapdos": { + "weight": 6, + "sets": [ + { + "species": "Zapdos", + "weight": 75, + "moves": [ + ["Volt Switch"], + ["Roost"], + ["Hurricane"], + ["Discharge"] + ], + "item": ["Heavy-Duty Boots", "Rocky Helmet", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Steel", "Water"], + "ability": ["Static"] + }, + { + "species": "Zapdos", + "weight": 10, + "moves": [ + ["Volt Switch"], + ["Roost"], + ["Hurricane"], + ["Tera Blast"] + ], + "item": ["Heavy-Duty Boots", "Rocky Helmet", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Ice"], + "wantsTera": true, + "ability": ["Static"] + }, + { + "species": "Zapdos", + "weight": 10, + "moves": [ + ["Thunderbolt"], + ["Hurricane"], + ["Volt Switch"], + ["Tera Blast"] + ], + "item": ["Choice Scarf"], + "nature": "Timid", + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Ice"], + "wantsTera": true, + "ability": ["Static"] + }, + { + "species": "Zapdos", + "weight": 5, + "moves": [ + ["Thunderbolt"], + ["Hurricane"], + ["Volt Switch"], + ["Heat Wave"] + ], + "item": ["Choice Scarf", "Choice Specs"], + "nature": "Timid", + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Electric"], + "ability": ["Static"] + } + ] + }, + "ursaluna": { + "weight": 6, + "sets": [ + { + "species": "Ursaluna", + "weight": 85, + "moves": [ + ["Facade"], + ["Earthquake"], + ["Trailblaze"], + ["Swords Dance"] + ], + "item": ["Flame Orb"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass", "Normal", "Water"], + "ability": ["Guts"] + }, + { + "species": "Ursaluna", + "weight": 15, + "moves": [ + ["Earthquake"], + ["Avalanche"], + ["Yawn"], + ["Protect"] + ], + "item": ["Leftovers"], + "nature": "Impish", + "evs": {"hp": 156, "def": 252, "spd": 100}, + "teraType": ["Fairy", "Water"], + "ability": ["Bulletproof"] + } + ] + }, + "goodrahisui": { + "weight": 6, + "sets": [ + { + "species": "Goodra-Hisui", + "weight": 60, + "moves": [ + ["Flash Cannon", "Heavy Slam"], + ["Draco Meteor", "Ice Beam"], + ["Acid Spray", "Flamethrower", "Thunderbolt"], + ["Earthquake"] + ], + "item": ["Assault Vest"], + "nature": "Quiet", + "evs": {"hp": 252, "spa": 252, "spd": 4}, + "teraType": ["Fairy", "Flying", "Water"], + "ability": ["Sap Sipper"] + }, + { + "species": "Goodra-Hisui", + "weight": 40, + "moves": [ + ["Acid Armor"], + ["Body Press"], + ["Heavy Slam"], + ["Draco Meteor", "Ice Beam", "Protect"] + ], + "item": ["Leftovers"], + "nature": "Careful", + "evs": {"hp": 252, "def": 4, "spd": 252}, + "teraType": ["Fairy", "Flying"], + "ability": ["Shell Armor"] + } + ] + }, + "magnezone": { + "weight": 6, + "sets": [ + { + "species": "Magnezone", + "weight": 70, + "moves": [ + ["Thunderbolt"], + ["Flash Cannon"], + ["Volt Switch"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Modest", + "evs": {"hp": 252, "spa": 4, "spd": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Water"], + "wantsTera": true, + "ability": ["Analytic"] + }, + { + "species": "Magnezone", + "weight": 20, + "moves": [ + ["Thunderbolt"], + ["Flash Cannon"], + ["Volt Switch"], + ["Tera Blast"] + ], + "item": ["Choice Specs"], + "nature": "Modest", + "evs": {"hp": 252, "spa": 4, "spd": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Water"], + "wantsTera": true, + "ability": ["Sturdy"] + }, + { + "species": "Magnezone", + "weight": 10, + "moves": [ + ["Thunderbolt"], + ["Flash Cannon", "Steel Beam"], + ["Volt Switch"], + ["Mirror Coat"] + ], + "item": ["Custap Berry"], + "nature": "Modest", + "evs": {"hp": 252, "spa": 4, "spd": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Water"], + "wantsTera": true, + "ability": ["Sturdy"] + } + ] + }, + "ogerpon": { + "weight": 6, + "sets": [ + { + "species": "Ogerpon", + "weight": 100, + "moves": [ + ["Ivy Cudgel"], + ["U-turn"], + ["Play Rough"], + ["Knock Off", "Stomping Tantrum"] + ], + "item": ["Choice Band", "Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Grass"], + "ability": ["Defiant"] + } + ] + }, + "gliscor": { + "weight": 6, + "sets": [ + { + "species": "Gliscor", + "weight": 100, + "moves": [ + ["Substitute"], + ["Toxic"], + ["Protect"], + ["Earthquake"] + ], + "item": ["Toxic Orb"], + "nature": "Impish", + "evs": {"hp": 244, "def": 108, "spe": 156}, + "teraType": ["Water"], + "wantsTera": true, + "ability": ["Poison Heal"] + } + ] + }, + "ironmoth": { + "weight": 6, + "sets": [ + { + "species": "Iron Moth", + "weight": 20, + "moves": [ + ["Fiery Dance"], + ["Sludge Wave"], + ["Energy Ball"], + ["Dazzling Gleam", "Overheat", "Psychic"] + ], + "item": ["Assault Vest", "Booster Energy", "Choice Specs"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Fairy", "Fire", "Grass", "Water"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Moth", + "weight": 20, + "moves": [ + ["Fiery Dance"], + ["Sludge Wave"], + ["Energy Ball"], + ["Dazzling Gleam", "Overheat", "Psychic", "Tera Blast"] + ], + "item": ["Assault Vest", "Booster Energy", "Choice Specs"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Fairy", "Water"], + "wantsTera": true, + "ability": ["Quark Drive"] + }, + { + "species": "Iron Moth", + "weight": 20, + "moves": [ + ["Toxic Spikes"], + ["Fiery Dance"], + ["Morning Sun"], + ["Sludge Wave", "Tera Blast", "Whirlwind"] + ], + "item": ["Booster Energy", "Covert Cloak", "Passho Berry", "Sitrus Berry"], + "nature": "Timid", + "evs": {"hp": 244, "def": 52, "spa": 4, "spd": 12, "spe": 196}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Grass", "Water"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Moth", + "weight": 10, + "moves": [ + ["Toxic Spikes"], + ["Fiery Dance"], + ["Morning Sun"], + ["Whirlwind"] + ], + "item": ["Black Sludge", "Heavy-Duty Boots"], + "nature": "Calm", + "evs": {"hp": 196, "spd": 132, "spe": 180}, + "ivs": {"atk": 0}, + "teraType": ["Poison"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Moth", + "weight": 10, + "moves": [ + ["Toxic Spikes"], + ["Fiery Dance"], + ["Morning Sun"], + ["Whirlwind"] + ], + "item": ["Heavy-Duty Boots", "Leftovers"], + "nature": "Calm", + "evs": {"hp": 196, "spd": 132, "spe": 180}, + "ivs": {"atk": 0}, + "teraType": ["Grass"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Moth", + "weight": 10, + "moves": [ + ["Fiery Dance"], + ["Acid Spray", "Sludge Wave"], + ["Energy Ball", "Psychic"], + ["Dazzling Gleam", "Tera Blast"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"def": 124, "spa": 132, "spe": 252}, + "teraType": ["Water"], + "wantsTera": true, + "ability": ["Quark Drive"] + }, + { + "species": "Iron Moth", + "weight": 10, + "moves": [ + ["Fiery Dance"], + ["Acid Spray", "Sludge Wave"], + ["Energy Ball"], + ["Dazzling Gleam", "Psychic"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"def": 124, "spa": 132, "spe": 252}, + "teraType": ["Fire", "Grass", "Poison"], + "ability": ["Quark Drive"] + } + ] + }, + "rillaboom": { + "weight": 6, + "sets": [ + { + "species": "Rillaboom", + "weight": 50, + "moves": [ + ["Grassy Glide"], + ["Knock Off"], + ["Drum Beating", "Wood Hammer"], + ["Tera Blast"] + ], + "item": ["Assault Vest", "Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Rock"], + "wantsTera": true, + "ability": ["Grassy Surge"] + }, + { + "species": "Rillaboom", + "weight": 20, + "moves": [ + ["Grassy Glide"], + ["Knock Off"], + ["Drum Beating", "Wood Hammer"], + ["High Horsepower", "U-turn"] + ], + "item": ["Assault Vest"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass", "Poison"], + "ability": ["Grassy Surge"] + }, + { + "species": "Rillaboom", + "weight": 10, + "moves": [ + ["Grassy Glide"], + ["Knock Off"], + ["Drum Beating", "Wood Hammer"], + ["High Horsepower", "U-turn"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass"], + "ability": ["Grassy Surge"] + }, + { + "species": "Rillaboom", + "weight": 20, + "moves": [ + ["Grassy Glide"], + ["High Horsepower"], + ["Tera Blast"], + ["Swords Dance"] + ], + "item": ["Grassy Seed"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "def": 4}, + "teraType": ["Fairy", "Rock"], + "wantsTera": true, + "ability": ["Grassy Surge"] + } + ] + }, + "sneasler": { + "weight": 5, + "sets": [ + { + "species": "Sneasler", + "weight": 30, + "moves": [ + ["Dire Claw"], + ["Close Combat"], + ["Fake Out"], + ["Toxic Spikes"] + ], + "item": ["Air Balloon", "Focus Sash", "Normal Gem", "Red Card", "Sitrus Berry"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fighting", "Flying"], + "ability": ["Unburden"] + }, + { + "species": "Sneasler", + "weight": 10, + "moves": [ + ["Dire Claw"], + ["Close Combat"], + ["Fake Out"], + ["Toxic Spikes"] + ], + "item": ["Air Balloon", "Focus Sash", "Sitrus Berry"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fighting", "Flying"], + "ability": ["Poison Touch"] + }, + { + "species": "Sneasler", + "weight": 60, + "moves": [ + ["Dire Claw"], + ["Close Combat"], + ["Shadow Claw"], + ["Toxic Spikes"] + ], + "item": ["Air Balloon", "Focus Sash", "Red Card", "Sitrus Berry"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost"], + "ability": ["Unburden"] + } + ] + }, + "clodsire": { + "weight": 5, + "sets": [ + { + "species": "Clodsire", + "weight": 50, + "moves": [ + ["Earthquake"], + ["Toxic", "Yawn"], + ["Counter", "Haze", "Stealth Rock"], + ["Recover"] + ], + "item": ["Leftovers", "Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 156, "def": 252, "spd": 100}, + "teraType": ["Dark", "Electric", "Fire", "Water"], + "ability": ["Water Absorb"] + }, + { + "species": "Clodsire", + "weight": 50, + "moves": [ + ["Earthquake"], + ["Toxic", "Yawn"], + ["Counter", "Haze", "Stealth Rock"], + ["Recover"] + ], + "item": ["Leftovers", "Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 156, "def": 252, "spd": 100}, + "teraType": ["Dark", "Electric", "Fire", "Water"], + "ability": ["Unaware"] + } + ] + }, + "meowscarada": { + "weight": 5, + "sets": [ + { + "species": "Meowscarada", + "weight": 25, + "moves": [ + ["Flower Trick"], + ["Knock Off"], + ["Trick", "U-turn"], + ["Low Kick", "Play Rough", "Sucker Punch"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Dark", "Ghost", "Grass"], + "ability": ["Protean"] + }, + { + "species": "Meowscarada", + "weight": 10, + "moves": [ + ["Flower Trick"], + ["Knock Off"], + ["Trick", "U-turn"], + ["Tera Blast"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Rock"], + "wantsTera": true, + "ability": ["Protean"] + }, + { + "species": "Meowscarada", + "weight": 30, + "moves": [ + ["Flower Trick"], + ["Knock Off"], + ["Sucker Punch", "Taunt"], + ["Toxic Spikes"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Ghost", "Grass"], + "ability": ["Overgrow"] + }, + { + "species": "Meowscarada", + "weight": 20, + "moves": [ + ["Flower Trick"], + ["Knock Off"], + ["Tera Blast"], + ["Sucker Punch", "Toxic Spikes"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Rock"], + "wantsTera": true, + "ability": ["Overgrow"] + }, + { + "species": "Meowscarada", + "weight": 10, + "moves": [ + ["Flower Trick"], + ["Knock Off"], + ["Trick", "U-turn"], + ["Sucker Punch"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Ghost", "Grass"], + "ability": ["Protean"] + }, + { + "species": "Meowscarada", + "weight": 5, + "moves": [ + ["Flower Trick"], + ["Knock Off"], + ["Sucker Punch", "Trick", "U-turn"], + ["Tera Blast"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Rock"], + "wantsTera": true, + "ability": ["Protean"] + } + ] + }, + "azumarill": { + "weight": 5, + "sets": [ + { + "species": "Azumarill", + "weight": 45, + "moves": [ + ["Aqua Jet"], + ["Play Rough"], + ["Liquidation"], + ["Superpower"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Fairy", "Water"], + "ability": ["Huge Power"] + }, + { + "species": "Azumarill", + "weight": 10, + "moves": [ + ["Aqua Jet"], + ["Play Rough"], + ["Liquidation"], + ["Tera Blast"] + ], + "item": ["Assault Vest", "Choice Band"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Electric", "Fairy", "Fire", "Grass"], + "wantsTera": true, + "ability": ["Huge Power"] + }, + { + "species": "Azumarill", + "weight": 25, + "moves": [ + ["Belly Drum"], + ["Aqua Jet"], + ["Play Rough"], + ["Encore", "Liquidation"] + ], + "item": ["Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 244, "atk": 252, "def": 12}, + "teraType": ["Water"], + "ability": ["Huge Power"] + }, + { + "species": "Azumarill", + "weight": 10, + "moves": [ + ["Belly Drum"], + ["Aqua Jet"], + ["Play Rough"], + ["Bulldoze"] + ], + "item": ["Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 244, "atk": 252, "def": 12}, + "teraType": ["Steel"], + "ability": ["Huge Power"] + }, + { + "species": "Azumarill", + "weight": 5, + "moves": [ + ["Belly Drum"], + ["Aqua Jet"], + ["Play Rough"], + ["Tera Blast"] + ], + "item": ["Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 244, "atk": 252, "def": 12}, + "teraType": ["Fire"], + "wantsTera": true, + "ability": ["Huge Power"] + }, + { + "species": "Azumarill", + "weight": 5, + "moves": [ + ["Substitute"], + ["Encore"], + ["Play Rough"], + ["Aqua Jet", "Liquidation"] + ], + "item": ["Leftovers"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "def": 4}, + "teraType": ["Water"], + "ability": ["Huge Power"] + } + ] + }, + "ironvaliant": { + "weight": 5, + "sets": [ + { + "species": "Iron Valiant", + "weight": 35, + "moves": [ + ["Spirit Break"], + ["Encore", "Reflect"], + ["Close Combat"], + ["Destiny Bond", "Knock Off"] + ], + "item": ["Booster Energy"], + "nature": "Jolly", + "evs": {"hp": 92, "atk": 204, "def": 4, "spd": 4, "spe": 204}, + "teraType": ["Ghost", "Steel"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Valiant", + "weight": 25, + "moves": [ + ["Moonblast"], + ["Encore", "Shadow Ball", "Shadow Sneak"], + ["Aura Sphere", "Close Combat"], + ["Destiny Bond"] + ], + "item": ["Booster Energy", "Focus Sash"], + "nature": "Naive", + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "teraType": ["Fairy", "Ghost", "Steel"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Valiant", + "weight": 20, + "moves": [ + ["Moonblast"], + ["Close Combat"], + ["Encore", "Shadow Ball"], + ["Psychic", "Psyshock", "Thunderbolt"] + ], + "item": ["Booster Energy", "Life Orb"], + "nature": "Naive", + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "teraType": ["Electric", "Fairy", "Ghost", "Steel"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Valiant", + "weight": 20, + "moves": [ + ["Swords Dance"], + ["Close Combat", "Encore"], + ["Spirit Break"], + ["Knock Off", "Shadow Sneak"] + ], + "item": ["Booster Energy", "Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Fairy", "Ghost", "Steel"], + "ability": ["Quark Drive"] + } + ] + }, + "kingambit": { + "weight": 5, + "sets": [ + { + "species": "Kingambit", + "weight": 25, + "moves": [ + ["Kowtow Cleave"], + ["Sucker Punch"], + ["Iron Head"], + ["Guillotine"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Dark", "Flying"], + "ability": ["Defiant"] + }, + { + "species": "Kingambit", + "weight": 20, + "moves": [ + ["Kowtow Cleave"], + ["Sucker Punch"], + ["Iron Head"], + ["Guillotine"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Dark", "Flying"], + "ability": ["Supreme Overlord"] + }, + { + "species": "Kingambit", + "weight": 10, + "moves": [ + ["Kowtow Cleave"], + ["Guillotine", "Sucker Punch"], + ["Iron Head"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Defiant"] + }, + { + "species": "Kingambit", + "weight": 10, + "moves": [ + ["Kowtow Cleave"], + ["Guillotine", "Sucker Punch"], + ["Iron Head"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Supreme Overlord"] + }, + { + "species": "Kingambit", + "weight": 15, + "moves": [ + ["Kowtow Cleave"], + ["Sucker Punch"], + ["Iron Head"], + ["Swords Dance"] + ], + "item": ["Black Glasses", "Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Dark", "Flying"], + "ability": ["Supreme Overlord"] + }, + { + "species": "Kingambit", + "weight": 10, + "moves": [ + ["Kowtow Cleave"], + ["Sucker Punch"], + ["Iron Head"], + ["Swords Dance"] + ], + "item": ["Black Glasses", "Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Dark", "Flying"], + "ability": ["Defiant"] + }, + { + "species": "Kingambit", + "weight": 5, + "moves": [ + ["Stealth Rock"], + ["Kowtow Cleave"], + ["Guillotine", "Iron Head"], + ["Sucker Punch", "Thunder Wave"] + ], + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Dark", "Fairy", "Flying"], + "ability": ["Defiant", "Supreme Overlord"] + }, + { + "species": "Kingambit", + "weight": 5, + "moves": [ + ["Stealth Rock"], + ["Kowtow Cleave"], + ["Guillotine", "Iron Head"], + ["Sucker Punch", "Thunder Wave"] + ], + "item": ["Sitrus Berry"], + "nature": "Adamant", + "evs": {"hp": 244, "atk": 252, "spd": 12}, + "teraType": ["Dark", "Fairy", "Flying"], + "ability": ["Defiant", "Supreme Overlord"] + } + ] + }, + "volcarona": { + "weight": 5, + "sets": [ + { + "species": "Volcarona", + "weight": 55, + "moves": [ + ["Quiver Dance"], + ["Fiery Dance"], + ["Morning Sun"], + ["Giga Drain", "Substitute", "Will-O-Wisp"] + ], + "item": ["Heavy-Duty Boots", "Sitrus Berry"], + "nature": "Timid", + "evs": {"hp": 244, "def": 204, "spa": 12, "spd": 4, "spe": 44}, + "teraType": ["Fairy", "Grass"], + "wantsTera": true, + "ability": ["Flame Body"] + }, + { + "species": "Volcarona", + "weight": 25, + "moves": [ + ["Quiver Dance"], + ["Fiery Dance"], + ["Morning Sun"], + ["Tera Blast"] + ], + "item": ["Heavy-Duty Boots", "Sitrus Berry"], + "nature": "Timid", + "evs": {"hp": 244, "def": 204, "spa": 12, "spd": 4, "spe": 44}, + "teraType": ["Water"], + "wantsTera": true, + "ability": ["Flame Body"] + }, + { + "species": "Volcarona", + "weight": 20, + "moves": [ + ["Quiver Dance"], + ["Fiery Dance"], + ["Bug Buzz", "Giga Drain", "Psychic"], + ["Tera Blast"] + ], + "item": ["Heavy-Duty Boots", "Lum Berry", "Sitrus Berry"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Rock", "Water"], + "wantsTera": true, + "ability": ["Flame Body"] + } + ] + }, + "wochien": { + "weight": 5, + "sets": [ + { + "species": "Wo-Chien", + "weight": 90, + "moves": [ + ["Leech Seed"], + ["Protect"], + ["Dark Pulse", "Foul Play", "Knock Off"], + ["Giga Drain", "Ruination", "Substitute", "Taunt"] + ], + "item": ["Leftovers"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Fire", "Poison", "Water"], + "wantsTera": true, + "ability": ["Tablets of Ruin"] + }, + { + "species": "Wo-Chien", + "weight": 10, + "moves": [ + ["Leech Seed"], + ["Protect"], + ["Tera Blast"], + ["Giga Drain", "Ruination", "Substitute", "Taunt"] + ], + "item": ["Leftovers"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fire"], + "wantsTera": true, + "ability": ["Tablets of Ruin"] + } + ] + }, + "empoleon": { + "weight": 5, + "sets": [ + { + "species": "Empoleon", + "weight": 100, + "moves": [ + ["Stealth Rock"], + ["Roar", "Yawn"], + ["Flash Cannon", "Ice Beam"], + ["Flip Turn", "Roost", "Surf"] + ], + "item": ["Air Balloon", "Leftovers", "Sitrus Berry"], + "nature": "Calm", + "evs": {"hp": 252, "def": 4, "spd": 252}, + "teraType": ["Fairy", "Flying", "Grass"], + "ability": ["Competitive"] + } + ] + }, + "kommoo": { + "weight": 5, + "sets": [ + { + "species": "Kommo-o", + "weight": 50, + "moves": [ + ["Clangorous Soul"], + ["Clanging Scales"], + ["Aura Sphere", "Vacuum Wave"], + ["Flash Cannon"] + ], + "item": ["Throat Spray"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Bulletproof"] + }, + { + "species": "Kommo-o", + "weight": 50, + "moves": [ + ["Clangorous Soul"], + ["Drain Punch"], + ["Iron Head"], + ["Earthquake", "Substitute"] + ], + "item": ["Leftovers", "Sitrus Berry"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Bulletproof"] + } + ] + }, + "sinistcha": { + "weight": 5, + "sets": [ + { + "species": "Sinistcha", + "weight": 100, + "moves": [ + ["Strength Sap"], + ["Matcha Gotcha"], + ["Hex", "Shadow Ball"], + ["Calm Mind", "Scald"] + ], + "item": ["Covert Cloak", "Leftovers", "Rocky Helmet"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Normal", "Water"], + "wantsTera": true, + "ability": ["Heatproof"] + } + ] + }, + "vikavolt": { + "weight": 5, + "sets": [ + { + "species": "Vikavolt", + "weight": 100, + "moves": [ + ["Discharge", "Thunderbolt", "Thunder Wave", "Volt Switch"], + ["Bug Buzz"], + ["Sticky Web"], + ["Guillotine"] + ], + "item": ["Sitrus Berry"], + "nature": "Modest", + "evs": {"hp": 244, "def": 212, "spd": 52}, + "ivs": {"atk": 0}, + "teraType": ["Steel"], + "ability": ["Levitate"] + } + ] + }, + "skeledirge": { + "weight": 5, + "sets": [ + { + "species": "Skeledirge", + "weight": 30, + "moves": [ + ["Torch Song"], + ["Slack Off"], + ["Will-O-Wisp", "Yawn"], + ["Earth Power", "Hex", "Shadow Ball", "Tera Blast"] + ], + "item": ["Covert Cloak", "Heavy-Duty Boots", "Leftovers", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Water"], + "wantsTera": true, + "ability": ["Unaware"] + }, + { + "species": "Skeledirge", + "weight": 60, + "moves": [ + ["Torch Song"], + ["Slack Off"], + ["Will-O-Wisp", "Yawn"], + ["Earth Power", "Hex", "Shadow Ball"] + ], + "item": ["Covert Cloak", "Heavy-Duty Boots", "Leftovers", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Normal"], + "ability": ["Unaware"] + }, + { + "species": "Skeledirge", + "weight": 5, + "moves": [ + ["Sing"], + ["Torch Song"], + ["Slack Off"], + ["Earth Power", "Shadow Ball", "Tera Blast"] + ], + "item": ["Blunder Policy"], + "nature": "Modest", + "evs": {"hp": 204, "def": 4, "spa": 132, "spd": 4, "spe": 164}, + "teraType": ["Fairy", "Water"], + "wantsTera": true, + "ability": ["Unaware"] + }, + { + "species": "Skeledirge", + "weight": 5, + "moves": [ + ["Sing"], + ["Torch Song"], + ["Slack Off"], + ["Earth Power", "Shadow Ball"] + ], + "item": ["Blunder Policy"], + "nature": "Modest", + "evs": {"hp": 204, "def": 4, "spa": 132, "spd": 4, "spe": 164}, + "teraType": ["Fire"], + "ability": ["Unaware"] + } + ] + }, + "blissey": { + "weight": 4, + "sets": [ + { + "species": "Blissey", + "weight": 10, + "moves": [ + ["Soft-Boiled"], + ["Flamethrower"], + ["Ice Beam"], + ["Thunderbolt"] + ], + "item": ["Expert Belt"], + "nature": "Bold", + "evs": {"hp": 4, "def": 252, "spa": 252}, + "teraType": ["Dark", "Fire"], + "ability": ["Natural Cure"] + }, + { + "species": "Blissey", + "weight": 13, + "moves": [ + ["Calm Mind"], + ["Soft-Boiled"], + ["Shadow Ball"], + ["Flamethrower"] + ], + "item": ["Leftovers"], + "nature": "Calm", + "evs": {"hp": 4, "def": 252, "spd": 252}, + "teraType": ["Dark", "Fire", "Ghost"], + "ability": ["Natural Cure"] + }, + { + "species": "Blissey", + "weight": 13, + "moves": [ + ["Calm Mind"], + ["Soft-Boiled"], + ["Shadow Ball"], + ["Stealth Rock"] + ], + "item": ["Leftovers"], + "nature": "Calm", + "evs": {"hp": 4, "def": 252, "spd": 252}, + "teraType": ["Dark", "Ghost"], + "ability": ["Natural Cure"] + }, + { + "species": "Blissey", + "weight": 14, + "moves": [ + ["Calm Mind"], + ["Soft-Boiled"], + ["Shadow Ball"], + ["Tera Blast"] + ], + "item": ["Leftovers"], + "nature": "Calm", + "evs": {"hp": 4, "def": 252, "spd": 252}, + "teraType": ["Fighting", "Fire"], + "wantsTera": true, + "ability": ["Natural Cure"] + }, + { + "species": "Blissey", + "weight": 50, + "moves": [ + ["Calm Mind"], + ["Soft-Boiled"], + ["Flamethrower", "Shadow Ball"], + ["Fling"] + ], + "item": ["Flame Orb", "Poison Barb"], + "nature": "Calm", + "evs": {"hp": 4, "def": 252, "spd": 252}, + "teraType": ["Dark", "Fire"], + "ability": ["Natural Cure"] + } + ] + }, + "ceruledge": { + "weight": 4, + "sets": [ + { + "species": "Ceruledge", + "weight": 25, + "moves": [ + ["Bitter Blade"], + ["Bulk Up"], + ["Taunt"], + ["Flame Charge", "Shadow Sneak", "Tera Blast", "Will-O-Wisp"] + ], + "item": ["Leftovers"], + "nature": "Impish", + "evs": {"hp": 252, "atk": 4, "def": 252}, + "teraType": ["Fairy", "Grass"], + "ability": ["Flash Fire"] + }, + { + "species": "Ceruledge", + "weight": 65, + "moves": [ + ["Bitter Blade"], + ["Close Combat", "Poltergeist"], + ["Shadow Sneak"], + ["Destiny Bond", "Swords Dance"] + ], + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fighting", "Fire", "Normal"], + "ability": ["Weak Armor"] + }, + { + "species": "Ceruledge", + "weight": 10, + "moves": [ + ["Bitter Blade"], + ["Flare Blitz"], + ["Shadow Sneak"], + ["Tera Blast"] + ], + "item": ["Choice Band"], + "nature": "Adamant", + "evs": {"hp": 100, "atk": 252, "def": 156}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Weak Armor"] + } + ] + }, + "chansey": { + "weight": 4, + "sets": [ + { + "species": "Chansey", + "weight": 70, + "moves": [ + ["Seismic Toss"], + ["Shadow Ball"], + ["Calm Mind"], + ["Soft-Boiled"] + ], + "item": ["Eviolite"], + "nature": "Bold", + "evs": {"hp": 12, "def": 252, "spd": 244}, + "ivs": {"atk": 0}, + "teraType": ["Dark", "Ghost"], + "ability": ["Natural Cure"] + }, + { + "species": "Chansey", + "weight": 30, + "moves": [ + ["Seismic Toss"], + ["Stealth Rock"], + ["Thunder Wave"], + ["Soft-Boiled"] + ], + "item": ["Eviolite"], + "nature": "Bold", + "evs": {"hp": 12, "def": 252, "spd": 244}, + "ivs": {"atk": 0}, + "teraType": ["Dark", "Ghost"], + "ability": ["Natural Cure"] + } + ] + }, + "espathra": { + "weight": 4, + "sets": [ + { + "species": "Espathra", + "weight": 35, + "moves": [ + ["Calm Mind"], + ["Stored Power"], + ["Tera Blast"], + ["Protect", "Roost", "Substitute"] + ], + "item": ["Leftovers", "Lum Berry"], + "nature": "Bold", + "evs": {"hp": 244, "def": 252, "spe": 12}, + "teraType": ["Fighting", "Fire"], + "wantsTera": true, + "ability": ["Speed Boost"] + }, + { + "species": "Espathra", + "weight": 20, + "moves": [ + ["Calm Mind"], + ["Stored Power"], + ["Dazzling Gleam"], + ["Protect", "Roost", "Substitute"] + ], + "item": ["Leftovers", "Lum Berry"], + "nature": "Bold", + "evs": {"hp": 244, "def": 252, "spe": 12}, + "teraType": ["Fairy", "Water"], + "ability": ["Speed Boost"] + }, + { + "species": "Espathra", + "weight": 30, + "moves": [ + ["Lumina Crash"], + ["Baton Pass"], + ["Dazzling Gleam", "Protect", "Reflect"], + ["Calm Mind", "Substitute"] + ], + "item": ["Focus Sash", "Leftovers", "Sitrus Berry"], + "nature": "Timid", + "evs": {"hp": 252, "def": 4, "spe": 252}, + "teraType": ["Ghost", "Normal", "Water"], + "ability": ["Speed Boost"] + }, + { + "species": "Espathra", + "weight": 10, + "moves": [ + ["Lumina Crash"], + ["Energy Ball"], + ["Shadow Ball"], + ["Baton Pass", "Hypnosis"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ghost", "Grass", "Normal"], + "ability": ["Speed Boost"] + }, + { + "species": "Espathra", + "weight": 5, + "moves": [ + ["Light Screen"], + ["Reflect"], + ["Lumina Crash", "Protect"], + ["Baton Pass"] + ], + "item": ["Light Clay"], + "nature": "Timid", + "evs": {"hp": 252, "spa": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy"], + "ability": ["Speed Boost"] + } + ] + }, + "grimmsnarl": { + "weight": 4, + "sets": [ + { + "species": "Grimmsnarl", + "weight": 90, + "moves": [ + ["Reflect"], + ["Light Screen"], + ["Taunt", "Thunder Wave"], + ["Parting Shot", "Spirit Break"] + ], + "item": ["Light Clay"], + "nature": "Careful", + "evs": {"hp": 248, "def": 8, "spd": 252}, + "teraType": ["Poison", "Steel"], + "ability": ["Prankster"] + }, + { + "species": "Grimmsnarl", + "weight": 10, + "moves": [ + ["Play Rough", "Spirit Break"], + ["Crunch", "Sucker Punch"], + ["Hammer Arm", "Low Kick", "Taunt"], + ["Thunder Wave"] + ], + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Dark", "Fairy", "Ghost"], + "ability": ["Prankster"] + } + ] + }, + "ironhands": { + "weight": 4, + "sets": [ + { + "species": "Iron Hands", + "weight": 70, + "moves": [ + ["Drain Punch"], + ["Thunder Punch", "Wild Charge"], + ["Earthquake", "Heavy Slam", "Ice Punch"], + ["Fake Out", "Volt Switch"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"atk": 252, "spd": 204, "spe": 52}, + "teraType": ["Fairy", "Grass", "Ground", "Water"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Hands", + "weight": 30, + "moves": [ + ["Drain Punch"], + ["Thunder Punch"], + ["Substitute"], + ["Swords Dance"] + ], + "item": ["Leftovers", "Punching Glove"], + "nature": "Impish", + "evs": {"hp": 92, "atk": 12, "def": 172, "spd": 212, "spe": 20}, + "teraType": ["Fairy", "Grass", "Water"], + "ability": ["Quark Drive"] + } + ] + }, + "hydreigon": { + "weight": 4, + "sets": [ + { + "species": "Hydreigon", + "weight": 45, + "moves": [ + ["Dark Pulse"], + ["Draco Meteor"], + ["Flash Cannon"], + ["Fire Blast", "Flamethrower", "U-turn"] + ], + "item": ["Choice Scarf", "Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Levitate"] + }, + { + "species": "Hydreigon", + "weight": 25, + "moves": [ + ["Dark Pulse"], + ["Draco Meteor"], + ["Flash Cannon", "U-turn"], + ["Fire Blast", "Flamethrower"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Fire", "Poison"], + "wantsTera": true, + "ability": ["Levitate"] + }, + { + "species": "Hydreigon", + "weight": 10, + "moves": [ + ["Stealth Rock"], + ["Dark Pulse"], + ["Taunt"], + ["Draco Meteor", "Flash Cannon", "Thunder Wave"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Poison", "Steel"], + "wantsTera": true, + "ability": ["Levitate"] + }, + { + "species": "Hydreigon", + "weight": 20, + "moves": [ + ["Dark Pulse"], + ["Flash Cannon"], + ["Nasty Plot"], + ["Draco Meteor", "Earth Power", "Flamethrower", "Substitute", "Taunt"] + ], + "item": ["Leftovers", "Life Orb"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Levitate"] + } + ] + }, + "kleavor": { + "weight": 4, + "sets": [ + { + "species": "Kleavor", + "weight": 28, + "moves": [ + ["Stone Axe"], + ["Night Slash"], + ["Feint", "Trailblaze"], + ["Close Combat", "U-turn", "X-Scissor"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass", "Water"], + "ability": ["Sharpness"] + }, + { + "species": "Kleavor", + "weight": 27, + "moves": [ + ["Stone Axe"], + ["Night Slash"], + ["Feint", "Trailblaze"], + ["U-turn", "X-Scissor"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Bug", "Grass", "Water"], + "ability": ["Sharpness"] + }, + { + "species": "Kleavor", + "weight": 5, + "moves": [ + ["Stone Axe"], + ["Night Slash"], + ["Feint", "Trailblaze"], + ["Close Combat", "U-turn", "X-Scissor"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 140, "atk": 52, "def": 4, "spd": 244, "spe": 68}, + "teraType": ["Grass", "Water"], + "ability": ["Sharpness"] + }, + { + "species": "Kleavor", + "weight": 5, + "moves": [ + ["Stone Axe"], + ["Night Slash"], + ["Feint", "Trailblaze"], + ["U-turn", "X-Scissor"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 140, "atk": 52, "def": 4, "spd": 244, "spe": 68}, + "teraType": ["Bug", "Grass", "Water"], + "ability": ["Sharpness"] + }, + { + "species": "Kleavor", + "weight": 18, + "moves": [ + ["Stone Axe"], + ["U-turn"], + ["Night Slash"], + ["Close Combat", "X-Scissor"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass"], + "ability": ["Sharpness"] + }, + { + "species": "Kleavor", + "weight": 17, + "moves": [ + ["Stone Axe"], + ["U-turn"], + ["Night Slash"], + ["X-Scissor"] + ], + "item": ["Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Bug", "Grass"], + "ability": ["Sharpness"] + } + ] + }, + "screamtail": { + "weight": 4, + "sets": [ + { + "species": "Scream Tail", + "weight": 80, + "moves": [ + ["Stealth Rock"], + ["Thunder Wave", "Trick Room"], + ["Encore", "Perish Song", "Roar"], + ["Misty Explosion"] + ], + "item": ["Booster Energy", "Mental Herb", "Sitrus Berry"], + "nature": "Calm", + "evs": {"hp": 180, "spd": 156, "spe": 172}, + "teraType": ["Normal"], + "ability": ["Protosynthesis"] + }, + { + "species": "Scream Tail", + "weight": 10, + "moves": [ + ["Reflect"], + ["Light Screen"], + ["Encore"], + ["Dazzling Gleam", "Misty Explosion", "Perish Song", "Stealth Rock"] + ], + "item": ["Light Clay", "Mental Herb"], + "nature": "Timid", + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "teraType": ["Normal"], + "ability": ["Protosynthesis"] + }, + { + "species": "Scream Tail", + "weight": 5, + "moves": [ + ["Baton Pass"], + ["Bulk Up", "Calm Mind"], + ["Encore"], + ["Dazzling Gleam", "Play Rough", "Substitute"] + ], + "item": ["Mental Herb", "Sitrus Berry"], + "nature": "Careful", + "evs": {"hp": 220, "def": 220, "spd": 68}, + "teraType": ["Normal"], + "ability": ["Protosynthesis"] + }, + { + "species": "Scream Tail", + "weight": 5, + "moves": [ + ["Baton Pass"], + ["Bulk Up", "Calm Mind"], + ["Sing"], + ["Play Rough", "Substitute"] + ], + "item": ["Blunder Policy"], + "nature": "Careful", + "evs": {"hp": 220, "def": 220, "spd": 68}, + "teraType": ["Normal"], + "ability": ["Protosynthesis"] + } + ] + }, + "milotic": { + "weight": 4, + "sets": [ + { + "species": "Milotic", + "weight": 67, + "moves": [ + ["Scald"], + ["Recover"], + ["Haze", "Mirror Coat"], + ["Draining Kiss", "Ice Beam"] + ], + "item": ["Flame Orb"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Fire"], + "ability": ["Marvel Scale"] + }, + { + "species": "Milotic", + "weight": 33, + "moves": [ + ["Scald"], + ["Recover"], + ["Haze", "Mirror Coat"], + ["Flip Turn"] + ], + "item": ["Flame Orb"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Fire"], + "ability": ["Marvel Scale"] + } + ] + }, + "okidogi": { + "weight": 4, + "sets": [ + { + "species": "Okidogi", + "weight": 15, + "moves": [ + ["Bulk Up"], + ["Drain Punch"], + ["Knock Off"], + ["Poison Jab"] + ], + "item": ["Black Sludge", "Rocky Helmet"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 156, "spe": 100}, + "teraType": ["Poison"], + "ability": ["Toxic Chain"] + }, + { + "species": "Okidogi", + "weight": 25, + "moves": [ + ["Bulk Up"], + ["Drain Punch"], + ["Knock Off"], + ["Ice Punch", "Poison Jab", "Substitute", "Taunt"] + ], + "item": ["Leftovers", "Rocky Helmet"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 156, "spe": 100}, + "teraType": ["Flying", "Water"], + "ability": ["Toxic Chain"] + }, + { + "species": "Okidogi", + "weight": 35, + "moves": [ + ["Bulk Up"], + ["Drain Punch"], + ["Knock Off"], + ["Ice Punch", "Poison Jab", "Substitute", "Taunt"] + ], + "item": ["Black Sludge", "Leftovers", "Rocky Helmet"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 156, "spe": 100}, + "teraType": ["Flying", "Poison", "Water"], + "ability": ["Guard Dog"] + }, + { + "species": "Okidogi", + "weight": 15, + "moves": [ + ["Drain Punch"], + ["Knock Off"], + ["Poison Fang", "Poison Jab"], + ["Ice Punch"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Flying", "Poison", "Water"], + "ability": ["Guard Dog"] + }, + { + "species": "Okidogi", + "weight": 10, + "moves": [ + ["Drain Punch"], + ["Knock Off"], + ["Poison Fang", "Poison Jab"], + ["Ice Punch"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Flying", "Poison", "Water"], + "ability": ["Toxic Chain"] + } + ] + }, + "arcaninehisui": { + "weight": 4, + "sets": [ + { + "species": "Arcanine-Hisui", + "weight": 45, + "moves": [ + ["Head Smash"], + ["Flare Blitz"], + ["Extreme Speed"], + ["Stealth Rock", "Tera Blast"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Grass"], + "wantsTera": true, + "ability": ["Rock Head"] + }, + { + "species": "Arcanine-Hisui", + "weight": 50, + "moves": [ + ["Head Smash"], + ["Flare Blitz"], + ["Extreme Speed"], + ["Flame Charge", "Stealth Rock", "Wild Charge"] + ], + "item": ["Choice Band", "Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Normal", "Rock"], + "wantsTera": true, + "ability": ["Rock Head"] + }, + { + "species": "Arcanine-Hisui", + "weight": 5, + "moves": [ + ["Rock Blast"], + ["Flare Blitz"], + ["Extreme Speed"], + ["Tera Blast"] + ], + "item": ["Loaded Dice"], + "nature": "Adamant", + "evs": {"hp": 212, "atk": 252, "def": 4, "spd": 4, "spe": 36}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Intimidate"] + } + ] + }, + "snorlax": { + "weight": 4, + "sets": [ + { + "species": "Snorlax", + "weight": 60, + "moves": [ + ["Heavy Slam"], + ["Earthquake", "Fissure"], + ["Body Slam", "Protect"], + ["Yawn"] + ], + "item": ["Leftovers"], + "nature": "Careful", + "evs": {"hp": 252, "def": 92, "spd": 164}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Thick Fat"] + }, + { + "species": "Snorlax", + "weight": 20, + "moves": [ + ["Heavy Slam"], + ["Earthquake", "Heat Crash"], + ["Body Slam", "Double-Edge"], + ["Fissure"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"atk": 252, "def": 252, "spd": 4}, + "teraType": ["Ghost", "Steel"], + "ability": ["Thick Fat"] + }, + { + "species": "Snorlax", + "weight": 20, + "moves": [ + ["Heavy Slam"], + ["Earthquake", "Heat Crash"], + ["Body Slam", "Double-Edge"], + ["Fissure", "Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"atk": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy"], + "ability": ["Thick Fat"] + } + ] + }, + "alomomola": { + "weight": 4, + "sets": [ + { + "species": "Alomomola", + "weight": 100, + "moves": [ + ["Scald"], + ["Flip Turn"], + ["Mirror Coat"], + ["Icy Wind"] + ], + "item": ["Assault Vest"], + "nature": "Sassy", + "evs": {"hp": 4, "def": 252, "spd": 252}, + "teraType": ["Poison"], + "ability": ["Regenerator"] + } + ] + }, + "umbreon": { + "weight": 4, + "sets": [ + { + "species": "Umbreon", + "weight": 100, + "moves": [ + ["Foul Play"], + ["Protect"], + ["Wish"], + ["Yawn"] + ], + "item": ["Leftovers"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Poison"], + "ability": ["Inner Focus"] + } + ] + }, + "cloyster": { + "weight": 3, + "sets": [ + { + "species": "Cloyster", + "weight": 60, + "moves": [ + ["Shell Smash"], + ["Icicle Spear"], + ["Drill Run", "Ice Shard", "Tera Blast"], + ["Rock Blast"] + ], + "item": ["Focus Sash", "King's Rock"], + "nature": "Adamant", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Ghost"], + "ability": ["Skill Link"] + }, + { + "species": "Cloyster", + "weight": 15, + "moves": [ + ["Shell Smash"], + ["Icicle Spear"], + ["Tera Blast"], + ["Rock Blast"] + ], + "item": ["Focus Sash", "Life Orb", "Lum Berry"], + "nature": "Adamant", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Electric"], + "wantsTera": true, + "ability": ["Skill Link"] + }, + { + "species": "Cloyster", + "weight": 25, + "moves": [ + ["Shell Smash"], + ["Icicle Spear"], + ["Drill Run", "Ice Shard"], + ["Rock Blast"] + ], + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"atk": 252, "def": 4, "spe": 252}, + "teraType": ["Ice"], + "ability": ["Skill Link"] + } + ] + }, + "tinkaton": { + "weight": 3, + "sets": [ + { + "species": "Tinkaton", + "weight": 100, + "moves": [ + ["Gigaton Hammer", "Knock Off"], + ["Encore"], + ["Stealth Rock"], + ["Thunder Wave"] + ], + "item": ["Air Balloon"], + "nature": "Careful", + "evs": {"hp": 244, "atk": 4, "def": 164, "spd": 20, "spe": 76}, + "teraType": ["Flying", "Ground", "Water"], + "ability": ["Mold Breaker"] + } + ] + }, + "fezandipiti": { + "weight": 3, + "sets": [ + { + "species": "Fezandipiti", + "weight": 50, + "moves": [ + ["Calm Mind", "Charm", "Heat Wave", "Tailwind", "Taunt"], + ["Moonblast"], + ["Roost"], + ["U-turn"] + ], + "item": ["Covert Cloak", "Leftovers", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 220, "spe": 36}, + "teraType": ["Flying", "Water"], + "ability": ["Toxic Chain"] + }, + { + "species": "Fezandipiti", + "weight": 50, + "moves": [ + ["Roost"], + ["Taunt", "Toxic"], + ["U-turn"], + ["Play Rough"] + ], + "item": ["Leftovers"], + "nature": "Careful", + "evs": {"hp": 252, "spd": 220, "spe": 36}, + "teraType": ["Flying", "Water"], + "ability": ["Toxic Chain"] + } + ] + }, + "pelipper": { + "weight": 3, + "sets": [ + { + "species": "Pelipper", + "weight": 100, + "moves": [ + ["U-turn"], + ["Hydro Pump"], + ["Ice Beam"], + ["Hurricane"] + ], + "item": ["Choice Specs"], + "nature": "Modest", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Flying", "Grass", "Ground", "Steel", "Water"], + "ability": ["Drizzle"] + } + ] +}, + "rotomheat": { + "weight": 3, + "sets": [ + { + "species": "Rotom-Heat", + "weight": 20, + "moves": [ + ["Volt Switch"], + ["Overheat"], + ["Trick"], + ["Thunderbolt"] + ], + "item": ["Choice Scarf", "Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Electric"], + "ability": ["Levitate"] + }, + { + "species": "Rotom-Heat", + "weight": 20, + "moves": [ + ["Volt Switch"], + ["Overheat"], + ["Trick"], + ["Tera Blast"] + ], + "item": ["Choice Scarf", "Choice Specs"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Levitate"] + }, + { + "species": "Rotom-Heat", + "weight": 60, + "moves": [ + ["Volt Switch"], + ["Foul Play"], + ["Overheat"], + ["Thunder Wave", "Will-O-Wisp"] + ], + "item": ["Rocky Helmet", "Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Ghost", "Steel"], + "ability": ["Levitate"] + } + ] + }, + "taurospaldeablaze": { + "weight": 3, + "sets": [ + { + "species": "Tauros-Paldea-Blaze", + "weight": 50, + "moves": [ + ["Raging Bull"], + ["Body Press"], + ["Will-O-Wisp"], + ["Bulk Up", "Earthquake", "Rock Tomb"] + ], + "item": ["Rocky Helmet", "Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy"], + "ability": ["Intimidate"] + }, + { + "species": "Tauros-Paldea-Blaze", + "weight": 50, + "moves": [ + ["Close Combat"], + ["Flare Blitz", "Raging Bull"], + ["Flame Charge", "Rock Tomb"], + ["Bulk Up", "Earthquake", "Tera Blast"] + ], + "item": ["Eject Pack"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fairy", "Grass"], + "wantsTera": true, + "ability": ["Intimidate"] + } + ] + }, + "torkoal": { + "weight": 3, + "sets": [ + { + "species": "Torkoal", + "weight": 100, + "moves": [ + ["Overheat"], + ["Yawn"], + ["Stealth Rock"], + ["Body Press", "Clear Smog", "Fissure", "Solar Beam"] + ], + "item": ["Eject Pack"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fire", "Grass"], + "ability": ["Drought"] + } + ] + }, + "amoonguss": { + "weight": 3, + "sets": [ + { + "species": "Amoonguss", + "weight": 45, + "moves": [ + ["Spore"], + ["Leaf Storm"], + ["Foul Play"], + ["Clear Smog", "Sludge Bomb"] + ], + "item": ["Eject Pack"], + "nature": "Bold", + "evs": {"hp": 252, "def": 156, "spd": 100}, + "ivs": {"atk": 0}, + "teraType": ["Water"], + "ability": ["Regenerator"] + }, + { + "species": "Amoonguss", + "weight": 35, + "moves": [ + ["Spore"], + ["Clear Smog", "Giga Drain", "Sludge Bomb"], + ["Foul Play", "Stomping Tantrum"], + ["Synthesis"] + ], + "item": ["Leftovers", "Rocky Helmet"], + "nature": "Relaxed", + "evs": {"hp": 252, "def": 156, "spd": 100}, + "teraType": ["Fairy", "Water"], + "ability": ["Regenerator"] + }, + { + "species": "Amoonguss", + "weight": 20, + "moves": [ + ["Spore"], + ["Clear Smog", "Giga Drain", "Sludge Bomb"], + ["Foul Play", "Stomping Tantrum"], + ["Synthesis"] + ], + "item": ["Black Sludge"], + "nature": "Relaxed", + "evs": {"hp": 252, "def": 156, "spd": 100}, + "teraType": ["Poison"], + "ability": ["Regenerator"] + } + ] + }, + "greattusk": { + "weight": 3, + "sets": [ + { + "species": "Great Tusk", + "weight": 45, + "moves": [ + ["Close Combat"], + ["Earthquake", "Headlong Rush"], + ["Ice Spinner"], + ["Knock Off", "Rapid Spin", "Stealth Rock"] + ], + "item": ["Booster Energy", "Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ground", "Steel", "Water"], + "ability": ["Protosynthesis"] + }, + { + "species": "Great Tusk", + "weight": 15, + "moves": [ + ["Close Combat"], + ["Earthquake", "Headlong Rush"], + ["Ice Spinner"], + ["Knock Off", "Rapid Spin"] + ], + "item": ["Assault Vest"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ground", "Steel", "Water"], + "ability": ["Protosynthesis"] + }, + { + "species": "Great Tusk", + "weight": 25, + "moves": [ + ["Bulk Up"], + ["Earthquake"], + ["Ice Spinner"], + ["Substitute", "Taunt"] + ], + "item": ["Booster Energy", "Leftovers"], + "nature": "Jolly", + "evs": {"hp": 4, "spd": 252, "spe": 252}, + "teraType": ["Steel", "Water"], + "ability": ["Protosynthesis"] + }, + { + "species": "Great Tusk", + "weight": 15, + "moves": [ + ["Close Combat"], + ["Earthquake", "Headlong Rush"], + ["Ice Spinner"], + ["Knock Off"] + ], + "item": ["Choice Band", "Choice Scarf"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fighting", "Ground", "Steel"], + "ability": ["Protosynthesis"] + } + ] + }, + "thundurustherian": { + "weight": 3, + "sets": [ + { + "species": "Thundurus-Therian", + "weight": 45, + "moves": [ + ["Volt Switch"], + ["Thunderbolt"], + ["Tera Blast"], + ["Focus Blast", "Grass Knot", "Sludge Bomb"] + ], + "item": ["Choice Scarf"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Ice"], + "wantsTera": true, + "ability": ["Volt Absorb"] + }, + { + "species": "Thundurus-Therian", + "weight": 45, + "moves": [ + ["Volt Switch"], + ["Thunderbolt"], + ["Tera Blast"], + ["Focus Blast", "Grass Knot", "Sludge Bomb"] + ], + "item": ["Assault Vest", "Choice Specs"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Ice", "Water"], + "wantsTera": true, + "ability": ["Volt Absorb"] + }, + { + "species": "Thundurus-Therian", + "weight": 10, + "moves": [ + ["Nasty Plot"], + ["Thunderbolt"], + ["Grass Knot", "Substitute"], + ["Tera Blast"] + ], + "item": ["Life Orb", "Sitrus Berry"], + "nature": "Timid", + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Ice", "Water"], + "wantsTera": true, + "ability": ["Volt Absorb"] + } + ] + }, + "arcanine": { + "weight": 3, + "sets": [ + { + "species": "Arcanine", + "weight": 50, + "moves": [ + ["Flare Blitz"], + ["Morning Sun"], + ["Will-O-Wisp"], + ["Extreme Speed"] + ], + "item": ["Heavy-Duty Boots", "Leftovers", "Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 236, "def": 212, "spe": 60}, + "teraType": ["Normal"], + "ability": ["Intimidate"] + }, + { + "species": "Arcanine", + "weight": 50, + "moves": [ + ["Flare Blitz", "Roar"], + ["Morning Sun"], + ["Will-O-Wisp"], + ["Bulldoze", "Extreme Speed", "Snarl"] + ], + "item": ["Heavy-Duty Boots", "Leftovers", "Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 236, "def": 212, "spe": 60}, + "teraType": ["Fairy", "Grass"], + "ability": ["Intimidate"] + } + ] + }, + "gyarados": { + "weight": 3, + "sets": [ + { + "species": "Gyarados", + "weight": 50, + "moves": [ + ["Taunt"], + ["Iron Head", "Waterfall"], + ["Earthquake"], + ["Thunder Wave"] + ], + "item": ["Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 228, "atk": 4, "def": 220, "spd": 4, "spe": 52}, + "teraType": ["Ground"], + "ability": ["Intimidate"] + }, + { + "species": "Gyarados", + "weight": 50, + "moves": [ + ["Taunt"], + ["Iron Head", "Waterfall"], + ["Earthquake", "Ice Fang"], + ["Thunder Wave"] + ], + "item": ["Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 228, "atk": 4, "def": 220, "spd": 4, "spe": 52}, + "teraType": ["Steel"], + "ability": ["Intimidate"] + } + ] + }, + "pawmot": { + "weight": 3, + "sets": [ + { + "species": "Pawmot", + "weight": 33, + "moves": [ + ["Double Shock"], + ["Close Combat"], + ["Ice Punch", "Mach Punch", "Nuzzle"], + ["Encore", "Revival Blessing"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Electric"], + "ability": ["Iron Fist"] + }, + { + "species": "Pawmot", + "weight": 33, + "moves": [ + ["Double Shock"], + ["Close Combat"], + ["Ice Punch", "Mach Punch", "Nuzzle"], + ["Encore", "Revival Blessing"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Electric"], + "ability": ["Volt Absorb"] + }, + { + "species": "Pawmot", + "weight": 33, + "moves": [ + ["Double Shock"], + ["Close Combat"], + ["Ice Punch", "Mach Punch", "Nuzzle"], + ["Encore", "Revival Blessing"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Electric"], + "ability": ["Natural Cure"] + } + ] + }, + "zoroarkhisui": { + "weight": 3, + "sets": [ + { + "species": "Zoroark-Hisui", + "weight": 60, + "moves": [ + ["Bitter Malice"], + ["Will-O-Wisp"], + ["Shadow Sneak"], + ["Curse", "Tera Blast"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"def": 4, "spa": 252, "spe": 252}, + "teraType": ["Fairy", "Fighting"], + "wantsTera": true, + "ability": ["Illusion"] + }, + { + "species": "Zoroark-Hisui", + "weight": 40, + "moves": [ + ["Bitter Malice"], + ["Curse"], + ["Will-O-Wisp"], + ["Trick"] + ], + "item": ["Choice Scarf"], + "nature": "Timid", + "evs": {"hp": 252, "spa": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Ghost"], + "ability": ["Illusion"] + } + ] + }, + "drifblim": { + "weight": 2, + "sets": [ + { + "species": "Drifblim", + "weight": 100, + "moves": [ + ["Minimize"], + ["Substitute"], + ["Baton Pass"], + ["Air Slash", "Shadow Ball", "Stockpile", "Strength Sap", "Will-O-Wisp"] + ], + "item": ["Kee Berry", "Sitrus Berry"], + "nature": "Timid", + "evs": {"def": 164, "spd": 92, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Dark", "Normal", "Water"], + "ability": ["Unburden"] + } + ] + }, + "hatterene": { + "weight": 2, + "sets": [ + { + "species": "Hatterene", + "weight": 30, + "moves": [ + ["Draining Kiss"], + ["Psyshock"], + ["Calm Mind"], + ["Baton Pass", "Mystical Fire", "Trick Room"] + ], + "item": ["Sitrus Berry", "Wiki Berry"], + "nature": "Bold", + "evs": {"hp": 244, "def": 252, "spa": 12}, + "ivs": {"atk": 0}, + "teraType": ["Fire", "Normal", "Water"], + "ability": ["Magic Bounce"] + }, + { + "species": "Hatterene", + "weight": 35, + "moves": [ + ["Dazzling Gleam", "Draining Kiss"], + ["Psyshock"], + ["Calm Mind", "Healing Wish"], + ["Trick Room"] + ], + "item": ["Sitrus Berry", "Wiki Berry"], + "nature": "Bold", + "evs": {"hp": 244, "def": 252, "spa": 12}, + "ivs": {"atk": 0}, + "teraType": ["Normal", "Water"], + "ability": ["Magic Bounce"] + }, + { + "species": "Hatterene", + "weight": 35, + "moves": [ + ["Dazzling Gleam"], + ["Psyshock"], + ["Calm Mind", "Healing Wish"], + ["Trick Room"] + ], + "item": ["Focus Sash"], + "nature": "Quiet", + "evs": {"hp": 252, "def": 4, "spa": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Normal", "Water"], + "ability": ["Magic Bounce"] + } + ] + }, + "orthworm": { + "weight": 2, + "sets": [ + { + "species": "Orthworm", + "weight": 60, + "moves": [ + ["Iron Defense"], + ["Body Press"], + ["Iron Head", "Stealth Rock"], + ["Shed Tail"] + ], + "item": ["Rocky Helmet", "Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Ghost", "Poison"], + "ability": ["Earth Eater"] + }, + { + "species": "Orthworm", + "weight": 40, + "moves": [ + ["Iron Defense"], + ["Body Press"], + ["Iron Head", "Stealth Rock"], + ["Rest"] + ], + "item": ["Chesto Berry", "Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fairy", "Ghost", "Poison"], + "ability": ["Earth Eater"] + } + ] + }, + "sandyshocks": { + "weight": 2, + "sets": [ + { + "species": "Sandy Shocks", + "weight": 10, + "moves": [ + ["Stealth Rock"], + ["Thunderbolt"], + ["Earth Power"], + ["Mirror Coat", "Thunder Wave"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Electric", "Ground"], + "ability": ["Protosynthesis"] + }, + { + "species": "Sandy Shocks", + "weight": 10, + "moves": [ + ["Mirror Coat", "Stealth Rock"], + ["Thunderbolt"], + ["Earth Power"], + ["Tera Blast"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Ice"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Sandy Shocks", + "weight": 60, + "moves": [ + ["Thunderbolt"], + ["Earth Power"], + ["Tera Blast"], + ["Flash Cannon", "Stealth Rock"] + ], + "item": ["Booster Energy"], + "nature": "Timid", + "evs": {"hp": 52, "spa": 204, "spe": 252}, + "teraType": ["Fairy", "Ice"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Sandy Shocks", + "weight": 10, + "moves": [ + ["Thunderbolt"], + ["Volt Switch"], + ["Earth Power"], + ["Tera Blast"] + ], + "item": ["Choice Scarf"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Fairy", "Ice"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Sandy Shocks", + "weight": 10, + "moves": [ + ["Mirror Coat", "Thunderbolt"], + ["Volt Switch"], + ["Earth Power"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Fairy", "Ice"], + "wantsTera": true, + "ability": ["Protosynthesis"] + } + ] + }, + "greninja": { + "weight": 2, + "sets": [ + { + "species": "Greninja", + "weight": 50, + "moves": [ + ["Ice Beam"], + ["Dark Pulse", "Grass Knot"], + ["Water Shuriken"], + ["Counter", "Toxic Spikes"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ghost", "Water"], + "ability": ["Protean"] + }, + { + "species": "Greninja", + "weight": 50, + "moves": [ + ["Ice Beam"], + ["Dark Pulse", "Grass Knot"], + ["Water Shuriken"], + ["Counter", "Toxic Spikes"] + ], + "item": ["Focus Sash"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Ghost", "Water"], + "ability": ["Torrent"] + } + ] + }, + "palafin": { + "weight": 2, + "sets": [ + { + "species": "Palafin", + "weight": 40, + "moves": [ + ["Jet Punch"], + ["Wave Crash"], + ["Flip Turn"], + ["Close Combat", "Drain Punch", "Ice Punch"] + ], + "item": ["Choice Band"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Water"], + "ability": ["Zero to Hero"] + }, + { + "species": "Palafin", + "weight": 30, + "moves": [ + ["Jet Punch"], + ["Wave Crash"], + ["Flip Turn"], + ["Close Combat", "Drain Punch"] + ], + "item": ["Assault Vest", "Choice Scarf", "Mystic Water"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fighting", "Water"], + "ability": ["Zero to Hero"] + }, + { + "species": "Palafin", + "weight": 20, + "moves": [ + ["Bulk Up"], + ["Jet Punch"], + ["Drain Punch"], + ["Substitute", "Taunt"] + ], + "item": ["Leftovers", "Punching Glove"], + "nature": "Jolly", + "evs": {"hp": 252, "def": 4, "spe": 252}, + "teraType": ["Fighting", "Water"], + "ability": ["Zero to Hero"] + }, + { + "species": "Palafin", + "weight": 10, + "moves": [ + ["Bulk Up"], + ["Jet Punch"], + ["Tera Blast"], + ["Substitute", "Taunt"] + ], + "item": ["Leftovers"], + "nature": "Jolly", + "evs": {"hp": 252, "def": 4, "spe": 252}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Zero to Hero"] + } + ] + }, + "regieleki": { + "weight": 2, + "sets": [ + { + "species": "Regieleki", + "weight": 25, + "moves": [ + ["Thunderbolt"], + ["Tera Blast"], + ["Extreme Speed"], + ["Thunder Wave", "Volt Switch", "Wild Charge"] + ], + "item": ["Focus Sash", "Life Orb"], + "nature": "Hasty", + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "teraType": ["Ice"], + "wantsTera": true, + "ability": ["Transistor"] + }, + { + "species": "Regieleki", + "weight": 20, + "moves": [ + ["Thunderbolt"], + ["Volt Switch"], + ["Extreme Speed"], + ["Wild Charge"] + ], + "item": ["Life Orb"], + "nature": "Hasty", + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "teraType": ["Electric"], + "ability": ["Transistor"] + }, + { + "species": "Regieleki", + "weight": 25, + "moves": [ + ["Thunderbolt"], + ["Tera Blast"], + ["Volt Switch"], + ["Extreme Speed", "Thunder Cage"] + ], + "item": ["Choice Specs"], + "nature": "Timid", + "evs": {"hp": 4, "spa": 252, "spe": 252}, + "teraType": ["Ice"], + "wantsTera": true, + "ability": ["Transistor"] + }, + { + "species": "Regieleki", + "weight": 15, + "moves": [ + ["Thunderbolt", "Thunder Cage"], + ["Reflect"], + ["Light Screen"], + ["Tera Blast"] + ], + "item": ["Light Clay"], + "nature": "Timid", + "evs": {"hp": 252, "spa": 4, "spe": 252}, + "teraType": ["Ice"], + "wantsTera": true, + "ability": ["Transistor"] + }, + { + "species": "Regieleki", + "weight": 15, + "moves": [ + ["Thunderbolt", "Thunder Cage"], + ["Reflect"], + ["Light Screen"], + ["Explosion", "Thunder Wave"] + ], + "item": ["Light Clay"], + "nature": "Timid", + "evs": {"hp": 252, "spa": 4, "spe": 252}, + "teraType": ["Ghost", "Normal"], + "ability": ["Transistor"] + } + ] + }, + "avalugg": { + "weight": 2, + "sets": [ + { + "species": "Avalugg", + "weight": 100, + "moves": [ + ["Iron Defense"], + ["Body Press"], + ["Recover"], + ["Avalanche", "Icicle Crash"] + ], + "item": ["Heavy-Duty Boots", "Rocky Helmet"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Fighting"], + "wantsTera": true, + "ability": ["Sturdy"] + } + ] + }, + "landorus": { + "weight": 2, + "sets": [ + { + "species": "Landorus", + "weight": 45, + "moves": [ + ["Earth Power"], + ["Sludge Bomb"], + ["Focus Blast", "Psychic"], + ["Nasty Plot", "Substitute"] + ], + "item": ["Life Orb"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Poison", "Steel", "Water"], + "wantsTera": true, + "ability": ["Sheer Force"] + }, + { + "species": "Landorus", + "weight": 55, + "moves": [ + ["Earth Power"], + ["Sludge Bomb"], + ["Focus Blast", "Nasty Plot", "Substitute"], + ["Tera Blast"] + ], + "item": ["Life Orb"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Flying", "Ice"], + "wantsTera": true, + "ability": ["Sheer Force"] + } + ] + }, + "quaquaval": { + "weight": 2, + "sets": [ + { + "species": "Quaquaval", + "weight": 65, + "moves": [ + ["Aqua Step"], + ["Close Combat"], + ["Aqua Jet"], + ["Encore", "Ice Spinner", "Swords Dance"] + ], + "item": ["Focus Sash", "Mystic Water"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Steel", "Water"], + "ability": ["Moxie"] + }, + { + "species": "Quaquaval", + "weight": 10, + "moves": [ + ["Aqua Step"], + ["Close Combat"], + ["Aqua Jet"], + ["Tera Blast"] + ], + "item": ["Focus Sash", "Mystic Water"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Electric", "Steel"], + "wantsTera": true, + "ability": ["Moxie"] + }, + { + "species": "Quaquaval", + "weight": 25, + "moves": [ + ["Aqua Step"], + ["Roost"], + ["Bulk Up"], + ["Encore", "Substitute", "Taunt"] + ], + "item": ["Covert Cloak", "Leftovers", "Rocky Helmet"], + "nature": "Jolly", + "evs": {"hp": 252, "spd": 156, "spe": 100}, + "teraType": ["Steel"], + "ability": ["Moxie"] + } + ] + }, + "articuno": { + "weight": 1, + "sets": [ + { + "species": "Articuno", + "weight": 100, + "moves": [ + ["Substitute"], + ["Freeze-Dry", "Protect"], + ["Roost"], + ["Sheer Cold"] + ], + "item": ["Leftovers"], + "nature": "Bold", + "evs": {"hp": 220, "def": 228, "spe": 60}, + "ivs": {"atk": 0}, + "teraType": ["Ghost", "Steel"], + "ability": ["Pressure"] + } + ] + }, + "haxorus": { + "weight": 1, + "sets": [ + { + "species": "Haxorus", + "weight": 65, + "moves": [ + ["Dragon Dance"], + ["Iron Head"], + ["Outrage"], + ["Earthquake"] + ], + "item": ["Focus Sash", "Life Orb", "Lum Berry"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Mold Breaker"] + }, + { + "species": "Haxorus", + "weight": 10, + "moves": [ + ["Dragon Dance"], + ["Tera Blast"], + ["Outrage"], + ["Earthquake"] + ], + "item": ["Focus Sash", "Life Orb", "Lum Berry"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Electric"], + "wantsTera": true, + "ability": ["Mold Breaker"] + }, + { + "species": "Haxorus", + "weight": 25, + "moves": [ + ["Scale Shot"], + ["Iron Head"], + ["Earthquake"], + ["Dragon Dance", "Swords Dance"] + ], + "item": ["Loaded Dice"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Steel"], + "wantsTera": true, + "ability": ["Mold Breaker"] + } + ] + }, + "lucario": { + "weight": 1, + "sets": [ + { + "species": "Lucario", + "weight": 80, + "moves": [ + ["Extreme Speed"], + ["Close Combat"], + ["Bullet Punch"], + ["Counter", "Earthquake", "Swords Dance"] + ], + "item": ["Focus Sash", "Life Orb"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Normal", "Steel"], + "ability": ["Inner Focus"] + }, + { + "species": "Lucario", + "weight": 20, + "moves": [ + ["Vacuum Wave"], + ["Aura Sphere"], + ["Steel Beam"], + ["Dark Pulse"] + ], + "item": ["Focus Sash", "Life Orb"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "teraType": ["Dark", "Fighting", "Steel"], + "ability": ["Inner Focus"] + } + ] + }, + "mesprit": { + "weight": 1, + "sets": [ + { + "species": "Mesprit", + "weight": 100, + "moves": [ + ["Dazzling Gleam"], + ["Trick Room"], + ["Healing Wish"], + ["Encore"] + ], + "item": ["Sitrus Berry"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "teraType": ["Fairy"], + "ability": ["Levitate"] + } + ] + }, + "moltresgalar": { + "weight": 1, + "sets": [ + { + "species": "Moltres-Galar", + "weight": 100, + "moves": [ + ["Fiery Wrath"], + ["Air Slash", "Hurricane"], + ["Nasty Plot"], + ["Agility"] + ], + "item": ["Sitrus Berry", "Weakness Policy"], + "nature": "Timid", + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Dark", "Flying", "Steel"], + "ability": ["Berserk"] + } + ] + }, + "sableye": { + "weight": 1, + "sets": [ + { + "species": "Sableye", + "weight": 30, + "moves": [ + ["Foul Play", "Knock Off"], + ["Encore"], + ["Disable", "Metal Burst"], + ["Thunder Wave", "Will-O-Wisp"] + ], + "item": ["Focus Sash"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Poison", "Steel"], + "ability": ["Prankster"] + }, + { + "species": "Sableye", + "weight": 30, + "moves": [ + ["Substitute"], + ["Encore"], + ["Disable"], + ["Night Shade"] + ], + "item": ["Leftovers"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Poison", "Steel"], + "ability": ["Prankster"] + }, + { + "species": "Sableye", + "weight": 20, + "moves": [ + ["Reflect"], + ["Light Screen"], + ["Encore", "Taunt", "Will-O-Wisp"], + ["Foul Play"] + ], + "item": ["Light Clay"], + "nature": "Bold", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Poison", "Steel"], + "ability": ["Prankster"] + }, + { + "species": "Sableye", + "weight": 20, + "moves": [ + ["Reflect"], + ["Light Screen"], + ["Encore", "Taunt", "Will-O-Wisp"], + ["Knock Off"] + ], + "item": ["Light Clay"], + "nature": "Impish", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "teraType": ["Poison", "Steel"], + "ability": ["Prankster"] + } + ] + }, + "uxie": { + "weight": 1, + "sets": [ + { + "species": "Uxie", + "weight": 100, + "moves": [ + ["U-turn"], + ["Yawn"], + ["Encore"], + ["Stealth Rock"] + ], + "item": ["Sitrus Berry"], + "nature": "Impish", + "evs": {"hp": 244, "def": 252, "spd": 12}, + "teraType": ["Fairy"], + "ability": ["Levitate"] + } + ] + }, + "brutebonnet": { + "weight": 1, + "sets": [ + { + "species": "Brute Bonnet", + "weight": 85, + "moves": [ + ["Spore"], + ["Trailblaze"], + ["Crunch", "Tera Blast"], + ["Substitute"] + ], + "item": ["Leftovers"], + "nature": "Jolly", + "evs": {"hp": 52, "atk": 204, "spe": 252}, + "teraType": ["Fire", "Water"], + "wantsTera": true, + "ability": ["Protosynthesis"] + }, + { + "species": "Brute Bonnet", + "weight": 15, + "moves": [ + ["Spore"], + ["Sucker Punch"], + ["Bullet Seed"], + ["Substitute", "Tera Blast"] + ], + "item": ["Loaded Dice"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Fire", "Water"], + "wantsTera": true, + "ability": ["Protosynthesis"] + } + ] + }, + "samurotthisui": { + "weight": 1, + "sets": [ + { + "species": "Samurott-Hisui", + "weight": 70, + "moves": [ + ["Ceaseless Edge"], + ["Aqua Cutter", "Razor Shell"], + ["Aqua Jet", "Sucker Punch"], + ["Encore", "Sacred Sword"] + ], + "item": ["Focus Sash"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Dark", "Ghost", "Water"], + "ability": ["Sharpness"] + }, + { + "species": "Samurott-Hisui", + "weight": 15, + "moves": [ + ["Ceaseless Edge"], + ["Aqua Cutter", "Razor Shell"], + ["Aqua Jet", "Sucker Punch"], + ["Sacred Sword"] + ], + "item": ["Assault Vest"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Water"], + "ability": ["Sharpness"] + }, + { + "species": "Samurott-Hisui", + "weight": 15, + "moves": [ + ["Ceaseless Edge"], + ["Aqua Cutter", "Razor Shell"], + ["Aqua Jet", "Sucker Punch"], + ["Tera Blast"] + ], + "item": ["Assault Vest"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Fairy"], + "ability": ["Sharpness"] + } + ] + }, + "slowkinggalar": { + "weight": 1, + "sets": [ + { + "species": "Slowking-Galar", + "weight": 60, + "moves": [ + ["Flamethrower"], + ["Grass Knot"], + ["Eerie Spell", "Psychic"], + ["Sludge Bomb"] + ], + "item": ["Assault Vest"], + "nature": "Modest", + "evs": {"hp": 252, "spa": 252, "spd": 4}, + "ivs": {"atk": 0}, + "teraType": ["Normal", "Poison"], + "ability": ["Regenerator"] + }, + { + "species": "Slowking-Galar", + "weight": 40, + "moves": [ + ["Eerie Spell", "Sludge Bomb"], + ["Toxic", "Yawn"], + ["Slack Off", "Trick Room"], + ["Chilly Reception"] + ], + "item": ["Black Sludge"], + "nature": "Relaxed", + "evs": {"hp": 244, "def": 252, "spd": 12}, + "ivs": {"atk": 0}, + "teraType": ["Poison"], + "ability": ["Regenerator"] + } + ] + }, + "basculegionf": { + "weight": 1, + "sets": [ + { + "species": "Basculegion-F", + "weight": 70, + "moves": [ + ["Shadow Ball"], + ["Aqua Jet"], + ["Hydro Pump", "Surf"], + ["Endeavor"] + ], + "gender": "F", + "item": ["Focus Sash"], + "nature": "Rash", + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "teraType": ["Water"], + "ability": ["Adaptability"] + }, + { + "species": "Basculegion-F", + "weight": 30, + "moves": [ + ["Shadow Ball"], + ["Aqua Jet"], + ["Hydro Pump", "Surf"], + ["Endeavor", "Tera Blast"] + ], + "gender": "F", + "item": ["Focus Sash"], + "nature": "Rash", + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Adaptability"] + } + ] + }, + "irontreads": { + "weight": 1, + "sets": [ + { + "species": "Iron Treads", + "weight": 15, + "moves": [ + ["Earthquake"], + ["Heavy Slam", "Iron Head"], + ["Ice Spinner", "Rapid Spin", "Volt Switch"], + ["Knock Off"] + ], + "item": ["Assault Vest"], + "nature": "Jolly", + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "teraType": ["Fairy", "Flying", "Grass", "Water"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Treads", + "weight": 60, + "moves": [ + ["Earthquake", "Endeavor"], + ["Iron Head"], + ["Rapid Spin", "Stealth Rock", "Substitute"], + ["Ice Spinner", "Knock Off"] + ], + "item": ["Booster Energy"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fairy", "Grass", "Ground", "Water"], + "ability": ["Quark Drive"] + }, + { + "species": "Iron Treads", + "weight": 25, + "moves": [ + ["Earthquake", "Endeavor"], + ["Iron Head"], + ["Rapid Spin", "Stealth Rock", "Substitute"], + ["Tera Blast"] + ], + "item": ["Booster Energy"], + "nature": "Jolly", + "evs": {"hp": 4, "atk": 252, "spe": 252}, + "teraType": ["Fairy", "Grass", "Water"], + "wantsTera": true, + "ability": ["Quark Drive"] + } + ] + }, + "overqwil": { + "weight": 1, + "sets": [ + { + "species": "Overqwil", + "weight": 60, + "moves": [ + ["Crunch"], + ["Barb Barrage", "Toxic"], + ["Minimize"], + ["Substitute"] + ], + "item": ["Leftovers"], + "nature": "Jolly", + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "teraType": ["Dark", "Water"], + "ability": ["Poison Point"] + }, + { + "species": "Overqwil", + "weight": 40, + "moves": [ + ["Crunch"], + ["Barb Barrage", "Toxic"], + ["Minimize"], + ["Substitute"] + ], + "item": ["Black Sludge"], + "nature": "Jolly", + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "teraType": ["Poison"], + "ability": ["Poison Point"] + } + ] + }, + "spectrier": { + "weight": 1, + "sets": [ + { + "species": "Spectrier", + "weight": 100, + "moves": [ + ["Shadow Ball"], + ["Draining Kiss"], + ["Will-O-Wisp"], + ["Calm Mind"] + ], + "item": ["Leftovers", "Sitrus Berry"], + "nature": "Timid", + "evs": {"hp": 252, "spa": 4, "spe": 252}, + "ivs": {"atk": 0}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Grim Neigh"] + } + ] + }, + "maushold": { + "weight": 1, + "sets": [ + { + "species": "Maushold", + "weight": 100, + "moves": [ + ["Population Bomb"], + ["Bite", "Mud Shot"], + ["Encore"], + ["Thunder Wave", "Tidy Up"] + ], + "item": ["King's Rock", "Wide Lens"], + "nature": "Jolly", + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "teraType": ["Ghost", "Normal", "Poison"], + "ability": ["Technician"] + } + ] + }, + "polteageist": { + "weight": 1, + "sets": [ + { + "species": "Polteageist", + "weight": 50, + "moves": [ + ["Shell Smash"], + ["Strength Sap"], + ["Stored Power"], + ["Tera Blast"] + ], + "item": ["Focus Sash"], + "nature": "Bold", + "evs": {"hp": 108, "def": 196, "spe": 204}, + "ivs": {"atk": 0}, + "teraType": ["Fighting", "Water"], + "wantsTera": true, + "ability": ["Weak Armor"] + }, + { + "species": "Polteageist", + "weight": 50, + "moves": [ + ["Shell Smash"], + ["Strength Sap"], + ["Stored Power"], + ["Tera Blast"] + ], + "item": ["Focus Sash", "White Herb"], + "nature": "Bold", + "evs": {"hp": 108, "def": 196, "spe": 204}, + "ivs": {"atk": 0}, + "teraType": ["Fighting", "Water"], + "wantsTera": true, + "ability": ["Cursed Body"] + } + ] + }, + "taurospaldeaaqua": { + "weight": 1, + "sets": [ + { + "species": "Tauros-Paldea-Aqua", + "weight": 100, + "moves": [ + ["Wave Crash"], + ["Close Combat"], + ["Aqua Jet", "Trailblaze"], + ["Endeavor"] + ], + "item": ["Rocky Helmet"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 4, "def": 108, "spd": 4, "spe": 140}, + "teraType": ["Steel", "Water"], + "ability": ["Intimidate"] + } + ] + }, + "forretress": { + "weight": 1, + "sets": [ + { + "species": "Forretress", + "weight": 50, + "moves": [ + ["Body Press"], + ["Volt Switch"], + ["Stealth Rock"], + ["Toxic Spikes"] + ], + "item": ["Rocky Helmet"], + "nature": "Relaxed", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0, "spe": 0}, + "teraType": ["Fighting", "Water"], + "ability": ["Sturdy"] + }, + { + "species": "Forretress", + "weight": 50, + "moves": [ + ["Body Press"], + ["Volt Switch"], + ["Stealth Rock"], + ["Gyro Ball"] + ], + "item": ["Rocky Helmet"], + "nature": "Relaxed", + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"spe": 0}, + "teraType": ["Fighting", "Water"], + "ability": ["Sturdy"] + } + ] + }, + "glastrier": { + "weight": 1, + "sets": [ + { + "species": "Glastrier", + "weight": 80, + "moves": [ + ["Icicle Crash"], + ["Heavy Slam"], + ["Tera Blast"], + ["Close Combat", "High Horsepower"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Electric", "Water"], + "wantsTera": true, + "ability": ["Chilling Neigh"] + }, + { + "species": "Glastrier", + "weight": 20, + "moves": [ + ["Icicle Crash"], + ["Heavy Slam"], + ["Close Combat"], + ["High Horsepower"] + ], + "item": ["Assault Vest"], + "nature": "Adamant", + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "teraType": ["Ghost"], + "wantsTera": true, + "ability": ["Chilling Neigh"] + } + ] + }, + "gothitelle": { + "weight": 1, + "sets": [ + { + "species": "Gothitelle", + "weight": 65, + "moves": [ + ["Trick"], + ["Calm Mind"], + ["Rest"], + ["Stored Power", "Tera Blast"] + ], + "item": ["Choice Scarf"], + "nature": "Bold", + "evs": {"hp": 236, "def": 196, "spa": 4, "spd": 4, "spe": 68}, + "ivs": {"atk": 0}, + "teraType": ["Fairy", "Flying"], + "ability": ["Shadow Tag"] + }, + { + "species": "Gothitelle", + "weight": 35, + "moves": [ + ["Charm"], + ["Calm Mind"], + ["Rest"], + ["Stored Power", "Tera Blast"] + ], + "item": ["Covert Cloak", "Leftovers"], + "nature": "Bold", + "evs": {"hp": 236, "def": 196, "spa": 4, "spd": 4, "spe": 68}, + "ivs": {"atk": 0}, + "teraType": ["Fairy"], + "wantsTera": true, + "ability": ["Shadow Tag"] + } + ] + } +} diff --git a/data/random-battles/gen9/doubles-sets.json b/data/random-battles/gen9/doubles-sets.json new file mode 100644 index 000000000000..065ae839fc4b --- /dev/null +++ b/data/random-battles/gen9/doubles-sets.json @@ -0,0 +1,6950 @@ +{ + "venusaur": { + "level": 86, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Earth Power", "Giga Drain", "Knock Off", "Leaf Storm", "Protect", "Sludge Bomb"], + "abilities": ["Chlorophyll", "Overgrow"], + "teraTypes": ["Dark", "Water"] + } + ] + }, + "charizard": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Heat Wave", "Hurricane", "Protect", "Scorching Sands", "Will-O-Wisp"], + "abilities": ["Blaze", "Solar Power"], + "teraTypes": ["Dragon", "Fire", "Ground"] + } + ] + }, + "blastoise": { + "level": 83, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fake Out", "Flip Turn", "Icy Wind", "Life Dew", "Wave Crash", "Yawn"], + "abilities": ["Torrent"], + "teraTypes": ["Dragon", "Grass"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dragon Pulse", "Muddy Water", "Protect", "Shell Smash"], + "abilities": ["Torrent"], + "teraTypes": ["Dragon", "Water"] + } + ] + }, + "arbok": { + "level": 88, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Coil", "Gunk Shot", "Knock Off", "Protect", "Stomping Tantrum"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Ground"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Dragon Tail", "Glare", "Gunk Shot", "Knock Off", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark"] + } + ] + }, + "pikachu": { + "level": 94, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Fake Out", "Grass Knot", "Knock Off", "Protect", "Volt Tackle"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Electric", "Grass"] + } + ] + }, + "raichu": { + "level": 87, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Fake Out", "Grass Knot", "Knock Off", "Nuzzle", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Electric", "Grass"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Protect", "Tera Blast", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Ice"] + } + ] + }, + "raichualola": { + "level": 89, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Alluring Voice", "Focus Blast", "Grass Knot", "Psychic", "Psyshock", "Thunderbolt", "Volt Switch"], + "abilities": ["Surge Surfer"], + "teraTypes": ["Electric", "Fairy", "Fighting", "Grass"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Nasty Plot", "Protect", "Psychic", "Psyshock", "Thunderbolt"], + "abilities": ["Surge Surfer"], + "teraTypes": ["Dark", "Electric", "Flying"] + } + ] + }, + "sandslash": { + "level": 92, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Gunk Shot", "High Horsepower", "Knock Off", "Protect", "Rapid Spin", "Stone Edge", "Swords Dance"], + "abilities": ["Sand Rush"], + "teraTypes": ["Poison", "Rock"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["High Horsepower", "Knock Off", "Rapid Spin", "Rock Slide", "Super Fang"], + "abilities": ["Sand Rush"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "sandslashalola": { + "level": 90, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Drill Run", "Ice Shard", "Iron Head", "Knock Off", "Triple Axel"], + "abilities": ["Slush Rush"], + "teraTypes": ["Flying", "Water"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Drill Run", "Ice Shard", "Iron Head", "Triple Axel"], + "abilities": ["Slush Rush"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "clefairy": { + "level": 97, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Follow Me", "Heal Pulse", "Helping Hand", "Life Dew", "Moonblast"], + "abilities": ["Friend Guard"], + "teraTypes": ["Fire", "Steel", "Water"] + } + ] + }, + "clefable": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Heal Pulse", "Icy Wind", "Knock Off", "Life Dew", "Moonblast", "Thunder Wave"], + "abilities": ["Magic Guard", "Unaware"], + "teraTypes": ["Fire", "Steel", "Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Encore", "Fire Blast", "Follow Me", "Heal Pulse", "Helping Hand", "Life Dew", "Moonblast"], + "abilities": ["Unaware"], + "teraTypes": ["Fire", "Steel", "Water"] + } + ] + }, + "ninetales": { + "level": 80, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Flamethrower", "Heat Wave", "Overheat", "Protect", "Scorching Sands", "Solar Beam"], + "abilities": ["Drought"], + "teraTypes": ["Fire", "Grass"] + } + ] + }, + "ninetalesalola": { + "level": 75, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Aurora Veil", "Blizzard", "Moonblast", "Protect"], + "abilities": ["Snow Warning"], + "teraTypes": ["Ice", "Steel", "Water"] + } + ] + }, + "wigglytuff": { + "level": 91, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Dazzling Gleam", "Disable", "Encore", "Fire Blast", "Heal Pulse", "Helping Hand", "Icy Wind", "Thunder Wave"], + "abilities": ["Competitive"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "vileplume": { + "level": 89, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Pollen Puff", "Sludge Bomb", "Strength Sap", "Stun Spore"], + "abilities": ["Effect Spore"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "venomoth": { + "level": 90, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Bug Buzz", "Protect", "Quiver Dance", "Sleep Powder", "Sludge Bomb"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug", "Steel", "Water"] + } + ] + }, + "dugtrio": { + "level": 90, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Helping Hand", "Protect", "Rock Slide", "Stomping Tantrum", "Sucker Punch"], + "abilities": ["Arena Trap"], + "teraTypes": ["Fire", "Ghost", "Ground"] + } + ] + }, + "dugtrioalola": { + "level": 89, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Iron Head", "Protect", "Rock Slide", "Stomping Tantrum", "Sucker Punch"], + "abilities": ["Sand Force", "Tangling Hair"], + "teraTypes": ["Fire", "Steel", "Water"] + } + ] + }, + "persian": { + "level": 93, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Double-Edge", "Fake Out", "Helping Hand", "Icy Wind", "Knock Off", "Taunt", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "persianalola": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Fake Out", "Foul Play", "Helping Hand", "Icy Wind", "Knock Off", "Parting Shot", "Snarl", "Taunt", "Thunder Wave"], + "abilities": ["Fur Coat"], + "teraTypes": ["Poison"] + } + ] + }, + "golduck": { + "level": 91, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Encore", "Grass Knot", "Hydro Pump", "Ice Beam", "Icy Wind", "Protect", "Psyshock"], + "abilities": ["Cloud Nine", "Swift Swim"], + "teraTypes": ["Grass", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Grass Knot", "Hydro Pump", "Ice Beam", "Protect", "Psyshock"], + "abilities": ["Cloud Nine", "Swift Swim"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "annihilape": { + "level": 77, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Bulk Up", "Drain Punch", "Protect", "Rage Fist"], + "abilities": ["Defiant"], + "teraTypes": ["Fire", "Steel", "Water"] + }, + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Final Gambit", "Rage Fist", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Fighting"] + } + ] + }, + "arcanine": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Howl", "Morning Sun", "Snarl", "Will-O-Wisp"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Normal", "Steel", "Water"] + } + ] + }, + "arcaninehisui": { + "level": 79, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Extreme Speed", "Flare Blitz", "Rock Slide", "Stone Edge"], + "abilities": ["Intimidate"], + "teraTypes": ["Normal", "Rock"] + }, + { + "role": "Bulky Protect", + "movepool": ["Flare Blitz", "Morning Sun", "Protect", "Rock Slide", "Will-O-Wisp"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy", "Grass"] + } + ] + }, + "poliwrath": { + "level": 90, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Circle Throw", "Close Combat", "Coaching", "Icy Wind", "Knock Off", "Liquidation"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dragon", "Fire", "Ground", "Steel"] + } + ] + }, + "victreebel": { + "level": 90, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Knock Off", "Power Whip", "Protect", "Sludge Bomb", "Sucker Punch"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Dark", "Grass"] + } + ] + }, + "tentacruel": { + "level": 85, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Acid Spray", "Hydro Pump", "Icy Wind", "Knock Off", "Muddy Water", "Sludge Bomb", "Toxic Spikes"], + "abilities": ["Clear Body"], + "teraTypes": ["Grass"] + } + ] + }, + "golem": { + "level": 87, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Fire Punch", "High Horsepower", "Rock Slide", "Stone Edge"], + "abilities": ["Sturdy"], + "teraTypes": ["Grass"] + } + ] + }, + "golemalola": { + "level": 88, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Double-Edge", "High Horsepower", "Protect", "Rock Slide", "Thunder Wave"], + "abilities": ["Galvanize"], + "teraTypes": ["Grass", "Ground"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Double-Edge", "Explosion", "High Horsepower", "Rock Slide"], + "abilities": ["Galvanize"], + "teraTypes": ["Grass", "Ground"] + } + ] + }, + "slowbro": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Fire Blast", "Heal Pulse", "Helping Hand", "Psyshock", "Scald", "Trick Room"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Fire Blast", "Hydro Pump", "Ice Beam", "Psyshock", "Scald", "Trick Room"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Fire", "Water"] + } + ] + }, + "slowbrogalar": { + "level": 86, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Fire Blast", "Psychic", "Shell Side Arm", "Trick Room"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Fire", "Poison"] + } + ] + }, + "dodrio": { + "level": 85, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Brave Bird", "Double-Edge", "Drill Run", "Knock Off", "Quick Attack"], + "abilities": ["Early Bird"], + "teraTypes": ["Ground", "Normal"] + }, + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Drill Run", "Protect", "Quick Attack", "Swords Dance"], + "abilities": ["Early Bird"], + "teraTypes": ["Ground"] + } + ] + }, + "dewgong": { + "level": 91, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Fake Out", "Hydro Pump", "Icy Wind"], + "abilities": ["Thick Fat"], + "teraTypes": ["Grass"] + } + ] + }, + "muk": { + "level": 86, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Drain Punch", "Gunk Shot", "Haze", "Helping Hand", "Ice Punch", "Knock Off", "Poison Gas", "Poison Jab", "Shadow Sneak"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark"] + } + ] + }, + "mukalola": { + "level": 82, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Drain Punch", "Gunk Shot", "Helping Hand", "Ice Punch", "Knock Off", "Poison Jab", "Protect", "Snarl"], + "abilities": ["Poison Touch"], + "teraTypes": ["Flying"] + } + ] + }, + "cloyster": { + "level": 87, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Hydro Pump", "Icicle Spear", "Protect", "Rock Blast", "Shell Smash"], + "abilities": ["Skill Link"], + "teraTypes": ["Fire", "Ice", "Rock", "Water"] + } + ] + }, + "gengar": { + "level": 84, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Encore", "Protect", "Shadow Ball", "Sludge Bomb"], + "abilities": ["Cursed Body"], + "teraTypes": ["Ghost"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Focus Blast", "Protect", "Shadow Ball", "Sludge Bomb", "Trick"], + "abilities": ["Cursed Body"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "hypno": { + "level": 95, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Helping Hand", "Knock Off", "Low Sweep", "Poison Gas", "Psychic"], + "abilities": ["Inner Focus"], + "teraTypes": ["Dark"] + } + ] + }, + "electrode": { + "level": 89, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Electroweb", "Foul Play", "Helping Hand", "Taunt", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Soundproof", "Static"], + "teraTypes": ["Flying"] + }, + { + "role": "Tera Blast user", + "movepool": ["Protect", "Tera Blast", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Soundproof", "Static"], + "teraTypes": ["Ice"] + } + ] + }, + "electrodehisui": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Electroweb", "Energy Ball", "Leaf Storm", "Taunt", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Soundproof", "Static"], + "teraTypes": ["Steel"] + }, + { + "role": "Offensive Protect", + "movepool": ["Foul Play", "Leaf Storm", "Protect", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Soundproof", "Static"], + "teraTypes": ["Dark", "Electric", "Grass", "Steel"] + } + ] + }, + "exeggutor": { + "level": 87, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Energy Ball", "Leaf Storm", "Protect", "Psychic", "Trick Room"], + "abilities": ["Harvest"], + "teraTypes": ["Fire", "Poison", "Steel"] + } + ] + }, + "exeggutoralola": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Flamethrower", "Protect", "Trick Room", "Wood Hammer"], + "abilities": ["Harvest"], + "teraTypes": ["Fire"] + } + ] + }, + "hitmonlee": { + "level": 86, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Fake Out", "Knock Off", "Poison Jab", "Protect"], + "abilities": ["Unburden"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "hitmonchan": { + "level": 90, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Coaching", "Fake Out", "Knock Off", "Poison Jab"], + "abilities": ["Inner Focus"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "weezing": { + "level": 90, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Clear Smog", "Fire Blast", "Gunk Shot", "Poison Gas", "Protect", "Taunt", "Will-O-Wisp"], + "abilities": ["Levitate", "Neutralizing Gas"], + "teraTypes": ["Dark"] + } + ] + }, + "weezinggalar": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fire Blast", "Gunk Shot", "Haze", "Poison Gas", "Protect", "Strange Steam", "Taunt", "Will-O-Wisp"], + "abilities": ["Levitate", "Neutralizing Gas"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "rhydon": { + "level": 86, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Helping Hand", "High Horsepower", "Protect", "Rock Slide", "Stealth Rock", "Stone Edge"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Flying", "Grass", "Water"] + } + ] + }, + "scyther": { + "level": 80, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Bug Bite", "Dual Wingbeat", "Protect", "Tailwind"], + "abilities": ["Technician"], + "teraTypes": ["Flying", "Steel"] + } + ] + }, + "electabuzz": { + "level": 84, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Electroweb", "Follow Me", "Knock Off", "Protect", "Thunderbolt"], + "abilities": ["Static"], + "teraTypes": ["Flying", "Grass"] + } + ] + }, + "magmar": { + "level": 84, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Follow Me", "Heat Wave", "Knock Off", "Protect", "Will-O-Wisp"], + "abilities": ["Flame Body"], + "teraTypes": ["Grass"] + } + ] + }, + "tauros": { + "level": 82, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Double-Edge", "High Horsepower", "Lash Out", "Stone Edge", "Throat Chop"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Normal"] + } + ] + }, + "taurospaldeacombat": { + "level": 82, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Bulk Up", "Protect", "Raging Bull", "Stone Edge"], + "abilities": ["Intimidate"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "High Horsepower", "Iron Head", "Rock Slide", "Stone Edge", "Throat Chop"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Fighting", "Steel"] + } + ] + }, + "taurospaldeablaze": { + "level": 79, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Bulk Up", "Close Combat", "Protect", "Raging Bull", "Will-O-Wisp"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Fire", "Water"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Flare Blitz", "Rock Slide", "Stone Edge", "Wild Charge"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Fire", "Water"] + } + ] + }, + "taurospaldeaaqua": { + "level": 80, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Aqua Jet", "Bulk Up", "Close Combat", "Liquidation", "Protect"], + "abilities": ["Intimidate"], + "teraTypes": ["Fire", "Steel", "Water"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Aqua Jet", "Close Combat", "Wave Crash", "Wild Charge", "Zen Headbutt"], + "abilities": ["Intimidate"], + "teraTypes": ["Fire", "Steel", "Water"] + } + ] + }, + "gyarados": { + "level": 81, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Protect", "Temper Flare", "Waterfall"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Protect", "Tera Blast", "Waterfall"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying"] + }, + { + "role": "Doubles Support", + "movepool": ["Helping Hand", "Icy Wind", "Taunt", "Thunder Wave", "Waterfall"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground", "Water"] + } + ] + }, + "lapras": { + "level": 83, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Freeze-Dry", "Icy Wind", "Life Dew", "Muddy Water", "Protect"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ground"] + } + ] + }, + "ditto": { + "level": 97, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Transform"], + "abilities": ["Imposter"], + "teraTypes": ["Bug", "Dark", "Dragon", "Electric", "Fairy", "Fighting", "Fire", "Flying", "Ghost", "Grass", "Ground", "Ice", "Normal", "Poison", "Psychic", "Rock", "Steel", "Water"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Transform"], + "abilities": ["Imposter"], + "teraTypes": ["Bug", "Dark", "Dragon", "Electric", "Fairy", "Fighting", "Fire", "Flying", "Ghost", "Grass", "Ground", "Ice", "Normal", "Poison", "Psychic", "Rock", "Steel", "Water"] + } + ] + }, + "vaporeon": { + "level": 84, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Helping Hand", "Icy Wind", "Muddy Water", "Protect", "Scald", "Wish", "Yawn"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dragon", "Fire", "Ground"] + } + ] + }, + "jolteon": { + "level": 84, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Alluring Voice", "Helping Hand", "Protect", "Thunder Wave", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Fairy"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Protect", "Tera Blast", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Ice"] + } + ] + }, + "flareon": { + "level": 89, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Facade", "Flare Blitz", "Protect", "Quick Attack"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "snorlax": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Crunch", "Double-Edge", "Hammer Arm", "Heat Crash", "High Horsepower"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fire", "Ghost", "Ground"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Slam", "Encore", "Helping Hand", "High Horsepower", "Icy Wind", "Recycle", "Yawn"], + "abilities": ["Gluttony"], + "teraTypes": ["Ghost", "Ground"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Slam", "Crunch", "Curse", "High Horsepower", "Protect", "Recycle"], + "abilities": ["Gluttony"], + "teraTypes": ["Ground", "Poison"] + } + ] + }, + "articuno": { + "level": 83, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Brave Bird", "Freeze-Dry", "Ice Beam", "Icy Wind", "Protect", "Roost", "Tailwind"], + "abilities": ["Pressure"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "articunogalar": { + "level": 82, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Freezing Glare", "Hurricane", "Protect", "Recover", "Tailwind"], + "abilities": ["Competitive"], + "teraTypes": ["Flying", "Ground", "Steel"] + } + ] + }, + "zapdos": { + "level": 77, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Hurricane", "Protect", "Roost", "Tailwind", "Thunderbolt"], + "abilities": ["Static"], + "teraTypes": ["Electric", "Steel"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Heat Wave", "Hurricane", "Protect", "Tailwind", "Thunderbolt"], + "abilities": ["Static"], + "teraTypes": ["Electric", "Fire"] + } + ] + }, + "zapdosgalar": { + "level": 77, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Brave Bird", "Close Combat", "Knock Off", "Protect", "Tailwind", "Thunderous Kick", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Fighting"] + } + ] + }, + "moltres": { + "level": 79, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Brave Bird", "Fire Blast", "Heat Wave", "Protect", "Scorching Sands", "Tailwind"], + "abilities": ["Flame Body"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "moltresgalar": { + "level": 75, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Fiery Wrath", "Hurricane", "Nasty Plot", "Protect", "Tailwind"], + "abilities": ["Berserk"], + "teraTypes": ["Dark"] + } + ] + }, + "dragonite": { + "level": 82, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Dragon Claw", "Extreme Speed", "Fire Punch", "Iron Head", "Low Kick", "Stomping Tantrum"], + "abilities": ["Inner Focus"], + "teraTypes": ["Normal"] + }, + { + "role": "Tera Blast user", + "movepool": ["Draco Meteor", "Fire Punch", "Low Kick", "Tailwind", "Tera Blast"], + "abilities": ["Inner Focus"], + "teraTypes": ["Flying"] + }, + { + "role": "Bulky Protect", + "movepool": ["Fire Blast", "Protect", "Scale Shot", "Tailwind"], + "abilities": ["Inner Focus"], + "teraTypes": ["Fire"] + } + ] + }, + "mewtwo": { + "level": 73, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Fire Blast", "Protect", "Psystrike"], + "abilities": ["Unnerve"], + "teraTypes": ["Dark", "Fighting", "Fire", "Psychic"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Aura Sphere", "Nasty Plot", "Psystrike", "Recover"], + "abilities": ["Unnerve"], + "teraTypes": ["Fighting"] + } + ] + }, + "mew": { + "level": 84, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Coaching", "Encore", "Pollen Puff", "Tailwind", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Synchronize"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Baton Pass", "Fire Blast", "Nasty Plot", "Pollen Puff", "Psychic"], + "abilities": ["Synchronize"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Coaching", "Imprison", "Pollen Puff", "Transform"], + "abilities": ["Synchronize"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "meganium": { + "level": 91, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Encore", "Energy Ball", "Heal Pulse", "Knock Off", "Leech Seed"], + "abilities": ["Overgrow"], + "teraTypes": ["Poison", "Steel", "Water"] + } + ] + }, + "typhlosion": { + "level": 79, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Eruption", "Fire Blast", "Heat Wave", "Scorching Sands"], + "abilities": ["Flash Fire"], + "teraTypes": ["Fire"] + } + ] + }, + "typhlosionhisui": { + "level": 78, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Eruption", "Focus Blast", "Heat Wave", "Shadow Ball"], + "abilities": ["Blaze", "Frisk"], + "teraTypes": ["Fire"] + } + ] + }, + "feraligatr": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dragon Dance", "Ice Punch", "Liquidation", "Protect"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fire", "Water"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Aqua Jet", "Ice Punch", "Liquidation", "Swords Dance"], + "abilities": ["Sheer Force"], + "teraTypes": ["Dragon", "Water"] + } + ] + }, + "furret": { + "level": 98, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Double-Edge", "Knock Off", "Protect", "Tidy Up"], + "abilities": ["Frisk"], + "teraTypes": ["Normal"] + }, + { + "role": "Doubles Support", + "movepool": ["Body Slam", "Follow Me", "Helping Hand", "Knock Off", "Protect", "U-turn"], + "abilities": ["Frisk"], + "teraTypes": ["Ghost"] + } + ] + }, + "noctowl": { + "level": 91, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Hurricane", "Hyper Voice", "Protect", "Tailwind"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Flying"] + } + ] + }, + "ariados": { + "level": 100, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Megahorn", "Protect", "Rage Powder", "Sticky Web"], + "abilities": ["Insomnia", "Swarm"], + "teraTypes": ["Dark", "Steel", "Water"] + } + ] + }, + "lanturn": { + "level": 87, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Electroweb", "Protect", "Scald", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Electroweb", "Ice Beam", "Scald", "Volt Switch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + } + ] + }, + "ampharos": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Dragon Tail", "Electroweb", "Focus Blast", "Helping Hand", "Thunder Wave", "Thunderbolt"], + "abilities": ["Static"], + "teraTypes": ["Flying"] + } + ] + }, + "bellossom": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Baton Pass", "Giga Drain", "Protect", "Quiver Dance", "Strength Sap"], + "abilities": ["Healer"], + "teraTypes": ["Poison", "Water"] + } + ] + }, + "azumarill": { + "level": 82, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Aqua Jet", "Ice Spinner", "Knock Off", "Liquidation", "Play Rough", "Superpower"], + "abilities": ["Huge Power"], + "teraTypes": ["Water"] + } + ] + }, + "sudowoodo": { + "level": 94, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Head Smash", "High Horsepower", "Protect", "Sucker Punch", "Wood Hammer"], + "abilities": ["Rock Head"], + "teraTypes": ["Grass"] + } + ] + }, + "politoed": { + "level": 82, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Hydro Pump", "Ice Beam", "Muddy Water", "Weather Ball"], + "abilities": ["Drizzle"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Encore", "Helping Hand", "Hypnosis", "Icy Wind", "Muddy Water"], + "abilities": ["Drizzle"], + "teraTypes": ["Grass", "Steel"] + } + ] + }, + "jumpluff": { + "level": 93, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Acrobatics", "Encore", "Pollen Puff", "Rage Powder", "Sleep Powder", "Strength Sap", "Tailwind"], + "abilities": ["Infiltrator"], + "teraTypes": ["Steel"] + } + ] + }, + "sunflora": { + "level": 100, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dazzling Gleam", "Earth Power", "Leaf Storm", "Protect", "Sludge Bomb"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fairy", "Ground", "Poison"] + } + ] + }, + "quagsire": { + "level": 91, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Helping Hand", "High Horsepower", "Icy Wind", "Liquidation", "Recover", "Yawn"], + "abilities": ["Unaware"], + "teraTypes": ["Fire", "Poison", "Steel"] + } + ] + }, + "clodsire": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Gunk Shot", "Helping Hand", "High Horsepower", "Recover", "Toxic Spikes"], + "abilities": ["Unaware", "Water Absorb"], + "teraTypes": ["Flying", "Ground", "Steel"] + } + ] + }, + "espeon": { + "level": 84, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Alluring Voice", "Dazzling Gleam", "Protect", "Psychic", "Shadow Ball"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Fairy"] + } + ] + }, + "umbreon": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Foul Play", "Helping Hand", "Moonlight", "Snarl", "Thunder Wave"], + "abilities": ["Synchronize"], + "teraTypes": ["Poison"] + } + ] + }, + "murkrow": { + "level": 89, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Brave Bird", "Haze", "Protect", "Tailwind", "Taunt"], + "abilities": ["Prankster"], + "teraTypes": ["Ghost", "Steel"] + } + ] + }, + "slowking": { + "level": 89, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Fire Blast", "Heal Pulse", "Helping Hand", "Psyshock", "Scald", "Trick Room"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Grass", "Steel"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Fire Blast", "Hydro Pump", "Ice Beam", "Psyshock", "Scald", "Trick Room"], + "abilities": ["Regenerator"], + "teraTypes": ["Fire", "Water"] + } + ] + }, + "slowkinggalar": { + "level": 85, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Fire Blast", "Protect", "Psyshock", "Sludge Bomb", "Trick Room"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "forretress": { + "level": 90, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Body Press", "Explosion", "Iron Head", "Lunge"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting", "Fire"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Rest", "Thunder Wave"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting", "Fire"] + } + ] + }, + "granbull": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Play Rough", "Stomping Tantrum", "Super Fang"], + "abilities": ["Intimidate"], + "teraTypes": ["Steel"] + } + ] + }, + "qwilfish": { + "level": 87, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Flip Turn", "Gunk Shot", "Icy Wind", "Taunt", "Thunder Wave", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Grass"] + } + ] + }, + "qwilfishhisui": { + "level": 83, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Crunch", "Gunk Shot", "Icy Wind", "Throat Chop", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying"] + } + ] + }, + "overqwil": { + "level": 82, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Crunch", "Gunk Shot", "Liquidation", "Protect", "Swords Dance", "Throat Chop"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Flying", "Poison", "Water"] + } + ] + }, + "scizor": { + "level": 80, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Bullet Punch", "Close Combat", "Tailwind", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Fire", "Water"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Bug Bite", "Bullet Punch", "Close Combat", "Protect", "Swords Dance"], + "abilities": ["Technician"], + "teraTypes": ["Steel"] + }, + { + "role": "Choice Item user", + "movepool": ["Bug Bite", "Bullet Punch", "Close Combat", "Knock Off"], + "abilities": ["Technician"], + "teraTypes": ["Fighting", "Steel", "Water"] + } + ] + }, + "heracross": { + "level": 82, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Facade", "Knock Off", "Protect"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + }, + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Knock Off", "Megahorn", "Rock Slide"], + "abilities": ["Moxie"], + "teraTypes": ["Bug", "Fighting", "Rock"] + } + ] + }, + "magcargo": { + "level": 93, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Heat Wave", "Power Gem", "Protect", "Shell Smash"], + "abilities": ["Weak Armor"], + "teraTypes": ["Fairy", "Fire", "Grass"] + } + ] + }, + "delibird": { + "level": 100, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Brave Bird", "Fake Out", "Helping Hand", "Icy Wind", "Tailwind"], + "abilities": ["Insomnia", "Vital Spirit"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Brave Bird", "Drill Run", "Foul Play", "Ice Shard", "Ice Spinner"], + "abilities": ["Hustle"], + "teraTypes": ["Dark", "Flying", "Ground", "Ice"] + } + ] + }, + "skarmory": { + "level": 85, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Brave Bird", "Iron Defense", "Protect", "Roost", "Tailwind"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting"] + } + ] + }, + "houndoom": { + "level": 86, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Dark Pulse", "Heat Wave", "Nasty Plot", "Protect", "Sucker Punch"], + "abilities": ["Flash Fire", "Unnerve"], + "teraTypes": ["Dark", "Fire", "Ghost", "Grass"] + } + ] + }, + "kingdra": { + "level": 85, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Draco Meteor", "Muddy Water", "Protect", "Rain Dance"], + "abilities": ["Swift Swim"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Draco Meteor", "Protect", "Rain Dance", "Wave Crash"], + "abilities": ["Swift Swim"], + "teraTypes": ["Water"] + } + ] + }, + "donphan": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["High Horsepower", "Ice Shard", "Knock Off", "Rapid Spin", "Stone Edge"], + "abilities": ["Sturdy"], + "teraTypes": ["Dragon", "Water"] + } + ] + }, + "porygon2": { + "level": 82, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Ice Beam", "Recover", "Thunderbolt", "Trick Room"], + "abilities": ["Download"], + "teraTypes": ["Electric", "Ghost"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Icy Wind", "Recover", "Thunderbolt", "Tri Attack"], + "abilities": ["Download"], + "teraTypes": ["Electric", "Ghost"] + }, + { + "role": "Tera Blast user", + "movepool": ["Recover", "Shadow Ball", "Tera Blast", "Trick Room"], + "abilities": ["Download"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "smeargle": { + "level": 100, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Baton Pass", "No Retreat", "Population Bomb", "Spiky Shield"], + "abilities": ["Technician"], + "teraTypes": ["Ghost"] + }, + { + "role": "Doubles Support", + "movepool": ["Decorate", "Fake Out", "Follow Me", "Tailwind"], + "abilities": ["Technician"], + "teraTypes": ["Ghost"] + } + ] + }, + "hitmontop": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Close Combat", "Coaching", "Fake Out", "Helping Hand", "Sucker Punch", "Triple Axel", "Wide Guard"], + "abilities": ["Intimidate"], + "teraTypes": ["Steel"] + } + ] + }, + "blissey": { + "level": 96, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Heal Pulse", "Helping Hand", "Hyper Voice", "Protect", "Seismic Toss", "Soft-Boiled", "Thunder Wave"], + "abilities": ["Healer"], + "teraTypes": ["Fairy", "Ghost", "Poison"] + } + ] + }, + "raikou": { + "level": 81, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Calm Mind", "Protect", "Scald", "Shadow Ball", "Thunderbolt", "Volt Switch"], + "abilities": ["Inner Focus"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Protect", + "movepool": ["Electroweb", "Protect", "Scald", "Snarl", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Inner Focus"], + "teraTypes": ["Water"] + } + ] + }, + "entei": { + "level": 77, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Extreme Speed", "Flare Blitz", "Sacred Fire", "Stomping Tantrum"], + "abilities": ["Inner Focus"], + "teraTypes": ["Normal"] + } + ] + }, + "suicune": { + "level": 80, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Ice Beam", "Protect", "Scald", "Snarl", "Tailwind"], + "abilities": ["Inner Focus"], + "teraTypes": ["Dragon", "Grass"] + }, + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Ice Beam", "Protect", "Scald"], + "abilities": ["Inner Focus"], + "teraTypes": ["Dragon", "Grass"] + } + ] + }, + "tyranitar": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Dragon Dance", "High Horsepower", "Knock Off", "Protect", "Rock Slide", "Stone Edge"], + "abilities": ["Sand Stream"], + "teraTypes": ["Ghost", "Rock", "Steel"] + }, + { + "role": "Doubles Support", + "movepool": ["Fire Blast", "High Horsepower", "Icy Wind", "Knock Off", "Protect", "Rock Slide", "Stone Edge", "Thunder Wave"], + "abilities": ["Sand Stream"], + "teraTypes": ["Flying", "Steel"] + } + ] + }, + "lugia": { + "level": 72, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Aeroblast", "Calm Mind", "Earth Power", "Recover"], + "abilities": ["Multiscale"], + "teraTypes": ["Ground"] + } + ] + }, + "hooh": { + "level": 72, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Brave Bird", "Earth Power", "Protect", "Recover", "Sacred Fire", "Tailwind"], + "abilities": ["Regenerator"], + "teraTypes": ["Ground"] + } + ] + }, + "sceptile": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Focus Blast", "Leaf Storm", "Protect", "Shed Tail"], + "abilities": ["Overgrow"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Breaking Swipe", "Focus Blast", "Leaf Storm", "Protect"], + "abilities": ["Unburden"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "blaziken": { + "level": 79, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Knock Off", "Overheat", "Protect", "Stone Edge"], + "abilities": ["Speed Boost"], + "teraTypes": ["Stellar"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Heat Wave", "Protect", "Vacuum Wave"], + "abilities": ["Speed Boost"], + "teraTypes": ["Fighting"] + } + ] + }, + "swampert": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Flip Turn", "High Horsepower", "Ice Beam", "Icy Wind", "Knock Off", "Muddy Water"], + "abilities": ["Torrent"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "mightyena": { + "level": 94, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Crunch", "Howl", "Play Rough", "Sucker Punch", "Throat Chop"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Fairy"] + } + ] + }, + "ludicolo": { + "level": 89, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Energy Ball", "Muddy Water", "Protect", "Rain Dance"], + "abilities": ["Swift Swim"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Fake Out", "Hydro Pump", "Ice Beam", "Icy Wind", "Leaf Storm"], + "abilities": ["Swift Swim"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "shiftry": { + "level": 84, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Fake Out", "Knock Off", "Leaf Blade", "Tailwind"], + "abilities": ["Wind Rider"], + "teraTypes": ["Ghost"] + }, + { + "role": "Offensive Protect", + "movepool": ["Knock Off", "Leaf Blade", "Protect", "Tailwind"], + "abilities": ["Wind Rider"], + "teraTypes": ["Ghost"] + } + ] + }, + "pelipper": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Hurricane", "Hydro Pump", "Muddy Water", "Protect", "Tailwind", "Wide Guard"], + "abilities": ["Drizzle"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "gardevoir": { + "level": 83, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Dazzling Gleam", "Moonblast", "Mystical Fire", "Psychic", "Psyshock", "Trick"], + "abilities": ["Trace"], + "teraTypes": ["Fairy", "Fire", "Steel"] + } + ] + }, + "masquerain": { + "level": 90, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Baton Pass", "Bug Buzz", "Hurricane", "Hydro Pump", "Quiver Dance"], + "abilities": ["Intimidate"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Bug Buzz", "Hurricane", "Protect", "Tailwind"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground"] + } + ] + }, + "breloom": { + "level": 84, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Bullet Seed", "Close Combat", "Mach Punch", "Protect", "Rock Tomb", "Spore"], + "abilities": ["Technician"], + "teraTypes": ["Fighting"] + } + ] + }, + "vigoroth": { + "level": 91, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["After You", "Double-Edge", "Encore", "Icy Wind", "Knock Off", "Slack Off", "Thunder Wave"], + "abilities": ["Vital Spirit"], + "teraTypes": ["Ghost"] + } + ] + }, + "slaking": { + "level": 88, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Double-Edge", "Giga Impact", "High Horsepower", "Knock Off"], + "abilities": ["Truant"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "hariyama": { + "level": 85, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Bullet Punch", "Close Combat", "Facade", "Fake Out", "Headlong Rush", "Knock Off"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Bullet Punch", "Close Combat", "Fake Out", "Feint", "Heavy Slam", "Knock Off"], + "abilities": ["Thick Fat"], + "teraTypes": ["Steel"] + } + ] + }, + "sableye": { + "level": 93, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Disable", "Encore", "Fake Out", "Foul Play", "Knock Off", "Quash", "Recover", "Will-O-Wisp"], + "abilities": ["Prankster"], + "teraTypes": ["Steel"] + } + ] + }, + "medicham": { + "level": 86, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Bullet Punch", "Close Combat", "Ice Punch", "Poison Jab", "Zen Headbutt"], + "abilities": ["Pure Power"], + "teraTypes": ["Fighting", "Fire"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Bullet Punch", "Close Combat", "Ice Punch", "Protect", "Zen Headbutt"], + "abilities": ["Pure Power"], + "teraTypes": ["Fighting", "Fire"] + } + ] + }, + "plusle": { + "level": 92, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Alluring Voice", "Nasty Plot", "Protect", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Flying"] + }, + { + "role": "Doubles Support", + "movepool": ["Encore", "Nuzzle", "Super Fang", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Flying"] + } + ] + }, + "minun": { + "level": 91, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Nuzzle", "Super Fang", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + } + ] + }, + "volbeat": { + "level": 83, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Lunge", "Tailwind", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "illumise": { + "level": 84, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Bug Buzz", "Encore", "Tailwind", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "swalot": { + "level": 90, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Encore", "Gunk Shot", "Helping Hand", "Knock Off", "Poison Gas", "Thunder Wave", "Toxic Spikes"], + "abilities": ["Gluttony"], + "teraTypes": ["Dark"] + } + ] + }, + "camerupt": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Earth Power", "Heat Wave", "Helping Hand", "Protect", "Stealth Rock"], + "abilities": ["Solid Rock"], + "teraTypes": ["Water"] + } + ] + }, + "torkoal": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Fire Blast", "Heat Wave", "Protect", "Solar Beam", "Will-O-Wisp"], + "abilities": ["Drought"], + "teraTypes": ["Dragon", "Grass"] + } + ] + }, + "grumpig": { + "level": 91, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dazzling Gleam", "Earth Power", "Nasty Plot", "Psychic", "Psyshock"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Ground"] + } + ] + }, + "flygon": { + "level": 83, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Breaking Swipe", "Earth Power", "Protect", "Tailwind"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "cacturne": { + "level": 91, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Knock Off", "Leaf Storm", "Spiky Shield", "Sucker Punch"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "altaria": { + "level": 91, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Brave Bird", "Draco Meteor", "Fire Blast", "Helping Hand", "Roost", "Tailwind", "Will-O-Wisp"], + "abilities": ["Cloud Nine"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Protect", + "movepool": ["Brave Bird", "Protect", "Roost", "Will-O-Wisp"], + "abilities": ["Cloud Nine"], + "teraTypes": ["Steel"] + } + ] + }, + "zangoose": { + "level": 86, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Facade", "Knock Off", "Protect", "Quick Attack"], + "abilities": ["Toxic Boost"], + "teraTypes": ["Normal"] + } + ] + }, + "seviper": { + "level": 95, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Flamethrower", "Glare", "Gunk Shot", "Knock Off", "Protect"], + "abilities": ["Infiltrator"], + "teraTypes": ["Dark", "Fire", "Poison"] + } + ] + }, + "whiscash": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Helping Hand", "High Horsepower", "Icy Wind", "Muddy Water", "Protect"], + "abilities": ["Oblivious"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "crawdaunt": { + "level": 86, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Aqua Jet", "Close Combat", "Crabhammer", "Knock Off"], + "abilities": ["Adaptability"], + "teraTypes": ["Fighting"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Aqua Jet", "Crabhammer", "Knock Off", "Protect"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "milotic": { + "level": 82, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Dragon Tail", "Icy Wind", "Protect", "Recover", "Scald"], + "abilities": ["Competitive"], + "teraTypes": ["Dragon", "Grass", "Steel"] + } + ] + }, + "banette": { + "level": 94, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Gunk Shot", "Poltergeist", "Protect", "Shadow Sneak"], + "abilities": ["Frisk"], + "teraTypes": ["Ghost", "Poison"] + } + ] + }, + "tropius": { + "level": 95, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Helping Hand", "Hurricane", "Leaf Storm", "Protect", "Tailwind", "Wide Guard"], + "abilities": ["Harvest"], + "teraTypes": ["Steel"] + } + ] + }, + "chimecho": { + "level": 95, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Heal Pulse", "Helping Hand", "Icy Wind", "Protect", "Psychic", "Snarl", "Thunder Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "glalie": { + "level": 94, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Disable", "Foul Play", "Freeze-Dry", "Helping Hand", "Icy Wind", "Protect"], + "abilities": ["Inner Focus"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "luvdisc": { + "level": 100, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Charm", "Endeavor", "Hydro Pump", "Icy Wind"], + "abilities": ["Swift Swim"], + "teraTypes": ["Dragon"] + } + ] + }, + "salamence": { + "level": 80, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Draco Meteor", "Dual Wingbeat", "Fire Blast", "Protect", "Tailwind"], + "abilities": ["Intimidate"], + "teraTypes": ["Dragon", "Fire", "Flying", "Steel"] + } + ] + }, + "metagross": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Bullet Punch", "Hammer Arm", "Heavy Slam", "Knock Off", "Psychic Fangs", "Stomping Tantrum"], + "abilities": ["Clear Body"], + "teraTypes": ["Dark", "Steel", "Water"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Agility", "Brick Break", "Heavy Slam", "Knock Off", "Protect", "Psychic Fangs"], + "abilities": ["Clear Body"], + "teraTypes": ["Dragon"] + } + ] + }, + "regirock": { + "level": 83, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Curse", "Iron Defense", "Rest", "Rock Slide", "Stone Edge"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Iron Defense", "Rock Slide", "Stone Edge", "Thunder Wave"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + } + ] + }, + "regice": { + "level": 84, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Blizzard", "Icy Wind", "Protect", "Thunderbolt"], + "abilities": ["Clear Body"], + "teraTypes": ["Electric", "Water"] + } + ] + }, + "registeel": { + "level": 78, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Thunder Wave"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + } + ] + }, + "latias": { + "level": 80, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Mist Ball", "Protect", "Recover", "Tailwind"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + }, + { + "role": "Offensive Protect", + "movepool": ["Aura Sphere", "Calm Mind", "Dragon Pulse", "Mist Ball", "Protect"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "latios": { + "level": 79, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Luster Purge", "Protect", "Tailwind"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Aura Sphere", "Draco Meteor", "Luster Purge", "Protect", "Trick"], + "abilities": ["Levitate"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "kyogre": { + "level": 65, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Ice Beam", "Origin Pulse", "Thunder", "Water Spout"], + "abilities": ["Drizzle"], + "teraTypes": ["Water"] + } + ] + }, + "groudon": { + "level": 69, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Heat Crash", "Precipice Blades", "Protect", "Stone Edge", "Thunder Wave"], + "abilities": ["Drought"], + "teraTypes": ["Fire"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Heat Crash", "Precipice Blades", "Protect", "Stone Edge", "Swords Dance"], + "abilities": ["Drought"], + "teraTypes": ["Fire"] + } + ] + }, + "rayquaza": { + "level": 75, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dragon Ascent", "Dragon Dance", "Earthquake", "Extreme Speed", "Swords Dance"], + "abilities": ["Air Lock"], + "teraTypes": ["Normal"] + }, + { + "role": "Offensive Protect", + "movepool": ["Draco Meteor", "Dragon Ascent", "Earth Power", "Fire Blast", "Protect"], + "abilities": ["Air Lock"], + "teraTypes": ["Fire", "Flying", "Ground"] + } + ] + }, + "jirachi": { + "level": 80, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Iron Head", "Life Dew", "Protect", "Thunder Wave", "U-turn"], + "abilities": ["Serene Grace"], + "teraTypes": ["Dark", "Water"] + }, + { + "role": "Choice Item user", + "movepool": ["Iron Head", "Psychic", "Thunderbolt", "Trick", "U-turn"], + "abilities": ["Serene Grace"], + "teraTypes": ["Steel"] + } + ] + }, + "deoxys": { + "level": 79, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Extreme Speed", "Knock Off", "Protect", "Psycho Boost", "Superpower"], + "abilities": ["Pressure"], + "teraTypes": ["Ghost", "Stellar"] + } + ] + }, + "deoxysattack": { + "level": 78, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Extreme Speed", "Knock Off", "Protect", "Psycho Boost", "Superpower"], + "abilities": ["Pressure"], + "teraTypes": ["Ghost", "Stellar"] + } + ] + }, + "deoxysdefense": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Knock Off", "Night Shade", "Spikes", "Thunder Wave"], + "abilities": ["Pressure"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "deoxysspeed": { + "level": 84, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Psycho Boost", "Superpower", "Taunt"], + "abilities": ["Pressure"], + "teraTypes": ["Fighting", "Ghost", "Psychic"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Psycho Boost", "Superpower", "Taunt", "Thunder Wave"], + "abilities": ["Pressure"], + "teraTypes": ["Fighting", "Psychic"] + } + ] + }, + "torterra": { + "level": 81, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Headlong Rush", "Protect", "Shell Smash", "Wood Hammer"], + "abilities": ["Overgrow"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "infernape": { + "level": 82, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Close Combat", "Fake Out", "Knock Off", "Overheat", "Protect"], + "abilities": ["Blaze"], + "teraTypes": ["Dark", "Fighting", "Fire"] + } + ] + }, + "empoleon": { + "level": 82, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Flash Cannon", "Hydro Pump", "Ice Beam", "Icy Wind", "Protect", "Yawn"], + "abilities": ["Competitive"], + "teraTypes": ["Flying", "Grass"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Flash Cannon", "Hydro Pump", "Ice Beam", "Icy Wind", "Knock Off"], + "abilities": ["Competitive"], + "teraTypes": ["Flying", "Grass"] + } + ] + }, + "staraptor": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Close Combat", "Double-Edge", "Protect", "Quick Attack"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Flying"] + }, + { + "role": "Choice Item user", + "movepool": ["Brave Bird", "Close Combat", "Double-Edge", "Final Gambit"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Flying", "Normal"] + } + ] + }, + "kricketune": { + "level": 100, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Bug Bite", "Helping Hand", "Knock Off", "Sticky Web", "Taunt"], + "abilities": ["Technician"], + "teraTypes": ["Bug", "Steel"] + } + ] + }, + "luxray": { + "level": 86, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Crunch", "Play Rough", "Snarl", "Throat Chop", "Volt Switch", "Wild Charge"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Fairy", "Flying"] + } + ] + }, + "rampardos": { + "level": 87, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Fire Punch", "Head Smash", "Rock Slide", "Stomping Tantrum"], + "abilities": ["Sheer Force"], + "teraTypes": ["Rock"] + } + ] + }, + "bastiodon": { + "level": 89, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Foul Play", "Iron Defense", "Rest", "Wide Guard"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting", "Flying"] + } + ] + }, + "vespiquen": { + "level": 100, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Helping Hand", "Hurricane", "Pollen Puff", "Roost", "Toxic Spikes"], + "abilities": ["Unnerve"], + "teraTypes": ["Steel"] + } + ] + }, + "pachirisu": { + "level": 94, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Follow Me", "Helping Hand", "Nuzzle", "Super Fang", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "floatzel": { + "level": 86, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Aqua Jet", "Crunch", "Ice Spinner", "Protect", "Wave Crash"], + "abilities": ["Water Veil"], + "teraTypes": ["Water"] + } + ] + }, + "gastrodon": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Clear Smog", "Earth Power", "Helping Hand", "Icy Wind", "Muddy Water", "Recover"], + "abilities": ["Storm Drain"], + "teraTypes": ["Fire"] + } + ] + }, + "ambipom": { + "level": 87, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Double-Edge", "Fake Out", "Knock Off", "Protect"], + "abilities": ["Technician"], + "teraTypes": ["Normal"] + } + ] + }, + "drifblim": { + "level": 85, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Shadow Ball", "Strength Sap", "Tailwind", "Will-O-Wisp"], + "abilities": ["Unburden"], + "teraTypes": ["Fairy", "Ghost", "Ground"] + } + ] + }, + "mismagius": { + "level": 88, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Dazzling Gleam", "Mystical Fire", "Protect", "Shadow Ball", "Taunt", "Thunderbolt", "Trick", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy"] + } + ] + }, + "honchkrow": { + "level": 85, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Heat Wave", "Protect", "Sucker Punch", "Tailwind"], + "abilities": ["Moxie"], + "teraTypes": ["Dark", "Fire", "Flying"] + } + ] + }, + "skuntank": { + "level": 85, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Fire Blast", "Gunk Shot", "Knock Off", "Poison Gas", "Protect", "Sucker Punch", "Taunt", "Toxic Spikes"], + "abilities": ["Aftermath"], + "teraTypes": ["Dark", "Flying"] + } + ] + }, + "bronzong": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Trick Room"], + "abilities": ["Levitate"], + "teraTypes": ["Fighting"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Psychic Noise", "Trick Room"], + "abilities": ["Levitate"], + "teraTypes": ["Fighting"] + } + ] + }, + "spiritomb": { + "level": 89, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Foul Play", "Helping Hand", "Icy Wind", "Shadow Sneak", "Will-O-Wisp"], + "abilities": ["Infiltrator"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Foul Play", "Snarl", "Trick Room", "Will-O-Wisp"], + "abilities": ["Infiltrator"], + "teraTypes": ["Steel"] + } + ] + }, + "garchomp": { + "level": 77, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Earthquake", "Protect", "Scale Shot", "Swords Dance"], + "abilities": ["Rough Skin"], + "teraTypes": ["Dragon", "Fire"] + } + ] + }, + "lucario": { + "level": 87, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Extreme Speed", "Flash Cannon", "Protect"], + "abilities": ["Inner Focus"], + "teraTypes": ["Normal"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Extreme Speed", "Meteor Mash", "Rock Slide"], + "abilities": ["Inner Focus"], + "teraTypes": ["Normal"] + } + ] + }, + "hippowdon": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Helping Hand", "High Horsepower", "Slack Off", "Stealth Rock", "Stone Edge", "Whirlwind"], + "abilities": ["Sand Stream"], + "teraTypes": ["Dragon", "Rock", "Steel", "Water"] + } + ] + }, + "toxicroak": { + "level": 85, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Close Combat", "Fake Out", "Gunk Shot", "Protect", "Sucker Punch", "Swords Dance"], + "abilities": ["Dry Skin"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "lumineon": { + "level": 92, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Helping Hand", "Hydro Pump", "Icy Wind", "Tailwind", "Tickle"], + "abilities": ["Storm Drain"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "abomasnow": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Aurora Veil", "Blizzard", "Ice Shard", "Protect", "Wood Hammer"], + "abilities": ["Snow Warning"], + "teraTypes": ["Ice", "Water"] + } + ] + }, + "weavile": { + "level": 82, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Fake Out", "Ice Shard", "Knock Off", "Low Kick", "Protect", "Triple Axel"], + "abilities": ["Pickpocket"], + "teraTypes": ["Dark", "Fighting", "Ghost", "Ice"] + } + ] + }, + "sneasler": { + "level": 77, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Dire Claw", "Fake Out", "Throat Chop", "U-turn"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "magnezone": { + "level": 84, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Electroweb", "Flash Cannon", "Protect", "Thunderbolt", "Volt Switch"], + "abilities": ["Sturdy"], + "teraTypes": ["Flying"] + } + ] + }, + "rhyperior": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["High Horsepower", "Protect", "Rock Polish", "Rock Slide"], + "abilities": ["Solid Rock"], + "teraTypes": ["Dragon", "Flying", "Ghost", "Ground"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Dragon Tail", "Heat Crash", "High Horsepower", "Ice Punch", "Megahorn", "Protect", "Rock Slide"], + "abilities": ["Solid Rock"], + "teraTypes": ["Dragon", "Flying", "Water"] + } + ] + }, + "electivire": { + "level": 85, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Cross Chop", "Flamethrower", "Ice Punch", "Protect", "Volt Switch", "Wild Charge"], + "abilities": ["Motor Drive"], + "teraTypes": ["Flying"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Cross Chop", "Flamethrower", "Ice Punch", "Knock Off", "Volt Switch", "Wild Charge"], + "abilities": ["Motor Drive"], + "teraTypes": ["Flying"] + } + ] + }, + "magmortar": { + "level": 84, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fire Blast", "Heat Wave", "Knock Off", "Protect", "Thunderbolt"], + "abilities": ["Flame Body"], + "teraTypes": ["Fire", "Grass"] + } + ] + }, + "yanmega": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Air Slash", "Bug Buzz", "Giga Drain", "U-turn"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug"] + }, + { + "role": "Tera Blast user", + "movepool": ["Air Slash", "Bug Buzz", "Protect", "Tera Blast"], + "abilities": ["Speed Boost"], + "teraTypes": ["Ground"] + } + ] + }, + "leafeon": { + "level": 90, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Double-Edge", "Knock Off", "Leaf Blade", "Protect", "Swords Dance", "Synthesis"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Normal"] + } + ] + }, + "glaceon": { + "level": 87, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Blizzard", "Freeze-Dry", "Mud Shot", "Protect"], + "abilities": ["Ice Body"], + "teraTypes": ["Ground"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Blizzard", "Calm Mind", "Freeze-Dry", "Mud Shot"], + "abilities": ["Ice Body"], + "teraTypes": ["Ground"] + } + ] + }, + "gliscor": { + "level": 81, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Dual Wingbeat", "High Horsepower", "Knock Off", "Protect", "Tailwind", "Toxic", "Toxic Spikes"], + "abilities": ["Poison Heal"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Earthquake", "Facade", "Protect", "Swords Dance"], + "abilities": ["Poison Heal"], + "teraTypes": ["Normal"] + } + ] + }, + "mamoswine": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["High Horsepower", "Ice Shard", "Icicle Crash", "Protect"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground", "Ice", "Water"] + } + ] + }, + "porygonz": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Shadow Ball", "Swift", "Tri Attack", "Trick"], + "abilities": ["Adaptability"], + "teraTypes": ["Ghost"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Protect", "Shadow Ball", "Tera Blast"], + "abilities": ["Adaptability"], + "teraTypes": ["Fighting"] + } + ] + }, + "gallade": { + "level": 80, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Leaf Blade", "Night Slash", "Protect", "Psycho Cut", "Sacred Sword", "Swords Dance"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Fighting", "Grass"] + }, + { + "role": "Choice Item user", + "movepool": ["Night Slash", "Psycho Cut", "Sacred Sword", "Trick"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "probopass": { + "level": 90, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Flash Cannon", "Iron Defense", "Rest", "Thunder Wave"], + "abilities": ["Magnet Pull"], + "teraTypes": ["Fighting"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Body Press", "Iron Defense", "Power Gem", "Rest", "Thunder Wave"], + "abilities": ["Magnet Pull"], + "teraTypes": ["Fighting"] + } + ] + }, + "dusknoir": { + "level": 89, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Leech Life", "Poltergeist", "Shadow Sneak", "Will-O-Wisp"], + "abilities": ["Frisk"], + "teraTypes": ["Dark"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Leech Life", "Poltergeist", "Protect", "Trick Room"], + "abilities": ["Frisk"], + "teraTypes": ["Dark"] + } + ] + }, + "froslass": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Poltergeist", "Protect", "Spikes", "Taunt", "Triple Axel", "Will-O-Wisp"], + "abilities": ["Cursed Body"], + "teraTypes": ["Ghost", "Water"] + } + ] + }, + "rotom": { + "level": 89, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Nasty Plot", "Protect", "Shadow Ball", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric"] + } + ] + }, + "rotomwash": { + "level": 83, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Electroweb", "Hydro Pump", "Protect", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric"] + } + ] + }, + "rotomheat": { + "level": 84, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Electroweb", "Overheat", "Protect", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Steel"] + } + ] + }, + "rotomfrost": { + "level": 84, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Blizzard", "Nasty Plot", "Protect", "Thunderbolt", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Ice"] + } + ] + }, + "rotomfan": { + "level": 85, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Air Slash", "Electroweb", "Protect", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Steel"] + } + ] + }, + "rotommow": { + "level": 85, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Electroweb", "Leaf Storm", "Protect", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Poison", "Steel"] + } + ] + }, + "uxie": { + "level": 87, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Helping Hand", "Knock Off", "Mystical Power", "Stealth Rock", "Thunder Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Poison", "Steel"] + } + ] + }, + "mesprit": { + "level": 86, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dazzling Gleam", "Nasty Plot", "Protect", "Psychic", "Thunderbolt"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy", "Psychic"] + }, + { + "role": "Choice Item user", + "movepool": ["Ice Beam", "Psychic", "Thunderbolt", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Psychic"] + } + ] + }, + "azelf": { + "level": 83, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Dazzling Gleam", "Energy Ball", "Fire Blast", "Nasty Plot", "Psychic", "Psyshock", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy", "Fire"] + }, + { + "role": "Offensive Protect", + "movepool": ["Dazzling Gleam", "Fire Blast", "Nasty Plot", "Protect", "Psychic", "Psyshock", "Thunderbolt"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy", "Fire"] + } + ] + }, + "dialga": { + "level": 74, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Heavy Slam", "Protect", "Thunder Wave"], + "abilities": ["Telepathy"], + "teraTypes": ["Dragon", "Fire", "Flying", "Steel"] + } + ] + }, + "dialgaorigin": { + "level": 74, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Flash Cannon", "Protect", "Thunder Wave"], + "abilities": ["Telepathy"], + "teraTypes": ["Dragon", "Fire", "Flying"] + } + ] + }, + "palkia": { + "level": 74, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Draco Meteor", "Fire Blast", "Hydro Pump", "Spacial Rend"], + "abilities": ["Telepathy"], + "teraTypes": ["Dragon", "Fire", "Steel", "Water"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Fire Blast", "Hydro Pump", "Protect", "Spacial Rend", "Thunder Wave"], + "abilities": ["Telepathy"], + "teraTypes": ["Dragon", "Fire", "Steel", "Water"] + } + ] + }, + "palkiaorigin": { + "level": 72, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Fire Blast", "Hydro Pump", "Protect", "Spacial Rend", "Thunder Wave"], + "abilities": ["Telepathy"], + "teraTypes": ["Dragon", "Fire", "Steel", "Water"] + } + ] + }, + "heatran": { + "level": 78, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Earth Power", "Magma Storm", "Protect", "Will-O-Wisp"], + "abilities": ["Flash Fire"], + "teraTypes": ["Fairy", "Grass"] + }, + { + "role": "Tera Blast user", + "movepool": ["Earth Power", "Flash Cannon", "Heat Wave", "Protect", "Tera Blast"], + "abilities": ["Flash Fire"], + "teraTypes": ["Grass"] + }, + { + "role": "Offensive Protect", + "movepool": ["Earth Power", "Flash Cannon", "Heat Wave", "Protect"], + "abilities": ["Flash Fire"], + "teraTypes": ["Fairy", "Grass"] + } + ] + }, + "regigigas": { + "level": 86, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Body Slam", "Knock Off", "Protect", "Substitute"], + "abilities": ["Slow Start"], + "teraTypes": ["Fairy", "Ghost"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Double-Edge", "Knock Off", "Protect", "Thunder Wave"], + "abilities": ["Slow Start"], + "teraTypes": ["Fairy"] + } + ] + }, + "giratina": { + "level": 76, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Aura Sphere", "Calm Mind", "Protect", "Shadow Ball"], + "abilities": ["Telepathy"], + "teraTypes": ["Fairy", "Fighting"] + }, + { + "role": "Doubles Support", + "movepool": ["Breaking Swipe", "Icy Wind", "Rest", "Shadow Ball", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Telepathy"], + "teraTypes": ["Fairy"] + } + ] + }, + "giratinaorigin": { + "level": 75, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Draco Meteor", "Poltergeist", "Shadow Force", "Shadow Sneak", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Dragon", "Fairy", "Ghost", "Poison", "Steel"] + } + ] + }, + "cresselia": { + "level": 80, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Helping Hand", "Icy Wind", "Lunar Blessing", "Psychic", "Thunder Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fire", "Poison", "Steel"] + } + ] + }, + "phione": { + "level": 90, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Ice Beam", "Protect", "Scald", "Take Heart"], + "abilities": ["Hydration"], + "teraTypes": ["Dragon", "Grass", "Steel"] + } + ] + }, + "manaphy": { + "level": 78, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Ice Beam", "Protect", "Scald", "Tail Glow"], + "abilities": ["Hydration"], + "teraTypes": ["Grass", "Steel", "Water"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Energy Ball", "Hydro Pump", "Ice Beam", "Protect", "Scald", "Tail Glow"], + "abilities": ["Hydration"], + "teraTypes": ["Grass"] + } + ] + }, + "darkrai": { + "level": 80, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dark Pulse", "Focus Blast", "Protect", "Sludge Bomb"], + "abilities": ["Bad Dreams"], + "teraTypes": ["Poison"] + } + ] + }, + "shaymin": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Earth Power", "Protect", "Seed Flare", "Synthesis", "Tailwind"], + "abilities": ["Natural Cure"], + "teraTypes": ["Grass", "Ground", "Steel"] + } + ] + }, + "shayminsky": { + "level": 77, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Air Slash", "Earth Power", "Protect", "Seed Flare", "Tailwind"], + "abilities": ["Serene Grace"], + "teraTypes": ["Flying", "Steel", "Water"] + } + ] + }, + "arceus": { + "level": 71, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Extreme Speed", "Flare Blitz", "Phantom Force", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "arceusbug": { + "level": 73, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Extreme Speed", "Stomping Tantrum", "Swords Dance", "X-Scissor"], + "abilities": ["Multitype"], + "teraTypes": ["Normal"] + } + ] + }, + "arceusdark": { + "level": 72, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Gunk Shot", "Judgment", "Recover", "Tailwind"], + "abilities": ["Multitype"], + "teraTypes": ["Poison"] + } + ] + }, + "arceusdragon": { + "level": 73, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Calm Mind", "Fire Blast", "Judgment", "Recover", "Sludge Bomb"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Poison"] + } + ] + }, + "arceuselectric": { + "level": 70, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Calm Mind", "Ice Beam", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Electric", "Ice"] + } + ] + }, + "arceusfairy": { + "level": 70, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Calm Mind", "Dazzling Gleam", "Earth Power", "Fire Blast", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Fairy", "Fire", "Ground"] + }, + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Judgment", "Recover", "Snarl", "Tailwind", "Taunt", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + } + ] + }, + "arceusfighting": { + "level": 70, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Recover", "Snarl"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + } + ] + }, + "arceusfire": { + "level": 72, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Extreme Speed", "Flare Blitz", "Liquidation", "Protect", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Normal", "Water"] + } + ] + }, + "arceusflying": { + "level": 70, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Calm Mind", "Earth Power", "Fire Blast", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Flying", "Ground"] + } + ] + }, + "arceusghost": { + "level": 72, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Brick Break", "Extreme Speed", "Phantom Force", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Ghost", "Normal"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Calm Mind", "Dazzling Gleam", "Focus Blast", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "arceusgrass": { + "level": 74, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Judgment", "Recover", "Snarl", "Tailwind", "Taunt", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "arceusground": { + "level": 72, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Calm Mind", "Fire Blast", "Ice Beam", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Ground", "Ice"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Earthquake", "Extreme Speed", "Stone Edge", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Normal"] + } + ] + }, + "arceusice": { + "level": 72, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover", "Thunderbolt"], + "abilities": ["Multitype"], + "teraTypes": ["Electric", "Ground"] + } + ] + }, + "arceuspoison": { + "level": 72, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Extreme Speed", "Flare Blitz", "Gunk Shot", "Liquidation", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Normal", "Poison"] + } + ] + }, + "arceuspsychic": { + "level": 72, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Judgment", "Recover", "Snarl", "Tailwind", "Taunt", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + } + ] + }, + "arceusrock": { + "level": 73, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Calm Mind", "Earth Power", "Fire Blast", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Ground"] + } + ] + }, + "arceussteel": { + "level": 73, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Judgment", "Recover", "Snarl", "Tailwind", "Taunt", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Ghost"] + } + ] + }, + "arceuswater": { + "level": 72, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Judgment", "Recover", "Snarl", "Tailwind", "Taunt", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Extreme Speed", "Flare Blitz", "Liquidation", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Normal"] + } + ] + }, + "serperior": { + "level": 80, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dragon Pulse", "Glare", "Knock Off", "Leaf Storm", "Protect"], + "abilities": ["Contrary"], + "teraTypes": ["Dragon", "Grass"] + }, + { + "role": "Tera Blast user", + "movepool": ["Glare", "Leaf Storm", "Protect", "Tera Blast"], + "abilities": ["Contrary"], + "teraTypes": ["Fire", "Rock"] + } + ] + }, + "emboar": { + "level": 85, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Flare Blitz", "Head Smash", "Knock Off", "Wild Charge"], + "abilities": ["Reckless"], + "teraTypes": ["Dark", "Electric", "Rock"] + } + ] + }, + "samurott": { + "level": 89, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Aqua Jet", "Flip Turn", "Hydro Pump", "Ice Beam", "Knock Off", "Megahorn", "Sacred Sword"], + "abilities": ["Torrent"], + "teraTypes": ["Dark", "Fire", "Water"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Aqua Jet", "Knock Off", "Liquidation", "Protect", "Sacred Sword", "Swords Dance"], + "abilities": ["Torrent"], + "teraTypes": ["Dark", "Fire", "Water"] + } + ] + }, + "samurotthisui": { + "level": 83, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Aqua Jet", "Ceaseless Edge", "Protect", "Razor Shell", "Sacred Sword", "Sucker Punch"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Fire", "Water"] + }, + { + "role": "Choice Item user", + "movepool": ["Ceaseless Edge", "Flip Turn", "Razor Shell", "Sacred Sword", "Sucker Punch"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Fire", "Water"] + } + ] + }, + "zebstrika": { + "level": 87, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["High Horsepower", "Overheat", "Protect", "Wild Charge"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ground"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["High Horsepower", "Overheat", "Protect", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "excadrill": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["High Horsepower", "Iron Head", "Rapid Spin", "Rock Slide"], + "abilities": ["Mold Breaker", "Sand Rush"], + "teraTypes": ["Flying", "Water"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["High Horsepower", "Iron Head", "Protect", "Swords Dance"], + "abilities": ["Mold Breaker", "Sand Rush"], + "teraTypes": ["Flying", "Ground", "Water"] + } + ] + }, + "conkeldurr": { + "level": 81, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Knock Off", "Mach Punch", "Protect"], + "abilities": ["Guts"], + "teraTypes": ["Dark", "Fighting"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Drain Punch", "Ice Punch", "Knock Off", "Mach Punch"], + "abilities": ["Iron Fist"], + "teraTypes": ["Dark", "Fighting", "Steel"] + } + ] + }, + "leavanny": { + "level": 90, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Knock Off", "Leaf Blade", "Pollen Puff", "Sticky Web"], + "abilities": ["Chlorophyll", "Swarm"], + "teraTypes": ["Rock", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Leaf Blade", "Lunge", "Protect", "Sticky Web"], + "abilities": ["Chlorophyll", "Swarm"], + "teraTypes": ["Rock", "Water"] + } + ] + }, + "whimsicott": { + "level": 80, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Moonblast", "Stun Spore", "Tailwind"], + "abilities": ["Prankster"], + "teraTypes": ["Fire", "Ghost", "Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Encore", "Moonblast", "Tailwind", "Taunt"], + "abilities": ["Prankster"], + "teraTypes": ["Fire", "Ghost", "Steel"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Encore", "Helping Hand", "Moonblast", "Tailwind"], + "abilities": ["Prankster"], + "teraTypes": ["Fire", "Ghost", "Steel"] + } + ] + }, + "lilligant": { + "level": 87, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Giga Drain", "Protect", "Quiver Dance", "Tera Blast"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Rock"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Alluring Voice", "Energy Ball", "Pollen Puff", "Quiver Dance", "Sleep Powder"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Steel"] + } + ] + }, + "lilliganthisui": { + "level": 84, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Close Combat", "Leaf Blade", "Protect", "Sleep Powder", "Victory Dance"], + "abilities": ["Hustle"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "basculin": { + "level": 87, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Aqua Jet", "Flip Turn", "Psychic Fangs", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Aqua Jet", "Flip Turn", "Protect", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "basculegion": { + "level": 69, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Aqua Jet", "Flip Turn", "Last Respects", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Ghost"] + } + ] + }, + "basculegionf": { + "level": 72, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Flip Turn", "Last Respects", "Muddy Water", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Ghost"] + } + ] + }, + "krookodile": { + "level": 80, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Gunk Shot", "High Horsepower", "Knock Off", "Protect", "Stone Edge", "Taunt"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Ground", "Poison"] + }, + { + "role": "Choice Item user", + "movepool": ["Gunk Shot", "High Horsepower", "Knock Off", "Rock Slide"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Ground", "Poison"] + } + ] + }, + "scrafty": { + "level": 83, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Close Combat", "Coaching", "Fake Out", "Knock Off", "Poison Jab", "Snarl"], + "abilities": ["Intimidate"], + "teraTypes": ["Poison"] + } + ] + }, + "zoroark": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Dark Pulse", "Flamethrower", "Focus Blast", "Protect", "Sludge Bomb"], + "abilities": ["Illusion"], + "teraTypes": ["Poison"] + }, + { + "role": "Offensive Protect", + "movepool": ["Flamethrower", "Focus Blast", "Knock Off", "Protect", "Sludge Bomb"], + "abilities": ["Illusion"], + "teraTypes": ["Poison"] + } + ] + }, + "zoroarkhisui": { + "level": 80, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Bitter Malice", "Flamethrower", "Focus Blast", "Hyper Voice", "Nasty Plot", "Protect"], + "abilities": ["Illusion"], + "teraTypes": ["Normal"] + }, + { + "role": "Tera Blast user", + "movepool": ["Bitter Malice", "Hyper Voice", "Protect", "Tera Blast"], + "abilities": ["Illusion"], + "teraTypes": ["Fairy"] + } + ] + }, + "cinccino": { + "level": 85, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Bullet Seed", "Knock Off", "Protect", "Tail Slap", "Triple Axel"], + "abilities": ["Technician"], + "teraTypes": ["Grass", "Ice", "Normal"] + } + ] + }, + "gothitelle": { + "level": 90, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Fake Out", "Heal Pulse", "Helping Hand", "Protect", "Psychic", "Trick Room"], + "abilities": ["Shadow Tag"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "reuniclus": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Focus Blast", "Protect", "Psychic", "Shadow Ball", "Trick Room"], + "abilities": ["Magic Guard"], + "teraTypes": ["Fighting"] + } + ] + }, + "swanna": { + "level": 87, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Brave Bird", "Hydro Pump", "Knock Off", "Protect", "Tailwind"], + "abilities": ["Hydration"], + "teraTypes": ["Ground"] + }, + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Hydro Pump", "Protect", "Tailwind"], + "abilities": ["Hydration"], + "teraTypes": ["Ground"] + } + ] + }, + "sawsbuck": { + "level": 91, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Double-Edge", "High Horsepower", "Horn Leech", "Protect", "Swords Dance"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Normal"] + } + ] + }, + "amoonguss": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Clear Smog", "Pollen Puff", "Protect", "Rage Powder", "Spore"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Pollen Puff", "Rage Powder", "Sludge Bomb", "Spore"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "alomomola": { + "level": 95, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Helping Hand", "Icy Wind", "Scald", "Wide Guard"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel"] + } + ] + }, + "galvantula": { + "level": 85, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Bug Buzz", "Protect", "Sticky Web", "Thunder", "Volt Switch"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Electric"] + } + ] + }, + "eelektross": { + "level": 86, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Electroweb", "Flamethrower", "Giga Drain", "Knock Off", "Thunderbolt", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Poison"] + } + ] + }, + "chandelure": { + "level": 81, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Energy Ball", "Heat Wave", "Protect", "Shadow Ball", "Trick"], + "abilities": ["Flash Fire"], + "teraTypes": ["Fire", "Grass"] + } + ] + }, + "haxorus": { + "level": 84, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Close Combat", "Iron Head", "Protect", "Scale Shot", "Swords Dance"], + "abilities": ["Unnerve"], + "teraTypes": ["Dragon", "Fighting", "Steel"] + }, + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Dragon Claw", "First Impression", "Iron Head", "Protect"], + "abilities": ["Unnerve"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "beartic": { + "level": 91, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Aqua Jet", "Close Combat", "Icicle Crash", "Protect"], + "abilities": ["Slush Rush", "Swift Swim"], + "teraTypes": ["Fighting", "Water"] + } + ] + }, + "cryogonal": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Flash Cannon", "Freeze-Dry", "Haze", "Icy Wind", "Rapid Spin", "Recover"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "mienshao": { + "level": 85, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Close Combat", "Fake Out", "Knock Off", "Triple Axel", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Fake Out", "Knock Off", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "golurk": { + "level": 86, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dynamic Punch", "High Horsepower", "Poltergeist", "Protect"], + "abilities": ["No Guard"], + "teraTypes": ["Fighting"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Dynamic Punch", "High Horsepower", "Poltergeist", "Stone Edge"], + "abilities": ["No Guard"], + "teraTypes": ["Dragon", "Fairy", "Fighting"] + } + ] + }, + "braviary": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Close Combat", "Protect", "Tailwind"], + "abilities": ["Defiant"], + "teraTypes": ["Fighting", "Flying"] + } + ] + }, + "braviaryhisui": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Heat Wave", "Hurricane", "Psychic", "Tailwind"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fire", "Psychic", "Steel"] + }, + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Esper Wing", "Hurricane", "Protect"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Psychic", "Steel"] + } + ] + }, + "mandibuzz": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Foul Play", "Knock Off", "Roost", "Snarl", "Tailwind", "Taunt", "Toxic", "U-turn"], + "abilities": ["Overcoat"], + "teraTypes": ["Steel"] + } + ] + }, + "hydreigon": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dark Pulse", "Draco Meteor", "Protect", "Snarl", "Tailwind"], + "abilities": ["Levitate"], + "teraTypes": ["Dragon", "Poison"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Dark Pulse", "Draco Meteor", "Heat Wave", "Protect", "Snarl"], + "abilities": ["Levitate"], + "teraTypes": ["Fire"] + } + ] + }, + "volcarona": { + "level": 79, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Bug Buzz", "Heat Wave", "Protect", "Quiver Dance"], + "abilities": ["Flame Body", "Swarm"], + "teraTypes": ["Fire", "Ground", "Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Heat Wave", "Rage Powder", "Struggle Bug", "Tailwind"], + "abilities": ["Flame Body"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "cobalion": { + "level": 79, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Body Press", "Coaching", "Iron Head", "Thunder Wave", "Volt Switch"], + "abilities": ["Justified"], + "teraTypes": ["Flying", "Water"] + }, + { + "role": "Bulky Protect", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Protect"], + "abilities": ["Justified"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "terrakion": { + "level": 78, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "High Horsepower", "Rock Slide", "Stone Edge"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Ghost", "Rock"] + }, + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "High Horsepower", "Protect", "Rock Slide"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Ghost", "Rock"] + } + ] + }, + "virizion": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Close Combat", "Coaching", "Leaf Storm", "Protect", "Stone Edge"], + "abilities": ["Justified"], + "teraTypes": ["Fire", "Rock", "Steel"] + } + ] + }, + "tornadus": { + "level": 77, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Bleakwind Storm", "Heat Wave", "Knock Off", "Protect", "Tailwind", "Taunt"], + "abilities": ["Prankster"], + "teraTypes": ["Steel"] + } + ] + }, + "tornadustherian": { + "level": 77, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Bleakwind Storm", "Grass Knot", "Heat Wave", "Nasty Plot", "Protect"], + "abilities": ["Regenerator"], + "teraTypes": ["Fire", "Flying"] + }, + { + "role": "Choice Item user", + "movepool": ["Bleakwind Storm", "Focus Blast", "Grass Knot", "Heat Wave", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Fire", "Flying"] + } + ] + }, + "thundurus": { + "level": 79, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Grass Knot", "Knock Off", "Protect", "Snarl", "Taunt", "Thunder Wave", "Thunderbolt"], + "abilities": ["Prankster"], + "teraTypes": ["Steel"] + }, + { + "role": "Offensive Protect", + "movepool": ["Acrobatics", "Grass Knot", "Knock Off", "Protect", "Snarl", "Wildbolt Storm"], + "abilities": ["Defiant"], + "teraTypes": ["Electric", "Flying", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Protect", "Tera Blast", "Wildbolt Storm"], + "abilities": ["Defiant"], + "teraTypes": ["Flying", "Ice"] + } + ] + }, + "thundurustherian": { + "level": 78, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Grass Knot", "Protect", "Sludge Bomb", "Volt Switch", "Wildbolt Storm"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Electric", "Poison"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Protect", "Tera Blast", "Wildbolt Storm"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying", "Ice"] + } + ] + }, + "reshiram": { + "level": 72, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Blue Flare", "Draco Meteor", "Heat Wave", "Protect", "Tailwind"], + "abilities": ["Turboblaze"], + "teraTypes": ["Fire"] + } + ] + }, + "zekrom": { + "level": 74, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Bolt Strike", "Dragon Claw", "Dragon Dance", "Protect"], + "abilities": ["Teravolt"], + "teraTypes": ["Dragon", "Electric", "Fire", "Grass"] + } + ] + }, + "landorus": { + "level": 76, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Earth Power", "Nasty Plot", "Protect", "Psychic", "Rock Slide", "Sandsear Storm", "Sludge Bomb"], + "abilities": ["Sheer Force"], + "teraTypes": ["Ground", "Poison", "Psychic"] + } + ] + }, + "landorustherian": { + "level": 77, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Protect", "Rock Slide", "Stomping Tantrum", "Stone Edge", "Taunt", "U-turn"], + "abilities": ["Intimidate"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Rock Slide", "Stomping Tantrum", "Stone Edge", "Tera Blast", "U-turn"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying"] + } + ] + }, + "kyurem": { + "level": 77, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Earth Power", "Icicle Spear", "Protect", "Scale Shot"], + "abilities": ["Pressure"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Draco Meteor", "Earth Power", "Glaciate", "Protect"], + "abilities": ["Pressure"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "kyuremwhite": { + "level": 72, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Draco Meteor", "Earth Power", "Fusion Flare", "Ice Beam", "Protect"], + "abilities": ["Turboblaze"], + "teraTypes": ["Fire"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Blizzard", "Earth Power", "Freeze-Dry", "Fusion Flare", "Protect"], + "abilities": ["Turboblaze"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "kyuremblack": { + "level": 75, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dragon Dance", "Fusion Bolt", "Icicle Spear", "Protect"], + "abilities": ["Teravolt"], + "teraTypes": ["Electric"] + } + ] + }, + "keldeoresolute": { + "level": 78, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Hydro Pump", "Muddy Water", "Secret Sword", "Vacuum Wave"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Steel", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Hydro Pump", "Muddy Water", "Protect", "Secret Sword", "Vacuum Wave"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Steel", "Water"] + } + ] + }, + "meloetta": { + "level": 80, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Calm Mind", "Focus Blast", "Hyper Voice", "Protect", "Psychic", "U-turn"], + "abilities": ["Serene Grace"], + "teraTypes": ["Fighting", "Normal", "Psychic"] + }, + { + "role": "Tera Blast user", + "movepool": ["Close Combat", "Psychic", "Relic Song", "Tera Blast"], + "abilities": ["Serene Grace"], + "teraTypes": ["Normal"] + } + ] + }, + "chesnaught": { + "level": 86, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Body Press", "Coaching", "Knock Off", "Leech Seed", "Spiky Shield", "Wood Hammer"], + "abilities": ["Bulletproof"], + "teraTypes": ["Fire", "Rock", "Steel", "Water"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Leech Seed", "Spiky Shield"], + "abilities": ["Bulletproof"], + "teraTypes": ["Fire", "Rock", "Steel", "Water"] + } + ] + }, + "delphox": { + "level": 83, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Fire Blast", "Heat Wave", "Nasty Plot", "Protect", "Psyshock"], + "abilities": ["Blaze"], + "teraTypes": ["Fire"] + } + ] + }, + "greninjabond": { + "level": 83, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dark Pulse", "Gunk Shot", "Hydro Pump", "Ice Beam", "Protect", "Taunt"], + "abilities": ["Battle Bond"], + "teraTypes": ["Dark", "Poison", "Water"] + } + ] + }, + "talonflame": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Brave Bird", "Overheat", "Protect", "Tailwind", "U-turn", "Will-O-Wisp"], + "abilities": ["Gale Wings"], + "teraTypes": ["Flying", "Ground"] + } + ] + }, + "vivillon": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Hurricane", "Pollen Puff", "Protect", "Sleep Powder"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Flying", "Steel"] + } + ] + }, + "pyroar": { + "level": 83, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Fire Blast", "Heat Wave", "Hyper Voice", "Protect", "Taunt", "Will-O-Wisp"], + "abilities": ["Unnerve"], + "teraTypes": ["Fire", "Normal", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Fire Blast", "Hyper Voice", "Protect", "Tera Blast"], + "abilities": ["Unnerve"], + "teraTypes": ["Grass"] + } + ] + }, + "florges": { + "level": 84, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Dazzling Gleam", "Moonblast", "Protect", "Synthesis"], + "abilities": ["Flower Veil"], + "teraTypes": ["Steel"] + } + ] + }, + "gogoat": { + "level": 89, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Double-Edge", "High Horsepower", "Horn Leech", "Leaf Storm"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ground", "Normal"] + } + ] + }, + "meowstic": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fake Out", "Fake Tears", "Helping Hand", "Light Screen", "Psychic", "Reflect"], + "abilities": ["Prankster"], + "teraTypes": ["Dark", "Steel"] + }, + { + "role": "Doubles Support", + "movepool": ["Fake Out", "Helping Hand", "Psychic", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "meowsticf": { + "level": 88, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Alluring Voice", "Dark Pulse", "Protect", "Psychic", "Thunderbolt"], + "abilities": ["Competitive"], + "teraTypes": ["Dark", "Electric", "Fairy"] + } + ] + }, + "malamar": { + "level": 80, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Knock Off", "Protect", "Psycho Cut", "Superpower", "Trick Room"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting"] + } + ] + }, + "dragalge": { + "level": 88, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Draco Meteor", "Hydro Pump", "Protect", "Sludge Bomb"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "clawitzer": { + "level": 84, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Aura Sphere", "Dark Pulse", "Dragon Pulse", "Muddy Water", "U-turn"], + "abilities": ["Mega Launcher"], + "teraTypes": ["Dark", "Dragon", "Fighting"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Heal Pulse", "Muddy Water", "Protect"], + "abilities": ["Mega Launcher"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "sylveon": { + "level": 79, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Hyper Voice", "Protect", "Substitute"], + "abilities": ["Pixilate"], + "teraTypes": ["Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Hyper Voice", "Protect", "Quick Attack", "Tera Blast"], + "abilities": ["Pixilate"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "hawlucha": { + "level": 84, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Brave Bird", "Close Combat", "Protect", "Swords Dance"], + "abilities": ["Unburden"], + "teraTypes": ["Fighting", "Fire", "Flying"] + } + ] + }, + "dedenne": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Dazzling Gleam", "Helping Hand", "Nuzzle", "Super Fang", "Thunderbolt"], + "abilities": ["Cheek Pouch"], + "teraTypes": ["Electric", "Flying"] + } + ] + }, + "carbink": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Moonblast", "Trick Room"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + } + ] + }, + "goodra": { + "level": 86, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Breaking Swipe", "Draco Meteor", "Fire Blast", "Power Whip", "Protect", "Scald", "Sludge Bomb", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Electric", "Fire", "Grass", "Poison", "Water"] + } + ] + }, + "goodrahisui": { + "level": 83, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Dragon Tail", "Fire Blast", "Heavy Slam", "Hydro Pump", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Electric", "Fire", "Water"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Acid Armor", "Body Press", "Heavy Slam", "Life Dew", "Protect"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Fighting"] + } + ] + }, + "klefki": { + "level": 82, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Dazzling Gleam", "Foul Play", "Light Screen", "Reflect", "Spikes", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "trevenant": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Poltergeist", "Protect", "Trick Room", "Wood Hammer"], + "abilities": ["Harvest"], + "teraTypes": ["Dark", "Water"] + } + ] + }, + "avalugg": { + "level": 91, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Avalanche", "Body Press", "Protect", "Recover"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting", "Poison", "Water"] + } + ] + }, + "avalugghisui": { + "level": 88, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Body Press", "Icicle Spear", "Protect", "Rock Blast"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting", "Flying", "Poison"] + } + ] + }, + "noivern": { + "level": 84, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Draco Meteor", "Flamethrower", "Hurricane", "Protect", "Tailwind"], + "abilities": ["Frisk"], + "teraTypes": ["Dragon", "Fire", "Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Flamethrower", "Hurricane", "Protect", "Tailwind"], + "abilities": ["Frisk"], + "teraTypes": ["Dragon", "Fire", "Steel"] + } + ] + }, + "diancie": { + "level": 78, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Diamond Storm", "Protect", "Trick Room"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Protect", + "movepool": ["Diamond Storm", "Moonblast", "Protect", "Trick Room"], + "abilities": ["Clear Body"], + "teraTypes": ["Grass", "Steel"] + } + ] + }, + "hoopa": { + "level": 85, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Focus Blast", "Hyperspace Hole", "Protect", "Shadow Ball", "Trick"], + "abilities": ["Magician"], + "teraTypes": ["Dark", "Fighting", "Psychic"] + } + ] + }, + "hoopaunbound": { + "level": 80, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Drain Punch", "Gunk Shot", "Hyperspace Fury", "Trick", "Zen Headbutt"], + "abilities": ["Magician"], + "teraTypes": ["Dark", "Fighting", "Poison"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Focus Blast", "Gunk Shot", "Hyperspace Fury", "Protect", "Psychic", "Trick"], + "abilities": ["Magician"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "volcanion": { + "level": 75, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Earth Power", "Heat Wave", "Protect", "Sludge Bomb", "Steam Eruption"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ground"] + } + ] + }, + "decidueye": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Knock Off", "Leaf Storm", "Protect", "Spirit Shackle", "Tailwind"], + "abilities": ["Overgrow"], + "teraTypes": ["Dark", "Ghost", "Water"] + } + ] + }, + "decidueyehisui": { + "level": 86, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Knock Off", "Leaf Blade", "Protect", "Tailwind", "Triple Arrows"], + "abilities": ["Scrappy"], + "teraTypes": ["Dark", "Fighting", "Steel"] + } + ] + }, + "incineroar": { + "level": 78, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fake Out", "Flare Blitz", "Knock Off", "Parting Shot"], + "abilities": ["Intimidate"], + "teraTypes": ["Water"] + } + ] + }, + "primarina": { + "level": 79, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Flip Turn", "Hydro Pump", "Hyper Voice", "Moonblast"], + "abilities": ["Liquid Voice"], + "teraTypes": ["Water"] + } + ] + }, + "toucannon": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Brave Bird", "Bullet Seed", "Protect", "Tailwind"], + "abilities": ["Skill Link"], + "teraTypes": ["Grass", "Steel"] + }, + { + "role": "Bulky Protect", + "movepool": ["Beak Blast", "Bullet Seed", "Knock Off", "Protect"], + "abilities": ["Skill Link"], + "teraTypes": ["Grass", "Steel"] + } + ] + }, + "gumshoos": { + "level": 93, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Double-Edge", "Knock Off", "Stomping Tantrum", "U-turn"], + "abilities": ["Adaptability"], + "teraTypes": ["Normal"] + } + ] + }, + "vikavolt": { + "level": 83, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Bug Buzz", "Electroweb", "Protect", "Sticky Web", "Thunderbolt"], + "abilities": ["Levitate"], + "teraTypes": ["Electric"] + } + ] + }, + "crabominable": { + "level": 89, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Drain Punch", "Gunk Shot", "Ice Hammer", "Protect", "Wide Guard"], + "abilities": ["Iron Fist"], + "teraTypes": ["Fire", "Poison"] + } + ] + }, + "oricorio": { + "level": 84, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Hurricane", "Protect", "Quiver Dance", "Revelation Dance", "Tailwind"], + "abilities": ["Dancer"], + "teraTypes": ["Ground"] + } + ] + }, + "oricoriopompom": { + "level": 83, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Hurricane", "Protect", "Quiver Dance", "Revelation Dance", "Tailwind"], + "abilities": ["Dancer"], + "teraTypes": ["Ground"] + } + ] + }, + "oricoriopau": { + "level": 89, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Hurricane", "Protect", "Quiver Dance", "Revelation Dance", "Tailwind"], + "abilities": ["Dancer"], + "teraTypes": ["Fighting", "Ground"] + } + ] + }, + "oricoriosensu": { + "level": 86, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Hurricane", "Protect", "Quiver Dance", "Revelation Dance", "Tailwind"], + "abilities": ["Dancer"], + "teraTypes": ["Fighting", "Ground"] + } + ] + }, + "ribombee": { + "level": 86, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Moonblast", "Pollen Puff", "Protect", "Tailwind"], + "abilities": ["Shield Dust"], + "teraTypes": ["Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dazzling Gleam", "Moonblast", "Protect", "Quiver Dance", "Tera Blast"], + "abilities": ["Shield Dust"], + "teraTypes": ["Ground"] + } + ] + }, + "lycanroc": { + "level": 85, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Accelerock", "Close Combat", "Drill Run", "Protect", "Rock Slide", "Swords Dance"], + "abilities": ["Sand Rush"], + "teraTypes": ["Fighting"] + } + ] + }, + "lycanrocmidnight": { + "level": 84, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Knock Off", "Rock Slide", "Stone Edge"], + "abilities": ["No Guard"], + "teraTypes": ["Fighting", "Rock", "Water"] + } + ] + }, + "lycanrocdusk": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Accelerock", "Close Combat", "Protect", "Psychic Fangs", "Rock Slide", "Swords Dance"], + "abilities": ["Tough Claws"], + "teraTypes": ["Fighting"] + } + ] + }, + "toxapex": { + "level": 94, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Baneful Bunker", "Infestation", "Recover", "Toxic"], + "abilities": ["Regenerator"], + "teraTypes": ["Grass", "Steel"] + } + ] + }, + "mudsdale": { + "level": 84, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Heavy Slam", "High Horsepower", "Rest", "Stone Edge"], + "abilities": ["Stamina"], + "teraTypes": ["Fighting"] + } + ] + }, + "araquanid": { + "level": 85, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Liquidation", "Lunge", "Protect", "Sticky Web", "Wide Guard"], + "abilities": ["Water Bubble"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Leech Life", "Liquidation", "Protect", "Sticky Web", "Wide Guard"], + "abilities": ["Water Bubble"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Hydro Pump", "Liquidation", "Protect", "Sticky Web", "Wide Guard"], + "abilities": ["Water Bubble"], + "teraTypes": ["Water"] + } + ] + }, + "lurantis": { + "level": 86, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Leaf Blade", "Leaf Storm", "Pollen Puff", "Superpower"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Protect", + "movepool": ["Knock Off", "Leaf Blade", "Pollen Puff", "Protect", "Superpower"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting"] + }, + { + "role": "Tera Blast user", + "movepool": ["Knock Off", "Leaf Storm", "Superpower", "Tera Blast"], + "abilities": ["Contrary"], + "teraTypes": ["Stellar"] + } + ] + }, + "salazzle": { + "level": 86, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Encore", "Fake Out", "Fire Blast", "Heat Wave", "Incinerate", "Poison Gas", "Protect", "Sludge Bomb"], + "abilities": ["Corrosion"], + "teraTypes": ["Fire", "Flying", "Water"] + } + ] + }, + "tsareena": { + "level": 84, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["High Jump Kick", "Knock Off", "Power Whip", "Rapid Spin", "Triple Axel"], + "abilities": ["Queenly Majesty"], + "teraTypes": ["Fighting", "Fire"] + } + ] + }, + "comfey": { + "level": 89, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Draining Kiss", "Floral Healing", "Helping Hand", "Tailwind"], + "abilities": ["Triage"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "oranguru": { + "level": 91, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Hyper Voice", "Instruct", "Psyshock", "Trick Room"], + "abilities": ["Telepathy"], + "teraTypes": ["Fairy"] + } + ] + }, + "passimian": { + "level": 82, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Gunk Shot", "Knock Off", "Rock Slide", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "palossand": { + "level": 90, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Earth Power", "Protect", "Shadow Ball", "Shore Up", "Stealth Rock"], + "abilities": ["Water Compaction"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "minior": { + "level": 82, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Acrobatics", "Protect", "Rock Slide", "Shell Smash"], + "abilities": ["Shields Down"], + "teraTypes": ["Flying", "Rock", "Steel"] + } + ] + }, + "komala": { + "level": 92, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Double-Edge", "Knock Off", "Rapid Spin", "Sucker Punch", "Superpower", "U-turn", "Wood Hammer"], + "abilities": ["Comatose"], + "teraTypes": ["Fighting", "Grass"] + } + ] + }, + "mimikyu": { + "level": 82, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Play Rough", "Protect", "Shadow Claw", "Shadow Sneak", "Swords Dance"], + "abilities": ["Disguise"], + "teraTypes": ["Ghost"] + } + ] + }, + "bruxish": { + "level": 86, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Crunch", "Protect", "Psychic Fangs", "Wave Crash"], + "abilities": ["Strong Jaw"], + "teraTypes": ["Dark", "Psychic"] + }, + { + "role": "Choice Item user", + "movepool": ["Aqua Jet", "Crunch", "Flip Turn", "Ice Fang", "Psychic Fangs", "Wave Crash"], + "abilities": ["Strong Jaw"], + "teraTypes": ["Dark"] + } + ] + }, + "solgaleo": { + "level": 74, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Flare Blitz", "Knock Off", "Psychic Fangs", "Sunsteel Strike"], + "abilities": ["Full Metal Body"], + "teraTypes": ["Dark", "Fighting", "Fire"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Close Combat", "Flame Charge", "Protect", "Sunsteel Strike"], + "abilities": ["Full Metal Body"], + "teraTypes": ["Fighting", "Fire"] + } + ] + }, + "lunala": { + "level": 71, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Icy Wind", "Moongeist Beam", "Moonlight", "Tailwind", "Wide Guard", "Will-O-Wisp"], + "abilities": ["Shadow Shield"], + "teraTypes": ["Dark"] + }, + { + "role": "Offensive Protect", + "movepool": ["Meteor Beam", "Moonblast", "Moongeist Beam", "Protect"], + "abilities": ["Shadow Shield"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Moonblast", "Moongeist Beam", "Protect"], + "abilities": ["Shadow Shield"], + "teraTypes": ["Fairy"] + } + ] + }, + "necrozma": { + "level": 80, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Brick Break", "Dragon Dance", "Knock Off", "Photon Geyser"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark", "Fighting"] + }, + { + "role": "Offensive Protect", + "movepool": ["Earth Power", "Meteor Beam", "Photon Geyser", "Protect"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark", "Steel"] + }, + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Earth Power", "Photon Geyser", "Protect"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "necrozmaduskmane": { + "level": 71, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Photon Geyser", "Protect", "Sunsteel Strike"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark", "Steel", "Water"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Earthquake", "Photon Geyser", "Protect", "Sunsteel Strike", "Trick Room"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark", "Steel", "Water"] + } + ] + }, + "necrozmadawnwings": { + "level": 74, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Moongeist Beam", "Photon Geyser", "Protect", "Trick Room"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark"] + }, + { + "role": "Tera Blast user", + "movepool": ["Moongeist Beam", "Photon Geyser", "Tera Blast", "Trick Room"], + "abilities": ["Prism Armor"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "kommoo": { + "level": 79, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Clanging Scales", "Clangorous Soul", "Drain Punch", "Iron Head"], + "abilities": ["Soundproof"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Clanging Scales", "Clangorous Soul", "Iron Head", "Protect"], + "abilities": ["Soundproof"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Protect", + "movepool": ["Body Press", "Iron Defense", "Protect", "Throat Chop"], + "abilities": ["Soundproof"], + "teraTypes": ["Steel"] + } + ] + }, + "magearna": { + "level": 71, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Dazzling Gleam", "Flash Cannon", "Fleur Cannon", "Protect", "Trick Room"], + "abilities": ["Soul-Heart"], + "teraTypes": ["Fairy", "Water"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Aura Sphere", "Dazzling Gleam", "Flash Cannon", "Fleur Cannon"], + "abilities": ["Soul-Heart"], + "teraTypes": ["Fairy", "Fighting", "Water"] + } + ] + }, + "rillaboom": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fake Out", "Grassy Glide", "High Horsepower", "Wood Hammer"], + "abilities": ["Grassy Surge"], + "teraTypes": ["Fire", "Grass", "Steel"] + }, + { + "role": "Doubles Support", + "movepool": ["Fake Out", "Grassy Glide", "U-turn", "Wood Hammer"], + "abilities": ["Grassy Surge"], + "teraTypes": ["Fire", "Grass", "Steel"] + } + ] + }, + "cinderace": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Court Change", "Gunk Shot", "High Jump Kick", "Protect", "Pyro Ball", "Sucker Punch", "U-turn"], + "abilities": ["Blaze"], + "teraTypes": ["Fighting", "Fire", "Poison"] + } + ] + }, + "inteleon": { + "level": 78, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Hydro Pump", "Ice Beam", "Muddy Water", "Scald"], + "abilities": ["Torrent"], + "teraTypes": ["Water"] + } + ] + }, + "greedent": { + "level": 86, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Double-Edge", "High Horsepower", "Knock Off", "Protect", "Swords Dance"], + "abilities": ["Cheek Pouch"], + "teraTypes": ["Fairy", "Ghost", "Ground"] + } + ] + }, + "corviknight": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Brave Bird", "Iron Head", "Roost", "Tailwind", "U-turn"], + "abilities": ["Mirror Armor"], + "teraTypes": ["Dragon"] + } + ] + }, + "drednaw": { + "level": 83, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Crunch", "Liquidation", "Rock Slide", "Shell Smash"], + "abilities": ["Strong Jaw"], + "teraTypes": ["Dark"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Liquidation", "Protect", "Rock Slide", "Shell Smash"], + "abilities": ["Shell Armor", "Swift Swim"], + "teraTypes": ["Water"] + } + ] + }, + "coalossal": { + "level": 91, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fire Blast", "Heat Wave", "Incinerate", "Protect", "Rapid Spin", "Stealth Rock", "Stone Edge", "Will-O-Wisp"], + "abilities": ["Flame Body"], + "teraTypes": ["Water"] + } + ] + }, + "flapple": { + "level": 94, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Dragon Dance", "Dragon Rush", "Grav Apple", "Protect", "Sucker Punch"], + "abilities": ["Ripen"], + "teraTypes": ["Fire", "Grass", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Grav Apple", "Protect", "Tera Blast"], + "abilities": ["Hustle"], + "teraTypes": ["Dragon", "Fire"] + } + ] + }, + "appletun": { + "level": 91, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Apple Acid", "Dragon Pulse", "Leech Seed", "Protect"], + "abilities": ["Ripen", "Thick Fat"], + "teraTypes": ["Steel"] + } + ] + }, + "sandaconda": { + "level": 87, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Coil", "High Horsepower", "Rest", "Stone Edge"], + "abilities": ["Shed Skin"], + "teraTypes": ["Dragon", "Steel"] + }, + { + "role": "Doubles Support", + "movepool": ["Glare", "High Horsepower", "Rest", "Stealth Rock", "Stone Edge"], + "abilities": ["Shed Skin"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "cramorant": { + "level": 86, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Brave Bird", "Protect", "Roost", "Surf", "Tailwind"], + "abilities": ["Gulp Missile"], + "teraTypes": ["Ground"] + } + ] + }, + "barraskewda": { + "level": 85, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Poison Jab", "Protect", "Psychic Fangs", "Waterfall"], + "abilities": ["Propeller Tail"], + "teraTypes": ["Fighting"] + } + ] + }, + "toxtricity": { + "level": 82, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Overdrive", "Sludge Bomb", "Snarl", "Volt Switch"], + "abilities": ["Punk Rock"], + "teraTypes": ["Dark", "Electric", "Flying"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Overdrive", "Psychic Noise", "Sludge Bomb", "Volt Switch"], + "abilities": ["Punk Rock"], + "teraTypes": ["Electric", "Flying", "Psychic"] + } + ] + }, + "toxtricitylowkey": { + "level": 82, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Overdrive", "Sludge Bomb", "Snarl", "Volt Switch"], + "abilities": ["Punk Rock"], + "teraTypes": ["Dark", "Electric", "Flying"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Overdrive", "Psychic Noise", "Sludge Bomb", "Volt Switch"], + "abilities": ["Punk Rock"], + "teraTypes": ["Electric", "Flying", "Psychic"] + } + ] + }, + "polteageist": { + "level": 85, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Protect", "Shadow Ball", "Shell Smash", "Tera Blast"], + "abilities": ["Cursed Body"], + "teraTypes": ["Fighting"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Baton Pass", "Protect", "Shadow Ball", "Shell Smash"], + "abilities": ["Cursed Body"], + "teraTypes": ["Dark", "Normal"] + } + ] + }, + "hatterene": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Dazzling Gleam", "Mystical Fire", "Protect", "Psychic", "Trick Room"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Fairy", "Fire", "Psychic", "Steel"] + } + ] + }, + "grimmsnarl": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Fake Out", "Light Screen", "Parting Shot", "Reflect", "Spirit Break"], + "abilities": ["Prankster"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Support", + "movepool": ["Fake Out", "Parting Shot", "Spirit Break", "Sucker Punch", "Taunt", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Steel"] + } + ] + }, + "perrserker": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Fake Out", "Helping Hand", "Iron Head", "Knock Off", "U-turn"], + "abilities": ["Steely Spirit", "Tough Claws"], + "teraTypes": ["Fighting", "Steel"] + }, + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Iron Head", "Knock Off", "U-turn"], + "abilities": ["Steely Spirit", "Tough Claws"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "alcremie": { + "level": 89, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Alluring Voice", "Dazzling Gleam", "Decorate", "Encore", "Protect"], + "abilities": ["Aroma Veil"], + "teraTypes": ["Steel"] + } + ] + }, + "falinks": { + "level": 87, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Close Combat", "Iron Head", "Knock Off", "No Retreat", "Protect", "Rock Slide"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "pincurchin": { + "level": 97, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Electroweb", "Recover", "Thunderbolt", "Toxic Spikes"], + "abilities": ["Electric Surge"], + "teraTypes": ["Grass"] + } + ] + }, + "frosmoth": { + "level": 86, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Bug Buzz", "Ice Beam", "Protect", "Quiver Dance"], + "abilities": ["Ice Scales"], + "teraTypes": ["Ground", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Ice Beam", "Protect", "Quiver Dance", "Tera Blast"], + "abilities": ["Ice Scales"], + "teraTypes": ["Ground"] + } + ] + }, + "stonjourner": { + "level": 88, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Heat Crash", "High Horsepower", "Protect", "Rock Polish", "Stone Edge"], + "abilities": ["Power Spot"], + "teraTypes": ["Fire", "Rock"] + }, + { + "role": "Choice Item user", + "movepool": ["Heat Crash", "High Horsepower", "Rock Slide", "Stone Edge"], + "abilities": ["Power Spot"], + "teraTypes": ["Fire", "Rock"] + } + ] + }, + "eiscue": { + "level": 89, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Belly Drum", "Ice Spinner", "Liquidation", "Protect"], + "abilities": ["Ice Face"], + "teraTypes": ["Water"] + } + ] + }, + "indeedee": { + "level": 79, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Encore", "Expanding Force", "Hyper Voice", "Protect", "Shadow Ball"], + "abilities": ["Psychic Surge"], + "teraTypes": ["Fairy", "Psychic"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Expanding Force", "Hyper Voice", "Psyshock", "Trick"], + "abilities": ["Psychic Surge"], + "teraTypes": ["Psychic"] + }, + { + "role": "Tera Blast user", + "movepool": ["Encore", "Expanding Force", "Protect", "Shadow Ball", "Tera Blast", "Trick"], + "abilities": ["Psychic Surge"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "indeedeef": { + "level": 90, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Follow Me", "Heal Pulse", "Helping Hand", "Protect", "Psychic"], + "abilities": ["Psychic Surge"], + "teraTypes": ["Fairy"] + } + ] + }, + "morpeko": { + "level": 88, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Aura Wheel", "Electroweb", "Fake Out", "Knock Off", "Protect"], + "abilities": ["Hunger Switch"], + "teraTypes": ["Electric"] + }, + { + "role": "Offensive Protect", + "movepool": ["Aura Wheel", "Knock Off", "Parting Shot", "Protect", "Volt Switch"], + "abilities": ["Hunger Switch"], + "teraTypes": ["Electric"] + } + ] + }, + "copperajah": { + "level": 86, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["High Horsepower", "Iron Head", "Play Rough", "Protect", "Rock Slide"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fairy", "Rock"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Heat Crash", "Heavy Slam", "High Horsepower", "Stone Edge"], + "abilities": ["Heavy Metal"], + "teraTypes": ["Fire"] + } + ] + }, + "duraludon": { + "level": 84, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Draco Meteor", "Flash Cannon", "Iron Defense"], + "abilities": ["Stalwart"], + "teraTypes": ["Fighting"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Body Press", "Flash Cannon", "Iron Defense", "Protect", "Snarl", "Thunder Wave"], + "abilities": ["Stalwart"], + "teraTypes": ["Fighting"] + } + ] + }, + "dragapult": { + "level": 79, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Draco Meteor", "Dragon Darts", "Fire Blast", "Protect", "Shadow Ball"], + "abilities": ["Clear Body"], + "teraTypes": ["Dragon"] + }, + { + "role": "Choice Item user", + "movepool": ["Dragon Claw", "Dragon Darts", "Phantom Force", "U-turn"], + "abilities": ["Clear Body"], + "teraTypes": ["Dragon"] + } + ] + }, + "zacian": { + "level": 70, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Close Combat", "Play Rough", "Protect", "Psychic Fangs", "Swords Dance"], + "abilities": ["Intrepid Sword"], + "teraTypes": ["Fighting"] + } + ] + }, + "zaciancrowned": { + "level": 66, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Behemoth Blade", "Close Combat", "Play Rough", "Protect", "Swords Dance"], + "abilities": ["Intrepid Sword"], + "teraTypes": ["Fairy", "Fighting", "Fire", "Steel"] + } + ] + }, + "zamazenta": { + "level": 72, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Coaching", "Crunch", "Howl", "Iron Head", "Psychic Fangs", "Stone Edge"], + "abilities": ["Dauntless Shield"], + "teraTypes": ["Dark", "Fighting", "Steel"] + }, + { + "role": "Bulky Protect", + "movepool": ["Body Press", "Crunch", "Iron Defense", "Protect"], + "abilities": ["Dauntless Shield"], + "teraTypes": ["Fighting", "Fire", "Steel"] + } + ] + }, + "zamazentacrowned": { + "level": 68, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Body Press", "Coaching", "Heavy Slam", "Iron Defense", "Protect", "Snarl", "Wide Guard"], + "abilities": ["Dauntless Shield"], + "teraTypes": ["Fighting", "Fire", "Steel"] + } + ] + }, + "eternatus": { + "level": 70, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Cosmic Power", "Dynamax Cannon", "Flamethrower", "Recover"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Water"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Dynamax Cannon", "Fire Blast", "Recover", "Sludge Bomb", "Toxic Spikes"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Dynamax Cannon", "Fire Blast", "Meteor Beam", "Protect"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Water"] + } + ] + }, + "urshifu": { + "level": 75, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Poison Jab", "Protect", "Sucker Punch", "Wicked Blow"], + "abilities": ["Unseen Fist"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "urshifurapidstrike": { + "level": 76, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Aqua Jet", "Close Combat", "Ice Spinner", "Protect", "Surging Strikes", "U-turn"], + "abilities": ["Unseen Fist"], + "teraTypes": ["Water"] + } + ] + }, + "zarude": { + "level": 80, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Jungle Healing", "Knock Off", "Power Whip", "Protect"], + "abilities": ["Leaf Guard"], + "teraTypes": ["Poison"] + } + ] + }, + "regieleki": { + "level": 79, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Electroweb", "Protect", "Thunderbolt", "Volt Switch"], + "abilities": ["Transistor"], + "teraTypes": ["Electric"] + }, + { + "role": "Tera Blast user", + "movepool": ["Electroweb", "Protect", "Tera Blast", "Thunderbolt"], + "abilities": ["Transistor"], + "teraTypes": ["Ice"] + } + ] + }, + "regidrago": { + "level": 74, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Draco Meteor", "Dragon Claw", "Dragon Energy", "Earth Power"], + "abilities": ["Dragon's Maw"], + "teraTypes": ["Dragon"] + } + ] + }, + "glastrier": { + "level": 80, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Heavy Slam", "High Horsepower", "Icicle Crash", "Protect"], + "abilities": ["Chilling Neigh"], + "teraTypes": ["Fighting", "Ground", "Steel"] + } + ] + }, + "spectrier": { + "level": 77, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Draining Kiss", "Nasty Plot", "Protect", "Shadow Ball"], + "abilities": ["Grim Neigh"], + "teraTypes": ["Fairy"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dark Pulse", "Nasty Plot", "Protect", "Shadow Ball"], + "abilities": ["Grim Neigh"], + "teraTypes": ["Dark"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Protect", "Shadow Ball", "Tera Blast"], + "abilities": ["Grim Neigh"], + "teraTypes": ["Fighting"] + } + ] + }, + "calyrex": { + "level": 95, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Giga Drain", "Helping Hand", "Leaf Storm", "Leech Seed", "Pollen Puff", "Psychic"], + "abilities": ["Unnerve"], + "teraTypes": ["Steel"] + } + ] + }, + "calyrexice": { + "level": 65, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Glacial Lance", "High Horsepower", "Protect", "Trick Room"], + "abilities": ["As One (Glastrier)"], + "teraTypes": ["Ground", "Ice"] + } + ] + }, + "calyrexshadow": { + "level": 62, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Astral Barrage", "Encore", "Nasty Plot", "Pollen Puff", "Protect", "Psyshock"], + "abilities": ["As One (Spectrier)"], + "teraTypes": ["Dark", "Ghost"] + } + ] + }, + "wyrdeer": { + "level": 85, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Slam", "Double-Edge", "Earth Power", "Protect", "Psychic", "Thunder Wave", "Thunderbolt"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Double-Edge", "Earth Power", "Psychic", "Trick Room"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy", "Ground"] + } + ] + }, + "kleavor": { + "level": 79, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Protect", "Stone Axe", "Tailwind", "U-turn", "X-Scissor"], + "abilities": ["Sharpness"], + "teraTypes": ["Bug", "Fighting", "Rock", "Steel"] + } + ] + }, + "ursaluna": { + "level": 77, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Crunch", "Earthquake", "Facade", "Headlong Rush", "Protect"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "ursalunabloodmoon": { + "level": 78, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Blood Moon", "Earth Power", "Hyper Voice", "Protect"], + "abilities": ["Mind's Eye"], + "teraTypes": ["Normal"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Blood Moon", "Earth Power", "Hyper Voice", "Vacuum Wave"], + "abilities": ["Mind's Eye"], + "teraTypes": ["Normal"] + } + ] + }, + "enamorus": { + "level": 79, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Play Rough", "Protect", "Superpower", "Tailwind"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting"] + }, + { + "role": "Offensive Protect", + "movepool": ["Earth Power", "Protect", "Springtide Storm", "Tailwind"], + "abilities": ["Contrary"], + "teraTypes": ["Ground"] + }, + { + "role": "Tera Blast user", + "movepool": ["Protect", "Springtide Storm", "Superpower", "Tera Blast"], + "abilities": ["Contrary"], + "teraTypes": ["Stellar"] + } + ] + }, + "enamorustherian": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Earth Power", "Moonblast", "Mystical Fire", "Protect", "Springtide Storm"], + "abilities": ["Overcoat"], + "teraTypes": ["Fairy", "Ground"] + } + ] + }, + "meowscarada": { + "level": 79, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Flower Trick", "Knock Off", "Sucker Punch", "Triple Axel", "U-turn"], + "abilities": ["Protean"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Offensive Protect", + "movepool": ["Flower Trick", "Knock Off", "Protect", "Sucker Punch", "Taunt"], + "abilities": ["Overgrow"], + "teraTypes": ["Poison"] + } + ] + }, + "skeledirge": { + "level": 80, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Protect", "Shadow Ball", "Slack Off", "Torch Song"], + "abilities": ["Unaware"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "quaquaval": { + "level": 82, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Aqua Jet", "Aqua Step", "Close Combat", "Knock Off", "Protect", "Triple Axel"], + "abilities": ["Moxie"], + "teraTypes": ["Fire", "Steel", "Water"] + } + ] + }, + "oinkologne": { + "level": 91, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Double-Edge", "Helping Hand", "Lash Out", "Protect", "Yawn"], + "abilities": ["Gluttony"], + "teraTypes": ["Ghost", "Normal"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Double-Edge", "High Horsepower", "Lash Out", "Play Rough"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Ground", "Normal"] + } + ] + }, + "oinkolognef": { + "level": 92, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Double-Edge", "Helping Hand", "Lash Out", "Protect", "Yawn"], + "abilities": ["Gluttony"], + "teraTypes": ["Ghost", "Normal"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Double-Edge", "High Horsepower", "Lash Out", "Play Rough"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Ground", "Normal"] + } + ] + }, + "spidops": { + "level": 100, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Circle Throw", "Knock Off", "Lunge", "Sticky Web", "String Shot", "U-turn"], + "abilities": ["Stakeout"], + "teraTypes": ["Water"] + } + ] + }, + "lokix": { + "level": 87, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["First Impression", "Protect", "Sucker Punch", "U-turn"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["First Impression", "Leech Life", "Protect", "Sucker Punch"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug"] + } + ] + }, + "pawmot": { + "level": 80, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Double Shock", "Fake Out", "Protect", "Revival Blessing"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Electric"] + } + ] + }, + "maushold": { + "level": 79, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Encore", "Population Bomb", "Protect", "Tidy Up"], + "abilities": ["Technician"], + "teraTypes": ["Normal"] + }, + { + "role": "Doubles Support", + "movepool": ["Encore", "Follow Me", "Population Bomb", "Protect", "Taunt", "Thunder Wave", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "dachsbun": { + "level": 90, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Body Press", "Helping Hand", "Howl", "Play Rough", "Snarl", "Yawn"], + "abilities": ["Well-Baked Body"], + "teraTypes": ["Steel"] + } + ] + }, + "arboliva": { + "level": 88, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Earth Power", "Energy Ball", "Hyper Voice", "Pollen Puff", "Protect", "Strength Sap"], + "abilities": ["Seed Sower"], + "teraTypes": ["Grass"] + } + ] + }, + "squawkabilly": { + "level": 90, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Double-Edge", "Parting Shot", "Protect", "Quick Attack"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying", "Normal", "Steel"] + } + ] + }, + "squawkabillywhite": { + "level": 90, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Double-Edge", "Parting Shot", "Protect", "Quick Attack"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying", "Normal", "Steel"] + } + ] + }, + "squawkabillyblue": { + "level": 90, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Double-Edge", "Parting Shot", "Protect", "Quick Attack"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying", "Normal", "Steel"] + } + ] + }, + "squawkabillyyellow": { + "level": 90, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Double-Edge", "Parting Shot", "Protect", "Quick Attack"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying", "Normal", "Steel"] + } + ] + }, + "garganacl": { + "level": 81, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Protect", "Recover", "Salt Cure", "Stealth Rock", "Wide Guard"], + "abilities": ["Purifying Salt"], + "teraTypes": ["Ghost"] + } + ] + }, + "armarouge": { + "level": 81, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Armor Cannon", "Aura Sphere", "Energy Ball", "Heat Wave", "Psyshock"], + "abilities": ["Flash Fire"], + "teraTypes": ["Fighting", "Fire", "Grass"] + }, + { + "role": "Offensive Protect", + "movepool": ["Heat Wave", "Protect", "Psychic", "Trick Room"], + "abilities": ["Flash Fire"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Heat Wave", "Meteor Beam", "Protect", "Psychic", "Psyshock"], + "abilities": ["Weak Armor"], + "teraTypes": ["Dark", "Grass"] + } + ] + }, + "ceruledge": { + "level": 80, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Bitter Blade", "Poltergeist", "Protect", "Shadow Sneak", "Swords Dance"], + "abilities": ["Weak Armor"], + "teraTypes": ["Fire", "Ghost", "Grass"] + } + ] + }, + "bellibolt": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Electroweb", "Muddy Water", "Slack Off", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Electromorphosis"], + "teraTypes": ["Water"] + } + ] + }, + "kilowattrel": { + "level": 80, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Hurricane", "Protect", "Tailwind", "Thunderbolt"], + "abilities": ["Competitive"], + "teraTypes": ["Flying", "Steel"] + } + ] + }, + "mabosstiff": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Crunch", "Fire Fang", "Play Rough", "Psychic Fangs", "Wild Charge"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy"] + } + ] + }, + "grafaiai": { + "level": 88, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Encore", "Gunk Shot", "Knock Off", "Parting Shot", "Protect", "Taunt"], + "abilities": ["Prankster"], + "teraTypes": ["Dark"] + }, + { + "role": "Doubles Support", + "movepool": ["Gunk Shot", "Knock Off", "Super Fang", "U-turn"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark"] + } + ] + }, + "brambleghast": { + "level": 86, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Poltergeist", "Power Whip", "Protect", "Shadow Sneak"], + "abilities": ["Wind Rider"], + "teraTypes": ["Fairy", "Ghost", "Grass", "Steel", "Water"] + }, + { + "role": "Doubles Support", + "movepool": ["Disable", "Poltergeist", "Power Whip", "Protect", "Rapid Spin", "Strength Sap"], + "abilities": ["Wind Rider"], + "teraTypes": ["Fairy", "Steel", "Water"] + } + ] + }, + "toedscruel": { + "level": 87, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Earth Power", "Giga Drain", "Knock Off", "Rage Powder", "Spore"], + "abilities": ["Mycelium Might"], + "teraTypes": ["Water"] + } + ] + }, + "klawf": { + "level": 91, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Crabhammer", "High Horsepower", "Knock Off", "Protect", "Rock Slide"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Ground", "Water"] + }, + { + "role": "Choice Item user", + "movepool": ["Crabhammer", "High Horsepower", "Knock Off", "Rock Slide"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Ground", "Water"] + } + ] + }, + "scovillain": { + "level": 89, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Burning Jealousy", "Energy Ball", "Fire Blast", "Leaf Storm"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Grass", "Steel"] + }, + { + "role": "Doubles Support", + "movepool": ["Energy Ball", "Fire Blast", "Protect", "Rage Powder", "Will-O-Wisp"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Grass", "Steel"] + } + ] + }, + "rabsca": { + "level": 88, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Psychic", "Revival Blessing", "Struggle Bug", "Trick Room"], + "abilities": ["Synchronize"], + "teraTypes": ["Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Bug Buzz", "Psychic", "Revival Blessing", "Trick Room"], + "abilities": ["Synchronize"], + "teraTypes": ["Steel"] + } + ] + }, + "espathra": { + "level": 83, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Baton Pass", "Dazzling Gleam", "Lumina Crash", "Protect", "Shadow Ball"], + "abilities": ["Speed Boost"], + "teraTypes": ["Fairy"] + } + ] + }, + "tinkaton": { + "level": 82, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Encore", "Fake Out", "Gigaton Hammer", "Knock Off", "Play Rough", "Stealth Rock", "Thunder Wave"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "wugtrio": { + "level": 92, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Aqua Jet", "Liquidation", "Stomping Tantrum", "Throat Chop"], + "abilities": ["Gooey"], + "teraTypes": ["Dark", "Ground"] + } + ] + }, + "bombirdier": { + "level": 84, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Brave Bird", "Knock Off", "Rock Slide", "Sucker Punch"], + "abilities": ["Rocky Payload"], + "teraTypes": ["Rock"] + }, + { + "role": "Offensive Protect", + "movepool": ["Brave Bird", "Knock Off", "Protect", "Rock Slide"], + "abilities": ["Rocky Payload"], + "teraTypes": ["Rock"] + } + ] + }, + "palafin": { + "level": 79, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Close Combat", "Flip Turn", "Jet Punch", "Wave Crash"], + "abilities": ["Zero to Hero"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Flip Turn", "Jet Punch", "Protect", "Wave Crash"], + "abilities": ["Zero to Hero"], + "teraTypes": ["Water"] + } + ] + }, + "revavroom": { + "level": 84, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Gunk Shot", "Iron Head", "Parting Shot", "Protect"], + "abilities": ["Filter"], + "teraTypes": ["Flying", "Water"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Gunk Shot", "High Horsepower", "Iron Head", "Protect", "Shift Gear"], + "abilities": ["Filter"], + "teraTypes": ["Ground"] + } + ] + }, + "cyclizar": { + "level": 87, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Breaking Swipe", "Double-Edge", "Knock Off", "Shed Tail", "Taunt"], + "abilities": ["Regenerator"], + "teraTypes": ["Dragon", "Poison"] + }, + { + "role": "Doubles Fast Attacker", + "movepool": ["Double-Edge", "Draco Meteor", "Knock Off", "Shed Tail"], + "abilities": ["Regenerator"], + "teraTypes": ["Dragon", "Fire", "Normal", "Poison"] + } + ] + }, + "orthworm": { + "level": 88, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Body Press", "Heavy Slam", "Iron Defense", "Protect"], + "abilities": ["Earth Eater"], + "teraTypes": ["Electric", "Fighting"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Heavy Slam", "Helping Hand", "Protect", "Shed Tail"], + "abilities": ["Earth Eater"], + "teraTypes": ["Electric", "Poison"] + } + ] + }, + "glimmora": { + "level": 77, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Earth Power", "Mortal Spin", "Power Gem", "Sludge Bomb", "Spiky Shield", "Stealth Rock"], + "abilities": ["Toxic Debris"], + "teraTypes": ["Grass", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Earth Power", "Meteor Beam", "Sludge Bomb", "Spiky Shield"], + "abilities": ["Toxic Debris"], + "teraTypes": ["Ground"] + } + ] + }, + "houndstone": { + "level": 73, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Body Press", "Last Respects", "Shadow Sneak", "Trick"], + "abilities": ["Fluffy"], + "teraTypes": ["Ghost"] + } + ] + }, + "flamigo": { + "level": 84, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Brave Bird", "Close Combat", "Throat Chop", "U-turn"], + "abilities": ["Scrappy"], + "teraTypes": ["Fighting", "Fire", "Flying"] + } + ] + }, + "cetitan": { + "level": 83, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["High Horsepower", "Ice Shard", "Icicle Crash", "Liquidation", "Protect"], + "abilities": ["Sheer Force"], + "teraTypes": ["Ground", "Water"] + } + ] + }, + "veluza": { + "level": 88, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Aqua Cutter", "Aqua Jet", "Night Slash", "Psycho Cut"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Psychic", "Water"] + } + ] + }, + "dondozo": { + "level": 85, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Avalanche", "Body Press", "Heavy Slam", "Wave Crash"], + "abilities": ["Unaware"], + "teraTypes": ["Dragon", "Grass", "Steel"] + } + ] + }, + "tatsugiri": { + "level": 84, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Icy Wind", "Muddy Water", "Rapid Spin"], + "abilities": ["Storm Drain"], + "teraTypes": ["Fire", "Steel"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Draco Meteor", "Muddy Water", "Nasty Plot", "Protect"], + "abilities": ["Storm Drain"], + "teraTypes": ["Dragon", "Fire", "Water"] + }, + { + "role": "Choice Item user", + "movepool": ["Draco Meteor", "Hydro Pump", "Icy Wind", "Muddy Water"], + "abilities": ["Storm Drain"], + "teraTypes": ["Dragon", "Fire", "Water"] + } + ] + }, + "farigiraf": { + "level": 84, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Hyper Voice", "Nasty Plot", "Protect", "Psychic", "Psyshock", "Trick Room"], + "abilities": ["Armor Tail"], + "teraTypes": ["Fairy"] + } + ] + }, + "dudunsparce": { + "level": 86, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Earth Power", "Glare", "Hyper Drill", "Protect", "Tailwind"], + "abilities": ["Rattled"], + "teraTypes": ["Ghost", "Ground", "Normal"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Boomburst", "Earth Power", "Helping Hand", "Protect", "Tailwind"], + "abilities": ["Rattled"], + "teraTypes": ["Ghost", "Ground", "Normal"] + } + ] + }, + "kingambit": { + "level": 77, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Iron Head", "Protect", "Sucker Punch", "Swords Dance"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Fire", "Flying"] + }, + { + "role": "Bulky Protect", + "movepool": ["Iron Head", "Kowtow Cleave", "Protect", "Sucker Punch"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Fire", "Flying"] + }, + { + "role": "Tera Blast user", + "movepool": ["Iron Head", "Kowtow Cleave", "Sucker Punch", "Tera Blast"], + "abilities": ["Defiant"], + "teraTypes": ["Fairy", "Fire", "Flying"] + } + ] + }, + "greattusk": { + "level": 81, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Headlong Rush", "Ice Spinner", "Knock Off", "Protect", "Rapid Spin", "Rock Slide"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "brutebonnet": { + "level": 80, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Crunch", "Protect", "Rage Powder", "Seed Bomb", "Spore", "Sucker Punch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "sandyshocks": { + "level": 79, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Earth Power", "Electroweb", "Protect", "Stealth Rock", "Thunderbolt", "Volt Switch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Grass", "Ground"] + }, + { + "role": "Tera Blast user", + "movepool": ["Earth Power", "Protect", "Tera Blast", "Volt Switch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Flying", "Ice"] + } + ] + }, + "screamtail": { + "level": 83, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Disable", "Encore", "Helping Hand", "Howl", "Play Rough", "Stealth Rock", "Thunder Wave"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Steel"] + } + ] + }, + "fluttermane": { + "level": 73, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dazzling Gleam", "Moonblast", "Protect", "Shadow Ball"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fairy"] + }, + { + "role": "Choice Item user", + "movepool": ["Dazzling Gleam", "Icy Wind", "Moonblast", "Shadow Ball"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fairy"] + } + ] + }, + "slitherwing": { + "level": 82, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "First Impression", "Flare Blitz", "U-turn", "Wild Charge"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Bug", "Electric", "Fighting", "Fire"] + } + ] + }, + "roaringmoon": { + "level": 76, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Acrobatics", "Breaking Swipe", "Knock Off", "Protect", "Tailwind"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Flying"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dragon Claw", "Dragon Dance", "Knock Off", "Protect"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Dark", "Fire"] + } + ] + }, + "irontreads": { + "level": 80, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["High Horsepower", "Iron Head", "Knock Off", "Rapid Spin", "Stealth Rock", "Stone Edge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fire", "Ground", "Steel"] + } + ] + }, + "ironmoth": { + "level": 78, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Energy Ball", "Fiery Dance", "Heat Wave", "Protect", "Sludge Wave"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fire", "Grass"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Acid Spray", "Energy Ball", "Heat Wave", "Protect"], + "abilities": ["Quark Drive"], + "teraTypes": ["Poison"] + } + ] + }, + "ironhands": { + "level": 77, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Close Combat", "Drain Punch", "Fake Out", "Ice Punch", "Volt Switch", "Wild Charge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Electric", "Fire"] + }, + { + "role": "Bulky Protect", + "movepool": ["Drain Punch", "Protect", "Swords Dance", "Thunder Punch"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fire"] + } + ] + }, + "ironjugulis": { + "level": 79, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Dark Pulse", "Earth Power", "Hurricane", "Protect", "Tailwind", "Taunt"], + "abilities": ["Quark Drive"], + "teraTypes": ["Flying", "Ground", "Steel"] + } + ] + }, + "ironthorns": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Electroweb", "High Horsepower", "Protect", "Rock Slide", "Stealth Rock", "Thunder Punch", "Thunder Wave", "Volt Switch"], + "abilities": ["Quark Drive"], + "teraTypes": ["Flying", "Grass"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dragon Dance", "High Horsepower", "Ice Punch", "Protect", "Rock Slide", "Wild Charge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Grass", "Rock"] + } + ] + }, + "ironbundle": { + "level": 78, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Encore", "Freeze-Dry", "Hydro Pump", "Icy Wind", "Protect"], + "abilities": ["Quark Drive"], + "teraTypes": ["Dragon", "Water"] + } + ] + }, + "ironvaliant": { + "level": 79, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Dazzling Gleam", "Encore", "Knock Off", "Moonblast", "Protect"], + "abilities": ["Quark Drive"], + "teraTypes": ["Dark", "Fairy", "Fighting"] + } + ] + }, + "baxcalibur": { + "level": 78, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Glaive Rush", "High Horsepower", "Ice Shard", "Icicle Crash"], + "abilities": ["Thermal Exchange"], + "teraTypes": ["Dragon", "Ground"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Icicle Spear", "Protect", "Scale Shot", "Swords Dance"], + "abilities": ["Thermal Exchange"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "gholdengo": { + "level": 78, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Dazzling Gleam", "Focus Blast", "Make It Rain", "Shadow Ball", "Thunderbolt", "Trick"], + "abilities": ["Good as Gold"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Make It Rain", "Nasty Plot", "Protect", "Shadow Ball"], + "abilities": ["Good as Gold"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Offensive Protect", + "movepool": ["Dazzling Gleam", "Focus Blast", "Make It Rain", "Protect", "Shadow Ball"], + "abilities": ["Good as Gold"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "tinglu": { + "level": 82, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Protect", "Ruination", "Spikes", "Stealth Rock", "Stomping Tantrum", "Throat Chop"], + "abilities": ["Vessel of Ruin"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "chienpao": { + "level": 75, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Icicle Crash", "Lash Out", "Protect", "Sucker Punch", "Throat Chop"], + "abilities": ["Sword of Ruin"], + "teraTypes": ["Dark", "Ghost"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Icicle Crash", "Protect", "Sacred Sword", "Sucker Punch"], + "abilities": ["Sword of Ruin"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "wochien": { + "level": 85, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Knock Off", "Leech Seed", "Pollen Puff", "Protect", "Ruination"], + "abilities": ["Tablets of Ruin"], + "teraTypes": ["Poison"] + } + ] + }, + "chiyu": { + "level": 75, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dark Pulse", "Heat Wave", "Nasty Plot", "Protect"], + "abilities": ["Beads of Ruin"], + "teraTypes": ["Dark", "Fire", "Water"] + }, + { + "role": "Choice Item user", + "movepool": ["Dark Pulse", "Heat Wave", "Overheat", "Snarl"], + "abilities": ["Beads of Ruin"], + "teraTypes": ["Fire", "Water"] + } + ] + }, + "koraidon": { + "level": 66, + "sets": [ + { + "role": "Choice Item user", + "movepool": ["Collision Course", "Dragon Claw", "Flare Blitz", "U-turn"], + "abilities": ["Orichalcum Pulse"], + "teraTypes": ["Fire"] + } + ] + }, + "miraidon": { + "level": 65, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Draco Meteor", "Dragon Pulse", "Electro Drift", "Overheat", "Protect", "Volt Switch"], + "abilities": ["Hadron Engine"], + "teraTypes": ["Electric"] + }, + { + "role": "Choice Item user", + "movepool": ["Draco Meteor", "Electro Drift", "Overheat", "Volt Switch"], + "abilities": ["Hadron Engine"], + "teraTypes": ["Electric"] + } + ] + }, + "walkingwake": { + "level": 77, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Draco Meteor", "Flamethrower", "Flip Turn", "Hydro Pump", "Protect"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fire"] + } + ] + }, + "ironleaves": { + "level": 81, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Close Combat", "Leaf Blade", "Protect", "Swords Dance"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Fire", "Poison"] + }, + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Leaf Blade", "Protect", "Psyblade"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Fire", "Psychic"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Close Combat", "Leaf Blade", "Psyblade", "Wild Charge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Fire", "Psychic"] + } + ] + }, + "dipplin": { + "level": 91, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Dragon Pulse", "Pollen Puff", "Recover", "Syrup Bomb"], + "abilities": ["Sticky Hold"], + "teraTypes": ["Steel"] + } + ] + }, + "sinistcha": { + "level": 81, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Life Dew", "Matcha Gotcha", "Rage Powder", "Trick Room"], + "abilities": ["Hospitality"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Matcha Gotcha", "Protect", "Shadow Ball"], + "abilities": ["Hospitality"], + "teraTypes": ["Fairy"] + } + ] + }, + "okidogi": { + "level": 78, + "sets": [ + { + "role": "Doubles Bulky Attacker", + "movepool": ["Bulk Up", "Drain Punch", "Gunk Shot", "Knock Off", "Snarl"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark"] + } + ] + }, + "munkidori": { + "level": 80, + "sets": [ + { + "role": "Doubles Fast Attacker", + "movepool": ["Focus Blast", "Protect", "Psyshock", "Sludge Bomb", "U-turn"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Fighting", "Poison"] + }, + { + "role": "Doubles Support", + "movepool": ["Fake Out", "Focus Blast", "Psyshock", "Sludge Bomb", "U-turn"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Fighting", "Poison"] + } + ] + }, + "fezandipiti": { + "level": 80, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Gunk Shot", "Icy Wind", "Play Rough", "Roost"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark", "Steel", "Water"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Gunk Shot", "Icy Wind", "Play Rough", "U-turn"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark", "Steel", "Water"] + } + ] + }, + "ogerpon": { + "level": 78, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Ivy Cudgel", "Knock Off", "Spiky Shield", "Superpower", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Grass"] + }, + { + "role": "Doubles Support", + "movepool": ["Follow Me", "Ivy Cudgel", "Knock Off", "Spiky Shield"], + "abilities": ["Defiant"], + "teraTypes": ["Grass"] + } + ] + }, + "ogerponwellspring": { + "level": 76, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Follow Me", "Horn Leech", "Ivy Cudgel", "Spiky Shield"], + "abilities": ["Water Absorb"], + "teraTypes": ["Water"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Horn Leech", "Ivy Cudgel", "Power Whip", "Spiky Shield", "Swords Dance"], + "abilities": ["Water Absorb"], + "teraTypes": ["Water"] + } + ] + }, + "ogerponhearthflame": { + "level": 74, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Follow Me", "Horn Leech", "Ivy Cudgel", "Spiky Shield"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Fire"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Horn Leech", "Ivy Cudgel", "Power Whip", "Spiky Shield", "Swords Dance"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Fire"] + } + ] + }, + "ogerponcornerstone": { + "level": 75, + "sets": [ + { + "role": "Doubles Support", + "movepool": ["Follow Me", "Horn Leech", "Ivy Cudgel", "Spiky Shield"], + "abilities": ["Sturdy"], + "teraTypes": ["Rock"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Horn Leech", "Ivy Cudgel", "Power Whip", "Spiky Shield", "Swords Dance"], + "abilities": ["Sturdy"], + "teraTypes": ["Rock"] + } + ] + }, + "archaludon": { + "level": 77, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Dragon Pulse", "Electro Shot", "Flash Cannon", "Protect"], + "abilities": ["Stamina"], + "teraTypes": ["Fairy", "Flying"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Body Press", "Draco Meteor", "Dragon Pulse", "Flash Cannon", "Snarl"], + "abilities": ["Stamina"], + "teraTypes": ["Fairy", "Fighting", "Flying"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Aura Sphere", "Draco Meteor", "Flash Cannon", "Thunderbolt"], + "abilities": ["Stamina"], + "teraTypes": ["Dragon", "Electric", "Fairy", "Fighting", "Flying"] + } + ] + }, + "hydrapple": { + "level": 85, + "sets": [ + { + "role": "Bulky Protect", + "movepool": ["Fickle Beam", "Giga Drain", "Leaf Storm", "Pollen Puff", "Protect"], + "abilities": ["Regenerator"], + "teraTypes": ["Fire", "Steel"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Draco Meteor", "Earth Power", "Giga Drain", "Leaf Storm"], + "abilities": ["Regenerator"], + "teraTypes": ["Fire", "Grass", "Steel"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Earth Power", "Fickle Beam", "Giga Drain", "Leaf Storm", "Pollen Puff"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel"] + } + ] + }, + "gougingfire": { + "level": 75, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Burning Bulwark", "Dragon Claw", "Dragon Dance", "Heat Crash"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fire"] + } + ] + }, + "ragingbolt": { + "level": 77, + "sets": [ + { + "role": "Doubles Wallbreaker", + "movepool": ["Draco Meteor", "Protect", "Thunderbolt", "Thunderclap"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Fairy", "Grass"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Draco Meteor", "Electroweb", "Snarl", "Thunderbolt", "Thunderclap"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Fairy", "Grass"] + }, + { + "role": "Bulky Protect", + "movepool": ["Calm Mind", "Dragon Pulse", "Protect", "Thunderclap"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Fairy", "Grass"] + } + ] + }, + "ironboulder": { + "level": 77, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Close Combat", "Mighty Cleave", "Protect", "Swords Dance"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting"] + }, + { + "role": "Offensive Protect", + "movepool": ["Close Combat", "Mighty Cleave", "Protect", "Zen Headbutt"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting"] + } + ] + }, + "ironcrown": { + "level": 78, + "sets": [ + { + "role": "Offensive Protect", + "movepool": ["Focus Blast", "Protect", "Psychic", "Psyshock", "Tachyon Cutter"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Focus Blast", "Psychic", "Psyshock", "Tachyon Cutter", "Volt Switch"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Doubles Bulky Setup", + "movepool": ["Agility", "Focus Blast", "Protect", "Psychic", "Psyshock", "Tachyon Cutter"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Psychic", "Steel"] + } + ] + }, + "terapagos": { + "level": 73, + "sets": [ + { + "role": "Doubles Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Protect", "Tera Starstorm"], + "abilities": ["Tera Shift"], + "teraTypes": ["Stellar"] + }, + { + "role": "Doubles Wallbreaker", + "movepool": ["Dark Pulse", "Earth Power", "Tera Starstorm", "Tri Attack"], + "abilities": ["Tera Shift"], + "teraTypes": ["Stellar"] + }, + { + "role": "Doubles Setup Sweeper", + "movepool": ["Dark Pulse", "Meteor Beam", "Protect", "Tera Starstorm"], + "abilities": ["Tera Shift"], + "teraTypes": ["Stellar"] + } + ] + }, + "pecharunt": { + "level": 78, + "sets": [ + { + "role": "Doubles Setup Sweeper", + "movepool": ["Malignant Chain", "Nasty Plot", "Protect", "Recover", "Shadow Ball"], + "abilities": ["Poison Puppeteer"], + "teraTypes": ["Dark"] + }, + { + "role": "Doubles Bulky Attacker", + "movepool": ["Malignant Chain", "Parting Shot", "Poison Gas", "Protect", "Shadow Ball"], + "abilities": ["Poison Puppeteer"], + "teraTypes": ["Dark"] + } + ] + } +} diff --git a/data/random-battles/gen9/draft-factory-matchups.json b/data/random-battles/gen9/draft-factory-matchups.json new file mode 100644 index 000000000000..9f803cc23a47 --- /dev/null +++ b/data/random-battles/gen9/draft-factory-matchups.json @@ -0,0 +1,667 @@ +{ + "matchups": [ + ["Rotom-Wash||Leftovers|Levitate|ThunderWave,VoltSwitch,HydroPump,Protect|Bold|168,,252,20,68,||,0,,,,|||,,,,,Electric]Clodsire||BlackSludge|WaterAbsorb|StealthRock,Recover,GunkShot,Earthquake|Careful|252,4,,,252,|||||,,,,,Poison]Tera Captain|Electrode|ChoiceSpecs|Static|Thunderbolt,TeraBlast,VoltSwitch,Explosion|Hasty|,4,,252,,252|||||,,,,,Ice]Iron Bundle||BoosterEnergy|QuarkDrive|IceBeam,FreezeDry,HydroPump,Encore|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice]Meowscarada||FocusSash|Protean|FlowerTrick,TripleAxel,KnockOff,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Archaludon|AssaultVest|Stamina|BodyPress,FlashCannon,Thunderbolt,Earthquake|Serious|140,4,152,72,140,|||||,,,,,Fairy","Quaquaval||LumBerry|Moxie|AquaStep,CloseCombat,TripleAxel,Roost|Jolly|84,252,,,,172|||S||,,,,,Water]Zapdos||Leftovers|Pressure|Hurricane,MetalSound,Substitute,Roost|Calm|248,,168,,92,||,0,,,,|S||,,,,,Electric]Greninja-Bond||SalacBerry|BattleBond|Surf,DarkPulse,IceBeam,Endure|Timid|,,,252,4,252|||S||,,,,,Water]Mamoswine||LifeOrb|ThickFat|Earthquake,FreezeDry,Trailblaze,IceShard|Naughty|,252,,24,,232|||||,,,,,Ice]Tinkaton||SitrusBerry|Pickpocket|PlayRough,KnockOff,Encore,StealthRock|Careful|248,,8,,252,|||||,,,,,Fairy]Tera Captain|Serperior|ChoiceScarf|Contrary|LeafStorm,TeraBlast,Glare,KnockOff|Modest|104,,,252,4,148|||||,,,,,Stellar"], + ["Uxie||WeaknessPolicy|Levitate|CalmMind,StoredPower,DrainingKiss,Yawn|Bold|248,,216,40,,4||,0,,,,|||,,,,,Psychic]Tera Captain|Zapdos|HeavyDutyBoots|Static|Roost,Uturn,LightScreen,Hurricane|Bold|248,,216,4,40,|||||,,,,,Electric]Garchomp||ChoiceBand|RoughSkin|Earthquake,PoisonJab,ScaleShot,StealthRock|Jolly|40,252,,,,216|||||,,,,,Dragon]Granbull||AssaultVest|Intimidate|PlayRough,Earthquake,SuperFang,Trailblaze|Careful|216,40,,,252,|||||,,,,,Fairy]Tera Captain|Revavroom|FocusSash|Filter|ShiftGear,TeraBlast,IronHead,GunkShot|Adamant|60,252,,,12,184|||||,,,,,Fairy]Darkrai||ChoiceSpecs|BadDreams|DarkPulse,SludgeBomb,IceBeam,Trick|Timid|120,,8,252,8,120||,0,,,,|||,,,,,Dark","Ninetales||HeatRock|Drought|Overheat,Encore,WillOWisp,HealingWish|Calm|252,,4,,252,||,0,,,,|||,,,,,Fire]Great Tusk||ProtectivePads|Protosynthesis|CloseCombat,IceSpinner,KnockOff,RapidSpin|Adamant|72,252,,,,184|||||,,,,,Ground]Tera Captain|RagingBolt|ChestoBerry|Protosynthesis|Thunderbolt,DragonPulse,Thunderclap,CalmMind|Modest|88,,,248,,172||,20,,,,|||,,,,,Normal]Walking Wake||ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,DragonPulse,FlipTurn|Timid|8,,,244,4,252|||||,,,,,Water]Gouging Fire||HeavyDutyBoots|Protosynthesis|HeatCrash,DragonClaw,DragonDance,MorningSun|Jolly|88,168,,,,252|||||,,,,,Fire]Tera Captain|Rhyperior|CovertCloak|SolidRock|IcePunch,Counter,Roar,StealthRock|Impish|252,,252,,4,|||||,,,,,Water"], + ["Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,TeraBlast|Timid|12,,,244,,252||,0,,,,|||,,,,,Stellar]Weezing-Galar||BlackSludge|NeutralizingGas|DestinyBond,WillOWisp,ClearSmog,PainSplit|Calm|252,,4,,252,||,0,,,,|||,,,,,Bug]Ninetales||HeavyDutyBoots|Drought|Flamethrower,ScorchingSands,WillOWisp,HealingWish|Calm|252,,4,,252,||,0,,,,|||,,,,,Bug]Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,CloseCombat,RapidSpin,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Bug]Tera Captain|Alomomola|RockyHelmet|Regenerator|BodySlam,Wish,Protect,FlipTurn|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Fairy]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,CloseCombat,Earthquake|Jolly|,252,,,4,252|||||,,,,,Bug","Darkrai||ChoiceScarf|BadDreams|DarkPulse,FocusBlast,Psychic,Trick|Timid|8,,,252,,248||,0,,,,|||,,,,,Dark]Tera Captain|Braviary|HeavyDutyBoots|SheerForce|BraveBird,Uturn,Roost,CloseCombat|Impish|248,,252,,8,|||||,,,,,Normal]Slowking-Galar||ShucaBerry|Regenerator|ChillyReception,SludgeBomb,Psychic,FoulPlay|Relaxed|248,,224,,36,||,0,,,,0|||,,,,,Poison]Infernape||FocusSash|Blaze|Flamethrower,SolarBeam,CloseCombat,StealthRock|Rash|,60,,252,,196|||||,,,,,Fire]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Synthesis,IvyCudgel,HornLeech,SwordsDance|Jolly|176,84,,,,248|||||,,,,,Water]Iron Treads||ChopleBerry|QuarkDrive|IronDefense,Earthquake,HeavySlam,RapidSpin|Adamant|176,120,,,,212|||||,,,,,Ground"], + ["Great Tusk||MirrorHerb|Protosynthesis|CloseCombat,HeadlongRush,IceSpinner,HeavySlam|Adamant|24,252,8,,4,220|||||,,,,,Ground]Iron Crown||ChoiceScarf|QuarkDrive|Psychic,TachyonCutter,VoltSwitch,Psyshock|Timid|16,,,252,8,232||,20,,,,|||,,,,,Steel]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,Substitute,Encore|Jolly|32,252,,,8,216|||||,,,,,Water]Weavile||HeavyDutyBoots|Pickpocket|KnockOff,TripleAxel,IceShard,SwordsDance|Jolly|16,252,8,,8,224|||||,,,,,Dark]Tera Captain|Diancie|HeavyDutyBoots|ClearBody|PlayRough,Endeavor,Encore,Spikes|Sassy|248,8,,,252,||,,,,,0|||,,,,,Poison]Alomomola||RockyHelmet|Regenerator|FlipTurn,Wish,Protect,LightScreen|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Water","Quaquaval||ChoiceScarf|Moxie|Uturn,HydroPump,AquaStep,CloseCombat|Jolly|148,252,,,,108|||||,,,,,Water]Weezing-Galar||RockyHelmet|Levitate|PainSplit,ToxicSpikes,Defog,StrangeSteam|Bold|248,,208,,,52||,0,,,,|||,,,,,Poison]Tera Captain|RagingBolt|ChoiceSpecs|Protosynthesis|VoltSwitch,Thunderclap,Thunderbolt,DracoMeteor|Modest|240,,,132,,136||,20,,,,|||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,KnockOff,HeatWave,BleakwindStorm|Timid|64,,,236,,208|||||,,,,,Flying]Tera Captain|Torterra|Leftovers|ShellArmor|Amnesia,IronDefense,LeechSeed,BodyPress|Careful|248,,,,176,84||,0,,,,|||,,,,,Water]Jirachi||Leftovers|SereneGrace|Wish,CosmicPower,FirePunch,StoredPower|Relaxed|248,,224,,,36|||||,,,,,Steel"], + ["Greninja||ChoiceScarf|Protean|Surf,DarkPulse,IceBeam,WaterShuriken|Modest|,,,252,4,252||,0,,,,|||,,,,,Water]Iron Treads||Leftovers|QuarkDrive|Earthquake,KnockOff,VoltSwitch,RapidSpin|Jolly|48,252,,,,208|||||,,,,,Ground]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,WillOWisp,PainSplit,Defog|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Tera Captain|Ceruledge|FocusSash|WeakArmor|BitterBlade,IronHead,CloseCombat,SwordsDance|Adamant|248,252,,,,8|||||,,,,,Fairy]Rotom-Wash||HeavyDutyBoots|Levitate|HydroPump,VoltSwitch,WillOWisp,NastyPlot|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Lokix||ChoiceBand|TintedLens|Uturn,KnockOff,SuckerPunch,FirstImpression|Adamant|,252,,,4,252|||||,,,,,Bug","Greninja-Bond||LifeOrb|BattleBond|HydroPump,DarkPulse,IceBeam,GrassKnot|Timid|,,,252,4,252|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Roost,Hurricane,VoltSwitch,HeatWave|Bold|248,,252,8,,||,0,,,,0|||,,,,,Electric]Slowking-Galar||ColburBerry|Regenerator|SlackOff,SludgeBomb,Flamethrower,ChillyReception|Modest|248,,,8,252,||,0,,,,|||,,,,,Poison]Urshifu||LifeOrb|UnseenFist|WickedBlow,IronHead,Uturn,CloseCombat|Jolly|40,252,,,,216|||||,,,,,Fighting]Tera Captain|Hydrapple|AssaultVest|Regenerator|FickleBeam,LeafStorm,EnergyBall,EarthPower|Modest|248,,,56,192,12||,0,,,,|||,,,,,Dragon]Forretress||RockyHelmet|Sturdy|StealthRock,BodyPress,VoltSwitch,RapidSpin|Impish|252,4,252,,,|||||,,,,,Bug"], + ["Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,HydroPump,FlipTurn,IceBeam|Timid|112,,,252,,144|||||,,,,,Ice]Tera Captain|Excadrill|ChoiceScarf|MoldBreaker|Earthquake,IronHead,RapidSpin,TeraBlast|Adamant|96,252,,,,160|||||,,,,,Grass]Hatterene||Leftovers|MagicBounce|DrainingKiss,CalmMind,Nuzzle,Psychic|Bold|252,,156,,100,|||||,,,,,Psychic]Latios||Leftovers|Levitate|LusterPurge,CalmMind,Recover,DragonPulse|Timid|252,,4,,,252||,0,,,,|||,,,,,Dragon]Moltres||Leftovers|FlameBody|WillOWisp,BraveBird,Uturn,Roost|Bold|252,,92,,164,|||||,,,,,Fire]Sudowoodo||CustapBerry|Sturdy|HeadSmash,StealthRock,IcePunch,WoodHammer|Adamant|252,252,,,4,|||||,,,,,Rock","Garchomp||HabanBerry|RoughSkin|StealthRock,DragonClaw,PoisonJab,Earthquake|Jolly|,252,,,4,252|||||,,,,,Dragon]Greninja||ChoiceSpecs|Protean|IceBeam,HydroPump,DarkPulse,Uturn|Timid|4,,,252,,252|||||,,,,,Water]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,TeraBlast,FlashCannon,MorningSun|Timid|,,124,132,,252||,0,,,,|||,,,,,Fighting]Rotom-Wash||ChoiceScarf|Levitate|Trick,VoltSwitch,HydroPump,ThunderWave|Timid|,,200,56,,252||,0,,,,|||,,,,,Electric]Hatterene||HeavyDutyBoots|MagicBounce|Psyshock,ShadowBall,GigaDrain,HealingWish|Modest|252,,4,252,,||,0,,,,|||,,,,,Psychic]Sliggoo-Hisui||Eviolite|ShellArmor|GyroBall,RockSlide,Outrage,ChillingWater|Sassy|252,,4,,252,||,,,,,0|||,,,,,Steel"], + ["Weavile||ChoiceBand|Pressure|IceShard,KnockOff,TripleAxel,BrickBreak|Jolly|24,252,,,,232|||||,,,,,Dark]Tera Captain|Latias|SoulDew|Levitate|DrainingKiss,Recover,DracoMeteor,CalmMind|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Iron Treads||ChoiceScarf|QuarkDrive|IceSpinner,Megahorn,Earthquake,RapidSpin|Adamant|,252,,,240,16|||||,,,,,Ground]Clefable||Leftovers|MagicGuard|StealthRock,Moonlight,Moonblast,FireBlast|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Tera Captain|Brambleghast|Leftovers|WindRider|StrengthSap,RapidSpin,SeedBomb,Spikes|Careful|252,32,,,124,100|||||,,,,,Fairy]Empoleon||Leftovers|Torrent|Roost,GrassKnot,IceBeam,Surf|Calm|252,,,,252,4||,0,,,,|||,,,,,Water","Greninja||ExpertBelt|Protean|IceBeam,SludgeWave,LowKick,HydroPump|Hasty|,96,,252,,160|||||,,,,,Water]Tera Captain|Ogerpon|YacheBerry|Defiant|IvyCudgel,RockTomb,SwordsDance,Encore|Jolly|32,252,,,,224|||||,,,,,Grass]Terapagos||Leftovers|TeraShift|Rest,BodyPress,IceBeam,RapidSpin|Bold|252,,252,4,,|||||,,,,,Stellar]Tera Captain|Diancie|Leftovers|ClearBody|Rest,SleepTalk,BodyPress,DiamondStorm|Careful|252,4,,,252,|||||,,,,,Rock]Swalot||RockyHelmet|StickyHold|PainSplit,ClearSmog,BodyPress,KnockOff|Impish|252,,252,,4,|||||,,,,,Poison]Uxie||Leftovers|Levitate|StealthRock,Encore,PainSplit,Uturn|Careful|252,,4,,252,|||||,,,,,Psychic"], + ["Electrode-Hisui||EjectPack|Soundproof|LeafStorm,Thunderbolt,VoltSwitch,Taunt|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Tera Captain|Hatterene|RockyHelmet|MagicBounce|CalmMind,DrainingKiss,MysticalFire,Psyshock|Bold|252,,220,36,,||,0,,,,|||,,,,,Steel]Chi-Yu||ChoiceSpecs|BeadsofRuin|Flamethrower,DarkPulse,Overheat,Memento|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|Grimmsnarl|LightClay|Prankster|Reflect,LightScreen,PartingShot,Taunt|Careful|252,4,,,252,||,0,,,,|||,,,,,Dark]Annihilape||Leftovers|Defiant|BulkUp,DrainPunch,RageFist,IcePunch|Adamant|252,68,,,188,|||||,,,,,Fighting]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,PowerGem,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel","Iron Valiant||LifeOrb|QuarkDrive|SpiritBreak,KnockOff,SwordsDance,CloseCombat|Jolly|48,252,,,,208|||||,,,,,Fairy]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,Roost,LuminaCrash,TeraBlast|Modest|252,,4,252,,||,0,,,,|||,,,,,Ground]Orthworm||SitrusBerry|EarthEater|ShedTail,BodyPress,Earthquake,StealthRock|Careful|248,,8,,252,|||||,,,,,Steel]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,RazorShell,AquaJet,GrassKnot|Naive|,252,,8,,248|||||,,,,,Water]Cutiefly||FocusSash|ShieldDust|StickyWeb,Moonblast,Uturn,SkillSwap|Timid|,,,252,4,252|||||,,,,,Bug]Tera Captain|ThundurusTherian|ChoiceSpecs|VoltAbsorb|Thunderbolt,GrassKnot,SludgeWave,VoltSwitch|Timid|,,,252,8,248||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Latias|HeavyDutyBoots|Levitate|RainDance,DragonPulse,ShadowBall,Recover|Timid|248,,,,80,180||,0,,,,|||,,,,,Fire]Weavile||ChoiceBand|Pressure|KnockOff,TripleAxel,IceShard,LowKick|Adamant|72,252,,,,184|||||,,,,,Dark]Glimmora||PowerHerb|ToxicDebris|PowerGem,EarthPower,MeteorBeam,StealthRock|Timid|,,4,252,,252||,0,,,,|||,,,,,Rock]Quaquaval||HeavyDutyBoots|Moxie|CloseCombat,KnockOff,RapidSpin,Roost|Impish|248,,192,,,68|||||,,,,,Water]Heatran||AirBalloon|FlashFire|MagmaStorm,EarthPower,Taunt,Protect|Modest|120,,,252,4,132||,0,,,,|||,,,,,Fire]Tera Captain|SinistchaMasterpiece|Leftovers|Heatproof|CalmMind,MatchaGotcha,ShadowBall,StrengthSap|Bold|240,,88,,,180||,0,,,,|||,,,,,Fairy","Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,KnockOff,RazorShell,Encore|Jolly|,252,,,4,252|||||,,,,,Stellar]Gouging Fire||LoadedDice|Protosynthesis|ScaleShot,HeatCrash,Earthquake,DragonDance|Adamant|,252,4,,,252|||||,,,,,Stellar]Torkoal||HeatRock|Drought|LavaPlume,BodyPress,StealthRock,RapidSpin|Calm|248,,,8,252,|||||,,,,,Stellar]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderclap,DracoMeteor,WeatherBall,SolarBeam|Modest|36,,84,252,4,132||,20,,,,|||,,,,,Grass]Tera Captain|Venusaur|LifeOrb|Chlorophyll|GigaDrain,WeatherBall,EarthPower,Growth|Modest|,,,252,4,252||,0,,,,|||,,,,,Fire]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Thunderbolt,Trick|Modest|112,,20,252,4,120||,0,,,,|||,,,,,Stellar"], + ["Darkrai||FlameOrb|BadDreams|Psychic,DarkPulse,ThunderWave,Trick|Modest|,,108,252,,148||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Trailblaze,IvyCudgel,SwordsDance,BrickBreak|Jolly|,252,,,104,152|||||,,,,,Water]Tornadus-Therian||ChoiceSpecs|Regenerator|Hurricane,Uturn,HeatWave,KnockOff|Mild|,4,,252,72,180|||||,,,,,Flying]Garchomp||YacheBerry|RoughSkin|BrickBreak,StealthRock,Earthquake,SwordsDance|Jolly|,252,36,,4,216|||||,,,,,Dragon]Ditto||ChoiceScarf|Imposter|Transform|Jolly|248,8,,,,252||,30,,,,|||,,,,,Normal]Tera Captain|Brambleghast|RockyHelmet|Infiltrator|Poltergeist,PowerWhip,ShadowSneak,Curse|Jolly|,252,,,4,252|||||,,,,,Fighting","Baxcalibur||ChoiceScarf|ThermalExchange|GlaiveRush,IcicleCrash,IronHead,IceShard|Adamant|,252,,,4,252|||||,,,,,Dragon]Slowking-Galar||HeavyDutyBoots|Regenerator|ChillyReception,IceBeam,SludgeBomb,FutureSight|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Substitute,Toxic,Protect,Earthquake|Impish|252,,184,,72,|||||,,,,,Dragon]Urshifu-Rapid-Strike||RindoBerry|UnseenFist|SwordsDance,AquaJet,CloseCombat,SurgingStrikes|Jolly|88,252,,,,168|||||,,,,,Fighting]Volcarona||HeavyDutyBoots|FlameBody|QuiverDance,BugBuzz,MorningSun,WillOWisp|Modest|176,,,252,,80||,0,,,,|||,,,,,Bug]Tera Captain|Klefki|Leftovers|Prankster|MagnetRise,Spikes,ThunderWave,DazzlingGleam|Calm|252,,4,,252,||,0,,,,|||,,,,,Steel"], + ["Archaludon||PowerHerb|Stamina|BodyPress,FlashCannon,ElectroShot,DragonPulse|Bold|4,,252,252,,||,0,,,,|||,,,,,Steel]Tera Captain|Serperior|LifeOrb|Contrary|TeraBlast,LeafStorm,Glare,Taunt|Modest|,,,252,,252||,0,,,,|||,,,,,Stellar]Urshifu-Rapid-Strike||AguavBerry|UnseenFist|SurgingStrikes,CloseCombat,DrainPunch,Waterfall|Adamant|252,252,,,,|||||,,,,,Fighting]Ting-Lu||AssaultVest|VesselofRuin|LashOut,BodyPress,Earthquake,Ruination|Sassy|252,,4,,252,|||||,,,,,Dark]Salazzle||Leftovers|Corrosion|Toxic,Disable,Protect,FireBlast|Timid|,,,252,,252||,0,,,,|||,,,,,Poison]Froslass||RockyHelmet|CursedBody|AuroraVeil,Curse,Blizzard,Snowscape|Timid|4,,252,,,252||,0,,,,|||,,,,,Ice","Palafin||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,ZenHeadbutt,WaveCrash|Adamant|,252,,,4,252|||||,,,,,Water]Corviknight||RockyHelmet|Pressure|BraveBird,Uturn,Roost,Defog|Impish|248,8,252,,,|||||,,,,,Flying]Tera Captain|Garganacl|Leftovers|PurifyingSalt|Recover,SaltCure,BodyPress,IronDefense|Impish|248,,252,,8,|||||,,,,,Ghost]Torterra||LoadedDice|Overgrow|ShellSmash,HeadlongRush,RockBlast,BulletSeed|Adamant|,252,112,,,144|||||,,,,,Grass]Tera Captain|Skeledirge|Leftovers|Unaware|TorchSong,WillOWisp,ShadowBall,SlackOff|Modest|248,,,252,,8||,0,,,,|||,,,,,Fairy]Ting-Lu||Leftovers|VesselofRuin|Taunt,StealthRock,Ruination,Earthquake|Careful|240,,,,252,16|||||,,,,,Dark"], + ["Ting-Lu||Leftovers|VesselofRuin|Spikes,StoneEdge,Whirlwind,Earthquake|Sassy|252,4,52,,200,|||||,,,,,Dark]Brambleghast||Leftovers|WindRider|RapidSpin,Poltergeist,PowerWhip,Substitute|Jolly|40,252,,,4,212|||||,,,,,Grass]Volcanion||ChoiceScarf|WaterAbsorb|SteamEruption,EarthPower,FireBlast,SludgeWave|Timid|44,,,252,4,208||,0,,,,|||,,,,,Fire]Skarmory||RockyHelmet|Sturdy|StealthRock,Roost,BraveBird,BodyPress|Impish|252,,252,,,|||||,,,,,Steel]Ditto||ChoiceScarf|Imposter|Transform|Impish|248,8,252,,,||,30,,,,|||,,,,,Normal]Tera Captain|IronLeaves|BoosterEnergy|QuarkDrive|ThroatChop,TeraBlast,SwordsDance,XScissor|Hasty|92,160,,4,,252|||||,,,,,Water","Arcanine-Hisui||HeavyDutyBoots|RockHead|WillOWisp,FlameCharge,HeadSmash,FlareBlitz|Jolly|,252,,,4,252|||||,,,,,Fire]Landorus||LifeOrb|SheerForce|EarthPower,NastyPlot,SludgeWave,Psychic|Timid|4,,,252,,252||,0,,,,|||,,,,,Ground]Tera Captain|Serperior|HeavyDutyBoots|Contrary|LeafStorm,TeraBlast,Synthesis,Glare|Timid|,,72,252,,184||,0,,,,|||,,,,,Fire]Grafaiai||Leftovers|Unburden|SunnyDay,KnockOff,PartingShot,Encore|Jolly|252,48,,,,208|||||,,,,,Poison]Sneasler||NormalGem|Unburden|CloseCombat,FakeOut,SwordsDance,Acrobatics|Adamant|4,252,,,,252|||||,,,,,Fighting]Spidops||FocusSash|Stakeout|StickyWeb,Uturn,SilkTrap,KnockOff|Adamant|248,252,8,,,|||||,,,,,Bug"], + ["Tera Captain|Clefable|Leftovers|Unaware|Moonblast,Flamethrower,CalmMind,Moonlight|Calm|252,,,4,252,||,0,,,,|||,,,,,Steel]Latios||ChoiceScarf|Levitate|DracoMeteor,Thunderbolt,LusterPurge,FlipTurn|Hasty|,,,252,4,252|||||,,,,,Dragon]Tera Captain|Toxtricity|ThroatSpray|PunkRock|Boomburst,Overdrive,Encore,ShiftGear|Modest|12,,,252,,244||,0,,,,|||,,,,,Normal]Blaziken||ExpertBelt|SpeedBoost|FlareBlitz,CloseCombat,Earthquake,SwordsDance|Adamant|80,252,,,,176|||||,,,,,Fire]Orthworm||SitrusBerry|EarthEater|HeavySlam,StealthRock,Spikes,ShedTail|Impish|252,,4,,252,|||||,,,,,Steel]Palafin||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,IcePunch,FlipTurn|Adamant|252,252,,,,4|||||,,,,,Water","Quaquaval||ChoiceBand|Moxie|FlipTurn,AquaJet,AquaStep,CloseCombat|Jolly|40,,252,,,216|||||,,,,,Water]Corviknight||Leftovers|MirrorArmor|Roost,Defog,Uturn,BodyPress|Careful|252,,4,,252,|||||,,,,,Flying]Florges||Leftovers|FlowerVeil|Wish,Moonblast,EnergyBall,Protect|Calm|252,,,4,252,||,0,,,,|||,,,,,Fairy]Clodsire||BlackSludge|Unaware|ToxicSpikes,StealthRock,Recover,PoisonJab|Careful|252,4,,,252,|||||,,,,,Poison]Tera Captain|Serperior|ExpertBelt|Contrary|LeafStorm,TeraBlast,Glare,GigaDrain|Timid|24,,,252,,232||,0,,,,|||,,,,,Fairy]Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,DarkPulse,Flamethrower,Psychic|Modest|56,,4,252,,196||,0,,,,|||,,,,,Dark"], + ["Tera Captain|Sceptile|HeavyDutyBoots|Overgrow|ShedTail,LeechSeed,Substitute,GigaDrain|Timid|248,,,8,,252||,0,,,,|||,,,,,Steel]Kingambit||AssaultVest|SupremeOverlord|IronHead,SuckerPunch,LowKick,KowtowCleave|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Earthquake,Uturn,TeraBlast,HammerArm|Naive|,252,,4,,252|||||,,,,,Flying]Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,HydroPump,IceBeam,Uturn|Timid|,,,252,4,252|||||,,,,,Ice]Masquerain||HeavyDutyBoots|Intimidate|StickyWeb,Uturn,IceBeam,StunSpore|Timid|248,,,8,,252|||||,,,,,Bug]Urshifu||ChoiceScarf|UnseenFist|CloseCombat,Uturn,WickedBlow,IcePunch|Jolly|,252,,,4,252|||||,,,,,Fighting","Pecharunt||BlackSludge|PoisonPuppeteer|MalignantChain,PartingShot,Recover,Toxic|Calm|248,,,8,252,||,0,,,,|||,,,,,Poison]Tera Captain|Latias|ChoiceScarf|Levitate|DracoMeteor,AuraSphere,AlluringVoice,Trick|Modest|40,,,252,,216||,0,,,,|||,,,,,Fairy]Urshifu||AdrenalineOrb|UnseenFist|SwordsDance,WickedBlow,CloseCombat,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Registeel|Leftovers|ClearBody|IronDefense,BodyPress,Rest,SleepTalk|Calm|248,,8,,252,||,0,,,,|||,,,,,Fighting]Gliscor||ToxicOrb|PoisonHeal|Protect,Toxic,Earthquake,StealthRock|Impish|248,8,252,,,|||||,,,,,Ground]Alomomola||Leftovers|Regenerator|Wish,Scald,FlipTurn,Protect|Bold|248,,252,,8,|||||,,,,,Water"], + ["Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,StoredPower,TeraBlast,Roost|Bold|248,,252,,,8||,0,,,,|||,,,,,Fighting]Palafin||Leftovers|ZerotoHero|JetPunch,DrainPunch,Substitute,BulkUp|Adamant|248,252,,,4,|||||,,,,,Water]Gliscor||ToxicOrb|PoisonHeal|Earthquake,KnockOff,Protect,Toxic|Impish|244,,252,,12,|||||,,,,,Ground]Passimian||ChoiceScarf|Defiant|CloseCombat,Uturn,KnockOff,GunkShot|Jolly|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Garganacl|Leftovers|PurifyingSalt|Recover,SaltCure,Protect,StealthRock|Careful|248,,8,,252,|||||,,,,,Water]Ditto||ChoiceScarf|Imposter|Transform|Impish|248,8,252,,,||,30,,,,|||,,,,,Normal","Latios||SoulDew|Levitate|LusterPurge,ShadowBall,FlipTurn,DracoMeteor|Timid|40,,,252,,216|||||,,,,,Dragon]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,Encore,HydroPump,FlipTurn|Modest|128,,,252,,128|||||,,,,,Ice]Weezing||RockyHelmet|Levitate|Taunt,Thunderbolt,Flamethrower,DestinyBond|Bold|248,,252,8,,||,0,,,,|||,,,,,Poison]Tera Captain|Excadrill|LumBerry|SandRush|Earthquake,TeraBlast,XScissor,SwordsDance|Adamant|,252,76,,,180|||||,,,,,Water]Tyranitar||SmoothRock|SandStream|DragonTail,Taunt,KnockOff,IceBeam|Sassy|248,,,8,252,|||||,,,,,Rock]Tera Captain|Eelektross|CovertCloak|Levitate|DrainPunch,Coil,TeraBlast,ThunderPunch|Impish|,108,252,,140,8|||||,,,,,Ice"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CalmMind,ShadowBall,Moonblast,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Donphan||HeavyDutyBoots|Sturdy|RapidSpin,FireFang,StoneEdge,IceSpinner|Adamant|248,252,,,8,|||||,,,,,Ground]Gholdengo||Leftovers|GoodasGold|Recover,NastyPlot,ShadowBall,MakeItRain|Calm|252,,,,108,148||,0,,,,|||,,,,,Steel]Tera Captain|Gyarados|HeavyDutyBoots|Intimidate|DragonDance,TeraBlast,Earthquake,Waterfall|Lonely|,252,,4,,252|||||,,,,,Flying]Qwilfish-Hisui||Eviolite|Intimidate|BarbBarrage,Spikes,Haze,Crunch|Careful|252,,,,200,56|||||,,,,,Dark]Moltres||HeavyDutyBoots|FlameBody|Uturn,Flamethrower,Roost,AncientPower|Calm|252,,,,252,|||||,,,,,Fire","Talonflame||HeavyDutyBoots|FlameBody|FireBlast,AirSlash,Taunt,Uturn|Timid|,,,252,16,240|||||,,,,,Fire]Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Trick,NastyPlot|Timid|,,,252,4,252||,0,,,,|||,,,,,Fighting]Latios||ChoiceScarf|Levitate|DracoMeteor,Thunderbolt,LusterPurge,FlipTurn|Timid|,,,252,4,252|||||,,,,,Dragon]Tentacruel||BlackSludge|ClearBody|KnockOff,RapidSpin,FlipTurn,MirrorCoat|Jolly|,252,80,,,176|||||,,,,,Water]Tera Captain|WoChien|Leftovers|TabletsofRuin|KnockOff,Taunt,StunSpore,TeraBlast|Bold|252,,100,156,,|||||,,,,,Flying]Landorus-Therian||PasshoBerry|Intimidate|RockSlide,Earthquake,BodySlam,BulkUp|Jolly|,252,,,8,248|||||,,,,,Ground"], + ["Tera Captain|Keldeo|ChoiceSpecs|Justified|Surf,FlipTurn,VacuumWave,TeraBlast|Modest|64,,,252,,192|||||,,,,,Electric]Garchomp||RockyHelmet|RoughSkin|StoneEdge,Earthquake,DragonTail,StealthRock|Jolly|248,,128,,,132|||||,,,,,Dragon]Tera Captain|Mesprit|ChilanBerry|Levitate|Psyshock,KnockOff,Encore,HealingWish|Sassy|248,,8,,252,|||||,,,,,Rock]Gholdengo||ChoiceSpecs|GoodasGold|ShadowBall,MakeItRain,DazzlingGleam,Trick|Modest|248,,8,252,,||,0,,,,|||,,,,,Steel]Weavile||ChoiceBand|Pressure|LowKick,KnockOff,IceShard,TripleAxel|Jolly|,252,,,120,136|||||,,,,,Dark]Weezing-Galar||CustapBerry|NeutralizingGas|StrangeSteam,Flamethrower,PainSplit,Endure|Calm|248,,,8,252,||,0,,,,|||,,,,,Poison","Greninja||LifeOrb|Protean|IceBeam,Extrasensory,DarkPulse,LowKick|Hasty|,4,,252,,252|||S||,,,,,Normal]Ursaluna-Bloodmoon||HeavyDutyBoots|MindsEye|BloodMoon,Moonlight,EarthPower,VacuumWave|Modest|188,,,252,,68||,0,,,,|||,,,,,Normal]Tentacruel||HeavyDutyBoots|LiquidOoze|Haze,FlipTurn,SludgeWave,Surf|Timid|112,,,,252,144|||S||,,,,,Normal]Talonflame||HeavyDutyBoots|FlameBody|TemperFlare,Roost,BraveBird,Defog|Jolly|144,,252,,,112|||||,,,,,Normal]Jirachi||ColburBerry|SereneGrace|Uturn,IronHead,FirePunch,StealthRock|Jolly|252,160,,,,96|||S||,,,,,Normal]Tera Captain|Annihilape|PunchingGlove|Defiant|Substitute,BulkUp,RageFist,DrainPunch|Jolly|80,,,,252,176|||||,,,,,Water"], + ["Iron Bundle||ChoiceScarf|QuarkDrive|IceBeam,HydroPump,FreezeDry,FlipTurn|Modest|,,4,252,,252|||||,,,,,Ice]Tera Captain|GreatTusk|AssaultVest|Protosynthesis|RapidSpin,PlayRough,Earthquake,KnockOff|Impish|248,8,252,,,|||||,,,,,Fairy]Clodsire||ShucaBerry|WaterAbsorb|StealthRock,Earthquake,Recover,ZenHeadbutt|Careful|248,,176,,76,8|||||,,,,,Poison]Enamorus||ChoiceSpecs|CuteCharm|Moonblast,MysticalFire,EarthPower,Psychic|Timid|16,,,252,,240||,0,,,,|||,,,,,Fairy]Kingambit||OccaBerry|SupremeOverlord|SuckerPunch,IronHead,KowtowCleave,SwordsDance|Adamant|248,116,144,,,|||||,,,,,Dark]Rotom-Heat||HeavyDutyBoots|Levitate|WillOWisp,VoltSwitch,Overheat,ThunderWave|Bold|248,,160,,100,||,0,,,,|||,,,,,Electric","Great Tusk||Leftovers|Protosynthesis|BulkUp,BodyPress,RapidSpin,Earthquake|Impish|252,,220,,,36|||||,,,,,Ground]Torkoal||HeatRock|Drought|SunnyDay,StealthRock,LavaPlume,Yawn|Bold|252,,252,4,,||,0,,,,|||,,,,,Fire]Tera Captain|WalkingWake|Leftovers|Protosynthesis|HydroSteam,KnockOff,DracoMeteor,Substitute|Timid|52,,,224,,232|||||,,,,,Water]Tera Captain|Venusaur|BlackSludge|Chlorophyll|Growth,GigaDrain,SludgeBomb,EarthPower|Timid|104,,,252,,152||,0,,,,|||,,,,,Poison]Scream Tail||Leftovers|Protosynthesis|DazzlingGleam,Protect,Wish,Encore|Timid|252,,,,192,64||,0,,,,|||,,,,,Fairy]Weezing||BlackSludge|Levitate|Taunt,WillOWisp,SludgeBomb,Flamethrower|Bold|252,,232,,,24||,0,,,,|||,,,,,Poison"], + ["Great Tusk||Leftovers|Protosynthesis|Earthquake,StealthRock,KnockOff,RapidSpin|Impish|48,,248,,,212|||||,,,,,Water]Mienshao||ChoiceScarf|Regenerator|KnockOff,CloseCombat,StoneEdge,Uturn|Jolly|,252,116,,,140|||||,,,,,Fighting]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|HornLeech,IvyCudgel,PlayRough,Uturn|Jolly|60,,196,,,252|||||,,,,,Water]Moltres||ChartiBerry|FlameBody|WillOWisp,Flamethrower,Roost,Roar|Bold|68,,252,,,188||,0,,,,|||,,,,,Fire]Tera Captain|IronCrown|BoosterEnergy|QuarkDrive|CalmMind,Psyshock,TachyonCutter,TeraBlast|Timid|124,,,152,,232||,20,,,,|||,,,,,Water]Tera Captain|Jolteon|AssaultVest|VoltAbsorb|VoltSwitch,AlluringVoice,TeraBlast,Discharge|Timid|32,,,252,,224||,0,,,,|||,,,,,Fighting","Latios||LifeOrb|Levitate|DracoMeteor,LusterPurge,ShadowBall,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon]Tyranitar||SmoothRock|SandStream|StealthRock,PowerGem,KnockOff,IceBeam|Quiet|248,8,,252,,|||||,,,,,Rock]Tera Captain|Excadrill|Leftovers|SandRush|SwordsDance,Earthquake,RockSlide,PoisonJab|Adamant|,252,,,84,172|||||,,,,,Ground]Talonflame||HeavyDutyBoots|FlameBody|BraveBird,Uturn,Roost,Defog|Jolly|248,132,,,,128|||||,,,,,Fire]Fezandipiti||SafetyGoggles|ToxicChain|Moonblast,GunkShot,Taunt,Roost|Relaxed|248,,216,,,44|||||,,,,,Poison]Tera Captain|Yanmega|ChoiceScarf|TintedLens|AirSlash,TeraBlast,BugBuzz,Uturn|Timid|,,4,252,,252|||||,,,,,Flying"], + ["Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,BulkUp,Substitute|Jolly|,,188,,80,240|||||,,,,,Poison]Corviknight||Leftovers|Pressure|BodyPress,BraveBird,Roost,Defog|Impish|180,,120,,208,|||||,,,,,Bug]Cinderace||ChoiceScarf|Libero|PyroBall,GunkShot,HighJumpKick,Uturn|Jolly|,252,,,8,248|||||,,,,,Ice]Primarina||KeeBerry|LiquidVoice|HyperVoice,StoredPower,CalmMind,DrainingKiss|Calm|136,,224,,148,||,0,,,,|||,,,,,Stellar]Latios||ChoiceSpecs|Levitate|DracoMeteor,AuraSphere,Psychic,Trick|Timid|,,,252,32,224||,0,,,,|||,,,,,Normal]Ting-Lu||Leftovers|VesselofRuin|Earthquake,HeavySlam,StealthRock,Whirlwind|Careful|68,160,124,,156,|||||,,,,,Psychic","Darkrai||WideLens|BadDreams|DarkPulse,Hypnosis,FocusBlast,Thunder|Hasty|48,,,252,,208||,0,,,,|||,,,,,Dark]Tyranitar||SmoothRock|SandStream|KnockOff,StealthRock,FireBlast,DragonTail|Relaxed|248,,92,,168,|||||,,,,,Rock]Tera Captain|Excadrill|AirBalloon|SandRush|TeraBlast,Earthquake,IronHead,SwordsDance|Lonely|136,252,,,,120|||||,,,,,Electric]Enamorus||HeavyDutyBoots|Contrary|Tailwind,Superpower,PlayRough,ZenHeadbutt|Adamant|,252,8,,,248|||||,,,,,Fairy]Tera Captain|ElectrodeHisui|ExpertBelt|Static|Thunderbolt,FoulPlay,VoltSwitch,GrassKnot|Modest|112,,,252,4,140||,0,,,,|||,,,,,Electric]Qwilfish||RockyHelmet|PoisonPoint|ToxicSpikes,FlipTurn,AquaJet,Endure|Relaxed|252,,252,,4,||,,,,,13|||,,,,,Water"], + ["Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Glare,Substitute|Modest|,,,252,100,156||,0,,,,|||,,,,,Electric]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,FlipTurn,AquaJet,SacredSword|Jolly|,252,84,,,172|||||,,,,,Water]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,ZenHeadbutt,CloseCombat|Jolly|,252,4,,,252|||||,,,,,Rock]Corviknight||RockyHelmet|Pressure|Roost,Uturn,Defog,BodyPress|Impish|252,,4,,252,|||||,,,,,Flying]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,FlareBlitz,Earthquake,PsychicFangs|Adamant|,252,36,,,220|||||,,,,,Fire]Hatterene|||MagicBounce|CalmMind,Psyshock,DrainingKiss,MysticalFire|Bold|252,,252,4,,||,0,,,,|||,,,,,Psychic","Tera Captain|GreatTusk|HeavyDutyBoots|Protosynthesis|RapidSpin,BulkUp,Earthquake,TemperFlare|Jolly|144,124,,,,240|||||,,,,,Fire]Iron Bundle||ChoiceSpecs|QuarkDrive|HydroPump,FreezeDry,FlipTurn,IceBeam|Modest|,,96,252,,160|||||,,,,,Ice]Meowscarada||ChoiceBand|Protean|SuckerPunch,FlowerTrick,Uturn,KnockOff|Jolly|80,252,,,,176|||||,,,,,Grass]Corviknight||Leftovers|MirrorArmor|DrillPeck,Roost,Uturn,Defog|Careful|248,8,,,252,|||||,,,,,Flying]Ceruledge||FocusSash|WeakArmor|CloseCombat,SwordsDance,BitterBlade,ShadowSneak|Jolly|,220,36,,,252|||||,,,,,Fire]Tera Captain|BraviaryHisui|ScopeLens|TintedLens|EsperWing,VacuumWave,DazzlingGleam,CalmMind|Timid|,,,252,48,208||,0,,,,|S||,,,,,Fairy"], + ["Garchomp||YacheBerry|RoughSkin|ScaleShot,Earthquake,IronHead,SwordsDance|Jolly|4,252,,,,252|||||,,,,,Dragon]Tera Captain|Annihilape|ChestoBerry|Defiant|DrainPunch,RageFist,Rest,BulkUp|Careful|252,,8,,248,|||||,,,,,Water]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,RazorShell,KnockOff,SuckerPunch|Adamant|,252,4,,,252|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|HeatWave,IcyWind,SludgeBomb,Uturn|Bold|,,132,,148,228|||||,,,,,Flying]Tinkaton||AirBalloon|MoldBreaker|GigatonHammer,KnockOff,IceHammer,StealthRock|Adamant|116,208,,,,184|||||,,,,,Fairy]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Flamethrower,Uturn,WillOWisp,Roost|Calm|248,,12,,248,|||||,,,,,Poison","Garchomp||RockyHelmet|RoughSkin|Earthquake,RockTomb,Spikes,DragonClaw|Jolly|,196,60,,,252|||||,,,,,Dragon]Tera Captain|GreninjaBond|LifeOrb|BattleBond|Surf,WaterShuriken,IceBeam,GrassKnot|Timid|8,,,252,,248|||||,,,,,Water]Scream Tail||RockyHelmet|Protosynthesis|Wish,Protect,StealthRock,Encore|Timid|248,,76,,,184||,0,,,,|||,,,,,Fairy]Scizor||ProtectivePads|Technician|BulletPunch,KnockOff,Uturn,SwordsDance|Adamant|252,252,4,,,|||||,,,,,Bug]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,RapidSpin,EarthPower,DazzlingGleam|Modest|184,,4,252,,68|||||,,,,,Stellar]Tera Captain|IronThorns|AirBalloon|QuarkDrive|DragonDance,TeraBlast,ThunderPunch,StoneEdge|Jolly|112,252,,,,144||,,,30,,|||,,,,,Fairy"], + ["Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,Trailblaze,SwordsDance,Taunt|Jolly|76,252,,,4,176|||||,,,,,Fire]Weezing-Galar||BlackSludge|Levitate|Defog,FireBlast,StrangeSteam,PainSplit|Modest|252,,120,132,4,||,0,,,,|||,,,,,Poison]Tera Captain|Manaphy|Leftovers|Hydration|TakeHeart,AcidArmor,Scald,StoredPower|Calm|252,,,36,204,16||,0,,,,|||,,,,,Dragon]Raging Bolt||BoosterEnergy|Protosynthesis|Thunderclap,DracoMeteor,CalmMind,Thunderbolt|Modest|252,,,252,4,||,20,,,,|||,,,,,Electric]Tornadus-Therian||AssaultVest|Regenerator|Hurricane,Uturn,HeatWave,KnockOff|Timid|252,,,168,,88|||||,,,,,Flying]Mabosstiff||ChoiceScarf|Stakeout|Crunch,PlayRough,DestinyBond,PsychicFangs|Adamant|,252,,,4,252|||||,,,,,Dark","Darkrai||WiseGlasses|BadDreams|DarkPulse,IceBeam,FocusBlast,NastyPlot|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|Gholdengo|Leftovers|GoodasGold|ShadowBall,NastyPlot,ThunderWave,Recover|Calm|252,,132,,124,||,0,,,,|||,,,,,Fairy]Ting-Lu||Leftovers|VesselofRuin|Earthquake,StoneEdge,StealthRock,Whirlwind|Serious|252,,184,,72,|||||,,,,,Dark]Zapdos||HeavyDutyBoots|Static|Discharge,Hurricane,VoltSwitch,Roost|Bold|252,,252,,,||,0,,,,|||,,,,,Electric]Tsareena||YacheBerry|QueenlyMajesty|PowerWhip,TripleAxel,Endeavor,RapidSpin|Adamant|252,252,,,4,|||||,,,,,Grass]Tera Captain|Okidogi|ChoiceScarf|ToxicChain|GunkShot,CloseCombat,KnockOff,PsychicFangs|Jolly|,252,,,4,252|||||,,,,,Fighting"], + ["Darkrai||BlunderPolicy|BadDreams|Hypnosis,NastyPlot,DarkPulse,IceBeam|Modest|24,,,252,,232||,0,,,,|||,,,,,Dark]Slowking-Galar||ShucaBerry|Regenerator|Toxic,ChillyReception,IceBeam,SludgeBomb|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Iron Treads||AssaultVest|QuarkDrive|IronHead,Earthquake,RapidSpin,VoltSwitch|Adamant|252,36,,,,220|||||,,,,,Ground]Tera Captain|Shaymin|HeavyDutyBoots|NaturalCure|SeedFlare,DazzlingGleam,TeraBlast,Synthesis|Timid|252,,96,,,160||,0,,,,|||,,,,,Water]Swampert||Leftovers|Torrent|StealthRock,FlipTurn,IceBeam,Earthquake|Relaxed|252,,252,4,,|||||,,,,,Water]Hariyama||FlameOrb|Guts|DrainPunch,BulkUp,IcePunch,BulletPunch|Adamant|108,148,252,,,|||||,,,,,Fighting","Tera Captain|Magnezone|LifeOrb|MagnetPull|TeraBlast,FlashCannon,Thunderbolt,VoltSwitch|Modest|248,,,252,8,||,0,,,,|||,,,,,Ground]Kleavor||ChoiceScarf|Sharpness|StoneAxe,Uturn,DualWingbeat,XScissor|Adamant|40,252,,,,216|||||,,,,,Bug]Grafaiai||BlackSludge|Prankster|KnockOff,PartingShot,Encore,Copycat|Jolly|32,252,,,,224|||||,,,,,Poison]Toedscruel||HeavyDutyBoots|MyceliumMight|Spore,LeafStorm,EarthPower,RapidSpin|Timid|,,,252,4,252|||||,,,,,Ground]Dragonite||HeavyDutyBoots|Multiscale|ExtremeSpeed,DragonDance,Earthquake,FirePunch|Adamant|,252,,,4,252|||||,,,,,Dragon]Enamorus||LifeOrb|CuteCharm|Agility,Moonblast,EarthPower,SludgeBomb|Modest|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Taunt,StealthRock,Earthquake,KnockOff|Impish|248,48,144,,68,|||||,,,,,Dragon]Primarina||Leftovers|Torrent|RainDance,Substitute,Moonblast,SparklingAria|Modest|248,,,76,168,16||,0,,,,|||,,,,,Water]Gouging Fire||LumBerry|Protosynthesis|DragonDance,DragonClaw,Earthquake,FlareBlitz|Adamant|232,96,,,4,176|||||,,,,,Fire]Meowscarada||ChoiceScarf|Protean|ToxicSpikes,Uturn,KnockOff,FlowerTrick|Jolly|104,252,,,,152|||||,,,,,Grass]Slowking-Galar||HeavyDutyBoots|Regenerator|ThunderWave,ChillyReception,Flamethrower,FutureSight|Calm|248,,,,232,28||,0,,,,|||,,,,,Poison]Tera Captain|Tornadus|HeavyDutyBoots|Prankster|RainDance,NastyPlot,Hurricane,WeatherBall|Timid|136,,,60,64,248||,0,,,,|||,,,,,Water","Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|KnockOff,DracoMeteor,Flamethrower,HydroSteam|Timid|12,,,244,,252|||||,,,,,Water]Torkoal||HeatRock|Drought|StealthRock,LavaPlume,Earthquake,SunnyDay|Relaxed|248,,168,,92,||,,,,,0|||,,,,,Fire]Weezing-Galar||EjectButton|Levitate|Defog,Haze,SludgeBomb,Taunt|Impish|252,,252,,4,||,0,,,,|||,,,,,Poison]Tera Captain|Sawsbuck|ChoiceBand|Chlorophyll|DoubleEdge,BodySlam,DoubleKick,HornLeech|Adamant|20,252,,,,236|||||,,,,,Normal]Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Ruination|Timid|72,,,252,,184||,0,,,,|||,,,,,Dark]Ursaluna-Bloodmoon||Leftovers|MindsEye|CalmMind,BloodMoon,EarthPower,VacuumWave|Modest|252,,80,176,,||,0,,,,|||,,,,,Ground"], + ["Great Tusk||BoosterEnergy|Protosynthesis|Earthquake,IceSpinner,KnockOff,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Ground]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,StealthRock,PlayRough,KnockOff|Serious|248,4,,,25,|||||,,,,,Fairy]Grafaiai||BlackSludge|Prankster|Encore,PartingShot,LowKick,KnockOff|Impish|252,4,252,,,|||||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|CalmMind,AuraSphere,StoredPower,Recover|Timid|248,,160,,,100||,0,,,,|||,,,,,Poison]Tera Captain|Umbreon|Leftovers|Synchronize|FoulPlay,Toxic,Wish,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Meowscarada||HeavyDutyBoots|Protean|BrickBreak,FlowerTrick,KnockOff,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass","Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,BulkUp,Rest|Impish|252,,252,,4,|||S||,,,,,Fairy]Tornadus-Therian||ChoiceScarf|Regenerator|AirSlash,KnockOff,HeatWave,Uturn|Timid|48,,20,252,20,168|||S||,,,,,Flying]Quaquaval||RockyHelmet|Moxie|AquaStep,RapidSpin,Roost,Uturn|Jolly|252,,144,,,112|||||,,,,,Water]Slowbro-Galar||BlackSludge|Regenerator|Flamethrower,Toxic,SlackOff,Psychic|Calm|252,,48,,208,||,0,,,,|S||,,,,,Poison]Ninetales-Alola||LightClay|SnowWarning|Blizzard,Encore,AuroraVeil,Hypnosis|Timid|112,,,252,,144||,0,,,,|S||,,,,,Ice]Beartic||LifeOrb|SlushRush|IcicleCrash,HeavySlam,CloseCombat,Earthquake|Adamant|,252,,,4,252|||S||,,,,,Ice"], + ["Iron Valiant||LifeOrb|QuarkDrive|Moonblast,CloseCombat,VacuumWave,Thunderbolt|Mild|,12,,252,,244|||||,,,,,Fairy]Garchomp||RockyHelmet|RoughSkin|Spikes,Earthquake,DracoMeteor,ScaleShot|Naive|248,,,76,,184|||||,,,,,Dragon]Rotom-Wash||YacheBerry|Levitate|HydroPump,VoltSwitch,PainSplit,Thunderbolt|Calm|248,,,,220,40||,0,,,,|||,,,,,Electric]Tera Captain|Ceruledge|ClearAmulet|WeakArmor|SwordsDance,BitterBlade,Poltergeist,ShadowSneak|Jolly|96,252,,,,160|||||,,,,,Steel]Tera Captain|Revavroom|ChoiceScarf|Filter|PartingShot,GunkShot,HighHorsepower,IronHead|Jolly|24,252,,,,232|||||,,,,,Electric]Uxie||SitrusBerry|Levitate|StealthRock,Encore,Uturn,Psychic|Timid|248,,68,,,192|||||,,,,,Psychic","Tera Captain|GreatTusk|MentalHerb|Protosynthesis|RapidSpin,BulkUp,HeadlongRush,IceSpinner|Careful|252,212,,,,44|||||,,,,,Poison]Overqwil||AirBalloon|Intimidate|Spikes,Agility,BarbBarrage,DestinyBond|Jolly|,76,252,,4,176|||||,,,,,Dark]Arboliva||EjectPack|SeedSower|LeafStorm,Memento,StrengthSap,EarthPower|Modest|248,,68,128,,64||,0,,,,|||,,,,,Grass]Empoleon||ChopleBerry|Competitive|KnockOff,IceBeam,FlashCannon,StealthRock|Timid|252,,4,,,252|||||,,,,,Water]Iron Bundle||LightClay|QuarkDrive|AuroraVeil,Snowscape,FreezeDry,HydroPump|Calm|252,,,,28,228||,0,,,,|||,,,,,Ice]Tera Captain|Oricorio|MirrorHerb|Dancer|QuiverDance,RevelationDance,Roost,Substitute|Bold|216,,204,,,88||,0,,,,|||,,,,,Ice"], + ["Tera Captain|Latias|ChoiceScarf|Levitate|DracoMeteor,MistBall,Surf,IceBeam|Modest|,,,252,,252||,0,,,,|||,,,,,Water]Tera Captain|Jolteon|LifeOrb|VoltAbsorb|CalmMind,Thunderbolt,VoltSwitch,TeraBlast|Timid|,,,252,64,192||,0,,,,|||,,,,,Ice]Enamorus||HeavyDutyBoots|Contrary|PlayRough,Superpower,IronHead,Taunt|Adamant|,252,,,64,192|||||,,,,,Fairy]Tentacruel||BlackSludge|ClearBody|Blizzard,Protect,RapidSpin,ToxicSpikes|Sassy|252,,4,,252,||,,,,,0|||,,,,,Water]Heatran||ChoiceScarf|FlashFire|Flamethrower,FlashCannon,EarthPower,DragonPulse|Modest|,,4,252,4,248||,0,,,,|||,,,,,Fire]Meowscarada||ExpertBelt|Protean|FlowerTrick,KnockOff,PlayRough,TripleAxel|Jolly|,252,,,8,248|||||,,,,,Grass","Latios||AssaultVest|Levitate|AuraSphere,DracoMeteor,IceBeam,Psyshock|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon]Greninja||ChoiceScarf|Protean|SludgeWave,Surf,DarkPulse,Uturn|Quiet|,200,,252,,56|||||,,,,,Water]Tera Captain|Torterra|WhiteHerb|ShellArmor|SeedBomb,TeraBlast,Earthquake,ShellSmash|Adamant|,252,,,4,252|||||,,,,,Ice]Tera Captain|Skeledirge|Leftovers|Unaware|SlackOff,TorchSong,EarthPower,Yawn|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Cyclizar||HeavyDutyBoots|Regenerator|RapidSpin,Uturn,KnockOff,ShedTail|Jolly|88,252,,,,168|||||,,,,,Dragon]Heracross||AssaultVest|Moxie|Trailblaze,Lunge,Earthquake,StoneEdge|Adamant|,252,,,4,252|||||,,,,,Bug"], + ["Palafin-Hero||Leftovers|ZerotoHero|Substitute,BulkUp,IcePunch,JetPunch|Careful|252,4,,,252,|||||,,,,,Water]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,KnockOff,RapidSpin,Earthquake|Jolly|68,252,,,,188|||||,,,,,Ground]Tera Captain|Rillaboom|LifeOrb|GrassySurge|SwordsDance,GrassyGlide,KnockOff,DrainPunch|Adamant|252,252,,,4,|||||,,,,,Poison]Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,PartingShot,SpiritBreak|Careful|252,4,,,252,|||||,,,,,Dark]Tera Captain|Armarouge|LumBerry|WeakArmor|CalmMind,Psyshock,EnergyBall,ArmorCannon|Modest|212,,,252,,44||,0,,,,|||,,,,,Fairy]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,Uturn,KnockOff,BleakwindStorm|Timid|248,,,,96,164|||||,,,,,Flying","Hydrapple||YacheBerry|Regenerator|NastyPlot,FickleBeam,GigaDrain,Recover|Modest|244,,12,252,,||,0,,,,|S||,,,,,Grass]Darkrai||FocusSash|BadDreams|NastyPlot,DarkPulse,Hypnosis,SludgeBomb|Timid|24,,4,252,4,224||,0,,,,|S||,,,,,Dark]Tera Captain|Infernape|ChoiceScarf|IronFist|ThunderPunch,CloseCombat,KnockOff,Uturn|Jolly|16,252,,,,240|||S||,,,,,Electric]Slowking-Galar||ColburBerry|Regenerator|SludgeBomb,Flamethrower,ThunderWave,ChillyReception|Calm|252,,4,,252,||,0,,,,|S||,,,,,Poison]Forretress||RockyHelmet|Sturdy|StealthRock,RapidSpin,VoltSwitch,BodyPress|Bold|252,,252,4,,|||||,,,,,Bug]Swampert||AssaultVest|Torrent|EarthPower,SludgeWave,BrickBreak,FlipTurn|Sassy|252,,4,,252,|||S||,,,,,Water"], + ["Gurdurr||Eviolite|Guts|DrainPunch,MachPunch,IcePunch,KnockOff|Careful|248,8,,,252,|||||,,,,,Fighting]Darkrai||ChoiceSpecs|BadDreams|DarkPulse,IceBeam,FocusBlast,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,EnergyBall,TeraBlast,Substitute|Timid|,,,132,124,252||,0,,,,|||,,,,,Ground]Rotom-Wash||ChestoBerry|Levitate|Rest,HydroPump,VoltSwitch,WillOWisp|Bold|248,,172,,,88||,0,,,,|||,,,,,Electric]Garchomp||RockyHelmet|RoughSkin|Spikes,Earthquake,FireBlast,DracoMeteor|Timid|248,,100,,,160|||||,,,,,Dragon]Jirachi||KasibBerry|SereneGrace|IronHead,ZenHeadbutt,IcePunch,ThunderWave|Jolly|,252,80,,,176|||||,,,,,Steel","Tera Captain|Diancie|AirBalloon|ClearBody|StealthRock,Moonblast,EarthPower,DiamondStorm|Sassy|248,,,8,252,|||||,,,,,Fairy]Gliscor||ToxicOrb|PoisonHeal|Protect,IceFang,Toxic,Earthquake|Impish|248,,184,,76,|||||,,,,,Ground]Darkrai||ChoiceScarf|BadDreams|IceBeam,DarkPulse,FocusBlast,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Blastoise||HeavyDutyBoots|Torrent|IceBeam,RapidSpin,FlipTurn,Surf|Relaxed|248,,252,8,,|||||,,,,,Water]Tera Captain|Annihilape|ChoiceScarf|Defiant|RageFist,DrainPunch,CloseCombat,Uturn|Jolly|,252,4,,,252|||||,,,,,Ghost]Slowking-Galar||BlackSludge|Regenerator|ToxicSpikes,ChillyReception,SludgeWave,FutureSight|Calm|248,,,8,252,||,0,,,,|||,,,,,Poison"], + ["Tera Captain|Serperior|AssaultVest|Contrary|LeafStorm,TeraBlast,DragonPulse,GigaDrain|Timid|160,,,148,,200||,0,,,,|||,,,,,Stellar]Dachsbun||RockyHelmet|WellBakedBody|PlayRough,BodyPress,Wish,Roar|Impish|252,,248,,,8|||||,,,,,Fairy]Latios||LifeOrb|Levitate|DracoMeteor,LusterPurge,AuraSphere,FlipTurn|Timid|32,,,252,,224|||||,,,,,Dragon]Heatran||ChoiceScarf|FlashFire|Overheat,FlashCannon,EarthPower,StealthRock|Calm|40,,,60,252,156||,0,,,,|||,,,,,Fire]Palafin||RindoBerry|ZerotoHero|JetPunch,DrainPunch,IcePunch,BulkUp|Adamant|,252,,,40,216|||||,,,,,Water]Donphan||HeavyDutyBoots|Sturdy|Earthquake,IceShard,StealthRock,RapidSpin|Adamant|252,128,,,,128|||||,,,,,Ground","Tera Captain|Shaymin|RockyHelmet|NaturalCure|SeedFlare,EarthPower,DazzlingGleam,Rest|Timid|184,,,252,,72||,0,,,,|||,,,,,Ground]Muk||BlackSludge|PoisonTouch|PoisonJab,ToxicSpikes,Haze,DrainPunch|Careful|252,,4,,252,|||||,,,,,Poison]Tera Captain|Salamence|HeavyDutyBoots|Moxie|DragonDance,DragonClaw,Earthquake,TeraBlast|Adamant|,252,,,4,252|||||,,,,,Fairy]Tatsugiri||HeavyDutyBoots|StormDrain|NastyPlot,DracoMeteor,Surf,RapidSpin|Timid|48,,,244,,216|||||,,,,,Dragon]Great Tusk||Leftovers|Protosynthesis|Substitute,Earthquake,KnockOff,CloseCombat|Jolly|72,252,,,,184|||||,,,,,Ground]Enamorus||ChoiceScarf|CuteCharm|Moonblast,EarthPower,MysticalFire,HealingWish|Modest|40,,,216,,252||,0,,,,|||,,,,,Fairy"], + ["Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|KnockOff,IvyCudgel,WoodHammer,Superpower|Jolly|80,252,,,,176|||||,,,,,Fire]Cyclizar||SitrusBerry|Regenerator|ShedTail,RapidSpin,KnockOff,DragonTail|Jolly|252,,48,,,208|||||,,,,,Dragon]Tera Captain|Serperior|LumBerry|Contrary|LeafStorm,TeraBlast,Glare,Synthesis|Timid|24,,,252,,232||,0,,,,|||,,,,,Stellar]Clodsire||BlackSludge|WaterAbsorb|StealthRock,ToxicSpikes,Earthquake,StoneEdge|Careful|252,252,,,4,|||||,,,,,Poison]Kommo-o||ThroatSpray|Soundproof|ClangorousSoul,ClangingScales,AuraSphere,RockSlide|Timid|8,,,252,24,224|||||,,,,,Dragon]Clefairy||Eviolite|MagicGuard|CalmMind,Moonblast,ThunderWave,Moonlight|Calm|252,,112,,144,||,0,,,,|||,,,,,Fairy","Palafin||AssaultVest|ZerotoHero|JetPunch,IcePunch,GrassKnot,Liquidation|Hasty|64,252,,56,,136|||||,,,,,Grass]Raikou||ExpertBelt|Pressure|Thunderbolt,VoltSwitch,Extrasensory,ThunderWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Tyranitar||ChopleBerry|SandStream|Roar,StealthRock,KnockOff,ThunderWave|Careful|252,4,,,252,|||||,,,,,Ghost]Tera Captain|Chesnaught|AssaultVest|Bulletproof|PoisonJab,Earthquake,TeraBlast,RockSlide|Careful|252,4,,,252,|||||,,,,,Fire]Espeon||MirrorHerb|MagicBounce|AlluringVoice,Wish,Protect,Psyshock|Timid|248,,,4,,252||,0,,,,|||,,,,,Fairy]Reuniclus||ColburBerry|MagicGuard|AcidArmor,CalmMind,StoredPower,Recover|Bold|252,,212,44,,||,0,,,,|||,,,,,Dark"], + ["Clefable||Leftovers|Unaware|MistyTerrain,AlluringVoice,Flamethrower,ThunderWave|Bold|96,,228,,184,||,0,,,,|||,,,,,Fairy]Tera Captain|Latias|Leftovers|Levitate|FutureSight,IceBeam,Thunderbolt,Recover|Calm|,,,252,16,240||,0,,,,|||,,,,,Water]Quagsire||Leftovers|WaterAbsorb|Recover,Spikes,Yawn,Earthquake|Careful|252,4,,,252,|||||,,,,,Water]Chi-Yu||HeavyDutyBoots|BeadsofRuin|Substitute,Taunt,DarkPulse,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Torkoal||Leftovers|Drought|StealthRock,WillOWisp,ClearSmog,WeatherBall|Calm|252,,,4,252,||,0,,,,|||,,,,,Fire]Jirachi||Leftovers|SereneGrace|IronHead,BodySlam,FirePunch,Substitute|Adamant|204,252,,,,52|||||,,,,,Steel","Iron Valiant||LifeOrb|QuarkDrive|AuraSphere,Moonblast,Psyshock,DestinyBond|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Iron Bundle||LifeOrb|QuarkDrive|IceBeam,HydroPump,FreezeDry,FlipTurn|Timid|208,,,252,,48|||||,,,,,Ice]Tera Captain|IronMoth|HeavyDutyBoots|QuarkDrive|FieryDance,SludgeWave,DazzlingGleam,EnergyBall|Timid|120,,,132,4,252||,0,,,,|||,,,,,Dark]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,Earthquake,HeavySlam,RapidSpin|Jolly|48,252,,,,208|||||,,,,,Ground]Iron Jugulis||PowerHerb|QuarkDrive|DarkPulse,EarthPower,MeteorBeam,FlashCannon|Timid|8,,,252,4,244||,0,,,,|||,,,,,Dark]Pincurchin||TerrainExtender|ElectricSurge|Discharge,ToxicSpikes,ThunderWave,Memento|Sassy|252,,,4,252,||,0,,,,|||,,,,,Electric"], + ["Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Blizzard,Moonblast,Charm|Timid|248,,,,8,252||,0,,,,|||,,,,,Ice]Baxcalibur||LoadedDice|ThermalExchange|DragonDance,GlaiveRush,IcicleSpear,Earthquake|Adamant|,252,4,,,252|||||,,,,,Dragon]Manaphy||Leftovers|Hydration|TailGlow,Surf,IceBeam,EnergyBall|Timid|,,4,252,,252||,0,,,,|||,,,,,Water]Cyclizar||HeavyDutyBoots|Regenerator|RapidSpin,KnockOff,ShedTail,Uturn|Timid|252,,252,,4,|||||,,,,,Dragon]Tera Captain|Pecharunt|Leftovers|PoisonPuppeteer|MalignantChain,Hex,Toxic,Recover|Modest|,,,252,252,4||,0,,,,|||,,,,,Grass]Bisharp||Eviolite|Defiant|StealthRock,NightSlash,IronHead,LowKick|Adamant|,252,,,4,252|||S||,,,,,Dark","Hydrapple||AssaultVest|Regenerator|LeafStorm,DracoMeteor,HeavySlam,FickleBeam|Sassy|248,8,,,252,|||||,,,,,Grass]Tera Captain|GreatTusk|Leftovers|Protosynthesis|StealthRock,CloseCombat,HeadlongRush,HeavySlam|Jolly|,252,,,4,252|||||,,,,,Steel]Ting-Lu||ChoiceBand|VesselofRuin|Earthquake,BodyPress,HeavySlam,ThroatChop|Careful|252,4,,,252,|||||,,,,,Dark]Kingambit||BlackGlasses|SupremeOverlord|SwordsDance,KowtowCleave,IronHead,SuckerPunch|Adamant|252,252,,,4,|||||,,,,,Dark]Alomomola||HeavyDutyBoots|Regenerator|Scald,Wish,Protect,FlipTurn|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Water]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,FlareBlitz,Outrage,MorningSun|Jolly|20,252,4,,,232|||||,,,,,Fire"], + ["Palafin||LumBerry|ZerotoHero|Liquidation,JetPunch,BulkUp,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Water]Glimmora||ChoiceScarf|ToxicDebris|StealthRock,MortalSpin,SludgeWave,PowerGem|Modest|56,,,252,,200|||||,,,,,Rock]Tera Captain|Metagross|LumBerry|ClearBody|PsychicFangs,MeteorMash,Earthquake,Trailblaze|Adamant|20,252,,,,236|||||,,,,,Steel]Darkrai||HeavyDutyBoots|BadDreams|Psyshock,DarkPulse,NastyPlot,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|Sandaconda|Leftovers|ShedSkin|Glare,Coil,Rest,Earthquake|Careful|252,4,,,252,|||||,,,,,Steel]Zapdos||HeavyDutyBoots|Pressure|Hurricane,Thunderbolt,Roost,LightScreen|Modest|248,,,24,136,100||,0,,,,|||,,,,,Electric","Rotom-Wash||Leftovers|Levitate|ThunderWave,HydroPump,VoltSwitch,WillOWisp|Bold|252,,36,,,220||,0,,,,|||,,,,,Electric]Tera Captain|IronMoth|ChestoBerry|QuarkDrive|DazzlingGleam,SludgeWave,FieryDance,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Iron Crown||BoosterEnergy|QuarkDrive|CalmMind,TachyonCutter,FocusBlast,PsychicNoise|Timid|84,,,172,,252||,20,,,,|||,,,,,Steel]Darkrai||ChopleBerry|BadDreams|FocusBlast,DarkPulse,IceBeam,Psyshock|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Gliscor||ToxicOrb|PoisonHeal|StealthRock,Toxic,KnockOff,Earthquake|Careful|252,,,,108,148|||||,,,,,Ground]Hitmonchan||HeavyDutyBoots|IronFist|DrainPunch,IcePunch,MachPunch,RapidSpin|Adamant|248,252,,,8,|||||,,,,,Fighting"], + ["Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Protect|Timid|56,,,252,,200||,0,,,,|||,,,,,Stellar]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,EarthPower,Endeavor,SteelBeam|Timid|40,,,216,,252||,0,,,,|||,,,,,Ground]Pecharunt||SafetyGoggles|PoisonPuppeteer|MalignantChain,Hex,PartingShot,Recover|Timid|252,,,24,56,176||,0,,,,|||,,,,,Poison]Urshifu-Rapid-Strike||PunchingGlove|UnseenFist|SurgingStrikes,IcePunch,Uturn,SwordsDance|Jolly|16,252,,,,240|||||,,,,,Fighting]Cyclizar||EjectPack|Regenerator|RapidSpin,ShedTail,DracoMeteor,KnockOff|Timid|92,,,200,,216|||||,,,,,Dragon]Rotom-Heat||ChoiceScarf|Levitate|VoltSwitch,Overheat,PainSplit,Trick|Timid|84,,,232,,192||,0,,,,|||,,,,,Electric","Tera Captain|Mew|LifeOrb|Synchronize|Psychic,AlluringVoice,VacuumWave,NastyPlot|Timid|24,,,252,,232||,0,,,,|||,,,,,Fighting]Tera Captain|MoltresGalar|SitrusBerry|Berserk|FieryWrath,AirSlash,NastyPlot,Agility|Modest|40,,,252,8,208||,0,,,,|||,,,,,Electric]Rotom-Heat||ChoiceScarf|Levitate|VoltSwitch,Overheat,HyperVoice,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Iron Treads||AirBalloon|QuarkDrive|Earthquake,KnockOff,RapidSpin,StealthRock|Jolly|4,252,,,,252|||||,,,,,Steel]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Psychic,CalmMind|Timid|,,24,252,,232||,0,,,,|||,,,,,Fairy]Amoonguss||RedCard|Regenerator|SludgeBomb,GigaDrain,Spore,Synthesis|Bold|252,,128,,128,||,0,,,,|||,,,,,Poison"], + ["Corviknight||RockyHelmet|Pressure|IronHead,Defog,Uturn,Roost|Impish|252,4,252,,,|||||,,,,,Flying]Goodra-Hisui||AssaultVest|SapSipper|IceBeam,Earthquake,FlashCannon,DracoMeteor|Sassy|252,,4,,252,|||||,,,,,Steel]Tera Captain|Clefable|Leftovers|Unaware|CosmicPower,Moonblast,Moonlight,StoredPower|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Annihilape||Leftovers|Defiant|Rest,BulkUp,RageFist,SleepTalk|Careful|252,,4,,252,|||||,,,,,Fighting]Cinderace||HeavyDutyBoots|Libero|Uturn,CourtChange,PyroBall,SuckerPunch|Adamant|72,252,,,,184|||||,,,,,Fire]Tera Captain|HoopaUnbound|ChoiceBand|Magician|IcePunch,HyperspaceFury,KnockOff,ZenHeadbutt|Adamant|252,252,,,4,|||||,,,,,Dark","Rotom-Wash||Leftovers|Levitate|WillOWisp,VoltSwitch,HydroPump,Thunderbolt|Calm|252,,4,,252,||,0,,,,|||,,,,,Electric]Pincurchin||Leftovers|ElectricSurge|Recover,Thunderbolt,ThunderWave,Spikes|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Sceptile||HeavyDutyBoots|Overgrow|ShedTail,LeechSeed,LeafStorm,DragonPulse|Timid|252,,,4,,252||,0,,,,|||,,,,,Grass]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,CloseCombat,PsychoCut|Jolly|,252,,,4,252|||||,,,,,Rock]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Toxic,KnockOff,Protect|Impish|252,4,252,,,|||||,,,,,Ground]Tera Captain|IronMoth|AirBalloon|QuarkDrive|FieryDance,SludgeWave,DazzlingGleam,Discharge|Timid|,,124,132,,252||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|Noivern|ChoiceScarf|Infiltrator|Hurricane,Psychic,TeraBlast,Uturn|Modest|36,,16,188,16,252|||||,,,,,Ice]Iron Crown||Leftovers|QuarkDrive|Rest,SleepTalk,TachyonCutter,Psyshock|Modest|236,,56,,32,184||,20,,,,|||,,,,,Steel]Tera Captain|Zarude|Leftovers|LeafGuard|Protect,PowerWhip,Synthesis,KnockOff|Jolly|156,,16,,96,240|||||,,,,,Dark]Sandy Shocks||ChoiceScarf|Protosynthesis|VoltSwitch,EarthPower,Thunder,PowerGem|Timid|236,,80,,56,136|||||,,,,,Electric]Fezandipiti||BlackSludge|ToxicChain|PlayRough,Roost,Toxic,Protect|Jolly|212,,240,,16,40|||||,,,,,Poison]Slither Wing||ChoiceBand|Protosynthesis|Uturn,BrickBreak,Earthquake,Trailblaze|Jolly|196,,184,,16,112|||||,,,,,Bug","Palafin||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,CloseCombat,FlipTurn|Adamant|4,252,,,,252|||||,,,,,Water]Zapdos||RockyHelmet|Static|WeatherBall,Hurricane,VoltSwitch,Roost|Modest|172,,,128,,208||,0,,,,|||,,,,,Electric]Archaludon||AirBalloon|Stamina|ElectroShot,BodyPress,DragonPulse,StealthRock|Timid|124,,,252,,132||,0,,,,|||,,,,,Steel]Tera Captain|Annihilape|ChoiceScarf|Defiant|Uturn,RageFist,CloseCombat,TeraBlast|Adamant|104,252,,,,152|||||,,,,,Ghost]Politoed||DampRock|Drizzle|EarthPower,Rest,Surf,Haze|Calm|252,,,,188,68||,0,,,,|||,,,,,Water]Electrode-Hisui||AirBalloon|Static|ThunderWave,VoltSwitch,LeechSeed,LeafStorm|Modest|40,,,252,,216||,0,,,,|||,,,,,Electric"], + ["Garchomp||RockyHelmet|RoughSkin|RockSlide,DragonTail,StealthRock,FireBlast|Naive|252,,40,,,216|||||,,,,,Dragon]Gholdengo||CovertCloak|GoodasGold|MakeItRain,ShadowBall,NastyPlot,Recover|Bold|252,,108,76,,52||,0,,,,|||,,,,,Steel]Meowscarada||ChoiceBand|Protean|FlowerTrick,TripleAxel,KnockOff,Uturn|Jolly|96,252,,,,160|||||,,,,,Grass]Tera Captain|RagingBolt|CovertCloak|Protosynthesis|Thunderclap,DragonPulse,Thunderbolt,CalmMind|Bold|64,,252,192,,||,20,,,,|||,,,,,Electric]Tera Captain|OricorioPomPom|HeavyDutyBoots|Dancer|RevelationDance,Hurricane,Substitute,QuiverDance|Modest|252,,200,,,56||,0,,,,|||,,,,,Rock]Tentacruel||BlackSludge|LiquidOoze|ToxicSpikes,RapidSpin,FlipTurn,KnockOff|Impish|252,,252,,4,|||||,,,,,Water","Urshifu-Rapid-Strike||ProtectivePads|UnseenFist|SurgingStrikes,Uturn,AquaJet,CloseCombat|Adamant|,252,,,4,252|||||,,,,,Stellar]Tera Captain|DeoxysDefense|Leftovers|Pressure|NastyPlot,HyperBeam,IceBeam,DarkPulse|Timid|48,,,252,,208||,0,,,,|||,,,,,Normal]Thundurus||HeavyDutyBoots|Prankster|RainDance,ThunderWave,Uturn,WeatherBall|Calm|252,,,4,252,|||||,,,,,Stellar]Tera Captain|Garganacl|Leftovers|PurifyingSalt|SaltCure,Recover,StealthRock,Protect|Impish|252,,152,,104,|||||,,,,,Fire]Decidueye||ColburBerry|Overgrow|Defog,ShadowBall,LeafStorm,Hurricane|Modest|252,,,176,80,||,0,,,,|||,,,,,Stellar]Skarmory||RockyHelmet|Sturdy|Roost,Tailwind,Taunt,BodyPress|Bold|252,,252,,4,||,0,,,,|||,,,,,Stellar"], + ["Baxcalibur||LoadedDice|ThermalExchange|IcicleSpear,ScaleShot,Earthquake,SwordsDance|Adamant|,252,4,,,252|||||,,,,,Normal]Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Encore,IceBeam,Moonblast|Timid|212,,,96,,200||,0,,,,|||,,,,,Normal]Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,Taunt,DrainPunch,RageFist|Careful|212,,,,252,44|||||,,,,,Water]Excadrill||SitrusBerry|MoldBreaker|Earthquake,RockSlide,StealthRock,RapidSpin|Jolly|24,252,,,,232|||||,,,,,Normal]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Timid|64,,,252,88,104|||||,,,,,Normal]Alomomola||RockyHelmet|Regenerator|Scald,FlipTurn,Wish,Protect|Relaxed|252,,252,4,,|||||,,,,,Ghost","Tera Captain|Quaquaval|HeavyDutyBoots|Moxie|AquaStep,SwordsDance,IceSpinner,Roost|Jolly|164,244,,,,100|||||,,,,,Electric]Garchomp||RockyHelmet|RoughSkin|SwordsDance,StealthRock,Outrage,Earthquake|Jolly|172,140,,,,196|||||,,,,,Ice]Overqwil||SitrusBerry|Intimidate|Crunch,BarbBarrage,AquaJet,Spikes|Careful|252,,,,232,24|||||,,,,,Water]Uxie||LightClay|Levitate|LightScreen,Reflect,Uturn,ThunderWave|Serious|252,,84,,152,20|||||,,,,,Dragon]Talonflame||HeavyDutyBoots|FlameBody|Roost,BraveBird,Uturn,FlareBlitz|Jolly|248,28,,,,232|||||,,,,,Poison]Gholdengo||ChoiceScarf|GoodasGold|ShadowBall,MakeItRain,Trick,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Grass"], + ["Tera Captain|Latias|LifeOrb|Levitate|DracoMeteor,Earthquake,Recover,DragonDance|Naive|16,104,,252,,136|||||,,,,,Water]Annihilape||ProtectivePads|Defiant|RageFist,CloseCombat,StoneEdge,Uturn|Jolly|28,252,,,,228|||||,,,,,Fighting]Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|Hurricane,Uturn,FeatherDance,ThunderWave|Timid|252,,,96,,160|||||,,,,,Dragon]Sylveon||Leftovers|CuteCharm|Moonblast,Charm,Wish,Protect|Bold|252,,252,4,,||,0,,,,|S||,,,,,Fairy]Overqwil||ShucaBerry|Intimidate|BarbBarrage,Liquidation,Spikes,Haze|Careful|252,8,,,240,8|||S||,,,,,Dark]Terapagos||Leftovers|TeraShift|TeraStarstorm,EarthPower,RapidSpin,Toxic|Bold|252,,92,128,28,8|||||,,,,,Stellar","Palafin-Hero||Leftovers|ZerotoHero|BulkUp,JetPunch,DrainPunch,Taunt|Adamant|248,84,,,,176|||||,,,,,Water]Donphan||AguavBerry|Sturdy|StealthRock,RapidSpin,Earthquake,IceShard|Adamant|248,92,168,,,|||||,,,,,Ground]Zapdos||HeavyDutyBoots|Static|Hurricane,Roost,HeatWave,Uturn|Timid|248,,84,,,176|||||,,,,,Electric]Tinkaton||AssaultVest|OwnTempo|PlayRough,KnockOff,GigatonHammer,Endeavor|Careful|248,,92,,100,68|||||,,,,,Fairy]Lokix||HeavyDutyBoots|TintedLens|KnockOff,Uturn,FirstImpression,SuckerPunch|Adamant|16,252,,,,240|||||,,,,,Bug]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,Substitute,Synthesis,TeraBlast|Timid|24,,,252,,232||,0,,,,|||,,,,,Stellar"], + ["Tera Captain|Archaludon|Leftovers|Stamina|BodyPress,HeavySlam,Earthquake,DracoMeteor|Hardy|248,104,56,,96,4|||||,,,,,Fighting]Blastoise||AssaultVest|Torrent|FlipTurn,RapidSpin,BodyPress,HydroPump|Calm|248,,108,,152,||,,,,,30|||,,,,,Water]Tera Captain|Rhyperior|Leftovers|SolidRock|IcePunch,Earthquake,StoneEdge,StealthRock|Impish|248,32,132,,96,|||||,,,,,Fairy]Urshifu||ChoiceScarf|UnseenFist|WickedBlow,CloseCombat,Uturn,IronHead|Adamant|216,188,,,,104|||||,,,,,Fighting]Slowking-Galar||BlackSludge|Regenerator|SludgeBomb,ThunderWave,IceBeam,Psyshock|Calm|248,,24,72,164,||,0,,,,30|||,,,,,Poison]Zapdos||HeavyDutyBoots|Static|Hurricane,Uturn,Discharge,Roost|Timid|64,,,228,,216|||||,,,,,Electric","Darkrai||ChopleBerry|BadDreams|DarkPulse,Taunt,SludgeBomb,NastyPlot|Timid|232,,,92,,184||,0,,,,|||,,,,,Dark]Slowking-Galar||BlackSludge|Regenerator|ChillyReception,SludgeWave,FutureSight,ThunderWave|Sassy|252,,,4,252,||,0,,,,0|||,,,,,Poison]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,Uturn,Protect,Toxic|Impish|248,,244,,,16|||||,,,,,Fairy]Tera Captain|Terrakion|LifeOrb|Justified|StoneEdge,CloseCombat,Earthquake,StealthRock|Jolly|64,252,,,,192|||||,,,,,Fairy]Blastoise||RockyHelmet|Torrent|FocusBlast,RapidSpin,FlipTurn,IceBeam|Relaxed|252,,252,4,,||,,,,,0|||,,,,,Water]Sandslash-Alola||ProtectivePads|SlushRush|KnockOff,SwordsDance,TripleAxel,Earthquake|Adamant|188,252,,,,68|||||,,,,,Ice"], + ["Darkrai||WideLens|BadDreams|DarkPulse,IceBeam,FocusBlast,Hypnosis|Timid|80,,,252,,176||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,WoodHammer,PlayRough,Uturn|Jolly|32,252,,,,224|||||,,,,,Water]Slowking-Galar||KasibBerry|Regenerator|SludgeWave,FireBlast,ThunderWave,ChillyReception|Calm|248,,,236,24,||,0,,,,|||,,,,,Poison]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Facade,SwordsDance,Protect|Jolly|,88,,,252,168|||||,,,,,Ground]Skarmory||RockyHelmet|Sturdy|StealthRock,Spikes,BraveBird,Roost|Impish|248,,252,,,8|||||,,,,,Steel]Tera Captain|Cetitan|HeavyDutyBoots|SlushRush|IceShard,IcicleCrash,Earthquake,PlayRough|Adamant|,252,,,16,240|||||,,,,,Fairy","Tera Captain|Regidrago|ChoiceScarf|DragonsMaw|DragonEnergy,DragonPulse,DracoMeteor,EarthPower|Modest|,,,252,16,240||,0,,,,|||,,,,,Dragon]Urshifu||PunchingGlove|UnseenFist|WickedBlow,IcePunch,SuckerPunch,SwordsDance|Adamant|96,252,,,,160|||||,,,,,Fighting]Tera Captain|Gholdengo|Leftovers|GoodasGold|Recover,NastyPlot,MakeItRain,ShadowBall|Calm|248,,,,164,96||,0,,,,|||,,,,,Ground]Gastrodon||Leftovers|StormDrain|Recover,StealthRock,Earthquake,IceBeam|Sassy|248,,8,,252,|||||,,,,,Water]Tsareena||ProtectivePads|QueenlyMajesty|Synthesis,RapidSpin,TripleAxel,Uturn|Impish|248,,252,,,8|||S||,,,,,Grass]Azelf||ChoiceScarf|Levitate|Encore,ZenHeadbutt,Uturn,KnockOff|Jolly|,252,,,8,248|||||,,,,,Psychic"], + ["Gliscor||ToxicOrb|PoisonHeal|Toxic,Spikes,Earthquake,Protect|Impish|252,,252,,4,|||||,,,,,Stellar]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,FlipTurn,Encore|Timid|136,,,252,,120|||||,,,,,Stellar]Iron Boulder||ChoiceBand|QuarkDrive|Earthquake,MightyCleave,CloseCombat,QuickAttack|Jolly|24,252,16,,,216|||||,,,,,Stellar]Tera Captain|Hydreigon|LoadedDice|Levitate|DragonDance,ScaleShot,TeraBlast,Crunch|Adamant|44,252,,,,212|||||,,,,,Electric]Tera Captain|Cetitan|HeavyDutyBoots|SheerForce|IceShard,Yawn,IcicleCrash,KnockOff|Adamant|,184,,,84,240|||||,,,,,Water]Magnezone||ChoiceScarf|Sturdy|Thunderbolt,FlashCannon,VoltSwitch,BodyPress|Modest|,,4,252,,252||,0,,,,|||,,,,,Stellar","Palafin||HeavyDutyBoots|ZerotoHero|DrainPunch,JetPunch,BulkUp,Taunt|Impish|252,4,252,,,|||||,,,,,Water]Iron Treads||FocusSash|QuarkDrive|RapidSpin,StealthRock,VoltSwitch,SteelBeam|Timid|64,,,252,,192|||||,,,,,Ground]Tera Captain|RagingBolt|LifeOrb|Protosynthesis|Thunderclap,Thunderbolt,AncientPower,TeraBlast|Timid|16,,,252,,240||,20,,,,|||,,,,,Ground]Tera Captain|EnamorusTherian|HeavyDutyBoots|Overcoat|DrainingKiss,CalmMind,EarthPower,GrassKnot|Modest|,,252,204,52,||,0,,,,|||,,,,,Steel]Roaring Moon||ChoiceScarf|Protosynthesis|Uturn,KnockOff,Outrage,IronHead|Jolly|40,252,,,,216|||||,,,,,Dragon]Mesprit||WeaknessPolicy|Levitate|CalmMind,ShadowBall,MysticalPower,SkillSwap|Relaxed|252,,236,,20,||,0,,,,|||,,,,,Psychic"], + ["Rotom-Wash||ChoiceScarf|Levitate|HydroPump,VoltSwitch,Trick,Protect|Calm|252,,,4,252,||,0,,,,|||,,,,,Electric]Fezandipiti||Leftovers|ToxicChain|PlayRough,Uturn,Roost,Taunt|Jolly|252,16,,,,240|||||,,,,,Poison]Garchomp||Leftovers|RoughSkin|Earthquake,StoneEdge,StealthRock,Spikes|Jolly|40,252,,,,216|||||,,,,,Dragon]Hydrapple||HeavyDutyBoots|Regenerator|GigaDrain,FickleBeam,Yawn,BodyPress|Bold|248,,252,,8,||,0,,,,|||,,,,,Grass]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,SludgeWave,Agility,TeraBlast|Modest|4,,,252,,252||,0,,,,|||,,,,,Water]Minior-Violet||WhiteHerb|ShieldsDown|StoneEdge,Acrobatics,ShellSmash,TeraBlast|Adamant|,252,,,4,252|||||,,,,,Rock","Politoed||Leftovers|Drizzle|HydroPump,IceBeam,Psychic,Encore|Modest|248,,,252,8,||,0,,,,|S||,,,,,Water]Blissey||Leftovers|NaturalCure|StealthRock,SeismicToss,ThunderWave,SoftBoiled|Bold|252,,252,,4,||,0,,,,|||,,,,,Normal]Urshifu-Rapid-Strike||ChoiceScarf|UnseenFist|SurgingStrikes,PoisonJab,CloseCombat,ThunderPunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Kingdra|LifeOrb|SwiftSwim|DracoMeteor,DragonDance,Outrage,Waterfall|Lonely|,176,,116,,216|||||,,,,,Steel]Tera Captain|Rhyperior|Leftovers|SolidRock|Earthquake,StoneEdge,Substitute,RockPolish|Adamant|252,252,,,4,|||||,,,,,Electric]Skarmory||RockyHelmet|Sturdy|Spikes,Roost,BodyPress,Whirlwind|Bold|252,,232,,,24||,0,,,,|S||,,,,,Steel"], + ["Iron Hands||ShucaBerry|QuarkDrive|SwordsDance,IcePunch,DrainPunch,HeavySlam|Adamant|248,252,,,8,|||||,,,,,Fighting]Mandibuzz||HeavyDutyBoots|Overcoat|FoulPlay,Roost,Uturn,Defog|Impish|248,,252,,8,|||||,,,,,Dark]Tera Captain|Okidogi|ChoiceScarf|GuardDog|CloseCombat,GunkShot,IcePunch,BrickBreak|Adamant|,252,,,4,252|||||,,,,,Fighting]Scizor||ChoiceBand|Technician|Uturn,BulletPunch,SleepTalk,BrickBreak|Adamant|228,252,,,,28|||||,,,,,Bug]Tera Captain|Hydreigon|ChoiceScarf|Levitate|FlashCannon,DracoMeteor,Uturn,Flamethrower|Timid|,,,252,4,252|||||,,,,,Steel]Munkidori||AssaultVest|ToxicChain|Uturn,SludgeBomb,FutureSight,FocusBlast|Timid|,,,252,4,252|||||,,,,,Poison","Garchomp||RockyHelmet|RoughSkin|SwordsDance,FireFang,Earthquake,DragonClaw|Jolly|,252,,,32,224|||||,,,,,Dragon]Cinderace||HeavyDutyBoots|Blaze|SuperFang,PyroBall,WillOWisp,Uturn|Jolly|,252,104,,,152|||||,,,,,Fire]Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Moonblast,Encore,Blizzard|Timid|,,24,252,,232||,0,,,,|||,,,,,Ice]Tera Captain|Cetitan|SitrusBerry|SlushRush|BellyDrum,IceShard,IcicleCrash,Earthquake|Jolly|96,252,,,,160|||||,,,,,Ghost]Sceptile||RockyHelmet|Overgrow|ShedTail,Endeavor,LeechSeed,LeafStorm|Timid|248,,116,,,144||,0,,,,|||,,,,,Grass]Scizor||HeavyDutyBoots|Technician|SwordsDance,BulletPunch,Uturn,DualWingbeat|Adamant|248,252,,,,8|||||,,,,,Bug"], + ["Tera Captain|Regidrago|LoadedDice|DragonsMaw|DragonDance,Outrage,TeraBlast,ScaleShot|Lonely|,252,,4,,252|||||,,,,,Steel]Arboliva||Leftovers|SeedSower|StrengthSap,GigaDrain,HyperVoice,Encore|Calm|248,,,8,252,||,0,,,,|||,,,,,Grass]Clodsire||BlackSludge|Unaware|GunkShot,Toxic,StealthRock,Recover|Impish|248,,252,,8,|||||,,,,,Poison]Necrozma||WeaknessPolicy|PrismArmor|TrickRoom,SwordsDance,PhotonGeyser,XScissor|Brave|248,252,,,8,|||||,,,,,Psychic]Heatran||ChoiceScarf|FlameBody|FireBlast,MagmaStorm,EarthPower,StealthRock|Timid|80,,,252,,176||,0,,,,|||,,,,,Fire]Tera Captain|IronHands|ShucaBerry|QuarkDrive|Earthquake,ThunderPunch,SwordsDance,DrainPunch|Adamant|,252,4,,252,|||||,,,,,Poison","Darkrai||LifeOrb|BadDreams|DarkPulse,Psychic,FocusBlast,SuckerPunch|Rash|112,,4,252,,140|||||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Taunt,Synthesis|Jolly|112,252,4,,,140|||||,,,,,Water]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Psyshock,Encore|Timid|88,,,252,,168||,0,,,,|||,,,,,Fairy]Uxie||RockyHelmet|Levitate|KnockOff,Uturn,Encore,PainSplit|Impish|248,,252,,8,|||||,,,,,Psychic]Tera Captain|Sandaconda|HeavyDutyBoots|ShedSkin|Earthquake,Rest,Glare,StealthRock|Impish|252,,252,,4,|||||,,,,,Water]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,EarthPower,CalmMind,RapidSpin|Modest|52,,,252,,204|||||,,,,,Stellar"], + ["Kyurem||ChoiceScarf|Pressure|DracoMeteor,IceBeam,FreezeDry,EarthPower|Timid|32,,,252,,224||,0,,,,|||,,,,,Dragon]Great Tusk||Leftovers|Protosynthesis|RapidSpin,IceSpinner,StealthRock,HeadlongRush|Adamant|252,24,116,,,116|||||,,,,,Ground]Meowscarada||ProtectivePads|Protean|KnockOff,TripleAxel,FlowerTrick,ThunderPunch|Jolly|80,252,,,,176|||||,,,,,Grass]Tera Captain|Gholdengo|AirBalloon|GoodasGold|Recover,PowerGem,NastyPlot,MakeItRain|Modest|248,,228,32,,||,0,,,,|||,,,,,Fairy]Alomomola||HeavyDutyBoots|Regenerator|Wish,Protect,PlayRough,FlipTurn|Careful|252,,4,,252,|||||,,,,,Water]Tera Captain|Fezandipiti|Leftovers|ToxicChain|Roost,Toxic,Uturn,Moonblast|Calm|248,,204,,56,|||||,,,,,Dragon","Landorus-Therian||Leftovers|Intimidate|Protect,Earthquake,StealthRock,Uturn|Jolly|,252,,,4,252|||||,,,,,Ground]Moltres||HeavyDutyBoots|FlameBody|Flamethrower,Uturn,Roost,AirSlash|Calm|252,,252,,,4|||||,,,,,Fire]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,Substitute,Glare,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar]Glimmora||FocusSash|ToxicDebris|Spikes,PowerGem,EarthPower,MortalSpin|Naive|,4,,252,,252|||||,,,,,Rock]Walking Wake||BoosterEnergy|Protosynthesis|HydroPump,DracoMeteor,DragonPulse,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Baxcalibur||LoadedDice|ThermalExchange|DragonDance,GlaiveRush,IcicleSpear,Earthquake|Adamant|,252,,,4,252|||||,,,,,Dragon"], + ["Slowking-Galar||CovertCloak|Regenerator|ThunderWave,ChillyReception,SludgeBomb,Surf|Calm|252,,4,,252,||,0,,,,|S||,,,,,Poison]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|DragonPulse,TeraBlast,Thunderclap,DracoMeteor|Modest|248,,32,40,48,140||,20,,,,|||,,,,,Water]Tera Captain|Alomomola|RockyHelmet|Regenerator|FlipTurn,Wish,Protect,PlayRough|Impish|192,,248,,68,|||S||,,,,,Fairy]Iron Treads||Leftovers|QuarkDrive|Earthquake,HeavySlam,RapidSpin,StealthRock|Jolly|40,20,,,196,252|||S||,,,,,Ground]Moltres||HeavyDutyBoots|FlameBody|Flamethrower,Uturn,Hurricane,Roost|Calm|252,,4,,252,|||||,,,,,Fire]Meowscarada||ChoiceScarf|Protean|Uturn,TripleAxel,LowKick,FoulPlay|Jolly|104,252,,,,152|||S||,,,,,Grass","Latios||Leftovers|Levitate|LusterPurge,Substitute,CalmMind,AuraSphere|Timid|32,,,252,,224||,0,,,,|||,,,,,Dragon]Tera Captain|TyphlosionHisui|ChoiceSpecs|Frisk|ShadowBall,InfernalParade,Eruption,Flamethrower|Modest|160,,,252,,96||,0,,,,|||,,,,,Ghost]Iron Treads||AssaultVest|QuarkDrive|Earthquake,IronHead,RapidSpin,VoltSwitch|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|Quaquaval|LumBerry|Torrent|AquaStep,SwordsDance,CloseCombat,Substitute|Adamant|104,252,,,,152|||||,,,,,Fighting]Naclstack||Eviolite|PurifyingSalt|SaltCure,Recover,Earthquake,Curse|Careful|252,4,,,252,|||||,,,,,Rock]Enamorus||LifeOrb|CuteCharm|Moonblast,RainDance,WeatherBall,CalmMind|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Garchomp||RockyHelmet|RoughSkin|StealthRock,Earthquake,Facade,DragonClaw|Adamant|248,88,52,,,120|||S||,,,,,Dragon]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,PowerWhip,Trailblaze|Jolly|32,252,,,,224|||||,,,,,Water]Scizor||DampRock|Technician|RainDance,BulletPunch,CloseCombat,Uturn|Adamant|248,152,108,,,|||||,,,,,Bug]Zapdos||LifeOrb|Static|Thunderbolt,Hurricane,WeatherBall,Roost|Modest|16,,,252,,240||,0,,,,|||,,,,,Electric]Overqwil||RockyHelmet|Intimidate|PoisonJab,Liquidation,Crunch,PainSplit|Adamant|248,120,72,,68,|||||,,,,,Dark]Tera Captain|Hariyama|SitrusBerry|Guts|BellyDrum,BulletPunch,DrainPunch,KnockOff|Adamant|120,,252,,136,|||||,,,,,Fairy","Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,Thunderbolt,AuraSphere,CloseCombat|Naive|,4,,252,,252|||||,,,,,Fairy]Samurott-Hisui||LifeOrb|Sharpness|SuckerPunch,CeaselessEdge,FlipTurn,Megahorn|Jolly|,252,4,,,252|||||,,,,,Water]Tera Captain|Latias|ChoiceSpecs|Levitate|HealingWish,DracoMeteor,Trick,Psychic|Timid|,,4,252,,252||,0,,,,|||,,,,,Poison]Iron Treads||HeavyDutyBoots|QuarkDrive|StealthRock,RapidSpin,Earthquake,KnockOff|Jolly|,68,212,,,228|||||,,,,,Ground]Rotom-Heat||Leftovers|Levitate|Overheat,VoltSwitch,PainSplit,Reflect|Modest|156,,252,100,,||,0,,,,|||,,,,,Electric]Tera Captain|Gyarados|LumBerry|Moxie|DragonDance,Waterfall,Outrage,TemperFlare|Adamant|68,188,,,,252|||||,,,,,Dragon"], + ["Palafin||MysticWater|ZerotoHero|JetPunch,WaveCrash,Encore,FlipTurn|Adamant|,252,,,80,176|||||,,,,,Stellar]Tera Captain|Kilowattrel|ChoiceSpecs|VoltAbsorb|Thunderbolt,AirSlash,Uturn,TeraBlast|Timid|24,,,252,,232|||||,,,,,Water]Weezing-Galar||CustapBerry|NeutralizingGas|Defog,Taunt,StrangeSteam,DestinyBond|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,CalmMind,Recover,StoredPower|Bold|52,,252,,,204||,0,,,,|||,,,,,Electric]Heatran||HeavyDutyBoots|FlameBody|ScorchingSands,FlashCannon,WillOWisp,Lunge|Calm|,,172,80,172,84|||||,,,,,Flying]Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,PlayRough,Uturn|Adamant|212,252,,,,44|||||,,,,,Fire","Electrode-Hisui||EjectPack|Soundproof|LeafStorm,VoltSwitch,Substitute,LeechSeed|Modest|200,,64,52,,192||,0,,,,|||,,,,,Electric]Samurott-Hisui||MysticWater|Sharpness|CeaselessEdge,RazorShell,SuckerPunch,SwordsDance|Jolly|152,252,,,,104|||||,,,,,Water]Tera Captain|Annihilape|ChoiceScarf|Defiant|RageFist,CloseCombat,TeraBlast,Uturn|Hasty|24,252,,,,232|||||,,,,,Steel]Tera Captain|Delphox|ColburBerry|Magician|NastyPlot,Flamethrower,TeraBlast,Agility|Timid|136,,,252,,120||,0,,,,|||,,,,,Ghost]Glimmora||ChoiceScarf|ToxicDebris|PowerGem,SludgeWave,EarthPower,MortalSpin|Timid|72,,,252,,184|||||,,,,,Rock]Tornadus-Therian||WacanBerry|Regenerator|BleakwindStorm,FocusBlast,Taunt,Uturn|Timid|252,,,88,,168|||||,,,,,Flying"], + ["Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,HeadlongRush,CloseCombat,IceSpinner|Jolly|252,4,,,,252|||||,,,,,Steel]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|CalmMind,DragonPulse,Thunderbolt,Thunderclap|Modest|120,,,252,,136||,20,,,,|||,,,,,Fairy]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,AquaCutter,AquaJet,Megahorn|Jolly|8,252,,,,248|||||,,,,,Ghost]Cinderace||AirBalloon|Libero|PyroBall,GunkShot,LowKick,Uturn|Jolly|64,252,,,,192|||||,,,,,Grass]Tinkaton||RockyHelmet|MoldBreaker|StealthRock,GigatonHammer,PlayRough,KnockOff|Jolly|248,4,80,,,176|||||,,,,,Fire]Mesprit||Leftovers|Levitate|ThunderWave,Uturn,Psyshock,DazzlingGleam|Calm|248,,,12,236,12|||||,,,,,Fairy","Urshifu||ChopleBerry|UnseenFist|CloseCombat,Trailblaze,WickedBlow,SwordsDance|Jolly|24,252,,,,232|||||,,,,,Fighting]Tera Captain|Heatran|ChoiceScarf|FlashFire|MagmaStorm,TeraBlast,EarthPower,Flamethrower|Timid|16,,,252,,240||,0,,,,|||,,,,,Grass]Tsareena||RockyHelmet|QueenlyMajesty|RapidSpin,PowerWhip,Synthesis,Uturn|Impish|252,52,116,,,88|||||,,,,,Grass]Tera Captain|Sylveon|Leftovers|Pixilate|HyperVoice,TeraBlast,CalmMind,Protect|Bold|252,,128,56,72,||,0,,,,|||,,,,,Ground]Swampert||Leftovers|Torrent|Earthquake,StealthRock,FlipTurn,Liquidation|Impish|252,88,168,,,|||||,,,,,Water]Thundurus||SitrusBerry|Defiant|SupercellSlam,Acrobatics,BulkUp,Uturn|Adamant|24,252,,,,232|||||,,,,,Electric"], + ["Iron Bundle||HeavyDutyBoots|QuarkDrive|IceBeam,FreezeDry,HydroPump,FlipTurn|Timid|,,,252,96,160|||||,,,,,Ice]Iron Boulder||HeavyDutyBoots|QuarkDrive|MightyCleave,CloseCombat,Earthquake,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Rock]Corviknight||OccaBerry|MirrorArmor|BraveBird,Roost,Taunt,Uturn|Careful|252,,24,,232,|||||,,,,,Flying]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,Thunderclap,RisingVoltage,DragonPulse|Modest|,,,252,240,16||,20,,,,|||,,,,,Flying]Krookodile||SalacBerry|Moxie|Earthquake,KnockOff,CloseCombat,StealthRock|Jolly|132,,,,252,124|||||,,,,,Ground]Pincurchin||TerrainExtender|ElectricSurge|Discharge,Spikes,Recover,Memento|Calm|252,,,,200,56||,0,,,,|||,,,,,Electric","Ting-Lu||SitrusBerry|VesselofRuin|Earthquake,Ruination,Whirlwind,Spikes|Sassy|252,4,,,252,|||||,,,,,Dark]Ribombee||FocusSash|ShieldDust|StickyWeb,Moonblast,Uturn,StunSpore|Timid|248,,,8,,252|||||,,,,,Bug]Walking Wake||ChoiceSpecs|Protosynthesis|FlipTurn,DracoMeteor,HydroPump,Flamethrower|Modest|24,,,252,,232|||||,,,,,Water]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|Psychic,FieryDance,EnergyBall,TeraBlast|Timid|,,124,132,,252||,0,,,,|||,,,,,Ground]Gholdengo||AbilityShield|GoodasGold|FocusBlast,Recover,MakeItRain,ShadowBall|Calm|248,,,8,252,||,0,,,,|||,,,,,Steel]Flamigo||ChoiceScarf|Scrappy|Uturn,CloseCombat,BraveBird,Liquidation|Adamant|,252,,,28,228|||||,,,,,Flying"], + ["Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,FlareBlitz,Earthquake,MorningSun|Adamant|,252,4,,,252|||||,,,,,Fire]Tera Captain|Gholdengo|AirBalloon|GoodasGold|NastyPlot,ShadowBall,Recover,MakeItRain|Bold|252,,196,,,60|||||,,,,,Fairy]Primarina||Leftovers|LiquidVoice|CalmMind,PsychicNoise,DrainingKiss,IceBeam|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Spikes,Protect,Toxic|Impish|244,,248,,16,|||||,,,,,Ground]Corviknight||Leftovers|Pressure|BraveBird,BodyPress,Uturn,Roost|Impish|248,,252,,8,|||||,,,,,Flying]Magnezone||ChoiceSpecs|MagnetPull|Thunderbolt,FlashCannon,BodyPress,VoltSwitch|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel","Archaludon||AssaultVest|Stamina|ElectroShot,FlashCannon,BodyPress,DarkPulse|Modest|4,,,252,252,||,0,,,,|||,,,,,Steel]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,KnockOff,SpiritBreak|Jolly|16,252,,,,240|||||,,,,,Fairy]Pelipper||DampRock|Drizzle|Surf,Roost,Uturn,KnockOff|Relaxed|248,8,252,,,||,,,,,0|||,,,,,Water]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,ToxicSpikes,StealthRock,Protect|Adamant|252,80,,,176,|||||,,,,,Ground]Tera Captain|Basculegion|ChoiceBand|SwiftSwim|WaveCrash,AquaJet,FlipTurn,TeraBlast|Adamant|60,252,,,,196|||||,,,,,Water]Manaphy||Leftovers|Hydration|TailGlow,FlipTurn,Surf,EnergyBall|Timid|252,,,72,,184|||||,,,,,Water"], + ["Cyclizar||ChestoBerry|Regenerator|ShedTail,RapidSpin,Taunt,KnockOff|Jolly|252,4,,,,252|||||,,,,,Dragon]Tera Captain|ArcanineHisui|ChoiceBand|RockHead|ExtremeSpeed,HeadSmash,FlareBlitz,Crunch|Adamant|132,252,60,,64,|||S||,,,,,Normal]Tera Captain|Azumarill|ChestoBerry|HugePower|PlayRough,BellyDrum,Superpower,AquaJet|Adamant|172,252,,,,84|||||,,,,,Fighting]Goodra-Hisui||Leftovers|Gooey|HeavySlam,Earthquake,GyroBall,KnockOff|Sassy|4,,252,,252,||,,,,,0|S||,,,,,Steel]Pecharunt||BlackSludge|PoisonPuppeteer|Hex,MalignantChain,PartingShot,FoulPlay|Quiet|252,,,180,76,||,0,,,,|||,,,,,Poison]Landorus-Therian||LifeOrb|Intimidate|SwordsDance,Earthquake,Fly,Outrage|Adamant|4,252,,,,252|||||,,,,,Ground","Zoroark-Hisui||FocusSash|Illusion|WillOWisp,BitterMalice,FocusBlast,Flamethrower|Modest|4,,,252,,252||,0,,,,|S||,,,,,Normal]Tera Captain|Haxorus|Leftovers|MoldBreaker|DragonDance,IronHead,CloseCombat,Earthquake|Adamant|4,252,,,,252|||S||,,,,,Steel]Hatterene||AssaultVest|MagicBounce|DrainingKiss,MysticalFire,Psychic,Nuzzle|Bold|4,,252,252,,|||S||,,,,,Psychic]Iron Hands||AssaultVest|QuarkDrive|FakeOut,DrainPunch,IcePunch,SupercellSlam|Adamant|84,132,40,,252,|||S||,,,,,Fighting]Pecharunt||Leftovers|PoisonPuppeteer|MalignantChain,Recover,ShadowBall,PartingShot|Calm|52,,,204,252,||,0,,,,|||,,,,,Ghost]Minior||WhiteHerb|ShieldsDown|ShellSmash,Acrobatics,RockSlide,ChargeBeam|Jolly|4,252,,,,252|||S||,,,,,Electric"], + ["Meowscarada||HeavyDutyBoots|Protean|Uturn,ToxicSpikes,BrickBreak,KnockOff|Jolly|8,252,,,,248|||||,,,,,Grass]Gholdengo||ChoiceSpecs|GoodasGold|MakeItRain,Hex,SteelBeam,DazzlingGleam|Modest|144,,,252,,112||,0,,,,|||,,,,,Steel]Tera Captain|Mamoswine|AssaultVest|ThickFat|IcicleCrash,Earthquake,IceShard,Trailblaze|Adamant|,252,,,32,224|||||,,,,,Steel]Tera Captain|Hydreigon|AssaultVest|Levitate|Uturn,DarkPulse,Surf,DracoMeteor|Timid|252,,,8,100,148|||||,,,,,Water]Galvantula||Leftovers|Unnerve|StickyWeb,VoltSwitch,Protect,GastroAcid|Calm|248,,,,252,8||,0,,,,|||,,,,,Bug]Weezing-Galar||ShucaBerry|NeutralizingGas|StrangeSteam,ClearSmog,PainSplit,Defog|Bold|252,,164,,92,||,0,,,,|||,,,,,Poison","Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,PartingShot,PlayRough|Impish|244,,204,,60,|||S||,,,,,Dark]Dragonite||RockyHelmet|Multiscale|DragonDance,Earthquake,ExtremeSpeed,IceSpinner|Jolly|4,252,,,,252|||||,,,,,Normal]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,Flamethrower,RapidSpin,CalmMind|Calm|252,,144,,,112|||||,,,,,Stellar]Gliscor||ToxicOrb|PoisonHeal|StealthRock,Toxic,KnockOff,Protect||252,,112,,,144|||S||,,,,,Steel]Gholdengo||ChoiceScarf|GoodasGold|FocusBlast,MakeItRain,ShadowBall,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Ghost]Tera Captain|GreninjaBond|ChoiceSpecs|BattleBond|DarkPulse,IceBeam,SludgeWave,Surf|Timid|,,,252,4,252|||S||,,,,,Steel"], + ["Rotom-Heat||LightClay|Levitate|Reflect,LightScreen,VoltSwitch,Overheat|Calm|252,,24,44,176,12||,0,,,,|||,,,,,Electric]Tera Captain|Lucario|ChoiceBand|Justified|CloseCombat,ExtremeSpeed,MeteorMash,Crunch|Adamant|40,252,,,,216|||||,,,,,Normal]Meowscarada||FocusSash|Overgrow|TripleAxel,FlowerTrick,KnockOff,Spikes|Jolly|104,252,,,,152|||||,,,,,Grass]Primarina||RockyHelmet|Torrent|Moonblast,Surf,FlipTurn,Haze|Bold|252,,252,,4,|||||,,,,,Water]Tornadus||HeavyDutyBoots|Prankster|Psychic,GrassKnot,BleakwindStorm,NastyPlot|Timid|,,8,252,,248||,0,,,,|||,,,,,Flying]Tera Captain|Latias|KeeBerry|Levitate|CalmMind,Recover,StoredPower,Thunderbolt|Timid|184,,148,,,176||,0,,,,|||,,,,,Poison","Palafin||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,WaveCrash,ZenHeadbutt|Adamant|,252,4,,,252|||S||,,,,,Water]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,SludgeWave,DazzlingGleam,EnergyBall|Timid|,,252,4,,252|||S||,,,,,Fairy]Electivire||ExpertBelt|MotorDrive|Thunderbolt,Flamethrower,FocusBlast,Earthquake|Hasty|,4,,252,,252|||S||,,,,,Electric]Donphan||Leftovers|Sturdy|Earthquake,KnockOff,RapidSpin,StealthRock|Adamant|252,24,,,148,48|||S||,,,,,Ghost]Enamorus||ChoiceScarf|Contrary|Moonblast,EarthPower,SludgeBomb,HealingWish|Timid|,,,252,4,252||,0,,,,|S||,,,,,Stellar]Tera Captain|Sinistcha|Leftovers|Heatproof|CalmMind,MatchaGotcha,ShadowBall,StrengthSap|Bold|252,,160,,,96||,0,,,,|S||,,,,,Ghost"], + ["Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Toxic,DualWingbeat,HighHorsepower,Protect|Impish|244,16,56,,192,|||||,,,,,Flying]Tera Captain|Talonflame|ChoiceSpecs|GaleWings|AirSlash,Tailwind,Hurricane,Flamethrower|Modest|,,,252,4,252||,0,,,,|||,,,,,Flying]Slowking-Galar||ColburBerry|Regenerator|SludgeBomb,FutureSight,IceBeam,ChillyReception|Calm|252,,92,4,160,||,0,,,,|||,,,,,Poison]Weavile||ChoiceBand|Pressure|TripleAxel,KnockOff,IceShard,LowKick|Adamant|,252,,,4,252|||||,,,,,Dark]Iron Valiant||CustapBerry|QuarkDrive|CalmMind,ShadowBall,Moonblast,Endure|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Meowstic||LightClay|Prankster|PsychicTerrain,Reflect,LightScreen,Yawn|Calm|248,,8,,252,||,0,,,,|||,,,,,Psychic","Hawlucha||ChoiceScarf|Limber|DualWingbeat,DrainPunch,StoneEdge,Uturn|Adamant|252,252,,,,4|||||,,,,,Fighting]Komala||HeavyDutyBoots|Comatose|RapidSpin,IceSpinner,RockSlide,Wish|Impish|252,,252,,4,|||||,,,,,Normal]Tera Captain|Ceruledge|LumBerry|WeakArmor|SwordsDance,Poltergeist,BitterBlade,TeraBlast|Jolly|80,252,,,,176|||||,,,,,Water]Tera Captain|Crocalor|Eviolite|Unaware|WillOWisp,Flamethrower,Roar,SlackOff|Bold|228,,252,,28,||,0,,,,|||,,,,,Poison]Excadrill||OccaBerry|MoldBreaker|StealthRock,IronHead,Earthquake,RockSlide|Jolly|252,,,,32,224|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,SpiritBreak,ShadowClaw,IcePunch|Jolly|,252,,,4,252|||||,,,,,Fairy"], + ["Tornadus-Therian||ChilanBerry|Regenerator|KnockOff,FocusBlast,Taunt,Uturn|Timid|232,,,132,64,80|||||,,,,,Flying]Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Overheat,LavaPlume,Psychic|Timid|8,,,252,,248||,0,,,,|||,,,,,Dark]Metagross||Leftovers|ClearBody|StealthRock,Earthquake,KnockOff,BulletPunch|Adamant|88,168,,,252,|||||,,,,,Steel]Tera Captain|Quaquaval|RockyHelmet|Moxie|Roost,AquaStep,AquaJet,FlipTurn|Jolly|88,,244,,,176|||||,,,,,Grass]Tera Captain|Gardevoir|Leftovers|Trace|CalmMind,DrainingKiss,Thunderbolt,Psyshock|Modest|184,,144,164,,16||,0,,,,|||,,,,,Electric]Sandy Shocks||BoosterEnergy|Protosynthesis|Thunderbolt,EarthPower,Spikes,VoltSwitch|Modest|132,,,200,28,148||,0,,,,|||,,,,,Electric","Alomomola||AssaultVest|Regenerator|FlipTurn,AquaJet,PlayRough,MirrorCoat|Sassy|252,,4,,252,||,,,,,0|||,,,,,Water]Tera Captain|Armarouge|FocusSash|WeakArmor|Endure,PsychicTerrain,Psychic,ArmorCannon|Modest|112,,,252,,144||,0,,,,|||,,,,,Fire]Corviknight||RockyHelmet|MirrorArmor|Uturn,Defog,Roost,BodyPress|Impish|252,,252,,4,||,,,,,0|||,,,,,Flying]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,Thunderclap,Discharge,DracoMeteor|Modest|252,,212,32,,12||,20,,,,|||,,,,,Fairy]Weavile||ChoiceBand|Pressure|TripleAxel,KnockOff,AerialAce,IceShard|Jolly|32,252,,,,224|||||,,,,,Dark]Ursaluna-Bloodmoon||Leftovers|MindsEye|BloodMoon,Moonlight,EarthPower,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Ground"], + ["Tera Captain|LandorusTherian|Leftovers|Intimidate|Earthquake,StealthRock,Uturn,Taunt|Careful|252,8,72,,176,|||||,,,,,Water]Iron Valiant||ChoiceSpecs|QuarkDrive|Thunderbolt,DestinyBond,Moonblast,Trick|Timid|,,40,252,,216||,0,,,,|||,,,,,Fairy]Blaziken||HeavyDutyBoots|SpeedBoost|FlareBlitz,Earthquake,SwordsDance,UpperHand|Adamant|,252,,,4,252|||S||,,,,,Fire]Raichu-Alola||ChoiceSpecs|SurgeSurfer|VoltSwitch,Surf,Thunderbolt,DrainingKiss|Timid|,,,252,72,184||,0,,,,|S||,,,,,Electric]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,AquaCutter,SuckerPunch,FlipTurn|Adamant|,252,,,4,252|||||,,,,,Water]Tera Captain|Tsareena|ChoiceScarf|QueenlyMajesty|RapidSpin,TripleAxel,PowerWhip,Uturn|Adamant|,252,,,4,252|||||,,,,,Electric","Palafin-Hero||ChoiceBand|ZerotoHero|WaveCrash,FlipTurn,IcePunch,JetPunch|Adamant|16,252,,,,240|||||,,,,,Water]Meowscarada||ExpertBelt|Protean|FlowerTrick,Uturn,TripleAxel,ThunderPunch|Jolly|56,252,,,,200|||||,,,,,Grass]Scream Tail||PetayaBerry|Protosynthesis|Wish,Protect,Psychic,DazzlingGleam|Bold|248,,252,8,,||,0,,,,|||,,,,,Fairy]Corviknight||Leftovers|Pressure|Roost,Uturn,BraveBird,Defog|Impish|248,,152,,108,|||||,,,,,Flying]Tera Captain|SandyShocks|HeavyDutyBoots|Protosynthesis|TeraBlast,Thunderbolt,Rest,SleepTalk|Bold|252,,68,188,,||,0,,,,|||,,,,,Bug]Typhlosion-Hisui||HeavyDutyBoots|Frisk|SolarBeam,Flamethrower,ShadowBall,WillOWisp|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire"], + ["Iron Bundle||ChoiceScarf|QuarkDrive|FlipTurn,HydroPump,FreezeDry,Encore|Timid|,,,252,4,252|||||,,,,,Ice]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|SludgeBomb,Thunderbolt,VoltSwitch,FocusBlast|Timid|,,4,252,,252||,0,,,,|S||,,,,,Flying]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,Recover,Trick|Bold|252,,194,,,64||,0,,,,|||,,,,,Steel]Sylveon||ChoiceSpecs|Pixilate|HyperVoice,Psyshock,ShadowBall,AlluringVoice|Modest|252,,,252,4,||,0,,,,|||,,,,,Fairy]Tera Captain|OricorioPomPom|HeavyDutyBoots|Dancer|Substitute,QuiverDance,RevelationDance,AirSlash|Modest|,,,252,4,252||,0,,,,|S||,,,,,Ground]Garchomp||RockyHelmet|RoughSkin|Spikes,StealthRock,Earthquake,DragonTail|Jolly|252,,4,,,252|||||,,,,,Dragon","Annihilape||Leftovers|Defiant|BulkUp,DrainPunch,RageFist,FirePunch|Adamant|252,252,,,4,|||||,,,,,Fighting]Tera Captain|Mamoswine|LoadedDice|ThickFat|Trailblaze,IcicleSpear,RockBlast,IceShard|Jolly|,252,,,4,252|||||,,,,,Grass]Iron Valiant||FocusSash|QuarkDrive|SwordsDance,ShadowSneak,CloseCombat,SpiritBreak|Jolly|,252,,,4,252|||||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,HornLeech,PlayRough|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|Dondozo|Leftovers|Unaware|Curse,WaveCrash,Rest,SleepTalk|Impish|252,4,252,,,|||||,,,,,Grass]Weezing-Galar||BlackSludge|Levitate|Haze,StrangeSteam,WillOWisp,Defog|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison"], + ["Great Tusk||PasshoBerry|Protosynthesis|BulkUp,RapidSpin,BodyPress,HeadlongRush|Adamant|252,252,,,4,|||||,,,,,Ground]Palafin||Leftovers|ZerotoHero|FlipTurn,JetPunch,DrainPunch,BulkUp|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Gholdengo|SpellTag|GoodasGold|ShadowBall,DazzlingGleam,NastyPlot,Recover|Modest|252,,,252,4,||,0,,,,|||,,,,,Fairy]Rillaboom||GrassySeed|GrassySurge|SwordsDance,Acrobatics,KnockOff,GrassyGlide|Jolly|,252,,,4,252|||||,,,,,Grass]Hydreigon||ChoiceScarf|Levitate|DarkPulse,Uturn,FlashCannon,Tailwind|Timid|,,,252,4,252|||||,,,,,Dark]Ditto||ChoiceScarf|Imposter|Transform|Serious|252,,,,,||,30,,,,|||,,,,,Normal","Palafin-Hero||AssaultVest|ZerotoHero|FlipTurn,WaveCrash,IcePunch,JetPunch|Jolly|,132,,,124,252|||||,,,,,Water]Tera Captain|Gholdengo|ShucaBerry|GoodasGold|MakeItRain,ShadowBall,Recover,ThunderWave|Bold|248,,252,8,,||,0,,,,|||,,,,,Grass]Tera Captain|Jolteon|AssaultVest|VoltAbsorb|Thunderbolt,TeraBlast,AlluringVoice,ShadowBall|Modest|,,152,224,,132||,0,,,,|||,,,,,Grass]Hydreigon||ChoiceScarf|Levitate|DracoMeteor,DarkPulse,Uturn,FireBlast|Modest|248,,12,116,,132|||||,,,,,Dark]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,PlayRough,Substitute,WoodHammer|Jolly|80,252,,,,176|||||,,,,,Fire]Weezing-Galar||RockyHelmet|Levitate|StrangeSteam,Flamethrower,PainSplit,Defog|Bold|248,,252,8,,||,0,,,,|||,,,,,Poison"], + ["Urshifu||ChoiceBand|UnseenFist|WickedBlow,Uturn,CloseCombat,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Cloyster|NeverMeltIce|SkillLink|IcicleSpear,ShellSmash,IceShard,RockBlast|Adamant|104,252,,,4,148|||||,,,,,Poison]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,NastyPlot,Recover|Modest|148,,,252,,108||,0,,,,|||,,,,,Steel]Tera Captain|RagingBolt|HeavyDutyBoots|Protosynthesis|Thunderbolt,Thunderclap,DragonPulse,CalmMind|Modest|252,,,252,4,||,20,,,,|||,,,,,Dragon]Scream Tail||Leftovers|Protosynthesis|Encore,DazzlingGleam,Wish,Roar|Timid|252,,,,4,252||,0,,,,|||,,,,,Fairy]Coalossal||Leftovers|FlameBody|WillOWisp,HeatCrash,StealthRock,Reflect|Careful|252,4,,,252,|||||,,,,,Rock","Enamorus-Therian||KebiaBerry|Overcoat|DrainingKiss,IronDefense,EarthPower,CalmMind|Bold|248,,252,8,,||,0,,,,|||,,,,,Fairy]Pecharunt||RockyHelmet|PoisonPuppeteer|PartingShot,Recover,Hex,MalignantChain|Modest|252,,,236,,20||,0,,,,|||,,,,,Poison]Roaring Moon||ChoiceBand|Protosynthesis|KnockOff,Earthquake,Outrage,Uturn|Jolly|32,252,,,,224|||||,,,,,Dragon]Dewgong||RockyHelmet|ThickFat|KnockOff,FlipTurn,Haze,Encore|Impish|248,,252,,8,|||||,,,,,Water]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|KnockOff,SwordsDance,IvyCudgel,HornLeech|Jolly|108,252,,,,148|||||,,,,,Rock]Ursaluna-Bloodmoon||Leftovers|MindsEye|CalmMind,BloodMoon,EarthPower,Moonlight|Modest|252,,172,76,,8||,0,,,,|||,,,,,Ground"], + ["Great Tusk||RoseliBerry|Protosynthesis|HeadlongRush,StoneEdge,StealthRock,RapidSpin|Adamant|152,,,,252,104|||||,,,,,Ground]Tera Captain|RotomFrost|AssaultVest|Levitate|Blizzard,Discharge,VoltSwitch,FoulPlay|Calm|252,,,,168,88||,0,,,,|||,,,,,Water]Skuntank||RockyHelmet|Aftermath|GunkShot,FireBlast,Taunt,Memento|Sassy|252,,76,40,140,|||||,,,,,Poison]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Trailblaze,SwordsDance|Jolly|160,252,,,,96|||||,,,,,Water]Noivern||ChoiceScarf|Infiltrator|Hurricane,Flamethrower,Uturn,Switcheroo|Timid|,,,252,4,252|||||,,,,,Flying]Enamorus||BabiriBerry|CuteCharm|Moonblast,MysticalFire,HealingWish,CalmMind|Timid|,,128,252,,128||,0,,,,|||,,,,,Fairy","Tera Captain|Annihilape|ChoiceScarf|Defiant|TeraBlast,RageFist,CloseCombat,Uturn|Jolly|24,252,,,,232|||||,,,,,Ghost]Greninja-Bond||LoadedDice|BattleBond|Surf,DarkPulse,WaterShuriken,IceBeam|Timid|96,,,252,,160|||||,,,,,Water]Tornadus-Therian||LightBall|Regenerator|Fling,Acrobatics,BulkUp,KnockOff|Jolly|248,36,56,,,168|||||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|Ruination,StealthRock,HeavySlam,Earthquake|Careful|252,,4,,252,|||||,,,,,Dark]Tera Captain|Comfey|ChoiceSpecs|Triage|DrainingKiss,GigaDrain,Uturn,Synthesis|Modest|252,,4,252,,|||||,,,,,Grass]Scizor||RockyHelmet|Technician|BulletPunch,KnockOff,Endure,Uturn|Impish|248,,252,,8,|||||,,,,,Bug"], + ["Palafin||AssaultVest|ZerotoHero|Boomburst,HydroPump,FlipTurn,Surf|Modest|64,,,192,,252|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|ThunderWave,Uturn,Roost,Thunderbolt|Bold|248,,252,,8,|||||,,,,,Electric]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Spikes,Protect,Earthquake,KnockOff|Jolly|,72,252,,,184|||||,,,,,Normal]Tinkaton||Leftovers|MoldBreaker|StealthRock,KnockOff,ThunderWave,GigatonHammer|Careful|252,,,,252,|||||,,,,,Fairy]Mismagius||ChoiceScarf|Levitate|ShadowBall,DazzlingGleam,DestinyBond,MysticalFire|Timid|144,,,128,4,232||,0,,,,|||,,,,,Ghost]Tera Captain|Tyranitar|AssaultVest|Unnerve|KnockOff,HeavySlam,IcePunch,FirePunch|Adamant|204,52,,,252,|||||,,,,,Flying","Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,Psyshock,ShadowBall,Thunderbolt|Timid|88,,,252,,168||,0,,,,|||,,,,,Fairy]Garchomp||LoadedDice|RoughSkin|Earthquake,ScaleShot,SwordsDance,Substitute|Jolly|4,252,,,,252|||||,,,,,Dragon]Golurk||PasshoBerry|NoGuard|StealthRock,Poltergeist,Earthquake,IcePunch|Adamant|252,252,,,4,|||||,,,,,Ground]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,WillOWisp,Protect|Bold|252,,120,,136,||,0,,,,|||,,,,,Electric]Scizor||HeavyDutyBoots|Technician|KnockOff,Uturn,Defog,BulletPunch|Careful|248,132,,,128,|||||,,,,,Bug]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,SlackOff,WillOWisp,Hex|Bold|252,,252,,4,||,0,,,,|||,,,,,Dragon"], + ["Tera Captain|GreatTusk|Leftovers|Protosynthesis|BulkUp,RapidSpin,CloseCombat,Earthquake|Adamant|252,4,,,,252|||||,,,,,Fairy]Tornadus-Therian||AssaultVest|Regenerator|AirSlash,KnockOff,HeatWave,Uturn|Timid|168,,,188,,152|||||,,,,,Flying]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,SuckerPunch,SacredSword,FlipTurn|Jolly|48,252,4,,,204|||||,,,,,Water]Latios||ChoiceSpecs|Levitate|Psyshock,Thunderbolt,DracoMeteor,FlipTurn|Timid|16,,,252,,240|||||,,,,,Dragon]Tinkaton||Leftovers|Pickpocket|ThunderWave,StealthRock,KnockOff,GigatonHammer|Careful|252,,,,220,36|||||,,,,,Fairy]Tera Captain|Bellibolt|RedCard|Static|Toxic,VoltSwitch,SlackOff,TeraBlast|Bold|248,,172,,80,8||,0,,,,|||,,,,,Fairy","Iron Bundle||ChoiceScarf|QuarkDrive|HydroPump,FreezeDry,Blizzard,FlipTurn|Modest|,,,252,4,252|||||,,,,,Ice]Corviknight||SitrusBerry|Pressure|AirSlash,BodyPress,Defog,Roost|Bold|248,,252,,8,||,0,,,,|||,,,,,Flying]Slowking-Galar||SitrusBerry|Regenerator|IceBeam,ToxicSpikes,SlackOff,ChillyReception|Calm|248,,8,,252,||,0,,,,|||,,,,,Poison]Tera Captain|Hydreigon|ChopleBerry|Levitate|StealthRock,DracoMeteor,Earthquake,ThunderWave|Hasty|,252,,,32,224|||||,,,,,Steel]Infernape||HeavyDutyBoots|Blaze|FlareBlitz,KnockOff,CloseCombat,SlackOff|Jolly|112,,252,,,144|||||,,,,,Fire]Tera Captain|Torterra|BabiriBerry|ShellArmor|SwordsDance,TeraBlast,Earthquake,Synthesis|Careful|248,,8,,252,|||||,,,,,Fairy"], + ["Iron Valiant||LifeOrb|QuarkDrive|Moonblast,Encore,IcePunch,CloseCombat|Naive|,24,,252,,232|||||,,,,,Fairy]Tera Captain|GreninjaBond|LifeOrb|BattleBond|DarkPulse,IceBeam,Extrasensory,GunkShot|Hasty|,72,,252,,184|||||,,,,,Dark]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Toxic,BrickBreak,Protect|Careful|244,,44,,220,|||||,,,,,Ground]Slowking-Galar||CustapBerry|Regenerator|ChillyReception,SludgeBomb,ThunderWave,PsychicNoise|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison]Tera Captain|Appletun|RockyHelmet|ThickFat|DracoMeteor,AppleAcid,Recover,DragonTail|Bold|252,,252,,4,|||S||,,,,,Fairy]Forretress||MentalHerb|Sturdy|ToxicSpikes,VoltSwitch,Spikes,RapidSpin|Sassy|252,,4,,252,|||||,,,,,Bug","Tera Captain|Serperior|ChopleBerry|Contrary|LeafStorm,TeraBlast,Synthesis,Taunt|Timid|248,,,148,,112||,0,,,,|||,,,,,Steel]Gouging Fire||BoosterEnergy|Protosynthesis|HeatCrash,DoubleEdge,DragonDance,Substitute|Adamant|56,252,156,,20,24|||||,,,,,Fire]Jirachi||EjectButton|SereneGrace|IronHead,IcePunch,FirePunch,StealthRock|Adamant|252,164,92,,,|||||,,,,,Steel]Quaquaval||HeavyDutyBoots|Moxie|WaveCrash,CloseCombat,RapidSpin,Roost|Adamant|160,164,,,,184|||||,,,,,Water]Zapdos||HeavyDutyBoots|Pressure|Discharge,Hurricane,Substitute,Roost|Calm|248,,36,,220,4||,0,,,,|S||,,,,,Electric]Grimmsnarl||LightClay|Prankster|SpiritBreak,Reflect,ThunderWave,LightScreen|Careful|248,92,,,168,|||||,,,,,Dark"], + ["Great Tusk||Leftovers|Protosynthesis|Earthquake,RapidSpin,TemperFlare,HeadSmash|Jolly|124,180,24,,20,160|||||,,,,,Ground]Weavile||HeavyDutyBoots|Pressure|TripleAxel,SwordsDance,KnockOff,IceShard|Jolly|12,252,,,4,240|||||,,,,,Dark]Zapdos||LightClay|Static|Hurricane,Roost,Uturn,LightScreen|Bold|140,,60,64,48,196|||||,,,,,Electric]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,StealthRock,Encore,KnockOff|Careful|124,24,32,,84,244|||||,,,,,Fairy]Dragalge||HabanBerry|Adaptability|SludgeBomb,DracoMeteor,FlipTurn,ToxicSpikes|Calm|252,,44,64,148,|||||,,,,,Poison]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Trailblaze,SwordsDance,Taunt|Adamant|124,124,40,,104,116|||||,,,,,Water","Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|DracoMeteor,CalmMind,Thunderclap,Thunderbolt|Modest|,,52,252,,204||,20,,,,|||,,,,,Water]Meowscarada||SitrusBerry|Protean|ThunderPunch,LeafStorm,BrickBreak,TripleAxel|Naughty|,252,52,,,204|||||,,,,,Grass]Bronzong||ColburBerry|Levitate|IronDefense,PsychicNoise,BodyPress,TrickRoom|Calm|252,,,4,252,||,0,,,,|||,,,,,Steel]Araquanid||CustapBerry|WaterBubble|StickyWeb,Endeavor,Lunge,Liquidation|Adamant|132,252,,,88,36|||||,,,,,Water]Tera Captain|Chandelure|ChoiceScarf|FlashFire|Flamethrower,Overheat,Psychic,ShadowBall|Modest|16,,,252,,240||,0,,,,|||,,,,,Fire]Weezing-Galar||RockyHelmet|Levitate|PlayRough,Overheat,Toxic,Defog|Impish|252,,252,,,4|||||,,,,,Poison"], + ["Volcarona||HeavyDutyBoots|FlameBody|QuiverDance,FieryDance,BugBuzz,MorningSun|Timid|252,,104,,,152||,0,,,,|S||,,,,,Bug]Iron Boulder||ChoiceBand|QuarkDrive|WildCharge,CloseCombat,MightyCleave,XScissor|Jolly|,252,,,4,252|||||,,,,,Rock]Iron Valiant||ChoiceScarf|QuarkDrive|Trick,Moonblast,CloseCombat,KnockOff|Naive|,252,,4,,252|||S||,,,,,Fairy]Maushold-Four||WideLens|Technician|PopulationBomb,TidyUp,Bite,Encore|Jolly|,252,,,4,252|||||,,,,,Normal]Kommo-o||ThroatSpray|Bulletproof|ClangorousSoul,Boomburst,ClangingScales,AuraSphere|Timid|,,,252,4,252||,0,,,,|||,,,,,Normal]Gliscor||ToxicOrb|PoisonHeal|Earthquake,KnockOff,Protect,Toxic|Impish|252,,180,,,76|||S||,,,,,Ground","Tera Captain|Latias|Leftovers|Levitate|CalmMind,Agility,ShadowBall,MistBall|Timid|248,,244,,,16||,0,,,,|||,,,,,Poison]Scizor||RockyHelmet|Technician|BulletPunch,DualWingbeat,Uturn,KnockOff|Adamant|200,252,,,4,52|||||,,,,,Stellar]Heatran||Leftovers|FlameBody|MagmaStorm,ScorchingSands,Protect,WillOWisp|Bold|248,,248,12,,||,0,,,,|S||,,,,,Stellar]Gliscor||ToxicOrb|PoisonHeal|Protect,Earthquake,IceFang,Spikes|Adamant|240,216,36,,,16|||S||,,,,,Stellar]Greninja-Bond||LoadedDice|BattleBond|WaterShuriken,Surf,IceBeam,Extrasensory|Timid|48,,,252,,208|||S||,,,,,Stellar]Tera Captain|Bellibolt|Leftovers|Static|TeraBlast,Discharge,VoltSwitch,SlackOff|Bold|240,,208,44,16,||,0,,,,|||,,,,,Poison"], + ["Tera Captain|Rillaboom|LifeOrb|GrassySurge|GrassyGlide,SwordsDance,HighHorsepower,KnockOff|Jolly|,252,,,4,252|||||,,,,,Ground]Sneasler||GrassySeed|Unburden|Acrobatics,DireClaw,CloseCombat,ShadowClaw|Adamant|,252,,,4,252|||||,,,,,Fighting]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,Earthquake,FlareBlitz,ScaleShot|Adamant|,252,,,4,252|||||,,,,,Fire]Enamorus||ChoiceScarf|Contrary|EarthPower,Moonblast,MysticalFire,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|Blastoise|Leftovers|Torrent|DarkPulse,IceBeam,TeraBlast,ShellSmash|Modest|,,,252,4,252||,0,,,,|||,,,,,Ground]Skarmory||Leftovers|Sturdy|BraveBird,Whirlwind,Roost,Taunt|Impish|252,,232,,,24|||||,,,,,Steel","Tera Captain|GreatTusk|RockyHelmet|Protosynthesis|TemperFlare,Earthquake,IronHead,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|Hoopa|ChoiceScarf|Magician|TeraBlast,Psychic,ShadowBall,DestinyBond|Timid|,,4,252,,252||,0,,,,|||,,,,,Dragon]Latios||HeavyDutyBoots|Levitate|AirSlash,FlipTurn,Trick,Recover|Timid|128,,76,52,,252|||||,,,,,Dragon]Gholdengo||OccaBerry|GoodasGold|MakeItRain,Hex,ThunderWave,Recover|Calm|252,,156,8,92,||,0,,,,|||,,,,,Steel]Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,Flamethrower,Psychic,Memento|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Toxapex||RockyHelmet|Regenerator|Haze,Toxic,Protect,Surf|Modest|252,,80,16,160,||,0,,,,|||,,,,,Poison"], + ["Chi-Yu||ChoiceScarf|BeadsofRuin|Flamethrower,DarkPulse,FireBlast,Psychic|Modest|,,,252,4,252|||||,,,,,Fire]Uxie||HeavyDutyBoots|Levitate|StealthRock,Psychic,Uturn,KnockOff|Timid|252,,40,,,216|||||,,,,,Dark]Tera Captain|Rhyperior|RockyHelmet|SolidRock|Earthquake,StealthRock,Avalanche,StoneEdge|Adamant|152,20,,,252,84|||||,,,,,Flying]Grafaiai||HeavyDutyBoots|PoisonTouch|Uturn,KnockOff,GunkShot,Encore|Jolly|,252,,,4,252|||||,,,,,Dark]Azumarill||AssaultVest|HugePower|Liquidation,PlayRough,AquaJet,IceSpinner|Adamant|252,152,,,104,|||||,,,,,Water]Noivern||HeavyDutyBoots|Infiltrator|Defog,SuperFang,Uturn,Roost|Timid|,,,252,4,252|||||,,,,,Fire","Zarude||ChoiceScarf|LeafGuard|KnockOff,PowerWhip,CloseCombat,Uturn|Jolly|40,252,,,,216|||||,,,,,Dark]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,SludgeWave,TeraBlast,MorningSun|Timid|124,,,132,,252||,0,,,,|||,,,,,Water]Tinkaton||OccaBerry|Pickpocket|StealthRock,ThunderWave,KnockOff,GigatonHammer|Careful|248,32,,,216,12|||||,,,,,Fairy]Great Tusk||AssaultVest|Protosynthesis|RapidSpin,KnockOff,Earthquake,IceSpinner|Adamant|,160,,,172,176|||||,,,,,Ground]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,KnockOff,BleakwindStorm,GrassKnot|Timid|140,,,124,48,196|||||,,,,,Flying]Tera Captain|Mesprit|RockyHelmet|Levitate|LightScreen,Reflect,Psychic,Uturn|Bold|240,,252,,,16|||||,,,,,Fairy"], + ["Tera Captain|Metagross|AssaultVest|ClearBody|HeavySlam,PsychicFangs,IcePunch,Explosion|Adamant|252,44,,,212,|||||,,,,,Normal]Iron Bundle||NeverMeltIce|QuarkDrive|FreezeDry,HydroPump,IceBeam,Taunt|Timid|156,,,252,4,96||,0,,,,|S||,,,,,Ice]Clefable||Leftovers|Unaware|IceBeam,Moonblast,Wish,Flamethrower||252,,252,4,,||,0,,,,|||,,,,,Fairy]Gliscor||ToxicOrb|PoisonHeal|Protect,Facade,SwordsDance,IceFang|Impish|252,4,252,,,|||S||,,,,,Ground]Tera Captain|Magnezone|ChoiceSpecs|MagnetPull|FlashCannon,Thunderbolt,SteelBeam,VoltSwitch|Modest|248,,,252,8,||,0,,,,|||,,,,,Electric]Blissey||Leftovers|NaturalCure|SeismicToss,SoftBoiled,ThunderWave,StealthRock|Calm|,,252,4,252,||,0,,,,|||,,,,,Normal","Iron Valiant||LifeOrb|QuarkDrive|CloseCombat,PoisonJab,IcePunch,ShadowSneak|Jolly|48,252,,,,208|||||,,,,,Fairy]Corviknight||ShedShell|MirrorArmor|IronHead,Uturn,Defog,Roost|Careful|252,,4,,252,|||||,,,,,Flying]Tera Captain|Serperior|ChoiceScarf|Contrary|LeafStorm,TeraBlast,KnockOff,Glare|Timid|24,,,252,,232|||||,,,,,Stellar]Arbok||BlackSludge|Intimidate|GunkShot,KnockOff,GastroAcid,ToxicSpikes|Careful|248,,8,,252,|||||,,,,,Poison]Tera Captain|Dudunsparce|Leftovers|Rattled|BodyPress,Hex,Roost,CalmMind|Bold|248,,252,,8,||,0,,,,|||,,,,,Ghost]Garchomp||Leftovers|RoughSkin|Earthquake,ScaleShot,Spikes,SwordsDance|Careful|248,,,,128,132|||||,,,,,Dragon"], + ["Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Flamethrower,Psychic,Overheat|Timid|,,4,252,,252||,0,,,,|||,,,,,Bug]Iron Bundle||ChoiceScarf|QuarkDrive|FreezeDry,HydroPump,Encore,Uturn|Rash|132,,,252,,124|||S||,,,,,Bug]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,IceSpinner,VoltSwitch,RapidSpin|Jolly|120,,144,,4,240|||S||,,,,,Bug]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,HornLeech,LowKick,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Rock]Zoroark-Hisui||FocusSash|Illusion|HyperVoice,ShadowBall,KnockOff,Uturn|Timid|,,,252,48,208||,13,,,,|S||,,,,,Bug]Tera Captain|EnamorusTherian|RockyHelmet|Overcoat|DrainingKiss,MysticalFire,EarthPower,HealingWish|Bold|252,,252,,4,||,0,,,,|S||,,,,,Water","Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,CloseCombat,Uturn,AquaJet|Adamant|80,252,4,,,172|||||,,,,,Water]Darkrai||AssaultVest|BadDreams|DarkPulse,SludgeBomb,Thunder,FocusBlast|Timid|120,,,252,,136||,0,,,,|||,,,,,Dark]Slowking-Galar||BlackSludge|Regenerator|SludgeBomb,ChillyReception,Flamethrower,FutureSight|Calm|248,,8,,252,||,0,,,,|||,,,,,Poison]Orthworm||SitrusBerry|EarthEater|ShedTail,Earthquake,IronHead,StealthRock|Impish|252,,252,,4,|||||,,,,,Steel]Tera Captain|Delphox|HeavyDutyBoots|Blaze|FocusBlast,Flamethrower,DazzlingGleam,CalmMind|Timid|32,,,252,,224||,0,,,,|||,,,,,Fairy]Zapdos||ChoiceScarf|Static|Discharge,HeatWave,Hurricane,VoltSwitch|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Latias|RockyHelmet|Levitate|DragonPulse,Recover,StoredPower,CalmMind|Timid|252,,80,,,176||,0,,,,|||,,,,,Poison]Greninja-Bond||ChoiceSpecs|BattleBond|Surf,DarkPulse,WaterShuriken,Uturn|Timid|16,,,252,,240|||||,,,,,Water]Iron Treads||Leftovers|QuarkDrive|RapidSpin,HeavySlam,VoltSwitch,Endeavor|Adamant|8,160,,,252,88|||||,,,,,Ground]Gouging Fire||BoosterEnergy|Protosynthesis|MorningSun,DragonDance,FlareBlitz,Outrage|Adamant|48,252,,,,208|||||,,,,,Fire]Snorlax||CustapBerry|ThickFat|HeatCrash,HighHorsepower,BodySlam,Yawn|Careful|40,216,,,252,|||||,,,,,Normal]Tera Captain|Toxicroak|LifeOrb|DrySkin|VacuumWave,SuckerPunch,SludgeWave,NastyPlot|Timid|,4,,252,,252|||||,,,,,Fighting","Sneasler||ChoiceBand|PoisonTouch|Uturn,DireClaw,CloseCombat,GunkShot|Jolly|,252,,,4,252|||||,,,,,Fighting]Quagsire||Leftovers|Unaware|Recover,Toxic,Earthquake,Spikes|Careful|252,4,44,,208,|||||,,,,,Water]Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,DarkPulse,Flamethrower,Taunt|Modest|4,,,252,,252||,0,,,,|||,,,,,Dark]Tera Captain|Latias|SalacBerry|Levitate|CalmMind,Recover,DragonPulse,StoredPower|Timid|252,,,4,,252||,0,,,,|||,,,,,Fairy]Rillaboom||Leftovers|GrassySurge|Protect,LeechSeed,GrassyGlide,StompingTantrum|Adamant|252,252,4,,,|||||,,,,,Grass]Tera Captain|Vikavolt|CustapBerry|Levitate|StickyWeb,VoltSwitch,BugBuzz,EnergyBall|Modest|252,,,252,4,||,0,,,,|||,,,,,Electric"], + ["Weavile||HeavyDutyBoots|Pickpocket|SwordsDance,IceShard,KnockOff,Protect|Adamant|84,252,,,,172|||||,,,,,Dark]Heatran||ShucaBerry|FlameBody|StealthRock,EarthPower,LavaPlume,WillOWisp|Bold|248,,180,,,80||,0,,,,|||,,,,,Fire]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Substitute,DragonPulse,Thunderbolt,TeraBlast|Modest|156,,,252,,100||,20,,,,|||,,,,,Poison]Oricorio-Sensu||HeavyDutyBoots|Dancer|RevelationDance,Defog,Roost,QuiverDance|Modest|184,,,76,,248||,0,,,,|||,,,,,Ghost]Palafin-Hero||PunchingGlove|ZerotoHero|FlipTurn,DrainPunch,IcePunch,JetPunch|Adamant|,252,,,4,252|||||,,,,,Water]Tera Captain|Sylveon|Leftovers|Pixilate|Wish,Protect,HyperVoice,Psyshock|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel","Copperajah||Leftovers|HeavyMetal|Protect,KnockOff,HighHorsepower,HeavySlam|Adamant|208,44,4,,252,|||||,,,,,Steel]Garchomp||RockyHelmet|RoughSkin|StealthRock,PoisonJab,StoneEdge,Earthquake|Adamant|248,220,,,,40|||||,,,,,Dragon]Iron Valiant||FocusSash|QuarkDrive|Encore,CloseCombat,PoisonJab,SwordsDance|Adamant|,252,12,,,244|||||,,,,,Fairy]Tera Captain|Lokix|ChoiceScarf|TintedLens|TeraBlast,Uturn,LeechLife,KnockOff|Adamant|,252,20,,,236|||||,,,,,Water]Tentacruel||RockyHelmet|ClearBody|FlipTurn,ToxicSpikes,Haze,KnockOff|Impish|252,,252,,4,|||||,,,,,Water]Rotom-Heat||ChoiceScarf|Levitate|Overheat,VoltSwitch,Trick,Discharge|Modest|64,,,252,,192||,0,,,,|||,,,,,Electric"], + ["Tentacruel||BlackSludge|ClearBody|Haze,RapidSpin,KnockOff,GigaDrain|Timid|252,,4,,,252|||||,,,,,Water]Pecharunt||Leftovers|PoisonPuppeteer|Recover,MalignantChain,ShadowBall,PartingShot|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Tera Captain|Orthworm|SitrusBerry|EarthEater|ShedTail,StealthRock,MetalBurst,BodyPress|Calm|252,,4,,252,||,0,,,,|||,,,,,Steel]Latios||ChoiceScarf|Levitate|Trick,AuraSphere,DracoMeteor,LusterPurge|Timid|4,,,252,,252||,0,,,,|||,,,,,Dragon]Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,SludgeBomb,CalmMind,Uturn|Naive|,8,,252,,248|||||,,,,,Water]Weavile||FocusSash|Pickpocket|PoisonJab,IceShard,SwordsDance,KnockOff|Adamant|12,252,,,,244|||||,,,,,Dark","Empoleon||Leftovers|Competitive|Roost,FlipTurn,IceBeam,KnockOff|Sassy|252,,,4,252,|||||,,,,,Water]Palafin||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,ZenHeadbutt,DrainPunch|Adamant|,252,,,4,252|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|CalmMind,Psychic,DrainingKiss,Recover|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel]Mimikyu||ExpertBelt|Disguise|SwordsDance,PhantomForce,DrainPunch,ShadowSneak|Jolly|,252,68,,,188|||||,,,,,Ghost]Iron Jugulis||ChoiceScarf|QuarkDrive|DarkPulse,EarthPower,Flamethrower,Hurricane|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Glimmora||AirBalloon|Corrosion|MortalSpin,Toxic,StealthRock,EarthPower|Timid|252,,,4,,252|||||,,,,,Rock"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|SpiritBreak,ShadowClaw,CloseCombat,DestinyBond|Jolly|,252,16,,,240|||||,,,,,Fairy]Garchomp||RockyHelmet|RoughSkin|Earthquake,StealthRock,Spikes,Endure|Impish|252,4,252,,,|||||,,,,,Dragon]Rotom-Wash||SitrusBerry|Levitate|HydroPump,VoltSwitch,PainSplit,LightScreen|Bold|248,,24,,192,44||,0,,,,|||,,,,,Electric]Tera Captain|Scizor|HeavyDutyBoots|Technician|SwordsDance,BulletPunch,QuickAttack,Uturn|Adamant|216,252,,,,40|||||,,,,,Normal]Sableye||AirBalloon|Prankster|Recover,Encore,WillOWisp,KnockOff|Calm|248,,236,,24,|||||,,,,,Dark]Tera Captain|Braviary|ChoiceScarf|SheerForce|BraveBird,Uturn,CloseCombat,BodySlam|Jolly|,252,4,,,252|||||,,,,,Normal","Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,RapidSpin,IceSpinner,KnockOff|Jolly|,252,,,,252|||||,,,,,Ground]Gallade||AssaultVest|Sharpness|FirePunch,SacredSword,PsychoCut,NightSlash|Jolly|,252,,,,252|||||,,,,,Psychic]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|SludgeWave,EnergyBall,FieryDance,DazzlingGleam|Timid|124,,,132,,252||,0,,,,|||,,,,,Dark]Mimikyu||LifeOrb|Disguise|SwordsDance,ShadowSneak,PlayRough,ShadowClaw|Jolly|,252,,,4,252|||||,,,,,Ghost]Azumarill||MentalHerb|HugePower|Whirlpool,PerishSong,Protect,PlayRough|Adamant|244,252,,,,12|||||,,,,,Water]Hydreigon||RockyHelmet|Levitate|DarkPulse,Flamethrower,DracoMeteor,FlashCannon|Modest|44,,,252,,212||,0,,,,|||,,,,,Dark"], + ["Ribombee||ChoiceScarf|ShieldDust|Moonblast,Uturn,StickyWeb,Trick|Timid|40,,,252,,216|||||,,,,,Bug]Baxcalibur||ChopleBerry|ThermalExchange|SwordsDance,IcicleCrash,IceShard,Earthquake|Adamant|248,252,,,8,|||||,,,,,Dragon]Tera Captain|LandorusTherian|LumBerry|Intimidate|Rest,Psychic,Uturn,Earthquake|Bashful|252,,128,,128,|||||,,,,,Water]Tentacruel||AssaultVest|LiquidOoze|RapidSpin,HydroPump,FlipTurn,KnockOff|Calm|248,,,,180,80|||||,,,,,Water]Slowking||HeavyDutyBoots|Regenerator|LightScreen,ChillyReception,Psychic,IceBeam|Bold|248,,252,,8,||,0,,,,|||,,,,,Water]Tera Captain|Cloyster|SalacBerry|SkillLink|ShellSmash,IcicleSpear,IceShard,DrillRun|Adamant|,252,,,192,64|||||,,,,,Ice","Tera Captain|Kilowattrel|HeavyDutyBoots|Competitive|Thunderbolt,TeraBlast,Hurricane,Uturn|Timid|,,,252,4,252|||||,,,,,Ice]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,DragonPulse,Glare|Timid|96,,,252,4,152||,0,,,,|||,,,,,Fighting]Cinderace||ChoiceScarf|Blaze|PyroBall,LowKick,Uturn,SuckerPunch|Jolly|72,252,4,,,180|||||,,,,,Fire]Empoleon||Leftovers|Torrent|Earthquake,MetalClaw,Roar,Roost|Sassy|248,,80,,180,|||||,,,,,Water]Great Tusk||Leftovers|Protosynthesis|RapidSpin,StealthRock,CloseCombat,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Ground]Mandibuzz||HeavyDutyBoots|Overcoat|FoulPlay,KnockOff,Uturn,Roost|Impish|248,8,252,,,|||||,,,,,Dark"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Thunderbolt,CalmMind|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|Salamence|Leftovers|Moxie|TeraBlast,DragonDance,DragonClaw,DualWingbeat|Adamant|,252,4,,,252|||||,,,,,Water]Goodra-Hisui||AssaultVest|Gooey|DracoMeteor,IceBeam,FlashCannon,Flamethrower|Modest|248,,,252,,8||,0,,,,|||,,,,,Steel]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,ThunderWave,WillOWisp|Bold|248,,252,,,8||,0,,,,|||,,,,,Electric]Arcanine-Hisui||FocusSash|RockHead|StealthRock,ExtremeSpeed,FlareBlitz,HeadSmash|Jolly|,252,,,4,252|||||,,,,,Fire]Toedscruel||Leftovers|MyceliumMight|RapidSpin,Spikes,LeafStorm,Spore|Calm|252,,,4,252,|||||,,,,,Ground","Tornadus-Therian||ChoiceScarf|Regenerator|SludgeWave,KnockOff,FoulPlay,Uturn|Timid|72,,,220,,216|||||,,,,,Flying]Sandy Shocks||BoosterEnergy|Protosynthesis|Thunderbolt,StealthRock,EarthPower,VoltSwitch|Timid|,,,204,56,248||,0,,,,|||,,,,,Electric]Brambleghast||ChoiceBand|Infiltrator|PowerWhip,Poltergeist,ShadowSneak,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Grass]Latios||EjectPack|Levitate|DracoMeteor,LusterPurge,Psyshock,AuraSphere|Timid|80,,,252,,176||,0,,,,|||,,,,,Dragon]Tera Captain|UrshifuRapidStrike|ChoiceBand|UnseenFist|CloseCombat,SurgingStrikes,AquaJet,Uturn|Jolly|,252,,,56,200|||||,,,,,Steel]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Flamethrower,TeraBlast,SleepTalk,Roost|Bold|248,,228,8,,||,0,,,,|||,,,,,Poison"], + ["Minior||LightClay|ShieldsDown|StealthRock,PowerGem,Reflect,LightScreen|Timid|248,,,8,,252||,0,,,,|||,,,,,Rock]Skarmory||RockyHelmet|Sturdy|BodyPress,Roost,Spikes,IronDefense|Calm|252,,,,232,24||,0,,,,|||,,,,,Steel]Tera Captain|Clefable|Leftovers|Unaware|CalmMind,Substitute,Moonblast,StoredPower|Modest|252,,,252,4,||,0,,,,|||,,,,,Psychic]Latios||ChoiceSpecs|Levitate|FlipTurn,DracoMeteor,LusterPurge,Thunderbolt|Timid|,,,252,4,252|||||,,,,,Dragon]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,SwordsDance,PowerWhip,StompingTantrum|Jolly|,252,,,4,252|||||,,,,,Fire]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,WillOWisp,Defog,Toxic|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison","Tera Captain|Latias|ChoiceScarf|Levitate|Trick,MistBall,Thunderbolt,ShadowBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Iron Treads||AssaultVest|QuarkDrive|RapidSpin,IronHead,VoltSwitch,KnockOff|Jolly|252,,,,208,48|||||,,,,,Ground]Tera Captain|Gyarados|HeavyDutyBoots|Intimidate|DragonDance,Waterfall,ScaleShot,Taunt|Jolly|,252,,,8,248|||||,,,,,Fire]Persian-Alola||Leftovers|FurCoat|PartingShot,Taunt,Thunderbolt,FoulPlay|Timid|116,,176,,,216||,0,,,,|||,,,,,Dark]Gastrodon-East||Leftovers|StickyHold|Recover,Surf,StealthRock,Yawn|Bold|252,,192,,64,||,0,,,,|||,,,,,Water]Infernape||ChoiceScarf|Blaze|Uturn,KnockOff,Flamethrower,Switcheroo|Mild|,124,,252,,132|||||,,,,,Fire"], + ["Tera Captain|Annihilape|ChestoBerry|InnerFocus|RageFist,BulkUp,DrainPunch,Rest|Jolly|248,36,,,,224|||||,,,,,Steel]Roaring Moon||ProtectivePads|Protosynthesis|KnockOff,Uturn,IronHead,DragonDance|Jolly|24,252,,,,232|||||,,,,,Dragon]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|Uturn,IvyCudgel,HornLeech,Encore|Adamant|32,252,,,,224|||||,,,,,Fire]Slowking-Galar||BlackSludge|Regenerator|SludgeBomb,Flamethrower,ThunderWave,SlackOff|Calm|252,,132,,124,||,0,,,,|||,,,,,Poison]Lanturn||Leftovers|VoltAbsorb|Scald,VoltSwitch,Protect,ThunderWave|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Corviknight||Leftovers|Pressure|Defog,Uturn,Roost,BraveBird|Impish|252,4,252,,,|||||,,,,,Flying","Tera Captain|Mamoswine|NeverMeltIce|ThickFat|IceShard,Earthquake,IcicleCrash,Trailblaze|Adamant|212,252,,,,44|||||,,,,,Ice]Jirachi||Leftovers|SereneGrace|StealthRock,Thunder,IronHead,Uturn|Jolly|252,,,,80,176|||||,,,,,Steel]Iron Valiant||CobaBerry|QuarkDrive|Encore,SwordsDance,CloseCombat,KnockOff|Jolly|48,252,,,,208|||||,,,,,Fairy]Tera Captain|Hydrapple|Leftovers|Regenerator|NastyPlot,FickleBeam,Recover,GigaDrain|Bold|252,,164,,,92||,0,,,,|||,,,,,Dragon]Talonflame||HeavyDutyBoots|FlameBody|WillOWisp,BraveBird,Roost,Taunt|Impish|248,,184,,,76|||||,,,,,Fire]Rotom-Wash||ChoiceScarf|Levitate|Trick,ShadowBall,HydroPump,VoltSwitch|Modest|,,,252,4,252||,0,,,,|||,,,,,Electric"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,SwordsDance,Encore,PowerWhip|Jolly|,252,80,,,176|||||,,,,,Water]Scream Tail||Leftovers|Protosynthesis|Wish,Encore,IceBeam,StealthRock|Bold|252,,156,,100,||,0,,,,|||,,,,,Bug]Garchomp||ChoiceScarf|RoughSkin|RockSlide,Earthquake,IronHead,DragonClaw|Adamant|252,252,,,,|||||,,,,,Bug]Gholdengo||Leftovers|GoodasGold|MakeItRain,ThunderWave,Hex,Recover|Modest|252,,,252,4,||,0,,,,|||,,,,,Bug]Infernape||LifeOrb|Blaze|Flamethrower,AuraSphere,ScorchingSands,HyperBeam|Timid|64,,,252,,192||,0,,,,|||,,,,,Bug]Ditto||ChoiceScarf|Imposter|Transform|Relaxed|252,4,252,,,||,30,,,,|||,,,,,Normal","Clodsire||Leftovers|WaterAbsorb|ToxicSpikes,StealthRock,Recover,GunkShot|Impish|252,,252,,4,|||||,,,,,Poison]Tera Captain|LandorusTherian|Leftovers|Intimidate|StealthRock,Earthquake,RockSlide,Uturn|Careful|252,,4,,252,|||||,,,,,Dark]Tera Captain|ArticunoGalar|HeavyDutyBoots|Competitive|CalmMind,FreezingGlare,ShadowBall,TeraBlast|Timid|,,80,252,,176||,0,,,,|S||,,,,,Fairy]Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,FireBlast,Flamethrower,Psychic|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Scizor||Leftovers|Technician|Uturn,KnockOff,BulletPunch,DualWingbeat|Adamant|248,200,60,,,|||||,,,,,Bug]Rillaboom||ChoiceBand|GrassySurge|GrassyGlide,WoodHammer,Uturn,KnockOff|Adamant|,252,,,,252|||||,,,,,Grass"], + ["Tera Captain|Sinistcha|Leftovers|Heatproof|IronDefense,CalmMind,MatchaGotcha,Imprison|Timid|252,,4,,,252||,0,,,,|||,,,,,Water]Copperajah||Leftovers|HeavyMetal|KnockOff,StealthRock,HeavySlam,Whirlwind|Impish|252,,252,,4,|||||,,,,,Fighting]Tera Captain|GreatTusk|ChoiceScarf|Protosynthesis|HeadlongRush,CloseCombat,Earthquake,IceSpinner|Adamant|,252,,,4,252|||||,,,,,Ground]Cyclizar|||Regenerator|KnockOff,ShedTail,Acrobatics,Outrage|Jolly|16,252,,,,240|||||,,,,,Ghost]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,SwordsDance,AquaJet,SacredSword|Adamant|,252,,,4,252|||||,,,,,Water]Sylveon||Leftovers|Pixilate|CalmMind,HyperVoice,Wish,Protect|Bold|172,,252,,,84||,0,,,,|||,,,,,Fairy","Cinderace||ChoiceBand|Blaze|PyroBall,Uturn,GunkShot,FlareBlitz|Jolly|104,252,,,,152|||||,,,,,Fire]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,Encore,FlipTurn|Timid|96,,,252,4,156|||||,,,,,Ice]Tera Captain|Dudunsparce|Leftovers|Rattled|CalmMind,Roost,Boomburst,Flamethrower|Timid|248,,12,,,248||,0,,,,|||,,,,,Fairy]Overqwil||RockyHelmet|Intimidate|Haze,Crunch,Toxic,Spikes|Jolly|248,,124,,,136|||||,,,,,Dark]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,CloseCombat,Uturn,IceSpinner|Jolly|80,252,,,,176|||||,,,,,Water]Iron Treads||WeaknessPolicy|QuarkDrive|RapidSpin,IronDefense,Earthquake,StoneEdge|Adamant|,252,44,,,212|||||,,,,,Ground"], + ["Sneasler||ChoiceScarf|PoisonTouch|CloseCombat,DireClaw,FirePunch,Uturn|Jolly|112,252,,,,144|||||,,,,,Fighting]Tera Captain|Froslass|ColburBerry|CursedBody|Spikes,WillOWisp,Hex,IceBeam|Timid|,,32,252,,224||,0,,,,|||,,,,,Dark]Talonflame||HeavyDutyBoots|FlameBody|Overheat,Uturn,Defog,Roost|Timid|252,,,8,,248|||||,,,,,Fire]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|TeraBlast,DragonPulse,Thunderbolt,Thunderclap|Modest|252,,,252,4,||,20,,,,|||,,,,,Ice]Slowking||Leftovers|Regenerator|Psychic,HydroPump,IceBeam,ThunderWave|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Rillaboom||GrassySeed|GrassySurge|GrassyGlide,WoodHammer,KnockOff,Uturn|Adamant|28,252,,,,228|||||,,,,,Grass","Darkrai||BlunderPolicy|BadDreams|NastyPlot,Hypnosis,DarkPulse,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Scizor||ChoiceBand|Technician|DualWingbeat,BulletPunch,CloseCombat,Uturn|Adamant|252,252,4,,,|||||,,,,,Bug]Tera Captain|Volcanion|ChoiceScarf|WaterAbsorb|EarthPower,SteamEruption,TeraBlast,SludgeWave|Timid|4,,,252,,252||,0,,,,|||,,,,,Electric]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|HighHorsepower,KnockOff,Protect,ToxicSpikes|Impish|252,,128,,128,|||||,,,,,Poison]Orthworm||SitrusBerry|EarthEater|ShedTail,StealthRock,IronHead,RockBlast|Impish|252,60,196,,,|||||,,,,,Steel]Brambleghast||HeavyDutyBoots|Infiltrator|RapidSpin,Poltergeist,Protect,LeechSeed|Adamant|148,104,184,,,72|||||,,,,,Grass"], + ["Tera Captain|Serperior|HeavyDutyBoots|Contrary|Glare,LeechSeed,Substitute,LeafStorm|Timid|100,,252,,,156||,0,,,,|||,,,,,Water]Palafin-Hero||ThroatSpray|ZerotoHero|Agility,Boomburst,Surf,DrainingKiss|Modest|104,,,252,,152||,0,,,,|||,,,,,Stellar]Ting-Lu||PasshoBerry|VesselofRuin|Payback,Whirlwind,StealthRock,EarthPower|Sassy|252,,4,,252,|||||,,,,,Stellar]Tinkaton||OccaBerry|MoldBreaker|GigatonHammer,Bulldoze,Encore,Endeavor|Jolly|252,60,,,,196|||||,,,,,Stellar]Weezing-Galar||PayapaBerry|Levitate|Defog,WillOWisp,StrangeSteam,PainSplit|Calm|252,,40,,216,||,0,,,,|||,,,,,Stellar]Tera Captain|RotomFrost|ChoiceScarf|Levitate|VoltSwitch,ShadowBall,PainSplit,Trick|Modest|208,,,252,,48||,0,,,,|||,,,,,Water","Palafin-Hero||MysticWater|ZerotoHero|WaveCrash,JetPunch,FlipTurn,Taunt|Jolly|,252,,,4,252|||||,,,,,Water]Iron Valiant||BoosterEnergy|QuarkDrive|Disable,CloseCombat,KnockOff,ZenHeadbutt|Jolly|24,252,,,,232|||||,,,,,Fairy]Mandibuzz||HeavyDutyBoots|Overcoat|Uturn,BraveBird,Roost,Toxic|Careful|248,,8,,252,|||||,,,,,Dark]Iron Treads||Leftovers|QuarkDrive|RapidSpin,Earthquake,IronHead,Megahorn|Jolly|96,252,,,,160|||||,,,,,Ground]Rotom-Heat||ChoiceScarf|Levitate|Discharge,VoltSwitch,Overheat,Trick|Modest|252,,,132,,124||,0,,,,|||,,,,,Electric]Tera Captain|Latias|Leftovers|Levitate|CalmMind,Thunderbolt,Surf,Recover|Timid|164,,,168,,176||,0,,,,|||,,,,,Electric"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|DestinyBond,Moonblast,AuraSphere,Thunderbolt|Timid|,,,252,48,208||,0,,,,|||,,,,,Fairy]Tera Captain|Zapdos|HeavyDutyBoots|Static|Thunderbolt,VoltSwitch,TeraBlast,Roost|Timid|48,,,252,,208||,0,,,,|||,,,,,Flying]Iron Treads||Leftovers|QuarkDrive|StealthRock,RapidSpin,IronHead,Earthquake|Jolly|96,252,,,,160|||||,,,,,Ground]Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,RazorShell,SacredSword,AquaJet|Jolly|,252,,,64,192|||||,,,,,Water]Tera Captain|SinistchaMasterpiece|LumBerry|Heatproof|CalmMind,ShadowBall,MatchaGotcha,StrengthSap|Bold|252,,228,,28,||,0,,,,|||,,,,,Poison]Deoxys-Defense||HeavyDutyBoots|Pressure|Spikes,Taunt,Recover,NightShade|Bold|252,,140,,116,||,0,,,,|||,,,,,Psychic","Greninja||ExpertBelt|Protean|Uturn,GunkShot,Surf,DarkPulse|Hasty|,100,,200,,208|||S||,,,,,Water]Heatran||Leftovers|FlameBody|MagmaStorm,Protect,FlashCannon,Taunt|Calm|252,,4,,252,||,0,,,,|S||,,,,,Fire]Amoonguss||PayapaBerry|Regenerator|SludgeBomb,GigaDrain,Spore,Toxic|Bold|252,,180,,76,||,0,,,,|S||,,,,,Grass]Tinkaton||Leftovers|MoldBreaker|StealthRock,Encore,ThunderWave,GigatonHammer|Careful|252,,116,,140,|||S||,,,,,Fairy]Tera Captain|Latias|Leftovers|Levitate|CalmMind,Psychic,Thunderbolt,Recover|Timid|252,,32,,,224||,0,,,,|S||,,,,,Electric]Great Tusk||PasshoBerry|Protosynthesis|CloseCombat,RapidSpin,KnockOff,IceSpinner|Jolly|16,252,,,,240|||S||,,,,,Ground"], + ["Iron Moth||BoosterEnergy|QuarkDrive|Discharge,FieryDance,Toxic,DazzlingGleam|Timid|,,,132,124,252||,0,,,,|||,,,,,Fire]Garchomp||LifeOrb|RoughSkin|ScaleShot,DracoMeteor,Earthquake,StoneEdge|Hasty|,252,,4,,252|||||,,,,,Dragon]Tera Captain|IronHands|ProtectivePads|QuarkDrive|IcePunch,DrainPunch,SwordsDance,Earthquake|Careful|248,,8,,252,|||||,,,,,Fairy]Bronzong||ColburBerry|Levitate|IronDefense,BodyPress,IceSpinner,StealthRock|Impish|252,4,252,,,|||||,,,,,Steel]Volbeat||HeavyDutyBoots|Prankster|Roost,Encore,Uturn,StruggleBug|Bold|252,,252,4,,|||||,,,,,Bug]Primarina||BlunderPolicy|Torrent|CalmMind,Sing,Moonblast,EnergyBall|Timid|248,,,188,4,68||,0,,,,|||,,,,,Water","Meowscarada||ProtectivePads|Protean|TripleAxel,FlowerTrick,KnockOff,Uturn|Jolly|,252,104,,,152|||||,,,,,Grass]Tera Captain|GreatTusk|EjectPack|Protosynthesis|HeadlongRush,CloseCombat,RapidSpin,PlayRough|Adamant|184,200,,,,124|||||,,,,,Fairy]Tera Captain|Mismagius|ExpertBelt|Levitate|NastyPlot,ShadowBall,Thunderbolt,DazzlingGleam|Timid|24,,,248,,236||,0,,,,|||,,,,,Fairy]Zapdos||HeavyDutyBoots|Static|Hurricane,Discharge,Roost,VoltSwitch|Calm|248,,,,240,20||,0,,,,|||,,,,,Electric]Qwilfish||RockyHelmet|Intimidate|Spikes,Taunt,PainSplit,FlipTurn|Jolly|248,,40,,,216|||||,,,,,Water]Empoleon||SitrusBerry|Torrent|StealthRock,Roar,Surf,FlipTurn|Calm|252,,,,196,60|||||,,,,,Water"], + ["Pecharunt||ColburBerry|PoisonPuppeteer|MalignantChain,Recover,NastyPlot,ShadowBall|Calm|252,,,48,208,||,0,,,,|||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|DrainingKiss,CalmMind,StoredPower,Recover|Bold|248,,252,,,8||,0,,,,|||,,,,,Fairy]Primarina||HeavyDutyBoots|Torrent|EnergyBall,Moonblast,Sing,FlipTurn|Modest|252,,104,152,,|||||,,,,,Water]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,SwordsDance,HornLeech,PlayRough|Jolly|16,252,,,,240|||||,,,,,Fire]Iron Treads||Leftovers|QuarkDrive|StealthRock,Earthquake,RapidSpin,VoltSwitch|Careful|252,,4,,252,|||||,,,,,Ground]Scrafty||RockyHelmet|Intimidate|DrainPunch,IronHead,SuperFang,KnockOff|Impish|252,4,252,,,|||||,,,,,Dark","Weavile||HeavyDutyBoots|Pressure|SwordsDance,KnockOff,TripleAxel,PoisonJab|Jolly|,252,,,4,252|||||,,,,,Dark]Weezing-Galar||BlackSludge|Levitate|SludgeBomb,StrangeSteam,WillOWisp,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderbolt,DragonPulse,TeraBlast,Roar|Modest|212,,,244,44,8||,20,,,,|||,,,,,Fighting]Infernape||ChoiceSpecs|Blaze|FireBlast,FocusBlast,VacuumWave,Uturn|Timid|,,16,252,,240|||||,,,,,Fire]Gastrodon||Leftovers|StormDrain|Surf,Recover,StealthRock,Yawn|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Corviknight||Leftovers|Pressure|Defog,Uturn,Roost,Taunt|Impish|248,,252,,,8|||||,,,,,Flying"], + ["Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,DarkPulse,Flamethrower,Memento|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark]Galvantula||HeavyDutyBoots|CompoundEyes|Thunder,BugBuzz,VoltSwitch,StickyWeb|Timid|88,,,252,,168||,0,,,,|||,,,,,Bug]Iron Boulder||ChoiceBand|QuarkDrive|MightyCleave,CloseCombat,Earthquake,PsychoCut|Jolly|64,252,,,,192|||||,,,,,Rock]Mamoswine||LifeOrb|ThickFat|Earthquake,IceShard,KnockOff,StealthRock|Adamant|252,252,,,,4|||||,,,,,Ice]Tera Captain|Hawlucha|PowerHerb|Unburden|Acrobatics,SkyAttack,DrainPunch,BulkUp|Adamant|48,252,,,,208|||||,,,,,Fighting]Whimsicott||HeavyDutyBoots|Prankster|Moonblast,Uturn,Encore,StunSpore|Bold|252,,252,4,,|||||,,,,,Grass","Weezing-Galar||BlackSludge|Levitate|ToxicSpikes,WillOWisp,StrangeSteam,PainSplit|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|DrainingKiss,IceBeam,MistBall,CalmMind|Timid|12,,,252,4,240||,0,,,,|||,,,,,Fairy]Volcanion||Leftovers|WaterAbsorb|WillOWisp,SteamEruption,Protect,Flamethrower|Calm|240,,252,4,12,||,0,,,,|||,,,,,Fire]Urshifu||ChoiceScarf|UnseenFist|WickedBlow,CloseCombat,Uturn,PoisonJab|Adamant|156,252,,,,100|||||,,,,,Fighting]Tsareena||AssaultVest|QueenlyMajesty|Uturn,TripleAxel,KnockOff,RapidSpin|Adamant|252,44,192,,20,|||||,,,,,Grass]Excadrill||FocusSash|MoldBreaker|RapidSpin,Earthquake,IronHead,SwordsDance|Adamant|76,252,,,4,176|||||,,,,,Ground"], + ["Tera Captain|Annihilape|ChoiceScarf|Defiant|CloseCombat,RageFist,Uturn,TeraBlast|Jolly|124,252,,,,132|||S||,,,,,Ghost]Greninja-Bond||LifeOrb|BattleBond|Surf,DarkPulse,IceBeam,WaterShuriken|Timid|8,,,252,,248|||||,,,,,Water]Slowking-Galar||AssaultVest|Regenerator|FutureSight,Flamethrower,SludgeBomb,IceBeam|Sassy|252,,,4,252,||,0,,,,0|||,,,,,Poison]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Earthquake,Ruination,Whirlwind|Impish|248,,252,,8,|||||,,,,,Dark]Tera Captain|Kilowattrel|HeavyDutyBoots|Competitive|Thunderbolt,Hurricane,VoltSwitch,Roost|Timid|26,,6,252,,224||,0,,,,|||,,,,,Water]Tsareena||AssaultVest|QueenlyMajesty|RapidSpin,PowerWhip,KnockOff,TripleAxel|Careful|252,4,,,252,|||||,,,,,Grass","Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,FocusBlast,NastyPlot,SludgeWave|Timid|88,,,252,,168||,0,,,,|||,,,,,Fighting]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,IceBeam,FlipTurn|Timid|88,,,252,,168|||||,,,,,Ice]Cyclizar||HeavyDutyBoots|Regenerator|DracoMeteor,KnockOff,RapidSpin,ShedTail|Bold|248,,144,,,116|||||,,,,,Dragon]Jirachi||ColburBerry|SereneGrace|BodySlam,PsychicNoise,Wish,Protect|Sassy|248,,8,,252,|||||,,,,,Steel]Cinderace||SilkScarf|Libero|SwordsDance,PyroBall,IronHead,QuickAttack|Adamant|120,252,,,4,132|||||,,,,,Fire]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,WillOWisp,PainSplit,Defog|Calm|248,,20,,240,||,0,,,,|||,,,,,Poison"], + ["Ribombee||FocusSash|HoneyGather|Imprison,StickyWeb,Moonblast,StunSpore|Timid|,,,252,4,252||,0,,,,|||,,,,,Bug]Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,Psychic,NastyPlot,Thunder|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Kyurem||HeavyDutyBoots|Pressure|FreezeDry,EarthPower,Substitute,DracoMeteor|Bold|184,,20,100,160,44||,0,,,,|||,,,,,Dragon]Gholdengo||AirBalloon|GoodasGold|Recover,MakeItRain,ShadowBall,Thunderbolt|Bold|72,,148,252,,36||,0,,,,|||,,,,,Steel]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,Uturn,CloseCombat,TeraBlast|Jolly|,252,4,,,252|||||,,,,,Grass]Donphan||Leftovers|Sturdy|Earthquake,RapidSpin,StealthRock,KnockOff|Impish|252,,252,,4,|||||,,,,,Ground","Weavile||HeavyDutyBoots|Pressure|TripleAxel,IceShard,KnockOff,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dark]Tera Captain|Jolteon|HeavyDutyBoots|VoltAbsorb|Thunderbolt,VoltSwitch,ShadowBall,AlluringVoice|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Great Tusk||Leftovers|Protosynthesis|StealthRock,RapidSpin,KnockOff,HeadlongRush|Jolly|252,,24,,,232|||||,,,,,Ground]Gholdengo||ChoiceScarf|GoodasGold|Trick,MakeItRain,ShadowBall,FocusBlast|Modest|,,40,252,,212||,0,,,,|||,,,,,Steel]Alomomola||AssaultVest|Regenerator|FlipTurn,PlayRough,Scald,MirrorCoat|Sassy|252,16,72,,168,|||||,,,,,Water]Tera Captain|Mew|LifeOrb|Synchronize|DragonDance,PlayRough,CloseCombat,FlareBlitz|Jolly|,252,4,,,252|||||,,,,,Fire"], + ["Great Tusk||AssaultVest|Protosynthesis|CloseCombat,Earthquake,IceSpinner,RapidSpin|Adamant|248,92,,,,168|||||,,,,,Ground]Greninja||ChoiceSpecs|Protean|HydroPump,IceBeam,Surf,Uturn|Timid|4,,,252,,252|||||,,,,,Water]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderclap,DragonPulse,Thunderbolt,CalmMind|Bold|248,,120,140,,||,20,,,,|||,,,,,Flying]Uxie||ColburBerry|Levitate|FutureSight,ThunderWave,StealthRock,Uturn|Calm|248,,68,12,180,|||||,,,,,Psychic]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,PlayRough,KnockOff,Encore|Jolly|248,36,,,32,192|||||,,,,,Fairy]Tera Captain|Shaymin|HeavyDutyBoots|NaturalCure|SeedFlare,EarthPower,LeechSeed,Synthesis|Timid|248,,,80,28,152||,0,,,,|||,,,,,Fire","Great Tusk||BoosterEnergy|Protosynthesis|HeadlongRush,Megahorn,RapidSpin,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|Latias|LightClay|Levitate|DracoMeteor,Wish,Reflect,LightScreen|Timid|248,,,84,,176||,0,,,,|||,,,,,Fairy]Greninja||ChoiceScarf|Protean|HydroPump,IceBeam,Uturn,Switcheroo|Hasty|,4,,252,,252|||||,,,,,Water]Tinkaton||RedCard|OwnTempo|GigatonHammer,Endure,StealthRock,Endeavor|Jolly|,252,4,,,252|||||,,,,,Fairy]Rillaboom||Leftovers|GrassySurge|GrassyGlide,HighHorsepower,Uturn,SwordsDance|Adamant|80,252,,,,176|||||,,,,,Grass]Tera Captain|Frosmoth|HeavyDutyBoots|IceScales|IceBeam,BugBuzz,TeraBlast,QuiverDance|Modest|12,,,252,,244||,0,,,,|||,,,,,Ground"], + ["Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,MorningSun,DragonClaw,Earthquake|Careful|196,44,,,204,64|||||,,,,,Fire]Gholdengo||ColburBerry|GoodasGold|NastyPlot,FocusBlast,ShadowBall,Recover|Calm|232,,116,,140,20||,0,,,,|||,,,,,Steel]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Substitute,IvyCudgel,PlayRough,Spikes|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Comfey|Leftovers|Triage|CalmMind,DrainingKiss,TeraBlast,Synthesis|Bold|252,,252,4,,||,0,,,,|||,,,,,Ground]Tornadus-Therian||ChoiceScarf|Regenerator|Uturn,Hurricane,FoulPlay,KnockOff|Timid|240,,,16,,252|||||,,,,,Flying]Maushold-Four||ChoiceScarf|Technician|Switcheroo,PopulationBomb,Uturn,TidyUp|Jolly|8,252,,,,248|||||,,,,,Normal","Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,Earthquake,IceSpinner,HeavySlam|Jolly|248,4,,,4,252|||||,,,,,Ground]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|NastyPlot,Thunderbolt,GrassKnot,SludgeBomb|Modest|248,,60,20,,180||,0,,,,|||,,,,,Poison]Tera Captain|Feraligatr|ChestoBerry|SheerForce|SwordsDance,Liquidation,TeraBlast,Rest|Impish|248,52,136,,72,|||||,,,,,Electric]Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,TripleAxel,Uturn|Jolly|96,252,,,,160|||||,,,,,Grass]Heatran||ShucaBerry|FlashFire|StealthRock,MagmaStorm,EarthPower,MetalSound|Timid|40,,,252,,216||,0,,,,|||,,,,,Fire]Latios||WeaknessPolicy|Levitate|Psyshock,CalmMind,Recover,ShadowBall|Impish|208,,128,16,,156||,0,,,,|||,,,,,Dragon"], + ["Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Trick,FocusBlast|Modest|52,,,252,,204||,0,,,,|||,,,,,Ice]Tera Captain|Latias|Leftovers|Levitate|DrainingKiss,Earthquake,CalmMind,Agility|Timid|252,,160,,,96|||||,,,,,Fairy]Meowscarada||HeavyDutyBoots|Overgrow|Uturn,KnockOff,FlowerTrick,TripleAxel|Adamant|32,252,,,,224|||||,,,,,Ice]Arcanine-Hisui||HeavyDutyBoots|RockHead|ExtremeSpeed,FlareBlitz,HeadSmash,MorningSun|Jolly|,252,,,4,252|||||,,,,,Ice]Zapdos||HeavyDutyBoots|Pressure|Roost,Discharge,Uturn,Hurricane|Bold|252,,236,,,20|||||,,,,,Electric]Tera Captain|Mudsdale|Leftovers|Stamina|LashOut,StealthRock,BodyPress,Earthquake|Careful|248,,120,,140,|||||,,,,,Ground","Iron Boulder||LifeOrb|QuarkDrive|SwordsDance,MightyCleave,Earthquake,XScissor|Jolly|72,252,,,,184|||||,,,,,Rock]Krookodile||ChoiceScarf|Moxie|KnockOff,Earthquake,CloseCombat,GunkShot|Jolly|16,252,,,,240|||||,,,,,Ground]Enamorus-Therian||AssaultVest|Overcoat|SpringtideStorm,MysticalFire,EarthPower,DrainingKiss|Modest|4,,252,252,,||,0,,,,|||,,,,,Fairy]Kommo-o||SitrusBerry|Bulletproof|ClangorousSoul,FlashCannon,ClangingScales,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Tera Captain|Magnezone|AssaultVest|MagnetPull|TeraBlast,Thunderbolt,VoltSwitch,BodyPress|Modest|4,,252,252,,||,0,,,,|||,,,,,Fire]Brambleghast||HeavyDutyBoots|Infiltrator|ShadowSneak,PowerWhip,StrengthSap,RapidSpin|Adamant|252,252,4,,,|||||,,,,,Grass"], + ["Tera Captain|Latias|Leftovers|Levitate|MistBall,TeraBlast,CalmMind,Substitute|Timid|32,,,252,,224||,0,,,,|||,,,,,Electric]Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,LowKick,Uturn|Jolly|56,252,,,,200|||||,,,,,Grass]Gurdurr||Eviolite|Guts|DrainPunch,KnockOff,PoisonJab,IcePunch|Adamant|248,252,,,8,|||||,,,,,Fighting]Rotom-Wash||Leftovers|Levitate|Thunderbolt,HydroPump,ThunderWave,VoltSwitch|Calm|248,,,,184,76||,0,,,,|||,,,,,Electric]Sylveon||Leftovers|Pixilate|HyperVoice,Psychic,Wish,Protect|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Donphan||HeavyDutyBoots|Sturdy|StealthRock,Earthquake,IceShard,RapidSpin|Careful|248,8,,,252,|||||,,,,,Ground","Iron Valiant||LumBerry|QuarkDrive|CloseCombat,SpiritBreak,SwordsDance,Substitute|Jolly|48,252,,,,208|||||,,,,,Bug]Ditto||ChoiceScarf|Imposter|Transform||252,,252,,,4||,30,,,,|S||,,,,,Bug]Iron Treads||Leftovers|QuarkDrive|IronHead,KnockOff,VoltSwitch,RapidSpin|Impish|252,,48,,4,204|||||,,,,,Bug]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Uturn,Toxic,Spikes,Protect|Impish|252,,184,,72,|||||,,,,,Water]Tera Captain|WoChien|Leftovers|TabletsofRuin|PollenPuff,LeechSeed,Substitute,Protect|Calm|252,,124,,132,||,0,,,,|||,,,,,Fairy]Goodra-Hisui||RockyHelmet|Gooey|Earthquake,KnockOff,HeavySlam,DragonTail|Careful|252,,168,,88,|||||,,,,,Bug"], + ["Tera Captain|HoopaUnbound|ChoiceScarf|Magician|DrainPunch,HyperspaceFury,ZenHeadbutt,Trick|Adamant|,252,,,,252|||||,,,,,Dark]Cinderace||HeavyDutyBoots|Libero|PyroBall,Uturn,SuckerPunch,CourtChange|Jolly|,252,,,4,252|||||,,,,,Fire]Sinistcha-Masterpiece||Leftovers|Heatproof|MatchaGotcha,StunSpore,Hex,StrengthSap|Bold|252,,252,,4,||,0,,,,|||,,,,,Ghost]Blissey||HeavyDutyBoots|NaturalCure|ThunderWave,SoftBoiled,SeismicToss,LightScreen|Calm|4,,252,,252,||,0,,,,|||,,,,,Normal]Tera Captain|Thundurus|HeavyDutyBoots|Prankster|ThunderWave,VoltSwitch,FocusBlast,DarkPulse|Timid|,,,252,,252||,0,,,,|||,,,,,Fighting]Maushold||WideLens|Technician|TidyUp,PopulationBomb,Crunch,LowKick|Jolly|4,252,,,,252|||||,,,,,Normal","Tera Captain|Serperior|Leftovers|Contrary|Substitute,Glare,LeafStorm,TeraBlast|Timid|,,,252,16,240||,0,,,,|||,,,,,Stellar]Gouging Fire||Leftovers|Protosynthesis|DragonDance,Roar,HeatCrash,MorningSun|Adamant|184,252,,,,72|||||,,,,,Ground]Cyclizar||ChoiceScarf|Regenerator|ShedTail,IceSpinner,DracoMeteor,RapidSpin|Naive|248,20,,,,240|||||,,,,,Poison]Iron Treads||ChopleBerry|QuarkDrive|IceSpinner,StealthRock,Megahorn,Earthquake|Adamant|248,112,,,,148|||||,,,,,Poison]Greninja||ChoiceBand|Protean|GunkShot,Uturn,IcePunch,WaterShuriken|Jolly|,252,24,,,232|||||,,,,,Ice]Tera Captain|ArticunoGalar|ChoiceScarf|Competitive|Trick,Uturn,Hypnosis,AirSlash|Calm|248,,,,24,236|||||,,,,,Ice"], + ["Tera Captain|Latias|Leftovers|Levitate|StoredPower,AuraSphere,CalmMind,Agility|Timid|248,,204,,,56||,0,,,,|||,,,,,Steel]Empoleon||ChopleBerry|Torrent|Surf,DrillPeck,FlipTurn,StealthRock|Sassy|248,,8,,252,|||||,,,,,Water]Tera Captain|Electrode|Magnet|Static|Thunderbolt,TeraBlast,VoltSwitch,Taunt|Modest|96,,,252,,160||,0,,,,|||,,,,,Ice]Great Tusk||CobaBerry|Protosynthesis|RapidSpin,IceSpinner,CloseCombat,KnockOff|Impish|216,,232,,,60|||||,,,,,Ground]Zarude||Leftovers|LeafGuard|PowerWhip,KnockOff,CloseCombat,SwordsDance|Jolly|24,252,,,,232|||||,,,,,Dark]Tornadus-Therian||HeavyDutyBoots|Regenerator|Hurricane,HeatWave,KnockOff,NastyPlot|Timid|,,,252,4,252|||||,,,,,Flying","Tinkaton||MentalHerb|Pickpocket|StealthRock,ThunderWave,KnockOff,GigatonHammer|Careful|252,,4,,252,|||||,,,,,Flying]Garchomp||LoadedDice|RoughSkin|Earthquake,ScaleShot,IronHead,SwordsDance|Adamant|12,252,,,,244|||||,,,,,Fairy]Tornadus-Therian||ChartiBerry|Regenerator|Taunt,KnockOff,Hurricane,Uturn|Timid|252,,,,4,252|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,HornLeech,PlayRough|Jolly|,252,,,4,252|||||,,,,,Water]Samurott-Hisui||ChoiceScarf|Sharpness|AquaCutter,CeaselessEdge,SacredSword,Encore|Adamant|76,252,,,,180|||||,,,,,Ghost]Tera Captain|Bellibolt|HeavyDutyBoots|Static|Toxic,SlackOff,VoltSwitch,TeraBlast|Bold|248,,156,,60,44||,0,,,,|||,,,,,Fairy"], + ["Urshifu||ChoiceScarf|UnseenFist|Uturn,WickedBlow,IcePunch,CloseCombat|Adamant|104,176,128,,4,96|||||,,,,,Fighting]Latios||ChoiceSpecs|Levitate|Trick,IceBeam,LusterPurge,Surf|Timid|72,,,216,4,216||,0,,,,|||,,,,,Poison]Tera Captain|Metagross|Leftovers|ClearBody|Earthquake,HeavySlam,IcePunch,ThunderPunch|Adamant|248,132,32,,68,28|||||,,,,,Steel]Wigglytuff||AirBalloon|Frisk|Wish,DrainingKiss,Sing,Copycat|Bold|248,,252,8,,|||||,,,,,Grass]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,KnockOff,BleakwindStorm,BrickBreak|Quirky|224,36,,,,248|||||,,,,,Flying]Tera Captain|Blastoise|CovertCloak|Torrent|RapidSpin,FlipTurn,Surf,Yawn|Quirky|248,,96,44,120,|||||,,,,,Electric","Palafin||Leftovers|ZerotoHero|BulkUp,JetPunch,DrainPunch,ThroatChop|Jolly|,,76,,200,232|||||,,,,,Water]Garchomp||RockyHelmet|RoughSkin|Spikes,Earthquake,DracoMeteor,DragonTail|Naive|,16,24,252,,216|||||,,,,,Dragon]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,Uturn,ThunderPunch|Jolly|,212,56,,,240|||||,,,,,Grass]Tera Captain|Pecharunt|Leftovers|PoisonPuppeteer|Recover,TeraBlast,ShadowBall,PartingShot|Bold|248,,108,,152,||,0,,,,|||,,,,,Fairy]Tera Captain|Heatran|Leftovers|FlameBody|StealthRock,MagmaStorm,EarthPower,Protect|Timid|56,,,252,,200||,0,,,,|||,,,,,Water]Braviary-Hisui||HeavyDutyBoots|SheerForce|Roost,Uturn,Hurricane,ShadowBall|Mild|192,,,,252,64|||||,,,,,Psychic"], + ["Palafin||AssaultVest|ZerotoHero|WaveCrash,FlipTurn,IcePunch,DrainPunch|Jolly|88,168,,,,252|||||,,,,,Water]Tera Captain|Gholdengo|RedCard|GoodasGold|ShadowBall,DazzlingGleam,ThunderWave,Recover|Modest|112,,,252,,144||,0,,,,|||,,,,,Fairy]Tera Captain|EnamorusTherian|SitrusBerry|Overcoat|EarthPower,Moonblast,HealingWish,DrainingKiss|Bold|248,,200,44,,16||,0,,,,|||,,,,,Water]Vikavolt||WiseGlasses|Levitate|Agility,Thunderbolt,BugBuzz,ChargeBeam|Modest|,,,252,4,252||,0,,,,|||,,,,,Bug]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,StompingTantrum,PlayRough,WoodHammer|Jolly|80,252,,,,176|||||,,,,,Fire]Ting-Lu||Leftovers|VesselofRuin|Earthquake,Ruination,Spikes,BodyPress|Impish|232,8,252,,,16|||||,,,,,Dark","Urshifu||ChoiceBand|UnseenFist|Uturn,CloseCombat,WickedBlow,ThunderPunch|Adamant|208,252,,,4,44|||||,,,,,Fighting]Tera Captain|Blastoise|WhiteHerb|Torrent|DarkPulse,ShellSmash,IceBeam,Surf|Modest|180,,,252,,76||,0,,,,|||,,,,,Ice]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,BleakwindStorm,GrassKnot,FocusBlast|Timid|,,88,252,,168|||S||,,,,,Flying]Tera Captain|Metagross|ExpertBelt|ClearBody|BulletPunch,MeteorMash,IcePunch,KnockOff|Adamant|112,252,4,,,140|||S||,,,,,Dark]Entei||ExpertBelt|InnerFocus|StompingTantrum,SacredFire,Trailblaze,IronHead|Adamant|232,252,,,4,20|||S||,,,,,Fire]Toedscruel||FocusSash|MyceliumMight|LeafStorm,RapidSpin,ToxicSpikes,Hex|Timid|,,,252,4,252|||||,,,,,Ground"], + ["Dondozo||RockyHelmet|Unaware|WaveCrash,Curse,Yawn,Rest|Impish|252,4,252,,,|||||,,,,,Water]Ting-Lu||Leftovers|VesselofRuin|Ruination,Earthquake,Whirlwind,Spikes|Careful|252,4,,,252,|||||,,,,,Dark]Tera Captain|Gholdengo|Leftovers|GoodasGold|MakeItRain,TeraBlast,NastyPlot,Recover|Modest|104,,4,252,,148||,0,,,,|||,,,,,Grass]Tera Captain|Tsareena|HeavyDutyBoots|QueenlyMajesty|PowerWhip,PlayRough,HighJumpKick,RapidSpin|Adamant|96,252,,,,160|||||,,,,,Stellar]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,SludgeWave,KnockOff|Modest|52,,,252,,204|||||,,,,,Flying]Baxcalibur||LoadedDice|ThermalExchange|IcicleSpear,ScaleShot,Substitute,SwordsDance|Adamant|,252,20,,20,216|||||,,,,,Dragon","Manaphy||Leftovers|Hydration|TailGlow,AlluringVoice,GrassKnot,IceBeam|Timid|252,,,104,,152||,0,,,,|||,,,,,Water]Kommo-o||SitrusBerry|Soundproof|Taunt,ClangorousSoul,Boomburst,Flamethrower|Timid|,,4,252,,252||,0,,,,|||,,,,,Normal]Tera Captain|Cresselia|Leftovers|Levitate|Moonblast,StoredPower,CalmMind,Moonlight|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Weavile||HeavyDutyBoots|Pressure|KnockOff,IcicleSpear,SwordsDance,IceShard|Jolly|,252,,,4,252|||||,,,,,Dark]Orthworm||SitrusBerry|EarthEater|Spikes,BodyPress,StealthRock,ShedTail|Impish|252,,252,,4,||,0,,,,|||,,,,,Steel]Dachsbun||Leftovers|WellBakedBody|Wish,Yawn,BodyPress,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy"], + ["Darkrai||LifeOrb|BadDreams|NastyPlot,SludgeBomb,DarkPulse,IceBeam|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Landorus-Therian||RockyHelmet|Intimidate|StealthRock,Taunt,Uturn,Earthquake|Impish|248,,252,,,8|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|HornLeech,IvyCudgel,Uturn,Encore|Jolly|,252,,,4,252|||||,,,,,Water]Blastoise||WhiteHerb|Torrent|HydroPump,IceBeam,RapidSpin,ShellSmash|Timid|,,,252,4,252|||||,,,,,Ground]Archaludon||AssaultVest|Stamina|DracoMeteor,FlashCannon,BodyPress,ElectroShot|Modest|200,,,252,,56||,0,,,,|||,,,,,Steel]Clodsire||Leftovers|Unaware|Toxic,StealthRock,Recover,Earthquake|Careful|248,,8,,252,|||||,,,,,Flying","Tera Captain|Annihilape|ChoiceScarf|Defiant|CloseCombat,RageFist,IcePunch,Uturn|Adamant|112,236,,,,160|||S||,,,,,Stellar]Cyclizar||HeavyDutyBoots|Regenerator|DracoMeteor,RapidSpin,KnockOff,ShedTail|Timid|88,,252,,,168|||S||,,,,,Stellar]Pecharunt||CustapBerry|PoisonPuppeteer|NightShade,Toxic,DestinyBond,PartingShot|Bold|252,,16,,224,16||,0,,,,|||,,,,,Stellar]Skarmory||CustapBerry|Sturdy|BodyPress,Spikes,Whirlwind,Roost|Impish|252,,16,,240,||,0,,,,|S||,,,,,Stellar]Tera Captain|Mudsdale|Leftovers|Stamina|Earthquake,BodyPress,IronDefense,StealthRock|Impish|240,,136,,132,|||S||,,,,,Fighting]Palafin-Hero||Leftovers|ZerotoHero|JetPunch,DrainPunch,BulkUp,Taunt|Careful|240,,,,252,16|||S||,,,,,Stellar"], + ["Tera Captain|Excadrill|AirBalloon|SandRush|Earthquake,SwordsDance,TeraBlast,RapidSpin|Jolly|92,252,,,,164|||||,,,,,Ice]Hippowdon||SmoothRock|SandStream|Roar,SlackOff,Earthquake,StealthRock|Careful|252,,4,,252,|||||,,,,,Ground]Darkrai||ChoiceScarf|BadDreams|Trick,DarkPulse,SludgeBomb,IceBeam|Timid|48,,,252,,208||,0,,,,|||,,,,,Dark]Enamorus||Leftovers|Contrary|Superpower,PlayRough,ZenHeadbutt,BodySlam|Jolly|8,252,,,,248|||||,,,,,Fairy]Volcanion||HeavyDutyBoots|WaterAbsorb|SteamEruption,Earthquake,Flamethrower,Roar|Brave|4,252,,252,,|||||,,,,,Ground]Cinccino||LoadedDice|Technician|TidyUp,TailSlap,TripleAxel,BulletSeed|Jolly|80,252,,,,176|||||,,,,,Normal","Iron Valiant||ExpertBelt|QuarkDrive|Thunderbolt,VacuumWave,Moonblast,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tentacruel||ShucaBerry|RainDish|Toxic,RainDance,Surf,KnockOff|Calm|252,,252,,4,|||||,,,,,Water]Cinderace||HeavyDutyBoots|Libero|HighJumpKick,ZenHeadbutt,SuckerPunch,WillOWisp|Jolly|,252,,,4,252|||||,,,,,Fire]Landorus-Therian||RockyHelmet|Intimidate|StealthRock,Uturn,Earthquake,StoneEdge|Impish|248,,252,,8,|||||,,,,,Ground]Tera Captain|Manaphy|Leftovers|Hydration|TailGlow,Substitute,Psychic,Scald|Timid|96,,,252,,160||,0,,,,|||,,,,,Grass]Tera Captain|Mismagius|Leftovers|Levitate|WillOWisp,Hex,PainSplit,DestinyBond|Timid|136,,252,,,120||,0,,,,|||,,,,,Steel"], + ["Weezing-Galar||BlackSludge|Levitate|Toxic,ShadowBall,Taunt,PainSplit|Bold|144,,252,,112,||,0,,,,|||,,,,,Poison]Arcanine-Hisui||HeavyDutyBoots|RockHead|HeadSmash,FlareBlitz,MorningSun,StealthRock|Jolly|12,252,,,4,240|||||,,,,,Fire]Iron Treads||AssaultVest|QuarkDrive|RapidSpin,VoltSwitch,IceSpinner,Earthquake|Jolly|,204,,,112,192|||||,,,,,Ground]Tera Captain|Cresselia|Leftovers|Levitate|Moonlight,Psyshock,CalmMind,TeraBlast|Modest|172,,84,252,,||,0,,,,|S||,,,,,Poison]Tera Captain|Raikou|HeavyDutyBoots|Pressure|VoltSwitch,Scald,AuraSphere,Extrasensory|Modest|16,,,252,4,236||,0,,,,|||,,,,,Water]Palafin-Hero||ProtectivePads|ZerotoHero|JetPunch,FlipTurn,Boomburst,Surf|Naive|,16,,252,,240|||S||,,,,,Water","Tera Captain|Clodsire|Leftovers|WaterAbsorb|Earthquake,Recover,Haze,Toxic|Impish|252,4,252,,,|||||,,,,,Psychic]Blissey||HeavyDutyBoots|NaturalCure|SeismicToss,SoftBoiled,StealthRock,SkillSwap|Bold|252,,252,,4,||,0,,,,|||,,,,,Normal]Talonflame||HeavyDutyBoots|FlameBody|Flamethrower,Defog,WillOWisp,Roost|Timid|80,,184,,,168||,0,,,,|||,,,,,Fire]Pecharunt||BlackSludge|PoisonPuppeteer|NightShade,MeanLook,MalignantChain,Recover|Calm|252,,16,,232,8||,0,,,,|||,,,,,Poison]Landorus-Therian||ChoiceScarf|Intimidate|Earthquake,Uturn,Psychic,BodySlam|Naive|,252,,4,,252|||||,,,,,Ground]Clefable||HeavyDutyBoots|Unaware|AlluringVoice,Moonlight,CalmMind,StoredPower|Calm|252,,120,,136,||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|CalmMind,Thunderclap,DragonPulse,Thunderbolt|Timid|120,,,252,,136|||||,,,,,Water]Tinkaton||Leftovers|MoldBreaker|StealthRock,ThunderWave,PlayRough,KnockOff|Careful|252,,4,,252,|||||,,,,,Fairy]Dachsbun||Leftovers|WellBakedBody|BodyPress,Wish,Protect,Yawn|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Urshifu||ChoiceScarf|UnseenFist|WickedBlow,CloseCombat,Uturn,AerialAce|Adamant|,252,,,4,252|||||,,,,,Fighting]Araquanid||RockyHelmet|WaterBubble|Liquidation,LeechLife,Rest,SleepTalk|Impish|252,,188,,,68|||||,,,,,Water]Cinderace||HeavyDutyBoots|Blaze|PyroBall,CourtChange,WillOWisp,Uturn|Jolly|252,72,,,,184|||||,,,,,Fire","Tera Captain|MoltresGalar|SoftSand|Berserk|AirSlash,TeraBlast,NastyPlot,Agility|Modest|,,80,196,,232||,0,,,,|||,,,,,Ground]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,StompingTantrum,PlayRough,SwordsDance|Jolly|,252,,,96,160|||||,,,,,Rock]Palafin-Hero||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,FlipTurn,IcePunch|Jolly|,212,40,,24,232|||||,,,,,Water]Kilowattrel||ChoiceScarf|VoltAbsorb|Thunderbolt,Hurricane,VoltSwitch,Endeavor|Timid|,,60,240,,208||,0,,,,|||,,,,,Electric]Gouging Fire||BoosterEnergy|Protosynthesis|HeatCrash,DragonClaw,IronHead,DragonDance|Adamant|,244,136,,,128|||||,,,,,Fire]Decidueye-Hisui||RockyHelmet|Scrappy|AuraSphere,Roost,Uturn,Defog|Bold|248,,252,8,,|||||,,,,,Grass"], + ["Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|PowerWhip,KnockOff,BulkUp,Synthesis|Jolly|248,,,,148,112|||||,,,,,Electric]Iron Valiant||LifeOrb|QuarkDrive|Moonblast,ShadowBall,VacuumWave,CalmMind|Timid|80,,16,252,,160||,0,,,,|||,,,,,Fairy]Ursaluna-Bloodmoon||AssaultVest|MindsEye|BloodMoon,HyperVoice,EarthPower,VacuumWave|Modest|92,,,164,252,||,0,,,,|||,,,,,Ground]Rotom-Wash||RockyHelmet|Levitate|HydroPump,VoltSwitch,WillOWisp,PainSplit|Bold|248,,252,,,8||,0,,,,|||,,,,,Electric]Jirachi||ColburBerry|SereneGrace|DoomDesire,Uturn,LightScreen,StealthRock|Jolly|248,,,,108,152|||||,,,,,Steel]Abomasnow||HeavyDutyBoots|SnowWarning|Blizzard,GigaDrain,Earthquake,IceShard|Quiet|248,,8,252,,|||||,,,,,Grass","Great Tusk||BoosterEnergy|Protosynthesis|CloseCombat,HeadlongRush,RockSlide,RapidSpin|Adamant|64,252,,,,192|||||,,,,,Ground]Greninja-Bond||ChoiceSpecs|BattleBond|Uturn,DarkPulse,Surf,WaterShuriken|Timid|48,,,252,,208|||||,,,,,Water]Tera Captain|RagingBolt|MentalHerb|Protosynthesis|DragonPulse,Thunderbolt,Thunderclap,CalmMind|Modest|104,,,252,,152||,20,,,,|||,,,,,Dragon]Uxie||ColburBerry|Levitate|Uturn,Psychic,StealthRock,ThunderWave|Calm|248,,168,,92,|||||,,,,,Psychic]Klefki||LightClay|Prankster|DazzlingGleam,LightScreen,Reflect,Spikes|Calm|248,,8,,252,||,0,,,,|||,,,,,Steel]Brambleghast||ExpertBelt|WindRider|Poltergeist,PowerWhip,RapidSpin,SkitterSmack|Adamant|32,252,,,,224|||||,,,,,Grass"], + ["Chi-Yu||ChoiceScarf|BeadsofRuin|HeatWave,DarkPulse,Psychic,Ruination|Modest|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|LandorusTherian|RockyHelmet|Intimidate|Uturn,StealthRock,StoneEdge,Earthquake|Jolly|,252,,,4,252|||S||,,,,,Fairy]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,BleakwindStorm,SludgeWave,Tailwind|Timid|,,,252,4,252|||S||,,,,,Flying]Dunsparce||Eviolite|SereneGrace|Coil,BodySlam,Earthquake,PoisonJab|Adamant|236,192,40,,40,|||||,,,,,Normal]Slowbro||Leftovers|Regenerator|IceBeam,Scald,GrassKnot,Flamethrower|Modest|252,,,252,4,||,0,,,,|||,,,,,Water]Tera Captain|Tinkaton|ExpertBelt|MoldBreaker|GigatonHammer,KnockOff,FakeOut,BrickBreak|Jolly|,252,,,4,252|||||,,,,,Dragon","Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Glare,Substitute|Timid|104,1,,252,,151||,0,,,,|||,,,,,Water]Excadrill||AirBalloon|MoldBreaker|Earthquake,RockSlide,SwordsDance,RapidSpin|Jolly|6,252,,,,250|||||,,,,,Ground]Iron Hands||AssaultVest|QuarkDrive|ThunderPunch,IcePunch,DrainPunch,Earthquake|Brave|4,132,208,,164,||,,,,,0|||,,,,,Fighting]Tera Captain|Cinccino|FocusSash|SkillLink|RockBlast,BulletSeed,TidyUp,IceSpinner|Jolly|4,252,,,,224|||||,,,,,Rock]Hatterene||LaggingTail|MagicBounce|Trick,DazzlingGleam,ShadowBall,Nuzzle||252,,,4,252,|||||,,,,,Psychic]Hippowdon||Leftovers|SandStream|Earthquake,StoneEdge,IceFang,SlackOff||252,,252,,4,|||||,,,,,Ground"], + ["Darkrai||RoseliBerry|BadDreams|DarkPulse,WillOWisp,SludgeBomb,FocusBlast|Timid|80,,,252,,176||,0,,,,|||,,,,,Dark]Heatran||AssaultVest|FlashFire|FlashCannon,StealthRock,ScorchingSands,FireBlast|Bold|,,224,252,,32||,0,,,,|||,,,,,Fire]Tera Captain|Terrakion|ShucaBerry|Justified|SacredSword,RockSlide,IronHead,SwordsDance|Careful|,252,,,124,132|||||,,,,,Steel]Walking Wake||ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,FlipTurn,DracoMeteor|Timid|,,,180,144,184|||||,,,,,Water]Gliscor||ToxicOrb|PoisonHeal|Facade,Earthquake,SwordsDance,BrickBreak|Careful|244,,,,28,236|||||,,,,,Ground]Tera Captain|Shaymin|HeatRock|NaturalCure|SunnyDay,SeedFlare,HealingWish,Synthesis|Modest|,,96,,212,200||,0,,,,|||,,,,,Ground","Tera Captain|Cinccino|PowerHerb|SkillLink|TripleAxel,Uturn,TailSlap,Dig|Jolly|,252,,,48,208|||||,,,,,Fairy]Clefable||LifeOrb|MagicGuard|IceBeam,Moonlight,FocusBlast,HealingWish|Modest|228,,,252,28,||,0,,,,|||,,,,,Fairy]Mamoswine||AssaultVest|ThickFat|IceShard,Earthquake,Facade,IcicleCrash|Jolly|208,220,,,,80|||||,,,,,Ice]Dondozo||RockyHelmet|Unaware|Yawn,Liquidation,SleepTalk,Rest|Impish|248,8,252,,,|||||,,,,,Water]Tera Captain|Serperior|Leftovers|Contrary|LeechSeed,Substitute,Glare,LeafStorm|Timid|240,,,,40,228||,0,,,,|||,,,,,Grass]Zapdos||HeavyDutyBoots|Static|Roost,Uturn,Hurricane,Discharge|Timid|,,,252,4,252|||||,,,,,Electric"], + ["Rotom-Heat||ChoiceScarf|Levitate|Trick,VoltSwitch,Discharge,Overheat|Timid|152,,,252,4,100||,0,,,,|||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,Hurricane,HeatWave,SludgeBomb|Timid|248,,,20,,240||,0,,,,|||,,,,,Fire]Meowscarada||ChoiceBand|Protean|Uturn,FlowerTrick,TripleAxel,KnockOff|Jolly|32,252,,,,224|||||,,,,,Ghost]Great Tusk||AssaultVest|Protosynthesis|RapidSpin,CloseCombat,Earthquake,Megahorn|Jolly|252,,,,164,92|||||,,,,,Fire]Tera Captain|Clefable|HeavyDutyBoots|Unaware|Moonlight,KnockOff,StealthRock,Encore|Impish|252,4,252,,,|||||,,,,,Steel]Tera Captain|OricorioPomPom|HeavyDutyBoots|Dancer|Substitute,QuiverDance,Roost,RevelationDance|Timid|252,,144,,,112||,0,,,,|||,,,,,Flying","Darkrai||ChoiceSpecs|BadDreams|DarkPulse,FocusBlast,IceBeam,SludgeBomb|Timid|16,,,252,,240||,0,,,,|||,,,,,Dark]Cinderace||ChoiceBand|Libero|PyroBall,HighJumpKick,Uturn,CourtChange|Adamant|96,252,,,,160|||||,,,,,Fire]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,Uturn,Taunt|Adamant|24,252,,,,232|||||,,,,,Water]Tera Captain|Comfey|Leftovers|Triage|DrainingKiss,WorrySeed,CalmMind,Synthesis|Modest|8,,252,248,,||,0,,,,|||,,,,,Fairy]Gliscor||ToxicOrb|PoisonHeal|KnockOff,Toxic,Substitute,Protect|Impish|248,,136,,124,|||||,,,,,Ground]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,PowerGem,Trick|Modest|4,,52,252,,200||,0,,,,|||,,,,,Steel"], + ["Darkrai||LifeOrb|BadDreams|DarkPulse,SludgeBomb,FocusBlast,Hypnosis|Timid|48,,,252,,208||,0,,,,|||,,,,,Dark]Forretress||RedCard|Sturdy|GyroBall,RapidSpin,ThunderWave,PainSplit|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Bug]Slowking-Galar||HeavyDutyBoots|Regenerator|SludgeBomb,FireBlast,SlackOff,ChillyReception|Calm|252,,,4,252,||,0,,,,29|||,,,,,Poison]Tera Captain|UrshifuRapidStrike|PunchingGlove|UnseenFist|SurgingStrikes,IcePunch,ThunderPunch,SwordsDance|Jolly|56,252,,,,200|||||,,,,,Steel]Sandy Shocks||BoosterEnergy|Protosynthesis|StealthRock,Thunderbolt,EarthPower,Spikes|Timid|184,,,72,,252||,0,,,,|||,,,,,Electric]Dragonite||HeavyDutyBoots|Multiscale|DragonClaw,Earthquake,ThunderPunch,DragonDance|Adamant|40,252,,,,216|||||,,,,,Dragon","Tera Captain|RotomHeat|ChoiceScarf|Levitate|WillOWisp,VoltSwitch,Overheat,Trick|Timid|252,,,64,,192||,0,,,,|||,,,,,Dragon]Slowking-Galar||HeavyDutyBoots|Regenerator|ChillyReception,ThunderWave,Psychic,Flamethrower|Relaxed|252,,252,,4,||,0,,,,0|||,,,,,Poison]Roaring Moon||BoosterEnergy|Protosynthesis|KnockOff,DragonDance,Acrobatics,FireFang|Adamant|24,252,,,,232|||||,,,,,Dragon]Primarina||KebiaBerry|LiquidVoice|HydroPump,Moonblast,PsychicNoise,FlipTurn|Bold|252,,252,,4,|||||,,,,,Water]Tera Captain|Annihilape|AssaultVest|Defiant|DrainPunch,FirePunch,RageFist,IcePunch|Adamant|252,244,,,,12|||||,,,,,Fighting]Iron Treads||HeavyDutyBoots|QuarkDrive|StealthRock,RapidSpin,Earthquake,VoltSwitch|Jolly|252,40,,,,216|||||,,,,,Ground"], + ["Palafin||AssaultVest|ZerotoHero|JetPunch,ZenHeadbutt,WaveCrash,CloseCombat|Adamant|16,252,,,,240|||||,,,,,Water]Meowscarada||ChoiceScarf|Protean|Uturn,KnockOff,FlowerTrick,SuckerPunch|Jolly|104,252,,,,152|||||,,,,,Grass]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|TeraBlast,SludgeWave,FieryDance,LightScreen|Timid|120,,,132,4,252||,0,,,,|||,,,,,Ground]Dragonite||HeavyDutyBoots|Multiscale|DragonDance,Earthquake,ExtremeSpeed,AerialAce|Adamant|,252,44,,,212|||||,,,,,Dragon]Orthworm||SitrusBerry|EarthEater|ShedTail,StealthRock,BodyPress,Spikes|Bold|248,,252,,8,||,0,,,,|||,,,,,Steel]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,RapidSpin,CalmMind,EarthPower|Modest|,,4,252,,252|||||,,,,,Stellar","Thwackey||Eviolite|GrassySurge|KnockOff,Uturn,FakeOut,WoodHammer|Impish|,252,252,,4,|||||,,,,,Grass]Sneasler||GrassySeed|Unburden|CloseCombat,DireClaw,SwordsDance,Uturn|Adamant|,252,,,4,252|||||,,,,,Dark]Clodsire||Leftovers|WaterAbsorb|StealthRock,Recover,Earthquake,Toxic|Careful|252,4,,,252,|||||,,,,,Poison]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,WoodHammer,SpikyShield,Synthesis|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Espathra|Leftovers|SpeedBoost|TeraBlast,Uturn,Protect,LuminaCrash|Modest|,,,252,4,252|||||,,,,,Ice]Chi-Yu||FocusSash|BeadsofRuin|Overheat,DarkPulse,Hex,WillOWisp|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark"], + ["Garchomp||RockyHelmet|RoughSkin|SwordsDance,Earthquake,ScaleShot,StealthRock|Impish|184,68,248,,,8|||||,,,,,Dragon]Urshifu||PunchingGlove|UnseenFist|WickedBlow,SuckerPunch,CloseCombat,Uturn|Jolly|,252,,,4,252|||||,,,,,Fighting]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,PainSplit,WillOWisp|Bold|148,,236,48,76,||,0,,,,|||,,,,,Electric]Tera Captain|Revavroom|LifeOrb|Filter|ShiftGear,HighHorsepower,IronHead,TeraBlast|Adamant|,252,16,,,240|||||,,,,,Water]Sylveon||Leftovers|Pixilate|Wish,Protect,HyperVoice,Yawn|Calm|252,,,4,252,||,0,,,,|||,,,,,Fairy]Tsareena||RockyHelmet|QueenlyMajesty|RapidSpin,PowerWhip,HighJumpKick,KnockOff|Adamant|48,252,208,,,|||||,,,,,Grass","Pawmot||AirBalloon|VoltAbsorb|RevivalBlessing,PlayRough,DoubleShock,IcePunch|Jolly|148,108,,,,252|||||,,,,,Electric]Tera Captain|Basculegion|FocusSash|Adaptability|LastRespects,AquaJet,Liquidation,TeraBlast|Lonely|252,252,,4,,|||||,,,,,Ghost]Cinccino||LoadedDice|Technician|BulletSeed,RockBlast,TripleAxel,TailSlap|Jolly|,252,,,4,252|||||,,,,,Normal]Chi-Yu||ChoiceScarf|BeadsofRuin|Flamethrower,DarkPulse,Ruination,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tyranitar||AssaultVest|SandStream|BrickBreak,Earthquake,Avalanche,DragonClaw|Adamant|252,252,,,4,|||||,,,,,Rock]Tera Captain|GoodraHisui|Leftovers|Gooey|AcidArmor,Substitute,DragonPulse,FlashCannon|Calm|248,,,8,252,||,0,,,,|||,,,,,Steel"], + ["Gouging Fire||HabanBerry|Protosynthesis|DragonDance,Earthquake,DragonClaw,HeatCrash|Jolly|,168,,,88,252|||||,,,,,Fire]Torkoal||HeatRock|Drought|LavaPlume,StealthRock,RapidSpin,Yawn|Calm|248,,8,60,192,|||||,,,,,Fire]Hatterene||EjectButton|MagicBounce|DazzlingGleam,Psychic,MysticalFire,HealingWish|Bold|248,,208,,,52||,0,,,,|||,,,,,Psychic]Tera Captain|Venusaur|LifeOrb|Chlorophyll|WeatherBall,Growth,GigaDrain,SludgeBomb|Modest|32,,,252,8,216||,0,,,,|||,,,,,Grass]Ribombee||HeavyDutyBoots|ShieldDust|BugBuzz,Moonblast,SunnyDay,Uturn|Timid|,,92,248,,168|||||,,,,,Bug]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|DracoMeteor,HydroSteam,FlipTurn,TeraBlast|Timid|,,,252,56,200|||||,,,,,Electric","Tera Captain|Serperior|RindoBerry|Contrary|LeafStorm,TeraBlast,DragonPulse,Substitute|Timid|4,,,252,,252||,0,,,,|||,,,,,Rock]Sylveon||Leftovers|Pixilate|Protect,Wish,Yawn,HyperVoice|Calm|252,,,4,252,||,0,,,,|||,,,,,Fairy]Tera Captain|IronThorns|SitrusBerry|QuarkDrive|TeraBlast,Earthquake,DragonDance,SupercellSlam|Jolly|,252,,,4,252|||||,,,,,Flying]Garchomp||HabanBerry|RoughSkin|DragonClaw,IronHead,StealthRock,Earthquake|Jolly|,252,,,176,80|||||,,,,,Dragon]Toxapex||ShucaBerry|Regenerator|Infestation,Haze,SludgeBomb,Recover|Bold|248,,152,8,100,||,0,,,,|||,,,,,Poison]Rotom-Heat||SitrusBerry|Levitate|Overheat,VoltSwitch,ThunderWave,NastyPlot|Calm|176,,,80,252,||,0,,,,|||,,,,,Electric"], + ["Baxcalibur||NeverMeltIce|ThermalExchange|SwordsDance,IceShard,Earthquake,IcicleCrash|Adamant|240,252,,,,16|||||,,,,,Bug]Ribombee||RockyHelmet|ShieldDust|Uturn,DrainingKiss,PsychicNoise,Thief|Timid|248,,12,,,248|||||,,,,,Bug]Samurott-Hisui||ChoiceBand|Sharpness|CeaselessEdge,KnockOff,AquaCutter,AquaJet|Adamant|248,252,,,,8|||||,,,,,Bug]Tera Captain|Gliscor|SitrusBerry|PoisonHeal|Agility,SwordsDance,Acrobatics,Earthquake|Adamant|120,252,4,,,132|||||,,,,,Fairy]Skeledirge||HeavyDutyBoots|Unaware|SlackOff,NightShade,ShadowBall,EarthPower|Calm|248,,,,252,||,0,,,,|||,,,,,Bug]Komala||AssaultVest|Comatose|RapidSpin,KnockOff,Uturn,SuckerPunch|Careful|240,,,,252,16|||||,,,,,Bug","Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,KnockOff,Uturn,HeatWave|Timid|248,,,8,,252|||||,,,,,Flying]Meowscarada||ChoiceBand|Protean|KnockOff,FlowerTrick,Uturn,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Grass]Clodsire||Leftovers|WaterAbsorb|ToxicSpikes,Earthquake,Recover,Toxic|Impish|252,,252,,4,|||||,,,,,Poison]Hatterene||Leftovers|MagicBounce|Nuzzle,CalmMind,StoredPower,DrainingKiss|Bold|252,,252,,4,|||||,,,,,Psychic]Conkeldurr||Leftovers|IronFist|DrainPunch,Defog,IcePunch,MachPunch|Adamant|200,252,,,,56|||||,,,,,Fighting]Tera Captain|Heatran|Leftovers|FlashFire|StealthRock,TeraBlast,MagmaStorm,EarthPower|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|Trick,NastyPlot,MakeItRain,ShadowBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Iron Valiant||BoosterEnergy|QuarkDrive|IcyWind,ShadowBall,Moonblast,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Manaphy||Leftovers|Hydration|TailGlow,Surf,IceBeam,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Krookodile||FocusSash|Intimidate|Counter,Earthquake,StealthRock,KnockOff|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|Entei|Leftovers|InnerFocus|ExtremeSpeed,SacredFire,StompingTantrum,WillOWisp|Adamant|252,252,,,4,|||||,,,,,Ground]Dragonite||ChoiceSpecs|Multiscale|Thunderbolt,IceBeam,Flamethrower,DracoMeteor|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon","Zapdos||Leftovers|Static|Hurricane,VoltSwitch,Roost,Uturn|Modest|108,,100,132,80,88|||||,,,,,Electric]Tera Captain|LandorusTherian|ChoiceBand|Intimidate|StompingTantrum,TeraBlast,Uturn,StoneEdge|Jolly|76,56,44,,80,252|||||,,,,,Flying]Weavile||NeverMeltIce|Pickpocket|TripleAxel,KnockOff,Trailblaze,SwordsDance|Adamant|104,44,76,,92,192|||||,,,,,Dark]Toxapex||BlackSludge|Regenerator|Surf,ToxicSpikes,Recover,Haze|Bold|252,,148,,108,||,0,,,,|||,,,,,Poison]Gurdurr||Eviolite|IronFist|Defog,DrainPunch,FirePunch,ThunderPunch|Careful|180,80,84,,164,|||||,,,,,Fighting]Rotom-Mow||ChoiceScarf|Levitate|Trick,VoltSwitch,LeafStorm,Thunderbolt|Modest|188,,64,32,100,124||,0,,,,|||,,,,,Electric"], + ["Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,Taunt,PartingShot|Bold|252,,252,,,||,0,,,,|||,,,,,Dark]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,EnergyBall,SludgeWave,Agility|Modest|,,,252,4,252||,0,,,,|||,,,,,Grass]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,PlayRough,Trailblaze|Jolly|,252,,,4,252|||||,,,,,Water]Mamoswine||LoadedDice|ThickFat|IcicleSpear,IceShard,StealthRock,Earthquake|Adamant|252,252,,,4,|||||,,,,,Ice]Kingambit||ChopleBerry|SupremeOverlord|SuckerPunch,SwordsDance,ZenHeadbutt,KowtowCleave|Adamant|,252,252,,4,|||||,,,,,Dark]Cyclizar||SitrusBerry|Regenerator|ShedTail,RapidSpin,DracoMeteor,Uturn|Timid|4,,,252,,252|||||,,,,,Dragon","Blaziken||LumBerry|SpeedBoost|FlareBlitz,BrickBreak,Protect,SwordsDance|Adamant|,252,,,4,252|||||,,,,,Fire]Scream Tail||LightClay|Protosynthesis|Wish,Psyshock,LightScreen,Reflect|Timid|252,,,4,,252||,0,,,,|||,,,,,Fairy]Hydrapple||Leftovers|Regenerator|BodyPress,FickleBeam,GigaDrain,Recover|Bold|248,,252,8,,||,0,,,,|||,,,,,Grass]Excadrill||ChoiceScarf|MoldBreaker|IronHead,RapidSpin,Earthquake,ThroatChop|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|UrshifuRapidStrike|ChoiceBand|UnseenFist|AquaJet,CloseCombat,SurgingStrikes,Uturn|Jolly|,252,,,4,252|||||,,,,,Fire]Minior||WhiteHerb|ShieldsDown|Acrobatics,ShellSmash,Earthquake,RockSlide|Adamant|,252,,,4,252|||S||,,,,,Ground"], + ["Iron Valiant||LifeOrb|QuarkDrive|Moonblast,CloseCombat,Psyshock,ShadowBall|Naive|,,8,252,,248|||||,,,,,Fairy]Garchomp||LoadedDice|RoughSkin|SwordsDance,Earthquake,ScaleShot,IronHead|Jolly|,252,,,20,236|||||,,,,,Dragon]Tornadus-Therian||AssaultVest|Regenerator|KnockOff,Uturn,FocusBlast,BleakwindStorm|Timid|248,,,52,,208|||||,,,,,Flying]Tera Captain|Empoleon|HeavyDutyBoots|Torrent|StealthRock,Roost,KnockOff,Roar|Impish|252,,252,,4,|||||,,,,,Dragon]Tera Captain|Mew|SitrusBerry|Synchronize|NastyPlot,Psyshock,ShadowBall,AuraSphere|Timid|,,4,252,,252||,0,,,,|||,,,,,Dragon]Brambleghast||ColburBerry|Infiltrator|RapidSpin,Spikes,Poltergeist,PowerWhip|Impish|252,,240,,,16|||||,,,,,Grass","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,HornLeech,KnockOff|Jolly|,252,,,4,252|||||,,,,,Water]Slowbro||HeavyDutyBoots|Regenerator|IceBeam,SlackOff,Scald,BodyPress|Bold|252,,252,4,,||,0,,,,|S||,,,,,Water]Fezandipiti||HeavyDutyBoots|ToxicChain|Toxic,Uturn,PlayRough,Roost|Careful|252,4,120,,132,|||||,,,,,Poison]Uxie||ColburBerry|Levitate|PainSplit,ThunderWave,StealthRock,Psychic|Calm|252,,100,4,152,||,0,,,,|S||,,,,,Psychic]Ting-Lu||Leftovers|VesselofRuin|Spikes,Earthquake,Whirlwind,ThroatChop|Careful|252,,4,,252,|||||,,,,,Dark]Tsareena||HeavyDutyBoots|QueenlyMajesty|PowerWhip,Uturn,RapidSpin,Synthesis|Careful|252,,,,252,|||||,,,,,Grass"], + ["Palafin||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,CloseCombat,Acrobatics|Adamant|224,252,,,,32|||||,,,,,Water]Iron Moth||HeavyDutyBoots|QuarkDrive|Uturn,Flamethrower,MorningSun,Toxic|Calm|248,,,,72,188|||||,,,,,Fire]Tera Captain|Annihilape|Leftovers|InnerFocus|Substitute,DrainPunch,RageFist,BulkUp|Jolly|248,,,,20,240|||||,,,,,Steel]Iron Treads||AssaultVest|QuarkDrive|KnockOff,VoltSwitch,Earthquake,RapidSpin|Adamant|248,40,,,,220|||||,,,,,Ground]Meowscarada||ChoiceScarf|Protean|TripleAxel,FlowerTrick,SuckerPunch,Uturn|Jolly|44,252,,,,212|||||,,,,,Grass]Tera Captain|OricorioPomPom|RockyHelmet|Dancer|Uturn,Roost,RevelationDance,IcyWind|Bold|248,,252,,8,|||||,,,,,Water","Latios||ChoiceSpecs|Levitate|DracoMeteor,FlipTurn,AuraSphere,Trick|Timid|,,,252,4,252|||||,,,,,Dragon]Fezandipiti||RockyHelmet|ToxicChain|Uturn,Roost,HeatWave,Moonblast|Timid|252,,72,,,184|||||,,,,,Poison]Terapagos||HeavyDutyBoots|TeraShift|DazzlingGleam,Flamethrower,TeraStarstorm,RapidSpin|Modest|252,,,252,4,|||||,,,,,Stellar]Tera Captain|Milotic|Leftovers|MarvelScale|DragonTail,Coil,Recover,Scald|Jolly|252,,128,,,128|||S||,,,,,Dragon]Tyranitar||Leftovers|SandStream|ThunderWave,FireBlast,KnockOff,StealthRock|Quiet|252,,,128,128,|||||,,,,,Rock]Tera Captain|Excadrill|SoftSand|SandRush|XScissor,Earthquake,SwordsDance,TeraBlast|Jolly|64,252,,,,192|||||,,,,,Water"], + ["Masquerain||FocusSash|Intimidate|StickyWeb,Hurricane,Uturn,StunSpore|Timid|248,,,8,,252|||||,,,,,Bug]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,Substitute,Glare,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar]Iron Boulder||BoosterEnergy|QuarkDrive|ZenHeadbutt,CloseCombat,MightyCleave,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Rock]Chi-Yu||ChoiceSpecs|BeadsofRuin|FireBlast,Overheat,Psychic,DarkPulse|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tentacruel||BlackSludge|ClearBody|FlipTurn,KnockOff,Haze,Protect|Jolly|,252,,,4,252|||||,,,,,Water]Skarmory||Leftovers|Sturdy|StealthRock,Whirlwind,BodyPress,Roost|Bold|252,,232,,,24||,0,,,,|||,,,,,Steel","Milotic||FlameOrb|MarvelScale|Scald,Recover,FlipTurn,Haze|Bold|252,,252,,4,|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,Uturn,BleakwindStorm,HeatWave|Timid|252,,,28,52,176|||||,,,,,Flying]Infernape||FocusSash|IronFist|MachPunch,FakeOut,StealthRock,Overheat|Hasty|252,24,,,40,192|||||,,,,,Fire]Gengar||ChoiceSpecs|CursedBody|ShadowBall,SludgeWave,Thunderbolt,EnergyBall|Timid|80,,,252,,176||,0,,,,|||,,,,,Ghost]Tera Captain|Torterra|LoadedDice|ShellArmor|BulletSeed,RockBlast,HeadlongRush,ShellSmash|Jolly|,252,,,4,252|||||,,,,,Rock]Baxcalibur||LoadedDice|ThermalExchange|IcicleSpear,GlaiveRush,DragonDance,Earthquake|Adamant|,252,,,4,252|||||,,,,,Dragon"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Trailblaze,IvyCudgel,KnockOff,SwordsDance|Adamant|40,252,,,,216|||||,,,,,Water]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,ThunderWave,Recover|Bold|252,,196,,,60||,0,,,,|||,,,,,Steel]Garchomp||YacheBerry|RoughSkin|Spikes,SwordsDance,Earthquake,FireFang|Jolly|,252,,,4,252|||||,,,,,Dragon]Tera Captain|Lucario|LifeOrb|InnerFocus|VacuumWave,FlashCannon,AuraSphere,DragonPulse|Modest|,,,252,4,252||,0,,,,|||,,,,,Fighting]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,FocusBlast,HeatWave,Uturn|Timid|,,,252,4,252|||||,,,,,Flying]Tentacruel||ShucaBerry|ClearBody|ChillingWater,KnockOff,RapidSpin,FlipTurn|Bold|252,,252,4,,|||||,,,,,Water","Tera Captain|Excadrill|LifeOrb|SandRush|Earthquake,SwordsDance,IronHead,TeraBlast|Adamant|72,252,4,,,180|||||,,,,,Electric]Tera Captain|RotomMow|Leftovers|Levitate|LeafStorm,VoltSwitch,WillOWisp,Reflect|Modest|232,,,252,4,20||,0,,,,|||,,,,,Steel]Tyranitar||SmoothRock|SandStream|KnockOff,StealthRock,Earthquake,IcePunch|Adamant|252,4,248,,4,|||||,,,,,Rock]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,DragonClaw,HeatCrash,BurningBulwark|Jolly|,252,48,,4,204|||||,,,,,Fire]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,RapidSpin,KnockOff,DragonClaw|Jolly|240,,,,16,252|||||,,,,,Dragon]Palafin||RindoBerry|ZerotoHero|CloseCombat,WaveCrash,ZenHeadbutt,Agility|Adamant|24,252,,,,232|||||,,,,,Water"], + ["Garchomp||LoadedDice|RoughSkin|ScaleShot,Earthquake,SwordsDance,StealthRock|Jolly|,252,,,4,252|||||,,,,,Dragon]Palafin-Hero||Leftovers|ZerotoHero|BulkUp,Taunt,DrainPunch,JetPunch|Jolly|76,56,,,200,176|||||,,,,,Water]Tornadus-Therian||RockyHelmet|Regenerator|BleakwindStorm,Taunt,Uturn,KnockOff|Timid|144,,8,252,,104|||||,,,,,Flying]Gholdengo||ColburBerry|GoodasGold|MakeItRain,ShadowBall,Recover,ThunderWave|Modest|252,,28,212,,16||,0,,,,|||,,,,,Steel]Diancie||AirBalloon|ClearBody|Spikes,Moonblast,DiamondStorm,Encore|Relaxed|252,,40,216,,|||||,,,,,Rock]Tera Captain|Gallade|LifeOrb|Sharpness|Agility,SacredSword,PsychoCut,NightSlash|Adamant|120,252,,,,136|||||,,,,,Dark","Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,TripleAxel,Uturn|Adamant|,252,,,4,252|||||,,,,,Grass]Tera Captain|Annihilape|Leftovers|Defiant|RageFist,BulkUp,TeraBlast,Uturn|Adamant|252,252,,,4,|||||,,,,,Fire]Slowking-Galar||BlackSludge|Regenerator|ChillyReception,Whirlpool,ShadowBall,Amnesia|Modest|252,,,56,200,||,0,,,,|||,,,,,Poison]Sandslash-Alola||FocusSash|SlushRush|TripleAxel,IronHead,IceShard,RapidSpin|Adamant|,252,,,4,252|||||,,,,,Ice]Garchomp||FocusSash|RoughSkin|Earthquake,DracoMeteor,FireBlast,StealthRock|Naive|,4,,252,,252|||||,,,,,Dragon]Tera Captain|Moltres|PowerHerb|FlameBody|FireBlast,SolarBeam,WillOWisp,Roost|Modest|248,,,252,8,||,0,,,,|||,,,,,Fire"], + ["Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|CalmMind,DragonPulse,Thunderclap,SolarBeam|Modest|240,,,252,,16||,20,,,,|||,,,,,Grass]Palafin-Hero||ChoiceSpecs|ZerotoHero|HydroPump,Boomburst,FlipTurn,JetPunch|Mild|,120,,252,,136|||||,,,,,Water]Scream Tail||HeavyDutyBoots|Protosynthesis|StealthRock,DazzlingGleam,Wish,ThunderWave|Timid|164,,16,28,252,48||,0,,,,|||,,,,,Fairy]Donphan||AssaultVest|Sturdy|Earthquake,KnockOff,RapidSpin,IceShard|Adamant|252,148,88,,,20|||||,,,,,Ground]Meowscarada||ChoiceScarf|Protean|KnockOff,FlowerTrick,Uturn,TripleAxel|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Revavroom|ShucaBerry|Filter|ShiftGear,IronHead,HighHorsepower,TemperFlare|Adamant|40,252,,,,216|||||,,,,,Fire","Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|DragonPulse,HydroSteam,TeraBlast,Flamethrower|Modest|40,,,252,,216||,0,,,,|||,,,,,Electric]Torkoal||HeatRock|Drought|LavaPlume,RapidSpin,StealthRock,Yawn|Bold|248,,252,8,,|||||,,,,,Flying]Hoopa-Unbound||AssaultVest|Magician|KnockOff,IcePunch,DrainPunch,GunkShot|Adamant|248,48,,,212,|||||,,,,,Poison]Enamorus||ChoiceScarf|Contrary|Moonblast,EarthPower,MysticalFire,HealingWish|Modest|,,,252,4,252||,0,,,,|S||,,,,,Fairy]Arbok||RockyHelmet|Intimidate|Glare,PainSplit,PoisonJab,KnockOff|Impish|248,8,252,,,|||||,,,,,Poison]Ting-Lu||Leftovers|VesselofRuin|Spikes,Earthquake,Whirlwind,Ruination|Careful|248,,8,,252,|||||,,,,,Poison"], + ["Iron Boulder||ChoiceBand|QuarkDrive|MightyCleave,CloseCombat,ZenHeadbutt,QuickAttack|Jolly|,252,,,4,252|||||,,,,,Rock]Iron Bundle||ChoiceScarf|QuarkDrive|HydroPump,FreezeDry,IceBeam,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Clodsire||HeavyDutyBoots|WaterAbsorb|PoisonJab,Earthquake,Recover,StealthRock|Careful|248,8,,,252,|||||,,,,,Poison]Gliscor||ToxicOrb|PoisonHeal|Earthquake,KnockOff,Toxic,Protect|Impish|252,,184,,,72|||||,,,,,Ground]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,ScorchingSands,ShadowBall,SlackOff|Bold|248,,188,,72,||,0,,,,|||,,,,,Dark]Skarmory||RockyHelmet|Sturdy|BodyPress,SecretPower,Whirlwind,Roost|Impish|252,,160,,,96|||||,,,,,Steel","Meowscarada||YacheBerry|Protean|KnockOff,FlowerTrick,TripleAxel,SuckerPunch|Adamant|68,252,,,,188|||||,,,,,Grass]Gengar||ChoiceScarf|CursedBody|ShadowBall,SludgeBomb,Hex,Thunderbolt|Timid|80,,,252,,176||,0,,,,|||,,,,,Ghost]Landorus-Therian||SoftSand|Intimidate|SwordsDance,Earthquake,Substitute,Gravity|Adamant|4,252,,,,252|||||,,,,,Ground]Tera Captain|Quaquaval|AssaultVest|Moxie|AquaStep,CloseCombat,RapidSpin,IceSpinner|Adamant|252,148,,,108,|||||,,,,,Water]Heatran||AirBalloon|FlashFire|StealthRock,MagmaStorm,WillOWisp,EarthPower|Calm|252,,,32,224,||,0,,,,|||,,,,,Fire]Tera Captain|Comfey|Leftovers|Triage|Encore,DrainingKiss,GigaDrain,Synthesis|Bold|252,,56,200,,||,0,,,,|||,,,,,Grass"], + ["Chi-Yu||ChoiceSpecs|BeadsofRuin|Flamethrower,Overheat,DarkPulse,Psychic|Timid|,,,252,24,232||,0,,,,|||,,,,,Dark]Torkoal||HeatRock|Drought|StealthRock,RapidSpin,Yawn,LavaPlume|Relaxed|248,,252,,8,||,,,,,0|||,,,,,Fire]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,FlipTurn|Timid|12,,,244,,252|||||,,,,,Water]Tera Captain|Venusaur|RockyHelmet|Chlorophyll|GigaDrain,Synthesis,KnockOff,SunnyDay|Bold|248,,252,,8,|||||,,,,,Fairy]Slither Wing||Leftovers|Protosynthesis|FirstImpression,MorningSun,CloseCombat,Uturn|Impish|248,,180,,80,|||||,,,,,Bug]Cryogonal||HeavyDutyBoots|Levitate|FreezeDry,RapidSpin,Reflect,LightScreen|Timid|248,,,,68,192|||||,,,,,Ice","Darkrai||LifeOrb|BadDreams|DarkPulse,SludgeBomb,FocusBlast,Protect|Modest|32,,,224,,252||,0,,,,|||,,,,,Dark]Slowking-Galar||ShucaBerry|Regenerator|SludgeBomb,Psychic,ChillyReception,Flamethrower|Calm|248,,124,,136,||,0,,,,|||,,,,,Poison]Scizor||ChoiceBand|Technician|BulletPunch,QuickAttack,KnockOff,Uturn|Adamant|216,252,4,,,36|||||,,,,,Bug]Tera Captain|Diancie|Leftovers|ClearBody|Moonblast,PowerGem,Protect,StealthRock|Bold|248,,60,,200,||,0,,,,|||,,,,,Water]Tera Captain|UrshifuRapidStrike|LumBerry|UnseenFist|SurgingStrikes,PoisonJab,SwordsDance,AquaJet|Adamant|,152,,,124,232|||||,,,,,Poison]Sandy Shocks||Leftovers|Protosynthesis|Discharge,EarthPower,Spikes,BodyPress|Timid|56,,,204,,248||,0,,,,|||,,,,,Electric"], + ["Landorus-Therian||Leftovers|Intimidate|StealthRock,Earthquake,SmackDown,Taunt|Jolly|,252,,,4,252|||||,,,,,Ground]Urshifu-Rapid-Strike||ChoiceScarf|UnseenFist|SurgingStrikes,BrickBreak,IceSpinner,IronHead|Jolly|,252,,,4,252|||||,,,,,Fighting]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,DarkPulse,Psychic,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|Heatran|AirBalloon|FlameBody|FlashCannon,EarthPower,FireBlast,Substitute|Modest|252,,,252,4,||,0,,,,|||,,,,,Grass]Toxapex||Leftovers|Regenerator|ChillingWater,Haze,Recover,Toxic|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Tera Captain|IndeedeeF|AssaultVest|PsychicSurge|Psychic,HyperVoice,ShadowBall,AlluringVoice|Calm|,,,252,252,||,0,,,,|||,,,,,Fairy","Kilowattrel||ChartiBerry|Competitive|VoltSwitch,Thunderbolt,AirSlash,Roost|Modest|,,84,252,,172||,0,,,,|||,,,,,Electric]Tera Captain|Lokix|ProtectivePads|TintedLens|FirstImpression,KnockOff,Uturn,SuckerPunch|Adamant|16,252,,,4,236|||S||,,,,,Water]Ninetales-Alola||RockyHelmet|SnowWarning|AuroraVeil,Moonblast,PainSplit,BabyDollEyes|Timid|72,,252,,,184||,0,,,,|||,,,,,Ice]Landorus||ExpertBelt|SheerForce|EarthPower,Psychic,Uturn,StealthRock|Timid|,,4,252,4,248|||||,,,,,Ground]Sandslash-Alola||FocusSash|SlushRush|StealthRock,KnockOff,MetalBurst,RapidSpin|Jolly|252,,12,,,244|||S||,,,,,Ice]Tera Captain|Latias|Leftovers|Levitate|CalmMind,MistBall,Surf,DrainingKiss|Timid|,,196,136,,176||,0,,,,|||,,,,,Water"], + ["Iron Boulder||FocusSash|QuarkDrive|CloseCombat,MightyCleave,ZenHeadbutt,SwordsDance|Adamant|,252,56,,,200|||||,,,,,Rock]Tentacruel||AssaultVest|LiquidOoze|RapidSpin,HydroPump,SludgeBomb,IceBeam|Timid|,,,252,4,252|||||,,,,,Water]Tera Captain|SandyShocks|HeavyDutyBoots|Protosynthesis|ScorchingSands,StealthRock,VoltSwitch,ThunderWave|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Enamorus||ChoiceScarf|CuteCharm|EarthPower,Moonblast,SludgeBomb,Tailwind|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Kyurem||LoadedDice|Pressure|DragonDance,ScaleShot,IcicleSpear,Facade|Adamant|,252,,,4,252|||||,,,,,Dragon]Combusken||HeavyDutyBoots|SpeedBoost|SwordsDance,CloseCombat,BlazeKick,ThunderPunch|Adamant|,252,,,4,252|||||,,,,,Fire","Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,DragonPulse|Timid|56,,,252,,200||,0,,,,|||,,,,,Stellar]Weavile||HeavyDutyBoots|Pressure|KnockOff,IceShard,IceSpinner,UpperHand|Jolly|,252,8,,,248|||||,,,,,Dark]Zapdos-Galar||ChoiceScarf|Defiant|CloseCombat,BraveBird,Uturn,KnockOff|Jolly|80,252,,,,176|||||,,,,,Fighting]Rotom-Heat||HeavyDutyBoots|Levitate|VoltSwitch,WillOWisp,Overheat,Hex|Timid|,,8,252,,248||,0,,,,|||,,,,,Electric]Garchomp||Leftovers|RoughSkin|Earthquake,Spikes,FireBlast,DracoMeteor|Naive|,8,,252,,248|||||,,,,,Dragon]Tinkaton||ShucaBerry|MoldBreaker|StealthRock,GigatonHammer,ThunderWave,KnockOff|Jolly|24,252,,,8,224|||||,,,,,Fairy"], + ["Tera Captain|Annihilape|ChoiceScarf|Defiant|CloseCombat,RageFist,StoneEdge,Uturn|Adamant|60,252,,,,196|||||,,,,,Fighting]Tera Captain|Vaporeon|Leftovers|WaterAbsorb|AlluringVoice,Wish,FlipTurn,Protect|Calm|252,,,4,252,|||||,,,,,Fairy]Raging Bolt||RoseliBerry|Protosynthesis|Thunderbolt,DragonPulse,WeatherBall,Thunderclap|Modest|252,,4,252,,||,20,,,,|||,,,,,Electric]Gholdengo||UtilityUmbrella|GoodasGold|ShadowBall,DazzlingGleam,ThunderWave,Recover|Calm|252,,,64,192,||,0,,,,|||,,,,,Steel]Gliscor||ToxicOrb|PoisonHeal|DualWingbeat,Earthquake,StealthRock,Spikes|Adamant|252,52,204,,,|||||,,,,,Ground]Weavile||ChoiceBand|Pickpocket|TripleAxel,KnockOff,IceShard,BrickBreak|Jolly|32,252,,,,224|||||,,,,,Dark","Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|DracoMeteor,HydroSteam,DragonPulse,FlipTurn|Modest|,,,252,44,212|||||,,,,,Water]Tera Captain|Hariyama|AssaultVest|ThickFat|CloseCombat,BulletPunch,KnockOff,IcePunch|Careful|,252,4,,252,|||||,,,,,Fairy]Cyclizar||HeavyDutyBoots|Regenerator|RapidSpin,ShedTail,KnockOff,DragonClaw|Adamant|248,144,,,,116|||||,,,,,Dragon]Darkrai||ChoiceSpecs|BadDreams|SludgeBomb,DarkPulse,Psychic,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Torkoal||HeatRock|Drought|LavaPlume,BodyPress,StealthRock,WillOWisp|Bold|248,,252,,8,||,0,,,,|||,,,,,Fire]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,HornLeech,Uturn,SwordsDance|Adamant|,252,52,,,204|||||,,,,,Fire"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|Encore,DestinyBond,Moonblast,Psyshock|Timid|,,,252,4,252||,0,,,,|||,,,,,Bug]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Psychic|Modest|,,,252,4,252||,0,,,,|||,,,,,Bug]Rotom-Wash||HeavyDutyBoots|Levitate|VoltSwitch,HydroPump,ThunderWave,PainSplit|Calm|252,,,4,252,||,0,,,,0|||,,,,,Bug]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,Substitute,TeraBlast,DragonPulse|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Forretress||Leftovers|Sturdy|GyroBall,ThunderWave,StealthRock,BodyPress|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Bug]Tera Captain|Sinistcha|Leftovers|Heatproof|MatchaGotcha,ShadowBall,StrengthSap,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy","Gliscor||ToxicOrb|PoisonHeal|Earthquake,Toxic,StealthRock,Protect|Careful|252,,,,252,|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,FocusBlast,Substitute,Encore|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Scizor||ChoiceBand|Technician|BulletPunch,Uturn,CloseCombat,KnockOff|Adamant|248,252,,,8,|||||,,,,,Bug]Kommo-o||AssaultVest|Soundproof|DrainPunch,PoisonJab,IronHead,DragonTail|Careful|252,,,,252,|||||,,,,,Dragon]Tera Captain|Porygon2|Eviolite|Download|Recover,TriAttack,IceBeam,Discharge|Calm|252,,,,252,||,0,,,,|||,,,,,Fire]Rotom-Wash||ChoiceScarf|Levitate|VoltSwitch,ThunderWave,Trick,HydroPump|Modest|112,,,252,,144||,0,,,,|||,,,,,Electric"], + ["Appletun||YacheBerry|ThickFat|LeafStorm,DracoMeteor,BodyPress,Recover|Bold|176,,252,80,,||,0,,,,|||,,,,,Grass]Tera Captain|Espathra|RockyHelmet|SpeedBoost|StoredPower,TeraBlast,Roost,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Urshifu-Rapid-Strike||ChoiceScarf|UnseenFist|CloseCombat,SurgingStrikes,Uturn,AquaJet|Adamant|,252,,,4,252|||||,,,,,Fighting]Kleavor||FocusSash|Sharpness|Trailblaze,StoneAxe,CloseCombat,Counter|Jolly|,252,,,4,252|||||,,,,,Bug]Kingambit||ChopleBerry|SupremeOverlord|SuckerPunch,SwordsDance,KowtowCleave,IronHead|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|Gengar|FocusSash|CursedBody|ToxicSpikes,Hex,FocusBlast,DestinyBond|Timid|,,,252,4,252||,0,,,,|||,,,,,Ghost","Palafin-Hero||SitrusBerry|ZerotoHero|BulkUp,Substitute,JetPunch,Acrobatics|Adamant|244,,208,,56,|||||,,,,,Water]Gouging Fire||ClearAmulet|Protosynthesis|DragonDance,HeatCrash,MorningSun,DragonClaw|Adamant|72,252,4,,,180|||||,,,,,Fire]Weavile||HeavyDutyBoots|Pressure|SwordsDance,KnockOff,IceShard,LowKick|Jolly|120,252,,,,136|||||,,,,,Dark]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,DarkPulse,Toxic,RapidSpin|Calm|252,,,108,148,|||||,,,,,Stellar]Tera Captain|ThundurusTherian|SitrusBerry|VoltAbsorb|Thunderbolt,DarkPulse,SludgeBomb,Agility|Modest|236,,,252,,20||,0,,,,|||,,,,,Dark]Copperajah||Leftovers|HeavyMetal|StealthRock,Whirlwind,HeavySlam,KnockOff|Adamant|,36,220,,252,|||||,,,,,Steel"], + ["Sandy Shocks||HeavyDutyBoots|Protosynthesis|VoltSwitch,EarthPower,StealthRock,ThunderWave|Timid|116,,,,140,252||,0,,,,|||,,,,,Electric]Slowking||Leftovers|Regenerator|Yawn,ShadowBall,Surf,ChillingWater|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Uturn,Taunt,Earthquake,TeraBlast|Jolly|16,236,,,56,200|||||,,,,,Flying]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,HeatCrash,DragonClaw,MorningSun|Jolly|56,252,,,,200|||||,,,,,Fire]Weezing-Galar||BlackSludge|NeutralizingGas|Defog,PainSplit,StrangeSteam,FireBlast|Bold|252,,216,40,,||,0,,,,|||,,,,,Poison]Meowscarada||HeavyDutyBoots|Protean|TripleAxel,Uturn,KnockOff,FlowerTrick|Jolly|4,252,,,,252|||||,,,,,Grass","Okidogi||Leftovers|ToxicChain|DrainPunch,KnockOff,IcePunch,PsychicFangs|Adamant|248,32,228,,,|||||,,,,,Poison]Tera Captain|Latias|RockyHelmet|Levitate|IceBeam,Thunderbolt,Recover,DragonPulse|Timid|248,,,156,,104||,0,,,,|||,,,,,Fairy]Sandy Shocks||BoosterEnergy|Protosynthesis|Thunderbolt,EarthPower,StealthRock,TriAttack|Timid|,,48,208,,252||,0,,,,|||,,,,,Electric]Gholdengo||ColburBerry|GoodasGold|MakeItRain,ShadowBall,Recover,NastyPlot|Bold|248,,252,,,||,0,,,,|||,,,,,Steel]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,Spikes,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Ribombee|HeavyDutyBoots|ShieldDust|Moonblast,BugBuzz,Psychic,QuiverDance|Timid|8,,,252,,248||,0,,,,|||,,,,,Dark"], + ["Great Tusk||Leftovers|Protosynthesis|HeadlongRush,CloseCombat,IceSpinner,RapidSpin|Jolly|16,252,,,,240|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,KnockOff,Uturn,SeedBomb|Jolly|104,252,,,,152|||||,,,,,Water]Tornadus-Therian||ChoiceSpecs|Regenerator|Hurricane,HeatWave,AirSlash,DarkPulse|Modest|76,,,252,,180||,0,,,,|||,,,,,Flying]Tinkaton||RockyHelmet|MoldBreaker|StealthRock,PlayRough,KnockOff,Encore|Impish|252,4,252,,,|||||,,,,,Fairy]Umbreon||Leftovers|Synchronize|FoulPlay,AlluringVoice,Moonlight,ThunderWave|Calm|252,,4,,252,||,0,,,,|||,,,,,Dark]Tera Captain|Appletun|Leftovers|ThickFat|AppleAcid,Recover,LeechSeed,BodyPress|Bold|252,,252,,,4||,0,,,,|||,,,,,Fairy","Forretress||IronPlate|Sturdy|Spikes,RapidSpin,VoltSwitch,GyroBall|Relaxed|252,,120,,136,||,,,,,0|||,,,,,Bug]Tera Captain|Armarouge|ChoiceSpecs|WeakArmor|ArmorCannon,EnergyBall,Psyshock,DragonPulse|Modest|12,,,252,,244||,0,,,,|||,,,,,Dragon]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|ThunderPunch,Uturn,CloseCombat,SurgingStrikes|Jolly|12,252,,,,244|||||,,,,,Electric]Weavile||HeavyDutyBoots|Pickpocket|KnockOff,IcicleCrash,IceShard,SwordsDance|Jolly|32,252,,,,224|||||,,,,,Dark]Grafaiai||GrassySeed|Unburden|Acrobatics,SwordsDance,GunkShot,LowKick|Adamant|152,252,,,,104|||||,,,,,Poison]Rillaboom||HeavyDutyBoots|GrassySurge|GrassyGlide,Uturn,HighHorsepower,WoodHammer|Adamant|180,252,,,,76|||||,,,,,Grass"], + ["Overqwil||RockyHelmet|PoisonPoint|PainSplit,Endure,AquaJet,Liquidation|Impish|248,44,216,,,|||||,,,,,Dark]Tera Captain|Hoopa|Leftovers|Magician|TrickRoom,FocusBlast,Psyshock,ShadowBall|Calm|136,,,160,212,||,0,,,,|||,,,,,Fairy]Cryogonal||HeavyDutyBoots|Levitate|RapidSpin,FreezeDry,ChillingWater,Recover|Calm|232,,,60,108,108|||||,,,,,Ice]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,KnockOff,SwordsDance|Jolly|88,168,,,24,228|||||,,,,,Water]Ursaluna-Bloodmoon||ChopleBerry|MindsEye|BloodMoon,HyperVoice,VacuumWave,Moonlight|Modest|168,,88,252,,||,0,,,,|||,,,,,Ground]Scizor||AssaultVest|Technician|BulletPunch,DualWingbeat,CloseCombat,Uturn|Adamant|136,252,,,120,|||||,,,,,Bug","Blaziken||Leftovers|SpeedBoost|Protect,CloseCombat,FlareBlitz,Substitute|Jolly|80,252,,,,176|||||,,,,,Fire]Grafaiai||RedCard|Prankster|Encore,PartingShot,GunkShot,Toxic|Jolly|252,,,,4,252|||||,,,,,Poison]Tera Captain|Latias|SitrusBerry|Levitate|Thunderbolt,MistBall,IceBeam,DracoMeteor|Timid|32,,,252,,224||,0,,,,|||,,,,,Electric]Iron Treads||AssaultVest|QuarkDrive|VoltSwitch,Earthquake,RapidSpin,IronHead|Careful|224,112,,,172,|||||,,,,,Ground]Rotom-Wash||Leftovers|Levitate|PainSplit,VoltSwitch,WillOWisp,HydroPump|Calm|252,,,12,244,||,0,,,,|||,,,,,Electric]Iron Bundle||ChoiceScarf|QuarkDrive|FreezeDry,Uturn,HydroPump,IceBeam|Modest|80,,,252,,176|||||,,,,,Ice"], + ["Darkrai||ChoiceSpecs|BadDreams|FocusBlast,IceBeam,SludgeBomb,DarkPulse|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Slowking-Galar||ColburBerry|Regenerator|TrickRoom,SludgeWave,Psychic,IceBeam|Modest|248,,56,204,,||,0,,,,|||,,,,,Poison]Landorus-Therian||Leftovers|Intimidate|StealthRock,Uturn,StoneEdge,Earthquake|Impish|248,,244,,,16|||||,,,,,Ground]Tsareena||Leftovers|QueenlyMajesty|Synthesis,Uturn,KnockOff,PowerWhip|Impish|248,,252,,8,|||||,,,,,Grass]Ribombee||AbsorbBulb|SweetVeil|QuiverDance,BugBuzz,Psychic,Moonblast|Timid|32,,,252,,224||,0,,,,|||,,,,,Bug]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|Uturn,TeraBlast,SurgingStrikes,CloseCombat|Adamant|152,252,,,,104|||||,,,,,Grass","Darkrai||LifeOrb|BadDreams|NastyPlot,DarkPulse,FocusBlast,SludgeBomb|Timid|,,,252,4,252|||||,,,,,Poison]Garchomp||RockyHelmet|RoughSkin|StealthRock,Outrage,Earthquake,Liquidation|Impish|252,252,,,,4|||||,,,,,Fairy]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,CloseCombat,Uturn,Switcheroo|Adamant|,252,,,4,252|||||,,,,,Grass]Tera Captain|Azumarill|ChoiceBand|HugePower|PlayRough,AquaJet,Liquidation,KnockOff|Adamant|252,152,,,104,|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Roost,Discharge,Hurricane,Uturn|Timid|252,,104,,,152|||||,,,,,Electric]Tera Captain|Espeon|ChoiceSpecs|MagicBounce|AlluringVoice,Trick,ShadowBall,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Klefki||LightClay|Prankster|ThunderWave,SunnyDay,LightScreen,Reflect|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Tera Captain|Ditto|ChoiceScarf|Imposter|Transform|Calm|252,,252,,4,|||||,,,,,Stellar]Blaziken||HeavyDutyBoots|SpeedBoost|CloseCombat,Detect,FlareBlitz,SwordsDance|Adamant|4,252,108,,,144|||||,,,,,Fire]Tera Captain|Latias|AssaultVest|Levitate|TeraBlast,AirSlash,EnergyBall,IceBeam|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Charizard||ChoiceScarf|SolarPower|Flamethrower,Overheat,AncientPower,SolarBeam|Modest|248,,,252,,8||,0,,,,|||,,,,,Fire]Cyclizar||MentalHerb|Regenerator|ShedTail,SunnyDay,KnockOff,DracoMeteor|Timid|248,,,8,,252||,0,,,,|||,,,,,Dragon","Tera Captain|Galvantula|HeavyDutyBoots|CompoundEyes|Thunder,VoltSwitch,StickyWeb,TeraBlast|Timid|64,,,252,,192||,0,,,,|||,,,,,Ground]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,Glare,Substitute,TeraBlast|Timid|20,,,252,4,232||,0,,,,|||,,,,,Stellar]Gliscor||ToxicOrb|PoisonHeal|SwordsDance,Protect,Earthquake,Facade|Impish|252,,,,252,|||||,,,,,Ground]Samurott-Hisui||HeavyDutyBoots|Sharpness|FlipTurn,CeaselessEdge,RazorShell,AquaJet|Adamant|252,252,,,4,|||||,,,,,Water]Volcarona||HeavyDutyBoots|FlameBody|AirSlash,QuiverDance,FieryDance,BugBuzz|Calm|252,,56,,200,||,0,,,,|||,,,,,Bug]Altaria||Leftovers|NaturalCure|Earthquake,Haze,Roost,DracoMeteor|Relaxed|252,,204,,52,|||||,,,,,Dragon"], + ["Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,SuckerPunch,SacredSword,DrillRun|Jolly|,252,,,4,252|||S||,,,,,Fire]Tornadus-Therian||ChoiceSpecs|Regenerator|Hurricane,FocusBlast,WeatherBall,Uturn|Timid|80,,,252,,176|||||,,,,,Fighting]Tera Captain|SandyShocks|BoosterEnergy|Protosynthesis|Thunderbolt,EarthPower,TeraBlast,ChargeBeam|Timid|,,,208,48,252||,0,,,,|||,,,,,Flying]Brambleghast||ColburBerry|WindRider|Poltergeist,RapidSpin,StrengthSap,LeechSeed|Impish|248,,136,,104,20|||||,,,,,Water]Tera Captain|Jirachi|Leftovers|SereneGrace|Wish,Psychic,AuraSphere,CalmMind|Calm|124,,,156,228,||,0,,,,|||,,,,,Dragon]Iron Valiant||KebiaBerry|QuarkDrive|SwordsDance,Taunt,ZenHeadbutt,CloseCombat|Jolly|48,244,,,,216|||S||,,,,,Poison","Tera Captain|Archaludon|AssaultVest|Stamina|BodyPress,DracoMeteor,ElectroShot,FlashCannon|Calm|200,,,56,252,||,0,,,,|||,,,,,Fighting]Tornadus||DampRock|Prankster|RainDance,Tailwind,BleakwindStorm,Uturn|Calm|252,,,4,252,|||||,,,,,Flying]Raikou||LightClay|InnerFocus|LightScreen,Reflect,VoltSwitch,Extrasensory|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Tera Captain|Amoonguss|RockyHelmet|Regenerator|Spore,Toxic,SludgeBomb,GigaDrain|Calm|248,,,8,252,||,0,,,,|||,,,,,Water]Overqwil||ChoiceBand|Intimidate|AquaJet,ThroatChop,GunkShot,SmartStrike|Jolly|,252,,,4,252|||||,,,,,Dark]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SpikyShield,SwordsDance,IvyCudgel,HornLeech|Adamant|,252,4,,,252|||||,,,,,Water"], + ["Iron Boulder||BoosterEnergy|QuarkDrive|Earthquake,SwordsDance,MightyCleave,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Rock]Suicune||Leftovers|Pressure|CalmMind,Surf,IceBeam,Protect|Modest|252,,,252,4,||,0,,,,|||,,,,,Water]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|HornLeech,KnockOff,IvyCudgel,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|ZoroarkHisui|ChoiceSpecs|Illusion|HyperVoice,Psychic,TeraBlast,ShadowBall|Timid|,,,252,4,252||,0,,,,|S||,,,,,Fairy]Weezing-Galar||BlackSludge|NeutralizingGas|WillOWisp,Defog,SludgeBomb,Taunt|Calm|252,,,4,252,||,0,,,,|S||,,,,,Poison]Roaring Moon||BoosterEnergy|Protosynthesis|KnockOff,DragonDance,Earthquake,Acrobatics|Jolly|,252,,,4,252|||||,,,,,Dragon","Tera Captain|Heatran|AbilityShield|FlashFire|FlashCannon,StealthRock,LavaPlume,TeraBlast|Modest|136,,,252,,120||,0,,,,|||,,,,,Fairy]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,Earthquake,RapidSpin,CloseCombat|Jolly|248,4,,,4,252|||||,,,,,Fighting]Tera Captain|Kilowattrel|AssaultVest|VoltAbsorb|VoltSwitch,Hurricane,Thunderbolt,TeraBlast|Timid|8,,,152,100,248||,0,,,,|||,,,,,Fighting]Azumarill||AssaultVest|HugePower|AquaJet,PlayRough,KnockOff,Liquidation|Adamant|248,252,4,,4,|||||,,,,,Water]Dusknoir||IronBall|Frisk|Trick,Poltergeist,Payback,Memento|Careful|248,20,,,240,|||||,,,,,Ghost]Scizor||ChoiceBand|Technician|BulletPunch,Uturn,DualWingbeat,Trailblaze|Adamant|248,252,4,,4,|||||,,,,,Bug"], + ["Tera Captain|Manaphy|Leftovers|Hydration|TailGlow,Surf,DazzlingGleam,EnergyBall|Modest|196,,4,252,,56||,0,,,,|||,,,,,Grass]Rillaboom||AssaultVest|GrassySurge|GrassyGlide,HighHorsepower,WoodHammer,Uturn|Adamant|156,252,4,,,96|||||,,,,,Stellar]Sneasler||ClearAmulet|PoisonTouch|Uturn,CloseCombat,DireClaw,FakeOut|Jolly|,252,,,4,252|||||,,,,,Stellar]Tera Captain|Mesprit|Leftovers|Levitate|PsychicNoise,PainSplit,CalmMind,ShadowBall|Bold|76,,176,4,36,216||,0,,,,|||,,,,,Steel]Sandy Shocks||Leftovers|Protosynthesis|VoltSwitch,EarthPower,PowerGem,StealthRock|Timid|44,,,252,4,208||,0,,,,|||,,,,,Stellar]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,DragonClaw,FlareBlitz,MorningSun|Adamant|124,252,,,4,128|||||,,,,,Stellar","Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|Thunderclap,CalmMind,Thunderbolt,DragonPulse|Modest|252,,,252,4,||,20,,,,|||,,,,,Ghost]Scizor||RockyHelmet|Technician|BulletPunch,Uturn,Defog,KnockOff|Impish|248,100,160,,,|||||,,,,,Bug]Scream Tail||RedCard|Protosynthesis|Wish,Protect,Encore,PsychicNoise|Timid|248,,,20,60,180||,0,,,,|||,,,,,Fairy]Landorus-Therian||ChoiceScarf|Intimidate|StompingTantrum,StealthRock,Uturn,RockTomb|Jolly|88,252,,,,168|||||,,,,,Ground]Froslass||FocusSash|CursedBody|IceBeam,DestinyBond,Spikes,Taunt|Timid|64,,4,252,,188||,0,,,,|S||,,,,,Ice]Tera Captain|Milotic|FlameOrb|MarvelScale|Scald,Recover,DragonTail,Haze|Bold|252,,188,,68,|||S||,,,,,Ghost"], + ["Gliscor||ToxicOrb|PoisonHeal|Protect,Earthquake,StealthRock,ToxicSpikes|Jolly|,116,200,,,192|||||,,,,,Ground]Primarina||Leftovers|LiquidVoice|HyperVoice,FlipTurn,Moonblast,Encore|Calm|4,,,252,252,|||||,,,,,Water]Pecharunt||BlackSludge|PoisonPuppeteer|MalignantChain,Recover,PartingShot,Hex|Bold|248,,252,8,,||,0,,,,|||,,,,,Poison]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Synthesis|Timid|252,,4,,,252||,0,,,,|||,,,,,Stellar]Chi-Yu||Leftovers|BeadsofRuin|Substitute,DarkPulse,Flamethrower,NastyPlot|Timid|104,,,252,,152||,0,,,,|||,,,,,Dark]Primeape||ChoiceBand|Defiant|Uturn,CloseCombat,Earthquake,ThroatChop|Jolly|64,252,,,,192|||||,,,,,Fighting","Tera Captain|Revavroom|AirBalloon|Overcoat|ShiftGear,HighHorsepower,GunkShot,TeraBlast|Adamant|40,252,4,,,212|||||,,,,,Water]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,ZenHeadbutt,MightyCleave,CloseCombat|Jolly|112,252,,,,144|||||,,,,,Flying]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|PowerWhip,Uturn,Spikes,IvyCudgel|Jolly|80,252,,,,176|||||,,,,,Water]Great Tusk||EjectPack|Protosynthesis|IceSpinner,HeadlongRush,RapidSpin,StealthRock|Adamant|136,252,,,,120|||||,,,,,Steel]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Ruination|Modest|80,,,252,,176||,0,,,,|||,,,,,Grass]Tera Captain|Eelektross|AssaultVest|Levitate|Uturn,KnockOff,CloseCombat,SupercellSlam|Careful|248,8,,,252,|||||,,,,,Ice"], + ["Garchomp||HabanBerry|RoughSkin|Earthquake,SwordsDance,DragonClaw,StealthRock|Adamant|32,252,,,,224|||||,,,,,Dragon]Tera Captain|UrshifuRapidStrike|WacanBerry|UnseenFist|ThunderPunch,SurgingStrikes,CloseCombat,SwordsDance|Adamant|,252,,,48,208|||||,,,,,Grass]Corviknight||RockyHelmet|MirrorArmor|Defog,Roost,Uturn,BraveBird|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Flying]Tera Captain|Arcanine|Leftovers|Intimidate|TeraBlast,MorningSun,Protect,WillOWisp|Bold|248,,140,,,120||,0,,,,|||,,,,,Water]Florges||Leftovers|FlowerVeil|Moonblast,Protect,Wish,CalmMind|Calm|248,,,,252,8||,0,,,,|||,,,,,Fairy]Jolteon||FlameOrb|QuickFeet|VoltSwitch,WeatherBall,AlluringVoice,Protect|Timid|80,,,252,,176||,0,,,,|||,,,,,Electric","Tera Captain|RagingBolt|WhiteHerb|Protosynthesis|Thunderclap,VoltSwitch,DracoMeteor,Thunderbolt|Timid|32,,12,228,28,208||,20,,,,|||,,,,,Fairy]Vikavolt||RockyHelmet|Levitate|StickyWeb,VoltSwitch,BugBuzz,ThunderWave|Modest|160,,20,228,100,||,0,,,,|||,,,,,Bug]Pelipper||DampRock|Drizzle|Roost,WeatherBall,Uturn,Hurricane|Timid|168,,,92,100,148|||||,,,,,Water]Archaludon||AssaultVest|Stamina|ElectroShot,FlashCannon,DragonPulse,BodyPress|Timid|56,,20,112,144,176||,0,,,,|||,,,,,Steel]Basculegion||ColburBerry|SwiftSwim|PhantomForce,FlipTurn,Liquidation,IceFang|Jolly|8,252,28,,28,192|||||,,,,,Water]Landorus-Therian||RockyHelmet|Intimidate|Uturn,Earthquake,SwordsDance,SmackDown|Jolly|,252,20,,28,208|||||,,,,,Ground"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,KnockOff,PowerWhip,Uturn|Jolly|,252,,,4,252|||||,,,,,Water]Archaludon||PowerHerb|Stamina|MeteorBeam,BodyPress,Thunderbolt,DracoMeteor|Bold|4,,48,204,252,||,0,,,,|||,,,,,Steel]Fezandipiti||ChoiceScarf|ToxicChain|Moonblast,ShadowBall,Uturn,SludgeBomb|Modest|192,,4,252,4,56|||||,,,,,Poison]Iron Hands||AssaultVest|QuarkDrive|CloseCombat,ThunderPunch,Earthquake,IcePunch|Adamant|4,252,4,,248,|||||,,,,,Fighting]Sandaconda||RockyHelmet|ShedSkin|Earthquake,Glare,StealthRock,Rest|Impish|252,4,252,,,|||||,,,,,Ground]Kleavor||ChoiceScarf|Sharpness|Uturn,StoneAxe,XScissor,NightSlash|Jolly|44,252,4,,4,204|||||,,,,,Bug","Slowking-Galar||AssaultVest|Regenerator|FocusBlast,HydroPump,SludgeBomb,PsychicNoise|Calm|252,,20,88,148,||,0,,,,|||,,,,,Bug]Gouging Fire||LifeOrb|Protosynthesis|Earthquake,DragonDance,HeatCrash,ThunderFang|Jolly|44,252,,,4,208|||||,,,,,Bug]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|Uturn,IvyCudgel,Superpower,WoodHammer|Jolly|,252,4,,,252|||||,,,,,Water]Bronzong||Leftovers|Levitate|TrickRoom,StealthRock,Psychic,SteelBeam|Quiet|252,,100,152,4,||,0,,,,0|||,,,,,Bug]Tera Captain|Hydrapple|Leftovers|Regenerator|FickleBeam,GigaDrain,NastyPlot,EarthPower|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Tera Captain|EnamorusTherian|HeavyDutyBoots|Overcoat|DrainingKiss,CalmMind,EarthPower,Agility|Timid|124,,,252,4,128||,0,,,,|||,,,,,Grass"], + ["Tera Captain|Latias|Leftovers|Levitate|Substitute,CalmMind,DrainingKiss,Roar|Timid|252,,160,,,96||,0,,,,|||,,,,,Fairy]Palafin-Hero||ChoiceScarf|ZerotoHero|WaveCrash,CloseCombat,IcePunch,JetPunch|Adamant|4,252,,,,252|||||,,,,,Normal]Meowscarada||FocusSash|Overgrow|Spikes,LeafStorm,AuraSphere,Taunt|Timid|,,,252,4,252||,0,,,,|||,,,,,Normal]Tinkaton||Leftovers|MoldBreaker|Encore,GigatonHammer,KnockOff,StealthRock|Jolly|252,,,,32,224|||||,,,,,Normal]Iron Hands||ShucaBerry|QuarkDrive|SwordsDance,DrainPunch,IcePunch,Whirlwind|Impish|252,4,252,,,|||||,,,,,Normal]Donphan||HeavyDutyBoots|Sturdy|RapidSpin,Earthquake,SmackDown,Roar|Adamant|248,252,,,8,|||||,,,,,Normal","Tera Captain|Latias|Leftovers|Levitate|StoredPower,AuraSphere,CalmMind,Recover|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel]Meowscarada||ChoiceBand|Protean|TripleAxel,FlowerTrick,KnockOff,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Zapdos||HeavyDutyBoots|Static|Roost,Hurricane,VoltSwitch,Discharge|Bold|252,,252,,,4||,0,,,,|||,,,,,Electric]Tera Captain|Lucario|ChoiceBand|Steadfast|CloseCombat,ExtremeSpeed,MeteorMash,Earthquake|Adamant|240,252,,,,16|||||,,,,,Normal]Swampert||Leftovers|Torrent|Yawn,EarthPower,IceBeam,FlipTurn|Bold|252,,252,,,4|||||,,,,,Water]Glimmora||Leftovers|Corrosion|MortalSpin,PowerGem,Toxic,Spikes|Modest|212,,,252,,44|||||,,,,,Rock"], + ["Primarina||AssaultVest|Torrent|Moonblast,FlipTurn,Surf,Psychic|Modest|252,,,252,4,|||||,,,,,Water]Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,SludgeBomb,Psychic,FocusBlast|Timid|72,,,252,,184||,0,,,,|||,,,,,Dark]Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,SludgeWave,Psychic,Uturn|Timid|,,,252,4,156|||||,,,,,Steel]Tera Captain|Bisharp|Eviolite|Defiant|StealthRock,IronHead,LowKick,TeraBlast|Adamant|252,252,,,4,|||||,,,,,Psychic]Magnezone||Leftovers|MagnetPull|MagnetRise,VoltSwitch,FlashCannon,BodyPress|Modest|,,,252,4,252||,0,,,,|||,,,,,Electric]Hitmontop||LifeOrb|Technician|MachPunch,TripleAxel,BulletPunch,FakeOut|Adamant|248,252,,,8,|||||,,,,,Fighting","Iron Bundle||ChoiceSpecs|QuarkDrive|FlipTurn,FreezeDry,HydroPump,IceBeam|Timid|88,,,252,,168|||||,,,,,Ice]Tera Captain|Excadrill|LifeOrb|SandRush|TeraBlast,Earthquake,SwordsDance,IronHead|Adamant|,252,,,56,200|||||,,,,,Ice]Tyranitar||ChopleBerry|SandStream|StealthRock,KnockOff,LowKick,StoneEdge|Careful|248,,8,,252,|||||,,,,,Rock]Latios||ChoiceScarf|Levitate|IceBeam,FlipTurn,AuraSphere,DracoMeteor|Modest|40,,32,252,,184|||||,,,,,Dragon]Blaziken||ShucaBerry|SpeedBoost|Earthquake,FlareBlitz,SwordsDance,Protect|Adamant|248,252,4,,4,|||||,,,,,Fire]Tera Captain|Lurantis|AssaultVest|Contrary|Superpower,LeafStorm,KnockOff,LeechLife|Sassy|248,60,,,200,|||||,,,,,Flying"], + ["Tera Captain|Quaquaval|ProtectivePads|Moxie|AquaStep,TripleAxel,CloseCombat,RapidSpin|Adamant|136,252,8,,,112|||||,,,,,Stellar]Enamorus||HeavyDutyBoots|CuteCharm|Moonblast,MysticalFire,SludgeBomb,HealingWish|Timid|32,,,252,,224||,0,,,,|||,,,,,Fairy]Slowking-Galar||BlackSludge|Regenerator|SludgeBomb,Flamethrower,Trick,SlackOff|Calm|248,,8,,252,||,0,,,,|||,,,,,Poison]Servine||Eviolite|Contrary|LeafStorm,KnockOff,Synthesis,Glare|Bold|248,,212,48,,|||||,,,,,Grass]Glimmora||PowerHerb|ToxicDebris|MeteorBeam,StealthRock,PowerGem,SludgeBomb|Modest|104,,,252,,152||,0,,,,|||,,,,,Rock]Darkrai||LifeOrb|BadDreams|DarkPulse,SludgeBomb,NastyPlot,IceBeam|Timid|112,,4,252,4,136||,0,,,,|||,,,,,Dark","Zapdos||ChoiceScarf|Static|Thunderbolt,VoltSwitch,SleepTalk,Hurricane|Modest|,,4,252,,252||,0,,,,|||,,,,,Electric]Palafin-Hero||LumBerry|ZerotoHero|JetPunch,DrainPunch,BulkUp,Encore|Adamant|252,36,,,156,64|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|Psyshock,CalmMind,Recover,AlluringVoice|Timid|252,,,4,,252||,0,,,,|||,,,,,Steel]Garchomp||YacheBerry|RoughSkin|Earthquake,Spikes,StealthRock,PoisonJab|Jolly|224,,124,,28,132|||||,,,,,Dragon]Tera Captain|Forretress|LightClay|Sturdy|BodyPress,Reflect,RapidSpin,ThunderWave|Impish|252,,216,,40,|||||,,,,,Ghost]Florges-Blue||HeavyDutyBoots|FlowerVeil|Moonblast,StoredPower,CalmMind,Synthesis|Calm|248,,160,,100,||,0,,,,|S||,,,,,Fairy"], + ["Great Tusk||ChoiceScarf|Protosynthesis|RapidSpin,HeadlongRush,CloseCombat,IceSpinner|Adamant|72,252,,,,184|||||,,,,,Ground]Greninja-Bond||FocusSash|BattleBond|HydroPump,DarkPulse,LowKick,ToxicSpikes|Naive|,96,,252,,160|||||,,,,,Water]Rillaboom||ChoiceBand|GrassySurge|WoodHammer,GrassyGlide,Uturn,DrainPunch|Adamant|252,252,,,4,|||||,,,,,Grass]Tinkaton||ShucaBerry|MoldBreaker|StealthRock,GigatonHammer,BrickBreak,KnockOff|Careful|252,,4,,252,|||||,,,,,Fairy]Tera Captain|Talonflame|HeavyDutyBoots|GaleWings|SwordsDance,BraveBird,TeraBlast,FlareBlitz|Adamant|,252,,,4,252|||||,,,,,Flying]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderbolt,Thunderclap,DracoMeteor,Roar|Modest|252,,,252,4,||,20,,,,|||,,,,,Fairy","Darkrai||WideLens|BadDreams|DarkPulse,IceBeam,FocusBlast,Hypnosis|Timid|248,,24,4,,232||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,SwordsDance,Uturn|Adamant|160,56,108,,4,180|||||,,,,,Water]Kyurem||HeavyDutyBoots|Pressure|DracoMeteor,IceBeam,FreezeDry,EarthPower|Timid|56,,4,252,4,192||,0,,,,|||,,,,,Dragon]Klefki||ShucaBerry|Prankster|DazzlingGleam,FoulPlay,Spikes,ThunderWave|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Landorus-Therian||RockyHelmet|Intimidate|Earthquake,RockTomb,GrassKnot,Uturn|Lax|232,,100,,16,160|||||,,,,,Ground]Tera Captain|Eelektross|AssaultVest|Levitate|Thunderbolt,GigaDrain,TeraBlast,DragonTail|Brave|248,136,72,4,48,|||||,,,,,Poison"], + ["Tera Captain|Annihilape|Leftovers|VitalSpirit|DrainPunch,RageFist,BulkUp,Encore|Adamant|220,124,,,148,16|||||,,,,,Poison]Tera Captain|Toxtricity|AssaultVest|PunkRock|Boomburst,SludgeWave,VoltSwitch,PsychicNoise|Modest|104,,,196,72,136||,0,,,,|||,,,,,Normal]Enamorus||KebiaBerry|CuteCharm|Moonblast,EarthPower,Psychic,CalmMind|Timid|,,64,192,,252||,0,,,,|||,,,,,Bug]Greninja||ChoiceScarf|Protean|Liquidation,GunkShot,IceBeam,Uturn|Jolly|,208,,,60,240|||||,,,,,Bug]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,RapidSpin,KnockOff,StealthRock|Jolly|248,,8,,,252|||||,,,,,Bug]Alomomola||AssaultVest|Regenerator|FlipTurn,AquaJet,MirrorCoat,IcyWind|Sassy|248,8,,,252,|||||,,,,,Bug","Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,Hex,DarkPulse|Modest|,,4,252,,252||,0,,,,|||,,,,,Fire]Tera Captain|Rillaboom|ChoiceBand|GrassySurge|GrassyGlide,KnockOff,WoodHammer,Uturn|Adamant|192,252,,,,64|||||,,,,,Normal]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,BrickBreak,Uturn,Switcheroo|Jolly|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Primarina|Leftovers|LiquidVoice|CalmMind,AlluringVoice,DrainingKiss,TeraBlast|Modest|140,,,252,72,44||,0,,,,|||,,,,,Poison]Iron Treads||AssaultVest|QuarkDrive|RapidSpin,VoltSwitch,IronHead,HighHorsepower|Careful|248,72,,,84,104|||||,,,,,Ground]Weezing||MentalHerb|Levitate|WillOWisp,ToxicSpikes,ClearSmog,Flamethrower|Bold|252,,152,60,,44||,0,,,,|||,,,,,Poison"], + ["Walking Wake||BoosterEnergy|Protosynthesis|Agility,HydroPump,DragonPulse,Flamethrower|Timid|8,,,252,,248||,0,,,,|||,,,,,Water]Kingambit||ChopleBerry|SupremeOverlord|SwordsDance,SuckerPunch,ZenHeadbutt,KowtowCleave|Adamant|252,240,,,,16|||||,,,,,Dark]Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,TeraBlast,Psychic,NastyPlot|Timid|48,,,252,,208||,0,,,,|||,,,,,Water]Tera Captain|Sylveon|HeavyDutyBoots|Pixilate|HyperVoice,TeraBlast,CalmMind,Trailblaze|Timid|40,,,252,,216|||||,,,,,Fire]Annihilape||ChoiceScarf|Defiant|FinalGambit,IcePunch,RageFist,Uturn|Jolly|252,56,,,,200|||||,,,,,Fighting]Ribombee||FocusSash|ShieldDust|StickyWeb,Moonblast,Psychic,QuiverDance|Timid|24,,,252,,232||,0,,,,|||,,,,,Bug","Darkrai||FocusSash|BadDreams|Hypnosis,NastyPlot,DarkPulse,SludgeBomb|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|StealthRock,Uturn,StoneEdge,Earthquake|Adamant|104,252,4,,,148|||||,,,,,Ground]Tornadus-Therian||AssaultVest|Regenerator|Uturn,KnockOff,SludgeBomb,BleakwindStorm|Timid|248,,,,100,160|||||,,,,,Flying]Keldeo||ChoiceSpecs|Justified|FlipTurn,SecretSword,Surf,HydroPump|Timid|56,,,252,,200|||||,,,,,Water]Scizor||Leftovers|Technician|Defog,BulletPunch,Uturn,CloseCombat|Adamant|248,116,,,144,|||||,,,,,Bug]Vileplume||BlackSludge|EffectSpore|StrengthSap,LeechSeed,SleepPowder,SludgeBomb|Bold|252,,252,,4,||,0,,,,|||,,,,,Grass"], + ["Ninetales||HeatRock|Drought|HealingWish,WillOWisp,Encore,Flamethrower|Timid|248,,52,,,208||,0,,,,|||,,,,,Fire]Tera Captain|WalkingWake|DragonFang|Protosynthesis|HydroSteam,DracoMeteor,FlipTurn,Flamethrower|Timid|,,,244,12,252|||||,,,,,Dragon]Roaring Moon||ChoiceBand|Protosynthesis|Uturn,KnockOff,Earthquake,IronHead|Jolly|72,252,,,,184|||||,,,,,Dragon]Excadrill||Leftovers|MoldBreaker|RapidSpin,StealthRock,Earthquake,RockTomb|Jolly|12,252,,,,244|||||,,,,,Ground]Scream Tail||EjectButton|Protosynthesis|Encore,Wish,Disable,DazzlingGleam|Timid|248,,,,12,248||,0,,,,|||,,,,,Fairy]Venusaur||CobaBerry|Chlorophyll|Growth,SludgeBomb,EarthPower,GigaDrain|Modest|160,,,252,,96||,0,,,,|||,,,,,Grass","Tera Captain|Latias|SitrusBerry|Levitate|AlluringVoice,AuraSphere,ThunderWave,Recover|Timid|132,,,128,,248||,0,,,,|||,,,,,Fairy]Talonflame||HeavyDutyBoots|GaleWings|BraveBird,WillOWisp,Taunt,Roost|Jolly|128,156,24,,,200|||||,,,,,Fire]Iron Hands||ShucaBerry|QuarkDrive|SwordsDance,DrainPunch,HeavySlam,VoltSwitch|Adamant|16,252,,,240,|||||,,,,,Fighting]Palafin||HeavyDutyBoots|ZerotoHero|Liquidation,CloseCombat,ZenHeadbutt,FlipTurn|Jolly|96,252,,,,160|||||,,,,,Water]Arbok||ChoiceScarf|Intimidate|GunkShot,FireFang,Glare,Switcheroo|Adamant|104,252,,,,120|||||,,,,,Poison]Terapagos||Leftovers|TeraShift|TeraStarstorm,Flamethrower,Toxic,Protect|Calm|252,,,,252,4||,15,,,,|||,,,,,Stellar"], + ["Tera Captain|Azumarill|SitrusBerry|HugePower|BellyDrum,AquaJet,PlayRough,Liquidation|Adamant|252,252,,,4,|||||,,,,,Water]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,Earthquake,IronHead,SwordsDance|Jolly|112,252,,,,144|||||,,,,,Stellar]Sneasler||FocusSash|PoisonTouch|FakeOut,DireClaw,CloseCombat,Uturn|Jolly|80,252,,,,176|||||,,,,,Stellar]Tera Captain|Espathra|Leftovers|SpeedBoost|StoredPower,DazzlingGleam,CalmMind,Protect|Calm|252,,,,188,68||,0,,,,|||,,,,,Fairy]Chi-Yu||ShucaBerry|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Substitute|Modest|,,44,252,,184||,0,,,,|||,,,,,Stellar]Rotom-Mow||ChoiceSpecs|Levitate|LeafStorm,VoltSwitch,Thunderbolt,Trick|Modest|,,88,252,,168||,0,,,,|||,,,,,Stellar","Palafin-Hero||PunchingGlove|ZerotoHero|JetPunch,IcePunch,DrainPunch,FlipTurn|Adamant|252,252,4,,,|||||,,,,,Water]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Earthquake,BrickBreak,Uturn,StealthRock|Jolly|32,252,,,4,220|||S||,,,,,Ground]Flareon||CustapBerry|FlashFire|DoubleKick,Roar,FlareBlitz,QuickAttack|Careful|248,8,,,252,|||||,,,,,Fire]Iron Treads||LumBerry|QuarkDrive|Earthquake,IceSpinner,RapidSpin,VoltSwitch|Jolly|44,252,,,4,208|||||,,,,,Ground]Qwilfish-Hisui||Eviolite|Intimidate|PoisonJab,Spikes,Haze,PainSplit|Impish|252,,252,,4,|||||,,,,,Dark]Latios||ChoiceScarf|Levitate|Psyshock,Surf,FlipTurn,Trick|Timid|36,,,252,4,216|||S||,,,,,Dragon"], + ["Tornadus-Therian||YacheBerry|Regenerator|FocusBlast,Uturn,BleakwindStorm,WeatherBall|Modest|40,,,252,,216|||||,,,,,Flying]Dragonite||HeavyDutyBoots|Multiscale|Earthquake,Roost,ExtremeSpeed,DracoMeteor|Quiet|248,,40,76,136,8|||||,,,,,Dragon]Tera Captain|GreninjaBond|LifeOrb|BattleBond|DarkPulse,IceBeam,UpperHand,HydroPump|Mild|,168,,252,,88|||||,,,,,Dark]Tera Captain|Bellibolt|ShucaBerry|Static|Reflect,Toxic,SlackOff,VoltSwitch|Calm|248,,8,,252,||,0,,,,|||,,,,,Steel]Toxapex||ShucaBerry|Regenerator|PoisonJab,Infestation,BanefulBunker,Recover|Careful|248,,72,,188,|||||,,,,,Poison]Ting-Lu||RockyHelmet|VesselofRuin|Earthquake,StealthRock,HeavySlam,Ruination|Adamant|96,,132,,252,28|||||,,,,,Dark","Tera Captain|ThundurusTherian|ChoiceSpecs|VoltAbsorb|TeraBlast,VoltSwitch,Thunderbolt,GrassKnot|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Great Tusk||HeavyDutyBoots|Protosynthesis|RapidSpin,IceSpinner,HeadlongRush,StealthRock|Jolly|,252,,,4,252|||||,,,,,Ground]Sableye||Leftovers|Prankster|WillOWisp,Encore,KnockOff,Recover|Careful|252,4,,,252,|||||,,,,,Dark]Hatterene||Leftovers|MagicBounce|DrainingKiss,Nuzzle,CalmMind,Psyshock|Bold|252,,252,4,,|||||,,,,,Psychic]Volcanion||ChoiceScarf|WaterAbsorb|SludgeWave,Flamethrower,SteamEruption,EarthPower|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Kingambit||ShucaBerry|SupremeOverlord|SwordsDance,SuckerPunch,IronHead,LowKick|Adamant|236,252,,,,20|||||,,,,,Dark"], + ["Darkrai||MirrorHerb|BadDreams|DarkPulse,SludgeBomb,BrickBreak,NightShade|Timid|40,,,252,,216|||||,,,,,Dark]Tera Captain|Latias|GrassySeed|Levitate|CalmMind,StoredPower,Recover,Thunderbolt|Timid|248,,8,,,252||,0,,,,|||,,,,,Electric]Skarmory||Leftovers|Sturdy|BraveBird,Roost,StealthRock,Whirlwind|Careful|248,,8,,252,|||||,,,,,Steel]Sneasler||GrassySeed|Unburden|CloseCombat,Acrobatics,SwordsDance,Substitute|Adamant|,252,,,4,252|||||,,,,,Fighting]Thwackey||Eviolite|GrassySurge|GrassyGlide,LeechSeed,Uturn,KnockOff|Adamant|248,252,,,8,|||||,,,,,Grass]Dusclops||Eviolite|Pressure|NightShade,WillOWisp,Haze,PainSplit|Calm|252,,4,,252,||,0,,,,|||,,,,,Ghost","Klefki||Leftovers|Prankster|ThunderWave,Spikes,Reflect,LightScreen|Calm|252,,4,,252,||,0,,,,|||,,,,,Steel]Iron Bundle||ChoiceSpecs|QuarkDrive|IceBeam,HydroPump,Encore,FlipTurn|Timid|88,,,252,,168|||||,,,,,Ice]Cyclizar||HeavyDutyBoots|Regenerator|RapidSpin,ShedTail,KnockOff,IronHead|Jolly|252,4,,,,252|||||,,,,,Dragon]Tera Captain|Manaphy|Leftovers|Hydration|TailGlow,EnergyBall,Surf,TeraBlast|Bold|,,248,60,,200||,0,,,,|||,,,,,Fairy]Landorus||LifeOrb|SheerForce|NastyPlot,SludgeWave,EarthPower,Gravity|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Tera Captain|Polteageist|WhiteHerb|CursedBody|ShellSmash,TeraBlast,StoredPower,StrengthSap|Modest|,,224,80,,204||,0,,,,|||,,,,,Fire"], + ["Tera Captain|Tyranitar|AssaultVest|SandStream|RockSlide,HeavySlam,Earthquake,Crunch|Careful|252,88,,,160,8|||S||,,,,,Flying]Scizor||Leftovers|Technician|Uturn,BulletPunch,KnockOff,Defog|Impish|248,,252,,,8|||||,,,,,Bug]Slowking||HeavyDutyBoots|Regenerator|ChillyReception,Yawn,Scald,WeatherBall|Sassy|248,,8,,252,||,0,,,,|||,,,,,Water]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Uturn,Earthquake,KnockOff,StealthRock|Careful|248,,,,248,12|||S||,,,,,Steel]Iron Valiant||BoosterEnergy|QuarkDrive|VacuumWave,Psychic,ShadowBall,AuraSphere|Timid|8,,,252,,248||,0,,,,|||,,,,,Fairy]Vikavolt||ThroatSpray|Levitate|Agility,FlashCannon,BugBuzz,EnergyBall|Timid|52,,,252,,204||,0,,,,|S||,,,,,Bug","Tera Captain|Lucario|LifeOrb|Justified|CloseCombat,Crunch,IcePunch,BulletPunch|Adamant|112,252,,,,144|||||,,,,,Steel]Clefable||BabiriBerry|MagicGuard|Moonblast,FireBlast,Moonlight,StealthRock|Calm|252,,4,,252,||,0,,,,|||,,,,,Fairy]Meowscarada||HeavyDutyBoots|Protean|KnockOff,TripleAxel,Uturn,FlowerTrick|Jolly|,252,,,56,200|||||,,,,,Grass]Tera Captain|SandyShocks|Leftovers|Protosynthesis|VoltSwitch,EarthPower,TeraBlast,Spikes|Modest|252,,180,20,,56||,0,,,,|||,,,,,Water]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,Encore,FlipTurn|Modest|28,,,252,,228|||||,,,,,Ice]Cinccino||HeavyDutyBoots|SkillLink|TidyUp,TailSlap,RockBlast,TripleAxel|Adamant|48,252,,,,208|||||,,,,,Normal"], + ["Primarina||ChoiceScarf|Torrent|Moonblast,HydroPump,IceBeam,FlipTurn|Timid|72,,,252,,184|||||,,,,,Water]Great Tusk||EjectPack|Protosynthesis|CloseCombat,HeadlongRush,IceSpinner,RapidSpin|Adamant|,252,72,,,184|||||,,,,,Ground]Arcanine||Leftovers|Intimidate|Flamethrower,Protect,WillOWisp,MorningSun|Impish|252,,252,,4,||,0,,,,|||,,,,,Fire]Latios||ColburBerry|Levitate|Psychic,ShadowBall,AuraSphere,Protect|Timid|72,,,252,,184||,0,,,,|||,,,,,Dragon]Tera Captain|Weavile|LifeOrb|Pressure|IceShard,KnockOff,TeraBlast,SwordsDance|Adamant|,252,68,,,188|||||,,,,,Psychic]Corviknight||Leftovers|Pressure|IronDefense,BodyPress,Roost,BraveBird|Impish|252,,252,,4,|||||,,,,,Flying","Darkrai||BlackGlasses|BadDreams|NastyPlot,DarkPulse,Psychic,SludgeBomb|Timid|80,,,252,,176||,0,,,,|||,,,,,Dark]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|Discharge,GrassKnot,VoltSwitch,TeraBlast|Timid|56,,,252,,200||,0,,,,|||,,,,,Water]Flygon||ExpertBelt|Levitate|FirstImpression,EarthPower,Flamethrower,StealthRock|Hasty|,204,,88,,216|||||,,,,,Ground]Urshifu-Rapid-Strike||ChoiceScarf|UnseenFist|SurgingStrikes,Uturn,CloseCombat,Liquidation|Adamant|,252,152,,,104|||||,,,,,Fighting]Metagross||ColburBerry|ClearBody|IronHead,BulletPunch,PsychicFangs,KnockOff|Adamant|80,252,,,,176|||||,,,,,Steel]Weezing-Galar||RockyHelmet|Levitate|StrangeSteam,Flamethrower,Memento,WillOWisp|Bold|,,252,176,,80||,0,,,,|||,,,,,Poison"], + ["Zoroark-Hisui||Leftovers|Illusion|Substitute,CalmMind,FocusBlast,HyperVoice|Timid|,,,252,4,252||,0,,,,|||,,,,,Normal]Tyranitar||ChoiceScarf|SandStream|KnockOff,Earthquake,RockSlide,IceBeam|Hasty|,252,,36,,220|||||,,,,,Rock]Mandibuzz||HeavyDutyBoots|Overcoat|Uturn,Roost,Defog,KnockOff|Relaxed|248,,252,,8,|||||,,,,,Dark]Excadrill||LumBerry|SandRush|StealthRock,Earthquake,IronHead,RapidSpin|Jolly|8,252,,,,248|||||,,,,,Ground]Minior-Violet||WhiteHerb|ShieldsDown|Substitute,ShellSmash,Psychic,EarthPower|Modest|252,,,252,4,||,0,,,,|||,,,,,Fairy]Tera Captain|Latias|Leftovers|Levitate|Substitute,CalmMind,AuraSphere,MistBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fighting","Manaphy||Leftovers|Hydration|AcidArmor,TakeHeart,Scald,StoredPower|Timid|248,,100,,,160||,0,,,,|||,,,,,Water]Kyurem||HeavyDutyBoots|Pressure|WeatherBall,FreezeDry,EarthPower,RainDance|Timid|,,56,252,,200||,0,,,,|||,,,,,Dragon]Tera Captain|Oricorio|HeavyDutyBoots|Dancer|QuiverDance,RevelationDance,Hurricane,Roost|Timid|,,40,252,,216||,0,,,,|||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,PowerWhip,Encore|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|GreatTusk|Leftovers|Protosynthesis|BodyPress,KnockOff,StealthRock,Rest|Impish|248,8,252,,,|||||,,,,,Fighting]Hatterene||Leftovers|MagicBounce|CalmMind,DrainingKiss,MysticalFire,Nuzzle|Calm|248,,8,,252,|||||,,,,,Psychic"], + ["Garchomp||RoseliBerry|RoughSkin|SwordsDance,StealthRock,Earthquake,Liquidation|Jolly|,252,,,56,200|||||,,,,,Dragon]Metagross||WeaknessPolicy|ClearBody|Agility,IcePunch,Earthquake,BrickBreak|Adamant|228,252,,,,28|||||,,,,,Steel]Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|SwordsDance,Trailblaze,KnockOff,TeraBlast|Jolly|,252,,,80,176|||||,,,,,Poison]Tornadus-Therian||ChoiceScarf|Regenerator|BleakwindStorm,DarkPulse,Uturn,FocusBlast|Timid|120,,4,160,,224|||||,,,,,Flying]Iron Valiant||AirBalloon|QuarkDrive|Substitute,CalmMind,Moonblast,ShadowBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Morgrem||LightClay|Prankster|Reflect,LightScreen,PartingShot,ThroatChop|Careful|252,,4,,252,|||||,,,,,Dark","Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,LeafBlade,SpiritBreak|Jolly|,252,,,4,252|||||,,,,,Fairy]Gliscor||ToxicOrb|PoisonHeal|StealthRock,Earthquake,Spikes,KnockOff|Impish|244,,252,,12,|||||,,,,,Ground]Ribombee||FocusSash|ShieldDust|StunSpore,StickyWeb,Tailwind,AlluringVoice|Timid|248,,,8,,252||,0,,,,|||,,,,,Bug]Tera Captain|Gholdengo|AirBalloon|GoodasGold|ShadowBall,MakeItRain,FocusBlast,ThunderWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Tera Captain|Hitmonlee|PsychicSeed|Unburden|CloseCombat,RapidSpin,Earthquake,StoneEdge|Adamant|,252,,,4,252|||||,,,,,Steel]Indeedee||ChoiceScarf|PsychicSurge|ExpandingForce,HyperVoice,ShadowBall,EnergyBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Psychic"], + ["Iron Bundle||ChoiceScarf|QuarkDrive|HydroPump,IceBeam,FreezeDry,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Tera Captain|LilligantHisui|WideLens|Hustle|CloseCombat,VictoryDance,TeraBlast,IceSpinner|Adamant|,252,,4,,252|||||,,,,,Ghost]Tera Captain|Clodsire|Leftovers|Unaware|Spikes,Haze,Earthquake,GunkShot|Careful|248,,8,,252,|||||,,,,,Flying]Kingambit||BlackGlasses|SupremeOverlord|SwordsDance,KowtowCleave,SuckerPunch,PoisonJab|Adamant|252,252,,,4,|||||,,,,,Dark]Weezing-Galar||RockyHelmet|Levitate|Defog,WillOWisp,SludgeBomb,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Raging Bolt||BoosterEnergy|Protosynthesis|CalmMind,Thunderclap,Thunderbolt,DracoMeteor|Modest|252,,,252,4,||,20,,,,|||,,,,,Electric","Tera Captain|Meowscarada|ChoiceBand|Protean|LowKick,FlowerTrick,TripleAxel,Uturn|Adamant|252,252,,,4,|||||,,,,,Ice]Tera Captain|Drifblim|FlameOrb|FlareBoost|StoredPower,StrengthSap,CalmMind,TeraBlast|Bold|252,,164,,76,16||,0,,,,|||,,,,,Fighting]Iron Boulder||ChoiceBand|QuarkDrive|MightyCleave,RockBlast,CloseCombat,ZenHeadbutt|Jolly|,252,,,4,252|||||,,,,,Rock]Hippowdon||RindoBerry|SandStream|Yawn,Roar,StealthRock,Earthquake|Impish|252,4,252,,,|||||,,,,,Ground]Slowking-Galar||AssaultVest|Regenerator|FutureSight,SludgeBomb,FocusBlast,IceBeam|Calm|112,,,144,252,||,0,,,,|||,,,,,Poison]Moltres||HeavyDutyBoots|FlameBody|WillOWisp,Uturn,Roost,Flamethrower|Bold|248,,252,8,,|||||,,,,,Fire"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,SpiritBreak,KnockOff,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Fairy]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,Earthquake,IceSpinner,RapidSpin|Jolly|48,252,,,,208|||||,,,,,Ground]Tera Captain|Zapdos|HeavyDutyBoots|Static|Thunderbolt,Hurricane,TeraBlast,Roost|Timid|108,,,252,,148||,0,,,,|||,,,,,Grass]Tera Captain|Suicune|Leftovers|Pressure|CalmMind,Scald,IceBeam,Substitute|Timid|252,,,80,,176||,0,,,,|||,,,,,Fairy]Incineroar||HeavyDutyBoots|Intimidate|KnockOff,WillOWisp,FlareBlitz,PartingShot|Careful|,64,,,252,192|||||,,,,,Fire]Dragalge||SitrusBerry|Adaptability|DracoMeteor,SludgeWave,ToxicSpikes,FlipTurn|Modest|248,,,252,,8|||||,,,,,Poison","Iron Valiant||RoseliBerry|QuarkDrive|Encore,Moonblast,Psyshock,AuraSphere|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Gholdengo||ColburBerry|GoodasGold|FocusBlast,Hex,Recover,ThunderWave|Impish|248,,252,,8,||,0,,,,|||,,,,,Steel]Tera Captain|Armarouge|ChoiceScarf|FlashFire|ArmorCannon,Psyshock,Trick,AuraSphere|Timid|,,124,236,,148||,0,,,,|||,,,,,Fighting]Tera Captain|Salamence|ClearAmulet|Moxie|DragonDance,Roost,TeraBlast,DualWingbeat|Jolly|88,252,16,,16,136|||||,,,,,Electric]Glimmora||WeaknessPolicy|ToxicDebris|RockPolish,PowerGem,EarthPower,SludgeWave|Timid|80,,,252,8,168||,0,,,,|||,,,,,Rock]Gastrodon||RindoBerry|StormDrain|StealthRock,Recover,IceBeam,Earthquake|Sassy|192,12,148,,156,|||||,,,,,Water"], + ["Darkrai||WeaknessPolicy|BadDreams|DarkPulse,SludgeBomb,SuckerPunch,CalmMind|Hasty|92,,,164,,252|||||,,,,,Dark]Tera Captain|LandorusTherian|SoftSand|Intimidate|Earthquake,RockTomb,Gravity,Uturn|Jolly|40,252,,,,216|||||,,,,,Ground]Quaquaval||HeavyDutyBoots|Moxie|CloseCombat,AquaStep,Uturn,RapidSpin|Adamant|200,100,,,,208|||||,,,,,Water]Archaludon||ChestoBerry|Stamina|FlashCannon,DragonPulse,ElectroShot,Rest|Modest|136,,,76,252,44||,0,,,,|||,,,,,Steel]Tera Captain|Diancie|SitrusBerry|ClearBody|DrainingKiss,PowerGem,Spikes,BatonPass|Bold|252,,108,120,,28||,0,,,,|||,,,,,Fairy]Mesprit||RowapBerry|Levitate|Psyshock,StealthRock,LightScreen,Uturn|Calm|232,,,,252,24|||||,,,,,Psychic","Cyclizar||ChoiceScarf|Regenerator|ShedTail,RapidSpin,KnockOff,PowerWhip|Lonely|252,184,,,,72|||||,,,,,Dragon]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,EarthPower,RockPolish,CalmMind|Calm|252,,,,112,144||,15,,,,|||,,,,,Stellar]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,DragonPulse,Thunderbolt,Thunderclap|Modest|252,,,252,4,||,20,,,,|||,,,,,Fairy]Slowking||ExpertBelt|Regenerator|CalmMind,Psychic,FocusBlast,IceBeam|Modest|252,,224,32,,||,0,,,,|||,,,,,Water]Tera Captain|Flygon|YacheBerry|Levitate|Uturn,StealthRock,Earthquake,FirstImpression|Careful|252,4,,,252,|||||,,,,,Poison]Ogerpon-Cornerstone||CornerstoneMask|Sturdy|KnockOff,Uturn,Superpower,WoodHammer|Adamant|,252,96,,,160|||||,,,,,Rock"], + ["Great Tusk||LifeOrb|Protosynthesis|HeadlongRush,CloseCombat,TemperFlare,RapidSpin|Jolly|252,4,,,,252|||||,,,,,Ground]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|DragonPulse,WeatherBall,Thunderclap,VoltSwitch|Modest|252,,4,252,,||,20,,,,|||,,,,,Water]Sneasler||AssaultVest|PoisonTouch|FakeOut,CloseCombat,DireClaw,Uturn|Jolly|8,252,,,,248|||||,,,,,Fighting]Rillaboom||RockyHelmet|GrassySurge|FakeOut,GrassyGlide,Endure,Uturn|Impish|248,,252,,8,|||||,,,,,Grass]Empoleon||Leftovers|Torrent|StealthRock,IceBeam,KnockOff,Roost|Sassy|252,,,4,252,|||||,,,,,Water]Tera Captain|Mesprit|ColburBerry|Levitate|PsychicNoise,DazzlingGleam,KnockOff,Encore|Sassy|248,8,,,252,|||||,,,,,Fairy","Gouging Fire||LoadedDice|Protosynthesis|MorningSun,ScaleShot,BurningBulwark,FlareBlitz|Jolly|28,252,,,4,224|||||,,,,,Fire]Tera Captain|WalkingWake|CovertCloak|Protosynthesis|Agility,HydroSteam,DragonPulse,TeraBlast|Modest|64,,,252,4,188||,0,,,,|||,,,,,Electric]Kilowattrel||Leftovers|VoltAbsorb|Uturn,ThunderWave,Thunderbolt,AirSlash|Timid|36,,,252,4,216|||||,,,,,Electric]Bronzong||ColburBerry|Levitate|GyroBall,BodyPress,ZenHeadbutt,TrickRoom|Relaxed|252,,252,4,,||,,,,,0|||,,,,,Steel]Torkoal||HeavyDutyBoots|Drought|LavaPlume,RapidSpin,ClearSmog,ScorchingSands|Bold|248,,252,,8,|||||,,,,,Fire]Tera Captain|Comfey|GrassySeed|Triage|CalmMind,DrainingKiss,GigaDrain,StoredPower|Timid|100,,,252,4,152||,0,,,,|||,,,,,Fairy"], + ["Mamoswine||RockyHelmet|Oblivious|IcicleSpear,Earthquake,IceShard,StealthRock|Adamant|168,252,12,,60,16|||||,,,,,Ice]Tera Captain|Latias|Leftovers|Levitate|DragonPulse,MistBall,Recover,CalmMind|Timid|48,,252,4,28,176||,0,,,,|||,,,,,Poison]Empoleon||AdrenalineOrb|Competitive|Surf,FlipTurn,Roost,VacuumWave|Bold|216,,72,16,,204|||||,,,,,Water]Samurott-Hisui||ChopleBerry|Sharpness|CeaselessEdge,RazorShell,FlipTurn,SwordsDance|Adamant|248,252,,,,8|||||,,,,,Water]Muk||RockyHelmet|StickyHold|KnockOff,IcePunch,PainSplit,DrainPunch|Impish|252,,248,,8,|||||,,,,,Poison]Zapdos||HeavyDutyBoots|Static|Thunderbolt,Hurricane,Roost,Uturn|Timid|,,4,252,,252|||||,,,,,Electric","Tera Captain|Mew|LoadedDice|Synchronize|DragonDance,DrainPunch,IcicleSpear,Taunt|Adamant|16,252,,,,240|||||,,,,,Water]Great Tusk||CobaBerry|Protosynthesis|RapidSpin,KnockOff,HeadSmash,CloseCombat|Adamant|76,252,,,,180|||||,,,,,Ground]Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,PartingShot,Taunt|Calm|252,,4,,252,||,0,,,,|||,,,,,Dark]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,FlipTurn,Encore|Timid|88,,,252,4,164|||||,,,,,Ice]Pecharunt||BlackSludge|PoisonPuppeteer|NastyPlot,ShadowBall,MalignantChain,Recover|Timid|20,,,252,4,232||,0,,,,|||,,,,,Poison]Orthworm||SitrusBerry|EarthEater|ShedTail,Spikes,IronHead,MetalBurst|Impish|248,8,252,,,|||||,,,,,Steel"], + ["Tera Captain|Latias|SafetyGoggles|Levitate|Recover,CalmMind,StoredPower,Surf|Timid|252,,,,72,184||,0,,,,|S||,,,,,Poison]Tinkaton||MetalCoat|MoldBreaker|GigatonHammer,FakeOut,Encore,ThunderWave|Jolly|108,176,,,,224|||||,,,,,Fairy]Great Tusk||ExpertBelt|Protosynthesis|TemperFlare,IceSpinner,HeadlongRush,RapidSpin|Adamant|252,96,,,,160|||||,,,,,Ground]Meowscarada||ChoiceScarf|Protean|TripleAxel,Uturn,BrickBreak,FlowerTrick|Jolly|24,252,,,,232|||||,,,,,Grass]Rotom-Wash||CovertCloak|Levitate|HydroPump,VoltSwitch,WillOWisp,PainSplit|Calm|252,,,4,252,||,0,,,,|S||,,,,,Electric]Tera Captain|TyphlosionHisui|ChoiceSpecs|Frisk|Overheat,ShadowBall,Flamethrower,Earthquake|Hasty|,4,,252,,252|||S||,,,,,Fire","Chi-Yu||ChoiceSpecs|BeadsofRuin|Flamethrower,Overheat,DarkPulse,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,Gravity,SludgeBomb,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Scizor||ChoiceBand|Technician|KnockOff,Uturn,BulletPunch,CloseCombat|Adamant|248,252,,,8,|||||,,,,,Bug]Tera Captain|WoChien|Leftovers|TabletsofRuin|Ruination,LeechSeed,KnockOff,Protect|Sassy|252,4,,,252,|||||,,,,,Poison]Scream Tail||HeavyDutyBoots|Protosynthesis|PlayRough,Encore,Wish,Protect|Jolly|252,4,,,,252|||||,,,,,Fairy]Venomoth||HeavyDutyBoots|TintedLens|QuiverDance,BugBuzz,SludgeBomb,SleepPowder|Modest|,,,252,4,252||,0,,,,|||,,,,,Bug"], + ["Urshifu-Rapid-Strike||PunchingGlove|UnseenFist|SurgingStrikes,DrainPunch,SwordsDance,AquaJet|Jolly|4,252,,,,252|||||,,,,,Fighting]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,NastyPlot,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Glimmora||FocusSash|ToxicDebris|MortalSpin,EnergyBall,StealthRock,PowerGem|Timid|4,,,252,,252|||||,,,,,Rock]Keldeo||ChoiceSpecs|Justified|SecretSword,HydroPump,Surf,VacuumWave|Timid|4,,,252,,252||,0,,,,|||,,,,,Water]Tera Captain|Incineroar|HeavyDutyBoots|Intimidate|FlareBlitz,KnockOff,WillOWisp,PartingShot|Adamant|252,252,,,,|||||,,,,,Ghost]Masquerain||FocusSash|Intimidate|Surf,IceBeam,StickyWeb,Uturn|Modest|252,,4,252,,|||||,,,,,Bug","Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|KnockOff,RapidSpin,HeadlongRush,CloseCombat|Jolly|8,252,,,,248|||||,,,,,Dragon]Greninja-Bond||LifeOrb|BattleBond|Surf,Extrasensory,DarkPulse,IceBeam|Timid|96,,,252,,160|||||,,,,,Water]Scizor||AssaultVest|Technician|Uturn,BulletPunch,DualWingbeat,KnockOff|Adamant|248,136,,,112,12|||||,,,,,Bug]Dragalge||ShucaBerry|Adaptability|SludgeBomb,FlipTurn,ToxicSpikes,DragonPulse|Sassy|252,,172,20,64,|||||,,,,,Poison]Bellibolt||RockyHelmet|Electromorphosis|VoltSwitch,SlackOff,AcidSpray,Toxic|Bold|252,,252,,4,||,0,,,,|||,,,,,Electric]Enamorus||ChoiceScarf|CuteCharm|Moonblast,EarthPower,Psychic,HealingWish|Timid|72,,,252,,184||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|Comfey|LifeOrb|Triage|DrainingKiss,TeraBlast,StoredPower,CalmMind|Modest|,,4,252,,252||,0,,,,|S||,,,,,Fire]Garchomp||RockyHelmet|RoughSkin|ScorchingSands,Surf,Rest,StealthRock|Bold|248,,108,16,,136||,0,,,,|||,,,,,Dragon]Scizor||AssaultVest|Technician|BulletPunch,Uturn,KnockOff,QuickAttack|Adamant|248,252,,,8,|||||,,,,,Bug]Tera Captain|Raikou|Leftovers|Pressure|Thunderbolt,Scald,VoltSwitch,CalmMind|Timid|40,,,252,,216||,0,,,,|||,,,,,Water]Toedscruel||Leftovers|MyceliumMight|GigaDrain,Toxic,RapidSpin,Spikes|Calm|248,,8,,252,|||||,,,,,Ground]Cinderace||ChoiceBand|Libero|PyroBall,SuckerPunch,HighJumpKick,Uturn|Jolly|,252,,,4,252|||||,,,,,Fire","Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|HeadlongRush,BulkUp,RapidSpin,TemperFlare|Jolly|252,4,,,,252|||||,,,,,Ground]Manaphy||Leftovers|Hydration|EnergyBall,TakeHeart,Scald,IceBeam|Bold|252,,188,4,,64||,0,,,,|||,,,,,Fairy]Seviper||ChoiceScarf|Infiltrator|Glare,KnockOff,Switcheroo,Flamethrower|Timid|172,,,96,,240|||||,,,,,Poison]Rotom-Heat||ChoiceSpecs|Levitate|Overheat,Trick,VoltSwitch,WillOWisp|Timid|252,,4,144,,108||,0,,,,|||,,,,,Electric]Roaring Moon||ChoiceBand|Protosynthesis|Uturn,DragonClaw,StompingTantrum,KnockOff|Adamant|,252,,,4,252|||||,,,,,Dragon]Rillaboom||AssaultVest|GrassySurge|GrassyGlide,KnockOff,WoodHammer,Uturn|Adamant|68,252,,,4,184|||||,,,,,Grass"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CalmMind,Thunderbolt,Moonblast,Encore|Timid|,,48,252,,208||,0,,,,|||,,,,,Fairy]Landorus-Therian||SitrusBerry|Intimidate|Taunt,Earthquake,Uturn,SmackDown|Jolly|32,252,,,,224|||S||,,,,,Ground]Tera Captain|Metagross|LifeOrb|ClearBody|Agility,PsychicFangs,ThunderPunch,Earthquake|Adamant|56,252,,,,200|||S||,,,,,Flying]Tera Captain|Gyarados|HeavyDutyBoots|Moxie|Crunch,DragonDance,TeraBlast,Waterfall|Adamant|,252,,4,,252|||S||,,,,,Electric]Glimmora||FocusSash|ToxicDebris|PowerGem,StealthRock,EnergyBall,MortalSpin|Timid|,,,252,4,252|||S||,,,,,Rock]Entei||RockyHelmet|InnerFocus|SacredFire,Crunch,StompingTantrum,ExtremeSpeed|Jolly|100,252,,,,156|||S||,,,,,Fire","Tera Captain|Yanmega|ThroatSpray|SpeedBoost|BugBuzz,AirSlash,ShadowBall,Protect|Modest|68,,,252,188,||,0,,,,|||,,,,,Ghost]Eelektross||AssaultVest|Levitate|Liquidation,Uturn,ZenHeadbutt,KnockOff|Adamant|252,252,,,4,|||||,,,,,Electric]Corviknight||Leftovers|Pressure|Defog,Roost,Uturn,IronHead|Impish|252,,4,,252,|||||,,,,,Flying]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|RapidSpin,IceSpinner,HeadlongRush,RockSlide|Adamant|120,252,,,,136|||||,,,,,Water]Latios||ChoiceSpecs|Levitate|FlipTurn,LusterPurge,ShadowBall,IceBeam|Timid|80,,,252,,176|||||,,,,,Dragon]Vaporeon||Leftovers|WaterAbsorb|FlipTurn,Wish,Protect,Surf|Modest|252,,252,4,,|||||,,,,,Water"], + ["Darkrai||Leftovers|BadDreams|DarkPulse,IceBeam,Substitute,NastyPlot|Modest|4,,,252,,252||,0,,,,|||,,,,,Dark]Urshifu||ChoiceBand|UnseenFist|CloseCombat,WickedBlow,SuckerPunch,Uturn|Jolly|16,252,,,,240|||||,,,,,Fighting]Tera Captain|ScreamTail|Leftovers|Protosynthesis|PlayRough,Wish,Protect,BulkUp|Calm|252,,,4,252,|||||,,,,,Fairy]Pecharunt||ShucaBerry|PoisonPuppeteer|MalignantChain,ShadowBall,Toxic,Recover|Timid|228,,,28,,252||,0,,,,|||,,,,,Poison]Corviknight||Leftovers|Pressure|BodyPress,Roost,IronDefense,Uturn|Impish|252,4,252,,,|||||,,,,,Flying]Lanturn||Leftovers|VoltAbsorb|IcyWind,EerieImpulse,FlipTurn,Scald|Calm|252,,,4,252,|||||,,,,,Water","Ninetales||HeatRock|Drought|Overheat,WillOWisp,Encore,HealingWish|Calm|252,,4,,252,||,0,,,,|||,,,,,Fire]Hatterene||LightClay|MagicBounce|DrainingKiss,MysticalFire,CalmMind,LightScreen|Calm|252,,4,,252,||,0,,,,|||,,,,,Psychic]Great Tusk||ExpertBelt|Protosynthesis|HeadlongRush,HeavySlam,TemperFlare,RapidSpin|Jolly|56,252,,,,200|||||,,,,,Ground]Tera Captain|RagingBolt|ClearAmulet|Protosynthesis|Thunderbolt,SolarBeam,Thunderclap,CalmMind|Modest|144,,,252,,112||,20,,,,|||,,,,,Steel]Walking Wake||ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,DragonPulse,FlipTurn|Timid|8,,,244,4,252|||||,,,,,Water]Gouging Fire||ChoiceBand|Protosynthesis|HeatCrash,FlareBlitz,Earthquake,PsychicFangs|Jolly|88,168,,,,252|||||,,,,,Fire"], + ["Tera Captain|Okidogi|ChoiceScarf|ToxicChain|CloseCombat,KnockOff,GunkShot,HighHorsepower|Adamant|,252,,,4,252|||||,,,,,Fighting]Scizor||ChoiceScarf|Technician|Uturn,KnockOff,BulletPunch,IronHead|Jolly|,252,,,4,252|||||,,,,,Bug]Mandibuzz||HeavyDutyBoots|Overcoat|Defog,Roost,Uturn,Toxic|Impish|248,,252,,8,|||||,,,,,Dark]Rotom-Mow||ChoiceScarf|Levitate|VoltSwitch,LeafStorm,Trick,Thunderbolt|Modest|80,,,252,4,172||,0,,,,|||,,,,,Electric]Tera Captain|Hydreigon|ChoiceSpecs|Levitate|DracoMeteor,FireBlast,HydroPump,StealthRock|Timid|76,,,252,4,176||,0,,,,|||,,,,,Dark]Munkidori||ChoiceSpecs|ToxicChain|Psychic,FocusBlast,SludgeBomb,Uturn|Modest|,,,252,4,252|||||,,,,,Poison","Tera Captain|GreatTusk|LumBerry|Protosynthesis|Earthquake,CloseCombat,StealthRock,SupercellSlam|Adamant|,252,,,156,100|||||,,,,,Electric]Tera Captain|Espeon|ChoiceScarf|MagicBounce|AlluringVoice,Psyshock,ThunderWave,FutureSight|Timid|,,,252,32,224||,0,,,,|||,,,,,Fire]Klefki||IronBall|Prankster|DrainingKiss,Switcheroo,ThunderWave,Spikes|Calm|252,,,4,252,||,0,,,,|||,,,,,Steel]Manaphy||AssaultVest|Hydration|IceBeam,Surf,Psychic,FlipTurn|Timid|120,,,148,,240|||||,,,,,Water]Roaring Moon||ChoiceBand|Protosynthesis|KnockOff,Uturn,Earthquake,Outrage|Adamant|52,252,,,,204|||||,,,,,Dragon]Rotom-Heat||ChoiceSpecs|Levitate|VoltSwitch,Overheat,WillOWisp,Thunderbolt|Modest|148,,144,108,,108||,0,,,,|||,,,,,Electric"], + ["Sneasler||GrassySeed|Unburden|SwordsDance,Acrobatics,CloseCombat,DireClaw|Adamant|,252,,,4,252|||||,,,,,Fighting]Ursaluna-Bloodmoon||LifeOrb|MindsEye|BloodMoon,Moonlight,EarthPower,CalmMind|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground]Gouging Fire||BoosterEnergy|Protosynthesis|BurningBulwark,HeatCrash,IronHead,Earthquake|Jolly|84,168,,,4,252|||||,,,,,Fire]Tera Captain|Rillaboom|AssaultVest|GrassySurge|Uturn,KnockOff,GrassyGlide,FakeOut|Jolly|,252,,,4,252|||||,,,,,Grass]Braviary-Hisui||LifeOrb|SheerForce|Agility,Psychic,AirSlash,HeatWave|Timid|,,,252,4,252||,0,,,,|S||,,,,,Psychic]Tera Captain|Ribombee|FocusSash|HoneyGather|StickyWeb,QuiverDance,Moonblast,TeraBlast|Modest|,,,252,4,252||,0,,,,|S||,,,,,Ground","Sneasler||WhiteHerb|Unburden|Acrobatics,CloseCombat,DireClaw,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fighting]Talonflame||HeavyDutyBoots|FlameBody|BraveBird,Defog,Roost,Uturn|Jolly|,252,,,4,252|||||,,,,,Fire]Dachsbun||Leftovers|WellBakedBody|BodyPress,Wish,Protect,Yawn|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Tera Captain|Froslass|HeavyDutyBoots|CursedBody|IceBeam,Taunt,Spikes,DestinyBond|Timid|252,,152,,,104||,0,,,,|||,,,,,Dark]Tera Captain|RagingBolt|ChoiceSpecs|Protosynthesis|TeraBlast,Thunderbolt,DragonPulse,VoltSwitch|Timid|80,,,252,,176||,20,,,,|||,,,,,Flying]Slowking||Leftovers|Regenerator|ChillyReception,IceBeam,PsychicNoise,Scald|Calm|252,,,4,252,||,0,,,,|||,,,,,Water"], + ["Palafin-Hero||AssaultVest|ZerotoHero|FlipTurn,JetPunch,IcePunch,ZenHeadbutt|Adamant|60,252,,,,196|||||,,,,,Water]Iron Treads||HeavyDutyBoots|QuarkDrive|HighHorsepower,IceSpinner,RapidSpin,KnockOff|Adamant|,252,,,108,148|||||,,,,,Ground]Tera Captain|Rillaboom|Leftovers|GrassySurge|SwordsDance,GrassyGlide,TeraBlast,WoodHammer|Jolly|40,252,,,,216|||||,,,,,Fairy]Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,ThunderWave,SpiritBreak|Impish|252,,120,,136,|||||,,,,,Dark]Tera Captain|Armarouge|ChoiceScarf|FlashFire|Trick,Psychic,EnergyBall,ArmorCannon|Timid|,,,252,4,252||,0,,,,|||,,,,,Grass]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,Uturn,KnockOff,BleakwindStorm|Timid|248,,,,120,140|||||,,,,,Flying","Ting-Lu||Leftovers|VesselofRuin|StealthRock,StompingTantrum,Whirlwind,StoneEdge|Careful|248,,108,,152,|||||,,,,,Dark]Tera Captain|GreninjaBond|ExpertBelt|BattleBond|Surf,IceBeam,TeraBlast,SludgeWave|Timid|,,,252,4,252|||||,,,,,Grass]Toxapex||ClearAmulet|Regenerator|Infestation,SludgeBomb,Recover,Surf|Modest|248,,8,252,,||,0,,,,|||,,,,,Poison]Tsareena||AssaultVest|QueenlyMajesty|RapidSpin,TripleAxel,KnockOff,PowerWhip|Jolly|40,252,,,4,212|||||,,,,,Grass]Tornadus-Therian||SharpBeak|Regenerator|BleakwindStorm,HeatWave,Uturn,Tailwind|Timid|248,,,124,,136|||||,,,,,Flying]Dragonite||HeavyDutyBoots|Multiscale|DragonDance,ExtremeSpeed,ThunderPunch,IceSpinner|Adamant|192,252,,,,64|||||,,,,,Dragon"], + ["Magnezone||ChoiceSpecs|MagnetPull|Thunderbolt,VoltSwitch,FlashCannon,TriAttack|Modest|52,,,252,,204||,0,,,,|||,,,,,Electric]Decidueye||ChoiceScarf|Overgrow|LeafStorm,ShadowBall,Uturn,Defog|Naive|,36,,252,,220|||||,,,,,Grass]Primarina||Leftovers|Torrent|Surf,FlipTurn,EnergyBall,Haze|Calm|252,,,4,252,|||||,,,,,Water]Hitmontop||EjectPack|Intimidate|RapidSpin,Earthquake,CloseCombat,MachPunch|Impish|252,,252,,4,|||||,,,,,Fighting]Tera Captain|Landorus|LifeOrb|SandForce|EarthPower,StealthRock,SludgeWave,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Gouging Fire||ChoiceBand|Protosynthesis|FlareBlitz,ScaleShot,Outrage,Earthquake|Adamant|,252,,,4,252|||||,,,,,Fire","Corviknight||WacanBerry|Pressure|BodyPress,Roost,Uturn,Defog|Careful|248,,8,,252,|||||,,,,,Flying]Tera Captain|AvaluggHisui|HeavyDutyBoots|Sturdy|Earthquake,RapidSpin,Recover,StoneEdge|Impish|252,4,252,,,|||||,,,,,Ground]Scream Tail||Leftovers|Protosynthesis|Wish,Protect,PlayRough,ThunderWave|Careful|248,8,,,252,|||||,,,,,Fairy]Overqwil||ChestoBerry|PoisonPoint|GunkShot,Crunch,Rest,SleepTalk|Careful|248,8,,,252,|||||,,,,,Dark]Palafin||ChoiceBand|ZerotoHero|JetPunch,IronHead,WaveCrash,FlipTurn|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|SandyShocks|ChoiceScarf|Protosynthesis|EarthPower,TeraBlast,Thunderbolt,VoltSwitch|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice"], + ["Ogerpon-Cornerstone||CornerstoneMask|Sturdy|SwordsDance,HornLeech,IvyCudgel,PowerWhip|Adamant|,252,196,,,60|||||,,,,,Rock]Tera Captain|RagingBolt|WhiteHerb|Protosynthesis|CalmMind,Thunderbolt,Thunderclap,DracoMeteor|Modest|4,,252,252,,||,20,,,,|||,,,,,Bug]Rotom-Heat||HeavyDutyBoots|Levitate|Overheat,WillOWisp,VoltSwitch,SunnyDay|Modest|164,,,192,,152||,0,,,,|||,,,,,Electric]Cyclizar||AguavBerry|Regenerator|ShedTail,RapidSpin,KnockOff,Uturn|Jolly|252,,,,88,168|||||,,,,,Dragon]Terapagos||HeavyDutyBoots|TeraShift|CalmMind,IceBeam,RapidSpin,TeraStarstorm|Modest|152,,,152,120,84|||||,,,,,Stellar]Ribombee||ChoiceScarf|SweetVeil|BugBuzz,Uturn,StickyWeb,Trick|Modest|32,,,224,252,|||||,,,,,Bug","Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,IceBeam,SludgeBomb,Hypnosis|Timid|,,,252,32,224||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,WoodHammer,PlayRough,Encore|Jolly|,252,,,4,252|||||,,,,,Water]Skarmory||RockyHelmet|Sturdy|BraveBird,StealthRock,Whirlwind,Roost|Impish|248,,252,,8,|||||,,,,,Steel]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Toxic,Uturn,Protect|Careful|248,,8,,252,|||||,,,,,Ground]Tera Captain|Cetitan|HeavyDutyBoots|SheerForce|IcicleCrash,IceShard,KnockOff,BellyDrum|Adamant|,252,4,,252,|||||,,,,,Steel]Slowking-Galar||MirrorHerb|Regenerator|CalmMind,Psyshock,ToxicSpikes,SlackOff|Calm|248,,108,,152,||,0,,,,|||,,,,,Poison"], + ["Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|Thunderclap,Thunderbolt,DragonPulse,CalmMind|Modest|,,,252,236,20||,20,,,,|||,,,,,Water]Krookodile||PasshoBerry|Intimidate|StealthRock,Earthquake,KnockOff,Taunt|Adamant|252,172,,,,84|||||,,,,,Ground]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,PsychoCut,SacredSword|Jolly|,252,24,,,232|||||,,,,,Rock]Tera Captain|WeezingGalar|CustapBerry|NeutralizingGas|StrangeSteam,Thunderbolt,Endure,DestinyBond|Bold|252,,24,,232,||,0,,,,|||,,,,,Steel]Iron Bundle||ChoiceScarf|QuarkDrive|FreezeDry,IceBeam,HydroPump,FlipTurn|Timid|,,120,252,,136|||||,,,,,Ice]Corviknight||WacanBerry|MirrorArmor|BraveBird,BodyPress,Roost,SunnyDay|Impish|228,,,,112,168|||||,,,,,Flying","Tera Captain|Basculegion|ChoiceBand|SwiftSwim|WaveCrash,FlipTurn,AquaJet,PsychicFangs|Adamant|88,252,,,,168|||||,,,,,Water]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|StealthRock,Uturn,Protect,Earthquake|Careful|252,4,,,252,|||||,,,,,Steel]Archaludon||AssaultVest|Stamina|DracoMeteor,BodyPress,ElectroShot,AuraSphere|Timid|,,,252,80,176||,0,,,,|||,,,,,Steel]Pelipper||DampRock|Drizzle|KnockOff,Uturn,Surf,Roost|Bold|252,,252,,4,|||||,,,,,Water]Iron Valiant||ChoiceScarf|QuarkDrive|VacuumWave,Moonblast,AuraSphere,Thunderbolt|Modest|80,,,252,,176||,0,,,,|||,,,,,Fairy]Grafaiai||BlackSludge|Prankster|PartingShot,Encore,KnockOff,Toxic|Careful|252,,,,8,248|||||,,,,,Poison"], + ["Gurdurr||Eviolite|IronFist|MachPunch,DrainPunch,Defog,IcePunch|Adamant|252,252,,,4,|||||,,,,,Fighting]Iron Valiant||ChoiceScarf|QuarkDrive|ShadowBall,AuraSphere,Moonblast,Thunderbolt|Modest|88,,,252,,168||,0,,,,|||,,,,,Fairy]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,WillOWisp,PainSplit|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Glimmora||FocusSash|ToxicDebris|MortalSpin,EarthPower,SludgeBomb,StealthRock|Modest|92,,4,252,,160|||||,,,,,Rock]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,WillOWisp,SlackOff,AlluringVoice|Calm|248,,,8,252,||,0,,,,|||,,,,,Fairy]Landorus-Therian||RockyHelmet|Intimidate|GrassKnot,StealthRock,Uturn,Earthquake|Jolly|,252,,,,252|||||,,,,,Ground","Tera Captain|GreatTusk|HeavyDutyBoots|Protosynthesis|Earthquake,RapidSpin,KnockOff,IceSpinner|Jolly|252,,,,4,252|||||,,,,,Poison]Tera Captain|Hoopa|ChoiceScarf|Magician|Trick,Psychic,ShadowBall,FocusBlast|Modest|,,,252,4,252||,0,,,,|||,,,,,Ghost]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,Earthquake,Outrage,FlareBlitz|Adamant|,252,,,4,252|||||,,,,,Fire]Ting-Lu||Leftovers|VesselofRuin|Ruination,HeavySlam,Earthquake,StealthRock|Careful|252,,4,,252,|||||,,,,,Dark]Hydrapple||HeavyDutyBoots|Regenerator|EarthPower,NastyPlot,LeafStorm,Recover|Modest|252,,,252,,4||,0,,,,|||,,,,,Grass]Alomomola||HeavyDutyBoots|Regenerator|Wish,Protect,FlipTurn,LightScreen|Impish|252,,252,,4,|||||,,,,,Water"], + ["Iron Bundle||ChoiceScarf|QuarkDrive|FreezeDry,IceBeam,HydroPump,FlipTurn|Timid|112,,,252,,144|||||,,,,,Ice]Moltres||Leftovers|FlameBody|Flamethrower,BraveBird,Uturn,Roost|Calm|252,,,,200,56|||S||,,,,,Fire]Tera Captain|Gyarados|ExpertBelt|Moxie|DragonDance,TemperFlare,Earthquake,Waterfall|Adamant|,252,,,4,252|||S||,,,,,Water]Latios||ChoiceSpecs|Levitate|FlipTurn,DracoMeteor,LusterPurge,Trick|Timid|32,,,252,,224|||||,,,,,Dragon]Tera Captain|Excadrill|FocusSash|SandRush|Earthquake,TeraBlast,SwordsDance,RapidSpin|Jolly|,252,,,4,252|||S||,,,,,Flying]Tyranitar||SmoothRock|SandStream|StealthRock,KnockOff,ThunderWave,Roar|Careful|252,,,,220,36|||||,,,,,Rock","Tera Captain|GreatTusk|AssaultVest|Protosynthesis|CloseCombat,StoneEdge,HeavySlam,RapidSpin|Adamant|,252,,,4,252|||||,,,,,Steel]Enamorus||ChoiceScarf|CuteCharm|Moonblast,HealingWish,Psychic,EarthPower|Modest|,,,252,96,160||,0,,,,|||,,,,,Water]Scizor||AssaultVest|Technician|BulletPunch,Uturn,CloseCombat,KnockOff|Adamant|200,40,,,252,16|||||,,,,,Water]Tera Captain|WoChien|YacheBerry|TabletsofRuin|FoulPlay,GigaDrain,Ruination,StunSpore|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Greninja-Bond||MysticWater|BattleBond|DarkPulse,Uturn,WaterShuriken,Surf|Timid|16,,4,252,,236|||||,,,,,Water]Bellibolt||ShucaBerry|Static|VoltSwitch,MuddyWater,SlackOff,Toxic|Bold|252,,252,,4,||,0,,,,|||,,,,,Water"], + ["Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,WaveCrash,IcePunch|Jolly|104,228,,,,176|||S||,,,,,Water]Iron Valiant||LifeOrb|QuarkDrive|Moonblast,CloseCombat,KnockOff,Encore|Naive|,240,,92,,176|||||,,,,,Fairy]Tera Captain|Latias|Leftovers|Levitate|CalmMind,MistBall,AuraSphere,Recover|Modest|52,,,252,,204||,0,,,,|||,,,,,Poison]Mandibuzz||RockyHelmet|BigPecks|Roost,FoulPlay,Toxic,Defog|Impish|252,,252,,4,||,0,,,,|||,,,,,Dark]Iron Treads||ShucaBerry|QuarkDrive|StealthRock,Earthquake,IronHead,Megahorn|Jolly|144,112,,,,252|||||,,,,,Ground]Rotom-Heat||HeavyDutyBoots|Levitate|Overheat,VoltSwitch,WillOWisp,PainSplit|Bold|252,,108,84,,64||,0,,,,|||,,,,,Electric","Roaring Moon||BoosterEnergy|Protosynthesis|Acrobatics,KnockOff,ZenHeadbutt,BrickBreak|Jolly|36,220,,,,252|||||,,,,,Dragon]Slowking-Galar||BlackSludge|Regenerator|PsychicNoise,Flamethrower,SlackOff,Toxic|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Dipplin||Eviolite|StickyHold|DragonTail,Recover,Growth,GigaDrain|Relaxed|252,4,252,,,|||||,,,,,Grass]Iron Treads||Leftovers|QuarkDrive|Earthquake,IronDefense,BodyPress,RapidSpin|Jolly|200,,56,,,252|||||,,,,,Ground]Primarina||ExpertBelt|LiquidVoice|EnergyBall,PsychicNoise,Moonblast,PerishSong|Modest|252,,52,204,,||,0,,,,|||,,,,,Water]Tera Captain|RotomHeat|ChoiceScarf|Levitate|VoltSwitch,Trick,WillOWisp,Overheat|Modest|252,,,88,,168||,0,,,,|||,,,,,Dragon"], + ["Tera Captain|UrshifuRapidStrike|PunchingGlove|UnseenFist|ThunderPunch,SurgingStrikes,SwordsDance,AquaJet|Jolly|24,252,,,,232|||||,,,,,Electric]Orthworm||SitrusBerry|EarthEater|Earthquake,StealthRock,ShedTail,IronHead|Careful|252,,4,,252,|||||,,,,,Steel]Darkrai||AssaultVest|BadDreams|DarkPulse,SludgeBomb,Blizzard,FocusBlast|Modest|136,,,252,,120||,0,,,,|||,,,,,Dark]Slowking-Galar||ColburBerry|Regenerator|ChillyReception,SludgeBomb,Flamethrower,Surf|Calm|248,,,8,252,||,0,,,,|||,,,,,Poison]Zapdos||HeavyDutyBoots|Static|Discharge,VoltSwitch,Hurricane,Roost|Timid|48,,,252,,208||,0,,,,|||,,,,,Electric]Tera Captain|Delphox|HeavyDutyBoots|Blaze|Encore,Flamethrower,GrassKnot,FocusBlast|Timid|32,,,252,,224||,0,,,,|||,,,,,Grass","Tera Captain|LandorusTherian|LumBerry|Intimidate|BrickBreak,Earthquake,Uturn,StealthRock|Jolly|,252,36,,,220|||S||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,BleakwindStorm,Taunt,ChillingWater|Timid|64,,,176,68,200|||S||,,,,,Flying]Terapagos||ChopleBerry|TeraShift|IceBeam,BugBuzz,EnergyBall,RapidSpin|Modest|248,,,252,8,|||||,,,,,Stellar]Chi-Yu||ChoiceScarf|BeadsofRuin|HeatWave,DarkPulse,Hex,Psychic|Jolly|4,,20,252,,232||,0,,,,|||,,,,,Dark]Slowbro||RedCard|Regenerator|ThunderWave,Scald,CalmMind,FutureSight|Modest|184,,56,252,16,||,0,,,,|||,,,,,Water]Tera Captain|Tinkaton|LightClay|MoldBreaker|FakeOut,KnockOff,Reflect,LightScreen|Jolly|68,,224,,,216|||||,,,,,Dragon"], + ["Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Trick,Thunderbolt|Modest|72,,,248,,188||,0,,,,|||,,,,,Steel]Tera Captain|Mamoswine|AssaultVest|Oblivious|Earthquake,IcicleCrash,IceShard,Trailblaze|Adamant|,228,28,,100,152|||||,,,,,Water]Weezing-Galar||RockyHelmet|Levitate|StrangeSteam,PainSplit,Haze,WillOWisp|Bold|248,,252,,,8||,0,,,,|||,,,,,Poison]Slowking||ColburBerry|Regenerator|Scald,ChillyReception,SlackOff,Psychic|Quiet|252,,52,204,,||,0,,,,17|||,,,,,Water]Tera Captain|Hydreigon|RoseliBerry|Levitate|Flamethrower,FlashCannon,StealthRock,Taunt|Timid|172,,,168,,168||,0,,,,|||,,,,,Fire]Oricorio-Pom-Pom||HeavyDutyBoots|Dancer|RevelationDance,Hurricane,Roost,QuiverDance|Modest|248,,144,68,,48||,0,,,,|||,,,,,Electric","Tera Captain|Ceruledge|HeavyDutyBoots|FlashFire|BitterBlade,Poltergeist,ShadowSneak,SwordsDance|Jolly|40,252,,,,216|||||,,,,,Fairy]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,FlipTurn,BodySlam|Jolly|8,252,,,4,244|||||,,,,,Water]Overqwil||RockyHelmet|Intimidate|Crunch,BarbBarrage,Spikes,DestinyBond|Jolly|248,,44,,,216|||||,,,,,Dark]Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,CloseCombat,KnockOff,RapidSpin|Jolly|,252,,,56,200|||||,,,,,Ground]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,FocusBlast,Uturn|Timid|96,,,8,252,152|||||,,,,,Flying]Tinkaton||AirBalloon|Pickpocket|GigatonHammer,PlayRough,Encore,StealthRock|Jolly|248,,116,,,144|||||,,,,,Fairy"], + ["Hatterene||Leftovers|MagicBounce|CalmMind,DrainingKiss,Psychic,Nuzzle|Calm|248,,8,,252,|||||,,,,,Psychic]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,PowerWhip,Trailblaze,GrassyTerrain|Jolly|,252,,,4,252|||||,,,,,Fire]Bisharp||Eviolite|Defiant|SwordsDance,NightSlash,IronHead,SuckerPunch|Adamant|200,252,,,56,|||||,,,,,Dark]Smeargle||FocusSash|OwnTempo|StickyWeb,CeaselessEdge,ToxicSpikes,RapidSpin|Jolly|252,,,,4,252|||||,,,,,Normal]Tera Captain|GreatTusk|AssaultVest|Protosynthesis|Earthquake,IceSpinner,HeavySlam,RapidSpin|Jolly|120,80,,,152,156|||||,,,,,Ghost]Kyurem||LoadedDice|Pressure|DragonDance,IcicleSpear,ScaleShot,Substitute|Jolly|56,252,,,108,92|||||,,,,,Dragon","Iron Jugulis||PowerHerb|QuarkDrive|AirSlash,Flamethrower,MeteorBeam,FlashCannon|Timid|8,,,252,4,244||,0,,,,|||,,,,,Dark]Tera Captain|IronMoth|AirBalloon|QuarkDrive|SludgeWave,FieryDance,DazzlingGleam,EnergyBall|Timid|120,,,132,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|IronThorns|MentalHerb|QuarkDrive|RockBlast,TeraBlast,Earthquake,DragonDance|Adamant|40,252,,,,216|||||,,,,,Flying]Pincurchin||TerrainExtender|ElectricSurge|ThunderWave,Spikes,Memento,Discharge|Bold|252,,216,,40,||,0,,,,|||,,,,,Electric]Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,SpiritBreak,SwordsDance,Encore|Jolly|48,252,,,,208|||||,,,,,Fairy]Iron Bundle||HeavyDutyBoots|QuarkDrive|IceBeam,FreezeDry,HydroPump,FlipTurn||80,,,252,4,172|||||,,,,,Ice"], + ["Tera Captain|Mew|PowerHerb|Synchronize|Psychic,DarkPulse,MeteorBeam,Agility|Timid|8,,,252,8,240||,0,,,,|||,,,,,Grass]Tera Captain|MoltresGalar|SafetyGoggles|Berserk|FieryWrath,AirSlash,NastyPlot,Agility|Timid|24,,,252,,232||,0,,,,|||,,,,,Steel]Rotom-Heat||HeavyDutyBoots|Levitate|VoltSwitch,Overheat,WillOWisp,Thunder|Calm|252,,,,244,12||,0,,,,|||,,,,,Electric]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,StoneEdge,Megahorn,RapidSpin|Jolly|8,252,,,,248|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,Thunderbolt,Psychic,ShadowBall|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Amoonguss||RockyHelmet|Regenerator|SludgeBomb,GigaDrain,StompingTantrum,Spore|Bold|252,,252,,,4|||||,,,,,Grass","Amoonguss||PayapaBerry|Regenerator|ClearSmog,GigaDrain,Synthesis,SludgeBomb|Calm|240,,164,,104,||,0,,,,|||,,,,,Grass]Moltres||HeavyDutyBoots|FlameBody|Flamethrower,WillOWisp,Uturn,Roost|Bold|252,,252,,4,|||||,,,,,Fire]Tera Captain|IronCrown|BoosterEnergy|QuarkDrive|CalmMind,Substitute,TachyonCutter,TeraBlast|Timid|124,,,152,,232||,20,,,,|||,,,,,Fire]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|Encore,IvyCudgel,HornLeech,Uturn|Jolly|100,,,,232,176|||||,,,,,Water]Tera Captain|Jolteon|ChoiceScarf|VoltAbsorb|Discharge,VoltSwitch,TeraBlast,AlluringVoice|Timid|80,,,252,,176||,0,,,,|||,,,,,Fire]Great Tusk||PayapaBerry|Protosynthesis|RapidSpin,Earthquake,StoneEdge,StealthRock|Jolly|,252,,,8,248|||||,,,,,Ground"], + ["Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,TeraBlast,RageFist,Protect|Careful|252,252,,,4,|||||,,,,,Fairy]Roaring Moon||ChoiceBand|Protosynthesis|KnockOff,Uturn,IronHead,DragonClaw|Jolly|24,252,,,,232|||||,,,,,Dragon]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,HornLeech,Encore,SwordsDance|Adamant|248,44,,,,216|||||,,,,,Fire]Slowking-Galar||ColburBerry|Regenerator|ToxicSpikes,EerieSpell,ChillyReception,IceBeam|Sassy|248,,,36,224,||,0,,,,|||,,,,,Poison]Corviknight||Leftovers|Pressure|Defog,Roost,Uturn,BraveBird|Relaxed|252,,84,,172,||,,,,,26|||,,,,,Flying]Tera Captain|Dudunsparce|Leftovers|SereneGrace|Glare,Roost,StealthRock,IceBeam|Bold|252,,252,4,,||,0,,,,|||,,,,,Ghost","Tera Captain|Serperior|SitrusBerry|Contrary|LeafStorm,DragonPulse,TeraBlast,Glare|Timid|24,,,252,,232||,0,,,,|||,,,,,Stellar]Iron Valiant||ChoiceSpecs|QuarkDrive|Thunderbolt,Moonblast,Hex,VacuumWave|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Garchomp||RockyHelmet|RoughSkin|Earthquake,DragonTail,StealthRock,Spikes|Impish|252,,244,,,12|||||,,,,,Dragon]Primarina||Leftovers|Torrent|Moonblast,Surf,CalmMind,Substitute|Calm|252,,108,,148,||,0,,,,|||,,,,,Water]Corviknight||Leftovers|Pressure|BraveBird,Uturn,Roost,BulkUp|Careful|248,,92,,168,|||||,,,,,Flying]Arbok||IronBall|Intimidate|GunkShot,Glare,PainSplit,Switcheroo|Careful|248,,80,,180,|||||,,,,,Poison"], + ["Tera Captain|Latias|Leftovers|Levitate|CalmMind,ShadowBall,Recover,DragonPulse|Bold|252,,252,4,,||,0,,,,|||,,,,,Dragon]Glimmora||ChoiceScarf|ToxicDebris|EarthPower,EnergyBall,PowerGem,SludgeWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Rock]Empoleon||Leftovers|Competitive|BrickBreak,Yawn,Roost,FlipTurn|Impish|252,,252,,4,|||||,,,,,Water]Mimikyu||RockyHelmet|Disguise|Curse,PainSplit,DrainPunch,DestinyBond|Impish|,76,224,,,208|||||,,,,,Ghost]Tera Captain|Torterra|MentalHerb|ShellArmor|Stockpile,BodyPress,Synthesis,HeavySlam|Impish|252,,252,,4,|||||,,,,,Bug]Palafin||ChoiceSpecs|ZerotoHero|Boomburst,GrassKnot,Surf,DrainingKiss|Timid|,,,252,4,252||,0,,,,|||,,,,,Water","Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,Uturn,TripleAxel|Jolly|,252,,,4,252|||||,,,,,Grass]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,IcePunch,CloseCombat|Adamant|,252,,,4,252|||||,,,,,Water]Donphan||HeavyDutyBoots|Sturdy|StealthRock,Earthquake,KnockOff,RapidSpin|Adamant|248,252,,,8,|||||,,,,,Ground]Scream Tail||HeavyDutyBoots|Protosynthesis|DazzlingGleam,Wish,Protect,Encore|Timid|4,,,,252,252||,0,,,,|||,,,,,Fairy]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|CalmMind,DragonPulse,Thunderbolt,Thunderclap|Modest|152,,,252,,104||,20,,,,|||,,,,,Steel]Tera Captain|Revavroom|AirBalloon|Filter|ShiftGear,GunkShot,IronHead,HighHorsepower|Adamant|188,252,,,,68|||||,,,,,Steel"], + ["Tera Captain|Primarina|AssaultVest|Torrent|Moonblast,FlipTurn,Surf,EnergyBall|Calm|252,,4,,252,|||||,,,,,Fire]Gouging Fire||ChoiceBand|Protosynthesis|FlareBlitz,DragonClaw,Earthquake,StoneEdge|Adamant|168,252,,,,88|||||,,,,,Fire]Excadrill||AirBalloon|MoldBreaker|Earthquake,RapidSpin,SwordsDance,IronHead|Adamant|,252,,,80,176|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,CalmMind,AuraSphere,ShadowBall|Timid|,,4,252,,252||,0,,,,|||,,,,,Fairy]Tera Captain|Espathra|MirrorHerb|SpeedBoost|CalmMind,StoredPower,ShadowBall,DazzlingGleam|Modest|,,152,144,,212||,0,,,,|||,,,,,Steel]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,VoltSwitch,Trick,Thunderbolt|Modest|,,64,252,,192||,0,,,,|||,,,,,Electric","Darkrai||ChoiceScarf|BadDreams|DarkPulse,SludgeBomb,FocusBlast,FoulPlay|Timid|,,72,252,,184||,0,,,,|||,,,,,Dark]Iron Crown||Leftovers|QuarkDrive|TachyonCutter,CalmMind,Agility,Psyshock|Modest|252,,,252,,4||,20,,,,|||,,,,,Steel]Rotom-Wash||ShucaBerry|Levitate|HydroPump,ThunderWave,VoltSwitch,PainSplit|Bold|248,,212,48,,||,0,,,,|||,,,,,Electric]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|Agility,FieryDance,SludgeWave,TeraBlast|Timid|,,40,252,,216||,0,,,,|||,,,,,Dark]Gliscor||ToxicOrb|PoisonHeal|ToxicSpikes,Spikes,Uturn,Earthquake|Careful|196,,,,252,60|||||,,,,,Ground]Tera Captain|Cloyster|WhiteHerb|SkillLink|IcicleSpear,TeraBlast,ShellSmash,RockBlast|Jolly|,252,,,32,224|||||,,,,,Poison"], + ["Palafin-Hero||Leftovers|ZerotoHero|JetPunch,DrainPunch,BulkUp,Encore|Adamant|88,252,,,12,156|||||,,,,,Water]Garchomp||Leftovers|RoughSkin|StealthRock,Earthquake,Crunch,SwordsDance|Jolly|216,,36,,60,196|||||,,,,,Dragon]Zapdos||HeavyDutyBoots|Static|Hurricane,VoltSwitch,EerieImpulse,Roost|Bold|248,,192,,8,60||,0,,,,|||,,,,,Electric]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,MistBall,CalmMind,Recover|Timid|248,,12,52,44,152||,0,,,,|||,,,,,Electric]Florges-Blue||HeavyDutyBoots|FlowerVeil|AlluringVoice,DrainingKiss,CalmMind,Synthesis|Calm|248,,228,,32,||,0,,,,|S||,,,,,Fairy]Tera Captain|Forretress|Leftovers|Sturdy|ToxicSpikes,BodyPress,RapidSpin,VoltSwitch|Impish|248,,252,,4,4|||||,,,,,Fighting","Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,Roar,DragonPulse,Thunderbolt|Modest|104,,136,252,,16||,20,,,,|||,,,,,Water]Mesprit||LightClay|Levitate|HealingWish,Reflect,LightScreen,Psychic|Bold|248,,236,8,,16||,0,,,,|||,,,,,Psychic]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,FlipTurn,AquaCutter,KnockOff|Adamant|144,252,,,,112|||||,,,,,Water]Cinderace||HeavyDutyBoots|Libero|PyroBall,HighJumpKick,Uturn,Taunt|Jolly|72,252,,,,184|||||,,,,,Fire]Great Tusk||ProtectivePads|Protosynthesis|RapidSpin,IceSpinner,HeadlongRush,SupercellSlam|Adamant|120,252,,,,136|||||,,,,,Ground]Tinkaton||AirBalloon|MoldBreaker|Encore,StealthRock,KnockOff,PlayRough|Careful|248,84,76,,20,80|||||,,,,,Fairy"], + ["Tera Captain|UrshifuRapidStrike|ProtectivePads|UnseenFist|SwordsDance,AquaJet,SurgingStrikes,CloseCombat|Jolly|,80,,,252,176|||||,,,,,Electric]Kyurem||Leftovers|Pressure|FreezeDry,ScaleShot,EarthPower,DragonDance|Naive|,88,,252,,168|||||,,,,,Dragon]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Trick,Hex|Timid|72,,,252,,184||,0,,,,|||,,,,,Steel]Darkrai||WideLens|BadDreams|Hypnosis,DarkPulse,ShadowBall,KnockOff|Modest|84,,,252,,172|||||,,,,,Dark]Donphan||Leftovers|Sturdy|RapidSpin,StealthRock,IceSpinner,Earthquake|Impish|252,4,252,,,|||||,,,,,Ground]Tera Captain|Espeon|Leftovers|MagicBounce|TeraBlast,CalmMind,Psychic,StoredPower|Timid|,,4,252,,252||,0,,,,|||,,,,,Fire","Baxcalibur||HeavyDutyBoots|ThermalExchange|SwordsDance,GlaiveRush,Earthquake,IceShard|Jolly|,252,,,4,252|||||,,,,,Dragon]Slowking-Galar||HeavyDutyBoots|Regenerator|FutureSight,ChillyReception,SludgeBomb,ThunderWave|Sassy|252,,16,,240,||,,,,,0|||,,,,,Poison]Urshifu-Rapid-Strike||MysticWater|UnseenFist|SwordsDance,CloseCombat,SurgingStrikes,AquaJet|Jolly|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,DualWingbeat,Protect,Toxic|Impish|244,,248,,16,|||||,,,,,Water]Volcarona||HeavyDutyBoots|FlameBody|QuiverDance,FieryDance,Psychic,GigaDrain|Timid|,,,252,4,252||,0,,,,|||,,,,,Bug]Tera Captain|Klefki|Leftovers|Prankster|Spikes,MagnetRise,DazzlingGleam,ThunderWave|Calm|252,4,,,252,||,0,,,,|||,,,,,Water"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CalmMind,Moonblast,Psyshock,Encore|Timid|16,,,252,,240||,0,,,,|||,,,,,Fairy]Garchomp||LumBerry|RoughSkin|FireFang,Earthquake,ScaleShot,SwordsDance|Adamant|248,4,200,,,56|||||,,,,,Dragon]Tera Captain|Scizor|HeavyDutyBoots|Technician|SwordsDance,QuickAttack,BulletPunch,BugBite|Adamant|216,252,,,,40|||||,,,,,Normal]Uxie||SitrusBerry|Levitate|ThunderWave,Encore,Uturn,StealthRock|Careful|248,8,,,252,|||||,,,,,Psychic]Tera Captain|Braviary|LifeOrb|SheerForce|BodySlam,BulkUp,Roost,Whirlwind|Adamant|248,92,,,156,12|||||,,,,,Normal]Arbok||FocusSash|Intimidate|ToxicSpikes,Toxic,Glare,KnockOff|Jolly|248,,124,,,136|||||,,,,,Poison","Brambleghast||HeavyDutyBoots|WindRider|PowerWhip,RapidSpin,Poltergeist,StrengthSap|Impish|252,,192,,,64|||||,,,,,Grass]Ting-Lu||RedCard|VesselofRuin|Spikes,StealthRock,Ruination,Earthquake|Relaxed|252,4,252,,,|||||,,,,,Dark]Cinderace||HeavyDutyBoots|Blaze|WillOWisp,CourtChange,PyroBall,Uturn|Jolly|252,,116,,,140|||||,,,,,Fire]Meowscarada||ChoiceScarf|Protean|PlayRough,FlowerTrick,Uturn,KnockOff|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Latias|HeavyDutyBoots|Levitate|DracoMeteor,AuraSphere,Psychic,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Tera Captain|BraviaryHisui|HeavyDutyBoots|TintedLens|EsperWing,CalmMind,Roost,HeatWave|Bold|252,,120,,136,||,0,,,,|||,,,,,Steel"], + ["Glimmora||ChoiceSpecs|ToxicDebris|EnergyBall,EarthPower,PowerGem,SludgeWave|Timid|32,,,224,,252||,0,,,,|||,,,,,Rock]Clefable||Leftovers|Unaware|Wish,CalmMind,StoredPower,AlluringVoice|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Tera Captain|Annihilape|Leftovers|VitalSpirit|RageFist,Taunt,DrainPunch,BulkUp|Adamant|248,,200,,60,|||||,,,,,Water]Landorus-Therian||Leftovers|Intimidate|StealthRock,Earthquake,BrickBreak,Uturn|Impish|248,,252,,,8|||||,,,,,Ground]Meowscarada||ChoiceScarf|Protean|FlowerTrick,Uturn,KnockOff,BrickBreak|Jolly|168,72,84,,,184|||||,,,,,Grass]Tatsugiri-Droopy||HeavyDutyBoots|StormDrain|Counter,RapidSpin,Memento,Whirlpool|Bold|252,,128,,128,|||||,,,,,Dragon","Zapdos||HeavyDutyBoots|Static|Hurricane,Roost,Uturn,ThunderWave|Timid|208,,160,,,140|||||,,,,,Electric]Tera Captain|SlowkingGalar|IcyRock|Regenerator|ChillyReception,SludgeBomb,Toxic,FutureSight|Bold|248,,228,24,8,||,0,,,,|||,,,,,Fairy]Grimmsnarl||ChoiceSpecs|Prankster|Trick,PlayRough,IcePunch,PartingShot|Impish|148,108,252,,,|||||,,,,,Dark]Tera Captain|Cetitan|HeavyDutyBoots|SlushRush|BellyDrum,Earthquake,HeavySlam,IceShard|Adamant|240,120,8,,,140|||||,,,,,Poison]Great Tusk||BoosterEnergy|Protosynthesis|Earthquake,CloseCombat,IceSpinner,RapidSpin|Jolly|248,4,,,4,252|||||,,,,,Ground]Palafin-Hero||ChoiceScarf|ZerotoHero|WaveCrash,CloseCombat,IcePunch,FlipTurn|Adamant|184,252,,,,72|||||,,,,,Water"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Thunderbolt,Encore|Timid|68,,,252,,188||,0,,,,|||,,,,,Fairy]Tera Captain|Gholdengo|ShucaBerry|GoodasGold|MakeItRain,ShadowBall,PowerGem,Recover|Modest|248,,124,136,,||,0,,,,|||,,,,,Steel]Ting-Lu||Leftovers|VesselofRuin|Earthquake,RockSlide,Ruination,Spikes|Adamant|184,76,,,248,|||||,,,,,Dark]Blastoise||WhiteHerb|Torrent|Surf,IceBeam,ShellSmash,RapidSpin|Modest|120,,,252,,136|||||,,,,,Water]Braviary||LifeOrb|SheerForce|BodySlam,BulkUp,Agility,Roost|Adamant|248,252,8,,,|||||,,,,,Normal]Lokix||HeavyDutyBoots|TintedLens|FirstImpression,Uturn,KnockOff,SuckerPunch|Jolly|56,236,,,,216|||||,,,,,Bug","Tera Captain|Oricorio|Leftovers|Dancer|RevelationDance,QuiverDance,Roost,Taunt|Timid|252,,144,,,112||,0,,,,|||,,,,,Fairy]Meowscarada||ChoiceScarf|Protean|PlayRough,FlowerTrick,TripleAxel,Uturn|Jolly|56,252,,,,200|||||,,,,,Fairy]Rotom-Heat||HeavyDutyBoots|Levitate|Discharge,Rest,WillOWisp,Reflect|Calm|248,,8,,252,||,0,,,,|||,,,,,Grass]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,HeadlongRush,CloseCombat,SupercellSlam|Jolly|252,4,,,,252|||||,,,,,Ice]Tera Captain|Clefable|Leftovers|MagicGuard|Moonblast,Moonlight,StealthRock,Flamethrower|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,Hurricane,HeatWave,Uturn|Timid|252,,,40,,216|||||,,,,,Flying"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,PoisonJab,FirePunch,SwordsDance|Jolly|16,252,,,,240|||||,,,,,Bug]Ditto||ChoiceScarf|Imposter|Transform|Relaxed|252,,252,,,||,30,,,,|S||,,,,,Bug]Goodra-Hisui||AssaultVest|Gooey|DracoMeteor,HeavySlam,KnockOff,DragonTail|Relaxed|252,,136,,120,|||||,,,,,Bug]Slowking||HeavyDutyBoots|Regenerator|IceBeam,FoulPlay,ThunderWave,ChillyReception|Sassy|252,,4,,252,||,0,,,,0|||,,,,,Bug]Rotom-Heat||HeavyDutyBoots|Levitate|Overheat,VoltSwitch,PainSplit,ThunderWave|Bold|252,,248,,,8||,0,,,,|S||,,,,,Bug]Iron Treads||HeavyDutyBoots|QuarkDrive|Earthquake,HeavySlam,RapidSpin,VoltSwitch|Adamant|104,156,,,,248|||||,,,,,Bug","Hatterene||AssaultVest|MagicBounce|PsychicNoise,DrainingKiss,GigaDrain,MistyExplosion|Bold|248,,60,,200,||,0,,,,|||,,,,,Psychic]Gouging Fire||AirBalloon|Protosynthesis|DragonDance,HeatCrash,Substitute,DragonClaw|Adamant|144,252,8,,,104|||||,,,,,Fire]Ribombee||FocusSash|SweetVeil|StickyWeb,Moonblast,SkillSwap,Uturn|Timid|56,,8,252,,192|||||,,,,,Bug]Iron Treads||Leftovers|QuarkDrive|StealthRock,RapidSpin,Earthquake,IceSpinner|Careful|248,8,,,252,|||||,,,,,Ground]Tera Captain|WalkingWake|AirBalloon|Protosynthesis|Scald,Substitute,KnockOff,TeraBlast|Timid|,,24,252,,232|||||,,,,,Grass]Tera Captain|Venusaur|LifeOrb|Overgrow|SwordsDance,PowerWhip,Earthquake,SleepPowder|Adamant|32,252,32,,,192|||||,,,,,Flying"], + ["Tera Captain|Annihilape|Leftovers|VitalSpirit|Taunt,DrainPunch,RageFist,Protect|Jolly|120,,,,252,136|||||,,,,,Water]Greninja||ChoiceScarf|Protean|Uturn,ToxicSpikes,LowKick,Liquidation|Jolly|,212,44,,,252|||||,,,,,Water]Tornadus-Therian||RedCard|Regenerator|KnockOff,Acrobatics,Uturn,Taunt|Jolly|252,,,,4,252|||||,,,,,Flying]Ting-Lu||HeavyDutyBoots|VesselofRuin|StealthRock,Whirlwind,ThroatChop,Earthquake|Careful|252,,,,252,4|||||,,,,,Dark]Tera Captain|Comfey|MirrorHerb|Triage|DrainingKiss,KnockOff,Synthesis,Encore|Modest|252,,4,252,,|||||,,,,,Fairy]Scizor||ChoiceBand|Technician|BulletPunch,Uturn,KnockOff,Defog|Adamant|72,252,,,,184|||||,,,,,Bug","Greninja||AssaultVest|Protean|Extrasensory,Uturn,IceBeam,SludgeWave|Timid|,,,252,4,252|||||,,,,,Water]Latios||Leftovers|Levitate|DracoMeteor,LusterPurge,Recover,ThunderWave|Modest|252,,,160,,96||,0,,,,|||,,,,,Dragon]Cyclizar||HeavyDutyBoots|Regenerator|RapidSpin,ShedTail,Uturn,Overheat|Timid|248,,,8,,252|||||,,,,,Dragon]Tera Captain|Skeledirge|Leftovers|Unaware|SlackOff,TorchSong,AlluringVoice,WillOWisp|Bold|248,,252,,8,||,0,,,,|||,,,,,Fairy]Tera Captain|Torterra|LoadedDice|ShellArmor|BulletSeed,RockBlast,HeadlongRush,ShellSmash|Adamant|,252,,,4,252|||||,,,,,Rock]Heracross||AssaultVest|Moxie|Trailblaze,ShadowClaw,CloseCombat,StoneEdge|Adamant|,252,,,4,252|||||,,,,,Bug"], + ["Tera Captain|Hatterene|Leftovers|MagicBounce|DrainingKiss,CalmMind,MysticalFire,Psyshock|Calm|252,,,4,252,||,0,,,,|||,,,,,Dragon]Urshifu||BlackGlasses|UnseenFist|CloseCombat,Uturn,WickedBlow,SuckerPunch|Jolly|76,252,,,,180|||||,,,,,Fighting]Clefable||Leftovers|Unaware|StealthRock,CalmMind,Moonblast,Wish|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Archaludon||AssaultVest|Stamina|DracoMeteor,BodyPress,DragonTail,MirrorCoat|Calm|252,,,68,188,|||||,,,,,Steel]Tera Captain|ThundurusTherian|ChoiceSpecs|VoltAbsorb|VoltSwitch,GrassKnot,TeraBlast,KnockOff|Modest|4,,,252,,252|||||,,,,,Flying]Chi-Yu||EjectPack|BeadsofRuin|Overheat,Flamethrower,DarkPulse,NastyPlot|Timid|,,,252,100,156||,0,,,,|||,,,,,Dark","Volcanion||ChoiceSpecs|WaterAbsorb|SteamEruption,EarthPower,Overheat,SludgeWave|Modest|252,,4,252,,||,0,,,,|||,,,,,Fire]Ting-Lu||Leftovers|VesselofRuin|Whirlwind,HeavySlam,StealthRock,Earthquake|Impish|252,,4,,252,|||||,,,,,Dark]Tera Captain|IronLeaves|BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,LeafBlade,SmartStrike|Jolly|,148,,,108,252|||||,,,,,Fighting]Ditto||ChoiceScarf|Imposter|Transform|Timid|252,,,,,252||,30,,,,|||,,,,,Normal]Skarmory||CustapBerry|Sturdy|IronHead,BraveBird,Roost,Endure|Impish|252,,252,,4,|||||,,,,,Steel]Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,RageFist,DrainPunch,Substitute|Careful|252,20,36,,200,|||||,,,,,Fairy"], + ["Ribombee||HeavyDutyBoots|ShieldDust|QuiverDance,Uturn,Moonblast,Psychic|Modest|,,20,252,,236|||||,,,,,Bug]Cinderace||HeavyDutyBoots|Libero|Uturn,ZenHeadbutt,GunkShot,PyroBall|Jolly|,252,,,72,184|||||,,,,,Fire]Donphan||AssaultVest|Sturdy|Earthquake,KnockOff,IceShard,RapidSpin|Adamant|252,120,,,136,|||||,,,,,Ground]Palafin||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,WaveCrash,CloseCombat|Adamant|,252,,,16,240|||||,,,,,Water]Kingambit||Leftovers|SupremeOverlord|ZenHeadbutt,SuckerPunch,IronHead,StealthRock|Adamant|,252,,,164,92|||||,,,,,Dark]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderclap,TeraBlast,DragonPulse,CalmMind|Modest|128,,100,252,28,||,20,,,,|||,,,,,Ground","Tera Captain|Latias|Leftovers|Levitate|MistBall,AuraSphere,CalmMind,Recover|Timid|248,,84,,,176||,0,,,,|||,,,,,Fairy]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,IronHead,VoltSwitch,RapidSpin|Jolly|48,252,,,,208|||||,,,,,Ground]Tauros-Paldea-Blaze||RockyHelmet|Intimidate|RagingBull,BodyPress,Trailblaze,WillOWisp|Impish|248,,184,,,76|||||,,,,,Fighting]Tera Captain|Kilowattrel|ChoiceSpecs|VoltAbsorb|Thunderbolt,Hurricane,VoltSwitch,TeraBlast|Timid|8,,,252,,248||,0,,,,|||,,,,,Fairy]Sylveon||Leftovers|Pixilate|HyperVoice,BatonPass,Wish,Protect|Bold|248,,252,,8,||,0,,,,|||,,,,,Fairy]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,RazorShell,KnockOff,FlipTurn|Adamant|60,252,,,,196|||||,,,,,Water"], + ["Baxcalibur||HeavyDutyBoots|ThermalExchange|GlaiveRush,IceShard,Earthquake,SwordsDance|Adamant|196,252,,,,60|||||,,,,,Dragon]Slowking-Galar||ColburBerry|Regenerator|SludgeBomb,FireBlast,Toxic,ChillyReception|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Slither Wing||BoosterEnergy|Protosynthesis|CloseCombat,Acrobatics,FlareBlitz,Substitute|Jolly|,252,4,,,252|||||,,,,,Bug]Hydreigon||ChoiceScarf|Levitate|DracoMeteor,DarkPulse,FlashCannon,Uturn|Timid|92,,,252,,164|||||,,,,,Dark]Forretress||RedCard|Sturdy|GyroBall,VoltSwitch,RapidSpin,StealthRock|Sassy|248,,8,,252,||,,,,,0|||,,,,,Bug]Tera Captain|Ogerpon|HeavyDutyBoots|Defiant|IvyCudgel,Superpower,Encore,Uturn|Jolly|80,252,,,,176|||||,,,,,Grass","Iron Valiant||BoosterEnergy|QuarkDrive|KnockOff,Encore,FirePunch,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Bug]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,DarkPulse,Flamethrower,WillOWisp|Timid|,,,252,16,240||,0,,,,|||,,,,,Bug]Tera Captain|Serperior|HeavyDutyBoots|Contrary|LeafStorm,Substitute,Glare,LeechSeed|Timid|24,,,,252,232||,0,,,,|||,,,,,Fire]Tera Captain|Sinistcha|HeavyDutyBoots|Heatproof|TeraBlast,ShadowBall,StrengthSap,CalmMind|Bold|252,,176,,80,||,0,,,,|||,,,,,Fairy]Forretress||Leftovers|Sturdy|Spikes,RapidSpin,GyroBall,ThunderWave|Relaxed|252,4,252,,,||,,,,,0|||,,,,,Bug]Mudsdale||Leftovers|Stamina|Earthquake,StealthRock,BodyPress,Roar|Impish|212,4,252,,40,|||||,,,,,Ground"], + ["Qwilfish-Hisui||Eviolite|SwiftSwim|BarbBarrage,PainSplit,Liquidation,ToxicSpikes|Jolly|128,60,8,,224,88|||||,,,,,Dark]Archaludon||AssaultVest|Stamina|ElectroShot,FlashCannon,DragonPulse,BodyPress|Timid|,,20,120,144,224||,0,,,,|||,,,,,Steel]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderclap,VoltSwitch,DracoMeteor,TeraBlast|Timid|32,,16,252,40,168||,20,,,,|||,,,,,Fairy]Pelipper||DampRock|Drizzle|Roost,WeatherBall,Uturn,Hurricane|Timid|168,,,104,100,136|||||,,,,,Water]Vikavolt||OccaBerry|Levitate|StickyWeb,VoltSwitch,BugBuzz,ThunderWave|Modest|96,,20,240,140,12||,0,,,,|||,,,,,Bug]Basculegion||WacanBerry|SwiftSwim|PhantomForce,FlipTurn,Liquidation,Outrage|Adamant|8,208,,,60,232|||||,,,,,Water","Palafin||AssaultVest|ZerotoHero|JetPunch,IcePunch,GrassKnot,Liquidation|Hasty|64,252,,56,,136|||||,,,,,Grass]Raikou||ExpertBelt|Pressure|Thunderbolt,VoltSwitch,Extrasensory,ThunderWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Tyranitar||ChopleBerry|SandStream|Roar,StealthRock,KnockOff,ThunderWave|Careful|252,4,,,252,|||||,,,,,Ghost]Tera Captain|Chesnaught|AssaultVest|Bulletproof|PoisonJab,Earthquake,TeraBlast,RockSlide|Careful|252,4,,,252,|||||,,,,,Fire]Espeon||MirrorHerb|MagicBounce|AlluringVoice,Wish,Protect,Psyshock|Timid|248,,,4,,252||,0,,,,|||,,,,,Fairy]Reuniclus||ColburBerry|MagicGuard|AcidArmor,CalmMind,StoredPower,Recover|Bold|252,,212,44,,||,0,,,,|||,,,,,Dark"], + ["Tera Captain|IronMoth|ChoiceScarf|QuarkDrive|FieryDance,SludgeWave,Discharge,DazzlingGleam|Modest|,,,252,4,252||,0,,,,|||,,,,,Fire]Hydrapple||AssaultVest|Regenerator|FickleBeam,DracoMeteor,HydroPump,EarthPower|Calm|248,,,8,252,||,0,,,,|||,,,,,Grass]Metagross||PunchingGlove|ClearBody|IcePunch,MeteorMash,Agility,KnockOff|Adamant|,252,,,4,252|||||,,,,,Steel]Rotom-Wash||Leftovers|Levitate|HydroPump,VoltSwitch,WillOWisp,Protect|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Garchomp||RockyHelmet|RoughSkin|Earthquake,DragonTail,Spikes,StealthRock|Adamant|248,252,,,,8|||||,,,,,Dragon]Fezandipiti||BlackSludge|ToxicChain|PoisonJab,IcyWind,PlayRough,Roost|Relaxed|252,4,252,,,|||||,,,,,Poison","Garchomp||LoadedDice|RoughSkin|ScaleShot,Earthquake,SwordsDance,Substitute|Jolly|,252,,,4,252|||||,,,,,Dragon]Iron Valiant||FocusSash|QuarkDrive|ThunderWave,Moonblast,ShadowBall,Psyshock|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Tera Captain|Ogerpon|ExpertBelt|Defiant|KnockOff,Uturn,StompingTantrum,IvyCudgel|Jolly|,252,,,4,252|||||,,,,,Grass]Copperajah||Leftovers|HeavyMetal|StealthRock,HeavySlam,KnockOff,Whirlwind|Impish|248,,232,,28,|||||,,,,,Steel]Tentacruel||BlackSludge|LiquidOoze|Toxic,RapidSpin,MirrorCoat,FlipTurn|Careful|248,,8,,252,|||||,,,,,Water]Rotom-Heat||HeavyDutyBoots|Levitate|WillOWisp,VoltSwitch,PainSplit,NightShade|Bold|248,,240,,8,12||,0,,,,|||,,,,,Electric"], + ["Slowking-Galar||AssaultVest|Regenerator|Psychic,Flamethrower,SludgeBomb,FutureSight|Calm|248,,,8,252,||,0,,,,|||,,,,,Poison]Clefable||Leftovers|MagicGuard|Moonblast,KnockOff,StealthRock,Moonlight|Bold|252,,252,,4,|||||,,,,,Fairy]Houndoom||HeavyDutyBoots|Unnerve|DarkPulse,Flamethrower,SolarBeam,NastyPlot|Timid|72,,,252,,184||,0,,,,|S||,,,,,Dark]Tera Captain|Serperior|Leftovers|Overgrow|KnockOff,TeraBlast,Synthesis,Coil|Jolly|40,,,,252,216|||S||,,,,,Rock]Palafin||Leftovers|ZerotoHero|JetPunch,DrainPunch,GrassKnot,BulkUp|Careful|248,8,,,252,|||||,,,,,Water]Sandslash||CustapBerry|SandRush|Earthquake,KnockOff,Spikes,RapidSpin|Careful|252,,64,,192,|||S||,,,,,Ground","Tera Captain|Latias|Leftovers|Levitate|CalmMind,MistBall,Recover,Thunderbolt|Timid|252,,,80,,176||,0,,,,|||,,,,,Steel]Iron Treads||AssaultVest|QuarkDrive|SupercellSlam,RapidSpin,IronHead,Earthquake|Jolly|72,228,,,,208|||||,,,,,Ground]Infernape||ChoiceScarf|Blaze|Switcheroo,Earthquake,FireBlast,StealthRock|Hasty|,64,,252,,192|||||,,,,,Fire]Gastrodon||RindoBerry|StormDrain|IceBeam,EarthPower,Recover,MirrorCoat|Calm|252,,36,60,160,||,0,,,,|||,,,,,Water]Vikavolt||HeavyDutyBoots|Levitate|VoltSwitch,BugBuzz,EnergyBall,StickyWeb|Modest|252,,,96,160,||,0,,,,|||,,,,,Bug]Tera Captain|Gyarados|ChoiceBand|Intimidate|Waterfall,Earthquake,TemperFlare,IronHead|Adamant|,252,12,,52,192|||||,,,,,Water"], + ["Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,AerialAce,Uturn|Jolly|120,252,,,,136|||||,,,,,Grass]Garchomp||ExpertBelt|RoughSkin|Earthquake,DragonTail,Spikes,FireFang|Adamant|84,252,,,,172|||||,,,,,Dragon]Tera Captain|OricorioSensu|HeavyDutyBoots|Dancer|RevelationDance,AirSlash,QuiverDance,Roost|Modest|12,,,252,,244||,0,,,,|||,,,,,Ground]Tera Captain|RagingBolt|MirrorHerb|Protosynthesis|Thunderclap,DragonPulse,CalmMind,VoltSwitch|Modest|252,,,68,,188||,20,,,,|||,,,,,Fire]Florges-White||Leftovers|FlowerVeil|Moonblast,Wish,Protect,Charm|Timid|252,,,80,,176||,0,,,,|||,,,,,Fairy]Gholdengo||ColburBerry|GoodasGold|ShadowBall,Recover,NastyPlot,FocusBlast|Timid|252,,,40,,216||,0,,,,|||,,,,,Steel","Infernape||ExpertBelt|IronFist|MachPunch,SwordsDance,GunkShot,Earthquake|Jolly|48,252,,,,208|||||,,,,,Fire]Tera Captain|Toxtricity|LifeOrb|PunkRock|ShiftGear,TeraBlast,SludgeWave,Overdrive|Modest|172,,,252,,84||,0,,,,|||,,,,,Ice]Palafin||ChoiceBand|ZerotoHero|FlipTurn,ZenHeadbutt,WaveCrash,JetPunch|Adamant|24,252,,,,232|||||,,,,,Water]Kingambit||ChopleBerry|SupremeOverlord|ZenHeadbutt,SuckerPunch,IronHead,KowtowCleave|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|Torterra|Leftovers|ShellArmor|Earthquake,Synthesis,StealthRock,SeedBomb|Careful|252,28,16,,212,|||||,,,,,Ground]Necrozma||SitrusBerry|PrismArmor|DragonDance,KnockOff,PhotonGeyser,XScissor|Adamant|16,252,,,,240|||||,,,,,Psychic"], + ["Alcremie||Leftovers|SweetVeil|DrainingKiss,CalmMind,Recover,Psychic|Bold|252,,252,4,,||,0,,,,|S||,,,,,Fairy]Tera Captain|Metagross|WeaknessPolicy|ClearBody|TeraBlast,Agility,IronHead,PsychicFangs|Naughty|80,252,,4,,172|||S||,,,,,Fairy]Dragalge||BlackSludge|Adaptability|Haze,FlipTurn,DracoMeteor,SludgeBomb|Modest|252,,,252,4,|||||,,,,,Poison]Urshifu||CobaBerry|UnseenFist|IcePunch,WickedBlow,SuckerPunch,DrainPunch|Adamant|252,252,,,4,|||||,,,,,Fighting]Toedscruel||FocusSash|MyceliumMight|Spikes,RapidSpin,KnockOff,DazzlingGleam|Careful|252,4,,,252,|||||,,,,,Ground]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,Psychic,Uturn,FocusBlast|Timid|,,,252,4,252|||||,,,,,Flying","Darkrai||ChoiceScarf|BadDreams|DarkPulse,SludgeBomb,FocusBlast,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Poison]Garchomp||LoadedDice|RoughSkin|SwordsDance,Earthquake,ScaleShot,FireFang|Jolly|,252,,,4,252|||||,,,,,Fire]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,CloseCombat,Uturn,Switcheroo|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Azumarill|ChoiceBand|HugePower|PlayRough,AquaJet,Liquidation,KnockOff|Adamant|252,152,,,104,|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Uturn,Discharge,Hurricane,Roost|Timid|252,,104,,,152|||||,,,,,Steel]Tera Captain|Espeon|ChoiceSpecs|MagicBounce|AlluringVoice,Psychic,ShadowBall,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Great Tusk||BoosterEnergy|Protosynthesis|HeadlongRush,IceSpinner,BrickBreak,RapidSpin|Jolly|,252,4,,,252|||||,,,,,Ground]Tera Captain|Latias|LightClay|Levitate|FutureSight,Wish,Reflect,LightScreen|Timid|248,,,132,,128||,0,,,,|||,,,,,Fairy]Greninja||ChoiceScarf|Protean|HydroPump,IceBeam,GrassKnot,Uturn|Naive|,4,,252,,252|||||,,,,,Water]Tinkaton||CustapBerry|Pickpocket|GigatonHammer,Endeavor,Endure,StealthRock|Jolly|,252,4,,,252|||||,,,,,Fairy]Rillaboom||Leftovers|GrassySurge|GrassyGlide,KnockOff,HighHorsepower,Uturn|Adamant|232,252,,,,24|||||,,,,,Grass]Tera Captain|Frosmoth|HeavyDutyBoots|IceScales|IceBeam,BugBuzz,TeraBlast,QuiverDance|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground","Tera Captain|GreatTusk|RockyHelmet|Protosynthesis|HeadlongRush,StoneEdge,IceSpinner,RapidSpin|Jolly|8,252,,,,248|||||,,,,,Bug]Tornadus-Therian||YacheBerry|Regenerator|Taunt,KnockOff,BleakwindStorm,Uturn|Timid|248,,52,40,,168|||||,,,,,Flying]Samurott-Hisui||ChoiceScarf|Sharpness|FlipTurn,SacredSword,RazorShell,CeaselessEdge|Adamant|72,252,,,,184|||||,,,,,Water]Latios||SoulDew|Levitate|CalmMind,Psyshock,DragonPulse,FlipTurn|Modest|72,,,252,4,180|||||,,,,,Dragon]Tinkaton||OccaBerry|Pickpocket|PlayRough,SwordsDance,GigatonHammer,RockSlide|Jolly|56,252,,,,200|||||,,,,,Fairy]Tera Captain|Bellibolt|ColburBerry|Static|VoltSwitch,Toxic,MuddyWater,SlackOff|Bold|248,,156,48,,56||,0,,,,|||,,,,,Ghost"], + ["Flareon||ToxicOrb|Guts|FlareBlitz,TemperFlare,Facade,QuickAttack|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|Comfey|HeavyDutyBoots|Triage|DrainingKiss,Encore,KnockOff,Uturn|Timid|248,,,132,,128|||||,,,,,Fairy]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Earthquake,TeraBlast,Crunch,Uturn|Jolly|56,252,,,,200|||S||,,,,,Poison]Latios||SoulDew|Levitate|LusterPurge,FutureSight,DracoMeteor,FlipTurn|Timid|,,4,252,,252|||S||,,,,,Fire]Iron Treads||LumBerry|QuarkDrive|Earthquake,HeavySlam,KnockOff,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Grass]Palafin-Hero||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,CloseCombat,FlipTurn|Adamant|24,252,,,,232|||||,,,,,Fighting","Tera Captain|Entei|SilkScarf|InnerFocus|SacredFire,DoubleEdge,Trailblaze,ExtremeSpeed|Adamant|252,252,4,,,|||||,,,,,Normal]Meowscarada||AssaultVest|Overgrow|FlowerTrick,KnockOff,Uturn,TripleAxel|Jolly|,252,,,104,152|||||,,,,,Grass]Tera Captain|Keldeo|RockyHelmet|Justified|Surf,AuraSphere,PainSplit,FlipTurn|Timid|16,,252,,,240|||||,,,,,Psychic]Iron Treads||AssaultVest|QuarkDrive|RapidSpin,IceSpinner,Earthquake,VoltSwitch|Jolly|,252,,,4,252|||||,,,,,Ground]Enamorus-Therian||RockyHelmet|Overcoat|Moonblast,HealingWish,EarthPower,Tailwind|Bold|248,,68,,,192||,0,,,,|||,,,,,Fairy]Grafaiai||FocusSash|Prankster|Toxic,SuperFang,LowKick,Copycat|Adamant|,252,40,,,216|||||,,,,,Poison"], + ["Iron Valiant||AssaultVest|QuarkDrive|VacuumWave,Moonblast,KnockOff,Psychic|Timid|48,,,252,72,136|||||,,,,,Fairy]Tera Captain|Salamence|HeavyDutyBoots|Intimidate|DracoMeteor,Flamethrower,Roost,Hurricane|Modest|200,,16,252,16,24||,0,,,,|||,,,,,Water]Gastrodon||YacheBerry|StormDrain|Recover,EarthPower,Surf,MirrorCoat|Bold|192,,76,,240,||,0,,,,|||,,,,,Water]Glimmora||ChoiceScarf|ToxicDebris|PowerGem,SludgeWave,EarthPower,Memento|Timid|92,,,252,,164||,0,,,,|||,,,,,Rock]Tera Captain|Armarouge|SitrusBerry|WeakArmor|CalmMind,IronDefense,StoredPower,Flamethrower|Timid|240,,16,56,40,156||,0,,,,|||,,,,,Water]Gholdengo||ShucaBerry|GoodasGold|ThunderWave,ShadowBall,MakeItRain,Recover|Calm|240,,20,12,220,16||,0,,,,|||,,,,,Steel","Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,IceBeam,Uturn|Modest|24,,,252,4,228|||||,,,,,Ice]Cyclizar||ChopleBerry|Regenerator|ShedTail,KnockOff,Overheat,DracoMeteor|Timid|248,,,,44,216|||||,,,,,Dragon]Jirachi||WeaknessPolicy|SereneGrace|CalmMind,StoredPower,DrainPunch,Wish|Timid|248,,,,8,252|||||,,,,,Steel]Weezing-Galar||PayapaBerry|Levitate|StrangeSteam,Flamethrower,PainSplit,Haze|Careful|248,,8,,252,||,0,,,,|||,,,,,Poison]Tera Captain|Landorus|LifeOrb|SheerForce|NastyPlot,EarthPower,SludgeWave,FocusBlast|Timid|8,,,252,,248||,0,,,,|||,,,,,Grass]Cinderace||HeavyDutyBoots|Libero|PyroBall,DoubleEdge,SwordsDance,CourtChange|Jolly|20,252,,,,236|||||,,,,,Fire"], + ["Tornadus-Therian||LifeOrb|Regenerator|BleakwindStorm,GrassKnot,HeatWave,Taunt|Timid|88,,,252,,168||,0,,,,|||,,,,,Flying]Latios||SoulDew|Levitate|Psyshock,DracoMeteor,Memento,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Hurricane,ScorchingSands,Uturn,Roost|Timid|184,,,192,,132|||||,,,,,Flying]Tera Captain|UrshifuRapidStrike|LumBerry|UnseenFist|CloseCombat,SurgingStrikes,Trailblaze,SwordsDance|Adamant|152,108,,,200,48|||||,,,,,Water]Sandy Shocks||BoosterEnergy|Protosynthesis|Spikes,Thunderbolt,EarthPower,ThunderWave|Timid|,,,,,224||,0,,,,|||,,,,,Electric]Kingambit||AirBalloon|SupremeOverlord|KowtowCleave,IronHead,SuckerPunch,SwordsDance|Adamant|252,88,,,4,164|||||,,,,,Dark","Weezing-Galar||BlackSludge|Levitate|ToxicSpikes,PainSplit,WillOWisp,Thunderbolt|Calm|220,,,4,32,252||,0,,,,|||,,,,,Poison]Tera Captain|Latias|KeeBerry|Levitate|IceBeam,Thunderbolt,CalmMind,Recover|Timid|252,,4,,,252||,0,,,,|||,,,,,Electric]Volcanion||ShucaBerry|WaterAbsorb|WillOWisp,SteamEruption,Flamethrower,StoneEdge|Rash|252,,48,,,172|||||,,,,,Fire]Urshifu||ChoiceScarf|UnseenFist|Uturn,WickedBlow,CloseCombat,StoneEdge|Adamant|232,252,,,,24|||||,,,,,Fighting]Excadrill||AssaultVest|MoldBreaker|RockSlide,Earthquake,RapidSpin,IronHead|Careful|100,236,,,76,96|||||,,,,,Ground]Tera Captain|IronThorns|BoosterEnergy|QuarkDrive|DragonDance,Crunch,SupercellSlam,LowKick|Adamant|,252,,,4,224|||||,,,,,Dark"], + ["Darkrai||SitrusBerry|BadDreams|DarkPulse,FocusBlast,NastyPlot,ThroatChop|Modest|32,,,252,,224|||||,,,,,Dark]Iron Treads||HeavyDutyBoots|QuarkDrive|HeavySlam,RapidSpin,IronDefense,BodyPress|Impish|,,248,,172,88|||||,,,,,Ground]Slowking-Galar||HeavyDutyBoots|Regenerator|ChillyReception,Toxic,FutureSight,ThunderWave|Calm|252,,32,,224,||,0,,,,|||,,,,,Poison]Tera Captain|Kilowattrel|ChoiceScarf|Competitive|TeraBlast,VoltSwitch,Hurricane,Endeavor|Modest|28,,,252,,228||,0,,,,|||,,,,,Flying]Swampert||Leftovers|Torrent|StealthRock,FlipTurn,Earthquake,KnockOff|Adamant|252,48,208,,,|||||,,,,,Water]Hariyama||FlameOrb|Guts|CloseCombat,HeavySlam,KnockOff,RockSlide|Adamant|160,252,,,,96|||||,,,,,Fighting","Tera Captain|Sinistcha|LumBerry|Heatproof|NastyPlot,ShadowBall,MatchaGotcha,StrengthSap|Modest|160,,,252,,96||,0,,,,|||,,,,,Fairy]Tera Captain|GreatTusk|RockyHelmet|Protosynthesis|BodyPress,StealthRock,KnockOff,RapidSpin|Impish|72,,252,,,184|||||,,,,,Electric]Sylveon||WeaknessPolicy|Pixilate|DrainingKiss,CalmMind,QuickAttack,StoredPower|Modest|80,,,252,,176|||||,,,,,Fairy]Cyclizar||ChoiceScarf|Regenerator|ShedTail,DracoMeteor,Overheat,HyperVoice|Timid|112,,,252,4,140||,0,,,,|||,,,,,Steel]Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,KnockOff,FlipTurn,XScissor|Jolly|,252,,,4,252|||||,,,,,Fighting]Munkidori||FocusSash|ToxicChain|FakeOut,SludgeWave,FocusBlast,PartingShot|Timid|,,,252,4,252|||||,,,,,Flying"], + ["Gholdengo||ColburBerry|GoodasGold|Recover,ThunderWave,Hex,Thunderbolt|Modest|248,,16,52,,192||,0,,,,|||,,,,,Bug]Samurott-Hisui||LumBerry|Sharpness|CeaselessEdge,KnockOff,FlipTurn,SuckerPunch|Adamant|240,252,,,,16|||||,,,,,Bug]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Protect,SwordsDance,Facade,Earthquake|Impish|248,8,148,,,104|||||,,,,,Water]Tera Captain|Jolteon|Leftovers|VoltAbsorb|CalmMind,Thunderbolt,StoredPower,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Ribombee||FocusSash|ShieldDust|StickyWeb,StunSpore,LightScreen,Reflect|Timid|248,,,,8,252||,0,,,,|||,,,,,Bug]Skeledirge||ColburBerry|Unaware|SlackOff,TorchSong,EarthPower,ShadowBall|Calm|248,,,8,252,||,0,,,,|||,,,,,Bug","Tera Captain|Latias|WeaknessPolicy|Levitate|Agility,CalmMind,ShadowBall,StoredPower|Timid|248,,176,28,,56||,0,,,,|S||,,,,,Steel]Tera Captain|Bellibolt|LightClay|Static|VoltSwitch,SlackOff,LightScreen,Reflect|Calm|248,,8,,252,||,0,,,,|||,,,,,Fairy]Scizor||HeavyDutyBoots|Technician|Defog,BulletPunch,Uturn,KnockOff|Adamant|224,252,,,,32|||||,,,,,Bug]Gliscor||YacheBerry|PoisonHeal|Uturn,Spikes,StealthRock,ToxicSpikes|Impish|212,,252,,,44|||S||,,,,,Ground]Greninja-Bond||HeavyDutyBoots|BattleBond|NightSlash,Uturn,IceBeam,LowKick|Lonely|,252,,104,,152|||||,,,,,Water]Thwackey||ChoiceBand|GrassySurge|GrassyGlide,Uturn,KnockOff,WoodHammer|Adamant|248,252,,,8,|||S||,,,,,Grass"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PowerWhip,SwordsDance,Synthesis|Jolly|,252,,,4,252|||||,,,,,Water]Darkrai||LifeOrb|BadDreams|DarkPulse,Psychic,SludgeBomb,IceBeam|Timid|112,,8,252,,136||,0,,,,|||,,,,,Dark]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,Psyshock,ShadowBall,DestinyBond|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Uxie||RockyHelmet|Levitate|FoulPlay,Uturn,StealthRock,PainSplit|Impish|248,,252,,8,|||||,,,,,Psychic]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,Flamethrower,CalmMind,RapidSpin|Modest|144,,,252,,112|||||,,,,,Stellar]Muk||BlackSludge|PoisonTouch|PoisonJab,KnockOff,ZenHeadbutt,PainSplit|Careful|248,,8,,252,|||||,,,,,Poison","Iron Moth||ChoiceScarf|QuarkDrive|Uturn,SludgeWave,Discharge,FieryDance|Timid|,,,252,4,252|||||,,,,,Fire]Volbeat||HeavyDutyBoots|Prankster|Roost,Encore,Uturn,ThunderWave|Careful|252,,4,,252,|||||,,,,,Bug]Tera Captain|IronHands|RockyHelmet|QuarkDrive|DrainPunch,VoltSwitch,Rest,SleepTalk|Careful|,4,252,,252,|||||,,,,,Dragon]Garchomp||FocusSash|RoughSkin|ScaleShot,Earthquake,SwordsDance,Spikes|Jolly|,252,,,4,252|||||,,,,,Dragon]Mandibuzz||HeavyDutyBoots|BigPecks|Roost,Uturn,Toxic,Defog|Careful|248,,8,,252,|||||,,,,,Dark]Tera Captain|Polteageist|ChoiceSpecs|WeakArmor|ShadowBall,TeraBlast,GigaDrain,Memento|Modest|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Latios||WeaknessPolicy|Levitate|Psyshock,AuraSphere,Substitute,Agility|Modest|48,,,252,4,204||,0,,,,|||,,,,,Dragon]Tera Captain|Serperior|LightClay|Contrary|LeafStorm,Reflect,LightScreen,Taunt|Timid|200,,4,104,,200||,0,,,,|||,,,,,Ghost]Palafin||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,FlipTurn,DrainPunch|Adamant|40,216,,,,252|||||,,,,,Water]Tera Captain|Umbreon|MentalHerb|Synchronize|AlluringVoice,Roar,Wish,Protect|Calm|252,,4,,252,||,0,,,,|||,,,,,Fairy]Heatran||Leftovers|FlameBody|LavaPlume,PowerGem,StealthRock,WillOWisp|Bold|252,,216,,,40||,0,,,,|||,,,,,Fire]Donphan||ExpertBelt|Sturdy|Earthquake,IceShard,KnockOff,RapidSpin|Adamant|104,252,8,,144,|||||,,,,,Ground","Iron Bundle||ChoiceSpecs|QuarkDrive|HydroPump,FlipTurn,IceBeam,FreezeDry|Modest|56,,,252,,200|||||,,,,,Ice]Enamorus||FairyFeather|CuteCharm|DrainingKiss,Moonblast,EarthPower,Substitute|Modest|132,,,252,,124||,0,,,,|||,,,,,Fairy]Clodsire||MentalHerb|WaterAbsorb|Recover,Toxic,Earthquake,StealthRock|Careful|248,8,,,252,|||||,,,,,Poison]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|BulkUp,Earthquake,IceSpinner,TeraBlast|Jolly|,4,,,252,252|||||,,,,,Grass]Kingambit||ProtectivePads|SupremeOverlord|SuckerPunch,SwordsDance,IronHead,KowtowCleave|Adamant|96,160,,,252,|||||,,,,,Dark]Tera Captain|Cinccino|LoadedDice|Technician|TailSlap,BulletSeed,TeraBlast,TidyUp|Jolly|,252,4,,,252|||||,,,,,Ground"], + ["Tera Captain|Excadrill|ChoiceScarf|MoldBreaker|Earthquake,StealthRock,IronHead,ThroatChop|Jolly|16,252,,,,240|||||,,,,,Ground]Latios||ExpertBelt|Levitate|DragonDance,AuraSphere,Earthquake,DracoMeteor|Naive|,4,,252,,252|||||,,,,,Dragon]Tera Captain|Milotic|FlameOrb|MarvelScale|Scald,AlluringVoice,Recover,Haze|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Terapagos||HeavyDutyBoots|TeraShift|RapidSpin,BodyPress,EarthPower,Toxic|Bold|252,,252,,4,|||||,,,,,Stellar]Tyranitar||AirBalloon|SandStream|StealthRock,IceBeam,KnockOff,EarthPower|Naive|,4,,252,,252|||||,,,,,Rock]Chesnaught||RockyHelmet|Bulletproof|BodyPress,Synthesis,KnockOff,LeechSeed|Impish|252,4,252,,,|||||,,,,,Grass","Tera Captain|Latias|HeavyDutyBoots|Levitate|BatonPass,Surf,ShadowBall,Recover|Timid|252,,176,,,80||,0,,,,|||,,,,,Water]Weavile||HeavyDutyBoots|Pressure|KnockOff,TripleAxel,IceShard,SwordsDance|Jolly|120,252,,,,136|||||,,,,,Dark]Quaquaval||ChoiceBand|Moxie|AquaStep,TripleAxel,CloseCombat,WaveCrash|Adamant|104,252,,,,152|||||,,,,,Water]Heatran||Leftovers|FlameBody|MagmaStorm,FlashCannon,Taunt,StealthRock|Calm|248,,,,216,44||,0,,,,|||,,,,,Fire]Tera Captain|SinistchaMasterpiece|HeavyDutyBoots|Heatproof|NastyPlot,MatchaGotcha,ShadowBall,StrengthSap|Bold|248,,160,,,100||,0,,,,|||,,,,,Dark]Donphan||Leftovers|Sturdy|Earthquake,IceShard,KnockOff,RapidSpin|Impish|248,,172,,,88|||||,,,,,Ground"], + ["Tornadus||SharpBeak|Prankster|NastyPlot,RainDance,BleakwindStorm,SludgeWave|Timid|88,,,252,,168||,0,,,,|||,,,,,Flying]Meowscarada||ChoiceScarf|Protean|KnockOff,Uturn,TripleAxel,FlowerTrick|Jolly|,252,4,,,252|||||,,,,,Grass]Tera Captain|Latias|WeaknessPolicy|Levitate|DrainingKiss,StoredPower,CalmMind,Agility|Modest|140,,,252,,116||,0,,,,|||,,,,,Fairy]Primarina||Leftovers|Torrent|CalmMind,DrainingKiss,Surf,Moonblast|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,Endeavor,StealthRock,RapidSpin|Jolly|48,252,,,,208|||||,,,,,Ground]Rotom-Heat||StickyBarb|Levitate|VoltSwitch,Overheat,Trick,ThunderWave|Bold|252,,220,,,36||,0,,,,|||,,,,,Electric","Great Tusk||ExpertBelt|Protosynthesis|CloseCombat,IceSpinner,RapidSpin,SupercellSlam|Jolly|252,4,,,,252|||||,,,,,Ground]Torkoal||HeatRock|Drought|Yawn,StealthRock,Overheat,RapidSpin|Calm|248,,,8,252,|||||,,,,,Fire]Gouging Fire||Leftovers|Protosynthesis|HeatCrash,MorningSun,DragonClaw,DragonDance|Adamant|72,252,,,40,144|||||,,,,,Fire]Tera Captain|Mew|ChoiceBand|Synchronize|Uturn,Trick,CloseCombat,PsychicFangs|Adamant|80,252,,,,176|||||,,,,,Fairy]Tera Captain|Venusaur|LifeOrb|Chlorophyll|SludgeBomb,TeraBlast,WeatherBall,GigaDrain|Modest|140,,4,252,,112||,0,,,,|||,,,,,Rock]Primarina||AssaultVest|Torrent|AlluringVoice,PsychicNoise,FlipTurn,IceBeam|Modest|252,,,252,4,|||||,,,,,Water"], + ["Grafaiai||HeavyDutyBoots|PoisonTouch|KnockOff,PoisonJab,Uturn,SwordsDance|Jolly|248,,,,84,176|||||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|CalmMind,AuraSphere,StoredPower,Recover|Timid|248,,160,,,100||,0,,,,|||,,,,,Poison]Clefable||LifeOrb|MagicGuard|CalmMind,Flamethrower,Moonblast,Moonlight|Modest|252,,240,16,,||,0,,,,|||,,,,,Fairy]Tinkaton||Leftovers|MoldBreaker|StealthRock,Encore,KnockOff,GigatonHammer|Careful|248,,8,,252,|||||,,,,,Fairy]Meowscarada||HeavyDutyBoots|Protean|FlowerTrick,KnockOff,TripleAxel,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Umbreon|Leftovers|InnerFocus|FoulPlay,Toxic,Wish,Protect|Calm|252,,4,,252,||,0,,,,|||,,,,,Water","Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,CalmMind,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|Trick,NastyPlot,MakeItRain,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|Entei|ChoiceBand|Pressure|SacredFire,IronHead,StompingTantrum,TeraBlast|Naive|,252,,4,,252|||||,,,,,Fighting]Manaphy||Leftovers|Hydration|TailGlow,IceBeam,Surf,RainDance|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Dragonite||ChoiceSpecs|Multiscale|Hurricane,Flamethrower,DracoMeteor,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon]Morgrem||LightClay|Prankster|PartingShot,Reflect,LightScreen,ThunderWave|Calm|252,,4,,252,||,0,,,,|||,,,,,Dark"], + ["Meowscarada||HeavyDutyBoots|Overgrow|FlowerTrick,KnockOff,Trailblaze,TripleAxel|Jolly|,252,,,4,252|||||,,,,,Grass]Honchkrow||ScopeLens|SuperLuck|DarkPulse,HeatWave,AirCutter,Tailwind|Timid|216,,,252,4,36||,0,,,,|||,,,,,Dark]Sandy Shocks||BoosterEnergy|Protosynthesis|Thunderbolt,EarthPower,StealthRock,Spikes|Timid|48,,,208,,252||,0,,,,|||,,,,,Electric]Tentacruel||BlackSludge|ClearBody|Surf,Toxic,KnockOff,ToxicSpikes|Gentle|252,,,,240,16|||||,,,,,Water]Tera Captain|Latias|RockyHelmet|Levitate|MistBall,DrainingKiss,CalmMind,Thunderbolt|Timid|248,,188,,,72||,0,,,,|||,,,,,Electric]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Trick,Thunderbolt|Modest|252,,,56,,200||,0,,,,|||,,,,,Steel","Iron Bundle||HeavyDutyBoots|QuarkDrive|FlipTurn,HydroPump,FreezeDry,Encore|Timid|92,,,252,4,160|||||,,,,,Ice]Great Tusk||AssaultVest|Protosynthesis|RapidSpin,KnockOff,HeavySlam,HeadlongRush|Jolly|252,,,,24,232|||||,,,,,Ground]Crocalor||Eviolite|Unaware|SlackOff,Flamethrower,Roar,WillOWisp|Calm|252,,52,4,200,||,0,,,,|||,,,,,Fire]Pecharunt||ChoiceScarf|PoisonPuppeteer|Curse,ShadowBall,MalignantChain,PartingShot|Timid|24,,,252,4,228||,0,,,,|||,,,,,Poison]Tera Captain|Mew|LumBerry|Synchronize|DragonDance,PsychicFangs,KnockOff,DrainPunch|Adamant|16,252,,,4,236|||||,,,,,Poison]Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,Taunt,PartingShot|Calm|252,,4,,252,||,0,,,,|||,,,,,Dark"], + ["Zoroark-Hisui||FocusSash|Illusion|WillOWisp,BitterMalice,FocusBlast,Uturn|Modest|4,,,252,,252|||S||,,,,,Normal]Tera Captain|Haxorus|Leftovers|MoldBreaker|DragonDance,IronHead,Outrage,Earthquake|Adamant|4,252,,,,252|||S||,,,,,Steel]Hatterene||AssaultVest|MagicBounce|DrainingKiss,MysticalFire,Psychic,Nuzzle|Bold|4,,252,252,,|||S||,,,,,Psychic]Iron Hands||AssaultVest|QuarkDrive|FakeOut,DrainPunch,IcePunch,SupercellSlam|Adamant|84,132,40,,252,|||S||,,,,,Fighting]Mareanie||Eviolite|Regenerator|Recover,Liquidation,Toxic,Haze|Careful|4,,252,,252,|||S||,,,,,Poison]Darkrai||LifeOrb|BadDreams|ThunderWave,DarkPulse,SludgeBomb,IceBeam|Timid|,,,252,,252||,0,,,,|||,,,,,Dark","Slowking-Galar||ShucaBerry|Regenerator|Psychic,SludgeBomb,IceBeam,SlackOff|Calm|248,,184,52,16,8||,0,,,,|||,,,,,Poison]Weavile||LifeOrb|Pressure|TripleAxel,IceShard,KnockOff,SwordsDance|Jolly|,252,4,,,252|||||,,,,,Dark]Mandibuzz||RockyHelmet|BigPecks|FoulPlay,Uturn,Toxic,Roost|Impish|200,,216,,,92|||||,,,,,Dark]Tera Captain|Heatran|AssaultVest|FlameBody|MagmaStorm,FlashCannon,EarthPower,TeraBlast|Modest|248,,,96,48,116||,0,,,,|||,,,,,Fairy]Tera Captain|Gliscor|ChoiceScarf|PoisonHeal|Uturn,Earthquake,KnockOff,TeraBlast|Jolly|88,252,,,,168|||||,,,,,Fairy]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|Uturn,IvyCudgel,PlayRough,Encore|Jolly|,252,4,,,252|||||,,,,,Water"], + ["Tera Captain|Manaphy|Leftovers|Hydration|TakeHeart,Scald,AcidArmor,StoredPower|Calm|252,,4,,252,||,0,,,,|||,,,,,Water]Tornadus-Therian||LifeOrb|Regenerator|BleakwindStorm,NastyPlot,GrassKnot,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,SludgeBomb,Defog,PainSplit|Calm|252,,,,252,||,0,,,,|||,,,,,Poison]Donphan||AssaultVest|Sturdy|KnockOff,Earthquake,StoneEdge,RapidSpin|Adamant|248,252,,,8,|||||,,,,,Ground]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|Trailblaze,SwordsDance,IvyCudgel,KnockOff|Jolly|,252,,,4,252|||||,,,,,Fire]Raging Bolt||ChoiceSpecs|Protosynthesis|VoltSwitch,DracoMeteor,Thunderbolt,DragonPulse|Modest|252,,,252,4,||,20,,,,|||,,,,,Electric","Iron Valiant||LifeOrb|QuarkDrive|AuraSphere,Psychic,Moonblast,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Sceptile||EjectPack|Overgrow|Acrobatics,LeafStorm,Earthquake,ShedTail|Hasty|,252,,4,,252|||||,,,,,Grass]Tera Captain|Weavile|HeavyDutyBoots|Pressure|TripleAxel,KnockOff,LowKick,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dark]Latios||ChoiceScarf|Levitate|LusterPurge,DragonPulse,FlipTurn,DracoMeteor|Timid|,,,252,4,252|||||,,,,,Dragon]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Roost,Flamethrower,Uturn,ScorchingSands|Modest|248,,,252,8,|||||,,,,,Dragon]Clodsire||BlackSludge|WaterAbsorb|PoisonJab,Recover,Haze,Earthquake|Careful|252,4,,,252,|||||,,,,,Poison"], + ["Tera Captain|Ceruledge|AssaultVest|FlashFire|BitterBlade,Poltergeist,CloseCombat,TeraBlast|Hasty|,252,,4,,252|||||,,,,,Fairy]Tera Captain|Hydrapple|AssaultVest|Regenerator|LeafStorm,DracoMeteor,GigaDrain,EarthPower|Modest|248,,,252,8,||,0,,,,|||,,,,,Water]Dartrix||Eviolite|Overgrow|LeafBlade,KnockOff,Roost,Haze|Careful|248,,,,252,8|||||,,,,,Grass]Rotom-Wash||ChoiceScarf|Levitate|HydroPump,VoltSwitch,PainSplit,Trick|Timid|248,,,252,8,||,0,,,,|||,,,,,Electric]Greninja||LifeOrb|Protean|Surf,DarkPulse,SludgeWave,WaterShuriken|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Iron Treads||SoftSand|QuarkDrive|Earthquake,IronHead,VoltSwitch,StealthRock|Jolly|42,252,4,,,210|||||,,,,,Ground","Ursaluna-Bloodmoon||AssaultVest|MindsEye|BloodMoon,HyperVoice,EarthPower,VacuumWave|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground]Tera Captain|WalkingWake|Leftovers|Protosynthesis|Substitute,HydroSteam,Flamethrower,DragonPulse|Timid|4,,,252,,252||,0,,,,|||,,,,,Water]Torkoal||HeatRock|Drought|StealthRock,SunnyDay,RapidSpin,LavaPlume|Calm|248,,40,,220,|||||,,,,,Fire]Weezing-Galar||RockyHelmet|Levitate|Defog,Flamethrower,SludgeBomb,Toxic|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Bronzong||AssaultVest|Levitate|BodyPress,FlashCannon,Earthquake,PsychicNoise|Relaxed|252,,216,,40,|||||,,,,,Steel]Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,Flamethrower,Memento,Psychic|Modest|128,,,252,32,96||,0,,,,|||,,,,,Dark"], + ["Slowking-Galar||HeavyDutyBoots|Regenerator|FoulPlay,ChillyReception,FutureSight,SludgeBomb|Sassy|252,,4,,252,||,0,,,,|S||,,,,,Poison]Tera Captain|UrshifuRapidStrike|MysticWater|UnseenFist|AquaJet,Uturn,SurgingStrikes,CloseCombat|Adamant|80,252,,,,176|||||,,,,,Water]Weavile||HeavyDutyBoots|Pickpocket|IceShard,KnockOff,TripleAxel,Substitute|Jolly|120,252,,,,136|||||,,,,,Dark]Rillaboom||AssaultVest|GrassySurge|GrassyGlide,KnockOff,Uturn,DrainPunch|Adamant|76,252,,,4,176|||S||,,,,,Grass]Tera Captain|Armarouge|ChoiceSpecs|WeakArmor|ArmorCannon,Trick,Psyshock,ShadowBall|Modest|4,,,252,,252||,0,,,,|S||,,,,,Ghost]Forretress||RockyHelmet|Sturdy|StealthRock,VoltSwitch,RapidSpin,BodyPress|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Bug","Orthworm||SitrusBerry|EarthEater|HeavySlam,StealthRock,Spikes,ShedTail|Relaxed|252,4,252,,,||,,,,,0|||,,,,,Steel]Blaziken||MuscleBand|SpeedBoost|FlareBlitz,CloseCombat,Uturn,SwordsDance|Adamant|,252,12,,,244|||||,,,,,Fire]Tera Captain|Toxtricity|FocusSash|PunkRock|Boomburst,Overdrive,Taunt,Endeavor|Modest|,,4,252,,252||,0,,,,|||,,,,,Normal]Palafin-Hero||Leftovers|ZerotoHero|JetPunch,DrainPunch,IcePunch,BulkUp|Adamant|252,,160,,,96|||||,,,,,Water]Latios||ChoiceScarf|Levitate|DracoMeteor,LusterPurge,FlipTurn,Trick|Timid|,,104,252,,152|||||,,,,,Dragon]Tera Captain|Clefable|RockyHelmet|MagicGuard|TeraBlast,Moonlight,CosmicPower,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Dragon"], + ["Palafin-Hero||RindoBerry|ZerotoHero|BulkUp,DrainPunch,JetPunch,Acrobatics|Adamant|248,84,24,,12,140|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,HeatWave,KnockOff,Hurricane|Timid|216,,,108,92,92|||||,,,,,Flying]Tera Captain|RagingBolt|SitrusBerry|Protosynthesis|CalmMind,DragonPulse,Thunderbolt,Thunderclap|Modest|56,,156,224,72,||,20,,,,|||,,,,,Fairy]Tinkaton||LumBerry|OwnTempo|StealthRock,GigatonHammer,IceHammer,PlayRough|Adamant|64,252,,,4,188|||||,,,,,Fairy]Terapagos||HeavyDutyBoots|TeraShift|RapidSpin,TeraStarstorm,Flamethrower,CalmMind|Modest|56,,,252,,200|||||,,,,,Stellar]Tera Captain|Torterra|CustapBerry|Overgrow|Endure,HeadlongRush,ShellSmash,SeedBomb|Adamant|88,252,4,,,164|||||,,,,,Fairy","Darkrai||Leftovers|BadDreams|DarkPulse,IceBeam,WillOWisp,Taunt|Timid|120,,4,152,8,224||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Encore,Uturn|Jolly|156,168,8,,,176|||||,,,,,Water]Kyurem||ChoiceScarf|Pressure|DracoMeteor,IceBeam,FreezeDry,EarthPower|Timid|24,,4,252,4,224||,0,,,,|||,,,,,Dragon]Klefki||StickyBarb|Prankster|PlayRough,Spikes,Switcheroo,ThunderWave|Careful|252,4,,,252,|||||,,,,,Steel]Landorus-Therian||Leftovers|Intimidate|Earthquake,StoneEdge,Substitute,Uturn|Adamant|248,16,,,116,128|||||,,,,,Ground]Tera Captain|Eelektross|AssaultVest|Levitate|Thunderbolt,Flamethrower,FlashCannon,DragonTail|Quiet|232,,,216,60,|||||,,,,,Steel"], + ["Enamorus-Therian||KebiaBerry|Overcoat|DrainingKiss,IronDefense,EarthPower,CalmMind|Bold|248,,252,8,,||,0,,,,|||,,,,,Fairy]Pecharunt||RockyHelmet|PoisonPuppeteer|PartingShot,Recover,Hex,MalignantChain|Modest|252,,,236,,20||,0,,,,|||,,,,,Poison]Tera Captain|Armarouge|HeavyDutyBoots|WeakArmor|ArmorCannon,CalmMind,ScorchingSands,Psychic|Modest|,,,252,4,252||,0,,,,|||,,,,,Fighting]Dewgong||RockyHelmet|ThickFat|KnockOff,FlipTurn,IceBeam,Encore|Impish|248,,252,,8,|||||,,,,,Water]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|StompingTantrum,SwordsDance,IvyCudgel,HornLeech|Jolly|64,252,,,,192|||||,,,,,Rock]Ursaluna-Bloodmoon||ChopleBerry|MindsEye|CalmMind,BloodMoon,EarthPower,Moonlight|Modest|252,,172,76,,8||,0,,,,|||,,,,,Ground","Garchomp||LoadedDice|RoughSkin|SwordsDance,StealthRock,Earthquake,ScaleShot|Jolly|,252,32,,,224|||||,,,,,Dragon]Urshifu||FocusSash|UnseenFist|CloseCombat,WickedBlow,SuckerPunch,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fighting]Rotom-Wash||Leftovers|Levitate|VoltSwitch,ThunderWave,HydroPump,PainSplit|Calm|252,,,16,240,||,0,,,,|||,,,,,Electric]Tsareena||HeavyDutyBoots|QueenlyMajesty|RapidSpin,KnockOff,PowerWhip,Uturn|Adamant|212,136,160,,,|||||,,,,,Grass]Tera Captain|Revavroom|LifeOrb|Filter|ShiftGear,TeraBlast,IronHead,HighHorsepower|Adamant|,252,,,4,252|||||,,,,,Water]Typhlosion-Hisui||ChoiceScarf|Frisk|Eruption,Flamethrower,InfernalParade,FocusBlast|Modest|,,4,252,,252||,0,,,,|||,,,,,Fire"], + ["Tera Captain|Sceptile|SitrusBerry|Overgrow|ShedTail,Roar,UpperHand,LeafStorm|Jolly|80,252,,,,176|||||,,,,,Psychic]Roaring Moon||BoosterEnergy|Protosynthesis|ThroatChop,DragonDance,Earthquake,IronHead|Jolly|,156,16,,152,184|||||,,,,,Dragon]Donphan||CustapBerry|Sturdy|StealthRock,RapidSpin,Endeavor,KnockOff|Impish|252,84,40,,,132|||||,,,,,Ground]Iron Moth||PowerHerb|QuarkDrive|MeteorBeam,Psychic,SludgeWave,FieryDance|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Tera Captain|Annihilape|Leftovers|Defiant|Taunt,BulkUp,RageFist,DrainPunch|Adamant|164,252,,,,92|||||,,,,,Steel]Skarmory||RockyHelmet|Sturdy|Taunt,Whirlwind,Spikes,BraveBird|Impish|252,,248,,,8|||||,,,,,Steel","Palafin||ChoiceSpecs|ZerotoHero|Boomburst,Surf,JetPunch,IceBeam|Hasty|,80,,252,,176|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|CalmMind,Psychic,IceBeam,Recover|Timid|252,,120,36,4,96||,0,,,,|||,,,,,Fairy]Meowscarada||ChoiceScarf|Protean|KnockOff,Uturn,PlayRough,FlowerTrick|Jolly|24,252,,,,232|||||,,,,,Grass]Clodsire||Leftovers|Unaware|Yawn,Recover,Earthquake,StealthRock|Careful|252,4,,,252,|||||,,,,,Poison]Tera Captain|Comfey|LifeOrb|Triage|CalmMind,DrainingKiss,AlluringVoice,TeraBlast|Modest|252,,,252,4,||,0,,,,|||,,,,,Water]Typhlosion-Hisui||HeavyDutyBoots|Frisk|WillOWisp,InfernalParade,Earthquake,Roar|Timid|252,40,,,,216|||||,,,,,Fire"], + ["Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,IceBeam,FlipTurn|Timid|120,,,252,,136|||||,,,,,Ice]Enamorus||HeavyDutyBoots|CuteCharm|Moonblast,EarthPower,CalmMind,HealingWish|Timid|40,,,252,,216||,0,,,,|||,,,,,Fairy]Tera Captain|Annihilape|HeavyDutyBoots|InnerFocus|RageFist,DrainPunch,BulkUp,Substitute|Careful|248,,,,120,140|||||,,,,,Water]Bronzong||Leftovers|Levitate|IronDefense,CalmMind,BodyPress,StoredPower|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel]Tera Captain|Ribombee|LightClay|ShieldDust|StickyWeb,Moonblast,Reflect,LightScreen|Timid|24,,,252,,232||,0,,,,|||,,,,,Fire]Donphan||HeavyDutyBoots|Sturdy|KnockOff,Earthquake,IceSpinner,RapidSpin|Adamant|248,252,,,,8|||||,,,,,Ground","Brambleghast||ColburBerry|WindRider|RapidSpin,Poltergeist,PowerWhip,Curse|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Jirachi|Leftovers|SereneGrace|Protect,Wish,Thunderbolt,Psychic|Calm|252,,,,224,32||,0,,,,|||,,,,,Steel]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,RazorShell,FlipTurn,SacredSword|Jolly|,252,,,4,252|||||,,,,,Water]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,DrainPunch,ShadowClaw,DestinyBond|Jolly|,252,,,4,252|||||,,,,,Fairy]Tera Captain|SandyShocks|BoosterEnergy|Protosynthesis|IronDefense,Thunderbolt,TeraBlast,StealthRock|Timid|,,48,208,,252||,0,,,,|||,,,,,Flying]Tornadus-Therian||Leftovers|Regenerator|Taunt,NastyPlot,BleakwindStorm,HeatWave|Timid|80,,36,252,,140||,0,,,,|||,,,,,Flying"], + ["Great Tusk||Leftovers|Protosynthesis|Substitute,BulkUp,HeadlongRush,StoneEdge|Adamant|176,252,,,,80|||||,,,,,Ground]Meowscarada||ChoiceScarf|Protean|FlowerTrick,Uturn,KnockOff,TripleAxel|Jolly|56,252,,,,200|||||,,,,,Grass]Latios||ChoiceSpecs|Levitate|DracoMeteor,AuraSphere,Thunderbolt,FlipTurn|Modest|204,,,252,,52|||||,,,,,Dragon]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|VoltSwitch,Taunt,Thunderbolt,FlashCannon|Modest|248,,56,80,,124||,0,,,,|||,,,,,Steel]Heatran||ChopleBerry|FlameBody|StealthRock,HeavySlam,MagmaStorm,Earthquake|Lax|,108,200,52,,148|||||,,,,,Fire]Tera Captain|Feraligatr|LifeOrb|SheerForce|Substitute,DragonDance,Liquidation,Earthquake|Adamant|48,252,,,,208|||||,,,,,Ground","Tera Captain|Tyranitar|Leftovers|SandStream|Earthquake,StealthRock,KnockOff,RockSlide|Careful|248,,8,,252,|||||,,,,,Fairy]Scizor||RockyHelmet|Technician|BulletPunch,KnockOff,CloseCombat,Uturn|Impish|248,,208,,52,|||||,,,,,Bug]Electrode-Hisui||HeavyDutyBoots|Aftermath|LeafStorm,Taunt,VoltSwitch,ElectricTerrain|Timid|252,,,68,,188||,0,,,,|S||,,,,,Electric]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,Uturn,StealthRock,Toxic|Impish|252,,248,,,8|||||,,,,,Water]Iron Valiant||BoosterEnergy|QuarkDrive|SpiritBreak,Moonblast,CloseCombat,DestinyBond|Naive|,224,,68,,216|||||,,,,,Fairy]Slowking||Leftovers|Regenerator|ChillyReception,Scald,IceBeam,ThunderWave|Calm|248,,8,,252,||,0,,,,|||,,,,,Water"], + ["Tera Captain|Cinccino|PowerHerb|SkillLink|TripleAxel,Uturn,TailSlap,Dig|Jolly|,252,,,48,208|||||,,,,,Fairy]Clefable||LifeOrb|MagicGuard|IceBeam,Moonlight,Moonblast,HealingWish|Modest|228,,,252,28,||,0,,,,|||,,,,,Fairy]Mamoswine||AssaultVest|ThickFat|IceShard,Earthquake,Facade,IcicleCrash|Jolly|208,220,,,,80|||||,,,,,Ice]Dondozo||RockyHelmet|Unaware|Yawn,Liquidation,SleepTalk,Rest|Impish|248,8,252,,,|||||,,,,,Water]Tera Captain|Serperior|Leftovers|Contrary|LeechSeed,Substitute,TeraBlast,LeafStorm|Timid|240,,,,40,228||,0,,,,|||,,,,,Ground]Zapdos||HeavyDutyBoots|Static|Roost,Uturn,Hurricane,Discharge|Timid|,,,252,4,252|||||,,,,,Electric","Tera Captain|Annihilape|ChoiceBand|Defiant|DrainPunch,RageFist,SeedBomb,Uturn|Adamant|252,252,4,,,|||||,,,,,Ghost]Weavile||ChoiceBand|Pressure|TripleAxel,KnockOff,IceShard,LowKick|Jolly|72,252,,,8,176|||||,,,,,Dark]Gliscor||ToxicOrb|PoisonHeal|Earthquake,StealthRock,ToxicSpikes,Uturn|Careful|252,,4,,252,|||||,,,,,Ground]Tera Captain|Vaporeon|Leftovers|WaterAbsorb|Scald,Haze,Wish,FlipTurn|Calm|252,,4,,252,|||||,,,,,Fire]Raging Bolt||ShucaBerry|Protosynthesis|SunnyDay,Thunderbolt,SolarBeam,WeatherBall|Modest|252,,100,156,,||,20,,,,|||,,,,,Electric]Gholdengo||ShucaBerry|GoodasGold|MakeItRain,ShadowBall,Recover,ThunderWave|Modest|252,,128,120,,8||,0,,,,|||,,,,,Steel"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Spikes,IvyCudgel,KnockOff,Synthesis|Jolly|248,36,,,,224|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Roost,ThunderWave,VoltSwitch,HeatWave|Bold|248,,252,8,,||,0,,,,|||,,,,,Electric]Ursaluna-Bloodmoon||CustapBerry|MindsEye|Endure,BloodMoon,EarthPower,CalmMind|Modest|248,,,156,104,||,0,,,,|||,,,,,Ground]Scizor||ChoiceBand|Technician|BulletPunch,QuickAttack,Uturn,CloseCombat|Adamant|248,252,,,8,|||||,,,,,Bug]Tera Captain|Torterra|AssaultVest|ShellArmor|HeadlongRush,StoneEdge,WoodHammer,LeafStorm|Sassy|248,8,,,252,|||||,,,,,Grass]Sneasler||ChoiceBand|PoisonTouch|Uturn,ShadowClaw,CloseCombat,QuickAttack|Adamant|,252,4,,,252|||||,,,,,Fighting","Tera Captain|Annihilape|AssaultVest|Defiant|CloseCombat,DrainPunch,RageFist,Uturn|Adamant|248,140,,,88,32|||||,,,,,Dragon]Tera Captain|Toxtricity|ThroatSpray|PunkRock|Boomburst,Overdrive,Substitute,ShiftGear|Modest|64,,4,252,,188||,0,,,,|||,,,,,Electric]Iron Treads||ShucaBerry|QuarkDrive|Earthquake,BodyPress,IronDefense,StealthRock|Impish|248,,192,,48,20|||||,,,,,Bug]Greninja||ChoiceScarf|Protean|IceBeam,Extrasensory,Uturn,Spikes|Timid|,,16,252,,240|||||,,,,,Bug]Alomomola||RockyHelmet|Regenerator|Scald,ZenHeadbutt,FlipTurn,Wish|Relaxed|248,,252,,8,|||||,,,,,Bug]Abomasnow||LightClay|SnowWarning|WoodHammer,IceShard,Blizzard,AuroraVeil|Impish|248,68,192,,,|||||,,,,,Bug"], + ["Palafin-Hero|||ZerotoHero|Acrobatics,JetPunch,DrainPunch,FlipTurn|Adamant|16,252,,,,240|||||,,,,,Water]Corviknight||Leftovers|Pressure|BraveBird,Uturn,Roost,Defog|Impish|252,,116,,140,|||||,,,,,Flying]Mamoswine||ChoiceScarf|ThickFat|Earthquake,IcicleCrash,IceShard,KnockOff|Jolly|64,252,,,,192|||||,,,,,Ice]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,Uturn,Trick|Jolly|56,252,,,,200|||||,,,,,Grass]Tera Captain|Fezandipiti|Leftovers|ToxicChain|NastyPlot,TeraBlast,Moonblast,DarkPulse|Serious|136,,,124,,248||,0,,,,|||,,,,,Psychic]Tera Captain|RagingBolt|ChoiceSpecs|Protosynthesis|VoltSwitch,DracoMeteor,Thunderclap,TeraBlast|Modest|196,,,252,,60||,20,,,,|||,,,,,Water","Iron Valiant||ExpertBelt|QuarkDrive|Moonblast,Thunderbolt,Psyshock,VacuumWave|Modest|128,,,252,,128||,0,,,,|||,,,,,Fairy]Garchomp||RockyHelmet|RoughSkin|Earthquake,FireFang,SwordsDance,StealthRock|Adamant|208,16,252,,,32|||||,,,,,Dragon]Empoleon||ChopleBerry|Competitive|Surf,IceBeam,GrassKnot,Agility|Modest|184,,208,8,,108||,0,,,,|||,,,,,Water]Weezing-Galar||BabiriBerry|Levitate|SludgeBomb,Thief,WillOWisp,PainSplit|Bold|248,,216,,44,|||||,,,,,Poison]Tera Captain|Tyranitar|ChoiceBand|SandStream|StoneEdge,RockSlide,RockBlast,IcePunch|Adamant|128,252,,,,128|||||,,,,,Rock]Tera Captain|Ceruledge|FocusSash|WeakArmor|BitterBlade,Poltergeist,ShadowSneak,SwordsDance|Adamant|,252,4,,,252|||||,,,,,Ghost"], + ["Tera Captain|Cloyster|HeavyDutyBoots|Overcoat|ShellSmash,IceBeam,TeraBlast,IceShard|Gentle|140,,,,252,116|||||,,,,,Fighting]Baxcalibur||HeavyDutyBoots|ThermalExchange|IceShard,SwordsDance,Substitute,DragonClaw|Adamant|248,252,,,8,|||||,,,,,Dragon]Decidueye||AssaultVest|Overgrow|ShadowBall,EnergyBall,ShadowSneak,Uturn|Sassy|248,,8,,252,|||||,,,,,Grass]Slowking||HeavyDutyBoots|Regenerator|NastyPlot,TrickRoom,Surf,ShadowBall|Quiet|252,,,252,4,||,0,,,,0|||,,,,,Water]Ribombee||FocusSash|ShieldDust|Moonblast,QuiverDance,Psychic,StickyWeb|Timid|112,,,252,,144||,0,,,,|||,,,,,Bug]Tera Captain|LandorusTherian|AssaultVest|Intimidate|Psychic,Uturn,Earthquake,TeraBlast|Jolly|248,,,,12,248|||||,,,,,Ice","Tera Captain|Excadrill|LumBerry|MoldBreaker|RapidSpin,IronHead,Earthquake,TeraBlast|Adamant|,252,,,84,172|||||,,,,,Ice]Tyranitar||ShucaBerry|SandStream|KnockOff,Earthquake,RockBlast,DragonDance|Jolly|,252,132,,,124|||||,,,,,Rock]Latios||ColburBerry|Levitate|LusterPurge,ShadowBall,AuraSphere,CalmMind|Modest|,,32,252,,224||,0,,,,|||,,,,,Dragon]Enamorus-Therian||HeavyDutyBoots|Overcoat|Moonblast,EarthPower,HealingWish,MysticalFire|Calm|248,,8,,252,||,0,,,,|||,,,,,Fairy]Iron Bundle||ChoiceScarf|QuarkDrive|FreezeDry,HydroPump,Encore,FlipTurn||208,,4,252,,44|||||,,,,,Ice]Tera Captain|Eelektross|AssaultVest|Levitate|StompingTantrum,Liquidation,SupercellSlam,CloseCombat|Adamant|,208,252,,,48|||||,,,,,Electric"], + ["Fezandipiti||BlackSludge|ToxicChain|Taunt,Roost,Uturn,LightScreen|Careful|252,,,,236,20|||||,,,,,Poison]Tera Captain|Armarouge|ChoiceScarf|FlashFire|ArmorCannon,Psyshock,DestinyBond,Trick|Timid|68,,,252,,188||,0,,,,|||,,,,,Psychic]Tera Captain|RagingBolt|Leftovers|Protosynthesis|DracoMeteor,Discharge,Thunderclap,CalmMind|Modest|252,,,120,136,||,20,,,,|||,,,,,Dark]Weavile||ChoiceScarf|Pressure|FoulPlay,LowKick,TripleAxel,KnockOff|Adamant|72,252,,,,184|||||,,,,,Dark]Ursaluna-Bloodmoon||YacheBerry|MindsEye|VacuumWave,Roar,BloodMoon,Yawn|Modest|252,,236,20,,||,0,,,,|||,,,,,Ground]Corviknight||RockyHelmet|Unnerve|Taunt,Roost,Defog,Uturn|Impish|252,,236,,,20|||||,,,,,Flying","Weavile||HeavyDutyBoots|Pressure|TripleAxel,KnockOff,IceShard,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dark]Kommo-o||ThroatSpray|Bulletproof|ClangorousSoul,Boomburst,Flamethrower,ClangingScales|Modest|,,,252,4,252||,0,,,,|||,,,,,Normal]Terapagos||Leftovers|TeraShift|TeraStarstorm,ScorchingSands,Flamethrower,CalmMind|Timid|,,4,252,,252||,15,,,,|||,,,,,Stellar]Tera Captain|Cresselia|Leftovers|Levitate|CalmMind,StoredPower,Moonblast,Moonlight|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Manaphy||Leftovers|Hydration|Substitute,TailGlow,IceBeam,Surf|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Orthworm||RockyHelmet|EarthEater|BodyPress,Spikes,Earthquake,ShedTail|Impish|248,8,252,,,|||||,,,,,Steel"], + ["Gliscor||ToxicOrb|PoisonHeal|Earthquake,Spikes,Protect,KnockOff|Careful|244,,36,,228,|||||,,,,,Stellar]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,IceBeam,FlipTurn|Timid|116,,,252,,140|||||,,,,,Stellar]Tera Captain|Hydreigon|ChoiceScarf|Levitate|DarkPulse,DracoMeteor,FlashCannon,Uturn|Timid|,,,252,4,252|||||,,,,,Steel]Magnezone||ChoiceScarf|Sturdy|FlashCannon,VoltSwitch,Thunderbolt,SteelBeam|Timid|,,44,252,,212||,0,,,,|||,,,,,Stellar]Iron Boulder||ChoiceBand|QuarkDrive|MightyCleave,CloseCombat,Earthquake,IronHead|Jolly|24,252,,,,232|||||,,,,,Stellar]Tera Captain|Cetitan|HeavyDutyBoots|SheerForce|Yawn,IcicleCrash,IceShard,Earthquake|Adamant|56,252,,,8,192|||||,,,,,Water","Garchomp||RockyHelmet|RoughSkin|StealthRock,SwordsDance,Earthquake,ScaleShot|Jolly|12,56,216,,,224|||||,,,,,Dragon]Palafin-Hero||YacheBerry|ZerotoHero|JetPunch,DrainPunch,FlipTurn,BulkUp|Adamant|156,32,252,,60,8|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,FocusBlast,KnockOff,Uturn|Timid|248,,,,188,72|||||,,,,,Flying]Gholdengo||ColburBerry|GoodasGold|MakeItRain,ShadowBall,Recover,NastyPlot|Calm|140,,,52,164,152||,0,,,,|||,,,,,Steel]Tera Captain|Gallade|HeavyDutyBoots|Sharpness|PsychoCut,SacredSword,IcePunch,Agility|Adamant|64,252,,,,192|||||,,,,,Psychic]Tera Captain|Frosmoth|MentalHerb|IceScales|QuiverDance,IceBeam,TeraBlast,Defog|Modest|248,,,104,,156||,0,,,,|||,,,,,Fighting"], + ["Overqwil||HeavyDutyBoots|Intimidate|DestinyBond,Haze,Crunch,Toxic|Impish|248,8,252,,,|||S||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,HornLeech,StompingTantrum|Jolly|,252,,,4,252|||||,,,,,Water]Scizor||LumBerry|Technician|SwordsDance,BulletPunch,Thief,KnockOff|Adamant|248,252,,,8,|||||,,,,,Bug]Emboar||HeavyDutyBoots|Reckless|SuckerPunch,WillOWisp,WildCharge,FlareBlitz|Careful|168,252,,,88,|||S||,,,,,Fire]Ursaluna-Bloodmoon||HeavyDutyBoots|MindsEye|BloodMoon,HyperVoice,EarthPower,Moonlight|Modest|184,,172,152,,||,0,,,,|||,,,,,Ground]Tera Captain|Hoopa|HeavyDutyBoots|Magician|ShadowBall,Psyshock,TeraBlast,Reflect|Modest|192,,64,252,,||,0,,,,|||,,,,,Flying","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Trailblaze,PowerWhip,Uturn|Jolly|,252,,,4,252|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,GrassKnot,KnockOff,Uturn|Timid|88,,,252,,168|||||,,,,,Flying]Garchomp||RockyHelmet|RoughSkin|StealthRock,Surf,Flamethrower,ScorchingSands|Bold|252,,172,,,84||,0,,,,|||,,,,,Dragon]Tera Captain|Lucario|ChoiceBand|InnerFocus|ExtremeSpeed,BulletPunch,CloseCombat,Crunch|Adamant|40,252,,,,216|||||,,,,,Normal]Tentacruel||BlackSludge|LiquidOoze|RapidSpin,SludgeBomb,Surf,KnockOff|Calm|252,,4,,252,|||||,,,,,Water]Gholdengo||ShucaBerry|GoodasGold|ThunderWave,Recover,MakeItRain,ShadowBall|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel"], + ["Overqwil||Leftovers|Intimidate|Taunt,SwordsDance,GunkShot,Waterfall|Adamant|192,252,64,,,|||||,,,,,Dark]Tera Captain|GreatTusk|MirrorHerb|Protosynthesis|Taunt,RapidSpin,CloseCombat,Earthquake|Adamant|248,252,,,,8|||||,,,,,Grass]Empoleon||ChopleBerry|Torrent|HydroPump,StealthRock,IceBeam,GrassKnot|Modest|32,,,252,,224||,0,,,,|||,,,,,Water]Iron Bundle||AssaultVest|QuarkDrive|FreezeDry,FlipTurn,HydroPump,IceBeam|Modest|232,,,252,24,|||||,,,,,Ice]Arboliva||ChopleBerry|SeedSower|LeechSeed,EnergyBall,EarthPower,StrengthSap|Bold|252,,12,,,244||,0,,,,|||,,,,,Grass]Tera Captain|OricorioPomPom|CovertCloak|Dancer|QuiverDance,Taunt,TeraBlast,Roost|Bold|252,,252,4,,||,0,,,,|||,,,,,Water","Torterra||LoadedDice|Overgrow|ShellSmash,BulletSeed,RockBlast,HeadlongRush|Adamant|,252,28,,,228|||||,,,,,Grass]Gardevoir||ChoiceScarf|Synchronize|Moonblast,Psychic,HealingWish,FocusBlast|Timid|,,,252,44,212||,0,,,,|||,,,,,Psychic]Corviknight||Leftovers|Pressure|BraveBird,Uturn,Roost,IronHead|Impish|252,4,252,,,|||||,,,,,Flying]Tera Captain|Skeledirge|Leftovers|Unaware|TorchSong,ShadowBall,SlackOff,EarthPower|Modest|252,,,252,4,||,0,,,,|||,,,,,Steel]Tera Captain|Garganacl|Leftovers|PurifyingSalt|SaltCure,Earthquake,Recover,StoneEdge|Adamant|252,112,,,144,|||||,,,,,Ghost]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Ruination,Earthquake,Spikes|Sassy|252,4,,,252,|||||,,,,,Dark"], + ["Garchomp||ChoiceScarf|RoughSkin|Earthquake,DragonClaw,IronHead,StealthRock|Jolly|56,252,,,,200|||S||,,,,,Dragon]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,SwordsDance,Uturn|Adamant|8,252,,,,248|||||,,,,,Water]Scizor||AssaultVest|Technician|Uturn,KnockOff,DualWingbeat,BulletPunch|Adamant|248,252,,,8,|||||,,,,,Bug]Zapdos||HeavyDutyBoots|Static|Hurricane,Thunderbolt,AncientPower,Roost|Timid|40,,,252,,216||,0,,,,|||,,,,,Electric]Overqwil||RockyHelmet|PoisonPoint|GunkShot,Spikes,Haze,PainSplit|Impish|128,,252,,,124|||S||,,,,,Dark]Tera Captain|Hariyama|CobaBerry|ThickFat|DrainPunch,HeavySlam,KnockOff,Whirlwind|Adamant|,4,252,,252,|||S||,,,,,Grass","Hatterene||CustapBerry|MagicBounce|DazzlingGleam,MysticalFire,Reflect,HealingWish|Bold|252,,224,32,,||,0,,,,|||,,,,,Psychic]Palafin||RindoBerry|ZerotoHero|Taunt,JetPunch,IcePunch,Counter|Adamant|252,176,16,,,64|||||,,,,,Water]Tera Captain|Kilowattrel|WiseGlasses|VoltAbsorb|Thunderbolt,Hurricane,Roost,ChargeBeam|Modest|80,,,248,,180||,0,,,,|||,,,,,Fairy]Meowscarada||ProtectivePads|Overgrow|KnockOff,Uturn,FlowerTrick,TripleAxel|Jolly|,212,144,,,152|||||,,,,,Grass]Tera Captain|Annihilape|ChoiceScarf|Defiant|Uturn,TeraBlast,CloseCombat,RageFist|Adamant|88,252,,,,168|||||,,,,,Fighting]Glimmora||BabiriBerry|ToxicDebris|StealthRock,PowerGem,DazzlingGleam,SpikyShield|Modest|,,160,232,,116||,0,,,,|||,,,,,Rock"], + ["Bronzong||ColburBerry|Levitate|LightScreen,IronDefense,BodyPress,Psychic|Calm|252,,132,,124,||,0,,,,|||,,,,,Steel]Tera Captain|Venusaur|RockyHelmet|Chlorophyll|GigaDrain,Synthesis,KnockOff,SunnyDay|Bold|252,,252,,4,|||||,,,,,Fairy]Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,Flamethrower,FireBlast,Psychic|Modest|,,,252,24,232||,0,,,,|||,,,,,Dark]Torkoal||HeatRock|Drought|LavaPlume,Yawn,StealthRock,RapidSpin|Bold|248,,252,,8,|||||,,,,,Fire]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,FlipTurn|Timid|12,,,244,,252|||||,,,,,Water]Slither Wing||Leftovers|Protosynthesis|FirstImpression,Uturn,CloseCombat,MorningSun|Careful|252,,156,,88,12|||||,,,,,Bug","Urshifu-Rapid-Strike||ProtectivePads|UnseenFist|RainDance,SurgingStrikes,AerialAce,CloseCombat|Careful|,24,,,252,232|||||,,,,,Fighting]Darkrai||ChoiceScarf|BadDreams|DarkPulse,FocusBlast,SludgeBomb,Trick|Modest|,,,252,4,252||,0,,,,|||,,,,,Dark]Weezing-Galar||CustapBerry|MistySurge|SludgeWave,MistyExplosion,StrangeSteam,DestinyBond|Calm|248,,,104,148,8||,0,,,,|||,,,,,Poison]Tera Captain|ThundurusTherian|LumBerry|VoltAbsorb|Agility,Thunderbolt,SludgeWave,NastyPlot|Modest|176,,,132,,200||,0,,,,|||,,,,,Poison]Tera Captain|Dudunsparce|Leftovers|SereneGrace|HyperDrill,Roost,Glare,StealthRock|Careful|248,8,,,252,|||||,,,,,Ghost]Metagross||ChoiceBand|ClearBody|BulletPunch,Explosion,PsychicFangs,IronHead|Adamant|252,252,,,4,|||||,,,,,Steel"], + ["Darkrai||WeaknessPolicy|BadDreams|DrainPunch,DarkPulse,Taunt,CalmMind|Hasty|,56,,248,,204|||||,,,,,Dark]Sneasler||WhiteHerb|Unburden|CloseCombat,SwordsDance,GunkShot,Toxic|Jolly|,252,,,4,252|||||,,,,,Fighting]Swampert||AssaultVest|Torrent|FlipTurn,Earthquake,KnockOff,Outrage|Adamant|248,100,,,160,|||||,,,,,Water]Tera Captain|Diancie|Leftovers|ClearBody|SleepTalk,Rest,BodyPress,DiamondStorm|Careful|252,4,,,252,|||||,,,,,Fighting]Skarmory||RockyHelmet|Sturdy|BraveBird,Spikes,Roost,Whirlwind|Careful|248,,8,,252,|||||,,,,,Steel]Tera Captain|Latias|ChoiceScarf|Levitate|HealingWish,MistBall,DracoMeteor,WeatherBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Psychic","Ninetales||HeatRock|Drought|HealingWish,Encore,WillOWisp,Flamethrower|Bold|248,,252,,,8||,0,,,,|||,,,,,Fire]Cresselia||Leftovers|Levitate|CalmMind,Moonlight,Moonblast,Psyshock|Bold|248,,216,,,44||,0,,,,|||,,,,,Psychic]Scream Tail||Leftovers|Protosynthesis|StealthRock,Flamethrower,ThunderWave,DazzlingGleam|Timid|248,,,12,,248||,0,,,,|||,,,,,Fairy]Venusaur||LumBerry|Chlorophyll|WeatherBall,GigaDrain,Growth,SludgeBomb|Modest|232,,4,252,,20||,0,,,,|||,,,,,Grass]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,FlipTurn,Flamethrower|Timid|,,12,244,,252|||||,,,,,Water]Roaring Moon||ChopleBerry|Protosynthesis|DragonDance,FireFang,KnockOff,IronHead|Jolly|,228,28,,,252|||||,,,,,Dragon"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PowerWhip,PlayRough,SwordsDance|Jolly|80,252,,,,176|||||,,,,,Water]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,CloseCombat,PsychoCut,IronHead|Jolly|152,252,,,,104|||||,,,,,Rock]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,DarkPulse,Psychic,Flamethrower|Timid|96,,,252,,160||,0,,,,|||,,,,,Dark]Corviknight||HeavyDutyBoots|Pressure|Uturn,IronHead,Roost,Defog|Impish|252,,252,,4,|||||,,,,,Flying]Alomomola||RockyHelmet|Regenerator|FlipTurn,Wish,PlayRough,BodySlam|Impish|252,,252,,4,|||||,,,,,Water]Tera Captain|Orthworm|SitrusBerry|EarthEater|ShedTail,StealthRock,MetalBurst,BodyPress|Impish|252,,252,,4,||,0,,,,|||,,,,,Poison","Tyranitar||Leftovers|SandStream|StealthRock,KnockOff,Taunt,Flamethrower||252,76,,120,,60|||||,,,,,Rock]Clefable||HeavyDutyBoots|Unaware|Moonlight,ThunderWave,Moonblast,Flamethrower|Modest|252,,160,96,,||,0,,,,|S||,,,,,Fairy]Tera Captain|Amoonguss|RockyHelmet|Regenerator|SludgeBomb,Spore,GigaDrain,StunSpore|Bold|208,,252,48,,||,0,,,,|||,,,,,Grass]Tauros-Paldea-Aqua||ChoiceBand|Intimidate|CloseCombat,AquaJet,RagingBull,WaveCrash|Adamant|252,252,4,,,|||||,,,,,Fighting]Eelektross||Leftovers|Levitate|Thunderbolt,GigaDrain,Uturn,Flamethrower|Modest|112,,,252,,144|||||,,,,,Electric]Ceruledge||HeavyDutyBoots|FlashFire|BitterBlade,WillOWisp,Poltergeist,ShadowSneak|Adamant|144,252,,,,112|||||,,,,,Fire"], + ["Kyurem||LoadedDice|Pressure|ScaleShot,IceBeam,IcicleSpear,Roost|Serious|4,252,,,,252|||||,,,,,Dragon]Zapdos||HeavyDutyBoots|Static|Thunderbolt,Uturn,Roost,HeatWave|Modest|248,,,252,8,|||||,,,,,Electric]Darkrai||LifeOrb|BadDreams|NastyPlot,DarkPulse,Psychic,IceBeam|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Sneasler||FocusSash|Unburden|DireClaw,SwordsDance,BrickBreak,Uturn|Adamant|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Heatran|AirBalloon|FlameBody|MagmaStorm,FlashCannon,StealthRock,WillOWisp|Serious|252,,126,4,126,||,0,,,,|||,,,,,Flying]Avalugg-Hisui||CustapBerry|Sturdy|MountainGale,StealthRock,RapidSpin,StoneEdge|Adamant|252,252,4,,,|||||,,,,,Ice","Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,AuraSphere,VacuumWave,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Garchomp||YacheBerry|RoughSkin|ScaleShot,StealthRock,Earthquake,Liquidation|Jolly|112,196,,,,200|||||,,,,,Dragon]Metagross||ChoiceScarf|ClearBody|MeteorMash,BulletPunch,PsychicFangs,IcePunch|Jolly|,252,,,28,228|||||,,,,,Steel]Tera Captain|Lanturn|RockyHelmet|VoltAbsorb|ElectricTerrain,VoltSwitch,Scald,DazzlingGleam|Calm|40,,112,104,252,||,0,,,,|||,,,,,Water]Tera Captain|Zarude|ChopleBerry|LeafGuard|KnockOff,TeraBlast,Uturn,Acrobatics|Jolly|80,252,,,,176|||||,,,,,Rock]Tornadus-Therian||ProtectivePads|Regenerator|KnockOff,Taunt,Uturn,Tailwind|Careful|240,56,36,,168,8|||||,,,,,Flying"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|HornLeech,IvyCudgel,Substitute,LowKick|Adamant|48,252,,,4,204|||||,,,,,Water]Tornadus-Therian||ChoiceScarf|Regenerator|KnockOff,Uturn,Hurricane,FocusBlast|Modest|128,,12,252,,116|||||,,,,,Flying]Urshifu||ChoiceScarf|UnseenFist|Uturn,PoisonJab,CloseCombat,WickedBlow|Jolly|56,252,,,,200|||||,,,,,Fighting]Heatran||ChopleBerry|FlameBody|MagmaStorm,Protect,StealthRock,WillOWisp|Bold|252,,252,4,,||,0,,,,|||,,,,,Fire]Glimmora||RockyHelmet|Corrosion|Toxic,EarthPower,PowerGem,SpikyShield|Bold|252,,252,4,,||,0,,,,|||,,,,,Rock]Alomomola||RockyHelmet|Regenerator|Whirlpool,FlipTurn,Protect,AlluringVoice|Bold|252,,252,4,,|||||,,,,,Water","Tera Captain|HoopaUnbound|ChoiceScarf|Magician|DarkPulse,Thunderbolt,FocusBlast,KnockOff|Modest|36,,,252,,220|||||,,,,,Dark]Goodra-Hisui||AssaultVest|Gooey|Earthquake,Thunderbolt,HeavySlam,DragonTail|Relaxed|252,,196,,60,|||||,,,,,Steel]Cinderace||HeavyDutyBoots|Libero|Uturn,PyroBall,HighJumpKick,CourtChange|Jolly|72,252,,,,184|||||,,,,,Fire]Tera Captain|Clefable|Leftovers|Unaware|Moonlight,StealthRock,Moonblast,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Dragon]Annihilape||ChoiceScarf|Defiant|Uturn,CloseCombat,RageFist,FinalGambit|Adamant|116,252,,,,140|||||,,,,,Fighting]Alomomola||RockyHelmet|Regenerator|FlipTurn,Wish,Protect,PlayRough|Relaxed|252,4,252,,,||,,,,,0|||,,,,,Water"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,KnockOff,CloseCombat,Encore|Jolly|,240,16,,,252|||||,,,,,Stellar]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|DualWingbeat,Earthquake,Protect,Spikes|Jolly|244,,32,,,232|||||,,,,,Fairy]Empoleon||CustapBerry|Torrent|Surf,IceBeam,GrassKnot,StealthRock|Modest|168,,88,252,,||,0,,,,|||,,,,,Stellar]Sceptile||YacheBerry|Unburden|LeafStorm,DragonPulse,ShedTail,DragonTail|Timid|80,,,252,,176|||S||,,,,,Stellar]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,DazzlingGleam,TeraBlast,Protect|Timid|232,,,,100,176||,0,,,,|||,,,,,Fighting]Gengar||LifeOrb|CursedBody|SludgeWave,ShadowBall,FocusPunch,Substitute|Naive|,4,,252,,252|||||,,,,,Stellar","Snorlax||Leftovers|Immunity|Curse,BodySlam,Crunch,Protect|Careful|88,12,156,,252,|||||,,,,,Normal]Greninja||LifeOrb|Protean|WaterShuriken,IceBeam,DarkPulse,LowKick|Hasty|,48,,252,,208|||||,,,,,Water]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,FlareBlitz,DragonClaw,MorningSun|Adamant|248,160,,,,100|||||,,,,,Fire]Tera Captain|Latias|MirrorHerb|Levitate|Thunderbolt,IceBeam,CalmMind,Recover|Timid|248,,,8,,252||,0,,,,|||,,,,,Electric]Iron Treads||BoosterEnergy|QuarkDrive|IceSpinner,Earthquake,RapidSpin,StealthRock|Jolly|8,252,,,,248|||||,,,,,Ground]Electivire||Leftovers|VitalSpirit|IcePunch,ThunderPunch,BulkUp,Protect|Jolly|152,100,,,4,252|||||,,,,,Electric"], + ["Tera Captain|Latias|Leftovers|Levitate|ThunderWave,Psychic,IceBeam,Recover|Calm|248,,108,,32,120||,0,,,,|||,,,,,Steel]Ninetales-Alola||HeavyDutyBoots|SnowWarning|Blizzard,Moonblast,Hex,AuroraVeil|Modest|,,128,252,,128||,0,,,,|||,,,,,Ice]Kilowattrel||ChoiceScarf|WindPower|VoltSwitch,Uturn,Roost,Hurricane|Naive|,8,,252,,248|||||,,,,,Electric]Sandslash-Alola||MentalHerb|SlushRush|StealthRock,RapidSpin,KnockOff,IceSpinner|Impish|152,,252,,4,100|||||,,,,,Ice]Weezing-Galar||AirBalloon|NeutralizingGas|StrangeSteam,Explosion,Taunt,Toxic|Bold|248,,112,,8,140|||||,,,,,Poison]Sneasler||SitrusBerry|Unburden|Uturn,CloseCombat,ThroatChop,Taunt|Adamant|,252,,,88,168|||||,,,,,Fighting","Iron Boulder||ChoiceBand|QuarkDrive|MightyCleave,CloseCombat,ZenHeadbutt,QuickAttack|Jolly|,252,,,4,252|||||,,,,,Rock]Skarmory||RockyHelmet|Sturdy|BodyPress,BraveBird,Whirlwind,Roost|Impish|252,,160,,,96|||||,,,,,Steel]Gliscor||ToxicOrb|PoisonHeal|KnockOff,Earthquake,Toxic,Protect|Careful|252,,4,,252,|||||,,,,,Ground]Iron Bundle||ChoiceScarf|QuarkDrive|IceBeam,FreezeDry,HydroPump,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,Hex,WillOWisp,SlackOff|Bold|252,,172,,84,||,0,,,,|||,,,,,Dark]Clodsire||HeavyDutyBoots|Unaware|Earthquake,PoisonJab,StealthRock,Recover|Careful|248,,168,,92,|||||,,,,,Poison"], + ["Tera Captain|Annihilape|Leftovers|Defiant|Substitute,BulkUp,DrainPunch,RageFist|Careful|120,,,,252,136|||S||,,,,,Steel]Palafin||Leftovers|ZerotoHero|BulkUp,Taunt,JetPunch,DrainPunch|Adamant|200,252,,,,56|||S||,,,,,Water]Zapdos||RockyHelmet|Static|HyperBeam,Hurricane,MetalSound,Roost|Bold|252,,200,,,56||,0,,,,|S||,,,,,Electric]Archaludon||AssaultVest|Stamina|ElectroShot,DragonPulse,BodyPress,HeavySlam|Modest|80,,,252,,176|||S||,,,,,Steel]Politoed||DampRock|Drizzle|HydroPump,IceBeam,Haze,Rest|Calm|252,,,,160,96||,0,,,,|S||,,,,,Water]Tera Captain|Overqwil|LoadedDice|SwiftSwim|SwordsDance,TeraBlast,PinMissile,ScaleShot|Adamant|56,252,,,,200|||S||,,,,,Fighting","Kingambit||ChopleBerry|SupremeOverlord|SwordsDance,SuckerPunch,StoneEdge,KowtowCleave|Adamant|4,252,252,,,|||||,,,,,Dark]Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,HydroPump,FlipTurn,Encore|Modest|,,,252,4,252|||||,,,,,Ice]Raging Bolt||BoosterEnergy|Protosynthesis|Thunderclap,DracoMeteor,Thunder,CalmMind|Modest|172,,,252,,84||,20,,,,|||,,,,,Electric]Tera Captain|Clodsire|Leftovers|WaterAbsorb|Spikes,Toxic,Recover,Earthquake|Careful|244,,12,,252,|||||,,,,,Dark]Kilowattrel||HeavyDutyBoots|VoltAbsorb|Hurricane,Thunder,VoltSwitch,ThunderWave|Timid|100,,40,252,60,56||,0,,,,|||,,,,,Electric]Tera Captain|LilligantHisui|WideLens|Hustle|CloseCombat,TeraBlast,LeafBlade,VictoryDance|Adamant|,252,,4,,252|||||,,,,,Ghost"], + ["Milotic||FlameOrb|MarvelScale|Scald,FlipTurn,DragonTail,Recover|Impish|252,4,252,,,|||||,,,,,Water]Infernape||Charcoal|Blaze|Overheat,Uturn,VacuumWave,WillOWisp|Timid|,,52,252,,200|||||,,,,,Fire]Baxcalibur||LoadedDice|ThermalExchange|IcicleSpear,GlaiveRush,Earthquake,DragonDance|Adamant|100,252,,,,156|||||,,,,,Dragon]Wigglytuff||RockyHelmet|CuteCharm|DrainingKiss,StealthRock,ThunderWave,Encore|Bold|252,,252,,4,||,0,,,,|||,,,,,Normal]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,Uturn,Taunt,FocusBlast|Timid|252,,160,,,96|||||,,,,,Flying]Tera Captain|Torterra|LoadedDice|Overgrow|BulletSeed,HeadlongRush,RockBlast,ShellSmash|Adamant|76,252,,,4,176|||||,,,,,Water","Palafin-Hero||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,FlipTurn,CloseCombat|Adamant|104,252,,,,152|||||,,,,,Water]Gouging Fire||ShucaBerry|Protosynthesis|DragonDance,Outrage,MorningSun,HeatCrash|Adamant|72,252,4,,,180|||||,,,,,Fire]Tera Captain|ThundurusTherian|MirrorHerb|VoltAbsorb|Thunderbolt,TeraBlast,FocusBlast,Agility|Modest|248,,,,8,252||,0,,,,|||,,,,,Ice]Terapagos||HeavyDutyBoots|TeraShift|Thunderbolt,RapidSpin,Toxic,Roar|Bold|252,,60,,196,|||||,,,,,Stellar]Tera Captain|Rhyperior|CustapBerry|SolidRock|StealthRock,Earthquake,TeraBlast,StoneEdge|Adamant|,252,4,,252,|||||,,,,,Electric]Weavile||LifeOrb|Pressure|SwordsDance,KnockOff,LowKick,IceShard|Jolly|32,252,,,,224|||||,,,,,Dark"], + ["Garchomp||RockyHelmet|RoughSkin|StompingTantrum,PoisonJab,DragonClaw,StealthRock|Jolly|248,,120,,,140|||||,,,,,Dragon]Weavile||ChoiceScarf|Pressure|IceShard,TripleAxel,KnockOff,LowKick|Jolly|8,252,,,,248|||||,,,,,Dark]Tera Captain|Keldeo|ChoiceSpecs|Justified|Surf,FlipTurn,SecretSword,VacuumWave|Timid|16,,,252,,240|||||,,,,,Dragon]Gholdengo||ShucaBerry|GoodasGold|MakeItRain,ShadowBall,Reflect,Recover|Bold|248,,232,28,,||,0,,,,|||,,,,,Steel]Tera Captain|Mesprit|AssaultVest|Levitate|ZenHeadbutt,FutureSight,KnockOff,Uturn|Sassy|248,52,,,208,|||||,,,,,Steel]Weezing-Galar||RedCard|Levitate|SludgeBomb,DestinyBond,Defog,Haze|Bold|252,,236,,20,||,0,,,,|||,,,,,Poison","Iron Boulder||ChoiceBand|QuarkDrive|MightyCleave,ThroatChop,ZenHeadbutt,QuickAttack|Adamant|,252,,,4,252|||||,,,,,Rock]Enamorus||ChoiceScarf|CuteCharm|Moonblast,MysticalFire,Psychic,HealingWish|Timid|,,,252,32,224||,0,,,,|||,,,,,Fairy]Tera Captain|Rillaboom|LumBerry|GrassySurge|SwordsDance,GrassyGlide,DrumBeating,TeraBlast|Adamant|,252,4,,,252|||||,,,,,Steel]Kyurem||HeavyDutyBoots|Pressure|FreezeDry,FlashCannon,EarthPower,DracoMeteor|Modest|248,,,252,8,||,0,,,,|||,,,,,Dragon]Duraludon||Eviolite|HeavyMetal|DracoMeteor,FlashCannon,BodyPress,ThunderWave|Bold|248,,252,4,,4||,0,,,,|||,,,,,Steel]Tentacruel||BlackSludge|LiquidOoze|RapidSpin,FlipTurn,IceBeam,SludgeBomb|Modest|,,,252,4,252|||||,,,,,Water"], + ["Samurott-Hisui||HeavyDutyBoots|Sharpness|CeaselessEdge,AquaCutter,AquaJet,FlipTurn|Adamant|252,252,,,4,|||||,,,,,Water]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Glare,Substitute|Modest|64,,,252,,192||,0,,,,|||,,,,,Rock]Gliscor||ToxicOrb|PoisonHeal|Protect,Earthquake,KnockOff,Toxic|Impish|244,,252,,12,|||||,,,,,Ground]Ninetales-Alola||LightClay|SnowWarning|Blizzard,Moonblast,Encore,AuroraVeil|Modest|248,,8,252,,||,0,,,,|||,,,,,Ice]Volcarona||HeavyDutyBoots|FlameBody|QuiverDance,FieryDance,MorningSun,WillOWisp|Bold|252,,252,,4,||,0,,,,|||,,,,,Bug]Tera Captain|Galvantula|FocusSash|CompoundEyes|Thunder,TeraBlast,VoltSwitch,StickyWeb|Timid|,,104,252,,152||,0,,,,|||,,,,,Ice","Clodsire||Leftovers|Unaware|ToxicSpikes,Spikes,Recover,GunkShot|Careful|252,,4,,252,|||||,,,,,Poison]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Earthquake,Uturn,StoneEdge,TeraBlast|Naive|,252,,4,,252|||||,,,,,Flying]Diancie||Leftovers|ClearBody|StealthRock,DiamondStorm,Moonblast,BodyPress|Sassy|248,,8,,252,|||||,,,,,Rock]Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Overheat,Flamethrower,Psychic|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Scizor||Leftovers|Technician|Uturn,KnockOff,BulletPunch,DualWingbeat|Adamant|252,252,4,,,|||||,,,,,Bug]Tatsugiri||HeavyDutyBoots|StormDrain|Surf,DracoMeteor,RapidSpin,NastyPlot|Timid|,,,252,,252|||||,,,,,Dragon"], + ["Meowscarada||LifeOrb|Overgrow|HoneClaws,KnockOff,SuckerPunch,FlowerTrick|Jolly|,252,4,,,252|||||,,,,,Grass]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|VoltSwitch,DracoMeteor,Discharge,Thunderclap|Calm|252,,136,,120,||,20,,,,|||,,,,,Flying]Araquanid||ChoiceBand|WaterBubble|Liquidation,StickyWeb,LeechLife,Lunge|Adamant|208,252,,,4,44|||||,,,,,Water]Ting-Lu||Leftovers|VesselofRuin|Spikes,Ruination,Earthquake,Whirlwind|Careful|252,,4,,252,|||||,,,,,Dark]Hawlucha||RockyHelmet|MoldBreaker|Roost,CloseCombat,Defog,Encore|Impish|252,,176,,,80|||||,,,,,Fighting]Weezing-Galar||AssaultVest|Levitate|StrangeSteam,ClearSmog,SludgeBomb,Flamethrower|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison","Garchomp||LoadedDice|RoughSkin|ScaleShot,Earthquake,Crunch,IronHead|Adamant|76,252,,,,180|||||,,,,,Dragon]Tera Captain|Greninja|FocusSash|Protean|ToxicSpikes,Spikes,Uturn,Surf|Hasty|,32,,252,,224|||||,,,,,Water]Scream Tail||Leftovers|Protosynthesis|Wish,Protect,Encore,Disable|Calm|252,,,,148,108||,0,,,,|||,,,,,Fairy]Scizor||RockyHelmet|Technician|BulletPunch,Uturn,KnockOff,DualWingbeat|Impish|252,4,252,,,|||||,,,,,Bug]Terapagos||HeavyDutyBoots|TeraShift|RapidSpin,TeraStarstorm,DarkPulse,CalmMind|Modest|,,,252,4,252|||||,,,,,Stellar]Tera Captain|IronThorns|BoosterEnergy|QuarkDrive|LowKick,HeavySlam,ThunderPunch,DragonDance|Adamant|64,252,,,,192|||||,,,,,Flying"], + ["Latios||ColburBerry|Levitate|LusterPurge,IceBeam,DracoMeteor,Recover|Modest|252,,76,92,,88||,0,,,,|||,,,,,Dragon]Gholdengo||RockyHelmet|GoodasGold|Hex,MakeItRain,ThunderWave,Recover|Bold|252,,60,8,188,||,0,,,,|||,,,,,Steel]Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,Flamethrower,Psychic,Hex|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Tera Captain|GreatTusk|HeavyDutyBoots|Protosynthesis|TeraBlast,HeadlongRush,KnockOff,RapidSpin|Serious|236,8,,,12,252|||||,,,,,Poison]Tera Captain|Hoopa|ChoiceScarf|Magician|Psychic,Thunderbolt,ShadowBall,DestinyBond|Modest|128,,236,4,,140||,0,,,,|||,,,,,Psychic]Golem||ChoiceBand|Sturdy|Earthquake,StoneEdge,SmackDown,Explosion|Adamant|,252,,,4,252|||||,,,,,Rock","Slowking-Galar||ColburBerry|Regenerator|ThunderWave,ChillyReception,FutureSight,ShadowBall|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison]Tera Captain|RagingBolt|AirBalloon|Protosynthesis|DragonPulse,Discharge,Thunderclap,CalmMind|Modest|232,,248,12,8,8||,20,,,,|||,,,,,Fairy]Tera Captain|Alomomola|AssaultVest|Regenerator|FlipTurn,Scald,AquaJet,PlayRough|Sassy|252,,4,,252,|||||,,,,,Fairy]Iron Treads||Leftovers|QuarkDrive|Earthquake,KnockOff,RapidSpin,StealthRock|Jolly|36,12,,,252,208|||||,,,,,Ground]Moltres||HeavyDutyBoots|FlameBody|Flamethrower,Uturn,ScorchingSands,Roost|Timid|252,,8,,16,232|||||,,,,,Fire]Meowscarada||ChoiceScarf|Protean|Uturn,LeafStorm,KnockOff,BrickBreak|Hasty|,248,,108,,152|||||,,,,,Grass"], + ["Weezing-Galar||RockyHelmet|Levitate|ToxicSpikes,PainSplit,SludgeBomb,DazzlingGleam|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Iron Treads||LumBerry|QuarkDrive|RapidSpin,IceSpinner,Earthquake,StealthRock|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|Cresselia|Leftovers|Levitate|Moonlight,IceBeam,ShadowBall,Moonblast|Modest|252,,,252,4,||,0,,,,|S||,,,,,Fairy]Palafin||ChoiceBand|ZerotoHero|FlipTurn,WaveCrash,DrainPunch,JetPunch|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Raikou|ChoiceScarf|InnerFocus|VoltSwitch,TeraBlast,ShadowBall,Scald|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Dudunsparce||HeavyDutyBoots|SereneGrace|DragonTail,Roost,BodySlam,Earthquake|Careful|252,4,,,252,|||||,,,,,Normal","Tera Captain|GreninjaBond|MysticWater|BattleBond|HydroPump,Surf,DarkPulse,GrassKnot|Timid|56,,,252,,200|||||,,,,,Water]Garchomp||YacheBerry|RoughSkin|SwordsDance,ScaleShot,Earthquake,IronHead|Adamant|216,252,,,,40|||||,,,,,Dragon]Enamorus||HeavyDutyBoots|CuteCharm|CalmMind,Moonblast,Psychic,EarthPower|Timid|4,,,252,,252||,0,,,,|||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,HornLeech,StompingTantrum|Jolly|32,252,,,,224|||||,,,,,Fire]Jirachi||Leftovers|SereneGrace|Substitute,IronHead,FirePunch,ThunderWave|Jolly|80,252,,,,176|||||,,,,,Steel]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,Discharge,Trick,VoltSwitch|Modest|88,,,252,,168||,0,,,,|||,,,,,Electric"], + ["Blaziken||CustapBerry|SpeedBoost|FlareBlitz,CloseCombat,Protect,SwordsDance|Adamant|,252,,,4,252|||||,,,,,Fire]Cinccino||LoadedDice|Technician|TailSlap,BulletSeed,Substitute,TidyUp|Jolly|,252,,,4,252|||||,,,,,Normal]Hydrapple||AssaultVest|Regenerator|BodyPress,FickleBeam,GigaDrain,EarthPower|Modest|248,,,148,112,||,0,,,,|||,,,,,Grass]Mimikyu||ChoiceBand|Disguise|PlayRough,ShadowSneak,ShadowClaw,WoodHammer|Jolly|,252,,,4,252|||||,,,,,Ghost]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|AquaJet,CloseCombat,SurgingStrikes,Uturn|Adamant|,252,,,4,252|||||,,,,,Water]Minior||WhiteHerb|ShieldsDown|Acrobatics,ShellSmash,Earthquake,RockSlide|Adamant|,252,,,4,252|||S||,,,,,Water","Orthworm||SitrusBerry|EarthEater|BodyPress,StealthRock,ShedTail,HeavySlam|Impish|248,,252,,8,|||||,,,,,Steel]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,SpiritBreak,CloseCombat,ShadowSneak|Jolly|,252,,,8,248|||||,,,,,Fairy]Tera Captain|ThundurusTherian|ChoiceScarf|VoltAbsorb|Uturn,TeraBlast,Thunderbolt,FocusBlast|Naive|,32,,252,,224|||||,,,,,Flying]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,RazorShell,AirSlash,AquaJet|Naive|,252,4,36,,216|||||,,,,,Water]Tera Captain|Espathra|Leftovers|SpeedBoost|Roost,CalmMind,LuminaCrash,DazzlingGleam|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Donphan||RockyHelmet|Sturdy|Earthquake,RapidSpin,StealthRock,IceSpinner|Adamant|248,252,,,,8|||||,,,,,Ground"], + ["Latios||ChoiceScarf|Levitate|LusterPurge,DracoMeteor,ShadowBall,Thunderbolt|Timid|92,,,252,4,160||,0,,,,|||,,,,,Electric]Excadrill||ChoiceScarf|MoldBreaker|HighHorsepower,IronHead,ShadowClaw,StealthRock|Jolly|28,252,,,4,224|||||,,,,,Ground]Komala||AssaultVest|Comatose|RapidSpin,StompingTantrum,BodySlam,Uturn|Careful|244,76,,,188,|||||,,,,,Normal]Hawlucha||BigNugget|Unburden|SwordsDance,CloseCombat,Acrobatics,Fling|Adamant|156,252,,,4,96|||||,,,,,Flying]Tera Captain|Crocalor|Eviolite|Unaware|Flamethrower,TeraBlast,Yawn,SlackOff|Serious|248,,156,,104,||,0,,,,|||,,,,,Fairy]Rillaboom||AssaultVest|GrassySurge|GrassyGlide,KnockOff,HighHorsepower,Uturn|Adamant|236,252,,,20,|||||,,,,,Grass","Palafin-Hero||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,IcePunch,WaveCrash|Adamant|16,252,,,,240|||||,,,,,Water]Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Trick,SteelBeam|Modest|,,88,252,,168||,0,,,,|||,,,,,Ghost]Donphan||AssaultVest|Sturdy|KnockOff,HighHorsepower,IceShard,IceSpinner|Adamant|248,124,124,,12,|||||,,,,,Ground]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|KnockOff,PowerWhip,IvyCudgel,Uturn|Jolly|,252,,,4,252|||||,,,,,Fire]Weezing-Galar||RockyHelmet|MistySurge|StrangeSteam,SludgeBomb,ShadowBall,PainSplit|Bold|248,,168,,92,||,0,,,,|||,,,,,Poison]Ursaring||Eviolite|Guts|BodySlam,Earthquake,Rest,SleepTalk|Careful|248,8,,,252,|||||,,,,,Normal"], + ["Darkrai||Leftovers|BadDreams|Hypnosis,WillOWisp,NastyPlot,DarkPulse|Timid|16,,252,,,240||,0,,,,|||,,,,,Dark]Tornadus-Therian||RockyHelmet|Regenerator|NastyPlot,Uturn,HeatWave,BleakwindStorm|Timid|248,,92,,,168|||||,,,,,Flying]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Uturn,TeraBlast,StoneEdge,Earthquake|Adamant|112,252,,,,144|||||,,,,,Grass]Keldeo||ChoiceSpecs|Justified|VacuumWave,SecretSword,Surf,HydroPump|Timid|24,,,252,,232||,0,,,,|||,,,,,Water]Scizor||HeavyDutyBoots|Technician|Defog,KnockOff,Uturn,BulletPunch|Careful|252,4,,,252,|||||,,,,,Bug]Vileplume||RockyHelmet|EffectSpore|SleepPowder,LeechSeed,StrengthSap,SludgeBomb|Bold|252,,252,,4,||,0,,,,|||,,,,,Grass","Tera Captain|Latias|Leftovers|Levitate|CalmMind,DrainingKiss,MistBall,TeraBlast|Timid|16,,,252,,240||,0,,,,|||,,,,,Fire]Palafin-Hero||PunchingGlove|ZerotoHero|BulkUp,JetPunch,DrainPunch,IcePunch|Adamant|248,252,,,8,|||||,,,,,Normal]Meowscarada||ProtectivePads|Protean|KnockOff,PlayRough,TripleAxel,Taunt|Jolly|16,252,,,,240|||||,,,,,Normal]Tinkaton||LumBerry|OwnTempo|StealthRock,ThunderWave,IceHammer,Reflect|Jolly|252,24,,,,232|||||,,,,,Normal]Iron Hands||AssaultVest|QuarkDrive|DrainPunch,ThunderPunch,SeismicToss,VoltSwitch|Careful|252,4,,,252,|||||,,,,,Normal]Donphan||HeavyDutyBoots|Sturdy|Earthquake,KnockOff,Endeavor,IceShard|Adamant|80,252,,,,176|||||,,,,,Normal"], + ["Urshifu||PunchingGlove|UnseenFist|SwordsDance,CloseCombat,WickedBlow,Substitute|Jolly|136,164,,,,208|||||,,,,,Fighting]Slowking-Galar||AssaultVest|Regenerator|SludgeBomb,IceBeam,FutureSight,PowerGem|Calm|248,,,68,192,||,0,,,,|||,,,,,Poison]Tera Captain|Rhyperior|Leftovers|SolidRock|Earthquake,StoneEdge,IcePunch,StealthRock|Adamant|248,80,108,,72,|||||,,,,,Ground]Blastoise||Leftovers|Torrent|IceBeam,HydroPump,RapidSpin,FlipTurn|Bold|248,,144,48,68,|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Hurricane,Thunderbolt,Uturn,Roost|Timid|16,,4,236,,252|||||,,,,,Electric]Whimsicott||PixiePlate|Prankster|Encore,Moonblast,Uturn,LeechSeed|Timid|160,,4,112,,232|||||,,,,,Grass","Tera Captain|Serperior|NormalGem|Contrary|LeafStorm,TeraBlast,HyperBeam,Taunt|Timid|244,,108,4,,152||,0,,,,|||,,,,,Ground]Jirachi||MentalHerb|SereneGrace|StoredPower,DazzlingGleam,CalmMind,Substitute|Timid|240,,,16,,252||,0,,,,|||,,,,,Steel]Quaquaval||ProtectivePads|Moxie|AquaStep,CloseCombat,TripleAxel,SwordsDance|Adamant|120,252,,,,136|||||,,,,,Water]Tera Captain|Gligar|Eviolite|Immunity|Earthquake,Toxic,Uturn,Spikes|Impish|248,,140,,120,|||||,,,,,Fairy]Dewgong||ChopleBerry|ThickFat|IceBeam,FlipTurn,AlluringVoice,Haze|Modest|80,,252,172,4,|||||,,,,,Water]Grimmsnarl||BabiriBerry|Prankster|DarkPulse,DrainingKiss,NastyPlot,LightScreen|Modest|244,,232,32,,||,0,,,,|||,,,,,Dark"], + ["Palafin||ThroatSpray|ZerotoHero|Boomburst,HydroPump,IceBeam,Taunt|Modest|80,,4,252,,172||,0,,,,|||,,,,,Water]Meowscarada||ChoiceScarf|Protean|Trick,KnockOff,Uturn,FlowerTrick|Jolly|,252,4,,,252|||||,,,,,Grass]Terapagos||HeavyDutyBoots|TeraShift|Roar,CalmMind,TeraStarstorm,EarthPower|Modest|248,,,252,,8||,15,,,,|||,,,,,Stellar]Orthworm||RockyHelmet|EarthEater|ShedTail,BodyPress,Spikes,StealthRock|Bold|248,,252,,8,||,0,,,,|||,,,,,Steel]Dragonite||HeavyDutyBoots|Multiscale|DragonDance,ExtremeSpeed,Earthquake,IronHead|Adamant|8,252,,,4,244|||||,,,,,Dragon]Tera Captain|Golurk|AssaultVest|NoGuard|Earthquake,CloseCombat,Poltergeist,StoneEdge|Adamant|72,252,,,,184|||||,,,,,Dark","Palafin||PunchingGlove|ZerotoHero|Haze,JetPunch,DrainPunch,IcePunch|Adamant|208,152,52,,,96|||||,,,,,Water]Meowscarada||ExpertBelt|Protean|Uturn,FlowerTrick,KnockOff,LowKick|Adamant|68,252,,,,188|||||,,,,,Grass]Tera Captain|Kilowattrel|ChoiceScarf|VoltAbsorb|VoltSwitch,TeraBlast,Thunderbolt,AirSlash|Timid|16,,,252,,240||,0,,,,|||,,,,,Water]Weezing-Galar||RockyHelmet|MistySurge|MistyExplosion,PainSplit,Defog,Taunt|Bold|252,,108,,104,44||,0,,,,|||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|Recover,ThunderWave,MistBall,Roar|Bold|252,,64,108,68,16||,0,,,,|||,,,,,Steel]Hitmonlee||MistySeed|Unburden|SwordsDance,StoneEdge,MachPunch,HighJumpKick|Impish|,252,240,,,16|||||,,,,,Fighting"], + ["Volcanion||AssaultVest|WaterAbsorb|Flamethrower,SteamEruption,EarthPower,SludgeWave|Modest|252,,,252,4,||,0,,,,|||,,,,,Dragon]Brambleghast||Leftovers|WindRider|LeechSeed,StrengthSap,RapidSpin,Poltergeist|Jolly|252,,24,,,232|||||,,,,,Poison]Scream Tail||Leftovers|Protosynthesis|LightScreen,Wish,FireBlast,DazzlingGleam|Bold|252,,84,,,172||,0,,,,|||,,,,,Normal]Urshifu||HeavyDutyBoots|UnseenFist|SwordsDance,PoisonJab,WickedBlow,DrainPunch|Jolly|80,252,,,,176|||||,,,,,Water]Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|Roost,VoltSwitch,AirSlash,Discharge|Modest|196,,,252,,60||,0,,,,|||,,,,,Water]Goodra||AssaultVest|Gooey|SludgeBomb,Thunderbolt,Flamethrower,Earthquake|Sassy|252,,136,,120,|||||,,,,,Steel","Slowking-Galar||HeavyDutyBoots|Regenerator|FutureSight,ChillyReception,SludgeBomb,ThunderWave|Sassy|252,,16,,240,||,,,,,0|||,,,,,Water]Tera Captain|Scizor|HeavyDutyBoots|Technician|SwordsDance,KnockOff,Uturn,BulletPunch|Adamant|248,252,,,8,|||||,,,,,Fire]Great Tusk||Leftovers|Protosynthesis|Earthquake,StealthRock,KnockOff,RapidSpin|Impish|252,,220,,,36|||||,,,,,Water]Tera Captain|Sylveon|Leftovers|Pixilate|CalmMind,HyperVoice,Wish,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,FlipTurn,Taunt|Timid|,,,252,4,252|||||,,,,,Ice]Rotom-Mow||ChoiceScarf|Levitate|WillOWisp,VoltSwitch,LeafStorm,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric"], + ["Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,HeavySlam,IceSpinner,RapidSpin|Jolly|128,,,,128,232|||||,,,,,Ground]Tera Captain|RagingBolt|ShucaBerry|Protosynthesis|CalmMind,Thunderbolt,DragonPulse,Thunderclap|Modest|252,,136,120,,||,20,,,,|||,,,,,Poison]Sneasler||ProtectivePads|PoisonTouch|CloseCombat,DireClaw,ThroatChop,Uturn|Adamant|24,252,,,,232|||||,,,,,Fighting]Rillaboom||AssaultVest|GrassySurge|WoodHammer,GrassyGlide,KnockOff,HighHorsepower|Careful|248,8,,,252,|||||,,,,,Grass]Empoleon||Leftovers|Torrent|Surf,KnockOff,Haze,Roost|Sassy|252,,,4,252,|||||,,,,,Water]Tera Captain|Mesprit|LightBall|Levitate|StealthRock,Psychic,Fling,HealingWish|Bold|248,,252,,8,|||||,,,,,Fairy","Garchomp||RockyHelmet|RoughSkin|StealthRock,Spikes,Earthquake,DragonTail|Impish|252,4,228,,,24|||||,,,,,Dragon]Iron Bundle||BoosterEnergy|QuarkDrive|IceBeam,HydroPump,FreezeDry,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Gholdengo||AirBalloon|GoodasGold|ShadowBall,MakeItRain,NastyPlot,Recover|Modest|252,,,252,4,||,0,,,,|||,,,,,Steel]Tera Captain|ThundurusTherian|ChoiceScarf|VoltAbsorb|Uturn,Thunderbolt,Psychic,GrassKnot|Modest|,,,252,4,252|||S||,,,,,Fighting]Tentacruel||BlackSludge|ClearBody|RapidSpin,KnockOff,FlipTurn,SludgeBomb|Hasty|,252,,4,,252|||||,,,,,Water]Tera Captain|OricorioSensu|HeavyDutyBoots|Dancer|QuiverDance,Roost,AirSlash,RevelationDance|Serious|4,,,252,,252||,0,,,,|S||,,,,,Steel"], + ["Iron Valiant||LumBerry|QuarkDrive|CloseCombat,SwordsDance,KnockOff,SpiritBreak|Jolly|,252,4,,,252|||||,,,,,Fairy]Cinderace||ChoiceBand|Libero|PyroBall,GunkShot,Uturn,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Fire]Regidrago||ChoiceScarf|DragonsMaw|Outrage,Earthquake,Explosion,DragonClaw|Adamant|,252,4,,,252|||||,,,,,Dragon]Landorus-Therian||RockyHelmet|Intimidate|Earthquake,StealthRock,Taunt,Uturn|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|Manaphy|Leftovers|Hydration|Scald,AlluringVoice,KnockOff,TailGlow|Timid|,,,252,4,252|||||,,,,,Steel]Tera Captain|Mismagius|Leftovers|Levitate|CalmMind,DrainingKiss,ShadowBall,Psyshock|Timid|,,88,164,4,252||,0,,,,|||,,,,,Fairy","Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,PlayRough,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Thundurus|HeavyDutyBoots|Prankster|ThunderWave,VoltSwitch,TeraBlast,DarkPulse|Modest|,,4,252,,252||,0,,,,|||,,,,,Ice]Sinistcha-Masterpiece||Leftovers|Heatproof|MatchaGotcha,StunSpore,Hex,StrengthSap|Bold|252,,180,,76,||,0,,,,|||,,,,,Ghost]Clefable||HeavyDutyBoots|Unaware|CosmicPower,StoredPower,ChargeBeam,Wish|Calm|252,,96,,160,||,0,,,,|||,,,,,Fairy]Tera Captain|HoopaUnbound|ChoiceScarf|Magician|Psychic,DarkPulse,EnergyBall,DestinyBond|Modest|,,,252,4,252||,0,,,,|||,,,,,Psychic]Maushold-Four||WideLens|Technician|TidyUp,PopulationBomb,Encore,Crunch|Jolly|64,188,,,4,252|||||,,,,,Normal"], + ["Tera Captain|Gholdengo|AirBalloon|GoodasGold|FocusBlast,ShadowBall,NastyPlot,TeraBlast|Modest|252,,12,244,,||,0,,,,|||,,,,,Fairy]Garchomp||SitrusBerry|RoughSkin|Earthquake,Spikes,StealthRock,Outrage|Impish|252,,252,,4,|||||,,,,,Dragon]Meowscarada||ChoiceScarf|Protean|FlowerTrick,TripleAxel,KnockOff,Uturn|Jolly|116,144,,,,248|||||,,,,,Grass]Milotic||HeavyDutyBoots|MarvelScale|Scald,Recover,MirrorCoat,Haze|Calm|252,,4,,252,||,0,,,,|||,,,,,Water]Maushold||WideLens|Technician|TidyUp,PopulationBomb,Bite,PlayRough|Jolly|,252,,,4,252|||||,,,,,Normal]Tera Captain|ArticunoGalar|HeavyDutyBoots|Competitive|FreezingGlare,Uturn,Hurricane,TeraBlast|Calm|,,,252,54,202|||||,,,,,Fairy","Terapagos||Leftovers|TeraShift|Rest,DarkPulse,IceBeam,Roar|Calm|252,,,4,252,||,15,,,,|||,,,,,Stellar]Swalot||RockyHelmet|StickyHold|PainSplit,ClearSmog,BodyPress,KnockOff|Impish|252,,252,,4,|||||,,,,,Poison]Uxie||ColburBerry|Levitate|ThunderWave,Encore,FoulPlay,Uturn|Impish|252,,252,,4,|||||,,,,,Psychic]Garchomp||RockyHelmet|RoughSkin|StealthRock,Earthquake,StoneEdge,SwordsDance|Jolly|,252,,,4,252|||S||,,,,,Dragon]Tera Captain|Ogerpon|LumBerry|Defiant|IvyCudgel,KnockOff,Encore,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Diancie|AssaultVest|ClearBody|DiamondStorm,EarthPower,Moonblast,BodyPress|Sassy|252,4,,,252,|||||,,,,,Dark"], + ["Iron Valiant||LifeOrb|QuarkDrive|Psychic,Moonblast,AuraSphere,Encore|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Scizor||HeavyDutyBoots|Technician|Uturn,BulletPunch,KnockOff,Defog|Adamant|248,104,,,156,|||||,,,,,Bug]Garchomp||LoadedDice|RoughSkin|Earthquake,StealthRock,SwordsDance,ScaleShot|Jolly|112,252,,,,144|||||,,,,,Dragon]Rotom-Wash||RindoBerry|Levitate|VoltSwitch,HydroPump,ThunderWave,PainSplit|Calm|248,,36,,196,28||,0,,,,|||,,,,,Electric]Skuntank||ClearAmulet|Aftermath|KnockOff,Taunt,Memento,PoisonJab|Jolly|72,252,,,,184|||||,,,,,Poison]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|SlackOff,TorchSong,Encore,TeraBlast|Calm|248,,164,,96,||,0,,,,|||,,,,,Fairy","Primarina||AssaultVest|Torrent|FlipTurn,EnergyBall,Moonblast,Surf|Modest|252,,96,160,,|||||,,,,,Water]Tera Captain|Latias|SoulDew|Levitate|MistBall,DracoMeteor,TeraBlast,Agility|Modest|184,,,252,,72||,0,,,,|||,,,,,Fire]Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|VoltSwitch,AirSlash,Roost,Discharge|Timid|72,,,252,,184||,0,,,,|||,,,,,Ice]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|HornLeech,KnockOff,IvyCudgel,SwordsDance|Jolly|64,252,,,,192|||||,,,,,Fire]Iron Treads||Leftovers|QuarkDrive|IceSpinner,RapidSpin,Earthquake,VoltSwitch|Jolly|32,252,,,,224|||||,,,,,Ground]Smeargle||FocusSash|OwnTempo|Spore,StickyWeb,StealthRock,Nuzzle|Impish|252,4,252,,,|||||,,,,,Normal"], + ["Fezandipiti||ShucaBerry|ToxicChain|Uturn,Roost,HeatWave,Moonblast|Bold|248,,144,,112,|||||,,,,,Poison]Tera Captain|Toedscruel|HeavyDutyBoots|MyceliumMight|RapidSpin,EarthPower,TeraBlast,GigaDrain|Modest|180,,20,28,132,148|||||,,,,,Fire]Archaludon||AssaultVest|Stamina|DracoMeteor,BodyPress,Thunderbolt,FlashCannon|Modest|200,,,104,204,||,0,,,,|||,,,,,Steel]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,KnockOff,Synthesis,Uturn|Jolly|120,128,4,,4,252|||||,,,,,Water]Iron Hands||AssaultVest|QuarkDrive|DrainPunch,IcePunch,SupercellSlam,Earthquake|Adamant|,140,116,,252,|||||,,,,,Fighting]Kleavor||ChoiceScarf|Sharpness|CloseCombat,StoneEdge,XScissor,Uturn|Jolly|72,252,4,,8,172|||||,,,,,Bug","Cinderace||LumBerry|Libero|HighJumpKick,ZenHeadbutt,ElectroBall,BulkUp|Naive|,252,,4,,252|||||,,,,,Fire]Tera Captain|Latias|SoulDew|Levitate|DracoMeteor,Psyshock,HealingWish,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,Encore,Uturn|Modest|80,,,252,,176|||||,,,,,Ice]Sinistcha||ColburBerry|Hospitality|MatchaGotcha,ShadowBall,CalmMind,StrengthSap|Bold|252,,160,,,96||,0,,,,|||,,,,,Grass]Iron Treads||AssaultVest|QuarkDrive|EarthPower,Thunder,Megahorn,RapidSpin|Naive|48,,,252,,208|||||,,,,,Ground]Tera Captain|Diancie|Leftovers|ClearBody|BodyPress,DiamondStorm,Rest,SleepTalk|Careful|252,,68,,112,76|||||,,,,,Fighting"], + ["Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,Megahorn,PsychoCut|Jolly|112,252,,,,144|||||,,,,,Rock]Chi-Yu||HeavyDutyBoots|BeadsofRuin|Ruination,WillOWisp,DarkPulse,FireBlast|Timid|80,,,252,,176||,0,,,,|||,,,,,Dark]Great Tusk||PayapaBerry|Protosynthesis|SupercellSlam,BulkUp,IceSpinner,HeadlongRush|Adamant|248,252,,,8,|||||,,,,,Ground]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,Trailblaze,HornLeech|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Revavroom|ExpertBelt|Filter|TemperFlare,TeraBlast,ShiftGear,GunkShot|Adamant|64,252,,,,192|||||,,,,,Water]Tera Captain|Eelektross|AssaultVest|Levitate|Uturn,KnockOff,SupercellSlam,DragonTail|Careful|248,,8,,252,|||||,,,,,Poison","Tera Captain|Annihilape|ChoiceScarf|Defiant|CloseCombat,RageFist,Earthquake,Uturn|Jolly|,252,,,24,232|||||,,,,,Fighting]Corviknight||RockyHelmet|Pressure|BodyPress,Uturn,Defog,Roost|Impish|252,4,252,,,|||||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|Earthquake,Whirlwind,StealthRock,Spikes|Impish|252,,100,,156,|||||,,,,,Dark]Cinderace||HeavyDutyBoots|Libero|PyroBall,HighJumpKick,Uturn,CourtChange|Jolly|,252,,,72,184|||||,,,,,Fire]Primarina||Leftovers|Torrent|Surf,Moonblast,FlipTurn,Haze|Calm|252,,,4,252,|||||,,,,,Water]Latios||Leftovers|Levitate|DracoMeteor,LusterPurge,AuraSphere,CalmMind|Timid|,,4,252,,252||,0,,,,|||,,,,,Dragon"], + ["Garchomp||RockyHelmet|RoughSkin|StealthRock,Spikes,PoisonJab,Earthquake|Jolly|,,136,,120,252|||||,,,,,Dragon]Greninja-Bond||HeavyDutyBoots|BattleBond|WaterShuriken,Surf,DarkPulse,Haze|Timid|,,,252,4,252|||||,,,,,Water]Iron Moth||BoosterEnergy|QuarkDrive|FieryDance,Discharge,BugBuzz,TeraBlast|Timid|,,124,132,,252||,0,,,,|||,,,,,Fairy]Brambleghast||SitrusBerry|Infiltrator|RapidSpin,Poltergeist,PowerWhip,StrengthSap|Jolly|,252,,,4,252|||||,,,,,Grass]Rotom-Wash||LaggingTail|Levitate|Trick,WillOWisp,VoltSwitch,HydroPump|Modest|240,,252,16,,||,0,,,,|||,,,,,Electric]Braviary||ChoiceScarf|SheerForce|BraveBird,DoubleEdge,ZenHeadbutt,IronHead|Jolly|,252,,,4,252|||||,,,,,Flying","Tornadus-Therian||ChoiceScarf|Regenerator|BleakwindStorm,IcyWind,SludgeBomb,Uturn|Timid|,,,252,4,252|||||,,,,,Flying]Gouging Fire||BoosterEnergy|Protosynthesis|HeatCrash,DragonDance,MorningSun,Outrage|Adamant|,252,,,4,252|||||,,,,,Fire]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,PowerWhip,Encore|Jolly|,252,,,4,252|||||,,,,,Water]Iron Treads||Leftovers|QuarkDrive|Earthquake,KnockOff,IceSpinner,RapidSpin|Jolly|4,252,,,,224|||||,,,,,Ground]Tinkaton||Leftovers|MoldBreaker|StealthRock,GigatonHammer,KnockOff,Encore|Careful|252,60,8,,108,80|||||,,,,,Ghost]Tera Captain|Lokix|ChoiceBand|TintedLens|FirstImpression,Uturn,KnockOff,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Bug"], + ["Urshifu||PunchingGlove|UnseenFist|WickedBlow,Taunt,SuckerPunch,IronHead|Jolly|32,252,,,,224|||||,,,,,Fighting]Tsareena||RockyHelmet|QueenlyMajesty|Synthesis,RapidSpin,Uturn,PowerWhip|Impish|248,,252,,8,|||S||,,,,,Grass]Weezing||RockyHelmet|NeutralizingGas|ToxicSpikes,PainSplit,WillOWisp,Flamethrower|Bold|248,,252,,8,||,0,,,,|||,,,,,Poison]Enamorus||HeavyDutyBoots|Contrary|Moonblast,Taunt,EarthPower,Superpower|Timid|48,,,252,,208|||||,,,,,Fairy]Tera Captain|Regidrago|LumBerry|DragonsMaw|DragonDance,TeraBlast,DragonClaw,Earthquake|Adamant|,252,52,,,204|||||,,,,,Steel]Gastrodon||RindoBerry|StormDrain|Recover,Earthquake,MirrorCoat,StealthRock|Calm|248,,48,,212,|||||,,,,,Water","Rillaboom||TerrainExtender|GrassySurge|Uturn,HighHorsepower,Taunt,DrumBeating|Adamant|248,168,,,,92|||||,,,,,Grass]Tera Captain|Sylveon|AssaultVest|Pixilate|TeraBlast,DrainingKiss,HyperVoice,MagicalLeaf|Modest|240,,,252,,16||,0,,,,|||,,,,,Ground]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,Thunderbolt,DragonPulse,Thunderclap|Bold|248,,116,,,144||,20,,,,|||,,,,,Steel]Oricorio||HeavyDutyBoots|Dancer|Uturn,RevelationDance,Roost,Defog|Timid|248,,,76,,184|||||,,,,,Fire]Heatran||PowerHerb|FlameBody|MagmaStorm,StealthRock,EarthPower,SolarBeam|Calm|248,,,,184,76||,0,,,,|||,,,,,Fire]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,ZenHeadbutt,FlipTurn|Adamant|24,252,,,,232|||||,,,,,Water"], + ["Palafin||LumBerry|ZerotoHero|BulkUp,JetPunch,Rest,SleepTalk|Careful|252,,4,,252,|||||,,,,,Water]Zapdos||Leftovers|Pressure|Thunderbolt,HeatWave,Roost,Uturn|Calm|248,,16,24,168,52|||||,,,,,Electric]Darkrai||Leftovers|BadDreams|PoisonJab,DrainPunch,SwordsDance,KnockOff|Adamant|,252,,,4,252|||||,,,,,Dark]Tera Captain|Metagross|LiechiBerry|ClearBody|Agility,Substitute,MeteorMash,Earthquake|Adamant|56,252,,,,200|||||,,,,,Water]Glimmora||BlackSludge|Corrosion|Toxic,StealthRock,SpikyShield,PowerGem|Calm|248,,,,228,32||,0,,,,|||,,,,,Rock]Brambleghast||HeavyDutyBoots|WindRider|RapidSpin,PowerWhip,Poltergeist,StrengthSap|Jolly|80,252,,,,176|||||,,,,,Grass","Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|DracoMeteor,HydroSteam,Flamethrower,DragonPulse|Timid|72,,,252,,184||,0,,,,|||,,,,,Water]Torkoal||HeatRock|Drought|WeatherBall,RapidSpin,SolarBeam,WillOWisp|Bold|248,,252,8,,|||||,,,,,Fire]Hoopa-Unbound||AssaultVest|Magician|KnockOff,Psychic,DrainPunch,IcePunch|Lonely|248,48,,,212,|||||,,,,,Psychic]Ting-Lu||Leftovers|VesselofRuin|Earthquake,StealthRock,Whirlwind,StoneEdge|Careful|248,,8,,252,|||||,,,,,Dark]Arbok||RockyHelmet|Intimidate|Glare,KnockOff,PainSplit,PoisonJab|Impish|248,8,252,,,|||||,,,,,Poison]Enamorus||ChoiceScarf|Contrary|Moonblast,EarthPower,MysticalFire,HealingWish|Modest|,,4,252,,252||,0,,,,|S||,,,,,Fairy"], + ["Corviknight||RockyHelmet|MirrorArmor|Roost,Uturn,Defog,IronHead|Impish|248,8,252,,,|||||,,,,,Flying]Meowscarada||ProtectivePads|Overgrow|Spikes,Uturn,SuckerPunch,KnockOff|Adamant|,252,4,,,252|||||,,,,,Grass]Iron Bundle||ChoiceScarf|QuarkDrive|FlipTurn,HydroPump,IceBeam,FreezeDry|Modest|,,80,252,,176|||||,,,,,Ice]Tera Captain|BraviaryHisui|ChoiceSpecs|TintedLens|EsperWing,VacuumWave,Hurricane,Psyshock|Timid|68,,,252,,188||,0,,,,|S||,,,,,Psychic]Tera Captain|GreatTusk|WeaknessPolicy|Protosynthesis|RapidSpin,BulkUp,Earthquake,StoneEdge|Jolly|248,,60,,,200|||||,,,,,Grass]Ceruledge||FocusSash|WeakArmor|BitterBlade,SwordsDance,ShadowSneak,DestinyBond|Jolly|40,252,,,,216|||||,,,,,Fire","Tera Captain|Meowscarada|ChoiceBand|Protean|TeraBlast,KnockOff,TripleAxel,Uturn|Jolly|,252,,,,252|||||,,,,,Electric]Slowking-Galar||AssaultVest|Regenerator|HydroPump,FireBlast,Psyshock,SludgeBomb|Calm|252,,,76,180,||,0,,,,|||,,,,,Poison]Tera Captain|Drifblim|WeaknessPolicy|Unburden|StrengthSap,CalmMind,StoredPower,TeraBlast|Bold|252,,180,,76,||,0,,,,|||,,,,,Electric]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,Trailblaze,Substitute,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Water]Moltres||HeavyDutyBoots|Pressure|ScorchingSands,Uturn,Tailwind,Roost|Bold|248,,252,8,,|||||,,,,,Fire]Iron Boulder||BoosterEnergy|QuarkDrive|Agility,MightyCleave,CloseCombat,ZenHeadbutt|Adamant|,252,,,4,252|||||,,,,,Rock"], + ["Darkrai||ChoiceSpecs|BadDreams|DarkPulse,IceBeam,Psychic,Hypnosis|Timid|40,,,252,,216||,0,,,,|||,,,,,Dark]Tera Captain|Latias|Leftovers|Levitate|CalmMind,MistBall,DragonPulse,Recover|Timid|252,,72,,,184||,0,,,,|||,,,,,Poison]Urshifu-Rapid-Strike||ChoiceBand|UnseenFist|SurgingStrikes,CloseCombat,AquaJet,Uturn|Jolly|104,252,,,,152|||||,,,,,Fighting]Excadrill||FocusSash|MoldBreaker|SwordsDance,HighHorsepower,IronHead,XScissor|Jolly|,252,,,4,252|||||,,,,,Ground]Fezandipiti||RockyHelmet|ToxicChain|SwordsDance,PlayRough,Uturn,Roost|Jolly|252,,208,,,48|||||,,,,,Poison]Brambleghast||RockyHelmet|WindRider|Spikes,NightShade,RapidSpin,StrengthSap|Jolly|252,,136,,,120|||||,,,,,Grass","Rillaboom||AssaultVest|GrassySurge|GrassyGlide,KnockOff,HighHorsepower,Uturn|Adamant|252,252,4,,,|||||,,,,,Grass]Gouging Fire||Leftovers|Protosynthesis|HeatCrash,BurningBulwark,Outrage,DragonDance|Jolly|52,200,,,24,232|||||,,,,,Fire]Tera Captain|Manaphy|Leftovers|Hydration|Scald,HeartSwap,Substitute,AlluringVoice|Timid|252,,,24,,232||,0,,,,|||,,,,,Fairy]Tera Captain|Mesprit|GrassySeed|Levitate|CalmMind,StoredPower,DrainingKiss,Imprison|Modest|244,,,252,4,8||,0,,,,|||,,,,,Dark]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,CloseCombat,NightSlash,Uturn|Jolly|72,252,,,4,176|||||,,,,,Fighting]Braviary||HeavyDutyBoots|Defiant|BraveBird,Defog,Roost,CloseCombat|Impish|252,56,176,,16,8|||||,,,,,Normal"], + ["Torkoal||HeatRock|Drought|WillOWisp,RapidSpin,Flamethrower,EarthPower|Modest|248,,,8,252,|||||,,,,,Fire]Flamigo||ChoiceScarf|Scrappy|CloseCombat,BraveBird,ThroatChop,Uturn|Adamant|,252,,,112,144|||||,,,,,Flying]Tera Captain|Venusaur|LifeOrb|Chlorophyll|EarthPower,SludgeBomb,GigaDrain,SleepPowder|Modest|252,,,252,4,||,0,,,,|||,,,,,Water]Walking Wake||ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,Roar,Flamethrower|Timid|8,4,,244,,252||,0,,,,|||,,,,,Water]Ting-Lu||Leftovers|VesselofRuin|Spikes,Whirlwind,Earthquake,BodyPress|Careful|252,,4,,252,|||||,,,,,Dark]Gholdengo||AirBalloon|GoodasGold|ShadowBall,MakeItRain,PowerGem,Thunderbolt|Modest|252,,,252,4,||,0,,,,|||,,,,,Steel","Tera Captain|Serperior|AssaultVest|Overgrow|ScaleShot,Trailblaze,LeafStorm,TeraBlast|Timid|24,,,252,,232|||||,,,,,Rock]Gouging Fire||LumBerry|Protosynthesis|DragonDance,FireSpin,Earthquake,HeatCrash|Adamant|192,252,,,,64|||||,,,,,Ground]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,Endeavor,ScaleShot,RapidSpin|Naive|248,,92,,,168|||||,,,,,Poison]Iron Treads||ChopleBerry|QuarkDrive|IceSpinner,KnockOff,RapidSpin,Earthquake|Adamant|212,112,,,,184|||||,,,,,Poison]Greninja-Bond||SalacBerry|BattleBond|IceBeam,DarkPulse,WaterShuriken,Substitute|Hasty|96,,,252,,160|||||,,,,,Ice]Tera Captain|ArticunoGalar|ChoiceScarf|Competitive|AirSlash,Trick,TeraBlast,Uturn|Timid|248,,,,92,168|||||,,,,,Dark"], + ["Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Blizzard,Moonblast,Charm|Timid|4,,,252,,252||,0,,,,|||,,,,,Ice]Baxcalibur||RoseliBerry|ThermalExchange|DragonDance,GlaiveRush,IcicleCrash,Earthquake|Adamant|,252,4,,,252|||||,,,,,Dragon]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,StoredPower,DazzlingGleam,TeraBlast|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground]Cyclizar||HeavyDutyBoots|Regenerator|RapidSpin,KnockOff,ShedTail,Uturn|Timid|252,,252,,4,|||||,,,,,Dragon]Manaphy||Leftovers|Hydration|TailGlow,Surf,IceBeam,EnergyBall|Timid|,,4,252,,252||,0,,,,|||,,,,,Water]Tera Captain|Pecharunt|Leftovers|PoisonPuppeteer|NastyPlot,MalignantChain,Hex,Recover|Modest|,,,252,252,4||,0,,,,|||,,,,,Grass","Samurott-Hisui||ChoiceScarf|Sharpness|SmartStrike,SacredSword,Encore,CeaselessEdge|Jolly|,252,4,,,252|||||,,,,,Water]Weezing-Galar||CustapBerry|MistySurge|StrangeSteam,Endure,DestinyBond,Defog|Bold|252,,152,24,80,||,0,,,,|||,,,,,Poison]Heatran||ShucaBerry|FlameBody|Taunt,FlashCannon,StealthRock,FireSpin|Calm|104,,252,24,112,16||,0,,,,|||,,,,,Fire]Tera Captain|RagingBolt|MistySeed|Protosynthesis|Thunderclap,DragonPulse,Thunderbolt,Roar|Modest|168,,88,252,,||,20,,,,|||,,,,,Steel]Electrode||FocusSash|Aftermath|ThunderWave,VoltSwitch,Taunt,ElectricTerrain|Timid|100,,252,8,,148||,0,,,,|||,,,,,Electric]Iron Valiant||FocusSash|QuarkDrive|SwordsDance,KnockOff,ShadowSneak,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Fairy"], + ["Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Synthesis|Timid|56,,4,216,,232||,0,,,,|||,,,,,Ice]Mamoswine||AssaultVest|ThickFat|Earthquake,IcicleCrash,IceShard,Trailblaze|Adamant|,212,,,56,240|||||,,,,,Ice]Tinkaton||RockyHelmet|Pickpocket|PlayRough,Reflect,KnockOff,StealthRock|Jolly|248,,60,,,200|||||,,,,,Fairy]Quaquaval||ChoiceScarf|Moxie|AquaStep,TripleAxel,CloseCombat,Uturn|Adamant|56,252,,,,200|||||,,,,,Water]Zapdos||RockyHelmet|Static|VoltSwitch,Hurricane,HeatWave,Roost|Bold|248,,252,8,,||,0,,,,|||,,,,,Electric]Greninja-Bond||LifeOrb|BattleBond|HydroPump,IceBeam,DarkPulse,WaterShuriken|Timid|56,,,252,,200|||||,,,,,Water","Dragalge||BlackSludge|Adaptability|SludgeBomb,FlipTurn,Thunderbolt,Haze|Sassy|252,,84,36,136,|||||,,,,,Poison]Great Tusk||BoosterEnergy|Protosynthesis|SupercellSlam,HeadlongRush,HeadSmash,BulkUp|Jolly|212,4,,,40,252|||||,,,,,Ground]Weavile||ProtectivePads|Pressure|TripleAxel,IceShard,Trailblaze,LowKick|Jolly|20,252,,,4,232|||||,,,,,Dark]Zapdos||HeavyDutyBoots|Static|Hurricane,Discharge,Roost,ThunderWave|Bold|124,,84,24,32,244||,0,,,,|||,,,,,Electric]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,ThunderWave,StealthRock,PlayRough|Careful|252,,42,,214,|||||,,,,,Fairy]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|HornLeech,IvyCudgel,Spikes,Uturn|Jolly|124,184,48,,84,68|||||,,,,,Water"], + ["Tera Captain|Raikou|Leftovers|Pressure|CalmMind,Agility,Thunderbolt,TeraBlast|Modest|,,,252,4,252||,0,,,,|||,,,,,Water]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,Trailblaze,IvyCudgel,KnockOff|Jolly|,252,,,4,252|||||,,,,,Fire]Corviknight||Leftovers|MirrorArmor|Uturn,DrillPeck,Defog,Roost|Impish|252,4,252,,,|||||,,,,,Flying]Urshifu||ChoiceScarf|UnseenFist|Uturn,CloseCombat,WickedBlow,IcePunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Tera Captain|Araquanid|AssaultVest|WaterBubble|Liquidation,LeechLife,PoisonJab,Crunch|Adamant|248,252,,,8,|||||,,,,,Water]Weezing-Galar||AirBalloon|NeutralizingGas|Toxic,SludgeWave,Haze,WillOWisp|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison","Arcanine-Hisui||HeavyDutyBoots|RockHead|WillOWisp,FlameCharge,HeadSmash,FlareBlitz|Jolly|,252,,,4,252|||||,,,,,Fire]Landorus||LifeOrb|SheerForce|EarthPower,NastyPlot,SludgeWave,Psychic|Timid|32,,,252,,224||,0,,,,|||,,,,,Ground]Tera Captain|Serperior|HeavyDutyBoots|Contrary|LeafStorm,TeraBlast,Synthesis,Glare|Modest|12,,,252,,244||,0,,,,|||,,,,,Fairy]Sneasler||RazorClaw|PoisonTouch|CloseCombat,DireClaw,SwordsDance,QuickAttack|Jolly|40,252,,,,216|||||,,,,,Fighting]Spidops||FocusSash|Stakeout|StickyWeb,CircleThrow,Spikes,KnockOff|Adamant|248,252,8,,,|||||,,,,,Bug]Gholdengo||Leftovers|GoodasGold|MakeItRain,Thunderbolt,DazzlingGleam,NastyPlot|Modest|,,252,252,,4||,0,,,,|||,,,,,Steel"], + ["Tera Captain|Landorus|YacheBerry|SheerForce|TeraBlast,EarthPower,StealthRock,SludgeWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Grass]Annihilape||ChoiceScarf|Defiant|FinalGambit,Uturn,CloseCombat,IcePunch|Jolly|252,4,,,,252|||||,,,,,Fighting]Kingambit||LumBerry|Defiant|SwordsDance,SuckerPunch,KowtowCleave,IronHead|Adamant|252,252,,,4,|||||,,,,,Dark]Cinderace||HeavyDutyBoots|Blaze|PyroBall,CourtChange,WillOWisp,Uturn|Jolly|252,4,,,,252|||||,,,,,Fire]Walking Wake||ChoiceScarf|Protosynthesis|DracoMeteor,DragonPulse,HydroPump,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Tera Captain|Sylveon|Leftovers|Pixilate|HyperVoice,TeraBlast,Wish,Protect|Bold|252,,252,4,,||,0,,,,|||,,,,,Fire","Cinderace||HeavyDutyBoots|Libero|HighJumpKick,GunkShot,Uturn,CourtChange|Jolly|80,252,,,,176|||||,,,,,Fire]Rotom-Wash||ChoiceScarf|Levitate|HydroPump,Thunderbolt,ThunderWave,VoltSwitch|Timid|,,68,252,,188||,0,,,,|||,,,,,Electric]Garchomp||LoadedDice|RoughSkin|ScaleShot,Substitute,SwordsDance,Earthquake|Jolly|,252,8,,,248|||||,,,,,Dragon]Scizor||OccaBerry|Technician|SwordsDance,BulletPunch,CloseCombat,Counter|Impish|252,120,136,,,|||||,,,,,Bug]Ninetales-Alola||LightClay|SnowWarning|FreezeDry,Moonblast,Encore,AuroraVeil|Timid|252,,,64,,192||,0,,,,|||,,,,,Ice]Tera Captain|Cetitan|SitrusBerry|SlushRush|Earthquake,BellyDrum,IceShard,IceSpinner|Jolly|220,108,,,,180|||||,,,,,Flying"], + ["Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,Psyshock,ShadowBall,VacuumWave|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Tera Captain|Suicune|Leftovers|Pressure|Substitute,CalmMind,Scald,IceBeam|Bold|252,,244,,,12||,0,,,,|||,,,,,Grass]Tera Captain|Zapdos|HeavyDutyBoots|Static|Discharge,Hurricane,VoltSwitch,Roost|Timid|252,,,120,,136||,0,,,,|||,,,,,Water]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,IceSpinner,StealthRock,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Ground]Incineroar||HeavyDutyBoots|Intimidate|KnockOff,WillOWisp,FlareBlitz,PartingShot|Careful|160,,,,252,96|||||,,,,,Fire]Sinistcha||Leftovers|Heatproof|CalmMind,MatchaGotcha,ShadowBall,StrengthSap|Bold|252,,160,84,,12||,0,,,,|||,,,,,Grass","Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,SludgeWave,AirSlash,EnergyBall|Timid|,,252,,,252||,0,,,,|S||,,,,,Fairy]Electivire||WiseGlasses|MotorDrive|Thunderbolt,Flamethrower,FocusBlast,Earthquake|Hasty|,4,,252,,252|||S||,,,,,Electric]Donphan||RockyHelmet|Sturdy|AncientPower,GunkShot,RapidSpin,StealthRock|Bold|252,,108,,148,|||S||,,,,,Ghost]Samurott-Hisui||RedCard|Sharpness|AquaCutter,CeaselessEdge,Detect,SacredSword|Timid|92,,60,140,28,188|||||,,,,,Water]Tera Captain|Sinistcha|FocusSash|Heatproof|TeraBlast,TrickRoom,Poltergeist,CalmMind|Quiet|4,252,,252,,|||||,,,,,Fire]Dachsbun||Leftovers|WellBakedBody|BodyPress,Endeavor,DrainingKiss,Wish|Quiet|136,,128,152,92,||,0,,,,|||,,,,,Fairy"], + ["Ting-Lu||Leftovers|VesselofRuin|StealthRock,Earthquake,Ruination,Protect|Sassy|252,4,,,252,|||||,,,,,Dark]Tera Captain|Gholdengo|LifeOrb|GoodasGold|TeraBlast,ShadowBall,MakeItRain,Recover|Modest|156,,,252,4,96||,0,,,,|||,,,,,Fighting]Palafin||ChoiceBand|ZerotoHero|WaveCrash,FlipTurn,JetPunch,IcePunch|Jolly|,252,,,4,252|||||,,,,,Water]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|WoodHammer,StompingTantrum,IvyCudgel,KnockOff|Jolly|8,252,,,,248|||||,,,,,Fire]Cyclizar||ChoiceSpecs|Regenerator|DracoMeteor,HyperVoice,MudShot,RapidSpin|Timid|96,,,252,,160|||||,,,,,Dragon]Tera Captain|EnamorusTherian|AssaultVest|Overcoat|EarthPower,Moonblast,AlluringVoice,TeraBlast|Quiet|248,8,,252,,||,0,,,,|||,,,,,Water","Tera Captain|Terrakion|LifeOrb|Justified|StoneEdge,CloseCombat,Earthquake,SwordsDance|Jolly|,252,,,64,192|||||,,,,,Ghost]Heatran||Leftovers|FlameBody|MagmaStorm,PowerGem,BodyPress,FlashCannon|Bold|52,,252,,,204||,0,,,,|||,,,,,Fire]Darkrai||LifeOrb|BadDreams|Hypnosis,NastyPlot,DarkPulse,IceBeam|Timid|,,,252,32,224||,0,,,,|||,,,,,Dark]Mismagius||ChoiceSpecs|Levitate|DrainingKiss,Thunder,MysticalFire,PowerGem|Timid|44,,,248,,216||,0,,,,|||,,,,,Ghost]Smeargle||FocusSash|Technician|StoneAxe,Nuzzle,PopulationBomb,StickyWeb|Adamant|,252,,,36,220|||||,,,,,Normal]Gliscor||ToxicOrb|PoisonHeal|Facade,IceFang,KnockOff,SwordsDance|Jolly|180,160,,,,168|||||,,,,,Ground"], + ["Tera Captain|Comfey|LifeOrb|Triage|DrainingKiss,GigaDrain,TeraBlast,CalmMind|Modest|248,,8,252,,||,0,,,,|S||,,,,,Ground]Scizor||ChoiceBand|Swarm|BulletPunch,KnockOff,BugBite,Uturn|Adamant|248,252,8,,,|||||,,,,,Bug]Cinderace||HeavyDutyBoots|Libero|PyroBall,HighJumpKick,Uturn,CourtChange|Jolly|32,252,,,,224|||||,,,,,Fire]Slowking||AssaultVest|Regenerator|Scald,Psyshock,IceBeam,FutureSight|Calm|248,,,252,8,||,0,,,,|||,,,,,Water]Garchomp||LoadedDice|RoughSkin|Earthquake,ScaleShot,FireFang,SwordsDance|Jolly|8,252,,,,248|||||,,,,,Dragon]Tera Captain|Raikou|Leftovers|Pressure|Thunderbolt,Scald,VoltSwitch,CalmMind|Timid|,,,252,4,252||,0,,,,|||,,,,,Water","Iron Bundle||ChoiceSpecs|QuarkDrive|IceBeam,FlipTurn,FreezeDry,HydroPump|Modest|,,,252,4,252|||||,,,,,Ice]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,RapidSpin,KnockOff,Uturn|Jolly|252,,,,4,252|||||,,,,,Dragon]Tera Captain|Polteageist|WhiteHerb|CursedBody|ShellSmash,ShadowBall,StoredPower,Memento|Modest|,,,252,4,252||,0,,,,|||,,,,,Ghost]Tera Captain|Manaphy|Leftovers|Hydration|TailGlow,Scald,EnergyBall,Whirlpool|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Klefki||LightClay|Prankster|LightScreen,Reflect,Spikes,ThunderWave|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Cinccino||LoadedDice|Technician|TidyUp,TailSlap,RockBlast,KnockOff|Adamant|,252,,,4,252|||||,,,,,Normal"], + ["Iron Crown||BoosterEnergy|QuarkDrive|TachyonCutter,Psychic,FocusBlast,CalmMind|Timid|84,,,172,,252||,20,,,,|||,,,,,Steel]Rillaboom||MuscleBand|GrassySurge|FakeOut,GrassyGlide,KnockOff,Uturn|Adamant|240,252,,,16,|||||,,,,,Grass]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,EnergyBall,SludgeWave,Substitute|Timid|120,,4,132,,252||,0,,,,|||,,,,,Fire]Greninja-Bond||LifeOrb|BattleBond|DarkPulse,Extrasensory,IceBeam,Surf|Modest|,,4,252,,252|||||,,,,,Water]Comfey||KebiaBerry|Triage|DrainingKiss,GigaDrain,StoredPower,CalmMind|Timid|192,,,172,,144||,0,,,,|||,,,,,Fairy]Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,IceSpinner,CloseCombat,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Ground","Slowking-Galar||ColburBerry|Regenerator|ThunderWave,SlackOff,SludgeBomb,FutureSight|Calm|248,,80,,180,||,0,,,,|||,,,,,Poison]Enamorus||HeavyDutyBoots|CuteCharm|Moonblast,EarthPower,CalmMind,Agility|Timid|64,,,252,,192||,0,,,,|||,,,,,Fairy]Darkrai||ChoiceSpecs|BadDreams|DarkPulse,Trick,Psychic,SludgeBomb|Timid|16,,4,252,4,232||,0,,,,|||,,,,,Dark]Glimmora||BlackSludge|ToxicDebris|Substitute,EnergyBall,SludgeWave,EarthPower|Timid|8,,,252,,248||,0,,,,|||,,,,,Rock]Tera Captain|Quaquaval|RindoBerry|Moxie|AquaStep,AquaJet,IceSpinner,BrickBreak|Adamant|72,252,,,,184|||||,,,,,Water]Tera Captain|Cetitan|AssaultVest|ThickFat|HeavySlam,IceShard,PlayRough,Earthquake|Careful|,252,4,,252,|||||,,,,,Water"], + ["Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,RapidSpin,Taunt,Overheat|Jolly|252,4,,,,252|||||,,,,,Dragon]Tera Captain|ArcanineHisui|ChoiceBand|RockHead|ExtremeSpeed,HeadSmash,FlareBlitz,RockSlide|Adamant|132,252,60,,64,|||S||,,,,,Normal]Tera Captain|Azumarill|ExpertBelt|HugePower|PlayRough,BellyDrum,Superpower,AquaJet|Adamant|172,252,,,,84|||||,,,,,Steel]Goodra-Hisui||Leftovers|Gooey|HeavySlam,Earthquake,Flamethrower,KnockOff|Sassy|4,,252,,252,|||S||,,,,,Steel]Landorus-Therian||LifeOrb|Intimidate|SwordsDance,Earthquake,Fly,Outrage|Adamant|4,252,,,,252|||||,,,,,Ground]Amoonguss||BlackSludge|Regenerator|Spore,Toxic,PollenPuff,GigaDrain|Calm|252,,,4,252,||,0,,,,|||,,,,,Grass","Quagsire||Leftovers|Unaware|Scald,Recover,SeismicToss,StealthRock|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Chi-Yu||HeavyDutyBoots|BeadsofRuin|NastyPlot,DarkPulse,Overheat,Flamethrower|Timid|68,,,252,4,184||,0,,,,|||,,,,,Dark]Rillaboom||Leftovers|GrassySurge|GrassyGlide,Uturn,StompingTantrum,LeechSeed|Adamant|252,252,4,,,|||||,,,,,Grass]Sneasler||ProtectivePads|PoisonTouch|Uturn,CloseCombat,DireClaw,FakeOut|Adamant|116,252,,,4,136|||||,,,,,Fighting]Tera Captain|Latias|OccaBerry|Levitate|CalmMind,AuraSphere,StoredPower,Roost|Timid|148,,,252,4,104||,0,,,,|||,,,,,Steel]Skarmory||SafetyGoggles|Sturdy|Spikes,Defog,Roost,BraveBird|Impish|252,,196,,60,|||S||,,,,,Steel"], + ["Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,PlayRough,Trailblaze,SwordsDance|Jolly|,252,,,32,224|||||,,,,,Fire]Dondozo||ShedShell|Unaware|Liquidation,HeavySlam,Yawn,Rest|Impish|252,68,188,,,|||||,,,,,Water]Cyclizar||SitrusBerry|Regenerator|ShedTail,Uturn,RapidSpin,Overheat|Timid|88,,,252,,168|||||,,,,,Dragon]Tera Captain|Serperior|LumBerry|Contrary|TeraBlast,LeafStorm,Glare,Synthesis|Timid|24,,,252,,232||,0,,,,|||,,,,,Stellar]Clodsire||BlackSludge|WaterAbsorb|Earthquake,StealthRock,Toxic,Recover|Careful|204,52,,,252,|||||,,,,,Poison]Clefairy||Eviolite|MagicGuard|Moonblast,HealingWish,KnockOff,Moonlight|Calm|252,,4,,252,|||||,,,,,Fairy","Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,RapidSpin,IceSpinner,Earthquake|Jolly|,252,,,,252|||||,,,,,Ground]Gallade||MuscleBand|Sharpness|Agility,SacredSword,PsychoCut,NightSlash|Adamant|,252,,,,252|||||,,,,,Psychic]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|SludgeWave,EnergyBall,FieryDance,DazzlingGleam|Timid|124,,,132,,252||,0,,,,|||,,,,,Grass]Mimikyu||LifeOrb|Disguise|SwordsDance,ShadowSneak,PlayRough,WoodHammer|Jolly|,252,,,4,252|||||,,,,,Ghost]Tera Captain|Jolteon|LifeOrb|VoltAbsorb|CalmMind,TeraBlast,Thunderbolt,ShadowBall|Timid|64,,,252,,192||,0,,,,|||,,,,,Ice]Hydreigon||RockyHelmet|Levitate|DarkPulse,Flamethrower,DracoMeteor,FlashCannon|Modest|,,,252,,252||,0,,,,|||,,,,,Dark"], + ["Baxcalibur||HeavyDutyBoots|ThermalExchange|IcicleCrash,GlaiveRush,Earthquake,DragonDance|Adamant|,252,4,,,252|||||,,,,,Normal]Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Encore,PainSplit,Moonblast|Timid|228,,,96,,184||,0,,,,|||,,,,,Normal]Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,Taunt,DrainPunch,RageFist|Careful|212,,44,,252,|||||,,,,,Dark]Excadrill||SitrusBerry|MoldBreaker|Earthquake,IronHead,StealthRock,RapidSpin|Jolly|8,252,,,,248|||||,,,,,Normal]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Timid|80,,,252,88,88|||||,,,,,Normal]Alomomola||RockyHelmet|Regenerator|Scald,FlipTurn,Wish,Protect|Relaxed|252,,252,4,,|||||,,,,,Ground","Tera Captain|Jolteon|ExpertBelt|VoltAbsorb|Thunderbolt,VoltSwitch,TeraBlast,WeatherBall|Timid|24,,48,252,,184||,0,,,,|||,,,,,Fighting]Weavile||HeavyDutyBoots|Pressure|KnockOff,TripleAxel,IceShard,Substitute|Jolly|8,252,,,24,224|||||,,,,,Dark]Great Tusk||Leftovers|Protosynthesis|StealthRock,RapidSpin,CloseCombat,Earthquake|Jolly|,252,4,,,252|||||,,,,,Ground]Gholdengo||ShucaBerry|GoodasGold|Recover,ThunderWave,MakeItRain,Hex|Bold|252,,196,32,28,||,0,,,,|||,,,,,Steel]Alomomola||RockyHelmet|Regenerator|AlluringVoice,FlipTurn,Wish,Scald|Relaxed|252,,252,4,,||,,,,,0|||,,,,,Water]Tera Captain|Mew|Leftovers|Synchronize|Encore,PsychicFangs,WillOWisp,CloseCombat|Impish|252,,40,,,216|||S||,,,,,Fairy"], + ["Ninetales||HeatRock|Drought|Flamethrower,PainSplit,Encore,HealingWish|Timid|,,,252,4,252||,0,,,,|||,,,,,Bug]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,TeraBlast|Timid|12,,,244,,252||,0,,,,|||,,,,,Stellar]Heatran||Leftovers|FlashFire|MagmaStorm,Overheat,ScorchingSands,StealthRock|Calm|252,,,4,252,||,0,,,,|||,,,,,Bug]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,CloseCombat,Earthquake|Jolly|88,252,,,,168|||||,,,,,Bug]Great Tusk||LumBerry|Protosynthesis|BulkUp,Earthquake,IceSpinner,CloseCombat|Jolly|252,4,,,,252|||||,,,,,Bug]Weezing-Galar||BlackSludge|NeutralizingGas|StrangeSteam,SludgeWave,Haze,Protect|Calm|252,,,4,252,||,0,,,,|||,,,,,Bug","Chi-Yu||HeavyDutyBoots|BeadsofRuin|FlameCharge,FireBlast,DarkPulse,NastyPlot|Timid|4,,,252,,252|||||,,,,,Dark]Tera Captain|GolemAlola|Leftovers|MagnetPull|StealthRock,Earthquake,SupercellSlam,Explosion|Jolly|252,64,,,,192|||||,,,,,Flying]Pecharunt||BlackSludge|PoisonPuppeteer|MalignantChain,Hex,Recover,PartingShot|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Primarina||AssaultVest|Torrent|HydroPump,FlipTurn,Moonblast,PsychicNoise|Modest|252,,,252,4,|||||,,,,,Water]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Glare,Synthesis|Timid|252,,,4,,252|||||,,,,,Rock]Goodra-Hisui||Leftovers|ShellArmor|Curse,BodyPress,DragonTail,GyroBall|Sassy|252,,4,,252,||,,,,,0|||,,,,,Steel"], + ["Tera Captain|Excadrill|ChoiceScarf|MoldBreaker|Earthquake,RapidSpin,IronHead,BrickBreak|Jolly|,252,,,4,252|||||,,,,,Ground]Weezing||RockyHelmet|Levitate|Haze,PainSplit,WillOWisp,SludgeBomb|Bold|248,,252,8,,||,0,,,,|||,,,,,Poison]Iron Bundle||HeavyDutyBoots|QuarkDrive|FlipTurn,FreezeDry,HydroPump,Taunt|Timid|104,,,252,56,96|||||,,,,,Ice]Tyranitar||ChopleBerry|SandStream|StealthRock,KnockOff,Roar,HeavySlam|Careful|248,,104,,156,|||||,,,,,Rock]Latios|||Levitate|LusterPurge,DracoMeteor,Recover,CalmMind|Timid|64,,,252,,192||,0,,,,|||,,,,,Dragon]Alcremie||Leftovers|AromaVeil|AcidArmor,CalmMind,DrainingKiss,Recover|Bold|248,,252,,8,||,0,,,,|||,,,,,Fairy","Iron Valiant||LifeOrb|QuarkDrive|Moonblast,CloseCombat,VacuumWave,Psychic|Naive|,48,,252,,208|||||,,,,,Fairy]Garchomp||RockyHelmet|RoughSkin|Spikes,Earthquake,ScaleShot,DracoMeteor|Impish|248,,180,,,80|||||,,,,,Dragon]Rotom-Wash||YacheBerry|Levitate|HydroPump,VoltSwitch,PainSplit,WillOWisp|Careful|248,,8,,252,||,0,,,,|||,,,,,Electric]Tera Captain|Ceruledge|ChoiceScarf|FlashFire|Poltergeist,ShadowSneak,BitterBlade,CloseCombat|Jolly|40,252,,,,216|||||,,,,,Ghost]Uxie||SitrusBerry|Levitate|StealthRock,Psychic,Uturn,FoulPlay|Bold|248,,252,,8,|||||,,,,,Psychic]Morgrem||LightClay|Prankster|Reflect,LightScreen,ThunderWave,PartingShot|Bold|248,,252,,8,||,0,,,,|||,,,,,Dark"], + ["Annihilape||Leftovers|Defiant|BulkUp,DrainPunch,RageFist,FirePunch|Adamant|252,252,,,4,|||||,,,,,Fighting]Tera Captain|Mamoswine|LoadedDice|ThickFat|Trailblaze,IcicleSpear,RockBlast,IceShard|Jolly|,252,,,4,252|||||,,,,,Grass]Iron Valiant||FocusSash|QuarkDrive|SwordsDance,ShadowSneak,CloseCombat,SpiritBreak|Jolly|,252,,,4,252|||||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,HornLeech,PlayRough|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|Dondozo|Leftovers|Unaware|Curse,WaveCrash,Rest,SleepTalk|Impish|252,4,252,,,|||||,,,,,Grass]Weezing-Galar||BlackSludge|Levitate|Haze,StrangeSteam,WillOWisp,Defog|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison","Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Memento|Modest|224,,,252,,32||,0,,,,|||,,,,,Dark]Sneasler||GrassySeed|Unburden|SwordsDance,GunkShot,CloseCombat,Acrobatics|Adamant|248,252,8,,,|||||,,,,,Fighting]Tera Captain|Rillaboom|ChoiceBand|GrassySurge|GrassyGlide,WoodHammer,KnockOff,Uturn|Adamant|196,252,,,,60|||||,,,,,Grass]Flygon||Leftovers|Levitate|StealthRock,FirstImpression,Earthquake,Uturn|Adamant|,252,,,4,252|||||,,,,,Ground]Iron Treads||AssaultVest|QuarkDrive|IronHead,VoltSwitch,KnockOff,RapidSpin|Jolly|252,64,,,4,188|||||,,,,,Ground]Tera Captain|Primarina|Leftovers|LiquidVoice|CalmMind,AlluringVoice,DrainingKiss,Moonblast|Modest|140,,,252,116,||,0,,,,|||,,,,,Normal"], + ["Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Glare|Timid|252,,20,28,,208||,0,,,,|||,,,,,Water]Tera Captain|Ribombee|ChoiceSpecs|ShieldDust|Moonblast,BugBuzz,StickyWeb,Uturn|Timid|32,,,252,4,220|||||,,,,,Fairy]Zapdos-Galar||ChoiceScarf|Defiant|BraveBird,CloseCombat,Uturn,KnockOff|Jolly|16,252,,,8,232|||||,,,,,Fighting]Garchomp||RockyHelmet|RoughSkin|StealthRock,Earthquake,Protect,Crunch|Impish|252,100,152,,,4|||||,,,,,Dragon]Rotom-Heat||HeavyDutyBoots|Levitate|VoltSwitch,WillOWisp,Overheat,Hex|Timid|252,,,16,,240||,0,,,,|||,,,,,Electric]Weavile||HeavyDutyBoots|Pressure|FakeOut,KnockOff,IceSpinner,BrickBreak|Jolly|32,252,,,12,212|||||,,,,,Dark","Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,HydroPump,IceBeam,FlipTurn|Modest|56,,,252,,200|||||,,,,,Ice]Iron Treads||ShucaBerry|QuarkDrive|RapidSpin,IceSpinner,VoltSwitch,Earthquake|Jolly|248,,36,,,224|||||,,,,,Ground]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|Uturn,SurgingStrikes,CloseCombat,IceSpinner|Jolly|24,252,,,,232|||||,,,,,Water]Cinderace||HeavyDutyBoots|Libero|HighJumpKick,Uturn,Trailblaze,PyroBall|Jolly|48,252,,,,208|||||,,,,,Fire]Tera Captain|Dudunsparce|Leftovers|Rattled|Roost,StealthRock,Boomburst,Flamethrower|Calm|248,,8,,252,||,0,,,,|||,,,,,Poison]Hattrem||Eviolite|MagicBounce|Nuzzle,HealingWish,BatonPass,Psychic|Bold|248,,224,,36,|||||,,,,,Psychic"], + ["Gholdengo||ChoiceScarf|GoodasGold|ShadowBall,MakeItRain,Thunderbolt,Memento|Timid|24,,,252,,232||,0,,,,|||,,,,,Steel]Tera Captain|Latias|Leftovers|Levitate|CalmMind,StoredPower,Recover,AuraSphere|Bold|252,,208,20,,28||,0,,,,|||,,,,,Poison]Tera Captain|Gyarados|Leftovers|Intimidate|Roar,ThunderWave,Earthquake,Waterfall|Impish|252,,204,,,52|||||,,,,,Water]Donphan||Leftovers|Sturdy|RapidSpin,StealthRock,KnockOff,Earthquake|Careful|252,4,,,184,68|||||,,,,,Ground]Moltres||HeavyDutyBoots|FlameBody|Roost,WillOWisp,BraveBird,Uturn|Careful|248,8,,,252,|||||,,,,,Fire]Iron Valiant||HeavyDutyBoots|QuarkDrive|SwordsDance,CloseCombat,IcePunch,ZenHeadbutt|Jolly|,252,,,4,252|||||,,,,,Fairy","Decidueye||ChoiceBand|LongReach|Uturn,Poltergeist,ShadowSneak,LeafBlade|Adamant|,252,,,88,168|||||,,,,,Grass]Entei||ChoiceBand|InnerFocus|SacredFire,ExtremeSpeed,StoneEdge,Crunch|Adamant|24,252,,,,232|||||,,,,,Fire]Glimmora||PasshoBerry|ToxicDebris|EarthPower,PowerGem,MortalSpin,SpikyShield|Modest|,,40,252,,216|||||,,,,,Rock]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,ShadowBall,CalmMind,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|Gyarados|ClearAmulet|Moxie|DragonDance,Earthquake,Waterfall,Crunch|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|Metagross|AssaultVest|ClearBody|BulletPunch,KnockOff,StoneEdge,GrassKnot|Relaxed|252,,240,,16,|||||,,,,,Fire"], + ["Garchomp||ChoiceScarf|RoughSkin|DragonClaw,Earthquake,Outrage,StoneEdge|Adamant|120,252,,,,136|||||,,,,,Dragon]Tera Captain|UrshifuRapidStrike|PunchingGlove|UnseenFist|SurgingStrikes,CloseCombat,Trailblaze,SwordsDance|Jolly|48,252,,,,208|||||,,,,,Steel]Corviknight||Leftovers|MirrorArmor|Defog,Roost,Uturn,IronHead|Impish|252,,64,,192,|||||,,,,,Flying]Tera Captain|Arcanine|Leftovers|Intimidate|TeraBlast,MorningSun,ScorchingSands,ExtremeSpeed|Relaxed|248,,176,84,,|||||,,,,,Fairy]Florges||Leftovers|FlowerVeil|AlluringVoice,Synthesis,CalmMind,PsychicNoise|Calm|252,,4,,252,||,0,,,,|||,,,,,Fairy]Overqwil||BlackSludge|Intimidate|Toxic,Crunch,GunkShot,Liquidation|Adamant|252,252,,,4,|||||,,,,,Dark","Tera Captain|Serperior|Leftovers|Contrary|TeraBlast,LeafStorm,Glare,Substitute|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar]Landorus-Therian||Leftovers|Intimidate|Psychic,EarthPower,NastyPlot,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Baxcalibur||LoadedDice|ThermalExchange|GlaiveRush,IcicleSpear,DragonDance,Earthquake|Adamant|,252,,,4,252|||||,,,,,Dragon]Moltres||HeavyDutyBoots|FlameBody|WillOWisp,Flamethrower,AirSlash,Uturn|Bold|120,,252,136,,|||||,,,,,Fire]Glimmora||PowerHerb|ToxicDebris|MortalSpin,SludgeWave,MeteorBeam,StealthRock|Timid|,,,252,4,252|||||,,,,,Rock]Walking Wake||ChoiceScarf|Protosynthesis|HydroPump,FlipTurn,Flamethrower,DracoMeteor|Modest|,,,252,4,252|||||,,,,,Water"], + ["Morpeko||HeavyDutyBoots|HungerSwitch|AuraWheel,KnockOff,PartingShot,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Bug]Tera Captain|EnamorusTherian|RedCard|Overcoat|SludgeBomb,HealingWish,Moonblast,EarthPower|Calm|252,,100,,156,||,0,,,,|||,,,,,Steel]Slowking-Galar||AirBalloon|Regenerator|FocusBlast,ChillyReception,ThunderWave,IceBeam|Calm|252,,,100,156,||,0,,,,|||,,,,,Bug]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,HeatCrash,MorningSun,Earthquake|Adamant|,136,116,,4,252|||||,,,,,Bug]Tera Captain|Hydrapple|AssaultVest|Regenerator|EarthPower,EnergyBall,FickleBeam,DragonTail|Bold|252,,140,,116,|||||,,,,,Steel]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|Spikes,PowerWhip,IvyCudgel,Synthesis|Jolly|152,104,,,,252|||||,,,,,Water","Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|TeraBlast,Fly,Earthquake,Uturn|Jolly|36,252,,,,220|||||,,,,,Flying]Tera Captain|Diancie|SitrusBerry|ClearBody|DiamondStorm,Endeavor,IronDefense,Spikes|Impish|252,84,160,,,12|||||,,,,,Dragon]Darkrai||Leftovers|BadDreams|DarkPulse,SludgeBomb,Substitute,Hypnosis|Timid|40,,,252,,216||,0,,,,|||,,,,,Dark]Archaludon||RockyHelmet|Stamina|FlashCannon,DragonPulse,Rest,SleepTalk|Bold|252,,180,44,,32||,0,,,,|||,,,,,Steel]Sinistcha||Leftovers|Heatproof|ShadowBall,CalmMind,IronDefense,StrengthSap|Modest|,,148,108,252,||,0,,,,|||,,,,,Grass]Arbok||BlackSludge|Intimidate|GunkShot,KnockOff,Glare,Coil|Adamant|252,164,,,64,28|||||,,,,,Poison"], + ["Darkrai||LumBerry|BadDreams|DarkPulse,Psyshock,SludgeBomb,NastyPlot|Modest|136,,,216,,156||,0,,,,|||,,,,,Dark]Slowking-Galar||ShucaBerry|Regenerator|FutureSight,Toxic,IceBeam,ChillyReception|Calm|248,,,8,252,||,0,,,,|||,,,,,Poison]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Uturn,Protect,Spikes,KnockOff|Impish|240,,252,,,16|||||,,,,,Water]Tera Captain|Terrakion|BlackBelt|Justified|TeraBlast,CloseCombat,IronHead,SwordsDance|Jolly|80,252,,,,176|||||,,,,,Water]Blastoise||Leftovers|Torrent|RapidSpin,FlipTurn,HydroPump,BodyPress|Relaxed|252,,252,4,,||,,,,,0|||,,,,,Water]Sandslash-Alola||ProtectivePads|SlushRush|KnockOff,SwordsDance,TripleAxel,IronHead|Adamant|144,252,,,,112|||||,,,,,Ice","Pecharunt||HeavyDutyBoots|PoisonPuppeteer|FoulPlay,Recover,Hex,MalignantChain|Bold|252,,96,,140,20||,0,,,,|||,,,,,Poison]Landorus-Therian||Leftovers|Intimidate|Earthquake,Uturn,StealthRock,StoneEdge|Careful|252,4,,,252,|||||,,,,,Ground]Tera Captain|Hydreigon|ChestoBerry|Levitate|Rest,DracoMeteor,ThunderWave,Uturn|Calm|252,,,4,252,|||||,,,,,Ghost]Tera Captain|Clodsire|HeavyDutyBoots|Unaware|Haze,Toxic,Recover,Earthquake|Impish|56,,252,,200,|||||,,,,,Water]Alomomola||HeavyDutyBoots|Regenerator|Wish,FlipTurn,Protect,Scald|Bold|252,,252,,4,|||||,,,,,Water]Clefable||StickyBarb|MagicGuard|Moonlight,Moonblast,Trick,Reflect|Calm|252,,120,4,132,||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,Trailblaze,Synthesis|Jolly|,252,,,80,176|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,KnockOff,HammerArm,Taunt|Jolly|252,,,,168,88|||||,,,,,Flying]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,MorningSun,Outrage,RagingFury|Adamant|,252,,,4,252|||||,,,,,Fire]Tera Captain|Comfey|Leftovers|Triage|CalmMind,DrainingKiss,Taunt,Synthesis|Calm|,,136,200,172,||,0,,,,|||,,,,,Fairy]Gholdengo||AirBalloon|GoodasGold|NastyPlot,ShadowBall,DazzlingGleam,Recover|Calm|220,,,48,208,32||,0,,,,|||,,,,,Steel]Maushold||ProtectivePads|Technician|TidyUp,Bite,PopulationBomb,Encore|Jolly|,252,,,4,252|||||,,,,,Normal","Darkrai||WiseGlasses|BadDreams|DarkPulse,IceBeam,FocusBlast,NastyPlot|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|Gholdengo|Leftovers|GoodasGold|ShadowBall,NastyPlot,ThunderWave,Recover|Calm|252,,132,,124,||,0,,,,|||,,,,,Fairy]Ting-Lu||Leftovers|VesselofRuin|Earthquake,StoneEdge,StealthRock,Whirlwind|Serious|252,,184,,72,|||||,,,,,Dark]Zapdos||HeavyDutyBoots|Static|Discharge,Hurricane,VoltSwitch,Roost|Bold|252,,252,,,||,0,,,,|||,,,,,Electric]Tsareena||YacheBerry|QueenlyMajesty|PowerWhip,TripleAxel,Endeavor,RapidSpin|Adamant|252,252,,,4,|||||,,,,,Grass]Tera Captain|Okidogi|ChoiceScarf|ToxicChain|GunkShot,CloseCombat,KnockOff,PsychicFangs|Jolly|,252,,,4,252|||||,,,,,Fighting"], + ["Darkrai||LifeOrb|BadDreams|DarkPulse,Psychic,FocusBlast,Hypnosis|Timid|,,16,252,,240||,0,,,,|S||,,,,,Dark]Tera Captain|Infernape|ChoiceScarf|Blaze|CloseCombat,FlareBlitz,Earthquake,Uturn|Jolly|,252,24,,,232|||S||,,,,,Fighting]Forretress||RockyHelmet|Sturdy|Spikes,RapidSpin,Earthquake,Lunge|Impish|252,,252,,4,|||||,,,,,Bug]Swampert||Leftovers|Torrent|StealthRock,FlipTurn,Earthquake,Yawn|Careful|252,,4,,252,|||S||,,,,,Water]Tera Captain|Mimikyu|LifeOrb|Disguise|SwordsDance,ShadowSneak,ShadowClaw,PlayRough|Adamant|,252,16,,,240|||S||,,,,,Ghost]Slowking-Galar||ColburBerry|Regenerator|SludgeBomb,Toxic,ThunderWave,ChillyReception|Calm|252,,4,,252,||,0,,,,|S||,,,,,Poison","Tera Captain|Zarude|Leftovers|LeafGuard|BulkUp,TeraBlast,Trailblaze,KnockOff|Jolly|56,252,,,,200|||||,,,,,Fairy]Blastoise||WhiteHerb|Torrent|ShellSmash,HydroPump,Earthquake,IceSpinner|Rash|208,114,,188,,|||||,,,,,Water]Sandy Shocks||LightClay|Protosynthesis|Spikes,ScorchingSands,Reflect,VoltSwitch|Timid|36,,,252,,220||,0,,,,|||,,,,,Electric]Slither Wing||MuscleBand|Protosynthesis|Trailblaze,Uturn,CloseCombat,FirstImpression|Adamant|24,252,,,,232|||||,,,,,Bug]Incineroar||Leftovers|Intimidate|PartingShot,DarkestLariat,WillOWisp,FirePunch|Jolly|252,252,,,,4|||||,,,,,Fire]Fezandipiti||BlackSludge|ToxicChain|GunkShot,Taunt,Uturn,Roost|Jolly|140,,,,136,232|||||,,,,,Poison"], + ["Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,Taunt,Thunderbolt,TeraBlast|Modest|,,80,252,,176||,20,,,,|||,,,,,Water]Weezing-Galar||RockyHelmet|Levitate|Taunt,PainSplit,Flamethrower,StrangeSteam|Bold|248,,252,,,8||,0,,,,|||,,,,,Poison]Infernape||FistPlate|IronFist|Flamethrower,CloseCombat,Uturn,MachPunch|Jolly|,252,,,64,192|||||,,,,,Fire]Weavile||ProtectivePads|Pressure|KnockOff,TripleAxel,Protect,BrickBreak|Adamant|,252,,,84,172|||||,,,,,Dark]Brambleghast||HeavyDutyBoots|WindRider|PowerWhip,Poltergeist,RapidSpin,Protect|Adamant|,252,,,4,252|||||,,,,,Grass]Gastrodon||Leftovers|StormDrain|Surf,EarthPower,Recover,StealthRock|Calm|252,,,4,252,||,0,,,,|||,,,,,Water","Urshifu-Rapid-Strike||LifeOrb|UnseenFist|SurgingStrikes,CloseCombat,Uturn,ZenHeadbutt|Jolly|,252,,,4,252|||||,,,,,Fighting]Indeedee||ChoiceSpecs|PsychicSurge|DazzlingGleam,Psychic,EnergyBall,ShadowBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,DarkPulse,Psychic,WillOWisp|Modest|,,,252,4,252||,0,,,,|||,,,,,Dark]Landorus-Therian||Leftovers|Intimidate|Earthquake,StoneEdge,SwordsDance,Crunch|Adamant|,252,4,,252,|||||,,,,,Ground]Tera Captain|Heatran|Leftovers|FlameBody|TeraBlast,FlashCannon,Flamethrower,EarthPower|Modest|252,,,252,4,||,0,,,,|||,,,,,Grass]Forretress||RockyHelmet|Sturdy|RapidSpin,StealthRock,BodyPress,Explosion|Impish|252,4,252,,,|||||,,,,,Bug"], + ["Tera Captain|Latias|Leftovers|Levitate|CalmMind,Recover,IceBeam,Thunderbolt|Timid|252,,64,,,192||,0,,,,|||,,,,,Fairy]Meowscarada||ProtectivePads|Protean|Uturn,TripleAxel,KnockOff,FlowerTrick|Jolly|,252,,,4,252|||||,,,,,Grass]Zapdos||HeavyDutyBoots|Pressure|Hurricane,VoltSwitch,Roost,Discharge|Bold|248,,252,8,,||,0,,,,|||,,,,,Electric]Glimmora||FocusSash|ToxicDebris|Spikes,MortalSpin,PowerGem,EarthPower|Timid|128,,,252,,128|||||,,,,,Rock]Swampert||Leftovers|Torrent|EarthPower,FlipTurn,StealthRock,Surf|Bold|252,,252,4,,|||||,,,,,Water]Tera Captain|Lucario|ChoiceScarf|Justified|StoneEdge,IcePunch,CloseCombat,MeteorMash|Jolly|,252,,,4,252|||||,,,,,Fighting","Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,SpiritBreak,Encore,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fairy]Tera Captain|GreninjaBond|ExpertBelt|BattleBond|HydroPump,DarkPulse,LowKick,IceBeam|Naive|,4,,252,,252|||||,,,,,Water]Garchomp||Leftovers|RoughSkin|Earthquake,ScaleShot,StealthRock,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dragon]Metagross||Leftovers|ClearBody|IronHead,KnockOff,BodyPress,StoneEdge|Careful|252,,4,,252,|||||,,,,,Steel]Moltres||HeavyDutyBoots|FlameBody|Flamethrower,Roost,Uturn,WillOWisp|Bold|248,,252,,8,|||||,,,,,Fire]Decidueye||HeavyDutyBoots|LongReach|LeafBlade,KnockOff,Roost,Uturn|Adamant|252,252,4,,,|||||,,,,,Grass"], + ["Primarina||AssaultVest|Torrent|Surf,Moonblast,FlipTurn,PsychicNoise|Calm|252,,16,36,204,|||||,,,,,Steel]Tera Captain|Scrafty|Leftovers|ShedSkin|BulkUp,KnockOff,DrainPunch,Rest|Careful|252,,,,164,92|||||,,,,,Poison]Tera Captain|Gholdengo|AirBalloon|GoodasGold|ShadowBall,MakeItRain,NastyPlot,FocusBlast|Modest|160,,44,68,,236||,0,,,,|||,,,,,Fairy]Magnezone||ChoiceScarf|MagnetPull|Thunderbolt,FlashCannon,VoltSwitch,MirrorCoat|Timid|4,,4,248,,252||,0,,,,|||,,,,,Electric]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Spikes,Protect,Toxic|Impish|244,,248,,16,|||||,,,,,Water]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,FlareBlitz,Earthquake,MorningSun|Jolly|,252,4,,,252|||||,,,,,Fairy","Blaziken||Leftovers|SpeedBoost|FlareBlitz,PoisonJab,CloseCombat,SwordsDance|Adamant|4,252,,,,252|||||,,,,,Fire]Mabosstiff||SitrusBerry|Intimidate|FireFang,IceFang,Outrage,PlayRough|Impish|152,252,104,,,|||||,,,,,Dark]Tera Captain|Latias|AssaultVest|Levitate|IceBeam,AuraSphere,Thunderbolt,ShadowBall|Calm|,,,40,252,216||,0,,,,|||,,,,,Electric]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,Thunderbolt,ThunderWave|Bold|252,,212,,44,||,0,,,,|||,,,,,Electric]Iron Treads||Leftovers|QuarkDrive|VoltSwitch,RapidSpin,Earthquake,IceFang|Impish|252,,96,,160,|||S||,,,,,Ground]Iron Bundle||ChoiceSpecs|QuarkDrive|FlipTurn,FreezeDry,HydroPump,ChillingWater|Rash|72,,,252,,184|||S||,,,,,Ice"], + ["Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Overheat,LavaPlume,Psychic|Timid|80,,,252,,176||,0,,,,|||,,,,,Dark]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,KnockOff,IcyWind,Uturn|Timid|160,,236,8,,104|||||,,,,,Flying]Metagross||WeaknessPolicy|ClearBody|Agility,ZenHeadbutt,StoneEdge,IcePunch|Adamant|208,252,,,,48|||||,,,,,Steel]Tera Captain|Quaquaval|ChoiceBand|Moxie|AquaStep,IceSpinner,RapidSpin,FlipTurn|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Gardevoir|ChoiceScarf|Trace|Psychic,Moonblast,Thunderbolt,Trick|Modest|32,,,252,4,220||,0,,,,|||,,,,,Electric]Sandy Shocks||HeavyDutyBoots|Protosynthesis|StealthRock,ThunderWave,EarthPower,VoltSwitch|Timid|112,,,228,,168||,0,,,,|||,,,,,Electric","Garchomp||LoadedDice|RoughSkin|StealthRock,ScaleShot,Earthquake,PoisonJab|Jolly|,252,,,8,248|||||,,,,,Dragon]Tera Captain|Annihilape|ChoiceScarf|Defiant|CloseCombat,RageFist,TeraBlast,FinalGambit|Jolly|,252,40,,,216|||||,,,,,Electric]Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,RazorShell,KnockOff,AquaJet|Careful|,28,,,252,228|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,BleakwindStorm,KnockOff,Uturn|Timid|32,,232,92,56,96|||||,,,,,Flying]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Flamethrower,WillOWisp,Roost,Uturn|Bold|248,,208,,52,|||||,,,,,Water]Brambleghast||HeavyDutyBoots|WindRider|NightShade,PowerWhip,StrengthSap,RapidSpin|Careful|252,,56,,200,|||||,,,,,Grass"], + ["Weezing||ShucaBerry|NeutralizingGas|FireBlast,PainSplit,SludgeBomb,WillOWisp|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|Recover,CalmMind,StoredPower,Agility|Calm|252,,,,48,208||,0,,,,|||,,,,,Steel]Rotom-Wash||YacheBerry|Levitate|VoltSwitch,PainSplit,ThunderWave,HydroPump|Bold|252,,188,68,,||,0,,,,|||,,,,,Electric]Meowscarada||ChoiceScarf|Protean|FlowerTrick,Uturn,KnockOff,ThunderPunch|Jolly|20,252,,,,236|||||,,,,,Grass]Tinkaton||Leftovers|MoldBreaker|StealthRock,ThunderWave,KnockOff,GigatonHammer|Careful|252,4,,,252,|||||,,,,,Fairy]Ursaring||Eviolite|Guts|CloseCombat,Facade,SleepTalk,Rest|Careful|252,84,,,172,|||||,,,,,Normal","Pelipper||DampRock|Drizzle|Hurricane,Surf,Uturn,Roost|Relaxed|248,,252,,8,||,,,,,0|||,,,,,Stellar]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Glare,Substitute|Timid|,,4,252,,252||,0,,,,|||,,,,,Fire]Tera Captain|Ditto|ChoiceScarf|Imposter|Transform|Relaxed|252,4,252,,,||,,,,,0|||,,,,,Stellar]Basculegion||ChoiceBand|SwiftSwim|WaveCrash,FlipTurn,AquaJet,IceFang|Adamant|,252,4,,,252|||||,,,,,Water]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,IceBeam,ElectricTerrain|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice]Cyclizar||HeavyDutyBoots|Regenerator|DragonTail,KnockOff,ShedTail,RapidSpin|Jolly|252,4,,,,252|||||,,,,,Electric"], + ["Klefki||LightClay|Prankster|ThunderWave,SunnyDay,LightScreen,Reflect|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Tera Captain|Ditto|ChoiceScarf|Imposter|Transform|Calm|252,,252,,4,|||||,,,,,Stellar]Blaziken||HeavyDutyBoots|SpeedBoost|CloseCombat,Detect,FlareBlitz,SwordsDance|Adamant|4,252,108,,,144|||||,,,,,Fire]Tera Captain|Latias|ExpertBelt|Levitate|TeraBlast,AirSlash,EnergyBall,Agility|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Charizard||ChoiceScarf|SolarPower|Flamethrower,Overheat,AncientPower,SolarBeam|Modest|248,,,252,,8||,0,,,,|||,,,,,Fire]Cyclizar||MentalHerb|Regenerator|ShedTail,SunnyDay,KnockOff,DracoMeteor|Timid|248,,,8,,252||,0,,,,|||,,,,,Dragon","Iron Valiant||LifeOrb|QuarkDrive|AuraSphere,Thunderbolt,CloseCombat,Moonblast|Naive|,4,,252,,252|||||,,,,,Fairy]Iron Boulder||BoosterEnergy|QuarkDrive|SacredSword,MightyCleave,SwordsDance,ThroatChop|Jolly|,252,,,4,252|||||,,,,,Rock]Tera Captain|RotomWash|ChoiceScarf|Levitate|VoltSwitch,HydroPump,Trick,ThunderWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tinkaton||Leftovers|MoldBreaker|FakeOut,GigatonHammer,Encore,StealthRock|Jolly|,252,,,4,252|||||,,,,,Fairy]Tera Captain|OricorioPomPom|MirrorHerb|Dancer|AlluringVoice,RevelationDance,QuiverDance,Roost|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Toedscruel||Leftovers|MyceliumMight|KnockOff,RapidSpin,Hex,StunSpore|Gentle|252,4,,,252,|||||,,,,,Ground"], + ["Thwackey||Eviolite|GrassySurge|KnockOff,Uturn,FakeOut,WoodHammer|Impish|,252,252,,4,|||||,,,,,Grass]Sneasler||GrassySeed|Unburden|CloseCombat,DireClaw,SwordsDance,Uturn|Adamant|,252,,,4,252|||||,,,,,Dark]Clodsire||Leftovers|Unaware|StealthRock,Recover,Earthquake,Toxic|Careful|252,4,,,252,|||||,,,,,Poison]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,WoodHammer,SpikyShield,Synthesis|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Espathra|Leftovers|SpeedBoost|StoredPower,CalmMind,Protect,Roost|Modest|,,,252,4,252||,0,,,,|||,,,,,Fairy]Chi-Yu||FocusSash|BeadsofRuin|Overheat,DarkPulse,Hex,WillOWisp|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark","Skeledirge||HeavyDutyBoots|Unaware|AlluringVoice,ShadowBall,WillOWisp,SlackOff|Bold|252,,16,,240,||,0,,,,|||,,,,,Fire]Weezing-Galar||CustapBerry|Levitate|Defog,WillOWisp,ClearSmog,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Ting-Lu||Leftovers|VesselofRuin|Earthquake,Whirlwind,Spikes,Rest|Careful|252,4,,,252,|||||,,,,,Dark]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,GastroAcid|Timid|24,,,252,,232||,0,,,,|||,,,,,Ground]Palafin||RindoBerry|ZerotoHero|BulkUp,JetPunch,Acrobatics,DrainPunch|Adamant|252,252,,,4,|||||,,,,,Water]Tinkaton||LightClay|MoldBreaker|IceHammer,Reflect,LightScreen,StealthRock|Careful|252,,80,,176,|||||,,,,,Fairy"], + ["Urshifu-Rapid-Strike||ChoiceScarf|UnseenFist|SurgingStrikes,CloseCombat,Uturn,DynamicPunch|Adamant|,252,,,4,252|||||,,,,,Stellar]Thundurus||UtilityUmbrella|Prankster|RainDance,ThunderWave,WeatherBall,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar]Tera Captain|DeoxysDefense|CovertCloak|Pressure|Spikes,IceBeam,Recover,Teleport|Calm|248,,,72,188,||,0,,,,|||,,,,,Ice]Medicham||SalacBerry|PurePower|BulkUp,HighJumpKick,ZenHeadbutt,Substitute|Naive|,252,,,4,252|||||,,,,,Stellar]Skarmory||Leftovers|Sturdy|IronDefense,Roost,Roar,BodyPress|Bold|252,,160,,96,||,0,,,,|||,,,,,Stellar]Decidueye||AssaultVest|Overgrow|Trailblaze,LeafBlade,SpiritShackle,ShadowSneak|Adamant|248,252,,,8,|||||,,,,,Stellar","Ursaluna-Bloodmoon||CovertCloak|MindsEye|BloodMoon,EarthPower,CalmMind,Moonlight|Modest|252,,,252,4,||,0,,,,|||,,,,,Normal]Whimsicott||RockyHelmet|Prankster|Uturn,LeechSeed,Substitute,Moonblast|Bold|248,,252,8,,|||||,,,,,Normal]Tera Captain|Zebstrika|HeavyDutyBoots|LightningRod|VoltSwitch,Thunderbolt,TeraBlast,Taunt|Modest|,,,252,4,252||,0,,,,|||,,,,,Ice]Tentacruel||BlackSludge|LiquidOoze|ToxicSpikes,Haze,RapidSpin,Surf|Calm|252,,,,240,16|||||,,,,,Normal]Greninja||ChoiceSpecs|Protean|Uturn,Surf,IceBeam,Extrasensory|Timid|,,,252,4,252|||||,,,,,Normal]Tera Captain|Annihilape|CovertCloak|Defiant|Substitute,BulkUp,RageFist,DrainPunch|Impish|252,,160,,,96|||||,,,,,Ground"], + ["Slowking-Galar||HeavyDutyBoots|Regenerator|ToxicSpikes,ThunderWave,SludgeBomb,SlackOff|Calm|252,,100,,156,||,0,,,,|||,,,,,Poison]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,KnockOff,RapidSpin,IceSpinner|Jolly|252,,88,,,168|||||,,,,,Dragon]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,Protect,DazzlingGleam,StoredPower|Modest|216,,,252,,40||,0,,,,|||,,,,,Dark]Quagsire||Leftovers|Unaware|Recover,Toxic,IceBeam,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Mienshao||AssaultVest|Regenerator|Uturn,KnockOff,CloseCombat,TripleAxel|Careful|252,,4,,252,|||||,,,,,Fighting]Hydrapple||HeavyDutyBoots|Regenerator|FickleBeam,DracoMeteor,GigaDrain,Recover|Modest|252,,184,72,,||,0,,,,|||,,,,,Grass","Darkrai||BlunderPolicy|BadDreams|IceBeam,Hypnosis,DarkPulse,Psychic|Hasty|,4,,252,,224||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,HornLeech,Uturn|Jolly|,252,40,,,216|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Tailwind,Uturn,Hurricane,SludgeBomb|Hasty|,,,252,8,248|||||,,,,,Flying]Garchomp||LifeOrb|RoughSkin|SwordsDance,ScaleShot,Earthquake,DracoMeteor|Hasty|,252,,88,,168|||||,,,,,Dragon]Ditto||ChoiceScarf|Imposter|Transform|Impish|252,4,252,,,|||||,,,,,Normal]Tera Captain|Brambleghast|LoadedDice|WindRider|TeraBlast,Trailblaze,BulletSeed,Poltergeist|Adamant|,252,,,100,156|||||,,,,,Dragon"], + ["Samurott-Hisui||LifeOrb|Sharpness|CeaselessEdge,FlipTurn,KnockOff,RazorShell|Jolly|,252,,,4,252|||||,,,,,Water]Iron Treads||ChoiceBand|QuarkDrive|Earthquake,IronHead,ZenHeadbutt,KnockOff|Jolly|,252,,,32,224|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,KnockOff,LeafBlade,SpiritBreak|Naive|4,252,,,,252|||||,,,,,Fairy]Tera Captain|Gyarados|WacanBerry|Intimidate|DragonDance,Earthquake,TeraBlast,Taunt|Adamant|,252,,,4,252|||||,,,,,Flying]Golurk||SpellTag|NoGuard|Earthquake,Poltergeist,Curse,StealthRock|Brave|252,252,4,,,|||||,,,,,Ground]Tera Captain|Latias|MirrorHerb|Levitate|HealingWish,ShadowBall,Roar,EnergyBall|Timid|252,,,64,,192||,0,,,,|||,,,,,Poison","Electrode-Hisui||EjectPack|Soundproof|LeafStorm,VoltSwitch,FoulPlay,Taunt|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Gastrodon||RockyHelmet|StormDrain|Earthquake,StealthRock,Recover,IceBeam|Relaxed|252,4,252,,,|||||,,,,,Water]Tera Captain|Grimmsnarl|LightClay|Prankster|PlayRough,Reflect,LightScreen,PartingShot|Careful|252,4,,,252,|||||,,,,,Dark]Tera Captain|Hatterene|Leftovers|MagicBounce|CalmMind,DrainingKiss,Psyshock,Nuzzle|Relaxed|252,,208,48,,|||||,,,,,Water]Annihilape||Leftovers|Defiant|BulkUp,DrainPunch,RageFist,Taunt|Careful|252,68,,,188,|||||,,,,,Fighting]Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Memento|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark"], + ["Archaludon||AssaultVest|Stamina|ElectroShot,Earthquake,DracoMeteor,BodyPress|Naive|,4,,252,,252|||||,,,,,Steel]Pelipper||DampRock|Drizzle|Surf,Hurricane,Uturn,Roost|Bold|248,,76,,184,|||||,,,,,Water]Ting-Lu||RedCard|VesselofRuin|StealthRock,Spikes,Earthquake,HeavySlam|Careful|252,4,,,252,|||||,,,,,Dark]Barraskewda||ChoiceBand|SwiftSwim|Liquidation,FlipTurn,RainDance,AquaJet|Adamant|,252,,,4,252|||||,,,,,Water]Tera Captain|Kingdra|ChoiceSpecs|SwiftSwim|WeatherBall,DracoMeteor,HydroPump,IceBeam|Timid|,,4,252,,252||,0,,,,|||,,,,,Water]Tera Captain|IronHands|BoosterEnergy|QuarkDrive|CloseCombat,Thunder,FakeOut,IcePunch|Brave|248,252,,8,,|||||,,,,,Ice","Torkoal||EjectButton|Drought|StealthRock,SunnyDay,RapidSpin,WillOWisp|Bold|252,,252,,4,|||||,,,,,Fire]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,DragonPulse,FlipTurn|Modest|32,,,252,,224|||||,,,,,Water]Weezing||BlackSludge|Levitate|ToxicSpikes,WillOWisp,SludgeBomb,PainSplit|Bold|252,,240,,,16||,0,,,,|||,,,,,Poison]Great Tusk||PasshoBerry|Protosynthesis|IceSpinner,ThunderFang,CloseCombat,RapidSpin|Jolly|16,252,,,,240|||||,,,,,Ground]Scream Tail||Leftovers|Protosynthesis|CalmMind,DazzlingGleam,Wish,Protect|Timid|252,,172,,36,48||,0,,,,|||,,,,,Fairy]Tera Captain|Venusaur|Leftovers|Chlorophyll|SunnyDay,GigaDrain,EarthPower,SleepPowder|Modest|184,,,252,,72||,0,,,,|||,,,,,Grass"], + ["Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Synthesis|Timid|64,,,252,,192||,0,,,,|||,,,,,Ice]Donphan||Leftovers|Sturdy|RapidSpin,Earthquake,StoneEdge,IceShard|Impish|248,8,252,,,|||||,,,,,Steel]Palafin-Hero||Leftovers|ZerotoHero|GrassKnot,JetPunch,BulkUp,IceBeam|Relaxed|248,,236,24,,|||||,,,,,Electric]Zapdos||HeavyDutyBoots|Static|Uturn,Hurricane,Roost,Thunderbolt|Modest|224,,,252,,32|||||,,,,,Grass]Lokix||HeavyDutyBoots|TintedLens|FirstImpression,KnockOff,Uturn,SuckerPunch|Adamant|160,252,,,,96|||||,,,,,Fighting]Tinkaton||Leftovers|MoldBreaker|StealthRock,KnockOff,PlayRough,GigatonHammer|Careful|248,8,,,252,|||||,,,,,Poison","Palafin||ChoiceSpecs|ZerotoHero|Boomburst,IceBeam,FlipTurn,HydroPump|Modest|,,,252,4,252|||||,,,,,Water]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Spikes,KnockOff,Earthquake,Protect|Impish|252,,252,,,|||||,,,,,Water]Tera Captain|Tyranitar|PasshoBerry|SandStream|DragonDance,Earthquake,StoneEdge,FirePunch|Jolly|,216,52,,,240|||||,,,,,Fire]Zapdos||HeavyDutyBoots|Static|Thunderbolt,ThunderWave,Roost,Hurricane|Bold|252,,252,,,4||,0,,,,|||,,,,,Electric]Dragalge||AssaultVest|Adaptability|SludgeBomb,FlipTurn,DracoMeteor,DragonTail|Calm|252,,,4,252,|||||,,,,,Poison]Tinkaton||Leftovers|MoldBreaker|StealthRock,KnockOff,GigatonHammer,ThunderWave|Careful|252,,,,252,|||||,,,,,Fairy"], + ["Tera Captain|Ceruledge|AirBalloon|WeakArmor|SwordsDance,TeraBlast,Poltergeist,BrickBreak|Adamant|152,252,,,,104|||||,,,,,Fairy]Darkrai||FocusSash|BadDreams|Hypnosis,NastyPlot,DarkPulse,SludgeBomb|Timid|,,,252,8,248||,0,,,,|||,,,,,Dark]Iron Treads||HeavyDutyBoots|QuarkDrive|RapidSpin,VoltSwitch,FlashCannon,EarthPower|Timid|64,,,252,,192|||||,,,,,Ground]Mesprit||ColburBerry|Levitate|ThunderWave,Psychic,Uturn,StealthRock|Impish|248,,216,,,44|||||,,,,,Psychic]Tera Captain|Diancie|ShucaBerry|ClearBody|Spikes,Moonblast,DiamondStorm,Reflect|Relaxed|248,,148,112,,|||||,,,,,Water]Palafin-Hero||YacheBerry|ZerotoHero|BulkUp,Taunt,DrainPunch,JetPunch|Adamant|212,124,,,,172|||||,,,,,Water","Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Moonblast,Encore,FreezeDry|Timid|252,,,136,,120||,0,,,,|||,,,,,Ice]Baxcalibur||LoadedDice|ThermalExchange|SwordsDance,ScaleShot,IcicleSpear,Earthquake|Adamant|252,84,96,,,76|||||,,,,,Dragon]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,Earthquake,CloseCombat,KnockOff|Jolly|252,4,,,,252|||||,,,,,Ground]Tera Captain|Heatran|Leftovers|FlashFire|StealthRock,TeraBlast,EarthPower,WillOWisp|Calm|252,,,4,252,||,0,,,,|||,,,,,Bug]Tera Captain|Hydreigon|ChoiceScarf|Levitate|Uturn,FlashCannon,TeraBlast,EarthPower|Rash|128,32,,252,,96|||||,,,,,Electric]Ribombee||FocusSash|ShieldDust|StickyWeb,StunSpore,Moonblast,EnergyBall|Modest|144,,,252,,112||,0,,,,|||,,,,,Bug"], + ["Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,Thunderbolt,AuraSphere,ShadowBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Goodra-Hisui||Leftovers|ShellArmor|IceBeam,DracoMeteor,Thunderbolt,FireBlast|Modest|252,,,252,4,||,0,,,,|||,,,,,Steel]Tera Captain|Salamence|Leftovers|Moxie|DragonDance,FireFang,DragonClaw,DualWingbeat|Adamant|,252,,,4,252|||||,,,,,Steel]Arcanine-Hisui||ChoiceScarf|RockHead|ExtremeSpeed,FlareBlitz,HeadSmash,CloseCombat|Adamant|,252,,,96,160|||||,,,,,Fire]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,Thunderbolt,WillOWisp|Modest|252,,,252,4,||,0,,,,|||,,,,,Electric]Tera Captain|OricorioPomPom|Leftovers|Dancer|QuiverDance,RevelationDance,Roost,Taunt|Timid|96,,,252,,160||,0,,,,|||,,,,,Fire","Darkrai||ChoiceSpecs|BadDreams|IceBeam,DarkPulse,SludgeBomb,FocusBlast|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Enamorus||ChoiceScarf|Contrary|Moonblast,EarthPower,FocusBlast,HealingWish|Timid|4,,,252,,252||,0,,,,|||,,,,,Fairy]Scizor||Leftovers|Technician|BulletPunch,Defog,CloseCombat,Uturn|Adamant|252,252,,,4,|||||,,,,,Bug]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Protect,ToxicSpikes,StealthRock,Earthquake|Impish|252,,140,,116,|||||,,,,,Ghost]Tera Captain|Volcanion|AssaultVest|WaterAbsorb|SteamEruption,EarthPower,Flamethrower,SludgeWave|Modest|252,,,208,48,||,0,,,,|||,,,,,Ground]Meowstic||LightClay|Prankster|ThunderWave,Psychic,Reflect,LightScreen|Calm|248,,,8,252,||,0,,,,|||,,,,,Psychic"], + ["Tera Captain|Venusaur|CobaBerry|Chlorophyll|Growth,SludgeBomb,WeatherBall,SolarBeam|Modest|,,,252,4,252||,0,,,,|||,,,,,Fire]Torkoal||HeatRock|Drought|RapidSpin,StealthRock,Yawn,LavaPlume|Calm|248,,,8,252,|||||,,,,,Stellar]Hatterene||Leftovers|MagicBounce|Nuzzle,DrainingKiss,CalmMind,Psyshock|Bold|252,,252,,4,|||||,,,,,Stellar]Great Tusk||HeavyDutyBoots|Protosynthesis|IceSpinner,RapidSpin,CloseCombat,Earthquake|Jolly|,252,,,4,252|||||,,,,,Stellar]Tera Captain|ThundurusTherian|ChoiceSpecs|VoltAbsorb|Uturn,Thunderbolt,TeraBlast,GrassKnot|Timid|,,,252,4,252|||||,,,,,Flying]Volcanion||ChoiceScarf|WaterAbsorb|SteamEruption,Flamethrower,EarthPower,SludgeWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar","Great Tusk||Leftovers|Protosynthesis|Earthquake,KnockOff,StealthRock,RapidSpin|Impish|252,4,252,,,|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Uturn,KnockOff,StompingTantrum|Jolly|68,252,,,,188|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Hurricane,WeatherBall,RainDance,SludgeBomb|Modest|36,,,252,,220||,0,,,,|||,,,,,Flying]Tera Captain|Appletun|Leftovers|ThickFat|AppleAcid,Substitute,Recover,DragonPulse|Calm|252,,,4,252,||,0,,,,|||,,,,,Electric]Umbreon||ChopleBerry|Synchronize|DarkPulse,AlluringVoice,Moonlight,CalmMind|Calm|252,,4,,252,||,0,,,,|||,,,,,Dark]Lanturn||Leftovers|VoltAbsorb|Scald,IceBeam,FlipTurn,RainDance|Calm|252,,4,,252,|||||,,,,,Water"], + ["Corviknight||Leftovers|Pressure|IronDefense,BodyPress,BraveBird,Roost|Careful|252,4,,,252,|||||,,,,,Flying]Rotom-Heat||ChoiceScarf|Levitate|Trick,WillOWisp,Overheat,VoltSwitch|Bold|252,,252,,4,||,0,,,,|||,,,,,Electric]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,KnockOff,Substitute|Modest|12,,,252,,244|||||,,,,,Stellar]Garchomp||RockyHelmet|RoughSkin|Earthquake,StealthRock,DracoMeteor,Surf|Relaxed|252,,252,4,,|||||,,,,,Dragon]Tera Captain|IronThorns|BoosterEnergy|QuarkDrive|DragonDance,IcePunch,TeraBlast,Earthquake|Adamant|,252,,,4,252|||||,,,,,Fairy]Sylveon||BabiriBerry|Pixilate|HyperVoice,Wish,Protect,Yawn|Bold|228,,144,,136,||,0,,,,|||,,,,,Fairy","Iron Bundle||BoosterEnergy|QuarkDrive|FreezeDry,HydroPump,IceBeam,Encore|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice]Tera Captain|Sceptile|MirrorHerb|Unburden|Synthesis,TeraBlast,EnergyBall,DragonPulse|Modest|,,,252,4,252||,0,,,,|||,,,,,Water]Kingambit||AssaultVest|SupremeOverlord|SuckerPunch,KowtowCleave,IronHead,StoneEdge|Adamant|252,252,,,4,|||||,,,,,Dark]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,ZenHeadbutt,SwordsDance,Megahorn|Jolly|,252,,,4,252|||||,,,,,Rock]Tera Captain|LandorusTherian|HeavyDutyBoots|Intimidate|Earthquake,Uturn,StoneEdge,StealthRock|Jolly|,252,,,4,252|||||,,,,,Flying]Urshifu||HeavyDutyBoots|UnseenFist|CloseCombat,WickedBlow,SuckerPunch,Trailblaze|Jolly|,252,,,4,252|||||,,,,,Fighting"], + ["Iron Boulder||BoosterEnergy|QuarkDrive|Earthquake,SwordsDance,MightyCleave,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Rock]Tera Captain|SandyShocks|HeavyDutyBoots|Protosynthesis|EarthPower,StealthRock,VoltSwitch,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|HornLeech,KnockOff,IvyCudgel,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|ZoroarkHisui|ChoiceSpecs|Illusion|HyperVoice,Psychic,TeraBlast,ShadowBall|Timid|,,,252,4,252||,0,,,,|S||,,,,,Fairy]Weezing-Galar||BlackSludge|NeutralizingGas|WillOWisp,Defog,SludgeBomb,Taunt|Calm|252,,,4,252,||,0,,,,|S||,,,,,Poison]Eiscue||SitrusBerry|IceFace|IceSpinner,BellyDrum,Liquidation,ZenHeadbutt|Jolly|,252,,,4,252|||||,,,,,Ice","Tyranitar||SmoothRock|SandStream|StealthRock,KnockOff,BrickBreak,StoneEdge|Impish|240,24,244,,,|||||,,,,,Rock]Tera Captain|Excadrill|LumBerry|SandRush|SwordsDance,Earthquake,IronHead,TeraBlast|Jolly|32,252,,,32,192|||||,,,,,Fairy]Palafin||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,CloseCombat,Facade|Adamant|192,252,,,40,24|||||,,,,,Water]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,DragonClaw,MorningSun,HeatCrash|Adamant|,168,192,,,148|||||,,,,,Fire]Cyclizar||HeavyDutyBoots|Regenerator|DragonTail,ShedTail,KnockOff,RapidSpin|Jolly|240,,96,,4,168|||||,,,,,Dragon]Tera Captain|RotomMow|LightClay|Levitate|Reflect,LightScreen,VoltSwitch,FoulPlay|Timid|248,,,,8,252||,0,,,,|||,,,,,Electric"], + ["Kleavor||ChoiceScarf|Sharpness|Uturn,StoneAxe,Tailwind,XScissor|Jolly|84,252,,,,172|||||,,,,,Bug]Entei||ChoiceBand|InnerFocus|ExtremeSpeed,IronHead,StompingTantrum,SacredFire|Jolly|48,252,,,,208|||||,,,,,Fire]Landorus-Therian||Leftovers|Intimidate|Uturn,SmackDown,Earthquake,Fly|Impish|252,4,252,,,|||||,,,,,Ground]Tera Captain|Gengar|ChoiceScarf|CursedBody|ShadowBall,SludgeBomb,DazzlingGleam,Thunderbolt|Timid|16,,,252,,240||,0,,,,|||,,,,,Ghost]Kingambit||AssaultVest|SupremeOverlord|KowtowCleave,SuckerPunch,IronHead,LowKick|Careful|252,4,,,252,|||||,,,,,Dark]Urshifu-Rapid-Strike||ChoiceBand|UnseenFist|SurgingStrikes,CloseCombat,Uturn,AquaJet|Jolly|,252,,,4,252|||||,,,,,Fighting","Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,Encore,Uturn|Modest|,,80,252,,176|||||,,,,,Ice]Slowking-Galar||AssaultVest|Regenerator|AcidSpray,Psychic,ShadowBall,FocusBlast|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison]Infernape||HeavyDutyBoots|Blaze|FireBlast,FocusBlast,Uturn,WillOWisp|Timid|,,172,172,,164|||||,,,,,Fire]Corviknight||RockyHelmet|Pressure|Defog,Roost,BodyPress,Uturn|Bold|248,,140,,,120|||||,,,,,Flying]Tera Captain|Torterra|Leftovers|ShellArmor|StealthRock,LeafStorm,TeraBlast,Synthesis|Bold|248,,252,,8,||,0,,,,|||,,,,,Bug]Tera Captain|Hydreigon|ChopleBerry|Levitate|DracoMeteor,FocusBlast,DarkPulse,Roar|Modest|24,,,232,252,||,0,,,,|||,,,,,Steel"], + ["Great Tusk||HeavyDutyBoots|Protosynthesis|CloseCombat,HeadlongRush,KnockOff,RapidSpin|Jolly|24,252,,,,232|||||,,,,,Ground]Greninja-Bond||LifeOrb|BattleBond|DarkPulse,GrassKnot,IceBeam,Surf|Timid|8,,,252,,248|||||,,,,,Water]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|DragonPulse,TeraBlast,Thunderclap,CalmMind|Modest|236,,,252,,20||,20,,,,|||,,,,,Water]Uxie||SitrusBerry|Levitate|Uturn,Psychic,Encore,StealthRock|Bold|248,,252,,8,|||||,,,,,Psychic]Brambleghast||SpellTag|WindRider|Poltergeist,PowerWhip,RapidSpin,ShadowSneak|Adamant|,252,4,,,252|||||,,,,,Grass]Tera Captain|Delphox|BabiriBerry|Magician|DazzlingGleam,Flamethrower,GrassKnot,NastyPlot|Timid|32,,,252,,224||,0,,,,|S||,,,,,Fairy","Ting-Lu||Leftovers|VesselofRuin|Earthquake,ThroatChop,SandTomb,Protect|Careful|252,,4,,252,|||||,,,,,Dark]Baxcalibur||LumBerry|ThermalExchange|IcicleCrash,GlaiveRush,HighHorsepower,DragonDance|Adamant|88,252,,,,168|||||,,,,,Dragon]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Modest|160,,4,252,,92|||||,,,,,Flying]Typhlosion||ChoiceSpecs|FlashFire|Eruption,Flamethrower,ScorchingSands,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|MakeItRain,DazzlingGleam,ShadowBall,Trick|Modest|64,,,252,,192||,0,,,,|||,,,,,Fairy]Tera Captain|Tsareena|HeavyDutyBoots|QueenlyMajesty|PetalBlizzard,KnockOff,RapidSpin,Uturn|Impish|252,,252,,4,|||||,,,,,Fire"], + ["Tera Captain|Amoonguss|BlackSludge|EffectSpore|GigaDrain,Spore,SludgeBomb,FoulPlay|Modest|,,252,4,252,||,0,,,,|||,,,,,Steel]Tornadus||LifeOrb|Prankster|Psychic,BleakwindStorm,NastyPlot,Uturn|Timid|100,,,156,,252|||||,,,,,Flying]Overqwil||ShucaBerry|Intimidate|AquaJet,DestinyBond,PoisonJab,Spikes|Jolly|,56,,,200,252|||||,,,,,Dark]Raikou||Leftovers|InnerFocus|CalmMind,Scald,Substitute,Thunderbolt|Bold|252,,56,100,,100||,0,,,,|||,,,,,Electric]Tera Captain|Archaludon|AssaultVest|Stamina|BodyPress,ElectroShot,DracoMeteor,FlashCannon|Calm|200,,,56,252,||,0,,,,|||,,,,,Flying]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,SwordsDance,Protect|Jolly|,252,4,,,252|||||,,,,,Water","Palafin||ChoiceSpecs|ZerotoHero|Boomburst,JetPunch,CloseCombat,ZenHeadbutt|Mild|,16,,252,,240|||||,,,,,Water]Meowscarada||HeavyDutyBoots|Protean|FlowerTrick,KnockOff,AuraSphere,Uturn|Naive|,252,,64,,192|||||,,,,,Grass]Garchomp||HabanBerry|RoughSkin|Earthquake,ScaleShot,SwordsDance,Spikes|Jolly|,252,,,16,240|||||,,,,,Dragon]Tera Captain|Pecharunt|HeavyDutyBoots|PoisonPuppeteer|Recover,MalignantChain,ShadowBall,PartingShot|Bold|248,,,88,160,12||,0,,,,|||,,,,,Grass]Tera Captain|Heatran|Leftovers|FlashFire|StealthRock,MagmaStorm,EarthPower,RockSlide|Modest|168,,,252,4,84|||||,,,,,Electric]Altaria||SafetyGoggles|NaturalCure|Roost,Defog,WillOWisp,BraveBird|Impish|248,,252,,8,|||||,,,,,Dragon"], + ["Greninja-Bond||LifeOrb|BattleBond|Surf,DarkPulse,HydroPump,IceBeam|Timid|,,,252,4,252|||||,,,,,Water]Urshifu||ChoiceScarf|UnseenFist|Uturn,CloseCombat,WickedBlow,IronHead|Adamant|,252,,,4,252|||||,,,,,Fighting]Slowking-Galar||SitrusBerry|Regenerator|ToxicSpikes,SludgeBomb,SlackOff,ChillyReception|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Tera Captain|Hydrapple|AssaultVest|Regenerator|DracoMeteor,Infestation,LeafStorm,DragonPulse|Modest|248,,252,8,,||,0,,,,|||,,,,,Dragon]Tera Captain|Palossand|PasshoBerry|WaterCompaction|StealthRock,EarthPower,ShadowBall,ShoreUp|Calm|252,,,4,252,||,0,,,,|||,,,,,Ghost]Carbink||AssaultVest|ClearBody|Moonblast,PowerGem,MistyExplosion,EarthPower|Modest|248,,,252,8,||,0,,,,|||,,,,,Rock","Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,FlipTurn,Flamethrower,DracoMeteor|Timid|72,,,252,,184|||||,,,,,Water]Torkoal||HeatRock|Drought|RapidSpin,SolarBeam,LavaPlume,StealthRock|Modest|252,,4,252,,|||||,,,,,Fire]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|Spikes,IvyCudgel,KnockOff,Synthesis|Careful|96,,,,252,160|||||,,,,,Fire]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,RapidSpin,KnockOff,Taunt|Jolly|252,,,,168,88|||||,,,,,Dragon]Enamorus-Therian||RockyHelmet|Overcoat|Rest,HealingWish,EarthPower,Moonblast|Modest|,,252,252,4,||,0,,,,|||,,,,,Fairy]Darkrai||Leftovers|BadDreams|NastyPlot,Hypnosis,DarkPulse,FocusBlast|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark"], + ["Meowscarada||HeavyDutyBoots|Protean|KnockOff,FlowerTrick,PowerGem,Spikes|Naughty|,208,,92,,208|||||,,,,,Grass]Gengar||ChoiceSpecs|CursedBody|ShadowBall,SludgeBomb,Thunderbolt,DazzlingGleam|Timid|64,,,252,,192||,0,,,,|||,,,,,Ghost]Landorus-Therian||Leftovers|Intimidate|BulkUp,Earthquake,RockSlide,Uturn|Impish|248,24,212,,,24|||||,,,,,Ground]Tera Captain|Quaquaval|ProtectivePads|Moxie|AquaStep,CloseCombat,BraveBird,RapidSpin|Adamant|,248,124,,,136|||||,,,,,Fighting]Heatran||Leftovers|FlashFire|StealthRock,MagmaStorm,EarthPower,WillOWisp|Modest|248,,156,104,,||,0,,,,|||,,,,,Fire]Bellibolt||RockyHelmet|Static|VoltSwitch,Toxic,SlackOff,Thunderbolt|Modest|248,,208,52,,||,0,,,,|||,,,,,Electric","Sandslash-Alola||HeavyDutyBoots|SlushRush|IcicleCrash,IceShard,IronHead,RapidSpin|Adamant|252,252,,,4,|||||,,,,,Ice]Slowking-Galar||BlackSludge|Regenerator|ChillyReception,IceBeam,Psyshock,ThunderWave|Modest|252,,,252,4,||,0,,,,|||,,,,,Poison]Tera Captain|Annihilape|AssaultVest|Defiant|DrainPunch,RageFist,TeraBlast,IcePunch|Adamant|248,252,,,,8|||||,,,,,Steel]Garchomp||LoadedDice|RoughSkin|ScaleShot,IronHead,Earthquake,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dragon]Meowscarada||ChoiceScarf|Overgrow|Uturn,KnockOff,FlowerTrick,LowKick|Jolly|,252,,,4,252|||||,,,,,Grass]Vaporeon||Leftovers|WaterAbsorb|Scald,Protect,Wish,IceBeam|Bold|248,,252,8,,||,0,,,,|||,,,,,Water"], + ["Tera Captain|Serperior|AssaultVest|Contrary|LeafStorm,TeraBlast,DragonPulse,GigaDrain|Timid|24,,,252,,232||,0,,,,|||,,,,,Psychic]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,DarkPulse,Flamethrower,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Corviknight||Leftovers|MirrorArmor|Roost,Defog,Uturn,BraveBird|Impish|252,4,252,,,|||||,,,,,Flying]Tera Captain|Raichu|RockyHelmet|Static|Discharge,GrassKnot,Encore,Wish|Timid|76,,,252,4,176||,0,,,,|||,,,,,Electric]Spidops||HeavyDutyBoots|Stakeout|StickyWeb,CircleThrow,Uturn,ToxicSpikes||252,,,,252,4|||||,,,,,Bug]Quaquaval||ChoiceBand|Moxie|AquaStep,AquaJet,CloseCombat,FlipTurn|Adamant|120,252,,,,136|||||,,,,,Water","Tera Captain|Latias|SoulDew|Levitate|CalmMind,Recover,Psyshock,Surf|Bold|252,,252,4,,||,0,,,,|||,,,,,Fire]Clefable||Leftovers|MagicGuard|KnockOff,Psychic,ThunderWave,Moonlight|Sassy|252,4,,,252,|||||,,,,,Fairy]Torkoal||EjectButton|Drought|Flamethrower,EarthPower,StealthRock,RapidSpin|Modest|248,,,252,8,|||||,,,,,Fire]Tera Captain|Victreebel|LifeOrb|Chlorophyll|Growth,WeatherBall,LeafBlade,PoisonJab|Lonely|,252,,4,,252|||||,,,,,Fire]Jirachi||PowerHerb|SereneGrace|Substitute,MeteorBeam,Thunderbolt,Psyshock|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Sableye|||Prankster|FocusPunch,Taunt,Thief,KnockOff|Careful|124,132,,,252,|||||,,,,,Dark"], + ["Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,SludgeWave,RockSlide,Gravity|Timid|88,,,252,,168|||||,,,,,Water]Pecharunt||ColburBerry|PoisonPuppeteer|ShadowBall,Recover,MalignantChain,NastyPlot|Modest|224,,,252,,32||,0,,,,|||,,,,,Poison]Heatran||ChoiceScarf|FlashFire|Overheat,SteelBeam,AncientPower,EarthPower|Timid|80,,,252,,176||,0,,,,|||,,,,,Fire]Weavile||FocusSash|Pressure|IcicleSpear,KnockOff,BrickBreak,IceShard|Jolly|,252,,,4,252|||||,,,,,Dark]Tentacruel||ChoiceSpecs|ClearBody|FlipTurn,RapidSpin,IceBeam,HydroPump|Timid|80,,,252,,176|||||,,,,,Water]Latios||WeaknessPolicy|Levitate|Agility,AuraSphere,LusterPurge,Recover|Bold|252,,252,4,,||,0,,,,|||,,,,,Dragon","Weavile||HeavyDutyBoots|Pressure|BrickBreak,KnockOff,IceShard,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dark]Iron Treads||Leftovers|QuarkDrive|IceSpinner,RapidSpin,Earthquake,VoltSwitch|Jolly|252,40,,,,216|||||,,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|AuraSphere,Agility,DragonPulse,CalmMind|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Moltres||ChoiceScarf|FlameBody|ScorchingSands,Flamethrower,Uturn,BraveBird|Rash|,96,,252,,160|||||,,,,,Fire]Clefable||Leftovers|MagicGuard|CosmicPower,StoredPower,Moonlight,Moonblast|Bold|252,,152,,104,||,0,,,,|||,,,,,Fairy]Empoleon||Leftovers|Torrent|StealthRock,FlipTurn,Roost,KnockOff|Careful|252,4,,,252,|||||,,,,,Water"], + ["Gliscor||ToxicOrb|PoisonHeal|Earthquake,KnockOff,StealthRock,Protect|Impish|252,,252,,,|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,FocusBlast,CalmMind,Encore|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Scizor||ChoiceBand|Technician|BulletPunch,Uturn,CloseCombat,KnockOff|Adamant|248,252,,,8,|||||,,,,,Bug]Tera Captain|Porygon2|Eviolite|Download|Recover,TriAttack,IceBeam,Discharge|Calm|252,,,4,252,||,0,,,,|||,,,,,Dragon]Rotom-Wash||ChoiceScarf|Levitate|VoltSwitch,Thunderbolt,Trick,HydroPump|Modest|,,4,252,,252||,0,,,,|||,,,,,Electric]Kommo-o||ThroatSpray|Bulletproof|ClangorousSoul,Boomburst,ClangingScales,Flamethrower|Timid|,,,252,4,252|||||,,,,,Normal","Gurdurr||Eviolite|Guts|DrainPunch,IcePunch,FirePunch,KnockOff|Adamant|248,252,8,,,|||||,,,,,Fighting]Tera Captain|IronMoth|ChoiceSpecs|QuarkDrive|FieryDance,SludgeWave,EnergyBall,Overheat|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Rotom-Wash||RockyHelmet|Levitate|VoltSwitch,HydroPump,Rest,SleepTalk|Bold|248,,252,,8,||,0,,,,|||,,,,,Electric]Jirachi||WeaknessPolicy|SereneGrace|StoredPower,CosmicPower,Wish,Protect|Timid|248,,,,44,216||,0,,,,|||,,,,,Steel]Tera Captain|Lapras|Leftovers|WaterAbsorb|Whirlpool,PerishSong,Protect,LifeDew|Calm|248,,8,,252,||,0,,,,|||,,,,,Ground]Darkrai||ChoiceScarf|BadDreams|DarkPulse,IceBeam,SludgeBomb,Trick|Timid|72,,,252,,184||,0,,,,|||,,,,,Dark"], + ["Great Tusk||BoosterEnergy|Protosynthesis|Earthquake,CloseCombat,IceSpinner,RapidSpin|Adamant|76,252,,,,180|||||,,,,,Ground]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,PlayRough,ThunderWave,Encore|Impish|248,20,188,,52,|||||,,,,,Fairy]Qwilfish||RockyHelmet|Intimidate|BarbBarrage,FlipTurn,ThunderWave,Spikes|Impish|248,8,196,,56,|||||,,,,,Water]Uxie||RedCard|Levitate|Psychic,StealthRock,Uturn,KnockOff|Calm|248,,124,,136,|||||,,,,,Psychic]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|CalmMind,Thunderclap,DragonPulse,Thunderbolt|Modest|248,,,252,,8||,20,,,,|||,,,,,Dark]Greninja-Bond||LifeOrb|BattleBond|Surf,SludgeWave,DarkPulse,WaterShuriken|Timid|16,,,252,,240|||||,,,,,Water","Iron Boulder||ExpertBelt|QuarkDrive|Megahorn,Earthquake,ZenHeadbutt,SacredSword|Jolly|16,252,,,,240|||||,,,,,Stellar]Sneasler||AirBalloon|Unburden|Acrobatics,CloseCombat,XScissor,SwordsDance|Adamant|12,252,16,,16,212|||||,,,,,Stellar]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,FireBlast,DarkPulse|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar]Tera Captain|Espathra|Leftovers|SpeedBoost|StoredPower,DazzlingGleam,CalmMind,Substitute|Bold|32,,164,236,52,24||,0,,,,|||,,,,,Fairy]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,VoltSwitch,Thunderbolt,Trick|Modest|16,,32,252,32,176||,0,,,,|||,,,,,Stellar]Pincurchin||TerrainExtender|ElectricSurge|Scald,Spikes,Discharge,Memento|Relaxed|252,,252,,4,||,0,,,,|||,,,,,Stellar"], + ["Uxie||HeavyDutyBoots|Levitate|StealthRock,Psychic,Uturn,KnockOff|Timid|252,,40,,,216|||||,,,,,Dark]Noivern||HeavyDutyBoots|Infiltrator|DracoMeteor,Flamethrower,Uturn,Roost|Timid|,,,252,4,252|||||,,,,,Flying]Tera Captain|Rhyperior|RockyHelmet|LightningRod|StoneEdge,Earthquake,FirePunch,StealthRock|Adamant|252,252,,,4,|||||,,,,,Flying]Azumarill||AssaultVest|HugePower|PlayRough,AquaJet,Liquidation,KnockOff|Adamant|248,252,,,8,|||||,,,,,Water]Tera Captain|Serperior|Leftovers|Contrary|Glare,Substitute,LeechSeed,LeafStorm|Timid|248,,,8,,252||,0,,,,|||,,,,,Grass]Grafaiai||LifeOrb|Prankster|GunkShot,KnockOff,SwordsDance,Encore|Jolly|,252,,,4,252|||||,,,,,Poison","Darkrai||LifeOrb|BadDreams|NastyPlot,DarkPulse,IceBeam,SludgeBomb|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar]Slowking-Galar||HeavyDutyBoots|Regenerator|FutureSight,ChillyReception,SludgeBomb,SlackOff|Sassy|252,,16,,240,||,0,,,,0|||,,,,,Stellar]Dragonite||HeavyDutyBoots|Multiscale|DragonDance,ExtremeSpeed,DragonClaw,Roost|Adamant|144,252,,,,112|||||,,,,,Stellar]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,CloseCombat,AquaJet,Uturn|Adamant|,252,,,4,252|||||,,,,,Water]Sandy Shocks||BoosterEnergy|Protosynthesis|StealthRock,Thunderbolt,EarthPower,Spikes|Timid|48,,,208,,252||,0,,,,|||,,,,,Stellar]Forretress||RedCard|Sturdy|GyroBall,RapidSpin,ThunderWave,VoltSwitch|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Stellar"], + ["Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,FlareBlitz,DragonClaw,MorningSun|Adamant|32,252,,,,224|||||,,,,,Fire]Decidueye||ColburBerry|Overgrow|Defog,GigaDrain,Uturn,Roost|Bold|252,,252,4,,|||||,,,,,Grass]Magnezone||AssaultVest|Analytic|FlashCannon,Thunderbolt,VoltSwitch,Discharge|Modest|248,,,252,8,||,0,,,,|||,,,,,Electric]Tera Captain|Landorus|LifeOrb|SheerForce|Psychic,CalmMind,RockSlide,EarthPower|Timid|,4,,252,,252|||||,,,,,Psychic]Hitmontop||LifeOrb|Technician|TripleAxel,CloseCombat,MachPunch,Bulldoze|Adamant|12,252,,,,244|||||,,,,,Fighting]Tera Captain|Bisharp|Eviolite|Defiant|Taunt,IronHead,ThroatChop,StealthRock|Adamant|252,252,,,4,|||||,,,,,Flying","Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,Substitute,Protect|Jolly|252,,,,32,224|||||,,,,,Ghost]Greninja||ChoiceScarf|Protean|ToxicSpikes,Liquidation,Uturn,Switcheroo|Jolly|8,252,,,,248|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|KnockOff,FoulPlay,IcyWind,Uturn|Jolly|252,,88,,,168|||||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Ruination,Whirlwind,ThroatChop|Careful|252,,4,,252,|||||,,,,,Dark]Tera Captain|Comfey|Leftovers|Triage|CalmMind,DrainingKiss,Substitute,Encore|Modest|188,,,252,,68||,0,,,,|||,,,,,Fairy]Scizor||ChoiceScarf|Technician|Uturn,BulletPunch,CloseCombat,KnockOff|Jolly|,252,,,4,252|||||,,,,,Bug"], + ["Rotom-Heat||ChoiceScarf|Levitate|NastyPlot,VoltSwitch,Overheat,Trick|Modest|252,,56,24,,176||,0,,,,|||,,,,,Electric]Ogerpon-Cornerstone||CornerstoneMask|Sturdy|Spikes,HornLeech,IvyCudgel,PowerWhip|Adamant|196,252,,,,60|||||,,,,,Rock]Ribombee||ChoiceSpecs|ShieldDust|SunnyDay,Uturn,Moonblast,Switcheroo|Hasty|16,,,252,,240|||||,,,,,Bug]Terapagos||WeaknessPolicy|TeraShift|StoredPower,RapidSpin,TeraStarstorm,CalmMind|Modest|,,248,252,,8|||||,,,,,Stellar]Tera Captain|RagingBolt|DracoPlate|Protosynthesis|Thunderclap,CalmMind,Thunderbolt,DracoMeteor|Modest|252,,,252,4,||,20,,,,|||,,,,,Poison]Slowking||HeavyDutyBoots|Regenerator|Flamethrower,FocusBlast,TrickRoom,Psyshock|Quiet|252,,,252,4,||,0,,,,0|||,,,,,Water","Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,Substitute,Protect|Jolly|252,,,,32,224|||||,,,,,Ghost]Greninja||ChoiceScarf|Protean|ToxicSpikes,Liquidation,Uturn,Switcheroo|Jolly|8,252,,,,248|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|KnockOff,FoulPlay,IcyWind,Uturn|Jolly|252,,88,,,168|||||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Ruination,Whirlwind,ThroatChop|Careful|252,,4,,252,|||||,,,,,Dark]Tera Captain|Comfey|Leftovers|Triage|CalmMind,DrainingKiss,Substitute,Encore|Modest|188,,,252,,68||,0,,,,|||,,,,,Fairy]Scizor||ChoiceScarf|Technician|Uturn,BulletPunch,CloseCombat,KnockOff|Jolly|,252,,,4,252|||||,,,,,Bug"], + ["Tera Captain|UrshifuRapidStrike|MentalHerb|UnseenFist|SwordsDance,SurgingStrikes,CloseCombat,AquaJet|Adamant|248,252,8,,,|||||,,,,,Dragon]Darkrai||AssaultVest|BadDreams|FocusBlast,DarkPulse,SludgeBomb,IceBeam|Timid|120,,,252,,136||,0,,,,|||,,,,,Dark]Slowking-Galar||ColburBerry|Regenerator|ChillyReception,SludgeBomb,FireBlast,HydroPump|Calm|248,,8,,252,||,0,,,,|||,,,,,Poison]Zapdos||HeavyDutyBoots|Static|Hurricane,VoltSwitch,Thunderbolt,Roost|Modest|248,,8,252,,||,0,,,,|||,,,,,Electric]Donphan||Leftovers|Sturdy|BodyPress,Earthquake,StealthRock,KnockOff|Adamant|248,252,8,,,|||||,,,,,Ground]Glaceon||ChoiceSpecs|IceBody|Blizzard,FreezeDry,AlluringVoice,WaterPulse|Modest|224,,,252,4,28||,0,,,,|||,,,,,Ice","Hippowdon||EjectButton|SandStream|SlackOff,Earthquake,StealthRock,BodyPress|Careful|252,,4,,252,|||||,,,,,Ground]Iron Boulder||BoosterEnergy|QuarkDrive|Substitute,SwordsDance,CloseCombat,MightyCleave|Jolly|152,252,,,,104|||||,,,,,Rock]Alomomola||RockyHelmet|Regenerator|Wish,Protect,BodySlam,FlipTurn|Impish|252,,252,,,|||||,,,,,Water]Corviknight||HeavyDutyBoots|Pressure|Roost,Uturn,Defog,BraveBird|Impish|252,,252,,,|||||,,,,,Flying]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,KnockOff,SwordsDance|Jolly|80,220,,,,208|||||,,,,,Water]Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Overheat,Psychic,Flamethrower|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark"], + ["Iron Valiant||LifeOrb|QuarkDrive|AuraSphere,EnergyBall,KnockOff,VacuumWave|Naive|16,8,24,252,,208|||||,,,,,Fighting]Feraligatr||LifeOrb|SheerForce|Liquidation,IcePunch,PsychicFangs,DragonDance|Jolly|64,252,28,,,164|||||,,,,,Water]Iron Treads||RockyHelmet|QuarkDrive|HighHorsepower,IceSpinner,RapidSpin,StealthRock|Jolly|72,252,,,,184|||||,,,,,Steel]Rotom-Heat||LightClay|Levitate|VoltSwitch,Reflect,LightScreen,WillOWisp|Bold|248,,252,,,8||,0,,,,|||,,,,,Electric]Tera Captain|MoltresGalar|SitrusBerry|Berserk|FieryWrath,AirSlash,NastyPlot,Agility|Modest|152,,,252,,104||,0,,,,|||,,,,,Steel]Tera Captain|Mew|LifeOrb|Synchronize|Psychic,EarthPower,VacuumWave,NastyPlot|Timid|24,,,252,,232||,0,,,,|||,,,,,Fighting","Weavile||AssaultVest|Pickpocket|IceShard,LowKick,TripleAxel,KnockOff|Jolly|32,252,,,40,184|||||,,,,,Dark]Tera Captain|Armarouge|SafetyGoggles|WeakArmor|ArmorCannon,Psyshock,Endure,CalmMind|Modest|160,,,252,4,92||,0,,,,|S||,,,,,Electric]Rillaboom||ChoiceBand|GrassySurge|GrassyGlide,Uturn,KnockOff,DrainPunch|Adamant|240,252,,,4,12|||||,,,,,Grass]Donphan||LumBerry|Sturdy|StealthRock,RapidSpin,HeadSmash,HighHorsepower|Adamant|236,252,,,4,16|||||,,,,,Ground]Slowking-Galar||ColburBerry|Regenerator|Toxic,ChillyReception,LightScreen,Psychic|Calm|252,,172,,72,12||,0,,,,|||,,,,,Poison]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|Uturn,CloseCombat,SurgingStrikes,IcePunch|Adamant|16,252,,,,240|||||,,,,,Ice"], + ["Slowking-Galar||ColburBerry|CuriousMedicine|ChillyReception,FutureSight,Flamethrower,ThunderWave|Calm|248,,8,,252,||,0,,,,|||,,,,,Grass]Tera Captain|Annihilape|Leftovers|Defiant|RageFist,Taunt,DrainPunch,BulkUp|Careful|236,8,216,,48,|||||,,,,,Fairy]Roaring Moon||RoseliBerry|Protosynthesis|IronHead,KnockOff,Uturn,Earthquake|Jolly|72,252,,,,184|||||,,,,,Dragon]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,PlayRough,Encore,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|Dudunsparce|Leftovers|Rattled|Roost,Boomburst,CalmMind,Agility|Modest|252,,,88,,168||,0,,,,|||,,,,,Normal]Gligar||Eviolite|Immunity|Earthquake,KnockOff,Uturn,StealthRock|Careful|248,,,,252,8|||||,,,,,Ground","Tera Captain|Manaphy|Leftovers|Hydration|AcidArmor,TakeHeart,Scald,TeraBlast|Bold|252,,196,,60,||,0,,,,|||,,,,,Poison]Tornadus-Therian||ChoiceSpecs|Regenerator|BleakwindStorm,HeatWave,Uturn,HammerArm|Hasty|,4,,252,,252|||||,,,,,Flying]Raging Bolt||ChoiceScarf|Protosynthesis|DragonPulse,VoltSwitch,DracoMeteor,Thunderbolt|Modest|,,,252,,252||,20,,,,|||,,,,,Electric]Weezing-Galar||RockyHelmet|Levitate|StrangeSteam,WillOWisp,PainSplit,Taunt|Bold|252,,180,,,76||,0,,,,|||,,,,,Poison]Donphan||AssaultVest|Sturdy|IceSpinner,KnockOff,Earthquake,SmackDown|Adamant|,252,,,,252|||||,,,,,Ground]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|Trailblaze,PlayRough,SwordsDance,IvyCudgel|Jolly|,252,,,4,252|||||,,,,,Fire"], + ["Meowscarada||ChoiceScarf|Protean|FlowerTrick,PlayRough,Uturn,Trick|Jolly|,252,,,4,252|||||,,,,,Grass]Palafin-Hero||LumBerry|ZerotoHero|Substitute,JetPunch,DrainPunch,BulkUp|Adamant|,252,,,4,252|||||,,,,,Water]Scream Tail||LumBerry|Protosynthesis|StealthRock,DazzlingGleam,PsychicNoise,ThunderWave|Timid|4,,,,252,252||,0,,,,|||,,,,,Fairy]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderbolt,Thunderclap,VoltSwitch,DracoMeteor|Modest|240,,,252,,16||,20,,,,|||,,,,,Poison]Rotom-Frost||HeavyDutyBoots|Levitate|Substitute,Blizzard,Thunderbolt,PainSplit|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Tera Captain|Revavroom|Leftovers|Filter|ToxicSpikes,IronHead,HighHorsepower,PartingShot|Careful|252,,,,212,44|||||,,,,,Steel","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Encore,Synthesis|Jolly|64,252,,,16,176|||||,,,,,Water]Darkrai||LifeOrb|BadDreams|DarkPulse,SludgeBomb,WillOWisp,Hypnosis|Timid|32,,,236,,240||,0,,,,|||,,,,,Dark]Iron Valiant||LifeOrb|QuarkDrive|Moonblast,CloseCombat,Psychic,VacuumWave|Naive|,40,,252,,216|||||,,,,,Fairy]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,Flamethrower,RapidSpin,CalmMind|Modest|64,,,252,,192|||||,,,,,Stellar]Uxie||Leftovers|Levitate|KnockOff,Uturn,PainSplit,Encore|Calm|248,,8,,228,24|||||,,,,,Psychic]Muk||BlackSludge|StickyHold|PoisonJab,KnockOff,ToxicSpikes,PainSplit|Impish|248,,252,,8,|||||,,,,,Poison"], + ["Slowking-Galar||BlackSludge|Regenerator|SludgeBomb,FutureSight,SlackOff,ChillyReception|Calm|248,,8,,252,||,0,,,,|||,,,,,Poison]Slither Wing||RockyHelmet|Protosynthesis|CloseCombat,Uturn,WillOWisp,MorningSun|Impish|248,,252,,8,|||||,,,,,Bug]Tera Captain|Ogerpon|ProtectivePads|Defiant|IvyCudgel,KnockOff,Encore,Uturn|Jolly|80,252,,,,176|||||,,,,,Grass]Hydreigon||YacheBerry|Levitate|DracoMeteor,EarthPower,StealthRock,Taunt|Timid|40,,,252,,216||,0,,,,|||,,,,,Dark]Forretress||HeavyDutyBoots|Sturdy|BodyPress,VoltSwitch,PainSplit,RapidSpin|Relaxed|248,,252,,8,|||||,,,,,Bug]Baxcalibur||LoadedDice|IceBody|ScaleShot,IcicleSpear,Earthquake,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dragon","Iron Bundle||BoosterEnergy|QuarkDrive|HydroPump,IceBeam,Encore,Protect|Modest|248,,,252,8,||,0,,,,|||,,,,,Ice]Overqwil||ShucaBerry|Intimidate|Crunch,PainSplit,Protect,PoisonJab|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|HighHorsepower,PlayRough,BulkUp,RapidSpin|Jolly|252,,,,4,252|||||,,,,,Fairy]Zapdos||RockyHelmet|Static|Uturn,ThunderWave,AncientPower,Discharge|Timid|252,,104,,,152|||||,,,,,Electric]Empoleon||AirBalloon|Torrent|FlashCannon,IceBeam,HydroPump,FlipTurn|Modest|252,,,252,4,|||||,,,,,Water]Tera Captain|Oricorio|MirrorHerb|Dancer|QuiverDance,Roost,RevelationDance,AirSlash|Timid|252,,184,,,72||,0,,,,|||,,,,,Steel"], + ["Archaludon||AssaultVest|Stamina|ElectroShot,FlashCannon,DragonPulse,BodyPress|Modest|56,,20,136,144,152||,0,,,,|||,,,,,Steel]Basculegion||WacanBerry|SwiftSwim|PhantomForce,FlipTurn,Liquidation,Crunch|Adamant|8,208,,,60,232|||||,,,,,Water]Vikavolt||OccaBerry|Levitate|StickyWeb,VoltSwitch,BugBuzz,ThunderWave|Modest|96,,20,252,140,||,0,,,,|||,,,,,Bug]Qwilfish-Hisui||Eviolite|SwiftSwim|BarbBarrage,PainSplit,Liquidation,ToxicSpikes|Jolly|128,60,32,,224,64|||||,,,,,Dark]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderclap,VoltSwitch,DracoMeteor,TeraBlast|Timid|32,,12,252,68,144||,20,,,,|||,,,,,Fairy]Pelipper||DampRock|Drizzle|Roost,Uturn,AirSlash,WeatherBall|Timid|168,,,96,100,144|||||,,,,,Water","Samurott-Hisui||WeaknessPolicy|Sharpness|CeaselessEdge,RazorShell,SacredSword,SuckerPunch|Jolly|8,248,,,,252|||||,,,,,Water]Brambleghast||HeavyDutyBoots|WindRider|LeechSeed,StrengthSap,RapidSpin,Poltergeist|Careful|236,24,,,248,|||||,,,,,Grass]Tera Captain|Jirachi|WeaknessPolicy|SereneGrace|IronDefense,Wish,CalmMind,StoredPower|Bold|252,,220,,,36||,0,,,,|||,,,,,Grass]Tornadus-Therian||WacanBerry|Regenerator|GrassKnot,Hurricane,Uturn,FocusBlast|Modest|120,,12,252,,124|||||,,,,,Flying]Tera Captain|SandyShocks|Leftovers|Protosynthesis|Substitute,Thunderbolt,TeraBlast,EarthPower|Timid|84,,,252,,172||,0,,,,|||,,,,,Water]Iron Valiant||BoosterEnergy|QuarkDrive|DestinyBond,SwordsDance,SpiritBreak,CloseCombat|Jolly|16,252,,,,240|||||,,,,,Fairy"], + ["Tera Captain|Armarouge|LightClay|FlashFire|Reflect,LightScreen,Psychic,AuraSphere|Modest|248,,56,132,16,56||,0,,,,|||,,,,,Fighting]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,SpiritBreak,CloseCombat,ZenHeadbutt|Jolly|,212,,,44,252|||||,,,,,Fairy]Tera Captain|Salamence|LumBerry|Intimidate|DragonDance,DualWingbeat,Earthquake,Roost|Jolly|48,252,36,,36,136|||||,,,,,Fairy]Glimmora||RedCard|ToxicDebris|Memento,Endure,EarthPower,SludgeWave|Modest|248,,16,200,8,36||,0,,,,|||,,,,,Rock]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,FocusBlast,DazzlingGleam|Modest|96,,,252,,160||,0,,,,|||,,,,,Steel]Brute Bonnet||BoosterEnergy|Protosynthesis|SeedBomb,Crunch,CloseCombat,SuckerPunch|Adamant|40,248,,,,220|||||,,,,,Grass","Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,ShadowBall,Psychic,CalmMind|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Garchomp||SitrusBerry|RoughSkin|Earthquake,ScaleShot,SwordsDance,Spikes|Adamant|,16,,,252,240|||||,,,,,Dragon]Empoleon||ShucaBerry|Torrent|Surf,KnockOff,Yawn,Roost|Sassy|248,,212,,48,|||||,,,,,Water]Tera Captain|Ceruledge|ChoiceScarf|FlashFire|Poltergeist,TeraBlast,ShadowSneak,DestinyBond|Adamant|,252,,,4,252|||||,,,,,Ghost]Weezing-Galar||EjectPack|Levitate|ClearSmog,Overheat,WillOWisp,PainSplit|Bold|248,,252,4,4,||,0,,,,|||,,,,,Poison]Tsareena||BigNugget|LeafGuard|PowerWhip,KnockOff,Fling,RapidSpin|Adamant|40,216,,,,252|||||,,,,,Grass"], + ["Meowscarada||ChoiceScarf|Overgrow|FlowerTrick,KnockOff,Uturn,FoulPlay|Adamant|144,252,,,,112|||||,,,,,Grass]Tera Captain|Latias|Leftovers|Levitate|DragonPulse,Thunderbolt,CalmMind,Recover|Timid|220,,,160,,128||,0,,,,|||,,,,,Steel]Sandy Shocks||BoosterEnergy|Protosynthesis|Thunderbolt,ScorchingSands,StealthRock,Spikes|Timid|,,44,208,4,252||,0,,,,|||,,,,,Electric]Tentacruel||ChoiceScarf|LiquidOoze|Surf,IceBeam,SludgeWave,ToxicSpikes|Timid|72,,,252,,184||,0,,,,|||,,,,,Water]Gholdengo||ChoiceSpecs|GoodasGold|ShadowBall,MakeItRain,DazzlingGleam,Trick|Modest|248,,,252,,8||,0,,,,|||,,,,,Steel]Okidogi||AssaultVest|ToxicChain|DrainPunch,KnockOff,IcePunch,PoisonJab|Serious|248,64,,,32,164|||||,,,,,Poison","Palafin-Hero||ChoiceBand|ZerotoHero|FlipTurn,ZenHeadbutt,WaveCrash,JetPunch|Adamant|128,252,,,,128|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,Hurricane,KnockOff,Uturn|Timid|248,,28,4,60,168|||||,,,,,Flying]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderclap,DracoMeteor,Thunderbolt,DragonTail|Modest|56,,104,252,80,16|||||,,,,,Electric]Terapagos||HeavyDutyBoots|TeraShift|Toxic,Earthquake,BodySlam,RapidSpin|Adamant|56,252,,,4,196|||||,,,,,Stellar]Tinkaton||RockyHelmet|MoldBreaker|Encore,StealthRock,PlayRough,KnockOff|Careful|248,,216,,4,40|||||,,,,,Fairy]Tera Captain|Torterra|WhiteHerb|ShellArmor|ShellSmash,WoodHammer,DoubleEdge,Earthquake|Adamant|48,212,,,76,172|||||,,,,,Bug"], + ["Tornadus-Therian||WacanBerry|Regenerator|Taunt,KnockOff,BleakwindStorm,IcyWind|Timid|48,,,212,,248|||||,,,,,Flying]Tinkaton||Leftovers|MoldBreaker|StealthRock,PlayRough,StoneEdge,GigatonHammer|Careful|252,172,,,32,52|||||,,,,,Fairy]Ampharos||SitrusBerry|Static|Agility,CottonGuard,DazzlingGleam,Thunderbolt|Modest|152,,,172,,184||,0,,,,|||,,,,,Electric]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,SludgeWave,DazzlingGleam,FireBlast|Timid|48,,76,132,,252||,0,,,,|||,,,,,Fairy]Great Tusk||AssaultVest|Protosynthesis|RapidSpin,Earthquake,IceSpinner,HeadSmash|Adamant|188,80,,,56,184|||||,,,,,Ground]Tera Captain|Mesprit|RockyHelmet|Levitate|PsychicNoise,DazzlingGleam,Reflect,Rest|Bold|252,,252,4,,||,0,,,,|||,,,,,Water","Darkrai||ChoiceScarf|BadDreams|DarkPulse,SludgeBomb,FocusBlast,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Poison]Garchomp||RockyHelmet|RoughSkin|SwordsDance,Earthquake,ScaleShot,FireFang|Jolly|,252,,,4,252|||||,,,,,Fire]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,CloseCombat,Uturn,Switcheroo|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Azumarill|ChoiceBand|HugePower|PlayRough,AquaJet,Liquidation,KnockOff|Adamant|252,152,,,104,|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Uturn,Discharge,Hurricane,Roost|Timid|252,,104,,,152|||||,,,,,Steel]Tera Captain|Espeon|ChoiceSpecs|MagicBounce|AlluringVoice,Psychic,ShadowBall,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Iron Crown||ChoiceScarf|QuarkDrive|TachyonCutter,Psychic,VoltSwitch,SteelBeam|Timid|64,,,252,,192||,20,,,,|||,,,,,Steel]Dewgong||HeavyDutyBoots|ThickFat|TripleAxel,FlipTurn,KnockOff,PlayRough|Relaxed|248,8,252,,,|||||,,,,,Water]Roaring Moon||HeavyDutyBoots|Protosynthesis|KnockOff,Outrage,DragonDance,Roost|Adamant|124,252,,,,132|||||,,,,,Dragon]Ursaluna-Bloodmoon||Leftovers|MindsEye|Moonlight,BloodMoon,EarthPower,VacuumWave|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|PowerWhip,KnockOff,IvyCudgel,PlayRough|Adamant|52,252,,,,204|||||,,,,,Rock]Tera Captain|Armarouge|HeavyDutyBoots|WeakArmor|Endure,CalmMind,ArmorCannon,Psychic|Modest|120,,,252,,136||,0,,,,|||,,,,,Fairy","Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,DrainPunch,RageFist,Encore|Adamant|252,128,,,,128|||||,,,,,Steel]Weavile||LumBerry|Pickpocket|SwordsDance,TripleAxel,KnockOff,IceShard|Jolly|48,252,,,,208|||||,,,,,Dark]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Toxic,Spikes,Uturn|Careful|252,,172,,84,|||||,,,,,Ground]Gholdengo||ShucaBerry|GoodasGold|NastyPlot,MakeItRain,ShadowBall,Recover|Modest|252,,,80,,176||,0,,,,|||,,,,,Steel]Tera Captain|Vaporeon|Leftovers|WaterAbsorb|Scald,Wish,Haze,FlipTurn|Calm|252,,4,,252,|||||,,,,,Dark]Cutiefly||ChoiceScarf|ShieldDust|Moonblast,Switcheroo,StickyWeb,Uturn|Timid|4,,,252,,252|||||,,,,,Bug"], + ["Great Tusk||PayapaBerry|Protosynthesis|StealthRock,RapidSpin,HeadlongRush,IceSpinner|Jolly|100,208,,,,200|||||,,,,,Ground]Latios||WeaknessPolicy|Levitate|StoredPower,Earthquake,DragonDance,CalmMind|Jolly|224,88,,4,,192|||||,,,,,Dragon]Meowscarada||ChoiceScarf|Protean|FlowerTrick,Uturn,KnockOff,TripleAxel|Adamant|48,252,,,,208|||||,,,,,Grass]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|TeraBlast,Taunt,VoltSwitch,FlashCannon|Modest|156,,,164,,188||,0,,,,|||,,,,,Fairy]Heatran||ChopleBerry|FlashFire|WillOWisp,FlashCannon,MagmaStorm,StealthRock|Modest|128,,36,196,,148||,0,,,,|||,,,,,Fire]Tera Captain|Feraligatr|AssaultVest|SheerForce|Crunch,IcePunch,Liquidation,FlipTurn|Adamant|248,160,48,,,52|||||,,,,,Dark","Palafin-Hero||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,CloseCombat,WaveCrash|Adamant|72,212,,,44,180|||||,,,,,Water]Garchomp||AssaultVest|RoughSkin|Earthquake,DracoMeteor,ScaleShot,Facade|Hasty|,44,,216,,248|||||,,,,,Dragon]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,Taunt,NastyPlot,FocusBlast|Timid|212,,,128,,168||,0,,,,|||,,,,,Flying]Gholdengo||ColburBerry|GoodasGold|ThunderWave,MakeItRain,ShadowBall,Recover|Timid|208,,,92,,208||,0,,,,|||,,,,,Steel]Tera Captain|Gallade|ChoiceScarf|Sharpness|PsychoCut,SacredSword,XScissor,KnockOff|Jolly|20,252,,,4,232|||||,,,,,Psychic]Diancie||BabiriBerry|ClearBody|Moonblast,EarthPower,StealthRock,TrickRoom|Quiet|252,,16,184,56,||,0,,,,0|||,,,,,Rock"], + ["Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|HeadlongRush,CloseCombat,BulkUp,SupercellSlam|Jolly|252,4,,,,252|||||,,,,,Fairy]Dragalge||LumBerry|PoisonPoint|SludgeBomb,DragonPulse,FlipTurn,Surf|Sassy|252,,144,,112,||,,,,,0|||,,,,,Poison]Scizor||MuscleBand|Technician|BulletPunch,Uturn,CloseCombat,QuickAttack|Adamant|156,252,100,,,|||||,,,,,Bug]Tera Captain|WoChien|Leftovers|TabletsofRuin|TeraBlast,FoulPlay,Rest,SleepTalk|Calm|248,,204,,56,||,0,,,,|||,,,,,Water]Greninja||ChoiceScarf|Protean|Uturn,GunkShot,Surf,DarkPulse|Naive|,96,,252,,160|||||,,,,,Water]Bellibolt||RockyHelmet|Static|VoltSwitch,MuddyWater,SlackOff,Toxic|Bold|252,,240,,16,||,0,,,,|||,,,,,Electric","Darkrai||HeavyDutyBoots|BadDreams|IceBeam,DarkPulse,FocusBlast,NastyPlot|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,StompingTantrum,Uturn,Synthesis|Jolly|116,168,,,,224|||||,,,,,Water]Infernape||EjectPack|Blaze|Earthquake,Overheat,FireBlast,StealthRock|Hasty|,16,,252,,240|||||,,,,,Fire]Iron Treads||BoosterEnergy|QuarkDrive|IronHead,Earthquake,RapidSpin,Megahorn|Jolly|,252,,,4,252|||||,,,,,Ground]Slowking-Galar||ColburBerry|Regenerator|ThunderWave,SludgeBomb,FutureSight,Flamethrower|Bold|252,,172,,84,||,0,,,,|||,,,,,Poison]Tera Captain|Braviary|RockyHelmet|SheerForce|BodySlam,BraveBird,Roost,Whirlwind|Impish|248,,192,,68,|||||,,,,,Normal"], + ["Terapagos||LifeOrb|TeraShift|TeraStarstorm,EarthPower,RapidSpin,CalmMind|Modest|88,,,252,,168|||||,,,,,Stellar]Sylveon||Leftovers|Pixilate|HyperVoice,Charm,Wish,Protect|Modest|252,,,80,52,124||,0,,,,|||,,,,,Fairy]Tera Captain|Kilowattrel|ExpertBelt|VoltAbsorb|Thunderbolt,Hurricane,TeraBlast,VoltSwitch|Timid|92,,,208,,208||,0,,,,|||,,,,,Fairy]Tera Captain|Latias|LifeOrb|Levitate|DracoMeteor,MistBall,Earthquake,TeraBlast|Naive|,104,,196,,208|||||,,,,,Fairy]Iron Treads||AssaultVest|QuarkDrive|Earthquake,IceSpinner,KnockOff,RapidSpin|Adamant|252,8,144,,,104|||||,,,,,Ground]Annihilape||ChoiceScarf|Defiant|RageFist,CloseCombat,Earthquake,Uturn|Adamant|24,252,,,,232|||||,,,,,Fighting","Tera Captain|RagingBolt|AssaultVest|Protosynthesis|DragonPulse,DragonTail,TeraBlast,Thunderbolt|Modest|136,,88,192,,92|||||,,,,,Ground]Great Tusk||HeavyDutyBoots|Protosynthesis|RapidSpin,CloseCombat,HeadlongRush,IceSpinner|Jolly|,252,16,,,240|||||,,,,,Ground]Cinderace||HeavyDutyBoots|Libero|WillOWisp,PyroBall,HighJumpKick,Uturn|Jolly|72,252,,,,184|||||,,,,,Fire]Tinkaton||RockyHelmet|MoldBreaker|GigatonHammer,Encore,SwordsDance,PlayRough|Jolly|184,100,,,,224|||||,,,,,Fairy]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,AquaCutter,FlipTurn,AquaJet|Jolly|,252,,,4,252|||||,,,,,Water]Mesprit||ChoiceScarf|Levitate|Trick,HealingWish,Psychic,Encore|Calm|248,,,8,12,240||,0,,,,|||,,,,,Psychic"], + ["Gholdengo||OccaBerry|GoodasGold|NastyPlot,ShadowBall,MakeItRain,PowerGem|Modest|240,,160,100,,||,0,,,,|||,,,,,Steel]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,StoneEdge,RapidSpin,StealthRock|Jolly|24,252,8,,,224|||||,,,,,Ground]Tera Captain|Keldeo|Leftovers|Justified|TeraBlast,IcyWind,Trailblaze,CalmMind|Timid|,,48,252,,208|||||,,,,,Electric]Meowscarada||FocusSash|Overgrow|Spikes,PowerGem,FoulPlay,GigaDrain|Timid|,,104,252,,152||,0,,,,|||,,,,,Grass]Tera Captain|Entei|DracoPlate|InnerFocus|SacredFire,StoneEdge,TeraBlast,Agility|Adamant|192,252,8,,,56|||||,,,,,Dragon]Smeargle||ChoiceScarf|Technician|StickyWeb,Switcheroo,DestinyBond,RapidSpin|Jolly|76,,252,,,180|||||,,,,,Normal","Garchomp||ChilanBerry|RoughSkin|SwordsDance,ScaleShot,Earthquake,StoneEdge|Adamant|40,252,,,,216|||S||,,,,,Dragon]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,Synthesis,SpikyShield|Jolly|,252,4,,,252|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Roost,Thunderbolt,HeatWave,Hurricane|Modest|24,,,252,,232||,0,,,,|||,,,,,Electric]Talonflame||HeavyDutyBoots|FlameBody|Taunt,Roost,Flamethrower,BraveBird|Naive|248,28,,,,232|||||,,,,,Fire]Overqwil||LifeOrb|SwiftSwim|RainDance,Liquidation,GunkShot,Crunch|Adamant|40,252,,,,216|||S||,,,,,Dark]Tera Captain|Hariyama|AssaultVest|Guts|KnockOff,DrainPunch,HeavySlam,Earthquake|Adamant|,4,252,,252,|||S||,,,,,Water"], + ["Rillaboom||LifeOrb|GrassySurge|GrassyGlide,StompingTantrum,KnockOff,Uturn|Jolly|40,252,,,,216|||||,,,,,Grass]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderbolt,DracoMeteor,Thunderclap,TeraBlast|Modest|252,,,252,4,||,20,,,,|||,,,,,Fairy]Iron Treads||ShucaBerry|QuarkDrive|IceSpinner,StealthRock,RapidSpin,StompingTantrum|Jolly|32,252,,,,224|||||,,,,,Ground]Slowking||Leftovers|Regenerator|IceBeam,Scald,Psychic,ChillyReception|Calm|252,,,,252,||,0,,,,|||,,,,,Water]Talonflame||HeavyDutyBoots|FlameBody|WillOWisp,BraveBird,Defog,Roost|Jolly|248,,84,,,176|||||,,,,,Fire]Sneasler||GrassySeed|Unburden|SwordsDance,CloseCombat,DireClaw,LashOut|Jolly|28,252,,,4,224|||||,,,,,Fighting","Garchomp||RockyHelmet|RoughSkin|RockSlide,Spikes,DragonTail,Earthquake|Impish|248,24,100,,,136|||||,,,,,Dragon]Tera Captain|Scizor|HeavyDutyBoots|Technician|Defog,BulletPunch,KnockOff,Uturn|Adamant|248,252,,,8,|||||,,,,,Dragon]Uxie||SitrusBerry|Levitate|StealthRock,Encore,Uturn,PainSplit|Careful|248,,8,,252,|||||,,,,,Psychic]Sableye||AirBalloon|Prankster|WillOWisp,Encore,Recover,KnockOff|Impish|248,,76,,184,|||||,,,,,Dark]Rotom-Wash||ChoiceScarf|Levitate|HydroPump,VoltSwitch,PainSplit,Trick|Calm|248,,116,,72,72||,0,,,,|||,,,,,Electric]Tera Captain|Braviary|LifeOrb|SheerForce|Substitute,Roost,Agility,BodySlam|Adamant|104,252,,,48,104|||||,,,,,Dragon"], + ["Enamorus||LifeOrb|CuteCharm|Moonblast,CalmMind,EarthPower,Psychic|Timid|80,,,176,,252||,0,,,,|||,,,,,Fairy]Clodsire||ShucaBerry|Unaware|Toxic,Spikes,Counter,Earthquake|Sassy|248,,252,,4,|||||,,,,,Poison]Rotom-Heat||Leftovers|Levitate|WillOWisp,Hex,VoltSwitch,PainSplit|Calm|248,,,,128,132||,0,,,,|||,,,,,Steel]Tera Captain|GreatTusk|ChoiceBand|Protosynthesis|CloseCombat,RapidSpin,HeadlongRush,KnockOff|Jolly|8,252,,,,248|||||,,,,,Ground]Kingambit||BlackGlasses|SupremeOverlord|SwordsDance,SuckerPunch,KowtowCleave,IronHead|Adamant|128,236,,,52,92|||||,,,,,Dark]Iron Bundle||ChoiceSpecs|QuarkDrive|IceBeam,HydroPump,FreezeDry,FlipTurn|Modest|,,4,252,,252|||||,,,,,Ice","Slowking-Galar||ShucaBerry|Regenerator|Psychic,SludgeBomb,Flamethrower,FutureSight|Modest|252,,12,244,,||,0,,,,|||,,,,,Poison]Roaring Moon||BoosterEnergy|Protosynthesis|IronHead,Acrobatics,BrickBreak,KnockOff|Jolly|32,252,,,,224|||||,,,,,Dragon]Primarina||YacheBerry|Torrent|PsychicNoise,Surf,Moonblast,EnergyBall|Bold|252,,152,104,,||,0,,,,|||,,,,,Water]Iron Treads||HeavyDutyBoots|QuarkDrive|StoneEdge,Earthquake,StealthRock,RapidSpin|Jolly|4,252,,,,252|||||,,,,,Ground]Tera Captain|Annihilape|AssaultVest|VitalSpirit|RageFist,DrainPunch,Earthquake,StoneEdge|Adamant|252,132,,,124,|||||,,,,,Fairy]Tera Captain|RotomHeat|HeavyDutyBoots|Levitate|WillOWisp,PainSplit,VoltSwitch,Overheat|Bold|248,,188,,72,||,0,,,,|||,,,,,Poison"], + ["Great Tusk||RockyHelmet|Protosynthesis|BodyPress,KnockOff,StealthRock,RapidSpin|Impish|208,20,252,,4,24|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,KnockOff,Trailblaze,SwordsDance|Adamant|48,252,24,,4,180|||||,,,,,Water]Moltres||HeavyDutyBoots|FlameBody|Hurricane,FireBlast,Roost,Roar|Modest|248,,24,16,220,||,0,,,,|||,,,,,Fire]Iron Crown||BoosterEnergy|QuarkDrive|Psychic,FocusBlast,Substitute,CalmMind|Timid|56,,20,172,8,252||,20,,,,|||,,,,,Steel]Weavile||ProtectivePads|Pickpocket|TripleAxel,IceShard,LowKick,SwordsDance|Jolly|16,252,16,,,224|||||,,,,,Dark]Tera Captain|Diancie|WeaknessPolicy|ClearBody|Moonblast,TeraBlast,EarthPower,RockPolish|Modest|,,16,252,4,236||,0,,,,|||,,,,,Poison","Tera Captain|Sinistcha|Leftovers|Heatproof|StrengthSap,StunSpore,Hex,MatchaGotcha|Bold|252,,252,,4,||,0,,,,|||,,,,,Dragon]Munkidori||BlackSludge|ToxicChain|SludgeWave,CalmMind,Psyshock,Hex|Timid|,,,252,4,252||,0,,,,|||,,,,,Poison]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,Surf,AquaJet,Encore|Naive|,252,,4,,252|||||,,,,,Water]Copperajah||Leftovers|HeavyMetal|StealthRock,KnockOff,Whirlwind,HeavySlam|Sassy|252,4,,,252,|||||,,,,,Steel]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|Substitute,BulkUp,TeraBlast,Earthquake|Naive|248,,8,,,252|||||,,,,,Water]Cyclizar||Leftovers|Regenerator|ShedTail,RapidSpin,KnockOff,Taunt|Jolly|252,,,,4,252|||||,,,,,Dragon"], + ["Tera Captain|Cresselia|Leftovers|Levitate|CalmMind,Moonlight,StoredPower,Moonblast|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Weavile||ChoiceBand|Pressure|KnockOff,TripleAxel,IceShard,LowKick|Jolly|,252,,,4,252|||||,,,,,Dark]Kommo-o||ExpertBelt|Overcoat|SwordsDance,PoisonJab,DrainPunch,ScaleShot|Jolly|,252,,,4,252|||||,,,,,Fairy]Terapagos||LumBerry|TeraShift|RapidSpin,CalmMind,TeraStarstorm,Flamethrower|Modest|80,,,252,,176|||||,,,,,Stellar]Dachsbun||Leftovers|WellBakedBody|Wish,Yawn,BodyPress,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Sandy Shocks||HeavyDutyBoots|Protosynthesis|Spikes,VoltSwitch,EarthPower,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric","Smeargle||FocusSash|OwnTempo|StickyWeb,BurningBulwark,ToxicSpikes,RapidSpin|Impish|252,,252,,4,|||||,,,,,Normal]Tera Captain|GreatTusk|YacheBerry|Protosynthesis|CloseCombat,RapidSpin,KnockOff,BulkUp|Jolly|,252,,,16,240|||||,,,,,Steel]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,PowerWhip,Encore|Jolly|72,252,,,,184|||||,,,,,Fire]Hatterene||Leftovers|MagicBounce|Psychic,DrainingKiss,Nuzzle,CalmMind|Calm|248,,,8,252,|||||,,,,,Psychic]Tera Captain|OricorioSensu|HeavyDutyBoots|Dancer|QuiverDance,RevelationDance,Hurricane,Roost|Timid|252,,64,,,192||,0,,,,|||,,,,,Fire]Kyurem||LoadedDice|Pressure|DragonDance,IcicleSpear,ScaleShot,Roar|Jolly|,252,,,80,176|||||,,,,,Dragon"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,Moonblast,Thunderbolt,CalmMind|Naive|,4,,252,,252|||||,,,,,Fairy]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,Roost,LuminaCrash,DazzlingGleam|Bold|248,,252,,,8||,0,,,,|||,,,,,Fairy]Samurott-Hisui||Leftovers|Sharpness|Substitute,SwordsDance,CeaselessEdge,RazorShell|Jolly|40,252,,,,216|||||,,,,,Water]Orthworm||SitrusBerry|EarthEater|ShedTail,Earthquake,StealthRock,BodyPress|Impish|248,,252,,8,|||||,,,,,Steel]Tera Captain|ThundurusTherian|ChoiceScarf|VoltAbsorb|Thunderbolt,VoltSwitch,FocusBlast,Uturn|Timid|,,,252,4,252|||||,,,,,Electric]Donphan||RockyHelmet|Sturdy|Earthquake,RapidSpin,KnockOff,StealthRock|Impish|248,,252,,8,|||||,,,,,Ground","Tera Captain|HoopaUnbound|ChoiceSpecs|Magician|PsychicNoise,DarkPulse,EnergyBall,Psychic|Modest|248,,,252,,8||,0,,,,|||,,,,,Psychic]Cinderace||HeavyDutyBoots|Libero|Uturn,PyroBall,IronHead,CourtChange|Adamant|24,252,,,,232|||||,,,,,Fire]Tera Captain|Clefable|Leftovers|Unaware|Moonlight,StoredPower,Moonblast,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Alomomola||HeavyDutyBoots|Regenerator|FlipTurn,Wish,Protect,PlayRough|Relaxed|252,4,252,,,||,,,,,0|||,,,,,Water]Annihilape||ChoiceScarf|Defiant|Uturn,CloseCombat,RageFist,FinalGambit|Adamant|128,252,,,,128|||||,,,,,Fighting]Goodra-Hisui||AssaultVest|Gooey|HeavySlam,DragonTail,IceBeam,KnockOff|Sassy|252,144,,,112,|||||,,,,,Steel"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,Moonblast,Thunderbolt,CalmMind|Naive|,4,,252,,252|||||,,,,,Fairy]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,Roost,LuminaCrash,DazzlingGleam|Bold|248,,252,,,8||,0,,,,|||,,,,,Fairy]Samurott-Hisui||Leftovers|Sharpness|Substitute,SwordsDance,CeaselessEdge,RazorShell|Jolly|40,252,,,,216|||||,,,,,Water]Orthworm||SitrusBerry|EarthEater|ShedTail,Earthquake,StealthRock,BodyPress|Impish|248,,252,,8,|||||,,,,,Steel]Tera Captain|ThundurusTherian|ChoiceScarf|VoltAbsorb|Thunderbolt,VoltSwitch,FocusBlast,Uturn|Timid|,,,252,4,252|||||,,,,,Electric]Donphan||RockyHelmet|Sturdy|Earthquake,RapidSpin,KnockOff,StealthRock|Impish|248,,252,,8,|||||,,,,,Ground","Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Psychic,Thunderbolt|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Ting-Lu||WeaknessPolicy|VesselofRuin|Earthquake,ThroatChop,StealthRock,Memento|Serious|244,120,8,,136,|||||,,,,,Dark]Tera Captain|Gholdengo|ChoiceSpecs|GoodasGold|ShadowBall,Thunderbolt,DazzlingGleam,Trick|Modest|212,,220,76,,||,0,,,,|||,,,,,Ghost]Dragalge||ShucaBerry|Adaptability|SludgeBomb,ShadowBall,Surf,FlipTurn|Calm|248,,56,184,20,|||||,,,,,Poison]Blastoise||LifeOrb|Torrent|WaveCrash,Earthquake,AquaJet,ShellSmash|Adamant|120,252,24,,,112|||||,,,,,Water]Lokix||LifeOrb|TintedLens|Uturn,FirstImpression,KnockOff,DoubleKick|Adamant|112,252,,,,144|||||,,,,,Bug"], + ["Gurdurr||Eviolite|IronFist|MachPunch,Defog,FirePunch,IcePunch|Impish|248,8,252,,,|||||,,,,,Fighting]Gouging Fire||ChoiceBand|Protosynthesis|DragonClaw,FlareBlitz,Outrage,IronHead|Adamant|152,252,104,,,|||||,,,,,Fire]Excadrill||ChopleBerry|MoldBreaker|RapidSpin,BrickBreak,IronHead,Earthquake|Adamant|,252,96,,,160|||||,,,,,Ground]Tera Captain|Espathra|ExpertBelt|SpeedBoost|Uturn,LuminaCrash,DazzlingGleam,EnergyBall|Modest|144,,,252,,112|||||,,,,,Fire]Tera Captain|Primarina|AssaultVest|Torrent|FlipTurn,SparklingAria,Moonblast,AlluringVoice|Sassy|252,,,72,186,|||||,,,,,Grass]Iron Valiant||ChoiceSpecs|QuarkDrive|Thunderbolt,Moonblast,Trick,ShadowBall|Modest|8,,32,252,,216||,0,,,,|||,,,,,Fairy","Landorus-Therian||RockyHelmet|Intimidate|Earthquake,Uturn,StealthRock,SwordsDance|Jolly|248,,8,,,252|||||,,,,,Ground]Scizor||AssaultVest|Technician|BulletPunch,Uturn,KnockOff,DualWingbeat|Adamant|248,188,,,60,12|||||,,,,,Bug]Scream Tail||Leftovers|Protosynthesis|DazzlingGleam,Wish,ThunderWave,Encore|Calm|248,,4,,48,208||,0,,,,|||,,,,,Fairy]Tera Captain|Milotic|Leftovers|MarvelScale|Scald,FlipTurn,Haze,Recover|Calm|248,,68,,192,|||||,,,,,Water]Houndoom||HeavyDutyBoots|FlashFire|SludgeBomb,Flamethrower,DarkPulse,FlameCharge|Timid|,,,252,32,224|||||,,,,,Dark]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|Thunderclap,DragonPulse,TeraBlast,CalmMind|Bold|,,236,,120,140|||||,,,,,Ground"], + ["Tera Captain|Latias|LumBerry|Levitate|Psychic,Thunderbolt,Recover,CalmMind|Modest|76,,,252,,180||,0,,,,|||,,,,,Poison]Tera Captain|Lucario|ChoiceSpecs|InnerFocus|FlashCannon,ShadowBall,AuraSphere,VacuumWave|Timid|24,,,252,,232||,0,,,,|||,,,,,Ghost]Iron Treads||AssaultVest|QuarkDrive|Endeavor,RapidSpin,HighHorsepower,KnockOff|Adamant|120,136,,,252,|||||,,,,,Ground]Meowscarada||ChoiceBand|Protean|KnockOff,TripleAxel,FlowerTrick,Uturn|Jolly|24,252,,,,232|||||,,,,,Grass]Rotom-Heat||HeavyDutyBoots|Levitate|Overheat,VoltSwitch,PainSplit,LightScreen|Bold|252,,8,,,248||,0,,,,|||,,,,,Electric]Tornadus||HeavyDutyBoots|Prankster|Tailwind,BleakwindStorm,FocusBlast,Uturn|Modest|252,,60,148,,48|||||,,,,,Flying","Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,CloseCombat,StoneEdge,RapidSpin|Jolly|128,,,,132,248|||||,,,,,Ground]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,Thunderbolt,DragonPulse,Thunderclap|Modest|252,,136,120,,||,20,,,,|||,,,,,Fairy]Sneasler||ProtectivePads|PoisonTouch|FakeOut,CloseCombat,DireClaw,Uturn|Jolly|80,252,,,,176|||||,,,,,Fighting]Rillaboom||RockyHelmet|GrassySurge|GrassyGlide,DrainPunch,KnockOff,Uturn|Impish|248,8,252,,,|||||,,,,,Grass]Empoleon||Leftovers|Torrent|Surf,IceBeam,Roar,Roost|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Tera Captain|Mesprit|RockyHelmet|Levitate|StealthRock,PsychicNoise,DrainPunch,KnockOff|Relaxed|248,,252,,8,|||||,,,,,Fairy"], + ["Tornadus-Therian||CovertCloak|Regenerator|Taunt,Uturn,KnockOff,BleakwindStorm|Timid|248,,,,8,252|||||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|SleepTalk,Earthquake,StealthRock,Spikes|Adamant|208,,,,252,48|||||,,,,,Dark]Dragonite||HeavyDutyBoots|Multiscale|ExtremeSpeed,FireBlast,Earthquake,Outrage|Adamant|248,132,,,96,32|||||,,,,,Dragon]Tera Captain|Greninja|ChoiceBand|Protean|TeraBlast,Uturn,GunkShot,Liquidation|Adamant|,252,12,,,244|||||,,,,,Stellar]Tera Captain|Bellibolt|Leftovers|Electromorphosis|VoltSwitch,Toxic,SlackOff,EerieImpulse|Calm|248,,8,,200,52||,0,,,,|||,,,,,Electric]Tsareena||ProtectivePads|QueenlyMajesty|Uturn,RapidSpin,Endeavor,HighJumpKick|Adamant|248,,80,,160,20|||||,,,,,Grass","Sneasler||ProtectivePads|PoisonTouch|DireClaw,Switcheroo,Uturn,FakeOut|Adamant|196,252,,,24,36|||||,,,,,Fighting]Darkrai||Leftovers|BadDreams|CalmMind,WillOWisp,Substitute,DarkPulse|Timid|248,,,24,,236||,0,,,,|||,,,,,Dark]Swampert||AssaultVest|Torrent|FlipTurn,Avalanche,Earthquake,KnockOff|Adamant|200,168,,,140,|||||,,,,,Water]Tera Captain|Latias|ExpertBelt|Levitate|CalmMind,Psychic,IceBeam,Recover|Bold|240,,252,,,16||,0,,,,|||,,,,,Poison]Skarmory||Leftovers|WeakArmor|BodyPress,IronDefense,Roost,Whirlwind|Calm|252,,,,232,24||,0,,,,|||,,,,,Steel]Tera Captain|Diancie|CustapBerry|ClearBody|Endeavor,Endure,StealthRock,Moonblast|Bold|248,,72,52,124,12||,0,,,,|||,,,,,Fairy"], + ["Slowking-Galar||ColburBerry|Regenerator|IceBeam,ChillyReception,SludgeBomb,ThunderWave|Sassy|252,,16,,240,||,0,,,,0|||,,,,,Water]Tera Captain|Scizor|HeavyDutyBoots|Technician|SwordsDance,KnockOff,Uturn,BulletPunch|Adamant|248,252,,,8,|||||,,,,,Fire]Great Tusk||RindoBerry|Protosynthesis|Earthquake,StealthRock,KnockOff,RapidSpin|Impish|252,,220,,,36|||||,,,,,Water]Tera Captain|Sylveon|Leftovers|Pixilate|CalmMind,HyperVoice,Wish,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,FlipTurn,Encore|Timid|,,,252,4,252|||||,,,,,Ice]Rotom-Mow||ChoiceScarf|Levitate|WillOWisp,VoltSwitch,LeafStorm,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric","Tera Captain|GreninjaBond|MysticWater|BattleBond|HydroPump,DarkPulse,IceBeam,WaterShuriken|Modest|168,,,252,4,84|||||,,,,,Water]Garchomp||YacheBerry|RoughSkin|SwordsDance,ScaleShot,Earthquake,PoisonJab|Adamant|8,252,,,4,244|||||,,,,,Dragon]Enamorus||HeavyDutyBoots|CuteCharm|CalmMind,Moonblast,EarthPower,MysticalFire|Modest|40,,4,252,,212||,0,,,,|||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,HornLeech,KnockOff|Adamant|72,252,,,4,180|||||,,,,,Fire]Jirachi||Leftovers|SereneGrace|CalmMind,Psychic,FirePunch,Wish|Timid|248,,,108,,152|||||,,,,,Steel]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,Discharge,Trick,VoltSwitch|Timid|88,,4,252,,164||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Metagross|LumBerry|ClearBody|Agility,IcePunch,HeavySlam,Earthquake|Adamant|248,144,,,,116|||||,,,,,Steel]Urshifu||AssaultVest|UnseenFist|WickedBlow,Uturn,CloseCombat,IcePunch|Adamant|,184,20,,144,160|||||,,,,,Fighting]Donphan||HeavyDutyBoots|Sturdy|RapidSpin,Earthquake,StealthRock,IceSpinner|Adamant|212,12,108,,,176|||||,,,,,Ground]Tera Captain|Blastoise|HeavyDutyBoots|Torrent|Haze,ShellSmash,Surf,IceBeam|Timid|40,,,252,,216||,0,,,,|||,,,,,Ice]Latios||ChoiceSpecs|Levitate|LusterPurge,IceBeam,FlipTurn,AuraSphere|Timid|,,208,140,,160|||||,,,,,Dragon]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,KnockOff,IcyWind,Taunt|Modest|32,,4,116,168,188|||||,,,,,Flying","Iron Bundle||ChoiceSpecs|QuarkDrive|HydroPump,Blizzard,FreezeDry,FlipTurn|Timid|,,,252,4,252|||||,,,,,Stellar]Iron Boulder||BoosterEnergy|QuarkDrive|CloseCombat,MightyCleave,Earthquake,SwordsDance|Jolly|24,252,,,,232|||||,,,,,Stellar]Slowking-Galar||ColburBerry|Regenerator|ChillyReception,FutureSight,SludgeBomb,ThunderWave|Relaxed|252,,252,,4,||,0,,,,0|||,,,,,Stellar]Gliscor||ToxicOrb|PoisonHeal|Protect,Toxic,StealthRock,Earthquake|Impish|252,,252,,4,|||||,,,,,Stellar]Tera Captain|Cetitan|SitrusBerry|SlushRush|IcicleSpear,PlayRough,Earthquake,BellyDrum|Jolly|4,252,20,,,232|||||,,,,,Water]Tera Captain|Hydreigon|MirrorHerb|Levitate|NastyPlot,DarkPulse,EarthPower,TeraBlast|Timid|,,8,252,,248||,0,,,,|||,,,,,Fairy"], + ["Meowscarada||HeavyDutyBoots|Protean|TripleAxel,Uturn,FlowerTrick,KnockOff|Jolly|,252,,,8,248|||||,,,,,Grass]Arcanine-Hisui||HeavyDutyBoots|Intimidate|FlareBlitz,WillOWisp,StoneEdge,MorningSun|Careful|252,,4,,252,|||||,,,,,Normal]Zapdos||ChoiceScarf|Static|Hurricane,Thunderbolt,Uturn,ElectricTerrain|Modest|160,,32,252,,64|||||,,,,,Flying]Tera Captain|Latias|ElectricSeed|Levitate|AuraSphere,StoredPower,DrainingKiss,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Tera Captain|Mudsdale|Leftovers|Stamina|StealthRock,Earthquake,BodyPress,Roar|Impish|252,,252,,4,|||||,,,,,Steel]Gholdengo||ChoiceSpecs|GoodasGold|MakeItRain,ShadowBall,FocusBlast,Memento|Modest|108,,,252,,148||,0,,,,|||,,,,,Ghost","Garchomp||LoadedDice|RoughSkin|SwordsDance,Earthquake,ScaleShot,StealthRock|Jolly|92,252,,,4,160|||S||,,,,,Dragon]Dusknoir||Leftovers|Frisk|Poltergeist,ShadowSneak,WillOWisp,PainSplit|Serious|252,,252,,4,|||S||,,,,,Ghost]Terapagos||Leftovers|TeraShift|CalmMind,RapidSpin,TeraStarstorm,DarkPulse|Modest|252,,,252,4,|||||,,,,,Stellar]Greninja-Bond||ExpertBelt|BattleBond|IceBeam,DarkPulse,Surf,Uturn|Timid|,,,252,4,252|||||,,,,,Water]Tera Captain|Ogerpon|ProtectivePads|Defiant|IvyCudgel,KnockOff,Encore,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Diancie|Leftovers|ClearBody|DiamondStorm,BodyPress,Rest,SleepTalk|Careful|252,4,,,252,|||||,,,,,Fire"], + ["Glimmora||FocusSash|ToxicDebris|SludgeBomb,PowerGem,MortalSpin,EnergyBall|Naive|,4,,252,,252|||||,,,,,Rock]Iron Valiant||BoosterEnergy|QuarkDrive|ShadowBall,CalmMind,Moonblast,Psyshock|Modest|88,,,252,,168||,0,,,,|||,,,,,Fairy]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,WillOWisp,PainSplit|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Tera Captain|IronCrown|AssaultVest|QuarkDrive|TachyonCutter,Psyshock,FocusBlast,Psychic|Timid|,,,252,4,252||,20,,,,|||,,,,,Fairy]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,WillOWisp,SlackOff,AlluringVoice|Calm|248,,,8,252,||,0,,,,|||,,,,,Water]Landorus-Therian||SitrusBerry|Intimidate|GrassKnot,StealthRock,Uturn,Earthquake|Jolly|,252,,,,252|||||,,,,,Ground","Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,FocusBlast,ShadowBall,Psyshock|Timid|,,,252,4,252||,0,,,,|||,,,,,Bug]Chi-Yu||HeavyDutyBoots|BeadsofRuin|Overheat,DarkPulse,Psychic,Flamethrower|Timid|,,,252,16,240||,0,,,,|||,,,,,Bug]Rotom-Wash||HeavyDutyBoots|Levitate|VoltSwitch,HydroPump,PainSplit,ThunderWave|Calm|212,,52,,244,||,0,,,,|||,,,,,Bug]Tera Captain|Sinistcha|ChoiceSpecs|Heatproof|ShadowBall,Scald,MatchaGotcha,LeafStorm|Modest|252,,,192,64,||,0,,,,|||,,,,,Ghost]Forretress||AssaultVest|Sturdy|GyroBall,VoltSwitch,RapidSpin,IceSpinner|Relaxed|252,,172,,84,||,,,,,0|||,,,,,Bug]Mudsdale||CustapBerry|Stamina|BodyPress,Earthquake,StealthRock,Endeavor|Careful|252,4,,,252,|||||,,,,,Bug"], + ["Palafin-Hero||RindoBerry|ZerotoHero|BulkUp,JetPunch,IcePunch,WaveCrash|Adamant|252,60,,,,196|||||,,,,,Water]Tera Captain|Latias|SoulDew|Levitate|CalmMind,Recover,MistBall,Roar|Bold|252,,140,,,116||,0,,,,|||,,,,,Poison]Iron Treads||AirBalloon|QuarkDrive|StealthRock,HighHorsepower,IceSpinner,VoltSwitch|Jolly|120,252,,,,136|||||,,,,,Ground]Glimmet||FocusSash|ToxicDebris|Spikes,PowerGem,Endure,Memento|Modest|252,,,252,,4||,0,,,,|||,,,,,Rock]Mandibuzz||CovertCloak|Overcoat|Defog,Roost,Uturn,BraveBird|Impish|252,4,252,,,|||||,,,,,Dark]Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,Trick,Protect,VacuumWave|Modest|88,,,252,,168||,0,,,,|||,,,,,Fairy","Torkoal||HeavyDutyBoots|Drought|LavaPlume,Yawn,StealthRock,RapidSpin|Bold|248,,252,8,,|||||,,,,,Fire]Ursaluna-Bloodmoon||LifeOrb|MindsEye|Moonlight,Moonblast,EarthPower,BloodMoon|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,BurningBulwark,HeatCrash,DragonClaw|Jolly|120,136,,,,252|||||,,,,,Fire]Venusaur||FocusSash|Chlorophyll|Growth,GigaDrain,WeatherBall,SludgeBomb|Timid|,,,252,4,252||,0,,,,|||,,,,,Grass]Sneasler||NormalGem|Unburden|FakeOut,LashOut,CloseCombat,DireClaw|Adamant|192,252,,,4,60|||||,,,,,Fighting]Tera Captain|Rillaboom|AssaultVest|GrassySurge|FakeOut,Uturn,KnockOff,GrassyGlide|Adamant|72,252,128,,56,|||||,,,,,Grass"], + ["Zapdos||HeavyDutyBoots|Pressure|Discharge,EerieImpulse,HeatWave,Roost|Calm|248,,188,,72,||,0,,,,|||,,,,,Electric]Florges-Blue||HeavyDutyBoots|FlowerVeil|Moonblast,TearfulLook,Wish,Synthesis|Bold|248,,252,,8,||,0,,,,|S||,,,,,Fairy]Tera Captain|Forretress|Leftovers|Sturdy|ThunderWave,IronDefense,BodyPress,RapidSpin|Impish|252,,224,,32,|||||,,,,,Bug]Palafin-Hero||Leftovers|ZerotoHero|JetPunch,Encore,Rest,BulkUp|Impish|252,8,200,,28,20|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|Surf,Roar,CalmMind,Recover|Timid|252,,4,,,252||,0,,,,|||,,,,,Poison]Garchomp||RockyHelmet|RoughSkin|Earthquake,DragonTail,Spikes,StealthRock|Impish|232,,180,,80,16|||||,,,,,Dragon","Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,DrainingKiss,CalmMind,Recover|Timid|252,,72,,,184||,0,,,,|||,,,,,Fairy]Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,KnockOff,FirePunch,SwordsDance|Jolly|,252,16,,,240|||||,,,,,Bug]Sandy Shocks||PasshoBerry|Protosynthesis|EarthPower,FlashCannon,VoltSwitch,Spikes|Timid|,,8,252,,248||,0,,,,|||,,,,,Bug]Tera Captain|Lokix|HeavyDutyBoots|TintedLens|FirstImpression,SuckerPunch,LeechLife,SwordsDance|Adamant|40,252,,,,216|||||,,,,,Steel]Bronzong||Leftovers|Levitate|Earthquake,IceSpinner,PsychicNoise,StealthRock|Sassy|252,,88,,168,|||||,,,,,Bug]Mandibuzz||HeavyDutyBoots|BigPecks|FoulPlay,Toxic,Roost,Defog|Impish|252,,232,,,24||,0,,,,|||,,,,,Bug"], + ["Tera Captain|Clefable|Leftovers|Unaware|Moonblast,Moonlight,StealthRock,Encore|Bold|252,,252,,4,||,0,,,,|||,,,,,Fire]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,HeadlongRush,SupercellSlam,CloseCombat|Jolly|252,4,,,,252|||||,,,,,Poison]Meowscarada||ChoiceScarf|Protean|KnockOff,FlowerTrick,TripleAxel,Uturn|Jolly|,252,,,4,252|||||,,,,,Ice]Tera Captain|Oricorio|HeavyDutyBoots|Dancer|QuiverDance,RevelationDance,Roost,Hurricane|Timid|252,,12,4,,240||,0,,,,|||,,,,,Ground]Ditto||ChoiceScarf|Imposter|Transform|Impish|248,8,252,,,||,30,,,,|||,,,,,Fairy]Rotom-Heat||ChoiceSpecs|Levitate|Overheat,VoltSwitch,Trick,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel","Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,KnockOff,RazorShell,Encore|Jolly|,252,,,4,252|||||,,,,,Stellar]Enamorus-Therian||GrassySeed|Overcoat|DrainingKiss,SludgeBomb,CalmMind,IronDefense|Bold|252,,252,4,,||,0,,,,|||,,,,,Stellar]Gholdengo||ColburBerry|GoodasGold|MakeItRain,ShadowBall,Recover,ThunderWave|Modest|252,,,252,4,||,0,,,,|||,,,,,Stellar]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderclap,Thunderbolt,DracoMeteor,CalmMind|Modest|252,,,252,4,||,20,,,,|||,,,,,Flying]Gouging Fire||BoosterEnergy|Protosynthesis|FlareBlitz,StoneEdge,DragonDance,MorningSun|Jolly|24,252,4,,4,224|||||,,,,,Stellar]Thwackey||Eviolite|GrassySurge|GrassyGlide,KnockOff,Uturn,Taunt|Adamant|252,252,4,,,|||||,,,,,Stellar"], + ["Urshifu||ChoiceScarf|UnseenFist|CloseCombat,WickedBlow,Uturn,SuckerPunch|Adamant|156,252,,,4,96|||||,,,,,Fighting]Tornadus-Therian||HeavyDutyBoots|Regenerator|Uturn,BleakwindStorm,HeatWave,NastyPlot|Timid|88,,,252,,168|||S||,,,,,Flying]Dragalge||RockyHelmet|PoisonPoint|AcidArmor,ToxicSpikes,FlipTurn,DragonPulse|Bold|252,,252,4,,|||S||,,,,,Poison]Tera Captain|Blastoise|WhiteHerb|Torrent|RapidSpin,TeraBlast,ShellSmash,Surf|Modest|,,252,252,,|||||,,,,,Fairy]Tera Captain|Metagross|RockyHelmet|ClearBody|StealthRock,KnockOff,ZenHeadbutt,Earthquake|Jolly|,252,156,,4,96|||S||,,,,,Water]Entei||LifeOrb|Pressure|SacredFire,Trailblaze,ExtremeSpeed,WillOWisp|Jolly|44,252,,,4,208|||S||,,,,,Fire","Tera Captain|Latias|MentalHerb|Levitate|CalmMind,ShadowBall,DrainingKiss,MistBall|Timid|252,,,80,,176||,0,,,,|||,,,,,Poison]Palafin-Hero||PunchingGlove|ZerotoHero|BulkUp,JetPunch,DrainPunch,IcePunch|Adamant|220,252,,,,36|||||,,,,,Normal]Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,TripleAxel,Uturn|Jolly|24,252,,,,232|||||,,,,,Normal]Tinkaton||Leftovers|Pickpocket|StealthRock,IceHammer,KnockOff,ThunderWave|Careful|252,,,,244,12|||||,,,,,Normal]Iron Hands||RockyHelmet|QuarkDrive|Rest,SleepTalk,IcePunch,Earthquake|Impish|252,4,252,,,|||||,,,,,Normal]Tera Captain|Cryogonal|MirrorHerb|Levitate|FreezeDry,Reflect,RapidSpin,Recover|Calm|248,,,220,20,20|||||,,,,,Ground"], + ["Slowking-Galar||SafetyGoggles|Regenerator|ChillyReception,PsychicNoise,FoulPlay,Toxic|Relaxed|252,,252,,4,||,0,,,,|||,,,,,Poison]Iron Treads||OccaBerry|QuarkDrive|Earthquake,IronDefense,BodyPress,HeavySlam|Impish|252,76,180,,,|||||,,,,,Ground]Swampert||RockyHelmet|Torrent|Earthquake,FlipTurn,StealthRock,Yawn|Adamant|252,192,64,,,|||||,,,,,Water]Tera Captain|Shaymin|Leftovers|NaturalCure|SeedFlare,Synthesis,TeraBlast,DazzlingGleam|Timid|252,,,96,,160||,0,,,,|||,,,,,Water]Hariyama||AssaultVest|SheerForce|HeavySlam,DrainPunch,Earthquake,ThunderPunch|Adamant|252,252,,,4,|||||,,,,,Fighting]Darkrai||LifeOrb|BadDreams|Hypnosis,Thunder,FocusBlast,DarkPulse|Modest|84,,,252,,172||,0,,,,|||,,,,,Dark","Tyranitar||ChopleBerry|SandStream|StealthRock,Protect,KnockOff,LowKick|Adamant|252,240,,,,16|||||,,,,,Rock]Tera Captain|Excadrill|ShucaBerry|SandRush|Earthquake,RapidSpin,TeraBlast,SwordsDance|Adamant|,252,,,80,176|||||,,,,,Ice]Clefable||SafetyGoggles|Unaware|Moonblast,Moonlight,KnockOff,Wish|Calm|252,,4,,252,|||S||,,,,,Fairy]Eelektross||Leftovers|Levitate|KnockOff,GigaDrain,Flamethrower,Uturn||168,160,,84,,96|||||,,,,,Electric]Tera Captain|Amoonguss|RockyHelmet|Regenerator|GigaDrain,Spore,SludgeBomb,StompingTantrum|Sassy|100,,252,,156,|||||,,,,,Steel]Tauros-Paldea-Aqua||ChoiceScarf|Intimidate|CloseCombat,RagingBull,WaveCrash,SleepTalk|Jolly|4,252,,,,252|||||,,,,,Fighting"], + ["Tera Captain|Latias|Leftovers|Levitate|AuraSphere,StoredPower,CalmMind,Recover|Timid|252,,,4,,252||,0,,,,|||,,,,,Dark]Enamorus||ChoiceScarf|CuteCharm|Moonblast,MysticalFire,EarthPower,HealingWish|Modest|,,4,252,,252||,0,,,,|||,,,,,Fairy]Tera Captain|Gyarados|HeavyDutyBoots|Moxie|DragonDance,Waterfall,Crunch,Taunt|Adamant|28,252,,,,228|||||,,,,,Dark]Infernape||ChoiceScarf|Blaze|Switcheroo,FireBlast,FocusBlast,KnockOff|Hasty|,4,,252,,252|||||,,,,,Fire]Iron Treads||Leftovers|QuarkDrive|KnockOff,RapidSpin,StealthRock,Earthquake|Jolly|112,252,,,,144|||||,,,,,Ground]Persian-Alola||ChoiceScarf|FurCoat|Uturn,FoulPlay,KnockOff,Switcheroo|Jolly|252,,4,,,252|||||,,,,,Dark","Iron Boulder||HeavyDutyBoots|QuarkDrive|MightyCleave,ZenHeadbutt,Earthquake,SwordsDance|Jolly|,252,72,,,184|||||,,,,,Rock]Tera Captain|Gengar|Leftovers|CursedBody|ShadowBall,SludgeBomb,Hex,Substitute|Timid|,,4,252,,252||,0,,,,|||,,,,,Ghost]Klefki||Leftovers|Prankster|DrainingKiss,IronDefense,CalmMind,StoredPower|Bold|252,,212,,44,||,0,,,,|||,,,,,Steel]Porygon2||Eviolite|Trace|TriAttack,Recover,TrickRoom,FoulPlay|Calm|252,,4,,252,||,0,,,,|||,,,,,Normal]Rotom-Wash||RockyHelmet|Levitate|HydroPump,VoltSwitch,WillOWisp,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Electric]Primeape||ChoiceScarf|Defiant|CloseCombat,Uturn,SeedBomb,StoneEdge|Jolly|,252,4,,,252||,,,,,0|||,,,,,Fighting"], + ["Tera Captain|Latias|HeavyDutyBoots|Levitate|CalmMind,Surf,Thunderbolt,Recover|Bold|248,,168,,,92||,0,,,,|||,,,,,Poison]Weavile||ProtectivePads|Pressure|SwordsDance,TripleAxel,KnockOff,LowKick|Jolly|80,252,,,,176|||||,,,,,Dark]Glimmora||FocusSash|ToxicDebris|SludgeBomb,EarthPower,MortalSpin,Spikes|Timid|72,,,252,,184|||||,,,,,Rock]Quaquaval||HeavyDutyBoots|Moxie|RapidSpin,AquaStep,Roost,Uturn|Impish|248,,148,,,112|||||,,,,,Water]Heatran||PasshoBerry|FlameBody|MagmaStorm,EarthPower,WillOWisp,StealthRock|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Tera Captain|SinistchaMasterpiece|ColburBerry|Heatproof|CalmMind,MatchaGotcha,ShadowBall,StrengthSap|Bold|248,,192,,,68||,0,,,,|||,,,,,Grass","Slowbro||ColburBerry|Regenerator|BodyPress,Scald,SlackOff,PsychicNoise|Bold|252,,252,4,,||,0,,,,|S||,,,,,Water]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,KnockOff,IvyCudgel,HornLeech|Jolly|,252,,,4,252|||||,,,,,Water]Tsareena||HeavyDutyBoots|QueenlyMajesty|RapidSpin,LowKick,Uturn,TripleAxel|Careful|252,4,,,252,|||||,,,,,Grass]Ting-Lu||Leftovers|VesselofRuin|Spikes,Earthquake,Whirlwind,ThroatChop|Careful|236,20,,,252,|||||,,,,,Dark]Fezandipiti||PayapaBerry|ToxicChain|PlayRough,Toxic,Uturn,Roost|Careful|252,,124,,132,|||||,,,,,Poison]Heatran||AirBalloon|FlashFire|EarthPower,StealthRock,MagmaStorm,WillOWisp|Modest|,,,252,4,252||,0,,,,|||,,,,,Fire"], + ["Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,FocusBlast,Psychic,WillOWisp|Timid|32,,,252,,224||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,WoodHammer,Trailblaze,SwordsDance|Jolly|60,252,,,4,192|||||,,,,,Water]Skarmory||RockyHelmet|Sturdy|IronDefense,BodyPress,StealthRock,Roost|Impish|248,,252,,8,||,0,,,,|||,,,,,Steel]Gliscor||MirrorHerb|PoisonHeal|SwordsDance,Agility,Earthquake,StoneEdge|Jolly|60,252,20,,,176|||||,,,,,Ground]Tera Captain|Cetitan|HeavyDutyBoots|ThickFat|IceShard,IcicleCrash,Earthquake,BellyDrum|Jolly|20,252,4,,,232|||||,,,,,Dark]Vikavolt||FocusSash|Levitate|StickyWeb,Thunderbolt,BugBuzz,ThunderWave|Modest|248,,,252,8,||,0,,,,|||,,,,,Bug","Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Overheat,Flamethrower,Psychic|Modest|40,,,252,,216||,0,,,,|||,,,,,Dark]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,KnockOff,HeatWave,Uturn|Calm|232,40,12,12,164,48|||||,,,,,Flying]Metagross||ChoiceScarf|ClearBody|StealthRock,MeteorMash,IcePunch,Trick|Jolly|120,160,,,,228|||||,,,,,Steel]Tera Captain|Quaquaval|HeavyDutyBoots|Moxie|Roost,RapidSpin,WaveCrash,Uturn|Adamant|192,,116,,,200|||||,,,,,Steel]Tera Captain|Gardevoir|LifeOrb|Trace|Moonblast,Thunderbolt,ShadowBall,VacuumWave|Timid|56,,,252,,200||,0,,,,|||,,,,,Fairy]Meganium||RockyHelmet|Overgrow|Synthesis,PetalBlizzard,Earthquake,LeechSeed|Impish|248,8,252,,,|||||,,,,,Grass"], + ["Hatterene||BabiriBerry|MagicBounce|CalmMind,Psyshock,DrainingKiss,MysticalFire|Bold|252,,252,4,,||,0,,,,|||,,,,,Psychic]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,MorningSun,Earthquake,DragonClaw|Adamant|,252,,,32,224|||||,,,,,Fire]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,ZenHeadbutt,Earthquake,SwordsDance|Jolly|,252,,,32,224|||||,,,,,Rock]Tera Captain|Crocalor|Eviolite|Unaware|Flamethrower,SlackOff,WillOWisp,Roar|Bold|252,,252,,4,||,0,,,,|||,,,,,Electric]Corviknight||ShedShell|Pressure|Roost,Defog,Uturn,BraveBird|Careful|252,,4,,252,|||||,,,,,Flying]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,FlipTurn,AquaCutter,AirSlash|Lonely|,252,,48,,200|||||,,,,,Water","Iron Valiant||ExpertBelt|QuarkDrive|CloseCombat,KnockOff,SpiritBreak,PoisonJab|Jolly|,252,24,,,232|||||,,,,,Fairy]Tera Captain|Weavile|FocusSash|Pickpocket|TripleAxel,KnockOff,SwordsDance,LowKick|Jolly|,252,,,4,252|||||,,,,,Ice]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Roost,Flamethrower,Hurricane,Uturn|Modest|248,,,252,8,|||||,,,,,Water]Latios||ExpertBelt|Levitate|Thunderbolt,DragonPulse,CalmMind,ShadowBall|Modest|,,40,252,,216||,0,,,,|||,,,,,Dragon]Magnezone||AirBalloon|Analytic|FlashCannon,VoltSwitch,BodyPress,IronDefense|Modest|248,,,252,8,||,0,,,,|||,,,,,Electric]Tentacruel||AssaultVest|ClearBody|RapidSpin,HydroPump,KnockOff,SludgeWave|Calm|252,,96,160,,|||||,,,,,Water"], + ["Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,FlipTurn,DrillPeck|Timid|104,,,252,,152|||||,,,,,Ice]Latios||SoulDew|Levitate|AuraSphere,DracoMeteor,LusterPurge,FlipTurn|Timid|,,4,252,,252|||||,,,,,Dragon]Tera Captain|Excadrill|ChoiceBand|SandRush|Earthquake,IronHead,XScissor,TeraBlast|Adamant|,252,32,,,224|||||,,,,,Fire]Tyranitar||ChopleBerry|SandStream|StealthRock,Flamethrower,IcePunch,Earthquake|Sassy|248,,,8,252,|||||,,,,,Rock]Brambleghast||ChoiceBand|WindRider|Spikes,RapidSpin,Poltergeist,PowerWhip|Adamant|216,252,16,,,24|||||,,,,,Grass]Enamorus-Therian||AssaultVest|Overcoat|MysticalFire,EarthPower,Moonblast,SludgeBomb|Calm|248,,,8,252,||,0,,,,|||,,,,,Fairy","Tera Captain|Serperior|ChoiceScarf|Contrary|LeafStorm,DragonPulse,TeraBlast,Glare|Modest|208,,,252,,48||,0,,,,|||,,,,,Poison]Azumarill||AssaultVest|HugePower|PlayRough,AquaJet,Liquidation,Superpower|Adamant|248,252,,,8,|||||,,,,,Water]Uxie||HeavyDutyBoots|Levitate|PsychicNoise,Uturn,KnockOff,ThunderWave|Gentle|252,,,4,252,|||||,,,,,Dark]Tera Captain|Rhyperior|RockyHelmet|LightningRod|StoneEdge,Earthquake,Avalanche,StealthRock|Adamant|252,252,,,4,|||||,,,,,Flying]Noivern||HeavyDutyBoots|Infiltrator|DracoMeteor,Flamethrower,Uturn,SuperFang|Timid|104,,,252,,152|||||,,,,,Flying]Forretress||Leftovers|Sturdy|RapidSpin,IronDefense,BodyPress,GyroBall|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Bug"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CalmMind,Moonblast,Psyshock,Encore|Timid|40,,,252,,216||,0,,,,|||,,,,,Stellar]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Taunt,Earthquake,Toxic,Protect|Jolly|244,,64,,,200|||||,,,,,Fairy]Empoleon||Leftovers|Competitive|StealthRock,Roar,Roost,FlipTurn|Careful|248,,8,,252,|||||,,,,,Stellar]Sceptile||ChoiceScarf|Unburden|LeafBlade,Outrage,Earthquake,ShedTail|Jolly|8,252,,,,248|||||,,,,,Stellar]Tera Captain|Espathra|MentalHerb|SpeedBoost|Substitute,CalmMind,ShadowBall,DazzlingGleam|Timid|136,,,196,120,56||,0,,,,|||,,,,,Ghost]Gengar||AirBalloon|CursedBody|Taunt,Encore,SludgeWave,ShadowBall|Timid|4,,,252,,252||,0,,,,|||,,,,,Stellar","Ninetales||HeatRock|Drought|Psyshock,HealingWish,Encore,WillOWisp|Bold|248,,252,,,8||,0,,,,|||,,,,,Fire]Roaring Moon||BlackGlasses|Protosynthesis|DragonDance,KnockOff,IronHead,Taunt|Jolly|72,200,,,4,232|||||,,,,,Dragon]Tera Captain|Orthworm|SitrusBerry|EarthEater|ShedTail,StealthRock,Spikes,IronHead|Careful|252,,4,,252,|||||,,,,,Fairy]Venusaur||PayapaBerry|Chlorophyll|KnockOff,PoisonJab,Synthesis,Trailblaze|Jolly|40,252,4,,,212|||||,,,,,Grass]Scream Tail||Leftovers|Protosynthesis|CalmMind,Encore,Psyshock,DazzlingGleam|Timid|252,,,8,,248||,0,,,,|||,,,,,Fairy]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,TeraBlast,KnockOff,DracoMeteor|Timid|12,,,244,,252|||||,,,,,Ground"], + ["Iron Bundle||ChoiceSpecs|QuarkDrive|IceBeam,FreezeDry,HydroPump,Uturn|Modest|80,,,252,4,172|||||,,,,,Ice]Tera Captain|Mew|LifeOrb|Synchronize|NastyPlot,Agility,EarthPower,DrainingKiss|Modest|148,,,252,,108||,0,,,,|||,,,,,Water]Orthworm||SitrusBerry|EarthEater|IronHead,BodyPress,Rest,ShedTail|Careful|248,8,,,252,|||||,,,,,Steel]Great Tusk||AssaultVest|Protosynthesis|KnockOff,IceSpinner,HeadlongRush,RapidSpin|Impish|252,,52,,84,120|||||,,,,,Ground]Pecharunt||RockyHelmet|PoisonPuppeteer|Poltergeist,PartingShot,Recover,MalignantChain|Relaxed|252,,184,,72,|||||,,,,,Poison]Crocalor||Eviolite|Unaware|Roar,FireSpin,Encore,SlackOff|Calm|252,,12,4,240,||,0,,,,|||,,,,,Fire","Iron Treads||ClearAmulet|QuarkDrive|FlashCannon,SteelBeam,RapidSpin,VoltSwitch|Timid|40,,8,252,,208|||||,,,,,Ground]Latios||ChoiceScarf|Levitate|LusterPurge,DracoMeteor,FlipTurn,Trick|Timid|76,,,252,4,176|||S||,,,,,Dragon]Palafin-Hero||AssaultVest|ZerotoHero|DrainPunch,JetPunch,IcePunch,FlipTurn|Adamant|252,252,,,4,|||||,,,,,Water]Qwilfish-Hisui||Eviolite|Intimidate|ThroatChop,Toxic,Taunt,Haze|Careful|252,,,,224,32|||||,,,,,Dark]Tera Captain|LandorusTherian|RockyHelmet|Intimidate|BrickBreak,GrassKnot,Uturn,StealthRock|Timid|252,,,32,,224|||S||,,,,,Fairy]Tera Captain|Comfey|ClearAmulet|Triage|DrainingKiss,StoredPower,CalmMind,Substitute|Timid|204,,84,60,,160||,0,,,,|||,,,,,Poison"], + ["Darkrai||WideLens|BadDreams|DarkPulse,FocusBlast,Hypnosis,Taunt|Timid|252,,4,28,,224||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Superpower,SwordsDance|Jolly|8,252,,,,248|||||,,,,,Water]Kyurem||LumBerry|Pressure|FreezeDry,EarthPower,FlashCannon,Roar|Timid|64,,,252,,192||,0,,,,|||,,,,,Dragon]Klefki||Leftovers|Prankster|FoulPlay,Spikes,MagnetRise,ThunderWave|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Landorus-Therian||AssaultVest|Intimidate|Earthquake,StoneEdge,BrickBreak,Uturn|Adamant|224,96,,,8,180|||||,,,,,Ground]Tera Captain|Eelektross|AssaultVest|Levitate|ThunderPunch,FlashCannon,BrickBreak,DragonTail|Brave|252,,52,,204,|||||,,,,,Steel","Ninetales-Alola||MentalHerb|SnowWarning|AuroraVeil,Moonblast,Blizzard,FreezeDry|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice]Baxcalibur||ClearAmulet|ThermalExchange|DragonDance,IceShard,GlaiveRush,Earthquake|Adamant|,252,4,,,252|||||,,,,,Dragon]Manaphy||Leftovers|Hydration|TailGlow,AcidArmor,Scald,EnergyBall|Modest|252,,,252,4,||,0,,,,|||,,,,,Water]Tera Captain|Espathra|ColburBerry|SpeedBoost|CalmMind,StoredPower,DazzlingGleam,Protect|Modest|,,,252,4,252||,0,,,,|||,,,,,Fairy]Cyclizar||HeavyDutyBoots|Regenerator|DracoMeteor,RapidSpin,ShedTail,Uturn|Timid|248,,,8,,252|||||,,,,,Dragon]Tera Captain|Pecharunt|ColburBerry|PoisonPuppeteer|NastyPlot,MalignantChain,Hex,TeraBlast|Modest|252,,,244,12,||,0,,,,|||,,,,,Fairy"], + ["Clodsire||Leftovers|Unaware|Toxic,Spikes,Recover,GunkShot|Impish|252,,252,,4,|||||,,,,,Poison]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Earthquake,Uturn,StoneEdge,TeraBlast|Naive|,252,,4,,252|||||,,,,,Flying]Diancie||Leftovers|ClearBody|StealthRock,DiamondStorm,Moonblast,BodyPress|Sassy|248,,8,,252,|||||,,,,,Rock]Tera Captain|ArticunoGalar|HeavyDutyBoots|Competitive|CalmMind,FreezingGlare,Recover,TeraBlast|Timid|4,,,252,,252||,0,,,,|||,,,,,Fairy]Scizor||Leftovers|Technician|Uturn,KnockOff,BulletPunch,DualWingbeat|Adamant|252,252,4,,,|||||,,,,,Bug]Tatsugiri||HeavyDutyBoots|StormDrain|Surf,DracoMeteor,RapidSpin,NastyPlot|Timid|,,,252,,252|||||,,,,,Dragon","Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,IronHead,HeatCrash,DragonClaw|Jolly|64,252,,,8,184|||||,,,,,Fire]Tyranitar||SmoothRock|SandStream|KnockOff,Flamethrower,PowerGem,StealthRock|Calm|232,,,52,224,|||||,,,,,Rock]Tera Captain|Excadrill|ClearAmulet|SandRush|HighHorsepower,IronHead,RockSlide,SwordsDance|Adamant|112,252,,,4,140|||||,,,,,Steel]Palafin-Hero||HeavyDutyBoots|ZerotoHero|FlipTurn,IcePunch,JetPunch,DrainPunch|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|RotomMow|RockyHelmet|Levitate|WillOWisp,LeafStorm,FoulPlay,VoltSwitch|Bold|232,,252,,24,||,0,,,,|||,,,,,Electric]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,RapidSpin,Overheat,DragonTail|Timid|248,,172,,,88|||||,,,,,Dragon"], + ["Blaziken||CustapBerry|SpeedBoost|FlareBlitz,CloseCombat,Protect,SwordsDance|Adamant|,252,,,4,252|||||,,,,,Fire]Excadrill||ChoiceScarf|SandForce|Earthquake,IronHead,BrickBreak,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Ground]Hydrapple||AssaultVest|Regenerator|BodyPress,FickleBeam,GigaDrain,EarthPower|Modest|248,,,148,112,||,0,,,,|||,,,,,Grass]Mimikyu||ChoiceBand|Disguise|PlayRough,ShadowSneak,ShadowClaw,WoodHammer|Jolly|,252,,,4,252|||||,,,,,Ghost]Tera Captain|UrshifuRapidStrike|ChoiceBand|UnseenFist|AquaJet,CloseCombat,SurgingStrikes,Uturn|Jolly|,252,,,4,252|||||,,,,,Water]Minior||WhiteHerb|ShieldsDown|Acrobatics,ShellSmash,Earthquake,RockSlide|Adamant|,252,,,4,252|||S||,,,,,Grass","Tera Captain|Amoonguss|RockyHelmet|Regenerator|GigaDrain,Spore,Toxic,ClearSmog|Bold|248,,252,8,,||,0,,,,|||,,,,,Water]Darkrai||ChoiceScarf|BadDreams|Trick,IceBeam,Psychic,DarkPulse|Timid|76,,,252,4,172||,0,,,,|||,,,,,Dark]Enamorus||Leftovers|Contrary|Superpower,PlayRough,IronHead,Substitute|Jolly|,252,,,4,252|||||,,,,,Fairy]Volcanion||ChoiceSpecs|WaterAbsorb|SteamEruption,Flamethrower,EarthPower,SludgeWave|Modest|248,,,252,8,||,0,,,,|||,,,,,Fire]Cinccino||LoadedDice|Technician|TidyUp,BulletSeed,TripleAxel,TailSlap|Jolly|4,252,,,,252|||||,,,,,Normal]Tera Captain|Excadrill|AirBalloon|MoldBreaker|RapidSpin,SwordsDance,Earthquake,TeraBlast|Hasty|,252,,4,,252|||||,,,,,Ice"], + ["Pelipper||DampRock|Drizzle|KnockOff,RainDance,Uturn,Surf|Bold|252,,252,,,4|||||,,,,,Water]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|SwordsDance,Earthquake,Toxic,StealthRock|Jolly|252,,,,80,176|||||,,,,,Water]Archaludon||AssaultVest|Stamina|FlashCannon,ElectroShot,BodyPress,DracoMeteor|Modest|,,,252,252,4||,0,,,,|||,,,,,Steel]Grafaiai||ChoiceScarf|PoisonTouch|Uturn,KnockOff,GunkShot,Switcheroo|Jolly|,252,,,4,252|||||,,,,,Poison]Tera Captain|Basculegion|ChoiceBand|SwiftSwim|WaveCrash,AquaJet,FlipTurn,PhantomForce|Jolly|68,252,,,,188|||||,,,,,Water]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,SpiritBreak,DestinyBond|Jolly|100,208,,,,200|||||,,,,,Fairy","Enamorus||LifeOrb|CuteCharm|Moonblast,Agility,EarthPower,WeatherBall|Modest|144,,,252,8,104||,0,,,,|S||,,,,,Fairy]Tera Captain|Venusaur|AssaultVest|Overgrow|SludgeBomb,GigaDrain,AcidSpray,EarthPower|Modest|248,,,180,80,||,0,,,,|S||,,,,,Grass]Torkoal||HeavyDutyBoots|Drought|StealthRock,RapidSpin,WeatherBall,Yawn|Bold|248,,232,,28,|||||,,,,,Fire]Arbok||PayapaBerry|Intimidate|Glare,KnockOff,ToxicSpikes,PoisonJab|Impish|248,,148,,112,|||||,,,,,Poison]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,FlipTurn,DracoMeteor,DragonPulse|Timid|56,,,252,16,184|||||,,,,,Water]Hoopa-Unbound||SitrusBerry|Magician|ThunderPunch,TrickRoom,Psychic,HyperspaceFury|Brave|192,252,,,64,||,,,,,0|||,,,,,Psychic"], + ["Empoleon||Leftovers|Torrent|FlashCannon,Surf,Roar,StealthRock|Sassy|248,,8,,252,||,0,,,,|||,,,,,Water]Great Tusk||Leftovers|Protosynthesis|HeadlongRush,KnockOff,RapidSpin,IceSpinner|Impish|136,196,176,,,|||||,,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|DrainingKiss,AuraSphere,Psyshock,CalmMind|Timid|248,,36,,,224||,0,,,,|||,,,,,Fairy]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,FocusBlast,KnockOff,Uturn|Hasty|16,,,252,,240|||||,,,,,Flying]Zarude||ChoiceScarf|LeafGuard|PowerWhip,KnockOff,CloseCombat,Uturn|Adamant|,252,,,4,252|||||,,,,,Dark]Diancie||Leftovers|ClearBody|DiamondStorm,BodyPress,Moonblast,Spikes|Sassy|252,4,,,252,|||||,,,,,Rock","Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,AlluringVoice,CalmMind,Recover|Timid|252,,4,,,252||,0,,,,|||,,,,,Electric]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,Encore,FlipTurn|Timid|120,,,252,,136|||||,,,,,Ice]Cinderace||ChoiceBand|Libero|PyroBall,HighJumpKick,SuckerPunch,Uturn|Jolly|72,252,,,,184|||||,,,,,Fire]Iron Treads||AssaultVest|QuarkDrive|EarthPower,Megahorn,VoltSwitch,RapidSpin|Naive|,4,,252,,252|||||,,,,,Ground]Mandibuzz||HeavyDutyBoots|BigPecks|KnockOff,Uturn,Toxic,Roost|Impish|248,,244,,,16|||||,,,,,Dark]Tera Captain|Diancie|Leftovers|ClearBody|BodyPress,DiamondStorm,Rest,SleepTalk|Impish|252,,252,,,4|||||,,,,,Ghost"], + ["Tera Captain|Manaphy|MentalHerb|Hydration|TailGlow,Surf,EnergyBall,HeartSwap|Timid|,,,252,4,252||,0,,,,|||,,,,,Ghost]Landorus-Therian||RockyHelmet|Intimidate|Taunt,Earthquake,StealthRock,Uturn|Impish|252,,252,,4,|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,FirePunch,PoisonJab,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Fire]Tentacruel||AirBalloon|ClearBody|IceBeam,RapidSpin,FlipTurn,Toxic|Calm|252,,,,240,16|||||,,,,,Water]Cinderace||HeavyDutyBoots|Blaze|PyroBall,HighJumpKick,CourtChange,Uturn|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|Mismagius|Leftovers|Levitate|TeraBlast,ShadowBall,NastyPlot,Substitute|Timid|252,,,4,,252||,0,,,,|||,,,,,Poison","Primarina||AssaultVest|Torrent|Surf,Moonblast,FlipTurn,PsychicNoise|Calm|252,,16,36,204,|||||,,,,,Water]Corviknight||Leftovers|Pressure|BodyPress,Uturn,Roost,IronDefense|Impish|252,,136,,,120|||||,,,,,Flying]Magnezone||ChoiceSpecs|MagnetPull|Thunderbolt,FlashCannon,VoltSwitch,MirrorCoat|Modest|,,,252,4,252||,0,,,,|||,,,,,Steel]Tera Captain|Gholdengo|AirBalloon|GoodasGold|NastyPlot,ShadowBall,Recover,MakeItRain|Bold|252,,196,,,60|||||,,,,,Steel]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Spikes,Protect,Toxic|Impish|244,,248,,16,|||||,,,,,Water]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,FlareBlitz,Earthquake,MorningSun|Jolly|,252,4,,,252|||||,,,,,Fairy"], + ["Tera Captain|GreatTusk|MirrorHerb|Protosynthesis|CloseCombat,HeadlongRush,IceSpinner,RapidSpin|Jolly|4,252,,,,252|||||,,,,,Fairy]Tera Captain|Espeon|HeavyDutyBoots|MagicBounce|AlluringVoice,PsychicNoise,ThunderWave,ShadowBall|Timid|252,,,120,,136||,0,,,,|||,,,,,Fire]Rotom-Heat||ChoiceScarf|Levitate|VoltSwitch,Overheat,ShadowBall,Thunderbolt|Modest|32,,,252,,224||,0,,,,|||,,,,,Electric]Manaphy||ChoiceScarf|Hydration|HydroPump,FlipTurn,EnergyBall,AlluringVoice|Modest|,,,252,144,112|||||,,,,,Water]Roaring Moon||ChoiceBand|Protosynthesis|KnockOff,Outrage,Uturn,Earthquake|Adamant|,252,,,80,176|||||,,,,,Dragon]Klefki||IronBall|Prankster|Spikes,Switcheroo,Reflect,LightScreen|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel","Baxcalibur||LumBerry|ThermalExchange|DragonDance,GlaiveRush,IcicleCrash,BrickBreak|Adamant|,252,,,4,252|||||,,,,,Dragon]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Protect,Facade,Earthquake,SwordsDance|Impish|248,,252,,,8|||||,,,,,Flying]Ribombee||LightClay|ShieldDust|StickyWeb,Reflect,LightScreen,Uturn|Jolly|248,,,,8,252|||||,,,,,Bug]Gholdengo||ShucaBerry|GoodasGold|MakeItRain,ThunderWave,Recover,ShadowBall|Modest|248,,,252,,8||,0,,,,|||,,,,,Steel]Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,SacredSword,AquaJet,AquaCutter|Adamant|248,252,,,8,|||||,,,,,Water]Skeledirge||HeavyDutyBoots|Unaware|Roar,SlackOff,TorchSong,ShadowBall|Calm|248,,,8,252,||,0,,,,|||,,,,,Fire"], + ["Typhlosion-Hisui||FocusSash|Frisk|FireBlast,InfernalParade,Endeavor,FlameCharge|Timid|8,,,252,,248|||||,,,,,Fire]Meowscarada||MuscleBand|Protean|FlowerTrick,ThunderPunch,KnockOff,SuckerPunch|Adamant|,236,64,,,208|||||,,,,,Grass]Palafin||MentalHerb|ZerotoHero|BulkUp,CloseCombat,JetPunch,WaveCrash|Adamant|248,188,24,,48,|||||,,,,,Water]Tera Captain|Annihilape|CustapBerry|Defiant|StealthRock,RageFist,Uturn,Endeavor|Impish|244,,220,,44,|||||,,,,,Dragon]Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|Discharge,Hurricane,Roost,Uturn|Timid|,,76,188,20,224|||||,,,,,Electric]Glimmora||AssaultVest|ToxicDebris|MortalSpin,EarthPower,SludgeBomb,EnergyBall|Modest|236,,,84,120,68|||||,,,,,Rock","Great Tusk||ChoiceScarf|Protosynthesis|HeadlongRush,CloseCombat,IceSpinner,IronHead|Jolly|4,252,,,,252|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Uturn,KnockOff,HornLeech|Jolly|80,252,,,,176|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Hurricane,Uturn,SludgeWave,Psychic|Modest|52,,,252,,204|||||,,,,,Flying]Gengar||ChoiceSpecs|CursedBody|ShadowBall,SludgeBomb,WillOWisp,Trick|Timid|80,,,252,,176||,0,,,,|||,,,,,Ghost]Tinkaton||Leftovers|MoldBreaker|StealthRock,GigatonHammer,KnockOff,Encore|Careful|252,,4,,252,|||||,,,,,Fairy]Tera Captain|Appletun|Leftovers|ThickFat|AppleAcid,DragonPulse,Recover,LeechSeed|Modest|252,,4,252,,||,0,,,,|||,,,,,Dragon"], + ["Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,FocusBlast,NastyPlot,SludgeWave|Timid|88,,,252,,168||,0,,,,|||,,,,,Fighting]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,IceBeam,FlipTurn|Timid|88,,,252,,168|||||,,,,,Ice]Cyclizar||HeavyDutyBoots|Regenerator|DracoMeteor,KnockOff,RapidSpin,ShedTail|Bold|248,,144,,,116|||||,,,,,Dragon]Jirachi||ColburBerry|SereneGrace|BodySlam,PsychicNoise,Wish,Protect|Sassy|248,,8,,252,|||||,,,,,Steel]Cinderace||SilkScarf|Libero|SwordsDance,PyroBall,IronHead,QuickAttack|Adamant|120,252,,,4,132|||||,,,,,Fire]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,WillOWisp,PainSplit,Defog|Calm|248,,20,,240,||,0,,,,|||,,,,,Poison","Donphan||CustapBerry|Sturdy|Earthquake,IceShard,Endeavor,StealthRock|Adamant|248,252,,,8,|||||,,,,,Ground]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Trick,Memento|Timid|72,,,252,,184||,0,,,,|||,,,,,Steel]Tera Captain|Comfey|FairyFeather|Triage|CalmMind,DrainingKiss,TeraBlast,Synthesis|Modest|252,,4,252,,||,0,,,,|||,,,,,Fire]Gouging Fire||ShucaBerry|Protosynthesis|DragonDance,MorningSun,RagingFury,Earthquake|Adamant|,252,,,28,228|||||,,,,,Fire]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,Trailblaze,Synthesis|Jolly|,252,,,72,184|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,IcyWind,KnockOff,Uturn|Timid|252,,,4,,252|||||,,,,,Flying"], + ["Moltres||ChoiceScarf|FlameBody|Flamethrower,Hurricane,Uturn,Overheat|Timid|,,,252,4,252|||||,,,,,Fire]Great Tusk||HeavyDutyBoots|Protosynthesis|RapidSpin,HeadlongRush,BulkUp,StoneEdge|Jolly|,252,,,96,160|||||,,,,,Ground]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SwordsDance,BrickBreak,IvyCudgel,Trailblaze|Jolly|,252,16,,16,224|||||,,,,,Water]Indeedee-F||LightClay|PsychicSurge|Trick,Reflect,LightScreen,Psychic|Timid|252,,80,,,176||,0,,,,|||,,,,,Psychic]Tera Captain|IronCrown|BoosterEnergy|QuarkDrive|CalmMind,Agility,StoredPower,FocusBlast|Modest|52,,,252,,204||,20,,,,|||,,,,,Fairy]Tera Captain|Jolteon|HeavyDutyBoots|VoltAbsorb|CalmMind,Thunderbolt,TeraBlast,ShadowBall|Timid|64,,,252,,192||,0,,,,|||,,,,,Ground","Tera Captain|Annihilape|PunchingGlove|VitalSpirit|DrainPunch,RageFist,StoneEdge,BulkUp|Careful|248,20,68,,164,8|||||,,,,,Dragon]Tera Captain|Toxtricity|SafetyGoggles|PunkRock|Boomburst,Overdrive,SludgeBomb,ShiftGear|Modest|208,,,252,,48||,0,,,,|||,,,,,Bug]Enamorus||ChoiceScarf|CuteCharm|Moonblast,EarthPower,Psychic,HealingWish|Timid|8,,,252,,248||,0,,,,|||,,,,,Normal]Greninja-Bond||ExpertBelt|BattleBond|Surf,DarkPulse,SludgeWave,IceBeam|Timid|96,,,252,,160|||||,,,,,Normal]Iron Treads||SitrusBerry|QuarkDrive|Earthquake,KnockOff,RapidSpin,StealthRock|Careful|192,,,,252,64|||||,,,,,Normal]Alomomola||RockyHelmet|Regenerator|Scald,FlipTurn,Acrobatics,Wish|Relaxed|248,,176,,84,|||||,,,,,Normal"], + ["Darkrai||ChoiceScarf|BadDreams|SludgeBomb,DarkPulse,IceBeam,FocusBlast|Timid|,,,168,104,236||,0,,,,|||,,,,,Normal]Urshifu||FocusSash|UnseenFist|DrainPunch,WickedBlow,IronHead,Trailblaze|Jolly|16,252,,,,240|||||,,,,,Normal]Tera Captain|Regidrago|LumBerry|DragonsMaw|TeraBlast,DragonDance,Outrage,Earthquake|Lonely|32,252,,,,224|||||,,,,,Steel]Pecharunt||BlackSludge|PoisonPuppeteer|NastyPlot,Hex,MalignantChain,PartingShot|Timid|52,,,216,,240||,0,,,,|||,,,,,Normal]Tera Captain|ScreamTail|Leftovers|Protosynthesis|ThunderWave,DazzlingGleam,Wish,Protect|Calm|252,,,,244,12||,0,,,,|||,,,,,Steel]Corviknight||EjectButton|Pressure|Roost,Defog,BraveBird,Uturn|Careful|252,4,,,252,|||||,,,,,Normal","Iron Valiant||LifeOrb|QuarkDrive|Moonblast,ShadowBall,Thunderbolt,VacuumWave|Timid|40,,,252,,216||,0,,,,|||,,,,,Fairy]Tera Captain|GreninjaBond|LifeOrb|BattleBond|SwordsDance,Liquidation,UpperHand,GunkShot|Jolly|88,252,,,,168|||||,,,,,Water]Gliscor||ToxicOrb|PoisonHeal|Spikes,Taunt,Earthquake,Protect|Jolly|244,,128,,,136|||||,,,,,Ground]Slowking-Galar||ColburBerry|Regenerator|ThunderWave,SludgeBomb,Flamethrower,PsychicNoise|Modest|252,,72,84,100,||,0,,,,|||,,,,,Poison]Tera Captain|Appletun|SitrusBerry|Ripen|DragonTail,AppleAcid,DragonPulse,Recover|Sassy|252,,164,,92,|||||,,,,,Fairy]Rotom-Wash||StickyBarb|Levitate|Trick,WillOWisp,VoltSwitch,HydroPump|Bold|252,,48,,,208||,0,,,,|S||,,,,,Electric"], + ["Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,FireBlast,Flamethrower,Overheat|Timid|,,24,252,,232||,0,,,,|||,,,,,Bug]Iron Bundle||ChoiceSpecs|QuarkDrive|IceBeam,HydroPump,FreezeDry,FlipTurn|Timid|,,48,252,,208|||S||,,,,,Bug]Iron Treads||ClearAmulet|QuarkDrive|Earthquake,IceSpinner,VoltSwitch,RapidSpin|Jolly|252,,32,,,224|||S||,,,,,Bug]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,Trailblaze,SwordsDance,Synthesis|Jolly|32,64,220,,,192|||||,,,,,Rock]Tera Captain|EnamorusTherian|RockyHelmet|Overcoat|DrainingKiss,MysticalFire,EarthPower,CalmMind|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Morgrem||Eviolite|Prankster|DazzlingGleam,PartingShot,Reflect,LightScreen|Bold|252,,252,,4,||,0,,,,|S||,,,,,Bug","Garchomp||ChoiceScarf|RoughSkin|Earthquake,IronHead,StoneEdge,StealthRock|Adamant|16,252,,,,240|||||,,,,,Dragon]Corviknight||Leftovers|MirrorArmor|Roost,Uturn,Defog,BodyPress|Impish|252,,252,,4,|||||,,,,,Flying]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,Uturn,CloseCombat,BrickBreak|Adamant|,252,,,84,172|||||,,,,,Water]Florges||Leftovers|FlowerVeil|Moonblast,CalmMind,Synthesis,StoredPower|Calm|252,,,4,252,||,0,,,,|||,,,,,Fairy]Tera Captain|Arcanine|Leftovers|FlashFire|MorningSun,Flamethrower,ExtremeSpeed,CloseCombat|Sassy|252,4,,,252,|||||,,,,,Dark]Overqwil||BlackSludge|Intimidate|Crunch,Spikes,Haze,GunkShot|Impish|252,4,252,,,|||||,,,,,Dark"], + ["Tera Captain|Serperior|ChoiceScarf|Contrary|LeafStorm,EnergyBall,KnockOff,Glare|Modest|,,,252,12,244|||||,,,,,Grass]Greninja||FocusSash|Protean|Counter,Extrasensory,IceBeam,Spikes|Modest|48,,,252,,208||,0,,,,|||,,,,,Water]Quaquaval||LifeOrb|Moxie|AquaStep,AquaJet,CloseCombat,KnockOff|Adamant|24,252,4,,,228|||||,,,,,Water]Zapdos||RockyHelmet|Static|Hurricane,Uturn,Roost,HeatWave|Timid|248,,28,,,232|||S||,,,,,Electric]Tinkaton||SitrusBerry|Pickpocket|GigatonHammer,PlayRough,StealthRock,Encore|Careful|248,8,,,252,|||||,,,,,Fairy]Mamoswine||CustapBerry|ThickFat|Earthquake,IceShard,HeavySlam,Endure|Adamant|40,40,,,252,176|||||,,,,,Ice","Weezing-Galar||AssaultVest|Levitate|StrangeSteam,SludgeWave,Flamethrower,AcidSpray|Modest|248,,4,252,4,||,0,,,,|||,,,,,Poison]Brambleghast||LoadedDice|WindRider|BulletSeed,Poltergeist,RapidSpin,Spikes|Jolly|40,252,,,,216|||||,,,,,Grass]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|Thunderbolt,GrassKnot,VoltSwitch,SludgeWave|Timid|80,,,176,,252||,0,,,,|||,,,,,Electric]Darkrai||ChoiceSpecs|BadDreams|DarkPulse,IceBeam,Psychic,FocusBlast|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark]Urshifu-Rapid-Strike||ProtectivePads|UnseenFist|SurgingStrikes,AquaJet,CloseCombat,Uturn|Jolly|24,252,,,,232|||||,,,,,Fighting]Tera Captain|Dudunsparce|Leftovers|SereneGrace|Glare,Roost,StealthRock,Boomburst|Calm|252,,4,,252,||,0,,,,|||,,,,,Ghost"], + ["Tera Captain|Annihilape|Leftovers|Defiant|DrainPunch,RageFist,Encore,BulkUp|Careful|240,,,,252,16|||||,,,,,Fairy]Landorus-Therian||Leftovers|Intimidate|StealthRock,Earthquake,Uturn,RockTomb|Impish|252,,132,,124,|||||,,,,,Ground]Meowscarada||ChoiceScarf|Protean|TripleAxel,Uturn,KnockOff,FlowerTrick|Jolly|16,252,,,,240|||||,,,,,Grass]Ribombee||HeavyDutyBoots|ShieldDust|QuiverDance,BugBuzz,Moonblast,EnergyBall|Timid|24,,,252,,232||,0,,,,|||,,,,,Bug]Tera Captain|Sceptile|LifeOrb|Overgrow|GigaDrain,LeafStorm,DragonPulse,Substitute|Modest|56,,,252,,200||29,0,,,,|||,,,,,Rock]Tatsugiri-Droopy||AssaultVest|StormDrain|RapidSpin,DracoMeteor,Whirlpool,Counter|Bold|252,,128,,128,|||||,,,,,Dragon","Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,Trailblaze,IvyCudgel,PowerWhip|Jolly|20,252,,,,236|||||,,,,,Fire]Cyclizar||ChoiceScarf|Regenerator|ShedTail,RapidSpin,Uturn,Overheat|Quirky|84,128,,168,,128|||||,,,,,Dragon]Clodsire||BlackSludge|WaterAbsorb|Toxic,Earthquake,StealthRock,Recover|Careful|248,8,,,252,|||||,,,,,Poison]Tera Captain|Polteageist|FocusSash|WeakArmor|StoredPower,TeraBlast,StrengthSap,ShellSmash|Modest|28,,,252,,228||,0,,,,|S||,,,,,Fighting]Dondozo||RockyHelmet|Unaware|Liquidation,Avalanche,Yawn,Rest|Impish|252,4,252,,,|||||,,,,,Water]Tera Captain|Serperior|ChoiceSpecs|Contrary|LeafStorm,TeraBlast,LeechSeed,Synthesis|Modest|64,,,252,,192||,0,,,,|||,,,,,Stellar"], + ["Great Tusk||BoosterEnergy|Protosynthesis|Earthquake,IceSpinner,RapidSpin,CloseCombat|Jolly|108,252,,,4,144|||||,,,,,Ground]Mandibuzz||HeavyDutyBoots|Overcoat|Roost,Taunt,KnockOff,Toxic|Careful|248,8,,,252,|||||,,,,,Dark]Tera Captain|Kilowattrel|Magnet|Competitive|Thunderbolt,TeraBlast,Hurricane,VoltSwitch|Timid|200,,,168,4,136||,0,,,,|||,,,,,Water]Empoleon||Leftovers|Competitive|Haze,Roost,MetalClaw,SwordsDance|Careful|252,4,,,252,|||||,,,,,Water]Weezing||RockyHelmet|Levitate|PainSplit,Toxic,Flamethrower,WillOWisp|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Cinderace||ChoiceBand|Libero|PyroBall,ZenHeadbutt,Uturn,CourtChange|Jolly|64,252,,,4,184|||||,,,,,Fire","Kleavor||ChoiceScarf|Sharpness|Uturn,StoneAxe,Tailwind,XScissor|Jolly|84,252,,,,172|||||,,,,,Bug]Entei||ChoiceBand|InnerFocus|ExtremeSpeed,IronHead,StompingTantrum,SacredFire|Jolly|48,252,,,,208|||||,,,,,Fire]Landorus-Therian||Leftovers|Intimidate|Uturn,SmackDown,Earthquake,Fly|Impish|252,4,252,,,|||||,,,,,Ground]Tera Captain|Gengar|ChoiceScarf|CursedBody|ShadowBall,SludgeBomb,DazzlingGleam,Thunderbolt|Timid|16,,,252,,240||,0,,,,|||,,,,,Ghost]Kingambit||AssaultVest|SupremeOverlord|KowtowCleave,SuckerPunch,IronHead,LowKick|Careful|252,4,,,252,|||||,,,,,Dark]Urshifu-Rapid-Strike||ChoiceBand|UnseenFist|SurgingStrikes,CloseCombat,Uturn,AquaJet|Jolly|,252,,,4,252|||||,,,,,Fighting"], + ["Tera Captain|Hatterene|Leftovers|MagicBounce|DrainingKiss,CalmMind,MysticalFire,Psyshock|Bold|252,,204,,52,||,0,,,,|||,,,,,Ground]Archaludon||AssaultVest|Stamina|DracoMeteor,DragonTail,FlashCannon,BodyPress|Modest|252,,16,240,,|||||,,,,,Steel]Urshifu||ProtectivePads|UnseenFist|PoisonJab,Uturn,WickedBlow,SuckerPunch|Adamant|,252,,,4,252|||||,,,,,Fighting]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|VoltSwitch,TeraBlast,KnockOff,Thunderbolt|Modest|4,,,252,,252|||||,,,,,Flying]Chi-Yu||ChoiceScarf|BeadsofRuin|Flamethrower,Overheat,DarkPulse,FireBlast|Modest|,,,252,4,252||,0,,,,|||,,,,,Dark]Clefable||Leftovers|Unaware|Wish,ThunderWave,StealthRock,Moonblast|Calm|252,,4,,252,||,0,,,,|||,,,,,Fairy","Garchomp||HabanBerry|RoughSkin|Earthquake,SwordsDance,ScaleShot,PoisonJab|Jolly|16,252,,,,240|||||,,,,,Dragon]Tera Captain|Revavroom|ExpertBelt|Filter|ShiftGear,HighHorsepower,IronHead,GunkShot|Adamant|156,252,,,,100|||||,,,,,Ground]Granbull||AssaultVest|Intimidate|SuperFang,PlayRough,Earthquake,Trailblaze|Careful|252,4,,,252,|||||,,,,,Fairy]Uxie||LightClay|Levitate|Reflect,LightScreen,Uturn,StealthRock|Careful|252,,8,,248,|||||,,,,,Psychic]Blastoise||WhiteHerb|Torrent|AuraSphere,FlashCannon,ShellSmash,Surf|Modest|60,,,252,,196||,0,,,,|||,,,,,Water]Darkrai||ChopleBerry|BadDreams|DarkPulse,SludgeBomb,FocusBlast,NastyPlot|Modest|72,,,252,,184||,0,,,,|||,,,,,Dark"], + ["Glimmora||FocusSash|Corrosion|EarthPower,Spikes,StealthRock,Toxic|Modest|252,,,96,,52||,0,,,,|||,,,,,Rock]Samurott-Hisui||MysticWater|Sharpness|SwordsDance,RazorShell,SuckerPunch,AquaJet|Adamant|196,252,,,,60|||||,,,,,Water]Donphan||PasshoBerry|Sturdy|Earthquake,HeavySlam,IceShard,Encore|Adamant|252,184,60,,12,|||||,,,,,Ground]Tera Captain|Annihilape|MarangaBerry|Defiant|BulkUp,RageFist,DrainPunch,Rest|Adamant|252,72,4,,76,40|||||,,,,,Grass]Electrode-Hisui||Leftovers|Soundproof|Substitute,ChargeBeam,LeafStorm,Discharge|Modest|252,,20,132,,104||,0,,,,|||,,,,,Electric]Tornadus-Therian||WacanBerry|Regenerator|NastyPlot,Hurricane,HeatWave,Taunt|Timid|48,,,252,,208||,0,,,,|||,,,,,Flying","Palafin-Hero||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,WaveCrash,CloseCombat|Adamant|,252,,,4,252|||||,,,,,Water]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,IronDefense,IceSpinner,RapidSpin|Jolly|,252,16,,4,236|||||,,,,,Ground]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,Defog,Haze,Toxic|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Tera Captain|Cresselia|Leftovers|Levitate|Moonlight,CalmMind,Thunderbolt,Psychic|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Tera Captain|Raikou|LifeOrb|InnerFocus|VoltSwitch,Scald,ShadowBall,Thunderbolt|Timid|80,,,252,8,168||,0,,,,|||,,,,,Water]Appletun||EjectPack|ThickFat|DracoMeteor,LeafStorm,Recycle,Recover|Modest|248,,,252,8,||,0,,,,|||,,,,,Grass"], + ["Samurott-Hisui||FocusSash|Sharpness|AquaCutter,SuckerPunch,SacredSword,CeaselessEdge|Jolly|,252,,,4,252|||||,,,,,Water]Arboliva||Leftovers|SeedSower|StrengthSap,GigaDrain,HyperVoice,LeechSeed|Bold|248,,252,8,,||,0,,,,|||,,,,,Grass]Clodsire||BlackSludge|Unaware|Earthquake,GunkShot,ToxicSpikes,Recover|Careful|248,,8,,252,|||||,,,,,Poison]Necrozma||WeaknessPolicy|PrismArmor|TrickRoom,Earthquake,PhotonGeyser,XScissor|Adamant|252,252,,,4,|||||,,,,,Psychic]Heatran||ChoiceScarf|FlashFire|FireBlast,MagmaStorm,EarthPower,StealthRock|Timid|,,4,252,,252||,0,,,,|||,,,,,Fire]Tera Captain|IronHands|AssaultVest|QuarkDrive|IcePunch,ThunderPunch,FakeOut,DrainPunch|Adamant|,252,4,,252,|||||,,,,,Grass","Tera Captain|Serperior|HeavyDutyBoots|Contrary|LeafStorm,TeraBlast,Substitute,GastroAcid|Modest|16,,4,252,,236||,0,,,,|||,,,,,Ground]Palafin||ChoiceScarf|ZerotoHero|FlipTurn,WaveCrash,CloseCombat,IcePunch|Adamant|16,252,,,,240|||||,,,,,Water]Heatran||AirBalloon|FlashFire|MagmaStorm,ScorchingSands,DragonPulse,StealthRock|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Tera Captain|Umbreon|HeavyDutyBoots|InnerFocus|FoulPlay,AlluringVoice,Wish,Protect|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison]Latios||SoulDew|Levitate|DracoMeteor,LusterPurge,AuraSphere,FlipTurn|Timid|112,,,252,,144|||||,,,,,Dragon]Dachsbun||Leftovers|WellBakedBody|PlayRough,Copycat,Roar,Protect|Jolly|252,,80,,,176|||||,,,,,Fairy"], + ["Great Tusk||ChoiceScarf|Protosynthesis|StealthRock,CloseCombat,HeadlongRush,IceSpinner|Adamant|,252,4,,,252|||||,,,,,Ground]Weavile||HeavyDutyBoots|Pressure|KnockOff,IceShard,TripleAxel,LowKick|Jolly|,252,,,4,252|||S||,,,,,Dark]Alomomola||AssaultVest|Regenerator|FlipTurn,Scald,MirrorCoat,PlayRough|Relaxed|252,,184,,72,|||||,,,,,Water]Tera Captain|Jolteon|HeavyDutyBoots|VoltAbsorb|Discharge,VoltSwitch,ShadowBall,AlluringVoice|Timid|,,40,252,,216||,0,,,,|||,,,,,Fighting]Gholdengo||Leftovers|GoodasGold|ShadowBall,MakeItRain,Recover,ThunderWave|Calm|252,,44,,212,||,0,,,,|||,,,,,Steel]Tera Captain|Mew|LifeOrb|Synchronize|DragonDance,Poltergeist,PlayRough,Earthquake|Jolly|,252,,,4,252|||S||,,,,,Fairy","Urshifu||ChoiceScarf|UnseenFist|Uturn,IronHead,WickedBlow,CloseCombat|Jolly|56,252,,,,200|||||,,,,,Water]Scream Tail||Leftovers|Protosynthesis|Wish,Encore,Protect,DazzlingGleam|Timid|252,,88,,,168||,0,,,,|||,,,,,Normal]Volcanion||ShucaBerry|WaterAbsorb|FlameCharge,EarthPower,SteamEruption,Flamethrower|Modest|80,,,252,,176|||||,,,,,Steel]Brambleghast||HeavyDutyBoots|Infiltrator|StrengthSap,LeechSeed,RapidSpin,Poltergeist|Jolly|252,,24,,,232|||||,,,,,Poison]Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|Roost,Uturn,AirSlash,Thunderbolt|Timid|4,,,252,,252|||||,,,,,Water]Goodra||AssaultVest|SapSipper|DragonTail,Flamethrower,Bulldoze,IceBeam|Relaxed|252,,180,,76,|||||,,,,,Steel"], + ["Urshifu-Rapid-Strike||ChoiceBand|UnseenFist|SurgingStrikes,CloseCombat,Uturn,ThunderPunch|Adamant|,252,4,,,252|||||,,,,,Fighting]Tera Captain|Incineroar|Leftovers|Intimidate|KnockOff,FlareBlitz,PartingShot,WillOWisp|Adamant|252,252,4,,,|||||,,,,,Water]Tera Captain|Ogerpon|LifeOrb|Defiant|HornLeech,KnockOff,SwordsDance,Encore|Adamant|4,252,,,,252|||||,,,,,Grass]Glimmora||FocusSash|ToxicDebris|MortalSpin,EarthPower,StealthRock,EnergyBall|Timid|4,,,252,,252|||||,,,,,Rock]Gholdengo||ChoiceSpecs|GoodasGold|MakeItRain,ShadowBall,FocusBlast,Trick|Modest|4,,,252,,252||,0,,,,|||,,,,,Steel]Masquerain||FocusSash|Intimidate|EnergyBall,Toxic,StickyWeb,Uturn|Quiet|252,4,,252,,|||||,,,,,Bug","Weezing-Galar||RockyHelmet|NeutralizingGas|Defog,ToxicSpikes,WillOWisp,PainSplit|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Skeledirge||HeavyDutyBoots|Unaware|EarthPower,TorchSong,SlackOff,Yawn|Bold|248,,252,8,,||,0,,,,|||,,,,,Fire]Palafin||ChoiceBand|ZerotoHero|FlipTurn,WaveCrash,JetPunch,ZenHeadbutt|Jolly|,252,,,24,232|||||,,,,,Water]Ting-Lu||LumBerry|VesselofRuin|Payback,Earthquake,StealthRock,Rest|Adamant|4,252,,,252,|||||,,,,,Dark]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,DragonPulse,TeraBlast,Synthesis|Timid|24,,,252,,232||,0,,,,|||,,,,,Stellar]Tinkaton||AssaultVest|OwnTempo|GigatonHammer,KnockOff,PlayRough,Bulldoze|Careful|252,4,,,252,|||||,,,,,Fairy"], + ["Tera Captain|Lurantis|HeavyDutyBoots|Contrary|Superpower,Defog,Synthesis,KnockOff|Impish|248,,252,,,8|||||,,,,,Fairy]Tera Captain|Excadrill|LoadedDice|SandRush|SwordsDance,Earthquake,TeraBlast,RockBlast|Adamant|,252,36,,16,204|||||,,,,,Grass]Latios||ColburBerry|Levitate|DracoMeteor,DualWingbeat,FlipTurn,Earthquake|Jolly|64,252,,,,192|||||,,,,,Dragon]Tyranitar||SmoothRock|SandStream|Protect,KnockOff,StealthRock,IceBeam|Sassy|248,,60,,200,|||||,,,,,Rock]Weezing||RockyHelmet|Levitate|WillOWisp,ToxicSpikes,PainSplit,Flamethrower|Bold|248,,204,,56,||,0,,,,|||,,,,,Poison]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,IceBeam,Uturn|Timid|120,,,252,,136|||||,,,,,Ice","Tornadus-Therian||HeavyDutyBoots|Regenerator|Hurricane,FocusBlast,Tailwind,Uturn|Timid|88,,252,,,168|||||,,,,,Flying]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,HornLeech,Uturn|Jolly|,252,,,4,252|||||,,,,,Water]Garchomp||Leftovers|RoughSkin|Substitute,Protect,DragonTail,Earthquake|Jolly|252,,88,,124,44|||||,,,,,Dragon]Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,SacredSword,SuckerPunch,AquaJet|Adamant|224,252,,,,32|||||,,,,,Water]Tinkaton||ShucaBerry|MoldBreaker|StealthRock,Encore,KnockOff,GigatonHammer|Careful|252,,4,,252,|||||,,,,,Fairy]Tera Captain|Bellibolt|HeavyDutyBoots|Electromorphosis|SlackOff,Toxic,VoltSwitch,MuddyWater|Calm|252,,4,,252,||,0,,,,|||,,,,,Water"], + ["Palafin-Hero||ThroatSpray|ZerotoHero|Agility,Boomburst,IceBeam,Surf|Modest|252,,4,252,,||,0,,,,|||,,,,,Bug]Iron Treads||HeavyDutyBoots|QuarkDrive|RapidSpin,IronHead,StoneEdge,StealthRock|Adamant|48,252,,,,208|||||,,,,,Bug]Tera Captain|RagingBolt|HeavyDutyBoots|Protosynthesis|AncientPower,Thunderclap,Thunderbolt,CalmMind|Timid|40,,,252,,216||,20,,,,|||,,,,,Bug]Roaring Moon||BoosterEnergy|Protosynthesis|DragonDance,IronHead,KnockOff,Acrobatics|Jolly|36,220,,,,252|||||,,,,,Bug]Tera Captain|EnamorusTherian|Leftovers|Overcoat|CalmMind,IronDefense,DrainingKiss,MysticalFire|Bold|252,,180,76,,||,0,,,,|||,,,,,Poison]Weezing||BlackSludge|Levitate|Flamethrower,SludgeBomb,ToxicSpikes,Protect|Bold|252,,136,,120,||,0,,,,|||,,,,,Bug","Tera Captain|Mamoswine|ChoiceBand|ThickFat|IcicleCrash,IceShard,Earthquake,KnockOff|Jolly|,252,,,4,252|||||,,,,,Ice]Latios||LifeOrb|Levitate|Surf,DracoMeteor,FlipTurn,LusterPurge|Timid|,,,252,4,252|||||,,,,,Dragon]Minior||RockyHelmet|ShieldsDown|StealthRock,Uturn,RockSlide,Protect|Jolly|,252,,,4,252|||||,,,,,Rock]Tera Captain|Clefable|Leftovers|MagicGuard|Substitute,CalmMind,Moonblast,StoredPower|Modest|252,,,252,4,||,0,,,,|||,,,,,Water]Skarmory||HeavyDutyBoots|Sturdy|BodyPress,IronDefense,Spikes,Roost|Bold|252,,160,,,96||,0,,,,|||,,,,,Steel]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,HornLeech,StompingTantrum,SpikyShield|Jolly|,252,,,4,252|||||,,,,,Fire"], + ["Tera Captain|Mew|WikiBerry|Synchronize|IceBeam,EarthPower,VoltSwitch,DrainingKiss|Timid|104,,172,,,232||,0,,,,|||,,,,,Fairy]Torkoal||HeatRock|Drought|WillOWisp,StealthRock,Overheat,ScorchingSands|Calm|248,,,8,252,||,0,,,,|||,,,,,Fire]Great Tusk||AssaultVest|Protosynthesis|SupercellSlam,Earthquake,RapidSpin,CloseCombat|Jolly|,188,,,72,248|||||,,,,,Ground]Tera Captain|Venusaur|Leftovers|Chlorophyll|LeechSeed,Substitute,SolarBeam,SludgeBomb|Bold|208,,200,4,,96||,0,,,,|||,,,,,Electric]Gouging Fire||CustapBerry|Protosynthesis|HeatCrash,DragonDance,Outrage,Earthquake|Jolly|4,252,,,24,228|||||,,,,,Fire]Mandibuzz||HeavyDutyBoots|WeakArmor|Uturn,KnockOff,Roost,FoulPlay|Careful|244,,12,,252,||,,,,,24|||,,,,,Dark","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|ZenHeadbutt,IvyCudgel,PowerWhip,SwordsDance|Jolly|80,252,,,,176|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|WeatherBall,AirSlash,Uturn,KnockOff|Timid|252,,168,,,88|||||,,,,,Flying]Glimmora||FocusSash|ToxicDebris|MortalSpin,StealthRock,SludgeWave,DazzlingGleam|Modest|248,,8,252,,|||||,,,,,Rock]Alomomola||AssaultVest|Regenerator|FlipTurn,Wish,ChillingWater,HealingWish|Calm|,,252,4,252,|||||,,,,,Water]Urshifu||WeaknessPolicy|UnseenFist|BulkUp,Trailblaze,PoisonJab,DrainPunch|Jolly|88,252,,,,168|||||,,,,,Fighting]Heatran||FocusSash|FlashFire|WillOWisp,EarthPower,StealthRock,SteelBeam|Modest|232,,,252,,24||,0,,,,|||,,,,,Fire"], + ["Zoroark-Hisui||FocusSash|Illusion|WillOWisp,BitterMalice,FocusBlast,Uturn|Modest|4,,,252,,252|||S||,,,,,Normal]Tera Captain|Haxorus|Leftovers|MoldBreaker|DragonDance,IronHead,CloseCombat,Earthquake|Adamant|4,252,,,,252|||S||,,,,,Steel]Hatterene||AssaultVest|MagicBounce|DrainingKiss,MysticalFire,Psychic,Nuzzle|Bold|4,,252,252,,|||S||,,,,,Psychic]Iron Hands||AssaultVest|QuarkDrive|FakeOut,DrainPunch,IcePunch,SupercellSlam|Adamant|84,132,40,,252,|||S||,,,,,Fighting]Pecharunt||Leftovers|PoisonPuppeteer|MalignantChain,Recover,ShadowBall,PartingShot|Calm|52,,,204,252,||,0,,,,|||,,,,,Ghost]Minior||WhiteHerb|ShieldsDown|ShellSmash,Acrobatics,RockSlide,TeraBlast|Jolly|4,252,,,,252|||S||,,,,,Electric","Slowbro-Galar||AssaultVest|Regenerator|Psychic,ShellSideArm,FocusBlast,ShadowBall|Calm|252,,4,,252,|||S||,,,,,Poison]Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,BulkUp,Rest|Careful|252,,,,244,12|||S||,,,,,Fairy]Kingambit||LumBerry|SupremeOverlord|StealthRock,IronHead,KowtowCleave,ZenHeadbutt|Jolly|,252,,,4,252|||||,,,,,Dark]Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Blizzard,Extrasensory,Moonblast|Timid|88,,,252,,168||,0,,,,|S||,,,,,Ice]Tera Captain|Flygon|ChoiceScarf|Levitate|EarthPower,DragonPulse,Boomburst,Uturn|Timid|16,,,252,4,236|||||,,,,,Ground]Tornadus-Therian||Leftovers|Regenerator|Substitute,NastyPlot,AirSlash,Psychic|Timid|,,4,252,,252||,0,,,,|S||,,,,,Flying"], + ["Greninja||ChoiceScarf|Protean|Surf,DarkPulse,IceBeam,Uturn|Modest|,,,252,4,252|||||,,,,,Water]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,WillOWisp,Defog,PainSplit|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Tera Captain|Ceruledge|FocusSash|WeakArmor|BitterBlade,Poltergeist,CloseCombat,SwordsDance|Adamant|,252,,,4,252|||||,,,,,Water]Lokix||ChoiceBand|TintedLens|Uturn,FirstImpression,KnockOff,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Bug]Iron Treads||Leftovers|QuarkDrive|Earthquake,KnockOff,RapidSpin,VoltSwitch|Jolly|,252,,,4,252|||||,,,,,Ground]Rotom-Wash||ChoiceScarf|Levitate|HydroPump,VoltSwitch,WillOWisp,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric","Garchomp||YacheBerry|RoughSkin|StealthRock,Spikes,IronHead,Earthquake|Adamant|252,124,132,,,|||||,,,,,Dragon]Tera Captain|GreninjaBond|LifeOrb|BattleBond|HydroPump,DarkPulse,IceBeam,Protect|Timid|,,4,252,,252|||||,,,,,Dark]Scream Tail||BoosterEnergy|Protosynthesis|PsychicFangs,DrainPunch,BulkUp,PlayRough|Adamant|216,252,4,,,36|||||,,,,,Fairy]Scizor||SitrusBerry|Technician|BulletPunch,Uturn,CloseCombat,SwordsDance|Adamant|240,252,,,,16|||||,,,,,Bug]Terapagos||AssaultVest|TeraShift|TeraStarstorm,EarthPower,RapidSpin,DarkPulse|Modest|72,,,252,,184|||||,,,,,Stellar]Tera Captain|IronThorns|BoosterEnergy|QuarkDrive|DragonDance,StoneEdge,HeavySlam,Earthquake|Jolly|56,252,,,,200|||||,,,,,Grass"], + ["Weavile||PowerHerb|Pickpocket|SwordsDance,TripleAxel,LowKick,Dig|Jolly|32,252,,,,224|||||,,,,,Dark]Brambleghast|||WindRider|PowerWhip,Poltergeist,Substitute,StrengthSap|Jolly|,252,,,4,252|||||,,,,,Grass]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,Flamethrower,WillOWisp,PainSplit|Bold|248,,252,,8,||,0,,,,|||,,,,,Poison]Gastrodon-East||Leftovers|StickyHold|Spikes,Recover,Surf,ClearSmog|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderbolt,DragonPulse,Substitute,CalmMind|Modest|,,252,252,4,||,20,,,,|||,,,,,Flying]Corviknight||Leftovers|MirrorArmor|BraveBird,Uturn,Defog,Roost|Impish|252,4,252,,,|||||,,,,,Flying","Tera Captain|GreatTusk|Leftovers|Protosynthesis|Substitute,IronHead,BulkUp,BodyPress|Jolly|252,,96,,,160|||||,,,,,Steel]Tornadus-Therian||ChartiBerry|Regenerator|AirSlash,HeatWave,Uturn,Taunt|Timid|248,,32,,76,152|||||,,,,,Flying]Samurott-Hisui||ChoiceScarf|Sharpness|FlipTurn,CeaselessEdge,SacredSword,Encore|Adamant|,252,56,,,200|||||,,,,,Water]Latios||ChoiceSpecs|Levitate|FlipTurn,Thunderbolt,EnergyBall,PsychicNoise|Timid|16,,,252,,240|||||,,,,,Dragon]Tinkaton||RockyHelmet|Pickpocket|Encore,StealthRock,KnockOff,GigatonHammer|Jolly|248,,,,36,224|||||,,,,,Fairy]Tera Captain|Bellibolt|Leftovers|Static|Toxic,SlackOff,VoltSwitch,Thunderbolt|Bold|252,,156,,84,16||,0,,,,|||,,,,,Poison"], + ["Klefki||LightClay|Prankster|ThunderWave,DazzlingGleam,LightScreen,Reflect|Modest|252,,,252,4,||,0,,,,|||,,,,,Steel]Oricorio-Sensu||FocusSash|Dancer|Uturn,QuiverDance,AirSlash,RevelationDance|Modest|128,,,252,,128|||||,,,,,Ghost]Blaziken||HeavyDutyBoots|SpeedBoost|CloseCombat,KnockOff,Earthquake,SwordsDance|Adamant|252,252,4,,,|||||,,,,,Fire]Tera Captain|Latias|CheriBerry|Levitate|TeraBlast,IceBeam,AuraSphere,EnergyBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Poison]Excadrill||PasshoBerry|SandRush|Sandstorm,BodySlam,IronHead,BrickBreak|Adamant|228,252,,,,28|||||,,,,,Ground]Cyclizar||ChoiceScarf|Regenerator|ShedTail,Uturn,KnockOff,DracoMeteor|Hasty|252,,,8,,248|||||,,,,,Dragon","Donphan||AssaultVest|Sturdy|Earthquake,StoneEdge,IceShard,RapidSpin|Adamant|248,252,,,8,|||||,,,,,Ground]Sylveon||Leftovers|Pixilate|HyperVoice,Psychic,Wish,Protect|Bold|248,,252,8,,||,0,,,,|||,,,,,Fairy]Tera Captain|Staraptor|ChoiceScarf|Reckless|BraveBird,CloseCombat,Facade,Uturn|Jolly|96,252,,,,160|||||,,,,,Flying]Rotom-Wash||Leftovers|Levitate|Thunderbolt,HydroPump,ThunderWave,VoltSwitch|Modest|232,,,252,,24||,0,,,,|||,,,,,Electric]Tera Captain|Latias|HeavyDutyBoots|Levitate|Surf,IceBeam,MistBall,Recover|Modest|248,,8,252,,||,0,,,,|||,,,,,Water]Heatran||ShucaBerry|FlameBody|StealthRock,LavaPlume,PowerGem,Taunt|Calm|248,,,8,252,||,0,,,,|||,,,,,Fire"], + ["Palafin||AssaultVest|ZerotoHero|JetPunch,DrainPunch,IcePunch,FlipTurn|Adamant|252,,180,,76,|||||,,,,,Water]Tera Captain|Clefable|Leftovers|MagicGuard|StoredPower,Moonlight,CalmMind,CosmicPower|Bold|252,,200,,,56||,0,,,,|||,,,,,Steel]Latios||MindPlate|Levitate|Psychic,AuraSphere,CalmMind,Recover|Timid|,,4,252,,252||,0,,,,|||,,,,,Dragon]Sandslash||Leftovers|SandRush|Earthquake,KnockOff,StealthRock,RapidSpin|Impish|252,4,252,,,|||||,,,,,Ground]Wo-Chien||Leftovers|TabletsofRuin|KnockOff,Protect,Substitute,LeechSeed|Careful|252,,244,,,12|||||,,,,,Dark]Blaziken||ShucaBerry|SpeedBoost|FlareBlitz,CloseCombat,Uturn,Protect|Adamant|112,252,,,,144|||||,,,,,Fire","Vaporeon||Leftovers|WaterAbsorb|Scald,Wish,FlipTurn,IceBeam|Bold|248,,252,8,,|||||,,,,,Water]Tera Captain|Magnezone|LifeOrb|MagnetPull|TeraBlast,VoltSwitch,Thunderbolt,FlashCannon|Quiet|248,,,252,8,||,0,,,,0|||,,,,,Bug]Kleavor||FocusSash|Sharpness|StoneAxe,CloseCombat,Tailwind,Uturn|Adamant|252,252,,,4,|||||,,,,,Bug]Toedscruel||HeavyDutyBoots|MyceliumMight|Spore,KnockOff,RapidSpin,LeafStorm|Gentle|252,4,,,252,|||||,,,,,Ground]Enamorus||LifeOrb|CuteCharm|Moonblast,EarthPower,MysticalFire,SludgeBomb|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Dragonite||ChoiceSpecs|Multiscale|Thunderbolt,IceBeam,DracoMeteor,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon"], + ["Urshifu||ChoiceScarf|UnseenFist|PoisonJab,Uturn,WickedBlow,CloseCombat|Adamant|168,252,,,,88|||||,,,,,Fighting]Slowking-Galar||AssaultVest|Regenerator|SludgeWave,IceBeam,Flamethrower,FutureSight|Calm|252,,,84,172,||,0,,,,|||,,,,,Poison]Tera Captain|Heatran|Leftovers|FlashFire|TeraBlast,FireBlast,FlashCannon,WillOWisp|Timid|252,,,100,,156||,0,,,,|||,,,,,Grass]Swampert||Leftovers|Torrent|StealthRock,PoisonJab,FlipTurn,Liquidation|Impish|252,112,140,,4,|||||,,,,,Water]Thundurus||HeavyDutyBoots|Prankster|FocusBlast,Thunderbolt,ThunderWave,VoltSwitch|Modest|104,,,252,,152||,0,,,,|||,,,,,Electric]Tera Captain|Sylveon|Leftovers|Pixilate|HyperVoice,TeraBlast,CalmMind,Wish|Bold|252,,188,68,,||,0,,,,|||,,,,,Fire","Enamorus||FocusSash|Contrary|HealingWish,SludgeBomb,Moonblast,EarthPower|Timid|64,,,252,8,184||,0,,,,|S||,,,,,Fairy]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,SwordsDance,HornLeech,QuickAttack|Jolly|88,252,16,,,152|||||,,,,,Water]Ursaluna-Bloodmoon||AssaultVest|MindsEye|BloodMoon,EarthPower,HyperVoice,VacuumWave|Modest|208,,,164,136,||,0,,,,|||,,,,,Ground]Emboar||Leftovers|Blaze|DrainPunch,FirePunch,KnockOff,WillOWisp|Impish|248,8,252,,,|||S||,,,,,Fire]Scizor||LifeOrb|Technician|BulletPunch,Trailblaze,CloseCombat,Thief|Adamant|120,252,16,,,120|||||,,,,,Bug]Tera Captain|Hoopa|SitrusBerry|Magician|ShadowBall,Thunderbolt,Psyshock,EnergyBall|Modest|248,,,220,40,||,0,,,,|||,,,,,Psychic"], + ["Tera Captain|Latias|RockyHelmet|Levitate|Surf,AuraSphere,DracoMeteor,Recover|Timid|248,,192,,,68||,0,,,,|||,,,,,Water]Sneasler||ChoiceScarf|PoisonTouch|Uturn,CloseCombat,UpperHand,ThroatChop|Adamant|88,188,,,4,228|||||,,,,,Fighting]Tera Captain|Lokix|LifeOrb|TintedLens|FirstImpression,Uturn,SuckerPunch,Taunt|Adamant|,252,4,,,252|||||,,,,,Dark]Sandslash-Alola||ChoiceScarf|SlushRush|KnockOff,Earthquake,StealthRock,Spikes|Jolly|56,12,,,252,188|||||,,,,,Ice]Weezing-Galar||CustapBerry|NeutralizingGas|StrangeSteam,ToxicSpikes,WillOWisp,DestinyBond|Calm|248,,24,,60,176||,0,,,,|||,,,,,Poison]Kilowattrel||HeavyDutyBoots|VoltAbsorb|Thunderbolt,VoltSwitch,EerieImpulse,AirSlash|Timid|16,,,252,,240||,0,,,,|||,,,,,Electric","Tera Captain|Toxtricity|ChoiceScarf|PunkRock|Boomburst,VoltSwitch,Overdrive,SludgeWave|Timid|68,,,252,,188||,0,,,,|||,,,,,Normal]Necrozma||ColburBerry|PrismArmor|StealthRock,PsychicFangs,Moonlight,HeatWave|Relaxed|252,,252,,,|||||,,,,,Psychic]Infernape||ChoiceScarf|IronFist|MachPunch,Uturn,FlareBlitz,BrickBreak|Adamant|16,252,,,,240|||||,,,,,Fire]Kingambit||ChopleBerry|SupremeOverlord|IronHead,SuckerPunch,BrickBreak,SwordsDance|Adamant|168,252,,,,88|||||,,,,,Dark]Palafin||Leftovers|ZerotoHero|BulkUp,Substitute,JetPunch,IronHead|Adamant|56,200,,,252,|||||,,,,,Water]Noivern||Leftovers|Infiltrator|Roost,Defog,Flamethrower,DracoMeteor|Timid|252,,,,24,232||,0,,,,|||,,,,,Flying"], + ["Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|PowerWhip,KnockOff,BulkUp,Synthesis|Jolly|248,,,,148,112|||||,,,,,Electric]Iron Valiant||LifeOrb|QuarkDrive|Moonblast,ShadowBall,VacuumWave,CalmMind|Timid|80,,16,252,,160||,0,,,,|||,,,,,Fairy]Ursaluna-Bloodmoon||AssaultVest|MindsEye|BloodMoon,HyperVoice,EarthPower,VacuumWave|Modest|92,,,164,252,||,0,,,,|||,,,,,Ground]Rotom-Wash||RockyHelmet|Levitate|HydroPump,VoltSwitch,WillOWisp,PainSplit|Bold|248,,252,,,8||,0,,,,|||,,,,,Electric]Jirachi||ColburBerry|SereneGrace|DoomDesire,Uturn,LightScreen,StealthRock|Jolly|248,,,,108,152|||||,,,,,Steel]Abomasnow||HeavyDutyBoots|SnowWarning|Blizzard,GigaDrain,Earthquake,IceShard|Quiet|248,,8,252,,|||||,,,,,Grass","Arcanine-Hisui||ChoiceScarf|RockHead|IronHead,StealthRock,HeadSmash,FlareBlitz|Adamant|80,252,,,,176|||S||,,,,,Fire]Landorus||LifeOrb|SheerForce|EarthPower,NastyPlot,SludgeWave,Psychic|Timid|8,,,252,,248||,0,,,,|||,,,,,Ground]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Synthesis,Glare|Modest|12,,,252,,244||,0,,,,|S||,,,,,Poison]Sneasler||NormalGem|Unburden|CloseCombat,DireClaw,SwordsDance,FakeOut|Jolly|40,252,,,,216|||||,,,,,Fighting]Grafaiai||DampRock|Prankster|PartingShot,KnockOff,RainDance,Uturn|Jolly|40,252,,,,216|||||,,,,,Poison]Tera Captain|Floatzel|ChoiceBand|SwiftSwim|WaveCrash,IceSpinner,FlipTurn,AquaJet|Adamant|,252,,,4,252|||S||,,,,,Steel"], + ["Tera Captain|Tyranitar|KebiaBerry|Unnerve|Crunch,DragonDance,Substitute,TeraBlast|Jolly|36,252,,,,220|||||,,,,,Fairy]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,Psyshock,ShadowBall,VacuumWave|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Dragalge||BlackSludge|Adaptability|Haze,FlipTurn,DracoMeteor,SludgeWave|Calm|244,,,24,232,8|||||,,,,,Poison]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,StealthRock,Uturn,Taunt|Impish|248,,200,,,60|||||,,,,,Water]Scizor||LumBerry|Technician|QuickAttack,Uturn,Thief,DualWingbeat|Adamant|248,76,60,,124,|||||,,,,,Bug]Slowking||ColburBerry|Regenerator|ThunderWave,FutureSight,ChillyReception,ShadowBall|Calm|248,,200,,60,||,0,,,,|||,,,,,Water","Tera Captain|Lapras|LoadedDice|WaterAbsorb|IcicleSpear,Earthquake,DragonDance,Substitute|Adamant|,252,,,4,252|||||,,,,,Ground]Tera Captain|IronMoth|HeavyDutyBoots|QuarkDrive|MorningSun,FieryDance,Uturn,EnergyBall|Modest|8,,,252,,248|||||,,,,,Fire]Garchomp||RoseliBerry|RoughSkin|Spikes,Earthquake,DragonTail,Flamethrower|Jolly|248,,60,,,200|||||,,,,,Dragon]Jirachi||AssaultVest|SereneGrace|IronHead,IcePunch,Uturn,FirePunch|Jolly|40,252,,,,216|||||,,,,,Steel]Rotom-Wash||Leftovers|Levitate|NastyPlot,HydroPump,Thunderbolt,StoredPower|Modest|248,,,84,,176||,0,,,,|||,,,,,Electric]Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,SludgeBomb,IceBeam,FocusBlast|Timid|72,,,252,,184||,0,,,,|||,,,,,Dark"], + ["Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,FlipTurn,IceBeam,HydroPump|Timid|,,,252,4,252|||||,,,,,Ice]Overqwil||BlackSludge|Intimidate|Crunch,Taunt,Spikes,Toxic|Impish|248,,76,,,184|||||,,,,,Dark]Cinderace||ChoiceBand|Libero|PyroBall,FlareBlitz,SmackDown,Uturn|Adamant|24,252,,,,232|||||,,,,,Fire]Tera Captain|UrshifuRapidStrike|RindoBerry|UnseenFist|SurgingStrikes,DrainPunch,BulkUp,Trailblaze|Jolly|80,,,,252,176|||||,,,,,Ghost]Tera Captain|Dudunsparce|Leftovers|Rattled|Glare,Roost,Thunderbolt,Boomburst|Bold|248,,100,,160,||,0,,,,|||,,,,,Water]Iron Treads||HeavyDutyBoots|QuarkDrive|RapidSpin,VoltSwitch,StealthRock,Earthquake|Jolly|248,,44,,,216|||||,,,,,Ground","Ceruledge||AirBalloon|WeakArmor|WillOWisp,BitterBlade,ShadowSneak,Poltergeist|Adamant|,252,28,,,228|||||,,,,,Fire]Muk||AssaultVest|PoisonTouch|DrainPunch,ShadowSneak,GunkShot,KnockOff|Careful|248,8,,,252,|||||,,,,,Poison]Corviknight||RockyHelmet|MirrorArmor|Roost,Defog,BodyPress,Uturn|Impish|248,,252,,8,|||||,,,,,Flying]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|Earthquake,KnockOff,BulkUp,CloseCombat|Jolly|8,,,,252,248|||||,,,,,Fighting]Meowscarada||HeavyDutyBoots|Protean|Taunt,KnockOff,SuckerPunch,Uturn|Jolly|32,252,,,,224|||||,,,,,Grass]Iron Bundle||HeavyDutyBoots|QuarkDrive|FlipTurn,Encore,FreezeDry,HydroPump|Modest|,,,252,4,252|||||,,,,,Ice"], + ["Tornadus-Therian||AssaultVest|Regenerator|FoulPlay,Uturn,SludgeWave,FocusBlast|Timid|252,,,,120,136|||||,,,,,Flying]Infernape||LifeOrb|IronFist|FirePunch,StealthRock,WillOWisp,DrainPunch|Jolly|,252,,,16,240|||||,,,,,Fire]Baxcalibur||LumBerry|ThermalExchange|GlaiveRush,DragonDance,IcicleSpear,Substitute|Adamant|4,252,,,,252|||||,,,,,Dragon]Tera Captain|PorygonZ|ChoiceScarf|Adaptability|TriAttack,TeraBlast,Trick,HyperBeam|Modest|100,,,252,,156||,0,,,,|||,,,,,Ground]Milotic||FlameOrb|MarvelScale|Scald,FlipTurn,DragonTail,Recover|Impish|252,4,252,,,|||||,,,,,Water]Gengar||FocusSash|CursedBody|ShadowBall,FocusBlast,WillOWisp,DestinyBond|Timid|32,,,252,,224||,0,,,,|||,,,,,Ghost","Iron Boulder||KasibBerry|QuarkDrive|SwordsDance,MightyCleave,WildCharge,ZenHeadbutt|Jolly|,252,,,24,232|||||,,,,,Rock]Enamorus||ChoiceScarf|CuteCharm|Moonblast,HealingWish,MysticalFire,Psychic|Mild|,,,252,8,248||,0,,,,|||,,,,,Fairy]Tera Captain|Rillaboom|OccaBerry|GrassySurge|HighHorsepower,DrainPunch,DrumBeating,KnockOff|Impish|248,,252,,8,|||||,,,,,Water]Kyurem||LoadedDice|Pressure|DragonDance,IcicleSpear,ScaleShot,EarthPower|Hasty|32,252,,8,,216|||||,,,,,Dragon]Tera Captain|SandyShocks|HeavyDutyBoots|Protosynthesis|Spikes,Reflect,VoltSwitch,ScorchingSands|Calm|248,,,8,252,||,0,,,,|||,,,,,Ghost]Tentacruel||AssaultVest|ClearBody|FlipTurn,SludgeBomb,KnockOff,HydroPump|Timid|,,,252,80,176|||||,,,,,Water"], + ["Tera Captain|OricorioSensu|HeavyDutyBoots|Dancer|QuiverDance,Taunt,RevelationDance,AirSlash|Timid|200,,,92,,216||,0,,,,|S||,,,,,Fighting]Heatran||PowerHerb|FlashFire|MagmaStorm,Taunt,SolarBeam,EarthPower||96,,,252,,160||,0,,,,|S||,,,,,Fire]Greninja||LifeOrb|Protean|Surf,DarkPulse,Uturn,IceBeam|Hasty|96,,,252,,160|||S||,,,,,Water]Tinkaton||RockyHelmet|Pickpocket|PlayRough,StealthRock,ThunderWave,KnockOff|Impish|252,,232,,,24|||S||,,,,,Fairy]Tera Captain|Latias|WeaknessPolicy|Levitate|StoredPower,Agility,CalmMind,DrainingKiss|Timid|252,,,,8,248||,0,,,,|||,,,,,Fairy]Great Tusk||BoosterEnergy|Protosynthesis|SmackDown,HeadlongRush,CloseCombat,BulkUp|Jolly|252,4,,,,252|||||,,,,,Ground","Meowscarada|||Protean|Acrobatics,Uturn,FlowerTrick,LowKick|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Latias|ChoiceSpecs|Levitate|IceBeam,DracoMeteor,MistBall,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Rotom-Wash||AguavBerry|Levitate|VoltSwitch,HydroPump,WillOWisp,ThunderWave|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Great Tusk||HeavyDutyBoots|Protosynthesis|RapidSpin,HeadlongRush,CloseCombat,StealthRock|Adamant|252,252,,,4,|||||,,,,,Ground]Ursaring||Eviolite|Guts|BulkUp,Rest,BodySlam,SleepTalk|Careful|252,4,,,252,|||||,,,,,Normal]Tinkaton||Leftovers|MoldBreaker|ThunderWave,GigatonHammer,PlayRough,Encore|Careful|252,4,,,252,|||||,,,,,Fairy"], + ["Meowscarada||HeavyDutyBoots|Protean|KnockOff,FlowerTrick,TripleAxel,BrickBreak|Adamant|144,252,,,,112|||||,,,,,Grass]Gengar||ChoiceScarf|CursedBody|ShadowBall,DazzlingGleam,Thunderbolt,EnergyBall|Modest|40,,,252,,216||,0,,,,|||,,,,,Ghost]Landorus-Therian||Leftovers|Intimidate|StealthRock,EarthPower,Uturn,Taunt|Bold|248,,252,,,8|||||,,,,,Ground]Bellibolt||RockyHelmet|Static|VoltSwitch,MuddyWater,SlackOff,Toxic|Calm|248,,112,,148,||,0,,,,|||,,,,,Electric]Heatran||Leftovers|FlameBody|LavaPlume,WillOWisp,Protect,HeavySlam|Sassy|248,36,,,224,|||||,,,,,Fire]Tera Captain|Comfey|Leftovers|Triage|CalmMind,DrainingKiss,TeraBlast,Synthesis|Modest|248,,8,252,,||,0,,,,|||,,,,,Ground","Archaludon||ChestoBerry|Stamina|FlashCannon,BodyPress,Rest,StealthRock|Modest|96,,,132,252,28||,0,,,,|||,,,,,Steel]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|TeraBlast,Fly,Earthquake,Uturn|Jolly|48,252,,,,208|||||,,,,,Flying]Tera Captain|Diancie|WeaknessPolicy|ClearBody|DiamondStorm,PlayRough,EarthPower,TrickRoom|Brave|252,184,,72,,|||||,,,,,Dragon]Quaquaval||Leftovers|Moxie|AquaStep,CloseCombat,BulkUp,Roost|Adamant|252,56,,,,200|||||,,,,,Water]Darkrai||Leftovers|BadDreams|DarkPulse,SludgeBomb,Substitute,Hypnosis|Timid|8,,,252,,248||,0,,,,|||,,,,,Dark]Arbok||RockyHelmet|Intimidate|GunkShot,Earthquake,Glare,PainSplit|Impish|220,,252,,,36|||||,,,,,Poison"], + ["Tera Captain|Vikavolt|HeavyDutyBoots|Levitate|StickyWeb,VoltSwitch,BugBuzz,Thunderbolt|Modest|252,,,252,4,||,0,,,,|||,,,,,Electric]Tera Captain|Latias|SalacBerry|Levitate|CalmMind,Recover,StoredPower,AuraSphere|Timid|252,,,4,,252||,0,,,,|||,,,,,Dark]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Memento|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Rillaboom||AssaultVest|GrassySurge|GrassyGlide,StompingTantrum,DrumBeating,Uturn|Adamant|252,252,,,,|||||,,,,,Grass]Sneasler||BlackBelt|PoisonTouch|FakeOut,Uturn,DireClaw,CloseCombat|Jolly|76,252,,,4,176|||||,,,,,Fighting]Quagsire||Leftovers|WaterAbsorb|StealthRock,Earthquake,Liquidation,Recover|Impish|252,4,240,,12,|||||,,,,,Water","Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,Trailblaze,SpikyShield,Spikes|Jolly|,252,,,4,252|||||,,,,,Rock]Kilowattrel||CustapBerry|VoltAbsorb|VoltSwitch,Hurricane,ThunderWave,Endure|Timid|,,40,252,,216||,0,,,,|||,,,,,Electric]Palafin||PunchingGlove|ZerotoHero|JetPunch,GrassKnot,IcePunch,Taunt|Jolly|,216,,,40,252|||||,,,,,Water]Kingambit||FocusSash|SupremeOverlord|IronHead,BrickBreak,SuckerPunch,MetalBurst|Adamant|248,252,,,,8|||||,,,,,Dark]Palossand||ColburBerry|WaterCompaction|Poltergeist,EarthPower,StealthRock,ShoreUp|Relaxed|248,,252,8,,|||||,,,,,Ghost]Gouging Fire||Leftovers|Protosynthesis|FlareBlitz,DragonTail,BurningBulwark,MorningSun|Impish|248,,64,,188,8|||||,,,,,Fire"], + ["Greninja||HeavyDutyBoots|Protean|SludgeWave,IceBeam,DarkPulse,Uturn|Timid|,,,252,4,252|||S||,,,,,Water]Ursaluna-Bloodmoon||YacheBerry|MindsEye|BloodMoon,VacuumWave,Moonlight,CalmMind|Modest|252,,,252,,||,0,,,,|||,,,,,Ground]Talonflame||HeavyDutyBoots|FlameBody|Defog,TemperFlare,Roost,Uturn|Impish|212,,252,,,44|||||,,,,,Fire]Jirachi||ChoiceScarf|SereneGrace|IronHead,Uturn,HealingWish,Encore|Jolly|,252,,,4,252|||||,,,,,Steel]Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,BulkUp,IcePunch|Careful|160,,,,252,96|||||,,,,,Water]Whimsicott||RockyHelmet|Prankster|Taunt,Uturn,Moonblast,LeechSeed|Bold|252,,252,4,,|||||,,,,,Grass","Tera Captain|Gholdengo|ChoiceSpecs|GoodasGold|MakeItRain,ShadowBall,DazzlingGleam,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Dondozo||ChestoBerry|Unaware|WaveCrash,BodyPress,Curse,Rest|Impish|248,8,252,,,|||||,,,,,Water]Typhlosion||ChoiceScarf|FlashFire|Eruption,FireBlast,Extrasensory,FocusBlast|Modest|,,,252,4,252||,0,,,,|||,,,,,Fire]Ting-Lu||Leftovers|VesselofRuin|Earthquake,BodyPress,StealthRock,Protect|Impish|252,4,252,,,|||||,,,,,Dark]Tornadus-Therian||Leftovers|Regenerator|AirSlash,DarkPulse,Taunt,NastyPlot|Timid|168,,,252,,88||,0,,,,|||,,,,,Flying]Tera Captain|Tsareena|HeavyDutyBoots|QueenlyMajesty|PowerWhip,KnockOff,Synthesis,RapidSpin|Adamant|80,252,,,4,172|||||,,,,,Grass"], + ["Garchomp||LoadedDice|RoughSkin|ScaleShot,Earthquake,RockSlide,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dragon]Sylveon||Leftovers|Pixilate|CalmMind,HyperVoice,Wish,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,Encore,HydroPump,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Tentacruel||BlackSludge|LiquidOoze|RapidSpin,FlipTurn,KnockOff,Surf|Bold|252,,252,4,,|||||,,,,,Water]Tera Captain|ThundurusTherian|LifeOrb|VoltAbsorb|TeraBlast,Thunderbolt,NastyPlot,DarkPulse|Timid|,,,252,4,252||,0,,,,|S||,,,,,Fighting]Glimmet||FocusSash|ToxicDebris|StealthRock,Spikes,RainDance,Memento|Timid|4,,252,,,252||,0,,,,|||,,,,,Rock","Latios||ChoiceScarf|Levitate|DracoMeteor,LusterPurge,ShadowBall,FlipTurn|Timid|64,,,252,,192|||||,,,,,Dragon]Tyranitar||ChoiceScarf|SandStream|RockSlide,HeavySlam,IcePunch,KnockOff|Jolly|,252,,,76,180|||||,,,,,Rock]Tera Captain|Excadrill|HeavyDutyBoots|SandRush|StealthRock,Earthquake,IronHead,TeraBlast|Jolly|32,252,,,,224|||||,,,,,Ice]Fezandipiti||CovertCloak|ToxicChain|Moonblast,GunkShot,Uturn,Roost|Adamant|252,60,,,196,|||||,,,,,Poison]Talonflame||HeavyDutyBoots|GaleWings|SwordsDance,BraveBird,FlareBlitz,Roost|Adamant|72,252,,,,184|||||,,,,,Fire]Alomomola||AssaultVest|Regenerator|FlipTurn,Scald,IceBeam,MirrorCoat|Relaxed|,,160,96,252,||,,,,,0|||,,,,,Water"], + ["Chi-Yu||ChoiceScarf|BeadsofRuin|HeatWave,DarkPulse,Psychic,Hex|Modest|,,,252,4,252||,0,,,,|||,,,,,Dark]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,Uturn,SludgeWave,GrassKnot|Timid|80,,,176,,252|||S||,,,,,Flying]Tera Captain|LandorusTherian|AssaultVest|Intimidate|Uturn,Earthquake,BrickBreak,StoneEdge|Jolly|,252,,,4,252|||S||,,,,,Fighting]Tera Captain|Tinkaton|LightClay|MoldBreaker|FakeOut,KnockOff,GigatonHammer,LightScreen|Jolly|,252,,,4,252|||||,,,,,Poison]Terapagos||Leftovers|TeraShift|BugBuzz,StoredPower,CalmMind,RapidSpin|Modest|248,,20,220,20,|||||,,,,,Stellar]Electrode||FocusSash|Aftermath|ThunderWave,VoltSwitch,Explosion,Taunt|Hasty|156,160,,136,,56|||S||,,,,,Electric","Electabuzz||Eviolite|Static|VoltSwitch,Thunderbolt,KnockOff,IcePunch|Hasty|,40,,252,,216|||S||,,,,,Electric]Swampert||Leftovers|Torrent|StealthRock,Earthquake,FlipTurn,Protect|Careful|252,,4,,252,|||S||,,,,,Water]Darkrai||FocusSash|BadDreams|DarkPulse,IceBeam,NastyPlot,Hypnosis|Timid|,,32,252,,224||,0,,,,|S||,,,,,Dark]Tera Captain|Infernape|LifeOrb|Blaze|FireBlast,VacuumWave,TeraBlast,NastyPlot|Timid|,,,252,64,192||,0,,,,|S||,,,,,Electric]Slowking-Galar||ColburBerry|Regenerator|SludgeBomb,IceBeam,ThunderWave,ChillyReception|Calm|252,,4,,252,||,0,,,,|S||,,,,,Poison]Hydrapple||AssaultVest|Regenerator|DracoMeteor,GigaDrain,EarthPower,FickleBeam|Modest|248,,,56,204,||,0,,,,|S||,,,,,Grass"], + ["Meowscarada||ProtectivePads|Protean|KnockOff,BrickBreak,PowerGem,Uturn|Naive|104,252,,,,152|||||,,,,,Grass]Gouging Fire||BoosterEnergy|Protosynthesis|DragonClaw,FlareBlitz,DragonDance,MorningSun|Jolly|,252,4,,,252|||||,,,,,Fire]Slowking||HeavyDutyBoots|Regenerator|Scald,Yawn,ShadowBall,ChillyReception|Calm|252,,68,,188,||,0,,,,|||,,,,,Water]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|TeraBlast,Uturn,RockSlide,Earthquake|Jolly|,252,4,,,252|||||,,,,,Steel]Orthworm||SitrusBerry|EarthEater|ShedTail,IronHead,StealthRock,BodyPress|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Steel]Weezing-Galar||BlackSludge|Levitate|Defog,StrangeSteam,Thunderbolt,Flamethrower|Impish|252,,252,,4,||,0,,,,|||,,,,,Poison","Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,IceSpinner,KnockOff,RapidSpin|Jolly|,252,,,40,216|||||,,,,,Ground]Clefable||RockyHelmet|Unaware|Moonlight,Moonblast,StealthRock,ThunderWave|Bold|252,,252,,,4||,0,,,,|||,,,,,Fairy]Weavile||HeavyDutyBoots|Pickpocket|IceShard,KnockOff,IceSpinner,SwordsDance|Jolly|16,252,,,,240|||||,,,,,Dark]Tera Captain|Latias|Leftovers|Levitate|Agility,DragonPulse,CalmMind,StoredPower|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Empoleon||Leftovers|Competitive|Surf,FlipTurn,Roost,IceBeam|Bold|252,,112,,100,44|||||,,,,,Water]Moltres||HeavyDutyBoots|FlameBody|ScorchingSands,Flamethrower,Roost,Uturn|Bold|248,,248,,,12|||||,,,,,Fire"], + ["Kingambit||ChopleBerry|SupremeOverlord|SwordsDance,SuckerPunch,LowKick,KowtowCleave|Adamant|4,252,252,,,|||||,,,,,Dark]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,FlipTurn,Encore|Timid|,,,252,4,252|||||,,,,,Ice]Raging Bolt||BoosterEnergy|Protosynthesis|Thunderclap,DracoMeteor,Thunderbolt,CalmMind|Modest|212,,,252,,44||,20,,,,|||,,,,,Electric]Weezing-Galar||RockyHelmet|Levitate|Defog,StrangeSteam,ClearSmog,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Kilowattrel||HeavyDutyBoots|VoltAbsorb|Hurricane,Thunderbolt,VoltSwitch,ThunderWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Tera Captain|LilligantHisui|WideLens|Hustle|CloseCombat,TeraBlast,LeafBlade,VictoryDance|Adamant|,252,,4,,252|||||,,,,,Ghost","Tera Captain|Latias|Leftovers|Levitate|StoredPower,AuraSphere,Substitute,CalmMind|Bold|248,,240,,16,4||,0,,,,|||,,,,,Steel]Mamoswine||LoadedDice|ThickFat|Earthquake,IcicleSpear,RockBlast,IceShard|Adamant|8,252,16,,16,216|||||,,,,,Ice]Samurott-Hisui||HeavyDutyBoots|Sharpness|CeaselessEdge,RazorShell,Taunt,SacredSword|Adamant|8,248,24,,224,4|||||,,,,,Water]Empoleon||Leftovers|Competitive|FlashCannon,FlipTurn,Roost,StealthRock|Calm|240,,,16,252,|||||,,,,,Water]Muk||RockyHelmet|PoisonTouch|DrainPunch,KnockOff,IcePunch,ShadowSneak|Impish|232,,248,,28,|||||,,,,,Poison]Tera Captain|IronThorns|BoosterEnergy|QuarkDrive|StoneEdge,FirePunch,Taunt,DragonDance||32,252,8,,4,212|||||,,,,,Poison"], + ["Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Overheat,FireBlast,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Greninja-Bond||LifeOrb|BattleBond|HydroPump,DarkPulse,GrassKnot,GunkShot|Hasty|,96,,252,,160|||||,,,,,Water]Uxie||Leftovers|Levitate|KnockOff,Uturn,Encore,ThunderWave|Careful|252,,4,,252,|||||,,,,,Psychic]Tera Captain|IronHands|ChoiceBand|QuarkDrive|WildCharge,CloseCombat,PlayRough,HeavySlam|Adamant|,236,,,180,92|||||,,,,,Fighting]Iron Treads||Leftovers|QuarkDrive|StealthRock,Earthquake,RapidSpin,VoltSwitch|Jolly|248,,,,52,208|||||,,,,,Ground]Tera Captain|Ursaring|FlameOrb|Guts|Facade,PlayRough,CloseCombat,Trailblaze|Jolly|40,252,,,,216|||||,,,,,Normal","Tera Captain|Latias|Leftovers|Levitate|Recover,ThunderWave,Psychic,AuraSphere|Modest|252,,,252,4,||,0,,,,|||,,,,,Water]Chi-Yu||ChoiceScarf|BeadsofRuin|FireBlast,DarkPulse,Ruination,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Jirachi||Leftovers|SereneGrace|Substitute,CalmMind,Psychic,AuraSphere|Bold|224,,252,,,32||,0,,,,|||,,,,,Steel]Quagsire||Leftovers|WaterAbsorb|Spikes,Recover,Earthquake,Waterfall|Impish|252,4,252,,,|||||,,,,,Water]Sableye||Leftovers|Prankster|Taunt,WillOWisp,Recover,KnockOff|Careful|252,4,,,252,|||||,,,,,Dark]Clefable||Leftovers|MagicGuard|CosmicPower,CalmMind,StoredPower,DrainingKiss|Calm|252,,,4,252,||,0,,,,|||,,,,,Fairy"], + ["Urshifu||PunchingGlove|UnseenFist|WickedBlow,IronHead,DrainPunch,SuckerPunch|Jolly|56,252,,,,200|||||,,,,,Fighting]Enamorus||HeavyDutyBoots|CuteCharm|EarthPower,Imprison,Moonblast,SludgeBomb|Timid|128,,,252,,128||,0,,,,|||,,,,,Fairy]Tera Captain|Regidrago|LumBerry|DragonsMaw|DragonDance,Earthquake,DragonClaw,ScaleShot|Jolly|,252,,,4,252|||||,,,,,Dragon]Azelf||FocusSash|Levitate|StealthRock,Psychic,GrassKnot,Taunt|Timid|200,,,252,,56||,0,,,,|||,,,,,Psychic]Tsareena||HeavyDutyBoots|QueenlyMajesty|Synthesis,RapidSpin,Uturn,PowerWhip|Careful|248,,24,,236,|||S||,,,,,Grass]Tera Captain|Gholdengo|EjectButton|GoodasGold|Recover,ShadowBall,FocusBlast,ThunderWave|Calm|248,,8,,252,||,0,,,,|||,,,,,Normal","Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,Substitute,Protect|Jolly|252,,,,32,224|||||,,,,,Ghost]Greninja||ChoiceScarf|Protean|ToxicSpikes,Liquidation,Uturn,Switcheroo|Jolly|8,252,,,,248|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|KnockOff,FoulPlay,IcyWind,Uturn|Jolly|252,,88,,,168|||||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Ruination,Whirlwind,ThroatChop|Careful|252,,4,,252,|||||,,,,,Dark]Comfey||Leftovers|Triage|CalmMind,DrainingKiss,Substitute,Encore|Modest|188,,,252,,68||,0,,,,|||,,,,,Fairy]Scizor||ChoiceScarf|Technician|Uturn,BulletPunch,CloseCombat,KnockOff|Jolly|,252,,,4,252|||||,,,,,Bug"], + ["Ting-Lu||EjectButton|VesselofRuin|StealthRock,Whirlwind,RockTomb,Earthquake|Sassy|252,4,104,,148,|||||,,,,,Dark]Palafin||ChoiceSpecs|ZerotoHero|FlipTurn,HydroPump,AuraSphere,Boomburst|Hasty|,,,252,4,252|||||,,,,,Water]Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|DazzlingGleam,ShadowBall,Trick,FocusBlast|Modest|52,,,252,4,200||,0,,,,|||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|Trailblaze,IvyCudgel,Uturn,ZenHeadbutt|Jolly|36,252,,,4,216|||||,,,,,Fire]Tera Captain|EnamorusTherian|WeaknessPolicy|Overcoat|Agility,EarthPower,Moonblast,Psychic|Bold|,,32,224,4,248||,0,,,,|||,,,,,Ground]Cyclizar||ChoiceScarf|Regenerator|Uturn,ShedTail,RapidSpin,DracoMeteor|Naughty|252,36,124,,4,92|||||,,,,,Dragon","Zapdos||HeavyDutyBoots|Static|VoltSwitch,HeatWave,Uturn,Roost|Timid|248,,,,112,148|||||,,,,,Electric]Meowscarada||ChoiceScarf|Protean|TripleAxel,KnockOff,FlowerTrick,Uturn|Jolly|,252,12,,,244|||||,,,,,Grass]Qwilfish||RockyHelmet|Intimidate|ToxicSpikes,FlipTurn,SelfDestruct,DestinyBond|Jolly|252,,8,,,248|||||,,,,,Water]Dragonite||WeaknessPolicy|Multiscale|DragonDance,ExtremeSpeed,IceSpinner,Roost|Adamant|244,252,,,12,|||||,,,,,Dragon]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|BulkUp,BodyPress,TemperFlare,RapidSpin|Jolly|248,4,4,,,252|||||,,,,,Fire]Empoleon||ChopleBerry|Competitive|StealthRock,Surf,Roar,GrassKnot|Bold|252,,184,,72,||,0,,,,|||,,,,,Water"], + ["Tentacruel||AssaultVest|ClearBody|HydroPump,SludgeWave,IceBeam,RapidSpin|Calm|252,,,4,252,|||||,,,,,Water]Tera Captain|Latias|FocusSash|Levitate|MistBall,Surf,IceBeam,ThunderWave|Timid|,,32,252,,224||,0,,,,|||,,,,,Steel]Gyarados||Leftovers|Intimidate|Waterfall,Earthquake,Avalanche,Roar|Impish|4,252,252,,,|||||,,,,,Water]Meowscarada||ExpertBelt|Protean|FlowerTrick,KnockOff,TripleAxel,BrickBreak|Adamant|,252,12,,,244|||||,,,,,Grass]Heatran||RockyHelmet|FlashFire|Flamethrower,MagmaStorm,EarthPower,StealthRock|Bold|188,,252,64,4,||,0,,,,|||,,,,,Fire]Tera Captain|Jolteon|LifeOrb|VoltAbsorb|VoltSwitch,Thunderbolt,AlluringVoice,TeraBlast|Modest|,,,252,68,188||,0,,,,|||,,,,,Fire","Sneasler||ChoiceScarf|PoisonTouch|Switcheroo,Uturn,DireClaw,CloseCombat|Jolly|80,252,,,,176|||||,,,,,Fighting]Iron Treads||FocusSash|QuarkDrive|SteelBeam,KnockOff,StealthRock,RapidSpin|Modest|,,,252,4,252|||||,,,,,Ground]Chi-Yu||HeavyDutyBoots|BeadsofRuin|FlameCharge,Flamethrower,DarkPulse,NastyPlot|Modest|144,,,252,,112|||||,,,,,Fire]Tera Captain|Primarina|AssaultVest|LiquidVoice|Psychic,Surf,Moonblast,FlipTurn|Calm|248,,,56,204,|||||,,,,,Psychic]Tera Captain|Rillaboom|ChoiceBand|GrassySurge|GrassyGlide,DrainPunch,WoodHammer,Uturn|Adamant|128,252,4,,,124|||||,,,,,Grass]Weezing||RockyHelmet|Levitate|SludgeBomb,Memento,WillOWisp,Flamethrower|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison"], + ["Meowscarada||ChoiceScarf|Protean|Uturn,FlowerTrick,KnockOff,TripleAxel|Adamant|12,252,,,,244|||||,,,,,Grass]Tera Captain|Latias|RockyHelmet|Levitate|StoredPower,CalmMind,Recover,DrainingKiss|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Zapdos||HeavyDutyBoots|Static|ThunderWave,Discharge,Roost,Hurricane|Bold|252,,252,,,4||,0,,,,|||,,,,,Electric]Glimmora||ShucaBerry|ToxicDebris|PowerGem,Spikes,SludgeWave,EarthPower|Timid|,,,252,4,252||,0,,,,|||,,,,,Rock]Swampert||HeavyDutyBoots|Torrent|Earthquake,Yawn,StealthRock,FlipTurn|Careful|252,4,,,252,|||||,,,,,Water]Tera Captain|Lucario|SilkScarf|InnerFocus|MeteorMash,SwordsDance,ExtremeSpeed,Earthquake|Jolly|32,252,,,,224|||||,,,,,Normal","Slowking-Galar||SitrusBerry|Regenerator|TrickRoom,Psyshock,SludgeBomb,NastyPlot|Bold|248,,208,52,,||,0,,,,|||,,,,,Poison]Glimmora||LightClay|ToxicDebris|LightScreen,Reflect,MortalSpin,StealthRock|Jolly|248,,,,8,252|||||,,,,,Rock]Tera Captain|Quaquaval|SitrusBerry|Moxie|AquaStep,TripleAxel,BrickBreak,SwordsDance|Adamant|56,252,4,,4,192|||||,,,,,Electric]Darkrai||Leftovers|BadDreams|SwordsDance,DrainPunch,KnockOff,Substitute|Jolly|16,252,,,,240|||||,,,,,Dark]Enamorus||ChoiceScarf|CuteCharm|Moonblast,GrassKnot,HealingWish,EarthPower|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Tera Captain|Cetitan|SitrusBerry|SheerForce|BellyDrum,IceShard,IcicleCrash,Earthquake|Adamant|4,252,228,,,24|||||,,,,,Ghost"], + ["Chi-Yu||HeavyDutyBoots|BeadsofRuin|NastyPlot,Flamethrower,DarkPulse,FlameCharge|Timid|,,,252,4,252|||||,,,,,Dark]Excadrill||Leftovers|MoldBreaker|RapidSpin,IronHead,Earthquake,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Ground]Iron Bundle||ChoiceSpecs|QuarkDrive|HydroPump,IceBeam,FreezeDry,Uturn|Timid|,,,252,4,252|||||,,,,,Ice]Latios||ChoiceScarf|Levitate|DracoMeteor,LusterPurge,FlipTurn,IceBeam|Timid|,,,252,4,252|||||,,,,,Dragon]Tera Captain|LilligantHisui|WideLens|Hustle|VictoryDance,LeafBlade,CloseCombat,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Steel]Tera Captain|Crabominable|ChoiceBand|IronFist|CloseCombat,IceHammer,Earthquake,Crabhammer|Adamant|252,252,,,4,|||||,,,,,Water","Garchomp||ChoiceScarf|RoughSkin|StealthRock,Earthquake,Outrage,PoisonJab|Jolly|,252,,,4,252|||||,,,,,Dragon]Greninja||ChoiceScarf|Protean|HydroPump,DarkPulse,Uturn,Spikes|Timid|,,,252,4,252|||||,,,,,Water]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,BugBuzz,DazzlingGleam,Substitute|Timid|,,,252,4,252||,0,,,,|||,,,,,Poison]Rotom-Wash||LaggingTail|Levitate|Trick,VoltSwitch,HydroPump,Thunder|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Tera Captain|Braviary|ChoiceScarf|SheerForce|DoubleEdge,BraveBird,ZenHeadbutt,IronHead|Adamant|,252,,,4,252|||||,,,,,Normal]Brambleghast||ColburBerry|WindRider|RapidSpin,PowerWhip,Poltergeist,ShadowSneak|Jolly|,252,,,4,252|||||,,,,,Grass"], + ["Tera Captain|Gholdengo|RedCard|GoodasGold|ShadowBall,MakeItRain,FocusBlast,Thunderbolt|Modest|252,,228,28,,||,0,,,,|||,,,,,Water]Gliscor||ToxicOrb|PoisonHeal|DualWingbeat,HighHorsepower,StealthRock,StoneEdge|Adamant|252,252,,,4,|||||,,,,,Ground]Samurott-Hisui||ChoiceScarf|Sharpness|AquaJet,CeaselessEdge,AquaCutter,SacredSword|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Hitmonlee|GrassySeed|Unburden|SwordsDance,CloseCombat,StoneEdge,StompingTantrum|Adamant|,252,,,4,252|||||,,,,,Ghost]Ribombee||FocusSash|ShieldDust|StickyWeb,StunSpore,Moonblast,Tailwind|Timid|248,,,8,,252||,0,,,,|||,,,,,Bug]Armarouge||SalacBerry|WeakArmor|Endure,ArmorCannon,Psychic,EnergyBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire","Tera Captain|RagingBolt|HeavyDutyBoots|Protosynthesis|Thunderclap,DracoMeteor,TeraBlast,CalmMind|Calm|56,,,204,248,||,20,,,,|||,,,,,Fairy]Talonflame||HeavyDutyBoots|FlameBody|FlareBlitz,Roost,Defog,WillOWisp|Jolly|252,,,,80,176|||||,,,,,Fire]Froslass||HeavyDutyBoots|CursedBody|TripleAxel,Poltergeist,WillOWisp,Spikes|Jolly|252,,,,4,252|||||,,,,,Ice]Rillaboom||Leftovers|GrassySurge|WoodHammer,GrassyGlide,KnockOff,Uturn|Adamant|84,252,,,,172|||||,,,,,Grass]Sneasler||GrassySeed|Unburden|CloseCombat,PoisonJab,ThroatChop,SwordsDance|Jolly|32,252,,,,224|||||,,,,,Fighting]Heatran||Leftovers|FlashFire|MagmaStorm,EarthPower,StealthRock,WillOWisp|Calm|252,,4,,252,||,0,,,,|||,,,,,Fire"], + ["Palafin||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,WaveCrash,ZenHeadbutt|Adamant|,252,4,,,252|||||,,,,,Water]Enamorus||ChoiceSpecs|Contrary|Moonblast,EarthPower,TeraBlast,MysticalFire|Timid|,,,252,4,252|||||,,,,,Stellar]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,RazorShell,KnockOff,FlipTurn|Jolly|,252,4,,,252|||||,,,,,Water]Donphan||Leftovers|Sturdy|Earthquake,KnockOff,RapidSpin,IceSpinner|Adamant|252,24,,,148,48|||||,,,,,Ghost]Tera Captain|IronMoth|HeavyDutyBoots|QuarkDrive|FieryDance,SludgeWave,DazzlingGleam,Substitute|Timid|,,,252,4,252|||||,,,,,Fairy]Tera Captain|Sinistcha|Leftovers|Heatproof|CalmMind,MatchaGotcha,ShadowBall,StrengthSap|Bold|252,,160,,,96||,0,,,,|||,,,,,Poison","Garchomp||YacheBerry|RoughSkin|ScaleShot,Earthquake,IronHead,Liquidation|Jolly|52,252,,,4,200|||||,,,,,Dragon]Sandslash-Alola||FocusSash|SlushRush|IcicleCrash,IronHead,Spikes,Earthquake|Adamant|252,252,,,4,|||||,,,,,Ice]Slowking-Galar||ShucaBerry|Regenerator|ChillyReception,SludgeBomb,FutureSight,IceBeam|Modest|252,,,252,4,||,0,,,,|||,,,,,Poison]Meowscarada||ChoiceScarf|Protean|KnockOff,FlowerTrick,TripleAxel,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Vaporeon||Leftovers|WaterAbsorb|Trailblaze,Whirlpool,Scald,Wish|Bold|248,,252,8,,|||||,,,,,Water]Tera Captain|Annihilape|Leftovers|VitalSpirit|TeraBlast,RageFist,Uturn,StealthRock|Hasty|36,252,,4,,216|||||,,,,,Grass"], + ["Rotom-Heat||LightClay|Levitate|VoltSwitch,Reflect,LightScreen,Overheat|Modest|252,,252,4,,||,0,,,,|||,,,,,Electric]Iron Treads||RockyHelmet|QuarkDrive|IceSpinner,Earthquake,StealthRock,RapidSpin|Jolly|,84,200,,,224|||||,,,,,Ground]Iron Valiant||AirBalloon|QuarkDrive|Moonblast,Substitute,AuraSphere,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|Latias|Leftovers|Levitate|CalmMind,TeraBlast,DragonPulse,EnergyBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Tera Captain|Gyarados|HeavyDutyBoots|Moxie|DragonDance,Waterfall,TeraBlast,Taunt|Naughty|,252,,4,,252|||||,,,,,Flying]Samurott-Hisui||LifeOrb|Sharpness|FlipTurn,CeaselessEdge,SacredSword,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Water","Garchomp||LoadedDice|RoughSkin|ScaleShot,Earthquake,IronHead,SwordsDance|Adamant|,252,,,20,236|||||,,,,,Dragon]Tera Captain|Annihilape|ChestoBerry|Defiant|DrainPunch,RageFist,BulkUp,Rest|Impish|248,20,240,,,|||||,,,,,Fairy]Samurott-Hisui||ChoiceBand|Sharpness|CeaselessEdge,RazorShell,KnockOff,AquaJet|Jolly|,252,,,4,252|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Timid|252,,,,40,216|||||,,,,,Flying]Tinkaton||Leftovers|MoldBreaker|FakeOut,PlayRough,Encore,StealthRock|Jolly|,92,224,,,192|||||,,,,,Fairy]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Flamethrower,Uturn,WillOWisp,Roost|Calm|248,,,8,252,|||||,,,,,Water"], + ["Tera Captain|Venusaur|LifeOrb|Chlorophyll|Growth,WeatherBall,SludgeBomb,EarthPower|Modest|,,,252,4,252||,0,,,,|||,,,,,Fire]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|Agility,TeraBlast,Thunderbolt,NastyPlot|Modest|,,,252,4,252||,0,,,,|||,,,,,Flying]Great Tusk||Leftovers|Protosynthesis|RapidSpin,Earthquake,IceSpinner,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Stellar]Torkoal||HeatRock|Drought|RapidSpin,StealthRock,Yawn,LavaPlume|Calm|252,,4,,252,|||||,,,,,Stellar]Hatterene||Leftovers|MagicBounce|Nuzzle,CalmMind,DrainingKiss,PsychicNoise|Modest|,,,252,4,252|||||,,,,,Stellar]Kingambit||ChopleBerry|SupremeOverlord|SwordsDance,LowKick,IronHead,SuckerPunch|Adamant|252,252,,,4,|||||,,,,,Stellar","Tera Captain|Landorus|LifeOrb|SheerForce|Gravity,EarthPower,Uturn,Protect|Timid|252,,,4,,252|||||,,,,,Ground]Slaking||ChoiceBand|Truant|GigaImpact,DoubleEdge,Earthquake,SuckerPunch|Adamant|,252,,,4,252|||||,,,,,Normal]Weavile||FocusSash|Pressure|SwordsDance,LowKick,IceShard,KnockOff|Adamant|68,252,,,,188|||||,,,,,Dark]Tentacruel||HeavyDutyBoots|ClearBody|RapidSpin,FlipTurn,Toxic,KnockOff|Careful|252,,,,240,16|||||,,,,,Water]Latios||Leftovers|Levitate|LusterPurge,AuraSphere,Reflect,Recover|Timid|72,,,252,,184||,0,,,,|||,,,,,Dragon]Tera Captain|Orthworm|SitrusBerry|EarthEater|ShedTail,StealthRock,Spikes,BodyPress|Calm|248,,8,,252,||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Scrafty|Leftovers|ShedSkin|BulkUp,DrainPunch,KnockOff,Rest|Impish|252,4,252,,,|||||,,,,,Water]Scizor||Leftovers|Technician|SwordsDance,BulletPunch,BrickBreak,Facade|Adamant|252,252,,,4,|||||,,,,,Bug]Cinderace||HeavyDutyBoots|Libero|PyroBall,Uturn,CourtChange,GunkShot|Adamant|,252,,,4,252|||||,,,,,Fire]Ninetales-Alola||IcyRock|SnowWarning|AuroraVeil,NastyPlot,Moonblast,FreezeDry|Modest|,,,252,44,212||,0,,,,|||,,,,,Ice]Tera Captain|Cetitan|SitrusBerry|SlushRush|BellyDrum,Substitute,Earthquake,PlayRough|Jolly|64,252,,,,192|||||,,,,,Fairy]Rotom-Wash||AbilityShield|Levitate|HydroPump,ThunderWave,VoltSwitch,WillOWisp|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric","Baxcalibur||LoadedDice|ThermalExchange|IcicleSpear,ScaleShot,Earthquake,SwordsDance|Adamant|,252,4,,,252|||||,,,,,Normal]Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Encore,PainSplit,Moonblast|Timid|212,,,96,,200||,0,,,,|||,,,,,Normal]Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,Taunt,DrainPunch,RageFist|Careful|152,,44,,252,60|||||,,,,,Fairy]Excadrill||SitrusBerry|MoldBreaker|Earthquake,IronHead,StealthRock,RapidSpin|Jolly|16,252,,,,240|||||,,,,,Normal]Alomomola||RockyHelmet|Regenerator|Scald,FlipTurn,Wish,Protect|Relaxed|252,,252,4,,|||||,,,,,Normal]Tera Captain|SandslashAlola|LifeOrb|SlushRush|IceSpinner,IronHead,Earthquake,SwordsDance|Jolly|24,,252,,,232|||||,,,,,Ground"], + ["Volcarona||HeavyDutyBoots|FlameBody|QuiverDance,BugBuzz,FieryDance,Psychic|Modest|,,,252,4,252||,0,,,,|||,,,,,Bug]Politoed||ChoiceScarf|Drizzle|Surf,EarthPower,FocusBlast,Psychic|Timid|,,4,252,,252||,0,,,,|||,,,,,Water]Tera Captain|Archaludon|AssaultVest|Stamina|DarkPulse,BodyPress,DracoMeteor,DragonTail|Calm|200,,56,,252,|||||,,,,,Dark]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SpikyShield,HornLeech,IvyCudgel,KnockOff|Jolly|,100,128,,28,252|||||,,,,,Water]Overqwil||Leftovers|Intimidate|Spikes,ToxicSpikes,BarbBarrage,DestinyBond|Careful|,,4,,252,252|||||,,,,,Dark]Tornadus||FocusSash|Prankster|Acrobatics,BulkUp,Uturn,KnockOff|Jolly|,252,28,,28,200|||||,,,,,Flying","Sandy Shocks||ChoiceScarf|Protosynthesis|VoltSwitch,Thunder,EarthPower,TriAttack|Modest|4,,,252,,252||,0,,,,|||,,,,,Electric]Tera Captain|Zarude|ChoiceBand|LeafGuard|Uturn,DrainPunch,KnockOff,StompingTantrum|Jolly|252,4,,,,252|||||,,,,,Fighting]Slither Wing||ChoiceScarf|Protosynthesis|Uturn,LeechLife,Earthquake,CloseCombat|Jolly|4,252,,,,252|||||,,,,,Bug]Iron Crown||Leftovers|QuarkDrive|Protect,AirSlash,IronDefense,CalmMind|Timid|252,,136,,112,8||,20,,,,|||,,,,,Steel]Blastoise||Leftovers|RainDish|AquaRing,Protect,ChillingWater,IceBeam|Bold|252,,252,,,4||,0,,,,|||,,,,,Water]Fezandipiti||BlackSludge|ToxicChain|Roost,Protect,Taunt,PlayRough|Jolly|252,,,,252,4|||||,,,,,Poison"], + ["Iron Bundle||ChoiceScarf|QuarkDrive|HydroPump,FreezeDry,IceBeam,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Tera Captain|Manaphy|SalacBerry|Hydration|AcidArmor,TakeHeart,Rest,Surf|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Tera Captain|Polteageist|WhiteHerb|CursedBody|ShellSmash,ShadowBall,StoredPower,TeraBlast|Modest|252,,,196,,60||,0,,,,|||,,,,,Water]Cyclizar||SitrusBerry|Regenerator|RapidSpin,ShedTail,QuickAttack,RainDance|Jolly|248,8,,,,252|||||,,,,,Dragon]Dodrio||ChoiceBand|EarlyBird|BraveBird,GigaImpact,DrillRun,Lunge|Jolly|,252,,,4,252|||||,,,,,Normal]Klefki||LightClay|Prankster|Reflect,LightScreen,ThunderWave,RainDance|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel","Iron Valiant||BoosterEnergy|QuarkDrive|AuraSphere,CalmMind,ShadowBall,VacuumWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Iron Boulder||ChoiceScarf|QuarkDrive|MightyCleave,SacredSword,BrickBreak,PsychoCut|Adamant|,252,,,4,252|||||,,,,,Rock]Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,Psychic,Overheat,Flamethrower|Modest|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|OricorioPomPom|MirrorHerb|Dancer|AlluringVoice,RevelationDance,QuiverDance,Roost|Timid|252,,,4,,252||,0,,,,|||,,,,,Electric]Tera Captain|RotomWash|Leftovers|Levitate|LightScreen,VoltSwitch,HydroPump,ThunderWave|Calm|252,,,,244,12||,0,,,,|||,,,,,Electric]Tinkaton||Leftovers|MoldBreaker|KnockOff,FakeOut,BrickBreak,GigatonHammer|Adamant|,252,,,4,252|||||,,,,,Fairy"], + ["Grimmsnarl||LightClay|Prankster|Reflect,LightScreen,SpiritBreak,Taunt|Careful|252,4,,,252,|||||,,,,,Dark]Tera Captain|Virizion|SitrusBerry|Justified|AirSlash,AuraSphere,CalmMind,EnergyBall|Modest|,,,252,4,252||,0,,,,|||,,,,,Steel]Terapagos||RockyHelmet|TeraShift|RockPolish,IceBeam,CalmMind,Flamethrower|Modest|220,,224,64,,||,15,,,,|||,,,,,Stellar]Gliscor||ToxicOrb|PoisonHeal|Protect,Earthquake,StealthRock,Toxic|Impish|252,,184,,,72|||||,,,,,Ground]Gholdengo||ChoiceScarf|GoodasGold|ShadowBall,MakeItRain,FocusBlast,Trick||4,,,252,,252||,0,,,,|||,,,,,Steel]Tera Captain|GreninjaBond|ChoiceSpecs|BattleBond|IceBeam,SludgeWave,Surf,TeraBlast||,,,252,4,252|||||,,,,,Fire","Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Protect|Timid|40,,,252,,216||,0,,,,|||,,,,,Ice]Tinkaton||ShucaBerry|MoldBreaker|ThunderWave,Encore,GigatonHammer,KnockOff|Jolly|240,92,,,,176|||||,,,,,Fairy]Rotom-Heat||HeavyDutyBoots|Levitate|VoltSwitch,Overheat,PainSplit,WillOWisp|Timid|252,,,16,,240||,0,,,,|||,,,,,Electric]Tera Captain|Ribombee|ChoiceSpecs|ShieldDust|Moonblast,BugBuzz,StickyWeb,Uturn|Timid|16,,,252,,240|||||,,,,,Fairy]Weavile||FocusSash|Pressure|KnockOff,IceSpinner,BrickBreak,UpperHand|Jolly|16,252,,,8,232|||||,,,,,Dark]Garchomp||HabanBerry|RoughSkin|EarthPower,DracoMeteor,StealthRock,FireBlast|Modest|24,,,252,12,220||,0,,,,|||,,,,,Dragon"], + ["Tera Captain|Drifblim|ChopleBerry|Unburden|CalmMind,ShadowBall,StoredPower,StrengthSap|Bold|,,252,,184,72||,0,,,,|||,,,,,Dark]Tera Captain|Meowscarada|ChoiceScarf|Protean|Uturn,Trick,FlowerTrick,KnockOff|Jolly|104,252,,,,152|||||,,,,,Grass]Iron Boulder||BoosterEnergy|QuarkDrive|CloseCombat,ZenHeadbutt,MightyCleave,Agility||184,252,,,,72|||||,,,,,Rock]Moltres||HeavyDutyBoots|FlameBody|BraveBird,Roar,Uturn,Roost|Impish|248,,252,,8,|||||,,,,,Fire]Slowking-Galar||AssaultVest|Regenerator|Flamethrower,SludgeBomb,Psychic,FocusBlast|Calm|252,,,56,200,||,0,,,,|||,,,,,Poison]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|Encore,Trailblaze,KnockOff,IvyCudgel|Jolly|,252,,,4,252|||||,,,,,Water","Iron Bundle||BoosterEnergy|QuarkDrive|FreezeDry,IceBeam,HydroPump,Protect|Timid|,,96,252,,160||,0,,,,|||,,,,,Ice]Tera Captain|Dewgong|RockyHelmet|ThickFat|IceShard,Charm,Stockpile,Rest|Impish|184,72,252,,,|||||,,,,,Grass]Rotom-Wash||Leftovers|Levitate|HydroPump,VoltSwitch,PainSplit,DarkPulse|Modest|252,,252,,4,||,0,,,,|||,,,,,Electric]Iron Treads||Leftovers|QuarkDrive|StealthRock,VoltSwitch,RapidSpin,KnockOff|Careful|252,,252,,4,|||||,,,,,Ground]Tera Captain|Latias|SoulDew|Levitate|ReflectType,Outrage,DragonDance,Recover|Adamant|24,252,108,,,124|||||,,,,,Dark]Blaziken||ChoiceBand|SpeedBoost|KnockOff,Uturn,BraveBird,CloseCombat|Adamant|4,252,,,,252|||||,,,,,Fire"], + ["Sneasler||WhiteHerb|Unburden|Acrobatics,CloseCombat,DireClaw,Uturn|Adamant|60,252,,,,196|||||,,,,,Stellar]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,CloseCombat,IronHead,SwordsDance|Jolly|48,252,68,,12,128|||||,,,,,Stellar]Chi-Yu||FocusSash|BeadsofRuin|DarkPulse,Flamethrower,Ruination,NastyPlot|Timid|16,,,252,,240||,0,,,,|||,,,,,Stellar]Tera Captain|Espathra|ColburBerry|SpeedBoost|StoredPower,DazzlingGleam,CalmMind,Protect|Modest|8,,92,252,48,108||,0,,,,|||,,,,,Fairy]Rotom-Mow||Leftovers|Levitate|VoltSwitch,LeafStorm,PainSplit,ThunderWave|Timid|252,,,4,,252||,0,,,,|||,,,,,Stellar]Tera Captain|Azumarill|Leftovers|SapSipper|KnockOff,ChillingWater,Whirlpool,AlluringVoice|Bold|252,,200,,56,|||||,,,,,Water","Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,Encore,FlipTurn|Timid|,,96,252,,160|||||,,,,,Ice]Tera Captain|Hydreigon|Leftovers|Levitate|DarkPulse,FlashCannon,StealthRock,Roar|Calm|248,,8,,252,||,0,,,,|||,,,,,Fairy]Dachsbun||Leftovers|WellBakedBody|Wish,Protect,PlayRough,BodyPress|Careful|248,,8,,252,|||||,,,,,Fairy]Brambleghast||ColburBerry|WindRider|PowerWhip,RapidSpin,Spikes,ShadowSneak|Adamant|,252,24,,,232|||||,,,,,Grass]Corviknight||RockyHelmet|Pressure|BraveBird,Uturn,Defog,Roost|Impish|248,,252,,8,|||||,,,,,Flying]Tera Captain|Torterra|WhiteHerb|ShellArmor|ShellSmash,Earthquake,TeraBlast,ZenHeadbutt|Adamant|96,252,4,,,156|||||,,,,,Poison"], + ["Great Tusk||ClearAmulet|Protosynthesis|BulkUp,IceSpinner,HeadlongRush,HeavySlam|Adamant|84,252,,,,172|||||,,,,,Ground]Meowscarada||BlackGlasses|Protean|KnockOff,SuckerPunch,TripleAxel,FlowerTrick|Adamant|144,252,,,,112|||||,,,,,Grass]Latios||ChoiceScarf|Levitate|LusterPurge,CalmMind,ShadowBall,Trick|Modest|40,,,252,,216||,0,,,,|||,,,,,Dragon]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|SludgeBomb,Thunderbolt,TeraBlast,NastyPlot|Modest|108,,,252,,148||,0,,,,|||,,,,,Water]Heatran||ChopleBerry|FlameBody|EarthPower,MagmaStorm,StealthRock,HeavySlam|Modest|248,,,80,20,160|||||,,,,,Fire]Alcremie||Leftovers|SweetVeil|AlluringVoice,Encore,Recover,CalmMind|Calm|248,,8,,252,||,0,,,,|||,,,,,Fairy","Landorus-Therian||RockyHelmet|Intimidate|Earthquake,Uturn,StealthRock,GrassKnot|Jolly|248,,36,,,224|||||,,,,,Ground]Scizor||ProtectivePads|Technician|BulletPunch,Uturn,KnockOff,CloseCombat|Adamant|248,252,,,8,|||||,,,,,Bug]Scream Tail||LightClay|Protosynthesis|DazzlingGleam,Encore,LightScreen,Reflect|Timid|200,,,,60,248||,0,,,,|||,,,,,Fairy]Tera Captain|RagingBolt|SitrusBerry|Protosynthesis|Thunderbolt,DragonPulse,Earthquake,CalmMind|Timid|88,,,252,,168|||||,,,,,Fairy]Tera Captain|Milotic|FlameOrb|MarvelScale|Scald,Recover,Haze,FlipTurn|Bold|248,,204,,56,|||||,,,,,Bug]Cyclizar||LifeOrb|Regenerator|DracoMeteor,ShedTail,RapidSpin,Taunt|Timid|248,,,92,,168|||||,,,,,Dragon"], + ["Clodsire||EjectButton|Unaware|ToxicSpikes,Recover,Earthquake,Haze|Careful|28,,248,,232,|||||,,,,,Poison]Tera Captain|Cinccino|LoadedDice|Technician|TailSlap,KnockOff,TidyUp,RockBlast|Jolly|,252,4,,,240|||||,,,,,Normal]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|TeraBlast,BulkUp,Earthquake,IceSpinner|Jolly|,4,,,252,252|||||,,,,,Electric]Enamorus||ChoiceScarf|CuteCharm|Moonblast,EarthPower,DrainingKiss,HealingWish|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Iron Bundle||ChoiceSpecs|QuarkDrive|HydroPump,FlipTurn,IceBeam,FreezeDry|Modest|56,,,252,,200|||||,,,,,Ice]Kingambit||BlackGlasses|SupremeOverlord|IronHead,SuckerPunch,BrickBreak,KowtowCleave|Adamant|220,220,,,68,|||||,,,,,Dark","Gouging Fire||Leftovers|Protosynthesis|HeatCrash,BreakingSwipe,DragonDance,MorningSun|Impish|240,40,128,,4,96|||||,,,,,Fire]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,LeechSeed,Substitute|Timid|56,,,252,,200||,0,,,,|||,,,,,Stellar]Quaquaval||YacheBerry|Moxie|AquaStep,CloseCombat,RapidSpin,Taunt|Adamant|112,252,,,,144|||||,,,,,Water]Zapdos||Leftovers|Pressure|Hurricane,WeatherBall,Substitute,RainDance|Timid|224,,,52,80,152||,0,,,,|||,,,,,Electric]Jirachi||PowerHerb|SereneGrace|Psychic,AuraSphere,MeteorBeam,Substitute|Timid|128,,,228,,152||,0,,,,|||,,,,,Steel]Grimmsnarl||LightClay|Prankster|LowKick,Reflect,ThunderWave,LightScreen|Jolly|120,212,,,,176|||||,,,,,Dark"], + ["Iron Hands||AssaultVest|QuarkDrive|CloseCombat,HeavySlam,ThunderPunch,VoltSwitch|Jolly|4,252,,,,252|||||,,,,,Fighting]Tera Captain|Hydreigon|AssaultVest|Levitate|FlashCannon,DarkPulse,DracoMeteor,Uturn|Modest|4,,,252,252,|||||,,,,,Poison]Tera Captain|Okidogi|Leftovers|ToxicChain|Substitute,BulkUp,DrainPunch,IronHead|Careful|248,,,,252,|||||,,,,,Water]Mandibuzz||HeavyDutyBoots|Overcoat|FoulPlay,Uturn,Roost,Defog|Impish|248,,252,,8,|||||,,,,,Dark]Fezandipiti||AssaultVest|ToxicChain|Moonblast,Uturn,SludgeBomb,HeatWave|Calm|,,,252,252,|||||,,,,,Poison]Scizor||ChoiceScarf|Technician|DualWingbeat,Uturn,BulletPunch,AerialAce|Jolly|,252,,,4,252|||||,,,,,Bug","Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,KnockOff|Timid|20,,,240,,248|||||,,,,,Water]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Ruination|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Torkoal||HeatRock|Drought|Overheat,StealthRock,RapidSpin,Yawn|Bold|248,,32,,228,|||||,,,,,Fire]Bronzong||EjectButton|Levitate|FutureSight,Hypnosis,Psyshock,WeatherBall|Calm|252,,40,,216,||,0,,,,|||,,,,,Steel]Weezing-Galar||RockyHelmet|Levitate|WillOWisp,Psybeam,Flamethrower,Defog|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Ursaluna-Bloodmoon||AssaultVest|MindsEye|BloodMoon,EarthPower,VacuumWave,FocusBlast|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground"], + ["Iron Boulder||ShucaBerry|QuarkDrive|MightyCleave,CloseCombat,SwordsDance,Substitute|Jolly|112,252,,,,144|||||,,,,,Rock]Corviknight||LightClay|MirrorArmor|Uturn,Roost,Reflect,LightScreen|Impish|252,,152,,104,|||||,,,,,Flying]Pincurchin||TerrainExtender|ElectricSurge|Spikes,PoisonJab,PainSplit,Memento|Impish|4,,252,,252,|||||,,,,,Electric]Iron Bundle||ChoiceScarf|QuarkDrive|FreezeDry,IceBeam,HydroPump,FlipTurn|Modest|172,,,252,,84|||||,,,,,Ice]Tera Captain|WeezingGalar|CustapBerry|Levitate|StrangeSteam,SludgeBomb,Defog,Haze|Bold|252,,4,,252,||,0,,,,|||,,,,,Electric]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|Thunderclap,Thunderbolt,DragonPulse,CalmMind|Modest|,,100,252,,156||,20,,,,|||,,,,,Fairy","Smeargle||MentalHerb|OwnTempo|StickyWeb,RapidSpin,ToxicSpikes,Taunt|Impish|252,,252,,4,|||||,,,,,Normal]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,HornLeech,Encore|Adamant|,252,,,32,224|||||,,,,,Fire]Tera Captain|GreatTusk|Leftovers|Protosynthesis|HeadlongRush,HeavySlam,RapidSpin,Taunt|Jolly|252,,96,,,160|||||,,,,,Steel]Tera Captain|OricorioSensu|HeavyDutyBoots|Dancer|QuiverDance,RevelationDance,Taunt,Roost|Modest|228,,,76,,204||,0,,,,|||,,,,,Fighting]Hatterene||AssaultVest|MagicBounce|DazzlingGleam,MysticalFire,DrainingKiss,Nuzzle|Bold|248,,136,,124,|||||,,,,,Psychic]Bisharp||Eviolite|Defiant|SwordsDance,NightSlash,IronHead,SuckerPunch|Jolly|48,252,,,,208|||||,,,,,Dark"], + ["Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderclap,VoltSwitch,DracoMeteor,TeraBlast|Timid|32,,12,252,28,184||,20,,,,|||,,,,,Ice]Vikavolt||ChartiBerry|Levitate|StickyWeb,VoltSwitch,BugBuzz,ThunderWave|Modest|96,,20,228,140,24||,0,,,,|||,,,,,Bug]Qwilfish-Hisui||Eviolite|SwiftSwim|BarbBarrage,PainSplit,Liquidation,ToxicSpikes|Jolly|64,60,56,,224,104|||||,,,,,Dark]Pelipper||DampRock|Drizzle|Roost,Uturn,AirSlash,WeatherBall|Modest|228,,60,120,100,|||||,,,,,Water]Archaludon||AssaultVest|Stamina|ElectroShot,FlashCannon,DragonPulse,BodyPress|Modest|,,20,148,144,196||,0,,,,|||,,,,,Steel]Basculegion||KasibBerry|SwiftSwim|PhantomForce,FlipTurn,Liquidation,NightShade|Adamant|8,188,,,60,252|||||,,,,,Water","Iron Boulder||PasshoBerry|QuarkDrive|MightyCleave,CloseCombat,ZenHeadbutt,QuickAttack|Adamant|,252,,,4,252|||||,,,,,Rock]Skarmory||RockyHelmet|Sturdy|Spikes,BraveBird,Whirlwind,Roost|Impish|252,,160,,,96|||||,,,,,Steel]Gliscor||ToxicOrb|PoisonHeal|KnockOff,ToxicSpikes,Taunt,Protect|Jolly|252,,4,,,252|||||,,,,,Ground]Iron Bundle||ChoiceScarf|QuarkDrive|IceBeam,FreezeDry,HydroPump,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,Hex,WillOWisp,SlackOff|Bold|252,,88,,168,||,0,,,,|||,,,,,Grass]Clodsire||HeavyDutyBoots|Unaware|Earthquake,PoisonJab,StealthRock,Recover|Careful|248,,168,,92,|||||,,,,,Poison"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Trailblaze,PlayRough,SwordsDance|Jolly|64,252,,,,192|||||,,,,,Water]Tera Captain|Braviary|HeavyDutyBoots|SheerForce|Agility,BodySlam,BraveBird,ShadowClaw|Jolly|4,252,,,,252|||||,,,,,Ghost]Carbink||SitrusBerry|ClearBody|Moonblast,StealthRock,Spikes,Reflect|Calm|248,,,8,252,||,0,,,,|||,,,,,Rock]Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,IceBeam,FocusBlast,NastyPlot|Timid|16,,,252,,240||,0,,,,|||,,,,,Dark]Infernape||RockyHelmet|Blaze|FlareBlitz,WillOWisp,SlackOff,CloseCombat|Jolly|252,,64,,,192|||||,,,,,Fire]Iron Treads||ShucaBerry|QuarkDrive|IceSpinner,RapidSpin,Earthquake,VoltSwitch|Jolly|32,252,,,,224|||||,,,,,Ground","Tera Captain|Gholdengo|AirBalloon|GoodasGold|Recover,ShadowBall,FocusBlast,NastyPlot|Modest|252,,176,80,,||,0,,,,|||,,,,,Dragon]Meowscarada||ChoiceScarf|Protean|FlowerTrick,TripleAxel,KnockOff,Uturn|Adamant|252,252,,,4,|||||,,,,,Grass]Tera Captain|ArticunoGalar|HeavyDutyBoots|Competitive|FreezingGlare,CalmMind,Hurricane,Recover|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Garchomp||Leftovers|RoughSkin|Earthquake,Spikes,StealthRock,DragonTail|Impish|252,,252,,4,|||||,,,,,Dragon]Chi-Yu||ChoiceScarf|BeadsofRuin|FireBlast,DarkPulse,Psychic,Flamethrower|Modest|176,,,252,,80||,0,,,,|||,,,,,Dark]Maushold||WideLens|Technician|TidyUp,PopulationBomb,Encore,LowKick|Jolly|156,104,,,,248|||||,,,,,Normal"], + ["Mesprit||Leftovers|Levitate|PsychUp,StoredPower,DazzlingGleam,Imprison|Timid|248,,16,12,16,216||,0,,,,|||,,,,,Psychic]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|TeraBlast,Earthquake,DragonPulse,Thunderbolt|Quiet|248,52,,196,,12|||||,,,,,Poison]Cinderace||HeavyDutyBoots|Libero|GunkShot,PyroBall,Uturn,HighJumpKick|Jolly|24,252,,,,232|||||,,,,,Fire]Samurott-Hisui||ChopleBerry|Sharpness|AquaJet,CeaselessEdge,SacredSword,AquaCutter|Jolly|,252,4,,,252|||||,,,,,Water]Great Tusk||HeavyDutyBoots|Protosynthesis|RapidSpin,CloseCombat,HeadlongRush,IceSpinner|Jolly|,252,16,,,240|||||,,,,,Ground]Tinkaton||HeavyDutyBoots|MoldBreaker|Encore,GigatonHammer,PlayRough,StealthRock|Jolly|248,8,,,68,184|||||,,,,,Fairy","Iron Valiant||ChoiceScarf|QuarkDrive|CloseCombat,Moonblast,Trick,KnockOff|Mild|,124,,252,,132|||||,,,,,Fairy]Tera Captain|Espathra|MentalHerb|SpeedBoost|Roost,CalmMind,LuminaCrash,TeraBlast|Bold|252,,248,,,8||,0,,,,|||,,,,,Electric]Tera Captain|ThundurusTherian|ChoiceScarf|VoltAbsorb|Thunderbolt,VoltSwitch,TeraBlast,GrassKnot|Timid|108,,4,252,,144||,0,,,,|||,,,,,Fairy]Orthworm||ChopleBerry|EarthEater|ShedTail,StealthRock,BodyPress,HeavySlam|Impish|248,8,252,,,|||||,,,,,Steel]Samurott-Hisui||ChopleBerry|Sharpness|CeaselessEdge,SacredSword,AquaJet,RazorShell|Jolly|,252,4,,,252|||||,,,,,Water]Donphan||RockyHelmet|Sturdy|Earthquake,RapidSpin,StealthRock,Counter|Impish|248,8,252,,,|||||,,,,,Ground"], + ["Darkrai||ChoiceScarf|BadDreams|SludgeBomb,DarkPulse,IceBeam,Trick|Timid|32,,,252,,224||,0,,,,|||,,,,,Dark]Primarina||RindoBerry|Torrent|Moonblast,FlipTurn,DrainingKiss,EnergyBall|Modest|192,,4,252,,60|||||,,,,,Water]Decidueye||ColburBerry|Overgrow|Defog,Uturn,GigaDrain,NightShade|Relaxed|252,,252,,4,|||||,,,,,Grass]Tera Captain|Landorus|LifeOrb|SandForce|EarthPower,SludgeWave,Psychic,StealthRock||152,,4,252,,100||,0,,,,|||,,,,,Ground]Gouging Fire||HeavyDutyBoots|Protosynthesis|FlareBlitz,ScaleShot,Earthquake,BurningBulwark|Jolly|72,252,,,4,180|||||,,,,,Fire]Hitmontop||LifeOrb|Technician|RapidSpin,TripleAxel,CloseCombat,MachPunch|Jolly|44,252,,,,212|||||,,,,,Fighting","Iron Valiant||LifeOrb|QuarkDrive|KnockOff,CloseCombat,SpiritBreak,VacuumWave|Naive|,180,,192,,136|||||,,,,,Fairy]Garchomp||ChoiceScarf|RoughSkin|Earthquake,Outrage,ScaleShot,PoisonJab|Jolly|,252,8,,,248|||||,,,,,Dragon]Koffing||RockyHelmet|Levitate|ToxicSpikes,Haze,SludgeBomb,Explosion|Bold|252,,232,,24,|||||,,,,,Poison]Tornadus-Therian||HeavyDutyBoots|Regenerator|KnockOff,BleakwindStorm,HeatWave,Taunt|Modest|128,,,252,,128|||||,,,,,Flying]Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|Uturn,KnockOff,CloseCombat,PowerWhip|Jolly|,252,,,32,224|||||,,,,,Fighting]Tera Captain|Lanturn|SitrusBerry|VoltAbsorb|ThunderWave,SleepTalk,IceBeam,VoltSwitch|Calm|240,,,,252,16||,0,,,,|||,,,,,Dark"], + ["Zapdos||ChilanBerry|Static|Discharge,Hurricane,HeatWave,Roost|Timid|80,,,252,,176||,0,,,,|||,,,,,Electric]Darkrai||Leftovers|BadDreams|WillOWisp,DarkPulse,SludgeBomb,FocusBlast|Timid|16,,,252,,240||,0,,,,|||,,,,,Poison]Slowking-Galar||BlackSludge|Regenerator|SludgeBomb,Flamethrower,ChillyReception,Trick|Calm|248,,8,,252,||,0,,,,|||,,,,,Water]Donphan||Leftovers|Sturdy|RapidSpin,StealthRock,Roar,Earthquake|Impish|252,,252,,4,|||||,,,,,Poison]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|Uturn,SurgingStrikes,CloseCombat,PoisonJab|Jolly|88,252,,,,168|||||,,,,,Water]Glaceon||ChoiceSpecs|IceBody|Blizzard,FreezeDry,WaterPulse,AlluringVoice|Modest|80,,4,252,,172||,0,,,,|||,,,,,Ice","Primarina||SitrusBerry|LiquidVoice|FlipTurn,IceBeam,Moonblast,PsychicNoise|Calm|252,,168,32,56,|||||,,,,,Water]Rotom-Heat||LightClay|Levitate|WillOWisp,VoltSwitch,LightScreen,Reflect|Calm|252,,4,,252,||,0,,,,|||,,,,,Electric]Tera Captain|Lucario|SalacBerry|InnerFocus|NastyPlot,ShadowBall,VacuumWave,Endure|Modest|152,,,252,,104||,0,,,,|||,,,,,Ghost]Meowscarada||ProtectivePads|Protean|TripleAxel,FlowerTrick,KnockOff,LowKick|Adamant|32,252,,,,224|||||,,,,,Grass]Tera Captain|Latias|RockyHelmet|Levitate|Psyshock,AuraSphere,Recover,CalmMind|Timid|120,,232,,,156||,0,,,,|||,,,,,Electric]Iron Treads||ExpertBelt|QuarkDrive|StoneEdge,Earthquake,BodyPress,RapidSpin|Jolly|16,252,,,,240|||||,,,,,Ground"], + ["Tera Captain|Latias|RockyHelmet|Levitate|FutureSight,Thunderbolt,Recover,IceBeam|Modest|248,,,124,,136||,0,,,,|||,,,,,Poison]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Thunderbolt,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Sandy Shocks||AirBalloon|Protosynthesis|Thunderbolt,StealthRock,ScorchingSands,VoltSwitch|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Meowscarada||LifeOrb|Overgrow|GigaDrain,DarkPulse,PowerGem,NastyPlot|Modest|152,,4,252,,100||,0,,,,|||,,,,,Grass]Tera Captain|Ribombee|HeavyDutyBoots|ShieldDust|Moonblast,TeraBlast,QuiverDance,StickyWeb|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Tentacruel||Leftovers|LiquidOoze|Surf,SludgeWave,RapidSpin,Toxic|Timid|112,,,252,4,140|||||,,,,,Water","Donphan||AssaultVest|Sturdy|RapidSpin,Earthquake,KnockOff,IceShard|Careful|252,,,,208,48|||||,,,,,Ground]Tera Captain|Gyarados|ExpertBelt|Intimidate|DragonDance,Waterfall,Earthquake,IceFang|Jolly|72,252,,,,184|||||,,,,,Ground]Gholdengo||ColburBerry|GoodasGold|Recover,MakeItRain,NastyPlot,ShadowBall|Bold|252,,192,,,64||,0,,,,|||,,,,,Steel]Qwilfish-Hisui||Eviolite|Intimidate|Crunch,Spikes,PainSplit,BarbBarrage|Careful|252,,,,160,96|||||,,,,,Dark]Tera Captain|Latias|ChoiceScarf|Levitate|Psychic,DracoMeteor,ShadowBall,HealingWish|Timid|72,,,252,,184||,0,,,,|||,,,,,Electric]Iron Valiant||HeavyDutyBoots|QuarkDrive|Moonblast,ShadowBall,CalmMind,Psyshock|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy"], + ["Donphan||AssaultVest|Sturdy|RapidSpin,KnockOff,StoneEdge,Earthquake|Adamant|,252,,,156,100|||||,,,,,Ground]Iron Moth||HeavyDutyBoots|QuarkDrive|Overheat,EnergyBall,SludgeWave,Toxic|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Alomomola||AssaultVest|Regenerator|FlipTurn,Liquidation,AquaJet,MirrorCoat|Careful|252,,4,,252,|||||,,,,,Water]Roaring Moon||ChoiceBand|Protosynthesis|Crunch,ScaleShot,Outrage,Uturn|Jolly|,252,,,72,184|||||,,,,,Dragon]Skarmory||OccaBerry|WeakArmor|StealthRock,BraveBird,Roost,Whirlwind|Impish|252,164,44,,,48|||||,,,,,Steel]Tera Captain|Annihilape|CovertCloak|InnerFocus|Encore,RockTomb,RageFist,DrainPunch|Adamant|252,24,,,,232|||||,,,,,Fairy","Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,Trailblaze,IvyCudgel,PlayRough|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|Manaphy|SalacBerry|Hydration|Substitute,TailGlow,Surf,IceBeam|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,BleakwindStorm,HeatWave,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Donphan||HeavyDutyBoots|Sturdy|RapidSpin,KnockOff,Earthquake,StealthRock|Adamant|248,252,,,8,|||||,,,,,Ground]Tera Captain|Bisharp|Eviolite|Defiant|SwordsDance,SuckerPunch,IronHead,ThroatChop|Adamant|252,252,,,4,|||||,,,,,Fairy]Weezing-Galar||RockyHelmet|Levitate|Defog,PainSplit,StrangeSteam,Haze|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison"], + ["Iron Bundle||BoosterEnergy|QuarkDrive|HydroPump,IceBeam,FreezeDry,ElectricTerrain|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice]Politoed||DampRock|Drizzle|Haze,Encore,PerishSong,Surf|Calm|248,,,8,252,||,0,,,,|||,,,,,Water]Rotom-Wash||EjectButton|Levitate|VoltSwitch,HydroPump,WillOWisp,Protect|Calm|248,,,8,252,||,0,,,,|||,,,,,Electric]Tera Captain|Archaludon|AssaultVest|Stamina|BodyPress,ElectroShot,FlashCannon,Earthquake|Sassy|,4,,200,252,|||||,,,,,Steel]Clodsire||BlackSludge|Unaware|Earthquake,Toxic,StealthRock,Recover|Careful|252,4,,,252,|||||,,,,,Poison]Meowscarada||FocusSash|Protean|BrickBreak,FlowerTrick,SuckerPunch,KnockOff|Jolly|,252,,,4,252|||||,,,,,Grass","Ogerpon-Wellspring||WellspringMask|WaterAbsorb|Uturn,LowKick,PowerWhip,Taunt|Adamant|184,252,,,,72|||||,,,,,Water]Tera Captain|Revavroom|AirBalloon|Filter|ShiftGear,Substitute,GunkShot,HighHorsepower|Jolly|80,252,,,,176|||||,,,,,Ground]Great Tusk||CobaBerry|Protosynthesis|SupercellSlam,CloseCombat,HeadlongRush,RapidSpin|Adamant|232,252,,,,24|||||,,,,,Ground]Tera Captain|Eelektross|AssaultVest|Levitate|Uturn,SuperFang,StompingTantrum,KnockOff|Careful|248,,8,,252,|||||,,,,,Electric]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,ZenHeadbutt,MightyCleave|Jolly|8,252,,,,248|||||,,,,,Rock]Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,DarkPulse,FireBlast,Psychic|Modest|,,4,252,,252||,0,,,,|||,,,,,Dark"], + ["Sandy Shocks||ExpertBelt|Protosynthesis|VoltSwitch,EarthPower,Thunderbolt,Spikes|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Weavile||ProtectivePads|Pressure|TripleAxel,KnockOff,SwordsDance,IceShard|Jolly|,252,,,4,252|||||,,,,,Dark]Kommo-o||ThroatSpray|Bulletproof|ClangorousSoul,Boomburst,Flamethrower,DrainPunch|Naive|,4,,252,,252|||||,,,,,Normal]Terapagos||HeavyDutyBoots|TeraShift|RapidSpin,TeraStarstorm,Flamethrower,CalmMind|Modest|60,,,252,,196|||||,,,,,Stellar]Tera Captain|Cresselia|Leftovers|Levitate|CalmMind,StoredPower,Moonblast,Moonlight|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Manaphy||RindoBerry|Hydration|TailGlow,IceBeam,Surf,EnergyBall|Timid|68,,,252,4,184||,0,,,,|||,,,,,Water","Hatterene||Leftovers|MagicBounce|CalmMind,Psyshock,GigaDrain,MysticalFire|Bold|252,,4,252,,||,0,,,,|||,,,,,Psychic]Corviknight||Leftovers|Pressure|Roost,Defog,Uturn,Taunt|Careful|248,,,,252,8|||||,,,,,Flying]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,CloseCombat,IronHead,SwordsDance|Jolly|,252,,,184,72|||||,,,,,Rock]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,DragonPulse,TeraBlast,Substitute|Timid|,,,252,96,160||,0,,,,|||,,,,,Fire]Tera Captain|Crocalor|Eviolite|Unaware|Flamethrower,SlackOff,Roar,Yawn|Calm|252,,4,,252,||,0,,,,|||,,,,,Dragon]Gouging Fire||LumBerry|Protosynthesis|DragonDance,IronHead,DragonClaw,FlareBlitz|Jolly|,252,,,48,208|||||,,,,,Fire"], + ["Zapdos||HeavyDutyBoots|Static|Discharge,VoltSwitch,Hurricane,Roost|Bold|248,,252,,8,||,0,,,,|||,,,,,Electric]Tera Captain|Latias|ChoiceScarf|Levitate|Thunderbolt,Trick,CalmMind,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Garchomp||HeavyDutyBoots|RoughSkin|StealthRock,Earthquake,ScaleShot,SwordsDance|Jolly|200,,84,,4,220|||||,,,,,Dragon]Tera Captain|Forretress|HeavyDutyBoots|Sturdy|ThunderWave,Spikes,BodyPress,VoltSwitch|Bold|248,,252,,8,||,0,,,,|||,,,,,Bug]Florges-Blue||HeavyDutyBoots|FlowerVeil|Moonblast,Wish,CalmMind,Synthesis|Calm|252,,224,,32,||,0,,,,|S||,,,,,Fairy]Palafin-Hero||LumBerry|ZerotoHero|JetPunch,Acrobatics,Rest,BulkUp|Adamant|240,76,112,,28,52|||||,,,,,Water","Alomomola||AssaultVest|Regenerator|MirrorCoat,FlipTurn,IceBeam,AlluringVoice|Calm|252,,4,,252,|||||,,,,,Water]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Encore,Synthesis,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|SludgeBomb,NastyPlot,Taunt,BleakwindStorm|Timid|88,,,252,,168||,0,,,,|||,,,,,Flying]Glimmora||ChoiceScarf|ToxicDebris|Memento,PowerGem,SludgeWave,DazzlingGleam|Modest|152,,,252,,104||,0,,,,|||,,,,,Rock]Urshifu||ProtectivePads|UnseenFist|Trailblaze,SwordsDance,WickedBlow,IronHead|Adamant|240,252,,,,16|||||,,,,,Fighting]Heatran||ShucaBerry|FlameBody|StealthRock,Taunt,MagmaStorm,Protect|Calm|252,,,4,252,||,0,,,,|||,,,,,Fire"], + ["Tera Captain|GreatTusk|LumBerry|Protosynthesis|HeadlongRush,RapidSpin,CloseCombat,TemperFlare|Adamant|,252,164,,,92|||||,,,,,Fighting]Manaphy||CovertCloak|Hydration|Surf,EnergyBall,TailGlow,SkillSwap|Modest|252,,148,108,,||,0,,,,|||,,,,,Water]Rotom-Heat||MirrorHerb|Levitate|Overheat,PainSplit,VoltSwitch,NastyPlot|Calm|252,,,,156,100||,0,,,,|||,,,,,Electric]Rillaboom||MiracleSeed|GrassySurge|WoodHammer,LeechSeed,Taunt,Substitute|Impish|148,,252,,,108|||||,,,,,Grass]Klefki||HeatRock|Prankster|SunnyDay,Spikes,LightScreen,Reflect|Calm|252,,4,,252,||,0,,,,|||,,,,,Steel]Roaring Moon||ChoiceScarf|Protosynthesis|KnockOff,StoneEdge,Uturn,Outrage|Adamant|212,252,,,,44|||||,,,,,Dragon","Palafin||ChoiceBand|ZerotoHero|CloseCombat,FlipTurn,WaveCrash,JetPunch|Jolly|,252,,,4,252|||||,,,,,Water]Corviknight||Leftovers|Pressure|IronDefense,BodyPress,Uturn,Roost|Impish|248,,252,,,8|||||,,,,,Flying]Tera Captain|Garganacl|Leftovers|PurifyingSalt|BodyPress,IronDefense,Recover,SaltCure|Careful|252,4,,,252,|||||,,,,,Ghost]Torterra||LoadedDice|Overgrow|BulletSeed,RockBlast,ShellSmash,HeadlongRush|Jolly|32,252,,,,224|||||,,,,,Grass]Tera Captain|Skeledirge|Leftovers|Unaware|TorchSong,SlackOff,TeraBlast,ShadowBall|Calm|248,,,84,176,||,0,,,,|||,,,,,Fairy]Gardevoir||ChoiceScarf|Synchronize|HealingWish,Moonblast,MysticalFire,Memento|Timid|,,,252,4,252||,0,,,,|||,,,,,Psychic"], + ["Great Tusk||Leftovers|Protosynthesis|StealthRock,KnockOff,Earthquake,TemperFlare|Jolly|252,,8,,,248|||||,,,,,Ground]Moltres||HeavyDutyBoots|FlameBody|Roar,Hurricane,Uturn,Roost|Calm|252,,,,248,8|||||,,,,,Fire]Tera Captain|IronCrown|MirrorHerb|QuarkDrive|Agility,FocusBlast,TachyonCutter,Psyshock|Modest|88,,,252,,168||,20,,,,|||,Fighting,,,,Dark]Indeedee||ChoiceScarf|PsychicSurge|ExpandingForce,HyperVoice,Trick,HealingWish|Timid|32,,,252,,224||,0,,,,|||,,,,,Psychic]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|ScaryFace,IvyCudgel,HornLeech,Encore|Jolly|252,,,,152,104|||||,,,,,Water]Tera Captain|Jolteon|Leftovers|VoltAbsorb|ThunderWave,Thunderbolt,TeraBlast,VoltSwitch|Timid|252,,100,12,,144||,0,,,,|||,,,,,Ground","Iron Valiant||LifeOrb|QuarkDrive|Thunderbolt,Moonblast,Psychic,DestinyBond|Modest|16,,32,252,,208||,0,,,,|S||,,,,,Fairy]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,StoneEdge,FlareBlitz,Earthquake|Adamant|72,252,,,,184|||||,,,,,Fire]Rotom-Mow||Leftovers|Levitate|WillOWisp,LeafStorm,VoltSwitch,Thunderbolt|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Excadrill||SafetyGoggles|MoldBreaker|SwordsDance,RapidSpin,RockSlide,Earthquake|Jolly|,252,,,4,252|||S||,,,,,Ground]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,StoredPower,Substitute,ShadowBall|Bold|8,,252,248,,||,0,,,,|||,,,,,Steel]Tera Captain|Primarina|AssaultVest|Torrent|Moonblast,Surf,FlipTurn,ShadowBall|Relaxed|252,,252,,4,|||||,,,,,Flying"], + ["Ogerpon-Cornerstone||CornerstoneMask|Sturdy|HornLeech,Superpower,IvyCudgel,Spikes|Adamant|80,252,,,,176|||||,,,,,Rock]Slowking||HeavyDutyBoots|Regenerator|Scald,ChillyReception,FocusBlast,FutureSight|Calm|252,,4,,252,||,0,,,,0|||,,,,,Stellar]Cyclizar||SitrusBerry|Regenerator|ShedTail,RapidSpin,KnockOff,Taunt|Jolly|252,,,,48,208|||||,,,,,Stellar]Tera Captain|RagingBolt|EjectPack|Protosynthesis|CalmMind,Thunderclap,Thunderbolt,DracoMeteor|Modest|88,,252,168,,||,20,,,,|||,,,,,Steel]Ribombee||ExpertBelt|ShieldDust|Uturn,StickyWeb,BugBuzz,PsychicNoise|Timid|72,,,252,,184|||S||,,,,,Stellar]Tera Captain|Flygon|LifeOrb|Levitate|DragonDance,TeraBlast,Earthquake,Superpower|Adamant|84,252,,,,172|||||,,,,,Bug","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,PlayRough,HornLeech|Jolly|,252,,,4,252|||||,,,,,Water]Tsareena||ExpertBelt|LeafGuard|TripleAxel,RapidSpin,Synthesis,HighJumpKick|Jolly|200,,176,,,132|||||,,,,,Grass]Ting-Lu||Leftovers|VesselofRuin|Spikes,Earthquake,Ruination,Whirlwind|Sassy|252,4,,,252,|||||,,,,,Dark]Fezandipiti||BlackSludge|ToxicChain|Uturn,PlayRough,Toxic,Roost|Careful|252,4,120,,132,|||||,,,,,Poison]Slowbro||RindoBerry|Regenerator|Scald,SlackOff,PsychicNoise,IceBeam|Bold|252,,252,4,,||,0,,,,|S||,,,,,Water]Heatran||AirBalloon|FlashFire|MagmaStorm,WillOWisp,StealthRock,EarthPower|Bold|252,,204,,52,||,0,,,,|||,,,,,Fire"], + ["Iron Jugulis||ChoiceScarf|QuarkDrive|Uturn,DarkPulse,FlashCannon,Hurricane|Modest|,,,252,4,252|||||,,,,,Dark]Tera Captain|Latias|ColburBerry|Levitate|MistBall,Recover,Reflect,ThunderWave|Timid|252,,208,,,48||,0,,,,|||,,,,,Steel]Mimikyu||RedCard|Disguise|SwordsDance,ShadowSneak,DrainPunch,DestinyBond|Jolly|,252,40,,,216|||||,,,,,Ghost]Tera Captain|Torterra|LoadedDice|ShellArmor|ShellSmash,TeraBlast,Earthquake,BulletSeed|Adamant|,252,,,96,160|||||,,,,,Electric]Palafin||RindoBerry|ZerotoHero|BulkUp,JetPunch,Acrobatics,DrainPunch|Careful|252,56,,,200,|||||,,,,,Water]Empoleon||RockyHelmet|Competitive|AirSlash,Roost,FlipTurn,Yawn|Calm|252,,,4,252,|||||,,,,,Water","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,HornLeech,Encore|Jolly|,252,,,4,252|||||,,,,,Water]Tornadus-Therian||ChoiceScarf|Regenerator|IcyWind,BleakwindStorm,FoulPlay,Uturn|Timid|252,,,84,4,168|||||,,,,,Flying]Gholdengo||ShucaBerry|GoodasGold|NastyPlot,ShadowBall,Thunderbolt,Recover|Calm|252,,88,,160,8||,0,,,,|||,,,,,Steel]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,MorningSun,DragonClaw,HeatCrash|Jolly|,252,,,40,216|||||,,,,,Fire]Donphan||CustapBerry|Sturdy|Earthquake,RapidSpin,IceShard,StealthRock|Adamant|248,252,,,8,|||||,,,,,Ground]Tera Captain|Comfey|LaggingTail|Triage|CalmMind,DrainingKiss,GigaDrain,Trick|Modest|252,,4,252,,||,0,,,,|||,,,,,Dark"], + ["Garchomp||RockyHelmet|RoughSkin|StompingTantrum,PoisonJab,StealthRock,DragonTail|Jolly|252,16,,,,240|||||,,,,,Dragon]Meowscarada||ChoiceScarf|Protean|FlowerTrick,AerialAce,BrickBreak,Uturn|Jolly|24,252,,,,232|||||,,,,,Grass]Gholdengo||SitrusBerry|GoodasGold|ShadowBall,Recover,ThunderWave,Trick|Bold|252,,216,40,,||,0,,,,|||,,,,,Steel]Tentacruel||SitrusBerry|LiquidOoze|RapidSpin,Toxic,KnockOff,FlipTurn|Careful|252,4,,,252,||,,,,,0|||,,,,,Water]Florges||SitrusBerry|FlowerVeil|Moonblast,EnergyBall,Wish,Trick|Calm|248,,,8,252,||,0,,,,|||,,,,,Fairy]Tera Captain|RagingBolt|ChoiceSpecs|Protosynthesis|Thunderclap,TeraBlast,DragonPulse,VoltSwitch|Modest|188,,252,68,,||,20,,,,|||,,,,,Poison","Tera Captain|Rillaboom|Leftovers|GrassySurge|SwordsDance,Trailblaze,HighHorsepower,TeraBlast|Adamant|64,252,,,,192|||||,,,,,Poison]Weezing||RockyHelmet|Levitate|SludgeBomb,WillOWisp,PainSplit,Toxic|Bold|248,,252,,,||,0,,,,|||,,,,,Poison]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,DarkPulse,FireBlast|Modest|16,,,252,4,236||,0,,,,|||,,,,,Dark]Tera Captain|Primarina|AssaultVest|Torrent|Moonblast,Surf,FlipTurn,IceBeam|Calm|248,,,124,136,|||||,,,,,Ground]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,CloseCombat,Uturn,Switcheroo|Adamant|24,252,,,,232|||||,,,,,Fighting]Iron Treads||HeavyDutyBoots|QuarkDrive|Earthquake,RapidSpin,StealthRock,VoltSwitch|Careful|252,4,,,252,||,,16,,,|||,,,,,Ground"], + ["Iron Valiant||ExpertBelt|QuarkDrive|Encore,Moonblast,CloseCombat,FirePunch|Hasty|232,64,,4,,208|||||,,,,,Fairy]Chi-Yu||AssaultVest|BeadsofRuin|Flamethrower,Overheat,DarkPulse,Ruination|Timid|,,,252,48,208||,0,,,,|||,,,,,Dark]Tera Captain|Serperior|ChoiceScarf|Contrary|LeafStorm,TeraBlast,Glare,DragonPulse|Timid|,,,252,24,232||,0,,,,|||,,,,,Stellar]Tera Captain|SinistchaMasterpiece|SitrusBerry|Heatproof|ShadowBall,LeafStorm,StrengthSap,Curse|Calm|252,,,4,252,||,0,,,,|||,,,,,Grass]Rotom-Wash||Leftovers|Levitate|HydroPump,VoltSwitch,ThunderWave,Hex|Calm|252,,,100,156,||,0,,,,|||,,,,,Electric]Forretress||CustapBerry|Sturdy|RapidSpin,StealthRock,Explosion,GyroBall|Brave|252,252,,,4,||,,,,,0|||,,,,,Bug","Greninja||ChoiceSpecs|Protean|Uturn,Surf,DarkPulse,IceBeam|Timid|48,,,252,,208|||||,,,,,Water]Tera Captain|Latias|ChoiceScarf|Levitate|HealingWish,AirSlash,Psyshock,DracoMeteor|Timid|80,,,252,,176||,0,,,,|||,,,,,Flying]Tinkaton||Leftovers|MoldBreaker|StealthRock,PlayRough,ThunderWave,GigatonHammer|Careful|252,,116,,140,|||S||,,,,,Fairy]Tera Captain|OricorioPomPom|HeavyDutyBoots|Dancer|QuiverDance,Taunt,RevelationDance,Roost|Modest|168,,,252,,88||,0,,,,|||,,,,,Flying]Heatran||Leftovers|FlashFire|MagmaStorm,Taunt,Protect,EarthPower|Calm|252,,,,244,12||,0,,,,|||,,,,,Fire]Amoonguss||RedCard|Regenerator|ClearSmog,SludgeBomb,GigaDrain,Toxic|Calm|252,,,,212,44||,0,,,,|||,,,,,Grass"], + ["Palafin-Hero||Leftovers|ZerotoHero|IcePunch,BulkUp,ThroatChop,JetPunch|Impish|72,,240,,,196|||||,,,,,Ice]Iron Treads||AssaultVest|QuarkDrive|RapidSpin,IronHead,Earthquake,SteelRoller|Careful|36,252,,,220,|||||,,,,,Ice]Tera Captain|RagingBolt|PowerHerb|Protosynthesis|Thunderbolt,Thunderclap,DracoMeteor,SolarBeam|Modest|48,,,240,,220||,20,,,,|||,,,,,Fairy]Roaring Moon||ChoiceBand|Protosynthesis|Uturn,KnockOff,Outrage,FireFang|Jolly|,252,,,72,184|||||,,,,,Ice]Mesprit||ChoiceScarf|Levitate|Trick,Uturn,HealingWish,StealthRock|Adamant|4,252,,,,240|||||,,,,,Ice]Weezing||CovertCloak|Levitate|PainSplit,ToxicSpikes,GyroBall,WillOWisp|Relaxed|252,240,16,,,||,,,,,0|||,,,,,Poison","Tera Captain|Latias|GrassySeed|Levitate|CalmMind,Thunderbolt,Surf,DrainingKiss|Bold|184,,252,,,72||,0,,,,|||,,,,,Electric]Sneasler||FocusSash|PoisonTouch|DireClaw,Taunt,Uturn,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Fighting]Thwackey||Eviolite|GrassySurge|Uturn,LeechSeed,GrassyGlide,KnockOff|Impish|248,,180,,68,12|||||,,,,,Grass]Darkrai||Leftovers|BadDreams|Snarl,CalmMind,IceBeam,DarkPulse|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Swampert||Leftovers|Torrent|FlipTurn,KnockOff,HighHorsepower,ChillingWater|Impish|136,,252,,120,|||||,,,,,Water]Tera Captain|Diancie|Leftovers|ClearBody|BodyPress,DiamondStorm,StealthRock,Psychic|Sassy|248,,8,,252,|||||,,,,,Steel"], + ["Palafin||SitrusBerry|ZerotoHero|JetPunch,Acrobatics,Taunt,BulkUp|Adamant|8,252,,,8,240|||||,,,,,Water]Latios||ChoiceScarf|Levitate|DracoMeteor,LusterPurge,ShadowBall,FlipTurn|Modest|72,,,252,,184|||||,,,,,Dragon]Heatran||Leftovers|FlashFire|MagmaStorm,EarthPower,StealthRock,Protect|Calm|252,,,,56,200||,0,,,,|||,,,,,Fire]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,DragonPulse,Glare|Timid|96,,,252,,160||,0,,,,|||,,,,,Fire]Tera Captain|Umbreon|Leftovers|Synchronize|FoulPlay,ThunderWave,Wish,Protect|Calm|252,,4,,252,||,0,,,,|||,,,,,Ghost]Donphan||AssaultVest|Sturdy|Earthquake,KnockOff,IceSpinner,RapidSpin|Adamant|160,252,,,,96|||||,,,,,Ground","Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,Overheat,Psychic,Memento|Modest|80,,4,252,,172||,0,,,,|||,,,,,Dark]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,BleakwindStorm,FocusBlast,Substitute|Timid|68,,,248,,192||,0,,,,|||,,,,,Flying]Metagross||AssaultVest|ClearBody|MeteorMash,Earthquake,BulletPunch,Explosion|Adamant|248,228,,,32,|||||,,,,,Steel]Tera Captain|Gardevoir|AssaultVest|Trace|Moonblast,FocusBlast,ChargeBeam,DrainingKiss|Modest|24,,,252,,232||,0,,,,|||,,,,,Psychic]Sandy Shocks||SitrusBerry|Protosynthesis|StealthRock,EarthPower,ThunderWave,VoltSwitch|Modest|248,,,12,184,64||,0,,,,|||,,,,,Electric]Meganium||RockyHelmet|Overgrow|Synthesis,GigaDrain,KnockOff,LightScreen|Bold|248,,252,8,,|||||,,,,,Grass"], + ["Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,Taunt,DrainPunch,RageFist|Jolly|252,,,,4,252|||||,,,,,Grass]Roaring Moon||BoosterEnergy|Protosynthesis|KnockOff,IronHead,Uturn,BrickBreak|Jolly|72,252,,,,184|||||,,,,,Dragon]Iron Treads||HeavyDutyBoots|QuarkDrive|KnockOff,Earthquake,VoltSwitch,RapidSpin|Careful|20,,,,252,236|||||,,,,,Ground]Tera Captain|RotomHeat|HeavyDutyBoots|Levitate|WillOWisp,PainSplit,VoltSwitch,Hex|Bold|248,,252,,8,||,0,,,,|||,,,,,Dragon]Slowking-Galar||BlackSludge|Regenerator|NastyPlot,Psychic,FocusBlast,TrickRoom|Quiet|252,,,252,4,||,0,,,,0|||,,,,,Poison]Primarina||ChoiceScarf|LiquidVoice|FlipTurn,PsychicNoise,HydroPump,Moonblast|Timid|28,,,252,,228|||||,,,,,Water","Skarmory||RockyHelmet|Sturdy|BodyPress,IronDefense,Spikes,Roost|Bold|240,,252,,,16||,0,,,,|||,,,,,Stellar]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,DrainPunch,ZenHeadbutt|Adamant|240,252,,,,16|||||,,,,,Stellar]Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,BulkUp,Taunt|Jolly|248,,8,,,252|||||,,,,,Water]Cyclizar||LifeOrb|Regenerator|KnockOff,DragonClaw,PowerWhip,ShiftGear|Jolly|112,252,8,,,136|||||,,,,,Stellar]Pecharunt||AirBalloon|PoisonPuppeteer|ShadowBall,MalignantChain,NastyPlot,Recover|Bold|248,,16,24,200,20||,0,,,,|||,,,,,Stellar]Tera Captain|Mudsdale|Leftovers|Stamina|Earthquake,RockSlide,CloseCombat,StealthRock|Adamant|248,252,,,,8|||||,,,,,Water"], + ["Garchomp||RoseliBerry|RoughSkin|SwordsDance,ScaleShot,Earthquake,StoneEdge|Jolly|,100,,,156,252|||||,,,,,Dragon]Urshifu||PunchingGlove|UnseenFist|WickedBlow,SuckerPunch,CloseCombat,ThunderPunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,WillOWisp,PainSplit|Bold|252,,164,8,84,||,0,,,,|||,,,,,Electric]Sylveon||Leftovers|Pixilate|CalmMind,Psyshock,Wish,HyperVoice|Bold|252,,232,,24,||,0,,,,|||,,,,,Fairy]Tsareena||HeavyDutyBoots|QueenlyMajesty|RapidSpin,PowerWhip,TripleAxel,KnockOff|Adamant|252,252,,,4,|||||,,,,,Grass]Tera Captain|Revavroom|LifeOrb|Filter|ShiftGear,TeraBlast,IronHead,GunkShot|Naughty|4,252,,,,252|||||,,,,,Electric","Palafin||ThroatSpray|ZerotoHero|JetPunch,Boomburst,DrainingKiss,IceBeam|Timid|24,,,252,,232|||||,,,,,Water]Volcarona||LumBerry|FlameBody|Screech,FireSpin,FlareBlitz,MorningSun|Impish|248,,240,,,20|||S||,,,,,Bug]Tyranitar||ChopleBerry|SandStream|StealthRock,HeavySlam,KnockOff,IceBeam|Sassy|252,4,,,252,|||||,,,,,Rock]Tera Captain|Chesnaught|RockyHelmet|Overgrow|BodyPress,LeechSeed,Synthesis,Spikes|Impish|252,4,252,,,||,0,,,,|||,,,,,Fairy]Tera Captain|Gyarados|LumBerry|Moxie|DragonDance,Waterfall,TeraBlast,IceFang|Adamant|,252,44,,,212|||S||,,,,,Grass]Espeon||ChoiceScarf|Synchronize|AlluringVoice,Trick,Wish,Psychic|Timid|,,64,252,,192||,0,,,,|S||,,,,,Ghost"], + ["Overqwil||BlackSludge|Intimidate|Spikes,BarbBarrage,Haze,Crunch|Lax|248,8,252,,,|||||,,,,,Dark]Enamorus||SitrusBerry|CuteCharm|IronDefense,MysticalFire,Taunt,Moonblast|Timid|,,32,252,,224||,0,,,,|||,,,,,Fairy]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|GrassyGlide,Uturn,GrassyTerrain,IvyCudgel|Jolly|56,252,8,,,192|||||,,,,,Water]Ursaluna-Bloodmoon||HeavyDutyBoots|MindsEye|BloodMoon,CalmMind,VacuumWave,Moonlight|Bold|184,,248,76,,||,0,,,,|||,,,,,Ground]Emboar||CustapBerry|Reckless|Endure,FlareBlitz,WildCharge,SuckerPunch|Adamant|208,252,48,,,|||||,,,,,Fire]Tera Captain|Hoopa|HeavyDutyBoots|Magician|FocusBlast,Psychic,EnergyBall,ThunderWave|Relaxed|248,,252,8,,||,0,,,,|||,,,,,Grass","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,WoodHammer,Synthesis,Trailblaze|Jolly|,252,36,,,220|||||,,,,,Water]Scizor||AssaultVest|Technician|Uturn,BulletPunch,KnockOff,CloseCombat|Adamant|,252,,,204,52|||||,,,,,Bug]Zapdos||LightClay|Static|LightScreen,Roost,Discharge,Hurricane|Modest|,,,184,216,108||,0,,,,|||,,,,,Electric]Talonflame||ChoiceBand|GaleWings|BraveBird,TemperFlare,Roost,Uturn|Adamant|,252,,,4,252|||||,,,,,Fire]Overqwil||ShucaBerry|PoisonPoint|PoisonJab,Crunch,Taunt,Spikes|Jolly|,60,,,196,252|||||,,,,,Dark]Tera Captain|Hariyama|AssaultVest|ThickFat|DrainPunch,HeavySlam,Earthquake,ThunderPunch|Adamant|,52,184,,252,20|||||,,,,,Fairy"], + ["Darkrai||ExpertBelt|BadDreams|DarkPulse,IceBeam,Psyshock,SludgeBomb|Timid|16,,12,240,,240||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Encore,Uturn|Jolly|152,168,12,,,176|||||,,,,,Water]Klefki||RockyHelmet|Prankster|FoulPlay,Spikes,MagnetRise,ThunderWave|Bold|248,,208,,52,||,0,,,,|||,,,,,Steel]Landorus-Therian||LumBerry|Intimidate|StealthRock,Earthquake,Gravity,Uturn|Adamant|240,152,4,,64,48|||||,,,,,Ground]Tera Captain|Eelektross|AssaultVest|Levitate|Thunderbolt,TeraBlast,KnockOff,DragonTail|Brave|252,4,,,252,|||||,,,,,Steel]Arbok||RockyHelmet|Intimidate|GunkShot,Earthquake,FireFang,Glare|Adamant|248,96,156,,,8|||||,,,,,Poison","Palafin||ChoiceScarf|ZerotoHero|Boomburst,Surf,SleepTalk,CloseCombat|Naive|,,40,252,,216|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|CalmMind,Thunderbolt,Psychic,Recover|Timid|248,,,124,,136||,0,,,,|||,,,,,Electric]Meowscarada||HeavyDutyBoots|Protean|KnockOff,FlowerTrick,LowKick,Uturn|Jolly|104,252,,,,152|||||,,,,,Grass]Scizor||Leftovers|LightMetal|SwordsDance,BulletPunch,Uturn,AerialAce|Careful|248,64,,,196,|||||,,,,,Bug]Tera Captain|Comfey|BigRoot|Triage|CalmMind,DrainingKiss,GigaDrain,TeraBlast|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground]Typhlosion-Hisui||HeavyDutyBoots|Frisk|Eruption,InfernalParade,Flamethrower,Roar|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire"], + ["Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,CloseCombat,FlipTurn|Adamant|,252,200,,36,20|||||,,,,,Water]Garchomp||LifeOrb|RoughSkin|Earthquake,StealthRock,FireBlast,ScaleShot|Naive|,176,4,76,,252|||||,,,,,Dragon]Gholdengo||ShucaBerry|GoodasGold|NastyPlot,MakeItRain,ShadowBall,Recover|Modest|180,,252,68,,8||,0,,,,|||,,,,,Steel]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,IcyWind,Uturn|Timid|112,,,176,4,216|||||,,,,,Flying]Diancie||PowerHerb|ClearBody|TrickRoom,MeteorBeam,Moonblast,PowerGem|Quiet|248,,,252,8,||,0,,,,0|||,,,,,Rock]Tera Captain|Gallade|LumBerry|Sharpness|SacredSword,PsychoCut,Agility,SwordsDance|Jolly|128,252,,,,128|||||,,,,,Psychic","Iron Valiant||BoosterEnergy|QuarkDrive|FocusBlast,Moonblast,Psychic,CalmMind|Timid|84,,,252,,172||,0,,,,|||,,,,,Fairy]Arbok||ChoiceBand|Intimidate|GunkShot,Earthquake,IceFang,Switcheroo|Adamant|72,252,4,,,180|||||,,,,,Poison]Tera Captain|DudunsparceThreeSegment|Leftovers|SereneGrace|Boomburst,EarthPower,CalmMind,Roost|Calm|252,,88,,168,||,0,,,,|||,,,,,Water]Tera Captain|Serperior|ChoiceScarf|Contrary|LeafStorm,TeraBlast,KnockOff,Glare|Timid|56,,4,252,,196|||||,,,,,Stellar]Pawniard||Eviolite|Defiant|IronHead,SuckerPunch,SwordsDance,Substitute|Adamant|152,252,,,4,100|||||,,,,,Dark]Garchomp||ChoiceScarf|RoughSkin|Outrage,Earthquake,IronHead,StealthRock|Jolly|16,252,,,,240|||||,,,,,Dragon"], + ["Darkrai||ChoiceScarf|BadDreams|SludgeBomb,DarkPulse,IceBeam,FocusBlast|Timid|,,,252,,232||,0,,,,|||,,,,,Dark]Tera Captain|Diancie|PasshoBerry|ClearBody|Moonblast,Spikes,StealthRock,PowerGem|Calm|248,,,8,252,||,0,,,,|||,,,,,Water]Tera Captain|Annihilape|Leftovers|Defiant|Encore,RageFist,CloseCombat,IcePunch|Jolly|32,252,,,,224|||||,,,,,Ghost]Slowking-Galar||ShucaBerry|Regenerator|IceBeam,ChillyReception,SludgeWave,Flamethrower|Relaxed|248,,100,160,,||,0,,,,0|||,,,,,Poison]Gliscor||ToxicOrb|PoisonHeal|SwordsDance,Agility,Facade,Earthquake|Jolly|,252,,,,252|||||,,,,,Ground]Blastoise||AssaultVest|Torrent|RapidSpin,AuraSphere,Surf,Earthquake|Sassy|248,,,8,252,|||||,,,,,Water","Iron Valiant||LifeOrb|QuarkDrive|Moonblast,ShadowBall,Thunderbolt,VacuumWave|Timid|40,,,252,,216||,0,,,,|||,,,,,Fairy]Tera Captain|GreninjaBond|LifeOrb|BattleBond|SwordsDance,Liquidation,UpperHand,GunkShot|Jolly|88,252,,,,168|||||,,,,,Water]Gliscor||ToxicOrb|PoisonHeal|Spikes,Taunt,Earthquake,Protect|Jolly|244,,128,,,136|||||,,,,,Ground]Slowking-Galar||ColburBerry|Regenerator|ThunderWave,SludgeBomb,Flamethrower,PsychicNoise|Modest|252,,72,84,100,||,0,,,,|||,,,,,Poison]Tera Captain|Appletun|SitrusBerry|Ripen|DragonTail,AppleAcid,DragonPulse,Recover|Sassy|252,,164,,92,|||||,,,,,Fairy]Rotom-Wash||StickyBarb|Levitate|Trick,WillOWisp,VoltSwitch,HydroPump|Bold|252,,48,,,208||,0,,,,|S||,,,,,Electric"], + ["Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,ShadowBall,FocusBlast,VacuumWave|Modest|124,,,252,,132||,0,,,,|||,,,,,Fairy]Iron Treads||ShucaBerry|QuarkDrive|StealthRock,RapidSpin,Earthquake,IceSpinner||44,252,,,,212|||||,,,,,Ground]Tera Captain|Zapdos|RockyHelmet|Pressure|Hurricane,ThunderWave,Roost,VoltSwitch|Timid|252,,104,,,152||,0,,,,|||,,,,,Ghost]Tera Captain|Suicune|Leftovers|Pressure|CalmMind,Scald,Substitute,IceBeam|Bold|252,,80,,,176||,0,,,,|||,,,,,Poison]Dragalge||RockyHelmet|Adaptability|DracoMeteor,SludgeWave,FlipTurn,Toxic|Relaxed|252,,252,4,,|||||,,,,,Poison]Sinistcha||Leftovers|Heatproof|CalmMind,MatchaGotcha,ShadowBall,StrengthSap|Bold|252,,160,,96,||,0,,,,|||,,,,,Grass","Great Tusk||ProtectivePads|Protosynthesis|StealthRock,HeadlongRush,CloseCombat,IceSpinner|Adamant|16,252,,,,240|||||,,,,,Ground]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,DragonPulse,TeraBlast,Thunderclap|Modest|252,,136,120,,||,20,,,,|||,,,,,Fire]Sneasler||ProtectivePads|PoisonTouch|CloseCombat,DireClaw,Taunt,Uturn|Jolly|32,252,,,,224|||||,,,,,Fighting]Rillaboom||AssaultVest|GrassySurge|GrassyGlide,HighHorsepower,KnockOff,Endeavor|Adamant|252,252,,,4,|||||,,,,,Grass]Empoleon||Leftovers|Competitive|Surf,IceBeam,Roar,Roost|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Tera Captain|Mesprit|ChoiceScarf|Levitate|IceBeam,ThunderWave,Trick,HealingWish|Timid|252,,,,56,200||,0,,,,|||,,,,,Electric"], + ["Gliscor||ToxicOrb|PoisonHeal|KnockOff,Uturn,Earthquake,Spikes|Adamant|252,184,,,,72|||||,,,,,Ground]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderclap,CalmMind,DragonPulse,Thunderbolt|Modest|252,,,252,4,||,20,,,,|||,,,,,Electric]Coalossal||HeavyDutyBoots|FlameBody|RapidSpin,Overheat,StoneEdge,StealthRock|Sassy|76,,,4,252,|||||,,,,,Rock]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,Recover,Thunderbolt|Modest|252,,,252,4,||,0,,,,|||,,,,,Steel]Scream Tail||Leftovers|Protosynthesis|Encore,DazzlingGleam,Wish,ThunderWave|Timid|252,,,4,,252||,0,,,,|||,,,,,Fairy]Tera Captain|Cloyster|FocusSash|SkillLink|IceShard,IcicleSpear,RockBlast,ShellSmash|Adamant|80,252,,,,176|||||,,,,,Ice","Blastoise||WhiteHerb|Torrent|ShellSmash,Surf,IceBeam,FlashCannon|Modest|60,,4,252,4,188||,0,,,,|||,,,,,Water]Garchomp||MentalHerb|RoughSkin|SwordsDance,Earthquake,ScaleShot,IronHead|Jolly|40,252,,,,216|||||,,,,,Dragon]Granbull||RockyHelmet|Intimidate|PlayRough,Earthquake,SuperFang,Roar|Impish|252,,216,,40,|||||,,,,,Fairy]Uxie||RedCard|Levitate|StealthRock,KnockOff,Encore,Uturn|Impish|252,,252,,4,|||||,,,,,Psychic]Darkrai||ChopleBerry|BadDreams|SludgeBomb,DarkPulse,IceBeam,NastyPlot|Timid|80,,,252,,176||,0,,,,|||,,,,,Dark]Tera Captain|Revavroom|MirrorHerb|Filter|ShiftGear,HighHorsepower,GunkShot,IronHead|Adamant|72,252,,,,184|||||,,,,,Ground"], + ["Tera Captain|Excadrill|LumBerry|SandRush|Earthquake,IronHead,ThroatChop,SwordsDance|Hasty|,252,,4,,192|||||,,,,,Ground]Tyranitar||SmoothRock|SandStream|StealthRock,Avalanche,KnockOff,HeavySlam|Careful|192,,64,,252,|||||,,,,,Rock]Palafin-Hero||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,IcePunch,WaveCrash|Adamant|16,252,,,,240|||||,,,,,Water]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonDance,HeatCrash,DragonClaw,Earthquake|Adamant|112,252,4,,4,136|||||,,,,,Fire]Tera Captain|RotomMow|Leftovers|Levitate|WillOWisp,VoltSwitch,LeafStorm,PainSplit|Bold|,,252,12,156,88||,0,,,,|||,,,,,Electric]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,RapidSpin,Overheat,DracoMeteor|Timid|248,,,,8,252|||||,,,,,Dragon","Garchomp||YacheBerry|RoughSkin|StealthRock,Earthquake,PoisonJab,Spikes|Jolly|252,88,,,,168|||||,,,,,Dragon]Tera Captain|GreninjaBond|LumBerry|BattleBond|TeraBlast,Trailblaze,SwordsDance,Liquidation|Jolly|,252,8,,,248|||||,,,,,Dragon]Scream Tail||BoosterEnergy|Protosynthesis|Wish,Reflect,Encore,DazzlingGleam|Timid|248,,164,,,96||,0,,,,|||,,,,,Fairy]Terapagos||Leftovers|TeraShift|TeraStarstorm,AuraSphere,CalmMind,DarkPulse|Modest|72,,4,252,,180||,15,,,,|||,,,,,Stellar]Tera Captain|IronThorns|LumBerry|QuarkDrive|DragonDance,RockSlide,Earthquake,WildCharge|Jolly|56,252,4,,,196|||||,,,,,Grass]Drifblim||RedCard|Unburden|WillOWisp,StrengthSap,Memento,AirSlash|Bold|248,,252,,8,||,0,,,,|||,,,,,Ghost"], + ["Tera Captain|Heatran|ChoiceScarf|FlashFire|MagmaStorm,FlashCannon,EarthPower,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Bug]Scizor||HeavyDutyBoots|Technician|BulletPunch,Defog,Uturn,CloseCombat|Adamant|248,252,,,8,|||||,,,,,Bug]Rotom-Wash||MirrorHerb|Levitate|ThunderWave,PainSplit,HydroPump,VoltSwitch|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Galvantula||FocusSash|CompoundEyes|StickyWeb,VoltSwitch,BugBuzz,Thunder|Timid|,,,252,4,252||,0,,,,|||,,,,,Bug]Tera Captain|Kilowattrel|SitrusBerry|WindPower|Hurricane,Uturn,Substitute,Thunderbolt|Timid|,,,252,4,252|||||,,,,,Ghost]Azumarill||Leftovers|SapSipper|Whirlpool,PerishSong,ChillingWater,Encore|Bold|248,,252,,8,||,0,,,,|||,,,,,Water","Necrozma||WeaknessPolicy|PrismArmor|DragonDance,PhotonGeyser,HeatWave,EarthPower|Modest|104,,,252,,152|||||,,,,,Psychic]Infernape||PasshoBerry|Blaze|GrassKnot,GunkShot,FlameCharge,CloseCombat|Naive|168,252,,,,88|||||,,,,,Fire]Tera Captain|Torterra|HeavyDutyBoots|ShellArmor|ShellSmash,Earthquake,TeraBlast,SeedBomb|Jolly|148,252,,,,108|||||,,,,,Fire]Tera Captain|Toxtricity|AssaultVest|PunkRock|Boomburst,VoltSwitch,FirePunch,Trailblaze|Timid|176,,,156,,176|||||,,,,,Normal]Noivern||HeavyDutyBoots|Infiltrator|Defog,Flamethrower,Hurricane,DragonPulse|Timid|252,,60,,60,136||,0,,,,|||,,,,,Flying]Palafin-Hero||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,FlipTurn,ThroatChop|Adamant|,252,,,4,252|||||,,,,,Water"], + ["Tornadus-Therian||WacanBerry|Regenerator|NastyPlot,BleakwindStorm,IcyWind,FocusBlast|Timid|248,,32,66,,162||,0,,,,|||,,,,,Flying]Garchomp||ChoiceScarf|RoughSkin|Outrage,Earthquake,ScaleShot,StoneEdge|Naive|16,252,,,,240|||||,,,,,Dragon]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Encore,IvyCudgel,HornLeech,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Water]Samurott-Hisui||ChopleBerry|Sharpness|CeaselessEdge,SuckerPunch,SacredSword,AerialAce|Adamant|,252,200,,,56|||||,,,,,Water]Tera Captain|Bellibolt|Leftovers|Electromorphosis|Toxic,SlackOff,VoltSwitch,LightScreen|Calm|252,,4,,252,||,0,,,,|||,,,,,Water]Tinkaton||RockyHelmet|MoldBreaker|StealthRock,Encore,GigatonHammer,BrickBreak|||||||,,,,,Fairy","Palafin-Hero||ChoiceSpecs|ZerotoHero|Surf,IceBeam,Boomburst,JetPunch|Naive|,48,,252,,208|||||,,,,,Water]Gouging Fire||LoadedDice|Protosynthesis|HeatCrash,ScaleShot,Substitute,DragonDance|Jolly|,252,,,48,208|||||,,,,,Fire]Decidueye-Hisui||RoseliBerry|Overgrow|LeafStorm,Roost,Defog,Uturn|Modest|176,,252,80,,|||||,,,,,Grass]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,StompingTantrum,Spikes,Counter|Hasty|,252,,,4,252||,,20,,,|||,,,,,Rock]Kilowattrel||LifeOrb|VoltAbsorb|VoltSwitch,Hurricane,Endure,Endeavor|Timid|,,,252,32,224||,0,,,,|||,,,,,Electric]Kingambit||ChopleBerry|SupremeOverlord|SwordsDance,SuckerPunch,IronHead,LowKick|Adamant|248,248,,,,12|||||,,,,,Dark"], + ["Great Tusk||LumBerry|Protosynthesis|HeadlongRush,RapidSpin,CloseCombat,TemperFlare|Adamant|,252,164,,,92|||||,,,,,Fighting]Manaphy||CovertCloak|Hydration|Surf,EnergyBall,TailGlow,SkillSwap|Modest|252,,148,108,,||,0,,,,|||,,,,,Water]Rotom-Heat||MirrorHerb|Levitate|Overheat,PainSplit,VoltSwitch,NastyPlot|Calm|252,,,,156,100||,0,,,,|||,,,,,Electric]Rillaboom||MiracleSeed|GrassySurge|WoodHammer,LeechSeed,Taunt,Substitute|Impish|148,,252,,,108|||||,,,,,Grass]Klefki||HeatRock|Prankster|SunnyDay,Spikes,LightScreen,Reflect|Calm|252,,4,,252,||,0,,,,|||,,,,,Steel]Roaring Moon||ChoiceScarf|Protosynthesis|KnockOff,StoneEdge,Uturn,Outrage|Adamant|212,252,,,,44|||||,,,,,Dragon","Tera Captain|TyphlosionHisui|Leftovers|Frisk|ShadowBall,Flamethrower,CalmMind,FlameCharge|Bold|252,,248,8,,|||||,,,,,Electric]Tera Captain|Latias|Leftovers|Levitate|CalmMind,Thunderbolt,Psyshock,Recover|Timid|252,,,,120,136||,0,,,,|||,,,,,Steel]Meowscarada||FocusSash|Protean|Spikes,Uturn,KnockOff,Acrobatics|Jolly|,252,,,4,252|||||,,,,,Grass]Great Tusk||HeavyDutyBoots|Protosynthesis|RapidSpin,CloseCombat,HeadlongRush,TemperFlare|Impish|160,92,16,,,240|||||,,,,,Ground]Weezing||Leftovers|NeutralizingGas|GunkShot,WillOWisp,PainSplit,Flamethrower|Relaxed|252,4,252,,,|||||,,,,,Poison]Rotom-Wash||ChestoBerry|Levitate|HydroPump,VoltSwitch,PainSplit,ThunderWave|Calm|252,,,4,252,||,0,,,,|||,,,,,Electric"], + ["Slowking-Galar||CovertCloak|Regenerator|Psychic,SludgeBomb,IceBeam,ChillyReception|Bold|252,,180,76,,||,0,,,,|||,,,,,Flying]Tera Captain|Sylveon|Leftovers|Pixilate|HyperVoice,TeraBlast,CalmMind,Psychic|Bold|252,,120,76,,60||,0,,,,|||,,,,,Bug]Tera Captain|Heatran|ChoiceScarf|FlashFire|MagmaStorm,FireBlast,FlashCannon,DarkPulse|Modest|20,,,252,,236||,0,,,,|||,,,,,Fire]Swampert||Leftovers|Torrent|StealthRock,SmackDown,Earthquake,FlipTurn|Impish|252,84,172,,,|||||,,,,,Ghost]Urshifu||ChopleBerry|UnseenFist|IronHead,CloseCombat,WickedBlow,SwordsDance|Adamant|88,252,,,,168|||||,,,,,Poison]Tsareena||KebiaBerry|QueenlyMajesty|ZenHeadbutt,RapidSpin,PowerWhip,KnockOff|Jolly|68,252,,,,188|||||,,,,,Grass","Sandslash-Alola||LoadedDice|SlushRush|SwordsDance,IcicleSpear,Earthquake,IceShard|Adamant|40,252,,,,216|||||,,,,,Ice]Sneasler||ChoiceBand|PoisonTouch|CloseCombat,ThroatChop,Uturn,DireClaw|Jolly|64,252,8,,,184|||||,,,,,Fighting]Tera Captain|Latias|SoulDew|Levitate|CalmMind,Psyshock,DracoMeteor,Recover|Modest|24,,,252,,228||,0,,,,|||,,,,,Poison]Tera Captain|Lokix|FocusSash|TintedLens|KnockOff,LowKick,Trailblaze,SuckerPunch|Jolly|,252,64,,,192|||||,,,,,Water]Ninetales-Alola||IcyRock|SnowWarning|AuroraVeil,Moonblast,Hypnosis,Encore|Timid|248,,,44,56,160||,0,,,,|||,,,,,Ice]Landorus||LifeOrb|SheerForce|EarthPower,SludgeWave,WeatherBall,StealthRock|Timid|32,,,252,,224||,0,,,,|||,,,,,Ground"], + ["Great Tusk||YacheBerry|Protosynthesis|BulkUp,BodyPress,RapidSpin,KnockOff|Jolly|252,4,16,,,236|||||,,,,,Ground]Torkoal||HeatRock|Drought|WillOWisp,StealthRock,Overheat,RapidSpin|Bold|248,,252,8,,|||||,,,,,Fire]Mandibuzz||HeavyDutyBoots|BigPecks|Uturn,KnockOff,Roost,FoulPlay|Careful|244,,12,,252,||,,,,,0|||,,,,,Dark]Gouging Fire||Leftovers|Protosynthesis|HeatCrash,DragonDance,BreakingSwipe,MorningSun|Adamant|240,48,,,156,64|||||,,,,,Fire]Tera Captain|Mew|Leftovers|Synchronize|Hex,WillOWisp,Psyshock,Spikes|Calm|240,,48,,124,96||,0,,,,|||,,,,,Ghost]Primarina||AssaultVest|Torrent|Moonblast,PsychicNoise,FlipTurn,AlluringVoice|Modest|252,,,172,,84|||||,,,,,Water","Tera Captain|Mamoswine|ChoiceScarf|ThickFat|Earthquake,IcicleCrash,IceShard,RockSlide|Jolly|,252,,,4,252|||||,,,,,Ice]Minior||WhiteHerb|ShieldsDown|ShellSmash,RockSlide,Acrobatics,IronHead|Adamant|,252,,,4,252|||||,,,,,Rock]Tera Captain|Clefable|Leftovers|MagicGuard|Protect,RainDance,Wish,Moonblast|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Skarmory||RockyHelmet|Sturdy|IronDefense,BodyPress,Spikes,Roost|Calm|252,,,,232,24||,0,,,,|||,,,,,Steel]Weezing-Galar||HeavyDutyBoots|NeutralizingGas|Defog,StrangeSteam,WillOWisp,ToxicSpikes|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|PlayRough,IvyCudgel,PowerWhip,KnockOff|Jolly|,252,,,4,252|||||,,,,,Fire"], + ["Baxcalibur||LoadedDice|ThermalExchange|SwordsDance,ScaleShot,IcicleSpear,Earthquake|Jolly|,252,,,4,252|||||,,,,,Dragon]Tera Captain|Serperior|Leftovers|Contrary|Glare,Substitute,LeafStorm,TeraBlast|Timid|,,,252,4,252||,0,,,,|S||,,,,,Stellar]Landorus-Therian||RockyHelmet|Intimidate|StealthRock,Earthquake,Uturn,Taunt|Impish|252,,252,,,4|||||,,,,,Water]Walking Wake||ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,DragonPulse|Timid|12,,,244,,252|||||,,,,,Water]Moltres||HeavyDutyBoots|FlameBody|Flamethrower,WillOWisp,Uturn,Roost|Calm|248,,,,248,12|||||,,,,,Fairy]Glimmora||PowerHerb|ToxicDebris|MeteorBeam,Spikes,MortalSpin,EarthPower|Timid|,4,,252,,252|||||,,,,,Rock","Darkrai||ChoiceScarf|BadDreams|DarkPulse,FoulPlay,IceBeam,SludgeBomb|Timid|96,,,252,,160||,0,,,,|||,,,,,Dark]Scizor||ProtectivePads|Technician|BulletPunch,SwordsDance,Uturn,Defog|Impish|248,8,252,,,|||||,,,,,Bug]Tera Captain|UrshifuRapidStrike|PunchingGlove|UnseenFist|SurgingStrikes,DrainPunch,SwordsDance,Trailblaze|Jolly|48,252,,,,208|||||,,,,,Steel]Slowking-Galar||AssaultVest|Regenerator|SludgeBomb,IceBeam,FutureSight,Psychic|Calm|248,,60,124,76,||,0,,,,|||,,,,,Poison]Tera Captain|Diancie|CustapBerry|ClearBody|PowerGem,EarthPower,Endure,Moonblast|Modest|248,,,216,,44||,0,,,,|||,,,,,Rock]Tauros||LifeOrb|SheerForce|BodySlam,IceBeam,RockSlide,Earthquake|Naive|,252,,8,,248|||||,,,,,Normal"], + ["Ninetales||HeatRock|Drought|Flamethrower,ScorchingSands,WillOWisp,HealingWish|Calm|248,,36,,224,||,0,,,,|||,,,,,Fire]Venusaur||BlackSludge|Chlorophyll|Growth,EarthPower,WeatherBall,SludgeBomb|Modest|48,,4,252,,204||,0,,,,|||,,,,,Grass]Tera Captain|WalkingWake|DragonFang|Protosynthesis|HydroSteam,DracoMeteor,FlipTurn,Flamethrower|Timid|,,,244,12,252|||||,,,,,Dragon]Scream Tail||Leftovers|Protosynthesis|CalmMind,Wish,Flamethrower,DazzlingGleam|Calm|248,,,,108,152||,0,,,,|||,,,,,Fairy]Roaring Moon||ExpertBelt|Protosynthesis|Earthquake,IronHead,FireFang,DragonDance|Jolly|,252,,,48,208|||||,,,,,Dragon]Tera Captain|Orthworm|ChopleBerry|EarthEater|ShedTail,StealthRock,Spikes,BodyPress|Bold|248,,8,,252,||,0,,,,|||,,,,,Steel","Quaquaval||WeaknessPolicy|Moxie|AquaStep,CloseCombat,SwordsDance,Substitute|Adamant|,252,,,4,252|||||,,,,,Water]Tera Captain|Serperior|AssaultVest|Contrary|LeafStorm,Trailblaze,MirrorCoat,TeraBlast|Timid|4,,,252,,252|||S||,,,,,Fairy]Corviknight||RockyHelmet|Pressure|BodyPress,Roost,Uturn,Defog|Impish|248,,252,,8,|||||,,,,,Flying]Chi-Yu||ChoiceScarf|BeadsofRuin|Flamethrower,DarkPulse,WillOWisp,Overheat|Modest|,,4,252,,252||,0,,,,|||,,,,,Dark]Spidops||SitrusBerry|Stakeout|FirstImpression,StickyWeb,Uturn,SuckerPunch|Adamant|252,252,,,4,|||||,,,,,Bug]Clodsire||BlackSludge|Unaware|Curse,GunkShot,BodyPress,Recover|Careful|248,,252,,8,|||||,,,,,Poison"], + ["Tera Captain|Zapdos|HeavyDutyBoots|Static|Thunderbolt,Roost,Uturn,TeraBlast|Timid|48,,,252,,208|||||,,,,,Dragon]Samurott-Hisui||MirrorHerb|Sharpness|CeaselessEdge,RazorShell,SuckerPunch,Encore|Jolly|80,252,,,,176|||||,,,,,Water]Tera Captain|Sinistcha|Leftovers|Heatproof|MatchaGotcha,StrengthSap,CalmMind,ShadowBall|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Iron Treads||AssaultVest|QuarkDrive|RapidSpin,Earthquake,IceSpinner,KnockOff|Jolly|,252,,,48,208|||||,,,,,Ground]Deoxys-Defense||Leftovers|Pressure|Recover,Spikes,Teleport,PsychicNoise|Bold|252,,252,,4,||,0,,,,|||,,,,,Psychic]Iron Valiant||ChoiceSpecs|QuarkDrive|Trick,Thunderbolt,Moonblast,AuraSphere|Modest|,,,252,12,244||,0,,,,|||,,,,,Fairy","Palafin-Hero||PunchingGlove|ZerotoHero|BulkUp,DrainPunch,IcePunch,JetPunch|Adamant|248,72,56,,72,60|||||,,,,,Water]Tornadus-Therian||WacanBerry|Regenerator|NastyPlot,Hurricane,HeatWave,IcyWind|Timid|152,,,148,64,144||,0,,,,|||,,,,,Flying]Tera Captain|RagingBolt|MentalHerb|Protosynthesis|CalmMind,DragonPulse,Thunderclap,TeraBlast|Modest|56,,92,164,72,124||,20,,,,|||,,,,,Ghost]Terapagos||HeavyDutyBoots|TeraShift|CalmMind,TeraStarstorm,IceBeam,RapidSpin|Modest|144,,,212,,152|||||,,,,,Stellar]Tera Captain|Torterra|LoadedDice|Overgrow|ShellSmash,BulletSeed,RockBlast,Crunch|Adamant|216,112,4,,16,160|||||,,,,,Dark]Qwilfish-Hisui||Eviolite|Intimidate|Spikes,BarbBarrage,ToxicSpikes,Surf|Relaxed|248,80,168,12,,|||||,,,,,Dark"], + ["Tera Captain|Jolteon|HeavyDutyBoots|VoltAbsorb|Thunderbolt,TeraBlast,AlluringVoice,VoltSwitch|Modest|68,,,252,,188||,0,,,,|||,,,,,Fire]Slowking-Galar||HeavyDutyBoots|Regenerator|Psychic,SludgeBomb,SlackOff,ChillyReception|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Slither Wing||AssaultVest|Protosynthesis|Uturn,CloseCombat,FlareBlitz,Earthquake|Adamant|252,128,,,,128|||||,,,,,Bug]Hydreigon||EarthPlate|Levitate|DracoMeteor,EarthPower,ThunderWave,StealthRock|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Baxcalibur||BabiriBerry|IceBody|GlaiveRush,IcicleCrash,Earthquake,DragonDance|Adamant|56,252,,,,200|||||,,,,,Dragon]Forretress||RockyHelmet|Sturdy|GyroBall,Spikes,RapidSpin,VoltSwitch|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Bug","Scizor||ChoiceBand|Technician|BulletPunch,Uturn,KnockOff,CloseCombat|Adamant|248,252,,,8,|||||,,,,,Bug]Tera Captain|Hydreigon|ChoiceSpecs|Levitate|DarkPulse,DracoMeteor,Flamethrower,FlashCannon|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Iron Hands||AssaultVest|QuarkDrive|CloseCombat,VoltSwitch,Earthquake,HeavySlam|Adamant|248,252,,,8,|||||,,,,,Fighting]Tera Captain|Okidogi|AssaultVest|ToxicChain|FirePunch,HighHorsepower,DrainPunch,IronHead|Adamant|252,252,,,4,|||||,,,,,Ground]Fezandipiti||MentalHerb|ToxicChain|CalmMind,Moonblast,Roost,ShadowBall|Timid|252,,,4,,252||,0,,,,|||,,,,,Poison]Mandibuzz||HeavyDutyBoots|Overcoat|Defog,Uturn,BraveBird,Roost|Jolly|248,8,,,,252|||||,,,,,Dark"], + ["Ursaluna-Bloodmoon||AssaultVest|MindsEye|EarthPower,BloodMoon,Counter,HyperVoice|Modest|124,,,252,,132||,0,,,,|||,,,,,Ground]Enamorus-Therian||HeavyDutyBoots|Overcoat|DrainingKiss,IronDefense,CalmMind,EarthPower|Modest|252,,,60,,196||,0,,,,|||,,,,,Fairy]Dewgong||HeavyDutyBoots|ThickFat|IceBeam,KnockOff,FlipTurn,Encore|Relaxed|248,8,252,,,|||||,,,,,Water]Pecharunt||BlackSludge|PoisonPuppeteer|NastyPlot,MalignantChain,Recover,Hex|Modest|252,,,252,4,||,0,,,,|||,,,,,Poison]Tera Captain|Armarouge|WeaknessPolicy|WeakArmor|Endure,ArmorCannon,Psyshock,DestinyBond|Modest|,,,252,4,252||,0,,,,|||,,,,,Psychic]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|HornLeech,SwordsDance,IvyCudgel,PlayRough|Jolly|64,252,,,,192|||||,,,,,Rock","Iron Valiant||LifeOrb|QuarkDrive|Moonblast,VacuumWave,ShadowBall,Encore|Modest|,,,252,28,228||,0,,,,|||,,,,,Fairy]Garchomp||RockyHelmet|RoughSkin|SwordsDance,Earthquake,IronHead,Spikes|Jolly|112,,172,,,224|||||,,,,,Dragon]Metagross||PowerHerb|ClearBody|MeteorBeam,GrassKnot,ShadowBall,FlashCannon|Modest|64,,,252,,192||,0,,,,|||,,,,,Steel]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,BleakwindStorm,HeatWave,GrassKnot|Timid|16,,,252,,240||,0,,,,|||,,,,,Flying]Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|PowerWhip,TeraBlast,Uturn,Synthesis|Careful|252,,,,180,76|||||,,,,,Fairy]Morgrem||Eviolite|Prankster|Reflect,LightScreen,PartingShot,DazzlingGleam|Bold|252,,252,4,,||,0,,,,|||,,,,,Dark"], + ["Tera Captain|Feraligatr|ChestoBerry|SheerForce|DragonDance,Liquidation,Crunch,Rest|Adamant|232,108,,,,168|||||,,,,,Dark]Meowscarada||ProtectivePads|Protean|KnockOff,TripleAxel,Uturn,LowKick|Jolly|104,252,,,,152|||||,,,,,Grass]Latios||ChoiceScarf|Levitate|LusterPurge,DracoMeteor,Trick,AuraSphere|Modest|140,,,252,,116||,0,,,,|||,,,,,Dragon]Great Tusk||Leftovers|Protosynthesis|Substitute,BulkUp,HeadlongRush,StoneEdge|Jolly|204,128,,,,176|||||,,,,,Ground]Heatran||CustapBerry|FlameBody|EarthPower,MagmaStorm,Overheat,Endure|Modest|248,,,112,,148||,0,,,,|||,,,,,Fire]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|Discharge,Uturn,Taunt,FocusBlast|Timid|248,,60,,136,64|||||,,,,,Water","Tera Captain|Gliscor|ChoiceScarf|HyperCutter|Earthquake,Uturn,GunkShot,DualWingbeat|Jolly|32,252,,,,224|||||,,,,,Ground]Dachsbun||Leftovers|WellBakedBody|PlayRough,Roar,Wish,Protect|Impish|248,,44,,216,|||||,,,,,Fairy]Weavile||ChoiceBand|Pickpocket|KnockOff,BeatUp,IceShard,TripleAxel|Adamant|,252,4,,,252|||||,,,,,Dark]Tera Captain|Heatran|AssaultVest|FlashFire|TeraBlast,FlashCannon,EarthPower,Flamethrower|Modest|248,,76,176,,8||,0,,,,|||,,,,,Fairy]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|WoodHammer,IvyCudgel,PlayRough,Synthesis|Jolly|8,252,,,,248|||||,,,,,Water]Slowking-Galar||ShucaBerry|Regenerator|ChillyReception,ToxicSpikes,SlackOff,Psychic|Calm|248,,156,,104,||,0,,,,26|||,,,,,Poison"], + ["Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|BulkUp,Earthquake,TeraBlast,Taunt|Jolly|,4,,,252,252|||||,,,,,Dragon]Iron Bundle||ChoiceSpecs|QuarkDrive|HydroPump,FlipTurn,IceBeam,FreezeDry|Modest|,,,252,172,84|||||,,,,,Ice]Enamorus||ChoiceSpecs|CuteCharm|Moonblast,HealingWish,DrainingKiss,EarthPower|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Kingambit||BlackGlasses|SupremeOverlord|LowKick,SwordsDance,SuckerPunch,KowtowCleave|Adamant|248,252,8,,,|||||,,,,,Dark]Clodsire||BlackSludge|WaterAbsorb|Toxic,Recover,Earthquake,Curse|Careful|248,,252,,,|||||,,,,,Poison]Rotom-Heat||LightClay|Levitate|WillOWisp,VoltSwitch,LightScreen,Reflect|Timid|248,,,,12,248||,0,,,,|||,,,,,Electric","Tera Captain|Annihilape|MarangaBerry|Defiant|Taunt,BulkUp,RageFist,DrainPunch|Careful|252,,,,252,|||S||,,,,,Fairy]Electrode-Hisui||KeeBerry|Soundproof|Substitute,LeechSeed,ChargeBeam,EnergyBall|Bold|,,204,160,,144||,0,,,,|S||,,,,,Electric]Archaludon||AirBalloon|Stamina|BodyPress,FlashCannon,LightScreen,IronDefense|Modest|76,,,180,252,||,0,,,,|||,,,,,Steel]Politoed||SalacBerry|Drizzle|BellyDrum,Substitute,Liquidation,Earthquake|Adamant|12,108,,,176,212|||||,,,,,Water]Zapdos||Leftovers|Pressure|Substitute,Charge,Hurricane,Thunderbolt|Timid|236,,,,128,144||,0,,,,|||,,,,,Electric]Palafin||YacheBerry|ZerotoHero|JetPunch,BulkUp,DrainPunch,Taunt|Adamant|,252,104,,,152|||||,,,,,Water"], + ["Great Tusk||EjectPack|Protosynthesis|CloseCombat,Earthquake,Facade,RapidSpin|Jolly|56,252,16,,4,180|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Synthesis,Encore|Jolly|248,16,20,,48,176|||||,,,,,Water]Weavile||FocusSash|Pickpocket|TripleAxel,KnockOff,Counter,UpperHand|Hasty|,252,,,8,248||,,0,,,|||,,,,,Dark]Alomomola||RockyHelmet|Regenerator|FlipTurn,ChillingWater,Wish,Protect|Relaxed|248,,248,,12,|||||,,,,,Water]Iron Crown||BoosterEnergy|QuarkDrive|Psychic,FocusBlast,CalmMind,Substitute|Timid|192,,16,108,,192||,20,,,,|||,,,,,Steel]Tera Captain|Diancie|Leftovers|ClearBody|BodyPress,DrainingKiss,IronDefense,CalmMind|Calm|252,,16,4,96,140||,0,,,,|||,,,,,Poison","Palafin||RindoBerry|ZerotoHero|BulkUp,Acrobatics,JetPunch,DrainPunch|Adamant|240,244,24,,,|||||,,,,,Water]Tera Captain|PorygonZ|MiracleSeed|Adaptability|TeraBlast,Agility,Thunderbolt,NastyPlot|Modest|24,,,252,,232||,0,,,,|||,,,,,Grass]Donphan||HeavyDutyBoots|Sturdy|StoneEdge,Earthquake,GunkShot,RapidSpin|Adamant|,196,,,68,244|||||,,,,,Ground]Ribombee||KeeBerry|ShieldDust|StickyWeb,Uturn,StunSpore,Moonblast|Timid|96,,,228,,184|||||,,,,,Bug]Tera Captain|RagingBolt|ChoiceScarf|Protosynthesis|TeraBlast,Thunderclap,Thunderbolt,DracoMeteor|Modest|32,,,252,,224||,20,,,,|||,,,,,Water]Cinderace||ChoiceBand|Libero|Uturn,PyroBall,ZenHeadbutt,SuckerPunch|Adamant|,252,52,,,204|||||,,,,,Fire"], + ["Okidogi||AssaultVest|ToxicChain|KnockOff,DrainPunch,ThunderPunch,PoisonJab|Adamant|252,32,,,224,|||||,,,,,Poison]Meowscarada||ProtectivePads|Overgrow|FlowerTrick,KnockOff,ThunderPunch,Uturn|Jolly|104,252,,,,152|||||,,,,,Grass]Tera Captain|Latias|ChoiceSpecs|Levitate|DracoMeteor,ShadowBall,Surf,Trick|Modest|64,,,252,4,188||,0,,,,|||,,,,,Steel]Sandy Shocks||BoosterEnergy|Protosynthesis|Thunderbolt,EarthPower,StealthRock,VoltSwitch|Timid|48,,,208,,252||,0,,,,|||,,,,,Electric]Tentacruel||WiseGlasses|LiquidOoze|Surf,GigaDrain,SludgeWave,RapidSpin|Modest|48,,,252,,208|||||,,,,,Water]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,Reflect,Recover|Modest|248,,28,72,,160||,0,,,,|||,,,,,Steel","Moltres||RockyHelmet|FlameBody|Flamethrower,Roar,Roost,Uturn|Bold|248,,100,,160,|||||,,,,,Fire]Iron Bundle||HeavyDutyBoots|QuarkDrive|IceBeam,FreezeDry,HydroPump,Encore|Timid|96,,,252,,160||,0,,,,|||,,,,,Ice]Tera Captain|Gyarados|WacanBerry|Moxie|TeraBlast,Earthquake,Waterfall,DragonDance|Adamant|24,252,,,,232|||||,,,,,Flying]Tera Captain|Excadrill|AirBalloon|MoldBreaker|Earthquake,StealthRock,RapidSpin,IronHead|Adamant|80,252,,,,176|||||,,,,,Ground]Latios||ColburBerry|Levitate|Agility,CalmMind,LusterPurge,AuraSphere|Timid|180,,,76,,252||,0,,,,|||,,,,,Dragon]Hatterene||AssaultVest|MagicBounce|DrainingKiss,ShadowBall,Nuzzle,Psyshock|Modest|252,,116,140,,|||||,,,,,Psychic"], + ["Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|Uturn,CloseCombat,PoisonJab,SurgingStrikes|Adamant|124,252,,,,132|||||,,,,,Poison]Tera Captain|Armarouge|ChoiceSpecs|FlashFire|ArmorCannon,Psyshock,Trick,EnergyBall|Timid|40,,,252,,216||,0,,,,|||,,,,,Ground]Weavile||HeavyDutyBoots|Pickpocket|UpperHand,TripleAxel,KnockOff,IceShard|Jolly|96,252,,,24,136|||||,,,,,Dark]Rillaboom||AssaultVest|GrassySurge|Uturn,GrassyGlide,HighHorsepower,KnockOff|Adamant|176,172,,,152,8|||S||,,,,,Grass]Slowking-Galar||AssaultVest|Regenerator|GrassKnot,PsychicNoise,SludgeBomb,FutureSight|Calm|252,,20,,236,||,0,,,,|||,,,,,Poison]Forretress||RockyHelmet|Sturdy|StealthRock,BodyPress,VoltSwitch,RapidSpin|Impish|252,,252,,4,|||S||,,,,,Bug","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Trailblaze,IvyCudgel,Uturn,PowerWhip|Jolly|88,252,16,,,152|||||,,,,,Water]Scizor||RockyHelmet|Technician|BulletPunch,Uturn,KnockOff,Defog|Impish|160,96,252,,,|||||,,,,,Bug]Tera Captain|Hoopa|SitrusBerry|Magician|Psychic,ShadowBall,FocusBlast,LightScreen|Bold|240,,192,76,,||,0,,,,|||,,,,,Dragon]Ursaluna-Bloodmoon||AssaultVest|MindsEye|BloodMoon,EarthPower,VacuumWave,Moonblast|Calm|248,,,8,252,||,0,,,,|||,,,,,Ground]Enamorus||ChoiceSpecs|Contrary|Moonblast,EarthPower,MysticalFire,HealingWish|Timid|72,,,252,,184||,0,,,,|||,,,,,Fairy]Overqwil||RockyHelmet|Intimidate|PainSplit,BarbBarrage,Crunch,Haze|Impish|248,16,244,,,|||||,,,,,Dark"], + ["Dewgong||AssaultVest|ThickFat|FlipTurn,KnockOff,IceBeam,AlluringVoice|Sassy|252,,,4,252,||,,,,,0|S||,,,,,Water]Palafin-Hero||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,WaveCrash,CloseCombat|Jolly|,252,,,16,240|||S||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Tailwind,Uturn,KnockOff,BleakwindStorm|Timid|248,,16,,172,72|||S||,,,,,Flying]Iron Treads||ShedShell|QuarkDrive|StealthRock,RapidSpin,IceSpinner,HighHorsepower|Jolly|64,252,,,,192|||S||,,,,,Ground]Tera Captain|Rillaboom|Leftovers|GrassySurge|LeechSeed,Uturn,KnockOff,GrassyGlide|Impish|252,4,252,,,|||S||,,,,,Steel]Tera Captain|Armarouge|ChoiceScarf|WeakArmor|Trick,DarkPulse,AuraSphere,ArmorCannon|Timid|,,,252,4,252||,0,,,,|S||,,,,,Dark","Magnezone||ChoiceScarf|Sturdy|VoltSwitch,Thunderbolt,FlashCannon,BodyPress|Modest|,,44,252,,212||,0,,,,|||,,,,,Stellar]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,Encore,FreezeDry,FlipTurn|Timid|120,,,252,,136|||||,,,,,Stellar]Tera Captain|Hydreigon|Leftovers|Levitate|TeraBlast,DarkPulse,NastyPlot,ThunderWave|Timid|,,92,252,,164||,0,,,,|||,,,,,Electric]Slowking-Galar||ColburBerry|Regenerator|SludgeBomb,ThunderWave,ChillyReception,FutureSight|Bold|252,,252,,4,||,0,,,,|||,,,,,Stellar]Gliscor||ToxicOrb|PoisonHeal|HighHorsepower,BrickBreak,Spikes,Uturn|Impish|252,,252,,,4|||||,,,,,Stellar]Tera Captain|Cetitan|SitrusBerry|SlushRush|IceSpinner,HighHorsepower,IceShard,BellyDrum|Adamant|100,232,152,,,24|||||,,,,,Dragon"], + ["Magnezone||Magnet|MagnetPull|Thunderbolt,FlashCannon,VoltSwitch,ThunderWave|Modest|248,,,252,,8||,0,,,,|||,,,,,Electric]Primarina||ChoiceSpecs|Torrent|Moonblast,FlipTurn,Psychic,IceBeam|Modest|52,,,252,,204|||||,,,,,Water]Hitmontop||ProtectivePads|Intimidate|TripleAxel,RapidSpin,Earthquake,MachPunch|Impish|248,,252,,8,|||||,,,,,Fighting]Gouging Fire||LoadedDice|Protosynthesis|IronHead,Earthquake,ScaleShot,DragonDance|Adamant|88,252,,,,168|||||,,,,,Fire]Darkrai||ChoiceScarf|BadDreams|DarkPulse,IceBeam,Trick,WillOWisp|Timid|16,,,252,,240||,0,,,,|||,,,,,Dark]Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,TeraBlast,StealthRock,Taunt|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice","Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|BulkUp,Earthquake,IceSpinner,RapidSpin|Jolly|248,,4,,4,252|||||,,,,,Fairy]Meowscarada||FocusSash|Protean|FlowerTrick,LowKick,KnockOff,Spikes|Jolly|,252,,,68,188|||||,,,,,Grass]Dragonite||HeavyDutyBoots|Multiscale|WingAttack,Earthquake,ExtremeSpeed,DragonClaw|Adamant|76,252,,,,180|||||,,,,,Dragon]Empoleon||EjectButton|Competitive|FlipTurn,VacuumWave,Roar,Yawn|Sassy|252,,208,,48,||,,,,,0|||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Agility,Thunderbolt,HeatWave,Hurricane|Modest|,,48,252,,208||,0,,,,|||,,,,,Electric]Carbink||CustapBerry|Sturdy|Endure,PowerGem,MistyExplosion,StealthRock|Modest|252,,,252,,4||,0,,,,0|||,,,,,Rock"], + ["Ribombee||ChoiceScarf|ShieldDust|Moonblast,EnergyBall,StickyWeb,Uturn|Timid|,,,252,16,240|||||,,,,,Bug]Cyclizar||HeavyDutyBoots|Regenerator|ShedTail,RapidSpin,Overheat,Uturn|Timid|252,,,,88,168|||||,,,,,Dragon]Terapagos||HeavyDutyBoots|TeraShift|RapidSpin,CalmMind,TeraStarstorm,Flamethrower|Modest|,,,252,144,112|||||,,,,,Stellar]Tera Captain|Flygon|ExpertBelt|Levitate|StealthRock,Earthquake,FirePunch,TeraBlast|Adamant|4,252,252,,,|||||,,,,,Steel]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|CalmMind,DragonPulse,Thunderbolt,DracoMeteor|Modest|252,,4,252,,||,20,,,,|||,,,,,Electric]Slowking||ColburBerry|Regenerator|Psyshock,ChillyReception,FocusBlast,IceBeam|Bold|252,,96,160,,||,0,,,,|||,,,,,Water","Tera Captain|Latias|ChoiceSpecs|Levitate|HealingWish,Psyshock,DragonPulse,DracoMeteor|Timid|,,,252,4,252||,0,,,,|S||,,,,,Dragon]Thwackey||ChoiceBand|GrassySurge|GrassyGlide,KnockOff,Uturn,WoodHammer|Adamant|232,252,,,4,20|||S||,,,,,Grass]Tera Captain|Bellibolt|Leftovers|Electromorphosis|Discharge,VoltSwitch,SlackOff,Toxic|Calm|248,,,28,232,||,0,,,,|||,,,,,Fairy]Heatran||AirBalloon|FlameBody|StealthRock,MagmaStorm,Taunt,DarkPulse|Calm|240,,,20,208,40||,0,,,,|S||,,,,,Fire]Scizor||HeavyDutyBoots|Technician|BulletPunch,KnockOff,Uturn,CloseCombat|Adamant|248,216,36,,,8|||||,,,,,Bug]Greninja||HeavyDutyBoots|Protean|Uturn,Spikes,Liquidation,LowKick|Jolly|80,252,,,4,172|||||,,,,,Water"], + ["Great Tusk||BoosterEnergy|Protosynthesis|HeadlongRush,IceSpinner,KnockOff,BulkUp|Jolly|248,4,4,,,252|||||,,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,IceBeam,CalmMind,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Greninja||ChoiceSpecs|Protean|Uturn,DarkPulse,IceBeam,WaterShuriken|Naive|,16,,252,,240|||||,,,,,Water]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,StealthRock,Encore,LightScreen|Jolly|248,,,,116,144|||||,,,,,Fairy]Muk||BlackSludge|PoisonTouch|PoisonJab,DrainPunch,KnockOff,Toxic|Careful|248,8,,,252,|||||,,,,,Poison]Tera Captain|Frosmoth|HeavyDutyBoots|IceScales|IceBeam,TeraBlast,QuiverDance,Substitute|Timid|,,,252,12,244||,0,,,,|||,,,,,Electric","Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,SpiritBreak,CloseCombat,PsychoCut|Jolly|,252,16,,,240|||||,,,,,Stellar]Tera Captain|Espathra|GrassySeed|SpeedBoost|CalmMind,StoredPower,EnergyBall,TeraBlast|Bold|252,,40,104,,112||,0,,,,|||,,,,,Fire]Sceptile||ChoiceScarf|Unburden|LeafStorm,ShedTail,GigaDrain,Roar|Timid|252,,,80,,176||,0,,,,|||,,,,,Stellar]Gengar||ChoiceScarf|CursedBody|ShadowBall,SludgeWave,EnergyBall,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Stellar]Braviary||AssaultVest|Defiant|Uturn,BraveBird,CloseCombat,GigaImpact|Adamant|,252,4,,252,|||||,,,,,Stellar]Empoleon||ChopleBerry|Torrent|Surf,GrassKnot,VacuumWave,StealthRock|Modest|248,,,252,8,||,0,,,,|||,,,,,Stellar"], + ["Heatran||Leftovers|FlashFire|MagmaStorm,WillOWisp,StealthRock,Taunt|Modest|184,,,252,,68||,0,,,,|||,,,,,Fire]Donphan||Leftovers|Sturdy|Earthquake,IceSpinner,IceShard,RapidSpin|Adamant|252,252,,,4,|||||,,,,,Ground]Palafin||PunchingGlove|ZerotoHero|JetPunch,IcePunch,WaveCrash,BulkUp|Jolly|24,252,,,,232|||||,,,,,Water]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,LeechSeed,KnockOff|Timid|,,88,252,,168|||||,,,,,Grass]Dachsbun||RockyHelmet|WellBakedBody|PlayRough,BodyPress,Wish,Protect|Impish|252,,252,,4,|||||,,,,,Fairy]Latios||ChoiceScarf|Levitate|DracoMeteor,LusterPurge,Thunderbolt,FlipTurn|Timid|64,,,252,,192|||||,,,,,Dragon","Garchomp||EarthPlate|RoughSkin|Earthquake,ScaleShot,SwordsDance,StealthRock|Jolly|16,252,,,,240|||||,,,,,Dragon]Corviknight||Leftovers|MirrorArmor|Uturn,Roost,Defog,BraveBird|Relaxed|248,4,252,,4,||,,,,,0|||,,,,,Flying]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,Uturn,CloseCombat,Facade|Adamant|208,252,,,,48|||||,,,,,Water]Tera Captain|Arcanine|Leftovers|Intimidate|MorningSun,DragonPulse,TeraBlast,WillOWisp|Bold|248,,252,4,,4||,0,,,,|||,,,,,Water]Florges||Leftovers|FlowerVeil|AlluringVoice,Wish,Synthesis,CalmMind|Calm|248,,,8,252,||,0,,,,|||,,,,,Fairy]Overqwil||BlackSludge|Intimidate|Spikes,ToxicSpikes,Crunch,GunkShot|Careful|248,16,,,244,|||||,,,,,Dark"], + ["Enamorus||ChoiceScarf|CuteCharm|Moonblast,EarthPower,HealingWish,AlluringVoice|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Greninja-Bond||LoadedDice|BattleBond|GunkShot,Surf,Uturn,WaterShuriken|Hasty|48,48,,252,,160|||||,,,,,Water]Tera Captain|GreatTusk|ChoiceScarf|Protosynthesis|CloseCombat,HeadlongRush,HeadSmash,TeraBlast|Adamant|,252,,,4,252|||||,,,,,Fighting]Dragalge||ChoiceSpecs|Adaptability|DracoMeteor,DragonPulse,FlipTurn,SludgeWave|Modest|248,,,252,8,|||||,,,,,Poison]Bellibolt||ShucaBerry|Static|VoltSwitch,Toxic,SlackOff,ChillingWater|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Tera Captain|WoChien|ChopleBerry|TabletsofRuin|FoulPlay,GigaDrain,BodyPress,Taunt|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel","Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,CloseCombat,HeavySlam,RapidSpin|Careful|248,,,,180,80|||||,,,,,Ground]Wigglytuff||Leftovers|Competitive|Flamethrower,HyperVoice,Wish,Protect|Calm|248,,8,,252,||,0,,,,|||,,,,,Normal]Tera Captain|Revavroom|LumBerry|Filter|Overheat,GunkShot,ShiftGear,IronHead|Adamant|88,252,,,,168|||||,,,,,Steel]Tera Captain|Eelektross|RockyHelmet|Levitate|Uturn,GigaDrain,SuperFang,VoltSwitch|Bold|248,,252,,8,|||||,,,,,Electric]Chi-Yu||FocusSash|BeadsofRuin|Psychic,FireBlast,NastyPlot,Protect|Modest|104,,,252,,152||,0,,,,|||,,,,,Dark]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SwordsDance,StompingTantrum,Trailblaze,IvyCudgel|Jolly|32,252,,,,224|||||,,,,,Water"], + ["Dudunsparce-Three-Segment||Leftovers|SereneGrace|Glare,Headbutt,Earthquake,Coil|Impish|,44,232,,124,108|||||,,,,,Normal]Brambleghast||RockyHelmet|Infiltrator|RapidSpin,StrengthSap,PowerWhip,Poltergeist|Impish|248,,208,,,52|||||,,,,,Grass]Tera Captain|SandyShocks|Leftovers|Protosynthesis|EarthPower,Thunderbolt,VoltSwitch,StealthRock|Timid|,,12,248,,248||,0,,,,|||,,,,,Grass]Tera Captain|Jirachi|Leftovers|SereneGrace|IronDefense,CalmMind,Wish,StoredPower|Timid|252,,76,,,180||,0,,,,|||,,,,,Dark]Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,SacredSword,AquaJet,HydroPump|Adamant|168,248,,,36,56|||||,,,,,Water]Iron Valiant||LifeOrb|QuarkDrive|CloseCombat,Psychic,KnockOff,DestinyBond|Naive|,244,,16,,248|||||,,,,,Fairy","Tera Captain|Cresselia|Leftovers|Levitate|Psychic,Thunderbolt,Moonlight,CalmMind|Bold|236,,252,,,16||,0,,,,|S||,,,,,Electric]Palafin-Hero||ChoiceBand|ZerotoHero|WaveCrash,FlipTurn,JetPunch,CloseCombat|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Raikou|LifeOrb|InnerFocus|VoltSwitch,Thunderbolt,Scald,AuraSphere|Timid|108,,,252,4,144||,0,,,,|||,,,,,Water]Iron Treads||SoftSand|QuarkDrive|RapidSpin,Earthquake,VoltSwitch,KnockOff|Jolly|32,252,,,4,220|||||,,,,,Ground]Arcanine-Hisui||ChoiceScarf|RockHead|FlareBlitz,HeadSmash,ExtremeSpeed,CloseCombat|Jolly|36,252,,,4,216|||||,,,,,Fire]Weezing-Galar||BlackSludge|Levitate|Toxic,PainSplit,StrangeSteam,Flamethrower|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison"], + ["Tera Captain|Cetitan|HeavyDutyBoots|SlushRush|BellyDrum,IceShard,Earthquake,TeraBlast|Adamant|104,252,,,,152|||||,,,,,Ghost]Tera Captain|SlowkingGalar|IcyRock|Regenerator|ChillyReception,FireBlast,SludgeBomb,FutureSight|Calm|248,,,68,192,||,0,,,,|||,,,,,Fire]Great Tusk||BoosterEnergy|Protosynthesis|RapidSpin,Earthquake,HeadSmash,StealthRock|Adamant|80,252,,,,176|||||,,,,,Ground]Zapdos||ExpertBelt|Static|Agility,Thunderbolt,HeatWave,Roost|Modest|160,,,252,4,92||,0,,,,|S||,,,,,Ice]Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,FirePunch,PartingShot|Impish|248,8,252,,,|||||,,,,,Dark]Palafin-Hero||ChoiceScarf|ZerotoHero|WaveCrash,CloseCombat,Haze,FlipTurn|Adamant|184,252,,,,72|||||,,,,,Water","Gholdengo||ChoiceScarf|GoodasGold|Memento,MakeItRain,Thunderbolt,Trick|Bold|232,,176,16,16,68||,0,,,,|||,,,,,Steel]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,Endeavor,SteelBeam,EarthPower|Modest|40,,4,252,,212||,0,,,,|||,,,,,Ground]Tera Captain|KeldeoResolute|ClearAmulet|Justified|CalmMind,Surf,Substitute,SecretSword|Timid|,,64,252,,192||,0,,,,|||,,,,,Water]Meowscarada||LifeOrb|Protean|KnockOff,TripleAxel,PlayRough,FlowerTrick|Adamant|24,252,44,,,188|||||,,,,,Grass]Enamorus-Therian||ThroatSpray|Overcoat|AlluringVoice,HealingWish,EarthPower,Tailwind|Modest|200,,60,100,,148||,0,,,,|||,,,,,Fairy]Tera Captain|Entei|MirrorHerb|Pressure|SacredFire,ExtremeSpeed,Swagger,BodySlam|Adamant|96,252,8,,,152|||||,,,,,Normal"], + ["Tera Captain|Latias|ColburBerry|Levitate|CalmMind,ShadowBall,Thunderbolt,Recover|Modest|252,,12,128,,116||,0,,,,|||,,,,,Ghost]Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,TripleAxel,Trick|Jolly|,252,,,4,252|||||,,,,,Normal]Tinkaton||RockyHelmet|Pickpocket|Encore,StealthRock,ThunderWave,GigatonHammer|Impish|252,4,252,,,|||||,,,,,Normal]Iron Hands||ShucaBerry|QuarkDrive|SwordsDance,DrainPunch,ThunderPunch,IcePunch|Adamant|,252,4,,252,|||||,,,,,Normal]Donphan||MuscleBand|Sturdy|IceSpinner,Earthquake,KnockOff,IceShard|Adamant|36,252,,,,220|||||,,,,,Normal]Tera Captain|Cryogonal|FocusSash|Levitate|Reflect,LightScreen,RapidSpin,Explosion|Jolly|144,252,,,,112|||||,,,,,Electric","Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,CloseCombat,ZenHeadbutt,RapidSpin|Adamant|104,252,,,152,|||||,,,,,Ground]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|DracoMeteor,Thunderbolt,BodyPress,DragonTail|Modest|252,,136,120,,|||||,,,,,Dark]Sneasler||ChoiceBand|PoisonTouch|CloseCombat,DireClaw,Switcheroo,Uturn|Jolly|80,252,,,,176|||||,,,,,Fighting]Rillaboom||RockyHelmet|GrassySurge|GrassyGlide,HighHorsepower,Endeavor,Uturn|Impish|248,8,252,,,|||||,,,,,Grass]Empoleon||ChopleBerry|Competitive|StealthRock,Surf,FlashCannon,GrassKnot|Modest|252,,4,252,,||,0,,,,|||,,,,,Water]Tera Captain|Mesprit|RockyHelmet|Levitate|IceBeam,KnockOff,Encore,HealingWish|Bold|252,,252,,4,|||||,,,,,Fairy"], + ["Gholdengo||ColburBerry|GoodasGold|MakeItRain,ShadowBall,DazzlingGleam,Recover|Modest|184,,,248,60,16||,0,,,,|||,,,,,Steel]Garchomp||ChoiceScarf|RoughSkin|Outrage,Earthquake,IronHead,DragonClaw|Jolly|,252,,,4,252|||||,,,,,Dragon]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,KnockOff,Uturn,Taunt|Timid|248,,,156,,104|||||,,,,,Flying]Palafin-Hero||AssaultVest|ZerotoHero|JetPunch,DrainPunch,FlipTurn,IcePunch|Adamant|160,68,56,,200,24|||||,,,,,Water]Tera Captain|Gallade|ChoiceBand|Sharpness|SacredSword,PsychoCut,ShadowSneak,KnockOff|Adamant|160,252,,,4,92|||||,,,,,Fighting]Grimer-Alola||Eviolite|PoisonTouch|KnockOff,Toxic,PoisonJab,Protect|Impish|252,4,252,,,|||||,,,,,Poison","Tera Captain|Ogerpon|Leftovers|Defiant|Uturn,KnockOff,IvyCudgel,SwordsDance|Jolly|64,252,,,,192|||||,,,,,Grass]Tera Captain|Diancie|Leftovers|ClearBody|DrainingKiss,DiamondStorm,BodyPress,EarthPower|Relaxed|252,4,252,,,|||S||,,,,,Water]Greninja||ExpertBelt|Protean|IceBeam,DarkPulse,RockSlide,Uturn|Hasty|,4,,252,,252|||||,,,,,Water]Uxie||ColburBerry|Levitate|Uturn,StealthRock,FoulPlay,Encore|Impish|252,,252,,4,|||||,,,,,Psychic]Terapagos||HeavyDutyBoots|TeraShift|RapidSpin,IceBeam,EarthPower,Roar|Modest|252,,,252,4,|||||,,,,,Stellar]Garchomp||LoadedDice|RoughSkin|SwordsDance,ScaleShot,Earthquake,StoneEdge|Jolly|,252,,,4,252|||S||,,,,,Dragon"], + ["Tera Captain|GreninjaBond|ExpertBelt|BattleBond|Surf,IceBeam,LowKick,GrassKnot|Modest|16,,,252,,240|||||,,,,,Grass]Garchomp||LoadedDice|RoughSkin|SwordsDance,ScaleShot,Earthquake,StoneEdge|Jolly|,252,4,,,252|||||,,,,,Dragon]Enamorus||HeavyDutyBoots|Contrary|Substitute,Moonblast,EarthPower,Superpower|Timid|8,,,252,,248|||||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,HornLeech,PlayRough|Jolly|40,252,,,,216|||||,,,,,Fire]Jirachi||Leftovers|SereneGrace|DoomDesire,Psychic,ChargeBeam,WaterPulse|Modest|232,,,252,,24||,0,,,,|||,,,,,Steel]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,Discharge,Trick,VoltSwitch|Modest|80,,,252,,176||,0,,,,|||,,,,,Electric","Palafin||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,DrainPunch,IcePunch|Adamant|,252,,,4,252|||||,,,,,Water]Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,Uturn,TripleAxel|Jolly|,252,,,8,248|||||,,,,,Grass]Garchomp||LoadedDice|RoughSkin|StealthRock,ScaleShot,Earthquake,PoisonJab|Jolly|104,148,4,,,252|||||,,,,,Dragon]Tera Captain|Pecharunt|SitrusBerry|PoisonPuppeteer|Recover,NastyPlot,MalignantChain,ShadowBall|Bold|248,,24,100,124,12||,0,,,,|||,,,,,Fairy]Tera Captain|Heatran|ChoiceScarf|FlameBody|MagmaStorm,Flamethrower,DragonPulse,FlashCannon|Modest|8,,,252,,248||,0,,,,|||,,,,,Dragon]Cryogonal||HeavyDutyBoots|Levitate|Recover,RapidSpin,FreezeDry,Haze|Calm|248,,8,,252,|||||,,,,,Ice"], + ["Tera Captain|Gengar|BlackSludge|CursedBody|Hex,FocusBlast,WillOWisp,Substitute|Timid|,,,252,4,252||,0,,,,|||,,,,,Fighting]Kingambit||ChopleBerry|SupremeOverlord|SuckerPunch,KowtowCleave,IronHead,BrickBreak|Adamant|248,252,,,,8|||||,,,,,Dark]Tera Captain|Espathra|LifeOrb|SpeedBoost|StoredPower,DazzlingGleam,TeraBlast,CalmMind|Timid|40,,,252,,216||,0,,,,|||,,,,,Fighting]Urshifu-Rapid-Strike||ChoiceScarf|UnseenFist|SurgingStrikes,BrickBreak,Uturn,CloseCombat|Serious|56,252,,,,200|||||,,,,,Fighting]Kleavor||FocusSash|Sharpness|StoneAxe,XScissor,DualWingbeat,BrickBreak|Jolly|4,252,,,,252|||||,,,,,Ghost]Entei||ChoiceBand|Pressure|SacredFire,ExtremeSpeed,FlareBlitz,WeatherBall|Jolly|,252,,4,,252|||||,,,,,Fire","Slowbro-Galar||BlackSludge|Regenerator|Psyshock,IceBeam,FocusBlast,SkillSwap|Calm|252,,4,,252,||,0,,,,|S||,,,,,Poison]Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,IcePunch,BulkUp|Careful|252,,4,,252,|||S||,,,,,Dark]Tornadus-Therian||AssaultVest|Regenerator|AirSlash,KnockOff,FocusBlast,Uturn|Timid|80,,4,252,,172|||S||,,,,,Flying]Kingambit||ChopleBerry|Defiant|SuckerPunch,BrickBreak,KowtowCleave,IronHead|Adamant|232,252,,,,24|||||,,,,,Dark]Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,Blizzard,Moonblast,Hypnosis|Timid|32,,,252,,224||,0,,,,|||,,,,,Ice]Quaquaval||AssaultVest|Moxie|AquaStep,IceSpinner,CloseCombat,RapidSpin|Jolly|,252,4,,,252|||||,,,,,Water"], + ["Palafin-Hero||AssaultVest|ZerotoHero|FlipTurn,DrainPunch,WaveCrash,JetPunch|Adamant|248,220,,,40,|||||,,,,,Water]Tera Captain|Gholdengo|ChoiceSpecs|GoodasGold|ShadowBall,DazzlingGleam,Trick,MakeItRain|Modest|232,,,248,,28||,0,,,,|||,,,,,Ghost]Tera Captain|Jolteon|AssaultVest|VoltAbsorb|VoltSwitch,ShadowBall,AlluringVoice,TeraBlast|Timid|,,,252,64,192||,0,,,,|||,,,,,Water]Hydreigon||ChoiceScarf|Levitate|DracoMeteor,DarkPulse,FlashCannon,Uturn|Modest|24,,,252,,232|||||,,,,,Dark]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,HornLeech,Uturn,PlayRough|Adamant|8,252,,,,248|||||,,,,,Fire]Weezing-Galar||PayapaBerry|Levitate|SludgeWave,Defog,StrangeSteam,Flamethrower|Calm|248,,20,,240,||,0,,,,|||,,,,,Poison","Iron Valiant||ChoiceScarf|QuarkDrive|Moonblast,ShadowBall,Psychic,CloseCombat|Naive|,48,,252,,208|||||,,,,,Fairy]Tera Captain|Appletun|AbilityShield|ThickFat|DragonTail,Earthquake,AppleAcid,Recover|Relaxed|252,,192,,64,|||||,,,,,Ghost]Gliscor||ToxicOrb|PoisonHeal|Toxic,Uturn,Earthquake,Protect|Careful|252,,,,216,40|||||,,,,,Ground]Slowking-Galar||KasibBerry|Regenerator|Flamethrower,IceBeam,SludgeBomb,ChillyReception|Calm|252,,204,,52,||,0,,,,|||,,,,,Poison]Forretress||SitrusBerry|Sturdy|StealthRock,GigaDrain,FlashCannon,Earthquake|Sassy|252,,56,,200,|||S||,,,,,Bug]Tera Captain|GreninjaBond|LifeOrb|BattleBond|DarkPulse,IceBeam,GrassKnot,Surf|Timid|,,96,252,,160|||||,,,,,Water"], + ["Enamorus||HeavyDutyBoots|CuteCharm|Moonblast,EarthPower,SludgeBomb,Imprison|Timid|,,,252,80,176||,0,,,,|||,,,,,Fairy]Weezing||RockyHelmet|Levitate|PainSplit,WillOWisp,SludgeBomb,Thief|Bold|248,,252,,8,|||||,,,,,Poison]Urshifu||ChoiceScarf|UnseenFist|WickedBlow,CloseCombat,SuckerPunch,Uturn|Adamant|,252,,,148,108|||||,,,,,Fighting]Tera Captain|Gholdengo|Leftovers|GoodasGold|Recover,MakeItRain,ShadowBall,NastyPlot|Bold|248,,252,,8,||,0,,,,|||,,,,,Steel]Azelf||SalacBerry|Levitate|Substitute,NastyPlot,Psyshock,Flamethrower|Timid|52,,,252,4,200||,0,,,,|||,,,,,Psychic]Gastrodon||Leftovers|StormDrain|Recover,Spikes,ClearSmog,Earthquake|Careful|248,,8,,252,|||||,,,,,Water","Tera Captain|Mimikyu|LifeOrb|Disguise|ShadowClaw,ShadowSneak,PlayRough,SwordsDance|Jolly|,252,96,,,160|||S||,,,,,Fairy]Tera Captain|Infernape|LifeOrb|Blaze|CloseCombat,FireBlast,TeraBlast,VacuumWave|Naive|,104,,164,,240|||S||,,,,,Dark]Forretress||Leftovers|Sturdy|Spikes,RapidSpin,VoltSwitch,BodyPress|Bold|252,,252,,4,|||||,,,,,Bug]Swampert||Leftovers|Torrent|StealthRock,FlipTurn,Earthquake,Yawn|Careful|252,,4,,252,|||S||,,,,,Water]Darkrai||WiseGlasses|BadDreams|DarkPulse,IceBeam,Hypnosis,NastyPlot|Timid|80,,,252,,176||,0,,,,|S||,,,,,Dark]Hydrapple||AssaultVest|Regenerator|GigaDrain,EarthPower,FickleBeam,GyroBall|Quiet|248,,,52,192,16|||S||,,,,,Grass"], + ["Glimmora||FocusSash|ToxicDebris|EarthPower,Spikes,PowerGem,SpikyShield|Timid|,,,252,4,252||,0,,,,|||,,,,,Rock]Alomomola||AssaultVest|Regenerator|FlipTurn,AlluringVoice,MirrorCoat,Scald|Calm|,,252,4,252,|||||,,,,,Water]Charjabug||Eviolite|Battery|StickyWeb,VoltSwitch,Lunge,MudShot|Sassy|252,4,,,252,|||||,,,,,Bug]Heatran||Leftovers|FlameBody|MagmaStorm,Protect,StealthRock,DragonPulse|Calm|252,,,4,252,||,0,,,,|||,,,,,Fire]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|PlayRough,IvyCudgel,HornLeech,Trailblaze|Jolly|16,252,,,,240|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,BleakwindStorm,Uturn,FocusBlast|Timid|248,,108,,,152|||||,,,,,Flying","Palafin-Hero||Leftovers|ZerotoHero|Substitute,BulkUp,JetPunch,BodySlam|Jolly|248,188,,,,72|||||,,,,,Water]Tera Captain|Torterra|HeavyDutyBoots|ShellArmor|Synthesis,TeraBlast,Earthquake,StealthRock|Impish|252,4,252,,,|||||,,,,,Fairy]Noivern||HeavyDutyBoots|Infiltrator|Hurricane,FocusBlast,Roost,Defog|Timid|160,,,196,,152||,0,,,,|||,,,,,Flying]Necrozma||HeavyDutyBoots|PrismArmor|DragonDance,PhotonGeyser,BrickBreak,Substitute|Jolly|120,252,,,,136|||||,,,,,Psychic]Kingambit||AssaultVest|Defiant|IronHead,KowtowCleave,LowKick,SuckerPunch|Adamant|252,76,,,180,|||||,,,,,Dark]Tera Captain|Toxtricity|ThroatSpray|PunkRock|Overdrive,TeraBlast,Boomburst,ShiftGear|Modest|200,,,252,,56||,0,,,,|||,,,,,Ground"], + ["Tera Captain|Mudsdale|Leftovers|Stamina|Earthquake,StoneEdge,BodyPress,StealthRock|Impish|252,,252,,4,|||||,,,,,Dragon]Tera Captain|Annihilape|MentalHerb|Defiant|RageFist,DrainPunch,BulkUp,Taunt|Adamant|248,20,136,,56,48|||||,,,,,Fairy]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,CloseCombat,IcePunch|Adamant|232,252,,,,24|||||,,,,,Stellar]Cyclizar||HeavyDutyBoots|Regenerator|DracoMeteor,KnockOff,RapidSpin,ShedTail|Timid|88,,,244,,176|||||,,,,,Stellar]Pecharunt||CustapBerry|PoisonPuppeteer|FoulPlay,Toxic,PartingShot,DestinyBond|Bold|252,,248,,8,||,0,,,,|||,,,,,Stellar]Skarmory||RockyHelmet|Sturdy|BodyPress,IronDefense,Spikes,Roost|Bold|252,,252,,4,||,0,,,,|||,,,,,Stellar","Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,NastyPlot,Hurricane,HeatWave|Timid|252,,44,36,,176||,0,,,,|||,,,,,Flying]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Taunt,IvyCudgel,HornLeech,Encore|Jolly|80,252,,,,176|||||,,,,,Water]Garchomp||HabanBerry|RoughSkin|SwordsDance,Earthquake,DragonTail,FireFang|Adamant|124,168,,,,216|||||,,,,,Dragon]Samurott-Hisui||ChopleBerry|Sharpness|CeaselessEdge,SuckerPunch,HydroPump,Taunt|Naughty|112,232,,64,,100|||||,,,,,Water]Muk||RockyHelmet|StickyHold|PainSplit,Taunt,GunkShot,KnockOff|Impish|44,16,252,,,196|||||,,,,,Poison]Misdreavus||Eviolite|Levitate|Taunt,PainSplit,NightShade,DazzlingGleam|Timid|252,,152,60,16,28||,0,,,,|||,,,,,Ghost"], + ["Meowscarada||HeavyDutyBoots|Protean|PlayRough,TripleAxel,Uturn,FlowerTrick|Jolly|120,140,,,,248|||||,,,,,Grass]Chi-Yu||ChoiceSpecs|BeadsofRuin|FireBlast,Flamethrower,Overheat,DarkPulse|Modest|16,,,252,,240||,0,,,,|||,,,,,Dark]Maushold||HeavyDutyBoots|Technician|TidyUp,ThunderWave,Encore,PlayRough|Jolly|248,,172,,,88|||||,,,,,Normal]Tera Captain|Gholdengo|HeavyDutyBoots|GoodasGold|Recover,ShadowBall,FocusBlast,TeraBlast|Bold|248,,252,8,,||,0,,,,|||,,,,,Fire]Milotic||HeavyDutyBoots|CuteCharm|Scald,Recover,FlipTurn,Haze|Calm|248,,8,,252,|||||,,,,,Grass]Garchomp||Leftovers|RoughSkin|DragonTail,Spikes,StealthRock,FireBlast|Lax|200,,196,52,,60|||||,,,,,Dragon","Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,VacuumWave,Thunderbolt,Psyshock|Modest|,,4,252,,252||,0,,,,|||,,,,,Fairy]Garchomp||ChoiceBand|RoughSkin|Earthquake,DragonClaw,IronHead,Outrage|Jolly|,252,,,4,252|||||,,,,,Dragon]Tera Captain|Lanturn|AssaultVest|WaterAbsorb|FlipTurn,Discharge,IceBeam,Scald|Calm|252,,4,,252,|||||,,,,,Flying]Metagross||FocusSash|ClearBody|StealthRock,HammerArm,Explosion,MeteorMash|Jolly|,252,,,4,252|||||,,,,,Steel]Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|KnockOff,Trailblaze,PowerWhip,CloseCombat|Jolly|,252,24,,,232|||||,,,,,Fighting]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,Taunt,BleakwindStorm,Uturn|Timid|176,,,212,16,104|||||,,,,,Flying"], + ["Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|CloseCombat,HeadlongRush,KnockOff,IceSpinner|Jolly|,252,4,,,252|||||,,,,,Stellar]Enamorus||ChoiceSpecs|Contrary|Moonblast,MysticalFire,HealingWish,AlluringVoice|Timid|,,32,252,,224||,0,,,,|||,,,,,Fairy]Rotom-Heat||ChoiceScarf|Levitate|VoltSwitch,WillOWisp,Trick,ThunderWave|Calm|248,,,,112,148||,0,,,,|||,,,,,Electric]Clodsire||BlackSludge|Unaware|Toxic,Earthquake,Recover,Spikes|Impish|248,,220,,40,|||||,,,,,Poison]Kingambit||ChoiceBand|SupremeOverlord|KowtowCleave,IronHead,Fling,SuckerPunch|Adamant|248,252,8,,,|||||,,,,,Dark]Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,IceBeam,HydroPump,FlipTurn|Modest|28,,,252,,228|||||,,,,,Ice","Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Psychic,Encore|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Garchomp||LifeOrb|RoughSkin|Earthquake,Substitute,StoneEdge,Surf|Naive|248,,,124,,136|||||,,,,,Dragon]Rotom-Wash||MentalHerb|Levitate|Substitute,NastyPlot,StoredPower,HydroPump|Timid|248,,24,,152,84||,0,,,,|||,,,,,Electric]Tera Captain|Scizor|RockyHelmet|Technician|BulletPunch,Uturn,VacuumWave,QuickAttack|Brave|248,96,164,,,|||||,,,,,Rock]Tera Captain|Braviary|ChoiceScarf|SheerForce|BodySlam,Facade,CloseCombat,DoubleEdge|Adamant|8,252,4,,,244|||||,,,,,Normal]Uxie||SitrusBerry|Levitate|StealthRock,Uturn,Encore,PainSplit|Careful|252,,4,,252,|||||,,,,,Psychic"], + ["Primarina||RockyHelmet|Torrent|FlipTurn,Moonblast,Surf,Encore|Bold|252,,252,4,,|||||,,,,,Water]Scrafty||AssaultVest|Intimidate|KnockOff,DrainPunch,IronHead,SuperFang|Impish|252,,232,,,24|||||,,,,,Dark]Pecharunt||ShucaBerry|PoisonPuppeteer|DestinyBond,Recover,PartingShot,MalignantChain|Bold|252,,252,,,||,0,,,,|||,,,,,Poison]Iron Treads||OccaBerry|QuarkDrive|IronHead,StealthRock,RapidSpin,Earthquake|Careful|252,4,,,252,|||||,,,,,Ground]Tera Captain|Kilowattrel|ChoiceSpecs|VoltAbsorb|Uturn,Thunderbolt,TeraBlast,AirSlash|Timid|48,,,252,,208|||||,,,,,Fairy]Tera Captain|Latias|Leftovers|Levitate|Recover,AuraSphere,MistBall,CalmMind|Timid|252,,160,,,96||,0,,,,|||,,,,,Fairy","Ribombee||HeavyDutyBoots|ShieldDust|QuiverDance,BugBuzz,Moonblast,Psychic|Modest|,,16,252,,240||,0,,,,|||,,,,,Bug]Cinderace||HeavyDutyBoots|Libero|Uturn,GunkShot,CourtChange,PyroBall|Jolly|,252,,,64,192|||||,,,,,Fire]Donphan||SafetyGoggles|Sturdy|RapidSpin,Encore,Earthquake,StealthRock|Careful|252,60,,,108,88|||||,,,,,Ground]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderclap,TeraBlast,DragonPulse,CalmMind|Modest|120,,,252,,136||,20,,,,|||,,,,,Ground]Kingambit||Leftovers|SupremeOverlord|KowtowCleave,SuckerPunch,IronHead,SwordsDance|Adamant|,252,,,172,84|||||,,,,,Dark]Palafin||ChoiceBand|ZerotoHero|FlipTurn,JetPunch,WaveCrash,ZenHeadbutt|Adamant|,252,,,96,160|||||,,,,,Water"], + ["Palafin-Hero||PunchingGlove|ZerotoHero|BulkUp,DrainPunch,BodySlam,JetPunch|Adamant|184,224,4,,,96|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,SludgeBomb,HeatWave,Hurricane|Timid|248,,28,48,8,176||,0,,,,|||,,,,,Flying]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,DragonPulse,Thunderbolt,Thunderclap|Modest|56,,244,124,84,||,20,,,,|||,,,,,Bug]Terapagos||HeavyDutyBoots|TeraShift|Toxic,TeraStarstorm,EarthPower,RapidSpin|Modest|96,,,220,,192|||||,,,,,Stellar]Tinkaton||RockyHelmet|MoldBreaker|Encore,StealthRock,PlayRough,KnockOff|Careful|248,,248,,12,|||||,,,,,Fairy]Dusclops||Eviolite|Pressure|Curse,NightShade,PainSplit,Haze|Calm|72,,184,,252,||,0,,,,|||,,,,,Ghost","Iron Treads||AssaultVest|QuarkDrive|IceSpinner,RapidSpin,Earthquake,VoltSwitch|Adamant|120,128,,,252,8|||||,,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,Psyshock,CalmMind,Recover|Timid|252,,104,52,,100||,0,,,,|||,,,,,Poison]Tera Captain|Lucario|LifeOrb|Steadfast|FlashCannon,AuraSphere,NastyPlot,VacuumWave|Modest|32,,8,252,,216||,0,,,,|||,,,,,Electric]Meowscarada||FocusSash|Protean|FlowerTrick,KnockOff,TripleAxel,Spikes|Jolly|16,252,,,,240|||||,,,,,Grass]Eiscue||RockyHelmet|IceFace|FreezeDry,Whirlpool,Snowscape,AuroraVeil|Timid|252,,,72,,184||,0,,,,|||,,,,,Ice]Rotom-Heat||ChoiceScarf|Levitate|Thunderbolt,VoltSwitch,Overheat,Trick|Modest|84,,,252,,172||,0,,,,|||,,,,,Electric"], + ["Slither Wing||RockyHelmet|Protosynthesis|Uturn,CloseCombat,WillOWisp,MorningSun|Impish|252,,252,,4,|||||,,,,,Bug]Slowking-Galar||ColburBerry|Regenerator|Psychic,FireBlast,ThunderWave,ChillyReception|Calm|248,,8,,252,||,0,,,,|||,,,,,Poison]Tera Captain|Jolteon|ThroatSpray|VoltAbsorb|Thunderbolt,AlluringVoice,TeraBlast,VoltSwitch|Timid|72,,,252,,184||,0,,,,|||,,,,,Ground]Tera Captain|Ogerpon|HeavyDutyBoots|Defiant|IvyCudgel,KnockOff,Uturn,Encore|Jolly|,252,4,,,252|||||,,,,,Grass]Baxcalibur||HeavyDutyBoots|ThermalExchange|IcicleCrash,Earthquake,IceShard,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Dragon]Hydreigon||RoseliBerry|Levitate|DracoMeteor,EarthPower,FireBlast,NastyPlot|Timid|,,,196,88,224||,0,,,,|||,,,,,Dark","Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,KnockOff,Hurricane,Uturn|Timid|160,,96,84,,168|||||,,,,,Flying]Zarude|||LeafGuard|KnockOff,Acrobatics,CloseCombat,Taunt|Jolly|80,196,,,32,200|||||,,,,,Dark]Tinkaton||ShucaBerry|Pickpocket|StealthRock,KnockOff,GigatonHammer,PlayRough|Impish|252,48,208,,,|||||,,,,,Fairy]Tera Captain|Mesprit|Leftovers|Levitate|CalmMind,Psyshock,DrainingKiss,Encore|Modest|252,,132,124,,||,0,,,,|||,,,,,Fairy]Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,PlayRough,KnockOff,RapidSpin|Jolly|,200,,,56,252|||||,,,,,Ground]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,DazzlingGleam,FireBlast,FlashCannon|Timid|120,,4,132,,252||,0,,,,|||,,,,,Fire"], + ["Tera Captain|Feraligatr|LifeOrb|SheerForce|SwordsDance,Liquidation,AquaJet,IcePunch|Adamant|176,252,,,,80|||||,,,,,Water]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,HeadlongRush,ZenHeadbutt,IceSpinner|Jolly|248,4,,,4,252|||||,,,,,Ground]Latios||ColburBerry|Levitate|CalmMind,Thunderbolt,LusterPurge,AuraSphere|Timid|64,,,252,,192||,0,,,,|||,,,,,Dragon]Meowscarada||MeadowPlate|Overgrow|KnockOff,ToxicSpikes,FlowerTrick,Taunt|Jolly|56,252,,,,200|||||,,,,,Grass]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|Agility,TeraBlast,SludgeWave,Thunderbolt|Modest|112,,,252,,144||,0,,,,|||,,,,,Fairy]Heatran||ChopleBerry|FlameBody|WillOWisp,Earthquake,HeavySlam,StealthRock|Impish|64,108,244,,,92|||||,,,,,Fire","Iron Valiant||ChoiceScarf|QuarkDrive|Moonblast,CloseCombat,SpiritBreak,DestinyBond|Naive|,108,,192,,208|||||,,,,,Fairy]Garchomp||EjectPack|RoughSkin|Earthquake,DracoMeteor,ScaleShot,StealthRock|Jolly|,252,,,8,248|||||,,,,,Dragon]Empoleon||CustapBerry|Torrent|FlipTurn,Endure,Haze,Roost|Sassy|252,8,,,248,|||||,,,,,Water]Tera Captain|Ceruledge|AirBalloon|FlashFire|BitterBlade,Poltergeist,ShadowSneak,BulkUp|Jolly|56,252,,,,200|||||,,,,,Grass]Tsareena||ChoiceScarf|QueenlyMajesty|PowerWhip,TripleAxel,LowKick,Uturn|Jolly|40,252,4,,,212|||||,,,,,Grass]Weezing-Galar||BabiriBerry|Levitate|StrangeSteam,Thief,Defog,PainSplit|Bold|252,,252,4,,|||||,,,,,Poison"], + ["Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|HeadlongRush,CloseCombat,IceSpinner,BulkUp|Jolly|248,4,4,,,252|||||,,,,,Steel]Manaphy||Leftovers|Hydration|TakeHeart,AcidArmor,Scald,AlluringVoice|Timid|,,,252,16,240||,0,,,,|||,,,,,Water]Hatterene||Leftovers|MagicBounce|CalmMind,Psyshock,MysticalFire,Nuzzle|Calm|252,,,4,252,|||||,,,,,Psychic]Smeargle||FocusSash|OwnTempo|StickyWeb,Spikes,StealthRock,Nuzzle|Careful|252,,4,,252,|||||,,,,,Normal]Kyurem||LoadedDice|Pressure|DragonDance,IcicleSpear,StoneEdge,EarthPower|Lonely|,252,,64,,192|||||,,,,,Dragon]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,KnockOff,LowKick|Jolly|,252,,,4,252|||||,,,,,Fire","Iron Crown||BoosterEnergy|QuarkDrive|TachyonCutter,Psychic,FocusBlast,CalmMind|Timid|84,,,172,,252||,20,,,,|||,,,,,Steel]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,PowerWhip,Superpower,Uturn|Jolly|,252,,,4,252|||||,,,,,Rock]Dewgong||HeavyDutyBoots|ThickFat|FlipTurn,KnockOff,AlluringVoice,Charm|Sassy|248,,8,,252,|||||,,,,,Water]Tera Captain|Armarouge|WeaknessPolicy|WeakArmor|ArmorCannon,PsychicTerrain,Endure,Psychic|Timid|40,,,252,,216||,0,,,,|||,,,,,Dark]Roaring Moon||ChoiceScarf|Protosynthesis|Uturn,KnockOff,DragonClaw,BrickBreak|Jolly|72,252,,,,184|||||,,,,,Dragon]Ursaluna-Bloodmoon||ChopleBerry|MindsEye|BloodMoon,EarthPower,VacuumWave,CalmMind|Modest|252,,,252,,4||,0,,,,|||,,,,,Ground"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,DrainPunch,SpiritBreak,DestinyBond|Jolly|48,252,,,,208|||||,,,,,Fairy]Tera Captain|Zapdos|HeavyDutyBoots|Static|Discharge,Roost,VoltSwitch,Hurricane|Bold|212,,252,,,44||,0,,,,|||,,,,,Grass]Iron Treads||PasshoBerry|QuarkDrive|RapidSpin,SupercellSlam,IceSpinner,Earthquake|Jolly|,252,48,,,208|||||,,,,,Ground]Tera Captain|Sinistcha|Leftovers|Heatproof|CalmMind,MatchaGotcha,StrengthSap,ShadowBall|Bold|252,,160,,,96||,0,,,,|||,,,,,Steel]Crocalor||Eviolite|Unaware|WillOWisp,Roar,Flamethrower,SlackOff|Calm|252,,172,,84,||,0,,,,|||,,,,,Fire]Deoxys-Defense||HeavyDutyBoots|Pressure|Recover,Spikes,Teleport,PsychicNoise|Bold|252,,108,,148,||,0,,,,|||,,,,,Psychic","Tera Captain|Latias|MentalHerb|Levitate|CalmMind,Recover,Thunderbolt,MistBall|Modest|184,,,252,,72||,0,,,,|||,,,,,Electric]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,FlipTurn,IcePunch|Adamant|160,252,,,,96|||||,,,,,Normal]Meowscarada||ProtectivePads|Protean|TripleAxel,KnockOff,FlowerTrick,Taunt|Jolly|56,252,,,,200|||||,,,,,Normal]Tinkaton||SitrusBerry|Pickpocket|StealthRock,Encore,KnockOff,GigatonHammer|Careful|252,,,,220,36|||||,,,,,Normal]Iron Hands||RoseliBerry|QuarkDrive|SwordsDance,DrainPunch,IcePunch,ThunderPunch|Adamant|,252,52,,204,|||||,,,,,Normal]Donphan||RockyHelmet|Sturdy|Earthquake,KnockOff,IceShard,RapidSpin|Impish|252,4,252,,,|||||,,,,,Normal"], + ["Tera Captain|Mew|Leftovers|Synchronize|Psychic,AuraSphere,VacuumWave,NastyPlot|Modest|44,,16,252,,196||,0,,,,|||,,,,,Fighting]Tera Captain|MoltresGalar|SitrusBerry|Berserk|AirSlash,TeraBlast,NastyPlot,Agility|Timid|68,,12,252,,176||,0,,,,|||,,,,,Ground]Rotom-Heat||RockyHelmet|Levitate|VoltSwitch,Overheat,WillOWisp,PainSplit|Bold|248,,252,8,,||,0,,,,|||,,,,,Stellar]Iron Treads||AirBalloon|QuarkDrive|KnockOff,IceSpinner,RapidSpin,StealthRock|Adamant|108,252,,,,148|||||,,,,,Stellar]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,Psychic,ShadowBall,VacuumWave|Modest|184,,,252,4,68||,0,,,,|||,,,,,Stellar]Amoonguss||RockyHelmet|Regenerator|SludgeBomb,GigaDrain,Spore,Synthesis|Calm|252,,,4,252,||,0,,,,|||,,,,,Stellar","Politoed||ChestoBerry|Drizzle|Encore,Surf,Psychic,Rest|Bold|252,,252,,4,||,0,,,,|S||,,,,,Water]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,WaveCrash,IcePunch|Adamant|,252,4,,,252|||||,,,,,Water]Archaludon||Leftovers|Stamina|DracoMeteor,BodyPress,StealthRock,FlashCannon|Modest|120,,128,4,252,4||,0,,,,|||,,,,,Steel]Tera Captain|Annihilape|ChoiceScarf|VitalSpirit|Uturn,GunkShot,RageFist,DrainPunch|Adamant|,144,60,,192,112|||S||,,,,,Poison]Zapdos||Leftovers|Pressure|Substitute,Charge,HeatWave,Discharge|Timid|240,,124,,,144||,0,,,,|||,,,,,Electric]Tera Captain|Overqwil|PoisonBarb|SwiftSwim|SwordsDance,GunkShot,Liquidation,RainDance|Adamant|128,252,128,,,|||S||,,,,,Water"], + ["Tera Captain|Annihilape|Leftovers|Defiant|DrainPunch,RageFist,BulkUp,Taunt|Careful|252,,,,88,168|||||,,,,,Poison]Roaring Moon||HeavyDutyBoots|Protosynthesis|Uturn,KnockOff,IronHead,Roost|Adamant|208,252,4,,,44|||||,,,,,Steel]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,Encore,HornLeech,LeechSeed|Adamant|136,252,,,4,116|||||,,,,,Fire]Corviknight||Leftovers|Pressure|Defog,IronDefense,BodyPress,Roost|Bold|248,,252,,,8||,0,,,,|||,,,,,Dragon]Gligar||Eviolite|Immunity|KnockOff,DualWingbeat,Toxic,StealthRock|Careful|248,,76,,176,8|||||,,,,,Water]Tera Captain|Dudunsparce|HeavyDutyBoots|Rattled|Roost,Toxic,CalmMind,ShadowBall|Calm|252,,92,,120,44||,0,,,,|||,,,,,Fairy","Meowscarada||ChoiceBand|Protean|KnockOff,TripleAxel,FlowerTrick,Uturn|Jolly|56,252,,,,200|||||,,,,,Grass]Tera Captain|RagingBolt|EjectPack|Protosynthesis|Thunderclap,DracoMeteor,VoltSwitch,Discharge|Modest|252,,,252,4,||,20,,,,|||,,,,,Fairy]Tera Captain|Chandelure|ChoiceScarf|FlameBody|Flamethrower,Overheat,EnergyBall,Memento|Timid|8,,,252,,248||,0,,,,|||,,,,,Fire]Ting-Lu||MentalHerb|VesselofRuin|Memento,StealthRock,StoneEdge,Earthquake|Impish|252,164,92,,,|||||,,,,,Dark]Hawlucha||WhiteHerb|Unburden|SwordsDance,CloseCombat,Acrobatics,BraveBird|Jolly|16,252,,,,240|||||,,,,,Fighting]Araquanid||Leftovers|WaterBubble|Liquidation,StickyWeb,Infestation,Protect|Adamant|252,120,92,,36,8|||||,,,,,Water"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,Trailblaze,SwordsDance|Adamant|8,252,56,,4,188|||||,,,,,Water]Weavile||HeavyDutyBoots|Pickpocket|KnockOff,TripleAxel,LowKick,Taunt|Jolly|56,252,8,,8,184|||||,,,,,Dark]Iron Crown||Leftovers|QuarkDrive|TachyonCutter,Psyshock,CalmMind,Substitute|Modest|228,,20,148,40,72||,20,,,,|||,,,,,Steel]Great Tusk||RockyHelmet|Protosynthesis|BodyPress,Earthquake,StealthRock,RapidSpin|Impish|176,8,208,,4,112|||||,,,,,Ground]Tera Captain|Diancie|Leftovers|ClearBody|BodyPress,PlayRough,TrickRoom,Encore|Careful|252,4,36,,216,|||||,,,,,Grass]Alomomola||RedCard|Regenerator|FlipTurn,Acrobatics,Wish,Protect|Relaxed|248,8,252,,,||,,,,,0|||,,,,,Water","Tyranitar||SmoothRock|SandStream|IceBeam,ThunderWave,KnockOff,Thunderbolt|Quiet|252,,,252,,|||||,,,,,Rock]Tera Captain|Excadrill|ExpertBelt|SandRush|SwordsDance,TeraBlast,RockSlide,Earthquake|Jolly|,252,56,,,200|||||,,,,,Grass]Terapagos||ChoiceSpecs|TeraShift|EarthPower,TeraStarstorm,FlashCannon,Thunderbolt|Modest|196,,,252,8,52||,15,,,,|||,,,,,Stellar]Latios||ChoiceScarf|Levitate|DracoMeteor,AuraSphere,LusterPurge,ShadowBall|Timid|92,,,252,4,160||,0,,,,|||,,,,,Dragon]Tera Captain|Milotic|FlameOrb|MarvelScale|Recover,AlluringVoice,Scald,Haze|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Sableye||RockyHelmet|Prankster|BulkUp,DrainPunch,WillOWisp,KnockOff|Impish|252,,252,,4,|||||,,,,,Dark"], + ["Tera Captain|Ogerpon|LumBerry|Defiant|WoodHammer,StompingTantrum,Encore,KnockOff|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Lokix|HeavyDutyBoots|TintedLens|FirstImpression,Substitute,SuckerPunch,KnockOff|Adamant|248,252,,,,8|||||,,,,,Dark]Copperajah||Leftovers|SheerForce|SleepTalk,Earthquake,IronHead,PlayRough|Adamant|248,216,8,,36,|||||,,,,,Steel]Rotom-Heat||ChoiceScarf|Levitate|Trick,WillOWisp,VoltSwitch,Overheat|Modest|248,,,84,,176||,0,,,,|||,,,,,Electric]Iron Valiant||HeavyDutyBoots|QuarkDrive|FocusBlast,Moonblast,VacuumWave,Psyshock|Timid|,,,252,48,208||,0,,,,|||,,,,,Fairy]Tentacruel||BlackSludge|LiquidOoze|MirrorCoat,RapidSpin,FlipTurn,Surf|Calm|248,,8,,252,|||||,,,,,Water","Tera Captain|Latias|Leftovers|Levitate|CalmMind,Recover,Psyshock,DragonPulse|Timid|252,,124,,,132||,0,,,,|||,,,,,Poison]Greninja-Bond||LifeOrb|BattleBond|WaterShuriken,IceBeam,DarkPulse,Surf|Timid|48,,,252,,208|||||,,,,,Water]Tinkaton||AirBalloon|Pickpocket|StealthRock,PlayRough,ThunderWave,GigatonHammer|Careful|252,,116,,140,|||S||,,,,,Fairy]Amoonguss||RockyHelmet|Regenerator|Synthesis,SludgeBomb,ClearSmog,Toxic|Bold|252,,208,,48,||,0,,,,|||,,,,,Grass]Heatran||ChopleBerry|FlashFire|MagmaStorm,Protect,PowerGem,EarthPower|Calm|252,,,96,160,||,0,,,,|S||,,,,,Fire]Great Tusk||CustapBerry|Protosynthesis|RapidSpin,IceSpinner,HeadlongRush,Endeavor|Jolly|252,,,,208,48|||||,,,,,Ground"], + ["Tera Captain|Okidogi|Leftovers|ToxicChain|Substitute,BulkUp,DrainPunch,HighHorsepower|Adamant|140,252,,,4,112|||||,,,,,Fire]Iron Hands||PunchingGlove|QuarkDrive|ThunderPunch,DrainPunch,Substitute,SwordsDance|Adamant|,248,124,,,136|||||,,,,,Fighting]Tera Captain|Hydreigon|ChoiceSpecs|Levitate|DarkPulse,DracoMeteor,StealthRock,FlashCannon|Modest|84,,,252,4,168||,0,,,,|||,,,,,Dark]Scizor||RockyHelmet|Technician|Uturn,Defog,BulletPunch,KnockOff|Impish|248,,252,,8,|||||,,,,,Bug]Fezandipiti||ChoiceScarf|ToxicChain|Uturn,PlayRough,BeatUp,Facade|Jolly|,252,,,4,252|||||,,,,,Poison]Mandibuzz||HeavyDutyBoots|Overcoat|Uturn,FoulPlay,Roost,Defog|Impish|248,,252,,8,|||||,,,,,Dark","Tera Captain|Alomomola|AssaultVest|Regenerator|FlipTurn,PlayRough,Liquidation,Scald|Sassy|252,,4,,252,|||||,,,,,Fairy]Slowking-Galar||ShucaBerry|Regenerator|ChillyReception,Flamethrower,Psychic,Toxic|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Moltres||ChoiceSpecs|FlameBody|Overheat,Flamethrower,Hurricane,AirSlash|Timid|24,,4,252,,228||,0,,,,|||,,,,,Fire]Tera Captain|RagingBolt|ChoiceScarf|Protosynthesis|VoltSwitch,Thunderbolt,DracoMeteor,DragonPulse|Modest|80,,,252,,176||,20,,,,|||,,,,,Electric]Meowscarada||ChoiceBand|Protean|Uturn,KnockOff,TripleAxel,Trick|Adamant|8,252,4,,,244|||||,,,,,Grass]Iron Treads||FocusSash|QuarkDrive|Earthquake,IceSpinner,RapidSpin,StealthRock|Jolly|,252,,,4,252|||||,,,,,Ground"], + ["Garchomp||LumBerry|RoughSkin|SwordsDance,IronHead,Earthquake,ScaleShot|Jolly|16,252,,,,240|||S||,,,,,Dragon]Tera Captain|Diancie|Leftovers|ClearBody|Spikes,EarthPower,CalmMind,Psychic|Sassy|252,,,4,252,||,0,,,,|||,,,,,Grass]Greninja||ExpertBelt|Protean|Extrasensory,GrassKnot,IceBeam,Surf|Timid|72,,,252,,184||,0,,,,|||,,,,,Water]Terapagos||Leftovers|TeraShift|RapidSpin,CalmMind,TeraStarstorm,EarthPower|Modest|120,,,252,4,132|||||,,,,,Stellar]Tera Captain|Ogerpon|LumBerry|Defiant|HornLeech,KnockOff,ZenHeadbutt,Synthesis|Jolly|248,84,,,,176|||||,,,,,Grass]Swalot||BlackSludge|StickyHold|Earthquake,KnockOff,ClearSmog,PainSplit|Sassy|248,8,,,252,|||||,,,,,Poison","Tera Captain|Serperior|Leftovers|Contrary|Glare,LeechSeed,Substitute,LeafStorm|Timid|252,,,88,,168||,0,,,,|||,,,,,Poison]Skeledirge||ShucaBerry|Unaware|TorchSong,AlluringVoice,WillOWisp,SlackOff|Calm|248,,,8,252,||,0,,,,|||,,,,,Fire]Weezing-Galar||Leftovers|Levitate|StrangeSteam,WillOWisp,Defog,PainSplit|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Tinkaton||AirBalloon|MoldBreaker|ThunderWave,Encore,Endeavor,PlayRough|Careful|252,48,,,208,|||||,,,,,Fairy]Palafin||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,FlipTurn,CloseCombat|Jolly|40,252,,,,216|||||,,,,,Water]Ting-Lu||RindoBerry|VesselofRuin|Payback,Earthquake,StealthRock,Whirlwind|Adamant|4,252,,,252,|||||,,,,,Dark"], + ["Iron Treads||Leftovers|QuarkDrive|BodyPress,RapidSpin,IronDefense,Protect|Jolly|48,,252,,,208|||||,,,,,Ground]Tera Captain|Latias|BabiriBerry|Levitate|Recover,CalmMind,DrainingKiss,Psyshock|Timid|248,,4,184,,72||,0,,,,|||,,,,,Fairy]Gouging Fire||HeavyDutyBoots|Protosynthesis|MorningSun,FlareBlitz,BreakingSwipe,DragonDance|Jolly|248,32,4,,,224|||||,,,,,Fire]Greninja||Leftovers|Protean|Haze,DarkPulse,IceBeam,ToxicSpikes|Timid|248,,,4,96,160||,0,,,,|||,,,,,Water]Tera Captain|Toxicroak|LifeOrb|DrySkin|NastyPlot,VacuumWave,SludgeWave,FocusBlast|Modest|168,,4,252,,84||,0,,,,|||,,,,,Fighting]Snorlax||Leftovers|ThickFat|Facade,Protect,Yawn,Curse|Careful|88,4,228,,188,|||||,,,,,Normal","Roaring Moon||LoadedDice|Protosynthesis|ScaleShot,KnockOff,StoneEdge,Uturn|Adamant|4,252,,,,252|||||,,,,,Dragon]Klefki||LightClay|Prankster|PlayRough,Spikes,Reflect,LightScreen|Careful|252,4,,,252,|||||,,,,,Steel]Tera Captain|GreatTusk|HeavyDutyBoots|Protosynthesis|HeadlongRush,HeavySlam,RapidSpin,StoneEdge|Jolly|,252,,,4,252|||S||,,,,,Fairy]Rotom-Heat||HeavyDutyBoots|Levitate|ThunderWave,FoulPlay,Overheat,VoltSwitch|Bold|252,,252,,,4||,0,,,,|||,,,,,Electric]Manaphy||Leftovers|Hydration|FlipTurn,Scald,Haze,AlluringVoice|Bold|252,,252,,,4|||||,,,,,Water]Tera Captain|Espeon|AssaultVest|MagicBounce|AlluringVoice,Psyshock,PsychicNoise,GrassKnot|Modest|72,,,184,252,||,0,,,,|||,,,,,Dark"], + ["Palafin-Hero||LifeOrb|ZerotoHero|Boomburst,JetPunch,IceBeam,WaveCrash|Naive|,4,,252,,252|||||,,,,,Water]Iron Treads||Leftovers|QuarkDrive|StealthRock,RapidSpin,IceSpinner,HighHorsepower|Jolly|252,,,,48,208|||||,,,,,Ground]Tera Captain|Rillaboom|ChoiceBand|GrassySurge|GrassyGlide,Uturn,KnockOff,BrickBreak|Adamant|128,252,,,,128|||||,,,,,Electric]Tera Captain|Armarouge|ChoiceScarf|FlashFire|Trick,Psychic,TeraBlast,ArmorCannon|Modest|,,4,252,,252||,0,,,,|||,,,,,Fairy]Weezing||Leftovers|NeutralizingGas|ToxicSpikes,PainSplit,SludgeBomb,Flamethrower|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison]Tornadus-Therian||AssaultVest|Regenerator|HeatWave,Uturn,KnockOff,BleakwindStorm|Timid|248,,,,68,192|||||,,,,,Flying","Gouging Fire||BoosterEnergy|Protosynthesis|FlareBlitz,DoubleEdge,PsychicFangs,DragonDance|Adamant|120,252,4,,,132|||||,,,,,Fire]Zapdos||HeavyDutyBoots|Static|Discharge,HeatWave,EerieImpulse,Roost|Timid|248,,104,,20,136||,0,,,,|||,,,,,Electric]Quaquaval||LumBerry|Moxie|AquaStep,BrickBreak,UpperHand,SwordsDance|Adamant|76,252,,,,180|||||,,,,,Water]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,Glare,Substitute,LeechSeed|Timid|248,,4,56,,200||,0,,,,|||,,,,,Grass]Jirachi||Leftovers|SereneGrace|IronHead,BodySlam,Wish,Protect|Jolly|248,124,,,,136|||||,,,,,Steel]Grimmsnarl||LightClay|Prankster|DarkPulse,Reflect,Taunt,LightScreen|Modest|252,,,156,,100||,0,,,,|||,,,,,Dark"], + ["Great Tusk||HeavyDutyBoots|Protosynthesis|Earthquake,IceSpinner,KnockOff,RapidSpin|Adamant|248,164,,,,96|||||,,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,MistBall,CalmMind,Recover|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Greninja-Bond||ExpertBelt|BattleBond|HydroPump,IceBeam,GunkShot,WaterShuriken|Naive|,96,,252,,160|||||,,,,,Water]Tinkaton||AirBalloon|Pickpocket|GigatonHammer,KnockOff,Reflect,Encore|Jolly|248,,196,,,64|||||,,,,,Fairy]Muk||BlackSludge|PoisonTouch|PoisonJab,KnockOff,IcePunch,RockTomb|Careful|232,,,,252,24|||||,,,,,Poison]Tera Captain|Frosmoth|HeavyDutyBoots|IceScales|IceBeam,TeraBlast,GigaDrain,QuiverDance|Timid|64,,,252,4,188||,0,,,,|||,,,,,Water","Tera Captain|IronHands|KeeBerry|QuarkDrive|SwordsDance,DrainPunch,HeavySlam,Earthquake|Careful|248,,,,252,8|||||,,,,,Fairy]Garchomp||LifeOrb|RoughSkin|Earthquake,DracoMeteor,IronHead,Liquidation|Naive|,252,,4,,252|||||,,,,,Dragon]Iron Moth||BoosterEnergy|QuarkDrive|FieryDance,SludgeWave,AcidSpray,EnergyBall|Timid|,,,132,124,252||,0,,,,|||,,,,,Fire]Primarina||Leftovers|LiquidVoice|Moonblast,PsychicNoise,Encore,DrainingKiss|Calm|252,,4,,252,||,0,,,,|||,,,,,Water]Bronzong||ColburBerry|Levitate|GyroBall,StealthRock,BodyPress,Psychic|Relaxed|252,4,252,,,||,,,,,0|||,,,,,Steel]Volbeat||RockyHelmet|Prankster|Encore,Uturn,Roost,SeismicToss|Careful|252,,4,,252,|||||,,,,,Bug"], + ["Palafin-Hero||ChoiceScarf|ZerotoHero|WaveCrash,CloseCombat,JetPunch,FlipTurn|Adamant|16,252,,,,240|||||,,,,,Water]Tera Captain|Clefable|Leftovers|Unaware|Moonblast,ThunderWave,Protect,Wish|Bold|252,,248,,8,||,0,,,,|||,,,,,Steel]Blaziken||Charcoal|SpeedBoost|CloseCombat,TemperFlare,Uturn,Protect|Adamant|,252,24,,,232|||||,,,,,Fire]Tera Captain|Toxtricity|ThroatSpray|PunkRock|Boomburst,TeraBlast,VoltSwitch,ShiftGear|Timid|40,,,252,,216||,0,,,,|||,,,,,Ground]Latios||ColburBerry|Levitate|Psyshock,AuraSphere,CalmMind,Recover|Timid|252,,,,4,252||,0,,,,|||,,,,,Dragon]Sandslash||AssaultVest|SandVeil|Earthquake,KnockOff,RapidSpin,SuperFang|Careful|252,4,,,252,|||||,,,,,Ground","Meowscarada||ChoiceBand|Protean|KnockOff,FlowerTrick,Trick,SuckerPunch|Jolly|,252,104,,,152|||||,,,,,Grass]Gengar||RockyHelmet|CursedBody|ShadowBall,WillOWisp,Encore,Psychic|Timid|248,,192,,,68||,0,,,,|||,,,,,Ghost]Landorus-Therian||Leftovers|Intimidate|BulkUp,Earthquake,Taunt,Uturn|Careful|248,,32,,228,|||||,,,,,Ground]Tera Captain|Quaquaval|Leftovers|Moxie|AquaStep,Roost,Uturn,RapidSpin|Impish|252,4,252,,,|||||,,,,,Water]Heatran||Leftovers|FlameBody|StealthRock,HeavySlam,EarthPower,Protect|Sassy|248,,8,,252,|||||,,,,,Fire]Bellibolt||RockyHelmet|Static|VoltSwitch,MuddyWater,SlackOff,Toxic|Bold|252,,152,,104,||,0,,,,|||,,,,,Electric"], + ["Dachsbun||Leftovers|WellBakedBody|Wish,Protect,BodyPress,Yawn|Impish|252,,252,,4,||,0,,,,|||,,,,,Fairy]Slowking||Leftovers|Regenerator|ChillyReception,Psychic,IceBeam,ThunderWave|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Talonflame||HeavyDutyBoots|GaleWings|DualWingbeat,Defog,Roost,Overheat|Naive|,252,,16,,240|||||,,,,,Fire]Sneasler||AirBalloon|Unburden|RockSlide,DireClaw,CloseCombat,SwordsDance|Jolly|84,252,,,,172|||||,,,,,Fighting]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderbolt,DracoMeteor,WeatherBall,Thunderclap|Modest|252,,,252,4,||,20,,,,|||,,,,,Grass]Tera Captain|Froslass|LifeOrb|CursedBody|TeraBlast,Blizzard,ShadowBall,Spikes|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground","Torkoal||HeatRock|Drought|LavaPlume,Yawn,StealthRock,RapidSpin|Bold|248,,252,8,,|||||,,,,,Fire]Gouging Fire||GrassySeed|Protosynthesis|DragonDance,HeatCrash,MorningSun,DragonClaw|Adamant|48,244,8,,,208|||||,,,,,Fire]Mandibuzz||RockyHelmet|BigPecks|Roost,Whirlwind,Toxic,Uturn|Impish|248,,244,,16,|||||,,,,,Dark]Iron Treads||AssaultVest|QuarkDrive|VoltSwitch,HighHorsepower,IronHead,RapidSpin|Adamant|252,244,,,4,8|||||,,,,,Ground]Tera Captain|WalkingWake|DragonFang|Protosynthesis|DragonPulse,DracoMeteor,HydroSteam,KnockOff|Timid|16,,,252,8,232|||||,,,,,Dragon]Tera Captain|Venusaur|LifeOrb|Chlorophyll|SludgeBomb,EarthPower,GigaDrain,Growth|Timid|32,,4,252,20,200||,0,,,,|||,,,,,Stellar"], + ["Palafin-Hero||MysticWater|ZerotoHero|Surf,JetPunch,IcePunch,GrassKnot|Quiet|248,,8,252,,|||||,,,,,Water]Gouging Fire||Leftovers|Protosynthesis|DragonDance,MorningSun,HeatCrash,BurningBulwark|Adamant|120,252,,,4,132|||||,,,,,Fire]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|NastyPlot,Thunderbolt,TeraBlast,GrassKnot|Timid|64,,188,8,,248||,0,,,,|||,,,,,Fairy]Tera Captain|Rhyperior|Leftovers|SolidRock|Earthquake,SmackDown,SwordsDance,Substitute|Adamant|252,152,52,,,52|||||,,,,,Grass]Terapagos||EjectButton|TeraShift|EarthPower,Thunderbolt,Toxic,RapidSpin|Timid|252,,4,,,252|||||,,,,,Stellar]Copperajah||CustapBerry|HeavyMetal|StealthRock,HeavySlam,Earthquake,KnockOff|Adamant|,,228,,236,44|||||,,,,,Steel","Alcremie||Leftovers|AromaVeil|DrainingKiss,StoredPower,AcidArmor,CalmMind|Calm|248,,252,,8,||,0,,,,|||,,,,,Stellar]Pecharunt||ColburBerry|PoisonPuppeteer|MalignantChain,ShadowBall,NastyPlot,Recover|Bold|248,,,252,,8||,0,,,,|||,,,,,Stellar]Palafin-Hero||WacanBerry|ZerotoHero|JetPunch,DrainPunch,BulkUp,Taunt|Jolly|248,,,,68,192|||||,,,,,Stellar]Tera Captain|Annihilape|Leftovers|Defiant|RageFist,DrainPunch,BulkUp,StealthRock|Careful|240,,,,252,16|||||,,,,,Electric]Cyclizar||HeavyDutyBoots|Regenerator|DracoMeteor,KnockOff,RapidSpin,ShedTail|Timid|248,,,,164,96|||||,,,,,Stellar]Raichu||LightClay|LightningRod|Nuzzle,KnockOff,LightScreen,Reflect|Jolly|252,,72,,,184|||||,,,,,Stellar"], + ["Tera Captain|Heatran|AssaultVest|FlashFire|TeraBlast,MagmaStorm,EarthPower,FlashCannon|Modest|248,,,252,,8||,0,,,,|||,,,,,Bug]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,PowerWhip,Uturn,QuickAttack|Jolly|,252,4,,,252|||||,,,,,Water]Weavile||ExpertBelt|Pickpocket|TripleAxel,KnockOff,LowKick,IceShard|Jolly|16,252,,,,240|||||,,,,,Dark]Tera Captain|Gliscor|ChoiceScarf|PoisonHeal|Earthquake,TeraBlast,StoneEdge,Uturn|Adamant|32,252,4,,,220|||||,,,,,Ice]Mandibuzz||RockyHelmet|BigPecks|Defog,Roost,Uturn,FoulPlay|Impish|248,,236,,24,||,,,,,24|||,,,,,Dark]Slowking-Galar||ShucaBerry|Regenerator|ChillyReception,SludgeBomb,Earthquake,Psychic|Relaxed|248,,208,,52,||,,,,,0|||,,,,,Poison","Chi-Yu||HeavyDutyBoots|BeadsofRuin|DarkPulse,Flamethrower,NastyPlot,FlameCharge|Modest|40,,,252,,216|||||,,,,,Dark]Sneasler||HeavyDutyBoots|PoisonTouch|CloseCombat,DireClaw,LashOut,Uturn|Jolly|80,252,,,,176|||||,,,,,Fighting]Tera Captain|Rillaboom|ChoiceBand|GrassySurge|GrassyGlide,Uturn,KnockOff,LowKick|Adamant|248,252,8,,,|||||,,,,,Steel]Tera Captain|Primarina|Leftovers|Torrent|Surf,Moonblast,Substitute,CalmMind|Modest|48,,,252,,208||,0,,,,|||,,,,,Steel]Iron Treads||HeavyDutyBoots|QuarkDrive|HighHorsepower,BodyPress,RapidSpin,StealthRock|Jolly|128,128,,,,252|||||,,,,,Ground]Weezing||RockyHelmet|Levitate|Flamethrower,SludgeBomb,ClearSmog,PainSplit|Bold|248,,252,8,,||,0,,,,|||,,,,,Poison"], + ["Garchomp||LoadedDice|RoughSkin|Earthquake,ScaleShot,SwordsDance,IronHead|Jolly|16,252,,,,240|||||,,,,,Dragon]Corviknight||Leftovers|MirrorArmor|Roost,Uturn,Defog,BodyPress|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Flying]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,CloseCombat,Uturn,Liquidation|Adamant|96,252,,,,160|||||,,,,,Water]Tera Captain|Arcanine|HeavyDutyBoots|Intimidate|FlareBlitz,ExtremeSpeed,MorningSun,WillOWisp|Impish|200,,252,,,56|||||,,,,,Dragon]Florges||Leftovers|FlowerVeil|AlluringVoice,CalmMind,Synthesis,PsychicNoise|Calm|248,,,,252,8||,0,,,,|||,,,,,Fairy]Jolteon||ChoiceSpecs|VoltAbsorb|AlluringVoice,VoltSwitch,HyperVoice,Thunderbolt|Timid|72,,,252,,184||,0,,,,|||,,,,,Electric","Weezing-Galar||RockyHelmet|Levitate|StrangeSteam,GunkShot,WillOWisp,PainSplit|Relaxed|252,,252,,4,|||||,,,,,Poison]Donphan||AssaultVest|Sturdy|RapidSpin,IceSpinner,Earthquake,KnockOff|Adamant|248,252,,,8,|||||,,,,,Ground]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,PowerWhip,Trailblaze|Jolly|,252,,,4,252|||||,,,,,Fire]Tera Captain|Manaphy|Leftovers|Hydration|TakeHeart,AcidArmor,StoredPower,Scald|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,NastyPlot,HeatWave,KnockOff|Modest|16,,,252,,240|||||,,,,,Flying]Tera Captain|Bisharp|Eviolite|Defiant|SuckerPunch,StealthRock,IronHead,ThroatChop|Adamant|252,252,,,4,|||||,,,,,Dark"], + ["Amoonguss||EjectButton|Regenerator|Spore,GigaDrain,Synthesis,SludgeBomb|Bold|252,,252,,4,||,0,,,,|||,,,,,Grass]Mienshao||ChoiceScarf|Regenerator|PoisonJab,KnockOff,Uturn,TripleAxel|Jolly|,252,,,32,224|||||,,,,,Fighting]Tera Captain|IronCrown|BoosterEnergy|QuarkDrive|CalmMind,FocusBlast,TeraBlast,Psyshock|Timid|168,,40,108,,192||,20,,,,|||,,,,,Fire]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|ScaryFace,IvyCudgel,KnockOff,Encore|Jolly|180,,,,144,184|||||,,,,,Water]Tera Captain|Jolteon|ChoiceSpecs|VoltAbsorb|VoltSwitch,AlluringVoice,Thunderbolt,TeraBlast|Timid|72,,,252,,184||,0,,,,|||,,,,,Ice]Indeedee-F||PsychicSeed|PsychicSurge|PsychUp,Psyshock,ShadowBall,AlluringVoice|Bold|252,,220,,36,||,0,,,,|||,,,,,Psychic","Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,ZenHeadbutt,Liquidation,CloseCombat|Jolly|16,252,,,,240|||||,,,,,Stellar]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,Taunt,Uturn,KnockOff|Timid|104,,,236,,168|||||,,,,,Ghost]Tera Captain|Jirachi|SafetyGoggles|SereneGrace|StoredPower,CalmMind,Wish,IronDefense|Timid|240,,104,12,,152||,0,,,,|||,,,,,Psychic]Brambleghast||ColburBerry|WindRider|RapidSpin,PowerWhip,StrengthSap,Poltergeist|Impish|248,,208,,,52|||||,,,,,Dark]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,AquaCutter,SuckerPunch,AerialAce|Adamant|,252,,,4,252|||||,,,,,Electric]Tera Captain|SandyShocks|BoosterEnergy|Protosynthesis|EarthPower,Thunderbolt,TeraBlast,ThunderWave|Timid|48,,,208,,252||,0,,,,|||,,,,,Psychic"], + ["Tera Captain|Infernape|LifeOrb|Blaze|NastyPlot,FireBlast,VacuumWave,AuraSphere|Timid|,,64,252,,192||,0,,,,|S||,,,,,Fighting]Hydrapple||YacheBerry|Regenerator|GigaDrain,DracoMeteor,Recover,EarthPower|Bold|252,,92,164,,||,0,,,,|S||,,,,,Grass]Darkrai||BlackGlasses|BadDreams|DarkPulse,SuckerPunch,IceBeam,Psychic|Naive|,120,,252,,136|||S||,,,,,Dark]Slowking-Galar||AssaultVest|Regenerator|FutureSight,SludgeBomb,FireBlast,IceBeam|Calm|252,,,4,252,||,0,,,,|S||,,,,,Poison]Swampert||Leftovers|Torrent|FlipTurn,Earthquake,Roar,StealthRock|Careful|252,,4,,252,|||S||,,,,,Water]Forretress||RockyHelmet|Sturdy|Spikes,RapidSpin,VoltSwitch,BodyPress|Bold|252,,252,4,,|||||,,,,,Bug","Palafin-Hero||AssaultVest|ZerotoHero|WaveCrash,JetPunch,FlipTurn,IcePunch|Adamant|248,104,,,136,20|||||,,,,,Water]Tera Captain|Gholdengo|KebiaBerry|GoodasGold|ShadowBall,DazzlingGleam,ThunderWave,Recover|Modest|192,,,252,,64||,0,,,,|||,,,,,Fairy]Tera Captain|Jolteon|ExpertBelt|VoltAbsorb|VoltSwitch,AlluringVoice,ShadowBall,Thunderbolt|Timid|40,,,252,,216||,0,,,,|||,,,,,Ghost]Hydreigon||ChopleBerry|Levitate|DracoMeteor,DarkPulse,Flamethrower,Uturn|Timid|,,,176,92,240|||||,,,,,Dark]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,Trailblaze,ZenHeadbutt,Spikes|Jolly|,252,,,4,252|||||,,,,,Fire]Weezing-Galar||BabiriBerry|Levitate|WillOWisp,Defog,StrangeSteam,Flamethrower|Bold|248,,252,,8,||,0,,,,|||,,,,,Poison"], + ["Grimmsnarl||Leftovers|Prankster|LightScreen,Reflect,Taunt,PartingShot|Bold|248,,252,,8,||,0,,,,|||,,,,,Dark]Palafin-Hero||ChoiceScarf|ZerotoHero|WaveCrash,IcePunch,Haze,FlipTurn|Adamant|208,252,,,,48|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Thunderbolt,Hurricane,Roost,Uturn|Timid|248,,56,,100,104|||||,,,,,Grass]Tera Captain|Cetitan|HeavyDutyBoots|SlushRush|BellyDrum,TeraBlast,IceShard,Earthquake|Adamant|240,252,,,,16|||||,,,,,Fairy]Tera Captain|SlowkingGalar|IcyRock|Regenerator|ChillyReception,FutureSight,IceBeam,ThunderWave|Calm|252,,16,,240,||,0,,,,|||,,,,,Water]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,SupercellSlam,HeadlongRush,IceSpinner|Jolly|248,4,,,4,252|||||,,,,,Ground","Tentacruel||MentalHerb|ClearBody|Haze,Toxic,FlipTurn,SludgeBomb|Bold|252,,116,,,140|||||,,,,,Water]Cinderace||HeavyDutyBoots|Libero|Uturn,PyroBall,CourtChange,Taunt|Jolly|,252,,,4,252|||||,,,,,Fire]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,KnockOff,CloseCombat,IcePunch|Jolly|,252,,,4,252|||||,,,,,Fairy]Tera Captain|Manaphy|Leftovers|Hydration|HeartSwap,TailGlow,Surf,Substitute|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Landorus-Therian||AssaultVest|Intimidate|GrassKnot,RockTomb,Earthquake,Uturn|Careful|252,4,,,252,|||||,,,,,Ground]Tera Captain|Mismagius|FocusSash|Levitate|ThunderWave,WillOWisp,Hex,DestinyBond|Timid|,,252,4,,252||,0,,,,|||,,,,,Steel"], + ["Tera Captain|GreninjaBond|DreadPlate|BattleBond|Surf,DarkPulse,LowKick,WaterShuriken|Timid|96,,,252,,160|||||,,,,,Dark]Garchomp||LoadedDice|RoughSkin|SwordsDance,ScaleShot,Earthquake,PoisonJab|Adamant|,252,,,4,252|||||,,,,,Dragon]Enamorus||ChoiceScarf|Contrary|Moonblast,EarthPower,WeatherBall,HealingWish|Modest|32,,,252,4,220||,0,,,,|||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,HornLeech,KnockOff,RockTomb|Adamant|48,252,,,4,204|||||,,,,,Fire]Jirachi||Leftovers|SereneGrace|IronHead,Thunder,Wish,Protect|Sassy|248,,,8,252,|||||,,,,,Steel]Rotom-Mow||YacheBerry|Levitate|LeafStorm,Discharge,WillOWisp,VoltSwitch|Bold|248,,252,8,,||,0,,,,|||,,,,,Electric","Tera Captain|Excadrill|FocusSash|MoldBreaker|RapidSpin,Earthquake,IronHead,SwordsDance|Adamant|16,252,,,,240|||||,,,,,Water]Iron Bundle||ChoiceScarf|QuarkDrive|FlipTurn,FreezeDry,HydroPump,IceBeam|Timid|112,,,252,,144|||||,,,,,Ice]Latios||ChoiceSpecs|Levitate|IceBeam,FlipTurn,Trick,DracoMeteor|Timid|32,,,252,,224|||||,,,,,Dragon]Tera Captain|Gyarados|SkyPlate|Moxie|DragonDance,IceFang,Earthquake,TeraBlast|Jolly|,252,12,,,244|||||,,,,,Flying]Hatterene||Leftovers|MagicBounce|DrainingKiss,CalmMind,Psyshock,Nuzzle|Modest|252,,,108,148,|||||,,,,,Psychic]Moltres||ChoiceSpecs|Pressure|Uturn,Hurricane,Flamethrower,Overheat|Modest|32,,,252,,224|||||,,,,,Fire"], + ["Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|Uturn,SurgingStrikes,CloseCombat,IceSpinner|Jolly|40,252,,,,216|||||,,,,,Fighting]Iron Bundle||ChoiceScarf|QuarkDrive|HydroPump,FreezeDry,FlipTurn,IceBeam|Naive|96,,,252,,160|||||,,,,,Ice]Iron Treads||HeavyDutyBoots|QuarkDrive|RapidSpin,IceSpinner,Earthquake,VoltSwitch|Jolly|16,252,,,,240|||||,,,,,Ground]Tera Captain|Dudunsparce|Leftovers|SereneGrace|StealthRock,DragonTail,Roost,PoisonJab|Careful|240,16,252,,,|||||,,,,,Fairy]Decidueye|||LongReach|ShadowSneak,Roost,SwordsDance,SpiritShackle|Adamant|140,116,252,,,|||||,,,,,Grass]Overqwil||BlackSludge|Intimidate|ToxicSpikes,Crunch,Haze,DestinyBond|Jolly|140,116,,,,252|||||,,,,,Dark","Manaphy||AssaultVest|Hydration|AlluringVoice,EnergyBall,FlipTurn,Scald|Relaxed|,,252,4,252,|||||,,,,,Water]Tera Captain|Magnezone|HeavyDutyBoots|Sturdy|VoltSwitch,TeraBlast,ThunderWave,BodyPress|Modest|120,,136,252,,||,0,,,,|||,,,,,Water]Brambleghast||YacheBerry|WindRider|LeechSeed,ShadowSneak,PowerWhip,RapidSpin|Impish|,68,252,,,188|||||,,,,,Grass]Iron Boulder||BoosterEnergy|QuarkDrive|CloseCombat,MightyCleave,ZenHeadbutt,SwordsDance|Jolly|,252,40,,,216|||||,,,,,Rock]Kommo-o||ThroatSpray|Soundproof|ClangorousSoul,VacuumWave,DrainPunch,ClangingScales|Quirky|,100,150,,90,168|||||,,,,,Fighting]Enamorus-Therian||CustapBerry|Overcoat|SludgeBomb,Moonblast,EarthPower,Endure|Modest|252,,4,252,,||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|UrshifuRapidStrike|PunchingGlove|UnseenFist|SwordsDance,DrainPunch,SurgingStrikes,AquaJet|Jolly|,252,,,4,252|||||,,,,,Fairy]Darkrai||BlackGlasses|BadDreams|DarkPulse,FocusBlast,SludgeBomb,Hypnosis|Timid|80,,,252,,176||,0,,,,|||,,,,,Dark]Slowking-Galar||KasibBerry|Regenerator|ChillyReception,SludgeBomb,Flamethrower,SlackOff|Sassy|252,,4,,252,||,0,,,,0|||,,,,,Poison]Tera Captain|Delphox|HeavyDutyBoots|Blaze|FireBlast,DazzlingGleam,Agility,GrassKnot|Timid|56,,,252,,200||,0,,,,|S||,,,,,Fairy]Donphan||SitrusBerry|Sturdy|StealthRock,Earthquake,GunkShot,IceShard|Impish|252,,252,,4,|||||,,,,,Ground]Zapdos||LightClay|Static|LightScreen,Discharge,Hurricane,Roost|Timid|248,,,,28,232||,0,,,,|||,,,,,Electric","Tsareena||ProtectivePads|QueenlyMajesty|RapidSpin,Synthesis,PowerWhip,Uturn|Impish|248,,232,,28,|||S||,,,,,Grass]Tera Captain|Regidrago|ChoiceScarf|DragonsMaw|DragonEnergy,DracoMeteor,DragonPulse,TeraBlast|Modest|16,,,252,,240||,0,,,,|||,,,,,Steel]Tera Captain|Gholdengo|EjectButton|GoodasGold|Recover,ShadowBall,MakeItRain,NastyPlot|Calm|248,,8,,252,||,0,,,,|||,,,,,Dragon]Urshifu||PunchingGlove|UnseenFist|WickedBlow,SuckerPunch,DrainPunch,Taunt|Jolly|,252,,,4,252|||||,,,,,Fighting]Weezing||RockyHelmet|Levitate|PainSplit,SludgeBomb,ToxicSpikes,Flamethrower|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Gastrodon||Leftovers|StormDrain|Recover,Earthquake,Surf,Spikes|Sassy|252,,4,,252,|||||,,,,,Water"], + ["Vikavolt||OccaBerry|Levitate|StickyWeb,VoltSwitch,ThunderWave,BugBuzz|Modest|92,,60,216,140,||,0,,,,|||,,,,,Bug]Qwilfish-Hisui||Eviolite|SwiftSwim|BarbBarrage,PainSplit,Liquidation,ToxicSpikes|Adamant|56,,64,,224,164|||||,,,,,Dark]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderclap,VoltSwitch,DracoMeteor,TeraBlast|Modest|40,,12,200,36,220||,20,,,,|||,,,,,Grass]Landorus-Therian||ChoiceScarf|Intimidate|Earthquake,Uturn,RockSlide,StealthRock|Jolly|,244,20,,20,224|||||,,,,,Ground]Archaludon||AssaultVest|Stamina|ElectroShot,FlashCannon,DragonPulse,BodyPress|Timid|,,20,128,144,216||,0,,,,|||,,,,,Steel]Pelipper||DampRock|Drizzle|Roost,Uturn,Hurricane,WeatherBall|Modest|228,,60,96,100,24|||||,,,,,Water","Torkoal||Leftovers|Drought|ScorchingSands,StealthRock,Overheat,RapidSpin|Bold|248,,64,,196,|||||,,,,,Fire]Masquerain||FocusSash|Intimidate|StickyWeb,StruggleBug,SunnyDay,Uturn|Timid|248,,,8,,252|||||,,,,,Bug]Great Tusk||HeavyDutyBoots|Protosynthesis|IceSpinner,HeavySlam,Earthquake,RapidSpin|Adamant|8,244,,,88,168|||||,,,,,Ground]Primarina||Leftovers|LiquidVoice|Moonblast,PsychicNoise,DrainingKiss,CalmMind|Modest|232,,,232,,44||,0,,,,|||,,,,,Water]Tera Captain|Mew|AdrenalineOrb|Synchronize|NastyPlot,EarthPower,IceBeam,VoltSwitch|Timid|72,,,252,,184||,0,,,,|||,,,,,Steel]Gouging Fire||Leftovers|Protosynthesis|FlareBlitz,BurningBulwark,Earthquake,DragonDance|Adamant|240,56,,,76,136|||||,,,,,Fire"], + ["Palafin-Hero||Leftovers|ZerotoHero|BulkUp,Substitute,JetPunch,DrainPunch|Adamant|216,140,,,,152|||||,,,,,Water]Garchomp||LoadedDice|RoughSkin|Earthquake,StealthRock,SwordsDance,ScaleShot|Jolly|92,252,,,4,160|||||,,,,,Dragon]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,KnockOff,Uturn,Taunt|Modest|248,,,140,,120|||||,,,,,Flying]Diancie||RockyHelmet|ClearBody|Encore,EarthPower,Moonblast,Spikes|Bold|248,,252,8,,||,0,,,,|||,,,,,Rock]Gholdengo||ColburBerry|GoodasGold|MakeItRain,ShadowBall,NastyPlot,Recover|Bold|184,,252,72,,||,0,,,,|||,,,,,Steel]Tera Captain|Frosmoth|HeavyDutyBoots|IceScales|QuiverDance,GigaDrain,IceBeam,TeraBlast|Modest|,,,252,4,252||,0,,,,|||,,,,,Electric","Tera Captain|Annihilape|ChestoBerry|Defiant|BulkUp,DrainPunch,RageFist,Rest|Adamant|252,16,,,240,|||||,,,,,Water]Weavile||HeavyDutyBoots|Pressure|SwordsDance,TripleAxel,KnockOff,IceShard|Jolly|32,252,,,,224|||||,,,,,Dark]Gholdengo||ChoiceSpecs|GoodasGold|MakeItRain,ShadowBall,Trick,Recover|Modest|252,,,252,,4||,0,,,,|||,,,,,Steel]Tera Captain|Vaporeon|Leftovers|WaterAbsorb|CalmMind,Scald,AlluringVoice,Wish|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Raging Bolt||Magnet|Protosynthesis|DracoMeteor,Thunderbolt,Thunderclap,CalmMind|Modest|252,,4,252,,||,20,,,,|||,,,,,Electric]Gliscor||ToxicOrb|PoisonHeal|Earthquake,KnockOff,StealthRock,Uturn|Impish|252,,252,,4,|||||,,,,,Ground"], + ["Tera Captain|Annihilape|GrassySeed|Defiant|RageFist,DrainPunch,BulkUp,Acrobatics|Impish|252,,152,,104,|||||,,,,,Ghost]Tornadus-Therian||ChoiceScarf|Regenerator|AirSlash,Hurricane,IcyWind,Uturn|Timid|8,,,252,,248|||||,,,,,Flying]Ninetales-Alola||LightClay|SnowWarning|Blizzard,FreezeDry,AuroraVeil,Extrasensory|Timid|56,,,252,,200||,0,,,,|||,,,,,Ice]Quaquaval||AssaultVest|Torrent|AquaStep,BraveBird,Uturn,RapidSpin|Jolly|,252,4,,,252|||||,,,,,Water]Slowbro-Galar||BlackSludge|Regenerator|ShellSideArm,Psychic,CalmMind,TrickRoom|Bold|252,,252,,4,|||||,,,,,Poison]Kingambit||LumBerry|SupremeOverlord|SwordsDance,KowtowCleave,ZenHeadbutt,SuckerPunch|Adamant|248,252,,,8,||,,,,,0|||,,,,,Dark","Rillaboom||ChoiceBand|GrassySurge|GrassyGlide,WoodHammer,KnockOff,DrainPunch|Adamant|248,252,,,,8|||||,,,,,Grass]Sneasler||ChoiceScarf|PoisonTouch|ShadowClaw,Uturn,CloseCombat,Switcheroo|Jolly|80,252,,,,176|||||,,,,,Fighting]Tera Captain|Mesprit|Leftovers|Levitate|PsychicNoise,StealthRock,ThunderWave,KnockOff|Bold|248,,176,,40,44|||||,,,,,Fairy]Gouging Fire||Leftovers|Protosynthesis|HeatCrash,DragonClaw,DragonDance,BurningBulwark|Adamant|252,16,,,108,132|||||,,,,,Fire]Tera Captain|Manaphy|Leftovers|Hydration|TakeHeart,AcidArmor,Scald,StoredPower|Bold|252,,136,20,,100||,0,,,,|||,,,,,Fairy]Sandy Shocks||AssaultVest|Protosynthesis|VoltSwitch,FlashCannon,Discharge,EarthPower|Timid|252,,,8,,248||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Gyarados|Leftovers|Intimidate|Roar,ThunderWave,Waterfall,Earthquake|Careful|252,,,,164,92|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|CalmMind,StoredPower,DragonPulse,Recover|Timid|252,,80,,,176||,0,,,,|||,,,,,Steel]Moltres||HeavyDutyBoots|Pressure|Uturn,Flamethrower,Roost,ScorchingSands|Calm|252,,,,236,20|||||,,,,,Fire]Donphan||Leftovers|Sturdy|StealthRock,RapidSpin,Earthquake,KnockOff|Careful|252,36,,,220,|||||,,,,,Ground]Gholdengo||ChoiceScarf|GoodasGold|Trick,ShadowBall,MakeItRain,Recover|Timid|252,,,156,,100||,0,,,,|||,,,,,Steel]Iron Valiant||BoosterEnergy|QuarkDrive|DestinyBond,CloseCombat,ThunderPunch,SwordsDance|Naive|16,252,,,,240|||||,,,,,Fairy","Tornadus-Therian||LumBerry|Regenerator|DarkPulse,AirSlash,Agility,NastyPlot|Timid|160,,,180,,168||,0,,,,|||,,,,,Flying]Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,Thunderbolt,Trick|Timid|24,,,252,,232||,0,,,,|||,,,,,Steel]Dachsbun||HeavyDutyBoots|WellBakedBody|PlayRough,Roar,Wish,Protect|Impish|252,4,252,,,|||||,,,,,Fairy]Ting-Lu||HeavyDutyBoots|VesselofRuin|ThroatChop,StoneEdge,Earthquake,MeanLook|Adamant|4,252,,,252,|||||,,,,,Dark]Dondozo||ChestoBerry|Unaware|WaveCrash,Earthquake,Yawn,Rest|Impish|248,,252,,8,|||||,,,,,Water]Baxcalibur||ChoiceBand|ThermalExchange|IceShard,IcicleCrash,GlaiveRush,Earthquake|Jolly|8,252,20,,20,208|||||,,,,,Dragon"], + ["Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,IceBeam,FocusBlast,SludgeBomb|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,SwordsDance,Encore|Adamant|144,104,,,12,248|||||,,,,,Water]Klefki||RockyHelmet|Prankster|FoulPlay,Spikes,MagnetRise,ThunderWave|Bold|252,,104,,152,||,0,,,,|||,,,,,Steel]Landorus-Therian||LumBerry|Intimidate|StealthRock,Earthquake,Taunt,Uturn|Adamant|168,56,,,40,244|||||,,,,,Ground]Gurdurr||Eviolite|Guts|DrainPunch,IcePunch,MachPunch,BulkUp|Adamant|252,4,,,252,|||||,,,,,Fighting]Tera Captain|Eelektross|AssaultVest|Levitate|ThunderPunch,TeraBlast,KnockOff,DragonTail|Brave|252,4,,,252,|||||,,,,,Steel","Heatran||ChoiceScarf|FlameBody|Overheat,Flamethrower,FlashCannon,WillOWisp|Timid|84,,,252,,172||,0,,,,|||,,,,,Fire]Tera Captain|Latias|SoulDew|Levitate|Recover,ThunderWave,DragonPulse,MistBall|Timid|248,,8,,,252||,0,,,,|||,,,,,Dragon]Gliscor||ToxicOrb|PoisonHeal|Toxic,Uturn,Earthquake,StealthRock|Impish|252,,64,,,192|||||,,,,,Ground]Thwackey||Eviolite|GrassySurge|GrassyGlide,Uturn,LeechSeed,KnockOff|Impish|248,8,252,,,|||||,,,,,Grass]Greninja-Bond||HeavyDutyBoots|BattleBond|Liquidation,IceBeam,LowKick,Uturn|Naive|,252,,96,,160|||||,,,,,Water]Scizor||HeavyDutyBoots|Technician|Uturn,BulletPunch,CloseCombat,KnockOff|Adamant|248,216,44,,,|||||,,,,,Bug"], + ["Slowking-Galar||RedCard|Regenerator|FocusBlast,Psyshock,TrickRoom,ToxicSpikes|Calm|252,,72,,184,||,0,,,,|||,,,,,Poison]Rotom-Wash||RockyHelmet|Levitate|EerieImpulse,VoltSwitch,HydroPump,PainSplit|Bold|252,,244,,,12||,0,,,,|||,,,,,Electric]Forretress||RedCard|Sturdy|BodyPress,VoltSwitch,GyroBall,Explosion|Sassy|252,,4,,252,||,,,,,0|||,,,,,Bug]Gliscor||ToxicOrb|PoisonHeal|Earthquake,StealthRock,Protect,Uturn|Jolly|244,88,,,,176|||||,,,,,Ground]Tera Captain|GreninjaBond|LifeOrb|BattleBond|Surf,GrassKnot,WaterShuriken,DarkPulse|Timid|16,,,252,,240|||||,,,,,Dark]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Encore,CalmMind|Timid|88,,,252,,168||,0,,,,|S||,,,,,Fairy","Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|TeraBlast,Thunderbolt,Agility,FocusBlast|Jolly|,,,252,4,252||,0,,,,|||,,,,,Ice]Sceptile||SitrusBerry|Overgrow|ShedTail,Acrobatics,SwordsDance,LeafBlade|Jolly|,252,,,4,252|||||,,,,,Grass]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,CalmMind,Rest,EarthPower|Modest|252,,,252,4,||,15,,,,|||,,,,,Stellar]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,StoredPower,TeraBlast,Roost|Bold|252,,252,4,,||,0,,,,|||,,,,,Fighting]Urshifu-Rapid-Strike||PunchingGlove|UnseenFist|SurgingStrikes,CloseCombat,Trailblaze,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Fighting]Politoed||DampRock|Drizzle|RainDance,WeatherBall,IceBeam,Encore|Modest|252,,,252,4,||,0,,,,|||,,,,,Water"], + ["Tera Captain|Sceptile|RedCard|Unburden|ShedTail,LeafStorm,Earthquake,Endure|Hasty|,40,,252,,216|||||,,,,,Ground]Tera Captain|Annihilape|AssaultVest|VitalSpirit|RageFist,DrainPunch,IcePunch,RockTomb|Careful|252,,,,96,160|||||,,,,,Fire]Alomomola||HeavyDutyBoots|Regenerator|Wish,Protect,FlipTurn,IceBeam|Relaxed|,,252,4,252,||,,,,,0|||,,,,,Water]Iron Moth||MirrorHerb|QuarkDrive|FieryDance,SludgeWave,Psychic,Overheat|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Roaring Moon||MuscleBand|Protosynthesis|KnockOff,Outrage,Uturn,DragonDance|Jolly|,252,32,,,224|||||,,,,,Dragon]Donphan||AssaultVest|Sturdy|RapidSpin,IceShard,Earthquake,SeedBomb|Adamant|248,252,8,,,|||||,,,,,Ground","Iron Crown||ChoiceScarf|QuarkDrive|TachyonCutter,Psychic,FocusBlast,VoltSwitch|Timid|64,,,252,,192||,20,,,,|||,,,,,Steel]Rotom-Wash||Leftovers|Levitate|ThunderWave,HydroPump,Thunderbolt,VoltSwitch|Bold|248,,252,,8,||,0,,,,|||,,,,,Electric]Darkrai||WideLens|BadDreams|Hypnosis,DarkPulse,Psyshock,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|Agility,Psychic,DazzlingGleam,FieryDance|Timid|160,,,252,,96||,0,,,,|||,,,,,Fairy]Tera Captain|Cloyster|HeavyDutyBoots|SkillLink|ShellSmash,IcicleSpear,TeraBlast,HydroPump|Rash|,216,,252,,40|||||,,,,,Grass]Hitmonchan||CobaBerry|IronFist|RapidSpin,MachPunch,KnockOff,Encore|Jolly|,252,,,4,252|||||,,,,,Fighting"], + ["Tera Captain|WalkingWake|MysticWater|Protosynthesis|TeraBlast,HydroSteam,DracoMeteor,Flamethrower|Timid|,,,252,64,192||,0,,,,|||,,,,,Electric]Ceruledge||FocusSash|WeakArmor|SwordsDance,BitterBlade,Poltergeist,ShadowSneak|Adamant|,252,,,4,252|||||,,,,,Fire]Hoopa-Unbound||SitrusBerry|Magician|Psyshock,PsychUp,DrainPunch,Substitute|Gentle|248,8,,,252,|||||,,,,,Psychic]Torkoal||HeavyDutyBoots|Drought|RapidSpin,StealthRock,Yawn,Flamethrower|Calm|248,,96,,164,|||||,,,,,Fire]Arbok||BlackSludge|Intimidate|Glare,PsychicFangs,PoisonJab,Toxic|Impish|248,8,252,,,|||||,,,,,Poison]Ting-Lu||AssaultVest|VesselofRuin|StoneEdge,Payback,Earthquake,Ruination|Careful|248,120,32,,108,|||||,,,,,Dark","Landorus||ChestoBerry|SheerForce|StealthRock,EarthPower,Uturn,Rest|Modest|32,,,244,,232|||||,,,,,Ground]Tera Captain|Lokix|LifeOrb|TintedLens|FirstImpression,KnockOff,SuckerPunch,Uturn|Adamant|56,252,,,,200|||||,,,,,Dark]Sneasler||MistySeed|Unburden|SwordsDance,CloseCombat,Acrobatics,Dig|Adamant|240,232,,,,36|||||,,,,,Fighting]Sandslash-Alola||AssaultVest|SlushRush|TripleAxel,KnockOff,Earthquake,RapidSpin|Adamant|248,252,,,8,|||||,,,,,Ice]Weezing-Galar||CustapBerry|MistySurge|SludgeWave,StrangeSteam,Memento,MistyExplosion|Bold|248,,12,,248,||,0,,,,|||,,,,,Poison]Tera Captain|Latias|KeeBerry|Levitate|CalmMind,Surf,DracoMeteor,Recover|Modest|176,,,172,,160||,0,,,,|||,,,,,Water"], + ["Azumarill||ChoiceBand|HugePower|AquaJet,PlayRough,KnockOff,Liquidation|Adamant|248,208,,,52,|||||,,,,,Water]Great Tusk||BoosterEnergy|Protosynthesis|StealthRock,Earthquake,RapidSpin,CloseCombat|Jolly|,4,,,252,252|||||,,,,,Ground]Tera Captain|Kilowattrel|ChoiceSpecs|Competitive|Uturn,Hurricane,Thunderbolt,TeraBlast|Timid|,,4,252,,252|||||,,,,,Dark]Scizor||LifeOrb|Technician|BulletPunch,Uturn,KnockOff,SwordsDance|Adamant|240,248,,,,20|||||,,,,,Bug]Tera Captain|Heatran|Leftovers|FlashFire|FlashCannon,TeraBlast,MagmaStorm,EarthPower|Calm|152,,4,,252,100||,0,,,,|||,,,,,Fairy]Galvantula||FocusSash|CompoundEyes|StickyWeb,Thunder,BugBuzz,Electroweb|Timid|,,4,252,84,168||,0,,,,|||,,,,,Bug","Darkrai||Leftovers|BadDreams|DarkPulse,SludgeBomb,Psychic,Protect|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Urshifu||EjectPack|UnseenFist|SuckerPunch,CloseCombat,PoisonJab,WickedBlow|Jolly|80,252,,,,176|||||,,,,,Fighting]Corviknight||OccaBerry|MirrorArmor|Defog,Uturn,Roost,BodyPress|Impish|252,,220,,,36|||||,,,,,Flying]Pecharunt||AirBalloon|PoisonPuppeteer|MalignantChain,DestinyBond,ShadowBall,PartingShot|Timid|252,,4,,,252||,0,,,,|||,,,,,Poison]Lanturn||ChoiceScarf|VoltAbsorb|VoltSwitch,IceBeam,Scald,FlipTurn|Timid|192,,,64,,252|||||,,,,,Water]Tera Captain|Regidrago|LoadedDice|DragonsMaw|ScaleShot,FireFang,TeraBlast,DragonDance|Adamant|,252,16,,,240|||||,,,,,Electric"], + ["Palafin-Hero||CovertCloak|ZerotoHero|Taunt,JetPunch,IcePunch,CloseCombat|Adamant|60,252,,,,196|||||,,,,,Water]Iron Treads||ChopleBerry|QuarkDrive|RapidSpin,Earthquake,SupercellSlam,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,IcePunch,Agility,Substitute|Jolly|48,252,,,,208|||||,,,,,Fairy]Rotom-Heat||HeavyDutyBoots|Levitate|WillOWisp,Overheat,VoltSwitch,ThunderWave|Timid|252,,,4,,252||,0,,,,|||,,,,,Electric]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,AuraSphere,IceBeam,HealingWish|Timid|32,,,252,,224||,0,,,,|||,,,,,Electric]Mandibuzz||LumBerry|Overcoat|FoulPlay,Uturn,Roost,Toxic|Impish|248,,252,,8,|||||,,,,,Dark","Grafaiai||HeavyDutyBoots|Prankster|Uturn,PartingShot,KnockOff,Encore|Jolly|252,4,,,,252|||||,,,,,Poison]Vaporeon||Leftovers|WaterAbsorb|Scald,AlluringVoice,CalmMind,Wish|Bold|248,,252,8,,||,0,,,,|||,,,,,Water]Tera Captain|Excadrill|AirBalloon|MoldBreaker|Earthquake,IronHead,SwordsDance,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Fire]Toedscruel||YacheBerry|MyceliumMight|LeafStorm,EarthPower,Spore,KnockOff|Hasty|252,,,4,,252|||||,,,,,Ground]Tera Captain|Magnezone|ChoiceBand|Analytic|Explosion,IronHead,SupercellSlam,BodyPress|Adamant|248,252,,,8,|||||,,,,,Flying]Kleavor||ChoiceBand|Sharpness|XScissor,StoneAxe,CloseCombat,DualWingbeat|Adamant|,252,,,4,252|||||,,,,,Bug"], + ["Tyranitar||Leftovers|SandStream|StealthRock,KnockOff,IceBeam,ThunderWave|Docile|252,,,52,188,16|||||,,,,,Rock]Tera Captain|Excadrill|ExpertBelt|MoldBreaker|SwordsDance,HighHorsepower,RapidSpin,TeraBlast|Jolly|,252,96,,,160|||||,,,,,Flying]Mandibuzz||HeavyDutyBoots|Overcoat|FoulPlay,Roost,AirSlash,Uturn|Calm|248,,116,60,68,16|||||,,,,,Dark]Tera Captain|Amoonguss|RockyHelmet|Regenerator|SludgeBomb,Spore,GigaDrain,StunSpore|Bold|252,,252,4,,||,0,,,,|||,,,,,Grass]Clefable||Leftovers|MagicGuard|Moonblast,Flamethrower,Wish,Protect|Bold|252,,244,,12,||,0,,,,|S||,,,,,Fairy]Tauros-Paldea-Aqua||Leftovers|Intimidate|BulkUp,AquaJet,BodyPress,RagingBull|Jolly|,112,244,,,152|||||,,,,,Fighting","Thwackey||Eviolite|GrassySurge|Taunt,GrassyGlide,WoodHammer,Uturn|Adamant|240,252,,,,16|||||,,,,,Grass]Tera Captain|Revavroom|ClearAmulet|Overcoat|ShiftGear,GunkShot,HighHorsepower,TeraBlast|Adamant|16,252,,,,240|||||,,,,,Electric]Tera Captain|Eelektross|ExpertBelt|Levitate|CloseCombat,Uturn,Thunderbolt,KnockOff|Relaxed|248,,252,,8,|||||,,,,,Grass]Great Tusk||PasshoBerry|Protosynthesis|HeavySlam,CloseCombat,HeadlongRush,SupercellSlam|Adamant|248,252,8,,,|||||,,,,,Ground]Iron Boulder||FocusSash|QuarkDrive|ZenHeadbutt,CloseCombat,MightyCleave,Taunt|Adamant|72,252,,,,184|||||,,,,,Rock]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|ZenHeadbutt,IvyCudgel,HornLeech,Uturn|Jolly|80,252,,,,176|||||,,,,,Water"], + ["Palafin-Hero||PunchingGlove|ZerotoHero|BulkUp,DrainPunch,JetPunch,IcePunch|Adamant|192,128,,,132,56|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|Uturn,Hurricane,HeatWave,KnockOff|Timid|248,,,48,120,92|||||,,,,,Flying]Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,DragonPulse,Thunderclap,Discharge|Modest|56,,244,76,24,108||,20,,,,|||,,,,,Poison]Terapagos||KeeBerry|TeraShift|CalmMind,TeraStarstorm,EarthPower,RockPolish|Modest|168,,4,240,,96||,15,,,,|||,,,,,Stellar]Tinkaton||OccaBerry|Pickpocket|Bulldoze,GigatonHammer,ThunderWave,SwordsDance|Adamant|,108,212,,,188|||||,,,,,Fairy]Qwilfish-Hisui||SafetyGoggles|Intimidate|AquaJet,SwordsDance,BarbBarrage,Liquidation|Adamant|224,252,,,4,28|||||,,,,,Dark","Palafin||Leftovers|ZerotoHero|Encore,BulkUp,JetPunch,IcePunch|Impish|252,100,156,,,|||||,,,,,Water]Tera Captain|PorygonZ|ExpertBelt|Download|Discharge,IceBeam,NastyPlot,Agility|Modest|120,,,252,,136||,0,,,,|||,,,,,Grass]Ribombee||FocusSash|ShieldDust|StickyWeb,Moonblast,Uturn,StunSpore|Timid|,,24,252,,232|||||,,,,,Bug]Tera Captain|RagingBolt|ChoiceSpecs|Protosynthesis|VoltSwitch,DracoMeteor,Thunderclap,DragonPulse|Modest|40,,,252,60,156||,20,,,,|||,,,,,Fairy]Donphan||ChoiceBand|Sturdy|RapidSpin,Earthquake,IceSpinner,KnockOff|Adamant|,252,,,8,248|||||,,,,,Ground]Kingambit||ShucaBerry|SupremeOverlord|SwordsDance,SuckerPunch,KowtowCleave,IronHead|Adamant|40,252,92,,,124|||||,,,,,Dark"], + ["Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,Psychic,ShadowBall,VacuumWave|Timid|,,4,252,,252||,0,,,,|||,,,,,Fairy]Garchomp||RockyHelmet|RoughSkin|EarthPower,DracoMeteor,DragonTail,Endure|Modest|40,,248,180,,40|||||,,,,,Dragon]Empoleon||ChopleBerry|Torrent|Surf,FlipTurn,AquaJet,Yawn|Relaxed|252,,232,24,,|||||,,,,,Water]Tera Captain|Ceruledge|MentalHerb|FlashFire|BitterBlade,TeraBlast,ShadowSneak,BulkUp|Adamant|40,136,252,,,80|||||,,,,,Grass]Tera Captain|Tyranitar|RedCard|SandStream|KnockOff,Avalanche,StealthRock,Taunt|Jolly|64,236,,,,208|||||,,,,,Ghost]Weezing-Galar||PayapaBerry|Levitate|StrangeSteam,Flamethrower,ClearSmog,PainSplit|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison","Iron Valiant||LifeOrb|QuarkDrive|Moonblast,ShadowBall,CloseCombat,Psychic|Naive|,4,,252,,252|||||,,,,,Fairy]Garchomp||ChoiceBand|RoughSkin|Earthquake,IronHead,ScaleShot,StoneEdge|Jolly|,252,,,4,252|||||,,,,,Dragon]Tera Captain|Scizor|SitrusBerry|Technician|BulletPunch,CloseCombat,Uturn,SwordsDance|Adamant|172,252,,,,84|||||,,,,,Fire]Tera Captain|Braviary|ChoiceScarf|Defiant|Uturn,CloseCombat,BraveBird,TeraBlast|Adamant|,252,,,4,252|||||,,,,,Flying]Rotom-Wash||SitrusBerry|Levitate|PainSplit,WillOWisp,VoltSwitch,HydroPump|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Uxie||ColburBerry|Levitate|StealthRock,ThunderWave,KnockOff,Uturn|Bold|248,,92,,168,|||||,,,,,Psychic"], + ["Baxcalibur||HeavyDutyBoots|ThermalExchange|GlaiveRush,Earthquake,IceShard,SwordsDance|Jolly|,252,4,,,252|||||,,,,,Dragon]Slowking-Galar||EjectButton|Regenerator|SludgeBomb,FocusBlast,ChillyReception,SlackOff|Modest|248,,,252,8,||,0,,,,|||,,,,,Poison]Tera Captain|Ogerpon|ExpertBelt|Defiant|IvyCudgel,LowKick,RockTomb,SwordsDance|Adamant|,252,,,4,252|||||,,,,,Grass]Slither Wing||RockyHelmet|Protosynthesis|FirstImpression,Uturn,Whirlwind,MorningSun|Impish|248,,252,,8,|||||,,,,,Bug]Forretress||SitrusBerry|Sturdy|GyroBall,ToxicSpikes,StealthRock,RapidSpin|Sassy|248,,8,,252,||,,,,,0|||,,,,,Bug]Hydreigon||LifeOrb|Levitate|DracoMeteor,DarkPulse,FlashCannon,FireBlast|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark","Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,KnockOff,Superpower|Jolly|80,252,16,,,160|||||,,,,,Fire]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|TemperFlare,CloseCombat,RapidSpin,BulkUp|Jolly|248,4,4,,,252|||||,,,,,Fire]Kyurem||HabanBerry|Pressure|DragonDance,IcicleSpear,ScaleShot,BreakingSwipe|Jolly|56,252,28,,28,144|||||,,,,,Dragon]Hatterene||Leftovers|MagicBounce|CalmMind,DrainingKiss,Psyshock,Nuzzle|Bold|252,,252,,4,|||||,,,,,Psychic]Smeargle||MentalHerb|OwnTempo|StickyWeb,StealthRock,BurningBulwark,Encore|Calm|252,,4,,252,||,0,,,,|||,,,,,Normal]Tera Captain|Oricorio|HeavyDutyBoots|Dancer|QuiverDance,RevelationDance,Hurricane,Roost|Timid|248,,188,,,72||,0,,,,|||,,,,,Steel"], + ["Iron Valiant||LifeOrb|QuarkDrive|SpiritBreak,CloseCombat,KnockOff,Encore|Jolly|40,252,8,,,208|||||,,,,,Fairy]Tornadus-Therian||LumBerry|Regenerator|Substitute,Taunt,NastyPlot,BleakwindStorm|Timid|184,,,152,4,168||,0,,,,|||,,,,,Flying]Garchomp||HabanBerry|RoughSkin|Liquidation,PoisonJab,ScaleShot,Spikes|Adamant|,220,,,188,100|||||,,,,,Dragon]Tera Captain|Zarude|ClearAmulet|LeafGuard|Synthesis,KnockOff,PowerWhip,Uturn|Adamant|240,132,60,,,76|||||,,,,,Ghost]Metagross||ChoiceScarf|ClearBody|RockTomb,MeteorMash,BrickBreak,StealthRock|Jolly|,200,,,124,184|||||,,,,,Steel]Morgrem||Eviolite|Prankster|Reflect,LightScreen,ThunderWave,DrainingKiss|Calm|252,,,4,252,||,0,,,,|||,,,,,Dark","Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,Trailblaze,PlayRough,HornLeech|Jolly|64,252,,,,192|||||,,,,,Fire]Tera Captain|Latias|EjectPack|Levitate|FutureSight,DracoMeteor,MistBall,HealingWish|Timid|40,,,252,,216||,0,,,,|||,,,,,Fairy]Iron Treads||BoosterEnergy|QuarkDrive|IceSpinner,Earthquake,IronHead,Megahorn|Jolly|8,252,,,,248|||||,,,,,Ground]Pecharunt||HeavyDutyBoots|PoisonPuppeteer|MalignantChain,ShadowBall,NastyPlot,Recover|Bold|252,,,112,132,12||,0,,,,|||,,,,,Poison]Tera Captain|Kilowattrel|AssaultVest|VoltAbsorb|AirSlash,Endeavor,Uturn,Discharge|Timid|32,,,252,,224|||||,,,,,Fairy]Smeargle||ChoiceScarf|OwnTempo|Glare,StickyWeb,CeaselessEdge,DestinyBond|Jolly|252,4,,,,252||,,,0,,|||,,,,,Normal"], + ["Meowscarada||PunchingGlove|Protean|LowKick,TripleAxel,Uturn,FlowerTrick|Adamant|64,252,,,4,188|||||,,,,,Grass]Chi-Yu||ChoiceScarf|BeadsofRuin|FireBlast,Flamethrower,Overheat,DarkPulse|Modest|176,,4,252,,76||,0,,,,|||,,,,,Dark]Tera Captain|Gholdengo|AirBalloon|GoodasGold|Recover,ShadowBall,FocusBlast,Psyshock|Bold|248,,252,8,,||,0,,,,|||,,,,,Dark]Garchomp||Leftovers|RoughSkin|Spikes,StoneEdge,StealthRock,Earthquake|Jolly|240,,252,,,16|||||,,,,,Dragon]Milotic||HeavyDutyBoots|Competitive|Scald,Recover,Haze,FlipTurn|Calm|248,,8,,252,|||||,,,,,Water]Maushold||WideLens|Technician|TidyUp,PopulationBomb,Encore,LowKick|Jolly|252,36,,,52,168|||||,,,,,Normal","Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,FlipTurn,AquaJet,SacredSword|Jolly|8,40,24,,184,252|||||,,,,,Water]Mamoswine||AssaultVest|ThickFat|Earthquake,IcicleCrash,IceShard,KnockOff|Adamant|8,136,24,,140,200|||||,,,,,Ice]Empoleon||RockyHelmet|Competitive|Surf,FlipTurn,Roost,KnockOff|Sassy|248,,,8,252,|||||,,,,,Water]Tera Captain|IronThorns|BoosterEnergy|QuarkDrive|SupercellSlam,IceBeam,Earthquake,StealthRock|Timid|,,,252,4,252||,23,,,,|||,,,,,Ice]Tera Captain|Latias|Leftovers|Levitate|AlluringVoice,Thunderbolt,Recover,CalmMind|Timid|8,,224,84,,192||,0,,,,|||,,,,,Fairy]Zapdos||RockyHelmet|Static|Discharge,Hurricane,Roost,VoltSwitch|Bold|208,,240,24,,36||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Mew|Leftovers|Synchronize|Psychic,AuraSphere,VacuumWave,NastyPlot|Modest|44,,16,252,,196||,0,,,,|||,,,,,Fighting]Tera Captain|MoltresGalar|SitrusBerry|Berserk|AirSlash,TeraBlast,NastyPlot,Agility|Timid|68,,12,252,,176||,0,,,,|||,,,,,Ground]Rotom-Heat||RockyHelmet|Levitate|VoltSwitch,Overheat,WillOWisp,PainSplit|Bold|248,,252,8,,||,0,,,,|||,,,,,Stellar]Iron Treads||AirBalloon|QuarkDrive|KnockOff,IceSpinner,RapidSpin,StealthRock|Adamant|108,252,,,,148|||||,,,,,Stellar]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,Psychic,ShadowBall,VacuumWave|Modest|184,,,252,4,68||,0,,,,|||,,,,,Stellar]Amoonguss||RockyHelmet|Regenerator|SludgeBomb,GigaDrain,Spore,Synthesis|Calm|252,,,4,252,||,0,,,,|||,,,,,Stellar","Meowscarada||ChoiceBand|Protean|KnockOff,TripleAxel,FlowerTrick,Uturn|Jolly|56,252,,,,200|||||,,,,,Grass]Tera Captain|RagingBolt|EjectPack|Protosynthesis|Thunderclap,DracoMeteor,VoltSwitch,Discharge|Modest|252,,,252,4,||,20,,,,|||,,,,,Fairy]Tera Captain|Chandelure|ChoiceScarf|FlameBody|Flamethrower,Overheat,EnergyBall,Memento|Timid|8,,,252,,248||,0,,,,|||,,,,,Fire]Ting-Lu||MentalHerb|VesselofRuin|Memento,StealthRock,StoneEdge,Earthquake|Impish|252,164,92,,,|||||,,,,,Dark]Hawlucha||WhiteHerb|Unburden|SwordsDance,CloseCombat,Acrobatics,BraveBird|Jolly|16,252,,,,240|||||,,,,,Fighting]Araquanid||Leftovers|WaterBubble|Liquidation,StickyWeb,Infestation,Protect|Adamant|252,120,92,,36,8|||||,,,,,Water"], + ["Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,IceBeam,HydroPump,Encore|Timid|,,116,252,,140||,0,,,,|||,,,,,Ice]Tera Captain|GreatTusk|ChoiceScarf|Protosynthesis|CloseCombat,TeraBlast,HeadlongRush,IceSpinner|Jolly|24,252,,,,232|||||,,,,,Ghost]Rotom-Heat||HeavyDutyBoots|Levitate|VoltSwitch,WillOWisp,ThunderWave,Overheat|Calm|252,,4,,252,||,0,,,,|||,,,,,Electric]Clodsire||BlackSludge|WaterAbsorb|Earthquake,Recover,Spikes,Toxic|Impish|252,,252,,4,|||||,,,,,Poison]Enamorus||ChoiceScarf|Contrary|HealingWish,Moonblast,AlluringVoice,EarthPower|Timid|32,,,252,,224||,0,,,,|||,,,,,Fairy]Kingambit||BlackGlasses|SupremeOverlord|SuckerPunch,SwordsDance,KowtowCleave,IronHead|Adamant|252,252,4,,,|||||,,,,,Dark","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Trailblaze,HornLeech,SwordsDance|Jolly|32,252,,,,224|||||,,,,,Water]Garchomp||RockyHelmet|RoughSkin|StealthRock,Earthquake,StoneEdge,DragonTail|Jolly|252,,120,,,136|||||,,,,,Dragon]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,ThunderWave,Recover|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel]Tera Captain|Lucario|SilkScarf|Justified|SwordsDance,CloseCombat,Earthquake,ExtremeSpeed|Adamant|252,252,4,,,|||||,,,,,Normal]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Timid|252,,120,,,136|||||,,,,,Flying]Tentacruel||YacheBerry|ClearBody|SludgeBomb,GigaDrain,RapidSpin,FlipTurn|Calm|252,,,4,252,|||||,,,,,Water"], + ["Rotom-Mow||AbilityShield|Levitate|LeafStorm,VoltSwitch,WillOWisp,PainSplit|Bold|248,,92,24,,144||,0,,,,|||,,,,,Electric]Garchomp||CustapBerry|RoughSkin|SwordsDance,Earthquake,ScaleShot,Endure|Jolly|112,252,,,,144|||||,,,,,Dragon]Tera Captain|Keldeo|ChoiceSpecs|Justified|SecretSword,Surf,VacuumWave,HydroPump|Modest|48,,4,252,,204||,0,,,,|||,,,,,Water]Tera Captain|Mesprit|SitrusBerry|Levitate|KnockOff,PsychicNoise,Uturn,PainSplit|Careful|248,,56,,196,|||||,,,,,Dark]Weavile||HeavyDutyBoots|Pressure|KnockOff,TripleAxel,IceShard,LowKick|Jolly|120,252,,,,136|||||,,,,,Dark]Gholdengo||AirBalloon|GoodasGold|MakeItRain,Hex,ThunderWave,Recover|Calm|248,,,,100,160||,0,,,,|||,,,,,Steel","Fezandipiti||BlackSludge|ToxicChain|Roost,CalmMind,Moonblast,HeatWave|Modest|252,,,72,152,32||,0,,,,|||,,,,,Poison]Tera Captain|Milotic|FlameOrb|MarvelScale|AlluringVoice,Recover,Scald,Haze|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Tera Captain|Excadrill|ChoiceScarf|MoldBreaker|Earthquake,StealthRock,RockSlide,XScissor|Jolly|,252,64,,,192|||||,,,,,Ground]Terapagos||RockyHelmet|TeraShift|BodyPress,IceBeam,EarthPower,StealthRock|Bold|252,,252,,4,||,15,,,,|||,,,,,Stellar]Latios||KasibBerry|Levitate|Recover,CalmMind,DragonPulse,ShadowBall|Timid|96,,,172,,240||,0,,,,|||,,,,,Dragon]Sableye||Leftovers|Prankster|WillOWisp,Recover,KnockOff,DrainPunch|Impish|252,,252,,4,|||||,,,,,Dark"], + ["Tera Captain|IronMoth|LifeOrb|QuarkDrive|FieryDance,Overheat,TeraBlast,SludgeWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Zarude||OccaBerry|LeafGuard|KnockOff,PowerWhip,Uturn,Taunt|Jolly|80,252,,,,176|||||,,,,,Dark]Tinkaton||RockyHelmet|Pickpocket|SwordsDance,GigatonHammer,IceHammer,Bulldoze|Jolly|248,232,,,,28|||||,,,,,Fairy]Great Tusk||BoosterEnergy|Protosynthesis|HeadSmash,HeadlongRush,IceSpinner,RapidSpin|Jolly|80,252,,,,176|||||,,,,,Ground]Tera Captain|Mesprit|SitrusBerry|Levitate|StealthRock,ThunderWave,IceBeam,KnockOff|Calm|252,,,92,156,8|||||,,,,,Fairy]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,Taunt,Hurricane,FocusBlast|Timid|140,,,164,36,168||,0,,,,|||,,,,,Flying","Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Toxic,PsychicFangs,Protect,HighHorsepower|Careful|248,,8,,252,|||||,,,,,Fairy]Slowking-Galar||AssaultVest|Regenerator|GunkShot,IceBeam,Surf,Psychic|Sassy|248,4,236,4,16,|||||,,,,,Poison]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,Uturn,PowerWhip,Encore|Jolly|80,252,,,,176|||||,,,,,Water]Tera Captain|Heatran|AssaultVest|FlashFire|EarthPower,MagmaStorm,HeavySlam,TeraBlast|Quiet|248,8,,252,,|||||,,,,,Fairy]Mandibuzz||SitrusBerry|BigPecks|Uturn,Defog,FoulPlay,Roost|Careful|248,,8,,252,|||||,,,,,Dark]Weavile||ChoiceBand|Pickpocket|TripleAxel,PoisonJab,IceShard,BrickBreak|Adamant|,252,84,,,172|||||,,,,,Dark"], + ["Tera Captain|Latias|Leftovers|Levitate|Substitute,CalmMind,Psyshock,DrainingKiss|Timid|252,,,104,,152||,0,,,,|||,,,,,Electric]Rotom-Heat||HeavyDutyBoots|Levitate|VoltSwitch,WillOWisp,Overheat,PainSplit|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Iron Treads||SoftSand|QuarkDrive|HighHorsepower,RapidSpin,IceSpinner,IronHead|Jolly|72,252,,,,184|||||,,,,,Ground]Meowscarada||YacheBerry|Protean|KnockOff,FlowerTrick,Uturn,BrickBreak|Adamant|92,252,,,,164|||||,,,,,Grass]Tera Captain|Lucario|SilkScarf|Justified|SwordsDance,ExtremeSpeed,CloseCombat,Earthquake|Adamant|,252,40,,,216|||||,,,,,Normal]Primarina||RockyHelmet|Torrent|FlipTurn,IceBeam,Moonblast,Surf|Bold|252,,248,,,8|||||,,,,,Water","Weavile||HeavyDutyBoots|Pickpocket|KnockOff,TripleAxel,IceShard,PoisonJab|Jolly|16,252,,,,240|||||,,,,,Dark]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,Uturn,CloseCombat,ThunderPunch|Adamant|148,252,,,,108|||||,,,,,Water]Tera Captain|Armarouge|AssaultVest|WeakArmor|ArmorCannon,Psyshock,EnergyBall,ClearSmog|Modest|120,,,252,,136||,0,,,,|S||,,,,,Flying]Forretress||EjectButton|Sturdy|RapidSpin,StealthRock,VoltSwitch,BodyPress|Bold|252,,180,,76,|||||,,,,,Bug]Slowking-Galar||ColburBerry|Regenerator|ThunderWave,BrickBreak,ChillyReception,SludgeBomb|Sassy|252,,16,,240,||,,,,,0|||,,,,,Poison]Grafaiai||AirBalloon|Prankster|Encore,PartingShot,SuperFang,PoisonJab|Adamant|248,,,,56,204|||||,,,,,Poison"], + ["Garchomp||LifeOrb|RoughSkin|Earthquake,ScaleShot,Flamethrower,StealthRock|Naive|,252,,4,,252|||||,,,,,Dragon]Tera Captain|IronHands|AssaultVest|QuarkDrive|DrainPunch,Earthquake,HeavySlam,FirePunch|Careful|4,,252,,252,|||||,,,,,Poison]Tera Captain|Polteageist|SpellTag|WeakArmor|ShadowBall,TeraBlast,StrengthSap,ShellSmash|Modest|,,,252,4,252||,0,,,,|||,,,,,Fairy]Volbeat||RockyHelmet|Prankster|Uturn,Encore,ThunderWave,LightScreen|Impish|252,,252,,4,|||||,,,,,Bug]Mandibuzz||CovertCloak|BigPecks|Uturn,KnockOff,Defog,Roost|Careful|248,,8,,252,|||||,,,,,Dark]Primarina||ChoiceScarf|LiquidVoice|FlipTurn,Moonblast,PsychicNoise,ShadowBall|Timid|,,,252,4,252|||||,,,,,Water","Darkrai||FocusSash|BadDreams|DarkPulse,IceBeam,SludgeBomb,Hypnosis|Timid|120,,,252,,136||,0,,,,|S||,,,,,Dark]Tera Captain|Infernape|ChoiceBand|IronFist|ThunderPunch,CloseCombat,MachPunch,Uturn|Jolly|48,252,,,,208|||S||,,,,,Electric]Tera Captain|Mimikyu|SpellTag|Disguise|SwordsDance,ShadowSneak,PlayRough,ShadowClaw|Adamant|,252,116,,,140|||S||,,,,,Ghost]Swampert||Leftovers|Torrent|StealthRock,Earthquake,FlipTurn,Roar|Impish|252,4,252,,,|||S||,,,,,Water]Slowking-Galar||HeavyDutyBoots|Regenerator|SludgeBomb,Psyshock,Toxic,ChillyReception|Calm|252,,,4,252,||,0,,,,|S||,,,,,Poison]Forretress||Leftovers|Sturdy|Spikes,RapidSpin,IceSpinner,VoltSwitch|Relaxed|252,4,252,,,|||||,,,,,Bug"], + ["Palafin-Hero||YacheBerry|ZerotoHero|BulkUp,JetPunch,DrainPunch,ThroatChop|Adamant|248,116,,,144,|||||,,,,,Water]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,Outrage,RagingFury,MorningSun|Adamant|32,252,4,,,220|||||,,,,,Fire]Tera Captain|Rhyperior|Leftovers|SolidRock|StealthRock,Earthquake,HeatCrash,Protect|Adamant|248,24,236,,,|||||,,,,,Water]Weavile||ClearAmulet|Pressure|SwordsDance,Trailblaze,KnockOff,IcicleCrash|Jolly|48,252,,,,208|||||,,,,,Dark]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,EarthPower,DarkPulse,RapidSpin|Calm|252,,,120,136,|||||,,,,,Stellar]Tera Captain|ThundurusTherian|ChoiceScarf|VoltAbsorb|Thunderbolt,DarkPulse,FocusBlast,Uturn|Timid|64,,,252,,192|||||,,,,,Fighting","Tera Captain|Dudunsparce|Leftovers|Rattled|Roost,Coil,BodySlam,Earthquake|Careful|36,,252,,220,|||||,,,,,Fairy]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|Uturn,SurgingStrikes,CloseCombat,AquaJet|Jolly|48,252,,,,208|||||,,,,,Water]Iron Treads||PasshoBerry|QuarkDrive|RapidSpin,Earthquake,StoneEdge,StealthRock|Jolly|40,252,,,,216|||||,,,,,Ground]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,HydroPump,FlipTurn,Taunt|Timid|92,,,252,,164|||||,,,,,Ice]Overqwil||ShucaBerry|Intimidate|ToxicSpikes,Taunt,Haze,Crunch|Careful|248,,8,,252,|||||,,,,,Dark]Decidueye||OccaBerry|LongReach|Trailblaze,SwordsDance,Poltergeist,Roost|Jolly|56,252,,,,200|||||,,,,,Grass"], + ["Greninja-Bond||RoseliBerry|BattleBond|ToxicSpikes,DarkPulse,IceBeam,Extrasensory|Timid|72,,,252,,184|||||,,,,,Water]Garchomp||HabanBerry|RoughSkin|ScaleShot,BrickBreak,SwordsDance,Earthquake|Jolly|176,252,,,,80|||S||,,,,,Dragon]Tera Captain|Diancie|Leftovers|ClearBody|CalmMind,DrainingKiss,DiamondStorm,StoredPower|Sassy|252,,4,,252,|||S||,,,,,Grass]Uxie||Leftovers|Levitate|FoulPlay,StealthRock,ThunderWave,Uturn|Impish|252,,252,,4,|||||,,,,,Psychic]Terapagos||Leftovers|TeraShift|RapidSpin,CalmMind,TeraStarstorm,EarthPower|Modest|120,,,252,4,132|||||,,,,,Stellar]Dusknoir||ColburBerry|Pressure|WillOWisp,ShadowSneak,BrickBreak,PainSplit|Relaxed|252,4,252,,,|||S||,,,,,Ghost","Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,Substitute,LeechSeed,Glare|Timid|184,,,88,4,232||,0,,,,|||,,,,,Poison]Quaquaval||LumBerry|Moxie|AquaStep,CloseCombat,RapidSpin,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Water]Zapdos||ChartiBerry|Static|Discharge,Hurricane,MetalSound,Roost|Modest|248,,,40,84,136||,0,,,,|||,,,,,Electric]Grimmsnarl||LightClay|Prankster|SpiritBreak,Reflect,ThunderWave,LightScreen|Careful|248,,8,,252,|||||,,,,,Dark]Gouging Fire||ChoiceScarf|Protosynthesis|HeatCrash,Outrage,IronHead,DragonClaw|Adamant|120,252,,,,136|||||,,,,,Fire]Jirachi||ShucaBerry|SereneGrace|IronHead,IcePunch,ThunderWave,Wish|Adamant|248,124,,,,136|||||,,,,,Steel"], + ["Tera Captain|Latias|MirrorHerb|Levitate|Recover,CalmMind,StoredPower,Thunderbolt|Timid|252,,,80,,176||,0,,,,|||,,,,,Electric]Palafin-Hero||AssaultVest|ZerotoHero|JetPunch,CloseCombat,IcePunch,FlipTurn|Adamant|32,252,,,204,20|||||,,,,,Normal]Meowscarada||ChoiceScarf|Protean|TripleAxel,KnockOff,ThunderPunch,Uturn|Jolly|104,252,,,,152|||||,,,,,Normal]Tinkaton||Leftovers|MoldBreaker|StealthRock,Encore,KnockOff,GigatonHammer|Careful|252,4,,,252,|||||,,,,,Normal]Iron Hands||ShucaBerry|QuarkDrive|Substitute,FocusPunch,SupercellSlam,IcePunch|Adamant|,252,108,,148,|||||,,,,,Normal]Donphan||HeavyDutyBoots|Sturdy|RapidSpin,Earthquake,IceShard,Roar|Adamant|248,252,,,8,|||||,,,,,Normal","Tera Captain|Latias|SitrusBerry|Levitate|DragonDance,Earthquake,Recover,Outrage|Adamant|,252,236,,,20|||||,,,,,Electric]Glimmora||BlackSludge|ToxicDebris|MortalSpin,SludgeBomb,SpikyShield,EarthPower|Bold|252,,252,4,,|||||,,,,,Rock]Mimikyu||RockyHelmet|Disguise|WillOWisp,Curse,PainSplit,DrainPunch|Impish|252,4,252,,,|||S||,,,,,Ghost]Palafin||ChoiceBand|ZerotoHero|ZenHeadbutt,DrainPunch,JetPunch,ThroatChop|Jolly|,252,,,4,252|||||,,,,,Water]Empoleon||EjectButton|Competitive|Roost,KnockOff,ChillingWater,Yawn|Calm|248,,,,252,8|||||,,,,,Water]Iron Jugulis||ChoiceScarf|QuarkDrive|FireBlast,DarkPulse,Uturn,AirSlash|Timid|,,,252,4,252|||||,,,,,Dark"], + ["Tera Captain|Gengar|FocusSash|CursedBody|NastyPlot,SludgeWave,Thunderbolt,DazzlingGleam|Timid|64,,,252,,192||,0,,,,|||,,,,,Electric]Tera Captain|Espathra|Leftovers|SpeedBoost|Protect,CalmMind,TeraBlast,LuminaCrash|Jolly|,,64,252,,192|||||,,,,,Electric]Landorus-Therian||LumBerry|Intimidate|Earthquake,SmackDown,Fly,BulkUp|Jolly|,252,48,,,208|||||,,,,,Ground]Appletun||RockyHelmet|ThickFat|IronDefense,DragonPulse,Recover,BodyPress|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel]Kingambit||AssaultVest|SupremeOverlord|SuckerPunch,KowtowCleave,IronHead,ZenHeadbutt|Adamant|252,252,4,,,|||||,,,,,Dark]Kleavor||FocusSash|Sharpness|SwordsDance,Trailblaze,StoneAxe,XScissor|Jolly|,252,,,4,252|||||,,,,,Bug","Garchomp||ChoiceSpecs|RoughSkin|DracoMeteor,EarthPower,Surf,DragonPulse|Timid|16,,,252,,240||,0,,,,|||,,,,,Dragon]Tera Captain|UrshifuRapidStrike|ChoiceScarf|UnseenFist|SurgingStrikes,CloseCombat,Uturn,AquaJet|Adamant|240,252,,,,16|||||,,,,,Fighting]Corviknight||Leftovers|MirrorArmor|Roost,BraveBird,BodyPress,Defog|Impish|248,,140,,,120|||||,,,,,Flying]Tera Captain|Arcanine|Leftovers|Intimidate|MorningSun,WillOWisp,TeraBlast,Flamethrower|Bold|248,,252,,,8||,0,,,,|||,,,,,Water]Florges||ChoiceScarf|FlowerVeil|AlluringVoice,Trick,Synthesis,CalmMind|Calm|236,,,,224,48||,0,,,,|||,,,,,Fairy]Overqwil||AssaultVest|PoisonPoint|LashOut,BarbBarrage,Liquidation,AquaJet|Careful|248,4,,,252,4|||||,,,,,Dark"], + ["Slowking||ColburBerry|Regenerator|PsychicNoise,Scald,ChillyReception,ThunderWave|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Talonflame||HeavyDutyBoots|GaleWings|DualWingbeat,Defog,Roost,Uturn|Jolly|24,252,,,,232|||||,,,,,Fire]Sneasler||ProtectivePads|PoisonTouch|DireClaw,CloseCombat,ThroatChop,Uturn|Jolly|,252,80,,,176|||||,,,,,Fighting]Iron Treads||SoftSand|QuarkDrive|StealthRock,Earthquake,IceSpinner,VoltSwitch|Jolly|,252,,,48,208|||||,,,,,Ground]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Discharge,DracoMeteor,Earthquake,VoltSwitch|Sassy|252,,,4,252,|||||,,,,,Dragon]Dachsbun||Leftovers|AromaVeil|Wish,Protect,Yawn,BodyPress|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy","Meowscarada||HeavyDutyBoots|Protean|KnockOff,FlowerTrick,PowerGem,TripleAxel|Jolly|,252,,4,,252|||||,,,,,Grass]Gengar||ChoiceScarf|CursedBody|ShadowBall,SludgeWave,EnergyBall,Thunderbolt|Timid|,,4,252,,252||,0,,,,|||,,,,,Ghost]Landorus-Therian||Leftovers|Intimidate|CalmMind,EarthPower,SludgeWave,Psychic|Bold|248,,24,,28,208||,0,,,,|||,,,,,Ground]Tera Captain|Quaquaval|YacheBerry|Moxie|BulkUp,AquaStep,KnockOff,IceSpinner|Adamant|4,252,,,,252|||||,,,,,Dragon]Heatran||ShucaBerry|FlameBody|StealthRock,Overheat,FlashCannon,EarthPower|Modest|248,,20,116,56,68||,0,,,,|||,,,,,Fire]Bellibolt||RockyHelmet|Static|VoltSwitch,MuddyWater,SlackOff,Toxic|Bold|248,,252,,8,||,0,,,,|||,,,,,Electric"], + ["Slowking-Galar||ShucaBerry|Regenerator|Psychic,SludgeBomb,Flamethrower,ChillyReception|Sassy|252,,252,,4,||,0,,,,0|||,,,,,Poison]Tera Captain|Alomomola|AssaultVest|Regenerator|FlipTurn,Scald,PlayRough,MirrorCoat|Sassy|252,,4,,252,|||||,,,,,Grass]Moltres||ChoiceSpecs|FlameBody|Flamethrower,Hurricane,ScorchingSands,Overheat|Timid|24,,,252,,232||,0,,,,|||,,,,,Fire]Meowscarada||ChoiceScarf|Protean|Uturn,TripleAxel,KnockOff,Spikes|Jolly|8,252,,,,248|||||,,,,,Grass]Iron Treads||BoosterEnergy|QuarkDrive|EarthPower,Megahorn,SteelBeam,RapidSpin|Hasty|,96,,160,,252|||||,,,,,Ground]Tera Captain|RagingBolt|AirBalloon|Protosynthesis|DracoMeteor,Thunderclap,TeraBlast,CalmMind|Modest|240,,248,4,,16||,20,,,,|||,,,,,Flying","Tera Captain|GreatTusk|ChoiceBand|Protosynthesis|IceSpinner,HeadlongRush,RockSlide,CloseCombat|Adamant|4,252,,,,252|||||,,,,,Dragon]Greninja||ChoiceSpecs|Protean|IceBeam,Surf,DarkPulse,GrassKnot|Modest|,,,252,4,252||,0,,,,|||,,,,,Water]Scizor||RockyHelmet|LightMetal|CloseCombat,KnockOff,Uturn,LightScreen|Impish|248,,244,,,16|||||,,,,,Bug]Dragalge||ChoiceSpecs|Adaptability|DracoMeteor,SludgeWave,FlipTurn,DragonPulse|Modest|252,,4,252,,|||||,,,,,Poison]Tera Captain|WoChien|Leftovers|TabletsofRuin|LeechSeed,Ruination,KnockOff,Protect|Careful|252,,40,,216,|||||,,,,,Dark]Glimmet||Eviolite|Corrosion|Toxic,PowerGem,StealthRock,Spikes|Calm|212,,,,252,44||,0,,,,|||,,,,,Rock"], + ["Tera Captain|GreninjaBond|LifeOrb|BattleBond|Surf,DarkPulse,IceBeam,WaterShuriken|Timid|24,,,252,,232|||||,,,,,Water]Garchomp||Leftovers|RoughSkin|StealthRock,Earthquake,ScaleShot,Surf|Jolly|248,20,,,,240|||||,,,,,Dragon]Enamorus||HeavyDutyBoots|CuteCharm|CalmMind,Agility,Moonblast,EarthPower|Timid|8,,,252,,248||,0,,,,|||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,HornLeech,PlayRough,Encore|Jolly|40,252,,,,216|||||,,,,,Fire]Jirachi||Leftovers|SereneGrace|IronHead,IcyWind,ThunderWave,Wish|Docile|248,,,,236,24|||||,,,,,Steel]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,Discharge,VoltSwitch,Trick|Modest|96,,,252,,160||,0,,,,|||,,,,,Electric","Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,KnockOff,IcePunch|Jolly|,252,,,4,252|||||,,,,,Fairy]Landorus-Therian||AssaultVest|Intimidate|StoneEdge,Uturn,Earthquake,RockTomb|Careful|104,152,,,252,||,,,,,18|||,,,,,Ground]Regidrago||RoseliBerry|DragonsMaw|IceFang,DragonDance,Earthquake,DragonClaw|Adamant|,252,,,4,252|||||,,,,,Dragon]Cinderace||PasshoBerry|Libero|PyroBall,Uturn,CourtChange,WillOWisp|Jolly|,4,,,252,252|||||,,,,,Fire]Tentacruel||AirBalloon|LiquidOoze|Surf,ToxicSpikes,FlipTurn,Toxic|Calm|252,,4,,252,|||||,,,,,Water]Tera Captain|Mismagius|SalacBerry|Levitate|DrainingKiss,Substitute,NastyPlot,ShadowBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|RagingBolt|MentalHerb|Protosynthesis|Thunderbolt,DracoMeteor,CalmMind,TeraBlast|Modest|88,,160,252,,8||,20,,,,|||,,,,,Fairy]Ribombee||ChoiceScarf|SweetVeil|StickyWeb,Moonblast,BugBuzz,Uturn|Timid|64,,,252,,192|||||,,,,,Bug]Rotom-Heat||HeavyDutyBoots|Levitate|WillOWisp,PainSplit,Overheat,VoltSwitch|Bold|132,,252,116,,8||,0,,,,|||,,,,,Electric]Slowking||AssaultVest|Regenerator|Psychic,Blizzard,FutureSight,FireBlast|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Cyclizar||HeavyDutyBoots|Regenerator|Taunt,ShedTail,RapidSpin,Overheat|Timid|248,,,,44,216|||||,,,,,Dragon]Tera Captain|Flygon|RockyHelmet|Levitate|StealthRock,Earthquake,Uturn,FireBlast|Timid|,,240,120,,148|||||,,,,,Steel","Iron Valiant||AssaultVest|QuarkDrive|SpiritBreak,KnockOff,CloseCombat,ShadowSneak|Adamant|,252,,,12,244|||||,,,,,Ground]Rotom-Heat||Leftovers|Levitate|EerieImpulse,PainSplit,VoltSwitch,WillOWisp|Calm|248,,8,,252,||,0,,,,|||,,,,,Electric]Houndstone||Leftovers|Fluffy|Roar,WillOWisp,BodyPress,ShadowSneak|Careful|248,,8,,252,|||||,,,,,Fairy]Garchomp||LumBerry|RoughSkin|Substitute,SwordsDance,Earthquake,ScaleShot|Jolly|16,252,,,,240|||||,,,,,Flying]Tentacruel||BlackSludge|ClearBody|ToxicSpikes,RapidSpin,KnockOff,FlipTurn|Careful|248,,8,,252,|||||,,,,,Ghost]Tera Captain|Ogerpon|ChoiceBand|Defiant|IvyCudgel,Uturn,PlayRough,KnockOff|Jolly|80,252,,,,176|||||,,,,,Grass"], + ["Tera Captain|SandyShocks|Leftovers|Protosynthesis|IronDefense,EarthPower,Thunderbolt,TeraBlast|Modest|232,,,248,,28||,0,,,,|||,,,,,Fairy]Tornadus-Therian||HeavyDutyBoots|Regenerator|Taunt,Hurricane,KnockOff,HeatWave|Timid|,,120,136,,252|||||,,,,,Flying]Dudunsparce||Leftovers|SereneGrace|Glare,Substitute,Coil,Headbutt|Impish|,96,252,,,160|||||,,,,,Normal]Tera Captain|Jirachi|Leftovers|SereneGrace|ThunderWave,Encore,IronHead,Wish|Jolly|248,,84,,,176|||||,,,,,Flying]Iron Valiant||BoosterEnergy|QuarkDrive|Encore,SwordsDance,CloseCombat,KnockOff|Jolly|16,252,,,,240|||||,,,,,Fairy]Samurott-Hisui||ChoiceBand|Sharpness|CeaselessEdge,RazorShell,SuckerPunch,SacredSword|Adamant|160,248,,,,100|||||,,,,,Water","Tera Captain|Annihilape|Leftovers|InnerFocus|RageFist,DrainPunch,BulkUp,Taunt|Adamant|248,252,,,8,|||||,,,,,Fairy]Roaring Moon||BoosterEnergy|Protosynthesis|Acrobatics,KnockOff,Earthquake,DragonDance|Jolly|32,220,,,4,252|||||,,,,,Steel]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,Trailblaze,HornLeech,Encore|Adamant|28,252,,,,228|||||,,,,,Fire]Lanturn||ChoiceScarf|VoltAbsorb|VoltSwitch,Scald,IceBeam,Discharge|Timid|,,,252,16,240||,0,,,,|||,,,,,Flying]Corviknight||Leftovers|Pressure|Defog,Uturn,Roost,BraveBird|Impish|248,,184,,68,8|||||,,,,,Ground]Tera Captain|Dudunsparce|ChopleBerry|SereneGrace|StealthRock,Roost,BodySlam,DragonTail|Careful|248,,4,,252,4|||||,,,,,Poison"], + ["Ursaluna-Bloodmoon||Leftovers|MindsEye|BloodMoon,Moonlight,EarthPower,Substitute|Bold|252,,252,4,,||,0,,,,|||,,,,,Ground]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|Superpower,IvyCudgel,PowerWhip,SwordsDance|Jolly|108,252,,,,148|||||,,,,,Rock]Dewgong||Leftovers|ThickFat|Whirlpool,PerishSong,Protect,FlipTurn|Bold|244,,252,,12,|||||,,,,,Water]Tera Captain|Armarouge|CustapBerry|WeakArmor|DestinyBond,ArmorCannon,EnergyBall,Endure|Timid|,,,252,40,216||,0,,,,|||,,,,,Normal]Roaring Moon||HeavyDutyBoots|Protosynthesis|Tailwind,Uturn,KnockOff,Earthquake|Adamant|24,252,,,,232|||||,,,,,Dragon]Enamorus-Therian||BabiriBerry|Overcoat|IronDefense,CalmMind,DrainingKiss,EarthPower|Calm|248,,8,,252,||,0,,,,|||,,,,,Fairy","Tera Captain|Landorus|LifeOrb|SheerForce|EarthPower,SludgeWave,FocusBlast,StealthRock|Timid|24,,,252,,232||,0,,,,|||,,,,,Steel]Hitmontop||ExpertBelt|Technician|TripleAxel,CloseCombat,MachPunch,Earthquake|Adamant|248,252,,,8,|||||,,,,,Fighting]Primarina||AssaultVest|Torrent|Moonblast,Surf,FlipTurn,IceBeam|Modest|252,,,252,4,|||||,,,,,Water]Tera Captain|Bisharp|Eviolite|Defiant|StealthRock,ThroatChop,IronHead,Taunt|Naughty|252,252,,4,,|||||,,,,,Fairy]Magnezone||ChopleBerry|Analytic|FlashCannon,VoltSwitch,Thunderbolt,Protect|Modest|252,,4,252,,||,0,,,,|||,,,,,Electric]Darkrai||LifeOrb|BadDreams|DarkPulse,IceBeam,Taunt,NastyPlot|Timid|48,,,252,,208||,0,,,,|||,,,,,Dark"], + ["Skarmory||RockyHelmet|Sturdy|BraveBird,Roost,BodyPress,Spikes|Impish|252,,232,,24,|||||,,,,,Steel]Brambleghast||Leftovers|WindRider|Poltergeist,LeechSeed,Protect,SeedBomb|Jolly|252,4,40,,,212|||||,,,,,Grass]Volcanion||ChoiceScarf|WaterAbsorb|SteamEruption,Overheat,SludgeWave,WillOWisp|Timid|20,,,252,,236||,0,,,,|||,,,,,Fire]Ting-Lu||Leftovers|VesselofRuin|ThroatChop,StealthRock,Whirlwind,Earthquake|Adamant|252,32,24,,200,|||||,,,,,Dark]Ditto||ChoiceScarf|Imposter|Transform|Impish|252,4,252,,,||,30,,,,|||,,,,,Normal]Annihilape||Leftovers|VitalSpirit|Substitute,BulkUp,DrainPunch,RageFist|Impish|252,48,16,,192,|||||,,,,,Water","Chi-Yu||HeavyDutyBoots|BeadsofRuin|DarkPulse,Overheat,LavaPlume,Taunt|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tornadus-Therian||ChoiceScarf|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Timid|40,,,252,,216|||||,,,,,Flying]Metagross||HeavyDutyBoots|ClearBody|MeteorMash,KnockOff,Earthquake,BulletPunch|Adamant|152,252,,,,104|||||,,,,,Steel]Tera Captain|Quaquaval|Leftovers|Moxie|Roost,AquaStep,SwordsDance,Taunt|Adamant|220,136,,,,152|||||,,,,,Electric]Tera Captain|Gardevoir|Leftovers|Synchronize|CalmMind,Moonblast,DrainingKiss,FocusBlast|Modest|248,,28,96,,136||,0,,,,|||,,,,,Grass]Sandy Shocks||BoosterEnergy|Protosynthesis|MetalSound,Thunderbolt,EarthPower,StealthRock|Timid|56,,,204,,248||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Ribombee|ChoiceSpecs|ShieldDust|Moonblast,PsychicNoise,BugBuzz,Uturn|Timid|,,,252,4,252|||||,,,,,Ground]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,ThunderPunch,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Sandy Shocks||BoosterEnergy|Protosynthesis|Thunderbolt,VoltSwitch,EarthPower,Spikes|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,FocusBlast,Recover|Modest|252,,,252,,4||,0,,,,|||,,,,,Steel]Okidogi||MuscleBand|ToxicChain|DrainPunch,KnockOff,PoisonJab,PsychicFangs|Jolly|80,252,,,,176|||||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,IceBeam,CalmMind,Recover|Timid|252,,,80,,176||,0,,,,|||,,,,,Electric","Tera Captain|Bisharp|Eviolite|Defiant|SuckerPunch,SwordsDance,IronHead,ThroatChop|Adamant|252,252,,,4,|||||,,,,,Ghost]Tornadus-Therian||LifeOrb|Regenerator|NastyPlot,BleakwindStorm,GrassKnot,HeatWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Flying]Weezing-Galar||RockyHelmet|Levitate|SludgeBomb,WillOWisp,PainSplit,FireBlast|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,Trailblaze,IvyCudgel,KnockOff|Jolly|,252,,,4,252|||||,,,,,Fire]Raging Bolt||BoosterEnergy|Protosynthesis|Thunderbolt,Thunderclap,CalmMind,DragonPulse|Modest|252,,,252,4,||,20,,,,|||,,,,,Electric]Donphan||AssaultVest|Sturdy|RapidSpin,KnockOff,Earthquake,IceSpinner|Adamant|248,252,,,8,|||||,,,,,Ground"], + ["Palafin-Hero||AssaultVest|ZerotoHero|FlipTurn,JetPunch,IceBeam,CloseCombat|Sassy|252,4,,,252,|||||,,,,,Stellar]Iron Treads||EjectButton|QuarkDrive|StealthRock,RapidSpin,VoltSwitch,EarthPower|Timid|48,,,252,,208|||||,,,,,Stellar]Tera Captain|Armarouge|ChoiceScarf|FlashFire|Trick,Psychic,AuraSphere,ArmorCannon|Modest|24,,,252,,232||,0,,,,|||,,,,,Fighting]Weezing||Leftovers|NeutralizingGas|ToxicSpikes,PainSplit,SludgeBomb,Flamethrower|Calm|252,,4,,252,||,0,,,,|||,,,,,Stellar]Tera Captain|Rillaboom|LifeOrb|GrassySurge|SwordsDance,GrassyGlide,TeraBlast,WoodHammer|Adamant|252,252,,,4,|||||,,,,,Fire]Tornadus-Therian||AssaultVest|Regenerator|HammerArm,Uturn,KnockOff,BleakwindStorm|Timid|120,,,,244,144|||||,,,,,Stellar","Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Overheat,Flamethrower,Ruination|Modest|,,16,252,,240||,0,,,,|||,,,,,Dark]Tera Captain|Sinistcha|CobaBerry|Heatproof|StunSpore,ShadowBall,StrengthSap,MatchaGotcha|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel]Tera Captain|Serperior|Leftovers|Contrary|TeraBlast,Substitute,LeafStorm,Glare|Timid|252,,,56,,200||,0,,,,|||,,,,,Stellar]Rotom-Wash||Leftovers|Levitate|VoltSwitch,Thunderbolt,ThunderWave,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Electric]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,Thunderbolt,Encore,AuraSphere|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Mudsdale||SitrusBerry|Stamina|StealthRock,BodyPress,Earthquake,Roar|Careful|252,,4,,252,|||||,,,,,Ground"], + ["Great Tusk||CustapBerry|Protosynthesis|HeadlongRush,StoneEdge,RapidSpin,Endure|Adamant|,252,4,,,252|||||,,,,,Ground]Tera Captain|Latias|MentalHerb|Levitate|MistBall,Thunderbolt,CalmMind,Recover|Timid|248,,,8,,252||,0,,,,|||,,,,,Electric]Greninja||ChoiceScarf|Protean|Surf,SludgeWave,IceBeam,Uturn|Hasty|,48,,252,,208|||||,,,,,Water]Tinkaton||LightClay|MoldBreaker|PlayRough,Bulldoze,StealthRock,LightScreen|Careful|248,,,,176,84|||||,,,,,Fairy]Muk||BlackSludge|PoisonTouch|PoisonJab,KnockOff,RockTomb,DrainPunch|Impish|248,8,252,,,|||||,,,,,Poison]Rillaboom||Leftovers|GrassySurge|GrassyGlide,HighHorsepower,Uturn,DrumBeating|Adamant|104,252,,,,152|||||,,,,,Grass","Iron Valiant||ChoiceSpecs|QuarkDrive|AuraSphere,Moonblast,VacuumWave,Psyshock|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,SludgeWave,Substitute,Agility|Modest|144,,,252,,112||,0,,,,|||,,,,,Steel]Iron Bundle||AssaultVest|QuarkDrive|IceBeam,FreezeDry,HydroPump,FlipTurn|Timid|104,,,252,8,144|||||,,,,,Ice]Tera Captain|IronThorns|LoadedDice|QuarkDrive|RockBlast,HighHorsepower,TeraBlast,DragonDance|Jolly|56,252,,,,200|||||,,,,,Flying]Iron Jugulis||ChoiceScarf|QuarkDrive|Hurricane,HydroPump,EarthPower,Uturn|Modest|56,,,252,4,196|||||,,,,,Dark]Iron Treads||EjectButton|QuarkDrive|StealthRock,EarthPower,SteelBeam,RapidSpin|Modest|40,,4,252,,212|||||,,,,,Ground"], + ["Iron Boulder||EjectPack|QuarkDrive|MightyCleave,CloseCombat,ZenHeadbutt,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Rock]Iron Bundle||ChoiceSpecs|QuarkDrive|HydroPump,FreezeDry,IceBeam,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Clodsire||MentalHerb|WaterAbsorb|Earthquake,PoisonJab,Recover,Toxic|Careful|248,,8,,252,|||||,,,,,Poison]Gliscor||ToxicOrb|PoisonHeal|KnockOff,Taunt,Toxic,Protect|Jolly|252,,4,,,252|||||,,,,,Ground]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,ScorchingSands,Substitute,SlackOff|Calm|248,,92,,168,||,0,,,,|||,,,,,Water]Skarmory||MentalHerb|Sturdy|BodyPress,Spikes,Whirlwind,Roost|Impish|252,,236,,,20||,0,,,,|||,,,,,Steel","Tornadus-Therian||LumBerry|Regenerator|Taunt,KnockOff,BleakwindStorm,HeatWave|Modest|248,,200,,,60|||||,,,,,Flying]Tera Captain|GreninjaBond|LifeOrb|BattleBond|HydroPump,SludgeWave,IceBeam,WaterShuriken|Modest|216,,,252,,40|||||,,,,,Water]Ting-Lu||ChestoBerry|VesselofRuin|StealthRock,Spikes,Rest,Whirlwind|Careful|248,,8,,252,||,0,,,,|||,,,,,Dark]Tera Captain|Bellibolt|HeavyDutyBoots|Static|SlackOff,AcidSpray,Discharge,TeraBlast|Calm|248,,,8,244,8||,0,,,,|||,,,,,Ice]Tsareena||HeavyDutyBoots|QueenlyMajesty|RapidSpin,KnockOff,Taunt,TripleAxel|Impish|248,,244,,8,8|||||,,,,,Grass]Misdreavus||Eviolite|Levitate|SkillSwap,ShadowBall,Taunt,MeanLook|Modest|248,,196,40,,24||,0,,,,|||,,,,,Ghost"], + ["Tera Captain|Latias|Leftovers|Levitate|CalmMind,Recover,Thunderbolt,AuraSphere|Timid|252,,,,116,140||,0,,,,|||,,,,,Poison]Greninja||ChoiceSpecs|Protean|Surf,IceBeam,Extrasensory,Uturn|Modest|4,,,252,,252|||||,,,,,Water]Tera Captain|Oricorio|HeavyDutyBoots|Dancer|Roost,Taunt,RevelationDance,QuiverDance|Timid|252,,,56,,200||,0,,,,|||,,,,,Flying]Heatran||Leftovers|FlameBody|MagmaStorm,EarthPower,Taunt,Protect|Timid|172,,,,148,188||,0,,,,|||,,,,,Fire]Tinkaton||AirBalloon|Pickpocket|StealthRock,ThunderWave,Encore,PlayRough|Bold|252,,112,,,144|||||,,,,,Fairy]Great Tusk||BoosterEnergy|Protosynthesis|RapidSpin,HeadlongRush,TemperFlare,IceSpinner|Adamant|252,180,,,,76|||||,,,,,Ground","Tera Captain|Hydreigon|ExpertBelt|Levitate|FireBlast,DarkPulse,DracoMeteor,EarthPower|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Scizor||ChoiceScarf|Technician|Uturn,CloseCombat,Facade,Defog|Jolly|,252,,,4,252|||||,,,,,Bug]Iron Hands||AssaultVest|QuarkDrive|CloseCombat,VoltSwitch,IcePunch,DrainPunch|Adamant|4,252,,,252,|||||,,,,,Fighting]Mandibuzz||LoadedDice|Overcoat|BoneRush,BraveBird,Roost,Uturn|Jolly|,252,,,4,252|||||,,,,,Dark]Tera Captain|Okidogi|Leftovers|ToxicChain|BulkUp,DrainPunch,PsychicFangs,Substitute|Careful|252,,,,252,|||||,,,,,Fighting]Munkidori||ChoiceScarf|Frisk|Uturn,Psyshock,Trick,SludgeBomb|Modest|,,,252,4,252|||||,,,,,Poison"], + ["Iron Crown||Leftovers|QuarkDrive|StoredPower,TachyonCutter,IronDefense,CalmMind|Timid|252,,56,8,,192||,20,,,,|||,,,,,Steel]Tera Captain|Diancie|UtilityUmbrella|ClearBody|DrainingKiss,IronDefense,CalmMind,RockPolish|Bold|,,220,,172,116||,0,,,,|||,,,,,Electric]Sneasel-Hisui||FocusSash|InnerFocus|CloseCombat,GunkShot,ShadowClaw,SwordsDance|Adamant|,252,4,,,252|||||,,,,,Fighting]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,LowKick,SwordsDance|Jolly|72,252,4,,4,176|||||,,,,,Water]Great Tusk||FocusSash|Protosynthesis|HeadlongRush,Endeavor,Taunt,StealthRock|Jolly|,252,,,4,252|||||,,,,,Ground]Weavile||ChoiceBand|Pressure|KnockOff,IcicleCrash,IceShard,FoulPlay|Adamant|72,252,8,,4,172|||||,,,,,Dark","Tera Captain|Annihilape|MarangaBerry|Defiant|RageFist,BulkUp,SleepTalk,Rest|Jolly|,56,60,,160,232|||S||,,,,,Ghost]Electrode-Hisui||LightClay|Soundproof|VoltSwitch,EnergyBall,LeechSeed,Reflect|Modest|,,64,252,,192||,0,,,,|S||,,,,,Electric]Palafin||HeavyDutyBoots|ZerotoHero|DrainPunch,BulkUp,JetPunch,Substitute|Adamant|,128,140,,,240|||S||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Roost,Uturn,Thunderbolt,Hurricane|Timid|60,,252,44,,152|||S||,,,,,Electric]Archaludon||PowerHerb|Stamina|StealthRock,DracoMeteor,MeteorBeam,FlashCannon|Calm|124,,,120,200,64||,0,,,,|S||,,,,,Steel]Tera Captain|Overqwil|RockyHelmet|Intimidate|ToxicSpikes,BarbBarrage,Crunch,PainSplit|Impish|200,120,188,,,|||S||,,,,,Dragon"], + ["Tera Captain|Clefable|HeavyDutyBoots|Unaware|Moonblast,Flamethrower,StealthRock,Moonlight|Calm|252,,4,,228,24||,0,,,,|||,,,,,Normal]Wo-Chien||HeavyDutyBoots|TabletsofRuin|KnockOff,GigaDrain,LeechSeed,Protect|Sassy|252,,196,24,36,|||||,,,,,Dark]Blaziken||HeavyDutyBoots|SpeedBoost|CloseCombat,Earthquake,Uturn,Overheat|Lonely|,252,,84,,172|||||,,,,,Fire]Palafin-Hero||RockyHelmet|ZerotoHero|Waterfall,BulkUp,SleepTalk,Rest|Impish|252,,184,,56,16|||||,,,,,Water]Latios||MysticWater|Levitate|Surf,LusterPurge,FlipTurn,Recover|Timid|80,,,252,,176|||||,,,,,Dragon]Tera Captain|Toxtricity|ChoiceScarf|PunkRock|TeraBlast,SludgeWave,Overdrive,VoltSwitch|Modest|40,,,252,,216||,0,,,,|||,,,,,Water","Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,DragonPulse,TeraBlast,Substitute|Timid|24,,,252,,232||,0,,,,|||,,,,,Stellar]Skeledirge||HeavyDutyBoots|Unaware|SlackOff,TorchSong,ShadowBall,WillOWisp|Bold|252,,216,28,,12||,0,,,,|||,,,,,Fire]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,WaveCrash,IcePunch|Adamant|104,252,,,,152|||||,,,,,Water]Weezing-Galar||RockyHelmet|NeutralizingGas|Toxic,PainSplit,Flamethrower,Defog|Bold|252,,236,,,20||,0,,,,|||,,,,,Poison]Ting-Lu||Leftovers|VesselofRuin|Payback,Earthquake,HeavySlam,Ruination|Careful|4,252,,,252,|||||,,,,,Dark]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,StealthRock,Bulldoze,Encore|Jolly|248,156,,,,104|||||,,,,,Fairy"], + ["Iron Treads||RockyHelmet|QuarkDrive|BodyPress,StealthRock,EarthPower,RapidSpin|Bold|244,,216,,,48|||||,,,,,Ground]Tera Captain|KeldeoResolute|AssaultVest|Justified|FlipTurn,SecretSword,Surf,AirSlash|Calm|248,,,,228,32|||||,,,,,Flying]Meowscarada||FocusSash|Protean|ShadowBall,Spikes,SleepTalk,TripleAxel|Hasty|,32,,252,,224|||||,,,,,Grass]Enamorus-Therian||AssaultVest|Overcoat|Moonblast,EarthPower,SludgeBomb,WeatherBall|Modest|248,,8,252,,||,0,,,,|||,,,,,Fairy]Smeargle||ChoiceScarf|Technician|ShedTail,LunarDance,Trick,MortalSpin|Jolly|252,,,,4,252|||||,,,,,Normal]Tera Captain|Entei|AssaultVest|Pressure|SacredFire,BodySlam,ExtremeSpeed,Overheat|Hasty|,252,,100,4,152|||||,,,,,Normal","Torkoal||HeatRock|Drought|SolarBeam,Rest,LavaPlume,EarthPower|Bold|252,,252,,4,||,0,,,,|||,,,,,Fire]Tera Captain|WalkingWake|ChoiceScarf|Protosynthesis|HydroSteam,FlipTurn,DracoMeteor,Flamethrower|Modest|252,,,252,,4|||||,,,,,Water]Tera Captain|Venusaur|ExpertBelt|Chlorophyll|WeatherBall,SludgeBomb,EarthPower,SleepPowder|Modest|252,,,252,,4||,0,,,,|||,,,,,Grass]Roaring Moon||LumBerry|Protosynthesis|IronHead,Earthquake,DragonDance,KnockOff|Jolly|72,252,,,,184|||||,,,,,Dragon]Scream Tail||RedCard|Protosynthesis|Wish,Encore,ThunderWave,StealthRock|Calm|252,,,,88,168||,0,,,,|||,,,,,Fairy]Great Tusk||AssaultVest|Protosynthesis|RapidSpin,HeadlongRush,IceSpinner,KnockOff|Jolly|,252,,,96,160|||||,,,,,Ground"], + ["Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,RageFist,DrainPunch,Protect|Careful|200,32,100,,176,||30,,,,,|||,,,,,Steel]Ting-Lu||Leftovers|VesselofRuin|Whirlwind,HeavySlam,StealthRock,Earthquake|Impish|252,,156,,100,|||||,,,,,Ghost]Volcanion||ChoiceSpecs|WaterAbsorb|SteamEruption,SludgeWave,FireBlast,Overheat|Timid|72,,,252,,184||,0,,,,|||,,,,,Flying]Skarmory||RockyHelmet|Sturdy|BodyPress,Roost,BraveBird,Tailwind|Impish|252,,232,,,24|||||,,,,,Dragon]Ditto||ChoiceScarf|Imposter|Transform|Jolly|252,4,,,,252||,30,,,,|||,,,,,Normal]Brambleghast||Leftovers|Infiltrator|Poltergeist,SeedBomb,StrengthSap,RapidSpin|Jolly|140,120,64,,,184|||||,,,,,Water","Latios||WeaknessPolicy|Levitate|CalmMind,Recover,IceBeam,StoredPower|Timid|252,,,48,,208||,0,,,,|||,,,,,Dragon]Hatterene||LightClay|MagicBounce|Reflect,CalmMind,DrainingKiss,Psyshock|Timid|252,,44,124,,88||,0,,,,|||,,,,,Psychic]Moltres||ChoiceSpecs|FlameBody|Hurricane,Uturn,Flamethrower,Overheat|Timid|,,,252,4,252|||||,,,,,Fire]Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,Uturn,HydroPump,IceBeam|Modest|136,,,252,,120|||||,,,,,Ice]Tera Captain|Excadrill|LifeOrb|SandRush|TeraBlast,SwordsDance,Earthquake,RapidSpin|Adamant|4,252,,,,252|||||,,,,,Fairy]Tyranitar||ChoiceBand|SandStream|StoneEdge,IcePunch,KnockOff,ThunderPunch|Adamant|252,252,,,4,|||||,,,,,Rock"], + ["Tera Captain|WalkingWake|MysticWater|Protosynthesis|HydroSteam,DracoMeteor,FlipTurn,DragonPulse|Timid|,,,244,12,252|||||,,,,,Water]Torkoal||HeatRock|Drought|StealthRock,RapidSpin,Yawn,FlareBlitz|Impish|248,,148,,112,|||||,,,,,Fire]Gouging Fire||LumBerry|Protosynthesis|Earthquake,Outrage,DragonDance,HeatCrash|Adamant|,252,,,12,244|||||,,,,,Fire]Hatterene||Leftovers|MagicBounce|CalmMind,Psyshock,Imprison,DrainingKiss|Calm|248,,24,,236,||,0,,,,|||,,,,,Psychic]Iron Treads||ChopleBerry|QuarkDrive|VoltSwitch,IronHead,KnockOff,RapidSpin|Jolly|16,252,36,,,204|||||,,,,,Ground]Ribombee||ChoiceSpecs|ShieldDust|Moonblast,Uturn,Trick,SunnyDay|Naive|,8,,252,,248|||||,,,,,Bug","Tera Captain|Latias|SoulDew|Levitate|DracoMeteor,MistBall,AlluringVoice,Recover|Timid|,,8,252,,248||,0,,,,|||,,,,,Fairy]Tera Captain|Staraptor|ChoiceScarf|Reckless|BraveBird,CloseCombat,Facade,Uturn|Jolly|72,252,,,,184|||||,,,,,Flying]Heatran||ShucaBerry|FlashFire|StealthRock,MagmaStorm,EarthPower,HeavySlam|Modest|248,,8,252,,|||||,,,,,Fire]Donphan||HeavyDutyBoots|Sturdy|Earthquake,StoneEdge,KnockOff,RapidSpin|Adamant|248,252,,,8,|||||,,,,,Ground]Rotom-Wash||Leftovers|Levitate|Thunderbolt,HydroPump,ThunderWave,RainDance|Calm|248,,,8,252,||,0,,,,|||,,,,,Electric]Gurdurr||Eviolite|Guts|DrainPunch,PoisonJab,IcePunch,MachPunch|Adamant|248,252,,,8,|||||,,,,,Fighting"], + ["Seviper||ExpertBelt|Infiltrator|Flamethrower,GigaDrain,SludgeWave,Glare|Timid|,,,252,4,252||,0,,,,|||,,,,,Poison]Klefki||LightClay|Prankster|PlayRough,Spikes,Reflect,LightScreen|Careful|252,4,,,252,|||||,,,,,Steel]Rotom-Heat||ChoiceScarf|Levitate|PainSplit,Trick,Overheat,VoltSwitch|Timid|156,,,,252,100||,0,,,,|||,,,,,Electric]Manaphy||AssaultVest|Hydration|FlipTurn,Scald,HydroPump,AlluringVoice|Calm|168,,,80,252,8|||||,,,,,Water]Tera Captain|Espeon|SitrusBerry|MagicBounce|ThunderWave,Wish,PsychicNoise,GrassKnot|Calm|252,,,,252,||,0,,,,|||,,,,,Fire]Tera Captain|GreatTusk|ChoiceBand|Protosynthesis|HeadlongRush,HeavySlam,CloseCombat,TeraBlast|Adamant|,252,,,152,104|||S||,,,,,Electric","Corviknight||RockyHelmet|Unnerve|Roost,Defog,Uturn,BodyPress|Impish|252,,252,,4,|||||,,,,,Flying]Alomomola||AssaultVest|Regenerator|FlipTurn,AquaJet,AlluringVoice,Scald|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Water]Fezandipiti||RockyHelmet|ToxicChain|Uturn,Roost,BeatUp,PlayRough|Impish|252,,252,,4,|||||,,,,,Poison]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|Discharge,DracoMeteor,CalmMind,Thunderclap|Modest|252,,,252,4,||,20,,,,|||,,,,,Fairy]Ursaluna-Bloodmoon||ChopleBerry|MindsEye|CalmMind,Moonlight,BloodMoon,EarthPower|Bold|252,,228,28,,||,0,,,,|||,,,,,Ground]Weavile||ChoiceBand|Pressure|KnockOff,TripleAxel,IceShard,BrickBreak|Jolly|48,252,,,,208|||||,,,,,Dark"], + ["Mienshao||SitrusBerry|Regenerator|Trailblaze,KnockOff,DrainPunch,SwordsDance|Impish|36,36,216,,,220|||||,,,,,Fighting]Tera Captain|IronCrown|BoosterEnergy|QuarkDrive|Agility,Psychic,FocusBlast,TachyonCutter|Modest|72,,,252,,184||,20,,,,|||,,,,,Fighting]Tera Captain|Jolteon|HeavyDutyBoots|VoltAbsorb|CalmMind,AlluringVoice,Thunderbolt,HyperVoice|Timid|88,,,252,,168||,0,,,,|||,,,,,Fairy]Indeedee-F||ChoiceScarf|OwnTempo|Reflect,LightScreen,Trick,Psychic|Timid|252,,,4,,252||,0,,,,|||,,,,,Psychic]Great Tusk||BoosterEnergy|Protosynthesis|HeadlongRush,PlayRough,KnockOff,RapidSpin|Jolly|,252,4,,,252|||||,,,,,Ground]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|Trailblaze,IvyCudgel,HornLeech,PlayRough|Adamant|76,252,,,,180|||||,,,,,Water","Great Tusk||LumBerry|Protosynthesis|HeadSmash,HeadlongRush,IceSpinner,RapidSpin|Adamant|112,252,8,,,136|||||,,,,,Ground]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Thunderbolt,DragonPulse,TeraBlast,Roar|Modest|200,,8,64,64,172||,20,,,,|||,,,,,Grass]Tera Captain|Tornadus|SafetyGoggles|Prankster|BleakwindStorm,Tailwind,HeatWave,Uturn|Timid|,,,252,8,248|||||,,,,,Flying]Cinderace||ProtectivePads|Libero|PyroBall,SmackDown,Uturn,SuckerPunch|Jolly|72,252,,,,184|||||,,,,,Fire]Samurott-Hisui||AssaultVest|Sharpness|CeaselessEdge,SuckerPunch,AquaCutter,SacredSword|Adamant|248,180,,,24,56|||||,,,,,Water]Mesprit||Leftovers|Levitate|PsychUp,ThunderWave,StoredPower,Psyshock|Calm|128,,,,188,192||,0,,,,|||,,,,,Psychic"], + ["Great Tusk||BoosterEnergy|Protosynthesis|Earthquake,IceSpinner,KnockOff,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Ground]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,StealthRock,PlayRough,KnockOff|Serious|248,4,,,25,|||||,,,,,Fairy]Grafaiai||BlackSludge|Prankster|Encore,PartingShot,LowKick,KnockOff|Impish|252,4,252,,,|||||,,,,,Poison]Tera Captain|Latias|Leftovers|Levitate|CalmMind,AuraSphere,StoredPower,Recover|Timid|248,,160,,,100||,0,,,,|||,,,,,Poison]Tera Captain|Umbreon|Leftovers|Synchronize|FoulPlay,Toxic,Wish,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Meowscarada||HeavyDutyBoots|Protean|BrickBreak,FlowerTrick,KnockOff,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass","Tera Captain|Revavroom|LumBerry|Filter|ShiftGear,TeraBlast,PoisonJab,HighHorsepower|Adamant|80,252,,,,176|||||,,,,,Fairy]Darkrai||Leftovers|BadDreams|DarkPulse,WillOWisp,SludgeBomb,Taunt|Timid|100,,,192,,216||,0,,,,|||,,,,,Dark]Garchomp||RoseliBerry|RoughSkin|SwordsDance,Earthquake,IronHead,ScaleShot|Jolly|60,252,4,,4,188|||||,,,,,Dragon]Tera Captain|Zapdos|ThroatSpray|Static|Hurricane,HeatWave,MetalSound,Roost|Modest|248,,200,44,16,||,0,,,,|||,,,,,Electric]Uxie||ColburBerry|Levitate|StealthRock,Uturn,PsychicNoise,Encore|Bold|252,,240,,16,|||||,,,,,Psychic]Granbull||SitrusBerry|Intimidate|SuperFang,PlayRough,Earthquake,ThunderWave|Impish|240,,216,,52,|||||,,,,,Fairy"], + ["Tera Captain|Cetitan|HeavyDutyBoots|SlushRush|BellyDrum,IceShard,Liquidation,Earthquake|Adamant|216,252,,,,40|||||,,,,,Water]Tera Captain|SlowkingGalar|IcyRock|Regenerator|ChillyReception,SludgeBomb,ThunderWave,FocusBlast|Sassy|248,,40,24,196,||,0,,,,0|||,,,,,Water]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,IceSpinner,HeadlongRush,Substitute|Jolly|248,4,4,,,252|||||,,,,,Dragon]Palafin-Hero||Leftovers|ZerotoHero|BulkUp,JetPunch,DrainPunch,Taunt|Adamant|248,100,80,,,80|||||,,,,,Water]Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,PlayRough,PartingShot|Adamant|248,36,224,,,|||||,,,,,Dark]Zapdos||HeavyDutyBoots|Static|Uturn,VoltSwitch,Hurricane,Roost|Calm|252,,,92,164,|||||,,,,,Electric","Darkrai||ExpertBelt|BadDreams|DarkPulse,IceBeam,SludgeBomb,NastyPlot|Modest|88,,,248,,172||,0,,,,|||,,,,,Dark]Slowking-Galar||BlackSludge|Regenerator|Toxic,Psychic,FireBlast,ChillyReception|Calm|240,,,,252,16||,0,,,,|||,,,,,Poison]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,Protect,Uturn,Spikes|Impish|248,8,252,,,|||||,,,,,Water]Tera Captain|Terrakion|LifeOrb|Justified|StoneEdge,UpperHand,CloseCombat,Earthquake|Jolly|64,252,,,,192|||||,,,,,Water]Blastoise||RockyHelmet|Torrent|Haze,IceBeam,HydroPump,FlipTurn|Bold|240,,252,,,16|||||,,,,,Water]Articuno-Galar||HeavyDutyBoots|Competitive|Hurricane,Psyshock,CalmMind,Uturn|Timid|64,,,252,,192|||||,,,,,Psychic"], + ["Hydreigon||ChoiceScarf|Levitate|DracoMeteor,DarkPulse,Uturn,FlashCannon|Timid|24,,,252,,232|||||,,,,,Stellar]Gengar||LifeOrb|CursedBody|ShadowBall,SludgeBomb,Psychic,ToxicSpikes|Timid|80,,,252,,176||,0,,,,|||,,,,,Stellar]Empoleon||WeaknessPolicy|Competitive|Surf,StealthRock,VacuumWave,FlashCannon|Modest|252,,,252,4,||,0,,,,|||,,,,,Stellar]Iron Valiant||ChoiceScarf|QuarkDrive|Moonblast,AuraSphere,Thunderbolt,Trick|Modest|8,,4,252,,244||,0,,30,,|||,,,,,Stellar]Tera Captain|Espathra|LightClay|SpeedBoost|LuminaCrash,Reflect,LightScreen,FeatherDance|Modest|40,,4,252,,212||,0,,,,|||,,,,,Steel]Tera Captain|Gliscor|RedCard|PoisonHeal|SwordsDance,Agility,Acrobatics,Earthquake|Adamant|16,252,4,,,236|||||,,,,,Flying","Meowscarada||AssaultVest|Protean|Uturn,FlowerTrick,TripleAxel,KnockOff|Jolly|32,172,,,72,232|||||,,,,,Grass]Tera Captain|Annihilape|AssaultVest|Defiant|TeraBlast,RageFist,IcePunch,DrainPunch|Adamant|252,140,,,72,44|||||,,,,,Ghost]Palafin||AssaultVest|ZerotoHero|JetPunch,FlipTurn,WaveCrash,DrainPunch|Adamant|248,116,,,144,|||||,,,,,Water]Hatterene||CustapBerry|MagicBounce|PsychicNoise,Nuzzle,DrainingKiss,HealingWish|Calm|252,,80,8,168,|||||,,,,,Psychic]Tera Captain|Kilowattrel|HeavyDutyBoots|Competitive|Hurricane,Thunderbolt,Roost,Uturn|Timid|40,,,252,,216|||||,,,,,Ice]Glimmora||AirBalloon|ToxicDebris|StealthRock,DazzlingGleam,PowerGem,EarthPower|Modest|248,,,184,,76||,0,,,,|||,,,,,Rock"], + ["Darkrai||ExpertBelt|BadDreams|Hypnosis,DarkPulse,IceBeam,SludgeBomb|Timid|32,,,252,,224||,0,,,,|||,,,,,Dark]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,Uturn,HeatWave,BleakwindStorm|Timid|248,,,84,,176|||||,,,,,Flying]Keldeo||ChoiceScarf|Justified|FlipTurn,SecretSword,Surf,AirSlash|Timid|92,,,252,,164|||||,,,,,Water]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|StealthRock,Uturn,Earthquake,StoneEdge|Adamant|248,128,,,,132|||||,,,,,Ground]Scizor||LifeOrb|Technician|SwordsDance,BulletPunch,QuickAttack,KnockOff|Adamant|248,252,,,8,|||||,,,,,Bug]Vileplume||RockyHelmet|EffectSpore|StrengthSap,LeechSeed,SludgeBomb,SleepPowder|Bold|252,,252,,4,||,0,,,,|||,,,,,Grass","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,Trailblaze,IvyCudgel,ZenHeadbutt|Jolly|,252,,,12,244|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Bold|252,,128,,,128|||||,,,,,Flying]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,FocusBlast,Thunderbolt|Modest|,,,252,4,252||,0,,,,|||,,,,,Steel]Gouging Fire||ClearAmulet|Protosynthesis|DragonDance,RagingFury,DragonClaw,MorningSun|Jolly|,252,,,4,252|||||,,,,,Fire]Donphan||LumBerry|Sturdy|Earthquake,IceShard,RapidSpin,StealthRock|Adamant|248,252,,,8,|||||,,,,,Ground]Tera Captain|Comfey|LifeOrb|Triage|CalmMind,DrainingKiss,TeraBlast,Synthesis|Modest|,,188,252,,68||,0,,,,|||,,,,,Fire"], + ["Darkrai||FocusSash|BadDreams|DarkPulse,SludgeBomb,FocusBlast,Hypnosis|Timid|,,4,252,,252||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,SwordsDance,Encore|Jolly|104,252,,,,152|||||,,,,,Water]Kyurem||LoadedDice|Pressure|ScaleShot,IcicleSpear,Substitute,DragonDance|Adamant|8,252,,,,248|||||,,,,,Dragon]Klefki||Leftovers|Prankster|DazzlingGleam,FoulPlay,Spikes,ThunderWave|Bold|252,,80,,176,||,0,,,,|||,,,,,Steel]Landorus-Therian||RockyHelmet|Intimidate|StealthRock,Earthquake,Taunt,Uturn|Impish|248,8,216,,,36|||||,,,,,Ground]Gurdurr||Eviolite|Guts|DrainPunch,KnockOff,MachPunch,BulkUp|Adamant|252,4,,,252,|||||,,,,,Fighting","Darkrai||FocusSash|BadDreams|FocusBlast,Hypnosis,IceBeam,DarkPulse|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Urshifu||ChoiceScarf|UnseenFist|CloseCombat,Uturn,WickedBlow,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Corviknight||Leftovers|Pressure|IronDefense,BodyPress,Roost,IronHead|Careful|252,4,,,252,|||||,,,,,Flying]Tera Captain|ScreamTail|BoosterEnergy|Protosynthesis|CalmMind,StoredPower,DazzlingGleam,Wish|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Pecharunt||BlackSludge|PoisonPuppeteer|MalignantChain,PartingShot,Hex,Recover|Bold|252,,180,60,,16||,0,,,,|||,,,,,Poison]Tera Captain|Regidrago|ChoiceScarf|DragonsMaw|DragonEnergy,Outrage,Earthquake,ScaleShot|Naughty|,252,,4,,252|||||,,,,,Dragon"], + ["Palafin-Hero||PunchingGlove|ZerotoHero|JetPunch,IcePunch,DrainPunch,Encore|Adamant|144,252,,,4,108|||||,,,,,Water]Tera Captain|Gholdengo|Leftovers|GoodasGold|MakeItRain,FocusBlast,ShadowBall,Recover|Calm|248,,8,,252,||,0,,,,|||,,,,,Steel]Tera Captain|Jolteon|FlameOrb|QuickFeet|TeraBlast,VoltSwitch,ShadowBall,Thunderbolt|Timid|88,,,252,,168||,0,,,,|||,,,,,Fighting]Donphan||AssaultVest|Sturdy|Earthquake,RapidSpin,KnockOff,SmackDown|Adamant|248,144,,,28,88|||||,,,,,Ground]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,SwordsDance,PlayRough,Trailblaze|Adamant|,236,,,244,28|||||,,,,,Fire]Weezing-Galar||BlackSludge|Levitate|Psybeam,Flamethrower,Toxic,Defog|Bold|248,,176,,,84||,0,,,,|||,,,,,Poison","Tera Captain|Latias|SoulDew|Levitate|DracoMeteor,MistBall,TeraBlast,ThunderWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Iron Treads||AssaultVest|QuarkDrive|Earthquake,IronHead,KnockOff,RapidSpin|Jolly|252,24,,,184,48|||||,,,,,Ground]Sinistcha||WeaknessPolicy|Heatproof|MatchaGotcha,ShadowBall,CalmMind,StrengthSap|Bold|252,,252,,4,||,0,,,,|||,,,,,Grass]Iron Bundle||NeverMeltIce|QuarkDrive|IceBeam,HydroPump,FreezeDry,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Cinderace||HeavyDutyBoots|Libero|PyroBall,IronHead,WillOWisp,Uturn|Jolly|72,252,,,,184|||||,,,,,Fire]Mandibuzz||HeavyDutyBoots|Overcoat|FoulPlay,Taunt,Uturn,Roost|Impish|244,,248,,,16|||||,,,,,Dark"], + ["Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,CloseCombat,IcePunch|Jolly|72,252,,,,184|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|VoltSwitch,Roost,HeatWave,ThunderWave|Calm|248,,8,,252,||,0,,,,|||,,,,,Electric]Ting-Lu||Leftovers|VesselofRuin|Spikes,Ruination,HeavySlam,Earthquake|Careful|248,160,,,100,|||||,,,,,Dark]Kyurem||HeavyDutyBoots|Pressure|FreezeDry,FlashCannon,IceBeam,EarthPower|Timid|28,,,252,4,224||,0,,,,|||,,,,,Dragon]Tera Captain|Suicune|Leftovers|Pressure|Snarl,TeraBlast,Protect,Scald|Calm|248,,8,,252,||,0,,,,|||,,,,,Fire]Tera Captain|Heatran|Leftovers|FlashFire|StealthRock,MagmaStorm,EarthPower,Protect|Calm|248,,,,208,52||,0,,,,|||,,,,,Grass","Tera Captain|Serperior|Leftovers|Overgrow|EnergyBall,DragonPulse,CalmMind,Synthesis|Timid|184,,,160,,152||,0,,,,|||,,,,,Dragon]Tinkaton||SitrusBerry|Pickpocket|PlayRough,KnockOff,Encore,StealthRock|Jolly|248,,,,76,184|||||,,,,,Fairy]Quaquaval||CovertCloak|Moxie|LowKick,AquaStep,SwordsDance,Roost|Adamant|248,148,12,,44,56|||S||,,,,,Water]Mamoswine||AssaultVest|ThickFat|Earthquake,IcicleCrash,RockBlast,KnockOff|Adamant|40,216,,,252,|||||,,,,,Ice]Greninja||FocusSash|Protean|IceBeam,LowKick,GrassKnot,ToxicSpikes|Naive|,252,,176,,80|||||,,,,,Water]Zapdos||RockyHelmet|Static|Discharge,Hurricane,Uturn,Roost|Bold|248,,200,,60,|||S||,,,,,Electric"], + ["Garchomp||LifeOrb|RoughSkin|DracoMeteor,EarthPower,IronHead,StealthRock|Rash|,76,,252,,180|||S||,,,,,Dragon]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,SwordsDance,Uturn|Jolly|32,252,,,,224|||||,,,,,Water]Scizor||ChoiceBand|Technician|Uturn,BulletPunch,KnockOff,CloseCombat|Adamant|8,252,4,,244,|||||,,,,,Bug]Zapdos||HeavyDutyBoots|Static|Uturn,HeatWave,Thunderbolt,Roost|Modest|224,,68,148,68,|||||,,,,,Electric]Overqwil||CustapBerry|Intimidate|Spikes,Liquidation,PoisonJab,SelfDestruct|Adamant|,204,168,,120,16|||S||,,,,,Dark]Tera Captain|Hariyama|SitrusBerry|Guts|BulkUp,DrainPunch,HeavySlam,Earthquake|Adamant|4,80,228,,196,|||S||,,,,,Fairy","Palafin||ChoiceScarf|ZerotoHero|DrainPunch,JetPunch,FlipTurn,WaveCrash|Adamant|168,252,,,,88|||||,,,,,Water]Tera Captain|EnamorusTherian|Leftovers|Overcoat|EarthPower,CalmMind,Moonblast,MysticalFire|Modest|252,,4,252,,||,0,,,,|||,,,,,Poison]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|DracoMeteor,Thunderbolt,Thunderclap,VoltSwitch|Calm|152,,,252,104,||,20,,,,|||,,,,,Flying]Weezing||RockyHelmet|Levitate|Haze,Flamethrower,PainSplit,WillOWisp|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Iron Treads||HeavyDutyBoots|QuarkDrive|StealthRock,SupercellSlam,RapidSpin,IceSpinner|Jolly|32,252,,,,224|||||,,,,,Ground]Roaring Moon||ChoiceBand|Protosynthesis|Outrage,Acrobatics,KnockOff,FireFang|Jolly|72,252,,,,184|||||,,,,,Dragon"], + ["Meowscarada||LifeOrb|Protean|PowerGem,FlowerTrick,Protect,SuckerPunch|Mild|,64,,200,,244|||||,,,,,Grass]Tera Captain|Latias|ChoiceScarf|Levitate|MistBall,DracoMeteor,TeraBlast,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Poison]Crawdaunt||LifeOrb|Adaptability|CloseCombat,Crabhammer,KnockOff,AquaJet|Adamant|252,252,,,4,|||||,,,,,Water]Tera Captain|BraviaryHisui|HeavyDutyBoots|SheerForce|RainDance,Hurricane,Psychic,Roost|Calm|252,,,4,252,||,0,,,,|||,,,,,Psychic]Tinkaton||Leftovers|MoldBreaker|GigatonHammer,StealthRock,PlayRough,Encore|Jolly|248,,172,,,88|||||,,,,,Fairy]Cinderace||LifeOrb|Libero|SwordsDance,HighJumpKick,SuckerPunch,QuickAttack|Adamant|168,252,,,,88|||||,,,,,Fire","Torkoal||HeatRock|Drought|RapidSpin,LavaPlume,ScorchingSands,Yawn|Bold|248,,252,8,,|||||,,,,,Fire]Tera Captain|WalkingWake|WiseGlasses|Protosynthesis|HydroSteam,Flamethrower,Agility,DragonPulse|Modest|128,,,252,,128||,0,,,,|||,,,,,Water]Tera Captain|Venusaur|LifeOrb|Chlorophyll|TeraBlast,GigaDrain,SludgeBomb,Growth|Timid|80,,,252,,176||,0,,,,|S||,,,,,Fire]Hoopa-Unbound||AssaultVest|Magician|KnockOff,DrainPunch,HyperspaceFury,ZenHeadbutt|Adamant|,252,,,248,8|||||,,,,,Psychic]Arbok||BlackSludge|Intimidate|Glare,Switcheroo,Protect,Earthquake|Impish|248,,252,,8,|||||,,,,,Poison]Enamorus||ChoiceSpecs|CuteCharm|Moonblast,EarthPower,SunnyDay,HealingWish|Modest|,,104,252,,152||,0,,,,|S||,,,,,Fairy"], + ["Tera Captain|GreninjaBond|SalacBerry|BattleBond|TeraBlast,IceBeam,GunkShot,Endure|Rash|,60,,252,,196|||||,,,,,Rock]Slowking-Galar||ShucaBerry|Regenerator|ChillyReception,SludgeBomb,Psychic,TrickRoom|Quiet|248,,52,136,72,||,0,,,,0|||,,,,,Poison]Iron Valiant||BoosterEnergy|QuarkDrive|Encore,Moonblast,Psyshock,DestinyBond|Timid|68,,,252,,188||,0,,,,|||,,,,,Fairy]Gliscor||ToxicOrb|PoisonHeal|Protect,Earthquake,Toxic,StealthRock|Impish|244,,240,,,24|||S||,,,,,Ground]Rotom-Wash||RockyHelmet|Levitate|VoltSwitch,ThunderWave,HydroPump,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Electric]Forretress||EjectButton|Sturdy|RapidSpin,GigaDrain,Spikes,GyroBall|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Bug","Torkoal||HeatRock|Drought|SolarBeam,StealthRock,Overheat,RapidSpin|Calm|248,,8,,252,|||||,,,,,Fire]Tera Captain|Venusaur|LumBerry|Chlorophyll|SolarBeam,PoisonJab,Earthquake,Growth|Jolly|4,252,,,,252|||||,,,,,Steel]Gouging Fire||ChoiceBand|Protosynthesis|HeatCrash,Earthquake,Outrage,IronHead|Adamant|208,248,,,16,36|||||,,,,,Fire]Primarina||AssaultVest|Torrent|Moonblast,FlipTurn,WeatherBall,IceBeam|Modest|252,,,240,,16|||||,,,,,Water]Tera Captain|Mew|Leftovers|Synchronize|VoltSwitch,IceBeam,Spikes,Psyshock|Timid|240,,,88,36,144||,0,,,,|||,,,,,Fairy]Great Tusk||SoftSand|Protosynthesis|SmackDown,HeadlongRush,RapidSpin,IceSpinner|Jolly|196,4,,,56,252|||||,,,,,Ground"], + ["Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,Encore,FlipTurn|Timid|228,,,28,,252|||||,,,,,Stellar]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,CloseCombat,SwordsDance,Taunt|Jolly|112,252,,,,144|||||,,,,,Stellar]Tera Captain|Hydreigon|ChoiceScarf|Levitate|EarthPower,FlashCannon,DarkPulse,Uturn|Modest|4,,,252,,252|||||,,,,,Steel]Gliscor||ToxicOrb|PoisonHeal|Protect,Earthquake,StealthRock,Uturn|Impish|212,,252,,,44|||||,,,,,Stellar]Tera Captain|Cetitan|SitrusBerry|SlushRush|BellyDrum,IcicleSpear,IceShard,Earthquake|Jolly|,252,,,24,232|||||,,,,,Water]Slowking-Galar||ColburBerry|Regenerator|ChillyReception,SludgeBomb,FocusBlast,SlackOff|Calm|252,,16,,240,||,0,,,,|||,,,,,Stellar","Chi-Yu||ShucaBerry|BeadsofRuin|DarkPulse,FireSpin,Ruination,Taunt|Calm|252,,,80,176,||,0,,,,|||,,,,,Bug]Iron Bundle||AssaultVest|QuarkDrive|FreezeDry,HydroPump,IcyWind,Uturn|Timid|100,,,,248,160|||S||,,,,,Bug]Iron Treads||WeaknessPolicy|QuarkDrive|Earthquake,IceSpinner,RapidSpin,IronDefense|Jolly|,252,64,,,192|||S||,,,,,Bug]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,Trailblaze,LowKick,Substitute|Jolly|,252,96,,,160|||||,,,,,Rock]Tera Captain|EnamorusTherian|MentalHerb|Overcoat|DrainingKiss,EarthPower,CalmMind,IronDefense|Calm|248,,160,36,64,||,0,,,,|||,,,,,Steel]Morgrem||LightClay|Prankster|ThunderWave,PartingShot,Reflect,LightScreen|Calm|112,,248,,148,||,0,,,,|S||,,,,,Bug"], + ["Iron Valiant||ChoiceSpecs|QuarkDrive|Trick,Moonblast,Psyshock,VacuumWave|Modest|12,,,252,,244||,0,,,,|||,,,,,Fairy]Gholdengo||RockyHelmet|GoodasGold|Recover,NastyPlot,ShadowBall,MakeItRain|Bold|252,,184,,,72||,0,,,,|||,,,,,Steel]Donphan||Leftovers|Sturdy|StealthRock,RapidSpin,Earthquake,KnockOff|Impish|252,,208,,,48|||||,,,,,Ground]Tera Captain|Gyarados||Intimidate|Waterfall,Earthquake,ThunderWave,Roar|Impish|252,,160,,,96|||||,,,,,Ground]Qwilfish-Hisui||Eviolite|PoisonPoint|Haze,PainSplit,BarbBarrage,Spikes|Careful|252,,,,192,64|||||,,,,,Dark]Tera Captain|Latias|ColburBerry|Levitate|MistBall,Recover,AuraSphere,CalmMind|Timid|252,,80,,,176||,0,,,,|||,,,,,Poison","Mandibuzz||HeavyDutyBoots|Overcoat|Roost,Whirlwind,FoulPlay,Uturn|Impish|248,,220,,40,|||||,,,,,Dark]Clefable||Leftovers|Unaware|Moonlight,Moonblast,CalmMind,Flamethrower|Calm|232,,252,,16,8||,0,,,,|S||,,,,,Fairy]Tera Captain|Excadrill|LifeOrb|SandRush|Earthquake,RapidSpin,SwordsDance,TeraBlast|Jolly|,252,,,32,224|||||,,,,,Ice]Tera Captain|Amoonguss|EjectButton|Regenerator|GigaDrain,SludgeBomb,Spore,Synthesis|Calm|252,,68,,188,||,0,,,,|||,,,,,Fire]Tyranitar||ShucaBerry|SandStream|StealthRock,Thunderbolt,IceBeam,KnockOff|Modest|88,,,252,,168|||||,,,,,Rock]Eelektross||AssaultVest|Levitate|Flamethrower,KnockOff,GigaDrain,VoltSwitch|Modest|252,,,16,140,100|||||,,,,,Electric"], + ["Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,WaveCrash,ThroatChop|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Raikou|Leftovers|InnerFocus|CalmMind,Scald,Thunderbolt,AuraSphere|Modest|,,,252,4,252||,0,,,,|||,,,,,Fighting]Tera Captain|Cresselia|Leftovers|Levitate|Moonlight,LunarDance,Thunderbolt,IceBeam|Modest|252,,,252,4,||,0,,,,|S||,,,,,Poison]Appletun||AssaultVest|ThickFat|GigaDrain,Earthquake,DracoMeteor,DragonTail|Sassy|248,,,8,252,|||S||,,,,,Grass]Iron Treads||Leftovers|QuarkDrive|RapidSpin,Earthquake,IceSpinner,VoltSwitch|Jolly|48,252,,,,208|||||,,,,,Ground]Dudunsparce||Leftovers|SereneGrace|Glare,Roost,Boomburst,StealthRock|Calm|208,,,,252,48||,0,,,,|||,,,,,Normal","Chi-Yu||ChoiceScarf|BeadsofRuin|HeatWave,DarkPulse,Psychic,Hex|Modest|,,,252,,252||,0,,,,|||,,,,,Dark]Tornadus-Therian||RockyHelmet|Regenerator|BleakwindStorm,Psychic,Taunt,Uturn|Timid|80,,,176,,252|||||,,,,,Flying]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|Uturn,Earthquake,StoneEdge,BodySlam|Adamant|,252,,,4,252|||S||,,,,,Grass]Slowbro||WacanBerry|Regenerator|FutureSight,Scald,IceBeam,Yawn|Modest|252,,176,76,4,||,0,,,,|||,,,,,Water]Dunsparce||Eviolite|SereneGrace|Coil,CalmMind,StoredPower,Roost|Modest|,,228,,156,124||,0,,,,|||,,,,,Normal]Terapagos||ChestoBerry|TeraShift|TeraStarstorm,RapidSpin,Toxic,Rest|Modest|252,,,252,,|||||,,,,,Stellar"], + ["Vikavolt||Leftovers|Levitate|StickyWeb,VoltSwitch,BugBuzz,EnergyBall|Modest|252,,,16,240,||,0,,,,|||,,,,,Bug]Enamorus||ChoiceScarf|CuteCharm|Moonblast,EarthPower,MysticalFire,HealingWish|Modest|,,8,252,,248||,0,,,,|||,,,,,Fairy]Iron Treads||OccaBerry|QuarkDrive|RapidSpin,KnockOff,Earthquake,IceSpinner|Jolly|252,36,12,,,208|||||,,,,,Ground]Tera Captain|Latias|ChoiceSpecs|Levitate|DracoMeteor,AuraSphere,TeraBlast,MistBall|Timid|,,80,252,,176||,0,,,,|||,,,,,Poison]Tera Captain|Gyarados|HeavyDutyBoots|Intimidate|Earthquake,TeraBlast,TemperFlare,DragonDance|Adamant|,252,,,,204|||||,,,,,Poison]Gastrodon||RindoBerry|StickyHold|Substitute,EarthPower,Spikes,ClearSmog|Bold|252,,216,,40,||,0,,,,|||,,,,,Water","Rillaboom||AssaultVest|GrassySurge|GrassyGlide,WoodHammer,KnockOff,Uturn|Adamant|244,252,,,,12|||||,,,,,Grass]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,Uturn,CloseCombat,Switcheroo|Jolly|80,252,,,,176|||||,,,,,Fighting]Tera Captain|Mesprit|GrassySeed|Levitate|CalmMind,StoredPower,DrainingKiss,Imprison|Modest|252,,28,56,136,36||,0,,,,|||,,,,,Fairy]Gouging Fire||HeavyDutyBoots|Protosynthesis|FlareBlitz,BreakingSwipe,DragonDance,MorningSun|Adamant|252,16,,,108,132|||||,,,,,Fire]Tera Captain|Manaphy|RockyHelmet|Hydration|Scald,EnergyBall,Haze,Uturn|Bold|252,,176,4,72,4|||||,,,,,Fairy]Sandy Shocks||ShucaBerry|Protosynthesis|Discharge,EarthPower,StealthRock,PowerGem|Timid|156,,,252,4,96||,0,,,,|||,,,,,Ice"], + ["Skarmory||RockyHelmet|Sturdy|Taunt,BodyPress,Spikes,Roost|Timid|252,,40,,,216||,0,,,,|||,,,,,Steel]Tera Captain|Sceptile|HeavyDutyBoots|Overgrow|LeafStorm,Roar,Earthquake,VacuumWave|Mild|,20,,252,,236|||||,,,,,Steel]Iron Moth||HeavyDutyBoots|QuarkDrive|SludgeWave,FieryDance,Psychic,MorningSun|Timid|40,,,252,,216||,0,,,,|||,,,,,Fire]Alomomola||MentalHerb|Regenerator|Wish,Protect,FlipTurn,HealingWish|Bold|,,252,,252,|||||,,,,,Water]Roaring Moon||RoseliBerry|Protosynthesis|Roost,Taunt,DragonClaw,KnockOff|Adamant|12,52,,,204,240|||||,,,,,Dragon]Tera Captain|Annihilape|ChoiceScarf|Defiant|RageFist,Encore,IcePunch,CloseCombat|Adamant|,252,,,104,152|||||,,,,,Ghost","Palafin||ChoiceSpecs|ZerotoHero|JetPunch,Surf,Boomburst,HydroPump|Naughty|64,,,252,,192|||||,,,,,Water]Garchomp||RockyHelmet|RoughSkin|Spikes,Earthquake,DragonTail,FireBlast|Naive|248,,100,,,160|||||,,,,,Dragon]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,Uturn,PlayRough|Jolly|24,252,,,,232|||||,,,,,Grass]Tera Captain|Pecharunt|Leftovers|PoisonPuppeteer|Recover,TeraBlast,MalignantChain,PartingShot|Bold|248,,140,120,,||,0,,,,|||,,,,,Fairy]Tera Captain|Heatran|Leftovers|FlashFire|MagmaStorm,EarthPower,StealthRock,Protect|Modest|248,,,252,8,||,0,,,,|||,,,,,Fairy]Braviary-Hisui||HeavyDutyBoots|TintedLens|Roost,Defog,EsperWing,DazzlingGleam|Modest|176,,,252,,80||,0,,,,|||,,,,,Psychic"], + ["Tera Captain|GreatTusk|ChoiceScarf|Protosynthesis|HeadSmash,CloseCombat,ZenHeadbutt,TemperFlare|Adamant|,252,100,,,156|||||,,,,,Fighting]Tornadus-Therian||LifeOrb|Regenerator|NastyPlot,HeatWave,BleakwindStorm,Taunt|Timid|,,36,224,,248||,0,,,,|||,,,,,Flying]Latios||HeatRock|Levitate|SunnyDay,WeatherBall,PsychicNoise,DracoMeteor|Timid|80,,,252,,176||,0,,,,|||,,,,,Dragon]Tinkaton||AirBalloon|Pickpocket|StealthRock,GigatonHammer,KnockOff,Encore|Impish|248,,148,,,112|||||,,,,,Fairy]Tera Captain|Bellibolt|RockyHelmet|Static|MuddyWater,Toxic,VoltSwitch,SlackOff|Bold|248,,208,,52,||,0,,,,|||,,,,,Ghost]Brambleghast||ColburBerry|WindRider|Poltergeist,Spikes,StrengthSap,PowerWhip|Impish|248,32,172,,,56|||||,,,,,Grass","Scizor||HeavyDutyBoots|Technician|SwordsDance,BulletPunch,Uturn,DualWingbeat|Adamant|248,8,,,252,|||||,,,,,Bug]Ursaluna-Bloodmoon||ChopleBerry|MindsEye|BloodMoon,EarthPower,VacuumWave,CalmMind|Modest|248,,24,36,200,||,0,,,,|||,,,,,Ground]Sneasler||ChoiceScarf|PoisonTouch|Uturn,CloseCombat,DireClaw,GunkShot|Jolly|,252,80,,,176|||||,,,,,Fighting]Zapdos||HeavyDutyBoots|Static|VoltSwitch,Hurricane,Roost,ThunderWave|Timid|248,,108,,,152||,0,,,,|||,,,,,Electric]Gurdurr||Eviolite|IronFist|BulkUp,IcePunch,DrainPunch,MachPunch|Adamant|248,140,,,120,|||||,,,,,Fighting]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|SwordsDance,Synthesis,IvyCudgel,ThroatChop|Adamant|248,,48,,116,96|||||,,,,,Water"], + ["Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,AuraSphere,Psyshock,VacuumWave|Timid|,,8,252,,248||,0,,,,|||,,,,,Fairy]Garchomp||ChoiceScarf|RoughSkin|Outrage,Earthquake,DragonClaw,Spikes|Jolly|,252,4,,,252|||||,,,,,Dragon]Arbok||BlackSludge|Intimidate|GunkShot,FireFang,DragonTail,ToxicSpikes|Careful|252,,4,,252,|||||,,,,,Poison]Tera Captain|DudunsparceThreeSegment|Leftovers|Rattled|Boomburst,StealthRock,CalmMind,Roost|Bold|248,,252,8,,||,0,,,,|||,,,,,Water]Tera Captain|Serperior|YacheBerry|Contrary|LeafStorm,TeraBlast,Synthesis,Glare|Timid|88,,,252,,168||,0,,,,|||,,,,,Fire]Corviknight||Leftovers|Pressure|BraveBird,Substitute,BulkUp,Roost|Impish|248,,100,,160,|||||,,,,,Flying","Tera Captain|Comfey|LifeOrb|Triage|DrainingKiss,TeraBlast,StoredPower,CalmMind|Modest|240,,,252,,16||,0,,,,|S||,,,,,Fire]Scizor||ProtectivePads|Technician|BulletPunch,KnockOff,Uturn,SwordsDance|Adamant|248,252,,,8,|||||,,,,,Bug]Cinderace||ChoiceScarf|Libero|PyroBall,GunkShot,HighJumpKick,Uturn|Jolly|24,252,,,,232|||||,,,,,Fire]Tera Captain|Raikou|ChoiceSpecs|Pressure|Thunderbolt,VoltSwitch,Scald,TeraBlast|Timid|16,,,252,,240||,0,,,,|||,,,,,Ice]Slowking||ColburBerry|Regenerator|Psychic,FutureSight,Flamethrower,ChillyReception|Calm|248,,252,,4,||,0,,,,|||,,,,,Water]Toedscruel||Leftovers|MyceliumMight|GigaDrain,RapidSpin,Spikes,Spore|Calm|252,,,112,144,|||||,,,,,Ground"], + ["Necrozma||PowerHerb|PrismArmor|DragonDance,PhotonGeyser,SolarBeam,HeatWave|Modest|28,,,252,,228|||||,,,,,Psychic]Tera Captain|Torterra|Leftovers|ShellArmor|StealthRock,GigaDrain,Roar,Synthesis|Bold|252,,252,4,,||,0,,,,|||,,,,,Water]Infernape||WiseGlasses|Blaze|NastyPlot,VacuumWave,Flamethrower,GrassKnot|Timid|64,,,252,,192||,0,,,,|||,,,,,Fire]Tera Captain|Toxtricity|ChoiceScarf|PunkRock|Boomburst,VoltSwitch,SludgeBomb,Overdrive|Timid|88,,,252,,168||,0,,,,|||,,,,,Normal]Noivern||RockyHelmet|Infiltrator|Defog,Roost,Hurricane,Flamethrower|Timid|252,,104,,,152||,0,,,,|||,,,,,Flying]Palafin-Hero||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,BodySlam,FlipTurn|Jolly|,252,,,4,252|||||,,,,,Water","Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,FlipTurn,CloseCombat|Adamant|232,252,,,,24|||S||,,,,,Stellar]Tera Captain|Annihilape|ChoiceScarf|Defiant|RageFist,CloseCombat,Earthquake,Uturn|Jolly|88,252,4,,,164|||S||,,,,,Dark]Cyclizar||AssaultVest|Regenerator|DracoMeteor,RapidSpin,KnockOff,Uturn|Careful|248,,,,240,20|||||,,,,,Stellar]Pecharunt||BlackSludge|PoisonPuppeteer|MalignantChain,PartingShot,Toxic,Recover|Bold|252,,16,,240,||,0,,,,|||,,,,,Stellar]Skarmory||RockyHelmet|Sturdy|BodyPress,Spikes,Whirlwind,Roost|Bold|252,,160,,,96||,0,,,,|S||,,,,,Stellar]Tera Captain|Mudsdale|Leftovers|Stamina|Earthquake,BodyPress,Roar,StealthRock|Impish|252,,252,,4,|||S||,,,,,Dragon"], + ["Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,TeraBlast,FlipTurn|Timid|8,,,244,4,252|||||,,,,,Stellar]Weezing-Galar||BlackSludge|Levitate|GunkShot,StrangeSteam,Defog,PainSplit|Impish|232,,252,,,24|||||,,,,,Bug]Iron Boulder||BoosterEnergy|QuarkDrive|ZenHeadbutt,MightyCleave,CloseCombat,SwordsDance|Jolly|104,252,,,4,148|||||,,,,,Bug]Ninetales||HeatRock|Drought|FireBlast,PainSplit,Hypnosis,HealingWish|Timid|248,,,28,,232||,0,,,,|||,,,,,Bug]Heatran||Leftovers|FlashFire|MagmaStorm,EarthPower,Protect,StealthRock|Calm|252,,,,212,44||,0,,,,|||,,,,,Bug]Great Tusk||Leftovers|Protosynthesis|CloseCombat,HeadlongRush,IceSpinner,BulkUp|Jolly|248,4,4,,,252|||||,,,,,Bug","Garchomp||Leftovers|RoughSkin|StealthRock,Earthquake,ScaleShot,FireBlast|Impish|,136,120,,,252|||||,,,,,Dragon]Urshifu||PunchingGlove|UnseenFist|CloseCombat,WickedBlow,IronHead,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Sylveon||Leftovers|Pixilate|CalmMind,HyperVoice,Psyshock,Wish|Bold|252,,108,,148,||,0,,,,|||,,,,,Fairy]Tera Captain|Revavroom|Leftovers|Filter|ShiftGear,IronHead,GunkShot,TeraBlast|Jolly|,252,,4,,252|||||,,,,,Ground]Rotom-Wash||Leftovers|Levitate|WillOWisp,Thunderbolt,HydroPump,PainSplit|Calm|252,,,48,208,||,0,,,,|||,,,,,Electric]Tera Captain|BraviaryHisui|HeavyDutyBoots|TintedLens|EsperWing,Hurricane,TeraBlast,Roost|Modest|248,,,252,8,||,0,,,,|||,,,,,Fighting"], + ["Manaphy||Leftovers|Hydration|Psychic,Uturn,Scald,EnergyBall|Sassy|,,252,4,252,|||||,,,,,Water]Krookodile||ChoiceScarf|Intimidate|StealthRock,HighHorsepower,KnockOff,GunkShot|Adamant|4,252,,,,252|||||,,,,,Ground]Delphox||ChoiceScarf|Blaze|Psychic,FocusBlast,FireBlast,Overheat|Timid|4,,,252,,252||,0,,,,|||,,,,,Fire]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,ZenHeadbutt,CloseCombat,SwordsDance|Jolly|4,252,,,,252|||||,,,,,Rock]Kommo-o||GrassySeed|Bulletproof|IronDefense,Substitute,BodyPress,PoisonJab|Careful|,4,252,,252,|||||,,,,,Poison]Enamorus-Therian||RedCard|Overcoat|EarthPower,Psychic,Moonblast,SludgeBomb|Modest|252,,4,252,,||,0,,,,|||,,,,,Fairy","Sneasler||GrassySeed|Unburden|CloseCombat,DireClaw,Acrobatics,SwordsDance|Adamant|112,252,,,,144|||||,,,,,Fighting]Tera Captain|Rillaboom|ChoiceBand|GrassySurge|GrassyGlide,Uturn,KnockOff,WoodHammer|Adamant|128,252,,,4,124|||||,,,,,Grass]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Psychic|Modest|4,,,252,,252||,0,,,,|||,,,,,Dark]Iron Treads||HeavyDutyBoots|QuarkDrive|EarthPower,VoltSwitch,RapidSpin,StealthRock|Timid|16,,,252,,240|||||,,,,,Ground]Flygon||ChoiceScarf|Levitate|Earthquake,Outrage,Superpower,Uturn|Adamant|16,252,,,,240|||||,,,,,Ground]Tera Captain|Primarina|AssaultVest|Torrent|Surf,Moonblast,TeraBlast,FlipTurn|Modest|248,,,252,8,|||||,,,,,Grass"], + ["Palafin-Hero||ChoiceScarf|ZerotoHero|WaveCrash,IcePunch,FlipTurn,JetPunch|Jolly|72,252,,,,184|||||,,,,,Water]Rotom-Heat||Leftovers|Levitate|ThunderWave,FoulPlay,Overheat,VoltSwitch|Bold|252,,200,56,,||,0,,,,|||,,,,,Electric]Iron Valiant||LifeOrb|QuarkDrive|Moonblast,Thunderbolt,ShadowSneak,CloseCombat|Naive|,252,,24,,232|||||,,,,,Fairy]Iron Treads||ChopleBerry|QuarkDrive|StealthRock,Earthquake,IronHead,VoltSwitch|Jolly|252,120,,,,136|||||,,,,,Ground]Mandibuzz||ChartiBerry|WeakArmor|FoulPlay,Roost,Defog,Toxic|Impish|248,8,252,,,||,0,,,,|||,,,,,Dark]Tera Captain|Latias|Leftovers|Levitate|ThunderWave,Thunderbolt,DracoMeteor,Recover|Modest|68,,,224,,216||,0,,,,|||,,,,,Electric","Tera Captain|Serperior|PasshoBerry|Contrary|LeafStorm,TeraBlast,GigaDrain,Substitute|Timid|,,24,252,,232||,0,,,,|||,,,,,Rock]Iron Boulder||PasshoBerry|QuarkDrive|SwordsDance,MightyCleave,CloseCombat,ZenHeadbutt|Jolly|,252,64,,,192|||||,,,,,Rock]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,HeatCrash,DragonClaw,BurningBulwark|Jolly|,168,,,88,252|||||,,,,,Fire]Corviknight||Leftovers|Pressure|Roost,BraveBird,Uturn,BodyPress|Impish|248,8,252,,,|||||,,,,,Flying]Hatterene||Leftovers|MagicBounce|DrainingKiss,Psyshock,MysticalFire,CalmMind|Bold|,,252,4,252,||,0,,,,|||,,,,,Psychic]Samurott-Hisui||WacanBerry|Sharpness|SwordsDance,CeaselessEdge,AquaCutter,SuckerPunch|Adamant|,252,212,,,44|||||,,,,,Water"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,Encore,SpiritBreak|Jolly|,252,,,4,252|||||,,,,,Fairy]Garchomp||RoseliBerry|RoughSkin|StealthRock,DragonClaw,Earthquake,StoneEdge|Careful|248,32,116,,112,|||||,,,,,Dragon]Tera Captain|Scizor|SitrusBerry|Technician|Defog,KnockOff,Uturn,BulletPunch|Adamant|248,112,108,,40,|||||,,,,,Dragon]Tera Captain|Braviary|ChoiceScarf|SheerForce|BodySlam,Facade,BraveBird,Uturn|Adamant|,252,,,4,252|||||,,,,,Normal]Uxie||SitrusBerry|Levitate|PsychicNoise,Encore,Uturn,PainSplit|Careful|248,,,,240,20|||||,,,,,Psychic]Sableye||RowapBerry|Prankster|Taunt,Encore,Recover,KnockOff|Careful|248,8,,,252,|||||,,,,,Dark","Tera Captain|RagingBolt|MentalHerb|Protosynthesis|Thunderbolt,DragonPulse,Taunt,Substitute|Modest|,,28,252,,228||,20,,,,|||,,,,,Ghost]Cyclizar||ChoiceScarf|Regenerator|DracoMeteor,ShedTail,RapidSpin,Overheat|Timid|248,,,,44,216|||||,,,,,Dragon]Slowking||ColburBerry|Regenerator|Psychic,Scald,ChillyReception,IceBeam|Calm|248,,96,8,156,||,0,,,,|||,,,,,Water]Rotom-Heat||HeavyDutyBoots|Levitate|VoltSwitch,WillOWisp,PainSplit,Overheat|Timid|36,,252,12,,208||,0,,,,|||,,,,,Electric]Ribombee||ExpertBelt|SweetVeil|StickyWeb,Moonblast,Uturn,BugBuzz|Timid|,,64,252,,192|||||,,,,,Bug]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,RapidSpin,StealthRock,DazzlingGleam|Modest|,,104,252,,152|||||,,,,,Stellar"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,SwordsDance,Substitute|Jolly|248,36,,,32,192|||||,,,,,Water]Weavile||ChoiceBand|Pickpocket|KnockOff,LashOut,IcicleSpear,IceShard|Adamant|24,252,36,,4,192|||||,,,,,Dark]Alomomola||RockyHelmet|Regenerator|Scald,AlluringVoice,Wish,FlipTurn|Relaxed|248,,252,8,,||,,,,,0|||,,,,,Water]Iron Crown||Leftovers|QuarkDrive|PsychicNoise,TachyonCutter,VoltSwitch,CalmMind|Timid|252,,4,4,,248||,20,,,,|||,,,,,Steel]Moltres||HeavyDutyBoots|FlameBody|Flamethrower,Uturn,WillOWisp,Roost|Sassy|248,4,24,16,216,||,,,,,10|||,,,,,Fire]Great Tusk||CovertCloak|Protosynthesis|Earthquake,TemperFlare,StealthRock,RapidSpin|Adamant|252,216,16,,4,20|||||,,,,,Ground","Garchomp||Leftovers|RoughSkin|DragonTail,Spikes,Earthquake,StoneEdge|Careful|248,4,,,252,4|||||,,,,,Dragon]Corviknight||Leftovers|Pressure|Roost,Defog,Uturn,BraveBird|Relaxed|248,,252,8,,||,,,,,26|||,,,,,Flying]Tera Captain|UrshifuRapidStrike|ProtectivePads|UnseenFist|SurgingStrikes,CloseCombat,SwordsDance,Trailblaze|Adamant|56,252,,,,200|||||,,,,,Grass]Tera Captain|Arcanine|HeavyDutyBoots|Intimidate|MorningSun,TeraBlast,Flamethrower,WillOWisp|Bold|248,,248,12,,||,0,,,,|||,,,,,Grass]Overqwil||BlackSludge|Intimidate|Crunch,Toxic,Haze,GunkShot|Adamant|240,16,,,252,|||||,,,,,Dark]Jolteon||ExpertBelt|VoltAbsorb|AlluringVoice,ShadowBall,Discharge,VoltSwitch|Timid|,,40,252,,216||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Okidogi|ChoiceBand|ToxicChain|KnockOff,CloseCombat,HighHorsepower,GunkShot|Adamant|208,252,,,,48|||||,,,,,Ground]Tera Captain|Hydreigon|ChoiceSpecs|Levitate|DarkPulse,DracoMeteor,StealthRock,FlashCannon|Timid|60,,,252,4,192||,0,,,,|||,,,,,Dark]Iron Hands||BigNugget|QuarkDrive|SwordsDance,DrainPunch,Fling,ThunderPunch|Adamant|112,252,,,8,136|||||,,,,,Fighting]Scizor||RockyHelmet|Technician|Uturn,Defog,BulletPunch,CloseCombat|Impish|248,,252,,8,|||||,,,,,Bug]Fezandipiti||ChoiceBand|Technician|Uturn,BeatUp,PlayRough,DoubleKick|Adamant|92,252,,,4,160|||||,,,,,Poison]Rotom-Mow||OccaBerry|Levitate|Thunderbolt,LeafStorm,NastyPlot,VoltSwitch|Modest|200,,,252,4,52||,0,,,,|||,,,,,Electric","Slowking-Galar||ShucaBerry|Regenerator|Flamethrower,Psychic,Toxic,ChillyReception|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison]Tera Captain|Alomomola|AssaultVest|Regenerator|Psychic,FlipTurn,PlayRough,Scald|Sassy|252,,4,,252,|||||,,,,,Fairy]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,RapidSpin,Earthquake,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Ground]Tera Captain|RagingBolt|ChoiceScarf|Protosynthesis|VoltSwitch,Thunderbolt,DracoMeteor,DragonPulse|Modest|80,,,252,,176||,20,,,,|||,,,,,Electric]Meowscarada||ChoiceBand|Protean|KnockOff,Uturn,PlayRough,TripleAxel|Adamant|8,252,,,4,244|||||,,,,,Grass]Moltres||ChoiceSpecs|FlameBody|Flamethrower,Overheat,Hurricane,AirSlash|Timid|32,,,252,,224||,0,,,,|||,,,,,Fire"], + ["Palafin-Hero||RindoBerry|ZerotoHero|BulkUp,JetPunch,DrainPunch,Acrobatics|Adamant|248,8,,,252,|||S||,,,,,Water]Gouging Fire||ShucaBerry|Protosynthesis|DragonDance,FlareBlitz,Outrage,MorningSun|Adamant|248,24,96,,84,56|||||,,,,,Fire]Tera Captain|ThundurusTherian|SitrusBerry|VoltAbsorb|Thunderbolt,TeraBlast,Agility,NastyPlot|Modest|248,,72,,,188||,0,,,,|||,,,,,Fire]Terapagos||LumBerry|TeraShift|EarthPower,RapidSpin,Thunderbolt,TeraStarstorm|Timid|80,,,252,,176|||||,,,,,Stellar]Tera Captain|Rhyperior|CustapBerry|SolidRock|Earthquake,HeavySlam,StealthRock,Roar|Adamant|248,,8,,252,|||||,,,,,Ghost]Weavile||ChopleBerry|Pressure|SwordsDance,KnockOff,AerialAce,IcicleCrash|Adamant|8,252,4,,,244|||||,,,,,Dark","Gholdengo||SitrusBerry|GoodasGold|ShadowBall,FocusBlast,PowerGem,LowSweep|Modest|244,,,136,60,68|||||,,,,,Steel]Iron Treads||RockyHelmet|QuarkDrive|Earthquake,IceSpinner,VoltSwitch,RapidSpin|Jolly|40,,252,,,216|||||,,,,,Ground]Tera Captain|Keldeo|EjectPack|Justified|Surf,SecretSword,TeraBlast,AuraSphere|Timid|,,56,252,,200||,0,,,,|||,,,,,Stellar]Meowscarada||FocusSash|Overgrow|ToxicSpikes,FoulPlay,FlowerTrick,TrickRoom|Jolly|,252,96,,,160|||||,,,,,Grass]Enamorus-Therian||LifeOrb|Overcoat|Moonblast,AlluringVoice,DrainingKiss,FocusBlast|Quiet|,,236,252,20,||,0,,,,0|||,,,,,Fairy]Smeargle||FocusSash|OwnTempo|TrickRoom,StoneAxe,LunarDance,FinalGambit|Impish|248,,232,,28,|||||,,,,,Normal"], + ["Palafin-Hero||WacanBerry|ZerotoHero|BulkUp,DrainPunch,JetPunch,Taunt|Adamant|248,128,40,,92,|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|Hurricane,NastyPlot,HeatWave,IcyWind|Timid|240,,92,24,,152||,0,,,,|||,,,,,Flying]Tera Captain|RagingBolt|Leftovers|Protosynthesis|Protect,DragonPulse,Thunderbolt,CalmMind|Modest|56,,72,248,56,76||,20,,,,|||,,,,,Bug]Terapagos||HeavyDutyBoots|TeraShift|CalmMind,TeraStarstorm,DarkPulse,RockPolish|Modest|40,,,252,,216||,15,,,,|||,,,,,Stellar]Tinkaton||ShucaBerry|Pickpocket|StealthRock,GigatonHammer,IceHammer,Bulldoze|Careful|248,24,204,,4,28|||||,,,,,Fairy]Qwilfish-Hisui||Eviolite|Intimidate|Spikes,BarbBarrage,Crunch,Taunt|Impish|248,,128,,104,28|||||,,,,,Dark","Tera Captain|Keldeo|CobaBerry|Justified|SecretSword,Surf,IcyWind,CalmMind|Modest|56,,,252,,200||,0,,,,|||,,,,,Grass]Tera Captain|Mesprit|MirrorHerb|Levitate|IceBeam,Thunderbolt,Psyshock,Encore|Calm|248,,,,196,64||,0,,,,|||,,,,,Grass]Garchomp||YacheBerry|RoughSkin|Earthquake,StoneEdge,SwordsDance,StealthRock|Jolly|104,252,,,4,148|||||,,,,,Dragon]Gholdengo||LightClay|GoodasGold|MakeItRain,NastyPlot,Recover,LightScreen|Calm|248,,,8,252,||,0,,,,|||,,,,,Steel]Weavile||HeavyDutyBoots|Pressure|KnockOff,TripleAxel,IceShard,Taunt|Jolly|120,252,,,,136|||||,,,,,Dark]Weezing-Galar||RockyHelmet|Levitate|StrangeSteam,PainSplit,WillOWisp,ClearSmog|Bold|248,,252,8,,||,0,,,,|||,,,,,Poison"], + ["Tera Captain|Flygon|SoftSand|Levitate|Earthquake,FirePunch,DragonDance,TeraBlast|Adamant|,252,172,,,84|||||,,,,,Fairy]Ribombee||ChoiceScarf|ShieldDust|StickyWeb,Moonblast,Uturn,Psychic|Naive|,100,,160,,248|||||,,,,,Bug]Slowking||ChoiceBand|Regenerator|Trick,SlackOff,Amnesia,Whirlpool|Calm|248,,252,,8,||,0,,,,|||,,,,,Water]Cyclizar||HeavyDutyBoots|Regenerator|Taunt,ShedTail,RapidSpin,DoubleEdge|Jolly|248,,92,,,168|||||,,,,,Dragon]Terapagos||ChoiceSpecs|TeraShift|TeraStarstorm,Flamethrower,StealthRock,EarthPower|Modest|4,,252,252,,||,15,,,,|||,,,,,Stellar]Tera Captain|RagingBolt|YacheBerry|Protosynthesis|Thunderclap,DracoMeteor,VoltSwitch,Thunderbolt|Modest|,,248,252,,8||,20,,,,|||,,,,,Water","Tera Captain|Latias|Leftovers|Levitate|ShadowBall,Psyshock,CalmMind,Recover|Modest|252,,196,60,,||,0,,,,|||,,,,,Ghost]Palafin-Hero||Leftovers|ZerotoHero|Substitute,JetPunch,DrainPunch,ThroatChop|Adamant|84,252,52,,64,56|||||,,,,,Normal]Meowscarada||BlackGlasses|Protean|KnockOff,TripleAxel,BrickBreak,Taunt|Jolly|104,252,,,,152|||||,,,,,Normal]Tinkaton||ShucaBerry|MoldBreaker|Encore,GigatonHammer,PlayRough,LightScreen|Careful|252,48,52,,156,|||||,,,,,Normal]Iron Hands||SitrusBerry|QuarkDrive|DrainPunch,ThunderPunch,Facade,Whirlwind|Adamant|,252,4,,252,|||||,,,,,Normal]Donphan||CustapBerry|Sturdy|StealthRock,Earthquake,Roar,Endeavor|Careful|252,,4,,252,|||||,,,,,Normal"], + ["Meowscarada||ChoiceScarf|Protean|Uturn,FlowerTrick,KnockOff,Trick|Jolly|8,252,,,,248|||||,,,,,Grass]Hatterene||KebiaBerry|MagicBounce|Psyshock,GigaDrain,HealingWish,FutureSight|Bold|252,,192,12,44,8||,0,,,,|||,,,,,Psychic]Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|Roost,Thunderbolt,Hurricane,Charge|Timid|64,,64,240,,140||,0,,,,|||,,,,,Flying]Palafin||ProtectivePads|ZerotoHero|WaveCrash,JetPunch,CloseCombat,BulkUp|Adamant|80,252,,,,176|||||,,,,,Water]Glimmora||RockyHelmet|ToxicDebris|PowerGem,EnergyBall,StealthRock,Toxic|Modest|252,,136,20,56,44||,0,,,,|||,,,,,Rock]Tera Captain|Annihilape|AssaultVest|InnerFocus|RageFist,DrainPunch,Uturn,RockTomb|Adamant|240,36,,,232,|||||,,,,,Dragon","Greninja-Bond||ChoiceSpecs|BattleBond|HydroPump,DarkPulse,GrassKnot,Uturn|Modest|128,,,252,4,124|||||,Ghost,,,,Water]Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,RageFist,DrainPunch,Protect|Careful|248,,,,188,72|||||,,,,,Dragon]Rotom-Wash||SitrusBerry|Levitate|WillOWisp,NastyPlot,HydroPump,VoltSwitch|Bold|252,,176,,80,||,0,,,,|||,,,,,Electric]Iron Moth||PowerHerb|QuarkDrive|Agility,MeteorBeam,FireBlast,SludgeWave|Modest|128,,,252,,128||,0,,,,|||,,,,,Fire]Donphan||MentalHerb|Sturdy|StealthRock,Earthquake,Encore,RapidSpin|Impish|248,8,252,,,|||||,,,,,Ground]Tera Captain|Glastrier|CustapBerry|ChillingNeigh|SwordsDance,IcicleCrash,CloseCombat,Endure|Impish|120,136,252,,,|||||,,,,,Fairy"], + ["Iron Valiant||PixiePlate|QuarkDrive|Moonblast,AuraSphere,SpiritBreak,ShadowSneak|Naive|,88,,252,,168|||||,,,,,Fairy]Garchomp||LoadedDice|RoughSkin|Earthquake,ScaleShot,Substitute,SwordsDance|Jolly|,252,,,8,248|||||,,,,,Dragon]Empoleon||ChopleBerry|Torrent|FlipTurn,KnockOff,Roar,Roost|Careful|252,,8,,248,|||||,,,,,Water]Tera Captain|Tyranitar|SitrusBerry|SandStream|TeraBlast,LowKick,Substitute,DragonDance|Adamant|,252,,,4,252|||||,,,,,Ghost]Tsareena||ChoiceScarf|QueenlyMajesty|PowerWhip,LowKick,TripleAxel,Uturn|Jolly|64,252,,,,192|||||,,,,,Grass]Weezing-Galar||RockyHelmet|NeutralizingGas|StrangeSteam,WillOWisp,ToxicSpikes,PainSplit|Bold|248,,152,,108,||,0,,,,|||,,,,,Poison","Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|TeraBlast,Thunderbolt,Agility,FocusBlast|Jolly|,,,252,4,252||,0,,,,|||,,,,,Ice]Sceptile||SitrusBerry|Overgrow|ShedTail,Acrobatics,SwordsDance,LeafBlade|Jolly|,252,,,4,252|||||,,,,,Grass]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,CalmMind,Rest,EarthPower|Modest|252,,,252,4,||,15,,,,|||,Dark,,,,Stellar]Tera Captain|Espathra|Leftovers|SpeedBoost|CalmMind,StoredPower,TeraBlast,Roost|Bold|252,,252,4,,||,0,,,,|||,,,,,Fighting]Urshifu-Rapid-Strike||PunchingGlove|UnseenFist|SurgingStrikes,CloseCombat,Trailblaze,IceSpinner|Jolly|,252,,,4,252|||||,,,,,Fighting]Politoed||DampRock|Drizzle|RainDance,WeatherBall,IceBeam,Encore|Modest|252,,,252,4,||,0,,,,|||,,,,,Water"], + ["Infernape||ChoiceScarf|IronFist|CloseCombat,FlareBlitz,Uturn,ZenHeadbutt|Lonely|4,252,,,252,|||||,,,,,Fire]Tera Captain|Landorus|LifeOrb|SheerForce|SludgeWave,Psychic,EarthPower,RockSlide|Naive|,4,,252,,252|||||,,,,,Poison]Meowscarada||ProtectivePads|Protean|Uturn,TripleAxel,SuckerPunch,FlowerTrick|Jolly|,252,,,16,240|||||,,,,,Grass]Muk-Alola||AssaultVest|PoisonTouch|PoisonJab,FirePunch,BodySlam,DrainPunch|Adamant|216,156,,,100,36|||||,,,,,Poison]Vaporeon||RockyHelmet|WaterAbsorb|FlipTurn,Wish,Scald,Protect|Calm|252,,,,252,|||||,,,,,Water]Tera Captain|Lokix|SilverPowder|TintedLens|FirstImpression,Uturn,KnockOff,SuckerPunch|Jolly|,252,,,4,252|||||,,,,,Bug","Scizor||LifeOrb|Technician|CloseCombat,BulletPunch,QuickAttack,SwordsDance|Adamant|72,252,,,,184|||||,,,,,Bug]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,SpikyShield,Synthesis,PowerWhip|Jolly|240,28,,,,240|||||,Poison,,,,Water]Zapdos||HeavyDutyBoots|Static|Roost,VoltSwitch,Hurricane,Discharge|Bold|248,,252,8,,||,0,,,,|||,,,,,Electric]Sneasler||ChoiceBand|PoisonTouch|ShadowClaw,Uturn,CloseCombat,FakeOut|Jolly|96,252,,,,160|||||,,,,,Fighting]Gurdurr||Eviolite|SheerForce|Defog,IcePunch,KnockOff,CloseCombat|Impish|240,4,12,,252,|||||,,,,,Fighting]Ursaluna-Bloodmoon||ThroatSpray|MindsEye|BloodMoon,HyperVoice,VacuumWave,EarthPower|Modest|248,,,8,252,||,0,,,,|||,,,,,Ground"], + ["Gurdurr||Eviolite|IronFist|MachPunch,DrainPunch,Defog,KnockOff|Adamant|252,252,4,,,|||||,,,,,Fighting]Iron Valiant||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,PoisonJab,SpiritBreak|Jolly|,252,16,,,240|||||,,,,,Fairy]Rotom-Wash||Leftovers|Levitate|VoltSwitch,HydroPump,WillOWisp,RainDance|Calm|252,,,4,252,||,0,,,,|||,,,,,Electric]Glimmora||ChoiceScarf|ToxicDebris|DazzlingGleam,PowerGem,SludgeBomb,EarthPower|Modest|92,,4,252,,160||,0,,,,|||,,,,,Rock]Tera Captain|IronCrown|AssaultVest|QuarkDrive|TachyonCutter,TeraBlast,Psychic,FocusBlast|Modest|,,,252,192,64||,20,,,,|||,,,,,Water]Landorus-Therian||LifeOrb|Intimidate|GrassKnot,StealthRock,FocusBlast,EarthPower|Timid|32,,,252,,224||,0,,,,|||,,,,,Ground","Great Tusk||HeavyDutyBoots|Protosynthesis|Earthquake,IceSpinner,KnockOff,RapidSpin|Adamant|248,152,68,,,40|||||,Fighting,,,,Ground]Roaring Moon||ChoiceBand|Protosynthesis|KnockOff,IronHead,Outrage,Uturn|Jolly|80,196,,,,232|||||,,,,,Dragon]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,Surf,DracoMeteor,Flamethrower|Modest|32,,,252,,224||,0,,,,|||,,,,,Water]Scream Tail||Leftovers|Protosynthesis|Psychic,Flamethrower,IceBeam,ThunderWave|Calm|248,,136,,124,||,0,,,,|||,,,,,Fairy]Torkoal||HeatRock|Drought|Yawn,RapidSpin,LavaPlume,ScorchingSands|Calm|248,,64,,196,|||||,,,,,Fire]Orthworm||SitrusBerry|EarthEater|ShedTail,StealthRock,BodyPress,HeavySlam|Impish|248,,252,,8,|||||,,,,,Water"], + ["Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,PsychoCut,SwordsDance,CloseCombat|Jolly|112,252,,,,144|||||,,,,,Rock]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Psychic|Timid|24,,,252,,232||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Uturn,PlayRough,SpikyShield|Jolly|4,252,,,,252|||||,,,,,Water]Alomomola||Leftovers|Regenerator|FlipTurn,Wish,Protect,Scald|Impish|252,4,252,,,|||||,,,,,Water]Corviknight||HeavyDutyBoots|MirrorArmor|Roost,Defog,Uturn,HeavySlam|Impish|252,4,252,,,|||||,,,,,Flying]Hippowdon||Leftovers|SandStream|Earthquake,StealthRock,SlackOff,Whirlwind|Careful|252,,,,252,|||||,,,,,Ground","Urshifu||ChoiceScarf|UnseenFist|Uturn,CloseCombat,WickedBlow,ThunderPunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Corviknight||Leftovers|MirrorArmor|Uturn,BulkUp,BodyPress,Defog|Adamant|252,252,,,4,|||||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Spikes,Earthquake,Whirlwind|Impish|212,,152,,144,|||||,,,,,Dark]Tera Captain|Raikou|Leftovers|Pressure|CalmMind,Agility,Thunderbolt,TeraBlast|Modest|128,,,188,,192||,0,,,,|||,,,,,Water]Tera Captain|Araquanid|AssaultVest|WaterBubble|Liquidation,LeechLife,PoisonJab,BodySlam|Adamant|188,200,,,120,|||||,,,,,Water]Weezing-Galar||Leftovers|Levitate|Toxic,SludgeWave,Haze,ClearSmog|Bold|252,,148,,108,||,0,,,,|||,,,,,Poison"], + ["Darkrai||ChoiceScarf|BadDreams|FocusBlast,DarkPulse,SludgeBomb,IceBeam|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Urshifu||ChopleBerry|UnseenFist|SuckerPunch,WickedBlow,CloseCombat,Trailblaze|Jolly|4,252,,,,252|||||,,,,,Fighting]Corviknight||Leftovers|MirrorArmor|Roost,Defog,BraveBird,Uturn|Impish|252,4,252,,,|||||,,,,,Flying]Tera Captain|ScreamTail|ChoiceSpecs|Protosynthesis|DazzlingGleam,FocusBlast,Trick,BatonPass|Timid|80,,,252,,176||,0,,,,|||,,,,,Fairy]Lanturn||Leftovers|VoltAbsorb|VoltSwitch,Scald,IceBeam,Thunderbolt|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Ariados||FocusSash|Swarm|ToxicSpikes,StickyWeb,SuckerPunch,Megahorn|Adamant|248,252,,,8,|||||,,,,,Bug","Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,CloseCombat,ZenHeadbutt|Jolly|,252,,,4,252|||||,Fighting,,,,Ground]Urshifu||ChoiceBand|UnseenFist|WickedBlow,CloseCombat,SuckerPunch,Uturn|Adamant|,252,4,,,252|||||,,,,,Dark]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,KnockOff,RazorShell,AquaJet|Jolly|,252,,,4,252|||||,,,,,Ghost]Grimmsnarl||LightClay|Prankster|PlayRough,LightScreen,Reflect,Taunt|Adamant|252,252,,,4,|||S||,,,,,Ghost]Tera Captain|Incineroar|SitrusBerry|Intimidate|FakeOut,FlareBlitz,PartingShot,KnockOff|Careful|252,4,140,,76,36|||||,,,,,Water]Tera Captain|ThundurusTherian|ChoiceSpecs|VoltAbsorb|TeraBlast,VoltSwitch,GrassKnot,FlashCannon|Modest|,,4,252,,252||,0,,,,|S||,,,,,Flying"], + ["Iron Bundle||HeavyDutyBoots|QuarkDrive|IceBeam,Substitute,Encore,HydroPump|Modest|,,252,252,4,||,0,,,,|||,,,,,Ice]Iron Boulder||BoosterEnergy|QuarkDrive|Earthquake,ZenHeadbutt,MightyCleave,Substitute|Adamant|204,252,,,,52|||||,Fighting,,,,Rock]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Protect,Earthquake,SwordsDance,Facade|Impish|156,100,252,,,|||||,,,,,Fire]Zapdos-Galar||ChoiceBand|Defiant|CloseCombat,ThunderousKick,Uturn,BraveBird|Adamant|12,252,,,4,240|||||,,,,,Fighting]Tera Captain|Mismagius|Leftovers|Levitate|Substitute,NastyPlot,DrainingKiss,ShadowBall|Modest|56,,,252,,200||,0,,,,|||,,,,,Fairy]Vikavolt||FocusSash|Levitate|StickyWeb,Discharge,BugBuzz,ThunderWave|Modest|252,,,252,,4||,0,,,,|||,,,,,Bug","Clefable||MentalHerb|MagicGuard|Moonlight,Thunderbolt,ThunderWave,IceBeam|Calm|252,,108,24,124,||,0,,,,|S||,,,,,Fairy]Tera Captain|Excadrill|LifeOrb|SandRush|Earthquake,TeraBlast,RapidSpin,IronHead|Jolly|,252,16,,80,160|||||,,,,,Ice]Tyranitar||Leftovers|SandStream|StealthRock,KnockOff,RockSlide,IceBeam||252,144,,,,112|||||,,,,,Rock]Tauros-Paldea-Aqua||ChoiceScarf|Intimidate|CloseCombat,WaveCrash,AquaJet,Earthquake|Jolly|4,252,,,,252|||||,,,,,Fighting]Ceruledge||ShucaBerry|WeakArmor|SwordsDance,BitterBlade,ShadowSneak,Poltergeist|Adamant|160,252,4,,,92|||||,,,,,Fire]Mandibuzz||HeavyDutyBoots|Overcoat|Roost,BraveBird,KnockOff,Uturn|Impish|252,,252,,4,|||||,,,,,Dark"], + ["Palafin||LightBall|ZerotoHero|Fling,Acrobatics,Taunt,JetPunch|Adamant|240,252,,,,16|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|CalmMind,Recover,AuraSphere,Psyshock|Timid|252,,72,,,184||,0,,,,|||,,,,,Poison]Meowscarada||HeavyDutyBoots|Protean|KnockOff,LowKick,FlowerTrick,Uturn|Jolly|56,252,,,,200|||||,,,,,Grass]Scizor||MetalCoat|Technician|SwordsDance,BulletPunch,CloseCombat,KnockOff|Adamant|212,252,,,,44|||||,,,,,Bug]Tera Captain|Comfey|LifeOrb|Triage|CalmMind,DrainingKiss,TeraBlast,Encore|Timid|184,,,252,,72||,0,,,,|||,,,,,Fighting]Clodsire||BlackSludge|Unaware|Toxic,Recover,PoisonJab,Earthquake|Careful|252,4,,,252,|||||,,,,,Poison","Iron Valiant||EjectPack|QuarkDrive|SpiritBreak,CloseCombat,ZenHeadbutt,Taunt|Jolly|,252,48,,,208|||||,,,,,Fairy]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SwordsDance,IvyCudgel,PowerWhip,Trailblaze|Jolly|,252,,,4,252|||||,Poison,,,,Water]Ting-Lu||WeaknessPolicy|VesselofRuin|Earthquake,Payback,Whirlwind,Spikes|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|ThundurusTherian|HeavyDutyBoots|VoltAbsorb|Thunderbolt,TeraBlast,Uturn,Taunt|Modest|172,,,252,,84|||||,,,,,Ice]Heatran||ChopleBerry|FlameBody|StealthRock,LavaPlume,EarthPower,Taunt|Modest|252,,,240,,16||,0,,,,|||,,,,,Fire]Weezing||RockyHelmet|Levitate|SludgeBomb,Flamethrower,WillOWisp,Taunt|Bold|252,,252,,4,||,0,,,,|||,,,,,Poison"], + ["Tera Captain|Excadrill|ChoiceScarf|MoldBreaker|Earthquake,IronHead,RapidSpin,StealthRock|Adamant|,252,128,,,128|||||,,,,,Ground]Amoonguss||RedCard|Regenerator|Spore,ClearSmog,GigaDrain,SludgeBomb|Calm|240,,168,,100,||,0,,,,|||,,,,,Grass]Tyranitar||HeavyDutyBoots|SandStream|KnockOff,StoneEdge,ThunderWave,StealthRock|Adamant|252,180,,,76,|||||,,,,,Rock]Zapdos||HeavyDutyBoots|Pressure|Hurricane,Roost,ThunderWave,Uturn|Bold|252,,252,4,,|||||,,,,,Electric]Keldeo||ChoiceSpecs|Justified|HydroPump,Surf,IcyWind,FlipTurn|Timid|,,56,252,,200|||||,,,,,Water]Latios||ChoiceSpecs|Levitate|DracoMeteor,LusterPurge,Thunderbolt,Memento|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon","Tera Captain|Latias|Leftovers|Levitate|StoredPower,AuraSphere,CalmMind,Recover|Bold|252,,228,,,28||,0,,,,|||,,,,,Steel]Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,PsychoCut,SwordsDance,Encore|Jolly|,252,,,4,252|||||,,,,,Bug]Tera Captain|Lokix|ChoiceBand|TintedLens|FirstImpression,LeechLife,KnockOff,Uturn|Adamant|,252,,,4,252|||||,,,,,Bug]Mandibuzz||HeavyDutyBoots|Overcoat|FoulPlay,Uturn,KnockOff,Roost|Careful|252,,4,,252,|||||,,,,,Bug]Sandy Shocks||ShucaBerry|Protosynthesis|Thunderbolt,EarthPower,VoltSwitch,Spikes|Timid|,,4,252,,252||,0,,,,|||,,,,,Bug]Bronzong||AbilityShield|Levitate|GyroBall,Earthquake,Rest,StealthRock|Relaxed|252,,168,,88,||,,,,,0|||,,,,,Bug"], + ["Gouging Fire||HeavyDutyBoots|Protosynthesis|MorningSun,DragonDance,FlareBlitz,DragonClaw|Jolly|88,252,,,,168|||||,,,,,Fire]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,FlipTurn,DragonPulse|Timid|12,,,244,,252|||||,,,,,Water]Corviknight||Leftovers|Pressure|Roost,Taunt,BraveBird,Uturn|Careful|252,,4,,252,|||||,,,,,Flying]Meowscarada||ChoiceScarf|Protean|PlayRough,KnockOff,Uturn,TripleAxel|Jolly|56,252,,,,200|||||,,,,,Grass]Tera Captain|Torkoal|HeatRock|Drought|Yawn,StealthRock,RapidSpin,LavaPlume|Relaxed|248,,252,,4,|||||,,,,,Steel]Latias||RoseliBerry|Levitate|DragonPulse,CalmMind,MistBall,Recover|Bold|252,,96,,,160||,0,,,,|||,,,,,Dragon","Iron Valiant||BoosterEnergy|QuarkDrive|DestinyBond,FocusBlast,Thunderbolt,Moonblast|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|SamurottHisui|ChoiceScarf|Sharpness|CeaselessEdge,KnockOff,AquaCutter,FlipTurn|Adamant|,252,,,4,252|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,HeatWave,FocusBlast,Uturn|Timid|,,,252,4,252|||||,,,,,Flying]Tera Captain|Cresselia|Leftovers|Levitate|LunarDance,Thunderbolt,Moonblast,Moonlight|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison]Grafaiai||BlackSludge|Prankster|KnockOff,RainDance,Encore,Toxic|Careful|252,,192,,64,|||||,,,,,Poison]Duraludon||Eviolite|LightMetal|ThunderWave,BodyPress,FlashCannon,DracoMeteor|Bold|252,,252,4,,||,0,,,,|||,,,,,Steel"], + ["Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,CloseCombat,IcePunch,Encore|Adamant|72,252,,,4,180|||||,,,,,Water]Zapdos||ScopeLens|Static|Uturn,Roost,ThunderWave,AirCutter|Timid|248,,,,164,96|||||,,,,,Electric]Ting-Lu||Leftovers|VesselofRuin|Spikes,Whirlwind,Payback,Earthquake|Careful|248,,,,200,60|||||,,,,,Dark]Tera Captain|Suicune|Leftovers|Pressure|IceBeam,Scald,Substitute,Roar|Bold|248,,248,,,12||,0,,,,|||,,,,,Steel]Kyurem||AssaultVest|Pressure|FreezeDry,DragonTail,IceBeam,EarthPower|Timid|120,,,252,,136|||||,,,,,Dragon]Altaria||RockyHelmet|NaturalCure|BraveBird,WillOWisp,Roost,Defog|Impish|252,,200,,,56|||||,,,,,Flying","Latios||ChoiceSpecs|Levitate|DracoMeteor,Psychic,Surf,Trick|Modest|4,,,252,4,248||,0,,,,|||,,,,,Dragon]Ursaluna-Bloodmoon||PasshoBerry|MindsEye|CalmMind,BloodMoon,EarthPower,Moonlight|Modest|240,,4,104,160,||,0,,,,|||,,,,,Ground]Blaziken||ProtectivePads|SpeedBoost|SwordsDance,FlareBlitz,CloseCombat,Protect|Adamant|,252,,,88,168|||||,,,,,Fire]Rillaboom||AssaultVest|GrassySurge|WoodHammer,GrassyGlide,LowKick,Uturn|Adamant|176,248,,,,84|||||,,,,,Grass]Tera Captain|Blastoise|LifeOrb|Torrent|HydroPump,Surf,FlashCannon,ShellSmash|Modest|80,,,244,,184||,0,,,,|||,,,,,Water]Klefki||LightClay|Prankster|PlayRough,Spikes,Reflect,LightScreen|Careful|252,,8,,248,|||||,,,,,Steel"], + ["Tera Captain|Mudsdale|Leftovers|Stamina|Curse,Earthquake,RockSlide,BodyPress|Careful|252,,4,,252,|||||,,,,,Water]Zapdos||HeavyDutyBoots|Pressure|Uturn,Roost,Discharge,Hurricane|Timid|,,4,252,,252|||||,,,,,Flying]Meowscarada||HeavyDutyBoots|Protean|Uturn,TripleAxel,KnockOff,FlowerTrick|Adamant|24,252,,,,232|||||,,,,,Dark]Arcanine-Hisui||ChoiceBand|RockHead|FlareBlitz,HeadSmash,ExtremeSpeed,WildCharge|Jolly|40,252,,,,216|||||,,,,,Fire]Tera Captain|Latias|WeaknessPolicy|Levitate|DragonDance,DragonClaw,Earthquake,StoredPower|Naive|40,252,,,,216|||||,,,,,Poison]Gholdengo||AssaultVest|GoodasGold|MakeItRain,ShadowBall,ThunderWave,Recover|Calm|252,,,4,252,||,0,,,,|||,,,,,Ghost","Tera Captain|Quaquaval|HeavyDutyBoots|Moxie|AquaStep,SwordsDance,IceSpinner,Roost|Jolly|164,244,,,,100|||||,,,,,Electric]Garchomp||RockyHelmet|RoughSkin|SwordsDance,StealthRock,Outrage,Earthquake|Jolly|172,140,,,,196|||||,,,,,Ice]Overqwil||SitrusBerry|Intimidate|Crunch,BarbBarrage,AquaJet,Spikes|Careful|252,,,,232,24|||||,,,,,Water]Uxie||LightClay|Levitate|LightScreen,Reflect,Uturn,ThunderWave|Serious|252,,84,,152,20|||||,,,,,Dragon]Talonflame||HeavyDutyBoots|FlameBody|Roost,BraveBird,Uturn,FlareBlitz|Jolly|248,28,,,,232|||||,,,,,Poison]Gholdengo||ChoiceScarf|GoodasGold|ShadowBall,MakeItRain,Trick,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Grass"], + ["Swampert||RindoBerry|Torrent|FlipTurn,MirrorCoat,StealthRock,Earthquake|Careful|252,96,,,140,20|||||,,,,,Water]Vikavolt||TerrainExtender|Levitate|StickyWeb,ElectricTerrain,BugBuzz,VoltSwitch|Calm|252,,,,220,36||,0,,,,|||,,,,,Bug]Iron Valiant||LifeOrb|QuarkDrive|DrainPunch,XScissor,SwordsDance,ZenHeadbutt|Jolly|148,184,,,,176|||||,,,,,Fairy]Excadrill||ChoiceScarf|MoldBreaker|RapidSpin,Earthquake,IronHead,PoisonJab|Adamant|,120,,,136,252|||||,,,,,Ground]Tera Captain|Primarina|KeeBerry|LiquidVoice|Substitute,DrainingKiss,PsychicNoise,CalmMind|Bold|252,,236,,,20||,0,,,,|||,,,,,Poison]Dragonite||LifeOrb|Multiscale|Outrage,DragonDance,ExtremeSpeed,Encore|Adamant|24,252,,,,232|||||,,,,,Dragon","Greninja-Bond||LifeOrb|BattleBond|HydroPump,GrassKnot,IceBeam,GunkShot|Naive|,32,20,248,,208|||||,,,,,Water]Iron Treads||Leftovers|QuarkDrive|Earthquake,StoneEdge,RapidSpin,KnockOff|Jolly|252,124,,,20,112|||||,,,,,Ground]Muk||BlackSludge|PoisonTouch|GunkShot,KnockOff,Haze,Toxic|Careful|248,,104,,156,|||||,,,,,Poison]Tera Captain|IronHands|Leftovers|QuarkDrive|SwordsDance,DrainPunch,IcePunch,ThunderPunch|Adamant|,156,8,,252,92|||||,,,,,Grass]Chi-Yu||HeavyDutyBoots|BeadsofRuin|Flamethrower,DarkPulse,WillOWisp,FlameCharge|Timid|96,,,252,,160|||||,,,,,Dark]Uxie||Leftovers|Levitate|StealthRock,Encore,FoulPlay,Uturn|Impish|248,,252,,8,|||||,,,,,Psychic"], + ["Greninja-Bond||LifeOrb|BattleBond|Surf,IceBeam,GrassKnot,WaterShuriken|Timid|88,,,252,4,164|||||,Ghost,,,,Water]Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,RageFist,DrainPunch,Protect|Careful|248,,,,188,72|||||,,,,,Dragon]Rotom-Wash||SitrusBerry|Levitate|WillOWisp,NastyPlot,HydroPump,VoltSwitch|Bold|252,,176,,80,||,0,,,,|||,,,,,Electric]Donphan||SitrusBerry|Sturdy|StealthRock,Earthquake,StoneEdge,RapidSpin|Adamant|248,188,,,,72|||||,,,,,Ground]Iron Moth||HeavyDutyBoots|QuarkDrive|FieryDance,SludgeWave,MorningSun,Agility|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Tera Captain|Glastrier|CustapBerry|ChillingNeigh|SwordsDance,IcicleCrash,CloseCombat,Endure|Impish|120,136,252,,,|||||,,,,,Fairy","Tera Captain|Gengar|WiseGlasses|CursedBody|NastyPlot,TeraBlast,Psychic,Thunderbolt|Timid|,,4,252,,252||,0,,,,|||,,,,,Water]Mamoswine||Leftovers|ThickFat|Trailblaze,Earthquake,IcicleCrash,StoneEdge|Adamant|32,252,,,,224|||||,,,,,Ice]Tornadus-Therian||ChoiceSpecs|Regenerator|Hurricane,Uturn,FocusBlast,HeatWave|Timid|88,,,252,,168|||||,,,,,Flying]Palafin-Hero||ChoiceScarf|ZerotoHero|FlipTurn,WaveCrash,CloseCombat,IcePunch|Adamant|192,252,,,,64|||||,,,,,Water]Kingambit||AirBalloon|SupremeOverlord|SuckerPunch,KowtowCleave,Substitute,IronHead|Adamant|248,252,,,8,|||||,,,,,Dark]Tsareena||Leftovers|QueenlyMajesty|KnockOff,Uturn,RapidSpin,PlayRough|Impish|252,,128,,128,|||||,,,,,Grass"], + ["Latios||SoulDew|Levitate|Agility,Psyshock,LusterPurge,DragonPulse|Modest|8,,,252,,248||,0,,,,|||,,,,,Dragon]Tyranitar||FocusSash|SandStream|StealthRock,RockTomb,Earthquake,Taunt|Jolly|,84,172,,,252|||||,,,,,Rock]Tera Captain|Excadrill|ChoiceScarf|MoldBreaker|Earthquake,IronHead,RockSlide,RapidSpin|Adamant|,252,,,4,252|||||,,,,,Ghost]Breloom||ExpertBelt|Technician|SwordsDance,BulletSeed,MachPunch,ZenHeadbutt|Adamant|,252,,,4,252|||||,,,,,Grass]Alomomola||HeavyDutyBoots|Regenerator|FlipTurn,Scald,MirrorCoat,HealingWish|Relaxed|252,,108,,148,||,,,,,0|||,,,,,Water]Fezandipiti||HeavyDutyBoots|ToxicChain|Moonblast,AcidSpray,Uturn,Roost|Timid|252,,,76,,180|||||,,,,,Poison","Tera Captain|SandyShocks|LightClay|Protosynthesis|StealthRock,EarthPower,Reflect,LightScreen|Timid|252,,,48,,208||,0,,,,|||,,,,,Ghost]Tera Captain|Lucario|LifeOrb|Steadfast|WorkUp,FocusBlast,ExtremeSpeed,VacuumWave|Lonely|,252,,68,,188|||||,,,,,Normal]Meowscarada||HeavyDutyBoots|Protean|KnockOff,FlowerTrick,Uturn,PowerGem|Jolly|,252,92,12,,152|||||,,,,,Grass]Cinccino||LoadedDice|Technician|TidyUp,TailSlap,BulletSeed,RockBlast|Jolly|,252,,,4,252|||||,,,,,Normal]Uxie||Leftovers|Levitate|Uturn,PainSplit,RainDance,ThunderWave|Careful|252,,92,,164,|||||,,,,,Psychic]Iron Bundle||BoosterEnergy|QuarkDrive|HydroPump,IceBeam,FreezeDry,Taunt|Timid|16,,,252,,240||,0,,,,|||,,,,,Ice"], + ["Blaziken||HeavyDutyBoots|SpeedBoost|UpperHand,FlareBlitz,CloseCombat,SwordsDance|Adamant|,252,,,4,252|||||,,,,,Fire]Tera Captain|LandorusTherian|ChoiceScarf|Intimidate|TeraBlast,Earthquake,Uturn,StealthRock|Jolly|,252,36,,,220|||||,,,,,Flying]Iron Valiant||BoosterEnergy|QuarkDrive|Thunderbolt,Moonblast,AuraSphere,CalmMind|Timid|,,,252,88,168||,0,,,,|||,,,,,Fairy]Ariados||FocusSash|Sniper|StickyWeb,ShadowSneak,SuckerPunch,ToxicSpikes|Adamant|252,252,,,4,|||||,,,,,Bug]Corviknight||RockyHelmet|MirrorArmor|Uturn,Roost,BodyPress,IronDefense|Impish|252,,96,,160,|||||,,,,,Flying]Samurott-Hisui||FocusSash|Sharpness|CeaselessEdge,AquaJet,AerialAce,KnockOff|Jolly|,252,,,4,252|||||,,,,,Water","Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,Trailblaze,SwordsDance,Spikes|Jolly|,252,,,4,252|||||,,,,,Rock]Tera Captain|MoltresGalar|ChartiBerry|Berserk|FieryWrath,AirSlash,NastyPlot,Agility|Modest|,,24,252,,232||,0,,,,|||,,,,,Flying]Palafin||PunchingGlove|ZerotoHero|JetPunch,IcePunch,DrainPunch,BulkUp|Adamant|,216,,,52,240|||||,,,,,Water]Gouging Fire||MentalHerb|Protosynthesis|FlareBlitz,Earthquake,DragonDance,MorningSun|Jolly|72,152,76,,,208|||||,,,,,Fire]Kilowattrel||ChoiceScarf|VoltAbsorb|Thunderbolt,Hurricane,VoltSwitch,FeatherDance|Timid|72,,,252,,184||,0,,,,|||,,,,,Electric]Palossand||ChoiceSpecs|WaterCompaction|EarthPower,ShadowBall,StealthRock,Trick|Modest|208,,,252,,48||,0,,,,|||,,,,,Ghost"], + ["Tera Captain|WalkingWake|AssaultVest|Protosynthesis|HydroSteam,TeraBlast,FlipTurn,DracoMeteor|Timid|8,,,244,4,252|||||,,,,,Flying]Venusaur||FocusSash|Chlorophyll|Growth,WeatherBall,GigaDrain,SludgeBomb|Modest|252,,,252,4,||,0,,,,|||,,,,,Grass]Torkoal||HeavyDutyBoots|Drought|LavaPlume,RapidSpin,StealthRock,SunnyDay|Relaxed|248,,252,8,,||,,,,,0|||,,,,,Fire]Roaring Moon||ChoiceBand|Protosynthesis|KnockOff,IronHead,Outrage,Uturn|Jolly|32,220,,,4,252|||||,,,,,Dragon]Tera Captain|Comfey|Leftovers|Triage|CalmMind,GigaDrain,DrainingKiss,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Bronzong||ColburBerry|Levitate|PsychicNoise,FlashCannon,IronDefense,BodyPress|Bold|252,,252,,4,||,0,,,,|||,,,,,Steel","Iron Valiant||BoosterEnergy|QuarkDrive|CalmMind,Moonblast,Psyshock,AuraSphere|Timid|56,,,252,,200||,0,,,,|||,,,,,Fairy]Tera Captain|Greninja|ChoiceScarf|Protean|IceBeam,Uturn,UpperHand,DarkPulse|Hasty|,24,,252,,232|||||,,,,,Ice]Gliscor||ToxicOrb|PoisonHeal|StealthRock,Earthquake,Uturn,Protect|Jolly|244,,80,,56,128|||||,,,,,Ground]Rotom-Wash||ChoiceScarf|Levitate|Trick,ThunderWave,HydroPump,VoltSwitch|Calm|252,,,,96,160||,0,,,,|||,,,,,Electric]Tera Captain|Appletun|RockyHelmet|ThickFat|DragonPulse,Amnesia,IronDefense,Recover|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy]Slowking-Galar||MentalHerb|Regenerator|Toxic,SludgeBomb,Flamethrower,ChillyReception|Sassy|248,,24,,236,||,0,,,,7|S||,,,,,Poison"], + ["Darkrai||LifeOrb|BadDreams|DarkPulse,FocusBlast,Thunder,NastyPlot|Timid|,,,252,4,252||29,0,,,,|||,,,,,Dark]Cinderace||ChoiceBand|Libero|PyroBall,HighJumpKick,IronHead,Uturn|Jolly|72,252,,,,184|||||,,,,,Fire]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|HornLeech,IvyCudgel,Spikes,Taunt|Jolly|,252,,,4,252|||||,,,,,Water]Gliscor||ChoiceBand|HyperCutter|Earthquake,KnockOff,Uturn,FireFang|Adamant|136,252,,,,120|||||,,,,,Ground]Gholdengo||RockyHelmet|GoodasGold|Hex,FocusBlast,ThunderWave,Recover|Bold|252,,248,,,8||,0,,,,|||,,,,,Steel]Smeargle||FocusSash|Technician|RapidSpin,Nuzzle,TidyUp,StickyWeb|Impish|236,,248,,,24|||||,,,,,Normal","Darkrai||ExpertBelt|BadDreams|DarkPulse,IceBeam,SludgeBomb,FocusBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|UrshifuRapidStrike|LumBerry|UnseenFist|SurgingStrikes,CloseCombat,SwordsDance,Trailblaze|Jolly|,184,,,84,240|||||,,,,,Poison]Scizor||SitrusBerry|Technician|BulletPunch,SwordsDance,QuickAttack,KnockOff|Adamant|248,252,,,8,|||||,,,,,Bug]Tera Captain|Diancie|Leftovers|ClearBody|Moonblast,ScorchingSands,Spikes,Encore|Bold|248,,252,,8,||,0,,,,|||,,,,,Water]Slowking-Galar||WeaknessPolicy|Regenerator|SludgeBomb,Flamethrower,Psyshock,IceBeam|Modest|240,,76,76,116,||,0,,,,|||,,,,,Poison]Tauros||AssaultVest|SheerForce|BodySlam,CloseCombat,Blizzard,Earthquake|Hasty|128,144,,100,,136|||||,,,,,Normal"], + ["Meowscarada||ChoiceScarf|Protean|FlowerTrick,LowKick,TripleAxel,Uturn|Jolly|,252,24,,,232|||||,,,,,Grass]Gyarados||ClearAmulet|Moxie|DragonDance,Waterfall,Earthquake,BodySlam|Adamant|,252,112,,,144|||||,,,,,Water]Tera Captain|Latias|ChoiceScarf|Levitate|DracoMeteor,MistBall,EnergyBall,Surf|Modest|4,,,252,252,||,0,,,,|||,,,,,Water]Heatran||Leftovers|FlameBody|MagmaStorm,FlashCannon,EarthPower,StealthRock|Modest|4,,252,252,,||,0,,,,|||,,,,,Fire]Enamorus||WeaknessPolicy|CuteCharm|Moonblast,EarthPower,GrassKnot,Taunt|Timid|,,212,124,,172||,0,,,,|||,,,,,Fairy]Smeargle||FocusSash|OwnTempo|Spore,StickyWeb,MortalSpin,BurningBulwark|Jolly|,252,,,4,252|||||,,,,,Normal","Darkrai||LifeOrb|BadDreams|NastyPlot,SludgeBomb,DarkPulse,IceBeam|Timid|4,,,252,,252||,0,,,,|||,,,,,Dark]Landorus-Therian||RockyHelmet|Intimidate|StealthRock,Taunt,Uturn,Earthquake|Impish|248,,252,,,8|||||,,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|HornLeech,IvyCudgel,Uturn,Encore|Jolly|,252,,,4,252|||||,Poison,,,,Water]Blastoise||WhiteHerb|Torrent|HydroPump,IceBeam,RapidSpin,ShellSmash|Timid|,,,252,4,252|||||,,,,,Ground]Archaludon||AssaultVest|Stamina|DracoMeteor,FlashCannon,BodyPress,ElectroShot|Modest|200,,,252,,56||,0,,,,|||,,,,,Steel]Clodsire||Leftovers|Unaware|Toxic,StealthRock,Recover,Earthquake|Careful|248,,8,,252,|||||,,,,,Flying"], + ["Garchomp||LoadedDice|RoughSkin|SwordsDance,ScaleShot,Substitute,IronHead|Jolly|100,252,,,,156|||||,,,,,Dragon]Darkrai||ChoiceScarf|BadDreams|DarkPulse,IceBeam,SludgeBomb,Trick|Modest|84,,,252,,172||,0,,,,|||,,,,,Dark]Tera Captain|Zapdos|YacheBerry|Static|Discharge,Hurricane,Uturn,Roost|Bold|252,,216,,40,|||||,,,,,Electric]Blastoise||HeavyDutyBoots|Torrent|RapidSpin,FlipTurn,Surf,AuraSphere|Sassy|252,,20,,236,|||||,,,,,Water]Uxie||LightClay|Levitate|StealthRock,Uturn,LightScreen,Reflect|Careful|252,,40,,216,|||||,,,,,Psychic]Tera Captain|Revavroom|MetalCoat|Filter|ShiftGear,GunkShot,IronHead,MagnetRise|Jolly|80,252,,,,176|||||,,,,,Steel","Zapdos-Galar||LifeOrb|Defiant|CloseCombat,Uturn,BraveBird,ThunderousKick|Jolly|,252,,,4,252|||||,,,,,Fighting]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,CloseCombat,MightyCleave,ZenHeadbutt|Adamant|4,252,,,72,180|||||,Fighting,,,,Rock]Iron Bundle||HeavyDutyBoots|QuarkDrive|FreezeDry,IceBeam,HydroPump,Substitute|Timid|88,,,252,,168||,0,,,,|||,,,,,Ice]Vikavolt||ChestoBerry|Levitate|ElectricTerrain,BugBuzz,StickyWeb,Thunderbolt|Modest|252,,,252,,||,0,,,,|||,,,,,Bug]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,Toxic,StealthRock,KnockOff|Impish|228,,184,,96,|||||,,,,,Steel]Tera Captain|Mismagius|Leftovers|Levitate|ShadowBall,DazzlingGleam,NastyPlot,Substitute|Timid|,,,252,40,216||,0,,,,|||,,,,,Fairy"], + ["Grimmsnarl||LightClay|Prankster|Reflect,LightScreen,Taunt,PartingShot|Bold|252,,252,,,||,0,,,,|||,,,,,Dark]Mamoswine||ChopleBerry|ThickFat|IceShard,IcicleCrash,HighHorsepower,SmackDown|Adamant|,252,,,4,252|||||,,,,,Ice]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|Agility,Psychic,Flamethrower,BugBuzz|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Cyclizar||SitrusBerry|Regenerator|RapidSpin,ShedTail,Uturn,Overheat|Timid|248,,,8,,252|||||,,,,,Dragon]Tera Captain|BraviaryHisui|AguavBerry|TintedLens|CalmMind,EsperWing,Hurricane,TeraBlast|Timid|,,,252,,252||,0,,,,|S||,,,,,Fairy]Kingambit||BlackGlasses|SupremeOverlord|SwordsDance,SuckerPunch,KowtowCleave,ZenHeadbutt|Adamant|,252,,,4,252|||||,,,,,Dark","Rillaboom||ChoiceBand|GrassySurge|Uturn,GrassyGlide,BrickBreak,KnockOff|Adamant|240,252,,,,16|||S||,,,,,Grass]Tera Captain|Hawlucha|GrassySeed|Unburden|SwordsDance,HighJumpKick,Acrobatics,TeraBlast|Adamant|252,252,4,,,|||S||,,,,,Electric]Iron Boulder||BoosterEnergy|QuarkDrive|ZenHeadbutt,Megahorn,MightyCleave,SwordsDance|Jolly|,252,,,4,252|||||,Fighting,,,,Rock]Urshifu-Rapid-Strike||LifeOrb|UnseenFist|SurgingStrikes,AquaJet,PoisonJab,DrainPunch|Adamant|,252,4,,,252|||||,,,,,Water]Tera Captain|HoopaUnbound|Leftovers|Magician|DarkPulse,Psychic,TeraBlast,NastyPlot|Timid|,,,252,4,252||,0,,,,|||,,,,,Ground]Skarmory||RockyHelmet|Sturdy|BodyPress,IronDefense,Roost,StealthRock|Impish|252,,252,,,||,0,,,,|S||,,,,,Stellar"], + ["Mamoswine||RockyHelmet|Oblivious|IcicleSpear,Earthquake,IceShard,StealthRock|Adamant|168,252,12,,60,16|||||,,,,,Ice]Tera Captain|Latias|Leftovers|Levitate|DragonPulse,MistBall,Recover,CalmMind|Timid|48,,252,4,28,176||,0,,,,|||,,,,,Poison]Empoleon||AdrenalineOrb|Competitive|Surf,FlipTurn,Roost,VacuumWave|Bold|216,,72,16,,204|||||,,,,,Water]Samurott-Hisui||ChopleBerry|Sharpness|CeaselessEdge,RazorShell,FlipTurn,SwordsDance|Adamant|248,252,,,,8|||||,,,,,Water]Muk||RockyHelmet|StickyHold|KnockOff,IcePunch,PainSplit,DrainPunch|Impish|252,,248,,8,|||||,,,,,Poison]Zapdos||HeavyDutyBoots|Static|Thunderbolt,Hurricane,Roost,Uturn|Timid|,,4,252,,252|||||,,,,,Electric","Tera Captain|LandorusTherian|ChoiceBand|Intimidate|TeraBlast,Earthquake,Uturn,StoneEdge|Jolly|4,252,,,,252|||||,,,,,Dark]Gurdurr||Eviolite|IronFist|Defog,DrainPunch,IcePunch,FirePunch|Careful|252,,4,,252,|||||,,,,,Fighting]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,VoltSwitch,Trick,Thunderbolt|Modest|120,,112,196,80,||,0,,,,|||,,,,,Electric]Weavile||FocusSash|Pressure|KnockOff,SwordsDance,TripleAxel,LowKick|Adamant|96,156,128,,,128|||||,,,,,Dark]Skeledirge||Leftovers|Unaware|Substitute,TorchSong,ShadowBall,SlackOff|Calm|208,,112,24,164,||,0,,,,|||,,,,,Fire]Toxapex||BlackSludge|Regenerator|Surf,ToxicSpikes,Recover,Haze|Bold|232,,96,,180,||,0,,,,|||,,,,,Poison"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,SpiritBreak,KnockOff,IcePunch|Jolly|16,252,,,,240|||||,,,,,Fairy]Tera Captain|GreninjaBond|LifeOrb|BattleBond|DarkPulse,WaterShuriken,IceBeam,Surf|Modest|,,,252,24,232|||||,Ghost,,,,Water]Iron Treads||ClearAmulet|QuarkDrive|StealthRock,Earthquake,IceSpinner,RapidSpin|Jolly|16,252,,,,240|||||,,,,,Ground]Hydreigon||ChoiceScarf|Levitate|DracoMeteor,DarkPulse,Flamethrower,Uturn|Timid|104,,,252,,152|||||,,,,,Dark]Zapdos||HeavyDutyBoots|Pressure|Thunderbolt,HeatWave,Hurricane,Roost|Modest|236,,,252,,20||,0,,,,|||,,,,,Electric]Weezing||BlackSludge|Levitate|ToxicSpikes,ClearSmog,Flamethrower,Memento|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison","Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,ZenHeadbutt,CloseCombat|Jolly|,252,,,16,240|||||,,,,,Rock]Manaphy||Leftovers|Hydration|SkillSwap,Uturn,Scald,Psychic|Sassy|140,,,116,252,|||||,,,,,Water]Kommo-o||ThroatSpray|Bulletproof|ClangorousSoul,ClangingScales,FlashCannon,DrainPunch|Timid|,,96,96,64,252|||||,,,,,Poison]Brambleghast||HeavyDutyBoots|WindRider|StrengthSap,RapidSpin,Poltergeist,LeechSeed|Adamant|252,252,4,,,|||||,,,,,Grass]Tera Captain|Magnezone|ChoiceSpecs|Analytic|VoltSwitch,Thunderbolt,FlashCannon,TeraBlast|Modest|252,,4,252,,||,0,,,,|||,,,,,Fairy]Delphox||ChoiceScarf|Magician|Trick,FireBlast,FocusBlast,Psychic|Modest|4,,,252,,252||,0,,,,|||,,,,,Fire"], + ["Tera Captain|Latias|Leftovers|Levitate|CalmMind,Recover,ShadowBall,DrainingKiss|Timid|252,,104,,,152||,0,,,,|S||,,,,,Ghost]Amoonguss||RockyHelmet|Regenerator|SludgeBomb,GigaDrain,Spore,Toxic|Bold|252,,252,,4,||,0,,,,|S||,,,,,Grass]Great Tusk||BoosterEnergy|Protosynthesis|KnockOff,HeadlongRush,BulkUp,CloseCombat|Jolly|248,4,4,,,252|||S||,,,,,Ground]Greninja||ChoiceSpecs|Protean|Surf,DarkPulse,Uturn,ToxicSpikes|Timid|24,,,252,,232|||S||,,,,,Water]Tinkaton||RedCard|MoldBreaker|StealthRock,KnockOff,ThunderWave,GigatonHammer|Careful|252,,116,,140,|||S||,,,,,Fairy]Heatran||ChopleBerry|FlashFire|LavaPlume,Taunt,EarthPower,Protect|Calm|252,,88,,140,28||,0,,,,|||,,,,,Fire","Cinderace||HeavyDutyBoots|Libero|Uturn,ZenHeadbutt,PyroBall,CourtChange|Jolly|72,252,,,,184|||||,,,,,Fire]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,Thunderbolt,Substitute,CalmMind|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Ditto||ChoiceScarf|Imposter|Transform|Timid|252,,,,,252||,30,,,,|||,,,,,Normal]Tera Captain|UrshifuRapidStrike|MysticWater|UnseenFist|CloseCombat,SurgingStrikes,AquaJet,IceSpinner|Adamant|60,252,,,,196|||||,,,,,Water]Tera Captain|Bastiodon|HeavyDutyBoots|Sturdy|Roar,StealthRock,FoulPlay,BodyPress|Bold|252,,252,,4,||,0,,,,|||,,,,,Fighting]Necrozma||ColburBerry|PrismArmor|PhotonGeyser,XScissor,Earthquake,DragonDance|Adamant|140,252,,,,116|||||,,,,,Psychic"], + ["Tyranitar||ChoiceScarf|SandStream|IceBeam,IcePunch,KnockOff,Earthquake|Lonely|8,252,,,,248|||||,,,,,Rock]Gardevoir||ChoiceScarf|Synchronize|Moonblast,Trick,Psyshock,HealingWish|Modest|24,,,252,,232||,0,,,,|||,,,,,Psychic]Zoroark-Hisui||HeavyDutyBoots|Illusion|HyperVoice,NastyPlot,ShadowBall,Uturn|Modest|72,,,252,4,180|||||,,,,,Normal]Tera Captain|Latias|Leftovers|Levitate|CalmMind,StoredPower,Substitute,Agility|Timid|40,,,252,,216||,0,,,,|||,,,,,Fairy]Mandibuzz||RockyHelmet|Overcoat|Uturn,Defog,Roost,Toxic|Impish|248,,252,,8,|||||,,,,,Dark]Excadrill||Leftovers|SandRush|SwordsDance,IronHead,Earthquake,RockSlide|Adamant|252,252,,,4,|||||,,,,,Ground","Meowscarada||ChoiceScarf|Overgrow|FlowerTrick,KnockOff,Uturn,Trick|Jolly|,252,,,44,212|||||,,,,,Grass]Zapdos||HeavyDutyBoots|Static|Discharge,HeatWave,VoltSwitch,Roost|Timid|248,,76,,24,160||,0,,,,|||,,,,,Electric]Carbink||MentalHerb|Sturdy|StealthRock,Moonblast,BodyPress,Spikes|Modest|252,,40,148,68,||,0,,,,|||,,,,,Rock]Tera Captain|Mismagius|ChoiceScarf|Levitate|WillOWisp,DazzlingGleam,Trick,Memento|Bold|252,,252,4,,||,0,,,,|||,,,,,Fairy]Tera Captain|GreatTusk|AssaultVest|Protosynthesis|KnockOff,RapidSpin,SupercellSlam,HeadlongRush|Jolly|,216,,,92,200|||||,,,,,Electric]Empoleon||PetayaBerry|Torrent|Substitute,Agility,Surf,Yawn|Modest|60,,12,252,,184||,0,,,,|||,,,,,Water"], + ["Dragonite||HeavyDutyBoots|Multiscale|Agility,FireBlast,IceBeam,DracoMeteor|Modest|,,,252,4,252||,0,,,,|||,,,,,Dragon]Tera Captain|LilligantHisui|WideLens|Hustle|VictoryDance,LeafBlade,IceSpinner,CloseCombat|Adamant|,252,,,4,252|||||,,,,,Grass]Greninja-Bond||LifeOrb|BattleBond|Uturn,Surf,Extrasensory,WaterShuriken|Timid|,,,252,4,252|||||,Ghost,,,,Water]Tera Captain|Krookodile|LifeOrb|Moxie|TeraBlast,Earthquake,KnockOff,ScaleShot|Naive|,252,,4,,252|||||,,,,,Stellar]Iron Moth||PowerHerb|QuarkDrive|MeteorBeam,FlameCharge,EnergyBall,FieryDance|Hasty|,4,,252,,252|||||,,,,,Fire]Gholdengo||Leftovers|GoodasGold|ThunderWave,DazzlingGleam,ShadowBall,Recover|Modest|252,,,252,,||,0,,,,|||,,,,,Steel","Meowscarada||ChoiceScarf|Protean|FlowerTrick,Uturn,KnockOff,TripleAxel|Jolly|68,188,,,,252|||||,,,,,Grass]Slowking||AssaultVest|Regenerator|Surf,FocusBlast,Psychic,IceBeam|Bold|252,,192,,64,||,0,,,,|||,,,,,Water]Sandy Shocks||AssaultVest|Protosynthesis|VoltSwitch,EarthPower,TriAttack,PowerGem|Timid|184,,,,140,184||,0,,,,|||,,,,,Electric]Tera Captain|LandorusTherian|Leftovers|Intimidate|Earthquake,TeraBlast,Uturn,StealthRock|Jolly|252,56,,,,200|||||,,,,,Fairy]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,Psybeam,FireBlast,Defog|Bold|248,,252,,,8||,0,,,,|||,,,,,Poison]Gouging Fire||BoosterEnergy|Protosynthesis|ScaleShot,FlareBlitz,Earthquake,DragonDance|Jolly|56,252,,,,200|||||,,,,,Fire"], + ["Ursaluna-Bloodmoon||ChopleBerry|MindsEye|CalmMind,HyperVoice,EarthPower,Moonlight|Bold|240,,28,132,,104||,0,,,,|||,,,,,Ground]Latios||LifeOrb|Levitate|LusterPurge,Earthquake,Recover,DracoMeteor|Naive|,116,,152,,240|||S||,,,,,Dragon]Klefki||RockyHelmet|Prankster|PlayRough,Spikes,ThunderWave,Rest|Impish|252,,252,,4,|||||,,,,,Steel]Tera Captain|Blastoise|WhiteHerb|Torrent|Liquidation,TeraBlast,IceSpinner,ShellSmash|Jolly|,212,116,,,180|||||,,,,,Electric]Rillaboom||OccaBerry|GrassySurge|GrassyGlide,Uturn,KnockOff,HighHorsepower|Adamant|252,252,,,4,|||||,,,,,Grass]Blaziken||LifeOrb|SpeedBoost|FlareBlitz,CloseCombat,KnockOff,Protect|Adamant|,252,24,,,232|||||,,,,,Fire","Tera Captain|Landorus|ChoiceScarf|SheerForce|GrassKnot,EarthPower,SludgeWave,Uturn|Modest|60,,,252,,196|||||,,,,,Ground]Infernape||MuscleBand|IronFist|Encore,CloseCombat,FlareBlitz,MachPunch|Adamant|64,252,,,4,188|||||,,,,,Fire]Meowscarada||MuscleBand|Protean|KnockOff,BrickBreak,FlowerTrick,Uturn|Jolly|,252,,,100,156|||||,,,,,Grass]Vaporeon||Leftovers|WaterAbsorb|Scald,Wish,Protect,IceBeam|Calm|252,,4,,252,||,0,,,,|||,,,,,Water]Heatran||ChopleBerry|FlashFire|EarthPower,MagmaStorm,WillOWisp,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Fire]Muk-Alola||BlackSludge|PoisonTouch|FirePunch,Curse,KnockOff,DrainPunch|Careful|252,4,,,252,|||||,,,,,Poison"], + ["Iron Valiant||HeavyDutyBoots|QuarkDrive|KnockOff,IcePunch,Taunt,Thunderbolt|Lonely|,252,,12,,244|||||,,,,,Fairy]Garchomp||ChoiceScarf|RoughSkin|DracoMeteor,Earthquake,FireBlast,StealthRock|Rash|,124,,252,,132|||||,,,,,Dragon]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,HeatWave,KnockOff,Taunt|Modest|48,,4,252,,204|||||,,,,,Flying]Tera Captain|Empoleon|HeavyDutyBoots|Torrent|KnockOff,FlipTurn,Roost,Surf|Sassy|252,,,4,252,|||||,,,,,Water]Brambleghast||HeavyDutyBoots|Infiltrator|ShadowSneak,Spikes,LeechSeed,StrengthSap|Impish|252,,248,,,8|||||,,,,,Grass]Tera Captain|Mew|HeavyDutyBoots|Synchronize|FutureSight,Taunt,Surf,ThunderWave|Modest|240,,,252,,16||,0,,,,|||,,,,,Water","Iron Boulder||ChoiceBand|QuarkDrive|MightyCleave,CloseCombat,ZenHeadbutt,QuickAttack|Jolly|,252,,,4,252|||||,,,,,Rock]Skarmory||RockyHelmet|Sturdy|BodyPress,BraveBird,Whirlwind,Roost|Impish|252,,160,,,96|||||,,,,,Steel]Gliscor||ToxicOrb|PoisonHeal|KnockOff,Earthquake,Toxic,Protect|Careful|252,,4,,252,|||||,,,,,Ground]Iron Bundle||ChoiceScarf|QuarkDrive|IceBeam,FreezeDry,HydroPump,FlipTurn|Timid|,,,252,4,252|||||,,,,,Ice]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,Hex,WillOWisp,SlackOff|Bold|252,,172,,84,||,0,,,,|||,,,,,Dark]Clodsire||HeavyDutyBoots|Unaware|Earthquake,PoisonJab,StealthRock,Recover|Careful|248,,168,,92,|||||,,,,,Poison"], + ["Tera Captain|WeezingGalar|RockyHelmet|Levitate|Thunderbolt,WillOWisp,Haze,PainSplit|Bold|252,,4,,252,||,0,,,,|||,,,,,Electric]Iron Bundle||BoosterEnergy|QuarkDrive|FreezeDry,IceBeam,HydroPump,Encore|Timid|,,120,252,,136||,0,,,,|||,,,,,Ice]Krookodile||ChopleBerry|Intimidate|StealthRock,Earthquake,SmackDown,GrassKnot|Adamant|252,212,,,,44|||||,,,,,Ground]Corviknight||WeaknessPolicy|MirrorArmor|IronDefense,BodyPress,PowerTrip,Roost|Impish|252,,40,,216,|||||,,,,,Flying]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|Thunderclap,Thunderbolt,DragonPulse,TeraBlast|Modest|,,76,252,,180||,20,,,,|||,,,,,Water]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,Earthquake,SwordsDance,Psychic|Jolly|,252,,24,,232|||||,,,,,Rock","Tera Captain|Ceruledge|HeavyDutyBoots|FlashFire|BitterBlade,Poltergeist,ShadowSneak,SwordsDance|Adamant|248,172,4,,76,8|||||,,,,,Bug]Tinkaton||SitrusBerry|OwnTempo|GigatonHammer,PlayRough,Encore,StealthRock|Timid|248,,,,16,244|||||,,,,,Fairy]Palafin||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,FlipTurn,CloseCombat|Adamant|200,252,,,,56|||||,,,,,Water]Tera Captain|Farigiraf|AssaultVest|ArmorTail|HyperVoice,Thunderbolt,EnergyBall,Trailblaze|Modest|,,,124,172,212|||||,,,,,Normal]Overqwil||RockyHelmet|Intimidate|Crunch,BarbBarrage,Spikes,Taunt|Impish|180,,252,,,76|||||,,,,,Dark]Great Tusk||AirBalloon|Protosynthesis|Earthquake,TemperFlare,HeavySlam,RapidSpin|Adamant|,252,,,4,252|||||,Fighting,,,,Ground"], + ["Ninetales||HeatRock|Drought|Flamethrower,Encore,WillOWisp,HealingWish|Bold|252,,252,,4,||,0,,,,|||,,,,,Fire]Walking Wake||ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,DragonPulse,Flamethrower|Timid|8,,4,244,,252||,0,,,,|||,,,,,Water]Tera Captain|RagingBolt|ChoiceScarf|Protosynthesis|Thunderbolt,SolarBeam,WeatherBall,VoltSwitch|Modest|56,,,252,,200||,20,,,,|||,,,,,Fire]Gouging Fire||ChoiceBand|Protosynthesis|FlareBlitz,HeatCrash,Outrage,DragonClaw|Jolly|88,168,,,,252|||||,,,,,Fire]Great Tusk||CovertCloak|Protosynthesis|HeadlongRush,CloseCombat,HeadSmash,RapidSpin|Adamant|152,252,,,,104|||||,,,,,Ground]Sawsbuck||LightClay|Chlorophyll|DoubleEdge,Charm,ThunderWave,LightScreen|Careful|252,,,,228,28|||||,,,,,Normal","Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|Synthesis,StompingTantrum,KnockOff,IvyCudgel|Adamant|248,68,,,12,180|||||,Poison,,,,Water]Sneasler||ChoiceBand|PoisonTouch|CloseCombat,Uturn,DireClaw,QuickAttack|Jolly|,152,,,188,168|||||,,,,,Fighting]Ursaluna-Bloodmoon||CustapBerry|MindsEye|Endure,BloodMoon,EarthPower,VacuumWave|Modest|216,,252,,,40||,0,,,,|||,,,,,Ground]Tera Captain|Torterra|SitrusBerry|ShellArmor|StealthRock,HeadlongRush,GrassKnot,DoubleEdge|Brave|248,8,,,252,|||||,,,,,Ground]Zapdos||HeavyDutyBoots|Static|Hurricane,ThunderWave,Roost,Uturn|Bold|248,,204,,,56|||||,,,,,Electric]Scizor||LifeOrb|Technician|SwordsDance,BulletPunch,QuickAttack,CloseCombat|Adamant|248,252,,,8,|||||,,,,,Bug"], + ["Great Tusk||BoosterEnergy|Protosynthesis|CloseCombat,IceSpinner,HeavySlam,RapidSpin|Jolly|,252,56,,,200|||||,Fighting,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|DracoMeteor,Surf,CalmMind,HealingWish|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Greninja-Bond||LifeOrb|BattleBond|Liquidation,NightSlash,GunkShot,SwordsDance|Jolly|,252,96,,,160|||||,Ghost,,,,Water]Tinkaton||RockyHelmet|Pickpocket|GigatonHammer,KnockOff,StealthRock,Reflect|Impish|248,,252,,,8|||||,,,,,Fairy]Rillaboom||Leftovers|GrassySurge|GrassyGlide,HighHorsepower,KnockOff,Uturn|Jolly|,252,40,,,216|||||,,,,,Grass]Tera Captain|Frosmoth|HeavyDutyBoots|IceScales|IceBeam,BugBuzz,TeraBlast,QuiverDance|Timid|,,68,252,,188||,0,,,,|||,,,,,Water","Tera Captain|Heatran|AssaultVest|FlashFire|HeatCrash,MagmaStorm,TeraBlast,StoneEdge|Brave|248,252,,8,,|||||,,,,,Bug]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SwordsDance,Trailblaze,IvyCudgel,Uturn|Adamant|248,16,64,,,180|||||,,,,,Water]Tera Captain|Gliscor|ChoiceScarf|PoisonHeal|StoneEdge,TeraBlast,Uturn,HighHorsepower|Jolly|64,252,,,,192|||||,,,,,Fairy]Drifblim||SitrusBerry|Unburden|CalmMind,ShadowBall,Acrobatics,StrengthSap|Modest|,,100,252,156,|||||,,,,,Ghost]Slowking-Galar||ShucaBerry|Regenerator|Psyshock,Toxic,ChillyReception,SludgeBomb|Modest|248,,176,56,28,||,0,,,,|||,,,,,Poison]Weavile||PowerHerb|Pickpocket|SwordsDance,Dig,KnockOff,TripleAxel|Jolly|24,252,,,,232|||||,,,,,Dark"], + ["Palafin||Leftovers|ZerotoHero|JetPunch,Taunt,DrainPunch,BulkUp|Careful|248,,8,,252,|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|VoltSwitch,Roost,HeatWave,Hurricane|Calm|248,,16,,216,28||,0,,,,|||,,,,,Electric]Ting-Lu||Leftovers|VesselofRuin|Spikes,Ruination,BodyPress,Earthquake|Careful|248,,,,200,60|||||,,,,,Dark]Tera Captain|Suicune|Leftovers|Pressure|IceBeam,Scald,Substitute,CalmMind|Bold|248,,248,,,12||,0,,,,|||,,,,,Fairy]Kyurem||HeavyDutyBoots|Pressure|FreezeDry,BodyPress,IceBeam,EarthPower|Timid|88,,,252,,168||,0,,,,|||,,,,,Dragon]Tera Captain|Heatran|AirBalloon|FlameBody|StealthRock,MagmaStorm,TeraBlast,WillOWisp|Bold|248,,132,,,124||,0,,,,|||,,,,,Grass","Tera Captain|Keldeo|Leftovers|Justified|SecretSword,Surf,CalmMind,Taunt|Modest|64,,,252,,192||,0,,,,|||,,,,,Dragon]Tera Captain|Mesprit|SitrusBerry|Levitate|DazzlingGleam,PainSplit,Uturn,StealthRock|Calm|248,,,,252,8|||||,,,,,Steel]Garchomp||HeavyDutyBoots|RoughSkin|Earthquake,StoneEdge,SwordsDance,Spikes|Jolly|184,192,,,,132|||||,,,,,Dragon]Weavile||HeavyDutyBoots|Pressure|SwordsDance,KnockOff,UpperHand,IcicleCrash|Adamant|80,252,4,,,172|||||,,,,,Dark]Weezing-Galar||BlackSludge|Levitate|StrangeSteam,WillOWisp,PainSplit,ToxicSpikes|Bold|248,,212,,48,||,0,,,,|||,,,,,Poison]Rotom-Mow||ChoiceScarf|Levitate|LeafStorm,VoltSwitch,PainSplit,Trick|Modest|248,,112,100,,48||,0,,,,|||,,,,,Electric"], + ["Great Tusk||Leftovers|Protosynthesis|Earthquake,StoneEdge,RapidSpin,KnockOff|Jolly|248,8,,,,252|||||,Fighting,,,,Ground]Tera Captain|Umbreon|Leftovers|InnerFocus|Toxic,FoulPlay,Wish,Protect|Calm|252,,4,,252,||,0,,,,|||,,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|CalmMind,StoredPower,AuraSphere,Recover|Timid|248,,8,,,252||,0,,,,|||,,,,,Poison]Haunter||BlackSludge|Levitate|ShadowBall,WillOWisp,SludgeBomb,DestinyBond|Timid|,,,252,4,252||,0,,,,|||,,,,,Ghost]Tinkaton||Leftovers|MoldBreaker|StealthRock,KnockOff,StoneEdge,GigatonHammer|Careful|248,8,,,252,|||||,,,,,Fairy]Clefable||StickyBarb|MagicGuard|Trick,Moonblast,Moonlight,CalmMind|Bold|252,,252,,4,||,0,,,,|||,,,,,Fairy","Tera Captain|RagingBolt|Leftovers|Protosynthesis|CalmMind,Thunderbolt,DragonPulse,Thunderclap|Modest|248,,,252,,8||,20,,,,|||,,,,,Steel]Haunter||ChoiceScarf|Levitate|ShadowBall,SludgeBomb,Psychic,DestinyBond|Timid|,,,252,,252||,0,,,,|||,,,,,Ghost]Tera Captain|Alomomola|RockyHelmet|Regenerator|FlipTurn,Scald,Wish,Acrobatics|Relaxed|252,,252,,4,|||||,,,,,Flying]Moltres||HeavyDutyBoots|FlameBody|Uturn,Hurricane,Flamethrower,Roost|Timid|248,,28,,,232|||||,,,,,Fire]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,Uturn,Trick|Jolly|,252,,,4,252|||||,,,,,Grass]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,RapidSpin,HeavySlam,EarthPower|Hasty|40,40,,252,72,104|||||,,,,,Ground"], + ["Tera Captain|Sceptile|ChoiceSpecs|Overgrow|LeafStorm,TeraBlast,GigaDrain,UpperHand|Modest|,,132,164,,212|||||,,,,,Electric]Iron Moth||HeavyDutyBoots|QuarkDrive|SludgeWave,ToxicSpikes,Toxic,Discharge|Timid|,,80,252,,176||,0,,,,|||,,,,,Fire]Tera Captain|Annihilape|CovertCloak|VitalSpirit|FinalGambit,RageFist,StealthRock,Taunt|Adamant|172,144,,,,192|||||,,,,,Dragon]Alomomola||HeavyDutyBoots|Regenerator|Wish,Protect,FlipTurn,MirrorCoat|Relaxed|164,,252,,92,||,,,,,0|||,,,,,Water]Donphan||HeavyDutyBoots|Sturdy|PoisonJab,IceSpinner,KnockOff,Counter|Adamant|32,252,,,,224|||||,,,,,Ground]Roaring Moon||HeavyDutyBoots|Protosynthesis|IronHead,KnockOff,Roost,Taunt|Adamant|192,,96,,,220|||||,,,,,Dragon","Tera Captain|Skarmory|RockyHelmet|Sturdy|BodyPress,IronDefense,Roost,Roar|Impish|252,,252,,4,||,0,,,,|||,,,,,Steel]Tera Captain|Garganacl|HeavyDutyBoots|PurifyingSalt|SaltCure,Earthquake,Curse,Recover|Careful|252,4,,,252,|||||,,,,,Fairy]Sinistcha||Leftovers|Heatproof|MatchaGotcha,ShadowBall,StrengthSap,CalmMind|Bold|252,,160,,,96||,0,,,,|||,,,,,Grass]Ting-Lu||Leftovers|VesselofRuin|Earthquake,StealthRock,Spikes,Ruination|Careful|252,,4,,252,|||||,,,,,Dark]Palafin||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,IcePunch,ZenHeadbutt|Jolly|,252,,,4,252|||||,,,,,Water]Clefable||Leftovers|Unaware|Moonblast,Protect,CalmMind,Wish|Bold|244,,252,12,,||,0,,,,|||,,,,,Fairy"], + ["Tentacruel||BlackSludge|RainDish|RainDance,Surf,SludgeWave,RapidSpin|Calm|204,,52,,252,|||||,,,,,Water]Tera Captain|LandorusTherian|PasshoBerry|Intimidate|Earthquake,TeraBlast,SwordsDance,Substitute|Adamant|248,252,,,8,|||||,,,,,Fire]Baxcalibur||AssaultVest|ThermalExchange|IronHead,IceShard,ScaleShot,Crunch|Jolly|48,,,,252,208|||||,,,,,Dragon]Ribombee||ChoiceScarf|HoneyGather|StickyWeb,Trick,Moonblast,Psychic|Timid|,,8,252,,248||,0,,,,|||,,,,,Bug]Slowking||HeavyDutyBoots|Regenerator|ChillyReception,PsychicNoise,Surf,SlackOff|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Tera Captain|Cloyster|HeavyDutyBoots|SkillLink|ShellSmash,IcicleSpear,RockBlast,WeatherBall|Hasty|,252,,4,,252|||||,,,,,Poison","Torkoal||HeatRock|Drought|LavaPlume,RapidSpin,StealthRock,Yawn|Bold|248,,252,8,,|||||,,,,,Fire]Slither Wing||ChoiceBand|Protosynthesis|Uturn,CloseCombat,FirstImpression,Earthquake|Adamant|,252,92,,,164|||||,,,,,Bug]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,DracoMeteor,Flamethrower,DragonPulse|Modest|,,4,252,,252||,0,,,,|||,,,,,Steel]Chi-Yu||LifeOrb|BeadsofRuin|DarkPulse,Flamethrower,Overheat,Psychic|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Bronzong||ColburBerry|Levitate|LightScreen,Reflect,BodyPress,Psychic|Bold|252,,172,,84,||,0,,,,|||,,,,,Steel]Clefable||Leftovers|Unaware|ThunderWave,Moonblast,Moonlight,KnockOff|Bold|252,,252,,4,|||||,,,,,Fairy"], + ["Tera Captain|Annihilape|ChoiceScarf|Defiant|Earthquake,Uturn,CloseCombat,StoneEdge|Jolly|4,252,,,,252|||||,,,,,Fighting]Thundurus-Therian||ExpertBelt|VoltAbsorb|Substitute,Agility,Thunderbolt,DarkPulse|Timid|4,,,252,,252||,0,,,,|||,,,,,Electric]Tera Captain|IronLeaves|BoosterEnergy|QuarkDrive|SwordsDance,Psyblade,ThroatChop,SacredSword|Jolly|96,160,,,,252|||||,,,,,Fairy]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Rest,Ruination,Earthquake|Careful|252,,4,,,252|||||,,,,,Dark]Skarmory||RockyHelmet|Sturdy|IronDefense,Spikes,Roost,BodyPress|Impish|252,,252,,4,||,0,,,,|||,,,,,Steel]Brambleghast||HeavyDutyBoots|WindRider|Poltergeist,StrengthSap,RapidSpin,SeedBomb|Impish|252,,252,,,4|||||,,,,,Grass","Brambleghast||HeavyDutyBoots|Infiltrator|PowerWhip,Poltergeist,ShadowSneak,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Grass]Latios||ChoiceSpecs|Levitate|DracoMeteor,Thunderbolt,Trick,FlipTurn|Timid|72,,,252,,184|||||,,,,,Dragon]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,GrassKnot,HeatWave,NastyPlot|Timid|136,,,252,,120||,0,,,,|||,,,,,Flying]Tera Captain|UrshifuRapidStrike|MysticWater|UnseenFist|SurgingStrikes,CloseCombat,AquaJet,SwordsDance|Jolly|,252,56,,,200|||||,,,,,Water]Sandy Shocks||Leftovers|Protosynthesis|PowerGem,Thunderbolt,Spikes,ThunderWave|Timid|252,,,4,,252||,0,,,,|||,,,,,Electric]Tera Captain|Moltres|HeavyDutyBoots|FlameBody|Flamethrower,ScorchingSands,WillOWisp,Roost|Timid|252,,4,196,,56||,0,,,,|||,,,,,Psychic"], + ["Tera Captain|Galvantula|HeavyDutyBoots|CompoundEyes|Thunder,VoltSwitch,StickyWeb,BugBuzz|Modest|172,,,252,,84||,0,,,,|||,,,,,Ice]Ninetales-Alola||LightClay|SnowWarning|AuroraVeil,FreezeDry,Moonblast,NastyPlot|Modest|180,,,252,,76||,0,,,,|||,,,,,Ice]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Glare,Substitute|Calm|252,,4,,208,44||,0,,,,|||,,,,,Stellar]Metagross||AssaultVest|ClearBody|HeavySlam,Earthquake,Trailblaze,ZenHeadbutt|Careful|252,,4,,252,|||||,,,,,Steel]Volcarona||HeavyDutyBoots|FlameBody|QuiverDance,MorningSun,FieryDance,GigaDrain|Bold|252,,252,,4,||,0,,,,|||,,,,,Bug]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,RazorShell,FlipTurn,SacredSword|Adamant|,252,,,4,252|||||,,,,,Water","Rotom-Wash||Leftovers|Levitate|VoltSwitch,Protect,HydroPump,WillOWisp|Bold|252,,252,,4,||,0,,,,|||,,,,,Electric]Politoed||DampRock|Drizzle|PerishSong,Protect,Encore,Surf|Calm|248,,,8,252,||,0,,,,|||,,,,,Water]Tera Captain|Archaludon|AssaultVest|Stamina|ElectroShot,FlashCannon,BodyPress,DragonTail|Relaxed|252,,76,,180,|||||,,,,,Steel]Iron Bundle||ChoiceSpecs|QuarkDrive|FreezeDry,HydroPump,FlipTurn,IceBeam|Modest|,,,252,4,204|||||,,,,,Ice]Clodsire||BlackSludge|Unaware|Earthquake,Toxic,Recover,StealthRock|Careful|252,4,,,252,|||||,,,,,Poison]Meowscarada||FocusSash|Protean|TripleAxel,FlowerTrick,KnockOff,AerialAce|Jolly|,252,,,4,252|||||,,,,,Grass"], + ["Darkrai||ChoiceSpecs|BadDreams|Trick,Taunt,DarkPulse,SludgeBomb|Timid|48,,,252,,208||,0,,,,|||,,,,,Dark]Tera Captain|LandorusTherian|Leftovers|Intimidate|SwordsDance,Uturn,StoneEdge,Earthquake|Jolly|160,180,,,,168|||||,,,,,Fairy]Tornadus-Therian||RockyHelmet|Regenerator|Taunt,Uturn,SludgeBomb,BleakwindStorm|Timid|248,,,92,,168|||||,,,,,Flying]Keldeo-Resolute||ChoiceScarf|Justified|SecretSword,HydroPump,Surf,FlipTurn|Modest|120,,,252,4,132|||||,,,,,Water]Scizor||HeavyDutyBoots|Technician|Defog,SwordsDance,BulletPunch,Uturn|Adamant|240,16,252,,,|||||,,,,,Bug]Vileplume||RockyHelmet|EffectSpore|SleepPowder,LeechSeed,SludgeBomb,StrengthSap|Bold|252,,252,,4,||,0,,,,|||,,,,,Grass","Ogerpon-Wellspring||WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,PlayRough,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Water]Tera Captain|Thundurus|HeavyDutyBoots|Prankster|ThunderWave,VoltSwitch,TeraBlast,DarkPulse|Modest|,,4,252,,252||,0,,,,|||,,,,,Ice]Sinistcha-Masterpiece||Leftovers|Heatproof|MatchaGotcha,StrengthSap,StunSpore,Hex|Bold|252,,180,,76,||,0,,,,|||,,,,,Ghost]Clefable||HeavyDutyBoots|Unaware|CosmicPower,StoredPower,Wish,ChargeBeam|Calm|252,,96,,160,||,0,,,,|||,,,,,Fairy]Tera Captain|HoopaUnbound|ChoiceScarf|Magician|Psychic,DarkPulse,EnergyBall,DestinyBond|Modest|,,,252,4,252||,0,,,,|||,,,,,Psychic]Maushold-Four||WideLens|Technician|TidyUp,PopulationBomb,Encore,Crunch|Jolly|64,188,,,4,252|||||,,,,,Normal"], + ["Tera Captain|Latias|Leftovers|Levitate|CalmMind,StoredPower,Thunderbolt,Recover|Timid|248,,172,4,12,72||,0,,,,|||,,,,,Electric]Gouging Fire||HeavyDutyBoots|Protosynthesis|MorningSun,Earthquake,FlareBlitz,DragonDance|Impish|248,16,100,,,144|||||,,,,,Fire]Greninja||LifeOrb|Protean|SludgeWave,DarkPulse,HydroPump,WaterShuriken|Timid|96,,16,252,,144||,0,,,,|||,,,,,Water]Leavanny||HeavyDutyBoots|Swarm|KnockOff,LeafStorm,StickyWeb,Synthesis|Jolly|248,,40,,4,216|||||,,,,,Bug]Iron Treads||FocusSash|QuarkDrive|RapidSpin,VoltSwitch,Endeavor,StealthRock|Timid|248,,,,,252|||||,,,,,Ground]Electivire||LifeOrb|MotorDrive|VoltSwitch,Psychic,Flamethrower,KnockOff|Timid|32,,,252,32,192|||||,,,,,Electric","Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|Roost,Hurricane,EerieImpulse,Uturn|Hasty|,,,168,108,232|||||,,,,,Water]Dusknoir||CovertCloak|Frisk|Gravity,TrickRoom,Poltergeist,Memento|Adamant|248,252,,,8,|||||,,,,,Ghost]Rotom-Wash||MentalHerb|Levitate|WillOWisp,ThunderWave,FoulPlay,HydroPump|Bold|252,,188,,68,||,0,,,,|||,,,,,Electric]Great Tusk||BoosterEnergy|Protosynthesis|Earthquake,CloseCombat,TemperFlare,BulkUp|Jolly|,4,,,252,252|||||,Fighting,,,,Ground]Tera Captain|Heatran|AirBalloon|FlashFire|StealthRock,EarthPower,DragonPulse,LavaPlume|Modest|8,,248,252,,||,0,,,,|||,,,,,Grass]Azumarill||KebiaBerry|HugePower|AquaJet,PlayRough,Superpower,IceSpinner|Brave|248,252,4,,4,||,,,,,0|||,,,,,Water"], + ["Quaquaval||CobaBerry|Moxie|WaveCrash,RapidSpin,Taunt,SwordsDance|Jolly|,252,4,,,252|||||,,,,,Water]Gouging Fire||ChestoBerry|Protosynthesis|HeatCrash,ScaleShot,Rest,DragonDance|Jolly|184,116,,,,208|||||,,,,,Fire]Tera Captain|Serperior|ShucaBerry|Contrary|LeafStorm,TeraBlast,Reflect,Synthesis|Timid|228,,,48,,232||,0,,,,|||,,,,,Electric]Zapdos||HeavyDutyBoots|Static|Discharge,Hurricane,LightScreen,Roost|Timid|248,,124,,,136||,0,,,,|||,,,,,Electric]Grimmsnarl||LaggingTail|Prankster|Crunch,IcePunch,MistyTerrain,Trick|Impish|248,,252,,8,|||||,,,,,Dark]Jirachi||ShucaBerry|SereneGrace|SteelBeam,ShadowBall,Thunderbolt,CalmMind|Modest|208,,,56,,244||,0,,,,|||,,,,,Steel","Tera Captain|Quaquaval|HeavyDutyBoots|Moxie|SwordsDance,AquaStep,BrickBreak,Roost|Jolly|4,252,,,,252|||||,,,,,Electric]Uxie||RockyHelmet|Levitate|StealthRock,Psychic,KnockOff,Uturn|Bold|252,,252,,4,|||||,,,,,Bug]Garchomp||SitrusBerry|RoughSkin|Earthquake,Outrage,SwordsDance,ScaleShot|Jolly|12,252,,,4,240|||||,,,,,Ice]Talonflame||HeavyDutyBoots|FlameBody|Overheat,Hurricane,Uturn,Roost|Timid|212,,,68,76,152|||||,,,,,Poison]Overqwil||SitrusBerry|Intimidate|GunkShot,SwordsDance,Crunch,Spikes|Jolly|4,252,,,,252|||||,,,,,Ground]Gholdengo||ChoiceScarf|GoodasGold|ShadowBall,MakeItRain,Trick,Thunderbolt|Timid|,,,252,4,252||,0,,,,|||,,,,,Dragon"], + ["Tera Captain|Hydreigon|ChoiceSpecs|Levitate|DracoMeteor,DragonPulse,DarkPulse,FireBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Iron Hands||AssaultVest|QuarkDrive|IcePunch,DrainPunch,Earthquake,RockSlide|Adamant|248,252,,,8,|||||,,,,,Fighting]Scizor||ChoiceBand|Technician|BulletPunch,Uturn,DualWingbeat,KnockOff|Adamant|248,252,,,8,|||||,,,,,Bug]Munkidori||ChoiceSpecs|Frisk|Psychic,Psyshock,Trick,Uturn|Timid|,,,252,4,252|||||,,,,,Poison]Rotom-Mow||ChoiceScarf|Levitate|Thunderbolt,VoltSwitch,LeafStorm,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric]Mandibuzz||HeavyDutyBoots|Overcoat|Defog,Uturn,Roost,RockTomb|Careful|248,8,,,252,|||||,,,,,Dark","Tera Captain|Gliscor|ToxicOrb|PoisonHeal|SwordsDance,Earthquake,IceFang,Protect|Careful|252,,4,,252,|||||,,,,,Water]Baxcalibur||HeavyDutyBoots|ThermalExchange|DragonDance,GlaiveRush,Earthquake,IceShard|Jolly|56,252,,,,200|||||,,,,,Dragon]Tera Captain|Klefki|Leftovers|Prankster|Spikes,ThunderWave,FlashCannon,Reflect|Calm|252,,4,,252,||,0,,,,|||,,,,,Fire]Volcarona||HeavyDutyBoots|FlameBody|WillOWisp,QuiverDance,Flamethrower,MorningSun|Bold|144,,252,,,112||,0,,,,|||,,,,,Bug]Urshifu-Rapid-Strike||PunchingGlove|UnseenFist|SwordsDance,CloseCombat,AquaJet,SurgingStrikes|Jolly|,252,136,,,120|||||,,,,,Fighting]Slowking-Galar||BlackSludge|Regenerator|SludgeBomb,SlackOff,Flamethrower,ChillingWater|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison"], + ["Cinderace||SilkScarf|Libero|SwordsDance,LowKick,PyroBall,QuickAttack|Jolly|76,252,,,,180|||||,,,,,Fire]Vileplume||BlackSludge|EffectSpore|StunSpore,StrengthSap,SludgeBomb,LeafStorm|Calm|252,,36,,220,||,0,,,,|||,,,,,Grass]Palafin||AssaultVest|ZerotoHero|DrainPunch,JetPunch,Liquidation,FlipTurn|Careful|248,8,,,252,|||||,,,,,Water]Kingambit||LumBerry|SupremeOverlord|SwordsDance,SuckerPunch,IronHead,KowtowCleave|Adamant|248,252,,,8,|||||,,,,,Dark]Donphan||CustapBerry|Sturdy|Endure,Endeavor,Earthquake,RapidSpin|Adamant|,252,12,,,244|||||,,,,,Ground]Tera Captain|RagingBolt|Leftovers|Protosynthesis|TeraBlast,Thunderclap,DragonPulse,CalmMind|Modest|84,,,252,,172||,20,,,,|||,,,,,Ground","Tera Captain|Latias|SitrusBerry|Levitate|CalmMind,AuraSphere,DracoMeteor,Psyshock|Timid|80,,,252,,176||,0,,,,|S||,,,,,Dragon]Heatran||ChopleBerry|FlashFire|MagmaStorm,EarthPower,StealthRock,Protect|Calm|240,,,16,252,||,0,,,,|S||,,,,,Fire]Scizor||FocusSash|Technician|SwordsDance,CloseCombat,BulletPunch,DualWingbeat|Adamant|152,252,4,,,100|||||,,,,,Bug]Gliscor||ToxicOrb|PoisonHeal|Substitute,Toxic,Protect,Earthquake|Impish|240,,244,,,24|||S||,,,,,Ground]Greninja-Bond||HeavyDutyBoots|BattleBond|Substitute,IceBeam,GrassKnot,LowKick|Naive|,24,,252,,232|||||,Ghost,,,,Water]Tera Captain|Bellibolt|AssaultVest|Electromorphosis|VoltSwitch,ParabolicCharge,MuddyWater,Thunderbolt|Calm|240,,16,,252,||,0,,,,|||,,,,,Electric"], + ["Corviknight||RockyHelmet|Pressure|BraveBird,Defog,Uturn,Roost|Impish|248,8,252,,,|||||,,,,,Flying]Sandslash||AssaultVest|SandRush|Earthquake,KnockOff,SuperFang,RapidSpin|Careful|248,8,,,252,|||S||,,,,,Ground]Slowking-Galar||ColburBerry|Regenerator|SludgeBomb,FireBlast,FutureSight,ChillyReception|Calm|244,,,,252,12||,0,,,,|||,,,,,Poison]Clefable||BabiriBerry|Unaware|Moonblast,KnockOff,StealthRock,Moonlight|Bold|252,,252,,4,|||||,,,,,Water]Palafin||LifeOrb|ZerotoHero|Liquidation,IcePunch,DrainPunch,Agility|Adamant|140,252,,,,116|||||,,,,,Fairy]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Synthesis|Timid|24,,,252,,232||,0,,,,|||,,,,,Fire","Tera Captain|Lokix|BlackGlasses|TintedLens|KnockOff,SuckerPunch,LeechLife,SwordsDance|Adamant|,252,56,,,200|||||,,,,,Dark]Tentacruel||BlackSludge|LiquidOoze|FlipTurn,KnockOff,RapidSpin,GunkShot|Adamant|248,252,8,,,|||||,,,,,Water]Garchomp||YacheBerry|RoughSkin|StealthRock,Spikes,Earthquake,FireBlast|Naive|248,,20,,,240|||||,,,,,Dragon]Iron Valiant||ChoiceBand|QuarkDrive|KnockOff,SpiritBreak,CloseCombat,Trick|Jolly|24,252,,,,232|||||,,,,,Fairy]Houndstone||Leftovers|Fluffy|BodyPress,WillOWisp,ShadowSneak,Roar|Impish|248,,252,,8,|||||,,,,,Ghost]Rotom-Heat||Leftovers|Levitate|WillOWisp,VoltSwitch,Overheat,Protect|Calm|248,,8,,252,||,0,,,,|||,,,,,Electric"], + ["Sableye||Leftovers|Prankster|Poltergeist,WillOWisp,Recover,XScissor|Adamant|252,252,,,,4|||||,,,,,Dark]Tyranitar||SmoothRock|SandStream|StealthRock,IceBeam,KnockOff,EarthPower|Quiet|252,4,,252,,|||||,,,,,Rock]Tera Captain|Excadrill|BabiriBerry|SandRush|Substitute,SwordsDance,Earthquake,TeraBlast|Adamant|8,252,,,,248|||||,,,,,Fairy]Latios||RoseliBerry|Levitate|LusterPurge,ThunderWave,Recover,IceBeam|Timid|40,,,252,,216||,0,,,,|||,,,,,Dragon]Fezandipiti||AirBalloon|ToxicChain|Moonblast,SludgeBomb,Roost,Uturn|Bold|252,,140,,,116|||||,,,,,Poison]Chesnaught||RockyHelmet|Bulletproof|LeechSeed,SpikyShield,BodyPress,Synthesis|Bold|252,,252,,4,||,0,,,,|||,,,,,Grass","Iron Valiant||LifeOrb|QuarkDrive|Moonblast,AuraSphere,VacuumWave,Psyshock|Timid|,,48,252,,208||,0,,,,|||,,,,,Fairy]Tera Captain|Lanturn|ExpertBelt|WaterAbsorb|DazzlingGleam,VoltSwitch,Agility,Surf|Modest|,,132,252,,124||,0,,,,|||,,,,,Fairy]Garchomp||YacheBerry|RoughSkin|Spikes,Earthquake,SwordsDance,AerialAce|Jolly|176,40,132,,,160|||||,,,,,Dragon]Morgrem||Eviolite|Prankster|Reflect,LightScreen,PartingShot,FoulPlay|Calm|252,,116,,140,||,0,,,,|||,,,,,Dark]Metagross||AirBalloon|ClearBody|StealthRock,IronDefense,MeteorMash,BodyPress|Adamant|252,120,104,,32,|||||,,,,,Steel]Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|Uturn,Taunt,PowerWhip,KnockOff|Jolly|184,140,,,4,180|||||,,,,,Flying"], + ["Tera Captain|Gyarados|ChoiceScarf|Intimidate|ThunderWave,Earthquake,Waterfall,TeraBlast|Jolly|88,252,,,,168|||||,,,,,Flying]Qwilfish-Hisui||Eviolite|Intimidate|BarbBarrage,Crunch,ToxicSpikes,PainSplit|Careful|252,,52,,184,20|||||,,,,,Dark]Moltres||HeavyDutyBoots|FlameBody|Roost,Flamethrower,BraveBird,Uturn|Calm|252,,,4,252,|||||,,,,,Fire]Gholdengo||RockyHelmet|GoodasGold|ThunderWave,Thunderbolt,Recover,MakeItRain|Bold|252,,196,,,60||,0,,,,|||,,,,,Steel]Tera Captain|Latias|ExpertBelt|Levitate|Thunderbolt,MistBall,AlluringVoice,ShadowBall|Hasty|,4,,252,,252||,0,,,,|||,,,,,Dragon]Ribombee||HeavyDutyBoots|HoneyGather|StickyWeb,QuiverDance,BugBuzz,Psychic|Timid|112,,,252,,144||,0,,,,|||,,,,,Bug","Palafin||MirrorHerb|ZerotoHero|BodySlam,JetPunch,WaveCrash,BulkUp|Adamant|,236,64,,,208|||||,,,,,Water]Tera Captain|Gholdengo|ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,SteelBeam,Trick|Modest|24,,,252,,232||,0,,,,|||,,,,,Steel]Tera Captain|Jolteon|AssaultVest|VoltAbsorb|Discharge,ShadowBall,VoltSwitch,TeraBlast|Timid|248,,,52,,208||,0,,,,|||,,,,,Flying]Donphan||AssaultVest|Sturdy|Earthquake,HeavySlam,KnockOff,RockTomb|Adamant|248,28,,,232,|||||,,,,,Ground]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,PowerWhip,KnockOff,RockTomb|Jolly|,252,,,4,252|||||,Poison,,,,Fire]Weezing-Galar||PayapaBerry|NeutralizingGas|SludgeWave,Defog,StrangeSteam,FireBlast|Calm|248,,20,,240,||,0,,,,|||,,,,,Poison"], + ["Archaludon||AssaultVest|Stamina|ElectroShot,DragonTail,FlashCannon,BodyPress|Modest|108,,120,252,,28|||S||,,,,,Steel]Tera Captain|Annihilape|LumBerry|Defiant|BulkUp,DrainPunch,RageFist,Taunt|Jolly|,,152,,104,252|||S||,,,,,Dragon]Politoed||ChoiceSpecs|Drizzle|WeatherBall,SleepTalk,IceBeam,Rest|Modest|92,,,252,,164||,0,,,,|S||,,,,,Water]Palafin||ThroatSpray|ZerotoHero|Agility,Boomburst,GrassKnot,HydroPump|Modest|252,,,252,,4||,0,,,,|S||,,,,,Water]Zapdos||HeavyDutyBoots|Static|Uturn,Discharge,Roost,Hurricane|Timid|80,,252,,,176|||S||,,,,,Electric]Tera Captain|Overqwil|BlackSludge|PoisonPoint|BarbBarrage,Spikes,Taunt,Crunch|Impish|228,,252,,,28|||S||,,,,,Electric","Pecharunt||BlackSludge|PoisonPuppeteer|ShadowBall,Toxic,Protect,Recover|Bold|252,,252,,4,||,0,,,,|||,,,,,Stellar]Skarmory||MentalHerb|WeakArmor|SunnyDay,Whirlwind,StealthRock,Spikes|Jolly|252,,,,120,136||,0,,,,|S||,,,,,Stellar]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,WaveCrash,FlipTurn,CloseCombat|Adamant|160,96,,,,252|||S||,,,,,Stellar]Tera Captain|Annihilape|Leftovers|Defiant|DrainPunch,RageFist,BulkUp,Taunt|Jolly|248,,8,,,252|||S||,,,,,Electric]Tera Captain|Mudsdale|Leftovers|Stamina|Earthquake,StoneEdge,Curse,SunnyDay|Careful|252,,4,,252,|||S||,,,,,Steel]Raichu||LightClay|LightningRod|Nuzzle,Endeavor,LightScreen,Reflect|Jolly|248,,84,,,176|||S||,,,,,Stellar"], + ["Enamorus||ChoiceScarf|Contrary|EarthPower,Moonblast,Superpower,HealingWish|Naive|,,4,252,,252|||||,,,,,Fairy]Samurott-Hisui||AssaultVest|Sharpness|KnockOff,CeaselessEdge,RazorShell,AquaJet|Adamant|220,252,,,,36|||||,,,,,Water]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,Encore,FlipTurn|Timid|80,,4,252,4,168|||||,,,,,Ice]Tera Captain|Annihilape|AssaultVest|VitalSpirit|RageFist,DrainPunch,Uturn,IcePunch|Jolly|80,252,,,,176|||||,,,,,Water]Tera Captain|Ribombee|ChoiceScarf|ShieldDust|Moonblast,BugBuzz,Psychic,StickyWeb|Timid|,,4,252,,252||,0,,,,|||,,,,,Psychic]Bronzong||Leftovers|Heatproof|CalmMind,StoredPower,IronDefense,BodyPress|Careful|252,,4,,252,||,0,,,,|||,,,,,Steel","Iron Crown||ChoiceScarf|QuarkDrive|TachyonCutter,FocusBlast,Psychic,VoltSwitch|Modest|,,44,252,,212||,20,,,,|||,Fighting,,,,Steel]Tera Captain|IronMoth|HeavyDutyBoots|QuarkDrive|Hurricane,EnergyBall,FieryDance,SludgeWave|Timid|32,,,252,,224||,0,,,,|||,,,,,Bug]Rotom-Wash||ChoiceScarf|Levitate|Trick,HydroPump,VoltSwitch,ThunderWave|Timid|252,,44,,,212||,0,,,,|||,,,,,Electric]Darkrai||HeavyDutyBoots|BadDreams|DarkPulse,SludgeBomb,FocusBlast,KnockOff|Timid|,,,252,,252|||||,,,,,Dark]Cinccino||HeavyDutyBoots|SkillLink|TidyUp,PlayRough,TailSlap,BulletSeed|Jolly|72,252,,,,184|||||,,,,,Normal]Gliscor||ToxicOrb|PoisonHeal|Earthquake,ToxicSpikes,KnockOff,Protect|Careful|252,,124,,120,12|||||,,,,,Ground"], + ["Tera Captain|Latias|Leftovers|Levitate|StoredPower,AuraSphere,CalmMind,Recover|Timid|248,,180,,,80||,0,,,,|||,,,,,Water]Samurott-Hisui||BlackGlasses|Sharpness|CeaselessEdge,RazorShell,SuckerPunch,SwordsDance|Adamant|24,252,4,,4,224|||||,,,,,Water]Iron Treads||FocusSash|QuarkDrive|Earthquake,HeavySlam,StoneEdge,KnockOff|Adamant|16,252,,,4,236|||||,,,,,Ground]Ditto||ChoiceScarf|Imposter|Transform|Impish|248,8,252,,,||,30,,,,|||,,,,,Normal]Sylveon||CovertCloak|Pixilate|HyperVoice,BatonPass,Wish,Protect|Calm|248,,100,,160,||,0,,,,|||,,,,,Fairy]Gengar||ChoiceScarf|CursedBody|ShadowBall,SludgeBomb,FocusBlast,DestinyBond|Timid|,,,252,4,252||,0,,,,|||,,,,,Ghost","Iron Bundle||HeavyDutyBoots|QuarkDrive|Encore,HydroPump,FlipTurn,FreezeDry|Timid|,,88,252,,168|||||,,,,,Ice]Tera Captain|Excadrill|AirBalloon|MoldBreaker|SwordsDance,Earthquake,IronHead,RapidSpin|Adamant|,252,,,4,252|||||,,,,,Flying]Latios||ChoiceScarf|Levitate|FlipTurn,LusterPurge,DracoMeteor,Surf|Modest|96,,,252,,160|||||,,,,,Dragon]Moltres||HeavyDutyBoots|FlameBody|Uturn,Flamethrower,Roar,Roost|Calm|252,,4,,252,|||||,,,,,Fire]Tera Captain|Gyarados|HeavyDutyBoots|Moxie|Earthquake,Waterfall,IronHead,DragonDance|Adamant|24,252,,,,232|||S||,,,,,Ground]Hatterene||Leftovers|MagicBounce|CalmMind,Nuzzle,DrainingKiss,Psychic|Bold|252,,252,,4,|||||,,,,,Psychic"], + ["Tera Captain|Chesnaught|RockyHelmet|Bulletproof|LeechSeed,IronDefense,BodyPress,SpikyShield|Impish|252,,,,252,||,0,,,,|S||,,,,,Water]Espeon||LightClay|MagicBounce|LightScreen,Reflect,Psychic,DrainingKiss|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Raikou||AssaultVest|Pressure|Discharge,VoltSwitch,Extrasensory,Scald|Modest|218,,,72,26,192||,0,,,,|S||,,,,,Flying]Tyranitar||Leftovers|SandStream|RockSlide,IceBeam,StealthRock,KnockOff|Sassy|252,,,4,252,|||S||,,,,,Ghost]Palafin||ChoiceBand|ZerotoHero|FlipTurn,WaveCrash,JetPunch,CloseCombat|Jolly|56,252,,,,200|||S||,,,,,Water]Volcarona||HeavyDutyBoots|FlameBody|QuiverDance,Psychic,FieryDance,GigaDrain|Timid|56,,,252,,200||,0,,,,|S||,,,,,Electric","Tera Captain|Annihilape|Leftovers|Defiant|BulkUp,RageFist,DrainPunch,Protect|Careful|248,,52,,168,40|||||,,,,,Dragon]Greninja-Bond||LifeOrb|BattleBond|Surf,DarkPulse,GrassKnot,IceBeam|Timid|56,,,252,,200|||||,Ghost,,,,Water]Rotom-Wash||SitrusBerry|Levitate|WillOWisp,NastyPlot,HydroPump,VoltSwitch|Bold|252,,176,,80,||,0,,,,|||,,,,,Electric]Donphan||RockyHelmet|Sturdy|StealthRock,Earthquake,RapidSpin,Roar|Impish|248,8,252,,,|||||,,,,,Ground]Iron Moth||PowerHerb|QuarkDrive|MeteorBeam,FieryDance,EnergyBall,Uturn|Timid|,,,252,4,252|||||,,,,,Fire]Tera Captain|Glastrier|CustapBerry|ChillingNeigh|SwordsDance,IcicleCrash,Thrash,Endure|Impish|120,116,252,,,20|||||,,,,,Dragon"], + ["Palafin||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,CloseCombat,WaveCrash|Jolly|,252,,,4,252|||||,,,,,Water]Corviknight||RockyHelmet|Pressure|Roost,Uturn,BodyPress,IronDefense|Relaxed|248,,252,,8,||,,,,,0|||,,,,,Flying]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Earthquake,Ruination,BodyPress|Careful|252,4,,,252,|||||,,,,,Dark]Tera Captain|Skeledirge|Leftovers|Unaware|TeraBlast,TorchSong,SlackOff,ShadowBall|Modest|252,,,252,4,||,0,,,,|||,,,,,Fairy]Gardevoir||ChoiceScarf|Synchronize|Moonblast,MysticalFire,Thunderbolt,HealingWish|Timid|,,,252,4,252||,0,,,,|||,,,,,Psychic]Tera Captain|Garganacl|Leftovers|PurifyingSalt|SaltCure,BodyPress,IronDefense,Recover|Impish|252,4,252,,,|||||,,,,,Ghost","Meowscarada||ExpertBelt|Protean|FlowerTrick,KnockOff,ThunderPunch,Uturn|Adamant|64,252,,,4,188|||||,,,,,Grass]Corviknight||RockyHelmet|Pressure|Uturn,BodyPress,Roost,Defog|Impish|248,,252,,8,|||||,,,,,Flying]Scream Tail||Leftovers|Protosynthesis|Wish,Protect,ThunderWave,DazzlingGleam|Calm|252,,,4,252,||,0,,,,|||,,,,,Fairy]Overqwil||ChestoBerry|PoisonPoint|Crunch,GunkShot,Rest,SleepTalk|Careful|248,8,,,252,|||||,,,,,Dark]Typhlosion-Hisui||ChoiceSpecs|Frisk|Eruption,Flamethrower,ShadowBall,InfernalParade|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Tera Captain|AvaluggHisui|CovertCloak|Sturdy|Recover,StoneEdge,IceSpinner,TeraBlast|Lax|252,4,252,,,|||||,,,,,Grass"], + ["Ribombee||GrassySeed|ShieldDust|QuiverDance,Moonblast,StickyWeb,EnergyBall|Timid|112,,,252,,144||,0,,,,|||,,,,,Bug]Annihilape||ChoiceScarf|Defiant|FinalGambit,Uturn,CloseCombat,RageFist|Jolly|252,4,,,,252|||||,,,,,Fighting]Tera Captain|Sylveon|ChoiceScarf|Pixilate|HyperVoice,HyperBeam,DrainingKiss,MistyExplosion|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Golem-Alola||ChopleBerry|MagnetPull|FirePunch,HighHorsepower,StoneEdge,BrickBreak|Adamant|252,252,,,4,|||||,,,,,Rock]Cinderace||HeavyDutyBoots|Libero|PyroBall,CourtChange,HighJumpKick,Uturn|Jolly|72,252,,,,184|||||,,,,,Fire]Tera Captain|Landorus|FocusSash|SheerForce|EarthPower,GrassKnot,TeraBlast,SludgeWave|Modest|24,,,252,,232||,0,,,,|||,,,,,Fairy","Ursaluna-Bloodmoon||ChopleBerry|MindsEye|CalmMind,BloodMoon,EarthPower,Moonlight|Bold|240,,28,132,,104||,0,,,,|||,,,,,Ground]Latios||ColburBerry|Levitate|Psyshock,AuraSphere,Recover,CalmMind|Timid|156,,,100,,252||,0,,,,|||,,,,,Dragon]Klefki||LightClay|Prankster|FlashCannon,PlayRough,Reflect,LightScreen|Bold|252,,252,,4,|||||,,,,,Steel]Tera Captain|Blastoise|WhiteHerb|Torrent|Liquidation,Earthquake,RapidSpin,ShellSmash|Adamant|,212,116,,,180|||||,,,,,Fairy]Rillaboom||AssaultVest|GrassySurge|GrassyGlide,WoodHammer,HighHorsepower,Acrobatics|Adamant|252,252,,,4,|||||,,,,,Grass]Blaziken||LifeOrb|SpeedBoost|FlareBlitz,CloseCombat,SwordsDance,Protect|Adamant|,252,24,,,232|||||,,,,,Fire"], + ["Gouging Fire||HeavyDutyBoots|Protosynthesis|FlareBlitz,MorningSun,DragonDance,ScaleShot|Adamant|,252,,,152,104|||||,Fighting,,,,Fire]Tera Captain|WalkingWake|LifeOrb|Protosynthesis|HydroSteam,TeraBlast,Agility,DragonPulse|Modest|,,4,252,,252||,0,,,,|||,,,,,Poison]Tera Captain|Torkoal|HeatRock|Drought|RapidSpin,StealthRock,ClearSmog,LavaPlume|Relaxed|252,,252,,4,|||||,,,,,Poison]Corviknight||Leftovers|Pressure|IronDefense,BraveBird,Roost,BodyPress|Impish|252,,200,,56,|||||,,,,,Flying]Meowscarada||ProtectivePads|Protean|TripleAxel,FlowerTrick,KnockOff,Uturn|Jolly|56,252,,,,200|||||,,,,,Grass]Latias||ChoiceScarf|Levitate|Thunderbolt,DracoMeteor,Psyshock,HealingWish|Timid|60,,,252,,196||,0,,,,|S||,,,,,Dragon","Iron Valiant||BoosterEnergy|QuarkDrive|FocusBlast,Moonblast,Thunderbolt,CalmMind|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Primarina||Leftovers|Torrent|AlluringVoice,WeatherBall,FlipTurn,Encore|Relaxed|252,,252,,4,||,,,,,0|||,,,,,Water]Garchomp||LifeOrb|RoughSkin|FireBlast,Earthquake,ScaleShot,StealthRock|Hasty|,252,,56,,200|||||,,,,,Dragon]Corviknight||Leftovers|Pressure|BraveBird,Uturn,Roost,BulkUp|Sassy|252,4,,,252,||,,,,,0|||,,,,,Flying]Tera Captain|Serperior|ChoiceScarf|Contrary|LeafStorm,DragonPulse,TeraBlast,Glare|Timid|24,,,252,,232||,0,,,,|||,,,,,Stellar]Arbok||BlackSludge|Intimidate|GunkShot,FireFang,Coil,ToxicSpikes|Impish|248,,240,,,20|||||,,,,,Poison"], + ["Pecharunt||BlackSludge|PoisonPuppeteer|NastyPlot,PartingShot,MalignantChain,ShadowBall|Modest|248,,8,252,,||,0,,,,|||,,,,,Poison]Grimmsnarl||LightClay|Prankster|Reflect,LightScreen,ThunderWave,DazzlingGleam|Calm|248,,,8,252,||,0,,,,|||,,,,,Dark]Tera Captain|Latias|WeaknessPolicy|Levitate|DragonDance,Earthquake,StoredPower,Recover|Serious|80,252,,4,,172|||||,,,,,Poison]Urshifu||ClearAmulet|UnseenFist|WickedBlow,CloseCombat,SwordsDance,PoisonJab|Adamant|36,252,,,,220|||||,,,,,Fighting]Gliscor||ToxicOrb|PoisonHeal|Toxic,Protect,Earthquake,Uturn|Impish|248,,96,,164,|||||,,,,,Ground]Alomomola||HeavyDutyBoots|Regenerator|Wish,FlipTurn,Protect,Scald|Bold|248,,252,8,,|||||,,,,,Water","Tera Captain|Hydrapple|Leftovers|Regenerator|NastyPlot,EarthPower,FickleBeam,Recover|Bold|252,,200,,,56||,0,,,,|||,,,,,Ghost]Tera Captain|Mamoswine|NeverMeltIce|Oblivious|TeraBlast,Earthquake,IcicleCrash,IceShard|Adamant|132,252,,,,124|||||,,,,,Electric]Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,FocusBlast,Psychic,Trick|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Rotom-Wash||Leftovers|Levitate|Substitute,NastyPlot,Discharge,HydroPump|Bold|248,,184,,,76||,0,,,,|||,,,,,Electric]Qwilfish-Hisui||Eviolite|Intimidate|Spikes,IceBeam,BarbBarrage,Crunch|Impish|248,,176,,,84|||||,,,,,Dark]Jirachi||Leftovers|SereneGrace|CalmMind,FutureSight,Wish,ShadowBall|Timid|248,,,,100,160||,0,,,,|||,,,,,Steel"], + ["Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,TeraBlast|Timid|12,,,244,,252||,0,,,,|||,,,,,Stellar]Weezing-Galar||BlackSludge|Levitate|ToxicSpikes,FireBlast,ClearSmog,PainSplit|Bold|252,,252,,4,||,0,,,,|||,,,,,Bug]Ninetales||HeatRock|Drought|Overheat,ScorchingSands,Hypnosis,HealingWish|Timid|,,4,252,,252||,0,,,,|||,,,,,Bug]Great Tusk||Leftovers|Protosynthesis|BulkUp,Earthquake,IceSpinner,RapidSpin|Jolly|252,4,,,,252|||||,Fighting,,,,Bug]Heatran||ChoiceScarf|FlashFire|MagmaStorm,StealthRock,WillOWisp,Overheat|Modest|,,,252,4,252||,0,,,,|||,,,,,Bug]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,CloseCombat,Earthquake|Jolly|,252,,,40,216|||||,Fighting,,,,Bug","Darkrai||ChoiceScarf|BadDreams|DarkPulse,IceBeam,Psychic,Trick|Timid|8,,,252,,248||,0,,,,|||,,,,,Dark]Cinderace||HeavyDutyBoots|Libero|PyroBall,HighJumpKick,WillOWisp,CourtChange|Jolly|80,252,,,,176|||||,,,,,Fire]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|HornLeech,IvyCudgel,SwordsDance,Synthesis|Jolly|8,252,,,,248|||||,,,,,Water]Tera Captain|Comfey|Leftovers|Triage|DrainingKiss,TeraBlast,CalmMind,Synthesis|Modest|252,,,252,,4||,0,,,,|||,,,,,Ground]Gliscor||ChoiceBand|PoisonHeal|Earthquake,DualWingbeat,Uturn,ToxicSpikes|Jolly|4,252,,,,252|||||,,,,,Ground]Gholdengo||AirBalloon|GoodasGold|MakeItRain,ShadowBall,NastyPlot,Recover|Timid|56,,,252,,200||,0,,,,|||,,,,,Fairy"], + ["Tera Captain|Latias|ChoiceScarf|Levitate|DracoMeteor,Psychic,AlluringVoice,Trick|Timid|4,,,252,4,248||,0,,,,|||,,,,,Steel]Urshifu||ChoiceBand|UnseenFist|CloseCombat,WickedBlow,Uturn,FirePunch|Jolly|,252,,,4,252|||||,,,,,Fighting]Excadrill||FocusSash|MoldBreaker|RapidSpin,SwordsDance,Earthquake,IronHead|Jolly|4,252,,,4,248|||||,,,,,Ground]Weezing-Galar||CustapBerry|MistySurge|StrangeSteam,PainSplit,Defog,DestinyBond|Bold|252,,252,4,,||,0,,,,|||,,,,,Poison]Volcanion||AssaultVest|WaterAbsorb|SteamEruption,Flamethrower,FireSpin,EarthPower|Modest|248,,,252,8,||,0,,,,|||,,,,,Fire]Tsareena||AssaultVest|LeafGuard|TripleAxel,RapidSpin,KnockOff,Uturn|Adamant|252,252,,,4,|||||,,,,,Grass","Torkoal||HeatRock|Drought|WillOWisp,LavaPlume,Yawn,ClearSmog|Bold|252,,252,,,||,0,,,,|||,,,,,Fire]Tera Captain|Venusaur|SitrusBerry|Chlorophyll|Growth,GigaDrain,WeatherBall,SludgeBomb|Modest|72,,,252,,184||,0,,,,|||,,,,,Water]Scream Tail||EjectButton|Protosynthesis|ThunderWave,Encore,DazzlingGleam,Wish|Calm|252,,164,,92,||,0,,,,|||,,,,,Fairy]Tera Captain|WalkingWake|Leftovers|Protosynthesis|HydroSteam,DragonPulse,KnockOff,Agility|Timid|96,,,252,,160|||||,,,,,Water]Great Tusk||RockyHelmet|Protosynthesis|RapidSpin,Earthquake,KnockOff,StealthRock|Impish|252,,252,,,4|||||,,,,,Ground]Roaring Moon||ChoiceScarf|Protosynthesis|Uturn,KnockOff,IronHead,Outrage|Adamant|60,252,,,,196|||||,,,,,Dragon"], + ["Garchomp||CovertCloak|RoughSkin|StealthRock,ScaleShot,Earthquake,StoneEdge|Impish|196,28,220,,,64|||||,,,,,Dragon]Urshifu||ChoiceBand|UnseenFist|WickedBlow,SuckerPunch,CloseCombat,Uturn|Jolly|,252,,,4,252|||||,,,,,Fighting]Rotom-Wash||Leftovers|Levitate|VoltSwitch,Thunderbolt,HydroPump,PainSplit|Timid|,,,180,76,252||,0,,,,|||,,,,,Electric]Sylveon||Leftovers|Pixilate|HyperVoice,Wish,Protect,Yawn|Calm|252,,,4,252,||,0,,,,|||,,,,,Fairy]Tsareena||HeavyDutyBoots|LeafGuard|HighJumpKick,PowerWhip,TripleAxel,RapidSpin|Jolly|56,128,72,,204,48|||||,,,,,Grass]Tera Captain|BraviaryHisui|CobaBerry|TintedLens|EsperWing,TeraBlast,Roost,Hurricane|Modest|152,,,252,,104||,0,,,,|||,,,,,Fighting","Darkrai||LifeOrb|BadDreams|IceBeam,Psychic,DarkPulse,NastyPlot|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Kyurem||LoadedDice|Pressure|ScaleShot,IcicleSpear,IronHead,IceBeam|Lonely|252,252,,4,,|||||,,,,,Dragon]Zapdos||RockyHelmet|Static|Uturn,Thunderbolt,Roost,HeatWave|Modest|248,,,252,8,|||||,,,,,Electric]Tera Captain|Heatran|Leftovers|FlameBody|FlashCannon,MagmaStorm,WillOWisp,PowerGem|Modest|252,,,252,4,||,0,,,,|||,,,,,Flying]Tera Captain|TaurosPaldeaCombat|AssaultVest|Intimidate|Earthquake,StoneEdge,CloseCombat,IronHead|Jolly|,252,,,4,252|||||,,,,,Fighting]Sneasler||ExpertBelt|PoisonTouch|DireClaw,CloseCombat,Uturn,BrickBreak|Jolly|,252,,,4,252|||||,,,,,Fighting"], + ["Iron Valiant||LifeOrb|QuarkDrive|Moonblast,Psyshock,AuraSphere,VacuumWave|Timid|48,,,252,,208||,0,,,,|||,,,,,Fairy]Garchomp||Leftovers|RoughSkin|Spikes,Earthquake,DragonTail,ScaleShot|Adamant|248,16,,,,244|||||,,,,,Dragon]Rotom-Wash||RockyHelmet|Levitate|HydroPump,VoltSwitch,ThunderWave,PainSplit|Bold|248,,228,,,32||,0,,,,|||,,,,,Electric]Tera Captain|Skeledirge|HeavyDutyBoots|Unaware|TorchSong,TeraBlast,SlackOff,WillOWisp|Calm|248,,,8,252,||,0,,,,|||,,,,,Water]Scizor||HeavyDutyBoots|Technician|CloseCombat,Uturn,BulletPunch,Defog|Adamant|248,252,,,8,|||||,,,,,Bug]Golurk||ColburBerry|NoGuard|DynamicPunch,Poltergeist,Earthquake,StealthRock|Adamant|252,252,,,4,|||||,,,,,Ground","Great Tusk||LifeOrb|Protosynthesis|Substitute,HeadlongRush,CloseCombat,IceSpinner|Adamant|176,252,,,,80|||||,Fighting,,,,Ground]Tera Captain|IronMoth|PowerHerb|QuarkDrive|FieryDance,SludgeWave,MeteorBeam,TeraBlast|Timid|64,,,252,,192||,0,,,,|||,,,,,Fairy]Weavile||ChoiceBand|Pressure|KnockOff,IceSpinner,IceShard,ThroatChop|Jolly|72,252,,,,184|||||,,,,,Dark]Archaludon||CustapBerry|Stamina|DracoMeteor,FlashCannon,FoulPlay,Endure|Modest|164,,,248,,96||,0,,,,|||,,,,,Steel]Weezing-Galar||PayapaBerry|Levitate|StrangeSteam,Flamethrower,Toxic,Defog|Calm|252,,72,,184,||,0,,,,|||,,,,,Poison]Tera Captain|Gyarados|HeavyDutyBoots|Intimidate|Waterfall,TemperFlare,DoubleEdge,DragonDance|Impish|252,76,132,,,48|||||,,,,,Fire"], + ["Tera Captain|Hatterene|Leftovers|MagicBounce|CalmMind,DrainingKiss,Psyshock,Nuzzle|Bold|252,,180,76,,|||||,,,,,Water]Gholdengo||AirBalloon|GoodasGold|NastyPlot,MakeItRain,ShadowBall,Substitute|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel]Gastrodon||Leftovers|StormDrain|Earthquake,Waterfall,Recover,StealthRock|Careful|252,4,,,252,|||||,,,,,Water]Annihilape||ChestoBerry|Defiant|BulkUp,DrainPunch,RageFist,Rest|Careful|252,40,,,216,|||||,,,,,Fighting]Tera Captain|Grimmsnarl|LightClay|Prankster|PlayRough,Reflect,LightScreen,PartingShot|Careful|252,4,,,252,|||||,,,,,Dark]Chi-Yu||ChoiceScarf|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Memento|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark","Tera Captain|GreatTusk|ChoiceScarf|Protosynthesis|HeadlongRush,CloseCombat,PlayRough,IceSpinner|Jolly|28,252,,,,228|||||,Fighting,,,,Ground]Fezandipiti||BlackSludge|ToxicChain|GunkShot,Uturn,Roost,PlayRough|Adamant|252,4,252,,,|||||,,,,,Poison]Vaporeon||Leftovers|WaterAbsorb|FlipTurn,IceBeam,Wish,Surf|Sassy|252,,,4,252,|||||,,,,,Water]Tera Captain|Yanmega|ThroatSpray|SpeedBoost|BugBuzz,GigaDrain,AirSlash,TeraBlast|Modest|4,,,252,252,||,0,,,,|||,,,,,Ground]Latios||LifeOrb|Levitate|Recover,FlipTurn,Surf,LusterPurge|Timid|4,,,252,,252|||||,,,,,Dragon]Corviknight||Leftovers|Pressure|Uturn,Defog,Roost,IronHead|Impish|252,,4,,252,|||||,,,,,Flying"], + ["Darkrai||LifeOrb|BadDreams|DarkPulse,FocusBlast,WillOWisp,NastyPlot|Timid|144,,,104,8,252||,0,,,,|||,,,,,Dark]Slowking-Galar||ShucaBerry|Regenerator|FireBlast,FutureSight,ToxicSpikes,ChillyReception|Calm|248,,,8,252,||,0,,,,|||,,,,,Poison]Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Earthquake,Uturn,Toxic,StealthRock|Impish|248,8,252,,,|||||,,,,,Water]Blastoise||BindingBand|Torrent|BodyPress,IronDefense,RapidSpin,Whirlpool|Impish|200,,196,,,112|||||,,,,,Water]Tera Captain|Terrakion|Leftovers|Justified|SacredSword,Earthquake,XScissor,Substitute|Jolly|16,252,,,,240|||||,,,,,Water]Florges||Leftovers|FlowerVeil|Wish,Protect,Moonblast,DrainingKiss|Calm|248,,,8,252,||,0,,,,|||,,,,,Fairy","Mesprit||Leftovers|Levitate|StealthRock,ThunderWave,PsychicNoise,HealingWish|Bold|248,,252,8,,||,0,,,,|||,,,,,Psychic]Iron Treads||ChopleBerry|QuarkDrive|RapidSpin,Earthquake,KnockOff,VoltSwitch|Jolly|,252,4,,,252|||||,,,,,Ground]Palafin||MysticWater|ZerotoHero|BulkUp,DrainPunch,JetPunch,Liquidation|Adamant|136,236,,,136,|||||,,,,,Water]Darkrai||WiseGlasses|BadDreams|NastyPlot,DarkPulse,FocusBlast,SludgeBomb|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|Ceruledge|HeavyDutyBoots|WeakArmor|SwordsDance,BitterBlade,Poltergeist,CloseCombat|Adamant|68,252,,,4,184|||||,,,,,Fighting]Tera Captain|Diancie|Leftovers|ClearBody|SleepTalk,Spikes,Moonblast,ScorchingSands|Sassy|160,,4,92,252,||,0,,,,|S||,,,,,Poison"], + ["Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,Taunt,SpiritBreak|Impish|252,,252,,4,|||||,,,,,Dark]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|SwordsDance,PowerWhip,PlayRough,Superpower|Jolly|,252,,,4,252|||||,,,,,Water]Cyclizar||SitrusBerry|Regenerator|RapidSpin,Uturn,ShedTail,DracoMeteor|Timid|248,,,8,,252|||||,,,,,Dragon]Kingambit||ShucaBerry|SupremeOverlord|SwordsDance,IronHead,SuckerPunch,KowtowCleave|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|EnergyBall,DazzlingGleam,FieryDance,SludgeWave|Timid|124,,,132,,252||,0,,,,|||,,,,,Steel]Mamoswine||OccaBerry|ThickFat|StealthRock,IcicleCrash,Earthquake,KnockOff|Jolly|,252,,,4,252|||||,,,,,Ice","Greninja-Bond||FocusSash|BattleBond|Liquidation,SwordsDance,LowKick,GunkShot|Jolly|,252,,,4,252|||||,Ghost,,,,Water]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,Megahorn,IronHead,StealthRock|Jolly|,252,68,,,188|||||,,,,,Ground]Tera Captain|IronMoth|ChoiceSpecs|QuarkDrive|FieryDance,Overheat,SludgeWave,EnergyBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fire]Garchomp||YacheBerry|RoughSkin|Earthquake,SwordsDance,ScaleShot,Spikes|Impish|252,4,252,,,|||S||,,,,,Dragon]Tera Captain|Comfey|WiseGlasses|Triage|DrainingKiss,CalmMind,GigaDrain,TeraBlast|Modest|252,,4,252,,||,0,,,,|S||,,,,,Ground]Uxie||SitrusBerry|Levitate|Encore,ThunderWave,FoulPlay,Uturn|Careful|252,,40,,216,|||||,,,,,Psychic"], + ["Torkoal||HeatRock|Drought|Yawn,LavaPlume,Rest,Earthquake|Sassy|248,,8,,252,|||||,,,,,Fire]Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|DracoMeteor,HydroSteam,DragonPulse,Flamethrower|Timid|64,,,252,4,188||,0,,,,|||,,,,,Water]Scream Tail||Leftovers|Protosynthesis|DazzlingGleam,Flamethrower,ThunderWave,StealthRock|Bold|104,,140,,116,148||,0,,,,|||,,,,,Fairy]Great Tusk||WhiteHerb|Protosynthesis|RapidSpin,SupercellSlam,KnockOff,CloseCombat|Adamant|248,100,,,,160|||||,Fighting,,,,Ground]Orthworm||ShedShell|EarthEater|BodyPress,StealthRock,Spikes,IronHead|Impish|248,8,252,,,|||||,,,,,Steel]Lanturn||AssaultVest|VoltAbsorb|VoltSwitch,Scald,DazzlingGleam,Discharge|Calm|144,,112,,252,||,0,,,,|||,,,,,Water","Enamorus-Therian||CustapBerry|Overcoat|Endure,Moonblast,MysticalFire,SludgeBomb|Modest|252,,,252,4,||,0,,,,|||,,,,,Fairy]Iron Boulder||BoosterEnergy|QuarkDrive|MightyCleave,CloseCombat,IronHead,ZenHeadbutt|Jolly|4,252,36,,,216|||||,,,,,Rock]Kommo-o||Metronome|Soundproof|Substitute,BellyDrum,DrainPunch,IronHead|Impish|,4,252,,252,|||||,,,,,Fairy]Manaphy||Leftovers|Hydration|AlluringVoice,EnergyBall,Scald,Uturn|Sassy|252,,4,,252,|||||,,,,,Water]Tera Captain|Magnezone|HeavyDutyBoots|Sturdy|MirrorCoat,ThunderWave,FlashCannon,VoltSwitch|Modest|252,,4,252,,||,0,,,,|||,,,,,Water]Krookodile||CustapBerry|Intimidate|Endure,CloseCombat,Outrage,GunkShot|Adamant|252,252,4,,,|||||,,,,,Ground"], + ["Iron Boulder||BoosterEnergy|QuarkDrive|Earthquake,SwordsDance,MightyCleave,CloseCombat|Jolly|,252,,,4,252|||||,Fighting,,,,Rock]Tera Captain|SandyShocks|HeavyDutyBoots|Protosynthesis|EarthPower,StealthRock,VoltSwitch,TeraBlast|Timid|,,,252,4,252||,0,,,,|||,,,,,Water]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|HornLeech,KnockOff,IvyCudgel,SwordsDance|Jolly|,252,,,4,252|||||,Poison,,,,Fire]Tera Captain|ZoroarkHisui|ChoiceSpecs|Illusion|HyperVoice,Psychic,TeraBlast,ShadowBall|Timid|,,,252,4,252||,0,,,,|S||,,,,,Fairy]Weezing-Galar||BlackSludge|NeutralizingGas|WillOWisp,Defog,Flamethrower,Taunt|Calm|252,,,4,252,||,0,,,,|S||,,,,,Poison]Eiscue||SitrusBerry|IceFace|IceSpinner,BellyDrum,Liquidation,ZenHeadbutt|Jolly|,252,,,4,252|||||,,,,,Ice","Quaquaval||WeaknessPolicy|Moxie|AquaStep,CloseCombat,SwordsDance,Substitute|Adamant|,252,,,4,252|||||,,,,,Water]Corviknight||RockyHelmet|Pressure|BraveBird,Roost,Uturn,Defog|Impish|248,,252,,8,|||||,,,,,Flying]Tera Captain|Serperior|CustapBerry|Contrary|LeafStorm,DragonPulse,Endure,TeraBlast|Timid|24,,,252,,232||,0,,,,|S||,,,,,Rock]Chi-Yu||ChoiceScarf|BeadsofRuin|Flamethrower,DarkPulse,WillOWisp,Overheat|Modest|176,,4,252,,76||,0,,,,|||,,,,,Dark]Spidops||SitrusBerry|Stakeout|FirstImpression,StickyWeb,Uturn,SuckerPunch|Adamant|252,252,,,4,|||||,,,,,Bug]Clodsire||BlackSludge|Unaware|Curse,GunkShot,Earthquake,Recover|Careful|248,,252,,8,|||||,,,,,Poison"], + ["Iron Valiant||BoosterEnergy|QuarkDrive|SpiritBreak,CloseCombat,Encore,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fairy]Garchomp||LoadedDice|RoughSkin|Spikes,Earthquake,ScaleShot,Liquidation|Jolly|,252,,,4,252|||||,,,,,Dragon]Rotom-Wash||RindoBerry|Levitate|VoltSwitch,HydroPump,ThunderWave,PainSplit|Bold|248,,200,60,,||,0,,,,|||,,,,,Electric]Tera Captain|Ceruledge|ChoiceScarf|FlashFire|Poltergeist,BitterBlade,ShadowSneak,WillOWisp|Adamant|56,252,,,,200|||||,,,,,Ghost]Tera Captain|Revavroom|LumBerry|Filter|ShiftGear,GunkShot,TeraBlast,RainDance|Adamant|120,252,,,,136|||||,,,,,Ice]Uxie||SitrusBerry|Levitate|StealthRock,KnockOff,Encore,Uturn|Impish|248,,252,,8,|||||,,,,,Psychic","Darkrai||LifeOrb|BadDreams|IceBeam,SludgeBomb,WillOWisp,DarkPulse|Timid|,,,252,4,252||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PowerWhip,Encore,Uturn|Jolly|,252,,,4,252|||||,Poison,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|Hurricane,Uturn,IcyWind,HeatWave|Timid|,,,252,36,220|||||,,,,,Flying]Garchomp||LoadedDice|RoughSkin|Substitute,SwordsDance,ScaleShot,Earthquake|Jolly|,252,,,4,252|||||,,,,,Dragon]Ditto||ChoiceScarf|Imposter|Transform|Impish|248,8,252,,,||,30,,,,|||,,,,,Normal]Tera Captain|Brambleghast|LifeOrb|WindRider|ShadowSneak,Curse,TeraBlast,PowerWhip|Hasty|,252,,4,,252|||||,,,,,Fire"], + ["Tera Captain|Serperior|Leftovers|Contrary|Substitute,Glare,LeafStorm,TeraBlast|Modest|92,,,252,16,148||,0,,,,|||,,,,,Fairy]Gouging Fire||Leftovers|Protosynthesis|DragonDance,DragonClaw,HeatCrash,MorningSun|Jolly|40,252,,,,216|||||,Fighting,,,,Fire]Cyclizar||ChoiceSpecs|Regenerator|ShedTail,KnockOff,Uturn,DracoMeteor|Hasty|248,,,44,,216||,,,,,0|||,,,,,Dragon]Masquerain||FocusSash|Intimidate|StickyWeb,StunSpore,IcyWind,Tailwind|Modest|,,,252,4,252||,0,,,,|||,,,,,Bug]Greninja||ChoiceSpecs|Protean|DarkPulse,IceBeam,HydroPump,Uturn|Hasty|48,,,252,,208|||||,,,,,Water]Tera Captain|ArticunoGalar|AssaultVest|Competitive|TeraBlast,Uturn,Psyshock,AirSlash|Timid|72,,,252,,184|||||,,,,,Grass","Gliscor||ToxicOrb|PoisonHeal|Earthquake,KnockOff,StealthRock,Protect|Impish|252,,252,,,|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,FocusBlast,CalmMind,Encore|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Scizor||ChoiceBand|Technician|BulletPunch,Uturn,CloseCombat,KnockOff|Adamant|248,252,,,8,|||||,,,,,Bug]Tera Captain|Porygon2|Eviolite|Download|Recover,TriAttack,IceBeam,Discharge|Calm|252,,,4,252,||,0,,,,|||,,,,,Fire]Rotom-Wash||ChoiceScarf|Levitate|VoltSwitch,Thunderbolt,Trick,HydroPump|Modest|112,,,252,,144||,0,,,,|||,,,,,Electric]Kommo-o||ThroatSpray|Bulletproof|ClangorousSoul,Boomburst,ClangingScales,Flamethrower|Timid|,,,252,4,252||,0,,,,|||,,,,,Steel"], + ["Great Tusk||FocusSash|Protosynthesis|HeadlongRush,IceSpinner,CloseCombat,StealthRock|Jolly|,252,,,4,252|||||,,,,,Ground]Chi-Yu||ChoiceSpecs|BeadsofRuin|Overheat,DarkPulse,FireBlast,Flamethrower|Timid|40,,,252,,216||,0,,,,|||,,,,,Dark]Tera Captain|Revavroom|LumBerry|Overcoat|ShiftGear,HighHorsepower,GunkShot,TeraBlast|Adamant|64,252,,,,192|||||,,,,,Grass]Tera Captain|Eelektross|CustapBerry|Levitate|Uturn,StompingTantrum,KnockOff,Protect|Impish|252,4,252,,,|||||,,,,,Ice]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|HornLeech,Substitute,IvyCudgel,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Water]Iron Boulder||BoosterEnergy|QuarkDrive|SwordsDance,MightyCleave,CloseCombat,Earthquake|Jolly|,252,,,4,252|||||,,,,,Rock","Pincurchin||TerrainExtender|ElectricSurge|Memento,Thunderbolt,ThunderWave,Spikes|Bold|252,,252,4,,||,0,,,,|||,,,,,Electric]Sceptile||HeavyDutyBoots|Overgrow|ShedTail,LeechSeed,LeafStorm,DragonPulse|Timid|252,,,4,,252||,0,,,,|||,,,,,Grass]Tera Captain|IronMoth|PowerHerb|QuarkDrive|FieryDance,SludgeWave,EnergyBall,MeteorBeam|Timid|,,124,132,,252||,0,,,,|||,,,,,Grass]Gliscor||ToxicOrb|PoisonHeal|Earthquake,Toxic,KnockOff,Protect|Impish|252,4,252,,,|||||,,,,,Ground]Slowking-Galar||AssaultVest|Regenerator|IceBeam,Psychic,SludgeWave,Flamethrower|Calm|252,,,4,252,||,0,,,,|||,,,,,Poison]Tera Captain|RaichuAlola|SalacBerry|SurgeSurfer|ElectroBall,Psyshock,TeraBlast,NastyPlot|Timid|,,,252,4,252||,0,,,,|S||,,,,,Water"], + ["Tera Captain|Annihilape|ChoiceBand|Defiant|CloseCombat,Earthquake,RageFist,StoneEdge|Jolly|24,252,,,4,228|||||,,,,,Dragon]Roaring Moon||MirrorHerb|Protosynthesis|DragonDance,KnockOff,Earthquake,Tailwind|Adamant|32,252,,,4,220|||||,,,,,Steel]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|IvyCudgel,PlayRough,HornLeech,Encore|Jolly|80,252,,,,176|||||,Poison,,,,Fire]Slowking-Galar||HeavyDutyBoots|Regenerator|ToxicSpikes,ChillyReception,Flamethrower,SludgeBomb|Calm|248,,124,,136,||,0,,,,|||,,,,,Grass]Tera Captain|Dudunsparce|Leftovers|SereneGrace|DragonTail,Roost,StealthRock,BodySlam|Careful|252,4,,,252,|||||,,,,,Electric]Corviknight||RockyHelmet|Pressure|Roost,Defog,BodyPress,Uturn|Impish|248,,252,,,8|||||,,,,,Dragon","Palafin||PunchingGlove|ZerotoHero|BulkUp,DrainPunch,JetPunch,Encore|Adamant|136,104,252,,,16|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|NastyPlot,Hurricane,HeatWave,DarkPulse|Timid|184,,16,68,,240||,0,,,,|||,,,,,Flying]Tera Captain|RagingBolt|HabanBerry|Protosynthesis|Roar,DragonPulse,Thunderbolt,Taunt|Modest|176,,252,56,24,||,20,,,,|||,Fighting,,,,Fairy]Terapagos||ChopleBerry|TeraShift|CalmMind,TeraStarstorm,DazzlingGleam,Flamethrower|Modest|160,,,212,,136||,15,,,,|||,Dark,,,,Stellar]Tera Captain|Torterra|HeavyDutyBoots|ShellArmor|Synthesis,StealthRock,Earthquake,TeraBlast|Adamant|120,172,124,,,92|||||,,,,,Fire]Qwilfish-Hisui||Eviolite|Intimidate|Spikes,BarbBarrage,Crunch,Taunt|Impish|248,,124,,,136|||||,,,,,Dark"], + ["Palafin||ChoiceSpecs|ZerotoHero|HydroPump,FlipTurn,JetPunch,Boomburst|Mild|,120,,252,,136|||||,,,,,Water]Meowscarada||ChoiceScarf|Protean|FlowerTrick,KnockOff,Uturn,TripleAxel|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderbolt,Thunderclap,VoltSwitch,DracoMeteor|Modest|156,,,252,,100||,20,,,,|||,Fighting,,,,Flying]Scream Tail||BoosterEnergy|Protosynthesis|StealthRock,DazzlingGleam,PsychicNoise,ThunderWave|Timid|252,,,4,,252||,0,,,,|||,,,,,Fairy]Tera Captain|Revavroom|AirBalloon|Filter|ShiftGear,IronHead,HighHorsepower,MagnetRise|Adamant|,252,,,4,252|||||,,,,,Poison]Donphan||AssaultVest|Sturdy|Earthquake,IceSpinner,KnockOff,IceShard|Adamant|248,252,,,8,|||||,,,,,Ground","Tornadus-Therian||RockyHelmet|Regenerator|KnockOff,BleakwindStorm,Taunt,Uturn|Timid|188,,244,68,,8|||||,,,,,Flying]Great Tusk||AssaultVest|Protosynthesis|HeadlongRush,CloseCombat,HeavySlam,RapidSpin|Adamant|128,252,,,64,64|||||,Fighting,,,,Ground]Tera Captain|IronMoth|HeavyDutyBoots|QuarkDrive|FieryDance,SludgeWave,EnergyBall,MorningSun|Timid|180,,,152,,176||,0,,,,|||,,,,,Electric]Zarude||ChopleBerry|LeafGuard|KnockOff,PowerWhip,Uturn,Taunt|Jolly|,208,84,,,216|||||,,,,,Dark]Tinkaton||RockyHelmet|Pickpocket|StealthRock,PlayRough,GigatonHammer,Encore|Careful|252,,68,,180,8|||||,,,,,Fairy]Tera Captain|Mesprit|SitrusBerry|Levitate|ThunderWave,Psychic,DazzlingGleam,Encore|Modest|252,,80,176,,||,0,,,,|||,,,,,Fairy"], + ["Dewgong||HeavyDutyBoots|ThickFat|FlipTurn,AlluringVoice,IceBeam,Surf|Calm|252,,4,,252,|||||,,,,,Water]Enamorus-Therian||HeavyDutyBoots|Overcoat|IronDefense,CalmMind,DrainingKiss,EarthPower|Bold|248,,252,8,,||,0,,,,|||,,,,,Fairy]Roaring Moon||ChoiceBand|Protosynthesis|Outrage,Uturn,Earthquake,KnockOff|Jolly|72,252,,,,184|||||,,,,,Dragon]Ursaluna-Bloodmoon||Leftovers|MindsEye|BloodMoon,EarthPower,Moonlight,CalmMind|Bold|252,,252,4,,||,0,,,,|||,,,,,Ground]Tera Captain|OgerponCornerstone|CornerstoneMask|Sturdy|IvyCudgel,Uturn,KnockOff,Taunt|Jolly|,252,,,4,252|||||,,,,,Rock]Tera Captain|Armarouge|HeavyDutyBoots|WeakArmor|Endure,DestinyBond,ArmorCannon,AuraSphere|Modest|248,,,248,,12||,0,,,,|||,,,,,Fighting","Tera Captain|Latias|Leftovers|Levitate|MistBall,DrainingKiss,CalmMind,Recover|Timid|252,,,4,,252||,0,,,,|||,,,,,Fairy]Tera Captain|Toxicroak|Leftovers|PoisonTouch|SwordsDance,KnockOff,DrainPunch,GunkShot|Jolly|248,4,80,,,176|||||,,,,,Dark]Greninja-Bond||ExpertBelt|BattleBond|DarkPulse,IceBeam,Surf,WaterShuriken|Timid|24,,,252,,232|||||,Ghost,,,,Water]Snorlax||Leftovers|Immunity|Curse,Protect,BodySlam,Earthquake|Careful|88,4,164,,252,|||||,,,,,Normal]Iron Treads||BoosterEnergy|QuarkDrive|RapidSpin,StealthRock,HeavySlam,Earthquake|Adamant|248,56,96,,,108|||||,,,,,Ground]Gouging Fire||HeavyDutyBoots|Protosynthesis|DragonClaw,FlareBlitz,MorningSun,DragonDance|Careful|248,12,,,120,128|||||,Fighting,,,,Fire"], + ["Naclstack||Eviolite|PurifyingSalt|SaltCure,BodyPress,Recover,StealthRock|Careful|252,,4,,252,|||||,,,,,Rock]Garchomp||Leftovers|RoughSkin|Substitute,SwordsDance,ScaleShot,Earthquake|Adamant|76,252,,,,180|||||,,,,,Dragon]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Trailblaze,HornLeech,SwordsDance|Adamant|140,252,,,,116|||||,Poison,,,,Water]Tentacruel||HeavyDutyBoots|LiquidOoze|Toxic,RapidSpin,FlipTurn,SludgeBomb|Calm|252,,,4,252,|||||,,,,,Water]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,GrassKnot,KnockOff,Uturn|Calm|252,,,,228,28|||||,,,,,Flying]Gholdengo||ChoiceSpecs|GoodasGold|MakeItRain,ShadowBall,Recover,Trick|Timid|32,,,252,,224||,0,,,,|||,,,,,Steel","Dragonite||LoadedDice|Multiscale|StoneEdge,ExtremeSpeed,ScaleShot,Earthquake|Adamant|168,252,,,,88|||||,,,,,Dragon]Ting-Lu||Leftovers|VesselofRuin|StealthRock,Earthquake,StoneEdge,Spikes|Adamant|248,,252,,8,|||||,,,,,Dark]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,HeatWave,NastyPlot,IcyWind|Modest|252,,56,172,,28||,0,,,,|||,,,,,Flying]Tera Captain|GreninjaBond|SpellTag|BattleBond|TeraBlast,IcePunch,SwordsDance,Liquidation|Adamant|160,252,,,4,92|||||,Ghost,,,,Ghost]Tera Captain|Bellibolt|LightClay|Static|Reflect,LightScreen,Toxic,VoltSwitch|Calm|248,,84,,176,||,0,,,,|||,,,,,Flying]Misdreavus||Eviolite|Levitate|TrickRoom,WillOWisp,ShadowBall,Rest|Bold|248,,252,,8,||,0,,,,|||,,,,,Ghost"], + ["Iron Valiant||LifeOrb|QuarkDrive|Moonblast,CloseCombat,ZenHeadbutt,Encore|Naive|,168,,132,,208|||||,,,,,Fairy]Garchomp||EjectPack|RoughSkin|Earthquake,DracoMeteor,DragonTail,Spikes|Adamant|8,16,252,,,232|||||,,,,,Dragon]Empoleon||ChopleBerry|Torrent|IceBeam,FlipTurn,StealthRock,Yawn|Sassy|248,,212,,48,|||||,,,,,Water]Tera Captain|Ceruledge|FocusSash|WeakArmor|Poltergeist,TeraBlast,ShadowSneak,DestinyBond|Jolly|,252,4,,,252|||||,,,,,Ghost]Tera Captain|Tyranitar|SitrusBerry|SandStream|StoneEdge,KnockOff,Earthquake,DragonDance|Jolly|32,252,,,4,220|||||,,,,,Dragon]Tsareena||EjectButton|QueenlyMajesty|PowerWhip,LowKick,ZenHeadbutt,RapidSpin|Adamant|248,16,244,,,|||||,,,,,Grass","Fezandipiti||ShucaBerry|ToxicChain|Uturn,Roost,HeatWave,Moonblast|Bold|248,,144,,112,|||||,,,,,Poison]Tera Captain|Toedscruel|HeavyDutyBoots|MyceliumMight|RapidSpin,EarthPower,TeraBlast,GigaDrain|Modest|180,,20,28,132,148|||||,,,,,Fire]Archaludon||AssaultVest|Stamina|DracoMeteor,BodyPress,Thunderbolt,FlashCannon|Modest|200,,,104,204,||,0,,,,|||,,,,,Steel]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,KnockOff,Synthesis,Uturn|Jolly|120,128,4,,4,252|||||,Poison,,,,Water]Iron Hands||AssaultVest|QuarkDrive|DrainPunch,IcePunch,SupercellSlam,Earthquake|Adamant|,140,116,,252,|||||,,,,,Fighting]Kleavor||ChoiceScarf|Sharpness|CloseCombat,StoneEdge,XScissor,Uturn|Jolly|72,252,4,,8,172|||||,,,,,Bug"], + ["Ninetales||HeatRock|Drought|PainSplit,WillOWisp,Encore,HealingWish|Timid|248,,44,,,216||,0,,,,|||,,,,,Fire]Tera Captain|Rhyperior|ChoiceBand|SolidRock|Earthquake,StoneEdge,RockBlast,StealthRock|Adamant|248,252,,,,8|||||,,,,,Dragon]Great Tusk||LifeOrb|Protosynthesis|HeadlongRush,CloseCombat,IceSpinner,RapidSpin|Jolly|56,252,,,,200|||||,Fighting,,,,Ground]Gouging Fire||HeavyDutyBoots|Protosynthesis|HeatCrash,ScaleShot,IronHead,Earthquake|Adamant|,252,4,,,252|||||,Fighting,,,,Fire]Tera Captain|RagingBolt|EjectPack|Protosynthesis|Thunderbolt,DracoMeteor,TeraBlast,VoltSwitch|Modest|248,,8,252,,||,20,,,,|||,Fighting,,,,Poison]Walking Wake||AssaultVest|Protosynthesis|HydroSteam,DracoMeteor,KnockOff,FlipTurn|Timid|248,,,,232,28|||||,,,,,Water","Tera Captain|Gliscor|ChoiceScarf|HyperCutter|Earthquake,Uturn,GunkShot,DualWingbeat|Jolly|32,252,,,,224|||||,,,,,Ground]Dachsbun||Leftovers|WellBakedBody|PlayRough,Roar,Wish,Protect|Impish|248,,224,,36,|||||,,,,,Fairy]Weavile||ChoiceBand|Pickpocket|KnockOff,BeatUp,IceShard,TripleAxel|Adamant|,252,4,,,252|||||,,,,,Dark]Tera Captain|Heatran|AssaultVest|FlashFire|TeraBlast,FlashCannon,EarthPower,Flamethrower|Modest|248,,76,176,,8||,0,,,,|||,,,,,Fairy]Ogerpon-Wellspring||WellspringMask|WaterAbsorb|PowerWhip,IvyCudgel,PlayRough,Synthesis|Jolly|8,252,,,,248|||||,Poison,,,,Water]Slowking-Galar||ShucaBerry|Regenerator|ChillyReception,ToxicSpikes,SlackOff,Psychic|Calm|248,,156,,104,||,0,,,,26|||,,,,,Poison"], + ["Tera Captain|Mew|Leftovers|Synchronize|DrainingKiss,BodyPress,IronDefense,CalmMind|Bold|252,,208,,44,4||,0,,,,|||,,,,,Fairy]Tera Captain|MoltresGalar|YacheBerry|Berserk|FieryWrath,AirSlash,NastyPlot,Agility|Modest|120,,4,252,,132||,0,,,,|||,,,,,Water]Feraligatr||RockyHelmet|Torrent|FlipTurn,LowKick,AquaJet,Roar|Impish|252,4,252,,,|||||,,,,,Normal]Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,IceSpinner,RapidSpin,StealthRock|Jolly|40,252,,,,216|||||,,,,,Normal]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,EnergyBall,VacuumWave|Timid|16,,,252,,240||,0,,,,|||,,,,,Normal]Amoonguss||RedCard|Regenerator|SludgeBomb,GigaDrain,Spore,StunSpore|Bold|248,,216,,40,4||,0,,,,|||,,,,,Normal","Palafin||SitrusBerry|ZerotoHero|BulkUp,Substitute,Acrobatics,JetPunch|Adamant|252,,4,,252,|||||,,,,,Water]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,FlareBlitz,Substitute,DragonClaw|Jolly|,164,,,96,248|||||,Fighting,,,,Fire]Terapagos||HeavyDutyBoots|TeraShift|EarthPower,Toxic,RapidSpin,Roar|Bold|252,,244,,12,|||||,Dark,,,,Stellar]Tera Captain|ThundurusTherian|AssaultVest|VoltAbsorb|Thunderbolt,Psychic,TeraBlast,Uturn|Modest|120,,,,144,244|||||,,,,,Water]Weavile||ChoiceBand|Pressure|KnockOff,IceSpinner,IceShard,LowKick|Jolly|72,252,,,,184|||||,,,,,Dark]Copperajah||CustapBerry|HeavyMetal|StealthRock,HeavySlam,Earthquake,Endure|Impish|152,,252,,104,|||||,,,,,Steel"], + ["Baxcalibur||ChoiceBand|ThermalExchange|GlaiveRush,IcicleCrash,Earthquake,IceShard|Adamant|44,252,,,,212|||||,,,,,Dragon]Slowking-Galar||HeavyDutyBoots|Regenerator|SludgeBomb,GrassKnot,Toxic,ChillyReception|Calm|252,,4,,252,||,0,,,,|||,,,,,Poison]Tera Captain|Ogerpon|UtilityUmbrella|Defiant|HornLeech,KnockOff,Encore,Synthesis|Impish|248,,232,,,28|||||,,,,,Grass]Slither Wing||CovertCloak|Protosynthesis|CloseCombat,FirstImpression,MorningSun,BulkUp|Adamant|232,252,,,,24|||||,,,,,Bug]Hydreigon||ChopleBerry|Levitate|DracoMeteor,DarkPulse,StealthRock,Uturn|Modest|132,,,252,,124|||||,,,,,Dark]Tera Captain|Jolteon|HeavyDutyBoots|VoltAbsorb|Thunderbolt,TeraBlast,VoltSwitch,CalmMind|Modest|124,,,252,,132||,0,,,,|||,,,,,Grass","Tera Captain|Skarmory|RockyHelmet|Sturdy|BodyPress,Spikes,IronDefense,Roost|Impish|252,,232,,,24||,0,,,,|||,,,,,Dragon]Ting-Lu||RedCard|VesselofRuin|Earthquake,Whirlwind,BodyPress,StealthRock|Careful|248,,76,,184,|||||,,,,,Dark]Clefable||Leftovers|MagicGuard|Moonblast,CalmMind,Wish,Protect|Bold|252,,232,,24,||,0,,,,|||,,,,,Fairy]Politoed||DampRock|Drizzle|Encore,Haze,Rest,Surf|Calm|248,,,8,252,||,0,,,,|||,,,,,Water]Ludicolo||LifeOrb|SwiftSwim|WeatherBall,GigaDrain,IceBeam,KnockOff|Modest|,,,252,4,252|||||,,,,,Water]Sinistcha||HeavyDutyBoots|Heatproof|MatchaGotcha,CalmMind,ShadowBall,StrengthSap|Bold|252,,160,,,96||,0,,,,|||,,,,,Grass"], + ["Gholdengo||AbilityShield|GoodasGold|NastyPlot,MakeItRain,ShadowBall,DazzlingGleam|Modest|4,,224,72,,208||,0,,,,|||,,,,,Steel]Tera Captain|KeldeoResolute|AssaultVest|Justified|Surf,SecretSword,TeraBlast,VacuumWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Ghost]Meowscarada||ChopleBerry|Protean|FlowerTrick,KnockOff,Spikes,TripleAxel|Jolly|,216,,,144,148|||||,,,,,Grass]Enamorus-Therian||BabiriBerry|Overcoat|Agility,Moonblast,MysticalFire,Psychic|Modest|76,,,176,4,252||,0,,,,|||,,,,,Fairy]Smeargle||FocusSash|OwnTempo|BurningBulwark,StickyWeb,CeaselessEdge,Encore|Impish|252,,252,,4,|||||,,,,,Normal]Tera Captain|Entei|HeavyDutyBoots|InnerFocus|SacredFire,TeraBlast,Agility,SunnyDay|Adamant|128,252,,,,128|||||,,,,,Fairy","Tera Captain|Keldeo|LumBerry|Justified|VacuumWave,CalmMind,Surf,TeraBlast|Timid|,,4,252,,252||,0,,,,|||,,,,,Poison]Garchomp||CovertCloak|RoughSkin|Earthquake,PoisonJab,DragonTail,StealthRock|Jolly|248,,140,,,120|||||,,,,,Dragon]Weavile||HeavyDutyBoots|Pressure|SwordsDance,TripleAxel,KnockOff,IceShard|Jolly|104,252,4,,,148|||||,,,,,Dark]Weezing-Galar||EjectPack|Levitate|StrangeSteam,Overheat,PainSplit,Defog|Bold|248,,192,60,,8||,0,,,,|||,,,,,Poison]Rotom-Mow||SitrusBerry|Levitate|NastyPlot,LeafStorm,VoltSwitch,PainSplit|Bold|248,,92,116,52,||,0,,,,|||,,,,,Electric]Tera Captain|Mesprit|ColburBerry|Levitate|CalmMind,Uturn,PsychicNoise,ShadowBall|Calm|248,,,8,252,|||||,,,,,Water"], + ["Great Tusk||ChoiceScarf|Protosynthesis|CloseCombat,HeadlongRush,HeavySlam,Facade|Jolly|16,248,,,8,236|||||,Fighting,,,,Ground]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,HornLeech,Trailblaze,Encore|Jolly|,252,4,,,252|||||,Poison,,,,Water]Alomomola||AssaultVest|Regenerator|FlipTurn,ChillingWater,PlayRough,MirrorCoat|Relaxed|248,4,8,,248,||,,,,,0|||,,,,,Water]Iron Crown||AssaultVest|QuarkDrive|PsychicNoise,TachyonCutter,FutureSight,VoltSwitch|Modest|192,,4,252,24,36||,20,,,,|||,Fighting,,,,Steel]Tera Captain|Diancie|Leftovers|ClearBody|DiamondStorm,BodyPress,StealthRock,Protect|Relaxed|252,4,252,,,|||||,,,,,Dragon]Sneasel-Hisui||FlameOrb|Pickpocket|PoisonJab,Fling,Thief,ToxicSpikes|Jolly|252,4,,,36,216|||||,,,,,Fighting","Palafin||PunchingGlove|ZerotoHero|JetPunch,DrainPunch,BulkUp,Substitute|Adamant|248,252,8,,,|||||,,,,,Water]Tera Captain|Gholdengo|Leftovers|GoodasGold|ShadowBall,Recover,ThunderWave,TeraBlast|Bold|248,,200,,,60||,0,,,,|||,,,,,Grass]Tera Captain|Jolteon|AssaultVest|VoltAbsorb|AlluringVoice,Thunderbolt,ShadowBall,VoltSwitch|Timid|40,,,252,,216||,0,,,,|||,,,,,Fairy]Hydreigon||ChopleBerry|Levitate|DracoMeteor,DarkPulse,Surf,Uturn|Timid|80,,,176,,252|||||,,,,,Dark]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|PowerWhip,IvyCudgel,RockTomb,Uturn|Jolly|,252,,,4,252|||||,Poison,,,,Fire]Weezing-Galar||RockyHelmet|Levitate|StrangeSteam,Toxic,PainSplit,Defog|Bold|248,,208,,,52||,0,,,,|||,,,,,Poison"], + ["Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|Spikes,RockTomb,KnockOff,WoodHammer|Jolly|252,28,,,,228|||||,Poison,,,,Fire]Tera Captain|Latias|ExpertBelt|Levitate|TeraBlast,IceBeam,Thunderbolt,Agility|Modest|136,,,252,,120||,0,,,,|||,,,,,Ground]Tera Captain|Kilowattrel|HeavyDutyBoots|VoltAbsorb|Uturn,TeraBlast,Thunderbolt,AirSlash|Timid|16,,,252,,240|||||,,,,,Ground]Scrafty||AssaultVest|ShedSkin|KnockOff,DrainPunch,RockSlide,DragonTail|Adamant|252,252,,,4,|||||,,,,,Dark]Iron Treads||WeaknessPolicy|QuarkDrive|RapidSpin,Earthquake,SupercellSlam,IronHead|Adamant|,252,,,4,252|||||,,,,,Ground]Smeargle||FocusSash|OwnTempo|BurningBulwark,Endeavor,ExtremeSpeed,StealthRock|Hasty|,252,,4,,252||0,,0,,0,|||,,,,,Normal","Iron Treads||BoosterEnergy|QuarkDrive|Earthquake,RapidSpin,StealthRock,StoneEdge|Jolly|4,252,,,,252|||||,,,,,Ground]Tera Captain|RagingBolt|ChoiceSpecs|Protosynthesis|TeraBlast,DracoMeteor,VoltSwitch,Thunderclap|Modest|248,,,252,,8||,20,,,,|||,Fighting,,,,Ghost]Meowscarada||ChoiceSpecs|Protean|LeafStorm,Trick,ShadowBall,PowerGem|Timid|104,,,252,,152||,0,,,,|S||,,,,,Grass]Slowking-Galar||ClearAmulet|Regenerator|Imprison,StoredPower,CalmMind,ChillyReception|Calm|252,,4,,252,||,0,,,,|S||,,,,,Poison]Dudunsparce-Three-Segment||Leftovers|SereneGrace|BodySlam,Roost,EarthPower,BatonPass|Relaxed|252,4,252,,,|||S||,,,,,Normal]Haunter||ChoiceScarf|Levitate|Trick,ShadowBall,SludgeWave,FocusBlast|Modest|56,,,252,,200||,0,,,,|S||,,,,,Ghost"], + ["Tera Captain|Fezandipiti|SilkScarf|Technician|SwordsDance,QuickAttack,DualWingbeat,LashOut|Adamant|48,252,,,4,204|||||,,,,,Normal]Illumise||HeavyDutyBoots|Prankster|Roost,RainDance,Uturn,Encore|Impish|248,,252,,8,|||||,,,,,Bug]Meowscarada||ChoiceScarf|Protean|PlayRough,Spikes,KnockOff,TripleAxel|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Gholdengo|Leftovers|GoodasGold|ThunderWave,Recover,Hex,LightScreen|Calm|252,,4,,252,||,0,,,,|||,,,,,Dragon]Great Tusk||Leftovers|Protosynthesis|RapidSpin,StealthRock,TemperFlare,HeadlongRush|Jolly|252,4,,,,252|||||,Fighting,,,,Ground]Alomomola||AssaultVest|Regenerator|FlipTurn,AquaJet,IcyWind,PlayRough|Careful|252,,4,,252,|||||,,,,,Water","Torkoal||HeatRock|Drought|Yawn,StealthRock,RapidSpin,LavaPlume|Bold|248,,252,8,,|||||,,,,,Fire]Tera Captain|Venusaur|LifeOrb|Chlorophyll|EarthPower,Growth,WeatherBall,GigaDrain|Modest|,,,252,4,252||,0,,,,|||,,,,,Fire]Bronzong||ColburBerry|Levitate|BodyPress,IronDefense,Psychic,LightScreen|Sassy|252,4,,,252,||,0,,,,|||,,,,,Steel]Chi-Yu||AssaultVest|BeadsofRuin|Overheat,Flamethrower,DarkPulse,Psychic|Hasty|,4,,252,,252||,0,,,,|||,,,,,Dark]Tera Captain|WalkingWake|LifeOrb|Protosynthesis|HydroSteam,Flamethrower,DracoMeteor,DragonPulse|Timid|12,,,244,,252||,0,,,,|||,,,,,Steel]Clefable||Leftovers|MagicGuard|ThunderWave,KnockOff,Moonlight,Moonblast|Relaxed|252,,252,,4,|||||,,,,,Fairy"], + ["Iron Valiant||HeavyDutyBoots|QuarkDrive|Moonblast,VacuumWave,Hex,Hypnosis|Modest|124,,,252,,132||,0,,,,|||,,,,,Fairy]Tera Captain|Scizor|MentalHerb|Technician|SwordsDance,BulletPunch,TeraBlast,KnockOff|Adamant|180,252,,,,76|||||,,,,,Fire]Rotom-Wash||YacheBerry|Levitate|HydroPump,VoltSwitch,WillOWisp,PainSplit|Bold|248,,92,,168,||,0,,,,|||,,,,,Electric]Garchomp||RockyHelmet|RoughSkin|Spikes,FireBlast,Earthquake,DragonTail|Impish|248,32,228,,,|||||,,,,,Dragon]Uxie||SitrusBerry|Levitate|StealthRock,Encore,Uturn,PainSplit|Careful|248,,,,140,120|||||,,,,,Psychic]Sableye||AirBalloon|Prankster|WillOWisp,Recover,KnockOff,Encore|Impish|252,,104,,152,|||||,,,,,Dark","Slowking-Galar||ColburBerry|Regenerator|IceBeam,ChillyReception,SludgeBomb,Flamethrower|Sassy|252,,16,,240,||,0,,,,0|||,,,,,Water]Tera Captain|Scizor|HeavyDutyBoots|Technician|SwordsDance,KnockOff,Uturn,BulletPunch|Adamant|248,252,,,8,|||||,,,,,Fire]Great Tusk||Leftovers|Protosynthesis|Earthquake,StealthRock,KnockOff,RapidSpin|Impish|252,,220,,,36|||||,Fighting,,,,Water]Tera Captain|Sylveon|Leftovers|Pixilate|CalmMind,HyperVoice,Wish,Protect|Bold|252,,252,,4,||,0,,,,|||,,,,,Water]Iron Bundle||HeavyDutyBoots|QuarkDrive|HydroPump,FreezeDry,FlipTurn,Encore|Timid|,,,252,4,252|||||,,,,,Ice]Rotom-Mow||ChoiceScarf|Levitate|WillOWisp,VoltSwitch,LeafStorm,Trick|Timid|,,,252,4,252||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Annihilape|ChoiceScarf|Defiant|TeraBlast,RageFist,Uturn,CloseCombat|Adamant|144,252,,,,112|||||,,,,,Ghost]Greninja-Bond||LifeOrb|BattleBond|WaterShuriken,IceBeam,Protect,DarkPulse|Timid|48,,,252,,208|||||,,,,,Water]Tornadus-Therian||HeavyDutyBoots|Regenerator|BleakwindStorm,KnockOff,HeatWave,IcyWind|Timid|200,,,68,24,216|||||,,,,,Flying]Ting-Lu||HeavyDutyBoots|VesselofRuin|StealthRock,Spikes,Ruination,Whirlwind|Bold|252,,252,,4,||,0,,,,|||,,,,,Dark]Scizor||ProtectivePads|Technician|BulletPunch,SwordsDance,QuickAttack,CloseCombat|Adamant|248,252,,,8,|||||,,,,,Bug]Arbok||HeavyDutyBoots|Intimidate|Glare,Toxic,GunkShot,KnockOff|Impish|252,,252,,4,|||||,,,,,Poison","Tentacruel||BlackSludge|LiquidOoze|Haze,RapidSpin,FlipTurn,Toxic|Careful|248,,8,,252,|||||,,,,,Water]Tera Captain|Lokix|ChoiceScarf|TintedLens|KnockOff,Uturn,FirstImpression,LeechLife|Jolly|16,252,,,,240|||||,,,,,Bug]Iron Valiant||HeavyDutyBoots|QuarkDrive|Moonblast,VacuumWave,ShadowBall,Thunderbolt|Modest|96,,,252,4,156||,0,,,,|||,,,,,Fairy]Tera Captain|Ogerpon|HeavyDutyBoots|Defiant|LeechSeed,KnockOff,Taunt,SpikyShield|Impish|248,,252,,8,|||||,Poison,,,,Grass]Rotom-Heat||ChoiceSpecs|Levitate|WillOWisp,VoltSwitch,PainSplit,Trick|Bold|248,,252,,8,||,0,,,,|||,,,,,Electric]Garchomp||Leftovers|RoughSkin|StealthRock,Spikes,DragonTail,Earthquake|Careful|248,,8,,252,|||||,,,,,Dragon"], + ["Latios||ColburBerry|Levitate|DracoMeteor,LusterPurge,AuraSphere,CalmMind|Timid|,,80,252,,176||,0,,,,|||,,,,,Dragon]Tera Captain|UrshifuRapidStrike|PunchingGlove|UnseenFist|SurgingStrikes,CloseCombat,IcePunch,SwordsDance|Adamant|,252,,,80,176|||||,,,,,Fighting]Sandy Shocks||HeavyDutyBoots|Protosynthesis|EarthPower,ThunderWave,Spikes,VoltSwitch|Modest|252,,80,32,,144||,0,,,,|||,,,,,Electric]Tornadus-Therian||SafetyGoggles|Regenerator|BleakwindStorm,FocusBlast,Uturn,Taunt|Timid|252,,,84,84,88|||||,,,,,Flying]Brambleghast||HeavyDutyBoots|Infiltrator|Poltergeist,ShadowSneak,SeedBomb,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Grass]Tera Captain|Moltres|HeavyDutyBoots|Pressure|Flamethrower,ScorchingSands,Hurricane,Roost|Timid|252,,20,100,,136||,0,,,,|||,,,,,Grass","Tera Captain|RagingBolt|ChoiceScarf|Protosynthesis|DracoMeteor,Thunderbolt,VoltSwitch,DragonPulse|Modest|64,,,252,,192||,20,,,,|||,,,,,Dragon]Tera Captain|PorygonZ|ExpertBelt|Download|Thunderbolt,IceBeam,NastyPlot,Agility|Modest|160,,,252,,96||,0,,,,|||,,,,,Water]Cinderace||HeavyDutyBoots|Libero|WillOWisp,Uturn,PyroBall,Facade|Jolly|,252,72,,,184|||||,,,,,Fire]Palafin||Leftovers|ZerotoHero|Substitute,BulkUp,JetPunch,IcePunch|Adamant|48,252,32,,,176|||||,,,,,Water]Kingambit||LumBerry|SupremeOverlord|SuckerPunch,KowtowCleave,LowKick,SwordsDance|Jolly|252,72,,,,184|||||,,,,,Dark]Donphan||Leftovers|Sturdy|RapidSpin,StealthRock,Encore,KnockOff|Careful|252,,,,252,4|||||,,,,,Ground"], + ["Gliscor||ToxicOrb|PoisonHeal|Protect,Earthquake,Uturn,StealthRock|Careful|244,,12,,252,|||||,,,,,Ground]Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Glare|Timid|120,,,236,,152||,0,,,,|||,,,,,Stellar]Tera Captain|Galvantula|ChoiceSpecs|CompoundEyes|VoltSwitch,Thunder,TeraBlast,StickyWeb|Timid|64,,,252,,192||,0,,,,|||,,,,,Ground]Ninetales-Alola||LightClay|SnowWarning|FreezeDry,Disable,AuroraVeil,Encore|Modest|252,,4,252,,||,0,,,,|||,,,,,Ice]Samurott-Hisui||ChoiceScarf|Sharpness|CeaselessEdge,RazorShell,FlipTurn,SacredSword|Adamant|200,252,,,,56|||||,,,,,Water]Metagross||ExpertBelt|ClearBody|Trailblaze,PsychicFangs,Earthquake,StoneEdge|Adamant|252,252,4,,,|||||,,,,,Steel","Zapdos||ChoiceScarf|Static|VoltSwitch,Hurricane,Thunder,WeatherBall|Modest|12,,,252,108,136||,0,,,,|S||,,,,,Electric]Archaludon||AssaultVest|Stamina|DarkPulse,DragonPulse,FlashCannon,ElectroShot|Modest|28,,,252,144,84||,0,,,,|S||,,,,,Steel]Politoed||HeavyDutyBoots|Drizzle|HydroPump,Encore,FocusBlast,Rest|Bold|252,,100,,156,||,0,,,,|S||,,,,,Water]Tera Captain|Annihilape|LumBerry|Defiant|Rest,BulkUp,DrainPunch,RageFist|Careful|,100,60,,252,96|||S||,,,,,Poison]Palafin||HeavyDutyBoots|ZerotoHero|BulkUp,JetPunch,FlipTurn,DrainPunch|Adamant|240,252,,,,16|||S||,,,,,Water]Electrode-Hisui||MirrorHerb|Static|GigaDrain,WorrySeed,Thunder,Charge|Timid|,,,252,128,128||,0,,,,|||,,,,,Electric"], + ["Tera Captain|Gliscor|ToxicOrb|PoisonHeal|Facade,Earthquake,SwordsDance,Agility|Adamant|176,136,,,,196|||||,,,,,Normal]Slowking||HeavyDutyBoots|Regenerator|FutureSight,FireBlast,SlackOff,ChillyReception|Sassy|252,,72,36,148,||,0,,,,0|||,,,,,Normal]Iron Treads||HeavyDutyBoots|QuarkDrive|Earthquake,VoltSwitch,RapidSpin,StealthRock|Adamant|,88,,,184,236|||||,,,,,Normal]Ditto||ChoiceScarf|Imposter|Transform|Calm|252,,,,252,4||,30,,,,|S||,,,,,Normal]Goodra-Hisui||AssaultVest|Gooey|DragonPulse,FlashCannon,FireBlast,DragonTail|Sassy|248,,104,,156,|||||,,,,,Normal]Iron Valiant||LightClay|QuarkDrive|KnockOff,LightScreen,Reflect,DestinyBond|Jolly|248,40,,,12,208|||||,,,,,Normal","Ting-Lu||AssaultVest|VesselofRuin|Earthquake,BodyPress,StoneEdge,HeavySlam|Adamant|,252,252,,4,|||||,,,,,Dark]Torkoal||AirBalloon|Drought|ShellSmash,Earthquake,FlareBlitz,StoneEdge|Adamant|252,252,,,4,|||||,,,,,Fire]Tera Captain|Venusaur|Leftovers|Chlorophyll|EnergyBall,KnockOff,TeraBlast,SludgeBomb|Modest|248,,,252,,8|||||,,,,,Ground]Flamigo||ChoiceBand|Scrappy|CloseCombat,Uturn,BraveBird,Liquidation|Jolly|32,252,,,,224|||||,,,,,Flying]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|FieryDance,EnergyBall,Psychic,SludgeWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Psychic]Gholdengo||ChoiceScarf|GoodasGold|Trick,Psyshock,ShadowBall,FocusBlast|Modest|252,,,252,4,||,0,,,,|||,,,,,Steel"], + ["Tera Captain|Jirachi|SitrusBerry|SereneGrace|Encore,Wish,Protect,Uturn|Careful|248,,,,248,12|||||,,,,,Fairy]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,AuraSphere,Hypnosis,DestinyBond|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,Uturn,BrickBreak|Timid|,,,108,184,216|||||,,,,,Flying]Tera Captain|SandyShocks|BoosterEnergy|Protosynthesis|Thunderbolt,EarthPower,TeraBlast,StealthRock|Timid|,,,208,48,252||,0,,,,|||,,,,,Grass]Samurott-Hisui||ChoiceScarf|Sharpness|FlipTurn,CeaselessEdge,SacredSword,AquaCutter|Adamant|72,252,,,,184|||||,,,,,Water]Brambleghast||ColburBerry|Infiltrator|Poltergeist,RapidSpin,Disable,StrengthSap|Jolly|248,,204,,,56|||||,,,,,Grass","Tera Captain|Talonflame|HeavyDutyBoots|GaleWings|FlareBlitz,BraveBird,Defog,Roost|Jolly|40,252,,,,216|||||,,,,,Fire]Tera Captain|Zarude|HeavyDutyBoots|LeafGuard|TeraBlast,Crunch,BulkUp,Synthesis|Jolly|248,,,,36,224|||||,,,,,Electric]Rotom-Wash||ChoiceScarf|Levitate|HydroPump,ShadowBall,VoltSwitch,Trick|Timid|8,,,252,,248||,0,,,,|||,,,,,Electric]Jirachi||Leftovers|SereneGrace|BodySlam,DoomDesire,Uturn,StealthRock|Relaxed|248,,252,,8,|||||,,,,,Steel]Ursaluna||SoftSand|Guts|HeadlongRush,BodySlam,CloseCombat,Crunch|Adamant|,252,76,,180,|||||,,,,,Ground]Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,ShadowBall,Psyshock,DestinyBond|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy"], + ["Great Tusk||BoosterEnergy|Protosynthesis|HeadlongRush,IceSpinner,Megahorn,RapidSpin|Adamant|80,252,4,,,172|||||,Fighting,,,,Ground]Tera Captain|Latias|Leftovers|Levitate|Thunderbolt,IceBeam,CalmMind,Recover|Timid|248,,,8,,252||,0,,,,|||,,,,,Electric]Greninja-Bond||ExpertBelt|BattleBond|Surf,DarkPulse,SludgeWave,IceBeam|Timid|,,,252,72,184|||||,Ghost,,,,Water]Tinkaton||LightClay|MoldBreaker|GigatonHammer,Endeavor,LightScreen,Reflect|Careful|232,,,,252,24|||||,,,,,Fairy]Muk||BlackSludge|PoisonTouch|PoisonJab,KnockOff,FireBlast,ToxicSpikes|Careful|232,,,,252,24|||||,,,,,Poison]Rillaboom||Leftovers|GrassySurge|GrassyGlide,KnockOff,Uturn,LeechSeed|Adamant|160,252,,,,96|||||,,,,,Grass","Tera Captain|Serperior|Leftovers|Contrary|LeafStorm,TeraBlast,Substitute,Glare|Timid|248,,,8,,252||,0,,,,|||,,,,,Fire]Azumarill||AssaultVest|HugePower|PlayRough,AquaJet,Liquidation,KnockOff|Adamant|248,252,,,8,|||||,,,,,Water]Uxie||ColburBerry|Levitate|Psychic,Encore,KnockOff,ThunderWave|Gentle|248,,,,252,8|||||,,,,,Psychic]Tera Captain|Rhyperior|LumBerry|LightningRod|StoneEdge,Earthquake,Avalanche,StealthRock|Adamant|248,252,,,8,|||||,,,,,Water]Noivern||HeavyDutyBoots|Infiltrator|DracoMeteor,AirSlash,SuperFang,Uturn|Timid|,,,252,4,252|||||,,,,,Flying]Forretress||RockyHelmet|Sturdy|ThunderWave,BodyPress,IronDefense,RapidSpin|Impish|248,,252,,8,|||||,,,,,Bug"], + ["Palafin||ChoiceBand|ZerotoHero|JetPunch,FlipTurn,CloseCombat,IcePunch|Jolly|72,252,,,,184|||||,,,,,Water]Zapdos||HeavyDutyBoots|Static|VoltSwitch,Roost,HeatWave,ThunderWave|Calm|248,,8,,252,||,0,,,,|||,,,,,Electric]Ting-Lu||Leftovers|VesselofRuin|Spikes,Ruination,HeavySlam,Earthquake|Careful|248,160,,,100,|||||,,,,,Dark]Kyurem||HeavyDutyBoots|Pressure|FreezeDry,FlashCannon,IceBeam,EarthPower|Timid|28,,,252,4,224||,0,,,,|||,,,,,Dragon]Tera Captain|Suicune|Leftovers|Pressure|Snarl,TeraBlast,Protect,Scald|Calm|248,,8,,252,||,0,,,,|||,,,,,Fire]Tera Captain|Heatran|Leftovers|FlashFire|StealthRock,MagmaStorm,EarthPower,Protect|Calm|248,,,,208,52||,0,,,,|||,,,,,Grass","Tera Captain|WalkingWake|ChoiceSpecs|Protosynthesis|HydroSteam,DragonPulse,DracoMeteor,FlipTurn|Timid|64,,8,252,,184|||||,,,,,Dragon]Torkoal||HeatRock|Drought|BodyPress,WillOWisp,StealthRock,Yawn|Bold|248,,180,,80,||,0,,,,|||,,,,,Fire]Gouging Fire||LumBerry|Protosynthesis|Outrage,DragonDance,Earthquake,MorningSun|Adamant|128,248,,,52,80|||||,,,,,Fire]Tera Captain|Venusaur|EjectPack|Chlorophyll|EarthPower,SludgeBomb,SleepPowder,LeafStorm|Modest|88,,,252,,168||,0,,,,|||,,,,,Water]Iron Treads||AssaultVest|QuarkDrive|VoltSwitch,Earthquake,IronHead,KnockOff|Jolly|248,24,,,68,168|||||,,,,,Ground]Hatterene||EjectButton|MagicBounce|DazzlingGleam,Psyshock,Nuzzle,HealingWish|Bold|252,,244,,12,|||||,,,,,Psychic"], + ["Tera Captain|UrshifuRapidStrike|ProtectivePads|UnseenFist|SurgingStrikes,SwordsDance,Trailblaze,CloseCombat|Jolly|48,252,,,,208|||||,,,,,Grass]Tera Captain|Armarouge|ChoiceSpecs|FlashFire|DragonPulse,ArmorCannon,EnergyBall,Trick|Modest|244,,4,252,,8||,0,,,,|||,,,,,Fairy]Weavile||ChoiceScarf|Pickpocket|IcicleCrash,KnockOff,TripleAxel,LowKick|Jolly|16,252,,,,240|||||,,,,,Dark]Donphan||CustapBerry|Sturdy|Roar,HighHorsepower,IceShard,HeavySlam|Adamant|252,120,52,,,84|||||,,,,,Ground]Slowking-Galar||ColburBerry|Regenerator|ThunderWave,ChillyReception,FutureSight,SludgeBomb|Sassy|252,,124,,132,||,0,,,,0|||,,,,,Poison]Forretress||RockyHelmet|Sturdy|StealthRock,VoltSwitch,Explosion,RapidSpin|Sassy|252,,,,252,|||||,,,,,Bug","Tera Captain|LandorusTherian|RockyHelmet|Intimidate|SludgeBomb,EarthPower,StealthRock,Uturn|Timid|248,,132,,,128|||||,,,,,Water]Weezing-Galar||RockyHelmet|Levitate|Defog,StrangeSteam,ShadowBall,PainSplit|Bold|252,,252,,,4||,0,,,,|||,,,,,Poison]Slowking||HeavyDutyBoots|Regenerator|Scald,Psychic,SlackOff,ChillyReception|Sassy|252,,4,,252,||,0,,,,0|||,,,,,Water]Meowscarada||HeavyDutyBoots|Protean|Uturn,FlowerTrick,KnockOff,Spikes|Jolly|104,252,,,,152|||||,,,,,Grass]Gouging Fire||BoosterEnergy|Protosynthesis|DragonClaw,FlareBlitz,DragonDance,Substitute|Adamant|32,252,,,,224|||||,,,,,Fire]Tera Captain|SneaselHisui|Eviolite|Pickpocket|NightSlash,CloseCombat,PoisonJab,SwordsDance|Jolly|40,252,,,,216|||||,,,,,Fighting"], + ["Palafin||AssaultVest|ZerotoHero|FlipTurn,JetPunch,IcePunch,DrainPunch|Careful|252,4,,,252,|||||,,,,,Water]Iron Treads||BoosterEnergy|QuarkDrive|StealthRock,RapidSpin,IceSpinner,HighHorsepower|Jolly|48,252,,,,208|||||,,,,,Ground]Tera Captain|Rillaboom|ChoiceBand|GrassySurge|GrassyGlide,Uturn,KnockOff,DrainPunch|Adamant|40,252,,,,216|||||,,,,,Fairy]Tera Captain|Armarouge|HeavyDutyBoots|WeakArmor|CalmMind,Psychic,ShadowBall,ArmorCannon|Modest|220,,,252,,36||,0,,,,|||,,,,,Ghost]Weezing||RockyHelmet|Levitate|WillOWisp,PainSplit,FireBlast,SludgeBomb|Bold|252,,204,,,52||,0,,,,|||,,,,,Poison]Tornadus-Therian||AssaultVest|Regenerator|Uturn,KnockOff,IcyWind,BleakwindStorm|Timid|252,,,,88,168|||||,,,,,Flying","Orthworm||MentalHerb|EarthEater|ShedTail,StealthRock,Spikes,BodyPress|Bold|248,,252,,8,||,0,,,,|S||,,,,,Steel]Tera Captain|IronMoth|BoosterEnergy|QuarkDrive|Discharge,FieryDance,SludgeWave,EnergyBall|Timid|120,,,132,4,252||,0,,,,|||,,,,,Grass]Palafin||RindoBerry|ZerotoHero|BulkUp,DrainPunch,WaveCrash,JetPunch|Adamant|252,252,,,,4|||||,,,,,Water]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,SuckerPunch,Uturn|Jolly|16,252,,,,240|||S||,,,,,Grass]Terapagos||HeavyDutyBoots|TeraShift|CalmMind,TeraStarstorm,EarthPower,Roar|Modest|248,,,252,8,||,15,,,,|||,Dark,,,,Stellar]Tera Captain|Golurk|ColburBerry|NoGuard|StealthRock,Earthquake,Poltergeist,BrickBreak|Adamant|208,252,,,,48|||S||,,,,,Fighting"], + ["Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,ShadowBall,Psyshock,VacuumWave|Timid|,,4,252,,252||,0,,,,|||,,,,,Fairy]Skuntank||SitrusBerry|Aftermath|KnockOff,GunkShot,Toxic,Haze|Jolly|,4,,,252,252|||||,,,,,Poison]Tornadus-Therian||AssaultVest|Regenerator|BleakwindStorm,HeatWave,KnockOff,Uturn|Timid|248,,,,44,216|||||,,,,,Flying]Tera Captain|Empoleon|ChopleBerry|Torrent|StealthRock,FlipTurn,KnockOff,Roar|Impish|252,,252,,4,|||||,,,,,Poison]Garchomp||RoseliBerry|RoughSkin|SwordsDance,Earthquake,ScaleShot,Spikes|Adamant|40,252,,,,216|||||,,,,,Dragon]Tera Captain|Mew|SitrusBerry|Synchronize|CalmMind,Psychic,FocusBlast,ShadowBall|Modest|232,,,252,,24||,0,,,,|||,,,,,Poison","Iron Valiant||ChoiceScarf|QuarkDrive|Moonblast,Thunderbolt,Encore,Trick|Timid|,,,248,8,252||,0,,,,|||,,,,,Fairy]Tera Captain|Gholdengo|CustapBerry|GoodasGold|MakeItRain,ShadowBall,NastyPlot,Endure|Modest|248,,24,116,120,||,0,,,,|||,,,,,Poison]Ting-Lu||Leftovers|VesselofRuin|Earthquake,ThroatChop,Spikes,Whirlwind|Impish|184,48,212,,64,|||||,,,,,Dark]Tera Captain|ElectrodeHisui|LifeOrb|Static|TeraBlast,LeafStorm,VoltSwitch,Taunt|Modest|72,,,252,24,160||,0,,,,|||,,,,,Ice]Blastoise||MysticWater|Torrent|WaveCrash,IceSpinner,AquaJet,ShellSmash|Jolly|24,252,,,,232|||||,,,,,Water]Braviary||ChoiceScarf|Defiant|BraveBird,Uturn,CloseCombat,Defog|Adamant|16,252,,,,240|||||,,,,,Normal"], + ["Glimmora||FocusSash|ToxicDebris|StealthRock,MortalSpin,SludgeBomb,EarthPower|Modest|4,,,252,,252|||||,,,,,Rock]Iron Valiant||BoosterEnergy|QuarkDrive|CloseCombat,SpiritBreak,KnockOff,SwordsDance|Jolly|,252,,,4,252|||||,,,,,Fairy]Gholdengo||ColburBerry|GoodasGold|ThunderWave,Hex,Recover,MakeItRain|Bold|240,,188,,80,||,0,,,,|||,,,,,Steel]Tera Captain|Salamence|LumBerry|Intimidate|DragonDance,TeraBlast,Substitute,DragonClaw|Jolly|64,196,16,,16,216|||||,,,,,Fairy]Gastrodon||RindoBerry|StormDrain|Yawn,Recover,Earthquake,Counter|Impish|184,,224,,100,|||||,,,,,Water]Brute Bonnet||EjectButton|Protosynthesis|SuckerPunch,Synthesis,SeedBomb,CloseCombat|Impish|192,,252,,64,|||||,,,,,Grass","Iron Valiant||BoosterEnergy|QuarkDrive|Moonblast,ShadowBall,Psychic,DestinyBond|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,SwordsDance,Synthesis|Jolly|80,252,,,,176|||||,,,,,Water]Darkrai||BlackGlasses|BadDreams|DarkPulse,SludgeBomb,CalmMind,Hypnosis|Timid|72,,,252,,184||,0,,,,|||,,,,,Dark]Uxie||SitrusBerry|Levitate|FutureSight,FoulPlay,Uturn,PainSplit|Bold|248,,236,,,24|||||,,,,,Psychic]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,DarkPulse,RapidSpin,CalmMind|Modest|104,,,252,,152|||||,,,,,Stellar]Muk||BlackSludge|PoisonTouch|PoisonJab,KnockOff,Toxic,PainSplit|Impish|248,,196,,64,|||||,,,,,Poison"], + ["Zapdos||Magnet|Static|Agility,ElectroBall,Charge,SupercellSlam|Naive|,,,252,4,252|||||,,,,,Electric]Tera Captain|OricorioPomPom|Magnet|Dancer|QuiverDance,RevelationDance,Roost,Taunt|Modest|252,,4,252,,||,0,,,,|||,,,,,Electric]Overqwil||LumBerry|Intimidate|Agility,SwordsDance,GunkShot,Crunch|Adamant|252,252,,,4,|||||,,,,,Dark]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|HeavySlam,Megahorn,StoneEdge,BulkUp|Jolly|248,4,,,4,252|||||,,,,,Ground]Arboliva||LightClay|SeedSower|Reflect,LightScreen,Memento,LeechSeed|Bold|248,,252,,8,||,0,,,,|||,,,,,Grass]Iron Bundle||RockyHelmet|QuarkDrive|IceSpinner,HydroPump,FreezeDry,Taunt|Naughty|,252,72,,,184|||||,,,,,Ice","Blissey||HeavyDutyBoots|NaturalCure|SeismicToss,SoftBoiled,IceBeam,ThunderWave|Bold|,,252,80,176,||,0,,,,|||,,,,,Normal]Sinistcha-Masterpiece||Leftovers|Heatproof|MatchaGotcha,StunSpore,Hex,StrengthSap|Bold|252,,152,,104,||,0,,,,|||,,,,,Ghost]Tera Captain|HoopaUnbound|ChoiceScarf|Magician|Psychic,DarkPulse,TeraBlast,GunkShot|Mild|,,,252,4,252|||||,,,,,Ground]Tera Captain|Thundurus|WideLens|Prankster|VoltSwitch,TeraBlast,FocusBlast,ThunderWave|Timid|,,,252,4,252||,0,,,,|||,,,,,Ice]Maushold||WideLens|Technician|TidyUp,PopulationBomb,Crunch,LowKick|Jolly|4,252,,,,252|||||,,,,,Normal]Cinderace||HeavyDutyBoots|Libero|PyroBall,Uturn,IronHead,CourtChange|Jolly|,252,4,,,252|||||,,,,,Fire"], + ["Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,PlayRough,SwordsDance,PowerWhip|Jolly|4,252,,,,252|||||,,,,,Water]Iron Boulder||BoosterEnergy|QuarkDrive|ThroatChop,PsychoCut,MightyCleave,SwordsDance|Jolly|112,252,,,,144|||||,,,,,Rock]Chi-Yu||ChoiceSpecs|BeadsofRuin|DarkPulse,Psychic,Flamethrower,Overheat|Timid|100,,,252,,156||,0,,,,|||,,,,,Dark]Corviknight||HeavyDutyBoots|Pressure|Uturn,Defog,Roost,BraveBird||252,,,,,|||||,,,,,Flying]Alomomola||Leftovers|Regenerator|BodySlam,Wish,Protect,FlipTurn|Careful|252,,,,252,|||||,,,,,Water]Hippowdon||RockyHelmet|SandStream|Earthquake,StealthRock,SlackOff,Yawn|Impish|252,,252,,4,|||||,,,,,Ground","Gholdengo||ColburBerry|GoodasGold|MakeItRain,Thunderbolt,ThunderWave,Recover|Bold|248,,88,4,168,||,0,,,,|||,,,,,Steel]Toxapex||RockyHelmet|Regenerator|Surf,Haze,Toxic,Recover|Calm|252,,156,,100,||,0,,,,|||,,,,,Poison]Latios||WeaknessPolicy|Levitate|Thunderbolt,StoredPower,Recover,Agility|Calm|252,,216,16,24,||,0,,,,|||,,,,,Dragon]Chi-Yu||ChoiceScarf|BeadsofRuin|DarkPulse,Psychic,Flamethrower,Overheat|Timid|20,,,236,,252||,0,,,,|||,,,,,Dark]Tera Captain|GreatTusk|BoosterEnergy|Protosynthesis|CloseCombat,Earthquake,TeraBlast,RapidSpin|Jolly|244,12,,,,252|||||,Fighting,,,,Grass]Tera Captain|Hoopa|Leftovers|Magician|DrainPunch,KnockOff,TeraBlast,DestinyBond|Adamant|4,252,252,,,|||||,,,,,Dark"], + ["Tera Captain|Farigiraf|ChestoBerry|ArmorTail|HyperVoice,NastyPlot,Agility,Rest|Modest|248,,80,140,4,36||,0,,,,|||,,,,,Normal]Palafin||PunchingGlove|ZerotoHero|JetPunch,DrainPunch,IcePunch,BulkUp|Jolly|,252,,,4,252|||||,,,,,Water]Overqwil||RockyHelmet|Intimidate|Crunch,GunkShot,Haze,Spikes|Impish|248,,252,,8,|||||,,,,,Dark]Great Tusk||ChoiceScarf|Protosynthesis|HeadlongRush,CloseCombat,HeadSmash,RapidSpin|Adamant|216,252,,,,40|||||,Fighting,,,,Ground]Tinkaton||LightClay|MoldBreaker|GigatonHammer,Reflect,LightScreen,StealthRock|Jolly|248,4,56,,,200|||||,,,,,Fairy]Tera Captain|Ceruledge|ChoiceBand|FlashFire|Poltergeist,BitterBlade,ShadowClaw,ShadowSneak|Adamant|112,252,4,,,140|||||,,,,,Ghost","Zapdos||HeavyDutyBoots|Static|Hurricane,Roost,ThunderWave,VoltSwitch|Timid|104,,252,,,152||,0,,,,|||,,,,,Electric]Tera Captain|Cetitan|HeavyDutyBoots|SlushRush|BellyDrum,Earthquake,IceShard,Liquidation|Serious|232,252,,,,24|||||,,,,,Water]Grimmsnarl||LightClay|Prankster|LightScreen,Reflect,FoulPlay,PartingShot|Bold|248,,204,,56,||,0,,,,|||,,,,,Dark]Tera Captain|SlowkingGalar|ColburBerry|Regenerator|ChillyReception,ThunderWave,FutureSight,FireBlast|Bold|176,,232,96,4,||,0,,,,|||,,,,,Water]Great Tusk||BoosterEnergy|Protosynthesis|BulkUp,Earthquake,SupercellSlam,RapidSpin|Jolly|248,8,,,,252|||||,,,,,Ground]Palafin-Hero||Leftovers|ZerotoHero|BulkUp,JetPunch,DrainPunch,Taunt|Adamant|248,120,88,,,52|||||,,,,,Water"], + ["Talonflame||LumBerry|FlameBody|DualWingbeat,TemperFlare,Roost,Defog|Jolly|128,,252,,,128|||||,,,,,Fire]Iron Treads||EjectButton|QuarkDrive|StealthRock,RapidSpin,KnockOff,HighHorsepower|Jolly|168,252,,,,88|||||,,,,,Ground]Sneasler||ChoiceScarf|PoisonTouch|DireClaw,CloseCombat,BrickBreak,Uturn|Jolly|,252,80,,,176|||||,,,,,Fighting]Rillaboom||LifeOrb|GrassySurge|GrassyGlide,WoodHammer,HighHorsepower,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Slowking||Leftovers|Regenerator|IceBeam,FireBlast,PsychicNoise,ChillyReception|Calm|252,,,4,252,||,0,,,,|||,,,,,Water]Tera Captain|RagingBolt|AssaultVest|Protosynthesis|Thunderbolt,DracoMeteor,TeraBlast,Thunderclap|Modest|252,,,252,4,||,20,,,,|||,,,,,Fairy","Latios||ChoiceSpecs|Levitate|DracoMeteor,LusterPurge,AuraSphere,Trick|Timid|,,,252,4,252||,0,,,,|S||,,,,,Dragon]Blaziken||Leftovers|SpeedBoost|CloseCombat,ThunderPunch,BulkUp,Protect|Adamant|,232,,,120,156|||||,,,,,Fire]Ursaluna-Bloodmoon||ChopleBerry|MindsEye|CalmMind,BloodMoon,EarthPower,Moonlight|Bold|232,,152,124,,||,0,,,,|||,,,,,Ground]Rillaboom||ChoiceBand|GrassySurge|KnockOff,GrassyGlide,HighHorsepower,Facade|Adamant|,204,,,128,176|||||,,,,,Grass]Tera Captain|Blastoise|WhiteHerb|Torrent|Liquidation,TeraBlast,IceSpinner,ShellSmash|Adamant|,140,152,,,208|||||,,,,,Poison]Klefki||LightClay|Prankster|PlayRough,ThunderWave,Reflect,LightScreen|Careful|252,,4,,252,|||||,,,,,Steel"], + ["Blaziken||CustapBerry|SpeedBoost|FlareBlitz,CloseCombat,Protect,SwordsDance|Adamant|,252,,,4,252|||||,,,,,Fire]Excadrill||ChoiceScarf|MoldBreaker|Earthquake,IronHead,PoisonJab,RapidSpin|Jolly|,252,,,4,252|||||,,,,,Ground]Hydrapple||RoseliBerry|Regenerator|Recover,FickleBeam,GigaDrain,HydroPump|Bold|248,,252,8,,||,0,,,,|||,,,,,Grass]Mimikyu||ChoiceBand|Disguise|PlayRough,ShadowSneak,ShadowClaw,DrainPunch|Jolly|,252,,,4,252|||||,,,,,Ghost]Tera Captain|UrshifuRapidStrike|PunchingGlove|UnseenFist|IcePunch,CloseCombat,SurgingStrikes,Uturn|Jolly|,252,,,4,252|||||,,,,,Grass]Minior||WhiteHerb|ShieldsDown|Acrobatics,ShellSmash,Earthquake,RockSlide|Adamant|,252,,,4,252|||S||,,,,,Poison","Tera Captain|Skeledirge|RockyHelmet|Blaze|TeraBlast,TorchSong,SlackOff,WillOWisp|Bold|248,,252,8,,||,0,,,,|||,,,,,Water]Iron Valiant||ChoiceSpecs|QuarkDrive|Moonblast,AuraSphere,VacuumWave,ShadowBall|Timid|,,,252,4,252||,0,,,,|||,,,,,Fairy]Garchomp||LoadedDice|RoughSkin|ScaleShot,Earthquake,SwordsDance,PoisonJab|Jolly|40,252,,,,216|||||,,,,,Dragon]Golurk||RockyHelmet|IronFist|Poltergeist,StealthRock,IcePunch,KnockOff|Adamant|252,252,,,4,|||||,,,,,Ground]Rotom-Wash||AirBalloon|Levitate|HydroPump,VoltSwitch,WillOWisp,PainSplit|Bold|248,,208,,,52||,0,,,,|||,,,,,Electric]Scizor||HeavyDutyBoots|Technician|Uturn,BulletPunch,Defog,SwordsDance|Careful|248,84,,,176,|||||,,,,,Bug"], + ["Tera Captain|Kilowattrel|ExpertBelt|VoltAbsorb|AirSlash,Thunderbolt,TeraBlast,Uturn|Timid|4,,,252,,252|||||,,,,,Water]Tera Captain|Latias|Leftovers|Levitate|CalmMind,StoredPower,IceBeam,Recover|Bold|52,,252,,,204||,0,,,,|||,,,,,Electric]Palafin||ChoiceBand|ZerotoHero|WaveCrash,JetPunch,IcePunch,FlipTurn|Adamant|,252,,,,252|||||,,,,,Water]Wigglytuff||LightClay|Frisk|LightScreen,Reflect,RainDance,MistyExplosion|Calm|252,,,4,252,||,0,,,,|||,,,,,Normal]Weezing-Galar||AssaultVest|Levitate|StrangeSteam,SludgeBomb,Thunderbolt,Flamethrower|Calm|252,,140,,116,||,0,,,,|||,,,,,Poison]Meowscarada||ChoiceScarf|Protean|Uturn,KnockOff,FlowerTrick,ShadowClaw|Jolly|32,252,,,,224|||||,,,,,Grass","Tera Captain|Annihilape|Leftovers|Defiant|DrainPunch,RageFist,BulkUp,Substitute|Adamant|88,168,,,172,80|||||,,,,,Water]Latios||LifeOrb|Levitate|LusterPurge,DracoMeteor,AuraSphere,Recover|Timid|,,4,252,,252||,0,,,,|||,,,,,Dragon]Ting-Lu||Leftovers|VesselofRuin|Ruination,Earthquake,StealthRock,Whirlwind|Careful|252,72,64,,120,|||||,,,,,Dark]Corviknight||RockyHelmet|Pressure|BodyPress,IronDefense,Uturn,Roost|Impish|252,4,252,,,|||||,,,,,Flying]Primarina||AssaultVest|Torrent|AlluringVoice,Surf,EnergyBall,FlipTurn|Calm|252,,,4,252,|||||,,,,,Water]Cinderace||ChoiceScarf|Libero|PyroBall,HighJumpKick,Uturn,CourtChange|Jolly|,252,,,4,252|||||,,,,,Fire"], + ["Tera Captain|GreninjaBond|HeavyDutyBoots|BattleBond|Surf,IceBeam,TeraBlast,WaterShuriken|Modest|136,,,252,,120|||||,Ghost,,,,Dragon]Garchomp||RockyHelmet|RoughSkin|SwordsDance,ScaleShot,StompingTantrum,PoisonJab|Adamant|248,,236,,,24|||||,,,,,Dragon]Enamorus||ExpertBelt|CuteCharm|Agility,Moonblast,EarthPower,MysticalFire|Modest|8,,,252,,248||,0,,,,|||,,,,,Fairy]Ogerpon-Hearthflame||HearthflameMask|MoldBreaker|SwordsDance,IvyCudgel,StompingTantrum,GrassyGlide|Adamant|40,252,,,,216|||||,Poison,,,,Fire]Jirachi||Leftovers|SereneGrace|IronHead,ZenHeadbutt,ThunderWave,Wish|Jolly|248,76,,,,184|||||,,,,,Steel]Tera Captain|Gligar|Eviolite|Immunity|StealthRock,HighHorsepower,Bulldoze,Uturn|Impish|248,148,112,,,|||S||,,,,,Ground","Torkoal||HeatRock|Drought|LavaPlume,Yawn,StealthRock,RapidSpin|Bold|248,,252,8,,|||||,,,,,Fire]Gouging Fire||BoosterEnergy|Protosynthesis|DragonDance,BurningBulwark,HeatCrash,DragonClaw|Jolly|84,168,,,4,252|||||,,,,,Fire]Venusaur||LifeOrb|Chlorophyll|Growth,EnergyBall,WeatherBall,SludgeBomb|Modest|32,,,252,4,220||,0,,,,|||,,,,,Grass]Sneasler||BigNugget|Unburden|Acrobatics,Fling,CloseCombat,DireClaw|Adamant|156,252,,,4,96|||||,,,,,Fighting]Ursaluna-Bloodmoon||LifeOrb|MindsEye|BloodMoon,EarthPower,Moonlight,Moonblast|Modest|252,,,252,4,||,0,,,,|||,,,,,Ground]Tera Captain|Ribombee|FocusSash|HoneyGather|StickyWeb,BugBuzz,Moonblast,StunSpore|Timid|,,,252,4,252||,0,,,,|||,,,,,Water"], + ["Meowscarada||FocusSash|Protean|Spikes,KnockOff,FlowerTrick,Uturn|Jolly|,252,,,4,252|||S||,,,,,Grass]Iron Treads||WeaknessPolicy|QuarkDrive|HeavySlam,Earthquake,RapidSpin,IronDefense|Jolly|164,120,92,,,132|||||,,,,,Ground]Slowking-Galar||ColburBerry|Regenerator|ChillyReception,Snarl,Yawn,EerieSpell|Calm|252,,252,,4,||,0,,,,|||,,,,,Poison]Moltres||HeavyDutyBoots|FlameBody|Roar,Roost,WillOWisp,Flamethrower|Bold|248,,108,,152,||,0,,,,|||,,,,,Fire]Tera Captain|RagingBolt|BoosterEnergy|Protosynthesis|CalmMind,Thunderbolt,TeraBlast,Taunt|Jolly|132,,108,16,,252||,20,,20,,|||,,,,,Fairy]Dudunsparce||Leftovers|SereneGrace|BodySlam,Coil,Earthquake,Roost|Adamant|164,16,120,,112,96|||S||,,,,,Normal","Tera Captain|Latias|Leftovers|Levitate|Substitute,Psyshock,AuraSphere,CalmMind|Modest|224,,,252,,32||,0,,,,|||,,,,,Steel]Palafin-Hero||ChoiceBand|ZerotoHero|JetPunch,CloseCombat,DrainPunch,FlipTurn|Adamant|104,252,,,,152|||||,,,,,Stellar]Meowscarada||ProtectivePads|Protean|KnockOff,LowKick,PowerGem,GigaDrain|Hasty|,252,,4,,252|||||,,,,,Stellar]Tinkaton||RockyHelmet|Pickpocket|StealthRock,KnockOff,Encore,GigatonHammer|Impish|248,,236,,,24|||||,,,,,Stellar]Iron Hands||AssaultVest|QuarkDrive|ThunderPunch,DrainPunch,Facade,VoltSwitch|Brave|40,216,,,252,||,,,,,29|||,,,,,Stellar]Donphan||CustapBerry|Sturdy|Earthquake,KnockOff,Endeavor,IceShard|Brave|252,4,,,252,||,,,,,8|||,,,,,Stellar"], + ["Tera Captain|Latias|ColburBerry|Levitate|Recover,ThunderWave,Psyshock,Roar|Modest|252,,248,8,,||,0,,,,|||,,,,,Ghost]Palafin-Hero||ChoiceSpecs|ZerotoHero|Boomburst,Surf,IceBeam,FlipTurn|Modest|176,,,252,,80|||||,,,,,Normal]Meowscarada||ChoiceBand|Protean|FlowerTrick,KnockOff,Uturn,Spikes|Jolly|56,252,,,,200|||||,,,,,Normal]Tinkaton||SitrusBerry|MoldBreaker|GigatonHammer,PlayRough,ThunderWave,Encore|Adamant|128,252,,,,128|||||,,,,,Normal]Iron Hands||AssaultVest|QuarkDrive|Facade,DrainPunch,ThunderPunch,VoltSwitch|Adamant|8,224,24,,252,|||||,,,,,Normal]Ariados||PayapaBerry|Insomnia|Megahorn,PoisonJab,ShadowSneak,StickyWeb|Adamant|252,108,,,56,92|||||,,,,,Normal","Iron Valiant||LifeOrb|QuarkDrive|Moonblast,CloseCombat,VacuumWave,Encore|Naive|,108,,192,,208|||||,,,,,Fairy]Darkrai||WeaknessPolicy|BadDreams|DarkPulse,FocusBlast,Taunt,WillOWisp|Timid|248,,20,,,240||,0,,,,|||,,,,,Dark]Tera Captain|OgerponWellspring|WellspringMask|WaterAbsorb|IvyCudgel,Trailblaze,SwordsDance,Synthesis|Jolly|,252,,,4,252|||||,,,,,Water]Uxie||RockyHelmet|Levitate|Uturn,PsychicNoise,Encore,StealthRock|Relaxed|248,,252,,8,|||||,,,,,Psychic]Terapagos||HeavyDutyBoots|TeraShift|TeraStarstorm,Flamethrower,RapidSpin,CalmMind|Modest|144,,4,252,,108|||||,,,,,Stellar]Muk||RockyHelmet|StickyHold|PoisonJab,KnockOff,PainSplit,ToxicSpikes|Impish|248,,252,,8,|||||,,,,,Poison"] + ] +} diff --git a/data/random-battles/gen9/factory-sets.json b/data/random-battles/gen9/factory-sets.json new file mode 100644 index 000000000000..9a019ec1d5df --- /dev/null +++ b/data/random-battles/gen9/factory-sets.json @@ -0,0 +1,9118 @@ +{ + "Uber": { + "koraidon": { + "weight": 10, + "sets": [{ + "species": "Koraidon", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Orichalcum Pulse"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fire", "Ghost"], + "moves": [["Low Kick", "Close Combat"], ["Flare Blitz"], ["Outrage", "Dragon Claw"], ["U-turn"]] + }, { + "species": "Koraidon", + "weight": 50, + "item": ["Loaded Dice"], + "ability": ["Orichalcum Pulse"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fire", "Ghost"], + "moves": [["Low Kick", "Substitute"], ["Flare Blitz"], ["Scale Shot"], ["Swords Dance"]] + }] + }, + "necrozmaduskmane": { + "weight": 10, + "sets": [{ + "species": "Necrozma-Dusk-Mane", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Prism Armor"], + "evs": {"hp": 252, "def": 204, "spe": 52}, + "nature": ["Impish"], + "teraType": ["Fire"], + "moves": [["Dragon Dance"], ["Morning Sun"], ["Sunsteel Strike"], ["Knock Off"]] + }, { + "species": "Necrozma-Dusk-Mane", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Prism Armor"], + "evs": {"hp": 252, "def": 204, "spe": 52}, + "nature": ["Impish"], + "teraType": ["Fire"], + "moves": [["Dragon Dance"], ["Morning Sun"], ["Photon Geyser"], ["Earthquake"]] + }, { + "species": "Necrozma-Dusk-Mane", + "weight": 15, + "item": ["Lum Berry", "Occa Berry", "Life Orb"], + "ability": ["Prism Armor"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Fire"], + "moves": [["Dragon Dance"], ["Sunsteel Strike"], ["Earthquake"], ["Stone Edge"]] + }, { + "species": "Necrozma-Dusk-Mane", + "weight": 15, + "item": ["Lum Berry", "Occa Berry", "Life Orb"], + "ability": ["Prism Armor"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Fire", "Psychic"], + "moves": [["Dragon Dance"], ["Photon Geyser"], ["Earthquake"], ["Sunsteel Strike"]] + }, { + "species": "Necrozma-Dusk-Mane", + "weight": 10, + "item": ["Life Orb", "Lum Berry", "Mental Herb", "Weakness Policy"], + "ability": ["Prism Armor"], + "evs": {"hp": 252, "atk": 252, "def": 4}, + "ivs": {"spe": 0}, + "nature": ["Brave"], + "teraType": ["Fire"], + "moves": [["Swords Dance"], ["Photon Geyser"], ["Earthquake"], ["Trick Room"]] + }, { + "species": "Necrozma-Dusk-Mane", + "weight": 10, + "item": ["Covert Cloak", "Heavy-Duty Boots"], + "ability": ["Prism Armor"], + "evs": {"hp": 252, "atk": 4, "def": 252}, + "nature": ["Impish"], + "teraType": ["Fire", "Ground"], + "moves": [["Sunsteel Strike"], ["Earthquake"], ["Morning Sun"], ["Swords Dance", "Stealth Rock", "Knock Off"]] + }] + }, + "hooh": { + "weight": 9, + "sets": [{ + "species": "Ho-Oh", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Ground"], + "moves": [["Sacred Fire"], ["Recover"], ["Earthquake"], ["Brave Bird"]] + }, { + "species": "Ho-Oh", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Fairy", "Grass"], + "moves": [["Sacred Fire"], ["Recover"], ["Whirlwind"], ["Brave Bird"]] + }, { + "species": "Ho-Oh", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 104, "atk": 252, "spe": 152}, + "nature": ["Adamant"], + "teraType": ["Ground"], + "moves": [["Sacred Fire"], ["Recover"], ["Earthquake"], ["Brave Bird"]] + }, { + "species": "Ho-Oh", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 104, "atk": 252, "spe": 152}, + "nature": ["Adamant"], + "teraType": ["Flying"], + "moves": [["Sacred Fire"], ["Recover"], ["Substitute"], ["Brave Bird"]] + }, { + "species": "Ho-Oh", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying"], + "moves": [["Sacred Fire"], ["Recover"], ["Substitute"], ["Brave Bird"]] + }] + }, + "arceusground": { + "weight": 9, + "sets": [{ + "species": "Arceus-Ground", + "weight": 50, + "item": ["Earth Plate"], + "ability": ["Multitype"], + "evs": {"hp": 132, "atk": 252, "spe": 124}, + "nature": ["Adamant"], + "teraType": ["Ground"], + "moves": [["Dragon Dance"], ["Recover", "Taunt", "Ice Beam"], ["Earthquake"], ["Stone Edge"]] + }, { + "species": "Arceus-Ground", + "weight": 15, + "item": ["Earth Plate"], + "ability": ["Multitype"], + "evs": {"hp": 132, "atk": 252, "spe": 124}, + "nature": ["Adamant"], + "teraType": ["Ghost"], + "moves": [["Dragon Dance"], ["Recover", "Taunt", "Ice Beam"], ["Earthquake"], ["Stone Edge"]] + }, { + "species": "Arceus-Ground", + "weight": 15, + "item": ["Earth Plate"], + "ability": ["Multitype"], + "evs": {"hp": 240, "spd": 252, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Steel", "Ghost"], + "moves": [["Calm Mind"], ["Judgment"], ["Recover"], ["Ice Beam", "Power Gem"]] + }, { + "species": "Arceus-Ground", + "weight": 20, + "item": ["Earth Plate"], + "ability": ["Multitype"], + "evs": {"hp": 132, "spa": 252, "spe": 124}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Steel", "Ghost"], + "moves": [["Calm Mind"], ["Judgment"], ["Recover"], ["Ice Beam", "Power Gem"]] + }] + }, + "arceusfairy": { + "weight": 9, + "sets": [{ + "species": "Arceus-Fairy", + "weight": 100, + "item": ["Pixie Plate"], + "ability": ["Multitype"], + "evs": {"hp": 240, "def": 252, "spd": 16}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Judgment"], ["Recover"], ["Thunder Wave", "Will-O-Wisp"], ["Stealth Rock", "Taunt", "Dragon Tail"]] + }] + }, + "zacian": { + "weight": 9, + "sets": [{ + "species": "Zacian", + "weight": 100, + "item": ["Rusted Sword"], + "ability": ["Intrepid Sword"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting", "Fire", "Flying"], + "moves": [["Behemoth Blade", "Play Rough"], ["Swords Dance"], ["Wild Charge"], ["Close Combat"]] + }] + }, + "kyogre": { + "weight": 9, + "sets": [{ + "species": "Kyogre", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Drizzle"], + "evs": {"hp": 240, "def": 76, "spa": 176, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy", "Poison"], + "moves": [["Calm Mind"], ["Origin Pulse", "Surf"], ["Ice Beam"], ["Thunder", "Thunder Wave"]] + }, { + "species": "Kyogre", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Drizzle"], + "evs": {"hp": 248, "def": 164, "spa": 80, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Poison"], + "moves": [["Calm Mind"], ["Origin Pulse", "Surf"], ["Ice Beam"], ["Thunder", "Thunder Wave"]] + }, { + "species": "Kyogre", + "weight": 25, + "item": ["Choice Scarf"], + "ability": ["Drizzle"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water"], + "moves": [["Water Spout"], ["Thunder"], ["Ice Beam"], ["Origin Pulse"]] + }, { + "species": "Kyogre", + "weight": 5, + "item": ["Choice Specs"], + "ability": ["Drizzle"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water"], + "moves": [["Water Spout"], ["Thunder"], ["Ice Beam"], ["Origin Pulse"]] + }, { + "species": "Kyogre", + "weight": 20, + "item": ["Choice Specs"], + "ability": ["Drizzle"], + "evs": {"hp": 240, "def": 76, "spa": 176, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Water Spout"], ["Thunder"], ["Ice Beam"], ["Origin Pulse"]] + }] + }, + "arceus": { + "weight": 8, + "sets": [{ + "species": "Arceus", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Multitype"], + "evs": {"hp": 200, "atk": 252, "spe": 56}, + "nature": ["Adamant"], + "teraType": ["Ghost", "Fire"], + "moves": [["Swords Dance"], ["Extreme Speed"], ["Shadow Claw"], ["Taunt", "Recover", "Earthquake"]] + }, { + "species": "Arceus", + "weight": 20, + "item": ["Silk Scarf", "Life Orb"], + "ability": ["Multitype"], + "evs": {"hp": 200, "atk": 252, "spe": 56}, + "nature": ["Adamant"], + "teraType": ["Fire", "Normal"], + "moves": [["Swords Dance"], ["Extreme Speed"], ["Shadow Claw"], ["Taunt", "Recover", "Earthquake", "Double-Edge"]] + }, { + "species": "Arceus", + "weight": 30, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Multitype"], + "evs": {"hp": 248, "atk": 204, "spe": 56}, + "nature": ["Adamant"], + "teraType": ["Fire"], + "moves": [["Bulk Up"], ["Extreme Speed"], ["Shadow Claw"], ["Recover"]] + }] + }, + "arceuswater": { + "weight": 8, + "sets": [{ + "species": "Arceus-Water", + "weight": 80, + "item": ["Splash Plate"], + "ability": ["Multitype"], + "evs": {"hp": 240, "def": 252, "spe": 16}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Thunder Wave", "Will-O-Wisp"], ["Judgment"], ["Recover"], ["Ice Beam", "Dragon Tail"]] + }, { + "species": "Arceus-Water", + "weight": 20, + "item": ["Splash Plate"], + "ability": ["Multitype"], + "evs": {"hp": 240, "def": 252, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Poison"], + "moves": [["Calm Mind"], ["Judgment"], ["Recover"], ["Ice Beam"]] + }] + }, + "eternatus": { + "weight": 8, + "sets": [{ + "species": "Eternatus", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"hp": 200, "spd": 252, "spe": 56}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Grass"], + "moves": [["Dynamax Cannon"], ["Toxic"], ["Recover"], ["Toxic Spikes", "Flamethrower"]] + }, { + "species": "Eternatus", + "weight": 30, + "item": ["Power Herb"], + "ability": ["Pressure"], + "evs": {"hp": 168, "spa": 252, "spe": 88}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fire", "Dragon"], + "moves": [["Meteor Beam"], ["Dynamax Cannon"], ["Fire Blast"], ["Agility", "Sludge Bomb"]] + }, { + "species": "Eternatus", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Pressure"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest", "Timid"], + "teraType": ["Fire", "Flying", "Fairy"], + "moves": [["Sludge Bomb"], ["Dynamax Cannon"], ["Fire Blast", "Flamethrower"], ["Toxic Spikes"]] + }] + }, + "gliscor": { + "weight": 7, + "sets": [{ + "species": "Gliscor", + "weight": 40, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 252, "spd": 12}, + "nature": ["Impish"], + "teraType": ["Fairy", "Water"], + "moves": [["Earthquake"], ["Toxic"], ["Protect"], ["Spikes", "Toxic Spikes"]] + }, { + "species": "Gliscor", + "weight": 40, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 252, "spd": 12}, + "nature": ["Impish"], + "teraType": ["Fairy", "Water"], + "moves": [["Earthquake", "Toxic"], ["Knock Off"], ["Protect"], ["Spikes", "Toxic Spikes"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 12, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Fairy", "Water"], + "moves": [["Earthquake"], ["Toxic"], ["Protect"], ["Spikes", "Toxic Spikes"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 12, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Fairy", "Water"], + "moves": [["Earthquake", "Toxic"], ["Knock Off"], ["Protect"], ["Spikes", "Toxic Spikes"]] + }] + }, + "calyrexice": { + "weight": 7, + "sets": [{ + "species": "Calyrex-Ice", + "wantsTera": true, + "weight": 80, + "item": ["Heavy-Duty Boots", "Occa Berry", "Weakness Policy"], + "ability": ["As One (Glastrier)"], + "evs": {"hp": 248, "atk": 252, "spd": 8}, + "ivs": {"spe": 0}, + "nature": ["Brave"], + "teraType": ["Fire", "Ground"], + "moves": [["Trick Room"], ["Swords Dance"], ["Glacial Lance"], ["High Horsepower"]] + }, { + "species": "Calyrex-Ice", + "wantsTera": true, + "weight": 20, + "item": ["Heavy-Duty Boots", "Occa Berry", "Weakness Policy"], + "ability": ["As One (Glastrier)"], + "evs": {"hp": 248, "atk": 252, "spd": 8}, + "ivs": {"spe": 22}, + "nature": ["Adamant"], + "teraType": ["Fire", "Ground"], + "moves": [["Trick Room"], ["Swords Dance"], ["Glacial Lance"], ["High Horsepower"]] + }] + }, + "landorustherian": { + "weight": 7, + "sets": [{ + "species": "Landorus-Therian", + "weight": 80, + "item": ["Rocky Helmet", "Leftovers"], + "ability": ["Intimidate"], + "evs": {"hp": 248, "atk": 8, "def": 252}, + "nature": ["Impish"], + "teraType": ["Fairy", "Water"], + "moves": [["Stealth Rock"], ["Earthquake"], ["U-turn"], ["Stone Edge", "Rock Tomb"]] + }, { + "species": "Landorus-Therian", + "weight": 20, + "item": ["Choice Scarf"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground"], + "moves": [["Earthquake"], ["Stone Edge"], ["U-turn"], ["Stealth Rock"]] + }] + }, + "tinglu": { + "weight": 6, + "sets": [{ + "species": "Ting-Lu", + "weight": 80, + "item": ["Leftovers"], + "ability": ["Vessel of Ruin"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Fairy", "Poison", "Water"], + "moves": [["Earthquake"], ["Ruination"], ["Spikes", "Stealth Rock"], ["Whirlwind", "Protect"]] + }, { + "species": "Ting-Lu", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Vessel of Ruin"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Fairy", "Poison", "Water"], + "moves": [["Earthquake"], ["Ruination"], ["Spikes"], ["Stealth Rock"]] + }] + }, + "chienpao": { + "weight": 6, + "sets": [{ + "species": "Chien-Pao", + "weight": 30, + "item": ["Life Orb", "Heavy-Duty Boots", "Black Glasses"], + "ability": ["Sword of Ruin"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Swords Dance"], ["Icicle Crash"], ["Crunch"], ["Sucker Punch", "Ice Shard"]] + }, { + "species": "Chien-Pao", + "weight": 30, + "item": ["Life Orb", "Heavy-Duty Boots", "Black Glasses"], + "ability": ["Sword of Ruin"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Dark"], + "moves": [["Swords Dance"], ["Icicle Crash"], ["Sucker Punch"], ["Ice Shard"]] + }, { + "species": "Chien-Pao", + "weight": 40, + "item": ["Choice Band"], + "ability": ["Sword of Ruin"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Ice"], + "moves": [["Icicle Crash", "Ice Spinner"], ["Crunch"], ["Sucker Punch"], ["Ice Shard"]] + }] + }, + "deoxysattack": { + "weight": 6, + "sets": [{ + "species": "Deoxys-Attack", + "weight": 50, + "item": ["Life Orb"], + "ability": ["Pressure"], + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "nature": ["Naive"], + "teraType": ["Ghost"], + "moves": [["Psycho Boost"], ["Shadow Ball"], ["Low Kick"], ["Rock Slide"]] + }, { + "species": "Deoxys-Attack", + "weight": 50, + "item": ["Focus Sash"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Steel"], + "moves": [["Psycho Boost"], ["Shadow Ball"], ["Icy Wind"], ["Stealth Rock", "Spikes"]] + }] + }, + "giratinaorigin": { + "weight": 8, + "sets": [{ + "species": "Giratina-Origin", + "weight": 50, + "item": ["Griseous Core"], + "ability": ["Levitate"], + "evs": {"hp": 248, "atk": 104, "def": 112, "spe": 44}, + "nature": ["Adamant"], + "teraType": ["Ghost", "Steel", "Poison"], + "moves": [["Poltergeist"], ["Dragon Tail"], ["Will-O-Wisp", "Thunder Wave"], ["Defog", "Shadow Sneak"]] + }, { + "species": "Giratina-Origin", + "weight": 50, + "item": ["Griseous Core"], + "ability": ["Levitate"], + "evs": {"hp": 248, "def": 112, "spa": 104, "spe": 44}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Steel", "Poison"], + "moves": [["Hex"], ["Draco Meteor"], ["Will-O-Wisp", "Thunder Wave"], ["Defog"]] + }] + }, + "glimmora": { + "weight": 7, + "sets": [{ + "species": "Glimmora", + "weight": 100, + "item": ["Focus Sash"], + "ability": ["Toxic Debris"], + "evs": {"def": 172, "spa": 84, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Stealth Rock", "Spikes"], ["Mortal Spin"], ["Mud Shot"], ["Dazzling Gleam"]] + }] + }, + "ironbundle": { + "weight": 6, + "sets": [{ + "species": "Iron Bundle", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Quark Drive"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Ice"], + "moves": [["Freeze-Dry"], ["Hydro Pump"], ["Ice Beam"], ["Encore", "Taunt"]] + }] + }, + "groudon": { + "weight": 6, + "sets": [{ + "species": "Groudon", + "weight": 60, + "item": ["Leftovers"], + "ability": ["Drought"], + "evs": {"hp": 240, "def": 252, "spe": 16}, + "nature": ["Impish"], + "teraType": ["Fairy", "Water"], + "moves": [["Precipice Blades", "Earthquake"], ["Stealth Rock", "Protect"], ["Will-O-Wisp", "Roar"], ["Spikes"]] + }, { + "species": "Groudon", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Drought"], + "evs": {"hp": 240, "def": 252, "spe": 16}, + "nature": ["Impish"], + "teraType": ["Fairy", "Water"], + "moves": [["Precipice Blades", "Earthquake"], ["Stealth Rock", "Spikes"], ["Roar"], ["Thunder Wave"]] + }] + }, + "kingambit": { + "weight": 5, + "sets": [{ + "species": "Kingambit", + "weight": 70, + "item": ["Black Glasses", "Lum Berry"], + "ability": ["Supreme Overlord"], + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "nature": ["Adamant"], + "teraType": ["Dark", "Flying"], + "moves": [["Kowtow Cleave"], ["Swords Dance"], ["Iron Head"], ["Sucker Punch"]] + }, { + "species": "Kingambit", + "weight": 30, + "item": ["Air Balloon"], + "ability": ["Supreme Overlord"], + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "nature": ["Adamant"], + "teraType": ["Fire"], + "moves": [["Kowtow Cleave"], ["Swords Dance"], ["Iron Head"], ["Sucker Punch"]] + }] + }, + "kyuremblack": { + "weight": 5, + "sets": [{ + "species": "Kyurem-Black", + "weight": 100, + "item": ["Loaded Dice"], + "ability": ["Teravolt"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Fusion Bolt"], ["Icicle Spear"], ["Dragon Dance"], ["Substitute", "Scale Shot"]] + }] + }, + "fluttermane": { + "weight": 5, + "sets": [{ + "species": "Flutter Mane", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Protosynthesis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Stellar"], + "moves": [["Moonblast"], ["Shadow Ball"], ["Psyshock", "Mystical Fire"], ["Power Gem"]] + }, { + "species": "Flutter Mane", + "weight": 50, + "item": ["Life Orb"], + "ability": ["Protosynthesis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Stellar"], + "moves": [["Moonblast"], ["Shadow Ball"], ["Psyshock", "Mystical Fire", "Calm Mind"], ["Power Gem"]] + }] + }, + "rayquaza": { + "weight": 4, + "sets": [{ + "species": "Rayquaza", + "weight": 50, + "item": ["Life Orb"], + "ability": ["Air Lock"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Flying", "Normal", "Ground", "Steel"], + "moves": [["Dragon Ascent"], ["Earthquake"], ["Extreme Speed"], ["Dragon Dance"]] + }, { + "species": "Rayquaza", + "weight": 50, + "item": ["Life Orb"], + "ability": ["Air Lock"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Dragon Ascent"], ["Earthquake"], ["Extreme Speed"], ["Swords Dance"]] + }] + }, + "arceusghost": { + "weight": 3, + "sets": [{ + "species": "Arceus-Ghost", + "weight": 50, + "item": ["Spooky Plate"], + "ability": ["Multitype"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Stellar"], + "moves": [["Calm Mind"], ["Judgment"], ["Focus Blast"], ["Power Gem"]] + }, { + "species": "Arceus-Ghost", + "weight": 50, + "item": ["Spooky Plate"], + "ability": ["Multitype"], + "evs": {"hp": 248, "def": 204, "spe": 56}, + "nature": ["Timid"], + "teraType": ["Water", "Fairy", "Poison"], + "moves": [["Calm Mind"], ["Judgment"], ["Recover"], ["Dragon Tail"]] + }] + }, + "lunala": { + "weight": 3, + "sets": [{ + "species": "Lunala", + "weight": 50, + "item": ["Power Herb"], + "ability": ["Shadow Shield"], + "evs": {"hp": 56, "spa": 252, "spe": 200}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Agility"], ["Meteor Beam"], ["Moonblast"], ["Moongeist Beam"]] + }, { + "species": "Lunala", + "weight": 50, + "item": ["Power Herb"], + "ability": ["Shadow Shield"], + "evs": {"hp": 56, "spa": 252, "spe": 200}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting", "Ghost"], + "moves": [["Agility"], ["Meteor Beam"], ["Focus Blast"], ["Moongeist Beam"]] + }] + }, + "mewtwo": { + "weight": 1, + "sets": [{ + "species": "Mewtwo", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers", "Life Orb"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Nasty Plot"], ["Psystrike"], ["Flamethrower"], ["Taunt", "Earth Power", "Grass Knot"]] + }, { + "species": "Mewtwo", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fire"], + "moves": [["Ice Beam"], ["Psystrike"], ["Flamethrower"], ["Grass Knot"]] + }] + }, + "skeledirge": { + "weight": 6, + "sets": [{ + "species": "Skeledirge", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Unaware"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Torch Song"], ["Hex"], ["Will-O-Wisp"], ["Slack Off"]] + }] + }, + "toxapex": { + "weight": 4, + "sets": [{ + "species": "Toxapex", + "weight": 67, + "item": ["Rocky Helmet"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Toxic"], ["Recover"], ["Haze"], ["Toxic Spikes", "Ice Beam"]] + }, { + "species": "Toxapex", + "weight": 33, + "item": ["Rocky Helmet"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Fairy"], + "moves": [["Toxic"], ["Recover"], ["Haze"], ["Poison Jab"]] + }] + }, + "ditto": { + "weight": 1, + "sets": [{ + "species": "Ditto", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Imposter"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Transform"]] + }] + }, + "necrozmadawnwings": { + "weight": 1, + "sets": [{ + "species": "Necrozma-Dawn-Wings", + "wantsTera": true, + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Prism Armor"], + "evs": {"hp": 252, "def": 4, "spa": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy", "Steel"], + "moves": [["Calm Mind"], ["Iron Defense"], ["Moonlight"], ["Stored Power"]] + }] + }, + "arceuselectric": { + "weight": 1, + "sets": [{ + "species": "Arceus-Electric", + "weight": 100, + "item": ["Zap Plate"], + "ability": ["Multitype"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Fairy"], + "moves": [["Calm Mind"], ["Judgment"], ["Ice Beam"], ["Recover"]] + }] + } + }, + "OU": { + "kingambit": { + "weight": 10, + "sets": [{ + "species": "Kingambit", + "weight": 20, + "item": ["Black Glasses"], + "ability": ["Supreme Overlord"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Dark"], + "moves": [["Kowtow Cleave"], ["Swords Dance"], ["Iron Head", "Low Kick"], ["Sucker Punch"]] + }, { + "species": "Kingambit", + "weight": 20, + "item": ["Air Balloon", "Leftovers"], + "ability": ["Supreme Overlord"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Low Kick"], ["Swords Dance"], ["Iron Head", "Kowtow Cleave"], ["Sucker Punch"]] + }, { + "species": "Kingambit", + "weight": 20, + "item": ["Air Balloon", "Leftovers"], + "ability": ["Supreme Overlord"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Iron Head"], ["Swords Dance"], ["Kowtow Cleave"], ["Sucker Punch"]] + }, { + "species": "Kingambit", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Supreme Overlord"], + "evs": {"hp": 252, "atk": 252, "spd": 4}, + "nature": ["Adamant"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Kowtow Cleave"], ["Swords Dance"], ["Iron Head"], ["Sucker Punch"]] + }] + }, + "zamazenta": { + "weight": 10, + "sets": [{ + "species": "Zamazenta", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Dauntless Shield"], + "evs": {"hp": 252, "def": 88, "spe": 168}, + "nature": ["Jolly"], + "teraType": ["Steel", "Fire", "Dark"], + "moves": [["Iron Defense"], ["Body Press"], ["Crunch"], ["Roar", "Stone Edge"]] + }, { + "species": "Zamazenta", + "weight": 15, + "item": ["Chesto Berry"], + "ability": ["Dauntless Shield"], + "evs": {"hp": 252, "def": 88, "spe": 168}, + "nature": ["Jolly"], + "teraType": ["Steel", "Fire", "Dark"], + "moves": [["Iron Defense"], ["Body Press"], ["Crunch"], ["Rest"]] + }, { + "species": "Zamazenta", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Dauntless Shield"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Dark"], + "moves": [["Close Combat"], ["Stone Edge"], ["Crunch"], ["Heavy Slam"]] + }, { + "species": "Zamazenta", + "weight": 15, + "item": ["Heavy-Duty Boots"], + "ability": ["Dauntless Shield"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Close Combat"], ["Stone Edge"], ["Crunch"], ["Ice Fang"]] + }] + }, + "dragapult": { + "weight": 9, + "sets": [{ + "species": "Dragapult", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Infiltrator"], + "evs": {"atk": 60, "spa": 196, "spe": 252}, + "nature": ["Naive"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Dragon Darts"], ["Hex"], ["Will-O-Wisp", "Thunder Wave"], ["U-turn"]] + }, { + "species": "Dragapult", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Infiltrator"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Draco Meteor"], ["Hex"], ["Will-O-Wisp", "Thunder Wave"], ["U-turn"]] + }, { + "species": "Dragapult", + "weight": 30, + "item": ["Choice Specs"], + "ability": ["Infiltrator"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid", "Modest"], + "teraType": ["Dragon", "Ghost"], + "moves": [["Draco Meteor"], ["Shadow Ball"], ["Flamethrower"], ["U-turn"]] + }, { + "species": "Dragapult", + "wantsTera": true, + "weight": 30, + "item": ["Choice Band"], + "ability": ["Clear Body"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost"], + "moves": [["Dragon Darts"], ["Tera Blast"], ["U-turn"], ["Phantom Force", "Sucker Punch"]] + }] + }, + "gholdengo": { + "weight": 9, + "sets": [{ + "species": "Gholdengo", + "weight": 14, + "item": ["Heavy-Duty Boots", "Air Balloon"], + "ability": ["Good as Gold"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Steel"], + "moves": [["Nasty Plot"], ["Shadow Ball"], ["Make It Rain"], ["Recover", "Psyshock"]] + }, { + "species": "Gholdengo", + "weight": 14, + "item": ["Heavy-Duty Boots", "Air Balloon"], + "ability": ["Good as Gold"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting"], + "moves": [["Nasty Plot"], ["Shadow Ball"], ["Make It Rain"], ["Focus Blast"]] + }, { + "species": "Gholdengo", + "weight": 12, + "item": ["Heavy-Duty Boots", "Air Balloon", "Rocky Helmet"], + "ability": ["Good as Gold"], + "evs": {"hp": 252, "def": 196, "spe": 60}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Nasty Plot"], ["Shadow Ball"], ["Make It Rain", "Dazzling Gleam"], ["Recover"]] + }, { + "species": "Gholdengo", + "weight": 12, + "item": ["Heavy-Duty Boots", "Air Balloon", "Rocky Helmet"], + "ability": ["Good as Gold"], + "evs": {"hp": 252, "def": 196, "spe": 60}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Nasty Plot"], ["Shadow Ball"], ["Make It Rain"], ["Recover"]] + }, { + "species": "Gholdengo", + "weight": 12, + "item": ["Leftovers", "Air Balloon", "Rocky Helmet"], + "ability": ["Good as Gold"], + "evs": {"hp": 252, "def": 196, "spe": 60}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Hex"], ["Thunder Wave"], ["Make It Rain", "Dazzling Gleam"], ["Recover"]] + }, { + "species": "Gholdengo", + "weight": 12, + "item": ["Leftovers", "Air Balloon", "Rocky Helmet"], + "ability": ["Good as Gold"], + "evs": {"hp": 252, "def": 196, "spe": 60}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Hex"], ["Thunder Wave"], ["Make It Rain", "Focus Blast"], ["Recover"]] + }, { + "species": "Gholdengo", + "weight": 12, + "item": ["Choice Scarf"], + "ability": ["Good as Gold"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting"], + "moves": [["Trick"], ["Shadow Ball"], ["Make It Rain"], ["Focus Blast"]] + }, { + "species": "Gholdengo", + "weight": 12, + "item": ["Choice Scarf"], + "ability": ["Good as Gold"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Flying"], + "moves": [["Trick"], ["Shadow Ball"], ["Make It Rain"], ["Nasty Plot", "Recover"]] + }] + }, + "greattusk": { + "weight": 9, + "sets": [{ + "species": "Great Tusk", + "weight": 40, + "item": ["Heavy-Duty Boots", "Rocky Helmet", "Booster Energy"], + "ability": ["Protosynthesis"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground", "Steel", "Fire"], + "moves": [["Headlong Rush"], ["Ice Spinner"], ["Rapid Spin"], ["Knock Off", "Close Combat"]] + }, { + "species": "Great Tusk", + "weight": 40, + "item": ["Heavy-Duty Boots", "Rocky Helmet", "Leftovers"], + "ability": ["Protosynthesis"], + "evs": {"hp": 252, "atk": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Water"], + "moves": [["Headlong Rush"], ["Ice Spinner"], ["Rapid Spin"], ["Knock Off", "Stealth Rock"]] + }, { + "species": "Great Tusk", + "weight": 20, + "item": ["Booster Energy"], + "ability": ["Protosynthesis"], + "evs": {"hp": 252, "atk": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Poison", "Ice"], + "moves": [["Headlong Rush"], ["Ice Spinner"], ["Rapid Spin", "Close Combat", "Knock Off"], ["Bulk Up"]] + }] + }, + "landorustherian": { + "weight": 9, + "sets": [{ + "species": "Landorus-Therian", + "weight": 50, + "item": ["Rocky Helmet"], + "ability": ["Intimidate"], + "evs": {"hp": 252, "spa": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Water", "Dragon"], + "moves": [["Earth Power"], ["U-turn"], ["Stealth Rock"], ["Taunt"]] + }, { + "species": "Landorus-Therian", + "weight": 20, + "item": ["Soft Sand", "Rocky Helmet"], + "ability": ["Intimidate"], + "evs": {"hp": 8, "atk": 240, "spd": 8, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water", "Ground"], + "moves": [["Earthquake"], ["U-turn", "Taunt"], ["Stealth Rock"], ["Stone Edge"]] + }, { + "species": "Landorus-Therian", + "wantsTera": true, + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Intimidate"], + "evs": {"hp": 8, "atk": 240, "spd": 8, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying", "Ice"], + "moves": [["Earthquake"], ["U-turn"], ["Tera Blast"], ["Stone Edge"]] + }] + }, + "darkrai": { + "weight": 8, + "sets": [{ + "species": "Darkrai", + "weight": 5, + "item": ["Heavy-Duty Boots", "Leftovers", "Expert Belt"], + "ability": ["Bad Dreams"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Dark Pulse"], ["Focus Blast"], ["Ice Beam"], ["Nasty Plot"]] + }, { + "species": "Darkrai", + "weight": 20, + "item": ["Heavy-Duty Boots", "Leftovers", "Expert Belt"], + "ability": ["Bad Dreams"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison", "Ghost"], + "moves": [["Dark Pulse"], ["Sludge Bomb"], ["Ice Beam", "Focus Blast"], ["Nasty Plot"]] + }, { + "species": "Darkrai", + "weight": 15, + "item": ["Choice Scarf"], + "ability": ["Bad Dreams"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison", "Dark"], + "moves": [["Dark Pulse"], ["Sludge Bomb"], ["Ice Beam", "Focus Blast"], ["Trick"]] + }, { + "species": "Darkrai", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Bad Dreams"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison", "Dark"], + "moves": [["Dark Pulse"], ["Sludge Bomb"], ["Ice Beam"], ["Will-O-Wisp"]] + }, { + "species": "Darkrai", + "weight": 35, + "item": ["Life Orb", "Expert Belt", "Choice Scarf"], + "ability": ["Bad Dreams"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison", "Dark"], + "moves": [["Dark Pulse"], ["Sludge Bomb"], ["Ice Beam"], ["Focus Blast"]] + }] + }, + "dragonite": { + "weight": 8, + "sets": [{ + "species": "Dragonite", + "wantsTera": true, + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Multiscale"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Normal"], + "moves": [["Earthquake"], ["Dragon Dance"], ["Extreme Speed"], ["Ice Spinner", "Roost"]] + }, { + "species": "Dragonite", + "wantsTera": true, + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Multiscale"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ground"], + "moves": [["Earthquake"], ["Dragon Dance"], ["Roost", "Extreme Speed"], ["Ice Spinner"]] + }, { + "species": "Dragonite", + "wantsTera": true, + "weight": 20, + "item": ["Choice Band"], + "ability": ["Multiscale"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Normal"], + "moves": [["Earthquake", "Fire Punch"], ["Extreme Speed"], ["Outrage"], ["Ice Spinner"]] + }] + }, + "gliscor": { + "weight": 8, + "sets": [{ + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 248, "spd": 16}, + "nature": ["Impish"], + "teraType": ["Ghost", "Water"], + "moves": [["Earthquake"], ["Toxic"], ["Protect"], ["Spikes"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 248, "spd": 16}, + "nature": ["Impish"], + "teraType": ["Ghost", "Water"], + "moves": [["Earthquake", "Toxic"], ["Knock Off"], ["Protect"], ["Spikes"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 36, "spd": 228}, + "nature": ["Careful"], + "teraType": ["Ghost", "Water"], + "moves": [["Earthquake"], ["Toxic"], ["Protect"], ["Spikes"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 36, "spd": 228}, + "nature": ["Careful"], + "teraType": ["Ghost", "Water"], + "moves": [["Earthquake", "Toxic"], ["Knock Off"], ["Protect"], ["Spikes"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 248, "spd": 16}, + "nature": ["Impish"], + "teraType": ["Normal"], + "moves": [["Earthquake", "Knock Off"], ["Swords Dance"], ["Facade"], ["Protect"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 248, "spd": 16}, + "nature": ["Impish"], + "teraType": ["Water"], + "moves": [["Earthquake"], ["Swords Dance"], ["Knock Off"], ["Protect"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 36, "spd": 228}, + "nature": ["Careful"], + "teraType": ["Normal"], + "moves": [["Earthquake", "Knock Off"], ["Swords Dance"], ["Facade"], ["Protect"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "def": 36, "spd": 228}, + "nature": ["Careful"], + "teraType": ["Water"], + "moves": [["Earthquake"], ["Swords Dance"], ["Knock Off"], ["Protect"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "atk": 12, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Earthquake", "Knock Off"], ["Swords Dance"], ["Facade"], ["Protect"]] + }, { + "species": "Gliscor", + "weight": 10, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 244, "atk": 12, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Earthquake"], ["Swords Dance"], ["Knock Off"], ["Protect"]] + }] + }, + "ironmoth": { + "weight": 8, + "sets": [{ + "species": "Iron Moth", + "weight": 25, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"def": 124, "spa": 132, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Fiery Dance"], ["Sludge Wave"], ["Dazzling Gleam"], ["Substitute"]] + }, { + "species": "Iron Moth", + "weight": 25, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"def": 124, "spa": 132, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Fiery Dance"], ["Sludge Wave"], ["Psychic"], ["Substitute", "Dazzling Gleam"]] + }, { + "species": "Iron Moth", + "wantsTera": true, + "weight": 25, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"def": 124, "spa": 132, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Fiery Dance"], ["Sludge Wave"], ["Tera Blast"], ["Substitute", "Dazzling Gleam"]] + }, { + "species": "Iron Moth", + "weight": 25, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"def": 124, "spa": 132, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass"], + "moves": [["Fiery Dance"], ["Sludge Wave"], ["Energy Ball"], ["Substitute", "Dazzling Gleam"]] + }] + }, + "ironvaliant": { + "weight": 8, + "sets": [{ + "species": "Iron Valiant", + "weight": 15, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Moonblast"], ["Calm Mind"], ["Shadow Ball"], ["Encore", "Thunderbolt"]] + }, { + "species": "Iron Valiant", + "weight": 15, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Moonblast"], ["Calm Mind"], ["Psyshock"], ["Encore"]] + }, { + "species": "Iron Valiant", + "weight": 15, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Electric"], + "moves": [["Moonblast"], ["Calm Mind"], ["Shadow Ball", "Psyshock"], ["Thunderbolt"]] + }, { + "species": "Iron Valiant", + "weight": 25, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Dark"], + "moves": [["Swords Dance"], ["Close Combat"], ["Spirit Break", "Encore"], ["Knock Off"]] + }, { + "species": "Iron Valiant", + "weight": 15, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "nature": ["Naive"], + "teraType": ["Steel", "Fairy"], + "moves": [["Moonblast"], ["Knock Off"], ["Close Combat"], ["Encore", "Destiny Bond"]] + }, { + "species": "Iron Valiant", + "weight": 15, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "nature": ["Naive"], + "teraType": ["Steel", "Fairy"], + "moves": [["Moonblast"], ["Knock Off", "Close Combat"], ["Destiny Bond"], ["Encore"]] + }] + }, + "kyurem": { + "weight": 8, + "sets": [{ + "species": "Kyurem", + "wantsTera": true, + "weight": 25, + "item": ["Loaded Dice"], + "ability": ["Pressure"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground", "Fire"], + "moves": [["Icicle Spear"], ["Scale Shot"], ["Dragon Dance"], ["Tera Blast"]] + }, { + "species": "Kyurem", + "weight": 20, + "item": ["Never-Melt Ice", "Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"atk": 168, "spa": 88, "spe": 252}, + "nature": ["Hasty"], + "teraType": ["Ground", "Ice"], + "moves": [["Icicle Spear"], ["Freeze-Dry"], ["Earth Power"], ["Dragon Dance"]] + }, { + "species": "Kyurem", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Pressure"], + "evs": {"hp": 52, "spa": 204, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Substitute"], ["Freeze-Dry"], ["Earth Power"], ["Protect"]] + }, { + "species": "Kyurem", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground", "Ice"], + "moves": [["Draco Meteor"], ["Freeze-Dry"], ["Earth Power"], ["Ice Beam"]] + }, { + "species": "Kyurem", + "weight": 15, + "item": ["Choice Specs"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid", "Modest"], + "teraType": ["Ground", "Ice", "Fairy"], + "moves": [["Draco Meteor"], ["Freeze-Dry"], ["Earth Power"], ["Ice Beam"]] + }] + }, + "ogerponwellspring": { + "weight": 8, + "sets": [{ + "species": "Ogerpon-Wellspring", + "weight": 40, + "item": ["Wellspring Mask"], + "ability": ["Water Absorb"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Ivy Cudgel"], ["Power Whip", "Horn Leech"], ["Swords Dance"], ["Play Rough", "Encore", "Knock Off"]] + }, { + "species": "Ogerpon-Wellspring", + "weight": 30, + "item": ["Wellspring Mask"], + "ability": ["Water Absorb"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Ivy Cudgel"], ["Horn Leech"], ["U-turn"], ["Knock Off", "Encore", "Spikes"]] + }, { + "species": "Ogerpon-Wellspring", + "weight": 20, + "item": ["Wellspring Mask"], + "ability": ["Water Absorb"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Water"], + "moves": [["Ivy Cudgel"], ["Power Whip"], ["Knock Off", "Play Rough"], ["Trailblaze"]] + }, { + "species": "Ogerpon-Wellspring", + "weight": 10, + "item": ["Wellspring Mask"], + "ability": ["Water Absorb"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Water"], + "moves": [["Ivy Cudgel"], ["Power Whip"], ["Knock Off"], ["Play Rough"]] + }] + }, + "ragingbolt": { + "weight": 8, + "sets": [{ + "species": "Raging Bolt", + "weight": 80, + "item": ["Leftovers", "Booster Energy"], + "ability": ["Protosynthesis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 20}, + "nature": ["Modest"], + "teraType": ["Fairy", "Flying", "Bug"], + "moves": [["Thunderclap"], ["Calm Mind"], ["Dragon Pulse", "Draco Meteor"], ["Thunderbolt"]] + }, { + "species": "Raging Bolt", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Protosynthesis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 20}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Thunderclap"], ["Volt Switch"], ["Dragon Pulse"], ["Taunt"]] + }] + }, + "samurotthisui": { + "weight": 8, + "sets": [{ + "species": "Samurott-Hisui", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Sharpness"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison", "Fire"], + "moves": [["Ceaseless Edge"], ["Razor Shell", "Aqua Cutter"], ["Knock Off"], ["Flip Turn", "Encore"]] + }, { + "species": "Samurott-Hisui", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Sharpness"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water", "Dark"], + "moves": [["Ceaseless Edge"], ["Razor Shell", "Aqua Cutter"], ["Knock Off"], ["Flip Turn", "Sacred Sword"]] + }, { + "species": "Samurott-Hisui", + "weight": 30, + "item": ["Assault Vest"], + "ability": ["Sharpness"], + "evs": {"hp": 172, "atk": 252, "spe": 84}, + "nature": ["Adamant"], + "teraType": ["Poison"], + "moves": [["Ceaseless Edge"], ["Razor Shell", "Aqua Cutter"], ["Knock Off", "Flip Turn"], ["Aqua Jet", "Sucker Punch"]] + }] + }, + "slowkinggalar": { + "weight": 8, + "sets": [{ + "species": "Slowking-Galar", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 16, "spd": 240}, + "ivs": {"atk": 0, "spe": 0}, + "nature": ["Sassy"], + "teraType": ["Water", "Grass", "Fairy"], + "moves": [["Future Sight", "Psychic Noise"], ["Chilly Reception"], ["Sludge Bomb"], ["Thunder Wave", "Toxic"]] + }, { + "species": "Slowking-Galar", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 16, "spa": 144, "spd": 96}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Water", "Grass"], + "moves": [["Psyshock", "Psychic Noise"], ["Flamethrower"], ["Sludge Bomb"], ["Ice Beam"]] + }] + }, + "tinglu": { + "weight": 8, + "sets": [{ + "species": "Ting-Lu", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Vessel of Ruin"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison", "Ghost"], + "moves": [["Spikes", "Stealth Rock"], ["Earthquake"], ["Whirlwind"], ["Ruination"]] + }] + }, + "alomomola": { + "weight": 7, + "sets": [{ + "species": "Alomomola", + "weight": 33, + "item": ["Heavy-Duty Boots", "Rocky Helmet"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"spe": 0}, + "nature": ["Relaxed"], + "teraType": ["Ghost", "Flying"], + "moves": [["Flip Turn"], ["Scald"], ["Wish"], ["Protect"]] + }, { + "species": "Alomomola", + "weight": 33, + "item": ["Heavy-Duty Boots", "Rocky Helmet"], + "ability": ["Regenerator"], + "evs": {"hp": 4, "def": 252, "spd": 252}, + "ivs": {"spe": 0}, + "nature": ["Relaxed"], + "teraType": ["Ghost", "Flying"], + "moves": [["Flip Turn"], ["Scald"], ["Wish"], ["Protect"]] + }, { + "species": "Alomomola", + "weight": 34, + "item": ["Assault Vest"], + "ability": ["Regenerator"], + "evs": {"hp": 20, "def": 236, "spd": 252}, + "ivs": {"spe": 0}, + "nature": ["Sassy"], + "teraType": ["Ghost", "Flying"], + "moves": [["Flip Turn"], ["Scald"], ["Play Rough"], ["Mirror Coat"]] + }] + }, + "cinderace": { + "weight": 7, + "sets": [{ + "species": "Cinderace", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Blaze"], + "evs": {"hp": 224, "atk": 32, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying"], + "moves": [["Pyro Ball"], ["U-turn"], ["Court Change"], ["Will-O-Wisp"]] + }, { + "species": "Cinderace", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Libero"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fire"], + "moves": [["Pyro Ball"], ["U-turn"], ["Court Change"], ["Sucker Punch", "Gunk Shot"]] + }] + }, + "deoxysspeed": { + "weight": 7, + "sets": [{ + "species": "Deoxys-Speed", + "weight": 20, + "item": ["Life Orb", "Expert Belt"], + "ability": ["Pressure"], + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "nature": ["Naive"], + "teraType": ["Fighting"], + "moves": [["Psycho Boost"], ["Superpower"], ["Knock Off"], ["Ice Beam", "Taunt"]] + }, { + "species": "Deoxys-Speed", + "weight": 20, + "item": ["Life Orb", "Expert Belt"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting", "Psychic", "Ghost"], + "moves": [["Psycho Boost"], ["Focus Blast"], ["Shadow Ball"], ["Ice Beam", "Nasty Plot", "Taunt"]] + }, { + "species": "Deoxys-Speed", + "weight": 20, + "item": ["Life Orb", "Expert Belt"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Electric", "Psychic"], + "moves": [["Psycho Boost"], ["Thunderbolt"], ["Ice Beam"], ["Nasty Plot"]] + }, { + "species": "Deoxys-Speed", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"atk": 200, "spa": 252, "spe": 56}, + "nature": ["Naive"], + "teraType": ["Fighting"], + "moves": [["Psycho Boost"], ["Knock Off"], ["Ice Beam"], ["Superpower"]] + }] + }, + "garganacl": { + "weight": 7, + "sets": [{ + "species": "Garganacl", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Purifying Salt"], + "evs": {"hp": 252, "def": 52, "spd": 204}, + "nature": ["Careful"], + "teraType": ["Water", "Fairy"], + "moves": [["Salt Cure"], ["Recover"], ["Curse"], ["Earthquake"]] + }, { + "species": "Garganacl", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Purifying Salt"], + "evs": {"hp": 252, "def": 52, "spd": 204}, + "nature": ["Careful"], + "teraType": ["Water", "Fairy"], + "moves": [["Salt Cure"], ["Recover"], ["Stealth Rock"], ["Protect"]] + }] + }, + "ironcrown": { + "weight": 7, + "sets": [{ + "species": "Iron Crown", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Quark Drive"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 20}, + "nature": ["Timid"], + "teraType": ["Fighting", "Fairy"], + "moves": [["Tachyon Cutter"], ["Future Sight", "Psychic Noise"], ["Focus Blast"], ["Volt Switch"]] + }, { + "species": "Iron Crown", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Quark Drive"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 20}, + "nature": ["Timid"], + "teraType": ["Fighting", "Steel"], + "moves": [["Tachyon Cutter"], ["Psyshock", "Psychic Noise"], ["Focus Blast"], ["Volt Switch"]] + }] + }, + "moltres": { + "weight": 7, + "sets": [{ + "species": "Moltres", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Flame Body"], + "evs": {"hp": 248, "def": 248, "spe": 12}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Grass", "Fairy"], + "moves": [["Flamethrower"], ["Will-O-Wisp", "Hurricane"], ["Roar"], ["Roost"]] + }, { + "species": "Moltres", + "weight": 60, + "item": ["Heavy-Duty Boots"], + "ability": ["Flame Body"], + "evs": {"hp": 248, "def": 248, "spe": 12}, + "nature": ["Bold"], + "teraType": ["Grass", "Fairy"], + "moves": [["Flamethrower"], ["Will-O-Wisp", "Hurricane", "Roar"], ["U-turn"], ["Roost"]] + }] + }, + "roaringmoon": { + "weight": 7, + "sets": [{ + "species": "Roaring Moon", + "weight": 50, + "item": ["Booster Energy"], + "ability": ["Protosynthesis"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Flying"], + "moves": [["Dragon Dance"], ["Knock Off"], ["Acrobatics"], ["Earthquake", "Taunt"]] + }, { + "species": "Roaring Moon", + "weight": 50, + "item": ["Booster Energy"], + "ability": ["Protosynthesis"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Ground"], + "moves": [["Dragon Dance"], ["Knock Off"], ["Earthquake"], ["Acrobatics", "Taunt"]] + }] + }, + "enamorus": { + "weight": 6, + "sets": [{ + "species": "Enamorus", + "wantsTera": true, + "weight": 40, + "item": ["Choice Scarf"], + "ability": ["Contrary"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Stellar"], + "moves": [["Moonblast"], ["Earth Power"], ["Tera Blast"], ["Healing Wish"]] + }, { + "species": "Enamorus", + "weight": 40, + "item": ["Choice Scarf"], + "ability": ["Contrary"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Ground"], + "moves": [["Moonblast"], ["Earth Power"], ["Mystical Fire"], ["Healing Wish"]] + }, { + "species": "Enamorus", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Cute Charm"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Ground", "Steel"], + "moves": [["Moonblast"], ["Earth Power"], ["Calm Mind"], ["Taunt"]] + }, { + "species": "Enamorus", + "weight": 10, + "item": ["Leftovers"], + "ability": ["Cute Charm"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Ground", "Steel"], + "moves": [["Moonblast"], ["Earth Power"], ["Calm Mind"], ["Substitute"]] + }] + }, + "hatterene": { + "weight": 6, + "sets": [{ + "species": "Hatterene", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Magic Bounce"], + "evs": {"hp": 252, "def": 204, "spe": 52}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Fire"], + "moves": [["Calm Mind"], ["Draining Kiss"], ["Psyshock", "Stored Power"], ["Mystical Fire"]] + }, { + "species": "Hatterene", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Magic Bounce"], + "evs": {"hp": 252, "def": 204, "spe": 52}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Calm Mind"], ["Draining Kiss"], ["Psyshock", "Stored Power"], ["Nuzzle"]] + }, { + "species": "Hatterene", + "weight": 40, + "item": ["Assault Vest"], + "ability": ["Magic Bounce"], + "evs": {"hp": 252, "spa": 140, "spd": 104, "spe": 12}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Water", "Steel"], + "moves": [["Mystical Fire"], ["Draining Kiss"], ["Psyshock"], ["Nuzzle", "Future Sight"]] + }] + }, + "ogerpon": { + "weight": 5, + "sets": [{ + "species": "Ogerpon", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Defiant"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Grass"], + "moves": [["Ivy Cudgel"], ["Knock Off"], ["U-turn"], ["Encore"]] + }] + }, + "primarina": { + "weight": 6, + "sets": [{ + "species": "Primarina", + "weight": 40, + "item": ["Assault Vest"], + "ability": ["Torrent"], + "evs": {"hp": 80, "spa": 252, "spe": 176}, + "nature": ["Modest"], + "teraType": ["Grass", "Steel"], + "moves": [["Surf"], ["Moonblast"], ["Psychic Noise"], ["Flip Turn"]] + }, { + "species": "Primarina", + "weight": 30, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Torrent"], + "evs": {"hp": 80, "spa": 252, "spe": 176}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ghost", "Steel"], + "moves": [["Surf", "Hydro Pump"], ["Moonblast"], ["Psychic Noise", "Substitute"], ["Calm Mind"]] + }, { + "species": "Primarina", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Liquid Voice"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel"], + "moves": [["Psychic Noise"], ["Draining Kiss"], ["Substitute"], ["Calm Mind"]] + }, { + "species": "Primarina", + "weight": 10, + "item": ["Leftovers"], + "ability": ["Torrent"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel"], + "moves": [["Surf"], ["Draining Kiss"], ["Substitute"], ["Calm Mind"]] + }] + }, + "sinistcha": { + "weight": 5, + "sets": [{ + "species": "Sinistcha", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Heatproof"], + "evs": {"hp": 252, "def": 160, "spe": 96}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Poison"], + "moves": [["Calm Mind"], ["Matcha Gotcha"], ["Shadow Ball"], ["Strength Sap"]] + }] + }, + "tinkaton": { + "weight": 6, + "sets": [{ + "species": "Tinkaton", + "weight": 100, + "item": ["Air Balloon"], + "ability": ["Pickpocket", "Mold Breaker"], + "evs": {"hp": 252, "spd": 24, "spe": 232}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Water"], + "moves": [["Stealth Rock"], ["Gigaton Hammer"], ["Encore"], ["Thunder Wave", "Knock Off"]] + }] + }, + "weavile": { + "weight": 6, + "sets": [{ + "species": "Weavile", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Pickpocket"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ice"], + "moves": [["Triple Axel"], ["Knock Off"], ["Ice Shard"], ["Swords Dance", "Low Kick"]] + }] + }, + "zapdos": { + "weight": 6, + "sets": [{ + "species": "Zapdos", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Static"], + "evs": {"hp": 248, "def": 244, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel", "Fairy", "Water"], + "moves": [["Hurricane"], ["Volt Switch"], ["Thunder Wave"], ["Roost"]] + }, { + "species": "Zapdos", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Static"], + "evs": {"hp": 248, "def": 244, "spe": 16}, + "nature": ["Bold"], + "teraType": ["Steel", "Fairy", "Water"], + "moves": [["Hurricane"], ["U-turn"], ["Discharge"], ["Roost"]] + }] + }, + "clefable": { + "weight": 5, + "sets": [{ + "species": "Clefable", + "weight": 50, + "item": ["Leftovers", "Sticky Barb"], + "ability": ["Magic Guard"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Bold"], + "teraType": ["Steel", "Water"], + "moves": [["Stealth Rock"], ["Moonlight"], ["Moonblast"], ["Knock Off"]] + }, { + "species": "Clefable", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Magic Guard"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fire"], + "moves": [["Calm Mind"], ["Moonlight"], ["Moonblast"], ["Flamethrower"]] + }, { + "species": "Clefable", + "weight": 25, + "item": ["Sticky Barb"], + "ability": ["Magic Guard"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Bold"], + "teraType": ["Steel", "Water"], + "moves": [["Calm Mind"], ["Moonlight"], ["Moonblast"], ["Knock Off"]] + }] + }, + "clodsire": { + "weight": 4, + "sets": [{ + "species": "Clodsire", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Unaware"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Dark", "Steel"], + "moves": [["Earthquake"], ["Recover"], ["Toxic"], ["Spikes", "Stealth Rock"]] + }] + }, + "corviknight": { + "weight": 5, + "sets": [{ + "species": "Corviknight", + "weight": 50, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Pressure"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "nature": ["Impish"], + "teraType": ["Water", "Dragon"], + "moves": [["Brave Bird"], ["Roost"], ["U-turn"], ["Defog"]] + }, { + "species": "Corviknight", + "weight": 15, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Pressure"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "nature": ["Impish"], + "teraType": ["Water", "Dragon"], + "moves": [["Body Press"], ["Roost"], ["U-turn"], ["Defog"]] + }, { + "species": "Corviknight", + "weight": 20, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Pressure"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Dragon", "Fighting"], + "moves": [["Body Press"], ["Roost"], ["Iron Defense"], ["Defog"]] + }, { + "species": "Corviknight", + "weight": 15, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Pressure"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "nature": ["Impish"], + "teraType": ["Water", "Dragon", "Fighting"], + "moves": [["Body Press"], ["Roost"], ["U-turn"], ["Iron Defense"]] + }] + }, + "dondozo": { + "weight": 5, + "sets": [{ + "species": "Dondozo", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Unaware"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Dark", "Grass"], + "moves": [["Rest"], ["Sleep Talk"], ["Waterfall"], ["Curse", "Avalanche"]] + }, { + "species": "Dondozo", + "weight": 25, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Unaware"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Fighting", "Dark", "Grass"], + "moves": [["Rest"], ["Sleep Talk"], ["Body Press"], ["Avalanche"]] + }, { + "species": "Dondozo", + "weight": 25, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Unaware"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fighting", "Dark", "Grass"], + "moves": [["Rest"], ["Sleep Talk"], ["Body Press"], ["Curse"]] + }] + }, + "hydrapple": { + "weight": 5, + "sets": [{ + "species": "Hydrapple", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 244, "spa": 252, "spe": 12}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Steel", "Fairy", "Poison"], + "moves": [["Fickle Beam"], ["Nasty Plot"], ["Giga Drain"], ["Earth Power"]] + }] + }, + "ogerponcornerstone": { + "weight": 4, + "sets": [{ + "species": "Ogerpon-Cornerstone", + "weight": 100, + "item": ["Cornerstone Mask"], + "ability": ["Sturdy"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Rock"], + "moves": [["Ivy Cudgel"], ["Swords Dance"], ["Power Whip", "Horn Leech"], ["Low Kick", "Knock Off"]] + }] + }, + "rillaboom": { + "weight": 5, + "sets": [{ + "species": "Rillaboom", + "weight": 80, + "item": ["Choice Band"], + "ability": ["Grassy Surge"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Grass"], + "moves": [["Grassy Glide"], ["Wood Hammer"], ["U-turn"], ["Knock Off"]] + }, { + "species": "Rillaboom", + "weight": 10, + "item": ["Assault Vest"], + "ability": ["Grassy Surge"], + "evs": {"hp": 204, "atk": 252, "spe": 52}, + "nature": ["Adamant"], + "teraType": ["Grass", "Fighting"], + "moves": [["Grassy Glide"], ["Low Kick"], ["U-turn"], ["Knock Off"]] + }, { + "species": "Rillaboom", + "weight": 10, + "item": ["Assault Vest"], + "ability": ["Grassy Surge"], + "evs": {"hp": 204, "atk": 252, "spe": 52}, + "nature": ["Adamant"], + "teraType": ["Grass"], + "moves": [["Grassy Glide"], ["Wood Hammer"], ["U-turn"], ["Knock Off"]] + }] + }, + "scizor": { + "weight": 5, + "sets": [{ + "species": "Scizor", + "weight": 20, + "item": ["Leftovers", "Heavy-Duty Boots", "Metal Coat"], + "ability": ["Technician"], + "evs": {"hp": 120, "atk": 252, "spe": 136}, + "nature": ["Adamant"], + "teraType": ["Steel", "Fire"], + "moves": [["Swords Dance"], ["Bullet Punch"], ["Close Combat"], ["Knock Off"]] + }, { + "species": "Scizor", + "weight": 40, + "item": ["Choice Band"], + "ability": ["Technician"], + "evs": {"hp": 120, "atk": 252, "spe": 136}, + "nature": ["Adamant"], + "teraType": ["Flying"], + "moves": [["U-turn"], ["Bullet Punch"], ["Dual Wingbeat"], ["Knock Off"]] + }, { + "species": "Scizor", + "weight": 40, + "item": ["Choice Band"], + "ability": ["Technician"], + "evs": {"hp": 120, "atk": 252, "spe": 136}, + "nature": ["Adamant"], + "teraType": ["Steel"], + "moves": [["U-turn"], ["Bullet Punch"], ["Close Combat"], ["Knock Off"]] + }] + }, + "skarmory": { + "weight": 4, + "sets": [{ + "species": "Skarmory", + "weight": 50, + "item": ["Rocky Helmet"], + "ability": ["Sturdy"], + "evs": {"hp": 252, "def": 160, "spe": 96}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Dragon", "Fighting"], + "moves": [["Body Press"], ["Roost"], ["Spikes", "Stealth Rock"], ["Iron Defense"]] + }, { + "species": "Skarmory", + "weight": 50, + "item": ["Rocky Helmet"], + "ability": ["Sturdy"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Dragon"], + "moves": [["Whirlwind"], ["Roost"], ["Spikes", "Stealth Rock"], ["Brave Bird"]] + }] + }, + "ursaluna": { + "weight": 5, + "sets": [{ + "species": "Ursaluna", + "weight": 100, + "item": ["Flame Orb"], + "ability": ["Guts"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Normal", "Ghost"], + "moves": [["Swords Dance"], ["Facade"], ["Headlong Rush"], ["Fire Punch", "Ice Punch"]] + }] + }, + "weezinggalar": { + "weight": 5, + "sets": [{ + "species": "Weezing-Galar", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Neutralizing Gas"], + "evs": {"hp": 252, "def": 240, "spa": 16}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Flying", "Grass"], + "moves": [["Strange Steam"], ["Pain Split"], ["Will-O-Wisp", "Toxic"], ["Defog"]] + }] + }, + "greninjabond": { + "weight": 4, + "sets": [{ + "species": "Greninja-Bond", + "weight": 100, + "item": ["Life Orb"], + "ability": ["Battle Bond"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Ghost"], + "moves": [["Surf", "Hydro Pump"], ["Dark Pulse"], ["Ice Beam"], ["Water Shuriken"]] + }] + }, + "heatran": { + "weight": 3, + "sets": [{ + "species": "Heatran", + "weight": 50, + "item": ["Air Balloon", "Leftovers"], + "ability": ["Flash Fire"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest", "Timid"], + "teraType": ["Grass", "Ghost"], + "moves": [["Magma Storm"], ["Earth Power"], ["Taunt"], ["Stealth Rock", "Will-O-Wisp"]] + }, { + "species": "Heatran", + "weight": 15, + "item": ["Air Balloon", "Leftovers"], + "ability": ["Flash Fire"], + "evs": {"hp": 252, "def": 4, "spd": 212, "spe": 40}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Grass"], + "moves": [["Magma Storm"], ["Earth Power"], ["Taunt", "Stealth Rock"], ["Will-O-Wisp"]] + }, { + "species": "Heatran", + "weight": 15, + "item": ["Air Balloon", "Leftovers"], + "ability": ["Flame Body"], + "evs": {"hp": 252, "def": 4, "spd": 212, "spe": 40}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Ghost"], + "moves": [["Magma Storm"], ["Earth Power"], ["Taunt", "Stealth Rock"], ["Will-O-Wisp"]] + }, { + "species": "Heatran", + "weight": 10, + "item": ["Air Balloon", "Leftovers"], + "ability": ["Flash Fire"], + "evs": {"hp": 252, "def": 4, "spd": 212, "spe": 40}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Grass"], + "moves": [["Magma Storm"], ["Earth Power"], ["Taunt"], ["Stealth Rock"]] + }, { + "species": "Heatran", + "weight": 10, + "item": ["Air Balloon", "Leftovers"], + "ability": ["Flame Body"], + "evs": {"hp": 252, "def": 4, "spd": 212, "spe": 40}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Ghost"], + "moves": [["Magma Storm"], ["Earth Power"], ["Taunt"], ["Stealth Rock"]] + }] + }, + "hoopaunbound": { + "weight": 4, + "sets": [{ + "species": "Hoopa-Unbound", + "weight": 100, + "item": ["Assault Vest"], + "ability": ["Magician"], + "evs": {"hp": 252, "def": 156, "spa": 100}, + "nature": ["Quiet"], + "teraType": ["Poison", "Fairy"], + "moves": [["Knock Off"], ["Psychic Noise"], ["Drain Punch"], ["Thunderbolt"]] + }] + }, + "latios": { + "weight": 4, + "sets": [{ + "species": "Latios", + "weight": 10, + "item": ["Choice Specs", "Choice Scarf"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting", "Dragon"], + "moves": [["Draco Meteor"], ["Aura Sphere"], ["Luster Purge"], ["Trick"]] + }, { + "species": "Latios", + "weight": 10, + "item": ["Choice Specs", "Choice Scarf"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fighting", "Dragon"], + "moves": [["Draco Meteor"], ["Aura Sphere"], ["Luster Purge"], ["Flip Turn"]] + }, { + "species": "Latios", + "weight": 80, + "item": ["Soul Dew"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Draco Meteor"], ["Aura Sphere", "Calm Mind"], ["Luster Purge", "Psychic Noise"], ["Recover"]] + }] + }, + "lokix": { + "weight": 4, + "sets": [{ + "species": "Lokix", + "weight": 100, + "item": ["Choice Band"], + "ability": ["Tinted Lens"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Bug"], + "moves": [["First Impression"], ["Knock Off"], ["U-turn"], ["Leech Life"]] + }] + }, + "manaphy": { + "weight": 4, + "sets": [{ + "species": "Manaphy", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Hydration"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass"], + "moves": [["Tail Glow"], ["Surf", "Scald"], ["Energy Ball"], ["Alluring Voice", "Ice Beam"]] + }, { + "species": "Manaphy", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Hydration"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Tail Glow"], ["Surf", "Scald"], ["Alluring Voice"], ["Energy Ball", "Ice Beam"]] + }] + }, + "meowscarada": { + "weight": 3, + "sets": [{ + "species": "Meowscarada", + "weight": 100, + "item": ["Heavy-Duty Boots", "Choice Scarf", "Choice Band"], + "ability": ["Protean"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Grass", "Dark", "Ghost"], + "moves": [["Flower Trick"], ["Knock Off"], ["Triple Axel"], ["U-turn"]] + }] + }, + "pecharunt": { + "weight": 6, + "sets": [{ + "species": "Pecharunt", + "weight": 50, + "item": ["Heavy-Duty Boots", "Air Balloon"], + "ability": ["Poison Puppeteer"], + "evs": {"hp": 252, "def": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Dark"], + "moves": [["Malignant Chain"], ["Recover"], ["Hex"], ["Parting Shot"]] + }, { + "species": "Pecharunt", + "weight": 50, + "item": ["Heavy-Duty Boots", "Air Balloon"], + "ability": ["Poison Puppeteer"], + "evs": {"hp": 252, "def": 228, "spe": 28}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost", "Dark"], + "moves": [["Malignant Chain"], ["Recover"], ["Hex"], ["Parting Shot"]] + }] + }, + "rotomwash": { + "weight": 3, + "sets": [{ + "species": "Rotom-Wash", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 212, "spe": 44}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel"], + "moves": [["Hydro Pump"], ["Volt Switch"], ["Will-O-Wisp", "Thunder Wave"], ["Pain Split"]] + }, { + "species": "Rotom-Wash", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "spd": 212, "spe": 44}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Steel"], + "moves": [["Hydro Pump"], ["Volt Switch"], ["Will-O-Wisp", "Thunder Wave"], ["Pain Split"]] + }] + }, + "serperior": { + "weight": 4, + "sets": [{ + "species": "Serperior", + "wantsTera": true, + "weight": 100, + "item": ["Leftovers"], + "ability": ["Contrary"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fire", "Ground"], + "moves": [["Leaf Storm"], ["Glare"], ["Tera Blast"], ["Substitute", "Dragon Pulse"]] + }] + }, + "slitherwing": { + "weight": 1, + "sets": [{ + "species": "Slither Wing", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Protosynthesis"], + "evs": {"hp": 252, "atk": 28, "def": 220, "spe": 8}, + "nature": ["Impish"], + "teraType": ["Steel", "Dragon"], + "moves": [["First Impression"], ["U-turn"], ["Will-O-Wisp", "Stun Spore"], ["Morning Sun"]] + }] + }, + "skeledirge": { + "weight": 3, + "sets": [{ + "species": "Skeledirge", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Unaware"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Water"], + "moves": [["Torch Song"], ["Will-O-Wisp"], ["Hex"], ["Slack Off"]] + }, { + "species": "Skeledirge", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Unaware"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Water"], + "moves": [["Torch Song"], ["Will-O-Wisp"], ["Hex"], ["Slack Off"]] + }] + }, + "tornadustherian": { + "weight": 4, + "sets": [{ + "species": "Tornadus-Therian", + "weight": 100, + "item": ["Assault Vest", "Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "spa": 16, "spd": 72, "spe": 168}, + "nature": ["Timid"], + "teraType": ["Steel", "Fairy"], + "moves": [["Bleakwind Storm", "Hurricane"], ["Heat Wave"], ["Knock Off"], ["U-turn"]] + }] + }, + "volcanion": { + "weight": 3, + "sets": [{ + "species": "Volcanion", + "wantsTera": true, + "weight": 75, + "item": ["Choice Specs", "Heavy-Duty Boots"], + "ability": ["Water Absorb"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Steam Eruption"], ["Flamethrower"], ["Tera Blast"], ["Earth Power"]] + }, { + "species": "Volcanion", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Absorb"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Steam Eruption"], ["Flamethrower"], ["Sludge Bomb"], ["Earth Power"]] + }] + }, + "ironboulder": { + "weight": 3, + "sets": [{ + "species": "Iron Boulder", + "weight": 60, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting"], + "moves": [["Mighty Cleave"], ["Close Combat"], ["Zen Headbutt", "Earthquake"], ["Swords Dance"]] + }, { + "species": "Iron Boulder", + "weight": 40, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground"], + "moves": [["Mighty Cleave"], ["Earthquake"], ["Zen Headbutt", "Close Combat"], ["Swords Dance"]] + }] + }, + "okidogi": { + "weight": 3, + "sets": [{ + "species": "Okidogi", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Guard Dog", "Toxic Chain"], + "evs": {"hp": 240, "atk": 252, "spe": 16}, + "nature": ["Adamant"], + "teraType": ["Water", "Dark"], + "moves": [["Drain Punch"], ["Gunk Shot"], ["Knock Off"], ["Ice Punch"]] + }, { + "species": "Okidogi", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Guard Dog"], + "evs": {"hp": 252, "spd": 160, "spe": 96}, + "nature": ["Careful"], + "teraType": ["Water", "Ghost"], + "moves": [["Drain Punch"], ["Bulk Up"], ["Knock Off"], ["Ice Punch"]] + }] + }, + "toxapex": { + "weight": 3, + "sets": [{ + "species": "Toxapex", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel", "Grass"], + "moves": [["Surf"], ["Toxic"], ["Haze", "Toxic Spikes", "Baneful Bunker"], ["Recover"]] + }, { + "species": "Toxapex", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Steel", "Grass"], + "moves": [["Surf"], ["Toxic"], ["Haze", "Toxic Spikes", "Baneful Bunker"], ["Recover"]] + }] + }, + "amoonguss": { + "weight": 2, + "sets": [{ + "species": "Amoonguss", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 248, "def": 244, "spd": 16}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Dark", "Water", "Steel"], + "moves": [["Foul Play"], ["Toxic"], ["Synthesis"], ["Clear Smog", "Sludge Bomb", "Giga Drain"]] + }] + }, + "fezandipiti": { + "weight": 2, + "sets": [{ + "species": "Fezandipiti", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Toxic Chain"], + "evs": {"hp": 248, "atk": 152, "spd": 44, "spe": 64}, + "nature": ["Careful"], + "teraType": ["Dark", "Water"], + "moves": [["Play Rough"], ["Roost"], ["U-turn"], ["Beat Up"]] + }] + }, + "garchomp": { + "weight": 2, + "sets": [{ + "species": "Garchomp", + "weight": 80, + "item": ["Rocky Helmet"], + "ability": ["Rough Skin"], + "evs": {"hp": 252, "def": 216, "spe": 40}, + "nature": ["Impish"], + "teraType": ["Ghost", "Steel"], + "moves": [["Earthquake"], ["Dragon Tail"], ["Stealth Rock"], ["Spikes"]] + }, { + "species": "Garchomp", + "weight": 20, + "item": ["Loaded Dice"], + "ability": ["Rough Skin"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fire"], + "moves": [["Earthquake"], ["Scale Shot"], ["Swords Dance"], ["Fire Fang", "Stone Edge"]] + }] + }, + "goodrahisui": { + "weight": 2, + "sets": [{ + "species": "Goodra-Hisui", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Gooey", "Sap Sipper"], + "evs": {"hp": 248, "spa": 252, "spd": 8}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Draco Meteor"], ["Flash Cannon"], ["Knock Off"], ["Flamethrower", "Ice Beam"]] + }, { + "species": "Goodra-Hisui", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Gooey", "Sap Sipper"], + "evs": {"hp": 248, "spa": 252, "spd": 8}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Draco Meteor"], ["Flash Cannon"], ["Ice Beam"], ["Flamethrower"]] + }] + }, + "ironhands": { + "weight": 2, + "sets": [{ + "species": "Iron Hands", + "weight": 35, + "item": ["Booster Energy"], + "ability": ["Quark Drive"], + "evs": {"atk": 252, "spd": 172, "spe": 84}, + "nature": ["Adamant"], + "teraType": ["Flying", "Fire"], + "moves": [["Swords Dance"], ["Drain Punch"], ["Thunder Punch"], ["Ice Punch"]] + }, { + "species": "Iron Hands", + "weight": 35, + "item": ["Shuca Berry"], + "ability": ["Quark Drive"], + "evs": {"atk": 252, "spd": 172, "spe": 84}, + "nature": ["Adamant"], + "teraType": ["Fire"], + "moves": [["Swords Dance"], ["Drain Punch"], ["Thunder Punch"], ["Ice Punch"]] + }, { + "species": "Iron Hands", + "weight": 30, + "item": ["Shuca Berry"], + "ability": ["Quark Drive"], + "evs": {"atk": 252, "spd": 172, "spe": 84}, + "nature": ["Adamant"], + "teraType": ["Flying", "Fire"], + "moves": [["Earthquake"], ["Drain Punch"], ["Thunder Punch"], ["Ice Punch"]] + }] + }, + "keldeo": { + "weight": 2, + "sets": [{ + "species": "Keldeo", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Justified"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Water"], + "moves": [["Aura Sphere"], ["Surf"], ["Flip Turn"], ["Vacuum Wave"]] + }] + }, + "mandibuzz": { + "weight": 1, + "sets": [{ + "species": "Mandibuzz", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Overcoat", "Big Pecks"], + "evs": {"hp": 248, "def": 244, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Poison"], + "moves": [["Foul Play"], ["Roost"], ["Defog"], ["Toxic"]] + }, { + "species": "Mandibuzz", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Overcoat", "Big Pecks"], + "evs": {"hp": 248, "def": 244, "spe": 16}, + "nature": ["Impish"], + "teraType": ["Water", "Poison"], + "moves": [["Foul Play"], ["Roost"], ["Defog"], ["U-turn"]] + }] + }, + "reuniclus": { + "weight": 1, + "sets": [{ + "species": "Reuniclus", + "weight": 100, + "item": ["Life Orb"], + "ability": ["Magic Guard"], + "evs": {"hp": 252, "spa": 212, "spe": 44}, + "nature": ["Modest"], + "teraType": ["Water"], + "moves": [["Psychic Noise"], ["Recover"], ["Knock Off"], ["Focus Blast"]] + }] + }, + "hydreigon": { + "weight": 1, + "sets": [{ + "species": "Hydreigon", + "wantsTera": true, + "weight": 100, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Nasty Plot"], ["Draco Meteor"], ["Flash Cannon"], ["Substitute"]] + }] + } + }, + "UU": { + "tornadustherian": { + "weight": 10, + "sets": [{ + "species": "Tornadus-Therian", + "weight": 60, + "item": ["Assault Vest", "Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "spd": 64, "spe": 192}, + "nature": ["Timid"], + "teraType": ["Steel", "Water"], + "moves": [["Bleakwind Storm"], ["Focus Blast"], ["Knock Off"], ["U-turn"]] + }, { + "species": "Tornadus-Therian", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Bleakwind Storm", "Hurricane"], ["Focus Blast", "Heat Wave"], ["Taunt"], ["Nasty Plot"]] + }] + }, + "excadrill": { + "weight": 10, + "sets": [{ + "species": "Excadrill", + "weight": 50, + "item": ["Leftovers", "Air Balloon"], + "ability": ["Mold Breaker"], + "evs": {"hp": 156, "spd": 252, "spe": 100}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Dragon", "Fairy"], + "moves": [["Earthquake"], ["Rapid Spin"], ["Iron Head"], ["Stealth Rock"]] + }, { + "species": "Excadrill", + "weight": 50, + "item": ["Leftovers", "Air Balloon"], + "ability": ["Mold Breaker"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Dragon", "Fairy"], + "moves": [["Earthquake"], ["Rapid Spin"], ["Iron Head"], ["Swords Dance"]] + }] + }, + "cobalion": { + "weight": 8, + "sets": [{ + "species": "Cobalion", + "weight": 50, + "item": ["Leftovers", "Rocky Helmet", "Shuca Berry"], + "ability": ["Justified"], + "evs": {"def": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Dragon", "Flying"], + "moves": [["Body Press"], ["Volt Switch"], ["Thunder Wave", "Taunt"], ["Stealth Rock"]] + }, { + "species": "Cobalion", + "weight": 50, + "item": ["Leftovers", "Rocky Helmet", "Shuca Berry"], + "ability": ["Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Dragon", "Flying"], + "moves": [["Close Combat"], ["Volt Switch"], ["Thunder Wave", "Taunt"], ["Stealth Rock"]] + }] + }, + "lokix": { + "weight": 8, + "sets": [{ + "species": "Lokix", + "weight": 70, + "item": ["Heavy-Duty Boots"], + "ability": ["Tinted Lens"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Bug"], + "moves": [["First Impression"], ["Knock Off"], ["U-turn"], ["Sucker Punch"]] + }, { + "species": "Lokix", + "weight": 30, + "item": ["Black Glasses"], + "ability": ["Tinted Lens"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Dark"], + "moves": [["First Impression", "Protect"], ["Knock Off"], ["Swords Dance"], ["Sucker Punch"]] + }] + }, + "weavile": { + "weight": 8, + "sets": [{ + "species": "Weavile", + "weight": 80, + "item": ["Heavy-Duty Boots"], + "ability": ["Pickpocket"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Dark"], + "moves": [["Swords Dance"], ["Triple Axel", "Icicle Crash"], ["Knock Off"], ["Ice Shard", "Low Kick"]] + }, { + "species": "Weavile", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Pickpocket"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ice"], + "moves": [["Swords Dance"], ["Triple Axel"], ["Knock Off"], ["Ice Shard"]] + }] + }, + "greninja": { + "weight": 5, + "sets": [{ + "species": "Greninja", + "gender": "M", + "weight": 67, + "item": ["Choice Specs"], + "ability": ["Protean"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water"], + "moves": [["Dark Pulse"], ["Surf", "Hydro Pump"], ["Ice Beam"], ["Sludge Wave", "Spikes"]] + }, { + "species": "Greninja", + "gender": "M", + "weight": 33, + "item": ["Choice Specs"], + "ability": ["Protean"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Water"], + "moves": [["Dark Pulse"], ["Surf", "Hydro Pump"], ["Ice Beam"], ["U-turn"]] + }] + }, + "greninjabond": { + "weight": 2, + "sets": [{ + "species": "Greninja-Bond", + "weight": 100, + "item": ["Life Orb"], + "ability": ["Battle Bond"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Stellar"], + "moves": [["Surf"], ["Dark Pulse"], ["Ice Beam", "Sludge Wave"], ["Protect", "Water Shuriken"]] + }] + }, + "heatran": { + "weight": 7, + "sets": [{ + "species": "Heatran", + "weight": 50, + "item": ["Air Balloon"], + "ability": ["Flame Body"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Magma Storm"], ["Earth Power"], ["Taunt"], ["Stealth Rock"]] + }, { + "species": "Heatran", + "weight": 50, + "item": ["Air Balloon"], + "ability": ["Flame Body"], + "evs": {"hp": 252, "def": 96, "spe": 160}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Ghost", "Water"], + "moves": [["Magma Storm", "Lava Plume"], ["Earth Power"], ["Taunt", "Protect"], ["Stealth Rock"]] + }] + }, + "hydrapple": { + "weight": 7, + "sets": [{ + "species": "Hydrapple", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 92, "spa": 164}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Steel", "Fairy", "Poison"], + "moves": [["Fickle Beam", "Draco Meteor"], ["Nasty Plot"], ["Giga Drain"], ["Earth Power"]] + }, { + "species": "Hydrapple", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Regenerator"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Steel", "Fairy"], + "moves": [["Fickle Beam", "Giga Drain"], ["Leaf Storm"], ["Draco Meteor"], ["Earth Power"]] + }] + }, + "rotomwash": { + "weight": 7, + "sets": [{ + "species": "Rotom-Wash", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 168, "spe": 88}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel"], + "moves": [["Hydro Pump"], ["Volt Switch"], ["Will-O-Wisp", "Thunder Wave"], ["Pain Split"]] + }, { + "species": "Rotom-Wash", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "spd": 168, "spe": 88}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Steel"], + "moves": [["Hydro Pump"], ["Volt Switch"], ["Will-O-Wisp", "Thunder Wave"], ["Pain Split"]] + }] + }, + "scizor": { + "weight": 7, + "sets": [{ + "species": "Scizor", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Technician"], + "evs": {"hp": 120, "atk": 252, "spe": 136}, + "nature": ["Adamant"], + "teraType": ["Steel", "Fire"], + "moves": [["Swords Dance"], ["Bullet Punch"], ["U-turn"], ["Knock Off"]] + }, { + "species": "Scizor", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Technician"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Steel", "Fire"], + "moves": [["Swords Dance"], ["Bullet Punch"], ["Close Combat"], ["Knock Off"]] + }, { + "species": "Scizor", + "weight": 30, + "item": ["Choice Band"], + "ability": ["Technician"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Steel"], + "moves": [["U-turn"], ["Bullet Punch"], ["Close Combat"], ["Knock Off"]] + }] + }, + "latios": { + "weight": 6, + "sets": [{ + "species": "Latios", + "weight": 20, + "item": ["Choice Specs"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Steel", "Dragon"], + "moves": [["Draco Meteor"], ["Luster Purge"], ["Flip Turn"], ["Surf", "Trick"]] + }, { + "species": "Latios", + "weight": 10, + "item": ["Choice Specs"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel", "Dragon"], + "moves": [["Draco Meteor"], ["Luster Purge"], ["Surf"], ["Trick"]] + }, { + "species": "Latios", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Dragon"], + "moves": [["Draco Meteor"], ["Luster Purge"], ["Flip Turn"], ["Trick"]] + }, { + "species": "Latios", + "weight": 30, + "item": ["Soul Dew"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Draco Meteor"], ["Luster Purge"], ["Flip Turn"], ["Recover"]] + }, { + "species": "Latios", + "weight": 5, + "item": ["Soul Dew"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Draco Meteor"], ["Luster Purge"], ["Calm Mind"], ["Recover"]] + }, { + "species": "Latios", + "weight": 5, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel", "Water"], + "moves": [["Draco Meteor"], ["Surf"], ["Calm Mind"], ["Recover"]] + }] + }, + "ogerponcornerstone": { + "weight": 6, + "sets": [{ + "species": "Ogerpon-Cornerstone", + "weight": 50, + "item": ["Cornerstone Mask"], + "ability": ["Sturdy"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Rock"], + "moves": [["Ivy Cudgel"], ["Swords Dance"], ["Power Whip", "Horn Leech"], ["Stomping Tantrum", "Spiky Shield"]] + }, { + "species": "Ogerpon-Cornerstone", + "weight": 50, + "item": ["Cornerstone Mask"], + "ability": ["Sturdy"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Rock"], + "moves": [["Ivy Cudgel"], ["Stomping Tantrum"], ["Power Whip"], ["U-turn", "Spiky Shield"]] + }] + }, + "quaquaval": { + "weight": 6, + "sets": [{ + "species": "Quaquaval", + "weight": 100, + "item": ["Life Orb", "Lum Berry"], + "ability": ["Moxie"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Electric", "Steel"], + "moves": [["Aqua Step"], ["Close Combat"], ["Swords Dance"], ["Knock Off", "Triple Axel"]] + }] + }, + "skeledirge": { + "weight": 6, + "sets": [{ + "species": "Skeledirge", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Unaware"], + "evs": {"hp": 252, "def": 96, "spd": 160}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Water"], + "moves": [["Torch Song"], ["Will-O-Wisp"], ["Hex"], ["Slack Off"]] + }] + }, + "slowking": { + "weight": 6, + "sets": [{ + "species": "Slowking", + "weight": 70, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0, "spe": 0}, + "nature": ["Relaxed"], + "teraType": ["Fairy", "Water"], + "moves": [["Scald"], ["Chilly Reception"], ["Thunder Wave", "Future Sight"], ["Slack Off"]] + }, { + "species": "Slowking", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 172, "spd": 84}, + "ivs": {"atk": 0, "spe": 0}, + "nature": ["Sassy"], + "teraType": ["Fairy", "Water"], + "moves": [["Scald"], ["Chilly Reception"], ["Thunder Wave", "Future Sight"], ["Slack Off"]] + }] + }, + "thundurustherian": { + "weight": 6, + "sets": [{ + "species": "Thundurus-Therian", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel", "Water"], + "moves": [["Volt Switch", "Nasty Plot"], ["Thunderbolt"], ["Sludge Bomb"], ["Focus Blast"]] + }] + }, + "tyranitar": { + "weight": 6, + "sets": [{ + "species": "Tyranitar", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Sand Stream"], + "evs": {"hp": 252, "spd": 212, "spe": 44}, + "nature": ["Careful"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Stone Edge"], ["Knock Off"], ["Thunder Wave"], ["Stealth Rock"]] + }, { + "species": "Tyranitar", + "weight": 50, + "item": ["Choice Band"], + "ability": ["Sand Stream"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Dark", "Rock"], + "moves": [["Stone Edge"], ["Knock Off"], ["Earthquake"], ["Ice Punch"]] + }] + }, + "zarude": { + "weight": 6, + "sets": [{ + "species": "Zarude", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Leaf Guard"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison"], + "moves": [["Power Whip"], ["Knock Off"], ["Swords Dance"], ["Jungle Healing"]] + }, { + "species": "Zarude", + "weight": 25, + "item": ["Choice Scarf"], + "ability": ["Leaf Guard"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Dark"], + "moves": [["Power Whip"], ["Knock Off"], ["U-turn"], ["Close Combat", "Jungle Healing"]] + }, { + "species": "Zarude", + "weight": 25, + "item": ["Choice Scarf"], + "ability": ["Leaf Guard"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Fighting"], + "moves": [["Power Whip"], ["Knock Off"], ["U-turn"], ["Close Combat"]] + }] + }, + "clodsire": { + "weight": 5, + "sets": [{ + "species": "Clodsire", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Absorb"], + "evs": {"hp": 248, "def": 176, "spd": 84}, + "nature": ["Careful"], + "teraType": ["Dark", "Ghost"], + "moves": [["Earthquake"], ["Recover"], ["Toxic"], ["Spikes", "Stealth Rock"]] + }] + }, + "gastrodon": { + "weight": 5, + "sets": [{ + "species": "Gastrodon", + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Storm Drain"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Poison"], + "moves": [["Earth Power"], ["Recover"], ["Ice Beam", "Sludge Bomb"], ["Spikes", "Stealth Rock"]] + }] + }, + "ogerpon": { + "weight": 5, + "sets": [{ + "species": "Ogerpon", + "wantsTera": true, + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Defiant"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Grass"], + "moves": [["Ivy Cudgel"], ["Knock Off"], ["U-turn"], ["Spikes", "Encore", "Stomping Tantrum"]] + }] + }, + "pecharunt": { + "weight": 5, + "sets": [{ + "species": "Pecharunt", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Poison Puppeteer"], + "evs": {"hp": 252, "def": 200, "spa": 4, "spd": 12, "spe": 40}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Malignant Chain"], ["Recover"], ["Hex"], ["Parting Shot"]] + }, { + "species": "Pecharunt", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Poison Puppeteer"], + "evs": {"hp": 252, "def": 200, "spa": 4, "spd": 12, "spe": 40}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy"], + "moves": [["Malignant Chain"], ["Recover"], ["Hex"], ["Parting Shot"]] + }, { + "species": "Pecharunt", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Poison Puppeteer"], + "evs": {"hp": 252, "spa": 88, "spd": 96, "spe": 72}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Malignant Chain"], ["Recover"], ["Hex", "Shadow Ball"], ["Nasty Plot"]] + }] + }, + "skarmory": { + "weight": 5, + "sets": [{ + "species": "Skarmory", + "weight": 50, + "item": ["Rocky Helmet"], + "ability": ["Sturdy"], + "evs": {"hp": 252, "def": 208, "spe": 48}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Dragon", "Water"], + "moves": [["Body Press"], ["Roost"], ["Spikes"], ["Whirlwind", "Iron Defense"]] + }, { + "species": "Skarmory", + "weight": 50, + "item": ["Rocky Helmet"], + "ability": ["Sturdy"], + "evs": {"hp": 252, "def": 200, "spe": 56}, + "nature": ["Impish"], + "teraType": ["Dragon", "Water"], + "moves": [["Body Press"], ["Roost"], ["Spikes"], ["Brave Bird"]] + }] + }, + "tinkaton": { + "weight": 5, + "sets": [{ + "species": "Tinkaton", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Mold Breaker"], + "evs": {"hp": 252, "def": 232, "spe": 24}, + "nature": ["Impish"], + "teraType": ["Flying", "Ghost", "Dark", "Dragon"], + "moves": [["Gigaton Hammer"], ["Encore"], ["Knock Off"], ["Stealth Rock", "Thunder Wave"]] + }, { + "species": "Tinkaton", + "weight": 50, + "item": ["Air Balloon"], + "ability": ["Pickpocket"], + "evs": {"hp": 252, "def": 232, "spe": 24}, + "nature": ["Impish"], + "teraType": ["Ghost", "Dark", "Dragon"], + "moves": [["Gigaton Hammer"], ["Encore"], ["Knock Off"], ["Stealth Rock", "Thunder Wave"]] + }] + }, + "bellibolt": { + "weight": 4, + "sets": [{ + "species": "Bellibolt", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Static"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Dragon"], + "moves": [["Volt Switch"], ["Muddy Water"], ["Slack Off"], ["Toxic"]] + }] + }, + "enamorustherian": { + "weight": 4, + "sets": [{ + "species": "Enamorus-Therian", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Overcoat"], + "evs": {"hp": 84, "spa": 252, "spe": 172}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Moonblast"], ["Earth Power"], ["Draining Kiss"], ["Mystical Fire", "Calm Mind"]] + }, { + "species": "Enamorus-Therian", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Overcoat"], + "evs": {"hp": 84, "spa": 252, "spe": 172}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Moonblast"], ["Earth Power"], ["Mystical Fire"], ["Calm Mind"]] + }] + }, + "gardevoir": { + "weight": 4, + "sets": [{ + "species": "Gardevoir", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Trace"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid", "Modest"], + "teraType": ["Fairy"], + "moves": [["Moonblast"], ["Psychic"], ["Focus Blast", "Trick"], ["Healing Wish"]] + }] + }, + "arcaninehisui": { + "weight": 4, + "sets": [{ + "species": "Arcanine-Hisui", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Rock Head"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Head Smash"], ["Flare Blitz"], ["Extreme Speed"], ["Stealth Rock", "Morning Sun"]] + }] + }, + "keldeo": { + "weight": 4, + "sets": [{ + "species": "Keldeo", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Justified"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Secret Sword"], ["Surf"], ["Calm Mind"], ["Substitute", "Taunt"]] + }, { + "species": "Keldeo", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Justified"], + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Water", "Fighting"], + "moves": [["Secret Sword"], ["Surf", "Hydro Pump"], ["Flip Turn"], ["Vacuum Wave"]] + }] + }, + "manaphy": { + "weight": 4, + "sets": [{ + "species": "Manaphy", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Hydration"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Tail Glow"], ["Scald"], ["Ice Beam"], ["Alluring Voice"]] + }] + }, + "polteageist": { + "weight": 4, + "sets": [{ + "species": "Polteageist", + "weight": 100, + "item": ["White Herb"], + "ability": ["Cursed Body"], + "evs": {"hp": 248, "def": 184, "spe": 76}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel"], + "moves": [["Shell Smash"], ["Shadow Ball"], ["Stored Power"], ["Strength Sap"]] + }] + }, + "revavroom": { + "weight": 4, + "sets": [{ + "species": "Revavroom", + "weight": 100, + "item": ["Air Balloon"], + "ability": ["Filter"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ground", "Fire"], + "moves": [["Shift Gear"], ["Temper Flare"], ["Gunk Shot"], ["High Horsepower"]] + }] + }, + "sandyshocks": { + "weight": 4, + "sets": [{ + "species": "Sandy Shocks", + "wantsTera": true, + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Protosynthesis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ice"], + "moves": [["Earth Power"], ["Volt Switch"], ["Tera Blast"], ["Spikes", "Stealth Rock"]] + }] + }, + "serperior": { + "weight": 4, + "sets": [{ + "species": "Serperior", + "wantsTera": true, + "weight": 100, + "item": ["Leftovers"], + "ability": ["Contrary"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Electric"], + "moves": [["Leaf Storm"], ["Glare"], ["Tera Blast"], ["Synthesis", "Dragon Pulse"]] + }] + }, + "toxapex": { + "weight": 4, + "sets": [{ + "species": "Toxapex", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots", "Rocky Helmet"], + "ability": ["Regenerator"], + "evs": {"hp": 248, "def": 152, "spd": 108}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Surf"], ["Toxic"], ["Haze"], ["Recover"]] + }, { + "species": "Toxapex", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots", "Rocky Helmet"], + "ability": ["Regenerator"], + "evs": {"hp": 248, "def": 152, "spd": 108}, + "nature": ["Impish"], + "teraType": ["Fairy"], + "moves": [["Liquidation"], ["Toxic"], ["Haze"], ["Recover"]] + }] + }, + "azumarill": { + "weight": 2, + "sets": [{ + "species": "Azumarill", + "weight": 50, + "item": ["Leftovers", "Choice Band"], + "ability": ["Huge Power"], + "evs": {"hp": 124, "atk": 252, "spe": 132}, + "nature": ["Adamant"], + "teraType": ["Water", "Steel"], + "moves": [["Aqua Jet"], ["Play Rough"], ["Liquidation"], ["Knock Off"]] + }, { + "species": "Azumarill", + "weight": 50, + "item": ["Leftovers", "Choice Band"], + "ability": ["Huge Power"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Water", "Steel"], + "moves": [["Aqua Jet"], ["Play Rough"], ["Liquidation"], ["Knock Off"]] + }] + }, + "chesnaught": { + "weight": 2, + "sets": [{ + "species": "Chesnaught", + "weight": 100, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Bulletproof"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Poison", "Ghost"], + "moves": [["Spikes"], ["Body Press"], ["Synthesis"], ["Knock Off", "Wood Hammer", "Stone Edge"]] + }] + }, + "comfey": { + "weight": 3, + "sets": [{ + "species": "Comfey", + "wantsTera": true, + "weight": 100, + "item": ["Life Orb"], + "ability": ["Triage"], + "evs": {"hp": 240, "spa": 252, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Calm Mind"], ["Taunt"], ["Draining Kiss"], ["Tera Blast"]] + }] + }, + "fezandipiti": { + "weight": 2, + "sets": [{ + "species": "Fezandipiti", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Toxic Chain"], + "evs": {"hp": 248, "def": 128, "spd": 16, "spe": 116}, + "nature": ["Calm"], + "teraType": ["Water"], + "moves": [["Moonblast"], ["U-turn"], ["Beat Up"], ["Roost"]] + }] + }, + "hippowdon": { + "weight": 2, + "sets": [{ + "species": "Hippowdon", + "weight": 100, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Sand Stream"], + "evs": {"hp": 252, "def": 208, "spd": 48}, + "nature": ["Impish"], + "teraType": ["Dragon"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Slack Off"], ["Stone Edge"]] + }] + }, + "hydreigon": { + "weight": 2, + "sets": [{ + "species": "Hydreigon", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison"], + "moves": [["Nasty Plot"], ["Dark Pulse"], ["Draco Meteor"], ["Substitute"]] + }, { + "species": "Hydreigon", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Modest", "Timid"], + "teraType": ["Dark"], + "moves": [["Fire Blast"], ["Dark Pulse"], ["Draco Meteor"], ["U-turn"]] + }] + }, + "mamoswine": { + "weight": 3, + "sets": [{ + "species": "Mamoswine", + "weight": 50, + "item": ["Never-Melt Ice"], + "ability": ["Thick Fat"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Grass"], + "moves": [["Earthquake"], ["Icicle Crash"], ["Ice Shard"], ["Trailblaze"]] + }, { + "species": "Mamoswine", + "weight": 50, + "item": ["Never-Melt Ice"], + "ability": ["Thick Fat"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ice"], + "moves": [["Earthquake"], ["Icicle Crash"], ["Ice Shard"], ["Knock Off"]] + }] + }, + "mandibuzz": { + "weight": 4, + "sets": [{ + "species": "Mandibuzz", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Overcoat"], + "evs": {"hp": 248, "def": 136, "spd": 108, "spe": 16}, + "nature": ["Impish"], + "teraType": ["Steel", "Fairy"], + "moves": [["Foul Play"], ["Roost"], ["U-turn"], ["Defog", "Toxic"]] + }, { + "species": "Mandibuzz", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Overcoat"], + "evs": {"hp": 248, "def": 136, "spd": 108, "spe": 16}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel", "Fairy"], + "moves": [["Foul Play"], ["Roost"], ["Toxic"], ["Defog"]] + }] + }, + "metagross": { + "weight": 3, + "sets": [{ + "species": "Metagross", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "atk": 160, "spe": 96}, + "nature": ["Adamant"], + "teraType": ["Dark"], + "moves": [["Heavy Slam"], ["Psychic Fangs"], ["Knock Off"], ["Stealth Rock", "Bullet Punch"]] + }, { + "species": "Metagross", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "atk": 160, "spe": 96}, + "nature": ["Adamant"], + "teraType": ["Water"], + "moves": [["Heavy Slam"], ["Psychic Fangs"], ["Earthquake"], ["Stealth Rock", "Bullet Punch"]] + }] + }, + "rhyperior": { + "weight": 3, + "sets": [{ + "species": "Rhyperior", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Solid Rock"], + "evs": {"hp": 252, "atk": 16, "spd": 240}, + "nature": ["Adamant"], + "teraType": ["Dragon"], + "moves": [["Earthquake"], ["Stone Edge"], ["Stealth Rock"], ["Megahorn"]] + }] + }, + "salamence": { + "weight": 2, + "sets": [{ + "species": "Salamence", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Moxie"], + "evs": {"hp": 96, "atk": 252, "spe": 160}, + "nature": ["Jolly"], + "teraType": ["Fire"], + "moves": [["Roost", "Temper Flare"], ["Outrage"], ["Earthquake"], ["Dragon Dance"]] + }, { + "species": "Salamence", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"hp": 160, "spa": 252, "spe": 96}, + "nature": ["Modest"], + "teraType": ["Fairy", "Water"], + "moves": [["Roost"], ["Draco Meteor"], ["Hurricane"], ["Earthquake"]] + }, { + "species": "Salamence", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"hp": 160, "spa": 252, "spe": 96}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy", "Water"], + "moves": [["Roost"], ["Draco Meteor"], ["Hurricane"], ["Flamethrower"]] + }] + }, + "sinistcha": { + "weight": 3, + "sets": [{ + "species": "Sinistcha", + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Heatproof"], + "evs": {"hp": 252, "def": 160, "spe": 96}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Poison"], + "moves": [["Calm Mind"], ["Matcha Gotcha"], ["Shadow Ball"], ["Strength Sap"]] + }] + }, + "volcanion": { + "weight": 2, + "sets": [{ + "species": "Volcanion", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Absorb"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Steam Eruption"], ["Flamethrower"], ["Sludge Bomb"], ["Taunt"]] + }, { + "species": "Volcanion", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Absorb"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Steam Eruption"], ["Flamethrower"], ["Sludge Bomb"], ["Earth Power"]] + }] + }, + "araquanid": { + "weight": 1, + "sets": [{ + "species": "Araquanid", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Bubble"], + "evs": {"hp": 252, "atk": 76, "def": 156, "spe": 24}, + "nature": ["Impish"], + "teraType": ["Ghost"], + "moves": [["Liquidation"], ["Leech Life"], ["Sticky Web"], ["Mirror Coat"]] + }] + }, + "donphan": { + "weight": 2, + "sets": [{ + "species": "Donphan", + "weight": 50, + "item": ["Heavy-Duty Boots", "Assault Vest"], + "ability": ["Sturdy"], + "evs": {"hp": 252, "atk": 104, "def": 132, "spe": 20}, + "nature": ["Adamant"], + "teraType": ["Dragon", "Grass", "Fairy"], + "moves": [["Earthquake"], ["Rapid Spin"], ["Ice Spinner", "Ice Shard"], ["Knock Off"]] + }, { + "species": "Donphan", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Sturdy"], + "evs": {"hp": 252, "atk": 104, "def": 132, "spe": 20}, + "nature": ["Adamant"], + "teraType": ["Dragon", "Grass", "Fairy", "Ghost"], + "moves": [["Earthquake"], ["Rapid Spin"], ["Stealth Rock"], ["Knock Off"]] + }] + }, + "conkeldurr": { + "weight": 1, + "sets": [{ + "species": "Conkeldurr", + "weight": 100, + "item": ["Flame Orb"], + "ability": ["Guts"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Normal"], + "moves": [["Close Combat"], ["Mach Punch"], ["Facade"], ["Knock Off"]] + }] + }, + "empoleon": { + "weight": 1, + "sets": [{ + "species": "Empoleon", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Competitive"], + "evs": {"hp": 252, "def": 40, "spd": 216}, + "nature": ["Sassy"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Surf"], ["Haze"], ["Flip Turn", "Knock Off"], ["Roost"]] + }] + }, + "zapdosgalar": { + "weight": 1, + "sets": [{ + "species": "Zapdos-Galar", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Defiant"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying"], + "moves": [["Close Combat"], ["Brave Bird"], ["Thunderous Kick", "Knock Off"], ["U-turn"]] + }] + }, + "haxorus": { + "weight": 1, + "sets": [{ + "species": "Haxorus", + "weight": 100, + "item": ["Choice Band"], + "ability": ["Mold Breaker"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Dragon"], + "moves": [["Close Combat", "Earthquake"], ["Outrage"], ["First Impression"], ["Poison Jab"]] + }] + }, + "jirachi": { + "weight": 1, + "sets": [{ + "species": "Jirachi", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Serene Grace"], + "evs": {"hp": 252, "atk": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Iron Head"], ["Wish"], ["Protect"], ["U-turn"]] + }] + }, + "slowbro": { + "weight": 1, + "sets": [{ + "species": "Slowbro", + "weight": 50, + "item": ["Heavy-Duty Boots", "Colbur Berry"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison"], + "moves": [["Scald"], ["Psychic Noise"], ["Slack Off"], ["Calm Mind"]] + }, { + "species": "Slowbro", + "weight": 50, + "item": ["Heavy-Duty Boots", "Colbur Berry"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fighting"], + "moves": [["Thunder Wave"], ["Scald"], ["Slack Off"], ["Body Press"]] + }] + }, + "krookodile": { + "weight": 1, + "sets": [{ + "species": "Krookodile", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison"], + "moves": [["Stealth Rock"], ["Knock Off"], ["Earthquake"], ["Gunk Shot"]] + }] + } + }, + "RU": { + "slowbro": { + "weight": 10, + "sets": [{ + "species": "Slowbro", + "weight": 50, + "item": ["Rocky Helmet", "Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison", "Fairy"], + "moves": [["Scald"], ["Slack Off"], ["Psychic Noise"], ["Calm Mind"]] + }, { + "species": "Slowbro", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison", "Fairy"], + "moves": [["Scald"], ["Slack Off"], ["Future Sight"], ["Thunder Wave"]] + }] + }, + "armarouge": { + "weight": 9, + "sets": [{ + "species": "Armarouge", + "weight": 85, + "item": ["Heavy-Duty Boots"], + "ability": ["Weak Armor"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass", "Fairy"], + "moves": [["Armor Cannon"], ["Psyshock"], ["Energy Ball"], ["Calm Mind"]] + }, { + "species": "Armarouge", + "weight": 15, + "item": ["Weakness Policy"], + "ability": ["Weak Armor"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Normal", "Ground"], + "moves": [["Armor Cannon"], ["Stored Power"], ["Energy Ball", "Calm Mind"], ["Endure"]] + }] + }, + "bisharp": { + "weight": 9, + "sets": [{ + "species": "Bisharp", + "weight": 100, + "item": ["Eviolite"], + "ability": ["Defiant"], + "evs": {"hp": 200, "atk": 252, "spe": 56}, + "nature": ["Adamant"], + "teraType": ["Flying", "Dark"], + "moves": [["Swords Dance"], ["Sucker Punch"], ["Iron Head"], ["Throat Chop"]] + }] + }, + "cyclizar": { + "weight": 9, + "sets": [{ + "species": "Cyclizar", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Regenerator"], + "evs": {"hp": 104, "spd": 152, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fairy", "Steel", "Ghost"], + "moves": [["Rapid Spin"], ["Knock Off"], ["U-turn"], ["Dragon Tail", "Facade"]] + }, { + "species": "Cyclizar", + "weight": 30, + "item": ["Assault Vest"], + "ability": ["Regenerator"], + "evs": {"hp": 104, "spd": 152, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fairy", "Steel", "Ghost"], + "moves": [["Rapid Spin"], ["Knock Off"], ["U-turn"], ["Draco Meteor"]] + }, { + "species": "Cyclizar", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost"], + "moves": [["Rapid Spin"], ["Knock Off"], ["U-turn"], ["Taunt", "Double-Edge"]] + }] + }, + "goodrahisui": { + "weight": 9, + "sets": [{ + "species": "Goodra-Hisui", + "weight": 100, + "item": ["Choice Specs"], + "ability": ["Gooey"], + "evs": {"hp": 120, "spa": 252, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ghost", "Dragon"], + "moves": [["Flash Cannon"], ["Draco Meteor"], ["Thunderbolt"], ["Flamethrower"]] + }] + }, + "jirachi": { + "weight": 9, + "sets": [{ + "species": "Jirachi", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Serene Grace"], + "evs": {"hp": 252, "spd": 32, "spe": 224}, + "nature": ["Jolly"], + "teraType": ["Water", "Steel", "Fairy"], + "moves": [["Iron Head"], ["Stealth Rock"], ["Body Slam"], ["U-turn", "Encore", "Wish"]] + }, { + "species": "Jirachi", + "weight": 25, + "item": ["Leftovers", "Expert Belt"], + "ability": ["Serene Grace"], + "evs": {"hp": 32, "spa": 252, "spe": 224}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Fairy"], + "moves": [["Calm Mind"], ["Psychic Noise"], ["Grass Knot"], ["Aura Sphere", "Thunder", "Shadow Ball"]] + }, { + "species": "Jirachi", + "weight": 5, + "item": ["Expert Belt"], + "ability": ["Serene Grace"], + "evs": {"hp": 32, "spa": 252, "spe": 224}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting"], + "moves": [["Calm Mind"], ["Psychic Noise"], ["Grass Knot"], ["Aura Sphere"]] + }, { + "species": "Jirachi", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Serene Grace"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Iron Head"], ["U-turn"], ["Trick"], ["Healing Wish"]] + }] + }, + "krookodile": { + "weight": 9, + "sets": [{ + "species": "Krookodile", + "weight": 40, + "item": ["Choice Band"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Poison"], + "moves": [["Earthquake"], ["Knock Off"], ["Gunk Shot"], ["Close Combat", "Crunch"]] + }, { + "species": "Krookodile", + "weight": 15, + "item": ["Leftovers"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison", "Ghost"], + "moves": [["Earthquake"], ["Knock Off"], ["Gunk Shot"], ["Close Combat", "Crunch"]] + }, { + "species": "Krookodile", + "weight": 15, + "item": ["Leftovers"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost"], + "moves": [["Earthquake"], ["Knock Off"], ["Taunt"], ["Close Combat", "Crunch"]] + }, { + "species": "Krookodile", + "weight": 25, + "item": ["Choice Scarf"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Poison"], + "moves": [["Earthquake"], ["Knock Off"], ["Gunk Shot"], ["Stone Edge", "Close Combat", "Stealth Rock"]] + }, { + "species": "Krookodile", + "weight": 5, + "item": ["Choice Scarf"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Poison"], + "moves": [["Earthquake"], ["Knock Off"], ["Stone Edge"], ["Close Combat", "Stealth Rock"]] + }] + }, + "slitherwing": { + "weight": 9, + "sets": [{ + "species": "Slither Wing", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Protosynthesis"], + "evs": {"hp": 252, "atk": 16, "def": 72, "spe": 168}, + "nature": ["Adamant"], + "teraType": ["Steel"], + "moves": [["U-turn"], ["Close Combat"], ["First Impression", "Will-O-Wisp"], ["Morning Sun"]] + }, { + "species": "Slither Wing", + "weight": 50, + "item": ["Choice Band"], + "ability": ["Protosynthesis"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Steel", "Bug"], + "moves": [["U-turn"], ["Close Combat"], ["First Impression"], ["Earthquake", "Heavy Slam"]] + }] + }, + "empoleon": { + "weight": 8, + "sets": [{ + "species": "Empoleon", + "weight": 30, + "item": ["Leftovers"], + "ability": ["Competitive"], + "evs": {"hp": 144, "spa": 228, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Surf"], ["Roost"], ["Ice Beam"], ["Grass Knot"]] + }, { + "species": "Empoleon", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Competitive"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Calm"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Surf"], ["Roost"], ["Flip Turn"], ["Knock Off", "Ice Beam"]] + }, { + "species": "Empoleon", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Competitive"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Surf"], ["Roost"], ["Stealth Rock"], ["Roar", "Ice Beam"]] + }, { + "species": "Empoleon", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Competitive"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Calm"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Surf"], ["Roost"], ["Stealth Rock"], ["Knock Off"]] + }] + }, + "fezandipiti": { + "weight": 8, + "sets": [{ + "species": "Fezandipiti", + "weight": 50, + "item": ["Heavy-Duty Boots", "Covert Cloak"], + "ability": ["Toxic Chain"], + "evs": {"hp": 252, "def": 56, "spe": 200}, + "nature": ["Timid"], + "teraType": ["Fairy", "Water"], + "moves": [["Moonblast"], ["Roost"], ["Calm Mind"], ["U-turn"]] + }, { + "species": "Fezandipiti", + "weight": 50, + "item": ["Heavy-Duty Boots", "Covert Cloak"], + "ability": ["Toxic Chain"], + "evs": {"hp": 252, "def": 56, "spe": 200}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Water"], + "moves": [["Moonblast"], ["Roost"], ["Calm Mind"], ["Taunt"]] + }] + }, + "hippowdon": { + "weight": 8, + "sets": [{ + "species": "Hippowdon", + "weight": 80, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Sand Stream"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Dragon", "Ghost", "Poison"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Slack Off"], ["Stone Edge", "Whirlwind"]] + }, { + "species": "Hippowdon", + "weight": 20, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Sand Stream"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Dragon", "Ghost", "Poison"], + "moves": [["Stone Edge"], ["Earthquake"], ["Slack Off"], ["Whirlwind"]] + }] + }, + "suicune": { + "weight": 8, + "sets": [{ + "species": "Suicune", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Pressure"], + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Dark", "Fairy"], + "moves": [["Substitute"], ["Calm Mind"], ["Scald"], ["Protect", "Ice Beam", "Shadow Ball"]] + }] + }, + "volcanion": { + "weight": 8, + "sets": [{ + "species": "Volcanion", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Absorb"], + "evs": {"hp": 120, "spa": 252, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy", "Ghost", "Dark"], + "moves": [["Steam Eruption"], ["Flamethrower"], ["Body Press"], ["Earth Power"]] + }, { + "species": "Volcanion", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Absorb"], + "evs": {"hp": 120, "spa": 252, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy", "Ghost", "Dark"], + "moves": [["Steam Eruption"], ["Flamethrower"], ["Taunt"], ["Body Press", "Earth Power"]] + }] + }, + "zapdosgalar": { + "weight": 8, + "sets": [{ + "species": "Zapdos-Galar", + "weight": 100, + "item": ["Choice Scarf", "Choice Band"], + "ability": ["Defiant"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying", "Steel", "Dark"], + "moves": [["Close Combat"], ["Brave Bird"], ["Knock Off"], ["U-turn"]] + }] + }, + "basculegionf": { + "weight": 7, + "sets": [{ + "species": "Basculegion-F", + "weight": 45, + "item": ["Choice Scarf"], + "ability": ["Adaptability"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ghost", "Water"], + "moves": [["Surf"], ["Shadow Ball"], ["Ice Beam"], ["Flip Turn"]] + }, { + "species": "Basculegion-F", + "weight": 30, + "item": ["Choice Specs"], + "ability": ["Adaptability"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ghost", "Water"], + "moves": [["Surf"], ["Shadow Ball"], ["Ice Beam"], ["Flip Turn"]] + }, { + "species": "Basculegion-F", + "weight": 25, + "item": ["Weakness Policy", "Life Orb"], + "ability": ["Adaptability"], + "evs": {"hp": 108, "def": 52, "spa": 252, "spd": 24, "spe": 72}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ghost", "Water"], + "moves": [["Surf"], ["Shadow Ball"], ["Ice Beam"], ["Agility"]] + }] + }, + "flygon": { + "weight": 6, + "sets": [{ + "species": "Flygon", + "weight": 55, + "item": ["Loaded Dice"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Fairy", "Steel"], + "moves": [["Stealth Rock"], ["Scale Shot"], ["Earthquake"], ["U-turn", "Stone Edge"]] + }, { + "species": "Flygon", + "weight": 20, + "item": ["Loaded Dice"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Dragon Dance"], ["Scale Shot"], ["Earthquake"], ["Stone Edge"]] + }, { + "species": "Flygon", + "weight": 5, + "item": ["Loaded Dice"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fire"], + "moves": [["Dragon Dance"], ["Scale Shot"], ["Earthquake"], ["Fire Punch"]] + }, { + "species": "Flygon", + "weight": 15, + "item": ["Choice Band"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Bug"], + "moves": [["Outrage", "Dragon Claw", "Stone Edge"], ["Earthquake"], ["First Impression"], ["U-turn"]] + }, { + "species": "Flygon", + "weight": 5, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Dragon"], + "moves": [["Outrage"], ["U-turn"], ["Earthquake"], ["Stone Edge"]] + }] + }, + "gardevoir": { + "weight": 7, + "sets": [{ + "species": "Gardevoir", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Trace"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Moonblast"], ["Psychic"], ["Trick"], ["Healing Wish"]] + }] + }, + "gengar": { + "weight": 7, + "sets": [{ + "species": "Gengar", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Cursed Body"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Dark"], + "moves": [["Shadow Ball"], ["Sludge Wave"], ["Trick"], ["Toxic Spikes", "Focus Blast", "Thunder Wave", "Destiny Bond"]] + }, { + "species": "Gengar", + "weight": 25, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Cursed Body"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Dark"], + "moves": [["Hex"], ["Sludge Bomb"], ["Will-O-Wisp"], ["Toxic Spikes", "Focus Blast"]] + }, { + "species": "Gengar", + "weight": 15, + "item": ["Air Balloon"], + "ability": ["Cursed Body"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting"], + "moves": [["Shadow Ball"], ["Sludge Wave"], ["Nasty Plot"], ["Focus Blast"]] + }, { + "species": "Gengar", + "weight": 10, + "item": ["Air Balloon"], + "ability": ["Cursed Body"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Shadow Ball"], ["Sludge Wave"], ["Nasty Plot"], ["Encore"]] + }] + }, + "magnezone": { + "weight": 7, + "sets": [{ + "species": "Magnezone", + "wantsTera": true, + "weight": 25, + "item": ["Choice Specs"], + "ability": ["Analytic"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Grass", "Water"], + "moves": [["Thunderbolt"], ["Flash Cannon"], ["Volt Switch"], ["Tera Blast"]] + }, { + "species": "Magnezone", + "wantsTera": true, + "weight": 25, + "item": ["Choice Specs"], + "ability": ["Magnet Pull"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Thunderbolt"], ["Flash Cannon"], ["Volt Switch"], ["Tera Blast"]] + }, { + "species": "Magnezone", + "wantsTera": true, + "weight": 25, + "item": ["Assault Vest"], + "ability": ["Analytic"], + "evs": {"hp": 88, "spa": 208, "spd": 76, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Discharge"], ["Flash Cannon"], ["Volt Switch"], ["Tera Blast"]] + }, { + "species": "Magnezone", + "weight": 25, + "item": ["Assault Vest"], + "ability": ["Analytic"], + "evs": {"hp": 88, "spa": 208, "spd": 76, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Flying", "Water"], + "moves": [["Discharge"], ["Flash Cannon"], ["Volt Switch"], ["Body Press", "Mirror Coat"]] + }] + }, + "maushold": { + "weight": 4, + "sets": [{ + "species": "Maushold", + "weight": 100, + "item": ["Wide Lens"], + "ability": ["Technician"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Normal"], + "moves": [["Tidy Up"], ["Population Bomb"], ["Bite", "Bullet Seed"], ["Encore"]] + }] + }, + "mew": { + "weight": 7, + "sets": [{ + "species": "Mew", + "weight": 100, + "item": ["Life Orb"], + "ability": ["Synchronize"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Nasty Plot"], ["Psyshock"], ["Earth Power"], ["Draining Kiss"]] + }] + }, + "mimikyu": { + "weight": 4, + "sets": [{ + "species": "Mimikyu", + "weight": 100, + "item": ["Life Orb", "Red Card"], + "ability": ["Disguise"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost"], + "moves": [["Swords Dance"], ["Shadow Sneak"], ["Play Rough"], ["Shadow Claw"]] + }] + }, + "noivern": { + "weight": 7, + "sets": [{ + "species": "Noivern", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Infiltrator"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fire"], + "moves": [["Roost"], ["U-turn"], ["Draco Meteor"], ["Flamethrower"]] + }, { + "species": "Noivern", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Infiltrator"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fire"], + "moves": [["Roost"], ["Defog"], ["Draco Meteor"], ["Flamethrower"]] + }, { + "species": "Noivern", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Infiltrator"], + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Roost"], ["Defog"], ["Draco Meteor", "Psychic Noise"], ["Super Fang"]] + }] + }, + "registeel": { + "weight": 6, + "sets": [{ + "species": "Registeel", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "def": 180, "spd": 76}, + "nature": ["Impish"], + "teraType": ["Ghost"], + "moves": [["Stealth Rock"], ["Heavy Slam"], ["Body Press"], ["Iron Defense"]] + }] + }, + "reuniclus": { + "weight": 7, + "sets": [{ + "species": "Reuniclus", + "weight": 50, + "item": ["Leftovers", "Rocky Helmet"], + "ability": ["Magic Guard"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Fairy"], + "moves": [["Psychic Noise"], ["Calm Mind"], ["Focus Blast", "Shadow Ball"], ["Recover"]] + }, { + "species": "Reuniclus", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Fairy"], + "moves": [["Psychic Noise"], ["Thunder Wave"], ["Focus Blast"], ["Recover"]] + }, { + "species": "Reuniclus", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "nature": ["Bold"], + "teraType": ["Water", "Fairy"], + "moves": [["Psychic Noise"], ["Thunder Wave"], ["Knock Off"], ["Recover"]] + }] + }, + "revavroom": { + "weight": 4, + "sets": [{ + "species": "Revavroom", + "weight": 100, + "item": ["Air Balloon"], + "ability": ["Filter"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ground"], + "moves": [["Shift Gear"], ["Iron Head"], ["Gunk Shot"], ["High Horsepower"]] + }] + }, + "salamence": { + "weight": 7, + "sets": [{ + "species": "Salamence", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel", "Water"], + "moves": [["Draco Meteor"], ["Hurricane"], ["Flamethrower"], ["Roost"]] + }, { + "species": "Salamence", + "weight": 25, + "item": ["Heavy-Duty Boots", "Life Orb"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Ground"], + "moves": [["Dragon Claw"], ["Dual Wingbeat", "Roost"], ["Earthquake"], ["Dragon Dance"]] + }, { + "species": "Salamence", + "weight": 25, + "item": ["Heavy-Duty Boots", "Lum Berry"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Ground"], + "moves": [["Outrage"], ["Dual Wingbeat", "Roost"], ["Earthquake"], ["Dragon Dance"]] + }] + }, + "terrakion": { + "weight": 7, + "sets": [{ + "species": "Terrakion", + "weight": 25, + "item": ["Choice Band"], + "ability": ["Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Rock"], + "moves": [["Close Combat"], ["Stone Edge"], ["Earthquake"], ["Quick Attack"]] + }, { + "species": "Terrakion", + "weight": 25, + "item": ["Choice Band"], + "ability": ["Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost"], + "moves": [["Close Combat"], ["Stone Edge"], ["Earthquake"], ["Tera Blast"]] + }, { + "species": "Terrakion", + "weight": 20, + "item": ["Air Balloon"], + "ability": ["Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying"], + "moves": [["Close Combat"], ["Stone Edge"], ["Earthquake", "Taunt"], ["Swords Dance"]] + }, { + "species": "Terrakion", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying"], + "moves": [["Close Combat"], ["Stone Edge"], ["Earthquake", "Substitute"], ["Swords Dance"]] + }, { + "species": "Terrakion", + "weight": 10, + "item": ["Leftovers"], + "ability": ["Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Rock", "Ground"], + "moves": [["Close Combat"], ["Stone Edge"], ["Earthquake"], ["Rock Slide", "Stealth Rock"]] + }] + }, + "umbreon": { + "weight": 7, + "sets": [{ + "species": "Umbreon", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Synchronize", "Inner Focus"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Poison", "Ghost"], + "moves": [["Foul Play"], ["Toxic"], ["Wish"], ["Protect"]] + }, { + "species": "Umbreon", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Synchronize", "Inner Focus"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Poison", "Ghost"], + "moves": [["Foul Play"], ["Toxic"], ["Wish"], ["Moonlight"]] + }] + }, + "weezinggalar": { + "weight": 7, + "sets": [{ + "species": "Weezing-Galar", + "weight": 90, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 120, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel", "Ghost", "Water"], + "moves": [["Strange Steam"], ["Pain Split"], ["Will-O-Wisp"], ["Defog", "Flamethrower", "Taunt"]] + }, { + "species": "Weezing-Galar", + "weight": 10, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Neutralizing Gas"], + "evs": {"hp": 252, "def": 120, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost", "Water"], + "moves": [["Strange Steam"], ["Pain Split"], ["Will-O-Wisp"], ["Defog", "Flamethrower", "Taunt"]] + }] + }, + "zoroarkhisui": { + "weight": 7, + "sets": [{ + "species": "Zoroark-Hisui", + "weight": 20, + "item": ["Choice Specs"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Shadow Ball"], ["Tera Blast"], ["Flamethrower"], ["Trick", "Grass Knot"]] + }, { + "species": "Zoroark-Hisui", + "weight": 10, + "item": ["Choice Specs"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Shadow Ball"], ["Tera Blast"], ["Flamethrower"], ["U-turn"]] + }, { + "species": "Zoroark-Hisui", + "weight": 20, + "item": ["Choice Specs"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Shadow Ball"], ["Hyper Voice"], ["Flamethrower"], ["Trick", "Grass Knot"]] + }, { + "species": "Zoroark-Hisui", + "weight": 10, + "item": ["Choice Specs"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Shadow Ball"], ["Hyper Voice"], ["Flamethrower"], ["U-turn"]] + }, { + "species": "Zoroark-Hisui", + "weight": 20, + "item": ["Choice Scarf"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Shadow Ball"], ["Hyper Voice"], ["Flamethrower"], ["Trick"]] + }, { + "species": "Zoroark-Hisui", + "weight": 20, + "item": ["Choice Scarf"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Shadow Ball"], ["Hyper Voice"], ["U-turn"], ["Trick"]] + }] + }, + "amoonguss": { + "weight": 5, + "sets": [{ + "species": "Amoonguss", + "weight": 100, + "item": ["Rocky Helmet", "Heavy-Duty Boots", "Leftovers"], + "ability": ["Regenerator"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Water", "Steel"], + "moves": [["Stun Spore"], ["Giga Drain"], ["Sludge Bomb"], ["Foul Play", "Toxic"]] + }] + }, + "conkeldurr": { + "weight": 5, + "sets": [{ + "species": "Conkeldurr", + "weight": 90, + "item": ["Flame Orb"], + "ability": ["Guts"], + "evs": {"hp": 92, "atk": 252, "spe": 164}, + "nature": ["Adamant"], + "teraType": ["Steel", "Normal"], + "moves": [["Facade"], ["Close Combat", "Drain Punch"], ["Knock Off"], ["Mach Punch"]] + }, { + "species": "Conkeldurr", + "weight": 10, + "item": ["Flame Orb"], + "ability": ["Guts"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Steel", "Normal"], + "moves": [["Facade"], ["Close Combat", "Drain Punch"], ["Knock Off"], ["Mach Punch"]] + }] + }, + "feraligatr": { + "weight": 4, + "sets": [{ + "species": "Feraligatr", + "weight": 70, + "item": ["Life Orb"], + "ability": ["Sheer Force"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Dragon Dance"], ["Ice Punch"], ["Liquidation"], ["Crunch"]] + }, { + "species": "Feraligatr", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Sheer Force"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Dark"], + "moves": [["Swords Dance"], ["Aqua Jet"], ["Liquidation", "Ice Punch"], ["Crunch"]] + }] + }, + "gligar": { + "weight": 4, + "sets": [{ + "species": "Gligar", + "weight": 100, + "item": ["Eviolite"], + "ability": ["Immunity"], + "evs": {"hp": 252, "def": 204, "spd": 36, "spe": 16}, + "nature": ["Impish"], + "teraType": ["Water"], + "moves": [["Spikes", "Stealth Rock"], ["Earthquake"], ["Toxic"], ["U-turn", "Knock Off"]] + }] + }, + "gyarados": { + "weight": 4, + "sets": [{ + "species": "Gyarados", + "wantsTera": true, + "weight": 70, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Flying"], + "moves": [["Dragon Dance"], ["Waterfall"], ["Earthquake"], ["Tera Blast"]] + }, { + "species": "Gyarados", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground"], + "moves": [["Dragon Dance"], ["Waterfall"], ["Earthquake"], ["Ice Fang"]] + }, { + "species": "Gyarados", + "weight": 20, + "item": ["Covert Cloak"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground"], + "moves": [["Dragon Dance"], ["Waterfall"], ["Earthquake"], ["Taunt"]] + }] + }, + "mienshao": { + "weight": 4, + "sets": [{ + "species": "Mienshao", + "weight": 50, + "item": ["Life Orb"], + "ability": ["Regenerator"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Steel"], + "moves": [["Close Combat"], ["Knock Off"], ["U-turn"], ["Triple Axel", "Ice Spinner"]] + }, { + "species": "Mienshao", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Regenerator"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Fighting"], + "moves": [["Close Combat"], ["Knock Off"], ["U-turn"], ["Ice Spinner", "Stone Edge"]] + }] + }, + "necrozma": { + "weight": 4, + "sets": [{ + "species": "Necrozma", + "weight": 25, + "item": ["Lum Berry"], + "ability": ["Prism Armor"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fairy", "Electric"], + "moves": [["Photon Geyser"], ["Earthquake"], ["Dragon Dance"], ["Knock Off", "X-Scissor"]] + }, { + "species": "Necrozma", + "weight": 25, + "item": ["Weakness Policy"], + "ability": ["Prism Armor"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fire"], + "moves": [["Photon Geyser"], ["Earthquake"], ["Dragon Dance"], ["Knock Off", "X-Scissor"]] + }, { + "species": "Necrozma", + "weight": 50, + "item": ["Power Herb"], + "ability": ["Prism Armor"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ghost"], + "moves": [["Photon Geyser"], ["Earth Power"], ["Meteor Beam"], ["Stealth Rock"]] + }] + }, + "ninetalesalola": { + "weight": 4, + "sets": [{ + "species": "Ninetales-Alola", + "wantsTera": true, + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Snow Warning"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Nasty Plot"], ["Freeze-Dry", "Blizzard"], ["Moonblast"], ["Tera Blast"]] + }] + }, + "slowbrogalar": { + "weight": 3, + "sets": [{ + "species": "Slowbro-Galar", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Psyshock"], ["Flamethrower"], ["Slack Off"], ["Toxic"]] + }, { + "species": "Slowbro-Galar", + "weight": 30, + "item": ["Colbur Berry"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost"], + "moves": [["Psyshock"], ["Flamethrower"], ["Slack Off"], ["Toxic"]] + }, { + "species": "Slowbro-Galar", + "weight": 40, + "item": ["Heavy-Duty Boots", "Covert Cloak"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Sludge Bomb"], ["Flamethrower"], ["Slack Off"], ["Calm Mind"]] + }] + }, + "talonflame": { + "weight": 1, + "sets": [{ + "species": "Talonflame", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Flame Body"], + "evs": {"hp": 248, "def": 28, "spe": 232}, + "nature": ["Jolly"], + "teraType": ["Dragon", "Ghost"], + "moves": [["Brave Bird"], ["Defog", "U-turn"], ["Will-O-Wisp"], ["Roost"]] + }] + }, + "vaporeon": { + "weight": 4, + "sets": [{ + "species": "Vaporeon", + "weight": 75, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Water Absorb"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison", "Fairy"], + "moves": [["Scald"], ["Protect"], ["Wish"], ["Haze", "Calm Mind", "Ice Beam"]] + }, { + "species": "Vaporeon", + "weight": 25, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Water Absorb"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Bold"], + "teraType": ["Poison", "Fairy"], + "moves": [["Scald"], ["Protect"], ["Wish"], ["Flip Turn"]] + }] + }, + "wochien": { + "weight": 4, + "sets": [{ + "species": "Wo-Chien", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Tablets of Ruin"], + "evs": {"hp": 252, "def": 200, "spe": 56}, + "nature": ["Impish"], + "teraType": ["Poison", "Ghost"], + "moves": [["Knock Off"], ["Protect"], ["Leech Seed"], ["Foul Play", "Ruination"]] + }, { + "species": "Wo-Chien", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Tablets of Ruin"], + "evs": {"hp": 252, "spd": 200, "spe": 56}, + "nature": ["Careful"], + "teraType": ["Poison", "Ghost"], + "moves": [["Knock Off"], ["Protect"], ["Leech Seed"], ["Foul Play", "Ruination"]] + }] + }, + "azelf": { + "weight": 4, + "sets": [{ + "species": "Azelf", + "weight": 60, + "item": ["Expert Belt"], + "ability": ["Levitate"], + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "nature": ["Naive"], + "teraType": ["Steel"], + "moves": [["Psychic"], ["Flamethrower"], ["U-turn"], ["Energy Ball"]] + }, { + "species": "Azelf", + "weight": 10, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Fire"], + "moves": [["Psyshock"], ["Flamethrower"], ["Dazzling Gleam"], ["Trick"]] + }, { + "species": "Azelf", + "weight": 10, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fairy", "Fire"], + "moves": [["Psyshock"], ["Flamethrower"], ["Dazzling Gleam"], ["U-turn"]] + }, { + "species": "Azelf", + "weight": 10, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Psyshock"], ["Shadow Ball"], ["Dazzling Gleam"], ["Trick"]] + }, { + "species": "Azelf", + "weight": 10, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Psyshock"], ["Shadow Ball"], ["Dazzling Gleam"], ["U-turn"]] + }] + }, + "crawdaunt": { + "weight": 4, + "sets": [{ + "species": "Crawdaunt", + "weight": 50, + "item": ["Life Orb"], + "ability": ["Adaptability"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Water"], + "moves": [["Crabhammer"], ["Knock Off"], ["Aqua Jet"], ["Swords Dance"]] + }, { + "species": "Crawdaunt", + "weight": 50, + "item": ["Choice Band"], + "ability": ["Adaptability"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Fighting"], + "moves": [["Crabhammer"], ["Knock Off"], ["Aqua Jet"], ["Close Combat"]] + }] + }, + "chesnaught": { + "weight": 4, + "sets": [{ + "species": "Chesnaught", + "weight": 100, + "item": ["Rocky Helmet"], + "ability": ["Bulletproof"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Steel"], + "moves": [["Spikes"], ["Knock Off"], ["Synthesis"], ["Body Press"]] + }] + }, + "cresselia": { + "weight": 3, + "sets": [{ + "species": "Cresselia", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 236, "spe": 20}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison"], + "moves": [["Calm Mind"], ["Moonblast"], ["Stored Power"], ["Moonlight"]] + }] + }, + "entei": { + "weight": 4, + "sets": [{ + "species": "Entei", + "weight": 100, + "item": ["Choice Band"], + "ability": ["Inner Focus"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal", "Dark"], + "moves": [["Extreme Speed"], ["Sacred Fire"], ["Crunch"], ["Stone Edge", "Stomping Tantrum"]] + }] + }, + "gastrodon": { + "weight": 3, + "sets": [{ + "species": "Gastrodon", + "weight": 100, + "item": ["Rocky Helmet", "Heavy-Duty Boots"], + "ability": ["Sticky Hold"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Relaxed"], + "teraType": ["Ghost", "Poison"], + "moves": [["Spikes"], ["Earthquake"], ["Ice Beam"], ["Recover"]] + }] + }, + "kleavor": { + "weight": 3, + "sets": [{ + "species": "Kleavor", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Sharpness"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting"], + "moves": [["Stone Axe"], ["U-turn"], ["Close Combat"], ["X-Scissor"]] + }] + }, + "klefki": { + "weight": 3, + "sets": [{ + "species": "Klefki", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Prankster"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Impish"], + "teraType": ["Ghost", "Water"], + "moves": [["Thunder Wave"], ["Foul Play", "Magnet Rise"], ["Spikes"], ["Play Rough"]] + }, { + "species": "Klefki", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Prankster"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost", "Water"], + "moves": [["Thunder Wave"], ["Foul Play", "Magnet Rise"], ["Spikes"], ["Dazzling Gleam"]] + }] + }, + "lilliganthisui": { + "weight": 3, + "sets": [{ + "species": "Lilligant-Hisui", + "wantsTera": true, + "weight": 50, + "item": ["Wide Lens"], + "ability": ["Hustle"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Psychic"], + "moves": [["Close Combat"], ["Leaf Blade"], ["Victory Dance"], ["Tera Blast"]] + }, { + "species": "Lilligant-Hisui", + "weight": 50, + "item": ["Wide Lens"], + "ability": ["Hustle"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ice", "Fighting"], + "moves": [["Close Combat"], ["Leaf Blade"], ["Victory Dance"], ["Ice Spinner"]] + }] + }, + "lycanrocdusk": { + "weight": 3, + "sets": [{ + "species": "Lycanroc-Dusk", + "weight": 50, + "item": ["Choice Band", "Life Orb"], + "ability": ["Tough Claws"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting", "Dark"], + "moves": [["Close Combat"], ["Accelerock"], ["Crunch"], ["Psychic Fangs", "Stone Edge"]] + }, { + "species": "Lycanroc-Dusk", + "weight": 25, + "item": ["Life Orb"], + "ability": ["Tough Claws"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting"], + "moves": [["Close Combat"], ["Swords Dance"], ["Stone Edge"], ["Accelerock"]] + }, { + "species": "Lycanroc-Dusk", + "weight": 25, + "item": ["Life Orb"], + "ability": ["Tough Claws"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Close Combat"], ["Swords Dance"], ["Stone Edge"], ["Sucker Punch"]] + }] + }, + "mukalola": { + "weight": 3, + "sets": [{ + "species": "Muk-Alola", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Poison Touch"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Water", "Fairy", "Steel", "Flying"], + "moves": [["Poison Jab"], ["Knock Off"], ["Rest"], ["Sleep Talk"]] + }] + }, + "rotomheat": { + "weight": 3, + "sets": [{ + "species": "Rotom-Heat", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Levitate"], + "evs": {"hp": 248, "spa": 4, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Fairy", "Steel"], + "moves": [["Overheat"], ["Volt Switch", "Thunderbolt"], ["Nasty Plot"], ["Will-O-Wisp"]] + }, { + "species": "Rotom-Heat", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Fairy", "Steel"], + "moves": [["Overheat"], ["Volt Switch"], ["Trick"], ["Will-O-Wisp", "Thunderbolt"]] + }] + }, + "bellibolt": { + "weight": 3, + "sets": [{ + "species": "Bellibolt", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Static"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Volt Switch"], ["Slack Off"], ["Muddy Water"], ["Toxic"]] + }] + }, + "breloom": { + "weight": 3, + "sets": [{ + "species": "Breloom", + "weight": 50, + "item": ["Choice Band"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Fighting"], + "moves": [["Mach Punch"], ["Bullet Seed"], ["Close Combat"], ["Rock Tomb", "Bulldoze"]] + }, { + "species": "Breloom", + "weight": 50, + "item": ["Loaded Dice", "Life Orb"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Fighting", "Fire"], + "moves": [["Mach Punch"], ["Bullet Seed"], ["Swords Dance"], ["Rock Tomb", "Bulldoze"]] + }] + }, + "chansey": { + "weight": 2, + "sets": [{ + "species": "Chansey", + "weight": 100, + "item": ["Eviolite"], + "ability": ["Natural Cure"], + "evs": {"hp": 4, "def": 252, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost"], + "moves": [["Seismic Toss"], ["Soft-Boiled"], ["Heal Bell"], ["Stealth Rock"]] + }] + }, + "gallade": { + "weight": 3, + "sets": [{ + "species": "Gallade", + "weight": 100, + "item": ["Lum Berry"], + "ability": ["Sharpness"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Dark"], + "moves": [["Night Slash"], ["Agility"], ["Sacred Sword"], ["Psycho Cut"]] + }] + }, + "infernape": { + "weight": 3, + "sets": [{ + "species": "Infernape", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Blaze"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting"], + "moves": [["U-turn"], ["Switcheroo"], ["Close Combat"], ["Flare Blitz"]] + }, { + "species": "Infernape", + "weight": 50, + "item": ["Air Balloon", "Expert Belt"], + "ability": ["Blaze"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting", "Grass"], + "moves": [["Nasty Plot"], ["Vacuum Wave"], ["Fire Blast"], ["Grass Knot"]] + }] + }, + "kilowattrel": { + "weight": 3, + "sets": [{ + "species": "Kilowattrel", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Electric", "Steel"], + "moves": [["U-turn"], ["Thunderbolt"], ["Hurricane"], ["Roost"]] + }, { + "species": "Kilowattrel", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Electric", "Steel"], + "moves": [["Volt Switch"], ["Thunderbolt"], ["Hurricane"], ["Roost"]] + }] + }, + "oricoriopompom": { + "weight": 3, + "sets": [{ + "species": "Oricorio-Pom-Pom", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Dancer"], + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground", "Water"], + "moves": [["Quiver Dance"], ["Revelation Dance"], ["Hurricane", "Taunt"], ["Roost"]] + }] + }, + "palossand": { + "weight": 3, + "sets": [{ + "species": "Palossand", + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Water Compaction"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Water", "Poison"], + "moves": [["Stealth Rock"], ["Scorching Sands"], ["Shadow Ball"], ["Shore Up"]] + }] + }, + "porygonz": { + "weight": 3, + "sets": [{ + "species": "Porygon-Z", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Agility"], ["Tera Blast"], ["Ice Beam"], ["Thunderbolt"]] + }] + }, + "quagsire": { + "weight": 3, + "sets": [{ + "species": "Quagsire", + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers", "Rocky Helmet"], + "ability": ["Unaware", "Water Absorb"], + "evs": {"hp": 252, "atk": 4, "def": 252}, + "nature": ["Impish"], + "teraType": ["Poison"], + "moves": [["Toxic"], ["Earthquake"], ["Recover"], ["Spikes", "Stealth Rock"]] + }] + }, + "raikou": { + "weight": 3, + "sets": [{ + "species": "Raikou", + "weight": 30, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Flying"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Scald"], ["Aura Sphere", "Volt Switch"]] + }, { + "species": "Raikou", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Flying"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Scald"], ["Substitute"]] + }, { + "species": "Raikou", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Fairy", "Fighting"], + "moves": [["Volt Switch"], ["Thunderbolt"], ["Scald"], ["Aura Sphere"]] + }] + }, + "regidrago": { + "weight": 3, + "sets": [{ + "species": "Regidrago", + "wantsTera": true, + "weight": 40, + "item": ["Choice Specs"], + "ability": ["Dragon's Maw"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid", "Modest"], + "teraType": ["Steel"], + "moves": [["Dragon Energy"], ["Draco Meteor"], ["Earth Power"], ["Tera Blast"]] + }, { + "species": "Regidrago", + "wantsTera": true, + "weight": 30, + "item": ["Loaded Dice"], + "ability": ["Dragon's Maw"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Scale Shot"], ["Dragon Dance"], ["Earthquake"], ["Tera Blast"]] + }, { + "species": "Regidrago", + "wantsTera": true, + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Dragon's Maw"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Dragon Energy"], ["Draco Meteor"], ["Earth Power"], ["Tera Blast"]] + }] + }, + "rotommow": { + "weight": 3, + "sets": [{ + "species": "Rotom-Mow", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Nasty Plot"], ["Leaf Storm"], ["Discharge"], ["Pain Split"]] + }] + }, + "swampert": { + "weight": 3, + "sets": [{ + "species": "Swampert", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Torrent"], + "evs": {"hp": 252, "atk": 4, "def": 252}, + "nature": ["Impish"], + "teraType": ["Poison"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Knock Off", "Roar"], ["Flip Turn"]] + }, { + "species": "Swampert", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Torrent"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Relaxed"], + "teraType": ["Poison"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Knock Off", "Roar"], ["Surf"]] + }] + }, + "toxtricity": { + "weight": 3, + "sets": [{ + "species": "Toxtricity", + "weight": 100, + "item": ["Choice Specs"], + "ability": ["Punk Rock"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Normal"], + "moves": [["Overdrive"], ["Boomburst"], ["Volt Switch"], ["Sludge Bomb", "Snarl"]] + }] + }, + "araquanid": { + "weight": 2, + "sets": [{ + "species": "Araquanid", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Bubble"], + "evs": {"hp": 68, "atk": 252, "spe": 188}, + "nature": ["Adamant"], + "teraType": ["Ghost", "Water"], + "moves": [["Liquidation"], ["Sticky Web"], ["Mirror Coat"], ["Leech Life"]] + }] + }, + "golurk": { + "weight": 2, + "sets": [{ + "species": "Golurk", + "weight": 100, + "item": ["Colbur Berry"], + "ability": ["No Guard"], + "evs": {"hp": 172, "atk": 252, "spe": 84}, + "nature": ["Adamant"], + "teraType": ["Steel"], + "moves": [["Earthquake"], ["Poltergeist"], ["Stone Edge"], ["Stealth Rock"]] + }] + }, + "ditto": { + "weight": 1, + "sets": [{ + "species": "Ditto", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Imposter"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel"], + "moves": [["Transform"]] + }] + }, + "munkidori": { + "weight": 1, + "sets": [{ + "species": "Munkidori", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Grass"], + "moves": [["Sludge Wave"], ["Psychic", "Psyshock"], ["U-turn"], ["Grass Knot"]] + }, { + "species": "Munkidori", + "weight": 5, + "item": ["Heavy-Duty Boots"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Dark"], + "moves": [["Sludge Wave"], ["Psychic", "Psyshock"], ["U-turn"], ["Fake Out"]] + }, { + "species": "Munkidori", + "weight": 50, + "item": ["Heavy-Duty Boots", "Choice Scarf"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fighting"], + "moves": [["Sludge Wave"], ["Psychic", "Psyshock"], ["U-turn"], ["Focus Blast"]] + }, { + "species": "Munkidori", + "weight": 25, + "item": ["Choice Scarf"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Poison"], + "moves": [["Sludge Wave"], ["Psychic", "Psyshock"], ["U-turn"], ["Trick"]] + }] + }, + "torterra": { + "weight": 2, + "sets": [{ + "species": "Torterra", + "weight": 100, + "item": ["Loaded Dice"], + "ability": ["Overgrow"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Fire", "Poison"], + "moves": [["Bullet Seed"], ["Headlong Rush"], ["Rock Blast"], ["Shell Smash"]] + }] + }, + "barraskewda": { + "weight": 1, + "sets": [{ + "species": "Barraskewda", + "weight": 70, + "item": ["Choice Band", "Heavy-Duty Boots"], + "ability": ["Swift Swim"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Fighting"], + "moves": [["Liquidation"], ["Flip Turn"], ["Close Combat"], ["Crunch"]] + }, { + "species": "Barraskewda", + "weight": 30, + "item": ["Choice Band", "Heavy-Duty Boots"], + "ability": ["Swift Swim"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water", "Fighting"], + "moves": [["Liquidation"], ["Flip Turn"], ["Close Combat"], ["Aqua Jet"]] + }] + }, + "ribombee": { + "weight": 1, + "sets": [{ + "species": "Ribombee", + "wantsTera": true, + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Shield Dust"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Moonblast"], ["Bug Buzz"], ["Tera Blast"], ["Quiver Dance"]] + }] + }, + "diancie": { + "weight": 1, + "sets": [{ + "species": "Diancie", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Water", "Ghost"], + "moves": [["Stealth Rock"], ["Encore"], ["Diamond Storm"], ["Body Press"]] + }] + }, + "lucario": { + "weight": 1, + "sets": [{ + "species": "Lucario", + "weight": 40, + "item": ["Life Orb"], + "ability": ["Inner Focus"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Swords Dance"], ["Close Combat"], ["Meteor Mash"], ["Extreme Speed"]] + }, { + "species": "Lucario", + "weight": 30, + "item": ["Choice Band"], + "ability": ["Inner Focus", "Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Crunch"], ["Close Combat"], ["Meteor Mash"], ["Extreme Speed"]] + }, { + "species": "Lucario", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Inner Focus"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Nasty Plot"], ["Flash Cannon"], ["Aura Sphere", "Vacuum Wave"], ["Shadow Ball"]] + }] + }, + "salazzle": { + "weight": 1, + "sets": [{ + "species": "Salazzle", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Corrosion"], + "evs": {"hp": 248, "spa": 4, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Dark"], + "moves": [["Substitute"], ["Toxic"], ["Flamethrower"], ["Protect"]] + }, { + "species": "Salazzle", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Corrosion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Dark"], + "moves": [["Fire Blast", "Flamethrower"], ["Sludge Bomb"], ["Knock Off"], ["Toxic"]] + }, { + "species": "Salazzle", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Corrosion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Dark"], + "moves": [["Fire Blast", "Flamethrower"], ["Sludge Bomb"], ["Encore"], ["Toxic"]] + }] + }, + "indeedee": { + "weight": 1, + "sets": [{ + "species": "Indeedee", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Psychic Surge"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Expanding Force"], ["Dazzling Gleam"], ["Trick"], ["Healing Wish"]] + }] + }, + "toxicroak": { + "weight": 1, + "sets": [{ + "species": "Toxicroak", + "weight": 100, + "item": ["Life Orb", "Air Balloon"], + "ability": ["Dry Skin"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Swords Dance"], ["Gunk Shot"], ["Close Combat", "Drain Punch"], ["Knock Off", "Sucker Punch"]] + }] + } + }, + "NU": { + "flygon": { + "weight": 10, + "sets": [{ + "species": "Flygon", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Earthquake"], ["U-turn"], ["Outrage", "Dragon Claw"], ["Stone Edge", "Superpower"]] + }, { + "species": "Flygon", + "weight": 20, + "item": ["Loaded Dice"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Earthquake"], ["Scale Shot"], ["Dragon Dance"], ["Substitute", "Throat Chop"]] + }, { + "species": "Flygon", + "weight": 20, + "item": ["Loaded Dice"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fire"], + "moves": [["Earthquake"], ["Scale Shot"], ["Dragon Dance"], ["Fire Punch"]] + }, { + "species": "Flygon", + "weight": 20, + "item": ["Insect Plate"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Bug"], + "moves": [["Earthquake"], ["U-turn"], ["First Impression"], ["Stealth Rock"]] + }, { + "species": "Flygon", + "weight": 5, + "item": ["Choice Band"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Bug"], + "moves": [["Earthquake"], ["U-turn"], ["Scale Shot", "Outrage"], ["First Impression"]] + }, { + "species": "Flygon", + "weight": 5, + "item": ["Choice Band"], + "ability": ["Levitate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Earthquake"], ["U-turn"], ["Scale Shot", "Outrage"], ["Throat Chop", "Stone Edge"]] + }] + }, + "mienshao": { + "weight": 10, + "sets": [{ + "species": "Mienshao", + "weight": 40, + "item": ["Choice Scarf"], + "ability": ["Regenerator"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting", "Dark"], + "moves": [["Close Combat"], ["U-turn"], ["Knock Off"], ["Ice Spinner", "Poison Jab", "Triple Axel"]] + }, { + "species": "Mienshao", + "weight": 15, + "item": ["Assault Vest"], + "ability": ["Regenerator"], + "evs": {"hp": 132, "spd": 160, "spe": 216}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Close Combat"], ["U-turn"], ["Knock Off"], ["Triple Axel", "Ice Spinner"]] + }, { + "species": "Mienshao", + "weight": 15, + "item": ["Assault Vest"], + "ability": ["Regenerator"], + "evs": {"atk": 132, "spd": 160, "spe": 216}, + "nature": ["Jolly"], + "teraType": ["Poison"], + "moves": [["Close Combat"], ["U-turn"], ["Knock Off"], ["Poison Jab"]] + }, { + "species": "Mienshao", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Regenerator"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting", "Dark"], + "moves": [["Close Combat"], ["Fake Out"], ["Knock Off"], ["U-turn"]] + }] + }, + "bronzong": { + "weight": 9, + "sets": [{ + "species": "Bronzong", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Water"], + "moves": [["Stealth Rock"], ["Psychic Noise"], ["Iron Defense"], ["Body Press"]] + }, { + "species": "Bronzong", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 164, "spd": 92}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Water"], + "moves": [["Stealth Rock"], ["Psychic Noise"], ["Iron Defense"], ["Body Press"]] + }, { + "species": "Bronzong", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Sassy"], + "teraType": ["Fairy", "Water"], + "moves": [["Stealth Rock"], ["Psychic Noise"], ["Earthquake"], ["Heavy Slam"]] + }, { + "species": "Bronzong", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "spd": 204, "spe": 52}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Water", "Poison"], + "moves": [["Calm Mind"], ["Iron Defense"], ["Body Press"], ["Stored Power"]] + }] + }, + "incineroar": { + "weight": 9, + "sets": [{ + "species": "Incineroar", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Ghost", "Flying", "Poison", "Water", "Dragon", "Fairy"], + "moves": [["Knock Off"], ["Flare Blitz"], ["Swords Dance"], ["Earthquake", "U-turn", "Drain Punch"]] + }, { + "species": "Incineroar", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Ghost", "Flying", "Poison", "Grass"], + "moves": [["Knock Off"], ["Flare Blitz"], ["Swords Dance"], ["Trailblaze"]] + }, { + "species": "Incineroar", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"hp": 252, "spd": 212, "spe": 44}, + "nature": ["Careful"], + "teraType": ["Ghost", "Flying", "Poison", "Water", "Dragon", "Fairy"], + "moves": [["Knock Off"], ["Flare Blitz"], ["Swords Dance"], ["U-turn", "Earthquake"]] + }, { + "species": "Incineroar", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"hp": 252, "spd": 212, "spe": 44}, + "nature": ["Careful"], + "teraType": ["Fairy", "Water", "Poison", "Ghost", "Dragon", "Flying"], + "moves": [["Knock Off"], ["Flare Blitz"], ["Will-O-Wisp"], ["U-turn", "Parting Shot"]] + }] + }, + "kilowattrel": { + "weight": 9, + "sets": [{ + "species": "Kilowattrel", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["U-turn"], ["Thunderbolt"], ["Hurricane"], ["Roost"]] + }, { + "species": "Kilowattrel", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Volt Switch"], ["Thunderbolt"], ["Hurricane"], ["Roost"]] + }] + }, + "overqwil": { + "weight": 9, + "sets": [{ + "species": "Overqwil", + "weight": 45, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Intimidate"], + "evs": {"hp": 252, "atk": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Fairy", "Flying"], + "moves": [["Barb Barrage"], ["Throat Chop"], ["Spikes"], ["Taunt", "Haze", "Pain Split"]] + }, { + "species": "Overqwil", + "weight": 45, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel", "Fairy", "Flying"], + "moves": [["Gunk Shot"], ["Throat Chop"], ["Spikes"], ["Taunt", "Haze", "Pain Split"]] + }, { + "species": "Overqwil", + "weight": 10, + "item": ["Loaded Dice"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dragon"], + "moves": [["Gunk Shot"], ["Throat Chop"], ["Swords Dance"], ["Scale Shot"]] + }] + }, + "taurospaldeaaqua": { + "weight": 9, + "sets": [{ + "species": "Tauros-Paldea-Aqua", + "weight": 25, + "item": ["Choice Band"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water", "Flying"], + "moves": [["Wave Crash"], ["Close Combat"], ["Aqua Jet"], ["Earthquake", "Zen Headbutt"]] + }, { + "species": "Tauros-Paldea-Aqua", + "weight": 25, + "item": ["Choice Scarf"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water", "Flying"], + "moves": [["Wave Crash"], ["Close Combat"], ["Raging Bull"], ["Earthquake", "Zen Headbutt"]] + }, { + "species": "Tauros-Paldea-Aqua", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water", "Steel"], + "moves": [["Wave Crash"], ["Close Combat"], ["Bulk Up"], ["Substitute", "Aqua Jet", "Earthquake"]] + }, { + "species": "Tauros-Paldea-Aqua", + "weight": 25, + "item": ["Lum Berry"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water", "Steel"], + "moves": [["Wave Crash"], ["Close Combat"], ["Bulk Up"], ["Zen Headbutt", "Aqua Jet", "Earthquake"]] + }] + }, + "toxicroak": { + "weight": 9, + "sets": [{ + "species": "Toxicroak", + "weight": 60, + "item": ["Life Orb"], + "ability": ["Dry Skin"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Close Combat", "Drain Punch"], ["Gunk Shot"], ["Swords Dance"], ["Knock Off", "Sucker Punch"]] + }, { + "species": "Toxicroak", + "weight": 10, + "item": ["Life Orb"], + "ability": ["Dry Skin"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Dark"], + "moves": [["Close Combat"], ["Knock Off"], ["Swords Dance"], ["Sucker Punch"]] + }, { + "species": "Toxicroak", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Dry Skin"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground"], + "moves": [["Close Combat", "Drain Punch"], ["Gunk Shot"], ["Swords Dance"], ["Earthquake"]] + }] + }, + "basculegion": { + "weight": 7, + "sets": [{ + "species": "Basculegion", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Adaptability"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Wave Crash"], ["Flip Turn"], ["Psychic Fangs", "Phantom Force"], ["Aqua Jet"]] + }, { + "species": "Basculegion", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Adaptability"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Wave Crash"], ["Flip Turn"], ["Psychic Fangs", "Phantom Force"], ["Liquidation"]] + }] + }, + "breloom": { + "weight": 8, + "sets": [{ + "species": "Breloom", + "weight": 25, + "item": ["Life Orb", "Loaded Dice"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Steel", "Fighting"], + "moves": [["Swords Dance"], ["Mach Punch"], ["Bullet Seed"], ["Aerial Ace", "Bulldoze"]] + }, { + "species": "Breloom", + "weight": 15, + "item": ["Life Orb", "Loaded Dice"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Rock"], + "moves": [["Swords Dance"], ["Mach Punch"], ["Bullet Seed"], ["Rock Tomb"]] + }, { + "species": "Breloom", + "weight": 15, + "item": ["Choice Band"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Rock"], + "moves": [["Close Combat"], ["Mach Punch"], ["Bullet Seed"], ["Rock Tomb"]] + }, { + "species": "Breloom", + "weight": 15, + "item": ["Choice Band"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Fighting", "Fire"], + "moves": [["Close Combat"], ["Mach Punch"], ["Bullet Seed"], ["Aerial Ace", "Bulldoze"]] + }, { + "species": "Breloom", + "weight": 30, + "item": ["Toxic Orb"], + "ability": ["Poison Heal"], + "evs": {"hp": 240, "atk": 80, "spe": 188}, + "nature": ["Adamant"], + "teraType": ["Normal"], + "moves": [["Swords Dance", "Bulk Up"], ["Facade"], ["Seed Bomb"], ["Protect", "Substitute", "Toxic"]] + }] + }, + "mukalola": { + "weight": 8, + "sets": [{ + "species": "Muk-Alola", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Poison Touch"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Water", "Dragon"], + "moves": [["Poison Jab", "Poison Fang"], ["Knock Off"], ["Rest"], ["Sleep Talk"]] + }, { + "species": "Muk-Alola", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Poison Touch"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Water", "Dragon"], + "moves": [["Poison Jab", "Poison Fang"], ["Knock Off"], ["Drain Punch"], ["Protect"]] + }] + }, + "munkidori": { + "weight": 8, + "sets": [{ + "species": "Munkidori", + "wantsTera": true, + "weight": 20, + "item": ["Heavy-Duty Boots", "Choice Scarf"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Sludge Wave", "Sludge Bomb"], ["Psychic", "Psyshock"], ["U-turn"], ["Tera Blast"]] + }, { + "species": "Munkidori", + "weight": 40, + "item": ["Heavy-Duty Boots", "Choice Scarf"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fighting", "Flying"], + "moves": [["Sludge Wave", "Sludge Bomb"], ["Psychic", "Psyshock"], ["U-turn"], ["Focus Blast"]] + }, { + "species": "Munkidori", + "weight": 20, + "item": ["Choice Scarf"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Flying"], + "moves": [["Sludge Wave", "Sludge Bomb"], ["Psychic", "Psyshock"], ["U-turn"], ["Trick"]] + }, { + "species": "Munkidori", + "wantsTera": true, + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Sludge Wave", "Sludge Bomb"], ["Psychic", "Psyshock"], ["Nasty Plot"], ["Tera Blast"]] + }, { + "species": "Munkidori", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Toxic Chain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Flying", "Fighting"], + "moves": [["Sludge Wave", "Sludge Bomb"], ["Psychic", "Psyshock"], ["Nasty Plot"], ["Focus Blast"]] + }] + }, + "vaporeon": { + "weight": 8, + "sets": [{ + "species": "Vaporeon", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Water Absorb"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison", "Dark"], + "moves": [["Scald"], ["Protect"], ["Wish"], ["Haze"]] + }, { + "species": "Vaporeon", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Water Absorb"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Bold"], + "teraType": ["Poison", "Dark"], + "moves": [["Scald"], ["Protect"], ["Wish"], ["Flip Turn"]] + }] + }, + "vileplume": { + "weight": 8, + "sets": [{ + "species": "Vileplume", + "weight": 100, + "item": ["Rocky Helmet", "Leftovers"], + "ability": ["Effect Spore"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Fairy"], + "moves": [["Sludge Bomb"], ["Giga Drain", "Stun Spore"], ["Leech Seed"], ["Strength Sap"]] + }] + }, + "brambleghast": { + "weight": 7, + "sets": [{ + "species": "Brambleghast", + "weight": 70, + "item": ["Heavy-Duty Boots", "Colbur Berry"], + "ability": ["Wind Rider"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Poltergeist"], ["Power Whip"], ["Rapid Spin"], ["Strength Sap", "Spikes", "Shadow Sneak"]] + }, { + "species": "Brambleghast", + "weight": 30, + "item": ["Rocky Helmet"], + "ability": ["Wind Rider"], + "evs": {"hp": 252, "def": 240, "spe": 16}, + "nature": ["Impish"], + "teraType": ["Fairy"], + "moves": [["Poltergeist", "Power Whip", "Night Shade"], ["Infestation", "Spikes", "Leech Seed"], ["Rapid Spin"], ["Strength Sap"]] + }] + }, + "chandelure": { + "weight": 7, + "sets": [{ + "species": "Chandelure", + "weight": 40, + "item": ["Choice Specs"], + "ability": ["Flash Fire"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass", "Fire"], + "moves": [["Fire Blast", "Flamethrower"], ["Shadow Ball"], ["Energy Ball"], ["Trick", "Overheat"]] + }, { + "species": "Chandelure", + "weight": 40, + "item": ["Choice Scarf"], + "ability": ["Flash Fire"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass", "Fire"], + "moves": [["Fire Blast", "Flamethrower"], ["Shadow Ball"], ["Energy Ball"], ["Trick"]] + }, { + "species": "Chandelure", + "weight": 10, + "item": ["Heavy-Duty Boots", "Air Balloon"], + "ability": ["Flash Fire"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass"], + "moves": [["Fire Blast", "Flamethrower"], ["Shadow Ball"], ["Energy Ball"], ["Calm Mind"]] + }, { + "species": "Chandelure", + "weight": 10, + "item": ["Heavy-Duty Boots", "Air Balloon"], + "ability": ["Flame Body"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Fire Blast", "Flamethrower"], ["Shadow Ball"], ["Energy Ball"], ["Calm Mind"]] + }] + }, + "cinccino": { + "weight": 7, + "sets": [{ + "species": "Cinccino", + "weight": 100, + "item": ["Loaded Dice"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Fire"], + "moves": [["Tidy Up"], ["Tail Slap"], ["Bullet Seed", "Knock Off"], ["Encore", "Rock Blast", "Triple Axel"]] + }] + }, + "diancie": { + "weight": 7, + "sets": [{ + "species": "Diancie", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Sassy"], + "teraType": ["Water", "Steel", "Dragon"], + "moves": [["Stealth Rock"], ["Diamond Storm"], ["Moonblast"], ["Body Press"]] + }, { + "species": "Diancie", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Water", "Steel", "Dragon"], + "moves": [["Stealth Rock"], ["Diamond Storm"], ["Encore"], ["Body Press"]] + }, { + "species": "Diancie", + "weight": 50, + "item": ["Power Herb"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "def": 4, "spa": 252}, + "ivs": {"atk": 0, "spe": 0}, + "nature": ["Quiet"], + "teraType": ["Grass", "Ground"], + "moves": [["Trick Room"], ["Moonblast"], ["Meteor Beam"], ["Earth Power"]] + }] + }, + "gligar": { + "weight": 7, + "sets": [{ + "species": "Gligar", + "weight": 50, + "item": ["Eviolite"], + "ability": ["Immunity"], + "evs": {"hp": 252, "def": 200, "spe": 56}, + "nature": ["Impish"], + "teraType": ["Water"], + "moves": [["Spikes"], ["Earthquake"], ["U-turn"], ["Toxic", "Stealth Rock"]] + }, { + "species": "Gligar", + "weight": 50, + "item": ["Eviolite"], + "ability": ["Immunity"], + "evs": {"hp": 252, "def": 200, "spe": 56}, + "nature": ["Impish"], + "teraType": ["Water"], + "moves": [["Spikes", "Stealth Rock"], ["Earthquake"], ["U-turn", "Toxic"], ["Knock Off"]] + }] + }, + "inteleon": { + "weight": 7, + "sets": [{ + "species": "Inteleon", + "weight": 100, + "item": ["Choice Specs"], + "ability": ["Torrent"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Water", "Ghost"], + "moves": [["Hydro Pump", "Surf"], ["Ice Beam"], ["U-turn"], ["Dark Pulse"]] + }] + }, + "milotic": { + "weight": 7, + "sets": [{ + "species": "Milotic", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots", "Rocky Helmet"], + "ability": ["Marvel Scale", "Competitive"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Bold"], + "teraType": ["Fairy", "Dragon", "Steel"], + "moves": [["Scald"], ["Ice Beam", "Haze", "Dragon Tail"], ["Recover"], ["Flip Turn"]] + }, { + "species": "Milotic", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots", "Rocky Helmet"], + "ability": ["Marvel Scale", "Competitive"], + "evs": {"hp": 252, "def": 128, "spd": 128}, + "nature": ["Calm"], + "teraType": ["Fairy", "Dragon", "Steel"], + "moves": [["Scald"], ["Ice Beam", "Haze", "Dragon Tail"], ["Recover"], ["Flip Turn"]] + }] + }, + "porygonz": { + "weight": 7, + "sets": [{ + "species": "Porygon-Z", + "weight": 25, + "item": ["Choice Specs"], + "ability": ["Adaptability", "Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Tri Attack"], ["Shadow Ball"], ["Trick"], ["Nasty Plot", "Thunderbolt", "Ice Beam", "Recover"]] + }, { + "species": "Porygon-Z", + "weight": 25, + "item": ["Choice Specs"], + "ability": ["Adaptability", "Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Tera Blast"], ["Shadow Ball"], ["Trick"], ["Nasty Plot", "Ice Beam", "Recover"]] + }, { + "species": "Porygon-Z", + "weight": 5, + "item": ["Life Orb", "Heavy-Duty Boots"], + "ability": ["Adaptability", "Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Tri Attack"], ["Shadow Ball"], ["Recover"], ["Nasty Plot"]] + }, { + "species": "Porygon-Z", + "weight": 5, + "item": ["Life Orb", "Heavy-Duty Boots"], + "ability": ["Adaptability", "Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Tera Blast"], ["Shadow Ball"], ["Recover"], ["Nasty Plot"]] + }, { + "species": "Porygon-Z", + "weight": 5, + "item": ["Life Orb", "Heavy-Duty Boots"], + "ability": ["Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Electric"], + "moves": [["Tri Attack"], ["Thunderbolt"], ["Recover"], ["Nasty Plot"]] + }, { + "species": "Porygon-Z", + "weight": 5, + "item": ["Life Orb"], + "ability": ["Adaptability", "Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid", "Modest"], + "teraType": ["Ghost"], + "moves": [["Tri Attack"], ["Shadow Ball"], ["Agility"], ["Nasty Plot"]] + }, { + "species": "Porygon-Z", + "weight": 5, + "item": ["Life Orb"], + "ability": ["Adaptability", "Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid", "Modest"], + "teraType": ["Ground"], + "moves": [["Tera Blast"], ["Shadow Ball"], ["Agility"], ["Nasty Plot"]] + }, { + "species": "Porygon-Z", + "weight": 5, + "item": ["Life Orb"], + "ability": ["Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid", "Modest"], + "teraType": ["Electric"], + "moves": [["Tri Attack"], ["Thunderbolt"], ["Recover"], ["Nasty Plot"]] + }, { + "species": "Porygon-Z", + "weight": 5, + "item": ["Life Orb"], + "ability": ["Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Electric", "Ghost"], + "moves": [["Tri Attack", "Ice Beam"], ["Thunderbolt"], ["Shadow Ball"], ["Agility"]] + }, { + "species": "Porygon-Z", + "weight": 10, + "item": ["Life Orb"], + "ability": ["Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Tera Blast"], ["Thunderbolt"], ["Shadow Ball"], ["Agility"]] + }, { + "species": "Porygon-Z", + "wantsTera": true, + "weight": 5, + "item": ["Life Orb"], + "ability": ["Download"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fighting"], + "moves": [["Tera Blast"], ["Tri Attack"], ["Shadow Ball"], ["Agility"]] + }] + }, + "registeel": { + "weight": 7, + "sets": [{ + "species": "Registeel", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ghost", "Fairy", "Dragon", "Water"], + "moves": [["Heavy Slam"], ["Stealth Rock"], ["Earthquake"], ["Thunder Wave"]] + }, { + "species": "Registeel", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ghost", "Fairy", "Dragon", "Water"], + "moves": [["Heavy Slam"], ["Stealth Rock"], ["Body Press"], ["Iron Defense", "Thunder Wave"]] + }] + }, + "scyther": { + "weight": 6, + "sets": [{ + "species": "Scyther", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric", "Fighting"], + "moves": [["Swords Dance"], ["Dual Wingbeat"], ["Close Combat"], ["Trailblaze"]] + }, { + "species": "Scyther", + "weight": 35, + "item": ["Heavy-Duty Boots"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric", "Fighting"], + "moves": [["Swords Dance"], ["Dual Wingbeat"], ["U-turn"], ["Close Combat", "Defog"]] + }, { + "species": "Scyther", + "weight": 15, + "item": ["Heavy-Duty Boots"], + "ability": ["Technician"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting"], + "moves": [["Close Combat"], ["Dual Wingbeat"], ["U-turn"], ["Defog"]] + }] + }, + "slowbrogalar": { + "weight": 7, + "sets": [{ + "species": "Slowbro-Galar", + "weight": 50, + "item": ["Heavy-Duty Boots", "Rocky Helmet", "Leftovers"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy"], + "moves": [["Slack Off"], ["Calm Mind", "Thunder Wave"], ["Flamethrower"], ["Sludge Bomb"]] + }, { + "species": "Slowbro-Galar", + "weight": 50, + "item": ["Heavy-Duty Boots", "Rocky Helmet", "Leftovers"], + "ability": ["Regenerator"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Slack Off"], ["Calm Mind", "Thunder Wave", "Toxic"], ["Surf"], ["Psyshock"]] + }] + }, + "swampert": { + "weight": 7, + "sets": [{ + "species": "Swampert", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Torrent"], + "evs": {"hp": 252, "atk": 4, "def": 252}, + "nature": ["Impish"], + "teraType": ["Fairy"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Knock Off", "Roar"], ["Flip Turn"]] + }, { + "species": "Swampert", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Torrent"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Fairy"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Knock Off", "Roar"], ["Flip Turn"]] + }] + }, + "sylveon": { + "weight": 7, + "sets": [{ + "species": "Sylveon", + "weight": 25, + "item": ["Choice Specs"], + "ability": ["Pixilate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest", "Timid"], + "teraType": ["Fairy"], + "moves": [["Hyper Voice"], ["Psyshock"], ["Shadow Ball"], ["Draining Kiss"]] + }, { + "species": "Sylveon", + "wantsTera": true, + "weight": 25, + "item": ["Choice Specs"], + "ability": ["Pixilate"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest", "Timid"], + "teraType": ["Ground"], + "moves": [["Hyper Voice"], ["Psyshock"], ["Shadow Ball"], ["Tera Blast"]] + }, { + "species": "Sylveon", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Pixilate"], + "evs": {"hp": 252, "def": 212, "spe": 44}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Steel", "Poison", "Water"], + "moves": [["Hyper Voice"], ["Wish"], ["Protect"], ["Roar", "Calm Mind"]] + }] + }, + "toxtricity": { + "weight": 6, + "sets": [{ + "species": "Toxtricity", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Punk Rock"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest", "Timid"], + "teraType": ["Normal"], + "moves": [["Overdrive"], ["Boomburst"], ["Volt Switch"], ["Sludge Bomb", "Snarl"]] + }, { + "species": "Toxtricity", + "wantsTera": true, + "weight": 50, + "item": ["Throat Spray"], + "ability": ["Punk Rock"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Normal"], + "moves": [["Overdrive"], ["Boomburst"], ["Shift Gear"], ["Encore", "Snarl"]] + }] + }, + "typhlosionhisui": { + "weight": 7, + "sets": [{ + "species": "Typhlosion-Hisui", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Frisk"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting"], + "moves": [["Eruption"], ["Flamethrower"], ["Shadow Ball"], ["Focus Blast"]] + }, { + "species": "Typhlosion-Hisui", + "weight": 50, + "item": ["Choice Scarf", "Choice Specs"], + "ability": ["Frisk"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting", "Fire"], + "moves": [["Eruption"], ["Flamethrower", "Fire Blast"], ["Shadow Ball"], ["Focus Blast"]] + }] + }, + "articunogalar": { + "weight": 5, + "sets": [{ + "species": "Articuno-Galar", + "weight": 70, + "item": ["Heavy-Duty Boots"], + "ability": ["Competitive"], + "evs": {"hp": 248, "spa": 8, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel", "Fairy"], + "moves": [["Calm Mind"], ["Recover"], ["Hurricane"], ["Psychic Noise"]] + }, { + "species": "Articuno-Galar", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Competitive"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Steel", "Fairy", "Ground"], + "moves": [["Future Sight"], ["Recover"], ["Hurricane"], ["U-turn"]] + }] + }, + "copperajah": { + "weight": 4, + "sets": [{ + "species": "Copperajah", + "weight": 80, + "item": ["Leftovers"], + "ability": ["Heavy Metal"], + "evs": {"hp": 252, "spd": 228, "spe": 28}, + "nature": ["Careful"], + "teraType": ["Dragon", "Fairy"], + "moves": [["Heavy Slam"], ["Stealth Rock"], ["Knock Off"], ["Whirlwind", "Protect", "Earthquake"]] + }, { + "species": "Copperajah", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Sheer Force"], + "evs": {"hp": 252, "spd": 228, "spe": 28}, + "nature": ["Careful"], + "teraType": ["Dragon", "Fairy"], + "moves": [["Iron Head"], ["Stealth Rock"], ["Knock Off"], ["Whirlwind", "Protect", "Earthquake"]] + }] + }, + "decidueye": { + "weight": 4, + "sets": [{ + "species": "Decidueye", + "weight": 100, + "item": ["Spell Tag"], + "ability": ["Long Reach"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ghost"], + "moves": [["Swords Dance"], ["Spirit Shackle", "Poltergeist"], ["Shadow Sneak"], ["Leaf Blade"]] + }] + }, + "gastrodon": { + "weight": 4, + "sets": [{ + "species": "Gastrodon", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Sticky Hold", "Storm Drain"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Poison", "Dragon"], + "moves": [["Spikes", "Stealth Rock"], ["Earth Power"], ["Ice Beam", "Sludge Bomb", "Surf"], ["Recover"]] + }, { + "species": "Gastrodon", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Sticky Hold", "Storm Drain"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Poison", "Dragon"], + "moves": [["Spikes", "Stealth Rock"], ["Earth Power"], ["Ice Beam", "Sludge Bomb", "Surf"], ["Recover"]] + }] + }, + "klefki": { + "weight": 5, + "sets": [{ + "species": "Klefki", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Prankster"], + "evs": {"hp": 252, "def": 96, "spd": 160}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Water"], + "moves": [["Spikes"], ["Foul Play"], ["Thunder Wave"], ["Dazzling Gleam"]] + }, { + "species": "Klefki", + "weight": 25, + "item": ["Air Balloon"], + "ability": ["Magician"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Water"], + "moves": [["Spikes"], ["Foul Play"], ["Thunder Wave"], ["Dazzling Gleam"]] + }, { + "species": "Klefki", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Prankster"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Water"], + "moves": [["Spikes"], ["Magnet Rise"], ["Thunder Wave"], ["Dazzling Gleam"]] + }, { + "species": "Klefki", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Prankster"], + "evs": {"hp": 252, "def": 96, "spd": 160}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Water"], + "moves": [["Calm Mind"], ["Iron Defense"], ["Draining Kiss"], ["Stored Power"]] + }] + }, + "taurospaldeablaze": { + "weight": 4, + "sets": [{ + "species": "Tauros-Paldea-Blaze", + "weight": 50, + "item": ["Heavy-Duty Boots", "Lum Berry"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Grass", "Electric", "Steel"], + "moves": [["Bulk Up"], ["Close Combat"], ["Raging Bull"], ["Trailblaze"]] + }, { + "species": "Tauros-Paldea-Blaze", + "weight": 50, + "item": ["Choice Scarf", "Choice Band"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting"], + "moves": [["Flare Blitz"], ["Close Combat"], ["Earthquake"], ["Stone Edge", "Iron Head"]] + }] + }, + "tentacruel": { + "weight": 4, + "sets": [{ + "species": "Tentacruel", + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Liquid Ooze"], + "evs": {"hp": 252, "def": 120, "spe": 136}, + "nature": ["Jolly"], + "teraType": ["Dark", "Flying"], + "moves": [["Flip Turn"], ["Knock Off"], ["Rapid Spin"], ["Sludge Bomb", "Ice Beam", "Haze", "Toxic"]] + }] + }, + "tornadus": { + "weight": 5, + "sets": [{ + "species": "Tornadus", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Defiant"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Steel", "Ground"], + "moves": [["Knock Off"], ["U-turn"], ["Hurricane", "Bleakwind Storm"], ["Heat Wave", "Grass Knot", "Taunt"]] + }, { + "species": "Tornadus", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Prankster"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Steel", "Ground", "Dark"], + "moves": [["Nasty Plot"], ["Heat Wave", "Focus Blast"], ["Hurricane", "Bleakwind Storm"], ["Dark Pulse"]] + }, { + "species": "Tornadus", + "wantsTera": true, + "weight": 20, + "item": ["Sitrus Berry", ""], + "ability": ["Defiant"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground"], + "moves": [["Knock Off"], ["Bulk Up"], ["Acrobatics"], ["Tera Blast"]] + }, { + "species": "Tornadus", + "weight": 10, + "item": ["Sitrus Berry", ""], + "ability": ["Defiant"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ground", "Steel"], + "moves": [["Knock Off"], ["Bulk Up"], ["Acrobatics"], ["Brick Break", "Hammer Arm"]] + }] + }, + "torterra": { + "weight": 5, + "sets": [{ + "species": "Torterra", + "weight": 50, + "item": ["Loaded Dice"], + "ability": ["Overgrow"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Bullet Seed"], ["Headlong Rush", "Earthquake"], ["Rock Blast"], ["Shell Smash"]] + }, { + "species": "Torterra", + "wantsTera": true, + "weight": 50, + "item": ["Loaded Dice"], + "ability": ["Overgrow"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ghost", "Fire"], + "moves": [["Bullet Seed"], ["Headlong Rush", "Earthquake"], ["Tera Blast"], ["Shell Smash"]] + }] + }, + "uxie": { + "weight": 4, + "sets": [{ + "species": "Uxie", + "wantsTera": true, + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 40, "spe": 216}, + "nature": ["Timid"], + "teraType": ["Dark", "Steel"], + "moves": [["U-turn"], ["Psychic Noise"], ["Stealth Rock"], ["Encore", "Knock Off", "Thunder Wave"]] + }, { + "species": "Uxie", + "wantsTera": true, + "weight": 25, + "item": ["Leftovers", "Kee Berry"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Calm Mind"], ["Psychic Noise"], ["Draining Kiss"], ["Encore"]] + }, { + "species": "Uxie", + "wantsTera": true, + "weight": 25, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Calm Mind"], ["Psychic Noise"], ["Draining Kiss"], ["Substitute"]] + }] + }, + "araquanid": { + "weight": 3, + "sets": [{ + "species": "Araquanid", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Water Bubble"], + "evs": {"hp": 68, "atk": 252, "spe": 188}, + "nature": ["Adamant"], + "teraType": ["Ghost"], + "moves": [["Liquidation"], ["Leech Life"], ["Sticky Web"], ["Mirror Coat", "Trailblaze"]] + }] + }, + "avalugg": { + "weight": 3, + "sets": [{ + "species": "Avalugg", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Sturdy"], + "evs": {"hp": 252, "atk": 4, "def": 252}, + "nature": ["Impish"], + "teraType": ["Ghost", "Poison", "Water"], + "moves": [["Avalanche", "Ice Spinner"], ["Body Press", "Earthquake"], ["Recover"], ["Rapid Spin"]] + }] + }, + "dragalge": { + "weight": 3, + "sets": [{ + "species": "Dragalge", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Adaptability"], + "evs": {"hp": 252, "def": 200, "spe": 56}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Sludge Bomb"], ["Draco Meteor"], ["Toxic Spikes", "Dragon Tail"], ["Flip Turn"]] + }, { + "species": "Dragalge", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Adaptability"], + "evs": {"hp": 80, "spa": 252, "spe": 176}, + "nature": ["Modest"], + "teraType": ["Poison"], + "moves": [["Sludge Bomb", "Sludge Wave"], ["Draco Meteor"], ["Focus Blast"], ["Flip Turn"]] + }] + }, + "florges": { + "weight": 3, + "sets": [{ + "species": "Florges", + "wantsTera": true, + "weight": 30, + "item": ["Choice Specs"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Moonblast"], ["Psychic"], ["Tera Blast"], ["Trick"]] + }, { + "species": "Florges", + "wantsTera": true, + "weight": 20, + "item": ["Leftovers"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"hp": 252, "def": 120, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ground"], + "moves": [["Moonblast"], ["Calm Mind"], ["Tera Blast"], ["Synthesis"]] + }, { + "species": "Florges", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"hp": 252, "def": 120, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Steel"], + "moves": [["Moonblast"], ["Calm Mind"], ["Psychic Noise", "Wish"], ["Synthesis"]] + }, { + "species": "Florges", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"hp": 252, "def": 120, "spe": 136}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water", "Steel"], + "moves": [["Moonblast"], ["Trick"], ["Calm Mind", "Psychic"], ["Synthesis"]] + }] + }, + "goodra": { + "weight": 3, + "sets": [{ + "species": "Goodra", + "weight": 40, + "item": ["Choice Specs"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison"], + "moves": [["Draco Meteor"], ["Fire Blast", "Flamethrower"], ["Sludge Bomb", "Sludge Wave"], ["Hydro Pump", "Dragon Pulse"]] + }, { + "species": "Goodra", + "weight": 30, + "item": ["Leftovers"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison"], + "moves": [["Draco Meteor"], ["Fire Blast", "Flamethrower"], ["Acid Spray"], ["Substitute"]] + }, { + "species": "Goodra", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Poison", "Steel"], + "moves": [["Draco Meteor"], ["Fire Blast", "Flamethrower"], ["Knock Off"], ["Toxic", "Scald", "Dragon Tail"]] + }, { + "species": "Goodra", + "weight": 5, + "item": ["Heavy-Duty Boots"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison"], + "moves": [["Draco Meteor"], ["Fire Blast", "Flamethrower"], ["Sludge Wave"], ["Toxic", "Scald"]] + }, { + "species": "Goodra", + "weight": 5, + "item": ["Heavy-Duty Boots"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Poison"], + "moves": [["Draco Meteor"], ["Fire Blast", "Flamethrower"], ["Sludge Wave"], ["Dragon Tail"]] + }] + }, + "heracross": { + "weight": 3, + "sets": [{ + "species": "Heracross", + "weight": 70, + "item": ["Flame Orb"], + "ability": ["Guts"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Facade"], ["Close Combat"], ["Trailblaze"], ["Knock Off"]] + }, { + "species": "Heracross", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Moxie"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Fighting"], + "moves": [["Megahorn"], ["Close Combat"], ["Earthquake", "Stone Edge"], ["Knock Off"]] + }] + }, + "meloetta": { + "weight": 3, + "sets": [{ + "species": "Meloetta", + "weight": 45, + "item": ["Choice Specs", "Choice Scarf"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Hyper Voice"], ["Psychic", "Psyshock"], ["Shadow Ball"], ["Trick", "Focus Blast"]] + }, { + "species": "Meloetta", + "weight": 25, + "item": ["Choice Specs", "Choice Scarf"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Hyper Voice"], ["Psychic", "Psyshock"], ["Shadow Ball"], ["U-turn"]] + }, { + "species": "Meloetta", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Hyper Voice"], ["Shadow Ball"], ["Substitute"], ["Calm Mind"]] + }, { + "species": "Meloetta", + "weight": 10, + "item": ["Leftovers"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting"], + "moves": [["Tera Blast"], ["Shadow Ball"], ["Substitute"], ["Calm Mind"]] + }] + }, + "orthworm": { + "weight": 3, + "sets": [{ + "species": "Orthworm", + "weight": 70, + "item": ["Leftovers"], + "ability": ["Earth Eater"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Impish"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Stealth Rock", "Spikes"], ["Heavy Slam"], ["Body Press"], ["Iron Defense", "Protect"]] + }, { + "species": "Orthworm", + "weight": 30, + "item": ["Leftovers"], + "ability": ["Earth Eater"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Impish"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Stealth Rock"], ["Heavy Slam"], ["Body Press"], ["Spikes"]] + }] + }, + "raikou": { + "weight": 3, + "sets": [{ + "species": "Raikou", + "weight": 15, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Scald"], ["Volt Switch"]] + }, { + "species": "Raikou", + "wantsTera": true, + "weight": 15, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Tera Blast"], ["Volt Switch"]] + }, { + "species": "Raikou", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Shadow Ball"], ["Volt Switch"]] + }, { + "species": "Raikou", + "weight": 15, + "item": ["Leftovers"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Scald"], ["Substitute"]] + }, { + "species": "Raikou", + "wantsTera": true, + "weight": 15, + "item": ["Leftovers"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Tera Blast"], ["Substitute"]] + }, { + "species": "Raikou", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Pressure"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Calm Mind"], ["Thunderbolt"], ["Shadow Ball"], ["Substitute"]] + }] + }, + "rotomheat": { + "weight": 3, + "sets": [{ + "species": "Rotom-Heat", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Levitate"], + "evs": {"hp": 248, "spa": 4, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Steel", "Fairy"], + "moves": [["Volt Switch"], ["Pain Split"], ["Overheat"], ["Will-O-Wisp", "Nasty Plot"]] + }] + }, + "scrafty": { + "weight": 3, + "sets": [{ + "species": "Scrafty", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Shed Skin"], + "evs": {"hp": 252, "spd": 196, "spe": 60}, + "nature": ["Careful"], + "teraType": ["Poison", "Steel"], + "moves": [["Bulk Up"], ["Drain Punch"], ["Knock Off"], ["Rest"]] + }, { + "species": "Scrafty", + "weight": 10, + "item": ["Leftovers", "Lum Berry"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison"], + "moves": [["Dragon Dance"], ["Drain Punch", "Close Combat"], ["Knock Off"], ["Encore", "Poison Jab"]] + }, { + "species": "Scrafty", + "weight": 15, + "item": ["Leftovers"], + "ability": ["Shed Skin", "Intimidate", "Moxie"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison"], + "moves": [["Dragon Dance"], ["Drain Punch", "Close Combat"], ["Knock Off"], ["Encore", "Poison Jab"]] + }, { + "species": "Scrafty", + "weight": 15, + "item": ["Leftovers"], + "ability": ["Shed Skin", "Intimidate", "Moxie"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Dragon Dance"], ["Drain Punch", "Close Combat"], ["Knock Off"], ["Encore", "Iron Head"]] + }, { + "species": "Scrafty", + "weight": 10, + "item": ["Leftovers", "Lum Berry"], + "ability": ["Intimidate", "Moxie"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Dragon Dance"], ["Drain Punch", "Close Combat"], ["Knock Off"], ["Encore", "Iron Head"]] + }] + }, + "screamtail": { + "weight": 3, + "sets": [{ + "species": "Scream Tail", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Protosynthesis"], + "evs": {"hp": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Water", "Steel", "Dragon"], + "moves": [["Wish"], ["Protect"], ["Encore", "Thunder Wave"], ["Psychic Noise"]] + }, { + "species": "Scream Tail", + "wantsTera": true, + "weight": 50, + "item": ["Leftovers"], + "ability": ["Protosynthesis"], + "evs": {"hp": 40, "spa": 252, "spe": 216}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Normal"], + "moves": [["Fire Blast", "Flamethrower"], ["Calm Mind"], ["Boomburst"], ["Psychic Noise", "Dazzling Gleam"]] + }] + }, + "bellibolt": { + "weight": 1, + "sets": [{ + "species": "Bellibolt", + "weight": 100, + "item": ["Heavy-Duty Boots", "Rocky Helmet"], + "ability": ["Static", "Electromorphosis"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Volt Switch"], ["Slack Off"], ["Muddy Water"], ["Toxic"]] + }] + }, + "ditto": { + "weight": 1, + "sets": [{ + "species": "Ditto", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Imposter"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Steel", "Ghost"], + "moves": [["Transform"]] + }] + }, + "drednaw": { + "weight": 1, + "sets": [{ + "species": "Drednaw", + "weight": 100, + "item": ["White Herb"], + "ability": ["Strong Jaw"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Shell Smash"], ["Liquidation"], ["Stone Edge"], ["Crunch"]] + }] + }, + "dudunsparce": { + "weight": 1, + "sets": [{ + "species": "Dudunsparce", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Serene Grace"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison", "Fairy"], + "moves": [["Body Slam"], ["Coil", "Stealth Rock"], ["Roost"], ["Dragon Tail"]] + }, { + "species": "Dudunsparce", + "weight": 50, + "item": ["Leftovers", "Heavy-Duty Boots"], + "ability": ["Rattled"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost"], + "moves": [["Boomburst"], ["Calm Mind"], ["Roost"], ["Shadow Ball"]] + }] + }, + "palossand": { + "weight": 1, + "sets": [{ + "species": "Palossand", + "weight": 100, + "item": ["Leftovers", "Rocky Helmet", "Colbur Berry"], + "ability": ["Water Compaction"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Dragon", "Fairy", "Water"], + "moves": [["Stealth Rock"], ["Scorching Sands", "Earth Power"], ["Shore Up"], ["Shadow Ball", "Sludge Bomb"]] + }] + }, + "tsareena": { + "weight": 1, + "sets": [{ + "species": "Tsareena", + "weight": 50, + "item": ["Lum Berry", "Heavy-Duty Boots"], + "ability": ["Queenly Majesty"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Dragon", "Steel"], + "moves": [["Power Whip"], ["Rapid Spin"], ["Knock Off"], ["Triple Axel", "U-turn"]] + }, { + "species": "Tsareena", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Queenly Majesty"], + "evs": {"atk": 252, "def": 228, "spe": 28}, + "nature": ["Impish"], + "teraType": ["Dragon", "Steel", "Poison"], + "moves": [["Power Whip"], ["Rapid Spin"], ["Knock Off"], ["Synthesis"]] + }] + }, + "whimsicott": { + "weight": 1, + "sets": [{ + "species": "Whimsicott", + "weight": 50, + "item": ["Rocky Helmet", "Heavy-Duty Boots"], + "ability": ["Prankster"], + "evs": {"hp": 252, "def": 12, "spa": 76, "spe": 168}, + "nature": ["Timid"], + "teraType": ["Water", "Steel"], + "moves": [["Moonblast"], ["U-turn"], ["Encore"], ["Stun Spore", "Giga Drain", "Leech Seed"]] + }, { + "species": "Whimsicott", + "weight": 50, + "item": ["Rocky Helmet", "Heavy-Duty Boots"], + "ability": ["Prankster"], + "evs": {"hp": 180, "spa": 76, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Water", "Steel"], + "moves": [["Moonblast"], ["U-turn"], ["Encore"], ["Stun Spore", "Giga Drain", "Leech Seed"]] + }] + }, + "wochien": { + "weight": 1, + "sets": [{ + "species": "Wo-Chien", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Tablets of Ruin"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison", "Fairy", "Dragon", "Water"], + "moves": [["Knock Off"], ["Protect"], ["Leech Seed"], ["Stun Spore", "Ruination"]] + }] + }, + "duraludon": { + "weight": 1, + "sets": [{ + "species": "Duraludon", + "weight": 100, + "item": ["Eviolite"], + "ability": ["Heavy Metal"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Fairy", "Water"], + "moves": [["Draco Meteor"], ["Flash Cannon"], ["Stealth Rock"], ["Dark Pulse", "Body Press"]] + }] + }, + "minior": { + "weight": 1, + "sets": [{ + "species": "Minior", + "weight": 50, + "item": ["White Herb"], + "ability": ["Shields Down"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Flying", "Ground"], + "moves": [["Shell Smash"], ["Acrobatics"], ["Earthquake"], ["Stone Edge", "Substitute"]] + }, { + "species": "Minior", + "wantsTera": true, + "weight": 50, + "item": ["White Herb"], + "ability": ["Shields Down"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Ghost"], + "moves": [["Shell Smash"], ["Acrobatics"], ["Earthquake"], ["Tera Blast"]] + }] + }, + "pawmot": { + "weight": 1, + "sets": [{ + "species": "Pawmot", + "weight": 40, + "item": ["Life Orb"], + "ability": ["Natural Cure"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Double Shock"], ["Close Combat"], ["Knock Off", "Ice Punch"], ["Rest"]] + }, { + "species": "Pawmot", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Volt Absorb"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Double Shock"], ["Close Combat"], ["Knock Off", "Ice Punch"], ["Volt Switch"]] + }, { + "species": "Pawmot", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Iron Fist"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Double Shock"], ["Close Combat"], ["Ice Punch"], ["Mach Punch"]] + }] + } + }, + "PU": { + "arcanine": { + "weight": 10, + "sets": [{ + "species": "Arcanine", + "weight": 70, + "item": ["Heavy-Duty Boots"], + "ability": ["Intimidate"], + "evs": {"hp": 160, "atk": 252, "spe": 96}, + "nature": ["Adamant"], + "teraType": ["Normal"], + "moves": [["Curse"], ["Extreme Speed"], ["Flare Blitz"], ["Morning Sun"]] + }, { + "species": "Arcanine", + "weight": 30, + "item": ["Choice Band"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Raging Fury"], ["Extreme Speed"], ["Flare Blitz"], ["Close Combat"]] + }] + }, + "meloetta": { + "weight": 10, + "sets": [{ + "species": "Meloetta", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Normal"], + "moves": [["Hyper Voice"], ["Psychic"], ["Shadow Ball"], ["Focus Blast"]] + }, { + "species": "Meloetta", + "weight": 15, + "item": ["Choice Scarf"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Hyper Voice"], ["Psychic"], ["Shadow Ball"], ["U-turn"]] + }, { + "species": "Meloetta", + "weight": 10, + "item": ["Choice Scarf"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Hyper Voice"], ["Psychic"], ["Shadow Ball"], ["Trick"]] + }, { + "species": "Meloetta", + "wantsTera": true, + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Serene Grace"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fire"], + "moves": [["Tera Blast"], ["Psyshock"], ["Substitute"], ["Calm Mind"]] + }] + }, + "bombirdier": { + "weight": 9, + "sets": [{ + "species": "Bombirdier", + "weight": 70, + "item": ["Heavy-Duty Boots"], + "ability": ["Big Pecks"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Dark"], + "moves": [["Knock Off"], ["Brave Bird"], ["Sucker Punch"], ["Taunt", "Stealth Rock", "Roost"]] + }, { + "species": "Bombirdier", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Big Pecks"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Dark"], + "moves": [["Knock Off"], ["Parting Shot"], ["Stealth Rock"], ["Roost"]] + }] + }, + "florges": { + "weight": 9, + "sets": [{ + "species": "Florges", + "weight": 20, + "item": ["Choice Scarf"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison", "Fairy"], + "moves": [["Moonblast"], ["Psychic Noise", "Calm Mind", "Wish"], ["Synthesis"], ["Trick"]] + }, { + "species": "Florges", + "weight": 20, + "item": ["Choice Specs"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Fairy"], + "moves": [["Moonblast"], ["Trick"], ["Psychic Noise"], ["Synthesis"]] + }, { + "species": "Florges", + "wantsTera": true, + "weight": 15, + "item": ["Choice Scarf"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Moonblast"], ["Tera Blast"], ["Synthesis"], ["Trick"]] + }, { + "species": "Florges", + "wantsTera": true, + "weight": 15, + "item": ["Choice Specs"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Moonblast"], ["Trick"], ["Tera Blast"], ["Synthesis", "Psychic Noise"]] + }, { + "species": "Florges", + "wantsTera": true, + "weight": 10, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Moonblast"], ["Calm Mind"], ["Tera Blast"], ["Synthesis"]] + }, { + "species": "Florges", + "weight": 10, + "item": ["Heavy-Duty Boots"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"hp": 252, "def": 160, "spe": 96}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison"], + "moves": [["Moonblast"], ["Calm Mind"], ["Wish", "Psychic Noise"], ["Synthesis"]] + }, { + "species": "Florges", + "weight": 5, + "item": ["Heavy-Duty Boots"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"hp": 252, "def": 160, "spe": 96}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison"], + "moves": [["Moonblast"], ["Calm Mind"], ["Wish"], ["Synthesis"]] + }, { + "species": "Florges", + "weight": 5, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Flower Veil", "Symbiosis"], + "evs": {"hp": 252, "def": 160, "spe": 96}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Poison"], + "moves": [["Moonblast"], ["Calm Mind"], ["Wish"], ["Protect"]] + }] + }, + "gastrodon": { + "weight": 9, + "sets": [{ + "species": "Gastrodon", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Storm Drain", "Sticky Hold"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Fairy", "Poison"], + "moves": [["Earth Power"], ["Recover"], ["Ice Beam", "Surf", "Clear Smog"], ["Spikes", "Stealth Rock"]] + }, { + "species": "Gastrodon", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers", "Rocky Helmet"], + "ability": ["Storm Drain", "Sticky Hold"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Earth Power"], ["Recover"], ["Ice Beam", "Surf", "Clear Smog"], ["Spikes", "Stealth Rock"]] + }] + }, + "taurospaldeablaze": { + "weight": 9, + "sets": [{ + "species": "Tauros-Paldea-Blaze", + "weight": 25, + "item": ["Leftovers", "Lum Berry"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Grass"], + "moves": [["Bulk Up"], ["Close Combat"], ["Raging Bull", "Flare Blitz"], ["Trailblaze"]] + }, { + "species": "Tauros-Paldea-Blaze", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Steel"], + "moves": [["Bulk Up"], ["Close Combat"], ["Raging Bull", "Flare Blitz"], ["Stone Edge", "Substitute"]] + }, { + "species": "Tauros-Paldea-Blaze", + "weight": 50, + "item": ["Choice Scarf", "Choice Band"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting"], + "moves": [["Flare Blitz"], ["Close Combat"], ["Earthquake"], ["Stone Edge", "Raging Bull"]] + }] + }, + "zoroark": { + "weight": 9, + "sets": [{ + "species": "Zoroark", + "weight": 30, + "item": ["Life Orb"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Dark", "Ghost", "Poison"], + "moves": [["Dark Pulse"], ["Sludge Bomb"], ["Nasty Plot"], ["Focus Blast", "Flamethrower"]] + }, { + "species": "Zoroark", + "weight": 20, + "item": ["Choice Specs"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Dark", "Poison"], + "moves": [["Dark Pulse"], ["Sludge Bomb"], ["Trick"], ["U-turn"]] + }, { + "species": "Zoroark", + "weight": 5, + "item": ["Choice Specs"], + "ability": ["Illusion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Dark", "Poison", "Fighting"], + "moves": [["Dark Pulse"], ["Sludge Bomb"], ["Trick"], ["Focus Blast"]] + }, { + "species": "Zoroark", + "weight": 25, + "item": ["Choice Scarf"], + "ability": ["Illusion"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Fighting"], + "moves": [["Knock Off"], ["U-turn"], ["Trick"], ["Low Kick"]] + }, { + "species": "Zoroark", + "weight": 20, + "item": ["Life Orb", "Heavy-Duty Boots"], + "ability": ["Illusion"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Knock Off"], ["Sucker Punch"], ["Swords Dance"], ["Low Kick", "Aerial Ace"]] + }] + }, + "bellibolt": { + "weight": 7, + "sets": [{ + "species": "Bellibolt", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Static"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Volt Switch"], ["Muddy Water"], ["Slack Off"], ["Toxic"]] + }] + }, + "decidueye": { + "weight": 8, + "sets": [{ + "species": "Decidueye", + "weight": 35, + "item": ["Spell Tag"], + "ability": ["Long Reach"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ghost", "Fairy"], + "moves": [["Swords Dance"], ["Spirit Shackle", "Poltergeist"], ["Shadow Sneak"], ["Leaf Blade", "Low Kick"]] + }, { + "species": "Decidueye", + "weight": 35, + "item": ["Spell Tag", "Choice Band", "Heavy-Duty Boots"], + "ability": ["Long Reach"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Ghost", "Fairy"], + "moves": [["U-turn"], ["Spirit Shackle", "Poltergeist"], ["Shadow Sneak"], ["Leaf Blade", "Low Kick"]] + }, { + "species": "Decidueye", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Long Reach"], + "evs": {"hp": 252, "spd": 120, "spe": 136}, + "nature": ["Calm"], + "teraType": ["Fairy"], + "moves": [["U-turn"], ["Roost"], ["Defog"], ["Leaf Storm"]] + }] + }, + "golurk": { + "weight": 8, + "sets": [{ + "species": "Golurk", + "weight": 50, + "item": ["Colbur Berry"], + "ability": ["No Guard"], + "evs": {"hp": 172, "atk": 252, "spe": 84}, + "nature": ["Adamant"], + "teraType": ["Steel"], + "moves": [["Earthquake"], ["Poltergeist"], ["Stone Edge"], ["Stealth Rock"]] + }, { + "species": "Golurk", + "weight": 50, + "item": ["Choice Band"], + "ability": ["No Guard"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Dark"], + "moves": [["Earthquake"], ["Poltergeist"], ["Stone Edge"], ["Dynamic Punch", "Close Combat"]] + }] + }, + "pawmot": { + "weight": 8, + "sets": [{ + "species": "Pawmot", + "weight": 40, + "item": ["Life Orb", "Heavy-Duty Boots"], + "ability": ["Iron Fist"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Close Combat"], ["Double Shock"], ["Knock Off"], ["Mach Punch"]] + }, { + "species": "Pawmot", + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb", "Natural Cure"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Close Combat"], ["Double Shock"], ["Knock Off"], ["Volt Switch"]] + }, { + "species": "Pawmot", + "weight": 20, + "item": ["Life Orb"], + "ability": ["Natural Cure"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Electric"], + "moves": [["Close Combat"], ["Double Shock"], ["Knock Off"], ["Rest"]] + }] + }, + "rhydon": { + "weight": 8, + "sets": [{ + "species": "Rhydon", + "weight": 100, + "item": ["Eviolite"], + "ability": ["Lightning Rod"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison", "Water"], + "moves": [["Earthquake"], ["Stone Edge"], ["Rock Polish", "Heat Crash"], ["Swords Dance"]] + }] + }, + "rotomheat": { + "weight": 8, + "sets": [{ + "species": "Rotom-Heat", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Levitate"], + "evs": {"hp": 248, "spa": 8, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison", "Steel"], + "moves": [["Overheat"], ["Volt Switch"], ["Nasty Plot", "Thunder Wave"], ["Pain Split"]] + }] + }, + "salazzle": { + "weight": 8, + "sets": [{ + "species": "Salazzle", + "wantsTera": true, + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Corrosion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Fire Blast"], ["Sludge Bomb"], ["Nasty Plot"], ["Tera Blast"]] + }, { + "species": "Salazzle", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Corrosion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Dark", "Ghost"], + "moves": [["Encore", "Toxic"], ["Sludge Bomb"], ["Nasty Plot"], ["Fire Blast"]] + }, { + "species": "Salazzle", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Corrosion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass", "Steel"], + "moves": [["Encore"], ["Sludge Bomb"], ["Toxic"], ["Fire Blast", "Flamethrower"]] + }, { + "species": "Salazzle", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Corrosion"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Grass", "Steel"], + "moves": [["Knock Off"], ["Sludge Bomb"], ["Toxic"], ["Fire Blast", "Flamethrower"]] + }] + }, + "skuntank": { + "weight": 8, + "sets": [{ + "species": "Skuntank", + "weight": 100, + "item": ["Heavy-Duty Boots", "Rocky Helmet", "Black Glasses"], + "ability": ["Aftermath"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly", "Adamant"], + "teraType": ["Dark", "Ghost"], + "moves": [["Gunk Shot"], ["Knock Off"], ["Sucker Punch"], ["Taunt", "Toxic", "Toxic Spikes"]] + }] + }, + "tornadus": { + "weight": 8, + "sets": [{ + "species": "Tornadus", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Defiant"], + "evs": {"atk": 4, "spa": 252, "spe": 252}, + "nature": ["Naive"], + "teraType": ["Flying", "Ground"], + "moves": [["Bleakwind Storm"], ["Focus Blast"], ["U-turn"], ["Knock Off"]] + }, { + "species": "Tornadus", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Prankster"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Flying", "Ground"], + "moves": [["Bleakwind Storm"], ["Focus Blast"], ["U-turn"], ["Taunt"]] + }, { + "species": "Tornadus", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Prankster"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Flying", "Ground"], + "moves": [["Bleakwind Storm"], ["Focus Blast"], ["Nasty Plot"], ["Heat Wave"]] + }, { + "species": "Tornadus", + "weight": 20, + "item": ["Heavy-Duty Boots"], + "ability": ["Defiant"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Bleakwind Storm"], ["Focus Blast", "Heat Wave"], ["Nasty Plot"], ["Tera Blast"]] + }, { + "species": "Tornadus", + "wantsTera": true, + "weight": 10, + "item": ["Choice Specs"], + "ability": ["Defiant"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Bleakwind Storm"], ["Grass Knot"], ["Heat Wave"], ["Tera Blast"]] + }, { + "species": "Tornadus", + "weight": 10, + "item": ["Choice Specs"], + "ability": ["Prankster"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Flying"], + "moves": [["Bleakwind Storm"], ["Grass Knot"], ["Heat Wave"], ["Focus Blast"]] + }] + }, + "toxtricity": { + "weight": 8, + "sets": [{ + "species": "Toxtricity", + "weight": 35, + "item": ["Throat Spray"], + "ability": ["Punk Rock"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Normal"], + "moves": [["Overdrive"], ["Boomburst"], ["Shift Gear"], ["Sludge Bomb", "Snarl"]] + }, { + "species": "Toxtricity", + "weight": 35, + "item": ["Choice Specs"], + "ability": ["Punk Rock"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Normal"], + "moves": [["Overdrive"], ["Boomburst"], ["Volt Switch"], ["Snarl"]] + }, { + "species": "Toxtricity", + "weight": 30, + "item": ["Choice Scarf"], + "ability": ["Punk Rock"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Normal"], + "moves": [["Overdrive"], ["Boomburst"], ["Volt Switch"], ["Snarl", "Sludge Bomb"]] + }] + }, + "bruxish": { + "weight": 6, + "sets": [{ + "species": "Bruxish", + "weight": 35, + "item": ["Choice Scarf"], + "ability": ["Strong Jaw"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Psychic", "Water"], + "moves": [["Psychic Fangs"], ["Wave Crash"], ["Flip Turn"], ["Crunch", "Ice Fang", "Aqua Jet"]] + }, { + "species": "Bruxish", + "weight": 35, + "item": ["Choice Band"], + "ability": ["Strong Jaw"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Psychic", "Water"], + "moves": [["Psychic Fangs"], ["Wave Crash"], ["Flip Turn"], ["Aqua Jet"]] + }, { + "species": "Bruxish", + "weight": 30, + "item": ["Heavy-Duty Boots", "Mystic Water"], + "ability": ["Dazzling"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Psychic Fangs"], ["Swords Dance"], ["Wave Crash"], ["Aqua Jet"]] + }] + }, + "copperajah": { + "weight": 7, + "sets": [{ + "species": "Copperajah", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Heavy Metal"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ghost", "Water"], + "moves": [["Heavy Slam"], ["Whirlwind"], ["Knock Off"], ["Stealth Rock", "Protect"]] + }, { + "species": "Copperajah", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Heavy Metal"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ground", "Ghost", "Water"], + "moves": [["Heavy Slam"], ["Whirlwind", "Stealth Rock", "Protect"], ["Knock Off"], ["Earthquake"]] + }, { + "species": "Copperajah", + "weight": 50, + "item": ["Assault Vest"], + "ability": ["Sheer Force"], + "evs": {"atk": 192, "spd": 192, "spe": 124}, + "nature": ["Adamant"], + "teraType": ["Fairy", "Ground"], + "moves": [["Iron Head"], ["Knock Off"], ["Earthquake"], ["Play Rough"]] + }] + }, + "goodra": { + "weight": 7, + "sets": [{ + "species": "Goodra", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Poison"], + "moves": [["Draco Meteor"], ["Flamethrower"], ["Sludge Bomb"], ["Toxic", "Acid Spray"]] + }, { + "species": "Goodra", + "weight": 25, + "item": ["Heavy-Duty Boots"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Dragon", "Fairy", "Poison"], + "moves": [["Draco Meteor"], ["Flamethrower"], ["Sludge Bomb"], ["Knock Off", "Dragon Tail"]] + }, { + "species": "Goodra", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Sap Sipper"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Dragon", "Fairy", "Poison"], + "moves": [["Draco Meteor"], ["Flamethrower", "Fire Blast"], ["Sludge Bomb"], ["Scald", "Dragon Pulse"]] + }] + }, + "grimmsnarl": { + "weight": 7, + "sets": [{ + "species": "Grimmsnarl", + "weight": 50, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Prankster"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison", "Steel"], + "moves": [["Parting Shot"], ["Spirit Break"], ["Sucker Punch"], ["Thunder Wave"]] + }, { + "species": "Grimmsnarl", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Prankster"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison", "Steel"], + "moves": [["Bulk Up"], ["Spirit Break"], ["Sucker Punch"], ["Substitute"]] + }] + }, + "mudsdale": { + "weight": 7, + "sets": [{ + "species": "Mudsdale", + "weight": 100, + "item": ["Rocky Helmet", "Leftovers"], + "ability": ["Stamina"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Steel"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Body Press", "Heavy Slam", "Stone Edge"], ["Roar"]] + }] + }, + "scrafty": { + "weight": 7, + "sets": [{ + "species": "Scrafty", + "weight": 20, + "item": ["Leftovers"], + "ability": ["Shed Skin"], + "evs": {"hp": 248, "atk": 8, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison"], + "moves": [["Bulk Up"], ["Drain Punch"], ["Knock Off"], ["Rest"]] + }, { + "species": "Scrafty", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Shed Skin"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Poison"], + "moves": [["Dragon Dance"], ["Drain Punch"], ["Knock Off"], ["Poison Jab", "Ice Punch"]] + }, { + "species": "Scrafty", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Shed Skin"], + "evs": {"hp": 176, "atk": 100, "spe": 232}, + "nature": ["Adamant"], + "teraType": ["Poison"], + "moves": [["Dragon Dance"], ["Drain Punch"], ["Knock Off"], ["Poison Jab", "Ice Punch"]] + }] + }, + "tatsugiri": { + "weight": 6, + "sets": [{ + "species": "Tatsugiri", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Storm Drain"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid", "Modest"], + "teraType": ["Fairy", "Ghost"], + "moves": [["Nasty Plot"], ["Draco Meteor"], ["Rapid Spin"], ["Surf"]] + }] + }, + "venusaur": { + "weight": 7, + "sets": [{ + "species": "Venusaur", + "weight": 70, + "item": ["Heavy-Duty Boots", "Life Orb"], + "ability": ["Overgrow"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Leaf Storm"], ["Sludge Bomb"], ["Earth Power"], ["Synthesis"]] + }, { + "species": "Venusaur", + "weight": 15, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Overgrow"], + "evs": {"hp": 252, "def": 200, "spe": 56}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Leech Seed"], ["Sludge Bomb"], ["Giga Drain"], ["Synthesis"]] + }, { + "species": "Venusaur", + "weight": 15, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Overgrow"], + "evs": {"hp": 252, "def": 200, "spe": 56}, + "nature": ["Bold"], + "teraType": ["Water"], + "moves": [["Knock Off"], ["Sludge Bomb"], ["Giga Drain"], ["Synthesis"]] + }] + }, + "articunogalar": { + "weight": 5, + "sets": [{ + "species": "Articuno-Galar", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Competitive"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Steel"], + "moves": [["Future Sight"], ["Recover"], ["Hurricane"], ["U-turn"]] + }] + }, + "coalossal": { + "weight": 4, + "sets": [{ + "species": "Coalossal", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Flame Body"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "ivs": {"atk": 0}, + "nature": ["Calm"], + "teraType": ["Ghost"], + "moves": [["Rapid Spin"], ["Flamethrower"], ["Earth Power"], ["Stealth Rock", "Spikes"]] + }, { + "species": "Coalossal", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Flame Body"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost"], + "moves": [["Rapid Spin"], ["Flamethrower"], ["Earth Power"], ["Stealth Rock", "Spikes"]] + }] + }, + "cramorant": { + "weight": 5, + "sets": [{ + "species": "Cramorant", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Gulp Missile"], + "evs": {"hp": 248, "def": 188, "spd": 56, "spe": 16}, + "nature": ["Bold"], + "teraType": ["Steel"], + "moves": [["Roost"], ["Defog"], ["Surf"], ["Brave Bird"]] + }] + }, + "decidueyehisui": { + "weight": 5, + "sets": [{ + "species": "Decidueye-Hisui", + "weight": 25, + "item": ["Lum Berry"], + "ability": ["Scrappy"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Swords Dance"], ["Trailblaze", "Leaf Blade", "Sucker Punch"], ["Triple Arrows", "Close Combat"], ["Knock Off"]] + }, { + "species": "Decidueye-Hisui", + "weight": 25, + "item": ["Lum Berry"], + "ability": ["Scrappy"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Swords Dance"], ["Knock Off", "Leaf Blade"], ["Triple Arrows", "Close Combat"], ["Sucker Punch"]] + }, { + "species": "Decidueye-Hisui", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Scrappy"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["U-turn"], ["Knock Off"], ["Triple Arrows", "Close Combat"], ["Leaf Blade"]] + }] + }, + "delphox": { + "weight": 5, + "sets": [{ + "species": "Delphox", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Blaze"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Nasty Plot"], ["Fire Blast", "Flamethrower"], ["Psyshock"], ["Encore"]] + }, { + "species": "Delphox", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Blaze"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Grass"], + "moves": [["Nasty Plot"], ["Fire Blast", "Flamethrower"], ["Psyshock"], ["Grass Knot"]] + }] + }, + "dudunsparce": { + "weight": 5, + "sets": [{ + "species": "Dudunsparce", + "weight": 40, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Rattled"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ghost", "Poison"], + "moves": [["Calm Mind"], ["Boomburst"], ["Shadow Ball"], ["Roost"]] + }, { + "species": "Dudunsparce", + "weight": 30, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Serene Grace"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison"], + "moves": [["Dragon Tail"], ["Body Slam"], ["Coil"], ["Roost"]] + }, { + "species": "Dudunsparce", + "weight": 30, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Serene Grace"], + "evs": {"hp": 252, "def": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Poison"], + "moves": [["Dragon Tail", "Toxic"], ["Body Slam"], ["Stealth Rock"], ["Roost"]] + }] + }, + "electrodehisui": { + "weight": 5, + "sets": [{ + "species": "Electrode-Hisui", + "wantsTera": true, + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Soundproof", "Aftermath"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fire"], + "moves": [["Volt Switch"], ["Giga Drain", "Leaf Storm"], ["Thunderbolt"], ["Tera Blast"]] + }, { + "species": "Electrode-Hisui", + "weight": 60, + "item": ["Heavy-Duty Boots"], + "ability": ["Soundproof", "Aftermath"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Volt Switch"], ["Giga Drain", "Leaf Storm"], ["Thunderbolt"], ["Taunt", "Foul Play"]] + }] + }, + "frosmoth": { + "weight": 5, + "sets": [{ + "species": "Frosmoth", + "wantsTera": true, + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Ice Scales"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ground"], + "moves": [["Quiver Dance"], ["Ice Beam"], ["Tera Blast"], ["Giga Drain", "Bug Buzz"]] + }, { + "species": "Frosmoth", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Ice Scales"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Water", "Steel"], + "moves": [["Defog"], ["Ice Beam"], ["U-turn"], ["Giga Drain", "Stun Spore"]] + }] + }, + "hariyama": { + "weight": 5, + "sets": [{ + "species": "Hariyama", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Guts", "Thick Fat"], + "evs": {"hp": 12, "atk": 200, "spd": 252, "spe": 44}, + "nature": ["Adamant"], + "teraType": ["Steel"], + "moves": [["Bulk Up"], ["Drain Punch"], ["Knock Off"], ["Bullet Punch"]] + }] + }, + "hoopa": { + "weight": 5, + "sets": [{ + "species": "Hoopa", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Magician"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fighting", "Ghost"], + "moves": [["Trick"], ["Shadow Ball"], ["Psyshock", "Psychic"], ["Focus Blast"]] + }, { + "species": "Hoopa", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Magician"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost", "Psychic", "Dark", "Fighting"], + "moves": [["Psyshock"], ["Shadow Ball"], ["Future Sight", "Psychic"], ["Focus Blast"]] + }] + }, + "sandslashalola": { + "weight": 5, + "sets": [{ + "species": "Sandslash-Alola", + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers"], + "ability": ["Slush Rush"], + "evs": {"hp": 252, "atk": 4, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Water", "Ghost"], + "moves": [["Rapid Spin"], ["Ice Spinner", "Triple Axel"], ["Knock Off"], ["Spikes", "Stealth Rock"]] + }] + }, + "uxie": { + "weight": 5, + "sets": [{ + "species": "Uxie", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Steel"], + "moves": [["Draining Kiss"], ["Nasty Plot"], ["Psyshock", "Psychic Noise"], ["Encore"]] + }, { + "species": "Uxie", + "weight": 40, + "item": ["Leftovers"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Electric"], + "moves": [["Thunderbolt"], ["Nasty Plot"], ["Psyshock", "Psychic Noise"], ["Encore"]] + }, { + "species": "Uxie", + "weight": 20, + "item": ["Leftovers", "Colbur Berry"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Bold"], + "teraType": ["Steel", "Fairy"], + "moves": [["Stealth Rock", "Encore"], ["Knock Off"], ["Psychic Noise"], ["U-turn"]] + }] + }, + "virizion": { + "weight": 5, + "sets": [{ + "species": "Virizion", + "weight": 100, + "item": ["Lum Berry"], + "ability": ["Justified"], + "evs": {"atk": 252, "spd": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Rock"], + "moves": [["Swords Dance"], ["Close Combat"], ["Stone Edge"], ["Leaf Blade", "Synthesis"]] + }] + }, + "wochien": { + "weight": 5, + "sets": [{ + "species": "Wo-Chien", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Tablets of Ruin"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Poison"], + "moves": [["Knock Off"], ["Protect"], ["Leech Seed"], ["Foul Play", "Ruination"]] + }] + }, + "altaria": { + "weight": 4, + "sets": [{ + "species": "Altaria", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Natural Cure"], + "evs": {"hp": 252, "def": 200, "spd": 56}, + "nature": ["Impish"], + "teraType": ["Steel"], + "moves": [["Brave Bird"], ["Roost"], ["Defog"], ["Will-O-Wisp", "Haze", "Roar"]] + }] + }, + "ambipom": { + "weight": 4, + "sets": [{ + "species": "Ambipom", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Technician"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Normal"], + "moves": [["Fake Out"], ["U-turn"], ["Knock Off"], ["Triple Axel"]] + }] + }, + "articuno": { + "weight": 4, + "sets": [{ + "species": "Articuno", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Pressure"], + "evs": {"hp": 252, "def": 120, "spe": 136}, + "nature": ["Bold"], + "teraType": ["Fairy", "Water", "Steel"], + "moves": [["Roost"], ["U-turn"], ["Freeze-Dry"], ["Roar", "Haze", "Hurricane"]] + }] + }, + "floatzel": { + "weight": 4, + "sets": [{ + "species": "Floatzel", + "weight": 100, + "item": ["Choice Band"], + "ability": ["Water Veil"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Wave Crash"], ["Flip Turn"], ["Ice Spinner"], ["Aqua Jet"]] + }] + }, + "glastrier": { + "weight": 4, + "sets": [{ + "species": "Glastrier", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Chilling Neigh"], + "evs": {"hp": 132, "atk": 252, "spe": 124}, + "nature": ["Adamant"], + "teraType": ["Water", "Poison"], + "moves": [["Icicle Crash"], ["Close Combat"], ["High Horsepower"], ["Swords Dance"]] + }] + }, + "mesprit": { + "weight": 4, + "sets": [{ + "species": "Mesprit", + "weight": 100, + "item": ["Colbur Berry", "Leftovers"], + "ability": ["Levitate"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Bold"], + "teraType": ["Ghost", "Fairy", "Steel"], + "moves": [["Stealth Rock"], ["Psychic Noise"], ["U-turn"], ["Knock Off", "Thunder Wave", "Healing Wish"]] + }] + }, + "oricorio": { + "weight": 4, + "sets": [{ + "species": "Oricorio", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Dancer"], + "evs": {"hp": 252, "spa": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground"], + "moves": [["Quiver Dance"], ["Revelation Dance"], ["Hurricane", "Taunt"], ["Roost"]] + }, { + "species": "Oricorio", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Dancer"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ground"], + "moves": [["Quiver Dance"], ["Revelation Dance"], ["Hurricane", "Taunt"], ["Roost"]] + }] + }, + "palossand": { + "weight": 4, + "sets": [{ + "species": "Palossand", + "weight": 100, + "item": ["", "Rocky Helmet", "Colbur Berry"], + "ability": ["Water Compaction"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Dark", "Water"], + "moves": [["Stealth Rock"], ["Scorching Sands", "Earth Power"], ["Shore Up"], ["Shadow Ball", "Sludge Bomb"]] + }] + }, + "qwilfish": { + "weight": 4, + "sets": [{ + "species": "Qwilfish", + "weight": 50, + "item": ["Rocky Helmet"], + "ability": ["Intimidate"], + "evs": {"hp": 252, "def": 240, "spe": 16}, + "nature": ["Impish"], + "teraType": ["Ground", "Ghost"], + "moves": [["Spikes"], ["Barb Barrage"], ["Flip Turn"], ["Pain Split", "Taunt", "Thunder Wave", "Toxic"]] + }, { + "species": "Qwilfish", + "weight": 50, + "item": ["Leftovers", "Life Orb"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Swords Dance"], ["Gunk Shot"], ["Liquidation"], ["Aqua Jet"]] + }] + }, + "qwilfishhisui": { + "weight": 4, + "sets": [{ + "species": "Qwilfish-Hisui", + "weight": 50, + "item": ["Eviolite"], + "ability": ["Intimidate"], + "evs": {"hp": 252, "spd": 240, "spe": 16}, + "nature": ["Careful"], + "teraType": ["Dragon"], + "moves": [["Spikes"], ["Barb Barrage"], ["Crunch"], ["Taunt", "Haze", "Toxic"]] + }, { + "species": "Qwilfish-Hisui", + "weight": 50, + "item": ["Eviolite"], + "ability": ["Intimidate"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Water"], + "moves": [["Swords Dance"], ["Gunk Shot"], ["Crunch"], ["Aqua Jet"]] + }] + }, + "rotommow": { + "weight": 4, + "sets": [{ + "species": "Rotom-Mow", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Levitate"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Electric"], + "moves": [["Volt Switch"], ["Thunderbolt", "Discharge"], ["Leaf Storm"], ["Trick"]] + }] + }, + "sandaconda": { + "weight": 4, + "sets": [{ + "species": "Sandaconda", + "weight": 100, + "item": ["Rocky Helmet", "Leftovers", "Heavy-Duty Boots"], + "ability": ["Shed Skin"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Ghost", "Dragon"], + "moves": [["Stealth Rock"], ["Earthquake"], ["Glare", "Stone Edge"], ["Rest"]] + }] + }, + "sneasel": { + "weight": 4, + "sets": [{ + "species": "Sneasel", + "weight": 100, + "item": ["Heavy-Duty Boots"], + "ability": ["Inner Focus"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Ice", "Dark", "Ghost"], + "moves": [["Swords Dance"], ["Triple Axel", "Icicle Crash"], ["Knock Off"], ["Ice Shard"]] + }] + }, + "sneaselhisui": { + "weight": 4, + "sets": [{ + "species": "Sneasel-Hisui", + "weight": 100, + "item": ["Eviolite"], + "ability": ["Inner Focus"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark"], + "moves": [["Swords Dance"], ["Gunk Shot"], ["Close Combat"], ["Throat Chop"]] + }] + }, + "whimsicott": { + "weight": 4, + "sets": [{ + "species": "Whimsicott", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Prankster", "Infiltrator"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Energy Ball"], ["Moonblast"], ["Psychic"], ["Switcheroo"]] + }, { + "species": "Whimsicott", + "weight": 50, + "item": ["Choice Specs"], + "ability": ["Infiltrator"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Energy Ball"], ["Moonblast"], ["Psychic"], ["U-turn"]] + }] + }, + "braviaryhisui": { + "weight": 3, + "sets": [{ + "species": "Braviary-Hisui", + "weight": 100, + "item": ["Life Orb"], + "ability": ["Sheer Force"], + "evs": {"def": 4, "spa": 252, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Fire"], + "moves": [["Psychic"], ["Hurricane"], ["Heat Wave"], ["Agility", "Roost"]] + }] + }, + "farigiraf": { + "weight": 3, + "sets": [{ + "species": "Farigiraf", + "wantsTera": true, + "weight": 100, + "item": ["Life Orb"], + "ability": ["Armor Tail"], + "evs": {"hp": 252, "def": 4, "spa": 252}, + "ivs": {"atk": 0, "spe": 0}, + "nature": ["Quiet"], + "teraType": ["Fairy", "Fire"], + "moves": [["Psyshock"], ["Tera Blast"], ["Trick Room"], ["Nasty Plot"]] + }] + }, + "hattrem": { + "weight": 2, + "sets": [{ + "species": "Hattrem", + "weight": 100, + "item": ["Eviolite"], + "ability": ["Magic Bounce"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy", "Fire"], + "moves": [["Psychic"], ["Nuzzle"], ["Mystical Fire"], ["Giga Drain", "Healing Wish"]] + }] + }, + "naclstack": { + "weight": 2, + "sets": [{ + "species": "Naclstack", + "weight": 50, + "item": ["Eviolite"], + "ability": ["Purifying Salt"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Water"], + "moves": [["Salt Cure"], ["Protect"], ["Recover"], ["Curse"]] + }, { + "species": "Naclstack", + "weight": 50, + "item": ["Eviolite"], + "ability": ["Purifying Salt"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ghost"], + "moves": [["Salt Cure"], ["Protect"], ["Recover"], ["Stealth Rock"]] + }] + }, + "orthworm": { + "weight": 1, + "sets": [{ + "species": "Orthworm", + "weight": 50, + "item": ["Leftovers"], + "ability": ["Earth Eater"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ghost", "Electric"], + "moves": [["Coil"], ["Iron Tail"], ["Body Press"], ["Stealth Rock"]] + }, { + "species": "Orthworm", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Earth Eater"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ghost", "Electric"], + "moves": [["Iron Defense"], ["Heavy Slam"], ["Body Press"], ["Stealth Rock", "Spikes"]] + }, { + "species": "Orthworm", + "weight": 25, + "item": ["Leftovers"], + "ability": ["Earth Eater"], + "evs": {"hp": 248, "def": 8, "spd": 252}, + "nature": ["Careful"], + "teraType": ["Ghost", "Electric"], + "moves": [["Spikes"], ["Heavy Slam"], ["Body Press"], ["Stealth Rock"]] + }] + }, + "passimian": { + "weight": 3, + "sets": [{ + "species": "Passimian", + "weight": 100, + "item": ["Choice Scarf"], + "ability": ["Defiant"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Fighting", "Dark"], + "moves": [["Close Combat"], ["U-turn"], ["Knock Off"], ["Gunk Shot", "Earthquake"]] + }] + }, + "brutebonnet": { + "weight": 2, + "sets": [{ + "species": "Brute Bonnet", + "weight": 100, + "item": ["Choice Band"], + "ability": ["Protosynthesis"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant"], + "teraType": ["Fighting", "Dark"], + "moves": [["Close Combat"], ["Seed Bomb"], ["Crunch"], ["Sucker Punch"]] + }] + }, + "jolteon": { + "weight": 2, + "sets": [{ + "species": "Jolteon", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Fairy"], + "moves": [["Thunderbolt"], ["Calm Mind"], ["Volt Switch"], ["Alluring Voice"]] + }, { + "species": "Jolteon", + "weight": 30, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ghost"], + "moves": [["Thunderbolt"], ["Calm Mind"], ["Volt Switch"], ["Shadow Ball"]] + }, { + "species": "Jolteon", + "wantsTera": true, + "weight": 40, + "item": ["Heavy-Duty Boots"], + "ability": ["Volt Absorb"], + "evs": {"spa": 252, "spd": 4, "spe": 252}, + "ivs": {"atk": 0}, + "nature": ["Timid"], + "teraType": ["Ice"], + "moves": [["Thunderbolt"], ["Calm Mind"], ["Volt Switch"], ["Tera Blast"]] + }] + }, + "sandslash": { + "weight": 2, + "sets": [{ + "species": "Sandslash", + "weight": 100, + "item": ["Heavy-Duty Boots", "Leftovers", "Rocky Helmet"], + "ability": ["Sand Rush"], + "evs": {"hp": 248, "def": 252, "spd": 8}, + "nature": ["Impish"], + "teraType": ["Ghost", "Water"], + "moves": [["Earthquake"], ["Rapid Spin"], ["Spikes", "Stealth Rock"], ["Knock Off"]] + }] + }, + "emboar": { + "weight": 1, + "sets": [{ + "species": "Emboar", + "weight": 50, + "item": ["Heavy-Duty Boots", "Choice Band"], + "ability": ["Reckless"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Adamant", "Jolly"], + "teraType": ["Dark"], + "moves": [["Flare Blitz"], ["Close Combat"], ["Sucker Punch"], ["Knock Off", "Earthquake"]] + }, { + "species": "Emboar", + "weight": 50, + "item": ["Choice Scarf"], + "ability": ["Reckless"], + "evs": {"atk": 252, "def": 4, "spe": 252}, + "nature": ["Jolly"], + "teraType": ["Dark", "Fighting", "Fire"], + "moves": [["Flare Blitz"], ["Close Combat"], ["Knock Off"], ["Head Smash", "Earthquake"]] + }] + }, + "oricoriosensu": { + "weight": 1, + "sets": [{ + "species": "Oricorio-Sensu", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Dancer"], + "evs": {"hp": 252, "spa": 252, "spd": 4}, + "ivs": {"atk": 0}, + "nature": ["Modest"], + "teraType": ["Ground", "Fairy"], + "moves": [["Quiver Dance"], ["Revelation Dance"], ["Hurricane", "Taunt"], ["Roost"]] + }, { + "species": "Oricorio-Sensu", + "weight": 50, + "item": ["Heavy-Duty Boots"], + "ability": ["Dancer"], + "evs": {"hp": 252, "def": 252, "spa": 4}, + "ivs": {"atk": 0}, + "nature": ["Bold"], + "teraType": ["Ground", "Fairy"], + "moves": [["Quiver Dance"], ["Revelation Dance"], ["Hurricane", "Taunt"], ["Roost"]] + }] + }, + "regirock": { + "weight": 1, + "sets": [{ + "species": "Regirock", + "weight": 100, + "item": ["Leftovers"], + "ability": ["Clear Body"], + "evs": {"hp": 252, "def": 252, "spd": 4}, + "nature": ["Impish"], + "teraType": ["Ghost", "Poison"], + "moves": [["Stealth Rock"], ["Stone Edge"], ["Body Press"], ["Thunder Wave", "Iron Defense"]] + }] + } + } +} diff --git a/data/random-battles/gen9/sets.json b/data/random-battles/gen9/sets.json new file mode 100644 index 000000000000..eab0b7f52388 --- /dev/null +++ b/data/random-battles/gen9/sets.json @@ -0,0 +1,7726 @@ +{ + "venusaur": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Giga Drain", "Leech Seed", "Sleep Powder", "Sludge Bomb", "Substitute"], + "abilities": ["Chlorophyll", "Overgrow"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Energy Ball", "Knock Off", "Sleep Powder", "Sludge Bomb", "Synthesis", "Toxic"], + "abilities": ["Chlorophyll", "Overgrow"], + "teraTypes": ["Dark", "Steel", "Water"] + } + ] + }, + "charizard": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Flamethrower", "Focus Blast", "Hurricane", "Will-O-Wisp"], + "abilities": ["Blaze"], + "teraTypes": ["Dragon", "Fire", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Flare Blitz", "Outrage", "Swords Dance"], + "abilities": ["Blaze"], + "teraTypes": ["Dragon", "Ground"] + } + ] + }, + "blastoise": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Hydro Pump", "Ice Beam", "Shell Smash"], + "abilities": ["Torrent"], + "teraTypes": ["Ground", "Steel", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Hydro Pump", "Ice Beam", "Shell Smash", "Tera Blast"], + "abilities": ["Torrent"], + "teraTypes": ["Electric", "Grass"] + } + ] + }, + "arbok": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Earthquake", "Glare", "Gunk Shot", "Knock Off", "Sucker Punch", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Coil", "Earthquake", "Gunk Shot", "Trailblaze"], + "abilities": ["Intimidate"], + "teraTypes": ["Grass", "Ground"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Coil", "Earthquake", "Gunk Shot", "Sucker Punch"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Ground"] + } + ] + }, + "pikachu": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Fake Out", "Knock Off", "Play Rough", "Surf", "Volt Switch", "Volt Tackle"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Water"] + } + ] + }, + "raichu": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Alluring Voice", "Encore", "Focus Blast", "Grass Knot", "Knock Off", "Nasty Plot", "Nuzzle", "Surf", "Thunderbolt", "Volt Switch"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Grass", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Encore", "Focus Blast", "Nasty Plot", "Surf", "Tera Blast", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Ice"] + } + ] + }, + "raichualola": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Alluring Voice", "Focus Blast", "Grass Knot", "Psychic", "Psyshock", "Surf", "Thunderbolt", "Volt Switch"], + "abilities": ["Surge Surfer"], + "teraTypes": ["Fairy", "Fighting", "Grass", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Alluring Voice", "Focus Blast", "Grass Knot", "Nasty Plot", "Psyshock", "Surf", "Thunderbolt"], + "abilities": ["Surge Surfer"], + "teraTypes": ["Fairy", "Fighting", "Grass", "Water"] + } + ] + }, + "sandslash": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Knock Off", "Rapid Spin", "Spikes", "Stone Edge", "Swords Dance"], + "abilities": ["Sand Rush"], + "teraTypes": ["Dragon", "Steel", "Water"] + } + ] + }, + "sandslashalola": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Iron Head", "Knock Off", "Rapid Spin", "Spikes", "Triple Axel"], + "abilities": ["Slush Rush"], + "teraTypes": ["Flying", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Ice Shard", "Knock Off", "Rapid Spin", "Swords Dance", "Triple Axel"], + "abilities": ["Slush Rush"], + "teraTypes": ["Ground"] + } + ] + }, + "clefable": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Fire Blast", "Knock Off", "Moonblast", "Moonlight", "Stealth Rock", "Thunder Wave"], + "abilities": ["Magic Guard", "Unaware"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Fire Blast", "Moonblast", "Moonlight"], + "abilities": ["Magic Guard", "Unaware"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "ninetales": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Fire Blast", "Nasty Plot", "Scorching Sands", "Solar Beam"], + "abilities": ["Drought"], + "teraTypes": ["Fire", "Grass"] + } + ] + }, + "ninetalesalola": { + "level": 78, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Aurora Veil", "Blizzard", "Encore", "Moonblast", "Nasty Plot"], + "abilities": ["Snow Warning"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Aurora Veil", "Blizzard", "Freeze-Dry", "Moonblast", "Nasty Plot"], + "abilities": ["Snow Warning"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "wigglytuff": { + "level": 96, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Alluring Voice", "Dazzling Gleam", "Fire Blast", "Knock Off", "Protect", "Thunder Wave", "Wish"], + "abilities": ["Competitive"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "vileplume": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Giga Drain", "Leech Seed", "Sleep Powder", "Sludge Bomb", "Strength Sap"], + "abilities": ["Effect Spore"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "venomoth": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bug Buzz", "Quiver Dance", "Sleep Powder", "Sludge Wave"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug", "Poison", "Steel", "Water"] + } + ] + }, + "dugtrio": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Earthquake", "Stone Edge", "Sucker Punch", "Swords Dance"], + "abilities": ["Arena Trap"], + "teraTypes": ["Dark", "Fairy", "Flying", "Ghost", "Ground"] + }, + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Stone Edge", "Sucker Punch", "Throat Chop"], + "abilities": ["Arena Trap"], + "teraTypes": ["Dark", "Fairy", "Flying", "Ghost", "Ground"] + } + ] + }, + "dugtrioalola": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Iron Head", "Stealth Rock", "Stone Edge", "Sucker Punch", "Swords Dance"], + "abilities": ["Sand Force", "Tangling Hair"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "persian": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Double-Edge", "Gunk Shot", "Knock Off", "Switcheroo", "U-turn"], + "abilities": ["Limber"], + "teraTypes": ["Normal", "Poison"] + }, + { + "role": "Fast Attacker", + "movepool": ["Double-Edge", "Fake Out", "Knock Off", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Normal"] + } + ] + }, + "persianalola": { + "level": 86, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Dark Pulse", "Hypnosis", "Nasty Plot", "Power Gem", "Thunderbolt"], + "abilities": ["Fur Coat"], + "teraTypes": ["Dark", "Electric"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dark Pulse", "Nasty Plot", "Tera Blast", "Thunderbolt"], + "abilities": ["Fur Coat"], + "teraTypes": ["Fairy", "Poison"] + }, + { + "role": "Fast Support", + "movepool": ["Knock Off", "Parting Shot", "Taunt", "Thunder Wave"], + "abilities": ["Fur Coat"], + "teraTypes": ["Fairy", "Ghost", "Poison"] + } + ] + }, + "golduck": { + "level": 90, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Encore", "Grass Knot", "Hydro Pump", "Ice Beam", "Nasty Plot"], + "abilities": ["Cloud Nine", "Swift Swim"], + "teraTypes": ["Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Flip Turn", "Grass Knot", "Hydro Pump", "Ice Beam", "Nasty Plot"], + "abilities": ["Cloud Nine", "Swift Swim"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "annihilape": { + "level": 76, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Gunk Shot", "Rage Fist", "Rest", "Taunt"], + "abilities": ["Defiant"], + "teraTypes": ["Fairy", "Ghost", "Steel", "Water"] + } + ] + }, + "arcanine": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Morning Sun", "Roar", "Will-O-Wisp"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Morning Sun", "Wild Charge"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Normal"] + } + ] + }, + "arcaninehisui": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Head Smash", "Wild Charge"], + "abilities": ["Rock Head"], + "teraTypes": ["Fire", "Normal", "Rock"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Extreme Speed", "Flare Blitz", "Head Smash", "Morning Sun"], + "abilities": ["Rock Head"], + "teraTypes": ["Fire", "Grass", "Normal", "Rock"] + } + ] + }, + "poliwrath": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Liquidation", "Rain Dance"], + "abilities": ["Swift Swim"], + "teraTypes": ["Dark", "Fighting", "Water"] + }, + { + "role": "AV Pivot", + "movepool": ["Circle Throw", "Close Combat", "Knock Off", "Liquidation"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dark", "Fighting", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Ice Punch", "Knock Off", "Liquidation", "Poison Jab"], + "abilities": ["Water Absorb"], + "teraTypes": ["Fighting", "Steel", "Water"] + } + ] + }, + "victreebel": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Poison Jab", "Power Whip", "Sucker Punch", "Swords Dance"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Wallbreaker", + "movepool": ["Knock Off", "Power Whip", "Sleep Powder", "Sludge Wave", "Strength Sap", "Sucker Punch"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Grass", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Power Whip", "Sludge Wave", "Sunny Day", "Weather Ball"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire"] + } + ] + }, + "tentacruel": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flip Turn", "Haze", "Knock Off", "Rapid Spin", "Sludge Bomb", "Surf", "Toxic", "Toxic Spikes"], + "abilities": ["Liquid Ooze"], + "teraTypes": ["Flying", "Grass"] + } + ] + }, + "golem": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Explosion", "Rock Polish", "Stealth Rock", "Stone Edge"], + "abilities": ["Sturdy"], + "teraTypes": ["Grass", "Ground", "Steel"] + } + ] + }, + "golemalola": { + "level": 93, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Double-Edge", "Earthquake", "Rock Polish", "Stone Edge"], + "abilities": ["Galvanize"], + "teraTypes": ["Flying", "Grass"] + }, + { + "role": "Wallbreaker", + "movepool": ["Double-Edge", "Earthquake", "Explosion", "Stone Edge"], + "abilities": ["Galvanize"], + "teraTypes": ["Electric", "Grass", "Ground"] + } + ] + }, + "slowbro": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Psychic Noise", "Psyshock", "Scald", "Slack Off", "Thunder Wave"], + "abilities": ["Regenerator"], + "teraTypes": ["Fairy", "Water"] + }, + { + "role": "AV Pivot", + "movepool": ["Body Press", "Fire Blast", "Future Sight", "Ice Beam", "Psychic Noise", "Scald"], + "abilities": ["Regenerator"], + "teraTypes": ["Fairy", "Fighting"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Scald", "Slack Off"], + "abilities": ["Regenerator"], + "teraTypes": ["Fighting"] + } + ] + }, + "slowbrogalar": { + "level": 87, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Earthquake", "Fire Blast", "Foul Play", "Psychic", "Shell Side Arm", "Surf"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Ground", "Poison", "Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Fire Blast", "Psychic", "Shell Side Arm", "Trick Room"], + "abilities": ["Regenerator"], + "teraTypes": ["Poison", "Psychic"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Fire Blast", "Psychic", "Shell Side Arm", "Slack Off", "Thunder Wave"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Ground", "Poison"] + } + ] + }, + "dodrio": { + "level": 86, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Brave Bird", "Double-Edge", "Drill Run", "Knock Off", "Swords Dance"], + "abilities": ["Early Bird"], + "teraTypes": ["Flying", "Ground", "Normal"] + } + ] + }, + "dewgong": { + "level": 94, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Flip Turn", "Knock Off", "Surf", "Triple Axel"], + "abilities": ["Thick Fat"], + "teraTypes": ["Dragon", "Grass", "Ground", "Poison", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Encore", "Flip Turn", "Hydro Pump", "Ice Beam", "Knock Off", "Surf"], + "abilities": ["Thick Fat"], + "teraTypes": ["Dragon", "Grass", "Ground", "Poison", "Steel"] + } + ] + }, + "muk": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Drain Punch", "Gunk Shot", "Haze", "Ice Punch", "Knock Off", "Poison Jab", "Shadow Sneak", "Toxic Spikes"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark"] + }, + { + "role": "AV Pivot", + "movepool": ["Drain Punch", "Gunk Shot", "Ice Punch", "Knock Off", "Poison Jab", "Shadow Sneak"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark"] + } + ] + }, + "mukalola": { + "level": 82, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Drain Punch", "Gunk Shot", "Ice Punch", "Knock Off", "Poison Jab", "Shadow Sneak"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark"] + } + ] + }, + "cloyster": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Drill Run", "Icicle Spear", "Rock Blast", "Shell Smash"], + "abilities": ["Skill Link"], + "teraTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Hydro Pump", "Icicle Spear", "Rock Blast", "Shell Smash"], + "abilities": ["Skill Link"], + "teraTypes": ["Ice", "Rock"] + } + ] + }, + "gengar": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Focus Blast", "Nasty Plot", "Shadow Ball", "Sludge Wave", "Trick"], + "abilities": ["Cursed Body"], + "teraTypes": ["Dark", "Fighting", "Ghost"] + }, + { + "role": "Fast Attacker", + "movepool": ["Encore", "Focus Blast", "Shadow Ball", "Sludge Wave", "Toxic Spikes", "Will-O-Wisp"], + "abilities": ["Cursed Body"], + "teraTypes": ["Dark", "Fighting", "Ghost"] + } + ] + }, + "hypno": { + "level": 95, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Knock Off", "Psychic Noise", "Thunder Wave", "Toxic"], + "abilities": ["Insomnia"], + "teraTypes": ["Dark", "Fairy", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Focus Blast", "Protect", "Psychic Noise", "Toxic"], + "abilities": ["Insomnia"], + "teraTypes": ["Dark", "Fighting", "Steel"] + } + ] + }, + "electrode": { + "level": 92, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Explosion", "Foul Play", "Taunt", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Soundproof", "Static"], + "teraTypes": ["Dark", "Electric"] + }, + { + "role": "Tera Blast user", + "movepool": ["Taunt", "Tera Blast", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Soundproof", "Static"], + "teraTypes": ["Ice"] + } + ] + }, + "electrodehisui": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Giga Drain", "Leaf Storm", "Taunt", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Soundproof", "Static"], + "teraTypes": ["Electric", "Grass"] + }, + { + "role": "Fast Support", + "movepool": ["Giga Drain", "Leech Seed", "Substitute", "Thunderbolt"], + "abilities": ["Soundproof"], + "teraTypes": ["Poison"] + } + ] + }, + "exeggutor": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Leech Seed", "Psychic", "Psychic Noise", "Sleep Powder", "Sludge Bomb", "Substitute"], + "abilities": ["Harvest"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Leech Seed", "Protect", "Psychic Noise", "Substitute"], + "abilities": ["Harvest"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Giga Drain", "Psychic", "Psyshock", "Substitute"], + "abilities": ["Harvest"], + "teraTypes": ["Steel"] + } + ] + }, + "exeggutoralola": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Draco Meteor", "Flamethrower", "Giga Drain", "Leaf Storm"], + "abilities": ["Frisk"], + "teraTypes": ["Fire"] + }, + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Dragon Tail", "Flamethrower", "Knock Off", "Moonlight", "Sleep Powder", "Stun Spore", "Wood Hammer"], + "abilities": ["Harvest"], + "teraTypes": ["Fire"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dragon Pulse", "Flamethrower", "Giga Drain"], + "abilities": ["Harvest"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "hitmonlee": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["High Jump Kick", "Knock Off", "Mach Punch", "Poison Jab", "Stone Edge"], + "abilities": ["Reckless"], + "teraTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Poison Jab", "Stone Edge", "Swords Dance"], + "abilities": ["Unburden"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "hitmonchan": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Drain Punch", "Ice Punch", "Knock Off", "Mach Punch", "Rapid Spin", "Swords Dance"], + "abilities": ["Inner Focus", "Iron Fist"], + "teraTypes": ["Dark", "Fighting"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Knock Off", "Poison Jab", "Rapid Spin"], + "abilities": ["Iron Fist"], + "teraTypes": ["Dark", "Poison", "Steel"] + } + ] + }, + "weezing": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Fire Blast", "Gunk Shot", "Pain Split", "Sludge Bomb", "Toxic Spikes", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "weezinggalar": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Defog", "Fire Blast", "Gunk Shot", "Pain Split", "Strange Steam", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "rhydon": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Megahorn", "Stealth Rock", "Stone Edge", "Swords Dance"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Dragon", "Fairy", "Flying", "Grass", "Water"] + } + ] + }, + "scyther": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bug Bite", "Close Combat", "Dual Wingbeat", "Swords Dance"], + "abilities": ["Technician"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Support", + "movepool": ["Close Combat", "Defog", "Dual Wingbeat", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Fighting"] + } + ] + }, + "tauros": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Body Slam", "Close Combat", "Earthquake", "Throat Chop"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fighting", "Ground", "Normal"] + }, + { + "role": "Wallbreaker", + "movepool": ["Body Slam", "Close Combat", "Throat Chop", "Zen Headbutt"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fighting", "Normal", "Psychic"] + } + ] + }, + "taurospaldeacombat": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Iron Head", "Stone Edge", "Throat Chop"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Fighting", "Steel"] + } + ] + }, + "taurospaldeablaze": { + "level": 81, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Bulk Up", "Close Combat", "Raging Bull", "Substitute"], + "abilities": ["Cud Chew"], + "teraTypes": ["Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Flare Blitz", "Stone Edge", "Wild Charge"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting"] + } + ] + }, + "taurospaldeaaqua": { + "level": 81, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Bulk Up", "Close Combat", "Liquidation", "Substitute"], + "abilities": ["Cud Chew"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Aqua Jet", "Close Combat", "Stone Edge", "Wave Crash"], + "abilities": ["Intimidate"], + "teraTypes": ["Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Aqua Jet", "Bulk Up", "Close Combat", "Liquidation"], + "abilities": ["Intimidate"], + "teraTypes": ["Water"] + } + ] + }, + "gyarados": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Stone Edge", "Temper Flare", "Waterfall"], + "abilities": ["Intimidate", "Moxie"], + "teraTypes": ["Ground"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Earthquake", "Tera Blast", "Waterfall"], + "abilities": ["Intimidate", "Moxie"], + "teraTypes": ["Flying"] + } + ] + }, + "lapras": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Freeze-Dry", "Hydro Pump", "Ice Beam", "Sparkling Aria"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ice", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Freeze-Dry", "Rest", "Sleep Talk", "Sparkling Aria"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dragon", "Ghost", "Ground", "Poison", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Icicle Spear", "Waterfall"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ground"] + } + ] + }, + "ditto": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Transform"], + "abilities": ["Imposter"], + "teraTypes": ["Bug", "Dark", "Dragon", "Electric", "Fairy", "Fighting", "Fire", "Flying", "Ghost", "Grass", "Ground", "Ice", "Normal", "Poison", "Psychic", "Rock", "Steel", "Water"] + } + ] + }, + "vaporeon": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flip Turn", "Ice Beam", "Protect", "Scald", "Wish"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ghost", "Ground", "Poison"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Protect", "Scald", "Wish"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ghost", "Ground", "Poison"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Haze", "Protect", "Roar", "Scald", "Wish"], + "abilities": ["Water Absorb"], + "teraTypes": ["Ghost", "Ground", "Poison"] + } + ] + }, + "jolteon": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Alluring Voice", "Calm Mind", "Shadow Ball", "Thunderbolt", "Volt Switch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Electric", "Fairy"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Substitute", "Tera Blast", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Ice"] + } + ] + }, + "flareon": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Facade", "Flare Blitz", "Quick Attack", "Trailblaze", "Will-O-Wisp"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "snorlax": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Curse", "Rest", "Sleep Talk"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Poison"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Crunch", "Curse", "Earthquake", "Rest"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground", "Poison"] + } + ] + }, + "articuno": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Freeze-Dry", "Haze", "Roost", "Substitute", "U-turn"], + "abilities": ["Pressure"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "articunogalar": { + "level": 84, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Freezing Glare", "Hurricane", "Recover"], + "abilities": ["Competitive"], + "teraTypes": ["Steel"] + } + ] + }, + "zapdos": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Discharge", "Heat Wave", "Hurricane", "Roost", "Thunderbolt", "U-turn"], + "abilities": ["Static"], + "teraTypes": ["Electric", "Steel"] + } + ] + }, + "zapdosgalar": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Bulk Up", "Close Combat", "Knock Off", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Fighting", "Steel"] + } + ] + }, + "moltres": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Brave Bird", "Fire Blast", "Roost", "Scorching Sands", "U-turn", "Will-O-Wisp"], + "abilities": ["Flame Body"], + "teraTypes": ["Dragon", "Ground", "Steel"] + } + ] + }, + "moltresgalar": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Agility", "Fiery Wrath", "Hurricane", "Nasty Plot", "Rest"], + "abilities": ["Berserk"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "dragonite": { + "level": 74, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Outrage", "Roost"], + "abilities": ["Multiscale"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Iron Head", "Outrage"], + "abilities": ["Multiscale"], + "teraTypes": ["Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Earthquake", "Outrage", "Tera Blast"], + "abilities": ["Multiscale"], + "teraTypes": ["Flying"] + } + ] + }, + "mewtwo": { + "level": 72, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Fire Blast", "Nasty Plot", "Psystrike", "Recover"], + "abilities": ["Unnerve"], + "teraTypes": ["Dark", "Fighting", "Fire", "Psychic"] + } + ] + }, + "mew": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Knock Off", "Psychic", "Psychic Noise", "Stealth Rock", "Toxic Spikes", "U-turn", "Will-O-Wisp"], + "abilities": ["Synchronize"], + "teraTypes": ["Dark", "Fairy", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Leech Life", "Psychic Fangs", "Swords Dance"], + "abilities": ["Synchronize"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Aura Sphere", "Bug Buzz", "Dark Pulse", "Earth Power", "Fire Blast", "Hydro Pump", "Nasty Plot", "Psychic", "Psyshock"], + "abilities": ["Synchronize"], + "teraTypes": ["Dark", "Fighting", "Fire", "Ground", "Psychic", "Water"] + } + ] + }, + "meganium": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dragon Tail", "Encore", "Energy Ball", "Knock Off", "Leech Seed", "Synthesis"], + "abilities": ["Overgrow"], + "teraTypes": ["Poison", "Steel", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Knock Off", "Petal Blizzard", "Swords Dance"], + "abilities": ["Overgrow"], + "teraTypes": ["Ground", "Steel", "Water"] + } + ] + }, + "typhlosion": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Eruption", "Fire Blast", "Focus Blast", "Scorching Sands"], + "abilities": ["Blaze", "Flash Fire"], + "teraTypes": ["Fire"] + } + ] + }, + "typhlosionhisui": { + "level": 83, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Fire Blast", "Focus Blast", "Shadow Ball", "Substitute", "Will-O-Wisp"], + "abilities": ["Blaze"], + "teraTypes": ["Fighting", "Fire", "Ghost"] + }, + { + "role": "Fast Attacker", + "movepool": ["Eruption", "Fire Blast", "Focus Blast", "Shadow Ball"], + "abilities": ["Blaze"], + "teraTypes": ["Fire"] + } + ] + }, + "feraligatr": { + "level": 79, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Crunch", "Dragon Dance", "Ice Punch", "Liquidation"], + "abilities": ["Sheer Force"], + "teraTypes": ["Dark", "Dragon", "Steel", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Ice Punch", "Liquidation", "Trailblaze"], + "abilities": ["Sheer Force"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "furret": { + "level": 94, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Double-Edge", "Knock Off", "Trick", "U-turn"], + "abilities": ["Frisk"], + "teraTypes": ["Ghost", "Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Brick Break", "Double-Edge", "Knock Off", "Tidy Up"], + "abilities": ["Frisk"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "noctowl": { + "level": 95, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Defog", "Hurricane", "Hyper Voice", "Nasty Plot", "Roost"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Ground", "Normal", "Steel"] + } + ] + }, + "ariados": { + "level": 95, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Knock Off", "Megahorn", "Poison Jab", "Sticky Web", "Sucker Punch", "Toxic Spikes"], + "abilities": ["Insomnia", "Swarm"], + "teraTypes": ["Ghost"] + } + ] + }, + "lanturn": { + "level": 89, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Scald", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Ice Beam", "Scald", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "ampharos": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Agility", "Dazzling Gleam", "Focus Blast", "Thunderbolt", "Volt Switch"], + "abilities": ["Static"], + "teraTypes": ["Electric", "Fairy"] + }, + { + "role": "AV Pivot", + "movepool": ["Dazzling Gleam", "Discharge", "Dragon Tail", "Focus Blast", "Thunderbolt", "Volt Switch"], + "abilities": ["Static"], + "teraTypes": ["Fairy"] + } + ] + }, + "bellossom": { + "level": 84, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Giga Drain", "Quiver Dance", "Sleep Powder", "Strength Sap"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Poison", "Steel", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Giga Drain", "Moonblast", "Quiver Dance", "Sludge Bomb", "Strength Sap"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fairy", "Poison"] + }, + { + "role": "Tera Blast user", + "movepool": ["Giga Drain", "Quiver Dance", "Strength Sap", "Tera Blast"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Rock"] + } + ] + }, + "azumarill": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Aqua Jet", "Belly Drum", "Ice Spinner", "Knock Off", "Liquidation", "Play Rough", "Superpower"], + "abilities": ["Huge Power"], + "teraTypes": ["Water"] + } + ] + }, + "sudowoodo": { + "level": 94, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Head Smash", "Stealth Rock", "Sucker Punch", "Wood Hammer"], + "abilities": ["Rock Head"], + "teraTypes": ["Grass", "Rock"] + } + ] + }, + "politoed": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Haze", "Hydro Pump", "Hypnosis", "Ice Beam", "Rest", "Surf"], + "abilities": ["Drizzle"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Focus Blast", "Hydro Pump", "Ice Beam", "Weather Ball"], + "abilities": ["Drizzle"], + "teraTypes": ["Water"] + } + ] + }, + "jumpluff": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Acrobatics", "Leech Seed", "Strength Sap", "Substitute"], + "abilities": ["Infiltrator"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Acrobatics", "Encore", "Sleep Powder", "Strength Sap", "U-turn"], + "abilities": ["Infiltrator"], + "teraTypes": ["Steel"] + } + ] + }, + "sunflora": { + "level": 100, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Dazzling Gleam", "Earth Power", "Leaf Storm", "Sludge Bomb"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fairy", "Grass", "Ground", "Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earth Power", "Solar Beam", "Sunny Day", "Weather Ball"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire"] + } + ] + }, + "quagsire": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Ice Beam", "Recover", "Spikes", "Toxic"], + "abilities": ["Unaware"], + "teraTypes": ["Fairy", "Poison", "Steel"] + } + ] + }, + "clodsire": { + "level": 81, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Gunk Shot", "Poison Jab", "Recover", "Spikes", "Toxic"], + "abilities": ["Unaware", "Water Absorb"], + "teraTypes": ["Flying", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Curse", "Earthquake", "Gunk Shot", "Poison Jab", "Recover", "Stealth Rock", "Toxic Spikes"], + "abilities": ["Unaware", "Water Absorb"], + "teraTypes": ["Flying", "Steel"] + } + ] + }, + "espeon": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Alluring Voice", "Calm Mind", "Morning Sun", "Psychic", "Psyshock", "Shadow Ball", "Trick"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Fairy", "Psychic"] + } + ] + }, + "umbreon": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Foul Play", "Protect", "Toxic", "Wish"], + "abilities": ["Synchronize"], + "teraTypes": ["Poison"] + } + ] + }, + "slowking": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Chilly Reception", "Psychic Noise", "Psyshock", "Scald", "Slack Off", "Thunder Wave"], + "abilities": ["Regenerator"], + "teraTypes": ["Dragon", "Fairy"] + }, + { + "role": "Fast Support", + "movepool": ["Chilly Reception", "Future Sight", "Scald", "Slack Off"], + "abilities": ["Regenerator"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "slowkinggalar": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Chilly Reception", "Fire Blast", "Psychic Noise", "Psyshock", "Slack Off", "Sludge Bomb", "Thunder Wave", "Toxic Spikes"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Poison"] + }, + { + "role": "AV Pivot", + "movepool": ["Fire Blast", "Future Sight", "Psychic Noise", "Sludge Bomb", "Surf"], + "abilities": ["Regenerator"], + "teraTypes": ["Poison", "Psychic", "Water"] + } + ] + }, + "misdreavus": { + "level": 90, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Shadow Ball", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy"] + } + ] + }, + "girafarig": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dazzling Gleam", "Nasty Plot", "Psychic", "Psyshock", "Shadow Ball", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Electric", "Fairy", "Psychic"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Hyper Voice", "Nasty Plot", "Psyshock", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Electric", "Normal"] + } + ] + }, + "forretress": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Iron Head", "Rapid Spin", "Stealth Rock", "Toxic Spikes", "Volt Switch"], + "abilities": ["Sturdy"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Iron Head", "Rapid Spin", "Spikes", "Stealth Rock"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting", "Water"] + } + ] + }, + "dunsparce": { + "level": 86, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Coil", "Earthquake", "Roost"], + "abilities": ["Serene Grace"], + "teraTypes": ["Ghost", "Ground"] + } + ] + }, + "granbull": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Encore", "Play Rough", "Thunder Wave"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Play Rough", "Roar", "Thunder Wave"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground"] + } + ] + }, + "qwilfish": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Destiny Bond", "Gunk Shot", "Spikes", "Taunt", "Thunder Wave", "Toxic Spikes", "Waterfall"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Fast Support", + "movepool": ["Flip Turn", "Gunk Shot", "Pain Split", "Thunder Wave", "Toxic", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Grass"] + } + ] + }, + "qwilfishhisui": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Crunch", "Gunk Shot", "Spikes", "Taunt", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Flying", "Poison"] + } + ] + }, + "overqwil": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aqua Jet", "Crunch", "Gunk Shot", "Liquidation", "Swords Dance"], + "abilities": ["Intimidate"], + "teraTypes": ["Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Crunch", "Gunk Shot", "Scale Shot", "Swords Dance"], + "abilities": ["Intimidate"], + "teraTypes": ["Dragon"] + } + ] + }, + "scizor": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Bullet Punch", "Close Combat", "Defog", "Knock Off", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Dragon", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Bug Bite", "Bullet Punch", "Close Combat", "Knock Off", "Swords Dance"], + "abilities": ["Technician"], + "teraTypes": ["Steel"] + }, + { + "role": "Wallbreaker", + "movepool": ["Bullet Punch", "Close Combat", "Knock Off", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Steel"] + } + ] + }, + "heracross": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Facade", "Knock Off", "Trailblaze"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Earthquake", "Knock Off", "Megahorn", "Stone Edge"], + "abilities": ["Moxie"], + "teraTypes": ["Bug", "Fighting", "Rock"] + } + ] + }, + "ursaring": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Earthquake", "Rest", "Sleep Talk", "Throat Chop"], + "abilities": ["Guts"], + "teraTypes": ["Ghost", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Crunch", "Facade", "Swords Dance", "Throat Chop"], + "abilities": ["Quick Feet"], + "teraTypes": ["Normal"] + } + ] + }, + "magcargo": { + "level": 95, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Earth Power", "Fire Blast", "Power Gem", "Shell Smash"], + "abilities": ["Weak Armor"], + "teraTypes": ["Dragon", "Grass"] + }, + { + "role": "Bulky Support", + "movepool": ["Lava Plume", "Power Gem", "Recover", "Stealth Rock", "Yawn"], + "abilities": ["Flame Body"], + "teraTypes": ["Dragon", "Grass"] + } + ] + }, + "piloswine": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Ice Shard", "Icicle Crash", "Roar", "Stealth Rock"], + "abilities": ["Thick Fat"], + "teraTypes": ["Dragon", "Poison"] + } + ] + }, + "delibird": { + "level": 100, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Drill Run", "Ice Shard", "Ice Spinner", "Spikes"], + "abilities": ["Hustle"], + "teraTypes": ["Flying", "Ground", "Ice"] + }, + { + "role": "Fast Support", + "movepool": ["Brave Bird", "Freeze-Dry", "Rapid Spin", "Spikes"], + "abilities": ["Insomnia", "Vital Spirit"], + "teraTypes": ["Ghost"] + } + ] + }, + "skarmory": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Brave Bird", "Iron Defense", "Roost"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Brave Bird", "Roost", "Spikes", "Stealth Rock"], + "abilities": ["Sturdy"], + "teraTypes": ["Dragon", "Fighting"] + }, + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Roost", "Spikes", "Stealth Rock", "Whirlwind"], + "abilities": ["Sturdy"], + "teraTypes": ["Dragon"] + } + ] + }, + "houndoom": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Fire Blast", "Nasty Plot", "Sludge Bomb", "Sucker Punch"], + "abilities": ["Flash Fire"], + "teraTypes": ["Dark", "Fire", "Poison"] + } + ] + }, + "kingdra": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Hurricane", "Rain Dance", "Wave Crash"], + "abilities": ["Swift Swim"], + "teraTypes": ["Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Outrage", "Waterfall", "Wave Crash"], + "abilities": ["Sniper", "Swift Swim"], + "teraTypes": ["Water"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Dragon Dance", "Iron Head", "Outrage", "Wave Crash"], + "abilities": ["Sniper", "Swift Swim"], + "teraTypes": ["Steel"] + } + ] + }, + "donphan": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Ice Shard", "Ice Spinner", "Knock Off", "Rapid Spin", "Stealth Rock"], + "abilities": ["Sturdy"], + "teraTypes": ["Dragon", "Steel", "Water"] + } + ] + }, + "porygon2": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Discharge", "Ice Beam", "Recover", "Tri Attack"], + "abilities": ["Download"], + "teraTypes": ["Electric", "Ghost", "Poison"] + }, + { + "role": "Tera Blast user", + "movepool": ["Recover", "Shadow Ball", "Tera Blast", "Thunder Wave"], + "abilities": ["Download"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "smeargle": { + "level": 95, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Ceaseless Edge", "Spore", "Stealth Rock", "Sticky Web", "Whirlwind"], + "abilities": ["Own Tempo"], + "teraTypes": ["Ghost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Population Bomb", "Power Trip", "Shell Smash", "Spore"], + "abilities": ["Technician"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "hitmontop": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Close Combat", "Earthquake", "Rapid Spin", "Stone Edge", "Sucker Punch"], + "abilities": ["Intimidate"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Close Combat", "Rapid Spin", "Triple Axel"], + "abilities": ["Technician"], + "teraTypes": ["Ice"] + } + ] + }, + "chansey": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Heal Bell", "Seismic Toss", "Soft-Boiled", "Stealth Rock", "Thunder Wave"], + "abilities": ["Natural Cure"], + "teraTypes": ["Fairy", "Ghost", "Poison", "Steel"] + } + ] + }, + "blissey": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Heal Bell", "Seismic Toss", "Soft-Boiled", "Stealth Rock", "Thunder Wave"], + "abilities": ["Natural Cure"], + "teraTypes": ["Fairy", "Ghost", "Poison", "Steel"] + } + ] + }, + "raikou": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Scald", "Substitute", "Thunderbolt"], + "abilities": ["Pressure"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Scald", "Shadow Ball", "Thunderbolt", "Volt Switch"], + "abilities": ["Pressure"], + "teraTypes": ["Electric", "Water"] + } + ] + }, + "entei": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Extreme Speed", "Flare Blitz", "Sacred Fire", "Stomping Tantrum"], + "abilities": ["Inner Focus"], + "teraTypes": ["Fire", "Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["Extreme Speed", "Flare Blitz", "Sacred Fire", "Stone Edge"], + "abilities": ["Inner Focus"], + "teraTypes": ["Fire", "Normal"] + } + ] + }, + "suicune": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Rest", "Scald", "Sleep Talk"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Ice Beam", "Scald", "Substitute"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Steel"] + }, + { + "role": "Fast Support", + "movepool": ["Calm Mind", "Protect", "Scald", "Substitute"], + "abilities": ["Pressure"], + "teraTypes": ["Steel"] + } + ] + }, + "tyranitar": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Ice Punch", "Knock Off", "Stone Edge"], + "abilities": ["Sand Stream"], + "teraTypes": ["Ghost", "Rock"] + }, + { + "role": "Bulky Support", + "movepool": ["Dragon Tail", "Earthquake", "Ice Beam", "Knock Off", "Stealth Rock", "Stone Edge", "Thunder Wave"], + "abilities": ["Sand Stream"], + "teraTypes": ["Ghost", "Rock"] + } + ] + }, + "lugia": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Aeroblast", "Calm Mind", "Earth Power", "Recover"], + "abilities": ["Multiscale"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "hooh": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Brave Bird", "Earthquake", "Recover", "Sacred Fire"], + "abilities": ["Regenerator"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "sceptile": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Focus Blast", "Giga Drain", "Leaf Storm", "Rock Slide", "Shed Tail"], + "abilities": ["Overgrow"], + "teraTypes": ["Grass", "Ground", "Steel"] + }, + { + "role": "Fast Support", + "movepool": ["Focus Blast", "Giga Drain", "Leech Seed", "Substitute"], + "abilities": ["Overgrow"], + "teraTypes": ["Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Leaf Blade", "Rock Slide", "Swords Dance"], + "abilities": ["Overgrow"], + "teraTypes": ["Rock"] + } + ] + }, + "blaziken": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Flare Blitz", "Knock Off", "Protect", "Stone Edge", "Swords Dance"], + "abilities": ["Speed Boost"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "swampert": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Flip Turn", "Ice Beam", "Knock Off", "Roar", "Stealth Rock", "Yawn"], + "abilities": ["Damp", "Torrent"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "mightyena": { + "level": 95, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Crunch", "Play Rough", "Poison Fang", "Sucker Punch", "Taunt", "Throat Chop"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy", "Poison"] + }, + { + "role": "AV Pivot", + "movepool": ["Crunch", "Play Rough", "Poison Fang", "Sucker Punch", "Super Fang", "Throat Chop"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy", "Poison"] + } + ] + }, + "ludicolo": { + "level": 90, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Giga Drain", "Hydro Pump", "Ice Beam", "Rain Dance"], + "abilities": ["Swift Swim"], + "teraTypes": ["Grass", "Steel", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Giga Drain", "Hydro Pump", "Ice Beam", "Leaf Storm"], + "abilities": ["Swift Swim"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "shiftry": { + "level": 89, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Defog", "Knock Off", "Leaf Storm", "Sucker Punch", "Will-O-Wisp"], + "abilities": ["Wind Rider"], + "teraTypes": ["Dark", "Poison"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Knock Off", "Leaf Blade", "Sucker Punch", "Swords Dance"], + "abilities": ["Wind Rider"], + "teraTypes": ["Dark", "Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Knock Off", "Leaf Blade", "Low Kick", "Tailwind"], + "abilities": ["Wind Rider"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "pelipper": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Hurricane", "Hydro Pump", "Knock Off", "Roost", "Surf", "U-turn"], + "abilities": ["Drizzle"], + "teraTypes": ["Ground", "Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Hurricane", "Hydro Pump", "U-turn", "Weather Ball"], + "abilities": ["Drizzle"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "gardevoir": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Calm Mind", "Focus Blast", "Healing Wish", "Moonblast", "Mystical Fire", "Psychic", "Psyshock", "Trick"], + "abilities": ["Trace"], + "teraTypes": ["Fairy", "Fighting", "Fire"] + } + ] + }, + "masquerain": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bug Buzz", "Hurricane", "Hydro Pump", "Quiver Dance"], + "abilities": ["Intimidate"], + "teraTypes": ["Water"] + }, + { + "role": "Fast Support", + "movepool": ["Bug Buzz", "Hurricane", "Hydro Pump", "Sticky Web", "Stun Spore", "U-turn"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground", "Steel", "Water"] + } + ] + }, + "breloom": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Bullet Seed", "Mach Punch", "Rock Tomb", "Spore", "Swords Dance"], + "abilities": ["Technician"], + "teraTypes": ["Fighting", "Rock"] + } + ] + }, + "vigoroth": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Bulk Up", "Knock Off", "Slack Off"], + "abilities": ["Vital Spirit"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Bulk Up", "Earthquake", "Slack Off"], + "abilities": ["Vital Spirit"], + "teraTypes": ["Ground"] + } + ] + }, + "slaking": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Double-Edge", "Earthquake", "Giga Impact", "Knock Off"], + "abilities": ["Truant"], + "teraTypes": ["Ghost", "Ground", "Normal"] + } + ] + }, + "hariyama": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Bullet Punch", "Close Combat", "Facade", "Fake Out", "Headlong Rush", "Knock Off"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + }, + { + "role": "AV Pivot", + "movepool": ["Bullet Punch", "Close Combat", "Headlong Rush", "Heavy Slam", "Knock Off", "Stone Edge"], + "abilities": ["Thick Fat"], + "teraTypes": ["Steel"] + } + ] + }, + "sableye": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Knock Off", "Recover", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Prankster"], + "teraTypes": ["Steel"] + } + ] + }, + "medicham": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Bullet Punch", "Close Combat", "Ice Punch", "Poison Jab", "Zen Headbutt"], + "abilities": ["Pure Power"], + "teraTypes": ["Fighting"] + } + ] + }, + "plusle": { + "level": 95, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Alluring Voice", "Encore", "Grass Knot", "Nasty Plot", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Electric", "Fairy", "Grass"] + } + ] + }, + "minun": { + "level": 95, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Alluring Voice", "Encore", "Grass Knot", "Nasty Plot", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Electric", "Fairy", "Grass"] + } + ] + }, + "volbeat": { + "level": 90, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Roost", "Thunder Wave", "U-turn"], + "abilities": ["Prankster"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Lunge", "Roost", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "illumise": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Bug Buzz", "Encore", "Roost", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "swalot": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Clear Smog", "Earthquake", "Encore", "Ice Beam", "Knock Off", "Pain Split", "Sludge Bomb", "Toxic Spikes"], + "abilities": ["Liquid Ooze"], + "teraTypes": ["Dark"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Protect", "Sludge Bomb", "Toxic"], + "abilities": ["Liquid Ooze"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Gunk Shot", "Knock Off", "Swords Dance"], + "abilities": ["Liquid Ooze"], + "teraTypes": ["Dark", "Ground"] + } + ] + }, + "camerupt": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Overheat", "Roar", "Stealth Rock", "Will-O-Wisp"], + "abilities": ["Solid Rock"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "torkoal": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Lava Plume", "Rapid Spin", "Solar Beam", "Stealth Rock", "Yawn"], + "abilities": ["Drought"], + "teraTypes": ["Grass"] + }, + { + "role": "Bulky Support", + "movepool": ["Lava Plume", "Rapid Spin", "Solar Beam", "Stealth Rock", "Yawn"], + "abilities": ["Drought"], + "teraTypes": ["Dragon", "Grass"] + } + ] + }, + "grumpig": { + "level": 92, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dazzling Gleam", "Earth Power", "Nasty Plot", "Psychic", "Psyshock", "Shadow Ball"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Ghost", "Ground", "Psychic"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Focus Blast", "Psychic", "Psyshock", "Shadow Ball", "Trick"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fighting", "Ghost", "Ground", "Psychic"] + } + ] + }, + "flygon": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dragon Dance", "Earthquake", "Outrage", "Stone Edge", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Ground", "Rock", "Steel"] + } + ] + }, + "cacturne": { + "level": 92, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Focus Blast", "Knock Off", "Leaf Storm", "Spikes", "Sucker Punch", "Toxic Spikes"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dark", "Grass", "Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Drain Punch", "Knock Off", "Seed Bomb", "Sucker Punch", "Swords Dance"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "altaria": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Defog", "Earthquake", "Haze", "Roost", "Will-O-Wisp"], + "abilities": ["Natural Cure"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Brave Bird", "Dragon Dance", "Earthquake", "Roost"], + "abilities": ["Natural Cure"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "zangoose": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Facade", "Knock Off", "Quick Attack", "Swords Dance"], + "abilities": ["Toxic Boost"], + "teraTypes": ["Normal"] + } + ] + }, + "seviper": { + "level": 93, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Flamethrower", "Giga Drain", "Glare", "Gunk Shot", "Knock Off", "Switcheroo"], + "abilities": ["Infiltrator"], + "teraTypes": ["Dark", "Fire", "Grass", "Ground", "Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Gunk Shot", "Swords Dance", "Trailblaze"], + "abilities": ["Infiltrator"], + "teraTypes": ["Grass", "Ground"] + } + ] + }, + "whiscash": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Hydro Pump", "Ice Beam", "Spikes", "Stealth Rock"], + "abilities": ["Oblivious"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Liquidation", "Stone Edge"], + "abilities": ["Oblivious"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "crawdaunt": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aqua Jet", "Close Combat", "Crabhammer", "Dragon Dance", "Knock Off"], + "abilities": ["Adaptability"], + "teraTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Aqua Jet", "Crabhammer", "Dragon Dance", "Knock Off"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "milotic": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dragon Tail", "Flip Turn", "Haze", "Ice Beam", "Recover", "Scald"], + "abilities": ["Competitive"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "banette": { + "level": 93, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Gunk Shot", "Poltergeist", "Shadow Sneak", "Swords Dance", "Thunder Wave"], + "abilities": ["Cursed Body", "Frisk"], + "teraTypes": ["Ghost", "Poison"] + } + ] + }, + "tropius": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Air Slash", "Leech Seed", "Protect", "Substitute"], + "abilities": ["Harvest"], + "teraTypes": ["Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Dual Wingbeat", "Earthquake", "Leaf Blade", "Synthesis"], + "abilities": ["Harvest"], + "teraTypes": ["Ground"] + } + ] + }, + "chimecho": { + "level": 93, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Heal Bell", "Knock Off", "Psychic Noise", "Recover", "Thunder Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Electric", "Poison", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dazzling Gleam", "Psychic Noise", "Psyshock", "Recover"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy", "Poison", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Cosmic Power", "Dazzling Gleam", "Recover", "Stored Power"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "glalie": { + "level": 96, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Disable", "Earthquake", "Freeze-Dry", "Spikes", "Taunt"], + "abilities": ["Inner Focus"], + "teraTypes": ["Ghost", "Ground", "Water"] + } + ] + }, + "luvdisc": { + "level": 100, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Endeavor", "Substitute", "Surf", "Whirlpool"], + "abilities": ["Swift Swim"], + "teraTypes": ["Ghost", "Ground"] + } + ] + }, + "salamence": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Dual Wingbeat", "Earthquake", "Outrage", "Roost"], + "abilities": ["Intimidate", "Moxie"], + "teraTypes": ["Dragon", "Ground", "Steel"] + } + ] + }, + "metagross": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Agility", "Earthquake", "Heavy Slam", "Knock Off", "Psychic Fangs"], + "abilities": ["Clear Body"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["Bullet Punch", "Earthquake", "Heavy Slam", "Knock Off", "Psychic Fangs", "Stealth Rock"], + "abilities": ["Clear Body"], + "teraTypes": ["Water"] + } + ] + }, + "regirock": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Iron Defense", "Stealth Rock", "Stone Edge", "Thunder Wave"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Curse", "Iron Defense", "Rest", "Stone Edge"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + } + ] + }, + "regice": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Ice Beam", "Rest", "Sleep Talk", "Thunder Wave", "Thunderbolt"], + "abilities": ["Clear Body"], + "teraTypes": ["Electric"] + } + ] + }, + "registeel": { + "level": 81, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Rest"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Support", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Stealth Rock", "Thunder Wave"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + } + ] + }, + "latias": { + "level": 79, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Draco Meteor", "Psyshock", "Recover"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "latios": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draco Meteor", "Psyshock", "Recover"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Aura Sphere", "Calm Mind", "Draco Meteor", "Flip Turn", "Luster Purge"], + "abilities": ["Levitate"], + "teraTypes": ["Dragon", "Psychic", "Steel"] + } + ] + }, + "kyogre": { + "level": 71, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Ice Beam", "Origin Pulse", "Thunder", "Water Spout"], + "abilities": ["Drizzle"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Ice Beam", "Origin Pulse", "Thunder"], + "abilities": ["Drizzle"], + "teraTypes": ["Dragon", "Electric", "Steel"] + } + ] + }, + "groudon": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Heat Crash", "Precipice Blades", "Roar", "Spikes", "Stealth Rock", "Stone Edge", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Drought"], + "teraTypes": ["Fire"] + }, + { + "role": "Bulky Setup", + "movepool": ["Heat Crash", "Precipice Blades", "Stone Edge", "Swords Dance", "Thunder Wave"], + "abilities": ["Drought"], + "teraTypes": ["Fire"] + } + ] + }, + "rayquaza": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Ascent", "Dragon Dance", "Earthquake", "Outrage"], + "abilities": ["Air Lock"], + "teraTypes": ["Flying", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Dragon Ascent", "Earthquake", "Extreme Speed", "Swords Dance", "U-turn"], + "abilities": ["Air Lock"], + "teraTypes": ["Normal"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Dragon Ascent", "Earthquake", "Scale Shot", "Swords Dance"], + "abilities": ["Air Lock"], + "teraTypes": ["Dragon", "Flying", "Steel"] + } + ] + }, + "jirachi": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Body Slam", "Iron Head", "Protect", "Wish"], + "abilities": ["Serene Grace"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Drain Punch", "Iron Head", "Stealth Rock", "U-turn"], + "abilities": ["Serene Grace"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Healing Wish", "Iron Head", "Protect", "Psychic", "U-turn", "Wish"], + "abilities": ["Serene Grace"], + "teraTypes": ["Water"] + } + ] + }, + "deoxys": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Extreme Speed", "Knock Off", "Psycho Boost", "Superpower"], + "abilities": ["Pressure"], + "teraTypes": ["Fighting", "Normal", "Psychic"] + }, + { + "role": "Wallbreaker", + "movepool": ["Ice Beam", "Knock Off", "Psycho Boost", "Superpower"], + "abilities": ["Pressure"], + "teraTypes": ["Fighting", "Psychic"] + } + ] + }, + "deoxysattack": { + "level": 72, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Extreme Speed", "Knock Off", "Psycho Boost", "Superpower"], + "abilities": ["Pressure"], + "teraTypes": ["Fighting", "Normal", "Psychic"] + }, + { + "role": "Wallbreaker", + "movepool": ["Ice Beam", "Knock Off", "Psycho Boost", "Superpower"], + "abilities": ["Pressure"], + "teraTypes": ["Fighting", "Psychic"] + } + ] + }, + "deoxysdefense": { + "level": 84, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Cosmic Power", "Night Shade", "Recover", "Stored Power"], + "abilities": ["Pressure"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Knock Off", "Psychic Noise", "Recover", "Spikes", "Stealth Rock", "Teleport"], + "abilities": ["Pressure"], + "teraTypes": ["Dark", "Fairy", "Steel"] + } + ] + }, + "deoxysspeed": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Knock Off", "Psycho Boost", "Spikes", "Stealth Rock", "Superpower", "Taunt"], + "abilities": ["Pressure"], + "teraTypes": ["Dark", "Fighting", "Ghost", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Focus Blast", "Nasty Plot", "Psycho Boost"], + "abilities": ["Pressure"], + "teraTypes": ["Dark", "Fighting", "Psychic"] + } + ] + }, + "torterra": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bullet Seed", "Headlong Rush", "Rock Blast", "Shell Smash"], + "abilities": ["Overgrow"], + "teraTypes": ["Grass", "Ground", "Rock", "Water"] + } + ] + }, + "infernape": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Grass Knot", "Gunk Shot", "Knock Off", "Mach Punch", "Overheat", "Stone Edge"], + "abilities": ["Blaze", "Iron Fist"], + "teraTypes": ["Dark", "Fighting", "Fire"] + }, + { + "role": "Fast Support", + "movepool": ["Close Combat", "Flare Blitz", "Gunk Shot", "Knock Off", "Mach Punch", "Stone Edge", "Swords Dance", "U-turn"], + "abilities": ["Blaze", "Iron Fist"], + "teraTypes": ["Dark", "Fighting", "Fire"] + } + ] + }, + "empoleon": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flip Turn", "Ice Beam", "Knock Off", "Roar", "Roost", "Stealth Rock", "Surf", "Yawn"], + "abilities": ["Competitive"], + "teraTypes": ["Flying", "Grass"] + } + ] + }, + "staraptor": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Close Combat", "Double-Edge", "Quick Attack", "U-turn"], + "abilities": ["Reckless"], + "teraTypes": ["Fighting", "Flying"] + } + ] + }, + "kricketune": { + "level": 99, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Knock Off", "Pounce", "Sticky Web", "Swords Dance", "Taunt"], + "abilities": ["Technician"], + "teraTypes": ["Ghost"] + } + ] + }, + "luxray": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Facade", "Play Rough", "Supercell Slam", "Throat Chop", "Trailblaze"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + }, + { + "role": "AV Pivot", + "movepool": ["Ice Fang", "Play Rough", "Throat Chop", "Volt Switch", "Wild Charge"], + "abilities": ["Intimidate"], + "teraTypes": ["Electric", "Fairy"] + } + ] + }, + "rampardos": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Fire Punch", "Head Smash", "Rock Slide"], + "abilities": ["Sheer Force"], + "teraTypes": ["Ground", "Rock"] + }, + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Fire Punch", "Rock Slide", "Zen Headbutt"], + "abilities": ["Sheer Force"], + "teraTypes": ["Psychic", "Rock"] + } + ] + }, + "bastiodon": { + "level": 89, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Foul Play", "Iron Defense", "Rest"], + "abilities": ["Soundproof"], + "teraTypes": ["Fighting"] + } + ] + }, + "vespiquen": { + "level": 98, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Air Slash", "Hurricane", "Roost", "Spikes", "Toxic", "Toxic Spikes", "U-turn"], + "abilities": ["Pressure"], + "teraTypes": ["Steel"] + } + ] + }, + "pachirisu": { + "level": 96, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Nuzzle", "Super Fang", "Thunderbolt", "U-turn"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + }, + { + "role": "Fast Support", + "movepool": ["Discharge", "Encore", "Super Fang", "U-turn"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + } + ] + }, + "floatzel": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Crunch", "Flip Turn", "Ice Spinner", "Wave Crash"], + "abilities": ["Water Veil"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Ice Spinner", "Taunt", "Wave Crash"], + "abilities": ["Water Veil"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "gastrodon": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Clear Smog", "Earthquake", "Ice Beam", "Recover", "Spikes", "Stealth Rock", "Surf"], + "abilities": ["Storm Drain"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Recover", "Sludge Bomb", "Stealth Rock", "Surf"], + "abilities": ["Storm Drain"], + "teraTypes": ["Poison"] + } + ] + }, + "ambipom": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Double-Edge", "Knock Off", "Low Kick", "Triple Axel", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Ice"] + }, + { + "role": "Wallbreaker", + "movepool": ["Double-Edge", "Fake Out", "Knock Off", "Low Kick", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Normal"] + } + ] + }, + "drifblim": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Air Slash", "Calm Mind", "Defog", "Shadow Ball", "Strength Sap"], + "abilities": ["Aftermath", "Unburden"], + "teraTypes": ["Fairy", "Ghost"] + } + ] + }, + "mismagius": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Dazzling Gleam", "Energy Ball", "Mystical Fire", "Shadow Ball", "Thunderbolt", "Trick"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy", "Fire", "Ghost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dazzling Gleam", "Mystical Fire", "Nasty Plot", "Shadow Ball", "Substitute", "Thunderbolt"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Shadow Ball", "Substitute", "Tera Blast"], + "abilities": ["Levitate"], + "teraTypes": ["Fighting"] + } + ] + }, + "honchkrow": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Heat Wave", "Sucker Punch", "U-turn"], + "abilities": ["Moxie"], + "teraTypes": ["Dark", "Flying"] + }, + { + "role": "Wallbreaker", + "movepool": ["Brave Bird", "Heat Wave", "Lash Out", "Sucker Punch", "Thunder Wave"], + "abilities": ["Moxie"], + "teraTypes": ["Dark", "Flying"] + } + ] + }, + "skuntank": { + "level": 84, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Fire Blast", "Gunk Shot", "Knock Off", "Sucker Punch", "Taunt", "Toxic Spikes"], + "abilities": ["Aftermath"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "bronzong": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Hypnosis", "Iron Head", "Psychic", "Psychic Noise", "Stealth Rock"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Psychic Noise", "Rest"], + "abilities": ["Levitate"], + "teraTypes": ["Fighting"] + } + ] + }, + "spiritomb": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Foul Play", "Pain Split", "Poltergeist", "Shadow Sneak", "Sucker Punch", "Toxic", "Will-O-Wisp"], + "abilities": ["Infiltrator"], + "teraTypes": ["Dark", "Ghost"] + } + ] + }, + "garchomp": { + "level": 74, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Dragon Tail", "Earthquake", "Outrage", "Spikes", "Stealth Rock"], + "abilities": ["Rough Skin"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Fire Fang", "Iron Head", "Scale Shot", "Stone Edge", "Swords Dance"], + "abilities": ["Rough Skin"], + "teraTypes": ["Fire", "Ground", "Steel"] + } + ] + }, + "lucario": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Extreme Speed", "Meteor Mash", "Stone Edge", "Swords Dance"], + "abilities": ["Justified"], + "teraTypes": ["Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Aura Sphere", "Flash Cannon", "Focus Blast", "Nasty Plot", "Vacuum Wave"], + "abilities": ["Inner Focus"], + "teraTypes": ["Fighting"] + } + ] + }, + "hippowdon": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Slack Off", "Stealth Rock", "Stone Edge", "Whirlwind"], + "abilities": ["Sand Stream"], + "teraTypes": ["Dragon", "Rock", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Curse", "Earthquake", "Slack Off", "Stone Edge"], + "abilities": ["Sand Stream"], + "teraTypes": ["Rock", "Steel"] + } + ] + }, + "toxicroak": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Earthquake", "Gunk Shot", "Knock Off", "Sucker Punch", "Swords Dance"], + "abilities": ["Dry Skin"], + "teraTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Earthquake", "Gunk Shot", "Sucker Punch", "Swords Dance"], + "abilities": ["Dry Skin"], + "teraTypes": ["Dark", "Fighting", "Ground"] + } + ] + }, + "lumineon": { + "level": 93, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Alluring Voice", "Encore", "Hydro Pump", "Ice Beam", "U-turn"], + "abilities": ["Storm Drain"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "abomasnow": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Aurora Veil", "Blizzard", "Earthquake", "Ice Shard", "Wood Hammer"], + "abilities": ["Snow Warning"], + "teraTypes": ["Ice", "Water"] + } + ] + }, + "weavile": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Ice Shard", "Knock Off", "Low Kick", "Swords Dance", "Triple Axel"], + "abilities": ["Pickpocket"], + "teraTypes": ["Dark", "Fighting", "Ice"] + } + ] + }, + "sneasler": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Dire Claw", "Gunk Shot", "Throat Chop", "U-turn"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark", "Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Acrobatics", "Close Combat", "Gunk Shot", "Swords Dance"], + "abilities": ["Unburden"], + "teraTypes": ["Flying"] + } + ] + }, + "magnezone": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Body Press", "Flash Cannon", "Thunderbolt", "Volt Switch"], + "abilities": ["Magnet Pull"], + "teraTypes": ["Electric", "Fighting", "Flying", "Water"] + }, + { + "role": "AV Pivot", + "movepool": ["Discharge", "Flash Cannon", "Mirror Coat", "Thunderbolt", "Volt Switch"], + "abilities": ["Analytic", "Magnet Pull"], + "teraTypes": ["Flying", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Discharge", "Flash Cannon", "Iron Defense", "Thunderbolt"], + "abilities": ["Magnet Pull"], + "teraTypes": ["Fighting"] + } + ] + }, + "rhyperior": { + "level": 82, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Ice Punch", "Megahorn", "Rock Polish", "Stone Edge"], + "abilities": ["Solid Rock"], + "teraTypes": ["Bug", "Ground", "Rock"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Dragon Tail", "Earthquake", "Ice Punch", "Megahorn", "Stone Edge"], + "abilities": ["Solid Rock"], + "teraTypes": ["Bug", "Dragon", "Grass", "Steel"] + } + ] + }, + "electivire": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Flamethrower", "Ice Punch", "Knock Off", "Supercell Slam", "Volt Switch"], + "abilities": ["Motor Drive"], + "teraTypes": ["Dark", "Electric", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Bulk Up", "Earthquake", "Ice Punch", "Supercell Slam"], + "abilities": ["Motor Drive"], + "teraTypes": ["Flying", "Ground"] + } + ] + }, + "magmortar": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Fire Blast", "Focus Blast", "Knock Off", "Scorching Sands", "Taunt", "Thunderbolt"], + "abilities": ["Flame Body"], + "teraTypes": ["Electric", "Fighting", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Fire Blast", "Focus Blast", "Knock Off", "Thunderbolt", "Will-O-Wisp"], + "abilities": ["Flame Body"], + "teraTypes": ["Electric", "Fighting", "Water"] + } + ] + }, + "yanmega": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Air Slash", "Bug Buzz", "Giga Drain", "U-turn"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug"] + }, + { + "role": "Tera Blast user", + "movepool": ["Air Slash", "Bug Buzz", "Protect", "Tera Blast"], + "abilities": ["Speed Boost"], + "teraTypes": ["Ground"] + } + ] + }, + "leafeon": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Double-Edge", "Knock Off", "Leaf Blade", "Substitute", "Swords Dance", "Synthesis"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Dark", "Normal"] + } + ] + }, + "glaceon": { + "level": 94, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Freeze-Dry", "Protect", "Wish"], + "abilities": ["Ice Body"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Freeze-Dry", "Mud Shot", "Protect", "Wish"], + "abilities": ["Ice Body"], + "teraTypes": ["Ground"] + } + ] + }, + "gliscor": { + "level": 76, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Earthquake", "Protect", "Substitute", "Toxic"], + "abilities": ["Poison Heal"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Knock Off", "Protect", "Toxic", "Toxic Spikes", "U-turn"], + "abilities": ["Poison Heal"], + "teraTypes": ["Water"] + } + ] + }, + "mamoswine": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Ice Shard", "Icicle Crash", "Knock Off", "Stealth Rock"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground", "Ice"] + } + ] + }, + "porygonz": { + "level": 83, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Agility", "Nasty Plot", "Shadow Ball", "Tera Blast"], + "abilities": ["Adaptability"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Attacker", + "movepool": ["Ice Beam", "Nasty Plot", "Shadow Ball", "Thunderbolt", "Tri Attack", "Trick"], + "abilities": ["Adaptability", "Download"], + "teraTypes": ["Electric", "Ghost"] + } + ] + }, + "gallade": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Leaf Blade", "Night Slash", "Psycho Cut", "Sacred Sword", "Swords Dance"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Fighting", "Grass"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Agility", "Night Slash", "Psycho Cut", "Sacred Sword"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "probopass": { + "level": 92, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Flash Cannon", "Iron Defense", "Power Gem", "Rest", "Thunder Wave"], + "abilities": ["Magnet Pull"], + "teraTypes": ["Fighting"] + } + ] + }, + "dusknoir": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Leech Life", "Pain Split", "Poltergeist", "Shadow Sneak", "Trick"], + "abilities": ["Frisk"], + "teraTypes": ["Ghost", "Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Pain Split", "Poltergeist", "Shadow Sneak", "Will-O-Wisp"], + "abilities": ["Frisk"], + "teraTypes": ["Dark", "Fairy"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Focus Punch", "Pain Split", "Poltergeist", "Substitute"], + "abilities": ["Frisk"], + "teraTypes": ["Fighting"] + } + ] + }, + "froslass": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Destiny Bond", "Poltergeist", "Spikes", "Taunt", "Triple Axel", "Will-O-Wisp"], + "abilities": ["Cursed Body"], + "teraTypes": ["Ghost", "Ice"] + } + ] + }, + "rotom": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Nasty Plot", "Shadow Ball", "Thunderbolt", "Trick", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Ghost"] + } + ] + }, + "rotomwash": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Hydro Pump", "Nasty Plot", "Pain Split", "Thunderbolt", "Trick", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Water"] + } + ] + }, + "rotomheat": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Nasty Plot", "Overheat", "Pain Split", "Thunderbolt", "Trick", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fire"] + } + ] + }, + "rotomfrost": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Blizzard", "Nasty Plot", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric"] + } + ] + }, + "rotomfan": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Air Slash", "Nasty Plot", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Steel"] + } + ] + }, + "rotommow": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Leaf Storm", "Nasty Plot", "Thunderbolt", "Trick", "Volt Switch", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Grass"] + } + ] + }, + "uxie": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Knock Off", "Psychic Noise", "Stealth Rock", "Thunder Wave", "U-turn", "Yawn"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Electric", "Steel"] + } + ] + }, + "mesprit": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dazzling Gleam", "Healing Wish", "Ice Beam", "Nasty Plot", "Psychic", "Shadow Ball", "Thunderbolt", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy"] + }, + { + "role": "Bulky Support", + "movepool": ["Encore", "Knock Off", "Psychic Noise", "Stealth Rock", "Thunder Wave", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Electric", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Drain Punch", "Ice Beam", "Knock Off", "Psychic Noise", "Thunder Wave", "Thunderbolt", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "azelf": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Encore", "Explosion", "Fire Blast", "Knock Off", "Psychic", "Stealth Rock", "Taunt", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Fire"] + }, + { + "role": "Fast Attacker", + "movepool": ["Dazzling Gleam", "Fire Blast", "Nasty Plot", "Psychic", "Psyshock", "Thunderbolt", "Trick", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy", "Fire", "Psychic"] + } + ] + }, + "dialga": { + "level": 73, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Heavy Slam", "Stealth Rock", "Thunder Wave"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Flying", "Steel"] + }, + { + "role": "AV Pivot", + "movepool": ["Draco Meteor", "Dragon Tail", "Fire Blast", "Heavy Slam"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Flying", "Steel"] + } + ] + }, + "dialgaorigin": { + "level": 73, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Flash Cannon", "Heavy Slam", "Stealth Rock", "Thunder Wave"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Flying", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Draco Meteor", "Dragon Tail", "Fire Blast", "Flash Cannon", "Heavy Slam", "Stealth Rock"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Flying", "Steel"] + } + ] + }, + "palkia": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Hydro Pump", "Spacial Rend"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Fire", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Hydro Pump", "Spacial Rend", "Thunder Wave"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Fire", "Water"] + } + ] + }, + "palkiaorigin": { + "level": 72, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Hydro Pump", "Spacial Rend", "Thunder Wave"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Fire", "Water"] + } + ] + }, + "heatran": { + "level": 79, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earth Power", "Flash Cannon", "Heavy Slam", "Lava Plume", "Magma Storm", "Stealth Rock"], + "abilities": ["Flash Fire"], + "teraTypes": ["Flying", "Grass", "Steel"] + } + ] + }, + "regigigas": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Knock Off", "Rest", "Sleep Talk"], + "abilities": ["Slow Start"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Knock Off", "Protect", "Substitute"], + "abilities": ["Slow Start"], + "teraTypes": ["Ghost", "Poison"] + } + ] + }, + "giratina": { + "level": 75, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Dragon Tail", "Rest", "Shadow Ball", "Sleep Talk", "Will-O-Wisp"], + "abilities": ["Pressure"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dragon Pulse", "Rest", "Sleep Talk"], + "abilities": ["Pressure"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Support", + "movepool": ["Defog", "Dragon Tail", "Rest", "Shadow Ball", "Will-O-Wisp"], + "abilities": ["Pressure"], + "teraTypes": ["Fairy"] + } + ] + }, + "giratinaorigin": { + "level": 72, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Defog", "Draco Meteor", "Dragon Tail", "Poltergeist", "Shadow Sneak", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Dragon", "Fairy", "Ghost", "Steel"] + } + ] + }, + "cresselia": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Moonblast", "Moonlight", "Psyshock", "Thunderbolt"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy", "Poison", "Steel"] + } + ] + }, + "phione": { + "level": 91, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Rest", "Scald", "Sleep Talk", "Take Heart"], + "abilities": ["Hydration"], + "teraTypes": ["Dragon", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Grass Knot", "Ice Beam", "Scald", "Take Heart"], + "abilities": ["Hydration"], + "teraTypes": ["Grass", "Steel"] + } + ] + }, + "manaphy": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Energy Ball", "Hydro Pump", "Ice Beam", "Surf", "Tail Glow"], + "abilities": ["Hydration"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "darkrai": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Focus Blast", "Hypnosis", "Nasty Plot", "Sludge Bomb", "Substitute"], + "abilities": ["Bad Dreams"], + "teraTypes": ["Poison"] + } + ] + }, + "shaymin": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Air Slash", "Earth Power", "Seed Flare", "Synthesis"], + "abilities": ["Natural Cure"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Air Slash", "Leech Seed", "Seed Flare", "Substitute"], + "abilities": ["Natural Cure"], + "teraTypes": ["Steel"] + } + ] + }, + "shayminsky": { + "level": 73, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Air Slash", "Dazzling Gleam", "Earth Power", "Seed Flare"], + "abilities": ["Serene Grace"], + "teraTypes": ["Flying", "Grass"] + }, + { + "role": "Bulky Support", + "movepool": ["Air Slash", "Leech Seed", "Seed Flare", "Substitute"], + "abilities": ["Serene Grace"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Air Slash", "Earth Power", "Seed Flare", "Synthesis"], + "abilities": ["Serene Grace"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "arceus": { + "level": 68, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Earthquake", "Extreme Speed", "Recover", "Shadow Claw", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Ghost"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Extreme Speed", "Recover", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Normal"] + } + ] + }, + "arceusbug": { + "level": 73, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Fire Blast", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "arceusdark": { + "level": 71, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dazzling Gleam", "Judgment", "Recover", "Sludge Bomb"], + "abilities": ["Multitype"], + "teraTypes": ["Fairy", "Poison"] + } + ] + }, + "arceusdragon": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Extreme Speed", "Flare Blitz", "Heavy Slam", "Outrage", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Fire"] + }, + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Flare Blitz", "Heavy Slam", "Outrage"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Steel"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Fire Blast", "Judgment", "Recover", "Sludge Bomb"], + "abilities": ["Multitype"], + "teraTypes": ["Fire"] + } + ] + }, + "arceuselectric": { + "level": 70, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Ice Beam", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Electric", "Ice"] + } + ] + }, + "arceusfairy": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "arceusfighting": { + "level": 70, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Body Press", "Cosmic Power", "Recover", "Stored Power"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Recover", "Shadow Ball"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + } + ] + }, + "arceusfire": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Extreme Speed", "Flare Blitz", "Recover", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Ground"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Flare Blitz", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Fire", "Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Energy Ball", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Grass", "Ground"] + } + ] + }, + "arceusflying": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "arceusghost": { + "level": 69, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Focus Blast", "Judgment", "Recover", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Fighting", "Normal"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Focus Blast", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Fighting", "Ghost", "Normal"] + } + ] + }, + "arceusgrass": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Calm Mind", "Earth Power", "Ice Beam", "Judgment"], + "abilities": ["Multitype"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Fire Blast", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Fire"] + } + ] + }, + "arceusground": { + "level": 70, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Fire Blast", "Ice Beam", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Dragon", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Extreme Speed", "Stone Edge", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Normal"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Recover", "Stone Edge"], + "abilities": ["Multitype"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "arceusice": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover", "Thunderbolt"], + "abilities": ["Multitype"], + "teraTypes": ["Electric", "Ground"] + } + ] + }, + "arceuspoison": { + "level": 70, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Flare Blitz", "Gunk Shot", "Liquidation", "Recover", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Ground"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Earthquake", "Extreme Speed", "Gunk Shot", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Ground", "Normal"] + } + ] + }, + "arceuspsychic": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Cosmic Power", "Recover", "Stored Power"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + } + ] + }, + "arceusrock": { + "level": 74, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Fire Blast", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Dragon", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Recover", "Stone Edge", "Swords Dance"], + "abilities": ["Multitype"], + "teraTypes": ["Ground"] + } + ] + }, + "arceussteel": { + "level": 70, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Judgment", "Recover", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover"], + "abilities": ["Multitype"], + "teraTypes": ["Ghost"] + } + ] + }, + "arceuswater": { + "level": 71, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Calm Mind", "Ice Beam", "Judgment", "Recover", "Will-O-Wisp"], + "abilities": ["Multitype"], + "teraTypes": ["Steel"] + } + ] + }, + "serperior": { + "level": 79, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Glare", "Leaf Storm", "Leech Seed", "Substitute", "Synthesis", "Tera Blast"], + "abilities": ["Contrary"], + "teraTypes": ["Fire", "Rock"] + }, + { + "role": "Fast Attacker", + "movepool": ["Dragon Pulse", "Glare", "Leaf Storm", "Leech Seed", "Substitute", "Synthesis"], + "abilities": ["Contrary"], + "teraTypes": ["Dragon", "Grass", "Water"] + } + ] + }, + "emboar": { + "level": 84, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Close Combat", "Flare Blitz", "Knock Off", "Scald", "Sucker Punch", "Wild Charge"], + "abilities": ["Reckless"], + "teraTypes": ["Dark", "Electric", "Fire", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Flare Blitz", "Head Smash", "Knock Off", "Wild Charge"], + "abilities": ["Reckless"], + "teraTypes": ["Fire"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Bulk Up", "Drain Punch", "Flare Blitz", "Trailblaze"], + "abilities": ["Reckless"], + "teraTypes": ["Fighting", "Grass"] + } + ] + }, + "samurott": { + "level": 88, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Aqua Jet", "Flip Turn", "Grass Knot", "Hydro Pump", "Ice Beam", "Knock Off", "Megahorn", "Sacred Sword"], + "abilities": ["Torrent"], + "teraTypes": ["Dark", "Grass", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Aqua Jet", "Knock Off", "Liquidation", "Megahorn", "Sacred Sword", "Swords Dance"], + "abilities": ["Torrent"], + "teraTypes": ["Dark", "Water"] + } + ] + }, + "samurotthisui": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Ceaseless Edge", "Flip Turn", "Razor Shell", "Sacred Sword", "Sucker Punch", "Swords Dance"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Poison", "Water"] + } + ] + }, + "zebstrika": { + "level": 87, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["High Horsepower", "Overheat", "Supercell Slam", "Volt Switch"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ground"] + } + ] + }, + "excadrill": { + "level": 79, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Iron Head", "Rapid Spin", "Swords Dance"], + "abilities": ["Mold Breaker", "Sand Rush"], + "teraTypes": ["Grass", "Ground", "Water"] + }, + { + "role": "AV Pivot", + "movepool": ["Earthquake", "Iron Head", "Rapid Spin", "Rock Slide"], + "abilities": ["Mold Breaker", "Sand Rush"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "gurdurr": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Bulk Up", "Defog", "Drain Punch", "Knock Off", "Mach Punch"], + "abilities": ["Guts"], + "teraTypes": ["Steel"] + } + ] + }, + "conkeldurr": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Facade", "Knock Off", "Mach Punch"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "leavanny": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Knock Off", "Leaf Blade", "Lunge", "Sticky Web", "Swords Dance"], + "abilities": ["Chlorophyll", "Swarm"], + "teraTypes": ["Ghost", "Rock"] + }, { + "role": "Fast Attacker", + "movepool": ["Bullet Seed", "Knock Off", "Sticky Web", "Swords Dance", "Triple Axel"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Ghost", "Rock"] + } + ] + }, + "whimsicott": { + "level": 85, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Encore", "Giga Drain", "Moonblast", "Stun Spore", "U-turn"], + "abilities": ["Prankster"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Encore", "Hurricane", "Leech Seed", "Moonblast", "Substitute"], + "abilities": ["Prankster"], + "teraTypes": ["Steel"] + } + ] + }, + "lilligant": { + "level": 86, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Giga Drain", "Quiver Dance", "Sleep Powder", "Tera Blast"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Alluring Voice", "Petal Dance", "Quiver Dance", "Sleep Powder"], + "abilities": ["Own Tempo"], + "teraTypes": ["Fairy", "Grass"] + } + ] + }, + "lilliganthisui": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Ice Spinner", "Leaf Blade", "Sleep Powder", "Victory Dance"], + "abilities": ["Hustle"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "basculin": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Aqua Jet", "Double-Edge", "Flip Turn", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "basculegion": { + "level": 81, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Aqua Jet", "Flip Turn", "Shadow Ball", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "basculegionf": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Flip Turn", "Hydro Pump", "Ice Beam", "Shadow Ball"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + }, + { + "role": "AV Pivot", + "movepool": ["Flip Turn", "Hydro Pump", "Shadow Ball", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "krookodile": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Bulk Up", "Earthquake", "Gunk Shot", "Knock Off", "Stealth Rock", "Stone Edge"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground", "Poison"] + } + ] + }, + "scrafty": { + "level": 84, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Knock Off", "Rest"], + "abilities": ["Shed Skin"], + "teraTypes": ["Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Dragon Dance", "Knock Off", "Poison Jab"], + "abilities": ["Intimidate"], + "teraTypes": ["Poison"] + } + ] + }, + "zoroark": { + "level": 84, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Dark Pulse", "Flamethrower", "Focus Blast", "Psychic", "Sludge Bomb", "Trick", "U-turn"], + "abilities": ["Illusion"], + "teraTypes": ["Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Encore", "Focus Blast", "Nasty Plot", "Psychic", "Sludge Bomb"], + "abilities": ["Illusion"], + "teraTypes": ["Poison"] + } + ] + }, + "zoroarkhisui": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Bitter Malice", "Flamethrower", "Focus Blast", "Hyper Voice", "Nasty Plot", "Trick", "U-turn"], + "abilities": ["Illusion"], + "teraTypes": ["Fighting", "Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["Focus Blast", "Hyper Voice", "Poltergeist", "Will-O-Wisp"], + "abilities": ["Illusion"], + "teraTypes": ["Fighting", "Normal"] + } + ] + }, + "cinccino": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Bullet Seed", "Tail Slap", "Tidy Up", "Triple Axel", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Grass", "Ice", "Normal"] + } + ] + }, + "gothitelle": { + "level": 90, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dark Pulse", "Focus Blast", "Psychic Noise", "Thunderbolt"], + "abilities": ["Shadow Tag"], + "teraTypes": ["Dark", "Electric", "Fairy", "Fighting", "Flying", "Ghost", "Ground", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Focus Blast", "Psychic", "Trick"], + "abilities": ["Shadow Tag"], + "teraTypes": ["Dark", "Fairy", "Fighting", "Flying", "Ghost", "Ground", "Psychic", "Steel"] + } + ] + }, + "reuniclus": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Focus Blast", "Psychic", "Psyshock", "Recover", "Shadow Ball"], + "abilities": ["Magic Guard"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "swanna": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Defog", "Hydro Pump", "Knock Off", "Roost"], + "abilities": ["Hydration"], + "teraTypes": ["Ground"] + } + ] + }, + "sawsbuck": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Double-Edge", "High Horsepower", "Horn Leech", "Swords Dance"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ground", "Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["Headbutt", "High Horsepower", "Horn Leech", "Swords Dance"], + "abilities": ["Serene Grace"], + "teraTypes": ["Normal"] + } + ] + }, + "amoonguss": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Clear Smog", "Giga Drain", "Sludge Bomb", "Spore", "Toxic"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Giga Drain", "Sludge Bomb", "Spore", "Stomping Tantrum"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "alomomola": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flip Turn", "Protect", "Scald", "Wish"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel"] + }, + { + "role": "Fast Support", + "movepool": ["Flip Turn", "Protect", "Scald", "Wish"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel"] + } + ] + }, + "galvantula": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Bug Buzz", "Giga Drain", "Sticky Web", "Thunder", "Volt Switch"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Electric"] + } + ] + }, + "eelektross": { + "level": 87, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Coil", "Drain Punch", "Fire Punch", "Knock Off", "Supercell Slam"], + "abilities": ["Levitate"], + "teraTypes": ["Fighting"] + }, + { + "role": "AV Pivot", + "movepool": ["Close Combat", "Discharge", "Dragon Tail", "Flamethrower", "Giga Drain", "Knock Off", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "chandelure": { + "level": 83, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Energy Ball", "Fire Blast", "Pain Split", "Shadow Ball", "Substitute", "Will-O-Wisp"], + "abilities": ["Flame Body", "Flash Fire"], + "teraTypes": ["Fire", "Ghost", "Grass"] + }, + { + "role": "Fast Attacker", + "movepool": ["Energy Ball", "Fire Blast", "Shadow Ball", "Trick"], + "abilities": ["Flash Fire"], + "teraTypes": ["Fire", "Ghost", "Grass"] + } + ] + }, + "haxorus": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Dragon Dance", "Earthquake", "Iron Head", "Outrage"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Steel"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Close Combat", "Earthquake", "Iron Head", "Scale Shot", "Swords Dance"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Steel"] + } + ] + }, + "beartic": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Aqua Jet", "Close Combat", "Earthquake", "Icicle Crash", "Snowscape", "Swords Dance"], + "abilities": ["Slush Rush", "Swift Swim"], + "teraTypes": ["Fighting", "Ground"] + } + ] + }, + "cryogonal": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flash Cannon", "Freeze-Dry", "Haze", "Rapid Spin", "Recover"], + "abilities": ["Levitate"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Ice Beam", "Rapid Spin", "Recover", "Tera Blast"], + "abilities": ["Levitate"], + "teraTypes": ["Electric"] + } + ] + }, + "mienshao": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["High Jump Kick", "Knock Off", "Poison Jab", "Stone Edge", "U-turn"], + "abilities": ["Reckless"], + "teraTypes": ["Fighting"] + }, + { + "role": "AV Pivot", + "movepool": ["Close Combat", "Fake Out", "Knock Off", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Poison Jab", "Swords Dance", "Triple Axel"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "golurk": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Dynamic Punch", "Earthquake", "Poltergeist", "Stealth Rock", "Stone Edge"], + "abilities": ["No Guard"], + "teraTypes": ["Fighting", "Ghost", "Ground"] + } + ] + }, + "braviary": { + "level": 85, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Brave Bird", "Bulk Up", "Close Combat", "Roost"], + "abilities": ["Defiant"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "braviaryhisui": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Agility", "Heat Wave", "Hurricane", "Psychic"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fairy", "Fire", "Psychic", "Steel"] + }, + { + "role": "Wallbreaker", + "movepool": ["Esper Wing", "Hurricane", "U-turn", "Vacuum Wave"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Fairy", "Fighting", "Psychic", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Defog", "Esper Wing", "Hurricane", "Roost"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Fairy", "Psychic", "Steel"] + } + ] + }, + "mandibuzz": { + "level": 85, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Defog", "Foul Play", "Roost", "Toxic", "U-turn"], + "abilities": ["Overcoat"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Brave Bird", "Defog", "Foul Play", "Knock Off", "Roost", "Toxic"], + "abilities": ["Overcoat"], + "teraTypes": ["Steel"] + } + ] + }, + "hydreigon": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Draco Meteor", "Fire Blast", "Flash Cannon", "Nasty Plot", "U-turn"], + "abilities": ["Levitate"], + "teraTypes": ["Dark", "Dragon", "Fire", "Steel"] + } + ] + }, + "volcarona": { + "level": 77, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Bug Buzz", "Fiery Dance", "Fire Blast", "Giga Drain", "Morning Sun", "Quiver Dance"], + "abilities": ["Flame Body", "Swarm"], + "teraTypes": ["Fire", "Grass", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Bug Buzz", "Fiery Dance", "Fire Blast", "Giga Drain", "Quiver Dance", "Tera Blast"], + "abilities": ["Flame Body", "Swarm"], + "teraTypes": ["Ground", "Water"] + } + ] + }, + "cobalion": { + "level": 80, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Close Combat", "Iron Head", "Stone Edge", "Swords Dance", "Taunt"], + "abilities": ["Justified"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Setup", + "movepool": ["Aura Sphere", "Calm Mind", "Flash Cannon", "Vacuum Wave"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Ghost", "Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Body Press", "Iron Defense", "Iron Head", "Stealth Rock", "Stone Edge", "Thunder Wave", "Volt Switch"], + "abilities": ["Justified"], + "teraTypes": ["Ghost", "Water"] + } + ] + }, + "terrakion": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Earthquake", "Stone Edge", "Swords Dance"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Ground"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Earthquake", "Quick Attack", "Stone Edge"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Ground"] + } + ] + }, + "virizion": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Leaf Blade", "Stone Edge", "Swords Dance"], + "abilities": ["Justified"], + "teraTypes": ["Rock"] + } + ] + }, + "tornadus": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Bleakwind Storm", "Focus Blast", "Grass Knot", "Heat Wave", "Nasty Plot", "U-turn"], + "abilities": ["Defiant", "Prankster"], + "teraTypes": ["Fighting", "Fire", "Flying"] + } + ] + }, + "tornadustherian": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Bleakwind Storm", "Focus Blast", "Grass Knot", "Heat Wave", "Nasty Plot", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Fighting", "Fire", "Flying"] + }, + { + "role": "AV Pivot", + "movepool": ["Bleakwind Storm", "Heat Wave", "Knock Off", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "thundurus": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Focus Blast", "Grass Knot", "Knock Off", "Nasty Plot", "Sludge Wave", "Taunt", "Thunder Wave", "Thunderbolt", "U-turn"], + "abilities": ["Defiant", "Prankster"], + "teraTypes": ["Electric", "Grass", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Focus Blast", "Nasty Plot", "Tera Blast", "Thunderbolt"], + "abilities": ["Defiant"], + "teraTypes": ["Flying"] + }, + { + "role": "Wallbreaker", + "movepool": ["Acrobatics", "Focus Blast", "Grass Knot", "Knock Off", "Taunt", "Thunder Wave", "Thunderbolt", "U-turn"], + "abilities": ["Defiant", "Prankster"], + "teraTypes": ["Electric", "Flying", "Grass", "Steel"] + } + ] + }, + "thundurustherian": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Focus Blast", "Grass Knot", "Nasty Plot", "Psychic", "Sludge Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Electric", "Poison", "Psychic"] + }, + { + "role": "Tera Blast user", + "movepool": ["Focus Blast", "Nasty Plot", "Tera Blast", "Thunderbolt"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + } + ] + }, + "reshiram": { + "level": 76, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Blue Flare", "Draco Meteor", "Dragon Tail", "Earth Power", "Will-O-Wisp"], + "abilities": ["Turboblaze"], + "teraTypes": ["Fire", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Flare Blitz", "Outrage", "Stone Edge"], + "abilities": ["Turboblaze"], + "teraTypes": ["Dragon", "Fire"] + } + ] + }, + "zekrom": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bolt Strike", "Dragon Dance", "Outrage", "Substitute"], + "abilities": ["Teravolt"], + "teraTypes": ["Electric", "Fairy", "Grass", "Steel"] + } + ] + }, + "landorus": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earth Power", "Focus Blast", "Nasty Plot", "Psychic", "Rock Slide", "Sludge Wave", "Stealth Rock"], + "abilities": ["Sheer Force"], + "teraTypes": ["Ground", "Poison", "Psychic"] + } + ] + }, + "landorustherian": { + "level": 76, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Stealth Rock", "Stone Edge", "Taunt", "U-turn"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground", "Water"] + } + ] + }, + "kyurem": { + "level": 77, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Icicle Spear", "Scale Shot", "Tera Blast"], + "abilities": ["Pressure"], + "teraTypes": ["Ground"] + }, + { + "role": "Wallbreaker", + "movepool": ["Draco Meteor", "Earth Power", "Freeze-Dry", "Ice Beam", "Outrage"], + "abilities": ["Pressure"], + "teraTypes": ["Ground"] + } + ] + }, + "kyuremwhite": { + "level": 73, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Earth Power", "Freeze-Dry", "Fusion Flare"], + "abilities": ["Turboblaze"], + "teraTypes": ["Dragon", "Fire"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Draco Meteor", "Freeze-Dry", "Fusion Flare", "Ice Beam"], + "abilities": ["Turboblaze"], + "teraTypes": ["Dragon", "Fire", "Ice"] + } + ] + }, + "kyuremblack": { + "level": 71, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Fusion Bolt", "Icicle Spear", "Scale Shot"], + "abilities": ["Teravolt"], + "teraTypes": ["Electric"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Icicle Spear", "Scale Shot", "Tera Blast"], + "abilities": ["Teravolt"], + "teraTypes": ["Ground"] + } + ] + }, + "keldeoresolute": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Air Slash", "Calm Mind", "Flip Turn", "Hydro Pump", "Secret Sword", "Vacuum Wave"], + "abilities": ["Justified"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Hydro Pump", "Secret Sword", "Substitute", "Surf"], + "abilities": ["Justified"], + "teraTypes": ["Steel"] + } + ] + }, + "meloetta": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Calm Mind", "Focus Blast", "Hyper Voice", "Psyshock", "U-turn"], + "abilities": ["Serene Grace"], + "teraTypes": ["Fighting", "Normal", "Psychic"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Knock Off", "Relic Song", "Triple Axel"], + "abilities": ["Serene Grace"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "chesnaught": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Press", "Knock Off", "Spikes", "Synthesis", "Wood Hammer"], + "abilities": ["Bulletproof"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Synthesis", "Trailblaze"], + "abilities": ["Bulletproof"], + "teraTypes": ["Steel"] + } + ] + }, + "delphox": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Fire Blast", "Focus Blast", "Grass Knot", "Nasty Plot", "Psyshock"], + "abilities": ["Blaze"], + "teraTypes": ["Fighting", "Fire", "Grass"] + } + ] + }, + "greninja": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Grass Knot", "Gunk Shot", "Hydro Pump", "Ice Beam", "Toxic Spikes", "U-turn"], + "abilities": ["Protean"], + "teraTypes": ["Dark", "Poison", "Water"] + } + ] + }, + "greninjabond": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Gunk Shot", "Hydro Pump", "Ice Beam"], + "abilities": ["Battle Bond"], + "teraTypes": ["Poison", "Water"] + } + ] + }, + "talonflame": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Brave Bird", "Defog", "Overheat", "Roost", "Taunt", "U-turn", "Will-O-Wisp"], + "abilities": ["Flame Body"], + "teraTypes": ["Dragon", "Ground"] + }, + { + "role": "Tera Blast user", + "movepool": ["Brave Bird", "Flare Blitz", "Swords Dance", "Tera Blast"], + "abilities": ["Flame Body"], + "teraTypes": ["Ground"] + } + ] + }, + "vivillon": { + "level": 84, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Bug Buzz", "Hurricane", "Quiver Dance", "Sleep Powder"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Flying"] + }, + { + "role": "Tera Blast user", + "movepool": ["Hurricane", "Quiver Dance", "Sleep Powder", "Tera Blast"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Ground"] + } + ] + }, + "pyroar": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Fire Blast", "Hyper Voice", "Taunt", "Will-O-Wisp", "Work Up"], + "abilities": ["Unnerve"], + "teraTypes": ["Fire"] + } + ] + }, + "florges": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Moonblast", "Protect", "Wish"], + "abilities": ["Flower Veil"], + "teraTypes": ["Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Moonblast", "Synthesis", "Tera Blast"], + "abilities": ["Flower Veil"], + "teraTypes": ["Ground"] + } + ] + }, + "gogoat": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Earthquake", "Horn Leech", "Milk Drink", "Rock Slide"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ground", "Water"] + } + ] + }, + "meowstic": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Alluring Voice", "Light Screen", "Psychic Noise", "Reflect", "Thunder Wave", "Yawn"], + "abilities": ["Prankster"], + "teraTypes": ["Fairy"] + } + ] + }, + "meowsticf": { + "level": 89, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Alluring Voice", "Dark Pulse", "Nasty Plot", "Psychic", "Psyshock", "Thunderbolt"], + "abilities": ["Competitive"], + "teraTypes": ["Dark", "Electric", "Fairy"] + } + ] + }, + "malamar": { + "level": 82, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Knock Off", "Rest", "Sleep Talk", "Superpower"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting", "Poison", "Steel"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Knock Off", "Psycho Cut", "Rest", "Superpower"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting", "Poison", "Steel"] + } + ] + }, + "dragalge": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Draco Meteor", "Dragon Tail", "Flip Turn", "Focus Blast", "Sludge Wave", "Toxic", "Toxic Spikes"], + "abilities": ["Adaptability"], + "teraTypes": ["Fighting"] + } + ] + }, + "clawitzer": { + "level": 87, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Aura Sphere", "Dark Pulse", "Dragon Pulse", "U-turn", "Water Pulse"], + "abilities": ["Mega Launcher"], + "teraTypes": ["Dark", "Dragon", "Fighting"] + }, + { + "role": "AV Pivot", + "movepool": ["Aura Sphere", "Dark Pulse", "Dragon Pulse", "U-turn", "Water Pulse"], + "abilities": ["Mega Launcher"], + "teraTypes": ["Dragon"] + } + ] + }, + "sylveon": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Hyper Voice", "Protect", "Wish"], + "abilities": ["Pixilate"], + "teraTypes": ["Steel"] + } + ] + }, + "hawlucha": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Acrobatics", "Brave Bird", "Close Combat", "Encore", "Stone Edge", "Swords Dance", "Throat Chop"], + "abilities": ["Unburden"], + "teraTypes": ["Fighting", "Flying"] + } + ] + }, + "dedenne": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Dazzling Gleam", "Nuzzle", "Super Fang", "Thunderbolt", "U-turn"], + "abilities": ["Cheek Pouch"], + "teraTypes": ["Electric", "Flying"] + } + ] + }, + "carbink": { + "level": 90, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Moonblast", "Rest", "Rock Polish"], + "abilities": ["Clear Body", "Sturdy"], + "teraTypes": ["Fighting"] + } + ] + }, + "goodra": { + "level": 85, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Draco Meteor", "Dragon Tail", "Earthquake", "Fire Blast", "Knock Off", "Power Whip", "Scald", "Sludge Bomb"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Fire", "Grass", "Ground", "Poison", "Water"] + } + ] + }, + "goodrahisui": { + "level": 82, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Draco Meteor", "Dragon Tail", "Earthquake", "Fire Blast", "Heavy Slam", "Hydro Pump", "Knock Off", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Dragon", "Flying", "Ground", "Water"] + } + ] + }, + "klefki": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Magnet Rise", "Play Rough", "Spikes", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Dazzling Gleam", "Foul Play", "Spikes", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "trevenant": { + "level": 88, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Drain Punch", "Horn Leech", "Poltergeist", "Rest", "Trick Room", "Will-O-Wisp", "Wood Hammer"], + "abilities": ["Natural Cure"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Support", + "movepool": ["Drain Punch", "Poltergeist", "Protect", "Toxic"], + "abilities": ["Harvest"], + "teraTypes": ["Dark", "Fairy", "Fighting", "Steel"] + } + ] + }, + "avalugg": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Avalanche", "Body Press", "Curse", "Rapid Spin", "Recover"], + "abilities": ["Sturdy"], + "teraTypes": ["Fighting"] + } + ] + }, + "avalugghisui": { + "level": 90, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Avalanche", "Body Press", "Rapid Spin", "Recover", "Stone Edge"], + "abilities": ["Sturdy"], + "teraTypes": ["Flying", "Ghost", "Poison"] + } + ] + }, + "noivern": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Boomburst", "Draco Meteor", "Flamethrower", "Hurricane", "Roost", "U-turn"], + "abilities": ["Infiltrator"], + "teraTypes": ["Normal"] + }, + { + "role": "Fast Support", + "movepool": ["Defog", "Draco Meteor", "Flamethrower", "Hurricane", "Roost", "U-turn"], + "abilities": ["Infiltrator"], + "teraTypes": ["Fire"] + } + ] + }, + "diancie": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Diamond Storm", "Earth Power", "Moonblast", "Rock Polish", "Stealth Rock"], + "abilities": ["Clear Body"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Diamond Storm", "Draining Kiss", "Earth Power"], + "abilities": ["Clear Body"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "hoopa": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Focus Blast", "Nasty Plot", "Psychic", "Psyshock", "Shadow Ball", "Trick"], + "abilities": ["Magician"], + "teraTypes": ["Fighting", "Ghost", "Psychic"] + } + ] + }, + "hoopaunbound": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Drain Punch", "Gunk Shot", "Hyperspace Fury", "Trick", "Zen Headbutt"], + "abilities": ["Magician"], + "teraTypes": ["Dark", "Fighting", "Poison"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Focus Blast", "Gunk Shot", "Hyperspace Fury", "Psychic", "Trick"], + "abilities": ["Magician"], + "teraTypes": ["Fighting", "Poison"] + } + ] + }, + "volcanion": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Flame Charge", "Flamethrower", "Haze", "Sludge Bomb", "Steam Eruption"], + "abilities": ["Water Absorb"], + "teraTypes": ["Fire", "Ground", "Water"] + } + ] + }, + "decidueye": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Defog", "Knock Off", "Leaf Storm", "Roost", "Spirit Shackle", "U-turn"], + "abilities": ["Overgrow"], + "teraTypes": ["Dark", "Ghost", "Grass"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Leaf Blade", "Poltergeist", "Shadow Sneak", "Swords Dance"], + "abilities": ["Overgrow"], + "teraTypes": ["Ghost"] + } + ] + }, + "decidueyehisui": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Defog", "Knock Off", "Leaf Blade", "Roost", "Sucker Punch", "Swords Dance", "Triple Arrows", "U-turn"], + "abilities": ["Scrappy"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "incineroar": { + "level": 82, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Close Combat", "Fake Out", "Knock Off", "Overheat", "U-turn"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Earthquake", "Flare Blitz", "Knock Off", "Parting Shot", "Will-O-Wisp"], + "abilities": ["Intimidate"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Flare Blitz", "Knock Off", "Swords Dance", "Trailblaze"], + "abilities": ["Intimidate"], + "teraTypes": ["Grass"] + } + ] + }, + "primarina": { + "level": 83, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Flip Turn", "Hydro Pump", "Moonblast", "Psychic"], + "abilities": ["Torrent"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Moonblast", "Psychic Noise"], + "abilities": ["Liquid Voice"], + "teraTypes": ["Fairy", "Poison", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Draining Kiss", "Psychic", "Sparkling Aria"], + "abilities": ["Torrent"], + "teraTypes": ["Fairy", "Poison", "Steel"] + } + ] + }, + "toucannon": { + "level": 88, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Beak Blast", "Boomburst", "Bullet Seed", "Knock Off", "Roost", "U-turn"], + "abilities": ["Keen Eye", "Skill Link"], + "teraTypes": ["Steel"] + } + ] + }, + "gumshoos": { + "level": 95, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Double-Edge", "Earthquake", "Knock Off", "U-turn"], + "abilities": ["Stakeout"], + "teraTypes": ["Normal"] + }, + { + "role": "Fast Attacker", + "movepool": ["Double-Edge", "Earthquake", "Knock Off", "U-turn"], + "abilities": ["Adaptability", "Stakeout"], + "teraTypes": ["Ground"] + } + ] + }, + "vikavolt": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Bug Buzz", "Discharge", "Energy Ball", "Sticky Web", "Thunderbolt", "Volt Switch"], + "abilities": ["Levitate"], + "teraTypes": ["Electric"] + } + ] + }, + "crabominable": { + "level": 90, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Drain Punch", "Earthquake", "Gunk Shot", "Ice Hammer", "Knock Off"], + "abilities": ["Iron Fist"], + "teraTypes": ["Fighting", "Ground"] + }, + { + "role": "AV Pivot", + "movepool": ["Drain Punch", "Earthquake", "Ice Hammer", "Knock Off"], + "abilities": ["Iron Fist"], + "teraTypes": ["Fighting", "Ground", "Water"] + } + ] + }, + "oricorio": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], + "abilities": ["Dancer"], + "teraTypes": ["Ground"] + } + ] + }, + "oricoriopompom": { + "level": 82, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], + "abilities": ["Dancer"], + "teraTypes": ["Ground"] + } + ] + }, + "oricoriopau": { + "level": 87, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], + "abilities": ["Dancer"], + "teraTypes": ["Fighting", "Ground"] + } + ] + }, + "oricoriosensu": { + "level": 85, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], + "abilities": ["Dancer"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "ribombee": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Bug Buzz", "Moonblast", "Sticky Web", "Stun Spore", "U-turn"], + "abilities": ["Shield Dust"], + "teraTypes": ["Ghost"] + }, + { + "role": "Tera Blast user", + "movepool": ["Bug Buzz", "Moonblast", "Quiver Dance", "Tera Blast"], + "abilities": ["Shield Dust"], + "teraTypes": ["Ground"] + } + ] + }, + "lycanroc": { + "level": 86, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Accelerock", "Close Combat", "Crunch", "Psychic Fangs", "Stealth Rock", "Stone Edge", "Swords Dance", "Taunt"], + "abilities": ["Sand Rush"], + "teraTypes": ["Fighting"] + } + ] + }, + "lycanrocmidnight": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Knock Off", "Stealth Rock", "Stone Edge", "Sucker Punch", "Swords Dance"], + "abilities": ["No Guard"], + "teraTypes": ["Fighting"] + } + ] + }, + "lycanrocdusk": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Accelerock", "Close Combat", "Psychic Fangs", "Stone Edge", "Swords Dance", "Throat Chop"], + "abilities": ["Tough Claws"], + "teraTypes": ["Fighting"] + } + ] + }, + "toxapex": { + "level": 82, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Haze", "Liquidation", "Recover", "Toxic", "Toxic Spikes"], + "abilities": ["Regenerator"], + "teraTypes": ["Fairy", "Flying", "Grass", "Steel"] + } + ] + }, + "mudsdale": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Heavy Slam", "Roar", "Stealth Rock", "Stone Edge"], + "abilities": ["Stamina"], + "teraTypes": ["Steel"] + } + ] + }, + "araquanid": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Hydro Pump", "Leech Life", "Liquidation", "Mirror Coat", "Sticky Web"], + "abilities": ["Water Bubble"], + "teraTypes": ["Ground", "Steel", "Water"] + } + ] + }, + "lurantis": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Defog", "Knock Off", "Leaf Storm", "Superpower", "Synthesis"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting"] + }, + { + "role": "AV Pivot", + "movepool": ["Knock Off", "Leaf Storm", "Leech Life", "Superpower"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting", "Steel", "Water"] + } + ] + }, + "salazzle": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Flamethrower", "Protect", "Substitute", "Toxic"], + "abilities": ["Corrosion"], + "teraTypes": ["Flying", "Grass"] + }, + { + "role": "Tera Blast user", + "movepool": ["Fire Blast", "Nasty Plot", "Sludge Wave", "Tera Blast"], + "abilities": ["Corrosion"], + "teraTypes": ["Grass"] + } + ] + }, + "tsareena": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["High Jump Kick", "Knock Off", "Power Whip", "Rapid Spin", "Synthesis", "Triple Axel", "U-turn"], + "abilities": ["Queenly Majesty"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "comfey": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Giga Drain", "Stored Power"], + "abilities": ["Triage"], + "teraTypes": ["Fairy", "Poison", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Draining Kiss", "Encore", "Giga Drain", "Synthesis", "Taunt", "Tera Blast"], + "abilities": ["Triage"], + "teraTypes": ["Ground"] + } + ] + }, + "oranguru": { + "level": 92, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Focus Blast", "Nasty Plot", "Psychic", "Psyshock", "Thunderbolt"], + "abilities": ["Inner Focus"], + "teraTypes": ["Electric", "Fighting", "Psychic"] + }, + { + "role": "Wallbreaker", + "movepool": ["Focus Blast", "Hyper Voice", "Nasty Plot", "Psyshock", "Thunderbolt", "Trick"], + "abilities": ["Inner Focus"], + "teraTypes": ["Electric", "Fighting", "Normal", "Psychic"] + } + ] + }, + "passimian": { + "level": 83, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Earthquake", "Gunk Shot", "Knock Off", "Rock Slide", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Fighting", "Poison"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Gunk Shot", "Knock Off"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Poison", "Steel"] + } + ] + }, + "palossand": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earth Power", "Shadow Ball", "Shore Up", "Sludge Bomb", "Stealth Rock"], + "abilities": ["Water Compaction"], + "teraTypes": ["Poison", "Water"] + } + ] + }, + "minior": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Acrobatics", "Earthquake", "Power Gem", "Shell Smash"], + "abilities": ["Shields Down"], + "teraTypes": ["Flying", "Ground", "Steel", "Water"] + } + ] + }, + "komala": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Double-Edge", "Earthquake", "Knock Off", "Superpower", "U-turn", "Wood Hammer"], + "abilities": ["Comatose"], + "teraTypes": ["Fighting", "Grass", "Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Earthquake", "Knock Off", "Rapid Spin", "U-turn"], + "abilities": ["Comatose"], + "teraTypes": ["Ghost"] + } + ] + }, + "mimikyu": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Drain Punch", "Play Rough", "Shadow Sneak", "Swords Dance", "Wood Hammer"], + "abilities": ["Disguise"], + "teraTypes": ["Fairy", "Fighting", "Grass"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Play Rough", "Shadow Claw", "Shadow Sneak", "Swords Dance"], + "abilities": ["Disguise"], + "teraTypes": ["Fairy", "Ghost"] + } + ] + }, + "bruxish": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aqua Jet", "Crunch", "Flip Turn", "Ice Fang", "Psychic Fangs", "Swords Dance", "Wave Crash"], + "abilities": ["Strong Jaw"], + "teraTypes": ["Dark", "Psychic"] + } + ] + }, + "kommoo": { + "level": 78, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Boomburst", "Clanging Scales", "Clangorous Soul", "Close Combat", "Iron Head"], + "abilities": ["Soundproof"], + "teraTypes": ["Normal", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Iron Head", "Scale Shot", "Swords Dance"], + "abilities": ["Soundproof"], + "teraTypes": ["Steel"] + } + ] + }, + "solgaleo": { + "level": 74, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Close Combat", "Flame Charge", "Knock Off", "Psychic", "Sunsteel Strike"], + "abilities": ["Full Metal Body"], + "teraTypes": ["Dark", "Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Flare Blitz", "Knock Off", "Morning Sun", "Psychic Fangs", "Sunsteel Strike"], + "abilities": ["Full Metal Body"], + "teraTypes": ["Water"] + } + ] + }, + "lunala": { + "level": 70, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Moonblast", "Moongeist Beam", "Moonlight"], + "abilities": ["Shadow Shield"], + "teraTypes": ["Fairy"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Moongeist Beam", "Moonlight", "Psyshock"], + "abilities": ["Shadow Shield"], + "teraTypes": ["Dark", "Fairy"] + } + ] + }, + "necrozma": { + "level": 80, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Knock Off", "Photon Geyser", "Swords Dance"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark", "Ground", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Heat Wave", "Moonlight", "Photon Geyser"], + "abilities": ["Prism Armor"], + "teraTypes": ["Fairy", "Ground", "Steel"] + } + ] + }, + "necrozmaduskmane": { + "level": 69, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Morning Sun", "Sunsteel Strike"], + "abilities": ["Prism Armor"], + "teraTypes": ["Ground", "Steel", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Photon Geyser", "Sunsteel Strike"], + "abilities": ["Prism Armor"], + "teraTypes": ["Ground", "Steel", "Water"] + } + ] + }, + "necrozmadawnwings": { + "level": 76, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Moongeist Beam", "Moonlight", "Photon Geyser"], + "abilities": ["Prism Armor"], + "teraTypes": ["Dark", "Fairy"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Brick Break", "Dragon Dance", "Moongeist Beam", "Photon Geyser"], + "abilities": ["Prism Armor"], + "teraTypes": ["Fighting"] + } + ] + }, + "magearna": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Aura Sphere", "Flash Cannon", "Fleur Cannon", "Pain Split", "Spikes", "Thunder Wave", "Volt Switch"], + "abilities": ["Soul-Heart"], + "teraTypes": ["Fairy", "Fighting", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Flash Cannon", "Fleur Cannon", "Shift Gear"], + "abilities": ["Soul-Heart"], + "teraTypes": ["Fairy", "Flying", "Steel", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Fleur Cannon", "Iron Head", "Shift Gear", "Tera Blast"], + "abilities": ["Soul-Heart"], + "teraTypes": ["Ground"] + } + ] + }, + "rillaboom": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Grassy Glide", "Knock Off", "Swords Dance", "U-turn", "Wood Hammer"], + "abilities": ["Grassy Surge"], + "teraTypes": ["Grass"] + }, + { + "role": "Fast Attacker", + "movepool": ["Grassy Glide", "High Horsepower", "Swords Dance", "U-turn", "Wood Hammer"], + "abilities": ["Grassy Surge"], + "teraTypes": ["Grass"] + } + ] + }, + "cinderace": { + "level": 77, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Gunk Shot", "High Jump Kick", "Pyro Ball", "U-turn"], + "abilities": ["Libero"], + "teraTypes": ["Fire"] + }, + { + "role": "Fast Support", + "movepool": ["Court Change", "High Jump Kick", "Pyro Ball", "Sucker Punch"], + "abilities": ["Libero"], + "teraTypes": ["Fighting", "Fire"] + }, + { + "role": "Fast Attacker", + "movepool": ["Court Change", "Gunk Shot", "High Jump Kick", "Pyro Ball", "U-turn"], + "abilities": ["Libero"], + "teraTypes": ["Fighting"] + } + ] + }, + "inteleon": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Hydro Pump", "Ice Beam", "U-turn"], + "abilities": ["Torrent"], + "teraTypes": ["Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Hydro Pump", "Ice Beam", "Scald", "U-turn"], + "abilities": ["Torrent"], + "teraTypes": ["Water"] + } + ] + }, + "greedent": { + "level": 86, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Double-Edge", "Earthquake", "Knock Off", "Swords Dance"], + "abilities": ["Cheek Pouch"], + "teraTypes": ["Ghost", "Ground"] + } + ] + }, + "corviknight": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Press", "Brave Bird", "Defog", "Roost", "U-turn"], + "abilities": ["Mirror Armor", "Pressure"], + "teraTypes": ["Dragon"] + } + ] + }, + "drednaw": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Crunch", "Liquidation", "Shell Smash", "Stone Edge"], + "abilities": ["Strong Jaw"], + "teraTypes": ["Dark"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Earthquake", "Liquidation", "Shell Smash", "Stone Edge"], + "abilities": ["Shell Armor", "Swift Swim"], + "teraTypes": ["Ground", "Water"] + } + ] + }, + "coalossal": { + "level": 89, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flamethrower", "Overheat", "Rapid Spin", "Spikes", "Stealth Rock", "Stone Edge", "Will-O-Wisp"], + "abilities": ["Flame Body"], + "teraTypes": ["Ghost", "Grass", "Water"] + } + ] + }, + "flapple": { + "level": 88, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dragon Dance", "Grav Apple", "Outrage", "Sucker Punch", "U-turn"], + "abilities": ["Hustle"], + "teraTypes": ["Dragon", "Grass"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Grav Apple", "Outrage", "Tera Blast"], + "abilities": ["Hustle"], + "teraTypes": ["Fire"] + } + ] + }, + "appletun": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Apple Acid", "Draco Meteor", "Dragon Pulse", "Leech Seed", "Recover"], + "abilities": ["Thick Fat"], + "teraTypes": ["Steel"] + } + ] + }, + "sandaconda": { + "level": 84, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Coil", "Earthquake", "Glare", "Rest", "Stone Edge"], + "abilities": ["Shed Skin"], + "teraTypes": ["Dragon", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Glare", "Rest", "Stealth Rock", "Stone Edge"], + "abilities": ["Shed Skin"], + "teraTypes": ["Dragon", "Water"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Coil", "Earthquake", "Rock Blast", "Scale Shot"], + "abilities": ["Shed Skin"], + "teraTypes": ["Dragon"] + } + ] + }, + "cramorant": { + "level": 86, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Defog", "Roost", "Surf"], + "abilities": ["Gulp Missile"], + "teraTypes": ["Ground"] + } + ] + }, + "barraskewda": { + "level": 81, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Flip Turn", "Poison Jab", "Psychic Fangs", "Throat Chop", "Waterfall"], + "abilities": ["Swift Swim"], + "teraTypes": ["Fighting", "Water"] + } + ] + }, + "toxtricity": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Boomburst", "Overdrive", "Sludge Wave", "Volt Switch"], + "abilities": ["Punk Rock"], + "teraTypes": ["Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Boomburst", "Gunk Shot", "Overdrive", "Shift Gear"], + "abilities": ["Punk Rock"], + "teraTypes": ["Normal"] + } + ] + }, + "polteageist": { + "level": 79, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Shadow Ball", "Shell Smash", "Stored Power", "Strength Sap", "Tera Blast"], + "abilities": ["Cursed Body"], + "teraTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Giga Drain", "Shadow Ball", "Shell Smash", "Stored Power", "Strength Sap"], + "abilities": ["Cursed Body"], + "teraTypes": ["Psychic"] + } + ] + }, + "hatterene": { + "level": 85, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Mystical Fire", "Psychic", "Psyshock"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "AV Pivot", + "movepool": ["Draining Kiss", "Mystical Fire", "Nuzzle", "Psychic", "Psychic Noise"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "grimmsnarl": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Light Screen", "Parting Shot", "Reflect", "Spirit Break", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Parting Shot", "Spirit Break", "Sucker Punch", "Taunt", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "perrserker": { + "level": 89, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Iron Head", "Knock Off", "Stealth Rock", "U-turn"], + "abilities": ["Tough Claws"], + "teraTypes": ["Fighting"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Iron Head", "Knock Off", "Stealth Rock", "U-turn"], + "abilities": ["Steely Spirit"], + "teraTypes": ["Steel"] + } + ] + }, + "alcremie": { + "level": 90, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Alluring Voice", "Calm Mind", "Psychic", "Psyshock", "Recover"], + "abilities": ["Aroma Veil"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Alluring Voice", "Calm Mind", "Recover", "Tera Blast"], + "abilities": ["Aroma Veil"], + "teraTypes": ["Ground"] + } + ] + }, + "falinks": { + "level": 84, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Iron Head", "Knock Off", "No Retreat"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "pincurchin": { + "level": 100, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Discharge", "Recover", "Scald", "Spikes", "Thunderbolt", "Toxic Spikes"], + "abilities": ["Electric Surge"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Curse", "Liquidation", "Recover", "Zing Zap"], + "abilities": ["Electric Surge"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "frosmoth": { + "level": 82, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Bug Buzz", "Giga Drain", "Ice Beam", "Quiver Dance", "Tera Blast"], + "abilities": ["Ice Scales"], + "teraTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Bug Buzz", "Giga Drain", "Hurricane", "Ice Beam", "Quiver Dance"], + "abilities": ["Ice Scales"], + "teraTypes": ["Water"] + } + ] + }, + "stonjourner": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Heat Crash", "Rock Polish", "Stealth Rock", "Stone Edge"], + "abilities": ["Power Spot"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "eiscue": { + "level": 88, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Belly Drum", "Ice Spinner", "Iron Head", "Liquidation", "Substitute", "Zen Headbutt"], + "abilities": ["Ice Face"], + "teraTypes": ["Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Belly Drum", "Ice Spinner", "Liquidation", "Substitute", "Tera Blast"], + "abilities": ["Ice Face"], + "teraTypes": ["Electric", "Ground"] + } + ] + }, + "indeedee": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Calm Mind", "Dazzling Gleam", "Expanding Force", "Healing Wish", "Hyper Voice", "Shadow Ball"], + "abilities": ["Psychic Surge"], + "teraTypes": ["Psychic"] + } + ] + }, + "indeedeef": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Calm Mind", "Dazzling Gleam", "Healing Wish", "Hyper Voice", "Psychic", "Psyshock", "Shadow Ball"], + "abilities": ["Psychic Surge"], + "teraTypes": ["Fairy", "Psychic"] + } + ] + }, + "morpeko": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Aura Wheel", "Parting Shot", "Protect", "Rapid Spin"], + "abilities": ["Hunger Switch"], + "teraTypes": ["Electric"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Aura Wheel", "Knock Off", "Protect", "Rapid Spin"], + "abilities": ["Hunger Switch"], + "teraTypes": ["Electric"] + } + ] + }, + "copperajah": { + "level": 86, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Iron Head", "Play Rough", "Rock Slide", "Stealth Rock", "Superpower"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Heat Crash", "Heavy Slam", "Knock Off", "Stone Edge", "Supercell Slam", "Superpower"], + "abilities": ["Heavy Metal"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "duraludon": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Draco Meteor", "Dragon Tail", "Flash Cannon", "Iron Defense", "Stealth Rock", "Thunder Wave"], + "abilities": ["Light Metal"], + "teraTypes": ["Fighting"] + } + ] + }, + "dragapult": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Fire Blast", "Shadow Ball", "Thunderbolt", "U-turn"], + "abilities": ["Infiltrator"], + "teraTypes": ["Dragon", "Fire", "Ghost"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Dance", "Dragon Darts", "Fire Blast", "Tera Blast"], + "abilities": ["Clear Body"], + "teraTypes": ["Ghost"] + }, + { + "role": "Fast Support", + "movepool": ["Dragon Darts", "Hex", "U-turn", "Will-O-Wisp"], + "abilities": ["Cursed Body", "Infiltrator"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "zacian": { + "level": 69, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Crunch", "Play Rough", "Psychic Fangs", "Swords Dance", "Wild Charge"], + "abilities": ["Intrepid Sword"], + "teraTypes": ["Fighting"] + } + ] + }, + "zaciancrowned": { + "level": 64, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Behemoth Blade", "Close Combat", "Play Rough", "Swords Dance"], + "abilities": ["Intrepid Sword"], + "teraTypes": ["Fighting"] + } + ] + }, + "zamazenta": { + "level": 71, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Crunch", "Iron Head", "Psychic Fangs", "Stone Edge"], + "abilities": ["Dauntless Shield"], + "teraTypes": ["Dark", "Fighting", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Crunch", "Iron Defense", "Iron Head", "Rest", "Stone Edge", "Substitute"], + "abilities": ["Dauntless Shield"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "zamazentacrowned": { + "level": 68, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Crunch", "Heavy Slam", "Iron Defense", "Stone Edge"], + "abilities": ["Dauntless Shield"], + "teraTypes": ["Fighting", "Ghost"] + } + ] + }, + "eternatus": { + "level": 69, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dynamax Cannon", "Fire Blast", "Recover", "Sludge Bomb"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Fire"] + }, + { + "role": "Bulky Support", + "movepool": ["Dynamax Cannon", "Flamethrower", "Recover", "Toxic", "Toxic Spikes"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dynamax Cannon", "Fire Blast", "Meteor Beam", "Sludge Bomb"], + "abilities": ["Pressure"], + "teraTypes": ["Dragon", "Fire", "Poison"] + } + ] + }, + "urshifu": { + "level": 74, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Poison Jab", "Sucker Punch", "Swords Dance", "U-turn", "Wicked Blow"], + "abilities": ["Unseen Fist"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "urshifurapidstrike": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aqua Jet", "Close Combat", "Ice Spinner", "Surging Strikes", "Swords Dance", "U-turn"], + "abilities": ["Unseen Fist"], + "teraTypes": ["Water"] + } + ] + }, + "zarude": { + "level": 78, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Close Combat", "Knock Off", "Power Whip", "Swords Dance", "Synthesis"], + "abilities": ["Leaf Guard"], + "teraTypes": ["Dark", "Fighting", "Grass"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Knock Off", "Power Whip", "U-turn"], + "abilities": ["Leaf Guard"], + "teraTypes": ["Dark", "Fighting", "Grass"] + } + ] + }, + "regieleki": { + "level": 79, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Explosion", "Rapid Spin", "Thunderbolt", "Volt Switch"], + "abilities": ["Transistor"], + "teraTypes": ["Electric"] + }, + { + "role": "Tera Blast user", + "movepool": ["Rapid Spin", "Tera Blast", "Thunderbolt", "Volt Switch"], + "abilities": ["Transistor"], + "teraTypes": ["Ice"] + } + ] + }, + "regidrago": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Draco Meteor", "Dragon Dance", "Earthquake", "Outrage"], + "abilities": ["Dragon's Maw"], + "teraTypes": ["Dragon"] + }, + { + "role": "Tera Blast user", + "movepool": ["Dragon Claw", "Dragon Dance", "Earthquake", "Tera Blast"], + "abilities": ["Dragon's Maw"], + "teraTypes": ["Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Dragon Energy", "Earthquake", "Outrage"], + "abilities": ["Dragon's Maw"], + "teraTypes": ["Dragon"] + } + ] + }, + "glastrier": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Heavy Slam", "High Horsepower", "Icicle Crash", "Swords Dance"], + "abilities": ["Chilling Neigh"], + "teraTypes": ["Fighting", "Ground", "Steel"] + } + ] + }, + "spectrier": { + "level": 75, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Draining Kiss", "Nasty Plot", "Shadow Ball", "Substitute", "Will-O-Wisp"], + "abilities": ["Grim Neigh"], + "teraTypes": ["Dark", "Fairy"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Shadow Ball", "Substitute", "Tera Blast", "Will-O-Wisp"], + "abilities": ["Grim Neigh"], + "teraTypes": ["Fighting"] + } + ] + }, + "calyrex": { + "level": 93, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Encore", "Giga Drain", "Leech Seed", "Psychic", "Psyshock"], + "abilities": ["Unnerve"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Encore", "Giga Drain", "Leech Seed", "Psychic", "Psyshock"], + "abilities": ["Unnerve"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "calyrexice": { + "level": 72, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Agility", "Close Combat", "Glacial Lance", "High Horsepower"], + "abilities": ["As One (Glastrier)"], + "teraTypes": ["Fighting", "Ground"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Glacial Lance", "High Horsepower", "Trick Room"], + "abilities": ["As One (Glastrier)"], + "teraTypes": ["Fighting", "Ground"] + } + ] + }, + "calyrexshadow": { + "level": 64, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Astral Barrage", "Nasty Plot", "Pollen Puff", "Psyshock", "Trick"], + "abilities": ["As One (Spectrier)"], + "teraTypes": ["Dark", "Ghost"] + } + ] + }, + "wyrdeer": { + "level": 87, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Earthquake", "Megahorn", "Psychic Noise", "Thunder Wave"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground"] + } + ] + }, + "kleavor": { + "level": 78, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Defog", "Stone Axe", "Swords Dance", "U-turn", "X-Scissor"], + "abilities": ["Sharpness"], + "teraTypes": ["Bug", "Fighting", "Rock"] + } + ] + }, + "ursaluna": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Crunch", "Facade", "Headlong Rush", "Swords Dance", "Throat Chop", "Trailblaze"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "ursalunabloodmoon": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Blood Moon", "Calm Mind", "Earth Power", "Moonlight"], + "abilities": ["Mind's Eye"], + "teraTypes": ["Ghost", "Normal", "Poison"] + }, + { + "role": "Bulky Setup", + "movepool": ["Blood Moon", "Calm Mind", "Moonlight", "Vacuum Wave"], + "abilities": ["Mind's Eye"], + "teraTypes": ["Fighting", "Ghost", "Normal", "Poison"] + } + ] + }, + "enamorus": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Play Rough", "Substitute", "Superpower", "Taunt", "Zen Headbutt"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Moonblast", "Mystical Fire", "Substitute"], + "abilities": ["Cute Charm"], + "teraTypes": ["Ground"] + } + ] + }, + "enamorustherian": { + "level": 83, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Moonblast", "Mystical Fire", "Psychic", "Superpower"], + "abilities": ["Overcoat"], + "teraTypes": ["Fairy", "Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Agility", "Earth Power", "Moonblast", "Mystical Fire", "Superpower"], + "abilities": ["Overcoat"], + "teraTypes": ["Ground"] + } + ] + }, + "meowscarada": { + "level": 78, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Flower Trick", "Knock Off", "Toxic Spikes", "Triple Axel", "U-turn"], + "abilities": ["Protean"], + "teraTypes": ["Dark", "Grass"] + } + ] + }, + "skeledirge": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Flame Charge", "Shadow Ball", "Slack Off", "Torch Song"], + "abilities": ["Unaware"], + "teraTypes": ["Fairy", "Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Hex", "Slack Off", "Torch Song", "Will-O-Wisp"], + "abilities": ["Unaware"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "quaquaval": { + "level": 79, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Aqua Step", "Close Combat", "Knock Off", "Rapid Spin", "Roost", "Triple Axel", "U-turn"], + "abilities": ["Moxie"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Aqua Step", "Close Combat", "Encore", "Knock Off", "Roost", "Swords Dance", "Triple Axel"], + "abilities": ["Moxie"], + "teraTypes": ["Fighting", "Water"] + } + ] + }, + "oinkologne": { + "level": 92, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Curse", "Double-Edge", "High Horsepower", "Lash Out"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground"] + } + ] + }, + "oinkolognef": { + "level": 92, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Curse", "Double-Edge", "High Horsepower", "Lash Out"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Curse", "Rest", "Sleep Talk"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Poison"] + } + ] + }, + "spidops": { + "level": 96, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Circle Throw", "Knock Off", "Spikes", "Sticky Web", "Toxic Spikes", "U-turn"], + "abilities": ["Stakeout"], + "teraTypes": ["Ghost"] + } + ] + }, + "lokix": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["First Impression", "Knock Off", "Leech Life", "Sucker Punch"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug"] + }, + { + "role": "Fast Attacker", + "movepool": ["First Impression", "Knock Off", "Sucker Punch", "U-turn"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Knock Off", "Leech Life", "Sucker Punch", "Swords Dance"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Dark"] + } + ] + }, + "pawmot": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Double Shock", "Knock Off", "Nuzzle", "Revival Blessing"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Electric"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Double Shock", "Ice Punch", "Revival Blessing"], + "abilities": ["Iron Fist"], + "teraTypes": ["Electric"] + } + ] + }, + "maushold": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bite", "Encore", "Population Bomb", "Tidy Up"], + "abilities": ["Technician"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "dachsbun": { + "level": 92, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Press", "Play Rough", "Protect", "Stomping Tantrum", "Wish"], + "abilities": ["Well-Baked Body"], + "teraTypes": ["Steel"] + } + ] + }, + "arboliva": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Energy Ball", "Hyper Voice", "Strength Sap"], + "abilities": ["Seed Sower"], + "teraTypes": ["Grass", "Ground", "Poison"] + }, + { + "role": "Bulky Support", + "movepool": ["Hyper Voice", "Leech Seed", "Protect", "Substitute"], + "abilities": ["Harvest"], + "teraTypes": ["Poison", "Water"] + } + ] + }, + "squawkabilly": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Brave Bird", "Facade", "Protect", "Quick Attack", "U-turn"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "squawkabillywhite": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Brave Bird", "Double-Edge", "Foul Play", "Parting Shot", "Quick Attack"], + "abilities": ["Hustle"], + "teraTypes": ["Flying", "Normal"] + } + ] + }, + "squawkabillyblue": { + "level": 85, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Brave Bird", "Facade", "Protect", "Quick Attack", "U-turn"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "squawkabillyyellow": { + "level": 89, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Brave Bird", "Double-Edge", "Foul Play", "Parting Shot", "Quick Attack"], + "abilities": ["Hustle"], + "teraTypes": ["Flying", "Normal"] + } + ] + }, + "garganacl": { + "level": 80, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Protect", "Recover", "Salt Cure", "Stealth Rock"], + "abilities": ["Purifying Salt"], + "teraTypes": ["Dragon", "Ghost"] + }, + { + "role": "Bulky Support", + "movepool": ["Body Press", "Protect", "Recover", "Salt Cure", "Stealth Rock"], + "abilities": ["Purifying Salt"], + "teraTypes": ["Dragon", "Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Recover", "Salt Cure"], + "abilities": ["Purifying Salt"], + "teraTypes": ["Dragon", "Ghost"] + } + ] + }, + "armarouge": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Armor Cannon", "Aura Sphere", "Energy Ball", "Focus Blast", "Psyshock"], + "abilities": ["Weak Armor"], + "teraTypes": ["Fighting", "Fire", "Grass", "Psychic"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Armor Cannon", "Energy Ball", "Meteor Beam", "Psyshock"], + "abilities": ["Weak Armor"], + "teraTypes": ["Fire", "Grass"] + } + ] + }, + "ceruledge": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bitter Blade", "Close Combat", "Poltergeist", "Shadow Sneak", "Swords Dance"], + "abilities": ["Weak Armor"], + "teraTypes": ["Fighting", "Fire", "Ghost"] + } + ] + }, + "bellibolt": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Muddy Water", "Slack Off", "Thunderbolt", "Toxic", "Volt Switch"], + "abilities": ["Electromorphosis"], + "teraTypes": ["Electric", "Water"] + } + ] + }, + "kilowattrel": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Hurricane", "Roost", "Thunder Wave", "Thunderbolt", "U-turn"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Electric", "Flying", "Steel", "Water"] + } + ] + }, + "mabosstiff": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Crunch", "Play Rough", "Psychic Fangs", "Wild Charge"], + "abilities": ["Stakeout"], + "teraTypes": ["Dark", "Fairy"] + } + ] + }, + "grafaiai": { + "level": 86, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Gunk Shot", "Knock Off", "Super Fang", "U-turn"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark"] + }, + { + "role": "Fast Support", + "movepool": ["Encore", "Gunk Shot", "Knock Off", "Parting Shot"], + "abilities": ["Prankster"], + "teraTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Gunk Shot", "Knock Off", "Low Kick", "Swords Dance"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark"] + } + ] + }, + "brambleghast": { + "level": 88, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Leech Seed", "Poltergeist", "Power Whip", "Rapid Spin", "Spikes", "Strength Sap", "Substitute"], + "abilities": ["Wind Rider"], + "teraTypes": ["Fairy", "Steel", "Water"] + } + ] + }, + "toedscruel": { + "level": 87, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earth Power", "Giga Drain", "Knock Off", "Leaf Storm", "Rapid Spin", "Spore", "Toxic"], + "abilities": ["Mycelium Might"], + "teraTypes": ["Water"] + } + ] + }, + "klawf": { + "level": 90, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Crabhammer", "High Horsepower", "Knock Off", "Stealth Rock", "Stone Edge"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Ground", "Rock", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Crabhammer", "High Horsepower", "Knock Off", "Stone Edge", "Swords Dance"], + "abilities": ["Anger Shell"], + "teraTypes": ["Dark", "Ground", "Rock", "Water"] + } + ] + }, + "scovillain": { + "level": 91, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Flamethrower", "Leech Seed", "Protect", "Substitute"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Energy Ball", "Flamethrower", "Leaf Storm", "Overheat"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Grass"] + }, + { + "role": "Wallbreaker", + "movepool": ["Energy Ball", "Fire Blast", "Stomping Tantrum", "Sunny Day"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Grass", "Ground"] + } + ] + }, + "rabsca": { + "level": 91, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Bug Buzz", "Earth Power", "Psychic", "Recover", "Revival Blessing", "Trick Room"], + "abilities": ["Synchronize"], + "teraTypes": ["Steel"] + } + ] + }, + "espathra": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Dazzling Gleam", "Lumina Crash", "Shadow Ball", "U-turn"], + "abilities": ["Speed Boost"], + "teraTypes": ["Fairy", "Psychic"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Dazzling Gleam", "Protect", "Roost", "Stored Power", "Substitute"], + "abilities": ["Speed Boost"], + "teraTypes": ["Fairy"] + } + ] + }, + "tinkaton": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Gigaton Hammer", "Knock Off", "Play Rough", "Stealth Rock", "Thunder Wave"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Gigaton Hammer", "Knock Off", "Play Rough", "Swords Dance"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Steel"] + } + ] + }, + "wugtrio": { + "level": 91, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aqua Jet", "Liquidation", "Stomping Tantrum", "Throat Chop"], + "abilities": ["Gooey"], + "teraTypes": ["Dark", "Ground", "Water"] + } + ] + }, + "bombirdier": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Knock Off", "Roost", "Stone Edge", "Sucker Punch", "U-turn"], + "abilities": ["Rocky Payload"], + "teraTypes": ["Rock"] + }, + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Knock Off", "Roost", "Stealth Rock", "Sucker Punch", "U-turn"], + "abilities": ["Big Pecks"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "palafin": { + "level": 77, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Flip Turn", "Jet Punch", "Wave Crash"], + "abilities": ["Zero to Hero"], + "teraTypes": ["Fighting", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Ice Punch", "Jet Punch", "Wave Crash"], + "abilities": ["Zero to Hero"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "revavroom": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Gunk Shot", "High Horsepower", "Iron Head", "Shift Gear"], + "abilities": ["Filter"], + "teraTypes": ["Ground"] + } + ] + }, + "cyclizar": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Draco Meteor", "Knock Off", "Rapid Spin", "Shed Tail", "Taunt"], + "abilities": ["Regenerator"], + "teraTypes": ["Dragon", "Fairy", "Ghost", "Steel"] + } + ] + }, + "orthworm": { + "level": 88, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Coil", "Iron Tail", "Rest"], + "abilities": ["Earth Eater"], + "teraTypes": ["Electric", "Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Heavy Slam", "Rest", "Shed Tail", "Spikes", "Stealth Rock"], + "abilities": ["Earth Eater"], + "teraTypes": ["Electric", "Fighting", "Ghost", "Poison"] + } + ] + }, + "glimmora": { + "level": 75, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Earth Power", "Mortal Spin", "Power Gem", "Sludge Wave", "Spikes", "Stealth Rock"], + "abilities": ["Toxic Debris"], + "teraTypes": ["Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Earth Power", "Energy Ball", "Meteor Beam", "Sludge Wave"], + "abilities": ["Toxic Debris"], + "teraTypes": ["Grass"] + } + ] + }, + "houndstone": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Play Rough", "Poltergeist", "Roar", "Shadow Sneak", "Trick", "Will-O-Wisp"], + "abilities": ["Fluffy"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Support", + "movepool": ["Body Press", "Poltergeist", "Rest", "Sleep Talk"], + "abilities": ["Fluffy"], + "teraTypes": ["Fighting"] + }, + { + "role": "AV Pivot", + "movepool": ["Body Press", "Play Rough", "Poltergeist", "Shadow Sneak"], + "abilities": ["Fluffy"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "flamigo": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Close Combat", "Throat Chop", "U-turn"], + "abilities": ["Scrappy"], + "teraTypes": ["Fighting"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Brave Bird", "Close Combat", "Roost", "Swords Dance", "Throat Chop"], + "abilities": ["Scrappy"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "cetitan": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Ice Shard", "Icicle Crash", "Liquidation", "Superpower"], + "abilities": ["Sheer Force"], + "teraTypes": ["Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Belly Drum", "Earthquake", "Ice Shard", "Ice Spinner"], + "abilities": ["Slush Rush", "Thick Fat"], + "teraTypes": ["Ice"] + } + ] + }, + "veluza": { + "level": 85, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aqua Cutter", "Aqua Jet", "Flip Turn", "Night Slash", "Psycho Cut"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Aqua Cutter", "Fillet Away", "Night Slash", "Psycho Cut"], + "abilities": ["Sharpness"], + "teraTypes": ["Dark", "Psychic", "Water"] + } + ] + }, + "dondozo": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Curse", "Rest", "Sleep Talk", "Wave Crash"], + "abilities": ["Unaware"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "tatsugiri": { + "level": 87, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Draco Meteor", "Hydro Pump", "Nasty Plot", "Rapid Spin", "Surf"], + "abilities": ["Storm Drain"], + "teraTypes": ["Water"] + } + ] + }, + "farigiraf": { + "level": 91, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Protect", "Psychic Noise", "Wish"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Fairy", "Ground", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Future Sight", "Hyper Voice", "Protect", "Wish"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Fairy", "Ground", "Water"] + } + ] + }, + "dudunsparce": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Glare", "Headbutt", "Roost"], + "abilities": ["Serene Grace"], + "teraTypes": ["Ghost", "Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Boomburst", "Calm Mind", "Earth Power", "Roost"], + "abilities": ["Rattled"], + "teraTypes": ["Fairy", "Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Boomburst", "Calm Mind", "Roost", "Shadow Ball"], + "abilities": ["Rattled"], + "teraTypes": ["Ghost"] + } + ] + }, + "kingambit": { + "level": 74, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Iron Head", "Kowtow Cleave", "Sucker Punch", "Swords Dance"], + "abilities": ["Supreme Overlord"], + "teraTypes": ["Dark", "Flying"] + } + ] + }, + "greattusk": { + "level": 77, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Rapid Spin", "Stone Edge"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Rapid Spin", "Stone Edge"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Close Combat", "Headlong Rush", "Ice Spinner", "Knock Off", "Rapid Spin", "Stealth Rock", "Stone Edge"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "brutebonnet": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Seed Bomb", "Spore", "Sucker Punch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fighting", "Poison"] + }, + { + "role": "Bulky Support", + "movepool": ["Crunch", "Seed Bomb", "Spore", "Sucker Punch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Dark", "Poison"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Crunch", "Seed Bomb", "Sucker Punch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "sandyshocks": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Earth Power", "Spikes", "Stealth Rock", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Grass", "Ground"] + } + ] + }, + "screamtail": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Play Rough", "Protect", "Thunder Wave", "Wish"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Dazzling Gleam", "Encore", "Protect", "Thunder Wave", "Wish"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "fluttermane": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Calm Mind", "Moonblast", "Mystical Fire", "Psyshock", "Shadow Ball", "Thunderbolt"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Fairy", "Fire", "Ghost"] + }, + { + "role": "Wallbreaker", + "movepool": ["Moonblast", "Mystical Fire", "Psyshock", "Shadow Ball", "Thunderbolt"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fairy"] + } + ] + }, + "slitherwing": { + "level": 81, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Flame Charge", "Leech Life", "Wild Charge"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Fighting"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Earthquake", "First Impression", "Flare Blitz", "U-turn", "Wild Charge"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Bug", "Electric", "Fighting", "Fire"] + }, + { + "role": "Fast Support", + "movepool": ["Close Combat", "Morning Sun", "U-turn", "Will-O-Wisp"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "roaringmoon": { + "level": 72, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Iron Head", "Knock Off", "Outrage", "Roost"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Dark", "Dragon", "Ground", "Poison", "Steel"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Acrobatics", "Dragon Dance", "Iron Head", "Knock Off", "Outrage"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Flying", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Iron Head", "Knock Off", "Outrage", "U-turn"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Dark", "Dragon", "Steel"] + } + ] + }, + "walkingwake": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Draco Meteor", "Flamethrower", "Flip Turn", "Hydro Pump"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fire", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Flamethrower", "Hydro Steam", "Sunny Day"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fire"] + } + ] + }, + "irontreads": { + "level": 77, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Iron Head", "Knock Off", "Rapid Spin", "Stealth Rock", "Volt Switch"], + "abilities": ["Quark Drive"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "ironmoth": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Energy Ball", "Fiery Dance", "Fire Blast", "Morning Sun", "Sludge Wave", "Toxic Spikes", "U-turn"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fire", "Grass"] + } + ] + }, + "ironhands": { + "level": 79, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Close Combat", "Drain Punch", "Fake Out", "Heavy Slam", "Ice Punch", "Thunder Punch", "Volt Switch", "Wild Charge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Electric", "Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Drain Punch", "Ice Punch", "Swords Dance", "Thunder Punch", "Wild Charge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Flying", "Steel"] + } + ] + }, + "ironjugulis": { + "level": 78, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Dark Pulse", "Earth Power", "Fire Blast", "Hurricane", "Hydro Pump", "U-turn"], + "abilities": ["Quark Drive"], + "teraTypes": ["Dark", "Flying", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Earth Power", "Hurricane", "Meteor Beam"], + "abilities": ["Quark Drive"], + "teraTypes": ["Dark", "Ground"] + } + ] + }, + "ironthorns": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Earthquake", "Ice Punch", "Spikes", "Stealth Rock", "Stone Edge", "Volt Switch", "Wild Charge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Flying", "Grass", "Water"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Dragon Dance", "Earthquake", "Ice Punch", "Stone Edge", "Wild Charge"], + "abilities": ["Quark Drive"], + "teraTypes": ["Flying", "Grass", "Ground", "Rock"] + } + ] + }, + "ironbundle": { + "level": 77, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Encore", "Flip Turn", "Freeze-Dry", "Hydro Pump", "Ice Beam", "Substitute"], + "abilities": ["Quark Drive"], + "teraTypes": ["Ice", "Water"] + } + ] + }, + "ironvaliant": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Knock Off", "Spirit Break", "Swords Dance"], + "abilities": ["Quark Drive"], + "teraTypes": ["Dark", "Fighting"] + }, + { + "role": "Fast Attacker", + "movepool": ["Calm Mind", "Close Combat", "Moonblast", "Psychic"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fairy", "Fighting", "Steel"] + }, + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Encore", "Knock Off", "Moonblast"], + "abilities": ["Quark Drive"], + "teraTypes": ["Dark", "Fairy", "Fighting", "Steel"] + } + ] + }, + "ironleaves": { + "level": 80, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Leaf Blade", "Megahorn", "Psyblade", "Swords Dance"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting"] + } + ] + }, + "baxcalibur": { + "level": 75, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Glaive Rush", "Ice Shard", "Icicle Crash"], + "abilities": ["Thermal Exchange"], + "teraTypes": ["Dragon", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Glaive Rush", "Icicle Crash"], + "abilities": ["Thermal Exchange"], + "teraTypes": ["Dragon", "Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Icicle Spear", "Scale Shot", "Swords Dance"], + "abilities": ["Thermal Exchange"], + "teraTypes": ["Dragon", "Ground"] + } + ] + }, + "gholdengo": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Focus Blast", "Make It Rain", "Nasty Plot", "Shadow Ball", "Trick"], + "abilities": ["Good as Gold"], + "teraTypes": ["Fighting", "Ghost", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Make It Rain", "Nasty Plot", "Recover", "Shadow Ball", "Thunder Wave"], + "abilities": ["Good as Gold"], + "teraTypes": ["Dark", "Steel", "Water"] + } + ] + }, + "tinglu": { + "level": 78, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Spikes", "Stealth Rock", "Throat Chop", "Whirlwind"], + "abilities": ["Vessel of Ruin"], + "teraTypes": ["Ghost", "Poison"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Heavy Slam", "Payback", "Ruination", "Spikes", "Stealth Rock"], + "abilities": ["Vessel of Ruin"], + "teraTypes": ["Ghost", "Poison", "Steel"] + } + ] + }, + "chienpao": { + "level": 72, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Crunch", "Ice Shard", "Icicle Crash", "Sacred Sword", "Throat Chop"], + "abilities": ["Sword of Ruin"], + "teraTypes": ["Dark", "Fighting", "Ice"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Ice Shard", "Icicle Crash", "Sacred Sword", "Sucker Punch", "Swords Dance", "Throat Chop"], + "abilities": ["Sword of Ruin"], + "teraTypes": ["Dark", "Fighting", "Ice"] + } + ] + }, + "wochien": { + "level": 83, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Giga Drain", "Knock Off", "Leech Seed", "Protect", "Ruination", "Stun Spore"], + "abilities": ["Tablets of Ruin"], + "teraTypes": ["Poison"] + } + ] + }, + "chiyu": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Fire Blast", "Nasty Plot", "Psychic", "Will-O-Wisp"], + "abilities": ["Beads of Ruin"], + "teraTypes": ["Dark", "Fire"] + }, + { + "role": "Fast Attacker", + "movepool": ["Dark Pulse", "Flamethrower", "Overheat", "Psychic"], + "abilities": ["Beads of Ruin"], + "teraTypes": ["Dark", "Fire"] + } + ] + }, + "koraidon": { + "level": 64, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Flare Blitz", "Outrage", "U-turn"], + "abilities": ["Orichalcum Pulse"], + "teraTypes": ["Fire"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Collision Course", "Flare Blitz", "Scale Shot", "Swords Dance"], + "abilities": ["Orichalcum Pulse"], + "teraTypes": ["Fire"] + } + ] + }, + "miraidon": { + "level": 65, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Draco Meteor", "Electro Drift", "Substitute"], + "abilities": ["Hadron Engine"], + "teraTypes": ["Electric"] + }, + { + "role": "Fast Attacker", + "movepool": ["Draco Meteor", "Electro Drift", "Overheat", "Volt Switch"], + "abilities": ["Hadron Engine"], + "teraTypes": ["Electric"] + } + ] + }, + "dipplin": { + "level": 88, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dragon Pulse", "Dragon Tail", "Giga Drain", "Recover", "Sucker Punch"], + "abilities": ["Sticky Hold"], + "teraTypes": ["Steel"] + } + ] + }, + "sinistcha": { + "level": 83, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Matcha Gotcha", "Shadow Ball", "Strength Sap"], + "abilities": ["Heatproof"], + "teraTypes": ["Steel"] + } + ] + }, + "okidogi": { + "level": 77, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Gunk Shot", "Knock Off"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark"] + }, + { + "role": "AV Pivot", + "movepool": ["Drain Punch", "Gunk Shot", "High Horsepower", "Knock Off", "Psychic Fangs"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark"] + } + ] + }, + "munkidori": { + "level": 79, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Focus Blast", "Nasty Plot", "Psyshock", "Sludge Wave", "U-turn"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Fighting", "Poison"] + }, + { + "role": "AV Pivot", + "movepool": ["Fake Out", "Psychic Noise", "Sludge Wave", "U-turn"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark"] + } + ] + }, + "fezandipiti": { + "level": 82, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Beat Up", "Gunk Shot", "Heat Wave", "Play Rough", "U-turn"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark", "Steel", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Beat Up", "Gunk Shot", "Play Rough", "Roost", "U-turn"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Dark", "Steel", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Gunk Shot", "Play Rough", "Swords Dance", "Tera Blast"], + "abilities": ["Toxic Chain"], + "teraTypes": ["Ground"] + } + ] + }, + "ogerpon": { + "level": 80, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Encore", "Ivy Cudgel", "Knock Off", "Spikes", "Superpower", "Synthesis", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Grass"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Ivy Cudgel", "Knock Off", "Superpower", "Swords Dance"], + "abilities": ["Defiant"], + "teraTypes": ["Grass"] + } + ] + }, + "ogerponwellspring": { + "level": 76, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Ivy Cudgel", "Spikes", "Synthesis", "U-turn", "Wood Hammer"], + "abilities": ["Water Absorb"], + "teraTypes": ["Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Horn Leech", "Ivy Cudgel", "Knock Off", "Play Rough", "Power Whip", "Swords Dance"], + "abilities": ["Water Absorb"], + "teraTypes": ["Water"] + } + ] + }, + "ogerponhearthflame": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Horn Leech", "Ivy Cudgel", "Knock Off", "Power Whip", "Stomping Tantrum", "Swords Dance"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Fire"] + } + ] + }, + "ogerponcornerstone": { + "level": 76, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Ivy Cudgel", "Power Whip", "Spikes", "Superpower", "Synthesis"], + "abilities": ["Sturdy"], + "teraTypes": ["Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Horn Leech", "Ivy Cudgel", "Power Whip", "Superpower", "Swords Dance"], + "abilities": ["Sturdy"], + "teraTypes": ["Rock"] + } + ] + }, + "archaludon": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Iron Head", "Outrage", "Swords Dance"], + "abilities": ["Stamina"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Draco Meteor", "Dragon Tail", "Flash Cannon", "Stealth Rock", "Thunder Wave", "Thunderbolt"], + "abilities": ["Stamina"], + "teraTypes": ["Fighting"] + } + ] + }, + "hydrapple": { + "level": 83, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Dragon Tail", "Earth Power", "Fickle Beam", "Giga Drain", "Leaf Storm"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Earth Power", "Fickle Beam", "Giga Drain", "Nasty Plot", "Recover"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel"] + }, + { + "role": "Wallbreaker", + "movepool": ["Draco Meteor", "Earth Power", "Fickle Beam", "Leaf Storm"], + "abilities": ["Regenerator"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "gougingfire": { + "level": 74, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Heat Crash", "Outrage"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Flare Blitz", "Heat Crash", "Morning Sun", "Outrage"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Fairy"] + } + ] + }, + "ragingbolt": { + "level": 78, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Discharge", "Draco Meteor", "Thunderbolt", "Thunderclap", "Volt Switch"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dragon Pulse", "Thunderbolt", "Thunderclap"], + "abilities": ["Protosynthesis"], + "teraTypes": ["Electric", "Fairy"] + } + ] + }, + "ironboulder": { + "level": 77, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Mighty Cleave", "Swords Dance", "Zen Headbutt"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Close Combat", "Mighty Cleave", "Swords Dance", "Zen Headbutt"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting"] + } + ] + }, + "ironcrown": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Focus Blast", "Psyshock", "Tachyon Cutter"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Steel"] + }, + { + "role": "Wallbreaker", + "movepool": ["Focus Blast", "Psyshock", "Tachyon Cutter", "Volt Switch"], + "abilities": ["Quark Drive"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "terapagos": { + "level": 76, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Calm Mind", "Dark Pulse", "Rapid Spin", "Rest", "Tera Starstorm"], + "abilities": ["Tera Shift"], + "teraTypes": ["Stellar"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Rapid Spin", "Rest", "Tera Starstorm"], + "abilities": ["Tera Shift"], + "teraTypes": ["Stellar"] + } + ] + }, + "pecharunt": { + "level": 77, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Malignant Chain", "Nasty Plot", "Parting Shot", "Recover", "Shadow Ball"], + "abilities": ["Poison Puppeteer"], + "teraTypes": ["Dark"] + } + ] + } +} diff --git a/data/random-battles/gen9/teams.ts b/data/random-battles/gen9/teams.ts new file mode 100644 index 000000000000..c3df7c8609ea --- /dev/null +++ b/data/random-battles/gen9/teams.ts @@ -0,0 +1,3004 @@ +import {Dex, toID} from '../../../sim/dex'; +import {Utils} from '../../../lib'; +import {PRNG, PRNGSeed} from '../../../sim/prng'; +import {RuleTable} from '../../../sim/dex-formats'; +import {Tags} from './../../tags'; +import {Teams} from '../../../sim/teams'; + +export interface TeamData { + typeCount: {[k: string]: number}; + typeComboCount: {[k: string]: number}; + baseFormes: {[k: string]: number}; + megaCount?: number; + zCount?: number; + wantsTeraCount?: number; + has: {[k: string]: number}; + forceResult: boolean; + weaknesses: {[k: string]: number}; + resistances: {[k: string]: number}; + weather?: string; + eeveeLimCount?: number; + gigantamax?: boolean; +} +export interface BattleFactorySpecies { + sets: BattleFactorySet[]; + weight: number; +} +interface BattleFactorySet { + species: string; + weight: number; + item: string[]; + ability: string[]; + nature: string[]; + moves: string[][]; + teraType: string[]; + gender?: string; + wantsTera?: boolean; + evs?: Partial; + ivs?: Partial; + shiny?: boolean; +} +interface BSSFactorySet { + species: string; + weight: number; + item: string[]; + ability: string; + nature: string; + moves: string[][]; + teraType: string[]; + gender?: string; + wantsTera?: boolean; + evs: number[]; + ivs?: number[]; +} +export class MoveCounter extends Utils.Multiset { + damagingMoves: Set; + + constructor() { + super(); + this.damagingMoves = new Set(); + } +} + +type MoveEnforcementChecker = ( + movePool: string[], moves: Set, abilities: string[], types: string[], + counter: MoveCounter, species: Species, teamDetails: RandomTeamsTypes.TeamDetails, + isLead: boolean, isDoubles: boolean, teraType: string, role: RandomTeamsTypes.Role, +) => boolean; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'roost', 'shoreup', 'slackoff', 'softboiled', 'strengthsap', 'synthesis', +]; +// Moves that drop stats: +const CONTRARY_MOVES = [ + 'armorcannon', 'closecombat', 'leafstorm', 'makeitrain', 'overheat', 'spinout', 'superpower', 'vcreate', +]; +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'poweruppunch', 'swordsdance', 'tidyup', 'victorydance', +]; +// Moves which boost Special Attack: +const SPECIAL_SETUP = [ + 'calmmind', 'chargebeam', 'geomancy', 'nastyplot', 'quiverdance', 'tailglow', 'takeheart', 'torchsong', +]; +// Moves that boost Attack AND Special Attack: +const MIXED_SETUP = [ + 'clangoroussoul', 'growth', 'happyhour', 'holdhands', 'noretreat', 'shellsmash', 'workup', +]; +// Some moves that only boost Speed: +const SPEED_SETUP = [ + 'agility', 'autotomize', 'flamecharge', 'rockpolish', 'snowscape', 'trailblaze', +]; +// Conglomerate for ease of access +const SETUP = [ + 'acidarmor', 'agility', 'autotomize', 'bellydrum', 'bulkup', 'calmmind', 'clangoroussoul', 'coil', 'cosmicpower', 'curse', 'dragondance', + 'flamecharge', 'growth', 'honeclaws', 'howl', 'irondefense', 'meditate', 'nastyplot', 'noretreat', 'poweruppunch', 'quiverdance', + 'rockpolish', 'shellsmash', 'shiftgear', 'swordsdance', 'tailglow', 'takeheart', 'tidyup', 'trailblaze', 'workup', 'victorydance', +]; +const SPEED_CONTROL = [ + 'electroweb', 'glare', 'icywind', 'lowsweep', 'quash', 'stringshot', 'tailwind', 'thunderwave', 'trickroom', +]; +// Moves that shouldn't be the only STAB moves: +const NO_STAB = [ + 'accelerock', 'aquajet', 'bounce', 'breakingswipe', 'bulletpunch', 'chatter', 'chloroblast', 'circlethrow', 'clearsmog', 'covet', + 'dragontail', 'doomdesire', 'electroweb', 'eruption', 'explosion', 'fakeout', 'feint', 'flamecharge', 'flipturn', 'futuresight', + 'grassyglide', 'iceshard', 'icywind', 'incinerate', 'infestation', 'machpunch', 'meteorbeam', 'mortalspin', 'nuzzle', 'pluck', 'pursuit', + 'quickattack', 'rapidspin', 'reversal', 'selfdestruct', 'shadowsneak', 'skydrop', 'snarl', 'strugglebug', 'suckerpunch', 'uturn', + 'vacuumwave', 'voltswitch', 'watershuriken', 'waterspout', +]; +// Hazard-setting moves +const HAZARDS = [ + 'spikes', 'stealthrock', 'stickyweb', 'toxicspikes', +]; +// Protect and its variants +const PROTECT_MOVES = [ + 'banefulbunker', 'burningbulwark', 'protect', 'silktrap', 'spikyshield', +]; +// Moves that switch the user out +const PIVOT_MOVES = [ + 'chillyreception', 'flipturn', 'partingshot', 'shedtail', 'teleport', 'uturn', 'voltswitch', +]; + +// Moves that should be paired together when possible +const MOVE_PAIRS = [ + ['lightscreen', 'reflect'], + ['sleeptalk', 'rest'], + ['protect', 'wish'], + ['leechseed', 'protect'], + ['leechseed', 'substitute'], +]; + +/** Pokemon who always want priority STAB, and are fine with it as its only STAB move of that type */ +const PRIORITY_POKEMON = [ + 'breloom', 'brutebonnet', 'cacturne', 'honchkrow', 'mimikyu', 'ragingbolt', 'scizor', +]; + +/** Pokemon who should never be in the lead slot */ +const NO_LEAD_POKEMON = [ + 'Zacian', 'Zamazenta', +]; +const DOUBLES_NO_LEAD_POKEMON = [ + 'Basculegion', 'Houndstone', 'Iron Bundle', 'Roaring Moon', 'Zacian', 'Zamazenta', +]; + +const DEFENSIVE_TERA_BLAST_USERS = [ + 'alcremie', 'bellossom', 'comfey', 'fezandipiti', 'florges', 'raikou', +]; + +function sereneGraceBenefits(move: Move) { + return move.secondary?.chance && move.secondary.chance > 20 && move.secondary.chance < 100; +} + +export class RandomTeams { + readonly dex: ModdedDex; + gen: number; + factoryTier: string; + format: Format; + prng: PRNG; + noStab: string[]; + readonly maxTeamSize: number; + readonly adjustLevel: number | null; + readonly maxMoveCount: number; + readonly forceMonotype: string | undefined; + readonly forceTeraType: string | undefined; + + /** + * Checkers for move enforcement based on types or other factors + * + * returns true to try to force the move type, false otherwise. + */ + moveEnforcementCheckers: {[k: string]: MoveEnforcementChecker}; + + /** Used by .getPools() */ + private poolsCacheKey: [string | undefined, number | undefined, RuleTable | undefined, boolean] | undefined; + private cachedPool: number[] | undefined; + private cachedSpeciesPool: Species[] | undefined; + protected cachedStatusMoves: ID[]; + + constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { + format = Dex.formats.get(format); + this.dex = Dex.forFormat(format); + this.gen = this.dex.gen; + this.noStab = NO_STAB; + + const ruleTable = Dex.formats.getRuleTable(format); + this.maxTeamSize = ruleTable.maxTeamSize; + this.adjustLevel = ruleTable.adjustLevel; + this.maxMoveCount = ruleTable.maxMoveCount; + const forceMonotype = ruleTable.valueRules.get('forcemonotype'); + this.forceMonotype = forceMonotype && this.dex.types.get(forceMonotype).exists ? + this.dex.types.get(forceMonotype).name : undefined; + const forceTeraType = ruleTable.valueRules.get('forceteratype'); + this.forceTeraType = forceTeraType && this.dex.types.get(forceTeraType).exists ? + this.dex.types.get(forceTeraType).name : undefined; + + this.factoryTier = ''; + this.format = format; + this.prng = prng && !Array.isArray(prng) ? prng : new PRNG(prng); + + this.moveEnforcementCheckers = { + Bug: (movePool, moves, abilities, types, counter) => ( + movePool.includes('megahorn') || movePool.includes('xscissor') || + (!counter.get('Bug') && (types.includes('Electric') || types.includes('Psychic'))) + ), + Dark: ( + movePool, moves, abilities, types, counter, species, teamDetails, isLead, isDoubles, teraType, role + ) => { + if ( + counter.get('Dark') < 2 && PRIORITY_POKEMON.includes(species.id) && role === 'Wallbreaker' + ) return true; + return !counter.get('Dark'); + }, + Dragon: (movePool, moves, abilities, types, counter) => !counter.get('Dragon'), + Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), + Fairy: (movePool, moves, abilities, types, counter) => !counter.get('Fairy'), + Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), + Fire: (movePool, moves, abilities, types, counter, species) => !counter.get('Fire'), + Flying: (movePool, moves, abilities, types, counter) => !counter.get('Flying'), + Ghost: (movePool, moves, abilities, types, counter) => !counter.get('Ghost'), + Grass: (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Grass') && ( + movePool.includes('leafstorm') || species.baseStats.atk >= 100 || + types.includes('Electric') || abilities.includes('Seed Sower') + ) + ), + Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), + Ice: (movePool, moves, abilities, types, counter) => ( + movePool.includes('freezedry') || movePool.includes('blizzard') || !counter.get('Ice') + ), + Normal: (movePool, moves, types, counter) => (movePool.includes('boomburst') || movePool.includes('hypervoice')), + Poison: (movePool, moves, abilities, types, counter) => { + if (types.includes('Ground')) return false; + return !counter.get('Poison'); + }, + Psychic: (movePool, moves, abilities, types, counter, species, teamDetails, isLead, isDoubles) => { + if ((isDoubles || species.id === 'bruxish') && movePool.includes('psychicfangs')) return true; + if (species.id === 'hoopaunbound' && movePool.includes('psychic')) return true; + if (['Dark', 'Steel', 'Water'].some(m => types.includes(m))) return false; + return !counter.get('Psychic'); + }, + Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.baseStats.atk >= 80, + Steel: (movePool, moves, abilities, types, counter, species, teamDetails, isLead, isDoubles) => ( + !counter.get('Steel') && + (isDoubles || species.baseStats.atk >= 90 || movePool.includes('gigatonhammer') || movePool.includes('makeitrain')) + ), + Water: (movePool, moves, abilities, types, counter) => (!counter.get('Water') && !types.includes('Ground')), + }; + this.poolsCacheKey = undefined; + this.cachedPool = undefined; + this.cachedSpeciesPool = undefined; + this.cachedStatusMoves = this.dex.moves.all().filter(move => move.category === 'Status').map(move => move.id); + } + + setSeed(prng?: PRNG | PRNGSeed) { + this.prng = prng && !Array.isArray(prng) ? prng : new PRNG(prng); + } + + getTeam(options?: PlayerOptions | null): PokemonSet[] { + const generatorName = ( + typeof this.format.team === 'string' && this.format.team.startsWith('random') + ) ? this.format.team + 'Team' : ''; + // @ts-ignore + return this[generatorName || 'randomTeam'](options); + } + + randomChance(numerator: number, denominator: number) { + return this.prng.randomChance(numerator, denominator); + } + + sample(items: readonly T[]): T { + return this.prng.sample(items); + } + + sampleIfArray(item: T | T[]): T { + if (Array.isArray(item)) { + return this.sample(item); + } + return item; + } + + random(m?: number, n?: number) { + return this.prng.next(m, n); + } + + /** + * Remove an element from an unsorted array significantly faster + * than .splice + */ + fastPop(list: any[], index: number) { + // If an array doesn't need to be in order, replacing the + // element at the given index with the removed element + // is much, much faster than using list.splice(index, 1). + const length = list.length; + if (index < 0 || index >= list.length) { + // sanity check + throw new Error(`Index ${index} out of bounds for given array`); + } + + const element = list[index]; + list[index] = list[length - 1]; + list.pop(); + return element; + } + + /** + * Remove a random element from an unsorted array and return it. + * Uses the battle's RNG if in a battle. + */ + sampleNoReplace(list: any[]) { + const length = list.length; + if (length === 0) return null; + const index = this.random(length); + return this.fastPop(list, index); + } + + /** + * Removes n random elements from an unsorted array and returns them. + * If n is less than the array's length, randomly removes and returns all the elements + * in the array (so the returned array could have length < n). + */ + multipleSamplesNoReplace(list: T[], n: number): T[] { + const samples = []; + while (samples.length < n && list.length) { + samples.push(this.sampleNoReplace(list)); + } + + return samples; + } + + /** + * Check if user has directly tried to ban/unban/restrict things in a custom battle. + * Doesn't count bans nested inside other formats/rules. + */ + private hasDirectCustomBanlistChanges() { + if (this.format.ruleTable?.has('+pokemontag:cap')) return false; + if (this.format.banlist.length || this.format.restricted.length || this.format.unbanlist.length) return true; + if (!this.format.customRules) return false; + for (const rule of this.format.customRules) { + for (const banlistOperator of ['-', '+', '*']) { + if (rule.startsWith(banlistOperator)) return true; + } + } + return false; + } + + /** + * Inform user when custom bans are unsupported in a team generator. + */ + protected enforceNoDirectCustomBanlistChanges() { + if (this.hasDirectCustomBanlistChanges()) { + throw new Error(`Custom bans are not currently supported in ${this.format.name}.`); + } + } + + /** + * Inform user when complex bans are unsupported in a team generator. + */ + protected enforceNoDirectComplexBans() { + if (!this.format.customRules) return false; + for (const rule of this.format.customRules) { + if (rule.includes('+') && !rule.startsWith('+')) { + throw new Error(`Complex bans are not currently supported in ${this.format.name}.`); + } + } + } + + /** + * Validate set element pool size is sufficient to support size requirements after simple bans. + */ + private enforceCustomPoolSizeNoComplexBans( + effectTypeName: string, + basicEffectPool: BasicEffect[], + requiredCount: number, + requiredCountExplanation: string + ) { + if (basicEffectPool.length >= requiredCount) return; + throw new Error(`Legal ${effectTypeName} count is insufficient to support ${requiredCountExplanation} (${basicEffectPool.length} / ${requiredCount}).`); + } + + queryMoves( + moves: Set | null, + species: Species, + teraType: string, + abilities: string[], + ): MoveCounter { + // This is primarily a helper function for random setbuilder functions. + const counter = new MoveCounter(); + const types = species.types; + if (!moves?.size) return counter; + + const categories = {Physical: 0, Special: 0, Status: 0}; + + // Iterate through all moves we've chosen so far and keep track of what they do: + for (const moveid of moves) { + const move = this.dex.moves.get(moveid); + + const moveType = this.getMoveType(move, species, abilities, teraType); + if (move.damage || move.damageCallback) { + // Moves that do a set amount of damage: + counter.add('damage'); + counter.damagingMoves.add(move); + } else { + // Are Physical/Special/Status moves: + categories[move.category]++; + } + // Moves that have a low base power: + if (moveid === 'lowkick' || (move.basePower && move.basePower <= 60 && moveid !== 'rapidspin')) { + counter.add('technician'); + } + // Moves that hit up to 5 times: + if (move.multihit && Array.isArray(move.multihit) && move.multihit[1] === 5) counter.add('skilllink'); + if (move.recoil || move.hasCrashDamage) counter.add('recoil'); + if (move.drain) counter.add('drain'); + // Moves which have a base power: + if (move.basePower || move.basePowerCallback) { + if (!this.noStab.includes(moveid) || PRIORITY_POKEMON.includes(species.id) && move.priority > 0) { + counter.add(moveType); + if (types.includes(moveType)) counter.add('stab'); + if (teraType === moveType) counter.add('stabtera'); + counter.damagingMoves.add(move); + } + if (move.flags['bite']) counter.add('strongjaw'); + if (move.flags['punch']) counter.add('ironfist'); + if (move.flags['sound']) counter.add('sound'); + if (move.priority > 0 || (moveid === 'grassyglide' && abilities.includes('Grassy Surge'))) { + counter.add('priority'); + } + } + // Moves with secondary effects: + if (move.secondary || move.hasSheerForce) { + counter.add('sheerforce'); + if (sereneGraceBenefits(move)) { + counter.add('serenegrace'); + } + } + // Moves with low accuracy: + if (move.accuracy && move.accuracy !== true && move.accuracy < 90) counter.add('inaccurate'); + + // Moves that change stats: + if (RECOVERY_MOVES.includes(moveid)) counter.add('recovery'); + if (CONTRARY_MOVES.includes(moveid)) counter.add('contrary'); + if (PHYSICAL_SETUP.includes(moveid)) counter.add('physicalsetup'); + if (SPECIAL_SETUP.includes(moveid)) counter.add('specialsetup'); + if (MIXED_SETUP.includes(moveid)) counter.add('mixedsetup'); + if (SPEED_SETUP.includes(moveid)) counter.add('speedsetup'); + if (SETUP.includes(moveid)) counter.add('setup'); + if (HAZARDS.includes(moveid)) counter.add('hazards'); + } + + counter.set('Physical', Math.floor(categories['Physical'])); + counter.set('Special', Math.floor(categories['Special'])); + counter.set('Status', categories['Status']); + return counter; + } + + cullMovePool( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): void { + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there is not room for them both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Develop additional move lists + const statusMoves = this.cachedStatusMoves; + + // Team-based move culls + if (teamDetails.screens) { + if (movePool.includes('auroraveil')) this.fastPop(movePool, movePool.indexOf('auroraveil')); + if (movePool.length >= this.maxMoveCount + 2) { + if (movePool.includes('reflect')) this.fastPop(movePool, movePool.indexOf('reflect')); + if (movePool.includes('lightscreen')) this.fastPop(movePool, movePool.indexOf('lightscreen')); + } + } + if (teamDetails.stickyWeb) { + if (movePool.includes('stickyweb')) this.fastPop(movePool, movePool.indexOf('stickyweb')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stealthRock) { + if (movePool.includes('stealthrock')) this.fastPop(movePool, movePool.indexOf('stealthrock')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.defog || teamDetails.rapidSpin) { + if (movePool.includes('defog')) this.fastPop(movePool, movePool.indexOf('defog')); + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.toxicSpikes) { + if (movePool.includes('toxicspikes')) this.fastPop(movePool, movePool.indexOf('toxicspikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.spikes && teamDetails.spikes >= 2) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.statusCure) { + if (movePool.includes('healbell')) this.fastPop(movePool, movePool.indexOf('healbell')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + if (isDoubles) { + const doublesIncompatiblePairs = [ + // In order of decreasing generalizability + [SPEED_CONTROL, SPEED_CONTROL], + [HAZARDS, HAZARDS], + ['rockslide', 'stoneedge'], + [SETUP, ['fakeout', 'helpinghand']], + [PROTECT_MOVES, 'wideguard'], + [['fierydance', 'fireblast'], 'heatwave'], + ['dazzlinggleam', ['fleurcannon', 'moonblast']], + ['poisongas', ['toxicspikes', 'willowisp']], + [RECOVERY_MOVES, 'healpulse'], + ['lifedew', 'healpulse'], + ['haze', 'icywind'], + [['hydropump', 'muddywater'], ['muddywater', 'scald']], + ['disable', 'encore'], + ['freezedry', 'icebeam'], + ['energyball', 'leafstorm'], + ['wildcharge', 'thunderbolt'], + ['earthpower', 'sandsearstorm'], + ['coaching', ['helpinghand', 'howl']], + ]; + + for (const pair of doublesIncompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + if (role !== 'Offensive Protect') this.incompatibleMoves(moves, movePool, PROTECT_MOVES, ['flipturn', 'uturn']); + } + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [statusMoves, ['healingwish', 'switcheroo', 'trick']], + [SETUP, PIVOT_MOVES], + [SETUP, HAZARDS], + [SETUP, ['defog', 'nuzzle', 'toxic', 'yawn', 'haze']], + [PHYSICAL_SETUP, PHYSICAL_SETUP], + [SPECIAL_SETUP, 'thunderwave'], + ['substitute', PIVOT_MOVES], + [SPEED_SETUP, ['aquajet', 'rest', 'trickroom']], + ['curse', ['irondefense', 'rapidspin']], + ['dragondance', 'dracometeor'], + ['yawn', 'roar'], + + // These attacks are redundant with each other + [['psychic', 'psychicnoise'], ['psyshock', 'psychicnoise']], + ['surf', 'hydropump'], + ['liquidation', 'wavecrash'], + ['aquajet', 'flipturn'], + ['gigadrain', 'leafstorm'], + ['powerwhip', 'hornleech'], + [['airslash', 'bravebird', 'hurricane'], ['airslash', 'bravebird', 'hurricane']], + ['knockoff', 'foulplay'], + ['throatchop', ['crunch', 'lashout']], + ['doubleedge', ['bodyslam', 'headbutt']], + ['fireblast', ['fierydance', 'flamethrower']], + ['lavaplume', 'magmastorm'], + ['thunderpunch', 'wildcharge'], + ['thunderbolt', 'discharge'], + ['gunkshot', ['direclaw', 'poisonjab', 'sludgebomb']], + ['aurasphere', 'focusblast'], + ['closecombat', 'drainpunch'], + ['bugbite', 'pounce'], + [['dragonpulse', 'spacialrend'], 'dracometeor'], + ['heavyslam', 'flashcannon'], + ['alluringvoice', 'dazzlinggleam'], + + // These status moves are redundant with each other + ['taunt', 'disable'], + [['thunderwave', 'toxic'], ['thunderwave', 'willowisp']], + [['thunderwave', 'toxic', 'willowisp'], 'toxicspikes'], + + // This space reserved for assorted hardcodes that otherwise make little sense out of context + // Landorus and Thundurus + ['nastyplot', ['rockslide', 'knockoff']], + // Persian + ['switcheroo', 'fakeout'], + // Amoonguss, though this can work well as a general rule later + ['toxic', 'clearsmog'], + // Chansey and Blissey + ['healbell', 'stealthrock'], + // Azelf and Zoroarks + ['trick', 'uturn'], + // Araquanid + ['mirrorcoat', 'hydropump'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + + if (!types.includes('Ice')) this.incompatibleMoves(moves, movePool, 'icebeam', 'icywind'); + + if (!isDoubles) this.incompatibleMoves(moves, movePool, 'taunt', 'encore'); + + if (!types.includes('Dark') && teraType !== 'Dark') this.incompatibleMoves(moves, movePool, 'knockoff', 'suckerpunch'); + + if (!abilities.includes('Prankster')) this.incompatibleMoves(moves, movePool, 'thunderwave', 'yawn'); + + // This space reserved for assorted hardcodes that otherwise make little sense out of context + if (species.id === 'barraskewda') { + this.incompatibleMoves(moves, movePool, ['psychicfangs', 'throatchop'], ['poisonjab', 'throatchop']); + } + if (species.id === 'cyclizar') this.incompatibleMoves(moves, movePool, 'taunt', 'knockoff'); + if (species.id === 'mesprit') this.incompatibleMoves(moves, movePool, 'healingwish', 'uturn'); + if (species.id === 'camerupt') this.incompatibleMoves(moves, movePool, 'roar', 'willowisp'); + if (species.id === 'coalossal') this.incompatibleMoves(moves, movePool, 'flamethrower', 'overheat'); + } + + // Checks for and removes incompatible moves, starting with the first move in movesA. + incompatibleMoves( + moves: Set, + movePool: string[], + movesA: string | string[], + movesB: string | string[], + ): void { + const moveArrayA = (Array.isArray(movesA)) ? movesA : [movesA]; + const moveArrayB = (Array.isArray(movesB)) ? movesB : [movesB]; + if (moves.size + movePool.length <= this.maxMoveCount) return; + for (const moveid1 of moves) { + if (moveArrayB.includes(moveid1)) { + for (const moveid2 of moveArrayA) { + if (moveid1 !== moveid2 && movePool.includes(moveid2)) { + this.fastPop(movePool, movePool.indexOf(moveid2)); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + if (moveArrayA.includes(moveid1)) { + for (const moveid2 of moveArrayB) { + if (moveid1 !== moveid2 && movePool.includes(moveid2)) { + this.fastPop(movePool, movePool.indexOf(moveid2)); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + } + } + } + } + + // Adds a move to the moveset, returns the MoveCounter + addMove( + move: string, + moves: Set, + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + movePool: string[], + teraType: string, + role: RandomTeamsTypes.Role, + ): MoveCounter { + moves.add(move); + this.fastPop(movePool, movePool.indexOf(move)); + const counter = this.queryMoves(moves, species, teraType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, isDoubles, teraType, role); + return counter; + } + + // Returns the type of a given move for STAB/coverage enforcement purposes + getMoveType(move: Move, species: Species, abilities: string[], teraType: string): string { + if (move.id === 'terablast') return teraType; + if (['judgment', 'revelationdance'].includes(move.id)) return species.types[0]; + + if (move.name === "Raging Bull" && species.name.startsWith("Tauros-Paldea")) { + if (species.name.endsWith("Combat")) return "Fighting"; + if (species.name.endsWith("Blaze")) return "Fire"; + if (species.name.endsWith("Aqua")) return "Water"; + } + + if (move.name === "Ivy Cudgel" && species.name.startsWith("Ogerpon")) { + if (species.name.endsWith("Wellspring")) return "Water"; + if (species.name.endsWith("Hearthflame")) return "Fire"; + if (species.name.endsWith("Cornerstone")) return "Rock"; + } + + const moveType = move.type; + if (moveType === 'Normal') { + if (abilities.includes('Aerilate')) return 'Flying'; + if (abilities.includes('Galvanize')) return 'Electric'; + if (abilities.includes('Pixilate')) return 'Fairy'; + if (abilities.includes('Refrigerate')) return 'Ice'; + } + return moveType; + } + + // Generate random moveset for a given species, role, tera type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + movePool: string[], + teraType: string, + role: RandomTeamsTypes.Role, + ): Set { + const moves = new Set(); + let counter = this.queryMoves(moves, species, teraType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, isDoubles, teraType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + for (const moveid of movePool) { + moves.add(moveid); + } + return moves; + } + + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, types, counter, species, teamDetails, isLead, isDoubles, teraType, role + ); + }; + + if (role === 'Tera Blast user') { + counter = this.addMove('terablast', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Facade if Guts is a possible ability + if (movePool.includes('facade') && abilities.includes('Guts')) { + counter = this.addMove('facade', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Enforce Night Shade, Revelation Dance, Revival Blessing, and Sticky Web + for (const moveid of ['nightshade', 'revelationdance', 'revivalblessing', 'stickyweb']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce Trick Room on Doubles Wallbreaker + if (movePool.includes('trickroom') && role === 'Doubles Wallbreaker') { + counter = this.addMove('trickroom', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Enforce hazard removal on Bulky Support if the team doesn't already have it + if (role === 'Bulky Support' && !teamDetails.defog && !teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) { + counter = this.addMove('rapidspin', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + if (movePool.includes('defog')) { + counter = this.addMove('defog', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce Aurora Veil if the team doesn't already have screens + if (!teamDetails.screens && movePool.includes('auroraveil')) { + counter = this.addMove('auroraveil', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Enforce Knock Off on pure Normal- and Fighting-types in singles + if (!isDoubles && types.length === 1 && (types.includes('Normal') || types.includes('Fighting'))) { + if (movePool.includes('knockoff')) { + counter = this.addMove('knockoff', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce Spore on Smeargle + if (species.id === 'smeargle') { + if (movePool.includes('spore')) { + counter = this.addMove('spore', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce moves in doubles + if (isDoubles) { + const doublesEnforcedMoves = ['mortalspin', 'spore']; + for (const moveid of doublesEnforcedMoves) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + // Enforce Fake Out on slow Pokemon + if (movePool.includes('fakeout') && species.baseStats.spe <= 50) { + counter = this.addMove('fakeout', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + // Enforce Tailwind on Prankster and Gale Wings users + if (movePool.includes('tailwind') && (abilities.includes('Prankster') || abilities.includes('Gale Wings'))) { + counter = this.addMove('tailwind', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + // Enforce Thunder Wave on Prankster users as well + if (movePool.includes('thunderwave') && abilities.includes('Prankster')) { + counter = this.addMove('thunderwave', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce STAB priority + if ( + ['Bulky Attacker', 'Bulky Setup', 'Wallbreaker', 'Doubles Wallbreaker'].includes(role) || + PRIORITY_POKEMON.includes(species.id) + ) { + const priorityMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if ( + types.includes(moveType) && (move.priority > 0 || (moveid === 'grassyglide' && abilities.includes('Grassy Surge'))) && + (move.basePower || move.basePowerCallback) + ) { + priorityMoves.push(moveid); + } + } + if (priorityMoves.length) { + const moveid = this.sample(priorityMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce Tera STAB + if (!counter.get('stabtera') && !['Bulky Support', 'Doubles Support'].includes(role)) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && teraType === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce pivoting moves on AV Pivot + if (role === 'AV Pivot') { + const pivotMoves = movePool.filter(moveid => ['uturn', 'voltswitch'].includes(moveid)); + if (pivotMoves.length) { + const moveid = this.sample(pivotMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce setup + if (role.includes('Setup') || role === 'Tera Blast user') { + // First, try to add a non-Speed setup move + const nonSpeedSetupMoves = movePool.filter(moveid => SETUP.includes(moveid) && !SPEED_SETUP.includes(moveid)); + if (nonSpeedSetupMoves.length) { + const moveid = this.sample(nonSpeedSetupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } else { + // No non-Speed setup moves, so add any (Speed) setup move + const setupMoves = movePool.filter(moveid => SETUP.includes(moveid)); + if (setupMoves.length) { + const moveid = this.sample(setupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + } + + // Enforce redirecting moves and Fake Out on Doubles Support + if (role === 'Doubles Support') { + for (const moveid of ['fakeout', 'followme', 'ragepowder']) { + if (movePool.includes(moveid)) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + } + + // Enforce Protect + if (role.includes('Protect')) { + const protectMoves = movePool.filter(moveid => PROTECT_MOVES.includes(moveid)); + if (protectMoves.length) { + const moveid = this.sample(protectMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce coverage move + if (!['AV Pivot', 'Fast Support', 'Bulky Support', 'Bulky Protect', 'Doubles Support'].includes(role)) { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + } + + // Add (moves.size < this.maxMoveCount) as a condition if moves is getting larger than 4 moves. + // If you want moves to be favored but not required, add something like && this.randomChance(1, 2) to your condition. + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + if (moves.size + movePool.length <= this.maxMoveCount) { + for (const moveid of movePool) { + moves.add(moveid); + } + break; + } + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + } + return moves; + } + + shouldCullAbility( + ability: string, + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): boolean { + switch (ability) { + // Abilities which are primarily useful for certain moves or with team support + case 'Chlorophyll': case 'Solar Power': + return !teamDetails.sun; + case 'Defiant': + return (species.id === 'thundurus' && !!counter.get('Status')); + case 'Hydration': case 'Swift Swim': + return !teamDetails.rain; + case 'Iron Fist': case 'Skill Link': + return !counter.get(toID(ability)); + case 'Overgrow': + return !counter.get('Grass'); + case 'Prankster': + return !counter.get('Status'); + case 'Sand Force': case 'Sand Rush': + return !teamDetails.sand; + case 'Slush Rush': + return !teamDetails.snow; + case 'Swarm': + return !counter.get('Bug'); + case 'Torrent': + return (!counter.get('Water') && !moves.has('flipturn')); + } + + return false; + } + + + getAbility( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): string { + // ffa abilities that differ from doubles + if (this.format.gameType === 'freeforall') { + if (species.id === 'bellossom') return 'Chlorophyll'; + if (species.id === 'sinistcha') return 'Heatproof'; + if (abilities.length === 1 && abilities[0] === 'Telepathy') { + return species.id === 'oranguru' ? 'Inner Focus' : 'Pressure'; + } + if (species.id === 'duraludon') return 'Light Metal'; + if (species.id === 'clefairy') return 'Magic Guard'; + if (species.id === 'blissey') return 'Natural Cure'; + if (species.id === 'barraskewda') return 'Swift Swim'; + } + + if (abilities.length <= 1) return abilities[0]; + + // Hard-code abilities here + if (species.id === 'drifblim') return moves.has('defog') ? 'Aftermath' : 'Unburden'; + if (abilities.includes('Flash Fire') && this.dex.getEffectiveness('Fire', teraType) >= 1) return 'Flash Fire'; + if (species.id === 'hitmonchan' && counter.get('ironfist')) return 'Iron Fist'; + if ((species.id === 'thundurus' || species.id === 'tornadus') && !counter.get('Physical')) return 'Prankster'; + if (species.id === 'swampert' && (counter.get('Water') || moves.has('flipturn'))) return 'Torrent'; + if (species.id === 'toucannon' && counter.get('skilllink')) return 'Skill Link'; + if (abilities.includes('Slush Rush') && moves.has('snowscape')) return 'Slush Rush'; + if (species.id === 'golduck' && teamDetails.rain) return 'Swift Swim'; + + const abilityAllowed: string[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilities) { + if (!this.shouldCullAbility( + ability, types, moves, abilities, counter, teamDetails, species, isLead, isDoubles, teraType, role + )) { + abilityAllowed.push(ability); + } + } + + // Pick a random allowed ability + if (abilityAllowed.length >= 1) return this.sample(abilityAllowed); + + // If all abilities are rejected, prioritize weather abilities over non-weather abilities + if (!abilityAllowed.length) { + const weatherAbilities = abilities.filter( + a => ['Chlorophyll', 'Hydration', 'Sand Force', 'Sand Rush', 'Slush Rush', 'Solar Power', 'Swift Swim'].includes(a) + ); + if (weatherAbilities.length) return this.sample(weatherAbilities); + } + + // Pick a random ability + return this.sample(abilities); + } + + getPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ) { + if (!isDoubles) { + if (role === 'Fast Bulky Setup' && (ability === 'Quark Drive' || ability === 'Protosynthesis')) { + return 'Booster Energy'; + } + if (species.id === 'lokix') { + return (role === 'Fast Attacker') ? 'Silver Powder' : 'Life Orb'; + } + } + if (species.requiredItems) { + // Z-Crystals aren't available in Gen 9, so require Plates + if (species.baseSpecies === 'Arceus') { + return species.requiredItems[0]; + } + return this.sample(species.requiredItems); + } + if (role === 'AV Pivot') return 'Assault Vest'; + if (species.id === 'pikachu') return 'Light Ball'; + if (species.id === 'regieleki') return 'Magnet'; + if (types.includes('Normal') && moves.has('doubleedge') && moves.has('fakeout')) return 'Silk Scarf'; + if ( + species.id === 'froslass' || moves.has('populationbomb') || + (ability === 'Hustle' && counter.get('setup') && !isDoubles && this.randomChance(1, 2)) + ) return 'Wide Lens'; + if (species.id === 'smeargle' && !isDoubles) return 'Focus Sash'; + if (moves.has('clangoroussoul') || (species.id === 'toxtricity' && moves.has('shiftgear'))) return 'Throat Spray'; + if ( + (species.baseSpecies === 'Magearna' && role === 'Tera Blast user') || + species.id === 'necrozmaduskmane' || (species.id === 'calyrexice' && isDoubles) + ) return 'Weakness Policy'; + if (['dragonenergy', 'lastrespects', 'waterspout'].some(m => moves.has(m))) return 'Choice Scarf'; + if ( + !isDoubles && (ability === 'Imposter' || (species.id === 'magnezone' && role === 'Fast Attacker')) + ) return 'Choice Scarf'; + if (species.id === 'rampardos' && (role === 'Fast Attacker' || isDoubles)) return 'Choice Scarf'; + if (species.id === 'palkia' && counter.get('Special') < 4) return 'Lustrous Orb'; + if ( + moves.has('courtchange') || + !isDoubles && (species.id === 'luvdisc' || (species.id === 'terapagos' && !moves.has('rest'))) + ) return 'Heavy-Duty Boots'; + if (moves.has('bellydrum') && moves.has('substitute')) return 'Salac Berry'; + if ( + ['Cheek Pouch', 'Cud Chew', 'Harvest', 'Ripen'].some(m => ability === m) || + moves.has('bellydrum') || moves.has('filletaway') + ) { + return 'Sitrus Berry'; + } + if (['healingwish', 'switcheroo', 'trick'].some(m => moves.has(m))) { + if ( + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && + role !== 'Wallbreaker' && role !== 'Doubles Wallbreaker' && !counter.get('priority') + ) { + return 'Choice Scarf'; + } else { + return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; + } + } + if (counter.get('Status') && (species.name === 'Latias' || species.name === 'Latios')) return 'Soul Dew'; + if (species.id === 'scyther' && !isDoubles) return (isLead && !moves.has('uturn')) ? 'Eviolite' : 'Heavy-Duty Boots'; + if (ability === 'Poison Heal' || ability === 'Quick Feet') return 'Toxic Orb'; + if (species.nfe) return 'Eviolite'; + if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk')) { + return (types.includes('Fire') || ability === 'Toxic Boost') ? 'Toxic Orb' : 'Flame Orb'; + } + if (ability === 'Magic Guard' || (ability === 'Sheer Force' && counter.get('sheerforce'))) return 'Life Orb'; + if (ability === 'Anger Shell') return this.sample(['Rindo Berry', 'Passho Berry', 'Scope Lens', 'Sitrus Berry']); + if (moves.has('dragondance') && isDoubles) return 'Clear Amulet'; + if (counter.get('skilllink') && ability !== 'Skill Link' && species.id !== 'breloom') return 'Loaded Dice'; + if (ability === 'Unburden') { + return (moves.has('closecombat') || moves.has('leafstorm')) ? 'White Herb' : 'Sitrus Berry'; + } + if (moves.has('shellsmash') && ability !== 'Weak Armor') return 'White Herb'; + if (moves.has('meteorbeam') || (moves.has('electroshot') && !teamDetails.rain)) return 'Power Herb'; + if (moves.has('acrobatics') && ability !== 'Protosynthesis') return ''; + if (moves.has('auroraveil') || moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; + if (ability === 'Gluttony') return `${this.sample(['Aguav', 'Figy', 'Iapapa', 'Mago', 'Wiki'])} Berry`; + if ( + moves.has('rest') && !moves.has('sleeptalk') && + ability !== 'Natural Cure' && ability !== 'Shed Skin' + ) { + return 'Chesto Berry'; + } + if ( + species.id !== 'yanmega' && + this.dex.getEffectiveness('Rock', species) >= 2 && (!types.includes('Flying') || !isDoubles) + ) return 'Heavy-Duty Boots'; + } + + /** Item generation specific to Random Doubles */ + getDoublesItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): string { + const scarfReqs = ( + !counter.get('priority') && ability !== 'Speed Boost' && role !== 'Doubles Wallbreaker' && + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && + this.randomChance(1, 2) + ); + const offensiveRole = ( + ['Doubles Fast Attacker', 'Doubles Wallbreaker', 'Doubles Setup Sweeper', 'Offensive Protect'].some(m => role === m) + ); + + if (species.id === 'ursalunabloodmoon' && moves.has('protect')) return 'Silk Scarf'; + if ( + moves.has('flipturn') && moves.has('protect') && (moves.has('aquajet') || (moves.has('jetpunch'))) + ) return 'Mystic Water'; + if (counter.get('speedsetup') && role === 'Doubles Bulky Setup') return 'Weakness Policy'; + if (species.id === 'toxapex') return 'Binding Band'; + if (moves.has('blizzard') && ability !== 'Snow Warning' && !teamDetails.snow) return 'Blunder Policy'; + + if (role === 'Choice Item user') { + if (scarfReqs || (counter.get('Physical') < 4 && counter.get('Special') < 3 && !moves.has('memento'))) { + return 'Choice Scarf'; + } + return (counter.get('Physical') >= 3) ? 'Choice Band' : 'Choice Specs'; + } + if (counter.get('Physical') >= 4 && + ['fakeout', 'feint', 'firstimpression', 'rapidspin', 'suckerpunch'].every(m => !moves.has(m)) && + (moves.has('flipturn') || moves.has('uturn') || role === 'Doubles Wallbreaker') + ) { + return (scarfReqs) ? 'Choice Scarf' : 'Choice Band'; + } + if ( + ((counter.get('Special') >= 4 && (moves.has('voltswitch') || role === 'Doubles Wallbreaker')) || ( + counter.get('Special') >= 3 && (moves.has('uturn') || moves.has('flipturn')) + )) && !moves.has('electroweb') + ) { + return (scarfReqs) ? 'Choice Scarf' : 'Choice Specs'; + } + if ( + (role === 'Bulky Protect' && counter.get('setup')) || moves.has('substitute') || moves.has('irondefense') || + moves.has('coil') || species.id === 'eternatus' || species.id === 'regigigas' + ) return 'Leftovers'; + if (species.id === 'sylveon') return 'Pixie Plate'; + if (ability === 'Intimidate' && this.dex.getEffectiveness('Rock', species) >= 1) return 'Heavy-Duty Boots'; + if ( + (offensiveRole || (role === 'Tera Blast user' && (species.baseStats.spe >= 80 || moves.has('trickroom')))) && + (!moves.has('fakeout') || species.id === 'ambipom') && !moves.has('incinerate') && + (!moves.has('uturn') || types.includes('Bug') || ability === 'Libero') && + ((!moves.has('icywind') && !moves.has('electroweb')) || species.id === 'ironbundle') + ) { + return ( + (ability === 'Quark Drive' || ability === 'Protosynthesis') && !isLead && species.id !== 'ironvaliant' && + ['dracometeor', 'firstimpression', 'uturn', 'voltswitch'].every(m => !moves.has(m)) + ) ? 'Booster Energy' : 'Life Orb'; + } + if (isLead && (species.id === 'glimmora' || + (['Doubles Fast Attacker', 'Doubles Wallbreaker', 'Offensive Protect'].includes(role) && + species.baseStats.hp + species.baseStats.def + species.baseStats.spd <= 230)) + ) return 'Focus Sash'; + if ( + ['Doubles Fast Attacker', 'Doubles Wallbreaker', 'Offensive Protect'].includes(role) && + moves.has('fakeout') || moves.has('incinerate') + ) { + return (this.dex.getEffectiveness('Rock', species) >= 1) ? 'Heavy-Duty Boots' : 'Clear Amulet'; + } + if (!counter.get('Status')) return 'Assault Vest'; + return 'Sitrus Berry'; + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): string { + if ( + species.id !== 'jirachi' && (counter.get('Physical') >= 4) && + ['dragontail', 'fakeout', 'firstimpression', 'flamecharge', 'rapidspin'].every(m => !moves.has(m)) + ) { + const scarfReqs = ( + role !== 'Wallbreaker' && + (species.baseStats.atk >= 100 || ability === 'Huge Power' || ability === 'Pure Power') && + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && + ability !== 'Speed Boost' && !counter.get('priority') && !moves.has('aquastep') + ); + return (scarfReqs && this.randomChance(1, 2)) ? 'Choice Scarf' : 'Choice Band'; + } + if ( + (counter.get('Special') >= 4) || + (counter.get('Special') >= 3 && ['flipturn', 'uturn'].some(m => moves.has(m))) + ) { + const scarfReqs = ( + role !== 'Wallbreaker' && + species.baseStats.spa >= 100 && + species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && + ability !== 'Speed Boost' && ability !== 'Tinted Lens' && !moves.has('uturn') && !counter.get('priority') + ); + return (scarfReqs && this.randomChance(1, 2)) ? 'Choice Scarf' : 'Choice Specs'; + } + if (counter.get('speedsetup') && role === 'Bulky Setup') return 'Weakness Policy'; + if ( + !counter.get('Status') && + !['Fast Attacker', 'Wallbreaker', 'Tera Blast user'].includes(role) + ) { + return 'Assault Vest'; + } + if (species.id === 'golem') return (counter.get('speedsetup')) ? 'Weakness Policy' : 'Custap Berry'; + if (moves.has('substitute')) return 'Leftovers'; + if ( + moves.has('stickyweb') && isLead && + (species.baseStats.hp + species.baseStats.def + species.baseStats.spd) <= 235 + ) return 'Focus Sash'; + if (this.dex.getEffectiveness('Rock', species) >= 1) return 'Heavy-Duty Boots'; + if ( + (moves.has('chillyreception') || ( + role === 'Fast Support' && + [...PIVOT_MOVES, 'defog', 'mortalspin', 'rapidspin'].some(m => moves.has(m)) && + !types.includes('Flying') && ability !== 'Levitate' + )) + ) return 'Heavy-Duty Boots'; + + // Low Priority + if ( + ability === 'Rough Skin' || ( + ability === 'Regenerator' && (role === 'Bulky Support' || role === 'Bulky Attacker') && + (species.baseStats.hp + species.baseStats.def) >= 180 && this.randomChance(1, 2) + ) || ( + ability !== 'Regenerator' && !counter.get('setup') && counter.get('recovery') && + this.dex.getEffectiveness('Fighting', species) < 1 && + (species.baseStats.hp + species.baseStats.def) > 200 && this.randomChance(1, 2) + ) + ) return 'Rocky Helmet'; + if (moves.has('outrage') && counter.get('setup')) return 'Lum Berry'; + if (moves.has('protect') && ability !== 'Speed Boost') return 'Leftovers'; + if ( + role === 'Fast Support' && isLead && !counter.get('recovery') && !counter.get('recoil') && + (counter.get('hazards') || counter.get('setup')) && + (species.baseStats.hp + species.baseStats.def + species.baseStats.spd) < 258 + ) return 'Focus Sash'; + if ( + !counter.get('setup') && ability !== 'Levitate' && this.dex.getEffectiveness('Ground', species) >= 2 + ) return 'Air Balloon'; + if (['Bulky Attacker', 'Bulky Support', 'Bulky Setup'].some(m => role === (m))) return 'Leftovers'; + if (species.id === 'pawmot' && moves.has('nuzzle')) return 'Leppa Berry'; + if (role === 'Fast Support' || role === 'Fast Bulky Setup') { + return (counter.get('Physical') + counter.get('Special') >= 3 && !moves.has('nuzzle')) ? 'Life Orb' : 'Leftovers'; + } + if (role === 'Tera Blast user' && DEFENSIVE_TERA_BLAST_USERS.includes(species.id)) return 'Leftovers'; + if ( + ['flamecharge', 'rapidspin', 'trailblaze'].every(m => !moves.has(m)) && + ['Fast Attacker', 'Setup Sweeper', 'Tera Blast user', 'Wallbreaker'].some(m => role === (m)) + ) return 'Life Orb'; + return 'Leftovers'; + } + + getLevel( + species: Species, + isDoubles: boolean, + ): number { + if (this.adjustLevel) return this.adjustLevel; + // doubles levelling + if (isDoubles && this.randomDoublesSets[species.id]["level"]) return this.randomDoublesSets[species.id]["level"]!; + if (!isDoubles && this.randomSets[species.id]["level"]) return this.randomSets[species.id]["level"]!; + // Default to tier-based levelling + const tier = species.tier; + const tierScale: Partial> = { + Uber: 76, + OU: 80, + UUBL: 81, + UU: 82, + RUBL: 83, + RU: 84, + NUBL: 85, + NU: 86, + PUBL: 87, + PU: 88, "(PU)": 88, NFE: 88, + }; + return tierScale[tier] || 80; + } + + getForme(species: Species): string { + if (typeof species.battleOnly === 'string') { + // Only change the forme. The species has custom moves, and may have different typing and requirements. + return species.battleOnly; + } + if (species.cosmeticFormes) return this.sample([species.name].concat(species.cosmeticFormes)); + + // Consolidate mostly-cosmetic formes, at least for the purposes of Random Battles + if (['Dudunsparce', 'Magearna', 'Maushold', 'Polteageist', 'Sinistcha', 'Zarude'].includes(species.baseSpecies)) { + return this.sample([species.name].concat(species.otherFormes!)); + } + if (species.baseSpecies === 'Basculin') return 'Basculin' + this.sample(['', '-Blue-Striped']); + if (species.baseSpecies === 'Pikachu') { + return 'Pikachu' + this.sample( + ['', '-Original', '-Hoenn', '-Sinnoh', '-Unova', '-Kalos', '-Alola', '-Partner', '-World'] + ); + } + return species.name; + } + + randomSet( + s: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false, + isDoubles = false + ): RandomTeamsTypes.RandomSet { + const species = this.dex.species.get(s); + const forme = this.getForme(species); + const sets = this[`random${isDoubles ? 'Doubles' : ''}Sets`][species.id]["sets"]; + const possibleSets: RandomTeamsTypes.RandomSetData[] = []; + + const ruleTable = this.dex.formats.getRuleTable(this.format); + + for (const set of sets) { + // Prevent Fast Bulky Setup on lead Paradox Pokemon, since it generates Booster Energy. + const abilities = set.abilities!; + if ( + isLead && (abilities.includes('Protosynthesis') || abilities.includes('Quark Drive')) && + set.role === 'Fast Bulky Setup' + ) continue; + // Prevent Tera Blast user if the team already has one, or if Terastallizion is prevented. + if ((teamDetails.teraBlast || ruleTable.has('terastalclause')) && set.role === 'Tera Blast user') { + continue; + } + possibleSets.push(set); + } + const set = this.sampleIfArray(possibleSets); + const role = set.role; + const movePool: string[] = []; + for (const movename of set.movepool) { + movePool.push(this.dex.moves.get(movename).id); + } + const teraTypes = set.teraTypes!; + let teraType = this.sampleIfArray(teraTypes); + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const abilities = set.abilities!; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, isDoubles, movePool, teraType, role); + const counter = this.queryMoves(moves, species, teraType, abilities); + + // Get ability + ability = this.getAbility(types, moves, abilities, counter, teamDetails, species, isLead, isDoubles, teraType, role); + + // Get items + // First, the priority items + item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles, teraType, role); + if (item === undefined) { + if (isDoubles) { + item = this.getDoublesItem(ability, types, moves, counter, teamDetails, species, isLead, teraType, role); + } else { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, teraType, role); + } + } + + // Get level + const level = this.getLevel(species, isDoubles); + + // Prepare optimal HP + const srImmunity = ability === 'Magic Guard' || item === 'Heavy-Duty Boots'; + let srWeakness = srImmunity ? 0 : this.dex.getEffectiveness('Rock', species); + // Crash damage move users want an odd HP to survive two misses + if (['axekick', 'highjumpkick', 'jumpkick', 'supercellslam'].some(m => moves.has(m))) srWeakness = 2; + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if ((moves.has('substitute') && ['Sitrus Berry', 'Salac Berry'].includes(item)) || species.id === 'minior') { + // Two Substitutes should activate Sitrus Berry. Two switch-ins to Stealth Rock should activate Shields Down on Minior. + if (hp % 4 === 0) break; + } else if ( + (moves.has('bellydrum') || moves.has('filletaway') || moves.has('shedtail')) && + (item === 'Sitrus Berry' || ability === 'Gluttony') + ) { + // Belly Drum should activate Sitrus Berry + if (hp % 2 === 0) break; + } else if (moves.has('substitute') && moves.has('endeavor')) { + // Luvdisc should be able to Substitute down to very low HP + if (hp % 4 > 0) break; + } else { + // Maximize number of Stealth Rock switch-ins + if (srWeakness <= 0 || ability === 'Regenerator' || ['Leftovers', 'Life Orb'].includes(item)) break; + if (item !== 'Sitrus Berry' && hp % (4 / srWeakness) > 0) break; + // Minimise number of Stealth Rock switch-ins to activate Sitrus Berry + if (!isDoubles && item === 'Sitrus Berry' && hp % (4 / srWeakness) === 0) break; + } + evs.hp -= 4; + } + + // Minimize confusion damage + const noAttackStatMoves = [...moves].every(m => { + const move = this.dex.moves.get(m); + if (move.damageCallback || move.damage) return true; + if (move.id === 'shellsidearm') return false; + // Physical Tera Blast + if ( + move.id === 'terablast' && (species.id === 'porygon2' || ['Contrary', 'Defiant'].includes(ability) || + moves.has('shiftgear') || species.baseStats.atk > species.baseStats.spa) + ) return false; + return move.category !== 'Physical' || move.id === 'bodypress' || move.id === 'foulplay'; + }); + if (noAttackStatMoves && !moves.has('transform') && this.format.mod !== 'partnersincrime') { + evs.atk = 0; + ivs.atk = 0; + } + + if (moves.has('gyroball') || moves.has('trickroom')) { + evs.spe = 0; + ivs.spe = 0; + } + + // Enforce Tera Type after all set generation is done to prevent infinite generation + if (this.forceTeraType) teraType = this.forceTeraType; + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + return { + name: species.baseSpecies, + species: forme, + gender: species.baseSpecies === 'Greninja' ? 'M' : species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + teraType, + role, + }; + } + + getPokemonPool( + type: string, + pokemonToExclude: RandomTeamsTypes.RandomSet[] = [], + isMonotype = false, + pokemonList: string[] + ): [{[k: string]: string[]}, string[]] { + const exclude = pokemonToExclude.map(p => toID(p.species)); + const pokemonPool: {[k: string]: string[]} = {}; + const baseSpeciesPool = []; + for (const pokemon of pokemonList) { + let species = this.dex.species.get(pokemon); + if (exclude.includes(species.id)) continue; + if (isMonotype) { + if (!species.types.includes(type)) continue; + if (typeof species.battleOnly === 'string') { + species = this.dex.species.get(species.battleOnly); + if (!species.types.includes(type)) continue; + } + } + + if (species.baseSpecies in pokemonPool) { + pokemonPool[species.baseSpecies].push(pokemon); + } else { + pokemonPool[species.baseSpecies] = [pokemon]; + } + } + // Include base species 1x if 1-3 formes, 2x if 4-6 formes, 3x if 7+ formes + for (const baseSpecies of Object.keys(pokemonPool)) { + // Squawkabilly has 4 formes, but only 2 functionally different formes, so only include it 1x + const weight = (baseSpecies === 'Squawkabilly') ? 1 : Math.min(Math.ceil(pokemonPool[baseSpecies].length / 3), 3); + for (let i = 0; i < weight; i++) baseSpeciesPool.push(baseSpecies); + } + return [pokemonPool, baseSpeciesPool]; + } + + randomSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + randomDoublesSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./doubles-sets.json'); + + randomTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.seed; + const ruleTable = this.dex.formats.getRuleTable(this.format); + const pokemon: RandomTeamsTypes.RandomSet[] = []; + + // For Monotype + const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); + const isDoubles = this.format.gameType !== 'singles'; + const typePool = this.dex.types.names().filter(name => name !== "Stellar"); + const type = this.forceMonotype || this.sample(typePool); + + // PotD stuff + const usePotD = global.Config && Config.potd && ruleTable.has('potd'); + const potd = usePotD ? this.dex.species.get(Config.potd) : null; + + const baseFormes: {[k: string]: number} = {}; + + const typeCount: {[k: string]: number} = {}; + const typeComboCount: {[k: string]: number} = {}; + const typeWeaknesses: {[k: string]: number} = {}; + const typeDoubleWeaknesses: {[k: string]: number} = {}; + const teamDetails: RandomTeamsTypes.TeamDetails = {}; + let numMaxLevelPokemon = 0; + + const pokemonList = isDoubles ? Object.keys(this.randomDoublesSets) : Object.keys(this.randomSets); + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, pokemonList); + + let leadsRemaining = this.format.gameType === 'doubles' ? 2 : 1; + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + const baseSpecies = this.sampleNoReplace(baseSpeciesPool); + let species = this.dex.species.get(this.sample(pokemonPool[baseSpecies])); + if (!species.exists) continue; + + // Limit to one of each species (Species Clause) + if (baseFormes[species.baseSpecies]) continue; + + // Treat Ogerpon formes and Terapagos like the Tera Blast user role; reject if team has one already + if (['ogerpon', 'ogerponhearthflame', 'terapagos'].includes(species.id) && teamDetails.teraBlast) continue; + + // Illusion shouldn't be on the last slot + if (species.baseSpecies === 'Zoroark' && pokemon.length >= (this.maxTeamSize - 1)) continue; + + const types = species.types; + const typeCombo = types.slice().sort().join(); + const weakToFreezeDry = ( + this.dex.getEffectiveness('Ice', species) > 0 || + (this.dex.getEffectiveness('Ice', species) > -2 && types.includes('Water')) + ); + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + if (!isMonotype && !this.forceMonotype) { + let skip = false; + + // Limit two of any type + for (const typeName of types) { + if (typeCount[typeName] >= 2 * limitFactor) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit three weak to any type, and one double weak to any type + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; + if (typeWeaknesses[typeName] >= 3 * limitFactor) { + skip = true; + break; + } + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0; + if (typeDoubleWeaknesses[typeName] >= 1 * limitFactor) { + skip = true; + break; + } + } + } + if (skip) continue; + + // Count Dry Skin/Fluffy as Fire weaknesses + if ( + this.dex.getEffectiveness('Fire', species) === 0 && + Object.values(species.abilities).filter(a => ['Dry Skin', 'Fluffy'].includes(a)).length + ) { + if (!typeWeaknesses['Fire']) typeWeaknesses['Fire'] = 0; + if (typeWeaknesses['Fire'] >= 3 * limitFactor) continue; + } + + // Limit four weak to Freeze-Dry + if (weakToFreezeDry) { + if (!typeWeaknesses['Freeze-Dry']) typeWeaknesses['Freeze-Dry'] = 0; + if (typeWeaknesses['Freeze-Dry'] >= 4 * limitFactor) continue; + } + + // Limit one level 100 Pokemon + if (!this.adjustLevel && (this.getLevel(species, isDoubles) === 100) && numMaxLevelPokemon >= limitFactor) { + continue; + } + } + + // Limit three of any type combination in Monotype + if (!this.forceMonotype && isMonotype && (typeComboCount[typeCombo] >= 3 * limitFactor)) continue; + + // The Pokemon of the Day + if (potd?.exists && (pokemon.length === 1 || this.maxTeamSize === 1)) species = potd; + + let set: RandomTeamsTypes.RandomSet; + + if (leadsRemaining) { + if ( + isDoubles && DOUBLES_NO_LEAD_POKEMON.includes(species.baseSpecies) || + !isDoubles && NO_LEAD_POKEMON.includes(species.baseSpecies) + ) { + if (pokemon.length + leadsRemaining === this.maxTeamSize) continue; + set = this.randomSet(species, teamDetails, false, isDoubles); + pokemon.push(set); + } else { + set = this.randomSet(species, teamDetails, true, isDoubles); + pokemon.unshift(set); + leadsRemaining--; + } + } else { + set = this.randomSet(species, teamDetails, false, isDoubles); + pokemon.push(set); + } + + // Don't bother tracking details for the last Pokemon + if (pokemon.length === this.maxTeamSize) break; + + // Now that our Pokemon has passed all checks, we can increment our counters + baseFormes[species.baseSpecies] = 1; + + // Increment type counters + for (const typeName of types) { + if (typeName in typeCount) { + typeCount[typeName]++; + } else { + typeCount[typeName] = 1; + } + } + if (typeCombo in typeComboCount) { + typeComboCount[typeCombo]++; + } else { + typeComboCount[typeCombo] = 1; + } + + // Increment weakness counter + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + typeWeaknesses[typeName]++; + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + typeDoubleWeaknesses[typeName]++; + } + } + // Count Dry Skin/Fluffy as Fire weaknesses + if (['Dry Skin', 'Fluffy'].includes(set.ability) && this.dex.getEffectiveness('Fire', species) === 0) { + typeWeaknesses['Fire']++; + } + if (weakToFreezeDry) typeWeaknesses['Freeze-Dry']++; + + // Increment level 100 counter + if (set.level === 100) numMaxLevelPokemon++; + + // Track what the team has + if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; + if (set.ability === 'Drought' || set.ability === 'Orichalcum Pulse' || set.moves.includes('sunnyday')) { + teamDetails.sun = 1; + } + if (set.ability === 'Sand Stream') teamDetails.sand = 1; + if (set.ability === 'Snow Warning' || set.moves.includes('snowscape') || set.moves.includes('chillyreception')) { + teamDetails.snow = 1; + } + if (set.moves.includes('healbell')) teamDetails.statusCure = 1; + if (set.moves.includes('spikes') || set.moves.includes('ceaselessedge')) { + teamDetails.spikes = (teamDetails.spikes || 0) + 1; + } + if (set.moves.includes('toxicspikes') || set.ability === 'Toxic Debris') teamDetails.toxicSpikes = 1; + if (set.moves.includes('stealthrock') || set.moves.includes('stoneaxe')) teamDetails.stealthRock = 1; + if (set.moves.includes('stickyweb')) teamDetails.stickyWeb = 1; + if (set.moves.includes('defog')) teamDetails.defog = 1; + if (set.moves.includes('rapidspin') || set.moves.includes('mortalspin')) teamDetails.rapidSpin = 1; + if (set.moves.includes('auroraveil') || (set.moves.includes('reflect') && set.moves.includes('lightscreen'))) { + teamDetails.screens = 1; + } + if (set.role === 'Tera Blast user' || ['ogerpon', 'ogerponhearthflame', 'terapagos'].includes(species.id)) { + teamDetails.teraBlast = 1; + } + } + if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { // large teams sometimes cannot be built + throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); + } + + return pokemon; + } + + randomCCTeam(): RandomTeamsTypes.RandomSet[] { + this.enforceNoDirectCustomBanlistChanges(); + + const dex = this.dex; + const team = []; + + const natures = this.dex.natures.all(); + const items = this.dex.items.all(); + + const randomN = this.randomNPokemon(this.maxTeamSize, this.forceMonotype, undefined, undefined, true); + + for (let forme of randomN) { + let species = dex.species.get(forme); + if (species.isNonstandard) species = dex.species.get(species.baseSpecies); + + // Random legal item + let item = ''; + let isIllegalItem; + let isBadItem; + if (this.gen >= 2) { + do { + item = this.sample(items).name; + isIllegalItem = this.dex.items.get(item).gen > this.gen || this.dex.items.get(item).isNonstandard; + isBadItem = item.startsWith("TR") || this.dex.items.get(item).isPokeball; + } while (isIllegalItem || (isBadItem && this.randomChance(19, 20))); + } + + // Make sure forme is legal + if (species.battleOnly) { + if (typeof species.battleOnly === 'string') { + species = dex.species.get(species.battleOnly); + } else { + species = dex.species.get(this.sample(species.battleOnly)); + } + forme = species.name; + } else if (species.requiredItems && !species.requiredItems.some(req => toID(req) === item)) { + if (!species.changesFrom) throw new Error(`${species.name} needs a changesFrom value`); + species = dex.species.get(species.changesFrom); + forme = species.name; + } + + // Make sure that a base forme does not hold any forme-modifier items. + let itemData = this.dex.items.get(item); + if (itemData.forcedForme && forme === this.dex.species.get(itemData.forcedForme).baseSpecies) { + do { + itemData = this.sample(items); + item = itemData.name; + } while ( + itemData.gen > this.gen || + itemData.isNonstandard || + (itemData.forcedForme && forme === this.dex.species.get(itemData.forcedForme).baseSpecies) + ); + } + + // Random legal ability + const abilities = Object.values(species.abilities).filter(a => this.dex.abilities.get(a).gen <= this.gen); + const ability: string = this.gen <= 2 ? 'No Ability' : this.sample(abilities); + + // Four random unique moves from the movepool + let pool = ['struggle']; + if (forme === 'Smeargle') { + pool = this.dex.moves.all() + .filter(move => !(move.isNonstandard || move.isZ || move.isMax || move.realMove)) + .map(m => m.id); + } else { + pool = [...this.dex.species.getMovePool(species.id)]; + } + + const moves = this.multipleSamplesNoReplace(pool, this.maxMoveCount); + + // Random EVs + const evs: StatsTable = {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0}; + const s: StatID[] = ["hp", "atk", "def", "spa", "spd", "spe"]; + let evpool = 510; + do { + const x = this.sample(s); + const y = this.random(Math.min(256 - evs[x], evpool + 1)); + evs[x] += y; + evpool -= y; + } while (evpool > 0); + + // Random IVs + const ivs = { + hp: this.random(32), + atk: this.random(32), + def: this.random(32), + spa: this.random(32), + spd: this.random(32), + spe: this.random(32), + }; + + // Random nature + const nature = this.sample(natures).name; + + // Level balance--calculate directly from stats rather than using some silly lookup table + const mbstmin = 1307; // Sunkern has the lowest modified base stat total, and that total is 807 + + let stats = species.baseStats; + // If Wishiwashi, use the school-forme's much higher stats + if (species.baseSpecies === 'Wishiwashi') stats = Dex.species.get('wishiwashischool').baseStats; + // If Terapagos, use Terastal-forme's stats + if (species.baseSpecies === 'Terapagos') stats = Dex.species.get('terapagosterastal').baseStats; + + // Modified base stat total assumes 31 IVs, 85 EVs in every stat + let mbst = (stats["hp"] * 2 + 31 + 21 + 100) + 10; + mbst += (stats["atk"] * 2 + 31 + 21 + 100) + 5; + mbst += (stats["def"] * 2 + 31 + 21 + 100) + 5; + mbst += (stats["spa"] * 2 + 31 + 21 + 100) + 5; + mbst += (stats["spd"] * 2 + 31 + 21 + 100) + 5; + mbst += (stats["spe"] * 2 + 31 + 21 + 100) + 5; + + let level; + if (this.adjustLevel) { + level = this.adjustLevel; + } else { + level = Math.floor(100 * mbstmin / mbst); // Initial level guess will underestimate + + while (level < 100) { + mbst = Math.floor((stats["hp"] * 2 + 31 + 21 + 100) * level / 100 + 10); + // Since damage is roughly proportional to level + mbst += Math.floor(((stats["atk"] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); + mbst += Math.floor((stats["def"] * 2 + 31 + 21 + 100) * level / 100 + 5); + mbst += Math.floor(((stats["spa"] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); + mbst += Math.floor((stats["spd"] * 2 + 31 + 21 + 100) * level / 100 + 5); + mbst += Math.floor((stats["spe"] * 2 + 31 + 21 + 100) * level / 100 + 5); + + if (mbst >= mbstmin) break; + level++; + } + } + + // Random happiness + const happiness = this.random(256); + + // Random shininess + const shiny = this.randomChance(1, 1024); + + const set: RandomTeamsTypes.RandomSet = { + name: species.baseSpecies, + species: species.name, + gender: species.gender, + item, + ability, + moves, + evs, + ivs, + nature, + level, + happiness, + shiny, + }; + if (this.gen === 9) { + // Tera type + if (this.forceTeraType) { + set.teraType = this.forceTeraType; + } else { + set.teraType = this.sample(this.dex.types.names()); + } + } + team.push(set); + } + + return team; + } + + private getPools(requiredType?: string, minSourceGen?: number, ruleTable?: RuleTable, requireMoves = false) { + // Memoize pool and speciesPool because, at least during tests, they are constructed with the same parameters + // hundreds of times and are expensive to compute. + const isNotCustom = !ruleTable; + let pool: number[] = []; + let speciesPool: Species[] = []; + const ck = this.poolsCacheKey; + if (ck && this.cachedPool && this.cachedSpeciesPool && + ck[0] === requiredType && ck[1] === minSourceGen && ck[2] === ruleTable && ck[3] === requireMoves) { + speciesPool = this.cachedSpeciesPool.slice(); + pool = this.cachedPool.slice(); + } else if (isNotCustom) { + speciesPool = [...this.dex.species.all()]; + for (const species of speciesPool) { + if (species.isNonstandard && species.isNonstandard !== 'Unobtainable') continue; + if (requireMoves) { + const hasMovesInCurrentGen = this.dex.species.getMovePool(species.id).size; + if (!hasMovesInCurrentGen) continue; + } + if (requiredType && !species.types.includes(requiredType)) continue; + if (minSourceGen && species.gen < minSourceGen) continue; + const num = species.num; + if (num <= 0 || pool.includes(num)) continue; + pool.push(num); + } + this.poolsCacheKey = [requiredType, minSourceGen, ruleTable, requireMoves]; + this.cachedPool = pool.slice(); + this.cachedSpeciesPool = speciesPool.slice(); + } else { + const EXISTENCE_TAG = ['past', 'future', 'lgpe', 'unobtainable', 'cap', 'custom', 'nonexistent']; + const nonexistentBanReason = ruleTable.check('nonexistent'); + // Assume tierSpecies does not differ from species here (mega formes can be used without their stone, etc) + for (const species of this.dex.species.all()) { + if (requiredType && !species.types.includes(requiredType)) continue; + + let banReason = ruleTable.check('pokemon:' + species.id); + if (banReason) continue; + if (banReason !== '') { + if (species.isMega && ruleTable.check('pokemontag:mega')) continue; + + banReason = ruleTable.check('basepokemon:' + toID(species.baseSpecies)); + if (banReason) continue; + if (banReason !== '' || this.dex.species.get(species.baseSpecies).isNonstandard !== species.isNonstandard) { + const nonexistentCheck = Tags.nonexistent.genericFilter!(species) && nonexistentBanReason; + let tagWhitelisted = false; + let tagBlacklisted = false; + for (const ruleid of ruleTable.tagRules) { + if (ruleid.startsWith('*')) continue; + const tagid = ruleid.slice(12) as ID; + const tag = Tags[tagid]; + if ((tag.speciesFilter || tag.genericFilter)!(species)) { + const existenceTag = EXISTENCE_TAG.includes(tagid); + if (ruleid.startsWith('+')) { + if (!existenceTag && nonexistentCheck) continue; + tagWhitelisted = true; + break; + } + tagBlacklisted = true; + break; + } + } + if (tagBlacklisted) continue; + if (!tagWhitelisted) { + if (ruleTable.check('pokemontag:allpokemon')) continue; + } + } + } + speciesPool.push(species); + const num = species.num; + if (pool.includes(num)) continue; + pool.push(num); + } + this.poolsCacheKey = [requiredType, minSourceGen, ruleTable, requireMoves]; + this.cachedPool = pool.slice(); + this.cachedSpeciesPool = speciesPool.slice(); + } + return {pool, speciesPool}; + } + + randomNPokemon(n: number, requiredType?: string, minSourceGen?: number, ruleTable?: RuleTable, requireMoves = false) { + // Picks `n` random pokemon--no repeats, even among formes + // Also need to either normalize for formes or select formes at random + // Unreleased are okay but no CAP + if (requiredType && !this.dex.types.get(requiredType).exists) { + throw new Error(`"${requiredType}" is not a valid type.`); + } + + const {pool, speciesPool} = this.getPools(requiredType, minSourceGen, ruleTable, requireMoves); + const isNotCustom = !ruleTable; + + const hasDexNumber: {[k: string]: number} = {}; + for (let i = 0; i < n; i++) { + const num = this.sampleNoReplace(pool); + hasDexNumber[num] = i; + } + + const formes: string[][] = []; + for (const species of speciesPool) { + if (!(species.num in hasDexNumber)) continue; + if (isNotCustom && (species.gen > this.gen || + (species.isNonstandard && species.isNonstandard !== 'Unobtainable'))) continue; + if (requiredType && !species.types.includes(requiredType)) continue; + if (!formes[hasDexNumber[species.num]]) formes[hasDexNumber[species.num]] = []; + formes[hasDexNumber[species.num]].push(species.name); + } + + if (formes.length < n) { + throw new Error(`Legal Pokemon forme count insufficient to support Max Team Size: (${formes.length} / ${n}).`); + } + + const nPokemon = []; + for (let i = 0; i < n; i++) { + if (!formes[i].length) { + throw new Error(`Invalid pokemon gen ${this.gen}: ${JSON.stringify(formes)} numbers ${JSON.stringify(hasDexNumber)}`); + } + nPokemon.push(this.sample(formes[i])); + } + return nPokemon; + } + + randomHCTeam(): PokemonSet[] { + const hasCustomBans = this.hasDirectCustomBanlistChanges(); + const ruleTable = this.dex.formats.getRuleTable(this.format); + const hasNonexistentBan = hasCustomBans && ruleTable.check('nonexistent'); + const hasNonexistentWhitelist = hasCustomBans && (hasNonexistentBan === ''); + + if (hasCustomBans) { + this.enforceNoDirectComplexBans(); + } + + // Item Pool + const doItemsExist = this.gen > 1; + let itemPool: Item[] = []; + if (doItemsExist) { + if (!hasCustomBans) { + itemPool = [...this.dex.items.all()].filter(item => (item.gen <= this.gen && !item.isNonstandard)); + } else { + const hasAllItemsBan = ruleTable.check('pokemontag:allitems'); + for (const item of this.dex.items.all()) { + let banReason = ruleTable.check('item:' + item.id); + if (banReason) continue; + if (banReason !== '' && item.id) { + if (hasAllItemsBan) continue; + if (item.isNonstandard) { + banReason = ruleTable.check('pokemontag:' + toID(item.isNonstandard)); + if (banReason) continue; + if (banReason !== '' && item.isNonstandard !== 'Unobtainable') { + if (hasNonexistentBan) continue; + if (!hasNonexistentWhitelist) continue; + } + } + } + itemPool.push(item); + } + if (ruleTable.check('item:noitem')) { + this.enforceCustomPoolSizeNoComplexBans('item', itemPool, this.maxTeamSize, 'Max Team Size'); + } + } + } + + // Ability Pool + const doAbilitiesExist = (this.gen > 2) && (this.dex.currentMod !== 'gen7letsgo'); + let abilityPool: Ability[] = []; + if (doAbilitiesExist) { + if (!hasCustomBans) { + abilityPool = [...this.dex.abilities.all()].filter(ability => (ability.gen <= this.gen && !ability.isNonstandard)); + } else { + const hasAllAbilitiesBan = ruleTable.check('pokemontag:allabilities'); + for (const ability of this.dex.abilities.all()) { + let banReason = ruleTable.check('ability:' + ability.id); + if (banReason) continue; + if (banReason !== '') { + if (hasAllAbilitiesBan) continue; + if (ability.isNonstandard) { + banReason = ruleTable.check('pokemontag:' + toID(ability.isNonstandard)); + if (banReason) continue; + if (banReason !== '') { + if (hasNonexistentBan) continue; + if (!hasNonexistentWhitelist) continue; + } + } + } + abilityPool.push(ability); + } + if (ruleTable.check('ability:noability')) { + this.enforceCustomPoolSizeNoComplexBans('ability', abilityPool, this.maxTeamSize, 'Max Team Size'); + } + } + } + + // Move Pool + const setMoveCount = ruleTable.maxMoveCount; + let movePool: Move[] = []; + if (!hasCustomBans) { + movePool = [...this.dex.moves.all()].filter(move => + (move.gen <= this.gen && !move.isNonstandard)); + } else { + const hasAllMovesBan = ruleTable.check('pokemontag:allmoves'); + for (const move of this.dex.moves.all()) { + let banReason = ruleTable.check('move:' + move.id); + if (banReason) continue; + if (banReason !== '') { + if (hasAllMovesBan) continue; + if (move.isNonstandard) { + banReason = ruleTable.check('pokemontag:' + toID(move.isNonstandard)); + if (banReason) continue; + if (banReason !== '' && move.isNonstandard !== 'Unobtainable') { + if (hasNonexistentBan) continue; + if (!hasNonexistentWhitelist) continue; + } + } + } + movePool.push(move); + } + this.enforceCustomPoolSizeNoComplexBans('move', movePool, this.maxTeamSize * setMoveCount, 'Max Team Size * Max Move Count'); + } + + // Nature Pool + const doNaturesExist = this.gen > 2; + let naturePool: Nature[] = []; + if (doNaturesExist) { + if (!hasCustomBans) { + naturePool = [...this.dex.natures.all()]; + } else { + const hasAllNaturesBan = ruleTable.check('pokemontag:allnatures'); + for (const nature of this.dex.natures.all()) { + let banReason = ruleTable.check('nature:' + nature.id); + if (banReason) continue; + if (banReason !== '' && nature.id) { + if (hasAllNaturesBan) continue; + if (nature.isNonstandard) { + banReason = ruleTable.check('pokemontag:' + toID(nature.isNonstandard)); + if (banReason) continue; + if (banReason !== '' && nature.isNonstandard !== 'Unobtainable') { + if (hasNonexistentBan) continue; + if (!hasNonexistentWhitelist) continue; + } + } + } + naturePool.push(nature); + } + // There is no 'nature:nonature' rule so do not constrain pool size + } + } + + const randomN = this.randomNPokemon(this.maxTeamSize, this.forceMonotype, undefined, + hasCustomBans ? ruleTable : undefined); + + const team = []; + for (const forme of randomN) { + // Choose forme + const species = this.dex.species.get(forme); + + // Random unique item + let item = ''; + let itemData; + let isBadItem; + if (doItemsExist) { + // We discard TRs and Balls with 95% probability because of their otherwise overwhelming presence + do { + itemData = this.sampleNoReplace(itemPool); + item = itemData?.name; + isBadItem = item.startsWith("TR") || itemData.isPokeball; + } while (isBadItem && this.randomChance(19, 20) && itemPool.length > this.maxTeamSize); + } + + // Random unique ability + let ability = 'No Ability'; + let abilityData; + if (doAbilitiesExist) { + abilityData = this.sampleNoReplace(abilityPool); + ability = abilityData?.name; + } + + // Random unique moves + const m = []; + do { + const move = this.sampleNoReplace(movePool); + m.push(move.id); + } while (m.length < setMoveCount); + + // Random EVs + const evs = {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0}; + if (this.gen === 6) { + let evpool = 510; + do { + const x = this.sample(Dex.stats.ids()); + const y = this.random(Math.min(256 - evs[x], evpool + 1)); + evs[x] += y; + evpool -= y; + } while (evpool > 0); + } else { + for (const x of Dex.stats.ids()) { + evs[x] = this.random(256); + } + } + + // Random IVs + const ivs: StatsTable = { + hp: this.random(32), + atk: this.random(32), + def: this.random(32), + spa: this.random(32), + spd: this.random(32), + spe: this.random(32), + }; + + // Random nature + let nature = ''; + if (doNaturesExist && (naturePool.length > 0)) { + nature = this.sample(naturePool).name; + } + + // Level balance + const mbstmin = 1307; + const stats = species.baseStats; + let mbst = (stats['hp'] * 2 + 31 + 21 + 100) + 10; + mbst += (stats['atk'] * 2 + 31 + 21 + 100) + 5; + mbst += (stats['def'] * 2 + 31 + 21 + 100) + 5; + mbst += (stats['spa'] * 2 + 31 + 21 + 100) + 5; + mbst += (stats['spd'] * 2 + 31 + 21 + 100) + 5; + mbst += (stats['spe'] * 2 + 31 + 21 + 100) + 5; + + let level; + if (this.adjustLevel) { + level = this.adjustLevel; + } else { + level = Math.floor(100 * mbstmin / mbst); + while (level < 100) { + mbst = Math.floor((stats['hp'] * 2 + 31 + 21 + 100) * level / 100 + 10); + mbst += Math.floor(((stats['atk'] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); + mbst += Math.floor((stats['def'] * 2 + 31 + 21 + 100) * level / 100 + 5); + mbst += Math.floor(((stats['spa'] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); + mbst += Math.floor((stats['spd'] * 2 + 31 + 21 + 100) * level / 100 + 5); + mbst += Math.floor((stats['spe'] * 2 + 31 + 21 + 100) * level / 100 + 5); + if (mbst >= mbstmin) break; + level++; + } + } + + // Random happiness + const happiness = this.random(256); + + // Random shininess + const shiny = this.randomChance(1, 1024); + + const set: PokemonSet = { + name: species.baseSpecies, + species: species.name, + gender: species.gender, + item, + ability, + moves: m, + evs, + ivs, + nature, + level, + happiness, + shiny, + }; + if (this.gen === 9) { + // Random Tera type + if (this.forceTeraType) { + set.teraType = this.forceTeraType; + } else { + set.teraType = this.sample(this.dex.types.names()); + } + } + team.push(set); + } + + return team; + } + + randomFactorySets: {[format: string]: {[species: string]: BattleFactorySpecies}} = require('./factory-sets.json'); + + randomFactorySet( + species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails, tier: string + ): RandomTeamsTypes.RandomFactorySet | null { + const id = toID(species.name); + const setList = this.randomFactorySets[tier][id].sets; + + const itemsLimited = ['choicespecs', 'choiceband', 'choicescarf']; + const movesLimited: {[k: string]: string} = { + stealthrock: 'stealthRock', + stoneaxe: 'stealthRock', + spikes: 'spikes', + ceaselessedge: 'spikes', + toxicspikes: 'toxicSpikes', + rapidspin: 'hazardClear', + defog: 'hazardClear', + }; + const abilitiesLimited: {[k: string]: string} = { + toxicdebris: 'toxicSpikes', + }; + + // Build a pool of eligible sets, given the team partners + // Also keep track of moves and items limited to one per team + const effectivePool: { + set: BattleFactorySet, moves?: string[], item?: string, + }[] = []; + + for (const set of setList) { + let reject = false; + + // limit to 1 dedicated tera user per team + if (set.wantsTera && teamData.wantsTeraCount) { + continue; + } + + // reject disallowed items, specifically a second of any given choice item + const allowedItems: string[] = []; + for (const itemString of set.item) { + const itemId = toID(itemString); + if (itemsLimited.includes(itemId) && teamData.has[itemId]) continue; + allowedItems.push(itemString); + } + if (!allowedItems.length) continue; + const item = this.sample(allowedItems); + + const abilityId = toID(this.sample(set.ability)); + + if (abilitiesLimited[abilityId] && teamData.has[abilitiesLimited[abilityId]]) continue; + + const moves: string[] = []; + for (const move of set.moves) { + const allowedMoves: string[] = []; + for (const m of move) { + const moveId = toID(m); + if (movesLimited[moveId] && teamData.has[movesLimited[moveId]]) continue; + allowedMoves.push(m); + } + if (!allowedMoves.length) { + reject = true; + break; + } + moves.push(this.sample(allowedMoves)); + } + if (reject) continue; + effectivePool.push({set, moves, item}); + } + + if (!effectivePool.length) { + if (!teamData.forceResult) return null; + for (const set of setList) { + effectivePool.push({set}); + } + } + + // Sets have individual weight, choose one with weighted random selection + + let setData = this.sample(effectivePool); // Init with unweighted random set as fallback + + const total = effectivePool.reduce((a, b) => a + b.set.weight, 0); + const setRand = this.random(total); + + let cur = 0; + for (const set of effectivePool) { + cur += set.set.weight; + if (cur > setRand) { + setData = set; // Bingo! + break; + } + } + + const moves = []; + for (const [i, moveSlot] of setData.set.moves.entries()) { + moves.push(setData.moves ? setData.moves[i] : this.sample(moveSlot)); + } + + const item = setData.item || this.sample(setData.set.item); + + return { + name: species.baseSpecies, + species: (typeof species.battleOnly === 'string') ? species.battleOnly : species.name, + teraType: this.sample(setData.set.teraType), + gender: setData.set.gender || species.gender || (tier === 'OU' ? 'F' : ''), // F for Cute Charm Enamorus + item, + ability: this.sample(setData.set.ability), + shiny: setData.set.shiny || this.randomChance(1, 1024), + level: this.adjustLevel || (tier === "LC" ? 5 : 100), + happiness: 255, + evs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0, ...setData.set.evs}, + ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31, ...setData.set.ivs}, + nature: this.sample(setData.set.nature) || "Serious", + moves, + wantsTera: setData.set.wantsTera, + }; + } + + + randomFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { + this.enforceNoDirectCustomBanlistChanges(); + + const forceResult = depth >= 12; + + if (!this.factoryTier) { + // this.factoryTier = this.sample(['Uber', 'OU', 'UU', 'RU', 'NU', 'PU', 'LC']); + this.factoryTier = this.sample(['Uber', 'OU', 'UU', 'RU', 'NU', 'PU']); + } + + const tierValues: {[k: string]: number} = { + Uber: 5, + OU: 4, UUBL: 4, + UU: 3, RUBL: 3, + RU: 2, NUBL: 2, + NU: 1, PUBL: 1, + PU: 0, + }; + + const pokemon = []; + const pokemonPool = Object.keys(this.randomFactorySets[this.factoryTier]); + + const teamData: TeamData = { + typeCount: {}, + typeComboCount: {}, + baseFormes: {}, + has: {}, + wantsTeraCount: 0, + forceResult: forceResult, + weaknesses: {}, + resistances: {}, + }; + const resistanceAbilities: {[k: string]: string[]} = { + dryskin: ['Water'], waterabsorb: ['Water'], stormdrain: ['Water'], + flashfire: ['Fire'], heatproof: ['Fire'], waterbubble: ['Fire'], wellbakedbody: ['Fire'], + lightningrod: ['Electric'], motordrive: ['Electric'], voltabsorb: ['Electric'], + sapsipper: ['Grass'], + thickfat: ['Ice', 'Fire'], + eartheater: ['Ground'], levitate: ['Ground'], + }; + const movesLimited: {[k: string]: string} = { + stealthrock: 'stealthRock', + stoneaxe: 'stealthRock', + spikes: 'spikes', + ceaselessedge: 'spikes', + toxicspikes: 'toxicSpikes', + rapidspin: 'hazardClear', + defog: 'hazardClear', + }; + const abilitiesLimited: {[k: string]: string} = { + toxicdebris: 'toxicSpikes', + }; + const limitFactor = Math.ceil(this.maxTeamSize / 6); + /** + * Weighted random shuffle + * Uses the fact that for two uniform variables x1 and x2, x1^(1/w1) is larger than x2^(1/w2) + * with probability equal to w1/(w1+w2), which is what we want. See e.g. here https://arxiv.org/pdf/1012.0256.pdf, + * original paper is behind a paywall. + */ + const shuffledSpecies = []; + for (const speciesName of pokemonPool) { + const sortObject = { + speciesName, + score: Math.pow(this.prng.next(), 1 / this.randomFactorySets[this.factoryTier][speciesName].weight), + }; + shuffledSpecies.push(sortObject); + } + shuffledSpecies.sort((a, b) => a.score - b.score); + + while (shuffledSpecies.length && pokemon.length < this.maxTeamSize) { + // repeated popping from weighted shuffle is equivalent to repeated weighted sampling without replacement + const species = this.dex.species.get(shuffledSpecies.pop()!.speciesName); + if (!species.exists) continue; + + // Lessen the need of deleting sets of Pokemon after tier shifts + if ( + this.factoryTier in tierValues && species.tier in tierValues && + tierValues[species.tier] > tierValues[this.factoryTier] + ) continue; + + if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; + + // Limit to one of each species (Species Clause) + if (teamData.baseFormes[species.baseSpecies]) continue; + + // Limit 2 of any type (most of the time) + const types = species.types; + let skip = false; + if (!this.forceMonotype) { + for (const type of types) { + if (teamData.typeCount[type] >= 2 * limitFactor && this.randomChance(4, 5)) { + skip = true; + break; + } + } + } + if (skip) continue; + + if (!teamData.forceResult && !this.forceMonotype) { + // Limit 3 of any weakness + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0 && this.dex.getImmunity(typeName, types)) { + if (teamData.weaknesses[typeName] >= 3 * limitFactor) { + skip = true; + break; + } + } + } + } + if (skip) continue; + + const set = this.randomFactorySet(species, teamData, this.factoryTier); + if (!set) continue; + + // Limit 1 of any type combination + let typeCombo = types.slice().sort().join(); + if (set.ability === "Drought" || set.ability === "Drizzle") { + // Drought and Drizzle don't count towards the type combo limit + typeCombo = set.ability; + } + if (!this.forceMonotype && teamData.typeComboCount[typeCombo] >= limitFactor) continue; + + // Okay, the set passes, add it to our team + pokemon.push(set); + + // Now that our Pokemon has passed all checks, we can update team data: + for (const type of types) { + if (type in teamData.typeCount) { + teamData.typeCount[type]++; + } else { + teamData.typeCount[type] = 1; + } + } + if (typeCombo in teamData.typeComboCount) { + teamData.typeComboCount[typeCombo]++; + } else { + teamData.typeComboCount[typeCombo] = 1; + } + + teamData.baseFormes[species.baseSpecies] = 1; + + teamData.has[toID(set.item)] = 1; + + if (set.wantsTera) { + if (!teamData.wantsTeraCount) teamData.wantsTeraCount = 0; + teamData.wantsTeraCount++; + } + + for (const move of set.moves) { + const moveId = toID(move); + if (movesLimited[moveId]) { + teamData.has[movesLimited[moveId]] = 1; + } + } + + const ability = this.dex.abilities.get(set.ability); + if (abilitiesLimited[ability.id]) { + teamData.has[abilitiesLimited[ability.id]] = 1; + } + + for (const typeName of this.dex.types.names()) { + const typeMod = this.dex.getEffectiveness(typeName, types); + // Track resistances because we will require it for triple weaknesses + if ( + typeMod < 0 || + resistanceAbilities[ability.id]?.includes(typeName) || + !this.dex.getImmunity(typeName, types) + ) { + // We don't care about the number of resistances, so just set to 1 + teamData.resistances[typeName] = 1; + // Track weaknesses + } else if (typeMod > 0) { + teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; + } + } + } + if (!teamData.forceResult && pokemon.length < this.maxTeamSize) return this.randomFactoryTeam(side, ++depth); + + // Quality control we cannot afford for monotype + if (!teamData.forceResult && !this.forceMonotype) { + for (const type in teamData.weaknesses) { + // We reject if our team is triple weak to any type without having a resist + if (teamData.resistances[type]) continue; + if (teamData.weaknesses[type] >= 3 * limitFactor) return this.randomFactoryTeam(side, ++depth); + } + } + return pokemon; + } + + randomBSSFactorySets: AnyObject = require("./bss-factory-sets.json"); + + randomBSSFactorySet( + species: Species, teamData: RandomTeamsTypes.FactoryTeamDetails + ): RandomTeamsTypes.RandomFactorySet | null { + const id = toID(species.name); + const setList = this.randomBSSFactorySets[id].sets; + + const movesMax: {[k: string]: number} = { + batonpass: 1, + stealthrock: 1, + toxicspikes: 1, + trickroom: 1, + auroraveil: 1, + }; + const weatherAbilities = ['drizzle', 'drought', 'snowwarning', 'sandstream']; + const terrainAbilities: {[k: string]: string} = { + electricsurge: "electric", + psychicsurge: "psychic", + grassysurge: "grassy", + seedsower: "grassy", + mistysurge: "misty", + }; + const terrainItemsRequire: {[k: string]: string} = { + electricseed: "electric", + psychicseed: "psychic", + grassyseed: "grassy", + mistyseed: "misty", + }; + + const maxWantsTera = 2; + + // Build a pool of eligible sets, given the team partners + // Also keep track of sets with moves the team requires + const effectivePool: { + set: BSSFactorySet, moveVariants?: number[], itemVariants?: number, abilityVariants?: number, + }[] = []; + + for (const curSet of setList) { + let reject = false; + + // limit to 2 dedicated tera users per team + if (curSet.wantsTera && teamData.wantsTeraCount && teamData.wantsTeraCount >= maxWantsTera) { + continue; + } + + // reject 2+ weather setters + if (teamData.weather && weatherAbilities.includes(curSet.ability)) { + continue; + } + + if (terrainAbilities[curSet.ability]) { + if (!teamData.terrain) teamData.terrain = []; + teamData.terrain.push(terrainAbilities[curSet.ability]); + } + + for (const item of curSet.item) { + if (terrainItemsRequire[item] && !teamData.terrain?.includes(terrainItemsRequire[item])) { + reject = true; // reject any sets with a seed item possible and no terrain setter to activate it + break; + } + } + + const curSetMoveVariants = []; + for (const move of curSet.moves) { + const variantIndex = this.random(move.length); + const moveId = toID(move[variantIndex]); + if (movesMax[moveId] && teamData.has[moveId] >= movesMax[moveId]) { + reject = true; + break; + } + curSetMoveVariants.push(variantIndex); + } + if (reject) continue; + const set = {set: curSet, moveVariants: curSetMoveVariants}; + effectivePool.push(set); + } + + if (!effectivePool.length) { + if (!teamData.forceResult) return null; + for (const curSet of setList) { + effectivePool.push({set: curSet}); + } + } + + // Sets have individual weight, choose one with weighted random selection + + let setData = this.sample(effectivePool); // Init with unweighted random set as fallback + + const total = effectivePool.reduce((a, b) => a + b.set.weight, 0); + const setRand = this.random(total); + + let cur = 0; + for (const set of effectivePool) { + cur += set.set.weight; + if (cur > setRand) { + setData = set; // Bingo! + break; + } + } + + const moves = []; + for (const [i, moveSlot] of setData.set.moves.entries()) { + moves.push(setData.moveVariants ? moveSlot[setData.moveVariants[i]] : this.sample(moveSlot)); + } + + return { + name: setData.set.species || species.baseSpecies, + species: setData.set.species, + teraType: (this.sampleIfArray(setData.set.teraType)), + gender: setData.set.gender || species.gender || (this.randomChance(1, 2) ? "M" : "F"), + item: this.sampleIfArray(setData.set.item) || "", + ability: this.sampleIfArray(setData.set.ability), + shiny: this.randomChance(1, 1024), + level: 50, + happiness: 255, + evs: {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0, ...setData.set.evs}, + ivs: {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31, ...setData.set.ivs}, + nature: setData.set.nature || "Serious", + moves, + wantsTera: setData.set.wantsTera, + }; + } + + + randomBSSFactoryTeam(side: PlayerOptions, depth = 0): RandomTeamsTypes.RandomFactorySet[] { + this.enforceNoDirectCustomBanlistChanges(); + + const forceResult = depth >= 4; + + const pokemon = []; + + const pokemonPool = Object.keys(this.randomBSSFactorySets); + + const teamData: TeamData = { + typeCount: {}, + typeComboCount: {}, + baseFormes: {}, + has: {}, + wantsTeraCount: 0, + forceResult: forceResult, + weaknesses: {}, + resistances: {}, + }; + const weatherAbilitiesSet: {[k: string]: string} = { + drizzle: "raindance", + drought: "sunnyday", + snowwarning: "hail", + sandstream: "sandstorm", + }; + const resistanceAbilities: {[k: string]: string[]} = { + waterabsorb: ["Water"], + flashfire: ["Fire"], + lightningrod: ["Electric"], + voltabsorb: ["Electric"], + thickfat: ["Ice", "Fire"], + levitate: ["Ground"], + }; + const limitFactor = Math.ceil(this.maxTeamSize / 6); + /** + * Weighted random shuffle + * Uses the fact that for two uniform variables x1 and x2, x1^(1/w1) is larger than x2^(1/w2) + * with probability equal to w1/(w1+w2), which is what we want. See e.g. here https://arxiv.org/pdf/1012.0256.pdf, + * original paper is behind a paywall. + */ + const shuffledSpecies = []; + for (const speciesName of pokemonPool) { + const sortObject = { + speciesName, + score: Math.pow(this.prng.next(), 1 / this.randomBSSFactorySets[speciesName].weight), + }; + shuffledSpecies.push(sortObject); + } + shuffledSpecies.sort((a, b) => a.score - b.score); + + while (shuffledSpecies.length && pokemon.length < this.maxTeamSize) { + // repeated popping from weighted shuffle is equivalent to repeated weighted sampling without replacement + const species = this.dex.species.get(shuffledSpecies.pop()!.speciesName); + if (!species.exists) continue; + + if (this.forceMonotype && !species.types.includes(this.forceMonotype)) continue; + + // Limit to one of each species (Species Clause) + if (teamData.baseFormes[species.baseSpecies]) continue; + + // Limit 2 of any type (most of the time) + const types = species.types; + let skip = false; + if (!this.forceMonotype) { + for (const type of types) { + if (teamData.typeCount[type] >= 2 * limitFactor && this.randomChance(4, 5)) { + skip = true; + break; + } + } + } + if (skip) continue; + + const set = this.randomBSSFactorySet(species, teamData); + if (!set) continue; + + // Limit 1 of any type combination + let typeCombo = types.slice().sort().join(); + if (set.ability === "Drought" || set.ability === "Drizzle") { + // Drought and Drizzle don't count towards the type combo limit + typeCombo = set.ability; + } + if (!this.forceMonotype && teamData.typeComboCount[typeCombo] >= limitFactor) continue; + + const itemData = this.dex.items.get(set.item); + if (teamData.has[itemData.id]) continue; // Item Clause + + // Okay, the set passes, add it to our team + pokemon.push(set); + + // Now that our Pokemon has passed all checks, we can update team data: + for (const type of types) { + if (type in teamData.typeCount) { + teamData.typeCount[type]++; + } else { + teamData.typeCount[type] = 1; + } + } + if (typeCombo in teamData.typeComboCount) { + teamData.typeComboCount[typeCombo]++; + } else { + teamData.typeComboCount[typeCombo] = 1; + } + + teamData.baseFormes[species.baseSpecies] = 1; + + teamData.has[itemData.id] = 1; + + if (set.wantsTera) { + if (!teamData.wantsTeraCount) teamData.wantsTeraCount = 0; + teamData.wantsTeraCount++; + } + + const abilityState = this.dex.abilities.get(set.ability); + if (abilityState.id in weatherAbilitiesSet) { + teamData.weather = weatherAbilitiesSet[abilityState.id]; + } + + for (const move of set.moves) { + const moveId = toID(move); + if (moveId in teamData.has) { + teamData.has[moveId]++; + } else { + teamData.has[moveId] = 1; + } + } + + for (const typeName of this.dex.types.names()) { + // Cover any major weakness (3+) with at least one resistance + if (teamData.resistances[typeName] >= 1) continue; + if (resistanceAbilities[abilityState.id]?.includes(typeName) || !this.dex.getImmunity(typeName, types)) { + // Heuristic: assume that Pokémon with these abilities don't have (too) negative typing. + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + continue; + } + const typeMod = this.dex.getEffectiveness(typeName, types); + if (typeMod < 0) { + teamData.resistances[typeName] = (teamData.resistances[typeName] || 0) + 1; + if (teamData.resistances[typeName] >= 1) teamData.weaknesses[typeName] = 0; + } else if (typeMod > 0) { + teamData.weaknesses[typeName] = (teamData.weaknesses[typeName] || 0) + 1; + } + } + } + if (!teamData.forceResult && pokemon.length < this.maxTeamSize) return this.randomBSSFactoryTeam(side, ++depth); + + // Quality control we cannot afford for monotype + if (!teamData.forceResult && !this.forceMonotype) { + for (const type in teamData.weaknesses) { + if (teamData.weaknesses[type] >= 3 * limitFactor) return this.randomBSSFactoryTeam(side, ++depth); + } + } + + return pokemon; + } + + randomDraftFactoryMatchups: AnyObject = require("./draft-factory-matchups.json").matchups; + rdfMatchupIndex = -1; + rdfMatchupSide = -1; + + randomDraftFactoryTeam(side: PlayerOptions): RandomTeamsTypes.RandomDraftFactorySet[] { + this.enforceNoDirectCustomBanlistChanges(); + + if (this.rdfMatchupIndex === -1) this.rdfMatchupIndex = this.random(0, this.randomDraftFactoryMatchups.length); + if (this.rdfMatchupSide === -1) this.rdfMatchupSide = this.random(0, 2); + + const matchup = this.randomDraftFactoryMatchups[this.rdfMatchupIndex]; + const team = Teams.unpack(matchup[this.rdfMatchupSide]); + if (!team) throw new Error(`Invalid team for draft factory matchup ${this.rdfMatchupIndex}`); + this.rdfMatchupSide = 1 - this.rdfMatchupSide; + return team.map(set => { + let species = this.dex.species.get(set.species); + if (species.battleOnly) { + if (typeof species.battleOnly !== 'string') { + throw new Error(`Invalid species ${species.name} for draft factory matchup ${this.rdfMatchupIndex} team ${this.rdfMatchupSide}`); + } + species = this.dex.species.get(species.battleOnly); + } + return { + name: species.baseSpecies, + species: species.name, + gender: set.gender, + moves: set.moves, + ability: set.ability, + evs: set.evs, + ivs: set.ivs, + item: set.item, + level: this.adjustLevel || set.level, + shiny: !!set.shiny, + nature: set.nature, + teraType: set.teraType, + teraCaptain: set.name === 'Tera Captain', + }; + }); + } +} + +export default RandomTeams; diff --git a/data/random-battles/gen9baby/sets.json b/data/random-battles/gen9baby/sets.json new file mode 100644 index 000000000000..a348c01c9ac5 --- /dev/null +++ b/data/random-battles/gen9baby/sets.json @@ -0,0 +1,3382 @@ +{ + "aipom": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Brick Break", "Double-Edge", "Fake Out", "Fire Punch", "Gunk Shot", "Knock Off", "U-turn"], + "abilities": ["Pickup"], + "teraTypes": ["Normal"] + } + ] + }, + "arrokuda": { + "level": 7, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Crunch", "Flip Turn", "Psychic Fangs", "Waterfall"], + "abilities": ["Swift Swim"], + "teraTypes": ["Fighting"] + } + ] + }, + "axew": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Claw", "Dragon Dance", "Iron Head", "Outrage", "Stomping Tantrum"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Iron Head", "Scale Shot", "Stomping Tantrum", "Swords Dance"], + "abilities": ["Mold Breaker"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "azurill": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Aqua Jet", "Belly Drum", "Body Slam", "Facade"], + "abilities": ["Huge Power"], + "teraTypes": ["Water"] + } + ] + }, + "bagon": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Claw", "Dragon Dance", "Fire Fang", "Iron Head", "Outrage"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fire", "Steel"] + } + ] + }, + "barboach": { + "level": 7, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Stone Edge", "Waterfall"], + "abilities": ["Oblivious"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "basculinwhitestriped": { + "level": 5, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Flip Turn", "Hydro Pump", "Ice Beam", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Aqua Jet", "Flip Turn", "Ice Beam", "Wave Crash"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "bellsprout": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Poison Jab", "Power Whip", "Sucker Punch", "Swords Dance"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Bulky Support", + "movepool": ["Knock Off", "Power Whip", "Sleep Powder", "Sludge Bomb", "Strength Sap", "Sucker Punch"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Dark", "Steel"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Power Whip", "Sludge Bomb", "Sunny Day", "Weather Ball"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire"] + } + ] + }, + "bergmite": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Curse", "Icicle Spear", "Rapid Spin", "Recover", "Stone Edge"], + "abilities": ["Sturdy"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "blitzle": { + "level": 7, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Body Slam", "Double-Edge", "Flame Charge", "Supercell Slam", "Thunder Wave", "Trailblaze", "Volt Switch"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Electric", "Fire", "Grass", "Normal"] + } + ] + }, + "bonsly": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Rock Blast", "Spikes", "Stealth Rock", "Stone Edge", "Sucker Punch"], + "abilities": ["Sturdy"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "bounsweet": { + "level": 9, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Dazzling Gleam", "Giga Drain", "Rapid Spin", "Synthesis", "Zen Headbutt"], + "abilities": ["Oblivious"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "bramblin": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Poltergeist", "Power Whip", "Rapid Spin", "Spikes", "Strength Sap"], + "abilities": ["Wind Rider"], + "teraTypes": ["Fairy", "Steel", "Water"] + } + ] + }, + "bronzor": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Flash Cannon", "Hypnosis", "Psychic", "Stealth Rock"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Flash Cannon", "Psychic", "Shadow Ball"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Water"] + } + ] + }, + "buizel": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Crunch", "Flip Turn", "Ice Spinner", "Wave Crash"], + "abilities": ["Swift Swim", "Water Veil"], + "teraTypes": ["Ice", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Crunch", "Ice Spinner", "Wave Crash"], + "abilities": ["Swift Swim", "Water Veil"], + "teraTypes": ["Ice", "Water"] + } + ] + }, + "bulbasaur": { + "level": 6, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Giga Drain", "Knock Off", "Power Whip", "Sleep Powder", "Sludge Bomb", "Synthesis"], + "abilities": ["Chlorophyll", "Overgrow"], + "teraTypes": ["Dark", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Power Whip", "Sludge Bomb", "Sunny Day", "Weather Ball"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire"] + } + ] + }, + "cacnea": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Drain Punch", "Giga Drain", "Leaf Storm", "Poison Jab", "Spikes", "Sucker Punch", "Toxic Spikes"], + "abilities": ["Water Absorb"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bullet Seed", "Drain Punch", "Sucker Punch", "Swords Dance", "Thunder Punch"], + "abilities": ["Water Absorb"], + "teraTypes": ["Dark", "Electric", "Fighting", "Grass"] + } + ] + }, + "capsakid": { + "level": 7, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Bullet Seed", "Crunch", "Leaf Storm", "Stomping Tantrum"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Dark", "Ground"] + }, + { + "role": "Fast Support", + "movepool": ["Giga Drain", "Leaf Storm", "Stomping Tantrum", "Super Fang", "Thief"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Poison", "Water"] + } + ] + }, + "cetoddle": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Ice Shard", "Icicle Spear", "Knock Off", "Liquidation", "Yawn"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground", "Water"] + }, + { + "role": "Bulky Setup", + "movepool": ["Belly Drum", "Earthquake", "Ice Shard", "Icicle Spear"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground", "Ice"] + } + ] + }, + "charcadet": { + "level": 8, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Clear Smog", "Flame Charge", "Lava Plume", "Will-O-Wisp"], + "abilities": ["Flame Body", "Flash Fire"], + "teraTypes": ["Dragon"] + } + ] + }, + "charmander": { + "level": 7, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Brick Break", "Dragon Dance", "Flare Blitz", "Outrage", "Thunder Punch"], + "abilities": ["Blaze"], + "teraTypes": ["Dragon", "Electric", "Fighting"] + } + ] + }, + "chespin": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Bullet Seed", "Drain Punch", "Rock Slide", "Spikes", "Synthesis"], + "abilities": ["Bulletproof"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "chewtle": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Crunch", "Ice Fang", "Liquidation", "Shell Smash"], + "abilities": ["Strong Jaw"], + "teraTypes": ["Dark", "Ice", "Steel"] + } + ] + }, + "chikorita": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Bullet Seed", "Double-Edge", "Swords Dance", "Synthesis"], + "abilities": ["Overgrow"], + "teraTypes": ["Grass", "Normal", "Steel"] + } + ] + }, + "chimchar": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Flare Blitz", "Knock Off", "Slack Off"], + "abilities": ["Blaze"], + "teraTypes": ["Dark", "Dragon"] + }, + { + "role": "Fast Attacker", + "movepool": ["Flare Blitz", "Gunk Shot", "Knock Off", "Swords Dance", "Thunder Punch", "U-turn"], + "abilities": ["Blaze", "Iron Fist"], + "teraTypes": ["Dark", "Electric", "Fire", "Poison"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Flamethrower", "Knock Off", "Slack Off", "Stealth Rock", "U-turn", "Will-O-Wisp"], + "abilities": ["Blaze"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "chinchou": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Discharge", "Ice Beam", "Scald", "Thunder Wave", "Volt Switch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying", "Water"] + }, + { + "role": "Fast Support", + "movepool": ["Discharge", "Flip Turn", "Scald", "Volt Switch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying"] + } + ] + }, + "chingling": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Knock Off", "Psychic", "Recover", "Thunder Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Dazzling Gleam", "Psychic", "Recover"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Cosmic Power", "Dazzling Gleam", "Recover", "Stored Power"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "clauncher": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Dragon Pulse", "Flip Turn", "Ice Beam", "Water Pulse"], + "abilities": ["Mega Launcher"], + "teraTypes": ["Dark", "Dragon", "Fighting", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Dragon Pulse", "Flip Turn", "Ice Beam", "Water Pulse"], + "abilities": ["Mega Launcher"], + "teraTypes": ["Dark", "Dragon", "Fighting", "Water"] + } + ] + }, + "cleffa": { + "level": 8, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Fire Blast", "Psyshock"], + "abilities": ["Magic Guard"], + "teraTypes": ["Fire"] + }, + { + "role": "Bulky Support", + "movepool": ["Alluring Voice", "Draining Kiss", "Encore", "Protect", "Thunder Wave", "Wish"], + "abilities": ["Magic Guard"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "corphish": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Aqua Jet", "Crabhammer", "Dragon Dance", "Knock Off"], + "abilities": ["Adaptability"], + "teraTypes": ["Water"] + } + ] + }, + "cottonee": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Dazzling Gleam", "Encore", "Giga Drain", "Stun Spore", "Taunt"], + "abilities": ["Prankster"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "crabrawler": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Earthquake", "Gunk Shot", "Ice Punch", "Knock Off", "Thunder Punch"], + "abilities": ["Iron Fist"], + "teraTypes": ["Dark", "Electric", "Ground", "Poison"] + } + ] + }, + "cranidos": { + "level": 6, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Fire Punch", "Head Smash", "Rock Slide", "Zen Headbutt"], + "abilities": ["Sheer Force"], + "teraTypes": ["Psychic", "Rock"] + }, + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Fire Punch", "Rock Slide", "Swords Dance", "Zen Headbutt"], + "abilities": ["Sheer Force"], + "teraTypes": ["Ground", "Rock"] + } + ] + }, + "croagunk": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Gunk Shot", "Knock Off"], + "abilities": ["Dry Skin"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "cubchoo": { + "level": 7, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Blizzard", "Liquidation", "Play Rough", "Snowscape", "Surf"], + "abilities": ["Slush Rush"], + "teraTypes": ["Ice", "Water"] + } + ] + }, + "cufant": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Iron Head", "Play Rough", "Rock Slide", "Stealth Rock", "Superpower"], + "abilities": ["Sheer Force"], + "teraTypes": ["Fairy"] + } + ] + }, + "cutiefly": { + "level": 5, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Bug Buzz", "Moonblast", "Sticky Web", "Stun Spore", "U-turn"], + "abilities": ["Shield Dust"], + "teraTypes": ["Ghost"] + }, + { + "role": "Tera Blast user", + "movepool": ["Bug Buzz", "Moonblast", "Quiver Dance", "Tera Blast"], + "abilities": ["Shield Dust"], + "teraTypes": ["Ground"] + } + ] + }, + "cyndaquil": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Eruption", "Extrasensory", "Fire Blast", "Play Rough"], + "abilities": ["Flash Fire"], + "teraTypes": ["Fire"] + } + ] + }, + "deerling": { + "level": 6, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Bullet Seed", "Headbutt", "Synthesis", "Thunder Wave"], + "abilities": ["Serene Grace"], + "teraTypes": ["Ghost", "Normal"] + }, + { + "role": "Fast Support", + "movepool": ["Body Slam", "Bullet Seed", "Headbutt", "Synthesis"], + "abilities": ["Serene Grace"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "deino": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Crunch", "Outrage", "Thunder Wave", "Work Up"], + "abilities": ["Hustle"], + "teraTypes": ["Poison"] + }, + { + "role": "Bulky Support", + "movepool": ["Crunch", "Outrage", "Roar", "Thunder Wave"], + "abilities": ["Hustle"], + "teraTypes": ["Poison"] + } + ] + }, + "dewpider": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Giga Drain", "Ice Beam", "Leech Life", "Liquidation", "Sticky Web", "Surf"], + "abilities": ["Water Bubble"], + "teraTypes": ["Water"] + } + ] + }, + "diglett": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Stealth Rock", "Stone Edge", "Sucker Punch", "Swords Dance"], + "abilities": ["Arena Trap"], + "teraTypes": ["Ground", "Rock"] + } + ] + }, + "diglettalola": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Iron Head", "Stealth Rock", "Stone Edge", "Swords Dance"], + "abilities": ["Sand Force", "Tangling Hair"], + "teraTypes": ["Ground", "Rock", "Steel"] + } + ] + }, + "doduo": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Body Slam", "Brave Bird", "Double-Edge", "Knock Off", "Swords Dance"], + "abilities": ["Early Bird"], + "teraTypes": ["Dark", "Flying", "Normal"] + } + ] + }, + "dratini": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dragon Dance", "Extreme Speed", "Iron Head", "Outrage", "Rest"], + "abilities": ["Shed Skin"], + "teraTypes": ["Steel"] + } + ] + }, + "drifloon": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Defog", "Knock Off", "Pain Split", "Shadow Ball", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Aftermath"], + "teraTypes": ["Fairy"] + }, + { + "role": "Fast Support", + "movepool": ["Acrobatics", "Defog", "Knock Off", "Pain Split", "Shadow Ball", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Unburden"], + "teraTypes": ["Fairy", "Flying"] + } + ] + }, + "drilbur": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Rapid Spin", "Rock Slide", "Swords Dance"], + "abilities": ["Mold Breaker", "Sand Rush"], + "teraTypes": ["Ground", "Rock"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Poison Jab", "Rapid Spin", "Swords Dance"], + "abilities": ["Mold Breaker", "Sand Rush"], + "teraTypes": ["Ground", "Poison"] + } + ] + }, + "drowzee": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Draining Kiss", "Knock Off", "Psychic"], + "abilities": ["Inner Focus", "Insomnia"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Encore", "Focus Blast", "Psychic", "Thunder Wave"], + "abilities": ["Inner Focus", "Insomnia"], + "teraTypes": ["Fairy"] + } + ] + }, + "ducklett": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Aqua Jet", "Brave Bird", "Defog", "Roost", "Surf"], + "abilities": ["Hydration"], + "teraTypes": ["Ground"] + } + ] + }, + "dunsparce": { + "level": 5, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Coil", "Earthquake", "Roost"], + "abilities": ["Serene Grace"], + "teraTypes": ["Ground", "Poison"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Glare", "Headbutt", "Roost"], + "abilities": ["Serene Grace"], + "teraTypes": ["Ghost", "Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Earth Power", "Hyper Voice", "Roost", "Shadow Ball"], + "abilities": ["Rattled"], + "teraTypes": ["Fairy", "Ghost"] + } + ] + }, + "duraludon": { + "level": 5, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Draco Meteor", "Dragon Pulse", "Flash Cannon", "Iron Defense"], + "abilities": ["Light Metal"], + "teraTypes": ["Fairy", "Fighting"] + }, + { + "role": "Wallbreaker", + "movepool": ["Body Press", "Draco Meteor", "Flash Cannon", "Thunderbolt"], + "abilities": ["Light Metal"], + "teraTypes": ["Dragon", "Electric", "Fighting", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Draco Meteor", "Dragon Pulse", "Flash Cannon", "Stealth Rock", "Thunder Wave"], + "abilities": ["Light Metal"], + "teraTypes": ["Fighting"] + } + ] + }, + "duskull": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Leech Life", "Pain Split", "Poltergeist", "Shadow Sneak", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy", "Steel", "Water"] + } + ] + }, + "eevee": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Double-Edge", "Protect", "Shadow Ball", "Wish"], + "abilities": ["Adaptability"], + "teraTypes": ["Ghost", "Normal"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Protect", "Tera Blast", "Wish"], + "abilities": ["Adaptability"], + "teraTypes": ["Ghost"] + } + ] + }, + "ekans": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Glare", "Gunk Shot", "Knock Off", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Coil", "Earthquake", "Gunk Shot", "Trailblaze"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Grass", "Ground"] + } + ] + }, + "elekid": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Cross Chop", "Ice Punch", "Knock Off", "Psychic", "Supercell Slam", "Taunt", "Volt Switch"], + "abilities": ["Static", "Vital Spirit"], + "teraTypes": ["Dark", "Electric", "Fighting", "Ice"] + } + ] + }, + "espurr": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Nasty Plot", "Psychic", "Thunderbolt"], + "abilities": ["Infiltrator"], + "teraTypes": ["Dark", "Electric", "Psychic"] + }, + { + "role": "Fast Support", + "movepool": ["Dark Pulse", "Nasty Plot", "Psychic", "Thunder Wave", "Thunderbolt", "Trick"], + "abilities": ["Infiltrator"], + "teraTypes": ["Dark", "Electric", "Psychic"] + } + ] + }, + "exeggcute": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Giga Drain", "Moonlight", "Psychic", "Sleep Powder", "Stun Spore"], + "abilities": ["Harvest"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "feebas": { + "level": 8, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Haze", "Hypnosis", "Ice Beam", "Scale Shot", "Waterfall"], + "abilities": ["Adaptability"], + "teraTypes": ["Dragon", "Ice"] + } + ] + }, + "fennekin": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Encore", "Flamethrower", "Mud Shot", "Psychic", "Will-O-Wisp"], + "abilities": ["Blaze"], + "teraTypes": ["Dragon", "Fairy", "Ground"] + } + ] + }, + "fidough": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Play Rough", "Protect", "Stomping Tantrum", "Wish"], + "abilities": ["Own Tempo"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "finizen": { + "level": 7, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Agility", "Boomburst", "Encore", "Ice Beam", "Surf"], + "abilities": ["Water Veil"], + "teraTypes": ["Normal"] + } + ] + }, + "finneon": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Alluring Voice", "Ice Beam", "Surf", "Thief", "U-turn"], + "abilities": ["Storm Drain", "Swift Swim"], + "teraTypes": ["Fairy"] + } + ] + }, + "flabebe": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Moonblast", "Psychic", "Synthesis"], + "abilities": ["Flower Veil"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Moonblast", "Synthesis", "Tera Blast"], + "abilities": ["Flower Veil"], + "teraTypes": ["Ground"] + } + ] + }, + "fletchling": { + "level": 6, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Acrobatics", "Flare Blitz", "Swords Dance", "Tera Blast"], + "abilities": ["Gale Wings"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Defog", "Double-Edge", "Heat Wave", "Roost", "Taunt", "U-turn"], + "abilities": ["Gale Wings"], + "teraTypes": ["Steel"] + } + ] + }, + "flittle": { + "level": 5, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Protect", "Stored Power", "Substitute"], + "abilities": ["Speed Boost"], + "teraTypes": ["Fairy"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Protect", "Stored Power", "Substitute", "Tera Blast"], + "abilities": ["Speed Boost"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "fomantis": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Defog", "Leaf Storm", "Superpower", "Synthesis"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "foongus": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Clear Smog", "Foul Play", "Giga Drain", "Leaf Storm", "Sludge Bomb", "Spore", "Stun Spore"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Giga Drain", "Sludge Bomb", "Spore", "Synthesis"], + "abilities": ["Regenerator"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "frigibax": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Crunch", "Icicle Spear", "Outrage", "Swords Dance"], + "abilities": ["Thermal Exchange"], + "teraTypes": ["Dragon", "Fairy", "Ice"] + } + ] + }, + "froakie": { + "level": 6, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Ice Beam", "Spikes", "Surf", "Toxic Spikes", "U-turn"], + "abilities": ["Protean"], + "teraTypes": ["Ice", "Water"] + } + ] + }, + "fuecoco": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Encore", "Flamethrower", "Roar", "Slack Off", "Stomping Tantrum", "Will-O-Wisp"], + "abilities": ["Unaware"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "gastly": { + "level": 6, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Dazzling Gleam", "Nasty Plot", "Shadow Ball", "Sludge Bomb", "Trick", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy", "Ghost", "Poison"] + }, + { + "role": "Wallbreaker", + "movepool": ["Dazzling Gleam", "Nasty Plot", "Shadow Ball", "Sludge Bomb", "Thunderbolt"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Fairy", "Ghost", "Poison"] + } + ] + }, + "geodude": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Explosion", "Rock Blast", "Rock Polish", "Stealth Rock", "Stone Edge"], + "abilities": ["Sturdy"], + "teraTypes": ["Grass"] + } + ] + }, + "geodudealola": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Double-Edge", "Earthquake", "Explosion", "Rock Blast", "Rock Polish", "Stealth Rock", "Stone Edge", "Thunder Wave", "Volt Switch"], + "abilities": ["Galvanize"], + "teraTypes": ["Grass", "Ground"] + } + ] + }, + "gible": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Iron Head", "Scale Shot", "Swords Dance"], + "abilities": ["Rough Skin"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Dragon Claw", "Earthquake", "Iron Head", "Outrage", "Stealth Rock", "Stone Edge"], + "abilities": ["Rough Skin"], + "teraTypes": ["Dragon", "Ground", "Steel"] + } + ] + }, + "gimmighoul": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Nasty Plot", "Power Gem", "Rest", "Shadow Ball", "Sleep Talk"], + "abilities": ["Rattled"], + "teraTypes": ["Fairy"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Power Gem", "Shadow Ball", "Tera Blast"], + "abilities": ["Rattled"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "gimmighoulroaming": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Nasty Plot", "Power Gem", "Shadow Ball", "Substitute"], + "abilities": ["Run Away"], + "teraTypes": ["Ghost", "Rock"] + }, + { + "role": "Tera Blast user", + "movepool": ["Nasty Plot", "Shadow Ball", "Substitute", "Tera Blast"], + "abilities": ["Run Away"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "girafarig": { + "level": 5, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dazzling Gleam", "Nasty Plot", "Psychic", "Shadow Ball", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Electric", "Fairy", "Ghost"] + }, + { + "role": "Bulky Setup", + "movepool": ["Hyper Voice", "Nasty Plot", "Psychic", "Psyshock", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Normal"] + } + ] + }, + "gligar": { + "level": 5, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dual Wingbeat", "Earthquake", "Knock Off", "Swords Dance"], + "abilities": ["Immunity"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Fast Support", + "movepool": ["Earthquake", "Knock Off", "Spikes", "Stealth Rock", "Toxic Spikes", "U-turn"], + "abilities": ["Immunity"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "glimmet": { + "level": 6, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Mud Shot", "Power Gem", "Sludge Wave", "Spikes", "Stealth Rock"], + "abilities": ["Toxic Debris"], + "teraTypes": ["Ghost", "Grass"] + } + ] + }, + "golett": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dynamic Punch", "Earthquake", "Poltergeist", "Rock Tomb", "Stealth Rock"], + "abilities": ["No Guard"], + "teraTypes": ["Fighting"] + } + ] + }, + "goomy": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dragon Pulse", "Rest", "Sleep Talk", "Sludge Bomb", "Thunderbolt"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Electric", "Poison", "Water"] + } + ] + }, + "gothita": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dark Pulse", "Nasty Plot", "Psychic", "Thunderbolt", "Trick"], + "abilities": ["Shadow Tag"], + "teraTypes": ["Dark", "Electric", "Fairy"] + } + ] + }, + "greavard": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Pain Split", "Play Rough", "Poltergeist", "Roar", "Shadow Sneak", "Yawn"], + "abilities": ["Fluffy"], + "teraTypes": ["Fairy"] + } + ] + }, + "grimer": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Curse", "Drain Punch", "Gunk Shot", "Poison Jab", "Shadow Sneak"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "grimeralola": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Curse", "Drain Punch", "Gunk Shot", "Knock Off", "Poison Jab"], + "abilities": ["Poison Touch"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "grookey": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Drain Punch", "Grassy Glide", "Knock Off", "Swords Dance", "U-turn", "Wood Hammer"], + "abilities": ["Grassy Surge"], + "teraTypes": ["Grass"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Grassy Glide", "Knock Off", "U-turn", "Wood Hammer"], + "abilities": ["Grassy Surge"], + "teraTypes": ["Grass"] + } + ] + }, + "growlithe": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Flamethrower", "Morning Sun", "Roar", "Wild Charge", "Will-O-Wisp"], + "abilities": ["Intimidate"], + "teraTypes": ["Dragon", "Fairy", "Fighting"] + } + ] + }, + "growlithehisui": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Flare Blitz", "Head Smash", "Morning Sun", "Stealth Rock", "Wild Charge", "Will-O-Wisp"], + "abilities": ["Rock Head"], + "teraTypes": ["Dragon", "Fairy"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Flare Blitz", "Head Smash", "Wild Charge"], + "abilities": ["Rock Head"], + "teraTypes": ["Fighting", "Fire", "Rock"] + } + ] + }, + "grubbin": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Lunge", "Sticky Web", "Thunder Wave", "Volt Switch", "Wild Charge"], + "abilities": ["Swarm"], + "teraTypes": ["Electric"] + } + ] + }, + "gulpin": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Fire Punch", "Giga Drain", "Pain Split", "Sludge Bomb", "Thunder Wave", "Toxic Spikes"], + "abilities": ["Sticky Hold"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Bullet Seed", "Fire Punch", "Gunk Shot", "Swords Dance"], + "abilities": ["Sticky Hold"], + "teraTypes": ["Fire", "Grass", "Poison"] + } + ] + }, + "happiny": { + "level": 8, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Hyper Voice", "Rest", "Shadow Ball", "Thunder Wave"], + "abilities": ["Natural Cure"], + "teraTypes": ["Ghost"] + }, + { + "role": "Bulky Support", + "movepool": ["Heal Bell", "Hyper Voice", "Rest", "Thunder Wave"], + "abilities": ["Natural Cure"], + "teraTypes": ["Ghost"] + } + ] + }, + "hatenna": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Draining Kiss", "Mystical Fire", "Nuzzle", "Psychic"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Electric", "Fairy"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Mystical Fire", "Psychic"], + "abilities": ["Magic Bounce"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "hippopotas": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Curse", "Earthquake", "Slack Off", "Stealth Rock", "Stone Edge", "Whirlwind", "Yawn"], + "abilities": ["Sand Stream"], + "teraTypes": ["Dragon", "Rock", "Steel"] + } + ] + }, + "hoothoot": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Defog", "Hurricane", "Hyper Voice", "Nasty Plot", "Roost"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "hoppip": { + "level": 8, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Acrobatics", "Encore", "Sleep Powder", "Strength Sap", "Stun Spore", "U-turn"], + "abilities": ["Chlorophyll", "Infiltrator"], + "teraTypes": ["Steel"] + } + ] + }, + "horsea": { + "level": 7, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Dragon Pulse", "Flip Turn", "Ice Beam", "Surf"], + "abilities": ["Sniper", "Swift Swim"], + "teraTypes": ["Dragon", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dragon Pulse", "Ice Beam", "Rain Dance", "Surf"], + "abilities": ["Swift Swim"], + "teraTypes": ["Dragon", "Water"] + } + ] + }, + "houndour": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Dark Pulse", "Flamethrower", "Nasty Plot", "Sludge Bomb", "Sucker Punch"], + "abilities": ["Flash Fire"], + "teraTypes": ["Dark", "Fire", "Poison"] + } + ] + }, + "igglybuff": { + "level": 8, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Alluring Voice", "Encore", "Flamethrower", "Protect", "Thunder Wave", "Wish"], + "abilities": ["Competitive"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Draining Kiss", "Protect", "Wish"], + "abilities": ["Competitive"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "impidimp": { + "level": 7, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Burning Jealousy", "Dark Pulse", "Dazzling Gleam", "Nasty Plot", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Dark", "Fairy", "Fire"] + }, + { + "role": "Fast Support", + "movepool": ["Dazzling Gleam", "Draining Kiss", "Light Screen", "Parting Shot", "Reflect", "Taunt", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Dark Pulse", "Dazzling Gleam", "Draining Kiss", "Parting Shot", "Sucker Punch", "Taunt", "Thunder Wave"], + "abilities": ["Prankster"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "inkay": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Hypnosis", "Knock Off", "Psycho Cut", "Rest", "Sleep Talk", "Superpower"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Knock Off", "Psycho Cut", "Superpower", "Trick", "Trick Room"], + "abilities": ["Contrary"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "jangmoo": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Iron Head", "Outrage"], + "abilities": ["Bulletproof"], + "teraTypes": ["Ground", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Iron Head", "Scale Shot", "Swords Dance"], + "abilities": ["Bulletproof"], + "teraTypes": ["Ground", "Steel"] + } + ] + }, + "joltik": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Giga Drain", "Leech Life", "Thunder", "Thunder Wave", "Volt Switch"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Electric"] + } + ] + }, + "koffing": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flamethrower", "Pain Split", "Sludge Bomb", "Toxic Spikes", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Steel"] + } + ] + }, + "kubfu": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Ice Punch", "Iron Head", "Swords Dance"], + "abilities": ["Inner Focus"], + "teraTypes": ["Fighting", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Ice Punch", "Iron Head", "Swords Dance", "U-turn"], + "abilities": ["Inner Focus"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "larvesta": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Flare Blitz", "Leech Life", "Morning Sun", "U-turn", "Wild Charge", "Will-O-Wisp"], + "abilities": ["Flame Body"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "larvitar": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Earthquake", "Facade", "Rock Blast", "Stone Edge"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "lechonk": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Bulldoze", "Curse", "Play Rough"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Bullet Seed", "Double-Edge", "Play Rough", "Thief", "Yawn"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Grass"] + } + ] + }, + "litleo": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Flamethrower", "Hyper Voice", "Will-O-Wisp", "Work Up"], + "abilities": ["Unnerve"], + "teraTypes": ["Fire", "Normal"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Flamethrower", "Hyper Voice", "Solar Beam", "Sunny Day"], + "abilities": ["Unnerve"], + "teraTypes": ["Fire", "Grass", "Normal"] + } + ] + }, + "litten": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Flare Blitz", "Leech Life", "Swords Dance", "Trailblaze"], + "abilities": ["Intimidate"], + "teraTypes": ["Bug", "Fire", "Grass"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Leech Life", "Overheat", "Parting Shot", "Will-O-Wisp"], + "abilities": ["Intimidate"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "litwick": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Energy Ball", "Flamethrower", "Pain Split", "Shadow Ball", "Will-O-Wisp"], + "abilities": ["Flame Body", "Flash Fire"], + "teraTypes": ["Fairy", "Ghost", "Grass"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Flamethrower", "Hex", "Pain Split", "Will-O-Wisp"], + "abilities": ["Flame Body", "Flash Fire"], + "teraTypes": ["Fairy", "Grass"] + } + ] + }, + "lotad": { + "level": 8, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Giga Drain", "Ice Beam", "Surf", "Synthesis"], + "abilities": ["Swift Swim"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Giga Drain", "Ice Beam", "Rain Dance", "Surf"], + "abilities": ["Swift Swim"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "magby": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Belly Drum", "Cross Chop", "Fire Punch", "Mach Punch", "Thunder Punch"], + "abilities": ["Flame Body", "Vital Spirit"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Attacker", + "movepool": ["Cross Chop", "Fire Blast", "Flare Blitz", "Thunder Punch", "Will-O-Wisp"], + "abilities": ["Flame Body", "Vital Spirit"], + "teraTypes": ["Electric", "Fire", "Grass"] + }, + { + "role": "Wallbreaker", + "movepool": ["Cross Chop", "Flare Blitz", "Overheat", "Thunder Punch"], + "abilities": ["Flame Body", "Vital Spirit"], + "teraTypes": ["Electric", "Fighting", "Fire"] + } + ] + }, + "magnemite": { + "level": 6, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flash Cannon", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Analytic", "Magnet Pull"], + "teraTypes": ["Flying"] + } + ] + }, + "makuhita": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Bullet Punch", "Drain Punch", "Earthquake", "Heavy Slam", "Knock Off", "Stone Edge"], + "abilities": ["Guts", "Thick Fat"], + "teraTypes": ["Dark", "Ground", "Steel"] + } + ] + }, + "mankey": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Close Combat", "Earthquake", "Gunk Shot", "Stone Edge", "Throat Chop", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Fighting", "Ground", "Poison", "Rock"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Earthquake", "Stone Edge", "Throat Chop"], + "abilities": ["Defiant"], + "teraTypes": ["Fighting", "Ground", "Rock"] + }, + { + "role": "Fast Attacker", + "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Gunk Shot", "Stone Edge", "Throat Chop", "U-turn"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Fighting", "Ground", "Poison", "Rock"] + } + ] + }, + "mareanie": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Gunk Shot", "Liquidation", "Poison Jab", "Recover", "Toxic Spikes"], + "abilities": ["Regenerator"], + "teraTypes": ["Fairy", "Flying", "Grass", "Steel"] + } + ] + }, + "mareep": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dazzling Gleam", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Static"], + "teraTypes": ["Fairy"] + }, + { + "role": "Tera Blast user", + "movepool": ["Agility", "Dazzling Gleam", "Tera Blast", "Thunderbolt"], + "abilities": ["Static"], + "teraTypes": ["Ice"] + } + ] + }, + "maschiff": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Crunch", "Hone Claws", "Play Rough", "Trailblaze"], + "abilities": ["Stakeout"], + "teraTypes": ["Fairy"] + } + ] + }, + "meditite": { + "level": 5, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Trailblaze", "Zen Headbutt"], + "abilities": ["Pure Power"], + "teraTypes": ["Fighting", "Psychic", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Ice Punch", "Poison Jab", "Zen Headbutt"], + "abilities": ["Pure Power"], + "teraTypes": ["Fighting", "Poison", "Psychic"] + } + ] + }, + "meowth": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Double-Edge", "Fake Out", "Knock Off", "Play Rough", "Thunder Wave", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Normal"] + } + ] + }, + "meowthalola": { + "level": 6, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Gunk Shot", "Knock Off", "Parting Shot", "Play Rough", "Thunder Wave"], + "abilities": ["Rattled"], + "teraTypes": ["Fairy", "Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Hypnosis", "Nasty Plot", "Power Gem", "Thunderbolt"], + "abilities": ["Rattled"], + "teraTypes": ["Dark", "Electric"] + } + ] + }, + "meowthgalar": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Iron Head", "Knock Off", "Swords Dance", "Trailblaze"], + "abilities": ["Tough Claws"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Iron Head", "Knock Off", "Play Rough", "Stealth Rock", "U-turn"], + "abilities": ["Tough Claws"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "mienfoo": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["High Jump Kick", "Knock Off", "Poison Jab", "Stone Edge", "Swords Dance"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Fighting", "Poison"] + }, + { + "role": "Fast Support", + "movepool": ["Fake Out", "High Jump Kick", "Knock Off", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Steel"] + }, + { + "role": "Fast Attacker", + "movepool": ["High Jump Kick", "Knock Off", "Poison Jab", "Stone Edge", "Swords Dance", "U-turn"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "milcery": { + "level": 8, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Acid Armor", "Dazzling Gleam", "Draining Kiss", "Recover", "Stored Power"], + "abilities": ["Aroma Veil"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "minccino": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bullet Seed", "Knock Off", "Tail Slap", "Tidy Up"], + "abilities": ["Skill Link"], + "teraTypes": ["Grass", "Normal"] + } + ] + }, + "misdreavus": { + "level": 5, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Shadow Ball", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Dazzling Gleam", "Nasty Plot", "Pain Split", "Shadow Ball", "Thunder Wave", "Thunderbolt", "Trick", "Will-O-Wisp"], + "abilities": ["Levitate"], + "teraTypes": ["Fairy"] + } + ] + }, + "mudbray": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Earthquake", "Heavy Slam", "Stealth Rock", "Stone Edge"], + "abilities": ["Stamina"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "mudkip": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Ice Beam", "Liquidation", "Rest", "Roar", "Sleep Talk", "Sludge Wave", "Yawn"], + "abilities": ["Torrent"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "munchlax": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Body Slam", "Crunch", "Earthquake", "Rest", "Sleep Talk"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Curse", "Rest", "Sleep Talk"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Poison"] + } + ] + }, + "murkrow": { + "level": 5, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Heat Wave", "Hurricane", "Nasty Plot", "Sucker Punch"], + "abilities": ["Super Luck"], + "teraTypes": ["Dark", "Fairy", "Flying", "Steel"] + }, + { + "role": "Fast Support", + "movepool": ["Brave Bird", "Sucker Punch", "Thunder Wave", "U-turn"], + "abilities": ["Prankster"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "nacli": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Curse", "Earthquake", "Recover", "Stealth Rock", "Stone Edge"], + "abilities": ["Purifying Salt"], + "teraTypes": ["Dragon", "Fairy"] + } + ] + }, + "noibat": { + "level": 8, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Defog", "Draco Meteor", "Heat Wave", "Hurricane", "Roost", "U-turn"], + "abilities": ["Infiltrator"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "nosepass": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Press", "Iron Defense", "Pain Split", "Power Gem", "Thunder Wave"], + "abilities": ["Magnet Pull"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Pain Split", "Power Gem", "Stealth Rock", "Thunder Wave", "Volt Switch"], + "abilities": ["Magnet Pull"], + "teraTypes": ["Fighting"] + } + ] + }, + "numel": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Fire Blast", "Growth", "Trailblaze"], + "abilities": ["Simple"], + "teraTypes": ["Grass"] + } + ] + }, + "nymble": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["First Impression", "Leech Life", "Sucker Punch", "U-turn"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Bug"] + } + ] + }, + "oddish": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Giga Drain", "Sleep Powder", "Sludge Bomb", "Strength Sap", "Stun Spore"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "oshawott": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Aqua Jet", "Encore", "Flip Turn", "Ice Beam", "Knock Off", "Sacred Sword", "Surf", "X-Scissor"], + "abilities": ["Torrent"], + "teraTypes": ["Dragon", "Fighting", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Aqua Jet", "Knock Off", "Liquidation", "Sacred Sword", "Swords Dance"], + "abilities": ["Torrent"], + "teraTypes": ["Dark", "Fighting", "Water"] + } + ] + }, + "pawmi": { + "level": 8, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Discharge", "Encore", "Nuzzle", "Play Rough", "Super Fang", "Thief", "Volt Switch"], + "abilities": ["Natural Cure", "Static"], + "teraTypes": ["Electric", "Fairy", "Grass"] + } + ] + }, + "pawniard": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Iron Head", "Night Slash", "Sucker Punch", "Swords Dance"], + "abilities": ["Defiant"], + "teraTypes": ["Dark", "Fairy", "Steel"] + } + ] + }, + "petilil": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Giga Drain", "Leaf Storm", "Pollen Puff", "Sleep Powder", "Stun Spore", "Synthesis"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Poison", "Steel", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Giga Drain", "Leaf Storm", "Stun Spore", "Synthesis", "Tera Blast"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire", "Rock"] + } + ] + }, + "phanpy": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Gunk Shot", "Ice Shard", "Knock Off", "Stealth Rock", "Stone Edge"], + "abilities": ["Pickup"], + "teraTypes": ["Dragon", "Poison"] + } + ] + }, + "phantump": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Horn Leech", "Poltergeist", "Rest", "Will-O-Wisp"], + "abilities": ["Natural Cure"], + "teraTypes": ["Fairy", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Horn Leech", "Poltergeist", "Protect", "Will-O-Wisp"], + "abilities": ["Harvest"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "pichu": { + "level": 8, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Encore", "Nuzzle", "Play Rough", "Surf", "Volt Switch", "Volt Tackle"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Encore", "Nasty Plot", "Surf", "Tera Blast", "Thunderbolt"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Ice"] + } + ] + }, + "pikipek": { + "level": 6, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Bullet Seed", "Knock Off", "Roost", "Swords Dance", "U-turn"], + "abilities": ["Pickup", "Skill Link"], + "teraTypes": ["Flying", "Grass", "Steel"] + } + ] + }, + "pineco": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Lunge", "Rapid Spin", "Rock Blast", "Spikes", "Stealth Rock", "Toxic Spikes"], + "abilities": ["Sturdy"], + "teraTypes": ["Ghost"] + } + ] + }, + "piplup": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Flip Turn", "Haze", "Ice Beam", "Roost", "Surf", "Yawn"], + "abilities": ["Competitive"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "poliwag": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Belly Drum", "Body Slam", "Encore", "Hypnosis", "Waterfall"], + "abilities": ["Swift Swim", "Water Absorb"], + "teraTypes": ["Dragon", "Normal", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Belly Drum", "Body Slam", "Tera Blast", "Waterfall"], + "abilities": ["Swift Swim", "Water Absorb"], + "teraTypes": ["Dragon", "Fire", "Ground"] + } + ] + }, + "poltchageist": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Giga Drain", "Scald", "Shadow Ball", "Stun Spore"], + "abilities": ["Heatproof"], + "teraTypes": ["Fairy", "Steel", "Water"] + } + ] + }, + "poochyena": { + "level": 8, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Crunch", "Play Rough", "Poison Fang", "Sucker Punch", "Super Fang", "Taunt", "Yawn"], + "abilities": ["Rattled"], + "teraTypes": ["Fairy", "Poison"] + } + ] + }, + "popplio": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Encore", "Flip Turn", "Moonblast", "Surf", "Triple Axel"], + "abilities": ["Torrent"], + "teraTypes": ["Fairy", "Ice", "Steel", "Water"] + } + ] + }, + "porygon": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Discharge", "Ice Beam", "Recover", "Tri Attack"], + "abilities": ["Download"], + "teraTypes": ["Electric", "Ghost", "Poison"] + }, + { + "role": "Tera Blast user", + "movepool": ["Agility", "Recover", "Shadow Ball", "Tera Blast"], + "abilities": ["Download"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "psyduck": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Encore", "Flip Turn", "Ice Beam", "Knock Off", "Surf", "Yawn"], + "abilities": ["Cloud Nine", "Swift Swim"], + "teraTypes": ["Fairy", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Ice Beam", "Nasty Plot", "Surf", "Trailblaze"], + "abilities": ["Cloud Nine", "Swift Swim"], + "teraTypes": ["Grass", "Steel", "Water"] + } + ] + }, + "quaxly": { + "level": 6, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Encore", "Liquidation", "Rapid Spin", "Roost"], + "abilities": ["Moxie"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "qwilfishhisui": { + "level": 5, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Crunch", "Gunk Shot", "Liquidation", "Swords Dance"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Poison", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Crunch", "Gunk Shot", "Spikes", "Taunt", "Toxic Spikes"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "ralts": { + "level": 8, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Draining Kiss", "Knock Off", "Psychic", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Trace"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Calm Mind", "Draining Kiss", "Mystical Fire", "Psychic"], + "abilities": ["Trace"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "rellor": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Cosmic Power", "Gunk Shot", "Leech Life", "Recover"], + "abilities": ["Shed Skin"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "rhyhorn": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Megahorn", "Rock Blast", "Rock Polish", "Stealth Rock", "Stone Edge", "Swords Dance"], + "abilities": ["Lightning Rod"], + "teraTypes": ["Dragon", "Fairy", "Flying", "Grass", "Water"] + } + ] + }, + "riolu": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Close Combat", "Crunch", "Earthquake", "Ice Punch", "Swords Dance"], + "abilities": ["Inner Focus"], + "teraTypes": ["Dark", "Fighting", "Ground"] + }, + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Copycat", "Crunch", "Ice Punch"], + "abilities": ["Prankster"], + "teraTypes": ["Dark", "Fighting"] + } + ] + }, + "rockruff": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Play Rough", "Stealth Rock", "Stomping Tantrum", "Stone Edge", "Sucker Punch", "Swords Dance"], + "abilities": ["Vital Spirit"], + "teraTypes": ["Fairy", "Ground", "Rock"] + } + ] + }, + "rolycoly": { + "level": 8, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Power Gem", "Rapid Spin", "Spikes", "Stealth Rock", "Temper Flare", "Will-O-Wisp"], + "abilities": ["Flash Fire"], + "teraTypes": ["Ghost", "Steel"] + } + ] + }, + "rookidee": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Defog", "Roost", "Taunt", "U-turn"], + "abilities": ["Unnerve"], + "teraTypes": ["Steel"] + } + ] + }, + "rowlet": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Brave Bird", "Leaf Blade", "Roost", "Swords Dance"], + "abilities": ["Overgrow"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Brave Bird", "Defog", "Giga Drain", "Knock Off", "Roost"], + "abilities": ["Long Reach", "Overgrow"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "rufflet": { + "level": 5, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Aerial Ace", "Bulk Up", "Close Combat", "Roost"], + "abilities": ["Hustle"], + "teraTypes": ["Fighting"] + } + ] + }, + "salandit": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Pulse", "Flamethrower", "Nasty Plot", "Sludge Bomb"], + "abilities": ["Corrosion"], + "teraTypes": ["Dragon", "Fire", "Poison"] + }, + { + "role": "Fast Support", + "movepool": ["Flamethrower", "Knock Off", "Sludge Bomb", "Thunder Wave", "Toxic Spikes", "Will-O-Wisp"], + "abilities": ["Corrosion"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "sandile": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Crunch", "Earthquake", "Fire Fang", "Stealth Rock", "Stone Edge"], + "abilities": ["Intimidate"], + "teraTypes": ["Dark", "Flying", "Ground"] + } + ] + }, + "sandshrew": { + "level": 6, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Knock Off", "Rapid Spin", "Spikes", "Stone Edge", "Swords Dance"], + "abilities": ["Sand Rush"], + "teraTypes": ["Dragon", "Steel", "Water"] + } + ] + }, + "sandshrewalola": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Earthquake", "Ice Shard", "Icicle Spear", "Rapid Spin", "Swords Dance"], + "abilities": ["Slush Rush"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Icicle Spear", "Iron Head", "Knock Off", "Rapid Spin", "Stealth Rock"], + "abilities": ["Slush Rush"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "sandygast": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Giga Drain", "Shadow Ball", "Shore Up", "Sludge Bomb", "Stealth Rock"], + "abilities": ["Water Compaction"], + "teraTypes": ["Fairy", "Poison", "Water"] + } + ] + }, + "scorbunny": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Flare Blitz", "Gunk Shot", "High Jump Kick", "Sucker Punch", "U-turn"], + "abilities": ["Libero"], + "teraTypes": ["Fighting", "Fire"] + }, + { + "role": "Fast Attacker", + "movepool": ["Flare Blitz", "Gunk Shot", "High Jump Kick", "U-turn"], + "abilities": ["Libero"], + "teraTypes": ["Fire"] + } + ] + }, + "scraggy": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Knock Off", "Rest"], + "abilities": ["Shed Skin"], + "teraTypes": ["Poison"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Close Combat", "Dragon Dance", "Knock Off", "Poison Jab"], + "abilities": ["Intimidate", "Moxie"], + "teraTypes": ["Poison"] + } + ] + }, + "scyther": { + "level": 5, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Bug Bite", "Close Combat", "Dual Wingbeat", "Swords Dance"], + "abilities": ["Technician"], + "teraTypes": ["Fighting"] + }, + { + "role": "Fast Support", + "movepool": ["Close Combat", "Defog", "Dual Wingbeat", "U-turn"], + "abilities": ["Technician"], + "teraTypes": ["Fighting"] + } + ] + }, + "seedot": { + "level": 8, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Bullet Seed", "Defog", "Sucker Punch", "Synthesis"], + "abilities": ["Chlorophyll", "Pickpocket"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "seel": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Flip Turn", "Haze", "Icicle Spear", "Surf", "Thief"], + "abilities": ["Thick Fat"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Fast Support", + "movepool": ["Aqua Jet", "Fake Out", "Icicle Spear", "Surf"], + "abilities": ["Thick Fat"], + "teraTypes": ["Poison", "Steel", "Water"] + } + ] + }, + "sentret": { + "level": 8, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Brick Break", "Double-Edge", "Knock Off", "Tidy Up"], + "abilities": ["Frisk"], + "teraTypes": ["Ghost", "Normal"] + } + ] + }, + "sewaddle": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Giga Drain", "Iron Defense", "Lunge", "Sticky Web", "Synthesis"], + "abilities": ["Chlorophyll", "Swarm"], + "teraTypes": ["Ghost"] + } + ] + }, + "shellder": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Icicle Spear", "Liquidation", "Rock Blast", "Shell Smash"], + "abilities": ["Skill Link"], + "teraTypes": ["Ice", "Rock", "Steel", "Water"] + } + ] + }, + "shellos": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Clear Smog", "Ice Beam", "Recover", "Stealth Rock", "Surf", "Yawn"], + "abilities": ["Storm Drain"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "shieldon": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Flash Cannon", "Ice Beam", "Rock Blast", "Stealth Rock"], + "abilities": ["Sturdy"], + "teraTypes": ["Fairy", "Flying", "Ground"] + } + ] + }, + "shinx": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Crunch", "Ice Fang", "Play Rough", "Roar", "Thunder Wave", "Volt Switch", "Wild Charge"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Crunch", "Facade", "Play Rough", "Trailblaze", "Wild Charge"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "shroodle": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Encore", "Gunk Shot", "Knock Off", "Parting Shot"], + "abilities": ["Prankster"], + "teraTypes": ["Dark"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Double-Edge", "Gunk Shot", "Knock Off", "Swords Dance"], + "abilities": ["Pickpocket"], + "teraTypes": ["Dark", "Normal", "Poison"] + } + ] + }, + "shroomish": { + "level": 8, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Drain Punch", "Giga Drain", "Sludge Bomb", "Spore", "Stun Spore"], + "abilities": ["Effect Spore"], + "teraTypes": ["Poison", "Steel", "Water"] + } + ] + }, + "shuppet": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Dazzling Gleam", "Gunk Shot", "Pain Split", "Poltergeist", "Shadow Sneak", "Thunder Wave", "Trick", "Will-O-Wisp"], + "abilities": ["Cursed Body", "Insomnia"], + "teraTypes": ["Fairy"] + }, + { + "role": "Bulky Setup", + "movepool": ["Dazzling Gleam", "Nasty Plot", "Shadow Ball", "Thunderbolt", "Will-O-Wisp"], + "abilities": ["Cursed Body", "Insomnia"], + "teraTypes": ["Electric", "Fairy"] + } + ] + }, + "silicobra": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Coil", "Earthquake", "Glare", "Rest", "Rock Blast", "Stealth Rock", "Stone Edge"], + "abilities": ["Shed Skin"], + "teraTypes": ["Dragon", "Steel"] + } + ] + }, + "sinistea": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Giga Drain", "Shadow Ball", "Shell Smash", "Stored Power", "Will-O-Wisp"], + "abilities": ["Cursed Body"], + "teraTypes": ["Fairy", "Psychic"] + }, + { + "role": "Tera Blast user", + "movepool": ["Giga Drain", "Shadow Ball", "Shell Smash", "Tera Blast", "Will-O-Wisp"], + "abilities": ["Cursed Body"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + }, + "skiddo": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Horn Leech", "Milk Drink", "Rock Slide", "Stomping Tantrum"], + "abilities": ["Sap Sipper"], + "teraTypes": ["Ground", "Water"] + } + ] + }, + "skrelp": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Flip Turn", "Gunk Shot", "Hydro Pump", "Sludge Bomb", "Toxic Spikes"], + "abilities": ["Adaptability"], + "teraTypes": ["Poison", "Water"] + } + ] + }, + "skwovet": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Belly Drum", "Body Slam", "Crunch", "Trailblaze"], + "abilities": ["Cheek Pouch"], + "teraTypes": ["Ghost"] + } + ] + }, + "slakoth": { + "level": 9, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Body Slam", "Gunk Shot", "Hammer Arm", "Play Rough", "Throat Chop"], + "abilities": ["Truant"], + "teraTypes": ["Fairy", "Fighting", "Normal"] + }, + { + "role": "Wallbreaker", + "movepool": ["Body Slam", "Hammer Arm", "Slack Off", "Throat Chop"], + "abilities": ["Truant"], + "teraTypes": ["Ghost", "Poison"] + } + ] + }, + "slowpoke": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Curse", "Liquidation", "Slack Off", "Thunder Wave", "Zen Headbutt"], + "abilities": ["Regenerator"], + "teraTypes": ["Fairy", "Poison"] + } + ] + }, + "slowpokegalar": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Curse", "Earthquake", "Slack Off", "Thunder Wave", "Zen Headbutt"], + "abilities": ["Regenerator"], + "teraTypes": ["Fairy", "Ground"] + } + ] + }, + "smoliv": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Giga Drain", "Protect", "Strength Sap"], + "abilities": ["Harvest"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Earth Power", "Giga Drain", "Leaf Storm", "Strength Sap", "Tera Blast"], + "abilities": ["Harvest"], + "teraTypes": ["Fairy", "Poison"] + } + ] + }, + "slugma": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earth Power", "Lava Plume", "Recover", "Stealth Rock", "Will-O-Wisp", "Yawn"], + "abilities": ["Flame Body"], + "teraTypes": ["Dragon", "Grass"] + } + ] + }, + "sneasel": { + "level": 5, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Brick Break", "Ice Shard", "Knock Off", "Swords Dance", "Triple Axel"], + "abilities": ["Inner Focus", "Pickpocket"], + "teraTypes": ["Dark", "Fighting", "Ice"] + } + ] + }, + "sneaselhisui": { + "level": 5, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Gunk Shot", "Swords Dance", "Throat Chop", "Toxic Spikes"], + "abilities": ["Inner Focus", "Pickpocket"], + "teraTypes": ["Dark", "Fighting", "Poison"] + } + ] + }, + "snivy": { + "level": 6, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Glare", "Knock Off", "Leaf Storm", "Substitute", "Synthesis"], + "abilities": ["Contrary"], + "teraTypes": ["Grass", "Poison", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Glare", "Knock Off", "Leaf Storm", "Substitute", "Synthesis", "Tera Blast"], + "abilities": ["Contrary"], + "teraTypes": ["Fire", "Rock"] + } + ] + }, + "snom": { + "level": 8, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Bug Buzz", "Icy Wind", "Rest", "Sleep Talk"], + "abilities": ["Ice Scales"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "snorunt": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Crunch", "Ice Shard", "Icicle Spear", "Spikes"], + "abilities": ["Inner Focus"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "snover": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bullet Seed", "Ice Shard", "Icicle Spear", "Swords Dance"], + "abilities": ["Snow Warning"], + "teraTypes": ["Grass", "Ice", "Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Blizzard", "Bullet Seed", "Giga Drain", "Ice Shard", "Trailblaze"], + "abilities": ["Snow Warning"], + "teraTypes": ["Ice", "Water"] + } + ] + }, + "snubbull": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "Encore", "Play Rough", "Thunder Wave"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground"] + }, + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Earthquake", "Play Rough", "Trailblaze"], + "abilities": ["Intimidate"], + "teraTypes": ["Ground"] + } + ] + }, + "sobble": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Haze", "Hydro Pump", "Light Screen", "Reflect", "Surf", "U-turn"], + "abilities": ["Torrent"], + "teraTypes": ["Water"] + } + ] + }, + "solosis": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Calm Mind", "Psychic", "Recover", "Shadow Ball", "Thunder Wave"], + "abilities": ["Magic Guard"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "spinarak": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Knock Off", "Leech Life", "Poison Jab", "Sticky Web", "Sucker Punch", "Toxic Spikes"], + "abilities": ["Insomnia", "Swarm"], + "teraTypes": ["Dark", "Ghost", "Steel"] + } + ] + }, + "spoink": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Calm Mind", "Dazzling Gleam", "Psychic", "Shadow Ball", "Thunder Wave", "Trick"], + "abilities": ["Thick Fat"], + "teraTypes": ["Fairy", "Ghost", "Psychic"] + } + ] + }, + "sprigatito": { + "level": 7, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Bullet Seed", "Play Rough", "Shadow Claw", "Sucker Punch", "U-turn"], + "abilities": ["Protean"], + "teraTypes": ["Grass"] + } + ] + }, + "squirtle": { + "level": 6, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flip Turn", "Ice Beam", "Rapid Spin", "Surf", "Yawn"], + "abilities": ["Torrent"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Tera Blast user", + "movepool": ["Ice Beam", "Shell Smash", "Surf", "Tera Blast"], + "abilities": ["Torrent"], + "teraTypes": ["Electric", "Grass"] + } + ] + }, + "stantler": { + "level": 5, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Double-Edge", "Earthquake", "Hypnosis", "Megahorn", "Shadow Ball", "Thunder Wave", "Trick"], + "abilities": ["Intimidate"], + "teraTypes": ["Bug", "Ghost", "Ground"] + }, + { + "role": "Tera Blast user", + "movepool": ["Calm Mind", "Earth Power", "Shadow Ball", "Tera Blast", "Thunderbolt"], + "abilities": ["Intimidate"], + "teraTypes": ["Fairy"] + } + ] + }, + "starly": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Brave Bird", "Double-Edge", "Heat Wave", "U-turn"], + "abilities": ["Reckless"], + "teraTypes": ["Flying", "Normal"] + } + ] + }, + "stunky": { + "level": 6, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Fire Blast", "Gunk Shot", "Knock Off", "Sucker Punch", "Taunt", "Toxic Spikes"], + "abilities": ["Aftermath"], + "teraTypes": ["Dark", "Poison"] + } + ] + }, + "sunkern": { + "level": 8, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Earth Power", "Solar Beam", "Sunny Day", "Weather Ball"], + "abilities": ["Chlorophyll"], + "teraTypes": ["Fire"] + } + ] + }, + "surskit": { + "level": 6, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Bug Buzz", "Giga Drain", "Hydro Pump", "Ice Beam", "Sticky Web"], + "abilities": ["Swift Swim"], + "teraTypes": ["Ghost", "Ground", "Steel", "Water"] + } + ] + }, + "swablu": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Body Slam", "Brave Bird", "Defog", "Haze", "Heat Wave", "Roost"], + "abilities": ["Natural Cure"], + "teraTypes": ["Steel"] + } + ] + }, + "swinub": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Ice Shard", "Icicle Spear", "Stealth Rock", "Trailblaze"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground", "Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Earthquake", "Ice Shard", "Icicle Spear", "Stealth Rock", "Trailblaze"], + "abilities": ["Thick Fat"], + "teraTypes": ["Ground", "Ice"] + } + ] + }, + "tadbulb": { + "level": 8, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Acid Spray", "Discharge", "Muddy Water", "Thunder Wave", "Volt Switch"], + "abilities": ["Static"], + "teraTypes": ["Water"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Rain Dance", "Thunder", "Volt Switch", "Weather Ball"], + "abilities": ["Static"], + "teraTypes": ["Water"] + } + ] + }, + "tandemaus": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Crunch", "Double-Edge", "Encore", "Low Sweep", "Switcheroo", "Thunder Wave", "U-turn"], + "abilities": ["Own Tempo", "Pickup"], + "teraTypes": ["Ghost"] + } + ] + }, + "tarountula": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Circle Throw", "Knock Off", "Leech Life", "Spikes", "Sticky Web", "Toxic Spikes"], + "abilities": ["Stakeout"], + "teraTypes": ["Ghost"] + } + ] + }, + "teddiursa": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Crunch", "Earthquake", "Facade", "Swords Dance"], + "abilities": ["Quick Feet"], + "teraTypes": ["Normal"] + } + ] + }, + "tentacool": { + "level": 6, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Flip Turn", "Ice Beam", "Knock Off", "Rapid Spin", "Sludge Bomb", "Surf", "Toxic Spikes"], + "abilities": ["Clear Body", "Liquid Ooze"], + "teraTypes": ["Grass"] + } + ] + }, + "tepig": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Flare Blitz", "Head Smash", "Superpower", "Wild Charge"], + "abilities": ["Blaze"], + "teraTypes": ["Electric", "Fighting", "Fire", "Rock"] + } + ] + }, + "timburr": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Bulk Up", "Defog", "Drain Punch", "Knock Off", "Stone Edge"], + "abilities": ["Guts"], + "teraTypes": ["Dark", "Steel"] + }, + { + "role": "Fast Support", + "movepool": ["Bulk Up", "Defog", "Drain Punch", "Knock Off", "Mach Punch"], + "abilities": ["Guts"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "tinkatink": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Knock Off", "Play Rough", "Stealth Rock", "Thunder Wave"], + "abilities": ["Pickpocket"], + "teraTypes": ["Water"] + } + ] + }, + "toedscool": { + "level": 6, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earth Power", "Giga Drain", "Knock Off", "Leaf Storm", "Rapid Spin", "Spikes", "Spore", "Toxic Spikes"], + "abilities": ["Mycelium Might"], + "teraTypes": ["Water"] + } + ] + }, + "torchic": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Flare Blitz", "Protect", "Rock Slide", "Swords Dance"], + "abilities": ["Speed Boost"], + "teraTypes": ["Dragon", "Fire", "Rock"] + }, + { + "role": "Wallbreaker", + "movepool": ["Flare Blitz", "Overheat", "Protect", "Rock Slide"], + "abilities": ["Speed Boost"], + "teraTypes": ["Dragon", "Fire", "Rock"] + }, + { + "role": "Tera Blast user", + "movepool": ["Flare Blitz", "Protect", "Swords Dance", "Tera Blast"], + "abilities": ["Speed Boost"], + "teraTypes": ["Fighting", "Grass", "Ground"] + } + ] + }, + "totodile": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Ice Punch", "Liquidation", "Trailblaze"], + "abilities": ["Sheer Force"], + "teraTypes": ["Grass", "Water"] + } + ] + }, + "trapinch": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earthquake", "First Impression", "Stone Edge", "Superpower"], + "abilities": ["Arena Trap"], + "teraTypes": ["Bug", "Fighting"] + } + ] + }, + "treecko": { + "level": 6, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Drain Punch", "Giga Drain", "Leaf Storm", "Rock Slide", "Synthesis", "Thunder Punch"], + "abilities": ["Overgrow"], + "teraTypes": ["Electric", "Fighting", "Grass", "Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Acrobatics", "Bullet Seed", "Drain Punch", "Swords Dance"], + "abilities": ["Unburden"], + "teraTypes": ["Flying"] + } + ] + }, + "turtwig": { + "level": 6, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Body Slam", "Bullet Seed", "Crunch", "Earth Power", "Shell Smash"], + "abilities": ["Overgrow"], + "teraTypes": ["Grass", "Ground"] + } + ] + }, + "tynamo": { + "level": 7, + "sets": [ + { + "role": "Tera Blast user", + "movepool": ["Knock Off", "Spark", "Tera Blast", "Thunder Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Ground", "Ice"] + }, + { + "role": "Fast Support", + "movepool": ["Charge Beam", "Knock Off", "Spark", "Thunder Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Steel"] + } + ] + }, + "tyrogue": { + "level": 9, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "High Jump Kick", "Rapid Spin", "Rock Slide"], + "abilities": ["Guts"], + "teraTypes": ["Fighting", "Rock"] + } + ] + }, + "varoom": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Gunk Shot", "Iron Head", "Parting Shot", "Taunt", "Toxic Spikes"], + "abilities": ["Overcoat"], + "teraTypes": ["Water"] + } + ] + }, + "venonat": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Leech Life", "Morning Sun", "Sleep Powder", "Stun Spore", "Toxic Spikes"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Steel", "Water"] + } + ] + }, + "voltorb": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Explosion", "Foul Play", "Thief", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Static"], + "teraTypes": ["Dark", "Electric"] + }, + { + "role": "Tera Blast user", + "movepool": ["Tera Blast", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Static"], + "teraTypes": ["Ice"] + } + ] + }, + "voltorbhisui": { + "level": 7, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Giga Drain", "Leaf Storm", "Taunt", "Thief", "Thunder Wave", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Static"], + "teraTypes": ["Electric", "Grass"] + }, + { + "role": "Wallbreaker", + "movepool": ["Giga Drain", "Leaf Storm", "Thunderbolt", "Volt Switch"], + "abilities": ["Aftermath", "Static"], + "teraTypes": ["Electric", "Grass"] + } + ] + }, + "vullaby": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Brave Bird", "Defog", "Knock Off", "Roost", "U-turn"], + "abilities": ["Overcoat"], + "teraTypes": ["Steel"] + } + ] + }, + "vulpix": { + "level": 6, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Encore", "Energy Ball", "Extrasensory", "Fire Blast", "Healing Wish", "Hypnosis", "Nasty Plot", "Will-O-Wisp"], + "abilities": ["Drought"], + "teraTypes": ["Grass"] + }, + { + "role": "Tera Blast user", + "movepool": ["Energy Ball", "Fire Blast", "Nasty Plot", "Tera Blast"], + "abilities": ["Drought"], + "teraTypes": ["Rock"] + } + ] + }, + "vulpixalola": { + "level": 6, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Aurora Veil", "Blizzard", "Freeze-Dry", "Nasty Plot"], + "abilities": ["Snow Warning"], + "teraTypes": ["Steel", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Aurora Veil", "Blizzard", "Nasty Plot", "Tera Blast"], + "abilities": ["Snow Warning"], + "teraTypes": ["Ground"] + } + ] + }, + "wattrel": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Hurricane", "Roost", "Thunder Wave", "Thunderbolt", "U-turn"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Steel"] + } + ] + }, + "wiglett": { + "level": 7, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Aqua Jet", "Ice Beam", "Liquidation", "Stomping Tantrum", "Throat Chop"], + "abilities": ["Gooey"], + "teraTypes": ["Dark", "Ground", "Water"] + } + ] + }, + "wingull": { + "level": 6, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Hurricane", "Knock Off", "Roost", "Surf"], + "abilities": ["Hydration"], + "teraTypes": ["Ground"] + } + ] + }, + "wooper": { + "level": 7, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Liquidation", "Recover", "Spikes", "Stealth Rock"], + "abilities": ["Unaware", "Water Absorb"], + "teraTypes": ["Poison", "Steel"] + }, + { + "role": "Bulky Setup", + "movepool": ["Curse", "Earthquake", "Liquidation", "Recover"], + "abilities": ["Unaware"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "wooperpaldea": { + "level": 7, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Curse", "Earthquake", "Gunk Shot", "Poison Jab", "Recover"], + "abilities": ["Unaware", "Water Absorb"], + "teraTypes": ["Flying", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Earthquake", "Gunk Shot", "Poison Jab", "Recover", "Spikes", "Stealth Rock", "Toxic Spikes"], + "abilities": ["Unaware", "Water Absorb"], + "teraTypes": ["Flying", "Steel"] + } + ] + }, + "yanma": { + "level": 5, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Air Slash", "Bug Buzz", "Giga Drain", "Hypnosis", "Protect", "U-turn"], + "abilities": ["Speed Boost"], + "teraTypes": ["Bug", "Flying", "Grass"] + }, + { + "role": "Tera Blast user", + "movepool": ["Double-Edge", "Leech Life", "Protect", "Swords Dance", "Tera Blast"], + "abilities": ["Speed Boost"], + "teraTypes": ["Ground"] + } + ] + }, + "yungoos": { + "level": 7, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Crunch", "Double-Edge", "Stomping Tantrum", "U-turn", "Yawn"], + "abilities": ["Adaptability", "Stakeout"], + "teraTypes": ["Normal"] + } + ] + }, + "zorua": { + "level": 7, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Burning Jealousy", "Encore", "Extrasensory", "Knock Off", "Sludge Bomb", "Trick", "U-turn"], + "abilities": ["Illusion"], + "teraTypes": ["Poison"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Dark Pulse", "Extrasensory", "Nasty Plot", "Sludge Bomb"], + "abilities": ["Illusion"], + "teraTypes": ["Poison"] + } + ] + }, + "zoruahisui": { + "level": 6, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Bitter Malice", "Burning Jealousy", "Knock Off", "Trick", "U-turn", "Will-O-Wisp"], + "abilities": ["Illusion"], + "teraTypes": ["Fairy", "Ghost"] + }, + { + "role": "Tera Blast user", + "movepool": ["Bitter Malice", "Burning Jealousy", "Nasty Plot", "Tera Blast", "Will-O-Wisp"], + "abilities": ["Illusion"], + "teraTypes": ["Fairy", "Fighting"] + } + ] + } +} diff --git a/data/random-battles/gen9baby/teams.ts b/data/random-battles/gen9baby/teams.ts new file mode 100644 index 000000000000..1cc922763a17 --- /dev/null +++ b/data/random-battles/gen9baby/teams.ts @@ -0,0 +1,821 @@ +import {PRNG, PRNGSeed} from "../../../sim/prng"; +import {RandomTeams, MoveCounter} from "../gen9/teams"; +import {Utils} from '../../../lib'; + +// First, some lists of moves that can be used for rules throughout set generation. Taken from regular gen9. + +// Moves that drop stats: +const CONTRARY_MOVES = [ + 'armorcannon', 'closecombat', 'leafstorm', 'makeitrain', 'overheat', 'spinout', 'superpower', 'vcreate', +]; + +// Hazard-setting moves +const HAZARDS = [ + 'spikes', 'stealthrock', 'stickyweb', 'toxicspikes', +]; + +// Moves that switch the user out +const PIVOT_MOVES = [ + 'chillyreception', 'flipturn', 'partingshot', 'shedtail', 'teleport', 'uturn', 'voltswitch', +]; + +// Moves that boost Attack: +const PHYSICAL_SETUP = [ + 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'poweruppunch', 'swordsdance', 'tidyup', 'victorydance', +]; + +// Moves that restore HP: +const RECOVERY_MOVES = [ + 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'roost', 'shoreup', 'slackoff', 'softboiled', 'strengthsap', 'synthesis', +]; + +// Setup (stat-boosting) moves +const SETUP = [ + 'acidarmor', 'agility', 'autotomize', 'bellydrum', 'bulkup', 'calmmind', 'clangoroussoul', 'coil', 'cosmicpower', 'curse', + 'dragondance', 'flamecharge', 'growth', 'honeclaws', 'howl', 'irondefense', 'meditate', 'nastyplot', 'noretreat', 'poweruppunch', + 'quiverdance', 'raindance', 'rockpolish', 'shellsmash', 'shiftgear', 'snowscape', 'sunnyday', 'swordsdance', 'tailglow', 'tidyup', + 'trailblaze', 'workup', 'victorydance', +]; + +// Some moves that only boost Speed: +const SPEED_SETUP = [ + 'agility', 'autotomize', 'flamecharge', 'rockpolish', 'trailblaze', +]; + +// Moves that would want to generate together +const MOVE_PAIRS = [ + ['lightscreen', 'reflect'], + ['sleeptalk', 'rest'], + ['protect', 'wish'], +]; + +export class RandomBabyTeams extends RandomTeams { + constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { + super(format, prng); + + // Overwrite enforcementcheckers where needed here + this.moveEnforcementCheckers['Bug'] = (movePool, moves, abilities, types, counter) => ( + !counter.get('Bug') + ); + this.moveEnforcementCheckers['Grass'] = (movePool, moves, abilities, types, counter, species) => ( + !counter.get('Grass') && species.id !== 'rowlet' + ); + } + + + cullMovePool( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + movePool: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): void { + if (moves.size + movePool.length <= this.maxMoveCount) return; + // If we have two unfilled moves and only one unpaired move, cull the unpaired move. + if (moves.size === this.maxMoveCount - 2) { + const unpairedMoves = [...movePool]; + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); + this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); + } + } + if (unpairedMoves.length === 1) { + this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); + } + } + + // These moves are paired, and shouldn't appear if there isn't room for both. + if (moves.size === this.maxMoveCount - 1) { + for (const pair of MOVE_PAIRS) { + if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { + this.fastPop(movePool, movePool.indexOf(pair[0])); + this.fastPop(movePool, movePool.indexOf(pair[1])); + } + } + } + + // Create list of all status moves to be used later + const statusMoves = this.cachedStatusMoves; + + // Team-based move culls + if (teamDetails.screens && movePool.length >= this.maxMoveCount + 2) { + if (movePool.includes('reflect')) this.fastPop(movePool, movePool.indexOf('reflect')); + if (movePool.includes('lightscreen')) this.fastPop(movePool, movePool.indexOf('lightscreen')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stickyWeb) { + if (movePool.includes('stickyweb')) this.fastPop(movePool, movePool.indexOf('stickyweb')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.stealthRock) { + if (movePool.includes('stealthrock')) this.fastPop(movePool, movePool.indexOf('stealthrock')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.defog || teamDetails.rapidSpin) { + if (movePool.includes('defog')) this.fastPop(movePool, movePool.indexOf('defog')); + if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.toxicSpikes) { + if (movePool.includes('toxicspikes')) this.fastPop(movePool, movePool.indexOf('toxicspikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + if (teamDetails.spikes && teamDetails.spikes >= 2) { + if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); + if (moves.size + movePool.length <= this.maxMoveCount) return; + } + + // General incompatibilities + const incompatiblePairs = [ + // These moves don't mesh well with other aspects of the set + [SETUP, 'defog'], + [SETUP, PIVOT_MOVES], + [SETUP, HAZARDS], + [PHYSICAL_SETUP, PHYSICAL_SETUP], + [statusMoves, ['destinybond', 'healingwish', 'switcheroo', 'trick']], + ['curse', 'rapidspin'], + + // These moves are redundant with each other + [ + ['alluringvoice', 'dazzlinggleam', 'drainingkiss', 'moonblast'], + ['alluringvoice', 'dazzlinggleam', 'drainingkiss', 'moonblast'], + ], + [['bulletseed', 'gigadrain', 'leafstorm', 'seedbomb'], ['bulletseed', 'gigadrain', 'leafstorm', 'seedbomb']], + [['hypnosis', 'thunderwave', 'toxic', 'willowisp', 'yawn'], ['hypnosis', 'thunderwave', 'toxic', 'willowisp', 'yawn']], + ['roar', 'yawn'], + ['dragonclaw', 'outrage'], + ['dracometeor', 'dragonpulse'], + ['toxic', 'toxicspikes'], + ['rockblast', 'stoneedge'], + ['bodyslam', 'doubleedge'], + ['gunkshot', 'poisonjab'], + [['hydropump', 'liquidation'], 'surf'], + ]; + + for (const pair of incompatiblePairs) this.incompatibleMoves(moves, movePool, pair[0], pair[1]); + } + + // Generate random moveset for a given species, role, tera type. + randomMoveset( + types: string[], + abilities: string[], + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + movePool: string[], + teraType: string, + role: RandomTeamsTypes.Role, + ): Set { + const moves = new Set(); + let counter = this.queryMoves(moves, species, teraType, abilities); + this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, isDoubles, teraType, role); + + // If there are only four moves, add all moves and return early + if (movePool.length <= this.maxMoveCount) { + for (const moveid of movePool) { + moves.add(moveid); + } + return moves; + } + + // Helper function for (STAB-)move enforcement later on + const runEnforcementChecker = (checkerName: string) => { + if (!this.moveEnforcementCheckers[checkerName]) return false; + return this.moveEnforcementCheckers[checkerName]( + movePool, moves, abilities, types, counter, species, teamDetails, isLead, isDoubles, teraType, role + ); + }; + + if (role === 'Tera Blast user') { + counter = this.addMove('terablast', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Add required move (e.g. Relic Song for Meloetta-P) + if (species.requiredMove) { + const move = this.dex.moves.get(species.requiredMove).id; + counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Add other moves you really want to have, e.g. STAB, recovery, setup. + + // Enforce Facade if Guts is a possible ability + if (movePool.includes('facade') && abilities.includes('Guts')) { + counter = this.addMove('facade', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Enforce Sticky Web + if (movePool.includes('stickyweb')) { + counter = this.addMove('stickyweb', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Enforce Knock Off on most roles + if (movePool.includes('knockoff') && role !== 'Bulky Support') { + counter = this.addMove('knockoff', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + + // Enforce hazard removal on Bulky Support if the team doesn't already have it + if (role === 'Bulky Support' && !teamDetails.defog && !teamDetails.rapidSpin) { + if (movePool.includes('rapidspin')) { + counter = this.addMove('rapidspin', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + if (movePool.includes('defog')) { + counter = this.addMove('defog', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce Knock Off on pure Normal- and Fighting-types + if (types.length === 1 && (types.includes('Normal') || types.includes('Fighting'))) { + if (movePool.includes('knockoff')) { + counter = this.addMove('knockoff', moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce STAB priority + if (role === 'Wallbreaker') { + const priorityMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if ( + types.includes(moveType) && (move.priority > 0 || (moveid === 'grassyglide' && abilities.includes('Grassy Surge'))) && + (move.basePower || move.basePowerCallback) + ) { + priorityMoves.push(moveid); + } + } + if (priorityMoves.length) { + const moveid = this.sample(priorityMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce STAB + for (const type of types) { + // Check if a STAB move of that type should be required + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && type === moveType) { + stabMoves.push(moveid); + } + } + while (runEnforcementChecker(type)) { + if (!stabMoves.length) break; + const moveid = this.sampleNoReplace(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce Tera STAB + if (!counter.get('stabtera') && role !== 'Bulky Support') { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && teraType === moveType) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // If no STAB move was added, add a STAB move + if (!counter.get('stab')) { + const stabMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback) && types.includes(moveType)) { + stabMoves.push(moveid); + } + } + if (stabMoves.length) { + const moveid = this.sample(stabMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce contrary moves + if (abilities.includes('Contrary')) { + const contraryMoves = movePool.filter(moveid => CONTRARY_MOVES.includes(moveid)); + for (const moveid of contraryMoves) { + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce recovery + if (['Bulky Support', 'Bulky Attacker', 'Bulky Setup'].includes(role)) { + const recoveryMoves = movePool.filter(moveid => RECOVERY_MOVES.includes(moveid)); + if (recoveryMoves.length) { + const moveid = this.sample(recoveryMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce setup + if (role.includes('Setup') || role === 'Tera Blast user') { + // First, try to add a non-Speed setup move + const nonSpeedSetupMoves = movePool.filter(moveid => SETUP.includes(moveid) && !SPEED_SETUP.includes(moveid)); + if (nonSpeedSetupMoves.length) { + const moveid = this.sample(nonSpeedSetupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } else { + // No non-Speed setup moves, so add any (Speed) setup move + const setupMoves = movePool.filter(moveid => SETUP.includes(moveid)); + if (setupMoves.length) { + const moveid = this.sample(setupMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + } + + // Enforce a move not on the noSTAB list + if (!counter.damagingMoves.size) { + // Choose an attacking move + const attackingMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + if (!this.noStab.includes(moveid) && (move.category !== 'Status')) attackingMoves.push(moveid); + } + if (attackingMoves.length) { + const moveid = this.sample(attackingMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + + // Enforce coverage move + if (!['Fast Support', 'Bulky Support'].includes(role) || species.id === 'magnemite') { + if (counter.damagingMoves.size === 1) { + // Find the type of the current attacking move + const currentAttackType = counter.damagingMoves.values().next().value.type; + // Choose an attacking move that is of different type to the current single attack + const coverageMoves = []; + for (const moveid of movePool) { + const move = this.dex.moves.get(moveid); + const moveType = this.getMoveType(move, species, abilities, teraType); + if (!this.noStab.includes(moveid) && (move.basePower || move.basePowerCallback)) { + if (currentAttackType !== moveType) coverageMoves.push(moveid); + } + } + if (coverageMoves.length) { + const moveid = this.sample(coverageMoves); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + } + + // Add (moves.size < this.maxMoveCount) as a condition if moves is getting larger than 4 moves. + // If you want moves to be favored but not required, add something like && this.randomChance(1, 2) to your condition. + + // Choose remaining moves randomly from movepool and add them to moves list: + while (moves.size < this.maxMoveCount && movePool.length) { + if (moves.size + movePool.length <= this.maxMoveCount) { + for (const moveid of movePool) { + moves.add(moveid); + } + break; + } + const moveid = this.sample(movePool); + counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + for (const pair of MOVE_PAIRS) { + if (moveid === pair[0] && movePool.includes(pair[1])) { + counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + if (moveid === pair[1] && movePool.includes(pair[0])) { + counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, isDoubles, + movePool, teraType, role); + } + } + } + return moves; + } + + getAbility( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): string { + if (abilities.length <= 1) return abilities[0]; + + // Hard-code abilities here + if (species.id === 'rowlet' && counter.get('Grass')) return 'Overgrow'; + if (species.id === 'riolu') return moves.has('copycat') ? 'Prankster' : 'Inner Focus'; + if (species.id === 'pikipek' && counter.get('skilllink')) return 'Skill Link'; + if (species.id === 'psyduck' && teamDetails.rain) return 'Swift Swim'; + + const abilityAllowed: string[] = []; + // Obtain a list of abilities that are allowed (not culled) + for (const ability of abilities) { + if (!this.shouldCullAbility( + ability, types, moves, abilities, counter, teamDetails, species, isLead, isDoubles, teraType, role + )) { + abilityAllowed.push(ability); + } + } + + // Pick a random allowed ability + if (abilityAllowed.length >= 1) return this.sample(abilityAllowed); + + // If all abilities are rejected, prioritize weather abilities over non-weather abilities + if (!abilityAllowed.length) { + const weatherAbilities = abilities.filter( + a => ['Chlorophyll', 'Hydration', 'Sand Force', 'Sand Rush', 'Slush Rush', 'Solar Power', 'Swift Swim'].includes(a) + ); + if (weatherAbilities.length) return this.sample(weatherAbilities); + } + + // Pick a random ability + return this.sample(abilities); + } + + getPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + isDoubles: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ) { + if (species.requiredItems) { + return this.sample(species.requiredItems); + } + + if (moves.has('focusenergy')) return 'Scope Lens'; + if (moves.has('thief')) return ''; + if (moves.has('trick') || moves.has('switcheroo')) return 'Choice Scarf'; + + if (moves.has('acrobatics')) return ability === 'Unburden' ? 'Oran Berry' : ''; + if (moves.has('auroraveil') || moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; + + if (ability === 'Guts' && moves.has('facade')) return 'Flame Orb'; + if (ability === 'Quick Feet') return 'Toxic Orb'; + + if (['Harvest', 'Ripen', 'Unburden'].includes(ability) || moves.has('bellydrum')) return 'Oran Berry'; + } + + getItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): string { + if (role === 'Fast Attacker' && (!counter.get('Status') || (counter.get('Status') === 1 && moves.has('destinybond')))) { + return 'Choice Scarf'; + } + if (['Setup Sweeper', 'Wallbreaker'].includes(role)) { + return 'Life Orb'; + } + return 'Eviolite'; + } + + getLevel( + species: Species, + ): number { + if (this.adjustLevel) return this.adjustLevel; + // This should frankly always work, but 10 is the default level in case something bad happens + return this.randomSets[species.id]?.level || 10; + } + + getForme(species: Species): string { + if (typeof species.battleOnly === 'string') { + // Only change the forme. The species has custom moves, and may have different typing and requirements. + return species.battleOnly; + } + if (species.cosmeticFormes) return this.sample([species.name].concat(species.cosmeticFormes)); + + // Consolidate mostly-cosmetic formes, at least for the purposes of Random Battles + if (['Poltchageist', 'Sinistea'].includes(species.baseSpecies)) { + return this.sample([species.name].concat(species.otherFormes!)); + } + return species.name; + } + + randomSet( + s: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false, + isDoubles = false + ): RandomTeamsTypes.RandomSet { + const species = this.dex.species.get(s); + const forme = this.getForme(species); + const sets = this.randomSets[species.id]["sets"]; + const possibleSets = []; + + const ruleTable = this.dex.formats.getRuleTable(this.format); + + for (const set of sets) { + // Prevent Tera Blast user if the team already has one, or if Terastallizion is prevented. + if ((teamDetails.teraBlast || ruleTable.has('terastalclause')) && set.role === 'Tera Blast user') { + continue; + } + possibleSets.push(set); + } + const set = this.sampleIfArray(possibleSets); + const role = set.role; + const movePool: string[] = []; + for (const movename of set.movepool) { + movePool.push(this.dex.moves.get(movename).id); + } + const teraTypes = set.teraTypes; + let teraType = this.sampleIfArray(teraTypes); + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const abilities = set.abilities!; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, isDoubles, movePool, teraType!, role); + const counter = this.queryMoves(moves, species, teraType!, abilities); + + // Get ability + ability = this.getAbility(types, moves, abilities, counter, teamDetails, species, isLead, isDoubles, teraType!, role); + + // Get items + // First, the priority items + item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles, teraType!, role); + if (item === undefined) { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, teraType!, role); + } + + // Get level + const level = this.getLevel(species); + + + // Prepare optimal HP for Belly Drum and Life Orb + let hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + let targetHP = hp; + const minimumHP = Math.floor(Math.floor(2 * species.baseStats.hp + 100) * level / 100 + 10); + if (item === "Life Orb") { + targetHP = Math.floor(hp / 10) * 10 - 1; + } else if (moves.has("bellydrum")) { + targetHP = Math.floor(hp / 2) * 2; + } + // If the difference is too extreme, don't adjust HP + if (hp > targetHP && hp - targetHP <= 3 && targetHP >= minimumHP) { + // If setting evs to 0 is sufficient, decrement evs, otherwise decrement ivs with evs set to 0 + if (Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + 100) * level / 100 + 10) >= targetHP) { + evs.hp = 0; + hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + while (hp > targetHP) { + ivs.hp -= 1; + hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + } + } else { + while (hp > targetHP) { + evs.hp -= 4; + hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + } + } + } + + // Minimize confusion damage + const noAttackStatMoves = [...moves].every(m => { + const move = this.dex.moves.get(m); + if (move.damageCallback || move.damage) return true; + if (move.id === 'shellsidearm') return false; + if (move.id === 'terablast' && ( + species.id === 'porygon' || species.baseStats.atk > species.baseStats.spa) + ) return false; + return move.category !== 'Physical' || move.id === 'bodypress' || move.id === 'foulplay'; + }); + + if (noAttackStatMoves) { + evs.atk = 0; + ivs.atk = 0; + } + + if (moves.has('gyroball') || moves.has('trickroom')) { + evs.spe = 0; + ivs.spe = 0; + } + + // Enforce Tera Type after all set generation is done to prevent infinite generation + if (this.forceTeraType) teraType = this.forceTeraType; + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + return { + name: species.baseSpecies, + species: forme, + gender: species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + teraType, + role, + }; + } + + randomSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + + randomBabyTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.seed; + const ruleTable = this.dex.formats.getRuleTable(this.format); + const pokemon: RandomTeamsTypes.RandomSet[] = []; + + // For Monotype + const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); + const typePool = this.dex.types.names().filter(name => name !== "Stellar"); + const type = this.forceMonotype || this.sample(typePool); + + const baseFormes = new Set(); + + const typeCount = new Utils.Multiset(); + const typeComboCount = new Utils.Multiset(); + const typeWeaknesses = new Utils.Multiset(); + const typeDoubleWeaknesses = new Utils.Multiset(); + const teamDetails: RandomTeamsTypes.TeamDetails = {}; + + const pokemonList = Object.keys(this.randomSets); + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, pokemonList); + + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + const baseSpecies = this.sampleNoReplace(baseSpeciesPool); + const species = this.dex.species.get(this.sample(pokemonPool[baseSpecies])); + if (!species.exists) continue; + + // Limit to one of each species (Species Clause) + if (baseFormes.has(species.baseSpecies)) continue; + + // Illusion shouldn't be on the last slot + if (species.baseSpecies === 'Zorua' && pokemon.length >= (this.maxTeamSize - 1)) continue; + + const types = species.types; + const typeCombo = types.slice().sort().join(); + const weakToFreezeDry = ( + this.dex.getEffectiveness('Ice', species) > 0 || + (this.dex.getEffectiveness('Ice', species) > -2 && types.includes('Water')) + ); + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + if (!isMonotype && !this.forceMonotype) { + let skip = false; + + // Limit two of any type + for (const typeName of types) { + if (typeCount.get(typeName) >= 2 * limitFactor) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit three weak to any type, and one double weak to any type + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + if (typeWeaknesses.get(typeName) >= 3 * limitFactor) { + skip = true; + break; + } + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + if (typeDoubleWeaknesses.get(typeName) >= 1 * limitFactor) { + skip = true; + break; + } + } + } + if (skip) continue; + + // Count Dry Skin/Fluffy as Fire weaknesses + if ( + this.dex.getEffectiveness('Fire', species) === 0 && + Object.values(species.abilities).filter(a => ['Dry Skin', 'Fluffy'].includes(a)).length && + typeWeaknesses.get('Fire') >= 3 * limitFactor + ) continue; + + // Limit four weak to Freeze-Dry + if (weakToFreezeDry) { + if (typeWeaknesses.get('Freeze-Dry') >= 4 * limitFactor) continue; + } + } + + // Limit three of any type combination in Monotype + if (!this.forceMonotype && isMonotype && typeComboCount.get(typeCombo) >= 3 * limitFactor) continue; + + const set: RandomTeamsTypes.RandomSet = this.randomSet(species, teamDetails, false, false); + pokemon.push(set); + + + // Don't bother tracking details for the last Pokemon + if (pokemon.length === this.maxTeamSize) break; + + // Now that our Pokemon has passed all checks, we can increment our counters + baseFormes.add(species.baseSpecies); + + // Increment type counters + for (const typeName of types) { + typeCount.add(typeName); + } + typeComboCount.add(typeCombo); + + // Increment weakness counter + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + typeWeaknesses.add(typeName); + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + typeDoubleWeaknesses.add(typeName); + } + } + // Count Dry Skin/Fluffy as Fire weaknesses + if (['Dry Skin', 'Fluffy'].includes(set.ability) && this.dex.getEffectiveness('Fire', species) === 0) { + typeWeaknesses.add('Fire'); + } + if (weakToFreezeDry) typeWeaknesses.add('Freeze-Dry'); + + // Track what the team has + if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; + if (set.ability === 'Drought' || set.moves.includes('sunnyday')) teamDetails.sun = 1; + if (set.ability === 'Sand Stream') teamDetails.sand = 1; + if (set.ability === 'Snow Warning' || set.moves.includes('snowscape') || set.moves.includes('chillyreception')) { + teamDetails.snow = 1; + } + if (set.moves.includes('spikes')) { + teamDetails.spikes = (teamDetails.spikes || 0) + 1; + } + if (set.moves.includes('stealthrock')) teamDetails.stealthRock = 1; + if (set.moves.includes('stickyweb')) teamDetails.stickyWeb = 1; + if (set.moves.includes('toxicspikes') || set.ability === 'Toxic Debris') teamDetails.toxicSpikes = 1; + if (set.moves.includes('defog')) teamDetails.defog = 1; + if (set.moves.includes('rapidspin') || set.moves.includes('mortalspin')) teamDetails.rapidSpin = 1; + if (set.moves.includes('auroraveil') || (set.moves.includes('reflect') && set.moves.includes('lightscreen'))) { + teamDetails.screens = 1; + } + if (set.role === 'Tera Blast user') { + teamDetails.teraBlast = 1; + } + } + // large teams sometimes cannot be built, and monotype is also at user's own risk + if (pokemon.length < this.maxTeamSize && pokemon.length < 12 && !isMonotype) { + throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); + } + + return pokemon; + } +} + +export default RandomBabyTeams; diff --git a/data/random-battles/gen9cap/sets.json b/data/random-battles/gen9cap/sets.json new file mode 100644 index 000000000000..81980e0cbaee --- /dev/null +++ b/data/random-battles/gen9cap/sets.json @@ -0,0 +1,612 @@ +{ + "syclant": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earth Power", "Focus Blast", "Spikes", "Triple Axel", "U-turn"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Fighting", "Ground"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Close Combat", "Earthquake", "Leech Life", "Swords Dance", "Triple Axel"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Fighting", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Bug Buzz", "Earth Power", "Ice Beam", "Tail Glow"], + "abilities": ["Mountaineer"], + "teraTypes": ["Ground"] + } + ] + }, + "revenankh": { + "level": 77, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Moonlight", "Poltergeist"], + "abilities": ["Triage"], + "teraTypes": ["Fairy", "Fighting", "Steel", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Bulk Up", "Drain Punch", "Poltergeist", "Shadow Sneak"], + "abilities": ["Triage"], + "teraTypes": ["Fairy", "Fighting", "Steel", "Water"] + } + ] + }, + "pyroak": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Earth Power", "Energy Ball", "Overheat", "Synthesis"], + "abilities": ["Contrary"], + "teraTypes": ["Fire", "Ground"] + }, + { + "role": "AV Pivot", + "movepool": ["Dragon Tail", "Earth Power", "Giga Drain", "Overheat"], + "abilities": ["Contrary"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "fidgit": { + "level": 86, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Earth Power", "Encore", "Rapid Spin", "Sludge Bomb", "Spikes", "Stealth Rock", "Tailwind", "Toxic Spikes", "U-turn"], + "abilities": ["Frisk", "Persistent"], + "teraTypes": ["Flying", "Steel"] + } + ] + }, + "stratagem": { + "level": 79, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Energy Ball", "Fire Blast", "Paleo Wave", "Trick"], + "abilities": ["Levitate"], + "teraTypes": ["Fire", "Grass", "Rock"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Energy Ball", "Fire Blast", "Meteor Beam", "Paleo Wave"], + "abilities": ["Levitate"], + "teraTypes": ["Fire", "Grass", "Rock"] + } + ] + }, + "arghonaut": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Drain Punch", "Recover", "Waterfall"], + "abilities": ["Unaware"], + "teraTypes": ["Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Circle Throw", "Knock Off", "Recover", "Spikes"], + "abilities": ["Unaware"], + "teraTypes": ["Dark", "Steel"] + } + ] + }, + "kitsunoh": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Close Combat", "Defog", "Encore", "Meteor Mash", "Poltergeist", "Strength Sap", "Trick", "U-turn", "Will-O-Wisp"], + "abilities": ["Trace"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Defog", "Encore", "Meteor Mash", "Poltergeist", "Strength Sap", "U-turn", "Will-O-Wisp"], + "abilities": ["Trace"], + "teraTypes": ["Dark", "Water"] + } + ] + }, + "cyclohm": { + "level": 79, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Defog", "Discharge", "Draco Meteor", "Fire Blast", "Ice Beam", "Slack Off", "Thunderbolt", "Volt Switch"], + "abilities": ["Shield Dust", "Static"], + "teraTypes": ["Electric", "Fairy", "Steel"] + }, + { + "role": "AV Pivot", + "movepool": ["Discharge", "Draco Meteor", "Fire Blast", "Ice Beam", "Thunderbolt", "Volt Switch"], + "abilities": ["Shield Dust", "Static"], + "teraTypes": ["Electric", "Fairy", "Steel"] + } + ] + }, + "colossoil": { + "level": 78, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Facade", "Headlong Rush", "Knock Off", "Rapid Spin", "Sucker Punch", "U-turn"], + "abilities": ["Guts"], + "teraTypes": ["Normal"] + } + ] + }, + "krilowatt": { + "level": 84, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Ice Beam", "Surf", "Volt Switch", "Wild Charge"], + "abilities": ["Magic Guard"], + "teraTypes": ["Electric", "Flying"] + } + ] + }, + "voodoom": { + "level": 81, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Aura Sphere", "Dark Pulse", "Flash Cannon", "Focus Blast", "Nasty Plot", "Vacuum Wave", "Volt Switch"], + "abilities": ["Lightning Rod", "Volt Absorb"], + "teraTypes": ["Steel"] + } + ] + }, + "tomohawk": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Aura Sphere", "Haze", "Hurricane", "Rapid Spin", "Roost"], + "abilities": ["Intimidate", "Prankster"], + "teraTypes": ["Steel"] + } + ] + }, + "necturna": { + "level": 80, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Horn Leech", "Shadow Claw", "Stone Edge", "Victory Dance"], + "abilities": ["Forewarn"], + "teraTypes": ["Fairy", "Rock", "Water"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Horn Leech", "Pain Split", "Rage Fist", "Toxic Spikes", "Will-O-Wisp"], + "abilities": ["Forewarn"], + "teraTypes": ["Fairy", "Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Horn Leech", "Pain Split", "Power Whip", "Shadow Claw", "Shadow Sneak", "Sticky Web", "Toxic Spikes", "Will-O-Wisp"], + "abilities": ["Forewarn"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "mollux": { + "level": 84, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Hydro Pump", "Lava Plume", "Rapid Spin", "Recover", "Sludge Bomb", "Thunder Wave"], + "abilities": ["Dry Skin"], + "teraTypes": ["Grass", "Water"] + }, + { + "role": "Fast Attacker", + "movepool": ["Eruption", "Hydro Pump", "Sludge Wave", "Trick"], + "abilities": ["Dry Skin"], + "teraTypes": ["Fire"] + } + ] + }, + "aurumoth": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bug Buzz", "Focus Blast", "Psyshock", "Tail Glow"], + "abilities": ["No Guard", "Weak Armor"], + "teraTypes": ["Fighting"] + }, + { + "role": "Wallbreaker", + "movepool": ["Blizzard", "Bug Buzz", "Focus Blast", "Hydro Pump", "Overheat", "Psychic", "Psyshock", "Thunder"], + "abilities": ["No Guard"], + "teraTypes": ["Fighting", "Fire"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Close Combat", "Dragon Dance", "Megahorn", "Zen Headbutt"], + "abilities": ["No Guard"], + "teraTypes": ["Fighting"] + } + ] + }, + "malaconda": { + "level": 85, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Glare", "Knock Off", "Parting Shot", "Rapid Spin", "Solar Blade", "Synthesis", "Temper Flare"], + "abilities": ["Drought"], + "teraTypes": ["Poison", "Water"] + }, + { + "role": "Bulky Support", + "movepool": ["Knock Off", "Solar Blade", "Sucker Punch", "Synthesis"], + "abilities": ["Drought"], + "teraTypes": ["Poison", "Water"] + }, + { + "role": "AV Pivot", + "movepool": ["Knock Off", "Rapid Spin", "Solar Blade", "Sucker Punch", "Temper Flare", "U-turn"], + "abilities": ["Drought"], + "teraTypes": ["Fire", "Poison"] + } + ] + }, + "cawmodore": { + "level": 75, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Acrobatics", "Belly Drum", "Bullet Punch", "Drain Punch"], + "abilities": ["Volt Absorb"], + "teraTypes": ["Flying", "Water"] + } + ] + }, + "volkraken": { + "level": 82, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Flamethrower", "Hydro Pump", "Overheat", "U-turn"], + "abilities": ["Analytic"], + "teraTypes": ["Fire", "Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Fire Blast", "Hydro Pump", "Scald", "U-turn"], + "abilities": ["Analytic"], + "teraTypes": ["Fire", "Water"] + } + ] + }, + "plasmanta": { + "level": 86, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Discharge", "Encore", "Sludge Bomb", "Surf", "Taunt", "Thunderbolt"], + "abilities": ["Storm Drain"], + "teraTypes": ["Water"] + } + ] + }, + "naviathan": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Dragon Dance", "Facade", "Heavy Slam", "Wave Crash"], + "abilities": ["Guts"], + "teraTypes": ["Grass", "Normal"] + } + ] + }, + "crucibelle": { + "level": 86, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Gunk Shot", "Knock Off", "Poison Jab", "Stone Edge", "U-turn", "Wood Hammer"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Fast Support", + "movepool": ["Gunk Shot", "Knock Off", "Stealth Rock", "Stone Edge", "Toxic Spikes"], + "abilities": ["Regenerator"], + "teraTypes": ["Dark", "Grass"] + }, + { + "role": "Bulky Setup", + "movepool": ["Coil", "Gunk Shot", "Stone Edge", "Wood Hammer"], + "abilities": ["Regenerator"], + "teraTypes": ["Grass"] + } + ] + }, + "kerfluffle": { + "level": 82, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Aura Sphere", "Encore", "Focus Blast", "Moonblast", "Parting Shot", "Psychic", "Vacuum Wave"], + "abilities": ["Natural Cure"], + "teraTypes": ["Steel"] + } + ] + }, + "pajantom": { + "level": 80, + "sets": [ + { + "role": "Fast Attacker", + "movepool": ["Earthquake", "Leech Life", "Outrage", "Spirit Shackle", "Taunt", "Toxic Spikes"], + "abilities": ["Comatose"], + "teraTypes": ["Fairy", "Ghost"] + } + ] + }, + "jumbao": { + "level": 83, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Focus Blast", "Healing Wish", "Moonblast", "Solar Beam", "Synthesis"], + "abilities": ["Drought"], + "teraTypes": ["Poison", "Water"] + }, + { + "role": "Tera Blast user", + "movepool": ["Healing Wish", "Moonblast", "Solar Beam", "Synthesis", "Tera Blast"], + "abilities": ["Drought"], + "teraTypes": ["Fire", "Ground"] + } + ] + }, + "caribolt": { + "level": 81, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Horn Leech", "Hyper Drill", "Knock Off", "Quick Attack", "Swords Dance"], + "abilities": ["Galvanize"], + "teraTypes": ["Electric"] + }, + { + "role": "Bulky Setup", + "movepool": ["Double-Edge", "Horn Leech", "Rapid Spin", "Swords Dance"], + "abilities": ["Galvanize"], + "teraTypes": ["Electric"] + } + ] + }, + "smokomodo": { + "level": 83, + "sets": [ + { + "role": "Fast Bulky Setup", + "movepool": ["Bone Rush", "Bulk Up", "Flame Charge", "Morning Sun"], + "abilities": ["Technician"], + "teraTypes": ["Grass", "Ground"] + }, + { + "role": "Setup Sweeper", + "movepool": ["Bone Rush", "Bulk Up", "Flame Wheel", "Scale Shot"], + "abilities": ["Technician"], + "teraTypes": ["Dragon"] + }, + { + "role": "Fast Support", + "movepool": ["Bone Rush", "Clear Smog", "Defog", "Flame Wheel", "Morning Sun", "Stealth Rock", "Taunt", "Toxic", "Will-O-Wisp"], + "abilities": ["Technician"], + "teraTypes": ["Grass", "Ground", "Water"] + } + ] + }, + "snaelstrom": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Liquidation", "Rapid Spin", "Stealth Rock", "Sticky Web", "Toxic", "U-turn"], + "abilities": ["Poison Heal"], + "teraTypes": ["Electric", "Ground"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Liquidation", "Recover", "Spiky Shield", "Toxic"], + "abilities": ["Poison Heal"], + "teraTypes": ["Electric", "Ground"] + } + ] + }, + "equilibra": { + "level": 84, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Doom Desire", "Earth Power", "Flash Cannon", "Pain Split", "Rapid Spin"], + "abilities": ["Levitate"], + "teraTypes": ["Electric", "Steel", "Water"] + } + ] + }, + "astrolotl": { + "level": 79, + "sets": [ + { + "role": "Fast Support", + "movepool": ["Defog", "Draco Meteor", "Encore", "Fire Lash", "Spikes", "Thunder Wave", "Will-O-Wisp"], + "abilities": ["Regenerator"], + "teraTypes": ["Fairy", "Steel"] + } + ] + }, + "miasmaw": { + "level": 79, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Earthquake", "Megahorn", "Scale Shot", "Swords Dance"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Dragon", "Steel"] + }, + { + "role": "Fast Bulky Setup", + "movepool": ["Close Combat", "Earthquake", "Gunk Shot", "Scale Shot", "Swords Dance"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Poison"] + }, + { + "role": "Fast Attacker", + "movepool": ["Dragon Rush", "Earthquake", "First Impression", "U-turn"], + "abilities": ["Compound Eyes"], + "teraTypes": ["Bug", "Steel"] + } + ] + }, + "chromera": { + "level": 82, + "sets": [ + { + "role": "Wallbreaker", + "movepool": ["Boomburst", "Dark Pulse", "Recover", "Switcheroo", "Thunderbolt", "Toxic Spikes"], + "abilities": ["Color Change"], + "teraTypes": ["Normal"] + }, + { + "role": "Bulky Setup", + "movepool": ["Boomburst", "Calm Mind", "Dark Pulse", "Recover"], + "abilities": ["Color Change"], + "teraTypes": ["Normal"] + } + ] + }, + "venomicon": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Air Slash", "Body Press", "Hurricane", "Roost", "Sludge Bomb"], + "abilities": ["Stamina"], + "teraTypes": ["Fighting", "Steel"] + }, + { + "role": "Bulky Support", + "movepool": ["Air Slash", "Body Press", "Hurricane", "Knock Off", "Roost"], + "abilities": ["Stamina"], + "teraTypes": ["Fighting", "Steel"] + } + ] + }, + "venomiconepilogue": { + "level": 82, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Brave Bird", "Coil", "Gunk Shot", "Roost", "Toxic Spikes"], + "abilities": ["Tinted Lens"], + "teraTypes": ["Flying", "Poison", "Steel"] + } + ] + }, + "saharaja": { + "level": 80, + "sets": [ + { + "role": "AV Pivot", + "movepool": ["Body Press", "Diamond Storm", "Earthquake", "Rapid Spin"], + "abilities": ["Serene Grace", "Water Absorb"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Body Press", "Diamond Storm", "Earthquake", "Pain Split"], + "abilities": ["Serene Grace", "Water Absorb"], + "teraTypes": ["Fighting"] + }, + { + "role": "Bulky Setup", + "movepool": ["Diamond Storm", "Earthquake", "Pain Split", "Rapid Spin", "Swords Dance"], + "abilities": ["Serene Grace", "Water Absorb"], + "teraTypes": ["Rock", "Steel"] + } + ] + }, + "hemogoblin": { + "level": 78, + "sets": [ + { + "role": "Bulky Setup", + "movepool": ["Bulk Up", "Extreme Speed", "Flare Blitz", "Moonlight"], + "abilities": ["Pixilate"], + "teraTypes": ["Fairy", "Water"] + }, + { + "role": "Wallbreaker", + "movepool": ["Explosion", "Extreme Speed", "Overheat", "Spikes", "Will-O-Wisp"], + "abilities": ["Pixilate"], + "teraTypes": ["Fairy", "Water"] + } + ] + }, + "cresceidon": { + "level": 81, + "sets": [ + { + "role": "Bulky Attacker", + "movepool": ["Encore", "Moonblast", "Recover", "Scald", "Thunder Wave"], + "abilities": ["Multiscale", "Rough Skin"], + "teraTypes": ["Poison", "Steel"] + } + ] + }, + "chuggalong": { + "level": 78, + "sets": [ + { + "role": "Setup Sweeper", + "movepool": ["Clanging Scales", "Clangorous Soul", "Sludge Wave", "Surf"], + "abilities": ["Armor Tail"], + "teraTypes": ["Water"] + } + ] + }, + "shox": { + "level": 80, + "sets": [ + { + "role": "Bulky Support", + "movepool": ["Glare", "Ice Beam", "Milk Drink", "Thunderbolt"], + "abilities": ["Electromorphosis"], + "teraTypes": ["Fairy", "Ghost", "Grass"] + }, + { + "role": "Fast Support", + "movepool": ["Glare", "Ice Beam", "Milk Drink", "Volt Switch"], + "abilities": ["Electromorphosis"], + "teraTypes": ["Flying", "Ghost"] + }, + { + "role": "Bulky Attacker", + "movepool": ["Discharge", "Ice Beam", "Knock Off", "Milk Drink", "Thunderbolt"], + "abilities": ["Electromorphosis"], + "teraTypes": ["Fairy", "Ghost", "Grass"] + } + ] + } +} diff --git a/data/random-battles/gen9cap/teams.ts b/data/random-battles/gen9cap/teams.ts new file mode 100644 index 000000000000..d17bf8b5105b --- /dev/null +++ b/data/random-battles/gen9cap/teams.ts @@ -0,0 +1,389 @@ +import {RandomTeams, MoveCounter} from "../gen9/teams"; + +/** Pokemon who should never be in the lead slot */ +const NO_LEAD_POKEMON = [ + 'Zacian', 'Zamazenta', +]; + +export class RandomCAPTeams extends RandomTeams { + getCAPAbility( + types: string[], + moves: Set, + abilities: string[], + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ): string { + // Hard-code abilities here + if (species.id === 'fidgit') return moves.has('tailwind') ? 'Persistent' : 'Frisk'; + if (species.id === 'tomohawk') return moves.has('haze') ? 'Prankster' : 'Intimidate'; + // Default to regular ability selection + return this.getAbility(types, moves, abilities, counter, teamDetails, species, isLead, false, teraType, role); + } + + getCAPPriorityItem( + ability: string, + types: string[], + moves: Set, + counter: MoveCounter, + teamDetails: RandomTeamsTypes.TeamDetails, + species: Species, + isLead: boolean, + teraType: string, + role: RandomTeamsTypes.Role, + ) { + if (ability === 'Mountaineer') return 'Life Orb'; + } + + getLevel( + species: Species, + isDoubles: boolean, + ): number { + if (this.adjustLevel) return this.adjustLevel; + return (species.num > 0 ? this.randomSets[species.id]["level"] : this.randomCAPSets[species.id]["level"]) || 80; + } + + randomCAPSet( + s: string | Species, + teamDetails: RandomTeamsTypes.TeamDetails = {}, + isLead = false, + isDoubles = false + ): RandomTeamsTypes.RandomSet { + const species = this.dex.species.get(s); + // Generate Non-CAP Pokemon using the regular randomSet() method + if (species.num > 0) return this.randomSet(s, teamDetails, isLead, isDoubles); + const forme = this.getForme(species); + const sets = this.randomCAPSets[species.id]["sets"]; + const possibleSets = []; + + const ruleTable = this.dex.formats.getRuleTable(this.format); + + for (const set of sets) { + // Prevent Fast Bulky Setup on lead Paradox Pokemon, since it generates Booster Energy. + const abilities = new Set(Object.values(species.abilities)); + if (isLead && (abilities.has('Protosynthesis') || abilities.has('Quark Drive')) && set.role === 'Fast Bulky Setup') { + continue; + } + // Prevent Tera Blast user if the team already has one, or if Terastallizion is prevented. + if ((teamDetails.teraBlast || ruleTable.has('terastalclause')) && set.role === 'Tera Blast user') { + continue; + } + possibleSets.push(set); + } + const set = this.sampleIfArray(possibleSets); + const role = set.role; + const movePool: string[] = []; + for (const movename of set.movepool) { + movePool.push(this.dex.moves.get(movename).id); + } + const teraTypes = set.teraTypes; + let teraType = this.sampleIfArray(teraTypes); + + let ability = ''; + let item = undefined; + + const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; + const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; + + const types = species.types; + const abilities = set.abilities!; + + // Get moves + const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, isDoubles, movePool, teraType!, role); + const counter = this.queryMoves(moves, species, teraType!, abilities); + + // Get ability + ability = this.getCAPAbility(types, moves, abilities, counter, teamDetails, species, isLead, teraType!, role); + + // Get items + // First, the priority items + item = this.getCAPPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, teraType!, role); + if (item === undefined) { + item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles, teraType!, role); + } + if (item === undefined) { + item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, teraType!, role); + } + + // Get level + const level = this.getLevel(species, isDoubles); + + // Prepare optimal HP + const srImmunity = ability === 'Magic Guard' || item === 'Heavy-Duty Boots'; + let srWeakness = srImmunity ? 0 : this.dex.getEffectiveness('Rock', species); + // Crash damage move users want an odd HP to survive two misses + if (['axekick', 'highjumpkick', 'jumpkick'].some(m => moves.has(m))) srWeakness = 2; + while (evs.hp > 1) { + const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); + if ((moves.has('substitute') && ['Sitrus Berry', 'Salac Berry'].includes(item))) { + // Two Substitutes should activate Sitrus Berry + if (hp % 4 === 0) break; + } else if ((moves.has('bellydrum') || moves.has('filletaway')) && (item === 'Sitrus Berry' || ability === 'Gluttony')) { + // Belly Drum should activate Sitrus Berry + if (hp % 2 === 0) break; + } else if (moves.has('substitute') && moves.has('endeavor')) { + // Luvdisc should be able to Substitute down to very low HP + if (hp % 4 > 0) break; + } else { + // Maximize number of Stealth Rock switch-ins + if (srWeakness <= 0 || ability === 'Regenerator' || ['Leftovers', 'Life Orb'].includes(item)) break; + if (item !== 'Sitrus Berry' && hp % (4 / srWeakness) > 0) break; + // Minimise number of Stealth Rock switch-ins to activate Sitrus Berry + if (item === 'Sitrus Berry' && hp % (4 / srWeakness) === 0) break; + } + evs.hp -= 4; + } + + // Minimize confusion damage + const noAttackStatMoves = [...moves].every(m => { + const move = this.dex.moves.get(m); + if (move.damageCallback || move.damage) return true; + if (move.id === 'shellsidearm') return false; + // Magearna and doubles Dragonite, though these can work well as a general rule + if (move.id === 'terablast' && ( + species.id === 'porygon2' || moves.has('shiftgear') || species.baseStats.atk > species.baseStats.spa) + ) return false; + return move.category !== 'Physical' || move.id === 'bodypress' || move.id === 'foulplay'; + }); + if (noAttackStatMoves && !moves.has('transform') && this.format.mod !== 'partnersincrime') { + evs.atk = 0; + ivs.atk = 0; + } + + if (moves.has('gyroball') || moves.has('trickroom')) { + evs.spe = 0; + ivs.spe = 0; + } + + // Enforce Tera Type after all set generation is done to prevent infinite generation + if (this.forceTeraType) teraType = this.forceTeraType; + + // shuffle moves to add more randomness to camomons + const shuffledMoves = Array.from(moves); + this.prng.shuffle(shuffledMoves); + return { + name: species.baseSpecies, + species: forme, + gender: species.baseSpecies === 'Greninja' ? 'M' : species.gender, + shiny: this.randomChance(1, 1024), + level, + moves: shuffledMoves, + ability, + evs, + ivs, + item, + teraType, + role, + }; + } + + randomCAPSets: {[species: string]: RandomTeamsTypes.RandomSpeciesData} = require('./sets.json'); + + randomTeam() { + this.enforceNoDirectCustomBanlistChanges(); + + const seed = this.prng.seed; + const ruleTable = this.dex.formats.getRuleTable(this.format); + const pokemon: RandomTeamsTypes.RandomSet[] = []; + + // For Monotype + const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); + const isDoubles = false; + const typePool = this.dex.types.names().filter(name => name !== "Stellar"); + const type = this.forceMonotype || this.sample(typePool); + + const baseFormes: {[k: string]: number} = {}; + + const typeCount: {[k: string]: number} = {}; + const typeComboCount: {[k: string]: number} = {}; + const typeWeaknesses: {[k: string]: number} = {}; + const typeDoubleWeaknesses: {[k: string]: number} = {}; + const teamDetails: RandomTeamsTypes.TeamDetails = {}; + let numMaxLevelPokemon = 0; + + const pokemonList = Object.keys(this.randomSets); + const capPokemonList = Object.keys(this.randomCAPSets); + + const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, pokemonList); + const [capPokemonPool, capBaseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, capPokemonList); + + let leadsRemaining = 1; + while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { + let baseSpecies, species; + // Always generate a CAP Pokemon in slot 2; other slots can randomly generate CAP Pokemon. + if ((pokemon.length === 1 || this.randomChance(1, 5)) && capBaseSpeciesPool.length) { + baseSpecies = this.sampleNoReplace(capBaseSpeciesPool); + species = this.dex.species.get(this.sample(capPokemonPool[baseSpecies])); + } else { + baseSpecies = this.sampleNoReplace(baseSpeciesPool); + species = this.dex.species.get(this.sample(pokemonPool[baseSpecies])); + } + if (!species.exists) continue; + + // Limit to one of each species (Species Clause) + if (baseFormes[species.baseSpecies]) continue; + + // Treat Ogerpon formes and Terapagos like the Tera Blast user role; reject if team has one already + if ((species.baseSpecies === 'Ogerpon' || species.baseSpecies === 'Terapagos') && teamDetails.teraBlast) continue; + + // Illusion shouldn't be on the last slot + if (species.baseSpecies === 'Zoroark' && pokemon.length >= (this.maxTeamSize - 1)) continue; + + const types = species.types; + const typeCombo = types.slice().sort().join(); + const weakToFreezeDry = ( + this.dex.getEffectiveness('Ice', species) > 0 || + (this.dex.getEffectiveness('Ice', species) > -2 && types.includes('Water')) + ); + // Dynamically scale limits for different team sizes. The default and minimum value is 1. + const limitFactor = Math.round(this.maxTeamSize / 6) || 1; + + if (!isMonotype && !this.forceMonotype) { + let skip = false; + + // Limit two of any type + for (const typeName of types) { + if (typeCount[typeName] >= 2 * limitFactor) { + skip = true; + break; + } + } + if (skip) continue; + + // Limit three weak to any type, and one double weak to any type + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; + if (typeWeaknesses[typeName] >= 3 * limitFactor) { + skip = true; + break; + } + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + if (!typeDoubleWeaknesses[typeName]) typeDoubleWeaknesses[typeName] = 0; + if (typeDoubleWeaknesses[typeName] >= 1 * limitFactor) { + skip = true; + break; + } + } + } + if (skip) continue; + + // Count Dry Skin/Fluffy as Fire weaknesses + if ( + this.dex.getEffectiveness('Fire', species) === 0 && + Object.values(species.abilities).filter(a => ['Dry Skin', 'Fluffy'].includes(a)).length + ) { + if (!typeWeaknesses['Fire']) typeWeaknesses['Fire'] = 0; + if (typeWeaknesses['Fire'] >= 3 * limitFactor) continue; + } + + // Limit four weak to Freeze-Dry + if (weakToFreezeDry) { + if (!typeWeaknesses['Freeze-Dry']) typeWeaknesses['Freeze-Dry'] = 0; + if (typeWeaknesses['Freeze-Dry'] >= 4 * limitFactor) continue; + } + + // Limit one level 100 Pokemon + if (!this.adjustLevel && (this.getLevel(species, isDoubles) === 100) && numMaxLevelPokemon >= limitFactor) { + continue; + } + } + + // Limit three of any type combination in Monotype + if (!this.forceMonotype && isMonotype && (typeComboCount[typeCombo] >= 3 * limitFactor)) continue; + + let set: RandomTeamsTypes.RandomSet; + + if (leadsRemaining) { + if (NO_LEAD_POKEMON.includes(species.baseSpecies)) { + if (pokemon.length + leadsRemaining === this.maxTeamSize) continue; + set = this.randomCAPSet(species, teamDetails, false, isDoubles); + pokemon.push(set); + } else { + set = this.randomCAPSet(species, teamDetails, true, isDoubles); + pokemon.unshift(set); + leadsRemaining--; + } + } else { + set = this.randomCAPSet(species, teamDetails, false, isDoubles); + pokemon.push(set); + } + + // Don't bother tracking details for the last Pokemon + if (pokemon.length === this.maxTeamSize) break; + + // Now that our Pokemon has passed all checks, we can increment our counters + baseFormes[species.baseSpecies] = 1; + + // Increment type counters + for (const typeName of types) { + if (typeName in typeCount) { + typeCount[typeName]++; + } else { + typeCount[typeName] = 1; + } + } + if (typeCombo in typeComboCount) { + typeComboCount[typeCombo]++; + } else { + typeComboCount[typeCombo] = 1; + } + + // Increment weakness counter + for (const typeName of this.dex.types.names()) { + // it's weak to the type + if (this.dex.getEffectiveness(typeName, species) > 0) { + typeWeaknesses[typeName]++; + } + if (this.dex.getEffectiveness(typeName, species) > 1) { + typeDoubleWeaknesses[typeName]++; + } + } + // Count Dry Skin/Fluffy as Fire weaknesses + if (['Dry Skin', 'Fluffy'].includes(set.ability) && this.dex.getEffectiveness('Fire', species) === 0) { + typeWeaknesses['Fire']++; + } + if (weakToFreezeDry) typeWeaknesses['Freeze-Dry']++; + + // Increment level 100 counter + if (set.level === 100) numMaxLevelPokemon++; + + // Track what the team has + if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; + if (set.ability === 'Drought' || set.ability === 'Orichalcum Pulse' || set.moves.includes('sunnyday')) { + teamDetails.sun = 1; + } + if (set.ability === 'Sand Stream') teamDetails.sand = 1; + if (set.ability === 'Snow Warning' || set.moves.includes('snowscape') || set.moves.includes('chillyreception')) { + teamDetails.snow = 1; + } + if (set.moves.includes('healbell')) teamDetails.statusCure = 1; + if (set.moves.includes('spikes') || set.moves.includes('ceaselessedge')) { + teamDetails.spikes = (teamDetails.spikes || 0) + 1; + } + if (set.moves.includes('toxicspikes') || set.ability === 'Toxic Debris') teamDetails.toxicSpikes = 1; + if (set.moves.includes('stealthrock') || set.moves.includes('stoneaxe')) teamDetails.stealthRock = 1; + if (set.moves.includes('stickyweb')) teamDetails.stickyWeb = 1; + if (set.moves.includes('defog')) teamDetails.defog = 1; + if (set.moves.includes('rapidspin') || set.moves.includes('mortalspin')) teamDetails.rapidSpin = 1; + if (set.moves.includes('auroraveil') || (set.moves.includes('reflect') && set.moves.includes('lightscreen'))) { + teamDetails.screens = 1; + } + if (set.role === 'Tera Blast user' || species.baseSpecies === "Ogerpon" || species.baseSpecies === "Terapagos") { + teamDetails.teraBlast = 1; + } + } + if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { // large teams sometimes cannot be built + throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); + } + + return pokemon; + } +} + +export default RandomCAPTeams; diff --git a/data/random-battles/randomroulette/teams.ts b/data/random-battles/randomroulette/teams.ts new file mode 100644 index 000000000000..47379682cddb --- /dev/null +++ b/data/random-battles/randomroulette/teams.ts @@ -0,0 +1,5 @@ +import RandomTeams from '../gen9/teams'; + +export class RandomRandomRouletteTeams extends RandomTeams {} + +export default RandomRandomRouletteTeams; diff --git a/data/mods/sharedpower/random-teams.ts b/data/random-battles/sharedpower/teams.ts similarity index 68% rename from data/mods/sharedpower/random-teams.ts rename to data/random-battles/sharedpower/teams.ts index db19a3c76ce9..0163a1bef994 100644 --- a/data/mods/sharedpower/random-teams.ts +++ b/data/random-battles/sharedpower/teams.ts @@ -1,4 +1,4 @@ -import RandomTeams from '../../random-teams'; +import RandomTeams from '../gen9/teams'; export class RandomSharedPowerTeams extends RandomTeams {} diff --git a/data/random-sets.json b/data/random-sets.json deleted file mode 100644 index b00736d25803..000000000000 --- a/data/random-sets.json +++ /dev/null @@ -1,4150 +0,0 @@ -{ - "charizard": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Earthquake", "Flamethrower", "Focus Blast", "Hurricane", "Will-O-Wisp"], - "teraTypes": ["Fire", "Ground", "Water"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Dragon Dance", "Earthquake", "Flare Blitz", "Swords Dance", "Thunder Punch"], - "teraTypes": ["Fire", "Ground"] - } - ] - }, - "pikachu": { - "level": 93, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Fake Out", "Play Rough", "Surf", "Volt Switch", "Volt Tackle"], - "teraTypes": ["Water"] - } - ] - }, - "raichu": { - "level": 88, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Encore", "Focus Blast", "Grass Knot", "Nasty Plot", "Nuzzle", "Surf", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Water", "Grass"] - } - ] - }, - "raichualola": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Focus Blast", "Grass Knot", "Nasty Plot", "Psychic", "Psyshock", "Surf", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Water", "Grass", "Fighting"] - } - ] - }, - "wigglytuff": { - "level": 94, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Dazzling Gleam", "Fire Blast", "Light Screen", "Protect", "Reflect", "Stealth Rock", "Thunder Wave", "Wish"], - "teraTypes": ["Steel"] - } - ] - }, - "venomoth": { - "level": 85, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Bug Buzz", "Quiver Dance", "Sleep Powder", "Sludge Bomb", "Substitute"], - "teraTypes": ["Bug", "Poison"] - } - ] - }, - "dugtrio": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Earthquake", "Memento", "Stealth Rock", "Stone Edge", "Sucker Punch", "Swords Dance"], - "teraTypes": ["Ground", "Ghost", "Fairy", "Flying", "Dark"] - } - ] - }, - "dugtrioalola": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Earthquake", "Iron Head", "Stealth Rock", "Stone Edge", "Sucker Punch", "Swords Dance"], - "teraTypes": ["Ground", "Steel"] - } - ] - }, - "persian": { - "level": 92, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aerial Ace", "Bite", "Body Slam", "Fake Out", "Foul Play", "Gunk Shot", "Switcheroo", "U-turn"], - "teraTypes": ["Normal", "Poison", "Flying"] - } - ] - }, - "persianalola": { - "level": 87, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Dark Pulse", "Hypnosis", "Nasty Plot", "Power Gem", "Thunderbolt"], - "teraTypes": ["Dark", "Electric"] - } - ] - }, - "golduck": { - "level": 90, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Encore", "Grass Knot", "Hydro Pump", "Ice Beam", "Nasty Plot", "Psyshock"], - "teraTypes": ["Water"] - } - ] - }, - "annihilape": { - "level": 77, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Bulk Up", "Drain Punch", "Rage Fist", "Rest"], - "teraTypes": ["Ghost", "Water", "Fairy", "Steel"] - }, - { - "role": "Bulky Setup", - "movepool": ["Bulk Up", "Drain Punch", "Gunk Shot", "Rage Fist", "Stone Edge", "Taunt"], - "teraTypes": ["Ghost", "Water", "Fairy", "Steel"] - } - ] - }, - "arcanine": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Morning Sun", "Roar", "Wild Charge", "Will-O-Wisp"], - "teraTypes": ["Fighting", "Normal"] - }, - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Morning Sun", "Wild Charge"], - "teraTypes": ["Fighting", "Normal"] - } - ] - }, - "arcaninehisui": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Extreme Speed", "Flare Blitz", "Head Smash", "Morning Sun", "Wild Charge"], - "teraTypes": ["Rock"] - } - ] - }, - "slowbro": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Calm Mind", "Psyshock", "Slack Off", "Surf", "Thunder Wave"], - "teraTypes": ["Water", "Fairy"] - }, - { - "role": "AV Pivot", - "movepool": ["Body Press", "Fire Blast", "Future Sight", "Ice Beam", "Psychic", "Surf"], - "teraTypes": ["Fighting", "Water"] - } - ] - }, - "slowbrogalar": { - "level": 86, - "sets": [ - { - "role": "AV Pivot", - "movepool": ["Earthquake", "Fire Blast", "Foul Play", "Psychic", "Shell Side Arm", "Surf"], - "teraTypes": ["Ground", "Water", "Poison", "Dark"] - }, - { - "role": "Wallbreaker", - "movepool": ["Fire Blast", "Psyshock", "Sludge Bomb", "Trick", "Trick Room"], - "teraTypes": ["Psychic", "Poison"] - } - ] - }, - "muk": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Fire Punch", "Gunk Shot", "Haze", "Ice Punch", "Shadow Sneak", "Toxic", "Toxic Spikes"], - "teraTypes": ["Poison", "Dark"] - } - ] - }, - "mukalola": { - "level": 84, - "sets": [ - { - "role": "AV Pivot", - "movepool": ["Fire Punch", "Gunk Shot", "Ice Punch", "Knock Off", "Poison Jab"], - "teraTypes": ["Dark"] - } - ] - }, - "cloyster": { - "level": 78, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Drill Run", "Icicle Spear", "Rock Blast", "Shell Smash"], - "teraTypes": ["Ground"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Hydro Pump", "Icicle Spear", "Rock Blast", "Shell Smash"], - "teraTypes": ["Ice", "Rock"] - } - ] - }, - "gengar": { - "level": 81, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Focus Blast", "Nasty Plot", "Shadow Ball", "Sludge Bomb", "Trick"], - "teraTypes": ["Ghost"] - }, - { - "role": "Fast Attacker", - "movepool": ["Encore", "Focus Blast", "Shadow Ball", "Sludge Bomb", "Toxic Spikes", "Will-O-Wisp"], - "teraTypes": ["Ghost"] - } - ] - }, - "hypno": { - "level": 93, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Encore", "Focus Blast", "Foul Play", "Light Screen", "Psychic", "Reflect", "Thunder Wave"], - "teraTypes": ["Dark", "Steel"] - } - ] - }, - "electrode": { - "level": 92, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Explosion", "Foul Play", "Taunt", "Thunder Wave", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric"] - } - ] - }, - "electrodehisui": { - "level": 88, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Energy Ball", "Leaf Storm", "Taunt", "Thunder Wave", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Grass"] - }, - { - "role": "Fast Support", - "movepool": ["Giga Drain", "Leech Seed", "Substitute", "Thunderbolt"], - "teraTypes": ["Poison"] - } - ] - }, - "scyther": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aerial Ace", "Close Combat", "Pounce", "Swords Dance", "U-turn"], - "teraTypes": ["Fighting"] - } - ] - }, - "tauros": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Body Slam", "Close Combat", "Earthquake", "Rock Slide", "Zen Headbutt"], - "teraTypes": ["Normal", "Fighting", "Ground"] - }, - { - "role": "Wallbreaker", - "movepool": ["Close Combat", "Double-Edge", "Earthquake", "Stone Edge"], - "teraTypes": ["Normal", "Fighting", "Ground"] - } - ] - }, - "taurospaldeacombat": { - "level": 84, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Bulk Up", "Raging Bull", "Stone Edge", "Substitute"], - "teraTypes": ["Fighting"] - }, - { - "role": "Wallbreaker", - "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Iron Head", "Stone Edge"], - "teraTypes": ["Fighting"] - } - ] - }, - "taurospaldeablaze": { - "level": 82, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Bulk Up", "Close Combat", "Raging Bull", "Substitute"], - "teraTypes": ["Fire"] - }, - { - "role": "Wallbreaker", - "movepool": ["Close Combat", "Flare Blitz", "Stone Edge", "Wild Charge"], - "teraTypes": ["Fighting"] - } - ] - }, - "taurospaldeaaqua": { - "level": 83, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Bulk Up", "Close Combat", "Liquidation", "Substitute"], - "teraTypes": ["Water"] - }, - { - "role": "Wallbreaker", - "movepool": ["Aqua Jet", "Bulk Up", "Close Combat", "Liquidation", "Stone Edge", "Wave Crash"], - "teraTypes": ["Water"] - } - ] - }, - "gyarados": { - "level": 79, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Dragon Dance", "Earthquake", "Stone Edge", "Waterfall"], - "teraTypes": ["Ground"] - }, - { - "role": "Tera Blast user", - "movepool": ["Dragon Dance", "Earthquake", "Tera Blast", "Waterfall"], - "teraTypes": ["Flying"] - } - ] - }, - "ditto": { - "level": 87, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Transform"], - "teraTypes": ["Flying", "Dark", "Fire", "Bug", "Water", "Ice", "Fighting", "Electric", "Psychic", "Poison", "Grass", "Ghost", "Ground", "Rock", "Fairy", "Steel", "Normal", "Dragon"] - } - ] - }, - "vaporeon": { - "level": 85, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Calm Mind", "Ice Beam", "Protect", "Surf", "Wish"], - "teraTypes": ["Ghost", "Ground"] - } - ] - }, - "jolteon": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Hyper Voice", "Shadow Ball", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric", "Ghost"] - }, - { - "role": "Tera Blast user", - "movepool": ["Calm Mind", "Substitute", "Tera Blast", "Thunderbolt"], - "teraTypes": ["Ice"] - } - ] - }, - "flareon": { - "level": 89, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Facade", "Flare Blitz", "Quick Attack", "Trailblaze", "Will-O-Wisp"], - "teraTypes": ["Normal"] - } - ] - }, - "articuno": { - "level": 87, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Air Slash", "Freeze-Dry", "Haze", "Hurricane", "Roost", "Substitute", "U-turn"], - "teraTypes": ["Flying", "Steel", "Ground"] - } - ] - }, - "articunogalar": { - "level": 83, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Air Slash", "Calm Mind", "Freezing Glare", "Hurricane", "Recover"], - "teraTypes": ["Psychic", "Steel"] - } - ] - }, - "zapdos": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Discharge", "Heat Wave", "Hurricane", "Roost", "U-turn"], - "teraTypes": ["Electric"] - } - ] - }, - "zapdosgalar": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Brave Bird", "Bulk Up", "Close Combat", "Stomping Tantrum", "U-turn"], - "teraTypes": ["Fighting"] - } - ] - }, - "moltres": { - "level": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Brave Bird", "Fire Blast", "Roost", "U-turn", "Will-O-Wisp"], - "teraTypes": ["Fire", "Ground"] - } - ] - }, - "moltresgalar": { - "level": 80, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Agility", "Fiery Wrath", "Hurricane", "Nasty Plot", "Rest"], - "teraTypes": ["Dark"] - } - ] - }, - "dragonite": { - "level": 75, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Dragon Dance", "Earthquake", "Extreme Speed", "Fire Punch", "Outrage"], - "teraTypes": ["Normal"] - }, - { - "role": "Tera Blast user", - "movepool": ["Dragon Dance", "Earthquake", "Outrage", "Tera Blast"], - "teraTypes": ["Flying"] - } - ] - }, - "mewtwo": { - "level": 72, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aura Sphere", "Fire Blast", "Nasty Plot", "Psystrike", "Recover", "Shadow Ball"], - "teraTypes": ["Psychic", "Fighting", "Fire", "Ghost"] - } - ] - }, - "mew": { - "level": 81, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Psychic", "Spikes", "Stealth Rock", "Taunt", "Thunder Wave", "Toxic Spikes", "Will-O-Wisp"], - "teraTypes": ["Steel", "Fairy"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Brave Bird", "Close Combat", "Flare Blitz", "Leech Life", "Psychic Fangs", "Swords Dance"], - "teraTypes": ["Fighting"] - }, - { - "role": "Fast Bulky Setup", - "movepool": ["Aura Sphere", "Dazzling Gleam", "Earth Power", "Fire Blast", "Nasty Plot", "Psyshock", "Shadow Ball"], - "teraTypes": ["Psychic", "Fighting", "Fire", "Ghost", "Ground", "Fairy"] - } - ] - }, - "typhlosion": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Eruption", "Fire Blast", "Focus Blast", "Shadow Ball"], - "teraTypes": ["Fire", "Ghost"] - } - ] - }, - "typhlosionhisui": { - "level": 84, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Calm Mind", "Flamethrower", "Shadow Ball", "Substitute", "Will-O-Wisp"], - "teraTypes": ["Ghost"] - }, - { - "role": "Fast Attacker", - "movepool": ["Eruption", "Fire Blast", "Focus Blast", "Shadow Ball"], - "teraTypes": ["Fire", "Ghost"] - } - ] - }, - "ampharos": { - "level": 88, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Agility", "Dazzling Gleam", "Focus Blast", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric", "Fairy"] - } - ] - }, - "azumarill": { - "level": 82, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Aqua Jet", "Belly Drum", "Liquidation", "Play Rough"], - "teraTypes": ["Water"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Aqua Jet", "Ice Spinner", "Liquidation", "Play Rough", "Superpower"], - "teraTypes": ["Water"] - } - ] - }, - "sudowoodo": { - "level": 91, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Earthquake", "Head Smash", "Spikes", "Stealth Rock", "Sucker Punch", "Wood Hammer"], - "teraTypes": ["Rock", "Grass"] - } - ] - }, - "jumpluff": { - "level": 86, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Acrobatics", "Leech Seed", "Strength Sap", "Substitute"], - "teraTypes": ["Steel"] - }, - { - "role": "Fast Support", - "movepool": ["Acrobatics", "Encore", "Sleep Powder", "Strength Sap", "U-turn"], - "teraTypes": ["Steel"] - } - ] - }, - "sunflora": { - "level": 98, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Dazzling Gleam", "Earth Power", "Leaf Storm", "Sludge Bomb"], - "teraTypes": ["Grass", "Ground", "Fairy", "Poison"] - } - ] - }, - "quagsire": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Ice Beam", "Liquidation", "Recover", "Spikes", "Toxic"], - "teraTypes": ["Poison", "Steel", "Fairy"] - } - ] - }, - "clodsire": { - "level": 81, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Curse", "Earthquake", "Gunk Shot", "Recover"], - "teraTypes": ["Ground", "Flying"] - }, - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Haze", "Poison Jab", "Recover", "Spikes", "Toxic", "Toxic Spikes"], - "teraTypes": ["Ground", "Flying", "Steel"] - } - ] - }, - "espeon": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Dazzling Gleam", "Morning Sun", "Psychic", "Shadow Ball", "Trick"], - "teraTypes": ["Fairy", "Psychic"] - } - ] - }, - "umbreon": { - "level": 85, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Foul Play", "Protect", "Thunder Wave", "Wish", "Yawn"], - "teraTypes": ["Poison"] - } - ] - }, - "slowking": { - "level": 86, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Chilly Reception", "Psyshock", "Slack Off", "Surf", "Thunder Wave"], - "teraTypes": ["Water", "Fairy", "Dragon"] - }, - { - "role": "Wallbreaker", - "movepool": ["Fire Blast", "Hydro Pump", "Ice Beam", "Psychic", "Psyshock", "Trick Room"], - "teraTypes": ["Water", "Psychic"] - } - ] - }, - "slowkinggalar": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Chilly Reception", "Fire Blast", "Psyshock", "Slack Off", "Sludge Bomb", "Thunder Wave"], - "teraTypes": ["Poison", "Dark"] - }, - { - "role": "AV Pivot", - "movepool": ["Fire Blast", "Future Sight", "Ice Beam", "Psyshock", "Sludge Bomb"], - "teraTypes": ["Poison", "Psychic"] - } - ] - }, - "girafarig": { - "level": 88, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Dazzling Gleam", "Nasty Plot", "Psychic", "Psyshock", "Shadow Ball", "Thunderbolt"], - "teraTypes": ["Psychic", "Fairy", "Electric"] - } - ] - }, - "forretress": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Body Press", "Iron Head", "Rapid Spin", "Spikes", "Stealth Rock", "Volt Switch"], - "teraTypes": ["Water"] - } - ] - }, - "dunsparce": { - "level": 86, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Slam", "Coil", "Earthquake", "Roost"], - "teraTypes": ["Ground"] - } - ] - }, - "qwilfish": { - "level": 86, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Destiny Bond", "Gunk Shot", "Spikes", "Taunt", "Thunder Wave", "Toxic Spikes", "Waterfall"], - "teraTypes": ["Water", "Dark"] - } - ] - }, - "qwilfishhisui": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Crunch", "Gunk Shot", "Spikes", "Taunt", "Toxic Spikes"], - "teraTypes": ["Poison", "Flying"] - } - ] - }, - "overqwil": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Crunch", "Gunk Shot", "Liquidation", "Swords Dance"], - "teraTypes": ["Water"] - } - ] - }, - "scizor": { - "level": 81, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Bullet Punch", "Close Combat", "Defog", "U-turn"], - "teraTypes": ["Steel"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Bullet Punch", "Close Combat", "Pounce", "Swords Dance"], - "teraTypes": ["Steel"] - } - ] - }, - "heracross": { - "level": 82, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Close Combat", "Facade", "Throat Chop", "Trailblaze"], - "teraTypes": ["Normal"] - }, - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Earthquake", "Megahorn", "Stone Edge", "Throat Chop"], - "teraTypes": ["Rock", "Bug", "Fighting"] - } - ] - }, - "ursaring": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Slam", "Crunch", "Earthquake", "Rest", "Sleep Talk"], - "teraTypes": ["Ground", "Ghost"] - } - ] - }, - "delibird": { - "level": 100, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Brave Bird", "Drill Run", "Ice Shard", "Ice Spinner"], - "teraTypes": ["Ice", "Flying", "Ground"] - }, - { - "role": "Fast Support", - "movepool": ["Freeze-Dry", "Memento", "Rapid Spin", "Spikes"], - "teraTypes": ["Ghost"] - } - ] - }, - "houndoom": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Fire Blast", "Nasty Plot", "Sludge Bomb", "Sucker Punch"], - "teraTypes": ["Dark", "Poison", "Fire"] - } - ] - }, - "donphan": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Ice Spinner", "Knock Off", "Rapid Spin", "Stealth Rock"], - "teraTypes": ["Grass", "Ghost"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Earthquake", "Gunk Shot", "Ice Shard", "Ice Spinner", "Knock Off", "Rapid Spin", "Stone Edge"], - "teraTypes": ["Ice", "Poison", "Dark"] - } - ] - }, - "blissey": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Seismic Toss", "Soft-Boiled", "Stealth Rock", "Thunder Wave"], - "teraTypes": ["Steel", "Fairy", "Ghost", "Poison"] - } - ] - }, - "tyranitar": { - "level": 81, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Crunch", "Dragon Dance", "Earthquake", "Fire Punch", "Stone Edge"], - "teraTypes": ["Rock", "Ghost"] - }, - { - "role": "Bulky Support", - "movepool": ["Crunch", "Earthquake", "Fire Blast", "Ice Beam", "Stealth Rock", "Stone Edge", "Thunder Wave"], - "teraTypes": ["Rock", "Poison"] - } - ] - }, - "pelipper": { - "level": 85, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Hurricane", "Hydro Pump", "Ice Beam", "Knock Off", "Roost", "Surf", "U-turn"], - "teraTypes": ["Water", "Ground"] - }, - { - "role": "Wallbreaker", - "movepool": ["Hurricane", "Hydro Pump", "Ice Beam", "Surf", "U-turn"], - "teraTypes": ["Water", "Flying"] - } - ] - }, - "gardevoir": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Focus Blast", "Healing Wish", "Moonblast", "Mystical Fire", "Psychic", "Psyshock", "Trick"], - "teraTypes": ["Fairy", "Fire", "Fighting"] - } - ] - }, - "masquerain": { - "level": 88, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Bug Buzz", "Hurricane", "Hydro Pump", "Quiver Dance"], - "teraTypes": ["Water"] - }, - { - "role": "Fast Support", - "movepool": ["Bug Buzz", "Hurricane", "Hydro Pump", "Ice Beam", "Sticky Web", "Stun Spore", "U-turn"], - "teraTypes": ["Ground", "Steel"] - } - ] - }, - "breloom": { - "level": 81, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Bullet Seed", "Close Combat", "Mach Punch", "Rock Tomb", "Spore", "Swords Dance"], - "teraTypes": ["Fighting"] - } - ] - }, - "vigoroth": { - "level": 88, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Slam", "Bulk Up", "Earthquake", "Slack Off", "Throat Chop"], - "teraTypes": ["Ghost", "Ground"] - } - ] - }, - "slaking": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Body Slam", "Earthquake", "Giga Impact", "Throat Chop"], - "teraTypes": ["Normal", "Ground", "Ghost"] - } - ] - }, - "hariyama": { - "level": 88, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Bulk Up", "Bullet Punch", "Close Combat", "Facade", "Headlong Rush", "Knock Off"], - "teraTypes": ["Normal"] - }, - { - "role": "AV Pivot", - "movepool": ["Bullet Punch", "Close Combat", "Headlong Rush", "Heavy Slam", "Knock Off"], - "teraTypes": ["Steel"] - } - ] - }, - "sableye": { - "level": 90, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Encore", "Foul Play", "Knock Off", "Recover", "Taunt", "Thunder Wave", "Will-O-Wisp"], - "teraTypes": ["Steel"] - } - ] - }, - "medicham": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Bullet Punch", "Close Combat", "Ice Punch", "Poison Jab", "Zen Headbutt"], - "teraTypes": ["Fighting"] - } - ] - }, - "swalot": { - "level": 90, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Encore", "Ice Beam", "Pain Split", "Protect", "Sludge Bomb", "Toxic", "Toxic Spikes"], - "teraTypes": ["Dark"] - }, - { - "role": "Bulky Setup", - "movepool": ["Earthquake", "Gunk Shot", "Seed Bomb", "Swords Dance"], - "teraTypes": ["Poison", "Ground", "Grass", "Dark"] - } - ] - }, - "camerupt": { - "level": 90, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Lava Plume", "Stealth Rock", "Yawn"], - "teraTypes": ["Water"] - } - ] - }, - "torkoal": { - "level": 87, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Lava Plume", "Rapid Spin", "Solar Beam", "Stealth Rock", "Yawn"], - "teraTypes": ["Dragon", "Fire"] - } - ] - }, - "grumpig": { - "level": 91, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Dazzling Gleam", "Earth Power", "Focus Blast", "Nasty Plot", "Psychic", "Psyshock", "Shadow Ball", "Trick"], - "teraTypes": ["Psychic", "Fairy", "Ground", "Ghost", "Fighting"] - } - ] - }, - "cacturne": { - "level": 91, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Focus Blast", "Leaf Storm", "Sucker Punch", "Toxic Spikes"], - "teraTypes": ["Dark", "Poison", "Grass"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Drain Punch", "Seed Bomb", "Sucker Punch", "Swords Dance"], - "teraTypes": ["Dark", "Fighting"] - } - ] - }, - "altaria": { - "level": 87, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Brave Bird", "Defog", "Earthquake", "Haze", "Roost", "Will-O-Wisp"], - "teraTypes": ["Steel"] - }, - { - "role": "Bulky Setup", - "movepool": ["Brave Bird", "Dragon Dance", "Earthquake", "Roost"], - "teraTypes": ["Flying", "Ground"] - } - ] - }, - "zangoose": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Facade", "Night Slash", "Quick Attack", "Swords Dance"], - "teraTypes": ["Normal"] - } - ] - }, - "seviper": { - "level": 91, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Earthquake", "Flamethrower", "Giga Drain", "Glare", "Gunk Shot", "Switcheroo"], - "teraTypes": ["Ground", "Fire", "Poison", "Grass"] - } - ] - }, - "whiscash": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Liquidation", "Spikes", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Ground", "Steel"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Dragon Dance", "Earthquake", "Liquidation", "Stone Edge"], - "teraTypes": ["Ground", "Water"] - } - ] - }, - "banette": { - "level": 93, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Gunk Shot", "Knock Off", "Shadow Claw", "Shadow Sneak", "Swords Dance", "Thunder Wave", "Will-O-Wisp"], - "teraTypes": ["Poison", "Dark"] - } - ] - }, - "tropius": { - "level": 89, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Air Slash", "Leech Seed", "Protect", "Substitute"], - "teraTypes": ["Steel"] - } - ] - }, - "glalie": { - "level": 94, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Disable", "Earthquake", "Freeze-Dry", "Spikes", "Taunt"], - "teraTypes": ["Poison", "Steel", "Water", "Ground"] - } - ] - }, - "luvdisc": { - "level": 100, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Charm", "Ice Beam", "Protect", "Surf", "Wish"], - "teraTypes": ["Dragon", "Ghost"] - } - ] - }, - "salamence": { - "level": 78, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Dragon Dance", "Dual Wingbeat", "Earthquake", "Outrage", "Roost"], - "teraTypes": ["Flying", "Ground", "Dragon"] - } - ] - }, - "kyogre": { - "level": 71, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Calm Mind", "Ice Beam", "Origin Pulse", "Thunder", "Water Spout"], - "teraTypes": ["Water"] - } - ] - }, - "groudon": { - "level": 74, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Lava Plume", "Precipice Blades", "Spikes", "Stealth Rock", "Stone Edge", "Thunder Wave"], - "teraTypes": ["Fire", "Dragon", "Water", "Ghost"] - }, - { - "role": "Bulky Setup", - "movepool": ["Fire Punch", "Precipice Blades", "Stone Edge", "Swords Dance", "Thunder Wave"], - "teraTypes": ["Ground", "Fire"] - } - ] - }, - "rayquaza": { - "level": 72, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dragon Ascent", "Dragon Dance", "Earthquake", "Extreme Speed", "Swords Dance", "U-turn"], - "teraTypes": ["Flying", "Normal"] - } - ] - }, - "staraptor": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Brave Bird", "Close Combat", "Double-Edge", "Quick Attack", "U-turn"], - "teraTypes": ["Fighting"] - } - ] - }, - "kricketune": { - "level": 95, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Brick Break", "Pounce", "Sticky Web", "Taunt"], - "teraTypes": ["Ghost"] - } - ] - }, - "luxray": { - "level": 88, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Crunch", "Facade", "Play Rough", "Trailblaze", "Wild Charge"], - "teraTypes": ["Normal"] - }, - { - "role": "AV Pivot", - "movepool": ["Crunch", "Ice Fang", "Play Rough", "Volt Switch", "Wild Charge"], - "teraTypes": ["Electric", "Fairy"] - } - ] - }, - "vespiquen": { - "level": 96, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Air Slash", "Roost", "Spikes", "Toxic", "Toxic Spikes", "U-turn"], - "teraTypes": ["Steel"] - } - ] - }, - "pachirisu": { - "level": 94, - "sets": [ - { - "role": "AV Pivot", - "movepool": ["Nuzzle", "Super Fang", "Thunderbolt", "U-turn"], - "teraTypes": ["Flying"] - } - ] - }, - "floatzel": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Crunch", "Ice Spinner", "Low Kick", "Wave Crash"], - "teraTypes": ["Water"] - }, - { - "role": "Tera Blast user", - "movepool": ["Bulk Up", "Ice Spinner", "Liquidation", "Tera Blast"], - "teraTypes": ["Electric", "Grass"] - } - ] - }, - "gastrodon": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Clear Smog", "Earthquake", "Ice Beam", "Recover", "Stealth Rock", "Surf"], - "teraTypes": ["Steel", "Poison"] - } - ] - }, - "drifblim": { - "level": 86, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Air Slash", "Defog", "Shadow Ball", "Strength Sap", "Will-O-Wisp"], - "teraTypes": ["Ghost", "Fairy"] - }, - { - "role": "Fast Bulky Setup", - "movepool": ["Air Slash", "Calm Mind", "Shadow Ball", "Strength Sap"], - "teraTypes": ["Ghost", "Fairy"] - } - ] - }, - "mismagius": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dazzling Gleam", "Energy Ball", "Mystical Fire", "Nasty Plot", "Shadow Ball", "Thunderbolt", "Trick"], - "teraTypes": ["Ghost", "Fire", "Fairy", "Electric"] - } - ] - }, - "honchkrow": { - "level": 86, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Brave Bird", "Heat Wave", "Sucker Punch", "U-turn"], - "teraTypes": ["Dark", "Flying"] - } - ] - }, - "skuntank": { - "level": 87, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Crunch", "Fire Blast", "Gunk Shot", "Sucker Punch", "Taunt", "Toxic Spikes"], - "teraTypes": ["Dark", "Poison"] - } - ] - }, - "bronzong": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Hypnosis", "Iron Head", "Light Screen", "Psychic", "Reflect", "Stealth Rock"], - "teraTypes": ["Water", "Electric"] - } - ] - }, - "spiritomb": { - "level": 90, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Foul Play", "Pain Split", "Shadow Sneak", "Sucker Punch", "Will-O-Wisp"], - "teraTypes": ["Dark"] - }, - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Dark Pulse", "Rest", "Sleep Talk"], - "teraTypes": ["Dark", "Steel"] - } - ] - }, - "garchomp": { - "level": 77, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Draco Meteor", "Earthquake", "Fire Blast", "Spikes", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Ground", "Steel"] - }, - { - "role": "Fast Attacker", - "movepool": ["Earthquake", "Fire Fang", "Outrage", "Stone Edge", "Swords Dance"], - "teraTypes": ["Ground", "Dragon"] - } - ] - }, - "lucario": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Extreme Speed", "Meteor Mash", "Stone Edge", "Swords Dance"], - "teraTypes": ["Normal"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Aura Sphere", "Dark Pulse", "Flash Cannon", "Focus Blast", "Nasty Plot", "Vacuum Wave"], - "teraTypes": ["Fighting"] - } - ] - }, - "hippowdon": { - "level": 82, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Slack Off", "Stealth Rock", "Stone Edge", "Whirlwind", "Yawn"], - "teraTypes": ["Fairy", "Rock", "Steel"] - } - ] - }, - "toxicroak": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Gunk Shot", "Ice Punch", "Sucker Punch", "Swords Dance"], - "teraTypes": ["Dark", "Fighting"] - } - ] - }, - "lumineon": { - "level": 92, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dazzling Gleam", "Encore", "Hydro Pump", "Ice Beam", "U-turn"], - "teraTypes": ["Water", "Fairy"] - } - ] - }, - "abomasnow": { - "level": 86, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Aurora Veil", "Blizzard", "Earthquake", "Ice Shard", "Wood Hammer"], - "teraTypes": ["Ice", "Water"] - } - ] - }, - "weavile": { - "level": 83, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Ice Shard", "Ice Spinner", "Low Kick", "Night Slash", "Swords Dance"], - "teraTypes": ["Ice", "Fighting"] - } - ] - }, - "sneasler": { - "level": 76, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Dire Claw", "Gunk Shot", "Night Slash", "U-turn"], - "teraTypes": ["Dark", "Fighting"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Acrobatics", "Close Combat", "Gunk Shot", "Swords Dance"], - "teraTypes": ["Flying"] - } - ] - }, - "magnezone": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Press", "Flash Cannon", "Mirror Coat", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric", "Water", "Flying"] - } - ] - }, - "leafeon": { - "level": 88, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Double-Edge", "Leaf Blade", "Substitute", "Swords Dance", "Synthesis", "X-Scissor"], - "teraTypes": ["Normal"] - } - ] - }, - "glaceon": { - "level": 92, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Calm Mind", "Freeze-Dry", "Protect", "Wish", "Yawn"], - "teraTypes": ["Water"] - } - ] - }, - "gallade": { - "level": 83, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Leaf Blade", "Night Slash", "Psycho Cut", "Sacred Sword", "Swords Dance"], - "teraTypes": ["Fighting", "Grass", "Dark"] - } - ] - }, - "froslass": { - "level": 86, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Destiny Bond", "Ice Beam", "Shadow Ball", "Spikes", "Taunt", "Will-O-Wisp"], - "teraTypes": ["Ghost"] - } - ] - }, - "rotom": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Nasty Plot", "Shadow Ball", "Thunderbolt", "Trick", "Volt Switch", "Will-O-Wisp"], - "teraTypes": ["Ghost", "Electric"] - } - ] - }, - "rotomwash": { - "level": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Discharge", "Hydro Pump", "Nasty Plot", "Trick", "Volt Switch", "Will-O-Wisp"], - "teraTypes": ["Water", "Electric"] - } - ] - }, - "rotomheat": { - "level": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Nasty Plot", "Overheat", "Thunderbolt", "Trick", "Volt Switch", "Will-O-Wisp"], - "teraTypes": ["Fire", "Electric"] - } - ] - }, - "rotomfrost": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Blizzard", "Nasty Plot", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], - "teraTypes": ["Electric"] - } - ] - }, - "rotomfan": { - "level": 86, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Air Slash", "Nasty Plot", "Thunderbolt", "Volt Switch", "Will-O-Wisp"], - "teraTypes": ["Electric"] - } - ] - }, - "rotommow": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Leaf Storm", "Nasty Plot", "Thunderbolt", "Trick", "Volt Switch", "Will-O-Wisp"], - "teraTypes": ["Grass", "Electric"] - } - ] - }, - "uxie": { - "level": 84, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Encore", "Light Screen", "Psychic", "Reflect", "Stealth Rock", "Thunder Wave", "U-turn", "Yawn"], - "teraTypes": ["Steel", "Electric"] - } - ] - }, - "mesprit": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dazzling Gleam", "Energy Ball", "Healing Wish", "Ice Beam", "Nasty Plot", "Psychic", "Thunderbolt", "U-turn"], - "teraTypes": ["Psychic", "Fairy", "Electric"] - }, - { - "role": "Bulky Support", - "movepool": ["Encore", "Psychic", "Stealth Rock", "Thunder Wave", "Thunderbolt", "U-turn"], - "teraTypes": ["Electric"] - } - ] - }, - "azelf": { - "level": 82, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Explosion", "Fire Blast", "Psychic", "Stealth Rock", "Taunt", "U-turn"], - "teraTypes": ["Psychic", "Fire"] - }, - { - "role": "Fast Attacker", - "movepool": ["Dazzling Gleam", "Energy Ball", "Fire Blast", "Nasty Plot", "Psychic", "Psyshock", "Trick", "U-turn"], - "teraTypes": ["Psychic", "Fairy", "Fire"] - } - ] - }, - "dialga": { - "level": 75, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Draco Meteor", "Fire Blast", "Flash Cannon", "Stealth Rock", "Thunder Wave", "Thunderbolt"], - "teraTypes": ["Dragon", "Steel", "Fire"] - } - ] - }, - "dialgaorigin": { - "level": 75, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Draco Meteor", "Fire Blast", "Flash Cannon", "Stealth Rock", "Thunder Wave"], - "teraTypes": ["Dragon", "Steel", "Fire"] - } - ] - }, - "palkia": { - "level": 75, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Draco Meteor", "Fire Blast", "Hydro Pump", "Spacial Rend"], - "teraTypes": ["Dragon", "Water"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Draco Meteor", "Fire Blast", "Hydro Pump", "Spacial Rend", "Thunder Wave"], - "teraTypes": ["Dragon", "Water"] - } - ] - }, - "palkiaorigin": { - "level": 73, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Draco Meteor", "Fire Blast", "Hydro Pump", "Spacial Rend", "Thunder Wave"], - "teraTypes": ["Dragon", "Water"] - } - ] - }, - "heatran": { - "level": 79, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earth Power", "Flash Cannon", "Lava Plume", "Magma Storm", "Stealth Rock"], - "teraTypes": ["Flying", "Grass", "Steel"] - } - ] - }, - "giratina": { - "level": 76, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Dragon Tail", "Rest", "Shadow Ball", "Sleep Talk", "Will-O-Wisp"], - "teraTypes": ["Ghost"] - }, - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Dragon Pulse", "Rest", "Sleep Talk"], - "teraTypes": ["Dragon"] - } - ] - }, - "giratinaorigin": { - "level": 74, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Defog", "Draco Meteor", "Dragon Tail", "Earthquake", "Outrage", "Shadow Ball", "Shadow Sneak", "Will-O-Wisp"], - "teraTypes": ["Dragon", "Ghost"] - } - ] - }, - "cresselia": { - "level": 80, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Moonblast", "Moonlight", "Psychic", "Psyshock", "Thunderbolt"], - "teraTypes": ["Fairy", "Electric", "Poison", "Steel"] - } - ] - }, - "arceus": { - "level": 69, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Earthquake", "Extreme Speed", "Recover", "Shadow Claw", "Swords Dance"], - "teraTypes": ["Normal"] - } - ] - }, - "arceusbug": { - "level": 72, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Calm Mind", "Earth Power", "Ice Beam", "Judgment"], - "teraTypes": ["Ground"] - }, - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Fire Blast", "Judgment", "Recover"], - "teraTypes": ["Fire"] - } - ] - }, - "arceusdark": { - "level": 70, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Fire Blast", "Judgment", "Recover", "Sludge Bomb"], - "teraTypes": ["Ghost", "Poison", "Fire"] - } - ] - }, - "arceusdragon": { - "level": 70, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Earthquake", "Extreme Speed", "Gunk Shot", "Outrage", "Swords Dance"], - "teraTypes": ["Ground"] - }, - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Fire Blast", "Judgment", "Sludge Bomb"], - "teraTypes": ["Fire"] - } - ] - }, - "arceuselectric": { - "level": 70, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Ice Beam", "Judgment", "Recover"], - "teraTypes": ["Electric", "Ice"] - } - ] - }, - "arceusfairy": { - "level": 70, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Earth Power", "Fire Blast", "Judgment", "Recover"], - "teraTypes": ["Steel", "Ground", "Fire"] - } - ] - }, - "arceusfighting": { - "level": 68, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Cosmic Power", "Recover", "Stored Power"], - "teraTypes": ["Steel", "Psychic"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Calm Mind", "Judgment", "Recover", "Shadow Ball"], - "teraTypes": ["Steel", "Ghost"] - } - ] - }, - "arceusfire": { - "level": 72, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Earthquake", "Extreme Speed", "Flare Blitz", "Liquidation", "Recover", "Swords Dance"], - "teraTypes": ["Fire", "Ground", "Water"] - }, - { - "role": "Fast Bulky Setup", - "movepool": ["Calm Mind", "Earth Power", "Ice Beam", "Judgment", "Recover", "Thunderbolt"], - "teraTypes": ["Ground", "Electric"] - } - ] - }, - "arceusflying": { - "level": 69, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover"], - "teraTypes": ["Steel", "Ground"] - } - ] - }, - "arceusghost": { - "level": 70, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Focus Blast", "Hex", "Recover", "Will-O-Wisp"], - "teraTypes": ["Fighting", "Normal"] - }, - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Focus Blast", "Judgment", "Recover"], - "teraTypes": ["Fighting", "Normal", "Ghost"] - } - ] - }, - "arceusgrass": { - "level": 72, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Calm Mind", "Earth Power", "Ice Beam", "Judgment"], - "teraTypes": ["Ground"] - }, - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Fire Blast", "Judgment", "Recover"], - "teraTypes": ["Fire"] - } - ] - }, - "arceusground": { - "level": 70, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Fire Blast", "Ice Beam", "Judgment", "Recover"], - "teraTypes": ["Ground", "Dragon"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Earthquake", "Extreme Speed", "Stone Edge", "Swords Dance"], - "teraTypes": ["Normal"] - } - ] - }, - "arceusice": { - "level": 72, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover", "Thunderbolt"], - "teraTypes": ["Electric", "Ground"] - } - ] - }, - "arceuspoison": { - "level": 72, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Earthquake", "Flare Blitz", "Gunk Shot", "Liquidation", "Recover", "Swords Dance"], - "teraTypes": ["Ground", "Fire", "Water"] - } - ] - }, - "arceuspsychic": { - "level": 68, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Cosmic Power", "Recover", "Stored Power"], - "teraTypes": ["Steel"] - } - ] - }, - "arceusrock": { - "level": 72, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Earth Power", "Fire Blast", "Judgment", "Recover"], - "teraTypes": ["Ground", "Dragon"] - } - ] - }, - "arceussteel": { - "level": 70, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Calm Mind", "Earth Power", "Judgment", "Recover", "Will-O-Wisp"], - "teraTypes": ["Ghost"] - } - ] - }, - "arceuswater": { - "level": 70, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Ice Beam", "Judgment", "Recover", "Taunt", "Will-O-Wisp"], - "teraTypes": ["Steel"] - } - ] - }, - "samurott": { - "level": 88, - "sets": [ - { - "role": "AV Pivot", - "movepool": ["Aqua Jet", "Grass Knot", "Hydro Pump", "Ice Beam", "Knock Off", "Megahorn", "Sacred Sword"], - "teraTypes": ["Water", "Dark"] - }, - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Knock Off", "Liquidation", "Megahorn", "Sacred Sword", "Swords Dance"], - "teraTypes": ["Water", "Dark"] - } - ] - }, - "samurotthisui": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Ceaseless Edge", "Razor Shell", "Sucker Punch", "Swords Dance", "X-Scissor"], - "teraTypes": ["Water", "Dark"] - } - ] - }, - "lilligant": { - "level": 86, - "sets": [ - { - "role": "Tera Blast user", - "movepool": ["Giga Drain", "Pollen Puff", "Quiver Dance", "Sleep Powder", "Tera Blast"], - "teraTypes": ["Fire", "Rock"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Petal Dance", "Pollen Puff", "Quiver Dance", "Sleep Powder"], - "teraTypes": ["Grass"] - } - ] - }, - "lilliganthisui": { - "level": 80, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Close Combat", "Ice Spinner", "Leaf Blade", "Sleep Powder", "Victory Dance"], - "teraTypes": ["Fighting"] - }, - { - "role": "Fast Support", - "movepool": ["Close Combat", "Defog", "Ice Spinner", "Leaf Blade", "Sleep Powder"], - "teraTypes": ["Fighting"] - } - ] - }, - "basculin": { - "level": 86, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Aqua Jet", "Crunch", "Head Smash", "Psychic Fangs", "Wave Crash"], - "teraTypes": ["Water"] - } - ] - }, - "basculinbluestriped": { - "level": 86, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Aqua Jet", "Crunch", "Head Smash", "Psychic Fangs", "Wave Crash"], - "teraTypes": ["Water"] - } - ] - }, - "basculegion": { - "level": 69, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Head Smash", "Last Respects", "Wave Crash"], - "teraTypes": ["Ghost"] - } - ] - }, - "basculegionf": { - "level": 70, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Hydro Pump", "Ice Beam", "Last Respects", "Wave Crash"], - "teraTypes": ["Ghost"] - } - ] - }, - "krookodile": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Bulk Up", "Crunch", "Earthquake", "Gunk Shot", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Poison", "Ground"] - } - ] - }, - "zoroark": { - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Flamethrower", "Focus Blast", "Nasty Plot", "Sludge Bomb", "Trick", "U-turn"], - "teraTypes": ["Poison"] - } - ] - }, - "zoroarkhisui": { - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Bitter Malice", "Flamethrower", "Focus Blast", "Hyper Voice", "Nasty Plot", "Shadow Ball", "Trick", "U-turn"], - "teraTypes": ["Normal", "Fighting"] - } - ] - }, - "gothitelle": { - "level": 87, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Nasty Plot", "Psychic", "Shadow Ball", "Thunderbolt", "Trick"], - "teraTypes": ["Psychic", "Ghost", "Electric"] - } - ] - }, - "sawsbuck": { - "level": 88, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Double-Edge", "Headbutt", "Horn Leech", "Stomping Tantrum", "Swords Dance"], - "teraTypes": ["Normal"] - } - ] - }, - "amoonguss": { - "level": 82, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Clear Smog", "Giga Drain", "Sludge Bomb", "Spore", "Toxic"], - "teraTypes": ["Steel", "Water"] - } - ] - }, - "alomomola": { - "level": 87, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Body Slam", "Liquidation", "Mirror Coat", "Protect", "Wish"], - "teraTypes": ["Steel"] - } - ] - }, - "eelektross": { - "level": 86, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Coil", "Drain Punch", "Fire Punch", "Liquidation", "Wild Charge"], - "teraTypes": ["Electric", "Fighting"] - }, - { - "role": "AV Pivot", - "movepool": ["Close Combat", "Flamethrower", "Giga Drain", "Thunderbolt", "U-turn"], - "teraTypes": ["Electric"] - } - ] - }, - "haxorus": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Dragon Dance", "Earthquake", "Iron Head", "Outrage"], - "teraTypes": ["Fighting", "Ground", "Steel"] - } - ] - }, - "beartic": { - "level": 90, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Aqua Jet", "Close Combat", "Earthquake", "Icicle Crash", "Snowscape", "Swords Dance"], - "teraTypes": ["Fighting", "Ice", "Ground"] - } - ] - }, - "cryogonal": { - "level": 87, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Flash Cannon", "Freeze-Dry", "Haze", "Rapid Spin", "Recover"], - "teraTypes": ["Steel"] - } - ] - }, - "braviary": { - "level": 86, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Brave Bird", "Bulk Up", "Close Combat", "Roost"], - "teraTypes": ["Flying", "Fighting"] - } - ] - }, - "braviaryhisui": { - "level": 84, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Agility", "Heat Wave", "Hurricane", "Psychic"], - "teraTypes": ["Psychic", "Fairy", "Steel", "Fire"] - }, - { - "role": "Wallbreaker", - "movepool": ["Calm Mind", "Defog", "Esper Wing", "Heat Wave", "Hurricane", "U-turn"], - "teraTypes": ["Psychic", "Fairy", "Steel"] - } - ] - }, - "hydreigon": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Draco Meteor", "Fire Blast", "Flash Cannon", "Nasty Plot", "U-turn"], - "teraTypes": ["Dark", "Dragon", "Fire", "Steel"] - } - ] - }, - "volcarona": { - "level": 77, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Bug Buzz", "Fiery Dance", "Fire Blast", "Giga Drain", "Morning Sun", "Quiver Dance"], - "teraTypes": ["Fire", "Grass", "Water"] - }, - { - "role": "Tera Blast user", - "movepool": ["Bug Buzz", "Fiery Dance", "Fire Blast", "Giga Drain", "Quiver Dance", "Tera Blast"], - "teraTypes": ["Ground", "Water"] - } - ] - }, - "tornadus": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Bleakwind Storm", "Focus Blast", "Grass Knot", "Heat Wave", "Nasty Plot", "U-turn"], - "teraTypes": ["Flying", "Fire"] - } - ] - }, - "tornadustherian": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Bleakwind Storm", "Focus Blast", "Grass Knot", "Heat Wave", "Nasty Plot", "U-turn"], - "teraTypes": ["Flying", "Fire"] - } - ] - }, - "thundurus": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Focus Blast", "Grass Knot", "Nasty Plot", "Sludge Bomb", "Taunt", "Thunder Wave", "Thunderbolt", "U-turn"], - "teraTypes": ["Electric", "Grass"] - }, - { - "role": "Tera Blast user", - "movepool": ["Focus Blast", "Nasty Plot", "Tera Blast", "Thunderbolt"], - "teraTypes": ["Flying"] - } - ] - }, - "thundurustherian": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Focus Blast", "Grass Knot", "Nasty Plot", "Psychic", "Sludge Bomb", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric", "Psychic", "Poison"] - }, - { - "role": "Tera Blast user", - "movepool": ["Focus Blast", "Nasty Plot", "Tera Blast", "Thunderbolt"], - "teraTypes": ["Flying"] - } - ] - }, - "landorus": { - "level": 76, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Earth Power", "Focus Blast", "Nasty Plot", "Psychic", "Rock Slide", "Sludge Bomb", "Stealth Rock"], - "teraTypes": ["Ground", "Psychic", "Poison"] - } - ] - }, - "landorustherian": { - "level": 78, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Earthquake", "Stealth Rock", "Stone Edge", "Taunt", "U-turn"], - "teraTypes": ["Ground"] - }, - { - "role": "Tera Blast user", - "movepool": ["Earthquake", "Stone Edge", "Swords Dance", "Tera Blast"], - "teraTypes": ["Flying"] - } - ] - }, - "meloetta": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Focus Blast", "Hyper Voice", "Psyshock", "U-turn"], - "teraTypes": ["Normal", "Psychic", "Fighting"] - } - ] - }, - "chesnaught": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Body Press", "Leech Seed", "Spikes", "Spiky Shield", "Synthesis", "Wood Hammer"], - "teraTypes": ["Steel", "Water"] - }, - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Iron Defense", "Synthesis", "Trailblaze"], - "teraTypes": ["Steel"] - } - ] - }, - "delphox": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Fire Blast", "Focus Blast", "Grass Knot", "Nasty Plot", "Psyshock"], - "teraTypes": ["Fire", "Psychic", "Grass", "Fighting"] - } - ] - }, - "greninja": { - "level": 81, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Grass Knot", "Gunk Shot", "Hydro Pump", "Ice Beam", "Toxic Spikes", "U-turn"], - "teraTypes": ["Water", "Dark", "Poison"] - } - ] - }, - "talonflame": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Brave Bird", "Defog", "Overheat", "Roost", "Taunt", "U-turn", "Will-O-Wisp"], - "teraTypes": ["Water", "Ground"] - }, - { - "role": "Tera Blast user", - "movepool": ["Brave Bird", "Flare Blitz", "Swords Dance", "Tera Blast"], - "teraTypes": ["Ground"] - } - ] - }, - "vivillon": { - "level": 86, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Bug Buzz", "Energy Ball", "Hurricane", "Quiver Dance", "Sleep Powder", "Substitute"], - "teraTypes": ["Flying"] - }, - { - "role": "Tera Blast user", - "movepool": ["Hurricane", "Quiver Dance", "Sleep Powder", "Substitute", "Tera Blast"], - "teraTypes": ["Ground"] - } - ] - }, - "pyroar": { - "level": 88, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Fire Blast", "Hyper Voice", "Will-O-Wisp", "Work Up"], - "teraTypes": ["Fire"] - } - ] - }, - "florges": { - "level": 85, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Moonblast", "Protect", "Wish"], - "teraTypes": ["Steel"] - }, - { - "role": "Tera Blast user", - "movepool": ["Calm Mind", "Moonblast", "Synthesis", "Tera Blast"], - "teraTypes": ["Ground"] - } - ] - }, - "gogoat": { - "level": 87, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Bulk Up", "Earthquake", "Horn Leech", "Milk Drink"], - "teraTypes": ["Ground"] - } - ] - }, - "dragalge": { - "level": 87, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Draco Meteor", "Focus Blast", "Sludge Bomb", "Thunderbolt", "Toxic", "Toxic Spikes"], - "teraTypes": ["Dragon", "Poison"] - } - ] - }, - "clawitzer": { - "level": 86, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Aura Sphere", "Dark Pulse", "Dragon Pulse", "U-turn", "Water Pulse"], - "teraTypes": ["Dark", "Dragon", "Fighting"] - } - ] - }, - "sylveon": { - "level": 83, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Hyper Voice", "Protect", "Wish"], - "teraTypes": ["Steel"] - } - ] - }, - "hawlucha": { - "level": 82, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Acrobatics", "Brave Bird", "Close Combat", "Stone Edge", "Swords Dance"], - "teraTypes": ["Fighting", "Flying"] - } - ] - }, - "dedenne": { - "level": 88, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Dazzling Gleam", "Nuzzle", "Super Fang", "Thunderbolt", "U-turn"], - "teraTypes": ["Electric"] - } - ] - }, - "carbink": { - "level": 89, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Press", "Moonblast", "Power Gem", "Spikes", "Stealth Rock"], - "teraTypes": ["Fighting"] - }, - { - "role": "Bulky Support", - "movepool": ["Body Press", "Light Screen", "Moonblast", "Reflect", "Stealth Rock"], - "teraTypes": ["Water", "Steel"] - } - ] - }, - "goodra": { - "level": 86, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Draco Meteor", "Dragon Tail", "Earthquake", "Fire Blast", "Power Whip", "Sludge Bomb", "Thunderbolt"], - "teraTypes": ["Dragon", "Ground", "Fire", "Grass", "Poison", "Electric"] - } - ] - }, - "goodrahisui": { - "level": 84, - "sets": [ - { - "role": "AV Pivot", - "movepool": ["Draco Meteor", "Dragon Tail", "Earthquake", "Fire Blast", "Heavy Slam", "Hydro Pump", "Thunderbolt"], - "teraTypes": ["Dragon", "Ground", "Fire", "Steel", "Water", "Electric"] - }, - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Curse", "Heavy Slam", "Rest"], - "teraTypes": ["Fighting"] - } - ] - }, - "klefki": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Magnet Rise", "Play Rough", "Spikes", "Thunder Wave"], - "teraTypes": ["Water"] - } - ] - }, - "avalugg": { - "level": 86, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Avalanche", "Body Press", "Curse", "Rapid Spin", "Recover"], - "teraTypes": ["Fighting"] - } - ] - }, - "avalugghisui": { - "level": 89, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Avalanche", "Body Press", "Curse", "Recover", "Stone Edge"], - "teraTypes": ["Poison", "Flying"] - } - ] - }, - "noivern": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Boomburst", "Draco Meteor", "Flamethrower", "Hurricane", "Roost", "U-turn"], - "teraTypes": ["Normal"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Defog", "Draco Meteor", "Flamethrower", "Roost", "Taunt"], - "teraTypes": ["Steel"] - } - ] - }, - "diancie": { - "level": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Press", "Diamond Storm", "Earth Power", "Moonblast", "Stealth Rock"], - "teraTypes": ["Fighting"] - } - ] - }, - "hoopa": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Focus Blast", "Nasty Plot", "Psyshock", "Shadow Ball", "Substitute", "Trick"], - "teraTypes": ["Psychic", "Ghost", "Fighting"] - } - ] - }, - "hoopaunbound": { - "level": 80, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Drain Punch", "Gunk Shot", "Hyperspace Fury", "Trick", "Zen Headbutt"], - "teraTypes": ["Dark", "Fighting", "Poison"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Focus Blast", "Gunk Shot", "Hyperspace Fury", "Psychic", "Trick"], - "teraTypes": ["Fighting", "Poison"] - } - ] - }, - "volcanion": { - "level": 79, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Earth Power", "Flame Charge", "Flamethrower", "Haze", "Sludge Bomb", "Steam Eruption"], - "teraTypes": ["Water", "Fire", "Ground"] - } - ] - }, - "decidueye": { - "level": 86, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Defog", "Knock Off", "Leaf Storm", "Roost", "Spirit Shackle", "U-turn"], - "teraTypes": ["Dark", "Ghost", "Grass"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Leaf Blade", "Shadow Sneak", "Spirit Shackle", "Swords Dance"], - "teraTypes": ["Ghost"] - } - ] - }, - "decidueyehisui": { - "level": 88, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Defog", "Leaf Blade", "Sucker Punch", "Swords Dance", "Synthesis", "Triple Arrows", "U-turn"], - "teraTypes": ["Steel"] - } - ] - }, - "gumshoos": { - "level": 92, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Body Slam", "Crunch", "Earthquake", "Psychic Fangs", "U-turn"], - "teraTypes": ["Ground"] - } - ] - }, - "crabominable": { - "level": 90, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Close Combat", "Drain Punch", "Earthquake", "Gunk Shot", "Ice Hammer"], - "teraTypes": ["Fighting", "Ground"] - } - ] - }, - "oricorio": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Defog", "Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], - "teraTypes": ["Ground"] - } - ] - }, - "oricoriopompom": { - "level": 83, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Defog", "Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], - "teraTypes": ["Ground"] - } - ] - }, - "oricoriopau": { - "level": 86, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Defog", "Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], - "teraTypes": ["Ground"] - } - ] - }, - "oricoriosensu": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Defog", "Hurricane", "Quiver Dance", "Revelation Dance", "Roost"], - "teraTypes": ["Ghost", "Fighting"] - } - ] - }, - "lycanroc": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Accelerock", "Close Combat", "Crunch", "Drill Run", "Psychic Fangs", "Stealth Rock", "Stone Edge", "Swords Dance", "Taunt"], - "teraTypes": ["Fighting"] - } - ] - }, - "lycanrocmidnight": { - "level": 88, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Psychic Fangs", "Stealth Rock", "Stone Edge", "Swords Dance"], - "teraTypes": ["Rock", "Fighting"] - } - ] - }, - "lycanrocdusk": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Accelerock", "Close Combat", "Crunch", "Drill Run", "Psychic Fangs", "Stone Edge", "Swords Dance"], - "teraTypes": ["Fighting"] - } - ] - }, - "toxapex": { - "level": 82, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Haze", "Liquidation", "Recover", "Toxic", "Toxic Spikes"], - "teraTypes": ["Steel", "Flying", "Grass", "Fairy"] - } - ] - }, - "mudsdale": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Press", "Earthquake", "Heavy Slam", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Fighting"] - } - ] - }, - "lurantis": { - "level": 91, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Defog", "Leaf Storm", "Pollen Puff", "Synthesis"], - "teraTypes": ["Steel", "Water"] - } - ] - }, - "salazzle": { - "level": 82, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Flamethrower", "Protect", "Substitute", "Toxic"], - "teraTypes": ["Water", "Flying"] - } - ] - }, - "tsareena": { - "level": 85, - "sets": [ - { - "role": "Fast Support", - "movepool": ["High Jump Kick", "Play Rough", "Power Whip", "Rapid Spin", "Synthesis", "U-turn"], - "teraTypes": ["Fighting", "Steel"] - } - ] - }, - "oranguru": { - "level": 91, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Focus Blast", "Nasty Plot", "Psychic", "Psyshock", "Thunderbolt"], - "teraTypes": ["Psychic", "Electric", "Fighting"] - }, - { - "role": "Wallbreaker", - "movepool": ["Focus Blast", "Hyper Voice", "Psyshock", "Thunderbolt", "Trick", "Trick Room"], - "teraTypes": ["Psychic", "Electric", "Fighting"] - } - ] - }, - "passimian": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Earthquake", "Gunk Shot", "Knock Off", "Rock Slide", "U-turn"], - "teraTypes": ["Dark"] - } - ] - }, - "palossand": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earth Power", "Hypnosis", "Shadow Ball", "Shore Up", "Stealth Rock"], - "teraTypes": ["Water"] - } - ] - }, - "komala": { - "level": 89, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Slam", "Earthquake", "Gunk Shot", "Play Rough", "Rapid Spin", "Sucker Punch", "Superpower", "U-turn", "Wood Hammer"], - "teraTypes": ["Normal", "Ground", "Poison", "Fairy", "Fighting", "Grass"] - } - ] - }, - "mimikyu": { - "level": 79, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Drain Punch", "Play Rough", "Shadow Claw", "Shadow Sneak", "Swords Dance", "Wood Hammer"], - "teraTypes": ["Fighting", "Grass", "Fairy", "Ghost"] - } - ] - }, - "bruxish": { - "level": 85, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Crunch", "Ice Fang", "Psychic Fangs", "Swords Dance", "Wave Crash"], - "teraTypes": ["Dark", "Psychic"] - } - ] - }, - "magearna": { - "level": 78, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Aura Sphere", "Flash Cannon", "Fleur Cannon", "Pain Split", "Spikes", "Volt Switch"], - "teraTypes": ["Fairy", "Steel", "Fighting", "Water"] - }, - { - "role": "Bulky Setup", - "movepool": ["Calm Mind", "Flash Cannon", "Fleur Cannon", "Shift Gear"], - "teraTypes": ["Water", "Steel", "Fairy", "Flying"] - }, - { - "role": "Tera Blast user", - "movepool": ["Fleur Cannon", "Iron Head", "Shift Gear", "Tera Blast", "Thunderbolt"], - "teraTypes": ["Ground"] - } - ] - }, - "rillaboom": { - "level": 82, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Acrobatics", "Knock Off", "Stomping Tantrum", "Swords Dance", "Wood Hammer"], - "teraTypes": ["Flying", "Grass"] - }, - { - "role": "Fast Attacker", - "movepool": ["Knock Off", "Stomping Tantrum", "U-turn", "Wood Hammer"], - "teraTypes": ["Grass"] - } - ] - }, - "cinderace": { - "level": 78, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Court Change", "Gunk Shot", "High Jump Kick", "Pyro Ball", "Sucker Punch", "U-turn"], - "teraTypes": ["Fire", "Fighting", "Poison"] - } - ] - }, - "inteleon": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Air Slash", "Dark Pulse", "Hydro Pump", "Ice Beam", "Surf", "U-turn"], - "teraTypes": ["Water"] - }, - { - "role": "Tera Blast user", - "movepool": ["Hydro Pump", "Ice Beam", "Tera Blast", "U-turn"], - "teraTypes": ["Electric", "Grass"] - } - ] - }, - "greedent": { - "level": 87, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Slam", "Crunch", "Earthquake", "Fire Fang", "Psychic Fangs", "Swords Dance"], - "teraTypes": ["Ground", "Psychic"] - } - ] - }, - "corviknight": { - "level": 80, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Press", "Brave Bird", "Bulk Up", "Defog", "Roost"], - "teraTypes": ["Fighting"] - } - ] - }, - "drednaw": { - "level": 80, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Crunch", "Earthquake", "Liquidation", "Shell Smash", "Stone Edge"], - "teraTypes": ["Water", "Ground", "Dark"] - } - ] - }, - "coalossal": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Overheat", "Rapid Spin", "Spikes", "Stealth Rock", "Stone Edge", "Will-O-Wisp"], - "teraTypes": ["Water"] - } - ] - }, - "flapple": { - "level": 87, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dragon Dance", "Grav Apple", "Outrage", "Sucker Punch", "U-turn"], - "teraTypes": ["Dragon", "Grass"] - } - ] - }, - "appletun": { - "level": 92, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Apple Acid", "Draco Meteor", "Dragon Pulse", "Leech Seed", "Recover"], - "teraTypes": ["Grass", "Steel"] - } - ] - }, - "sandaconda": { - "level": 85, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Coil", "Earthquake", "Glare", "Rest", "Stone Edge"], - "teraTypes": ["Dragon", "Steel"] - }, - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Glare", "Rest", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Dragon", "Water"] - } - ] - }, - "barraskewda": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Close Combat", "Crunch", "Liquidation", "Poison Jab", "Psychic Fangs"], - "teraTypes": ["Fighting"] - } - ] - }, - "toxtricity": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Boomburst", "Overdrive", "Shift Gear", "Sludge Bomb", "Volt Switch"], - "teraTypes": ["Normal"] - } - ] - }, - "toxtricitylowkey": { - "level": 82, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Boomburst", "Overdrive", "Sludge Bomb", "Toxic Spikes", "Volt Switch"], - "teraTypes": ["Normal"] - } - ] - }, - "polteageist": { - "level": 79, - "sets": [ - { - "role": "Tera Blast user", - "movepool": ["Giga Drain", "Shadow Ball", "Shell Smash", "Stored Power", "Strength Sap", "Tera Blast"], - "teraTypes": ["Fighting"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Giga Drain", "Shadow Ball", "Shell Smash", "Stored Power", "Strength Sap"], - "teraTypes": ["Psychic"] - } - ] - }, - "hatterene": { - "level": 87, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Dazzling Gleam", "Mystical Fire", "Psychic", "Psyshock", "Trick", "Trick Room"], - "teraTypes": ["Psychic", "Fairy", "Fire"] - } - ] - }, - "grimmsnarl": { - "level": 83, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Light Screen", "Parting Shot", "Reflect", "Spirit Break", "Thunder Wave"], - "teraTypes": ["Fairy"] - }, - { - "role": "Fast Bulky Setup", - "movepool": ["Bulk Up", "Crunch", "Rest", "Spirit Break", "Sucker Punch", "Thunder Wave"], - "teraTypes": ["Dark"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Parting Shot", "Spirit Break", "Sucker Punch", "Taunt", "Thunder Wave"], - "teraTypes": ["Fairy"] - } - ] - }, - "perrserker": { - "level": 88, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Close Combat", "Crunch", "Iron Head", "Stealth Rock", "U-turn"], - "teraTypes": ["Steel", "Fighting"] - } - ] - }, - "falinks": { - "level": 87, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Close Combat", "Megahorn", "No Retreat", "Poison Jab", "Rock Slide"], - "teraTypes": ["Fighting", "Ghost"] - }, - { - "role": "Tera Blast user", - "movepool": ["Close Combat", "No Retreat", "Poison Jab", "Tera Blast"], - "teraTypes": ["Ghost"] - } - ] - }, - "pincurchin": { - "level": 94, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Discharge", "Hydro Pump", "Spikes", "Sucker Punch", "Toxic Spikes"], - "teraTypes": ["Electric", "Water"] - } - ] - }, - "frosmoth": { - "level": 83, - "sets": [ - { - "role": "Tera Blast user", - "movepool": ["Bug Buzz", "Giga Drain", "Hurricane", "Ice Beam", "Quiver Dance", "Tera Blast"], - "teraTypes": ["Ground"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Bug Buzz", "Giga Drain", "Hurricane", "Ice Beam", "Quiver Dance"], - "teraTypes": ["Water"] - } - ] - }, - "stonjourner": { - "level": 90, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Earthquake", "Heavy Slam", "Rock Polish", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Ground"] - } - ] - }, - "eiscue": { - "level": 85, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Belly Drum", "Ice Spinner", "Iron Head", "Liquidation", "Substitute", "Zen Headbutt"], - "teraTypes": ["Water"] - }, - { - "role": "Tera Blast user", - "movepool": ["Belly Drum", "Ice Spinner", "Liquidation", "Substitute", "Tera Blast"], - "teraTypes": ["Ground"] - } - ] - }, - "indeedee": { - "level": 88, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Dazzling Gleam", "Healing Wish", "Hyper Voice", "Psychic", "Psyshock", "Shadow Ball"], - "teraTypes": ["Psychic"] - } - ] - }, - "indeedeef": { - "level": 89, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Dazzling Gleam", "Healing Wish", "Hyper Voice", "Psychic", "Psyshock", "Shadow Ball"], - "teraTypes": ["Psychic"] - } - ] - }, - "copperajah": { - "level": 86, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Earthquake", "Iron Head", "Play Rough", "Rock Slide", "Stealth Rock", "Superpower"], - "teraTypes": ["Steel", "Fairy"] - } - ] - }, - "dragapult": { - "level": 78, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Draco Meteor", "Fire Blast", "Shadow Ball", "Thunderbolt", "U-turn"], - "teraTypes": ["Ghost", "Dragon"] - }, - { - "role": "Tera Blast user", - "movepool": ["Dragon Dance", "Dragon Darts", "Fire Blast", "Tera Blast"], - "teraTypes": ["Ghost"] - } - ] - }, - "zacian": { - "level": 70, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Crunch", "Play Rough", "Psychic Fangs", "Swords Dance", "Wild Charge"], - "teraTypes": ["Fighting"] - } - ] - }, - "zaciancrowned": { - "level": 65, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Behemoth Blade", "Close Combat", "Play Rough", "Swords Dance"], - "teraTypes": ["Fighting"] - } - ] - }, - "zamazenta": { - "level": 72, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Close Combat", "Crunch", "Iron Head", "Psychic Fangs", "Stone Edge", "Wild Charge"], - "teraTypes": ["Fighting", "Dark"] - }, - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Crunch", "Iron Defense", "Iron Head", "Rest", "Stone Edge"], - "teraTypes": ["Fighting"] - } - ] - }, - "zamazentacrowned": { - "level": 70, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Behemoth Bash", "Body Press", "Crunch", "Iron Defense", "Psychic Fangs", "Stone Edge"], - "teraTypes": ["Fighting"] - } - ] - }, - "eternatus": { - "level": 69, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Dynamax Cannon", "Fire Blast", "Recover", "Sludge Bomb"], - "teraTypes": ["Dragon", "Fire"] - }, - { - "role": "Bulky Support", - "movepool": ["Dynamax Cannon", "Flamethrower", "Recover", "Toxic", "Toxic Spikes"], - "teraTypes": ["Dragon", "Water"] - } - ] - }, - "urshifu": { - "level": 75, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Poison Jab", "Sucker Punch", "Swords Dance", "U-turn", "Wicked Blow"], - "teraTypes": ["Dark", "Fighting"] - } - ] - }, - "urshifurapidstrike": { - "level": 76, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Close Combat", "Ice Spinner", "Surging Strikes", "Swords Dance", "U-turn"], - "teraTypes": ["Water"] - } - ] - }, - "zarude": { - "level": 79, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Close Combat", "Crunch", "Power Whip", "Swords Dance", "Synthesis"], - "teraTypes": ["Dark", "Grass", "Fighting"] - }, - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Crunch", "Power Whip", "U-turn"], - "teraTypes": ["Dark", "Grass", "Fighting"] - } - ] - }, - "regieleki": { - "level": 77, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Explosion", "Rapid Spin", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric"] - }, - { - "role": "Tera Blast user", - "movepool": ["Rapid Spin", "Tera Blast", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Ice"] - } - ] - }, - "regidrago": { - "level": 80, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Draco Meteor", "Dragon Dance", "Earthquake", "Fire Fang", "Outrage"], - "teraTypes": ["Dragon"] - }, - { - "role": "Tera Blast user", - "movepool": ["Dragon Claw", "Dragon Dance", "Earthquake", "Tera Blast"], - "teraTypes": ["Steel"] - } - ] - }, - "glastrier": { - "level": 86, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Close Combat", "Heavy Slam", "Icicle Crash", "Stomping Tantrum", "Swords Dance"], - "teraTypes": ["Fighting", "Steel"] - } - ] - }, - "spectrier": { - "level": 75, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Dark Pulse", "Nasty Plot", "Shadow Ball", "Substitute", "Will-O-Wisp"], - "teraTypes": ["Ghost", "Dark"] - }, - { - "role": "Tera Blast user", - "movepool": ["Nasty Plot", "Shadow Ball", "Substitute", "Tera Blast", "Will-O-Wisp"], - "teraTypes": ["Fighting"] - } - ] - }, - "calyrex": { - "level": 92, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Calm Mind", "Encore", "Giga Drain", "Leech Seed", "Psychic", "Psyshock"], - "teraTypes": ["Steel"] - } - ] - }, - "calyrexice": { - "level": 73, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Agility", "Close Combat", "Glacial Lance", "Stomping Tantrum", "Trick Room", "Zen Headbutt"], - "teraTypes": ["Fighting"] - } - ] - }, - "calyrexshadow": { - "level": 64, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Astral Barrage", "Nasty Plot", "Pollen Puff", "Psyshock", "Trick"], - "teraTypes": ["Ghost"] - } - ] - }, - "wyrdeer": { - "level": 87, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Slam", "Earthquake", "Megahorn", "Psychic", "Thunder Wave", "Thunderbolt"], - "teraTypes": ["Ground"] - } - ] - }, - "kleavor": { - "level": 80, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Close Combat", "Defog", "Stone Axe", "Swords Dance", "U-turn", "X-Scissor"], - "teraTypes": ["Bug", "Rock", "Fighting"] - } - ] - }, - "ursaluna": { - "level": 80, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Crunch", "Facade", "Headlong Rush", "Protect", "Swords Dance"], - "teraTypes": ["Normal"] - } - ] - }, - "enamorus": { - "level": 80, - "sets": [ - { - "role": "Tera Blast user", - "movepool": ["Play Rough", "Superpower", "Taunt", "Tera Blast"], - "teraTypes": ["Flying"] - }, - { - "role": "Fast Bulky Setup", - "movepool": ["Calm Mind", "Earth Power", "Moonblast", "Substitute"], - "teraTypes": ["Ground"] - } - ] - }, - "enamorustherian": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Earth Power", "Moonblast", "Mystical Fire", "Psychic", "Superpower"], - "teraTypes": ["Fairy", "Ground"] - } - ] - }, - "meowscarada": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Flower Trick", "Knock Off", "Thunder Punch", "Toxic Spikes", "U-turn"], - "teraTypes": ["Grass", "Dark"] - } - ] - }, - "skeledirge": { - "level": 80, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Flame Charge", "Roar", "Shadow Ball", "Slack Off", "Torch Song"], - "teraTypes": ["Ghost", "Water", "Fairy"] - }, - { - "role": "Bulky Support", - "movepool": ["Hex", "Slack Off", "Torch Song", "Will-O-Wisp"], - "teraTypes": ["Ghost", "Water", "Fairy"] - } - ] - }, - "quaquaval": { - "level": 79, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Aqua Step", "Close Combat", "Ice Spinner", "Rapid Spin", "Roost", "U-turn"], - "teraTypes": ["Water", "Fighting"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Aqua Step", "Close Combat", "Ice Spinner", "Roost", "Swords Dance"], - "teraTypes": ["Water", "Fighting"] - } - ] - }, - "oinkologne": { - "level": 92, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Body Slam", "Stomping Tantrum", "Stuff Cheeks"], - "teraTypes": ["Fighting"] - } - ] - }, - "oinkolognef": { - "level": 92, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Body Slam", "Stomping Tantrum", "Stuff Cheeks"], - "teraTypes": ["Fighting"] - } - ] - }, - "dudunsparce": { - "level": 83, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Glare", "Headbutt", "Roost"], - "teraTypes": ["Ghost", "Ground"] - }, - { - "role": "Bulky Setup", - "movepool": ["Boomburst", "Calm Mind", "Earth Power", "Roost", "Shadow Ball"], - "teraTypes": ["Ghost"] - } - ] - }, - "dudunsparcethreesegment": { - "level": 83, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Glare", "Headbutt", "Roost"], - "teraTypes": ["Ghost", "Ground"] - }, - { - "role": "Bulky Setup", - "movepool": ["Boomburst", "Calm Mind", "Earth Power", "Roost", "Shadow Ball"], - "teraTypes": ["Ghost"] - } - ] - }, - "spidops": { - "level": 93, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Circle Throw", "Spikes", "Sticky Web", "Toxic Spikes", "U-turn"], - "teraTypes": ["Ghost"] - } - ] - }, - "lokix": { - "level": 82, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Axe Kick", "First Impression", "Leech Life", "Sucker Punch"], - "teraTypes": ["Bug"] - }, - { - "role": "Fast Attacker", - "movepool": ["Axe Kick", "First Impression", "Sucker Punch", "U-turn"], - "teraTypes": ["Bug"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Leech Life", "Sucker Punch", "Swords Dance", "Throat Chop"], - "teraTypes": ["Dark"] - } - ] - }, - "rabsca": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Bug Buzz", "Earth Power", "Psychic", "Revival Blessing", "Trick Room"], - "teraTypes": ["Steel"] - } - ] - }, - "houndstone": { - "level": 73, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Body Press", "Last Respects", "Trick", "Will-O-Wisp"], - "teraTypes": ["Ghost"] - } - ] - }, - "espathra": { - "level": 80, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Dazzling Gleam", "Lumina Crash", "Shadow Ball", "U-turn"], - "teraTypes": ["Psychic", "Fairy", "Ghost"] - }, - { - "role": "Fast Bulky Setup", - "movepool": ["Calm Mind", "Dazzling Gleam", "Protect", "Roost", "Stored Power", "Substitute"], - "teraTypes": ["Fairy"] - }, - { - "role": "Tera Blast user", - "movepool": ["Dazzling Gleam", "Lumina Crash", "Roost", "Tera Blast"], - "teraTypes": ["Fire", "Fighting"] - } - ] - }, - "farigiraf": { - "level": 90, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Foul Play", "Hyper Voice", "Protect", "Wish"], - "teraTypes": ["Dark"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Future Sight", "Hyper Voice", "Protect", "Wish"], - "teraTypes": ["Ground", "Water", "Fairy"] - }, - { - "role": "AV Pivot", - "movepool": ["Dazzling Gleam", "Earthquake", "Foul Play", "Future Sight", "Hyper Voice", "Psychic"], - "teraTypes": ["Dark"] - } - ] - }, - "wugtrio": { - "level": 90, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Jet", "Liquidation", "Memento", "Stomping Tantrum", "Sucker Punch", "Throat Chop"], - "teraTypes": ["Water", "Dark"] - } - ] - }, - "dondozo": { - "level": 79, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Curse", "Liquidation", "Rest", "Sleep Talk", "Wave Crash"], - "teraTypes": ["Fairy", "Ground", "Dragon"] - } - ] - }, - "veluza": { - "level": 84, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Aqua Cutter", "Aqua Jet", "Night Slash", "Psycho Cut"], - "teraTypes": ["Water"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Aqua Cutter", "Fillet Away", "Night Slash", "Psycho Cut"], - "teraTypes": ["Water", "Psychic", "Dark"] - } - ] - }, - "palafin": { - "level": 77, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Bulk Up", "Close Combat", "Flip Turn", "Ice Punch", "Jet Punch", "Wave Crash"], - "teraTypes": ["Water", "Fighting"] - } - ] - }, - "arboliva": { - "level": 89, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Dazzling Gleam", "Earth Power", "Energy Ball", "Hyper Voice", "Strength Sap"], - "teraTypes": ["Grass", "Fairy", "Ground"] - }, - { - "role": "Bulky Support", - "movepool": ["Hyper Voice", "Leech Seed", "Protect", "Substitute"], - "teraTypes": ["Water"] - } - ] - }, - "scovillain": { - "level": 90, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Flamethrower", "Leech Seed", "Protect", "Substitute"], - "teraTypes": ["Steel", "Water"] - }, - { - "role": "Fast Attacker", - "movepool": ["Flamethrower", "Giga Drain", "Leaf Storm", "Overheat"], - "teraTypes": ["Fire", "Grass"] - } - ] - }, - "bellibolt": { - "level": 85, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Muddy Water", "Slack Off", "Thunder Wave", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric", "Water"] - } - ] - }, - "revavroom": { - "level": 83, - "sets": [ - { - "role": "Tera Blast user", - "movepool": ["Gunk Shot", "Iron Head", "Shift Gear", "Tera Blast"], - "teraTypes": ["Water", "Ground"] - }, - { - "role": "Fast Support", - "movepool": ["Gunk Shot", "Haze", "Parting Shot", "Spin Out", "Toxic", "Toxic Spikes"], - "teraTypes": ["Water"] - } - ] - }, - "orthworm": { - "level": 86, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Coil", "Iron Tail", "Rest"], - "teraTypes": ["Fighting", "Electric"] - }, - { - "role": "Bulky Support", - "movepool": ["Body Press", "Iron Head", "Rest", "Shed Tail", "Spikes", "Stealth Rock"], - "teraTypes": ["Electric", "Poison"] - } - ] - }, - "maushold": { - "level": 76, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Bite", "Encore", "Population Bomb", "Tidy Up"], - "teraTypes": ["Normal"] - } - ] - }, - "mausholdfour": { - "level": 76, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Bite", "Encore", "Population Bomb", "Tidy Up"], - "teraTypes": ["Normal"] - } - ] - }, - "cetitan": { - "level": 82, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Earthquake", "Ice Shard", "Icicle Crash", "Liquidation", "Play Rough"], - "teraTypes": ["Water", "Fairy"] - }, - { - "role": "Bulky Setup", - "movepool": ["Belly Drum", "Earthquake", "Ice Shard", "Icicle Crash"], - "teraTypes": ["Ice"] - } - ] - }, - "baxcalibur": { - "level": 76, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Earthquake", "Glaive Rush", "Ice Shard", "Icicle Crash"], - "teraTypes": ["Dragon", "Ground"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Dragon Dance", "Earthquake", "Glaive Rush", "Icicle Crash"], - "teraTypes": ["Dragon", "Ground"] - } - ] - }, - "tatsugiri": { - "level": 85, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Draco Meteor", "Hydro Pump", "Nasty Plot", "Rapid Spin", "Surf"], - "teraTypes": ["Water"] - } - ] - }, - "cyclizar": { - "level": 83, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Draco Meteor", "Knock Off", "Rapid Spin", "Shed Tail", "Taunt"], - "teraTypes": ["Dragon", "Steel", "Ghost"] - } - ] - }, - "pawmot": { - "level": 80, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Double Shock", "Ice Punch", "Revival Blessing", "Volt Switch"], - "teraTypes": ["Electric"] - }, - { - "role": "Fast Support", - "movepool": ["Close Combat", "Ice Punch", "Nuzzle", "Revival Blessing", "Thunder Punch"], - "teraTypes": ["Fighting"] - } - ] - }, - "kilowattrel": { - "level": 83, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Hurricane", "Roost", "Thunder Wave", "Thunderbolt", "U-turn"], - "teraTypes": ["Flying", "Electric"] - } - ] - }, - "bombirdier": { - "level": 86, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Brave Bird", "Hone Claws", "Knock Off", "Stone Edge", "Sucker Punch", "U-turn"], - "teraTypes": ["Rock"] - } - ] - }, - "squawkabilly": { - "level": 87, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Brave Bird", "Facade", "Protect", "Quick Attack", "U-turn"], - "teraTypes": ["Normal"] - } - ] - }, - "squawkabillywhite": { - "level": 88, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Brave Bird", "Double-Edge", "Foul Play", "Parting Shot", "Quick Attack"], - "teraTypes": ["Flying", "Dark", "Normal"] - } - ] - }, - "squawkabillyblue": { - "level": 87, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Brave Bird", "Facade", "Protect", "Quick Attack", "U-turn"], - "teraTypes": ["Normal"] - } - ] - }, - "squawkabillyyellow": { - "level": 88, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Brave Bird", "Double-Edge", "Foul Play", "Parting Shot", "Quick Attack"], - "teraTypes": ["Flying", "Dark", "Normal"] - } - ] - }, - "flamigo": { - "level": 83, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Brave Bird", "Close Combat", "Swords Dance", "Throat Chop", "U-turn"], - "teraTypes": ["Fighting"] - } - ] - }, - "klawf": { - "level": 89, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Crabhammer", "High Horsepower", "Knock Off", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Water", "Ground", "Dark", "Rock"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Crabhammer", "High Horsepower", "Knock Off", "Stone Edge", "Swords Dance"], - "teraTypes": ["Water", "Ground", "Dark", "Rock"] - } - ] - }, - "garganacl": { - "level": 82, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Body Press", "Curse", "Recover", "Stone Edge"], - "teraTypes": ["Fighting", "Fairy", "Dragon"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Earthquake", "Protect", "Recover", "Salt Cure"], - "teraTypes": ["Ghost"] - }, - { - "role": "Bulky Support", - "movepool": ["Body Press", "Recover", "Salt Cure", "Stealth Rock", "Stone Edge"], - "teraTypes": ["Ghost"] - } - ] - }, - "glimmora": { - "level": 78, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Earth Power", "Energy Ball", "Mortal Spin", "Power Gem", "Sludge Wave", "Spikes", "Stealth Rock", "Toxic"], - "teraTypes": ["Ground"] - } - ] - }, - "grafaiai": { - "level": 85, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Gunk Shot", "Knock Off", "Super Fang", "Switcheroo", "U-turn"], - "teraTypes": ["Dark"] - }, - { - "role": "Fast Support", - "movepool": ["Encore", "Knock Off", "Protect", "Substitute", "Toxic"], - "teraTypes": ["Dark"] - }, - { - "role": "Bulky Support", - "movepool": ["Encore", "Gunk Shot", "Knock Off", "Parting Shot"], - "teraTypes": ["Dark"] - } - ] - }, - "dachsbun": { - "level": 90, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Body Press", "Play Rough", "Protect", "Wish"], - "teraTypes": ["Steel"] - } - ] - }, - "mabosstiff": { - "level": 84, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Crunch", "Fire Fang", "Play Rough", "Psychic Fangs", "Wild Charge"], - "teraTypes": ["Dark", "Fairy"] - } - ] - }, - "brambleghast": { - "level": 88, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Power Whip", "Rapid Spin", "Shadow Sneak", "Spikes", "Strength Sap"], - "teraTypes": ["Steel", "Water", "Fairy"] - }, - { - "role": "Fast Support", - "movepool": ["Leech Seed", "Phantom Force", "Power Whip", "Substitute"], - "teraTypes": ["Steel", "Water", "Fairy"] - } - ] - }, - "gholdengo": { - "level": 78, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Focus Blast", "Make It Rain", "Nasty Plot", "Recover", "Shadow Ball", "Trick"], - "teraTypes": ["Steel", "Ghost"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Make It Rain", "Recover", "Shadow Ball", "Thunder Wave"], - "teraTypes": ["Dark", "Water", "Steel"] - } - ] - }, - "greattusk": { - "level": 78, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Ice Spinner", "Rapid Spin"], - "teraTypes": ["Ground", "Fighting"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Close Combat", "Headlong Rush", "Ice Spinner", "Knock Off", "Rapid Spin", "Stealth Rock"], - "teraTypes": ["Ground", "Dark"] - } - ] - }, - "brutebonnet": { - "level": 82, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Close Combat", "Crunch", "Seed Bomb", "Spore", "Sucker Punch"], - "teraTypes": ["Dark", "Fighting"] - } - ] - }, - "sandyshocks": { - "level": 81, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Earth Power", "Spikes", "Stealth Rock", "Thunder Wave", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Electric", "Ground"] - }, - { - "role": "Tera Blast user", - "movepool": ["Earth Power", "Tera Blast", "Thunderbolt", "Volt Switch"], - "teraTypes": ["Flying", "Ice"] - } - ] - }, - "screamtail": { - "level": 84, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Encore", "Play Rough", "Protect", "Thunder Wave", "Wish"], - "teraTypes": ["Steel"] - } - ] - }, - "fluttermane": { - "level": 74, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Moonblast", "Mystical Fire", "Psyshock", "Shadow Ball", "Thunderbolt"], - "teraTypes": ["Ghost", "Fairy", "Fire", "Electric", "Psychic"] - } - ] - }, - "slitherwing": { - "level": 82, - "sets": [ - { - "role": "Bulky Setup", - "movepool": ["Bulk Up", "Close Combat", "Earthquake", "Flame Charge", "Leech Life", "Wild Charge"], - "teraTypes": ["Fighting", "Electric"] - }, - { - "role": "Fast Attacker", - "movepool": ["Close Combat", "Earthquake", "First Impression", "Flare Blitz", "U-turn", "Wild Charge"], - "teraTypes": ["Bug", "Fighting", "Electric"] - } - ] - }, - "roaringmoon": { - "level": 74, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Crunch", "Dragon Dance", "Earthquake", "Outrage", "Roost"], - "teraTypes": ["Dark", "Dragon", "Ground"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Crunch", "Iron Head", "Outrage", "U-turn"], - "teraTypes": ["Dark", "Dragon", "Steel"] - } - ] - }, - "walkingwake": { - "level": 80, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Draco Meteor", "Flamethrower", "Hurricane", "Hydro Pump"], - "teraTypes": ["Water", "Fire"] - }, - { - "role": "Fast Attacker", - "movepool": ["Draco Meteor", "Flamethrower", "Hydro Steam", "Sunny Day"], - "teraTypes": ["Fire"] - } - ] - }, - "irontreads": { - "level": 78, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Earthquake", "Iron Head", "Knock Off", "Rapid Spin", "Stealth Rock", "Stone Edge", "Volt Switch"], - "teraTypes": ["Ground", "Steel"] - } - ] - }, - "ironmoth": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Discharge", "Energy Ball", "Fiery Dance", "Fire Blast", "Sludge Wave", "U-turn"], - "teraTypes": ["Fire", "Grass"] - }, - { - "role": "Fast Support", - "movepool": ["Energy Ball", "Fiery Dance", "Morning Sun", "Sludge Wave", "Toxic Spikes", "U-turn"], - "teraTypes": ["Fire", "Grass"] - } - ] - }, - "ironhands": { - "level": 80, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Close Combat", "Drain Punch", "Fake Out", "Heavy Slam", "Ice Punch", "Thunder Punch", "Volt Switch", "Wild Charge"], - "teraTypes": ["Electric"] - } - ] - }, - "ironjugulis": { - "level": 79, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Earth Power", "Fire Blast", "Hurricane", "Hydro Pump", "U-turn"], - "teraTypes": ["Dark", "Flying", "Ground"] - } - ] - }, - "ironthorns": { - "level": 84, - "sets": [ - { - "role": "Fast Support", - "movepool": ["Earthquake", "Spikes", "Stealth Rock", "Stone Edge", "Thunder Punch", "Volt Switch"], - "teraTypes": ["Grass", "Water"] - }, - { - "role": "Bulky Setup", - "movepool": ["Dragon Dance", "Earthquake", "Ice Punch", "Stone Edge", "Wild Charge"], - "teraTypes": ["Rock", "Ground"] - } - ] - }, - "ironbundle": { - "level": 76, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Encore", "Flip Turn", "Freeze-Dry", "Hydro Pump", "Ice Beam", "Substitute"], - "teraTypes": ["Water", "Ice"] - } - ] - }, - "ironvaliant": { - "level": 79, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Close Combat", "Knock Off", "Spirit Break", "Swords Dance"], - "teraTypes": ["Dark", "Fighting"] - }, - { - "role": "Fast Attacker", - "movepool": ["Calm Mind", "Close Combat", "Moonblast", "Psychic"], - "teraTypes": ["Fighting", "Fairy"] - } - ] - }, - "ironleaves": { - "level": 81, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Close Combat", "Leaf Blade", "Psyblade", "Swords Dance"], - "teraTypes": ["Fighting"] - }, - { - "role": "Wallbreaker", - "movepool": ["Close Combat", "Leaf Blade", "Megahorn", "Psyblade", "Wild Charge"], - "teraTypes": ["Fighting"] - } - ] - }, - "tinglu": { - "level": 78, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earthquake", "Ruination", "Spikes", "Stealth Rock", "Throat Chop", "Whirlwind"], - "teraTypes": ["Ground", "Ghost", "Poison"] - }, - { - "role": "Bulky Attacker", - "movepool": ["Body Press", "Earthquake", "Heavy Slam", "Ruination", "Stone Edge", "Throat Chop"], - "teraTypes": ["Ground", "Fighting", "Steel", "Poison"] - } - ] - }, - "chienpao": { - "level": 73, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Crunch", "Ice Shard", "Ice Spinner", "Sacred Sword", "Sucker Punch", "Swords Dance"], - "teraTypes": ["Dark", "Ice", "Fighting"] - } - ] - }, - "wochien": { - "level": 83, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Energy Ball", "Knock Off", "Leech Seed", "Protect", "Ruination", "Stun Spore"], - "teraTypes": ["Poison"] - } - ] - }, - "chiyu": { - "level": 77, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Dark Pulse", "Fire Blast", "Nasty Plot", "Psychic", "Will-O-Wisp"], - "teraTypes": ["Dark", "Fire"] - }, - { - "role": "Fast Attacker", - "movepool": ["Dark Pulse", "Flamethrower", "Overheat", "Psychic"], - "teraTypes": ["Dark", "Fire"] - } - ] - }, - "koraidon": { - "level": 66, - "sets": [ - { - "role": "Fast Attacker", - "movepool": ["Collision Course", "Flare Blitz", "Outrage", "Swords Dance", "U-turn"], - "teraTypes": ["Fire"] - } - ] - }, - "miraidon": { - "level": 66, - "sets": [ - { - "role": "Fast Bulky Setup", - "movepool": ["Calm Mind", "Draco Meteor", "Electro Drift", "Substitute"], - "teraTypes": ["Electric"] - }, - { - "role": "Fast Attacker", - "movepool": ["Draco Meteor", "Electro Drift", "Overheat", "Volt Switch"], - "teraTypes": ["Electric"] - } - ] - }, - "tinkaton": { - "level": 83, - "sets": [ - { - "role": "Bulky Attacker", - "movepool": ["Encore", "Gigaton Hammer", "Knock Off", "Play Rough", "Stealth Rock", "Thunder Wave"], - "teraTypes": ["Steel"] - }, - { - "role": "Setup Sweeper", - "movepool": ["Gigaton Hammer", "Knock Off", "Play Rough", "Swords Dance"], - "teraTypes": ["Steel"] - } - ] - }, - "armarouge": { - "level": 82, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Armor Cannon", "Aura Sphere", "Energy Ball", "Focus Blast", "Psyshock"], - "teraTypes": ["Fire", "Fighting", "Psychic", "Grass"] - } - ] - }, - "ceruledge": { - "level": 78, - "sets": [ - { - "role": "Setup Sweeper", - "movepool": ["Bitter Blade", "Close Combat", "Shadow Sneak", "Swords Dance"], - "teraTypes": ["Fire", "Fighting"] - } - ] - }, - "toedscruel": { - "level": 86, - "sets": [ - { - "role": "Bulky Support", - "movepool": ["Earth Power", "Giga Drain", "Knock Off", "Leaf Storm", "Rapid Spin", "Spore", "Toxic"], - "teraTypes": ["Water"] - } - ] - }, - "kingambit": { - "level": 77, - "sets": [ - { - "role": "Wallbreaker", - "movepool": ["Iron Head", "Kowtow Cleave", "Stealth Rock", "Sucker Punch", "Swords Dance"], - "teraTypes": ["Dark", "Flying"] - } - ] - } -} diff --git a/data/random-teams.ts b/data/random-teams.ts deleted file mode 100644 index 1dd4892acd30..000000000000 --- a/data/random-teams.ts +++ /dev/null @@ -1,2202 +0,0 @@ -import {Dex, toID} from '../sim/dex'; -import {Utils} from '../lib'; -import {PRNG, PRNGSeed} from '../sim/prng'; -import {RuleTable} from '../sim/dex-formats'; -import {Tags} from './tags'; - -export interface TeamData { - typeCount: {[k: string]: number}; - typeComboCount: {[k: string]: number}; - baseFormes: {[k: string]: number}; - megaCount?: number; - zCount?: number; - has: {[k: string]: number}; - forceResult: boolean; - weaknesses: {[k: string]: number}; - resistances: {[k: string]: number}; - weather?: string; - eeveeLimCount?: number; - gigantamax?: boolean; -} -export interface BattleFactorySpecies { - flags: {limEevee?: 1}; - sets: BattleFactorySet[]; -} -interface BattleFactorySet { - species: string; - item: string; - ability: string; - nature: string; - moves: string[]; - evs?: Partial; - ivs?: Partial; -} -export class MoveCounter extends Utils.Multiset { - damagingMoves: Set; - stabCounter: number; - ironFist: number; - - constructor() { - super(); - this.damagingMoves = new Set(); - this.stabCounter = 0; - this.ironFist = 0; - } - - get(key: string): number { - return super.get(key) || 0; - } -} - -type MoveEnforcementChecker = ( - movePool: string[], moves: Set, abilities: Set, types: string[], - counter: MoveCounter, species: Species, teamDetails: RandomTeamsTypes.TeamDetails, - isLead: boolean, isDoubles: boolean, teraType: string, role: string, -) => boolean; - -// Moves that restore HP: -const RecoveryMove = [ - 'healorder', 'milkdrink', 'moonlight', 'morningsun', 'recover', 'roost', 'shoreup', 'slackoff', 'softboiled', 'strengthsap', 'synthesis', -]; -// Moves that drop stats: -const ContraryMoves = [ - 'armorcannon', 'closecombat', 'leafstorm', 'makeitrain', 'overheat', 'spinout', 'superpower', 'vcreate', -]; -// Moves that boost Attack: -const PhysicalSetup = [ - 'bellydrum', 'bulkup', 'coil', 'curse', 'dragondance', 'honeclaws', 'howl', 'meditate', 'poweruppunch', 'swordsdance', 'tidyup', 'victorydance', -]; -// Moves which boost Special Attack: -const SpecialSetup = [ - 'calmmind', 'chargebeam', 'geomancy', 'nastyplot', 'quiverdance', 'tailglow', 'torchsong', -]; -// Moves that boost Attack AND Special Attack: -const MixedSetup = [ - 'clangoroussoul', 'growth', 'happyhour', 'holdhands', 'noretreat', 'shellsmash', 'workup', -]; -// Some moves that only boost Speed: -const SpeedSetup = [ - 'agility', 'autotomize', 'rockpolish', -]; -// Conglomerate for ease of access -const Setup = [ - 'acidarmor', 'agility', 'autotomize', 'bellydrum', 'bulkup', 'calmmind', 'coil', 'curse', 'dragondance', 'flamecharge', - 'growth', 'honeclaws', 'howl', 'irondefense', 'meditate', 'nastyplot', 'noretreat', 'poweruppunch', 'quiverdance', 'rockpolish', - 'shellsmash', 'shiftgear', 'swordsdance', 'tailglow', 'tidyup', 'trailblaze', 'workup', 'victorydance', -]; -// Moves that shouldn't be the only STAB moves: -const NoStab = [ - 'accelerock', 'aquajet', 'beakblast', 'bounce', 'breakingswipe', 'chatter', 'chloroblast', 'clearsmog', 'dragontail', 'eruption', - 'explosion', 'fakeout', 'flamecharge', 'flipturn', 'iceshard', 'icywind', 'incinerate', 'machpunch', 'meteorbeam', - 'mortalspin', 'pluck', 'pursuit', 'quickattack', 'rapidspin', 'reversal', 'selfdestruct', 'shadowsneak', - 'skydrop', 'snarl', 'suckerpunch', 'uturn', 'watershuriken', 'vacuumwave', 'voltswitch', 'waterspout', -]; -// Hazard-setting moves -const Hazards = [ - 'spikes', 'stealthrock', 'stickyweb', 'toxicspikes', -]; - -// Moves that should be paired together when possible -const MovePairs = [ - ['lightscreen', 'reflect'], - ['sleeptalk', 'rest'], - ['protect', 'wish'], - ['leechseed', 'protect'], -]; - -/** Pokemon who always want priority STAB, and are fine with it as its only STAB move of that type */ -const priorityPokemon = [ - 'banette', 'breloom', 'brutebonnet', 'cacturne', 'giratinaorigin', 'lycanrocdusk', 'mimikyu', 'scizor', -]; - -/** Pokemon who should never be in the lead slot */ -const noLeadPokemon = [ - 'Basculegion', 'Houndstone', 'Rillaboom', 'Zacian', 'Zamazenta', -]; - -function sereneGraceBenefits(move: Move) { - return move.secondary?.chance && move.secondary.chance > 20 && move.secondary.chance < 100; -} - -export class RandomTeams { - dex: ModdedDex; - gen: number; - factoryTier: string; - format: Format; - prng: PRNG; - noStab: string[]; - readonly maxTeamSize: number; - readonly adjustLevel: number | null; - readonly maxMoveCount: number; - readonly forceMonotype: string | undefined; - - /** - * Checkers for move enforcement based on types or other factors - * - * returns true to try to force the move type, false otherwise. - */ - moveEnforcementCheckers: {[k: string]: MoveEnforcementChecker}; - - constructor(format: Format | string, prng: PRNG | PRNGSeed | null) { - format = Dex.formats.get(format); - this.dex = Dex.forFormat(format); - this.gen = this.dex.gen; - this.noStab = NoStab; - - const ruleTable = Dex.formats.getRuleTable(format); - this.maxTeamSize = ruleTable.maxTeamSize; - this.adjustLevel = ruleTable.adjustLevel; - this.maxMoveCount = ruleTable.maxMoveCount; - const forceMonotype = ruleTable.valueRules.get('forcemonotype'); - this.forceMonotype = forceMonotype && this.dex.types.get(forceMonotype).exists ? - this.dex.types.get(forceMonotype).name : undefined; - - this.factoryTier = ''; - this.format = format; - this.prng = prng && !Array.isArray(prng) ? prng : new PRNG(prng); - - this.moveEnforcementCheckers = { - Bug: (movePool) => movePool.includes('megahorn'), - Dark: (movePool, moves, abilities, types, counter) => !counter.get('Dark'), - Dragon: (movePool, moves, abilities, types, counter) => ( - !counter.get('Dragon') && - !movePool.includes('dualwingbeat') - ), - Electric: (movePool, moves, abilities, types, counter) => !counter.get('Electric'), - Fairy: (movePool, moves, abilities, types, counter) => !counter.get('Fairy'), - Fighting: (movePool, moves, abilities, types, counter) => !counter.get('Fighting'), - Fire: (movePool, moves, abilities, types, counter, species) => !counter.get('Fire'), - Flying: (movePool, moves, abilities, types, counter) => !counter.get('Flying'), - Ghost: (movePool, moves, abilities, types, counter) => !counter.get('Ghost'), - Grass: (movePool, moves, abilities, types, counter, species) => ( - !counter.get('Grass') && ( - movePool.includes('leafstorm') || species.baseStats.atk >= 100 || - types.includes('Electric') || abilities.has('Seed Sower') - ) - ), - Ground: (movePool, moves, abilities, types, counter) => !counter.get('Ground'), - Ice: (movePool, moves, abilities, types, counter) => (movePool.includes('freezedry') || !counter.get('Ice')), - Normal: (movePool, moves, types, counter) => (movePool.includes('boomburst') || movePool.includes('hypervoice')), - Poison: (movePool, moves, abilities, types, counter) => { - if (types.includes('Ground')) return false; - return !counter.get('Poison'); - }, - Psychic: (movePool, moves, abilities, types, counter) => { - if (counter.get('Psychic')) return false; - if (movePool.includes('calmmind') || movePool.includes('psychicfangs') || movePool.includes('psychocut')) return true; - return abilities.has('Psychic Surge') || types.includes('Fire') || types.includes('Electric'); - }, - Rock: (movePool, moves, abilities, types, counter, species) => !counter.get('Rock') && species.baseStats.atk >= 80, - Steel: (movePool, moves, abilities, types, counter, species) => { - if (species.baseStats.atk <= 95 && !movePool.includes('makeitrain')) return false; - return !counter.get('Steel'); - }, - Water: (movePool, moves, abilities, types, counter, species) => { - if (types.includes('Ground')) return false; - return !counter.get('Water'); - }, - }; - } - - setSeed(prng?: PRNG | PRNGSeed) { - this.prng = prng && !Array.isArray(prng) ? prng : new PRNG(prng); - } - - getTeam(options?: PlayerOptions | null): PokemonSet[] { - const generatorName = ( - typeof this.format.team === 'string' && this.format.team.startsWith('random') - ) ? this.format.team + 'Team' : ''; - // @ts-ignore - return this[generatorName || 'randomTeam'](options); - } - - randomChance(numerator: number, denominator: number) { - return this.prng.randomChance(numerator, denominator); - } - - sample(items: readonly T[]): T { - return this.prng.sample(items); - } - - sampleIfArray(item: T | T[]): T { - if (Array.isArray(item)) { - return this.sample(item); - } - return item; - } - - random(m?: number, n?: number) { - return this.prng.next(m, n); - } - - /** - * Remove an element from an unsorted array significantly faster - * than .splice - */ - fastPop(list: any[], index: number) { - // If an array doesn't need to be in order, replacing the - // element at the given index with the removed element - // is much, much faster than using list.splice(index, 1). - const length = list.length; - if (index < 0 || index >= list.length) { - // sanity check - throw new Error(`Index ${index} out of bounds for given array`); - } - - const element = list[index]; - list[index] = list[length - 1]; - list.pop(); - return element; - } - - /** - * Remove a random element from an unsorted array and return it. - * Uses the battle's RNG if in a battle. - */ - sampleNoReplace(list: any[]) { - const length = list.length; - if (length === 0) return null; - const index = this.random(length); - return this.fastPop(list, index); - } - - /** - * Removes n random elements from an unsorted array and returns them. - * If n is less than the array's length, randomly removes and returns all the elements - * in the array (so the returned array could have length < n). - */ - multipleSamplesNoReplace(list: T[], n: number): T[] { - const samples = []; - while (samples.length < n && list.length) { - samples.push(this.sampleNoReplace(list)); - } - - return samples; - } - - /** - * Check if user has directly tried to ban/unban/restrict things in a custom battle. - * Doesn't count bans nested inside other formats/rules. - */ - private hasDirectCustomBanlistChanges() { - if (this.format.banlist.length || this.format.restricted.length || this.format.unbanlist.length) return true; - if (!this.format.customRules) return false; - for (const rule of this.format.customRules) { - for (const banlistOperator of ['-', '+', '*']) { - if (rule.startsWith(banlistOperator)) return true; - } - } - return false; - } - - /** - * Inform user when custom bans are unsupported in a team generator. - */ - protected enforceNoDirectCustomBanlistChanges() { - if (this.hasDirectCustomBanlistChanges()) { - throw new Error(`Custom bans are not currently supported in ${this.format.name}.`); - } - } - - /** - * Inform user when complex bans are unsupported in a team generator. - */ - protected enforceNoDirectComplexBans() { - if (!this.format.customRules) return false; - for (const rule of this.format.customRules) { - if (rule.includes('+') && !rule.startsWith('+')) { - throw new Error(`Complex bans are not currently supported in ${this.format.name}.`); - } - } - } - - /** - * Validate set element pool size is sufficient to support size requirements after simple bans. - */ - private enforceCustomPoolSizeNoComplexBans( - effectTypeName: string, - basicEffectPool: BasicEffect[], - requiredCount: number, - requiredCountExplanation: string - ) { - if (basicEffectPool.length >= requiredCount) return; - throw new Error(`Legal ${effectTypeName} count is insufficient to support ${requiredCountExplanation} (${basicEffectPool.length} / ${requiredCount}).`); - } - - queryMoves( - moves: Set | null, - species: Species, - teraType: string, - abilities: Set = new Set(), - ): MoveCounter { - // This is primarily a helper function for random setbuilder functions. - const counter = new MoveCounter(); - const types = species.types; - if (!moves?.size) return counter; - - const categories = {Physical: 0, Special: 0, Status: 0}; - - // Iterate through all moves we've chosen so far and keep track of what they do: - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - - const moveType = this.getMoveType(move, species, abilities, teraType); - if (move.damage || move.damageCallback) { - // Moves that do a set amount of damage: - counter.add('damage'); - counter.damagingMoves.add(move); - } else { - // Are Physical/Special/Status moves: - categories[move.category]++; - } - // Moves that have a low base power: - if (moveid === 'lowkick' || (move.basePower && move.basePower <= 60 && moveid !== 'rapidspin')) { - counter.add('technician'); - } - // Moves that hit up to 5 times: - if (move.multihit && Array.isArray(move.multihit) && move.multihit[1] === 5) counter.add('skilllink'); - if (move.recoil || move.hasCrashDamage) counter.add('recoil'); - if (move.drain) counter.add('drain'); - // Moves which have a base power, but aren't super-weak: - if (move.basePower > 30 || move.multihit || move.basePowerCallback) { - if (!this.noStab.includes(moveid) || priorityPokemon.includes(species.id) && move.priority > 0) { - counter.add(moveType); - if (types.includes(moveType)) counter.stabCounter++; - if (teraType === moveType) counter.add('stabtera'); - } - if (move.flags['bite']) counter.add('strongjaw'); - if (move.flags['punch']) counter.ironFist++; - if (move.flags['sound']) counter.add('sound'); - if (move.priority > 0 || (moveid === 'grassyglide' && abilities.has('Grassy Surge'))) { - counter.add('priority'); - } - counter.damagingMoves.add(move); - } - // Moves with secondary effects: - if (move.secondary || move.hasSheerForce) { - counter.add('sheerforce'); - if (sereneGraceBenefits(move)) { - counter.add('serenegrace'); - } - } - // Moves with low accuracy: - if (move.accuracy && move.accuracy !== true && move.accuracy < 90) counter.add('inaccurate'); - - // Moves that change stats: - if (RecoveryMove.includes(moveid)) counter.add('recovery'); - if (ContraryMoves.includes(moveid)) counter.add('contrary'); - if (PhysicalSetup.includes(moveid)) counter.add('physicalsetup'); - if (SpecialSetup.includes(moveid)) counter.add('specialsetup'); - if (MixedSetup.includes(moveid)) counter.add('mixedsetup'); - if (SpeedSetup.includes(moveid)) counter.add('speedsetup'); - if (Setup.includes(moveid)) counter.add('setup'); - if (Hazards.includes(moveid)) counter.add('hazards'); - } - - counter.set('Physical', Math.floor(categories['Physical'])); - counter.set('Special', Math.floor(categories['Special'])); - counter.set('Status', categories['Status']); - return counter; - } - - cullMovePool( - types: string[], - moves: Set, - abilities: Set, - counter: MoveCounter, - movePool: string[], - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - teraType: string, - role: string, - ): void { - if (moves.size + movePool.length <= this.maxMoveCount) return; - // If we have two unfilled moves and only one unpaired move, cull the unpaired move. - if (moves.size === this.maxMoveCount - 2) { - const unpairedMoves = [...movePool]; - for (const pair of MovePairs) { - if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { - this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[0])); - this.fastPop(unpairedMoves, unpairedMoves.indexOf(pair[1])); - } - } - if (unpairedMoves.length === 1) { - this.fastPop(movePool, movePool.indexOf(unpairedMoves[0])); - } - } - - // These moves are paired, and shouldn't appear if there is not room for them both. - if (moves.size === this.maxMoveCount - 1) { - for (const pair of MovePairs) { - if (movePool.includes(pair[0]) && movePool.includes(pair[1])) { - this.fastPop(movePool, movePool.indexOf(pair[0])); - this.fastPop(movePool, movePool.indexOf(pair[1])); - } - } - } - - // Develop additional move lists - const pivotingMoves = ['chillyreception', 'flipturn', 'partingshot', 'shedtail', 'teleport', 'uturn', 'voltswitch']; - const statusMoves = this.dex.moves.all() - .filter(move => move.category === 'Status') - .map(move => move.id); - - // Team-based move culls - if (teamDetails.stickyWeb) { - if (movePool.includes('stickyweb')) this.fastPop(movePool, movePool.indexOf('stickyweb')); - if (moves.size + movePool.length <= this.maxMoveCount) return; - } - if (teamDetails.stealthRock) { - if (movePool.includes('stealthrock')) this.fastPop(movePool, movePool.indexOf('stealthrock')); - if (moves.size + movePool.length <= this.maxMoveCount) return; - } - if (teamDetails.defog || teamDetails.rapidSpin) { - if (movePool.includes('defog')) this.fastPop(movePool, movePool.indexOf('defog')); - if (movePool.includes('rapidspin')) this.fastPop(movePool, movePool.indexOf('rapidspin')); - if (moves.size + movePool.length <= this.maxMoveCount) return; - } - if (teamDetails.toxicSpikes && teamDetails.toxicSpikes >= 2) { - if (movePool.includes('toxicspikes')) this.fastPop(movePool, movePool.indexOf('toxicspikes')); - if (moves.size + movePool.length <= this.maxMoveCount) return; - } - if (teamDetails.spikes && teamDetails.spikes >= 2) { - if (movePool.includes('spikes')) this.fastPop(movePool, movePool.indexOf('spikes')); - if (moves.size + movePool.length <= this.maxMoveCount) return; - } - - // These moves don't mesh well with other aspects of the set - this.incompatibleMoves(moves, movePool, statusMoves, ['healingwish', 'switcheroo', 'trick']); - if (species.id !== "scyther" && species.id !== "scizor") { - this.incompatibleMoves(moves, movePool, Setup, pivotingMoves); - } - this.incompatibleMoves(moves, movePool, Setup, Hazards); - this.incompatibleMoves(moves, movePool, Setup, ['defog', 'nuzzle', 'toxic', 'waterspout', 'yawn', 'haze']); - this.incompatibleMoves(moves, movePool, PhysicalSetup, PhysicalSetup); - this.incompatibleMoves(moves, movePool, SpecialSetup, 'thunderwave'); - this.incompatibleMoves(moves, movePool, 'substitute', pivotingMoves); - this.incompatibleMoves(moves, movePool, SpeedSetup, ['aquajet', 'rest', 'trickroom']); - this.incompatibleMoves(moves, movePool, 'curse', 'rapidspin'); - this.incompatibleMoves(moves, movePool, 'dragondance', 'dracometeor'); - this.incompatibleMoves(moves, movePool, 'healingwish', 'uturn'); - - - // These attacks are redundant with each other - this.incompatibleMoves(moves, movePool, 'psychic', 'psyshock'); - this.incompatibleMoves(moves, movePool, 'surf', 'hydropump'); - this.incompatibleMoves(moves, movePool, 'liquidation', 'wavecrash'); - this.incompatibleMoves(moves, movePool, ['airslash', 'bravebird', 'hurricane'], ['airslash', 'bravebird', 'hurricane']); - this.incompatibleMoves(moves, movePool, ['knockoff', 'bite'], 'foulplay'); - this.incompatibleMoves(moves, movePool, 'doubleedge', 'headbutt'); - this.incompatibleMoves(moves, movePool, 'fireblast', ['fierydance', 'flamethrower']); - this.incompatibleMoves(moves, movePool, 'lavaplume', 'magmastorm'); - this.incompatibleMoves(moves, movePool, 'thunderpunch', 'wildcharge'); - this.incompatibleMoves(moves, movePool, 'gunkshot', ['direclaw', 'poisonjab']); - this.incompatibleMoves(moves, movePool, 'aurasphere', 'focusblast'); - this.incompatibleMoves(moves, movePool, 'closecombat', 'drainpunch'); - this.incompatibleMoves(moves, movePool, 'bugbite', 'pounce'); - this.incompatibleMoves(moves, movePool, 'bittermalice', 'shadowball'); - this.incompatibleMoves(moves, movePool, ['dragonpulse', 'spacialrend'], 'dracometeor'); - - - // These status moves are redundant with each other - this.incompatibleMoves(moves, movePool, ['taunt', 'strengthsap'], 'encore'); - this.incompatibleMoves(moves, movePool, 'taunt', 'disable'); - this.incompatibleMoves(moves, movePool, 'toxic', 'willowisp'); - this.incompatibleMoves(moves, movePool, ['thunderwave', 'toxic', 'willowisp'], 'toxicspikes'); - this.incompatibleMoves(moves, movePool, 'thunderwave', 'yawn'); - - // This space reserved for assorted hardcodes that otherwise make little sense out of context - if (species.id === "dugtrio") { - this.incompatibleMoves(moves, movePool, statusMoves, 'memento'); - } - if (species.id === "cyclizar") { - this.incompatibleMoves(moves, movePool, 'taunt', 'knockoff'); - } - // Landorus - this.incompatibleMoves(moves, movePool, 'nastyplot', 'rockslide'); - // Persian and Grafaiai - this.incompatibleMoves(moves, movePool, 'switcheroo', ['fakeout', 'superfang']); - // Beartic - this.incompatibleMoves(moves, movePool, 'snowscape', 'swordsdance'); - // Cryogonal - if (!teamDetails.defog && !teamDetails.rapidSpin && species.id === 'cryogonal') { - if (movePool.includes('haze')) this.fastPop(movePool, movePool.indexOf('haze')); - } - // Magnezone - this.incompatibleMoves(moves, movePool, 'bodypress', 'mirrorcoat'); - // Amoonguss, though this can work well as a general rule later - this.incompatibleMoves(moves, movePool, 'toxic', 'clearsmog'); - } - - // Checks for and removes incompatible moves, starting with the first move in movesA. - incompatibleMoves( - moves: Set, - movePool: string[], - movesA: string | string[], - movesB: string | string[], - ): void { - const moveArrayA = (Array.isArray(movesA)) ? movesA : [movesA]; - const moveArrayB = (Array.isArray(movesB)) ? movesB : [movesB]; - if (moves.size + movePool.length <= this.maxMoveCount) return; - for (const moveid1 of moves) { - if (moveArrayB.includes(moveid1)) { - for (const moveid2 of moveArrayA) { - if (moveid1 !== moveid2 && movePool.includes(moveid2)) { - this.fastPop(movePool, movePool.indexOf(moveid2)); - if (moves.size + movePool.length <= this.maxMoveCount) return; - } - } - } - if (moveArrayA.includes(moveid1)) { - for (const moveid2 of moveArrayB) { - if (moveid1 !== moveid2 && movePool.includes(moveid2)) { - this.fastPop(movePool, movePool.indexOf(moveid2)); - if (moves.size + movePool.length <= this.maxMoveCount) return; - } - } - } - } - } - - // Adds a move to the moveset, returns the MoveCounter - addMove( - move: string, - moves: Set, - types: string[], - abilities: Set, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - movePool: string[], - teraType: string, - role: string, - ): MoveCounter { - moves.add(move); - this.fastPop(movePool, movePool.indexOf(move)); - const counter = this.queryMoves(moves, species, teraType, abilities); - this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, isDoubles, teraType, role); - return counter; - } - - // Returns the type of a given move for STAB/coverage enforcement purposes - getMoveType(move: Move, species: Species, abilities: Set, teraType: string): string { - if (move.id === 'terablast') return teraType; - if (['judgment', 'revelationdance'].includes(move.id)) return species.types[0]; - - if (move.name === "Raging Bull" && species.name.startsWith("Tauros-Paldea")) { - if (species.name.endsWith("Combat")) return "Fighting"; - if (species.name.endsWith("Blaze")) return "Fire"; - if (species.name.endsWith("Aqua")) return "Water"; - } - - const moveType = move.type; - if (moveType === 'Normal') { - if (abilities.has('Aerilate')) return 'Flying'; - if (abilities.has('Galvanize')) return 'Electric'; - if (abilities.has('Pixilate')) return 'Fairy'; - if (abilities.has('Refrigerate')) return 'Ice'; - } - return moveType; - } - - // Generate random moveset for a given species, role, tera type. - randomMoveset( - types: string[], - abilities: Set, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - movePool: string[], - teraType: string, - role: string, - ): Set { - const moves = new Set(); - let counter = this.queryMoves(moves, species, teraType, abilities); - this.cullMovePool(types, moves, abilities, counter, movePool, teamDetails, species, isLead, isDoubles, teraType, role); - - // If there are only four moves, add all moves and return early - if (movePool.length <= this.maxMoveCount) { - for (const moveid of movePool) { - moves.add(moveid); - } - return moves; - } - - const runEnforcementChecker = (checkerName: string) => { - if (!this.moveEnforcementCheckers[checkerName]) return false; - return this.moveEnforcementCheckers[checkerName]( - movePool, moves, abilities, types, counter, species, teamDetails, isLead, isDoubles, teraType, role - ); - }; - - if (role === "Tera Blast user") { - counter = this.addMove('terablast', moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - // Add required move (e.g. Relic Song for Meloetta-P) - if (species.requiredMove) { - const move = this.dex.moves.get(species.requiredMove).id; - counter = this.addMove(move, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - - // Add other moves you really want to have, e.g. STAB, recovery, setup. - - // Enforce Facade if Guts is a possible ability - if (movePool.includes('facade') && abilities.has('Guts')) { - counter = this.addMove('facade', moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - - // Enforce Sticky Web - if (movePool.includes('stickyweb')) { - counter = this.addMove('stickyweb', moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - - // Enforce Revival Blessing - if (movePool.includes('revivalblessing')) { - counter = this.addMove('revivalblessing', moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - - // Enforce Salt Cure - if (movePool.includes('saltcure')) { - counter = this.addMove('saltcure', moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - - // Enforce Toxic on Grafaiai - if (movePool.includes('toxic') && species.id === 'grafaiai') { - counter = this.addMove('toxic', moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - - // Enforce STAB priority - if (role === 'Bulky Attacker' || role === 'Bulky Setup' || priorityPokemon.includes(species.id)) { - const priorityMoves = []; - for (const moveid of movePool) { - const move = this.dex.moves.get(moveid); - const moveType = this.getMoveType(move, species, abilities, teraType); - if (types.includes(moveType) && move.priority > 0 && move.category !== 'Status') { - priorityMoves.push(moveid); - } - } - if (priorityMoves.length) { - const moveid = this.sample(priorityMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - - // Enforce STAB - for (const type of types) { - // Check if a STAB move of that type should be required - const stabMoves = []; - for (const moveid of movePool) { - const move = this.dex.moves.get(moveid); - const moveType = this.getMoveType(move, species, abilities, teraType); - if (type === moveType && - (move.basePower > 30 || move.multihit || move.basePowerCallback) && - (!this.noStab.includes(moveid) || abilities.has('Technician') && moveid === 'machpunch')) { - stabMoves.push(moveid); - } - } - while (runEnforcementChecker(type)) { - if (!stabMoves.length) break; - const moveid = this.sampleNoReplace(stabMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - - // If no STAB move was added in the previous step, add a STAB move - if (!counter.stabCounter) { - const stabMoves = []; - for (const moveid of movePool) { - const move = this.dex.moves.get(moveid); - const moveType = this.getMoveType(move, species, abilities, teraType); - if (!this.noStab.includes(moveid) && (move.basePower > 30 || move.multihit || move.basePowerCallback) && - types.includes(moveType)) { - stabMoves.push(moveid); - } - } - if (stabMoves.length) { - const moveid = this.sample(stabMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - - // Enforce Tera STAB - if (!counter.get('stabtera') && role !== "Bulky Support" && species.baseSpecies !== 'Dudunsparce') { - const stabMoves = []; - for (const moveid of movePool) { - const move = this.dex.moves.get(moveid); - const moveType = this.getMoveType(move, species, abilities, teraType); - if (!this.noStab.includes(moveid) && (move.basePower > 30 || move.multihit || move.basePowerCallback)) { - if (teraType === moveType) { - stabMoves.push(moveid); - } - } - } - if (stabMoves.length) { - const moveid = this.sample(stabMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - - // Enforce recovery - if (["Bulky Support", "Bulky Attacker", "Bulky Setup"].includes(role)) { - const recoveryMoves = movePool.filter(moveid => RecoveryMove.includes(moveid)); - if (recoveryMoves.length) { - const moveid = this.sample(recoveryMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - - // Enforce setup - if (role.includes('Setup') || role === 'Tera Blast user') { - // First, try to add a non-Speed setup move - const nonSpeedSetupMoves = movePool.filter(moveid => Setup.includes(moveid) && !SpeedSetup.includes(moveid)); - if (nonSpeedSetupMoves.length) { - const moveid = this.sample(nonSpeedSetupMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } else { - // No non-Speed setup moves, so add any (Speed) setup move - const setupMoves = movePool.filter(moveid => Setup.includes(moveid)); - if (setupMoves.length) { - const moveid = this.sample(setupMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - } - - // Enforce coverage move - if (!['AV Pivot', 'Fast Support', 'Bulky Support'].includes(role)) { - if (counter.damagingMoves.size <= 1) { - // Find the type of the current attacking move - let currentAttackType: string; - for (const moveid of moves) { - const move = this.dex.moves.get(moveid); - if (move.basePower > 30 || move.multihit || move.basePowerCallback) { - const moveType = this.getMoveType(move, species, abilities, teraType); - currentAttackType = moveType; - } - } - // Choose an attacking move that is of different type to the current single attack - const coverageMoves = []; - for (const moveid of movePool) { - const move = this.dex.moves.get(moveid); - const moveType = this.getMoveType(move, species, abilities, teraType); - if (!this.noStab.includes(moveid) && (move.basePower > 30 || move.multihit || move.basePowerCallback)) { - if (currentAttackType! !== moveType) coverageMoves.push(moveid); - } - } - if (coverageMoves.length) { - const moveid = this.sample(coverageMoves); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - } - - // Add (moves.size < this.maxMoveCount) as a condition if moves is getting larger than 4 moves. - // If you want moves to be favored but not required, add something like && this.randomChance(1, 2) to your condition. - - // Choose remaining moves randomly from movepool and add them to moves list: - while (moves.size < this.maxMoveCount && movePool.length) { - if (moves.size + movePool.length <= this.maxMoveCount) { - for (const moveid of movePool) { - moves.add(moveid); - } - break; - } - const moveid = this.sample(movePool); - counter = this.addMove(moveid, moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - for (const pair of MovePairs) { - if (moveid === pair[0] && movePool.includes(pair[1])) { - counter = this.addMove(pair[1], moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - if (moveid === pair[1] && movePool.includes(pair[0])) { - counter = this.addMove(pair[0], moves, types, abilities, teamDetails, species, isLead, isDoubles, - movePool, teraType, role); - } - } - } - return moves; - } - - shouldCullAbility( - ability: string, - types: string[], - moves: Set, - abilities: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - teraType: string, - role: string, - ): boolean { - if ([ - 'Armor Tail', 'Battle Bond', 'Early Bird', 'Flare Boost', 'Gluttony', 'Harvest', 'Hydration', 'Ice Body', 'Immunity', - 'Moody', 'Own Tempo', 'Pressure', 'Quick Feet', 'Rain Dish', 'Sand Veil', 'Snow Cloak', 'Steadfast', 'Steam Engine', - ].includes(ability)) return true; - - switch (ability) { - // Abilities which are primarily useful for certain moves - case 'Contrary': case 'Serene Grace': case 'Skill Link': case 'Strong Jaw': - return !counter.get(toID(ability)); - case 'Chlorophyll': - return (!moves.has('sunnyday') && !teamDetails.sun && species.id !== 'lilligant'); - case 'Cloud Nine': - return (species.id !== 'golduck'); - case 'Competitive': - return (species.id === 'kilowattrel'); - case 'Compound Eyes': case 'No Guard': - return !counter.get('inaccurate'); - case 'Cursed Body': - return abilities.has('Infiltrator'); - case 'Defiant': - return (!counter.get('Physical') || (abilities.has('Prankster') && (moves.has('thunderwave') || moves.has('taunt')))); - case 'Flash Fire': - return ( - ['Flame Body', 'Intimidate', 'Rock Head', 'Weak Armor'].some(m => abilities.has(m)) && - this.dex.getEffectiveness('Fire', species) < 0 - ); - case 'Guts': - return (!moves.has('facade') && !moves.has('sleeptalk')); - case 'Hustle': - return (counter.get('Physical') < 2); - case 'Infiltrator': - return (isDoubles && abilities.has('Clear Body')); - case 'Insomnia': - return (role === 'Wallbreaker'); - case 'Intimidate': - if (abilities.has('Hustle')) return true; - if (abilities.has('Sheer Force') && !!counter.get('sheerforce')) return true; - return (abilities.has('Stakeout')); - case 'Iron Fist': - return !counter.ironFist; - case 'Justified': - return !counter.get('Physical'); - case 'Mold Breaker': - return (abilities.has('Sharpness') || abilities.has('Unburden')); - case 'Moxie': - return (!counter.get('Physical') || moves.has('stealthrock')); - case 'Natural Cure': - return species.id === 'pawmot'; - case 'Overgrow': - return !counter.get('Grass'); - case 'Prankster': - return !counter.get('Status'); - case 'Reckless': - return !counter.get('recoil'); - case 'Rock Head': - return !counter.get('recoil'); - case 'Sand Force': case 'Sand Rush': - return !teamDetails.sand; - case 'Sap Sipper': - return species.id === 'wyrdeer'; - case 'Seed Sower': - return role === 'Bulky Support'; - case 'Shed Skin': - return species.id === 'seviper'; - case 'Sheer Force': - const braviaryCase = (species.id === 'braviaryhisui' && role === 'Wallbreaker'); - const abilitiesCase = (abilities.has('Guts') || abilities.has('Sharpness')); - return (!counter.get('sheerforce') || moves.has('bellydrum') || braviaryCase || abilitiesCase); - case 'Slush Rush': - return !teamDetails.snow; - case 'Sniper': - return abilities.has('Torrent'); - case 'Solar Power': - return (!teamDetails.sun || !counter.get('Special')); - case 'Sturdy': - return !!counter.get('recoil'); - case 'Swarm': - return (!counter.get('Bug') || !!counter.get('recovery')); - case 'Sweet Veil': - return types.includes('Grass'); - case 'Swift Swim': - return (!moves.has('raindance') && !teamDetails.rain); - case 'Synchronize': - return (species.id !== 'umbreon' && species.id !== 'rabsca'); - case 'Technician': - return (!counter.get('technician') || abilities.has('Punk Rock')); - case 'Tinted Lens': - return (species.id === 'braviaryhisui' && role === 'Fast Support'); - case 'Unburden': - return (abilities.has('Prankster') || !counter.get('setup')); - case 'Volt Absorb': - if (abilities.has('Iron Fist') && counter.ironFist >= 2) return true; - return (this.dex.getEffectiveness('Electric', species) < -1); - case 'Water Absorb': - return species.id === 'quagsire'; - case 'Weak Armor': - return moves.has('shellsmash'); - } - - return false; - } - - - getAbility( - types: string[], - moves: Set, - abilities: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - teraType: string, - role: string, - ): string { - const abilityData = Array.from(abilities).map(a => this.dex.abilities.get(a)); - Utils.sortBy(abilityData, abil => -abil.rating); - - if (abilityData.length <= 1) return abilityData[0].name; - - // Hard-code abilities here - if (species.id === 'arcaninehisui') return 'Rock Head'; - if (species.id === 'staraptor') return 'Reckless'; - if (species.id === 'scovillain') return 'Chlorophyll'; - if (species.id === 'vespiquen') return 'Pressure'; - if (species.id === 'enamorus' && moves.has('calmmind')) return 'Cute Charm'; - if (species.id === 'cetitan' && role === 'Wallbreaker') return 'Sheer Force'; - if (species.id === 'klawf' && role === 'Setup Sweeper') return 'Anger Shell'; - if (abilities.has('Cud Chew') && moves.has('substitute')) return 'Cud Chew'; - if (abilities.has('Guts') && (moves.has('facade') || moves.has('sleeptalk'))) return 'Guts'; - if (abilities.has('Harvest') && moves.has('substitute')) return 'Harvest'; - if (species.id === 'hypno') return 'Insomnia'; - if (abilities.has('Serene Grace') && moves.has('headbutt')) return 'Serene Grace'; - if (abilities.has('Technician') && counter.get('technician')) return 'Technician'; - if (abilities.has('Own Tempo') && moves.has('petaldance')) return 'Own Tempo'; - if (abilities.has('Slush Rush') && moves.has('snowscape')) return 'Slush Rush'; - if (abilities.has('Soundproof') && moves.has('substitute')) return 'Soundproof'; - - let abilityAllowed: Ability[] = []; - // Obtain a list of abilities that are allowed (not culled) - for (const ability of abilityData) { - if (ability.rating >= 1 && !this.shouldCullAbility( - ability.name, types, moves, abilities, counter, teamDetails, species, isLead, isDoubles, teraType, role - )) { - abilityAllowed.push(ability); - } - } - - // If all abilities are culled, re-allow all - if (!abilityAllowed.length) abilityAllowed = abilityData; - - if (abilityAllowed.length === 1) return abilityAllowed[0].name; - // Sort abilities by rating with an element of randomness - // All three abilities can be chosen - if (abilityAllowed[2] && abilityAllowed[0].rating - 0.5 <= abilityAllowed[2].rating) { - if (abilityAllowed[1].rating <= abilityAllowed[2].rating) { - if (this.randomChance(1, 2)) [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]]; - } else { - if (this.randomChance(1, 3)) [abilityAllowed[1], abilityAllowed[2]] = [abilityAllowed[2], abilityAllowed[1]]; - } - if (abilityAllowed[0].rating <= abilityAllowed[1].rating) { - if (this.randomChance(2, 3)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; - } else { - if (this.randomChance(1, 2)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; - } - } else { - // Third ability cannot be chosen - if (abilityAllowed[0].rating <= abilityAllowed[1].rating) { - if (this.randomChance(1, 2)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; - } else if (abilityAllowed[0].rating - 0.5 <= abilityAllowed[1].rating) { - if (this.randomChance(1, 3)) [abilityAllowed[0], abilityAllowed[1]] = [abilityAllowed[1], abilityAllowed[0]]; - } - } - - // After sorting, choose the first ability - return abilityAllowed[0].name; - } - - getPriorityItem( - ability: string, - types: string[], - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - teraType: string, - role: string, - ) { - if (species.requiredItems) { - // Z-Crystals aren't available in Gen 9, so require Plates - if (species.baseSpecies === 'Arceus') { - return species.requiredItems[0]; - } - return this.sample(species.requiredItems); - } - if (role === 'AV Pivot') return 'Assault Vest'; - if ( - !isLead && role === 'Bulky Setup' && - (ability === 'Quark Drive' || ability === 'Protosynthesis') - ) { - return 'Booster Energy'; - } - if (species.id === 'pikachu') return 'Light Ball'; - if (species.id === 'regieleki') return 'Magnet'; - if (species.id === 'pincurchin') return 'Shuca Berry'; - if (species.id === 'lokix') { - return (role === 'Fast Attacker') ? 'Silver Powder' : 'Life Orb'; - } - if (species.id === 'toxtricity' && moves.has('shiftgear')) return 'Throat Spray'; - if (species.baseSpecies === 'Magearna' && role === 'Tera Blast user') return 'Weakness Policy'; - if (moves.has('lastrespects')) return 'Choice Scarf'; - if (ability === 'Imposter' || (species.id === 'magnezone' && moves.has('bodypress'))) return 'Choice Scarf'; - if (moves.has('bellydrum') && moves.has('substitute')) return 'Salac Berry'; - if ( - ['Cheek Pouch', 'Cud Chew', 'Harvest'].some(m => ability === m) || - moves.has('bellydrum') || moves.has('filletaway') - ) { - return 'Sitrus Berry'; - } - if (['healingwish', 'switcheroo', 'trick'].some(m => moves.has(m))) { - if (species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && role !== 'Wallbreaker') { - return 'Choice Scarf'; - } else { - return (counter.get('Physical') > counter.get('Special')) ? 'Choice Band' : 'Choice Specs'; - } - } - if ((ability === 'Guts' || moves.has('facade')) && !moves.has('sleeptalk')) { - return (types.includes('Fire') || ability === 'Toxic Boost') ? 'Toxic Orb' : 'Flame Orb'; - } - if ( - (ability === 'Magic Guard' && counter.damagingMoves.size > 1) || - (ability === 'Sheer Force' && counter.get('sheerforce')) - ) { - return 'Life Orb'; - } - if (ability === 'Anger Shell') return this.sample(['Rindo Berry', 'Passho Berry', 'Scope Lens', 'Sitrus Berry']); - if (moves.has('shellsmash')) return 'White Herb'; - if (moves.has('populationbomb')) return 'Wide Lens'; - if (moves.has('courtchange')) return 'Heavy-Duty Boots'; - if (moves.has('stuffcheeks')) return this.randomChance(1, 2) ? 'Liechi Berry' : 'Salac Berry'; - if (ability === 'Unburden') return moves.has('closecombat') ? 'White Herb' : 'Sitrus Berry'; - if (moves.has('acrobatics')) return ability === 'Grassy Surge' ? 'Grassy Seed' : ''; - if (moves.has('auroraveil') || moves.has('lightscreen') && moves.has('reflect')) return 'Light Clay'; - if ( - moves.has('rest') && !moves.has('sleeptalk') && - ability !== 'Natural Cure' && ability !== 'Shed Skin' - ) { - return 'Chesto Berry'; - } - if (species.id === 'scyther') return (isLead && !moves.has('uturn')) ? 'Eviolite' : 'Heavy-Duty Boots'; - if (species.nfe) return 'Eviolite'; - if (this.dex.getEffectiveness('Rock', species) >= 2) return 'Heavy-Duty Boots'; - } - - /** Item generation specific to Random Doubles */ - // This will be changed and used later, once doubles is actually coming out. - getDoublesItem( - ability: string, - types: string[], - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - teraType: string, - role: string, - ) { - const defensiveStatTotal = species.baseStats.hp + species.baseStats.def + species.baseStats.spd; - - if ( - (['dragonenergy', 'eruption', 'waterspout'].some(m => moves.has(m))) && - counter.damagingMoves.size >= 4 - ) return 'Choice Scarf'; - if (moves.has('blizzard') && ability !== 'Snow Warning' && !teamDetails.snow) return 'Blunder Policy'; - if (this.dex.getEffectiveness('Rock', species) >= 2 && !types.includes('Flying')) return 'Heavy-Duty Boots'; - if (counter.get('Physical') >= 4 && ['fakeout', 'feint', 'rapidspin', 'suckerpunch'].every(m => !moves.has(m)) && ( - types.includes('Dragon') || types.includes('Fighting') || types.includes('Rock') || - moves.has('flipturn') || moves.has('uturn') - )) { - return ( - !counter.get('priority') && ability !== 'Speed Boost' && - species.baseStats.spe >= 60 && species.baseStats.spe <= 100 && - this.randomChance(1, 2) - ) ? 'Choice Scarf' : 'Choice Band'; - } - if ( - ( - counter.get('Special') >= 4 && - (types.includes('Dragon') || types.includes('Fighting') || types.includes('Rock') || moves.has('voltswitch')) - ) || ( - (counter.get('Special') >= 3 && (moves.has('flipturn') || moves.has('uturn'))) && - !moves.has('acidspray') && !moves.has('electroweb') - ) - ) { - return ( - species.baseStats.spe >= 60 && species.baseStats.spe <= 100 && this.randomChance(1, 2) - ) ? 'Choice Scarf' : 'Choice Specs'; - } - // This one is intentionally below the Choice item checks. - if ((defensiveStatTotal < 250 && ability === 'Regenerator') || species.name === 'Pheromosa') return 'Life Orb'; - if (counter.damagingMoves.size >= 4 && defensiveStatTotal >= 275) return 'Assault Vest'; - if ( - counter.damagingMoves.size >= 3 && - species.baseStats.spe >= 60 && - ability !== 'Multiscale' && ability !== 'Sturdy' && - [ - 'acidspray', 'clearsmog', 'electroweb', 'fakeout', 'feint', 'icywind', - 'incinerate', 'naturesmadness', 'rapidspin', 'snarl', 'uturn', - ].every(m => !moves.has(m)) - ) return (ability === 'Defeatist' || defensiveStatTotal >= 275) ? 'Sitrus Berry' : 'Life Orb'; - } - - getItem( - ability: string, - types: string[], - moves: Set, - counter: MoveCounter, - teamDetails: RandomTeamsTypes.TeamDetails, - species: Species, - isLead: boolean, - isDoubles: boolean, - teraType: string, - role: string, - ): string | undefined { - if ( - (counter.get('Physical') >= 4 || - (counter.get('Physical') >= 3 && moves.has('memento'))) && - ['fakeout', 'firstimpression', 'flamecharge', 'rapidspin', 'ruination', 'superfang'].every(m => !moves.has(m)) - ) { - const scarfReqs = ( - role !== 'Wallbreaker' && - (species.baseStats.atk >= 100 || ability === 'Huge Power' || ability === 'Pure Power') && - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - ability !== 'Speed Boost' && !counter.get('priority') && !moves.has('aquastep') - ); - return (scarfReqs && this.randomChance(1, 2)) ? 'Choice Scarf' : 'Choice Band'; - } - if ( - (counter.get('Special') >= 4) || - (counter.get('Special') >= 3 && ['flipturn', 'partingshot', 'uturn'].some(m => moves.has(m))) - ) { - const scarfReqs = ( - role !== 'Wallbreaker' && - species.baseStats.spa >= 100 && - species.baseStats.spe >= 60 && species.baseStats.spe <= 108 && - ability !== 'Speed Boost' && ability !== 'Tinted Lens' && !counter.get('Physical') - ); - return (scarfReqs && this.randomChance(1, 2)) ? 'Choice Scarf' : 'Choice Specs'; - } - if (!counter.get('Status') && role !== 'Fast Attacker' && role !== 'Wallbreaker') return 'Assault Vest'; - if (counter.get('speedsetup') && this.dex.getEffectiveness('Ground', species) < 1) return 'Weakness Policy'; - if (species.id === 'urshifurapidstrike') return 'Punching Glove'; - if (species.id === 'palkia') return 'Lustrous Orb'; - if (moves.has('substitute') || ability === 'Moody') return 'Leftovers'; - if (moves.has('stickyweb') && isLead) return 'Focus Sash'; - if ( - ((!teamDetails.defog && !teamDetails.rapidSpin) || (!counter.get('setup') && role !== 'Wallbreaker')) && - this.dex.getEffectiveness('Rock', species) >= 1 - ) return 'Heavy-Duty Boots'; - if ( - role === 'Fast Support' && - ['defog', 'rapidspin', 'uturn', 'voltswitch'].some(m => moves.has(m)) && - !types.includes('Flying') && ability !== 'Levitate' - ) return 'Heavy-Duty Boots'; - - // Low Priority - if (moves.has('outrage')) return 'Lum Berry'; - if ( - (species.id === 'garchomp' && role === 'Fast Support') || - (ability === 'Regenerator' && types.includes('Water') && species.baseStats.def >= 110 && this.randomChance(1, 3)) - ) return 'Rocky Helmet'; - if ( - role === 'Fast Support' && isLead && - !counter.get('recovery') && !counter.get('recoil') && !moves.has('protect') && - (species.baseStats.hp + species.baseStats.def + species.baseStats.spd) < 258 - ) return 'Focus Sash'; - if ( - role !== 'Fast Attacker' && role !== 'Tera Blast user' && ability !== 'Levitate' && - this.dex.getEffectiveness('Ground', species) >= 2 - ) return 'Air Balloon'; - if (['Bulky Attacker', 'Bulky Support', 'Bulky Setup'].some(m => role === (m))) return 'Leftovers'; - if (role === 'Fast Support' || role === 'Fast Bulky Setup') { - return (counter.damagingMoves.size >= 3 && !moves.has('nuzzle')) ? 'Life Orb' : 'Leftovers'; - } - if (role === 'Tera Blast user' && counter.get('recovery') && counter.damagingMoves.size < 3) return 'Leftovers'; - if ( - ['flamecharge', 'rapidspin'].every(m => !moves.has(m)) && - ['Fast Attacker', 'Setup Sweeper', 'Tera Blast user', 'Wallbreaker'].some(m => role === (m)) - ) return 'Life Orb'; - if (isDoubles) return 'Sitrus Berry'; - return 'Leftovers'; - } - - getLevel( - species: Species, - isDoubles: boolean, - ): number { - if (this.adjustLevel) return this.adjustLevel; - // doubles levelling - if (isDoubles && this.randomDoublesSets[species.id]["level"]) return this.randomDoublesSets[species.id]["level"]; - if (!isDoubles && this.randomSets[species.id]["level"]) return this.randomSets[species.id]["level"]; - // Default to tier-based levelling - const tier = species.tier; - const tierScale: Partial> = { - Uber: 76, - OU: 80, - UUBL: 81, - UU: 82, - RUBL: 83, - RU: 84, - NUBL: 85, - NU: 86, - PUBL: 87, - PU: 88, "(PU)": 88, NFE: 88, - }; - return tierScale[tier] || 80; - } - - randomSet( - species: string | Species, - teamDetails: RandomTeamsTypes.TeamDetails = {}, - isLead = false, - isDoubles = false - ): RandomTeamsTypes.RandomSet { - species = this.dex.species.get(species); - let forme = species.name; - - if (typeof species.battleOnly === 'string') { - // Only change the forme. The species has custom moves, and may have different typing and requirements. - forme = species.battleOnly; - } - if (species.cosmeticFormes) { - forme = this.sample([species.name].concat(species.cosmeticFormes)); - } - const sets = (this as any)[`random${isDoubles ? 'Doubles' : ''}Sets`][species.id]["sets"]; - const possibleSets = []; - for (const set of sets) { - if (teamDetails.teraBlast && set.role === "Tera Blast user") { - continue; - } - possibleSets.push(set); - } - const set = this.sampleIfArray(possibleSets); - const role = set.role; - const movePool: string[] = []; - for (const movename of set.movepool) { - movePool.push(this.dex.moves.get(movename).id); - } - const teraTypes = set.teraTypes; - const teraType = this.sampleIfArray(teraTypes); - - if (this.format.gameType === 'multi' || this.format.gameType === 'freeforall') { - // Random Multi Battle uses doubles move pools, but Ally Switch fails in multi battles - // Random Free-For-All also uses doubles move pools, for now - const allySwitch = movePool.indexOf('allyswitch'); - if (allySwitch > -1) { - if (movePool.length > this.maxMoveCount) { - this.fastPop(movePool, allySwitch); - } else { - // Ideally, we'll never get here, but better to have a move that usually does nothing than one that always does - movePool[allySwitch] = 'sleeptalk'; - } - } - } - let ability = ''; - let item = undefined; - - const evs = {hp: 85, atk: 85, def: 85, spa: 85, spd: 85, spe: 85}; - const ivs = {hp: 31, atk: 31, def: 31, spa: 31, spd: 31, spe: 31}; - - const types = species.types; - const abilities = new Set(Object.values(species.abilities)); - if (species.unreleasedHidden) abilities.delete(species.abilities.H); - - // Get moves - const moves = this.randomMoveset(types, abilities, teamDetails, species, isLead, isDoubles, movePool, teraType, role); - const counter = this.queryMoves(moves, species, teraType, abilities); - - // Get ability - ability = this.getAbility(types, moves, abilities, counter, teamDetails, species, isLead, isDoubles, teraType, role); - - // Get items - // First, the priority items - item = this.getPriorityItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles, teraType, role); - if (item === undefined && isDoubles) { - item = this.getDoublesItem(ability, types, moves, counter, teamDetails, species, teraType, role); - } - if (item === undefined) { - item = this.getItem(ability, types, moves, counter, teamDetails, species, isLead, isDoubles, teraType, role); - } - - // fallback - if (item === undefined) item = isDoubles ? 'Sitrus Berry' : 'Leftovers'; - - if (species.baseSpecies === 'Pikachu') { - forme = 'Pikachu' + this.sample(['', '-Original', '-Hoenn', '-Sinnoh', '-Unova', '-Kalos', '-Alola', '-Partner', '-World']); - } - - // Get level - const level = this.getLevel(species, isDoubles); - - // Prepare optimal HP - const srImmunity = ability === 'Magic Guard' || item === 'Heavy-Duty Boots'; - const srWeakness = srImmunity ? 0 : this.dex.getEffectiveness('Rock', species); - while (evs.hp > 1) { - const hp = Math.floor(Math.floor(2 * species.baseStats.hp + ivs.hp + Math.floor(evs.hp / 4) + 100) * level / 100 + 10); - if ((moves.has('substitute') && ['Sitrus Berry', 'Salac Berry'].includes(item))) { - // Two Substitutes should activate Sitrus Berry - if (hp % 4 === 0) break; - } else if ((moves.has('bellydrum') || moves.has('filletaway')) && (item === 'Sitrus Berry' || ability === 'Gluttony')) { - // Belly Drum should activate Sitrus Berry - if (hp % 2 === 0) break; - } else { - // Maximize number of Stealth Rock switch-ins - if (srWeakness <= 0 || hp % (4 / srWeakness) > 0 || ['Leftovers', 'Life Orb'].includes(item)) break; - } - evs.hp -= 4; - } - - // Minimize confusion damage - const noAttackStatMoves = [...moves].every(m => { - const move = this.dex.moves.get(m); - if (move.damageCallback || move.damage) return true; - if (move.id === 'shellsidearm') return false; - // Magearna, though this can work well as a general rule - if (move.id === 'terablast' && moves.has('shiftgear')) return false; - return move.category !== 'Physical' || move.id === 'bodypress' || move.id === 'foulplay'; - }); - if (noAttackStatMoves && !moves.has('transform')) { - evs.atk = 0; - ivs.atk = 0; - } - - if (moves.has('gyroball') || moves.has('trickroom')) { - evs.spe = 0; - ivs.spe = 0; - } - - // shuffle moves to add more randomness to camomons - const shuffledMoves = Array.from(moves); - this.prng.shuffle(shuffledMoves); - return { - name: species.baseSpecies, - species: forme, - gender: species.gender, - shiny: this.randomChance(1, 1024), - level, - moves: shuffledMoves, - ability, - evs, - ivs, - item, - teraType, - role, - }; - } - - getPokemonPool( - type: string, - pokemonToExclude: RandomTeamsTypes.RandomSet[] = [], - isMonotype = false, - isDoubles = false, - ) { - const exclude = pokemonToExclude.map(p => toID(p.species)); - const pokemonPool = []; - const baseSpeciesPool: string[] = []; - if (isDoubles) { - for (const pokemon of Object.keys(this.randomDoublesSets)) { - let species = this.dex.species.get(pokemon); - if (species.gen > this.gen || exclude.includes(species.id)) continue; - if (isMonotype) { - if (!species.types.includes(type)) continue; - if (typeof species.battleOnly === 'string') { - species = this.dex.species.get(species.battleOnly); - if (!species.types.includes(type)) continue; - } - } - pokemonPool.push(pokemon); - if (!baseSpeciesPool.includes(species.baseSpecies)) baseSpeciesPool.push(species.baseSpecies); - } - } else { - for (const pokemon of Object.keys(this.randomSets)) { - let species = this.dex.species.get(pokemon); - if (species.gen > this.gen || exclude.includes(species.id)) continue; - if (isMonotype) { - if (!species.types.includes(type)) continue; - if (typeof species.battleOnly === 'string') { - species = this.dex.species.get(species.battleOnly); - if (!species.types.includes(type)) continue; - } - } - pokemonPool.push(pokemon); - if (!baseSpeciesPool.includes(species.baseSpecies)) baseSpeciesPool.push(species.baseSpecies); - } - } - return [pokemonPool, baseSpeciesPool]; - } - - // TODO: Make types for this - randomSets: AnyObject = require('./random-sets.json'); - randomDoublesSets: AnyObject = require('./random-sets.json'); // Doubles sets are the same as singles for now - - randomTeam() { - this.enforceNoDirectCustomBanlistChanges(); - - const seed = this.prng.seed; - const ruleTable = this.dex.formats.getRuleTable(this.format); - const pokemon: RandomTeamsTypes.RandomSet[] = []; - - // For Monotype - const isMonotype = !!this.forceMonotype || ruleTable.has('sametypeclause'); - const isDoubles = this.format.gameType !== 'singles'; - const typePool = this.dex.types.names(); - const type = this.forceMonotype || this.sample(typePool); - - // PotD stuff - const usePotD = global.Config && Config.potd && ruleTable.has('potd'); - const potd = usePotD ? this.dex.species.get(Config.potd) : null; - - const baseFormes: {[k: string]: number} = {}; - - const tierCount: {[k: string]: number} = {}; - const typeCount: {[k: string]: number} = {}; - const typeComboCount: {[k: string]: number} = {}; - const typeWeaknesses: {[k: string]: number} = {}; - const teamDetails: RandomTeamsTypes.TeamDetails = {}; - const [pokemonPool, baseSpeciesPool] = this.getPokemonPool(type, pokemon, isMonotype, isDoubles); - - let generatedLead = false; - while (baseSpeciesPool.length && pokemon.length < this.maxTeamSize) { - const baseSpecies = this.sampleNoReplace(baseSpeciesPool); - const currentSpeciesPool: Species[] = []; - for (const poke of pokemonPool) { - const species = this.dex.species.get(poke); - if (species.baseSpecies === baseSpecies) currentSpeciesPool.push(species); - } - let species = this.sample(currentSpeciesPool); - if (!species.exists) continue; - // Illusion shouldn't be on the last slot - if (species.baseSpecies === 'Zoroark' && pokemon.length >= (this.maxTeamSize - 1)) continue; - - // If Zoroark is in the team, ensure its level is balanced - // Level range differs for each forme of Zoroark - if ( - pokemon.some(pkmn => pkmn.species === 'Zoroark') && - pokemon.length >= (this.maxTeamSize - 1) && - (this.getLevel(species, isDoubles) < 76 || this.getLevel(species, isDoubles) > 94) && - !this.adjustLevel - ) { - continue; - } - - if ( - pokemon.some(pkmn => pkmn.species === 'Zoroark-Hisui') && - pokemon.length >= (this.maxTeamSize - 1) && - (this.getLevel(species, isDoubles) < 72 || this.getLevel(species, isDoubles) > 86) && - !this.adjustLevel - ) { - continue; - } - - const tier = species.tier; - const types = species.types; - const typeCombo = types.slice().sort().join(); - // Dynamically scale limits for different team sizes. The default and minimum value is 1. - const limitFactor = Math.round(this.maxTeamSize / 6) || 1; - - // Limit one Pokemon per tier, two for Monotype - // Disable this for now, since it is still a new gen - // Unless you want to have a lot of Ubers! - // if ( - // (tierCount[tier] >= (this.forceMonotype || isMonotype ? 2 : 1) * limitFactor) && - // !this.randomChance(1, Math.pow(5, tierCount[tier])) - // ) { - // continue; - // } - - if (!isMonotype && !this.forceMonotype) { - let skip = false; - - // Limit two of any type - for (const typeName of types) { - if (typeCount[typeName] >= 2 * limitFactor) { - skip = true; - break; - } - } - if (skip) continue; - - // Limit three weak to any type - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - if (!typeWeaknesses[typeName]) typeWeaknesses[typeName] = 0; - if (typeWeaknesses[typeName] >= 3 * limitFactor) { - skip = true; - break; - } - } - } - if (skip) continue; - } - - // Limit one of any type combination, two in Monotype - if (!this.forceMonotype && typeComboCount[typeCombo] >= (isMonotype ? 2 : 1) * limitFactor) continue; - - // The Pokemon of the Day - if (potd?.exists && (pokemon.length === 1 || this.maxTeamSize === 1)) species = potd; - - let set: RandomTeamsTypes.RandomSet; - - if (!generatedLead) { - if (noLeadPokemon.includes(species.baseSpecies)) { - if (pokemon.length + 1 === this.maxTeamSize) continue; - set = this.randomSet(species, teamDetails, false, isDoubles); - pokemon.push(set); - } else { - set = this.randomSet(species, teamDetails, true, isDoubles); - pokemon.unshift(set); - generatedLead = true; - if (typeof teamDetails.illusion === 'number') teamDetails.illusion++; - } - } else { - set = this.randomSet(species, teamDetails, false, isDoubles); - pokemon.push(set); - } - - if (pokemon.length === this.maxTeamSize) { - // Set Zoroark's level to be the same as the last Pokemon - const illusion = teamDetails.illusion; - if (illusion) pokemon[illusion - 1].level = pokemon[this.maxTeamSize - 1].level; - - // Don't bother tracking details for the last Pokemon - break; - } - - // Now that our Pokemon has passed all checks, we can increment our counters - baseFormes[species.baseSpecies] = 1; - - // Increment tier counter - if (tierCount[tier]) { - tierCount[tier]++; - } else { - tierCount[tier] = 1; - } - - // Increment type counters - for (const typeName of types) { - if (typeName in typeCount) { - typeCount[typeName]++; - } else { - typeCount[typeName] = 1; - } - } - if (typeCombo in typeComboCount) { - typeComboCount[typeCombo]++; - } else { - typeComboCount[typeCombo] = 1; - } - - // Increment weakness counter - for (const typeName of this.dex.types.names()) { - // it's weak to the type - if (this.dex.getEffectiveness(typeName, species) > 0) { - typeWeaknesses[typeName]++; - } - } - - // Track what the team has - if (set.ability === 'Drizzle' || set.moves.includes('raindance')) teamDetails.rain = 1; - if (set.ability === 'Drought' || set.ability === 'Orichalcum Pulse' || set.moves.includes('sunnyday')) { - teamDetails.sun = 1; - } - if (set.ability === 'Sand Stream') teamDetails.sand = 1; - if (set.ability === 'Snow Warning' || set.moves.includes('snowscape') || set.moves.includes('chillyreception')) { - teamDetails.snow = 1; - } - if (set.moves.includes('spikes') || set.moves.includes('ceaselessedge')) { - teamDetails.spikes = (teamDetails.spikes || 0) + 1; - } - if (set.moves.includes('toxicspikes') || set.ability === 'Toxic Debris') { - teamDetails.toxicSpikes = (teamDetails.toxicSpikes || 0) + 1; - } - if (set.moves.includes('stealthrock') || set.moves.includes('stoneaxe')) teamDetails.stealthRock = 1; - if (set.moves.includes('stickyweb')) teamDetails.stickyWeb = 1; - if (set.moves.includes('defog') || set.moves.includes('tidyup')) teamDetails.defog = 1; - if (set.moves.includes('rapidspin') || set.moves.includes('mortalspin')) teamDetails.rapidSpin = 1; - if (set.moves.includes('auroraveil') || (set.moves.includes('reflect') && set.moves.includes('lightscreen'))) { - teamDetails.screens = 1; - } - if (set.role === 'Tera Blast user') teamDetails.teraBlast = 1; - - // For setting Zoroark's level - if (set.ability === 'Illusion') teamDetails.illusion = pokemon.length; - } - if (pokemon.length < this.maxTeamSize && pokemon.length < 12) { // large teams sometimes cannot be built - throw new Error(`Could not build a random team for ${this.format} (seed=${seed})`); - } - - return pokemon; - } - - randomCCTeam(): RandomTeamsTypes.RandomSet[] { - this.enforceNoDirectCustomBanlistChanges(); - - const dex = this.dex; - const team = []; - - const natures = this.dex.natures.all(); - const items = this.dex.items.all(); - - const randomN = this.randomNPokemon(this.maxTeamSize, this.forceMonotype, undefined, undefined, true); - - for (let forme of randomN) { - let species = dex.species.get(forme); - if (species.isNonstandard) species = dex.species.get(species.baseSpecies); - - // Random legal item - let item = ''; - let isIllegalItem; - let isBadItem; - if (this.gen >= 2) { - do { - item = this.sample(items).name; - isIllegalItem = this.dex.items.get(item).gen > this.gen || this.dex.items.get(item).isNonstandard; - isBadItem = item.startsWith("TR") || this.dex.items.get(item).isPokeball; - } while (isIllegalItem || (isBadItem && this.randomChance(19, 20))); - } - - // Make sure forme is legal - if (species.battleOnly) { - if (typeof species.battleOnly === 'string') { - species = dex.species.get(species.battleOnly); - } else { - species = dex.species.get(this.sample(species.battleOnly)); - } - forme = species.name; - } else if (species.requiredItems && !species.requiredItems.some(req => toID(req) === item)) { - if (!species.changesFrom) throw new Error(`${species.name} needs a changesFrom value`); - species = dex.species.get(species.changesFrom); - forme = species.name; - } - - // Make sure that a base forme does not hold any forme-modifier items. - let itemData = this.dex.items.get(item); - if (itemData.forcedForme && forme === this.dex.species.get(itemData.forcedForme).baseSpecies) { - do { - itemData = this.sample(items); - item = itemData.name; - } while ( - itemData.gen > this.gen || - itemData.isNonstandard || - (itemData.forcedForme && forme === this.dex.species.get(itemData.forcedForme).baseSpecies) - ); - } - - // Random legal ability - const abilities = Object.values(species.abilities).filter(a => this.dex.abilities.get(a).gen <= this.gen); - const ability: string = this.gen <= 2 ? 'No Ability' : this.sample(abilities); - - // Four random unique moves from the movepool - let pool = ['struggle']; - if (forme === 'Smeargle') { - pool = this.dex.moves - .all() - .filter(move => !(move.isNonstandard || move.isZ || move.isMax || move.realMove)) - .map(m => m.id); - } else { - const formes = ['gastrodoneast', 'pumpkaboosuper', 'zygarde10']; - let learnset = this.dex.species.getLearnset(species.id); - let learnsetSpecies = species; - if (formes.includes(species.id) || !learnset) { - learnsetSpecies = this.dex.species.get(species.baseSpecies); - learnset = this.dex.species.getLearnset(learnsetSpecies.id); - } - if (learnset) { - pool = Object.keys(learnset).filter( - moveid => learnset![moveid].find(learned => learned.startsWith(String(this.gen))) - ); - } - if (learnset && learnsetSpecies === species && species.changesFrom) { - learnset = this.dex.species.getLearnset(toID(species.changesFrom)); - for (const moveid in learnset) { - if (!pool.includes(moveid) && learnset[moveid].some(source => source.startsWith(String(this.gen)))) { - pool.push(moveid); - } - } - } - const evoRegion = learnsetSpecies.evoRegion && learnsetSpecies.gen !== this.gen; - while (learnsetSpecies.prevo) { - learnsetSpecies = this.dex.species.get(learnsetSpecies.prevo); - for (const moveid in learnset) { - if (!pool.includes(moveid) && - learnset[moveid].some(source => source.startsWith(String(this.gen)) && !evoRegion)) { - pool.push(moveid); - } - } - } - } - - const moves = this.multipleSamplesNoReplace(pool, this.maxMoveCount); - - // Random EVs - const evs: StatsTable = {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0}; - const s: StatID[] = ["hp", "atk", "def", "spa", "spd", "spe"]; - let evpool = 510; - do { - const x = this.sample(s); - const y = this.random(Math.min(256 - evs[x], evpool + 1)); - evs[x] += y; - evpool -= y; - } while (evpool > 0); - - // Random IVs - const ivs = { - hp: this.random(32), - atk: this.random(32), - def: this.random(32), - spa: this.random(32), - spd: this.random(32), - spe: this.random(32), - }; - - // Random nature - const nature = this.sample(natures).name; - - // Level balance--calculate directly from stats rather than using some silly lookup table - const mbstmin = 1307; // Sunkern has the lowest modified base stat total, and that total is 807 - - let stats = species.baseStats; - // If Wishiwashi, use the school-forme's much higher stats - if (species.baseSpecies === 'Wishiwashi') stats = Dex.species.get('wishiwashischool').baseStats; - - // Modified base stat total assumes 31 IVs, 85 EVs in every stat - let mbst = (stats["hp"] * 2 + 31 + 21 + 100) + 10; - mbst += (stats["atk"] * 2 + 31 + 21 + 100) + 5; - mbst += (stats["def"] * 2 + 31 + 21 + 100) + 5; - mbst += (stats["spa"] * 2 + 31 + 21 + 100) + 5; - mbst += (stats["spd"] * 2 + 31 + 21 + 100) + 5; - mbst += (stats["spe"] * 2 + 31 + 21 + 100) + 5; - - let level; - if (this.adjustLevel) { - level = this.adjustLevel; - } else { - level = Math.floor(100 * mbstmin / mbst); // Initial level guess will underestimate - - while (level < 100) { - mbst = Math.floor((stats["hp"] * 2 + 31 + 21 + 100) * level / 100 + 10); - // Since damage is roughly proportional to level - mbst += Math.floor(((stats["atk"] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); - mbst += Math.floor((stats["def"] * 2 + 31 + 21 + 100) * level / 100 + 5); - mbst += Math.floor(((stats["spa"] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); - mbst += Math.floor((stats["spd"] * 2 + 31 + 21 + 100) * level / 100 + 5); - mbst += Math.floor((stats["spe"] * 2 + 31 + 21 + 100) * level / 100 + 5); - - if (mbst >= mbstmin) break; - level++; - } - } - - // Random happiness - const happiness = this.random(256); - - // Random shininess - const shiny = this.randomChance(1, 1024); - - const set: RandomTeamsTypes.RandomSet = { - name: species.baseSpecies, - species: species.name, - gender: species.gender, - item, - ability, - moves, - evs, - ivs, - nature, - level, - happiness, - shiny, - }; - if (this.gen === 9) { - // Tera type - set.teraType = this.sample(this.dex.types.all()).name; - } - team.push(set); - } - - return team; - } - - randomNPokemon(n: number, requiredType?: string, minSourceGen?: number, ruleTable?: RuleTable, requireMoves = false) { - // Picks `n` random pokemon--no repeats, even among formes - // Also need to either normalize for formes or select formes at random - // Unreleased are okay but no CAP - const last = [0, 151, 251, 386, 493, 649, 721, 807, 898, 1010][this.gen]; - - if (n <= 0 || n > last) throw new Error(`n must be a number between 1 and ${last} (got ${n})`); - if (requiredType && !this.dex.types.get(requiredType).exists) { - throw new Error(`"${requiredType}" is not a valid type.`); - } - - const isNotCustom = !ruleTable; - - const pool: number[] = []; - let speciesPool: Species[] = []; - if (isNotCustom) { - speciesPool = [...this.dex.species.all()]; - for (const species of speciesPool) { - if (species.isNonstandard && species.isNonstandard !== 'Unobtainable') continue; - if (requireMoves) { - const hasMovesInCurrentGen = Object.values(this.dex.species.getLearnset(species.id) || {}) - .some(sources => sources.some(source => source.startsWith('9'))); - if (!hasMovesInCurrentGen) continue; - } - if (requiredType && !species.types.includes(requiredType)) continue; - if (minSourceGen && species.gen < minSourceGen) continue; - const num = species.num; - if (num <= 0 || pool.includes(num)) continue; - if (num > last) break; - pool.push(num); - } - } else { - const EXISTENCE_TAG = ['past', 'future', 'lgpe', 'unobtainable', 'cap', 'custom', 'nonexistent']; - const nonexistentBanReason = ruleTable.check('nonexistent'); - // Assume tierSpecies does not differ from species here (mega formes can be used without their stone, etc) - for (const species of this.dex.species.all()) { - if (requiredType && !species.types.includes(requiredType)) continue; - - let banReason = ruleTable.check('pokemon:' + species.id); - if (banReason) continue; - if (banReason !== '') { - if (species.isMega && ruleTable.check('pokemontag:mega')) continue; - - banReason = ruleTable.check('basepokemon:' + toID(species.baseSpecies)); - if (banReason) continue; - if (banReason !== '' || this.dex.species.get(species.baseSpecies).isNonstandard !== species.isNonstandard) { - const nonexistentCheck = Tags.nonexistent.genericFilter!(species) && nonexistentBanReason; - let tagWhitelisted = false; - let tagBlacklisted = false; - for (const ruleid of ruleTable.tagRules) { - if (ruleid.startsWith('*')) continue; - const tagid = ruleid.slice(12); - const tag = Tags[tagid]; - if ((tag.speciesFilter || tag.genericFilter)!(species)) { - const existenceTag = EXISTENCE_TAG.includes(tagid); - if (ruleid.startsWith('+')) { - if (!existenceTag && nonexistentCheck) continue; - tagWhitelisted = true; - break; - } - tagBlacklisted = true; - break; - } - } - if (tagBlacklisted) continue; - if (!tagWhitelisted) { - if (ruleTable.check('pokemontag:allpokemon')) continue; - } - } - } - speciesPool.push(species); - const num = species.num; - if (pool.includes(num)) continue; - pool.push(num); - } - } - - const hasDexNumber: {[k: string]: number} = {}; - for (let i = 0; i < n; i++) { - const num = this.sampleNoReplace(pool); - hasDexNumber[num] = i; - } - - const formes: string[][] = []; - for (const species of speciesPool) { - if (!(species.num in hasDexNumber)) continue; - if (isNotCustom && (species.gen > this.gen || - (species.isNonstandard && species.isNonstandard !== 'Unobtainable'))) continue; - if (!formes[hasDexNumber[species.num]]) formes[hasDexNumber[species.num]] = []; - formes[hasDexNumber[species.num]].push(species.name); - } - - if (formes.length < n) { - throw new Error(`Legal Pokemon forme count insufficient to support Max Team Size: (${formes.length} / ${n}).`); - } - - const nPokemon = []; - for (let i = 0; i < n; i++) { - if (!formes[i].length) { - throw new Error(`Invalid pokemon gen ${this.gen}: ${JSON.stringify(formes)} numbers ${JSON.stringify(hasDexNumber)}`); - } - nPokemon.push(this.sample(formes[i])); - } - return nPokemon; - } - - randomHCTeam(): PokemonSet[] { - const hasCustomBans = this.hasDirectCustomBanlistChanges(); - const ruleTable = this.dex.formats.getRuleTable(this.format); - const hasNonexistentBan = hasCustomBans && ruleTable.check('nonexistent'); - const hasNonexistentWhitelist = hasCustomBans && (hasNonexistentBan === ''); - - if (hasCustomBans) { - this.enforceNoDirectComplexBans(); - } - - // Item Pool - const doItemsExist = this.gen > 1; - let itemPool: Item[] = []; - if (doItemsExist) { - if (!hasCustomBans) { - itemPool = [...this.dex.items.all()].filter(item => (item.gen <= this.gen && !item.isNonstandard)); - } else { - const hasAllItemsBan = ruleTable.check('pokemontag:allitems'); - for (const item of this.dex.items.all()) { - let banReason = ruleTable.check('item:' + item.id); - if (banReason) continue; - if (banReason !== '' && item.id) { - if (hasAllItemsBan) continue; - if (item.isNonstandard) { - banReason = ruleTable.check('pokemontag:' + toID(item.isNonstandard)); - if (banReason) continue; - if (banReason !== '' && item.isNonstandard !== 'Unobtainable') { - if (hasNonexistentBan) continue; - if (!hasNonexistentWhitelist) continue; - } - } - } - itemPool.push(item); - } - if (ruleTable.check('item:noitem')) { - this.enforceCustomPoolSizeNoComplexBans('item', itemPool, this.maxTeamSize, 'Max Team Size'); - } - } - } - - // Ability Pool - const doAbilitiesExist = (this.gen > 2) && (this.dex.currentMod !== 'gen7letsgo'); - let abilityPool: Ability[] = []; - if (doAbilitiesExist) { - if (!hasCustomBans) { - abilityPool = [...this.dex.abilities.all()].filter(ability => (ability.gen <= this.gen && !ability.isNonstandard)); - } else { - const hasAllAbilitiesBan = ruleTable.check('pokemontag:allabilities'); - for (const ability of this.dex.abilities.all()) { - let banReason = ruleTable.check('ability:' + ability.id); - if (banReason) continue; - if (banReason !== '') { - if (hasAllAbilitiesBan) continue; - if (ability.isNonstandard) { - banReason = ruleTable.check('pokemontag:' + toID(ability.isNonstandard)); - if (banReason) continue; - if (banReason !== '') { - if (hasNonexistentBan) continue; - if (!hasNonexistentWhitelist) continue; - } - } - } - abilityPool.push(ability); - } - if (ruleTable.check('ability:noability')) { - this.enforceCustomPoolSizeNoComplexBans('ability', abilityPool, this.maxTeamSize, 'Max Team Size'); - } - } - } - - // Move Pool - const setMoveCount = ruleTable.maxMoveCount; - let movePool: Move[] = []; - if (!hasCustomBans) { - movePool = [...this.dex.moves.all()].filter(move => - (move.gen <= this.gen && !move.isNonstandard)); - } else { - const hasAllMovesBan = ruleTable.check('pokemontag:allmoves'); - for (const move of this.dex.moves.all()) { - let banReason = ruleTable.check('move:' + move.id); - if (banReason) continue; - if (banReason !== '') { - if (hasAllMovesBan) continue; - if (move.isNonstandard) { - banReason = ruleTable.check('pokemontag:' + toID(move.isNonstandard)); - if (banReason) continue; - if (banReason !== '' && move.isNonstandard !== 'Unobtainable') { - if (hasNonexistentBan) continue; - if (!hasNonexistentWhitelist) continue; - } - } - } - movePool.push(move); - } - this.enforceCustomPoolSizeNoComplexBans('move', movePool, this.maxTeamSize * setMoveCount, 'Max Team Size * Max Move Count'); - } - - // Nature Pool - const doNaturesExist = this.gen > 2; - let naturePool: Nature[] = []; - if (doNaturesExist) { - if (!hasCustomBans) { - naturePool = [...this.dex.natures.all()]; - } else { - const hasAllNaturesBan = ruleTable.check('pokemontag:allnatures'); - for (const nature of this.dex.natures.all()) { - let banReason = ruleTable.check('nature:' + nature.id); - if (banReason) continue; - if (banReason !== '' && nature.id) { - if (hasAllNaturesBan) continue; - if (nature.isNonstandard) { - banReason = ruleTable.check('pokemontag:' + toID(nature.isNonstandard)); - if (banReason) continue; - if (banReason !== '' && nature.isNonstandard !== 'Unobtainable') { - if (hasNonexistentBan) continue; - if (!hasNonexistentWhitelist) continue; - } - } - } - naturePool.push(nature); - } - // There is no 'nature:nonature' rule so do not constrain pool size - } - } - - const randomN = this.randomNPokemon(this.maxTeamSize, this.forceMonotype, undefined, - hasCustomBans ? ruleTable : undefined); - - const team = []; - for (const forme of randomN) { - // Choose forme - const species = this.dex.species.get(forme); - - // Random unique item - let item = ''; - let itemData; - let isBadItem; - if (doItemsExist) { - // We discard TRs and Balls with 95% probability because of their otherwise overwhelming presence - do { - itemData = this.sampleNoReplace(itemPool); - item = itemData?.name; - isBadItem = item.startsWith("TR") || itemData.isPokeball; - } while (isBadItem && this.randomChance(19, 20) && itemPool.length > this.maxTeamSize); - } - - // Random unique ability - let ability = 'No Ability'; - let abilityData; - if (doAbilitiesExist) { - abilityData = this.sampleNoReplace(abilityPool); - ability = abilityData?.name; - } - - // Random unique moves - const m = []; - do { - const move = this.sampleNoReplace(movePool); - m.push(move.id); - } while (m.length < setMoveCount); - - // Random EVs - const evs = {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0}; - if (this.gen === 6) { - let evpool = 510; - do { - const x = this.sample(Dex.stats.ids()); - const y = this.random(Math.min(256 - evs[x], evpool + 1)); - evs[x] += y; - evpool -= y; - } while (evpool > 0); - } else { - for (const x of Dex.stats.ids()) { - evs[x] = this.random(256); - } - } - - // Random IVs - const ivs: StatsTable = { - hp: this.random(32), - atk: this.random(32), - def: this.random(32), - spa: this.random(32), - spd: this.random(32), - spe: this.random(32), - }; - - // Random nature - let nature = ''; - if (doNaturesExist && (naturePool.length > 0)) { - nature = this.sample(naturePool).name; - } - - // Level balance - const mbstmin = 1307; - const stats = species.baseStats; - let mbst = (stats['hp'] * 2 + 31 + 21 + 100) + 10; - mbst += (stats['atk'] * 2 + 31 + 21 + 100) + 5; - mbst += (stats['def'] * 2 + 31 + 21 + 100) + 5; - mbst += (stats['spa'] * 2 + 31 + 21 + 100) + 5; - mbst += (stats['spd'] * 2 + 31 + 21 + 100) + 5; - mbst += (stats['spe'] * 2 + 31 + 21 + 100) + 5; - - let level; - if (this.adjustLevel) { - level = this.adjustLevel; - } else { - level = Math.floor(100 * mbstmin / mbst); - while (level < 100) { - mbst = Math.floor((stats['hp'] * 2 + 31 + 21 + 100) * level / 100 + 10); - mbst += Math.floor(((stats['atk'] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); - mbst += Math.floor((stats['def'] * 2 + 31 + 21 + 100) * level / 100 + 5); - mbst += Math.floor(((stats['spa'] * 2 + 31 + 21 + 100) * level / 100 + 5) * level / 100); - mbst += Math.floor((stats['spd'] * 2 + 31 + 21 + 100) * level / 100 + 5); - mbst += Math.floor((stats['spe'] * 2 + 31 + 21 + 100) * level / 100 + 5); - if (mbst >= mbstmin) break; - level++; - } - } - - // Random happiness - const happiness = this.random(256); - - // Random shininess - const shiny = this.randomChance(1, 1024); - - const set: PokemonSet = { - name: species.baseSpecies, - species: species.name, - gender: species.gender, - item, - ability, - moves: m, - evs, - ivs, - nature, - level, - happiness, - shiny, - }; - if (this.gen === 9) { - // Random Tera type - set.teraType = this.sample(this.dex.types.all()).name; - } - team.push(set); - } - - return team; - } -} - -export default RandomTeams; diff --git a/data/rulesets.ts b/data/rulesets.ts index 3afa00696b41..4196b578d0ec 100644 --- a/data/rulesets.ts +++ b/data/rulesets.ts @@ -1,11 +1,9 @@ // Note: These are the rules that formats use -import {Utils} from "../lib"; -import {Pokemon} from "../sim/pokemon"; -import {Teams} from "../sim/teams"; +import type {Learnset} from "../sim/dex-species"; // The list of formats is stored in config/formats.js -export const Rulesets: {[k: string]: FormatData} = { +export const Rulesets: import('../sim/dex-formats').FormatDataTable = { // Rulesets /////////////////////////////////////////////////////////////////// @@ -31,9 +29,9 @@ export const Rulesets: {[k: string]: FormatData} = { flatrules: { effectType: 'ValidatorRule', name: 'Flat Rules', - desc: "The in-game Flat Rules: Adjust Level Down 50, Species Clause, Item Clause, -Mythical, -Restricted Legendary, Bring 6 Pick 3-6 depending on game type.", - ruleset: ['Obtainable', 'Team Preview', 'Species Clause', 'Nickname Clause', 'Item Clause', 'Adjust Level Down = 50', 'Picked Team Size = Auto', 'Cancel Mod'], - banlist: ['Mythical', 'Restricted Legendary'], + desc: "The in-game Flat Rules: Adjust Level Down 50, Species Clause, Item Clause = 1, -Mythical, -Restricted Legendary, Bring 6 Pick 3-6 depending on game type.", + ruleset: ['Obtainable', 'Team Preview', 'Species Clause', 'Nickname Clause', 'Item Clause = 1', 'Adjust Level Down = 50', 'Picked Team Size = Auto', 'Cancel Mod'], + banlist: ['Mythical', 'Restricted Legendary', 'Greninja-Bond'], }, limittworestricted: { effectType: 'ValidatorRule', @@ -80,7 +78,7 @@ export const Rulesets: {[k: string]: FormatData} = { desc: "The standard ruleset for all Smogon OMs (Almost Any Ability, STABmons, etc.)", ruleset: [ 'Obtainable', 'Team Preview', 'Species Clause', 'Nickname Clause', 'OHKO Clause', 'Evasion Moves Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', 'Overflow Stat Mod', - // 'Min Source Gen = 9', - crashes for some reason + 'Min Source Gen = 9', ], }, standardnatdex: { @@ -90,7 +88,6 @@ export const Rulesets: {[k: string]: FormatData} = { ruleset: [ 'Obtainable', '+Unobtainable', '+Past', 'Sketch Post-Gen 7 Moves', 'Team Preview', 'Nickname Clause', 'HP Percentage Mod', 'Cancel Mod', 'Endless Battle Clause', ], - unbanlist: ['Adamant Crystal', 'Griseous Core', 'Lustrous Globe', 'Bleakwind Storm', 'Lunar Blessing', 'Mystical Power', 'Sandsear Storm', 'Wildbolt Storm'], onValidateSet(set) { const species = this.dex.species.get(set.species); if (species.natDexTier === 'Illegal') { @@ -112,7 +109,7 @@ export const Rulesets: {[k: string]: FormatData} = { if (this.ruleTable.has(`+move:${move.id}`)) continue; const problem = `${set.name}'s move ${move.name} does not exist in the National Dex.`; if (this.ruleTable.has('omunobtainablemoves')) { - const outOfBattleSpecies = this.getValidationSpecies(set)[0]; + const {outOfBattleSpecies} = this.getValidationSpecies(set); if (!this.omCheckCanLearn(move, outOfBattleSpecies, this.allSources(outOfBattleSpecies), set, problem)) continue; } return [problem]; @@ -132,10 +129,17 @@ export const Rulesets: {[k: string]: FormatData} = { return [`${set.name}'s item ${item.name} does not exist in Gen ${this.dex.gen}.`]; } }, + onBegin() { + for (const pokemon of this.getAllPokemon()) { + if (pokemon.species.isMega || pokemon.species.isPrimal || pokemon.species.forme === "Ultra") { + pokemon.canTerastallize = null; + } + } + }, }, - draft: { + standarddraft: { effectType: 'ValidatorRule', - name: 'Draft', + name: 'Standard Draft', desc: "The custom Draft League ruleset", ruleset: [ 'Obtainable', '+Unreleased', '+CAP', 'Sketch Post-Gen 7 Moves', 'Team Preview', 'Sleep Clause Mod', 'OHKO Clause', 'Evasion Clause', 'Endless Battle Clause', 'HP Percentage Mod', 'Cancel Mod', @@ -413,7 +417,12 @@ export const Rulesets: {[k: string]: FormatData} = { effectType: 'ValidatorRule', name: 'Paldea Pokedex', desc: "Only allows Pokémon native to the Paldea region (SV)", - banlist: ['Meowth-Galar', 'Tauros-Base', 'Wooper-Base', 'Zorua-Hisui', 'Zoroark-Hisui'], + banlist: [ + 'Arcanine-Hisui', 'Avalugg-Hisui', 'Basculin-White-Striped', 'Braviary-Hisui', 'Diglett-Alola', 'Dugtrio-Alola', 'Electrode-Hisui', 'Gimmighoul-Roaming', + 'Goodra-Hisui', 'Grimer-Alola', 'Growlithe-Hisui', 'Lilligant-Hisui', 'Meowth-Galar', 'Muk-Alola', 'Persian-Alola', 'Qwilfish-Hisui', 'Raichu-Alola', + 'Sliggoo-Hisui', 'Slowbro-Galar', 'Slowking-Galar', 'Slowpoke-Galar', 'Sneasel-Hisui', 'Voltorb-Hisui', 'Tauros-Base', 'Wooper-Base', 'Zorua-Hisui', + 'Zoroark-Hisui', + ], onValidateSet(set, format) { const paldeaDex = [ "Sprigatito", "Floragato", "Meowscarada", "Fuecoco", "Crocalor", "Skeledirge", "Quaxly", "Quaxwell", "Quaquaval", "Lechonk", "Oinkologne", "Tarountula", "Spidops", "Nymble", "Lokix", "Hoppip", "Skiploom", "Jumpluff", "Fletchling", "Fletchinder", "Talonflame", "Pawmi", "Pawmo", "Pawmot", "Houndour", "Houndoom", "Yungoos", "Gumshoos", "Skwovet", "Greedent", "Sunkern", "Sunflora", "Kricketot", "Kricketune", "Scatterbug", "Spewpa", "Vivillon", "Combee", "Vespiquen", "Rookidee", "Corvisquire", "Corviknight", "Happiny", "Chansey", "Blissey", "Azurill", "Marill", "Azumarill", "Surskit", "Masquerain", "Buizel", "Floatzel", "Wooper", "Clodsire", "Psyduck", "Golduck", "Chewtle", "Drednaw", "Igglybuff", "Jigglypuff", "Wigglytuff", "Ralts", "Kirlia", "Gardevoir", "Gallade", "Drowzee", "Hypno", "Gastly", "Haunter", "Gengar", "Tandemaus", "Maushold", "Pichu", "Pikachu", "Raichu", "Fidough", "Dachsbun", "Slakoth", "Vigoroth", "Slaking", "Bounsweet", "Steenee", "Tsareena", "Smoliv", "Dolliv", "Arboliva", "Bonsly", "Sudowoodo", "Rockruff", "Lycanroc", "Rolycoly", "Carkol", "Coalossal", "Shinx", "Luxio", "Luxray", "Starly", "Staravia", "Staraptor", "Oricorio", "Mareep", "Flaaffy", "Ampharos", "Petilil", "Lilligant", "Shroomish", "Breloom", "Applin", "Flapple", "Appletun", "Spoink", "Grumpig", "Squawkabilly", "Misdreavus", "Mismagius", "Makuhita", "Hariyama", "Crabrawler", "Crabominable", "Salandit", "Salazzle", "Phanpy", "Donphan", "Cufant", "Copperajah", "Gible", "Gabite", "Garchomp", "Nacli", "Naclstack", "Garganacl", "Wingull", "Pelipper", "Magikarp", "Gyarados", "Arrokuda", "Barraskewda", "Basculin", "Gulpin", "Swalot", "Meowth", "Persian", "Drifloon", "Drifblim", "Flabe\u0301be\u0301", "Floette", "Florges", "Diglett", "Dugtrio", "Torkoal", "Numel", "Camerupt", "Bronzor", "Bronzong", "Axew", "Fraxure", "Haxorus", "Mankey", "Primeape", "Annihilape", "Meditite", "Medicham", "Riolu", "Lucario", "Charcadet", "Armarouge", "Ceruledge", "Barboach", "Whiscash", "Tadbulb", "Bellibolt", "Goomy", "Sliggoo", "Goodra", "Croagunk", "Toxicroak", "Wattrel", "Kilowattrel", "Eevee", "Vaporeon", "Jolteon", "Flareon", "Espeon", "Umbreon", "Leafeon", "Glaceon", "Sylveon", "Dunsparce", "Dudunsparce", "Deerling", "Sawsbuck", "Girafarig", "Farigiraf", "Grimer", "Muk", "Maschiff", "Mabosstiff", "Toxel", "Toxtricity", "Dedenne", "Pachirisu", "Shroodle", "Grafaiai", "Stantler", "Foongus", "Amoonguss", "Voltorb", "Electrode", "Magnemite", "Magneton", "Magnezone", "Ditto", "Growlithe", "Arcanine", "Teddiursa", "Ursaring", "Zangoose", "Seviper", "Swablu", "Altaria", "Skiddo", "Gogoat", "Tauros", "Litleo", "Pyroar", "Stunky", "Skuntank", "Zorua", "Zoroark", "Sneasel", "Weavile", "Murkrow", "Honchkrow", "Gothita", "Gothorita", "Gothitelle", "Sinistea", "Polteageist", "Mimikyu", "Klefki", "Indeedee", "Bramblin", "Brambleghast", "Toedscool", "Toedscruel", "Tropius", "Fomantis", "Lurantis", "Klawf", "Capsakid", "Scovillain", "Cacnea", "Cacturne", "Rellor", "Rabsca", "Venonat", "Venomoth", "Pineco", "Forretress", "Scyther", "Scizor", "Heracross", "Flittle", "Espathra", "Hippopotas", "Hippowdon", "Sandile", "Krokorok", "Krookodile", "Silicobra", "Sandaconda", "Mudbray", "Mudsdale", "Larvesta", "Volcarona", "Bagon", "Shelgon", "Salamence", "Tinkatink", "Tinkatuff", "Tinkaton", "Hatenna", "Hattrem", "Hatterene", "Impidimp", "Morgrem", "Grimmsnarl", "Wiglett", "Wugtrio", "Bombirdier", "Finizen", "Palafin", "Varoom", "Revavroom", "Cyclizar", "Orthworm", "Sableye", "Shuppet", "Banette", "Falinks", "Hawlucha", "Spiritomb", "Noibat", "Noivern", "Dreepy", "Drakloak", "Dragapult", "Glimmet", "Glimmora", "Rotom", "Greavard", "Houndstone", "Oranguru", "Passimian", "Komala", "Larvitar", "Pupitar", "Tyranitar", "Stonjourner", "Eiscue", "Pincurchin", "Sandygast", "Palossand", "Slowpoke", "Slowbro", "Slowking", "Shellos", "Gastrodon", "Shellder", "Cloyster", "Qwilfish", "Luvdisc", "Finneon", "Lumineon", "Bruxish", "Alomomola", "Skrelp", "Dragalge", "Clauncher", "Clawitzer", "Tynamo", "Eelektrik", "Eelektross", "Mareanie", "Toxapex", "Flamigo", "Dratini", "Dragonair", "Dragonite", "Snom", "Frosmoth", "Snover", "Abomasnow", "Delibird", "Cubchoo", "Beartic", "Snorunt", "Glalie", "Froslass", "Cryogonal", "Cetoddle", "Cetitan", "Bergmite", "Avalugg", "Rufflet", "Braviary", "Pawniard", "Bisharp", "Kingambit", "Deino", "Zweilous", "Hydreigon", "Veluza", "Dondozo", "Tatsugiri", "Great Tusk", "Scream Tail", "Brute Bonnet", "Flutter Mane", "Slither Wing", "Sandy Shocks", "Iron Treads", "Iron Bundle", "Iron Hands", "Iron Jugulis", "Iron Moth", "Iron Thorns", "Frigibax", "Arctibax", "Baxcalibur", "Gimmighoul", "Gholdengo", "Wo-Chien", "Chien-Pao", "Ting-Lu", "Chi-Yu", "Roaring Moon", "Iron Valiant", "Koraidon", "Miraidon", @@ -425,6 +434,46 @@ export const Rulesets: {[k: string]: FormatData} = { } }, }, + kitakamipokedex: { + effectType: 'ValidatorRule', + name: 'Kitakami Pokedex', + desc: "Only allows Pokémon native to the Kitakami region (SV DLC1)", + banlist: [ + 'Wooper-Paldea', 'Raichu-Alola', 'Vulpix-Alola', 'Ninetales-Alola', 'Growlithe-Hisui', 'Arcanine-Hisui', + 'Geodude-Alola', 'Graveler-Alola', 'Golem-Alola', 'Sandshrew-Alola', 'Sandslash-Alola', 'Weezing-Galar', + 'Sneasel-Hisui', 'Sliggoo-Hisui', 'Goodra-Hisui', 'Basculin-Red-Striped', 'Basculin-Blue-Striped', 'Ursaluna-Base', + ], + onValidateSet(set, format) { + const kitakamiDex = [ + "Spinarak", "Ariados", "Yanma", "Yanmega", "Wooper", "Quagsire", "Poochyena", "Mightyena", "Volbeat", "Illumise", "Corphish", "Crawdaunt", "Sewaddle", "Swadloon", "Leavanny", "Cutiefly", "Ribombee", "Ekans", "Arbok", "Pichu", "Pikachu", "Raichu", "Bellsprout", "Weepinbell", "Victreebel", "Sentret", "Furret", "Starly", "Staravia", "Staraptor", "Fomantis", "Lurantis", "Applin", "Flapple", "Appletun", "Dipplin", "Vulpix", "Ninetales", "Poliwag", "Poliwhirl", "Poliwrath", "Politoed", "Magikarp", "Gyarados", "Hoothoot", "Noctowl", "Aipom", "Ambipom", "Heracross", "Swinub", "Piloswine", "Mamoswine", "Stantler", "Seedot", "Nuzleaf", "Shiftry", "Ralts", "Kirlia", "Gardevoir", "Gallade", "Kricketot", "Kricketune", "Pachirisu", "Riolu", "Lucario", "Petilil", "Lilligant", "Phantump", "Trevenant", "Rockruff", "Lycanroc", "Skwovet", "Greedent", "Toedscool", "Toedscruel", "Poltchageist", "Sinistcha", "Growlithe", "Arcanine", "Geodude", "Graveler", "Golem", "Bonsly", "Sudowoodo", "Timburr", "Gurdurr", "Conkeldurr", "Noibat", "Noivern", "Arrokuda", "Barraskewda", "Hatenna", "Hattrem", "Hatterene", "Morpeko", "Orthworm", "Tandemaus", "Maushold", "Mankey", "Primeape", "Annihilape", "Munchlax", "Snorlax", "Lotad", "Lombre", "Ludicolo", "Nosepass", "Probopass", "Shinx", "Luxio", "Luxray", "Grubbin", "Charjabug", "Vikavolt", "Oricorio", "Sandshrew", "Sandslash", "Gastly", "Haunter", "Gengar", "Gligar", "Gliscor", "Houndour", "Houndoom", "Spoink", "Grumpig", "Vullaby", "Mandibuzz", "Mudbray", "Mudsdale", "Jangmo-o", "Hakamo-o", "Kommo-o", "Bombirdier", "Koffing", "Weezing", "Mienfoo", "Mienshao", "Duskull", "Dusclops", "Dusknoir", "Chingling", "Chimecho", "Slugma", "Magcargo", "Litwick", "Lampent", "Chandelure", "Surskit", "Masquerain", "Cleffa", "Clefairy", "Clefable", "Bronzor", "Bronzong", "Glimmet", "Glimmora", "Feebas", "Milotic", "Dunsparce", "Dudunsparce", "Barboach", "Whiscash", "Gible", "Gabite", "Garchomp", "Carbink", "Salandit", "Salazzle", "Sneasel", "Weavile", "Snorunt", "Glalie", "Froslass", "Tynamo", "Eelektrik", "Eelektross", "Goomy", "Sliggoo", "Goodra", "Ducklett", "Swanna", "Chewtle", "Drednaw", "Cramorant", "Pawniard", "Bisharp", "Kingambit", "Mimikyu", "Impidimp", "Morgrem", "Grimmsnarl", "Indeedee", "Basculin", "Basculegion", "Ursaluna", "Okidogi", "Munkidori", "Fezandipiti", "Ogerpon", + ]; + const species = this.dex.species.get(set.species || set.name); + if (!kitakamiDex.includes(species.baseSpecies) && !kitakamiDex.includes(species.name) && + !this.ruleTable.has('+' + species.id)) { + return [`${species.baseSpecies} is not in the Kitakami Pokédex.`]; + } + }, + }, + blueberrypokedex: { + effectType: 'ValidatorRule', + name: 'Blueberry Pokedex', + desc: "Only allows Pokémon native to the Blueberry Academy (SV DLC2)", + banlist: [ + 'Diglett-Base', 'Dugtrio-Base', 'Grimer-Base', 'Muk-Base', 'Slowpoke-Base', 'Slowbro-Base', 'Slowking-Base', + 'Geodude-Base', 'Graveler-Base', 'Golem-Base', 'Qwilfish-Base', 'Sandshrew-Base', 'Sandslash-Base', + 'Vulpix-Base', 'Ninetales-Base', 'Typhlosion-Hisui', 'Samurott-Hisui', 'Greninja-Bond', 'Decidueye-Hisui', + ], + onValidateSet(set, format) { + const blueberryDex = [ + "Doduo", "Dodrio", "Exeggcute", "Exeggutor", "Rhyhorn", "Rhydon", "Rhyperior", "Venonat", "Venomoth", "Elekid", "Electabuzz", "Electivire", "Magby", "Magmar", "Magmortar", "Happiny", "Chansey", "Blissey", "Scyther", "Scizor", "Kleavor", "Tauros", "Blitzle", "Zebstrika", "Girafarig", "Farigiraf", "Sandile", "Krokorok", "Krookodile", "Rellor", "Rabsca", "Rufflet", "Braviary", "Vullaby", "Mandibuzz", "Litleo", "Pyroar", "Deerling", "Sawsbuck", "Smeargle", "Rotom", "Milcery", "Alcremie", "Trapinch", "Vibrava", "Flygon", "Pikipek", "Trumbeak", "Toucannon", "Tentacool", "Tentacruel", "Horsea", "Seadra", "Kingdra", "Bruxish", "Cottonee", "Whimsicott", "Comfey", "Slakoth", "Vigoroth", "Slaking", "Oddish", "Gloom", "Vileplume", "Bellossom", "Diglett", "Dugtrio", "Grimer", "Muk", "Zangoose", "Seviper", "Crabrawler", "Crabominable", "Oricorio", "Slowpoke", "Slowbro", "Slowking", "Chinchou", "Lanturn", "Inkay", "Malamar", "Luvdisc", "Finneon", "Lumineon", "Alomomola", "Torkoal", "Fletchling", "Fletchinder", "Talonflame", "Dewpider", "Araquanid", "Tyrogue", "Hitmonlee", "Hitmonchan", "Hitmontop", "Geodude", "Graveler", "Golem", "Drilbur", "Excadrill", "Gothita", "Gothorita", "Gothitelle", "Espurr", "Meowstic", "Minior", "Cranidos", "Rampardos", "Shieldon", "Bastiodon", "Minccino", "Cinccino", "Skarmory", "Swablu", "Altaria", "Magnemite", "Magneton", "Magnezone", "Plusle", "Minun", "Scraggy", "Scrafty", "Golett", "Golurk", "Numel", "Camerupt", "Sinistea", "Polteageist", "Porygon", "Porygon2", "Porygon-Z", "Joltik", "Galvantula", "Tynamo", "Eelektrik", "Eelektross", "Beldum", "Metang", "Metagross", "Axew", "Fraxure", "Haxorus", "Seel", "Dewgong", "Lapras", "Qwilfish", "Overqwil", "Solosis", "Duosion", "Reuniclus", "Snubbull", "Granbull", "Cubchoo", "Beartic", "Sandshrew", "Sandslash", "Vulpix", "Ninetales", "Snover", "Abomasnow", "Duraludon", "Archaludon", "Hydrapple", "Bulbasaur", "Ivysaur", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise", "Chikorita", "Bayleef", "Meganium", "Cyndaquil", "Quilava", "Typhlosion", "Totodile", "Croconaw", "Feraligatr", "Treecko", "Grovyle", "Sceptile", "Torchic", "Combusken", "Blaziken", "Mudkip", "Marshtomp", "Swampert", "Turtwig", "Grotle", "Torterra", "Chimchar", "Monferno", "Infernape", "Piplup", "Prinplup", "Empoleon", "Snivy", "Servine", "Serperior", "Tepig", "Pignite", "Emboar", "Oshawott", "Dewott", "Samurott", "Chespin", "Quilladin", "Chesnaught", "Fennekin", "Braixen", "Delphox", "Froakie", "Frogadier", "Greninja", "Rowlet", "Dartrix", "Decidueye", "Litten", "Torracat", "Incineroar", "Popplio", "Brionne", "Primarina", "Grookey", "Thwackey", "Rillaboom", "Scorbunny", "Raboot", "Cinderace", "Sobble", "Drizzile", "Inteleon", "Gouging Fire", "Raging Bolt", "Iron Crown", "Iron Boulder", "Terapagos", "Walking Wake", "Iron Leaves", + ]; + const species = this.dex.species.get(set.species || set.name); + if (!blueberryDex.includes(species.baseSpecies) && !blueberryDex.includes(species.name) && + !this.ruleTable.has('+' + species.id)) { + return [`${species.baseSpecies} is not in the Blueberry Pokédex.`]; + } + }, + }, potd: { effectType: 'Rule', name: 'PotD', @@ -450,6 +499,10 @@ export const Rulesets: {[k: string]: FormatData} = { ) { throw new Error(`Invalid type "${type.name}" in Generation ${this.dex.gen}`); } + if (type.name === 'Stellar') { + throw new Error(`There are no Stellar-type Pok\u00e9mon.`); + } + return type.name; }, onValidateSet(set) { const species = this.dex.species.get(set.species); @@ -459,6 +512,51 @@ export const Rulesets: {[k: string]: FormatData} = { } }, }, + forcemonocolor: { + effectType: 'ValidatorRule', + name: 'Force Monocolor', + desc: `Forces all teams to have Pokémon of the same color. Usage: Force Monocolor = [Color], e.g. "Force Monocolor = Blue"`, + hasValue: true, + onValidateRule(value) { + const validColors = ["Black", "Blue", "Brown", "Gray", "Green", "Pink", "Purple", "Red", "White", "Yellow"]; + if (!validColors.map(this.dex.toID).includes(this.dex.toID(value))) { + throw new Error(`Invalid color "${value}"`); + } + }, + onValidateSet(set) { + const color = this.toID(this.ruleTable.valueRules.get('forcemonocolor')); + let dex = this.dex; + if (dex.gen < 5) { + dex = dex.forGen(5); + } + const species = dex.species.get(set.species); + if (this.toID(species.color) !== color) { + return [`${set.species} must be the color ${color}.`]; + } + }, + }, + forceteratype: { + effectType: 'ValidatorRule', + name: 'Force Tera Type', + desc: `Forces all Pokémon to have the same Tera Type. Usage: Force Tera Type = [Type], e.g. "Force Tera Type = Dragon"`, + hasValue: true, + onValidateRule(value) { + if (this.dex.gen !== 9) { + throw new Error(`Terastallization doesn't exist outside of Generation 9.`); + } + const type = this.dex.types.get(value); + if (!type.exists) throw new Error(`Misspelled type "${value}"`); + if (type.isNonstandard) { + throw new Error(`Invalid type "${type.name}" in Generation ${this.dex.gen}.`); + } + }, + onValidateSet(set) { + const type = this.dex.types.get(this.ruleTable.valueRules.get('forceteratype')!); + if (this.toID(set.teraType) !== type.id) { + return [`${set.species} must have its Tera Type set to ${type.name}.`]; + } + }, + }, forceselect: { effectType: 'ValidatorRule', name: 'Force Select', @@ -533,9 +631,12 @@ export const Rulesets: {[k: string]: FormatData} = { onTeamPreview() { this.add('clearpoke'); for (const pokemon of this.getAllPokemon()) { - const details = pokemon.details.replace(', shiny', '') - .replace(/(Arceus|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*') + let details = pokemon.details.replace(', shiny', '') .replace(/(Zacian|Zamazenta)(?!-Crowned)/g, '$1-*'); // Hacked-in Crowned formes will be revealed + if (!this.ruleTable.has('speciesrevealclause')) { + details = details + .replace(/(Greninja|Gourgeist|Pumpkaboo|Xerneas|Silvally|Urshifu|Dudunsparce)(-[a-zA-Z?-]+)?/g, '$1-*'); + } this.add('poke', pokemon.side.id, details, ''); } this.makeRequest('teampreview'); @@ -579,7 +680,6 @@ export const Rulesets: {[k: string]: FormatData} = { name: 'Little Cup', desc: "Only allows Pokémon that can evolve and don't have any prior evolutions", ruleset: ['Max Level = 5'], - banlist: ['Stantler'], onValidateSet(set) { const species = this.dex.species.get(set.species || set.name); if (species.prevo && this.dex.species.get(species.prevo).gen <= this.gen) { @@ -590,25 +690,88 @@ export const Rulesets: {[k: string]: FormatData} = { } }, }, + timerstarting: { + effectType: 'Rule', + name: 'Timer Starting', + desc: "Amount of time given at the start of the battle in seconds", + hasValue: 'positive-integer', + // hardcoded in server/room-battle.ts + }, + dctimer: { + effectType: 'Rule', + name: 'DC Timer', + desc: "Enables or disables the disconnection timer", + // hardcoded in server/room-battle.ts + }, + dctimerbank: { + effectType: 'Rule', + name: 'DC Timer Bank', + desc: "Enables or disables the disconnection timer bank", + // hardcoded in server/room-battle.ts + }, + timergrace: { + effectType: 'Rule', + name: 'Timer Grace', + desc: "Grace period between timer activation and when total time starts ticking down.", + hasValue: 'positive-integer', + // hardcoded in server/room-battle.ts + }, + timeraddperturn: { + effectType: 'Rule', + name: 'Timer Add Per Turn', + desc: "Amount of additional time given per turn in seconds", + hasValue: 'integer', + // hardcoded in server/room-battle.ts + }, + timermaxperturn: { + effectType: 'Rule', + name: 'Timer Max Per Turn', + desc: "Maximum amount of time allowed per turn in seconds", + hasValue: 'positive-integer', + // hardcoded in server/room-battle.ts + }, + timermaxfirstturn: { + effectType: 'Rule', + name: 'Timer Max First Turn', + desc: "Maximum amount of time allowed for the first turn in seconds", + hasValue: 'positive-integer', + // hardcoded in server/room-battle.ts + }, + timeoutautochoose: { + effectType: 'Rule', + name: 'Timeout Auto Choose', + desc: "Enables or disables automatic selection of moves when a player times out", + // hardcoded in server/room-battle.ts + }, + timeraccelerate: { + effectType: 'Rule', + name: 'Timer Accelerate', + desc: "Enables or disables timer acceleration", + // hardcoded in server/room-battle.ts + }, blitz: { effectType: 'Rule', name: 'Blitz', // THIS 100% INTENTIONALLY SAYS TEN SECONDS PER TURN - // IGNORE maxPerTurn. addPerTurn IS 5, TRANSLATING TO AN INCREMENT OF 10. + // IGNORE Max Per Turn. Add Per Turn IS 5, TRANSLATING TO AN INCREMENT OF 10. desc: "Super-fast 'Blitz' timer giving 30 second Team Preview and 10 seconds per turn.", onBegin() { this.add('rule', 'Blitz: Super-fast timer'); }, - timer: {starting: 15, addPerTurn: 5, maxPerTurn: 15, maxFirstTurn: 40, grace: 30}, + ruleset: [ + 'Timer Starting = 15', 'Timer Grace = 30', + 'Timer Add Per Turn = 5', 'Timer Max Per Turn = 15', 'Timer Max First Turn = 40', + ], }, vgctimer: { effectType: 'Rule', name: 'VGC Timer', desc: "VGC's timer: 90 second Team Preview, 7 minutes Your Time, 1 minute per turn", - timer: { - starting: 7 * 60, addPerTurn: 0, maxPerTurn: 55, maxFirstTurn: 90, - grace: 90, timeoutAutoChoose: true, dcTimerBank: false, - }, + ruleset: [ + 'Timer Starting = 420', 'Timer Grace = 90', + 'Timer Add Per Turn = 0', 'Timer Max Per Turn = 55', 'Timer Max First Turn = 90', + 'Timeout Auto Choose', 'DC Timer Bank', + ], }, speciesclause: { effectType: 'ValidatorRule', @@ -652,47 +815,31 @@ export const Rulesets: {[k: string]: FormatData} = { effectType: 'ValidatorRule', name: 'Item Clause', desc: "Prevents teams from having more than one Pokémon with the same item", + hasValue: 'positive-integer', onBegin() { - this.add('rule', 'Item Clause: Limit one of each item'); + this.add('rule', `Item Clause: Limit ${this.ruleTable.valueRules.get('itemclause') || 1} of each item`); }, - onValidateTeam(team) { - const itemTable = new Set(); - for (const set of team) { - const item = this.toID(set.item); - if (!item) continue; - if (itemTable.has(item)) { - return [ - `You are limited to one of each item by Item Clause.`, - `(You have more than one ${this.dex.items.get(item).name})`, - ]; - } - itemTable.add(item); + onValidateRule(value) { + const num = Number(value); + if (num < 1 || num > this.ruleTable.maxTeamSize) { + throw new Error(`Item Clause must be between 1 and ${this.ruleTable.maxTeamSize}.`); } - }, - }, - doubleitemclause: { - effectType: 'ValidatorRule', - name: 'Double Item Clause', - desc: "Prevents teams from having more than two Pokémon with the same item", - onBegin() { - this.add('rule', 'Double Item Clause: Limit two of each item'); + return value; }, onValidateTeam(team) { - const itemTable: {[k: string]: number} = {}; + const itemTable = new this.dex.Multiset(); for (const set of team) { const item = this.toID(set.item); if (!item) continue; - if (item in itemTable) { - if (itemTable[item] >= 2) { - return [ - `You are limited to two of each item by Double Item Clause.`, - `(You have more than two ${this.dex.items.get(item).name})`, - ]; - } - itemTable[item]++; - } else { - itemTable[item] = 1; - } + itemTable.add(item); + } + const itemLimit = Number(this.ruleTable.valueRules.get('itemclause') || 1); + for (const [itemid, num] of itemTable) { + if (num <= itemLimit) continue; + return [ + `You are limited to ${itemLimit} of each item by Item Clause.`, + `(You have more than ${itemLimit} ${this.dex.items.get(itemid).name})`, + ]; } }, }, @@ -711,7 +858,7 @@ export const Rulesets: {[k: string]: FormatData} = { }, onValidateTeam(team) { if (this.format.id === 'gen8multibility') return; - const abilityTable = new Map(); + const abilityTable = new this.dex.Multiset(); const base: {[k: string]: string} = { airlock: 'cloudnine', armortail: 'queenlymajesty', @@ -723,6 +870,7 @@ export const Rulesets: {[k: string]: FormatData} = { gooey: 'tanglinghair', insomnia: 'vitalspirit', ironbarbs: 'roughskin', + keeneye: 'illuminate', libero: 'protean', minus: 'plus', moxie: 'chillingneigh', @@ -736,13 +884,13 @@ export const Rulesets: {[k: string]: FormatData} = { let ability = this.toID(set.ability); if (!ability) continue; if (ability in base) ability = base[ability] as ID; - if ((abilityTable.get(ability) || 0) >= num) { + if (abilityTable.get(ability) >= num) { return [ `You are limited to ${num} of each ability by Ability Clause.`, `(You have more than ${num} ${this.dex.abilities.get(ability).name} variant${num === 1 ? '' : 's'})`, ]; } - abilityTable.set(ability, (abilityTable.get(ability) || 0) + 1); + abilityTable.add(ability); } }, }, @@ -785,7 +933,7 @@ export const Rulesets: {[k: string]: FormatData} = { evasionitemsclause: { effectType: 'ValidatorRule', name: 'Evasion Items Clause', - desc: "Bans moves that lower the accuracy of moves used against the user", + desc: "Bans items that lower the accuracy of moves used against the user", banlist: ['Bright Powder', 'Lax Incense'], onBegin() { this.add('rule', 'Evasion Items Clause: Evasion items are banned'); @@ -824,7 +972,7 @@ export const Rulesets: {[k: string]: FormatData} = { if (set.moves) { for (const id of set.moves) { const move = this.dex.moves.get(id); - if (move.status && move.status === 'slp') problems.push(move.name + ' is banned by Sleep Moves Clause.'); + if (move.status === 'slp') problems.push(move.name + ' is banned by Sleep Moves Clause.'); } } return problems; @@ -851,7 +999,7 @@ export const Rulesets: {[k: string]: FormatData} = { // but false if the move's accuracy is 100% (yet can be lowered). const hasMissChanceOrNeverMisses = move.accuracy === true || move.accuracy < 100; - if (move.status && move.status === 'slp' && hasMissChanceOrNeverMisses) { + if (move.status === 'slp' && hasMissChanceOrNeverMisses) { hasSleepMove = true; } } @@ -891,6 +1039,13 @@ export const Rulesets: {[k: string]: FormatData} = { this.add('rule', 'Swagger Clause: Swagger is banned'); }, }, + drypassclause: { + effectType: 'ValidatorRule', + name: 'DryPass Clause', + desc: "Stops teams from bringing Pokémon with Baton Pass + any form of trapping, residual recovery, boosting, or Substitute.", + ruleset: ['Baton Pass Stat Clause', 'Baton Pass Stat Trap Clause'], + banlist: ['Baton Pass + Substitute', 'Baton Pass + Ingrain', 'Baton Pass + Aqua Ring', 'Baton Pass + Block', 'Baton Pass + Mean Look', 'Baton Pass + Spider Web', 'Baton Pass + Jaw Lock'], + }, batonpassclause: { effectType: 'ValidatorRule', name: 'Baton Pass Clause', @@ -1020,22 +1175,25 @@ export const Rulesets: {[k: string]: FormatData} = { const boostingEffects = [ 'absorbbulb', 'acidarmor', 'acupressure', 'agility', 'amnesia', 'ancientpower', 'angerpoint', 'apicotberry', 'autotomize', 'barrier', 'bellydrum', 'bulkup', 'calmmind', 'cellbattery', 'chargebeam', 'coil', 'cosmicpower', 'cottonguard', 'curse', - 'defendorder', 'defiant', 'download', 'dragondance', 'fierydance', 'flamecharge', 'ganlonberry', 'growth', 'harden', - 'honeclaws', 'howl', 'irondefense', 'justified', 'liechiberry', 'lightningrod', 'meditate', 'metalclaw', 'meteormash', - 'motordrive', 'moxie', 'nastyplot', 'ominouswind', 'petayaberry', 'quiverdance', 'rage', 'rattled', 'rockpolish', - 'salacberry', 'sapsipper', 'sharpen', 'shellsmash', 'shiftgear', 'silverwind', 'skullbash', 'speedboost', 'starfberry', - 'steadfast', 'steelwing', 'stockpile', 'stormdrain', 'swordsdance', 'tailglow', 'weakarmor', 'withdraw', 'workup', + 'defendorder', 'defiant', 'download', 'dragondance', 'fierydance', 'flamecharge', 'focusenergy', 'ganlonberry', 'growth', + 'harden', 'honeclaws', 'howl', 'irondefense', 'justified', 'liechiberry', 'lightningrod', 'meditate', 'metalclaw', + 'meteormash', 'motordrive', 'moxie', 'nastyplot', 'ominouswind', 'petayaberry', 'quiverdance', 'rage', 'rattled', + 'rockpolish', 'salacberry', 'sapsipper', 'sharpen', 'shellsmash', 'shiftgear', 'silverwind', 'skullbash', 'speedboost', + 'starfberry', 'steadfast', 'steelwing', 'stockpile', 'stormdrain', 'swordsdance', 'tailglow', 'weakarmor', 'withdraw', + 'workup', ]; for (const set of team) { - if (!set.moves.includes('Baton Pass')) continue; + const moves = set.moves.map(this.toID); + if (!moves.includes('batonpass' as ID)) continue; let passableBoosts = false; const item = this.toID(set.item); const ability = this.toID(set.ability); - for (const move of set.moves) { - if (boostingEffects.includes(this.toID(move))) passableBoosts = true; + if ( + moves.some(m => boostingEffects.includes(m)) || boostingEffects.includes(item) || + boostingEffects.includes(ability) + ) { + passableBoosts = true; } - if (boostingEffects.includes(item)) passableBoosts = true; - if (boostingEffects.includes(ability)) passableBoosts = true; if (passableBoosts) { return [ `${set.name || set.species} has Baton Pass and a way to boost its stats, which is banned by Baton Pass Stat Clause.`, @@ -1044,6 +1202,40 @@ export const Rulesets: {[k: string]: FormatData} = { } }, }, + batonpassstattrapclause: { + effectType: 'ValidatorRule', + name: 'Baton Pass Stat Trap Clause', + desc: "Stops teams from having a Pokémon with Baton Pass that has any way to boost its stats or trap Pokémon.", + onBegin() { + this.add('rule', 'Baton Pass Stat Trap Clause: No Baton Passer may have a way to boost stats or trap Pok\u00e9mon'); + }, + onValidateTeam(team) { + const statBoostOrTrapping = [ + 'Acid Armor', 'Acupressure', 'Agility', 'Amnesia', 'Ancient Power', 'Assist', 'Barrier', 'Belly Drum', 'Block', 'Bulk Up', 'Calm Mind', 'Charge', + 'Charge Beam', 'Cosmic Power', 'Curse', 'Defend Order', 'Defense Curl', 'Dragon Dance', 'Growth', 'Guard Swap', 'Harden', 'Heart Swap', 'Howl', + 'Iron Defense', 'Ingrain', 'Mean Look', 'Meteor Mash', 'Meditate', 'Metal Claw', 'Nasty Plot', 'Ominous Wind', 'Power Trick', 'Psych Up', 'Rage', + 'Rock Polish', 'Sharpen', 'Silver Wind', 'Skull Bash', 'Spider Web', 'Steel Wing', 'Stockpile', 'Swords Dance', 'Tail Glow', 'Withdraw', 'Speed Boost', + 'Apicot Berry', 'Ganlon Berry', 'Liechi Berry', 'Petaya Berry', 'Salac Berry', 'Starf Berry', 'Kee Berry', 'Maranga Berry', 'Weakness Policy', + 'Blunder Policy', 'Luminiscent Moss', 'Snowball', 'Throat Spray', 'Mirror Herb', 'Adrenaline Orb', + ].map(this.toID); + for (const set of team) { + if (!set.moves.map(this.toID).includes('batonpass' as ID)) continue; + let passableBoosts = false; + const item = this.toID(set.item); + const ability = this.toID(set.ability); + for (const move of set.moves) { + if (statBoostOrTrapping.includes(this.toID(move))) passableBoosts = true; + } + if (statBoostOrTrapping.includes(item)) passableBoosts = true; + if (statBoostOrTrapping.includes(ability)) passableBoosts = true; + if (passableBoosts) { + return [ + `${set.name || set.species} has Baton Pass and a way to boost its stats or pass trapping, which is banned by Baton Pass Stat Trap Clause.`, + ]; + } + } + }, + }, cfzclause: { effectType: 'ValidatorRule', name: 'CFZ Clause', @@ -1150,7 +1342,7 @@ export const Rulesets: {[k: string]: FormatData} = { if (status.id === 'slp') { for (const pokemon of target.side.pokemon) { if (pokemon.hp && pokemon.status === 'slp') { - this.add('-message', "Sleep Clause activated. (In Nintendo formats, Sleep Clause activates if any of the opponent's Pokemon are asleep, even if self-inflicted from Rest)"); + this.add('-message', "Sleep Clause activated. (In official formats, Sleep Clause activates if any of the opponent's Pokemon are asleep, even if self-inflicted from Rest)"); return false; } } @@ -1257,7 +1449,9 @@ export const Rulesets: {[k: string]: FormatData} = { if (pokemon.species.id === 'rayquaza') { pokemon.canMegaEvo = null; // ability to terastal was determined before the clause activated, causing incorrect behavior - pokemon.canTerastallize = this.actions.canTerastallize(pokemon); + if (!this.ruleTable.has('terastalclause')) { + pokemon.canTerastallize = this.actions.canTerastallize(pokemon); + } } } }, @@ -1334,7 +1528,8 @@ export const Rulesets: {[k: string]: FormatData} = { // The effectiveness of Freeze Dry on Water isn't reverted if (move && move.id === 'freezedry' && type === 'Water') return; if (move && !this.dex.getImmunity(move, type)) return 1; - return -typeMod; + // Ignore normal effectiveness, prevents bug with Tera Shell + if (typeMod) return -typeMod; }, }, @@ -1374,7 +1569,8 @@ export const Rulesets: {[k: string]: FormatData} = { const speciesTypes: string[] = []; const moveTypes: string[] = []; // BDSP can't import Pokemon from Home, so it shouldn't grant moves from archaic species types - const minObtainableSpeciesGen = this.dex.currentMod === 'gen8bdsp' || this.dex.gen === 9 ? + const minObtainableSpeciesGen = this.dex.currentMod === 'gen8bdsp' || + (this.dex.gen === 9 && !this.ruleTable.has('standardnatdex')) ? this.dex.gen : species.gen; for (let i = this.dex.gen; i >= minObtainableSpeciesGen && i >= move.gen; i--) { const dex = this.dex.forGen(i); @@ -1451,7 +1647,7 @@ export const Rulesets: {[k: string]: FormatData} = { return null; }, onValidateTeam(team) { - const sketches = new Utils.Multiset(); + const sketches = new this.dex.Multiset(); for (const set of team) { if ((set as any).sketchMove) { sketches.add((set as any).sketchMove); @@ -1526,7 +1722,7 @@ export const Rulesets: {[k: string]: FormatData} = { 'sketchpostgen7moves': { effectType: 'ValidatorRule', name: 'Sketch Post-Gen 7 Moves', - desc: "Allows Pokémon who learn Sketch to learn any Gen 8+ move (normally, Sketch is not usable in Gen 8+).", + desc: "Allows Pokémon who learn Sketch to learn any Gen 8+ move (normally, Sketch is not usable in Gen 8 or Gen 9 Pre-DLC2).", // Implemented in sim/team-validator.ts }, mimicglitch: { @@ -1638,7 +1834,7 @@ export const Rulesets: {[k: string]: FormatData} = { for (const side of this.sides) { for (const pokemon of side.pokemon) { const details = pokemon.details.replace(', shiny', '') - .replace(/(Arceus|Gourgeist|Pumpkaboo|Silvally|Urshifu)(-[a-zA-Z?-]+)?/g, '$1-*'); + .replace(/(Arceus|Greninja|Gourgeist|Pumpkaboo|Silvally|Urshifu)(-[a-zA-Z?-]+)?/g, '$1-*'); this.add('poke', pokemon.side.id, details, ''); } let buf = 'raw|'; @@ -1658,6 +1854,12 @@ export const Rulesets: {[k: string]: FormatData} = { effectType: 'Rule', name: 'Open Team Sheets', desc: "Allows each player to see the Pokémon and all non-stat information about them, before they choose their lead Pokémon", + mutuallyExclusiveWith: 'forceopenteamsheets', + onValidateRule() { + if (!(this.ruleTable.has('teampreview') || this.ruleTable.has('teamtypepreview'))) { + throw new Error(`The "Open Team Sheets" rule${this.ruleTable.blame('openteamsheets')} requires Team Preview.`); + } + }, onTeamPreview() { const msg = 'uhtml|otsrequest|'; for (const side of this.sides) { @@ -1674,12 +1876,14 @@ export const Rulesets: {[k: string]: FormatData} = { effectType: 'Rule', name: 'Force Open Team Sheets', desc: "Allows each player to see the Pokémon and all non-stat information about them, before they choose their lead Pokémon", - onTeamPreview() { - let buf = 'raw|'; - for (const side of this.sides) { - buf += Utils.html`
Open Team Sheet for ${side.name}${Teams.export(side.team, {hideStats: true})}
`; + mutuallyExclusiveWith: 'openteamsheets', + onValidateRule() { + if (!(this.ruleTable.has('teampreview') || this.ruleTable.has('teamtypepreview'))) { + throw new Error(`The "Force Open Team Sheets" rule${this.ruleTable.blame('forceopenteamsheets')} requires Team Preview.`); } - this.add(buf); + }, + onTeamPreview() { + this.showOpenTeamSheets(); }, }, aaarestrictedabilities: { @@ -1707,27 +1911,22 @@ export const Rulesets: {[k: string]: FormatData} = { this.add('rule', 'Event Moves Clause: Event-only moves are banned'); }, onValidateSet(set) { + if (!set.moves) return; + const moveSources: NonNullable = Object.fromEntries( + set.moves.map(move => [this.toID(move), []]) + ); + const species = this.dex.species.get(set.species); - const learnsetData = {...(this.dex.data.Learnsets[species.id]?.learnset || {})}; - let prevo = species.prevo; - while (prevo) { - const prevoSpecies = this.dex.species.get(prevo); - const prevoLsetData = this.dex.data.Learnsets[prevoSpecies.id]?.learnset || {}; - for (const moveid in prevoLsetData) { - if (!(moveid in learnsetData)) { - learnsetData[moveid] = prevoLsetData[moveid]; - } else { - learnsetData[moveid].push(...prevoLsetData[moveid]); - } + for (const {learnset} of this.dex.species.getFullLearnset(species.id)) { + for (const moveid in moveSources) { + moveSources[moveid].push(...(learnset[moveid] || [])); } - prevo = prevoSpecies.prevo; } const problems = []; - if (set.moves?.length) { - for (const move of set.moves) { - if (learnsetData[this.toID(move)] && !learnsetData[this.toID(move)].filter(v => !v.includes('S')).length) { - problems.push(`${species.name}'s move ${move} is obtainable only through events.`); - } + for (const move of set.moves) { + const sources = moveSources[this.toID(move)]; + if (sources?.length && sources.every(learned => learned.includes('S'))) { + problems.push(`${species.name}'s move ${move} is obtainable only through events.`); } } if (problems.length) problems.push(`(Event-only moves are banned.)`); @@ -1766,6 +1965,11 @@ export const Rulesets: {[k: string]: FormatData} = { desc: "Maximum team size (number of pokemon) that can be brought into Team Preview (or into the battle, in formats without Team Preview)", hasValue: 'positive-integer', // hardcoded in sim/team-validator + onValidateRule(value) { + if (this.format.id.endsWith('computergeneratedteams')) { + throw new Error(`${this.format.name} does not support Max Team Size.`); + } + }, }, maxmovecount: { effectType: 'ValidatorRule', @@ -1869,9 +2073,9 @@ export const Rulesets: {[k: string]: FormatData} = { desc: "Bans items that are not usable in Pokemon Stadium 2.", banlist: ['Fast Ball', 'Friend Ball', 'Great Ball', 'Heavy Ball', 'Level Ball', 'Love Ball', 'Lure Ball', 'Master Ball', 'Moon Ball', 'Park Ball', 'Poke Ball', 'Safari Ball', 'Ultra Ball', 'Fire Stone', 'Leaf Stone', 'Moon Stone', 'Sun Stone', 'Thunder Stone', 'Upgrade', 'Water Stone', 'Mail'], }, - nintendocup2000movelegality: { + nc2000movelegality: { effectType: 'ValidatorRule', - name: "Nintendo Cup 2000 Move Legality", + name: "NC 2000 Move Legality", desc: "Prevents Pok\u00e9mon from having moves that would only be obtainable in Pok\u00e9mon Crystal.", // Implemented in mods/gen2/rulesets.ts }, @@ -1881,10 +2085,10 @@ export const Rulesets: {[k: string]: FormatData} = { desc: "Bans the combination of Agility and partial trapping moves like Wrap.", banlist: ['Agility + Wrap', 'Agility + Fire Spin', 'Agility + Bind', 'Agility + Clamp'], }, - nintendocup1997movelegality: { + nc1997movelegality: { effectType: 'ValidatorRule', - name: "Nintendo Cup 1997 Move Legality", - desc: "Bans move combinations on Pok\u00e9mon that weren't legal in Nintendo Cup 1997.", + name: "NC 1997 Move Legality", + desc: "Bans move combinations on Pok\u00e9mon that weren't legal in NC 1997.", // Implemented in mods/gen1jpn/rulesets.ts }, noswitching: { @@ -1908,8 +2112,7 @@ export const Rulesets: {[k: string]: FormatData} = { } const ruleTable = this.ruleTable; const maxTeamSize = ruleTable.pickedTeamSize || ruleTable.maxTeamSize; - const numPlayers = (this.format.gameType === 'freeforall' || this.format.gameType === 'multi') ? 4 : 2; - const potentialMaxTeamSize = maxTeamSize * numPlayers; + const potentialMaxTeamSize = maxTeamSize * this.format.playerCount; if (potentialMaxTeamSize > 24) { throw new Error(`Crazyhouse Rule cannot be added because a team can potentially have ${potentialMaxTeamSize} Pokemon on one team, which is more than the server limit of 24.`); } @@ -1924,53 +2127,37 @@ export const Rulesets: {[k: string]: FormatData} = { } }, onFaint(target, source, effect) { - if (!target.m.numSwaps) { - target.m.numSwaps = 0; - } + target.m.numSwaps ||= 0; target.m.numSwaps++; - if (effect && effect.effectType === 'Move' && source.side.pokemon.length < 24 && - source.side !== target.side && target.m.numSwaps < 4) { - const hpCost = this.clampIntRange(Math.floor((target.baseMaxhp * target.m.numSwaps) / 4), 1); - // Just in case(tm) and for Shedinja - if (hpCost === target.baseMaxhp) { - target.m.outofplay = true; - return; - } - source.side.pokemonLeft++; - source.side.pokemon.length++; - - // A new Pokemon is created and stuff gets aside akin to a deep clone. - // This is because deepClone crashes when side is called recursively. - // Until a refactor is made to prevent it, this is the best option to prevent crashes. - const newPoke = new Pokemon(target.set, source.side); - const newPos = source.side.pokemon.length - 1; + if (effect?.effectType !== 'Move' || source.side.pokemon.length >= 24 || + source.side === target.side || target.m.numSwaps >= 4) { + target.m.outofplay = true; + return; + } - const doNotCarryOver = [ - 'fullname', 'side', 'fainted', 'status', 'hp', 'illusion', - 'transformed', 'position', 'isActive', 'faintQueued', - 'subFainted', 'getHealth', 'getDetails', 'moveSlots', 'ability', - ]; - for (const [key, value] of Object.entries(target)) { - if (doNotCarryOver.includes(key)) continue; - // @ts-ignore - newPoke[key] = value; - } - newPoke.maxhp = newPoke.baseMaxhp; // for dynamax - newPoke.hp = newPoke.baseMaxhp - hpCost; - newPoke.clearVolatile(); - newPoke.position = newPos; - source.side.pokemon[newPos] = newPoke; - this.add('poke', source.side.pokemon[newPos].side.id, source.side.pokemon[newPos].details, ''); - this.add('-message', `${target.name} was captured by ${newPoke.side.name}!`); - } else { + const hpCost = this.clampIntRange(Math.floor((target.baseMaxhp * target.m.numSwaps) / 4), 1); + // Just in case(tm) and for Shedinja + if (hpCost >= target.baseMaxhp) { target.m.outofplay = true; + return; } + + const newPoke = source.side.addPokemon({...target.set, item: target.item})!; + + // copy PP over + (newPoke as any).baseMoveSlots = target.baseMoveSlots; + + newPoke.hp = this.clampIntRange(newPoke.maxhp - hpCost, 1); + newPoke.clearVolatile(); + + this.add('poke', newPoke.side.id, newPoke.details, ''); + this.add('-message', `${target.name} was captured by ${newPoke.side.name}!`); }, }, chimera1v1rule: { effectType: 'Rule', name: 'Chimera 1v1 Rule', - desc: "Validation and battle effects for Chimera 1v1.", + desc: "Merges a team of six into a single Pok\u00e9mon depending on the order chosen at team preview: It gains the typing of the first, item of the second, ability of the third, stats of the fourth, the first two moves of the fifth, and the last two moves of the sixth.", ruleset: ['Team Preview', 'Picked Team Size = 6'], onValidateSet(set) { if (!set.item) return; @@ -2014,19 +2201,19 @@ export const Rulesets: {[k: string]: FormatData} = { pokemon.setSpecies(newSpecies, null); }, }, - bonustyperule: { - name: "Bonus Type Rule", + bonustypemod: { + name: "Bonus Type Mod", effectType: "Rule", - desc: `Pokémon can be nicknamed the name of a type to have that type added onto their current ones.`, + desc: `Pokémon have their Tera Type added onto their current ones.`, onBegin() { - this.add('rule', 'Bonus Type Rule: Pok\u00e9mon can be nicknamed the name of a type to have that type added onto their current ones.'); + this.add('rule', 'Bonus Type Mod: Pok\u00e9mon have their Tera Type added onto their current ones.'); }, onModifySpeciesPriority: 1, onModifySpecies(species, target, source, effect) { if (!target) return; // Chat command if (effect && ['imposter', 'transform'].includes(effect.id)) return; const typesSet = new Set(species.types); - const bonusType = this.dex.types.get(target.set.name); + const bonusType = this.dex.types.get(target.teraType); if (bonusType.exists) typesSet.add(bonusType.name); return {...species, types: [...typesSet]}; }, @@ -2051,7 +2238,7 @@ export const Rulesets: {[k: string]: FormatData} = { tiershiftmod: { effectType: "Rule", name: "Tier Shift Mod", - desc: `Pokémon below OU get their stats, excluding HP, boosted. UU/RUBL get +10, RU/NUBL get +20, NU/PUBL get +30, and PU or lower get +40.`, + desc: `Pokémon below OU get their stats, excluding HP, boosted. UU/RUBL get +15, RU/NUBL get +20, NU/PUBL get +25, and PU or lower get +30.`, ruleset: ['Overflow Stat Mod'], onBegin() { this.add('rule', 'Tier Shift Mod: Pok\u00e9mon get stat buffs depending on their tier, excluding HP.'); @@ -2059,22 +2246,26 @@ export const Rulesets: {[k: string]: FormatData} = { onModifySpecies(species, target, source, effect) { if (!species.baseStats) return; const boosts: {[tier: string]: number} = { - uu: 10, - rubl: 10, + uu: 15, + rubl: 15, ru: 20, nubl: 20, - nu: 30, - publ: 30, - pu: 40, - nfe: 40, - lc: 40, + nu: 25, + publ: 25, + pu: 30, + zubl: 30, + zu: 30, + nfe: 30, + lc: 30, }; - let tier: string = this.toID(species.tier); + const isNatDex: boolean = this.ruleTable.has("standardnatdex"); + let tier: string = this.toID(isNatDex ? species.natDexTier : species.tier); if (!(tier in boosts)) return; // Non-Pokemon bans in lower tiers if (target) { - if (target.set.item === 'lightclay') return; - if (['drizzle', 'drought', 'snowwarning'].includes(target.set.ability) && boosts[tier] > 20) tier = 'nubl'; + if (this.toID(target.set.item) === 'lightclay') tier = 'rubl'; + if (this.toID(target.set.item) === 'damprock') tier = 'publ'; + if (this.toID(target.set.item) === 'heatrock') tier = 'publ'; } const pokemon = this.dex.deepClone(species); pokemon.bst = pokemon.baseStats['hp']; @@ -2129,7 +2320,9 @@ export const Rulesets: {[k: string]: FormatData} = { }, onModifySpecies(species, target) { const newSpecies = this.dex.deepClone(species); - const baseSpecies = this.dex.species.get(species.baseSpecies); + const baseSpecies = this.dex.species.get( + (Array.isArray(species.battleOnly) ? species.battleOnly[0] : species.battleOnly) || species.changesFrom || species.name + ); if (!newSpecies.prevo) { if (!baseSpecies.prevo) return; const prevoSpecies = this.dex.species.get(baseSpecies.prevo); @@ -2246,6 +2439,29 @@ export const Rulesets: {[k: string]: FormatData} = { } }, }, + forceofthefallenmod: { + effectType: 'Rule', + name: 'Force of the Fallen Mod', + desc: `Pokémon pass the move in their last moveslot to their allies when they are KOed.`, + onValidateSet(set, format, setHas, teamHas) { + const lastMoveslot = this.dex.moves.get(set.moves[set.moves.length - 1]); + if (this.ruleTable.isRestricted(`move:${lastMoveslot.id}`)) { + return [`${set.species}'s move ${lastMoveslot.name} cannot be placed in the last moveslot.`]; + } + }, + onBegin() { + this.add('rule', 'Force of the Fallen Mod: Pok&\u00e9mon pass the move in their last moveslot to their allies when they\'re KOed'); + for (const pokemon of this.getAllPokemon()) { + pokemon.m.trueLastMoveSlot = pokemon.baseMoveSlots[pokemon.baseMoveSlots.length - 1]; + } + }, + onFaint(target) { + const allies = target.side.pokemon.filter(ally => ally && target !== ally); + for (const ally of allies) { + ally.moveSlots = (ally as any).baseMoveSlots = [...ally.baseMoveSlots, target.m.trueLastMoveSlot]; + } + }, + }, categoryswapmod: { effectType: 'Rule', name: 'Category Swap Mod', @@ -2344,16 +2560,19 @@ export const Rulesets: {[k: string]: FormatData} = { for (const set of team) { let species = this.dex.species.get(set.species); if (typeof species.battleOnly === 'string') species = this.dex.species.get(species.battleOnly); + if ( + (species.baseSpecies === 'Zamazenta' && this.toID(set.item) === 'rustedshield') || + (species.baseSpecies === 'Zacian' && this.toID(set.item) === 'rustedsword') + ) { + species = this.dex.species.get(`${species.baseSpecies}-Crowned`); + } if (set.item && this.dex.items.get(set.item).megaStone) { const item = this.dex.items.get(set.item); if (item.megaEvolves === species.baseSpecies) { species = this.dex.species.get(item.megaStone); } } - if ( - ['ag', 'uber'].includes(this.toID(this.ruleTable.has('standardnatdex') ? species.natDexTier : species.tier)) || - this.toID(set.ability) === 'powerconstruct' - ) { + if (this.ruleTable.isRestrictedSpecies(species)) { gods.add(species.name); } } @@ -2366,19 +2585,18 @@ export const Rulesets: {[k: string]: FormatData} = { if (source || !target?.side) return; const god = target.side.team.find(set => { let godSpecies = this.dex.species.get(set.species); - const isNatDex = this.format.ruleTable?.has('standardnatdex'); - const validator = this.dex.formats.getRuleTable( - this.dex.formats.get(`gen${this.gen}${isNatDex && this.gen >= 8 ? 'nationaldex' : 'ou'}`) - ); if (this.toID(set.ability) === 'powerconstruct') { return true; } if (set.item) { const item = this.dex.items.get(set.item); if (item.megaEvolves === set.species) godSpecies = this.dex.species.get(item.megaStone); + if (["Zacian", "Zamazenta"].includes(godSpecies.baseSpecies) && item.id.startsWith('rusted')) { + godSpecies = this.dex.species.get(set.species + "-Crowned"); + } } - const isBanned = validator.isBannedSpecies(godSpecies); - return isBanned; + const isGod = this.ruleTable.isRestrictedSpecies(godSpecies); + return isGod; }) || target.side.team[0]; const stat = Dex.stats.ids()[target.side.team.indexOf(target.set)]; const newSpecies = this.dex.deepClone(species); @@ -2443,4 +2661,289 @@ export const Rulesets: {[k: string]: FormatData} = { return this.checkCanLearn(move, species, setSources, set); }, }, + hackmonsformelegality: { + effectType: 'ValidatorRule', + name: "Hackmons Forme Legality", + desc: `Enforces proper forme legality for hackmons-based metagames.`, + unbanlist: ['All Pokemon'], + banlist: ['CAP', 'LGPE', 'Future'], + onChangeSet(set, format, setHas, teamHas) { + let species = this.dex.species.get(set.species); + if ( + (species.natDexTier === 'Illegal' || species.forme.includes('Totem')) && + !['Floette-Eternal', 'Greninja-Ash', 'Xerneas-Neutral'].includes(species.name) && + !this.ruleTable.has(`+pokemon:${species.id}`) + ) { + return [`${species.name} is illegal.`]; + } + const problemPokemon = this.dex.species.all().filter(s => ( + (s.name === 'Xerneas' || s.battleOnly || s.forme === 'Eternamax') && + !(s.isMega || s.isPrimal || ['Greninja-Ash', 'Necrozma-Ultra'].includes(s.name)) && + !(this.ruleTable.has(`+pokemon:${s.id}`) || this.ruleTable.has(`+basepokemon:${this.toID(s.baseSpecies)}`)) + )); + if (problemPokemon.includes(species)) { + if (species.requiredItem && this.toID(set.item) !== this.toID(species.requiredItem)) { + return [`${set.name ? `${set.name} (${species.name})` : species.name} is required to hold ${species.requiredItem}.`]; + } + if (species.requiredMove && !set.moves.map(this.toID).includes(this.toID(species.requiredMove))) { + return [`${set.name ? `${set.name} (${species.name})` : species.name} is required to have ${species.requiredMove}.`]; + } + set.species = (species.id === 'xerneas' ? 'Xerneas-Neutral' : + species.id === 'zygardecomplete' ? 'Zygarde' : species.battleOnly) as string; + species = this.dex.species.get(set.species); + } + for (const moveid of set.moves) { + const move = this.dex.moves.get(moveid); + if (move.isNonstandard && move.isNonstandard !== 'Unobtainable' && !this.ruleTable.has(`+move:${move.id}`)) { + return [`${move.name} is illegal.`]; + } + } + const item = this.dex.items.get(set.item); + if (item.isNonstandard && item.isNonstandard !== 'Unobtainable' && !this.ruleTable.has(`+item:${item.id}`)) { + return [`${item.name} is illegal.`]; + } + if (species.baseSpecies === 'Xerneas' && this.toID(set.ability) !== 'fairyaura') { + return [`${set.name ? `${set.name} (${species.name})` : species.name} is ability-locked into Fairy Aura.`]; + } + }, + }, + speciesrevealclause: { + effectType: 'Rule', + name: 'Species Reveal Clause', + desc: "Reveals a Pokémon's true species in hackmons-based metagames.", + // Hardcoded into effect, cannot be disabled, ties into team preview + onBegin() { + this.add('rule', 'Species Reveal Clause: Reveals a Pok\u00e9mon\'s true species in hackmons-based metagames.'); + }, + }, + franticfusionsmod: { + effectType: 'Rule', + name: "Frantic Fusions Mod", + desc: `Pokémon nicknamed after another Pokémon get their stats buffed by 1/4 of that Pokémon's stats, barring HP, and access to their abilities.`, + onBegin() { + this.add('rule', 'Frantic Fusions Mod: Pok\u00e9mon nicknamed after another Pok\u00e9mon get buffed stats and more abilities.'); + }, + onValidateSet(set) { + const species = this.dex.species.get(set.species); + const fusion = this.dex.species.get(set.name); + const abilityPool = new Set(Object.values(species.abilities)); + if (fusion.exists) { + for (const ability of Object.values(fusion.abilities)) { + abilityPool.add(ability); + } + } + const ability = this.dex.abilities.get(set.ability); + if (!abilityPool.has(ability.name)) { + return [`${species.name} only has access to the following abilities: ${Array.from(abilityPool).join(', ')}.`]; + } + }, + onValidateTeam(team, format) { + const donors = new this.dex.Multiset(); + for (const set of team) { + const species = this.dex.species.get(set.species); + const fusion = this.dex.species.get(set.name); + if (fusion.exists) { + set.name = fusion.name; + } else { + set.name = species.baseSpecies; + if (species.baseSpecies === 'Unown') set.species = 'Unown'; + } + if (fusion.name === species.name) continue; + donors.add(fusion.name); + } + for (const [fusionName, number] of donors) { + if (number > 1) { + return [`You can only fuse with any Pok\u00e9 once.`, `(You have ${number} Pok\u00e9mon fused with ${fusionName}.)`]; + } + const fusion = this.dex.species.get(fusionName); + if (this.ruleTable.isBannedSpecies(fusion) || fusion.battleOnly) { + return [`Pok\u00e9mon can't fuse with banned Pok\u00e9mon.`, `(${fusionName} is banned.)`]; + } + if (fusion.isNonstandard && + !(this.ruleTable.has(`+pokemontag:${this.toID(fusion.isNonstandard)}`) || + this.ruleTable.has(`+pokemon:${fusion.id}`) || + this.ruleTable.has(`+basepokemon:${this.toID(fusion.baseSpecies)}`))) { + return [`${fusion.name} is marked as ${fusion.isNonstandard}, which is banned.`]; + } + } + }, + onModifySpecies(species, target, source, effect) { + if (!target) return; + const newSpecies = this.dex.deepClone(species); + const fusionName = target.set.name; + if (!fusionName || fusionName === newSpecies.name) return; + const fusionSpecies = this.dex.deepClone(this.dex.species.get(fusionName)); + newSpecies.bst = newSpecies.baseStats.hp; + for (const stat in newSpecies.baseStats) { + if (stat === 'hp') continue; + const addition = Math.floor(fusionSpecies.baseStats[stat] / 4); + newSpecies.baseStats[stat] = this.clampIntRange(newSpecies.baseStats[stat] + addition, 1, 255); + newSpecies.bst += newSpecies.baseStats[stat]; + } + return newSpecies; + }, + }, + proteanpalacemod: { + effectType: 'Rule', + name: "Protean Palace Mod", + desc: `Pokémon become the type of the move they use.`, + onBegin() { + this.add('rule', 'Protean Palace Mod: Pok\u00e9mon become the type of the move they use.'); + }, + onPrepareHit(source, target, move) { + if (move.hasBounced || move.flags['futuremove'] || move.sourceEffect === 'snatch') return; + const type = move.type; + if (type && type !== '???' && source.getTypes().join() !== type) { + if (!source.setType(type)) return; + this.add('-start', source, 'typechange', type, '[from] ability: Protean'); + } + }, + }, + bestof: { + effectType: 'ValidatorRule', + name: 'Best Of', + desc: "Allows players to define a best-of series where the winner of the series is the winner of the majority of games.", + hasValue: 'positive-integer', + onValidateRule(value) { + const num = Number(value); + if (num > 9 || num < 3 || num % 2 !== 1) { + throw new Error("Series length must be an odd number between three and nine (inclusive)."); + } + if (!['singles', 'doubles'].includes(this.format.gameType)) { + throw new Error("Only single and doubles battles can be a Best-of series."); + } + return value; + }, + }, + illusionlevelmod: { + effectType: 'Rule', + name: "Illusion Level Mod", + desc: `Changes the Illusion ability to disguise the Pokémon's level instead of leaking it.`, + onBegin() { + this.add('rule', "Illusion Level Mod: Illusion disguises the Pok\u00e9mon's true level"); + }, + // Implemented in Pokemon#getDetails + }, + allowedpokemoves: { + effectType: 'ValidatorRule', + name: "Allowed Pokemoves", + desc: "Allows players to define the amount of Pokemoves allowed per set.", + hasValue: 'positive-integer', + onValidateRule(value) { + const num = Number(value); + if (num > this.ruleTable.maxMoveCount || num < 1) { + throw new Error(`Allowed Pokemoves must be between 1 and ${this.ruleTable.maxMoveCount}.`); + } + return value; + }, + // Validation in the Pokemoves format + }, + uniquepokemoves: { + effectType: 'ValidatorRule', + name: "Unique Pokemoves", + desc: "Allows players to define how many times a Pokemon can be used as a Pokemove per team.", + hasValue: 'positive-integer', + onValidateRule(value) { + const num = Number(value); + if (num > this.ruleTable.maxMoveCount || num < 1) { + throw new Error(`Unique Pokemoves must be between 1 and ${this.ruleTable.maxMoveCount}.`); + } + return value; + }, + onValidateTeam(team, format, teamHas) { + const pokemoves = new this.dex.Multiset(); + for (const set of team) { + if (set.moves?.length) { + for (const moveid of set.moves) { + const pokemove = this.dex.species.get(moveid); + if (!pokemove.exists) continue; + pokemoves.add(pokemove.id); + } + } + } + const problems: string[] = []; + const uniquePokemoves = Number(this.ruleTable.valueRules.get('uniquepokemoveclause') || 1); + for (const [moveid, num] of pokemoves) { + if (num <= uniquePokemoves) continue; + problems.push( + `You have ${num} Pok\u00e9mon with ${this.dex.species.get(moveid).name} as a Pokemove.`, + `(Each Pok\u00e9mon can only be used as a Pokemove ${uniquePokemoves} time${uniquePokemoves === 1 ? '' : 's'} per team.)` + ); + } + return problems; + }, + }, + ferventimpersonationmod: { + effectType: 'Rule', + name: "Fervent Impersonation Mod", + desc: `Nickname a Pokémon after another Pokémon that it shares a moveset with, and it will transform into the Pokémon it's nicknamed after once it drops to or below 50% health.`, + onValidateTeam(team, format, teamHas) { + const exhaustedSpecies = new Set(); + for (const set of team) { + const species = this.dex.species.get(set.species); + const impersonation = this.dex.species.get(set.name); + if (exhaustedSpecies.has(species.baseSpecies) || + (exhaustedSpecies.has(impersonation.baseSpecies) && impersonation.baseSpecies !== species.baseSpecies)) { + return [`You have more than one Pok\u00e9mon nicknamed after ${impersonation.baseSpecies}.`]; + } + exhaustedSpecies.add(species.baseSpecies); + if (impersonation.exists && impersonation.baseSpecies !== species.baseSpecies) { + exhaustedSpecies.add(impersonation.baseSpecies); + } + } + }, + onValidateSet(set) { + const species = this.dex.species.get(set.species); + const impersonation = this.dex.species.get(set.name); + if (this.ruleTable.isRestrictedSpecies(species)) { + return [ + `${species.name} can't be used as a base species.`, + `(Restricted Pok\u00e9mon can only be used as impersonations.)`, + ]; + } + const rt = this.ruleTable; + if ((this.toID(set.name) !== species.id && this.toID(set.name) !== impersonation.id) || + (impersonation.isNonstandard && !(rt.has(`+pokemontag:${this.toID(impersonation.isNonstandard)}`) || + rt.has(`+pokemon:${impersonation.id}`) || rt.has(`+basepokemon:${this.toID(impersonation.baseSpecies)}`)))) { + return [`All Pok\u00e9mon must either have no nickname or must be nicknamed after a Pok\u00e9mon.`]; + } + }, + checkCanLearn(move, species, setSources, set) { + const impersonation = this.dex.species.get(set.name); + const baseCheckCanLearn = this.checkCanLearn(move, species, setSources, set); + if (baseCheckCanLearn) return baseCheckCanLearn; + return this.checkCanLearn(move, impersonation, setSources, set); + }, + onResidualOrder: 29, + onResidual(pokemon) { + if (pokemon.transformed || !pokemon.hp) return; + const oldPokemon = pokemon.species; + const impersonation = this.dex.species.get(pokemon.set.name); + if (pokemon.species.baseSpecies === impersonation.baseSpecies || pokemon.hp > pokemon.maxhp / 2) return; + this.add('-activate', pokemon, 'ability: Power Construct'); + const abilitySlot = Object.keys(oldPokemon.abilities).find(x => ( + (oldPokemon.abilities as any)[x] === pokemon.set.ability + )) || "0"; + pokemon.formeChange(impersonation.name, this.effect, true, abilitySlot); + pokemon.baseMaxhp = Math.floor(Math.floor( + 2 * pokemon.species.baseStats['hp'] + pokemon.set.ivs['hp'] + Math.floor(pokemon.set.evs['hp'] / 4) + 100 + ) * pokemon.level / 100 + 10); + const newMaxHP = pokemon.volatiles['dynamax'] ? (2 * pokemon.baseMaxhp) : pokemon.baseMaxhp; + pokemon.hp = this.clampIntRange(newMaxHP - (pokemon.maxhp - pokemon.hp), 1, newMaxHP); + pokemon.maxhp = newMaxHP; + this.add('-heal', pokemon, pokemon.getHealth, '[silent]'); + }, + }, + twisteddimensionmod: { + effectType: 'Rule', + name: "Twisted Dimension Mod", + desc: `The effects of Trick Room are always active, using Trick Room reverts the field to normal for 5 turns.`, + // implemented in Pokemon#getActionSpeed() + }, + mixandmegaoldaggronite: { + effectType: 'Rule', + name: "Mix and Mega Old Aggronite", + desc: `Causes Aggronite to no longer give the Steel type in Mix and Mega.`, + // implemented in mods/mixandmega/scripts.ts + }, }; diff --git a/data/tags.ts b/data/tags.ts index 4d37a2f1c4eb..0913068277b7 100644 --- a/data/tags.ts +++ b/data/tags.ts @@ -9,7 +9,7 @@ interface TagData { genericNumCol?: (thing: Species | Move | Item | Ability) => number; } -export const Tags: {[id: string]: TagData} = { +export const Tags: {[id: IDEntry]: TagData} = { // Categories // ---------- physical: { @@ -46,6 +46,10 @@ export const Tags: {[id: string]: TagData} = { name: "Restricted Legendary", speciesFilter: species => species.tags.includes("Restricted Legendary"), }, + ultrabeast: { + name: "Ultra Beast", + speciesFilter: species => species.tags.includes("Ultra Beast"), + }, paradox: { name: "Paradox", speciesFilter: species => species.tags.includes("Paradox"), @@ -168,9 +172,13 @@ export const Tags: {[id: string]: TagData} = { name: "PU", speciesFilter: species => species.tier === 'PU' || species.tier === '(NU)', }, + zubl: { + name: "ZUBL", + speciesFilter: species => species.tier === 'ZUBL', + }, zu: { name: "ZU", - speciesFilter: species => species.tier === '(PU)', + speciesFilter: species => species.tier === '(PU)' || species.tier === 'ZU', }, nfe: { name: "NFE", @@ -250,6 +258,14 @@ export const Tags: {[id: string]: TagData} = { name: "ND RU", speciesFilter: species => species.natDexTier === 'RU', }, + ndnfe: { + name: "ND NFE", + speciesFilter: species => species.natDexTier === 'NFE', + }, + ndlc: { + name: "ND LC", + speciesFilter: species => species.natDexTier === 'LC', + }, // Legality tags past: { diff --git a/data/text/abilities.ts b/data/text/abilities.ts index 730b963628e2..5fe012d7ddb3 100644 --- a/data/text/abilities.ts +++ b/data/text/abilities.ts @@ -1,4 +1,4 @@ -export const AbilitiesText: {[k: string]: AbilityText} = { +export const AbilitiesText: {[id: IDEntry]: AbilityText} = { noability: { name: "No Ability", shortDesc: "Does nothing.", @@ -435,6 +435,30 @@ export const AbilitiesText: {[k: string]: AbilityText} = { start: " Being hit by [MOVE] charged [POKEMON] with power!", }, + embodyaspectcornerstone: { + name: "Embody Aspect (Cornerstone)", + shortDesc: "On switch-in, this Pokemon's Defense is raised by 1 stage.", + + boost: " The Cornerstone Mask worn by [POKEMON] shone brilliantly, and [POKEMON]'s Defense rose!", + }, + embodyaspecthearthflame: { + name: "Embody Aspect (Hearthflame)", + shortDesc: "On switch-in, this Pokemon's Attack is raised by 1 stage.", + + boost: " The Hearthflame Mask worn by [POKEMON] shone brilliantly, and [POKEMON]'s Attack rose!", + }, + embodyaspectteal: { + name: "Embody Aspect (Teal)", + shortDesc: "On switch-in, this Pokemon's Speed is raised by 1 stage.", + + boost: " The Teal Mask worn by [POKEMON] shone brilliantly, and [POKEMON]'s Speed rose!", + }, + embodyaspectwellspring: { + name: "Embody Aspect (Wellspring)", + shortDesc: "On switch-in, this Pokemon's Special Defense is raised by 1 stage.", + + boost: " The Wellspring Mask worn by [POKEMON] shone brilliantly, and [POKEMON]'s Sp. Def rose!", + }, emergencyexit: { name: "Emergency Exit", desc: "When this Pokemon has more than 1/2 its maximum HP and takes damage bringing it to 1/2 or less of its maximum HP, it immediately switches out to a chosen ally. This effect applies after all hits from a multi-hit move. This effect is prevented if the move had a secondary effect removed by the Sheer Force Ability. This effect applies to both direct and indirect damage, except Curse and Substitute on use, Belly Drum, Pain Split, and confusion damage.", @@ -628,8 +652,12 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, heatproof: { name: "Heatproof", - desc: "The power of Fire-type attacks against this Pokemon is halved. This Pokemon takes half of the usual burn damage, rounded down.", - shortDesc: "The power of Fire-type attacks against this Pokemon is halved; burn damage halved.", + desc: "If a Pokemon uses a Fire-type attack against this Pokemon, that Pokemon's offensive stat is halved when calculating the damage to this Pokemon. This Pokemon takes half of the usual burn damage, rounded down.", + shortDesc: "Fire damage against this Pokemon is dealt with 1/2 offensive stat; 1/2 burn damage.", + gen8: { + desc: "The power of Fire-type attacks against this Pokemon is halved. This Pokemon takes half of the usual burn damage, rounded down.", + shortDesc: "The power of Fire-type attacks against this Pokemon is halved; burn damage halved.", + }, }, heavymetal: { name: "Heavy Metal", @@ -640,6 +668,12 @@ export const AbilitiesText: {[k: string]: AbilityText} = { name: "Honey Gather", shortDesc: "No competitive use.", }, + hospitality: { + name: "Hospitality", + shortDesc: "On switch-in, this Pokemon restores 1/4 of its ally's maximum HP, rounded down.", + + heal: " [POKEMON] drank down all the matcha that [SOURCE] made!", + }, hugepower: { name: "Huge Power", shortDesc: "This Pokemon's Attack is doubled.", @@ -690,7 +724,12 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, illuminate: { name: "Illuminate", - shortDesc: "No competitive use.", + desc: "Prevents other Pokemon from lowering this Pokemon's accuracy stat stage. This Pokemon ignores a target's evasiveness stat stage.", + shortDesc: "This Pokemon's accuracy can't be lowered by others; ignores their evasiveness stat.", + gen8: { + desc: "No competitive use.", + shortDesc: "No competitive use.", + }, }, illusion: { name: "Illusion", @@ -860,8 +899,11 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, lingeringaroma: { name: "Lingering Aroma", - desc: "Pokemon making contact with this Pokemon have their Ability changed to Lingering Aroma. Does not affect Pokemon with the As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Lingering Aroma, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Zen Mode, or Zero to Hero Abilities.", + desc: "Pokemon making contact with this Pokemon have their Ability changed to Lingering Aroma. Does not affect Pokemon with the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Lingering Aroma, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Zen Mode, or Zero to Hero Abilities.", shortDesc: "Making contact with this Pokemon has the attacker's Ability become Lingering Aroma.", + gen8: { + desc: "Pokemon making contact with this Pokemon have their Ability changed to Lingering Aroma. Does not affect Pokemon with the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Lingering Aroma, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode Abilities.", + }, changeAbility: " A lingering aroma clings to [TARGET]!", }, @@ -952,6 +994,11 @@ export const AbilitiesText: {[k: string]: AbilityText} = { activate: " [POKEMON] returned to its original type!", }, + mindseye: { + name: "Mind's Eye", + desc: "This Pokemon can hit Ghost types with Normal- and Fighting-type moves. Prevents other Pokemon from lowering this Pokemon's accuracy stat stage. This Pokemon ignores a target's evasiveness stat stage.", + shortDesc: "Fighting, Normal moves hit Ghost. Accuracy can't be lowered, ignores evasiveness.", + }, minus: { name: "Minus", desc: "If an active ally has this Ability or the Plus Ability, this Pokemon's Special Attack is multiplied by 1.5.", @@ -976,8 +1023,11 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, moldbreaker: { name: "Mold Breaker", - desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Armor Tail, Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Earth Eater, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Good as Gold, Grass Pelt, Guard Dog, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Illuminate, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mind's Eye, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Purifying Salt, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Tera Shell, Thermal Exchange, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, Well-Baked Body, White Smoke, Wind Rider, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", + gen8: { + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", + }, gen7: { desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dark Aura, Dazzling, Disguise, Dry Skin, Fairy Aura, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", }, @@ -1031,7 +1081,7 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, mummy: { name: "Mummy", - desc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy. Does not affect Pokemon with the As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Multitype, Mummy, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Zen Mode, or Zero to Hero Abilities.", + desc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy. Does not affect Pokemon with the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Mummy, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Zen Mode, or Zero to Hero Abilities.", shortDesc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy.", gen8: { desc: "Pokemon making contact with this Pokemon have their Ability changed to Mummy. Does not affect Pokemon with the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Mummy, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode Abilities.", @@ -1066,8 +1116,11 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, neutralizinggas: { name: "Neutralizing Gas", - desc: "While this Pokemon is active, Abilities have no effect. This Ability activates before hazards and other Abilities take effect. Does not affect the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode Abilities.", + desc: "While this Pokemon is active, Abilities have no effect. This Ability activates before hazards and other Abilities take effect. Does not affect the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Neutralizing Gas, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Zen Mode, or Zero to Hero Abilities.", shortDesc: "While this Pokemon is active, Abilities have no effect.", + gen8: { + desc: "While this Pokemon is active, Abilities have no effect. This Ability activates before hazards and other Abilities take effect. Does not affect the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Neutralizing Gas, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode Abilities.", + }, start: " Neutralizing gas filled the area!", end: " The effects of the neutralizing gas wore off!", @@ -1177,7 +1230,11 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, pickup: { name: "Pickup", + desc: "At the end of each turn, if this Pokemon is not holding an item and at least one adjacent Pokemon used an item during this turn, one of those Pokemon is selected at random and this Pokemon obtains that Pokemon's last used item. An item is not considered the last used if it was a popped Air Balloon, if the item was picked up by another Pokemon with this Ability, or if the item was lost to Bug Bite, Corrosive Gas, Covet, Incinerate, Knock Off, Pluck, or Thief. Items thrown with Fling can be picked up.", shortDesc: "If this Pokemon has no item, it finds one used by an adjacent Pokemon this turn.", + gen7: { + desc: "At the end of each turn, if this Pokemon is not holding an item and at least one adjacent Pokemon used an item during this turn, one of those Pokemon is selected at random and this Pokemon obtains that Pokemon's last used item. An item is not considered the last used if it was a popped Air Balloon, if the item was picked up by another Pokemon with this Ability, or if the item was lost to Bug Bite, Covet, Incinerate, Knock Off, Pluck, or Thief. Items thrown with Fling can be picked up.", + }, gen4: { desc: "No competitive use.", shortDesc: "No competitive use.", @@ -1223,6 +1280,11 @@ export const AbilitiesText: {[k: string]: AbilityText} = { shortDesc: "1/3 chance a Pokemon making contact with this Pokemon will be poisoned.", }, }, + poisonpuppeteer: { + name: "Poison Puppeteer", + desc: "If this Pokemon is a Pecharunt and poisons or badly poisons a target, the target also becomes confused.", + shortDesc: "Pecharunt: If this Pokemon poisons a target, the target also becomes confused.", + }, poisontouch: { name: "Poison Touch", desc: "This Pokemon's contact moves have a 30% chance of poisoning. This effect comes after a move's inherent secondary effect chance.", @@ -1238,7 +1300,7 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, powerofalchemy: { name: "Power of Alchemy", - desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are As One, Battle Bond, Comatose, Commander, Disguise, Flower Gift, Forecast, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, Zen Mode, and Zero to Hero.", + desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Flower Gift, Forecast, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Tera Shell, Tera Shift, Teraform Zero, Trace, Wonder Guard, Zen Mode, and Zero to Hero.", shortDesc: "This Pokemon copies the Ability of an ally that faints.", gen8: { desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are As One, Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, and Zen Mode.", @@ -1380,7 +1442,7 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, receiver: { name: "Receiver", - desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are As One, Battle Bond, Comatose, Commander, Disguise, Flower Gift, Forecast, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, Zen Mode, and Zero to Hero.", + desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Flower Gift, Forecast, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Tera Shell, Tera Shift, Teraform Zero, Trace, Wonder Guard, Zen Mode, and Zero to Hero.", shortDesc: "This Pokemon copies the Ability of an ally that faints.", gen8: { desc: "This Pokemon copies the Ability of an ally that faints. Abilities that cannot be copied are As One, Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, and Zen Mode.", @@ -1792,6 +1854,12 @@ export const AbilitiesText: {[k: string]: AbilityText} = { name: "Super Luck", shortDesc: "This Pokemon's critical hit ratio is raised by 1 stage.", }, + supersweetsyrup: { + name: "Supersweet Syrup", + shortDesc: "On switch-in, this Pokemon lowers the evasiveness of opponents 1 stage. Once per battle.", + + start: " A supersweet aroma is wafting from the syrup covering [POKEMON]!", + }, supremeoverlord: { name: "Supreme Overlord", desc: "This Pokemon's moves have their power multiplied by 1+(X*0.1), where X is the total number of times any Pokemon has fainted on the user's side when this Ability became active, and X cannot be greater than 5.", @@ -1883,10 +1951,30 @@ export const AbilitiesText: {[k: string]: AbilityText} = { block: " [POKEMON] can't be hit by attacks from its ally Pok\u00E9mon!", }, + teraformzero: { + name: "Teraform Zero", + shortDesc: "Terapagos: Terastallizing ends the effects of weather and terrain. Once per battle.", + }, + terashell: { + name: "Tera Shell", + desc: "If this Pokemon is a Terapagos at full HP, the effectiveness of attacks against it is changed to 0.5 unless this Pokemon is immune to the move. Multi-hit moves retain the same effectiveness throughout the attack.", + shortDesc: "Terapagos: If full HP, attacks taken have 0.5x effectiveness unless naturally immune.", + + activate: " [POKEMON] made its shell gleam! It's distorting type matchups!", + }, + terashift: { + name: "Tera Shift", + shortDesc: "If this Pokemon is a Terapagos, it transforms into its Terastal Form on entry.", + + transform: "[POKEMON] transformed!", + }, teravolt: { name: "Teravolt", - desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Armor Tail, Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Earth Eater, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Good as Gold, Grass Pelt, Guard Dog, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Illuminate, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mind's Eye, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Purifying Salt, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Tera Shell, Thermal Exchange, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, Well-Baked Body, White Smoke, Wind Rider, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", + gen8: { + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", + }, gen7: { desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dark Aura, Dazzling, Disguise, Dry Skin, Fairy Aura, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", }, @@ -1896,6 +1984,9 @@ export const AbilitiesText: {[k: string]: AbilityText} = { gen5: { desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Battle Armor, Big Pecks, Clear Body, Contrary, Damp, Dry Skin, Filter, Flash Fire, Flower Gift, Friend Guard, Heatproof, Heavy Metal, Hyper Cutter, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Motor Drive, Multiscale, Oblivious, Own Tempo, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", }, + gen4: { + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Battle Armor, Clear Body, Damp, Dry Skin, Filter, Flash Fire, Flower Gift, Heatproof, Hyper Cutter, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Lightning Rod, Limber, Magma Armor, Marvel Scale, Motor Drive, Oblivious, Own Tempo, Sand Veil, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Tangled Feet, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Veil, White Smoke, and Wonder Guard. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move. The Attack modifier from an ally's Flower Gift Ability is not negated.", + }, start: " [POKEMON] is radiating a bursting aura!", }, @@ -1939,13 +2030,18 @@ export const AbilitiesText: {[k: string]: AbilityText} = { desc: "While this Pokemon is poisoned, the power of its physical attacks is multiplied by 1.5.", shortDesc: "While this Pokemon is poisoned, its physical attacks have 1.5x power.", }, + toxicchain: { + name: "Toxic Chain", + desc: "This Pokemon's attacks have a 30% chance of badly poisoning. This effect comes before a move's inherent secondary effect chance.", + shortDesc: "This Pokemon's attacks have a 30% chance of badly poisoning.", + }, toxicdebris: { name: "Toxic Debris", shortDesc: "If this Pokemon is hit by a physical attack, Toxic Spikes are set on the opposing side.", }, trace: { name: "Trace", - desc: "On switch-in, this Pokemon copies a random opposing Pokemon's Ability. Abilities that cannot be copied are As One, Battle Bond, Comatose, Commander, Disguise, Flower Gift, Forecast, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Zen Mode, and Zero to Hero. If no opposing Pokemon has an Ability that can be copied, this Ability will activate as soon as one does.", + desc: "On switch-in, this Pokemon copies a random opposing Pokemon's Ability. Abilities that cannot be copied are As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Flower Gift, Forecast, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Teraform Zero, Tera Shell, Tera Shift, Trace, Zen Mode, and Zero to Hero. If no opposing Pokemon has an Ability that can be copied, this Ability will activate as soon as one does.", shortDesc: "On switch-in, or when it can, this Pokemon copies a random adjacent foe's Ability.", gen8: { desc: "On switch-in, this Pokemon copies a random opposing Pokemon's Ability. Abilities that cannot be copied are As One, Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, and Zen Mode. If no opposing Pokemon has an Ability that can be copied, this Ability will activate as soon as one does.", @@ -1970,7 +2066,10 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, transistor: { name: "Transistor", - shortDesc: "This Pokemon's offensive stat is multiplied by 1.5 while using an Electric-type attack.", + shortDesc: "This Pokemon's offensive stat is multiplied by 1.3 while using an Electric-type attack.", + gen8: { + shortDesc: "This Pokemon's offensive stat is multiplied by 1.5 while using an Electric-type attack.", + }, }, triage: { name: "Triage", @@ -1987,8 +2086,11 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, turboblaze: { name: "Turboblaze", - desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Armor Tail, Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Earth Eater, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Good as Gold, Grass Pelt, Guard Dog, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Illuminate, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mind's Eye, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Purifying Salt, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Tera Shell, Thermal Exchange, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, Well-Baked Body, White Smoke, Wind Rider, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", shortDesc: "This Pokemon's moves and their effects ignore the Abilities of other Pokemon.", + gen8: { + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dazzling, Disguise, Dry Skin, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Ice Face, Ice Scales, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Mirror Armor, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Pastel Veil, Punk Rock, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", + }, gen7: { desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Aroma Veil, Aura Break, Battle Armor, Big Pecks, Bulletproof, Clear Body, Contrary, Damp, Dark Aura, Dazzling, Disguise, Dry Skin, Fairy Aura, Filter, Flash Fire, Flower Gift, Flower Veil, Fluffy, Friend Guard, Fur Coat, Grass Pelt, Heatproof, Heavy Metal, Hyper Cutter, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Motor Drive, Multiscale, Oblivious, Overcoat, Own Tempo, Queenly Majesty, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Sweet Veil, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Bubble, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", }, @@ -1998,6 +2100,9 @@ export const AbilitiesText: {[k: string]: AbilityText} = { gen5: { desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Battle Armor, Big Pecks, Clear Body, Contrary, Damp, Dry Skin, Filter, Flash Fire, Flower Gift, Friend Guard, Heatproof, Heavy Metal, Hyper Cutter, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Light Metal, Lightning Rod, Limber, Magic Bounce, Magma Armor, Marvel Scale, Motor Drive, Multiscale, Oblivious, Own Tempo, Sand Veil, Sap Sipper, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Tangled Feet, Telepathy, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Veil, White Smoke, Wonder Guard, and Wonder Skin. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move, and whether or not their Ability is beneficial to this Pokemon.", }, + gen4: { + desc: "This Pokemon's moves and their effects ignore certain Abilities of other Pokemon. The Abilities that can be negated are Battle Armor, Clear Body, Damp, Dry Skin, Filter, Flash Fire, Flower Gift, Heatproof, Hyper Cutter, Immunity, Inner Focus, Insomnia, Keen Eye, Leaf Guard, Levitate, Lightning Rod, Limber, Magma Armor, Marvel Scale, Motor Drive, Oblivious, Own Tempo, Sand Veil, Shell Armor, Shield Dust, Simple, Snow Cloak, Solid Rock, Soundproof, Sticky Hold, Storm Drain, Sturdy, Suction Cups, Tangled Feet, Thick Fat, Unaware, Vital Spirit, Volt Absorb, Water Absorb, Water Veil, White Smoke, and Wonder Guard. This affects every other Pokemon on the field, whether or not it is a target of this Pokemon's move. The Attack modifier from an ally's Flower Gift Ability is not negated.", + }, start: " [POKEMON] is radiating a blazing aura!", }, @@ -2047,10 +2152,10 @@ export const AbilitiesText: {[k: string]: AbilityText} = { }, wanderingspirit: { name: "Wandering Spirit", - desc: "Pokemon making contact with this Pokemon have their Ability swapped with this one. Does not affect Pokemon with the As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, Zen Mode, or Zero to Hero Abilities.", + desc: "Pokemon making contact with this Pokemon have their Ability swapped with this one. Does not affect Pokemon with the Abilities As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Tera Shell, Tera Shift, Teraform Zero, Wonder Guard, Zen Mode, or Zero to Hero.", shortDesc: "Pokemon making contact with this Pokemon have their Ability swapped with this one.", gen8: { - desc: "Pokemon making contact with this Pokemon have their Ability swapped with this one. Does not affect Pokemon with the As One, Battle Bond, Comatose, Disguise, Gulp Missile, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, or Zen Mode Abilities.", + desc: "Pokemon making contact with this Pokemon have their Ability swapped with this one. Does not affect Pokemon with the Abilities As One, Battle Bond, Comatose, Disguise, Gulp Missile, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, or Zen Mode.", }, activate: "#skillswap", diff --git a/data/text/default.ts b/data/text/default.ts index 6054a6de1b0a..d71689cd597d 100644 --- a/data/text/default.ts +++ b/data/text/default.ts @@ -1,4 +1,4 @@ -export const DefaultText: {[k: string]: DefaultText} = { +export const DefaultText: {[id: IDEntry]: DefaultText} = { default: { startBattle: "Battle started between [TRAINER] and [TRAINER]!", winBattle: "**[TRAINER]** won the battle!", diff --git a/data/text/items.ts b/data/text/items.ts index ebe18147f631..c4e11f8b73ab 100644 --- a/data/text/items.ts +++ b/data/text/items.ts @@ -1,341 +1,349 @@ -export const ItemsText: {[k: string]: ItemText} = { +export const ItemsText: {[id: IDEntry]: ItemText} = { abilityshield: { name: "Ability Shield", - desc: "Holder's Ability cannot be changed by any effect.", + shortDesc: "Holder's Ability cannot be changed, suppressed, or ignored by any effect.", block: " [POKEMON]'s Ability is protected by the effects of its Ability Shield!", }, abomasite: { name: "Abomasite", - desc: "If held by an Abomasnow, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Abomasnow, this item allows it to Mega Evolve in battle.", }, absolite: { name: "Absolite", - desc: "If held by an Absol, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Absol, this item allows it to Mega Evolve in battle.", }, absorbbulb: { name: "Absorb Bulb", - desc: "Raises holder's Sp. Atk by 1 stage if hit by a Water-type attack. Single use.", + shortDesc: "Raises holder's Sp. Atk by 1 stage if hit by a Water-type attack. Single use.", }, adamantcrystal: { name: "Adamant Crystal", - desc: "If held by a Dialga, its Steel- and Dragon-type attacks have 1.2x power.", + shortDesc: "If held by a Dialga, its Steel- and Dragon-type attacks have 1.2x power.", }, adamantorb: { name: "Adamant Orb", - desc: "If held by a Dialga, its Steel- and Dragon-type attacks have 1.2x power.", + shortDesc: "If held by a Dialga, its Steel- and Dragon-type attacks have 1.2x power.", }, adrenalineorb: { name: "Adrenaline Orb", - desc: "Raises holder's Speed by 1 stage if it gets affected by Intimidate. Single use.", + shortDesc: "Raises holder's Speed by 1 stage if it gets affected by Intimidate. Single use.", }, aerodactylite: { name: "Aerodactylite", - desc: "If held by an Aerodactyl, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Aerodactyl, this item allows it to Mega Evolve in battle.", }, aggronite: { name: "Aggronite", - desc: "If held by an Aggron, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Aggron, this item allows it to Mega Evolve in battle.", }, aguavberry: { name: "Aguav Berry", - desc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -SpD Nature. Single use.", + shortDesc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -SpD Nature. Single use.", gen7: { - desc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -SpD Nature. Single use.", + shortDesc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -SpD Nature. Single use.", }, gen6: { - desc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -SpD Nature. Single use.", + shortDesc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -SpD Nature. Single use.", }, }, airballoon: { name: "Air Balloon", - desc: "Holder is immune to Ground-type attacks. Pops when holder is hit.", + shortDesc: "Holder is immune to Ground-type attacks. Pops when holder is hit.", start: " [POKEMON] floats in the air with its Air Balloon!", end: " [POKEMON]'s Air Balloon popped!", }, alakazite: { name: "Alakazite", - desc: "If held by an Alakazam, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Alakazam, this item allows it to Mega Evolve in battle.", }, aloraichiumz: { name: "Aloraichium Z", - desc: "If held by an Alolan Raichu with Thunderbolt, it can use Stoked Sparksurfer.", + shortDesc: "If held by an Alolan Raichu with Thunderbolt, it can use Stoked Sparksurfer.", }, altarianite: { name: "Altarianite", - desc: "If held by an Altaria, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Altaria, this item allows it to Mega Evolve in battle.", }, ampharosite: { name: "Ampharosite", - desc: "If held by an Ampharos, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Ampharos, this item allows it to Mega Evolve in battle.", }, apicotberry: { name: "Apicot Berry", - desc: "Raises holder's Sp. Def by 1 stage when at 1/4 max HP or less. Single use.", + shortDesc: "Raises holder's Sp. Def by 1 stage when at 1/4 max HP or less. Single use.", }, armorfossil: { name: "Armor Fossil", - desc: "Can be revived into Shieldon.", + shortDesc: "Can be revived into Shieldon.", }, aspearberry: { name: "Aspear Berry", - desc: "Holder is cured if it is frozen. Single use.", + shortDesc: "Holder is cured if it is frozen. Single use.", }, assaultvest: { name: "Assault Vest", - desc: "Holder's Sp. Def is 1.5x, but it can only select damaging moves.", + shortDesc: "Holder's Sp. Def is 1.5x, but it can only select damaging moves.", }, audinite: { name: "Audinite", - desc: "If held by an Audino, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by an Audino, this item allows it to Mega Evolve in battle.", }, auspiciousarmor: { name: "Auspicious Armor", - desc: "Evolves Charcadet into Armarouge when used.", + shortDesc: "Evolves Charcadet into Armarouge when used.", }, babiriberry: { name: "Babiri Berry", - desc: "Halves damage taken from a supereffective Steel-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Steel-type attack. Single use.", }, banettite: { name: "Banettite", - desc: "If held by a Banette, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Banette, this item allows it to Mega Evolve in battle.", }, beastball: { name: "Beast Ball", - desc: "A special Poke Ball designed to catch Ultra Beasts.", + shortDesc: "A special Poke Ball designed to catch Ultra Beasts.", }, beedrillite: { name: "Beedrillite", - desc: "If held by a Beedrill, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Beedrill, this item allows it to Mega Evolve in battle.", }, belueberry: { name: "Belue Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, berryjuice: { name: "Berry Juice", - desc: "Restores 20 HP when at 1/2 max HP or less. Single use.", + shortDesc: "Restores 20 HP when at 1/2 max HP or less. Single use.", }, berrysweet: { name: "Berry Sweet", - desc: "Evolves Milcery into Alcremie when held and spun around.", + shortDesc: "Evolves Milcery into Alcremie when held and spun around.", + }, + bignugget: { + name: "Big Nugget", + shortDesc: "A big nugget of pure gold that gives off a lustrous gleam.", }, bigroot: { name: "Big Root", - desc: "Holder gains 1.3x HP from draining/Aqua Ring/Ingrain/Leech Seed/Strength Sap.", + shortDesc: "Holder gains 1.3x HP from draining/Aqua Ring/Ingrain/Leech Seed/Strength Sap.", gen6: { - desc: "Holder gains 1.3x HP from draining moves, Aqua Ring, Ingrain, and Leech Seed.", + shortDesc: "Holder gains 1.3x HP from draining moves, Aqua Ring, Ingrain, and Leech Seed.", }, }, bindingband: { name: "Binding Band", - desc: "Holder's partial-trapping moves deal 1/6 max HP per turn instead of 1/8.", + shortDesc: "Holder's partial-trapping moves deal 1/6 max HP per turn instead of 1/8.", }, blackbelt: { name: "Black Belt", - desc: "Holder's Fighting-type attacks have 1.2x power.", + shortDesc: "Holder's Fighting-type attacks have 1.2x power.", gen3: { - desc: "Holder's Fighting-type attacks have 1.1x power.", + shortDesc: "Holder's Fighting-type attacks have 1.1x power.", }, }, blacksludge: { name: "Black Sludge", - desc: "Each turn, if holder is a Poison type, restores 1/16 max HP; loses 1/8 if not.", + shortDesc: "Each turn, if holder is a Poison type, restores 1/16 max HP; loses 1/8 if not.", heal: " [POKEMON] restored a little HP using its Black Sludge!", }, blackglasses: { name: "Black Glasses", - desc: "Holder's Dark-type attacks have 1.2x power.", + shortDesc: "Holder's Dark-type attacks have 1.2x power.", gen3: { - desc: "Holder's Dark-type attacks have 1.1x power.", + shortDesc: "Holder's Dark-type attacks have 1.1x power.", }, }, blastoisinite: { name: "Blastoisinite", - desc: "If held by a Blastoise, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Blastoise, this item allows it to Mega Evolve in battle.", }, blazikenite: { name: "Blazikenite", - desc: "If held by a Blaziken, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Blaziken, this item allows it to Mega Evolve in battle.", }, blueorb: { name: "Blue Orb", - desc: "If held by a Kyogre, this item triggers its Primal Reversion in battle.", + shortDesc: "If held by a Kyogre, this item triggers its Primal Reversion in battle.", }, blukberry: { name: "Bluk Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, blunderpolicy: { name: "Blunder Policy", - desc: "If the holder misses due to accuracy, its Speed is raised by 2 stages. Single use.", + shortDesc: "If the holder misses due to accuracy, its Speed is raised by 2 stages. Single use.", }, boosterenergy: { name: "Booster Energy", - desc: "Activates the Protosynthesis or Quark Drive Abilities. Single use.", + shortDesc: "Activates the Protosynthesis or Quark Drive Abilities. Single use.", }, bottlecap: { name: "Bottle Cap", - desc: "Used for Hyper Training. One of a Pokemon's stats is calculated with an IV of 31.", + shortDesc: "Used for Hyper Training. One of a Pokemon's stats is calculated with an IV of 31.", }, brightpowder: { name: "Bright Powder", - desc: "The accuracy of attacks against the holder is 0.9x.", + shortDesc: "The accuracy of attacks against the holder is 0.9x.", gen2: { - desc: "An attack against the holder has its accuracy out of 255 lowered by 20.", + shortDesc: "An attack against the holder has its accuracy out of 255 lowered by 20.", }, }, buggem: { name: "Bug Gem", - desc: "Holder's first successful Bug-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Bug-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Bug-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Bug-type attack will have 1.5x power. Single use.", }, }, bugmemory: { name: "Bug Memory", - desc: "Holder's Multi-Attack is Bug type.", + shortDesc: "Holder's Multi-Attack is Bug type.", }, buginiumz: { name: "Buginium Z", - desc: "If holder has a Bug move, this item allows it to use a Bug Z-Move.", + shortDesc: "If holder has a Bug move, this item allows it to use a Bug Z-Move.", }, burndrive: { name: "Burn Drive", - desc: "Holder's Techno Blast is Fire type.", + shortDesc: "Holder's Techno Blast is Fire type.", }, cameruptite: { name: "Cameruptite", - desc: "If held by a Camerupt, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Camerupt, this item allows it to Mega Evolve in battle.", }, cellbattery: { name: "Cell Battery", - desc: "Raises holder's Attack by 1 if hit by an Electric-type attack. Single use.", + shortDesc: "Raises holder's Attack by 1 if hit by an Electric-type attack. Single use.", }, charcoal: { name: "Charcoal", - desc: "Holder's Fire-type attacks have 1.2x power.", + shortDesc: "Holder's Fire-type attacks have 1.2x power.", gen3: { - desc: "Holder's Fire-type attacks have 1.1x power.", + shortDesc: "Holder's Fire-type attacks have 1.1x power.", }, }, charizarditex: { name: "Charizardite X", - desc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", }, charizarditey: { name: "Charizardite Y", - desc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Charizard, this item allows it to Mega Evolve in battle.", }, chartiberry: { name: "Charti Berry", - desc: "Halves damage taken from a supereffective Rock-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Rock-type attack. Single use.", }, cheriberry: { name: "Cheri Berry", - desc: "Holder cures itself if it is paralyzed. Single use.", + shortDesc: "Holder cures itself if it is paralyzed. Single use.", }, cherishball: { name: "Cherish Ball", - desc: "A rare Poke Ball that has been crafted to commemorate an occasion.", + shortDesc: "A rare Poke Ball that has been crafted to commemorate an occasion.", }, chestoberry: { name: "Chesto Berry", - desc: "Holder wakes up if it is asleep. Single use.", + shortDesc: "Holder wakes up if it is asleep. Single use.", }, chilanberry: { name: "Chilan Berry", - desc: "Halves damage taken from a Normal-type attack. Single use.", + shortDesc: "Halves damage taken from a Normal-type attack. Single use.", }, chilldrive: { name: "Chill Drive", - desc: "Holder's Techno Blast is Ice type.", + shortDesc: "Holder's Techno Blast is Ice type.", }, chippedpot: { name: "Chipped Pot", - desc: "Evolves Sinistea-Antique into Polteageist-Antique when used.", + shortDesc: "Evolves Sinistea-Antique into Polteageist-Antique when used.", }, choiceband: { name: "Choice Band", - desc: "Holder's Attack is 1.5x, but it can only select the first move it executes.", + shortDesc: "Holder's Attack is 1.5x, but it can only select the first move it executes.", }, choicescarf: { name: "Choice Scarf", - desc: "Holder's Speed is 1.5x, but it can only select the first move it executes.", + shortDesc: "Holder's Speed is 1.5x, but it can only select the first move it executes.", }, choicespecs: { name: "Choice Specs", - desc: "Holder's Sp. Atk is 1.5x, but it can only select the first move it executes.", + shortDesc: "Holder's Sp. Atk is 1.5x, but it can only select the first move it executes.", }, chopleberry: { name: "Chople Berry", - desc: "Halves damage taken from a supereffective Fighting-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Fighting-type attack. Single use.", }, clawfossil: { name: "Claw Fossil", - desc: "Can be revived into Anorith.", + shortDesc: "Can be revived into Anorith.", }, clearamulet: { name: "Clear Amulet", - desc: "Prevents other Pokemon from lowering the holder's stat stages.", + shortDesc: "Prevents other Pokemon from lowering the holder's stat stages.", block: " The effects of [POKEMON]'s Clear Amulet prevent its stats from being lowered!", }, cloversweet: { name: "Clover Sweet", - desc: "Evolves Milcery into Alcremie when held and spun around.", + shortDesc: "Evolves Milcery into Alcremie when held and spun around.", }, cobaberry: { name: "Coba Berry", - desc: "Halves damage taken from a supereffective Flying-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Flying-type attack. Single use.", }, colburberry: { name: "Colbur Berry", - desc: "Halves damage taken from a supereffective Dark-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Dark-type attack. Single use.", + }, + cornerstonemask: { + name: "Cornerstone Mask", + shortDesc: "Ogerpon-Cornerstone: 1.2x power attacks; Terastallize to gain Embody Aspect.", }, cornnberry: { name: "Cornn Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, coverfossil: { name: "Cover Fossil", - desc: "Can be revived into Tirtouga.", + shortDesc: "Can be revived into Tirtouga.", }, covertcloak: { name: "Covert Cloak", - desc: "Holder is not affected by the secondary effect of another Pokemon's attack.", + shortDesc: "Holder is not affected by the secondary effect of another Pokemon's attack.", }, crackedpot: { name: "Cracked Pot", - desc: "Evolves Sinistea into Polteageist when used.", + shortDesc: "Evolves Sinistea into Polteageist when used.", }, custapberry: { name: "Custap Berry", - desc: "Holder moves first in its priority bracket when at 1/4 max HP or less. Single use.", + shortDesc: "Holder moves first in its priority bracket when at 1/4 max HP or less. Single use.", activate: " [POKEMON] can act faster than normal, thanks to its Custap Berry!", }, damprock: { name: "Damp Rock", - desc: "Holder's use of Rain Dance lasts 8 turns instead of 5.", + shortDesc: "Holder's use of Rain Dance lasts 8 turns instead of 5.", }, darkgem: { name: "Dark Gem", - desc: "Holder's first successful Dark-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Dark-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Dark-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Dark-type attack will have 1.5x power. Single use.", }, }, darkmemory: { name: "Dark Memory", - desc: "Holder's Multi-Attack is Dark type.", + shortDesc: "Holder's Multi-Attack is Dark type.", }, darkiniumz: { name: "Darkinium Z", - desc: "If holder has a Dark move, this item allows it to use a Dark Z-Move.", + shortDesc: "If holder has a Dark move, this item allows it to use a Dark Z-Move.", }, dawnstone: { name: "Dawn Stone", @@ -344,7 +352,7 @@ export const ItemsText: {[k: string]: ItemText} = { }, decidiumz: { name: "Decidium Z", - desc: "If held by a Decidueye with Spirit Shackle, it can use Sinister Arrow Raid.", + shortDesc: "If held by a Decidueye with Spirit Shackle, it can use Sinister Arrow Raid.", }, deepseascale: { name: "Deep Sea Scale", @@ -358,82 +366,82 @@ export const ItemsText: {[k: string]: ItemText} = { }, destinyknot: { name: "Destiny Knot", - desc: "If holder becomes infatuated, the other Pokemon also becomes infatuated.", + shortDesc: "If holder becomes infatuated, the other Pokemon also becomes infatuated.", }, diancite: { name: "Diancite", - desc: "If held by a Diancie, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Diancie, this item allows it to Mega Evolve in battle.", }, diveball: { name: "Dive Ball", - desc: "A Poke Ball that works especially well on Pokemon that live underwater.", + shortDesc: "A Poke Ball that works especially well on Pokemon that live underwater.", }, domefossil: { name: "Dome Fossil", - desc: "Can be revived into Kabuto.", + shortDesc: "Can be revived into Kabuto.", }, dousedrive: { name: "Douse Drive", - desc: "Holder's Techno Blast is Water type.", + shortDesc: "Holder's Techno Blast is Water type.", }, dracoplate: { name: "Draco Plate", - desc: "Holder's Dragon-type attacks have 1.2x power. Judgment is Dragon type.", + shortDesc: "Holder's Dragon-type attacks have 1.2x power. Judgment is Dragon type.", }, dragonfang: { name: "Dragon Fang", - desc: "Holder's Dragon-type attacks have 1.2x power.", + shortDesc: "Holder's Dragon-type attacks have 1.2x power.", gen3: { - desc: "Holder's Dragon-type attacks have 1.1x power.", + shortDesc: "Holder's Dragon-type attacks have 1.1x power.", }, gen2: { - desc: "No competitive use.", + shortDesc: "No competitive use.", }, }, dragongem: { name: "Dragon Gem", - desc: "Holder's first successful Dragon-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Dragon-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Dragon-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Dragon-type attack will have 1.5x power. Single use.", }, }, dragonmemory: { name: "Dragon Memory", - desc: "Holder's Multi-Attack is Dragon type.", + shortDesc: "Holder's Multi-Attack is Dragon type.", }, dragonscale: { name: "Dragon Scale", - desc: "Evolves Seadra into Kingdra when traded.", + shortDesc: "Evolves Seadra into Kingdra when traded.", gen2: { - desc: "Holder's Dragon-type attacks have 1.1x power. Evolves Seadra (trade).", + shortDesc: "Holder's Dragon-type attacks have 1.1x power. Evolves Seadra (trade).", }, }, dragoniumz: { name: "Dragonium Z", - desc: "If holder has a Dragon move, this item allows it to use a Dragon Z-Move.", + shortDesc: "If holder has a Dragon move, this item allows it to use a Dragon Z-Move.", }, dreadplate: { name: "Dread Plate", - desc: "Holder's Dark-type attacks have 1.2x power. Judgment is Dark type.", + shortDesc: "Holder's Dark-type attacks have 1.2x power. Judgment is Dark type.", }, dreamball: { name: "Dream Ball", - desc: "A Poke Ball that makes it easier to catch wild Pokémon while they're asleep.", + shortDesc: "A Poke Ball that makes it easier to catch wild Pokémon while they're asleep.", gen7: { - desc: "A special Poke Ball that appears out of nowhere in a bag at the Entree Forest.", + shortDesc: "A special Poke Ball that appears out of nowhere in a bag at the Entree Forest.", }, }, dubiousdisc: { name: "Dubious Disc", - desc: "Evolves Porygon2 into Porygon-Z when traded.", + shortDesc: "Evolves Porygon2 into Porygon-Z when traded.", }, durinberry: { name: "Durin Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, duskball: { name: "Dusk Ball", - desc: "A Poke Ball that makes it easier to catch wild Pokemon at night or in caves.", + shortDesc: "A Poke Ball that makes it easier to catch wild Pokemon at night or in caves.", }, duskstone: { name: "Dusk Stone", @@ -442,113 +450,117 @@ export const ItemsText: {[k: string]: ItemText} = { }, earthplate: { name: "Earth Plate", - desc: "Holder's Ground-type attacks have 1.2x power. Judgment is Ground type.", + shortDesc: "Holder's Ground-type attacks have 1.2x power. Judgment is Ground type.", }, eeviumz: { name: "Eevium Z", - desc: "If held by an Eevee with Last Resort, it can use Extreme Evoboost.", + shortDesc: "If held by an Eevee with Last Resort, it can use Extreme Evoboost.", }, ejectbutton: { name: "Eject Button", - desc: "If holder survives a hit, it immediately switches out to a chosen ally. Single use.", + shortDesc: "If holder survives a hit, it immediately switches out to a chosen ally. Single use.", end: " [POKEMON] is switched out with the Eject Button!", }, ejectpack: { name: "Eject Pack", - desc: "If the holder's stat stages are lowered, it switches to a chosen ally. Single use.", + shortDesc: "If the holder's stat stages are lowered, it switches to a chosen ally. Single use.", end: " [POKEMON] is switched out by the Eject Pack!", }, electirizer: { name: "Electirizer", - desc: "Evolves Electabuzz into Electivire when traded.", + shortDesc: "Evolves Electabuzz into Electivire when traded.", }, electricgem: { name: "Electric Gem", - desc: "Holder's first successful Electric-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Electric-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Electric-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Electric-type attack will have 1.5x power. Single use.", }, }, electricmemory: { name: "Electric Memory", - desc: "Holder's Multi-Attack is Electric type.", + shortDesc: "Holder's Multi-Attack is Electric type.", }, electricseed: { name: "Electric Seed", - desc: "If the terrain is Electric Terrain, raises holder's Defense by 1 stage. Single use.", + shortDesc: "If the terrain is Electric Terrain, raises holder's Defense by 1 stage. Single use.", }, electriumz: { name: "Electrium Z", - desc: "If holder has an Electric move, this item allows it to use an Electric Z-Move.", + shortDesc: "If holder has an Electric move, this item allows it to use an Electric Z-Move.", }, enigmaberry: { name: "Enigma Berry", - desc: "Restores 1/4 max HP after holder is hit by a supereffective move. Single use.", + shortDesc: "Restores 1/4 max HP after holder is hit by a supereffective move. Single use.", gen3: { - desc: "No competitive use.", + shortDesc: "No competitive use.", }, }, eviolite: { name: "Eviolite", - desc: "If holder's species can evolve, its Defense and Sp. Def are 1.5x.", + shortDesc: "If holder's species can evolve, its Defense and Sp. Def are 1.5x.", }, expertbelt: { name: "Expert Belt", - desc: "Holder's attacks that are super effective against the target do 1.2x damage.", + shortDesc: "Holder's attacks that are super effective against the target do 1.2x damage.", }, fairiumz: { name: "Fairium Z", - desc: "If holder has a Fairy move, this item allows it to use a Fairy Z-Move.", + shortDesc: "If holder has a Fairy move, this item allows it to use a Fairy Z-Move.", + }, + fairyfeather: { + name: "Fairy Feather", + shortDesc: "Holder's Fairy-type attacks have 1.2x power.", }, fairygem: { name: "Fairy Gem", - desc: "Holder's first successful Fairy-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Fairy-type attack will have 1.3x power. Single use.", }, fairymemory: { name: "Fairy Memory", - desc: "Holder's Multi-Attack is Fairy type.", + shortDesc: "Holder's Multi-Attack is Fairy type.", }, fastball: { name: "Fast Ball", - desc: "A Poke Ball that makes it easier to catch Pokemon which are quick to run away.", + shortDesc: "A Poke Ball that makes it easier to catch Pokemon which are quick to run away.", }, fightinggem: { name: "Fighting Gem", - desc: "Holder's first successful Fighting-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Fighting-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Fighting-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Fighting-type attack will have 1.5x power. Single use.", }, }, fightingmemory: { name: "Fighting Memory", - desc: "Holder's Multi-Attack is Fighting type.", + shortDesc: "Holder's Multi-Attack is Fighting type.", }, fightiniumz: { name: "Fightinium Z", - desc: "If holder has a Fighting move, this item allows it to use a Fighting Z-Move.", + shortDesc: "If holder has a Fighting move, this item allows it to use a Fighting Z-Move.", }, figyberry: { name: "Figy Berry", - desc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -Atk Nature. Single use.", + shortDesc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -Atk Nature. Single use.", gen7: { - desc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Atk Nature. Single use.", + shortDesc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Atk Nature. Single use.", }, gen6: { - desc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Atk Nature. Single use.", + shortDesc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Atk Nature. Single use.", }, }, firegem: { name: "Fire Gem", - desc: "Holder's first successful Fire-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Fire-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Fire-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Fire-type attack will have 1.5x power. Single use.", }, }, firememory: { name: "Fire Memory", - desc: "Holder's Multi-Attack is Fire type.", + shortDesc: "Holder's Multi-Attack is Fire type.", }, firestone: { name: "Fire Stone", @@ -557,260 +569,264 @@ export const ItemsText: {[k: string]: ItemText} = { }, firiumz: { name: "Firium Z", - desc: "If holder has a Fire move, this item allows it to use a Fire Z-Move.", + shortDesc: "If holder has a Fire move, this item allows it to use a Fire Z-Move.", }, fistplate: { name: "Fist Plate", - desc: "Holder's Fighting-type attacks have 1.2x power. Judgment is Fighting type.", + shortDesc: "Holder's Fighting-type attacks have 1.2x power. Judgment is Fighting type.", }, flameorb: { name: "Flame Orb", - desc: "At the end of every turn, this item attempts to burn the holder.", + shortDesc: "At the end of every turn, this item attempts to burn the holder.", }, flameplate: { name: "Flame Plate", - desc: "Holder's Fire-type attacks have 1.2x power. Judgment is Fire type.", + shortDesc: "Holder's Fire-type attacks have 1.2x power. Judgment is Fire type.", }, floatstone: { name: "Float Stone", - desc: "Holder's weight is halved.", + shortDesc: "Holder's weight is halved.", }, flowersweet: { name: "Flower Sweet", - desc: "Evolves Milcery into Alcremie when held and spun around.", + shortDesc: "Evolves Milcery into Alcremie when held and spun around.", }, flyinggem: { name: "Flying Gem", - desc: "Holder's first successful Flying-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Flying-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Flying-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Flying-type attack will have 1.5x power. Single use.", }, }, flyingmemory: { name: "Flying Memory", - desc: "Holder's Multi-Attack is Flying type.", + shortDesc: "Holder's Multi-Attack is Flying type.", }, flyiniumz: { name: "Flyinium Z", - desc: "If holder has a Flying move, this item allows it to use a Flying Z-Move.", + shortDesc: "If holder has a Flying move, this item allows it to use a Flying Z-Move.", }, focusband: { name: "Focus Band", - desc: "Holder has a 10% chance to survive an attack that would KO it with 1 HP.", + shortDesc: "Holder has a 10% chance to survive an attack that would KO it with 1 HP.", gen2: { - desc: "Holder has a ~11.7% chance to survive an attack that would KO it with 1 HP.", + shortDesc: "Holder has a ~11.7% chance to survive an attack that would KO it with 1 HP.", }, activate: " [POKEMON] hung on using its Focus Band!", }, focussash: { name: "Focus Sash", - desc: "If holder's HP is full, will survive an attack that would KO it with 1 HP. Single use.", + shortDesc: "If holder's HP is full, will survive an attack that would KO it with 1 HP. Single use.", gen4: { - desc: "If holder's HP is full, survives all hits of one attack with at least 1 HP. Single use.", + shortDesc: "If holder's HP is full, survives all hits of one attack with at least 1 HP. Single use.", }, end: " [POKEMON] hung on using its Focus Sash!", }, fossilizedbird: { name: "Fossilized Bird", - desc: "Can revive into Dracozolt with Fossilized Drake or Arctozolt with Fossilized Dino.", + shortDesc: "Can revive into Dracozolt with Fossilized Drake or Arctozolt with Fossilized Dino.", }, fossilizeddino: { name: "Fossilized Dino", - desc: "Can revive into Arctovish with Fossilized Fish or Arctozolt with Fossilized Bird.", + shortDesc: "Can revive into Arctovish with Fossilized Fish or Arctozolt with Fossilized Bird.", }, fossilizeddrake: { name: "Fossilized Drake", - desc: "Can revive into Dracozolt with Fossilized Bird or Dracovish with Fossilized Fish.", + shortDesc: "Can revive into Dracozolt with Fossilized Bird or Dracovish with Fossilized Fish.", }, fossilizedfish: { name: "Fossilized Fish", - desc: "Can revive into Dracovish with Fossilized Drake or Arctovish with Fossilized Dino.", + shortDesc: "Can revive into Dracovish with Fossilized Drake or Arctovish with Fossilized Dino.", }, friendball: { name: "Friend Ball", - desc: "A Poke Ball that makes caught Pokemon more friendly.", + shortDesc: "A Poke Ball that makes caught Pokemon more friendly.", }, fullincense: { name: "Full Incense", - desc: "Holder moves last in its priority bracket.", + shortDesc: "Holder moves last in its priority bracket.", }, galaricacuff: { name: "Galarica Cuff", - desc: "Evolves Galarian Slowpoke into Galarian Slowbro when used.", + shortDesc: "Evolves Galarian Slowpoke into Galarian Slowbro when used.", }, galaricawreath: { name: "Galarica Wreath", - desc: "Evolves Galarian Slowpoke into Galarian Slowking when used.", + shortDesc: "Evolves Galarian Slowpoke into Galarian Slowking when used.", }, galladite: { name: "Galladite", - desc: "If held by a Gallade, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Gallade, this item allows it to Mega Evolve in battle.", }, ganlonberry: { name: "Ganlon Berry", - desc: "Raises holder's Defense by 1 stage when at 1/4 max HP or less. Single use.", + shortDesc: "Raises holder's Defense by 1 stage when at 1/4 max HP or less. Single use.", }, garchompite: { name: "Garchompite", - desc: "If held by a Garchomp, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Garchomp, this item allows it to Mega Evolve in battle.", }, gardevoirite: { name: "Gardevoirite", - desc: "If held by a Gardevoir, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Gardevoir, this item allows it to Mega Evolve in battle.", }, gengarite: { name: "Gengarite", - desc: "If held by a Gengar, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Gengar, this item allows it to Mega Evolve in battle.", }, ghostgem: { name: "Ghost Gem", - desc: "Holder's first successful Ghost-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Ghost-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Ghost-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Ghost-type attack will have 1.5x power. Single use.", }, }, ghostmemory: { name: "Ghost Memory", - desc: "Holder's Multi-Attack is Ghost type.", + shortDesc: "Holder's Multi-Attack is Ghost type.", }, ghostiumz: { name: "Ghostium Z", - desc: "If holder has a Ghost move, this item allows it to use a Ghost Z-Move.", + shortDesc: "If holder has a Ghost move, this item allows it to use a Ghost Z-Move.", }, glalitite: { name: "Glalitite", - desc: "If held by a Glalie, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Glalie, this item allows it to Mega Evolve in battle.", }, goldbottlecap: { name: "Gold Bottle Cap", - desc: "Used for Hyper Training. All of a Pokemon's stats are calculated with an IV of 31.", + shortDesc: "Used for Hyper Training. All of a Pokemon's stats are calculated with an IV of 31.", }, grassgem: { name: "Grass Gem", - desc: "Holder's first successful Grass-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Grass-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Grass-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Grass-type attack will have 1.5x power. Single use.", }, }, grassmemory: { name: "Grass Memory", - desc: "Holder's Multi-Attack is Grass type.", + shortDesc: "Holder's Multi-Attack is Grass type.", }, grassiumz: { name: "Grassium Z", - desc: "If holder has a Grass move, this item allows it to use a Grass Z-Move.", + shortDesc: "If holder has a Grass move, this item allows it to use a Grass Z-Move.", }, grassyseed: { name: "Grassy Seed", - desc: "If the terrain is Grassy Terrain, raises holder's Defense by 1 stage. Single use.", + shortDesc: "If the terrain is Grassy Terrain, raises holder's Defense by 1 stage. Single use.", }, greatball: { name: "Great Ball", - desc: "A high-performance Ball that provides a higher catch rate than a Poke Ball.", + shortDesc: "A high-performance Ball that provides a higher catch rate than a Poke Ball.", }, grepaberry: { name: "Grepa Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, gripclaw: { name: "Grip Claw", - desc: "Holder's partial-trapping moves always last 7 turns.", + shortDesc: "Holder's partial-trapping moves always last 7 turns.", }, griseouscore: { name: "Griseous Core", - desc: "If held by a Giratina, its Ghost- and Dragon-type attacks have 1.2x power.", + shortDesc: "If held by a Giratina, its Ghost- and Dragon-type attacks have 1.2x power.", }, griseousorb: { name: "Griseous Orb", - desc: "If held by a Giratina, its Ghost- and Dragon-type attacks have 1.2x power.", + shortDesc: "If held by a Giratina, its Ghost- and Dragon-type attacks have 1.2x power.", gen4: { - desc: "Can only be held by Giratina. Its Ghost- & Dragon-type attacks have 1.2x power.", + shortDesc: "Can only be held by Giratina. Its Ghost- & Dragon-type attacks have 1.2x power.", }, }, groundgem: { name: "Ground Gem", - desc: "Holder's first successful Ground-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Ground-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Ground-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Ground-type attack will have 1.5x power. Single use.", }, }, groundmemory: { name: "Ground Memory", - desc: "Holder's Multi-Attack is Ground type.", + shortDesc: "Holder's Multi-Attack is Ground type.", }, groundiumz: { name: "Groundium Z", - desc: "If holder has a Ground move, this item allows it to use a Ground Z-Move.", + shortDesc: "If holder has a Ground move, this item allows it to use a Ground Z-Move.", }, gyaradosite: { name: "Gyaradosite", - desc: "If held by a Gyarados, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Gyarados, this item allows it to Mega Evolve in battle.", }, habanberry: { name: "Haban Berry", - desc: "Halves damage taken from a supereffective Dragon-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Dragon-type attack. Single use.", }, hardstone: { name: "Hard Stone", - desc: "Holder's Rock-type attacks have 1.2x power.", + shortDesc: "Holder's Rock-type attacks have 1.2x power.", gen3: { - desc: "Holder's Rock-type attacks have 1.1x power.", + shortDesc: "Holder's Rock-type attacks have 1.1x power.", }, }, healball: { name: "Heal Ball", - desc: "A remedial Poke Ball that restores the caught Pokemon's HP and status problem.", + shortDesc: "A remedial Poke Ball that restores the caught Pokemon's HP and status problem.", + }, + hearthflamemask: { + name: "Hearthflame Mask", + shortDesc: "Ogerpon-Hearthflame: 1.2x power attacks; Terastallize to gain Embody Aspect.", }, heatrock: { name: "Heat Rock", - desc: "Holder's use of Sunny Day lasts 8 turns instead of 5.", + shortDesc: "Holder's use of Sunny Day lasts 8 turns instead of 5.", }, heavyball: { name: "Heavy Ball", - desc: "A Poke Ball for catching very heavy Pokemon.", + shortDesc: "A Poke Ball for catching very heavy Pokemon.", }, heavydutyboots: { name: "Heavy-Duty Boots", - desc: "When switching in, the holder is unaffected by hazards on its side of the field.", + shortDesc: "When switching in, the holder is unaffected by hazards on its side of the field.", }, helixfossil: { name: "Helix Fossil", - desc: "Can be revived into Omanyte.", + shortDesc: "Can be revived into Omanyte.", }, heracronite: { name: "Heracronite", - desc: "If held by a Heracross, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Heracross, this item allows it to Mega Evolve in battle.", }, hondewberry: { name: "Hondew Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, houndoominite: { name: "Houndoominite", - desc: "If held by a Houndoom, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Houndoom, this item allows it to Mega Evolve in battle.", }, iapapaberry: { name: "Iapapa Berry", - desc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -Def Nature. Single use.", + shortDesc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -Def Nature. Single use.", gen7: { - desc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Def Nature. Single use.", + shortDesc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Def Nature. Single use.", }, gen6: { - desc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Def Nature. Single use.", + shortDesc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Def Nature. Single use.", }, }, icegem: { name: "Ice Gem", - desc: "Holder's first successful Ice-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Ice-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Ice-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Ice-type attack will have 1.5x power. Single use.", }, }, icememory: { name: "Ice Memory", - desc: "Holder's Multi-Attack is Ice type.", + shortDesc: "Holder's Multi-Attack is Ice type.", }, icestone: { name: "Ice Stone", @@ -822,62 +838,65 @@ export const ItemsText: {[k: string]: ItemText} = { }, icicleplate: { name: "Icicle Plate", - desc: "Holder's Ice-type attacks have 1.2x power. Judgment is Ice type.", + shortDesc: "Holder's Ice-type attacks have 1.2x power. Judgment is Ice type.", }, iciumz: { name: "Icium Z", - desc: "If holder has an Ice move, this item allows it to use an Ice Z-Move.", + shortDesc: "If holder has an Ice move, this item allows it to use an Ice Z-Move.", }, icyrock: { name: "Icy Rock", - desc: "Holder's use of Hail lasts 8 turns instead of 5.", + shortDesc: "Holder's use of Snowscape lasts 8 turns instead of 5.", + gen8: { + shortDesc: "Holder's use of Hail lasts 8 turns instead of 5.", + }, }, inciniumz: { name: "Incinium Z", - desc: "If held by an Incineroar with Darkest Lariat, it can use Malicious Moonsault.", + shortDesc: "If held by an Incineroar with Darkest Lariat, it can use Malicious Moonsault.", }, insectplate: { name: "Insect Plate", - desc: "Holder's Bug-type attacks have 1.2x power. Judgment is Bug type.", + shortDesc: "Holder's Bug-type attacks have 1.2x power. Judgment is Bug type.", }, ironball: { name: "Iron Ball", - desc: "Holder is grounded, Speed halved. If Flying type, takes neutral Ground damage.", + shortDesc: "Holder is grounded, Speed halved. If Flying type, takes neutral Ground damage.", gen4: { - desc: "Holder's Speed is halved and it becomes grounded.", + shortDesc: "Holder's Speed is halved and it becomes grounded.", }, }, ironplate: { name: "Iron Plate", - desc: "Holder's Steel-type attacks have 1.2x power. Judgment is Steel type.", + shortDesc: "Holder's Steel-type attacks have 1.2x power. Judgment is Steel type.", }, jabocaberry: { name: "Jaboca Berry", - desc: "If holder is hit by a physical move, attacker loses 1/8 of its max HP. Single use.", + shortDesc: "If holder is hit by a physical move, attacker loses 1/8 of its max HP. Single use.", }, jawfossil: { name: "Jaw Fossil", - desc: "Can be revived into Tyrunt.", + shortDesc: "Can be revived into Tyrunt.", }, kasibberry: { name: "Kasib Berry", - desc: "Halves damage taken from a supereffective Ghost-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Ghost-type attack. Single use.", }, kebiaberry: { name: "Kebia Berry", - desc: "Halves damage taken from a supereffective Poison-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Poison-type attack. Single use.", }, keeberry: { name: "Kee Berry", - desc: "Raises holder's Defense by 1 stage after it is hit by a physical attack. Single use.", + shortDesc: "Raises holder's Defense by 1 stage after it is hit by a physical attack. Single use.", }, kelpsyberry: { name: "Kelpsy Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, kangaskhanite: { name: "Kangaskhanite", - desc: "If held by a Kangaskhan, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Kangaskhan, this item allows it to Mega Evolve in battle.", }, kingsrock: { name: "King's Rock", @@ -886,29 +905,29 @@ export const ItemsText: {[k: string]: ItemText} = { }, kommoniumz: { name: "Kommonium Z", - desc: "If held by a Kommo-o with Clanging Scales, it can use Clangorous Soulblaze.", + shortDesc: "If held by a Kommo-o with Clanging Scales, it can use Clangorous Soulblaze.", }, laggingtail: { name: "Lagging Tail", - desc: "Holder moves last in its priority bracket.", + shortDesc: "Holder moves last in its priority bracket.", }, lansatberry: { name: "Lansat Berry", - desc: "Holder gains the Focus Energy effect when at 1/4 max HP or less. Single use.", + shortDesc: "Holder gains the Focus Energy effect when at 1/4 max HP or less. Single use.", }, latiasite: { name: "Latiasite", - desc: "If held by a Latias, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Latias, this item allows it to Mega Evolve in battle.", }, latiosite: { name: "Latiosite", - desc: "If held by a Latios, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Latios, this item allows it to Mega Evolve in battle.", }, laxincense: { name: "Lax Incense", - desc: "The accuracy of attacks against the holder is 0.9x.", + shortDesc: "The accuracy of attacks against the holder is 0.9x.", gen3: { - desc: "The accuracy of attacks against the holder is 0.95x.", + shortDesc: "The accuracy of attacks against the holder is 0.95x.", }, }, leafstone: { @@ -921,185 +940,194 @@ export const ItemsText: {[k: string]: ItemText} = { }, leek: { name: "Leek", - desc: "If held by a Farfetch’d or Sirfetch’d, its critical hit ratio is raised by 2 stages.", + shortDesc: "If held by a Farfetch’d or Sirfetch’d, its critical hit ratio is raised by 2 stages.", }, leftovers: { name: "Leftovers", - desc: "At the end of every turn, holder restores 1/16 of its max HP.", + shortDesc: "At the end of every turn, holder restores 1/16 of its max HP.", heal: " [POKEMON] restored a little HP using its Leftovers!", }, leppaberry: { name: "Leppa Berry", - desc: "Restores 10 PP to the first of the holder's moves to reach 0 PP. Single use.", + shortDesc: "Restores 10 PP to the first of the holder's moves to reach 0 PP. Single use.", activate: " [POKEMON] restored PP to its move [MOVE] using its Leppa Berry!", }, levelball: { name: "Level Ball", - desc: "A Poke Ball for catching Pokemon that are a lower level than your own.", + shortDesc: "A Poke Ball for catching Pokemon that are a lower level than your own.", }, liechiberry: { name: "Liechi Berry", - desc: "Raises holder's Attack by 1 stage when at 1/4 max HP or less. Single use.", + shortDesc: "Raises holder's Attack by 1 stage when at 1/4 max HP or less. Single use.", }, lifeorb: { name: "Life Orb", - desc: "Holder's attacks do 1.3x damage, and it loses 1/10 its max HP after the attack.", + shortDesc: "Holder's attacks do 1.3x damage, and it loses 1/10 its max HP after the attack.", damage: " [POKEMON] lost some of its HP!", }, lightball: { name: "Light Ball", - desc: "If held by a Pikachu, its Attack and Sp. Atk are doubled.", + shortDesc: "If held by a Pikachu, its Attack and Sp. Atk are doubled.", gen4: { - desc: "If held by a Pikachu, its attacks have their power doubled.", + shortDesc: "If held by a Pikachu, its attacks have their power doubled.", }, gen3: { - desc: "If held by a Pikachu, its Special Attack is doubled.", + shortDesc: "If held by a Pikachu, its Special Attack is doubled.", }, }, lightclay: { name: "Light Clay", - desc: "Holder's use of Aurora Veil, Light Screen, or Reflect lasts 8 turns instead of 5.", + shortDesc: "Holder's use of Aurora Veil, Light Screen, or Reflect lasts 8 turns instead of 5.", gen6: { - desc: "Holder's use of Light Screen or Reflect lasts 8 turns instead of 5.", + shortDesc: "Holder's use of Light Screen or Reflect lasts 8 turns instead of 5.", }, }, loadeddice: { name: "Loaded Dice", - desc: "Holder's moves that hit 2-5 times hit 4-5 times; Population Bomb hits 4-10 times.", + desc: "The holder's moves that normally hit 2 to 5 times instead hit 4 or 5 times. If the first hit is successful, the holder's use of Triple Kick or Triple Axel hits 3 times, and Population Bomb hits 4 to 10 times, at random.", + shortDesc: "Holder's moves that hit 2-5 times hit 4-5 times; Population Bomb hits 4-10 times.", }, lopunnite: { name: "Lopunnite", - desc: "If held by a Lopunny, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Lopunny, this item allows it to Mega Evolve in battle.", }, loveball: { name: "Love Ball", - desc: "Poke Ball for catching Pokemon that are the opposite gender of your Pokemon.", + shortDesc: "Poke Ball for catching Pokemon that are the opposite gender of your Pokemon.", }, lovesweet: { name: "Love Sweet", - desc: "Evolves Milcery into Alcremie when held and spun around.", + shortDesc: "Evolves Milcery into Alcremie when held and spun around.", }, lucarionite: { name: "Lucarionite", - desc: "If held by a Lucario, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Lucario, this item allows it to Mega Evolve in battle.", }, luckypunch: { name: "Lucky Punch", - desc: "If held by a Chansey, its critical hit ratio is raised by 2 stages.", + shortDesc: "If held by a Chansey, its critical hit ratio is raised by 2 stages.", gen2: { - desc: "If held by a Chansey, its critical hit ratio is always at stage 2. (25% crit rate)", + shortDesc: "If held by a Chansey, its critical hit ratio is always at stage 2. (25% crit rate)", }, }, lumberry: { name: "Lum Berry", - desc: "Holder cures itself if it has a non-volatile status or is confused. Single use.", + shortDesc: "Holder cures itself if it has a non-volatile status or is confused. Single use.", }, luminousmoss: { name: "Luminous Moss", - desc: "Raises holder's Sp. Def by 1 stage if hit by a Water-type attack. Single use.", + shortDesc: "Raises holder's Sp. Def by 1 stage if hit by a Water-type attack. Single use.", }, lunaliumz: { name: "Lunalium Z", - desc: "Lunala or Dawn Wings Necrozma with Moongeist Beam can use a special Z-Move.", + shortDesc: "Lunala or Dawn Wings Necrozma with Moongeist Beam can use a special Z-Move.", }, lureball: { name: "Lure Ball", - desc: "A Poke Ball for catching Pokemon hooked by a Rod when fishing.", + shortDesc: "A Poke Ball for catching Pokemon hooked by a Rod when fishing.", }, lustrousglobe: { name: "Lustrous Globe", - desc: "If held by a Palkia, its Water- and Dragon-type attacks have 1.2x power.", + shortDesc: "If held by a Palkia, its Water- and Dragon-type attacks have 1.2x power.", }, lustrousorb: { name: "Lustrous Orb", - desc: "If held by a Palkia, its Water- and Dragon-type attacks have 1.2x power.", + shortDesc: "If held by a Palkia, its Water- and Dragon-type attacks have 1.2x power.", }, luxuryball: { name: "Luxury Ball", - desc: "A comfortable Poke Ball that makes a caught wild Pokemon quickly grow friendly.", + shortDesc: "A comfortable Poke Ball that makes a caught wild Pokemon quickly grow friendly.", }, lycaniumz: { name: "Lycanium Z", - desc: "If held by a Lycanroc forme with Stone Edge, it can use Splintered Stormshards.", + shortDesc: "If held by a Lycanroc forme with Stone Edge, it can use Splintered Stormshards.", }, machobrace: { name: "Macho Brace", - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + shortDesc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, magmarizer: { name: "Magmarizer", - desc: "Evolves Magmar into Magmortar when traded.", + shortDesc: "Evolves Magmar into Magmortar when traded.", }, magnet: { name: "Magnet", - desc: "Holder's Electric-type attacks have 1.2x power.", + shortDesc: "Holder's Electric-type attacks have 1.2x power.", gen3: { - desc: "Holder's Electric-type attacks have 1.1x power.", + shortDesc: "Holder's Electric-type attacks have 1.1x power.", }, }, magoberry: { name: "Mago Berry", - desc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -Spe Nature. Single use.", + shortDesc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -Spe Nature. Single use.", gen7: { - desc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Spe Nature. Single use.", + shortDesc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -Spe Nature. Single use.", }, gen6: { - desc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Spe Nature. Single use.", + shortDesc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -Spe Nature. Single use.", }, }, magostberry: { name: "Magost Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, mail: { name: "Mail", - desc: "Cannot be given to or taken from a Pokemon, except by Covet/Knock Off/Thief.", + shortDesc: "Cannot be given to or taken from a Pokemon, except by Covet/Knock Off/Thief.", }, maliciousarmor: { name: "Malicious Armor", - desc: "Evolves Charcadet into Ceruledge when used.", + shortDesc: "Evolves Charcadet into Ceruledge when used.", }, manectite: { name: "Manectite", - desc: "If held by a Manectric, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Manectric, this item allows it to Mega Evolve in battle.", }, marangaberry: { name: "Maranga Berry", - desc: "Raises holder's Sp. Def by 1 stage after it is hit by a special attack. Single use.", + shortDesc: "Raises holder's Sp. Def by 1 stage after it is hit by a special attack. Single use.", }, marshadiumz: { name: "Marshadium Z", - desc: "If held by Marshadow with Spectral Thief, it can use Soul-Stealing 7-Star Strike.", + shortDesc: "If held by Marshadow with Spectral Thief, it can use Soul-Stealing 7-Star Strike.", }, masterball: { name: "Master Ball", - desc: "The best Ball with the ultimate performance. It will catch any wild Pokemon.", + shortDesc: "The best Ball with the ultimate performance. It will catch any wild Pokemon.", + }, + masterpieceteacup: { + name: "Masterpiece Teacup", + shortDesc: "Evolves Poltchageist-Artisan into Sinistcha-Masterpiece when used.", }, mawilite: { name: "Mawilite", - desc: "If held by a Mawile, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Mawile, this item allows it to Mega Evolve in battle.", }, meadowplate: { name: "Meadow Plate", - desc: "Holder's Grass-type attacks have 1.2x power. Judgment is Grass type.", + shortDesc: "Holder's Grass-type attacks have 1.2x power. Judgment is Grass type.", }, medichamite: { name: "Medichamite", - desc: "If held by a Medicham, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Medicham, this item allows it to Mega Evolve in battle.", }, mentalherb: { name: "Mental Herb", - desc: "Cures holder of Attract, Disable, Encore, Heal Block, Taunt, Torment. Single use.", + shortDesc: "Cures holder of Attract, Disable, Encore, Heal Block, Taunt, Torment. Single use.", gen4: { - desc: "Holder is cured if it is infatuated. Single use.", + shortDesc: "Holder is cured if it is infatuated. Single use.", }, }, metagrossite: { name: "Metagrossite", - desc: "If held by a Metagross, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Metagross, this item allows it to Mega Evolve in battle.", + }, + metalalloy: { + name: "Metal Alloy", + shortDesc: "Evolves Duraludon into Archaludon when used.", }, metalcoat: { name: "Metal Coat", @@ -1112,62 +1140,62 @@ export const ItemsText: {[k: string]: ItemText} = { }, metalpowder: { name: "Metal Powder", - desc: "If held by a Ditto that hasn't Transformed, its Defense is doubled.", + shortDesc: "If held by a Ditto that hasn't Transformed, its Defense is doubled.", gen2: { - desc: "If held by a Ditto, its Defense and Sp. Def are 1.5x, even while Transformed.", + shortDesc: "If held by a Ditto, its Defense and Sp. Def are 1.5x, even while Transformed.", }, }, metronome: { name: "Metronome", - desc: "Damage of moves used on consecutive turns is increased. Max 2x after 5 turns.", + shortDesc: "Damage of moves used on consecutive turns is increased. Max 2x after 5 turns.", gen4: { - desc: "Damage of moves used on consecutive turns is increased. Max 2x after 10 turns.", + shortDesc: "Damage of moves used on consecutive turns is increased. Max 2x after 10 turns.", }, }, mewniumz: { name: "Mewnium Z", - desc: "If held by a Mew with Psychic, it can use Genesis Supernova.", + shortDesc: "If held by a Mew with Psychic, it can use Genesis Supernova.", }, mewtwonitex: { name: "Mewtwonite X", - desc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", }, mewtwonitey: { name: "Mewtwonite Y", - desc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Mewtwo, this item allows it to Mega Evolve in battle.", }, micleberry: { name: "Micle Berry", - desc: "Holder's next move has 1.2x accuracy when at 1/4 max HP or less. Single use.", + shortDesc: "Holder's next move has 1.2x accuracy when at 1/4 max HP or less. Single use.", }, mimikiumz: { name: "Mimikium Z", - desc: "If held by a Mimikyu with Play Rough, it can use Let's Snuggle Forever.", + shortDesc: "If held by a Mimikyu with Play Rough, it can use Let's Snuggle Forever.", }, mindplate: { name: "Mind Plate", - desc: "Holder's Psychic-type attacks have 1.2x power. Judgment is Psychic type.", + shortDesc: "Holder's Psychic-type attacks have 1.2x power. Judgment is Psychic type.", }, miracleseed: { name: "Miracle Seed", - desc: "Holder's Grass-type attacks have 1.2x power.", + shortDesc: "Holder's Grass-type attacks have 1.2x power.", gen3: { - desc: "Holder's Grass-type attacks have 1.1x power.", + shortDesc: "Holder's Grass-type attacks have 1.1x power.", }, }, mirrorherb: { name: "Mirror Herb", - desc: "When an opposing Pokemon raises a stat stage, the holder copies it. Single use.", + shortDesc: "When an opposing Pokemon raises a stat stage, the holder copies it. Single use.", activate: " [POKEMON] used its Mirror Herb to mirror its opponent's stat changes!", }, mistyseed: { name: "Misty Seed", - desc: "If the terrain is Misty Terrain, raises holder's Sp. Def by 1 stage. Single use.", + shortDesc: "If the terrain is Misty Terrain, raises holder's Sp. Def by 1 stage. Single use.", }, moonball: { name: "Moon Ball", - desc: "A Poke Ball for catching Pokemon that evolve using the Moon Stone.", + shortDesc: "A Poke Ball for catching Pokemon that evolve using the Moon Stone.", }, moonstone: { name: "Moon Stone", @@ -1176,262 +1204,262 @@ export const ItemsText: {[k: string]: ItemText} = { }, muscleband: { name: "Muscle Band", - desc: "Holder's physical attacks have 1.1x power.", + shortDesc: "Holder's physical attacks have 1.1x power.", }, mysticwater: { name: "Mystic Water", - desc: "Holder's Water-type attacks have 1.2x power.", + shortDesc: "Holder's Water-type attacks have 1.2x power.", gen3: { - desc: "Holder's Water-type attacks have 1.1x power.", + shortDesc: "Holder's Water-type attacks have 1.1x power.", }, }, nanabberry: { name: "Nanab Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, nestball: { name: "Nest Ball", - desc: "A Poke Ball that works especially well on weaker Pokemon in the wild.", + shortDesc: "A Poke Ball that works especially well on weaker Pokemon in the wild.", }, netball: { name: "Net Ball", - desc: "A Poke Ball that works especially well on Water- and Bug-type Pokemon.", + shortDesc: "A Poke Ball that works especially well on Water- and Bug-type Pokemon.", }, nevermeltice: { name: "Never-Melt Ice", - desc: "Holder's Ice-type attacks have 1.2x power.", + shortDesc: "Holder's Ice-type attacks have 1.2x power.", gen3: { - desc: "Holder's Ice-type attacks have 1.1x power.", + shortDesc: "Holder's Ice-type attacks have 1.1x power.", }, }, nomelberry: { name: "Nomel Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, normalgem: { name: "Normal Gem", - desc: "Holder's first successful Normal-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Normal-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Normal-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Normal-type attack will have 1.5x power. Single use.", }, }, normaliumz: { name: "Normalium Z", - desc: "If holder has a Normal move, this item allows it to use a Normal Z-Move.", + shortDesc: "If holder has a Normal move, this item allows it to use a Normal Z-Move.", }, occaberry: { name: "Occa Berry", - desc: "Halves damage taken from a supereffective Fire-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Fire-type attack. Single use.", }, oddincense: { name: "Odd Incense", - desc: "Holder's Psychic-type attacks have 1.2x power.", + shortDesc: "Holder's Psychic-type attacks have 1.2x power.", }, oldamber: { name: "Old Amber", - desc: "Can be revived into Aerodactyl.", + shortDesc: "Can be revived into Aerodactyl.", }, oranberry: { name: "Oran Berry", - desc: "Restores 10 HP when at 1/2 max HP or less. Single use.", + shortDesc: "Restores 10 HP when at 1/2 max HP or less. Single use.", }, ovalstone: { name: "Oval Stone", - desc: "Evolves Happiny into Chansey when held and leveled up during the day.", + shortDesc: "Evolves Happiny into Chansey when held and leveled up during the day.", }, pamtreberry: { name: "Pamtre Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, parkball: { name: "Park Ball", - desc: "A special Poke Ball for the Pal Park.", + shortDesc: "A special Poke Ball for the Pal Park.", }, passhoberry: { name: "Passho Berry", - desc: "Halves damage taken from a supereffective Water-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Water-type attack. Single use.", }, payapaberry: { name: "Payapa Berry", - desc: "Halves damage taken from a supereffective Psychic-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Psychic-type attack. Single use.", }, pechaberry: { name: "Pecha Berry", - desc: "Holder is cured if it is poisoned. Single use.", + shortDesc: "Holder is cured if it is poisoned. Single use.", }, persimberry: { name: "Persim Berry", - desc: "Holder is cured if it is confused. Single use.", + shortDesc: "Holder is cured if it is confused. Single use.", }, petayaberry: { name: "Petaya Berry", - desc: "Raises holder's Sp. Atk by 1 stage when at 1/4 max HP or less. Single use.", + shortDesc: "Raises holder's Sp. Atk by 1 stage when at 1/4 max HP or less. Single use.", }, pidgeotite: { name: "Pidgeotite", - desc: "If held by a Pidgeot, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Pidgeot, this item allows it to Mega Evolve in battle.", }, pikaniumz: { name: "Pikanium Z", - desc: "If held by a Pikachu with Volt Tackle, it can use Catastropika.", + shortDesc: "If held by a Pikachu with Volt Tackle, it can use Catastropika.", }, pikashuniumz: { name: "Pikashunium Z", - desc: "If held by cap Pikachu with Thunderbolt, it can use 10,000,000 Volt Thunderbolt.", + shortDesc: "If held by cap Pikachu with Thunderbolt, it can use 10,000,000 Volt Thunderbolt.", }, pinapberry: { name: "Pinap Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, pinsirite: { name: "Pinsirite", - desc: "If held by a Pinsir, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Pinsir, this item allows it to Mega Evolve in battle.", }, pixieplate: { name: "Pixie Plate", - desc: "Holder's Fairy-type attacks have 1.2x power. Judgment is Fairy type.", + shortDesc: "Holder's Fairy-type attacks have 1.2x power. Judgment is Fairy type.", }, plumefossil: { name: "Plume Fossil", - desc: "Can be revived into Archen.", + shortDesc: "Can be revived into Archen.", }, poisonbarb: { name: "Poison Barb", - desc: "Holder's Poison-type attacks have 1.2x power.", + shortDesc: "Holder's Poison-type attacks have 1.2x power.", gen3: { - desc: "Holder's Poison-type attacks have 1.1x power.", + shortDesc: "Holder's Poison-type attacks have 1.1x power.", }, }, poisongem: { name: "Poison Gem", - desc: "Holder's first successful Poison-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Poison-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Poison-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Poison-type attack will have 1.5x power. Single use.", }, }, poisonmemory: { name: "Poison Memory", - desc: "Holder's Multi-Attack is Poison type.", + shortDesc: "Holder's Multi-Attack is Poison type.", }, poisoniumz: { name: "Poisonium Z", - desc: "If holder has a Poison move, this item allows it to use a Poison Z-Move.", + shortDesc: "If holder has a Poison move, this item allows it to use a Poison Z-Move.", }, pokeball: { name: "Poke Ball", - desc: "A device for catching wild Pokemon. It is designed as a capsule system.", + shortDesc: "A device for catching wild Pokemon. It is designed as a capsule system.", }, pomegberry: { name: "Pomeg Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, poweranklet: { name: "Power Anklet", - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + shortDesc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerband: { name: "Power Band", - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + shortDesc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerbelt: { name: "Power Belt", - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + shortDesc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerbracer: { name: "Power Bracer", - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + shortDesc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerherb: { name: "Power Herb", - desc: "Holder's two-turn moves complete in one turn (except Sky Drop). Single use.", + shortDesc: "Holder's two-turn moves complete in one turn (except Sky Drop). Single use.", end: " [POKEMON] became fully charged due to its Power Herb!", }, powerlens: { name: "Power Lens", - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + shortDesc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, powerweight: { name: "Power Weight", - desc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", + shortDesc: "Holder's Speed is halved. The Klutz Ability does not ignore this effect.", }, premierball: { name: "Premier Ball", - desc: "A rare Poke Ball that has been crafted to commemorate an event.", + shortDesc: "A rare Poke Ball that has been crafted to commemorate an event.", }, primariumz: { name: "Primarium Z", - desc: "If held by a Primarina with Sparkling Aria, it can use Oceanic Operetta.", + shortDesc: "If held by a Primarina with Sparkling Aria, it can use Oceanic Operetta.", }, prismscale: { name: "Prism Scale", - desc: "Evolves Feebas into Milotic when traded.", + shortDesc: "Evolves Feebas into Milotic when traded.", }, protectivepads: { name: "Protective Pads", - desc: "Holder's moves are protected from adverse contact effects, except Pickpocket.", + shortDesc: "Holder's moves are protected from adverse contact effects, except Pickpocket.", block: " [POKEMON] protected itself with its Protective Pads!", }, protector: { name: "Protector", - desc: "Evolves Rhydon into Rhyperior when traded.", + shortDesc: "Evolves Rhydon into Rhyperior when traded.", }, psychicgem: { name: "Psychic Gem", - desc: "Holder's first successful Psychic-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Psychic-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Psychic-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Psychic-type attack will have 1.5x power. Single use.", }, }, psychicmemory: { name: "Psychic Memory", - desc: "Holder's Multi-Attack is Psychic type.", + shortDesc: "Holder's Multi-Attack is Psychic type.", }, psychicseed: { name: "Psychic Seed", - desc: "If the terrain is Psychic Terrain, raises holder's Sp. Def by 1 stage. Single use.", + shortDesc: "If the terrain is Psychic Terrain, raises holder's Sp. Def by 1 stage. Single use.", }, psychiumz: { name: "Psychium Z", - desc: "If holder has a Psychic move, this item allows it to use a Psychic Z-Move.", + shortDesc: "If holder has a Psychic move, this item allows it to use a Psychic Z-Move.", }, punchingglove: { name: "Punching Glove", - desc: "Holder's punch-based attacks have 1.1x power and do not make contact.", + shortDesc: "Holder's punch-based attacks have 1.1x power and do not make contact.", }, qualotberry: { name: "Qualot Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, quickball: { name: "Quick Ball", - desc: "A Poke Ball that provides a better catch rate at the start of a wild encounter.", + shortDesc: "A Poke Ball that provides a better catch rate at the start of a wild encounter.", }, quickclaw: { name: "Quick Claw", - desc: "Each turn, holder has a 20% chance to move first in its priority bracket.", + shortDesc: "Each turn, holder has a 20% chance to move first in its priority bracket.", gen2: { - desc: "Each turn, holder has a ~23.4% chance to move first in its priority bracket.", + shortDesc: "Each turn, holder has a ~23.4% chance to move first in its priority bracket.", }, activate: " [POKEMON] can act faster than normal, thanks to its Quick Claw!", }, quickpowder: { name: "Quick Powder", - desc: "If held by a Ditto that hasn't Transformed, its Speed is doubled.", + shortDesc: "If held by a Ditto that hasn't Transformed, its Speed is doubled.", }, rabutaberry: { name: "Rabuta Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, rarebone: { name: "Rare Bone", - desc: "No competitive use other than when used with Fling.", + shortDesc: "No competitive use other than when used with Fling.", }, rawstberry: { name: "Rawst Berry", - desc: "Holder is cured if it is burned. Single use.", + shortDesc: "Holder is cured if it is burned. Single use.", }, razorclaw: { name: "Razor Claw", @@ -1445,158 +1473,158 @@ export const ItemsText: {[k: string]: ItemText} = { }, razzberry: { name: "Razz Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, reapercloth: { name: "Reaper Cloth", - desc: "Evolves Dusclops into Dusknoir when traded.", + shortDesc: "Evolves Dusclops into Dusknoir when traded.", }, redcard: { name: "Red Card", - desc: "If holder survives a hit, attacker is forced to switch to a random ally. Single use.", + shortDesc: "If holder survives a hit, attacker is forced to switch to a random ally. Single use.", end: " [POKEMON] held up its Red Card against [TARGET]!", }, redorb: { name: "Red Orb", - desc: "If held by a Groudon, this item triggers its Primal Reversion in battle.", + shortDesc: "If held by a Groudon, this item triggers its Primal Reversion in battle.", }, repeatball: { name: "Repeat Ball", - desc: "A Poke Ball that works well on Pokemon species that were previously caught.", + shortDesc: "A Poke Ball that works well on Pokemon species that were previously caught.", }, ribbonsweet: { name: "Ribbon Sweet", - desc: "Evolves Milcery into Alcremie when held and spun around.", + shortDesc: "Evolves Milcery into Alcremie when held and spun around.", }, rindoberry: { name: "Rindo Berry", - desc: "Halves damage taken from a supereffective Grass-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Grass-type attack. Single use.", }, ringtarget: { name: "Ring Target", - desc: "The holder's type immunities granted solely by its typing are negated.", + shortDesc: "The holder's type immunities granted solely by its typing are negated.", }, rockgem: { name: "Rock Gem", - desc: "Holder's first successful Rock-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Rock-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Rock-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Rock-type attack will have 1.5x power. Single use.", }, }, rockincense: { name: "Rock Incense", - desc: "Holder's Rock-type attacks have 1.2x power.", + shortDesc: "Holder's Rock-type attacks have 1.2x power.", }, rockmemory: { name: "Rock Memory", - desc: "Holder's Multi-Attack is Rock type.", + shortDesc: "Holder's Multi-Attack is Rock type.", }, rockiumz: { name: "Rockium Z", - desc: "If holder has a Rock move, this item allows it to use a Rock Z-Move.", + shortDesc: "If holder has a Rock move, this item allows it to use a Rock Z-Move.", }, rockyhelmet: { name: "Rocky Helmet", - desc: "If holder is hit by a contact move, the attacker loses 1/6 of its max HP.", + shortDesc: "If holder is hit by a contact move, the attacker loses 1/6 of its max HP.", damage: " [POKEMON] was hurt by the Rocky Helmet!", }, roomservice: { name: "Room Service", - desc: "If Trick Room is active, the holder's Speed is lowered by 1 stage. Single use.", + shortDesc: "If Trick Room is active, the holder's Speed is lowered by 1 stage. Single use.", }, rootfossil: { name: "Root Fossil", - desc: "Can be revived into Lileep.", + shortDesc: "Can be revived into Lileep.", }, roseincense: { name: "Rose Incense", - desc: "Holder's Grass-type attacks have 1.2x power.", + shortDesc: "Holder's Grass-type attacks have 1.2x power.", }, roseliberry: { name: "Roseli Berry", - desc: "Halves damage taken from a supereffective Fairy-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Fairy-type attack. Single use.", }, rowapberry: { name: "Rowap Berry", - desc: "If holder is hit by a special move, attacker loses 1/8 of its max HP. Single use.", + shortDesc: "If holder is hit by a special move, attacker loses 1/8 of its max HP. Single use.", }, rustedshield: { name: "Rusted Shield", - desc: "If held by a Zamazenta, this item changes its forme to Crowned Shield.", + shortDesc: "If held by a Zamazenta, this item changes its forme to Crowned Shield.", }, rustedsword: { name: "Rusted Sword", - desc: "If held by a Zacian, this item changes its forme to Crowned Sword.", + shortDesc: "If held by a Zacian, this item changes its forme to Crowned Sword.", }, sablenite: { name: "Sablenite", - desc: "If held by a Sableye, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Sableye, this item allows it to Mega Evolve in battle.", }, sachet: { name: "Sachet", - desc: "Evolves Spritzee into Aromatisse when traded.", + shortDesc: "Evolves Spritzee into Aromatisse when traded.", }, safariball: { name: "Safari Ball", - desc: "A special Poke Ball that is used only in the Safari Zone and Great Marsh.", + shortDesc: "A special Poke Ball that is used only in the Safari Zone and Great Marsh.", }, safetygoggles: { name: "Safety Goggles", - desc: "Holder is immune to powder moves and damage from Sandstorm or Hail.", + shortDesc: "Holder is immune to powder moves and damage from Sandstorm or Hail.", block: " [POKEMON] is not affected by [MOVE] thanks to its Safety Goggles!", }, sailfossil: { name: "Sail Fossil", - desc: "Can be revived into Amaura.", + shortDesc: "Can be revived into Amaura.", }, salacberry: { name: "Salac Berry", - desc: "Raises holder's Speed by 1 stage when at 1/4 max HP or less. Single use.", + shortDesc: "Raises holder's Speed by 1 stage when at 1/4 max HP or less. Single use.", }, salamencite: { name: "Salamencite", - desc: "If held by a Salamence, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Salamence, this item allows it to Mega Evolve in battle.", }, sceptilite: { name: "Sceptilite", - desc: "If held by a Sceptile, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Sceptile, this item allows it to Mega Evolve in battle.", }, scizorite: { name: "Scizorite", - desc: "If held by a Scizor, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Scizor, this item allows it to Mega Evolve in battle.", }, scopelens: { name: "Scope Lens", - desc: "Holder's critical hit ratio is raised by 1 stage.", + shortDesc: "Holder's critical hit ratio is raised by 1 stage.", }, seaincense: { name: "Sea Incense", - desc: "Holder's Water-type attacks have 1.2x power.", + shortDesc: "Holder's Water-type attacks have 1.2x power.", gen3: { - desc: "Holder's Water-type attacks have 1.05x power.", + shortDesc: "Holder's Water-type attacks have 1.05x power.", }, }, sharpbeak: { name: "Sharp Beak", - desc: "Holder's Flying-type attacks have 1.2x power.", + shortDesc: "Holder's Flying-type attacks have 1.2x power.", gen3: { - desc: "Holder's Flying-type attacks have 1.1x power.", + shortDesc: "Holder's Flying-type attacks have 1.1x power.", }, }, sharpedonite: { name: "Sharpedonite", - desc: "If held by a Sharpedo, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Sharpedo, this item allows it to Mega Evolve in battle.", }, shedshell: { name: "Shed Shell", - desc: "Holder may switch out even when trapped by another Pokemon, or by Ingrain.", + shortDesc: "Holder cannot be prevented from choosing to switch out by any effect.", }, shellbell: { name: "Shell Bell", - desc: "After an attack, holder gains 1/8 of the damage in HP dealt to other Pokemon.", + shortDesc: "After an attack, holder gains 1/8 of the damage in HP dealt to other Pokemon.", heal: " [POKEMON] restored a little HP using its Shell Bell!", }, @@ -1607,143 +1635,147 @@ export const ItemsText: {[k: string]: ItemText} = { }, shockdrive: { name: "Shock Drive", - desc: "Holder's Techno Blast is Electric type.", + shortDesc: "Holder's Techno Blast is Electric type.", }, shucaberry: { name: "Shuca Berry", - desc: "Halves damage taken from a supereffective Ground-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Ground-type attack. Single use.", }, silkscarf: { name: "Silk Scarf", - desc: "Holder's Normal-type attacks have 1.2x power.", + shortDesc: "Holder's Normal-type attacks have 1.2x power.", gen3: { - desc: "Holder's Normal-type attacks have 1.1x power.", + shortDesc: "Holder's Normal-type attacks have 1.1x power.", }, }, silverpowder: { name: "Silver Powder", - desc: "Holder's Bug-type attacks have 1.2x power.", + shortDesc: "Holder's Bug-type attacks have 1.2x power.", gen3: { - desc: "Holder's Bug-type attacks have 1.1x power.", + shortDesc: "Holder's Bug-type attacks have 1.1x power.", }, }, sitrusberry: { name: "Sitrus Berry", - desc: "Restores 1/4 max HP when at 1/2 max HP or less. Single use.", + shortDesc: "Restores 1/4 max HP when at 1/2 max HP or less. Single use.", gen3: { - desc: "Restores 30 HP when at 1/2 max HP or less. Single use.", + shortDesc: "Restores 30 HP when at 1/2 max HP or less. Single use.", }, }, skullfossil: { name: "Skull Fossil", - desc: "Can be revived into Cranidos.", + shortDesc: "Can be revived into Cranidos.", }, skyplate: { name: "Sky Plate", - desc: "Holder's Flying-type attacks have 1.2x power. Judgment is Flying type.", + shortDesc: "Holder's Flying-type attacks have 1.2x power. Judgment is Flying type.", }, slowbronite: { name: "Slowbronite", - desc: "If held by a Slowbro, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Slowbro, this item allows it to Mega Evolve in battle.", }, smoothrock: { name: "Smooth Rock", - desc: "Holder's use of Sandstorm lasts 8 turns instead of 5.", + shortDesc: "Holder's use of Sandstorm lasts 8 turns instead of 5.", }, snorliumz: { name: "Snorlium Z", - desc: "If held by a Snorlax with Giga Impact, it can use Pulverizing Pancake.", + shortDesc: "If held by a Snorlax with Giga Impact, it can use Pulverizing Pancake.", }, snowball: { name: "Snowball", - desc: "Raises holder's Attack by 1 if hit by an Ice-type attack. Single use.", + shortDesc: "Raises holder's Attack by 1 if hit by an Ice-type attack. Single use.", }, softsand: { name: "Soft Sand", - desc: "Holder's Ground-type attacks have 1.2x power.", + shortDesc: "Holder's Ground-type attacks have 1.2x power.", gen3: { - desc: "Holder's Ground-type attacks have 1.1x power.", + shortDesc: "Holder's Ground-type attacks have 1.1x power.", }, }, solganiumz: { name: "Solganium Z", - desc: "Solgaleo or Dusk Mane Necrozma with Sunsteel Strike can use a special Z-Move.", + shortDesc: "Solgaleo or Dusk Mane Necrozma with Sunsteel Strike can use a special Z-Move.", }, souldew: { name: "Soul Dew", - desc: "If held by a Latias/Latios, its Dragon- and Psychic-type moves have 1.2x power.", + shortDesc: "If held by a Latias/Latios, its Dragon- and Psychic-type moves have 1.2x power.", gen6: { - desc: "If held by a Latias or a Latios, its Sp. Atk and Sp. Def are 1.5x.", + shortDesc: "If held by a Latias or a Latios, its Sp. Atk and Sp. Def are 1.5x.", }, }, spelltag: { name: "Spell Tag", - desc: "Holder's Ghost-type attacks have 1.2x power.", + shortDesc: "Holder's Ghost-type attacks have 1.2x power.", gen3: { - desc: "Holder's Ghost-type attacks have 1.1x power.", + shortDesc: "Holder's Ghost-type attacks have 1.1x power.", }, }, spelonberry: { name: "Spelon Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, splashplate: { name: "Splash Plate", - desc: "Holder's Water-type attacks have 1.2x power. Judgment is Water type.", + shortDesc: "Holder's Water-type attacks have 1.2x power. Judgment is Water type.", }, spookyplate: { name: "Spooky Plate", - desc: "Holder's Ghost-type attacks have 1.2x power. Judgment is Ghost type.", + shortDesc: "Holder's Ghost-type attacks have 1.2x power. Judgment is Ghost type.", }, sportball: { name: "Sport Ball", - desc: "A special Poke Ball for the Bug-Catching Contest.", + shortDesc: "A special Poke Ball for the Bug-Catching Contest.", }, starfberry: { name: "Starf Berry", - desc: "Raises a random stat by 2 when at 1/4 max HP or less (not acc/eva). Single use.", + shortDesc: "Raises a random stat by 2 when at 1/4 max HP or less (not acc/eva). Single use.", }, starsweet: { name: "Star Sweet", - desc: "Evolves Milcery into Alcremie when held and spun around.", + shortDesc: "Evolves Milcery into Alcremie when held and spun around.", }, steelixite: { name: "Steelixite", - desc: "If held by a Steelix, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Steelix, this item allows it to Mega Evolve in battle.", }, steelgem: { name: "Steel Gem", - desc: "Holder's first successful Steel-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Steel-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Steel-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Steel-type attack will have 1.5x power. Single use.", }, }, steelmemory: { name: "Steel Memory", - desc: "Holder's Multi-Attack is Steel type.", + shortDesc: "Holder's Multi-Attack is Steel type.", }, steeliumz: { name: "Steelium Z", - desc: "If holder has a Steel move, this item allows it to use a Steel Z-Move.", + shortDesc: "If holder has a Steel move, this item allows it to use a Steel Z-Move.", }, stick: { name: "Stick", - desc: "If held by a Farfetch’d, its critical hit ratio is raised by 2 stages.", + shortDesc: "If held by a Farfetch’d, its critical hit ratio is raised by 2 stages.", gen2: { - desc: "If held by a Farfetch’d, its critical hit ratio is always at stage 2. (25% crit rate)", + shortDesc: "If held by a Farfetch’d, its critical hit ratio is always at stage 2. (25% crit rate)", }, }, stickybarb: { name: "Sticky Barb", - desc: "Each turn, holder loses 1/8 max HP. An attacker making contact can receive it.", + shortDesc: "Each turn, holder loses 1/8 max HP. An attacker making contact can receive it.", }, stoneplate: { name: "Stone Plate", - desc: "Holder's Rock-type attacks have 1.2x power. Judgment is Rock type.", + shortDesc: "Holder's Rock-type attacks have 1.2x power. Judgment is Rock type.", + }, + strangeball: { + name: "Strange Ball", + shortDesc: "Placeholder if caught in Poke Ball not in current game.", }, strawberrysweet: { name: "Strawberry Sweet", - desc: "Evolves Milcery into Alcremie when held and spun around.", + shortDesc: "Evolves Milcery into Alcremie when held and spun around.", }, sunstone: { name: "Sun Stone", @@ -1752,39 +1784,43 @@ export const ItemsText: {[k: string]: ItemText} = { }, swampertite: { name: "Swampertite", - desc: "If held by a Swampert, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Swampert, this item allows it to Mega Evolve in battle.", }, sweetapple: { name: "Sweet Apple", - desc: "Evolves Applin into Appletun when used.", + shortDesc: "Evolves Applin into Appletun when used.", + }, + syrupyapple: { + name: "Syrupy Apple", + shortDesc: "Evolves Applin into Dipplin when used.", }, tamatoberry: { name: "Tamato Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, tangaberry: { name: "Tanga Berry", - desc: "Halves damage taken from a supereffective Bug-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Bug-type attack. Single use.", }, tapuniumz: { name: "Tapunium Z", - desc: "If held by a Tapu with Nature's Madness, it can use Guardian of Alola.", + shortDesc: "If held by a Tapu with Nature's Madness, it can use Guardian of Alola.", }, tartapple: { name: "Tart Apple", - desc: "Evolves Applin into Flapple when used.", + shortDesc: "Evolves Applin into Flapple when used.", }, terrainextender: { name: "Terrain Extender", - desc: "Holder's use of Electric/Grassy/Misty/Psychic Terrain lasts 8 turns instead of 5.", + shortDesc: "Holder's use of Electric/Grassy/Misty/Psychic Terrain lasts 8 turns instead of 5.", }, thickclub: { name: "Thick Club", - desc: "If held by a Cubone or a Marowak, its Attack is doubled.", + shortDesc: "If held by a Cubone or a Marowak, its Attack is doubled.", }, throatspray: { name: "Throat Spray", - desc: "Raises holder's Special Attack by 1 stage after it uses a sound move. Single use.", + shortDesc: "Raises holder's Special Attack by 1 stage after it uses a sound move. Single use.", }, thunderstone: { name: "Thunder Stone", @@ -1796,465 +1832,472 @@ export const ItemsText: {[k: string]: ItemText} = { }, timerball: { name: "Timer Ball", - desc: "A Poke Ball that becomes better the more turns there are in a battle.", + shortDesc: "A Poke Ball that becomes better the more turns there are in a battle.", }, toxicorb: { name: "Toxic Orb", - desc: "At the end of every turn, this item attempts to badly poison the holder.", + shortDesc: "At the end of every turn, this item attempts to badly poison the holder.", }, toxicplate: { name: "Toxic Plate", - desc: "Holder's Poison-type attacks have 1.2x power. Judgment is Poison type.", + shortDesc: "Holder's Poison-type attacks have 1.2x power. Judgment is Poison type.", }, tr00: { name: "TR00", - desc: "Teaches certain Pokemon the move Swords Dance. One use.", + shortDesc: "Teaches certain Pokemon the move Swords Dance. One use.", }, tr01: { name: "TR01", - desc: "Teaches certain Pokemon the move Body Slam. One use.", + shortDesc: "Teaches certain Pokemon the move Body Slam. One use.", }, tr02: { name: "TR02", - desc: "Teaches certain Pokemon the move Flamethrower. One use.", + shortDesc: "Teaches certain Pokemon the move Flamethrower. One use.", }, tr03: { name: "TR03", - desc: "Teaches certain Pokemon the move Hydro Pump. One use.", + shortDesc: "Teaches certain Pokemon the move Hydro Pump. One use.", }, tr04: { name: "TR04", - desc: "Teaches certain Pokemon the move Surf. One use.", + shortDesc: "Teaches certain Pokemon the move Surf. One use.", }, tr05: { name: "TR05", - desc: "Teaches certain Pokemon the move Ice Beam. One use.", + shortDesc: "Teaches certain Pokemon the move Ice Beam. One use.", }, tr06: { name: "TR06", - desc: "Teaches certain Pokemon the move Blizzard. One use.", + shortDesc: "Teaches certain Pokemon the move Blizzard. One use.", }, tr07: { name: "TR07", - desc: "Teaches certain Pokemon the move Low Kick. One use.", + shortDesc: "Teaches certain Pokemon the move Low Kick. One use.", }, tr08: { name: "TR08", - desc: "Teaches certain Pokemon the move Thunderbolt. One use.", + shortDesc: "Teaches certain Pokemon the move Thunderbolt. One use.", }, tr09: { name: "TR09", - desc: "Teaches certain Pokemon the move Thunder. One use.", + shortDesc: "Teaches certain Pokemon the move Thunder. One use.", }, tr10: { name: "TR10", - desc: "Teaches certain Pokemon the move Earthquake. One use.", + shortDesc: "Teaches certain Pokemon the move Earthquake. One use.", }, tr11: { name: "TR11", - desc: "Teaches certain Pokemon the move Psychic. One use.", + shortDesc: "Teaches certain Pokemon the move Psychic. One use.", }, tr12: { name: "TR12", - desc: "Teaches certain Pokemon the move Agility. One use.", + shortDesc: "Teaches certain Pokemon the move Agility. One use.", }, tr13: { name: "TR13", - desc: "Teaches certain Pokemon the move Focus Energy. One use.", + shortDesc: "Teaches certain Pokemon the move Focus Energy. One use.", }, tr14: { name: "TR14", - desc: "Teaches certain Pokemon the move Metronome. One use.", + shortDesc: "Teaches certain Pokemon the move Metronome. One use.", }, tr15: { name: "TR15", - desc: "Teaches certain Pokemon the move Fire Blast. One use.", + shortDesc: "Teaches certain Pokemon the move Fire Blast. One use.", }, tr16: { name: "TR16", - desc: "Teaches certain Pokemon the move Waterfall. One use.", + shortDesc: "Teaches certain Pokemon the move Waterfall. One use.", }, tr17: { name: "TR17", - desc: "Teaches certain Pokemon the move Amnesia. One use.", + shortDesc: "Teaches certain Pokemon the move Amnesia. One use.", }, tr18: { name: "TR18", - desc: "Teaches certain Pokemon the move Leech Life. One use.", + shortDesc: "Teaches certain Pokemon the move Leech Life. One use.", }, tr19: { name: "TR19", - desc: "Teaches certain Pokemon the move Tri Attack. One use.", + shortDesc: "Teaches certain Pokemon the move Tri Attack. One use.", }, tr20: { name: "TR20", - desc: "Teaches certain Pokemon the move Substitute. One use.", + shortDesc: "Teaches certain Pokemon the move Substitute. One use.", }, tr21: { name: "TR21", - desc: "Teaches certain Pokemon the move Reversal. One use.", + shortDesc: "Teaches certain Pokemon the move Reversal. One use.", }, tr22: { name: "TR22", - desc: "Teaches certain Pokemon the move Sludge Bomb. One use.", + shortDesc: "Teaches certain Pokemon the move Sludge Bomb. One use.", }, tr23: { name: "TR23", - desc: "Teaches certain Pokemon the move Spikes. One use.", + shortDesc: "Teaches certain Pokemon the move Spikes. One use.", }, tr24: { name: "TR24", - desc: "Teaches certain Pokemon the move Outrage. One use.", + shortDesc: "Teaches certain Pokemon the move Outrage. One use.", }, tr25: { name: "TR25", - desc: "Teaches certain Pokemon the move Psyshock. One use.", + shortDesc: "Teaches certain Pokemon the move Psyshock. One use.", }, tr26: { name: "TR26", - desc: "Teaches certain Pokemon the move Endure. One use.", + shortDesc: "Teaches certain Pokemon the move Endure. One use.", }, tr27: { name: "TR27", - desc: "Teaches certain Pokemon the move Sleep Talk. One use.", + shortDesc: "Teaches certain Pokemon the move Sleep Talk. One use.", }, tr28: { name: "TR28", - desc: "Teaches certain Pokemon the move Megahorn. One use.", + shortDesc: "Teaches certain Pokemon the move Megahorn. One use.", }, tr29: { name: "TR29", - desc: "Teaches certain Pokemon the move Baton Pass. One use.", + shortDesc: "Teaches certain Pokemon the move Baton Pass. One use.", }, tr30: { name: "TR30", - desc: "Teaches certain Pokemon the move Encore. One use.", + shortDesc: "Teaches certain Pokemon the move Encore. One use.", }, tr31: { name: "TR31", - desc: "Teaches certain Pokemon the move Iron Tail. One use.", + shortDesc: "Teaches certain Pokemon the move Iron Tail. One use.", }, tr32: { name: "TR32", - desc: "Teaches certain Pokemon the move Crunch. One use.", + shortDesc: "Teaches certain Pokemon the move Crunch. One use.", }, tr33: { name: "TR33", - desc: "Teaches certain Pokemon the move Shadow Ball. One use.", + shortDesc: "Teaches certain Pokemon the move Shadow Ball. One use.", }, tr34: { name: "TR34", - desc: "Teaches certain Pokemon the move Future Sight. One use.", + shortDesc: "Teaches certain Pokemon the move Future Sight. One use.", }, tr35: { name: "TR35", - desc: "Teaches certain Pokemon the move Uproar. One use.", + shortDesc: "Teaches certain Pokemon the move Uproar. One use.", }, tr36: { name: "TR36", - desc: "Teaches certain Pokemon the move Heat Wave. One use.", + shortDesc: "Teaches certain Pokemon the move Heat Wave. One use.", }, tr37: { name: "TR37", - desc: "Teaches certain Pokemon the move Taunt. One use.", + shortDesc: "Teaches certain Pokemon the move Taunt. One use.", }, tr38: { name: "TR38", - desc: "Teaches certain Pokemon the move Trick. One use.", + shortDesc: "Teaches certain Pokemon the move Trick. One use.", }, tr39: { name: "TR39", - desc: "Teaches certain Pokemon the move Superpower. One use.", + shortDesc: "Teaches certain Pokemon the move Superpower. One use.", }, tr40: { name: "TR40", - desc: "Teaches certain Pokemon the move Skill Swap. One use.", + shortDesc: "Teaches certain Pokemon the move Skill Swap. One use.", }, tr41: { name: "TR41", - desc: "Teaches certain Pokemon the move Blaze Kick. One use.", + shortDesc: "Teaches certain Pokemon the move Blaze Kick. One use.", }, tr42: { name: "TR42", - desc: "Teaches certain Pokemon the move Hyper Voice. One use.", + shortDesc: "Teaches certain Pokemon the move Hyper Voice. One use.", }, tr43: { name: "TR43", - desc: "Teaches certain Pokemon the move Overheat. One use.", + shortDesc: "Teaches certain Pokemon the move Overheat. One use.", }, tr44: { name: "TR44", - desc: "Teaches certain Pokemon the move Cosmic Power. One use.", + shortDesc: "Teaches certain Pokemon the move Cosmic Power. One use.", }, tr45: { name: "TR45", - desc: "Teaches certain Pokemon the move Muddy Water. One use.", + shortDesc: "Teaches certain Pokemon the move Muddy Water. One use.", }, tr46: { name: "TR46", - desc: "Teaches certain Pokemon the move Iron Defense. One use.", + shortDesc: "Teaches certain Pokemon the move Iron Defense. One use.", }, tr47: { name: "TR47", - desc: "Teaches certain Pokemon the move Dragon Claw. One use.", + shortDesc: "Teaches certain Pokemon the move Dragon Claw. One use.", }, tr48: { name: "TR48", - desc: "Teaches certain Pokemon the move Bulk Up. One use.", + shortDesc: "Teaches certain Pokemon the move Bulk Up. One use.", }, tr49: { name: "TR49", - desc: "Teaches certain Pokemon the move Calm Mind. One use.", + shortDesc: "Teaches certain Pokemon the move Calm Mind. One use.", }, tr50: { name: "TR50", - desc: "Teaches certain Pokemon the move Leaf Blade. One use.", + shortDesc: "Teaches certain Pokemon the move Leaf Blade. One use.", }, tr51: { name: "TR51", - desc: "Teaches certain Pokemon the move Dragon Dance. One use.", + shortDesc: "Teaches certain Pokemon the move Dragon Dance. One use.", }, tr52: { name: "TR52", - desc: "Teaches certain Pokemon the move Gyro Ball. One use.", + shortDesc: "Teaches certain Pokemon the move Gyro Ball. One use.", }, tr53: { name: "TR53", - desc: "Teaches certain Pokemon the move Close Combat. One use.", + shortDesc: "Teaches certain Pokemon the move Close Combat. One use.", }, tr54: { name: "TR54", - desc: "Teaches certain Pokemon the move Toxic Spikes. One use.", + shortDesc: "Teaches certain Pokemon the move Toxic Spikes. One use.", }, tr55: { name: "TR55", - desc: "Teaches certain Pokemon the move Flare Blitz. One use.", + shortDesc: "Teaches certain Pokemon the move Flare Blitz. One use.", }, tr56: { name: "TR56", - desc: "Teaches certain Pokemon the move Aura Sphere. One use.", + shortDesc: "Teaches certain Pokemon the move Aura Sphere. One use.", }, tr57: { name: "TR57", - desc: "Teaches certain Pokemon the move Poison Jab. One use.", + shortDesc: "Teaches certain Pokemon the move Poison Jab. One use.", }, tr58: { name: "TR58", - desc: "Teaches certain Pokemon the move Dark Pulse. One use.", + shortDesc: "Teaches certain Pokemon the move Dark Pulse. One use.", }, tr59: { name: "TR59", - desc: "Teaches certain Pokemon the move Seed Bomb. One use.", + shortDesc: "Teaches certain Pokemon the move Seed Bomb. One use.", }, tr60: { name: "TR60", - desc: "Teaches certain Pokemon the move X-Scissor. One use.", + shortDesc: "Teaches certain Pokemon the move X-Scissor. One use.", }, tr61: { name: "TR61", - desc: "Teaches certain Pokemon the move Bug Buzz. One use.", + shortDesc: "Teaches certain Pokemon the move Bug Buzz. One use.", }, tr62: { name: "TR62", - desc: "Teaches certain Pokemon the move Dragon Pulse. One use.", + shortDesc: "Teaches certain Pokemon the move Dragon Pulse. One use.", }, tr63: { name: "TR63", - desc: "Teaches certain Pokemon the move Power Gem. One use.", + shortDesc: "Teaches certain Pokemon the move Power Gem. One use.", }, tr64: { name: "TR64", - desc: "Teaches certain Pokemon the move Focus Blast. One use.", + shortDesc: "Teaches certain Pokemon the move Focus Blast. One use.", }, tr65: { name: "TR65", - desc: "Teaches certain Pokemon the move Energy Ball. One use.", + shortDesc: "Teaches certain Pokemon the move Energy Ball. One use.", }, tr66: { name: "TR66", - desc: "Teaches certain Pokemon the move Brave Bird. One use.", + shortDesc: "Teaches certain Pokemon the move Brave Bird. One use.", }, tr67: { name: "TR67", - desc: "Teaches certain Pokemon the move Earth Power. One use.", + shortDesc: "Teaches certain Pokemon the move Earth Power. One use.", }, tr68: { name: "TR68", - desc: "Teaches certain Pokemon the move Nasty Plot. One use.", + shortDesc: "Teaches certain Pokemon the move Nasty Plot. One use.", }, tr69: { name: "TR69", - desc: "Teaches certain Pokemon the move Zen Headbutt. One use.", + shortDesc: "Teaches certain Pokemon the move Zen Headbutt. One use.", }, tr70: { name: "TR70", - desc: "Teaches certain Pokemon the move Flash Cannon. One use.", + shortDesc: "Teaches certain Pokemon the move Flash Cannon. One use.", }, tr71: { name: "TR71", - desc: "Teaches certain Pokemon the move Leaf Storm. One use.", + shortDesc: "Teaches certain Pokemon the move Leaf Storm. One use.", }, tr72: { name: "TR72", - desc: "Teaches certain Pokemon the move Power Whip. One use.", + shortDesc: "Teaches certain Pokemon the move Power Whip. One use.", }, tr73: { name: "TR73", - desc: "Teaches certain Pokemon the move Gunk Shot. One use.", + shortDesc: "Teaches certain Pokemon the move Gunk Shot. One use.", }, tr74: { name: "TR74", - desc: "Teaches certain Pokemon the move Iron Head. One use.", + shortDesc: "Teaches certain Pokemon the move Iron Head. One use.", }, tr75: { name: "TR75", - desc: "Teaches certain Pokemon the move Stone Edge. One use.", + shortDesc: "Teaches certain Pokemon the move Stone Edge. One use.", }, tr76: { name: "TR76", - desc: "Teaches certain Pokemon the move Stealth Rock. One use.", + shortDesc: "Teaches certain Pokemon the move Stealth Rock. One use.", }, tr77: { name: "TR77", - desc: "Teaches certain Pokemon the move Grass Knot. One use.", + shortDesc: "Teaches certain Pokemon the move Grass Knot. One use.", }, tr78: { name: "TR78", - desc: "Teaches certain Pokemon the move Sludge Wave. One use.", + shortDesc: "Teaches certain Pokemon the move Sludge Wave. One use.", }, tr79: { name: "TR79", - desc: "Teaches certain Pokemon the move Heavy Slam. One use.", + shortDesc: "Teaches certain Pokemon the move Heavy Slam. One use.", }, tr80: { name: "TR80", - desc: "Teaches certain Pokemon the move Electro Ball. One use.", + shortDesc: "Teaches certain Pokemon the move Electro Ball. One use.", }, tr81: { name: "TR81", - desc: "Teaches certain Pokemon the move Foul Play. One use.", + shortDesc: "Teaches certain Pokemon the move Foul Play. One use.", }, tr82: { name: "TR82", - desc: "Teaches certain Pokemon the move Stored Power. One use.", + shortDesc: "Teaches certain Pokemon the move Stored Power. One use.", }, tr83: { name: "TR83", - desc: "Teaches certain Pokemon the move Ally Switch. One use.", + shortDesc: "Teaches certain Pokemon the move Ally Switch. One use.", }, tr84: { name: "TR84", - desc: "Teaches certain Pokemon the move Scald. One use.", + shortDesc: "Teaches certain Pokemon the move Scald. One use.", }, tr85: { name: "TR85", - desc: "Teaches certain Pokemon the move Work Up. One use.", + shortDesc: "Teaches certain Pokemon the move Work Up. One use.", }, tr86: { name: "TR86", - desc: "Teaches certain Pokemon the move Wild Charge. One use.", + shortDesc: "Teaches certain Pokemon the move Wild Charge. One use.", }, tr87: { name: "TR87", - desc: "Teaches certain Pokemon the move Drill Run. One use.", + shortDesc: "Teaches certain Pokemon the move Drill Run. One use.", }, tr88: { name: "TR88", - desc: "Teaches certain Pokemon the move Heat Crash. One use.", + shortDesc: "Teaches certain Pokemon the move Heat Crash. One use.", }, tr89: { name: "TR89", - desc: "Teaches certain Pokemon the move Hurricane. One use.", + shortDesc: "Teaches certain Pokemon the move Hurricane. One use.", }, tr90: { name: "TR90", - desc: "Teaches certain Pokemon the move Play Rough. One use.", + shortDesc: "Teaches certain Pokemon the move Play Rough. One use.", }, tr91: { name: "TR91", - desc: "Teaches certain Pokemon the move Venom Drench. One use.", + shortDesc: "Teaches certain Pokemon the move Venom Drench. One use.", }, tr92: { name: "TR92", - desc: "Teaches certain Pokemon the move Dazzling Gleam. One use.", + shortDesc: "Teaches certain Pokemon the move Dazzling Gleam. One use.", }, tr93: { name: "TR93", - desc: "Teaches certain Pokemon the move Darkest Lariat. One use.", + shortDesc: "Teaches certain Pokemon the move Darkest Lariat. One use.", }, tr94: { name: "TR94", - desc: "Teaches certain Pokemon the move High Horsepower. One use.", + shortDesc: "Teaches certain Pokemon the move High Horsepower. One use.", }, tr95: { name: "TR95", - desc: "Teaches certain Pokemon the move Throat Chop. One use.", + shortDesc: "Teaches certain Pokemon the move Throat Chop. One use.", }, tr96: { name: "TR96", - desc: "Teaches certain Pokemon the move Pollen Puff. One use.", + shortDesc: "Teaches certain Pokemon the move Pollen Puff. One use.", }, tr97: { name: "TR97", - desc: "Teaches certain Pokemon the move Psychic Fangs. One use.", + shortDesc: "Teaches certain Pokemon the move Psychic Fangs. One use.", }, tr98: { name: "TR98", - desc: "Teaches certain Pokemon the move Liquidation. One use.", + shortDesc: "Teaches certain Pokemon the move Liquidation. One use.", }, tr99: { name: "TR99", - desc: "Teaches certain Pokemon the move Body Press. One use.", + shortDesc: "Teaches certain Pokemon the move Body Press. One use.", }, twistedspoon: { name: "Twisted Spoon", - desc: "Holder's Psychic-type attacks have 1.2x power.", + shortDesc: "Holder's Psychic-type attacks have 1.2x power.", gen3: { - desc: "Holder's Psychic-type attacks have 1.1x power.", + shortDesc: "Holder's Psychic-type attacks have 1.1x power.", }, }, tyranitarite: { name: "Tyranitarite", - desc: "If held by a Tyranitar, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Tyranitar, this item allows it to Mega Evolve in battle.", }, ultraball: { name: "Ultra Ball", - desc: "An ultra-performance Ball that provides a higher catch rate than a Great Ball.", + shortDesc: "An ultra-performance Ball that provides a higher catch rate than a Great Ball.", }, ultranecroziumz: { name: "Ultranecrozium Z", - desc: "Dusk Mane/Dawn Wings Necrozma: Ultra Burst, then Z-Move w/ Photon Geyser.", + shortDesc: "Dusk Mane/Dawn Wings Necrozma: Ultra Burst, then Z-Move w/ Photon Geyser.", transform: " Bright light is about to burst out of [POKEMON]!", activate: "[POKEMON] regained its true power through Ultra Burst!", }, + unremarkableteacup: { + name: "Unremarkable Teacup", + shortDesc: "Evolves Poltchageist into Sinistcha when used.", + }, upgrade: { name: "Up-Grade", - desc: "Evolves Porygon into Porygon2 when traded.", + shortDesc: "Evolves Porygon into Porygon2 when traded.", }, utilityumbrella: { name: "Utility Umbrella", - desc: "The holder ignores rain- and sun-based effects. Damage and accuracy calculations from attacks used by the holder are affected by rain and sun, but not attacks used against the holder.", + desc: "The holder ignores rain- and sun-based effects, including those of its Ability unless it is Orichalcum Pulse or Protosynthesis. Damage and accuracy calculations from attacks used by the holder are affected by rain and sun, but not attacks used against the holder.", shortDesc: "The holder ignores rain- and sun-based effects.", + gen8: { + desc: "The holder ignores rain- and sun-based effects, including those of its Ability. Damage and accuracy calculations from attacks used by the holder are affected by rain and sun, but not attacks used against the holder.", + }, }, venusaurite: { name: "Venusaurite", - desc: "If held by a Venusaur, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Venusaur, this item allows it to Mega Evolve in battle.", }, wacanberry: { name: "Wacan Berry", - desc: "Halves damage taken from a supereffective Electric-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Electric-type attack. Single use.", }, watergem: { name: "Water Gem", - desc: "Holder's first successful Water-type attack will have 1.3x power. Single use.", + shortDesc: "Holder's first successful Water-type attack will have 1.3x power. Single use.", gen5: { - desc: "Holder's first successful Water-type attack will have 1.5x power. Single use.", + shortDesc: "Holder's first successful Water-type attack will have 1.5x power. Single use.", }, }, watermemory: { name: "Water Memory", - desc: "Holder's Multi-Attack is Water type.", + shortDesc: "Holder's Multi-Attack is Water type.", }, waterstone: { name: "Water Stone", @@ -2263,130 +2306,134 @@ export const ItemsText: {[k: string]: ItemText} = { }, wateriumz: { name: "Waterium Z", - desc: "If holder has a Water move, this item allows it to use a Water Z-Move.", + shortDesc: "If holder has a Water move, this item allows it to use a Water Z-Move.", }, watmelberry: { name: "Watmel Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, waveincense: { name: "Wave Incense", - desc: "Holder's Water-type attacks have 1.2x power.", + shortDesc: "Holder's Water-type attacks have 1.2x power.", }, weaknesspolicy: { name: "Weakness Policy", - desc: "If holder is hit super effectively, raises Attack, Sp. Atk by 2 stages. Single use.", + shortDesc: "If holder is hit super effectively, raises Attack, Sp. Atk by 2 stages. Single use.", + }, + wellspringmask: { + name: "Wellspring Mask", + shortDesc: "Ogerpon-Wellspring: 1.2x power attacks; Terastallize to gain Embody Aspect.", }, wepearberry: { name: "Wepear Berry", - desc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", + shortDesc: "Cannot be eaten by the holder. No effect when eaten with Bug Bite or Pluck.", }, whippeddream: { name: "Whipped Dream", - desc: "Evolves Swirlix into Slurpuff when traded.", + shortDesc: "Evolves Swirlix into Slurpuff when traded.", }, whiteherb: { name: "White Herb", - desc: "Restores all lowered stat stages to 0 when one is less than 0. Single use.", + shortDesc: "Restores all lowered stat stages to 0 when one is less than 0. Single use.", end: " [POKEMON] returned its stats to normal using its White Herb!", }, widelens: { name: "Wide Lens", - desc: "The accuracy of attacks by the holder is 1.1x.", + shortDesc: "The accuracy of attacks by the holder is 1.1x.", }, wikiberry: { name: "Wiki Berry", - desc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -SpA Nature. Single use.", + shortDesc: "Restores 1/3 max HP at 1/4 max HP or less; confuses if -SpA Nature. Single use.", gen7: { - desc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -SpA Nature. Single use.", + shortDesc: "Restores 1/2 max HP at 1/4 max HP or less; confuses if -SpA Nature. Single use.", }, gen6: { - desc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -SpA Nature. Single use.", + shortDesc: "Restores 1/8 max HP at 1/2 max HP or less; confuses if -SpA Nature. Single use.", }, }, wiseglasses: { name: "Wise Glasses", - desc: "Holder's special attacks have 1.1x power.", + shortDesc: "Holder's special attacks have 1.1x power.", }, yacheberry: { name: "Yache Berry", - desc: "Halves damage taken from a supereffective Ice-type attack. Single use.", + shortDesc: "Halves damage taken from a supereffective Ice-type attack. Single use.", }, zapplate: { name: "Zap Plate", - desc: "Holder's Electric-type attacks have 1.2x power. Judgment is Electric type.", + shortDesc: "Holder's Electric-type attacks have 1.2x power. Judgment is Electric type.", }, zoomlens: { name: "Zoom Lens", - desc: "The accuracy of attacks by the holder is 1.2x if it moves after its target.", + shortDesc: "The accuracy of attacks by the holder is 1.2x if it moves after its target.", }, // Gen 2 items berserkgene: { name: "Berserk Gene", - desc: "(Gen 2) On switch-in, raises holder's Attack by 2 and confuses it. Single use.", + shortDesc: "(Gen 2) On switch-in, raises holder's Attack by 2 and confuses it. Single use.", }, berry: { name: "Berry", - desc: "(Gen 2) Restores 10 HP when at 1/2 max HP or less. Single use.", + shortDesc: "(Gen 2) Restores 10 HP when at 1/2 max HP or less. Single use.", }, bitterberry: { name: "Bitter Berry", - desc: "(Gen 2) Holder is cured if it is confused. Single use.", + shortDesc: "(Gen 2) Holder is cured if it is confused. Single use.", }, burntberry: { name: "Burnt Berry", - desc: "(Gen 2) Holder is cured if it is frozen. Single use.", + shortDesc: "(Gen 2) Holder is cured if it is frozen. Single use.", }, goldberry: { name: "Gold Berry", - desc: "(Gen 2) Restores 30 HP when at 1/2 max HP or less. Single use.", + shortDesc: "(Gen 2) Restores 30 HP when at 1/2 max HP or less. Single use.", }, iceberry: { name: "Ice Berry", - desc: "(Gen 2) Holder is cured if it is burned. Single use.", + shortDesc: "(Gen 2) Holder is cured if it is burned. Single use.", }, mintberry: { name: "Mint Berry", - desc: "(Gen 2) Holder wakes up if it is asleep. Single use.", + shortDesc: "(Gen 2) Holder wakes up if it is asleep. Single use.", }, miracleberry: { name: "Miracle Berry", - desc: "(Gen 2) Holder cures itself if it is confused or has a status condition. Single use.", + shortDesc: "(Gen 2) Holder cures itself if it is confused or has a status condition. Single use.", }, mysteryberry: { name: "Mystery Berry", - desc: "(Gen 2) Restores 5 PP to the first of the holder's moves to reach 0 PP. Single use.", + shortDesc: "(Gen 2) Restores 5 PP to the first of the holder's moves to reach 0 PP. Single use.", activate: " [POKEMON] restored PP to its [MOVE] move using Mystery Berry!", }, pinkbow: { name: "Pink Bow", - desc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", + shortDesc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", }, polkadotbow: { name: "Polkadot Bow", - desc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", + shortDesc: "(Gen 2) Holder's Normal-type attacks have 1.1x power.", }, przcureberry: { name: "PRZ Cure Berry", - desc: "(Gen 2) Holder cures itself if it is paralyzed. Single use.", + shortDesc: "(Gen 2) Holder cures itself if it is paralyzed. Single use.", }, psncureberry: { name: "PSN Cure Berry", - desc: "(Gen 2) Holder is cured if it is poisoned. Single use.", + shortDesc: "(Gen 2) Holder is cured if it is poisoned. Single use.", }, // CAP items crucibellite: { name: "Crucibellite", - desc: "If held by a Crucibelle, this item allows it to Mega Evolve in battle.", + shortDesc: "If held by a Crucibelle, this item allows it to Mega Evolve in battle.", }, vilevial: { name: "Vile Vial", - desc: "If held by a Venomicon, its Poison- and Flying-type attacks have 1.2x power.", + shortDesc: "If held by a Venomicon, its Poison- and Flying-type attacks have 1.2x power.", }, }; diff --git a/data/text/moves.ts b/data/text/moves.ts index 383ae5a20369..0b483ae60024 100644 --- a/data/text/moves.ts +++ b/data/text/moves.ts @@ -1,4 +1,4 @@ -export const MovesText: {[k: string]: MoveText} = { +export const MovesText: {[id: IDEntry]: MoveText} = { "10000000voltthunderbolt": { name: "10,000,000 Volt Thunderbolt", desc: "Has a very high chance for a critical hit.", @@ -103,6 +103,11 @@ export const MovesText: {[k: string]: MoveText} = { name: "All-Out Pummeling", shortDesc: "Power is equal to the base move's Z-Power.", }, + alluringvoice: { + name: "Alluring Voice", + desc: "Has a 100% chance to confuse the target if it had a stat stage raised this turn.", + shortDesc: "100% confuse target that had a stat rise this turn.", + }, allyswitch: { name: "Ally Switch", desc: "The user swaps positions with its ally. Fails if the user is the only Pokemon on its side. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails or if the user's last move used is not Ally Switch.", @@ -177,8 +182,11 @@ export const MovesText: {[k: string]: MoveText} = { }, armthrust: { name: "Arm Thrust", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -203,7 +211,7 @@ export const MovesText: {[k: string]: MoveText} = { }, assist: { name: "Assist", - desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Blazing Torque, Bounce, Celebrate, Chatter, Circle Throw, Combat Torque, Copycat, Counter, Covet, Destiny Bond, Detect, Dig, Dive, Dragon Tail, Endure, Feint, Fly, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Magical Torque, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Noxious Torque, Phantom Force, Protect, Rage Powder, Roar, Shadow Force, Shell Trap, Sketch, Sky Drop, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, Whirlwind, or Wicked Torque.", + desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Blazing Torque, Bounce, Celebrate, Chatter, Circle Throw, Combat Torque, Copycat, Counter, Covet, Destiny Bond, Detect, Dig, Dive, Dragon Tail, Endure, Feint, Fly, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Magical Torque, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Noxious Torque, Phantom Force, Protect, Rage Powder, Roar, Shadow Force, Shell Trap, Sketch, Sky Drop, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Tera Starstorm, Thief, Transform, Trick, Whirlwind, or Wicked Torque.", shortDesc: "Uses a random move known by a team member.", gen8: { desc: "A random move among those known by the user's party members is selected for use. Does not select Assist, Baneful Bunker, Beak Blast, Belch, Bestow, Bounce, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dig, Dive, Dragon Tail, Endure, Feint, Fly, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Phantom Force, Protect, Rage Powder, Roar, Shadow Force, Shell Trap, Sketch, Sky Drop, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", @@ -288,7 +296,7 @@ export const MovesText: {[k: string]: MoveText} = { }, auroraveil: { name: "Aurora Veil", - desc: "For 5 turns, the user and its party members take 0.5x damage from physical and special attacks, or 0.66x damage if in a Double Battle; does not reduce damage further with Reflect or Light Screen. Critical hits ignore this protection. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Brick Break and Psychic Fangs remove the effect before damage is calculated. Lasts for 8 turns if the user is holding Light Clay. Fails unless the weather is Hail.", + desc: "For 5 turns, the user and its party members take 0.5x damage from physical and special attacks, or 0.66x damage if in a Double Battle; does not reduce damage further with Reflect or Light Screen. Critical hits ignore this protection. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Brick Break and Psychic Fangs remove the effect before damage is calculated. Lasts for 8 turns if the user is holding Light Clay. Fails unless the weather is Snow.", shortDesc: "For 5 turns, damage to allies halved. Snow only.", gen8: { desc: "For 5 turns, the user and its party members take 0.5x damage from physical and special attacks, or 0.66x damage if in a Double Battle; does not reduce damage further with Reflect or Light Screen. Critical hits ignore this protection. It is removed from the user's side if the user or an ally is successfully hit by Brick Break, Psychic Fangs, or Defog. Brick Break and Psychic Fangs remove the effect before damage is calculated. Lasts for 8 turns if the user is holding Light Clay. Fails unless the weather is Hail.", @@ -332,7 +340,7 @@ export const MovesText: {[k: string]: MoveText} = { }, banefulbunker: { name: "Baneful Bunker", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user become poisoned. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user become poisoned. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "Protects from moves. Contact: poison.", gen8: { desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user become poisoned. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", @@ -416,6 +424,9 @@ export const MovesText: {[k: string]: MoveText} = { name: "Belly Drum", desc: "Raises the user's Attack by 12 stages in exchange for the user losing 1/2 of its maximum HP, rounded down. Fails if the user would faint or if its Attack stat stage is 6.", shortDesc: "User loses 50% max HP. Maximizes Attack.", + gen2: { + desc: "The user loses 1/2 of its maximum HP, rounded down, unless the user would faint or its Attack stat stage is 6. If the user did not have enough HP, its Attack is raised by 2 stages. Otherwise, while the user's Attack stat stage is less than 6 it is raised by 2, and if its Attack stat before this step was 999 then the stat stage is lowered by 1 and the loop ends.", + }, boost: " [POKEMON] cut its own HP and maximized its Attack!", }, @@ -522,8 +533,8 @@ export const MovesText: {[k: string]: MoveText} = { }, bleakwindstorm: { name: "Bleakwind Storm", - desc: "Has a 30% chance to lower the target's Speed by 1 stage.", - shortDesc: "30% chance to lower the foe(s) Speed by 1.", + desc: "Has a 30% chance to lower the target's Speed by 1 stage. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If this move is used against a Pokemon holding Utility Umbrella, this move's accuracy remains at 80%.", + shortDesc: "30% to lower foe(s) Speed by 1. Rain: can't miss.", }, blizzard: { name: "Blizzard", @@ -558,6 +569,10 @@ export const MovesText: {[k: string]: MoveText} = { desc: "Prevents the target from switching out. The target can still switch out if it uses Baton Pass. If the target leaves the field using Baton Pass, the replacement will remain trapped. The effect ends if the user leaves the field, unless it uses Baton Pass, in which case the target will remain trapped.", }, }, + bloodmoon: { + name: "Blood Moon", + shortDesc: "Cannot be selected the turn after it's used.", + }, bloomdoom: { name: "Bloom Doom", shortDesc: "Power is equal to the base move's Z-Power.", @@ -611,8 +626,11 @@ export const MovesText: {[k: string]: MoveText} = { }, bonerush: { name: "Bone Rush", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -749,8 +767,11 @@ export const MovesText: {[k: string]: MoveText} = { }, bulletseed: { name: "Bullet Seed", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -758,6 +779,11 @@ export const MovesText: {[k: string]: MoveText} = { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits.", }, }, + burningbulwark: { + name: "Burning Bulwark", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user become burned. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + shortDesc: "Protects from damaging attacks. Contact: burn.", + }, burningjealousy: { name: "Burning Jealousy", desc: "Has a 100% chance to burn the target if it had a stat stage raised this turn.", @@ -813,7 +839,7 @@ export const MovesText: {[k: string]: MoveText} = { }, ceaselessedge: { name: "Ceaseless Edge", - desc: "If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. A maximum of three layers may be set, and opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", + desc: "If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. A maximum of three layers may be set, and opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any Pokemon uses Tidy Up, or if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", shortDesc: "Sets a layer of Spikes on the opposing side.", }, celebrate: { @@ -880,10 +906,8 @@ export const MovesText: {[k: string]: MoveText} = { }, chloroblast: { name: "Chloroblast", - desc: "Whether or not this move is successful and even if it would cause fainting, the user loses 1/2 of its maximum HP, rounded up, unless the user has the Magic Guard Ability.", + desc: "If this move is successful, the user loses 1/2 of its maximum HP, rounded up, unless the user has the Magic Guard Ability.", shortDesc: "User loses 50% max HP.", - - damage: "#mindblown", }, circlethrow: { name: "Circle Throw", @@ -1048,7 +1072,7 @@ export const MovesText: {[k: string]: MoveText} = { }, copycat: { name: "Copycat", - desc: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Blazing Torque, Celebrate, Chatter, Circle Throw, Combat Torque, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Dynamax Cannon, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Magical Torque, Mat Block, Me First, Metronome, Mimic, Mirror Move, Nature Power, Noxious Torque, Protect, Rage Powder, Roar, Shell Trap, Sketch, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, Whirlwind, or Wicked Torque.", + desc: "The user uses the last move used by any Pokemon, including itself. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Blazing Torque, Celebrate, Chatter, Circle Throw, Combat Torque, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Dynamax Cannon, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Magical Torque, Mat Block, Me First, Metronome, Mimic, Mirror Move, Nature Power, Noxious Torque, Protect, Rage Powder, Roar, Shell Trap, Sketch, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Tera Starstorm, Thief, Transform, Trick, Whirlwind, or Wicked Torque.", shortDesc: "Uses the last move used in the battle.", gen8: { desc: "The user uses the last move used by any Pokemon, including itself. The base move of Max and G-Max Moves is considered for this purpose. Fails if no move has been used, or if the last move used was Assist, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Celebrate, Chatter, Circle Throw, Copycat, Counter, Covet, Destiny Bond, Detect, Dragon Tail, Dynamax Cannon, Endure, Feint, Focus Punch, Follow Me, Helping Hand, Hold Hands, King's Shield, Mat Block, Me First, Metronome, Mimic, Mirror Coat, Mirror Move, Nature Power, Protect, Rage Powder, Roar, Shell Trap, Sketch, Sleep Talk, Snatch, Spiky Shield, Spotlight, Struggle, Switcheroo, Thief, Transform, Trick, or Whirlwind.", @@ -1068,7 +1092,7 @@ export const MovesText: {[k: string]: MoveText} = { }, coreenforcer: { name: "Core Enforcer", - desc: "If the user moves after the target, the target's Ability is rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Zen Mode, or Zero to Hero, this effect does not happen, and receiving the effect through Baton Pass ends the effect immediately.", + desc: "If the user moves after the target, the target's Ability is rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Zen Mode, or Zero to Hero, this effect does not happen, and receiving the effect through Baton Pass ends the effect immediately.", shortDesc: "Nullifies the foe(s) Ability if the foe(s) move first.", gen8: { desc: "If the user moves after the target, the target's Ability is rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode, this effect does not happen, and receiving the effect through Baton Pass ends the effect immediately.", @@ -1263,7 +1287,7 @@ export const MovesText: {[k: string]: MoveText} = { defog: { name: "Defog", desc: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness. If there is a terrain active and this move is successful, the terrain will be cleared.", - shortDesc: "-1 evasion; clears terrain and hazards on both sides.", + shortDesc: "-1 evasion; ends user and target hazards/terrain.", gen7: { desc: "Lowers the target's evasiveness by 1 stage. If this move is successful and whether or not the target's evasiveness was affected, the effects of Reflect, Light Screen, Aurora Veil, Safeguard, Mist, Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the target's side, and the effects of Spikes, Toxic Spikes, Stealth Rock, and Sticky Web end for the user's side. Ignores a target's substitute, although a substitute will still block the lowering of evasiveness.", shortDesc: "-1 evasion; clears user and target side's hazards.", @@ -1292,7 +1316,7 @@ export const MovesText: {[k: string]: MoveText} = { }, detect: { name: "Detect", - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "Prevents moves from affecting the user this turn.", gen8: { desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", @@ -1418,7 +1442,7 @@ export const MovesText: {[k: string]: MoveText} = { }, doodle: { name: "Doodle", - desc: "The user and its ally's Abilities change to match the target's Ability. Does not change Ability if the user's or its ally's is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Zen Mode, Zero to Hero, or already matches the target. Fails if both the user and its ally's Ability already matches the target, or if the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Flower Gift, Forecast, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, Zen Mode, or Zero to Hero.", + desc: "The user and its ally's Abilities change to match the target's Ability. Does not change Ability if the user's or its ally's is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Zen Mode, Zero to Hero, or already matches the target. Fails if both the user and its ally's Ability already matches the target, or if the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Flower Gift, Forecast, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Tera Shell, Tera Shift, Teraform Zero, Trace, Wonder Guard, Zen Mode, or Zero to Hero.", shortDesc: "User and ally's Abilities become target's Ability.", }, doomdesire: { @@ -1518,6 +1542,13 @@ export const MovesText: {[k: string]: MoveText} = { desc: "Has a 30% chance to paralyze the target.", shortDesc: "30% chance to paralyze the target.", }, + dragoncheer: { + name: "Dragon Cheer", + desc: "Raises the target's chance for a critical hit by 1 stage, or by 2 stages if the target is Dragon type. Fails if there is no ally adjacent to the user, or if the target already has this effect or the Focus Energy effect. Baton Pass can be used to transfer this effect to an ally.", + shortDesc: "Ally: Crit ratio +1, or +2 if ally is Dragon type.", + + start: "#focusenergy", + }, dragonclaw: { name: "Dragon Claw", shortDesc: "No additional effect.", @@ -1695,6 +1726,13 @@ export const MovesText: {[k: string]: MoveText} = { desc: "Damage is multiplied by 1.3333 if this move is super effective against the target.", shortDesc: "Deals 1.3333x damage with supereffective hits.", }, + electroshot: { + name: "Electro Shot", + desc: "This attack charges on the first turn and executes on the second. Raises the user's Special Attack by 1 stage on the first turn. If the user is holding a Power Herb or the weather is Primordial Sea or Rain Dance, the move completes in one turn. If the user is holding Utility Umbrella and the weather is Primordial Sea or Rain Dance, the move still requires a turn to charge.", + shortDesc: "Raises Sp. Atk by 1, hits turn 2. Rain: no charge.", + + prepare: "[POKEMON] absorbed electricity!", + }, electroweb: { name: "Electroweb", desc: "Has a 100% chance to lower the target's Speed by 1 stage.", @@ -1748,7 +1786,7 @@ export const MovesText: {[k: string]: MoveText} = { }, endure: { name: "Endure", - desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "User survives attacks this turn with at least 1 HP.", gen8: { desc: "The user will survive attacks made by other Pokemon during this turn with at least 1 HP. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", @@ -1782,7 +1820,7 @@ export const MovesText: {[k: string]: MoveText} = { }, entrainment: { name: "Entrainment", - desc: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Truant, Zen Mode, Zero to Hero, or the same Ability as the user, or if the user's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Flower Gift, Forecast, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Zen Mode, or Zero to Hero.", + desc: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Truant, Zen Mode, or Zero to Hero, or the same Ability as the user, or if the user's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Flower Gift, Forecast, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Tera Shell, Tera Shift, Teraform Zero, Trace, Wonder Guard, Zen Mode, or Zero to Hero.", shortDesc: "The target's Ability changes to match the user's.", gen8: { desc: "Causes the target's Ability to become the same as the user's. Fails if the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Truant, Zen Mode, or the same Ability as the user, or if the user's Ability is As One, Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, or Zen Mode.", @@ -1932,6 +1970,12 @@ export const MovesText: {[k: string]: MoveText} = { shortDesc: "Raises user's Attack by 2 if this KOes the target.", }, }, + ficklebeam: { + name: "Fickle Beam", + shortDesc: "Has a 30% chance this move's power is doubled.", + + activate: " [POKEMON] is going all out for this attack!", + }, fierydance: { name: "Fiery Dance", desc: "Has a 50% chance to raise the user's Special Attack by 1 stage.", @@ -2020,7 +2064,7 @@ export const MovesText: {[k: string]: MoveText} = { firstimpression: { name: "First Impression", desc: "Fails unless it is the user's first turn on the field.", - shortDesc: "Hits first. First turn out only.", + shortDesc: "Nearly always goes first. First turn out only.", }, fishiousrend: { name: "Fishious Rend", @@ -2291,8 +2335,11 @@ export const MovesText: {[k: string]: MoveText} = { }, furyattack: { name: "Fury Attack", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -2310,8 +2357,11 @@ export const MovesText: {[k: string]: MoveText} = { }, furyswipes: { name: "Fury Swipes", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -2348,7 +2398,7 @@ export const MovesText: {[k: string]: MoveText} = { }, gastroacid: { name: "Gastro Acid", - desc: "Causes the target's Ability to be rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Zen Mode, or Zero to Hero, this move fails, and receiving the effect through Baton Pass ends the effect immediately.", + desc: "Causes the target's Ability to be rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Zen Mode, or Zero to Hero, this move fails, and receiving the effect through Baton Pass ends the effect immediately.", shortDesc: "Nullifies the target's Ability.", gen8: { desc: "Causes the target's Ability to be rendered ineffective as long as it remains active. If the target uses Baton Pass, the replacement will remain under this effect. If the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, or Zen Mode, this move fails, and receiving the effect through Baton Pass ends the effect immediately.", @@ -2402,7 +2452,7 @@ export const MovesText: {[k: string]: MoveText} = { }, gigatonhammer: { name: "Gigaton Hammer", - shortDesc: "Cannot be used twice in a row.", + shortDesc: "Cannot be selected the turn after it's used.", }, gigavolthavoc: { name: "Gigavolt Havoc", @@ -2798,6 +2848,11 @@ export const MovesText: {[k: string]: MoveText} = { desc: "Raises the user's Defense by 1 stage.", shortDesc: "Raises the user's Defense by 1.", }, + hardpress: { + name: "Hard Press", + desc: "Power is equal to 100 * (target's current HP / target's maximum HP), rounded half down, but not less than 1.", + shortDesc: "More power the more HP the target has left.", + }, haze: { name: "Haze", desc: "Resets the stat stages of all active Pokemon to 0.", @@ -3205,8 +3260,11 @@ export const MovesText: {[k: string]: MoveText} = { }, iciclespear: { name: "Icicle Spear", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -3334,6 +3392,11 @@ export const MovesText: {[k: string]: MoveText} = { desc: "Has a 30% chance to lower the target's Defense by 1 stage.", shortDesc: "30% chance to lower the target's Defense by 1.", }, + ivycudgel: { + name: "Ivy Cudgel", + desc: "Has a higher chance for a critical hit. If the user is an Ogerpon, this move's type changes depending on its form. Water type for Wellspring Mask, Fire type for Hearthflame Mask, and Rock type for Cornerstone Mask.", + shortDesc: "High critical hit ratio. Type depends on user's form.", + }, jawlock: { name: "Jaw Lock", desc: "Prevents the user and the target from switching out. The user and the target can still switch out if either of them is holding Shed Shell or uses Baton Pass, Flip Turn, Parting Shot, Teleport, U-turn, or Volt Switch. The effect ends if either the user or the target leaves the field.", @@ -3389,7 +3452,7 @@ export const MovesText: {[k: string]: MoveText} = { }, kingsshield: { name: "King's Shield", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 1 stage. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 1 stage. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "Protects from damaging attacks. Contact: -1 Atk.", gen8: { desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Attack lowered by 1 stage. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", @@ -3756,6 +3819,11 @@ export const MovesText: {[k: string]: MoveText} = { desc: "Damage doubles and no accuracy check is done if the target has used Minimize while active.", shortDesc: "Damage doubles if the target used Minimize.", }, + malignantchain: { + name: "Malignant Chain", + desc: "Has a 50% chance to badly poison the target.", + shortDesc: "50% chance to badly poison the target.", + }, matblock: { name: "Mat Block", desc: "The user and its party members are protected from damaging attacks made by other Pokemon, including allies, during this turn. Fails unless it is the user's first turn on the field, if the user moves last this turn, or if this move is already in effect for the user's side.", @@ -3764,6 +3832,11 @@ export const MovesText: {[k: string]: MoveText} = { start: " [POKEMON] intends to flip up a mat and block incoming attacks!", block: " [MOVE] was blocked by the kicked-up mat!", }, + matchagotcha: { + name: "Matcha Gotcha", + desc: "Has a 20% chance to burn the target. The user recovers 1/2 the HP lost by the target, rounded half up. If Big Root is held by the user, the HP recovered is 1.3x normal, rounded half down. The target thaws out if it is frozen.", + shortDesc: "20% burn. Recovers 50% dmg dealt. Thaws foe(s).", + }, maxairstream: { name: "Max Airstream", desc: "Power is equal to the base move's Max Move power. If this move is successful, the Speed of each Pokemon on the user's side is raised by 1 stage, even if they have a substitute. This effect does not happen if the user is not Dynamaxed. If this move is used as a base move, it deals damage with a power of 0.", @@ -3984,7 +4057,7 @@ export const MovesText: {[k: string]: MoveText} = { }, metronome: { name: "Metronome", - desc: "A random move is selected for use, other than After You, Apple Acid, Armor Cannon, Assist, Astral Barrage, Aura Wheel, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Blazing Torque, Body Press, Branch Poke, Breaking Swipe, Celebrate, Chatter, Chilling Water, Chilly Reception, Clangorous Soul, Collision Course, Combat Torque, Comeuppance, Copycat, Counter, Covet, Crafty Shield, Decorate, Destiny Bond, Detect, Diamond Storm, Doodle, Double Iron Bash, Double Shock, Dragon Ascent, Dragon Energy, Drum Beating, Dynamax Cannon, Electro Drift, Endure, Eternabeam, False Surrender, Feint, Fiery Wrath, Fillet Away, Fleur Cannon, Focus Punch, Follow Me, Freeze Shock, Freezing Glare, Glacial Lance, Grav Apple, Helping Hand, Hold Hands, Hyper Drill, Hyperspace Fury, Hyperspace Hole, Ice Burn, Instruct, Jet Punch, Jungle Healing, King's Shield, Life Dew, Light of Ruin, Magical Torque, Make It Rain, Mat Block, Me First, Meteor Assault, Metronome, Mimic, Mind Blown, Mirror Coat, Mirror Move, Moongeist Beam, Nature Power, Nature's Madness, Noxious Torque, Obstruct, Order Up, Origin Pulse, Overdrive, Photon Geyser, Plasma Fists, Population Bomb, Pounce, Power Shift, Precipice Blades, Protect, Pyro Ball, Quash, Quick Guard, Rage Fist, Rage Powder, Raging Bull, Raging Fury, Relic Song, Revival Blessing, Ruination, Salt Cure, Secret Sword, Shed Tail, Shell Trap, Silk Trap, Sketch, Sleep Talk, Snap Trap, Snarl, Snatch, Snore, Snowscape, Spectral Thief, Spicy Extract, Spiky Shield, Spirit Break, Spotlight, Springtide Storm, Steam Eruption, Steel Beam, Strange Steam, Struggle, Sunsteel Strike, Surging Strikes, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Thunder Cage, Thunderous Kick, Tidy Up, Trailblaze, Transform, Trick, Twin Beam, V-create, Wicked Blow, Wicked Torque, or Wide Guard.", + desc: "A random move is selected for use, other than After You, Apple Acid, Armor Cannon, Assist, Astral Barrage, Aura Wheel, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Blazing Torque, Body Press, Branch Poke, Breaking Swipe, Celebrate, Chatter, Chilling Water, Chilly Reception, Clangorous Soul, Collision Course, Combat Torque, Comeuppance, Copycat, Counter, Covet, Crafty Shield, Decorate, Destiny Bond, Detect, Diamond Storm, Doodle, Double Iron Bash, Double Shock, Dragon Ascent, Dragon Energy, Drum Beating, Dynamax Cannon, Electro Drift, Endure, Eternabeam, False Surrender, Feint, Fiery Wrath, Fillet Away, Fleur Cannon, Focus Punch, Follow Me, Freeze Shock, Freezing Glare, Glacial Lance, Grav Apple, Helping Hand, Hold Hands, Hyper Drill, Hyperspace Fury, Hyperspace Hole, Ice Burn, Instruct, Jet Punch, Jungle Healing, King's Shield, Life Dew, Light of Ruin, Magical Torque, Make It Rain, Mat Block, Me First, Meteor Assault, Metronome, Mimic, Mind Blown, Mirror Coat, Mirror Move, Moongeist Beam, Nature Power, Nature's Madness, Noxious Torque, Obstruct, Order Up, Origin Pulse, Overdrive, Photon Geyser, Plasma Fists, Population Bomb, Pounce, Power Shift, Precipice Blades, Protect, Pyro Ball, Quash, Quick Guard, Rage Fist, Rage Powder, Raging Bull, Raging Fury, Relic Song, Revival Blessing, Ruination, Salt Cure, Secret Sword, Shed Tail, Shell Trap, Silk Trap, Sketch, Sleep Talk, Snap Trap, Snarl, Snatch, Snore, Snowscape, Spectral Thief, Spicy Extract, Spiky Shield, Spirit Break, Spotlight, Springtide Storm, Steam Eruption, Steel Beam, Strange Steam, Struggle, Sunsteel Strike, Surging Strikes, Switcheroo, Techno Blast, Tera Starstorm, Thief, Thousand Arrows, Thousand Waves, Thunder Cage, Thunderous Kick, Tidy Up, Trailblaze, Transform, Trick, Twin Beam, V-create, Wicked Blow, Wicked Torque, or Wide Guard.", shortDesc: "Picks a random move.", gen8: { desc: "A random move is selected for use, other than After You, Apple Acid, Assist, Astral Barrage, Aura Wheel, Baneful Bunker, Beak Blast, Behemoth Bash, Behemoth Blade, Belch, Bestow, Body Press, Branch Poke, Breaking Swipe, Celebrate, Chatter, Clangorous Soul, Copycat, Counter, Covet, Crafty Shield, Decorate, Destiny Bond, Detect, Diamond Storm, Double Iron Bash, Dragon Ascent, Dragon Energy, Dragon Hammer, Drum Beating, Dynamax Cannon, Endure, Eternabeam, False Surrender, Feint, Fiery Wrath, Fleur Cannon, Focus Punch, Follow Me, Freeze Shock, Freezing Glare, Glacial Lance, Grav Apple, Helping Hand, Hold Hands, Hyperspace Fury, Hyperspace Hole, Ice Burn, Instruct, Jungle Healing, King's Shield, Life Dew, Light of Ruin, Mat Block, Me First, Meteor Assault, Metronome, Mimic, Mind Blown, Mirror Coat, Mirror Move, Moongeist Beam, Nature Power, Nature's Madness, Obstruct, Origin Pulse, Overdrive, Photon Geyser, Plasma Fists, Precipice Blades, Protect, Pyro Ball, Quash, Quick Guard, Rage Powder, Relic Song, Secret Sword, Shell Trap, Sketch, Sleep Talk, Snap Trap, Snarl, Snatch, Snore, Spectral Thief, Spiky Shield, Spirit Break, Spotlight, Steam Eruption, Steel Beam, Strange Steam, Struggle, Sunsteel Strike, Surging Strikes, Switcheroo, Techno Blast, Thief, Thousand Arrows, Thousand Waves, Thunder Cage, Thunderous Kick, Transform, Trick, V-create, Wicked Blow, or Wide Guard.", @@ -4013,6 +4086,10 @@ export const MovesText: {[k: string]: MoveText} = { move: "Waggling a finger let it use [MOVE]!", }, + mightycleave: { + name: "Mighty Cleave", + shortDesc: "Bypasses protection without breaking it.", + }, milkdrink: { name: "Milk Drink", desc: "The user restores 1/2 of its maximum HP, rounded half up.", @@ -4023,7 +4100,7 @@ export const MovesText: {[k: string]: MoveText} = { }, mimic: { name: "Mimic", - desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Assist, Behemoth Bash, Behemoth Blade, Belch, Blazing Torque, Celebrate, Chatter, Combat Torque, Copycat, Dynamax Cannon, Hold Hands, Magical Torque, Me First, Metronome, Mimic, Mirror Move, Nature Power, Noxious Torque, Sketch, Sleep Talk, Struggle, Transform, or Wicked Torque.", + desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Assist, Behemoth Bash, Behemoth Blade, Belch, Blazing Torque, Celebrate, Chatter, Combat Torque, Copycat, Dynamax Cannon, Hold Hands, Magical Torque, Me First, Metronome, Mimic, Mirror Move, Nature Power, Noxious Torque, Sketch, Sleep Talk, Struggle, Tera Starstorm, Transform, or Wicked Torque.", shortDesc: "The last move the target used replaces this one.", gen8: { desc: "While the user remains active, this move is replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, if the user already knows the move, or if the move is Behemoth Bash, Behemoth Blade, Chatter, Dynamax Cannon, Mimic, Sketch, Struggle, Transform, or any Max or G-Max Move.", @@ -4073,8 +4150,11 @@ export const MovesText: {[k: string]: MoveText} = { }, minimize: { name: "Minimize", - desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Heavy Slam, Malicious Moonsault, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", + desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Heavy Slam, Malicious Moonsault, Steamroller, Stomp, and Supercell Slam will not check accuracy and have their damage doubled if used against the user while it is active.", shortDesc: "Raises the user's evasiveness by 2.", + gen8: { + desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Heavy Slam, Malicious Moonsault, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", + }, gen6: { desc: "Raises the user's evasiveness by 2 stages. Whether or not the user's evasiveness was changed, Body Slam, Dragon Rush, Flying Press, Heat Crash, Phantom Force, Shadow Force, Steamroller, and Stomp will not check accuracy and have their damage doubled if used against the user while it is active.", }, @@ -4398,7 +4478,7 @@ export const MovesText: {[k: string]: MoveText} = { }, obstruct: { name: "Obstruct", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Defense lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Defense lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "Protects from damaging attacks. Contact: -2 Def.", gen8: { desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Defense lowered by 2 stages. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", @@ -4438,7 +4518,7 @@ export const MovesText: {[k: string]: MoveText} = { }, orderup: { name: "Order Up", - desc: "If an ally Tatsugiri has activated its Commander Ability, this move raises the user's Attack by 1 stage if the Tatsugiri is Curly Form, Defense by 1 stage if Droopy Form, or Speed by 1 stage if Stretchy Form. The effect happens whether or not this move is successful, and even if the Tatsugiri that activated the effect has since fainted.", + desc: "If an ally Tatsugiri has activated its Commander Ability, this move raises the user's Attack by 1 stage if the Tatsugiri is Curly Form, Defense by 1 stage if Droopy Form, or Speed by 1 stage if Stretchy Form. The effect happens even if the Tatsugiri that activated the effect has since fainted.", shortDesc: "Curly|Droopy|Stretchy eaten: +1 Atk|Def|Spe.", }, originpulse: { @@ -4580,8 +4660,11 @@ export const MovesText: {[k: string]: MoveText} = { }, pinmissile: { name: "Pin Missile", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -4768,7 +4851,7 @@ export const MovesText: {[k: string]: MoveText} = { }, protect: { name: "Protect", - desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "Prevents moves from affecting the user this turn.", gen8: { desc: "The user is protected from most attacks made by other Pokemon during this turn. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", @@ -4827,6 +4910,11 @@ export const MovesText: {[k: string]: MoveText} = { desc: "If this attack does not miss, the effects of Reflect, Light Screen, and Aurora Veil end for the target's side of the field before damage is calculated.", shortDesc: "Destroys screens, unless the target is immune.", }, + psychicnoise: { + name: "Psychic Noise", + desc: "For 2 turns, the target is prevented from restoring any HP as long as it remains active. During the effect, healing and draining moves are unusable, and Abilities and items that grant healing will not heal the user. If an affected Pokemon uses Baton Pass, the replacement will remain unable to restore its HP. Pain Split and the Regenerator Ability are unaffected.", + shortDesc: "For 2 turns, the target is prevented from healing.", + }, psychicterrain: { name: "Psychic Terrain", desc: "For 5 turns, the terrain becomes Psychic Terrain. During the effect, the power of Psychic-type attacks made by grounded Pokemon is multiplied by 1.3 and grounded Pokemon cannot be hit by moves with priority greater than 0, unless the target is an ally. Camouflage transforms the user into a Psychic type, Nature Power becomes Psychic, and Secret Power has a 30% chance to lower the target's Speed by 1 stage. Fails if the current terrain is Psychic Terrain.", @@ -4934,7 +5022,7 @@ export const MovesText: {[k: string]: MoveText} = { }, quickguard: { name: "Quick Guard", - desc: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + desc: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", shortDesc: "Protects allies from priority attacks this turn.", gen8: { desc: "The user and its party members are protected from attacks with original or altered priority greater than 0 made by other Pokemon, including allies, during this turn. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", @@ -5221,8 +5309,11 @@ export const MovesText: {[k: string]: MoveText} = { }, rockblast: { name: "Rock Blast", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen4: { desc: "Hits two to five times. Has a 3/8 chance to hit two or three times, and a 1/8 chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the target has a Focus Sash and had full HP when this move started, it will not be knocked out regardless of the number of hits.", }, @@ -5273,7 +5364,7 @@ export const MovesText: {[k: string]: MoveText} = { }, roleplay: { name: "Role Play", - desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Zen Mode, Zero to Hero, or already matches the target, or if the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Flower Gift, Forecast, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, Zen Mode, or Zero to Hero.", + desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Zen Mode, Zero to Hero, or already matches the target, or if the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Flower Gift, Forecast, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Power of Alchemy, Protosynthesis, Quark Drive, Receiver, RKS System, Schooling, Shields Down, Stance Change, Tera Shell, Tera Shift, Teraform Zero, Trace, Wonder Guard, Zen Mode, or Zero to Hero.", shortDesc: "User replaces its Ability with the target's.", gen8: { desc: "The user's Ability changes to match the target's Ability. Fails if the user's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Zen Mode, or already matches the target, or if the target's Ability is As One, Battle Bond, Comatose, Disguise, Flower Gift, Forecast, Gulp Missile, Hunger Switch, Ice Face, Illusion, Imposter, Multitype, Neutralizing Gas, Power Construct, Power of Alchemy, Receiver, RKS System, Schooling, Shields Down, Stance Change, Trace, Wonder Guard, or Zen Mode.", @@ -5380,8 +5471,8 @@ export const MovesText: {[k: string]: MoveText} = { }, sandsearstorm: { name: "Sandsear Storm", - desc: "Has a 20% chance to burn the target.", - shortDesc: "20% chance to burn foe(s).", + desc: "Has a 20% chance to burn the target. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If this move is used against a Pokemon holding Utility Umbrella, this move's accuracy remains at 80%.", + shortDesc: "20% chance to burn foe(s). Can't miss in rain.", }, sandstorm: { name: "Sandstorm", @@ -5441,7 +5532,7 @@ export const MovesText: {[k: string]: MoveText} = { }, scaleshot: { name: "Scale Shot", - desc: "Hits two to five times. Lowers the user's Defense by 1 stage and raises the user's Speed by 1 stage after the last hit. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Lowers the user's Defense by 1 stage and raises the user's Speed by 1 stage after the last hit. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times. User: -1 Def, +1 Spe after last hit.", }, scaryface: { @@ -5645,7 +5736,7 @@ export const MovesText: {[k: string]: MoveText} = { }, silktrap: { name: "Silk Trap", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Speed lowered by 1 stage. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon trying to make contact with the user have their Speed lowered by 1 stage. Non-damaging moves go through this protection. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "Protects from damaging attacks. Contact: -1 Spe.", }, silverwind: { @@ -5655,7 +5746,7 @@ export const MovesText: {[k: string]: MoveText} = { }, simplebeam: { name: "Simple Beam", - desc: "Causes the target's Ability to become Simple. Fails if the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Simple, Stance Change, Truant, Zen Mode, or Zero to Hero.", + desc: "Causes the target's Ability to become Simple. Fails if the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Simple, Stance Change, Tera Shift, Truant, Zen Mode, or Zero to Hero.", shortDesc: "The target's Ability becomes Simple.", gen8: { desc: "Causes the target's Ability to become Simple. Fails if the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Multitype, Power Construct, RKS System, Schooling, Shields Down, Simple, Stance Change, Truant, or Zen Mode.", @@ -5685,8 +5776,11 @@ export const MovesText: {[k: string]: MoveText} = { }, sketch: { name: "Sketch", - desc: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Chatter, Sketch, Struggle, or any move the user knows.", + desc: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Blazing Torque, Combat Torque, Dark Void, Hyperspace Fury, Magical Torque, Noxious Torque, Revival Blessing, Sketch, Struggle, Tera Starstorm, Wicked Torque, or any move the user knows.", shortDesc: "Permanently copies the last move target used.", + gen8: { + desc: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Chatter, Sketch, Struggle, or any move the user knows.", + }, gen3: { desc: "This move is permanently replaced by the last move used by the target. The copied move has the maximum PP for that move. Fails if the target has not made a move, if the user has Transformed, or if the move is Sketch, Struggle, or any move the user knows.", }, @@ -5699,7 +5793,7 @@ export const MovesText: {[k: string]: MoveText} = { }, skillswap: { name: "Skill Swap", - desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, Zen Mode, or Zero to Hero.", + desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Embody Aspect, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Poison Puppeteer, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Tera Shell, Tera Shift, Teraform Zero, Wonder Guard, Zen Mode, or Zero to Hero.", shortDesc: "The user and the target trade Abilities.", gen8: { desc: "The user swaps its Ability with the target's Ability. Fails if either the user or the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Hunger Switch, Ice Face, Illusion, Multitype, Neutralizing Gas, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Wonder Guard, or Zen Mode.", @@ -6068,7 +6162,7 @@ export const MovesText: {[k: string]: MoveText} = { }, spikes: { name: "Spikes", - desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", + desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any Pokemon uses Tidy Up, or if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", shortDesc: "Hurts grounded foes on switch-in. Max 3 layers.", gen8: { desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to three times before failing. Opponents lose 1/8 of their maximum HP with one layer, 1/6 of their maximum HP with two layers, and 1/4 of their maximum HP with three layers, all rounded down. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", @@ -6090,7 +6184,7 @@ export const MovesText: {[k: string]: MoveText} = { }, spikyshield: { name: "Spiky Shield", - desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", + desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", shortDesc: "Protects from moves. Contact: loses 1/8 max HP.", gen8: { desc: "The user is protected from most attacks made by other Pokemon during this turn, and Pokemon making contact with the user lose 1/8 of their maximum HP, rounded down. This move has a 1/X chance of being successful, where X starts at 1 and triples each time this move is successfully used. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn.", @@ -6182,7 +6276,7 @@ export const MovesText: {[k: string]: MoveText} = { }, stealthrock: { name: "Stealth Rock", - desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Fails if the effect is already active on the opposing side. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", + desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Fails if the effect is already active on the opposing side. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any Pokemon uses Tidy Up, or if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", shortDesc: "Hurts foes on switch-in. Factors Rock weakness.", gen8: { desc: "Sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Fails if the effect is already active on the opposing side. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", @@ -6227,7 +6321,7 @@ export const MovesText: {[k: string]: MoveText} = { }, stickyweb: { name: "Sticky Web", - desc: "Sets up a hazard on the opposing side of the field, lowering the Speed by 1 stage of each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Fails if the effect is already active on the opposing side. Can be removed from the opposing side if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", + desc: "Sets up a hazard on the opposing side of the field, lowering the Speed by 1 stage of each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Fails if the effect is already active on the opposing side. Can be removed from the opposing side if any Pokemon uses Tidy Up, or if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", shortDesc: "Lowers Speed of grounded foes by 1 on switch-in.", gen8: { desc: "Sets up a hazard on the opposing side of the field, lowering the Speed by 1 stage of each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Fails if the effect is already active on the opposing side. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, or is hit by Defog.", @@ -6281,7 +6375,7 @@ export const MovesText: {[k: string]: MoveText} = { }, stoneaxe: { name: "Stone Axe", - desc: "If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", + desc: "If this move is successful, it sets up a hazard on the opposing side of the field, damaging each opposing Pokemon that switches in. Foes lose 1/32, 1/16, 1/8, 1/4, or 1/2 of their maximum HP, rounded down, based on their weakness to the Rock type; 0.25x, 0.5x, neutral, 2x, or 4x, respectively. Can be removed from the opposing side if any Pokemon uses Tidy Up, or if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, or is hit by Defog.", shortDesc: "Sets Stealth Rock on the target's side.", }, stoneedge: { @@ -6384,8 +6478,11 @@ export const MovesText: {[k: string]: MoveText} = { }, substitute: { name: "Substitute", - desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, or if the user switches out or faints. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. Sound-based moves and Pokemon with the Infiltrator Ability ignore substitutes. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", + desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, if the user switches out or faints, or if any Pokemon uses Tidy Up. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. Sound-based moves and Pokemon with the Infiltrator Ability ignore substitutes. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", shortDesc: "User takes 1/4 its max HP to put in a substitute.", + gen8: { + desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, or if the user switches out or faints. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. Sound-based moves and Pokemon with the Infiltrator Ability ignore substitutes. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", + }, gen5: { desc: "The user takes 1/4 of its maximum HP, rounded down, and puts it into a substitute to take its place in battle. The substitute is removed once enough damage is inflicted on it, or if the user switches out or faints. Baton Pass can be used to transfer the substitute to an ally, and the substitute will keep its remaining HP. Until the substitute is broken, it receives damage from all attacks made by other Pokemon and shields the user from status effects and stat stage changes caused by other Pokemon. The user still takes normal damage from weather and status effects while behind its substitute. If the substitute breaks during a multi-hit attack, the user will take damage from any remaining hits. If a substitute is created while the user is trapped by a binding move, the binding effect ends immediately. Fails if the user does not have enough HP remaining to create a substitute without fainting, or if it already has a substitute.", }, @@ -6428,6 +6525,13 @@ export const MovesText: {[k: string]: MoveText} = { desc: "This move and its effects ignore the Abilities of other Pokemon.", shortDesc: "Ignores the Abilities of other Pokemon.", }, + supercellslam: { + name: "Supercell Slam", + desc: "If this attack is not successful, the user loses half of its maximum HP, rounded down, as crash damage. Pokemon with the Magic Guard Ability are unaffected by crash damage. Damage doubles and no accuracy check is done if the target has used Minimize while active.", + shortDesc: "User is hurt by 50% of its max HP if it misses.", + + damage: "#crash", + }, superfang: { name: "Super Fang", desc: "Deals damage to the target equal to half of its current HP, rounded down, but not less than 1 HP.", @@ -6564,10 +6668,22 @@ export const MovesText: {[k: string]: MoveText} = { desc: "The user restores 1/2 of its maximum HP if no weather conditions are in effect, all of its HP if the weather is Sunny Day, and 1/4 of its maximum HP if the weather is Rain Dance or Sandstorm, all rounded down.", }, }, + syrupbomb: { + name: "Syrup Bomb", + desc: "If this move is successful, it causes the target's Speed to be lowered by 1 stage at the end of each turn for 3 turns.", + shortDesc: "Target's Speed is lowered by 1 stage for 3 turns.", + + start: " [POKEMON] got covered in sticky candy syrup!", + }, tackle: { name: "Tackle", shortDesc: "No additional effect.", }, + tachyoncutter: { + name: "Tachyon Cutter", + desc: "Hits twice. If the first hit breaks the target's substitute, it will take damage for the second hit. This move does not check accuracy.", + shortDesc: "Hits twice. This move does not check accuracy.", + }, tailglow: { name: "Tail Glow", desc: "Raises the user's Special Attack by 3 stages.", @@ -6579,8 +6695,11 @@ export const MovesText: {[k: string]: MoveText} = { }, tailslap: { name: "Tail Slap", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, }, tailwhip: { name: "Tail Whip", @@ -6704,11 +6823,21 @@ export const MovesText: {[k: string]: MoveText} = { shortDesc: "Fails when used.", }, }, + temperflare: { + name: "Temper Flare", + desc: "Power doubles if the user's last move on the previous turn, including moves called by other moves or those used through Instruct, Magic Coat, Snatch, or the Dancer or Magic Bounce Abilities, failed to do any of its normal effects, not including damage from an unsuccessful High Jump Kick, Jump Kick, or Mind Blown, or if the user was prevented from moving by any effect other than recharging or Sky Drop. A move that was blocked by Baneful Bunker, Detect, King's Shield, Protect, Spiky Shield, Crafty Shield, Mat Block, Quick Guard, or Wide Guard will not double this move's power, nor will Bounce or Fly ending early due to the effect of Gravity, Smack Down, or Thousand Arrows.", + shortDesc: "Power doubles if the user's last move failed.", + }, terablast: { name: "Tera Blast", - desc: "If the user is Terastallized, this move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes, and this move's type becomes the same as the user's Tera Type.", + desc: "If the user is Terastallized, this move becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes, and this move's type becomes the same as the user's Tera Type. In addition, if the user's Tera Type is Stellar, this move has 100 power, is super effective against Terastallized targets and neutral against other targets, and lowers the user's Attack and Special Attack by 1 stage.", shortDesc: "If Terastallized: Phys. if Atk > SpA, type = Tera.", }, + terastarstorm: { + name: "Tera Starstorm", + desc: "If the user is a Terapagos in Stellar Form, this move's type becomes Stellar, hits all opposing Pokemon, and becomes a physical attack if the user's Attack is greater than its Special Attack, including stat stage changes.", + shortDesc: "Terapagos-Stellar: Stellar type, hits both foes.", + }, terrainpulse: { name: "Terrain Pulse", desc: "Power doubles if the user is grounded and a terrain is active, and this move's type changes to match. Electric type during Electric Terrain, Grass type during Grassy Terrain, Fairy type during Misty Terrain, and Psychic type during Psychic Terrain.", @@ -6814,6 +6943,11 @@ export const MovesText: {[k: string]: MoveText} = { start: " [SOURCE] trapped [POKEMON]!", }, + thunderclap: { + name: "Thunderclap", + desc: "Fails if the target did not select a physical attack, special attack, or Me First for use this turn, or if the target moves before the user.", + shortDesc: "Usually goes first. Fails if target is not attacking.", + }, thunderfang: { name: "Thunder Fang", desc: "Has a 10% chance to paralyze the target and a 10% chance to make it flinch.", @@ -6880,7 +7014,7 @@ export const MovesText: {[k: string]: MoveText} = { }, toxicspikes: { name: "Toxic Spikes", - desc: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, but a substitute does not.", + desc: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any Pokemon uses Tidy Up, or if any opposing Pokemon uses Mortal Spin, Rapid Spin, or Defog successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, but a substitute does not.", shortDesc: "Poisons grounded foes on switch-in. Max 2 layers.", gen8: { desc: "Sets up a hazard on the opposing side of the field, poisoning each opposing Pokemon that switches in, unless it is a Flying-type Pokemon or has the Levitate Ability. Can be used up to two times before failing. Opposing Pokemon become poisoned with one layer and badly poisoned with two layers. Can be removed from the opposing side if any opposing Pokemon uses Rapid Spin or Defog successfully, is hit by Defog, or a grounded Poison-type Pokemon switches in. Safeguard prevents the opposing party from being poisoned on switch-in, but a substitute does not.", @@ -7058,6 +7192,11 @@ export const MovesText: {[k: string]: MoveText} = { switchOut: "[POKEMON] went back to [TRAINER]!", }, + upperhand: { + name: "Upper Hand", + desc: "Has a 100% chance to make the target flinch. Fails if the target did not select a priority move for use this turn, or if the target moves before the user.", + shortDesc: "100% flinch. Fails unless target using priority.", + }, uproar: { name: "Uproar", desc: "The user spends three turns locked into this move. This move targets an opponent at random on each turn. On the first of the three turns, all sleeping active Pokemon wake up. During the three turns, no active Pokemon can fall asleep by any means, and Pokemon switched in during the effect do not wake up. If the user is prevented from moving or the attack is not successful against the target during one of the turns, the effect ends.", @@ -7183,8 +7322,11 @@ export const MovesText: {[k: string]: MoveText} = { }, watershuriken: { name: "Water Shuriken", - desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is an Ash-Greninja with the Battle Bond Ability, this move has a power of 20 and always hits three times.", + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times. If the user is an Ash-Greninja with the Battle Bond Ability, this move has a power of 20 and always hits three times. If the user is holding Loaded Dice, this move will hit 4-5 times.", shortDesc: "Usually goes first. Hits 2-5 times in one turn.", + gen8: { + desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", + }, gen6: { desc: "Hits two to five times. Has a 35% chance to hit two or three times and a 15% chance to hit four or five times. If one of the hits breaks the target's substitute, it will take damage for the remaining hits. If the user has the Skill Link Ability, this move will always hit five times.", }, @@ -7279,7 +7421,7 @@ export const MovesText: {[k: string]: MoveText} = { }, wideguard: { name: "Wide Guard", - desc: "The user and its party members are protected from moves made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", + desc: "The user and its party members are protected from moves made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Burning Bulwark, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Silk Trap, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", shortDesc: "Protects allies from multi-target moves this turn.", gen8: { desc: "The user and its party members are protected from moves made by other Pokemon, including allies, during this turn that target all adjacent foes or all adjacent Pokemon. This move modifies the same 1/X chance of being successful used by other protection moves, where X starts at 1 and triples each time this move is successfully used, but does not use the chance to check for failure. X resets to 1 if this move fails, if the user's last move used is not Baneful Bunker, Detect, Endure, King's Shield, Max Guard, Obstruct, Protect, Quick Guard, Spiky Shield, or Wide Guard, or if it was one of those moves and the user's protection was broken. Fails if the user moves last this turn or if this move is already in effect for the user's side.", @@ -7300,8 +7442,8 @@ export const MovesText: {[k: string]: MoveText} = { }, wildboltstorm: { name: "Wildbolt Storm", - desc: "Has a 20% chance to paralyze the target.", - shortDesc: "20% chance to paralyze foe(s).", + desc: "Has a 20% chance to paralyze the target. If the weather is Primordial Sea or Rain Dance, this move does not check accuracy. If this move is used against a Pokemon holding Utility Umbrella, this move's accuracy remains at 80%.", + shortDesc: "20% chance to paralyze foe(s). Rain: can't miss.", }, wildcharge: { name: "Wild Charge", @@ -7354,7 +7496,7 @@ export const MovesText: {[k: string]: MoveText} = { }, worryseed: { name: "Worry Seed", - desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is As One, Battle Bond, Comatose, Commander, Disguise, Gulp Missile, Hadron Engine, Ice Face, Insomnia, Multitype, Orichalcum Pulse, Power Construct, Protosynthesis, Quark Drive, RKS System, Schooling, Shields Down, Stance Change, Truant, Zen Mode, or Zero to Hero.", + desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Insomnia, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Tera Shift, Truant, Zen Mode, or Zero to Hero.", shortDesc: "The target's Ability becomes Insomnia.", gen8: { desc: "Causes the target's Ability to become Insomnia. Fails if the target's Ability is As One, Battle Bond, Comatose, Disguise, Gulp Missile, Ice Face, Insomnia, Multitype, Power Construct, RKS System, Schooling, Shields Down, Stance Change, Truant, or Zen Mode.", diff --git a/data/text/pokedex.ts b/data/text/pokedex.ts index 48d3deeb331f..c12211f6deed 100644 --- a/data/text/pokedex.ts +++ b/data/text/pokedex.ts @@ -1,4 +1,4 @@ -export const PokedexText: {[k: string]: PokedexText} = { +export const PokedexText: {[id: IDEntry]: PokedexText} = { bulbasaur: { name: "Bulbasaur", }, @@ -2507,6 +2507,9 @@ export const PokedexText: {[k: string]: PokedexText} = { greninja: { name: "Greninja", }, + greninjabond: { + name: "Greninja-Bond", + }, greninjaash: { name: "Greninja-Ash", }, diff --git a/data/typechart.ts b/data/typechart.ts index 43f0d19c3a52..fa3833470954 100644 --- a/data/typechart.ts +++ b/data/typechart.ts @@ -1,4 +1,4 @@ -export const TypeChart: {[k: string]: TypeData} = { +export const TypeChart: import('../sim/dex-data').TypeDataTable = { bug: { damageTaken: { Bug: 0, @@ -18,6 +18,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 1, Steel: 0, + Stellar: 0, Water: 0, }, HPivs: {atk: 30, def: 30, spd: 30}, @@ -43,6 +44,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 3, Rock: 0, Steel: 0, + Stellar: 0, Water: 0, }, HPivs: {}, @@ -66,6 +68,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 0, + Stellar: 0, Water: 2, }, HPivs: {atk: 30}, @@ -91,6 +94,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 2, + Stellar: 0, Water: 0, }, HPivs: {spa: 30}, @@ -115,6 +119,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 1, + Stellar: 0, Water: 0, }, }, @@ -137,6 +142,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 1, Rock: 2, Steel: 0, + Stellar: 0, Water: 0, }, HPivs: {def: 30, spa: 30, spd: 30, spe: 30}, @@ -162,6 +168,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 1, Steel: 2, + Stellar: 0, Water: 1, }, HPivs: {atk: 30, spa: 30, spe: 30}, @@ -186,6 +193,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 1, Steel: 0, + Stellar: 0, Water: 0, }, HPivs: {hp: 30, atk: 30, def: 30, spa: 30, spd: 30}, @@ -211,6 +219,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 0, + Stellar: 0, Water: 0, }, HPivs: {def: 30, spd: 30}, @@ -236,6 +245,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 0, + Stellar: 0, Water: 2, }, HPivs: {atk: 30, spa: 30}, @@ -261,6 +271,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 2, Steel: 0, + Stellar: 0, Water: 1, }, HPivs: {spa: 30, spd: 30}, @@ -287,6 +298,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 1, Steel: 1, + Stellar: 0, Water: 0, }, HPivs: {atk: 30, def: 30}, @@ -311,6 +323,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 0, + Stellar: 0, Water: 0, }, }, @@ -335,6 +348,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 1, Rock: 0, Steel: 0, + Stellar: 0, Water: 0, }, HPivs: {def: 30, spa: 30, spd: 30}, @@ -359,6 +373,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 2, Rock: 0, Steel: 0, + Stellar: 0, Water: 0, }, HPivs: {atk: 30, spe: 30}, @@ -384,6 +399,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 1, + Stellar: 0, Water: 1, }, HPivs: {def: 30, spd: 30, spe: 30}, @@ -411,11 +427,35 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 2, Rock: 2, Steel: 2, + Stellar: 0, Water: 0, }, HPivs: {spd: 30}, HPdvs: {atk: 13}, }, + stellar: { + damageTaken: { + Bug: 0, + Dark: 0, + Dragon: 0, + Electric: 0, + Fairy: 0, + Fighting: 0, + Fire: 0, + Flying: 0, + Ghost: 0, + Grass: 0, + Ground: 0, + Ice: 0, + Normal: 0, + Poison: 0, + Psychic: 0, + Rock: 0, + Steel: 0, + Stellar: 0, + Water: 0, + }, + }, water: { damageTaken: { Bug: 0, @@ -435,6 +475,7 @@ export const TypeChart: {[k: string]: TypeData} = { Psychic: 0, Rock: 0, Steel: 2, + Stellar: 0, Water: 2, }, HPivs: {atk: 30, def: 30, spa: 30}, diff --git a/databases/schemas/pms.sql b/databases/schemas/pms.sql new file mode 100644 index 000000000000..23038f05ffc0 --- /dev/null +++ b/databases/schemas/pms.sql @@ -0,0 +1,26 @@ +CREATE TABLE offline_pms ( + sender TEXT NOT NULL, + receiver TEXT NOT NULL, + time INTEGER NOT NULL, + message TEXT NOT NULL, + -- Has the user seen these pms? If so, set to the current date, delete within X hours (currently, 48 hours). + seen NUMBER +); + +CREATE TABLE pm_settings ( + userid TEXT NOT NULL, + view_only TEXT, + PRIMARY KEY (userid) +); + +CREATE TABLE db_info ( + key TEXT NOT NULL, + value TEXT NOT NULL +); + +INSERT INTO db_info (key, value) VALUES ('version', '1'); + +CREATE INDEX list_idx ON offline_pms (sender, receiver); +CREATE INDEX sent_idx ON offline_pms (sender); +CREATE INDEX received_idx ON offline_pms (receiver); +CREATE INDEX setting_idx ON pm_settings (userid); diff --git a/databases/schemas/roomlogs.sql b/databases/schemas/roomlogs.sql new file mode 100644 index 000000000000..6554f654a024 --- /dev/null +++ b/databases/schemas/roomlogs.sql @@ -0,0 +1,22 @@ +CREATE TABLE public.roomlogs ( + type STRING NOT NULL, + roomid STRING NOT NULL, + userid STRING NULL, + time TIMESTAMP(6) NOT NULL, + log STRING NOT NULL, + INDEX linecount (userid, roomid, time), + INDEX month (roomid, time), + INDEX type (roomid, type, time), + INDEX rename_idx (roomid) +); +-- computed columns have to be added after apparently +ALTER TABLE roomlogs ADD COLUMN content TSVECTOR AS (to_tsvector('english', log)) STORED; + +CREATE TABLE public.roomlog_dates ( + roomid STRING NOT NULL, + -- YYYY-MM + month STRING NOT NULL, + -- YYYY-MM-DD + date STRING NOT NULL, + PRIMARY KEY (roomid, date) +); \ No newline at end of file diff --git a/databases/schemas/teams.sql b/databases/schemas/teams.sql new file mode 100644 index 000000000000..f16c05408210 --- /dev/null +++ b/databases/schemas/teams.sql @@ -0,0 +1,14 @@ +CREATE TABLE teams ( + teamid SERIAL PRIMARY KEY, + ownerid TEXT NOT NULL, + team TEXT NOT NULL, + date TIMESTAMP NOT NULL, + format TEXT NOT NULL, + views INTEGER NOT NULL, + title TEXT, + private TEXT +); + +CREATE INDEX owner_idx ON teams(ownerid); +CREATE INDEX format_idx ON teams(format); +CREATE INDEX owner_fmt_idx ON teams(ownerid, format); diff --git a/lib/STREAMS.md b/lib/STREAMS.md index 078bded666f5..aa95dcc2526f 100644 --- a/lib/STREAMS.md +++ b/lib/STREAMS.md @@ -3,7 +3,7 @@ Streams Streams are variables used to interact with large amounts of data without needing to keep it all loaded in RAM. -A stream is used where you would normally use a string, Buffer, or Array, but only part of it is kept in memory at once. +You can think of a `ReadStream` as like a function that returns a string/Buffer, but only a little at a time, and a `WriteStream` as like a function that takes a string/Buffer as input, but only a little at a time. An `ObjectReadStream` is like a function that takes an array as input, but only a little at a time, and an `ObjectWriteStream` is like a function that returns an array, but only a little at a time. Node.js comes with built-in support for streams, and there is also a WHATWG Streams spec (which are incompatible, of course). Both APIs are hard to use and have unnecessary amounts of boilerplate; the Node version more so. This API can wrap Node's API, or it can be used independently, and is a lot easier to use. @@ -13,11 +13,15 @@ An overview: - `ReadStream` is a string/Buffer read stream. Read inputs by line with `readStream.readLine()` or by chunk with `readStream.read()`, or pipe inputs to a `WriteStream` with `readStream.pipe(writeStream)`. - `ReadWriteStream` is a string/Buffer read/write stream. +- `ObjectWriteStream` is a write stream for arbitrary objects. Write to it with `writeStream.write(data)`. +- `ObjectReadStream` is a read stream for arbitrary objects. Read inputs by line with `readStream.readLine()` or by chunk with `readStream.read()`, or pipe inputs to a `WriteStream` with `readStream.pipe(writeStream)`. +- `ObjectReadWriteStream` is a read/write stream for arbitrary objects. + These streams are not API-compatible with Node streams, but can wrap them. -Consuming streams ------------------ +Using streams +------------- ### "override encoding" @@ -28,20 +32,36 @@ However, if for some reason you need to change which encoding you use on a per-r ## Interface: WriteStream -A `WriteStream` can be written to. +A `WriteStream` can be written to. You can think of it like a function taking a string/Buffer as an argument, except you can give it the string/Buffer one chunk at a time, instead of all at once. + +So you can think of these as being the same thing: + +```js +// option 1: do it normally +await FS('file.txt').write("Here are some words.\n"); + +// option 2: do it as a stream +const stream = FS('file.txt').createWriteStream(); +await stream.write("Here a"); +await stream.write("re some "); +await stream.write("words.\n"); // OR: await stream.writeLine("words."); +await stream.writeEnd(); +``` + +The stream version lets you do it a bit at a time instead of all at once, so you use less memory. ### writeStream.write(chunk, [encoding]) * `chunk` {string|Buffer|null} data to write -* `encoding` [override encoding][] +* `encoding` [override encoding](#override-encoding) * Returns: {Promise} for the next time it's safe to write to the `writeStream`. -Writes to the stream. `writeStream.write(null)` is equivalent to `writeStream.end()`. +Writes to the stream. `writeStream.write(null)` is equivalent to `writeStream.writeEnd()`. ### writeStream.writeLine(chunk, [encoding]) * `chunk` {string} data -* `encoding` [override encoding][] +* `encoding` [override encoding](#override-encoding) * Returns: {Promise} for the next time it's safe to write to the `writeStream`. Writes a line to the stream. Equivalent to `writeStream.write(chunk + '\n')`. @@ -57,11 +77,38 @@ This tells the write stream that you're done writing to it. In the Buffer/string ## Interface: ReadStream -A `ReadStream` can be read from. +A `ReadStream` can be read from. You can think of it like a function that returns a string/Buffer, except you can read it out one chunk at a time, instead of all at once. + +So you can think of these as being the same thing: + +```js +// option 1: do it normally +const contents1 = await FS('file.txt').read(); +console.log(contents1); + +// option 3: do it as a stream +const stream = FS('file.txt').createReadStream(); +let contents2 = ''; +let chunk; +while ((chunk = await stream.read()) !== null) { + contents2 += chunk; +} +console.log(contents2); + +// option 2: do it as a stream, by line (this can add an ending \n where there wasn't one before) +const stream = FS('file.txt').createReadStream(); +let contents3 = ''; +for await (const line of stream.byLine()) { + contents3 += line + '\n'; +} +console.log(contents3); +``` + +The stream version lets you do it a bit at a time instead of all at once, so you use less memory (this example doesn't use less memory, since we're just building the full string ourselves, but you can imagine doing something else that doesn't just build the string back). ### readStream.read([encoding]) -* `encoding` [override encoding][] +* `encoding` [override encoding](#override-encoding) * Returns: {Promise} the data read. Reads data from the read stream as fast as possible. @@ -75,7 +122,7 @@ There's rarely a need to use this function directly; you either know how many by ### readStream.read(byteCount, [encoding]) * `byteCount` number of bytes to read -* `encoding` [override encoding][] +* `encoding` [override encoding](#override-encoding) * Returns: {Promise} the data read. Reads `byteCount` bytes from the read stream. @@ -88,7 +135,7 @@ You may also set `byteCount` to `null` to make this behave like `readStream.read ### readStream.readLine([encoding]) -* `encoding` [override encoding][] +* `encoding` [override encoding](#override-encoding) * Returns: {Promise} the data read. Reads a line (a string delimited by `\n` or `\r\n`) from the stream. @@ -97,7 +144,7 @@ The equivalent of `readDelimitedBy('\n')`, but chopping off any trailing `\r` fr ### readStream.readDelimitedBy(delimiter, [encoding]) -* `encoding` [override encoding][] +* `encoding` [override encoding](#override-encoding) * Returns: {Promise} the data read. Reads a line delimited by `delimiter` from the stream. diff --git a/lib/crashlogger.ts b/lib/crashlogger.ts index 0dc1a53ca207..ba01b148a925 100644 --- a/lib/crashlogger.ts +++ b/lib/crashlogger.ts @@ -15,7 +15,8 @@ const CRASH_EMAIL_THROTTLE = 5 * 60 * 1000; // 5 minutes const logPath = path.resolve( // not sure why this is necessary, but in Windows testing it was - __dirname, '../', __dirname.includes(`${path.sep}dist${path.sep}`) ? '..' : '', 'logs/errors.txt' + __dirname, '../', __dirname.includes(`${path.sep}dist${path.sep}`) ? '..' : '', + path.join(global.Config?.logsdir || 'logs', 'errors.txt') ); let lastCrashLog = 0; let transport: any; diff --git a/lib/database.ts b/lib/database.ts new file mode 100644 index 000000000000..f14bb5b91b2a --- /dev/null +++ b/lib/database.ts @@ -0,0 +1,395 @@ +/** + * Database abstraction layer that's vaguely ORM-like. + * Modern (Promises, strict types, tagged template literals), but ORMs + * are a bit _too_ magical for me, so none of that magic here. + * + * @author Zarel + */ + +import * as mysql from 'mysql2'; +import * as pg from 'pg'; + +export type BasicSQLValue = string | number | null; +// eslint-disable-next-line +export type SQLRow = {[k: string]: BasicSQLValue}; +export type SQLValue = BasicSQLValue | SQLStatement | PartialOrSQL | BasicSQLValue[] | undefined; + +export function isSQL(value: any): value is SQLStatement { + /** + * This addresses a scenario where objects get out of sync due to hotpatching. + * Table A is instantiated, and retains SQLStatement at that specific point in time. Consumer A is also instantiated at + * the same time, and both can interact freely, since consumer A and table A share the same reference to SQLStatement. + * However, when consumer A is hotpatched, consumer A imports a new instance of SQLStatement. Thus, when consumer A + * provides that new SQLStatement, it does not pass the `instanceof SQLStatement` check in Table A, + * since table A is still referencing he old SQLStatement (checking that the new is an instance of the old). + * This does not work. Thus, we're forced to check constructor name instead. + */ + return value instanceof SQLStatement || ( + // assorted safety checks to be sure it'll actually work (theoretically preventing certain attacks) + value?.constructor.name === 'SQLStatement' && (Array.isArray(value.sql) && Array.isArray(value.values)) + ); +} + +export class SQLStatement { + sql: string[]; + values: BasicSQLValue[]; + constructor(strings: TemplateStringsArray, values: SQLValue[]) { + this.sql = [strings[0]]; + this.values = []; + for (let i = 0; i < strings.length; i++) { + this.append(values[i], strings[i + 1]); + } + } + append(value: SQLValue, nextString = ''): this { + if (isSQL(value)) { + if (!value.sql.length) return this; + const oldLength = this.sql.length; + this.sql = this.sql.concat(value.sql.slice(1)); + this.sql[oldLength - 1] += value.sql[0]; + this.values = this.values.concat(value.values); + if (nextString) this.sql[this.sql.length - 1] += nextString; + } else if (typeof value === 'string' || typeof value === 'number' || value === null) { + this.values.push(value); + this.sql.push(nextString); + } else if (value === undefined) { + this.sql[this.sql.length - 1] += nextString; + } else if (Array.isArray(value)) { + if ('"`'.includes(this.sql[this.sql.length - 1].slice(-1))) { + // "`a`, `b`" syntax + const quoteChar = this.sql[this.sql.length - 1].slice(-1); + for (const col of value) { + this.append(col, `${quoteChar}, ${quoteChar}`); + } + this.sql[this.sql.length - 1] = this.sql[this.sql.length - 1].slice(0, -4) + nextString; + } else { + // "1, 2" syntax + for (const val of value) { + this.append(val, `, `); + } + this.sql[this.sql.length - 1] = this.sql[this.sql.length - 1].slice(0, -2) + nextString; + } + } else if (this.sql[this.sql.length - 1].endsWith('(')) { + // "(`a`, `b`) VALUES (1, 2)" syntax + this.sql[this.sql.length - 1] += `"`; + for (const col in value) { + this.append(col, `", "`); + } + this.sql[this.sql.length - 1] = this.sql[this.sql.length - 1].slice(0, -4) + `") VALUES (`; + for (const col in value) { + this.append(value[col], `, `); + } + this.sql[this.sql.length - 1] = this.sql[this.sql.length - 1].slice(0, -2) + nextString; + } else if (this.sql[this.sql.length - 1].toUpperCase().endsWith(' SET ')) { + // "`a` = 1, `b` = 2" syntax + this.sql[this.sql.length - 1] += `"`; + for (const col in value) { + this.append(col, `" = `); + this.append(value[col], `, "`); + } + this.sql[this.sql.length - 1] = this.sql[this.sql.length - 1].slice(0, -3) + nextString; + } else { + throw new Error( + `Objects can only appear in (obj) or after SET; ` + + `unrecognized: ${this.sql[this.sql.length - 1]}[obj]${nextString}` + ); + } + return this; + } +} + +/** + * Tag function for SQL, with some magic. + * + * * `` SQL`UPDATE table SET a = ${'hello"'}` `` + * * `` `UPDATE table SET a = 'hello'` `` + * + * Values surrounded by `"` or `` ` `` become identifiers: + * + * * ``` SQL`SELECT * FROM "${'table'}"` ``` + * * `` `SELECT * FROM "table"` `` + * + * (Make sure to use `"` for Postgres and `` ` `` for MySQL.) + * + * Objects preceded by SET become setters: + * + * * `` SQL`UPDATE table SET ${{a: 1, b: 2}}` `` + * * `` `UPDATE table SET "a" = 1, "b" = 2` `` + * + * Objects surrounded by `()` become keys and values: + * + * * `` SQL`INSERT INTO table (${{a: 1, b: 2}})` `` + * * `` `INSERT INTO table ("a", "b") VALUES (1, 2)` `` + * + * Arrays become lists; surrounding by `"` or `` ` `` turns them into lists of names: + * + * * `` SQL`INSERT INTO table ("${['a', 'b']}") VALUES (${[1, 2]})` `` + * * `` `INSERT INTO table ("a", "b") VALUES (1, 2)` `` + */ +export function SQL(strings: TemplateStringsArray, ...values: SQLValue[]) { + return new SQLStatement(strings, values); +} + +export interface ResultRow {[k: string]: BasicSQLValue} + +export const connectedDatabases: Database[] = []; + +export abstract class Database { + connection: Pool; + prefix: string; + type = ''; + constructor(connection: Pool, prefix = '') { + this.prefix = prefix; + this.connection = connection; + connectedDatabases.push(this); + } + abstract _resolveSQL(query: SQLStatement): [query: string, values: BasicSQLValue[]]; + abstract _query(sql: string, values: BasicSQLValue[]): Promise; + abstract _queryExec(sql: string, values: BasicSQLValue[]): Promise; + abstract escapeId(param: string): string; + query(sql: SQLStatement): Promise; + query(): (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise; + query(sql?: SQLStatement) { + if (!sql) return (strings: any, ...rest: any) => this.query(new SQLStatement(strings, rest)); + + const [query, values] = this._resolveSQL(sql); + return this._query(query, values); + } + queryOne(sql: SQLStatement): Promise; + queryOne(): (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise; + queryOne(sql?: SQLStatement) { + if (!sql) return (strings: any, ...rest: any) => this.queryOne(new SQLStatement(strings, rest)); + + return this.query(sql).then(res => Array.isArray(res) ? res[0] : res); + } + queryExec(sql: SQLStatement): Promise; + queryExec(): (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise; + queryExec(sql?: SQLStatement) { + if (!sql) return (strings: any, ...rest: any) => this.queryExec(new SQLStatement(strings, rest)); + + const [query, values] = this._resolveSQL(sql); + return this._queryExec(query, values); + } + getTable(name: string, primaryKeyName: keyof Row & string | null = null): DatabaseTable { + return new DatabaseTable(this, name, primaryKeyName); + } + close() { + void this.connection.end(); + } +} + +type PartialOrSQL = { + [P in keyof T]?: T[P] | SQLStatement; +}; + +type OkPacketOf = DB extends Database ? T : never; + +// Row extends SQLRow but TS doesn't support closed types so we can't express this +export class DatabaseTable { + db: DB; + name: string; + primaryKeyName: keyof Row & string | null; + constructor( + db: DB, + name: string, + primaryKeyName: keyof Row & string | null = null + ) { + this.db = db; + this.name = db.prefix + name; + this.primaryKeyName = primaryKeyName; + } + escapeId(param: string) { + return this.db.escapeId(param); + } + + // raw + + query(sql: SQLStatement): Promise; + query(): (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise; + query(sql?: SQLStatement) { + return this.db.query(sql as any) as any; + } + queryOne(sql: SQLStatement): Promise; + queryOne(): (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise; + queryOne(sql?: SQLStatement) { + return this.db.queryOne(sql as any) as any; + } + queryExec(sql: SQLStatement): Promise>; + queryExec(): (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise>; + queryExec(sql?: SQLStatement) { + return this.db.queryExec(sql as any) as any; + } + + // low-level + + selectAll(entries?: (keyof Row & string)[] | SQLStatement): + (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise { + if (!entries) entries = SQL`*`; + if (Array.isArray(entries)) entries = SQL`"${entries}"`; + return (strings, ...rest) => + this.query()`SELECT ${entries} FROM "${this.name}" ${new SQLStatement(strings, rest)}`; + } + selectOne(entries?: (keyof Row & string)[] | SQLStatement): + (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise { + if (!entries) entries = SQL`*`; + if (Array.isArray(entries)) entries = SQL`"${entries}"`; + return (strings, ...rest) => + this.queryOne()`SELECT ${entries} FROM "${this.name}" ${new SQLStatement(strings, rest)} LIMIT 1`; + } + updateAll(partialRow: PartialOrSQL): + (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise> { + return (strings, ...rest) => + this.queryExec()`UPDATE "${this.name}" SET ${partialRow as any} ${new SQLStatement(strings, rest)}`; + } + updateOne(partialRow: PartialOrSQL): + (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise> { + return (s, ...r) => + this.queryExec()`UPDATE "${this.name}" SET ${partialRow as any} ${new SQLStatement(s, r)} LIMIT 1`; + } + deleteAll(): + (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise> { + return (strings, ...rest) => + this.queryExec()`DELETE FROM "${this.name}" ${new SQLStatement(strings, rest)}`; + } + deleteOne(): + (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise> { + return (strings, ...rest) => + this.queryExec()`DELETE FROM "${this.name}" ${new SQLStatement(strings, rest)} LIMIT 1`; + } + eval(): + (strings: TemplateStringsArray, ...rest: SQLValue[]) => Promise { + return (strings, ...rest) => + this.queryOne<{result: T}>( + )`SELECT ${new SQLStatement(strings, rest)} AS result FROM "${this.name}" LIMIT 1` + .then(row => row?.result); + } + + // high-level + + insert(partialRow: PartialOrSQL, where?: SQLStatement) { + return this.queryExec()`INSERT INTO "${this.name}" (${partialRow as SQLValue}) ${where}`; + } + insertIgnore(partialRow: PartialOrSQL, where?: SQLStatement) { + return this.queryExec()`INSERT IGNORE INTO "${this.name}" (${partialRow as SQLValue}) ${where}`; + } + async tryInsert(partialRow: PartialOrSQL, where?: SQLStatement) { + try { + return await this.insert(partialRow, where); + } catch (err: any) { + if (err.code === 'ER_DUP_ENTRY') { + return undefined; + } + throw err; + } + } + upsert(partialRow: PartialOrSQL, partialUpdate = partialRow, where?: SQLStatement) { + if (this.db.type === 'pg') { + return this.queryExec( + )`INSERT INTO "${this.name}" (${partialRow as any}) ON CONFLICT (${this.primaryKeyName + }) DO UPDATE ${partialUpdate as any} ${where}`; + } + return this.queryExec( + )`INSERT INTO "${this.name}" (${partialRow as any}) ON DUPLICATE KEY UPDATE ${partialUpdate as any} ${where}`; + } + set(primaryKey: BasicSQLValue, partialRow: PartialOrSQL, where?: SQLStatement) { + if (!this.primaryKeyName) throw new Error(`Cannot set() without a single-column primary key`); + partialRow[this.primaryKeyName] = primaryKey as any; + return this.replace(partialRow, where); + } + replace(partialRow: PartialOrSQL, where?: SQLStatement) { + return this.queryExec()`REPLACE INTO "${this.name}" (${partialRow as SQLValue}) ${where}`; + } + get(primaryKey: BasicSQLValue, entries?: (keyof Row & string)[] | SQLStatement) { + if (!this.primaryKeyName) throw new Error(`Cannot get() without a single-column primary key`); + return this.selectOne(entries)`WHERE "${this.primaryKeyName}" = ${primaryKey}`; + } + delete(primaryKey: BasicSQLValue) { + if (!this.primaryKeyName) throw new Error(`Cannot delete() without a single-column primary key`); + return this.deleteAll()`WHERE "${this.primaryKeyName}" = ${primaryKey} LIMIT 1`; + } + update(primaryKey: BasicSQLValue, data: PartialOrSQL) { + if (!this.primaryKeyName) throw new Error(`Cannot update() without a single-column primary key`); + return this.updateAll(data)`WHERE "${this.primaryKeyName}" = ${primaryKey} LIMIT 1`; + } +} + +export class MySQLDatabase extends Database { + override type = 'mysql' as const; + constructor(config: mysql.PoolOptions & {prefix?: string}) { + const prefix = config.prefix || ""; + if (config.prefix) { + config = {...config}; + delete config.prefix; + } + super(mysql.createPool(config), prefix); + } + override _resolveSQL(query: SQLStatement): [query: string, values: BasicSQLValue[]] { + let sql = query.sql[0]; + const values = []; + for (let i = 0; i < query.values.length; i++) { + const value = query.values[i]; + if (query.sql[i + 1].startsWith('`') || query.sql[i + 1].startsWith('"')) { + sql = sql.slice(0, -1) + this.escapeId('' + value) + query.sql[i + 1].slice(1); + } else { + sql += '?' + query.sql[i + 1]; + values.push(value); + } + } + return [sql, values]; + } + override _query(query: string, values: BasicSQLValue[]): Promise { + return new Promise((resolve, reject) => { + this.connection.query(query, values, (e, results: any) => { + if (e) { + return reject(new Error(`${e.message} (${query}) (${values}) [${e.code}]`)); + } + if (Array.isArray(results)) { + for (const row of results) { + for (const col in row) { + if (Buffer.isBuffer(row[col])) row[col] = row[col].toString(); + } + } + } + return resolve(results); + }); + }); + } + override _queryExec(sql: string, values: BasicSQLValue[]): Promise { + return this._query(sql, values); + } + override escapeId(id: string) { + return mysql.escapeId(id); + } +} + +export class PGDatabase extends Database { + override type = 'pg' as const; + constructor(config: pg.PoolConfig) { + super(new pg.Pool(config)); + } + override _resolveSQL(query: SQLStatement): [query: string, values: BasicSQLValue[]] { + let sql = query.sql[0]; + const values = []; + let paramCount = 0; + for (let i = 0; i < query.values.length; i++) { + const value = query.values[i]; + if (query.sql[i + 1].startsWith('`') || query.sql[i + 1].startsWith('"')) { + sql = sql.slice(0, -1) + this.escapeId('' + value) + query.sql[i + 1].slice(1); + } else { + paramCount++; + sql += `$${paramCount}` + query.sql[i + 1]; + values.push(value); + } + } + return [sql, values]; + } + override _query(query: string, values: BasicSQLValue[]) { + return this.connection.query(query, values).then(res => res.rows); + } + override _queryExec(query: string, values: BasicSQLValue[]) { + return this.connection.query(query, values).then(res => ({affectedRows: res.rowCount})); + } + override escapeId(id: string) { + // @ts-expect-error @types/pg really needs to be updated + return pg.escapeIdentifier(id); + } +} diff --git a/lib/net.ts b/lib/net.ts index f9f7dc5a63de..7d663e617b3b 100644 --- a/lib/net.ts +++ b/lib/net.ts @@ -172,6 +172,8 @@ export class NetStream extends Streams.ReadWriteStream { } export class NetRequest { uri: string; + /** Response from last request, made so response stuff is available without being hacky */ + response?: http.IncomingMessage; constructor(uri: string) { this.uri = uri; } @@ -202,6 +204,7 @@ export class NetRequest { async get(opts: NetRequestOptions = {}): Promise { const stream = this.getStream(opts); const response = await stream.response; + if (response) this.response = response; if (response && response.statusCode !== 200) { throw new HttpError(response.statusMessage || "Connection error", response.statusCode, await stream.readAll()); } diff --git a/lib/postgres.ts b/lib/postgres.ts index 43868fa9c5ed..9a9ca45cbcdb 100644 --- a/lib/postgres.ts +++ b/lib/postgres.ts @@ -26,6 +26,9 @@ export class PostgresDatabase { this.pool = null!; } } + destroy() { + return this.pool.end(); + } async query(statement: string | SQLStatement, values?: any[]) { if (!this.pool) { throw new Error(`Attempting to use postgres without 'pg' installed`); diff --git a/lib/process-manager.ts b/lib/process-manager.ts index 448938d712f1..4e196c4f1440 100644 --- a/lib/process-manager.ts +++ b/lib/process-manager.ts @@ -418,7 +418,6 @@ export abstract class ProcessManager processes: T[] = []; releasingProcesses: T[] = []; crashedProcesses: T[] = []; - readonly module: NodeJS.Module; readonly filename: string; readonly basename: string; readonly isParentProcess: boolean; @@ -426,7 +425,6 @@ export abstract class ProcessManager crashRespawnCount = 0; constructor(module: NodeJS.Module) { - this.module = module; this.filename = module.filename; this.basename = path.basename(module.filename); this.isParentProcess = (process.mainModule !== module || !process.send); @@ -556,8 +554,9 @@ export class QueryProcessManager extends ProcessManager< const timeout = setTimeout(() => { const debugInfo = process.debug || "No debug information found."; process.destroy(); + this.spawnOne(); throw new Error( - `A query originating in ${this.basename} took too long to complete; the process has been killed.\n${debugInfo}` + `A query originating in ${this.basename} took too long to complete; the process has been respawned.\n${debugInfo}` ); }, this.timeout); diff --git a/lib/repl.ts b/lib/repl.ts index 27b23d5c2e92..d76e7b3f8e3d 100644 --- a/lib/repl.ts +++ b/lib/repl.ts @@ -20,7 +20,7 @@ export const Repl = new class { /** * Contains the pathnames of all active REPL sockets. */ - socketPathnames: Set = new Set(); + socketPathnames = new Set(); listenersSetup = false; @@ -57,6 +57,41 @@ export const Repl = new class { }; } + /** + * Delete old sockets in the REPL directory (presumably from a crashed + * previous launch of PS). + * + * Does everything synchronously, so that the directory is guaranteed + * clean and ready for new REPL sockets by the time this function returns. + */ + cleanup() { + const config = typeof Config !== 'undefined' ? Config : {}; + if (!config.repl) return; + + // Clean up old REPL sockets. + const directory = path.dirname( + path.resolve(FS.ROOT_PATH, config.replsocketprefix || 'logs/repl', 'app') + ); + let files; + try { + files = fs.readdirSync(directory); + } catch {} + if (files) { + for (const file of files) { + const pathname = path.resolve(directory, file); + const stat = fs.statSync(pathname); + if (!stat.isSocket()) continue; + + const socket = net.connect(pathname, () => { + socket.end(); + socket.destroy(); + }).on('error', () => { + fs.unlinkSync(pathname); + }); + } + } + } + /** * Starts a REPL server, using a UNIX socket for IPC. The eval function * parametre is passed in because there is no other way to access a file's @@ -64,38 +99,13 @@ export const Repl = new class { */ start(filename: string, evalFunction: (input: string) => any) { const config = typeof Config !== 'undefined' ? Config : {}; - if (config.repl !== undefined && !config.repl) return; + if (!config.repl) return; // TODO: Windows does support the REPL when using named pipes. For now, // this only supports UNIX sockets. Repl.setupListeners(filename); - if (filename === 'app') { - // Clean up old REPL sockets. - const directory = path.dirname( - path.resolve(FS.ROOT_PATH, config.replsocketprefix || 'logs/repl', 'app') - ); - let files; - try { - files = fs.readdirSync(directory); - } catch {} - if (files) { - for (const file of files) { - const pathname = path.resolve(directory, file); - const stat = fs.statSync(pathname); - if (!stat.isSocket()) continue; - - const socket = net.connect(pathname, () => { - socket.end(); - socket.destroy(); - }).on('error', () => { - fs.unlink(pathname, () => {}); - }); - } - } - } - const server = net.createServer(socket => { repl.start({ input: socket, diff --git a/lib/sql.ts b/lib/sql.ts index aa1fe68a95bd..4a25eb00e18b 100644 --- a/lib/sql.ts +++ b/lib/sql.ts @@ -34,7 +34,7 @@ export interface TransactionEnvironment { statements: Map; } -type DatabaseQuery = { +export type DatabaseQuery = { /** Prepare a statement - data is the statement. */ type: 'prepare', data: string, } | { @@ -187,6 +187,9 @@ export class SQLDatabaseManager extends QueryProcessManager } return statement; } + registerFunction(key: string, cb: (...args: any) => any) { + this.database!.function(key, cb); + } private extractStatement( query: DatabaseQuery & {statement: string, noPrepare?: boolean} ) { @@ -207,17 +210,23 @@ export class SQLDatabaseManager extends QueryProcessManager } loadExtensionFile(extension: string) { + return this.handleExtensions(require('../' + extension)); + } + handleExtensions(imports: any) { if (!this.database) return; const { functions, transactions: storedTransactions, statements: storedStatements, onDatabaseStart, - // eslint-disable-next-line @typescript-eslint/no-var-requires - } = require(`../${extension}`); + } = imports; + // migrations usually are run here, so this needs to be first + if (onDatabaseStart) { + onDatabaseStart.call(this, this.database); + } if (functions) { for (const k in functions) { - this.database.function(k, functions[k]); + this.registerFunction(k, functions[k]); } } if (storedTransactions) { @@ -232,9 +241,6 @@ export class SQLDatabaseManager extends QueryProcessManager this.state.statements.set(statement.source, statement); } } - if (onDatabaseStart) { - onDatabaseStart(this.database); - } } async query(input: DatabaseQuery) { const result = await super.query(input); @@ -451,5 +457,8 @@ export namespace SQL { export type DatabaseManager = import('./sql').SQLDatabaseManager; export type Statement = import('./sql').Statement; export type Options = import('./sql').SQLOptions; + // eslint-disable-next-line @typescript-eslint/no-shadow + export type TransactionEnvironment = import('./sql').TransactionEnvironment; + export type Query = import('./sql').DatabaseQuery; export type DatabaseTable = import('./sql').DatabaseTable; } diff --git a/lib/utils.ts b/lib/utils.ts index b117ede0c2a7..b121d6738c51 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -306,16 +306,22 @@ export function clearRequireCache(options: {exclude?: string[]} = {}) { excludes.push('/node_modules/'); for (const path in require.cache) { - let skip = false; - for (const exclude of excludes) { - if (path.includes(exclude)) { - skip = true; - break; - } - } + if (excludes.some(p => path.includes(p))) continue; + const mod = require.cache[path]; // have to ref to appease ts + if (!mod) continue; + uncacheModuleTree(mod, excludes); + delete require.cache[path]; + } +} - if (!skip) delete require.cache[path]; +export function uncacheModuleTree(mod: NodeJS.Module, excludes: string[]) { + if (!mod.children?.length || excludes.some(p => mod.filename.includes(p))) return; + for (const [i, child] of mod.children.entries()) { + if (excludes.some(p => child.filename.includes(p))) continue; + mod.children?.splice(i, 1); + uncacheModuleTree(child, excludes); } + delete (mod as any).children; } export function deepClone(obj: any): any { @@ -328,6 +334,20 @@ export function deepClone(obj: any): any { return clone; } +export function deepFreeze(obj: T): T { + if (obj === null || typeof obj !== 'object') return obj; + // support objects with reference loops + if (Object.isFrozen(obj)) return obj; + + Object.freeze(obj); + if (Array.isArray(obj)) { + for (const elem of obj) deepFreeze(elem); + } else { + for (const elem of Object.values(obj)) deepFreeze(elem); + } + return obj; +} + export function levenshtein(s: string, t: string, l: number): number { // Original levenshtein distance function by James Westgate, turned out to be the fastest const d: number[][] = []; @@ -394,12 +414,15 @@ export function formatSQLArray(arr: unknown[], args?: unknown[]) { } export class Multiset extends Map { + get(key: T) { + return super.get(key) ?? 0; + } add(key: T) { - this.set(key, (this.get(key) ?? 0) + 1); + this.set(key, this.get(key) + 1); return this; } remove(key: T) { - const newValue = (this.get(key) ?? 0) - 1; + const newValue = this.get(key) - 1; if (newValue <= 0) return this.delete(key); this.set(key, newValue); return true; diff --git a/package-lock.json b/package-lock.json index 0be02285610c..25a94b4dbe76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,22 @@ { "name": "pokemon-showdown", - "version": "0.11.7", - "lockfileVersion": 3, + "version": "0.11.9", + "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "pokemon-showdown", - "version": "0.11.7", + "version": "0.11.9", "hasInstallScript": true, "license": "MIT", "dependencies": { "esbuild": "^0.16.10", + "mysql2": "^3.9.7", "preact": "^10.5.15", "preact-render-to-string": "^5.1.19", - "probe-image-size": "^5.0.0", - "sockjs": "^0.3.21" + "probe-image-size": "^7.2.3", + "sockjs": "^0.3.21", + "source-map-support": "^0.5.21" }, "bin": { "pokemon-showdown": "pokemon-showdown" @@ -29,13 +31,13 @@ "@types/sockjs": "^0.3.33", "@typescript-eslint/eslint-plugin": "^5.8.0", "@typescript-eslint/parser": "^5.8.0", - "eslint": "^8.5.0", + "eslint": "8.5.0", "mocha": "^8.2.0", - "smogon": "^2.2.1", + "smogon": "^3.0.0", "typescript": "^5.0.4" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "optionalDependencies": { "better-sqlite3": "^7.6.2", @@ -44,7 +46,7 @@ "node-static": "^0.7.11", "nodemailer": "^6.4.6", "permessage-deflate": "^0.1.7", - "pg": "^8.8.0", + "pg": "^8.11.3", "sql-template-strings": "^2.2.2", "sqlite": "^3.0.6", "sucrase": "^3.15.0" @@ -89,32 +91,19 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.5" + "minimatch": "^3.0.4" }, "engines": { "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -458,6 +447,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -552,40 +542,6 @@ "node": ">=8" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -612,14 +568,6 @@ ], "optional": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/better-sqlite3": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.6.2.tgz", @@ -726,6 +674,11 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, "node_modules/buffer-writer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", @@ -756,11 +709,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -892,17 +840,6 @@ "node": ">=0.1.90" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -944,17 +881,6 @@ "node": ">= 8" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1014,28 +940,20 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "optional": true }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/detect-libc": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", @@ -1087,15 +1005,6 @@ "node": ">=6.0.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -1111,6 +1020,19 @@ "once": "^1.4.0" } }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/esbuild": { "version": "0.16.15", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.15.tgz", @@ -1169,50 +1091,49 @@ } }, "node_modules/eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz", + "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", + "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", + "progress": "^2.0.0", "regexpp": "^3.2.0", + "semver": "^7.2.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "bin": { "eslint": "bin/eslint.js" @@ -1295,6 +1216,15 @@ "node": ">=4.0" } }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/espree": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", @@ -1381,23 +1311,11 @@ "node": ">=6" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.2.12", @@ -1430,7 +1348,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -1532,27 +1451,6 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -1574,6 +1472,12 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "devOptional": true }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -1611,6 +1515,14 @@ "node": ">=0.10.0" } }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -1629,14 +1541,6 @@ "node": ">=0.10.0" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -1723,12 +1627,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -1738,27 +1636,6 @@ "node": ">=4.x" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1788,25 +1665,10 @@ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -1890,7 +1752,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "devOptional": true }, "node_modules/ini": { "version": "1.3.8", @@ -1952,15 +1815,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -1970,10 +1824,10 @@ "node": ">=8" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" }, "node_modules/isarray": { "version": "1.0.0", @@ -1987,21 +1841,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "node_modules/js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2014,20 +1853,11 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -2035,25 +1865,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2091,8 +1902,7 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/log-symbols": { "version": "4.0.0", @@ -2106,6 +1916,11 @@ "node": ">=10" } }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -2152,25 +1967,6 @@ "node": ">=4" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-response": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", @@ -2368,8 +2164,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multiline": { "version": "1.0.2", @@ -2383,6 +2178,43 @@ "node": ">=0.10.0" } }, + "node_modules/mysql2": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz", + "integrity": "sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw==", + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -2394,6 +2226,25 @@ "thenify-all": "^1.0.0" } }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, "node_modules/nan": { "version": "2.17.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", @@ -2434,7 +2285,6 @@ "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "optional": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -2451,16 +2301,10 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, "dependencies": { "ms": "^2.1.1" } }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, "node_modules/node-abi": { "version": "3.30.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.30.0.tgz", @@ -2623,14 +2467,6 @@ "node": ">=0.10.0" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -2788,11 +2624,6 @@ "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "node_modules/permessage-deflate": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/permessage-deflate/-/permessage-deflate-0.1.7.tgz", @@ -2806,22 +2637,25 @@ } }, "node_modules/pg": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", - "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", + "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", "optional": true, "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.2", - "pg-protocol": "^1.5.0", + "pg-connection-string": "^2.6.2", + "pg-pool": "^3.6.1", + "pg-protocol": "^1.6.0", "pg-types": "^2.1.0", "pgpass": "1.x" }, "engines": { "node": ">= 8.0.0" }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, "peerDependencies": { "pg-native": ">=3.0.1" }, @@ -2831,10 +2665,16 @@ } } }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, "node_modules/pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", "optional": true }, "node_modules/pg-int8": { @@ -2847,18 +2687,18 @@ } }, "node_modules/pg-pool": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.2.tgz", - "integrity": "sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", + "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", "optional": true, "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==", "devOptional": true }, "node_modules/pg-types": { @@ -3016,14 +2856,12 @@ "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" }, "node_modules/probe-image-size": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-5.0.0.tgz", - "integrity": "sha512-V6uBYw5eBc5UVIE7MUZD6Nxg0RYuGDWLDenEn0B1WC6PcTvn1xdQ6HLDDuznefsiExC6rNrCz7mFRBo0f3Xekg==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", + "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", "dependencies": { - "deepmerge": "^4.0.0", - "inherits": "^2.0.3", - "next-tick": "^1.0.0", - "request": "^2.83.0", + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", "stream-parser": "~0.3.1" } }, @@ -3033,10 +2871,14 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "optional": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, "node_modules/pump": { "version": "3.0.0", @@ -3052,18 +2894,11 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, "engines": { "node": ">=6" } }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -3171,37 +3006,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3295,8 +3099,7 @@ "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "optional": true + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "node_modules/semver": { "version": "7.3.8", @@ -3313,6 +3116,11 @@ "node": ">=10" } }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, "node_modules/serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", @@ -3410,9 +3218,9 @@ } }, "node_modules/smogon": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/smogon/-/smogon-2.2.2.tgz", - "integrity": "sha512-o/xTJTEej7gbb93bCNWSjppo++Sg96fPCNIu1xt9IcWoKOViCfEcMvbofG+0KX08P0iOBzOY9MWGbSFPjTSzXw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/smogon/-/smogon-3.0.0.tgz", + "integrity": "sha512-F+Yo6yXqidabdvMqyI6rrXKejBMl0OOmgGyk5dctqeJx9fFmFUnK3bzkdUG/eaXX0S8m4hUb+WqieiHlAiQgUQ==", "dev": true }, "node_modules/sockjs": { @@ -3433,6 +3241,23 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/split2": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", @@ -3474,28 +3299,12 @@ "node-pre-gyp": "^0.11.0" } }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, "node_modules/stream-parser": { @@ -3746,18 +3555,6 @@ "node": ">=8.0" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -3789,6 +3586,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "optional": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -3796,11 +3594,6 @@ "node": "*" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -3842,6 +3635,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -3852,32 +3646,11 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "optional": true }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true }, "node_modules/websocket-driver": { "version": "0.7.4", @@ -4095,5 +3868,2886 @@ "url": "https://github.com/sponsors/sindresorhus" } } + }, + "dependencies": { + "@esbuild/linux-x64": { + "version": "0.16.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.15.tgz", + "integrity": "sha512-t7/fOXBUKfigvhJLGKZ9TPHHgqNgpIpYaAbcXQk1X+fPeUG7x0tpAbXJ2wST9F/gJ02+CLETPMnhG7Tra2wqsQ==", + "optional": true + }, + "@eslint/eslintrc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/better-sqlite3": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.3.tgz", + "integrity": "sha512-YS64N9SNDT/NAvou3QNdzAu3E2om/W/0dhORimtPGLef+zSK5l1vDzfsWb4xgXOgfhtOI5ZDTRxnvRPb22AIVQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/cloud-env": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@types/cloud-env/-/cloud-env-0.2.2.tgz", + "integrity": "sha512-cydYRiL/esxoLgtciH/YURNXsF/JUxEBoO5JakfH8r6F/jsXIM7FyD+Hmfbb2gnT7F/XKAL9NUlO9RPGw0ivvw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==", + "dev": true + }, + "@types/node-static": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/node-static/-/node-static-0.7.7.tgz", + "integrity": "sha512-Cq3c9lfC9zRrGxe7ox073219Mpy/kmWNsISG0yEG7aUEk33xv/g+uqz/+4b7hM4WN9LsGageBzGuvy09inaGhg==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/nodemailer": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.7.tgz", + "integrity": "sha512-f5qCBGAn/f0qtRcd4SEn88c8Fp3Swct1731X4ryPKqS61/A3LmmzN8zaEz7hneJvpjFbUUgY7lru/B/7ODTazg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/pg": { + "version": "8.6.6", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.6.tgz", + "integrity": "sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==", + "dev": true, + "requires": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" + } + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz", + "integrity": "sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.48.0", + "@typescript-eslint/type-utils": "5.48.0", + "@typescript-eslint/utils": "5.48.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.0.tgz", + "integrity": "sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.48.0", + "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/typescript-estree": "5.48.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz", + "integrity": "sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/visitor-keys": "5.48.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz", + "integrity": "sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.48.0", + "@typescript-eslint/utils": "5.48.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.0.tgz", + "integrity": "sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz", + "integrity": "sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/visitor-keys": "5.48.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.0.tgz", + "integrity": "sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.48.0", + "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/typescript-estree": "5.48.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz", + "integrity": "sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.48.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "optional": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "devOptional": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "optional": true + }, + "better-sqlite3": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.6.2.tgz", + "integrity": "sha512-S5zIU1Hink2AH4xPsN0W43T1/AJ5jrPh7Oy07ocuW/AKYYY02GWzz9NH0nbSMn/gw6fDZ5jZ1QsHt1BXAwJ6Lg==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "prebuild-install": "^7.1.0" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "optional": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "optional": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "devOptional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "optional": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "optional": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "optional": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "cloud-env": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/cloud-env/-/cloud-env-0.2.3.tgz", + "integrity": "sha512-JdU/Wp4z0y8BfWR3w1dtKCo3H0zZje6s5kOTwH1lBYhUShS6SOQYYMnhNMWgWUbRC68BzAqZSFGi1hWaA383+g==", + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "devOptional": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "devOptional": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "optional": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "optional": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "optional": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "optional": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "docopt": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", + "integrity": "sha512-NqTbaYeE4gA/wU1hdKFdU+AFahpDOpgGLzHP42k6H6DKExJd0A55KEVWYhL9FEmHmgeLvEU2vuKXDuU+4yToOw==", + "optional": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "optional": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + } + }, + "esbuild": { + "version": "0.16.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.15.tgz", + "integrity": "sha512-v+3ozjy9wyj8cOElzx3//Lsb4TCxPfZxRmdsfm0YaEkvZu7y6rKH7Zi1UpDx4JI7dSQui+U1Qxhfij9KBbHfrA==", + "requires": { + "@esbuild/android-arm": "0.16.15", + "@esbuild/android-arm64": "0.16.15", + "@esbuild/android-x64": "0.16.15", + "@esbuild/darwin-arm64": "0.16.15", + "@esbuild/darwin-x64": "0.16.15", + "@esbuild/freebsd-arm64": "0.16.15", + "@esbuild/freebsd-x64": "0.16.15", + "@esbuild/linux-arm": "0.16.15", + "@esbuild/linux-arm64": "0.16.15", + "@esbuild/linux-ia32": "0.16.15", + "@esbuild/linux-loong64": "0.16.15", + "@esbuild/linux-mips64el": "0.16.15", + "@esbuild/linux-ppc64": "0.16.15", + "@esbuild/linux-riscv64": "0.16.15", + "@esbuild/linux-s390x": "0.16.15", + "@esbuild/linux-x64": "0.16.15", + "@esbuild/netbsd-x64": "0.16.15", + "@esbuild/openbsd-x64": "0.16.15", + "@esbuild/sunos-x64": "0.16.15", + "@esbuild/win32-arm64": "0.16.15", + "@esbuild/win32-ia32": "0.16.15", + "@esbuild/win32-x64": "0.16.15" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz", + "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "optional": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "devOptional": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "requires": { + "is-property": "^1.0.2" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "optional": true + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "optional": true + }, + "githubhook": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/githubhook/-/githubhook-1.9.3.tgz", + "integrity": "sha512-HLbXqgalcVixWyTqR0mokWGKZiBl1ydMRmb1lCaEYIXDG2axefMqvjh7ENxk5zug3+diu7STFkrICQ80Rg3V9A==", + "optional": true, + "requires": { + "docopt": "^0.6.2", + "multiline": "^1.0.2" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "devOptional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "optional": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "devOptional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "devOptional": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "optional": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "devOptional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "optional": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "optional": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "optional": true + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "optional": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "devOptional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==", + "optional": true + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "optional": true + } + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "optional": true, + "requires": { + "minimist": "^1.2.6" + }, + "dependencies": { + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "optional": true + } + } + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "optional": true + }, + "mocha": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", + "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.1", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.6", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.0.0", + "log-symbols": "4.0.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.20", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multiline": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/multiline/-/multiline-1.0.2.tgz", + "integrity": "sha512-DGpmDIZKKQ+EVx0sh0757V6qlb+ouuByoC5CWH7J0bOd6KRM6ka6l9LGHWfe17OKxm+4AsLs1tgiK4vZIx66RQ==", + "optional": true, + "requires": { + "strip-indent": "^1.0.0" + } + }, + "mysql2": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz", + "integrity": "sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw==", + "requires": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==" + } + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "optional": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "requires": { + "lru-cache": "^7.14.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + } + } + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "optional": true + }, + "nanoid": { + "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "dev": true + }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "node-abi": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.30.0.tgz", + "integrity": "sha512-qWO5l3SCqbwQavymOmtTVuCWZE23++S+rxyoHjXqUmPyzRcaoI4lA2gO55/drddGnedAyjA7sk76SfQ5lfUMnw==", + "optional": true, + "requires": { + "semver": "^7.3.5" + } + }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "dependencies": { + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "optional": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "optional": true + } + } + }, + "node-static": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/node-static/-/node-static-0.7.11.tgz", + "integrity": "sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==", + "optional": true, + "requires": { + "colors": ">=0.6.0", + "mime": "^1.2.9", + "optimist": ">=0.3.4" + } + }, + "nodemailer": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.8.0.tgz", + "integrity": "sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ==", + "optional": true + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "optional": true + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "devOptional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "devOptional": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", + "optional": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "optional": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", + "optional": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "devOptional": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "permessage-deflate": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/permessage-deflate/-/permessage-deflate-0.1.7.tgz", + "integrity": "sha512-EUNi/RIsyJ1P1u9QHFwMOUWMYetqlE22ZgGbad7YP856WF4BFF0B7DuNy6vEGsgNNud6c/SkdWzkne71hH8MjA==", + "optional": true, + "requires": { + "safe-buffer": "*" + } + }, + "pg": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", + "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "optional": true, + "requires": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-cloudflare": "^1.1.1", + "pg-connection-string": "^2.6.2", + "pg-pool": "^3.6.1", + "pg-protocol": "^1.6.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + } + }, + "pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "pg-connection-string": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", + "optional": true + }, + "pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "devOptional": true + }, + "pg-pool": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", + "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "optional": true, + "requires": {} + }, + "pg-protocol": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==", + "devOptional": true + }, + "pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "devOptional": true, + "requires": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + } + }, + "pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "optional": true, + "requires": { + "split2": "^4.1.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "optional": true + }, + "postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "devOptional": true + }, + "postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "devOptional": true + }, + "postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "devOptional": true + }, + "postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "devOptional": true, + "requires": { + "xtend": "^4.0.0" + } + }, + "preact": { + "version": "10.11.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz", + "integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==" + }, + "preact-render-to-string": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", + "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", + "requires": { + "pretty-format": "^3.8.0" + } + }, + "prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "optional": true, + "requires": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "optional": true + } + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" + }, + "probe-image-size": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", + "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", + "requires": { + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "optional": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "optional": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "optional": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true + } + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "devOptional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "optional": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "optional": true + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "optional": true + }, + "simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "optional": true, + "requires": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smogon": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/smogon/-/smogon-3.0.0.tgz", + "integrity": "sha512-F+Yo6yXqidabdvMqyI6rrXKejBMl0OOmgGyk5dctqeJx9fFmFUnK3bzkdUG/eaXX0S8m4hUb+WqieiHlAiQgUQ==", + "dev": true + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "optional": true + }, + "sql-template-strings": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/sql-template-strings/-/sql-template-strings-2.2.2.tgz", + "integrity": "sha512-UXhXR2869FQaD+GMly8jAMCRZ94nU5KcrFetZfWEMd+LVVG6y0ExgHAhatEcKZ/wk8YcKPdi+hiD2wm75lq3/Q==", + "optional": true + }, + "sqlite": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-3.0.6.tgz", + "integrity": "sha512-5SW7HcN+s3TyqpsxOujXhQDCRSCgsxdiU0peT/Y9CT5T0rAsGLwtpXcMyQ7OzOPQ4YUZ5XiGlrwuuQbszr2xtw==", + "optional": true, + "requires": { + "sql-template-strings": "^2.2.2", + "sqlite3": "^4.0.0" + } + }, + "sqlite3": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz", + "integrity": "sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==", + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.11.0" + } + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + }, + "stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", + "requires": { + "debug": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "devOptional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "devOptional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "devOptional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "optional": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "sucrase": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.29.0.tgz", + "integrity": "sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==", + "optional": true, + "requires": { + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "optional": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "optional": true + } + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "optional": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "optional": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "optional": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "optional": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "optional": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "optional": true + }, + "v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "devOptional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "optional": true + }, + "workerpool": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", + "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "devOptional": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "devOptional": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } } } diff --git a/package.json b/package.json index c62d3d31f99c..97613739752e 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,16 @@ { "name": "pokemon-showdown", "description": "The server for the Pokémon Showdown battle simulator", - "version": "0.11.7", + "version": "0.11.9", "main": "dist/sim/index.js", "dependencies": { "esbuild": "^0.16.10", + "mysql2": "^3.9.7", "preact": "^10.5.15", "preact-render-to-string": "^5.1.19", - "probe-image-size": "^5.0.0", - "sockjs": "^0.3.21" + "probe-image-size": "^7.2.3", + "sockjs": "^0.3.21", + "source-map-support": "^0.5.21" }, "optionalDependencies": { "better-sqlite3": "^7.6.2", @@ -17,7 +19,7 @@ "node-static": "^0.7.11", "nodemailer": "^6.4.6", "permessage-deflate": "^0.1.7", - "pg": "^8.8.0", + "pg": "^8.11.3", "sql-template-strings": "^2.2.2", "sqlite": "^3.0.6", "sucrase": "^3.15.0" @@ -26,7 +28,7 @@ "node-oom-heapdump": "^1.2.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "scripts": { "start": "node pokemon-showdown start", @@ -40,7 +42,8 @@ "test": "mocha", "posttest": "npm run tsc", "full-test": "npm run lint && npm run tsc && mocha --timeout 8000 --forbid-only -g \".*\"", - "postinstall": "npm run build" + "full-test-ci": "eslint --no-error-on-unmatched-pattern ${FILES} --max-warnings 0 && npm run tsc && (([ \"$SKIPSIMTESTS\" = true ] && mocha --timeout 8000 --forbid-only -g \".*\" --exclude \"test/{sim,random-battles}/**\") || mocha --timeout 8000 --forbid-only -g \".*\")", + "postinstall": "npm run build postinstall" }, "bin": "./pokemon-showdown", "homepage": "http://pokemonshowdown.com", @@ -54,11 +57,6 @@ "url": "http://guangcongluo.com" }, "contributors": [ - { - "name": "Cathy J. Fitzpatrick", - "email": "cathy@cathyjf.com", - "url": "https://cathyjf.com" - }, { "name": "Bill Meltsner", "email": "bill@meltsner.com", @@ -76,9 +74,9 @@ "@types/sockjs": "^0.3.33", "@typescript-eslint/eslint-plugin": "^5.8.0", "@typescript-eslint/parser": "^5.8.0", - "eslint": "^8.5.0", + "eslint": "8.5.0", "mocha": "^8.2.0", - "smogon": "^2.2.1", + "smogon": "^3.0.0", "typescript": "^5.0.4" } } diff --git a/pokemon-showdown b/pokemon-showdown index f5bea9b7369f..6a96085a4090 100755 --- a/pokemon-showdown +++ b/pokemon-showdown @@ -112,6 +112,7 @@ if (!process.argv[2] || /^[0-9]+$/.test(process.argv[2])) { case 'validate-team': { ensureBuilt(); + require('source-map-support/register'); var Teams = require('./dist/sim/teams.js').Teams; var TeamValidator = require('./dist/sim/team-validator.js').TeamValidator; var validator = TeamValidator.get(process.argv[3]); diff --git a/server/README.md b/server/README.md index 5ec2d11aa5d7..ed1635869466 100644 --- a/server/README.md +++ b/server/README.md @@ -11,7 +11,7 @@ Installing ./pokemon-showdown -(Requires Node.js v14+) +(Requires Node.js v16+) If your distro package manager has an old Node.js version, the simplest way to upgrade is `n` – usually no root necessary: @@ -67,13 +67,13 @@ If you truly want to host the client yourself, there is [a repository for the Po Setting up an Administrator account ------------------------------------------------------------------------ -Once your server is up, you probably want to make yourself an Administrator (&) on it. +Once your server is up, you probably want to make yourself an Administrator (~) on it. ### config/usergroups.csv To become an Administrator, create a file named `config/usergroups.csv` containing - USER,& + USER,~ Replace `USER` with the username that you would like to become an Administrator. Do not put a space between the comma and the ampersand. diff --git a/server/chat-commands/admin.ts b/server/chat-commands/admin.ts index def46c91965c..3f11448f1466 100644 --- a/server/chat-commands/admin.ts +++ b/server/chat-commands/admin.ts @@ -129,7 +129,7 @@ export const commands: Chat.ChatCommands = { return this.errorReply(`The PotD is already set to ${species.name}`); } if (!species.exists) return this.errorReply(`Pokemon "${target}" not found.`); - if (!Dex.species.getLearnset(species.id)) { + if (!Dex.species.getFullLearnset(species.id).length) { return this.errorReply(`That Pokemon has no learnset and cannot be used as the PotD.`); } Config.potd = species.id; @@ -140,7 +140,7 @@ export const commands: Chat.ChatCommands = { this.globalModlog(`POTD`, null, species.name); }, potdhelp: [ - `/potd [pokemon] - Set the Pokemon of the Day to the given [pokemon]. Requires: &`, + `/potd [pokemon] - Set the Pokemon of the Day to the given [pokemon]. Requires: ~`, ], /********************************************************* @@ -165,7 +165,7 @@ export const commands: Chat.ChatCommands = { }, htmlboxhelp: [ `/htmlbox [message] - Displays a message, parsing HTML code contained.`, - `!htmlbox [message] - Shows everyone a message, parsing HTML code contained. Requires: * # &`, + `!htmlbox [message] - Shows everyone a message, parsing HTML code contained. Requires: * # ~`, ], addhtmlbox(target, room, user, connection, cmd) { if (!target) return this.parse('/help ' + cmd); @@ -181,7 +181,7 @@ export const commands: Chat.ChatCommands = { return `/raw
${target}
`; }, addhtmlboxhelp: [ - `/addhtmlbox [message] - Shows everyone a message, parsing HTML code contained. Requires: * # &`, + `/addhtmlbox [message] - Shows everyone a message, parsing HTML code contained. Requires: * # ~`, ], addrankhtmlbox(target, room, user, connection, cmd) { room = this.requireRoom(); @@ -199,7 +199,7 @@ export const commands: Chat.ChatCommands = { room.sendRankedUsers(`|html|
${html}
`, rank as GroupSymbol); }, addrankhtmlboxhelp: [ - `/addrankhtmlbox [rank], [message] - Shows everyone with the specified rank or higher a message, parsing HTML code contained. Requires: * # &`, + `/addrankhtmlbox [rank], [message] - Shows everyone with the specified rank or higher a message, parsing HTML code contained. Requires: * # ~`, ], changeuhtml: 'adduhtml', adduhtml(target, room, user, connection, cmd) { @@ -223,10 +223,10 @@ export const commands: Chat.ChatCommands = { } }, adduhtmlhelp: [ - `/adduhtml [name], [message] - Shows everyone a message that can change, parsing HTML code contained. Requires: * # &`, + `/adduhtml [name], [message] - Shows everyone a message that can change, parsing HTML code contained. Requires: * # ~`, ], changeuhtmlhelp: [ - `/changeuhtml [name], [message] - Changes the message previously shown with /adduhtml [name]. Requires: * # &`, + `/changeuhtml [name], [message] - Changes the message previously shown with /adduhtml [name]. Requires: * # ~`, ], changerankuhtml: 'addrankuhtml', addrankuhtml(target, room, user, connection, cmd) { @@ -249,10 +249,10 @@ export const commands: Chat.ChatCommands = { room.sendRankedUsers(html, rank as GroupSymbol); }, addrankuhtmlhelp: [ - `/addrankuhtml [rank], [name], [message] - Shows everyone with the specified rank or higher a message that can change, parsing HTML code contained. Requires: * # &`, + `/addrankuhtml [rank], [name], [message] - Shows everyone with the specified rank or higher a message that can change, parsing HTML code contained. Requires: * # ~`, ], changerankuhtmlhelp: [ - `/changerankuhtml [rank], [name], [message] - Changes the message previously shown with /addrankuhtml [rank], [name]. Requires: * # &`, + `/changerankuhtml [rank], [name], [message] - Changes the message previously shown with /addrankuhtml [rank], [name]. Requires: * # ~`, ], deletenamecolor: 'setnamecolor', @@ -297,11 +297,11 @@ export const commands: Chat.ChatCommands = { }, setnamecolorhelp: [ `/setnamecolor OR /snc [username], [source name] - Set [username]'s name color to match the [source name]'s color.`, - `Requires: &`, + `Requires: ~`, ], deletenamecolorhelp: [ `/deletenamecolor OR /dnc [username] - Remove [username]'s namecolor.`, - `Requires: &`, + `Requires: ~`, ], pline(target, room, user) { @@ -313,7 +313,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(target); }, plinehelp: [ - `/pline [protocol lines] - Adds the given [protocol lines] to the current room. Requires: & console access`, + `/pline [protocol lines] - Adds the given [protocol lines] to the current room. Requires: ~ console access`, ], pminfobox(target, room, user, connection) { @@ -334,7 +334,7 @@ export const commands: Chat.ChatCommands = { targetUser.lastPM = user.id; user.lastPM = targetUser.id; }, - pminfoboxhelp: [`/pminfobox [user], [html]- PMs an [html] infobox to [user]. Requires * # &`], + pminfoboxhelp: [`/pminfobox [user], [html]- PMs an [html] infobox to [user]. Requires * # ~`], pmuhtmlchange: 'pmuhtml', pmuhtml(target, room, user, connection, cmd) { @@ -355,9 +355,9 @@ export const commands: Chat.ChatCommands = { targetUser.lastPM = user.id; user.lastPM = targetUser.id; }, - pmuhtmlhelp: [`/pmuhtml [user], [name], [html] - PMs [html] that can change to [user]. Requires * # &`], + pmuhtmlhelp: [`/pmuhtml [user], [name], [html] - PMs [html] that can change to [user]. Requires * # ~`], pmuhtmlchangehelp: [ - `/pmuhtmlchange [user], [name], [html] - Changes html that was previously PMed to [user] to [html]. Requires * # &`, + `/pmuhtmlchange [user], [name], [html] - Changes html that was previously PMed to [user] to [html]. Requires * # ~`, ], closehtmlpage: 'sendhtmlpage', @@ -368,7 +368,8 @@ export const commands: Chat.ChatCommands = { const closeHtmlPage = cmd === 'closehtmlpage'; - const {targetUser, rest} = this.requireUser(target); + const [targetStr, rest] = this.splitOne(target).map(str => str.trim()); + const targets = targetStr.split('|').map(u => u.trim()); let [pageid, content] = this.splitOne(rest); let selector: string | undefined; if (cmd === 'changehtmlpageselector') { @@ -381,56 +382,79 @@ export const commands: Chat.ChatCommands = { pageid = `${user.id}-${toID(pageid)}`; - if (targetUser.locked && !this.user.can('lock')) { - this.errorReply("This user is currently locked, so you cannot send them HTML."); - return false; - } + const successes: string[] = [], errors: string[] = []; - let targetConnections = []; - // find if a connection has specifically requested this page - for (const c of targetUser.connections) { - if (c.lastRequestedPage === pageid) { - targetConnections.push(c); + content = this.checkHTML(content); + + targets.forEach(targetUsername => { + const targetUser = Users.get(targetUsername); + if (!targetUser) return errors.push(`${targetUsername} [offline/misspelled]`); + + if (targetUser.locked && !this.user.can('lock')) { + return errors.push(`${targetUser.name} [locked]`); } - } - if (!targetConnections.length) { - // no connection has requested it - verify that we share a room - this.checkPMHTML(targetUser); - targetConnections = targetUser.connections; - } - content = this.checkHTML(content); + let targetConnections = []; + // find if a connection has specifically requested this page + for (const c of targetUser.connections) { + if (c.lastRequestedPage === pageid) { + targetConnections.push(c); + } + } + if (!targetConnections.length) { + // no connection has requested it - verify that we share a room + try { + this.checkPMHTML(targetUser); + } catch { + return errors.push(`${targetUser.name} [not in room / blocking PMs]`); + } + targetConnections = targetUser.connections; + } - for (const targetConnection of targetConnections) { - const context = new Chat.PageContext({ - user: targetUser, - connection: targetConnection, - pageid: `view-bot-${pageid}`, - }); - if (closeHtmlPage) { - context.send(`|deinit|`); - } else if (selector) { - context.send(`|selectorhtml|${selector}|${content}`); - } else { - context.title = `[${user.name}] ${pageid}`; - context.setHTML(content); + for (const targetConnection of targetConnections) { + const context = new Chat.PageContext({ + user: targetUser, + connection: targetConnection, + pageid: `view-bot-${pageid}`, + }); + if (closeHtmlPage) { + context.send(`|deinit|`); + } else if (selector) { + context.send(`|selectorhtml|${selector}|${content}`); + } else { + context.title = `[${user.name}] ${pageid}`; + context.setHTML(content); + } } - } + successes.push(targetUser.name); + }); if (closeHtmlPage) { - this.sendReply(`Closed the bot page ${pageid} for ${targetUser.name}.`); + if (successes.length) { + this.sendReply(`Closed the bot page ${pageid} for ${Chat.toListString(successes)}.`); + } + if (errors.length) { + this.errorReply(`Unable to close the bot page for ${Chat.toListString(errors)}.`); + } } else { - this.sendReply(`Sent ${targetUser.name}${selector ? ` the selector ${selector} on` : ''} the bot page ${pageid}.`); + if (successes.length) { + this.sendReply(`Sent ${Chat.toListString(successes)}${selector ? ` the selector ${selector} on` : ''} the bot page ${pageid}.`); + } + if (errors.length) { + this.errorReply(`Unable to send the bot page ${pageid} to ${Chat.toListString(errors)}.`); + } } + + if (!successes.length) return false; }, sendhtmlpagehelp: [ - `/sendhtmlpage [userid], [pageid], [html] - Sends [userid] the bot page [pageid] with the content [html]. Requires: * # &`, + `/sendhtmlpage [userid], [pageid], [html] - Sends [userid] the bot page [pageid] with the content [html]. Requires: * # ~`, ], changehtmlpageselectorhelp: [ - `/changehtmlpageselector [userid], [pageid], [selector], [html] - Sends [userid] the content [html] for the selector [selector] on the bot page [pageid]. Requires: * # &`, + `/changehtmlpageselector [userid], [pageid], [selector], [html] - Sends [userid] the content [html] for the selector [selector] on the bot page [pageid]. Requires: * # ~`, ], closehtmlpagehelp: [ - `/closehtmlpage [userid], [pageid], - Closes the bot page [pageid] for [userid]. Requires: * # &`, + `/closehtmlpage [userid], [pageid], - Closes the bot page [pageid] for [userid]. Requires: * # ~`, ], highlighthtmlpage(target, room, user) { @@ -473,15 +497,8 @@ export const commands: Chat.ChatCommands = { room = this.requireRoom(); this.checkCan('addhtml', null, room); - const {targetUser, rest} = this.requireUser(target); - - if (targetUser.locked && !this.user.can('lock')) { - throw new Chat.ErrorMessage("This user is currently locked, so you cannot send them private HTML."); - } - - if (!(targetUser.id in room.users)) { - throw new Chat.ErrorMessage("You cannot send private HTML to users who are not in this room."); - } + const [targetStr, rest] = this.splitOne(target).map(str => str.trim()); + const targets = targetStr.split('|').map(u => u.trim()); let html: string; let messageType: string; @@ -499,18 +516,38 @@ export const commands: Chat.ChatCommands = { html = this.checkHTML(html); if (!html) return this.parse('/help sendprivatehtmlbox'); - html = `${Utils.html`
[Private from ${user.name}]
`}${Chat.collapseLineBreaksHTML(html)}`; if (plainHtml) html = `
${html}
`; - targetUser.sendTo(room, `|${messageType}|${html}`); + const successes: string[] = [], errors: string[] = []; + + targets.forEach(targetUsername => { + const targetUser = Users.get(targetUsername); + + if (!targetUser) return errors.push(`${targetUsername} [offline/misspelled]`); + + if (targetUser.locked && !this.user.can('lock')) { + return errors.push(`${targetUser.name} [locked]`); + } - this.sendReply(`Sent private HTML to ${targetUser.name}.`); + if (!(targetUser.id in room!.users)) { + return errors.push(`${targetUser.name} [not in room]`); + } + + successes.push(targetUser.name); + targetUser.sendTo(room, `|${messageType}|${html}`); + }); + + + if (successes.length) this.sendReply(`Sent private HTML to ${Chat.toListString(successes)}.`); + if (errors.length) this.errorReply(`Unable to send private HTML to ${Chat.toListString(errors)}.`); + + if (!successes.length) return false; }, sendprivatehtmlboxhelp: [ - `/sendprivatehtmlbox [userid], [html] - Sends [userid] the private [html]. Requires: * # &`, - `/sendprivateuhtml [userid], [name], [html] - Sends [userid] the private [html] that can change. Requires: * # &`, - `/changeprivateuhtml [userid], [name], [html] - Changes the message previously sent with /sendprivateuhtml [userid], [name], [html]. Requires: * # &`, + `/sendprivatehtmlbox [userid], [html] - Sends [userid] the private [html]. Requires: * # ~`, + `/sendprivateuhtml [userid], [name], [html] - Sends [userid] the private [html] that can change. Requires: * # ~`, + `/changeprivateuhtml [userid], [name], [html] - Changes the message previously sent with /sendprivateuhtml [userid], [name], [html]. Requires: * # ~`, ], botmsg(target, room, user, connection) { @@ -530,7 +567,7 @@ export const commands: Chat.ChatCommands = { message = this.checkChat(message); if (!message) return; - Chat.sendPM(`/botmsg ${message}`, user, targetUser, targetUser); + Chat.PrivateMessages.send(`/botmsg ${message}`, user, targetUser, targetUser); }, botmsghelp: [`/botmsg [username], [message] - Send a private message to a bot without feedback. For room bots, must use in the room the bot is auth in.`], @@ -557,7 +594,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`||[Main process] RSS: ${results[0]}, Heap: ${results[1]} / ${results[2]}`); }, memoryusagehelp: [ - `/memoryusage OR /memusage - Get the current memory usage of the server. Requires: &`, + `/memoryusage OR /memusage - Get the current memory usage of the server. Requires: ~`, ], forcehotpatch: 'hotpatch', @@ -745,6 +782,8 @@ export const commands: Chat.ChatCommands = { void Rooms.PM.respawn(); // respawn datasearch processes (crashes otherwise, since the Dex data in the PM can be out of date) void Chat.plugins.datasearch?.PM?.respawn(); + // update teams global + global.Teams = require('../../sim/teams').Teams; // broadcast the new formats list to clients Rooms.global.sendAll(Rooms.global.formatListText); this.sendReply("DONE"); @@ -763,6 +802,8 @@ export const commands: Chat.ChatCommands = { this.sendReply("Hotpatching validator..."); void TeamValidatorAsync.PM.respawn(); + // update teams global too while we're at it + global.Teams = require('../../sim/teams').Teams; this.sendReply("DONE. Any battles started after now will have teams be validated according to the new code."); } else if (target === 'punishments') { if (lock['punishments']) { @@ -875,8 +916,8 @@ export const commands: Chat.ChatCommands = { ); }, nohotpatchhelp: [ - `/nohotpatch [chat|formats|battles|validator|tournaments|punishments|modlog|all] [reason] - Disables hotpatching the specified part of the simulator. Requires: &`, - `/allowhotpatch [chat|formats|battles|validator|tournaments|punishments|modlog|all] [reason] - Enables hotpatching the specified part of the simulator. Requires: &`, + `/nohotpatch [chat|formats|battles|validator|tournaments|punishments|modlog|all] [reason] - Disables hotpatching the specified part of the simulator. Requires: ~`, + `/allowhotpatch [chat|formats|battles|validator|tournaments|punishments|modlog|all] [reason] - Enables hotpatching the specified part of the simulator. Requires: ~`, ], async processes(target, room, user) { @@ -972,7 +1013,7 @@ export const commands: Chat.ChatCommands = { this.sendReplyBox(buf); }, processeshelp: [ - `/processes - Get information about the running processes on the server. Requires: &.`, + `/processes - Get information about the running processes on the server. Requires: ~.`, ], async savelearnsets(target, room, user, connection) { @@ -982,7 +1023,7 @@ export const commands: Chat.ChatCommands = { Object.entries(Dex.data.Learnsets).map(([id, entry]) => ( `\t${id}: {learnset: {\n` + Utils.sortBy( - Object.entries(Dex.species.getLearnsetData(id as ID)), + Object.entries(Dex.species.getLearnsetData(id as ID).learnset!), ([moveid]) => moveid ).map(([moveid, sources]) => ( `\t\t${moveid}: ["` + sources.join(`", "`) + `"],\n` @@ -993,7 +1034,7 @@ export const commands: Chat.ChatCommands = { this.sendReply("learnsets.js saved."); }, savelearnsetshelp: [ - `/savelearnsets - Saves the learnset list currently active on the server. Requires: &`, + `/savelearnsets - Saves the learnset list currently active on the server. Requires: ~`, ], toggleripgrep(target, room, user) { @@ -1001,7 +1042,7 @@ export const commands: Chat.ChatCommands = { Config.disableripgrep = !Config.disableripgrep; this.addGlobalModAction(`${user.name} ${Config.disableripgrep ? 'disabled' : 'enabled'} Ripgrep-related functionality.`); }, - toggleripgrephelp: [`/toggleripgrep - Disable/enable all functionality depending on Ripgrep. Requires: &`], + toggleripgrephelp: [`/toggleripgrep - Disable/enable all functionality depending on Ripgrep. Requires: ~`], disablecommand(target, room, user) { this.checkCan('makeroom'); @@ -1024,7 +1065,7 @@ export const commands: Chat.ChatCommands = { this.addGlobalModAction(`${user.name} disabled the command /${fullCmd}.`); this.globalModlog(`DISABLECOMMAND`, null, target); }, - disablecommandhelp: [`/disablecommand [command] - Disables the given [command]. Requires: &`], + disablecommandhelp: [`/disablecommand [command] - Disables the given [command]. Requires: ~`], widendatacenters: 'adddatacenters', adddatacenters() { @@ -1053,10 +1094,10 @@ export const commands: Chat.ChatCommands = { curRoom.addRaw(`
${innerHTML}
`).update(); } for (const u of Users.users.values()) { - if (u.connected) u.send(`|pm|&|${u.tempGroup}${u.name}|/raw
${innerHTML}
`); + if (u.connected) u.send(`|pm|~|${u.tempGroup}${u.name}|/raw
${innerHTML}
`); } }, - disableladderhelp: [`/disableladder - Stops all rated battles from updating the ladder. Requires: &`], + disableladderhelp: [`/disableladder - Stops all rated battles from updating the ladder. Requires: ~`], enableladder(target, room, user) { this.checkCan('disableladder'); @@ -1077,10 +1118,10 @@ export const commands: Chat.ChatCommands = { curRoom.addRaw(`
${innerHTML}
`).update(); } for (const u of Users.users.values()) { - if (u.connected) u.send(`|pm|&|${u.tempGroup}${u.name}|/raw
${innerHTML}
`); + if (u.connected) u.send(`|pm|~|${u.tempGroup}${u.name}|/raw
${innerHTML}
`); } }, - enableladderhelp: [`/enable - Allows all rated games to update the ladder. Requires: &`], + enableladderhelp: [`/enable - Allows all rated games to update the ladder. Requires: ~`], lockdown(target, room, user) { this.checkCan('lockdown'); @@ -1096,7 +1137,7 @@ export const commands: Chat.ChatCommands = { this.stafflog(`${user.name} used /lockdown`); }, lockdownhelp: [ - `/lockdown - locks down the server, which prevents new battles from starting so that the server can eventually be restarted. Requires: &`, + `/lockdown - locks down the server, which prevents new battles from starting so that the server can eventually be restarted. Requires: ~`, ], autolockdown: 'autolockdownkill', @@ -1120,8 +1161,8 @@ export const commands: Chat.ChatCommands = { } }, autolockdownkillhelp: [ - `/autolockdownkill on - Turns on the setting to enable the server to automatically kill itself upon the final battle finishing. Requires &`, - `/autolockdownkill off - Turns off the setting to enable the server to automatically kill itself upon the final battle finishing. Requires &`, + `/autolockdownkill on - Turns on the setting to enable the server to automatically kill itself upon the final battle finishing. Requires ~`, + `/autolockdownkill off - Turns off the setting to enable the server to automatically kill itself upon the final battle finishing. Requires ~`, ], prelockdown(target, room, user) { @@ -1130,7 +1171,7 @@ export const commands: Chat.ChatCommands = { this.privateGlobalModAction(`${user.name} used /prelockdown (disabled tournaments in preparation for server restart)`); }, - prelockdownhelp: [`/prelockdown - Prevents new tournaments from starting so that the server can be restarted. Requires: &`], + prelockdownhelp: [`/prelockdown - Prevents new tournaments from starting so that the server can be restarted. Requires: ~`], slowlockdown(target, room, user) { this.checkCan('lockdown'); @@ -1141,7 +1182,7 @@ export const commands: Chat.ChatCommands = { }, slowlockdownhelp: [ `/slowlockdown - Locks down the server, but disables the automatic restart after all battles end.`, - `Requires: &`, + `Requires: ~`, ], crashfixed: 'endlockdown', @@ -1163,7 +1204,7 @@ export const commands: Chat.ChatCommands = { curRoom.addRaw(message).update(); } for (const curUser of Users.users.values()) { - curUser.send(`|pm|&|${curUser.tempGroup}${curUser.name}|/raw ${message}`); + curUser.send(`|pm|~|${curUser.tempGroup}${curUser.name}|/raw ${message}`); } } else { this.sendReply("Preparation for the server shutdown was canceled."); @@ -1173,8 +1214,8 @@ export const commands: Chat.ChatCommands = { this.stafflog(`${user.name} used /endlockdown`); }, endlockdownhelp: [ - `/endlockdown - Cancels the server restart and takes the server out of lockdown state. Requires: &`, - `/crashfixed - Ends the active lockdown caused by a crash without the need of a restart. Requires: &`, + `/endlockdown - Cancels the server restart and takes the server out of lockdown state. Requires: ~`, + `/crashfixed - Ends the active lockdown caused by a crash without the need of a restart. Requires: ~`, ], emergency(target, room, user) { @@ -1191,7 +1232,7 @@ export const commands: Chat.ChatCommands = { this.stafflog(`${user.name} used /emergency.`); }, emergencyhelp: [ - `/emergency - Turns on emergency mode and enables extra logging. Requires: &`, + `/emergency - Turns on emergency mode and enables extra logging. Requires: ~`, ], endemergency(target, room, user) { @@ -1208,7 +1249,29 @@ export const commands: Chat.ChatCommands = { this.stafflog(`${user.name} used /endemergency.`); }, endemergencyhelp: [ - `/endemergency - Turns off emergency mode. Requires: &`, + `/endemergency - Turns off emergency mode. Requires: ~`, + ], + + remainingbattles() { + this.checkCan('lockdown'); + + if (!Rooms.global.lockdown) { + return this.errorReply("The server is not under lockdown right now."); + } + + const battleRooms = [...Rooms.rooms.values()].filter(x => x.battle?.rated && !x.battle?.ended); + let buf = `Total remaining rated battles: ${battleRooms.length}`; + if (battleRooms.length > 10) buf += `
View all battles`; + for (const battle of battleRooms) { + buf += `
`; + buf += `${battle.title}`; + if (battle.settings.isPrivate) buf += ' (Private)'; + } + if (battleRooms.length > 10) buf += `
`; + this.sendReplyBox(buf); + }, + remainingbattleshelp: [ + `/remainingbattles - View a list of the remaining battles during lockdown. Requires: ~`, ], async savebattles(target, room, user) { @@ -1238,7 +1301,7 @@ export const commands: Chat.ChatCommands = { Rooms.global.lockdown = true; // we don't want more battles starting while we save for (const u of Users.users.values()) { u.send( - `|pm|&|${u.getIdentity()}|/raw
The server is restarting soon.
` + + `|pm|~|${u.getIdentity()}|/raw
The server is restarting soon.
` + `While battles are being saved, no more can be started. If you're in a battle, it will be paused during saving.
` + `After the restart, you will be able to resume your battles from where you left off.` ); @@ -1265,7 +1328,7 @@ export const commands: Chat.ChatCommands = { }, killhelp: [ `/kill - kills the server. Use the argument \`nosave\` to prevent the saving of battles.`, - ` If this argument is used, the server must be in lockdown. Requires: &`, + ` If this argument is used, the server must be in lockdown. Requires: ~`, ], loadbanlist(target, room, user, connection) { @@ -1278,16 +1341,21 @@ export const commands: Chat.ChatCommands = { ); }, loadbanlisthelp: [ - `/loadbanlist - Loads the bans located at ipbans.txt. The command is executed automatically at startup. Requires: &`, + `/loadbanlist - Loads the bans located at ipbans.txt. The command is executed automatically at startup. Requires: ~`, ], refreshpage(target, room, user) { this.checkCan('lockdown'); + if (user.lastCommand !== 'refreshpage') { + user.lastCommand = 'refreshpage'; + this.errorReply(`Are you sure you wish to refresh the page for every user online?`); + return this.errorReply(`If you are sure, please type /refreshpage again to confirm.`); + } Rooms.global.sendAll('|refresh|'); this.stafflog(`${user.name} used /refreshpage`); }, refreshpagehelp: [ - `/refreshpage - refreshes the page for every user online. Requires: &`, + `/refreshpage - refreshes the page for every user online. Requires: ~`, ], async updateserver(target, room, user, connection) { @@ -1333,7 +1401,7 @@ export const commands: Chat.ChatCommands = { if (err) { Rooms.global.notifyRooms( ['staff', 'development'], - `|c|&|/log ${user.name} used /updateloginserver - but something failed while updating.` + `|c|${user.getIdentity()}|/log ${user.name} used /updateloginserver - but something failed while updating.` ); return this.errorReply(err.message + '\n' + err.stack); } @@ -1350,13 +1418,47 @@ export const commands: Chat.ChatCommands = { this.errorReply(`FAILED. Conflicts were found while updating - the restart was aborted.`); } Rooms.global.notifyRooms( - ['staff', 'development'], `|c|&|/log ${message}` + ['staff', 'development'], `|c|${user.getIdentity()}|/log ${message}` ); }, updateloginserverhelp: [ `/updateloginserver - Updates and restarts the loginserver. Requires: console access`, ], + async updateclient(target, room, user) { + this.canUseConsole(); + this.sendReply('Restarting...'); + const [result, err] = await LoginServer.request('rebuildclient', { + full: toID(target) === 'full', + }); + if (err) { + Rooms.global.notifyRooms( + ['staff', 'development'], + `|c|${user.getIdentity()}|/log ${user.name} used /updateclient - but something failed while updating.` + ); + return this.errorReply(err.message + '\n' + err.stack); + } + if (!result) return this.errorReply('No result received.'); + this.stafflog(`[o] ${result.success || ""} [e] ${result.actionerror || ""}`); + if (result.actionerror) { + return this.errorReply(result.actionerror); + } + let message = `${user.name} used /updateclient`; + if (result.updated) { + this.sendReply(`DONE. Client updated.`); + } else { + message += ` - but something failed while updating.`; + this.errorReply(`FAILED. Conflicts were found while updating.`); + } + Rooms.global.notifyRooms( + ['staff', 'development'], `|c|${user.getIdentity()}|/log ${message}` + ); + }, + updateclienthelp: [ + `/updateclient [full] - Update the client source code. Provide the argument 'full' to make it a full rebuild.`, + `Requires: ~ console access`, + ], + async rebuild() { this.canUseConsole(); const [, , stderr] = await bash('node ./build', this); @@ -1378,7 +1480,7 @@ export const commands: Chat.ChatCommands = { this.runBroadcast(); this.sendReply(`${stdout}${stderr}`); }, - bashhelp: [`/bash [command] - Executes a bash command on the server. Requires: & console access`], + bashhelp: [`/bash [command] - Executes a bash command on the server. Requires: ~ console access`], async eval(target, room, user, connection) { this.canUseConsole(); @@ -1423,7 +1525,7 @@ export const commands: Chat.ChatCommands = { } }, evalhelp: [ - `/eval [code] - Evaluates the code given and shows results. Requires: & console access.`, + `/eval [code] - Evaluates the code given and shows results. Requires: ~ console access.`, ], async evalsql(target, room) { @@ -1505,7 +1607,7 @@ export const commands: Chat.ChatCommands = { }, evalsqlhelp: [ `/evalsql [database], [query] - Evaluates the given SQL [query] in the given [database].`, - `Requires: & console access`, + `Requires: ~ console access`, ], evalbattle(target, room, user, connection) { @@ -1519,7 +1621,7 @@ export const commands: Chat.ChatCommands = { void room.battle.stream.write(`>eval ${target.replace(/\n/g, '\f')}`); }, evalbattlehelp: [ - `/evalbattle [code] - Evaluates the code in the battle stream of the current room. Requires: & console access.`, + `/evalbattle [code] - Evaluates the code in the battle stream of the current room. Requires: ~ console access.`, ], ebat: 'editbattle', diff --git a/server/chat-commands/avatars.tsx b/server/chat-commands/avatars.tsx index b38aa5af6607..1c17bfc5ccc7 100644 --- a/server/chat-commands/avatars.tsx +++ b/server/chat-commands/avatars.tsx @@ -202,7 +202,7 @@ export const Avatars = new class { const entry = customAvatars[user.id]; if (entry?.notNotified) { user.send( - `|pm|&|${user.getIdentity()}|/raw ` + + `|pm|~|${user.getIdentity()}|/raw ` + Chat.html`${<>

You have a new custom avatar! @@ -529,7 +529,7 @@ const OFFICIAL_AVATARS = new Set([ ]); const OFFICIAL_AVATARS_BELIOT419 = new Set([ - 'acerola', 'aetheremployee', 'aetheremployeef', 'aetherfoundation', 'aetherfoundationf', 'anabel', + 'acerola', 'aetheremployee', 'aetheremployeef', 'aetherfoundation', 'aetherfoundationf', 'anabel-gen7', 'beauty-gen7', 'blue-gen7', 'burnet', 'colress-gen7', 'dexio', 'elio', 'faba', 'gladion-stance', 'gladion', 'grimsley-gen7', 'hapu', 'hau-stance', 'hau', 'hiker-gen7', 'ilima', 'kahili', 'kiawe', 'kukui-stand', 'kukui', 'lana', 'lass-gen7', 'lillie-z', 'lillie', 'lusamine-nihilego', 'lusamine', @@ -553,7 +553,7 @@ const OFFICIAL_AVATARS_BRUMIRAGE = new Set([ 'mai', 'marnie', 'may-contest', 'melony', 'milo', 'mina-lgpe', 'mustard', 'mustard-master', 'nessa', 'oleana', 'opal', 'peony', 'pesselle', 'phoebe-gen6', 'piers', 'raihan', 'rei', 'rose', 'sabi', 'sada-ai', 'sanqua', 'shielbert', 'sonia', 'sonia-professor', 'sordward', 'sordward-shielbert', 'tateandliza-gen6', - 'turo-ai', 'victor', 'victor-dojo', 'volo', 'yellgrunt', 'yellgruntf', 'zisu', + 'turo-ai', 'victor', 'victor-dojo', 'volo', 'yellgrunt', 'yellgruntf', 'zisu', 'miku-flying', 'miku-ground', ]); const OFFICIAL_AVATARS_ZACWEAVILE = new Set([ @@ -620,21 +620,49 @@ const OFFICIAL_AVATARS_KYLEDOVE = new Set([ 'beauty-gen9', 'bede-masters', 'calem-masters', 'clerk-unite', 'dawn-masters3', 'dendra', 'diantha-masters2', 'erbie-unite', 'hilbert-masters2', 'hop-masters', 'jasmine-masters2', 'lisia-masters', 'marnie-masters3', 'matt', 'n-masters3', 'paulo-masters', 'phorus-unite', 'pokemaniac-gen9', 'serena-masters3', 'tabitha', 'tina-masters', 'trevor', - 'whitney-masters', 'youngster-gen9', 'zirco-unite', + 'whitney-masters', 'youngster-gen9', 'zirco-unite', 'alec-anime', 'bodybuilder-gen9', 'bodybuilderf-gen9', + 'carmine-festival', 'carmine', 'diamondclanmember', 'dragontamer-gen9', 'elesa-masters2', 'kieran-festival', 'kieran', + 'laventon2', 'liza-masters', 'mallow-masters', 'musician-gen9', 'nemona-s', 'officeworker-gen9', 'officeworkerf-gen9', + 'pearlclanmember', 'raifort', 'saguaro', 'salvatore', 'scientist-gen9', 'shauna-masters', 'silver-masters', + 'steven-masters4', 'tate-masters', 'waiter-gen9', 'waitress-gen9', + 'acerola-masters2', 'aetherfoundation2', 'amarys', 'artist-gen9', 'backpacker-gen9', 'blackbelt-gen9', 'blue-masters2', + 'brendan-rs', 'briar', 'cabbie-gen9', 'caretaker', 'clair-masters', 'clive-v', 'cook-gen9', 'courier', 'crispin', 'cyrano', + 'delinquent-gen9', 'delinquentf-gen9', 'delinquentf2-gen9', 'drayton', 'flaregrunt', 'flaregruntf', 'florian-festival', + 'gloria-league', 'gloria-tundra', 'hau-masters', 'hiker-gen9', 'hyde', 'janitor-gen9', 'juliana-festival', + 'kieran-champion', 'lacey', 'lana-masters', 'leaf-masters2', 'liza-gen6', 'lysandre-masters', 'may-e', 'may-rs', 'miku-fire', + 'miku-grass', 'miku-psychic', 'miku-water', 'mina-masters', 'mustard-champion', 'nate-masters', 'nate-pokestar', 'ogreclan', + 'perrin', 'piers-masters', 'red-masters3', 'rosa-pokestar2', 'roxanne-masters', 'roxie-masters', 'ruffian', 'sycamore-masters', + 'tate-gen6', 'tucker', 'victor-league', 'victor-tundra', 'viola-masters', 'wallace-masters', 'worker-gen9', 'yukito-hideko', + 'aarune', 'adaman-masters', 'allister-unmasked', 'anabel', 'aquagrunt-rse', 'aquagruntf-rse', 'aquasuit', 'archie-usum', + 'arlo', 'barry-masters', 'blanche-casual', 'blanche', 'brandon', 'candela-casual', 'candela', 'candice-masters', 'christoph', + 'cliff', 'curtis', 'dana', 'gladion-masters', 'greta', 'gurkinn', 'heath', 'irida-masters', 'jamie', 'magmagrunt-rse', + 'magmagruntf-rse', 'magmasuit', 'magnus', 'mateo', 'mirror', 'mohn-anime', 'mohn', 'mom-paldea', 'mom-unova', 'mrbriney', + 'mrstone', 'nancy', 'nate-pokestar3', 'neroli', 'peony-league', 'phil', 'player-go', 'playerf-go', 'rhi', 'rita', 'river', + 'rosa-pokestar3', 'sabrina-frlg', 'selene-masters', 'sierra', 'spark-casual', 'spark', 'spenser', 'toddsnap', 'toddsnap2', + 'victor-masters', 'vince', 'wally-rse', 'willow-casual', 'willow', 'yancy', 'zinnia-masters', + 'acerola-masters3', 'bianca-masters', 'cheren-masters', 'gardenia-masters', ]); const OFFICIAL_AVATARS_HYOOPPA = new Set([ - 'brendan', 'maxie-gen6', 'may', + 'brendan', 'brendan-e', 'maxie-gen6', 'may', ]); const OFFICIAL_AVATARS_GRAPO = new Set([ - 'glacia', 'peonia', 'skyla-masters2', 'volo-ginkgo', + 'glacia', 'peonia', 'phoebe-masters', 'rosa-masters3', 'scottie-masters', 'skyla-masters2', 'volo-ginkgo', ]); const OFFICIAL_AVATARS_FIFTY = new Set([ 'rose-zerosuit', ]); +const OFFICIAL_AVATARS_HORO = new Set([ + 'florian-bb', 'juliana-bb', 'red-lgpe', +]); + +const OFFICIAL_AVATARS_SELENA = new Set([ + 'kris', +]); + for (const avatar of OFFICIAL_AVATARS_BELIOT419) OFFICIAL_AVATARS.add(avatar); for (const avatar of OFFICIAL_AVATARS_GNOMOWLADNY) OFFICIAL_AVATARS.add(avatar); for (const avatar of OFFICIAL_AVATARS_BRUMIRAGE) OFFICIAL_AVATARS.add(avatar); @@ -643,6 +671,8 @@ for (const avatar of OFFICIAL_AVATARS_KYLEDOVE) OFFICIAL_AVATARS.add(avatar); for (const avatar of OFFICIAL_AVATARS_HYOOPPA) OFFICIAL_AVATARS.add(avatar); for (const avatar of OFFICIAL_AVATARS_GRAPO) OFFICIAL_AVATARS.add(avatar); for (const avatar of OFFICIAL_AVATARS_FIFTY) OFFICIAL_AVATARS.add(avatar); +for (const avatar of OFFICIAL_AVATARS_HORO) OFFICIAL_AVATARS.add(avatar); +for (const avatar of OFFICIAL_AVATARS_SELENA) OFFICIAL_AVATARS.add(avatar); export const commands: Chat.ChatCommands = { avatar(target, room, user) { @@ -678,7 +708,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`|raw|(${this.tr`Artist: `}ZacWeavile)`); } if (OFFICIAL_AVATARS_KYLEDOVE.has(avatar)) { - this.sendReply(`|raw|(${this.tr`Artist: `}Kyledove)`); + this.sendReply(`|raw|(${this.tr`Artist: `}kyledove)`); } if (OFFICIAL_AVATARS_HYOOPPA.has(avatar)) { this.sendReply(`|raw|(${this.tr`Artist: `}hyo-oppa)`); @@ -689,6 +719,12 @@ export const commands: Chat.ChatCommands = { if (OFFICIAL_AVATARS_FIFTY.has(avatar)) { this.sendReply(`|raw|(${this.tr`Artist: `}Fifty Shades of Rez)`); } + if (OFFICIAL_AVATARS_HORO.has(avatar)) { + this.sendReply(`|raw|(${this.tr`Artist: `}Horo)`); + } + if (OFFICIAL_AVATARS_SELENA.has(avatar)) { + this.sendReply(`|raw|(${this.tr`Artist: `}Selena)`); + } } }, avatarhelp: [`/avatar [avatar name or number] - Change your trainer sprite.`], @@ -750,7 +786,7 @@ export const commands: Chat.ChatCommands = { avatarshelp: [ `/avatars - Explains how to change avatars.`, `/avatars [username] - Shows custom avatars available to a user.`, - `!avatars - Show everyone that information. Requires: + % @ # &`, + `!avatars - Show everyone that information. Requires: + % @ # ~`, ], addavatar() { @@ -762,6 +798,7 @@ export const commands: Chat.ChatCommands = { `/groupavatar [username], [avatar] - Gives a user an allowed (group) avatar.`, `/removeavatar [username], [avatar] - Removes access to an avatar from a user.`, `/removeavatar [username] - Removes access to all custom avatars from a user.`, + `/moveavatars [oldname], [newname] - Moves access to all custom avatars from oldname to newname.`, AVATAR_FORMATS_MESSAGE, ], @@ -903,7 +940,7 @@ export const commands: Chat.ChatCommands = { Avatars.tryNotify(Users.get(to)); }, moveavatarshelp: [ - `/moveavatars [from user], [to user] - Move all of the custom avatars from [from user] to [to user]. Requires: &`, + `/moveavatars [from user], [to user] - Move all of the custom avatars from [from user] to [to user]. Requires: ~`, ], async masspavatar(target, room, user) { diff --git a/server/chat-commands/core.ts b/server/chat-commands/core.ts index 02650b618254..9334f78074c6 100644 --- a/server/chat-commands/core.ts +++ b/server/chat-commands/core.ts @@ -16,7 +16,7 @@ /* eslint no-else-return: "error" */ import {Utils} from '../../lib'; import type {UserSettings} from '../users'; -import type {GlobalPermission} from '../user-groups'; +import type {GlobalPermission, RoomPermission} from '../user-groups'; export const crqHandlers: {[k: string]: Chat.CRQHandler} = { userdetails(target, user, trustable) { @@ -131,6 +131,50 @@ export const crqHandlers: {[k: string]: Chat.CRQHandler} = { } return roominfo; }, + fullformat(target, user, trustable) { + if (!trustable) return false; + + if (target.length > 225) { + return null; + } + const targetRoom = Rooms.get(target); + if (!targetRoom?.battle?.playerTable[user.id]) { + return null; + } + + return targetRoom.battle.format; + }, + cmdsearch(target, user, trustable) { + // in no world should ths be a thing. our longest command name is 37 chars + if (target.length > 40) return null; + const cmdPrefix = target.charAt(0); + if (!['/', '!'].includes(cmdPrefix)) return null; + target = toID(target.slice(1)); + + const results = []; + for (const command of Chat.allCommands()) { + if (cmdPrefix === '!' && !command.broadcastable) continue; + const req = command.requiredPermission as GlobalPermission; + if (!!req && + !(command.hasRoomPermissions ? !!this.room && user.can(req as RoomPermission, null, this.room) : user.can(req)) + ) { + continue; + } + const cmds = [ + command.fullCmd, + ...command.aliases.map(x => command.fullCmd.replace(command.cmd, `${x}`)), + ]; + for (const cmd of cmds) { + if (toID(cmd).startsWith(target)) { + results.push(cmdPrefix + cmd); + break; + } + } + // limit number of results to prevent spam + if (results.length >= 20) break; + } + return results; + }, }; export const commands: Chat.ChatCommands = { @@ -229,6 +273,28 @@ export const commands: Chat.ChatCommands = { }, noreplyhelp: [`/noreply [command] - Runs the command without displaying the response.`], + async linksmogon(target, room, user) { + if (Config.smogonauth && !Users.globalAuth.atLeast(user, Config.smogonauth)) { + throw new Chat.ErrorMessage("Access denied."); + } + if (!user.registered) { + throw new Chat.ErrorMessage( + "You must be registered in order to use this command. If you just registered, please refresh and try again." + ); + } + this.sendReply("Linking..."); + const response = await LoginServer.request("smogon/validate", { + username: user.id, + }); + const name = response[0]?.signed_username; + if (response[1] || !name) { + throw new Chat.ErrorMessage("Error while verifying username: " + (response[1]?.message || "malformed name received")); + } + const link = `https://www.smogon.com/tools/connect-ps-account/${user.id}/${name}`; + user.send(`|openpage|${link}`); + this.sendReply(`|html|If the page failed to open, you may link your Smogon and PS accounts by clicking this link.`); + }, + async msgroom(target, room, user, connection) { const [targetId, message] = Utils.splitFirst(target, ',').map(i => i.trim()); if (!targetId || !message) { @@ -272,6 +338,16 @@ export const commands: Chat.ChatCommands = { this.pmTarget = null; this.room = null; } else if (!targetUser) { + if (Chat.PrivateMessages.offlineIsEnabled) { + if (user.lastCommand === 'pm') { + // don't delete lastCommand so they can just keep sending pms + return this.parse(`/offlinemsg ${targetUsername},${message}`); + } + user.lastCommand = 'pm'; + return this.errorReply( + this.tr`User ${targetUsername} is offline. Send the message again to confirm. If you are using /msg, use /offlinemsg instead.` + ); + } let error = this.tr`User ${targetUsername} not found. Did you misspell their name?`; error = `|pm|${this.user.getIdentity()}| ${targetUsername}|/error ${error}`; connection.send(error); @@ -282,23 +358,93 @@ export const commands: Chat.ChatCommands = { } if (targetUser && !targetUser.connected) { - return this.errorReply(this.tr`User ${targetUsername} is offline.`); + if (Chat.PrivateMessages.offlineIsEnabled) { + if (user.lastCommand === 'pm') { + // don't delete lastCommand so they can just keep sending pms + return this.parse(`/offlinemsg ${targetUser.getLastId()},${message}`); + } + user.lastCommand = 'pm'; + return this.errorReply( + this.tr`User ${targetUsername} is offline. Send the message again to confirm. If you are using /msg, use /offlinemsg instead.` + ); + } + return this.errorReply(`${targetUsername} is offline.`); } return this.parse(message); }, msghelp: [`/msg OR /whisper OR /w [username], [message] - Send a private message.`], + offlinepm: 'offlinemsg', + opm: 'offlinemsg', + offlinewhisper: 'offlinemsg', + ofw: 'offlinemsg', + async offlinemsg(target, room, user) { + target = target.trim(); + if (!target) return this.parse('/help offlinemsg'); + if (!Chat.PrivateMessages.offlineIsEnabled) { + return this.errorReply(`Offline private messages have been disabled.`); + } + let [username, message] = Utils.splitFirst(target, ',').map(i => i.trim()); + const userid = toID(username); + Chat.PrivateMessages.checkCanPM(user, userid); + if (!userid || !message) { + return this.parse('/help offlinemsg'); + } + if (Chat.parseCommand(message)) { + return this.errorReply(`You cannot send commands in offline PMs.`); + } + if (userid === user.id) { + return this.errorReply(`You cannot send offline PMs to yourself.`); + } else if (userid.startsWith('guest')) { + return this.errorReply('You cannot send offline PMs to guests.'); + } + if (Users.get(userid)?.connected) { + this.sendReply(`That user is online, so a normal PM is being sent.`); + return this.parse(`/pm ${userid}, ${message}`); + } + if (userid.length > 18) { + throw new Chat.ErrorMessage(`Invalid userid. Must be <=18 characters in length.`); + } + message = this.checkChat(message); + if (!message) return; + await Chat.PrivateMessages.sendOffline(userid, user, message, this); + }, + offlinemsghelp: [ + `/offlinemsg [username], [message] - Sends a message to the offline [username], to be received when they log in.`, + ], + + receivedpms: 'offlinepms', + offlinepms() { + return this.parse(`/j view-receivedpms`); + }, + offlinepmshelp: [ + `/offlinepms - View your recently received offline PMs.`, + ], + inv: 'invite', invite(target, room, user) { if (!target) return this.parse('/help invite'); const pmTarget = this.pmTarget; // not room means it's a PM if (!pmTarget) { - const {targetUser, rest: targetRoomid} = this.requireUser(target); - const targetRoom = targetRoomid ? Rooms.search(targetRoomid) : room; - if (!targetRoom) return this.errorReply(this.tr`The room "${targetRoomid}" was not found.`); - return this.parse(`/pm ${targetUser.name}, /invite ${targetRoom.roomid}`); + const users = target.split(',').map(part => part.trim()); + let targetRoom; + if (users.length > 1 && Rooms.search(users[users.length - 1])) { + targetRoom = users.pop(); + } else { + targetRoom = room; + } + if (users.length > 1 && !user.trusted) { + return this.errorReply("You do not have permission to mass-invite users."); + } + if (users.length > 10) { + return this.errorReply("You cannot invite more than 10 users at once."); + } + for (const toInvite of users) { + this.parse(`/pm ${toInvite}, /invite ${targetRoom}`); + } + return; } const targetRoom = Rooms.search(target); @@ -325,6 +471,7 @@ export const commands: Chat.ChatCommands = { }, invitehelp: [ `/invite [username] - Invites the player [username] to join the room you sent the command to.`, + `/invite [comma-separated usernames] - Invites multiple users to join the room you sent the command to. Requires trusted`, `/invite [username], [roomname] - Invites the player [username] to join the room [roomname].`, `(in a PM) /invite [roomname] - Invites the player you're PMing to join the room [roomname].`, ], @@ -332,26 +479,38 @@ export const commands: Chat.ChatCommands = { blockpm: 'blockpms', ignorepms: 'blockpms', ignorepm: 'blockpms', - blockpms(target, room, user) { + blockofflinepms: 'blockpms', + async blockpms(target, room, user, connection, cmd) { target = target.toLowerCase().trim(); if (target === 'ac') target = 'autoconfirmed'; - if (user.settings.blockPMs === (target || true)) { - return this.errorReply(this.tr`You are already blocking private messages! To unblock, use /unblockpms`); + const isOffline = cmd.includes('offline'); + const msg = isOffline ? `offline ` : ``; + if (!isOffline && user.settings.blockPMs === (target || true)) { + return this.errorReply(this.tr`You are already blocking ${msg}private messages! To unblock, use /unblockpms`); } if (Users.Auth.isAuthLevel(target)) { - user.settings.blockPMs = target; - this.sendReply(this.tr`You are now blocking private messages, except from staff and ${target}.`); + if (!isOffline) user.settings.blockPMs = target; + this.sendReply(this.tr`You are now blocking ${msg}private messages, except from staff and ${target}.`); } else if (target === 'autoconfirmed' || target === 'trusted' || target === 'unlocked') { - user.settings.blockPMs = target; + if (!isOffline) user.settings.blockPMs = target; target = this.tr(target); - this.sendReply(this.tr `You are now blocking private messages, except from staff and ${target} users.`); + this.sendReply(this.tr `You are now blocking ${msg}private messages, except from staff and ${target} users.`); } else if (target === 'friends') { - user.settings.blockPMs = target; - this.sendReply(this.tr`You are now blocking private messages, except from staff and friends.`); + if (!isOffline) user.settings.blockPMs = target; + this.sendReply(this.tr`You are now blocking ${msg}private messages, except from staff and friends.`); } else { - user.settings.blockPMs = true; - this.sendReply(this.tr`You are now blocking private messages, except from staff.`); + if (!isOffline) user.settings.blockPMs = true; + this.sendReply(this.tr`You are now blocking ${msg}private messages, except from staff.`); + } + if (isOffline) { + let saveValue: string | null = target; + if (!saveValue) saveValue = 'none'; + // todo: can we do this? atm. no. + if (['unlocked', 'autoconfirmed'].includes(saveValue)) { + saveValue = null; + } + await Chat.PrivateMessages.setViewOnly(user, saveValue); } user.update(); return true; @@ -364,15 +523,25 @@ export const commands: Chat.ChatCommands = { unblockpm: 'unblockpms', unignorepms: 'unblockpms', unignorepm: 'unblockpms', - unblockpms(target, room, user) { - if (!user.settings.blockPMs) { - return this.errorReply(this.tr`You are not blocking private messages! To block, use /blockpms`); + unblockofflinepms: 'unblockpms', + async unblockpms(target, room, user, connection, cmd) { + const isOffline = cmd.includes('offline'); + const msg = isOffline ? 'offline ' : ''; + if (isOffline ? !(await Chat.PrivateMessages.getSettings(user.id)) : !user.settings.blockPMs) { + return this.errorReply(this.tr`You are not blocking ${msg}private messages! To block, use /blockpms`); + } + if (isOffline) { + await Chat.PrivateMessages.deleteSettings(user.id); + } else { + user.settings.blockPMs = false; } - user.settings.blockPMs = false; user.update(); - return this.sendReply(this.tr`You are no longer blocking private messages.`); + return this.sendReply(this.tr`You are no longer blocking ${msg}private messages.`); }, - unblockpmshelp: [`/unblockpms - Unblocks private messages. Block them with /blockpms.`], + unblockpmshelp: [ + `/unblockpms - Unblocks private messages. Block them with /blockpms.`, + `/unblockofflinepms - Unblocks offline private messages. Block them with /blockofflinepms.`, + ], unblockinvites: 'blockinvites', blockinvites(target, room, user, connection, cmd) { @@ -403,7 +572,7 @@ export const commands: Chat.ChatCommands = { }, blockinviteshelp: [ `/blockinvites [rank] - Allows only users with the given [rank] to invite you to rooms.`, - `Valid settings: autoconfirmed, trusted, unlocked, +, %, @, &.`, + `Valid settings: autoconfirmed, trusted, unlocked, +, %, @, ~.`, `/unblockinvites - Allows anyone to invite you to rooms.`, ], @@ -413,7 +582,7 @@ export const commands: Chat.ChatCommands = { } if (!target) return this.parse('/help status'); - const maxLength = 52; + const maxLength = 70; if (target.length > maxLength) { return this.errorReply(this.tr`Your status is too long; it must be under ${maxLength} characters.`); } @@ -472,7 +641,7 @@ export const commands: Chat.ChatCommands = { }, clearstatushelp: [ `/clearstatus - Clears your status message.`, - `/clearstatus user, reason - Clears another person's status message. Requires: % @ &`, + `/clearstatus user, reason - Clears another person's status message. Requires: % @ ~`, ], unaway: 'back', @@ -531,8 +700,7 @@ export const commands: Chat.ChatCommands = { if (user.tempGroup === group) { return this.errorReply(this.tr`You already have the temporary symbol '${group}'.`); } - if (!Users.Auth.isValidSymbol(group) || !(group in Config.groups) || - (group === Users.SECTIONLEADER_SYMBOL && !(Users.globalAuth.sectionLeaders.has(user.id) || user.can('bypassall')))) { + if (!Users.Auth.isValidSymbol(group) || !(group in Config.groups)) { return this.errorReply(this.tr`You must specify a valid group symbol.`); } if (!isShow && Config.groups[group].rank > Config.groups[user.tempGroup].rank) { @@ -695,7 +863,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(this.tr`Battle input log re-requested.`); } }, - exportinputloghelp: [`/exportinputlog - Asks players in a battle for permission to export an inputlog. Requires: &`], + exportinputloghelp: [`/exportinputlog - Asks players in a battle for permission to export an inputlog. Requires: ~`], importinputlog(target, room, user, connection) { this.checkCan('importinputlog'); @@ -708,22 +876,10 @@ export const commands: Chat.ChatCommands = { } const formatid = target.slice(formatIndex + 12, nextQuoteIndex); - const battleRoom = Rooms.createBattle({format: formatid, inputLog: target}); + const battleRoom = Rooms.createBattle({format: formatid, players: [], inputLog: target}); if (!battleRoom) return; // createBattle will inform the user if creating the battle failed - const nameIndex1 = target.indexOf(`"name":"`); - const nameNextQuoteIndex1 = target.indexOf(`"`, nameIndex1 + 8); - const nameIndex2 = target.indexOf(`"name":"`, nameNextQuoteIndex1 + 1); - const nameNextQuoteIndex2 = target.indexOf(`"`, nameIndex2 + 8); - if (nameIndex1 >= 0 && nameNextQuoteIndex1 >= 0 && nameIndex2 >= 0 && nameNextQuoteIndex2 >= 0) { - const battle = battleRoom.battle!; - battle.p1.name = target.slice(nameIndex1 + 8, nameNextQuoteIndex1); - battle.p2.name = target.slice(nameIndex2 + 8, nameNextQuoteIndex2); - } battleRoom.auth.set(user.id, Users.HOST_SYMBOL); - for (const player of battleRoom.battle!.players) { - player.hasTeam = true; - } this.parse(`/join ${battleRoom.roomid}`); setTimeout(() => { // timer to make sure this goes under the battle @@ -732,7 +888,7 @@ export const commands: Chat.ChatCommands = { battleRoom.battle!.sendInviteForm(user); }, 500); }, - importinputloghelp: [`/importinputlog [inputlog] - Starts a battle with a given inputlog. Requires: + % @ &`], + importinputloghelp: [`/importinputlog [inputlog] - Starts a battle with a given inputlog. Requires: + % @ ~`], showteam: 'showset', async showset(target, room, user, connection, cmd) { @@ -778,7 +934,12 @@ export const commands: Chat.ChatCommands = { `!showset [number] - shows the set of the pokemon corresponding to that number (in original Team Preview order, not necessarily current order)`, ], - async acceptopenteamsheets(target, room, user, connection, cmd) { + confirmready(target, room, user) { + const game = this.requireGame(Rooms.BestOfGame); + game.confirmReady(user); + }, + + acceptopenteamsheets(target, room, user, connection, cmd) { room = this.requireRoom(); const battle = room.battle; if (!battle) return this.errorReply(this.tr`Must be in a battle room.`); @@ -804,15 +965,7 @@ export const commands: Chat.ChatCommands = { this.add(this.tr`${user.name} has agreed to open team sheets.`); if (battle.players.every(curPlayer => curPlayer.wantsOpenTeamSheets)) { - let buf = '|uhtml|ots|'; - for (const curPlayer of battle.players) { - const team = await battle.getTeam(curPlayer.id); - if (!team) continue; - buf += Utils.html`

Open Team Sheet for ${curPlayer.name}${Teams.export(team, {hideStats: true})}
`; - } - for (const curPlayer of battle.players) { - curPlayer.sendRoom(buf); - } + void battle.stream.write('>show-openteamsheets'); } }, acceptopenteamsheetshelp: [`/acceptopenteamsheets - Agrees to an open team sheet opportunity during Team Preview, where all information on a team except stats is shared with the opponent. Requires: \u2606`], @@ -896,7 +1049,7 @@ export const commands: Chat.ChatCommands = { } } }, - offertiehelp: [`/offertie - Offers a tie to all players in a battle; if all accept, it ties. Can only be used after 100+ turns have passed. Requires: \u2606 @ # &`], + offertiehelp: [`/offertie - Offers a tie to all players in a battle; if all accept, it ties. Can only be used after 100+ turns have passed. Requires: \u2606 @ # ~`], rejectdraw: 'rejecttie', rejecttie(target, room, user) { @@ -1009,7 +1162,7 @@ export const commands: Chat.ChatCommands = { if (room.battle.replaySaved) this.parse('/savereplay'); this.addModAction(room.tr`${user.name} hid the replay of this battle.`); }, - hidereplayhelp: [`/hidereplay - Hides the replay of the current battle. Requires: ${Users.PLAYER_SYMBOL} &`], + hidereplayhelp: [`/hidereplay - Hides the replay of the current battle. Requires: ${Users.PLAYER_SYMBOL} ~`], addplayer: 'invitebattle', invitebattle(target, room, user, connection) { @@ -1135,7 +1288,7 @@ export const commands: Chat.ChatCommands = { }, uninvitebattlehelp: [ `/uninvitebattle [username] - Revokes an invite from a user to join a battle.`, - `Requires: ${Users.PLAYER_SYMBOL} &`, + `Requires: ${Users.PLAYER_SYMBOL} ~`, ], restoreplayers(target, room, user) { @@ -1197,7 +1350,7 @@ export const commands: Chat.ChatCommands = { this.errorReply("/kickbattle - User isn't in battle."); } }, - kickbattlehelp: [`/kickbattle [username], [reason] - Kicks a user from a battle with reason. Requires: % @ &`], + kickbattlehelp: [`/kickbattle [username], [reason] - Kicks a user from a battle with reason. Requires: % @ ~`], kickinactive(target, room, user) { this.parse(`/timer on`); @@ -1243,7 +1396,7 @@ export const commands: Chat.ChatCommands = { } }, timerhelp: [ - `/timer [start|stop] - Starts or stops the game timer. Requires: ${Users.PLAYER_SYMBOL} % @ &`, + `/timer [start|stop] - Starts or stops the game timer. Requires: ${Users.PLAYER_SYMBOL} % @ ~`, ], autotimer: 'forcetimer', @@ -1262,33 +1415,36 @@ export const commands: Chat.ChatCommands = { } }, forcetimerhelp: [ - `/forcetimer [start|stop] - Forces all battles to have the inactive timer enabled. Requires: &`, + `/forcetimer [start|stop] - Forces all battles to have the inactive timer enabled. Requires: ~`, ], forcetie: 'forcewin', forcewin(target, room, user) { room = this.requireRoom(); this.checkCan('forcewin'); - if (!room.battle) { + if ( + !room.battle && + !(room.game && typeof (room.game as any).tie === 'function' && typeof (room.game as any).win === 'function') + ) { this.errorReply("/forcewin - This is not a battle room."); return false; } - room.battle.endType = 'forced'; + if (room.battle) room.battle.endType = 'forced'; if (!target) { - room.battle.tie(); + (room.game as any).tie(); this.modlog('FORCETIE'); return false; } const targetUser = Users.getExact(target); if (!targetUser) return this.errorReply(this.tr`User '${target}' not found.`); - room.battle.win(targetUser); + (room.game as any).win(targetUser); this.modlog('FORCEWIN', targetUser.id); }, forcewinhelp: [ - `/forcetie - Forces the current match to end in a tie. Requires: &`, - `/forcewin [user] - Forces the current match to end in a win for a user. Requires: &`, + `/forcetie - Forces the current match to end in a tie. Requires: ~`, + `/forcewin [user] - Forces the current match to end in a win for a user. Requires: ~`, ], /********************************************************* @@ -1471,7 +1627,7 @@ export const commands: Chat.ChatCommands = { const format = originalFormat.effectType === 'Format' ? originalFormat : Dex.formats.get('Anything Goes'); if (format.effectType !== 'Format') return this.popupReply(this.tr`Please provide a valid format.`); - return TeamValidatorAsync.get(format.id).validateTeam(user.battleSettings.team).then(result => { + return TeamValidatorAsync.get(format.id).validateTeam(user.battleSettings.team, {user: user.id}).then(result => { const matchMessage = (originalFormat === format ? "" : this.tr`The format '${originalFormat.name}' was not found.`); if (result.startsWith('1')) { connection.popup(`${(matchMessage ? matchMessage + "\n\n" : "")}${this.tr`Your team is valid for ${format.name}.`}`); @@ -1547,7 +1703,7 @@ export const commands: Chat.ChatCommands = { if (target.startsWith('/') || target.startsWith('!')) target = target.slice(1); if (!target) { - const broadcastMsg = this.tr`(replace / with ! to broadcast. Broadcasting requires: + % @ # &)`; + const broadcastMsg = this.tr`(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)`; this.sendReply(`${this.tr`COMMANDS`}: /report, /msg, /reply, /logout, /challenge, /search, /rating, /whois, /user, /join, /leave, /userauth, /roomauth`); this.sendReply(`${this.tr`BATTLE ROOM COMMANDS`}: /savereplay, /hideroom, /inviteonly, /invite, /timer, /forfeit`); @@ -1635,6 +1791,16 @@ export const commands: Chat.ChatCommands = { ], }; +export const pages: Chat.PageTable = { + receivedpms(query, user) { + this.title = '[Received PMs]'; + if (!Chat.PrivateMessages.offlineIsEnabled) { + return this.errorReply(`Offline PMs are presently disabled.`); + } + return Chat.PrivateMessages.renderReceived(user); + }, +}; + process.nextTick(() => { // We might want to migrate most of this to a JSON schema of command attributes. Chat.multiLinePattern.register( @@ -1643,3 +1809,8 @@ process.nextTick(() => { '/importinputlog ' ); }); + +export const loginfilter: Chat.LoginFilter = user => { + if (!Chat.PrivateMessages.checkCanUse(user, {isLogin: true, forceBool: true})) return; + void Chat.PrivateMessages.sendReceived(user); +}; diff --git a/server/chat-commands/info.ts b/server/chat-commands/info.ts index 64483b31409f..c4bcc60b94ef 100644 --- a/server/chat-commands/info.ts +++ b/server/chat-commands/info.ts @@ -16,6 +16,11 @@ import {RoomSections} from './room-settings'; const ONLINE_SYMBOL = ` \u25C9 `; const OFFLINE_SYMBOL = ` \u25CC `; +interface DexResources { + url: string; + resources: {resource_name: string, url: string}[]; +} + export function getCommonBattles( userID1: ID, user1: User | null, userID2: ID, user2: User | null, connection: Connection ) { @@ -67,6 +72,30 @@ export function findFormats(targetId: string, isOMSearch = false) { return {totalMatches, sections}; } +export const formatsDataCache = new Map(); +export async function getFormatResources(format: string) { + const cached = formatsDataCache.get(format); + if (cached !== undefined) return cached; + try { + const raw = await Net(`https://www.smogon.com/dex/api/formats/by-ps-name/${format}`).get(); + const data = JSON.parse(raw); + formatsDataCache.set(format, data); + return data; + } catch { + // some sort of json error or request can't be made + // so something on smogon's end. freeze the request, punt + formatsDataCache.set(format, null); + return null; + } +} + +// clear every 15 minutes to ensure it's only minimally stale +const resourceRefreshInterval = setInterval(() => formatsDataCache.clear(), 15 * 60 * 1000); + +export function destroy() { + clearInterval(resourceRefreshInterval); +} + export const commands: Chat.ChatCommands = { ip: 'whois', rooms: 'whois', @@ -318,7 +347,7 @@ export const commands: Chat.ChatCommands = { }, whoishelp: [ `/whois - Get details on yourself: alts, group, IP address, and rooms.`, - `/whois [username] - Get details on a username: alts (Requires: % @ &), group, IP address (Requires: @ &), and rooms.`, + `/whois [username] - Get details on a username: alts (Requires: % @ ~), group, IP address (Requires: @ ~), and rooms.`, ], 'chp': 'offlinewhois', @@ -418,7 +447,7 @@ export const commands: Chat.ChatCommands = { return Utils.html`${shortId}`; }).join(' | ')); }, - sharedbattleshelp: [`/sharedbattles [user1], [user2] - Finds recent battles common to [user1] and [user2]. Requires % @ &`], + sharedbattleshelp: [`/sharedbattles [user1], [user2] - Finds recent battles common to [user1] and [user2]. Requires % @ ~`], sp: 'showpunishments', showpunishments(target, room, user) { @@ -428,14 +457,14 @@ export const commands: Chat.ChatCommands = { } return this.parse(`/join view-punishments-${room}`); }, - showpunishmentshelp: [`/showpunishments - Shows the current punishments in the room. Requires: % @ # &`], + showpunishmentshelp: [`/showpunishments - Shows the current punishments in the room. Requires: % @ # ~`], sgp: 'showglobalpunishments', showglobalpunishments(target, room, user) { this.checkCan('lock'); return this.parse(`/join view-globalpunishments`); }, - showglobalpunishmentshelp: [`/showpunishments - Shows the current global punishments. Requires: % @ # &`], + showglobalpunishmentshelp: [`/showpunishments - Shows the current global punishments. Requires: % @ # ~`], async host(target, room, user, connection, cmd) { if (!target) return this.parse('/help host'); @@ -446,7 +475,7 @@ export const commands: Chat.ChatCommands = { const dnsblMessage = dnsbl ? ` [${dnsbl}]` : ``; this.sendReply(`IP ${target}: ${host || "ERROR"} [${hostType}]${dnsblMessage}`); }, - hosthelp: [`/host [ip] - Gets the host for a given IP. Requires: % @ &`], + hosthelp: [`/host [ip] - Gets the host for a given IP. Requires: % @ ~`], searchip: 'ipsearch', ipsearchall: 'ipsearch', @@ -502,7 +531,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`More than 100 users found. Use /ipsearchall for the full list.`); } }, - ipsearchhelp: [`/ipsearch [ip|range|host], (room) - Find all users with specified IP, IP range, or host. If a room is provided only users in the room will be shown. Requires: &`], + ipsearchhelp: [`/ipsearch [ip|range|host], (room) - Find all users with specified IP, IP range, or host. If a room is provided only users in the room will be shown. Requires: ~`], checkchallenges(target, room, user) { room = this.requireRoom(); @@ -527,7 +556,7 @@ export const commands: Chat.ChatCommands = { const [from, to] = user1.id === chall.from ? [user1, user2] : [user2, user1]; this.sendReplyBox(Utils.html`${from.name} is challenging ${to.name} in ${Dex.formats.get(chall.format).name}.`); }, - checkchallengeshelp: [`!checkchallenges [user1], [user2] - Check if the specified users are challenging each other. Requires: * @ # &`], + checkchallengeshelp: [`!checkchallenges [user1], [user2] - Check if the specified users are challenging each other. Requires: * @ # ~`], /********************************************************* * Client fallback @@ -552,10 +581,11 @@ export const commands: Chat.ChatCommands = { pokedex: 'data', data(target, room, user, connection, cmd) { if (!this.runBroadcast()) return; + target = target.trim(); const gen = parseInt(cmd.substr(-1)); if (gen) target += `, gen${gen}`; - const {dex, format, targets} = this.splitFormat(target, true); + const {dex, format, targets} = this.splitFormat(target, true, true); let buffer = ''; target = targets.join(','); @@ -630,7 +660,7 @@ export const commands: Chat.ChatCommands = { }; details["Weight"] = `${pokemon.weighthg / 10} kg (${weighthit} BP)`; const gmaxMove = pokemon.canGigantamax || dex.species.get(pokemon.changesFrom).canGigantamax; - if (gmaxMove && dex.gen >= 8) details["G-Max Move"] = gmaxMove; + if (gmaxMove && dex.gen === 8) details["G-Max Move"] = gmaxMove; if (pokemon.color && dex.gen >= 5) details["Dex Colour"] = pokemon.color; if (pokemon.eggGroups && dex.gen >= 2) details["Egg Group(s)"] = pokemon.eggGroups.join(", "); const evos: string[] = []; @@ -665,6 +695,9 @@ export const commands: Chat.ChatCommands = { } } } + if (pokemon.prevo) { + details["Pre-Evolution"] = pokemon.prevo; + } if (!evos.length) { details[`Does Not Evolve`] = ""; } else { @@ -713,7 +746,9 @@ export const commands: Chat.ChatCommands = { Gen: String(move.gen) || 'CAP', }; - if (move.isNonstandard === "Past" && dex.gen >= 8) details["✗ Past Gens Only"] = ""; + const pastGensOnly = (move.isNonstandard === "Past" && dex.gen >= 8) || + (move.isNonstandard === "Gigantamax" && dex.gen !== 8); + if (pastGensOnly) details["✗ Past Gens Only"] = ""; if (move.secondary || move.secondaries || move.hasSheerForce) details["✓ Boosted by Sheer Force"] = ""; if (move.flags['contact'] && dex.gen >= 3) details["✓ Contact"] = ""; if (move.flags['sound'] && dex.gen >= 3) details["✓ Sound"] = ""; @@ -771,13 +806,11 @@ export const commands: Chat.ChatCommands = { } } - if (dex.gen >= 8) { - if (move.isMax) { - details["✓ Max Move"] = ""; - if (typeof move.isMax === "string") details["User"] = `${move.isMax}`; - } else if (move.maxMove?.basePower) { - details["Dynamax Power"] = String(move.maxMove.basePower); - } + if (move.isMax) { + details["✓ Max Move"] = ""; + if (typeof move.isMax === "string") details["User"] = `${move.isMax}`; + } else if (dex.gen === 8 && move.maxMove?.basePower) { + details["Dynamax Power"] = String(move.maxMove.basePower); } const targetTypes: {[k: string]: string} = { @@ -789,7 +822,7 @@ export const commands: Chat.ChatCommands = { allAdjacentFoes: "All Adjacent Opponents", foeSide: "Opposing Side", allySide: "User's Side", - allyTeam: "User's Side", + allyTeam: "User's Team", allAdjacent: "All Adjacent Pok\u00e9mon", any: "Any Pok\u00e9mon", all: "All Pok\u00e9mon", @@ -817,8 +850,8 @@ export const commands: Chat.ChatCommands = { details = { Gen: String(ability.gen) || 'CAP', }; - if (ability.isPermanent) details["✓ Not affected by Gastro Acid"] = ""; - if (ability.isBreakable) details["✓ Ignored by Mold Breaker"] = ""; + if (ability.flags['cantsuppress']) details["✓ Not affected by Gastro Acid"] = ""; + if (ability.flags['breakable']) details["✓ Ignored by Mold Breaker"] = ""; } break; default: @@ -836,7 +869,7 @@ export const commands: Chat.ChatCommands = { datahelp: [ `/data [pokemon/item/move/ability/nature] - Get details on this pokemon/item/move/ability/nature.`, `/data [pokemon/item/move/ability/nature], Gen [generation number/format name] - Get details on this pokemon/item/move/ability/nature for that generation/format.`, - `!data [pokemon/item/move/ability/nature] - Show everyone these details. Requires: + % @ # &`, + `!data [pokemon/item/move/ability/nature] - Show everyone these details. Requires: + % @ # ~`, ], dt: 'details', @@ -859,7 +892,7 @@ export const commands: Chat.ChatCommands = { `/details [Pok\u00e9mon/item/move/ability/nature], Gen [generation number]: get details on this Pok\u00e9mon/item/move/ability/nature in that generation.
` + `You can also append the generation number to /dt; for example, /dt1 Mewtwo gets details on Mewtwo in Gen 1.
` + `/details [Pok\u00e9mon/item/move/ability/nature], [format]: get details on this Pok\u00e9mon/item/move/ability/nature in that format.
` + - `!details [Pok\u00e9mon/item/move/ability/nature]: show everyone these details. Requires: + % @ # &` + `!details [Pok\u00e9mon/item/move/ability/nature]: show everyone these details. Requires: + % @ # ~` ); }, @@ -879,40 +912,94 @@ export const commands: Chat.ChatCommands = { targets.pop(); } - let species: {types: string[], [k: string]: any} = dex.species.get(targets[0]); - const type1 = dex.types.get(targets[0]); - const type2 = dex.types.get(targets[1]); - const type3 = dex.types.get(targets[2]); + const originalSearch = target; + let imperfectMatch = false; + let isMatch = false; + let species = dex.species.get(targets[0]); + let type1 = dex.types.get(targets[0]); + let type2 = dex.types.get(targets[1]); + let type3 = dex.types.get(targets[2]); + if (species.name !== "" && !species.exists && type1.name !== "" && !type1.exists) { + const typeSearchResults = dex.dataSearch(targets[0], ['TypeChart']); + const speciesSearchResults = dex.dataSearch(targets[0], ['Pokedex']); + if (typeSearchResults && typeSearchResults[0].name !== "") { + type1 = dex.types.get(typeSearchResults[0].name); + imperfectMatch = true; + } else if (speciesSearchResults && speciesSearchResults[0].name !== "") { + species = dex.species.get(speciesSearchResults[0].name); + imperfectMatch = true; + } else { + return this.sendReplyBox(Utils.html`${originalSearch} isn't a recognized type or Pokemon${Dex.gen > dex.gen ? ` in Gen ${dex.gen}` : ""}.`); + } + } + + if (type2.name !== "" && !type2.exists) { + const searchResults = dex.dataSearch(targets[1], ['TypeChart']); + if (searchResults && searchResults[0].name !== "") { + type2 = dex.types.get(searchResults[0].name); + imperfectMatch = true; + } else { + return this.sendReplyBox(Utils.html`${originalSearch} isn't a recognized type or Pokemon${Dex.gen > dex.gen ? ` in Gen ${dex.gen}` : ""}.`); + } + } + if (type3.name !== "" && !type3.exists) { + const searchResults = dex.dataSearch(targets[2], ['TypeChart']); + if (searchResults && searchResults[0].name !== "") { + type3 = dex.types.get(searchResults[0].name); + imperfectMatch = true; + } else { + return this.sendReplyBox(Utils.html`${originalSearch} isn't a recognized type or Pokemon${Dex.gen > dex.gen ? ` in Gen ${dex.gen}` : ""}.`); + } + } + + const types = []; if (species.exists) { - target = species.name; - } else { - const types = []; - if (type1.exists) { - types.push(type1.name); - if (type2.exists && type2 !== type1) { - types.push(type2.name); - } - if (type3.exists && type3 !== type1 && type3 !== type2) { - types.push(type3.name); - } + for (const type of species.types) { + types.push(type); } + target = species.name; + isMatch = true; + } else if (type1.exists) { + types.push(type1.name); + target = type1.name; + isMatch = true; + } - if (types.length === 0) { - return this.sendReplyBox(Utils.html`${target} isn't a recognized type or Pokemon${Dex.gen > dex.gen ? ` in Gen ${dex.gen}` : ""}.`); + let alreadyFoundType2 = false; + let alreadyFoundType3 = false; + if (types.toString().toLowerCase().includes(type2.name.toLowerCase())) { + alreadyFoundType2 = true; + } + if (types.toString().toLowerCase().includes(type3.name.toLowerCase())) { + alreadyFoundType3 = true; + } + + if (isMatch) { + const searchTarget = []; + searchTarget.push(target); + if (type2.exists && !alreadyFoundType2) { + types.push(type2.name); + searchTarget.push(type2.name); + } + if (type3.exists && !alreadyFoundType3) { + types.push(type3.name); + searchTarget.push(type3.name); } - species = {types: types}; - target = types.join("/"); + target = searchTarget.join("/"); } + if (imperfectMatch) { + this.sendReply(`No Pok\u00e9mon or type named '${originalSearch}' was found${Dex.gen > dex.gen ? ` in Gen ${dex.gen}` : ""}. Searching for '${target}' instead.`); + } const weaknesses = []; const resistances = []; const immunities = []; for (const type of dex.types.names()) { - const notImmune = dex.getImmunity(type, species); + const notImmune = dex.getImmunity(type, types); if (notImmune || isInverse) { let typeMod = !notImmune && isInverse ? 1 : 0; - typeMod += (isInverse ? -1 : 1) * dex.getEffectiveness(type, species); + typeMod += (isInverse ? -1 : 1) * dex.getEffectiveness(type, types); switch (typeMod) { case 1: weaknesses.push(type); @@ -950,13 +1037,13 @@ export const commands: Chat.ChatCommands = { trapped: "Trapping", }; for (const status in statuses) { - if (!dex.getImmunity(status, species)) { + if (!dex.getImmunity(status, types)) { immunities.push(statuses[status]); } } const buffer = []; - buffer.push(`${species.exists ? `${species.name} (ignoring abilities):` : `${target}:`}`); + buffer.push(`${species.exists ? `${target} (ignoring abilities):` : `${target}:`}`); buffer.push(`Weaknesses: ${weaknesses.join(', ') || 'None'}`); buffer.push(`Resistances: ${resistances.join(', ') || 'None'}`); buffer.push(`Immunities: ${immunities.join(', ') || 'None'}`); @@ -964,9 +1051,11 @@ export const commands: Chat.ChatCommands = { }, weaknesshelp: [ `/weakness [pokemon] - Provides a Pok\u00e9mon's resistances, weaknesses, and immunities, ignoring abilities.`, - `/weakness [type 1]/[type 2] - Provides a type or type combination's resistances, weaknesses, and immunities, ignoring abilities.`, + `/weakness [type 1], [type 2] - Provides a type or type combination's resistances, weaknesses, and immunities, ignoring abilities.`, + `/weakness [pokemon], [type 1], [type 2] - Provides a Pok\u00e9mon's type and type combination's resistances, weaknesses, and immunities, ignoring abilities.`, `!weakness [pokemon] - Shows everyone a Pok\u00e9mon's resistances, weaknesses, and immunities, ignoring abilities. Requires: + % @ # &`, - `!weakness [type 1]/[type 2] - Shows everyone a type or type combination's resistances, weaknesses, and immunities, ignoring abilities. Requires: + % @ # &`, + `!weakness [type 1], [type 2] - Shows everyone a type or type combination's resistances, weaknesses, and immunities, ignoring abilities. Requires: + % @ # &`, + `!weakness [pokemon], [type 1], [type 2] - Shows everyone a Pok\u00e9mon's type and type combination's resistances, weaknesses, and immunities, ignoring abilities. Requires: + % @ # &`, ], eff: 'effectiveness', @@ -1127,23 +1216,14 @@ export const commands: Chat.ChatCommands = { const immune: string[] = []; for (const type in bestCoverage) { - switch (bestCoverage[type]) { - case 0: + if (bestCoverage[type] === 0) { immune.push(type); - break; - case 0.25: - case 0.5: + } else if (bestCoverage[type] < 1) { resists.push(type); - break; - case 1: - neutral.push(type); - break; - case 2: - case 4: + } else if (bestCoverage[type] > 1) { superEff.push(type); - break; - default: - throw new Error(`/coverage effectiveness of ${bestCoverage[type]} from parameters: ${target}`); + } else { + neutral.push(type); } } buffer.push(`Coverage for ${sources.join(' + ')}:`); @@ -1204,23 +1284,14 @@ export const commands: Chat.ChatCommands = { bestEff = Math.pow(2, bestEff); } } - switch (bestEff) { - case 0: + if (bestEff === 0) { cell += `bgcolor=#666666 title="${typing}">${bestEff}`; - break; - case 0.25: - case 0.5: + } else if (bestEff < 1) { cell += `bgcolor=#AA5544 title="${typing}">${bestEff}`; - break; - case 1: - cell += `bgcolor=#6688AA title="${typing}">${bestEff}`; - break; - case 2: - case 4: + } else if (bestEff > 1) { cell += `bgcolor=#559955 title="${typing}">${bestEff}`; - break; - default: - throw new Error(`/coverage effectiveness of ${bestEff} from parameters: ${target}`); + } else { + cell += `bgcolor=#6688AA title="${typing}">${bestEff}`; } cell += ''; buffer += cell; @@ -1283,8 +1354,11 @@ export const commands: Chat.ChatCommands = { } else if (lowercase.startsWith('lv') || lowercase.startsWith('level')) { level = parseInt(arg.replace(/\D/g, '')); lvlSet = true; + if (isNaN(level)) { + return this.sendReplyBox('Invalid value for level: ' + Utils.escapeHTML(arg)); + } if (level < 1 || level > 9999) { - return this.sendReplyBox('Invalid value for level: ' + level); + return this.sendReplyBox('Level should be between 1 and 9999.'); } continue; } @@ -1504,7 +1578,7 @@ export const commands: Chat.ChatCommands = { statcalchelp: [ `/statcalc [level] [base stat] [IVs] [nature] [EVs] [modifier] (only base stat is required) - Calculates what the actual stat of a Pokémon is with the given parameters. For example, '/statcalc lv50 100 30iv positive 252ev scarf' calculates the speed of a base 100 scarfer with HP Ice in Battle Spot, and '/statcalc uninvested 90 neutral' calculates the attack of an uninvested Crobat.`, `!statcalc [level] [base stat] [IVs] [nature] [EVs] [modifier] (only base stat is required) - Shows this information to everyone.`, - `Inputing 'hp' as an argument makes it use the formula for HP. Instead of giving nature, '+' and '-' can be appended to the EV amount (e.g. 252+ev) to signify a boosting or inhibiting nature.`, + `Inputting 'hp' as an argument makes it use the formula for HP. Instead of giving nature, '+' and '-' can be appended to the EV amount (e.g. 252+ev) to signify a boosting or inhibiting nature.`, `An actual stat can be given in place of a base stat or EVs. In this case, the minumum base stat or EVs necessary to have that real stat with the given parameters will be determined. For example, '/statcalc 502real 252+ +1' calculates the minimum base speed necessary for a positive natured fully invested scarfer to outspeed`, ], @@ -1555,11 +1629,10 @@ export const commands: Chat.ChatCommands = { const globalRanks = [ `Global ranks`, `+ Global Voice - They can use ! commands like !groups`, - `§ Section Leader - They oversee rooms in a particular section`, `% Global Driver - Like Voice, and they can lock users and check for alts`, `@ Global Moderator - The above, and they can globally ban users`, `* Global Bot - An automated account that can use HTML anywhere`, - `& Global Administrator - They can do anything, like change what this message says and promote users globally`, + `~ Global Administrator - They can do anything, like change what this message says and promote users globally`, ]; this.sendReplyBox( @@ -1571,7 +1644,7 @@ export const commands: Chat.ChatCommands = { groupshelp: [ `/groups - Explains what the symbols (like % and @) before people's names mean.`, `/groups [global|room] - Explains only global or room symbols.`, - `!groups - Shows everyone that information. Requires: + % @ # &`, + `!groups - Shows everyone that information. Requires: + % @ # ~`, ], punishments(target, room, user) { @@ -1615,7 +1688,7 @@ export const commands: Chat.ChatCommands = { }, punishmentshelp: [ `/punishments - Explains punishments.`, - `!punishments - Show everyone that information. Requires: + % @ # &`, + `!punishments - Show everyone that information. Requires: + % @ # ~`, ], repo: 'opensource', @@ -1635,7 +1708,7 @@ export const commands: Chat.ChatCommands = { }, opensourcehelp: [ `/opensource - Links to PS's source code repository.`, - `!opensource - Show everyone that information. Requires: + % @ # &`, + `!opensource - Show everyone that information. Requires: + % @ # ~`, ], staff(target, room, user) { @@ -1665,7 +1738,7 @@ export const commands: Chat.ChatCommands = { suggestion: 'suggestions', suggestions(target, room, user) { if (!this.runBroadcast()) return; - this.sendReplyBox(`Make a suggestion for Pokémon Showdown`); + this.sendReplyBox(`Make a suggestion for Pokémon Showdown`); }, suggestionshelp: [`/suggestions - Links to the place to make suggestions for Pokemon Showdown.`], @@ -1674,12 +1747,12 @@ export const commands: Chat.ChatCommands = { bugs(target, room, user) { if (!this.runBroadcast()) return; if (room?.battle) { - this.sendReplyBox(`
QuestionsBug Reports
`); + this.sendReplyBox(`
QuestionsBug Reports
`); } else { this.sendReplyBox( `Have a replay showcasing a bug on Pokémon Showdown?
` + `- Questions
` + - `- Bug Reports (ask in Help before posting in the thread if you're unsure)` + `- Bug Reports (ask in Help before posting if you're unsure)` ); } }, @@ -1715,7 +1788,7 @@ export const commands: Chat.ChatCommands = { }, introhelp: [ `/intro - Provides an introduction to competitive Pok\u00e9mon.`, - `!intro - Show everyone that information. Requires: + % @ # &`, + `!intro - Show everyone that information. Requires: + % @ # ~`, ], mentoring: 'smogintro', @@ -1746,20 +1819,20 @@ export const commands: Chat.ChatCommands = { const DEFAULT_CALC_COMMANDS = ['honkalculator', 'honkocalc']; const RANDOMS_CALC_COMMANDS = ['randomscalc', 'randbatscalc', 'rcalc']; const BATTLESPOT_CALC_COMMANDS = ['bsscalc', 'cantsaycalc']; - const SUPPORTED_RANDOM_FORMATS = [ - 'gen8randombattle', 'gen8unratedrandombattle', 'gen7randombattle', 'gen6randombattle', 'gen5randombattle', 'gen4randombattle', 'gen3randombattle', 'gen2randombattle', 'gen1randombattle', - ]; const SUPPORTED_BATTLESPOT_FORMATS = [ 'gen5gbusingles', 'gen5gbudoubles', 'gen6battlespotsingles', 'gen6battlespotdoubles', 'gen6battlespottriples', 'gen7battlespotsingles', 'gen7battlespotdoubles', 'gen7bssfactory', ]; - const isRandomBattle = (room?.battle && SUPPORTED_RANDOM_FORMATS.includes(room.battle.format)); + const isRandomBattle = (room?.battle && (room.battle.format.endsWith('randombattle') || + room.battle.format.endsWith('randomdoublesbattle'))); const isBattleSpotBattle = (room?.battle && (SUPPORTED_BATTLESPOT_FORMATS.includes(room.battle.format) || room.battle.format.includes("battlespotspecial"))); + const {dex} = this.extractFormat(room?.battle?.format); + if (RANDOMS_CALC_COMMANDS.includes(cmd) || (isRandomBattle && !DEFAULT_CALC_COMMANDS.includes(cmd) && !BATTLESPOT_CALC_COMMANDS.includes(cmd))) { return this.sendReplyBox( - `Random Battles damage calculator. (Courtesy of Austin)
` + - `- Random Battles Damage Calculator` + `Random Battles damage calculator. (Courtesy of dhelmise & jetou)
` + + `- Random Battles Damage Calculator` ); } if (BATTLESPOT_CALC_COMMANDS.includes(cmd) || (isBattleSpotBattle && !DEFAULT_CALC_COMMANDS.includes(cmd))) { @@ -1769,15 +1842,15 @@ export const commands: Chat.ChatCommands = { ); } this.sendReplyBox( - `Pokémon Showdown! damage calculator. (Courtesy of Honko, Austin, & Kris)
` + - `- Damage Calculator` + `Pokémon Showdown! damage calculator. (Courtesy of Honko, Austin, dhelmise, & jetou)
` + + `- Damage Calculator` ); }, calchelp: [ `/calc - Provides a link to a damage calculator`, `/rcalc - Provides a link to the random battles damage calculator`, `/bsscalc - Provides a link to the Battle Spot damage calculator`, - `!calc - Shows everyone a link to a damage calculator. Requires: + % @ # &`, + `!calc - Shows everyone a link to a damage calculator. Requires: + % @ # ~`, ], capintro: 'cap', @@ -1789,26 +1862,14 @@ export const commands: Chat.ChatCommands = { `- CAP project discussion forum
` + `- What Pokémon have been made?
` + `- Talk about the metagame here
` + - `- Sample SS CAP teams` + `- Sample SV CAP teams` ); }, caphelp: [ `/cap - Provides an introduction to the Create-A-Pok\u00e9mon project.`, - `!cap - Show everyone that information. Requires: + % @ # &`, + `!cap - Show everyone that information. Requires: + % @ # ~`, ], - gennext(target, room, user) { - if (!this.runBroadcast()) return; - this.sendReplyBox( - "NEXT (also called Gen-NEXT) is a mod that makes changes to the game:
" + - `- README: overview of NEXT
` + - "Example replays:
" + - `- Zergo vs Mr Weegle Snarf
` + - `- NickMP vs Khalogie` - ); - }, - gennexthelp: [`/gennext - Provides information on the Gen-NEXT mod.`], - battlerules(target, room, user) { return this.parse(`/join view-battlerules`); }, @@ -1823,7 +1884,7 @@ export const commands: Chat.ChatCommands = { tiershelp: 'formathelp', formatshelp: 'formathelp', viewbanlist: 'formathelp', - formathelp(target, room, user, connection, cmd) { + async formathelp(target, room, user, connection, cmd) { if (!target && this.runBroadcast()) { return this.sendReplyBox( `- Smogon Tiers
` + @@ -1868,17 +1929,26 @@ export const commands: Chat.ChatCommands = { rulesetHtml = `No ruleset found for ${format.name}`; } } - let formatType: string = (format.gameType || "singles"); - formatType = formatType.charAt(0).toUpperCase() + formatType.slice(1).toLowerCase(); - if (!format.desc && !format.threads) { - if (format.effectType === 'Format') { - return this.sendReplyBox(`No description found for this ${formatType} ${format.section} format.
${rulesetHtml}`); - } else { - return this.sendReplyBox(`No description found for this rule.
${rulesetHtml}`); + const formatDesc = format.desc || ''; + const descHtml: string[] = []; + const data = await getFormatResources(format.id); + if (data) { + for (const {resource_name, url} of data.resources) { + let rn = resource_name; + rn = rn.replace(/ thread$/gi, ''); + rn = rn.replace(/Pokemon Showdown/gi, 'PS'); + rn = rn.split(' ').map((x: string) => x[0].toUpperCase() + x.substr(1)).join(' '); + descHtml.push(`• ${rn}`); } + } else if (format.threads?.length) { + descHtml.push(...format.threads); + } else { + const genID = ['rb', 'gs', 'rs', 'dp', 'bw', 'xy', 'sm', 'ss', 'sv']; + descHtml.push(`This format has no resources linked on its Smogon Dex page. ` + + `Please contact a C&C Leader to resolve this. ` + + `Alternatively, if this format can't have a page on the Smogon Dex, message dhelmise.
`); } - const descHtml = [...(format.desc ? [format.desc] : []), ...(format.threads || [])]; - return this.sendReplyBox(`${descHtml.join("
")}
${rulesetHtml}`); + return this.sendReplyBox(`

${format.name}


${formatDesc ? formatDesc + '
' : ''}${descHtml.join("
")}${rulesetHtml ? `
${rulesetHtml}` : ''}`); } let tableStyle = `border:1px solid gray; border-collapse:collapse`; @@ -1894,7 +1964,13 @@ export const commands: Chat.ChatCommands = { for (const section of sections[sectionId].formats) { const subformat = Dex.formats.get(section); const nameHTML = Utils.escapeHTML(subformat.name); - const desc = [...(subformat.desc ? [subformat.desc] : []), ...(subformat.threads || [])]; + const desc = subformat.desc ? [subformat.desc] : []; + const data = await getFormatResources(subformat.id); + if (data) { + for (const {resource_name, url} of data.resources) { + desc.push(`• ${resource_name}`); + } + } const descHTML = desc.length ? desc.join("
") : "—"; buf.push(`${nameHTML}${descHTML}`); } @@ -2037,9 +2113,9 @@ export const commands: Chat.ChatCommands = { }, ruleshelp: [ `/rules - Show links to room rules and global rules.`, - `!rules - Show everyone links to room rules and global rules. Requires: + % @ # &`, - `/rules [url] - Change the room rules URL. Requires: # &`, - `/rules remove - Removes a room rules URL. Requires: # &`, + `!rules - Show everyone links to room rules and global rules. Requires: + % @ # ~`, + `/rules [url] - Change the room rules URL. Requires: # ~`, + `/rules remove - Removes a room rules URL. Requires: # ~`, ], faq(target, room, user) { @@ -2077,13 +2153,13 @@ export const commands: Chat.ChatCommands = { buffer.push(`${this.tr`Proxy lock help`}`); } if (showAll || ['ca', 'customavatar', 'customavatars'].includes(target)) { - buffer.push(this.tr`Custom avatars are given to Global Staff members, contributors (coders and spriters) to Pokemon Showdown, and Smogon badgeholders at the discretion of Zarel. They are also sometimes given out as prizes for major room events or Smogon tournaments.`); + buffer.push(this.tr`Custom avatars are given to Global Staff members, contributors (coders and spriters) to Pokemon Showdown, and Smogon badgeholders at the discretion of the PS! Administrators. They are also sometimes given out as rewards for major events such as PSPL (Pokemon Showdown Premier League). If you're curious, you can view the entire list of custom avatars.`); } if (showAll || ['privacy', 'private'].includes(target)) { buffer.push(`${this.tr`Pokémon Showdown privacy policy`}`); } if (showAll || ['lostpassword', 'password', 'lostpass'].includes(target)) { - buffer.push(`If you need your Pokémon Showdown password reset, you can fill out a ${this.tr`Password Reset Form`}. You will need to make a Smogon account to be able to fill out the form, as password resets are processed through the Smogon forums.`); + buffer.push(`If you need your Pokémon Showdown password reset, you can fill out a ${this.tr`Password Reset Form`}. You will need to make a Smogon account to be able to fill out a form; that's what the email address you sign in to Smogon with is for (PS accounts for regular users don't have emails associated with them).`); } if (!buffer.length && target) { this.errorReply(`'${target}' is an invalid FAQ.`); @@ -2096,7 +2172,7 @@ export const commands: Chat.ChatCommands = { }, faqhelp: [ `/faq [theme] - Provides a link to the FAQ. Add autoconfirmed, badges, proxy, ladder, staff, or tiers for a link to these questions. Add all for all of them.`, - `!faq [theme] - Shows everyone a link to the FAQ. Add autoconfirmed, badges, proxy, ladder, staff, or tiers for a link to these questions. Add all for all of them. Requires: + % @ # &`, + `!faq [theme] - Shows everyone a link to the FAQ. Add autoconfirmed, badges, proxy, ladder, staff, or tiers for a link to these questions. Add all for all of them. Requires: + % @ # ~`, ], analysis: 'smogdex', @@ -2143,7 +2219,7 @@ export const commands: Chat.ChatCommands = { generation = 'rb'; genNumber = 1; } else { - generation = 'ss'; + generation = 'sv'; } // Pokemon @@ -2276,14 +2352,14 @@ export const commands: Chat.ChatCommands = { }, smogdexhelp: [ `/analysis [pokemon], [generation], [format] - Links to the Smogon University analysis for this Pok\u00e9mon in the given generation.`, - `!analysis [pokemon], [generation], [format] - Shows everyone this link. Requires: + % @ # &`, + `!analysis [pokemon], [generation], [format] - Shows everyone this link. Requires: + % @ # ~`, ], - veekun(target, broadcast, user) { - if (!target) return this.parse('/help veekun'); + bulbapedia(target, broadcast, user) { + if (!target) return this.parse('/help bulbapedia'); if (!this.runBroadcast()) return; - const baseLink = 'http://veekun.com/dex/'; + const baseLink = 'https://bulbapedia.bulbagarden.net/wiki/'; const pokemon = Dex.species.get(target); const item = Dex.items.get(target); @@ -2298,28 +2374,11 @@ export const commands: Chat.ChatCommands = { if (pokemon.isNonstandard && pokemon.isNonstandard !== 'Past') { return this.errorReply(`${pokemon.name} is not a real Pok\u00e9mon.`); } + let baseSpecies = pokemon.baseSpecies; + if (pokemon.id.startsWith('flabebe')) baseSpecies = 'Flabébé'; + const link = `${baseLink}${encodeURIComponent(baseSpecies)}_(Pokémon)`; - const baseSpecies = pokemon.baseSpecies || pokemon.name; - let forme = pokemon.forme; - - // Showdown and Veekun have different names for various formes - if (baseSpecies === 'Meowstic' && forme === 'F') forme = 'Female'; - if (baseSpecies === 'Zygarde' && forme === '10%') forme = '10'; - if (baseSpecies === 'Necrozma' && !Dex.species.get(baseSpecies + forme).battleOnly) forme = forme.substr(0, 4); - if (baseSpecies === 'Pikachu' && Dex.species.get(baseSpecies + forme).gen === 7) forme += '-Cap'; - if (forme.endsWith('Totem')) { - if (baseSpecies === 'Raticate') forme = 'Totem-Alola'; - if (baseSpecies === 'Marowak') forme = 'Totem'; - if (baseSpecies === 'Mimikyu') forme += forme === 'Busted-Totem' ? '-Busted' : '-Disguised'; - } - - let link = `${baseLink}pokemon/${baseSpecies.toLowerCase()}`; - if (forme) { - if (baseSpecies === 'Arceus' || baseSpecies === 'Silvally') link += '/flavor'; - link += `?form=${forme.toLowerCase()}`; - } - - this.sendReplyBox(`${pokemon.name} description by Veekun`); + this.sendReplyBox(Utils.html`${pokemon.name} in-game information, provided by Bulbapedia`); } // Item @@ -2328,8 +2387,9 @@ export const commands: Chat.ChatCommands = { if (item.isNonstandard && item.isNonstandard !== 'Past') { return this.errorReply(`${item.name} is not a real item.`); } - const link = `${baseLink}items/${item.name.toLowerCase()}`; - this.sendReplyBox(`${item.name} item description by Veekun`); + let link = `${baseLink}${encodeURIComponent(item.name)}`; + if (Dex.moves.get(item.name).exists) link += '_(item)'; + this.sendReplyBox(Utils.html`${item.name} item description, provided by Bulbapedia`); } // Ability @@ -2338,8 +2398,8 @@ export const commands: Chat.ChatCommands = { if (ability.isNonstandard && ability.isNonstandard !== 'Past') { return this.errorReply(`${ability.name} is not a real ability.`); } - const link = `${baseLink}abilities/${ability.name.toLowerCase()}`; - this.sendReplyBox(`${ability.name} ability description by Veekun`); + const link = `${baseLink}${encodeURIComponent(ability.name)}_(Ability)`; + this.sendReplyBox(`${ability.name} ability description, provided by Bulbapedia`); } // Move @@ -2348,24 +2408,24 @@ export const commands: Chat.ChatCommands = { if (move.isNonstandard && move.isNonstandard !== 'Past') { return this.errorReply(`${move.name} is not a real move.`); } - const link = `${baseLink}moves/${move.name.toLowerCase()}`; - this.sendReplyBox(`${move.name} move description by Veekun`); + const link = `${baseLink}${encodeURIComponent(move.name)}_(move)`; + this.sendReplyBox(`${move.name} move description, provided by Bulbapedia`); } // Nature if (nature.exists) { atLeastOne = true; - const link = `${baseLink}natures/${nature.name.toLowerCase()}`; - this.sendReplyBox(`${nature.name} nature description by Veekun`); + const link = `${baseLink}Nature`; + this.sendReplyBox(`Nature descriptions, provided by Bulbapedia`); } if (!atLeastOne) { return this.sendReplyBox(`Pokémon, item, move, ability, or nature not found.`); } }, - veekunhelp: [ - `/veekun [pokemon] - Links to Veekun website for this pokemon/item/move/ability/nature.`, - `!veekun [pokemon] - Shows everyone this link. Requires: + % @ # &`, + bulbapediahelp: [ + `/bulbapedia [pokemon/item/move/ability/nature] - Links to Bulbapedia wiki page for this pokemon/item/move/ability/nature.`, + `!bulbapedia [pokemon/item/move/ability/nature] - Shows everyone this link. Requires: + % @ # ~`, ], register() { @@ -2484,8 +2544,7 @@ export const commands: Chat.ChatCommands = { pr: 'pickrandom', pick: 'pickrandom', pickrandom(target, room, user) { - if (!target) return false; - if (!target.includes(',')) return this.parse('/help pick'); + if (!target || !target.includes(',')) return this.parse('/help pick'); if (!this.runBroadcast(true)) return false; if (this.broadcasting) { [, target] = Utils.splitFirst(this.message, ' '); @@ -2517,11 +2576,11 @@ export const commands: Chat.ChatCommands = { if (!room.settings.requestShowEnabled) { return this.errorReply(`Media approvals are disabled in this room.`); } - if (user.can('showmedia', null, room, '/show')) return this.errorReply(`Use !show instead.`); + if (user.can('showmedia', null, room, 'show')) return this.errorReply(`Use !show instead.`); if (room.pendingApprovals?.has(user.id)) return this.errorReply('You have a request pending already.'); if (!toID(target)) return this.parse(`/help requestshow`); - let [link, comment] = target.split(','); + let [link, comment] = this.splitOne(target); if (!/^https?:\/\//.test(link)) link = `https://${link}`; link = encodeURI(link); let dimensions; @@ -2581,7 +2640,7 @@ export const commands: Chat.ChatCommands = { buf = Utils.html``; if (resized) buf += Utils.html`
full-size image`; } else { - buf = await YouTube.generateVideoDisplay(request.link, false, true); + buf = await YouTube.generateVideoDisplay(request.link, false); if (!buf) return this.errorReply('Could not get YouTube video'); } buf += Utils.html`
(Requested by ${request.name})`; @@ -2593,7 +2652,7 @@ export const commands: Chat.ChatCommands = { room.add(`|c| ${request.name}|/raw ${buf}`); this.privateModAction(`${user.name} approved showing media from ${request.name}.`); }, - approveshowhelp: [`/approveshow [user] - Approves the media display request of [user]. Requires: % @ # &`], + approveshowhelp: [`/approveshow [user] - Approves the media display request of [user]. Requires: % @ # ~`], denyshow(target, room, user) { room = this.requireRoom(); @@ -2617,13 +2676,13 @@ export const commands: Chat.ChatCommands = { room.sendUser(targetUser, `|raw|
Your media request was denied.
`); room.sendUser(targetUser, `|notify|Media request denied`); }, - denyshowhelp: [`/denyshow [user] - Denies the media display request of [user]. Requires: % @ # &`], + denyshowhelp: [`/denyshow [user] - Denies the media display request of [user]. Requires: % @ # ~`], approvallog(target, room, user) { room = this.requireRoom(); return this.parse(`/sl approved showing media from, ${room.roomid}`); }, - approvalloghelp: [`/approvallog - View a log of past media approvals in the current room. Requires: % @ # &`], + approvalloghelp: [`/approvallog - View a log of past media approvals in the current room. Requires: ~`], viewapprovals(target, room, user) { room = this.requireRoom(); @@ -2631,7 +2690,7 @@ export const commands: Chat.ChatCommands = { }, viewapprovalshelp: [ `/viewapprovals - View a list of users who have requested to show media in the current room.`, - `Requires: % @ # &`, + `Requires: % @ # ~`, ], async show(target, room, user, connection) { @@ -2656,25 +2715,33 @@ export const commands: Chat.ChatCommands = { this.runBroadcast(); let buf; if (YouTube.linkRegex.test(link)) { - buf = await YouTube.generateVideoDisplay(link, false, this.broadcasting); + buf = await YouTube.generateVideoDisplay(link, false); this.message = this.message.replace(/&ab_channel=(.*)(&|)/ig, '').replace(/https:\/\/www\./ig, ''); } else if (Twitch.linkRegex.test(link)) { const channelId = Twitch.linkRegex.exec(link)?.[2]?.trim(); if (!channelId) return this.errorReply(`Specify a Twitch channel.`); - const info = await Twitch.getChannel(channelId); - if (!info) return this.errorReply(`Channel ${channelId} not found.`); - buf = `Watching ${info.display_name}...
`; + buf = Utils.html`Watching ${channelId}...
`; buf += ``; } else { + if (Chat.linkRegex.test(link)) { + if (/^https?:\/\/(.*)\.(mp4|mov)\b(\?|$)/i.test(link)) { // video + // can't fitImage video, so we're just gonna have to guess to keep it small + buf = Utils.html``; + } else if (/^https?:\/\/(.*)\.(mp3|wav)\b(\?|$)/i.test(link)) { // audio + buf = Utils.html``; + } + } if (link.includes('data:image/png;base64')) { throw new Chat.ErrorMessage('Please provide an actual link (you probably copied it wrong?).'); } - try { - const [width, height, resized] = await Chat.fitImage(link); - buf = Utils.html``; - if (resized) buf += Utils.html`
full-size image`; - } catch { - return this.errorReply('Invalid image'); + if (!buf) { // fall back on image + try { + const [width, height, resized] = await Chat.fitImage(link); + buf = Utils.html``; + if (resized) buf += Utils.html`
full-size image`; + } catch { + return this.errorReply('Invalid image, audio, or video URL.'); + } } } if (comment) { @@ -2687,8 +2754,8 @@ export const commands: Chat.ChatCommands = { this.sendReplyBox(buf); }, showhelp: [ - `/show [url] - Shows you an image or YouTube video.`, - `!show [url] - Shows an image or YouTube to everyone in a chatroom. Requires: whitelist % @ # &`, + `/show [url] - Shows you an image, audio clip, video file, or YouTube video.`, + `!show [url] - Shows an image, audio clip, video file, or YouTube video to everyone in a chatroom. Requires: whitelist % @ # ~`, ], rebroadcast(target, room, user, connection) { @@ -2769,7 +2836,7 @@ export const commands: Chat.ChatCommands = { } }, codehelp: [ - `!code [code] - Broadcasts code to a room. Accepts multi-line arguments. Requires: + % @ & #`, + `!code [code] - Broadcasts code to a room. Accepts multi-line arguments. Requires: + % @ ~ #`, `/code [code] - Shows you code. Accepts multi-line arguments.`, ], @@ -2790,7 +2857,7 @@ export const commands: Chat.ChatCommands = { allowEmpty: true, useIDs: false, }); const format = Dex.formats.get(toID(args.format[0])); - if (!format.exists) { + if (format.effectType !== 'Format') { return this.popupReply(`The format '${format}' does not exist.`); } delete args.format; @@ -2908,14 +2975,14 @@ export const commands: Chat.ChatCommands = { const text = Array.isArray(help) ? help.join(' | ') : typeof help === 'function' ? `` : ''; - buf += text ? ` (${text})` : `(no help found)`; + buf += text ? ` (${text})` : ` (no help found)`; } } buf += `
`; } this.sendReplyBox(buf); }, - adminhelphelp: [`/adminhelp - Programmatically generates a list of all administrator commands. Requires: &`], + adminhelphelp: [`/adminhelp - Programmatically generates a list of all administrator commands. Requires: ~`], altlog: 'altslog', altslog(target, room, user) { @@ -2927,8 +2994,65 @@ export const commands: Chat.ChatCommands = { return this.parse(`/join view-altslog-${target}`); }, altsloghelp: [ - `/altslog [userid] - View the alternate account history for the given [userid]. Requires: % @ &`, + `/altslog [userid] - View the alternate account history for the given [userid]. Requires: % @ ~`, ], + + randtopic(target, room, user) { + room = this.requireRoom(); + if (!room.settings.topics?.length) { + return this.errorReply(`This room has no random topics to select from.`); + } + this.runBroadcast(); + this.sendReply(Utils.html`|html|
${Utils.randomElement(room.settings.topics)}
`); + }, + randtopichelp: [ + `/randtopic - Randomly selects a topic from the room's discussion topic pool and displays it.`, + `/addtopic [target] - Adds the [target] to the pool of random discussion topics. Requires: % @ # ~`, + `/removetopic [index] - Removes the topic from the room's topic pool. Requires: % @ # ~`, + `/randomtopics - View the discussion topic pool for the current room.`, + ], + + addtopic(target, room, user) { + room = this.requireRoom(); + this.checkCan('mute', null, room); + target = target.trim(); + if (!toID(target).length) { + return this.parse(`/help randtopic`); + } + if (!room.settings.topics) room.settings.topics = []; + room.settings.topics.push(target); + this.privateModAction(`${user.name} added the topic "${target}" to the random topic pool.`); + this.modlog('ADDTOPIC', null, target); + room.saveSettings(); + }, + addtopichelp: [`/addtopic [target] - Adds the [target] to the pool of random discussion topics. Requires: % @ # ~`], + + removetopic(target, room, user) { + room = this.requireRoom(); + this.checkCan('mute', null, room); + if (!toID(target)) { + return this.parse(`/help randtopic`); + } + const index = Number(toID(target)) - 1; + if (isNaN(index)) { + return this.errorReply(`Invalid topic index: ${target}. Must be a number.`); + } + if (!room.settings.topics?.[index]) { + return this.errorReply(`Topic ${index + 1} not found.`); + } + const topic = room.settings.topics.splice(index, 1)[0]; + room.saveSettings(); + this.privateModAction(`${user.name} removed topic ${index + 1} from the random topic pool.`); + this.modlog('REMOVETOPIC', null, topic); + }, + removetopichelp: [`/removetopic [index] - Removes the topic from the room's topic pool. Requires: % @ # ~`], + + listtopics: 'randomtopics', + randtopics: 'randomtopics', + randomtopics(target, room, user) { + room = this.requireRoom(); + return this.parse(`/join view-topics-${room}`); + }, }; export const handlers: Chat.Handlers = { @@ -3004,6 +3128,22 @@ export const pages: Chat.PageTable = { } return buf; }, + topics(query, user) { + const room = this.requireRoom(); + this.title = `[Topics] ${room.title}`; + const topics = room.settings.topics || []; + let buf; + if (!topics.length) { + buf = `

This room has no discussion topics saved.

`; + return buf; + } + buf = `

Random topics for ${room.title} (${topics.length}):

    `; + for (const [i, topic] of topics.entries()) { + buf += Utils.html`
  • ${i + 1}: "${topic}"
  • `; + } + buf += `
`; + return buf; + }, battlerules(query, user) { const rules = Object.values(Dex.data.Rulesets).filter(rule => rule.effectType !== "Format"); const tourHelp = `https://www.smogon.com/forums/threads/pok%C3%A9mon-showdown-forum-rules-resources-read-here-first.3570628/#post-6777489`; @@ -3068,12 +3208,12 @@ export const pages: Chat.PageTable = { buf += `
`; const formatId = toID(query[0]); const format = Dex.formats.get(formatId); - if (!formatId || !format.exists) { - if (formatId && !format.exists) { + if (!formatId || format.effectType !== 'Format') { + if (formatId) { buf += `
The format '${formatId}' does not exist.

`; } buf += `
`; - buf += `Choose your format:
`; + buf += `Choose your format: [Gen ${Dex.gen}] Random Battle
`; buf += ``; buf += `
`; return buf; @@ -3103,7 +3243,8 @@ export const pages: Chat.PageTable = { buf += `

Using a + instead of a - unbans that category.

`; buf += `
  • + Blaziken: Unban/unrestrict a Pokémon.

`; cmd.push(`bans={bans}`); - buf += `Bans/Unbans: (separated by commas)

`; + buf += `Bans/Unbans: (separated by commas)

`; + buf += `
`; buf += `
Clauses`; buf += `

The following rules can be added to challenges/tournaments to modify the style of play. `; buf += `Alternatively, already present rules can be removed from formats by preceding the rule name with !.

`; @@ -3190,6 +3331,12 @@ export const pages: Chat.PageTable = { buf += `Requester ID: ${userid}
`; buf += `Link: ${entry.link}
`; buf += `Comment: ${entry.comment}`; + buf += `
`; + buf += ``; + buf += `
`; + buf += `
`; + buf += ``; + buf += `
`; buf += `

`; } return buf; diff --git a/server/chat-commands/moderation.ts b/server/chat-commands/moderation.ts index b1592502815e..5023ee007aae 100644 --- a/server/chat-commands/moderation.ts +++ b/server/chat-commands/moderation.ts @@ -23,7 +23,7 @@ const REQUIRE_REASONS = true; /** * Promotes a user within a room. Returns a User object if a popup should be shown to the user, - * and null otherwise. Throws a Chat.ErrorMesage on an error. + * and null otherwise. Throws a Chat.ErrorMessage on an error. * * @param promoter the User object of the user who is promoting * @param room the Room in which the promotion is happening @@ -173,7 +173,7 @@ export const commands: Chat.ChatCommands = { } room.saveSettings(); }, - roomownerhelp: [`/roomowner [username] - Appoints [username] as a room owner. Requires: &`], + roomownerhelp: [`/roomowner [username] - Appoints [username] as a room owner. Requires: ~`], roomdemote: 'roompromote', forceroompromote: 'roompromote', @@ -276,9 +276,9 @@ export const commands: Chat.ChatCommands = { room.saveSettings(); }, roompromotehelp: [ - `/roompromote OR /roomdemote [comma-separated usernames], [group symbol] - Promotes/demotes the user(s) to the specified room rank. Requires: @ # &`, - `/room[group] [comma-separated usernames] - Promotes/demotes the user(s) to the specified room rank. Requires: @ # &`, - `/roomdeauth [comma-separated usernames] - Removes all room rank from the user(s). Requires: @ # &`, + `/roompromote OR /roomdemote [comma-separated usernames], [group symbol] - Promotes/demotes the user(s) to the specified room rank. Requires: @ # ~`, + `/room[group] [comma-separated usernames] - Promotes/demotes the user(s) to the specified room rank. Requires: @ # ~`, + `/roomdeauth [comma-separated usernames] - Removes all room rank from the user(s). Requires: @ # ~`, ], auth: 'authority', @@ -303,8 +303,6 @@ export const commands: Chat.ChatCommands = { const buffer = Utils.sortBy( Object.entries(rankLists) as [GroupSymbol, string[]][], ([symbol]) => -Users.Auth.getGroup(symbol).rank - ).filter( - ([symbol]) => symbol !== Users.SECTIONLEADER_SYMBOL ).map( ([symbol, names]) => ( `${(Config.groups[symbol] ? `**${Config.groups[symbol].name}s** (${symbol})` : symbol)}:\n` + @@ -467,7 +465,7 @@ export const commands: Chat.ChatCommands = { ], async autojoin(target, room, user, connection) { - const targets = target.split(','); + const targets = target.split(',').filter(Boolean); if (targets.length > 16 || connection.inRooms.size > 1) { return connection.popup("To prevent DoS attacks, you can only use /autojoin for 16 or fewer rooms, when you haven't joined any rooms yet. Please use /join for each room separately."); } @@ -544,7 +542,7 @@ export const commands: Chat.ChatCommands = { // If used in pms, staff, help tickets or battles, log the warn to the global modlog. const globalWarn = ( !room || ['staff', 'adminlog'].includes(room.roomid) || - room.roomid.startsWith('help-') || (room.battle && !room.parent) + room.roomid.startsWith('help-') || (room.battle && (!room.parent || room.parent.type !== 'chat')) ); const {targetUser, inputUsername, targetUsername, rest: reason} = this.splitUser(target); @@ -564,7 +562,7 @@ export const commands: Chat.ChatCommands = { `${targetID} was warned by ${user.name} while offline.${publicReason ? ` (${publicReason})` : ``}` ); this.globalModlog('WARN OFFLINE', targetUser || targetID, privateReason); - Punishments.offlineWarns.set(targetID, reason); + Punishments.offlineWarns.set(targetID, publicReason); if (saveReplay) this.parse('/savereplay forpunishment'); return; } @@ -614,7 +612,7 @@ export const commands: Chat.ChatCommands = { warnhelp: [ `/warn OR /k [username], [reason] - Warns a user showing them the site rules and [reason] in an overlay.`, `/warn OR /k [username], [reason] spoiler: [private reason] - Warns a user, marking [private reason] only in the modlog.`, - `Requires: % @ # &`, + `Requires: % @ # ~`, ], redirect: 'redir', @@ -658,7 +656,7 @@ export const commands: Chat.ChatCommands = { }, redirhelp: [ `/redirect OR /redir [username], [roomname] - [DEPRECATED]`, - `Attempts to redirect the [username] to the [roomname]. Requires: &`, + `Attempts to redirect the [username] to the [roomname]. Requires: ~`, ], m: 'mute', @@ -694,24 +692,30 @@ export const commands: Chat.ChatCommands = { } this.addModAction(`${targetUser.name} was muted by ${user.name} for ${Chat.toDurationString(muteDuration)}.${(publicReason ? ` (${publicReason})` : ``)}`); this.modlog(`${cmd.includes('h') ? 'HOUR' : ''}MUTE`, targetUser, privateReason); + this.update(); // force an update so the (hide lines from x user) message is on the mod action above + + const ids = [targetUser.getLastId()]; + if (ids[0] !== toID(inputUsername)) { + ids.push(toID(inputUsername)); + } + room.hideText(ids); + if (targetUser.autoconfirmed && targetUser.autoconfirmed !== targetUser.id) { const displayMessage = `${targetUser.name}'s ac account: ${targetUser.autoconfirmed}`; this.privateModAction(displayMessage); } - const userid = targetUser.getLastId(); - this.add(`|hidelines|unlink|${userid}`); - if (userid !== toID(inputUsername)) this.add(`|hidelines|unlink|${toID(inputUsername)}`); + Chat.runHandlers('onPunishUser', 'MUTE', user, room); room.mute(targetUser, muteDuration); }, - mutehelp: [`/mute OR /m [username], [reason] - Mutes a user with reason for 7 minutes. Requires: % @ # &`], + mutehelp: [`/mute OR /m [username], [reason] - Mutes a user with reason for 7 minutes. Requires: % @ # ~`], hm: 'hourmute', hourmute(target) { if (!target) return this.parse('/help hourmute'); this.run('mute'); }, - hourmutehelp: [`/hourmute OR /hm [username], [reason] - Mutes a user with reason for an hour. Requires: % @ # &`], + hourmutehelp: [`/hourmute OR /hm [username], [reason] - Mutes a user with reason for an hour. Requires: % @ # ~`], um: 'unmute', unmute(target, room, user) { @@ -733,7 +737,7 @@ export const commands: Chat.ChatCommands = { this.errorReply(`${(targetUser ? targetUser.name : targetUsername)} is not muted.`); } }, - unmutehelp: [`/unmute [username] - Removes mute from user. Requires: % @ # &`], + unmutehelp: [`/unmute [username] - Removes mute from user. Requires: % @ # ~`], rb: 'ban', weekban: 'ban', @@ -793,11 +797,12 @@ export const commands: Chat.ChatCommands = { ); } - this.addModAction(`${name} was banned ${week ? ' for a week' : ''} from ${room.title} by ${user.name}.${publicReason ? ` (${publicReason})` : ``}`); + this.addModAction(`${name} was banned${week ? ' for a week' : ''} from ${room.title} by ${user.name}.${publicReason ? ` (${publicReason})` : ``}`); const time = week ? Date.now() + 7 * 24 * 60 * 60 * 1000 : null; const affected = Punishments.roomBan(room, targetUser, time, null, privateReason); + for (const u of affected) Chat.runHandlers('onPunishUser', 'ROOMBAN', u, room); if (!room.settings.isPrivate && room.persist) { const acAccount = (targetUser.autoconfirmed !== userid && targetUser.autoconfirmed); let displayMessage = ''; @@ -822,8 +827,8 @@ export const commands: Chat.ChatCommands = { return true; }, banhelp: [ - `/ban [username], [reason] - Bans the user from the room you are in. Requires: @ # &`, - `/weekban [username], [reason] - Bans the user from the room you are in for a week. Requires: @ # &`, + `/ban [username], [reason] - Bans the user from the room you are in. Requires: @ # ~`, + `/weekban [username], [reason] - Bans the user from the room you are in for a week. Requires: @ # ~`, ], unroomban: 'unban', @@ -844,7 +849,7 @@ export const commands: Chat.ChatCommands = { this.errorReply(`User '${target}' is not banned from this room.`); } }, - unbanhelp: [`/unban [username] - Unbans the user from the room you are in. Requires: @ # &`], + unbanhelp: [`/unban [username] - Unbans the user from the room you are in. Requires: @ # ~`], forcelock: 'lock', forceweeklock: 'lock', @@ -918,6 +923,7 @@ export const commands: Chat.ChatCommands = { affected = await Punishments.lock(userid, duration, null, false, publicReason); } + for (const u of affected) Chat.runHandlers('onPunishUser', 'LOCK', u, room); this.globalModlog( (force ? `FORCE` : ``) + (week ? "WEEKLOCK" : (month ? "MONTHLOCK" : "LOCK")), targetUser || userid, privateReason ); @@ -968,7 +974,7 @@ export const commands: Chat.ChatCommands = { return true; }, lockhelp: [ - `/lock OR /l [username], [reason] - Locks the user from talking in all chats. Requires: % @ &`, + `/lock OR /l [username], [reason] - Locks the user from talking in all chats. Requires: % @ ~`, `/weeklock OR /wl [username], [reason] - Same as /lock, but locks users for a week.`, `/lock OR /l [username], [reason] spoiler: [private reason] - Marks [private reason] in modlog only.`, ], @@ -1062,12 +1068,12 @@ export const commands: Chat.ChatCommands = { this.privateGlobalModAction(`${user.name} unlocked the ${range ? "IP range" : "IP"}: ${target}`); this.globalModlog(`UNLOCK${range ? 'RANGE' : 'IP'}`, null, null, target); }, - unlockiphelp: [`/unlockip [ip] - Unlocks a punished ip while leaving the original punishment intact. Requires: @ &`], - unlocknamehelp: [`/unlockname [name] - Unlocks a punished alt, leaving the original lock intact. Requires: % @ &`], + unlockiphelp: [`/unlockip [ip] - Unlocks a punished ip while leaving the original punishment intact. Requires: @ ~`], + unlocknamehelp: [`/unlockname [name] - Unlocks a punished alt, leaving the original lock intact. Requires: % @ ~`], unlockhelp: [ - `/unlock [username] - Unlocks the user. Requires: % @ &`, - `/unlockname [username] - Unlocks a punished alt while leaving the original punishment intact. Requires: % @ &`, - `/unlockip [ip] - Unlocks a punished ip while leaving the original punishment intact. Requires: @ &`, + `/unlock [username] - Unlocks the user. Requires: % @ ~`, + `/unlockname [username] - Unlocks a punished alt while leaving the original punishment intact. Requires: % @ ~`, + `/unlockip [ip] - Unlocks a punished ip while leaving the original punishment intact. Requires: @ ~`, ], forceglobalban: 'globalban', @@ -1122,6 +1128,7 @@ export const commands: Chat.ChatCommands = { this.addGlobalModAction(`${name} was globally banned by ${user.name}.${(publicReason ? ` (${publicReason})` : ``)}`); const affected = await Punishments.ban(userid, null, null, false, publicReason); + for (const u of affected) Chat.runHandlers('onPunishUser', 'BAN', u, room); const acAccount = (targetUser && targetUser.autoconfirmed !== userid && targetUser.autoconfirmed); let displayMessage = ''; if (affected.length > 1) { @@ -1149,7 +1156,7 @@ export const commands: Chat.ChatCommands = { return true; }, globalbanhelp: [ - `/globalban OR /gban [username], [reason] - Kick user from all rooms and ban user's IP address with reason. Requires: @ &`, + `/globalban OR /gban [username], [reason] - Kick user from all rooms and ban user's IP address with reason. Requires: @ ~`, `/globalban OR /gban [username], [reason] spoiler: [private reason] - Marks [private reason] in modlog only.`, ], @@ -1167,7 +1174,7 @@ export const commands: Chat.ChatCommands = { this.addGlobalModAction(`${name} was globally unbanned by ${user.name}.`); this.globalModlog("UNBAN", target); }, - unglobalbanhelp: [`/unglobalban [username] - Unban a user. Requires: @ &`], + unglobalbanhelp: [`/unglobalban [username] - Unban a user. Requires: @ ~`], deroomvoiceall(target, room, user) { room = this.requireRoom(); @@ -1198,7 +1205,7 @@ export const commands: Chat.ChatCommands = { this.addModAction(`All ${count} roomvoices have been cleared by ${user.name}.`); this.modlog('DEROOMVOICEALL'); }, - deroomvoiceallhelp: [`/deroomvoiceall - Devoice all roomvoiced users. Requires: # &`], + deroomvoiceallhelp: [`/deroomvoiceall - Devoice all roomvoiced users. Requires: # ~`], // this is a separate command for two reasons // a - yearticketban is preferred over /ht yearban @@ -1248,7 +1255,7 @@ export const commands: Chat.ChatCommands = { }, yearticketbanhelp: [ `/yearticketban [IP/userid] - Ban an IP or a userid from opening tickets for a year. `, - `Accepts wildcards to ban ranges. Requires: &`, + `Accepts wildcards to ban ranges. Requires: ~`, ], rangeban: 'banip', @@ -1286,7 +1293,7 @@ export const commands: Chat.ChatCommands = { }, baniphelp: [ `/banip [ip] OR /yearbanip [ip] - Globally bans this IP or IP range for an hour. Accepts wildcards to ban ranges.`, - `Existing users on the IP will not be banned. Requires: &`, + `Existing users on the IP will not be banned. Requires: ~`, ], unrangeban: 'unbanip', @@ -1304,7 +1311,7 @@ export const commands: Chat.ChatCommands = { this.addGlobalModAction(`${user.name} unbanned the ${(target.endsWith('*') ? "IP range" : "IP")}: ${target}`); this.modlog('UNRANGEBAN', null, target); }, - unbaniphelp: [`/unbanip [ip] - Unbans. Accepts wildcards to ban ranges. Requires: &`], + unbaniphelp: [`/unbanip [ip] - Unbans. Accepts wildcards to ban ranges. Requires: ~`], forceyearlockname: 'yearlockname', yearlockid: 'yearlockname', @@ -1360,11 +1367,7 @@ export const commands: Chat.ChatCommands = { const type = cmd.includes('name') ? 'NAMELOCK' : 'LOCK'; Punishments.punishRange(ip, reason, time, type); - if (year) { - this.addGlobalModAction(`${user.name} year-${type.toLowerCase()}ed the ${ipDesc}: ${reason}`); - } else { - this.addGlobalModAction(`${user.name} hour-${type.toLowerCase()}ed the ${ipDesc}: ${reason}`); - } + this.addGlobalModAction(`${user.name} ${year ? 'year' : 'hour'}-${type.toLowerCase()}ed the ${ipDesc}: ${reason}`); this.globalModlog( `${year ? 'YEAR' : 'RANGE'}${type}`, null, @@ -1376,7 +1379,7 @@ export const commands: Chat.ChatCommands = { `/lockip [ip] - Globally locks this IP or IP range for an hour. Accepts wildcards to ban ranges.`, `/yearlockip [ip] - Globally locks this IP or IP range for one year. Accepts wildcards to ban ranges.`, `/yearnamelockip [ip] - Namelocks this IP or IP range for one year. Accepts wildcards to ban ranges.`, - `Existing users on the IP will not be banned. Requires: &`, + `Existing users on the IP will not be banned. Requires: ~`, ], /********************************************************* @@ -1424,7 +1427,10 @@ export const commands: Chat.ChatCommands = { this.privateModAction(`${user.name} notes: ${target}`); }, - modnotehelp: [`/modnote [note] - Adds a moderator note that can be read through modlog. Requires: % @ # &`], + modnotehelp: [ + `/modnote - Adds a moderator note that can be read through modlog. Requires: % @ # ~`, + `/modnote [] - Adds a moderator note to a user's modlog that can be read through modlog. Requires: % @ # ~`, + ], globalpromote: 'promote', promote(target, room, user, connection, cmd) { @@ -1500,7 +1506,7 @@ export const commands: Chat.ChatCommands = { } } }, - promotehelp: [`/promote [username], [group] - Promotes the user to the specified group. Requires: &`], + promotehelp: [`/promote [username], [group] - Promotes the user to the specified group. Requires: ~`], untrustuser: 'trustuser', unconfirmuser: 'trustuser', @@ -1559,8 +1565,8 @@ export const commands: Chat.ChatCommands = { } }, trustuserhelp: [ - `/trustuser [username] - Trusts the user (makes them immune to locks). Requires: &`, - `/untrustuser [username] - Removes the trusted user status from the user. Requires: &`, + `/trustuser [username] - Trusts the user (makes them immune to locks). Requires: ~`, + `/untrustuser [username] - Removes the trusted user status from the user. Requires: ~`, ], desectionleader: 'sectionleader', @@ -1579,19 +1585,10 @@ export const commands: Chat.ChatCommands = { } else if (!Users.globalAuth.sectionLeaders.has(targetUser?.id || userid) && demoting) { throw new Chat.ErrorMessage(`${name} is not a Section Leader.`); } - const staffRoom = Rooms.get('staff'); if (!demoting) { Users.globalAuth.setSection(userid, section); this.addGlobalModAction(`${name} was appointed Section Leader of ${RoomSections.sectionNames[section]} by ${user.name}.`); this.globalModlog(`SECTION LEADER`, userid, section); - if (targetUser) { - // do not use global /forcepromote - if (!Users.globalAuth.atLeast(targetUser, Users.SECTIONLEADER_SYMBOL)) { - this.parse(`/globalsectionleader ${userid}`); - } - } else { - this.sendReply(`User ${userid} is offline and unrecognized, and so can't be globally promoted.`); - } targetUser?.popup(`You were appointed Section Leader of ${RoomSections.sectionNames[section]} by ${user.name}.`); } else { const group = Users.globalAuth.get(userid); @@ -1599,7 +1596,6 @@ export const commands: Chat.ChatCommands = { this.privateGlobalModAction(`${name} was demoted from Section Leader of ${RoomSections.sectionNames[section]} by ${user.name}.`); if (group === ' ') this.sendReply(`They are also no longer manually trusted. If they should be, use '/trustuser'.`); this.globalModlog(`DESECTION LEADER`, userid, section); - if (staffRoom?.auth.getDirect(userid) as any === '\u25B8') this.parse(`/msgroom staff,/roomdeauth ${userid}`); targetUser?.popup(`You were demoted from Section Leader of ${RoomSections.sectionNames[section]} by ${user.name}.`); } @@ -1616,7 +1612,7 @@ export const commands: Chat.ChatCommands = { `/desectionleader [target user] - Demotes [target user] from Section Leader.`, `Valid sections: ${RoomSections.sections.join(', ')}`, `If you want to change which section someone leads, demote them and then re-promote them in the desired section.`, - `Requires: &`, + `Requires: ~`, ], globaldemote: 'demote', @@ -1624,7 +1620,7 @@ export const commands: Chat.ChatCommands = { if (!target) return this.parse('/help demote'); this.run('promote'); }, - demotehelp: [`/demote [username], [group] - Demotes the user to the specified group. Requires: &`], + demotehelp: [`/demote [username], [group] - Demotes the user to the specified group. Requires: ~`], forcepromote(target, room, user, connection) { // warning: never document this command in /help @@ -1681,7 +1677,7 @@ export const commands: Chat.ChatCommands = { this.add(Utils.html`|raw|
${target}
`); this.modlog('DECLARE', null, target); }, - declarehelp: [`/declare [message] - Anonymously announces a message. Requires: # * &`], + declarehelp: [`/declare [message] - Anonymously announces a message. Requires: # * ~`], htmldeclare(target, room, user) { if (!target) return this.parse('/help htmldeclare'); @@ -1699,7 +1695,7 @@ export const commands: Chat.ChatCommands = { this.add(`|raw|
${target}
`); this.modlog(`HTMLDECLARE`, null, target); }, - htmldeclarehelp: [`/htmldeclare [message] - Anonymously announces a message using safe HTML. Requires: # * &`], + htmldeclarehelp: [`/htmldeclare [message] - Anonymously announces a message using safe HTML. Requires: # * ~`], gdeclare: 'globaldeclare', globaldeclare(target, room, user) { @@ -1708,11 +1704,11 @@ export const commands: Chat.ChatCommands = { this.checkHTML(target); for (const u of Users.users.values()) { - if (u.connected) u.send(`|pm|&|${u.tempGroup}${u.name}|/raw
${target}
`); + if (u.connected) u.send(`|pm|~|${u.tempGroup}${u.name}|/raw
${target}
`); } this.globalModlog(`GLOBALDECLARE`, null, target); }, - globaldeclarehelp: [`/globaldeclare [message] - Anonymously sends a private message to all the users on the site. Requires: &`], + globaldeclarehelp: [`/globaldeclare [message] - Anonymously sends a private message to all the users on the site. Requires: ~`], cdeclare: 'chatdeclare', chatdeclare(target, room, user) { @@ -1727,7 +1723,7 @@ export const commands: Chat.ChatCommands = { } this.globalModlog(`CHATDECLARE`, null, target); }, - chatdeclarehelp: [`/cdeclare [message] - Anonymously announces a message to all chatrooms on the server. Requires: &`], + chatdeclarehelp: [`/cdeclare [message] - Anonymously announces a message to all chatrooms on the server. Requires: ~`], wall: 'announce', announce(target, room, user) { @@ -1739,7 +1735,7 @@ export const commands: Chat.ChatCommands = { return `/announce ${target}`; }, - announcehelp: [`/announce OR /wall [message] - Makes an announcement. Requires: % @ # &`], + announcehelp: [`/announce OR /wall [message] - Makes an announcement. Requires: % @ # ~`], notifyoffrank: 'notifyrank', notifyrank(target, room, user, connection, cmd) { @@ -1775,8 +1771,8 @@ export const commands: Chat.ChatCommands = { } }, notifyrankhelp: [ - `/notifyrank [rank], [title], [message], [highlight] - Sends a notification to users who are [rank] or higher (and highlight on [highlight], if specified). Requires: # * &`, - `/notifyoffrank [rank] - Closes the notification previously sent with /notifyrank [rank]. Requires: # * &`, + `/notifyrank [rank], [title], [message], [highlight] - Sends a notification to users who are [rank] or higher (and highlight on [highlight], if specified). Requires: # * ~`, + `/notifyoffrank [rank] - Closes the notification previously sent with /notifyrank [rank]. Requires: # * ~`, ], notifyoffuser: 'notifyuser', @@ -1804,8 +1800,8 @@ export const commands: Chat.ChatCommands = { } }, notifyuserhelp: [ - `/notifyuser [username], [title], [message] - Sends a notification to [user]. Requires: # * &`, - `/notifyoffuser [user] - Closes the notification previously sent with /notifyuser [user]. Requires: # * &`, + `/notifyuser [username], [title], [message] - Sends a notification to [user]. Requires: # * ~`, + `/notifyoffuser [user] - Closes the notification previously sent with /notifyuser [user]. Requires: # * ~`, ], fr: 'forcerename', @@ -1869,8 +1865,8 @@ export const commands: Chat.ChatCommands = { return true; }, forcerenamehelp: [ - `/forcerename OR /fr [username], [reason] - Forcibly change a user's name and shows them the [reason]. Requires: % @ &`, - `/allowname [username] - Unmarks a forcerenamed username, stopping staff from being notified when it is used. Requires % @ &`, + `/forcerename OR /fr [username], [reason] - Forcibly change a user's name and shows them the [reason]. Requires: % @ ~`, + `/allowname [username] - Unmarks a forcerenamed username, stopping staff from being notified when it is used. Requires % @ ~`, ], nfr: 'noforcerename', @@ -1968,6 +1964,7 @@ export const commands: Chat.ChatCommands = { } const duration = week ? 7 * 24 * 60 * 60 * 1000 : 48 * 60 * 60 * 1000; await Punishments.namelock(userid, Date.now() + duration, null, false, publicReason); + if (targetUser) Chat.runHandlers('onPunishUser', 'NAMELOCK', targetUser, room); // Automatically upload replays as evidence/reference to the punishment if (room?.battle) this.parse('/savereplay forpunishment'); Monitor.forceRenames.set(userid, false); @@ -1984,7 +1981,7 @@ export const commands: Chat.ChatCommands = { return true; }, - namelockhelp: [`/namelock OR /nl [user], [reason] - Name locks a [user] and shows the [reason]. Requires: % @ &`], + namelockhelp: [`/namelock OR /nl [user], [reason] - Name locks a [user] and shows the [reason]. Requires: % @ ~`], unl: 'unnamelock', unnamelock(target, room, user) { @@ -2007,7 +2004,7 @@ export const commands: Chat.ChatCommands = { if (!reason) this.globalModlog("UNNAMELOCK", toID(target)); if (targetUser) targetUser.popup(`${user.name} has unnamelocked you.`); }, - unnamelockhelp: [`/unnamelock [username] - Unnamelocks the user. Requires: % @ &`], + unnamelockhelp: [`/unnamelock [username] - Unnamelocks the user. Requires: % @ ~`], hidetextalts: 'hidetext', hidealttext: 'hidetext', @@ -2084,9 +2081,9 @@ export const commands: Chat.ChatCommands = { } }, hidetexthelp: [ - `/hidetext [username], [optional reason] - Removes a user's messages from chat, with an optional reason. Requires: % @ # &`, - `/hidealtstext [username], [optional reason] - Removes a user's messages and their alternate accounts' messages from the chat, with an optional reason. Requires: % @ # &`, - `/hidelines [username], [number], [optional reason] - Removes the [number] most recent messages from a user, with an optional reason. Requires: % @ # &`, + `/hidetext [username], [optional reason] - Removes a user's messages from chat, with an optional reason. Requires: % @ # ~`, + `/hidealtstext [username], [optional reason] - Removes a user's messages and their alternate accounts' messages from the chat, with an optional reason. Requires: % @ # ~`, + `/hidelines [username], [number], [optional reason] - Removes the [number] most recent messages from a user, with an optional reason. Requires: % @ # ~`, `Use /cleartext, /clearaltstext, and /clearlines to remove messages without displaying a button to reveal them.`, ], @@ -2094,6 +2091,9 @@ export const commands: Chat.ChatCommands = { bl: 'blacklist', forceblacklist: 'blacklist', forcebl: 'blacklist', + permanentblacklist: 'blacklist', + permablacklist: 'blacklist', + permabl: 'blacklist', blacklist(target, room, user, connection, cmd) { room = this.requireRoom(); if (!target) return this.parse('/help blacklist'); @@ -2143,10 +2143,18 @@ export const commands: Chat.ChatCommands = { ); } - this.privateModAction(`${name} was blacklisted from ${room.title} by ${user.name}.${reason ? ` (${reason})` : ''}`); - const affected = Punishments.roomBlacklist(room, targetUser, null, null, reason); + const expireTime = cmd.includes('perma') ? Date.now() + (10 * 365 * 24 * 60 * 60 * 1000) : null; + const action = expireTime ? 'PERMABLACKLIST' : 'BLACKLIST'; + + this.privateModAction( + `${name} was blacklisted from ${room.title} by ${user.name}${expireTime ? ' for ten years' : ''}.` + + `${reason ? ` (${reason})` : ''}` + ); + + const affected = Punishments.roomBlacklist(room, targetUser, expireTime, null, reason); + for (const u of affected) Chat.runHandlers('onPunishUser', 'BLACKLIST', u, room); if (!room.settings.isPrivate && room.persist) { const acAccount = (targetUser.autoconfirmed !== userid && targetUser.autoconfirmed); let displayMessage = ''; @@ -2160,18 +2168,19 @@ export const commands: Chat.ChatCommands = { } if (!room.settings.isPrivate && room.persist) { - this.globalModlog("BLACKLIST", targetUser, reason); + this.globalModlog(action, targetUser, reason); } else { // Room modlog only - this.modlog("BLACKLIST", targetUser, reason); + this.modlog(action, targetUser, reason); } return true; }, blacklisthelp: [ - `/blacklist [username], [reason] - Blacklists the user from the room you are in for a year. Requires: # &`, - `/unblacklist [username] - Unblacklists the user from the room you are in. Requires: # &`, - `/showblacklist OR /showbl - show a list of blacklisted users in the room. Requires: % @ # &`, - `/expiringblacklists OR /expiringbls - show a list of blacklisted users from the room whose blacklists are expiring in 3 months or less. Requires: % @ # &`, + `/blacklist [username], [reason] - Blacklists the user from the room you are in for a year. Requires: # ~`, + `/permablacklist OR /permabl - blacklist a user for 10 years. Requires: # ~`, + `/unblacklist [username] - Unblacklists the user from the room you are in. Requires: # ~`, + `/showblacklist OR /showbl - show a list of blacklisted users in the room. Requires: % @ # ~`, + `/expiringblacklists OR /expiringbls - show a list of blacklisted users from the room whose blacklists are expiring in 3 months or less. Requires: % @ # ~`, ], forcebattleban: 'battleban', @@ -2221,7 +2230,7 @@ export const commands: Chat.ChatCommands = { }, battlebanhelp: [ `/battleban [username], [reason] - [DEPRECATED]`, - `Prevents the user from starting new battles for 2 days and shows them the [reason]. Requires: &`, + `Prevents the user from starting new battles for 2 days and shows them the [reason]. Requires: ~`, ], unbattleban(target, room, user) { @@ -2239,7 +2248,7 @@ export const commands: Chat.ChatCommands = { this.errorReply(`User ${target} is not banned from battling.`); } }, - unbattlebanhelp: [`/unbattleban [username] - [DEPRECATED] Allows a user to battle again. Requires: % @ &`], + unbattlebanhelp: [`/unbattleban [username] - [DEPRECATED] Allows a user to battle again. Requires: % @ ~`], monthgroupchatban: 'groupchatban', monthgcban: 'groupchatban', @@ -2303,7 +2312,7 @@ export const commands: Chat.ChatCommands = { groupchatbanhelp: [ `/groupchatban [user], [optional reason]`, `/monthgroupchatban [user], [optional reason]`, - `Bans the user from joining or creating groupchats for a week (or month). Requires: % @ &`, + `Bans the user from joining or creating groupchats for a week (or month). Requires: % @ ~`, ], ungcban: 'ungroupchatban', @@ -2324,9 +2333,10 @@ export const commands: Chat.ChatCommands = { this.errorReply(`User ${target} is not banned from using groupchats.`); } }, - ungroupchatbanhelp: [`/ungroupchatban [user] - Allows a groupchatbanned user to use groupchats again. Requires: % @ &`], + ungroupchatbanhelp: [`/ungroupchatban [user] - Allows a groupchatbanned user to use groupchats again. Requires: % @ ~`], nameblacklist: 'blacklistname', + permablacklistname: 'blacklistname', blacklistname(target, room, user) { room = this.requireRoom(); if (!target) return this.parse('/help blacklistname'); @@ -2350,6 +2360,8 @@ export const commands: Chat.ChatCommands = { if (duplicates.length) { return this.errorReply(`[${duplicates.join(', ')}] ${Chat.plural(duplicates, "are", "is")} already blacklisted.`); } + const expireTime = this.cmd.includes('perma') ? Date.now() + (10 * 365 * 24 * 60 * 60 * 1000) : null; + const action = expireTime ? 'PERMANAMEBLACKLIST' : 'NAMEBLACKLIST'; for (const userid of targets) { if (!userid) return this.errorReply(`User '${userid}' is not a valid userid.`); @@ -2357,24 +2369,26 @@ export const commands: Chat.ChatCommands = { return this.errorReply(`/blacklistname - Access denied: ${userid} is of equal or higher authority than you.`); } - Punishments.roomBlacklist(room, userid, null, null, reason); + Punishments.roomBlacklist(room, userid, expireTime, null, reason); const trusted = Users.isTrusted(userid); if (trusted && room.settings.isPrivate !== true) { Monitor.log(`[CrisisMonitor] Trusted user ${userid}${(trusted !== userid ? ` (${trusted})` : ``)} was nameblacklisted from ${room.roomid} by ${user.name}, and should probably be demoted.`); } if (!room.settings.isPrivate && room.persist) { - this.globalModlog("NAMEBLACKLIST", userid, reason); + this.globalModlog(action, userid, reason); } } this.privateModAction( - `${targets.join(', ')}${Chat.plural(targets, " were", " was")} nameblacklisted from ${room.title} by ${user.name}.` + `${targets.join(', ')}${Chat.plural(targets, " were", " was")} nameblacklisted from ${room.title} by ${user.name}` + + `${expireTime ? ' for ten years' : ''}.` ); return true; }, blacklistnamehelp: [ - `/blacklistname OR /nameblacklist [name1, name2, etc.] | reason - Blacklists all name(s) from the room you are in for a year. Requires: # &`, + `/blacklistname OR /nameblacklist [name1, name2, etc.] | reason - Blacklists all name(s) from the room you are in for a year. Requires: # ~`, + `/permablacklistname [name1, name2, etc.] | reason - Blacklists all name(s) from the room you are in for 10 years. Requires: # ~`, ], unab: 'unblacklist', @@ -2394,7 +2408,7 @@ export const commands: Chat.ChatCommands = { this.errorReply(`User '${target}' is not blacklisted.`); } }, - unblacklisthelp: [`/unblacklist [username] - Unblacklists the user from the room you are in. Requires: # &`], + unblacklisthelp: [`/unblacklist [username] - Unblacklists the user from the room you are in. Requires: # ~`], unblacklistall(target, room, user) { room = this.requireRoom(); @@ -2416,7 +2430,7 @@ export const commands: Chat.ChatCommands = { this.modlog('UNBLACKLISTALL'); this.roomlog(`Unblacklisted users: ${unblacklisted.join(', ')}`); }, - unblacklistallhelp: [`/unblacklistall - Unblacklists all blacklisted users in the current room. Requires: # &`], + unblacklistallhelp: [`/unblacklistall - Unblacklists all blacklisted users in the current room. Requires: # ~`], expiringbls: 'showblacklist', expiringblacklists: 'showblacklist', @@ -2480,7 +2494,7 @@ export const commands: Chat.ChatCommands = { this.sendReplyBox(buf); }, showblacklisthelp: [ - `/showblacklist OR /showbl - show a list of blacklisted users in the room. Requires: % @ # &`, - `/expiringblacklists OR /expiringbls - show a list of blacklisted users from the room whose blacklists are expiring in 3 months or less. Requires: % @ # &`, + `/showblacklist OR /showbl - show a list of blacklisted users in the room. Requires: % @ # ~`, + `/expiringblacklists OR /expiringbls - show a list of blacklisted users from the room whose blacklists are expiring in 3 months or less. Requires: % @ # ~`, ], }; diff --git a/server/chat-commands/room-settings.ts b/server/chat-commands/room-settings.ts index 922af4409401..c8e790f85b79 100644 --- a/server/chat-commands/room-settings.ts +++ b/server/chat-commands/room-settings.ts @@ -89,7 +89,7 @@ export const commands: Chat.ChatCommands = { if ( room.settings.modchat && room.settings.modchat.length <= 1 && !room.auth.atLeast(user, room.settings.modchat) && - // Upper Staff should probably be able to set /modchat & in secret rooms + // Upper Staff should probably be able to set /modchat ~ in secret rooms !user.can('bypassall') ) { return this.errorReply(`/modchat - Access denied for changing a setting currently at ${room.settings.modchat}.`); @@ -161,7 +161,7 @@ export const commands: Chat.ChatCommands = { room.saveSettings(); }, modchathelp: [ - `/modchat [off/autoconfirmed/trusted/+/%/@/*/player/#/&] - Set the level of moderated chat. Requires: % \u2606 for off/autoconfirmed/+ options, * @ # & for all the options`, + `/modchat [off/autoconfirmed/trusted/+/%/@/*/player/#/~] - Set the level of moderated chat. Requires: % \u2606 for off/autoconfirmed/+/player options, * @ # ~ for all the options`, ], automodchat(target, room, user) { @@ -191,7 +191,7 @@ export const commands: Chat.ChatCommands = { return this.parse(`/help automodchat`); } } - const validGroups = [...Config.groupsranking as string[], 'trusted']; + const validGroups = [...Config.groupsranking as string[], 'trusted', 'autoconfirmed']; if (!validGroups.includes(rank)) { return this.errorReply(`Invalid rank.`); } @@ -212,7 +212,7 @@ export const commands: Chat.ChatCommands = { }, automodchathelp: [ `/automodchat [number], [rank] - Sets modchat [rank] to automatically turn on after [number] minutes with no staff.`, - `[number] must be between 5 and 480. Requires: # &`, + `[number] must be between 5 and 480. Requires: # ~`, `/automodchat off - Turns off automodchat.`, ], @@ -253,7 +253,7 @@ export const commands: Chat.ChatCommands = { } }, inviteonlyhelp: [ - `/inviteonly [on|off] - Sets modjoin %. Users can't join unless invited with /invite. Requires: # &`, + `/inviteonly [on|off] - Sets modjoin %. Users can't join unless invited with /invite. Requires: # ~`, `/ioo - Shortcut for /inviteonly on`, `/inviteonlynext OR /ionext - Sets your next battle to be invite-only.`, `/ionext off - Sets your next battle to be publicly visible.`, @@ -342,8 +342,8 @@ export const commands: Chat.ChatCommands = { if (!room.settings.isPrivate) return this.parse('/hiddenroom'); }, modjoinhelp: [ - `/modjoin [+|%|@|*|player|&|#|off] - Sets modjoin. Users lower than the specified rank can't join this room unless they have a room rank. Requires: \u2606 # &`, - `/modjoin [sync|off] - Sets modjoin. Only users who can speak in modchat can join this room. Requires: \u2606 # &`, + `/modjoin [+|%|@|*|player|~|#|off] - Sets modjoin. Users lower than the specified rank can't join this room unless they have a room rank. Requires: \u2606 # ~`, + `/modjoin [sync|off] - Sets modjoin. Only users who can speak in modchat can join this room. Requires: \u2606 # ~`, ], roomlanguage(target, room, user) { @@ -363,7 +363,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`The room's language has been set to ${Chat.languages.get(targetLanguage)}`); }, roomlanguagehelp: [ - `/roomlanguage [language] - Sets the the language for the room, which changes language of a few commands. Requires # &`, + `/roomlanguage [language] - Sets the the language for the room, which changes language of a few commands. Requires # ~`, `Supported Languages: English, Spanish, Italian, French, Simplified Chinese, Traditional Chinese, Japanese, Hindi, Turkish, Dutch, German.`, ], @@ -399,23 +399,30 @@ export const commands: Chat.ChatCommands = { room.saveSettings(); }, slowchathelp: [ - `/slowchat [number] - Sets a limit on how often users in the room can send messages, between 2 and 60 seconds. Requires @ # &`, - `/slowchat off - Disables slowchat in the room. Requires @ # &`, + `/slowchat [number] - Sets a limit on how often users in the room can send messages, between 2 and 60 seconds. Requires % @ # ~`, + `/slowchat off - Disables slowchat in the room. Requires % @ # ~`, ], permission: 'permissions', permissions: { clear: 'set', set(target, room, user) { - let [perm, rank] = this.splitOne(target); + const [perm, displayRank] = this.splitOne(target); room = this.requireRoom(); + let rank = displayRank; if (rank === 'default') rank = ''; + if (rank === 'all users') rank = Users.Auth.defaultSymbol(); if (!room.persist) return this.errorReply(`This room does not allow customizing permissions.`); if (!target || !perm) return this.parse(`/permissions help`); if (rank && rank !== 'whitelist' && !Config.groupsranking.includes(rank as EffectiveGroupSymbol)) { return this.errorReply(`${rank} is not a valid rank.`); } const validPerms = Users.Auth.supportedRoomPermissions(room); - if (!validPerms.some(p => p === perm || p.startsWith(`${perm} `))) { + const sanitizedPerm = perm.replace('!', '/'); // handles ! commands so we don't have to add commands to the array twice + if (!validPerms.some(p => ( + // we need to check the raw permissions also because broadcast permissions are listed with the ! + p === sanitizedPerm || p === perm || + p.startsWith(`${sanitizedPerm} `) || p.startsWith(`${perm} `) + ))) { return this.errorReply(`${perm} is not a valid room permission.`); } if (!room.auth.atLeast(user, '#')) { @@ -430,7 +437,7 @@ export const commands: Chat.ChatCommands = { const currentPermissions = room.settings.permissions || {}; if (currentPermissions[perm] === (rank || undefined)) { - return this.errorReply(`${perm} is already set to ${rank || 'default'}.`); + return this.errorReply(`${perm} is already set to ${displayRank || 'default'}.`); } if (rank) { @@ -442,14 +449,13 @@ export const commands: Chat.ChatCommands = { } room.saveSettings(); - if (!rank) rank = `default`; - this.modlog(`SETPERMISSION`, null, `${perm}: ${rank}`); + this.modlog(`SETPERMISSION`, null, `${perm}: ${displayRank}`); this.refreshPage(`permissions-${room.roomid}`); - return this.privateModAction(`${user.name} set the required rank for ${perm} to ${rank}.`); + return this.privateModAction(`${user.name} set the required rank for ${perm} to ${displayRank}.`); }, sethelp: [ - `/permissions set [command], [rank symbol] - sets the required permission to use the command [command] to [rank]. Requires: # &`, - `/permissions clear [command] - resets the required permission to use the command [command] to the default. Requires: # &`, + `/permissions set [command], [rank symbol] - sets the required permission to use the command [command] to [rank]. Requires: # ~`, + `/permissions clear [command] - resets the required permission to use the command [command] to the default. Requires: # ~`, ], view(target, room, user) { room = this.requireRoom(); @@ -461,17 +467,19 @@ export const commands: Chat.ChatCommands = { room = this.requireRoom(); const allPermissions = Users.Auth.supportedRoomPermissions(room); - const permissionGroups = allPermissions.filter(perm => !perm.startsWith('/')); + const permissionGroups = allPermissions.filter(perm => !perm.startsWith('/') && !perm.startsWith('!')); const permissions = allPermissions.filter(perm => { const handler = Chat.parseCommand(perm)?.handler; if (handler?.isPrivate && !user.can('lock')) return false; - return perm.startsWith('/') && !perm.includes(' '); - }); - const subPermissions = allPermissions.filter(perm => perm.startsWith('/') && perm.includes(' ')).filter(perm => { - const handler = Chat.parseCommand(perm)?.handler; - if (handler?.isPrivate && !user.can('lock')) return false; - return perm.startsWith('/') && perm.includes(' '); + return (perm.startsWith('/') || perm.startsWith('!')) && !perm.includes(' '); }); + const subPermissions = allPermissions + .filter(perm => (perm.startsWith('/') || perm.startsWith('!')) && perm.includes(' ')) + .filter(perm => { + const handler = Chat.parseCommand(perm)?.handler; + if (handler?.isPrivate && !user.can('lock')) return false; + return (perm.startsWith('/') || perm.startsWith('!')) && perm.includes(' '); + }); const subPermissionsByNamespace: {[k: string]: string[]} = {}; for (const perm of subPermissions) { const [namespace] = perm.split(' ', 1); @@ -487,6 +495,7 @@ export const commands: Chat.ChatCommands = { buffer += `

Group permissions: (will affect multiple commands or part of one command)
`; buffer += `` + permissionGroups.join(` `) + `

`; buffer += `

Single-command permissions: (will affect one command)`; + buffer += `Permissions starting with ! are for broadcasting the command, not using it.
`; buffer += `` + permissions.join(` `) + `

`; buffer += `

Sub-commands: (will affect one sub-command, like /roomevents view)`; for (const subPerms of Object.values(subPermissionsByNamespace)) { @@ -522,7 +531,7 @@ export const commands: Chat.ChatCommands = { room.saveSettings(); }, stretchfilterhelp: [ - `/stretchfilter [on/off] - Toggles filtering messages in the room for stretchingggggggg. Requires # &`, + `/stretchfilter [on/off] - Toggles filtering messages in the room for stretchingggggggg. Requires # ~`, ], capitals: 'capsfilter', @@ -551,7 +560,7 @@ export const commands: Chat.ChatCommands = { room.saveSettings(); }, - capsfilterhelp: [`/capsfilter [on/off] - Toggles filtering messages in the room for EXCESSIVE CAPS. Requires # &`], + capsfilterhelp: [`/capsfilter [on/off] - Toggles filtering messages in the room for EXCESSIVE CAPS. Requires # ~`], emojis: 'emojifilter', emoji: 'emojifilter', @@ -579,7 +588,7 @@ export const commands: Chat.ChatCommands = { room.saveSettings(); }, - emojifilterhelp: [`/emojifilter [on/off] - Toggles filtering messages in the room for emojis. Requires # &`], + emojifilterhelp: [`/emojifilter [on/off] - Toggles filtering messages in the room for emojis. Requires # ~`], linkfilter(target, room, user) { room = this.requireRoom(); @@ -606,7 +615,7 @@ export const commands: Chat.ChatCommands = { room.saveSettings(); }, - linkfilterhelp: [`/linkfilter [on/off] - Toggles filtering messages in the room for links. Requires # &`], + linkfilterhelp: [`/linkfilter [on/off] - Toggles filtering messages in the room for links. Requires # ~`], banwords: 'banword', banword: { @@ -720,10 +729,10 @@ export const commands: Chat.ChatCommands = { }, }, banwordhelp: [ - `/banword add [words] - Adds the comma-separated list of phrases to the banword list of the current room. Requires: # &`, - `/banword addregex [words] - Adds the comma-separated list of regular expressions to the banword list of the current room. Requires &`, - `/banword delete [words] - Removes the comma-separated list of phrases from the banword list. Requires: # &`, - `/banword list - Shows the list of banned words in the current room. Requires: % @ # &`, + `/banword add [words] - Adds the comma-separated list of phrases to the banword list of the current room. Requires: # ~`, + `/banword addregex [words] - Adds the comma-separated list of regular expressions to the banword list of the current room. Requires ~`, + `/banword delete [words] - Removes the comma-separated list of phrases from the banword list. Requires: # ~`, + `/banword list - Shows the list of banned words in the current room. Requires: % @ # ~`, ], showapprovals(target, room, user) { @@ -755,7 +764,7 @@ export const commands: Chat.ChatCommands = { }, showapprovalshelp: [ `/showapprovals [setting] - Enable or disable the use of media approvals in the current room.`, - `Requires: # &`, + `Requires: # ~`, ], showmedia(target, room, user) { @@ -766,7 +775,7 @@ export const commands: Chat.ChatCommands = { hightraffic(target, room, user) { room = this.requireRoom(); if (!target) { - return this.sendReply(`This room is: ${room.settings.highTraffic ? 'high traffic' : 'low traffic'}`); + return this.sendReply(`This room is: ${room.settings.highTraffic ? 'high' : 'low'} traffic`); } this.checkCan('makeroom'); @@ -779,10 +788,10 @@ export const commands: Chat.ChatCommands = { } room.saveSettings(); this.modlog(`HIGHTRAFFIC`, null, `${!!room.settings.highTraffic}`); - this.addModAction(`This room was marked as high traffic by ${user.name}.`); + this.addModAction(`This room was marked as ${room.settings.highTraffic ? 'high' : 'low'} traffic by ${user.name}.`); }, hightraffichelp: [ - `/hightraffic [on|off] - (Un)marks a room as a high traffic room. Requires &`, + `/hightraffic [on|off] - (Un)marks a room as a high traffic room. Requires ~`, `When a room is marked as high-traffic, PS requires all messages sent to that room to contain at least 2 letters.`, ], @@ -798,7 +807,7 @@ export const commands: Chat.ChatCommands = { const id = toID(target); if (!id || this.cmd === 'makechatroom') return this.parse('/help makechatroom'); if (!Rooms.global.addChatRoom(target)) { - return this.errorReply(`An error occurred while trying to create the room '${target}'.`); + return this.errorReply(`The room '${target}' already exists or it is using an invalid title.`); } const targetRoom = Rooms.search(target); @@ -824,8 +833,8 @@ export const commands: Chat.ChatCommands = { } }, makechatroomhelp: [ - `/makeprivatechatroom [roomname] - Creates a new private room named [roomname]. Requires: &`, - `/makepublicchatroom [roomname] - Creates a new public room named [roomname]. Requires: &`, + `/makeprivatechatroom [roomname] - Creates a new private room named [roomname]. Requires: ~`, + `/makepublicchatroom [roomname] - Creates a new public room named [roomname]. Requires: ~`, ], subroomgroupchat: 'makegroupchat', @@ -965,7 +974,7 @@ export const commands: Chat.ChatCommands = { return this.errorReply(`The room "${target}" isn't registered.`); }, deregisterchatroomhelp: [ - `/deregisterchatroom [roomname] - Deletes room [roomname] after the next server restart. Requires: &`, + `/deregisterchatroom [roomname] - Deletes room [roomname] after the next server restart. Requires: ~`, ], deletechatroom: 'deleteroom', @@ -1024,8 +1033,8 @@ export const commands: Chat.ChatCommands = { room.destroy(); }, deleteroomhelp: [ - `/deleteroom [roomname] - Deletes room [roomname]. Must be typed in the room to delete. Requires: &`, - `/deletegroupchat - Deletes the current room, if it's a groupchat. Requires: ★ # &`, + `/deleteroom [roomname] - Deletes room [roomname]. Must be typed in the room to delete. Requires: ~`, + `/deletegroupchat - Deletes the current room, if it's a groupchat. Requires: ★ # ~`, ], rename() { @@ -1060,15 +1069,15 @@ export const commands: Chat.ChatCommands = { if (target.includes(',') || target.includes('|') || target.includes('[') || target.includes('-')) { return this.errorReply("Room titles can't contain any of: ,|[-"); } - target = `[G] ${target}`; } else { this.checkCan('makeroom'); } const creatorID = room.roomid.split('-')[1]; const id = isGroupchat ? `groupchat-${creatorID}-${toID(target)}` as RoomID : undefined; + const title = isGroupchat ? `[G] ${target}` : target; const oldID = room.roomid; - room.rename(target, id); + room.rename(title, id); Chat.handleRoomRename(oldID, id || toID(target) as RoomID, room); @@ -1084,7 +1093,7 @@ export const commands: Chat.ChatCommands = { } room.add(Utils.html`|raw|
The room has been renamed to ${target}
`).update(); }, - renameroomhelp: [`/renameroom [new title] - Renames the current room to [new title]. Case-sensitive. Requires &`], + renameroomhelp: [`/renameroom [new title] - Renames the current room to [new title]. Case-sensitive. Requires ~`], hideroom: 'privateroom', hiddenroom: 'privateroom', @@ -1093,10 +1102,11 @@ export const commands: Chat.ChatCommands = { unlistroom: 'privateroom', privateroom(target, room, user, connection, cmd) { room = this.requireRoom(); - if (room.battle) { + const battle = room.battle || room.bestOf; + if (battle) { this.checkCan('editprivacy', null, room); - if (room.battle.forcedSettings.privacy) { - return this.errorReply(`This battle is required to be public because a player has a name prefixed by '${room.battle.forcedSettings.privacy}'.`); + if (battle.forcedSettings.privacy) { + return this.errorReply(`This battle is required to be public because a player has a name prefixed by '${battle.forcedSettings.privacy}'.`); } if (room.tour?.forcePublic) { return this.errorReply(`This battle can't be hidden, because the tournament is set to be forced public.`); @@ -1141,7 +1151,7 @@ export const commands: Chat.ChatCommands = { if (room.parent && room.parent.settings.isPrivate) { return this.errorReply(`This room's parent ${room.parent.title} must be public for this room to be public.`); } - if (room.settings.isPersonal && !room.battle) { + if (room.settings.isPersonal && !battle) { return this.errorReply(`This room can't be made public.`); } if (room.privacySetter && user.can('nooverride', null, room) && !user.can('makeroom')) { @@ -1161,7 +1171,7 @@ export const commands: Chat.ChatCommands = { room.setPrivate(false); } else { const settingName = (setting === true ? 'secret' : setting); - if (room.subRooms) { + if (room.subRooms && !room.bestOf) { if (settingName === 'secret') return this.errorReply("Secret rooms cannot have subrooms."); for (const subRoom of room.subRooms.values()) { if (!subRoom.settings.isPrivate) { @@ -1178,15 +1188,15 @@ export const commands: Chat.ChatCommands = { } this.addModAction(`${user.name} made this room ${settingName}.`); this.modlog(`${settingName.toUpperCase()}ROOM`); - if (!room.settings.isPersonal && !room.battle) room.setSection(); + if (!room.settings.isPersonal && !battle) room.setSection(); room.setPrivate(setting); room.privacySetter = new Set([user.id]); } }, privateroomhelp: [ - `/secretroom - Makes a room secret. Secret rooms are visible to & and up. Requires: &`, - `/hiddenroom [on/off] - Makes a room hidden. Hidden rooms are visible to % and up, and inherit global ranks. Requires: \u2606 &`, - `/publicroom - Makes a room public. Requires: \u2606 &`, + `/secretroom - Makes a room secret. Secret rooms are visible to ~ and up. Requires: ~`, + `/hiddenroom [on/off] - Makes a room hidden. Hidden rooms are visible to % and up, and inherit global ranks. Requires: \u2606 ~`, + `/publicroom - Makes a room public. Requires: \u2606 ~`, ], hidenext(target, room, user) { @@ -1234,8 +1244,8 @@ export const commands: Chat.ChatCommands = { } }, roomspotlighthelp: [ - `/roomspotlight [spotlight] - Makes the room this command is used in a spotlight room for the [spotlight] category on the roomlist. Requires: &`, - `/roomspotlight off - Removes the room this command is used in from the list of spotlight rooms. Requires: &`, + `/roomspotlight [spotlight] - Makes the room this command is used in a spotlight room for the [spotlight] category on the roomlist. Requires: ~`, + `/roomspotlight off - Removes the room this command is used in from the list of spotlight rooms. Requires: ~`, ], setsubroom: 'subroom', @@ -1294,7 +1304,7 @@ export const commands: Chat.ChatCommands = { this.modlog('UNSUBROOM'); return this.addModAction(`This room was unset as a subroom by ${user.name}.`); }, - unsubroomhelp: [`/unsubroom - Unmarks the current room as a subroom. Requires: &`], + unsubroomhelp: [`/unsubroom - Unmarks the current room as a subroom. Requires: ~`], parentroom: 'subrooms', subrooms(target, room, user, connection, cmd) { @@ -1322,8 +1332,8 @@ export const commands: Chat.ChatCommands = { }, subroomhelp: [ - `/subroom [room] - Marks the current room as a subroom of [room]. Requires: &`, - `/unsubroom - Unmarks the current room as a subroom. Requires: &`, + `/subroom [room] - Marks the current room as a subroom of [room]. Requires: ~`, + `/unsubroom - Unmarks the current room as a subroom. Requires: ~`, `/subrooms - Displays the current room's subrooms.`, `/parentroom - Displays the current room's parent room.`, ], @@ -1359,7 +1369,7 @@ export const commands: Chat.ChatCommands = { this.modlog('ROOMDESC', null, `to "${target}"`); room.saveSettings(); }, - roomdeschelp: [`/roomdesc [description] - Sets the [description] of the current room. Requires: &`], + roomdeschelp: [`/roomdesc [description] - Sets the [description] of the current room. Requires: ~`], topic: 'roomintro', roomintro(target, room, user, connection, cmd) { @@ -1396,7 +1406,7 @@ export const commands: Chat.ChatCommands = { }, roomintrohelp: [ `/roomintro - Display the room introduction of the current room.`, - `/roomintro [content] - Set an introduction for the room. Requires: # &`, + `/roomintro [content] - Set an introduction for the room. Requires: # ~`, ], deletetopic: 'deleteroomintro', @@ -1411,7 +1421,7 @@ export const commands: Chat.ChatCommands = { delete room.settings.introMessage; room.saveSettings(); }, - deleteroomintrohelp: [`/deleteroomintro - Deletes the current room's introduction. Requires: # &`], + deleteroomintrohelp: [`/deleteroomintro - Deletes the current room's introduction. Requires: # ~`], stafftopic: 'staffintro', staffintro(target, room, user, connection, cmd) { @@ -1446,7 +1456,7 @@ export const commands: Chat.ChatCommands = { this.roomlog(room.settings.staffMessage.replace(/\n/g, ``)); room.saveSettings(); }, - staffintrohelp: [`/staffintro [content] - Set an introduction for staff members. Requires: @ # &`], + staffintrohelp: [`/staffintro [content] - Set an introduction for staff members. Requires: @ # ~`], deletestafftopic: 'deletestaffintro', deletestaffintro(target, room, user) { @@ -1460,7 +1470,7 @@ export const commands: Chat.ChatCommands = { delete room.settings.staffMessage; room.saveSettings(); }, - deletestaffintrohelp: [`/deletestaffintro - Deletes the current room's staff introduction. Requires: @ # &`], + deletestaffintrohelp: [`/deletestaffintro - Deletes the current room's staff introduction. Requires: @ # ~`], roomalias(target, room, user) { room = this.requireRoom(); @@ -1492,8 +1502,8 @@ export const commands: Chat.ChatCommands = { }, roomaliashelp: [ `/roomalias - displays a list of all room aliases of the room the command was entered in.`, - `/roomalias [alias] - adds the given room alias to the room the command was entered in. Requires: &`, - `/removeroomalias [alias] - removes the given room alias of the room the command was entered in. Requires: &`, + `/roomalias [alias] - adds the given room alias to the room the command was entered in. Requires: ~`, + `/removeroomalias [alias] - removes the given room alias of the room the command was entered in. Requires: ~`, ], deleteroomalias: 'removeroomalias', @@ -1526,7 +1536,7 @@ export const commands: Chat.ChatCommands = { } }, removeroomaliashelp: [ - `/removeroomalias [alias] - removes the given room alias of the room the command was entered in. Requires: &`, + `/removeroomalias [alias] - removes the given room alias of the room the command was entered in. Requires: ~`, ], resettierdisplay: 'roomtierdisplay', @@ -1571,8 +1581,8 @@ export const commands: Chat.ChatCommands = { }, roomtierdisplayhelp: [ `/roomtierdisplay - displays the current room's display.`, - `/roomtierdisplay [option] - changes the current room's tier display. Valid options are: tiers, doubles tiers, numbers. Requires: # &`, - `/resettierdisplay - resets the current room's tier display. Requires: # &`, + `/roomtierdisplay [option] - changes the current room's tier display. Valid options are: tiers, doubles tiers, numbers. Requires: # ~`, + `/resettierdisplay - resets the current room's tier display. Requires: # ~`, ], setroomsection: 'roomsection', @@ -1592,7 +1602,7 @@ export const commands: Chat.ChatCommands = { this.globalModlog('ROOMSECTION', null, section || 'none'); }, roomsectionhelp: [ - `/roomsection [section] - Sets the room this is used in to the specified [section]. Requires: &`, + `/roomsection [section] - Sets the room this is used in to the specified [section]. Requires: ~`, `Valid sections: ${sections.join(', ')}`, ], @@ -1619,7 +1629,7 @@ export const commands: Chat.ChatCommands = { target = toID(target); const format = Dex.formats.get(target); - if (format.exists) { + if (format.effectType === 'Format') { target = format.name; } const {isMatch} = this.extractFormat(target); @@ -1631,8 +1641,8 @@ export const commands: Chat.ChatCommands = { this.privateModAction(`${user.name} set this room's default format to ${target}.`); }, roomdefaultformathelp: [ - `/roomdefaultformat [format] or [mod] or gen[number] - Sets this room's default format/mod. Requires: # &`, - `/roomdefaultformat off - Clears this room's default format/mod. Requires: # &`, + `/roomdefaultformat [format] or [mod] or gen[number] - Sets this room's default format/mod. Requires: # ~`, + `/roomdefaultformat off - Clears this room's default format/mod. Requires: # ~`, `Affected commands: /details, /coverage, /effectiveness, /weakness, /learn`, ], }; @@ -1735,7 +1745,7 @@ export const pages: Chat.PageTable = { const room = this.requireRoom(); this.checkCan('mute', null, room); - const roomGroups = ['default', ...Config.groupsranking.slice(1)]; + const roomGroups = ['default', 'all users', ...Config.groupsranking.slice(1)]; const permissions = room.settings.permissions || {}; let buf = `

Command permissions for ${room.title}

`; @@ -1747,7 +1757,7 @@ export const pages: Chat.PageTable = { atLeastOne = true; buf += `${permission}`; if (room.auth.atLeast(user, '#')) { - buf += roomGroups.filter(group => group !== Users.SECTIONLEADER_SYMBOL).map(group => ( + buf += roomGroups.map(group => ( requiredRank === group ? Utils.html`` : Utils.html`` diff --git a/server/chat-formatter.ts b/server/chat-formatter.ts index c3425eee1be1..2dbd41bd9a5f 100644 --- a/server/chat-formatter.ts +++ b/server/chat-formatter.ts @@ -35,11 +35,13 @@ REGEXFREE SOURCE FOR LINKREGEX ( # characters allowed inside URL paths ( - [^\s()&<>] | & | " + [^\s()&<>[\]] | & | " | # parentheses in URLs should be matched, so they're not confused # for parentheses around URLs - \( ( [^\\s()<>&] | & )* \) + \( ( [^\s()<>&[\]] | & )* \) + | + \[ ( [^\s()<>&[\]] | & )* ] )* # URLs usually don't end with punctuation, so don't allow # punctuation symbols that probably arent related to URL. @@ -47,7 +49,7 @@ REGEXFREE SOURCE FOR LINKREGEX [^\s()[\]{}\".,!?;:&<>*`^~\\] | # annoyingly, Wikipedia URLs often end in ) - \( ( [^\s()<>&] | & )* \) + \( ( [^\s()<>&[\]] | & )* \) ) )? )? @@ -58,9 +60,19 @@ REGEXFREE SOURCE FOR LINKREGEX (?! [^ ]*> ) */ -export const linkRegex = /(?:(?:https?:\/\/[a-z0-9-]+(?:\.[a-z0-9-]+)*|www\.[a-z0-9-]+(?:\.[a-z0-9-]+)+|\b[a-z0-9-]+(?:\.[a-z0-9-]+)*\.(?:(?:com?|org|net|edu|info|us|jp)\b|[a-z]{2,3}(?=:[0-9]|\/)))(?::[0-9]+)?(?:\/(?:(?:[^\s()&<>]|&|"|\((?:[^\\s()<>&]|&)*\))*(?:[^\s()[\]{}".,!?;:&<>*`^~\\]|\((?:[^\s()<>&]|&)*\)))?)?|[a-z0-9.]+@[a-z0-9-]+(?:\.[a-z0-9-]+)*\.[a-z]{2,})(?![^ ]*>)/ig; +export const linkRegex = /(?:(?:https?:\/\/[a-z0-9-]+(?:\.[a-z0-9-]+)*|www\.[a-z0-9-]+(?:\.[a-z0-9-]+)+|\b[a-z0-9-]+(?:\.[a-z0-9-]+)*\.(?:(?:com?|org|net|edu|info|us|jp)\b|[a-z]{2,3}(?=:[0-9]|\/)))(?::[0-9]+)?(?:\/(?:(?:[^\s()&<>[\]]|&|"|\((?:[^\s()<>&[\]]|&)*\)|\[(?:[^\s()<>&[\]]|&)*])*(?:[^\s()[\]{}".,!?;:&<>*`^~\\]|\((?:[^\s()<>&[\]]|&)*\)))?)?|[a-z0-9.]+@[a-z0-9-]+(?:\.[a-z0-9-]+)*\.[a-z]{2,})(?![^ ]*>)/ig; -type SpanType = '_' | '*' | '~' | '^' | '\\' | '|' | '<' | '[' | '`' | 'a' | 'spoiler' | '>' | '('; +/** + * A span is a part of the text that's formatted. In the text: + * + * Hi, **this** is an example. + * + * The word `this` is a `*` span. Many spans are just a symbol repeated, and + * that symbol is the span type, but also many are more complicated. + * For an explanation of all of these, see the `TextFormatter#get` function + * implementation. + */ +type SpanType = '_' | '*' | '~' | '^' | '\\' | '|' | '<' | '[' | '`' | 'a' | 'u' | 'spoiler' | '>' | '('; type FormatSpan = [SpanType, number]; @@ -68,12 +80,16 @@ class TextFormatter { readonly str: string; readonly buffers: string[]; readonly stack: FormatSpan[]; + /** Allows access to special formatting (links without URL preview, pokemon icons) */ readonly isTrusted: boolean; + /** Replace \n with
*/ readonly replaceLinebreaks: boolean; + /** Discord-style WYSIWYM output; markup characters are in `` */ + readonly showSyntax: boolean; /** offset of str that's been parsed so far */ offset: number; - constructor(str: string, isTrusted = false, replaceLinebreaks = false) { + constructor(str: string, isTrusted = false, replaceLinebreaks = false, showSyntax = false) { // escapeHTML, without escaping / str = `${str}` .replace(/&/g, '&') @@ -84,6 +100,7 @@ class TextFormatter { // filter links first str = str.replace(linkRegex, uri => { + if (showSyntax) return `${uri}`; let fulluri; if (/^[a-z0-9.]+@/ig.test(uri)) { fulluri = 'mailto:' + uri; @@ -110,6 +127,7 @@ class TextFormatter { this.stack = []; this.isTrusted = isTrusted; this.replaceLinebreaks = this.isTrusted || replaceLinebreaks; + this.showSyntax = showSyntax; this.offset = 0; } // debugAt(i=0, j=i+1) { console.log(`${this.slice(0, i)}[${this.slice(i, j)}]${this.slice(j, this.str.length)}`); } @@ -122,6 +140,15 @@ class TextFormatter { return this.str.charAt(start); } + /** + * We've encountered a possible start for a span. It's pushed onto our span + * stack. + * + * The span stack saves the start position so it can be replaced with HTML + * if we find an end for the span, but we don't actually replace it until + * `closeSpan` is called, so nothing happens (it stays plaintext) if no end + * is found. + */ pushSpan(spanType: SpanType, start: number, end: number) { this.pushSlice(start); this.stack.push([spanType, this.buffers.length]); @@ -155,7 +182,8 @@ class TextFormatter { } /** - * Attempt to close a span. + * We've encountered a possible end for a span. If it's in the span stack, + * we transform it into HTML. */ closeSpan(spanType: SpanType, start: number, end: number) { // loop backwards @@ -181,11 +209,12 @@ class TextFormatter { case '~': tagName = 's'; break; case '^': tagName = 'sup'; break; case '\\': tagName = 'sub'; break; - case '|': tagName = 'span'; attrs = ' class="spoiler"'; break; + case '|': tagName = 'span'; attrs = (this.showSyntax ? ' class="spoiler-shown"' : ' class="spoiler"'); break; } + const syntax = (this.showSyntax ? `${spanType}${spanType}` : ''); if (tagName) { - this.buffers[startIndex] = `<${tagName}${attrs}>`; - this.buffers.push(``); + this.buffers[startIndex] = `${syntax}<${tagName}${attrs}>`; + this.buffers.push(`${syntax}`); this.offset = end; } return true; @@ -203,7 +232,7 @@ class TextFormatter { switch (span[0]) { case 'spoiler': this.buffers.push(``); - this.buffers[span[1]] = ``; + this.buffers[span[1]] = (this.showSyntax ? `` : ``); break; case '>': this.buffers.push(``); @@ -230,9 +259,15 @@ class TextFormatter { return encodeURIComponent(component); } + /** + * Handles special cases. + */ runLookahead(spanType: SpanType, start: number) { switch (spanType) { case '`': + // code span. Not only are the contents not formatted, but + // the start and end delimiters must match in length. + // ``Neither `this` nor ```this``` end this code span.`` { let delimLength = 0; let i = start; @@ -253,9 +288,9 @@ class TextFormatter { i++; } if (curDelimLength !== delimLength) return false; + const end = i; // matching delims found this.pushSlice(start); - this.buffers.push(``); let innerStart = start + delimLength; let innerEnd = i - delimLength; if (innerStart + 1 >= innerEnd) { @@ -268,12 +303,20 @@ class TextFormatter { } else if (this.at(innerEnd - 1) === ' ' && this.at(innerEnd - 2) === '`') { innerEnd--; // strip ending space } + if (this.showSyntax) this.buffers.push(`${this.slice(start, innerStart)}`); + this.buffers.push(``); this.buffers.push(this.slice(innerStart, innerEnd)); this.buffers.push(``); - this.offset = i; + if (this.showSyntax) this.buffers.push(`${this.slice(innerEnd, end)}`); + this.offset = end; } return true; case '[': + // Link span. Several possiblilities: + // [[text ]] - a link with custom text + // [[search term]] - Google search + // [[wiki: search term]] - Wikipedia search + // [[pokemon: species name]] - icon (also item:, type:, category:) { if (this.slice(start, start + 2) !== '[[') return false; let i = start + 2; @@ -287,6 +330,9 @@ class TextFormatter { i++; } if (this.slice(i, i + 2) !== ']]') return false; + + this.pushSlice(start); + this.offset = i + 2; let termEnd = i; let uri = ''; if (anglePos >= 0 && this.slice(i - 4, i) === '>') { // `>` @@ -295,17 +341,21 @@ class TextFormatter { if (this.at(termEnd - 1) === ' ') termEnd--; uri = encodeURI(uri.replace(/^([a-z]*[^a-z:])/g, 'http://$1')); } - let term = this.slice(start + 2, termEnd).replace(/<\/?a(?: [^>]+)?>/g, ''); - if (uri && !this.isTrusted) { + let term = this.slice(start + 2, termEnd).replace(/<\/?[au](?: [^>]+)?>/g, ''); + if (this.showSyntax) { + term += `${this.slice(termEnd, i)}`; + } else if (uri && !this.isTrusted) { const shortUri = uri.replace(/^https?:\/\//, '').replace(/^www\./, '').replace(/\/$/, ''); term += ` <${shortUri}>`; uri += '" rel="noopener'; } + if (colonPos > 0) { const key = this.slice(start + 2, colonPos).toLowerCase(); switch (key) { case 'w': case 'wiki': + if (this.showSyntax) break; term = term.slice(term.charAt(key.length + 1) === ' ' ? key.length + 2 : key.length + 1); uri = `//en.wikipedia.org/w/index.php?title=Special:Search&search=${this.toUriComponent(term)}`; term = `wiki: ${term}`; @@ -314,6 +364,10 @@ class TextFormatter { case 'item': case 'type': case 'category': + if (this.showSyntax) { + this.buffers.push(`${this.slice(start, this.offset)}`); + return true; + } term = term.slice(term.charAt(key.length + 1) === ' ' ? key.length + 2 : key.length + 1); let display = ''; @@ -334,28 +388,42 @@ class TextFormatter { if (!uri) { uri = `//www.google.com/search?ie=UTF-8&btnI&q=${this.toUriComponent(term)}`; } - this.pushSlice(start); - this.buffers.push(`${term}`); - this.offset = i + 2; + if (this.showSyntax) { + this.buffers.push(`[[${term}]]`); + } else { + this.buffers.push(`${term}`); + } } return true; case '<': + // Roomid-link span. Not to be confused with a URL span. + // `<>` { if (this.slice(start, start + 8) !== '<<') return false; // << let i = start + 8; while (/[a-z0-9-]/.test(this.at(i))) i++; if (this.slice(i, i + 8) !== '>>') return false; // >> + this.pushSlice(start); const roomid = this.slice(start + 8, i); - this.buffers.push(`«${roomid}»`); + if (this.showSyntax) { + this.buffers.push(`<<${roomid}>>`); + } else { + this.buffers.push(`«${roomid}»`); + } this.offset = i + 8; } return true; - case 'a': + case 'a': case 'u': + // URL span. Skip to the end of the link - where `` or `` is. + // Nothing inside should be formatted further (obviously we don't want + // `example.com/__foo__` to turn `foo` italic). { - let i = start + 1; - while (this.at(i) !== '/' || this.at(i + 1) !== 'a' || this.at(i + 2) !== '>') i++; // - i += 3; + let i = start + 2; + // Find or . + // We need to check the location of `>` to disambiguate from . + while (this.at(i) !== '<' || this.at(i + 1) !== '/' || this.at(i + 3) !== '>') i++; + i += 4; this.pushSlice(i); } return true; @@ -365,7 +433,9 @@ class TextFormatter { get() { let beginningOfLine = this.offset; - // main loop! i tracks our position + // main loop! `i` tracks our position + // Note that we skip around a lot; `i` is mutated inside the loop + // pretty often. for (let i = beginningOfLine; i < this.str.length; i++) { const char = this.at(i); switch (char) { @@ -375,7 +445,11 @@ class TextFormatter { case '^': case '\\': case '|': + // Must be exactly two chars long. if (this.at(i + 1) === char && this.at(i + 2) !== char) { + // This is a completely normal two-char span. Close it if it's + // already open, open it if it's not. + // The inside of regular spans must not start or end with a space. if (!(this.at(i - 1) !== ' ' && this.closeSpan(char, i, i + 2))) { if (this.at(i + 2) !== ' ') this.pushSpan(char, i, i + 2); } @@ -387,9 +461,11 @@ class TextFormatter { while (this.at(i + 1) === char) i++; break; case '(': + // `(` span - does nothing except end spans this.stack.push(['(', -1]); break; case ')': + // end of `(` span this.closeParenSpan(i); if (i < this.offset) { i = this.offset - 1; @@ -397,6 +473,9 @@ class TextFormatter { } break; case '`': + // ` ``code`` ` span. Uses lookahead because its contents are not + // formatted. + // Must be at least two `` ` `` in a row. if (this.at(i + 1) === '`') this.runLookahead('`', i); if (i < this.offset) { i = this.offset - 1; @@ -405,6 +484,9 @@ class TextFormatter { while (this.at(i + 1) === '`') i++; break; case '[': + // `[` (link) span. Uses lookahead because it might contain a + // URL which can't be formatted, or search terms that can't be + // formatted. this.runLookahead('[', i); if (i < this.offset) { i = this.offset - 1; @@ -413,6 +495,9 @@ class TextFormatter { while (this.at(i + 1) === '[') i++; break; case ':': + // Looks behind for `spoiler:` or `spoilers:`. Spoiler spans + // are also weird because they don't require an ending symbol, + // although that's not handled here. if (i < 7) break; if (this.slice(i - 7, i + 1).toLowerCase() === 'spoiler:' || this.slice(i - 8, i + 1).toLowerCase() === 'spoilers:') { @@ -421,11 +506,16 @@ class TextFormatter { } break; case '&': // escaped '<' or '>' + // greentext or roomid if (i === beginningOfLine && this.slice(i, i + 4) === '>') { + // greentext span, normal except it lacks an ending span + // check for certain emoticons like `>_>` or `>w<` if (!"._/=:;".includes(this.at(i + 4)) && !['w<', 'w>'].includes(this.slice(i + 4, i + 9))) { this.pushSpan('>', i, i); } } else { + // completely normal `<>` span + // uses lookahead because roomids can't be formatted. this.runLookahead('<', i); } if (i < this.offset) { @@ -434,7 +524,10 @@ class TextFormatter { } while (this.slice(i + 1, i + 5) === 'lt;&') i += 4; break; - case '<': // guaranteed to be or + // URL span + // The constructor has already converted `<` to `<` and URLs + // to links, so `<` must be the start of a converted link. this.runLookahead('a', i); if (i < this.offset) { i = this.offset - 1; @@ -444,6 +537,7 @@ class TextFormatter { break; case '\r': case '\n': + // End of the line. No spans span multiple lines. this.popAllSpans(i); if (this.replaceLinebreaks) { this.buffers.push(`
`); @@ -462,8 +556,8 @@ class TextFormatter { /** * Takes a string and converts it to HTML by replacing standard chat formatting with the appropriate HTML tags. */ -export function formatText(str: string, isTrusted = false, replaceLinebreaks = false) { - return new TextFormatter(str, isTrusted, replaceLinebreaks).get(); +export function formatText(str: string, isTrusted = false, replaceLinebreaks = false, showSyntax = false) { + return new TextFormatter(str, isTrusted, replaceLinebreaks, showSyntax).get(); } /** diff --git a/server/chat-plugins/abuse-monitor.ts b/server/chat-plugins/abuse-monitor.ts index af9a8cdeca92..ce59f79c6f42 100644 --- a/server/chat-plugins/abuse-monitor.ts +++ b/server/chat-plugins/abuse-monitor.ts @@ -177,7 +177,7 @@ function displayResolved(review: ReviewRequest, justSubmitted = false) { if (!user) return; const resolved = review.resolved; if (!resolved) return; - const prefix = `|pm|&|${user.getIdentity()}|`; + const prefix = `|pm|~|${user.getIdentity()}|`; user.send( prefix + `Your Artemis review for <<${review.room}>> was resolved by ${resolved.by}` + @@ -270,7 +270,8 @@ export const classifier = new Artemis.RemoteClassifier(); export async function runActions(user: User, room: GameRoom, message: string, response: Record) { const keys = Utils.sortBy(Object.keys(response), k => -response[k]); const recommended: [string, string, boolean][] = []; - const prevRecommend = cache[room.roomid]?.recommended?.[user.id]; + const roomRecord = cache[room.roomid]; + const prevRecommend = roomRecord?.recommended?.[user.id]; for (const punishment of settings.punishments) { if (prevRecommend?.type) { // avoid making extra db queries by frontloading this check if (PUNISHMENTS.indexOf(punishment.punishment) <= PUNISHMENTS.indexOf(prevRecommend?.type)) continue; @@ -322,14 +323,14 @@ export async function runActions(user: User, room: GameRoom, message: string, re } // go by most severe const [punishment, reason] = recommended[0]; - if (cache[room.roomid]) { - if (!cache[room.roomid].recommended) cache[room.roomid].recommended = {}; - cache[room.roomid].recommended![user.id] = {type: punishment, reason: reason.replace(/_/g, ' ').toLowerCase()}; + if (roomRecord) { + if (!roomRecord.recommended) roomRecord.recommended = {}; + roomRecord.recommended[user.id] = {type: punishment, reason: reason.replace(/_/g, ' ').toLowerCase()}; } if (user.trusted) { // force just logging for any sort of punishment. requested by staff Rooms.get('staff')?.add( - `|c|&|/log [Artemis] ${getViewLink(room.roomid)} ${punishment} recommended for trusted user ${user.id}` + + `|c|~|/log [Artemis] ${getViewLink(room.roomid)} ${punishment} recommended for trusted user ${user.id}` + `${user.trusted !== user.id ? ` [${user.trusted}]` : ''} ` ).update(); return; // we want nothing else to be executed. staff want trusted users to be reviewed manually for now @@ -344,10 +345,10 @@ export async function runActions(user: User, room: GameRoom, message: string, re }); if (result !== false) { // returning false means not to close the 'ticket' - const notified = cache[room.roomid].staffNotified; + const notified = roomRecord?.staffNotified; if (notified) { if (typeof notified === 'string') { - if (notified === user.id) delete cache[room.roomid].staffNotified; + if (notified === user.id) delete roomRecord.staffNotified; } else { notified.splice(notified.indexOf(user.id), 1); if (!notified.length) { @@ -361,9 +362,9 @@ export async function runActions(user: User, room: GameRoom, message: string, re } } } - delete cache[room.roomid].users[user.id]; // user has been punished, reset their counter + delete roomRecord?.users[user.id]; // user has been punished, reset their counter // keep the cache object only if there are other users in it, since they still need to be monitored - if (!Object.keys(cache[room.roomid].users).length) { + if (roomRecord && !Object.keys(roomRecord.users).length) { delete cache[room.roomid]; } notifyStaff(); @@ -389,8 +390,8 @@ function globalModlog( const getViewLink = (roomid: RoomID) => `<>`; function addGlobalModAction(message: string, room: GameRoom) { - room.add(`|c|&|/log ${message}`).update(); - Rooms.get(`staff`)?.add(`|c|&|/log ${getViewLink(room.roomid)} ${message}`).update(); + room.add(`|c|~|/log ${message}`).update(); + Rooms.get(`staff`)?.add(`|c|~|/log ${getViewLink(room.roomid)} ${message}`).update(); } const DISCLAIMER = ( @@ -402,7 +403,7 @@ const DISCLAIMER = ( export async function lock(user: User, room: GameRoom, reason: string, isWeek?: boolean) { if (settings.recommendOnly) { Rooms.get('staff')?.add( - `|c|&|/log [Artemis] ${getViewLink(room.roomid)} ${isWeek ? "WEEK" : ""}LOCK recommended for ${user.id}` + `|c|~|/log [Artemis] ${getViewLink(room.roomid)} ${isWeek ? "WEEK" : ""}LOCK recommended for ${user.id}` ).update(); room.hideText([user.id], undefined, true); return false; @@ -420,11 +421,11 @@ export async function lock(user: User, room: GameRoom, reason: string, isWeek?: addGlobalModAction(`${user.name} was locked from talking by Artemis${isWeek ? ' for a week. ' : ". "}(${reason})`, room); if (affected.length > 1) { Rooms.get('staff')?.add( - `|c|&|/log (${user.id}'s ` + + `|c|~|/log (${user.id}'s ` + `locked alts: ${affected.slice(1).map(curUser => curUser.getLastName()).join(", ")})` ); } - room.add(`|c|&|/raw ${DISCLAIMER}`).update(); + room.add(`|c|~|/raw ${DISCLAIMER}`).update(); room.hideText(affected.map(f => f.id), undefined, true); let message = `|popup||html|Artemis has locked you from talking in chats, battles, and PMing regular users`; message += ` ${!isWeek ? "for two days" : "for a week"}`; @@ -462,7 +463,7 @@ const punishmentHandlers: Record = { if (room.auth.get(u) !== Users.PLAYER_SYMBOL) continue; u.sendTo( room.roomid, - `|c|&|/uhtml report,` + + `|c|~|/uhtml report,` + `Toxicity has been automatically detected in this battle, ` + `please click below if you would like to report it.
` + `
Make a report` @@ -490,7 +491,7 @@ const punishmentHandlers: Record = { punishments['WARN']++; punishmentCache.set(user, punishments); - room.add(`|c|&|/raw ${DISCLAIMER}`).update(); + room.add(`|c|~|/raw ${DISCLAIMER}`).update(); room.hideText([user.id], undefined, true); }, lock(user, room, response, message) { @@ -553,7 +554,7 @@ export const chatfilter: Chat.ChatFilter = function (message, user, room) { } } else { this.sendReply( - `|c|&|/raw
` + + `|c|~|/raw
` + `Your behavior in this battle has been automatically identified as breaking ` + `Pokemon Showdown's global rules. ` + `Repeated instances of misbehavior may incur harsher punishment.
` @@ -670,11 +671,11 @@ function getFlaggedRooms() { } export function writeStats(type: string, entry: AnyObject) { - const path = `logs/artemis/${type}/${Chat.toTimestamp(new Date()).split(' ')[0].slice(0, -3)}.jsonl`; + const path = `artemis/${type}/${Chat.toTimestamp(new Date()).split(' ')[0].slice(0, -3)}.jsonl`; try { - FS(path).parentDir().mkdirpSync(); + Monitor.logPath(path).parentDir().mkdirpSync(); } catch {} - void FS(path).append(JSON.stringify(entry) + "\n"); + void Monitor.logPath(path).append(JSON.stringify(entry) + "\n"); } function saveSettings(path?: string) { @@ -968,7 +969,7 @@ export const commands: Chat.ChatCommands = { const result = await this.parse(`${cmd} ${rest}`, {bypassRoomCheck: true}); if (result) { // command succeeded - send followup this.add( - '|c|&|/raw If you have questions about this action, please contact staff ' + + '|c|~|/raw If you have questions about this action, please contact staff ' + 'by making a help ticket' ); } @@ -1679,7 +1680,7 @@ export const commands: Chat.ChatCommands = { this.refreshPage('abusemonitor-settings'); }, edithistory(target, room, user) { - this.checkCan('globalban'); + this.checkCan('lock'); target = toID(target); if (!target) { return this.parse(`/help abusemonitor`); @@ -1688,7 +1689,7 @@ export const commands: Chat.ChatCommands = { }, ignoremodlog: { add(target, room, user) { - this.checkCan('globalban'); + this.checkCan('lock'); let targetUser: string; [targetUser, target] = this.splitOne(target).map(f => f.trim()); targetUser = toID(targetUser); @@ -1721,7 +1722,7 @@ export const commands: Chat.ChatCommands = { this.refreshPage(`abusemonitor-edithistory-${targetUser}`); }, remove(target, room, user) { - this.checkCan('globalban'); + this.checkCan('lock'); let [targetUser, rawNum] = this.splitOne(target).map(f => f.trim()); targetUser = toID(targetUser); const num = Number(rawNum); @@ -1759,26 +1760,27 @@ export const commands: Chat.ChatCommands = { abusemonitorhelp() { return this.sendReplyBox([ `Staff commands:`, - `/am userlogs [user] - View the Artemis flagged message logs for the given [user]. Requires: % @ &`, - `/am unmute [user] - Remove the Artemis mute from the given [user]. Requires: % @ &`, - `/am review - Submit feedback for manual abuse monitor review. Requires: % @ &`, + `/am userlogs [user] - View the Artemis flagged message logs for the given [user]. Requires: % @ ~`, + `/am unmute [user] - Remove the Artemis mute from the given [user]. Requires: % @ ~`, + `/am review - Submit feedback for manual abuse monitor review. Requires: % @ ~`, `

Management commands:`, - `/am toggle - Toggle the abuse monitor on and off. Requires: whitelist &`, - `/am threshold [number] - Set the abuse monitor trigger threshold. Requires: whitelist &`, - `/am resolve [room] - Mark a abuse monitor flagged room as handled by staff. Requires: % @ &`, - `/am respawn - Respawns abuse monitor processes. Requires: whitelist &`, + `/am toggle - Toggle the abuse monitor on and off. Requires: whitelist ~`, + `/am threshold [number] - Set the abuse monitor trigger threshold. Requires: whitelist ~`, + `/am resolve [room] - Mark a abuse monitor flagged room as handled by staff. Requires: % @ ~`, + `/am respawn - Respawns abuse monitor processes. Requires: whitelist ~`, `/am logs [count][, userid] - View logs of recent matches by the abuse monitor. `, - `If a userid is given, searches only logs from that userid. Requires: whitelist &`, - `/am userclear [user] - Clear all logged abuse monitor hits for a user. Requires: whitelist &`, - `/am deletelog [number] - Deletes a abuse monitor log matching the row ID [number] given. Requires: whitelist &`, - `/am editspecial [type], [percent], [score] - Sets a special case for the abuse monitor. Requires: whitelist &`, + `If a userid is given, searches only logs from that userid. Requires: whitelist ~`, + `/am edithistory [user] - Clear specific abuse monitor hit(s) for a user. Requires: % @ ~`, + `/am userclear [user] - Clear all logged abuse monitor hits for a user. Requires: whitelist ~`, + `/am deletelog [number] - Deletes a abuse monitor log matching the row ID [number] given. Requires: whitelist ~`, + `/am editspecial [type], [percent], [score] - Sets a special case for the abuse monitor. Requires: whitelist ~`, `[score] can be either a number or MAXIMUM, which will set it to the maximum score possible (that will trigger an action)`, - `/am deletespecial [type], [percent] - Deletes a special case for the abuse monitor. Requires: whitelist &`, - `/am editmin [number] - Sets the minimum percent needed to process for all flags. Requires: whitelist &`, - `/am viewsettings - View the current settings for the abuse monitor. Requires: whitelist &`, + `/am deletespecial [type], [percent] - Deletes a special case for the abuse monitor. Requires: whitelist ~`, + `/am editmin [number] - Sets the minimum percent needed to process for all flags. Requires: whitelist ~`, + `/am viewsettings - View the current settings for the abuse monitor. Requires: whitelist ~`, `/am thresholdincrement [num], [amount][, min turns] - Sets the threshold increment for the abuse monitor to increase [amount] every [num] turns.`, - `If [min turns] is provided, increments will start after that turn number. Requires: whitelist &`, - `/am deleteincrement - clear abuse-monitor threshold increment. Requires: whitelist &`, + `If [min turns] is provided, increments will start after that turn number. Requires: whitelist ~`, + `/am deleteincrement - clear abuse-monitor threshold increment. Requires: whitelist ~`, `
`, ].join('
')); }, @@ -2067,7 +2069,7 @@ export const pages: Chat.PageTable = { data += `${cur.successes} (${percent(cur.successes, cur.total)}%)`; if (cur.failures) { data += ` | ${cur.failures} (${percent(cur.failures, cur.total)}%)`; - } else { // so one cannot confuse dead tickets & false hit tickets + } else { // so one cannot confuse dead tickets ~ false hit tickets data += ' | 0 (0%)'; } if (cur.dead) data += ` | ${cur.dead}`; @@ -2091,7 +2093,7 @@ export const pages: Chat.PageTable = { types: {} as Record, }; const inaccurate = new Set(); - const logPath = FS(`logs/artemis/punishments/${dateString}.jsonl`); + const logPath = Monitor.logPath(`artemis/punishments/${dateString}.jsonl`); if (await logPath.exists()) { const stream = logPath.createReadStream(); for await (const line of stream.byLine()) { @@ -2106,7 +2108,7 @@ export const pages: Chat.PageTable = { } } - const reviewLogPath = FS(`logs/artemis/reviews/${dateString}.jsonl`); + const reviewLogPath = Monitor.logPath(`artemis/reviews/${dateString}.jsonl`); if (await reviewLogPath.exists()) { const stream = reviewLogPath.createReadStream(); for await (const line of stream.byLine()) { @@ -2144,7 +2146,7 @@ export const pages: Chat.PageTable = { data += `${curAccurate} (${percent(curAccurate, cur.total)}%)`; if (cur.inaccurate) { data += ` | ${cur.inaccurate} (${percent(cur.inaccurate, cur.total)}%)`; - } else { // so one cannot confuse dead tickets & false hit tickets + } else { // so one cannot confuse dead tickets ~ false hit tickets data += ' | 0 (0%)'; } data += ''; @@ -2311,7 +2313,7 @@ export const pages: Chat.PageTable = { return buf; }, async edithistory(query, user) { - this.checkCan('globalban'); + this.checkCan('lock'); const targetUser = toID(query[0]); if (!targetUser) { return this.errorReply(`Specify a user.`); diff --git a/server/chat-plugins/announcements.ts b/server/chat-plugins/announcements.ts index 555e00aad293..a44ee1e3a91e 100644 --- a/server/chat-plugins/announcements.ts +++ b/server/chat-plugins/announcements.ts @@ -98,7 +98,34 @@ export const commands: Chat.ChatCommands = { this.modlog('ANNOUNCEMENT'); return this.privateModAction(room.tr`An announcement was started by ${user.name}.`); }, - newhelp: [`/announcement create [announcement] - Creates an announcement. Requires: % @ # &`], + newhelp: [`/announcement create [announcement] - Creates an announcement. Requires: % @ # ~`], + + htmledit: 'edit', + edit(target, room, user, connection, cmd, message) { + room = this.requireRoom(); + const announcement = this.requireMinorActivity(Announcement); + + if (!target) return this.parse('/help announcement edit'); + target = target.trim(); + const text = this.filter(target); + if (target !== text) return this.errorReply(this.tr`You are not allowed to use filtered words in announcements.`); + + const supportHTML = cmd === 'htmledit'; + + this.checkCan('minigame', null, room); + if (supportHTML) this.checkCan('declare', null, room); + this.checkChat(); + + const source = supportHTML ? this.checkHTML(Chat.collapseLineBreaksHTML(target)) : Chat.formatText(target, true); + announcement.source = source; + announcement.save(); + + this.roomlog(`${user.name} used ${message}`); + this.modlog('ANNOUNCEMENT EDIT'); + this.privateModAction(room.tr`The announcement was edited by ${user.name}.`); + this.parse('/announcement display'); + }, + edithelp: [`/announcement edit [announcement] - Edits the announcement. Requires: % @ # ~`], timer(target, room, user) { room = this.requireRoom(); @@ -128,8 +155,8 @@ export const commands: Chat.ChatCommands = { } }, timerhelp: [ - `/announcement timer [minutes] - Sets the announcement to automatically end after [minutes] minutes. Requires: % @ # &`, - `/announcement timer clear - Clears the announcement's timer. Requires: % @ # &`, + `/announcement timer [minutes] - Sets the announcement to automatically end after [minutes] minutes. Requires: % @ # ~`, + `/announcement timer clear - Clears the announcement's timer. Requires: % @ # ~`, ], close: 'end', @@ -143,7 +170,7 @@ export const commands: Chat.ChatCommands = { this.modlog('ANNOUNCEMENT END'); this.privateModAction(room.tr`The announcement was ended by ${user.name}.`); }, - endhelp: [`/announcement end - Ends a announcement and displays the results. Requires: % @ # &`], + endhelp: [`/announcement end - Ends a announcement and displays the results. Requires: % @ # ~`], show: '', display: '', @@ -164,16 +191,18 @@ export const commands: Chat.ChatCommands = { announcementhelp: [ `/announcement allows rooms to run their own announcements. These announcements are limited to one announcement at a time per room.`, `Accepts the following commands:`, - `/announcement create [announcement] - Creates a announcement. Requires: % @ # &`, - `/announcement htmlcreate [announcement] - Creates a announcement, with HTML allowed. Requires: # &`, - `/announcement timer [minutes] - Sets the announcement to automatically end after [minutes]. Requires: % @ # &`, + `/announcement create [announcement] - Creates a announcement. Requires: % @ # ~`, + `/announcement htmlcreate [announcement] - Creates a announcement, with HTML allowed. Requires: # ~`, + `/announcement edit [announcement] - Edits the announcement. Requires: % @ # ~`, + `/announcement htmledit [announcement] - Edits the announcement, with HTML allowed. Requires: # ~`, + `/announcement timer [minutes] - Sets the announcement to automatically end after [minutes]. Requires: % @ # ~`, `/announcement display - Displays the announcement`, - `/announcement end - Ends a announcement. Requires: % @ # &`, + `/announcement end - Ends a announcement. Requires: % @ # ~`, ], }; process.nextTick(() => { - Chat.multiLinePattern.register('/announcement (new|create|htmlcreate) '); + Chat.multiLinePattern.register('/announcement (new|create|htmlcreate|edit|htmledit) '); }); // should handle restarts and also hotpatches diff --git a/server/chat-plugins/auction.ts b/server/chat-plugins/auction.ts new file mode 100644 index 000000000000..ac010e5132f3 --- /dev/null +++ b/server/chat-plugins/auction.ts @@ -0,0 +1,1127 @@ +/** + * Chat plugin to run auctions for team tournaments. + * + * Based on the original Scrappie auction system + * https://github.com/Hidden50/Pokemon-Showdown-Node-Bot/blob/master/commands/base-auctions.js + * @author Karthik + */ +import {Net, Utils} from '../../lib'; + +interface Player { + id: ID; + name: string; + team?: Team; + price: number; + tiers?: string[]; +} + +interface Manager { + id: ID; + team: Team; +} + +class Team { + id: ID; + name: string; + players: Player[]; + credits: number; + suspended: boolean; + private auction: Auction; + constructor(name: string, auction: Auction) { + this.id = toID(name); + this.name = name; + this.players = []; + this.credits = auction.startingCredits; + this.suspended = false; + this.auction = auction; + } + + getManagers() { + return [...this.auction.managers.values()] + .filter(m => m.team === this) + .map(m => Users.getExact(m.id)?.name || m.id); + } + + addPlayer(player: Player, price = 0) { + player.team?.removePlayer(player); + this.players.push(player); + this.credits -= price; + player.team = this; + player.price = price; + } + + removePlayer(player: Player) { + const pIndex = this.players.indexOf(player); + if (pIndex === -1) return; + this.players.splice(pIndex, 1); + delete player.team; + player.price = 0; + } + + isSuspended() { + return this.suspended || ( + this.auction.type === 'snake' ? + this.players.length >= this.auction.minPlayers : + this.credits < this.auction.minBid + ); + } + + maxBid(credits = this.credits) { + return credits + this.auction.minBid * Math.min(0, this.players.length - this.auction.minPlayers + 1); + } +} + +function parseCredits(amount: string) { + let credits = Number(amount.replace(',', '.')); + if (Math.abs(credits) < 500) credits *= 1000; + if (!credits || credits % 500 !== 0) { + throw new Chat.ErrorMessage(`The amount of credits must be a multiple of 500.`); + } + return credits; +} + +export class Auction extends Rooms.SimpleRoomGame { + override readonly gameid = 'auction' as ID; + owners: Set = new Set(); + teams: Map = new Map(); + managers: Map = new Map(); + auctionPlayers: Map = new Map(); + + startingCredits: number; + minBid = 3000; + minPlayers = 10; + type: 'auction' | 'blind' | 'snake' = 'auction'; + + lastQueue: Team[] | null = null; + queue: Team[] = []; + nomTimer: NodeJS.Timer = null!; + nomTimeLimit = 0; + nomTimeRemaining = 0; + bidTimer: NodeJS.Timer = null!; + bidTimeLimit = 10; + bidTimeRemaining = 10; + nominatingTeam: Team = null!; + nominatedPlayer: Player = null!; + highestBidder: Team = null!; + highestBid = 0; + /** Used for blind mode */ + bidsPlaced: Map = new Map(); + state: 'setup' | 'nom' | 'bid' = 'setup'; + constructor(room: Room, startingCredits = 100000) { + super(room); + this.title = 'Auction'; + this.startingCredits = startingCredits; + } + + sendMessage(message: string) { + this.room.add(`|c|~|${message}`).update(); + } + + sendHTMLBox(htmlContent: string) { + this.room.add(`|html|
${htmlContent}
`).update(); + } + + checkOwner(user: User) { + if (!this.owners.has(user.id) && !Users.Auth.hasPermission(user, 'declare', null, this.room)) { + throw new Chat.ErrorMessage(`You must be an auction owner to use this command.`); + } + } + + addOwners(users: string[]) { + for (const name of users) { + const user = Users.getExact(name); + if (!user) throw new Chat.ErrorMessage(`User "${name}" not found.`); + if (this.owners.has(user.id)) throw new Chat.ErrorMessage(`${user.name} is already an auction owner.`); + this.owners.add(user.id); + } + } + + removeOwners(users: string[]) { + for (const name of users) { + const id = toID(name); + if (!this.owners.has(id)) throw new Chat.ErrorMessage(`User "${name}" is not an auction owner.`); + this.owners.delete(id); + } + } + + generateUsernameList(players: (string | Player)[], max = players.length, clickable = false) { + let buf = ``; + buf += players.slice(0, max).map(p => { + if (typeof p === 'object') { + return `${Utils.escapeHTML(p.name)}`; + } + return `${Utils.escapeHTML(p)}`; + }).join(', '); + if (players.length > max) { + buf += ` (+${players.length - max})`; + } + buf += ``; + return buf; + } + + generatePriceList() { + const players = Utils.sortBy(this.getDraftedPlayers(), p => -p.price); + let buf = ''; + let smogonExport = ''; + + for (const team of this.teams.values()) { + let table = ``; + for (const player of players.filter(p => p.team === team)) { + table += Utils.html``; + } + table += `
${player.name}${player.price}
`; + buf += `
${Utils.escapeHTML(team.name)}${table}

`; + smogonExport += `[SPOILER="${team.name}"]${table.replace(/<(.*?)>/g, '[$1]')}[/SPOILER]`; + } + + let table = ``; + for (const player of players) { + table += Utils.html``; + } + table += `
${player.name}${player.price}
`; + buf += `
All${table}

`; + smogonExport += `[SPOILER="All"]${table.replace(/<(.*?)>/g, '[$1]')}[/SPOILER]`; + + buf += Utils.html`Copy Smogon Export`; + return buf; + } + + generateAuctionTable(ended = false) { + const queue = this.queue.filter(team => !team.isSuspended()); + let buf = `
${!ended ? `` : ''}${this.type !== 'snake' ? ``; + for (const team of this.teams.values()) { + buf += ``; + if (!ended) { + let i1 = queue.indexOf(team) + 1; + let i2 = queue.lastIndexOf(team) + 1; + if (i1 > queue.length / 2) { + [i1, i2] = [i2, i1]; + } + buf += ``; + } + buf += ``; + if (this.type !== 'snake') { + buf += ``; + } + buf += ``; + buf += ``; + } + buf += `
OrderTeamCredits` : ''}Players
${i1 || '-'}${i2 || '-'}${Utils.escapeHTML(team.name)}
${this.generateUsernameList(team.getManagers(), 2, true)}
${team.credits.toLocaleString()}${team.maxBid() >= this.minBid ? `
Max bid: ${team.maxBid().toLocaleString()}` : ''}
${team.players.length}${this.generateUsernameList(team.players)}
`; + + const players = Utils.sortBy(this.getUndraftedPlayers(), p => p.name); + const tierArrays = new Map(); + for (const player of players) { + if (!player.tiers) continue; + for (const tier of player.tiers) { + if (!tierArrays.has(tier)) tierArrays.set(tier, []); + tierArrays.get(tier)!.push(player); + } + } + const sortedTiers = [...tierArrays.keys()].sort(); + if (sortedTiers.length) { + buf += `
Remaining Players (${players.length})`; + buf += `
All${this.generateUsernameList(players)}
`; + buf += `
Tiers
    `; + for (const tier of sortedTiers) { + const tierPlayers = tierArrays.get(tier)!; + buf += `
  • ${Utils.escapeHTML(tier)} (${tierPlayers.length})${this.generateUsernameList(tierPlayers)}
  • `; + } + buf += `
`; + } else { + buf += `
Remaining Players (${players.length})${this.generateUsernameList(players)}
`; + } + buf += `
Auction Settings`; + buf += `- Minimum bid: ${this.minBid.toLocaleString()}
`; + buf += `- Minimum players per team: ${this.minPlayers}
`; + buf += `- Nom timer: ${this.nomTimeLimit ? `${this.nomTimeLimit}s` : 'Off'}
`; + if (this.type !== 'snake') buf += `- Bid timer: ${this.bidTimeLimit}s
`; + buf += `- Auction type: ${this.type}
`; + buf += `
`; + return buf; + } + + sendBidInfo() { + if (this.type === 'blind') return; + let buf = `
`; + buf += Utils.html`Player: ${this.nominatedPlayer.name} `; + buf += `Top bid: ${this.highestBid} `; + buf += Utils.html`Top bidder: ${this.highestBidder.name} `; + buf += Utils.html`Tiers: ${this.nominatedPlayer.tiers?.length ? `${this.nominatedPlayer.tiers.join(', ')}` : 'N/A'}`; + buf += `
`; + this.room.add(`|uhtml|bid-${this.nominatedPlayer.id}|${buf}`).update(); + } + + sendTimer(change = false, nom = false) { + let buf = `
`; + buf += ` ${Chat.toDurationString((nom ? this.nomTimeRemaining : this.bidTimeRemaining) * 1000, {hhmmss: true}).slice(1)}`; + buf += `
`; + this.room.add(`|uhtml${change ? 'change' : ''}|timer|${buf}`).update(); + } + + setMinBid(amount: number) { + if (this.state !== 'setup') { + throw new Chat.ErrorMessage(`The minimum bid cannot be changed after the auction has started.`); + } + if (amount > 500000) throw new Chat.ErrorMessage(`The minimum bid must not exceed 500,000.`); + this.minBid = amount; + } + + setMinPlayers(amount: number) { + if (this.state !== 'setup') { + throw new Chat.ErrorMessage(`The minimum number of players cannot be changed after the auction has started.`); + } + if (!amount || amount > 30) { + throw new Chat.ErrorMessage(`The minimum number of players must be between 1 and 30.`); + } + this.minPlayers = amount; + } + + setNomTimeLimit(seconds: number) { + if (this.state !== 'setup') { + throw new Chat.ErrorMessage(`The nomination time limit cannot be changed after the auction has started.`); + } + if (isNaN(seconds) || (seconds && (seconds < 7 || seconds > 300))) { + throw new Chat.ErrorMessage(`The nomination time limit must be between 7 and 300 seconds.`); + } + this.nomTimeLimit = this.nomTimeRemaining = seconds; + } + + setBidTimeLimit(seconds: number) { + if (this.state !== 'setup') { + throw new Chat.ErrorMessage(`The bid time limit cannot be changed after the auction has started.`); + } + if (!seconds || seconds < 7 || seconds > 120) { + throw new Chat.ErrorMessage(`The bid time limit must be between 7 and 120 seconds.`); + } + this.bidTimeLimit = this.bidTimeRemaining = seconds; + } + + setType(auctionType: string) { + if (this.state !== 'setup') { + throw new Chat.ErrorMessage(`The auction type cannot be changed after the auction has started.`); + } + if (!['auction', 'blind', 'snake'].includes(toID(auctionType))) { + throw new Chat.ErrorMessage(`Invalid auction type "${auctionType}". Valid types are "auction", "blind", and "snake".`); + } + this.type = toID(auctionType) as 'auction' | 'blind' | 'snake'; + this.nomTimeLimit = this.nomTimeRemaining = this.type === 'snake' ? 60 : 0; + this.bidTimeLimit = this.bidTimeRemaining = this.type === 'blind' ? 30 : 10; + } + + getUndraftedPlayers() { + return [...this.auctionPlayers.values()].filter(p => !p.team); + } + + getDraftedPlayers() { + return [...this.auctionPlayers.values()].filter(p => p.team); + } + + importPlayers(data: string) { + if (this.state !== 'setup') { + throw new Chat.ErrorMessage(`Player lists cannot be imported after the auction has started.`); + } + const rows = data.replace('\r', '').split('\n'); + const tierNames = rows.shift()!.split('\t').slice(1); + const playerList = new Map(); + for (const row of rows) { + const tiers = []; + const [name, ...tierData] = row.split('\t'); + for (let i = 0; i < tierData.length; i++) { + if (['y', 'Y', '\u2713', '\u2714'].includes(tierData[i].trim())) { + if (!tierNames[i]) throw new Chat.ErrorMessage(`Invalid tier data found in the pastebin.`); + if (tierNames[i].length > 30) throw new Chat.ErrorMessage(`Tier names must be 30 characters or less.`); + tiers.push(tierNames[i]); + } + } + if (name.length > 25) throw new Chat.ErrorMessage(`Player names must be 25 characters or less.`); + const player: Player = { + id: toID(name), + name, + price: 0, + }; + if (tiers.length) player.tiers = tiers; + playerList.set(player.id, player); + } + this.auctionPlayers = playerList; + } + + addAuctionPlayer(name: string, tiers?: string[]) { + if (this.state === 'bid') throw new Chat.ErrorMessage(`Players cannot be added during a nomination.`); + if (name.length > 25) throw new Chat.ErrorMessage(`Player names must be 25 characters or less.`); + const player: Player = { + id: toID(name), + name, + price: 0, + }; + if (tiers?.length) { + if (tiers.some(tier => tier.length > 30)) { + throw new Chat.ErrorMessage(`Tier names must be 30 characters or less.`); + } + player.tiers = tiers; + } + this.auctionPlayers.set(player.id, player); + return player; + } + + removeAuctionPlayer(name: string) { + if (this.state === 'bid') throw new Chat.ErrorMessage(`Players cannot be removed during a nomination.`); + const player = this.auctionPlayers.get(toID(name)); + if (!player) throw new Chat.ErrorMessage(`Player "${name}" not found.`); + player.team?.removePlayer(player); + this.auctionPlayers.delete(player.id); + if (this.state !== 'setup' && !this.getUndraftedPlayers().length) { + this.end('The auction has ended because there are no players remaining in the draft pool.'); + } + return player; + } + + assignPlayer(name: string, teamName?: string) { + if (this.state === 'bid') throw new Chat.ErrorMessage(`Players cannot be assigned during a nomination.`); + const player = this.auctionPlayers.get(toID(name)); + if (!player) throw new Chat.ErrorMessage(`Player "${name}" not found.`); + if (teamName) { + const team = this.teams.get(toID(teamName)); + if (!team) throw new Chat.ErrorMessage(`Team "${teamName}" not found.`); + team.addPlayer(player); + if (!this.getUndraftedPlayers().length) { + return this.end('The auction has ended because there are no players remaining in the draft pool.'); + } + } else { + player.team?.removePlayer(player); + } + } + + addTeam(name: string) { + if (this.state !== 'setup') throw new Chat.ErrorMessage(`Teams cannot be added after the auction has started.`); + if (name.length > 40) throw new Chat.ErrorMessage(`Team names must be 40 characters or less.`); + const team = new Team(name, this); + this.teams.set(team.id, team); + const teams = [...this.teams.values()]; + this.queue = teams.concat(teams.slice().reverse()); + return team; + } + + removeTeam(name: string) { + if (this.state !== 'setup') throw new Chat.ErrorMessage(`Teams cannot be removed after the auction has started.`); + const team = this.teams.get(toID(name)); + if (!team) throw new Chat.ErrorMessage(`Team "${name}" not found.`); + this.queue = this.queue.filter(t => t !== team); + this.teams.delete(team.id); + return team; + } + + suspendTeam(name: string) { + if (this.state === 'bid') throw new Chat.ErrorMessage(`Teams cannot be suspended during a nomination.`); + const team = this.teams.get(toID(name)); + if (!team) throw new Chat.ErrorMessage(`Team "${name}" not found.`); + if (team.suspended) throw new Chat.ErrorMessage(`Team ${name} is already suspended.`); + if (this.nominatingTeam === team) throw new Chat.ErrorMessage(`The nominating team cannot be suspended.`); + team.suspended = true; + return team; + } + + unsuspendTeam(name: string) { + if (this.state === 'bid') throw new Chat.ErrorMessage(`Teams cannot be unsuspended during a nomination.`); + const team = this.teams.get(toID(name)); + if (!team) throw new Chat.ErrorMessage(`Team "${name}" not found.`); + if (!team.suspended) throw new Chat.ErrorMessage(`Team ${name} is not suspended.`); + team.suspended = false; + return team; + } + + addManagers(teamName: string, users: string[]) { + const team = this.teams.get(toID(teamName)); + if (!team) throw new Chat.ErrorMessage(`Team "${teamName}" not found.`); + const problemUsers = users.filter(user => !toID(user) || toID(user).length > 18); + if (problemUsers.length) { + throw new Chat.ErrorMessage(`Invalid usernames: ${problemUsers.join(', ')}`); + } + for (const id of users.map(toID)) { + const manager = this.managers.get(id); + if (!manager) { + this.managers.set(id, {id, team}); + } else { + manager.team = team; + } + } + return team; + } + + removeManagers(users: string[]) { + const problemUsers = users.filter(user => !this.managers.has(toID(user))); + if (problemUsers.length) { + throw new Chat.ErrorMessage(`Invalid managers: ${problemUsers.join(', ')}`); + } + for (const id of users.map(toID)) { + this.managers.delete(id); + } + } + + addCreditsToTeam(teamName: string, amount: number) { + if (this.type === 'snake') throw new Chat.ErrorMessage(`Snake draft does not support credits.`); + if (this.state === 'bid') throw new Chat.ErrorMessage(`Credits cannot be changed during a nomination.`); + const team = this.teams.get(toID(teamName)); + if (!team) throw new Chat.ErrorMessage(`Team "${teamName}" not found.`); + const newCredits = team.credits + amount; + if (newCredits <= 0 || newCredits > 10000000) { + throw new Chat.ErrorMessage(`A team must have between 0 and 10,000,000 credits.`); + } + if (team.maxBid(newCredits) < this.minBid) { + throw new Chat.ErrorMessage(`A team must have enough credits to draft the minimum amount of players.`); + } + team.credits = newCredits; + return team; + } + + start() { + if (this.state !== 'setup') throw new Chat.ErrorMessage(`The auction has already started.`); + if (this.teams.size < 2) throw new Chat.ErrorMessage(`The auction needs at least 2 teams to start.`); + const problemTeams = [...this.teams.values()].filter(t => t.maxBid() < this.minBid).map(t => t.name); + if (problemTeams.length) { + throw new Chat.ErrorMessage(`The following teams do not have enough credits to draft the minimum amount of players: ${problemTeams.join(', ')}`); + } + this.next(); + } + + reset() { + const teams = [...this.teams.values()]; + for (const team of teams) { + team.credits = this.startingCredits; + team.suspended = false; + for (const player of team.players) { + delete player.team; + player.price = 0; + } + team.players = []; + } + this.lastQueue = null; + this.queue = teams.concat(teams.slice().reverse()); + this.clearNomTimer(); + this.clearBidTimer(); + this.state = 'setup'; + this.sendHTMLBox(this.generateAuctionTable()); + } + + next() { + this.state = 'nom'; + if (!this.queue.filter(team => !team.isSuspended()).length) { + return this.end('The auction has ended because there are no teams remaining that can draft players.'); + } + if (!this.getUndraftedPlayers().length) { + return this.end('The auction has ended because there are no players remaining in the draft pool.'); + } + do { + this.nominatingTeam = this.queue.shift()!; + this.queue.push(this.nominatingTeam); + } while (this.nominatingTeam.isSuspended()); + this.sendHTMLBox(this.generateAuctionTable()); + this.sendMessage(`/html It is now ${Utils.escapeHTML(this.nominatingTeam.name)}'s turn to nominate a player. Managers: ${this.nominatingTeam.getManagers().map(m => `${Utils.escapeHTML(m)}`).join(' ')}`); + this.startNomTimer(); + } + + nominate(user: User, target: string) { + if (this.state !== 'nom') throw new Chat.ErrorMessage(`You cannot nominate players right now.`); + const manager = this.managers.get(user.id); + if (!manager || manager.team !== this.nominatingTeam) this.checkOwner(user); + + // For undo + this.lastQueue = this.queue.slice(); + this.lastQueue.unshift(this.lastQueue.pop()!); + + const player = this.auctionPlayers.get(toID(target)); + if (!player) throw new Chat.ErrorMessage(`${target} is not a valid player.`); + if (player.team) throw new Chat.ErrorMessage(`${player.name} has already been drafted.`); + this.clearNomTimer(); + this.nominatedPlayer = player; + if (this.type === 'snake') { + this.sendMessage(Utils.html`/html ${this.nominatingTeam.name} drafted ${this.nominatedPlayer.name}!`); + this.nominatingTeam.addPlayer(this.nominatedPlayer); + this.next(); + } else { + this.state = 'bid'; + this.highestBid = this.minBid; + this.highestBidder = this.nominatingTeam; + + const notifyMsg = Utils.html`|notify|${this.room.title} Auction|${player.name} has been nominated!`; + for (const currManager of this.managers.values()) { + if (currManager.team === this.nominatingTeam) continue; + Users.getExact(currManager.id)?.sendTo(this.room, notifyMsg); + } + + this.sendMessage(Utils.html`/html ${user.name} from team ${this.nominatingTeam.name} has nominated ${player.name} for auction. Use /bid or type a number to place a bid!`); + this.sendBidInfo(); + this.startBidTimer(); + } + } + + bid(user: User, bid: number) { + if (this.state !== 'bid') throw new Chat.ErrorMessage(`There are no players up for auction right now.`); + const team = this.managers.get(user.id)?.team; + if (!team) throw new Chat.ErrorMessage(`Only managers can bid on players.`); + if (team.isSuspended()) throw new Chat.ErrorMessage(`Your team is suspended and cannot place bids.`); + + if (bid > team.maxBid()) throw new Chat.ErrorMessage(`Your team cannot afford to bid that much.`); + + if (this.type === 'blind') { + if (this.bidsPlaced.has(team)) throw new Chat.ErrorMessage(`Your team has already placed a bid.`); + if (bid <= this.minBid) throw new Chat.ErrorMessage(`Your bid must be higher than the minimum bid.`); + + const msg = `|c:|${Math.floor(Date.now() / 1000)}|&|/html Your team placed a bid of ${bid} on ${Utils.escapeHTML(this.nominatedPlayer.name)}.`; + for (const manager of this.managers.values()) { + if (manager.team !== team) continue; + Users.getExact(manager.id)?.sendTo(this.room, msg); + } + + if (bid > this.highestBid) { + this.highestBid = bid; + this.highestBidder = team; + } + this.bidsPlaced.set(team, bid); + if (this.bidsPlaced.size === this.teams.size) { + this.finishCurrentNom(); + } + } else { + if (bid <= this.highestBid) throw new Chat.ErrorMessage(`Your bid must be higher than the current bid.`); + this.highestBid = bid; + this.highestBidder = team; + this.sendMessage(Utils.html`/html ${user.name}[${team.name}]: ${bid}`); + this.sendBidInfo(); + this.startBidTimer(); + } + } + + onChatMessage(message: string, user: User) { + if (this.state === 'bid' && Number(message.replace(',', '.'))) { + this.bid(user, parseCredits(message)); + return ''; + } + } + + skipNom() { + if (this.state !== 'nom') throw new Chat.ErrorMessage(`Nominations cannot be skipped right now.`); + this.nominatedPlayer = null!; + this.sendMessage(`**${this.nominatingTeam.name}**'s nomination turn has been skipped!`); + this.clearNomTimer(); + this.next(); + } + + finishCurrentNom() { + if (this.type === 'blind') { + let buf = `
`; + if (!this.bidsPlaced.has(this.nominatingTeam)) { + buf += Utils.html``; + } + for (const [team, bid] of this.bidsPlaced) { + buf += Utils.html``; + } + buf += `
TeamBid
${this.nominatingTeam.name}${this.minBid}
${team.name}${bid}
`; + this.sendHTMLBox(buf); + this.bidsPlaced.clear(); + } + this.sendMessage(Utils.html`/html ${this.highestBidder.name} bought ${this.nominatedPlayer.name} for ${this.highestBid} credits!`); + this.highestBidder.addPlayer(this.nominatedPlayer, this.highestBid); + this.clearBidTimer(); + this.next(); + } + + undoLastNom() { + if (this.state !== 'nom') throw new Chat.ErrorMessage(`Nominations cannot be undone right now.`); + if (!this.lastQueue) throw new Chat.ErrorMessage(`Only one nomination can be undone at a time.`); + this.queue = this.lastQueue; + this.lastQueue = null; + if (this.nominatedPlayer) { + this.highestBidder.removePlayer(this.nominatedPlayer); + this.highestBidder.credits += this.highestBid; + } + this.next(); + } + + clearNomTimer() { + clearInterval(this.nomTimer); + this.nomTimeRemaining = this.nomTimeLimit; + this.room.add('|uhtmlchange|timer|'); + } + + startNomTimer() { + if (!this.nomTimeLimit) return; + this.clearNomTimer(); + this.sendTimer(false, true); + this.nomTimer = setInterval(() => this.pokeNomTimer(), 1000); + } + + clearBidTimer() { + clearInterval(this.bidTimer); + this.bidTimeRemaining = this.bidTimeLimit; + this.room.add('|uhtmlchange|timer|'); + } + + startBidTimer() { + if (!this.bidTimeLimit) return; + this.clearBidTimer(); + this.sendTimer(); + this.bidTimer = setInterval(() => this.pokeBidTimer(), 1000); + } + + pokeNomTimer() { + this.nomTimeRemaining--; + if (!this.nomTimeRemaining) { + this.skipNom(); + } else { + this.sendTimer(true, true); + if (this.nomTimeRemaining % 30 === 0 || [20, 10, 5].includes(this.nomTimeRemaining)) { + this.sendMessage(`/html ${this.nomTimeRemaining} seconds left!`); + } + } + } + + pokeBidTimer() { + this.bidTimeRemaining--; + if (!this.bidTimeRemaining) { + this.finishCurrentNom(); + } else { + this.sendTimer(true); + if (this.bidTimeRemaining % 30 === 0 || [20, 10, 5].includes(this.bidTimeRemaining)) { + this.sendMessage(`/html ${this.bidTimeRemaining} seconds left!`); + } + } + } + + end(message?: string) { + this.sendHTMLBox(this.generateAuctionTable(true)); + this.sendHTMLBox(this.generatePriceList()); + if (message) this.sendMessage(message); + this.destroy(); + } + + destroy() { + this.clearNomTimer(); + this.clearBidTimer(); + super.destroy(); + } +} + +export const commands: Chat.ChatCommands = { + auction: { + create(target, room, user) { + room = this.requireRoom(); + this.checkCan('minigame', null, room); + if (room.game) return this.errorReply(`There is already a game of ${room.game.title} in progress in this room.`); + if (room.settings.auctionDisabled) return this.errorReply('Auctions are currently disabled in this room.'); + + let startingCredits; + if (target) { + startingCredits = parseCredits(target); + if (startingCredits < 10000 || startingCredits > 10000000) { + return this.errorReply(`Starting credits must be between 10,000 and 10,000,000.`); + } + } + const auction = new Auction(room, startingCredits); + auction.addOwners([user.id]); + room.game = auction; + this.addModAction(`An auction was created by ${user.name}.`); + this.modlog(`AUCTION CREATE`); + }, + createhelp: [ + `/auction create [startingcredits] - Creates an auction. Requires: % @ # ~`, + ], + start(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + auction.start(); + this.addModAction(`The auction was started by ${user.name}.`); + this.modlog(`AUCTION START`); + }, + reset(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + auction.reset(); + this.addModAction(`The auction was reset by ${user.name}.`); + this.modlog(`AUCTION RESET`); + }, + delete: 'end', + stop: 'end', + end(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + auction.end(); + this.addModAction(`The auction was ended by ${user.name}.`); + this.modlog('AUCTION END'); + }, + info: 'display', + display(target, room, user) { + this.runBroadcast(); + const auction = this.requireGame(Auction); + this.sendReplyBox(auction.generateAuctionTable()); + }, + pricelist(target, room, user) { + this.runBroadcast(); + const auction = this.requireGame(Auction); + this.sendReplyBox(auction.generatePriceList()); + }, + minbid(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction minbid'); + const amount = parseCredits(target); + auction.setMinBid(amount); + this.addModAction(`${user.name} set the minimum bid to ${amount}.`); + this.modlog('AUCTION MINBID', null, `${amount}`); + }, + minbidhelp: [ + `/auction minbid [amount] - Sets the minimum bid. Requires: # ~ auction owner`, + ], + minplayers(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction minplayers'); + const amount = parseInt(target); + auction.setMinPlayers(amount); + this.addModAction(`${user.name} set the minimum number of players to ${amount}.`); + }, + minplayershelp: [ + `/auction minplayers [amount] - Sets the minimum number of players. Requires: # ~ auction owner`, + ], + nomtimer(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction nomtimer'); + const seconds = this.meansNo(target) ? 0 : parseInt(target); + auction.setNomTimeLimit(seconds); + this.addModAction(`${user.name} set the nomination timer to ${seconds} seconds.`); + }, + nomtimerhelp: [ + `/auction nomtimer [seconds/off] - Sets the nomination timer to [seconds] seconds or disables it. Requires: # ~ auction owner`, + ], + bidtimer(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction settimer'); + const seconds = parseInt(target); + auction.setBidTimeLimit(seconds); + this.addModAction(`${user.name} set the bid timer to ${seconds} seconds.`); + }, + bidtimerhelp: [ + `/auction timer [seconds] - Sets the bid timer to [seconds] seconds. Requires: # ~ auction owner`, + ], + settype(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction settype'); + auction.setType(target); + this.addModAction(`${user.name} set the auction type to ${toID(target)}.`); + }, + settypehelp: [ + `/auction settype [auction|blind|snake] - Sets the auction type. Requires: # ~ auction owner`, + `- auction: Standard auction with credits and bidding.`, + `- blind: Same as auction, but bids are hidden until the end of the nomination.`, + `- snake: Standard snake draft with no credits or bidding.`, + ], + addowner: 'addowners', + addowners(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + const owners = target.split(',').map(x => x.trim()); + if (!owners.length) return this.parse('/help auction addowners'); + auction.addOwners(owners); + this.addModAction(`${user.name} added ${Chat.toListString(owners.map(o => Users.getExact(o)!.name))} as auction owner${Chat.plural(owners.length)}.`); + }, + addownershelp: [ + `/auction addowners [user1], [user2], ... - Adds users as auction owners. Requires: # ~ auction owner`, + ], + removeowner: 'removeowners', + removeowners(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + const owners = target.split(',').map(x => x.trim()); + if (!owners.length) return this.parse('/help auction removeowners'); + auction.removeOwners(owners); + this.addModAction(`${user.name} removed ${Chat.toListString(owners.map(o => Users.getExact(o)?.name || o))} as auction owner${Chat.plural(owners.length)}.`); + }, + removeownershelp: [ + `/auction removeowners [user1], [user2], ... - Removes users as auction owners. Requires: # ~ auction owner`, + ], + async importplayers(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction importplayers'); + if (!/^https?:\/\/pastebin\.com\/[a-zA-Z0-9]+$/.test(target)) { + return this.errorReply('Invalid pastebin URL.'); + } + let data = ''; + try { + data = await Net(`https://pastebin.com/raw/${target.split('/').pop()}`).get(); + } catch {} + if (!data) return this.errorReply('Error fetching data from pastebin.'); + + auction.importPlayers(data); + this.addModAction(`${user.name} imported the player list from ${target}.`); + }, + importplayershelp: [ + `/auction importplayers [pastebin url] - Imports a list of players from a pastebin. Requires: # ~ auction owner`, + `The pastebin should be a list of tab-separated values with the first row containing tier names and subsequent rows containing the player names and a Y in the column corresponding to the tier.`, + `See https://pastebin.com/jPTbJBva for an example.`, + ], + addplayer(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + const [name, ...tiers] = target.split(',').map(x => x.trim()); + if (!name) return this.parse('/help auction addplayer'); + const player = auction.addAuctionPlayer(name, tiers); + this.addModAction(`${user.name} added player ${player.name} to the auction.`); + }, + addplayerhelp: [ + `/auction addplayer [name], [tier1], [tier2], ... - Adds a player to the auction. Requires: # ~ auction owner`, + ], + removeplayer(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction removeplayer'); + const player = auction.removeAuctionPlayer(target); + this.addModAction(`${user.name} removed player ${player.name} from the auction.`); + }, + removeplayerhelp: [ + `/auction removeplayer [name] - Removes a player from the auction. Requires: # ~ auction owner`, + ], + assignplayer(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + const [player, team] = target.split(',').map(x => x.trim()); + if (!player) return this.parse('/help auction assignplayer'); + if (team) { + auction.assignPlayer(player, team); + this.addModAction(`${user.name} assigned player ${player} to team ${team}.`); + } else { + auction.assignPlayer(player); + this.sendReply(`${user.name} returned player ${player} to the draft pool.`); + } + }, + assignplayerhelp: [ + `/auction assignplayer [player], [team] - Assigns a player to a team. If team is blank, returns player to draft pool. Requires: # ~ auction owner`, + ], + addteam(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + const [name, ...managerNames] = target.split(',').map(x => x.trim()); + if (!name) return this.parse('/help auction addteam'); + const team = auction.addTeam(name); + this.addModAction(`${user.name} added team ${team.name} to the auction.`); + auction.addManagers(team.name, managerNames); + }, + addteamhelp: [ + `/auction addteam [name], [manager1], [manager2], ... - Adds a team to the auction. Requires: # ~ auction owner`, + ], + removeteam(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction removeteam'); + const team = auction.removeTeam(target); + this.addModAction(`${user.name} removed team ${team.name} from the auction.`); + }, + removeteamhelp: [ + `/auction removeteam [team] - Removes a team from the auction. Requires: # ~ auction owner`, + ], + suspendteam(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction suspendteam'); + const team = auction.suspendTeam(target); + this.addModAction(`${user.name} suspended team ${team.name}.`); + }, + suspendteamhelp: [ + `/auction suspendteam [team] - Suspends a team from the auction. Requires: # ~ auction owner`, + `Suspended teams have their nomination turns skipped and are not allowed to place bids.`, + ], + unsuspendteam(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction unsuspendteam'); + const team = auction.unsuspendTeam(target); + this.addModAction(`${user.name} unsuspended team ${team.name}.`); + }, + unsuspendteamhelp: [ + `/auction unsuspendteam [team] - Unsuspends a team from the auction. Requires: # ~ auction owner`, + ], + addmanager: 'addmanagers', + addmanagers(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + const [teamName, ...managerNames] = target.split(',').map(x => x.trim()); + if (!teamName || !managerNames.length) return this.parse('/help auction addmanagers'); + const team = auction.addManagers(teamName, managerNames); + const managers = managerNames.map(m => Users.getExact(m)?.name || toID(m)); + this.addModAction(`${user.name} added ${Chat.toListString(managers)} as manager${Chat.plural(managers.length)} for team ${team.name}.`); + }, + addmanagershelp: [ + `/auction addmanagers [team], [user1], [user2], ... - Adds users as managers to a team. Requires: # ~ auction owner`, + ], + removemanager: 'removemanagers', + removemanagers(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + if (!target) return this.parse('/help auction removemanagers'); + const managerNames = target.split(',').map(x => x.trim()); + auction.removeManagers(managerNames); + const managers = managerNames.map(m => Users.getExact(m)?.name || toID(m)); + this.addModAction(`${user.name} removed ${Chat.toListString(managers)} as manager${Chat.plural(managers.length)}.`); + }, + removemanagershelp: [ + `/auction removemanagers [user1], [user2], ... - Removes users as managers. Requires: # ~ auction owner`, + ], + addcredits(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + const [teamName, amount] = target.split(',').map(x => x.trim()); + if (!teamName || !amount) return this.parse('/help auction addcredits'); + const credits = parseCredits(amount); + const team = auction.addCreditsToTeam(teamName, credits); + this.addModAction(`${user.name} ${credits < 0 ? 'removed' : 'added'} ${Math.abs(credits)} credits ${credits < 0 ? 'from' : 'to'} team ${team.name}.`); + }, + addcreditshelp: [ + `/auction addcredits [team], [amount] - Adds credits to a team. Requires: # ~ auction owner`, + ], + nom: 'nominate', + nominate(target, room, user) { + const auction = this.requireGame(Auction); + if (!target) return this.parse('/help auction nominate'); + auction.nominate(user, target); + }, + nominatehelp: [ + `/auction nominate OR /nom [player] - Nominates a player for auction.`, + ], + bid(target, room, user) { + const auction = this.requireGame(Auction); + if (!target) return this.parse('/help auction bid'); + auction.bid(user, parseCredits(target)); + }, + bidhelp: [ + `/auction bid OR /bid [amount] - Bids on a player for the specified amount. If the amount is less than 500, it will be multiplied by 1000.`, + `During the bidding phase, all numbers that are sent in the chat will be treated as bids.`, + ], + skip: 'skipnom', + skipnom(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + auction.skipNom(); + this.addModAction(`${user.name} skipped the previous nomination.`); + }, + undo(target, room, user) { + const auction = this.requireGame(Auction); + auction.checkOwner(user); + + auction.undoLastNom(); + this.addModAction(`${user.name} undid the last nomination.`); + }, + disable(target, room) { + room = this.requireRoom(); + this.checkCan('gamemanagement', null, room); + if (room.settings.auctionDisabled) { + return this.errorReply('Auctions are already disabled.'); + } + room.settings.auctionDisabled = true; + room.saveSettings(); + this.sendReply('Auctions have been disabled for this room.'); + }, + enable(target, room) { + room = this.requireRoom(); + this.checkCan('gamemanagement', null, room); + if (!room.settings.auctionDisabled) { + return this.errorReply('Auctions are already enabled.'); + } + delete room.settings.auctionDisabled; + room.saveSettings(); + this.sendReply('Auctions have been enabled for this room.'); + }, + ongoing: 'running', + running() { + if (!this.runBroadcast()) return; + const runningAuctions = [...Rooms.rooms.values()].filter(r => r.getGame(Auction)).map(r => r.title); + this.sendReply(`Running auctions: ${runningAuctions.join(', ') || 'None'}`); + }, + '': 'help', + help() { + this.parse('/help auction'); + }, + }, + auctionhelp() { + if (!this.runBroadcast()) return; + this.sendReplyBox( + `Auction commands
` + + `- create [startingcredits]: Creates an auction.
` + + `- start: Starts the auction.
` + + `- reset: Resets the auction.
` + + `- end: Ends the auction.
` + + `- running: Shows a list of rooms with running auctions.
` + + `- display: Displays the current state of the auction.
` + + `- pricelist: Displays the current prices of players by team.
` + + `- nom [player]: Nominates a player for auction.
` + + `- bid [amount]: Bids on a player for the specified amount. If the amount is less than 500, it will be multiplied by 1000.
` + + `You may use /bid and /nom directly without the /auction prefix.
` + + `During the bidding phase, all numbers that are sent in the chat will be treated as bids.

` + + `
Configuration Commands` + + `- minbid [amount]: Sets the minimum bid.
` + + `- minplayers [amount]: Sets the minimum number of players.
` + + `- nomtimer [seconds]: Sets the nomination timer to [seconds] seconds.
` + + `- bidtimer [seconds]: Sets the bid timer to [seconds] seconds.
` + + `- settype [auction|blind|snake]: Sets the auction type.
` + + `- addowners [user1], [user2], ...: Adds users as auction owners.
` + + `- removeowners [user1], [user2], ...: Removes users as auction owners.
` + + `- importplayers [pastebin url]: Imports a list of players from a pastebin.
` + + `- addplayer [name], [tier1], [tier2], ...: Adds a player to the auction.
` + + `- removeplayer [name]: Removes a player from the auction.
` + + `- assignplayer [player], [team]: Assigns a player to a team. If team is blank, returns player to draft pool.
` + + `- addteam [name], [manager1], [manager2], ...: Adds a team to the auction.
` + + `- removeteam [name]: Removes the given team from the auction.
` + + `- suspendteam [name]: Suspends the given team from the auction.
` + + `- unsuspendteam [name]: Unsuspends the given team from the auction.
` + + `- addmanagers [team], [user1], [user2], ...: Adds users as managers to a team.
` + + `- removemanagers [user1], [user2], ...: Removes users as managers..
` + + `- addcredits [team], [amount]: Adds credits to a team.
` + + `- skipnom: Skips the current nomination.
` + + `- undo: Undoes the last nomination.
` + + `- [enable/disable]: Enables or disables auctions from being started in a room.
` + + `
` + ); + }, + nom(target) { + this.parse(`/auction nominate ${target}`); + }, + bid(target) { + this.parse(`/auction bid ${target}`); + }, + overpay() { + this.requireGame(Auction); + this.checkChat(); + return '/announce OVERPAY!'; + }, +}; + +export const roomSettings: Chat.SettingsHandler = room => ({ + label: "Auction", + permission: 'editroom', + options: [ + [`disabled`, room.settings.auctionDisabled || 'auction disable'], + [`enabled`, !room.settings.auctionDisabled || 'auction enable'], + ], +}); diff --git a/server/chat-plugins/battlesearch.ts b/server/chat-plugins/battlesearch.ts index a22216fbd036..91941893be9e 100644 --- a/server/chat-plugins/battlesearch.ts +++ b/server/chat-plugins/battlesearch.ts @@ -29,11 +29,11 @@ interface BattleSearchResults { const MAX_BATTLESEARCH_PROCESSES = 1; export async function runBattleSearch(userids: ID[], month: string, tierid: ID, turnLimit?: number) { const useRipgrep = await checkRipgrepAvailability(); - const pathString = `logs/${month}/${tierid}/`; + const pathString = `${month}/${tierid}/`; const results: {[k: string]: BattleSearchResults} = {}; let files = []; try { - files = await FS(pathString).readdir(); + files = await Monitor.logPath(pathString).readdir(); } catch (err: any) { if (err.code === 'ENOENT') { return results; @@ -41,15 +41,17 @@ export async function runBattleSearch(userids: ID[], month: string, tierid: ID, throw err; } const [userid] = userids; - files = files.filter(item => item.startsWith(month)).map(item => `logs/${month}/${tierid}/${item}`); + files = files.filter(item => item.startsWith(month)).map(item => Monitor.logPath(`${month}/${tierid}/${item}`).path); if (useRipgrep) { // Matches non-word (including _ which counts as a word) characters between letters/numbers // in a user's name so the userid can case-insensitively be matched to the name. - const regexString = userids.map(id => `(?=.*?("p(1|2)":"${[...id].join('[^a-zA-Z0-9]*')}[^a-zA-Z0-9]*"))`).join(''); + // We want to be order-insensitive for the player IDs. This union is much cheaper than using PCRE. + const userUnion = userids.map(id => `${[...id].join('[^a-zA-Z0-9]*')}[^a-zA-Z0-9]*`).join('|'); + const regexString = userids.map(id => `(.*?("p(1|2)":"(${userUnion})"))`).join(''); let output; try { - output = await ProcessManager.exec(['rg', '-i', regexString, '--no-line-number', '-P', '-tjson', ...files]); + output = await ProcessManager.exec(['rg', '-i', regexString, '--no-line-number', '-tjson', ...files]); } catch { return results; } @@ -276,7 +278,7 @@ async function rustBattleSearch( const day = date.getDate().toString().padStart(2, '0'); directories.push( - FS(path.join('logs', `${year}-${month}`, format, `${year}-${month}-${day}`)).path + Monitor.logPath(path.join(`${year}-${month}`, format, `${year}-${month}-${day}`)).path ); } @@ -340,7 +342,7 @@ export const pages: Chat.PageTable = { buf += `

`; const months = Utils.sortBy( - (await FS('logs/').readdir()).filter(f => f.length === 7 && f.includes('-')), + (await Monitor.logPath('/').readdir()).filter(f => f.length === 7 && f.includes('-')), name => ({reverse: name}) ); if (!month) { @@ -357,7 +359,7 @@ export const pages: Chat.PageTable = { } const tierid = toID(formatid); - const tiers = Utils.sortBy(await FS(`logs/${month}/`).readdir(), tier => [ + const tiers = Utils.sortBy(await Monitor.logPath(`${month}/`).readdir(), tier => [ // First sort by gen with the latest being first tier.startsWith('gen') ? -parseInt(tier.charAt(3)) : -6, // Then sort alphabetically @@ -440,11 +442,11 @@ export const commands: Chat.ChatCommands = { this.runBroadcast(); return this.sendReply( '/battlesearch [args] - Searches rated battle history for the provided [args] and returns information on battles between the userids given.\n' + - `If a number is provided in the [args], it is assumed to be a turn limit, else they're assumed to be userids. Requires &` + `If a number is provided in the [args], it is assumed to be a turn limit, else they're assumed to be userids. Requires ~` ); }, rustbattlesearchhelp: [ - `/battlesearch , , - Searches for battles played by in the past days. Requires: &`, + `/battlesearch , , - Searches for battles played by in the past days. Requires: ~`, ], }; diff --git a/server/chat-plugins/blackjack.ts b/server/chat-plugins/blackjack.ts deleted file mode 100644 index 0b76f72b20c9..000000000000 --- a/server/chat-plugins/blackjack.ts +++ /dev/null @@ -1,773 +0,0 @@ -/** - * Blackjack Game - * Pokemon Showdown - http://pokemonshowdown.com/ - * - * This allows users to play the classic blackjack card game. - * Credits: jd, panpawn - * - * @license MIT license - */ -import {Utils} from '../../lib'; - -type Deck = - 'A♥' | 'A♦' | 'A♣' | 'A♠' | '2♥' | '2♦' | '2♣' | '2♠' | '3♥' | '3♦' | '3♣' | '3♠' | '4♥' | '4♦' | '4♣' | - '4♠' | '5♥' | '5♦' | '5♣' | '5♠' | '6♥' | '6♦' | '6♣' | '6♠' | '7♥' | '7♦' | '7♣' | '7♠' | '8♥' | '8♦' | - '8♣' | '8♠' | '9♥' | '9♦' | '9♣' | '9♠' | '10♥' | '10♦' | '10♣' | '10♠' | 'J♥' | 'J♦' | 'J♣' | 'J♠' | - 'Q♥' | 'Q♦' | 'Q♣' | 'Q♠' | 'K♥' | 'K♦' | 'K♣' | 'K♠'; -type Symbols = '♥' | '♦' | '♣' | '♠'; -type SymbolName = 'Hearts' | 'Diamonds' | 'Clubs' | 'Spades'; - -export class Blackjack extends Rooms.RoomGame { - room: Room; - - roomID: RoomID; - - autostart: NodeJS.Timer | null; - dqTimer: NodeJS.Timer | null; - timerTick: NodeJS.Timer | null; - - cardHeight: number; - cardWidth: number; - minimumPlayers: number; - playerScrollWheel: number; - turnTimeoutMinutes: number; - timerTickSeconds: number; - - button: string; - createdBy: string; - curUsername: string; - endedBy: string; - infoboxLimited: string; - lastMessage: string; - slideButton: string; - spectateButton: string; - startedBy: string; - state: string; - turnLog: string; - uhtmlChange: string; - - spectators: {[k: string]: ID}; - symbols: {[k in Symbols]: SymbolName}; - - dealer: BlackjackDealer; - deck: Deck[]; - gameNumber: number; - - constructor(room: Room, user: User, autostartMinutes = 0) { - super(room); - this.gameNumber = room.nextGameNumber(); - this.room = room; - - this.turnTimeoutMinutes = 1; - this.timerTickSeconds = 5; - - this.createdBy = user.name; - this.startedBy = ''; - this.allowRenames = true; - - this.playerCap = 16; - this.minimumPlayers = 2; - this.playerScrollWheel = 4; - this.cardWidth = 50; - this.cardHeight = 85; - - this.spectators = Object.create(null); - this.dealer = new BlackjackDealer(); - - this.symbols = { - '♥': 'Hearts', - '♦': 'Diamonds', - '♣': 'Clubs', - '♠': 'Spades', - }; - this.deck = new BlackjackDeck().shuffle(); - - this.roomID = this.room.roomid; - this.title = `Blackjack (${room.title})`; - this.state = 'signups'; - - this.lastMessage = ''; - this.turnLog = ''; - this.uhtmlChange = ''; - this.curUsername = ''; - this.endedBy = ''; - this.infoboxLimited = ''; - - this.button = ' | '; - this.spectateButton = ''; - this.slideButton = ''; - - this.autostart = null; - this.dqTimer = null; - this.timerTick = null; - - this.makeGame(autostartMinutes); - } - - /** - * Game Setup - * makeGame - configures required settings for creating a game - * makePlayer - adds blackjack-specific properties to player object - * sendInvite - called when a game is created, or when a player joins/leaves - */ - makeGame(autostartMinutes = 0) { - if (autostartMinutes > 0) { - this.autostart = setTimeout(() => this.start(), autostartMinutes * 60000); - } - - this.sendInvite(); - } - makePlayer(user: User) { - return new BlackjackPlayer(user, this); - } - sendInvite() { - const change = this.uhtmlChange; - const players = Object.keys(this.playerTable); - const playerList = []; - for (const player of players) playerList.push(Utils.escapeHTML(this.playerTable[player].name)); - this.room.send(`|uhtml${change}|blackjack-${this.gameNumber}|
${this.createdBy} has created a game of Blackjack. ${this.button}
Players (${players.length}): ${!players.length ? '(None)' : playerList.join(', ')}
`); - this.uhtmlChange = 'change'; - } - - /** - * Joining/Leaving/Viewing - * joinGame - joins the game - * leaveGame - leaves the game - * spectate - spectates the game - * unspectate - stops spectating the game - */ - joinGame(user: User) { - if (!user.named) return this.errorMessage(user, `You must first choose a name to play Blackjack.`); - if (this.state === 'started') return this.errorMessage(user, `Blackjack has already started.`); - const joined = this.addPlayer(user); - if (!joined) { - this.errorMessage(user, `You are already in this game.`); - return false; - } - - this.sendInvite(); - - if (Object.keys(this.playerTable).length === this.playerCap) { - this.start(); - } - if (this.spectators[user.id]) delete this.spectators[user.id]; // prevent player from spectating - return true; - } - leaveGame(user: User) { - if (this.state === 'started') return this.errorMessage(user, `You cannot leave this game; it has already started.`); - if (!this.playerTable[user.id]) return this.errorMessage(user, "You are not in this game to leave."); - this.removePlayer(user); - this.sendInvite(); - } - spectate(user: User) { - if (this.spectators[user.id]) return this.errorMessage(user, `You are already spectating this game.`); - if (this.playerTable[user.id]) { - return this.errorMessage(user, `You don't need to spectate the game; you're playing the game.`); - } - this.spectators[user.id] = user.id; - user.sendTo(this.roomid, `You are now spectating this game.`); - } - unspectate(user: User) { - if (!this.spectators[user.id]) return this.errorMessage(user, `You are already not spectating this game.`); - delete this.spectators[user.id]; - user.sendTo(this.roomid, `You are no longer spectating this game.`); - } - - /** - * Utility - * errorMessage - sends a user an error message - * add - adds/sends text to room - * display - displays gameplay to players and spectators - * clear - clears a user's gameplay screen - * clearAllTimers - clears all possible existing timers pertaining to blackjack - * slide - slides the game log down in the chat - * onConnect - handles replies to send when a user joins the room, if any - * onUpdateConnection - overrides default onUpdateConnection - * createTimer - creates a timer with a countdown for a player - * generateCard - generates the card for the UI - * getWinners - returns an array of the winners and their cards - */ - errorMessage(user: User, message: string) { - user.sendTo(this.room, Utils.html`|html|
${message}
`); - } - send(message: string, clean = false) { - const change = this.uhtmlChange; - this.room.send(`|uhtml${change}|blackjack-${this.gameNumber}|
${(clean ? message : this.lastMessage + message)}
`); - this.lastMessage += message; - this.uhtmlChange = 'change'; - } - display(text: string, clean = false, playerName?: string, noChange = false, end = false) { - const force = (end && this.endedBy); - let change = this.uhtmlChange; - if (noChange) change = ''; - if (clean) this.lastMessage = ''; - const message = `|uhtml${change}|blackjack-${this.gameNumber}|
`; - this.lastMessage += text; - if (end) { - text = `The game of blackjack has ${force ? `been forcibly ended by ${this.endedBy}` : 'ended'}.
View turn log${this.turnLog}
${text}`; - this.lastMessage = ''; - } - for (const player of Object.keys(this.playerTable)) { - if (playerName && this.playerTable[player].name === playerName) { // turn highlighting - this.playerTable[player].gameLog += `${text}`; - this.playerTable[player].sendRoom(`${message}${end ? text : this.playerTable[player].gameLog}
`); - } else { - this.playerTable[player].gameLog += text; - this.playerTable[player].sendRoom(`${message}${end ? text : this.playerTable[player].gameLog}
`); - } - } - for (const spectatorID of Object.keys(this.spectators)) { - const spectator = Users.get(this.spectators[spectatorID]); - if (spectator) spectator.sendTo(this.roomid, `${message}${this.lastMessage + text}
`); - } - } - clear() { - const player = this.playerTable[this.curUsername]; - if (!player) throw new Error(`Player not in player table`); // this should never happen - player.sendRoom(`|uhtmlchange|user-blackjack-${this.gameNumber}|`); - } - clearAllTimers() { - if (this.dqTimer) { - clearTimeout(this.dqTimer); - this.dqTimer = null; - } - if (this.timerTick) { - clearInterval(this.timerTick); - this.timerTick = null; - } - if (this.autostart) { - clearTimeout(this.autostart); - this.autostart = null; - } - } - slide(user: User) { - user.sendTo(this.roomid, `|uhtml|blackjack-${this.gameNumber}|`); - this.display('', false, user.name); - } - onConnect(user: User) { - const message = `|uhtml|blackjack-${this.gameNumber}|
`; - if (this.state === 'signups') { - this.sendInvite(); - } else if (this.state === 'started') { - const player = this.playerTable[user.id]; - const spectator = this.spectators[user.id]; - if (player && user.id === toID(this.curUsername)) { // their turn; send gamelog and game screen - player.sendRoom(`${message}${player.gameLog}`); - player.sendRoom(player.playScreen.replace('|uhtmlchange|', '|uhtml|')); - return; - } else if (player) { // a player, but not their turn; just send gamelog - player.sendRoom(`${message}${player.gameLog}`); - return; - } else if (spectator) { // spectator; send gamelog - user.sendTo(this.roomid, `${message}${this.lastMessage}`); - return; - } - } - } - onUpdateConnection() { - // This happens (runs onConnect) when a connection in the room - // changes, such as going on a new name. We don't want to do - // anything for such a situation, so we're overriding this. - } - createTimer(user: User) { - const player = this.playerTable[user.id]; - this.dqTimer = setTimeout(() => { - let cards = ''; - for (const card of player.cards) cards += `[${card}] `; - player.status = 'stand'; - this.display( - Utils.html`
${player.name} stands with ${cards}` + - ` (${player.points}) (Auto-stand: took too long to move)`, - false, - this.playerTable[this.curUsername].name - ); - this.clear(); - this.next(); - }, this.turnTimeoutMinutes * 60 * 1000); - this.timerTick = setInterval(() => { - const display = player.playScreen.replace('|uhtml|', '|uhtmlchange|'); - if (display !== '') { - const timeLeft = player.timerTicksLeft - 5; - const buffer = (String(timeLeft).length === 1 ? '0' : ''); - const half = (timeLeft <= ((this.turnTimeoutMinutes * 60) / 2)); - player.sendRoom(`${display} | [ 0:${buffer}${timeLeft}]`); - player.timerTicksLeft -= this.timerTickSeconds; - } - }, this.timerTickSeconds * 1000); - } - generateCard(card: string) { - const value = toID(card).toUpperCase(); - const symbolName = this.symbols[card.substr(-1) as Symbols]; - const red = ['D', 'H'].includes(symbolName.charAt(0)); - let cardUI = value; - if (value === 'K') cardUI = 'King'; - if (value === 'Q') cardUI = 'Queen'; - if (value === 'A') cardUI = 'Ace'; - if (value === 'J') cardUI = 'Joker'; - return `
${value}
${card.substr(-1)}
${value}
${card.substr(-1)}
`; - } - getWinners(forceend = false) { - const winners = []; - if (forceend) this.giveCard('dealer'); - if (this.dealer.points > 21) { - for (const player of Object.keys(this.playerTable)) { - if (this.playerTable[player].status === 'bust') continue; - winners.push( - Utils.html`${this.playerTable[player].name} ` + - `[${this.playerTable[player].cards.join(', ')}]` - ); - } - } else if (this.dealer.points !== 21) { - for (const player of Object.keys(this.playerTable)) { - if (this.playerTable[player].status === 'bust' || this.playerTable[player].points <= this.dealer.points) continue; - winners.push( - Utils.html`${this.playerTable[player].name} ` + - `[${this.playerTable[player].cards.join(', ')}]` - ); - } - } else if (this.dealer.points === 21) { - winners.push(`${this.dealer.name} [${this.dealer.cards.join(', ')}]`); - } - return winners; - } - - /** - * Game State Changes - * start - starts the game - * end - ends the game - * destroy - destroys the game - */ - start(user?: User) { - const numberOfPlayers = Object.keys(this.playerTable).length; - if (numberOfPlayers < this.minimumPlayers) { - if (this.autostart) { - clearTimeout(this.autostart); - this.autostart = null; - } - this.send("
Not enough players to start; game canceled."); - this.destroy(); - return; - } - if (user) this.startedBy = Utils.escapeHTML(user.name); - this.infoboxLimited = (numberOfPlayers >= this.playerScrollWheel ? ' infobox-limited' : ''); - this.send(`[Blackjack has started. ${this.spectateButton}]`, true); - - this.curUsername = Object.keys(this.playerTable)[0]; - - const header = `The game of blackjack has started${(this.startedBy !== '' ? ` (started by ${this.startedBy})` : ``)}. ${this.slideButton}
`; - this.state = 'started'; - - this.giveCard('dealer'); - this.giveCard('dealer'); - this.turnLog += `${this.dealer.name}: [${this.dealer.cards[0]}]`; - - for (const player of Object.keys(this.playerTable)) { - this.giveCard(this.playerTable[player].user.id); - this.giveCard(this.playerTable[player].user.id); - this.turnLog += Utils.html`
${this.playerTable[player].name}: ` + - `[${this.playerTable[player].cards[0]}] [${this.playerTable[player].cards[1]}] (${this.playerTable[player].points})`; - } - - this.display(`${header}${this.turnLog}`, true, ''); - this.next(); - } - end(user: User | true, cmd?: string) { - const force = (cmd && toID(cmd) === 'forceend'); - if (user === true) { - this.state = 'ended'; - this.destroy(); - return true; - } - if (this.state === 'started' && cmd && !force) { - return this.errorMessage( - user, - `Because this game has started, you can only end this game by using /blackjack forceend.` - ); - } - let winners = this.getWinners(); - if (force) { - winners = this.getWinners(true); - this.endedBy = Utils.escapeHTML(user.name); - if (this.curUsername) { - this.playerTable[this.curUsername].send(`|uhtmlchange|user-blackjack-${this.gameNumber}|`); - } - if (winners.length < 1) { - this.display(`There are no winners this time.`, false, undefined, false, true); - } else { - this.display(`Winner${Chat.plural(winners.length)}: ${winners.join(', ')}`, false, undefined, false, true); - } - } - - if (!force && this.state !== 'signups') { - if (winners.length < 1) { - this.display(`There are no winners this time.`, false, undefined, false, true); - } else { - this.display(`Winner${Chat.plural(winners.length)}: ${winners.join(', ')}`, false, undefined, false, true); - } - } else if (this.state === 'signups') { - this.send( - Utils.html`The game of blackjack has been ended by ${user.name}, ` + - `and there are no winners because the game never started.`, - true - ); - } - - this.state = 'ended'; - - this.destroy(); - return true; - } - destroy() { - if (Object.keys(this.playerTable).length) { - for (const player of Object.keys(this.playerTable)) { - this.playerTable[player].destroy(); - } - } - this.clearAllTimers(); - this.room.game = null; - } - - /** - * Gameplay - * hit - player decides to get a new card - * stand - player decides to keep current cards - * giveCard - gives a player a card from the deck - * getCardPoints - returns the point value of a user's cards - * next - game goes on to the next turn - */ - hit(user: User) { - if (this.state !== 'started') return this.errorMessage(user, `Blackjack hasn't started yet.`); - if (!this.playerTable[user.id]) return this.errorMessage(user, `You aren't a player in this game.`); - if (this.curUsername !== user.id) return this.errorMessage(user, `It's not your turn.`); - this.playerTable[user.id].selfUhtml = 'change'; - this.playerTable[user.id].resetTimerTicks(); - - this.giveCard(user.id); - } - stand(user: User) { - const player = this.playerTable[user.id]; - if (this.state !== 'started') return this.errorMessage(user, `Blackjack hasn't started yet.`); - if (!player) return this.errorMessage(user, `You aren't a player in this game.`); - if (this.curUsername !== user.id) return this.errorMessage(user, `It's not your turn.`); - player.status = 'stand'; - let cards = ''; - for (const card of player.cards) cards += `[${card}] `; - const turnLine = Utils.html`
${player.name} stands with ${cards} ` + - `(${player.points}${player.points === 21 ? ' - blackjack!' : ''})`; - - this.turnLog += turnLine; - this.display(turnLine, false, player.name); - this.clear(); - - this.next(); - } - giveCard(userid: string) { - if (this.deck.length < 1) this.deck = new BlackjackDeck().shuffle(); - const player = (userid === 'dealer' ? this.dealer : this.playerTable[userid]); - if (!player) return; // this should never happen - player.cards.push(this.deck[0]); - - this.deck.shift(); - - if (this.deck.length === 0) { - this.display(`
${this.dealer.name} has ran out of cards in the deck; shuffling a new deck...`); - this.deck = new BlackjackDeck().shuffle(); - } - - player.points = this.getCardPoints(userid); - - if (player.cards.length < 3) return; - - let turnLine = Utils.html`
${player.name} hit and received ` + - `[${player.cards[player.cards.length - 1]}] (${player.points})`; - this.turnLog += turnLine; - if (player.cards.length > 2) this.display(turnLine, false, player.name); - - if (player instanceof BlackjackDealer) { - if (player.points > 21) { - let cards = ''; - for (const card of player.cards) { - cards += `[${card}] `; - } - turnLine = Utils.html`
${this.dealer.name} has busted with ${cards} (${player.points})`; - this.turnLog += turnLine; - this.display(turnLine); - this.end(true); - return; - } else if (player.points === 21) { - turnLine = Utils.html`
${this.dealer.name} has blackjack!`; - this.turnLog += turnLine; - this.display(turnLine); - this.end(true); - return; - } - } else if (player.points > 21) { - player.status = 'bust'; - let cards = ''; - for (const card of player.cards) { - cards += `[${card}] `; - } - turnLine = Utils.html`
${player.name} has busted with ${cards} (${player.points})`; - this.turnLog += turnLine; - this.display(turnLine, false, player.name); - this.clear(); - } else if (player.points === 21) { - player.status = 'stand'; - turnLine = Utils.html`
${player.name} has blackjack!`; - this.turnLog += turnLine; - this.display(turnLine, false, player.name); - this.clear(); - } - if (player !== this.dealer) this.playerTable[userid].cards = player.cards; - this.next(); - } - getCardPoints(playerid: string) { - const player = (playerid === 'dealer' ? this.dealer : this.playerTable[playerid]); - let points = 0; - let aceCount = 0; - for (const card of player.cards.map(x => toID(x).toUpperCase())) { - if (!isNaN(Number(card))) { - points += Number(card); - } else if (['K', 'Q', 'J'].includes(card)) { - points += 10; - } else if (card === 'A') { - points += 11; - aceCount++; - } - } - - // At first, we value aces as 11, however, we will change their value - // to be 1 if having them as 11 would cause an unnecessary bust. We will - // do this by subtracting 10 for each ace that would otherwise cause a bust. - while (points > 21 && aceCount > 0) { - points -= 10; - aceCount--; - } - - return points; - } - next() { - this.clearAllTimers(); - if ( - Object.keys(this.playerTable)[Object.keys(this.playerTable).length - 1] === this.curUsername && - this.playerTable[this.curUsername].status !== 'playing' - ) { - if (this.dealer.points < 17) { - this.giveCard('dealer'); - } else if (this.dealer.points >= 17) { - let cards = ''; - for (const card of this.dealer.cards) { - cards += `[${card}] `; - } - const turnLine = `
${this.dealer.name} stands with ${cards} (${this.dealer.points})`; - this.turnLog += turnLine; - this.display(turnLine); - this.end(true); - } - return; - } - if (this.playerTable[this.curUsername].status !== 'playing') { - let num = 0; - while (this.playerTable[Object.keys(this.playerTable)[num]].status !== 'playing') { - num++; - } - this.curUsername = Object.keys(this.playerTable)[num]; - } - let output = `|uhtml${this.playerTable[this.curUsername].selfUhtml}|user-blackjack-${this.gameNumber}|
`; - output += `It's your turn to move, ${this.playerTable[this.curUsername].name}
`; - for (const card of this.playerTable[this.curUsername].cards) { - output += this.generateCard(card); - } - output += `
Score: ${this.playerTable[this.curUsername].points}${(this.playerTable[this.curUsername].points === 21 ? ` (you have blackjack!)` : ``)}`; - output += `
| `; - - this.playerTable[this.curUsername].sendRoom(`|notify|Blackjack (${this.room.title})|It's your turn to play!`); - this.playerTable[this.curUsername].sendRoom(output); - this.playerTable[this.curUsername].playScreen = output; - - this.createTimer(this.playerTable[this.curUsername].user); - } -} - -class BlackjackPlayer extends Rooms.RoomGamePlayer { - user: User; - - points: number; - slide: number; - timerTicksLeft: number; - - cards: string[]; - - gameLog: string; - playScreen: string; - selfUhtml: string; - status: string; - - constructor(user: User, game: Blackjack) { - super(user, game); - this.user = user; - - this.cards = []; - this.points = 0; - this.slide = 0; - this.status = 'playing'; - - this.selfUhtml = ''; - this.gameLog = ''; - this.playScreen = ''; - this.timerTicksLeft = this.game.turnTimeoutMinutes * 60; // to get into seconds-format - } - resetTimerTicks() { - this.timerTicksLeft = this.game.turnTimeoutMinutes * 60; - } -} - -class BlackjackDealer { - cards: string[]; - points: number; - name: string; - - constructor() { - this.cards = []; - this.points = 0; - this.name = 'The Dealer'; - } -} - -class BlackjackDeck { - deck: Deck[]; - constructor() { - this.deck = [ - 'A♥', 'A♦', 'A♣', 'A♠', '2♥', '2♦', '2♣', '2♠', '3♥', '3♦', '3♣', - '3♠', '4♥', '4♦', '4♣', '4♠', '5♥', '5♦', '5♣', '5♠', '6♥', '6♦', '6♣', '6♠', - '7♥', '7♦', '7♣', '7♠', '8♥', '8♦', '8♣', '8♠', '9♥', '9♦', '9♣', '9♠', '10♥', - '10♦', '10♣', '10♠', 'J♥', 'J♦', 'J♣', 'J♠', 'Q♥', 'Q♦', 'Q♣', 'Q♠', 'K♥', 'K♦', - 'K♣', 'K♠', - ]; - } - shuffle() { - return Utils.shuffle(this.deck); - } -} - -export const commands: Chat.ChatCommands = { - blj: 'blackjack', - blackjack: { - new: 'create', - create(target, room, user) { - room = this.requireRoom(); - this.checkCan('minigame', null, room); - if (room.game) return this.errorReply("There is already a game running in this room."); - if (room.settings.blackjackDisabled) return this.errorReply("Blackjack is currently disabled in this room."); - const autostartMinutes = target ? parseFloat(target) : 0; - if (isNaN(autostartMinutes) || autostartMinutes <= 0 || (autostartMinutes * 60 * 1000) > Chat.MAX_TIMEOUT_DURATION) { - return this.errorReply("Usage: /blackjack create [autostart] - where autostart is an integer"); - } - - this.privateModAction(`A game of blackjack was created by ${user.name}.`); - this.modlog(`BLACKJACK CREATE`); - room.game = new Blackjack(room, user, autostartMinutes); - }, - start(target, room, user) { - room = this.requireRoom(); - this.checkCan('minigame', null, room); - const game = this.requireGame(Blackjack); - if (game.state !== 'signups') return this.errorReply("This game of blackjack has already started."); - - this.privateModAction(`The game of blackjack was started by ${user.name}.`); - this.modlog(`BLACKJACK START`); - game.start(user); - }, - forceend: 'end', - end(target, room, user, connection, cmd) { - room = this.requireRoom(); - this.checkCan('minigame', null, room); - const game = this.requireGame(Blackjack); - const force = cmd === 'forceend' ? 'forcibly ' : ''; - - const end = game.end(user, cmd); - if (end) { - this.privateModAction(`The game of blackjack was ${force}ended by ${user.name}.`); - this.modlog(`BLACKJACK END`); - } - }, - hit(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Blackjack); - game.hit(user); - }, - stand(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Blackjack); - game.stand(user); - }, - slide(target, room, user) { // undocumented (used in UI) - room = this.requireRoom(); - const game = this.requireGame(Blackjack); - game.slide(user); - }, - j: 'join', - join(target, room, user) { - return this.parse('/joingame'); - }, - l: 'leave', - leave(target, room, user) { - return this.parse('/leavegame'); - }, - unspectate: 'spectate', - spectate(target, room, user, connection, cmd) { - room = this.requireRoom(); - const game = this.requireGame(Blackjack); - if (cmd === 'spectate') { - game.spectate(user); - } else if (cmd === 'unspectate') { - game.unspectate(user); - } - }, - disable(target, room, user) { - room = this.requireRoom(); - this.checkCan('gamemanagement', null, room); - if (room.settings.blackjackDisabled) { - return this.errorReply("Blackjack is already disabled in this room."); - } - room.settings.blackjackDisabled = true; - room.saveSettings(); - this.sendReply(`Blackjack has been disabled for this room.`); - }, - enable(target, room, user) { - room = this.requireRoom(); - this.checkCan('gamemanagement', null, room); - if (!room.settings.blackjackDisabled) { - return this.errorReply("Blackjack is already enabled in this room."); - } - - delete room.settings.blackjackDisabled; - room.saveSettings(); - this.sendReply(`Blackjack has been enabled for this room.`); - }, - '': 'help', - help(target, room, user) { - return this.parse('/help blackjack'); - }, - }, - blackjackhelp: [ - "/blackjack create - Creates a game of blackjack. Requires: % @ # &", - "/blackjack create [autostart] - Automatically creates a game of blackjack in [autostart] minutes. Requires: % @ # &", - "/blackjack start - Starts a game of blackjack. Requires: % @ # &", - "/blackjack end - Ends a game of blackjack. Requires: % @ # &", - "/blackjack join - Joins a game of blackjack.", - "/blackjack leave - Leaves a game of blackjack.", - "/blackjack spectate - Spectates a game of blackjack.", - "/blackjack unspectate - Stops spectating a game of blackjack.", - "/blackjack disable - Prevents games of blackjack from being made in the room. Requires: # &", - "/blackjack enable - Allows games of blackjack to be made in the room. Requires: # &", - ], -}; -export const roomSettings: Chat.SettingsHandler = room => ({ - label: "Blackjack", - permission: 'editroom', - options: [ - [`disabled`, room.settings.blackjackDisabled || 'blackjack disable'], - [`enabled`, !room.settings.blackjackDisabled || 'blackjack enable'], - ], -}); diff --git a/server/chat-plugins/calculator.ts b/server/chat-plugins/calculator.ts index 727fc970c48b..0dff3198b78a 100644 --- a/server/chat-plugins/calculator.ts +++ b/server/chat-plugins/calculator.ts @@ -185,10 +185,15 @@ export const commands: Chat.ChatCommands = { if (baseResult === expression) baseResult = ''; } let resultStr = ''; + const resultTruncated = parseFloat(result.toPrecision(15)); + let resultDisplay = resultTruncated.toString(); + if (resultTruncated > 10 ** 15) { + resultDisplay = resultTruncated.toExponential(); + } if (baseResult) { - resultStr = `${baseResult} = ${result}`; + resultStr = `${baseResult} = ${resultDisplay}`; } else { - resultStr = `${result}`; + resultStr = `${resultDisplay}`; } this.sendReplyBox(`${expression}
= ${resultStr}`); } catch (e: any) { diff --git a/server/chat-plugins/cg-teams-leveling.ts b/server/chat-plugins/cg-teams-leveling.ts index 8071ae7fe37c..4abd55b6b282 100644 --- a/server/chat-plugins/cg-teams-leveling.ts +++ b/server/chat-plugins/cg-teams-leveling.ts @@ -35,30 +35,15 @@ async function updateStats(battle: RoomBattle, winner: ID) { if (!incrementWins || !incrementLosses) await dbSetupPromise; if (battle.rated < 1000 || toID(battle.format) !== 'gen9computergeneratedteams') return; - const p1 = Users.get(battle.p1.name); - const p2 = Users.get(battle.p2.name); - if (!p1 || !p2) return; - - const p1team = await battle.getTeam(p1); - const p2team = await battle.getTeam(p2); - if (!p1team || !p2team) return; - - let loserTeam, winnerTeam; - if (winner === p1.id) { - loserTeam = p2team; - winnerTeam = p1team; - } else { - loserTeam = p1team; - winnerTeam = p2team; - } - - for (const species of winnerTeam) { - await addPokemon?.run([toID(species.species), species.level]); - await incrementWins?.run([toID(species.species)]); - } - for (const species of loserTeam) { - await addPokemon?.run([toID(species.species), species.level]); - await incrementLosses?.run([toID(species.species)]); + for (const player of battle.players) { + const team = await battle.getPlayerTeam(player); + if (!team) return; + const increment = (player.id === winner ? incrementWins : incrementLosses); + + for (const species of team) { + await addPokemon?.run([toID(species.species), species.level]); + await increment?.run([toID(species.species)]); + } } } diff --git a/server/chat-plugins/chat-monitor.ts b/server/chat-plugins/chat-monitor.ts index 8fadf220a17a..f74c20783487 100644 --- a/server/chat-plugins/chat-monitor.ts +++ b/server/chat-plugins/chat-monitor.ts @@ -13,8 +13,8 @@ const EVASION_DETECTION_SUBSTITUTIONS: {[k: string]: string[]} = { c: ["c", "ç", "ᑕ", "C", "ⓒ", "Ⓒ", "¢", "͏", "₵", "ċ", "Ċ", "ፈ", "ς", "ḉ", "Ḉ", "Ꮯ", "ƈ", "̾", "c", "C", "ᴄ", "ɔ", "🅒", "𝐜", "𝐂", "𝘤", "𝘊", "𝙘", "𝘾", "𝒸", "𝓬", "𝓒", "𝕔", "ℂ", "𝔠", "ℭ", "𝖈", "𝕮", "🄲", "🅲", "𝒞", "𝚌", "𝙲", "☾", "с"], d: ["d", "ᗪ", "D", "ⓓ", "Ⓓ", "∂", "Đ", "ď", "Ď", "Ꮄ", "Ḋ", "Ꭰ", "ɖ", "d", "D", "ᴅ", "🅓", "𝐝", "𝐃", "𝘥", "𝘋", "𝙙", "𝘿", "𝒹", "𝓭", "𝓓", "𝕕", "​", "𝔡", "𝖉", "𝕯", "🄳", "🅳", "𝒟", "ԃ", "𝚍", "𝙳", "◗", "ⅾ"], e: ["e", "3", "é", "ê", "E", "ⓔ", "Ⓔ", "є", "͏", "Ɇ", "ệ", "Ệ", "Ꮛ", "ε", "Σ", "ḕ", "Ḕ", "Ꭼ", "ɛ", "̾", "e", "E", "ᴇ", "ǝ", "🅔", "𝐞", "𝐄", "𝘦", "𝘌", "𝙚", "𝙀", "ℯ", "𝓮", "𝓔", "𝕖", "𝔻", "𝔢", "𝔇", "𝖊", "𝕰", "🄴", "🅴", "𝑒", "𝐸", "ҽ", "𝚎", "𝙴", "€", "е", "ё", "𝓮"], - f: ["f", "ᖴ", "F", "ⓕ", "Ⓕ", "₣", "ḟ", "Ḟ", "Ꭶ", "ғ", "ʄ", "f", "F", "ɟ", "🅕", "𝐟", "𝐅", "𝘧", "𝘍", "𝙛", "𝙁", "𝒻", "𝓯", "𝓕", "𝕗", "𝔼", "𝔣", "𝔈", "𝖋", "𝕱", "🄵", "🅵", "𝐹", "ϝ", "𝚏", "𝙵", "Ϝ", "f"], - g: ["g", "q", "6", "9", "G", "ⓖ", "Ⓖ", "͏", "₲", "ġ", "Ġ", "Ꮆ", "ϑ", "Ḡ", "ɢ", "̾", "g", "G", "ƃ", "🅖", "𝐠", "𝐆", "𝘨", "𝘎", "𝙜", "𝙂", "ℊ", "𝓰", "𝓖", "𝕘", "𝔽", "𝔤", "𝔉", "𝖌", "𝕲", "🄶", "🅶", "𝑔", "𝒢", "ɠ", "𝚐", "𝙶", "❡", "ց", "𝙶", "𝓰"], + f: ["f", "ᖴ", "F", "ⓕ", "Ⓕ", "₣", "ḟ", "Ḟ", "Ꭶ", "ғ", "ʄ", "f", "F", "ɟ", "🅕", "𝐟", "𝐅", "𝘧", "𝘍", "𝙛", "𝙁", "𝒻", "𝓯", "𝓕", "𝕗", "𝔼", "𝔣", "𝔈", "𝖋", "𝕱", "🄵", "🅵", "𝐹", "ϝ", "𝚏", "𝙵", "Ϝ", "f", "Ƒ"], + g: ["g", "q", "6", "9", "G", "ⓖ", "Ⓖ", "͏", "₲", "ġ", "Ġ", "Ꮆ", "ϑ", "Ḡ", "ɢ", "̾", "g", "G", "ƃ", "🅖", "𝐠", "𝐆", "𝘨", "𝘎", "𝙜", "𝙂", "ℊ", "𝓰", "𝓖", "𝕘", "𝔽", "𝔤", "𝔉", "𝖌", "𝕲", "🄶", "🅶", "𝑔", "𝒢", "ɠ", "𝚐", "𝙶", "❡", "ց", "𝙶", "𝓰", "Ԍ"], h: [ "h", "ᕼ", "H", "ⓗ", "Ⓗ", "н", "Ⱨ", "ḧ", "Ḧ", "Ꮒ", "ɦ", "h", "H", "ʜ", "ɥ", "🅗", "𝐡", "𝐇", "𝘩", "𝘏", "𝙝", "𝙃", "𝒽", "𝓱", "𝓗", "𝕙", "𝔾", "𝔥", "𝔊", "𝖍", "𝕳", "🄷", "🅷", "𝐻", "ԋ", "𝚑", "𝙷", "♄", "h", ], @@ -25,7 +25,7 @@ const EVASION_DETECTION_SUBSTITUTIONS: {[k: string]: string[]} = { m: [ "m", "ᗰ", "M", "ⓜ", "Ⓜ", "м", "͏", "₥", "ṃ", "Ṃ", "Ꮇ", "ϻ", "Μ", "ṁ", "Ṁ", "ʍ", "̾", "m", "M", "ᴍ", "ɯ", "🅜", "𝐦", "𝐌", "𝘮", "𝘔", "𝙢", "𝙈", "𝓂", "𝓶", "𝓜", "𝕞", "𝕂", "𝔪", "𝔍", "𝖒", "𝕸", "🄼", "🅼", "𝑀", "ɱ", "𝚖", "𝙼", "♔", "ⅿ", ], - n: ["n", "ñ", "ᑎ", "N", "ⓝ", "Ⓝ", "и", "₦", "ń", "Ń", "Ꮑ", "π", "∏", "Ṇ", "ռ", "n", "N", "ɴ", "🅝", "𝐧", "𝐍", "𝘯", "𝘕", "𝙣", "𝙉", "𝓃", "𝓷", "𝓝", "𝕟", "𝕃", "𝔫", "𝔎", "𝖓", "𝕹", "🄽", "🅽", "𝒩", "ɳ", "𝚗", "𝙽", "♫", "ո", "η", "𝙽", "ƞ", "𝓷"], + n: ["n", "ñ", "ᑎ", "N", "ⓝ", "Ⓝ", "и", "₦", "ń", "Ń", "Ꮑ", "π", "∏", "Ṇ", "ռ", "n", "N", "ɴ", "🅝", "𝐧", "𝐍", "𝘯", "𝘕", "𝙣", "𝙉", "𝓃", "𝓷", "𝓝", "𝕟", "𝕃", "𝔫", "𝔎", "𝖓", "𝕹", "🄽", "🅽", "𝒩", "ɳ", "𝚗", "𝙽", "♫", "ո", "η", "𝙽", "ƞ", "𝓷", "Ν"], o: ["o", "0", "ó", "ô", "õ", "ú", "O", "ⓞ", "Ⓞ", "σ", "͏", "Ø", "ö", "Ö", "Ꭷ", "Θ", "ṏ", "Ṏ", "Ꮎ", "օ", "̾", "o", "O", "ᴏ", "🅞", "𝐨", "𝐎", "𝘰", "𝘖", "𝙤", "𝙊", "ℴ", "𝓸", "𝓞", "𝕠", "𝕄", "𝔬", "𝔏", "𝖔", "𝕺", "🄾", "🅾", "𝑜", "𝒪", "𝚘", "𝙾", "⊙", "ο"], p: ["p", "ᑭ", "P", "ⓟ", "Ⓟ", "ρ", "₱", "ṗ", "Ṗ", "Ꭾ", "Ƥ", "Ꮲ", "ք", "p", "P", "ᴘ", "🅟", "𝐩", "𝐏", "𝘱", "𝘗", "𝙥", "𝙋", "𝓅", "𝓹", "𝓟", "𝕡", "ℕ", "𝔭", "𝔐", "𝖕", "𝕻", "🄿", "🅿", "𝒫", "𝚙", "𝙿", "р"], q: [ @@ -47,6 +47,7 @@ const EVASION_DETECTION_SUBSTITUTIONS: {[k: string]: string[]} = { const filterWords: {[k: string]: Chat.FilterWord[]} = Chat.filterWords; export const Filters = new class { + readonly EVASION_DETECTION_SUBSTITUTIONS = EVASION_DETECTION_SUBSTITUTIONS; readonly EVASION_DETECTION_SUB_STRINGS: {[k: string]: string} = {}; constructor() { for (const letter in EVASION_DETECTION_SUBSTITUTIONS) { @@ -427,7 +428,7 @@ export const namefilter: Chat.NameFilter = (name, user) => { if (Punishments.namefilterwhitelist.has(id)) return name; if (Monitor.forceRenames.has(id)) { if (typeof Monitor.forceRenames.get(id) === 'number') { - // we check this for hotpatching reasons, since on the initial chat patch this will still be a Utils.MultiSet + // we check this for hotpatching reasons, since on the initial chat patch this will still be a Utils.Multiset // we're gonna assume no one has seen it since that covers people who _haven't_ actually, and those who have // likely will not be attempting to log into it Monitor.forceRenames.set(id, false); @@ -501,7 +502,7 @@ export const nicknamefilter: Chat.NicknameFilter = (name, user) => { lcName = lcName.replace('herapist', '').replace('grape', '').replace('scrape', ''); for (const list in filterWords) { - if (!Chat.monitors[list]) continue; + if (!Chat.monitors[list]) continue; if (Chat.monitors[list].location === 'BATTLES') continue; for (const line of filterWords[list]) { let {regex, word} = line; @@ -715,9 +716,13 @@ export const commands: Chat.ChatCommands = { const buf = []; for (const monitorName in Chat.monitors) { const monitor = Chat.monitors[monitorName]; - if (!monitor.monitor) continue; for (const line of Chat.filterWords[monitorName]) { - const ret = monitor.monitor.call(this, line, room, user, target, lcMessage, true); + let ret; + if (monitor.monitor) { + ret = monitor.monitor.call(this, line, room, user, target, lcMessage, true); + } else { + ret = line.regex.exec(target)?.[0]; + } if (typeof ret === 'string') { buf.push(`${monitorName}: ${ret}`); break; @@ -735,28 +740,16 @@ export const commands: Chat.ChatCommands = { ); } }, - testhelp(target, room, user) { - this.checkCan('lock'); - if (room && ['staff', 'upperstaff'].includes(room.roomid)) this.runBroadcast(true); - const monitorNames = [...Object.keys(Chat.monitors).filter(x => Chat.monitors[x].monitor)]; - monitorNames.push( - ...Object.keys(Chat.monitors) - .filter(x => Chat.monitors[x].monitor && x.includes('filter')) - .map(x => x.replace('filter', '')) - ); - this.sendReplyBox( - `/filter test [monitor name] [test string]:
` + - `Tests whether or not the provided test string would trigger the respective monitor.
` + - `All usable commands: ${monitorNames.sort().map(x => `/filter test ${x}`).join(', ')}
` + - `Can only be broadcast in Staff and Upper Staff. Requires: % @ &` - ); - }, + testhelp: [ + `/filter test [test string] - Tests whether or not the provided test string would trigger any of the chat monitors.`, + `Requires: % @ ~`, + ], }, filterhelp: [ - `/filter add list, word, reason[, optional public reason] - Adds a word to the given filter list. Requires: &`, - `/filter remove list, words - Removes words from the given filter list. Requires: &`, - `/filter view - Opens the list of filtered words. Requires: % @ &`, - `/filter test - Do "/help filter test" for more information. Requires: % @ &`, + `/filter add list, word, reason[, optional public reason] - Adds a word to the given filter list. Requires: ~`, + `/filter remove list, words - Removes words from the given filter list. Requires: ~`, + `/filter view - Opens the list of filtered words. Requires: % @ ~`, + `/filter test [test string] - Tests whether or not the provided test string would trigger any of the chat monitors. Requires: % @ ~`, `You may use / instead of , in /filter add if you want to specify a reason that includes commas.`, ], allowname(target, room, user) { diff --git a/server/chat-plugins/chatlog.ts b/server/chat-plugins/chatlog.ts index 707f4272ab34..f1a59930318c 100644 --- a/server/chat-plugins/chatlog.ts +++ b/server/chat-plugins/chatlog.ts @@ -5,19 +5,14 @@ * @license MIT */ -import {Utils, FS, Dashycode, ProcessManager, Repl, Net} from '../../lib'; -import {Config} from '../config-loader'; -import {Dex} from '../../sim/dex'; -import {Chat} from '../chat'; +import {Utils, FS, Dashycode, ProcessManager, Net, Streams} from '../../lib'; +import {SQL} from '../../lib/database'; +import {roomlogTable} from '../roomlogs'; const DAY = 24 * 60 * 60 * 1000; -const MAX_RESULTS = 3000; const MAX_MEMORY = 67108864; // 64MB -const MAX_PROCESSES = 1; const MAX_TOPUSERS = 100; -const CHATLOG_PM_TIMEOUT = 1 * 60 * 60 * 1000; // 1 hour - const UPPER_STAFF_ROOMS = ['upperstaff', 'adminlog', 'slowlog']; interface ChatlogSearch { @@ -63,8 +58,12 @@ export class LogReaderRoom { } async listMonths() { + if (roomlogTable) { + const dates = await roomlogTable.query()`SELECT DISTINCT month FROM roomlog_dates WHERE roomid = ${this.roomid}`; + return dates.map(x => x.month); + } try { - const listing = await FS(`logs/chat/${this.roomid}`).readdir(); + const listing = await Monitor.logPath(`chat/${this.roomid}`).readdir(); return listing.filter(file => /^[0-9][0-9][0-9][0-9]-[0-9][0-9]$/.test(file)); } catch { return []; @@ -72,8 +71,14 @@ export class LogReaderRoom { } async listDays(month: string) { + if (roomlogTable) { + const dates = await ( + roomlogTable.query()`SELECT DISTINCT date FROM roomlog_dates WHERE roomid = ${this.roomid} AND month = ${month}` + ); + return dates.map(x => x.date); + } try { - const listing = await FS(`logs/chat/${this.roomid}/${month}`).readdir(); + const listing = await Monitor.logPath(`chat/${this.roomid}/${month}`).readdir(); return listing.filter(file => file.endsWith(".txt")).map(file => file.slice(0, -4)); } catch { return []; @@ -81,21 +86,43 @@ export class LogReaderRoom { } async getLog(day: string) { + if (roomlogTable) { + const [dayStart, dayEnd] = LogReader.dayToRange(day); + const logs = await roomlogTable.selectAll( + ['log', 'time'] + )`WHERE roomid = ${this.roomid} AND time BETWEEN ${dayStart}::int::timestamp AND ${dayEnd}::int::timestamp`; + return new Streams.ObjectReadStream({ + read(this: Streams.ObjectReadStream) { + for (const {log, time} of logs) { + this.buf.push(`${Chat.toTimestamp(time).split(' ')[1]} ${log}`); + } + this.pushEnd(); + }, + }); + } const month = LogReader.getMonth(day); - const log = FS(`logs/chat/${this.roomid}/${month}/${day}.txt`); + const log = Monitor.logPath(`chat/${this.roomid}/${month}/${day}.txt`); if (!await log.exists()) return null; - return log.createReadStream(); + return log.createReadStream().byLine(); } } export const LogReader = new class { async get(roomid: RoomID) { - if (!await FS(`logs/chat/${roomid}`).exists()) return null; + if (roomlogTable) { + if (!(await roomlogTable.selectOne()`WHERE roomid = ${roomid}`)) return null; + } else { + if (!await Monitor.logPath(`chat/${roomid}`).exists()) return null; + } return new LogReaderRoom(roomid); } async list() { - const listing = await FS(`logs/chat`).readdir(); + if (roomlogTable) { + const roomids = await roomlogTable.query()`SELECT DISTINCT roomid FROM roomlogs`; + return roomids.map(x => x.roomid) as RoomID[]; + } + const listing = await Monitor.logPath(`chat`).readdir(); return listing.filter(file => /^[a-z0-9-]+$/.test(file)) as RoomID[]; } @@ -151,25 +178,23 @@ export const LogReader = new class { return {official, normal, hidden, secret, deleted, personal, deletedPersonal}; } - async read(roomid: RoomID, day: string, limit: number) { - const roomLog = await LogReader.get(roomid); - const stream = await roomLog!.getLog(day); - let buf = ''; - let i = (LogSearcher as FSLogSearcher).results || 0; - if (!stream) { - buf += `

Room "${roomid}" doesn't have logs for ${day}

`; - } else { - for await (const line of stream.byLine()) { - const rendered = LogViewer.renderLine(line); - if (rendered) { - buf += `${line}\n`; - i++; - if (i > limit) break; - } - } - } - return buf; + /** @returns [dayStart, dayEnd] as seconds (NOT milliseconds) since Unix epoch */ + dayToRange(day: string): [number, number] { + const nextDay = LogReader.nextDay(day); + return [ + Math.trunc(new Date(day).getTime() / 1000), + Math.trunc(new Date(nextDay).getTime() / 1000), + ]; } + /** @returns [monthStart, monthEnd] as seconds (NOT milliseconds) since Unix epoch */ + monthToRange(month: string): [number, number] { + const nextMonth = LogReader.nextMonth(month); + return [ + Math.trunc(new Date(`${month}-01`).getTime() / 1000), + Math.trunc(new Date(`${nextMonth}-01`).getTime() / 1000), + ]; + } + getMonth(day?: string) { if (!day) day = Chat.toTimestamp(new Date()).split(' ')[0]; return day.slice(0, 7); @@ -204,119 +229,6 @@ export const LogReader = new class { // won't crash on the input text. return /^[0-9]{4}-(?:0[0-9]|1[0-2])-(?:[0-2][0-9]|3[0-1])$/.test(text); } - async findBattleLog(tier: ID, number: number): Promise { - // binary search! - const months = (await FS('logs').readdir()).filter(this.isMonth).sort(); - if (!months.length) return null; - - // find first day - let firstDay!: string; - while (months.length) { - const month = months[0]; - try { - const days = (await FS(`logs/${month}/${tier}/`).readdir()).filter(this.isDay).sort(); - firstDay = days[0]; - break; - } catch {} - months.shift(); - } - if (!firstDay) return null; - - // find last day - let lastDay!: string; - while (months.length) { - const month = months[months.length - 1]; - try { - const days = (await FS(`logs/${month}/${tier}/`).readdir()).filter(this.isDay).sort(); - lastDay = days[days.length - 1]; - break; - } catch {} - months.pop(); - } - if (!lastDay) throw new Error(`getBattleLog month range search for ${tier}`); - - const getBattleNum = (battleName: string) => Number(battleName.split('-')[1].slice(0, -9)); - - const getDayRange = async (day: string) => { - const month = day.slice(0, 7); - - try { - const battles = (await FS(`logs/${month}/${tier}/${day}`).readdir()).filter( - b => b.endsWith('.log.json') - ); - Utils.sortBy(battles, getBattleNum); - - return [getBattleNum(battles[0]), getBattleNum(battles[battles.length - 1])]; - } catch { - return null; - } - }; - - const dayExists = (day: string) => FS(`logs/${day.slice(0, 7)}/${tier}/${day}`).exists(); - - const nextExistingDay = async (day: string) => { - for (let i = 0; i < 3650; i++) { - day = this.nextDay(day); - if (await dayExists(day)) return day; - if (day === lastDay) return null; - } - return null; - }; - - const prevExistingDay = async (day: string) => { - for (let i = 0; i < 3650; i++) { - day = this.prevDay(day); - if (await dayExists(day)) return day; - if (day === firstDay) return null; - } - return null; - }; - - for (let i = 0; i < 100; i++) { - const middleDay = new Date( - (new Date(firstDay).getTime() + new Date(lastDay).getTime()) / 2 - ).toISOString().slice(0, 10); - - let currentDay: string | null = middleDay; - let dayRange = await getDayRange(middleDay); - - if (!dayRange) { - currentDay = await nextExistingDay(middleDay); - if (!currentDay) { - const lastExistingDay = await prevExistingDay(middleDay); - if (!lastExistingDay) throw new Error(`couldn't find existing day`); - lastDay = lastExistingDay; - continue; - } - dayRange = await getDayRange(currentDay); - if (!dayRange) throw new Error(`existing day was a lie`); - } - - const [lowest, highest] = dayRange; - - if (number < lowest) { - // before currentDay - if (firstDay === currentDay) return null; - lastDay = this.prevDay(currentDay); - } else if (number > highest) { - // after currentDay - if (lastDay === currentDay) return null; - firstDay = this.nextDay(currentDay); - } else { - // during currentDay - const month = currentDay.slice(0, 7); - const path = FS(`logs/${month}/${tier}/${currentDay}/${tier}-${number}.log.json`); - if (await path.exists()) { - return JSON.parse(path.readSync()).log; - } - return null; - } - } - - // 100 iterations is enough to search 2**100 days, which is around 1e30 days - // for comparison, a millennium is 365000 days - throw new Error(`Infinite loop looking for ${tier}-${number}`); - } }; export const LogViewer = new class { @@ -343,8 +255,11 @@ export const LogViewer = new class { if (!stream) { buf += `

Room "${roomid}" doesn't have logs for ${day}

`; } else { - for await (const line of stream.byLine()) { - buf += this.renderLine(line, opts, {roomid, date: day}); + for await (const line of stream) { + // sometimes there can be newlines in there. parse accordingly + for (const part of line.split('\n')) { + buf += this.renderLine(part, opts, {roomid, date: day}); + } } } buf += `
`; @@ -358,24 +273,6 @@ export const LogViewer = new class { return this.linkify(buf); } - async battle(tier: string, number: number, context: Chat.PageContext) { - if (number > Rooms.global.lastBattle) { - throw new Chat.ErrorMessage(`That battle cannot exist, as the number has not been used.`); - } - const roomid = `battle-${tier}-${number}` as RoomID; - context.setHTML(`

Locating battle logs for the battle ${tier}-${number}...

`); - const log = await PM.query({ - queryType: 'battlesearch', roomid: toID(tier), search: number, - }); - if (!log) return context.setHTML(this.error("Logs not found.")); - const {connection} = context; - context.close(); - connection.sendTo( - roomid, `|init|battle\n|title|[Battle Log] ${tier}-${number}\n${log.join('\n')}` - ); - connection.sendTo(roomid, `|expire|This is a battle log.`); - } - parseChatLine(line: string, day: string) { const [timestamp, type, ...rest] = line.split('|'); if (type === 'c:') { @@ -567,9 +464,6 @@ export const LogViewer = new class { } }; -/** Match with two lines of context in either direction */ -type SearchMatch = readonly [string, string, string, string, string]; - export abstract class Searcher { static checkEnabled() { if (global.Config.disableripgrep) { @@ -581,19 +475,7 @@ export abstract class Searcher { const id = toID(user); return `.${[...id].join('[^a-zA-Z0-9]*')}[^a-zA-Z0-9]*`; } - constructSearchRegex(str: string) { - // modified regex replace - str = str.replace(/[\\^$.*?()[\]{}|]/g, '\\$&'); - const searches = str.split('+'); - if (searches.length <= 1) { - if (str.length <= 3) return `\b${str}`; - return str; - } - return `^` + searches.filter(Boolean).map(term => `(?=.*${term})`).join(''); - } - abstract searchLogs(roomid: RoomID, search: string, limit?: number | null, date?: string | null): Promise; abstract searchLinecounts(roomid: RoomID, month: string, user?: ID): Promise; - abstract getSharedBattles(userids: string[]): Promise; renderLinecountResults( results: {[date: string]: {[userid: string]: number}} | null, roomid: RoomID, month: string, user?: ID @@ -601,13 +483,13 @@ export abstract class Searcher { let buf = Utils.html`

Linecounts on `; buf += `${roomid}${user ? ` for the user ${user}` : ` (top ${MAX_TOPUSERS})`}

`; buf += `Total lines: {total}
`; - buf += `Month: ${month}:
`; + buf += `Month: ${month}
`; const nextMonth = LogReader.nextMonth(month); const prevMonth = LogReader.prevMonth(month); - if (FS(`logs/chat/${roomid}/${prevMonth}`).existsSync()) { + if (Monitor.logPath(`chat/${roomid}/${prevMonth}`).existsSync()) { buf += `Previous month`; } - if (FS(`logs/chat/${roomid}/${nextMonth}`).existsSync()) { + if (Monitor.logPath(`chat/${roomid}/${nextMonth}`).existsSync()) { buf += ` Next month`; } if (!results) { @@ -615,25 +497,22 @@ export abstract class Searcher { buf += LogViewer.error(`Logs for month '${month}' do not exist on room ${roomid}.`); return buf; } else if (user) { + buf += '
    '; + const sortedDays = Utils.sortBy(Object.keys(results)); let total = 0; - for (const day in results) { - if (isNaN(results[day][user])) continue; - total += results[day][user]; - } - buf += `
    Total linecount: ${total}
    `; - buf += '
      '; - const sortedDays = Utils.sortBy(Object.keys(results), day => ({reverse: day})); for (const day of sortedDays) { const dayResults = results[day][user]; if (isNaN(dayResults)) continue; + total += dayResults; buf += `
    1. [${day}]: `; buf += `${Chat.count(dayResults, 'lines')}
    2. `; } + buf = buf.replace('{total}', `${total}`); } else { buf += '
        '; // squish the results together const totalResults: {[k: string]: number} = {}; - for (const date in results) { + for (const date of Utils.sortBy(Object.keys(results))) { for (const userid in results[date]) { if (!totalResults[userid]) totalResults[userid] = 0; totalResults[userid] += results[date][userid]; @@ -654,71 +533,39 @@ export abstract class Searcher { buf += `
`; return LogViewer.linkify(buf); } - async runSearch( - context: Chat.PageContext, search: string, roomid: RoomID, date: string | null, limit: number | null - ) { - context.title = `[Search] [${roomid}] ${search}`; - if (!['ripgrep', 'fs'].includes(Config.chatlogreader)) { - throw new Error(`Config.chatlogreader must be 'fs' or 'ripgrep'.`); - } - context.setHTML( - `

Running a chatlog search for "${search}" on room ${roomid}` + - (date ? date !== 'all' ? `, on the date "${date}"` : ', on all dates' : '') + - `.

` - ); - const response = await PM.query({search, roomid, date, limit, queryType: 'search'}); - return context.setHTML(response); - } async runLinecountSearch(context: Chat.PageContext, roomid: RoomID, month: string, user?: ID) { context.setHTML( `

Searching linecounts on room ${roomid}${user ? ` for the user ${user}` : ''}.

` ); - const results = await PM.query({roomid, date: month, search: user, queryType: 'linecount'}); - context.setHTML(results); + context.setHTML(await LogSearcher.searchLinecounts(roomid, month, user)); } - async sharedBattles(userids: string[]) { - let buf = `Logged shared battles between the users ${userids.join(', ')}`; - const results: string[] = await PM.query({ - queryType: 'sharedsearch', search: userids, - }); - if (!results.length) { - buf += `:
None found.`; - return buf; - } - buf += ` (${results.length}):
`; - buf += results.map(id => `${id}`).join(', '); - return buf; + runSearch() { + throw new Chat.ErrorMessage(`This functionality is currently disabled.`); } // this would normally be abstract, but it's very difficult with ripgrep // so it's easier to just do it the same way for both. async roomStats(room: RoomID, month: string) { - if (!FS(`logs/chat/${room}`).existsSync()) { + if (!Monitor.logPath(`chat/${room}`).existsSync()) { return LogViewer.error(Utils.html`Room ${room} not found.`); } - if (!FS(`logs/chat/${room}/${month}`).existsSync()) { + if (!Monitor.logPath(`chat/${room}/${month}`).existsSync()) { return LogViewer.error(Utils.html`Room ${room} does not have logs for the month ${month}.`); } - const stats = await PM.query({ - queryType: 'roomstats', search: month, roomid: room, - }); + const stats = await LogSearcher.activityStats(room, month); let buf = `

Room stats for ${room} [${month}]


`; buf += `Total days with logs: ${stats.average.days}
`; - const next = LogReader.nextMonth(month); - const prev = LogReader.prevMonth(month); - const prevExists = FS(`logs/chat/${room}/${prev}`).existsSync(); - const nextExists = FS(`logs/chat/${room}/${next}`).existsSync(); - if (prevExists) { + /* if (prevExists) { TODO restore buf += `
Previous month`; buf += nextExists ? ` | ` : `
`; } if (nextExists) { buf += `${prevExists ? `` : `
`}Next month
`; - } + }*/ buf += this.visualizeStats(stats.average); buf += `
`; buf += `
Stats by day`; for (const day of stats.days) { - buf += `
${day.day}
`; + buf += `
${(day as any).day}
`; buf += this.visualizeStats(day); buf += `
`; } @@ -752,48 +599,41 @@ export abstract class Searcher { buf += `
`; return buf; } - async activityStats(room: RoomID, month: string) { - const days = (await FS(`logs/chat/${room}/${month}`).readdir()).map(f => f.slice(0, -4)); - const stats: RoomStats[] = []; - for (const day of days) { - const curStats = await this.dayStats(room, day); - if (!curStats) continue; - stats.push(curStats); - } - // now, having collected the stats for each day, we need to merge them together - const collected: RoomStats = { - deadTime: 0, - deadPercent: 0, - lines: {}, - users: {}, - days: days.length, - linesPerUser: 0, - totalLines: 0, - averagePresent: 0, - }; + abstract activityStats(room: RoomID, month: string): Promise<{average: RoomStats, days: RoomStats[]}>; +} - // merge - for (const entry of stats) { - for (const k of ['deadTime', 'deadPercent', 'linesPerUser', 'totalLines', 'averagePresent'] as const) { - collected[k] += entry[k]; - } - for (const type of ['lines'] as const) { - for (const k in entry[type]) { - if (!collected[type][k]) collected[type][k] = 0; - collected[type][k] += entry[type][k]; +export class FSLogSearcher extends Searcher { + results: number; + constructor() { + super(); + this.results = 0; + } + async searchLinecounts(roomid: RoomID, month: string, user?: ID) { + const directory = Monitor.logPath(`chat/${roomid}/${month}`); + if (!directory.existsSync()) { + return this.renderLinecountResults(null, roomid, month, user); + } + const files = await directory.readdir(); + const results: {[date: string]: {[userid: string]: number}} = {}; + for (const file of files) { + const day = file.slice(0, -4); + const stream = Monitor.logPath(`chat/${roomid}/${month}/${file}`).createReadStream(); + for await (const line of stream.byLine()) { + const parts = line.split('|').map(toID); + const id = parts[2]; + if (!id) continue; + if (parts[1] === 'c') { + if (user && id !== user) continue; + if (!results[day]) results[day] = {}; + if (!results[day][id]) results[day][id] = 0; + results[day][id]++; } } } - - // average - for (const k of ['deadTime', 'deadPercent', 'linesPerUser', 'totalLines', 'averagePresent'] as const) { - collected[k] /= stats.length; - } - - return {average: collected, days: stats}; + return this.renderLinecountResults(results, roomid, month, user); } async dayStats(room: RoomID, day: string) { - const cached = this.roomstatsCache.get(day); + const cached = this.roomstatsCache.get(room + '-' + day); if (cached) return cached; const results: RoomStats & {day: string} = { deadTime: 0, @@ -806,7 +646,7 @@ export abstract class Searcher { averagePresent: 0, day, }; - const path = FS(`logs/chat/${room}/${LogReader.getMonth(day)}/${day}.txt`); + const path = Monitor.logPath(`chat/${room}/${LogReader.getMonth(day)}/${day}.txt`); if (!path.existsSync()) return false; const stream = path.createReadStream(); let lastTime = new Date(day).getTime(); // start at beginning of day to be sure @@ -854,7 +694,7 @@ export abstract class Searcher { // we don't cache the current day's stats because that could be inaccurate, whereas old days will always be the same if (day !== LogReader.today()) { - this.roomstatsCache.set(day, results); + this.roomstatsCache.set(room + '-' + day, results); } return results; } @@ -865,244 +705,65 @@ export abstract class Searcher { } return num / waitIncrements.length; } -} - -export class FSLogSearcher extends Searcher { - results: number; - constructor() { - super(); - this.results = 0; - } - async searchLinecounts(roomid: RoomID, month: string, user?: ID) { - const directory = FS(`logs/chat/${roomid}/${month}`); - if (!directory.existsSync()) { - return this.renderLinecountResults(null, roomid, month, user); - } - const files = await directory.readdir(); - const results: {[date: string]: {[userid: string]: number}} = {}; - for (const file of files) { - const day = file.slice(0, -4); - const stream = FS(`logs/chat/${roomid}/${month}/${file}`).createReadStream(); - for await (const line of stream.byLine()) { - const parts = line.split('|').map(toID); - const id = parts[2]; - if (!id) continue; - if (parts[1] === 'c') { - if (user && id !== user) continue; - if (!results[day]) results[day] = {}; - if (!results[day][id]) results[day][id] = 0; - results[day][id]++; - } - } - } - return this.renderLinecountResults(results, roomid, month, user); - } - searchLogs(roomid: RoomID, search: string, limit?: number | null, date?: string | null) { - if (!date) date = Chat.toTimestamp(new Date()).split(' ')[0].slice(0, -3); - const isAll = (date === 'all'); - const isYear = (date.length === 4); - const isMonth = (date.length === 7); - if (!limit || limit > MAX_RESULTS) limit = MAX_RESULTS; - if (isAll) { - return this.runYearSearch(roomid, null, search, limit); - } else if (isYear) { - date = date.substr(0, 4); - return this.runYearSearch(roomid, date, search, limit); - } else if (isMonth) { - date = date.substr(0, 7); - return this.runMonthSearch(roomid, date, search, limit); - } else { - return Promise.resolve(LogViewer.error("Invalid date.")); - } - } - - async fsSearchDay(roomid: RoomID, day: string, search: string, limit?: number | null) { - if (!limit || limit > MAX_RESULTS) limit = MAX_RESULTS; - const text = await LogReader.read(roomid, day, limit); - if (!text) return []; - const lines = text.split('\n'); - const matches: SearchMatch[] = []; - - const searchTerms = search.split('+').filter(Boolean); - const searchTermRegexes: RegExp[] = []; - for (const searchTerm of searchTerms) { - if (searchTerm.startsWith('user-')) { - const id = toID(searchTerm.slice(5)); - searchTermRegexes.push(new RegExp(`\\|c\\|${this.constructUserRegex(id)}\\|`, 'i')); + async activityStats(room: RoomID, month: string) { + const days = (await Monitor.logPath(`chat/${room}/${month}`).readdir()).map(f => f.slice(0, -4)); + const stats: RoomStats[] = []; + const today = Chat.toTimestamp(new Date()).split(' ')[0]; + for (const day of days) { + if (day === today) { // if the day is not over: do not count it, it'll skew the numbers continue; } - searchTermRegexes.push(new RegExp(searchTerm, 'i')); - } - function matchLine(line: string) { - return searchTermRegexes.every(term => term.test(line)); - } - - for (const [i, line] of lines.entries()) { - if (matchLine(line)) { - matches.push([ - lines[i - 2], - lines[i - 1], - line, - lines[i + 1], - lines[i + 2], - ]); - if (matches.length > limit) break; - } + const curStats = await this.dayStats(room, day); + if (!curStats) continue; + stats.push(curStats); } - return matches; - } - - renderDayResults(results: {[day: string]: SearchMatch[]}, roomid: RoomID) { - const renderResult = (match: SearchMatch) => { - this.results++; - return ( - LogViewer.renderLine(match[0]) + - LogViewer.renderLine(match[1]) + - `
${LogViewer.renderLine(match[2])}
` + - LogViewer.renderLine(match[3]) + - LogViewer.renderLine(match[4]) - ); + // now, having collected the stats for each day, we need to merge them together + const collected: RoomStats = { + deadTime: 0, + deadPercent: 0, + lines: {}, + users: {}, + days: days.length, + linesPerUser: 0, + totalLines: 0, + averagePresent: 0, }; - let buf = ``; - for (const day in results) { - const dayResults = results[day]; - const plural = dayResults.length !== 1 ? "es" : ""; - buf += `
${dayResults.length} match${plural} on `; - buf += `${day}

`; - buf += `

${dayResults.filter(Boolean).map(result => renderResult(result)).join(`


`)}

`; - buf += `

`; - } - return buf; - } - - async fsSearchMonth(opts: ChatlogSearch) { - let {limit, room: roomid, date: month, search} = opts; - if (!limit || limit > MAX_RESULTS) limit = MAX_RESULTS; - const log = await LogReader.get(roomid); - if (!log) return {results: {}, total: 0}; - const days = await log.listDays(month); - const results: {[k: string]: SearchMatch[]} = {}; - let total = 0; - - for (const day of days) { - const dayResults = await this.fsSearchDay(roomid, day, search, limit ? limit - total : null); - if (!dayResults.length) continue; - total += dayResults.length; - results[day] = dayResults; - if (total > limit) break; - } - return {results, total}; - } - - /** pass a null `year` to search all-time */ - async fsSearchYear(roomid: RoomID, year: string | null, search: string, limit?: number | null) { - if (!limit || limit > MAX_RESULTS) limit = MAX_RESULTS; - const log = await LogReader.get(roomid); - if (!log) return {results: {}, total: 0}; - let months = await log.listMonths(); - months = months.reverse(); - const results: {[k: string]: SearchMatch[]} = {}; - let total = 0; - - for (const month of months) { - if (year && !month.includes(year)) continue; - const monthSearch = await this.fsSearchMonth({room: roomid, date: month, search, limit}); - const {results: monthResults, total: monthTotal} = monthSearch; - if (!monthTotal) continue; - total += monthTotal; - Object.assign(results, monthResults); - if (total > limit) break; - } - return {results, total}; - } - async runYearSearch(roomid: RoomID, year: string | null, search: string, limit: number) { - const {results, total} = await this.fsSearchYear(roomid, year, search, limit); - if (!total) { - return LogViewer.error(`No matches found for ${search} on ${roomid}.`); - } - let buf = ''; - if (year) { - buf += `

Searching year: ${year}:

`; - } else { - buf += `

Searching all logs:

`; - } - buf += this.renderDayResults(results, roomid); - if (total > limit) { - // cap is met - buf += `
Max results reached, capped at ${limit}`; - buf += `
`; - if (total < MAX_RESULTS) { - buf += ``; - buf += `
`; - } - } - this.results = 0; - return buf; - } - async runMonthSearch(roomid: RoomID, month: string, search: string, limit: number, year = false) { - const {results, total} = await this.fsSearchMonth({room: roomid, date: month, search, limit}); - if (!total) { - return LogViewer.error(`No matches found for ${search} on ${roomid}.`); - } - - let buf = ( - `
Searching for "${search}" in ${roomid} (${month}):
` - ); - buf += this.renderDayResults(results, roomid); - if (total > limit) { - // cap is met & is not being used in a year read - buf += `
Max results reached, capped at ${limit}`; - buf += `
`; - if (total < MAX_RESULTS) { - buf += ``; - buf += `
`; + // merge + for (const entry of stats) { + for (const k of ['deadTime', 'deadPercent', 'linesPerUser', 'totalLines', 'averagePresent'] as const) { + collected[k] += entry[k]; } - } - buf += `
`; - this.results = 0; - return buf; - } - async getSharedBattles(userids: string[]) { - const months = FS("logs/").readdirSync().filter(f => !isNaN(new Date(f).getTime())); - const results: string[] = []; - for (const month of months) { - const tiers = await FS(`logs/${month}`).readdir(); - for (const tier of tiers) { - const days = await FS(`logs/${month}/${tier}/`).readdir(); - for (const day of days) { - const battles = await FS(`logs/${month}/${tier}/${day}`).readdir(); - for (const battle of battles) { - const content = JSON.parse(FS(`logs/${month}/${tier}/${day}/${battle}`).readSync()); - const players = [content.p1, content.p2].map(toID); - if (players.every(p => userids.includes(p))) { - const battleName = battle.slice(0, -9); - results.push(battleName); - } - } + for (const type of ['lines'] as const) { + for (const k in entry[type]) { + if (!collected[type][k]) collected[type][k] = 0; + collected[type][k] += entry[type][k]; } } } - return results; + + // average + for (const k of ['deadTime', 'deadPercent', 'linesPerUser', 'totalLines', 'averagePresent'] as const) { + collected[k] /= stats.length; + } + + return {average: collected, days: stats}; } } -export class RipgrepLogSearcher extends Searcher { +export class RipgrepLogSearcher extends FSLogSearcher { async ripgrepSearchMonth(opts: ChatlogSearch) { - let {raw, search, room: roomid, date: month, args} = opts; + const {search, room: roomid, date: month, args} = opts; let results: string[]; let lineCount = 0; if (Config.disableripgrep) { return {lineCount: 0, results: []}; } - if (!raw) { - search = this.constructSearchRegex(search); - } const resultSep = args?.includes('-m') ? '--' : '\n'; try { const options = [ '-e', search, - `logs/chat/${roomid}/${month}`, + Monitor.logPath(`chat/${roomid}/${month}`).path, '-i', ]; if (args) { @@ -1126,99 +787,6 @@ export class RipgrepLogSearcher extends Searcher { lineCount += results.length; return {results, lineCount}; } - async searchLogs( - roomid: RoomID, - search: string, - limit?: number | null, - date?: string | null - ) { - if (date) { - // if it's more than 7 chars, assume it's a month - if (date.length > 7) date = date.substr(0, 7); - // if it's less, assume they were trying a year - else if (date.length < 7) date = date.substr(0, 4); - } - const months = (date && toID(date) !== 'all' ? [date] : await new LogReaderRoom(roomid).listMonths()).reverse(); - let linecount = 0; - let results: string[] = []; - if (!limit || limit > MAX_RESULTS) limit = MAX_RESULTS; - if (!date) date = 'all'; - const originalSearch = search; - const userRegex = /user-(.[a-zA-Z0-9]*)/gi; - const user = userRegex.exec(search)?.[0]?.slice(5); - const userSearch = user ? `the user '${user}'` : null; - if (userSearch) { - const id = toID(user); - const rest = search.replace(userRegex, '') - .split('-') - .filter(Boolean) - .map(str => `.*${Utils.escapeRegex(str)}`) - .join(''); - search = `\\|c\\|${this.constructUserRegex(id)}\\|${rest}`; - } - while (linecount < MAX_RESULTS) { - const month = months.shift(); - if (!month) break; - const output = await this.ripgrepSearchMonth({ - room: roomid, search, date: month, - limit, args: [`-m`, `${limit}`, '-C', '3', '--engine=auto'], raw: !!userSearch, - }); - results = results.concat(output.results); - linecount += output.lineCount; - } - if (linecount > MAX_RESULTS) { - const diff = linecount - MAX_RESULTS; - results = results.slice(0, -diff); - } - return this.renderSearchResults(results, roomid, search, limit, date, originalSearch); - } - - renderSearchResults( - results: string[], roomid: RoomID, search: string, limit: number, - month?: string | null, originalSearch?: string | null - ) { - results = results.filter(Boolean); - if (results.length < 1) return LogViewer.error('No results found.'); - let exactMatches = 0; - let curDate = ''; - if (limit > MAX_RESULTS) limit = MAX_RESULTS; - const useOriginal = originalSearch && originalSearch !== search; - const searchRegex = new RegExp(useOriginal ? search : this.constructSearchRegex(search), "i"); - const sorted = Utils.sortBy(results, line => ( - {reverse: line.split('.txt')[0].split('/').pop()!} - )).map(chunk => chunk.split('\n').map(rawLine => { - if (exactMatches > limit || !toID(rawLine)) return null; // return early so we don't keep sorting - const sep = rawLine.includes('.txt-') ? '.txt-' : '.txt:'; - const [name, text] = rawLine.split(sep); - let line = LogViewer.renderLine(text, 'all'); - if (!line || name.includes('today')) return null; - // gets rid of some edge cases / duplicates - let date = name.replace(`logs/chat/${roomid}${toID(month) === 'all' ? '' : `/${month}`}`, '').slice(9); - if (searchRegex.test(rawLine)) { - if (++exactMatches > limit) return null; - line = `
${line}
`; - } - if (curDate !== date) { - curDate = date; - date = `
[${date}]`; - } else { - date = ''; - } - return `${date} ${line}`; - }).filter(Boolean).join(' ')).filter(Boolean); - let buf = Utils.html`
Results on ${roomid} for ${originalSearch ? originalSearch : search}:`; - buf += limit ? ` ${exactMatches} (capped at ${limit})` : ''; - buf += `
`; - buf += sorted.join('
'); - if (limit) { - buf += `

Capped at ${limit}.
`; - buf += ``; - buf += `
`; - } - return buf; - } async searchLinecounts(room: RoomID, month: string, user?: ID) { // don't need to check if logs exist since ripgrepSearchMonth does that const regexString = ( @@ -1250,93 +818,44 @@ export class RipgrepLogSearcher extends Searcher { } return this.renderLinecountResults(results, room, month, user); } - async getSharedBattles(userids: string[]) { - const regexString = userids.map(id => `(?=.*?("p(1|2)":"${[...id].join('[^a-zA-Z0-9]*')}[^a-zA-Z0-9]*"))`).join(''); - const results: string[] = []; - try { - const {stdout} = await ProcessManager.exec(['rg', '-e', regexString, '-i', '-tjson', 'logs/', '-P']); - for (const line of stdout.split('\n')) { - const [name] = line.split(':'); - const battleName = name.split('/').pop()!; - results.push(battleName.slice(0, -9)); - } - } catch (e: any) { - if (e.code !== 1) throw e; - } - return results.filter(Boolean); - } } -export const LogSearcher: Searcher = new (Config.chatlogreader === 'ripgrep' ? RipgrepLogSearcher : FSLogSearcher)(); - -export const PM = new ProcessManager.QueryProcessManager(module, async data => { - const start = Date.now(); - try { - let result: any; - const {date, search, roomid, limit, queryType} = data; - switch (queryType) { - case 'linecount': - result = await LogSearcher.searchLinecounts(roomid, date, search); - break; - case 'search': - result = await LogSearcher.searchLogs(roomid, search, limit, date); - break; - case 'sharedsearch': - result = await LogSearcher.getSharedBattles(search); - break; - case 'battlesearch': - result = await LogReader.findBattleLog(roomid, search); - break; - case 'roomstats': - result = await LogSearcher.activityStats(roomid, search); - break; - default: - return LogViewer.error(`Config.chatlogreader is not configured.`); - } - const elapsedTime = Date.now() - start; - if (elapsedTime > 3000) { - Monitor.slow(`[Slow chatlog query]: ${elapsedTime}ms: ${JSON.stringify(data)}`); - } - return result; - } catch (e: any) { - if (e.name?.endsWith('ErrorMessage')) { - return LogViewer.error(e.message); +export class DatabaseLogSearcher extends Searcher { + async searchLinecounts(roomid: RoomID, month: string, user?: ID) { + user = toID(user); + if (!Rooms.Roomlogs.table) throw new Error(`Database search made while database is disabled.`); + const results: {[date: string]: {[user: string]: number}} = {}; + const [monthStart, monthEnd] = LogReader.monthToRange(month); + const rows = await Rooms.Roomlogs.table.selectAll()` + WHERE ${user ? SQL`userid = ${user} AND ` : SQL``}roomid = ${roomid} AND + time BETWEEN ${monthStart}::int::timestamp AND ${monthEnd}::int::timestamp AND + type = ${'c'} + `; + + for (const row of rows) { + // 'c' rows should always have userids, so this should never be an issue. + // this is just to appease TS. + if (!row.userid) continue; + const day = Chat.toTimestamp(row.time).split(' ')[0]; + if (!results[day]) results[day] = {}; + if (!results[day][row.userid]) results[day][row.userid] = 0; + results[day][row.userid]++; } - Monitor.crashlog(e, 'A chatlog search query', data); - return LogViewer.error(`Sorry! Your chatlog search crashed. We've been notified and will fix this.`); + + return this.renderLinecountResults(results, roomid, month, user); } -}, CHATLOG_PM_TIMEOUT, message => { - if (message.startsWith(`SLOW\n`)) { - Monitor.slow(message.slice(5)); + activityStats(room: RoomID, month: string): Promise<{average: RoomStats, days: RoomStats[]}> { + throw new Chat.ErrorMessage('This is not yet implemented for the new logs database.'); } -}); - -if (!PM.isParentProcess) { - // This is a child process! - global.Config = Config; - global.Monitor = { - crashlog(error: Error, source = 'A chatlog search process', details: AnyObject | null = null) { - const repr = JSON.stringify([error.name, error.message, source, details]); - process.send!(`THROW\n@!!@${repr}\n${error.stack}`); - }, - slow(text: string) { - process.send!(`CALLBACK\nSLOW\n${text}`); - }, - }; - global.Dex = Dex; - global.toID = Dex.toID; - process.on('uncaughtException', err => { - if (Config.crashguard) { - Monitor.crashlog(err, 'A chatlog search child process'); - } - }); - // eslint-disable-next-line no-eval - Repl.start('chatlog', cmd => eval(cmd)); -} else { - PM.spawn(MAX_PROCESSES); } -const accessLog = FS(`logs/chatlog-access.txt`).createAppendStream(); +export const LogSearcher: Searcher = new ( + Rooms.Roomlogs.table ? DatabaseLogSearcher : + // no db, determine fs reader type. + Config.chatlogreader === 'ripgrep' ? RipgrepLogSearcher : FSLogSearcher +)(); + +const accessLog = Monitor.logPath(`chatlog-access.txt`).createAppendStream(); export const pages: Chat.PageTable = { async chatlog(args, user, connection) { @@ -1382,22 +901,7 @@ export const pages: Chat.PageTable = { void accessLog.writeLine(`${user.id}: <${roomid}> ${date}`); this.title = '[Logs] ' + roomid; - /** null = no limit */ - let limit: number | null = null; let search; - if (opts?.startsWith('search-')) { - let [input, limitString] = opts.split('--limit-'); - input = input.slice(7); - search = Dashycode.decode(input); - if (search.length < 3) return this.errorReply(`That's too short of a search query.`); - if (limitString) { - limit = parseInt(limitString) || null; - } else { - limit = 500; - } - opts = ''; - } - const isAll = (toID(date) === 'all' || toID(date) === 'alltime'); const parsedDate = new Date(date as string); const validDateStrings = ['all', 'alltime']; @@ -1413,7 +917,7 @@ export const pages: Chat.PageTable = { if (date && search) { Searcher.checkEnabled(); this.checkCan('bypassall'); - return LogSearcher.runSearch(this, search, roomid, isAll ? null : date, limit); + return LogSearcher.runSearch(); } else if (date) { if (date === 'today') { this.setHTML(await LogViewer.day(roomid, LogReader.today(), opts)); @@ -1448,14 +952,6 @@ export const pages: Chat.PageTable = { this.title = `[Log Stats] ${date}`; return LogSearcher.runLinecountSearch(this, room ? room.roomid : args[2] as RoomID, date, toID(target)); }, - battlelog(args, user) { - const [tierName, battleNum] = args; - const tier = toID(tierName); - const num = parseInt(battleNum); - if (isNaN(num)) return this.errorReply(`Invalid battle number.`); - void accessLog.writeLine(`${user.id}: battle-${tier}-${num}`); - return LogViewer.battle(tier, num, this); - }, async logsaccess(query) { this.checkCan('rangeban'); const type = toID(query.shift()); @@ -1478,7 +974,7 @@ export const pages: Chat.PageTable = { let buf = `

${title}`; if (userid) buf += ` for ${userid}`; buf += `


    `; - const accessStream = FS(`logs/chatlog-access.txt`).createReadStream(); + const accessStream = Monitor.logPath(`chatlog-access.txt`).createReadStream(); for await (const line of accessStream.byLine()) { const [id, rest] = Utils.splitFirst(line, ': '); if (userid && id !== userid) continue; @@ -1509,17 +1005,20 @@ export const pages: Chat.PageTable = { export const commands: Chat.ChatCommands = { chatlogs: 'chatlog', cl: 'chatlog', + roomlog: 'chatlog', + rl: 'chatlog', + roomlogs: 'chatlog', chatlog(target, room, user) { const [tarRoom, ...opts] = target.split(','); const targetRoom = tarRoom ? Rooms.search(tarRoom) : room; const roomid = targetRoom ? targetRoom.roomid : target; - return this.parse(`/join view-chatlog-${roomid}--today${opts ? `--${opts.join('--')}` : ''}`); + return this.parse(`/join view-chatlog-${roomid}--today${opts ? `--${opts.map(toID).join('--')}` : ''}`); }, chatloghelp() { const strings = [ `/chatlog [optional room], [opts] - View chatlogs from the given room. `, - `If none is specified, shows logs from the room you're in. Requires: % @ * # &`, + `If none is specified, shows logs from the room you're in. Requires: % @ * # ~`, `Supported options:`, `txt - Do not render logs.`, `txt-onlychat - Show only chat lines, untransformed.`, @@ -1571,7 +1070,7 @@ export const commands: Chat.ChatCommands = { `If you provide a user argument in the form user=username, it will search for messages (that match the other arguments) only from that user.
    ` + `All other arguments will be considered part of the search ` + `(if more than one argument is specified, it searches for lines containing all terms).
    ` + - "Requires: % @ # &
"; + "Requires: ~
"; return this.sendReplyBox(buffer); }, topusers: 'linecount', @@ -1647,23 +1146,6 @@ export const commands: Chat.ChatCommands = { `/linecount [room], [month], [user].. This does not use any defaults.
` ); }, - slb: 'sharedloggedbattles', - async sharedloggedbattles(target, room, user) { - this.checkCan('lock'); - if (Config.nobattlesearch) return this.errorReply(`/${this.cmd} has been temporarily disabled due to load issues.`); - const targets = target.split(',').map(toID).filter(Boolean); - if (targets.length < 2 || targets.length > 2) { - return this.errorReply(`Specify two users.`); - } - const results = await LogSearcher.sharedBattles(targets); - if (room?.settings.staffRoom || this.pmTarget?.isStaff) { - this.runBroadcast(); - } - return this.sendReplyBox(results); - }, - sharedloggedbattleshelp: [ - `/sharedloggedbattles OR /slb [user1, user2] - View shared battle logs between user1 and user2`, - ], battlelog(target, room, user) { this.checkCan('lock'); target = target.trim(); @@ -1677,7 +1159,7 @@ export const commands: Chat.ChatCommands = { }, battleloghelp: [ `/battlelog [battle link] - View the log of the given [battle link], even if the replay was not saved.`, - `Requires: % @ &`, + `Requires: % @ ~`, ], @@ -1710,6 +1192,16 @@ export const commands: Chat.ChatCommands = { let log: string[]; if (tarRoom) { log = tarRoom.log.log; + } else if (Rooms.Replays.db) { + let battleId = roomid.replace('battle-', ''); + if (battleId.endsWith('pw')) { + battleId = battleId.slice(0, battleId.lastIndexOf("-", battleId.length - 2)); + } + const replayData = await Rooms.Replays.get(battleId); + if (!replayData) { + return this.errorReply(`No room or replay found for that battle.`); + } + log = replayData.log.split('\n'); } else { try { const raw = await Net(`https://${Config.routes.replays}/${roomid.slice('battle-'.length)}.json`).get(); @@ -1745,7 +1237,7 @@ export const commands: Chat.ChatCommands = { getbattlechathelp: [ `/getbattlechat [battle link][, username] - Gets all battle chat logs from the given [battle link].`, `If a [username] is given, searches only chat messages from the given username.`, - `Requires: % @ &`, + `Requires: % @ ~`, ], logsaccess(target, room, user) { @@ -1756,7 +1248,7 @@ export const commands: Chat.ChatCommands = { logsaccesshelp: [ `/logsaccess [type], [user] - View chatlog access logs for the given [type] and [user].`, `If no arguments are given, shows the entire access log.`, - `Requires: &`, + `Requires: ~`, ], @@ -1768,7 +1260,7 @@ export const commands: Chat.ChatCommands = { if (target.length < 3) { return this.errorReply(`Too short of a search term.`); } - const files = await FS(`logs/chat`).readdir(); + const files = await Monitor.logPath(`chat`).readdir(); const buffer = []; for (const roomid of files) { if (roomid.startsWith('groupchat-') && roomid.includes(target)) { @@ -1782,7 +1274,7 @@ export const commands: Chat.ChatCommands = { ); }, groupchatsearchhelp: [ - `/groupchatsearch [target] - Searches for logs of groupchats with names containing the [target]. Requires: % @ &`, + `/groupchatsearch [target] - Searches for logs of groupchats with names containing the [target]. Requires: % @ ~`, ], roomact: 'roomactivity', @@ -1794,8 +1286,8 @@ export const commands: Chat.ChatCommands = { return this.parse(`/join view-roominfo-${room}${date ? `--${date}` : ''}`); }, roomactivityhelp: [ - `/roomactibity [room][, date] - View room activity logs for the given room.`, + `/roomactivity [room][, date] - View room activity logs for the given room.`, `If a date is provided, it searches for logs from that date. Otherwise, it searches the current month.`, - `Requires: &`, + `Requires: ~`, ], }; diff --git a/server/chat-plugins/daily-spotlight.ts b/server/chat-plugins/daily-spotlight.ts index 3acd8a3f495f..380b6c82360a 100644 --- a/server/chat-plugins/daily-spotlight.ts +++ b/server/chat-plugins/daily-spotlight.ts @@ -52,7 +52,7 @@ function nextDaily() { const midnight = new Date(); midnight.setHours(24, 0, 0, 0); -let timeout = setTimeout(nextDaily, midnight.valueOf() - Date.now()); +let timeout = setTimeout(nextDaily, midnight.getTime() - Date.now()); export async function renderSpotlight(roomid: RoomID, key: string, index: number) { let imgHTML = ''; @@ -308,13 +308,13 @@ export const commands: Chat.ChatCommands = { dailyhelp() { this.sendReply( `|html|
/daily [name]: shows the daily spotlight.
` + - `!daily [name]: shows the daily spotlight to everyone. Requires: + % @ # &
` + - `/setdaily [name], [image], [description]: sets the daily spotlight. Image can be left out. Requires: % @ # &
` + - `/queuedaily [name], [image], [description]: queues a daily spotlight. At midnight, the spotlight with this name will automatically switch to the next queued spotlight. Image can be left out. Requires: % @ # &
` + - `/queuedailyat [name], [queue number], [image], [description]: inserts a daily spotlight into the queue at the specified number (starting from 1). Requires: % @ # &
` + - `/replacedaily [name], [queue number], [image], [description]: replaces the daily spotlight queued at the specified number. Requires: % @ # &
` + - `/removedaily [name][, queue number]: if no queue number is provided, deletes all queued and current spotlights with the given name. If a number is provided, removes a specific future spotlight from the queue. Requires: % @ # &
` + - `/swapdaily [name], [queue number], [queue number]: swaps the two queued spotlights at the given queue numbers. Requires: % @ # &
` + + `!daily [name]: shows the daily spotlight to everyone. Requires: + % @ # ~
` + + `/setdaily [name], [image], [description]: sets the daily spotlight. Image can be left out. Requires: % @ # ~` + + `/queuedaily [name], [image], [description]: queues a daily spotlight. At midnight, the spotlight with this name will automatically switch to the next queued spotlight. Image can be left out. Requires: % @ # ~
` + + `/queuedailyat [name], [queue number], [image], [description]: inserts a daily spotlight into the queue at the specified number (starting from 1). Requires: % @ # ~
` + + `/replacedaily [name], [queue number], [image], [description]: replaces the daily spotlight queued at the specified number. Requires: % @ # ~
` + + `/removedaily [name][, queue number]: if no queue number is provided, deletes all queued and current spotlights with the given name. If a number is provided, removes a specific future spotlight from the queue. Requires: % @ # ~
` + + `/swapdaily [name], [queue number], [queue number]: swaps the two queued spotlights at the given queue numbers. Requires: % @ # ~
` + `/viewspotlights [sorter]: shows all current spotlights in the room. For staff, also shows queued spotlights.` + `[sorter] can either be unset, 'time', or 'alphabet'. These sort by either the time added, or alphabetical order.` + `
` diff --git a/server/chat-plugins/datasearch.ts b/server/chat-plugins/datasearch.ts index 7572962e3b6d..9fe587260625 100644 --- a/server/chat-plugins/datasearch.ts +++ b/server/chat-plugins/datasearch.ts @@ -54,17 +54,6 @@ const RESULTS_MAX_LENGTH = 10; const MAX_RANDOM_RESULTS = 30; const dexesHelp = Object.keys((global.Dex?.dexes || {})).filter(x => x !== 'sourceMaps').join('
, '); -function escapeHTML(str?: string) { - if (!str) return ''; - return ('' + str) - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, ''') - .replace(/\//g, '/'); -} - function toListString(arr: string[]) { if (!arr.length) return ''; if (arr.length === 1) return arr[0]; @@ -106,17 +95,21 @@ export const commands: Chat.ChatCommands = { target = split.join(','); } } + const defaultFormat = this.extractFormat(room?.settings.defaultFormat || room?.battle?.format); if (!target.includes('mod=')) { - const dex = this.extractFormat(room?.settings.defaultFormat || room?.battle?.format).dex; + const dex = defaultFormat.dex; if (dex) target += `, mod=${dex.currentMod}`; } - if (cmd === 'nds') target += ', natdex'; + if (cmd === 'nds' || + (defaultFormat.format && Dex.formats.getRuleTable(defaultFormat.format).has('standardnatdex'))) { + target += ', natdex'; + } const response = await runSearch({ target, cmd: 'dexsearch', canAll: !this.broadcastMessage || checkCanAll(room), message: (this.broadcastMessage ? "" : message), - }); + }, user); if (!response.error && !this.runBroadcast()) return; if (response.error) { throw new Chat.ErrorMessage(response.error); @@ -133,7 +126,7 @@ export const commands: Chat.ChatCommands = { `|html|
/dexsearch [parameter], [parameter], [parameter], ...: searches for Pok\u00e9mon that fulfill the selected criteria
` + `Search categories are: type, tier, color, moves, ability, gen, resists, weak, recovery, zrecovery, priority, stat, weight, height, egg group, pivot.
` + `Valid colors are: green, red, blue, white, brown, yellow, purple, pink, gray and black.
` + - `Valid tiers are: Uber/OU/UUBL/UU/RUBL/RU/NUBL/NU/PUBL/PU/ZU/NFE/LC/CAP/CAP NFE/CAP LC.
` + + `Valid tiers are: Uber/OU/UUBL/UU/RUBL/RU/NUBL/NU/PUBL/PU/ZUBL/ZU/NFE/LC/CAP/CAP NFE/CAP LC.
` + `Valid doubles tiers are: DUber/DOU/DBL/DUU/DNU.
` + `Types can be searched for by either having the type precede type or just using the type itself as a parameter; e.g., both fire type and fire show all Fire types; however, using psychic as a parameter will show all Pok\u00e9mon that learn the move Psychic and not Psychic types.
` + `resists followed by a type or move will show Pok\u00e9mon that resist that typing or move (e.g. resists normal).
` + @@ -176,13 +169,17 @@ export const commands: Chat.ChatCommands = { } } if (!qty) targetsBuffer.push("random1"); - + const defaultFormat = this.extractFormat(room?.settings.defaultFormat || room?.battle?.format); + if (!target.includes('mod=')) { + const dex = defaultFormat.dex; + if (dex) targetsBuffer.push(`mod=${dex.currentMod}`); + } const response = await runSearch({ target: targetsBuffer.join(","), cmd: 'randmove', canAll: !this.broadcastMessage || checkCanAll(room), message: (this.broadcastMessage ? "" : message), - }); + }, user); if (!response.error && !this.runBroadcast(true)) return; if (response.error) { throw new Chat.ErrorMessage(response.error); @@ -223,13 +220,17 @@ export const commands: Chat.ChatCommands = { } } if (!qty) targetsBuffer.push("random1"); - + const defaultFormat = this.extractFormat(room?.settings.defaultFormat || room?.battle?.format); + if (!target.includes('mod=')) { + const dex = defaultFormat.dex; + if (dex) targetsBuffer.push(`mod=${dex.currentMod}`); + } const response = await runSearch({ target: targetsBuffer.join(","), cmd: 'randpoke', canAll: !this.broadcastMessage || checkCanAll(room), message: (this.broadcastMessage ? "" : message), - }); + }, user); if (!response.error && !this.runBroadcast(true)) return; if (response.error) { throw new Chat.ErrorMessage(response.error); @@ -247,6 +248,51 @@ export const commands: Chat.ChatCommands = { `Adding a number as a parameter returns that many random Pok\u00e9mon, e.g., '/randpoke 6' returns 6 random Pok\u00e9mon.`, ], + randability: 'randomability', + async randomability(target, room, user, connection, cmd, message) { + this.checkBroadcast(true); + target = target.slice(0, 300); + const targets = target.split(","); + const targetsBuffer = []; + let qty; + for (const arg of targets) { + if (!arg) continue; + const num = Number(arg); + if (Number.isInteger(num)) { + if (qty) throw new Chat.ErrorMessage("Only specify the number of abilities once."); + qty = num; + if (qty < 1 || MAX_RANDOM_RESULTS < qty) { + throw new Chat.ErrorMessage(`Number of random abilities must be between 1 and ${MAX_RANDOM_RESULTS}.`); + } + targetsBuffer.push(`random${qty}`); + } else { + targetsBuffer.push(arg); + } + } + if (!qty) targetsBuffer.push("random1"); + + const response = await runSearch({ + target: targetsBuffer.join(","), + cmd: 'randability', + canAll: !this.broadcastMessage || checkCanAll(room), + message: (this.broadcastMessage ? "" : message), + }); + if (!response.error && !this.runBroadcast(true)) return; + if (response.error) { + throw new Chat.ErrorMessage(response.error); + } else if (response.reply) { + this.sendReplyBox(response.reply); + } else if (response.dt) { + (Chat.commands.data as Chat.ChatHandler).call( + this, response.dt, room, user, connection, 'dt', this.broadcastMessage ? "" : message + ); + } + }, + randomabilityhelp: [ + `/randability - Generates random Pok\u00e9mon ability based on given search conditions.`, + `/randability uses the same parameters as /abilitysearch (see '/help ds').`, + `Adding a number as a parameter returns that many random Pok\u00e9mon abilities, e.g., '/randabilitiy 6' returns 6 random abilities.`, + ], ms: 'movesearch', ms1: 'movesearch', ms2: 'movesearch', @@ -283,7 +329,7 @@ export const commands: Chat.ChatCommands = { cmd: 'movesearch', canAll: !this.broadcastMessage || checkCanAll(room), message: (this.broadcastMessage ? "" : message), - }); + }, user); if (!response.error && !this.runBroadcast()) return; if (response.error) { throw new Chat.ErrorMessage(response.error); @@ -306,7 +352,7 @@ export const commands: Chat.ChatCommands = { `- zmove, max, or gmax as parameters will search for Z-Moves, Max Moves, and G-Max Moves respectively.
` + `- Move targets must be preceded with targets ; e.g. targets user searches for moves that target the user.
` + `- Valid move targets are: one ally, user or ally, one adjacent opponent, all Pokemon, all adjacent Pokemon, all adjacent opponents, user and allies, user's side, user's team, any Pokemon, opponent's side, one adjacent Pokemon, random adjacent Pokemon, scripted, and user.
` + - `- Valid flags are: allyanim, bypasssub (bypasses Substitute), bite, bullet, charge, contact, dance, defrost, distance (can target any Pokemon in Triples), failcopycat, failencore, failinstruct, failmefirst, failmimic, futuremove, gravity, heal, highcrit, instruct, mefirst, mimic, mirror (reflected by Mirror Move), mustpressure, multihit, noassist, nonsky, noparentalbond, nosleeptalk, ohko, pivot, pledgecombo, powder, priority, protect, pulse, punch, recharge, recovery, reflectable, secondary, slicing, snatch, sound, and wind.
` + + `- Valid flags are: allyanim, bypasssub (bypasses Substitute), bite, bullet, cantusetwice, charge, contact, dance, defrost, distance (can target any Pokemon in Triples), failcopycat, failencore, failinstruct, failmefirst, failmimic, futuremove, gravity, heal, highcrit, instruct, metronome, mimic, mirror (reflected by Mirror Move), mustpressure, multihit, noassist, nonsky, noparentalbond, nosketch, nosleeptalk, ohko, pivot, pledgecombo, powder, priority, protect, pulse, punch, recharge, recovery, reflectable, secondary, slicing, snatch, sound, and wind.
` + `- protection as a parameter will search protection moves like Protect, Detect, etc.
` + `- A search that includes !protect will show all moves that bypass protection.
` + `

` + @@ -338,14 +384,14 @@ export const commands: Chat.ChatCommands = { if (!target) return this.parse('/help itemsearch'); target = target.slice(0, 300); const targetGen = parseInt(cmd[cmd.length - 1]); - if (targetGen) target += ` maxgen${targetGen}`; + if (targetGen) target = `maxgen${targetGen} ${target}`; const response = await runSearch({ target, cmd: 'itemsearch', canAll: !this.broadcastMessage || checkCanAll(room), message: (this.broadcastMessage ? "" : message), - }); + }, user); if (!response.error && !this.runBroadcast()) return; if (response.error) { throw new Chat.ErrorMessage(response.error); @@ -368,6 +414,51 @@ export const commands: Chat.ChatCommands = { ); }, + randitem: 'randomitem', + async randomitem(target, room, user, connection, cmd, message) { + this.checkBroadcast(true); + target = target.slice(0, 300); + const targets = target.split(","); + const targetsBuffer = []; + let qty; + for (const arg of targets) { + if (!arg) continue; + const num = Number(arg); + if (Number.isInteger(num)) { + if (qty) throw new Chat.ErrorMessage("Only specify the number of items once."); + qty = num; + if (qty < 1 || MAX_RANDOM_RESULTS < qty) { + throw new Chat.ErrorMessage(`Number of random items must be between 1 and ${MAX_RANDOM_RESULTS}.`); + } + targetsBuffer.push(`random${qty}`); + } else { + targetsBuffer.push(arg); + } + } + if (!qty) targetsBuffer.push("random1"); + + const response = await runSearch({ + target: targetsBuffer.join(","), + cmd: 'randitem', + canAll: !this.broadcastMessage || checkCanAll(room), + message: (this.broadcastMessage ? "" : message), + }); + if (!response.error && !this.runBroadcast(true)) return; + if (response.error) { + throw new Chat.ErrorMessage(response.error); + } else if (response.reply) { + this.sendReplyBox(response.reply); + } else if (response.dt) { + (Chat.commands.data as Chat.ChatHandler).call( + this, response.dt, room, user, connection, 'dt', this.broadcastMessage ? "" : message + ); + } + }, + randomitemhelp: [ + `/randitem - Generates random items based on given search conditions.`, + `/randitem uses the same parameters as /itemsearch (see '/help ds').`, + `Adding a number as a parameter returns that many random items, e.g., '/randitem 6' returns 6 random items.`, + ], asearch: 'abilitysearch', as: 'abilitysearch', as3: 'abilitysearch', @@ -388,7 +479,7 @@ export const commands: Chat.ChatCommands = { cmd: 'abilitysearch', canAll: !this.broadcastMessage || checkCanAll(room), message: (this.broadcastMessage ? "" : message), - }); + }, user); if (!response.error && !this.runBroadcast()) return; if (response.error) { throw new Chat.ErrorMessage(response.error); @@ -419,11 +510,12 @@ export const commands: Chat.ChatCommands = { bw2learn: 'learn', oraslearn: 'learn', usumlearn: 'learn', + sslearn: 'learn', async learn(target, room, user, connection, cmd, message) { if (!target) return this.parse('/help learn'); if (target.length > 300) throw new Chat.ErrorMessage(`Query too long.`); - const GENS: {[k: string]: number} = {rby: 1, gsc: 2, adv: 3, dpp: 4, bw2: 5, oras: 6, usum: 7}; + const GENS: {[k: string]: number} = {rby: 1, gsc: 2, adv: 3, dpp: 4, bw2: 5, oras: 6, usum: 7, ss: 8}; const cmdGen = GENS[cmd.slice(0, -5)]; if (cmdGen) target = `gen${cmdGen}, ${target}`; @@ -438,7 +530,7 @@ export const commands: Chat.ChatCommands = { cmd: 'learn', canAll: !this.broadcastMessage || checkCanAll(room), message: formatid, - }); + }, user); if (!response.error && !this.runBroadcast()) return; if (response.error) { throw new Chat.ErrorMessage(response.error); @@ -448,12 +540,56 @@ export const commands: Chat.ChatCommands = { }, learnhelp: [ `/learn [ruleset], [pokemon], [move, move, ...] - Displays how the Pok\u00e9mon can learn the given moves, if it can at all.`, - `!learn [ruleset], [pokemon], [move, move, ...] - Show everyone that information. Requires: + % @ # &`, + `!learn [ruleset], [pokemon], [move, move, ...] - Show everyone that information. Requires: + % @ # ~`, `Specifying a ruleset is entirely optional. The ruleset can be a format, a generation (e.g.: gen3) or "min source gen [number]".`, `A value of 'min source gen [number]' indicates that trading (or Pokémon Bank) from generations before [number] is not allowed.`, `/learn5 displays how the Pok\u00e9mon can learn the given moves at level 5, if it can at all.`, `/learnall displays all of the possible fathers for egg moves.`, - `/learn can also be prefixed by a generation acronym (e.g.: /dpplearn) to indicate which generation is used. Valid options are: rby gsc adv dpp bw2 oras usum`, + `/learn can also be prefixed by a generation acronym (e.g.: /dpplearn) to indicate which generation is used. Valid options are: rby gsc adv dpp bw2 oras usum ss`, + ], + randtype: 'randomtype', + async randomtype(target, room, user, connection, cmd, message) { + this.checkBroadcast(true); + target = target.slice(0, 300); + const targets = target.split(","); + const targetsBuffer = []; + let qty; + for (const arg of targets) { + if (!arg) continue; + const num = Number(arg); + if (Number.isInteger(num)) { + if (qty) throw new Chat.ErrorMessage("Only specify the number of types once."); + qty = num; + if (qty < 1 || MAX_RANDOM_RESULTS < qty) { + throw new Chat.ErrorMessage(`Number of random types must be between 1 and ${MAX_RANDOM_RESULTS}.`); + } + targetsBuffer.push(`random${qty}`); + } else { + targetsBuffer.push(arg); + } + } + if (!qty) targetsBuffer.push("random1"); + + const response = await runSearch({ + target: targetsBuffer.join(","), + cmd: 'randtype', + canAll: !this.broadcastMessage || checkCanAll(room), + message: (this.broadcastMessage ? "" : message), + }); + if (!response.error && !this.runBroadcast(true)) return; + if (response.error) { + throw new Chat.ErrorMessage(response.error); + } else if (response.reply) { + this.sendReplyBox(response.reply); + } else if (response.dt) { + (Chat.commands.data as Chat.ChatHandler).call( + this, response.dt, room, user, connection, 'dt', this.broadcastMessage ? "" : message + ); + } + }, + randomtypehelp: [ + `/randtype - Generates random types based on given search conditions.`, + `Adding a number as a parameter returns that many random items, e.g., '/randtype 6' returns 6 random types.`, ], }; @@ -485,7 +621,8 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str uubl: 'UUBL', uu: 'UU', rubl: 'RUBL', ru: 'RU', nubl: 'NUBL', nu: 'NU', - publ: 'PUBL', pu: 'PU', zu: '(PU)', + publ: 'PUBL', pu: 'PU', + zubl: 'ZUBL', zu: 'ZU', nfe: 'NFE', lc: 'LC', cap: 'CAP', caplc: 'CAP LC', capnfe: 'CAP NFE', @@ -698,7 +835,7 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str return {error: `The parameter '${target.split(' ')[1]}' cannot have alternative parameters.`}; } const stat = allStatAliases[toID(target.split(' ')[0])] || toID(target.split(' ')[0]); - if (!allStats.includes(stat)) return {error: `'${escapeHTML(target)}' did not contain a valid stat.`}; + if (!allStats.includes(stat)) return {error: `'${target}' did not contain a valid stat.`}; sort = `${stat}${target.endsWith(' asc') ? '+' : '-'}`; orGroup.skip = true; break; @@ -902,11 +1039,11 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str if (inequalityString.startsWith('<')) directions.push('less'); if (inequalityString.startsWith('>')) directions.push('greater'); } else { - return {error: `No value given to compare with '${escapeHTML(target)}'.`}; + return {error: `No value given to compare with '${target}'.`}; } if (inequalityString.endsWith('=')) directions.push('equal'); if (stat in allStatAliases) stat = allStatAliases[stat]; - if (!allStats.includes(stat)) return {error: `'${escapeHTML(target)}' did not contain a valid stat.`}; + if (!allStats.includes(stat)) return {error: `'${target}' did not contain a valid stat.`}; if (!orGroup.stats[stat]) orGroup.stats[stat] = Object.create(null); for (const direction of directions) { if (orGroup.stats[stat][direction]) return {error: `Invalid stat range for ${stat}.`}; @@ -914,7 +1051,7 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str } continue; } - return {error: `'${escapeHTML(target)}' could not be found in any of the search categories.`}; + return {error: `'${target}' could not be found in any of the search categories.`}; } if (!orGroup.skip) { searches.push(orGroup); @@ -937,11 +1074,7 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str if ( species.gen <= mod.gen && ( - ( - nationalSearch && - species.isNonstandard && - !["Custom", "Glitch", "Pokestar", "Future"].includes(species.isNonstandard) - ) || + (nationalSearch && species.natDexTier !== 'Illegal') || ((species.tier !== 'Unreleased' || unreleasedSearch) && species.tier !== 'Illegal') ) && (!species.tier.startsWith("CAP") || capSearch) && @@ -960,8 +1093,22 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str Object.values(search).reduce(accumulateKeyCount, 0) )); + // Prepare move validator and pokemonSource outside the hot loop + // but don't prepare them at all if there are no moves to check... + // These only ever get accessed if there are moves to filter by. + let validator; + let pokemonSource; + if (Object.values(searches).some(search => Object.keys(search.moves).length !== 0)) { + const format = Object.entries(Dex.data.Rulesets).find(([a, f]) => f.mod === usedMod)?.[1].name || 'gen9ou'; + const ruleTable = Dex.formats.getRuleTable(Dex.formats.get(format)); + const additionalRules = []; + if (nationalSearch && !ruleTable.has('standardnatdex')) additionalRules.push('standardnatdex'); + if (nationalSearch && ruleTable.valueRules.has('minsourcegen')) additionalRules.push('!!minsourcegen=3'); + validator = TeamValidator.get(`${format}${additionalRules.length ? `@@@${additionalRules.join(',')}` : ''}`); + } for (const alts of searches) { if (alts.skip) continue; + const altsMoves = Object.keys(alts.moves).map(x => mod.moves.get(x)).filter(move => move.gen <= mod.gen); for (const mon in dex) { let matched = false; if (alts.gens && Object.keys(alts.gens).length) { @@ -984,14 +1131,14 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str if (alts.tiers && Object.keys(alts.tiers).length) { let tier = dex[mon].tier; if (nationalSearch) tier = dex[mon].natDexTier; - if (tier.startsWith('(') && tier !== '(PU)') tier = tier.slice(1, -1) as TierTypes.Singles; + if (tier.startsWith('(')) tier = tier.slice(1, -1) as TierTypes.Singles; // if (tier === 'New') tier = 'OU'; if (alts.tiers[tier]) continue; if (Object.values(alts.tiers).includes(false) && alts.tiers[tier] !== false) continue; // LC handling, checks for LC Pokemon in higher tiers that need to be handled separately, // as well as event-only Pokemon that are not eligible for LC despite being the first stage let format = Dex.formats.get('gen' + mod.gen + 'lc'); - if (!format.exists) format = Dex.formats.get('gen9lc'); + if (format.effectType !== 'Format') format = Dex.formats.get('gen9lc'); if ( alts.tiers.LC && !dex[mon].prevo && @@ -1122,18 +1269,13 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str } if (matched) continue; - const format = Object.entries(Dex.data.Rulesets).find(([a, f]) => f.mod === usedMod); - const formatStr = format ? format[1].name : 'gen9ou'; - const validator = TeamValidator.get( - `${formatStr}${nationalSearch && !Dex.formats.getRuleTable(Dex.formats.get(formatStr)).has('standardnatdex') ? '@@@standardnatdex' : ''}` - ); - const pokemonSource = validator.allSources(); - for (const move of Object.keys(alts.moves).map(x => mod.moves.get(x))) { - if (move.gen <= mod.gen && !validator.checkCanLearn(move, dex[mon], pokemonSource) === alts.moves[move.id]) { + for (const move of altsMoves) { + pokemonSource = validator?.allSources(); + if (validator && !validator.checkCanLearn(move, dex[mon], pokemonSource) === alts.moves[move.id]) { matched = true; break; } - if (!pokemonSource.size()) break; + if (pokemonSource && !pokemonSource.size()) break; } if (matched) continue; @@ -1162,11 +1304,16 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str let results: string[] = []; for (const mon of Object.keys(dex).sort()) { if (singleTypeSearch !== null && (dex[mon].types.length === 1) !== singleTypeSearch) continue; - const isRegionalForm = ["Alola", "Galar", "Hisui", "Paldea"].includes(dex[mon].forme) && - dex[mon].name !== "Pikachu-Alola"; + const isRegionalForm = (["Alola", "Galar", "Hisui"].includes(dex[mon].forme) || dex[mon].forme.startsWith("Paldea")) && + dex[mon].baseSpecies !== "Pikachu"; + const maskForm = dex[mon].baseSpecies === "Ogerpon" && !dex[mon].forme.endsWith("Tera"); const allowGmax = (gmaxSearch || tierSearch); - if (!isRegionalForm && dex[mon].baseSpecies && results.includes(dex[mon].baseSpecies) && + if (!isRegionalForm && !maskForm && dex[mon].baseSpecies && results.includes(dex[mon].baseSpecies) && getSortValue(mon) === getSortValue(dex[mon].baseSpecies)) continue; + const teraFormeChangesFrom = dex[mon].forme.endsWith("Tera") ? !Array.isArray(dex[mon].battleOnly) ? + dex[mon].battleOnly as string : null : null; + if (teraFormeChangesFrom && results.includes(teraFormeChangesFrom) && + getSortValue(mon) === getSortValue(teraFormeChangesFrom)) continue; if (dex[mon].isNonstandard === 'Gigantamax' && !allowGmax) continue; results.push(dex[mon].name); } @@ -1193,7 +1340,7 @@ function runDexsearch(target: string, cmd: string, canAll: boolean, message: str results = Utils.shuffle(results).slice(0, randomOutput); } - let resultsStr = (message === "" ? message : `${escapeHTML(message)}:
`); + let resultsStr = (message === "" ? message : `${Utils.escapeHTML(message)}:
`); if (results.length > 1) { results.sort(); if (sort) { @@ -1232,9 +1379,10 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st const allContestTypes = ['beautiful', 'clever', 'cool', 'cute', 'tough']; const allProperties = ['basePower', 'accuracy', 'priority', 'pp']; const allFlags = [ - 'allyanim', 'bypasssub', 'bite', 'bullet', 'charge', 'contact', 'dance', 'defrost', 'distance', 'failcopycat', 'failencore', 'failinstruct', - 'failmefirst', 'failmimic', 'futuremove', 'gravity', 'heal', 'mirror', 'mustpressure', 'noassist', 'nonsky', 'noparentalbond', 'nosleeptalk', - 'pledgecombo', 'powder', 'protect', 'pulse', 'punch', 'recharge', 'reflectable', 'slicing', 'snatch', 'sound', 'wind', + 'allyanim', 'bypasssub', 'bite', 'bullet', 'cantusetwice', 'charge', 'contact', 'dance', 'defrost', 'distance', 'failcopycat', 'failencore', + 'failinstruct', 'failmefirst', 'failmimic', 'futuremove', 'gravity', 'heal', 'metronome', 'mirror', 'mustpressure', 'noassist', 'nonsky', + 'noparentalbond', 'nosketch', 'nosleeptalk', 'pledgecombo', 'powder', 'protect', 'pulse', 'punch', 'recharge', 'reflectable', 'slicing', + 'snatch', 'sound', 'wind', // Not flags directly from move data, but still useful to sort by 'highcrit', 'multihit', 'ohko', 'protection', 'secondary', @@ -1350,7 +1498,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st if (target === 'crit' || toID(target) === 'highcrit') target = 'highcrit'; if (['thaw', 'thaws', 'melt', 'melts', 'defrosts'].includes(target)) target = 'defrost'; if (target === 'slices' || target === 'slice') target = 'slicing'; - if (target === 'sheerforce') target = 'secondary'; + if (toID(target) === 'sheerforce') target = 'secondary'; if (target === 'bounceable' || toID(target) === 'magiccoat' || toID(target) === 'magicbounce') target = 'reflectable'; if (allFlags.includes(target)) { if ((orGroup.flags[target] && isNotSearch) || (orGroup.flags[target] === false && !isNotSearch)) { @@ -1401,7 +1549,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st case 'power': prop = 'basePower'; break; case 'acc': prop = 'accuracy'; break; } - if (!allProperties.includes(prop)) return {error: `'${escapeHTML(target)}' did not contain a valid property.`}; + if (!allProperties.includes(prop)) return {error: `'${target}' did not contain a valid property.`}; sort = `${prop}${target.endsWith(' asc') ? '+' : '-'}`; orGroup.skip = true; break; @@ -1499,7 +1647,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st if (inequalityString.startsWith('<')) directions.push('less'); if (inequalityString.startsWith('>')) directions.push('greater'); } else { - return {error: `No value given to compare with '${escapeHTML(target)}'.`}; + return {error: `No value given to compare with '${target}'.`}; } if (inequalityString.endsWith('=')) directions.push('equal'); switch (toID(prop)) { @@ -1508,7 +1656,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st case 'power': prop = 'basePower'; break; case 'acc': prop = 'accuracy'; break; } - if (!allProperties.includes(prop)) return {error: `'${escapeHTML(target)}' did not contain a valid property.`}; + if (!allProperties.includes(prop)) return {error: `'${target}' did not contain a valid property.`}; if (!orGroup.property[prop]) orGroup.property[prop] = Object.create(null); for (const direction of directions) { if (orGroup.property[prop][direction]) return {error: `Invalid property range for ${prop}.`}; @@ -1552,7 +1700,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st case 'evasiveness': target = 'evasion'; break; default: target = target.substr(7); } - if (!allBoosts.includes(target)) return {error: `'${escapeHTML(target)}' is not a recognized stat.`}; + if (!allBoosts.includes(target)) return {error: `'${target}' is not a recognized stat.`}; if (isBoost) { if ((orGroup.boost[target] && isNotSearch) || (orGroup.boost[target] === false && !isNotSearch)) { return {error: 'A search cannot both exclude and include a stat boost.'}; @@ -1580,7 +1728,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st case 'evasiveness': target = 'evasion'; break; default: target = target.substr(8); } - if (!allBoosts.includes(target)) return {error: `'${escapeHTML(target)}' is not a recognized stat.`}; + if (!allBoosts.includes(target)) return {error: `'${target}' is not a recognized stat.`}; if ((orGroup.zboost[target] && isNotSearch) || (orGroup.zboost[target] === false && !isNotSearch)) { return {error: 'A search cannot both exclude and include a stat boost.'}; } @@ -1621,7 +1769,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st continue; } - return {error: `'${escapeHTML(oldTarget)}' could not be found in any of the search categories.`}; + return {error: `'${oldTarget}' could not be found in any of the search categories.`}; } if (!orGroup.skip) { searches.push(orGroup); @@ -1633,47 +1781,12 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st }; } - const getFullLearnsetOfPokemon = (species: Species, natDex: boolean) => { - let usedSpecies: Species = Utils.deepClone(species); - let usedSpeciesLearnset: LearnsetData = Utils.deepClone(mod.species.getLearnset(usedSpecies.id)); - if (!usedSpeciesLearnset) { - usedSpecies = Utils.deepClone(mod.species.get(usedSpecies.baseSpecies)); - usedSpeciesLearnset = Utils.deepClone(mod.species.getLearnset(usedSpecies.id) || {}); - } - const lsetData = new Set(); - for (const move in usedSpeciesLearnset) { - const learnset = mod.species.getLearnset(usedSpecies.id); - if (!learnset) break; - const sources = learnset[move]; - for (const learned of sources) { - const sourceGen = parseInt(learned.charAt(0)); - if (sourceGen <= mod.gen && (mod.gen < 9 || sourceGen >= 9 || natDex)) lsetData.add(move); - } - } - - while (usedSpecies.prevo) { - usedSpecies = Utils.deepClone(mod.species.get(usedSpecies.prevo)); - usedSpeciesLearnset = Utils.deepClone(mod.species.getLearnset(usedSpecies.id)); - for (const move in usedSpeciesLearnset) { - const learnset = mod.species.getLearnset(usedSpecies.id); - if (!learnset) break; - const sources = learnset[move]; - for (const learned of sources) { - const sourceGen = parseInt(learned.charAt(0)); - if (sourceGen <= mod.gen && (mod.gen < 9 || sourceGen === 9 || natDex)) lsetData.add(move); - } - } - } - - return lsetData; - }; - // Since we assume we have no target mons at first // then the valid moveset we can search is the set of all moves. - const validMoves = new Set(Object.keys(mod.data.Moves)); + const validMoves = new Set(Object.keys(mod.data.Moves)) as Set; for (const mon of targetMons) { const species = mod.species.get(mon.name); - const lsetData = getFullLearnsetOfPokemon(species, !!nationalSearch); + const lsetData = mod.species.getMovePool(species.id, !!nationalSearch); // This pokemon's learnset needs to be excluded, so we perform a difference operation // on the valid moveset and this pokemon's moveset. if (mon.shouldBeExcluded) { @@ -1699,7 +1812,8 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st if (move.gen <= mod.gen) { if ( (!nationalSearch && move.isNonstandard && move.isNonstandard !== "Gigantamax") || - (nationalSearch && move.isNonstandard && !["Gigantamax", "Past"].includes(move.isNonstandard)) + (nationalSearch && move.isNonstandard && !["Gigantamax", "Past", "Unobtainable"].includes(move.isNonstandard)) || + (move.isMax && mod.gen !== 8) ) { continue; } else { @@ -1936,7 +2050,7 @@ function runMovesearch(target: string, cmd: string, canAll: boolean, message: st if (targetMons.length) { resultsStr += `Matching moves found in learnset(s) for ${targetMons.map(mon => `${mon.shouldBeExcluded ? "!" : ""}${mon.name}`).join(', ')}:
`; } else { - resultsStr += (message === "" ? message : `${escapeHTML(message)}:
`); + resultsStr += (message === "" ? message : `${Utils.escapeHTML(message)}:
`); } if (randomOutput && randomOutput < results.length) { results = Utils.shuffle(results).slice(0, randomOutput); @@ -1978,16 +2092,25 @@ function runItemsearch(target: string, cmd: string, canAll: boolean, message: st let showAll = false; let maxGen = 0; let gen = 0; + let randomOutput = 0; - target = target.trim(); - const lastCommaIndex = target.lastIndexOf(','); - const lastArgumentSubstr = target.substr(lastCommaIndex + 1).trim(); - if (lastArgumentSubstr === 'all') { + const targetSplit = target.split(','); + if (targetSplit[targetSplit.length - 1].trim() === 'all') { if (!canAll) return {error: "A search ending in ', all' cannot be broadcast."}; showAll = true; - target = target.substr(0, lastCommaIndex); + targetSplit.pop(); } + const sanitizedTargets = []; + for (const index of targetSplit.keys()) { + const localTarget = targetSplit[index].trim(); + if (localTarget.startsWith('random') && cmd === 'randitem') { + randomOutput = parseInt(localTarget.substr(6)); + } else { + sanitizedTargets.push(localTarget); + } + } + target = sanitizedTargets.join(','); target = target.toLowerCase().replace('-', ' ').replace(/[^a-z0-9.\s/]/g, ''); const rawSearch = target.replace(/(max ?)?gen \d/g, match => toID(match)).split(' '); const searchedWords: string[] = []; @@ -2085,7 +2208,7 @@ function runItemsearch(target: string, cmd: string, canAll: boolean, message: st searchedWords.push(newWord); } - if (searchedWords.length === 0 && !gen && !maxGen) { + if (searchedWords.length === 0 && !gen && !maxGen && randomOutput === 0) { return {error: "No distinguishing words were used. Try a more specific search."}; } @@ -2205,7 +2328,27 @@ function runItemsearch(target: string, cmd: string, canAll: boolean, message: st } } - let resultsStr = (message === "" ? message : `${escapeHTML(message)}:
`); + let resultsStr = (message === "" ? message : `${Utils.escapeHTML(message)}:
`); + if (randomOutput !== 0) { + const randomItems = []; + if (foundItems.length === 0) { + for (let i = 0; i < randomOutput; i++) { + randomItems.push(dex.items.all()[Math.floor(Math.random() * dex.items.all().length)]); + } + } else { + if (foundItems.length < randomOutput) { + randomOutput = foundItems.length; + } + for (let i = 0; i < randomOutput; i++) { + randomItems.push(foundItems[Math.floor(Math.random() * foundItems.length)]); + } + } + resultsStr += randomItems.map( + result => `${result}` + ).join(", "); + return {reply: resultsStr}; + } + if (foundItems.length > 0) { foundItems.sort(); let notShown = 0; @@ -2230,16 +2373,28 @@ function runAbilitysearch(target: string, cmd: string, canAll: boolean, message: let showAll = false; let maxGen = 0; let gen = 0; + let randomOutput = 0; - target = target.trim(); - const lastCommaIndex = target.lastIndexOf(','); - const lastArgumentSubstr = target.substr(lastCommaIndex + 1).trim(); - if (lastArgumentSubstr === 'all') { + const targetSplit = target.split(','); + if (targetSplit[targetSplit.length - 1].trim() === 'all') { if (!canAll) return {error: "A search ending in ', all' cannot be broadcast."}; showAll = true; - target = target.substr(0, lastCommaIndex); + targetSplit.pop(); } + const sanitizedTargets = []; + for (const index of targetSplit.keys()) { + const localTarget = targetSplit[index].trim(); + // Check if the target contains "random". + if (localTarget.startsWith('random') && cmd === 'randability') { + // Validation for this is in the /randpoke command + randomOutput = parseInt(localTarget.substr(6)); + } else { + sanitizedTargets.push(localTarget); + } + } + target = sanitizedTargets.join(','); + target = target.toLowerCase().replace('-', ' ').replace(/[^a-z0-9.\s/]/g, ''); const rawSearch = target.replace(/(max ?)?gen \d/g, match => toID(match)).split(' '); const searchedWords: string[] = []; @@ -2317,7 +2472,7 @@ function runAbilitysearch(target: string, cmd: string, canAll: boolean, message: searchedWords.push(newWord); } - if (searchedWords.length === 0 && !gen && !maxGen) { + if (searchedWords.length === 0 && !gen && !maxGen && randomOutput === 0) { return {error: "No distinguishing words were used. Try a more specific search."}; } @@ -2356,7 +2511,32 @@ function runAbilitysearch(target: string, cmd: string, canAll: boolean, message: } if (foundAbilities.length === 1) return {dt: foundAbilities[0]}; - let resultsStr = (message === "" ? message : `${escapeHTML(message)}:
`); + let resultsStr = (message === "" ? message : `${Utils.escapeHTML(message)}:
`); + + if (randomOutput !== 0) { + const randomAbilities = []; + // If there are no results, we still want to return a random ability. + if (foundAbilities.length === 0) { + // Fetch random abilities. + for (let i = 0; i < randomOutput; i++) { + randomAbilities.push(Dex.abilities.all()[Math.floor(Math.random() * Dex.abilities.all().length)]); + } + } else { + // Return random abilities. + // If there are less found abilities than the number of random abilities requested, return all found abilities. + if (foundAbilities.length < randomOutput) { + randomOutput = foundAbilities.length; + } + for (let i = 0; i < randomOutput; i++) { + randomAbilities.push(foundAbilities[Math.floor(Math.random() * foundAbilities.length)]); + } + } + resultsStr += randomAbilities.map( + result => `${result}` + ).join(", "); + return {reply: resultsStr}; + } + if (foundAbilities.length > 0) { foundAbilities.sort(); let notShown = 0; @@ -2386,7 +2566,7 @@ function runLearn(target: string, cmd: string, canAll: boolean, formatid: string while (targets.length) { const targetid = toID(targets[0]); if (targetid === 'pentagon') { - if (format.exists) { + if (format.effectType === 'Format') { return {error: "'pentagon' can't be used with formats."}; } minSourceGen = 6; @@ -2394,7 +2574,7 @@ function runLearn(target: string, cmd: string, canAll: boolean, formatid: string continue; } if (targetid.startsWith('minsourcegen')) { - if (format.exists) { + if (format.effectType === 'Format') { return {error: "'min source gen' can't be used with formats."}; } minSourceGen = parseInt(targetid.slice(12)); @@ -2410,18 +2590,21 @@ function runLearn(target: string, cmd: string, canAll: boolean, formatid: string break; } let gen; - if (!format.exists) { + if (format.effectType !== 'Format') { + if (!(formatid in Dex.dexes)) { + // can happen if you hotpatch formats without hotpatching chat + return {error: `"${formatid}" is not a supported format.`}; + } const dex = Dex.mod(formatid).includeData(); - // can happen if you hotpatch formats without hotpatching chat - if (!dex) return {error: `"${formatid}" is not a supported format.`}; - gen = dex.gen; - format = new Dex.Format({mod: formatid}); formatName = `Gen ${gen}`; + format = new Dex.Format({mod: formatid, effectType: 'Format', exists: true}); + const ruleTable = dex.formats.getRuleTable(format); if (minSourceGen) { formatName += ` (Min Source Gen = ${minSourceGen})`; - const ruleTable = dex.formats.getRuleTable(format); ruleTable.minSourceGen = minSourceGen; + } else if (gen >= 9) { + ruleTable.minSourceGen = gen; } } else { gen = Dex.forFormat(format).gen; @@ -2557,8 +2740,48 @@ function runLearn(target: string, cmd: string, canAll: boolean, formatid: string return {reply: buffer}; } -function runSearch(query: {target: string, cmd: string, canAll: boolean, message: string}) { - return PM.query(query); +function runSearch(query: {target: string, cmd: string, canAll: boolean, message: string}, user?: User) { + if (user) { + if (user.lastCommand.startsWith('/datasearch ')) { + throw new Chat.ErrorMessage( + `You already have a datasearch query pending. Wait until it's complete before running another.` + ); + } + user.lastCommand = `/datasearch ${query.cmd}`; + } + return PM.query(query).finally(() => { + if (user) { + user.lastCommand = ''; + } + }); +} + +function runRandtype(target: string, cmd: string, canAll: boolean, message: string) { + const icon: any = {}; + for (const type of Dex.types.names()) { + icon[type] = ``; + } + let randomOutput = 0; + target = target.trim(); + const targetSplit = target.split(','); + for (const index of targetSplit.keys()) { + const local_target = targetSplit[index].trim(); + // Check if the target contains "random". + if (local_target.startsWith('random') && cmd === 'randtype') { + // Validation for this is in the /randpoke command + randomOutput = parseInt(local_target.substr(6)); + } + } + const randTypes = []; + for (let i = 0; i < randomOutput; i++) { + // Add a random type to the output. + randTypes.push(Dex.types.names()[Math.floor(Math.random() * Dex.types.names().length)]); + } + let resultsStr = (message === "" ? message : `${Utils.escapeHTML(message)}:
`); + resultsStr += randTypes.map( + type => icon[type] + ).join(' '); + return {reply: resultsStr}; } /********************************************************* @@ -2577,12 +2800,16 @@ export const PM = new ProcessManager.QueryProcessManager(m case 'randmove': case 'movesearch': return runMovesearch(query.target, query.cmd, query.canAll, query.message, false); + case 'randitem': case 'itemsearch': return runItemsearch(query.target, query.cmd, query.canAll, query.message); + case 'randability': case 'abilitysearch': return runAbilitysearch(query.target, query.cmd, query.canAll, query.message); case 'learn': return runLearn(query.target, query.cmd, query.canAll, query.message); + case 'randtype': + return runRandtype(query.target, query.cmd, query.canAll, query.message); default: throw new Error(`Unrecognized Dexsearch command "${query.cmd}"`); } diff --git a/server/chat-plugins/friends.ts b/server/chat-plugins/friends.ts index 9c101e72b216..d8d43c8a2520 100644 --- a/server/chat-plugins/friends.ts +++ b/server/chat-plugins/friends.ts @@ -58,7 +58,7 @@ export const Friends = new class { for (const f of friends) { const curUser = Users.getExact(f.friend); if (curUser?.settings.allowFriendNotifications) { - curUser.send(`|pm|&|${curUser.getIdentity()}|${message}`); + curUser.send(`|pm|~|${curUser.getIdentity()}|${message}`); } } } @@ -88,15 +88,17 @@ export const Friends = new class { .filter(item => categorized[item].length > 0) .map(item => `${STATUS_TITLES[item]} (${categorized[item].length})`); - let buf = `

Your friends: `; + let buf = `

Your friends: `; if (sorted.length > 0) { - buf += `Total (${friends.length}) | ${sorted.join(' | ')}`; + buf += ` Total (${friends.length}) | ${sorted.join(' | ')}

`; } else { buf += `

you have no friends added on Showdown lol


`; buf += `To add a friend, use /friend add [username].

`; return buf; } - buf += ` `; + + buf += `
Add friend:
`; + buf += `
`; for (const key in categorized) { const friendArray = categorized[key].sort(); @@ -143,9 +145,7 @@ export const Friends = new class { buf += `On an alternate account
`; } if (login && typeof login === 'number' && !user?.connected) { - // THIS IS A TERRIBLE HACK BUT IT WORKS OKAY - const time = Chat.toTimestamp(new Date(Number(login)), {human: true}); - buf += `Last seen: ${time.split(' ').reverse().join(', on ')}`; + buf += `Last seen: `; buf += ` (${Chat.toDurationString(Date.now() - login, {precision: 1})} ago)`; } else if (typeof login === 'string') { buf += `${login}`; diff --git a/server/chat-plugins/github.ts b/server/chat-plugins/github.ts index 3acd015a17de..3239dbac4d3d 100644 --- a/server/chat-plugins/github.ts +++ b/server/chat-plugins/github.ts @@ -238,11 +238,11 @@ export const commands: Chat.ChatCommands = { }, }, githubhelp: [ - `/github ban [username], [reason] - Bans a GitHub user from having their GitHub actions reported to Dev room. Requires: % @ # &`, - `/github unban [username] - Unbans a GitHub user from having their GitHub actions reported to Dev room. Requires: % @ # &`, - `/github bans - Lists all GitHub users that are currently gitbanned. Requires: % @ # &`, - `/github setname [username], [name] - Sets a GitHub user's name on reported GitHub actions to be [name]. Requires: % @ # &`, - `/github clearname [username] - Removes a GitHub user's name from the GitHub username list. Requires: % @ # &`, + `/github ban [username], [reason] - Bans a GitHub user from having their GitHub actions reported to Dev room. Requires: % @ # ~`, + `/github unban [username] - Unbans a GitHub user from having their GitHub actions reported to Dev room. Requires: % @ # ~`, + `/github bans - Lists all GitHub users that are currently gitbanned. Requires: % @ # ~`, + `/github setname [username], [name] - Sets a GitHub user's name on reported GitHub actions to be [name]. Requires: % @ # ~`, + `/github clearname [username] - Removes a GitHub user's name from the GitHub username list. Requires: % @ # ~`, `/github names - Lists all GitHub usernames that are currently on our list.`, ], }; diff --git a/server/chat-plugins/hangman.ts b/server/chat-plugins/hangman.ts index f7d17561bf17..ecc9c3cf2b07 100644 --- a/server/chat-plugins/hangman.ts +++ b/server/chat-plugins/hangman.ts @@ -45,6 +45,7 @@ try { const maxMistakes = 6; export class Hangman extends Rooms.SimpleRoomGame { + override readonly gameid = 'hangman' as ID; gameNumber: number; creator: ID; word: string; @@ -69,7 +70,6 @@ export class Hangman extends Rooms.SimpleRoomGame { this.gameNumber = room.nextGameNumber(); - this.gameid = 'hangman' as ID; this.title = 'Hangman'; this.creator = user.id; this.word = word; @@ -341,7 +341,7 @@ export const commands: Chat.ChatCommands = { this.modlog('HANGMAN'); return this.addModAction(`A game of hangman was started by ${user.name} – use /guess to play!`); }, - createhelp: ["/hangman create [word], [hint] - Makes a new hangman game. Requires: % @ # &"], + createhelp: ["/hangman create [word], [hint] - Makes a new hangman game. Requires: % @ # ~"], guess(target, room, user) { const word = this.filter(target); @@ -363,7 +363,7 @@ export const commands: Chat.ChatCommands = { this.modlog('ENDHANGMAN'); return this.privateModAction(`The game of hangman was ended by ${user.name}.`); }, - endhelp: ["/hangman end - Ends the game of hangman before the man is hanged or word is guessed. Requires: % @ # &"], + endhelp: ["/hangman end - Ends the game of hangman before the man is hanged or word is guessed. Requires: % @ # ~"], disable(target, room, user) { room = this.requireRoom(); @@ -553,20 +553,20 @@ export const commands: Chat.ChatCommands = { hangmanhelp: [ `/hangman allows users to play the popular game hangman in PS rooms.`, `Accepts the following commands:`, - `/hangman create [word], [hint] - Makes a new hangman game. Requires: % @ # &`, + `/hangman create [word], [hint] - Makes a new hangman game. Requires: % @ # ~`, `/hangman guess [letter] - Makes a guess for the letter entered.`, `/hangman guess [word] - Same as a letter, but guesses an entire word.`, `/hangman display - Displays the game.`, - `/hangman end - Ends the game of hangman before the man is hanged or word is guessed. Requires: % @ # &`, - `/hangman [enable/disable] - Enables or disables hangman from being started in a room. Requires: # &`, + `/hangman end - Ends the game of hangman before the man is hanged or word is guessed. Requires: % @ # ~`, + `/hangman [enable/disable] - Enables or disables hangman from being started in a room. Requires: # ~`, `/hangman random [tag]- Runs a random hangman, if the room has any added. `, - `If a tag is given, randomizes from only terms with those tags. Requires: % @ # &`, - `/hangman addrandom [word], [...hints] - Adds an entry for [word] with the [hints] provided to the room's hangman pool. Requires: % @ # &`, + `If a tag is given, randomizes from only terms with those tags. Requires: % @ # ~`, + `/hangman addrandom [word], [...hints] - Adds an entry for [word] with the [hints] provided to the room's hangman pool. Requires: % @ # ~`, `/hangman removerandom [word][, hints] - Removes data from the hangman entry for [word]. If hints are given, removes only those hints.` + - ` Otherwise it removes the entire entry. Requires: % @ & #`, - `/hangman addtag [word], [...tags] - Adds tags to the hangman term matching [word]. Requires: % @ & #`, + ` Otherwise it removes the entire entry. Requires: % @ ~ #`, + `/hangman addtag [word], [...tags] - Adds tags to the hangman term matching [word]. Requires: % @ ~ #`, `/hangman untag [term][, ...tags] - Removes tags from the hangman [term]. If tags are given, removes only those tags. Requires: % @ # * `, - `/hangman terms - Displays all random hangman in a room. Requires: % @ # &`, + `/hangman terms - Displays all random hangman in a room. Requires: % @ # ~`, ], }; diff --git a/server/chat-plugins/helptickets-auto.ts b/server/chat-plugins/helptickets-auto.ts index 1515c49eec71..9f8e56988ba4 100644 --- a/server/chat-plugins/helptickets-auto.ts +++ b/server/chat-plugins/helptickets-auto.ts @@ -122,7 +122,7 @@ export function globalModlog(action: string, user: User | ID | null, note: strin } export function addModAction(message: string) { - Rooms.get('staff')?.add(`|c|&|/log ${message}`).update(); + Rooms.get('staff')?.add(`|c|~|/log ${message}`).update(); } export async function getModlog(params: {user?: ID, ip?: string, actions?: string[]}) { @@ -518,7 +518,7 @@ export async function runPunishments(ticket: TicketState & {text: [string, strin ticket.recommended = []; for (const res of result.values()) { Rooms.get('abuselog')?.add( - `|c|&|/log [${ticket.type} Monitor] Recommended: ${res.action}: for ${res.user} (${res.reason})` + `|c|~|/log [${ticket.type} Monitor] Recommended: ${res.action}: for ${res.user} (${res.reason})` ).update(); ticket.recommended.push(`${res.action}: for ${res.user} (${res.reason})`); } @@ -719,11 +719,11 @@ export const commands: Chat.ChatCommands = { }, }, autohelptickethelp: [ - `/aht addpunishment [args] - Adds a punishment with the given [args]. Requires: whitelist &`, - `/aht deletepunishment [index] - Deletes the automatic helpticket punishment at [index]. Requires: whitelist &`, - `/aht viewpunishments - View automatic helpticket punishments. Requires: whitelist &`, - `/aht togglepunishments [on | off] - Turn [on | off] automatic helpticket punishments. Requires: whitelist &`, - `/aht stats - View success rates of the Artemis ticket handler. Requires: whitelist &`, + `/aht addpunishment [args] - Adds a punishment with the given [args]. Requires: whitelist ~`, + `/aht deletepunishment [index] - Deletes the automatic helpticket punishment at [index]. Requires: whitelist ~`, + `/aht viewpunishments - View automatic helpticket punishments. Requires: whitelist ~`, + `/aht togglepunishments [on | off] - Turn [on | off] automatic helpticket punishments. Requires: whitelist ~`, + `/aht stats - View success rates of the Artemis ticket handler. Requires: whitelist ~`, ], }; @@ -786,7 +786,7 @@ export const pages: Chat.PageTable = { data += `${cur.successes} (${percent(cur.successes, cur.total)}%)`; if (cur.failures) { data += ` | ${cur.failures} (${percent(cur.failures, cur.total)}%)`; - } else { // so one cannot confuse dead tickets & false hit tickets + } else { // so one cannot confuse dead tickets ~ false hit tickets data += ' | 0 (0%)'; } data += ''; diff --git a/server/chat-plugins/helptickets.ts b/server/chat-plugins/helptickets.ts index 93646e476da5..57bf3935eb35 100644 --- a/server/chat-plugins/helptickets.ts +++ b/server/chat-plugins/helptickets.ts @@ -169,48 +169,41 @@ export function writeStats(line: string) { const date = new Date(); const month = Chat.toTimestamp(date).split(' ')[0].split('-', 2).join('-'); try { - FS(`logs/tickets/${month}.tsv`).appendSync(line + '\n'); + Monitor.logPath(`tickets/${month}.tsv`).appendSync(line + '\n'); } catch (e: any) { if (e.code !== 'ENOENT') throw e; } } export class HelpTicket extends Rooms.SimpleRoomGame { - room: ChatRoom; + override readonly gameid = "helpticket" as ID; + override readonly allowRenames = true; + override room: ChatRoom; ticket: TicketState; claimQueue: string[]; - involvedStaff: Set; + involvedStaff = new Set(); createTime: number; activationTime: number; - emptyRoom: boolean; - firstClaimTime: number; - unclaimedTime: number; + emptyRoom = false; + firstClaimTime = 0; + unclaimedTime = 0; lastUnclaimedStart: number; - closeTime: number; - resolution: 'unknown' | 'dead' | 'unresolved' | 'resolved'; - result: TicketResult | null; + closeTime = 0; + resolution: 'unknown' | 'dead' | 'unresolved' | 'resolved' = 'unknown'; + result: TicketResult | null = null; constructor(room: ChatRoom, ticket: TicketState) { super(room); this.room = room; this.room.settings.language = Users.get(ticket.creator)?.language || 'english' as ID; this.title = `Help Ticket - ${ticket.type}`; - this.gameid = "helpticket" as ID; - this.allowRenames = true; this.ticket = ticket; this.claimQueue = []; /* Stats */ - this.involvedStaff = new Set(); this.createTime = Date.now(); this.activationTime = (ticket.active ? this.createTime : 0); - this.emptyRoom = false; - this.firstClaimTime = 0; - this.unclaimedTime = 0; this.lastUnclaimedStart = (ticket.active ? this.createTime : 0); - this.closeTime = 0; - this.resolution = 'unknown'; - this.result = null; } onJoin(user: User, connection: Connection) { @@ -293,8 +286,8 @@ export class HelpTicket extends Rooms.SimpleRoomGame { if ( (!user.isStaff || this.ticket.userid === user.id) && (message.length < 3 || blockedMessages.includes(toID(message))) ) { - this.room.add(`|c|&Staff|${this.room.tr`Hello! The global staff team would be happy to help you, but you need to explain what's going on first.`}`); - this.room.add(`|c|&Staff|${this.room.tr`Please post the information I requested above so a global staff member can come to help.`}`); + this.room.add(`|c|~Staff|${this.room.tr`Hello! The global staff team would be happy to help you, but you need to explain what's going on first.`}`); + this.room.add(`|c|~Staff|${this.room.tr`Please post the information I requested above so a global staff member can come to help.`}`); this.room.update(); return false; } @@ -303,11 +296,11 @@ export class HelpTicket extends Rooms.SimpleRoomGame { this.activationTime = Date.now(); if (!this.ticket.claimed) this.lastUnclaimedStart = Date.now(); notifyStaff(); - this.room.add(`|c|&Staff|${this.room.tr`Thank you for the information, global staff will be here shortly. Please stay in the room.`}`).update(); + this.room.add(`|c|~Staff|${this.room.tr`Thank you for the information, global staff will be here shortly. Please stay in the room.`}`).update(); switch (this.ticket.type) { case 'PM Harassment': this.room.add( - `|c|&Staff|Global staff might take more than a few minutes to handle your report. ` + + `|c|~Staff|Global staff might take more than a few minutes to handle your report. ` + `If you are being disturbed by another user, you can type \`\`/ignore [username]\`\` in any chat to ignore their messages immediately` ).update(); break; @@ -318,7 +311,7 @@ export class HelpTicket extends Rooms.SimpleRoomGame { forfeit(user: User) { if (!(user.id in this.playerTable)) return; - this.removePlayer(user); + this.removePlayer(this.playerTable[user.id]); if (!this.ticket.open) return; this.room.modlog({action: 'TICKETABANDON', isGlobal: false, loggedBy: user.id}); this.addText(`${user.name} is no longer interested in this ticket.`, user); @@ -337,7 +330,7 @@ export class HelpTicket extends Rooms.SimpleRoomGame { } getButton() { - const color = this.ticket.claimed ? `` : this.ticket.offline ? `notifying subtle` : `notifying`; + const color = this.ticket.claimed ? `` : this.ticket.offline ? `alt-notifying` : `notifying`; const creator = ( this.ticket.claimed ? Utils.html`${this.ticket.creator}` : Utils.html`${this.ticket.creator}` ); @@ -477,15 +470,11 @@ export class HelpTicket extends Rooms.SimpleRoomGame { } this.room.game = null; - // @ts-ignore - this.room = null; - for (const player of this.players) { - player.destroy(); - } - // @ts-ignore - this.players = null; - // @ts-ignore - this.playerTable = null; + (this.room as any) = null; + this.setEnded(); + for (const player of this.players) player.destroy(); + (this.players as any) = null; + (this.playerTable as any) = null; } onChatMessage(message: string, user: User) { HelpTicket.uploadReplaysFrom(message, user, user.connections[0]); @@ -517,7 +506,7 @@ export class HelpTicket extends Rooms.SimpleRoomGame { recommended: ticket.recommended, }; const date = Chat.toTimestamp(new Date()).split(' ')[0]; - void FS(`logs/tickets/${date.slice(0, -3)}.jsonl`).append(JSON.stringify(entry) + '\n'); + void Monitor.logPath(`tickets/${date.slice(0, -3)}.jsonl`).append(JSON.stringify(entry) + '\n'); } /** @@ -543,7 +532,7 @@ export class HelpTicket extends Rooms.SimpleRoomGame { let lines; try { lines = await ProcessManager.exec([ - `rg`, FS(`logs/tickets/${date ? `${date}.jsonl` : ''}`).path, ...args, + `rg`, Monitor.logPath(`tickets/${date ? `${date}.jsonl` : ''}`).path, ...args, ]); } catch (e: any) { if (e.message.includes('No such file or directory')) { @@ -563,7 +552,7 @@ export class HelpTicket extends Rooms.SimpleRoomGame { } } else { if (!date) throw new Chat.ErrorMessage(`Specify a month.`); - const path = FS(`logs/tickets/${date}.jsonl`); + const path = Monitor.logPath(`tickets/${date}.jsonl`); if (!path.existsSync()) { throw new Chat.ErrorMessage(`There are no logs for the month "${date}".`); } @@ -714,12 +703,12 @@ export class HelpTicket extends Rooms.SimpleRoomGame { const {result, time, by, seen, note} = ticket.resolved as ResolvedTicketInfo; if (seen) return; const timeString = (Date.now() - time) > 1000 ? `, ${Chat.toDurationString(Date.now() - time)} ago.` : '.'; - user.send(`|pm|&Staff|${user.getIdentity()}|Hello! Your report was resolved by ${by}${timeString}`); + user.send(`|pm|~Staff|${user.getIdentity()}|Hello! Your report was resolved by ${by}${timeString}`); if (result?.trim()) { - user.send(`|pm|&Staff|${user.getIdentity()}|The result was "${result}"`); + user.send(`|pm|~Staff|${user.getIdentity()}|The result was "${result}"`); } if (note?.trim()) { - user.send(`|pm|&Staff|${user.getIdentity()}|/raw ${note}`); + user.send(`|pm|~Staff|${user.getIdentity()}|/raw ${note}`); } tickets[userid].resolved!.seen = true; writeTickets(); @@ -770,7 +759,7 @@ function notifyUnclaimedTicket(hasAssistRequest: boolean) { if (ticket.needsDelayWarning && !ticket.claimed && delayWarnings[ticket.type]) { ticketRoom.add( - `|c|&Staff|${ticketRoom.tr(delayWarningPreamble)}${ticketRoom.tr(delayWarnings[ticket.type])}` + `|c|~Staff|${ticketRoom.tr(delayWarningPreamble)}${ticketRoom.tr(delayWarnings[ticket.type])}` ).update(); ticket.needsDelayWarning = false; } @@ -920,13 +909,9 @@ export async function getOpponent(link: string, submitter: ID): Promise { const battleRoom = Rooms.get(battle); const seenPokemon = new Set(); - if (battleRoom && battleRoom.type !== 'chat') { - const playerTable: Partial = {}; - const monTable: BattleInfo['pokemon'] = {}; - // i kinda hate this, but this will always be accurate to the battle players. - // consulting room.battle.playerTable might be invalid (if battle is over), etc. - for (const line of battleRoom.log.log) { - // |switch|p2a: badnite|Dragonite, M|323/323 - if (line.startsWith('|switch|')) { // name cannot have been seen until it switches in + let data: {log: string, players: string[]} | null = null; + // try battle room first + if (battleRoom && battleRoom.type !== 'chat' && battleRoom.battle) { + data = { + log: battleRoom.log.log.join('\n'), + players: battleRoom.battle.players.map(x => x.id), + }; + } else { // fall back to replay + if (noReplay) return null; + battle = battle.replace(`battle-`, ''); // don't wanna strip passwords + + if (Rooms.Replays.db) { // direct conn exists, use it + if (battle.endsWith('pw')) { + battle = battle.slice(0, battle.lastIndexOf("-", battle.length - 2)); + } + data = await Rooms.Replays.get(battle); + } else { + // call out to API + try { + const raw = await Net(`https://${Config.routes.replays}/${battle}.json`).get(); + data = JSON.parse(raw); + } catch {} + } + } + + // parse + if (data?.log?.length) { + const log = data.log.split('\n'); + const players: BattleInfo['players'] = {} as any; + for (const [i, id] of data.players.entries()) { + players[`p${i + 1}` as SideID] = toID(id); + } + const chat = []; + const mons: BattleInfo['pokemon'] = {}; + for (const line of log) { + if (line.startsWith('|c|')) { + chat.push(line); + } else if (line.startsWith('|switch|')) { const [, , playerWithNick, speciesWithGender] = line.split('|'); - let [slot, name] = playerWithNick.split(':'); const species = speciesWithGender.split(',')[0].trim(); // should always exist + let [slot, name] = playerWithNick.split(':'); slot = slot.slice(0, -1); // p2a -> p2 - if (!monTable[slot]) monTable[slot] = []; - const identifier = `${name || ""}-${species}`; - if (seenPokemon.has(identifier)) continue; - // technically, if several mons have the same name and species, this will ignore them. - // BUT if they have the same name and species we only need to see it once - // so it doesn't matter - seenPokemon.add(identifier); + // safe to not check here bc this should always exist in the players table. + // if it doesn't, there's a problem + const id = players[slot as SideID] as string; + if (!mons[id]) mons[id] = []; name = name?.trim() || ""; - monTable[slot].push({ - species, - name: species === name ? undefined : name, + const setId = `${name || ""}-${species}`; + if (seenPokemon.has(setId)) continue; + seenPokemon.add(setId); + mons[id].push({ + species, // don't want to see a name if it's the same as the species + name: name === species ? undefined : name, }); } - if (line.startsWith('|player|')) { - // |player|p1|Mia|miapi.png|1000 - const [, , playerSlot, name] = line.split('|'); - playerTable[playerSlot as SideID] = toID(name); - } - for (const k in monTable) { - // SideID => userID, cannot do conversion at time of collection - // because the playerID => userid mapping might not be there. - // strictly, yes it will, but this is for maximum safety. - const userid = playerTable[k as SideID]; - if (userid) { - monTable[userid] = monTable[k]; - delete monTable[k]; - } - } } return { - log: battleRoom.log.log.filter(k => k.startsWith('|c|')), - title: battleRoom.title, - url: `/${battle}`, - players: playerTable as BattleInfo['players'], - pokemon: monTable, + log: chat, + title: `${players.p1} vs ${players.p2}`, + url: `https://${Config.routes.replays}/${battle}`, + players, + pokemon: mons, }; } - if (noReplay) return null; - battle = battle.replace(`battle-`, ''); // don't wanna strip passwords - try { - const raw = await Net(`https://${Config.routes.replays}/${battle}.json`).get(); - const data = JSON.parse(raw); - if (data.log?.length) { - const log = data.log.split('\n'); - const players = { - p1: toID(data.p1), - p2: toID(data.p2), - p3: toID(data.p3), - p4: toID(data.p4), - }; - const chat = []; - const mons: BattleInfo['pokemon'] = {}; - for (const line of log) { - if (line.startsWith('|c|')) { - chat.push(line); - } else if (line.startsWith('|switch|')) { - const [, , playerWithNick, speciesWithGender] = line.split('|'); - const species = speciesWithGender.split(',')[0].trim(); // should always exist - let [slot, name] = playerWithNick.split(':'); - slot = slot.slice(0, -1); // p2a -> p2 - // safe to not check here bc this should always exist in the players table. - // if it doesn't, there's a problem - const id = players[slot as SideID]; - if (!mons[id]) mons[id] = []; - name = name?.trim() || ""; - const setId = `${name || ""}-${species}`; - if (seenPokemon.has(setId)) continue; - seenPokemon.add(setId); - mons[id].push({ - species, // don't want to see a name if it's the same as the species - name: name === species ? undefined : name, - }); - } - } - return { - log: chat, - title: `${data.p1} vs ${data.p2}`, - url: `https://${Config.routes.replays}/${battle}`, - players, - pokemon: mons, - }; - } - } catch {} return null; } @@ -1205,7 +1159,7 @@ export const textTickets: {[k: string]: TextTicketInfo} = { ]; const tar = toID(ticket.text[0]); // should always be the reported userid const name = Utils.escapeHTML(Users.getExact(tar)?.name || tar); - buf += `
Reported user: ${name} `; + buf += `
Reported user: ${name} `; buf += `
`; buf += `
`; buf += `Punish ${name} (reported user)`; @@ -1350,30 +1304,28 @@ export const textTickets: {[k: string]: TextTicketInfo} = { buf += `

Battle links given:

`; links = links.filter((url, i) => links.indexOf(url) === i); buf += links.map(uri => Chat.formatText(`<<${uri}>>`)).join(', '); - const battleRooms = links.map(r => Rooms.get(r)).filter(room => room?.battle) as GameRoom[]; - if (battleRooms.length) { - buf += `

Names in given battles:
`; - for (const room of battleRooms) { - const names = []; - for (const id in room.battle!.playerTable) { - const user = Users.get(id); - if (!user) continue; - const team = await room.battle!.getTeam(user); - if (team) { - const teamNames = team.map(p => ( - p.name !== p.species ? Utils.html`${p.name} (${p.species})` : p.species - )); - names.push(`${user.id}: ${teamNames.join(', ')}`); - } - } - if (names.length) { - buf += `${room.title}
`; - buf += names.join('
'); - buf += `
`; + buf += `
Names in given battles:
`; + for (const link of links) { + const names = []; + const roomData = await getBattleLog(link); + if (!roomData) continue; + for (const id of Object.values(roomData.players)) { + const user = Users.get(id)?.name || id; + const team = roomData.pokemon[id]; + if (team) { + const teamNames = team.map(p => ( + p.name !== p.species ? Utils.html`${p.name} (${p.species})` : p.species + )); + names.push(`${user}: ${teamNames.join(', ')}`); } } - buf += `
`; + if (names.length) { + buf += `${roomData.title}
`; + buf += names.join('
'); + buf += `
`; + } } + buf += `
`; return buf; }, onSubmit(ticket, text, submitter, conn) { @@ -1421,7 +1373,14 @@ export const textTickets: {[k: string]: TextTicketInfo} = { const unlockCmd = staff.can('globalban') ? `/unlockip ${ip}` : `Can someone \`\`/unlockip ${ip}\`\` (${data.hostType} host)`; - buf += ``; + buf += `
`; + const marksharedCmd = staff.can('globalban') ? + `/markshared ${ip}, {owner}` : + `Can someone \`\`/markshared ${ip}, {owner}\`\``; + buf += `
`; + buf += ``; + buf += ``; + buf += `
`; } buf += `
`; } @@ -1438,6 +1397,12 @@ export const textTickets: {[k: string]: TextTicketInfo} = { if (!(user.locked || user.namelocked || user.semilocked)) { return ['You are not punished.']; } + if (!user.registered) { + return [ + "Because this account isn't registered (with a password), we cannot verify your identity.", + "Please come back with a different account you've registered in the past.", + ]; + } const punishments = Punishments.search(user.id); const userids = [user.id, ...user.previousIDs]; @@ -1719,11 +1684,8 @@ export const pages: Chat.PageTable = { buf += `

`; break; case 'password': - buf += `

Password resets are currently closed to regular users due to policy revamp and administrative backlog.

`; - buf += `

Users with a public room auth (Voice or higher) and Smogon badgeholders can still get their passwords reset `; - buf += `(see this post for more informations).

`; - buf += `

To those who do not belong to those groups, we apologize for the temporary inconvenience.

`; - buf += `

Thanks for your understanding!

`; + buf += `

If you need your Pokémon Showdown password reset, you can fill out a Password Reset Form.

`; + buf += `

You will need to make a Smogon account to be able to fill out a form.`; break; case 'roomhelp': buf += `

${this.tr`If you are a room driver or up in a public room, and you need help watching the chat, one or more global staff members would be happy to assist you!`}

`; @@ -1876,10 +1838,7 @@ export const pages: Chat.PageTable = { logUrl = `/view-chatlog-help-${ticket.userid}--${Chat.toTimestamp(created).split(' ')[0]}`; } const room = Rooms.get(roomid); - if (room) { - const ticketGame = room.getGame(HelpTicket)!; - buf += ` `; - } else if (ticket.text) { + if (ticket.text) { let title = Object.entries(ticket.notes || {}) .map(([userid, note]) => Utils.html`${note} (by ${userid})`) .join(' '); @@ -1887,6 +1846,9 @@ export const pages: Chat.PageTable = { title = `title="Staff notes: ${title}"`; } buf += `${ticket.claimed ? `Claim` : `View`}`; + } else if (room) { + const ticketGame = room.getGame(HelpTicket)!; + buf += ` `; } if (logUrl) { buf += ``; @@ -1964,7 +1926,15 @@ export const pages: Chat.PageTable = { for (const staff in ticket.notes) { buf += Utils.html`

${ticket.notes[staff]} (by ${staff})

`; } + buf += `
`; + buf += `Add note: `; + buf += `
`; buf += `
`; + } else { + buf += `
`; + buf += `
`; + buf += `Add note: `; + buf += `
`; } if (!ticket.resolved) { @@ -2085,7 +2055,7 @@ export const pages: Chat.PageTable = { } const dateUrl = Chat.toTimestamp(date).split(' ')[0].split('-', 2).join('-'); - const rawTicketStats = FS(`logs/tickets/${dateUrl}.tsv`).readIfExistsSync(); + const rawTicketStats = Monitor.logPath(`tickets/${dateUrl}.tsv`).readIfExistsSync(); if (!rawTicketStats) return `

${this.tr`No ticket stats found.`}
`; // Calculate next/previous month for stats and validate stats exist for the month @@ -2111,13 +2081,13 @@ export const pages: Chat.PageTable = { const nextString = Chat.toTimestamp(nextDate).split(' ')[0].split('-', 2).join('-'); let buttonBar = ''; - if (FS(`logs/tickets/${prevString}.tsv`).readIfExistsSync()) { + if (Monitor.logPath(`tickets/${prevString}.tsv`).readIfExistsSync()) { buttonBar += `< ${this.tr`Previous Month`}`; } else { buttonBar += `< ${this.tr`Previous Month`}`; } buttonBar += `${this.tr`Ticket Stats`} ${this.tr`Staff Stats`}`; - if (FS(`logs/tickets/${nextString}.tsv`).readIfExistsSync()) { + if (Monitor.logPath(`tickets/${nextString}.tsv`).readIfExistsSync()) { buttonBar += `${this.tr`Next Month`} >`; } else { buttonBar += `${this.tr`Next Month`} >`; @@ -2254,7 +2224,6 @@ export const commands: Chat.ChatCommands = { if (!this.runBroadcast()) return; const meta = this.pmTarget ? `-user-${this.pmTarget.id}` : this.room ? `-room-${this.room.roomid}` : ''; if (this.broadcasting) { - if (room?.battle) return this.errorReply(this.tr`This command cannot be broadcast in battles.`); return this.sendReplyBox(``); } @@ -2265,7 +2234,6 @@ export const commands: Chat.ChatCommands = { if (!this.runBroadcast()) return; const meta = this.pmTarget ? `-user-${this.pmTarget.id}` : this.room ? `-room-${this.room.roomid}` : ''; if (this.broadcasting) { - if (room?.battle) return this.errorReply(this.tr`This command cannot be broadcast in battles.`); return this.sendReplyBox(``); } @@ -2375,7 +2343,7 @@ export const commands: Chat.ChatCommands = { const validation = await textTicket.checker?.(text, contextString || '', ticket.type, user, reportTarget); if (Array.isArray(validation) && validation.length) { this.parse(`/join view-${pageId}`); - return this.popupReply(`|html|` + validation.join('||')); + return this.popupReply(`|html|` + validation.join('
')); } ticket.text = [text, contextString]; ticket.active = true; @@ -2504,7 +2472,7 @@ export const commands: Chat.ChatCommands = { break; } if (context) { - helpRoom.add(`|c|&Staff|${this.tr(context)}`); + helpRoom.add(`|c|~Staff|${this.tr(context)}`); helpRoom.update(); } if (pmRequestButton) { @@ -2573,7 +2541,7 @@ export const commands: Chat.ChatCommands = { this.checkCan('lock'); return this.parse('/join view-help-tickets'); }, - listhelp: [`/helpticket list - Lists all tickets. Requires: % @ &`], + listhelp: [`/helpticket list - Lists all tickets. Requires: % @ ~`], inapnames: 'massview', usernames: 'massview', @@ -2592,7 +2560,7 @@ export const commands: Chat.ChatCommands = { this.checkCan('lock'); return this.parse('/join view-help-stats'); }, - statshelp: [`/helpticket stats - List the stats for help tickets. Requires: % @ &`], + statshelp: [`/helpticket stats - List the stats for help tickets. Requires: % @ ~`], note: 'addnote', addnote(target, room, user) { @@ -2616,10 +2584,8 @@ export const commands: Chat.ChatCommands = { this.globalModlog(`HELPTICKET NOTE`, ticket.userid, note); }, addnotehelp: [ - `/helpticket note [ticket userid], [note] - Adds a note to the [ticket], to be displayed in the hover text.`, - `Requires: % @ &`, + `/helpticket note [ticket userid], [note] - Adds a note to the [ticket], to be displayed in the hover text. Requires: % @ ~`, ], - removenote(target, room, user) { this.checkCan('lock'); target = target.trim(); @@ -2649,7 +2615,7 @@ export const commands: Chat.ChatCommands = { removenotehelp: [ `/helpticket removenote [ticket userid], [staff] - Removes a note from the [ticket].`, `If a [staff] userid is given, removes the note from that staff member (defaults to your userid).`, - `Requires: % @ &`, + `Requires: % @ ~`, ], ar: 'addresponse', @@ -2680,7 +2646,7 @@ export const commands: Chat.ChatCommands = { }, addresponsehelp: [ `/helpticket addresponse [type], [name], [response] - Adds a [response] button to the given ticket [type] with the given [name].`, - `Requires: % @ &`, + `Requires: % @ ~`, ], rr: 'removeresponse', @@ -2705,7 +2671,7 @@ export const commands: Chat.ChatCommands = { }, removeresponsehelp: [ `/helpticket removeresponse [type], [name] - Removes the response button with the given [name] from the given ticket [type].`, - `Requires: % @ &`, + `Requires: % @ ~`, ], lr: 'listresponses', @@ -2731,7 +2697,7 @@ export const commands: Chat.ChatCommands = { }, listresponseshelp: [ `/helpticket listresponses [optional type] - List current response buttons for text tickets. `, - `If a [type] is given, lists responses only for that type. Requires: % @ &`, + `If a [type] is given, lists responses only for that type. Requires: % @ ~`, ], close(target, room, user) { @@ -2766,9 +2732,10 @@ export const commands: Chat.ChatCommands = { ticket.claimed = user.name; this.sendReply(`You closed ${ticket.creator}'s ticket.`); }, - closehelp: [`/helpticket close [user] - Closes an open ticket. Requires: % @ &`], + closehelp: [`/helpticket close [user] - Closes an open ticket. Requires: % @ ~`], tb: 'ban', + ticketban: 'ban', async ban(target, room, user) { if (!target) return this.parse('/help helpticket ban'); const {targetUser, targetUsername, rest: reason} = this.splitUser(target, {exactName: true}); @@ -2864,8 +2831,9 @@ export const commands: Chat.ChatCommands = { notifyStaff(); return true; }, - banhelp: [`/helpticket ban [user], (reason) - Bans a user from creating tickets for 2 days. Requires: % @ &`], + banhelp: [`/helpticket ban [user], (reason) - Bans a user from creating tickets for 2 days. Requires: % @ ~`], + unticketban: 'unban', unban(target, room, user) { if (!target) return this.parse('/help helpticket unban'); @@ -2882,7 +2850,7 @@ export const commands: Chat.ChatCommands = { this.globalModlog("UNTICKETBAN", toID(target)); Users.get(target)?.popup(`${user.name} has ticket unbanned you.`); }, - unbanhelp: [`/helpticket unban [user] - Ticket unbans a user. Requires: % @ &`], + unbanhelp: [`/helpticket unban [user] - Ticket unbans a user. Requires: % @ ~`], ignore(target, room, user) { this.checkCan('lock'); @@ -2893,7 +2861,7 @@ export const commands: Chat.ChatCommands = { user.update(); this.sendReply(this.tr`You are now ignoring help ticket notifications.`); }, - ignorehelp: [`/helpticket ignore - Ignore notifications for unclaimed help tickets. Requires: % @ &`], + ignorehelp: [`/helpticket ignore - Ignore notifications for unclaimed help tickets. Requires: % @ ~`], unignore(target, room, user) { this.checkCan('lock'); @@ -2904,7 +2872,7 @@ export const commands: Chat.ChatCommands = { user.update(); this.sendReply(this.tr`You will now receive help ticket notifications.`); }, - unignorehelp: [`/helpticket unignore - Stop ignoring notifications for help tickets. Requires: % @ &`], + unignorehelp: [`/helpticket unignore - Stop ignoring notifications for help tickets. Requires: % @ ~`], delete(target, room, user) { // This is a utility only to be used if something goes wrong @@ -2922,7 +2890,7 @@ export const commands: Chat.ChatCommands = { } this.sendReply(this.tr`You deleted ${target}'s ticket.`); }, - deletehelp: [`/helpticket delete [user] - Deletes a user's ticket. Requires: &`], + deletehelp: [`/helpticket delete [user] - Deletes a user's ticket. Requires: ~`], logs(target, room, user) { this.checkCan('lock'); @@ -2934,7 +2902,7 @@ export const commands: Chat.ChatCommands = { logshelp: [ `/helpticket logs [userid][, month] - View logs of the [userid]'s text tickets. `, `If a [month] is given, searches only that month.`, - `Requires: % @ &`, + `Requires: % @ ~`, ], async private(target, room, user) { @@ -2946,20 +2914,20 @@ export const commands: Chat.ChatCommands = { if (!/[0-9]{4}-[0-9]{2}-[0-9]{2}/.test(date)) { return this.errorReply(`Invalid date (must be YYYY-MM-DD format).`); } - const logPath = FS(`logs/chat/help-${userid}/${date.slice(0, -3)}/${date}.txt`); + const logPath = Monitor.logPath(`chat/help-${userid}/${date.slice(0, -3)}/${date}.txt`); if (!(await logPath.exists())) { return this.errorReply(`There are no logs for tickets from '${userid}' on the date '${date}'.`); } - if (!(await FS(`logs/private/${userid}`).exists())) { - await FS(`logs/private/${userid}`).mkdirp(); + if (!(await Monitor.logPath(`private/${userid}`).exists())) { + await Monitor.logPath(`private/${userid}`).mkdirp(); } - await logPath.copyFile(`logs/private/${userid}/${date}.txt`); + await logPath.copyFile(Monitor.logPath(`private/${userid}/${date}.txt`).path); await logPath.write(''); // empty out the logfile this.globalModlog(`HELPTICKET PRIVATELOGS`, null, `${userid} (${date})`); this.privateGlobalModAction(`${user.name} set the ticket logs for '${userid}' on '${date}' to be private.`); }, privatehelp: [ - `/helpticket private [user], [date] - Makes the ticket logs for a user on a date private to upperstaff. Requires: &`, + `/helpticket private [user], [date] - Makes the ticket logs for a user on a date private to upperstaff. Requires: ~`, ], async public(target, room, user) { this.checkCan('bypassall'); @@ -2970,37 +2938,43 @@ export const commands: Chat.ChatCommands = { if (!/[0-9]{4}-[0-9]{2}-[0-9]{2}/.test(date)) { return this.errorReply(`Invalid date (must be YYYY-MM-DD format).`); } - const logPath = FS(`logs/private/${userid}/${date}.txt`); + const logPath = Monitor.logPath(`private/${userid}/${date}.txt`); if (!(await logPath.exists())) { return this.errorReply(`There are no logs for tickets from '${userid}' on the date '${date}'.`); } - const monthPath = FS(`logs/chat/help-${userid}/${date.slice(0, -3)}`); + const monthPath = Monitor.logPath(`chat/help-${userid}/${date.slice(0, -3)}`); if (!(await monthPath.exists())) { await monthPath.mkdirp(); } - await logPath.copyFile(`logs/chat/help-${userid}/${date.slice(0, -3)}/${date}.txt`); + await logPath.copyFile(Monitor.logPath(`chat/help-${userid}/${date.slice(0, -3)}/${date}.txt`).path); await logPath.unlinkIfExists(); this.globalModlog(`HELPTICKET PUBLICLOGS`, null, `${userid} (${date})`); this.privateGlobalModAction(`${user.name} set the ticket logs for '${userid}' on '${date}' to be public.`); }, publichelp: [ - `/helpticket public [user], [date] - Makes the ticket logs for the [user] on the [date] public to staff. Requires: &`, + `/helpticket public [user], [date] - Makes the ticket logs for the [user] on the [date] public to staff. Requires: ~`, ], }, + + tb: 'ticketban', + unticketban: 'ticketban', + ticketban(target, room, user, connection, cmd) { + return this.parse(`/helpticket ${cmd} ${target}`); + }, + helptickethelp: [ `/helpticket create - Creates a new ticket, requesting help from global staff.`, - `/helpticket list - Lists all tickets. Requires: % @ &`, - `/helpticket close [user] - Closes an open ticket. Requires: % @ &`, - `/helpticket ban [user], (reason) - Bans a user from creating tickets for 2 days. Requires: % @ &`, - `/helpticket unban [user] - Ticket unbans a user. Requires: % @ &`, - `/helpticket ignore - Ignore notifications for unclaimed help tickets. Requires: % @ &`, - `/helpticket unignore - Stop ignoring notifications for help tickets. Requires: % @ &`, - `/helpticket delete [user] - Deletes a user's ticket. Requires: &`, - `/helpticket logs [userid][, month] - View logs of the [userid]'s text tickets. Requires: % @ &`, - `/helpticket note [ticket userid], [note] - Adds a note to the [ticket], to be displayed in the hover text. `, - `Requires: % @ &`, - `/helpticket private [user], [date] - Makes the ticket logs for a user on a date private to upperstaff. Requires: &`, - `/helpticket public [user], [date] - Makes the ticket logs for the [user] on the [date] public to staff. Requires: &`, + `/helpticket list - Lists all tickets. Requires: % @ ~`, + `/helpticket close [user] - Closes an open ticket. Requires: % @ ~`, + `/helpticket ban [user], (reason) - Bans a user from creating tickets for 2 days. Requires: % @ ~`, + `/helpticket unban [user] - Ticket unbans a user. Requires: % @ ~`, + `/helpticket ignore - Ignore notifications for unclaimed help tickets. Requires: % @ ~`, + `/helpticket unignore - Stop ignoring notifications for help tickets. Requires: % @ ~`, + `/helpticket delete [user] - Deletes a user's ticket. Requires: ~`, + `/helpticket logs [userid][, month] - View logs of the [userid]'s text tickets. Requires: % @ ~`, + `/helpticket note [ticket userid], [note] - Adds a note to the [ticket], to be displayed in the hover text. Requires: % @ ~`, + `/helpticket private [user], [date] - Makes the ticket logs for a user on a date private to upperstaff. Requires: ~`, + `/helpticket public [user], [date] - Makes the ticket logs for the [user] on the [date] public to staff. Requires: ~`, ], }; diff --git a/server/chat-plugins/hosts.ts b/server/chat-plugins/hosts.ts index da60a6a6aa6e..bd4ac11fa54c 100644 --- a/server/chat-plugins/hosts.ts +++ b/server/chat-plugins/hosts.ts @@ -231,8 +231,8 @@ export const commands: Chat.ChatCommands = { return this.parse(`/join view-ranges-${type}`); }, viewhelp: [ - `/ipranges view - View the list of all IP ranges. Requires: hosts manager @ &`, - `/ipranges view [type] - View the list of a particular type of IP range ('residential', 'mobile', or 'proxy'). Requires: hosts manager @ &`, + `/ipranges view - View the list of all IP ranges. Requires: hosts manager @ ~`, + `/ipranges view [type] - View the list of a particular type of IP range ('residential', 'mobile', or 'proxy'). Requires: hosts manager @ ~`, ], // Originally by Zarel @@ -269,8 +269,8 @@ export const commands: Chat.ChatCommands = { this.globalModlog('IPRANGE ADD', null, formatRange(range, true)); }, addhelp: [ - `/ipranges add [type], [low]-[high], [host] - Adds an IP range. Requires: hosts manager &`, - `/ipranges widen [type], [low]-[high], [host] - Adds an IP range, allowing a new range to completely cover an old range. Requires: hosts manager &`, + `/ipranges add [type], [low]-[high], [host] - Adds an IP range. Requires: hosts manager ~`, + `/ipranges widen [type], [low]-[high], [host] - Adds an IP range, allowing a new range to completely cover an old range. Requires: hosts manager ~`, `For example: /ipranges add proxy, 5.152.192.0 - 5.152.223.255, redstation.com`, `Get datacenter info from whois; [low], [high] are the range in the last inetnum; [type] is one of res, proxy, or mobile.`, ], @@ -289,7 +289,7 @@ export const commands: Chat.ChatCommands = { this.globalModlog('IPRANGE REMOVE', null, formatRange(range, true)); }, removehelp: [ - `/ipranges remove [low IP]-[high IP] - Removes an IP range. Requires: hosts manager &`, + `/ipranges remove [low IP]-[high IP] - Removes an IP range. Requires: hosts manager ~`, `Example: /ipranges remove 5.152.192.0-5.152.223.255`, ], @@ -316,20 +316,20 @@ export const commands: Chat.ChatCommands = { this.globalModlog('IPRANGE RENAME', null, `IP range ${formatRange(toRename, true)} to ${range.host}`); }, renamehelp: [ - `/ipranges rename [type], [low IP]-[high IP], [host] - Changes the host an IP range resolves to. Requires: hosts manager &`, + `/ipranges rename [type], [low IP]-[high IP], [host] - Changes the host an IP range resolves to. Requires: hosts manager ~`, ], }, iprangeshelp() { const help = [ - `/ipranges view [type]: view the list of a particular type of IP range (residential, mobile, or proxy). Requires: hosts manager @ &`, - `/ipranges add [type], [low IP]-[high IP], [host]: add IP ranges (can be multiline). Requires: hosts manager &/ipranges view: view the list of all IP ranges. Requires: hosts manager @ &`, - `/ipranges widen [type], [low IP]-[high IP], [host]: add IP ranges, allowing a new range to completely cover an old range. Requires: hosts manager &`, + `/ipranges view [type]: view the list of a particular type of IP range (residential, mobile, or proxy). Requires: hosts manager @ ~`, + `/ipranges add [type], [low IP]-[high IP], [host]: add IP ranges (can be multiline). Requires: hosts manager ~/ipranges view: view the list of all IP ranges. Requires: hosts manager @ ~`, + `/ipranges widen [type], [low IP]-[high IP], [host]: add IP ranges, allowing a new range to completely cover an old range. Requires: hosts manager ~`, `For example: /ipranges add proxy, 5.152.192.0-5.152.223.255, redstation.com.`, `Get datacenter info from /whois; [low IP], [high IP] are the range in the last inetnum.`, - `/ipranges remove [low IP]-[high IP]: remove IP range(s). Can be multiline. Requires: hosts manager &`, + `/ipranges remove [low IP]-[high IP]: remove IP range(s). Can be multiline. Requires: hosts manager ~`, `For example: /ipranges remove 5.152.192.0, 5.152.223.255.`, - `/ipranges rename [type], [low IP]-[high IP], [host]: changes the host an IP range resolves to. Requires: hosts manager &`, + `/ipranges rename [type], [low IP]-[high IP], [host]: changes the host an IP range resolves to. Requires: hosts manager ~`, ]; return this.sendReply(`|html|
${help.join('
')}`); }, @@ -343,8 +343,8 @@ export const commands: Chat.ChatCommands = { return this.parse(`/join view-hosts-${type}`); }, viewhostshelp: [ - `/viewhosts - View the list of hosts. Requires: hosts manager @ &`, - `/viewhosts [type] - View the list of a particular type of host. Requires: hosts manager @ &`, + `/viewhosts - View the list of hosts. Requires: hosts manager @ ~`, + `/viewhosts [type] - View the list of a particular type of host. Requires: hosts manager @ ~`, `Host types are: 'all', 'residential', 'mobile', and 'ranges'.`, ], @@ -421,8 +421,8 @@ export const commands: Chat.ChatCommands = { this.globalModlog(removing ? 'REMOVEHOSTS' : 'ADDHOSTS', null, `${type}: ${hosts.join(', ')}`); }, addhostshelp: [ - `/addhosts [category], host1, host2, ... - Adds hosts to the given category. Requires: hosts manager &`, - `/removehosts [category], host1, host2, ... - Removes hosts from the given category. Requires: hosts manager &`, + `/addhosts [category], host1, host2, ... - Adds hosts to the given category. Requires: hosts manager ~`, + `/removehosts [category], host1, host2, ... - Removes hosts from the given category. Requires: hosts manager ~`, `Categories are: 'openproxy' (which takes IP addresses, not hosts), 'proxy', 'residential', and 'mobile'.`, ], @@ -431,7 +431,7 @@ export const commands: Chat.ChatCommands = { return this.parse('/join view-proxies'); }, viewproxieshelp: [ - `/viewproxies - View the list of proxies. Requires: hosts manager @ &`, + `/viewproxies - View the list of proxies. Requires: hosts manager @ ~`, ], markshared(target, room, user) { @@ -471,7 +471,7 @@ export const commands: Chat.ChatCommands = { }, marksharedhelp: [ `/markshared [IP], [owner/organization of IP] - Marks an IP address as shared.`, - `Note: the owner/organization (i.e., University of Minnesota) of the shared IP is required. Requires @ &`, + `Note: the owner/organization (i.e., University of Minnesota) of the shared IP is required. Requires @ ~`, ], unmarkshared(target, room, user) { @@ -501,7 +501,7 @@ export const commands: Chat.ChatCommands = { this.privateGlobalModAction(`The IP '${target}' was unmarked as shared by ${user.name}.`); this.globalModlog('UNSHAREDIP', null, null, target); }, - unmarksharedhelp: [`/unmarkshared [IP] - Unmarks a shared IP address. Requires @ &`], + unmarksharedhelp: [`/unmarkshared [IP] - Unmarks a shared IP address. Requires @ ~`], marksharedblacklist: 'nomarkshared', marksharedbl: 'nomarkshared', @@ -573,10 +573,10 @@ export const commands: Chat.ChatCommands = { }, }, nomarksharedhelp: [ - `/nomarkshared add [IP], [reason] - Prevents an IP from being marked as shared until it's removed from this list. Requires &`, + `/nomarkshared add [IP], [reason] - Prevents an IP from being marked as shared until it's removed from this list. Requires ~`, `Note: Reasons are required.`, - `/nomarkshared remove [IP] - Removes an IP from the nomarkshared list. Requires &`, - `/nomarkshared view - Lists all IPs prevented from being marked as shared. Requires @ &`, + `/nomarkshared remove [IP] - Removes an IP from the nomarkshared list. Requires ~`, + `/nomarkshared view - Lists all IPs prevented from being marked as shared. Requires @ ~`, ], sharedips: 'viewsharedips', @@ -584,6 +584,6 @@ export const commands: Chat.ChatCommands = { return this.parse('/join view-sharedips'); }, viewsharedipshelp: [ - `/viewsharedips — Lists IP addresses marked as shared. Requires: hosts manager @ &`, + `/viewsharedips — Lists IP addresses marked as shared. Requires: hosts manager @ ~`, ], }; diff --git a/server/chat-plugins/jeopardy.ts b/server/chat-plugins/jeopardy.ts deleted file mode 100644 index 46991a03a502..000000000000 --- a/server/chat-plugins/jeopardy.ts +++ /dev/null @@ -1,965 +0,0 @@ -import {Utils} from '../../lib'; - -const BACKGROUND_COLOR = "#0000FF"; -const HEIGHT = 40; -const MAX_CATEGORY_COUNT = 5; -const MAX_QUESTION_COUNT = 5; -const BUZZ_COOLDOWN = 500; // 0.5 seconds - -interface Question { - question: string; - answer: string; - points: number; - answered: boolean; - dd: boolean; -} - -type JeopardyState = 'signups' | 'selecting' | 'answering' | 'wagering' | 'buzzing' | 'checking' | 'round2'; - -export class Jeopardy extends Rooms.RoomGame { - host: User; - state: JeopardyState; - gameid: ID; - categories: string[]; - question: Question; - questions: Question[][]; - finalQuestion: Question; - started: boolean; - categoryCount: number; - questionCount: number; - round: number; - canBuzz: boolean; - numUpdates: number; - finalCategory: string; - answeringTime: number; - finalAnsweringTime: number; - timeout: NodeJS.Timer | null; - roundStarted: boolean; - // FIXME: this type should be `JeopardyGamePlayer | null` - curPlayer: JeopardyGamePlayer; - prevPlayer: JeopardyGamePlayer; - order: string[]; - points: Map; - finals: boolean; - gameNumber: number; - - constructor(room: Room, user: User, categoryCount: number, questionCount: number, playerCap: number) { - super(room); - this.gameNumber = room.nextGameNumber(); - this.host = user; - this.allowRenames = true; - this.state = "signups"; - this.gameid = 'jeopardy' as ID; - this.title = 'Jeopardy'; - this.categories = []; - this.question = Object.create(null); - this.questions = []; - this.finalQuestion = Object.create(null); - this.started = false; - this.categoryCount = categoryCount; - this.questionCount = questionCount; - this.round = 1; - this.points = new Map(); - this.playerCap = playerCap; - this.canBuzz = false; - this.numUpdates = 0; - this.finalCategory = ""; - this.answeringTime = 10; - this.finalAnsweringTime = 30; - this.timeout = null; - this.roundStarted = false; - this.curPlayer = new JeopardyGamePlayer(user, this); - this.prevPlayer = new JeopardyGamePlayer(user, this); - this.order = []; - this.finals = false; - this.setupGrid(); - } - - destroy() { - if (this.timeout) clearTimeout(this.timeout); - super.destroy(); - } - - makePlayer(user: User) { - return new JeopardyGamePlayer(user, this); - } - - setupGrid() { - this.categories = []; - for (let j = 0; j < this.categoryCount; j++) { - this.categories.push(""); - } - this.questions = []; - for (let i = 0; i < this.questionCount; i++) { - this.questions.push([]); - for (let j = 0; j < this.categoryCount; j++) { - this.questions[i].push({question: '', answer: '', points: 200 * this.round * (i + 1), answered: false, dd: false}); - } - } - this.finalQuestion = Object.create(null); - this.roundStarted = false; - this.question = Object.create(null); - if (this.round === 1) { - this.display(); - } else { - this.update(); - } - } - - start() { - if (this.roundStarted) throw new Chat.ErrorMessage("The game has already been started."); - if (this.playerCount < 2) throw new Chat.ErrorMessage("The game needs at least two players to start."); - const noquestions = []; - for (let i = 0; i < this.categoryCount; i++) { - for (let j = 0; j < this.questionCount; j++) { - if (!this.questions[j][i].question) { - noquestions.push(`(${(i + 1)}, ${(j + 1)})`); - } - } - } - let badstr = noquestions.join(", "); - if (!this.finalQuestion.question && this.round === 2) { - badstr += `${(badstr ? ", " : "")} final`; - } - if (badstr) { - throw new Chat.ErrorMessage(`The following questions still need questions and answers: ${badstr}.`); - } - this.roundStarted = true; - if (this.round === 1) { - for (const userID in this.playerTable) { - const player = this.playerTable[userID]; - this.points.set(player, 0); - } - } - this.state = 'selecting'; - let lowest: string[] = []; - let minpoints; - for (const userID in this.playerTable) { - const points = this.playerTable[userID].points; - if (!minpoints) { - lowest.push(userID); - minpoints = points; - } else if (points < minpoints) { - lowest = [userID]; - minpoints = points; - } else if (points === minpoints) { - lowest.push(userID); - } - } - this.curPlayer = this.playerTable[lowest[Math.floor(lowest.length * Math.random())]]; - this.prevPlayer = this.curPlayer; - this.update(); - this.nextPlayer(); - } - - nextPlayer() { - this.room.addRaw(`${this.curPlayer.name}, you're up!`); - } - - getGrid() { - let buffer = `
`; - for (let i = 0; i < this.categoryCount; i++) { - buffer += ``; - } - buffer += ``; - for (let i = 0; i < this.questionCount; i++) { - buffer += ``; - for (let j = 0; j < this.categoryCount; j++) { - buffer += ``; - } - buffer += ``; - } - buffer += `
${Utils.escapeHTML(this.categories[i])}
${(this.questions[i][j].answered ? "" : this.questions[i][j].points)}

`; - for (const userID in this.playerTable) { - const player = this.playerTable[userID]; - const bold = this.curPlayer?.name === player.name; - buffer += `${bold ? "" : ""}${Utils.escapeHTML(player.name)} (${(player.points || 0)})${bold ? "" : ""}
`; - } - buffer += `
`; - return buffer; - } - - display() { - this.room.add(`|uhtml|jeopardy${this.gameNumber}-${this.numUpdates}|${this.getGrid()}`); - } - - update(dontMove = false) { - if (dontMove) { - this.room.add(`|uhtmlchange|jeopardy${this.gameNumber}-${this.numUpdates}|${this.getGrid()}`); - } else { - this.room.add(`|uhtmlchange|jeopardy${this.gameNumber}-${this.numUpdates}|`); - this.numUpdates++; - this.room.add(`|uhtml|jeopardy${this.gameNumber}-${this.numUpdates}|${this.getGrid()}`); - } - } - - dailyDouble() { - if (this.timeout) clearTimeout(this.timeout); - this.state = 'answering'; - if (!this.curPlayer.wager) this.curPlayer.wager = 0; - this.askQuestion(); - } - - select(target: string) { - if (this.state !== 'selecting') throw new Chat.ErrorMessage("The game of Jeopardy is not in the selection phase."); - - const params = target.split(","); - if (params.length < 2) throw new Chat.ErrorMessage("You must specify a row and a column number."); - const categoryNumber = parseInt(params[0]); - if (!categoryNumber || categoryNumber < 1 || categoryNumber > this.categoryCount) { - throw new Chat.ErrorMessage(`The category must be a number between 1 and ${this.categoryCount}.`); - } - const questionNumber = parseInt(params[1]); - if (!questionNumber || questionNumber < 1 || questionNumber > this.questionCount) { - throw new Chat.ErrorMessage(`The question must be a number between 1 and ${this.questionCount}.`); - } - const question = this.questions[questionNumber - 1][categoryNumber - 1]; - if (question.answered) throw new Chat.ErrorMessage("That question has already been answered."); - this.question = question; - if (question.dd) { - this.room.add(`That was a daily double! ${this.curPlayer.name}, how much would you like to wager?`); - this.clearWagers(); - this.state = 'wagering'; - this.timeout = setTimeout(() => this.dailyDouble(), 30 * 1000); - } else { - this.state = 'buzzing'; - this.askQuestion(); - } - } - - clearWagers() { - for (const userID in this.playerTable) { - this.playerTable[userID].wager = 0; - } - } - - clearBuzzes() { - for (const userID in this.playerTable) { - this.playerTable[userID].buzzed = false; - } - } - - askQuestion() { - if (!this.question.dd) { - this.curPlayer = null!; - } - this.clearBuzzes(); - this.room.addRaw(Utils.html`
Your question is: ${this.question.question}
`); - if (!this.finals) { - this.canBuzz = false; - this.update(true); - this.timeout = setTimeout(() => this.allowBuzzes(), this.question.question.length / 15 * 1000); - } - } - - allowBuzzes() { - this.canBuzz = true; - this.room.add(`You may now buzz in for the Jeopardy game!`); - this.update(true); - this.timeout = setTimeout(() => this.allowAllBuzzes(), BUZZ_COOLDOWN); - } - - allowAllBuzzes() { - for (const userID in this.playerTable) { - this.playerTable[userID].buzzedEarly = false; - } - } - - revealAnswer() { - this.room.addRaw(`
The answer was: ${Utils.escapeHTML(this.question.answer)}
`); - this.question.answered = true; - } - - buzz(user: User) { - if (this.state !== 'buzzing') throw new Chat.ErrorMessage("You cannot buzz in at this time."); - const player = this.playerTable[user.id]; - if (!player) throw new Chat.ErrorMessage("You are not in the game of Jeopardy."); - if (player.buzzed) throw new Chat.ErrorMessage("You have already buzzed in to the current question."); - if (!this.canBuzz) { - player.buzzedEarly = true; - player.send("You buzzed early! You now have a delay before you will be able to buzz."); - return; - } else if (player.buzzedEarly) { - throw new Chat.ErrorMessage("Your buzzing cooldown has not yet ended."); - } - this.curPlayer = player; - this.curPlayer.buzzed = true; - this.room.add(`${user.name} has buzzed in!`); - this.state = "answering"; - this.timeout = setTimeout(() => this.check({correct: false, isBuzzTimeout: true}), this.answeringTime * 1000); - } - - hasRemainingQuestion() { - for (let i = 0; i < this.questionCount; i++) { - for (let j = 0; j < this.categoryCount; j++) { - if (!this.questions[i][j].answered) return true; - } - } - return false; - } - - startFinals() { - this.update(); - this.room.add("Time to begin finals! The category is: " + this.finalCategory + "! Please wager your amounts now."); - this.finals = true; - this.state = "wagering"; - this.clearWagers(); - this.timeout = setTimeout(() => this.finalWagers(), this.finalAnsweringTime * 1000); - } - - wager(amount: string | number, user: User) { - if (this.state !== "wagering" && (!this.finals || this.curPlayer?.id !== user.id)) { - throw new Chat.ErrorMessage("You cannot wager at this time."); - } - const player = this.playerTable[user.id]; - if (!player) throw new Chat.ErrorMessage("You are not in the game of Jeopardy."); - amount = toID(amount); - const wager = (amount === 'all' ? player.points : parseInt(amount)); - if (!wager || isNaN(wager)) throw new Chat.ErrorMessage("Your wager must be a number, or 'all'."); - if (wager < 0) throw new Chat.ErrorMessage("You cannot wager a negative amount."); - if (wager > player.points && (wager > (this.round * 1000) || this.finals)) { - throw new Chat.ErrorMessage("You cannot wager more than your current number of points."); - } - if (player.wager) throw new Chat.ErrorMessage("You have already wagered."); - player.wager = wager; - player.send(`You have wagered ${wager} points!`); - if (!this.finals) { - this.dailyDouble(); - } else { - for (const userID in this.playerTable) { - if (!this.playerTable[userID].wager) return; - } - if (this.timeout) clearTimeout(this.timeout); - this.finalWagers(); - } - } - finalWagers() { - for (const userID in this.playerTable) { - const player = this.playerTable[userID]; - if (!player.wager) player.wager = 0; - } - this.question = this.finalQuestion; - this.state = "answering"; - this.askQuestion(); - this.timeout = setTimeout(() => this.doFinals(), this.finalAnsweringTime * 1000); - } - - doFinals() { - if (!this.playerTable) return this.room?.add(`Could not play finals because the player table does not exist.`); - this.order = Object.keys(this.playerTable); - this.doFinalPlayer(); - } - - doFinalPlayer() { - if (this.order.length === 0) { - this.revealAnswer(); - let highest: string[] = []; - let maxpoints; - for (const userID in this.playerTable) { - const player = this.playerTable[userID]; - const points = player.points; - if (!maxpoints) { - highest.push(player.name); - maxpoints = points; - } else if (points > maxpoints) { - highest = [player.name]; - maxpoints = points; - } else if (points === maxpoints) { - highest.push(player.name); - } - } - this.room.add(`|raw|
Congratulations to ${highest.map(n => Utils.escapeHTML(n)).join(", ")} for winning the game of Jeopardy with ${maxpoints} points!`); - this.destroy(); - return; - } else { - const index = this.order.shift() || 0; - this.curPlayer = this.playerTable[index]; - const answer = this.curPlayer.finalAnswer; - if (answer) { - this.room.add(`${this.curPlayer.name} has answered ${Utils.escapeHTML(answer)}!`); - this.state = "checking"; - } else { - const wager = this.curPlayer.wager; - this.room.add(`${this.curPlayer.name} did not answer the final Jeopardy and loses ${wager} points`); - let points = this.curPlayer.points; - points -= wager; - this.curPlayer.points = points; - this.timeout = setTimeout(() => this.doFinalPlayer(), 5 * 1000); - } - } - } - - answer(target: string, user: User) { - if (this.state !== 'answering') throw new Chat.ErrorMessage("You cannot answer the question at this time."); - const player = this.playerTable[user.id]; - if (!player) throw new Chat.ErrorMessage("You are not in the game of Jeopardy."); - if (this.finals) { - if (player.finalAnswer) throw new Chat.ErrorMessage("You have already answered the Final Jeopardy"); - player.answer = Utils.escapeHTML(target); - player.send(`You have selected your answer as ${Utils.escapeHTML(target)}.`); - } else { - if (this.timeout) clearTimeout(this.timeout); - if (!this.curPlayer || this.curPlayer.id !== user.id) throw new Chat.ErrorMessage("It is not your turn to answer."); - this.state = "checking"; - this.room.add(`${user.name} has answered ${Utils.escapeHTML(target)}!`); - } - } - - mark(correct: boolean) { - if (this.state !== 'checking') throw new Chat.ErrorMessage("There is no answer to currently check."); - this.check({correct}); - } - - check(info: {correct: boolean, isBuzzTimeout?: boolean}) { - if (info.correct) { - const gainpoints = ((this.question.dd || this.finals) ? this.curPlayer.wager : this.question.points); - let points = this.curPlayer.points; - points += gainpoints; - this.curPlayer.points = points; - this.room.add(`${this.curPlayer.name} has answered the question correctly and gained ${gainpoints} points!`); - if (!this.finals) { - this.revealAnswer(); - } - if (this.finals) { - this.doFinalPlayer(); - } else if (!this.hasRemainingQuestion()) { - if (this.round === 1) { - this.round++; - this.setupGrid(); - this.state = "round2"; - } else { - this.startFinals(); - } - } else { - this.prevPlayer = this.curPlayer; - this.state = 'selecting'; - this.question = Object.create(null); - this.update(); - } - } else { - const losspoints = ((this.question.dd || this.finals) ? this.curPlayer.wager : this.question.points); - const action = info.isBuzzTimeout ? 'failed to answer in time' : 'answered incorrectly'; - this.room.add(`${this.curPlayer.name} ${action} and loses ${losspoints} points!`); - let points = this.curPlayer.points; - points -= losspoints; - this.curPlayer.points = points; - if (this.finals) { - this.doFinalPlayer(); - } else if (this.everyBuzzed() || this.question.dd) { - this.nextQuestion(); - } else { - this.state = 'buzzing'; - } - } - } - - everyBuzzed() { - for (const userID in this.playerTable) { - if (!this.playerTable[userID].buzzed) return false; - } - return true; - } - setCategory(categoryNumber: string | number, category: string) { - if (typeof categoryNumber === 'string') { - this.finalCategory = category.trim(); - } else { - this.categories[categoryNumber] = category.trim(); - this.update(); - } - } - - nextQuestion() { - this.revealAnswer(); - if (!this.hasRemainingQuestion()) { - if (this.round === 1) { - this.round++; - this.setupGrid(); - this.state = "round2"; - } else { - this.startFinals(); - } - } else { - this.curPlayer = this.prevPlayer; - this.state = "selecting"; - this.question = Object.create(null); - this.update(); - } - } - - setCategories(categories: string[]) { - if (this.state !== "signups" && this.state !== "round2") return false; - for (const [i, category] of categories.entries()) { - this.categories[i] = category; - } - this.update(); - } - - getQuestion(categoryNumber: number, questionNumber: number) { - const question = this.questions[questionNumber][categoryNumber]; - if (question.question) { - return `Question: ${Utils.escapeHTML(question.question)}
Answer: ${Utils.escapeHTML(question.answer)}`; - } else { - return "That question has not yet been imported."; - } - } - - setDailyDouble(categoryNumber: number, questionNumber: number) { - const question = this.questions[questionNumber][categoryNumber]; - if (question.dd) throw new Chat.ErrorMessage("That question is already a daily double."); - question.dd = true; - } - - importQuestions(questions: string[], questionStart: number, categoryStart: string | number) { - if (typeof categoryStart === 'string') { - const split = questions[0].split("|"); - if (split.length !== 2) throw new Chat.ErrorMessage("Final question was unable to be imported."); - this.finalQuestion.question = split[0].trim(); - this.finalQuestion.answer = split[1].trim(); - } else { - for (let i = categoryStart; i < this.categoryCount; i++) { - for (let j = (i === categoryStart ? questionStart : 0); j < this.questionCount; j++) { - if (questions.length === 0) { - return; - } - const split = questions[0].split("|"); - if (split.length !== 2) { - throw new Chat.ErrorMessage(`Questions before ${questions[0]} imported successfully, but ${questions[0]} did not have a question and one answer.`); - } - this.questions[j][i].question = split[0].trim(); - this.questions[j][i].answer = split[1].trim(); - questions.shift(); - } - } - if (questions.length > 0) { - const split = questions[0].split("|"); - if (split.length !== 2) { - throw new Chat.ErrorMessage(`Questions before ${questions[0]} imported successfully, but ${questions[0]} did not have a question and one answer.`); - } - this.finalQuestion.question = split[0].trim(); - this.finalQuestion.answer = split[1].trim(); - } - } - } - - givePoints(user: User | ID, n: number) { - const id = toID(user); - if (!(id in this.playerTable)) throw new Chat.ErrorMessage(`'${id}' is not a player in the game of Jeopardy.`); - this.playerTable[id].points += n; - } - - substitute(original: User, substitute: User) { - const originalPlayer = this.playerTable[original.id]; - if (!originalPlayer) throw new Chat.ErrorMessage(`${original.name} is not a player in the game of Jeopardy.`); - - delete this.playerTable[original.id]; - this.addPlayer(substitute); - - this.playerTable[substitute.id].answer = originalPlayer.answer; - this.playerTable[substitute.id].points = originalPlayer.points; - this.playerTable[substitute.id].wager = originalPlayer.wager; - this.playerTable[substitute.id].buzzedEarly = originalPlayer.buzzedEarly; - this.playerTable[substitute.id].finalAnswer = originalPlayer.finalAnswer; - this.playerTable[substitute.id].buzzed = originalPlayer.buzzed; - - this.room.add(`${substitute.name} subbed in for ${original.name}!`); - } -} - -class JeopardyGamePlayer extends Rooms.RoomGamePlayer { - answer: string; - points: number; - wager: number; - buzzedEarly: boolean; - finalAnswer: string; - buzzed: boolean; - - constructor(user: User, game: Jeopardy) { - super(user, game); - this.answer = ''; - this.points = 0; - this.wager = 0; - this.buzzedEarly = false; - this.finalAnswer = ''; - this.buzzed = false; - } -} - -export const commands: Chat.ChatCommands = { - jp: 'jeopardy', - jeopardy: { - '': 'help', - help() { - return this.parse("/help jeopardy"); - }, - - off: 'disable', - disable(target, room, user) { - room = this.requireRoom(); - this.checkCan('gamemanagement', null, room); - if (room.settings.jeopardyDisabled) { - return this.errorReply("Jeopardy is already disabled in this room."); - } - room.settings.jeopardyDisabled = true; - room.saveSettings(); - return this.sendReply("Jeopardy has been disabled for this room."); - }, - - on: 'enable', - enable(target, room, user) { - room = this.requireRoom(); - this.checkCan('gamemanagement', null, room); - if (!room.settings.jeopardyDisabled) { - return this.errorReply("Jeopardy is already enabled in this room."); - } - delete room.settings.jeopardyDisabled; - room.saveSettings(); - return this.sendReply("Jeopardy has been enabled for this room."); - }, - - create: 'new', - new(target, room, user) { - room = this.requireRoom(); - if (room.game) { - return this.errorReply(`There is already a game of ${room.game.title} in progress in this room.`); - } - this.checkCan('minigame', null, room); - const params = target.split(","); - - const playerCap = parseInt(params[0]); - const categoryCount = parseInt(params[1]); - const questionCount = parseInt(params[2]); - if (isNaN(playerCap) || playerCap <= 1) { - return this.errorReply(`The player cap must be a number above 1.`); - } - - if (isNaN(categoryCount) || categoryCount <= 0) { - return this.errorReply(`The category count must be a number above 0.`); - } - if (categoryCount > MAX_CATEGORY_COUNT) { - return this.sendReply(`A match with more than ${MAX_CATEGORY_COUNT} categories cannot be created.`); - } - - if (isNaN(questionCount) || questionCount <= 0) { - return this.errorReply(`The question count must be a number above 0.`); - } - if (questionCount > MAX_QUESTION_COUNT) { - return this.sendReply( - `A match with more than ${MAX_QUESTION_COUNT} questions per category cannot be created.` - ); - } - room.game = new Jeopardy(room, user, categoryCount, questionCount, playerCap); - this.privateModAction(`${user.name} started a new game of Jeopardy.`); - this.modlog('JEOPARDY', null, `maximum of ${playerCap} players, ${categoryCount} categories, and ${questionCount} questions`); - }, - - categories(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const params = target.split(","); - if (params.length !== game.categoryCount) { - return this.errorReply(`You must set exactly ${game.categoryCount} categories.`); - } - const reply = game.setCategories(params); - if (reply) this.errorReply(reply); - }, - - category(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const params = target.split(","); - if (params.length !== 2) return this.errorReply("You must specify the category number and the category."); - let categoryNumber: string | number; - if (params[0] === "final") { - categoryNumber = "final"; - } else { - categoryNumber = parseInt(params[0]); - if (!categoryNumber || categoryNumber < 1 || categoryNumber > game.categoryCount) { - return this.errorReply(`The category number must be between 1 and ${game.categoryCount}.`); - } - } - game.setCategory((typeof categoryNumber === 'string' ? categoryNumber : categoryNumber - 1), params[1]); - }, - - select(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - game.select(target); - }, - - buzz(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - game.buzz(user); - }, - - wager(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.lastCommand !== `/jeopardy wager ${target}`) { - user.lastCommand = `/jeopardy wager ${target}`; - return this.sendReply(`To confirm your wager of ${target}, type '${user.lastCommand}' again.`); - } - game.wager(target, user); - }, - - answer(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - game.answer(target, user); - }, - - import(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (!target) return this.errorReply("You must specify at least one question"); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const params = target.split(","); - let dataStart = 0; - let catStart: string | number; - let questionStart = 1; - if (toID(params[0]) === 'final') { - catStart = 'finals'; - params.splice(0, 1); - } else { - if (isNaN(Utils.parseExactInt(params[0])) || isNaN(Utils.parseExactInt(params[1]))) { - return this.errorReply(`You must specify numeric values for Category Number Start and Question Number Start.`); - } - catStart = parseInt(params[0]); - if (catStart) { - if (catStart < 1 || catStart > game.categoryCount) { - return this.errorReply(`The category must be a number between 1 and ${game.categoryCount}.`); - } - dataStart = 1; - questionStart = parseInt(params[1]); - if (questionStart) { - if (questionStart < 1 || questionStart > game.questionCount) { - return this.errorReply(`The question must be a number between 1 and ${game.questionCount}.`); - } - dataStart = 2; - } else { - questionStart = 1; - } - } else { - catStart = 1; - questionStart = 1; - } - params.splice(0, dataStart); - } - const numberOfQuestions = params.length; - game.importQuestions( - params, questionStart - 1, (typeof catStart === 'string' ? catStart : catStart - 1) - ); - this.sendReply(`Imported ${numberOfQuestions} questions.`); - }, - - dd: 'dailydouble', - dailydouble(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const params = target.split(","); - if (params.length !== 2) return this.errorReply("You must specify the category number and question number"); - const categoryNumber = parseInt(params[0]); - if (!categoryNumber || categoryNumber < 1 || categoryNumber > game.categoryCount) { - return this.errorReply(`The category must be a number between 1 and ${game.categoryCount}.`); - } - const questionNumber = parseInt(params[0]); - if (!questionNumber || questionNumber < 1 || questionNumber > game.questionCount) { - return this.errorReply(`The question must be a number between 1 and ${game.questionCount}.`); - } - game.setDailyDouble(categoryNumber - 1, questionNumber - 1); - this.sendReply("Daily double has been added."); - }, - dailydoublehelp: [ - `/jeopardy dailydouble [category number], [question number] - Set a question to be a daily double.`, - ], - - view(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const params = target.split(","); - if (params.length !== 2) return this.errorReply("You must specify the category number and question number"); - const categoryNumber = parseInt(params[0]); - if (!categoryNumber || categoryNumber < 1 || categoryNumber > game.categoryCount) { - return this.errorReply(`The category must be a number between 1 and ${game.categoryCount}.`); - } - const questionNumber = parseInt(params[1]); - if (!questionNumber || questionNumber < 1 || questionNumber > game.questionCount) { - return this.errorReply(`The question must be a number between 1 and ${game.questionCount}.`); - } - this.sendReplyBox(game.getQuestion(categoryNumber - 1, questionNumber - 1)); - }, - - join(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (game.host.id === user.id) return this.errorReply("You are the host and therefore cannot join the game."); - if (game.state !== 'signups') return this.errorReply("This Jeopardy game is not in its signups phase."); - if (game.addPlayer(user)) { - game.update(); - } else { - this.errorReply("Unable to join the game."); - } - }, - - incorrect: 'correct', - correct(target, room, user, connection, cmd) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - game.mark(cmd === 'correct'); - }, - - start(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - game.start(); - }, - - kick: 'leave', - leave(target, room, user, connection, cmd) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - const kicking = cmd.includes('kick'); - if (kicking && user.id !== game.host.id) return this.errorReply("Only the host can kick players."); - const targetUser = kicking ? Users.get(target) : user; - if (!targetUser) return this.errorReply(`User '${target}' not found.`); - if (game.removePlayer(targetUser)) { - game.update(); - } else { - return this.errorReply(`Unable to remove '${targetUser.name}' from the game.`); - } - }, - - subhost(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const targetUser = Users.get(target); - if (!targetUser) return this.errorReply(`User '${target}' not found.`); - game.host = targetUser; - this.sendReply(`${targetUser.name} has subbed in as the host.`); - }, - - subplayer(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - - const split = target.split(','); - if (split.length !== 2) return this.parse(`/help jeopardy`); - const [toSubOut, toSubIn] = split.map(u => Users.get(u)); - if (!toSubOut) return this.errorReply(`User '${target[0]}' not found.`); - if (!toSubIn) return this.errorReply(`User '${target[1]}' not found.`); - - game.substitute(toSubOut, toSubIn); - }, - - state(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - this.sendReply(`The game is currently in the ${game.state} state.`); - }, - - end(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - this.checkCan('minigame', null, room); - game.destroy(); - this.privateModAction(`${user.name} ended the game of Jeopardy.`); - this.modlog('JEOPARDY END'); - }, - - pass(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - game.nextQuestion(); - }, - - timer(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const amount = parseInt(target); - if (!amount || amount < 2 || amount > 120) return this.errorReply("The amount must be a number between 2 and 120."); - - game.answeringTime = amount; - this.addModAction(`${user.name} has set the answering window for questions to ${amount} seconds`); - this.modlog('JEOPARDY TIMER', null, `${amount} seconds`); - }, - - finaltimer(target, room, user) { - room = this.requireRoom(); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - const amount = parseInt(target); - if (!amount || amount < 2 || amount > 300) return this.errorReply("The amount must be a number between 2 and 300."); - - game.finalAnsweringTime = amount; - this.addModAction(`${user.name} has set the answering window for the final question to ${amount} seconds`); - this.modlog('JEOPARDY FINALTIMER', null, `${amount} seconds`); - }, - - removepoints: 'addpoints', - addpoints(target, room, user, connection, cmd) { - room = this.requireRoom(); - if (!target) return this.parse(`/help jeopardy`); - const game = this.requireGame(Jeopardy); - if (user.id !== game.host.id) return this.errorReply("This command can only be used by the host."); - - const [recipient, pointsString] = target.split(','); - let points = parseInt(pointsString); - if (points <= 0 || isNaN(points)) { - return this.errorReply(`You must provide a positive number of points to add/remove.`); - } - if (cmd.includes('remove')) points *= -1; - game.givePoints(toID(recipient), points); - }, - }, - jeopardyhelp() { - this.runBroadcast(); - return this.sendReply( - `|html|
/jp new [player cap], [number of categories], [number of questions]: Host a new game of Jeopardy. Requires: % @ # &
` + - `/jp join: Join the game of Jeopardy.
` + - `/jp leave: Leave the game of Jeopardy.
` + - `/jp buzz: Buzz into the current question.
` + - `/jp answer [answer]: Attempt to answer the current question.
` + - `/jp start: Start the game of Jeopardy. Must be the host.
` + - `/jp correct/incorrect: Mark an answer as correct or incorrect. Must be the host.
` + - `/jp categories [First Category], [Second Category], etc.: Set the categories of the jeopardy game. Must be the host.
` + - `/jp category [Category Number], [Category Name]: Set a specific category of the jeopardy game. Must be the host.
` + - `/jp select [Category Number], [Question Number]: Select a question of the Jeopardy game.
` + - `/jp end: End the current game of Jeopardy. Requires: % @ # &
` + - `/jp dailydouble [Category Number], [Question Number]: Set a question to be a daily double. Must be the host.
` + - `/jp wager [amount]: Wager some money for a daily double or finals. Must be a number or 'all'
` + - `/jp kick [User]: Remove a user from the game of Jeopardy. Must be the host.
` + - `/jp view [Category Number], [Question Number]: View a specific question and answer. Must be the host.
` + - `/jp subhost [User]: Sub a new host into the game. Must be the host.
` + - `/jp subplayer [original], [substitute]: Sub a new player into the game. Must be the host.
` + - `/jp import [Category Number Start], [Question Number Start], [Question 1 | Answer 1], [Question 2 | Answer 2], etc.: Import questions into the current game of Jeopardy. Must be the host.
` + - `/jp pass: Skip the current question of Jeopardy. Must be the host.
` + - `/jp state: Check the state of the current Jeopardy game. Must be the host.
` + - `/jp timer [seconds]: Set the answering window after buzzing for questions
` + - `/jp finaltimer [seconds]: Set the answering window for answering the final question
` + - `/jp addpoints [user], [number of points]: Give a player an arbitrary number of points. Must be the host.
` + - `/jp remove [user], [number of points]: Subtract an arbitrary number of points from a player. Must be the host.
` - ); - }, -}; - -export const roomSettings: Chat.SettingsHandler = room => ({ - label: "Jeopardy", - permission: 'editroom', - options: [ - [`disabled`, room.settings.jeopardyDisabled || 'jeopardy disable'], - [`enabled`, !room.settings.jeopardyDisabled || 'jeopardy enable'], - ], -}); diff --git a/server/chat-plugins/lottery.ts b/server/chat-plugins/lottery.ts deleted file mode 100644 index 2f1587cce082..000000000000 --- a/server/chat-plugins/lottery.ts +++ /dev/null @@ -1,303 +0,0 @@ -const LOTTERY_FILE = 'config/chat-plugins/lottery.json'; - -import {FS, Utils} from '../../lib'; - -const lotteriesContents = FS(LOTTERY_FILE).readIfExistsSync(); -const lotteries: { - [roomid: string]: { - maxWinners: number, - name: string, - markup: string, - participants: {[ip: string]: string}, - winners: string[], - running: boolean, - }, -} = lotteriesContents ? Object.assign(Object.create(null), JSON.parse(lotteriesContents)) : Object.create(null); - -function createLottery(roomid: RoomID, maxWinners: number, name: string, markup: string) { - if (lotteries[roomid] && !lotteries[roomid].running) { - delete lotteries[roomid]; - } - const lottery = lotteries[roomid]; - lotteries[roomid] = { - maxWinners, name, markup, participants: lottery?.participants || Object.create(null), - winners: lottery?.winners || [], running: true, - }; - writeLotteries(); -} -function writeLotteries() { - for (const roomid of Object.keys(lotteries)) { - if (!Rooms.get(roomid)) { - delete lotteries[roomid]; - } - } - FS(LOTTERY_FILE).writeUpdate(() => JSON.stringify(lotteries)); -} -function destroyLottery(roomid: RoomID) { - delete lotteries[roomid]; - writeLotteries(); -} -function endLottery(roomid: RoomID, winners: string[]) { - const lottery = lotteries[roomid]; - if (!lottery) return; - lottery.winners = winners; - lottery.running = false; - Object.freeze(lottery); - writeLotteries(); -} - -function isSignedUp(roomid: RoomID, user: User) { - const lottery = lotteries[roomid]; - if (!lottery) return; - const participants = lottery.participants; - const participantNames = Object.values(participants).map(toID); - if (participantNames.includes(user.id)) return true; - if (Config.noipchecks) return false; - return !!participants[user.latestIp]; -} - -function addUserToLottery(roomid: RoomID, user: User) { - const lottery = lotteries[roomid]; - if (!lottery) return; - const participants = lottery.participants; - if (!isSignedUp(roomid, user)) { - participants[user.latestIp] = user.name; - writeLotteries(); - return true; - } - return false; -} -function removeUserFromLottery(roomid: RoomID, user: User) { - const lottery = lotteries[roomid]; - if (!lottery) return; - const participants = lottery.participants; - for (const [ip, participant] of Object.entries(participants)) { - if (toID(participant) === user.id || ip === user.latestIp) { - delete participants[ip]; - writeLotteries(); - return true; - } - } - return false; -} -function getWinnersInLottery(roomid: RoomID) { - const lottery = lotteries[roomid]; - if (!lottery) return; - const winners = []; - const participants = Object.values(lottery.participants); - for (let i = 0; i < lottery.maxWinners; i++) { - const randomIdx = participants.length * Math.random() << 0; - const winner = participants[randomIdx]; - winners.push(winner); - participants.splice(randomIdx, 1); - } - return winners; -} - -export const commands: Chat.ChatCommands = { - lottery: { - ''(target, room) { - room = this.requireRoom(); - const lottery = lotteries[room.roomid]; - if (!lottery) { - return this.errorReply("This room doesn't have a lottery running."); - } - return this.parse(`/join view-lottery-${room.roomid}`); - }, - edit: 'create', - create(target, room, user, connection, cmd) { - room = this.requireRoom(); - this.checkCan('declare', null, room); - if (room.battle || !room.persist) { - return this.errorReply('This room does not support the creation of lotteries.'); - } - const lottery = lotteries[room.roomid]; - const edited = lottery?.running; - if (cmd === 'edit' && !target && lottery) { - this.sendReply('Source:'); - const markup = Utils.html`${lottery.markup}`.replace(/\n/g, '
'); - return this.sendReplyBox(`/lottery edit ${lottery.maxWinners}, ${lottery.name}, ${markup}`); - } - const [maxWinners, name, markup] = Utils.splitFirst(target, ',', 2).map(val => val.trim()); - if (!(maxWinners && name && markup.length)) { - return this.errorReply("You're missing a command parameter - see /help lottery for this command's syntax."); - } - const maxWinnersNum = parseInt(maxWinners); - this.checkHTML(markup); - if (isNaN(maxWinnersNum)) { - return this.errorReply(`${maxWinners} is not a valid number.`); - } - if (maxWinnersNum < 1) { - return this.errorReply('The maximum winners should be at least 1.'); - } - if (maxWinnersNum > Number.MAX_SAFE_INTEGER) { - return this.errorReply('The maximum winners number is too large, please pick a smaller number.'); - } - if (name.length > 50) { - return this.errorReply('Name needs to be under 50 characters.'); - } - createLottery(room.roomid, maxWinnersNum, name, markup); - this.sendReply(`The lottery was successfully ${edited ? 'edited' : 'created'}.`); - if (!edited) { - this.add( - Utils.html`|raw|
${user.name} created the` + - ` "${name}" lottery!
` - ); - } - this.modlog(`LOTTERY ${edited ? 'EDIT' : 'CREATE'} ${name}`, null, `${maxWinnersNum} max winners`); - }, - delete(target, room, user) { - room = this.requireRoom(); - this.checkCan('declare', null, room); - const lottery = lotteries[room.roomid]; - if (!lottery) { - return this.errorReply('This room does not have a lottery running.'); - } - destroyLottery(room.roomid); - this.addModAction(`${user.name} deleted the "${lottery.name}" lottery.`); - this.modlog('LOTTERY DELETE'); - this.sendReply('The lottery was successfully deleted.'); - }, - end(target, room) { - room = this.requireRoom(); - this.checkCan('declare', null, room); - const lottery = lotteries[room.roomid]; - if (!lottery) { - return this.errorReply('This room does not have a lottery running.'); - } - if (!lottery.running) { - return this.errorReply(`The "${lottery.name}" lottery already ended.`); - } - for (const [ip, participant] of Object.entries(lottery.participants)) { - const userid = toID(participant); - const pUser = Users.get(userid); - if ( - Punishments.userids.get(userid) || - Punishments.getRoomPunishments(pUser || userid, {publicOnly: true, checkIps: true}).length - ) { - delete lottery.participants[ip]; - } - } - if (lottery.maxWinners >= Object.keys(lottery.participants).length) { - return this.errorReply('There have been not enough participants for you to be able to end this. If you wish to end it anyway use /lottery delete.'); - } - const winners = getWinnersInLottery(room.roomid); - if (!winners) return this.errorReply(`An error occured while getting the winners.`); - this.add( - Utils.html`|raw|
${Chat.toListString(winners)} won the "${lottery.name}" lottery!
` - ); - this.modlog(`LOTTERY END ${lottery.name}`); - endLottery(room.roomid, winners); - }, - join(target, room, user) { - // This hack is used for the HTML room to be able to - // join lotteries in other rooms from the global room - const roomid = target || room?.roomid; - if (!roomid) { - return this.errorReply(`This is not a valid room.`); - } - const lottery = lotteries[roomid]; - if (!lottery) { - return this.errorReply(`${roomid} does not have a lottery running.`); - } - if (!lottery.running) { - return this.errorReply(`The "${lottery.name}" lottery already ended.`); - } - if (!user.named) { - return this.popupReply('You must be logged into an account to participate.'); - } - if (!user.autoconfirmed) { - return this.popupReply('You must be autoconfirmed to join lotteries.'); - } - if (user.locked || Punishments.getRoomPunishments(user, {publicOnly: true, checkIps: true}).length) { - return this.popupReply('Punished users cannot join lotteries.'); - } - const success = addUserToLottery(roomid as RoomID, user); - if (success) { - this.popupReply('You have successfully joined the lottery.'); - } else { - this.popupReply('You are already in the lottery.'); - } - }, - leave(target, room, user) { - // This hack is used for the HTML room to be able to - // join lotteries in other rooms from the global room - const roomid = target || room?.roomid; - if (!roomid) { - return this.errorReply('This can only be used in rooms.'); - } - const lottery = lotteries[roomid]; - if (!lottery) { - return this.errorReply(`${roomid} does not have a lottery running.`); - } - if (!lottery.running) { - return this.errorReply(`The "${lottery.name}" lottery already ended.`); - } - const success = removeUserFromLottery(roomid as RoomID, user); - if (success) { - this.popupReply('You have successfully left the lottery.'); - } else { - this.popupReply('You have not joined the lottery.'); - } - }, - participants(target, room, user) { - room = this.requireRoom(); - const lottery = lotteries[room.roomid]; - if (!lottery) { - return this.errorReply('This room does not have a lottery running.'); - } - const canSeeIps = user.can('ip'); - const participants = Object.entries(lottery.participants).map( - ([ip, participant]) => `- ${participant}${canSeeIps ? ' (IP: ' + ip + ')' : ''}` - ); - let buf = ''; - if (user.can('declare', null, room)) { - buf += `
List of participants (${participants.length}):${participants.join('
')}
`; - } else { - buf += `${participants.length} participant(s) joined this lottery.`; - } - this.sendReplyBox(buf); - }, - help() { - return this.parse('/help lottery'); - }, - }, - lotteryhelp: [ - `/lottery - opens the current lottery, if it exists.`, - `/lottery create max winners, name, html - creates a new lottery with [name] as the header and [html] as body. Max winners is the amount of people that will win the lottery. Requires # &`, - `/lottery delete - deletes the current lottery without declaring a winner. Requires # &`, - `/lottery end - ends the current lottery, declaring a random participant as the winner. Requires # &`, - `/lottery edit max winners, name, html - edits the lottery with the provided parameters. Requires # &`, - `/lottery join - joins the current lottery, if it exists, you need to be not currently punished in any public room, not locked and be autoconfirmed.`, - `/lottery leave - leaves the current lottery, if it exists.`, - `/lottery participants - shows the current participants in the lottery.`, - ], -}; - -export const pages: Chat.PageTable = { - lottery(query, user) { - this.title = 'Lottery'; - const room = this.requireRoom(); - - let buf = '
'; - const lottery = lotteries[room.roomid]; - if (!lottery) { - buf += `

There is no lottery running in ${room.title}

`; - return buf; - } - buf += `

${lottery.name}

${lottery.markup}
`; - if (lottery.running) { - const userSignedUp = lottery.participants[user.latestIp] || - Object.values(lottery.participants).map(toID).includes(user.id); - buf += ``; - } else { - buf += '

This lottery has already ended. The winners are:

'; - buf += '
    '; - for (const winner of lottery.winners) { - buf += `
  • ${winner}
  • `; - } - buf += '
'; - } - return buf; - }, -}; diff --git a/server/chat-plugins/mafia.ts b/server/chat-plugins/mafia.ts index 8d5bfb0556f3..090bf2e55c9c 100644 --- a/server/chat-plugins/mafia.ts +++ b/server/chat-plugins/mafia.ts @@ -75,6 +75,7 @@ interface MafiaIDEAData { // eg, GestI has 2 things to pick, role and alignment picks: string[]; } + interface MafiaIDEAModule { data: MafiaIDEAData | null; timer: NodeJS.Timer | null; @@ -83,12 +84,22 @@ interface MafiaIDEAModule { // users that haven't picked a role yet waitingPick: string[]; } + interface MafiaIDEAPlayerData { choices: string[]; originalChoices: string[]; picks: {[choice: string]: string | null}; } +// The different possible ways for a player to be eliminated +enum MafiaEliminateType { + ELIMINATE = "was eliminated", // standard (vote + faction kill + anything else) + KICK = "was kicked from the game", // staff kick + TREESTUMP = "was treestumped", // can still talk + SPIRIT = "became a restless spirit", // can still vote + SPIRITSTUMP = "became a restless treestump" // treestump + spirit +} + const DATA_FILE = 'config/chat-plugins/mafia-data.json'; const LOGS_FILE = 'config/chat-plugins/mafia-logs.json'; @@ -179,8 +190,8 @@ class MafiaPlayer extends Rooms.RoomGamePlayer { /** false - can't hammer (priest), true - can only hammer (actor) */ hammerRestriction: null | boolean; lastVote: number; - treestump: boolean; - restless: boolean; + eliminated: MafiaEliminateType | null; + eliminationOrder: number; silenced: boolean; nighttalk: boolean; revealed: string; @@ -195,8 +206,8 @@ class MafiaPlayer extends Rooms.RoomGamePlayer { this.voting = ''; this.hammerRestriction = null; this.lastVote = 0; - this.treestump = false; - this.restless = false; + this.eliminated = null; + this.eliminationOrder = 0; this.silenced = false; this.nighttalk = false; this.revealed = ''; @@ -205,7 +216,14 @@ class MafiaPlayer extends Rooms.RoomGamePlayer { this.actionArr = []; } - getRole(button = false) { + /** + * Called if the player's name changes. + */ + updateSafeName() { + this.safeName = Utils.escapeHTML(this.name); + } + + getStylizedRole(button = false) { if (!this.role) return; let color = MafiaData.alignments[this.role.alignment].color; if (button && MafiaData.alignments[this.role.alignment].buttonColor) { @@ -214,14 +232,47 @@ class MafiaPlayer extends Rooms.RoomGamePlayer { return `${this.role.safeName}`; } + isEliminated() { + return this.eliminated !== null; + } + + isTreestump() { + return this.eliminated === MafiaEliminateType.TREESTUMP || + this.eliminated === MafiaEliminateType.SPIRITSTUMP; + } + + isSpirit() { + return this.eliminated === MafiaEliminateType.SPIRIT || + this.eliminated === MafiaEliminateType.SPIRITSTUMP; + } + + // Only call updateHtmlRoom if the player is still involved in the game in some way + tryUpdateHtmlRoom() { + if ([null, MafiaEliminateType.SPIRIT, MafiaEliminateType.TREESTUMP, + MafiaEliminateType.SPIRITSTUMP].includes(this.eliminated)) { + this.updateHtmlRoom(); + } + } + + /** + * Updates the mafia HTML room for this player. + * @param id Only provided during the destruction process to update the HTML one last time after player.id is cleared. + */ updateHtmlRoom() { + if (this.game.ended) return this.closeHtmlRoom(); const user = Users.get(this.id); - if (!user?.connected) return; - if (this.game.ended) return user.send(`>view-mafia-${this.game.room.roomid}\n|deinit`); + if (!user || !user.connected) return; for (const conn of user.connections) { void Chat.resolvePage(`view-mafia-${this.game.room.roomid}`, user, conn); } } + + closeHtmlRoom() { + const user = Users.get(this.id); + if (!user || !user.connected) return; + return user.send(`>view-mafia-${this.game.room.roomid}\n|deinit`); + } + updateHtmlVotes() { const user = Users.get(this.id); if (!user?.connected) return; @@ -231,13 +282,13 @@ class MafiaPlayer extends Rooms.RoomGamePlayer { } class Mafia extends Rooms.RoomGame { + override readonly gameid = 'mafia' as ID; started: boolean; theme: MafiaDataTheme | null; hostid: ID; host: string; cohostids: ID[]; cohosts: string[]; - dead: {[userid: string]: MafiaPlayer}; subs: ID[]; autoSub: boolean; @@ -251,9 +302,9 @@ class Mafia extends Rooms.RoomGame { hammerModifiers: {[userid: string]: number}; hasPlurality: ID | null; - enableNL: boolean; + enableNV: boolean; voteLock: boolean; - votingAll: boolean; + votingEnabled: boolean; forceVote: boolean; closedSetup: boolean; noReveal: boolean; @@ -275,12 +326,10 @@ class Mafia extends Rooms.RoomGame { constructor(room: ChatRoom, host: User) { super(room); - this.gameid = 'mafia' as ID; this.title = 'Mafia'; this.playerCap = 20; this.allowRenames = false; this.started = false; - this.ended = false; this.theme = null; @@ -289,7 +338,6 @@ class Mafia extends Rooms.RoomGame { this.cohostids = []; this.cohosts = []; - this.dead = Object.create(null); this.subs = []; this.autoSub = true; this.requestedSub = []; @@ -302,9 +350,9 @@ class Mafia extends Rooms.RoomGame { this.hammerModifiers = Object.create(null); this.hasPlurality = null; - this.enableNL = true; + this.enableNV = true; this.voteLock = false; - this.votingAll = true; + this.votingEnabled = true; this.forceVote = false; this.closedSetup = false; this.noReveal = true; @@ -332,24 +380,52 @@ class Mafia extends Rooms.RoomGame { this.sendHTML(this.roomWindow()); } - join(user: User) { - if (this.phase !== 'signups') return user.sendTo(this.room, `|error|The game of ${this.title} has already started.`); - this.canJoin(user, true); - if (this.playerCount >= this.playerCap) return user.sendTo(this.room, `|error|The game of ${this.title} is full.`); - if (!this.addPlayer(user)) return user.sendTo(this.room, `|error|You have already joined the game of ${this.title}.`); + join(user: User, staffAdd: User | null = null, force = false) { + if (this.phase !== 'signups' && !staffAdd) { + return this.sendUser(user, `|error|The game of ${this.title} has already started.`); + } + + this.canJoin(user, !staffAdd, force); + if (this.playerCount >= this.playerCap) return this.sendUser(user, `|error|The game of ${this.title} is full.`); + + const player = this.addPlayer(user); + if (!player) return this.sendUser(user, `|error|You have already joined the game of ${this.title}.`); + if (this.started) { + player.role = { + name: `Unknown`, + safeName: `Unknown`, + id: `unknown`, + alignment: 'solo', + image: '', + memo: [`You were added to the game after it had started. To learn about your role, PM the host (${this.host}).`], + }; + this.roles.push(player.role); + this.played.push(player.id); + } else { + // TODO improve reseting roles + this.originalRoles = []; + this.originalRoleString = ''; + this.roles = []; + this.roleString = ''; + } + if (this.subs.includes(user.id)) this.subs.splice(this.subs.indexOf(user.id), 1); - this.playerTable[user.id].updateHtmlRoom(); - this.sendRoom(`${this.playerTable[user.id].name} has joined the game.`); + player.updateHtmlRoom(); + if (staffAdd) { + this.sendDeclare(`${player.name} has been added to the game by ${staffAdd.name}.`); + this.logAction(staffAdd, 'added player'); + } else { + this.sendRoom(`${player.name} has joined the game.`); + } } leave(user: User) { - if (!(user.id in this.playerTable)) { - return user.sendTo(this.room, `|error|You have not joined the game of ${this.title}.`); + const player = this.getPlayer(user.id); + if (!player) { + return this.sendUser(user, `|error|You have not joined the game of ${this.title}.`); } - if (this.phase !== 'signups') return user.sendTo(this.room, `|error|The game of ${this.title} has already started.`); - this.playerTable[user.id].destroy(); - delete this.playerTable[user.id]; - this.playerCount--; + if (this.phase !== 'signups') return this.sendUser(user, `|error|The game of ${this.title} has already started.`); + this.removePlayer(player); let subIndex = this.requestedSub.indexOf(user.id); if (subIndex !== -1) this.requestedSub.splice(subIndex, 1); subIndex = this.hostRequestedSub.indexOf(user.id); @@ -398,6 +474,16 @@ class Mafia extends Rooms.RoomGame { return new MafiaPlayer(user, this); } + getPlayer(userid: ID) { + const matches = this.players.filter(p => p.id === userid); + if (matches.length > 1) { + // Should never happen + throw new Error(`Duplicate player IDs in Mafia game! Matches: ${matches.map(p => p.id).join(', ')}`); + } + + return matches.length > 0 ? matches[0] : null; + } + setRoles(user: User, roleString: string, force = false, reset = false) { let roles = roleString.split(',').map(x => x.trim()); @@ -424,14 +510,14 @@ class Mafia extends Rooms.RoomGame { roles = IDEA.roles; this.theme = null; } else { - return user.sendTo(this.room, `|error|${roles[0]} is not a valid theme or IDEA.`); + return this.sendUser(user, `|error|${roles[0]} is not a valid theme or IDEA.`); } } else { this.theme = null; } if (roles.length < this.playerCount) { - return user.sendTo(this.room, `|error|You have not provided enough roles for the players.`); + return this.sendUser(user, `|error|You have not provided enough roles for the players.`); } else if (roles.length > this.playerCount) { user.sendTo( this.room, @@ -482,9 +568,9 @@ class Mafia extends Rooms.RoomGame { } if (problems.length) { for (const problem of problems) { - user.sendTo(this.room, `|error|${problem}`); + this.sendUser(user, `|error|${problem}`); } - return user.sendTo(this.room, `|error|To forcibly set the roles, use /mafia force${reset ? "re" : ""}setroles`); + return this.sendUser(user, `|error|To forcibly set the roles, use /mafia force${reset ? "re" : ""}setroles`); } this.IDEA.data = null; @@ -511,15 +597,15 @@ class Mafia extends Rooms.RoomGame { const host = Users.get(hostid); if (host?.connected) host.send(`>${this.room.roomid}\n|notify|It's night in your game of Mafia!`); } - for (const player of Object.values(this.playerTable)) { + for (const player of this.players) { const user = Users.get(player.id); if (user?.connected) { - user.sendTo(this.room.roomid, `|notify|It's night in the game of Mafia! Send in an action or idle.`); + this.sendUser(user, `|notify|It's night in the game of Mafia! Send in an action or idle.`); } + + player.actionArr.length = 0; // Yes, this works. It empties the array. } - for (const player in this.playerTable) { - this.playerTable[player].actionArr.splice(0, this.playerTable[player].actionArr.length); - } + if (this.timer) this.setDeadline(0); this.sendDeclare(`The game has been reset.`); this.distributeRoles(); @@ -530,6 +616,7 @@ class Mafia extends Rooms.RoomGame { } return; } + static parseRole(roleString: string) { const roleName = roleString.replace(/solo/, '').trim(); @@ -614,21 +701,21 @@ class Mafia extends Rooms.RoomGame { start(user: User, day = false) { if (!user) return; if (this.phase !== 'locked' && this.phase !== 'IDEAlocked') { - if (this.phase === 'signups') return user.sendTo(this.room, `You need to close the signups first.`); + if (this.phase === 'signups') return this.sendUser(user, `You need to close the signups first.`); if (this.phase === 'IDEApicking') { - return user.sendTo(this.room, `You must wait for IDEA picks to finish before starting.`); + return this.sendUser(user, `You must wait for IDEA picks to finish before starting.`); } - return user.sendTo(this.room, `The game is already started!`); + return this.sendUser(user, `The game is already started!`); } - if (this.playerCount < 2) return user.sendTo(this.room, `You need at least 2 players to start.`); + if (this.playerCount < 2) return this.sendUser(user, `You need at least 2 players to start.`); if (this.phase === 'IDEAlocked') { - for (const p in this.playerTable) { - if (!this.playerTable[p].role) return user.sendTo(this.room, `|error|Not all players have a role.`); + for (const p of this.players) { + if (!p.role) return this.sendUser(user, `|error|Not all players have a role.`); } } else { - if (!Object.keys(this.roles).length) return user.sendTo(this.room, `You need to set the roles before starting.`); + if (!Object.keys(this.roles).length) return this.sendUser(user, `You need to set the roles before starting.`); if (Object.keys(this.roles).length < this.playerCount) { - return user.sendTo(this.room, `You have not provided enough roles for the players.`); + return this.sendUser(user, `You have not provided enough roles for the players.`); } } this.started = true; @@ -648,18 +735,19 @@ class Mafia extends Rooms.RoomGame { distributeRoles() { const roles = Utils.shuffle(this.roles.slice()); if (roles.length) { - for (const p in this.playerTable) { + for (const p of this.players) { const role = roles.shift()!; - this.playerTable[p].role = role; - const u = Users.get(p); - this.playerTable[p].revealed = ''; + p.role = role; + const u = Users.get(p.id); + p.revealed = ''; if (u?.connected) { u.send(`>${this.room.roomid}\n|notify|Your role is ${role.safeName}. For more details of your role, check your Role PM.`); } } } - this.dead = {}; - this.played = [this.hostid, ...this.cohostids, ...(Object.keys(this.playerTable) as ID[])]; + + this.clearEliminations(); + this.played = [this.hostid, ...this.cohostids, ...(this.players.map(p => p.id))]; this.sendDeclare(`The roles have been distributed.`); this.updatePlayers(); } @@ -667,10 +755,10 @@ class Mafia extends Rooms.RoomGame { getPartners(alignment: string, player: MafiaPlayer) { if (!player?.role || ['town', 'solo', 'traitor'].includes(player.role.alignment)) return ""; const partners = []; - for (const p in this.playerTable) { - if (p === player.id) continue; - const role = this.playerTable[p].role; - if (role && role.alignment === player.role.alignment) partners.push(this.playerTable[p].name); + for (const p of this.players) { + if (p.id === player.id) continue; + const role = p.role; + if (role && role.alignment === player.role.alignment) partners.push(p.name); } return partners.join(", "); } @@ -680,7 +768,7 @@ class Mafia extends Rooms.RoomGame { if (this.dayNum === 0 && extension !== null) return this.sendUser(this.hostid, `|error|You cannot extend on day 0.`); if (this.timer) this.setDeadline(0); if (extension === null) { - if (!isNaN(this.hammerCount)) this.hammerCount = Math.floor(Object.keys(this.playerTable).length / 2) + 1; + if (!isNaN(this.hammerCount)) this.hammerCount = Math.floor(this.getRemainingPlayers().length / 2) + 1; this.clearVotes(); } this.phase = 'day'; @@ -695,8 +783,8 @@ class Mafia extends Rooms.RoomGame { } else { this.sendDeclare(`Day ${this.dayNum}. The hammer count is set at ${this.hammerCount}`); } - for (const p in this.playerTable) { - this.playerTable[p].action = null; + for (const p of this.players) { + p.action = null; } this.sendPlayerList(); this.updatePlayers(); @@ -710,137 +798,165 @@ class Mafia extends Rooms.RoomGame { const host = Users.get(hostid); if (host?.connected) host.send(`>${this.room.roomid}\n|notify|It's night in your game of Mafia!`); } - for (const player of Object.values(this.playerTable)) { + + for (const player of this.players) { const user = Users.get(player.id); if (user?.connected) { - user.sendTo(this.room.roomid, `|notify|It's night in the game of Mafia! Send in an action or idle.`); + this.sendUser(user, `|notify|It's night in the game of Mafia! Send in an action or idle.`); } } + if (this.takeIdles) { this.sendDeclare(`Night ${this.dayNum}. Submit whether you are using an action or idle. If you are using an action, DM your action to the host.`); } else { this.sendDeclare(`Night ${this.dayNum}. PM the host your action, or idle.`); } + const hasPlurality = this.getPlurality(); + if (!early && hasPlurality) { - this.sendRoom(`Plurality is on ${this.playerTable[hasPlurality] ? this.playerTable[hasPlurality].name : 'No Vote'}`); + this.sendRoom(`Plurality is on ${this.getPlayer(hasPlurality)?.name || 'No Vote'}`); } if (!early && !initial) this.sendRoom(`|raw|
${this.voteBox()}
`); - if (initial && !isNaN(this.hammerCount)) this.hammerCount = Math.floor(Object.keys(this.playerTable).length / 2) + 1; + if (initial && !isNaN(this.hammerCount)) this.hammerCount = Math.floor(this.getRemainingPlayers().length / 2) + 1; this.updatePlayers(); } - vote(userid: ID, target: ID) { - if (!this.votingAll) return this.sendUser(userid, `|error|Voting is not allowed.`); - if (this.phase !== 'day') return this.sendUser(userid, `|error|You can only vote during the day.`); - let player = this.playerTable[userid]; - if (!player && this.dead[userid] && this.dead[userid].restless) player = this.dead[userid]; - if (!player) return; - if (!(target in this.playerTable) && target !== 'novote') { - return this.sendUser(userid, `|error|${target} is not a valid player.`); + vote(voter: MafiaPlayer, targetId: ID) { + if (!this.votingEnabled) return this.sendUser(voter, `|error|Voting is not allowed.`); + if (this.phase !== 'day') return this.sendUser(voter, `|error|You can only vote during the day.`); + if (!voter || (voter.isEliminated() && !voter.isSpirit())) return; + + const target = this.getPlayer(targetId); + if ((!target || target.isEliminated()) && targetId !== 'novote') { + return this.sendUser(voter, `|error|${targetId} is not a valid player.`); } - if (!this.enableNL && target === 'novote') return this.sendUser(userid, `|error|No Vote is not allowed.`); - if (target === player.id && !this.selfEnabled) return this.sendUser(userid, `|error|Self voting is not allowed.`); - if (this.voteLock && player.voting) { - return this.sendUser(userid, `|error|You cannot switch your vote because votes are locked.`); + + if (!this.enableNV && targetId === 'novote') return this.sendUser(voter, `|error|No Vote is not allowed.`); + if (targetId === voter.id && !this.selfEnabled) return this.sendUser(voter, `|error|Self voting is not allowed.`); + + if (this.voteLock && voter.voting) { + return this.sendUser(voter, `|error|You cannot switch your vote because votes are locked.`); } - const hammering = this.hammerCount - 1 <= (this.votes[target] ? this.votes[target].count : 0); - if (target === player.id && !hammering && this.selfEnabled === 'hammer') { - return this.sendUser(userid, `|error|You may only vote yourself when placing the hammer vote.`); + + const currentVotes = this.votes[targetId] ? this.votes[targetId].count : 0; + // 1 is added to the existing count to represent the vote we are processing now + const hammering = currentVotes + 1 >= this.hammerCount; + if (targetId === voter.id && !hammering && this.selfEnabled === 'hammer') { + return this.sendUser(voter, `|error|You may only vote yourself when placing the hammer vote.`); } - if (player.hammerRestriction !== null) { - this.sendUser(userid, `${this.hammerCount - 1} <= ${(this.votes[target] ? this.votes[target].count : 0)}`); - if (player.hammerRestriction && !hammering) { - return this.sendUser(userid, `|error|You can only vote when placing the hammer vote.`); + + if (voter.hammerRestriction !== null) { + if (voter.hammerRestriction && !hammering) { + return this.sendUser(voter, `|error|You can only vote when placing the hammer vote.`); + } else if (!voter.hammerRestriction && hammering) { + return this.sendUser(voter, `|error|You cannot place the hammer vote.`); } - if (!player.hammerRestriction && hammering) return this.sendUser(userid, `|error|You cannot place the hammer vote.`); } - if (player.lastVote + 2000 >= Date.now()) { + + if (voter.lastVote + 2000 >= Date.now()) { return this.sendUser( - userid, - `|error|You must wait another ${Chat.toDurationString((player.lastVote + 2000) - Date.now()) || '1 second'} before you can change your vote.` + voter, + `|error|You must wait another ${Chat.toDurationString((voter.lastVote + 2000) - Date.now()) || '1 second'} before you can change your vote.` ); } - const previousVote = player.voting; - if (previousVote) this.unvote(userid, true); - let vote = this.votes[target]; + + // -- VALID -- + + const previousVote = voter.voting; + if (previousVote) this.unvote(voter, true); + let vote = this.votes[targetId]; if (!vote) { - this.votes[target] = { - count: 1, trueCount: this.getVoteValue(userid), lastVote: Date.now(), dir: 'up', voters: [userid], + this.votes[targetId] = { + count: 1, trueCount: this.getVoteValue(voter), lastVote: Date.now(), dir: 'up', voters: [voter.id], }; - vote = this.votes[target]; + vote = this.votes[targetId]; } else { vote.count++; - vote.trueCount += this.getVoteValue(userid); + vote.trueCount += this.getVoteValue(voter); vote.lastVote = Date.now(); vote.dir = 'up'; - vote.voters.push(userid); + vote.voters.push(voter.id); } - player.voting = target; - const name = player.voting === 'novote' ? 'No Vote' : this.playerTable[player.voting].name; - const targetUser = Users.get(userid); + voter.voting = targetId; + voter.lastVote = Date.now(); + + const name = voter.voting === 'novote' ? 'No Vote' : target?.name; if (previousVote) { - this.sendTimestamp(`${(targetUser ? targetUser.name : userid)} has shifted their vote from ${previousVote === 'novote' ? 'No Vote' : this.playerTable[previousVote].name} to ${name}`); + this.sendTimestamp(`${voter.name} has shifted their vote from ${previousVote === 'novote' ? 'No Vote' : this.getPlayer(previousVote)?.name} to ${name}`); } else { this.sendTimestamp( name === 'No Vote' ? - `${(targetUser ? targetUser.name : userid)} has abstained from voting.` : - `${(targetUser ? targetUser.name : userid)} has voted ${name}.` + `${voter.name} has abstained from voting.` : + `${voter.name} has voted ${name}.` ); } - player.lastVote = Date.now(); + this.hasPlurality = null; - if (this.getHammerValue(target) <= vote.trueCount) { + if (this.getHammerValue(targetId) <= vote.trueCount) { // HAMMER - this.sendDeclare(`Hammer! ${target === 'novote' ? 'Nobody' : Utils.escapeHTML(name)} was voted out!`); + this.sendDeclare(`Hammer! ${targetId === 'novote' ? 'Nobody' : Utils.escapeHTML(name as string)} was voted out!`); this.sendRoom(`|raw|
${this.voteBox()}
`); - if (target !== 'novote') this.eliminate(target, 'kill'); + if (targetId !== 'novote') this.eliminate(target as MafiaPlayer, MafiaEliminateType.ELIMINATE); this.night(true); return; } this.updatePlayersVotes(); } - unvote(userid: ID, force = false) { - if (this.phase !== 'day' && !force) return this.sendUser(userid, `|error|You can only vote during the day.`); - let player = this.playerTable[userid]; + unvote(voter: MafiaPlayer, force = false) { + // Force skips (most) validation + if (!force) { + if (this.phase !== 'day') return this.sendUser(voter, `|error|You can only vote during the day.`); - // autoselfvote blocking doesn't apply to restless spirits - if (player && this.forceVote && !force) { - return this.sendUser(userid, `|error|You can only shift your vote, not unvote.`); - } + if (voter.isEliminated() && !voter.isSpirit()) { + return; // can't vote + } - if (!player && this.dead[userid] && this.dead[userid].restless) player = this.dead[userid]; - if (!player?.voting) return this.sendUser(userid, `|error|You are not voting for anyone.`); - if (this.voteLock && player?.voting) { - return this.sendUser(userid, `|error|You cannot unvote because votes are locked.`); - } - if (player.lastVote + 2000 >= Date.now() && !force) { - return this.sendUser( - userid, - `|error|You must wait another ${Chat.toDurationString((player.lastVote + 2000) - Date.now()) || '1 second'} before you can change your vote.` - ); + // autoselfvote blocking doesn't apply to restless spirits + if (!voter.isEliminated() && this.forceVote) { + return this.sendUser(voter, `|error|You can only shift your vote, not unvote.`); + } + + if (this.voteLock && voter.voting) { + return this.sendUser(voter, `|error|You cannot unvote because votes are locked.`); + } + + if (voter.lastVote + 2000 >= Date.now()) { + return this.sendUser( + voter, + `|error|You must wait another ${Chat.toDurationString((voter.lastVote + 2000) - Date.now()) || '1 second'} before you can change your vote.` + ); + } } - const vote = this.votes[player.voting]; + + if (!voter.voting) return this.sendUser(voter, `|error|You are not voting for anyone.`); + + const vote = this.votes[voter.voting]; vote.count--; - vote.trueCount -= this.getVoteValue(userid); + vote.trueCount -= this.getVoteValue(voter); if (vote.count <= 0) { - delete this.votes[player.voting]; + delete this.votes[voter.voting]; } else { vote.lastVote = Date.now(); vote.dir = 'down'; - vote.voters.splice(vote.voters.indexOf(userid), 1); + vote.voters.splice(vote.voters.indexOf(voter.id), 1); } - const targetUser = Users.get(userid); + + const target = this.getPlayer(voter.voting); + if (!target && voter.voting !== 'novote') { + throw new Error(`Unable to find target when unvoting. Voter: ${voter.id}, Target: ${voter.voting}`); + } + if (!force) { this.sendTimestamp( - player.voting === 'novote' ? - `${(targetUser ? targetUser.name : userid)} is no longer abstaining from voting.` : - `${(targetUser ? targetUser.name : userid)} has unvoted ${this.playerTable[player.voting].name}.` + voter.voting === 'novote' ? + `${voter.name} is no longer abstaining from voting.` : + `${voter.name} has unvoted ${target?.name}.` ); } - player.voting = ''; - player.lastVote = Date.now(); + voter.voting = ''; + voter.lastVote = Date.now(); this.hasPlurality = null; this.updatePlayersVotes(); } @@ -857,45 +973,59 @@ class Mafia extends Rooms.RoomGame { -vote.count, ]); for (const [key, vote] of list) { - buf += `${vote.count}${plur === key ? '*' : ''} ${this.playerTable[key]?.safeName || 'No Vote'} (${vote.voters.map(a => this.playerTable[a]?.safeName || a).join(', ')})
`; + const player = this.getPlayer(toID(key)); + buf += `${vote.count}${plur === key ? '*' : ''} ${player?.safeName || 'No Vote'} (${vote.voters.map(a => this.getPlayer(a)?.safeName || a).join(', ')})
`; } return buf; } + voteBoxFor(userid: ID) { let buf = ''; buf += `

Votes (Hammer: ${this.hammerCount || 'Disabled'})

`; const plur = this.getPlurality(); - for (const key of Object.keys(this.playerTable).concat((this.enableNL ? ['novote'] : [])) as ID[]) { - if (this.votes[key]) { - buf += `

${this.votes[key].count}${plur === key ? '*' : ''} ${this.playerTable[key] ? `${this.playerTable[key].safeName} ${this.playerTable[key].revealed ? `[${this.playerTable[key].revealed}]` : ''}` : 'No Vote'} (${this.votes[key].voters.map(a => this.playerTable[a] ? this.playerTable[a].safeName : a).join(', ')}) `; + const self = this.getPlayer(userid); + + for (const key of this.getRemainingPlayers().map(p => p.id).concat((this.enableNV ? ['novote' as ID] : []))) { + const votes = this.votes[key]; + const player = this.getPlayer(key); + buf += `

${votes?.count || 0}${plur === key ? '*' : ''} `; + if (player) { + buf += `${player.safeName} ${player.revealed ? `[${player.revealed}]` : ''} `; } else { - buf += `

0 ${this.playerTable[key] ? `${this.playerTable[key].safeName} ${this.playerTable[key].revealed ? `[${this.playerTable[key].revealed}]` : ''}` : 'No Vote'} `; - } - const isPlayer = (this.playerTable[userid]); - const isSpirit = (this.dead[userid] && this.dead[userid].restless); - if (this.votingAll && !(this.voteLock && (isPlayer?.voting || (isSpirit && this.dead[userid].voting))) && - (isPlayer || isSpirit)) { - if (isPlayer && this.playerTable[userid].voting === key || isSpirit && this.dead[userid].voting === key) { - buf += ``; - } else if ((this.selfEnabled && !isSpirit) || userid !== key) { - buf += ``; - } - } else if (userid === this.hostid || this.cohostids.includes(userid)) { - const vote = this.votes[key]; - if (vote && vote.count !== vote.trueCount) buf += `(${vote.trueCount})`; + buf += `No Vote `; + } + + if (votes) { + buf += `(${votes.voters.map(v => this.getPlayer(v)?.safeName || v).join(', ')}) `; + } + + if (userid === this.hostid || this.cohostids.includes(userid)) { + if (votes && votes.count !== votes.trueCount) buf += `(${votes.trueCount})`; if (this.hammerModifiers[key]) buf += `(${this.getHammerValue(key)} to hammer)`; + } else if (self && this.votingEnabled && (!this.voteLock || !self.voting) && + (!self.isEliminated() || self.isSpirit())) { + let cmd = ''; + if (self.voting === key) { + cmd = 'unvote'; + } else if (self.id !== key || (this.selfEnabled && !self.isSpirit())) { + cmd = `vote ${key}`; + } + + if (cmd) { + buf += ``; + } } buf += `

`; } return buf; } - applyVoteModifier(user: User, target: ID, mod: number) { - const targetPlayer = this.playerTable[target] || this.dead[target]; - if (!targetPlayer) return this.sendUser(user, `|error|${target} is not in the game of mafia.`); - const oldMod = this.voteModifiers[target]; + + applyVoteModifier(requester: User, targetPlayer: MafiaPlayer, mod: number) { + if (!targetPlayer) return this.sendUser(requester, `|error|${targetPlayer} is not in the game of mafia.`); + const oldMod = this.voteModifiers[targetPlayer.id]; if (mod === oldMod || ((isNaN(mod) || mod === 1) && oldMod === undefined)) { - if (isNaN(mod) || mod === 1) return this.sendUser(user, `|error|${target} already has no vote modifier.`); - return this.sendUser(user, `|error|${target} already has a vote modifier of ${mod}`); + if (isNaN(mod) || mod === 1) return this.sendUser(requester, `|error|${targetPlayer} already has no vote modifier.`); + return this.sendUser(requester, `|error|${targetPlayer} already has a vote modifier of ${mod}`); } const newMod = isNaN(mod) ? 1 : mod; if (targetPlayer.voting) { @@ -906,60 +1036,62 @@ class Mafia extends Rooms.RoomGame { } } if (newMod === 1) { - delete this.voteModifiers[target]; - return this.sendUser(user, `${targetPlayer.name} has had their vote modifier removed.`); + delete this.voteModifiers[targetPlayer.id]; + return this.sendUser(requester, `${targetPlayer.name} has had their vote modifier removed.`); } else { - this.voteModifiers[target] = newMod; - return this.sendUser(user, `${targetPlayer.name} has been given a vote modifier of ${newMod}`); + this.voteModifiers[targetPlayer.id] = newMod; + return this.sendUser(requester, `${targetPlayer.name} has been given a vote modifier of ${newMod}`); } } - applyHammerModifier(user: User, target: ID, mod: number) { - if (!(target in this.playerTable || target === 'novote')) { - return this.sendUser(user, `|error|${target} is not in the game of mafia.`); - } - const oldMod = this.hammerModifiers[target]; + + applyHammerModifier(user: User, target: MafiaPlayer, mod: number) { + const oldMod = this.hammerModifiers[target.id]; if (mod === oldMod || ((isNaN(mod) || mod === 0) && oldMod === undefined)) { if (isNaN(mod) || mod === 0) return this.sendUser(user, `|error|${target} already has no hammer modifier.`); return this.sendUser(user, `|error|${target} already has a hammer modifier of ${mod}`); } const newMod = isNaN(mod) ? 0 : mod; - if (this.votes[target]) { + if (this.votes[target.id]) { // do this manually since we havent actually changed the value yet - if (this.hammerCount + newMod <= this.votes[target].trueCount) { + if (this.hammerCount + newMod <= this.votes[target.id].trueCount) { // make sure these strings are the same this.sendRoom(`${target} has been voted due to a modifier change! They have not been eliminated.`); this.night(true); } } if (newMod === 0) { - delete this.hammerModifiers[target]; + delete this.hammerModifiers[target.id]; return this.sendUser(user, `${target} has had their hammer modifier removed.`); } else { - this.hammerModifiers[target] = newMod; + this.hammerModifiers[target.id] = newMod; return this.sendUser(user, `${target} has been given a hammer modifier of ${newMod}`); } } + clearVoteModifiers(user: User) { - for (const player of [...Object.keys(this.playerTable), ...Object.keys(this.dead)] as ID[]) { - if (this.voteModifiers[player]) this.applyVoteModifier(user, player, 1); + for (const player of this.players) { + if (this.voteModifiers[player.id]) this.applyVoteModifier(user, player, 1); } } + clearHammerModifiers(user: User) { - for (const player of ['novote', ...Object.keys(this.playerTable)] as ID[]) { - if (this.hammerModifiers[player]) this.applyHammerModifier(user, player, 0); + for (const player of this.players) { + if (this.hammerModifiers[player.id]) this.applyHammerModifier(user, player, 0); } } - getVoteValue(userid: ID) { - const mod = this.voteModifiers[userid]; + getVoteValue(player: MafiaPlayer) { + const mod = this.voteModifiers[player.id]; return (mod === undefined ? 1 : mod); } - getHammerValue(userid: ID) { - const mod = this.hammerModifiers[userid]; + + getHammerValue(player: ID) { + const mod = this.hammerModifiers[player]; return (mod === undefined ? this.hammerCount : this.hammerCount + mod); } + resetHammer() { - this.setHammer(Math.floor(Object.keys(this.playerTable).length / 2) + 1); + this.setHammer(Math.floor(this.players.length / 2) + 1); } setHammer(count: number) { @@ -1016,62 +1148,38 @@ class Mafia extends Rooms.RoomGame { return this.hasPlurality; } - eliminate(toEliminate: string, ability: string) { - if (!(toEliminate in this.playerTable || toEliminate in this.dead)) return; + override removePlayer(player: MafiaPlayer) { + player.closeHtmlRoom(); + const result = super.removePlayer(player); + return result; + } + + eliminate(toEliminate: MafiaPlayer, ability: MafiaEliminateType) { if (!this.started) { // Game has not started, simply kick the player - const player = this.playerTable[toEliminate]; - this.sendDeclare(`${player.safeName} was kicked from the game!`); - if (this.hostRequestedSub.includes(player.id)) { - this.hostRequestedSub.splice(this.hostRequestedSub.indexOf(player.id), 1); + this.sendDeclare(`${toEliminate.safeName} was kicked from the game!`); + if (this.hostRequestedSub.includes(toEliminate.id)) { + this.hostRequestedSub.splice(this.hostRequestedSub.indexOf(toEliminate.id), 1); } - if (this.requestedSub.includes(player.id)) { - this.requestedSub.splice(this.requestedSub.indexOf(player.id), 1); + if (this.requestedSub.includes(toEliminate.id)) { + this.requestedSub.splice(this.requestedSub.indexOf(toEliminate.id), 1); } - delete this.playerTable[player.id]; - this.playerCount--; - player.updateHtmlRoom(); - player.destroy(); + this.removePlayer(toEliminate); return; } - if (toEliminate in this.playerTable) { - this.dead[toEliminate] = this.playerTable[toEliminate]; - } else { - this.playerCount++; // so that the playercount decrement later isn't unnecessary - } - - const player = this.dead[toEliminate]; - let msg = `${player.safeName}`; - switch (ability) { - case 'treestump': - this.dead[player.id].treestump = true; - this.dead[player.id].restless = false; - msg += ` has been treestumped`; - break; - case 'spirit': - this.dead[player.id].treestump = false; - this.dead[player.id].restless = true; - msg += ` became a restless spirit`; - break; - case 'spiritstump': - this.dead[player.id].treestump = true; - this.dead[player.id].restless = true; - msg += ` became a restless treestump`; - break; - case 'kick': - this.dead[player.id].treestump = false; - this.dead[player.id].restless = false; - msg += ` was kicked from the game`; - break; - default: - this.dead[player.id].treestump = false; - this.dead[player.id].restless = false; - msg += ` was eliminated`; - } - if (player.voting) this.unvote(player.id, true); - this.sendDeclare(`${msg}! ${!this.noReveal && toID(ability) === 'kill' ? `${player.safeName}'s role was ${player.getRole()}.` : ''}`); - if (player.role && !this.noReveal && toID(ability) === 'kill') player.revealed = player.getRole()!; - const targetRole = player.role; + + toEliminate.eliminationOrder = this.getEliminatedPlayers() // Before eliminating, get other eliminated players + .map(p => p.eliminationOrder) // convert to an array of elimination order numbers + .reduce((a, b) => Math.max(a, b), 0) + 1; // get the largest of the existing elim order numbers and add 1 + toEliminate.eliminated = ability; + + if (toEliminate.voting) this.unvote(toEliminate, true); + this.sendDeclare(`${toEliminate.safeName} ${ability}! ${!this.noReveal && ability === MafiaEliminateType.ELIMINATE ? `${toEliminate.safeName}'s role was ${toEliminate.getStylizedRole()}.` : ''}`); + if (toEliminate.role && !this.noReveal && ability === MafiaEliminateType.ELIMINATE) { + toEliminate.revealed = toEliminate.getStylizedRole()!; + } + + const targetRole = toEliminate.role; if (targetRole) { for (const [roleIndex, role] of this.roles.entries()) { if (role.id === targetRole.id) { @@ -1080,96 +1188,75 @@ class Mafia extends Rooms.RoomGame { } } } - this.clearVotes(player.id); - delete this.playerTable[player.id]; - let subIndex = this.requestedSub.indexOf(player.id); + this.clearVotes(toEliminate.id); + let subIndex = this.requestedSub.indexOf(toEliminate.id); if (subIndex !== -1) this.requestedSub.splice(subIndex, 1); - subIndex = this.hostRequestedSub.indexOf(player.id); + subIndex = this.hostRequestedSub.indexOf(toEliminate.id); if (subIndex !== -1) this.hostRequestedSub.splice(subIndex, 1); - this.playerCount--; this.updateRoleString(); + if (ability === MafiaEliminateType.KICK) { + toEliminate.closeHtmlRoom(); + this.removePlayer(toEliminate); + } this.updatePlayers(); - player.updateHtmlRoom(); } revealRole(user: User, toReveal: MafiaPlayer, revealAs: string) { if (!this.started) { - return user.sendTo(this.room, `|error|You may only reveal roles once the game has started.`); + return this.sendUser(user, `|error|You may only reveal roles once the game has started.`); } if (!toReveal.role) { - return user.sendTo(this.room, `|error|The user ${toReveal.id} is not assigned a role.`); + return this.sendUser(user, `|error|The user ${toReveal.id} is not assigned a role.`); } toReveal.revealed = revealAs; - this.sendDeclare(`${toReveal.safeName}'s role ${toReveal.id in this.playerTable ? `is` : `was`} ${revealAs}.`); + this.sendDeclare(`${toReveal.safeName}'s role ${toReveal.isEliminated() ? `was` : `is`} ${revealAs}.`); this.updatePlayers(); } - revive(user: User, toRevive: string, force = false) { + revive(user: User, toRevive: MafiaPlayer) { if (this.phase === 'IDEApicking') { - return user.sendTo(this.room, `|error|You cannot add or remove players while IDEA roles are being picked.`); + return this.sendUser(user, `|error|You cannot add or remove players while IDEA roles are being picked.`); } - if (toRevive in this.playerTable) { - user.sendTo(this.room, `|error|The user ${toRevive} is already a living player.`); + if (!toRevive.isEliminated()) { + this.sendUser(user, `|error|The user ${toRevive} is already a living player.`); return; } - if (toRevive in this.dead) { - const deadPlayer = this.dead[toRevive]; - if (deadPlayer.treestump) deadPlayer.treestump = false; - if (deadPlayer.restless) deadPlayer.restless = false; - this.sendDeclare(`${deadPlayer.safeName} was revived!`); - this.playerTable[deadPlayer.id] = deadPlayer; - const targetRole = deadPlayer.role; - if (targetRole) { - this.roles.push(targetRole); - } else { - // Should never happen - deadPlayer.role = { - name: `Unknown`, - safeName: `Unknown`, - id: `unknown`, - alignment: 'solo', - image: '', - memo: [ - `You were revived, but had no role. Please let a Mafia Room Owner know this happened. To learn about your role, PM the host (${this.host}).`, - ], - }; - this.roles.push(deadPlayer.role); - } - Utils.sortBy(this.roles, r => [r.alignment, r.name]); - delete this.dead[deadPlayer.id]; + + toRevive.eliminated = null; + this.sendDeclare(`${toRevive.safeName} was revived!`); + const targetRole = toRevive.role; + if (targetRole) { + this.roles.push(targetRole); } else { - const targetUser = Users.get(toRevive); - if (!targetUser) return; - this.canJoin(targetUser, false, force); - const player = this.makePlayer(targetUser); - if (this.started) { - player.role = { - name: `Unknown`, - safeName: `Unknown`, - id: `unknown`, - alignment: 'solo', - image: '', - memo: [`You were added to the game after it had started. To learn about your role, PM the host (${this.host}).`], - }; - this.roles.push(player.role); - this.played.push(targetUser.id); - } else { - this.originalRoles = []; - this.originalRoleString = ''; - this.roles = []; - this.roleString = ''; - } - if (this.subs.includes(targetUser.id)) this.subs.splice(this.subs.indexOf(targetUser.id), 1); - this.playerTable[targetUser.id] = player; - this.sendDeclare(Utils.html`${targetUser.name} has been added to the game by ${user.name}!`); + // Should never happen + toRevive.role = { + name: `Unknown`, + safeName: `Unknown`, + id: `unknown`, + alignment: 'solo', + image: '', + memo: [ + `You were revived, but had no role. Please let a Mafia Room Owner know this happened. To learn about your role, PM the host (${this.host}).`, + ], + }; + this.roles.push(toRevive.role); } - this.playerCount++; + Utils.sortBy(this.roles, r => [r.alignment, r.name]); + this.updateRoleString(); this.updatePlayers(); return true; } + getRemainingPlayers() { + return this.players.filter(player => !player.isEliminated()); + } + + getEliminatedPlayers() { + return this.players.filter(player => player.isEliminated()).sort((a, b) => a.eliminationOrder - b.eliminationOrder); + } + setDeadline(minutes: number, silent = false) { if (isNaN(minutes)) return; if (!minutes) { @@ -1211,56 +1298,46 @@ class Mafia extends Rooms.RoomGame { this.sendTimestamp(`**The deadline has been set for ${minutes} minute${minutes === 1 ? '' : 's'}.**`); } - sub(player: string, replacement: string) { - const oldPlayer = this.playerTable[player]; - if (!oldPlayer) return; // should never happen + sub(player: MafiaPlayer, newUser: User) { + const oldPlayerId = player.id; + const oldSafeName = player.safeName; + this.setPlayerUser(player, newUser); + player.updateSafeName(); - const newUser = Users.get(replacement); - if (!newUser) return; // should never happen - const newPlayer = this.makePlayer(newUser); - newPlayer.role = oldPlayer.role; - newPlayer.IDEA = oldPlayer.IDEA; - if (oldPlayer.voting) { + if (player.voting) { // Dont change plurality - const vote = this.votes[oldPlayer.voting]; - vote.voters.splice(vote.voters.indexOf(oldPlayer.id), 1); - vote.voters.push(newPlayer.id); - newPlayer.voting = oldPlayer.voting; - oldPlayer.voting = ''; + const vote = this.votes[player.voting]; + vote.voters.splice(vote.voters.indexOf(oldPlayerId), 1); + vote.voters.push(player.id); } - this.playerTable[newPlayer.id] = newPlayer; // Transfer votes on the old player to the new one - if (this.votes[oldPlayer.id]) { - this.votes[newPlayer.id] = this.votes[oldPlayer.id]; - delete this.votes[oldPlayer.id]; - for (const p in this.playerTable) { - if (this.playerTable[p].voting === oldPlayer.id) this.playerTable[p].voting = newPlayer.id; - } - for (const p in this.dead) { - if (this.dead[p].restless && this.dead[p].voting === oldPlayer.id) this.dead[p].voting = newPlayer.id; + if (this.votes[oldPlayerId]) { + this.votes[player.id] = this.votes[oldPlayerId]; + delete this.votes[oldPlayerId]; + + for (const p of this.players) { + if (p.voting === oldPlayerId) { + p.voting = player.id; + } } } - if (this.hasPlurality === oldPlayer.id) this.hasPlurality = newPlayer.id; - for (let i = 1; i < this.dayNum; i++) { - newPlayer.actionArr[i] = oldPlayer.actionArr[i]; - } + if (this.hasPlurality === oldPlayerId) this.hasPlurality = player.id; + if (newUser?.connected) { for (const conn of newUser.connections) { void Chat.resolvePage(`view-mafia-${this.room.roomid}`, newUser, conn); } - newUser.send(`>${this.room.roomid}\n|notify|You have been substituted in the mafia game for ${oldPlayer.safeName}.`); + newUser.send(`>${this.room.roomid}\n|notify|You have been substituted in the mafia game for ${oldSafeName}.`); } - if (this.started) this.played.push(newPlayer.id); - this.sendDeclare(`${oldPlayer.safeName} has been subbed out. ${newPlayer.safeName} has joined the game.`); - delete this.playerTable[oldPlayer.id]; - oldPlayer.destroy(); + if (this.started) this.played.push(player.id); + this.sendDeclare(`${oldSafeName} has been subbed out. ${player.safeName} has joined the game.`); this.updatePlayers(); if (this.room.roomid === 'mafia' && this.started) { const month = new Date().toLocaleString("en-us", {month: "numeric", year: "numeric"}); if (!logs.leavers[month]) logs.leavers[month] = {}; - if (!logs.leavers[month][player]) logs.leavers[month][player] = 0; - logs.leavers[month][player]++; + if (!logs.leavers[month][player.id]) logs.leavers[month][player.id] = 0; + logs.leavers[month][player.id]++; writeFile(LOGS_FILE, logs); } } @@ -1274,19 +1351,19 @@ class Mafia extends Rooms.RoomGame { if (!nextSub) return; const sub = Users.get(nextSub, true); if (!sub?.connected || !sub.named || !this.room.users[sub.id]) return; // should never happen, just to be safe - const toSubOut = userid || this.hostRequestedSub.shift() || this.requestedSub.shift(); + const toSubOut = this.getPlayer(userid || this.hostRequestedSub.shift() || this.requestedSub.shift() || ''); if (!toSubOut) { // Should never happen this.subs.unshift(nextSub); return; } - if (this.hostRequestedSub.includes(toSubOut)) { - this.hostRequestedSub.splice(this.hostRequestedSub.indexOf(toSubOut), 1); + if (this.hostRequestedSub.includes(toSubOut.id)) { + this.hostRequestedSub.splice(this.hostRequestedSub.indexOf(toSubOut.id), 1); } - if (this.requestedSub.includes(toSubOut)) { - this.requestedSub.splice(this.requestedSub.indexOf(toSubOut), 1); + if (this.requestedSub.includes(toSubOut.id)) { + this.requestedSub.splice(this.requestedSub.indexOf(toSubOut.id), 1); } - this.sub(toSubOut, sub.id); + this.sub(toSubOut, sub); } customIdeaInit(user: User, choices: number, picks: string[], rolesString: string) { @@ -1318,19 +1395,19 @@ class Mafia extends Rooms.RoomGame { if (moduleID in MafiaData.aliases) moduleID = MafiaData.aliases[moduleID]; this.IDEA.data = MafiaData.IDEAs[moduleID]; - if (!this.IDEA.data) return user.sendTo(this.room, `|error|${moduleID} is not a valid IDEA.`); + if (!this.IDEA.data) return this.sendUser(user, `|error|${moduleID} is not a valid IDEA.`); return this.ideaDistributeRoles(user); } ideaDistributeRoles(user: User) { - if (!this.IDEA.data) return user.sendTo(this.room, `|error|No IDEA module loaded`); + if (!this.IDEA.data) return this.sendUser(user, `|error|No IDEA module loaded`); if (this.phase !== 'locked' && this.phase !== 'IDEAlocked') { - return user.sendTo(this.room, `|error|The game must be in a locked state to distribute IDEA roles.`); + return this.sendUser(user, `|error|The game must be in a locked state to distribute IDEA roles.`); } const neededRoles = this.IDEA.data.choices * this.playerCount; if (neededRoles > this.IDEA.data.roles.length) { - return user.sendTo(this.room, `|error|Not enough roles in the IDEA module.`); + return this.sendUser(user, `|error|Not enough roles in the IDEA module.`); } const roles = []; @@ -1345,8 +1422,7 @@ class Mafia extends Rooms.RoomGame { } Utils.shuffle(roles); this.IDEA.waitingPick = []; - for (const p in this.playerTable) { - const player = this.playerTable[p]; + for (const player of this.players) { player.role = null; player.IDEA = { choices: roles.splice(0, this.IDEA.data.choices), @@ -1356,9 +1432,9 @@ class Mafia extends Rooms.RoomGame { player.IDEA.originalChoices = player.IDEA.choices.slice(); for (const pick of this.IDEA.data.picks) { player.IDEA.picks[pick] = null; - this.IDEA.waitingPick.push(p); + this.IDEA.waitingPick.push(player.id); } - const u = Users.get(p); + const u = Users.get(player.id); if (u?.connected) u.send(`>${this.room.roomid}\n|notify|Pick your role in the IDEA module.`); } @@ -1377,13 +1453,15 @@ class Mafia extends Rooms.RoomGame { if (!this.IDEA?.data) { return this.sendRoom(`Trying to pick an IDEA role with no module running, target: ${JSON.stringify(selection)}. Please report this to a mod.`); } - const player = this.playerTable[user.id]; - if (!player.IDEA) { + + const player = this.getPlayer(user.id); + if (!player?.IDEA) { return this.sendRoom(`Trying to pick an IDEA role with no player IDEA object, user: ${user.id}. Please report this to a mod.`); } + selection = selection.map(toID); if (selection.length === 1 && this.IDEA.data.picks.length === 1) selection = [this.IDEA.data.picks[0], selection[0]]; - if (selection.length !== 2) return user.sendTo(this.room, `|error|Invalid selection.`); + if (selection.length !== 2) return this.sendUser(user, `|error|Invalid selection.`); // input is formatted as ['selection', 'role'] // eg: ['role', 'bloodhound'] @@ -1392,7 +1470,7 @@ class Mafia extends Rooms.RoomGame { if (selection[1]) { const roleIndex = player.IDEA.choices.map(toID).indexOf(selection[1] as ID); if (roleIndex === -1) { - return user.sendTo(this.room, `|error|${selection[1]} is not an available role, perhaps it is already selected?`); + return this.sendUser(user, `|error|${selection[1]} is not an available role, perhaps it is already selected?`); } selection[1] = player.IDEA.choices.splice(roleIndex, 1)[0]; } else { @@ -1418,7 +1496,7 @@ class Mafia extends Rooms.RoomGame { this.ideaFinalizePicks(); return; } - return user.sendTo(this.room, buf); + return this.sendUser(user, buf); } ideaFinalizePicks() { @@ -1426,8 +1504,7 @@ class Mafia extends Rooms.RoomGame { return this.sendRoom(`Tried to finalize IDEA picks with no IDEA module running, please report this to a mod.`); } const randed = []; - for (const p in this.playerTable) { - const player = this.playerTable[p]; + for (const player of this.players) { if (!player.IDEA) { return this.sendRoom(`Trying to pick an IDEA role with no player IDEA object, user: ${player.id}. Please report this to a mod.`); } @@ -1446,7 +1523,7 @@ class Mafia extends Rooms.RoomGame { } role.push(`${choice}: ${player.IDEA.picks[choice]}`); } - if (randPicked) randed.push(p); + if (randPicked) randed.push(player.id); // if there's only one option, it's their role, parse it properly let roleName = ''; if (this.IDEA.data.picks.length === 1) { @@ -1484,10 +1561,13 @@ class Mafia extends Rooms.RoomGame { if (player.IDEA.choices.includes('Innocent Discard')) player.role.alignment = 'town'; } this.IDEA.discardsHTML = `Discards:
`; - for (const p of Object.keys(this.playerTable).sort()) { - const IDEA = this.playerTable[p].IDEA; - if (!IDEA) return this.sendRoom(`No IDEA data for player ${p} when finalising IDEAs. Please report this to a mod.`); - this.IDEA.discardsHTML += `${this.playerTable[p].safeName}: ${IDEA.choices.join(', ')}
`; + for (const player of this.players.sort((a, b) => a.id.localeCompare(b.id))) { + const IDEA = player.IDEA; + if (!IDEA) { + return this.sendRoom(`No IDEA data for player ${player} when finalising IDEAs. Please report this to a mod.`); + } + + this.IDEA.discardsHTML += `${player.safeName}: ${IDEA.choices.join(', ')}
`; } this.phase = 'IDEAlocked'; @@ -1500,26 +1580,20 @@ class Mafia extends Rooms.RoomGame { } sendPlayerList() { - this.room.add(`|c:|${(Math.floor(Date.now() / 1000))}|~|**Players (${this.playerCount})**: ${Object.values(this.playerTable).map(p => p.name).sort().join(', ')}`).update(); + this.room.add(`|c:|${(Math.floor(Date.now() / 1000))}|~|**Players (${this.getRemainingPlayers().length})**: ${this.getRemainingPlayers().map(p => p.name).sort().join(', ')}`).update(); } updatePlayers() { - for (const p in this.playerTable) { - this.playerTable[p].updateHtmlRoom(); - } - for (const p in this.dead) { - if (this.dead[p].restless || this.dead[p].treestump) this.dead[p].updateHtmlRoom(); + for (const p of this.players) { + p.tryUpdateHtmlRoom(); } // Now do the host this.updateHost(); } updatePlayersVotes() { - for (const p in this.playerTable) { - this.playerTable[p].updateHtmlVotes(); - } - for (const p in this.dead) { - if (this.dead[p].restless || this.dead[p].treestump) this.dead[p].updateHtmlVotes(); + for (const p of this.players) { + p.tryUpdateHtmlRoom(); } } @@ -1577,34 +1651,41 @@ class Mafia extends Rooms.RoomGame { } canJoin(user: User, self = false, force = false) { - if (!user?.connected) return `User not found.`; + if (!user?.connected) throw new Chat.ErrorMessage(`User not found.`); const targetString = self ? `You are` : `${user.id} is`; - if (!this.room.users[user.id]) return `${targetString} not in the room.`; + if (!this.room.users[user.id]) throw new Chat.ErrorMessage(`${targetString} not in the room.`); for (const id of [user.id, ...user.previousIDs]) { - if (this.playerTable[id] || this.dead[id]) throw new Chat.ErrorMessage(`${targetString} already in the game.`); + if (this.getPlayer(id)) throw new Chat.ErrorMessage(`${targetString} already in the game.`); if (!force && this.played.includes(id)) { - throw new Chat.ErrorMessage(`${self ? `You were` : `${user.id} was`} already in the game.`); + throw new Chat.ErrorMessage(`${targetString} a previous player and cannot rejoin.`); } if (Mafia.isGameBanned(this.room, user)) { - throw new Chat.ErrorMessage(`${self ? `You are` : `${user.id} is`} banned from joining mafia games.`); + throw new Chat.ErrorMessage(`${targetString} banned from joining mafia games.`); } if (this.hostid === id) throw new Chat.ErrorMessage(`${targetString} the host.`); if (this.cohostids.includes(id)) throw new Chat.ErrorMessage(`${targetString} a cohost.`); } - if (!force) { - for (const alt of user.getAltUsers(true)) { - if (this.playerTable[alt.id] || this.played.includes(alt.id)) { - throw new Chat.ErrorMessage(`${self ? `You already have` : `${user.id} already has`} an alt in the game.`); - } - if (this.hostid === alt.id || this.cohostids.includes(alt.id)) { - throw new Chat.ErrorMessage(`${self ? `You have` : `${user.id} has`} an alt as a game host.`); - } + + for (const alt of user.getAltUsers(true)) { + if (!force && (this.getPlayer(alt.id) || this.played.includes(alt.id))) { + throw new Chat.ErrorMessage(`${self ? `You already have` : `${user.id} already has`} an alt in the game.`); + } + if (this.hostid === alt.id || this.cohostids.includes(alt.id)) { + throw new Chat.ErrorMessage(`${self ? `You have` : `${user.id} has`} an alt as a game host.`); } } } - sendUser(user: User | string | null, message: string) { - const userObject = (typeof user === 'string' ? Users.get(user) : user); + sendUser(user: MafiaPlayer | User | string, message: string) { + let userObject: User | null; + if (user instanceof MafiaPlayer) { + userObject = user.getUser(); + } else if (typeof user === "string") { + userObject = Users.get(user); + } else { + userObject = user; + } + if (!userObject?.connected) return; userObject.sendTo(this.room, message); } @@ -1624,64 +1705,76 @@ class Mafia extends Rooms.RoomGame { } this.selfEnabled = setting; if (!setting) { - for (const player of Object.values(this.playerTable)) { - if (player.voting === player.id) this.unvote(player.id, true); + for (const player of this.players) { + if (player.voting === player.id) this.unvote(player, true); } } this.updatePlayers(); } + setNoVote(user: User, setting: boolean) { - if (this.enableNL === setting) { - return user.sendTo(this.room, `|error|No Vote is already ${setting ? 'enabled' : 'disabled'}.`); + if (this.enableNV === setting) { + return this.sendUser(user, `|error|No Vote is already ${setting ? 'enabled' : 'disabled'}.`); } - this.enableNL = setting; + this.enableNV = setting; this.sendDeclare(`No Vote has been ${setting ? 'enabled' : 'disabled'}.`); - if (!setting) this.clearVotes('novote'); + if (!setting) this.clearVotes('novote' as ID); this.updatePlayers(); } + setVotelock(user: User, setting: boolean) { - if (!this.started) return user.sendTo(this.room, `The game has not started yet.`); + if (!this.started) return this.sendUser(user, `The game has not started yet.`); if ((this.voteLock) === setting) { - return user.sendTo(this.room, `|error|Votes are already ${setting ? 'set to lock' : 'set to not lock'}.`); + return this.sendUser(user, `|error|Votes are already ${setting ? 'set to lock' : 'set to not lock'}.`); } this.voteLock = setting; this.clearVotes(); this.sendDeclare(`Votes are cleared and ${setting ? 'set to lock' : 'set to not lock'}.`); this.updatePlayers(); } + setVoting(user: User, setting: boolean) { - if (!this.started) return user.sendTo(this.room, `The game has not started yet.`); - if (this.votingAll === setting) { - return user.sendTo(this.room, `|error|Voting is already ${setting ? 'allowed' : 'disallowed'}.`); + if (!this.started) return this.sendUser(user, `The game has not started yet.`); + if (this.votingEnabled === setting) { + return this.sendUser(user, `|error|Voting is already ${setting ? 'allowed' : 'disallowed'}.`); } - this.votingAll = setting; + this.votingEnabled = setting; this.clearVotes(); this.sendDeclare(`Voting is now ${setting ? 'allowed' : 'disallowed'}.`); this.updatePlayers(); } - clearVotes(target = '') { + + clearVotes(target: ID = '') { if (target) delete this.votes[target]; if (!target) this.votes = Object.create(null); - for (const player of Object.values(this.playerTable)) { + for (const player of this.players) { + if (player.isEliminated() && !player.isSpirit()) continue; + if (this.forceVote) { if (!target || (player.voting === target)) { player.voting = player.id; this.votes[player.id] = { - count: 1, trueCount: this.getVoteValue(player.id), lastVote: Date.now(), dir: 'up', voters: [player.id], + count: 1, trueCount: this.getVoteValue(player), lastVote: Date.now(), dir: 'up', voters: [player.id], }; } } else { if (!target || (player.voting === target)) player.voting = ''; } } - for (const player of Object.values(this.dead)) { - if (player.restless && (!target || player.voting === target)) player.voting = ''; - } this.hasPlurality = null; } + /** + * Only intended to be used during pre-game setup. + */ + clearEliminations() { + for (const player of this.players) { + player.eliminated = null; + } + } + onChatMessage(message: string, user: User) { const subIndex = this.hostRequestedSub.indexOf(user.id); if (subIndex !== -1) { @@ -1696,13 +1789,8 @@ class Mafia extends Rooms.RoomGame { return; } - let dead = false; - let player = this.playerTable[user.id]; - if (!player) { - player = this.dead[user.id]; - dead = !!player; - } - + const player = this.getPlayer(user.id); + const eliminated = player && player.isEliminated(); const staff = user.can('mute', null, this.room); if (!player) { @@ -1718,8 +1806,8 @@ class Mafia extends Rooms.RoomGame { return `You are silenced and cannot speak.${staff ? " You can remove this with /mafia unsilence." : ''}`; } - if (dead) { - if (!player.treestump) { + if (eliminated) { + if (!player.isTreestump()) { return `You are dead.${staff ? " You can treestump yourself with /mafia treestump." : ''}`; } } @@ -1732,12 +1820,13 @@ class Mafia extends Rooms.RoomGame { } onConnect(user: User) { - user.sendTo(this.room, `|uhtml|mafia|${this.roomWindow()}`); + this.sendUser(user, `|uhtml|mafia|${this.roomWindow()}`); } onJoin(user: User) { - if (user.id in this.playerTable) { - return this.playerTable[user.id].updateHtmlRoom(); + const player = this.getPlayer(user.id); + if (player) { + return player.updateHtmlRoom(); } if (user.id === this.hostid || this.cohostids.includes(user.id)) return this.updateHost(user.id); } @@ -1745,26 +1834,27 @@ class Mafia extends Rooms.RoomGame { removeBannedUser(user: User) { // Player was banned, attempt to sub now // If we can't sub now, make subbing them out the top priority - if (!(user.id in this.playerTable)) return; + if (!this.getPlayer(user.id)) return; this.requestedSub.unshift(user.id); this.nextSub(); } forfeit(user: User) { // Add the player to the sub list. - if (!(user.id in this.playerTable)) return; + const player = this.getPlayer(user.id); + if (!player || player.isEliminated()) return; this.requestedSub.push(user.id); this.nextSub(); } end() { - this.ended = true; + this.setEnded(); this.sendHTML(this.roomWindow()); this.updatePlayers(); if (this.room.roomid === 'mafia' && this.started) { // Intead of using this.played, which shows players who have subbed out as well // We check who played through to the end when recording playlogs - const played = Object.keys(this.playerTable).concat(Object.keys(this.dead)); + const played = this.players.map(p => p.id); const month = new Date().toLocaleString("en-us", {month: "numeric", year: "numeric"}); if (!logs.plays[month]) logs.plays[month] = {}; for (const player of played) { @@ -1785,19 +1875,11 @@ class Mafia extends Rooms.RoomGame { this.destroy(); } - destroy() { - // Slightly modified to handle dead players + override destroy() { + // Ensure timers are cleared as a part of game destruction if (this.timer) clearTimeout(this.timer); if (this.IDEA.timer) clearTimeout(this.IDEA.timer); - this.room.game = null; - // @ts-ignore readonly - this.room = null; - for (const i in this.playerTable) { - this.playerTable[i].destroy(); - } - for (const i in this.dead) { - this.dead[i].destroy(); - } + super.destroy(); } } @@ -1812,31 +1894,35 @@ export const pages: Chat.PageTable = { if (!room?.users[user.id] || !game || game.ended) { return this.close(); } - const isPlayer = user.id in game.playerTable; + + const isPlayer = game.getPlayer(user.id); const isHost = user.id === game.hostid || game.cohostids.includes(user.id); + const players = game.getRemainingPlayers(); this.title = game.title; let buf = `
`; buf += ``; buf += `

${game.title}

Host: ${game.host}

${game.cohostids[0] ? `

Cohosts: ${game.cohosts.sort().join(', ')}

` : ''}`; - buf += `

Players (${game.playerCount}): ${Object.values(game.playerTable).map(p => p.safeName).sort().join(', ')}

`; - if (game.started && Object.keys(game.dead).length > 0) { + buf += `

Players (${players.length}): ${players.map(p => p.safeName).sort().join(', ')}

`; + + const eliminatedPlayers = game.getEliminatedPlayers(); + if (game.started && eliminatedPlayers.length > 0) { buf += `

Dead Players`; - for (const d in game.dead) { - const dead = game.dead[d]; - buf += `

${dead.safeName} ${dead.revealed ? '(' + dead.revealed + ')' : ''}`; - if (dead.treestump) buf += ` (is a Treestump)`; - if (dead.restless) buf += ` (is a Restless Spirit)`; - if (isHost && !dead.revealed) { - buf += ``; + for (const eliminated of eliminatedPlayers) { + buf += `

${eliminated.safeName} ${eliminated.revealed ? '(' + eliminated.revealed + ')' : ''}`; + if (eliminated.isTreestump()) buf += ` (is a Treestump)`; + if (eliminated.isSpirit()) buf += ` (is a Restless Spirit)`; + if (isHost && !eliminated.revealed) { + buf += ``; } buf += `

`; } buf += `

`; } + buf += `
`; if (isPlayer && game.phase === 'IDEApicking') { buf += `

IDEA information:
`; - const IDEA = game.playerTable[user.id].IDEA; + const IDEA = isPlayer.IDEA; if (!IDEA) { return game.sendRoom(`IDEA picking phase but no IDEA object for user: ${user.id}. Please report this to a mod.`); } @@ -1890,12 +1976,12 @@ export const pages: Chat.PageTable = { } } if (isPlayer) { - const role = game.playerTable[user.id].role; + const role = isPlayer.role; let previousActionsPL = `
`; if (role) { - buf += `

${game.playerTable[user.id].safeName}, you are a ${game.playerTable[user.id].getRole()}

`; + buf += `

${isPlayer.safeName}, you are a ${isPlayer.getStylizedRole()}

`; if (!['town', 'solo'].includes(role.alignment)) { - buf += `

Partners: ${game.getPartners(role.alignment, game.playerTable[user.id])}

`; + buf += `

Partners: ${game.getPartners(role.alignment, isPlayer)}

`; } buf += `

Role Details`; buf += `
    ${role.memo.map(m => `
  • ${m}
  • `).join('')}
`; @@ -1903,7 +1989,7 @@ export const pages: Chat.PageTable = { if (game.dayNum > 1) { for (let i = 1; i < game.dayNum; i++) { previousActionsPL += `Night ${i}
`; - previousActionsPL += `${game.playerTable[user.id].actionArr?.[i] ? `${game.playerTable[user.id].actionArr[i]}` : ''}
`; + previousActionsPL += `${isPlayer.actionArr?.[i] ? `${isPlayer.actionArr[i]}` : ''}
`; } buf += `

Previous Actions${previousActionsPL}

`; } @@ -1913,24 +1999,24 @@ export const pages: Chat.PageTable = { buf += ``; buf += game.voteBoxFor(user.id); buf += ``; - } else if (game.phase === "night" && isPlayer) { + } else if (game.phase === "night" && isPlayer && !isPlayer.isEliminated()) { if (!game.takeIdles) { buf += `

PM the host (${game.host}) the action you want to use tonight, and who you want to use it on. Or PM the host "idle".

`; } else { buf += `Night Actions:`; - if (game.playerTable[user.id].action === null) { + if (isPlayer.action === null) { buf += ``; buf += ``; buf += `
`; } else { buf += ``; - if (game.playerTable[user.id].action) { + if (isPlayer.action) { buf += ``; buf += ``; - if (game.playerTable[user.id].action === true) { + if (isPlayer.action === true) { buf += `
`; } else { - buf += `
`; + buf += `
`; } } else { buf += ``; @@ -1945,8 +2031,7 @@ export const pages: Chat.PageTable = { let actions = `
`; let idles = `
`; let noResponses = `
`; - for (const p in game.playerTable) { - const player = game.playerTable[p]; + for (const player of game.getRemainingPlayers()) { if (player.action) { actions += `${player.safeName}${player.action === true ? '' : `: ${player.action}`}
`; } else if (player.action === false) { @@ -1963,8 +2048,7 @@ export const pages: Chat.PageTable = { if (game.dayNum > 1) { for (let i = 1; i < game.dayNum; i++) { previousActions += `Night ${i}
`; - for (const p in game.playerTable) { - const player = game.playerTable[p]; + for (const player of game.players) { previousActions += `${player.safeName}:${player.actionArr[i] ? `${player.actionArr[i]}` : ''}
`; } previousActions += `
`; @@ -1990,18 +2074,17 @@ export const pages: Chat.PageTable = { } } buf += ` `; - buf += ` `; + buf += ` `; buf += ` `; buf += ` `; buf += ``; buf += `

To set a deadline, use /mafia deadline [minutes].
To clear the deadline use /mafia deadline off.


`; buf += `

Player Options`; buf += `

Player Options

`; - for (const p in game.playerTable) { - const player = game.playerTable[p]; + for (const player of game.getRemainingPlayers()) { buf += `

`; - buf += `${player.safeName} (${player.role ? player.getRole(true) : ''})`; - buf += game.voteModifiers[p] !== undefined ? `(votes worth ${game.getVoteValue(p as ID)})` : ''; + buf += `${player.safeName} (${player.role ? player.getStylizedRole(true) : ''})`; + buf += game.voteModifiers[player.id] !== undefined ? `(votes worth ${game.getVoteValue(player)})` : ''; buf += player.hammerRestriction !== null ? `(${player.hammerRestriction ? 'actor' : 'priest'})` : ''; buf += player.silenced ? '(silenced)' : ''; buf += player.nighttalk ? '(insomniac)' : ''; @@ -2012,16 +2095,15 @@ export const pages: Chat.PageTable = { buf += ` `; buf += `

`; } - for (const d in game.dead) { - const dead = game.dead[d]; - buf += `

${dead.safeName} (${dead.role ? dead.getRole() : ''})`; - if (dead.treestump) buf += ` (is a Treestump)`; - if (dead.restless) buf += ` (is a Restless Spirit)`; - if (game.voteModifiers[d] !== undefined) buf += ` (votes worth ${game.getVoteValue(d as ID)})`; - buf += dead.hammerRestriction !== null ? `(${dead.hammerRestriction ? 'actor' : 'priest'})` : ''; - buf += dead.silenced ? '(silenced)' : ''; - buf += dead.nighttalk ? '(insomniac)' : ''; - buf += `:

`; + for (const eliminated of game.getEliminatedPlayers()) { + buf += `

${eliminated.safeName} (${eliminated.role ? eliminated.getStylizedRole() : ''})`; + if (eliminated.isTreestump()) buf += ` (is a Treestump)`; + if (eliminated.isSpirit()) buf += ` (is a Restless Spirit)`; + if (game.voteModifiers[eliminated.id] !== undefined) buf += ` (votes worth ${game.getVoteValue(eliminated)})`; + buf += eliminated.hammerRestriction !== null ? `(${eliminated.hammerRestriction ? 'actor' : 'priest'})` : ''; + buf += eliminated.silenced ? '(silenced)' : ''; + buf += eliminated.nighttalk ? '(insomniac)' : ''; + buf += `:

`; } buf += `

`; if (game.dayNum > 1) { @@ -2048,12 +2130,14 @@ export const pages: Chat.PageTable = { } else { buf += `

`; } - } else if ((!isPlayer && game.subs.includes(user.id)) || (isPlayer && !game.requestedSub.includes(user.id))) { - buf += `

${isPlayer ? 'Request to be subbed out' : 'Cancel sub request'}`; - buf += `

`; - } else { - buf += `

${isPlayer ? 'Cancel sub request' : 'Join the game as a sub'}`; - buf += `

`; + } else if (!isPlayer || !isPlayer.isEliminated()) { + if ((!isPlayer && game.subs.includes(user.id)) || (isPlayer && !game.requestedSub.includes(user.id))) { + buf += `

${isPlayer ? 'Request to be subbed out' : 'Cancel sub request'}`; + buf += `

`; + } else { + buf += `

${isPlayer ? 'Cancel sub request' : 'Join the game as a sub'}`; + buf += `

`; + } } } buf += `
`; @@ -2178,7 +2262,7 @@ export const commands: Chat.ChatCommands = { this.modlog('MAFIAHOST', targetUser, null, {noalts: true, noip: true}); }, hosthelp: [ - `/mafia host [user] - Create a game of Mafia with [user] as the host. Requires whitelist + % @ # &, drivers+ can host other people.`, + `/mafia host [user] - Create a game of Mafia with [user] as the host. Requires whitelist + % @ # ~, drivers+ can host other people.`, ], q: 'queue', @@ -2231,8 +2315,8 @@ export const commands: Chat.ChatCommands = { }, queuehelp: [ `/mafia queue - Shows the upcoming users who are going to host.`, - `/mafia queue add, (user) - Adds the user to the hosting queue. Requires whitelist + % @ # &`, - `/mafia queue remove, (user) - Removes the user from the hosting queue. Requires whitelist + % @ # &`, + `/mafia queue add, (user) - Adds the user to the hosting queue. Requires whitelist + % @ # ~`, + `/mafia queue remove, (user) - Removes the user from the hosting queue. Requires whitelist + % @ # ~`, ], qadd: 'queueadd', @@ -2269,9 +2353,8 @@ export const commands: Chat.ChatCommands = { const game = this.requireGame(Mafia); if (game.hostid !== user.id && !game.cohostids.includes(user.id)) this.checkCan('mute', null, room); if (game.phase !== 'signups') return this.errorReply(`Signups are already closed.`); - if (toID(target) === 'none') target = '20'; const num = parseInt(target); - if (isNaN(num) || num > 20 || num < 2) return this.parse('/help mafia playercap'); + if (isNaN(num) || num > 50 || num < 2) return this.parse('/help mafia playercap'); if (num < game.playerCount) { return this.errorReply(`Player cap has to be equal or more than the amount of players in game.`); } @@ -2281,7 +2364,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `set playercap to ${num}`); }, playercaphelp: [ - `/mafia playercap [cap|none]- Limit the number of players being able to join the game. Player cap cannot be more than 20 or less than 2. Requires host % @ # &`, + `/mafia playercap [cap]- Limit the number of players being able to join the game. Player cap cannot be more than 50 or less than 2. Default is 20. Requires host % @ # ~`, ], close(target, room, user) { @@ -2295,7 +2378,7 @@ export const commands: Chat.ChatCommands = { game.updatePlayers(); game.logAction(user, `closed signups`); }, - closehelp: [`/mafia close - Closes signups for the current game. Requires host % @ # &`], + closehelp: [`/mafia close - Closes signups for the current game. Requires host % @ # ~`], cs: 'closedsetup', closedsetup(target, room, user) { @@ -2316,7 +2399,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `${game.closedSetup ? 'enabled' : 'disabled'} closed setup`); }, closedsetuphelp: [ - `/mafia closedsetup [on|off] - Sets if the game is a closed setup. Closed setups don't show the role list to players. Requires host % @ # &`, + `/mafia closedsetup [on|off] - Sets if the game is a closed setup. Closed setups don't show the role list to players. Requires host % @ # ~`, ], reveal(target, room, user) { @@ -2336,7 +2419,7 @@ export const commands: Chat.ChatCommands = { game.updatePlayers(); game.logAction(user, `${game.noReveal ? 'disabled' : 'enabled'} reveals`); }, - revealhelp: [`/mafia reveal [on|off] - Sets if roles reveal on death or not. Requires host % @ # &`], + revealhelp: [`/mafia reveal [on|off] - Sets if roles reveal on death or not. Requires host % @ # ~`], takeidles(target, room, user) { room = this.requireRoom(); @@ -2351,7 +2434,7 @@ export const commands: Chat.ChatCommands = { game.sendDeclare(`Actions and idles are ${game.takeIdles ? 'now' : 'no longer'} being accepted.`); game.updatePlayers(); }, - takeidleshelp: [`/mafia takeidles [on|off] - Sets if idles are accepted by the script or not. Requires host % @ # &`], + takeidleshelp: [`/mafia takeidles [on|off] - Sets if idles are accepted by the script or not. Requires host % @ # ~`], resetroles: 'setroles', forceresetroles: 'setroles', @@ -2392,7 +2475,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, 'reset the game state'); }, resetgamehelp: [ - `/mafia resetgame - Resets game data. Does not change settings from the host (besides deadlines) or add/remove any players. Requires host % @ # &`, + `/mafia resetgame - Resets game data. Does not change settings from the host (besides deadlines) or add/remove any players. Requires host % @ # ~`, ], idea(target, room, user) { @@ -2410,8 +2493,8 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `started an IDEA`); }, ideahelp: [ - `/mafia idea [idea] - starts the IDEA module [idea]. Requires + % @ # &, voices can only start for themselves`, - `/mafia ideareroll - rerolls the IDEA module. Requires host % @ # &`, + `/mafia idea [idea] - starts the IDEA module [idea]. Requires + % @ # ~, voices can only start for themselves`, + `/mafia ideareroll - rerolls the IDEA module. Requires host % @ # ~`, `/mafia ideapick [selection], [role] - selects a role`, `/mafia ideadiscards - shows the discarded roles`, ], @@ -2436,7 +2519,7 @@ export const commands: Chat.ChatCommands = { }, customideahelp: [ `/mafia customidea choices, picks (new line here, shift+enter)`, - `(comma or newline separated rolelist) - Starts an IDEA module with custom roles. Requires % @ # &`, + `(comma or newline separated rolelist) - Starts an IDEA module with custom roles. Requires % @ # ~`, `choices refers to the number of roles you get to pick from. In GI, this is 2, in GestI, this is 3.`, `picks refers to what you choose. In GI, this should be 'role', in GestI, this should be 'role, alignment'`, ], @@ -2444,13 +2527,14 @@ export const commands: Chat.ChatCommands = { room = this.requireRoom(); const args = target.split(','); const game = this.requireGame(Mafia); - if (!(user.id in game.playerTable)) { + const player = game.getPlayer(user.id); + if (!player) { return user.sendTo(room, '|error|You are not a player in the game.'); } if (game.phase !== 'IDEApicking') { return this.errorReply(`The game is not in the IDEA picking phase.`); } - game.ideaPick(user, args); + game.ideaPick(user, args); // TODO use player object }, ideareroll(target, room, user) { @@ -2460,7 +2544,7 @@ export const commands: Chat.ChatCommands = { game.ideaDistributeRoles(user); game.logAction(user, `rerolled an IDEA`); }, - idearerollhelp: [`/mafia ideareroll - rerolls the roles for the current IDEA module. Requires host % @ # &`], + idearerollhelp: [`/mafia ideareroll - rerolls the roles for the current IDEA module. Requires host % @ # ~`], discards: 'ideadiscards', ideadiscards(target, room, user) { @@ -2488,8 +2572,8 @@ export const commands: Chat.ChatCommands = { }, ideadiscardshelp: [ `/mafia ideadiscards - shows the discarded roles`, - `/mafia ideadiscards off - hides discards from the players. Requires host % @ # &`, - `/mafia ideadiscards on - shows discards to the players. Requires host % @ # &`, + `/mafia ideadiscards off - hides discards from the players. Requires host % @ # ~`, + `/mafia ideadiscards on - shows discards to the players. Requires host % @ # ~`, ], daystart: 'start', @@ -2507,7 +2591,7 @@ export const commands: Chat.ChatCommands = { game.start(user, cmd === 'daystart'); game.logAction(user, `started the game`); }, - starthelp: [`/mafia start - Start the game of mafia. Signups must be closed. Requires host % @ # &`], + starthelp: [`/mafia start - Start the game of mafia. Signups must be closed. Requires host % @ # ~`], extend: 'day', night: 'day', @@ -2526,8 +2610,7 @@ export const commands: Chat.ChatCommands = { if (extension > 10) extension = 10; } if (cmd === 'extend') { - for (const p in game.playerTable) { - const player = game.playerTable[p]; + for (const player of game.getRemainingPlayers()) { player.actionArr[game.dayNum] = ''; } } @@ -2536,9 +2619,9 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `set day/night`); }, dayhelp: [ - `/mafia day - Move to the next game day. Requires host % @ # &`, - `/mafia night - Move to the next game night. Requires host % @ # &`, - `/mafia extend (minutes) - Return to the previous game day. If (minutes) is provided, set the deadline for (minutes) minutes. Requires host % @ # &`, + `/mafia day - Move to the next game day. Requires host % @ # ~`, + `/mafia night - Move to the next game night. Requires host % @ # ~`, + `/mafia extend (minutes) - Return to the previous game day. If (minutes) is provided, set the deadline for (minutes) minutes. Requires host % @ # ~`, ], prod(target, room, user) { @@ -2546,7 +2629,7 @@ export const commands: Chat.ChatCommands = { const game = this.requireGame(Mafia); if (game.hostid !== user.id && !game.cohostids.includes(user.id)) this.checkCan('mute', null, room); if (game.phase !== 'night') return; - for (const player of Object.values(game.playerTable)) { + for (const player of game.getRemainingPlayers()) { const playerid = Users.get(player.id); if (playerid?.connected && player.action === null) { playerid.sendTo(room, `|notify|Send in an action or idle!`); @@ -2556,7 +2639,7 @@ export const commands: Chat.ChatCommands = { game.sendDeclare(`Unsubmitted players have been reminded to submit an action or idle.`); }, prodhelp: [ - `/mafia prod - Notifies players that they must submit an action or idle if they haven't yet. Requires host % @ # &`, + `/mafia prod - Notifies players that they must submit an action or idle if they haven't yet. Requires host % @ # ~`, ], v: 'vote', @@ -2564,11 +2647,11 @@ export const commands: Chat.ChatCommands = { room = this.requireRoom(); const game = this.requireGame(Mafia); this.checkChat(null, room); - if (!(user.id in game.playerTable) && - (!(user.id in game.dead) || !game.dead[user.id].restless)) { + const player = game.getPlayer(user.id); + if (!player || (player.isEliminated() && !player.isSpirit())) { return this.errorReply(`You are not in the game of ${game.title}.`); } - game.vote(user.id, toID(target)); + game.vote(player, toID(target)); }, votehelp: [`/mafia vote [player|novote] - Vote the specified player or abstain from voting.`], @@ -2579,11 +2662,11 @@ export const commands: Chat.ChatCommands = { room = this.requireRoom(); const game = this.requireGame(Mafia); this.checkChat(null, room); - if (!(user.id in game.playerTable) && - (!(user.id in game.dead) || !game.dead[user.id].restless)) { + const player = game.getPlayer(user.id); + if (!player || (player.isEliminated() && !player.isSpirit())) { return this.errorReply(`You are not in the game of ${game.title}.`); } - game.unvote(user.id); + game.unvote(player); }, unvotehelp: [`/mafia unvote - Withdraw your vote. Fails if you're not voting anyone`], @@ -2611,7 +2694,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `changed selfvote`); }, selfvotehelp: [ - `/mafia selfvote [on|hammer|off] - Allows players to self vote themselves either at hammer or anytime. Requires host % @ # &`, + `/mafia selfvote [on|hammer|off] - Allows players to self vote themselves either at hammer or anytime. Requires host % @ # ~`, ], treestump: 'kill', @@ -2626,35 +2709,42 @@ export const commands: Chat.ChatCommands = { return this.errorReply(`You cannot add or remove players while IDEA roles are being picked.`); // needs to be here since eliminate doesn't pass the user } if (!target) return this.parse('/help mafia kill'); - const player = game.playerTable[toID(target)]; - const dead = game.dead[toID(target)]; - let repeat; - if (dead) { - switch (cmd) { - case 'treestump': - repeat = dead.treestump && !dead.restless; - break; - case 'spirit': - repeat = !dead.treestump && dead.restless; - break; - case 'spiritstump': - repeat = dead.treestump && dead.restless; - break; - case 'kill': case 'kick': - repeat = !dead.treestump && !dead.restless; - break; - } + const player = game.getPlayer(toID(target)); + if (!player) { + return this.errorReply(`${target.trim()} is not a player.`); } - if (dead && repeat) return this.errorReply(`${dead.safeName} has already been ${cmd}ed.`); - if (player || dead) { - game.eliminate(toID(target), cmd); - game.logAction(user, `${cmd}ed ${(dead || player).safeName}`); - } else { - this.errorReply(`${target.trim()} is not a player.`); + + let repeat, elimType; + + switch (cmd) { + case 'treestump': + elimType = MafiaEliminateType.TREESTUMP; + repeat = player.isTreestump() && !player.isSpirit(); + break; + case 'spirit': + elimType = MafiaEliminateType.SPIRIT; + repeat = !player.isTreestump() && player.isSpirit(); + break; + case 'spiritstump': + elimType = MafiaEliminateType.SPIRITSTUMP; + repeat = player.isTreestump() && player.isSpirit(); + break; + case 'kick': + elimType = MafiaEliminateType.KICK; + break; + default: + elimType = MafiaEliminateType.ELIMINATE; + repeat = player.eliminated === MafiaEliminateType.ELIMINATE; + break; } + + if (repeat) return this.errorReply(`${player.safeName} has already been ${cmd}ed.`); + + game.eliminate(player, elimType); + game.logAction(user, `${cmd}ed ${player.safeName}`); }, killhelp: [ - `/mafia kill [player] - Kill a player, eliminating them from the game. Requires host % @ # &`, + `/mafia kill [player] - Kill a player, eliminating them from the game. Requires host % @ # ~`, `/mafia treestump [player] - Kills a player, but allows them to talk during the day still.`, `/mafia spirit [player] - Kills a player, but allows them to vote still.`, `/mafia spiritstump [player] Kills a player, but allows them to talk and vote during the day.`, @@ -2679,10 +2769,9 @@ export const commands: Chat.ChatCommands = { } if (!args[0]) return this.parse('/help mafia revealas'); for (const targetUsername of args) { - let player = game.playerTable[toID(targetUsername)]; - if (!player) player = game.dead[toID(targetUsername)]; + const player = game.getPlayer(toID(targetUsername)); if (player) { - game.revealRole(user, player, `${cmd === 'revealas' ? revealAs : player.getRole()}`); + game.revealRole(user, player, `${cmd === 'revealas' ? revealAs : player.getStylizedRole()}`); game.logAction(user, `revealed ${player.name}`); if (cmd === 'revealas') { game.secretLogAction(user, `fakerevealed ${player.name} as ${revealedRole!.role.name}`); @@ -2693,8 +2782,8 @@ export const commands: Chat.ChatCommands = { } }, revealrolehelp: [ - `/mafia revealrole [player] - Reveals the role of a player. Requires host % @ # &`, - `/mafia revealas [player], [role] - Fakereveals the role of a player as a certain role. Requires host % @ # &`, + `/mafia revealrole [player] - Reveals the role of a player. Requires host % @ # ~`, + `/mafia revealas [player], [role] - Fakereveals the role of a player as a certain role. Requires host % @ # ~`, ], unidle: 'idle', @@ -2704,12 +2793,19 @@ export const commands: Chat.ChatCommands = { idle(target, room, user, connection, cmd) { room = this.requireRoom(); const game = this.requireGame(Mafia); - const player = game.playerTable[user.id]; + const player = game.getPlayer(user.id); if (!player) return this.errorReply(`You are not in the game of ${game.title}.`); - if (game.phase !== 'night') return this.errorReply(`You can only submit an action or idle during the night phase.`); + + if (player.isEliminated()) { + return this.errorReply(`You have been eliminated from the game and cannot take any actions.`); + } + if (game.phase !== 'night') { + return this.errorReply(`You can only submit an action or idle during the night phase.`); + } if (!game.takeIdles) { return this.errorReply(`The host is not accepting idles through the script. Send your action or idle to the host.`); } + switch (cmd) { case 'idle': player.action = false; @@ -2745,21 +2841,40 @@ export const commands: Chat.ChatCommands = { `/mafia action [details] - Tells the host you are using an action with the given submission details.`, ], - forceadd: 'revive', - add: 'revive', + forceadd: 'add', + add(target, room, user, connection, cmd) { + room = this.requireRoom(); + const game = this.requireGame(Mafia); + if (game.hostid !== user.id && !game.cohostids.includes(user.id)) this.checkCan('mute', null, room); + if (!toID(target)) return this.parse('/help mafia add'); + const targetUser = Users.get(target); + if (!targetUser) { + throw new Chat.ErrorMessage(`The user "${target}" was not found.`); + } + game.join(targetUser, user, cmd === 'forceadd'); + }, + addhelp: [ + `/mafia add [player] - Add a new player to the game. Requires host % @ # ~`, + ], + revive(target, room, user, connection, cmd) { room = this.requireRoom(); const game = this.requireGame(Mafia); if (game.hostid !== user.id && !game.cohostids.includes(user.id)) this.checkCan('mute', null, room); if (!toID(target)) return this.parse('/help mafia revive'); - let didSomething = false; - if (game.revive(user, toID(target), cmd === 'forceadd')) { - didSomething = true; + + const player = game.getPlayer(toID(target)); + if (!player) { + throw new Chat.ErrorMessage(`"${target}" is not currently playing`); } - if (didSomething) game.logAction(user, `added players`); + if (!player.isEliminated()) { + throw new Chat.ErrorMessage(`${player.name} has not been eliminated.`); + } + + game.revive(user, player); }, revivehelp: [ - `/mafia revive [player] - Revive a player who died or add a new player to the game. Requires host % @ # &`, + `/mafia revive [player] - Revives a player who was eliminated. Requires host % @ # ~`, ], dl: 'deadline', @@ -2800,12 +2915,17 @@ export const commands: Chat.ChatCommands = { const game = this.requireGame(Mafia); if (game.hostid !== user.id && !game.cohostids.includes(user.id)) this.checkCan('mute', null, room); if (!game.started) return this.errorReply(`The game has not started yet.`); - const [player, mod] = target.split(','); + const [playerId, mod] = target.split(','); + const player = game.getPlayer(toID(playerId)); + if (!player) { + throw new Chat.ErrorMessage(`The player "${playerId}" does not exist.`); + } + if (cmd === 'applyhammermodifier') { - game.applyHammerModifier(user, toID(player), parseInt(mod)); + game.applyHammerModifier(user, player, parseInt(mod)); game.secretLogAction(user, `changed a hammer modifier`); } else { - game.applyVoteModifier(user, toID(player), parseInt(mod)); + game.applyVoteModifier(user, player, parseInt(mod)); game.secretLogAction(user, `changed a vote modifier`); } }, @@ -2872,7 +2992,7 @@ export const commands: Chat.ChatCommands = { if (!game.started) return this.errorReply(`The game has not started yet.`); target = toID(target); - const targetPlayer = game.playerTable[target] || game.dead[target]; + const targetPlayer = game.getPlayer(target as ID); const silence = cmd === 'silence'; if (!targetPlayer) return this.errorReply(`${target} is not in the game of mafia.`); if (silence === targetPlayer.silenced) { @@ -2883,8 +3003,8 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `${!silence ? 'un' : ''}silenced a player`); }, silencehelp: [ - `/mafia silence [player] - Silences [player], preventing them from talking at all. Requires host % @ # &`, - `/mafia unsilence [player] - Removes a silence on [player], allowing them to talk again. Requires host % @ # &`, + `/mafia silence [player] - Silences [player], preventing them from talking at all. Requires host % @ # ~`, + `/mafia unsilence [player] - Removes a silence on [player], allowing them to talk again. Requires host % @ # ~`, ], insomniac: 'nighttalk', @@ -2897,7 +3017,7 @@ export const commands: Chat.ChatCommands = { if (!game.started) return this.errorReply(`The game has not started yet.`); target = toID(target); - const targetPlayer = game.playerTable[target] || game.dead[target]; + const targetPlayer = game.getPlayer(target as ID); const nighttalk = !cmd.startsWith('un'); if (!targetPlayer) return this.errorReply(`${target} is not in the game of mafia.`); if (nighttalk === targetPlayer.nighttalk) { @@ -2908,8 +3028,8 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `${!nighttalk ? 'un' : ''}insomniacd a player`); }, nighttalkhelp: [ - `/mafia nighttalk [player] - Makes [player] an insomniac, allowing them to talk freely during the night. Requires host % @ # &`, - `/mafia unnighttalk [player] - Removes [player] as an insomniac, preventing them from talking during the night. Requires host % @ # &`, + `/mafia nighttalk [player] - Makes [player] an insomniac, allowing them to talk freely during the night. Requires host % @ # ~`, + `/mafia unnighttalk [player] - Removes [player] as an insomniac, preventing them from talking during the night. Requires host % @ # ~`, ], actor: 'priest', unactor: 'priest', @@ -2921,7 +3041,7 @@ export const commands: Chat.ChatCommands = { if (!game.started) return this.errorReply(`The game has not started yet.`); target = toID(target); - const targetPlayer = game.playerTable[target] || game.dead[target]; + const targetPlayer = game.getPlayer(target as ID); if (!targetPlayer) return this.errorReply(`${target} is not in the game of mafia.`); const actor = cmd.endsWith('actor'); @@ -2944,13 +3064,13 @@ export const commands: Chat.ChatCommands = { this.sendReply(`${targetPlayer.name} is now ${targetPlayer.hammerRestriction ? "an actor (can only hammer)" : "a priest (can't hammer)"}.`); if (actor) { // target is an actor, remove their vote because it's now impossible - game.unvote(targetPlayer.id, true); + game.unvote(targetPlayer, true); } game.logAction(user, `made a player actor/priest`); }, priesthelp: [ - `/mafia (un)priest [player] - Makes [player] a priest, preventing them from placing the hammer vote. Requires host % @ # &`, - `/mafia (un)actor [player] - Makes [player] an actor, preventing them from placing non-hammer votes. Requires host % @ # &`, + `/mafia (un)priest [player] - Makes [player] a priest, preventing them from placing the hammer vote. Requires host % @ # ~`, + `/mafia (un)actor [player] - Makes [player] an actor, preventing them from placing non-hammer votes. Requires host % @ # ~`, ], shifthammer: 'hammer', @@ -3000,7 +3120,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `changed votelock status`); }, votelockhelp: [ - `/mafia votelock [on|off] - Allows or disallows players to change their vote. Requires host % @ # &`, + `/mafia votelock [on|off] - Allows or disallows players to change their vote. Requires host % @ # ~`, ], voting: 'votesall', @@ -3019,7 +3139,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `changed voting status`); }, votinghelp: [ - `/mafia voting [on|off] - Allows or disallows players to vote. Requires host % @ # &`, + `/mafia voting [on|off] - Allows or disallows players to vote. Requires host % @ # ~`, ], enablenv: 'enablenl', @@ -3037,7 +3157,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `changed novote status`); }, enablenlhelp: [ - `/mafia [enablenv|disablenv] - Allows or disallows players abstain from voting. Requires host % @ # &`, + `/mafia [enablenv|disablenv] - Allows or disallows players abstain from voting. Requires host % @ # ~`, ], forcevote(target, room, user) { @@ -3060,7 +3180,7 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `changed forcevote status`); }, forcevotehelp: [ - `/mafia forcevote [yes/no] - Forces players' votes onto themselves, and prevents unvoting. Requires host % @ # &`, + `/mafia forcevote [yes/no] - Forces players' votes onto themselves, and prevents unvoting. Requires host % @ # ~`, ], votes(target, room, user) { @@ -3091,7 +3211,8 @@ export const commands: Chat.ChatCommands = { if (this.broadcasting) { game.sendPlayerList(); } else { - this.sendReplyBox(`Players (${game.playerCount}): ${Object.values(game.playerTable).map(p => p.safeName).sort().join(', ')}`); + const players = game.getRemainingPlayers(); + this.sendReplyBox(`Players (${players.length}): ${players.map(p => p.safeName).sort().join(', ')}`); } }, @@ -3122,8 +3243,7 @@ export const commands: Chat.ChatCommands = { return this.errorReply(`Only the host can view roles.`); } if (!game.started) return this.errorReply(`The game has not started.`); - const players = [...Object.values(game.playerTable), ...Object.values(game.dead)]; - this.sendReplyBox(players.map( + this.sendReplyBox(game.players.map( p => `${p.safeName}: ${p.role ? (p.role.alignment === 'solo' ? 'Solo ' : '') + p.role.safeName : 'No role'}` ).join('
')); }, @@ -3151,16 +3271,18 @@ export const commands: Chat.ChatCommands = { const game = this.requireGame(Mafia); const args = target.split(','); const action = toID(args.shift()); + const player = game.getPlayer(user.id); + switch (action) { case 'in': - if (user.id in game.playerTable) { + if (player) { // Check if they have requested to be subbed out. if (!game.requestedSub.includes(user.id)) { return this.errorReply(`You have not requested to be subbed out.`); } game.requestedSub.splice(game.requestedSub.indexOf(user.id), 1); this.errorReply(`You have cancelled your request to sub out.`); - game.playerTable[user.id].updateHtmlRoom(); + player.updateHtmlRoom(); } else { this.checkChat(null, room); if (game.subs.includes(user.id)) return this.errorReply(`You are already on the sub list.`); @@ -3174,12 +3296,15 @@ export const commands: Chat.ChatCommands = { } break; case 'out': - if (user.id in game.playerTable) { + if (player) { + if (player.isEliminated()) { + return this.errorReply(`You cannot request to be subbed out once eliminated.`); + } if (game.requestedSub.includes(user.id)) { return this.errorReply(`You have already requested to be subbed out.`); } game.requestedSub.push(user.id); - game.playerTable[user.id].updateHtmlRoom(); + player.updateHtmlRoom(); game.nextSub(); } else { if (game.hostid === user.id || game.cohostids.includes(user.id)) { @@ -3194,7 +3319,7 @@ export const commands: Chat.ChatCommands = { case 'next': if (game.hostid !== user.id && !game.cohostids.includes(user.id)) this.checkCan('mute', null, room); const toSub = args.shift(); - if (!(toID(toSub) in game.playerTable)) return this.errorReply(`${toSub} is not in the game.`); + if (!game.getPlayer(toID(toSub))) return this.errorReply(`${toSub} is not in the game.`); if (!game.subs.length) { if (game.hostRequestedSub.includes(toID(toSub))) { return this.errorReply(`${toSub} is already on the list to be subbed out.`); @@ -3239,9 +3364,9 @@ export const commands: Chat.ChatCommands = { break; default: if (game.hostid !== user.id && !game.cohostids.includes(user.id)) this.checkCan('mute', null, room); - const toSubOut = action; + const toSubOut = game.getPlayer(action); const toSubIn = toID(args.shift()); - if (!(toSubOut in game.playerTable)) return this.errorReply(`${toSubOut} is not in the game.`); + if (!toSubOut) return this.errorReply(`${toSubOut} is not in the game.`); const targetUser = Users.get(toSubIn); if (!targetUser) return this.errorReply(`The user "${toSubIn}" was not found.`); @@ -3249,23 +3374,24 @@ export const commands: Chat.ChatCommands = { if (game.subs.includes(targetUser.id)) { game.subs.splice(game.subs.indexOf(targetUser.id), 1); } - if (game.hostRequestedSub.includes(toSubOut)) { - game.hostRequestedSub.splice(game.hostRequestedSub.indexOf(toSubOut), 1); + if (game.hostRequestedSub.includes(toSubOut.id)) { + game.hostRequestedSub.splice(game.hostRequestedSub.indexOf(toSubOut.id), 1); } - if (game.requestedSub.includes(toSubOut)) { - game.requestedSub.splice(game.requestedSub.indexOf(toSubOut), 1); + if (game.requestedSub.includes(toSubOut.id)) { + game.requestedSub.splice(game.requestedSub.indexOf(toSubOut.id), 1); } - game.sub(toSubOut, toSubIn); + + game.sub(toSubOut, targetUser); game.logAction(user, `substituted a player`); } }, subhelp: [ `/mafia sub in - Request to sub into the game, or cancel a request to sub out.`, `/mafia sub out - Request to sub out of the game, or cancel a request to sub in.`, - `/mafia sub next, [player] - Forcibly sub [player] out of the game. Requires host % @ # &`, - `/mafia sub remove, [user] - Remove [user] from the sublist. Requres host % @ # &`, - `/mafia sub unrequest, [player] - Remove's a player's request to sub out of the game. Requires host % @ # &`, - `/mafia sub [player], [user] - Forcibly sub [player] for [user]. Requires host % @ # &`, + `/mafia sub next, [player] - Forcibly sub [player] out of the game. Requires host % @ # ~`, + `/mafia sub remove, [user] - Remove [user] from the sublist. Requres host % @ # ~`, + `/mafia sub unrequest, [player] - Remove's a player's request to sub out of the game. Requires host % @ # ~`, + `/mafia sub [player], [user] - Forcibly sub [player] for [user]. Requires host % @ # ~`, ], autosub(target, room, user) { @@ -3287,12 +3413,10 @@ export const commands: Chat.ChatCommands = { game.logAction(user, `changed autosub status`); }, autosubhelp: [ - `/mafia autosub [yes|no] - Sets if players will automatically sub out if a user is on the sublist. Requires host % @ # &`, + `/mafia autosub [yes|no] - Sets if players will automatically sub out if a user is on the sublist. Requires host % @ # ~`, ], cohost: 'subhost', - forcecohost: 'subhost', - forcesubhost: 'subhost', subhost(target, room, user, connection, cmd) { room = this.requireRoom(); const game = this.requireGame(Mafia); @@ -3303,15 +3427,11 @@ export const commands: Chat.ChatCommands = { if (!room.users[targetUser.id]) return this.errorReply(`${targetUser.name} is not in this room, and cannot be hosted.`); if (game.hostid === targetUser.id) return this.errorReply(`${targetUser.name} is already the host.`); if (game.cohostids.includes(targetUser.id)) return this.errorReply(`${targetUser.name} is already a cohost.`); - if (targetUser.id in game.playerTable) return this.errorReply(`The host cannot be ingame.`); - if (targetUser.id in game.dead) { - if (!cmd.includes('force')) { - return this.errorReply(`${targetUser.name} could potentially be revived. To continue anyway, use /mafia force${cmd} ${target}.`); - } - if (game.dead[targetUser.id].voting) game.unvote(targetUser.id); - game.dead[targetUser.id].destroy(); - delete game.dead[targetUser.id]; + + if (game.getPlayer(targetUser.id)) { + return this.errorReply(`${targetUser.name} cannot become a host because they are playing.`); } + if (game.subs.includes(targetUser.id)) game.subs.splice(game.subs.indexOf(targetUser.id), 1); if (cmd.includes('cohost')) { game.cohostids.push(targetUser.id); @@ -3370,7 +3490,7 @@ export const commands: Chat.ChatCommands = { game.end(); this.modlog('MAFIAEND', null); }, - endhelp: [`/mafia end - End the current game of mafia. Requires host + % @ # &`], + endhelp: [`/mafia end - End the current game of mafia. Requires host + % @ # ~`], role: 'data', alignment: 'data', @@ -3385,8 +3505,10 @@ export const commands: Chat.ChatCommands = { if (!game) { return this.errorReply(`There is no game of mafia running in this room. If you meant to display information about a role, use /mafia role [role name]`); } - if (!(user.id in game.playerTable)) return this.errorReply(`You are not in the game of ${game.title}.`); - const role = game.playerTable[user.id].role; + + const player = game.getPlayer(user.id); + if (!player) return this.errorReply(`You are not in the game of ${game.title}.`); + const role = player.role; if (!role) return this.errorReply(`You do not have a role yet.`); return this.sendReplyBox(`Your role is: ${role.safeName}`); } @@ -3502,7 +3624,7 @@ export const commands: Chat.ChatCommands = { for (let faction of args) { faction = toID(faction); const inFaction = []; - for (const player of [...Object.values(game.playerTable), ...Object.values(game.dead)]) { + for (const player of game.players) { if (player.role && toID(player.role.alignment) === faction) { toGiveTo.push(player.id); inFaction.push(player.id); @@ -3593,7 +3715,7 @@ export const commands: Chat.ChatCommands = { }, leaderboardhelp: [ `/mafia [leaderboard|mvpladder] - View the leaderboard or MVP ladder for the current or last month.`, - `/mafia [hostlogs|playlogs|leaverlogs] - View the host, play, or leaver logs for the current or last month. Requires % @ # &`, + `/mafia [hostlogs|playlogs|leaverlogs] - View the host, play, or leaver logs for the current or last month. Requires % @ # ~`, ], gameban: 'hostban', @@ -3639,8 +3761,8 @@ export const commands: Chat.ChatCommands = { this.privateModAction(`${targetUser.name} was banned from ${cmd === 'hostban' ? 'hosting' : 'playing'} mafia games by ${user.name}.`); }, hostbanhelp: [ - `/mafia (un)hostban [user], [reason], [duration] - Ban a user from hosting games for [duration] days. Requires % @ # &`, - `/mafia (un)gameban [user], [reason], [duration] - Ban a user from playing games for [duration] days. Requires % @ # &`, + `/mafia (un)hostban [user], [reason], [duration] - Ban a user from hosting games for [duration] days. Requires % @ # ~`, + `/mafia (un)gameban [user], [reason], [duration] - Ban a user from playing games for [duration] days. Requires % @ # ~`, ], ban: 'gamebanhelp', @@ -3701,7 +3823,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`The role ${id} was added to the database.`); }, addrolehelp: [ - `/mafia addrole name|alignment|image|memo1|memo2... - adds a role to the database. Name, memo are required. Requires % @ # &`, + `/mafia addrole name|alignment|image|memo1|memo2... - adds a role to the database. Name, memo are required. Requires % @ # ~`, ], overwritealignment: 'addalignment', @@ -3736,7 +3858,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`The alignment ${id} was added to the database.`); }, addalignmenthelp: [ - `/mafia addalignment name|plural|color|button color|image|memo1|memo2... - adds a memo to the database. Name, plural, memo are required. Requires % @ # &`, + `/mafia addalignment name|plural|color|button color|image|memo1|memo2... - adds a memo to the database. Name, plural, memo are required. Requires % @ # ~`, ], overwritetheme: 'addtheme', @@ -3784,7 +3906,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`The theme ${id} was added to the database.`); }, addthemehelp: [ - `/mafia addtheme name|description|players:rolelist|players:rolelist... - adds a theme to the database. Requires % @ # &`, + `/mafia addtheme name|description|players:rolelist|players:rolelist... - adds a theme to the database. Requires % @ # ~`, ], overwriteidea: 'addidea', @@ -3829,7 +3951,7 @@ export const commands: Chat.ChatCommands = { }, addideahelp: [ `/mafia addidea name|choices (number)|pick1|pick2... (new line here)`, - `(newline separated rolelist) - Adds an IDEA to the database. Requires % @ # &`, + `(newline separated rolelist) - Adds an IDEA to the database. Requires % @ # ~`, ], overwriteterm: 'addterm', @@ -3855,7 +3977,7 @@ export const commands: Chat.ChatCommands = { this.modlog(`MAFIAADDTERM`, null, id, {noalts: true, noip: true}); this.sendReply(`The term ${id} was added to the database.`); }, - addtermhelp: [`/mafia addterm name|memo1|memo2... - Adds a term to the database. Requires % @ # &`], + addtermhelp: [`/mafia addterm name|memo1|memo2... - Adds a term to the database. Requires % @ # ~`], overwritealias: 'addalias', addalias(target, room, user, connection, cmd) { @@ -3882,7 +4004,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(`The alias ${from} was added, pointing to ${to}.`); }, addaliashelp: [ - `/mafia addalias from,to - Adds an alias to the database, redirecting (from) to (to). Requires % @ # &`, + `/mafia addalias from,to - Adds an alias to the database, redirecting (from) to (to). Requires % @ # ~`, ], deletedata(target, room, user) { @@ -3926,7 +4048,7 @@ export const commands: Chat.ChatCommands = { this.modlog(`MAFIADELETEDATA`, null, `${entry} from ${source}`, {noalts: true, noip: true}); this.sendReply(`The entry ${entry} was deleted from the ${source} database.`); }, - deletedatahelp: [`/mafia deletedata source,entry - Removes an entry from the database. Requires % @ # &`], + deletedatahelp: [`/mafia deletedata source,entry - Removes an entry from the database. Requires % @ # ~`], listdata(target, room, user) { if (!(target in MafiaData)) { return this.errorReply(`Invalid source. Valid sources are ${Object.keys(MafiaData).join(', ')}`); @@ -3956,7 +4078,7 @@ export const commands: Chat.ChatCommands = { this.modlog('MAFIADISABLE', null); return this.sendReply("Mafia has been disabled for this room."); }, - disablehelp: [`/mafia disable - Disables mafia in this room. Requires # &`], + disablehelp: [`/mafia disable - Disables mafia in this room. Requires # ~`], enable(target, room, user) { room = this.requireRoom(); @@ -3969,7 +4091,7 @@ export const commands: Chat.ChatCommands = { this.modlog('MAFIAENABLE', null); return this.sendReply("Mafia has been enabled for this room."); }, - enablehelp: [`/mafia enable - Enables mafia in this room. Requires # &`], + enablehelp: [`/mafia enable - Enables mafia in this room. Requires # ~`], }, mafiahelp(target, room, user) { if (!this.runBroadcast()) return; @@ -3977,18 +4099,18 @@ export const commands: Chat.ChatCommands = { buf += `
General Commands`; buf += [ `
General Commands for the Mafia Plugin:
`, - `/mafia host [user] - Create a game of Mafia with [user] as the host. Roomvoices can only host themselves. Requires + % @ # &`, - `/mafia nexthost - Host the next user in the host queue. Only works in the Mafia Room. Requires + % @ # &`, - `/mafia forcehost [user] - Bypass the host queue and host [user]. Only works in the Mafia Room. Requires % @ # &`, + `/mafia host [user] - Create a game of Mafia with [user] as the host. Roomvoices can only host themselves. Requires + % @ # ~`, + `/mafia nexthost - Host the next user in the host queue. Only works in the Mafia Room. Requires + % @ # ~`, + `/mafia forcehost [user] - Bypass the host queue and host [user]. Only works in the Mafia Room. Requires % @ # ~`, `/mafia sub [in|out] - Request to sub into the game, or cancel a request to sub out.`, `/mafia spectate - Spectate the game of mafia.`, `/mafia votes - Display the current vote count, and who's voting who.`, `/mafia players - Display the current list of players, will highlight players.`, `/mafia [rl|orl] - Display the role list or the original role list for the current game.`, `/mafia data [alignment|role|modifier|theme|term] - Get information on a mafia alignment, role, modifier, theme, or term.`, - `/mafia subhost [user] - Substitues the user as the new game host. Requires % @ # &`, - `/mafia (un)cohost [user] - Adds/removes the user as a cohost. Cohosts can talk during the game, as well as perform host actions. Requires % @ # &`, - `/mafia [enable|disable] - Enables/disables mafia in this room. Requires # &`, + `/mafia subhost [user] - Substitues the user as the new game host. Requires % @ # ~`, + `/mafia (un)cohost [user] - Adds/removes the user as a cohost. Cohosts can talk during the game, as well as perform host actions. Requires % @ # ~`, + `/mafia [enable|disable] - Enables/disables mafia in this room. Requires # ~`, ].join('
'); buf += `
Player Commands`; buf += [ @@ -4005,74 +4127,75 @@ export const commands: Chat.ChatCommands = { buf += `
Host Commands`; buf += [ `
Commands for game hosts and Cohosts to use:
`, - `/mafia playercap [cap|none]- Limit the number of players able to join the game. Player cap cannot be more than 20 or less than 2. Requires host % @ # &`, - `/mafia close - Closes signups for the current game. Requires host % @ # &`, - `/mafia closedsetup [on|off] - Sets if the game is a closed setup. Closed setups don't show the role list to players. Requires host % @ # &`, - `/mafia takeidles [on|off] - Sets if idles are accepted by the script or not. Requires host % @ # &`, - `/mafia prod - Notifies players that they must submit an action or idle if they haven't yet. Requires host % @ # &`, - `/mafia reveal [on|off] - Sets if roles reveal on death or not. Requires host % @ # &`, - `/mafia selfvote [on|hammer|off] - Allows players to self vote either at hammer or anytime. Requires host % @ # &`, - `/mafia [enablenl|disablenl] - Allows or disallows players abstain from voting. Requires host % @ # &`, - `/mafia votelock [on|off] - Allows or disallows players to change their vote. Requires host % @ # &`, - `/mafia voting [on|off] - Allows or disallows voting. Requires host % @ # &`, - `/mafia forcevote [yes/no] - Forces players' votes onto themselves, and prevents unvoting. Requires host % @ # &`, - `/mafia setroles [comma seperated roles] - Set the roles for a game of mafia. You need to provide one role per player. Requires host % @ # &`, - `/mafia forcesetroles [comma seperated roles] - Forcibly set the roles for a game of mafia. No role PM information or alignment will be set. Requires host % @ # &`, - `/mafia start - Start the game of mafia. Signups must be closed. Requires host % @ # &`, - `/mafia [day|night] - Move to the next game day or night. Requires host % @ # &`, - `/mafia extend (minutes) - Return to the previous game day. If (minutes) is provided, set the deadline for (minutes) minutes. Requires host % @ # &`, - `/mafia kill [player] - Kill a player, eliminating them from the game. Requires host % @ # &`, - `/mafia treestump [player] - Kills a player, but allows them to talk during the day still. Requires host % @ # &`, - `/mafia spirit [player] - Kills a player, but allows them to vote still. Requires host % @ # &`, - `/mafia spiritstump [player] - Kills a player, but allows them to talk and vote during the day. Requires host % @ # &`, - `/mafia kick [player] - Kicks a player from the game without revealing their role. Requires host % @ # &`, - `/mafia revive [player] - Revive a player who died or add a new player to the game. Requires host % @ # &`, - `/mafia revealrole [player] - Reveals the role of a player. Requires host % @ # &`, - `/mafia revealas [player], [role] - Fakereveals the role of a player as a certain role. Requires host % @ # &`, - `/mafia (un)silence [player] - Silences [player], preventing them from talking at all. Requires host % @ # &`, - `/mafia (un)nighttalk [player] - Allows [player] to talk freely during the night. Requires host % @ # &`, - `/mafia (un)[priest|actor] [player] - Makes [player] a priest (can't hammer) or actor (can only hammer). Requires host % @ # &`, + `/mafia playercap [cap|none]- Limit the number of players able to join the game. Player cap cannot be more than 20 or less than 2. Requires host % @ # ~`, + `/mafia close - Closes signups for the current game. Requires host % @ # ~`, + `/mafia closedsetup [on|off] - Sets if the game is a closed setup. Closed setups don't show the role list to players. Requires host % @ # ~`, + `/mafia takeidles [on|off] - Sets if idles are accepted by the script or not. Requires host % @ # ~`, + `/mafia prod - Notifies players that they must submit an action or idle if they haven't yet. Requires host % @ # ~`, + `/mafia reveal [on|off] - Sets if roles reveal on death or not. Requires host % @ # ~`, + `/mafia selfvote [on|hammer|off] - Allows players to self vote either at hammer or anytime. Requires host % @ # ~`, + `/mafia [enablenl|disablenl] - Allows or disallows players abstain from voting. Requires host % @ # ~`, + `/mafia votelock [on|off] - Allows or disallows players to change their vote. Requires host % @ # ~`, + `/mafia voting [on|off] - Allows or disallows voting. Requires host % @ # ~`, + `/mafia forcevote [yes/no] - Forces players' votes onto themselves, and prevents unvoting. Requires host % @ # ~`, + `/mafia setroles [comma seperated roles] - Set the roles for a game of mafia. You need to provide one role per player. Requires host % @ # ~`, + `/mafia forcesetroles [comma seperated roles] - Forcibly set the roles for a game of mafia. No role PM information or alignment will be set. Requires host % @ # ~`, + `/mafia start - Start the game of mafia. Signups must be closed. Requires host % @ # ~`, + `/mafia [day|night] - Move to the next game day or night. Requires host % @ # ~`, + `/mafia extend (minutes) - Return to the previous game day. If (minutes) is provided, set the deadline for (minutes) minutes. Requires host % @ # ~`, + `/mafia kill [player] - Kill a player, eliminating them from the game. Requires host % @ # ~`, + `/mafia treestump [player] - Kills a player, but allows them to talk during the day still. Requires host % @ # ~`, + `/mafia spirit [player] - Kills a player, but allows them to vote still. Requires host % @ # ~`, + `/mafia spiritstump [player] - Kills a player, but allows them to talk and vote during the day. Requires host % @ # ~`, + `/mafia kick [player] - Kicks a player from the game without revealing their role. Requires host % @ # ~`, + `/mafia revive [player] - Revives a player who was eliminated. Requires host % @ # ~`, + `/mafia add [player] - Adds a new player to the game. Requires host % @ # ~`, + `/mafia revealrole [player] - Reveals the role of a player. Requires host % @ # ~`, + `/mafia revealas [player], [role] - Fakereveals the role of a player as a certain role. Requires host % @ # ~`, + `/mafia (un)silence [player] - Silences [player], preventing them from talking at all. Requires host % @ # ~`, + `/mafia (un)nighttalk [player] - Allows [player] to talk freely during the night. Requires host % @ # ~`, + `/mafia (un)[priest|actor] [player] - Makes [player] a priest (can't hammer) or actor (can only hammer). Requires host % @ # ~`, `/mafia deadline [minutes|off] - Sets or removes the deadline for the game. Cannot be more than 20 minutes.`, - `/mafia sub next, [player] - Forcibly sub [player] out of the game. Requires host % @ # &`, - `/mafia sub remove, [user] - Forcibly remove [user] from the sublist. Requres host % @ # &`, - `/mafia sub unrequest, [player] - Remove's a player's request to sub out of the game. Requires host % @ # &`, - `/mafia sub [player], [user] - Forcibly sub [player] for [user]. Requires host % @ # &`, - `/mafia autosub [yes|no] - Sets if players will automatically sub out if a user is on the sublist. Defaults to yes. Requires host % @ # &`, - `/mafia (un)[love|hate] [player] - Makes it take 1 more (love) or less (hate) vote to hammer [player]. Requires host % @ # &`, - `/mafia (un)[mayor|voteless] [player] - Makes [player]'s' vote worth 2 votes (mayor) or makes [player]'s vote worth 0 votes (voteless). Requires host % @ # &`, + `/mafia sub next, [player] - Forcibly sub [player] out of the game. Requires host % @ # ~`, + `/mafia sub remove, [user] - Forcibly remove [user] from the sublist. Requres host % @ # ~`, + `/mafia sub unrequest, [player] - Remove's a player's request to sub out of the game. Requires host % @ # ~`, + `/mafia sub [player], [user] - Forcibly sub [player] for [user]. Requires host % @ # ~`, + `/mafia autosub [yes|no] - Sets if players will automatically sub out if a user is on the sublist. Defaults to yes. Requires host % @ # ~`, + `/mafia (un)[love|hate] [player] - Makes it take 1 more (love) or less (hate) vote to hammer [player]. Requires host % @ # ~`, + `/mafia (un)[mayor|voteless] [player] - Makes [player]'s' vote worth 2 votes (mayor) or makes [player]'s vote worth 0 votes (voteless). Requires host % @ # ~`, `/mafia hammer [hammer] - sets the hammer count to [hammer] and resets votes`, `/mafia hammer off - disables hammering`, `/mafia shifthammer [hammer] - sets the hammer count to [hammer] without resetting votes`, `/mafia resethammer - sets the hammer to the default, resetting votes`, `/mafia playerroles - View all the player's roles in chat. Requires host`, - `/mafia resetgame - Resets game data. Does not change settings from the host besides deadlines or add/remove any players. Requires host % @ # &`, - `/mafia end - End the current game of mafia. Requires host + % @ # &`, + `/mafia resetgame - Resets game data. Does not change settings from the host besides deadlines or add/remove any players. Requires host % @ # ~`, + `/mafia end - End the current game of mafia. Requires host + % @ # ~`, ].join('
'); buf += `
IDEA Module Commands`; buf += [ `
Commands for using IDEA modules
`, - `/mafia idea [idea] - starts the IDEA module [idea]. Requires + % @ # &, voices can only start for themselves`, - `/mafia ideareroll - rerolls the IDEA module. Requires host % @ # &`, + `/mafia idea [idea] - starts the IDEA module [idea]. Requires + % @ # ~, voices can only start for themselves`, + `/mafia ideareroll - rerolls the IDEA module. Requires host % @ # ~`, `/mafia ideapick [selection], [role] - selects a role`, `/mafia ideadiscards - shows the discarded roles`, - `/mafia ideadiscards [off|on] - hides discards from the players. Requires host % @ # &`, + `/mafia ideadiscards [off|on] - hides discards from the players. Requires host % @ # ~`, `/mafia customidea choices, picks (new line here, shift+enter)`, - `(comma or newline separated rolelist) - Starts an IDEA module with custom roles. Requires % @ # &`, + `(comma or newline separated rolelist) - Starts an IDEA module with custom roles. Requires % @ # ~`, ].join('
'); buf += `
`; buf += `
Mafia Room Specific Commands`; buf += [ `
Commands that are only useable in the Mafia Room:
`, - `/mafia queue add, [user] - Adds the user to the host queue. Requires + % @ # &, voices can only add themselves.`, - `/mafia queue remove, [user] - Removes the user from the queue. You can remove yourself regardless of rank. Requires % @ # &.`, + `/mafia queue add, [user] - Adds the user to the host queue. Requires + % @ # ~, voices can only add themselves.`, + `/mafia queue remove, [user] - Removes the user from the queue. You can remove yourself regardless of rank. Requires % @ # ~.`, `/mafia queue - Shows the list of users who are in queue to host.`, `/mafia win (points) [user1], [user2], [user3], ... - Award the specified users points to the mafia leaderboard for this month. The amount of points can be negative to take points. Defaults to 10 points.`, - `/mafia winfaction (points), [faction] - Award the specified points to all the players in the given faction. Requires % @ # &`, + `/mafia winfaction (points), [faction] - Award the specified points to all the players in the given faction. Requires % @ # ~`, `/mafia (un)mvp [user1], [user2], ... - Gives a MVP point and 10 leaderboard points to the users specified.`, `/mafia [leaderboard|mvpladder] - View the leaderboard or MVP ladder for the current or last month.`, - `/mafia [hostlogs|playlogs] - View the host logs or play logs for the current or last month. Requires % @ # &`, - `/mafia (un)hostban [user], [duration] - Ban a user from hosting games for [duration] days. Requires % @ # &`, - `/mafia (un)gameban [user], [duration] - Ban a user from playing games for [duration] days. Requires % @ # &`, + `/mafia [hostlogs|playlogs] - View the host logs or play logs for the current or last month. Requires % @ # ~`, + `/mafia (un)hostban [user], [duration] - Ban a user from hosting games for [duration] days. Requires % @ # ~`, + `/mafia (un)gameban [user], [duration] - Ban a user from playing games for [duration] days. Requires % @ # ~`, ].join('
'); buf += `
`; diff --git a/server/chat-plugins/modlog-viewer.ts b/server/chat-plugins/modlog-viewer.ts index cef81f7ea48a..eeecbfaff04e 100644 --- a/server/chat-plugins/modlog-viewer.ts +++ b/server/chat-plugins/modlog-viewer.ts @@ -356,7 +356,7 @@ export const commands: Chat.ChatCommands = { if (!target) return this.parse(`/help modlogstats`); return this.parse(`/join view-modlogstats-${target}`); }, - modlogstatshelp: [`/modlogstats [userid] - Fetch all information on that [userid] from the modlog (IPs, alts, etc). Requires: @ &`], + modlogstatshelp: [`/modlogstats [userid] - Fetch all information on that [userid] from the modlog (IPs, alts, etc). Requires: @ ~`], }; export const pages: Chat.PageTable = { @@ -389,7 +389,7 @@ export const pages: Chat.PageTable = { if (entry.ip) { let ipTable = punishmentsByIp.get(entry.ip); if (!ipTable) { - ipTable = new Utils.Multiset(); + ipTable = new Utils.Multiset(); punishmentsByIp.set(entry.ip, ipTable); } ipTable.add(entry.action); @@ -448,7 +448,7 @@ export const pages: Chat.PageTable = { for (const [ip, table] of punishmentsByIp) { buf += `${ip}`; for (const key of keys) { - buf += `${table.get(key) || 0}`; + buf += `${table.get(key)}`; } buf += ``; } diff --git a/server/chat-plugins/othermetas.ts b/server/chat-plugins/othermetas.ts index c354977b0c16..579311408f24 100644 --- a/server/chat-plugins/othermetas.ts +++ b/server/chat-plugins/othermetas.ts @@ -2,7 +2,7 @@ * Other Metagames chat plugin * Lets users see elements of Pokemon in various Other Metagames. * Originally by Spandan. - * @author Kris + * @author dhelmise */ import {Utils} from '../../lib'; @@ -11,10 +11,11 @@ interface StoneDeltas { baseStats: {[stat in StatID]: number}; bst: number; weighthg: number; + heightm: number; type?: string; } -type TierShiftTiers = 'UU' | 'RUBL' | 'RU' | 'NUBL' | 'NU' | 'PUBL' | 'PU' | 'NFE' | 'LC'; +type TierShiftTiers = 'UU' | 'RUBL' | 'RU' | 'NUBL' | 'NU' | 'PUBL' | 'PU' | 'ZUBL' | 'ZU' | 'NFE' | 'LC'; function getMegaStone(stone: string, mod = 'gen9'): Item | null { let dex = Dex; @@ -41,7 +42,7 @@ function getMegaStone(stone: string, mod = 'gen9'): Item | null { } } if (!item.megaStone && !item.onPrimal && !item.forcedForme?.endsWith('Epilogue') && - !item.forcedForme?.endsWith('Origin') && !item.name.startsWith('Rusted')) return null; + !item.forcedForme?.endsWith('Origin') && !item.name.startsWith('Rusted') && !item.name.endsWith('Mask')) return null; return item; } @@ -70,11 +71,11 @@ export const commands: Chat.ChatCommands = { } if (target === 'month') this.target = 'omofthemonth'; - this.run('formathelp'); + return this.run('formathelp'); }, othermetashelp: [ `/om - Provides links to information on the Other Metagames.`, - `!om - Show everyone that information. Requires: + % @ # &`, + `!om - Show everyone that information. Requires: + % @ # ~`, ], mnm: 'mixandmega', @@ -91,14 +92,14 @@ export const commands: Chat.ChatCommands = { } else { throw new Chat.ErrorMessage(`A mod by the name of '${mod.trim()}' does not exist.`); } - if (dex === Dex.dexes['ssb']) { + if (dex === Dex.dexes['gen9ssb']) { throw new Chat.ErrorMessage(`The SSB mod supports custom elements for Mega Stones that have the capability of crashing the server.`); } } const stone = getMegaStone(stoneName[0], mod); const species = dex.species.get(sep[0]); if (!stone) { - throw new Chat.ErrorMessage(`Error: Mega Stone/Primal Orb/Rusted Item/Origin Item not found.`); + throw new Chat.ErrorMessage(`Error: Mega Stone/Primal Orb/Rusted Item/Origin Item/Mask not found.`); } if (!species.exists) throw new Chat.ErrorMessage(`Error: Pok\u00e9mon not found.`); let baseSpecies: Species; @@ -122,7 +123,8 @@ export const commands: Chat.ChatCommands = { break; default: const forcedForme = stone.forcedForme; - if (forcedForme && (forcedForme.endsWith('Origin') || forcedForme.endsWith('Epilogue'))) { + if (forcedForme && + (forcedForme.startsWith('Ogerpon') || forcedForme.endsWith('Origin') || forcedForme.endsWith('Epilogue'))) { megaSpecies = dex.species.get(forcedForme); baseSpecies = dex.species.get(forcedForme.split('-')[0]); } else { @@ -134,6 +136,7 @@ export const commands: Chat.ChatCommands = { const deltas: StoneDeltas = { baseStats: Object.create(null), weighthg: megaSpecies.weighthg - baseSpecies.weighthg, + heightm: ((megaSpecies.heightm * 10) - (baseSpecies.heightm * 10)) / 10, bst: megaSpecies.bst - baseSpecies.bst, }; let statId: StatID; @@ -143,7 +146,7 @@ export const commands: Chat.ChatCommands = { if (megaSpecies.types.length > baseSpecies.types.length) { deltas.type = megaSpecies.types[1]; } else if (megaSpecies.types.length < baseSpecies.types.length) { - deltas.type = 'mono'; + deltas.type = dex.gen === 8 ? 'mono' : baseSpecies.types[0]; } else if (megaSpecies.types[1] !== baseSpecies.types[1]) { deltas.type = megaSpecies.types[1]; } @@ -165,6 +168,7 @@ export const commands: Chat.ChatCommands = { mixedSpecies.bst += mixedSpecies.baseStats[statName]; } mixedSpecies.weighthg = Math.max(1, species.weighthg + deltas.weighthg); + mixedSpecies.heightm = Math.max(0.1, ((species.heightm * 10) + (deltas.heightm * 10)) / 10); mixedSpecies.tier = "MnM"; let weighthit = 20; if (mixedSpecies.weighthg >= 2000) { @@ -207,7 +211,7 @@ export const commands: Chat.ChatCommands = { } else { throw new Chat.ErrorMessage(`A mod by the name of '${sep[1].trim()}' does not exist.`); } - if (dex === Dex.dexes['ssb']) { + if (dex === Dex.dexes['gen9ssb']) { throw new Chat.ErrorMessage(`The SSB mod supports custom elements for Mega Stones that have the capability of crashing the server.`); } } @@ -217,11 +221,15 @@ export const commands: Chat.ChatCommands = { const stone = getMegaStone(targetid, sep[1]); const stones = []; if (!stone) { - const species = dex.species.get(targetid.replace(/(?:mega[xy]?|primal|origin|crowned|epilogue)$/, '')); + const species = dex.species.get( + targetid.replace(/(?:mega[xy]?|primal|origin|crowned|epilogue|cornerstone|wellspring|hearthflame)$/, '') + ); if (!species.exists) throw new Chat.ErrorMessage(`Error: Mega Stone not found.`); if (!species.otherFormes) throw new Chat.ErrorMessage(`Error: Mega Evolution not found.`); for (const poke of species.otherFormes) { - if (!/(?:-Crowned|-Epilogue|-Origin|-Primal|-Mega(?:-[XY])?)$/.test(poke)) continue; + if (!/(?:-Cornerstone|-Wellspring|-Hearthflame|-Crowned|-Epilogue|-Origin|-Primal|-Mega(?:-[XY])?)$/.test(poke)) { + continue; + } const megaPoke = dex.species.get(poke); const flag = megaPoke.requiredMove === 'Dragon Ascent' ? megaPoke.requiredMove : megaPoke.requiredItem; if (/mega[xy]$/.test(targetid) && toID(megaPoke.name) !== toID(dex.species.get(targetid))) continue; @@ -254,7 +262,8 @@ export const commands: Chat.ChatCommands = { break; default: const forcedForme = aStone.forcedForme; - if (forcedForme && (forcedForme.endsWith('Origin') || forcedForme.endsWith('Epilogue'))) { + if (forcedForme && + (forcedForme.startsWith('Ogerpon') || forcedForme.endsWith('Origin') || forcedForme.endsWith('Epilogue'))) { megaSpecies = dex.species.get(forcedForme); baseSpecies = dex.species.get(forcedForme.split('-')[0]); } else { @@ -266,6 +275,7 @@ export const commands: Chat.ChatCommands = { const deltas: StoneDeltas = { baseStats: Object.create(null), weighthg: megaSpecies.weighthg - baseSpecies.weighthg, + heightm: ((megaSpecies.heightm * 10) - (baseSpecies.heightm * 10)) / 10, bst: megaSpecies.bst - baseSpecies.bst, }; let statId: StatID; @@ -275,19 +285,22 @@ export const commands: Chat.ChatCommands = { if (megaSpecies.types.length > baseSpecies.types.length) { deltas.type = megaSpecies.types[1]; } else if (megaSpecies.types.length < baseSpecies.types.length) { - deltas.type = dex.gen >= 8 ? 'mono' : megaSpecies.types[0]; + deltas.type = dex.gen === 8 ? 'mono' : megaSpecies.types[0]; } else if (megaSpecies.types[1] !== baseSpecies.types[1]) { deltas.type = megaSpecies.types[1]; } const details = { Gen: aStone.gen, + Height: (deltas.heightm < 0 ? "" : "+") + deltas.heightm + " m", Weight: (deltas.weighthg < 0 ? "" : "+") + deltas.weighthg / 10 + " kg", }; let tier; - if (['redorb', 'blueorb'].includes(aStone.id) || aStone.forcedForme?.endsWith('Origin')) { + if (['redorb', 'blueorb'].includes(aStone.id)) { tier = "Orb"; } else if (aStone.name === "Dragon Ascent") { tier = "Move"; + } else if (aStone.name.endsWith('Mask')) { + tier = "Mask"; } else if (aStone.megaStone) { tier = "Stone"; } else { @@ -299,7 +312,7 @@ export const commands: Chat.ChatCommands = { buf += ``; } else { // temp image support until real images are uploaded - const itemName = aStone.forcedForme?.endsWith('Origin') ? aStone.name.split(' ')[0] + ' Orb' : aStone.name; + const itemName = aStone.name; buf += ` `; } if (aStone.name === "Dragon Ascent") { @@ -327,7 +340,7 @@ export const commands: Chat.ChatCommands = { buf += ``; buf += ``; this.sendReply(`|raw|
    ${buf}
`); - this.sendReply(`|raw|Gen: ${details["Gen"]} |  Weight: ${details["Weight"]}`); + this.sendReply(`|raw|${Object.entries(details).map(([detail, value]) => `${detail}: ${value}`).join(" |  ")}`); } }, stonehelp: [`/stone [, generation] - Shows the changes that a mega stone/orb applies to a Pok\u00e9mon.`], @@ -392,16 +405,24 @@ export const commands: Chat.ChatCommands = { throw new Chat.ErrorMessage(`Error: Pok\u00e9mon '${monName}' not found${additionalReason}.`); } const boosts: {[tier in TierShiftTiers]: number} = { - UU: 10, - RUBL: 10, + UU: 15, + RUBL: 15, RU: 20, NUBL: 20, - NU: 30, - PUBL: 30, - PU: 40, - NFE: 40, - LC: 40, + NU: 25, + PUBL: 25, + PU: 30, + ZUBL: 30, + ZU: 30, + NFE: 30, + LC: 30, }; + if (dex.gen < 9) { + boosts['UU'] = boosts['RUBL'] = 10; + boosts['RU'] = boosts['NUBL'] = 20; + boosts['NU'] = boosts['PUBL'] = 30; + boosts['PU'] = boosts['NFE'] = boosts['LC'] = 40; + } let tier = species.tier; if (tier[0] === '(') tier = tier.slice(1, -1); if (!(tier in boosts)) return this.sendReply(`|html|${Chat.getDataPokemonHTML(species, dex.gen)}`); @@ -420,6 +441,154 @@ export const commands: Chat.ChatCommands = { `Alternatively, you can use /ts[gen number] to see a Pok\u00e9mon's stats in that generation.`, ], + fuse: 'franticfusions', + fuse1: 'franticfusions', + fuse2: 'franticfusions', + fuse3: 'franticfusions', + fuse4: 'franticfusions', + fuse5: 'franticfusions', + fuse6: 'franticfusions', + fuse7: 'franticfusions', + fuse8: 'franticfusions', + franticfusions(target, room, user, connection, cmd) { + const args = target.split(','); + if (!toID(args[0]) && !toID(args[1])) return this.parse('/help franticfusions'); + const targetGen = parseInt(cmd[cmd.length - 1]); + if (targetGen && !args[2]) target = `${target},gen${targetGen}`; + const {dex, targets} = this.splitFormat(target, true); + this.runBroadcast(); + if (targets.length > 2) return this.parse('/help franticfusions'); + const species = Utils.deepClone(dex.species.get(targets[0])); + const fusion = dex.species.get(targets[1]); + if (!species.exists || species.gen > dex.gen) { + const monName = species.gen > dex.gen ? species.name : args[0].trim(); + const additionalReason = species.gen > dex.gen ? ` in Generation ${dex.gen}` : ``; + throw new Chat.ErrorMessage(`Error: Pok\u00e9mon '${monName}' not found${additionalReason}.`); + } + if (fusion.name.length) { + if (!fusion.exists || fusion.gen > dex.gen) { + const monName = fusion.gen > dex.gen ? fusion.name : args[1].trim(); + const additionalReason = fusion.gen > dex.gen ? ` in Generation ${dex.gen}` : ``; + throw new Chat.ErrorMessage(`Error: Pok\u00e9mon '${monName}' not found${additionalReason}.`); + } + if (fusion.name === species.name) { + throw new Chat.ErrorMessage('Pok\u00e9mon can\'t fuse with themselves.'); + } + } + if (fusion.name.length) { + species.bst = species.baseStats.hp; + } else { + species.bst = 0; + } + for (const statName in species.baseStats) { + if (statName === 'hp') continue; + if (!fusion.name.length) { + species.baseStats[statName] = Math.floor(species.baseStats[statName as StatID] / 4); + species.bst += species.baseStats[statName]; + } else { + const addition = Math.floor(fusion.baseStats[statName as StatID] / 4); + species.baseStats[statName] = Utils.clampIntRange(species.baseStats[statName] + addition, 1, 255); + species.bst += species.baseStats[statName]; + } + } + const abilities = new Set([...Object.values(species.abilities), ...Object.values(fusion.abilities)]); + let buf = '
  • '; + buf += 'Fusion '; + buf += ` `; + buf += `${species.name} `; + buf += ''; + if (species.types && fusion.name.length) { + for (const type of species.types) { + buf += `${type}`; + } + } + buf += ' '; + if (dex.gen >= 3) { + buf += ''; + const ability1 = [...abilities.values()][0]; + abilities.delete(ability1); + let ability2; + if (abilities.size) { + ability2 = [...abilities.values()][0]; + abilities.delete(ability2); + } + let ability3; + if (abilities.size) { + ability3 = [...abilities.values()][0]; + abilities.delete(ability3); + } + let ability4; + if (abilities.size) { + ability4 = [...abilities.values()][0]; + abilities.delete(ability4); + } + let ability5; + if (abilities.size) { + ability5 = [...abilities.values()][0]; + abilities.delete(ability5); + } + let ability6; + if (abilities.size) { + ability6 = [...abilities.values()][0]; + abilities.delete(ability6); + } + let ability7; + if (abilities.size) { + ability7 = [...abilities.values()][0]; + abilities.delete(ability7); + } + if (ability1) { + if (ability2) { + buf += '' + ability1 + '
    ' + ability2 + '
    '; + } else { + buf += '' + ability1 + ''; + } + } + if (ability3) { + if (ability4) { + buf += '' + ability3 + '
    ' + ability4 + '
    '; + } else { + buf += '' + ability3 + ''; + } + } + if (ability5) { + if (ability6) { + buf += '' + ability5 + '
    ' + ability6 + '
    '; + } else { + buf += '' + ability5 + ''; + } + } + if (ability7) { + buf += '' + ability7 + ''; + } + buf += '
    '; + } + buf += ''; + if (fusion.name.length) { + buf += 'HP
    ' + species.baseStats.hp + '
    '; + } else { + buf += 'HP
    0
    '; + } + buf += 'Atk
    ' + species.baseStats.atk + '
    '; + buf += 'Def
    ' + species.baseStats.def + '
    '; + if (dex.gen <= 1) { + buf += 'Spc
    ' + species.baseStats.spa + '
    '; + } else { + buf += 'SpA
    ' + species.baseStats.spa + '
    '; + buf += 'SpD
    ' + species.baseStats.spd + '
    '; + } + buf += 'Spe
    ' + species.baseStats.spe + '
    '; + buf += 'BST
    ' + species.bst + '
    '; + buf += '
    '; + buf += '
'; + this.sendReply(`|raw|${buf}`); + }, + franticfusionshelp: [ + `/fuse , [, generation] - Shows the stats and abilities that would get when fused with .`, + `/fuse [, generation] - Shows the stats and abilities that donates.`, + `Alternatively, you can use /fuse[gen number] to see a Pok\u00e9mon's stats in that generation.`, + ], + scale: 'scalemons', scale1: 'scalemons', scale2: 'scalemons', @@ -651,7 +820,7 @@ export const commands: Chat.ChatCommands = { ], reevo: 'showevo', - showevo(target, user, room, connection, cmd) { + showevo(target, room, user, connection, cmd) { if (!this.runBroadcast()) return; const targetid = toID(target); const isReEvo = cmd === 'reevo'; @@ -661,34 +830,36 @@ export const commands: Chat.ChatCommands = { throw new Chat.ErrorMessage(`Error: Pok\u00e9mon ${target} not found.`); } if (!evo.prevo) { - const evoBaseSpecies = Dex.species.get(evo.baseSpecies); + const evoBaseSpecies = Dex.species.get( + (Array.isArray(evo.battleOnly) ? evo.battleOnly[0] : evo.battleOnly) || evo.changesFrom || evo.name + ); if (!evoBaseSpecies.prevo) throw new Chat.ErrorMessage(`Error: ${evoBaseSpecies.name} is not an evolution.`); const prevoSpecies = Dex.species.get(evoBaseSpecies.prevo); const deltas = Utils.deepClone(evo); - if (!isReEvo) { - deltas.tier = 'CE'; - deltas.weightkg = evo.weightkg - prevoSpecies.weightkg; - deltas.types = []; - if (evo.types[0] !== prevoSpecies.types[0]) deltas.types[0] = evo.types[0]; - if (evo.types[1] !== prevoSpecies.types[1]) { - deltas.types[1] = evo.types[1] || evo.types[0]; - } - if (deltas.types.length) { + if (!isReEvo) { + deltas.tier = 'CE'; + deltas.weightkg = evo.weightkg - prevoSpecies.weightkg; + deltas.types = []; + if (evo.types[0] !== prevoSpecies.types[0]) deltas.types[0] = evo.types[0]; + if (evo.types[1] !== prevoSpecies.types[1]) { + deltas.types[1] = evo.types[1] || evo.types[0]; + } + if (deltas.types.length) { // Undefined type remover - deltas.types = deltas.types.filter((type: string | undefined) => type !== undefined); + deltas.types = deltas.types.filter((type: string | undefined) => type !== undefined); if (deltas.types[0] === deltas.types[1]) deltas.types = [deltas.types[0]]; - } else { + } else { deltas.types = null; - } - } - deltas.bst = 0; - let i: StatID; - for (i in evo.baseStats) { + } + } + deltas.bst = 0; + let i: StatID; + for (i in evo.baseStats) { const statChange = evoBaseSpecies.baseStats[i] - prevoSpecies.baseStats[i]; const formeChange = evo.baseStats[i] - evoBaseSpecies.baseStats[i]; if (!isReEvo) { - if (!evo.prevo) { + if (!evo.prevo) { deltas.baseStats[i] = formeChange; } else { deltas.baseStats[i] = statChange; @@ -756,4 +927,24 @@ export const commands: Chat.ChatCommands = { showevohelp: [ `/showevo - Shows the changes that a Pok\u00e9mon applies in Cross Evolution`, ], + + pokemove(target, room, user) { + if (!this.runBroadcast()) return; + const species = Dex.species.get(target); + if (!species.exists) return this.parse('/help pokemove'); + const move = Utils.deepClone(Dex.moves.get('tackle')); + move.name = species.name; + move.type = species.types[0]; + move.flags = {protect: 1}; + move.basePower = Math.max(species.baseStats['atk'], species.baseStats['spa']); + move.pp = 5; + move.gen = species.gen; + move.num = species.num; + move.desc = move.shortDesc = `Gives ${species.abilities['0']} as a second ability after use.`; + move.category = species.baseStats['spa'] >= species.baseStats['atk'] ? 'Special' : 'Physical'; + this.sendReply(`|raw|${Chat.getDataMoveHTML(move)}`); + }, + pokemovehelp: [ + `/pokemove - Shows the Pokemove data for .`, + ], }; diff --git a/server/chat-plugins/permalocks.ts b/server/chat-plugins/permalocks.ts new file mode 100644 index 000000000000..e5708e903fb7 --- /dev/null +++ b/server/chat-plugins/permalocks.ts @@ -0,0 +1,569 @@ +/** + * Wrapper to facilitate posting / interacting with Smogon. + * By Mia. + * @author mia-pi-git + */ +import {Net, FS, Utils} from '../../lib'; + +export interface Nomination { + by: ID; + ips: string[]; + info: string; + date: number; + standing: string; + alts: string[]; + primaryID: ID; + claimed?: ID; + post?: string; +} + +interface IPData { + country: string; + isp: string; + city: string; + regionName: string; + lat: number; + lon: number; +} + +export function getIPData(ip: string) { + try { + return Net("https://miapi.dev/api/ip/" + ip).get().then(JSON.parse) as Promise; + } catch { + return null; + } +} + +export const Smogon = new class { + async post(threadNum: string, postText: string) { + if (!Config.smogon) return null; + try { + const raw = await Net(`https://www.smogon.com/forums/api/posts`).get({ + method: 'POST', + body: new URLSearchParams({ + thread_id: threadNum, + message: postText, + }).toString(), + headers: { + 'XF-Api-Key': Config.smogon, + 'Content-Type': 'application/x-www-form-urlencoded', + }, + }); + // todo return URL of post + const data = JSON.parse(raw); + if (data.errors?.length) { + const errData = data.errors.pop(); + throw new Error(errData.message); + } + return data; + } catch (e: any) { + if (e.message.includes('Not Found')) { + // special case to be loud + throw new Error("WHO DELETED THE PERMA THREAD"); + } + return {error: e.message}; + } + } +}; + +export const Nominations = new class { + noms: Nomination[] = []; + icons: Record = {}; + constructor() { + this.load(); + } + load() { + try { + let data = JSON.parse(FS('config/chat-plugins/permas.json').readSync()); + if (Array.isArray(data)) { + data = {noms: data, icons: {}}; + FS('config/chat-plugins/permas.json').writeSync(JSON.stringify(data)); + } + this.noms = data.noms; + this.icons = data.icons; + } catch {} + } + fetchModlog(id: string) { + return Rooms.Modlog.search('global', { + user: [{search: id, isExact: true}], + note: [], + ip: [], + action: [], + actionTaker: [], + }, undefined, true); + } + save() { + FS('config/chat-plugins/permas.json').writeUpdate(() => JSON.stringify({noms: this.noms, icons: this.icons})); + } + notifyStaff() { + const usRoom = Rooms.get('upperstaff'); + if (!usRoom) return; + usRoom.send(`|uhtml|permanoms|${this.getDisplayButton()}`); + Chat.refreshPageFor('permalocks', usRoom); + } + async add(target: string, connection: Connection) { + const user = connection.user; + const [primary, rawAlts, rawIps, type, details] = Utils.splitFirst(target, '|', 4).map(f => f.trim()); + const primaryID = toID(primary); + const alts = rawAlts.split(',').map(toID).filter(Boolean); + const ips = rawIps.split(',').map(f => f.trim()).filter(Boolean); + for (const ip of ips) { + if (!IPTools.ipRegex.test(ip)) this.error(`Invalid IP: ${ip}`, connection); + } + const standings = this.getStandings(); + if (!standings[type]) { + this.error(`Invalid standing: ${type}.`, connection); + } + if (!details) { + this.error("Details must be provided. Explain why this user should be permalocked.", connection); + } + if (!primaryID) { + this.error("A primary username must be provided. Use one of their alts if necessary.", connection); + } + for (const nom of this.noms) { + if (nom.primaryID === primaryID) { + this.error(`'${primaryID}' was already nominated for permalock by ${nom.by}.`, connection); + } + } + const ipTable = new Set(ips); + const altTable = new Set([...alts]); + for (const alt of [primaryID, ...alts]) { + const modlog = await this.fetchModlog(alt); + if (!modlog || !modlog.results.length) continue; + for (const entry of modlog.results) { + if (entry.ip) ipTable.add(entry.ip); + if (entry.autoconfirmedID) altTable.add(entry.autoconfirmedID); + if (entry.alts) { + for (const id of entry.alts) altTable.add(id); + } + } + } + altTable.delete(primaryID); + this.noms.push({ + by: user.id, + alts: [...altTable], + ips: Utils.sortBy([...ipTable], z => -(IPTools.ipToNumber(z) || Infinity)), + info: details, + primaryID, + standing: type, + date: Date.now(), + }); + Utils.sortBy(this.noms, nom => -nom.date); + this.save(); + this.notifyStaff(); + Rooms.get('staff')?.addByUser(user, `${user.name} submitted a perma nomination for ${primaryID}`); + } + find(id: string) { + return this.noms.find(f => f.primaryID === id); + } + error(message: string, conn: Connection): never { + conn.popup(message); + throw new Chat.Interruption(); + } + close(target: string, context: Chat.CommandContext) { + const entry = this.find(target); + if (!entry) { + this.error(`There is no nomination pending for '${toID(target)}'.`, context.connection); + } + this.noms.splice(this.noms.findIndex(f => f.primaryID === entry.primaryID), 1); + this.save(); + this.notifyStaff(); + // todo fix when on good comp + return context.closePage(`permalocks-view-${entry.primaryID}`); + } + display(nom: Nomination, canEdit?: boolean) { + let buf = `
`; + let title = nom.primaryID as string; + if (canEdit) { + title = `${nom.primaryID}`; + } + buf += `${title} (submitted by ${nom.by})
`; + buf += `Submitted ${Chat.toTimestamp(new Date(nom.date), {human: true})}
`; + buf += `${Chat.count(nom.alts, 'alts')}, ${Chat.count(nom.ips, 'IPs')}`; + buf += `
`; + return buf; + } + displayModlog(results: import('../modlog').ModlogEntry[] | null) { + if (!results) return ''; + let curDate = ''; + return results.map(result => { + const date = new Date(result.time || Date.now()); + const entryRoom = result.visualRoomID || result.roomID || 'global'; + let [dateString, timestamp] = Chat.toTimestamp(date, {human: true}).split(' '); + let line = `[${timestamp}] (${entryRoom}) ${result.action}`; + if (result.userid) { + line += `: [${result.userid}]`; + if (result.autoconfirmedID) line += ` ac: [${result.autoconfirmedID}]`; + if (result.alts.length) line += ` alts: [${result.alts.join('], [')}]`; + if (result.ip) line += ` [${result.ip}]`; + } + + if (result.loggedBy) line += `: by ${result.loggedBy}`; + if (result.note) line += Utils.html`: ${result.note}`; + + if (dateString !== curDate) { + curDate = dateString; + dateString = `

[${dateString}]
`; + } else { + dateString = ``; + } + const thisRoomID = entryRoom?.split(' ')[0]; + if (thisRoomID.startsWith('battle-')) { + timestamp = `${timestamp}`; + } else { + const [day, time] = Chat.toTimestamp(date).split(' '); + timestamp = `${timestamp}`; + } + return `${dateString}${line}`; + }).join(`
`); + } + async displayActionPage(nom: Nomination) { + let buf = `

` ).update(); } - if (this.missingBattleStartMessage === 'multi') { + + // run onCreateBattleRoom handlers + + if (this.options.inputLog && this.players.every(player => player.hasTeam)) { + // already started + this.started = true; + } + const delayStart = this.options.delayedStart || !!this.options.inputLog; + const users = this.players.map(player => { + const user = player.getUser(); + if (!user && !delayStart) { + throw new Error(`User ${player.id} not found on ${this.roomid} battle creation`); + } + return user; + }); + if (!delayStart) { + Rooms.global.onCreateBattleRoom(users as User[], this.room, {rated: this.rated}); + this.started = true; + } else if (delayStart === 'multi') { this.room.add(`|uhtml|invites|
This is a 4-player challenge battle
The players will need to add more players before the battle can start.
`); } } @@ -1254,6 +1215,7 @@ export class RoomBattle extends RoomGames.RoomGame { return; } if (!connection) return; + const playerForms = this.players.map(player => ( player.id ? ( `` @@ -1273,13 +1235,11 @@ export class RoomBattle extends RoomGames.RoomGame { ); } - clearPlayers() { - for (const player of this.players) { - player.unlinkUser(); + override destroy() { + if (!this.ended) { + this.setEnded(); + this.room.parent?.game?.onBattleWin?.(this.room, ''); } - } - - destroy() { for (const player of this.players) { player.destroy(); } @@ -1290,7 +1250,6 @@ export class RoomBattle extends RoomGames.RoomGame { this.p3 = null!; this.p4 = null!; - this.ended = true; void this.stream.destroy(); if (this.active) { Rooms.global.battleCount += -1; @@ -1310,6 +1269,9 @@ export class RoomBattle extends RoomGames.RoomGame { const id = toID(user); const player = this.playerTable[id]; if (!player) return; + return this.getPlayerTeam(player); + } + async getPlayerTeam(player: RoomBattlePlayer) { void this.stream.write(`>requestteam ${player.slot}`); const teamDataPromise = new Promise((resolve, reject) => { if (!this.dataResolvers) this.dataResolvers = []; @@ -1320,7 +1282,7 @@ export class RoomBattle extends RoomGames.RoomGame { const result = Teams.unpack(resultStrings[0]); return result; } - onChatMessage(message: string, user: User) { + override onChatMessage(message: string, user: User) { const parts = message.split('\n'); for (const line of parts) { void this.stream.write(`>chat-inputlogonly ${user.getIdentity(this.room)}|${line}`); @@ -1339,13 +1301,13 @@ export class RoomBattle extends RoomGames.RoomGame { } export class RoomBattleStream extends BattleStream { - readonly battle: Battle; + override readonly battle: Battle; constructor() { super({keepAlive: true}); this.battle = null!; } - _write(chunk: string) { + override _write(chunk: string) { const startTime = Date.now(); if (this.battle && Config.debugsimprocesses && process.send) { process.send('DEBUG\n' + this.battle.inputLog.join('\n') + '\n' + chunk); @@ -1391,6 +1353,7 @@ export const PM = new ProcessManager.StreamProcessManager(module, () => new Room if (!PM.isParentProcess) { // This is a child process! + require('source-map-support').install(); global.Config = require('./config-loader').Config; global.Dex = require('../sim/dex').Dex; global.Monitor = { diff --git a/server/room-game.ts b/server/room-game.ts index 144ee60c20e6..a0a7f30622e2 100644 --- a/server/room-game.ts +++ b/server/room-game.ts @@ -15,7 +15,23 @@ * @license MIT */ -// globally Rooms.RoomGamePlayer +/** + * Available globally as `Rooms.RoomGamePlayer`. + * + * Players are an abstraction for the people playing a `RoomGame`. They + * may or may not be associated with a user. If they are, the game will + * appear on the user's games list. + * + * Either way, they give a level of abstraction to players, allowing you + * to easily sub out users or otherwise associate/dissociate users. + * + * You should mostly only be adding/removing players with functions like + * `addPlayer`, `removePlayer`, etc, and changing the associated user + * with `setPlayerUser` or `setEnded`. + * + * Do not modify `playerTable` or `player.id` yourself, it will make + * users' games lists get out of sync. + */ export class RoomGamePlayer { readonly num: number; readonly game: GameClass; @@ -31,9 +47,22 @@ export class RoomGamePlayer { /** * This will be '' if there's no user associated with the player. * - * we explicitly don't hold a direct reference to the user + * After the game ends, this will still be the user's ID, but it + * won't be in the user's game list anymore. + * + * We intentionally don't hold a direct reference to the user. + * + * Do not modify directly. You usually want `game.updatePlayer` + * (respects allowRenames) or `game.setPlayerUser` (overrides + * allowRenames) or `game.renamePlayer` (overrides allowRenames + * and also skips gamelist updates if the change was a simple + * user rename). + * + * If force-modifying: remember to sync `this.game.playerTable` and + * `this.getUser().games`. */ - id: ID; + readonly id: ID; + completed?: boolean; constructor(user: User | string | null, game: GameClass, num = 0) { this.num = num; if (!user) user = num ? `Player ${num}` : `Player`; @@ -46,29 +75,21 @@ export class RoomGamePlayer { user.updateSearch(); } } - unlinkUser() { - if (!this.id) return; - const user = Users.getExact(this.id); - if (user && !this.game.isSubGame) { - user.games.delete(this.game.roomid); - user.updateSearch(); - } - this.id = ''; - } destroy() { - this.unlinkUser(); + (this.game as any) = null; } toString() { return this.id; } + getUser() { + return this.id ? Users.getExact(this.id) : null; + } send(data: string) { - const user = Users.getExact(this.id); - if (user) user.send(data); + this.getUser()?.send(data); } sendRoom(data: string) { - const user = Users.getExact(this.id); - if (user) user.sendTo(this.game.roomid, data); + this.getUser()?.sendTo(this.game.roomid, data); } } @@ -78,26 +99,35 @@ export class RoomGamePlayer { * If you don't want to define your own player class, you should extend SimpleRoomGame. */ export abstract class RoomGame { + abstract gameid: ID; roomid: RoomID; /** * The room this roomgame is in. Rooms can have two RoomGames at a time, * which are available as `this.room.game === this` and `this.room.subGame === this`. */ room: Room; - gameid: ID; - title: string; - allowRenames: boolean; + title = 'Game'; + allowRenames = false; isSubGame: boolean; /** * userid:player table. * - * Does not contain userless players: use playerList for the full list. + * Does not contain userless players: use this.players for the full list. + * + * Do not iterate. You usually want to iterate `game.players` instead. + * + * Do not modify directly. You usually want `game.addPlayer` or + * `game.removePlayer` instead. + * + * Not a source of truth. Should be kept in sync with + * `Object.fromEntries(this.players.filter(p => p.id).map(p => [p.id, p]))` */ - playerTable: {[userid: string]: PlayerClass}; - players: PlayerClass[]; - playerCount: number; - playerCap: number; - ended: boolean; + playerTable: {[userid: string]: PlayerClass} = Object.create(null); + players: PlayerClass[] = []; + playerCount = 0; + playerCap = 0; + /** should only be set by setEnded */ + readonly ended: boolean = false; /** Does `/guess` or `/choose` require the user to be able to talk? */ checkChat = false; /** @@ -108,15 +138,7 @@ export abstract class RoomGame { +export abstract class SimpleRoomGame extends RoomGame { makePlayer(user: User | string | null, ...rest: any[]): RoomGamePlayer { const num = this.players.length ? this.players[this.players.length - 1].num : 1; return new RoomGamePlayer(user, this, num); diff --git a/server/room-minor-activity.ts b/server/room-minor-activity.ts index 27e02a61a8f6..f2c8ef5d8f75 100644 --- a/server/room-minor-activity.ts +++ b/server/room-minor-activity.ts @@ -87,7 +87,7 @@ export abstract class MinorActivity { if (pollData.activityid !== 'poll') throw new Error(`Unexpected Minor Activity (${pollData.activityid}) in queue`); - room.add(`|c|&|/log ${room.tr`The queued poll was started.`}`).update(); + room.add(`|c|~|/log ${room.tr`The queued poll was started.`}`).update(); room.modlog({ action: 'POLL', note: '(queued)', diff --git a/server/roomlogs.ts b/server/roomlogs.ts index e8b7be41deeb..841a4663392c 100644 --- a/server/roomlogs.ts +++ b/server/roomlogs.ts @@ -7,7 +7,8 @@ * @license MIT */ -import {FS, Utils} from '../lib'; +import {FS, Utils, type Streams} from '../lib'; +import {PGDatabase, SQL, SQLStatement} from '../lib/database'; import type {PartialModlogEntry} from './modlog'; interface RoomlogOptions { @@ -16,6 +17,22 @@ interface RoomlogOptions { noLogTimes?: boolean; } +interface RoomlogRow { + type: string; + roomid: string; + userid: string | null; + time: Date; + log: string; + // tsvector, really don't use + content: string | null; +} + +export const roomlogDB = (() => { + if (!global.Config || !Config.replaysdb || Config.disableroomlogdb) return null; + return new PGDatabase(Config.replaysdb); +})(); +export const roomlogTable = roomlogDB?.getTable('roomlogs'); + /** * Most rooms have three logs: * - scrollback @@ -63,6 +80,10 @@ export class Roomlog { * null = disabled */ roomlogStream?: Streams.WriteStream | null; + /** + * Takes precedence over roomlogStream if it exists. + */ + roomlogTable: typeof roomlogTable; roomlogFilename: string; numTruncatedLines: number; @@ -81,7 +102,7 @@ export class Roomlog { this.numTruncatedLines = 0; - void this.setupRoomlogStream(true); + this.setupRoomlogStream(); } getScrollback(channel = 0) { let log = this.log; @@ -104,43 +125,39 @@ export class Roomlog { } return log.join('\n') + '\n'; } - async setupRoomlogStream(sync = false) { + setupRoomlogStream() { if (this.roomlogStream === null) return; - if (!Config.logchat) { + if (!Config.logchat || this.roomid.startsWith('battle-') || this.roomid.startsWith('game-')) { this.roomlogStream = null; return; } - if (this.roomid.startsWith('battle-')) { + if (roomlogTable) { + this.roomlogTable = roomlogTable; this.roomlogStream = null; return; } const date = new Date(); const dateString = Chat.toTimestamp(date).split(' ')[0]; const monthString = dateString.split('-', 2).join('-'); - const basepath = `logs/chat/${this.roomid}/`; + const basepath = `chat/${this.roomid}/`; const relpath = `${monthString}/${dateString}.txt`; if (relpath === this.roomlogFilename) return; - if (sync) { - FS(basepath + monthString).mkdirpSync(); - } else { - await FS(basepath + monthString).mkdirp(); - if (this.roomlogStream === null) return; - } + Monitor.logPath(basepath + monthString).mkdirpSync(); this.roomlogFilename = relpath; if (this.roomlogStream) void this.roomlogStream.writeEnd(); - this.roomlogStream = FS(basepath + relpath).createAppendStream(); + this.roomlogStream = Monitor.logPath(basepath + relpath).createAppendStream(); // Create a symlink to today's lobby log. // These operations need to be synchronous, but it's okay // because this code is only executed once every 24 hours. const link0 = basepath + 'today.txt.0'; - FS(link0).unlinkIfExistsSync(); + Monitor.logPath(link0).unlinkIfExistsSync(); try { - FS(link0).symlinkToSync(relpath); // intentionally a relative link - FS(link0).renameSync(basepath + 'today.txt'); + Monitor.logPath(link0).symlinkToSync(relpath); // intentionally a relative link + Monitor.logPath(link0).renameSync(basepath + 'today.txt'); } catch {} // OS might not support symlinks or atomic rename - if (!Roomlogs.rollLogTimer) void Roomlogs.rollLogs(); + if (!Roomlogs.rollLogTimer) Roomlogs.rollLogs(); } add(message: string) { this.roomlog(message); @@ -183,7 +200,8 @@ export class Roomlog { const userid = toID(parsed.user); if (userids.includes(userid)) { if (!cleared.includes(userid)) cleared.push(userid); - if (this.roomid.startsWith('battle-')) return true; // Don't remove messages in battle rooms to preserve evidence + // Don't remove messages in battle rooms to preserve evidence + if (!this.roomlogStream && !this.roomlogTable) return true; if (clearAll) return false; if (lineCount > 0) { lineCount--; @@ -210,65 +228,108 @@ export class Roomlog { attributedUhtmlchange(user: User, name: string, message: string) { const start = `/uhtmlchange ${name},`; const fullMessage = this.withTimestamp(`|c|${user.getIdentity()}|${start}${message}`); + let matched = false; for (const [i, line] of this.log.entries()) { if (this.parseChatLine(line)?.message.startsWith(start)) { this.log[i] = fullMessage; + matched = true; break; } } + if (!matched) this.log.push(fullMessage); this.broadcastBuffer.push(fullMessage); } parseChatLine(line: string) { - const messageStart = !this.noLogTimes ? '|c:|' : '|c|'; - const section = !this.noLogTimes ? 4 : 3; // ['', 'c' timestamp?, author, message] - if (line.startsWith(messageStart)) { - const parts = Utils.splitFirst(line, '|', section); - return {user: parts[section - 1], message: parts[section]}; + const prefixes: [string, number][] = [['|c:|', 4], ['|c|', 3]]; + for (const [messageStart, section] of prefixes) { + // const messageStart = !this.noLogTimes ? '|c:|' : '|c|'; + // const section = !this.noLogTimes ? 4 : 3; // ['', 'c' timestamp?, author, message] + if (line.startsWith(messageStart)) { + const parts = Utils.splitFirst(line, '|', section); + return {user: parts[section - 1], message: parts[section]}; + } } } roomlog(message: string, date = new Date()) { - if (!this.roomlogStream) return; - const timestamp = Chat.toTimestamp(date).split(' ')[1] + ' '; - message = message.replace(/]* src="data:image\/png;base64,[^">]+"[^>]*>/g, ''); - void this.roomlogStream.write(timestamp + message + '\n'); + if (!Config.logchat) return; + message = message.replace(/]* src="data:image\/png;base64,[^">]+"[^>]*>/g, '[img]'); + if (this.roomlogTable) { + const chatData = this.parseChatLine(message); + const type = message.split('|')[1] || ""; + void this.insertLog(SQL`INSERT INTO roomlogs (${{ + type: type, + roomid: this.roomid, + userid: toID(chatData?.user) || null, + time: SQL`now()`, + log: message, + }})`); + + const dateStr = Chat.toTimestamp(date).split(' ')[0]; + void this.insertLog(SQL`INSERT INTO roomlog_dates (${{ + roomid: this.roomid, + month: dateStr.slice(0, -3), + date: dateStr, + }}) ON CONFLICT (roomid, date) DO NOTHING;`); + } else if (this.roomlogStream) { + const timestamp = Chat.toTimestamp(date).split(' ')[1] + ' '; + void this.roomlogStream.write(timestamp + message + '\n'); + } + } + private async insertLog(query: SQLStatement, ignoreFailure = false): Promise { + try { + await this.roomlogTable?.query(query); + } catch (e: any) { + if (e?.code === '42P01') { // table not found + await roomlogDB!._query(FS('databases/schemas/roomlogs.sql').readSync(), []); + return this.insertLog(query, ignoreFailure); + } + const [q, vals] = roomlogDB!._resolveSQL(query); + Monitor.crashlog(e, 'a roomlog database query', { + query: q, values: vals, + }); + } } modlog(entry: PartialModlogEntry, overrideID?: string) { void Rooms.Modlog.write(this.roomid, entry, overrideID); } async rename(newID: RoomID): Promise { - const roomlogPath = `logs/chat`; + await Rooms.Modlog.rename(this.roomid, newID); const roomlogStreamExisted = this.roomlogStream !== null; await this.destroy(); - const [roomlogExists, newRoomlogExists] = await Promise.all([ - FS(roomlogPath + `/${this.roomid}`).exists(), - FS(roomlogPath + `/${newID}`).exists(), - ]); - if (roomlogExists && !newRoomlogExists) { - await FS(roomlogPath + `/${this.roomid}`).rename(roomlogPath + `/${newID}`); + if (this.roomlogTable) { + await this.roomlogTable.updateAll({roomid: newID})`WHERE roomid = ${this.roomid}`; + } else { + const roomlogPath = `chat`; + const [roomlogExists, newRoomlogExists] = await Promise.all([ + Monitor.logPath(roomlogPath + `/${this.roomid}`).exists(), + Monitor.logPath(roomlogPath + `/${newID}`).exists(), + ]); + if (roomlogExists && !newRoomlogExists) { + await Monitor.logPath(roomlogPath + `/${this.roomid}`).rename(Monitor.logPath(roomlogPath + `/${newID}`).path); + } + if (roomlogStreamExisted) { + this.roomlogStream = undefined; + this.roomlogFilename = ""; + this.setupRoomlogStream(); + } } - await Rooms.Modlog.rename(this.roomid, newID); - this.roomid = newID; Roomlogs.roomlogs.set(newID, this); - if (roomlogStreamExisted) { - this.roomlogStream = undefined; - this.roomlogFilename = ""; - await this.setupRoomlogStream(true); - } + this.roomid = newID; return true; } - static async rollLogs() { + static rollLogs() { if (Roomlogs.rollLogTimer === true) return; if (Roomlogs.rollLogTimer) { clearTimeout(Roomlogs.rollLogTimer); } Roomlogs.rollLogTimer = true; for (const log of Roomlogs.roomlogs.values()) { - await log.setupRoomlogStream(); + log.setupRoomlogStream(); } const time = Date.now(); - const nextMidnight = new Date(time + 24 * 60 * 60 * 1000); - nextMidnight.setHours(0, 0, 1); - Roomlogs.rollLogTimer = setTimeout(() => void Roomlog.rollLogs(), nextMidnight.getTime() - time); + const nextMidnight = new Date(); + nextMidnight.setHours(24, 0, 0, 0); + Roomlogs.rollLogTimer = setTimeout(() => Roomlog.rollLogs(), nextMidnight.getTime() - time); } truncate() { if (this.noAutoTruncate) return; @@ -311,6 +372,8 @@ export const Roomlogs = { create: createRoomlog, Roomlog, roomlogs, + db: roomlogDB, + table: roomlogTable, rollLogs: Roomlog.rollLogs, diff --git a/server/rooms.ts b/server/rooms.ts index ddf853b89cbb..12b6c91aaac8 100644 --- a/server/rooms.ts +++ b/server/rooms.ts @@ -28,20 +28,21 @@ const LAST_BATTLE_WRITE_THROTTLE = 10; const RETRY_AFTER_LOGIN = null; -import {FS, Utils, Streams, PostgresDatabase} from '../lib'; +import {FS, Utils, Streams} from '../lib'; import {RoomSection, RoomSections} from './chat-commands/room-settings'; import {QueuedHunt} from './chat-plugins/scavengers'; import {ScavengerGameTemplate} from './chat-plugins/scavenger-games'; import {RepeatedPhrase} from './chat-plugins/repeats'; import { - PM as RoomBattlePM, RoomBattle, RoomBattlePlayer, RoomBattleTimer, RoomBattleOptions, PlayerIndex, + PM as RoomBattlePM, RoomBattle, RoomBattlePlayer, RoomBattleTimer, type RoomBattleOptions, } from "./room-battle"; +import {BestOfGame} from './room-battle-bestof'; import {RoomGame, SimpleRoomGame, RoomGamePlayer} from './room-game'; import {MinorActivity, MinorActivityData} from './room-minor-activity'; -import {Roomlogs} from './roomlogs'; -import * as crypto from 'crypto'; +import {Roomlogs, type Roomlog} from './roomlogs'; import {RoomAuth} from './user-groups'; import {PartialModlogEntry, mainModlog} from './modlog'; +import {Replays} from './replays'; /********************************************************* * the Room object. @@ -104,8 +105,8 @@ export interface RoomSettings { jeopardyDisabled?: boolean; mafiaDisabled?: boolean; unoDisabled?: boolean; - blackjackDisabled?: boolean; hangmanDisabled?: boolean; + auctionDisabled?: boolean; gameNumber?: number; highTraffic?: boolean; spotlight?: string; @@ -120,6 +121,7 @@ export interface RoomSettings { minorActivity?: PollData | AnnouncementData; minorActivityQueue?: MinorActivityData[]; repeats?: RepeatedPhrase[]; + topics?: string[]; autoModchat?: { rank: GroupSymbol, time: number, @@ -177,6 +179,12 @@ export abstract class BasicRoom { * In all other rooms, `this.battle` is `null`. */ battle: RoomBattle | null; + /** + * The room's current best-of set. Best-of sets are a type of RoomGame, so in best-of set + * rooms (which can only be `GameRoom`s), `this.bestof === this.game`. + * In all other rooms, `this.bestof` is `null`. + */ + bestOf: BestOfGame | null; /** * The game room's current tournament. If the room is a battle room whose * battle is part of a tournament, `this.tour === this.parent.game`. @@ -233,6 +241,7 @@ export abstract class BasicRoom { this.muteQueue = []; this.battle = null; + this.bestOf = null; this.game = null; this.subGame = null; this.tour = null; @@ -353,7 +362,7 @@ export abstract class BasicRoom { /** * Send a room message to a single user. */ - sendUser(user: User | Connection, message: string) { + sendUser(user: Connection | User, message: string) { user.sendTo(this, message); } /** @@ -408,7 +417,7 @@ export abstract class BasicRoom { * Like addByUser, but without logging */ sendByUser(user: User | null, text: string) { - this.send('|c|' + (user ? user.getIdentity(this) : '&') + '|/log ' + text); + this.send('|c|' + (user ? user.getIdentity(this) : '~') + '|/log ' + text); } /** * Like addByUser, but sends to mods only. @@ -721,14 +730,14 @@ export abstract class BasicRoom { } getStaffIntroMessage(user: User) { if (!user.can('mute', null, this)) return ``; - let message = ``; + const messages = []; if (this.settings.staffMessage) { - message += `\n|raw|
(Staff intro:)
` + + messages.push(`|raw|
(Staff intro:)
` + this.settings.staffMessage.replace(/\n/g, '') + - `
`; + `
`); } if (this.pendingApprovals?.size) { - message += `\n|raw|
`; + let message = `|raw|
`; message += `
(Pending media requests: ${this.pendingApprovals.size})`; for (const [userid, entry] of this.pendingApprovals) { message += `
`; @@ -746,8 +755,13 @@ export abstract class BasicRoom { message += `
`; } message += `
`; + messages.push(message); } - return message ? `|raw|${message}` : ``; + if (!this.settings.isPrivate && !this.settings.isPersonal && + this.settings.modchat && this.settings.modchat !== 'autoconfirmed') { + messages.push(`|raw|
Modchat currently set to ${this.settings.modchat}
`); + } + return messages.join('\n'); } getSubRooms(includeSecret = false) { if (!this.subRooms) return []; @@ -755,7 +769,7 @@ export abstract class BasicRoom { room => includeSecret ? true : !room.settings.isPrivate && !room.settings.isPersonal ); } - validateTitle(newTitle: string, newID?: string) { + validateTitle(newTitle: string, newID?: string, oldID?: string) { if (!newID) newID = toID(newTitle); // `,` is a delimiter used by a lot of /commands // `|` and `[` are delimiters used by the protocol @@ -767,15 +781,15 @@ export abstract class BasicRoom { throw new Chat.ErrorMessage(`Room title "${newTitle}" can't contain -`); } if (newID.length > MAX_CHATROOM_ID_LENGTH) throw new Chat.ErrorMessage("The given room title is too long."); - if (Rooms.search(newTitle)) throw new Chat.ErrorMessage(`The room '${newTitle}' already exists.`); + if (newID !== oldID && Rooms.search(newTitle)) throw new Chat.ErrorMessage(`The room '${newTitle}' already exists.`); } setParent(room: Room | null) { if (this.parent === room) return; if (this.parent) { - (this as any).parent.subRooms.delete(this.roomid); + (this.parent.subRooms as any).delete(this.roomid); if (!this.parent.subRooms!.size) { - (this as any).parent.subRooms = null; + (this.parent.subRooms as any) = null; } } (this as any).parent = room; @@ -818,7 +832,7 @@ export abstract class BasicRoom { } } - if (this.battle) { + if (this.battle || this.bestOf) { if (privacy) { if (this.roomid.endsWith('pw')) return true; @@ -837,6 +851,13 @@ export abstract class BasicRoom { this.rename(this.title, this.roomid.slice(0, lastDashIndex) as RoomID); } } + this.bestOf?.setPrivacyOfGames(privacy); + + if (this.game) { + for (const player of this.game.players) { + player.getUser()?.updateSearch(); + } + } } validateSection(section: string) { const target = toID(section); @@ -885,13 +906,21 @@ export abstract class BasicRoom { */ rename(newTitle: string, newID?: RoomID, noAlias?: boolean) { if (!newID) newID = toID(newTitle) as RoomID; - this.validateTitle(newTitle, newID); + const oldID = this.roomid; + this.validateTitle(newTitle, newID, oldID); if (this.type === 'chat' && this.game) { throw new Chat.ErrorMessage(`Please finish your game (${this.game.title}) before renaming ${this.roomid}.`); } - const oldID = this.roomid; (this as any).roomid = newID; - this.title = newTitle; + this.title = this.settings.title = newTitle; + this.saveSettings(); + if (newID === oldID) { + for (const user of Object.values(this.users)) { + user.sendTo(this, `|title|${newTitle}`); + } + return; + } + Rooms.rooms.delete(oldID); Rooms.rooms.set(newID, this as Room); if (this.battle && oldID) { @@ -933,8 +962,6 @@ export abstract class BasicRoom { this.game?.renameRoom(newID); - this.saveSettings(); - for (const user of Object.values(this.users)) { user.moveConnections(oldID, newID); user.send(`>${oldID}\n|noinit|rename|${newID}|${newTitle}`); @@ -951,7 +978,6 @@ export abstract class BasicRoom { } } - this.settings.title = newTitle; this.saveSettings(); Punishments.renameRoom(oldID, newID); @@ -972,6 +998,7 @@ export abstract class BasicRoom { if (!user) return false; // ??? if (this.users[user.id]) return false; + Chat.runHandlers('onBeforeRoomJoin', this, user, connection); if (user.named) { this.reportJoin('j', user.getIdentityWithStatus(this), user); } @@ -983,7 +1010,6 @@ export abstract class BasicRoom { this.userCount++; this.checkAutoModchat(user); - this.minorActivity?.onConnect?.(user, connection); this.game?.onJoin?.(user, connection); Chat.runHandlers('onRoomJoin', this, user, connection); return true; @@ -1005,7 +1031,7 @@ export abstract class BasicRoom { const staffIntro = this.getStaffIntroMessage(user); if (staffIntro) this.sendUser(user, staffIntro); } else if (!user.named) { - this.reportJoin('l', oldid, user); + this.reportJoin('l', ' ' + oldid, user); } else { this.reportJoin('n', user.getIdentityWithStatus(this) + '|' + oldid, user); } @@ -1038,7 +1064,7 @@ export abstract class BasicRoom { if (user.named) { this.reportJoin('l', user.getIdentity(this), user); } - if (this.game && this.game.onLeave) this.game.onLeave(user); + this.game?.onLeave?.(user); this.runAutoModchat(); return true; @@ -1053,7 +1079,7 @@ export abstract class BasicRoom { if (!time || time < 5) { throw new Error(`Invalid time setting for automodchat (${Utils.visualize(this.settings.autoModchat)})`); } - if (this.modchatTimer) clearTimeout(this.modchatTimer); + if (this.modchatTimer) return; this.modchatTimer = setTimeout(() => { if (!this.settings.autoModchat) return; const {rank} = this.settings.autoModchat; @@ -1070,6 +1096,7 @@ export abstract class BasicRoom { // automodchat will always exist this.settings.autoModchat.active = oldSetting || true; this.saveSettings(); + this.modchatTimer = null; }, time * 60 * 1000); } } @@ -1095,9 +1122,10 @@ export abstract class BasicRoom { destroy(): void { // deallocate ourself - if (this.battle && this.tour) { - // resolve state of the tournament; - if (!this.battle.ended) this.tour.onBattleWin(this as any as GameRoom, ''); + if (this.game) { + this.game.destroy(); + this.game = null; + this.battle = null; this.tour = null; } @@ -1121,11 +1149,6 @@ export abstract class BasicRoom { } } - if (this.game) { - this.game.destroy(); - this.game = null; - this.battle = null; - } this.active = false; // Ensure there aren't any pending messages that could restart the expire timer @@ -1200,7 +1223,7 @@ export class GlobalRoomState { auth: {}, creationTime: Date.now(), isPrivate: 'hidden', - modjoin: Users.SECTIONLEADER_SYMBOL, + modjoin: '%', autojoin: true, }]; } @@ -1248,7 +1271,7 @@ export class GlobalRoomState { // init battle room logging if (Config.logladderip) { - this.ladderIpLog = FS('logs/ladderip/ladderip.txt').createAppendStream(); + this.ladderIpLog = Monitor.logPath('ladderip/ladderip.txt').createAppendStream(); } else { // Prevent there from being two possible hidden classes an instance // of GlobalRoom can have. @@ -1272,140 +1295,118 @@ export class GlobalRoomState { let lastBattle; try { - lastBattle = FS('logs/lastbattle.txt').readSync('utf8'); + lastBattle = Monitor.logPath('lastbattle.txt').readSync('utf8'); } catch {} this.lastBattle = Number(lastBattle) || 0; this.lastWrittenBattle = this.lastBattle; void this.loadBattles(); } + async serializeBattleRoom(room: Room) { + if (!room.battle || room.battle.ended) return null; + room.battle.frozen = true; + const log = await room.battle.getLog(); + const players = room.battle.players.map(p => p.id).filter(Boolean); + if (!players.length || !log?.length) return null; // shouldn't happen??? + // players can be empty right after `/importinputlog` + return { + roomid: room.roomid, + inputLog: log.join('\n'), + players, + title: room.title, + rated: room.battle.rated, + timer: { + ...room.battle.timer.settings, + active: !!room.battle.timer.timer || false, + }, + }; + } + deserializeBattleRoom(battle: NonNullable>>) { + const {inputLog, players, roomid, title, rated, timer} = battle; + const [, formatid] = roomid.split('-'); + const room = Rooms.createBattle({ + format: formatid, + inputLog, + roomid, + title, + rated: Number(rated), + players: [], + delayedTimer: timer.active, + }); + if (!room || !room.battle) return false; // shouldn't happen??? + if (timer) { // json blob of settings + Object.assign(room.battle.timer.settings, timer); + } + for (const [i, playerid] of players.entries()) { + room.auth.set(playerid, Users.PLAYER_SYMBOL); + const player = room.battle.players[i]; + (player.id as string) = playerid; + room.battle.playerTable[playerid] = player; + player.hasTeam = true; + const user = Users.getExact(playerid); + player.name = user?.name || playerid; // in case user hasn't reconnected yet + user?.joinRoom(room); + } + return true; + } + async saveBattles() { let count = 0; - if (!Config.usepostgres) return 0; - const logDatabase = new PostgresDatabase(); - await logDatabase.ensureMigrated({ - table: 'stored_battles', - migrationsFolder: 'databases/migrations/storedbattles', - baseSchemaFile: 'databases/schemas/stored-battles.sql', - }); + const out = Monitor.logPath('battles.jsonl.progress').createAppendStream(); for (const room of Rooms.rooms.values()) { if (!room.battle || room.battle.ended) continue; room.battle.frozen = true; - const log = await room.battle.getLog(); - const players: ID[] = room.battle.options.players || []; - if (!players.length) { - for (const num of ['p1', 'p2', 'p3', 'p4'] as const) { - if (room.battle[num]?.id) { - players.push(room.battle[num].id); - } - } - } - if (!players.length || !log?.length) continue; // shouldn't happen??? - const timerData = { - ...room.battle.timer.settings, - active: !!room.battle.timer.timer || false, - }; - await logDatabase.query( - `INSERT INTO stored_battles (roomid, input_log, players, title, rated, timer) VALUES ($1, $2, $3, $4, $5, $6)` + - ` ON CONFLICT (roomid) DO UPDATE ` + - `SET input_log = EXCLUDED.input_log, players = EXCLUDED.players, title = EXCLUDED.title, rated = EXCLUDED.rated`, - [room.roomid, log.join('\n'), players, room.title, room.battle.rated, timerData] - ); room.battle.timer.stop(); + const b = await this.serializeBattleRoom(room); + if (!b) continue; + await out.writeLine(JSON.stringify(b)); count++; } + await out.writeEnd(); + await Monitor.logPath('battles.jsonl.progress').rename(Monitor.logPath('battles.jsonl').path); return count; } - battlesLoading?: boolean; + battlesLoading = false; async loadBattles() { - if (!Config.usepostgres) return; this.battlesLoading = true; for (const u of Users.users.values()) { u.send( - `|pm|&|${u.getIdentity()}|/uhtml restartmsg,` + + `|pm|~|${u.getIdentity()}|/uhtml restartmsg,` + `
Your battles are currently being restored.
Please be patient as they load.
` ); } - const logDatabase = new PostgresDatabase(); - const query = `DELETE FROM stored_battles WHERE roomid IN (SELECT roomid FROM stored_battles LIMIT 1) RETURNING *`; - for await (const battle of logDatabase.stream(query)) { - const {input_log, players, roomid, title, rated, timer} = battle; - const [, formatid] = roomid.split('-'); - const room = Rooms.createBattle({ - format: formatid, - inputLog: input_log, - roomid, - title, - rated: Number(rated), - players, - delayedStart: true, - delayedTimer: timer.active, - restored: true, - }); - if (!room || !room.battle) continue; // shouldn't happen??? - room.battle.started = true; // so that timer works - room.battle.start(); - if (timer) { // json blob of settings - Object.assign(room.battle.timer.settings, timer); - } - for (const [i, p] of players.entries()) { - room.auth.set(p, Users.PLAYER_SYMBOL); - const player = room.battle.players[i]; - player.id = p; - player.name = p; // temp for if they get timed out before they connect - const u = Users.getExact(p); - if (u) { - this.rejoinBattle(room, u, i); - } - } - } - for (const u of Users.users.values()) { - u.send(`|pm|&|${u.getIdentity()}|/uhtmlchange restartmsg,`); + const startTime = Date.now(); + let count = 0; + let input; + try { + const stream = Monitor.logPath('battles.jsonl').createReadStream(); + await stream.fd; + input = stream.byLine(); + } catch (e) { + return; } - delete this.battlesLoading; - } - - rejoinBattle(room: GameRoom, user: User, idx: number) { - if (!room.battle) return; - // we reuse these player objects explicitly so if - // someone has already started the timer, their settings carry over (should reduce bugs) - // and it's safe to do this first because we know these users were already in the battle - let player = room.battle.players[idx]; - if (!player) { - // this can happen sometimes - player = room.battle.players[idx] = new Rooms.RoomBattlePlayer( - user, room.battle, (idx + 1) as PlayerIndex - ); + for await (const line of input) { + if (!line) continue; + if (this.deserializeBattleRoom(JSON.parse(line))) count++; } - player.id = user.id; - player.name = user.name; - room.battle.playerTable[user.id] = player; - user.joinRoom(room.roomid); - // force update panel - room.battle.onConnect(user); - if (room.battle.options.delayedTimer && !room.battle.timer.timer) { - room.battle.timer.start(); + for (const u of Users.users.values()) { + u.send(`|pm|~|${u.getIdentity()}|/uhtmlchange restartmsg,`); } - user.send(`|pm|&|${user.getIdentity()}|/uhtmlchange restartmsg,`); + await Monitor.logPath('battles.jsonl').unlinkIfExists(); + Monitor.notice(`Loaded ${count} battles in ${Date.now() - startTime}ms`); + this.battlesLoading = false; } - joinOldBattles(user: User) { + rejoinGames(user: User) { for (const room of Rooms.rooms.values()) { - const battle = room.battle; - if (!battle) continue; - const idx = battle.options.players?.indexOf(user.id); - if (battle.ended) { - // TODO: Do we want to rejoin the battle room here? - // We might need to cache the join so it only happens once - - // just running joinRoom would mean they join the room every refresh until the battle expires - - // user.joinRoom(room); - continue; - } - if (typeof idx === 'number' && idx > -1) { - this.rejoinBattle(room, user, idx); - } + const player = room.game && !room.game.ended && room.game.playerTable[user.id]; + if (!player) continue; + // prevents players from being re-added to games like Scavengers after they've finished + if (player.completed) continue; + user.games.add(room.roomid); + player.name = user.name; + user.joinRoom(room.roomid); } } @@ -1432,7 +1433,7 @@ export class GlobalRoomState { if (this.lastBattle < this.lastWrittenBattle) return; this.lastWrittenBattle = this.lastBattle + LAST_BATTLE_WRITE_THROTTLE; } - FS('logs/lastbattle.txt').writeUpdate( + Monitor.logPath('lastbattle.txt').writeUpdate( () => `${this.lastWrittenBattle}` ); } @@ -1478,6 +1479,9 @@ export class GlobalRoomState { const ruleTable = Dex.formats.getRuleTable(format); const level = ruleTable.adjustLevel || ruleTable.adjustLevelDown || ruleTable.maxLevel; if (level === 50) displayCode |= 16; + // 32 was previously used for Multi Battles + if (format.bestOfDefault) displayCode |= 64; + if (format.teraPreviewDefault) displayCode |= 128; this.formatList += ',' + displayCode.toString(16); } return this.formatList; @@ -1495,9 +1499,8 @@ export class GlobalRoomState { if (!Config.groups[rank] || !rank) continue; const tarGroup = Config.groups[rank]; - let groupType = tarGroup.id === 'bot' || (!tarGroup.mute && !tarGroup.root) ? + const groupType = tarGroup.id === 'bot' || (!tarGroup.mute && !tarGroup.root) ? 'normal' : (tarGroup.root || tarGroup.declare) ? 'leadership' : 'staff'; - if (tarGroup.id === 'sectionleader') groupType = 'staff'; rankList.push({ symbol: rank, @@ -1518,7 +1521,10 @@ export class GlobalRoomState { return Config.rankList; } - getBattles(/** formatfilter, elofilter, usernamefilter */ filter: string) { + /** + * @param filter formatfilter, elofilter, usernamefilter + */ + getBattles(filter: string) { const rooms: GameRoom[] = []; const [formatFilter, eloFilterString, usernameFilter] = filter.split(','); const eloFilter = +eloFilterString; @@ -1631,12 +1637,19 @@ export class GlobalRoomState { } } if (Config.reportbattles) { - const reportRoom = Rooms.get(Config.reportbattles === true ? 'lobby' : Config.reportbattles); - if (reportRoom) { - const reportPlayers = players.map(p => p.getIdentity()).join('|'); - reportRoom - .add(`|b|${room.roomid}|${reportPlayers}`) - .update(); + if (typeof Config.reportbattles === 'string') { + Config.reportbattles = [Config.reportbattles]; + } else if (Config.reportbattles === true) { + Config.reportbattles = ['lobby']; + } + for (const roomid of Config.reportbattles) { + const reportRoom = Rooms.get(roomid); + if (reportRoom) { + const reportPlayers = players.map(p => p.getIdentity()).join('|'); + reportRoom + .add(`|b|${room.roomid}|${reportPlayers}`) + .update(); + } } } if (Config.logladderip && options.rated) { @@ -1723,12 +1736,6 @@ export class GlobalRoomState { this.maxUsers = Users.users.size; this.maxUsersDate = Date.now(); } - if (this.battlesLoading) { - connection.send( - `|pm|&|${user.getIdentity()}|/uhtml restartmsg,` + - `
Your battles are currently being restored.
Please be patient as they load.
` - ); - } } startLockdown(err: Error | null = null, slow = false) { if (this.lockdown && err) return; @@ -1759,7 +1766,7 @@ export class GlobalRoomState { } } for (const user of Users.users.values()) { - user.send(`|pm|&|${user.tempGroup}${user.name}|/raw
The server is restarting soon.
Please finish your battles quickly. No new battles can be started until the server resets in a few minutes.
`); + user.send(`|pm|~|${user.tempGroup}${user.name}|/raw
The server is restarting soon.
Please finish your battles quickly. No new battles can be started until the server resets in a few minutes.
`); } this.lockdown = true; @@ -1880,9 +1887,9 @@ export class GlobalRoomState { export class ChatRoom extends BasicRoom { // This is not actually used, this is just a fake class to keep // TypeScript happy - battle = null; - active: false = false as const; - type: 'chat' = 'chat' as const; + override battle = null; + override active = false as const; + override type = 'chat' as const; } export class GameRoom extends BasicRoom { @@ -1898,6 +1905,7 @@ export class GameRoom extends BasicRoom { */ rated: number; declare battle: RoomBattle | null; + declare bestOf: BestOfGame | null; declare game: RoomGame; modchatUser: string; constructor(roomid: RoomID, title: string, options: Partial) { @@ -1916,14 +1924,15 @@ export class GameRoom extends BasicRoom { this.tour = options.tour || null; this.setParent((options as any).parent || (this.tour && this.tour.room) || null); - this.p1 = options.p1?.user || null; - this.p2 = options.p2?.user || null; - this.p3 = options.p3?.user || null; - this.p4 = options.p4?.user || null; + this.p1 = options.players?.[0]?.user || null; + this.p2 = options.players?.[1]?.user || null; + this.p3 = options.players?.[2]?.user || null; + this.p4 = options.players?.[3]?.user || null; this.rated = options.rated === true ? 1 : options.rated || 0; this.battle = null; + this.bestOf = null; this.game = null!; this.modchatUser = ''; @@ -1940,8 +1949,7 @@ export class GameRoom extends BasicRoom { } getLogForUser(user: User) { if (!(user.id in this.game.playerTable)) return this.getLog(); - // @ts-ignore - return this.getLog(this.game.playerTable[user.id].num); + return this.getLog(this.game.playerTable[user.id].num as 0); } update(excludeUser: User | null = null) { if (!this.log.broadcastBuffer.length) return; @@ -1963,15 +1971,6 @@ export class GameRoom extends BasicRoom { this.expireTimer = setTimeout(() => this.expire(), TIMEOUT_INACTIVE_DEALLOCATE); } } - sendPlayer(num: 0 | 1, message: string) { - const player = this.getPlayer(num); - if (!player) return false; - player.sendRoom(message); - } - getPlayer(num: 0 | 1) { - // @ts-ignore - return this.game['p' + (num + 1)]; - } requestModchat(user: User | null) { if (!user) { this.modchatUser = ''; @@ -1985,33 +1984,17 @@ export class GameRoom extends BasicRoom { } onConnect(user: User, connection: Connection) { this.sendUser(connection, '|init|battle\n|title|' + this.title + '\n' + this.getLogForUser(user)); - if (this.game && this.game.onConnect) this.game.onConnect(user, connection); + this.game?.onConnect?.(user, connection); } onJoin(user: User, connection: Connection) { if (!user) return false; // ??? if (this.users[user.id]) return false; + Chat.runHandlers('onBeforeRoomJoin', this, user, connection); if (user.named) { this.reportJoin('j', user.getIdentityWithStatus(this), user); } - // This is only here because of an issue with private logs not getting resent - // when a user reloads on a battle and autojoins. This should be removed when that gets fixed. - void (async () => { - if (this.battle) { - const player = this.battle.playerTable[user.id]; - if (player && this.battle.players.every(curPlayer => curPlayer.wantsOpenTeamSheets)) { - let buf = '|uhtml|ots|'; - for (const curPlayer of this.battle.players) { - const team = await this.battle.getTeam(curPlayer.id); - if (!team) continue; - buf += Utils.html`
Open Team Sheet for ${curPlayer.name}${Teams.export(team, {hideStats: true})}
`; - } - player.sendRoom(buf); - } - } - })(); - this.users[user.id] = user; this.userCount++; this.checkAutoModchat(user); @@ -2032,7 +2015,7 @@ export class GameRoom extends BasicRoom { * That's why this function requires a connection. For details, see the top * comment inside this function. */ - async uploadReplay(user: User, connection: Connection, options?: 'forpunishment' | 'silent') { + async uploadReplay(user?: User, connection?: Connection, options?: 'forpunishment' | 'silent' | 'auto') { // The reason we don't upload directly to the loginserver, unlike every // other interaction with the loginserver, is because it takes so much // bandwidth that it can get identified as a DoS attack by PHP, Apache, or @@ -2060,45 +2043,84 @@ export class GameRoom extends BasicRoom { let hideDetails = !format.id.includes('customgame'); if (format.team && battle.ended) hideDetails = false; - const data = this.getLog(hideDetails ? 0 : -1); - const datahash = crypto.createHash('md5').update(data.replace(/[^(\x20-\x7F)]+/g, '')).digest('hex'); - let rating = 0; + const log = this.getLog(hideDetails ? 0 : -1); + let rating: number | undefined; if (battle.ended && this.rated) rating = this.rated; - const {id, password} = this.getReplayData(); - - // STEP 1: Directly tell the login server that a replay is coming - // (also include all the data, including a hash of the replay itself, - // so it can't be spoofed.) - - battle.replaySaved = true; - const [success] = await LoginServer.request('prepreplay', { - id: id, - loghash: datahash, - p1: battle.p1.name, - p2: battle.p2.name, - format: format.id, - rating, - hidden: options === 'forpunishment' || (this as any).unlistReplay ? - '2' : this.settings.isPrivate || this.hideReplay ? '1' : '', - inputlog: battle.inputLog?.join('\n') || null, - }); - if (success?.errorip) { - connection.popup(`This server's request IP ${success.errorip} is not a registered server.`); + let {id, password} = this.getReplayData(); + const silent = options === 'forpunishment' || options === 'silent' || options === 'auto'; + if (silent) connection = undefined; + const isPrivate = this.settings.isPrivate || this.hideReplay; + const hidden = options === 'auto' ? 10 : + options === 'forpunishment' || (this as any).unlistReplay ? 2 : + isPrivate ? 1 : + 0; + if (isPrivate && hidden === 10) { + password = Replays.generatePassword(); + } + if (battle.replaySaved !== true && hidden === 10) { + battle.replaySaved = 'auto'; + } else { + battle.replaySaved = true; + } + + // If we have a direct connetion to a Replays database, just upload the replay + // directly. + + if (Replays.db) { + const idWithServer = Config.serverid === 'showdown' ? id : `${Config.serverid}-${id}`; + try { + const fullid = await Replays.add({ + id: idWithServer, + log, + players: battle.players.map(p => p.name), + format: format.name, + rating: rating || null, + private: hidden, + password, + inputlog: battle.inputLog?.join('\n') || null, + uploadtime: Math.trunc(Date.now() / 1000), + }); + const url = `https://${Config.routes.replays}/${fullid}`; + connection?.popup( + `|html|

Your replay has been uploaded! It's available at:

` + + `${url} ` + + `Copy` + ); + } catch (e) { + connection?.popup(`Your replay could not be saved: ${e}`); + throw e; + } return; } - // STEP 2: Tell the user to upload the replay to the login server + // Otherwise, (we're probably a side server), upload the replay through LoginServer + + const [result] = await LoginServer.request('addreplay', { + id, + log, + players: battle.players.map(p => p.name).join(','), + format: format.name, + rating, // will probably do nothing + hidden: hidden === 0 ? '' : hidden, + inputlog: battle.inputLog?.join('\n') || undefined, + password, + }); + if (result?.errorip) { + connection?.popup(`This server's request IP ${result.errorip} is not a registered server.`); + return; + } - connection.send('|queryresponse|savereplay|' + JSON.stringify({ - log: data, - id: id, - password: password, - silent: options === 'forpunishment' || options === 'silent', - })); + const fullid = result?.replayid; + const url = `https://${Config.routes.replays}/${fullid}`; + connection?.popup( + `|html|

Your replay has been uploaded! It's available at:

` + + `${url} ` + + `Copy` + ); } getReplayData() { - if (!this.roomid.endsWith('pw')) return {id: this.roomid.slice(7)}; + if (!this.roomid.endsWith('pw')) return {id: this.roomid.slice(7), password: null}; const end = this.roomid.length - 2; const lastHyphen = this.roomid.lastIndexOf('-', end); return {id: this.roomid.slice(7, lastHyphen), password: this.roomid.slice(lastHyphen + 1, end)}; @@ -2106,7 +2128,14 @@ export class GameRoom extends BasicRoom { } function getRoom(roomid?: string | BasicRoom) { - if (typeof roomid === 'string') return Rooms.rooms.get(roomid as RoomID); + if (typeof roomid === 'string') { + // Accounts for private battles that were made public + if ((roomid.startsWith('battle-') || roomid.startsWith('game-bestof')) && roomid.endsWith('pw')) { + const room = Rooms.rooms.get(roomid.slice(0, roomid.lastIndexOf('-')) as RoomID); + if (room) return room; + } + return Rooms.rooms.get(roomid as RoomID); + } return roomid as Room; } @@ -2138,14 +2167,15 @@ export const Rooms = { Rooms.rooms.set(roomid, room); return room; }, + /** + * Can return null during lockdown, so make sure to handle that case. + * No need for UI; this function sends popups to users. + */ createBattle(options: RoomBattleOptions & Partial) { - const players: User[] = [options.p1, options.p2, options.p3, options.p4] - .filter(Boolean).map(player => player!.user); - const gameType = Dex.formats.get(options.format).gameType; - if (gameType !== 'multi' && gameType !== 'freeforall') { - if (players.length > 2) { - throw new Error(`Four players were provided, but the format is a two-player format.`); - } + const players = options.players.map(player => player.user); + const format = Dex.formats.get(options.format); + if (players.length > format.playerCount) { + throw new Error(`${players.length} players were provided, but the format is a ${format.playerCount}-player format.`); } if (new Set(players).size < players.length) { throw new Error(`Players can't battle themselves`); @@ -2155,11 +2185,21 @@ export const Rooms = { Ladders.cancelSearches(user); } - if (Rooms.global.lockdown === true) { + const isBestOf = Dex.formats.getRuleTable(format).valueRules.get('bestof'); + + if (Rooms.global.lockdown === 'pre' && isBestOf && !options.isBestOfSubBattle) { + for (const user of players) { + user.popup(`The server will be restarting soon. Best-of-${isBestOf} battles cannot be started at this time.`); + } + return null; + } + + // gotta allow new bo3 child battles to start + if (Rooms.global.lockdown === true && !options.isBestOfSubBattle) { for (const user of players) { user.popup("The server is restarting. Battles will be available again in a few minutes."); } - return; + return null; } const p1Special = players.length ? players[0].battleSettings.special : undefined; @@ -2175,12 +2215,11 @@ export const Rooms = { for (const user of players) { user.popup(`Your special battle settings don't match: ${mismatch}`); } - return; + return null; } else if (p1Special) { options.ratedMessage = p1Special; } - const roomid = options.roomid || Rooms.global.prepBattleRoom(options.format); // options.rated is a number representing the lowest player rating, for searching purposes // options.rated < 0 or falsy means "unrated", and will be converted to 0 here // options.rated === true is converted to 1 (used in tests sometimes) @@ -2190,21 +2229,35 @@ export const Rooms = { const p1name = p1 ? p1.name : "Player 1"; const p2name = p2 ? p2.name : "Player 2"; let roomTitle; - if (gameType === 'multi') { + let roomid = options.roomid; + if (format.gameType === 'multi') { roomTitle = `Team ${p1name} vs. Team ${p2name}`; - } else if (gameType === 'freeforall') { + } else if (format.gameType === 'freeforall') { // p1 vs. p2 vs. p3 vs. p4 is too long of a title roomTitle = `${p1name} and friends`; + } else if (isBestOf && !options.isBestOfSubBattle) { + roomTitle = `${p1name} vs. ${p2name}`; + roomid ||= `game-bestof${isBestOf}-${format.id}-${++Rooms.global.lastBattle}` as RoomID; } else if (options.title) { roomTitle = options.title; } else { roomTitle = `${p1name} vs. ${p2name}`; } + roomid ||= Rooms.global.prepBattleRoom(options.format); options.isPersonal = true; const room = Rooms.createGameRoom(roomid, roomTitle, options); - const battle = new Rooms.RoomBattle(room, options); - room.game = battle; - battle.checkPrivacySettings(options); + let game: RoomBattle | BestOfGame; + if (options.isBestOfSubBattle || !isBestOf) { + game = new RoomBattle(room, options); + } else { + game = new BestOfGame(room, options); + } + room.game = game; + if (options.isBestOfSubBattle && room.parent) { + room.setPrivate(room.parent.settings.isPrivate || false); + } else { + game.checkPrivacySettings(options); + } for (const p of players) { if (p) { @@ -2235,7 +2288,10 @@ export const Rooms = { Roomlogs, RoomBattle, + BestOfGame, RoomBattlePlayer, RoomBattleTimer, PM: RoomBattlePM, + + Replays, }; diff --git a/server/team-validator-async.ts b/server/team-validator-async.ts index b66aa79f0e4b..998e111f701b 100644 --- a/server/team-validator-async.ts +++ b/server/team-validator-async.ts @@ -16,9 +16,12 @@ export class TeamValidatorAsync { this.format = Dex.formats.get(format); } - validateTeam(team: string, options?: {removeNicknames?: boolean}) { + validateTeam(team: string, options?: {removeNicknames?: boolean, user?: ID}) { let formatid = this.format.id; if (this.format.customRules) formatid += '@@@' + this.format.customRules.join(','); + if (team.length > (25 * 1024 - 6)) { // don't even let it go to the child process + return Promise.resolve('0Your team is over 25KB. Please use a smaller team.'); + } return PM.query({formatid, options, team}); } @@ -66,11 +69,11 @@ export const PM = new QueryProcessManager<{ // console.log('FROM: ' + message.substr(pipeIndex2 + 1)); // console.log('TO: ' + packedTeam); return '1' + packedTeam; -}); +}, 2 * 60 * 1000); if (!PM.isParentProcess) { // This is a child process! - global.Config = require('./config-loader'); + global.Config = require('./config-loader').Config; global.Monitor = { crashlog(error: Error, source = 'A team validator process', details: AnyObject | null = null) { diff --git a/server/tournaments/generator-elimination.ts b/server/tournaments/generator-elimination.ts index 3fa32389356b..fa7983ba310e 100644 --- a/server/tournaments/generator-elimination.ts +++ b/server/tournaments/generator-elimination.ts @@ -341,7 +341,7 @@ export class Elimination { } } - user.unlinkUser(); + user.game.setPlayerUser(user, null); } getAvailableMatches() { @@ -388,7 +388,7 @@ export class Elimination { if (loser.losses === this.maxSubtrees) { loser.isEliminated = true; loser.sendRoom(`|tournament|update|{"isJoined":false}`); - loser.unlinkUser(); + loser.game.setPlayerUser(loser, null); } if (targetNode.parent) { diff --git a/server/tournaments/generator-round-robin.ts b/server/tournaments/generator-round-robin.ts index 76da9c96c446..a908eb7796fc 100644 --- a/server/tournaments/generator-round-robin.ts +++ b/server/tournaments/generator-round-robin.ts @@ -129,7 +129,7 @@ export class RoundRobin { this.totalPendingMatches--; } - user.unlinkUser(); + user.game.updatePlayer(user, null); } getAvailableMatches() { @@ -164,6 +164,16 @@ export class RoundRobin { match.result = result; match.score = score.slice(0); this.totalPendingMatches--; + if (this.matchesPerPlayer) { + if (p1.games === this.matchesPerPlayer) { + p1.sendRoom(`|tournament|update|{"isJoined":false}`); + p1.game.updatePlayer(p1, null); + } + if (p2.games === this.matchesPerPlayer) { + p2.sendRoom(`|tournament|update|{"isJoined":false}`); + p2.game.updatePlayer(p2, null); + } + } } isTournamentEnded() { diff --git a/server/tournaments/index.ts b/server/tournaments/index.ts index d26e58d8031e..554f86e1df2f 100644 --- a/server/tournaments/index.ts +++ b/server/tournaments/index.ts @@ -2,19 +2,19 @@ import {Elimination} from './generator-elimination'; import {RoundRobin} from './generator-round-robin'; import {Utils} from '../../lib'; -import {SampleTeams, teamData} from '../chat-plugins/sample-teams'; import {PRNG} from '../../sim/prng'; +import type {BestOfGame} from '../room-battle-bestof'; export interface TournamentRoomSettings { allowModjoin?: boolean; allowScouting?: boolean; announcements?: boolean; + autoconfirmedOnly?: boolean; autodq?: number; autostart?: number | boolean; forcePublic?: boolean; forceTimer?: boolean; playerCap?: number; - showSampleTeams?: boolean; recentToursLength?: number; recentTours?: {name: string, baseFormat: string, time: number}[]; blockRecents?: boolean; @@ -83,6 +83,7 @@ export class TournamentPlayer extends Rooms.RoomGamePlayer { } export class Tournament extends Rooms.RoomGame { + override readonly gameid = 'tournament' as ID; readonly isTournament: true; readonly completedMatches: Set; /** Format ID not including custom rules */ @@ -97,6 +98,7 @@ export class Tournament extends Rooms.RoomGame { isRated: boolean; allowScouting: boolean; allowModjoin: boolean; + autoconfirmedOnly: boolean; forceTimer: boolean; autostartcap: boolean; forcePublic: boolean; @@ -114,13 +116,11 @@ export class Tournament extends Rooms.RoomGame { autoStartTimeout: number; autoStartTimer: NodeJS.Timeout | null; - isEnded: boolean; constructor( room: ChatRoom, format: Format, generator: Generator, playerCap: string | undefined, isRated: boolean, name: string | undefined ) { super(room); - this.gameid = 'tournament' as ID; const formatId = toID(format); this.title = format.name + ' tournament'; @@ -138,6 +138,7 @@ export class Tournament extends Rooms.RoomGame { this.isRated = isRated; this.allowScouting = true; this.allowModjoin = false; + this.autoconfirmedOnly = false; this.forceTimer = false; this.autostartcap = false; this.forcePublic = false; @@ -160,8 +161,6 @@ export class Tournament extends Rooms.RoomGame { this.autoStartTimeout = Infinity; this.autoStartTimer = null; - this.isEnded = false; - room.add(`|tournament|create|${this.baseFormat}|${generator.name}|${this.playerCap}${this.name === this.baseFormat ? `` : `|${this.name}`}`); const update: { format: string, teambuilderFormat?: string, generator: string, @@ -187,10 +186,7 @@ export class Tournament extends Rooms.RoomGame { const room = Rooms.get(roomid) as GameRoom; if (room) room.tour = null; } - for (const player of this.players) { - player.unlinkUser(); - } - this.isEnded = true; + this.setEnded(); this.room.game = null; } getRemainingPlayers() { @@ -288,7 +284,7 @@ export class Tournament extends Rooms.RoomGame { updateFor(targetUser: User, connection?: Connection | User) { if (!connection) connection = targetUser; - if (this.isEnded) return; + if (this.ended) return; if ((!this.bracketUpdateTimer && this.isBracketInvalidated) || (this.isTournamentStarted && this.isAvailableMatchesInvalidated)) { @@ -300,7 +296,23 @@ export class Tournament extends Rooms.RoomGame { ); return; } - const isJoined = targetUser.id in this.playerTable; + const possiblePlayer = this.playerTable[targetUser.id]; + let isJoined = false; + if (possiblePlayer) { + if (this.generator.name.includes("Elimination")) { + isJoined = !possiblePlayer.isEliminated && !possiblePlayer.isDisqualified; + } else if (this.generator.name.includes("Round Robin")) { + if (possiblePlayer.isDisqualified) { + isJoined = !possiblePlayer.isDisqualified; + } else if ((this.generator as RoundRobin)?.matchesPerPlayer) { + isJoined = possiblePlayer.games !== (this.generator as RoundRobin).matchesPerPlayer; + } else if (!this.isTournamentStarted) { + isJoined = true; + } + } else { + isJoined = true; + } + } const update: { format: string, teambuilderFormat?: string, generator: string, isStarted: boolean, isJoined: boolean, bracketData: AnyObject, @@ -333,7 +345,7 @@ export class Tournament extends Rooms.RoomGame { } update() { - if (this.isEnded) return; + if (this.ended) return; if (this.isBracketInvalidated) { if (Date.now() < this.lastBracketUpdate + BRACKET_MINIMUM_UPDATE_INTERVAL) { if (this.bracketUpdateTimer) clearTimeout(this.bracketUpdateTimer); @@ -398,11 +410,17 @@ export class Tournament extends Rooms.RoomGame { return; } - if (Tournament.checkBanned(this.room, user) || Punishments.isBattleBanned(user)) { + if (Tournament.checkBanned(this.room, user) || Punishments.isBattleBanned(user) || user.namelocked) { output.sendReply('|tournament|error|Banned'); return; } + if ((this.room.settings.tournaments?.autoconfirmedOnly || this.autoconfirmedOnly) && + !user.autoconfirmed && !user.trusted) { + user.popup("Signups for tournaments are only available for autoconfirmed users in this room."); + return; + } + const gameCount = user.games.size; if (gameCount > 4) { output.errorReply("Due to high load, you are limited to 4 games at the same time."); @@ -448,20 +466,13 @@ export class Tournament extends Rooms.RoomGame { } removeUser(userid: ID, output?: Chat.CommandContext) { - if (!(userid in this.playerTable)) { + const player = this.playerTable[userid]; + if (!player) { if (output) output.sendReply('|tournament|error|UserNotAdded'); return; } - for (const player of this.players) { - if (player.id === userid) { - this.players.splice(this.players.indexOf(player), 1); - break; - } - } - this.playerTable[userid].destroy(); - delete this.playerTable[userid]; - this.playerCount--; + this.removePlayer(player); const user = Users.get(userid); this.room.add(`|tournament|leave|${user ? user.name : userid}`); if (user) user.sendTo(this.room, '|tournament|update|{"isJoined":false}'); @@ -485,10 +496,16 @@ export class Tournament extends Rooms.RoomGame { output.errorReply(`${replacementUser.name} is already in the tournament.`); return; } - if (Tournament.checkBanned(this.room, replacementUser) || Punishments.isBattleBanned(replacementUser)) { + if (Tournament.checkBanned(this.room, replacementUser) || Punishments.isBattleBanned(replacementUser) || + replacementUser.namelocked) { output.errorReply(`${replacementUser.name} is banned from joining tournaments.`); return; } + if ((this.room.settings.tournaments?.autoconfirmedOnly || this.autoconfirmedOnly) && !user.autoconfirmed) { + user.popup("Signups for tournaments are only available for autoconfirmed users in this room."); + return; + } + if (!Config.noipchecks) { for (const otherPlayer of this.players) { if (!otherPlayer) continue; @@ -505,22 +522,22 @@ export class Tournament extends Rooms.RoomGame { output.errorReply(`${replacementUser.name} is not in this room (${this.room.title}).`); return; } - if (this.playerTable[user.id].pendingChallenge) { + const player = this.playerTable[user.id]; + if (player.pendingChallenge) { this.cancelChallenge(user, output); } // Replace the player - this.renamePlayer(replacementUser, user.id); - const newPlayer = this.playerTable[replacementUser.id]; + this.setPlayerUser(player, replacementUser); // Reset and invalidate any in progress battles let matchPlayer = null; - if (newPlayer.inProgressMatch) { - matchPlayer = newPlayer; + if (player.inProgressMatch) { + matchPlayer = player; } else { - for (const player of this.players) { - if (player.inProgressMatch && player.inProgressMatch.to === newPlayer) { - matchPlayer = player; + for (const p of this.players) { + if (p.inProgressMatch && p.inProgressMatch.to === player) { + matchPlayer = p; break; } } @@ -544,8 +561,8 @@ export class Tournament extends Rooms.RoomGame { this.update(); this.updateFor(user); this.updateFor(replacementUser); - const challengePlayer = newPlayer.pendingChallenge && - (newPlayer.pendingChallenge.from || newPlayer.pendingChallenge.to); + const challengePlayer = player.pendingChallenge && + (player.pendingChallenge.from || player.pendingChallenge.to); if (challengePlayer) { const challengeUser = Users.getExact(challengePlayer.id); if (challengeUser) this.updateFor(challengeUser); @@ -755,7 +772,7 @@ export class Tournament extends Rooms.RoomGame { player.inProgressMatch = null; matchFrom.room.setParent(null); this.completedMatches.add(matchFrom.room.roomid); - if (matchFrom.room.battle) matchFrom.room.battle.forfeit(player.name); + matchFrom.room.game?.forfeit?.(player.name); } let matchTo = null; @@ -768,7 +785,7 @@ export class Tournament extends Rooms.RoomGame { const matchRoom = matchTo.inProgressMatch!.room; matchRoom.setParent(null); this.completedMatches.add(matchRoom.roomid); - if (matchRoom.battle) matchRoom.battle.forfeit(player.id); + if (matchRoom.game) matchRoom.game.forfeit?.(player.id); matchTo.inProgressMatch = null; } @@ -879,7 +896,7 @@ export class Tournament extends Rooms.RoomGame { player.autoDisqualifyWarned = false; } } - if (!this.isEnded) this.autoDisqualifyTimer = setTimeout(() => this.runAutoDisqualify(), this.autoDisqualifyTimeout); + if (!this.ended) this.autoDisqualifyTimer = setTimeout(() => this.runAutoDisqualify(), this.autoDisqualifyTimeout); if (output) output.sendReply("All available matches were checked for automatic disqualification."); } @@ -893,6 +910,10 @@ export class Tournament extends Rooms.RoomGame { this.allowModjoin = allowed; this.room.add(`Modjoining is now ${allowed ? 'allowed' : 'banned'} (Players can${allowed ? '' : 'not'} modjoin their tournament battles).`); } + setAutoconfirmedOnly(acOnly: boolean) { + this.autoconfirmedOnly = acOnly; + this.room.add(`This tournament is now ${acOnly ? 'dis' : ''}allowing non-autoconfirmed users' joining.`); + } setForceTimer(force: boolean) { this.forceTimer = force; this.room.add(`Forcetimer is now ${force ? 'on' : 'off'} for the tournament.`); @@ -905,23 +926,6 @@ export class Tournament extends Rooms.RoomGame { this.autostartcap = true; this.room.add(`The tournament will start once ${this.playerCap} players have joined.`); } - showSampleTeams() { - if (teamData.teams[this.baseFormat]) { - let buf = ``; - for (const categoryName in teamData.teams[this.baseFormat]) { - if (!Object.keys(teamData.teams[this.baseFormat][categoryName]).length) continue; - if (buf) buf += `


`; - buf += `${categoryName.toUpperCase()}`; - for (const [i, teamName] of Object.keys(teamData.teams[this.baseFormat][categoryName]).entries()) { - if (i) buf += `
`; - buf += SampleTeams.formatTeam(teamName, teamData.teams[this.baseFormat][categoryName][teamName], true); - } - buf += ``; - } - if (!buf) return; - this.room.add(`|html|

Sample Teams for ${SampleTeams.getFormatName(this.baseFormat)}


${buf}
`).update(); - } - } async challenge(user: User, targetUserid: ID, output: Chat.CommandContext) { if (!this.isTournamentStarted) { @@ -1036,36 +1040,37 @@ export class Tournament extends Rooms.RoomGame { const room = Rooms.createBattle({ format: this.fullFormat, isPrivate: this.room.settings.isPrivate, - p1: { + players: [{ user: from, team: challenge.team, hidden: challenge.hidden, inviteOnly: challenge.inviteOnly, - }, - p2: { + }, { user, team: ready.settings.team, hidden: ready.settings.hidden, inviteOnly: ready.settings.inviteOnly, - }, + }], rated: !Ladders.disabled && this.isRated, challengeType: ready.challengeType, tour: this, parentid: this.roomid, }); - if (!room?.battle) throw new Error(`Failed to create battle in ${room}`); challenge.from.pendingChallenge = null; player.pendingChallenge = null; from.sendTo(this.room, '|tournament|update|{"challenging":null}'); user.sendTo(this.room, '|tournament|update|{"challenged":null}'); + // server lockdown + if (!room) return; + challenge.from.inProgressMatch = {to: player, room}; this.room.add(`|tournament|battlestart|${from.name}|${user.name}|${room.roomid}`).update(); this.isBracketInvalidated = true; if (this.autoDisqualifyTimeout !== Infinity) this.runAutoDisqualify(); - if (this.forceTimer) room.battle.timer.start(); + if (this.forceTimer) room.game.startTimer(); this.update(); } @@ -1083,21 +1088,14 @@ export class Tournament extends Rooms.RoomGame { } onRename(user: User, oldUserid: ID) { if (oldUserid in this.playerTable) { - if (user.id === oldUserid) { - this.playerTable[user.id].name = user.name; - } else { - this.playerTable[user.id] = this.playerTable[oldUserid]; - this.playerTable[user.id].id = user.id; - this.playerTable[user.id].name = user.name; - delete this.playerTable[oldUserid]; - } + this.renamePlayer(user, oldUserid); } this.updateFor(user); } onBattleJoin(room: GameRoom, user: User) { if (!room.p1 || !room.p2) return; - if (this.allowScouting || this.isEnded || user.latestIp === room.p1.latestIp || user.latestIp === room.p2.latestIp) { + if (this.allowScouting || this.ended || user.latestIp === room.p1.latestIp || user.latestIp === room.p2.latestIp) { return; } if (user.can('makeroom')) return; @@ -1112,12 +1110,12 @@ export class Tournament extends Rooms.RoomGame { if (this.completedMatches.has(room.roomid)) return; this.completedMatches.add(room.roomid); room.setParent(null); - if (!room.battle) throw new Error("onBattleWin called without a battle"); + if (!room.game) throw new Error("onBattleWin called without a battle"); if (!room.p1 || !room.p2) throw new Error("onBattleWin called with missing players"); const p1 = this.playerTable[room.p1.id]; const p2 = this.playerTable[room.p2.id]; const winner = this.playerTable[winnerid]; - const score = room.battle.score || [0, 0]; + const score = (room.game as RoomBattle | BestOfGame).score || [0, 0]; let result: 'win' | 'loss' | 'draw' = 'draw'; if (p1 === winner) { @@ -1262,6 +1260,16 @@ function createTournament( output.errorReply("You cannot have a player cap that is less than 2."); return; } + if (name?.trim().length) { + if (output.checkChat(name) !== name) { + throw new Chat.ErrorMessage(`You cannot use filtered words in tour names.`); + } + + if (name.length > MAX_CUSTOM_NAME_LENGTH) { + throw new Chat.ErrorMessage(`The tournament's name cannot exceed ${MAX_CUSTOM_NAME_LENGTH} characters.`); + } + if (name.includes('|')) throw new Chat.ErrorMessage("The tournament's name cannot include the | symbol."); + } const tour = room.game = new Tournament( room, format, createTournamentGenerator(generator, generatorMod, output)!, playerCap, isRated, name ); @@ -1276,7 +1284,6 @@ function createTournament( if (settings.forceTimer) tour.setForceTimer(true); if (settings.allowModjoin === false) tour.setModjoin(false); if (settings.allowScouting === false) tour.setScouting(false); - if (settings.showSampleTeams) tour.showSampleTeams(); } return tour; } @@ -1434,8 +1441,7 @@ const commands: Chat.ChatCommands = { } else { Punishments.roomPunishName(room, targetUserid, punishment); } - const tour = room.getGame(Tournament); - if (tour) tour.removeBannedUser(targetUserid); + room.getGame(Tournament)?.removeBannedUser(targetUserid); this.modlog('TOURBAN', targetUser, reason); this.privateModAction( @@ -1641,7 +1647,10 @@ const commands: Chat.ChatCommands = { this.sendReply("Usage: /tour rules "); this.sendReply("Rules can be: -bannedthing, +un[banned|restricted]thing, *restrictedthing, !removedrule, addedrule"); this.parse('/tour viewrules'); - return this.sendReplyBox(`
Source/tour rules ${tournament.customRules}
`); + if (tournament.customRules.length) { + return this.sendReplyBox(`
Source/tour rules ${tournament.customRules}
`); + } + return; } this.checkCan('tournaments', null, room); if (tournament.isTournamentStarted) { @@ -1891,6 +1900,31 @@ const commands: Chat.ChatCommands = { return this.sendReply(`Usage: /tour ${cmd} `); } }, + aconly: 'autoconfirmedonly', + onlyac: 'autoconfirmedonly', + onlyautoconfirmed: 'autoconfirmedonly', + autoconfirmedonly(target, room, user, connection, cmd) { + room = this.requireRoom(); + this.checkCan('tournaments', null, room); + const tournament = this.requireGame(Tournament); + target = target.trim(); + if (!target) { + return this.sendReply( + `This tournament ${tournament.autoconfirmedOnly ? 'does not allow' : 'allows'} non-autoconfirmed users to join a tournament.` + ); + } + const value = this.meansYes(target) ? true : this.meansNo(target) ? false : null; + target = value ? 'ON' : 'OFF'; + if (value === null || !toID(target)) { + return this.parse(`/help tour`); + } + if (tournament.autoconfirmedOnly === value) { + return this.errorReply(`This tournament is already set to ${value ? 'disallow' : 'allow'} non-autoconfirmed users.`); + } + tournament.setAutoconfirmedOnly(value); + this.privateModAction(`${user.name} set this tournament to ${value ? 'disallow' : 'allow'} non-autoconfirmed users.`); + this.modlog('TOUR AUTOCONFIRMEDONLY', null, target); + }, forcepublic(target, room, user, connection, cmd) { room = this.requireRoom(); this.checkCan('tournaments', null, room); @@ -1924,13 +1958,7 @@ const commands: Chat.ChatCommands = { if (this.meansYes(option)) { tournament.setForceTimer(true); for (const player of tournament.players) { - const curMatch = player.inProgressMatch; - if (curMatch) { - const battle = curMatch.room.battle; - if (battle) { - battle.timer.start(); - } - } + player.inProgressMatch?.room.game?.startTimer(); } this.privateModAction(`The timer was turned on for the tournament by ${user.name}`); this.modlog('TOUR FORCETIMER', null, 'ON'); @@ -1950,27 +1978,25 @@ const commands: Chat.ChatCommands = { return this.parse(`/help tour settings`); } const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansYes(target)) { - if (!room.settings.tournaments.allowModjoin) { - if (tour && !tour.allowModjoin) this.parse(`/tour modjoin allow`); - room.settings.tournaments.allowModjoin = true; - room.saveSettings(); - this.privateModAction(`Modjoin was enabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'modjoin: ALLOW'); - } else { + if (room.settings.tournaments.allowModjoin) { throw new Chat.ErrorMessage(`Modjoin is already enabled for every tournament.`); } + if (tour && !tour.allowModjoin) this.parse(`/tour modjoin allow`); + room.settings.tournaments.allowModjoin = true; + room.saveSettings(); + this.privateModAction(`Modjoin was enabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'modjoin: ALLOW'); } else { - if (room.settings.tournaments.allowModjoin) { - if (tour?.allowModjoin) this.parse(`/tour modjoin disallow`); - room.settings.tournaments.allowModjoin = false; - room.saveSettings(); - this.privateModAction(`Modjoin was disabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'modjoin: DISALLOW'); - } else { + if (!room.settings.tournaments.allowModjoin) { throw new Chat.ErrorMessage(`Modjoin is already disabled for every tournament.`); } + if (tour?.allowModjoin) this.parse(`/tour modjoin disallow`); + room.settings.tournaments.allowModjoin = false; + room.saveSettings(); + this.privateModAction(`Modjoin was disabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'modjoin: DISALLOW'); } }, scouting(target, room, user) { @@ -1978,55 +2004,71 @@ const commands: Chat.ChatCommands = { this.checkCan('declare', null, room); if (!target || (!this.meansYes(target) && !this.meansNo(target))) return this.parse(`/help tour settings`); const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansYes(target)) { - if (!room.settings.tournaments.allowScouting) { - if (tour && !tour.allowScouting) this.parse(`/tour scouting allow`); - room.settings.tournaments.allowScouting = true; - room.saveSettings(); - this.privateModAction(`Scouting was enabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'scouting: ALLOW'); - } else { + if (room.settings.tournaments.allowScouting) { throw new Chat.ErrorMessage(`Scouting is already enabled for every tournament.`); } + if (tour && !tour.allowScouting) this.parse(`/tour scouting allow`); + room.settings.tournaments.allowScouting = true; + room.saveSettings(); + this.privateModAction(`Scouting was enabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'scouting: ALLOW'); } else { - if (room.settings.tournaments) { - if (tour?.allowScouting) this.parse(`/tour scouting disallow`); - room.settings.tournaments.allowScouting = false; - room.saveSettings(); - this.privateModAction(`Scouting was disabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'scouting: DISALLOW'); - } else { + if (!room.settings.tournaments.allowScouting) { throw new Chat.ErrorMessage(`Scouting is already disabled for every tournament.`); } + if (tour?.allowScouting) this.parse(`/tour scouting disallow`); + room.settings.tournaments.allowScouting = false; + room.saveSettings(); + this.privateModAction(`Scouting was disabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'scouting: DISALLOW'); } }, + aconly: 'autoconfirmedonly', + onlyac: 'autoconfirmedonly', + onlyautoconfirmed: 'autoconfirmedonly', + autoconfirmedonly(target, room, user) { + room = this.requireRoom(); + this.checkCan('declare', null, room); + const tour = room.getGame(Tournament); + room.settings.tournaments ||= {}; + const value = this.meansYes(target) ? true : this.meansNo(target) ? false : null; + if (!target || value === null) return this.parse(`/help tour settings`); + if (room.settings.tournaments.autoconfirmedOnly === value) { + return this.errorReply(`All tournaments are already set to ${value ? 'disallow' : 'allow'} non-autoconfimed users.`); + } + room.settings.tournaments.autoconfirmedOnly = value; + room.saveSettings(); + target = value ? 'ON' : 'OFF'; + this.modlog('TOUR SETTINGS', null, `autoconfirmed only: ${target}`); + if (tour) this.parse(`/tour autoconfirmedonly ${target}`); + this.privateModAction(`${user.name} set all tournaments to ${value ? 'disallow' : 'allow'} non-autoconfirmed users.`); + }, forcepublic(target, room, user) { room = this.requireRoom(); this.checkCan('declare', null, room); if (!target || (!this.meansNo(target) && !this.meansYes(target))) return this.parse(`/help tour settings`); const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansNo(target)) { - if (room.settings.tournaments.forcePublic) { - if (tour?.forcePublic) this.parse(`/tour forcepublic off`); - room.settings.tournaments.forcePublic = false; - room.saveSettings(); - this.privateModAction(`Forced public battles were disabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'forcepublic: DISABLE'); - } else { + if (!room.settings.tournaments.forcePublic) { throw new Chat.ErrorMessage(`Forced public battles are already disabled for every tournament.`); } + if (tour?.forcePublic) this.parse(`/tour forcepublic off`); + room.settings.tournaments.forcePublic = false; + room.saveSettings(); + this.privateModAction(`Forced public battles were disabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'forcepublic: DISABLE'); } else { - if (!room.settings.tournaments.forcePublic) { - if (tour && !tour.forcePublic) this.parse(`/tour forcepublic on`); - room.settings.tournaments.forcePublic = true; - room.saveSettings(); - this.privateModAction(`Forced public battles were enabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'forcepublic: ENABLE'); - } else { + if (room.settings.tournaments.forcePublic) { throw new Chat.ErrorMessage(`Forced public battles are already enabled for every tournament.`); } + if (tour && !tour.forcePublic) this.parse(`/tour forcepublic on`); + room.settings.tournaments.forcePublic = true; + room.saveSettings(); + this.privateModAction(`Forced public battles were enabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'forcepublic: ENABLE'); } }, forcetimer(target, room, user) { @@ -2034,27 +2076,25 @@ const commands: Chat.ChatCommands = { this.checkCan('declare', null, room); if (!target || (!this.meansNo(target) && !this.meansYes(target))) return this.parse(`/help tour settings`); const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansNo(target)) { - if (room.settings.tournaments.forceTimer) { - if (tour?.forceTimer) this.parse(`/tour forcetimer off`); - room.settings.tournaments.forceTimer = false; - room.saveSettings(); - this.privateModAction(`Forced timer was disabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'forcetimer: DISABLE'); - } else { + if (!room.settings.tournaments.forceTimer) { throw new Chat.ErrorMessage(`Forced timer is already disabled for every tournament.`); } + if (tour?.forceTimer) this.parse(`/tour forcetimer off`); + room.settings.tournaments.forceTimer = false; + room.saveSettings(); + this.privateModAction(`Forced timer was disabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'forcetimer: DISABLE'); } else { - if (!room.settings.tournaments.forceTimer) { - if (tour && !tour.forceTimer) this.parse(`/tour forcetimer on`); - room.settings.tournaments.forceTimer = true; - room.saveSettings(); - this.privateModAction(`Forced timer was enabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'forcetimer: ENABLE'); - } else { + if (room.settings.tournaments.forceTimer) { throw new Chat.ErrorMessage(`Forced timer is already enabled for every tournament.`); } + if (tour && !tour.forceTimer) this.parse(`/tour forcetimer on`); + room.settings.tournaments.forceTimer = true; + room.saveSettings(); + this.privateModAction(`Forced timer was enabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'forcetimer: ENABLE'); } }, autostart(target, room, user) { @@ -2065,19 +2105,18 @@ const commands: Chat.ChatCommands = { return this.parse(`/help tour settings`); } const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansNo(target)) { - if (room.settings.tournaments.autostart) { - if (tour && !tour.isTournamentStarted && tour.autoDisqualifyTimeout !== Infinity) { - this.parse(`/tour setautojoin off`); - } - room.settings.tournaments.autostart = false; - room.saveSettings(); - this.privateModAction(`Autostart was disabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'autostart: DISABLE'); - } else { + if (!room.settings.tournaments.autostart) { throw new Chat.ErrorMessage(`Autostart is already disabled for every tournament.`); } + if (tour && !tour.isTournamentStarted && tour.autoDisqualifyTimeout !== Infinity) { + this.parse(`/tour setautojoin off`); + } + room.settings.tournaments.autostart = false; + room.saveSettings(); + this.privateModAction(`Autostart was disabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'autostart: DISABLE'); } else if (this.meansYes(target) && target !== '1') { if (room.settings.tournaments.autostart === true) { throw new Chat.ErrorMessage(`Autostart for every tournament is already set to true.`); @@ -2110,19 +2149,18 @@ const commands: Chat.ChatCommands = { const num = Number(target); if (!target || (!this.meansNo(target) && isNaN(num))) return this.parse(`/help tour settings`); const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansNo(target)) { - if (room.settings.tournaments.autodq) { - if (tour && !tour.isTournamentStarted && tour.autoDisqualifyTimeout !== Infinity) { - this.parse(`/tour autodq off`); - } - delete room.settings.tournaments.autodq; - room.saveSettings(); - this.privateModAction(`Automatic disqualification was disabled for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'autodq: DISABLE'); - } else { + if (!room.settings.tournaments.autodq) { throw new Chat.ErrorMessage(`Automatic disqualification is already disabled for every tournament.`); } + if (tour && !tour.isTournamentStarted && tour.autoDisqualifyTimeout !== Infinity) { + this.parse(`/tour autodq off`); + } + delete room.settings.tournaments.autodq; + room.saveSettings(); + this.privateModAction(`Automatic disqualification was disabled for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'autodq: DISABLE'); } else if (!isNaN(num)) { const timeout = num * 60 * 1000; if (timeout < 0.5 * 60 * 1000 || timeout > Chat.MAX_TIMEOUT_DURATION) { @@ -2146,19 +2184,18 @@ const commands: Chat.ChatCommands = { const num = parseInt(target); if (!target || (!this.meansNo(target) && isNaN(num))) return this.parse(`/help tour settings`); const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansNo(target)) { - if (room.settings.tournaments.playerCap) { - if (tour && !tour.isTournamentStarted && tour.playerCap) { - this.parse(`/tour setplayercap off`); - } - delete room.settings.tournaments.playerCap; - room.saveSettings(); - this.privateModAction(`Player Cap was removed for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, 'playercap: REMOVE'); - } else { + if (!room.settings.tournaments.playerCap) { throw new Chat.ErrorMessage(`Player Cap is already removed for every tournament.`); } + if (tour && !tour.isTournamentStarted && tour.playerCap) { + this.parse(`/tour setplayercap off`); + } + delete room.settings.tournaments.playerCap; + room.saveSettings(); + this.privateModAction(`Player Cap was removed for every tournament by ${user.name}`); + this.modlog('TOUR SETTINGS', null, 'playercap: REMOVE'); } else if (!isNaN(num)) { if (num < 2) { throw new Chat.ErrorMessage(`The Player Cap must be at least 2.`); @@ -2181,47 +2218,17 @@ const commands: Chat.ChatCommands = { return this.sendReply(`Usage: ${this.cmdToken}${this.fullCmd} `); } }, - sampleteams(target, room, user) { - room = this.requireRoom(); - this.checkCan('declare', null, room); - if (!target) return this.parse(`/help tour settings`); - const tour = room.getGame(Tournament); - if (!room.settings.tournaments) room.settings.tournaments = {}; - if (this.meansYes(target)) { - if (!room.settings.tournaments.showSampleTeams) { - if (tour && !tour.isTournamentStarted) tour.showSampleTeams(); - room.settings.tournaments.showSampleTeams = true; - room.saveSettings(); - this.privateModAction(`Show Sample Teams was set to ON for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, `show sample teams: ON`); - } else { - throw new Chat.ErrorMessage(`Sample teams are already shown for every tournament.`); - } - } else if (this.meansNo(target)) { - if (room.settings.tournaments.showSampleTeams) { - delete room.settings.tournaments.showSampleTeams; - room.saveSettings(); - this.privateModAction(`Show Sample Teams was set to OFF for every tournament by ${user.name}`); - this.modlog('TOUR SETTINGS', null, `show sample teams: OFF`); - } else { - throw new Chat.ErrorMessage(`Sample teams are already not shown for every tournament.`); - } - } else { - return this.sendReply(`Usage: ${this.cmdToken}${this.fullCmd} `); - } - }, recenttours(target, room, user) { room = this.requireRoom(); this.checkCan('declare', null, room); - const num = parseInt(target); - const force = toID(target) === 'forcedelete'; - if (!target || - (!this.meansNo(target) && !force && - (isNaN(num) || num > 15 || num < 0))) { + let num = parseInt(target); + const forcedelete = toID(target) === 'forcedelete'; + if (this.meansNo(target) || forcedelete) num = 0; + if (isNaN(num) || num > 15 || num < 0) { return this.parse(`/help tour settings`); } - if (!room.settings.tournaments) room.settings.tournaments = {}; - if (!isNaN(num) && num <= 15 && num >= 1) { + room.settings.tournaments ||= {}; + if (num >= 1) { if (room.settings.tournaments.recentToursLength === num) { throw new Chat.ErrorMessage(`Number of recent tournaments to record is already set to ${num}.`); } @@ -2234,24 +2241,19 @@ const commands: Chat.ChatCommands = { room.saveSettings(); this.privateModAction(`Number of recent tournaments to record was set to ${num} by ${user.name}.`); this.modlog('TOUR SETTINGS', null, `recent tours: ${num} most recent`); - } else if (this.meansNo(target) || force) { - if (room.settings.tournaments.recentToursLength) { - delete room.settings.tournaments.recentToursLength; - if (force) { - delete room.settings.tournaments.recentTours; - this.privateModAction(`Recent tournaments list was deleted by ${user.name}.`); - this.modlog('TOUR SETTINGS', null, `recent tours: delete`); - } - room.saveSettings(); - this.privateModAction(`Number of recent tournaments to record was turned off by ${user.name}.`); - this.modlog('TOUR SETTINGS', null, `recent tours: off`); - } else { - if (!force) { - throw new Chat.ErrorMessage(`Number of recent tournaments to record is already disabled.`); - } - } } else { - this.sendReply(`Usage: ${this.cmdToken}${this.fullCmd} `); + if (forcedelete && room.settings.tournaments.recentTours) { + delete room.settings.tournaments.recentTours; + this.privateModAction(`Recent tournaments list was deleted by ${user.name}.`); + this.modlog('TOUR SETTINGS', null, `recent tours: delete`); + } + if (!room.settings.tournaments.recentToursLength) { + throw new Chat.ErrorMessage(`Number of recent tournaments to record is already disabled.`); + } + delete room.settings.tournaments.recentToursLength; + room.saveSettings(); + this.privateModAction(`Number of recent tournaments to record was turned off by ${user.name}.`); + this.modlog('TOUR SETTINGS', null, `recent tours: off`); } }, blockrecents(target, room, user) { @@ -2264,7 +2266,7 @@ const commands: Chat.ChatCommands = { } return this.parse(`/help tour settings`); } - if (!room.settings.tournaments) room.settings.tournaments = {}; + room.settings.tournaments ||= {}; if (this.meansYes(target)) { if (room.settings.tournaments.blockRecents) { throw new Chat.ErrorMessage(`Recent tournaments are already blocked from being made.`); @@ -2288,22 +2290,25 @@ const commands: Chat.ChatCommands = { this.parse(`${this.cmdToken}help tour settings`); }, }, - settingshelp: [ - `/tour settings autodq - Sets the automatic disqualification timeout for every tournament.`, - `/tour settings autostart - Sets the automatic start timeout for every tournament.`, - `/tour settings forcepublic - Specifies whether users can hide their battles for every tournament.`, - `/tour settings forcetimer - Specifies whether users can toggle the timer for every tournament.`, - `/tour settings modjoin - Specifies whether users can modjoin their battles for every tournament.`, - `/tour settings playercap - Sets the playercap for every tournament.`, - `/tour settings scouting - Specifies whether users can spectate other participants for every tournament.`, - `/tour settings sampleteams - Specifies whether sample teams are shown for every tournament.`, - `/tour settings recenttours - Specifies the amount of recent tournaments to list in /recenttours.`, - `/tour settings blockrecents - Toggles blocking tours in /recenttours from being made.`, - `Requires: # &`, - ], }, - tournamenthelp() { + tournamenthelp(target) { if (!this.runBroadcast()) return; + if (target.endsWith('settings')) { + return this.sendReplyBox( + `/tour settings autodq <minutes|off> - Sets the automatic disqualification timeout for every tournament.
` + + `/tour settings autostart <on|minutes|off> - Sets the automatic start timeout for every tournament.
` + + `/tour settings forcepublic <on|off> - Specifies whether users can hide their battles for every tournament.
` + + `/tour settings forcetimer <on|off> - Specifies whether users can toggle the timer for every tournament.
` + + `/tour settings modjoin <on|off> - Specifies whether users can modjoin their battles for every tournament.
` + + `/tour settings autoconfirmedonly<on|off> - Set requirement for signups for this tournament. If this is on, only autoconfirmed users can join a tournament.
` + + `/tour settings playercap <number> - Sets the playercap for every tournament.
` + + `/tour settings scouting <on|off> - Specifies whether users can spectate other participants for every tournament.
` + + `/tour settings recenttours <number|off|forcedelete> - Specifies the amount of recent tournaments to list in /recenttours.
` + + `/tour settings blockrecents <on|off> - Toggles blocking tours in /recenttours from being made.
` + + `Requires: # ~`, + ); + } + this.sendReplyBox( `Tournament Commands
` + `- create/new <format>, <type>, [ <comma-separated arguments>]: Creates a new tournament in the current room.
` + @@ -2321,6 +2326,7 @@ const commands: Chat.ChatCommands = { `- dq/disqualify <user>: Disqualifies a user.
` + `- autodq/setautodq <minutes|off>: Sets the automatic disqualification timeout.
` + `- runautodq: Manually run the automatic disqualifier.
` + + `- autoconfirmedonly/onlyautoconfirmed/aconly/onlyac <on|off>: Set requirement for signups for this tournament. If this is on, only autoconfirmed users can join a tournament.
` + `- scouting <allow|disallow>: Specifies whether joining tournament matches while in a tournament is allowed.
` + `- modjoin <allow|disallow>: Specifies whether players can modjoin their battles.
` + `- forcetimer <on|off>: Turn on the timer for tournament battles.
` + @@ -2362,6 +2368,14 @@ const roomSettings: Chat.SettingsHandler[] = [ ['disallow', !room.settings.tournaments?.allowModjoin || 'tour settings modjoin disallow'], ], }), + room => ({ + label: "Tournament Autoconfirmed Only", + permission: "editroom", + options: [ + ['on', room.settings.tournaments?.autoconfirmedOnly || 'tour settings aconly on'], + ['off', !room.settings.tournaments?.autoconfirmedOnly || 'tour settings aconly off'], + ], + }), room => ({ label: "Tournament Scouting", permission: "editroom", diff --git a/server/user-groups.ts b/server/user-groups.ts index 20c3920e8393..749a2d4c0dcd 100644 --- a/server/user-groups.ts +++ b/server/user-groups.ts @@ -1,16 +1,16 @@ import {FS} from '../lib/fs'; import type {RoomSection} from './chat-commands/room-settings'; +import {toID} from '../sim/dex-data'; -export type GroupSymbol = '~' | '&' | '#' | '★' | '*' | '@' | '%' | '☆' | '§' | '+' | '^' | ' ' | '‽' | '!'; +export type GroupSymbol = '~' | '#' | '★' | '*' | '@' | '%' | '☆' | '§' | '+' | '^' | ' ' | '‽' | '!'; export type EffectiveGroupSymbol = GroupSymbol | 'whitelist'; export type AuthLevel = EffectiveGroupSymbol | 'unlocked' | 'trusted' | 'autoconfirmed'; -export const SECTIONLEADER_SYMBOL: GroupSymbol = '\u00a7'; export const PLAYER_SYMBOL: GroupSymbol = '\u2606'; export const HOST_SYMBOL: GroupSymbol = '\u2605'; export const ROOM_PERMISSIONS = [ - 'addhtml', 'announce', 'ban', 'bypassafktimer', 'declare', 'editprivacy', 'editroom', 'exportinputlog', 'game', 'gamemanagement', 'gamemoderation', 'joinbattle', 'kick', 'minigame', 'modchat', 'modlog', 'mute', 'nooverride', 'receiveauthmessages', 'roombot', 'roomdriver', 'roommod', 'roomowner', 'roomsectionleader', 'roomvoice', 'roomprizewinner', 'show', 'showmedia', 'timer', 'tournaments', 'warn', + 'addhtml', 'announce', 'ban', 'bypassafktimer', 'declare', 'editprivacy', 'editroom', 'exportinputlog', 'game', 'gamemanagement', 'gamemoderation', 'joinbattle', 'kick', 'minigame', 'modchat', 'modlog', 'mute', 'nooverride', 'receiveauthmessages', 'roombot', 'roomdriver', 'roommod', 'roomowner', 'roomvoice', 'roomprizewinner', 'show', 'showmedia', 'timer', 'tournaments', 'warn', ] as const; export const GLOBAL_PERMISSIONS = [ @@ -63,7 +63,7 @@ export abstract class Auth extends Map { // At one point bots used to be ranked above drivers, so this checks // driver rank to make sure this function works on servers that // did not reorder the ranks. - return Auth.atLeast(rank, '*') || Auth.atLeast(rank, SECTIONLEADER_SYMBOL) || Auth.atLeast(rank, '%'); + return Auth.atLeast(rank, '*') || Auth.atLeast(rank, '%'); } else { return false; } @@ -115,7 +115,8 @@ export abstract class Auth extends Map { permission: string, target: User | EffectiveGroupSymbol | ID | null, room?: BasicRoom | null, - cmd?: string + cmd?: string, + cmdToken?: string, ): boolean { if (user.hasSysopAccess()) return true; @@ -137,11 +138,10 @@ export abstract class Auth extends Map { let group = Auth.getGroup(symbol); if (group['root']) return true; + // Global drivers who are SLs should get room mod powers too if ( room?.settings.section && room.settings.section === Users.globalAuth.sectionLeaders.get(user.id) && - // Global drivers who are SLs should get room mod powers too - Users.globalAuth.atLeast(user, SECTIONLEADER_SYMBOL) && // But dont override ranks above moderator such as room owner (Auth.getGroup('@').rank > group.rank) ) { @@ -156,19 +156,26 @@ export abstract class Auth extends Map { if (roomPermissions) { let foundSpecificPermission = false; if (cmd) { + if (!cmdToken) cmdToken = `/`; const namespace = cmd.slice(0, cmd.indexOf(' ')); - if (roomPermissions[`/${cmd}`]) { + if (roomPermissions[`${cmdToken}${cmd}`]) { // this checks sub commands and command objects, but it checks to see if a sub-command // overrides (should a perm for the command object exist) first - if (!auth.atLeast(user, roomPermissions[`/${cmd}`])) return false; + if (!auth.atLeast(user, roomPermissions[`${cmdToken}${cmd}`])) return false; jurisdiction = 'u'; foundSpecificPermission = true; - } else if (roomPermissions[`/${namespace}`]) { + } else if (roomPermissions[`${cmdToken}${namespace}`]) { // if it's for one command object - if (!auth.atLeast(user, roomPermissions[`/${namespace}`])) return false; + if (!auth.atLeast(user, roomPermissions[`${cmdToken}${namespace}`])) return false; jurisdiction = 'u'; foundSpecificPermission = true; } + if (foundSpecificPermission && targetSymbol === Users.Auth.defaultSymbol()) { + // if /permissions has granted unranked users permission to use the command, + // grant jurisdiction over unranked (since unranked users don't have jurisdiction over unranked) + // see https://github.com/smogon/pokemon-showdown/pull/9534#issuecomment-1565719315 + jurisdiction += Users.Auth.defaultSymbol(); + } } if (!foundSpecificPermission && roomPermissions[permission]) { if (!auth.atLeast(user, roomPermissions[permission])) return false; @@ -181,15 +188,18 @@ export abstract class Auth extends Map { return Auth.getGroup(symbol).rank >= Auth.getGroup(symbol2).rank; } static supportedRoomPermissions(room: Room | null = null) { - const handlers = Chat.allCommands().filter(c => c.hasRoomPermissions); const commands = []; - for (const handler of handlers) { - commands.push(`/${handler.fullCmd}`); + for (const handler of Chat.allCommands()) { + if (!handler.hasRoomPermissions && !handler.broadcastable) continue; + + // if it's only broadcast permissions, not use permissions, use the broadcast symbol + const cmdPrefix = handler.hasRoomPermissions ? "/" : "!"; + commands.push(`${cmdPrefix}${handler.fullCmd}`); if (handler.aliases.length) { for (const alias of handler.aliases) { // kind of a hack but this is the only good way i could think of to // overwrite the alias without making assumptions about the string - commands.push(`/${handler.fullCmd.replace(handler.cmd, alias)}`); + commands.push(`${cmdPrefix}${handler.fullCmd.replace(handler.cmd, alias)}`); } } } @@ -281,7 +291,7 @@ export class RoomAuth extends Auth { // Plus, using user.can is cleaner than Users.globalAuth.get(user) === admin and it accounts for more things. // (and no this won't recurse or anything since user.can() with no room doesn't call this) if (this.room.settings.isPrivate === true && user.can('makeroom')) { - // not hardcoding & here since globalAuth.get should return & in basically all cases + // not hardcoding ~ here since globalAuth.get should return ~ in basically all cases // except sysops, and there's an override for them anyways so it doesn't matter return Users.globalAuth.get(user); } diff --git a/server/users.ts b/server/users.ts index 82c44469d1fe..091b0cd38dad 100644 --- a/server/users.ts +++ b/server/users.ts @@ -45,9 +45,9 @@ const PERMALOCK_CACHE_TIME = 30 * 24 * 60 * 60 * 1000; // 30 days const DEFAULT_TRAINER_SPRITES = [1, 2, 101, 102, 169, 170, 265, 266]; -import {FS, Utils, ProcessManager} from '../lib'; +import {Utils, ProcessManager} from '../lib'; import { - Auth, GlobalAuth, SECTIONLEADER_SYMBOL, PLAYER_SYMBOL, HOST_SYMBOL, RoomPermission, GlobalPermission, + Auth, GlobalAuth, PLAYER_SYMBOL, HOST_SYMBOL, RoomPermission, GlobalPermission, } from './user-groups'; const MINUTES = 60 * 1000; @@ -188,7 +188,7 @@ function isUsername(name: string) { function isTrusted(userid: ID) { if (globalAuth.has(userid)) return userid; for (const room of Rooms.global.chatRooms) { - if (room.persist && room.settings.isPrivate !== true && room.auth.isStaff(userid)) { + if (room.persist && !room.settings.isPrivate && room.auth.isStaff(userid)) { return userid; } } @@ -240,6 +240,13 @@ export class Connection { lastRequestedPage: string | null; lastActiveTime: number; openPages: null | Set; + /** + * Used to distinguish Connection from User. + * + * Makes it easy to do something like + * `for (const conn of (userOrConn.connections || [userOrConn]))` + */ + readonly connections = null; constructor( id: string, worker: ProcessManager.StreamWorker, @@ -332,9 +339,16 @@ export interface UserSettings { export class User extends Chat.MessageContext { /** In addition to needing it to implement MessageContext, this is also nice for compatibility with Connection. */ readonly user: User; + /** + * Not a source of truth - should always be in sync with + * `[...Rooms.rooms.values()].filter(room => this.id in room.users)` + */ readonly inRooms: Set; /** - * Set of room IDs + * Not a source of truth - should always in sync with + * `[...Rooms.rooms.values()].filter(` + * ` room => room.game && this.id in room.game.playerTable && !room.game.ended` + * `)` */ readonly games: Set; mmrCache: {[format: string]: number}; @@ -555,11 +569,23 @@ export class User extends Chat.MessageContext { const status = statusMessage + (this.userMessage || ''); return status; } - can(permission: RoomPermission, target: User | null, room: BasicRoom, cmd?: string): boolean; + can(permission: RoomPermission, target: User | null, room: BasicRoom, cmd?: string, cmdToken?: string): boolean; can(permission: GlobalPermission, target?: User | null): boolean; - can(permission: RoomPermission & GlobalPermission, target: User | null, room?: BasicRoom | null, cmd?: string): boolean; - can(permission: string, target: User | null = null, room: BasicRoom | null = null, cmd?: string): boolean { - return Auth.hasPermission(this, permission, target, room, cmd); + can( + permission: RoomPermission & GlobalPermission, + target: User | null, + room?: BasicRoom | null, + cmd?: string, + cmdToken?: string, + ): boolean; + can( + permission: string, + target: User | null = null, + room: BasicRoom | null = null, + cmd?: string, + cmdToken?: string, + ): boolean { + return Auth.hasPermission(this, permission, target, room, cmd, cmdToken); } /** * Special permission check for system operators @@ -846,7 +872,7 @@ export class User extends Chat.MessageContext { Punishments.checkName(user, userid, registered); Rooms.global.checkAutojoin(user); - Rooms.global.joinOldBattles(this); + Rooms.global.rejoinGames(user); Chat.loginfilter(user, this, userType); return true; } @@ -862,7 +888,7 @@ export class User extends Chat.MessageContext { return false; } Rooms.global.checkAutojoin(this); - Rooms.global.joinOldBattles(this); + Rooms.global.rejoinGames(this); Chat.loginfilter(this, null, userType); return true; } @@ -918,7 +944,14 @@ export class User extends Chat.MessageContext { room.game.onRename(this, oldid, joining, isForceRenamed); } for (const roomid of this.inRooms) { - Rooms.get(roomid)!.onRename(this, oldid, joining); + const room = Rooms.get(roomid)!; + room.onRename(this, oldid, joining); + if (room.game && !this.games.has(roomid)) { + if (room.game.playerTable[this.id]) { + this.games.add(roomid); + room.game.onRename(this, oldid, joining, isForceRenamed); + } + } } if (isForceRenamed) this.trackRename = oldname; return true; @@ -1048,12 +1081,10 @@ export class User extends Chat.MessageContext { room.onJoin(this, connection); this.inRooms.add(roomid); } - if (room.game && room.game.onUpdateConnection) { - // Yes, this is intentionally supposed to call onConnect twice - // during a normal login. Override onUpdateConnection if you - // don't want this behavior. - room.game.onUpdateConnection(this, connection); - } + // Yes, this is intentionally supposed to call onConnect twice + // during a normal login. Override onUpdateConnection if you + // don't want this behavior. + room.game?.onUpdateConnection?.(this, connection); } this.updateReady(connection); } @@ -1264,20 +1295,17 @@ export class User extends Chat.MessageContext { async tryJoinRoom(roomid: RoomID | Room, connection: Connection) { roomid = roomid && (roomid as Room).roomid ? (roomid as Room).roomid : roomid as RoomID; const room = Rooms.search(roomid); - if (!room && roomid.startsWith('view-')) { - return Chat.resolvePage(roomid, this, connection); - } - if (!room?.checkModjoin(this)) { - if (!this.named) { - return Rooms.RETRY_AFTER_LOGIN; - } else { - if (room) { - connection.sendTo(roomid, `|noinit|joinfailed|The room "${roomid}" is invite-only, and you haven't been invited.`); - } else { - connection.sendTo(roomid, `|noinit|nonexistent|The room "${roomid}" does not exist.`); - } - return false; + if (!room) { + if (roomid.startsWith('view-')) { + return Chat.resolvePage(roomid, this, connection); } + connection.sendTo(roomid, `|noinit|nonexistent|The room "${roomid}" does not exist.`); + return false; + } + if (!room.checkModjoin(this)) { + if (!this.named) return Rooms.RETRY_AFTER_LOGIN; + connection.sendTo(roomid, `|noinit|joinfailed|The room "${roomid}" is invite-only, and you haven't been invited.`); + return false; } if ((room as GameRoom).tour) { const errorMessage = (room as GameRoom).tour!.onBattleJoin(room as GameRoom, this); @@ -1325,8 +1353,8 @@ export class User extends Chat.MessageContext { } if (!connection.inRooms.has(room.roomid)) { if (!this.inRooms.has(room.roomid)) { - this.inRooms.add(room.roomid); room.onJoin(this, connection); + this.inRooms.add(room.roomid); } connection.joinRoom(room); room.onConnect(this, connection); @@ -1513,20 +1541,13 @@ export class User extends Chat.MessageContext { destroy() { // deallocate user for (const roomid of this.games) { - const room = Rooms.get(roomid); - if (!room) { - Monitor.warn(`while deallocating, room ${roomid} did not exist for ${this.id} in rooms ${[...this.inRooms]} and games ${[...this.games]}`); - this.games.delete(roomid); - continue; - } - const game = room.game; + const game = Rooms.get(roomid)?.game; if (!game) { Monitor.warn(`while deallocating, room ${roomid} did not have a game for ${this.id} in rooms ${[...this.inRooms]} and games ${[...this.games]}`); this.games.delete(roomid); continue; } - if (game.ended) continue; - if (game.forfeit) game.forfeit(this); + if (!game.ended) game.forfeit?.(this, " lost by being offline too long."); } this.clearChatQueue(); this.destroyPunishmentTimer(); @@ -1565,8 +1586,16 @@ function pruneInactive(threshold: number) { user.destroy(); } if (!user.can('addhtml')) { + const suspicious = global.Config?.isSuspicious?.(user) || false; for (const connection of user.connections) { - if (now - connection.lastActiveTime > CONNECTION_EXPIRY_TIME) { + if ( + // conn's been inactive for 24h, just kill it + (now - connection.lastActiveTime > CONNECTION_EXPIRY_TIME) || + // they're connected and not named, but not namelocked. this is unusual behavior, ultimately just wasting resources. + // people have been spamming us with conns as of writing this, so it appears to be largely bots doing this. + // so we're just gonna go ahead and dc them. if they're a real user, they can rejoin and go back to... whatever. + suspicious && (now - connection.connectedAt) > threshold + ) { connection.destroy(); } } @@ -1588,7 +1617,7 @@ function logGhostConnections(threshold: number): Promise { } } return buffer.length ? - FS(`logs/ghosts-${process.pid}.log`).append(buffer.join('\r\n') + '\r\n') : + Monitor.logPath(`ghosts-${process.pid}.log`).append(buffer.join('\r\n') + '\r\n') : Promise.resolve(); } @@ -1613,7 +1642,7 @@ function socketConnect( } // Emergency mode connections logging if (Config.emergency) { - void FS('logs/cons.emergency.log').append('[' + ip + ']\n'); + void Monitor.logPath('cons.emergency.log').append('[' + ip + ']\n'); } const user = new User(connection); @@ -1703,7 +1732,7 @@ function socketReceive(worker: ProcessManager.StreamWorker, workerid: number, so } // Emergency logging if (Config.emergency) { - void FS('logs/emergency.log').append(`[${user} (${connection.ip})] ${roomId}|${message}\n`); + void Monitor.logPath('emergency.log').append(`[${user} (${connection.ip})] ${roomId}|${message}\n`); } for (const line of lines) { @@ -1733,7 +1762,6 @@ export const Users = { isUsername, isTrusted, isPublicBot, - SECTIONLEADER_SYMBOL, PLAYER_SYMBOL, HOST_SYMBOL, connections, diff --git a/sim/SIM-PROTOCOL.md b/sim/SIM-PROTOCOL.md index 25476b09478d..964c5962feb9 100644 --- a/sim/SIM-PROTOCOL.md +++ b/sim/SIM-PROTOCOL.md @@ -63,7 +63,7 @@ The beginning of a battle will look something like this: `|gen|GENNUM` -> Generation number, from 1 to 7. Stadium counts as its respective gens; +> Generation number, from 1 to 9. Stadium counts as its respective gens; > Let's Go counts as 7, and modded formats count as whatever gen they were > based on. @@ -603,7 +603,7 @@ stat boosts are minor actions. `|-nothing` > **DEPRECATED**: A move did absolutely nothing. (For example: Splash). In the -> future this will be of the form `|-activate||move:Splash`. +> future this will be of the form `|-activate|POKEMON|move: Splash`. `|-hitcount|POKEMON|NUM` diff --git a/sim/SIMULATOR.md b/sim/SIMULATOR.md index be82d7984610..6de38dc6ea13 100644 --- a/sim/SIMULATOR.md +++ b/sim/SIMULATOR.md @@ -1,7 +1,7 @@ Battle simulator ================ -Pokémon Showdown's simulator API is implemented as a `ReadWriteStream`. You write player choices to it, and you read protocol messages from it. +Pokémon Showdown's simulator API is implemented as an `ObjectReadWriteStream` (as in [STREAMS.md](../lib/STREAMS.md)). You write player choices (strings) to it, and you read protocol messages (also strings) from it. `npm install pokemon-showdown` @@ -22,7 +22,7 @@ stream.write(`>player p2 {"name":"Bob"}`); The stream can also be accessed from other programming languages using standard IO. -In this case, you would clone the repository, and then run: +In this case, you would clone the repository, and then run, for instance: ```bash echo '>start {"formatid":"gen7randombattle"} @@ -31,6 +31,10 @@ echo '>start {"formatid":"gen7randombattle"} ' | ./pokemon-showdown simulate-battle ``` +For the equivalent in your language, read your language's documentation on how to interact with a subprocess's standard IO. + +Doing this with standard IO requires a separate subprocess for each battle. Remember to add `\n` after each message you write to standard IO. + Writing to the simulator ------------------------ @@ -49,7 +53,7 @@ In a standard battle, what you write to the simulator looks something like this: >p2 move 2 ``` -(In a data stream, messages should be delimited by `\n`; in an object stream, `\n` will be implicitly added after every message.) +(In a text [standard IO] stream, messages should end with `\n`; in an object stream, `\n` will be implicitly added after every message.) Notice that every line starts with `>`. Lines not starting with `>` are comments, so that input logs can be mixed with output logs and/or normal text easily. @@ -115,7 +119,7 @@ Makes a choice for a player. [Possible choices are documented in `SIM-PROTOCOL.m Reading from the simulator -------------------------- -The simulator will send back messages. In a data stream, they're delimited by `\n\n`. In an object stream, they will just be sent as separate strings. +The simulator will send back messages. In a text (standard IO) stream, they're delimited by `\n\n`. In an object stream, they will just be sent as separate strings. Messages start with a message type followed by `\n`. A message will never have two `\n` in a row, so that `\n\n` unambiguously separates messages. diff --git a/sim/battle-actions.ts b/sim/battle-actions.ts index 9fb34f3e68c5..4128c3f85d54 100644 --- a/sim/battle-actions.ts +++ b/sim/battle-actions.ts @@ -220,17 +220,27 @@ export class BattleActions { * Dancer. */ runMove( - moveOrMoveName: Move | string, pokemon: Pokemon, targetLoc: number, sourceEffect?: Effect | null, - zMove?: string, externalMove?: boolean, maxMove?: string, originalTarget?: Pokemon + moveOrMoveName: Move | string, pokemon: Pokemon, targetLoc: number, + options?: { + sourceEffect?: Effect | null, zMove?: string, externalMove?: boolean, + maxMove?: string, originalTarget?: Pokemon, + } ) { pokemon.activeMoveActions++; + const zMove = options?.zMove; + const maxMove = options?.maxMove; + const externalMove = options?.externalMove; + const originalTarget = options?.originalTarget; + let sourceEffect = options?.sourceEffect; let target = this.battle.getTarget(pokemon, maxMove || zMove || moveOrMoveName, targetLoc, originalTarget); let baseMove = this.dex.getActiveMove(moveOrMoveName); + const priority = baseMove.priority; const pranksterBoosted = baseMove.pranksterBoosted; if (baseMove.id !== 'struggle' && !zMove && !maxMove && !externalMove) { const changedMove = this.battle.runEvent('OverrideAction', pokemon, target, baseMove); if (changedMove && changedMove !== true) { baseMove = this.dex.getActiveMove(changedMove); + baseMove.priority = priority; if (pranksterBoosted) baseMove.pranksterBoosted = pranksterBoosted; target = this.battle.getRandomTarget(pokemon, baseMove); } @@ -264,6 +274,12 @@ export class BattleActions { pokemon.moveThisTurnResult = willTryMove; return; } + + // Used exclusively for a hint later + if (move.flags['cantusetwice'] && pokemon.lastMove?.id === move.id) { + pokemon.addVolatile(move.id); + } + if (move.beforeMoveCallback) { if (move.beforeMoveCallback.call(this.battle, pokemon, target, move)) { this.battle.clearActiveMove(true); @@ -303,11 +319,14 @@ export class BattleActions { const oldActiveMove = move; - const moveDidSomething = this.useMove(baseMove, pokemon, target, sourceEffect, zMove, maxMove); + const moveDidSomething = this.useMove(baseMove, pokemon, {target, sourceEffect, zMove, maxMove}); this.battle.lastSuccessfulMoveThisTurn = moveDidSomething ? this.battle.activeMove && this.battle.activeMove.id : null; if (this.battle.activeMove) move = this.battle.activeMove; this.battle.singleEvent('AfterMove', move, null, pokemon, target, move); this.battle.runEvent('AfterMove', pokemon, target, move); + if (move.flags['cantusetwice'] && pokemon.removeVolatile(move.id)) { + this.battle.add('-hint', `Some effects can force a Pokemon to use ${move.name} again in a row.`); + } // Dancer's activation order is completely different from any other event, so it's handled separately if (move.flags['dance'] && moveDidSomething && !move.isExternal) { @@ -334,7 +353,7 @@ export class BattleActions { targetOf1stDance : pokemon; const dancersTargetLoc = dancer.getLocOf(dancersTarget); - this.runMove(move.id, dancer, dancersTargetLoc, this.dex.abilities.get('dancer'), undefined, true); + this.runMove(move.id, dancer, dancersTargetLoc, {sourceEffect: this.dex.abilities.get('dancer'), externalMove: true}); } } if (noLock && pokemon.volatiles['lockedmove']) delete pokemon.volatiles['lockedmove']; @@ -357,19 +376,27 @@ export class BattleActions { * Dancer. */ useMove( - move: Move | string, pokemon: Pokemon, target?: Pokemon | null, - sourceEffect?: Effect | null, zMove?: string, maxMove?: string + move: Move | string, pokemon: Pokemon, options?: { + target?: Pokemon | null, sourceEffect?: Effect | null, + zMove?: string, maxMove?: string, + } ) { pokemon.moveThisTurnResult = undefined; const oldMoveResult: boolean | null | undefined = pokemon.moveThisTurnResult; - const moveResult = this.useMoveInner(move, pokemon, target, sourceEffect, zMove, maxMove); + const moveResult = this.useMoveInner(move, pokemon, options); if (oldMoveResult === pokemon.moveThisTurnResult) pokemon.moveThisTurnResult = moveResult; return moveResult; } useMoveInner( - moveOrMoveName: Move | string, pokemon: Pokemon, target?: Pokemon | null, - sourceEffect?: Effect | null, zMove?: string, maxMove?: string + moveOrMoveName: Move | string, pokemon: Pokemon, options?: { + target?: Pokemon | null, sourceEffect?: Effect | null, + zMove?: string, maxMove?: string, + }, ) { + let target = options?.target; + let sourceEffect = options?.sourceEffect; + const zMove = options?.zMove; + const maxMove = options?.maxMove; if (!sourceEffect && this.battle.effect.id) sourceEffect = this.battle.effect; if (sourceEffect && ['instruct', 'custapberry'].includes(sourceEffect.id)) sourceEffect = null; @@ -586,6 +613,7 @@ export class BattleActions { if (!hitResults) continue; targets = targets.filter((val, i) => hitResults[i] || hitResults[i] === 0); atLeastOneFailure = atLeastOneFailure || hitResults.some(val => val === false); + if (move.smartTarget && atLeastOneFailure) move.smartTarget = false; if (!targets.length) { // console.log(step.name); break; @@ -599,11 +627,16 @@ export class BattleActions { return moveResult; } hitStepInvulnerabilityEvent(targets: Pokemon[], pokemon: Pokemon, move: ActiveMove) { - if (move.id === 'helpinghand' || (this.battle.gen >= 8 && move.id === 'toxic' && pokemon.hasType('Poison'))) { - return new Array(targets.length).fill(true); - } - const hitResults = this.battle.runEvent('Invulnerability', targets, pokemon, move); + if (move.id === 'helpinghand') return new Array(targets.length).fill(true); + const hitResults: boolean[] = []; for (const [i, target] of targets.entries()) { + if (target.volatiles['commanding']) { + hitResults[i] = false; + } else if (this.battle.gen >= 8 && move.id === 'toxic' && pokemon.hasType('Poison')) { + hitResults[i] = true; + } else { + hitResults[i] = this.battle.runEvent('Invulnerability', target, pokemon, move); + } if (hitResults[i] === false) { if (move.smartTarget) { move.smartTarget = false; @@ -635,7 +668,6 @@ export class BattleActions { for (const i of targets.keys()) { hitResults[i] = (move.ignoreImmunity && (move.ignoreImmunity === true || move.ignoreImmunity[move.type])) || targets[i].runImmunity(move.type, !move.smartTarget); - if (move.smartTarget && !hitResults[i]) move.smartTarget = false; } return hitResults; @@ -653,7 +685,9 @@ export class BattleActions { } else if (this.battle.gen >= 7 && move.pranksterBoosted && pokemon.hasAbility('prankster') && !targets[i].isAlly(pokemon) && !this.dex.getImmunity('prankster', target)) { this.battle.debug('natural prankster immunity'); - if (!target.illusion) this.battle.hint("Since gen 7, Dark is immune to Prankster moves."); + if (target.illusion || !(move.status && !this.dex.getImmunity(move.status, target))) { + this.battle.hint("Since gen 7, Dark is immune to Prankster moves."); + } this.battle.add('-immune', target); hitResults[i] = false; } else { @@ -729,7 +763,9 @@ export class BattleActions { if (move.breaksProtect) { for (const target of targets) { let broke = false; - for (const effectid of ['banefulbunker', 'kingsshield', 'obstruct', 'protect', 'silktrap', 'spikyshield']) { + for (const effectid of [ + 'banefulbunker', 'burningbulwark', 'kingsshield', 'obstruct', 'protect', 'silktrap', 'spikyshield', + ]) { if (target.removeVolatile(effectid)) broke = true; } if (this.battle.gen >= 6 || !target.isAlly(pokemon)) { @@ -772,7 +808,9 @@ export class BattleActions { boosts[statName2] = 0; } target.setBoost(boosts); - this.battle.addMove('-anim', pokemon, "Spectral Thief", target); + if (move.id === "spectralthief") { + this.battle.addMove('-anim', pokemon, "Spectral Thief", target); + } } } return undefined; @@ -910,13 +948,22 @@ export class BattleActions { const moveData = move; if (!moveData.flags) moveData.flags = {}; + let moveDamageThisHit; // Modifies targetsCopy (which is why it's a copy) - [moveDamage, targetsCopy] = this.spreadMoveHit(targetsCopy, pokemon, move, moveData); + [moveDamageThisHit, targetsCopy] = this.spreadMoveHit(targetsCopy, pokemon, move, moveData); + // When Dragon Darts targets two different pokemon, targetsCopy is a length 1 array each hit + // so spreadMoveHit returns a length 1 damage array + if (move.smartTarget) { + moveDamage.push(...moveDamageThisHit); + } else { + moveDamage = moveDamageThisHit; + } if (!moveDamage.some(val => val !== false)) break; nullDamage = false; for (const [i, md] of moveDamage.entries()) { + if (move.smartTarget && i !== hit - 1) continue; // Damage from each hit is individually counted for the // purposes of Counter, Metal Burst, and Mirror Coat. damage[i] = md === true || !md ? 0 : md; @@ -945,9 +992,9 @@ export class BattleActions { this.battle.add('-hitcount', targets[0], hit - 1); } - if (move.recoil && move.totalDamage) { + if ((move.recoil || move.id === 'chloroblast') && move.totalDamage) { const hpBeforeRecoil = pokemon.hp; - this.battle.damage(this.calcRecoilDamage(move.totalDamage, move), pokemon, pokemon, 'recoil'); + this.battle.damage(this.calcRecoilDamage(move.totalDamage, move, pokemon), pokemon, pokemon, 'recoil'); if (pokemon.hp <= pokemon.maxhp / 2 && hpBeforeRecoil > pokemon.maxhp / 2) { this.battle.runEvent('EmergencyExit', pokemon, pokemon); } @@ -969,18 +1016,14 @@ export class BattleActions { // smartTarget messes up targetsCopy, but smartTarget should in theory ensure that targets will never fail, anyway if (move.smartTarget) { - if (move.smartTarget && targets.length > 1) { - targetsCopy = [targets[hit - 1]]; - } else { - targetsCopy = targets.slice(0); - } + targetsCopy = targets.slice(0); } for (const [i, target] of targetsCopy.entries()) { if (target && pokemon !== target) { target.gotAttacked(move, moveDamage[i] as number | false | undefined, pokemon); if (typeof moveDamage[i] === 'number') { - target.timesAttacked += hit - 1; + target.timesAttacked += move.smartTarget ? 1 : hit - 1; } } } @@ -1271,7 +1314,7 @@ export class BattleActions { this.battle.faint(source, source, move); } if (moveData.selfSwitch) { - if (this.battle.canSwitch(source.side)) { + if (this.battle.canSwitch(source.side) && !source.volatiles['commanded']) { didSomething = true; } else { didSomething = this.combineResults(didSomething, false); @@ -1291,7 +1334,7 @@ export class BattleActions { } } this.battle.debug('move failed because it did nothing'); - } else if (move.selfSwitch && source.hp) { + } else if (move.selfSwitch && source.hp && !source.volatiles['commanded']) { source.switchFlag = move.id; } @@ -1359,7 +1402,8 @@ export class BattleActions { return retVal === true ? undefined : retVal; } - calcRecoilDamage(damageDealt: number, move: Move): number { + calcRecoilDamage(damageDealt: number, move: Move, pokemon: Pokemon): number { + if (move.id === 'chloroblast') return Math.round(pokemon.maxhp / 2); return this.battle.clampIntRange(Math.round(damageDealt * move.recoil![0] / move.recoil![1]), 1); } @@ -1720,20 +1764,40 @@ export class BattleActions { baseDamage = this.battle.randomizer(baseDamage); // STAB - if (move.forceSTAB || (type !== '???' && - (pokemon.hasType(type) || (pokemon.terastallized && pokemon.getTypes(false, true).includes(type))))) { - // The "???" type never gets STAB - // Not even if you Roost in Gen 4 and somehow manage to use - // Struggle in the same turn. - // (On second thought, it might be easier to get a MissingNo.) - - let stab = move.stab || 1.5; - if (type === pokemon.terastallized && pokemon.getTypes(false, true).includes(type)) { - // In my defense, the game hardcodes the Adaptability check like this, too. - stab = stab === 2 ? 2.25 : 2; - } else if (pokemon.terastallized && type !== pokemon.terastallized) { + // The "???" type never gets STAB + // Not even if you Roost in Gen 4 and somehow manage to use + // Struggle in the same turn. + // (On second thought, it might be easier to get a MissingNo.) + if (type !== '???') { + let stab: number | [number, number] = 1; + + const isSTAB = move.forceSTAB || pokemon.hasType(type) || pokemon.getTypes(false, true).includes(type); + if (isSTAB) { stab = 1.5; } + + // The Stellar tera type makes this incredibly confusing + // If the move's type does not match one of the user's base types, + // the Stellar tera type applies a one-time 1.2x damage boost for that type. + // + // If the move's type does match one of the user's base types, + // then the Stellar tera type applies a one-time 2x STAB boost for that type, + // and then goes back to using the regular 1.5x STAB boost for those types. + if (pokemon.terastallized === 'Stellar') { + if (!pokemon.stellarBoostedTypes.includes(type) || move.stellarBoosted) { + stab = isSTAB ? 2 : [4915, 4096]; + move.stellarBoosted = true; + if (pokemon.species.name !== 'Terapagos-Stellar') { + pokemon.stellarBoostedTypes.push(type); + } + } + } else { + if (pokemon.terastallized === type && pokemon.getTypes(false, true).includes(type)) { + stab = 2; + } + stab = this.battle.runEvent('ModifySTAB', pokemon, target, move, stab); + } + baseDamage = this.battle.modify(baseDamage, stab); } @@ -1852,19 +1916,25 @@ export class BattleActions { return true; } + // Let's Go + canMegaEvoX?: (this: BattleActions, pokemon: Pokemon) => string | null; + canMegaEvoY?: (this: BattleActions, pokemon: Pokemon) => string | null; + runMegaEvoX?: (this: BattleActions, pokemon: Pokemon) => boolean; + runMegaEvoY?: (this: BattleActions, pokemon: Pokemon) => boolean; + canTerastallize(pokemon: Pokemon) { - if ( - pokemon.species.isMega || pokemon.species.isPrimal || pokemon.species.forme === "Ultra" || - pokemon.getItem().zMove || pokemon.canMegaEvo || pokemon.side.canDynamaxNow() || this.dex.gen !== 9 - ) { + if (pokemon.getItem().zMove || pokemon.canMegaEvo || this.dex.gen !== 9) { return null; } return pokemon.teraType; } terastallize(pokemon: Pokemon) { - const type = pokemon.teraType; + if (pokemon.illusion && ['Ogerpon', 'Terapagos'].includes(pokemon.illusion.species.baseSpecies)) { + this.battle.singleEvent('End', this.dex.abilities.get('Illusion'), pokemon.abilityState, pokemon); + } + const type = pokemon.teraType; this.battle.add('-terastallize', pokemon, type); pokemon.terastallized = type; for (const ally of pokemon.side.pokemon) { @@ -1873,6 +1943,24 @@ export class BattleActions { pokemon.addedType = ''; pokemon.knownType = true; pokemon.apparentType = type; + if (pokemon.species.baseSpecies === 'Ogerpon') { + const tera = pokemon.species.id === 'ogerpon' ? 'tealtera' : 'tera'; + pokemon.formeChange(pokemon.species.id + tera, null, true); + } + if (pokemon.species.name === 'Terapagos-Terastal' && type === 'Stellar') { + pokemon.formeChange('Terapagos-Stellar', null, true); + pokemon.baseMaxhp = Math.floor(Math.floor( + 2 * pokemon.species.baseStats['hp'] + pokemon.set.ivs['hp'] + Math.floor(pokemon.set.evs['hp'] / 4) + 100 + ) * pokemon.level / 100 + 10); + const newMaxHP = pokemon.baseMaxhp; + pokemon.hp = newMaxHP - (pokemon.maxhp - pokemon.hp); + pokemon.maxhp = newMaxHP; + this.battle.add('-heal', pokemon, pokemon.getHealth, '[silent]'); + } + if (pokemon.species.baseSpecies === 'Morpeko') { + pokemon.baseSpecies = pokemon.species; + pokemon.details = pokemon.details.replace('Morpeko', pokemon.species.name); + } this.battle.runEvent('AfterTerastallization', pokemon); } diff --git a/sim/battle-queue.ts b/sim/battle-queue.ts index 9f503ae10686..9b2db39209dc 100644 --- a/sim/battle-queue.ts +++ b/sim/battle-queue.ts @@ -92,7 +92,7 @@ export interface FieldAction { /** A generic action done by a single pokemon */ export interface PokemonAction { /** action type */ - choice: 'megaEvo' | 'shift' | 'runPrimal' | 'runSwitch' | 'event' | 'runUnnerve' | 'runDynamax' | 'terastallize'; + choice: 'megaEvo' | 'megaEvoX' | 'megaEvoY' | 'shift' | 'runPrimal' | 'runSwitch' | 'event' | 'runUnnerve' | 'runDynamax' | 'terastallize'; /** priority of the action (lower first) */ priority: number; /** speed of pokemon doing action (higher first if priority tie) */ @@ -179,6 +179,8 @@ export class BattleQueue { runPrimal: 102, switch: 103, megaEvo: 104, + megaEvoX: 104, + megaEvoY: 104, runDynamax: 105, terastallize: 106, priorityChargeMove: 107, @@ -210,6 +212,18 @@ export class BattleQueue { pokemon: action.pokemon, })); } + if (action.megax && !action.pokemon.isSkyDropped()) { + actions.unshift(...this.resolveAction({ + choice: 'megaEvoX', + pokemon: action.pokemon, + })); + } + if (action.megay && !action.pokemon.isSkyDropped()) { + actions.unshift(...this.resolveAction({ + choice: 'megaEvoY', + pokemon: action.pokemon, + })); + } if (action.terastallize && !action.pokemon.terastallized) { actions.unshift(...this.resolveAction({ choice: 'terastallize', diff --git a/sim/battle-stream.ts b/sim/battle-stream.ts index 51480ac51467..aa8c5ec27993 100644 --- a/sim/battle-stream.ts +++ b/sim/battle-stream.ts @@ -224,6 +224,9 @@ export class BattleStream extends Streams.ObjectReadWriteStream { const team = Teams.pack(side.team); this.push(`requesteddata\n${team}`); break; + case 'show-openteamsheets': + this.battle!.showOpenTeamSheets(); + break; case 'version': case 'version-origin': break; diff --git a/sim/battle.ts b/sim/battle.ts index c4e2e0e04f13..dba8f006b52c 100644 --- a/sim/battle.ts +++ b/sim/battle.ts @@ -217,10 +217,9 @@ export class Battle { this.formatData = {id: format.id}; this.gameType = (format.gameType || 'singles'); this.field = new Field(this); - const isFourPlayer = this.gameType === 'multi' || this.gameType === 'freeforall'; - this.sides = Array(isFourPlayer ? 4 : 2).fill(null) as any; + this.sides = Array(format.playerCount).fill(null) as any; this.activePerHalf = this.gameType === 'triples' ? 3 : - (isFourPlayer || this.gameType === 'doubles') ? 2 : + (format.playerCount > 2 || this.gameType === 'doubles') ? 2 : 1; this.prng = options.prng || new PRNG(options.seed || undefined); this.prngSeed = this.prng.startingSeed.slice() as PRNGSeed; @@ -779,9 +778,9 @@ export class Battle { // it's changed; call it off continue; } - if (effect.effectType === 'Ability' && effect.isBreakable !== false && + if (effect.effectType === 'Ability' && effect.flags['breakable'] && this.suppressingAbility(effectHolder as Pokemon)) { - if (effect.isBreakable) { + if (effect.flags['breakable']) { this.debug(eventid + ' handler suppressed by Mold Breaker'); continue; } @@ -1162,7 +1161,7 @@ export class Battle { } return false; } - return move.flags['contact']; + return !!move.flags['contact']; } getPokemon(fullname: string | Pokemon) { @@ -1378,7 +1377,7 @@ export class Battle { if (!this.ended && side.requestState) { side.emitRequest({wait: true, side: side.getRequestData()}); side.clearChoice(); - if (this.allChoicesDone()) this.commitDecisions(); + if (this.allChoicesDone()) this.commitChoices(); } return true; } @@ -1440,7 +1439,7 @@ export class Battle { pokemon.faint(source, effect); } - nextTurn() { + endTurn() { this.turn++; this.lastSuccessfulMoveThisTurn = null; @@ -1503,7 +1502,11 @@ export class Battle { } this.runEvent('DisableMove', pokemon); for (const moveSlot of pokemon.moveSlots) { - this.singleEvent('DisableMove', this.dex.getActiveMove(moveSlot.id), null, pokemon); + const activeMove = this.dex.getActiveMove(moveSlot.id); + this.singleEvent('DisableMove', activeMove, null, pokemon); + if (activeMove.flags['cantusetwice'] && pokemon.lastMove?.id === moveSlot.id) { + pokemon.disableMove(pokemon.lastMove.id); + } } // If it was an illusion, it's not any more @@ -1610,7 +1613,7 @@ export class Battle { // Please remove me once there is client support. if (this.ruleTable.has('crazyhouserule')) { for (const side of this.sides) { - let buf = `raw|${side.name}'s team:
`; + let buf = `raw|${Utils.escapeHTML(side.name)}'s team:
`; for (const pokemon of side.pokemon) { if (!buf.endsWith('
')) buf += '/​'; if (pokemon.fainted) { @@ -1771,11 +1774,11 @@ export class Battle { this.add('rated', typeof this.rated === 'string' ? this.rated : ''); } - if (format.onBegin) format.onBegin.call(this); + format.onBegin?.call(this); for (const rule of this.ruleTable.keys()) { if ('+*-!'.includes(rule.charAt(0))) continue; const subFormat = this.dex.formats.get(rule); - if (subFormat.onBegin) subFormat.onBegin.call(this); + subFormat.onBegin?.call(this); } if (this.sides.some(side => !side.pokemon[0])) { @@ -1786,16 +1789,16 @@ export class Battle { this.checkEVBalance(); } - if (format.onTeamPreview) format.onTeamPreview.call(this); + format.onTeamPreview?.call(this); for (const rule of this.ruleTable.keys()) { if ('+*-!'.includes(rule.charAt(0))) continue; const subFormat = this.dex.formats.get(rule); - if (subFormat.onTeamPreview) subFormat.onTeamPreview.call(this); + subFormat.onTeamPreview?.call(this); } this.queue.addChoice({choice: 'start'}); this.midTurn = true; - if (!this.requestState) this.go(); + if (!this.requestState) this.turnLoop(); } restart(send?: (type: string, data: string | string[]) => void) { @@ -1823,9 +1826,9 @@ export class Battle { effect: Effect | null = null, isSecondary = false, isSelf = false ) { if (this.event) { - if (!target) target = this.event.target; - if (!source) source = this.event.source; - if (!effect) effect = this.effect; + target ||= this.event.target; + source ||= this.event.source; + effect ||= this.effect; } if (!target?.hp) return 0; if (!target.isActive) return false; @@ -1930,7 +1933,7 @@ export class Battle { if (this.gen <= 1) { if (this.dex.currentMod === 'gen1stadium' || - !['recoil', 'drain'].includes(effect.id) && effect.effectType !== 'Status') { + !['recoil', 'drain', 'leechseed'].includes(effect.id) && effect.effectType !== 'Status') { this.lastDamage = targetDamage; } } @@ -2014,18 +2017,18 @@ export class Battle { effect: 'drain' | 'recoil' | Effect | null = null, instafaint = false ) { if (this.event) { - if (!target) target = this.event.target; - if (!source) source = this.event.source; - if (!effect) effect = this.effect; + target ||= this.event.target; + source ||= this.event.source; + effect ||= this.effect; } return this.spreadDamage([damage], [target], source, effect, instafaint)[0]; } directDamage(damage: number, target?: Pokemon, source: Pokemon | null = null, effect: Effect | null = null) { if (this.event) { - if (!target) target = this.event.target; - if (!source) source = this.event.source; - if (!effect) effect = this.effect; + target ||= this.event.target; + source ||= this.event.source; + effect ||= this.effect; } if (!target?.hp) return 0; if (!damage) return 0; @@ -2075,9 +2078,9 @@ export class Battle { heal(damage: number, target?: Pokemon, source: Pokemon | null = null, effect: 'drain' | Effect | null = null) { if (this.event) { - if (!target) target = this.event.target; - if (!source) source = this.event.source; - if (!effect) effect = this.effect; + target ||= this.event.target; + source ||= this.event.source; + effect ||= this.effect; } if (effect === 'drain') effect = this.dex.conditions.getByID(effect as ID); if (damage && damage <= 1) damage = 1; @@ -2133,22 +2136,21 @@ export class Battle { return ((previousMod * nextMod + 2048) >> 12) / 4096; // M'' = ((M * M') + 0x800) >> 12 } - chainModify(numerator: number | number[], denominator?: number) { + chainModify(numerator: number | number[], denominator = 1) { const previousMod = this.trunc(this.event.modifier * 4096); if (Array.isArray(numerator)) { denominator = numerator[1]; numerator = numerator[0]; } - const nextMod = this.trunc(numerator * 4096 / (denominator || 1)); + const nextMod = this.trunc(numerator * 4096 / denominator); this.event.modifier = ((previousMod * nextMod + 2048) >> 12) / 4096; } - modify(value: number, numerator: number | number[], denominator?: number) { + modify(value: number, numerator: number | number[], denominator = 1) { // You can also use: // modify(value, [numerator, denominator]) // modify(value, fraction) - assuming you trust JavaScript's floating-point handler - if (!denominator) denominator = 1; if (Array.isArray(numerator)) { denominator = numerator[1]; numerator = numerator[0]; @@ -2282,6 +2284,9 @@ export class Battle { return target; } if (target.isAlly(pokemon)) { + if (move.target === 'adjacentAllyOrSelf' && this.gen !== 5) { + return pokemon; + } // Target is a fainted ally: attack shouldn't retarget return target; } @@ -2410,14 +2415,10 @@ export class Battle { } checkWin(faintData?: Battle['faintQueue'][0]) { - let team1PokemonLeft = this.sides[0].pokemonLeft; - let team2PokemonLeft = this.sides[1].pokemonLeft; + const team1PokemonLeft = this.sides[0].pokemonLeft + (this.sides[0].allySide?.pokemonLeft || 0); + const team2PokemonLeft = this.sides[1].pokemonLeft + (this.sides[1].allySide?.pokemonLeft || 0); const team3PokemonLeft = this.gameType === 'freeforall' && this.sides[2]!.pokemonLeft; const team4PokemonLeft = this.gameType === 'freeforall' && this.sides[3]!.pokemonLeft; - if (this.gameType === 'multi') { - team1PokemonLeft += this.sides[2]!.pokemonLeft; - team2PokemonLeft += this.sides[3]!.pokemonLeft; - } if (!team1PokemonLeft && !team2PokemonLeft && !team3PokemonLeft && !team4PokemonLeft) { this.win(faintData && this.gen > 4 ? faintData.target.side : null); return true; @@ -2547,12 +2548,20 @@ export class Battle { case 'move': if (!action.pokemon.isActive) return false; if (action.pokemon.fainted) return false; - this.actions.runMove(action.move, action.pokemon, action.targetLoc, action.sourceEffect, - action.zmove, undefined, action.maxMove, action.originalTarget); + this.actions.runMove(action.move, action.pokemon, action.targetLoc, { + sourceEffect: action.sourceEffect, zMove: action.zmove, + maxMove: action.maxMove, originalTarget: action.originalTarget, + }); break; case 'megaEvo': this.actions.runMegaEvo(action.pokemon); break; + case 'megaEvoX': + this.actions.runMegaEvoX?.(action.pokemon); + break; + case 'megaEvoY': + this.actions.runMegaEvoY?.(action.pokemon); + break; case 'runDynamax': action.pokemon.addVolatile('dynamax'); action.pokemon.side.dynamaxUsed = true; @@ -2683,7 +2692,7 @@ export class Battle { // in gen 3 or earlier, switching in fainted pokemon is done after // every move, rather than only at the end of the turn. this.checkFainted(); - } else if (action.choice === 'megaEvo' && this.gen === 7) { + } else if (['megaEvo', 'megaEvoX', 'megaEvoY'].includes(action.choice) && this.gen === 7) { this.eachEvent('Update'); // In Gen 7, the action order is recalculated for a Pokémon that mega evolves. for (const [i, queuedAction] of this.queue.list.entries()) { @@ -2733,7 +2742,8 @@ export class Battle { if (!reviveSwitch) switches[i] = false; } else if (switches[i]) { for (const pokemon of this.sides[i].active) { - if (pokemon.switchFlag && pokemon.switchFlag !== 'revivalblessing' && !pokemon.skipBeforeSwitchOutEventFlag) { + if (pokemon.hp && pokemon.switchFlag && pokemon.switchFlag !== 'revivalblessing' && + !pokemon.skipBeforeSwitchOutEventFlag) { this.runEvent('BeforeSwitchOut', pokemon); pokemon.skipBeforeSwitchOutEventFlag = true; this.faintMessages(); // Pokemon may have fainted in BeforeSwitchOut @@ -2767,7 +2777,14 @@ export class Battle { return false; } - go() { + /** + * Generally called at the beginning of a turn, to go through the + * turn one action at a time. + * + * If there is a mid-turn decision (like U-Turn), this will return + * and be called again later to resume the turn. + */ + turnLoop() { this.add(''); this.add('t:', Math.floor(Date.now() / 1000)); if (this.requestState) this.requestState = ''; @@ -2784,7 +2801,7 @@ export class Battle { if (this.requestState || this.ended) return; } - this.nextTurn(); + this.endTurn(); this.midTurn = false; this.queue.clear(); } @@ -2796,13 +2813,18 @@ export class Battle { choose(sideid: SideID, input: string) { const side = this.getSide(sideid); - if (!side.choose(input)) return false; + if (!side.choose(input)) { + if (!side.choice.error) { + side.emitChoiceError(`Unknown error for choice: ${input}. If you're not using a custom client, please report this as a bug.`); + } + return false; + } if (!side.isChoiceDone()) { side.emitChoiceError(`Incomplete choice: ${input} - missing other pokemon`); return false; } - if (this.allChoicesDone()) this.commitDecisions(); + if (this.allChoicesDone()) this.commitChoices(); return true; } @@ -2819,12 +2841,16 @@ export class Battle { side.autoChoose(); } } - this.commitDecisions(); + this.commitChoices(); } - commitDecisions() { + commitChoices() { this.updateSpeed(); + // Sometimes you need to make switch choices mid-turn (e.g. U-turn, + // fainting). When this happens, the rest of the turn is saved (and not + // re-sorted), but the new switch choices are sorted and inserted before + // the rest of the turn. const oldQueue = this.queue.list; this.queue.clear(); if (!this.allChoicesDone()) throw new Error("Not all choices done"); @@ -2846,7 +2872,9 @@ export class Battle { side.activeRequest = null; } - this.go(); + this.turnLoop(); + + // workaround for tests if (this.log.length - this.sentLogPos > 500) this.sendUpdates(); } @@ -2989,6 +3017,48 @@ export class Battle { return team as PokemonSet[]; } + showOpenTeamSheets() { + if (this.turn !== 0) return; + for (const side of this.sides) { + const team = side.pokemon.map(pokemon => { + const set = pokemon.set; + const newSet: PokemonSet = { + name: '', + species: set.species, + item: set.item, + ability: set.ability, + moves: set.moves, + nature: '', + gender: pokemon.gender, + evs: null!, + ivs: null!, + level: set.level, + }; + if (this.gen === 8) newSet.gigantamax = set.gigantamax; + if (this.gen === 9) newSet.teraType = set.teraType; + // Only display Hidden Power type if the Pokemon has Hidden Power + // This is based on how team sheets were written in past VGC formats + if (set.moves.some(m => this.dex.moves.get(m).id === 'hiddenpower')) newSet.hpType = set.hpType; + // This is done so the client doesn't flag Zacian/Zamazenta as illusions + // when they use their signature move + if ((toID(set.species) === 'zacian' && toID(set.item) === 'rustedsword') || + (toID(set.species) === 'zamazenta' && toID(set.item) === 'rustedshield')) { + newSet.species = Dex.species.get(set.species + 'crowned').name; + const crowned: {[k: string]: string} = { + 'Zacian-Crowned': 'behemothblade', 'Zamazenta-Crowned': 'behemothbash', + }; + const ironHead = set.moves.map(toID).indexOf('ironhead' as ID); + if (ironHead >= 0) { + newSet.moves[ironHead] = crowned[newSet.species]; + } + } + return newSet; + }); + + this.add('showteam', side.id, Teams.pack(team)); + } + } + setPlayer(slot: SideID, options: PlayerOptions) { let side; let didSomething = true; @@ -3072,6 +3142,15 @@ export class Battle { return this.sides[parseInt(sideid[1]) - 1]; } + /** + * Currently, we treat Team Preview as turn 0, but the games start counting their turns at turn 0 + * There is also overflow that occurs in Gen 8+ that affects moves like Wish / Future Sight + * https://www.smogon.com/forums/threads/10352797 + */ + getOverflowedTurnCount(): number { + return this.gen >= 8 ? (this.turn - 1) % 256 : this.turn - 1; + } + destroy() { // deallocate ourself diff --git a/sim/dex-abilities.ts b/sim/dex-abilities.ts index 8310c469f968..c038d7c4b866 100644 --- a/sim/dex-abilities.ts +++ b/sim/dex-abilities.ts @@ -1,5 +1,6 @@ -import {PokemonEventMethods} from './dex-conditions'; -import {BasicEffect, toID} from './dex-data'; +import type {PokemonEventMethods, ConditionData} from './dex-conditions'; +import {assignMissingFields, BasicEffect, toID} from './dex-data'; +import {Utils} from '../lib'; interface AbilityEventMethods { onCheckShow?: (this: Battle, pokemon: Pokemon) => void; @@ -8,11 +9,25 @@ interface AbilityEventMethods { onStart?: (this: Battle, target: Pokemon) => void; } +/* Possible Ability flags */ +interface AbilityFlags { + breakable?: 1; // Can be suppressed by Mold Breaker and related effects + cantsuppress?: 1; // Ability can't be suppressed by e.g. Gastro Acid or Neutralizing Gas + failroleplay?: 1; // Role Play fails if target has this Ability + failskillswap?: 1; // Skill Swap fails if either the user or target has this Ability + noentrain?: 1; // Entrainment fails if user has this Ability + noreceiver?: 1; // Receiver and Power of Alchemy will not activate if an ally faints with this Ability + notrace?: 1; // Trace cannot copy this Ability + notransform?: 1; // Disables the Ability if the user is Transformed +} + export interface AbilityData extends Partial, AbilityEventMethods, PokemonEventMethods { name: string; } export type ModdedAbilityData = AbilityData | Partial & {inherit: true}; +export interface AbilityDataTable {[abilityid: IDEntry]: AbilityData} +export interface ModdedAbilityDataTable {[abilityid: IDEntry]: ModdedAbilityData} export class Ability extends BasicEffect implements Readonly { declare readonly effectType: 'Ability'; @@ -20,9 +35,8 @@ export class Ability extends BasicEffect implements Readonly { /** Rating from -1 Detrimental to +5 Essential; see `data/abilities.ts` for details. */ readonly rating: number; readonly suppressWeather: boolean; + readonly flags: AbilityFlags; declare readonly condition?: ConditionData; - declare readonly isPermanent?: boolean; - declare readonly isBreakable?: boolean; constructor(data: AnyObject) { super(data); @@ -30,6 +44,7 @@ export class Ability extends BasicEffect implements Readonly { this.fullname = `ability: ${this.name}`; this.effectType = 'Ability'; this.suppressWeather = !!data.suppressWeather; + this.flags = data.flags || {}; this.rating = data.rating || 0; if (!this.gen) { @@ -49,9 +64,12 @@ export class Ability extends BasicEffect implements Readonly { this.gen = 3; } } + assignMissingFields(this, data); } } +const EMPTY_ABILITY = Utils.deepFreeze(new Ability({id: '', name: '', exists: false})); + export class DexAbilities { readonly dex: ModdedDex; readonly abilityCache = new Map(); @@ -63,12 +81,12 @@ export class DexAbilities { get(name: string | Ability = ''): Ability { if (name && typeof name !== 'string') return name; - - const id = toID(name); + const id = toID(name.trim()); return this.getByID(id); } getByID(id: ID): Ability { + if (id === '') return EMPTY_ABILITY; let ability = this.abilityCache.get(id); if (ability) return ability; @@ -97,7 +115,7 @@ export class DexAbilities { }); } - if (ability.exists) this.abilityCache.set(id, ability); + if (ability.exists) this.abilityCache.set(id, this.dex.deepFreeze(ability)); return ability; } diff --git a/sim/dex-conditions.ts b/sim/dex-conditions.ts index e13074a1f6fb..352f0a142e8a 100644 --- a/sim/dex-conditions.ts +++ b/sim/dex-conditions.ts @@ -1,4 +1,5 @@ -import {BasicEffect, toID} from './dex-data'; +import {Utils} from '../lib'; +import {assignMissingFields, BasicEffect, toID} from './dex-data'; import type {SecondaryEffect, MoveEventMethods} from './dex-moves'; export interface EventMethods { @@ -65,6 +66,7 @@ export interface EventMethods { onModifySpA?: CommonHandlers['ModifierSourceMove']; onModifySpD?: CommonHandlers['ModifierMove']; onModifySpe?: (this: Battle, spe: number, pokemon: Pokemon) => number | void; + onModifySTAB?: CommonHandlers['ModifierSourceMove']; onModifyWeight?: (this: Battle, weighthg: number, pokemon: Pokemon) => number | void; onMoveAborted?: CommonHandlers['VoidMove']; onNegateImmunity?: ((this: Battle, pokemon: Pokemon, type: string) => boolean | void) | boolean; @@ -95,10 +97,8 @@ export interface EventMethods { this: Battle, status: Condition, target: Pokemon, source: Pokemon, sourceEffect: Effect ) => boolean | null | void; onTryEatItem?: boolean | ((this: Battle, item: Item, pokemon: Pokemon) => boolean | void); - /* FIXME: onTryHeal() is run with two different sets of arguments */ onTryHeal?: ( - ((this: Battle, relayVar: number, target: Pokemon, source: Pokemon, effect: Effect) => number | boolean | void) | - ((this: Battle, pokemon: Pokemon) => boolean | void) | boolean + ((this: Battle, relayVar: number, target: Pokemon, source: Pokemon, effect: Effect) => number | boolean | void) ); onTryHit?: MoveEventMethods['onTryHit']; onTryHitField?: MoveEventMethods['onTryHitField']; @@ -166,6 +166,7 @@ export interface EventMethods { onFoeModifySpA?: CommonHandlers['ModifierSourceMove']; onFoeModifySpD?: CommonHandlers['ModifierMove']; onFoeModifySpe?: (this: Battle, spe: number, pokemon: Pokemon) => number | void; + onFoeModifySTAB?: CommonHandlers['ModifierSourceMove']; onFoeModifyType?: MoveEventMethods['onModifyType']; onFoeModifyTarget?: MoveEventMethods['onModifyTarget']; onFoeModifyWeight?: (this: Battle, weighthg: number, pokemon: Pokemon) => number | void; @@ -264,6 +265,7 @@ export interface EventMethods { onSourceModifySpA?: CommonHandlers['ModifierSourceMove']; onSourceModifySpD?: CommonHandlers['ModifierMove']; onSourceModifySpe?: (this: Battle, spe: number, pokemon: Pokemon) => number | void; + onSourceModifySTAB?: CommonHandlers['ModifierSourceMove']; onSourceModifyType?: MoveEventMethods['onModifyType']; onSourceModifyTarget?: MoveEventMethods['onModifyTarget']; onSourceModifyWeight?: (this: Battle, weighthg: number, pokemon: Pokemon) => number | void; @@ -364,6 +366,7 @@ export interface EventMethods { onAnyModifySpA?: CommonHandlers['ModifierSourceMove']; onAnyModifySpD?: CommonHandlers['ModifierMove']; onAnyModifySpe?: (this: Battle, spe: number, pokemon: Pokemon) => number | void; + onAnyModifySTAB?: CommonHandlers['ModifierSourceMove']; onAnyModifyType?: MoveEventMethods['onModifyType']; onAnyModifyTarget?: MoveEventMethods['onModifyTarget']; onAnyModifyWeight?: (this: Battle, weighthg: number, pokemon: Pokemon) => number | void; @@ -453,6 +456,7 @@ export interface EventMethods { onModifySpAPriority?: number; onModifySpDPriority?: number; onModifySpePriority?: number; + onModifySTABPriority?: number; onModifyTypePriority?: number; onModifyWeightPriority?: number; onRedirectTargetPriority?: number; @@ -467,6 +471,7 @@ export interface EventMethods { onSourceModifySpAPriority?: number; onSwitchInPriority?: number; onTrapPokemonPriority?: number; + onTryBoostPriority?: number; onTryEatItemPriority?: number; onTryHealPriority?: number; onTryHitPriority?: number; @@ -529,6 +534,7 @@ export interface PokemonEventMethods extends EventMethods { onAllyModifySpA?: CommonHandlers['ModifierSourceMove']; onAllyModifySpD?: CommonHandlers['ModifierMove']; onAllyModifySpe?: (this: Battle, spe: number, pokemon: Pokemon) => number | void; + onAllyModifySTAB?: CommonHandlers['ModifierSourceMove']; onAllyModifyType?: MoveEventMethods['onModifyType']; onAllyModifyTarget?: MoveEventMethods['onModifyTarget']; onAllyModifyWeight?: (this: Battle, weighthg: number, pokemon: Pokemon) => number | void; @@ -603,6 +609,8 @@ export interface FieldConditionData extends export type ConditionData = PokemonConditionData | SideConditionData | FieldConditionData; export type ModdedConditionData = ConditionData & {inherit?: true}; +export interface ConditionDataTable {[id: IDEntry]: ConditionData} +export interface ModdedConditionDataTable {[id: IDEntry]: ModdedConditionData} export class Condition extends BasicEffect implements Readonly { @@ -621,13 +629,12 @@ export class Condition extends BasicEffect implements constructor(data: AnyObject) { super(data); - // eslint-disable-next-line @typescript-eslint/no-this-alias - data = this; this.effectType = (['Weather', 'Status'].includes(data.effectType) ? data.effectType : 'Condition'); + assignMissingFields(this, data); } } -const EMPTY_CONDITION: Condition = new Condition({name: '', exists: false}); +const EMPTY_CONDITION: Condition = Utils.deepFreeze(new Condition({name: '', exists: false})); export class DexConditions { readonly dex: ModdedDex; @@ -645,7 +652,7 @@ export class DexConditions { } getByID(id: ID): Condition { - if (!id) return EMPTY_CONDITION; + if (id === '') return EMPTY_CONDITION; let condition = this.conditionCache.get(id); if (condition) return condition; @@ -659,6 +666,9 @@ export class DexConditions { condition = {...ability, id: 'ability:' + ability.id as ID} as any as Condition; } else if (this.dex.data.Rulesets.hasOwnProperty(id)) { condition = this.dex.formats.get(id) as any as Condition; + // formats can't be frozen if they don't have a ruleTable + this.conditionCache.set(id, condition); + return condition; } else if (this.dex.data.Conditions.hasOwnProperty(id)) { condition = new Condition({name: id, ...this.dex.data.Conditions[id]}); } else if ( @@ -675,7 +685,7 @@ export class DexConditions { condition = new Condition({name: id, exists: false}); } - this.conditionCache.set(id, condition); + this.conditionCache.set(id, this.dex.deepFreeze(condition)); return condition; } } diff --git a/sim/dex-data.ts b/sim/dex-data.ts index d0cd8bf29132..ce4df1661bd3 100644 --- a/sim/dex-data.ts +++ b/sim/dex-data.ts @@ -20,21 +20,27 @@ import {Utils} from '../lib'; * commonly it's used. */ export function toID(text: any): ID { - // The sucrase transformation of optional chaining is too expensive to be used in a hot function like this. - /* eslint-disable @typescript-eslint/prefer-optional-chain */ - if (text && text.id) { - text = text.id; - } else if (text && text.userid) { - text = text.userid; - } else if (text && text.roomid) { - text = text.roomid; + if (typeof text !== 'string') { + if (text) text = text.id || text.userid || text.roomid || text; + if (typeof text === 'number') text = '' + text; + else if (typeof text !== 'string') return ''; } - if (typeof text !== 'string' && typeof text !== 'number') return ''; - return ('' + text).toLowerCase().replace(/[^a-z0-9]+/g, '') as ID; - /* eslint-enable @typescript-eslint/prefer-optional-chain */ + return text.toLowerCase().replace(/[^a-z0-9]+/g, '') as ID; } -export class BasicEffect implements EffectData { +/** + * Like Object.assign but only assigns fields missing from self. + * Facilitates consistent field ordering in constructors. + * Modifies self in-place. + */ +export function assignMissingFields(self: AnyObject, data: AnyObject) { + for (const k in data) { + if (k in self) continue; + self[k] = data[k]; + } +} + +export abstract class BasicEffect implements EffectData { /** * ID. This will be a lowercase version of the name with all the * non-alphanumeric characters removed. So, for instance, "Mr. Mime" @@ -102,14 +108,11 @@ export class BasicEffect implements EffectData { sourceEffect: string; constructor(data: AnyObject) { - this.exists = true; - Object.assign(this, data); - this.name = Utils.getString(data.name).trim(); this.id = data.realMove ? toID(data.realMove) : toID(this.name); // Hidden Power hack this.fullname = Utils.getString(data.fullname) || this.name; this.effectType = Utils.getString(data.effectType) as EffectType || 'Condition'; - this.exists = !!(this.exists && this.id); + this.exists = data.exists ?? !!this.id; this.num = data.num || 0; this.gen = data.gen || 0; this.shortDesc = data.shortDesc || ''; @@ -134,17 +137,28 @@ export class Nature extends BasicEffect implements Readonly> & {inherit: true}; + +export interface NatureDataTable {[natureid: IDEntry]: NatureData} + + export class DexNatures { readonly dex: ModdedDex; readonly natureCache = new Map(); @@ -156,10 +170,10 @@ export class DexNatures { get(name: string | Nature): Nature { if (name && typeof name !== 'string') return name; - return this.getByID(toID(name)); } getByID(id: ID): Nature { + if (id === '') return EMPTY_NATURE; let nature = this.natureCache.get(id); if (nature) return nature; @@ -178,7 +192,7 @@ export class DexNatures { nature = new Nature({name: id, exists: false}); } - if (nature.exists) this.natureCache.set(id, nature); + if (nature.exists) this.natureCache.set(id, this.dex.deepFreeze(nature)); return nature; } @@ -188,11 +202,22 @@ export class DexNatures { for (const id in this.dex.data.Natures) { natures.push(this.getByID(id as ID)); } - this.allCache = natures; + this.allCache = Object.freeze(natures); return this.allCache; } } +export interface TypeData { + damageTaken: {[attackingTypeNameOrEffectid: string]: number}; + HPdvs?: SparseStatsTable; + HPivs?: SparseStatsTable; + isNonstandard?: Nonstandard | null; +} + +export type ModdedTypeData = TypeData | Partial> & {inherit: true}; +export interface TypeDataTable {[typeid: IDEntry]: TypeData} +export interface ModdedTypeDataTable {[typeid: IDEntry]: ModdedTypeData} + type TypeInfoEffectType = 'Type' | 'EffectType'; export class TypeInfo implements Readonly { @@ -233,18 +258,16 @@ export class TypeInfo implements Readonly { readonly HPdvs: SparseStatsTable; constructor(data: AnyObject) { - this.exists = true; - Object.assign(this, data); - this.name = data.name; this.id = data.id; this.effectType = Utils.getString(data.effectType) as TypeInfoEffectType || 'Type'; - this.exists = !!(this.exists && this.id); + this.exists = data.exists ?? !!this.id; this.gen = data.gen || 0; this.isNonstandard = data.isNonstandard || null; this.damageTaken = data.damageTaken || {}; this.HPivs = data.HPivs || {}; this.HPdvs = data.HPdvs || {}; + assignMissingFields(this, data); } toString() { @@ -252,6 +275,8 @@ export class TypeInfo implements Readonly { } } +const EMPTY_TYPE_INFO = Utils.deepFreeze(new TypeInfo({name: '', id: '', exists: false, effectType: 'EffectType'})); + export class DexTypes { readonly dex: ModdedDex; readonly typeCache = new Map(); @@ -268,6 +293,7 @@ export class DexTypes { } getByID(id: ID): TypeInfo { + if (id === '') return EMPTY_TYPE_INFO; let type = this.typeCache.get(id); if (type) return type; @@ -278,7 +304,7 @@ export class DexTypes { type = new TypeInfo({name: typeName, id, exists: false, effectType: 'EffectType'}); } - if (type.exists) this.typeCache.set(id, type); + if (type.exists) this.typeCache.set(id, this.dex.deepFreeze(type)); return type; } @@ -302,13 +328,13 @@ export class DexTypes { for (const id in this.dex.data.TypeChart) { types.push(this.getByID(id as ID)); } - this.allCache = types; + this.allCache = Object.freeze(types); return this.allCache; } } const idsCache: readonly StatID[] = ['hp', 'atk', 'def', 'spa', 'spd', 'spe']; -const reverseCache: {readonly [k: string]: StatID} = { +const reverseCache: {readonly [k: IDEntry]: StatID} = { __proto: null as any, "hitpoints": 'hp', "attack": 'atk', diff --git a/sim/dex-formats.ts b/sim/dex-formats.ts index 72eeb4cf8c0a..67532013a50e 100644 --- a/sim/dex-formats.ts +++ b/sim/dex-formats.ts @@ -1,6 +1,7 @@ import {Utils} from '../lib'; -import {toID, BasicEffect} from './dex-data'; +import {assignMissingFields, toID, BasicEffect} from './dex-data'; import {EventMethods} from './dex-conditions'; +import {SpeciesData} from './dex-species'; import {Tags} from '../data/tags'; const DEFAULT_MOD = 'gen9'; @@ -11,6 +12,8 @@ export interface FormatData extends Partial, EventMethods { export type FormatList = (FormatData | {section: string, column?: number})[]; export type ModdedFormatData = FormatData | Omit & {inherit: true}; +export interface FormatDataTable {[id: IDEntry]: FormatData} +export interface ModdedFormatDataTable {[id: IDEntry]: ModdedFormatData} type FormatEffectType = 'Format' | 'Ruleset' | 'Rule' | 'ValidatorRule'; @@ -18,6 +21,18 @@ type FormatEffectType = 'Format' | 'Ruleset' | 'Rule' | 'ValidatorRule'; export type ComplexBan = [string, string, number, string[]]; export type ComplexTeamBan = ComplexBan; +export interface GameTimerSettings { + dcTimer: boolean; + dcTimerBank: boolean; + starting: number; + grace: number; + addPerTurn: number; + maxPerTurn: number; + maxFirstTurn: number; + timeoutAutoChoose: boolean; + accelerate: boolean; +} + /** * A RuleTable keeps track of the rules that a format has. The key can be: * - '[ruleid]' the ID of a rule in effect @@ -69,13 +84,13 @@ export class RuleTable extends Map { if (this.has(`+basepokemon:${toID(species.baseSpecies)}`)) return false; if (this.has(`-basepokemon:${toID(species.baseSpecies)}`)) return true; for (const tagid in Tags) { - const tag = Tags[tagid]; + const tag = Tags[tagid as ID]; if (this.has(`-pokemontag:${tagid}`)) { if ((tag.speciesFilter || tag.genericFilter)!(species)) return true; } } for (const tagid in Tags) { - const tag = Tags[tagid]; + const tag = Tags[tagid as ID]; if (this.has(`+pokemontag:${tagid}`)) { if ((tag.speciesFilter || tag.genericFilter)!(species)) return false; } @@ -94,13 +109,13 @@ export class RuleTable extends Map { if (this.has(`+basepokemon:${toID(species.baseSpecies)}`)) return false; if (this.has(`*basepokemon:${toID(species.baseSpecies)}`)) return true; for (const tagid in Tags) { - const tag = Tags[tagid]; + const tag = Tags[tagid as ID]; if (this.has(`*pokemontag:${tagid}`)) { if ((tag.speciesFilter || tag.genericFilter)!(species)) return true; } } for (const tagid in Tags) { - const tag = Tags[tagid]; + const tag = Tags[tagid as ID]; if (this.has(`+pokemontag:${tagid}`)) { if ((tag.speciesFilter || tag.genericFilter)!(species)) return false; } @@ -212,7 +227,38 @@ export class RuleTable extends Map { this.defaultLevel = Number(this.valueRules.get('defaultlevel')) || 0; this.adjustLevel = Number(this.valueRules.get('adjustlevel')) || null; this.adjustLevelDown = Number(this.valueRules.get('adjustleveldown')) || null; - this.evLimit = Number(this.valueRules.get('evlimit')) || null; + this.evLimit = Number(this.valueRules.get('evlimit')); + if (isNaN(this.evLimit)) this.evLimit = null; + + const timer: Partial = {}; + if (this.valueRules.has('timerstarting')) { + timer.starting = Number(this.valueRules.get('timerstarting')); + } + if (this.has('dctimer')) { + timer.dcTimer = true; + } + if (this.has('dctimerbank')) { + timer.dcTimer = true; + } + if (this.valueRules.has('timergrace')) { + timer.grace = Number(this.valueRules.get('timergrace')); + } + if (this.valueRules.has('timeraddperturn')) { + timer.addPerTurn = Number(this.valueRules.get('timeraddperturn')); + } + if (this.valueRules.has('timermaxperturn')) { + timer.maxPerTurn = Number(this.valueRules.get('timermaxperturn')); + } + if (this.valueRules.has('timermaxfirstturn')) { + timer.maxFirstTurn = Number(this.valueRules.get('timermaxfirstturn')); + } + if (this.has('timeoutautochoose')) { + timer.timeoutAutoChoose = true; + } + if (this.has('timeraccelerate')) { + timer.accelerate = true; + } + if (Object.keys(timer).length) this.timer = [timer, format.name]; if (this.valueRules.get('pickedteamsize') === 'Auto') { this.pickedTeamSize = ( @@ -295,6 +341,22 @@ export class RuleTable extends Map { throw new Error(`EV Limit ${this.evLimit}${this.blame('evlimit')} can't be less than 0 (you might have meant: "! EV Limit" to remove the limit, or "EV Limit = 0" to ban EVs).`); } + if (timer.starting !== undefined && (timer.starting < 10 || timer.starting > 1200)) { + throw new Error(`Timer starting value ${timer.starting}${this.blame('timerstarting')} must be between 10 and 1200 seconds.`); + } + if (timer.grace && timer.grace > 300) { + throw new Error(`Timer grace value ${timer.grace}${this.blame('timergrace')} must be at most 300 seconds.`); + } + if (timer.addPerTurn && timer.addPerTurn > 30) { + throw new Error(`Timer add per turn value ${timer.addPerTurn}${this.blame('timeraddperturn')} must be at most 30 seconds.`); + } + if (timer.maxPerTurn !== undefined && (timer.maxPerTurn < 10 || timer.maxPerTurn > 1200)) { + throw new Error(`Timer max per turn value ${timer.maxPerTurn}${this.blame('timermaxperturn')} must be between 10 and 1200 seconds.`); + } + if (timer.maxFirstTurn !== undefined && (timer.maxFirstTurn < 10 || timer.maxFirstTurn > 1200)) { + throw new Error(`Timer max first turn value ${timer.maxFirstTurn}${this.blame('timermaxfirstturn')} must be between 10 and 1200 seconds.`); + } + if ((format as any).cupLevelLimit) { throw new Error(`cupLevelLimit.range[0], cupLevelLimit.range[1], cupLevelLimit.total are now rules, respectively: "Min Level = NUMBER", "Max Level = NUMBER", and "Max Total Level = NUMBER"`); } @@ -341,6 +403,8 @@ export class Format extends BasicEffect implements Readonly { readonly rated: boolean | string; /** Game type. */ readonly gameType: GameType; + /** Number of players, based on game type, for convenience */ + readonly playerCount: 2 | 4; /** List of rule names. */ readonly ruleset: string[]; /** @@ -379,14 +443,16 @@ export class Format extends BasicEffect implements Readonly { declare readonly actions?: ModdedBattleActions; declare readonly challengeShow?: boolean; declare readonly searchShow?: boolean; + declare readonly bestOfDefault?: boolean; + declare readonly teraPreviewDefault?: boolean; declare readonly threads?: string[]; - declare readonly timer?: Partial; declare readonly tournamentShow?: boolean; declare readonly checkCanLearn?: ( this: TeamValidator, move: Move, species: Species, setSources: PokemonSources, set: PokemonSet ) => string | null; declare readonly getEvoFamily?: (this: Format, speciesid: string) => ID; declare readonly getSharedPower?: (this: Format, pokemon: Pokemon) => Set; + declare readonly getSharedItems?: (this: Format, pokemon: Pokemon) => Set; declare readonly onChangeSet?: ( this: TeamValidator, set: PokemonSet, format: Format, setHas?: AnyObject, teamHas?: AnyObject ) => string[] | void; @@ -412,11 +478,9 @@ export class Format extends BasicEffect implements Readonly { constructor(data: AnyObject) { super(data); - // eslint-disable-next-line @typescript-eslint/no-this-alias - data = this; this.mod = Utils.getString(data.mod) || 'gen9'; - this.effectType = Utils.getString(data.effectType) as FormatEffectType || 'Format'; + this.effectType = Utils.getString(data.effectType) as FormatEffectType || 'Condition'; this.debug = !!data.debug; this.rated = (typeof data.rated === 'string' ? data.rated : data.rated !== false); this.gameType = data.gameType || 'singles'; @@ -429,6 +493,8 @@ export class Format extends BasicEffect implements Readonly { this.ruleTable = null; this.onBegin = data.onBegin || undefined; this.noLog = !!data.noLog; + this.playerCount = (this.gameType === 'multi' || this.gameType === 'freeforall' ? 4 : 2); + assignMissingFields(this, data); } } @@ -541,6 +607,8 @@ export class DexFormats { if (format.challengeShow === undefined) format.challengeShow = true; if (format.searchShow === undefined) format.searchShow = true; if (format.tournamentShow === undefined) format.tournamentShow = true; + if (format.bestOfDefault === undefined) format.bestOfDefault = false; + if (format.teraPreviewDefault === undefined) format.teraPreviewDefault = false; if (format.mod === undefined) format.mod = 'gen9'; if (!this.dex.dexes[format.mod]) throw new Error(`Format "${format.name}" requires nonexistent mod: '${format.mod}'`); @@ -559,7 +627,7 @@ export class DexFormats { validate(name: string) { const [formatName, customRulesString] = name.split('@@@', 2); const format = this.get(formatName); - if (!format.exists) throw new Error(`Unrecognized format "${formatName}"`); + if (format.effectType !== 'Format') throw new Error(`Unrecognized format "${formatName}"`); if (!customRulesString) return format.id; const ruleTable = this.getRuleTable(format); const customRules = customRulesString.split(',').map(rule => { @@ -627,6 +695,9 @@ export class DexFormats { getRuleTable(format: Format, depth = 1, repeals?: Map): RuleTable { if (format.ruleTable && !repeals) return format.ruleTable; + if (format.name.length > 50) { + throw new Error(`Format "${format.name}" has a name longer than 50 characters`); + } if (depth === 1) { const dex = this.dex.mod(format.mod); if (dex !== this.dex) { @@ -651,9 +722,6 @@ export class DexFormats { if (format.checkCanLearn) { ruleTable.checkCanLearn = [format.checkCanLearn, format.name]; } - if (format.timer) { - ruleTable.timer = [format.timer, format.name]; - } // apply rule repeals before other rules // repeals is a ruleid:depth map (positive: unused, negative: used) @@ -725,6 +793,7 @@ export class DexFormats { throw new Error(`In rule "${ruleSpec}", "${value}" must be positive.`); } } + const oldValue = ruleTable.valueRules.get(subformat.id); if (oldValue === value) { throw new Error(`Rule "${ruleSpec}" is redundant with existing rule "${subformat.id}=${value}"${ruleTable.blame(subformat.id)}.`); @@ -800,14 +869,6 @@ export class DexFormats { } ruleTable.checkCanLearn = subRuleTable.checkCanLearn; } - if (subRuleTable.timer) { - if (ruleTable.timer) { - throw new Error( - `"${format.name}" has conflicting timer validation rules from "${ruleTable.timer[1]}" and "${subRuleTable.timer[1]}"` - ); - } - ruleTable.timer = subRuleTable.timer; - } } ruleTable.getTagRules(); @@ -924,8 +985,8 @@ export class DexFormats { } if (table.hasOwnProperty(id)) { if (matchType === 'pokemon') { - const species: Species = table[id] as Species; - if ((species.otherFormes || species.cosmeticFormes) && ruleid !== species.id + toID(species.baseForme)) { + const species = table[id] as SpeciesData; + if ((species.otherFormes || species.cosmeticFormes) && ruleid === id) { matches.push('basepokemon:' + id); continue; } diff --git a/sim/dex-items.ts b/sim/dex-items.ts index fe44d43aa8b6..b9022d65d8f2 100644 --- a/sim/dex-items.ts +++ b/sim/dex-items.ts @@ -1,5 +1,6 @@ -import {PokemonEventMethods} from './dex-conditions'; -import {BasicEffect, toID} from './dex-data'; +import type {PokemonEventMethods, ConditionData} from './dex-conditions'; +import {assignMissingFields, BasicEffect, toID} from './dex-data'; +import {Utils} from '../lib'; interface FlingData { basePower: number; @@ -17,6 +18,9 @@ export type ModdedItemData = ItemData | Partial> & { onCustap?: (this: Battle, pokemon: Pokemon) => void, }; +export interface ItemDataTable {[itemid: IDEntry]: ItemData} +export interface ModdedItemDataTable {[itemid: IDEntry]: ModdedItemData} + export class Item extends BasicEffect implements Readonly { declare readonly effectType: 'Item'; @@ -103,8 +107,6 @@ export class Item extends BasicEffect implements Readonly { constructor(data: AnyObject) { super(data); - // eslint-disable-next-line @typescript-eslint/no-this-alias - data = this; this.fullname = `item: ${this.name}`; this.effectType = 'Item'; @@ -148,9 +150,13 @@ export class Item extends BasicEffect implements Readonly { if (this.onDrive) this.fling = {basePower: 70}; if (this.megaStone) this.fling = {basePower: 80}; if (this.onMemory) this.fling = {basePower: 50}; + + assignMissingFields(this, data); } } +const EMPTY_ITEM = Utils.deepFreeze(new Item({name: '', exists: false})); + export class DexItems { readonly dex: ModdedDex; readonly itemCache = new Map(); @@ -162,13 +168,12 @@ export class DexItems { get(name?: string | Item): Item { if (name && typeof name !== 'string') return name; - - name = (name || '').trim(); - const id = toID(name); + const id = name ? toID(name.trim()) : '' as ID; return this.getByID(id); } getByID(id: ID): Item { + if (id === '') return EMPTY_ITEM; let item = this.itemCache.get(id); if (item) return item; if (this.dex.data.Aliases.hasOwnProperty(id)) { @@ -194,15 +199,23 @@ export class DexItems { if (item.gen > this.dex.gen) { (item as any).isNonstandard = 'Future'; } - // hack for allowing mega evolution in LGPE - if (this.dex.currentMod === 'gen7letsgo' && !item.isNonstandard && !item.megaStone) { - (item as any).isNonstandard = 'Past'; + if (this.dex.parentMod) { + // If this item is exactly identical to parentMod's item, reuse parentMod's copy + const parent = this.dex.mod(this.dex.parentMod); + if (itemData === parent.data.Items[id]) { + const parentItem = parent.items.getByID(id); + if (item.isNonstandard === parentItem.isNonstandard && + item.desc === parentItem.desc && + item.shortDesc === parentItem.shortDesc) { + item = parentItem; + } + } } } else { item = new Item({name: id, exists: false}); } - if (item.exists) this.itemCache.set(id, item); + if (item.exists) this.itemCache.set(id, this.dex.deepFreeze(item)); return item; } @@ -212,7 +225,7 @@ export class DexItems { for (const id in this.dex.data.Items) { items.push(this.getByID(id as ID)); } - this.allCache = items; + this.allCache = Object.freeze(items); return this.allCache; } } diff --git a/sim/dex-moves.ts b/sim/dex-moves.ts index 0dfd001ba16f..370efb45589e 100644 --- a/sim/dex-moves.ts +++ b/sim/dex-moves.ts @@ -1,5 +1,6 @@ import {Utils} from '../lib'; -import {BasicEffect, toID} from './dex-data'; +import type {ConditionData} from './dex-conditions'; +import {assignMissingFields, BasicEffect, toID} from './dex-data'; /** * Describes the acceptable target(s) of a move. @@ -29,6 +30,7 @@ interface MoveFlags { bypasssub?: 1; // Ignores a target's substitute. bite?: 1; // Power is multiplied by 1.5 when used by a Pokemon with the Ability Strong Jaw. bullet?: 1; // Has no effect on Pokemon with the Ability Bulletproof. + cantusetwice?: 1; // The user cannot select this move after a previous successful use. charge?: 1; // The user is unable to make a move between turns. contact?: 1; // Makes contact. dance?: 1; // When used by a Pokemon, other Pokemon with the Ability Dancer can attempt to execute the same move. @@ -42,11 +44,13 @@ interface MoveFlags { futuremove?: 1; // Targets a slot, and in 2 turns damages that slot. gravity?: 1; // Prevented from being executed or selected during Gravity's effect. heal?: 1; // Prevented from being executed or selected during Heal Block's effect. + metronome?: 1; // Can be selected by Metronome. mirror?: 1; // Can be copied by Mirror Move. mustpressure?: 1; // Additional PP is deducted due to Pressure when it ordinarily would not. noassist?: 1; // Cannot be selected by Assist. nonsky?: 1; // Prevented from being executed or selected in a Sky Battle. noparentalbond?: 1; // Cannot be made to hit twice via Parental Bond. + nosketch?: 1; // Cannot be copied by Sketch. nosleeptalk?: 1; // Cannot be selected by Sleep Talk. pledgecombo?: 1; // Gems will not activate. Cannot be redirected by Storm Drain / Lightning Rod. powder?: 1; // Has no effect on Pokemon which are Grass-type, have the Ability Overcoat, or hold Safety Goggles. @@ -169,10 +173,10 @@ export interface MoveData extends EffectData, MoveEventMethods, HitEffect { * ID of the Z-Crystal that calls the move. * `true` for Z-Powered status moves like Z-Encore. */ - isZ?: boolean | string; + isZ?: boolean | IDEntry; zMove?: { basePower?: number, - effect?: string, + effect?: IDEntry, boost?: SparseBoostsTable, }; @@ -180,7 +184,7 @@ export interface MoveData extends EffectData, MoveEventMethods, HitEffect { // ------------- /** * `true` for Max moves like Max Airstream. If its a G-Max moves, this is - * the species ID of the Gigantamax Pokemon that can use this G-Max move. + * the species name of the Gigantamax Pokemon that can use this G-Max move. */ isMax?: boolean | string; maxMove?: { @@ -189,7 +193,7 @@ export interface MoveData extends EffectData, MoveEventMethods, HitEffect { // Hit effects // ----------- - ohko?: boolean | string; + ohko?: boolean | 'Ice'; thawsTarget?: boolean; heal?: number[] | null; forceSwitch?: boolean; @@ -241,17 +245,17 @@ export interface MoveData extends EffectData, MoveEventMethods, HitEffect { ignoreAccuracy?: boolean; ignoreDefensive?: boolean; ignoreEvasion?: boolean; - ignoreImmunity?: boolean | {[k: string]: boolean}; + ignoreImmunity?: boolean | {[typeName: string]: boolean}; ignoreNegativeOffensive?: boolean; ignoreOffensive?: boolean; ignorePositiveDefensive?: boolean; ignorePositiveEvasion?: boolean; multiaccuracy?: boolean; multihit?: number | number[]; - multihitType?: string; + multihitType?: 'parentalbond'; noDamageVariance?: boolean; - nonGhostTarget?: string; - pressureTarget?: string; + nonGhostTarget?: MoveTarget; + pressureTarget?: MoveTarget; spreadModifier?: number; sleepUsable?: boolean; /** @@ -264,15 +268,14 @@ export interface MoveData extends EffectData, MoveEventMethods, HitEffect { */ tracksTarget?: boolean; willCrit?: boolean; + callsMove?: boolean; // Mechanics flags // --------------- hasCrashDamage?: boolean; isConfusionSelfHit?: boolean; - noMetronome?: string[]; - noSketch?: boolean; stallingMove?: boolean; - baseMove?: string; + baseMove?: ID; } export type ModdedMoveData = MoveData | Partial> & { @@ -284,6 +287,9 @@ export type ModdedMoveData = MoveData | Partial> & { gen?: number, }; +export interface MoveDataTable {[moveid: IDEntry]: MoveData} +export interface ModdedMoveDataTable {[moveid: IDEntry]: ModdedMoveData} + export interface Move extends Readonly { readonly effectType: 'Move'; } @@ -303,8 +309,7 @@ interface MoveHitData { } type MutableMove = BasicEffect & MoveData; -type RuinableMove = {[k in `ruined${'Atk' | 'Def' | 'SpA' | 'SpD'}`]?: Pokemon;}; -export interface ActiveMove extends MutableMove, RuinableMove { +export interface ActiveMove extends MutableMove { readonly name: string; readonly effectType: 'Move'; readonly id: ID; @@ -330,12 +335,17 @@ export interface ActiveMove extends MutableMove, RuinableMove { selfDropped?: boolean; selfSwitch?: 'copyvolatile' | 'shedtail' | boolean; spreadHit?: boolean; - stab?: number; statusRoll?: string; + /** Hardcode to make Tera Stellar STAB work with multihit moves */ + stellarBoosted?: boolean; totalDamage?: number | false; typeChangerBoosted?: Effect; willChangeForme?: boolean; infiltrates?: boolean; + ruinedAtk?: Pokemon; + ruinedDef?: Pokemon; + ruinedSpA?: Pokemon; + ruinedSpD?: Pokemon; /** * Has this move been boosted by a Z-crystal or used by a Dynamax Pokemon? Usually the same as @@ -361,7 +371,7 @@ export class DataMove extends BasicEffect implements Readonly= 140) { @@ -604,9 +609,12 @@ export class DataMove extends BasicEffect implements Readonly(); @@ -618,13 +626,12 @@ export class DexMoves { get(name?: string | Move): Move { if (name && typeof name !== 'string') return name; - - name = (name || '').trim(); - const id = toID(name); + const id = name ? toID(name.trim()) : '' as ID; return this.getByID(id); } getByID(id: ID): Move { + if (id === '') return EMPTY_MOVE; let move = this.moveCache.get(id); if (move) return move; if (this.dex.data.Aliases.hasOwnProperty(id)) { @@ -648,12 +655,24 @@ export class DexMoves { if (move.gen > this.dex.gen) { (move as any).isNonstandard = 'Future'; } + if (this.dex.parentMod) { + // If move is exactly identical to parentMod's move, reuse parentMod's copy + const parentMod = this.dex.mod(this.dex.parentMod); + if (moveData === parentMod.data.Moves[id]) { + const parentMove = parentMod.moves.getByID(id); + if (move.isNonstandard === parentMove.isNonstandard && + move.desc === parentMove.desc && + move.shortDesc === parentMove.shortDesc) { + move = parentMove; + } + } + } } else { move = new DataMove({ name: id, exists: false, }); } - if (move.exists) this.moveCache.set(id, move); + if (move.exists) this.moveCache.set(id, this.dex.deepFreeze(move)); return move; } @@ -663,7 +682,7 @@ export class DexMoves { for (const id in this.dex.data.Moves) { moves.push(this.getByID(id as ID)); } - this.allCache = moves; + this.allCache = Object.freeze(moves); return this.allCache; } } diff --git a/sim/dex-species.ts b/sim/dex-species.ts index 8bcc15735b0d..660529d66d9e 100644 --- a/sim/dex-species.ts +++ b/sim/dex-species.ts @@ -1,4 +1,6 @@ -import {toID, BasicEffect} from './dex-data'; +import {assignMissingFields, BasicEffect, toID} from './dex-data'; +import {Utils} from '../lib'; +import {isDeepStrictEqual} from 'node:util'; interface SpeciesAbility { 0: string; @@ -7,7 +9,7 @@ interface SpeciesAbility { S?: string; } -type SpeciesTag = "Mythical" | "Restricted Legendary" | "Sub-Legendary" | "Paradox"; +type SpeciesTag = "Mythical" | "Restricted Legendary" | "Sub-Legendary" | "Ultra Beast" | "Paradox"; export interface SpeciesData extends Partial { name: string; @@ -34,7 +36,7 @@ export interface SpeciesFormatsData { export type ModdedSpeciesFormatsData = SpeciesFormatsData & {inherit?: true}; export interface LearnsetData { - learnset?: {[moveid: string]: MoveSource[]}; + learnset?: {[moveid: IDEntry]: MoveSource[]}; eventData?: EventInfo[]; eventOnly?: boolean; encounters?: EventInfo[]; @@ -43,6 +45,47 @@ export interface LearnsetData { export type ModdedLearnsetData = LearnsetData & {inherit?: true}; +export interface PokemonGoData { + encounters?: string[]; + LGPERestrictiveMoves?: {[moveid: string]: number | null}; +} + +export interface SpeciesDataTable {[speciesid: IDEntry]: SpeciesData} +export interface ModdedSpeciesDataTable {[speciesid: IDEntry]: ModdedSpeciesData} +export interface SpeciesFormatsDataTable {[speciesid: IDEntry]: SpeciesFormatsData} +export interface ModdedSpeciesFormatsDataTable {[speciesid: IDEntry]: ModdedSpeciesFormatsData} +export interface LearnsetDataTable {[speciesid: IDEntry]: LearnsetData} +export interface ModdedLearnsetDataTable {[speciesid: IDEntry]: ModdedLearnsetData} +export interface PokemonGoDataTable {[speciesid: IDEntry]: PokemonGoData} + +/** + * Describes a possible way to get a move onto a pokemon. + * + * First character is a generation number, 1-9. + * Second character is a source ID, one of: + * + * - M = TM/HM + * - T = tutor + * - L = start or level-up, 3rd char+ is the level + * - R = restricted (special moves like Rotom moves) + * - E = egg + * - D = Dream World, only 5D is valid + * - S = event, 3rd char+ is the index in .eventData + * - V = Virtual Console or Let's Go transfer, only 7V/8V is valid + * - C = NOT A REAL SOURCE, see note, only 3C/4C is valid + * + * C marks certain moves learned by a pokemon's prevo. It's used to + * work around the chainbreeding checker's shortcuts for performance; + * it lets the pokemon be a valid father for teaching the move, but + * is otherwise ignored by the learnset checker (which will actually + * check prevos for compatibility). + */ +export type MoveSource = `${ + 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 +}${ + 'M' | 'T' | 'L' | 'R' | 'E' | 'D' | 'S' | 'V' | 'C' +}${string}`; + export class Species extends BasicEffect implements Readonly { declare readonly effectType: 'Pokemon'; /** @@ -170,6 +213,8 @@ export class Species extends BasicEffect implements Readonly= 1) { if (this.num >= 906 || this.forme.includes('Paldea')) { @@ -300,9 +352,16 @@ export class Species extends BasicEffect implements Readonly | undefined = this.speciesCache.get(id); if (species) return species; @@ -383,13 +448,13 @@ export class DexSpecies { } } } - this.speciesCache.set(id, species); + this.speciesCache.set(id, this.dex.deepFreeze(species)); return species; } if (!this.dex.data.Pokedex.hasOwnProperty(id)) { let aliasTo = ''; - const formeNames: {[k: string]: string[]} = { + const formeNames: {[k: IDEntry]: IDEntry[]} = { alola: ['a', 'alola', 'alolan'], galar: ['g', 'galar', 'galarian'], hisui: ['h', 'hisui', 'hisuian'], @@ -399,7 +464,7 @@ export class DexSpecies { }; for (const forme in formeNames) { let pokeName = ''; - for (const i of formeNames[forme]) { + for (const i of formeNames[forme as ID]) { if (id.startsWith(i)) { pokeName = id.slice(i.length); } else if (id.endsWith(i)) { @@ -431,9 +496,10 @@ export class DexSpecies { // Inherit any statuses from the base species (Arceus, Silvally). const baseSpeciesStatuses = this.dex.data.Conditions[toID(species.baseSpecies)]; if (baseSpeciesStatuses !== undefined) { - let key: keyof EffectData; - for (key in baseSpeciesStatuses) { - if (!(key in species)) (species as any)[key] = baseSpeciesStatuses[key]; + for (const key in baseSpeciesStatuses) { + if (!(key in species)) { + (species as any)[key] = (baseSpeciesStatuses as any)[key]; + } } } if (!species.tier && !species.doublesTier && !species.natDexTier && species.baseSpecies !== species.name) { @@ -494,40 +560,214 @@ export class DexSpecies { species.canHatch = species.canHatch || (!['Ditto', 'Undiscovered'].includes(species.eggGroups[0]) && !species.prevo && species.name !== 'Manaphy'); if (this.dex.gen === 1) species.bst -= species.baseStats.spd; - if (this.dex.gen < 5) delete species.abilities['H']; + if (this.dex.gen < 5) { + species.abilities = this.dex.deepClone(species.abilities); + delete species.abilities['H']; + } if (this.dex.gen === 3 && this.dex.abilities.get(species.abilities['1']).gen === 4) delete species.abilities['1']; + + if (this.dex.parentMod) { + // if this species is exactly identical to parentMod's species, reuse parentMod's copy + const parentMod = this.dex.mod(this.dex.parentMod); + if (this.dex.data.Pokedex[id] === parentMod.data.Pokedex[id]) { + const parentSpecies = parentMod.species.getByID(id); + // checking tier cheaply filters out some non-matches. + // The construction logic is very complex so we ultimately need to do a deep equality check + if (species.tier === parentSpecies.tier && isDeepStrictEqual(species, parentSpecies)) { + species = parentSpecies; + } + } + } } else { species = new Species({ id, name: id, exists: false, tier: 'Illegal', doublesTier: 'Illegal', natDexTier: 'Illegal', isNonstandard: 'Custom', }); } - if (species.exists) this.speciesCache.set(id, species); + if (species.exists) this.speciesCache.set(id, this.dex.deepFreeze(species)); return species; } - getLearnset(id: ID): Learnset['learnset'] { - return this.getLearnsetData(id).learnset; + /** + * @param id the ID of the species the move pool belongs to + * @param isNatDex + * @returns a Set of IDs of the full valid movepool of the given species for the current generation/mod. + * Note that inter-move incompatibilities, such as those from exclusive events, are not considered and all moves are + * lumped together. However, Necturna and Necturine's Sketchable moves are omitted from this pool, as their fundamental + * incompatibility with each other is essential to the nature of those species. + */ + getMovePool(id: ID, isNatDex = false): Set { + let eggMovesOnly = false; + let maxGen = this.dex.gen; + const gen3HMMoves = ['cut', 'fly', 'surf', 'strength', 'flash', 'rocksmash', 'waterfall', 'dive']; + const gen4HMMoves = ['cut', 'fly', 'surf', 'strength', 'rocksmash', 'waterfall', 'rockclimb']; + const movePool = new Set(); + for (const {species, learnset} of this.getFullLearnset(id)) { + if (!eggMovesOnly) eggMovesOnly = this.eggMovesOnly(species, this.get(id)); + for (const moveid in learnset) { + if (species.isNonstandard !== 'CAP') { + if (gen4HMMoves.includes(moveid) && this.dex.gen >= 5) { + if (!learnset[moveid].some(source => parseInt(source.charAt(0)) >= 5 && + parseInt(source.charAt(0)) <= this.dex.gen)) continue; + } else if (gen3HMMoves.includes(moveid) && this.dex.gen >= 4 && + !learnset[moveid].some(source => parseInt(source.charAt(0)) >= 4 && + parseInt(source.charAt(0)) <= this.dex.gen)) { + continue; + } + } + if (eggMovesOnly) { + if (learnset[moveid].some(source => source.startsWith('9E'))) { + movePool.add(moveid as ID); + } + } else if (maxGen >= 9) { + // Pokemon Home now strips learnsets on withdrawal + if (isNatDex || learnset[moveid].some(source => source.startsWith('9'))) { + movePool.add(moveid as ID); + } + } else { + if (learnset[moveid].some(source => parseInt(source.charAt(0)) <= maxGen)) { + movePool.add(moveid as ID); + } + } + if (moveid === 'sketch' && movePool.has('sketch' as ID)) { + if (species.isNonstandard === 'CAP') { + // Given what this function is generally used for, adding all sketchable moves to Necturna and Necturine's + // movepools would be undesirable as it would be impossible to tell sketched moves apart from normal ones + // so any code calling this one will need to get and handle those moves separately themselves + continue; + } + // Smeargle time + // A few moves like Dark Void were made unSketchable in a generation later than when they were introduced + // However, this has only happened in a gen where transfer moves are unavailable + const sketchables = this.dex.moves.all().filter(m => !m.flags['nosketch'] && !m.isNonstandard); + for (const move of sketchables) { + movePool.add(move.id); + } + // Smeargle has some event moves; they're all sketchable, so let's just skip them + break; + } + } + if (species.evoRegion) { + // species can only evolve in this gen, so prevo can't have any moves + // from after that gen + if (this.dex.gen >= 9) eggMovesOnly = true; + if (this.dex.gen === 8 && species.evoRegion === 'Alola') maxGen = 7; + } + } + return movePool; } + getFullLearnset(id: ID): (Learnset & {learnset: NonNullable})[] { + const originalSpecies = this.get(id); + let species: Species | null = originalSpecies; + const out: (Learnset & {learnset: NonNullable})[] = []; + const alreadyChecked: {[k: string]: boolean} = {}; + + while (species?.name && !alreadyChecked[species.id]) { + alreadyChecked[species.id] = true; + const learnset = this.getLearnsetData(species.id); + if (learnset.learnset) { + out.push(learnset as any); + species = this.learnsetParent(species, true); + continue; + } + + // no learnset + if ((species.changesFrom || species.baseSpecies) !== species.name) { + // forme without its own learnset + species = this.get(species.changesFrom || species.baseSpecies); + // warning: formes with their own learnset, like Wormadam, should NOT + // inherit from their base forme unless they're freely switchable + continue; + } + if (species.isNonstandard) { + // It's normal for a nonstandard species not to have learnset data + + // Formats should replace the `Obtainable Moves` rule if they want to + // allow pokemon without learnsets. + return out; + } + if (species.prevo && this.getLearnsetData(toID(species.prevo)).learnset) { + species = this.get(toID(species.prevo)); + continue; + } + + // should never happen + throw new Error(`Species with no learnset data: ${species.id}`); + } + + return out; + } + + learnsetParent(species: Species, checkingMoves = false) { + // Own Tempo Rockruff and Battle Bond Greninja are special event formes + // that are visually indistinguishable from their base forme but have + // different learnsets. To prevent a leak, we make them show up as their + // base forme, but hardcode their learnsets into Rockruff-Dusk and + // Greninja-Ash + if (['Gastrodon', 'Pumpkaboo', 'Sinistea', 'Tatsugiri'].includes(species.baseSpecies) && species.forme) { + return this.get(species.baseSpecies); + } else if (species.name === 'Lycanroc-Dusk') { + return this.get('Rockruff-Dusk'); + } else if (species.prevo) { + // there used to be a check for Hidden Ability here, but apparently it's unnecessary + // Shed Skin Pupitar can definitely evolve into Unnerve Tyranitar + species = this.get(species.prevo); + if (species.gen > Math.max(2, this.dex.gen)) return null; + return species; + } else if (species.changesFrom && species.baseSpecies !== 'Kyurem') { + // For Pokemon like Rotom and Necrozma whose movesets are extensions are their base formes + return this.get(species.changesFrom); + } else if ( + checkingMoves && !species.prevo && species.baseSpecies && this.get(species.baseSpecies).prevo + ) { + // For Pokemon like Cap Pikachu, who should be able to have egg moves in Gen 9 + let baseEvo = this.get(species.baseSpecies); + while (baseEvo.prevo) { + baseEvo = this.get(baseEvo.prevo); + } + return baseEvo; + } + return null; + } + + /** + * Gets the raw learnset data for the species. + * + * In practice, if you're trying to figure out what moves a pokemon learns, + * you probably want to `getFullLearnset` or `getMovePool` instead. + */ getLearnsetData(id: ID): Learnset { let learnsetData = this.learnsetCache.get(id); if (learnsetData) return learnsetData; if (!this.dex.data.Learnsets.hasOwnProperty(id)) { - return new Learnset({exists: false}); + return new Learnset({exists: false}, this.get(id)); } - learnsetData = new Learnset(this.dex.data.Learnsets[id]); - this.learnsetCache.set(id, learnsetData); + learnsetData = new Learnset(this.dex.data.Learnsets[id], this.get(id)); + this.learnsetCache.set(id, this.dex.deepFreeze(learnsetData)); return learnsetData; } + getPokemonGoData(id: ID): PokemonGoData { + return this.dex.data.PokemonGoData[id]; + } + all(): readonly Species[] { if (this.allCache) return this.allCache; const species = []; for (const id in this.dex.data.Pokedex) { species.push(this.getByID(id as ID)); } - this.allCache = species; + this.allCache = Object.freeze(species); return this.allCache; } + + eggMovesOnly(child: Species, father: Species | null) { + if (child.baseSpecies === father?.baseSpecies) return false; + while (father) { + if (father.name === child.name) return false; + father = this.learnsetParent(father); + } + return true; + } } diff --git a/sim/dex.ts b/sim/dex.ts index 4e186e3e62f0..4fdfa23ca817 100644 --- a/sim/dex.ts +++ b/sim/dex.ts @@ -46,10 +46,10 @@ const dexes: {[mod: string]: ModdedDex} = Object.create(null); type DataType = 'Abilities' | 'Rulesets' | 'FormatsData' | 'Items' | 'Learnsets' | 'Moves' | - 'Natures' | 'Pokedex' | 'Scripts' | 'Conditions' | 'TypeChart'; + 'Natures' | 'Pokedex' | 'Scripts' | 'Conditions' | 'TypeChart' | 'PokemonGoData'; const DATA_TYPES: (DataType | 'Aliases')[] = [ 'Abilities', 'Rulesets', 'FormatsData', 'Items', 'Learnsets', 'Moves', - 'Natures', 'Pokedex', 'Scripts', 'Conditions', 'TypeChart', + 'Natures', 'Pokedex', 'Scripts', 'Conditions', 'TypeChart', 'PokemonGoData', ]; const DATA_FILES = { @@ -62,28 +62,30 @@ const DATA_FILES = { Moves: 'moves', Natures: 'natures', Pokedex: 'pokedex', + PokemonGoData: 'pokemongo', Scripts: 'scripts', Conditions: 'conditions', TypeChart: 'typechart', }; -interface DexTable { - [key: string]: T; -} +/** Unfortunately we do for..in too much to want to deal with the casts */ +export interface DexTable {[id: string]: T} +export interface AliasesTable {[id: IDEntry]: string} interface DexTableData { - Abilities: DexTable; - Aliases: {[id: string]: string}; - Rulesets: DexTable; - FormatsData: DexTable; - Items: DexTable; - Learnsets: DexTable; - Moves: DexTable; - Natures: DexTable; - Pokedex: DexTable; + Abilities: DexTable; + Aliases: DexTable; + Rulesets: DexTable; + Items: DexTable; + Learnsets: DexTable; + Moves: DexTable; + Natures: DexTable; + Pokedex: DexTable; + FormatsData: DexTable; + PokemonGoData: DexTable; Scripts: DexTable; - Conditions: DexTable; - TypeChart: DexTable; + Conditions: DexTable; + TypeChart: DexTable; } interface TextTableData { Abilities: DexTable; @@ -120,6 +122,8 @@ export class ModdedDex { textCache: TextTableData | null; deepClone = Utils.deepClone; + deepFreeze = Utils.deepFreeze; + Multiset = Utils.Multiset; readonly formats: DexFormats; readonly abilities: DexAbilities; @@ -161,7 +165,7 @@ export class ModdedDex { mod(mod: string | undefined): ModdedDex { if (!dexes['base'].modsLoaded) dexes['base'].includeMods(); - return dexes[mod || 'base']; + return dexes[mod || 'base'].includeData(); } forGen(gen: number) { @@ -313,7 +317,7 @@ export class ModdedDex { return moveCopy; } - getHiddenPower(ivs: AnyObject) { + getHiddenPower(ivs: StatsTable) { const hpTypes = [ 'Fighting', 'Flying', 'Poison', 'Ground', 'Rock', 'Bug', 'Ghost', 'Steel', 'Fire', 'Water', 'Grass', 'Electric', 'Psychic', 'Ice', 'Dragon', 'Dark', @@ -338,8 +342,8 @@ export class ModdedDex { let hpPowerX = 0; let i = 1; for (const s in stats) { - hpTypeX += i * (ivs[s] % 2); - hpPowerX += i * (tr(ivs[s] / 2) % 2); + hpTypeX += i * (ivs[s as StatID] % 2); + hpPowerX += i * (tr(ivs[s as StatID] / 2) % 2); i *= 2; } return { @@ -360,21 +364,23 @@ export class ModdedDex { } dataSearch( - target: string, searchIn?: ('Pokedex' | 'Moves' | 'Abilities' | 'Items' | 'Natures')[] | null, isInexact?: boolean + target: string, + searchIn?: ('Pokedex' | 'Moves' | 'Abilities' | 'Items' | 'Natures' | 'TypeChart')[] | null, + isInexact?: boolean ): AnyObject[] | null { if (!target) return null; searchIn = searchIn || ['Pokedex', 'Moves', 'Abilities', 'Items', 'Natures']; const searchObjects = { - Pokedex: 'species', Moves: 'moves', Abilities: 'abilities', Items: 'items', Natures: 'natures', + Pokedex: 'species', Moves: 'moves', Abilities: 'abilities', Items: 'items', Natures: 'natures', TypeChart: 'types', } as const; const searchTypes = { - Pokedex: 'pokemon', Moves: 'move', Abilities: 'ability', Items: 'item', Natures: 'nature', + Pokedex: 'pokemon', Moves: 'move', Abilities: 'ability', Items: 'item', Natures: 'nature', TypeChart: 'type', } as const; let searchResults: AnyObject[] | null = []; for (const table of searchIn) { - const res: AnyObject = this[searchObjects[table]].get(target); + const res = this[searchObjects[table]].get(target); if (res.exists && res.gen <= this.gen) { searchResults.push({ isInexact, @@ -396,14 +402,14 @@ export class ModdedDex { maxLd = 2; } searchResults = null; - for (const table of [...searchIn, 'Aliases'] as DataType[]) { - const searchObj = this.data[table]; + for (const table of [...searchIn, 'Aliases'] as const) { + const searchObj = this.data[table] as DexTable; if (!searchObj) continue; for (const j in searchObj) { const ld = Utils.levenshtein(cmpTarget, j, maxLd); if (ld <= maxLd) { - const word = (searchObj[j] as DexTable).name || (searchObj[j] as DexTable).species || j; + const word = searchObj[j].name || j; const results = this.dataSearch(word, searchIn, word); if (results) { searchResults = results; @@ -416,7 +422,7 @@ export class ModdedDex { return searchResults; } - loadDataFile(basePath: string, dataType: DataType | 'Aliases'): AnyObject { + loadDataFile(basePath: string, dataType: DataType | 'Aliases'): AnyObject | void { try { const filePath = basePath + DATA_FILES[dataType]; const dataObject = require(filePath); @@ -432,7 +438,6 @@ export class ModdedDex { throw e; } } - return {}; } loadTextFile( @@ -484,7 +489,9 @@ export class ModdedDex { const basePath = this.dataDir + '/'; - const Scripts = this.loadDataFile(basePath, 'Scripts'); + const Scripts = this.loadDataFile(basePath, 'Scripts') || {}; + // We want to inherit most of Scripts but not this. + const init = Scripts.init; this.parentMod = this.isBase ? '' : (Scripts.inherit || 'base'); let parentDex; @@ -502,17 +509,20 @@ export class ModdedDex { this.includeFormats(); } for (const dataType of DATA_TYPES.concat('Aliases')) { - const BattleData = this.loadDataFile(basePath, dataType); - if (BattleData !== dataCache[dataType]) dataCache[dataType] = Object.assign(BattleData, dataCache[dataType]); + dataCache[dataType] = this.loadDataFile(basePath, dataType); if (dataType === 'Rulesets' && !parentDex) { for (const format of this.formats.all()) { - BattleData[format.id] = {...format, ruleTable: null}; + dataCache.Rulesets[format.id] = {...format, ruleTable: null}; } } } if (parentDex) { for (const dataType of DATA_TYPES) { const parentTypedData: DexTable = parentDex.data[dataType]; + if (!dataCache[dataType] && !init) { + dataCache[dataType] = parentTypedData; + continue; + } const childTypedData: DexTable = dataCache[dataType] || (dataCache[dataType] = {}); for (const entryId in parentTypedData) { if (childTypedData[entryId] === null) { @@ -520,23 +530,14 @@ export class ModdedDex { delete childTypedData[entryId]; } else if (!(entryId in childTypedData)) { // If it doesn't exist it's inherited from the parent data - if (dataType === 'Pokedex') { - // Pokedex entries can be modified too many different ways - // e.g. inheriting different formats-data/learnsets - childTypedData[entryId] = this.deepClone(parentTypedData[entryId]); - } else { - childTypedData[entryId] = parentTypedData[entryId]; - } + childTypedData[entryId] = parentTypedData[entryId]; } else if (childTypedData[entryId] && childTypedData[entryId].inherit) { // {inherit: true} can be used to modify only parts of the parent data, // instead of overwriting entirely delete childTypedData[entryId].inherit; // Merge parent into children entry, preserving existing childs' properties. - for (const key in parentTypedData[entryId]) { - if (key in childTypedData[entryId]) continue; - childTypedData[entryId][key] = parentTypedData[entryId][key]; - } + childTypedData[entryId] = {...parentTypedData[entryId], ...childTypedData[entryId]}; } } } @@ -549,7 +550,7 @@ export class ModdedDex { this.dataCache = dataCache as DexTableData; // Execute initialization script. - if (Scripts.init) Scripts.init.call(this); + if (init) init.call(this); return this.dataCache; } diff --git a/sim/field.ts b/sim/field.ts index 2e0e975b373c..067c92d1b02e 100644 --- a/sim/field.ts +++ b/sim/field.ts @@ -106,7 +106,8 @@ export class Field { suppressingWeather() { for (const side of this.battle.sides) { for (const pokemon of side.active) { - if (pokemon && !pokemon.fainted && !pokemon.ignoringAbility() && pokemon.getAbility().suppressWeather) { + if (pokemon && !pokemon.fainted && !pokemon.ignoringAbility() && + pokemon.getAbility().suppressWeather && !pokemon.abilityState.ending) { return true; } } diff --git a/sim/global-types.ts b/sim/global-types.ts index 5076cfee0bce..a09d4d4218c7 100644 --- a/sim/global-types.ts +++ b/sim/global-types.ts @@ -19,8 +19,10 @@ type TeamValidator = import('./team-validator').TeamValidator; type PokemonSources = import('./team-validator').PokemonSources; /** An ID must be lowercase alphanumeric. */ -type ID = '' | string & {__isID: true}; -type PokemonSlot = '' | string & {__isSlot: true}; +type ID = '' | Lowercase & {__isID: true}; +/** Like ID, but doesn't require you to type `as ID` to define it. For data files and object keys. */ +type IDEntry = Lowercase; +type PokemonSlot = '' | IDEntry & {__isSlot: true}; interface AnyObject {[k: string]: any} type GenderName = 'M' | 'F' | 'N' | ''; @@ -36,33 +38,9 @@ type Nonstandard = 'Past' | 'Future' | 'Unobtainable' | 'CAP' | 'LGPE' | 'Custom type PokemonSet = import('./teams').PokemonSet; -/** - * Describes a possible way to get a move onto a pokemon. - * - * First character is a generation number, 1-7. - * Second character is a source ID, one of: - * - * - M = TM/HM - * - T = tutor - * - L = start or level-up, 3rd char+ is the level - * - R = restricted (special moves like Rotom moves) - * - E = egg - * - D = Dream World, only 5D is valid - * - S = event, 3rd char+ is the index in .eventData - * - V = Virtual Console or Let's Go transfer, only 7V/8V is valid - * - C = NOT A REAL SOURCE, see note, only 3C/4C is valid - * - * C marks certain moves learned by a pokemon's prevo. It's used to - * work around the chainbreeding checker's shortcuts for performance; - * it lets the pokemon be a valid father for teaching the move, but - * is otherwise ignored by the learnset checker (which will actually - * check prevos for compatibility). - */ -type MoveSource = string; - namespace TierTypes { export type Singles = "AG" | "Uber" | "(Uber)" | "OU" | "(OU)" | "UUBL" | "UU" | "RUBL" | "RU" | "NUBL" | "NU" | - "(NU)" | "PUBL" | "PU" | "(PU)" | "NFE" | "LC"; + "(NU)" | "PUBL" | "PU" | "(PU)" | "ZUBL" | "ZU" | "NFE" | "LC"; export type Doubles = "DUber" | "(DUber)" | "DOU" | "(DOU)" | "DBL" | "DUU" | "(DUU)" | "NFE" | "LC"; export type Other = "Unreleased" | "Illegal" | "CAP" | "CAP NFE" | "CAP LC"; } @@ -78,13 +56,15 @@ interface EventInfo { perfectIVs?: number; /** true: has hidden ability, false | undefined: never has hidden ability */ isHidden?: boolean; - abilities?: string[]; + abilities?: IDEntry[]; maxEggMoves?: number; - moves?: string[]; - pokeball?: string; + moves?: IDEntry[]; + pokeball?: IDEntry; from?: string; /** Japan-only events can't be transferred to international games in Gen 1 */ japan?: boolean; + /** For Emerald event eggs to allow Pomeg glitched moves */ + emeraldEventEgg?: boolean; } type Effect = Ability | Item | ActiveMove | Species | Condition | Format; @@ -143,62 +123,25 @@ interface BasicEffect extends EffectData { toString: () => string; } -type ConditionData = import('./dex-conditions').ConditionData; -type ModdedConditionData = import('./dex-conditions').ModdedConditionData; type Condition = import('./dex-conditions').Condition; -type MoveData = import('./dex-moves').MoveData; -type ModdedMoveData = import('./dex-moves').ModdedMoveData; type ActiveMove = import('./dex-moves').ActiveMove; type Move = import('./dex-moves').Move; type MoveTarget = import('./dex-moves').MoveTarget; -type ItemData = import('./dex-items').ItemData; -type ModdedItemData = import('./dex-items').ModdedItemData; type Item = import('./dex-items').Item; -type AbilityData = import('./dex-abilities').AbilityData; -type ModdedAbilityData = import('./dex-abilities').ModdedAbilityData; type Ability = import('./dex-abilities').Ability; -type SpeciesData = import('./dex-species').SpeciesData; -type ModdedSpeciesData = import('./dex-species').ModdedSpeciesData; -type SpeciesFormatsData = import('./dex-species').SpeciesFormatsData; -type ModdedSpeciesFormatsData = import('./dex-species').ModdedSpeciesFormatsData; -type LearnsetData = import('./dex-species').LearnsetData; -type ModdedLearnsetData = import('./dex-species').ModdedLearnsetData; type Species = import('./dex-species').Species; -type FormatData = import('./dex-formats').FormatData; -type FormatList = import('./dex-formats').FormatList; -type ModdedFormatData = import('./dex-formats').ModdedFormatData; type Format = import('./dex-formats').Format; -interface NatureData { - name: string; - plus?: StatIDExceptHP; - minus?: StatIDExceptHP; -} - -type ModdedNatureData = NatureData | Partial> & {inherit: true}; - type Nature = import('./dex-data').Nature; type GameType = 'singles' | 'doubles' | 'triples' | 'rotation' | 'multi' | 'freeforall'; type SideID = 'p1' | 'p2' | 'p3' | 'p4'; -interface GameTimerSettings { - dcTimer: boolean; - dcTimerBank: boolean; - starting: number; - grace: number; - addPerTurn: number; - maxPerTurn: number; - maxFirstTurn: number; - timeoutAutoChoose: boolean; - accelerate: boolean; -} - type SpreadMoveTargets = (Pokemon | false | null)[]; type SpreadMoveDamage = (number | boolean | undefined)[]; type ZMoveOptions = ({move: string, target: MoveTarget} | null)[]; @@ -214,8 +157,11 @@ interface BattleScriptsData { interface ModdedBattleActions { inherit?: true; afterMoveSecondaryEvent?: (this: BattleActions, targets: Pokemon[], pokemon: Pokemon, move: ActiveMove) => undefined; - calcRecoilDamage?: (this: BattleActions, damageDealt: number, move: Move) => number; + calcRecoilDamage?: (this: BattleActions, damageDealt: number, move: Move, pokemon: Pokemon) => number; canMegaEvo?: (this: BattleActions, pokemon: Pokemon) => string | undefined | null; + canMegaEvoX?: (this: BattleActions, pokemon: Pokemon) => string | undefined | null; + canMegaEvoY?: (this: BattleActions, pokemon: Pokemon) => string | undefined | null; + canTerastallize?: (this: BattleActions, pokemon: Pokemon) => string | null; canUltraBurst?: (this: BattleActions, pokemon: Pokemon) => string | null; canZMove?: (this: BattleActions, pokemon: Pokemon) => ZMoveOptions | void; canDynamax?: (this: BattleActions, pokemon: Pokemon, skipChecks?: boolean) => DynamaxOptions | void; @@ -247,9 +193,13 @@ interface ModdedBattleActions { ) => number | undefined | false; runAction?: (this: BattleActions, action: Action) => void; runMegaEvo?: (this: BattleActions, pokemon: Pokemon) => boolean; + runMegaEvoX?: (this: BattleActions, pokemon: Pokemon) => boolean; + runMegaEvoY?: (this: BattleActions, pokemon: Pokemon) => boolean; runMove?: ( - this: BattleActions, moveOrMoveName: Move | string, pokemon: Pokemon, targetLoc: number, sourceEffect?: Effect | null, - zMove?: string, externalMove?: boolean, maxMove?: string, originalTarget?: Pokemon + this: BattleActions, moveOrMoveName: Move | string, pokemon: Pokemon, targetLoc: number, options?: { + sourceEffect?: Effect | null, zMove?: string, externalMove?: boolean, + maxMove?: string, originalTarget?: Pokemon, + } ) => void; runMoveEffects?: ( this: BattleActions, damage: SpreadMoveDamage, targets: SpreadMoveTargets, source: Pokemon, @@ -269,7 +219,11 @@ interface ModdedBattleActions { this: BattleActions, targets: SpreadMoveTargets, pokemon: Pokemon, move: ActiveMove, moveData?: ActiveMove, isSecondary?: boolean, isSelf?: boolean ) => [SpreadMoveDamage, SpreadMoveTargets]; + switchIn?: ( + this: BattleActions, pokemon: Pokemon, pos: number, sourceEffect: Effect | null, isDrag?: boolean + ) => boolean | "pursuitfaint"; targetTypeChoices?: (this: BattleActions, targetType: string) => boolean; + terastallize?: (this: BattleActions, pokemon: Pokemon) => void; tryMoveHit?: ( this: BattleActions, target: Pokemon, pokemon: Pokemon, move: ActiveMove ) => number | undefined | false | ''; @@ -281,12 +235,16 @@ interface ModdedBattleActions { this: BattleActions, targets: Pokemon[], pokemon: Pokemon, move: ActiveMove, notActive?: boolean ) => boolean; useMove?: ( - this: BattleActions, move: Move, pokemon: Pokemon, target?: Pokemon | null, - sourceEffect?: Effect | null, zMove?: string, maxMove?: string + this: BattleActions, move: Move, pokemon: Pokemon, options?: { + target?: Pokemon | null, sourceEffect?: Effect | null, + zMove?: string, maxMove?: string, + } ) => boolean; useMoveInner?: ( - this: BattleActions, move: Move, pokemon: Pokemon, target?: Pokemon | null, - sourceEffect?: Effect | null, zMove?: string, maxMove?: string + this: BattleActions, move: Move, pokemon: Pokemon, options?: { + target?: Pokemon | null, sourceEffect?: Effect | null, + zMove?: string, maxMove?: string, + } ) => boolean; getDamage?: ( this: BattleActions, pokemon: Pokemon, target: Pokemon, move: string | number | ActiveMove, suppressMessages: boolean @@ -303,6 +261,8 @@ interface ModdedBattleActions { interface ModdedBattleSide { canDynamaxNow?: (this: Side) => boolean; + chooseSwitch?: (this: Side, slotText?: string) => any; + getChoice?: (this: Side) => string; getRequestData?: (this: Side, forAlly?: boolean) => {name: string, id: ID, pokemon: AnyObject[]}; } @@ -317,6 +277,7 @@ interface ModdedBattlePokemon { this: Pokemon, move: string | Move, amount?: number | null, target?: Pokemon | null | false ) => number; eatItem?: (this: Pokemon, force?: boolean, source?: Pokemon, sourceEffect?: Effect) => boolean; + effectiveWeather?: (this: Pokemon) => ID; formeChange?: ( this: Pokemon, speciesId: string | Species, source: Effect, isPermanent?: boolean, message?: string ) => boolean; @@ -333,6 +294,7 @@ interface ModdedBattlePokemon { move: string, id: string, disabled?: string | boolean, disabledSource?: string, target?: string, pp?: number, maxpp?: number, }[]; + getMoveTargets?: (this: Pokemon, move: ActiveMove, target: Pokemon) => {targets: Pokemon[], pressureTargets: Pokemon[]}; getStat?: ( this: Pokemon, statName: StatIDExceptHP, unboosted?: boolean, unmodified?: boolean, fastReturn?: boolean ) => number; @@ -344,6 +306,7 @@ interface ModdedBattlePokemon { modifyStat?: (this: Pokemon, statName: StatIDExceptHP, modifier: number) => void; moveUsed?: (this: Pokemon, move: ActiveMove, targetLoc?: number) => void; recalculateStats?: (this: Pokemon) => void; + runEffectiveness?: (this: Pokemon, move: ActiveMove) => number; runImmunity?: (this: Pokemon, type: string, message?: string | boolean) => boolean; setAbility?: ( this: Pokemon, ability: string | Ability, source: Pokemon | null, isFromFormeChange: boolean @@ -381,7 +344,7 @@ interface ModdedBattleScriptsData extends Partial { side?: ModdedBattleSide; boost?: ( this: Battle, boost: SparseBoostsTable, target: Pokemon, source?: Pokemon | null, - effect?: Effect | string | null, isSecondary?: boolean, isSelf?: boolean + effect?: Effect | null, isSecondary?: boolean, isSelf?: boolean ) => boolean | null | 0; debug?: (this: Battle, activity: string) => void; getActionSpeed?: (this: Battle, action: AnyObject) => void; @@ -390,7 +353,7 @@ interface ModdedBattleScriptsData extends Partial { this: Battle, trappedBySide: boolean[], stalenessBySide: ('internal' | 'external' | undefined)[] ) => boolean | undefined; natureModify?: (this: Battle, stats: StatsTable, set: PokemonSet) => StatsTable; - nextTurn?: (this: Battle) => void; + endTurn?: (this: Battle) => void; runAction?: (this: Battle, action: Action) => void; spreadModify?: (this: Battle, baseStats: StatsTable, set: PokemonSet) => StatsTable; start?: (this: Battle) => void; @@ -399,18 +362,12 @@ interface ModdedBattleScriptsData extends Partial { win?: (this: Battle, side?: SideID | '' | Side | null) => boolean; faintMessages?: (this: Battle, lastFirst?: boolean, forceCheck?: boolean, checkWin?: boolean) => boolean | undefined; tiebreak?: (this: Battle) => boolean; + checkMoveMakesContact?: ( + this: Battle, move: ActiveMove, attacker: Pokemon, defender: Pokemon, announcePads?: boolean + ) => boolean; checkWin?: (this: Battle, faintQueue?: Battle['faintQueue'][0]) => true | undefined; } -interface TypeData { - damageTaken: {[attackingTypeNameOrEffectid: string]: number}; - HPdvs?: SparseStatsTable; - HPivs?: SparseStatsTable; - isNonstandard?: Nonstandard | null; -} - -type ModdedTypeData = TypeData | Partial> & {inherit: true}; - type TypeInfo = import('./dex-data').TypeInfo; interface PlayerOptions { @@ -421,11 +378,11 @@ interface PlayerOptions { seed?: PRNGSeed; } -interface TextObject { +interface BasicTextData { desc?: string; shortDesc?: string; } -interface Plines { +interface ConditionTextData extends BasicTextData { activate?: string; addItem?: string; block?: string; @@ -440,19 +397,7 @@ interface Plines { transform?: string; } -interface TextFile extends TextObject { - name: string; - gen1?: ModdedTextObject; - gen2?: ModdedTextObject; - gen3?: ModdedTextObject; - gen4?: ModdedTextObject; - gen5?: ModdedTextObject; - gen6?: ModdedTextObject; - gen7?: ModdedTextObject; - gen8?: ModdedTextObject; -} - -interface MovePlines extends Plines { +interface MoveTextData extends ConditionTextData { alreadyStarted?: string; blockSelf?: string; clearBoost?: string; @@ -472,24 +417,28 @@ interface MovePlines extends Plines { upkeep?: string; } -interface AbilityText extends TextFile, Plines { - activateFromItem?: string; - activateNoTarget?: string; - copyBoost?: string; - transformEnd?: string; -} - -/* eslint-disable @typescript-eslint/no-empty-interface */ -interface MoveText extends TextFile, MovePlines {} - -interface ItemText extends TextFile, Plines {} - -interface PokedexText extends TextFile {} - -interface DefaultText extends AnyObject {} +type TextFile = T & { + name: string, + gen1?: T, + gen2?: T, + gen3?: T, + gen4?: T, + gen5?: T, + gen6?: T, + gen7?: T, + gen8?: T, +}; -interface ModdedTextObject extends TextObject, Plines {} -/* eslint-enable @typescript-eslint/no-empty-interface */ +type AbilityText = TextFile; +type MoveText = TextFile; +type ItemText = TextFile; +type PokedexText = TextFile; +type DefaultText = AnyObject; namespace RandomTeamsTypes { export interface TeamDetails { @@ -514,8 +463,10 @@ namespace RandomTeamsTypes { export interface FactoryTeamDetails { megaCount?: number; zCount?: number; + wantsTeraCount?: number; forceResult: boolean; weather?: string; + terrain?: string[]; typeCount: {[k: string]: number}; typeComboCount: {[k: string]: number}; baseFormes: {[k: string]: number}; @@ -540,7 +491,7 @@ namespace RandomTeamsTypes { dynamaxLevel?: number; gigantamax?: boolean; teraType?: string; - role?: string; + role?: Role; } export interface RandomFactorySet { name: string; @@ -557,5 +508,41 @@ namespace RandomTeamsTypes { moves: string[]; dynamaxLevel?: number; gigantamax?: boolean; + wantsTera?: boolean; + teraType?: string; + } + export interface RandomDraftFactorySet { + name: string; + species: string; + gender: string; + moves: string[]; + ability: string; + evs: SparseStatsTable; + ivs: SparseStatsTable; + item: string; + level: number; + shiny: boolean; + nature?: string; + happiness?: number; + dynamaxLevel?: number; + gigantamax?: boolean; + teraType?: string; + teraCaptain?: boolean; + } + export interface RandomSetData { + role: Role; + movepool: string[]; + abilities?: string[]; + teraTypes?: string[]; + preferredTypes?: string[]; + } + export interface RandomSpeciesData { + level?: number; + sets: RandomSetData[]; } + export type Role = '' | 'Fast Attacker' | 'Setup Sweeper' | 'Wallbreaker' | 'Tera Blast user' | + 'Bulky Attacker' | 'Bulky Setup' | 'Fast Bulky Setup' | 'Bulky Support' | 'Fast Support' | 'AV Pivot' | + 'Doubles Fast Attacker' | 'Doubles Setup Sweeper' | 'Doubles Wallbreaker' | 'Doubles Bulky Attacker' | + 'Doubles Bulky Setup' | 'Offensive Protect' | 'Bulky Protect' | 'Doubles Support' | 'Choice Item user' | + 'Z-Move user' | 'Staller' | 'Spinner' | 'Generalist' | 'Berry Sweeper' | 'Thief user'; } diff --git a/sim/pokemon.ts b/sim/pokemon.ts index 07e94a93d6b9..bb954c86b7d5 100644 --- a/sim/pokemon.ts +++ b/sim/pokemon.ts @@ -238,6 +238,12 @@ export class Pokemon { activeMoveActions: number; previouslySwitchedIn: number; truantTurn: boolean; + // Gen 9 only + swordBoost: boolean; + shieldBoost: boolean; + syrupTriggered: boolean; + stellarBoostedTypes: string[]; + /** Have this pokemon's Start events run yet? (Start events run every switch-in) */ isStarted: boolean; duringMove: boolean; @@ -247,9 +253,15 @@ export class Pokemon { abilityOrder: number; canMegaEvo: string | null | undefined; + canMegaEvoX: string | null | undefined; + canMegaEvoY: string | null | undefined; canUltraBurst: string | null | undefined; readonly canGigantamax: string | null; - canTerastallize: string | null; + /** + * A Pokemon's Tera type if it can Terastallize, false if it is temporarily unable to tera and should have its + * ability restored upon switching out, or null if its inability to tera is permanent. + */ + canTerastallize: string | false | null; teraType: string; baseTypes: string[]; terastallized?: string; @@ -271,7 +283,6 @@ export class Pokemon { * An object for storing untyped data, for mods to use. */ m: { - gluttonyFlag?: boolean, // Gen-NEXT innate?: string, // Partners in Crime originalSpecies?: string, // Mix and Mega [key: string]: any, @@ -340,7 +351,9 @@ export class Pokemon { } this.position = 0; - this.details = this.species.name + (this.level === 100 ? '' : ', L' + this.level) + + let displayedSpeciesName = this.species.name; + if (displayedSpeciesName === 'Greninja-Bond') displayedSpeciesName = 'Greninja'; + this.details = displayedSpeciesName + (this.level === 100 ? '' : ', L' + this.level) + (this.gender === '' ? '' : ', ' + this.gender) + (this.set.shiny ? ', shiny' : ''); this.status = ''; @@ -439,6 +452,10 @@ export class Pokemon { this.activeMoveActions = 0; this.previouslySwitchedIn = 0; this.truantTurn = false; + this.swordBoost = false; + this.shieldBoost = false; + this.syrupTriggered = false; + this.stellarBoostedTypes = []; this.isStarted = false; this.duringMove = false; @@ -452,6 +469,8 @@ export class Pokemon { this.abilityOrder = 0; this.canMegaEvo = this.battle.actions.canMegaEvo(this); + this.canMegaEvoX = this.battle.actions.canMegaEvoX?.(this); + this.canMegaEvoY = this.battle.actions.canMegaEvoY?.(this); this.canUltraBurst = this.battle.actions.canUltraBurst(this); this.canGigantamax = this.baseSpecies.canGigantamax || null; this.canTerastallize = this.battle.actions.canTerastallize(this); @@ -494,7 +513,10 @@ export class Pokemon { const health = this.getHealth(); let details = this.details; if (this.illusion) { - const illusionDetails = this.illusion.species.name + (this.level === 100 ? '' : ', L' + this.level) + + const level = this.battle.ruleTable.has('illusionlevelmod') ? this.illusion.level : this.level; + let displayedSpeciesName = this.illusion.species.name; + if (displayedSpeciesName === 'Greninja-Bond') displayedSpeciesName = 'Greninja'; + const illusionDetails = displayedSpeciesName + (level === 100 ? '' : ', L' + level) + (this.illusion.gender === '' ? '' : ', ' + this.illusion.gender) + (this.illusion.set.shiny ? ', shiny' : ''); details = illusionDetails; } @@ -586,7 +608,9 @@ export class Pokemon { getActionSpeed() { let speed = this.getStat('spe', false, false); - if (this.battle.field.getPseudoWeather('trickroom')) { + const trickRoomCheck = this.battle.ruleTable.has('twisteddimensionmod') ? + !this.battle.field.getPseudoWeather('trickroom') : this.battle.field.getPseudoWeather('trickroom'); + if (trickRoomCheck) { speed = 10000 - speed; } return this.battle.trunc(speed, 13); @@ -766,7 +790,8 @@ export class Pokemon { } if (this.battle.activePerHalf > 1 && !move.tracksTarget) { const isCharging = move.flags['charge'] && !this.volatiles['twoturnmove'] && - !(move.id.startsWith('solarb') && this.battle.field.isWeather(['sunnyday', 'desolateland'])) && + !(move.id.startsWith('solarb') && ['sunnyday', 'desolateland'].includes(this.effectiveWeather())) && + !(move.id === 'electroshot' && ['raindance', 'primordialsea'].includes(this.effectiveWeather())) && !(this.hasItem('powerherb') && move.id !== 'skydrop'); if (!isCharging) { target = this.battle.priorityEvent('RedirectTarget', this, this, move, target); @@ -800,7 +825,10 @@ export class Pokemon { ignoringAbility() { if (this.battle.gen >= 5 && !this.isActive) return true; - if (this.getAbility().isPermanent) return false; + + // Certain Abilities won't activate while Transformed, even if they ordinarily couldn't be suppressed (e.g. Disguise) + if (this.getAbility().flags['notransform'] && this.transformed) return true; + if (this.getAbility().flags['cantsuppress']) return false; if (this.volatiles['gastroacid']) return true; // Check if any active pokemon have the ability Neutralizing Gas @@ -808,7 +836,7 @@ export class Pokemon { for (const pokemon of this.battle.getAllActive()) { // can't use hasAbility because it would lead to infinite recursion if (pokemon.ability === ('neutralizinggas' as ID) && !pokemon.volatiles['gastroacid'] && - !pokemon.transformed && !pokemon.abilityState.ending) { + !pokemon.transformed && !pokemon.abilityState.ending && !this.volatiles['commanding']) { return true; } } @@ -924,10 +952,23 @@ export class Pokemon { moveName += ' ' + basePowerCallback(this); } let target = moveSlot.target; - if (moveSlot.id === 'curse') { + switch (moveSlot.id) { + case 'curse': if (!this.hasType('Ghost')) { - target = this.battle.dex.moves.get('curse').nonGhostTarget || moveSlot.target; + target = this.battle.dex.moves.get('curse').nonGhostTarget; + } + break; + case 'pollenpuff': + // Heal Block only prevents Pollen Puff from targeting an ally when the user has Heal Block + if (this.volatiles['healblock']) { + target = 'adjacentFoe'; + } + break; + case 'terastarstorm': + if (this.species.name === 'Terapagos-Stellar') { + target = 'allAdjacentFoes'; } + break; } let disabled = moveSlot.disabled; if (this.volatiles['dynamax']) { @@ -1017,6 +1058,8 @@ export class Pokemon { trapped?: boolean, maybeTrapped?: boolean, canMegaEvo?: boolean, + canMegaEvoX?: boolean, + canMegaEvoY?: boolean, canUltraBurst?: boolean, canZMove?: AnyObject | null, canDynamax?: boolean, @@ -1044,6 +1087,8 @@ export class Pokemon { if (!lockedMove) { if (this.canMegaEvo) data.canMegaEvo = true; + if (this.canMegaEvoX) data.canMegaEvoX = true; + if (this.canMegaEvoY) data.canMegaEvoY = true; if (this.canUltraBurst) data.canUltraBurst = true; const canZMove = this.battle.actions.canZMove(this); if (canZMove) data.canZMove = canZMove; @@ -1177,7 +1222,8 @@ export class Pokemon { const species = pokemon.species; if (pokemon.fainted || this.illusion || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) || (pokemon.transformed && this.battle.gen >= 2) || (this.transformed && this.battle.gen >= 5) || - species.name === 'Eternatus-Eternamax') { + species.name === 'Eternatus-Eternamax' || (['Ogerpon', 'Terapagos'].includes(species.baseSpecies) && + (this.terastallized || pokemon.terastallized)) || this.terastallized === 'Stellar') { return false; } @@ -1205,7 +1251,6 @@ export class Pokemon { if (this.modifiedStats) this.modifiedStats[statName] = pokemon.modifiedStats![statName]; // Gen 1: Copy modified stats. } this.moveSlots = []; - this.set.ivs = (this.battle.gen >= 5 ? this.set.ivs : pokemon.set.ivs); this.hpType = (this.battle.gen >= 5 ? this.hpType : pokemon.hpType); this.hpPower = (this.battle.gen >= 5 ? this.hpPower : pokemon.hpPower); this.timesAttacked = pokemon.timesAttacked; @@ -1230,13 +1275,14 @@ export class Pokemon { this.boosts[boostName] = pokemon.boosts[boostName]; } if (this.battle.gen >= 6) { - const volatilesToCopy = ['focusenergy', 'gmaxchistrike', 'laserfocus']; + // we need to remove all of the overlapping crit volatiles before adding any of them + const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus']; + for (const volatile of volatilesToCopy) this.removeVolatile(volatile); for (const volatile of volatilesToCopy) { if (pokemon.volatiles[volatile]) { this.addVolatile(volatile); if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers; - } else { - this.removeVolatile(volatile); + if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType; } } } @@ -1272,6 +1318,11 @@ export class Pokemon { } } + // Pokemon transformed into Ogerpon cannot Terastallize + // restoring their ability to tera after they untransform is handled ELSEWHERE + if (this.species.baseSpecies === 'Ogerpon' && this.canTerastallize) this.canTerastallize = false; + if (this.species.baseSpecies === 'Terapagos' && this.canTerastallize) this.canTerastallize = false; + return true; } @@ -1321,8 +1372,8 @@ export class Pokemon { * as well as sending all relevant messages sent to the client. */ formeChange( - speciesId: string | Species, source: Effect = this.battle.effect, - isPermanent?: boolean, message?: string + speciesId: string | Species, source: Effect | null = this.battle.effect, + isPermanent?: boolean, abilitySlot = '0', message?: string ) { const rawSpecies = this.battle.dex.species.get(speciesId); @@ -1341,16 +1392,20 @@ export class Pokemon { let details = (this.illusion || this).details; if (this.terastallized) details += `, tera:${this.terastallized}`; this.battle.add('detailschange', this, details); - if (source.effectType === 'Item') { + if (!source) { + // Tera forme + // Ogerpon/Terapagos text goes here + } else if (source.effectType === 'Item') { + this.canTerastallize = null; // National Dex behavior if (source.zMove) { this.battle.add('-burst', this, apparentSpecies, species.requiredItem); this.moveThisTurnResult = true; // Ultra Burst counts as an action for Truant } else if (source.onPrimal) { if (this.illusion) { this.ability = ''; - this.battle.add('-primal', this.illusion); + this.battle.add('-primal', this.illusion, species.requiredItem); } else { - this.battle.add('-primal', this); + this.battle.add('-primal', this, species.requiredItem); } } else { this.battle.add('-mega', this, apparentSpecies, species.requiredItem); @@ -1361,18 +1416,21 @@ export class Pokemon { this.battle.add('-formechange', this, species.name, message); } } else { - if (source.effectType === 'Ability') { + if (source?.effectType === 'Ability') { this.battle.add('-formechange', this, species.name, message, `[from] ability: ${source.name}`); } else { this.battle.add('-formechange', this, this.illusion ? this.illusion.species.name : species.name, message); } } - if (isPermanent && !['disguise', 'iceface'].includes(source.id)) { + if (isPermanent && (!source || !['disguise', 'iceface'].includes(source.id))) { if (this.illusion) { this.ability = ''; // Don't allow Illusion to wear off } - this.setAbility(species.abilities['0'], null, true); - this.baseAbility = this.ability; + const ability = species.abilities[abilitySlot] || species.abilities['0']; + // Ogerpon's forme change doesn't override permanent abilities + if (source || !this.getAbility().flags['cantsuppress']) this.setAbility(ability, null, true); + // However, its ability does reset upon switching out + this.baseAbility = toID(ability); } if (this.terastallized) { this.knownType = true; @@ -1405,6 +1463,7 @@ export class Pokemon { this.ability = this.baseAbility; this.hpType = this.baseHpType; this.hpPower = this.baseHpPower; + if (this.canTerastallize === false) this.canTerastallize = this.teraType; for (const i in this.volatiles) { if (this.volatiles[i].linkedStatus) { this.removeLinkedVolatiles(this.volatiles[i].linkedStatus, this.volatiles[i].linkedPokemon); @@ -1424,6 +1483,8 @@ export class Pokemon { if (this.battle.gen === 2) this.lastMoveEncore = null; this.lastMoveUsed = null; this.moveThisTurn = ''; + this.moveLastTurnResult = undefined; + this.moveThisTurnResult = undefined; this.lastDamage = 0; this.attackedBy = []; @@ -1782,10 +1843,12 @@ export class Pokemon { if (typeof ability === 'string') ability = this.battle.dex.abilities.get(ability); const oldAbility = this.ability; if (!isFromFormeChange) { - if (ability.isPermanent || this.getAbility().isPermanent) return false; + if (ability.flags['cantsuppress'] || this.getAbility().flags['cantsuppress']) return false; + } + if (!isFromFormeChange && !isTransform) { + const setAbilityEvent: boolean | null = this.battle.runEvent('SetAbility', this, source, this.battle.effect, ability); + if (!setAbilityEvent) return setAbilityEvent; } - const setAbilityEvent: boolean | null = this.battle.runEvent('SetAbility', this, source, this.battle.effect, ability); - if (!setAbilityEvent) return setAbilityEvent; this.battle.singleEvent('End', this.battle.dex.abilities.get(oldAbility), this.abilityState, this, source); if (this.battle.effect && this.battle.effect.effectType === 'Move' && !isFromFormeChange) { this.battle.add('-endability', this, this.battle.dex.abilities.get(oldAbility), '[from] move: ' + @@ -1852,8 +1915,7 @@ export class Pokemon { this.battle.debug('add volatile [' + status.id + '] interrupted'); return result; } - this.volatiles[status.id] = {id: status.id}; - this.volatiles[status.id].target = this; + this.volatiles[status.id] = {id: status.id, name: status.name, target: this}; if (source) { this.volatiles[status.id].source = source; this.volatiles[status.id].sourceSlot = source.getSlot(); @@ -1893,9 +1955,9 @@ export class Pokemon { if (!this.hp) return false; status = this.battle.dex.conditions.get(status) as Effect; if (!this.volatiles[status.id]) return false; - this.battle.singleEvent('End', status, this.volatiles[status.id], this); const linkedPokemon = this.volatiles[status.id].linkedPokemon; const linkedStatus = this.volatiles[status.id].linkedStatus; + this.battle.singleEvent('End', status, this.volatiles[status.id], this); delete this.volatiles[status.id]; if (linkedPokemon) { this.removeLinkedVolatiles(linkedStatus, linkedPokemon); @@ -1951,6 +2013,8 @@ export class Pokemon { */ setType(newType: string | string[], enforce = false) { if (!enforce) { + // No Pokemon should be able to have Stellar as a base type + if (typeof newType === 'string' ? newType === 'Stellar' : newType.includes('Stellar')) return false; // First type of Arceus, Silvally cannot be normally changed if ((this.battle.gen >= 5 && (this.species.num === 493 || this.species.num === 773)) || (this.battle.gen === 4 && this.hasAbility('multitype'))) { @@ -1977,11 +2041,13 @@ export class Pokemon { } getTypes(excludeAdded?: boolean, preterastallized?: boolean): string[] { - if (!preterastallized && this.terastallized) return [this.terastallized]; + if (!preterastallized && this.terastallized && this.terastallized !== 'Stellar') { + return [this.terastallized]; + } const types = this.battle.runEvent('Type', this, null, null, this.types); + if (!types.length) types.push(this.battle.gen >= 5 ? 'Normal' : '???'); if (!excludeAdded && this.addedType) return types.concat(this.addedType); - if (types.length) return types; - return [this.battle.gen >= 5 ? 'Normal' : '???']; + return types; } isGrounded(negateImmunity = false) { @@ -2018,7 +2084,7 @@ export class Pokemon { return !!( this.volatiles['protect'] || this.volatiles['detect'] || this.volatiles['maxguard'] || this.volatiles['kingsshield'] || this.volatiles['spikyshield'] || this.volatiles['banefulbunker'] || - this.volatiles['obstruct'] || this.volatiles['silktrap'] + this.volatiles['obstruct'] || this.volatiles['silktrap'] || this.volatiles['burningbulwark'] ); } @@ -2039,6 +2105,7 @@ export class Pokemon { } runEffectiveness(move: ActiveMove) { + if (this.terastallized && move.type === 'Stellar') return 1; let totalTypeMod = 0; for (const type of this.getTypes()) { let typeMod = this.battle.dex.getEffectiveness(move, type); diff --git a/sim/side.ts b/sim/side.ts index 7fad801869e1..4e7ad2a44db4 100644 --- a/sim/side.ts +++ b/sim/side.ts @@ -36,6 +36,8 @@ export interface ChosenAction { index?: number; // the chosen index in Team Preview side?: Side; // the action's side mega?: boolean | null; // true if megaing or ultra bursting + megax?: boolean | null; // true if megaing x + megay?: boolean | null; // true if megaing y zmove?: string; // if zmoving, the name of the zmove maxMove?: string; // if dynamaxed, the name of the max move terastallize?: string; // if terastallizing, tera type @@ -115,10 +117,9 @@ export class Side { this.team = team; this.pokemon = []; - for (let i = 0; i < this.team.length && i < 24; i++) { + for (const set of this.team) { // console.log("NEW POKEMON: " + (this.team[i] ? this.team[i].name : '[unidentified]')); - this.pokemon.push(new Pokemon(this.team[i], this)); - this.pokemon[i].position = i; + this.addPokemon(set); } switch (this.battle.gameType) { @@ -174,6 +175,15 @@ export class Side { return 'move'; } + addPokemon(set: PokemonSet) { + if (this.pokemon.length >= 24) return null; + const newPokemon = new Pokemon(set, this); + newPokemon.position = this.pokemon.length; + this.pokemon.push(newPokemon); + this.pokemonLeft++; + return newPokemon; + } + canDynamaxNow(): boolean { if (this.battle.gen !== 8) return false; // In multi battles, players on a team are alternatingly given the option to dynamax each turn @@ -408,7 +418,7 @@ export class Side { chooseMove( moveText?: string | number, targetLoc = 0, - event: 'mega' | 'zmove' | 'ultra' | 'dynamax' | 'terastallize' | '' = '' + event: 'mega' | 'megax' | 'megay' | 'zmove' | 'ultra' | 'dynamax' | 'terastallize' | '' = '' ) { if (this.requestState !== 'move') { return this.emitChoiceError(`Can't move: You need a ${this.requestState} response`); @@ -590,18 +600,27 @@ export class Side { // Mega evolution + const mixandmega = this.battle.format.mod === 'mixandmega'; const mega = (event === 'mega'); + const megax = (event === 'megax'); + const megay = (event === 'megay'); if (mega && !pokemon.canMegaEvo) { return this.emitChoiceError(`Can't move: ${pokemon.name} can't mega evolve`); } - if (mega && this.choice.mega) { + if (megax && !pokemon.canMegaEvoX) { + return this.emitChoiceError(`Can't move: ${pokemon.name} can't mega evolve X`); + } + if (megay && !pokemon.canMegaEvoY) { + return this.emitChoiceError(`Can't move: ${pokemon.name} can't mega evolve Y`); + } + if ((mega || megax || megay) && this.choice.mega && !mixandmega) { return this.emitChoiceError(`Can't move: You can only mega-evolve once per battle`); } const ultra = (event === 'ultra'); if (ultra && !pokemon.canUltraBurst) { return this.emitChoiceError(`Can't move: ${pokemon.name} can't ultra burst`); } - if (ultra && this.choice.ultra) { + if (ultra && this.choice.ultra && !mixandmega) { return this.emitChoiceError(`Can't move: You can only ultra burst once per battle`); } let dynamax = (event === 'dynamax'); @@ -639,6 +658,8 @@ export class Side { targetLoc, moveid, mega: mega || ultra, + megax: megax, + megay: megay, zmove: zMove, maxMove: maxMove ? maxMove.id : undefined, terastallize: terastallize ? pokemon.teraType : undefined, @@ -648,7 +669,7 @@ export class Side { this.choice.cantUndo = this.choice.cantUndo || pokemon.isLastActive(); } - if (mega) this.choice.mega = true; + if (mega || megax || megay) this.choice.mega = true; if (ultra) this.choice.ultra = true; if (zMove) this.choice.zMove = true; if (dynamax) this.choice.dynamax = true; @@ -939,7 +960,7 @@ export class Side { const original = data; const error = () => this.emitChoiceError(`Conflicting arguments for "move": ${original}`); let targetLoc: number | undefined; - let event: 'mega' | 'zmove' | 'ultra' | 'dynamax' | 'terastallize' | '' = ''; + let event: 'mega' | 'megax' | 'megay' | 'zmove' | 'ultra' | 'dynamax' | 'terastallize' | '' = ''; while (true) { // If data ends with a number, treat it as a target location. // We need to special case 'Conversion 2' so it doesn't get @@ -953,6 +974,14 @@ export class Side { if (event) return error(); event = 'mega'; data = data.slice(0, -5); + } else if (data.endsWith(' megax')) { + if (event) return error(); + event = 'megax'; + data = data.slice(0, -6); + } else if (data.endsWith(' megay')) { + if (event) return error(); + event = 'megay'; + data = data.slice(0, -6); } else if (data.endsWith(' zmove')) { if (event) return error(); event = 'zmove'; diff --git a/sim/team-validator.ts b/sim/team-validator.ts index d1db7abebe91..77ab3d258c4d 100644 --- a/sim/team-validator.ts +++ b/sim/team-validator.ts @@ -8,6 +8,7 @@ */ import {Dex, toID} from './dex'; +import type {MoveSource} from './dex-species'; import {Utils} from '../lib'; import {Tags} from '../data/tags'; import {Teams} from './teams'; @@ -76,6 +77,40 @@ export class PokemonSources { * `undefined` = the current move may or may not be a limited egg move */ limitedEggMoves?: ID[] | null; + /** + * Moves that should be in limitedEggMoves that would otherwise be skipped + * because they can be learned universally in a past generation + */ + possiblyLimitedEggMoves?: ID[] | null; + /** + * Moves that should be in limitedEggMoves that would otherwise be skipped + * because they can be learned via Gen 1-2 tradeback + */ + tradebackLimitedEggMoves?: ID[] | null; + /** + * Tracks level up egg moves for female-only Pokemon + */ + levelUpEggMoves?: ID[] | null; + /** + * Moves that can be learned via Pomeg glitch and does not require a + * particular parent to learn + */ + pomegEggMoves?: ID[] | null; + /** + * Event egg source that may be used with the Pomeg glitch + * + * `null` = definitely not an event egg that can be used with the Pomeg glitch + */ + pomegEventEgg?: string | null; + /** + * For event-only Pokemon that do not have a minimum source gen identified by its moves + */ + eventOnlyMinSourceGen?: number; + /** + * A list of movepools, identified by gen and species, which moves can be pulled from. + * Used to deal with compatibility issues for prevo/evo-exclusive moves + */ + learnsetDomain?: string[] | null; /** * Some Pokemon evolve by having a move in their learnset (like Piloswine * with Ancient Power). These can only carry three other moves from their @@ -89,6 +124,8 @@ export class PokemonSources { sketchMove?: string; dreamWorldMoveCount: number; hm?: string; + isFromPokemonGo?: boolean; + pokemonGoSource?: string; restrictiveMoves?: string[]; /** Obscure learn methods */ restrictedMove?: ID; @@ -108,6 +145,11 @@ export class PokemonSources { } add(source: PokemonSource, limitedEggMove?: ID | null) { if (this.sources[this.sources.length - 1] !== source) this.sources.push(source); + if (limitedEggMove) { + if (source.substr(0, 3) === '1ET') { + this.tradebackLimitedEggMoves = [limitedEggMove]; + } + } if (limitedEggMove && this.limitedEggMoves !== null) { this.limitedEggMoves = [limitedEggMove]; } else if (limitedEggMove === null) { @@ -119,6 +161,7 @@ export class PokemonSources { this.limitedEggMoves = null; } minSourceGen() { + if (this.eventOnlyMinSourceGen) return this.eventOnlyMinSourceGen; if (this.sourcesBefore) return this.sourcesAfter || 1; let min = 10; for (const source of this.sources) { @@ -137,6 +180,22 @@ export class PokemonSources { return max; } intersectWith(other: PokemonSources) { + if (this.pomegEventEgg && other.pomegEggMoves) { + const newSources = []; + for (const source of other.sources) { + newSources.push(source.substr(0, 2) === '3E' ? this.pomegEventEgg : source); + } + other.sources = newSources; + } else if (other.pomegEventEgg && this.pomegEventEgg !== null) { + const newSources = []; + for (const source of this.sources) { + newSources.push(source.substr(0, 2) === '3E' ? other.pomegEventEgg : source); + } + this.sources = newSources; + this.pomegEventEgg = other.pomegEventEgg; + } else if (!other.pomegEggMoves && !other.sourcesBefore) { + this.pomegEventEgg = null; + } if (other.sourcesBefore || this.sourcesBefore) { // having sourcesBefore is the equivalent of having everything before that gen // in sources, so we fill the other array in preparation for intersection @@ -183,6 +242,70 @@ export class PokemonSources { this.limitedEggMoves.push(...other.limitedEggMoves); } } + if (other.possiblyLimitedEggMoves) { + if (!this.possiblyLimitedEggMoves) { + this.possiblyLimitedEggMoves = other.possiblyLimitedEggMoves; + } else { + this.possiblyLimitedEggMoves.push(...other.possiblyLimitedEggMoves); + } + } + if (other.tradebackLimitedEggMoves) { + if (!this.tradebackLimitedEggMoves) { + this.tradebackLimitedEggMoves = other.tradebackLimitedEggMoves; + } else { + this.tradebackLimitedEggMoves.push(...other.tradebackLimitedEggMoves); + } + } + if (other.levelUpEggMoves) { + if (!this.levelUpEggMoves) { + this.levelUpEggMoves = other.levelUpEggMoves; + } else { + this.levelUpEggMoves.push(...other.levelUpEggMoves); + } + } + if (other.pomegEggMoves) { + if (!this.pomegEggMoves) { + this.pomegEggMoves = other.pomegEggMoves; + } else { + this.pomegEggMoves.push(...other.pomegEggMoves); + } + } + if (other.learnsetDomain) { + if (!this.learnsetDomain) { + this.learnsetDomain = other.learnsetDomain; + } else { + this.learnsetDomain.filter(source => other.learnsetDomain?.includes(source)); + } + } + if (this.possiblyLimitedEggMoves && !this.sourcesBefore) { + const eggSources = this.sources.filter(source => source.charAt(1) === 'E'); + let minEggGen = parseInt(eggSources[0]); + for (const source of eggSources) { + minEggGen = Math.min(minEggGen, parseInt(source.charAt(0))); + } + if (minEggGen) { + for (const eggMoveAndGen of this.possiblyLimitedEggMoves) { + if (!this.limitedEggMoves) this.limitedEggMoves = []; + if (parseInt(eggMoveAndGen.charAt(0)) < minEggGen) { + const eggMove = toID(eggMoveAndGen.substr(1)); + if (!this.limitedEggMoves.includes(eggMove)) this.limitedEggMoves.push(eggMove); + } + } + } + } + let eggTradebackLegal = false; + for (const source of this.sources) { + if (source.substr(0, 3) === '1ET') { + eggTradebackLegal = true; + break; + } + } + if (!eggTradebackLegal && this.tradebackLimitedEggMoves) { + for (const eggMove of this.tradebackLimitedEggMoves) { + if (!this.limitedEggMoves) this.limitedEggMoves = []; + if (!this.limitedEggMoves.includes(eggMove)) this.limitedEggMoves.push(eggMove); + } + } this.moveEvoCarryCount += other.moveEvoCarryCount; this.dreamWorldMoveCount += other.dreamWorldMoveCount; if (other.sourcesAfter > this.sourcesAfter) this.sourcesAfter = other.sourcesAfter; @@ -200,6 +323,9 @@ export class TeamValidator { readonly toID: (str: any) => ID; constructor(format: string | Format, dex = Dex) { this.format = dex.formats.get(format); + if (this.format.effectType !== 'Format') { + throw new Error(`format should be a 'Format', but was a '${this.format.effectType}'`); + } this.dex = dex.forFormat(this.format); this.gen = this.dex.gen; this.ruleTable = this.dex.formats.getRuleTable(this.format); @@ -313,9 +439,10 @@ export class TeamValidator { problems = problems.concat(setProblems); } if (options.removeNicknames) { + const useCrossSpeciesNicknames = format.name.includes('Cross Evolution') || ruleTable.has('franticfusionsmod'); const species = dex.species.get(set.species); let crossSpecies: Species; - if (format.name === '[Gen 9] Cross Evolution' && (crossSpecies = dex.species.get(set.name)).exists) { + if (useCrossSpeciesNicknames && (crossSpecies = dex.species.get(set.name)).exists) { set.name = crossSpecies.name; } else { set.name = species.baseSpecies; @@ -341,7 +468,7 @@ export class TeamValidator { } for (const rule of ruleTable.keys()) { - if ('!+-'.includes(rule.charAt(0))) continue; + if ('!+-*'.includes(rule.charAt(0))) continue; const subformat = dex.formats.get(rule); if (subformat.onValidateTeam && ruleTable.has(subformat.id)) { problems = problems.concat(subformat.onValidateTeam.call(this, team, format, teamHas) || []); @@ -373,7 +500,7 @@ export class TeamValidator { return {species, eventData: learnset.eventData}; } - getValidationSpecies(set: PokemonSet): [Species, Species] { + getValidationSpecies(set: PokemonSet): {outOfBattleSpecies: Species, tierSpecies: Species} { const dex = this.dex; const ruleTable = this.ruleTable; const species = dex.species.get(set.species); @@ -382,8 +509,8 @@ export class TeamValidator { let outOfBattleSpecies = species; let tierSpecies = species; - if (ability.id === 'battlebond' && species.id === 'greninja') { - outOfBattleSpecies = dex.species.get('greninjaash'); + if (ability.id === 'battlebond' && toID(species.baseSpecies) === 'greninja') { + outOfBattleSpecies = dex.species.get('greninjabond'); if (ruleTable.has('obtainableformes')) { tierSpecies = outOfBattleSpecies; } @@ -411,7 +538,7 @@ export class TeamValidator { } } - return [outOfBattleSpecies, tierSpecies]; + return {outOfBattleSpecies, tierSpecies}; } validateSet(set: PokemonSet, teamHas: AnyObject): string[] | null { @@ -491,7 +618,7 @@ export class TeamValidator { const setSources = this.allSources(species); for (const [rule] of ruleTable) { - if ('!+-'.includes(rule.charAt(0))) continue; + if ('!+-*'.includes(rule.charAt(0))) continue; const subformat = dex.formats.get(rule); if (subformat.onChangeSet && ruleTable.has(subformat.id)) { problems = problems.concat(subformat.onChangeSet.call(this, set, format, setHas, teamHas) || []); @@ -506,8 +633,8 @@ export class TeamValidator { item = dex.items.get(set.item); ability = dex.abilities.get(set.ability); - const [outOfBattleSpecies, tierSpecies] = this.getValidationSpecies(set); - if (ability.id === 'battlebond' && species.id === 'greninja') { + const {outOfBattleSpecies, tierSpecies} = this.getValidationSpecies(set); + if (ability.id === 'battlebond' && toID(species.baseSpecies) === 'greninja') { if (ruleTable.has('obtainablemisc')) { if (set.gender && set.gender !== 'M') { problems.push(`Battle Bond Greninja must be male.`); @@ -549,19 +676,25 @@ export class TeamValidator { } if (set.hpType) { const type = dex.types.get(set.hpType); - if (!type.exists || ['normal', 'fairy'].includes(type.id)) { + if (!type.exists || ['normal', 'fairy', 'stellar'].includes(type.id)) { problems.push(`${name}'s Hidden Power type (${set.hpType}) is invalid.`); } else { set.hpType = type.name; } } + if (species.forceTeraType) { + set.teraType = species.forceTeraType; + } if (set.teraType) { const type = dex.types.get(set.teraType); - if (!type.exists) { + if (!type.exists || type.isNonstandard) { problems.push(`${name}'s Terastal type (${set.teraType}) is invalid.`); } else { set.teraType = type.name; } + if (dex.gen !== 9 || (ruleTable.has('terastalclause') && !ruleTable.has('bonustypemod'))) { + delete set.teraType; + } } let problem = this.checkSpecies(set, species, tierSpecies, setHas); @@ -573,7 +706,7 @@ export class TeamValidator { if (dex.gen === 4 && item.id === 'griseousorb' && species.num !== 487) { problems.push(`${set.name} cannot hold the Griseous Orb.`, `(In Gen 4, only Giratina could hold the Griseous Orb).`); } - if (dex.gen <= 1) { + if (dex.gen <= 1 || dex.currentMod === 'gen7letsgo') { if (item.id) { // no items allowed set.item = ''; @@ -647,8 +780,9 @@ export class TeamValidator { return problems; } + const pokemonGoProblems = this.validatePokemonGo(outOfBattleSpecies, set, setSources); if (ruleTable.isBanned('nonexistent')) { - problems.push(...this.validateStats(set, species, setSources)); + problems.push(...this.validateStats(set, species, setSources, pokemonGoProblems)); } const moveLegalityWhitelist: {[k: string]: true | undefined} = {}; @@ -673,22 +807,98 @@ export class TeamValidator { } } + const learnsetSpecies = dex.species.getLearnsetData(outOfBattleSpecies.id); + let isFromRBYEncounter = false; + if (this.gen === 1 && ruleTable.has('obtainablemisc') && !this.ruleTable.has('allowtradeback')) { + let lowestEncounterLevel; + for (const encounter of learnsetSpecies.encounters || []) { + if (encounter.generation !== 1) continue; + if (!encounter.level) continue; + if (lowestEncounterLevel && encounter.level > lowestEncounterLevel) continue; + + lowestEncounterLevel = encounter.level; + } + + if (lowestEncounterLevel) { + if (set.level < lowestEncounterLevel) { + problems.push(`${name} is not obtainable at levels below ${lowestEncounterLevel} in Gen 1.`); + } + isFromRBYEncounter = true; + } + } + let isUnderleveled; + if (!isFromRBYEncounter && ruleTable.has('obtainablemisc')) { + // FIXME: Event pokemon given at a level under what it normally can be attained at gives a false positive + let evoSpecies = species; + while (evoSpecies.prevo) { + if (set.level < (evoSpecies.evoLevel || 0)) { + isUnderleveled = evoSpecies.name; + break; + } + evoSpecies = dex.species.get(evoSpecies.prevo); + } + } + + let moveProblems; if (ruleTable.has('obtainablemoves')) { - problems.push(...this.validateMoves(outOfBattleSpecies, set.moves, setSources, set, name, moveLegalityWhitelist)); + moveProblems = this.validateMoves(outOfBattleSpecies, set.moves, setSources, set, name, moveLegalityWhitelist); + problems.push(...moveProblems); } - const learnsetSpecies = dex.species.getLearnsetData(outOfBattleSpecies.id); let eventOnlyData; - if (!setSources.sourcesBefore && setSources.sources.length) { - let legal = false; + if ((!setSources.sourcesBefore && setSources.sources.length) || isUnderleveled) { + let checkGoLegality = false; + let skippedEggSource = true; + const legalSources = []; + let evoSpecies = species; + if (isUnderleveled && !setSources.sources.length) { + while (evoSpecies.prevo) { + const eventData = dex.species.getLearnsetData(evoSpecies.id).eventData; + if (eventData) { + for (let eventIndex = 0; eventIndex < eventData.length; eventIndex++) { + const eventLevel = eventData[eventIndex].level; + if (eventLevel && set.level >= eventLevel) { + setSources.sources.push(eventData[eventIndex].generation + 'S' + eventIndex + ' ' + evoSpecies.id); + } + } + } + if (evoSpecies.name === isUnderleveled) break; + evoSpecies = dex.species.get(evoSpecies.prevo); + } + } else { + checkGoLegality = true; + } for (const source of setSources.sources) { + if (isUnderleveled && source.charAt(1) !== 'S' && source !== '8V') continue; + if (['2E', '3E'].includes(source.substr(0, 2)) && set.level < 5) continue; + skippedEggSource = false; if (this.validateSource(set, source, setSources, outOfBattleSpecies)) continue; - legal = true; - break; - } - - if (!legal) { + legalSources.push(source); + } + if (checkGoLegality && !legalSources.includes('8V')) setSources.isFromPokemonGo = false; + if (setSources.isFromPokemonGo !== false && pokemonGoProblems && !pokemonGoProblems.length) { + if (!legalSources.length) setSources.isFromPokemonGo = true; + if (!legalSources.includes('8V')) legalSources.push('8V'); + } + if (legalSources.length) { + setSources.sources = legalSources; + } else if (isUnderleveled) { + problems.push(`${name} must be at least level ${evoSpecies.evoLevel} to be evolved.`); + const firstEventSource = setSources.sources.filter(source => source.charAt(1) === 'S')[0]; + if (firstEventSource) { + const eventProblems = this.validateSource( + set, firstEventSource, setSources, outOfBattleSpecies, ` to be underleveled` + ); + if (eventProblems) problems.push(...eventProblems); + } + if (pokemonGoProblems) { + problems.push(`It failed to validate as a Pokemon from Pokemon GO because:`); + for (const pokemonGoProblem of pokemonGoProblems) { + problems.push(pokemonGoProblem); + } + } + } else { let nonEggSource = null; for (const source of setSources.sources) { if (source.charAt(1) !== 'E') { @@ -698,16 +908,31 @@ export class TeamValidator { } if (!nonEggSource) { // all egg moves - problems.push(`${name} can't get its egg move combination (${setSources.limitedEggMoves!.join(', ')}) from any possible father.`); - problems.push(`(Is this incorrect? If so, post the chainbreeding instructions in Bug Reports)`); + if (skippedEggSource) { + problems.push(`${name} is from a Gen 2 or 3 egg, which cannot be obtained at levels below 5.`); + } else { + problems.push(`${name} can't get its egg move combination (${setSources.limitedEggMoves!.join(', ')}) from any possible father.`); + problems.push(`(Is this incorrect? If so, post the chainbreeding instructions in Bug Reports)`); + } } else { - if (setSources.sources.length > 1) { - problems.push(`${name} has an event-exclusive move that it doesn't qualify for (only one of several ways to get the move will be listed):`); + if (species.id === 'mew' && pokemonGoProblems && !pokemonGoProblems.length) { + // Whitelist Pokemon GO Mew, which cannot be sent to Let's Go + setSources.isFromPokemonGo = true; + } else { + if (setSources.sources.length > 1) { + problems.push(`${name} has an event-exclusive move that it doesn't qualify for (only one of several ways to get the move will be listed):`); + } + const eventProblems = this.validateSource( + set, nonEggSource, setSources, outOfBattleSpecies, ` because it has a move only available` + ); + if (eventProblems) problems.push(...eventProblems); + if (species.id === 'mew' && pokemonGoProblems && pokemonGoProblems.length) { + problems.push(`Additionally, it failed to validate as a Pokemon from Pokemon GO because:`); + for (const pokemonGoProblem of pokemonGoProblems) { + problems.push(pokemonGoProblem); + } + } } - const eventProblems = this.validateSource( - set, nonEggSource, setSources, outOfBattleSpecies, ` because it has a move only available` - ); - if (eventProblems) problems.push(...eventProblems); } } } else if (ruleTable.has('obtainablemisc') && (eventOnlyData = this.getEventOnlyData(outOfBattleSpecies))) { @@ -715,6 +940,7 @@ export class TeamValidator { let legal = false; for (const event of eventData) { if (this.validateEvent(set, setSources, event, eventSpecies)) continue; + setSources.eventOnlyMinSourceGen = event.generation; legal = true; break; } @@ -722,52 +948,55 @@ export class TeamValidator { legal = true; } if (!legal) { - if (eventData.length === 1) { - problems.push(`${species.name} is only obtainable from an event - it needs to match its event:`); - } else { - problems.push(`${species.name} is only obtainable from events - it needs to match one of its events:`); - } - for (const [i, event] of eventData.entries()) { - if (event.generation <= dex.gen && event.generation >= this.minSourceGen) { - const eventInfo = event; - const eventNum = i + 1; - const eventName = eventData.length > 1 ? ` #${eventNum}` : ``; - const eventProblems = this.validateEvent( - set, setSources, eventInfo, eventSpecies, ` to be`, `from its event${eventName}` - ); - if (eventProblems) problems.push(...eventProblems); + if (!pokemonGoProblems || (pokemonGoProblems && pokemonGoProblems.length)) { + if (eventData.length === 1) { + problems.push(`${species.name} is only obtainable from an event - it needs to match its event:`); + } else { + problems.push(`${species.name} is only obtainable from events - it needs to match one of its events:`); + } + for (const [i, event] of eventData.entries()) { + if (event.generation <= dex.gen && event.generation >= this.minSourceGen) { + const eventInfo = event; + const eventNum = i + 1; + const eventName = eventData.length > 1 ? ` #${eventNum}` : ``; + const eventProblems = this.validateEvent( + set, setSources, eventInfo, eventSpecies, ` to be`, `from its event${eventName}` + ); + if (eventProblems) problems.push(...eventProblems); + } } + if (pokemonGoProblems && pokemonGoProblems.length) { + problems.push(`Additionally, it failed to validate as a Pokemon from Pokemon GO because:`); + for (const pokemonGoProblem of pokemonGoProblems) { + problems.push(pokemonGoProblem); + } + } + } else { + setSources.isFromPokemonGo = true; } } } - let isFromRBYEncounter = false; - if (this.gen === 1 && ruleTable.has('obtainablemisc') && !this.ruleTable.has('allowtradeback')) { - let lowestEncounterLevel; - for (const encounter of learnsetSpecies.encounters || []) { - if (encounter.generation !== 1) continue; - if (!encounter.level) continue; - if (lowestEncounterLevel && encounter.level > lowestEncounterLevel) continue; - - lowestEncounterLevel = encounter.level; - } - - if (lowestEncounterLevel) { - if (set.level < lowestEncounterLevel) { - problems.push(`${name} is not obtainable at levels below ${lowestEncounterLevel} in Gen 1.`); + // Hardcoded forced validation for Pokemon GO + const pokemonGoOnlySpecies = ['meltan', 'melmetal', 'gimmighoulroaming']; + if (ruleTable.has('obtainablemisc') && (pokemonGoOnlySpecies.includes(species.id))) { + setSources.isFromPokemonGo = true; + if (pokemonGoProblems && pokemonGoProblems.length) { + problems.push(`${name} is only obtainable from Pokemon GO, and failed to validate because:`); + for (const pokemonGoProblem of pokemonGoProblems) { + problems.push(pokemonGoProblem); } - isFromRBYEncounter = true; } } - if (!isFromRBYEncounter && ruleTable.has('obtainablemisc')) { - // FIXME: Event pokemon given at a level under what it normally can be attained at gives a false positive - let evoSpecies = species; - while (evoSpecies.prevo) { - if (set.level < (evoSpecies.evoLevel || 0)) { - problems.push(`${name} must be at least level ${evoSpecies.evoLevel} to be evolved.`); - break; - } - evoSpecies = dex.species.get(evoSpecies.prevo); + + // Attempt move validation again after verifying Pokemon GO origin + if (ruleTable.has('obtainablemoves') && setSources.isFromPokemonGo) { + setSources.restrictiveMoves = []; + setSources.sources = ['8V']; + setSources.sourcesBefore = 0; + if (moveProblems && !moveProblems.length) { + problems.push(...this.validateMoves(outOfBattleSpecies, set.moves, setSources, set, name, + moveLegalityWhitelist)); } } @@ -820,7 +1049,7 @@ export class TeamValidator { } for (const [rule] of ruleTable) { - if ('!+-'.includes(rule.charAt(0))) continue; + if ('!+-*'.includes(rule.charAt(0))) continue; const subformat = dex.formats.get(rule); if (subformat.onValidateSet && ruleTable.has(subformat.id)) { problems = problems.concat(subformat.onValidateSet.call(this, set, format, setHas, teamHas) || []); @@ -835,7 +1064,8 @@ export class TeamValidator { // nickname is the name of a species if (nameSpecies.baseSpecies === species.baseSpecies) { set.name = species.baseSpecies; - } else if (nameSpecies.name !== species.name && nameSpecies.name !== species.baseSpecies) { + } else if (nameSpecies.name !== species.name && + nameSpecies.name !== species.baseSpecies && ruleTable.has('nicknameclause')) { // nickname species doesn't match actual species // Nickname Clause problems.push(`${name} must not be nicknamed a different Pokémon species than what it actually is.`); @@ -843,6 +1073,9 @@ export class TeamValidator { } if (!problems.length) { + if (set.gender === '' && !species.gender) { + set.gender = ['M', 'F'][Math.floor(Math.random() * 2)]; + } if (adjustLevel) set.level = adjustLevel; return null; } @@ -850,7 +1083,7 @@ export class TeamValidator { return problems; } - validateStats(set: PokemonSet, species: Species, setSources: PokemonSources) { + validateStats(set: PokemonSet, species: Species, setSources: PokemonSources, pokemonGoProblems: string[] | null) { const ruleTable = this.ruleTable; const dex = this.dex; @@ -888,10 +1121,13 @@ export class TeamValidator { set.ivs = TeamValidator.fillStats(dex.types.get(set.hpType).HPivs, 31); } } + if (!set.hpType && set.moves.some(m => dex.moves.get(m).id === 'hiddenpower')) { + set.hpType = dex.getHiddenPower(set.ivs).type; + } const cantBreedNorEvolve = (species.eggGroups[0] === 'Undiscovered' && !species.prevo && !species.nfe); const isLegendary = (cantBreedNorEvolve && !species.tags.includes('Paradox') && ![ - 'Pikachu', 'Unown', 'Dracozolt', 'Arctozolt', 'Dracovish', 'Arctovish', + 'Pikachu', 'Unown', 'Dracozolt', 'Arctozolt', 'Dracovish', 'Arctovish', 'Gouging Fire', 'Raging Bolt', 'Iron Boulder', 'Iron Crown', 'Terapagos', ].includes(species.baseSpecies)) || [ 'Manaphy', 'Cosmog', 'Cosmoem', 'Solgaleo', 'Lunala', ].includes(species.baseSpecies); @@ -911,8 +1147,18 @@ export class TeamValidator { if (set.ivs[stat as 'hp'] >= 31) perfectIVs++; } if (perfectIVs < 3) { - const reason = (this.minSourceGen === 6 ? ` and this format requires Gen ${dex.gen} Pokémon` : ` in Gen 6 or later`); - problems.push(`${name} must have at least three perfect IVs because it's a legendary${reason}.`); + if (!pokemonGoProblems || (pokemonGoProblems && pokemonGoProblems.length)) { + const reason = (this.minSourceGen === 6 ? ` and this format requires Gen ${dex.gen} Pokémon` : ` in Gen 6 or later`); + problems.push(`${name} must have at least three perfect IVs because it's a legendary${reason}.`); + if (pokemonGoProblems && pokemonGoProblems.length) { + problems.push(`Additionally, it failed to validate as a Pokemon from Pokemon GO because:`); + for (const pokemonGoProblem of pokemonGoProblems) { + problems.push(pokemonGoProblem); + } + } + } else { + setSources.isFromPokemonGo = true; + } } } @@ -1131,24 +1377,30 @@ export class TeamValidator { return this.validateEvent(set, setSources, eventData, eventSpecies, because as any) as any; } - findEggMoveFathers(source: PokemonSource, species: Species, setSources: PokemonSources): boolean; - findEggMoveFathers(source: PokemonSource, species: Species, setSources: PokemonSources, getAll: true): ID[] | null; - findEggMoveFathers(source: PokemonSource, species: Species, setSources: PokemonSources, getAll = false) { + findEggMoveFathers(source: PokemonSource, species: Species, setSources: PokemonSources, + getAll?: false, pokemonBlacklist?: ID[], noRecurse?: true): boolean; + findEggMoveFathers(source: PokemonSource, species: Species, setSources: PokemonSources, getAll?: true): ID[] | null; + findEggMoveFathers(source: PokemonSource, species: Species, setSources: PokemonSources, + getAll?: boolean, pokemonBlacklist?: ID[], noRecurse?: boolean) { + if (!pokemonBlacklist) pokemonBlacklist = []; + if (!pokemonBlacklist.includes(species.id)) pokemonBlacklist.push(species.id); // tradebacks have an eggGen of 2 even though the source is 1ET const eggGen = Math.max(parseInt(source.charAt(0)), 2); const fathers: ID[] = []; // Gen 6+ don't have egg move incompatibilities // (except for certain cases with baby Pokemon not handled here) - if (!getAll && eggGen >= 6) return true; + if (!getAll && eggGen >= 6 && !setSources.levelUpEggMoves && !species.mother) return true; - const eggMoves = setSources.limitedEggMoves; + let eggMoves = setSources.limitedEggMoves; + if (eggGen === 3) eggMoves = eggMoves?.filter(eggMove => !setSources.pomegEggMoves?.includes(eggMove)); // must have 2 or more egg moves to have egg move incompatibilities if (!eggMoves) { // happens often in gen 1-6 LC if your only egg moves are level-up moves, // which aren't limited and so aren't in `limitedEggMoves` return getAll ? ['*'] : true; } - if (!getAll && eggMoves.length <= 1) return true; + if (!getAll && eggMoves.length <= 1 && !setSources.levelUpEggMoves) return true; + if (setSources.levelUpEggMoves && eggGen >= 6) eggMoves = setSources.levelUpEggMoves; // gen 1 eggs come from gen 2 breeding const dex = this.dex.gen === 1 ? this.dex.mod('gen2') : this.dex; @@ -1180,10 +1432,10 @@ export class TeamValidator { // father must be male if (father.gender === 'N' || father.gender === 'F') continue; // can't inherit from dex entries with no learnsets - if (!dex.species.getLearnset(father.id)) continue; + if (!dex.species.getLearnsetData(father.id).learnset) continue; // something is clearly wrong if its only possible father is itself // (exceptions: ExtremeSpeed Dragonite, Self-destruct Snorlax) - if (species.id === father.id && !['dragonite', 'snorlax'].includes(father.id)) continue; + if (pokemonBlacklist.includes(father.id) && !['dragonite', 'snorlax'].includes(father.id)) continue; // don't check NFE Pokémon - their evolutions will know all their moves and more // exception: Combee/Salandit, because their evos can't be fathers if (father.evos.length) { @@ -1195,7 +1447,7 @@ export class TeamValidator { if (!father.eggGroups.some(eggGroup => eggGroups.includes(eggGroup))) continue; // father must be able to learn the move - if (!this.fatherCanLearn(father, eggMoves, eggGen)) continue; + if (!this.fatherCanLearn(species, father, eggMoves, eggGen, pokemonBlacklist, noRecurse)) continue; // father found! if (!getAll) return true; @@ -1209,51 +1461,82 @@ export class TeamValidator { * We could, if we wanted, do a complete move validation of the father's * moveset to see if it's valid. This would recurse and be NP-Hard so * instead we won't. We'll instead use a simplified algorithm: The father - * can learn the moveset if it has at most one egg/event move. - * - * `eggGen` should be 5 or earlier. Later gens should never call this - * function (the answer is always yes). + * is allowed to have multiple egg moves and a maximum of one move from + * any other restrictive source; recursion is done only if there are less + * egg moves to validate or if the father has an egg group it doesn't + * share with the egg Pokemon. Recursion is also limited to two iterations + * of calling findEggMoveFathers. */ - fatherCanLearn(species: Species, moves: ID[], eggGen: number) { - let learnset = this.dex.species.getLearnset(species.id); - if (!learnset) return false; + fatherCanLearn(baseSpecies: Species, species: Species, moves: ID[], eggGen: number, pokemonBlacklist: ID[], + noRecurse: boolean | undefined) { + if (!this.dex.species.getLearnsetData(species.id).learnset) return false; if (species.id === 'smeargle') return true; const canBreedWithSmeargle = species.eggGroups.includes('Field'); - let eggMoveCount = 0; + const allEggSources = new PokemonSources(); + allEggSources.sourcesBefore = eggGen; for (const move of moves) { - let curSpecies: Species | null = species; - /** 1 = can learn from egg, 2 = can learn unrestricted */ - let canLearn: 0 | 1 | 2 = 0; - - while (curSpecies) { - learnset = this.dex.species.getLearnset(curSpecies.id); - if (learnset && learnset[move]) { + const eggSources = new PokemonSources(); + for (const {learnset, species: curSpecies} of this.dex.species.getFullLearnset(species.id)) { + const eggPokemon = curSpecies.prevo ? curSpecies.id : ''; + if (learnset[move]) { for (const moveSource of learnset[move]) { + if (eggGen > 8 && parseInt(moveSource.charAt(0)) <= 8) continue; if (parseInt(moveSource.charAt(0)) > eggGen) continue; const canLearnFromSmeargle = moveSource.charAt(1) === 'E' && canBreedWithSmeargle; if (!'ESDV'.includes(moveSource.charAt(1)) || canLearnFromSmeargle) { - canLearn = 2; + eggSources.addGen(parseInt(moveSource.charAt(0))); break; } else { - canLearn = 1; + if (moveSource.charAt(1) === 'E') { + eggSources.add(moveSource + eggPokemon, move); + if (eggGen === 2 && this.dex.moves.getByID(move).gen === 1) eggSources.add('1ET' + eggPokemon, move); + } else { + eggSources.add(moveSource + eggPokemon); + } } } } - if (canLearn === 2) break; - curSpecies = this.learnsetParent(curSpecies); + if (eggSources.sourcesBefore === eggGen) break; } - if (!canLearn) return false; - if (canLearn === 1) { - eggMoveCount++; - if (eggMoveCount > 1) return false; + if (eggSources.sourcesBefore === eggGen) continue; + if (!eggSources.sourcesBefore && !eggSources.sources.length) return false; + const onlyEggSources = eggSources.sources.filter(source => source.charAt(1) === 'E'); + if (eggGen >= 3 && onlyEggSources.length && eggSources.limitedEggMoves === null && eggSources.sourcesBefore) { + eggSources.possiblyLimitedEggMoves = [toID(eggSources.sourcesBefore + move)]; + } + allEggSources.intersectWith(eggSources); + if (!allEggSources.size()) return false; + } + pokemonBlacklist.push(species.id); + if (allEggSources.limitedEggMoves && allEggSources.limitedEggMoves.length > 1) { + if (noRecurse) return false; + let canChainbreed = false; + for (const fatherEggGroup of species.eggGroups) { + if (!baseSpecies.eggGroups.includes(fatherEggGroup)) { + canChainbreed = true; + break; + } } + if (!canChainbreed && allEggSources.limitedEggMoves.length === moves.length) return false; + const setSources = new PokemonSources(); + setSources.limitedEggMoves = allEggSources.limitedEggMoves; + return this.findEggMoveFathers(allEggSources.sources[0], species, setSources, false, pokemonBlacklist, true); } return true; } + motherCanLearn(species: ID, move: ID) { + if (!species) return false; + const fullLearnset = this.dex.species.getFullLearnset(species); + for (const {learnset} of fullLearnset) { + if (learnset[move]) return true; + } + return false; + } + validateForme(set: PokemonSet) { const dex = this.dex; const name = set.name || set.species; @@ -1263,20 +1546,25 @@ export class TeamValidator { const species = dex.species.get(set.species); if (species.name === 'Necrozma-Ultra') { - const whichMoves = (set.moves.includes('sunsteelstrike') ? 1 : 0) + - (set.moves.includes('moongeistbeam') ? 2 : 0); + const whichMoves = (set.moves.map(toID).includes('sunsteelstrike' as ID) ? 1 : 0) + + (set.moves.map(toID).includes('moongeistbeam' as ID) ? 2 : 0); if (item.name !== 'Ultranecrozium Z') { // Necrozma-Ultra transforms from one of two formes, and neither one is the base forme problems.push(`Necrozma-Ultra must start the battle holding Ultranecrozium Z.`); } else if (whichMoves === 1) { set.species = 'Necrozma-Dusk-Mane'; + set.ability = 'Prism Armor'; } else if (whichMoves === 2) { set.species = 'Necrozma-Dawn-Wings'; + set.ability = 'Prism Armor'; } else { problems.push(`Necrozma-Ultra must start the battle as Necrozma-Dusk-Mane or Necrozma-Dawn-Wings holding Ultranecrozium Z. Please specify which Necrozma it should start as.`); } } else if (species.name === 'Zygarde-Complete') { problems.push(`Zygarde-Complete must start the battle as Zygarde or Zygarde-10% with Power Construct. Please specify which Zygarde it should start as.`); + } else if (species.baseSpecies === 'Terapagos') { + set.species = 'Terapagos'; + set.ability = 'Tera Shift'; } else if (species.battleOnly) { if (species.requiredAbility && set.ability !== species.requiredAbility) { // Darmanitan-Zen @@ -1362,6 +1650,33 @@ export class TeamValidator { set.moves[behemothMove] = 'ironhead'; } } + if (species.baseSpecies === "Hoopa" && dex.gen >= 9) { + const moves = set.moves.map(toID); + const hyperspaceHole = moves.indexOf('hyperspacehole' as ID); + const hyperspaceFury = moves.indexOf('hyperspacefury' as ID); + if (species.name === "Hoopa" && hyperspaceFury >= 0) { + problems.push(`In Generation 9, Hoopa cannot run Hyperspace Fury because it gets replaced with Hyperspace Hole upon changing forme.`); + } else if (species.name === "Hoopa-Unbound" && hyperspaceHole >= 0) { + problems.push(`In Generation 9, Hoopa-Unbound cannot run Hyperspace Hole because it gets replaced with Hyperspace Fury upon changing forme.`); + } + } + + if (species.baseSpecies === "Greninja" && toID(set.ability) === 'battlebond') { + set.species = "Greninja-Bond"; + } + + if (species.baseSpecies === "Unown" && dex.gen === 2) { + let resultBinary = ''; + for (const iv of ['atk', 'def', 'spe', 'spa'] as const) { + resultBinary += set.ivs[iv].toString(2).padStart(5, '0').slice(1, 3); + } + const resultDecimal = Math.floor(parseInt(resultBinary, 2) / 10); + const expectedLetter = String.fromCharCode(resultDecimal + 65); + const unownLetter = species.forme || "A"; + if (unownLetter !== expectedLetter) { + problems.push(`Unown has forme ${unownLetter}, but its DVs give it the forme ${expectedLetter}.`); + } + } return problems; } @@ -1394,6 +1709,9 @@ export class TeamValidator { setHas['pokemon:' + tierSpecies.id + 'gmax'] = true; isGmax = true; } + if (tierSpecies.baseSpecies === 'Greninja' && toID(set.ability) === 'battlebond') { + setHas['pokemon:greninjabond'] = true; + } const tier = tierSpecies.tier === '(PU)' ? 'ZU' : tierSpecies.tier === '(NU)' ? 'PU' : tierSpecies.tier; const tierTag = 'pokemontag:' + toID(tier); @@ -1463,7 +1781,7 @@ export class TeamValidator { for (const ruleid of ruleTable.tagRules) { if (ruleid.startsWith('*')) continue; - const tagid = ruleid.slice(12); + const tagid = ruleid.slice(12) as ID; const tag = Tags[tagid]; if ((tag.speciesFilter || tag.genericFilter)!(tierSpecies)) { const existenceTag = EXISTENCE_TAG.includes(tagid); @@ -1781,7 +2099,7 @@ export class TeamValidator { if (canBottleCap) { // IVs can be overridden but Hidden Power type can't if (Object.keys(eventData.ivs).length >= 6) { - const requiredHpType = dex.getHiddenPower(eventData.ivs).type; + const requiredHpType = dex.getHiddenPower(eventData.ivs as StatsTable).type; if (set.hpType && set.hpType !== requiredHpType) { if (fastReturn) return true; problems.push(`${name} can only have Hidden Power ${requiredHpType}${etc}.`); @@ -1963,6 +2281,123 @@ export class TeamValidator { return problems; } + /** + * Returns a list of problems regarding a Pokemon's avilability in Pokemon GO (empty list if no problems) + * If the Pokemon cannot be obtained from Pokemon GO, returns null + */ + validatePokemonGo( + species: Species, set: PokemonSet, setSources: PokemonSources, name: string = species.name, + ): string[] | null { + let problems = []; + let minLevel = 50; // maximum level a Pokemon can be in Pokemon GO + let minIVs = 15; // IVs range from 0 to 15 in Pokemon GO + const dex = this.dex; + const pokemonGoData = dex.species.getPokemonGoData(species.id); + if (dex.gen < 8 || this.format.mod === 'gen8dlc1') return null; + if (!pokemonGoData) { + // Handles forms and evolutions not obtainable from Pokemon GO + const otherSpecies = this.dex.species.learnsetParent(species); + // If a Pokemon is somehow not obtainable from Pokemon GO and it must be leveled up to be evolved, + // validation for the game should stop because it's more optimal to get the Pokemon outside of the game + if (otherSpecies && !species.evoLevel) { + const otherProblems = this.validatePokemonGo(otherSpecies, set, setSources, name); + if (otherProblems) { + problems = otherProblems; + } else { + return null; + } + } else { + return null; + } + } else { + const pokemonGoSources = pokemonGoData.encounters; + // should never happen + if (!pokemonGoSources) throw new Error(`Species with no Pokemon GO data: ${species.id}`); + if (set.shiny) name = "Shiny " + name; + if (set.shiny && pokemonGoSources.includes('noshiny')) { + problems.push(`${name} is not obtainable from Pokemon GO.`); + } else { + if (pokemonGoSources.includes('wild') && !((set.shiny && pokemonGoSources.includes('nowildshiny')))) { + minLevel = 1; + minIVs = 0; + } + if (pokemonGoSources.includes('egg')) { + /** + * A Pokemon's level when hatched is determined by the trainer's level when it is obtained + * It is no longer possible for new accounts to obtain eggs at level 1 because they will have reached + * level 2 by the time they can spin a PokeStop. However, it might be possible for a sleeper account + * from before XP changes to get a level 1 egg from spinning a PokeStop that sends the account to + * level 2, but this needs research + */ + minLevel = Math.min(minLevel, 2); + minIVs = Math.min(minIVs, 10); + } + if (pokemonGoSources.includes('12kmegg')) { + minLevel = Math.min(minLevel, 8); + minIVs = Math.min(minIVs, 10); + } + if (pokemonGoSources.includes('raid')) { + minLevel = Math.min(minLevel, 20); + minIVs = Math.min(minIVs, 10); + } + if (species.id === 'mewtwo' && set.level >= 20) { + // A bug allowed Mewtwo to be encountered with an IV floor of 0 from GO Battle League + minIVs = Math.min(minIVs, 0); + } + if (pokemonGoSources.includes('research')) { + minLevel = Math.min(minLevel, 15); + minIVs = Math.min(minIVs, 10); + } + if (pokemonGoSources.includes('giovanni') && !set.shiny) { + /** + * Purified Pokemon can be leveled down to level 8 after trading; they are forced to + * special trades, but currently all Giovanni Shadow Pokemon are already forced special trades + */ + minLevel = Math.min(minLevel, 8); + minIVs = Math.min(minIVs, 1); + if (set.level < 12) setSources.pokemonGoSource = "purified"; + } + // Attempt to trade the Pokemon to reduce level and IVs + if (!pokemonGoSources.includes('notrade')) { + // Special trades require a good friend + // Trading with a friend of this level has an IV floor of 1 + // Note that (non-shiny) Deoxys could be traded for a short time when it was introduced + if (!set.shiny || species.id !== 'deoxys') { + const specialTrade = pokemonGoSources.includes('specialtrade') || set.shiny; + minLevel = Math.min(minLevel, 12); + minIVs = Math.min(minIVs, specialTrade ? 1 : 0); + } + } + if (set.level < minLevel) { + problems.push(`${name} must be at least level ${minLevel} to be from Pokemon GO.`); + } + const ivs = set.ivs || TeamValidator.fillStats(null, 31); + const postTransferMinIVs = minIVs * 2 + 1; + let IVsTooLow = false; + let hasEvenIVs = false; + for (const stat in ivs) { + if (stat === 'spe') continue; + if (ivs[stat as 'hp'] < postTransferMinIVs) IVsTooLow = true; + if (ivs[stat as 'hp'] % 2 === 0) hasEvenIVs = true; + } + if (IVsTooLow) { + problems.push(`${name} must have at least ${postTransferMinIVs} ` + + (postTransferMinIVs === 1 ? `IV` : `IVs`) + ` in non-Speed stats to be from Pokemon GO.`); + } + if (hasEvenIVs) { + problems.push(`${name} must have odd non-Speed IVs to be from Pokemon GO.`); + } + const canBottleCap = dex.gen >= 7 && set.level >= (dex.gen < 9 ? 100 : 50); + if (ivs.atk !== ivs.spa && !(canBottleCap && (ivs.atk === 31 || ivs.spa === 31))) { + problems.push(`${name}'s Atk and Sp. Atk IVs must match to be from Pokemon GO.`); + } + if (ivs.def !== ivs.spd && !(canBottleCap && (ivs.def === 31 || ivs.spd === 31))) { + problems.push(`${name}'s Def and Sp. Def IVs must match to be from Pokemon GO.`); + } + } + } + return problems; + } omCheckCanLearn( move: Move, @@ -1983,8 +2418,8 @@ export class TeamValidator { /** Returns null if you can learn the move, or a string explaining why you can't learn it */ checkCanLearn( move: Move, - s: Species, - setSources = this.allSources(s), + originalSpecies: Species, + setSources = this.allSources(originalSpecies), set: Partial = {} ): string | null { const dex = this.dex; @@ -1992,13 +2427,12 @@ export class TeamValidator { move = dex.moves.get(move); const moveid = move.id; - const baseSpecies = dex.species.get(s); - let species: Species | null = baseSpecies; + const baseSpecies = dex.species.get(originalSpecies); const format = this.format; - const ruleTable = dex.formats.getRuleTable(format); - const alreadyChecked: {[k: string]: boolean} = {}; + const ruleTable = this.ruleTable; const level = set.level || 100; + const canLearnSpecies: ID[] = []; let cantLearnReason = null; @@ -2007,6 +2441,7 @@ export class TeamValidator { let blockedHM = false; let babyOnly = ''; + let minLearnGen = dex.gen; // This is a pretty complicated algorithm @@ -2029,190 +2464,231 @@ export class TeamValidator { const canSketchPostGen7Moves = ruleTable.has('sketchpostgen7moves') || this.dex.currentMod === 'gen8bdsp'; let tradebackEligible = false; - while (species?.name && !alreadyChecked[species.id]) { - alreadyChecked[species.id] = true; - if (dex.gen <= 2 && species.gen === 1) tradebackEligible = true; - let learnset = dex.species.getLearnset(species.id); - if (!learnset) { - if ((species.changesFrom || species.baseSpecies) !== species.name) { - // forme without its own learnset - species = dex.species.get(species.changesFrom || species.baseSpecies); - // warning: formes with their own learnset, like Wormadam, should NOT - // inherit from their base forme unless they're freely switchable - continue; - } - if (species.isNonstandard) { - // It's normal for a nonstandard species not to have learnset data + const fullLearnset = dex.species.getFullLearnset(originalSpecies.id); + if (!fullLearnset.length) { + // It's normal for a nonstandard species not to have learnset data - // Formats should replace the `Obtainable Moves` rule if they want to - // allow pokemon without learnsets. - return ` can't learn any moves at all.`; - } - if (species.prevo && dex.species.getLearnset(toID(species.prevo))) { - learnset = dex.species.getLearnset(toID(species.prevo)); - continue; - } - // should never happen - throw new Error(`Species with no learnset data: ${species.id}`); - } - const checkingPrevo = species.baseSpecies !== s.baseSpecies; + // Formats should replace the `Obtainable Moves` rule if they want to + // allow pokemon without learnsets. + return ` can't learn any moves at all.`; + } + + for (const {species, learnset} of fullLearnset) { + if (dex.gen <= 2 && species.gen === 1) tradebackEligible = true; + const checkingPrevo = species.baseSpecies !== originalSpecies.baseSpecies; if (checkingPrevo && !moveSources.size()) { if (!setSources.babyOnly || !species.prevo) { babyOnly = species.id; } } - let sources = learnset[moveid]; + const formeCantInherit = dex.species.eggMovesOnly(species, baseSpecies); + if (formeCantInherit && dex.gen < 9) break; + + let sources = learnset[moveid] || []; if (moveid === 'sketch') { sketch = true; } else if (learnset['sketch']) { - if (move.noSketch || move.isZ || move.isMax) { + if (move.flags['nosketch'] || move.isZ || move.isMax) { cantLearnReason = `can't be Sketched.`; - } else if (move.gen > 7 && !canSketchPostGen7Moves) { + } else if (move.gen > 7 && !canSketchPostGen7Moves && + (dex.gen === 8 || + (dex.gen === 9 && ['gen9dlc1', 'gen9predlc'].includes(format.mod)))) { cantLearnReason = `can't be Sketched because it's a Gen ${move.gen} move and Sketch isn't available in Gen ${move.gen}.`; } else { - if (!sources || !moveSources.size()) sketch = true; - sources = learnset['sketch'].concat(sources || []); - } - } - - if (typeof sources === 'string') sources = [sources]; - if (sources) { - for (let learned of sources) { - // Every `learned` represents a single way a pokemon might - // learn a move. This can be handled one of several ways: - // `continue` - // means we can't learn it - // `return null` - // means we can learn it with no restrictions - // (there's a way to just teach any pokemon of this species - // the move in the current gen, like a TM.) - // `moveSources.add(source)` - // means we can learn it only if obtained that exact way described - // in source - // `moveSources.addGen(learnedGen)` - // means we can learn it only if obtained at or before learnedGen - // (i.e. get the pokemon however you want, transfer to that gen, - // teach it, and transfer it to the current gen.) - - const learnedGen = parseInt(learned.charAt(0)); - if (learnedGen < this.minSourceGen) { - if (!cantLearnReason) { - cantLearnReason = `can't be transferred from Gen ${learnedGen} to ${this.minSourceGen}.`; - } - continue; + if (!sources.length || !moveSources.size()) sketch = true; + sources = [...learnset['sketch'], ...sources]; + } + } + + for (let learned of sources) { + // Every `learned` represents a single way a pokemon might + // learn a move. This can be handled one of several ways: + // `continue` + // means we can't learn it + // `return null` + // means we can learn it with no restrictions + // (there's a way to just teach any pokemon of this species + // the move in the current gen, like a TM.) + // `moveSources.add(source)` + // means we can learn it only if obtained that exact way described + // in source + // `moveSources.addGen(learnedGen)` + // means we can learn it only if obtained at or before learnedGen + // (i.e. get the pokemon however you want, transfer to that gen, + // teach it, and transfer it to the current gen.) + + const learnedGen = parseInt(learned.charAt(0)); + if (formeCantInherit && (learned.charAt(1) !== 'E' || learnedGen < 9)) continue; + if (setSources.learnsetDomain && !setSources.learnsetDomain.includes(learnedGen + species.id) && + (learned.charAt(1) !== 'E' || learnedGen < 8) + ) { + if (!cantLearnReason) { + cantLearnReason = `is incompatible with ${(setSources.restrictiveMoves || []).join(', ')}.`; } - if (noFutureGen && learnedGen > dex.gen) { - if (!cantLearnReason) { - cantLearnReason = `can't be transferred from Gen ${learnedGen} to ${dex.gen}.`; - } - continue; + continue; + } + if (learnedGen < this.minSourceGen) { + if (!cantLearnReason) { + cantLearnReason = `can't be transferred from Gen ${learnedGen} to ${this.minSourceGen}.`; + } + continue; + } + if (noFutureGen && learnedGen > dex.gen) { + if (!cantLearnReason) { + cantLearnReason = `can't be transferred from Gen ${learnedGen} to ${dex.gen}.`; } + continue; + } - // redundant - if (learnedGen <= moveSources.sourcesBefore) continue; + if ( + baseSpecies.evoRegion === 'Alola' && checkingPrevo && learnedGen >= 8 && + (dex.gen < 9 || learned.charAt(1) !== 'E') + ) { + cantLearnReason = `is from a ${species.name} that can't be transferred to USUM to evolve into ${baseSpecies.name}.`; + continue; + } - if (baseSpecies.evoRegion === 'Alola' && checkingPrevo && learnedGen >= 8) { - cantLearnReason = `is from a ${species.name} that can't be transferred to USUM to evolve into ${baseSpecies.name}.`; - continue; - } + const canUseAbilityPatch = dex.gen >= 8 && format.mod !== 'gen8dlc1'; + if ( + learnedGen < 7 && setSources.isHidden && !canUseAbilityPatch && + !dex.mod('gen' + learnedGen).species.get(baseSpecies.name).abilities['H'] + ) { + cantLearnReason = `can only be learned in gens without Hidden Abilities.`; + continue; + } - const canUseAbilityPatch = dex.gen >= 8 && format.mod !== 'gen8dlc1'; - if ( - learnedGen < 7 && setSources.isHidden && !canUseAbilityPatch && - !dex.mod('gen' + learnedGen).species.get(baseSpecies.name).abilities['H'] - ) { - cantLearnReason = `can only be learned in gens without Hidden Abilities.`; + const ability = dex.abilities.get(set.ability); + if (dex.gen < 6 && ability.gen > learnedGen && !checkingPrevo) { + // You can evolve a transfered mon to reroll for its new Ability. + cantLearnReason = `is learned in gen ${learnedGen}, but the Ability ${ability.name} did not exist then.`; + continue; + } + + if (species.isNonstandard !== 'CAP') { + // HMs can't be transferred + if (dex.gen >= 4 && learnedGen <= 3 && [ + 'cut', 'fly', 'surf', 'strength', 'flash', 'rocksmash', 'waterfall', 'dive', + ].includes(moveid)) { + cantLearnReason = `can't be transferred from Gen 3 to 4 because it's an HM move.`; continue; } - if (!species.isNonstandard) { - // HMs can't be transferred - if (dex.gen >= 4 && learnedGen <= 3 && [ - 'cut', 'fly', 'surf', 'strength', 'flash', 'rocksmash', 'waterfall', 'dive', - ].includes(moveid)) { - cantLearnReason = `can't be transferred from Gen 3 to 4 because it's an HM move.`; - continue; - } - if (dex.gen >= 5 && learnedGen <= 4 && [ - 'cut', 'fly', 'surf', 'strength', 'rocksmash', 'waterfall', 'rockclimb', - ].includes(moveid)) { - cantLearnReason = `can't be transferred from Gen 4 to 5 because it's an HM move.`; - continue; - } - // Defog and Whirlpool can't be transferred together - if (dex.gen >= 5 && ['defog', 'whirlpool'].includes(moveid) && learnedGen <= 4) blockedHM = true; + if (dex.gen >= 5 && learnedGen <= 4 && [ + 'cut', 'fly', 'surf', 'strength', 'rocksmash', 'waterfall', 'rockclimb', + ].includes(moveid)) { + cantLearnReason = `can't be transferred from Gen 4 to 5 because it's an HM move.`; + continue; } + // Defog and Whirlpool can't be transferred together + if (dex.gen >= 5 && ['defog', 'whirlpool'].includes(moveid) && learnedGen <= 4) blockedHM = true; + } - if (learned.charAt(1) === 'L') { - // special checking for level-up moves - if (level >= parseInt(learned.substr(2)) || learnedGen === 7) { - // we're past the required level to learn it - // (gen 7 level-up moves can be relearnered at any level) - // falls through to LMT check below - } else if (level >= 5 && learnedGen === 3 && species.canHatch) { - // Pomeg Glitch - } else if ((!species.gender || species.gender === 'F') && learnedGen >= 2 && species.canHatch) { - // available as egg move - learned = learnedGen + 'Eany'; - // falls through to E check below - } else { - // this move is unavailable, skip it + if (learned.charAt(1) === 'L') { + // special checking for level-up moves + if (level >= parseInt(learned.substr(2)) || learnedGen === 7) { + // we're past the required level to learn it + // (gen 7 level-up moves can be relearnered at any level) + // falls through to LMT check below + } else if (level >= 5 && learnedGen === 3 && species.canHatch) { + // Pomeg Glitch + learned = learnedGen + 'Epomeg' as MoveSource; + } else if (species.gender !== 'N' && + learnedGen >= 2 && species.canHatch && !setSources.isFromPokemonGo) { + // available as egg move + if (species.gender === 'M' && !this.motherCanLearn(toID(species.mother), moveid)) { + // male-only Pokemon can have level-up egg moves if it can have a mother that learns the move cantLearnReason = `is learned at level ${parseInt(learned.substr(2))}.`; continue; } + learned = learnedGen + 'Eany' as MoveSource; + // falls through to E check below + } else { + // this move is unavailable, skip it + cantLearnReason = `is learned at level ${parseInt(learned.substr(2))}.`; + continue; } + } - // Gen 8+ egg moves can be taught to any pokemon from any source - if (learnedGen >= 8 && learned.charAt(1) === 'E' || 'LMTR'.includes(learned.charAt(1))) { - if (learnedGen === dex.gen && learned.charAt(1) !== 'R') { - // current-gen level-up, TM or tutor moves: - // always available - if (!(learnedGen >= 8 && learned.charAt(1) === 'E') && babyOnly) setSources.babyOnly = babyOnly; - if (!moveSources.moveEvoCarryCount) return null; - } - // past-gen level-up, TM, or tutor moves: - // available as long as the source gen was or was before this gen - if (learned.charAt(1) === 'R') { - moveSources.restrictedMove = moveid; + // Gen 8+ egg moves can be taught to any pokemon from any source + if (learnedGen >= 8 && learned.charAt(1) === 'E' && learned.slice(1) !== 'Eany' && + learned.slice(1) !== 'Epomeg' || 'LMTR'.includes(learned.charAt(1))) { + if (learnedGen === dex.gen && learned.charAt(1) !== 'R') { + // current-gen level-up, TM or tutor moves: + // always available + if (!(learnedGen >= 8 && learned.charAt(1) === 'E') && babyOnly) { + if (setSources.isFromPokemonGo && species.evoLevel) { + cantLearnReason = `is from a prevo, which is incompatible with its Pokemon GO origin.`; + continue; + } else { + setSources.babyOnly = babyOnly; + } } - limit1 = false; - moveSources.addGen(learnedGen); - } else if (learned.charAt(1) === 'E') { - // egg moves: - // only if hatched from an egg - let limitedEggMove: ID | null | undefined = undefined; - if (learned.slice(1) === 'Eany') { - limitedEggMove = null; - } else if (learnedGen < 6) { + if (!moveSources.moveEvoCarryCount && !setSources.babyOnly) return null; + } + // past-gen level-up, TM, or tutor moves: + // available as long as the source gen was or was before this gen + if (learned.charAt(1) === 'R') { + moveSources.restrictedMove = moveid; + } + limit1 = false; + moveSources.addGen(learnedGen); + } else if (learned.charAt(1) === 'E') { + // egg moves: + // only if hatched from an egg + let limitedEggMove: ID | null | undefined = undefined; + if (learned.slice(1) === 'Eany') { + if (species.gender === 'F') { limitedEggMove = move.id; + moveSources.levelUpEggMoves = [move.id]; + } else { + limitedEggMove = null; } - learned = learnedGen + 'E' + (species.prevo ? species.id : ''); - if (tradebackEligible && learnedGen === 2 && move.gen <= 1) { - // can tradeback - moveSources.add('1ET' + learned.slice(2)); - } - moveSources.add(learned, limitedEggMove); - } else if (learned.charAt(1) === 'S') { - // event moves: - // only if that was the source - // Event Pokémon: - // Available as long as the past gen can get the Pokémon and then trade it back. - if (tradebackEligible && learnedGen === 2 && move.gen <= 1) { - // can tradeback - moveSources.add('1ST' + learned.slice(2) + ' ' + species.id); - } - moveSources.add(learned + ' ' + species.id); - } else if (learned.charAt(1) === 'D') { - // DW moves: - // only if that was the source - moveSources.add(learned + species.id); - moveSources.dreamWorldMoveCount++; - } else if (learned.charAt(1) === 'V' && this.minSourceGen < learnedGen) { - // Virtual Console or Let's Go transfer moves: - // only if that was the source - moveSources.add(learned); + } else if (learned.slice(1) === 'Epomeg') { + // Pomeg glitched moves have to be from an egg but since they aren't true egg moves, + // there should be no breeding restrictions + moveSources.pomegEggMoves = [move.id]; + } else if (learnedGen < 6 || (species.mother && !this.motherCanLearn(toID(species.mother), moveid))) { + limitedEggMove = move.id; + } + learned = learnedGen + 'E' + (species.prevo ? species.id : '') as MoveSource; + if (tradebackEligible && learnedGen === 2 && move.gen <= 1) { + // can tradeback + moveSources.add('1ET' + learned.slice(2), limitedEggMove); } + moveSources.add(learned, limitedEggMove); + } else if (learned.charAt(1) === 'S') { + // event moves: + // only if that was the source + // Event Pokémon: + // Available as long as the past gen can get the Pokémon and then trade it back. + if (tradebackEligible && learnedGen === 2 && move.gen <= 1) { + // can tradeback + moveSources.add('1ST' + learned.slice(2) + ' ' + species.id); + } + moveSources.add(learned + ' ' + species.id); + const eventLearnset = dex.species.getLearnsetData(species.id); + if (eventLearnset.eventData?.[parseInt(learned.charAt(2))].emeraldEventEgg && learnedGen === 3) { + moveSources.pomegEventEgg = learned + ' ' + species.id; + } + } else if (learned.charAt(1) === 'D') { + // DW moves: + // only if that was the source + moveSources.add(learned + species.id); + moveSources.dreamWorldMoveCount++; + } else if (learned.charAt(1) === 'V' && this.minSourceGen < learnedGen) { + // Virtual Console or Let's Go transfer moves: + // only if that was the source + if (learned === '8V' && setSources.isFromPokemonGo && babyOnly && species.evoLevel) { + cantLearnReason = `is from a prevo, which is incompatible with its Pokemon GO origin.`; + continue; + } + moveSources.add(learned); + } + if (learned.charAt(1) === 'E' && learnedGen >= 8 && !canLearnSpecies.includes(baseSpecies.id)) { + canLearnSpecies.push(baseSpecies.id); } + if (!canLearnSpecies.includes(species.id)) canLearnSpecies.push(species.id); + minLearnGen = Math.min(minLearnGen, learnedGen); } if (ruleTable.has('mimicglitch') && species.gen < 5) { // include the Mimic Glitch when checking this mon's learnset @@ -2242,9 +2718,6 @@ export class TeamValidator { moveSources.moveEvoCarryCount = 1; } } - - // also check to see if the mon's prevo or freely switchable formes can learn this move - species = this.learnsetParent(species); } if (limit1 && sketch) { @@ -2264,13 +2737,81 @@ export class TeamValidator { if (!setSources.restrictiveMoves) { setSources.restrictiveMoves = []; } - setSources.restrictiveMoves.push(move.name); + if (!setSources.restrictiveMoves.includes(move.name)) { + setSources.restrictiveMoves.push(move.name); + } + + const checkedSpecies = babyOnly ? fullLearnset[fullLearnset.length - 1].species : baseSpecies; + if (checkedSpecies && setSources.isFromPokemonGo && + (setSources.pokemonGoSource === 'purified' || checkedSpecies.id === 'mew')) { + // Pokemon that cannot be sent from Pokemon GO to Let's Go can only access Let's Go moves through HOME + // It can only obtain a chain of four level up moves and cannot have TM moves + const pokemonGoData = dex.species.getPokemonGoData(checkedSpecies.id); + if (pokemonGoData.LGPERestrictiveMoves) { + let levelUpMoveCount = 0; + const restrictiveMovesToID = []; + for (const moveName of setSources.restrictiveMoves) { + restrictiveMovesToID.push(toID(moveName)); + } + for (const restrictiveMove in pokemonGoData.LGPERestrictiveMoves) { + const moveLevel = pokemonGoData.LGPERestrictiveMoves[restrictiveMove]; + if (toID(move) === restrictiveMove) { + if (!moveLevel) { + return `'s move ${move.name} is incompatible with its Pokemon GO origin.`; + } else if (set.level && set.level < moveLevel) { + return ` must be at least level ${moveLevel} to learn ${move.name} due to its Pokemon GO origin.`; + } + } + if (levelUpMoveCount) levelUpMoveCount++; + if (restrictiveMovesToID.includes(restrictiveMove)) { + if (!levelUpMoveCount) { + levelUpMoveCount++; + } else if (levelUpMoveCount > 4) { + return `'s moves ${(setSources.restrictiveMoves || []).join(', ')} are incompatible with its Pokemon GO origin.`; + } + } + } + } + } + + let nextSpecies; + nextSpecies = baseSpecies; + let speciesCount = 0; + if (!tradebackEligible) { + if (!dex.species.getLearnsetData(nextSpecies.id).learnset) { + nextSpecies = dex.species.get(nextSpecies.changesFrom || nextSpecies.baseSpecies); + } + while (nextSpecies) { + for (let gen = nextSpecies.gen; gen <= dex.gen; gen++) { + /** + * Case 1: The species can learn the move - allow moves of the species from all gens + * Case 2: Both prevo and evo can learn the move - same as case 1 + * Case 3: Prevo-only move - allow moves of the species from the min gen and later + * Case 4: Evo-only move - allow moves of the species from the max gen and before + */ + if (canLearnSpecies.includes(nextSpecies.id) || + (0 < speciesCount && speciesCount < canLearnSpecies.length) || + (speciesCount === 0 && gen >= minLearnGen) || + (speciesCount === canLearnSpecies.length && gen <= moveSources.sourcesBefore) + ) { + if (!moveSources.learnsetDomain) moveSources.learnsetDomain = []; + moveSources.learnsetDomain.push(gen + nextSpecies.id); + } + } + if (canLearnSpecies.includes(nextSpecies.id)) speciesCount++; + nextSpecies = dex.species.learnsetParent(nextSpecies); + } + } // Now that we have our list of possible sources, intersect it with the current list if (!moveSources.size()) { if (cantLearnReason) return `'s move ${move.name} ${cantLearnReason}`; return ` can't learn ${move.name}.`; } + const eggSources = moveSources.sources.filter(source => source.charAt(1) === 'E'); + if (dex.gen >= 3 && eggSources.length && moveSources.limitedEggMoves === null && moveSources.sourcesBefore) { + moveSources.possiblyLimitedEggMoves = [toID(moveSources.sourcesBefore + move.id)]; + } const backupSources = setSources.sources; const backupSourcesBefore = setSources.sourcesBefore; setSources.intersectWith(moveSources); @@ -2279,6 +2820,7 @@ export class TeamValidator { // prevents a crash if OMs override `checkCanLearn` to keep validating after an error setSources.sources = backupSources; setSources.sourcesBefore = backupSourcesBefore; + if (setSources.isFromPokemonGo) return `'s move ${move.name} is incompatible with its Pokemon GO origin.`; return `'s moves ${(setSources.restrictiveMoves || []).join(', ')} are incompatible.`; } @@ -2286,31 +2828,6 @@ export class TeamValidator { return null; } - learnsetParent(species: Species) { - // Own Tempo Rockruff and Battle Bond Greninja are special event formes - // that are visually indistinguishable from their base forme but have - // different learnsets. To prevent a leak, we make them show up as their - // base forme, but hardcode their learnsets into Rockruff-Dusk and - // Greninja-Ash - if (['Gastrodon', 'Pumpkaboo', 'Sinistea'].includes(species.baseSpecies) && species.forme) { - return this.dex.species.get(species.baseSpecies); - } else if (species.name === 'Lycanroc-Dusk') { - return this.dex.species.get('Rockruff-Dusk'); - } else if (species.name === 'Greninja-Ash') { - return null; - } else if (species.prevo) { - // there used to be a check for Hidden Ability here, but apparently it's unnecessary - // Shed Skin Pupitar can definitely evolve into Unnerve Tyranitar - species = this.dex.species.get(species.prevo); - if (species.gen > Math.max(2, this.dex.gen)) return null; - return species; - } else if (species.changesFrom && species.baseSpecies !== 'Kyurem') { - // For Pokemon like Rotom and Necrozma whose movesets are extensions are their base formes - return this.dex.species.get(species.changesFrom); - } - return null; - } - static fillStats(stats: SparseStatsTable | null, fillNum = 0): StatsTable { const filledStats: StatsTable = {hp: fillNum, atk: fillNum, def: fillNum, spa: fillNum, spd: fillNum, spe: fillNum}; if (stats) { diff --git a/sim/teams.ts b/sim/teams.ts index c60a251aea1a..67536e1ade3f 100644 --- a/sim/teams.ts +++ b/sim/teams.ts @@ -445,7 +445,7 @@ export const Teams = new class Teams { return out; } - parseExportedTeamLine(line: string, isFirstLine: boolean, set: PokemonSet) { + parseExportedTeamLine(line: string, isFirstLine: boolean, set: PokemonSet, aggressive?: boolean) { if (isFirstLine) { let item; [line, item] = line.split(' @ '); @@ -471,10 +471,10 @@ export const Teams = new class Teams { } } else if (line.startsWith('Trait: ')) { line = line.slice(7); - set.ability = line; + set.ability = aggressive ? toID(line) : line; } else if (line.startsWith('Ability: ')) { line = line.slice(9); - set.ability = line; + set.ability = aggressive ? toID(line) : line; } else if (line === 'Shiny: Yes') { set.shiny = true; } else if (line.startsWith('Level: ')) { @@ -485,13 +485,13 @@ export const Teams = new class Teams { set.happiness = +line; } else if (line.startsWith('Pokeball: ')) { line = line.slice(10); - set.pokeball = line; + set.pokeball = aggressive ? toID(line) : line; } else if (line.startsWith('Hidden Power: ')) { line = line.slice(14); - set.hpType = line; + set.hpType = aggressive ? toID(line) : line; } else if (line.startsWith('Tera Type: ')) { line = line.slice(11); - set.teraType = line; + set.teraType = aggressive ? line.replace(/[^a-zA-Z0-9]/g, '') : line; } else if (line === 'Gigantamax: Yes') { set.gigantamax = true; } else if (line.startsWith('EVs: ')) { @@ -522,7 +522,7 @@ export const Teams = new class Teams { if (natureIndex === -1) natureIndex = line.indexOf(' nature'); if (natureIndex === -1) return; line = line.substr(0, natureIndex); - if (line !== 'undefined') set.nature = line; + if (line !== 'undefined') set.nature = aggressive ? toID(line) : line; } else if (line.startsWith('-') || line.startsWith('~')) { line = line.slice(line.charAt(1) === ' ' ? 2 : 1); if (line.startsWith('Hidden Power [')) { @@ -543,18 +543,19 @@ export const Teams = new class Teams { } } /** Accepts a team in any format (JSON, packed, or exported) */ - import(buffer: string): PokemonSet[] | null { + import(buffer: string, aggressive?: boolean): PokemonSet[] | null { + const sanitize = aggressive ? toID : Dex.getName; if (buffer.startsWith('[')) { try { const team = JSON.parse(buffer); if (!Array.isArray(team)) throw new Error(`Team should be an Array but isn't`); for (const set of team) { - set.name = Dex.getName(set.name); - set.species = Dex.getName(set.species); - set.item = Dex.getName(set.item); - set.ability = Dex.getName(set.ability); - set.gender = Dex.getName(set.gender); - set.nature = Dex.getName(set.nature); + set.name = sanitize(set.name); + set.species = sanitize(set.species); + set.item = sanitize(set.item); + set.ability = sanitize(set.ability); + set.gender = sanitize(set.gender); + set.nature = sanitize(set.nature); const evs = {hp: 0, atk: 0, def: 0, spa: 0, spd: 0, spe: 0}; if (set.evs) { for (const statid in evs) { @@ -572,7 +573,7 @@ export const Teams = new class Teams { if (!Array.isArray(set.moves)) { set.moves = []; } else { - set.moves = set.moves.map(Dex.getName); + set.moves = set.moves.map(sanitize); } } return team; @@ -606,9 +607,9 @@ export const Teams = new class Teams { moves: [], }; sets.push(curSet); - this.parseExportedTeamLine(line, true, curSet); + this.parseExportedTeamLine(line, true, curSet, aggressive); } else { - this.parseExportedTeamLine(line, false, curSet); + this.parseExportedTeamLine(line, false, curSet, aggressive); } } return sets; @@ -616,10 +617,18 @@ export const Teams = new class Teams { getGenerator(format: Format | string, seed: PRNG | PRNGSeed | null = null) { let TeamGenerator; - if (toID(format).includes('gen9computergeneratedteams')) { + format = Dex.formats.get(format); + const formatID = toID(format); + if (formatID.includes('gen9computergeneratedteams')) { TeamGenerator = require(Dex.forFormat(format).dataDir + '/cg-teams').default; + } else if (formatID.includes('gen9superstaffbrosultimate')) { + TeamGenerator = require(`../data/mods/gen9ssb/random-teams`).default; + } else if (formatID.includes('gen9babyrandombattle')) { + TeamGenerator = require(`../data/random-battles/gen9baby/teams`).default; + } else if (formatID.includes('gen9randombattle') && format.ruleTable?.has('+pokemontag:cap')) { + TeamGenerator = require(`../data/random-battles/gen9cap/teams`).default; } else { - TeamGenerator = require(Dex.forFormat(format).dataDir + '/random-teams').default; + TeamGenerator = require(`../data/random-battles/${format.mod}/teams`).default; } return new TeamGenerator(format, seed); diff --git a/sim/tools/exhaustive-runner.ts b/sim/tools/exhaustive-runner.ts index aa0116d0ed26..cd8578e5d34a 100644 --- a/sim/tools/exhaustive-runner.ts +++ b/sim/tools/exhaustive-runner.ts @@ -114,8 +114,9 @@ export class ExhaustiveRunner { private createPools(dex: typeof Dex): Pools { return { - pokemon: new Pool(ExhaustiveRunner.onlyValid(dex.gen, dex.data.Pokedex, p => dex.species.get(p), - (_, p) => (p.name !== 'Pichu-Spiky-eared' && p.name.substr(0, 8) !== 'Pikachu-')), this.prng), + pokemon: new Pool(ExhaustiveRunner.onlyValid(dex.gen, dex.data.Pokedex, p => dex.species.get(p), (_, p) => + (p.name !== 'Pichu-Spiky-eared' && p.name.substr(0, 8) !== 'Pikachu-') && p.name !== 'Greninja-Bond'), + this.prng), items: new Pool(ExhaustiveRunner.onlyValid(dex.gen, dex.data.Items, i => dex.items.get(i)), this.prng), abilities: new Pool(ExhaustiveRunner.onlyValid(dex.gen, dex.data.Abilities, a => dex.abilities.get(a)), this.prng), moves: new Pool(ExhaustiveRunner.onlyValid(dex.gen, dex.data.Moves, m => dex.moves.get(m), diff --git a/sim/tools/multi-random-runner.ts b/sim/tools/multi-random-runner.ts index 1886f2a0d5b9..a78440321818 100644 --- a/sim/tools/multi-random-runner.ts +++ b/sim/tools/multi-random-runner.ts @@ -21,7 +21,7 @@ export interface MultiRandomRunnerOptions extends RunnerOptions { export class MultiRandomRunner { static readonly FORMATS = [ 'gen8randombattle', 'gen8randomdoublesbattle', 'gen8battlefactory', - 'gen7randombattle', 'gen7randomdoublesbattle', 'gen7battlefactory', + 'gen7randombattle', 'gen7battlefactory', 'gen6randombattle', 'gen6battlefactory', 'gen5randombattle', 'gen4randombattle', diff --git a/sim/tools/runner.ts b/sim/tools/runner.ts index c78a14e4210f..eb6d63ce3234 100644 --- a/sim/tools/runner.ts +++ b/sim/tools/runner.ts @@ -87,7 +87,7 @@ export class Runner { // @ts-ignore - DualStream implements everything relevant from BattleStream. const streams = BattleStreams.getPlayerStreams(battleStream); const spec = {formatid: format, seed: this.prng.seed}; - const is4P = Dex.formats.get(format).gameType === 'multi'; + const is4P = Dex.formats.get(format).playerCount > 2; const p1spec = this.getPlayerSpec("Bot 1", this.p1options); const p2spec = this.getPlayerSpec("Bot 2", this.p2options); let p3spec: typeof p1spec, p4spec: typeof p1spec; diff --git a/test/common.js b/test/common.js index ae29f636b46d..7fcfd897b222 100644 --- a/test/common.js +++ b/test/common.js @@ -21,7 +21,7 @@ const DEFAULT_SEED = [0x09917, 0x06924, 0x0e1c8, 0x06af0]; class TestTools { constructor(mod = 'base') { this.currentMod = mod; - this.dex = Dex.mod(mod); + this.dex = Dex.mod(mod).includeData(); // ensure that gen is initialized this.modPrefix = this.dex.isBase ? `[gen9] ` : `[${mod}] `; } @@ -42,7 +42,11 @@ class TestTools { } getFormat(options) { - if (options.formatid) return Dex.formats.get(options.formatid); + if (options.formatid) { + const format = Dex.formats.get(options.formatid); + if (format.effectType !== 'Format') throw new Error(`Unidentified format: ${options.formatid}`); + return format; + } const gameType = Dex.toID(options.gameType || 'singles'); const customRules = [ @@ -73,7 +77,7 @@ class TestTools { if (format) return format; format = Dex.formats.get(formatName); - if (!format.exists) throw new Error(`Unidentified format: ${formatName}`); + if (format.effectType !== 'Format') throw new Error(`Unidentified format: ${formatName}`); formatsCache.set(formatName, format); return format; diff --git a/test/random-battles/all-gens.js b/test/random-battles/all-gens.js index 66aefca6f8d0..157a2141c504 100644 --- a/test/random-battles/all-gens.js +++ b/test/random-battles/all-gens.js @@ -5,6 +5,7 @@ 'use strict'; const assert = require('../assert'); +const common = require('../common'); const {Utils} = require('../../dist/lib'); const {testTeam, assertSetValidity, validateLearnset} = require('./tools'); const {default: Dex} = require('../../dist/sim/dex'); @@ -17,51 +18,89 @@ describe('value rule support (slow)', () => { testTeam({format: 'gen8multirandombattle', rounds: 100}, team => assert.equal(team.length, 3)); testTeam({format: 'gen8cap1v1', rounds: 100}, team => assert.equal(team.length, 3)); + + testTeam({format: 'gen7randombattle', rounds: 100}, team => assert.equal(team.length, 6)); }); - // TODO: Support gen 9 set format - for (let gen = 1; gen <= 8; gen++) { + for (let gen = 1; gen <= 9; gen++) { const formatID = `gen${gen}randombattle`; - const dataJSON = require(`../../dist/data/mods/gen${gen}/random-data.json`); const dex = Dex.forFormat(formatID); for (const count of [1, 3, 24]) { // This is tough to test in Gen 1 because we don't know how many moves a Pokémon ought to have, // so we only test 'Max Move Count = 1' in Gen 1. if (gen === 1 && count !== 1) continue; const format = Dex.formats.get(`${formatID}@@@Max Move Count = ${count}`); + // New set format + if ([2, 3, 4, 5, 6, 7, 9].includes(gen)) { + // Due to frontloading of moveset generation, formats with the new set format do not support + // Max Move Counts less than 4 + if (count < 4) continue; + const setsJSON = require(`../../dist/data/random-battles/gen${gen}/sets.json`); - it(`${format.name} should support Max Move Count = ${count}`, () => { - testTeam({format, rounds: 50}, team => { - for (const set of team) { - let species = set.species; - // Formes make this test code really complicated, so we skip them - // (This is because info about formes isn't passed through) - if (dex.species.get(species).otherFormes?.length || dex.species.get(species).forme) continue; - if (set.gigantamax && !set.species.endsWith('max')) species += '-Gmax'; - - // If the Pokémon has less than the max in its movepool, we should - // just see all those moves - let totalMoves = 0; - let seenHP = false; - for (const move of dataJSON[dex.species.get(species).id].moves) { - if (move.startsWith('hiddenpower')) { - if (seenHP) continue; - seenHP = true; + it(`${format.name} should support Max Move Count = ${count}`, () => { + testTeam({format, rounds: 50}, team => { + for (const set of team) { + let species = set.species; + // Formes make this test code really complicated, so we skip them + // (This is because info about formes isn't passed through) + if (dex.species.get(species).otherFormes?.length || dex.species.get(species).forme) continue; + if (set.gigantamax && !set.species.endsWith('max')) species += '-Gmax'; + + // This is an array because the new set format can have multiple sets, and hence multiple possible + // set lengths. + const expectedMoves = []; + for (const s of setsJSON[dex.species.get(species).id].sets) { + let seenHP = false; + let totalMoves = 0; + for (const move of s.movepool) { + if (move.startsWith('hiddenpower')) { + if (seenHP) continue; + seenHP = true; + } + totalMoves++; + } + expectedMoves.push(Math.min(totalMoves, count)); } - totalMoves++; + + assert(expectedMoves.includes(set.moves.length), `${species} should have ${expectedMoves.toString()} moves (moves=${set.moves})`); } + }); + }); + } else { + const dataJSON = require(`../../dist/data/random-battles/gen${gen}/data.json`); - const expected = Math.min(totalMoves, count); - assert.equal(set.moves.length, expected, `${species} should have ${expected} moves (moves=${set.moves})`); - } + it(`${format.name} should support Max Move Count = ${count}`, () => { + testTeam({format, rounds: 50}, team => { + for (const set of team) { + let species = set.species; + // Formes make this test code really complicated, so we skip them + // (This is because info about formes isn't passed through) + if (dex.species.get(species).otherFormes?.length || dex.species.get(species).forme) continue; + if (set.gigantamax && !set.species.endsWith('max')) species += '-Gmax'; + + // If the Pokémon has less than the max in its movepool, we should + // just see all those moves. + let totalMoves = 0; + let seenHP = false; + for (const move of dataJSON[dex.species.get(species).id].moves) { + if (move.startsWith('hiddenpower')) { + if (seenHP) continue; + seenHP = true; + } + totalMoves++; + } + const expected = Math.min(totalMoves, count); + assert.equal(set.moves.length, expected, `${species} should have ${expected} moves (moves=${set.moves})`); + } + }); }); - }); + } } } for (const format of Dex.formats.all()) { if (!format.team) continue; - if (Dex.formats.getRuleTable(format).has('adjustleveldown')) continue; // already adjusts level + if (Dex.formats.getRuleTable(format).has('adjustleveldown') || Dex.formats.getRuleTable(format).has('adjustlevel')) continue; // already adjusts level for (const level of [1, 99999]) { it(`${format.name} should support Adjust Level = ${level}`, () => { @@ -75,35 +114,160 @@ describe('value rule support (slow)', () => { } }); -describe("New set format", () => { - const files = ['../../data/random-sets.json']; - for (const filename of files) { - it(`${filename} should have valid set data`, () => { - const setsJSON = require(filename); - const validRoles = ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Tera Blast user", - "Bulky Attacker", "Bulky Setup", "Fast Bulky Setup", "Bulky Support", "Fast Support", "AV Pivot"]; +describe("New set format (slow)", () => { + // formatInfo lists filenames and roles for each format + const formatInfo = { + "gen2randombattle": { + filename: "gen2/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Bulky Attacker", "Bulky Setup", "Bulky Support", "Generalist", "Thief user"], + }, + "gen3randombattle": { + filename: "gen3/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Bulky Attacker", "Bulky Setup", "Staller", "Bulky Support", "Generalist", "Berry Sweeper"], + }, + "gen4randombattle": { + filename: "gen4/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Bulky Attacker", "Bulky Setup", "Staller", "Bulky Support", "Fast Support", "Spinner"], + }, + "gen5randombattle": { + filename: "gen5/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Bulky Attacker", "Bulky Setup", "Staller", "Bulky Support", "Fast Support", "Spinner"], + }, + "gen6randombattle": { + filename: "gen6/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Bulky Attacker", "Bulky Setup", "Staller", "Bulky Support", "Fast Support", "AV Pivot"], + }, + "gen7randombattle": { + filename: "gen7/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Z-Move user", "Bulky Attacker", "Bulky Setup", "Staller", "Bulky Support", "Fast Support", "AV Pivot"], + }, + "gen9randombattle": { + filename: "gen9/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Tera Blast user", "Bulky Attacker", "Bulky Setup", "Fast Bulky Setup", "Bulky Support", "Fast Support", "AV Pivot"], + }, + "gen9randomdoublesbattle": { + filename: "gen9/doubles-sets", + roles: ["Doubles Fast Attacker", "Doubles Setup Sweeper", "Doubles Wallbreaker", "Tera Blast user", "Doubles Bulky Attacker", "Doubles Bulky Setup", "Offensive Protect", "Bulky Protect", "Doubles Support", "Choice Item user"], + }, + "gen9babyrandombattle": { + filename: "gen9baby/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Tera Blast user", "Bulky Attacker", "Bulky Setup", "Bulky Support", "Fast Support"], + }, + "gen9randombattle@@@+cap": { + filename: "gen9cap/sets", + roles: ["Fast Attacker", "Setup Sweeper", "Wallbreaker", "Tera Blast user", "Bulky Attacker", "Bulky Setup", "Fast Bulky Setup", "Bulky Support", "Fast Support", "AV Pivot"], + }, + }; + for (const format of Object.keys(formatInfo)) { + const filename = formatInfo[format].filename; + const setsJSON = require(`../../dist/data/random-battles/${filename}.json`); + const dex = common.mod(common.getFormat({formatid: format}).mod).dex; // verifies format exists + const genNum = dex.gen; + const rounds = 100; + it(`${filename}.json should have valid set data`, () => { + const validRoles = formatInfo[format].roles; for (const [id, sets] of Object.entries(setsJSON)) { - const species = Dex.species.get(id); - assert(species.exists, `Misspelled species ID: ${id}`); + const species = dex.species.get(id); + assert(species.exists, `In ${format}, misspelled species ID: ${id}`); assert(Array.isArray(sets.sets)); for (const set of sets.sets) { - assert(validRoles.includes(set.role), `Set for ${species.name} has invalid role: ${set.role}`); - assert.equal(set.role === "Tera Blast user", set.movepool.includes("Tera Blast"), - `Set for ${species.name} has inconsistent Tera Blast user status`); + assert(validRoles.includes(set.role), `In ${format}, set for ${species.name} has invalid role: ${set.role}`); for (const move of set.movepool) { - const dexMove = Dex.moves.get(move); - assert(dexMove.exists, `${species.name} has invalid move: ${move}`); - assert.equal(move, dexMove.name, `${species.name} has misformatted move: ${move}`); - assert(validateLearnset(dexMove, {species}, 'anythinggoes', 'gen9'), `${species.name} can't learn ${move}`); + const dexMove = dex.moves.get(move); + assert(dexMove.exists, `In ${format}, ${species.name} has invalid move: ${move}`); + // Old gens have moves in id form, currently. + if (genNum === 9) { + assert.equal(move, dexMove.name, `In ${format}, ${species.name} has misformatted move: ${move}`); + } else { + assert(move === dexMove.id || move.startsWith('hiddenpower'), `In ${format}, ${species.name} has misformatted move: ${move}`); + } + assert(validateLearnset(dexMove, {species}, 'ubers', `gen${genNum}`), `In ${format}, ${species.name} can't learn ${move}`); } for (let i = 0; i < set.movepool.length - 1; i++) { - assert(set.movepool[i + 1] > set.movepool[i], `${species} movepool should be sorted alphabetically`); + assert(set.movepool[i + 1] > set.movepool[i], `In ${format}, ${species.name} movepool should be sorted alphabetically`); + } + if (genNum >= 3) { + assert(set.abilities, `In ${format}, ${set.abilities} has no abilities`); + for (const ability of set.abilities) { + const dexAbility = dex.abilities.get(ability); + assert(dexAbility.exists, `In ${format}, ${species.name} has invalid ability: ${ability}`); + // Mega/Primal Pokemon have abilities from their base formes + const allowedAbilities = new Set(Object.values((species.battleOnly && !species.requiredAbility) ? dex.species.get(species.battleOnly).abilities : species.abilities)); + if (species.unreleasedHidden) allowedAbilities.delete(species.abilities.H); + assert(allowedAbilities.has(ability), `In ${format}, ${species.name} can't have ${ability}`); + } + for (let i = 0; i < set.abilities.length - 1; i++) { + assert(set.abilities[i + 1] > set.abilities[i], `In ${format}, ${species.name} abilities should be sorted alphabetically`); + } + } + if (genNum === 9) { + assert(set.teraTypes, `In ${format}, ${species.name} has no Tera Types`); + for (const type of set.teraTypes) { + const dexType = dex.types.get(type); + assert(dexType.exists, `In ${format}, ${species.name} has invalid Tera Type: ${type}`); + assert.equal(type, dexType.name, `In ${format}, ${species.name} has misformatted Tera Type: ${type}`); + } + for (let i = 0; i < set.teraTypes.length - 1; i++) { + assert(set.teraTypes[i + 1] > set.teraTypes[i], `In ${format}, ${species.name} teraTypes should be sorted alphabetically`); + } + } + if (set.preferredTypes) { + for (const type of set.preferredTypes) { + const dexType = dex.types.get(type); + assert(dexType.exists, `In ${format}, ${species.name} has invalid Preferred Type: ${type}`); + assert.equal(type, dexType.name, `In ${format}, ${species.name} has misformatted Preferred Type: ${type}`); + } + for (let i = 0; i < set.preferredTypes.length - 1; i++) { + assert(set.preferredTypes[i + 1] > set.preferredTypes[i], `In ${format}, ${species.name} preferredTypes should be sorted alphabetically`); + } } - for (const type of set.teraTypes) { - const dexType = Dex.types.get(type); - assert(dexType.exists, `${species.name} has invalid Tera Type: ${type}`); - assert.equal(type, dexType.name, `${species.name} has misformatted Tera Type: ${type}`); + } + } + }); + it('all Pokemon should have 4 moves, except for Ditto and Unown', function () { + testTeam({format, rounds}, team => { + for (const pokemon of team) assert(pokemon.name === 'Ditto' || pokemon.name === 'Unown' || pokemon.moves.length === 4, `In ${format}, ${pokemon.name} can generate with ${pokemon.moves.length} moves`); + }); + }); + it('all moves on all sets should exist and be obtainable', function () { + const generator = Teams.getGenerator(format); + for (const pokemon of Object.keys(setsJSON)) { + const species = dex.species.get(pokemon); + assert(species.exists, `In ${format}, Pokemon ${species} does not exist`); + const sets = setsJSON[pokemon]["sets"]; + const types = species.types; + for (const set of sets) { + assert(set.movepool.every(m => dex.moves.get(m).exists), `In ${format}, for Pokemon ${species}, one of ${set.movepool} does not exist.`); + const role = set.role; + const moves = new Set(set.movepool.map(m => (m.startsWith('hiddenpower') ? m : dex.moves.get(m).id))); + const abilities = set.abilities || []; + const specialTypes = genNum === 9 ? set.teraTypes : set.preferredTypes; + // Go through all possible teamDetails combinations, if necessary + for (let j = 0; j < rounds; j++) { + // In Gens 2-3, if a set has multiple preferred types, we enforce moves of all the types. + const specialType = specialTypes ? (genNum > 3 ? specialTypes[j % specialTypes.length] : specialTypes.join()) : ''; + // Generate a moveset for each combination of relevant teamDetails. Spikes is relevant for Gen 2. + for (let i = 0; i < 16; i++) { + const rapidSpin = i % 2; + const stealthRock = Math.floor(i / 2) % 2; + const stickyWeb = Math.floor(i / 4) % 2; + const spikes = Math.floor(i / 8) % 2; + const screens = Math.floor(i / 2) % 2; + const teamDetails = {rapidSpin, stealthRock, stickyWeb, spikes, screens}; + // randomMoveset() deletes moves from the movepool, so recreate it every time + const movePool = set.movepool.map(m => (m.startsWith('hiddenpower') ? m : dex.moves.get(m).id)); + let moveSet; + if (genNum === 9) { + moveSet = generator.randomMoveset(types, abilities, teamDetails, species, false, format.includes('doubles'), movePool, specialType, role); + } else { + moveSet = generator.randomMoveset(types, abilities, teamDetails, species, false, movePool, specialType, role); + } + for (const move of moveSet) moves.delete(move); + if (!moves.size) break; + } + if (!moves.size) break; } + assert.false(moves.size, `In ${format}, the following moves on ${species.name} are unused: ${[...moves].join(', ')}`); } } }); @@ -113,6 +277,7 @@ describe("New set format", () => { describe('randomly generated teams should be valid (slow)', () => { for (const format of Dex.formats.all()) { if (!format.team) continue; // format doesn't use randomly generated teams + if (format.mod === 'gen9ssb') continue; // Temporary it(`should generate valid ${format} teams`, function () { this.timeout(0); @@ -130,71 +295,170 @@ describe('randomly generated teams should be valid (slow)', () => { }); describe('Battle Factory and BSS Factory data should be valid (slow)', () => { - for (const filename of ['mods/gen8/bss-factory-sets', 'mods/gen7/bss-factory-sets', 'mods/gen7/factory-sets', 'mods/gen6/factory-sets']) { + for (const filename of ['gen9/factory-sets', 'gen8/factory-sets', 'gen8/bss-factory-sets', 'gen7/bss-factory-sets', 'gen7/factory-sets', 'gen6/factory-sets']) { it(`${filename}.json should contain valid sets`, function () { this.timeout(0); - const setsJSON = require(`../../dist/data/${filename}.json`); - const mod = filename.split('/')[1] || 'gen' + Dex.gen; - const genNum = isNaN(mod[3]) ? Dex.gen : mod[3]; + const setsJSON = require(`../../dist/data/random-battles/${filename}.json`); + const mod = filename.split('/')[0] || 'gen' + Dex.gen; + const genNum = isNaN(mod[3]) ? Dex.gen : parseInt(mod[3]); + const dex = Dex.mod(mod); for (const type in setsJSON) { const typeTable = filename.includes('bss-factory-sets') ? setsJSON : setsJSON[type]; - const vType = filename === 'bss-factory-sets' ? `battle${genNum === 8 ? 'stadium' : 'spot'}singles` : - type === 'Mono' ? 'monotype' : type.toLowerCase(); + let vType; + if (filename.includes('bss-factory-sets')) { + vType = `battle${genNum === 8 ? 'stadium' : 'spot'}singles`; + } else if (type === 'Mono') { + vType = 'monotype'; + } else if (type === 'Uber') { + vType = 'ubers'; + } else { + vType = type.toLowerCase(); + } for (const species in typeTable) { const speciesData = typeTable[species]; for (const set of speciesData.sets) { - const species = Dex.species.get(set.species); + const species = dex.species.get(set.species); assert(species.exists, `invalid species "${set.species}" of ${species}`); assert.equal(species.name, set.species, `miscapitalized species "${set.species}" of ${species}`); - // currently failing due to a Piloswine labeled as a Mamoswine set assert(species.id.startsWith(toID(species.baseSpecies)), `non-matching species "${set.species}" of ${species}`); - assert(!species.battleOnly, `invalid battle-only forme "${set.species}" of ${species}`); - for (const itemName of [].concat(set.item)) { - if (!itemName && [].concat(...set.moves).includes("Acrobatics")) continue; - const item = Dex.items.get(itemName); + if (!itemName) continue; + const item = dex.items.get(itemName); assert(item.exists, `invalid item "${itemName}" of ${species}`); assert.equal(item.name, itemName, `miscapitalized item "${itemName}" of ${species}`); } for (const abilityName of [].concat(set.ability)) { - const ability = Dex.abilities.get(abilityName); + const ability = dex.abilities.get(abilityName); assert(ability.exists, `invalid ability "${abilityName}" of ${species}`); assert.equal(ability.name, abilityName, `miscapitalized ability "${abilityName}" of ${species}`); + const allowedAbilities = new Set(Object.values((species.battleOnly && !species.requiredAbility) ? dex.species.get(species.battleOnly).abilities : species.abilities)); + if (species.unreleasedHidden) allowedAbilities.delete(species.abilities.H); + assert(allowedAbilities.has(abilityName), `${species.name} can't have ${abilityName}`); } for (const natureName of [].concat(set.nature)) { - const nature = Dex.natures.get(natureName); + const nature = dex.natures.get(natureName); assert(nature.exists, `invalid nature "${natureName}" of ${species}`); assert.equal(nature.name, natureName, `miscapitalized nature "${natureName}" of ${species}`); } for (const moveSpec of set.moves) { for (const moveName of [].concat(moveSpec)) { - const move = Dex.moves.get(moveName); + const move = dex.moves.get(moveName); assert(move.exists, `invalid move "${moveName}" of ${species}`); assert.equal(move.name, moveName, `miscapitalized move "${moveName}" ≠ "${move.name}" of ${species}`); + if (species.id === 'zacian' && [].concat(set.item).includes('Rusted Sword') && moveName === 'Behemoth Blade') continue; assert(validateLearnset(move, set, vType, mod), `illegal move "${moveName}" of ${species}`); } } + + // Check that no moves appear more than once in a set + assert.equal(set.moves.flat(1).length, new Set(set.moves.flat(1)).size, `${species} has repeat moves`); + assert(!!set.evs, `Set of ${species} has no EVs specified`); const keys = Object.keys(set.evs); let totalEVs = 0; for (const ev of keys) { - assert(Dex.stats.ids().includes(ev), `Invalid EV key (${ev}) on set of ${species}`); + assert(dex.stats.ids().includes(ev), `Invalid EV key (${ev}) on set of ${species}`); totalEVs += set.evs[ev]; assert.equal(set.evs[ev] % 4, 0, `EVs of ${ev} not divisible by 4 on ${species}`); } - const sortedKeys = Utils.sortBy([...keys], ev => Dex.stats.ids().indexOf(ev)); + const sortedKeys = Utils.sortBy([...keys], ev => dex.stats.ids().indexOf(ev)); assert.deepEqual(keys, sortedKeys, `EVs out of order on set of ${species}, possibly because one of them is for the wrong stat`); assert(totalEVs <= 510, `more than 510 EVs on set of ${species}`); + + if (genNum === 9) { + assert(set.teraType, `missing Tera Types on set of ${species}`); + for (const type of set.teraType) { + const dexType = dex.types.get(type); + assert(dexType.exists, `${species} has invalid Tera Type: ${type}`); + assert.equal(type, dexType.name, `${species.name} has misformatted Tera Type: ${type}`); + } + } + } + if (filename === 'gen9/factory-sets') { + // Set weights should add up to 100 + let totalWeight = 0; + for (const set of speciesData.sets) { + totalWeight += set.weight; + } + assert.equal(totalWeight, 100, `Total set weight for ${species} is ${totalWeight < 100 ? 'less' : 'greater'} than 100%`); } } } }); } }); + +describe('[Gen 9] BSS Factory data should be valid (slow)', () => { + it(`gen9/bss-factory-sets.json should contain valid sets`, function () { + this.timeout(0); + const setsJSON = require(`../../dist/data/random-battles/gen9/bss-factory-sets.json`); + const mod = 'gen9'; + const genNum = 9; + + for (const speciesid in setsJSON) { + const vType = 'bssregh'; + let totalWeight = 0; + for (const set of setsJSON[speciesid].sets) { + totalWeight += set.weight; + const species = Dex.species.get(set.species); + assert(species.exists, `invalid species "${set.species}" of ${speciesid}`); + assert(!species.isNonstandard, `illegal species "${set.species}" of ${speciesid}`); + assert.equal(species.name, set.species, `miscapitalized species "${set.species}" of ${speciesid}`); + + assert(species.id.startsWith(toID(species.baseSpecies)), `non-matching species "${set.species}" of ${speciesid}`); + + assert(!species.battleOnly, `invalid battle-only forme "${set.species}" of ${speciesid}`); + + for (const itemName of [].concat(set.item)) { + if (!itemName && [].concat(...set.moves).includes("Acrobatics")) continue; + const item = Dex.forGen(genNum).items.get(itemName); + assert(item.exists, `invalid item "${itemName}" of ${speciesid}`); + assert.equal(item.name, itemName, `miscapitalized item "${itemName}" of ${speciesid}`); + } + + for (const abilityName of [].concat(set.ability)) { + const ability = Dex.forGen(genNum).abilities.get(abilityName); + assert(ability.exists, `invalid ability "${abilityName}" of ${speciesid}`); + assert.equal(ability.name, abilityName, `miscapitalized ability "${abilityName}" of ${speciesid}`); + } + + for (const natureName of [].concat(set.nature)) { + const nature = Dex.forGen(genNum).natures.get(natureName); + assert(nature.exists, `invalid nature "${natureName}" of ${speciesid}`); + assert.equal(nature.name, natureName, `miscapitalized nature "${natureName}" of ${speciesid}`); + } + + for (const moveSpec of set.moves) { + for (const moveName of [].concat(moveSpec)) { + const move = Dex.forGen(genNum).moves.get(moveName); + assert(move.exists, `invalid move "${moveName}" of ${speciesid}`); + assert.equal(move.name, moveName, `miscapitalized move "${moveName}" ≠ "${move.name}" of ${speciesid}`); + assert(validateLearnset(move, set, vType, mod), `illegal move "${moveName}" of ${speciesid}`); + } + } + + assert(!!set.evs, `Set of ${speciesid} has no EVs specified`); + const keys = Object.keys(set.evs); + let totalEVs = 0; + for (const ev of keys) { + assert(Dex.stats.ids().includes(ev), `Invalid EV key (${ev}) on set of ${speciesid}`); + totalEVs += set.evs[ev]; + assert.equal(set.evs[ev] % 4, 0, `EVs of ${ev} not divisible by 4 on ${speciesid}`); + } + const sortedKeys = Utils.sortBy([...keys], ev => Dex.stats.ids().indexOf(ev)); + assert.deepEqual(keys, sortedKeys, `EVs out of order on set of ${speciesid}, possibly because one of them is for the wrong stat`); + assert(totalEVs <= 510, `more than 510 EVs on set of ${speciesid}`); + } + // Some species have 1/3 probability for each set + if (totalWeight === 99) totalWeight += 1; + assert.equal(totalWeight, 100, `Total set weight for ${speciesid} is ${totalWeight < 100 ? 'less' : 'greater'} than 100%`); + } + }); +}); diff --git a/test/random-battles/gen2.js b/test/random-battles/gen2.js deleted file mode 100644 index 8697e8f7a86e..000000000000 --- a/test/random-battles/gen2.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Tests for Gen 2 randomized formats - */ -'use strict'; - -const {testHiddenPower} = require('./tools'); - -describe('[Gen 2] Random Battle (slow)', () => { - const options = {format: 'gen2randombattle'}; - - it('should prevent double Hidden Power', () => testHiddenPower('scyther', options)); -}); diff --git a/test/random-battles/gen3.js b/test/random-battles/gen3.js deleted file mode 100644 index 676175112ec5..000000000000 --- a/test/random-battles/gen3.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Tests for Gen 3 randomized formats - */ -'use strict'; - -const assert = require('../assert'); -const {testSet, testAlwaysHasMove, testHiddenPower, testNotBothMoves} = require('./tools'); - -describe('[Gen 3] Random Battle (slow)', () => { - const options = {format: 'gen3randombattle'}; - - it('should enforce STAB', () => { - testSet('beautifly', options, set => assert( - set.moves.some(m => m.startsWith('hiddenpower')), - `bad Beautifly set: ${JSON.stringify(set.moves)} has no STAB` - )); - - testSet('lickitung', options, set => assert( - set.moves.includes('return') || set.moves.includes('seismictoss'), - `bad Lickitung set: ${JSON.stringify(set.moves)} has no STAB` - )); - - testAlwaysHasMove('delcatty', options, 'doubleedge'); - }); - - it('should prevent double Hidden Power', () => { - testHiddenPower('kingler', options); - testHiddenPower('moltres', options); - }); - - it('should not give Magneton Sleep Talk without Rest', () => { - testSet('magneton', options, set => { - if (set.moves.includes('sleeptalk')) { - assert(set.moves.includes('rest'), `bad Magneton set: ${JSON.stringify(set.moves)}`); - } - }); - }); - - it('should give Blissey Soft-Boiled', () => { - testSet('blissey', options, set => { - assert(set.moves.includes('softboiled'), `bad Blissey set: ${JSON.stringify(set.moves)}`); - }); - }); - - it('should not give Registeel Sleep Talk and Protect', () => { - testSet('registeel', options, set => { - if (set.moves.includes('sleeptalk')) { - assert(!set.moves.includes('protect'), `Registeel with Sleep Talk + Protect (${set.moves})`); - } - }); - }); - - it('should not give Skarmory Roar + Sleep Talk', () => { - testNotBothMoves('skarmory', options, 'roar', 'sleeptalk'); - }); -}); diff --git a/test/random-battles/gen4.js b/test/random-battles/gen4.js deleted file mode 100644 index 28a33c617a90..000000000000 --- a/test/random-battles/gen4.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Tests for Gen 4 randomized formats - */ -'use strict'; - -const assert = require('../assert'); -const {testSet, testHiddenPower} = require('./tools'); - -describe('[Gen 4] Random Battle (slow)', () => { - const options = {format: 'gen4randombattle'}; - - it('should not generate Shaymin-Sky without Air Slash', () => { - testSet('shayminsky', options, set => assert(set.moves.includes('airslash'), `got ${set.moves}`)); - }); - - it('should prevent double Hidden Power', () => testHiddenPower('magnezone', options)); - - it('should give Yanmega Speed Boost if it has Protect', () => { - testSet('yanmega', options, set => { - if (set.ability !== 'Speed Boost') return; - assert(set.moves.includes('protect'), `got ${set.moves}`); - }); - }); -}); diff --git a/test/random-battles/gen5.js b/test/random-battles/gen5.js index 50dd736f93b9..8d501077a9ec 100644 --- a/test/random-battles/gen5.js +++ b/test/random-battles/gen5.js @@ -4,24 +4,11 @@ 'use strict'; const assert = require('../assert'); -const {testHiddenPower, testSet, testAlwaysHasMove} = require('./tools'); +const {testSet} = require('./tools'); describe('[Gen 5] Random Battle (slow)', () => { const options = {format: 'gen5randombattle'}; - it('should prevent double Hidden Power', () => { - testHiddenPower('ampharos', options); - testHiddenPower('venusaur', options); - }); - - it('should give Venusaur four moves', () => { - testSet( - 'venusaur', - {format: 'gen5randombattle', rounds: 1, seed: [2201, 2201, 2201, 2201]}, - set => assert.equal(set.moves.length, 4, `got ${JSON.stringify(set.moves)}`) - ); - }); - it('should prevent unreleased HAs from being used', () => { testSet('chandelure', options, set => assert.notEqual(set.ability, 'Shadow Tag')); }); @@ -29,8 +16,4 @@ describe('[Gen 5] Random Battle (slow)', () => { it('should not give Ursaring Eviolite', () => { testSet('ursaring', options, set => assert.notEqual(set.item, 'Eviolite')); }); - - it('should always give Watchog Return', () => { - testAlwaysHasMove('watchog', options, 'return'); - }); }); diff --git a/test/random-battles/gen6.js b/test/random-battles/gen6.js index f096ee1a3165..e5b1fb8853d1 100644 --- a/test/random-battles/gen6.js +++ b/test/random-battles/gen6.js @@ -4,31 +4,10 @@ 'use strict'; const assert = require('../assert'); -const {testNotBothMoves, testAlwaysHasMove, testHiddenPower, testSet} = require('./tools'); +const {testSet} = require('./tools'); describe('[Gen 6] Random Battle (slow)', () => { const options = {format: 'gen6randombattle'}; - const dataJSON = require(`../../dist/data/mods/gen6/random-data.json`); - const dex = Dex.forFormat(options.format); - const generator = Teams.getGenerator(options.format); - - it('All moves on all sets should be obtainable', () => { - const rounds = 500; - for (const pokemon of Object.keys(dataJSON)) { - const species = dex.species.get(pokemon); - const data = dataJSON[pokemon]; - if (!data.moves || species.isNonstandard) continue; - const remainingMoves = new Set(data.moves); - for (let i = 0; i < rounds; i++) { - // Test lead 1/6 of the time - const set = generator.randomSet(species, {}, i % 6 === 0); - for (const move of set.moves) remainingMoves.delete(move); - if (!remainingMoves.size) break; - } - assert.false(remainingMoves.size, - `The following moves on ${species.name} are unused: ${[...remainingMoves].join(', ')}`); - } - }); it('should not give mega evolution abilities to base formes', () => { testSet('manectricmega', {rounds: 1, ...options}, set => { @@ -36,40 +15,10 @@ describe('[Gen 6] Random Battle (slow)', () => { }); }); - it('should not select Air Slash and Hurricane together', () => { - testNotBothMoves('swanna', options, 'hurricane', 'airslash'); - }); - - it('should enforce STAB properly', () => { - testAlwaysHasMove('hariyama', options, 'closecombat'); - testAlwaysHasMove('rapidash', options, 'flareblitz'); - }); - - it('should give Drifblim only one Ghost-type attack', () => { - testSet('drifblim', options, set => { - assert.equal(set.moves.filter(m => { - const move = Dex.moves.get(m); - return move.type === 'Ghost' && move.category !== 'Status'; - }).length, 1, `got ${JSON.stringify(set.moves)}`); - }); - }); - - it('should prevent double Hidden Power', () => testHiddenPower('thundurustherian', options)); - - it('should always give Mega Glalie Return', () => testAlwaysHasMove('glaliemega', options, 'return')); - it('should not give Ursaring Eviolite', () => { testSet('ursaring', options, set => assert.notEqual(set.item, 'Eviolite')); }); - it('should always give Quagsire Unaware', () => { - testSet('quagsire', options, set => assert.equal(set.ability, 'Unaware')); - }); - - it('should always give Quagsire Recover', () => { - testAlwaysHasMove('quagsire', options, 'recover'); - }); - it('should not give Raikou Volt Absorb', () => { testSet('raikou', options, set => assert.notEqual(set.ability, 'Volt Absorb')); }); @@ -81,8 +30,4 @@ describe('[Gen 6] Random Battle (slow)', () => { it('should not give Entei Flash Fire', () => { testSet('entei', options, set => assert.notEqual(set.ability, 'Flash Fire')); }); - - it('should only give Charizard one of Air Slash and Acrobatics', () => { - testNotBothMoves('charizard', options, 'airslash', 'acrobatics'); - }); }); diff --git a/test/random-battles/gen7.js b/test/random-battles/gen7.js index 19eaf85899a6..e7bbc7f112b8 100644 --- a/test/random-battles/gen7.js +++ b/test/random-battles/gen7.js @@ -4,140 +4,18 @@ 'use strict'; const assert = require('../assert'); -const {testNotBothMoves, testSet, testHiddenPower, testAlwaysHasMove} = require('./tools'); +const {testSet} = require('./tools'); describe('[Gen 7] Random Battle (slow)', () => { const options = {format: 'gen7randombattle'}; - const dataJSON = require(`../../dist/data/mods/gen7/random-data.json`); - const dex = Dex.forFormat(options.format); - const generator = Teams.getGenerator(options.format); - it('All moves on all sets should be obtainable', () => { - const rounds = 500; - for (const pokemon of Object.keys(dataJSON)) { - const species = dex.species.get(pokemon); - const data = dataJSON[pokemon]; - if (!data.moves || species.isNonstandard) continue; - const remainingMoves = new Set(data.moves); - for (let i = 0; i < rounds; i++) { - // Test lead 1/6 of the time - const set = generator.randomSet(species, {}, i % 6 === 0); - for (const move of set.moves) remainingMoves.delete(move); - if (!remainingMoves.size) break; - } - assert.false(remainingMoves.size, - `The following moves on ${species.name} are unused: ${[...remainingMoves].join(', ')}`); - } - }); - - it('should not generate Calm Mind + Yawn', () => { - testNotBothMoves('chimecho', options, 'calmmind', 'yawn'); - }); - - it('should give Azumarill Aqua Jet', () => { - testSet('azumarill', options, set => { - assert(set.moves.includes('aquajet'), `Azumarill: got ${set.moves}`); - }); - }); - - it('should give Typhlosion Eruption', () => { - testSet('typhlosion', options, set => { - assert(set.moves.includes('eruption'), `Typhlosion: got ${set.moves}`); - }); - }); - - it('should not generate Pursuit as the only Dark STAB move', () => { - const darkTypesWithPursuit = Object.keys(dataJSON) - .filter(pkmn => dex.species.get(pkmn).types.includes('Dark') && dataJSON[pkmn].moves?.includes('pursuit')); - for (const pokemon of darkTypesWithPursuit) { - testSet(pokemon, options, set => { - if (!set.moves.includes('pursuit')) return; - const darkStab = set.moves.filter(m => { - const move = dex.moves.get(m); - if (move.type !== 'Dark') return false; - return move.category !== 'Status'; - }); - assert(darkStab.length > 1, `${pokemon}: got ${set.moves}`); - }); - } - }); - - it('should not generate Roar + Protect', () => { - testNotBothMoves('heatran', options, 'roar', 'protect'); - testNotBothMoves('vaporeon', options, 'roar', 'protect'); - testNotBothMoves('walrein', options, 'roar', 'protect'); - testNotBothMoves('bastiodon', options, 'roar', 'protect'); - }); - - it('should not generate Dragon Tail as the only STAB move', () => { - // Mono-Dragon Pokémon chosen as test dummies for simplicity - testSet('druddigon', options, set => { - if (set.moves.includes('dragontail')) { - assert(set.moves.includes('outrage'), `Druddigon: got ${set.moves}`); - } - }); - - testSet('goodra', options, set => { - if (set.moves.includes('dragontail')) { - assert(set.moves.includes('dracometeor') || set.moves.includes('dragonpulse'), `Goodra: got ${set.moves}`); - } - }); - }); - - it('should not generate Swords Dance + Ice Beam', () => { - testNotBothMoves('arceusground', options, 'swordsdance', 'icebeam'); - }); - - it('should prevent double Hidden Power', () => testHiddenPower('thundurustherian', options)); - - it('should give Meganium STAB', () => { - testSet('meganium', options, set => { - assert(set.moves.includes('gigadrain'), `Meganium: got ${set.moves}`); + it('should not give mega evolution abilities to base formes', () => { + testSet('manectricmega', {rounds: 1, ...options}, set => { + assert(set.ability !== 'Intimidate', 'Mega Manectric should not have Intimidate before it mega evolves'); }); }); - it('should never give Xerneas Assault Vest', () => { - testSet('xerneas', options, set => assert.notEqual(set.item, 'Assault Vest')); - }); - - it('should always give Gastrodon Recover', () => { - testAlwaysHasMove('gastrodon', options, 'recover'); - }); - - it('should never give Poliwrath both Rain Dance and Rest', () => { - testNotBothMoves('poliwrath', options, 'raindance', 'rest'); - }); - it('should not give Ursaring Eviolite', () => { testSet('ursaring', options, set => assert.notEqual(set.item, 'Eviolite')); }); - - it('should always give Mega Glalie Return', () => testAlwaysHasMove('glaliemega', options, 'return')); - - it('should not give Zebstrika Thunderbolt and Wild Charge', () => { - testNotBothMoves('zebstrika', options, 'thunderbolt', 'wildcharge'); - }); - - it('should always give Mega Diancie Moonblast if it has Calm Mind', () => { - testSet('dianciemega', options, set => { - if (!set.moves.includes('calmmind')) return; - assert(set.moves.includes('moonblast'), `Diancie: got ${set.moves}`); - }); - }); -}); - -describe('[Gen 7] Random Doubles Battle (slow)', () => { - const options = {format: 'gen7randomdoublesbattle'}; - - it("shouldn't give Manectric Intimidate before Mega Evolving", () => { - testSet('manectricmega', options, set => { - assert.notEqual(set.ability, 'Intimidate'); - }); - }); - - it("should give Mawile Intimidate before Mega Evolving", () => { - testSet('mawilemega', options, set => { - assert.equal(set.ability, 'Intimidate'); - }); - }); }); diff --git a/test/random-battles/gen8.js b/test/random-battles/gen8.js index 55cfcd108543..7b6ddd9474bc 100644 --- a/test/random-battles/gen8.js +++ b/test/random-battles/gen8.js @@ -8,7 +8,7 @@ const assert = require('../assert'); describe('[Gen 8] Random Battle (slow)', () => { const options = {format: 'gen8randombattle'}; - const dataJSON = require(`../../dist/data/mods/gen8/random-data.json`); + const dataJSON = require(`../../dist/data/random-battles/gen8/data.json`); const dex = Dex.forFormat(options.format); const generator = Teams.getGenerator(options.format); @@ -258,7 +258,7 @@ describe('[Gen 8] Free-for-All Random Battle (slow)', () => { describe('[Gen 8 BDSP] Random Battle (slow)', () => { const options = {format: 'gen8bdsprandombattle'}; - const dataJSON = require(`../../dist/data/mods/gen8bdsp/random-data.json`); + const dataJSON = require(`../../dist/data/random-battles/gen8bdsp/data.json`); const dex = Dex.forFormat(options.format); const okToHaveChoiceMoves = ['switcheroo', 'trick', 'healingwish']; diff --git a/test/random-battles/gen9.js b/test/random-battles/gen9.js index a13f8c033758..fd7f4a5f8b67 100644 --- a/test/random-battles/gen9.js +++ b/test/random-battles/gen9.js @@ -5,62 +5,9 @@ const {testTeam, testAlwaysHasMove} = require('./tools'); const assert = require('../assert'); -const Teams = require('./../../dist/sim/teams').Teams; -const Dex = require('./../../dist/sim/dex').Dex; describe('[Gen 9] Random Battle (slow)', () => { const options = {format: 'gen9randombattle'}; - const setsJSON = require(`../../dist/data/random-sets.json`); - const dex = Dex.forFormat(options.format); - - it('all Pokemon should have 4 moves, except for Ditto', function () { - // This test takes more than 2000ms - testTeam({...options, rounds: 100}, team => { - for (const pokemon of team) assert(pokemon.name === 'Ditto' || pokemon.moves.length === 4); - }); - }); - - it('all moves on all sets should be obtainable', function () { - const generator = Teams.getGenerator(options.format); - const rounds = 100; - for (const pokemon of Object.keys(setsJSON)) { - const species = dex.species.get(pokemon); - const sets = setsJSON[pokemon]["sets"]; - const types = species.types; - const abilities = new Set(Object.values(species.abilities)); - if (species.unreleasedHidden) abilities.delete(species.abilities.H); - for (const set of sets) { - const role = set.role; - const moves = new Set(set.movepool.map(m => dex.moves.get(m).id)); - const teraTypes = set.teraTypes; - let teamDetails = {}; - // Go through all possible teamDetails combinations, if necessary - for (let j = 0; j < rounds; j++) { - // Generate a moveset as the lead, teamDetails is always empty for this - const teraType = teraTypes[j % teraTypes.length]; - const movePool = set.movepool.map(m => dex.moves.get(m).id); - const moveSet = generator.randomMoveset(types, abilities, {}, species, true, false, movePool, teraType, role); - for (const move of moveSet) moves.delete(move); - if (!moves.size) break; - // Generate a moveset for each combination of relevant teamDetails - for (let i = 0; i < 8; i++) { - const defog = i % 2; - const stealthRock = Math.floor(i / 2) % 2; - const stickyWeb = Math.floor(i / 4) % 2; - teamDetails = {defog, stealthRock, stickyWeb}; - // randomMoveset() deletes moves from the movepool, so recreate it every time - const movePool = set.movepool.map(m => dex.moves.get(m).id); - const moveSet = generator.randomMoveset(types, abilities, teamDetails, species, false, false, movePool, teraType, role); - for (const move of moveSet) moves.delete(move); - if (!moves.size) break; - } - if (!moves.size) break; - } - assert(!moves.size); - } - } - }); - it("should always give Iron Bundle Freeze-Dry", () => { testAlwaysHasMove('ironbundle', options, 'freezedry'); }); diff --git a/test/random-battles/tools.js b/test/random-battles/tools.js index 5fae1a81a89d..4c0d97ba9f2a 100644 --- a/test/random-battles/tools.js +++ b/test/random-battles/tools.js @@ -22,10 +22,11 @@ function testSet(pokemon, options, test) { const isDoubles = options.isDoubles || (options.format && options.format.includes('doubles')); const isDynamax = options.isDynamax || !(options.format && options.format.includes('nodmax')); + const generator = Teams.getGenerator(options.format, [0, 0, 0, 0]); for (let i = 0; i < rounds; i++) { // If undefined, test lead 1/6 of the time const isLead = options.isLead === undefined ? i % 6 === 2 : options.isLead; - const generator = Teams.getGenerator(options.format, options.seed || [i, i, i, i]); + generator.setSeed(options.seed || [i, i, i, i]); const set = generator.randomSet(pokemon, {}, isLead, isDoubles, isDynamax); test(set); } @@ -107,8 +108,9 @@ function testAlwaysHasMove(pokemon, options, move) { function testTeam(options, test) { const rounds = options.rounds || 1000; + const generator = Teams.getGenerator(options.format, [0, 0, 0, 0]); for (let i = 0; i < rounds; i++) { - const generator = Teams.getGenerator(options.format, options.seed || [i, i, i, i]); + generator.setSeed(options.seed || [i, i, i, i]); const team = generator.getTeam(); test(team); } @@ -123,6 +125,7 @@ function testTeam(options, test) { function assertSetValidity(format, set) { const dex = Dex.forFormat(format); const species = dex.species.get(set.species || set.name); + const setString = JSON.stringify(set); // According to Random Battles room staff, we should not ensure that HP IVs are valid for // BSS formats. This is because level 100 Pokémon can be hypertrained @@ -132,25 +135,25 @@ function assertSetValidity(format, set) { .validateStats(set, species, new PokemonSources()) // Suppress errors about mistaken EV quantities .filter(f => !f.includes(' EVs')); - assert.equal(valid.length, 0, `Invalid stats: ${valid} (set: ${JSON.stringify(set)})`); + assert.equal(valid.length, 0, `Invalid stats: ${valid} (set: ${setString})`); } // We check `dex.gen` here because Format#gen is 0 in the current gen, while ModdedDex#gen is never 0. - assert(species.exists, `The species "${species.name}" does not exist. (set: ${JSON.stringify(set)})`); - assert(species.gen <= dex.gen, `The species "${species.name}" is from a newer generation. (set: ${JSON.stringify(set)})`); + assert(species.exists, `The species "${species.name}" does not exist. (set: ${setString})`); + assert(species.gen <= dex.gen, `The species "${species.name}" is from a newer generation. (set: ${setString})`); if (set.item) { const item = dex.items.get(set.item); - assert(item.exists, `The item "${item.name}" does not exist. (set: ${JSON.stringify(set)})`); - assert(item.gen <= dex.gen, `The item "${item.name}" is from a newer generation. (set: ${JSON.stringify(set)})`); + assert(item.exists, `The item "${item.name}" does not exist. (set: ${setString})`); + assert(item.gen <= dex.gen, `The item "${item.name}" is from a newer generation. (set: ${setString})`); } if (set.ability && set.ability !== 'None') { const ability = dex.abilities.get(set.ability); - assert(ability.exists, `The ability "${ability.name}" does not exist. (set: ${JSON.stringify(set)})`); - assert(ability.gen <= dex.gen, `The ability "${ability.name}" is from a newer generation. (set: ${JSON.stringify(set)})`); + assert(ability.exists, `The ability "${ability.name}" does not exist. (set: ${setString})`); + assert(ability.gen <= dex.gen, `The ability "${ability.name}" is from a newer generation. (set: ${setString})`); } else { - assert(dex.gen < 3, `This set does not have an ability, but is intended for use in Gen 3 or later. (set: ${JSON.stringify(set)})`); + assert(dex.gen < 3, `This set does not have an ability, but is intended for use in Gen 3 or later. (set: ${setString})`); } // Arceus plate check @@ -163,7 +166,7 @@ function assertSetValidity(format, set) { assert(set.item.endsWith(' Plate'), `${species.name} doesn't have a Plate (got "${set.item}" instead)`); } - assert(set.moves.filter(m => m.startsWith('hiddenpower')).length <= 1, `This set has multiple Hidden Power moves. (set: ${JSON.stringify(set)})`); + assert(set.moves.filter(m => m.startsWith('hiddenpower')).length <= 1, `This set has multiple Hidden Power moves. (set: ${setString})`); } /** diff --git a/test/server/cg-teams.js b/test/server/cg-teams.js index acf9ec7457b8..21d852288a43 100644 --- a/test/server/cg-teams.js +++ b/test/server/cg-teams.js @@ -4,7 +4,7 @@ const assert = require('assert').strict; const TeamGenerator = require('../../dist/data/cg-teams').default; describe('[Gen 9] Computer-Generated Teams', () => { - it('should give all species 4 or fewer moves', () => { + it.skip('should give all species 4 or fewer moves', () => { const generator = new TeamGenerator(); const pool = generator.dex.species .all() diff --git a/test/server/chat-commands/moderation.js b/test/server/chat-commands/moderation.js index 2177185a2089..0e5334680609 100644 --- a/test/server/chat-commands/moderation.js +++ b/test/server/chat-commands/moderation.js @@ -16,7 +16,7 @@ describe('room promotions', function () { this.room = Rooms.get('promotiontesting'); this.user = makeUser('Annika', '127.0.0.1'); - this.user.setGroup('&'); + this.user.setGroup('~'); this.targetUser = makeUser('Heart of Etheria', '127.0.0.1'); }); diff --git a/test/server/ladders.js b/test/server/ladders.js index c3b701ba2105..659ec930e4ff 100644 --- a/test/server/ladders.js +++ b/test/server/ladders.js @@ -125,8 +125,10 @@ describe('Matchmaker', function () { try { room = Rooms.createBattle({ format: FORMATID, - p1: {user: this.p1, team: this.s1.team}, - p2: {user: this.p1, team: this.s2.team}, + players: [ + {user: this.p1, team: this.s1.team}, + {user: this.p1, team: this.s2.team}, + ], rated: 1000, }); } catch {} @@ -144,8 +146,12 @@ describe('Matchmaker', function () { }); it('should prevent battles from starting if the server is in lockdown', function () { - const room = Rooms.createBattle(FORMATID, {p1: this.p1, p2: this.p2, p1team: this.s1.team, p2team: this.s2.team, rated: 1000}); - assert.equal(room, undefined); + const room = Rooms.createBattle({ + format: FORMATID, + players: [{user: this.p1, team: this.s1.team}, {user: this.p2, team: this.s2.team}], + rated: 1000, + }); + assert.equal(room, null); }); }); }); diff --git a/test/server/punishments.js b/test/server/punishments.js index 589e17ddb89a..f08a72930308 100644 --- a/test/server/punishments.js +++ b/test/server/punishments.js @@ -141,7 +141,7 @@ describe('broader, more integrated Punishments tests', function () { // determining whether a PM was sucessful (such as modifying Chat.sendPM), or skipped entirely. it('should prevent users from sending PMs other than to staff while they are locked', async () => { makeUser("Some Random Reg", '127.0.0.4'); - makeUser("Annika", '127.0.0.5').tempGroup = '&'; + makeUser("Annika", '127.0.0.5').tempGroup = '~'; let result = await this.parse("/msg Some Random Reg, Hi! I'm a locked user!"); assert.equal(result, false, `user should be unable to sucessfully send PMs while locked`); diff --git a/test/server/room-battle.js b/test/server/room-battle.js index ccdc8e03e0a3..c6ca54476550 100644 --- a/test/server/room-battle.js +++ b/test/server/room-battle.js @@ -6,33 +6,34 @@ const {makeUser} = require('../users-utils'); describe('Simulator abstraction layer features', function () { describe('Battle', function () { - describe('player identifiers', function () { - let p1, p2, room; - afterEach(function () { - if (p1) { - p1.disconnectAll(); - p1.destroy(); - } - if (p2) { - p2.disconnectAll(); - p2.destroy(); - } - if (room) room.destroy(); - }); + let p1, p2, room; + afterEach(function () { + if (p1) { + p1.disconnectAll(); + p1.destroy(); + } + if (p2) { + p2.disconnectAll(); + p2.destroy(); + } + if (room) room.destroy(); + }); - it('should not get players out of sync in rated battles on rename', function () { - // Regression test for 47263c8749 - const packedTeam = 'Weavile||lifeorb||swordsdance,knockoff,iceshard,iciclecrash|Jolly|,252,,,4,252|||||'; - p1 = makeUser("MissingNo."); - p2 = makeUser(); - room = Rooms.createBattle({ - format: '', p1: {user: p1, team: packedTeam}, p2: {user: p2, team: packedTeam}, allowRenames: false, - }); - p1.resetName(); - for (const player of room.battle.players) { - assert.equal(player, room.battle.playerTable[toID(player.name)]); - } + it('should not get players out of sync in rated battles on rename', function () { + // Regression test for 47263c8749 + const packedTeam = 'Weavile||lifeorb||swordsdance,knockoff,iceshard,iciclecrash|Jolly|,252,,,4,252|||||'; + p1 = makeUser("MissingNo."); + p2 = makeUser(); + room = Rooms.createBattle({ + format: '', + players: [{user: p1, team: packedTeam}, {user: p2, team: packedTeam}], + allowRenames: false, }); + assert(room.battle); + p1.resetName(); + for (const player of room.battle.players) { + assert.equal(player, room.battle.playerTable[toID(player.name)]); + } }); }); diff --git a/test/server/rooms.js b/test/server/rooms.js index 243361a5f543..163ebcc011f0 100644 --- a/test/server/rooms.js +++ b/test/server/rooms.js @@ -58,8 +58,10 @@ describe('Rooms features', function () { for (const option of options) { room = Rooms.createBattle({ format: 'customgame', - p1: {user: p1, team: packedTeam}, - p2: {user: p2, team: packedTeam}, + players: [ + {user: p1, team: packedTeam}, + {user: p2, team: packedTeam}, + ], ...option, }); assert(room.battle.p1 && room.battle.p2); // Automatically joined @@ -73,8 +75,10 @@ describe('Rooms features', function () { const p2 = makeUser(); room = Rooms.createBattle({ format: 'customgame', - p1: {user: p1, team: packedTeam}, - p2: {user: p2, team: packedTeam}, + players: [ + {user: p1, team: packedTeam}, + {user: p2, team: packedTeam}, + ], rated: false, auth: {}, tour: { @@ -95,14 +99,10 @@ describe('Rooms features', function () { administrator.tempGroup = '~'; room = Rooms.createBattle({ format: 'customgame', - p1: { - user: p1, - team: packedTeam, - }, - p2: { - user: p2, - team: packedTeam, - }, + players: [ + {user: p1, team: packedTeam}, + {user: p2, team: packedTeam}, + ], rated: false, auth: {}, tour: { diff --git a/test/server/users.js b/test/server/users.js index 3cba3811acfe..05dc4c019c6d 100644 --- a/test/server/users.js +++ b/test/server/users.js @@ -167,7 +167,7 @@ describe('Users features', function () { assert.equal(user.can('globalban', target), true, 'targeting lower rank'); target.tempGroup = '@'; assert.equal(user.can('globalban', target), false, 'targeting same rank'); - target.tempGroup = '&'; + target.tempGroup = '~'; assert.equal(user.can('globalban', target), false, 'targeting higher rank'); }); it(`should not allow users to demote themselves`, function () { diff --git a/test/sim/abilities/asone.js b/test/sim/abilities/asone.js new file mode 100644 index 000000000000..80d0084e85fb --- /dev/null +++ b/test/sim/abilities/asone.js @@ -0,0 +1,29 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe(`As One`, function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should work if the user is Transformed`, function () { + battle = common.createBattle([[ + {species: 'ditto', ability: 'imposter', moves: ['transform']}, + ], [ + {species: 'calyrexshadow', ability: 'asonespectrier', item: 'cheriberry', moves: ['glare', 'sleeptalk', 'astralbarrage']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ]]); + + const ditto = battle.p1.active[0]; + const calyrex = battle.p2.active[0]; + battle.makeChoices('move glare', 'move sleeptalk'); + assert.equal(calyrex.status, 'par', `Calyrex should not have eaten its Berry, being affected by Ditto-Calyrex's Unnerve`); + + battle.makeChoices('move astralbarrage', 'move sleeptalk'); + assert.statStage(ditto, 'spa', 1); + }); +}); diff --git a/test/sim/abilities/commander.js b/test/sim/abilities/commander.js index 86e4260bcab7..9cf3b72af474 100644 --- a/test/sim/abilities/commander.js +++ b/test/sim/abilities/commander.js @@ -21,7 +21,7 @@ describe('Commander', function () { assert.cantMove(() => battle.p2.choose('move swordsdance', 'move sleeptalk')); }); - it(`should not work if either Pokemon is Transformed`, function () { + it(`should not work if another Pokemon is Transformed into Dondozo`, function () { battle = common.createBattle({gameType: 'doubles'}, [[ {species: 'wynaut', moves: ['sleeptalk']}, {species: 'dondozo', moves: ['sleeptalk']}, @@ -32,10 +32,58 @@ describe('Commander', function () { battle.makeChoices('auto', 'move sleeptalk, move transform 2'); const mewDondozo = battle.p2.active[1]; - assert.false(!!mewDondozo.volatiles['commanding']); + assert.false(!!mewDondozo.volatiles['commanded']); }); - it.skip(`should cause Tatsugiri to dodge all moves, including moves which normally bypass semi-invulnerability`, function () { + it(`should not work if another Pokemon is Transformed into Tatsugiri`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'tatsugiri', ability: 'commander', moves: ['sleeptalk']}, + ], [ + {species: 'roggenrola', moves: ['sleeptalk']}, + {species: 'sunkern', ability: 'commander', moves: ['transform']}, + {species: 'dondozo', moves: ['transform']}, + ]]); + + battle.makeChoices('auto', 'move sleeptalk, move transform 2'); + battle.makeChoices('auto', 'switch 3, move sleeptalk'); + const dondozo = battle.p2.active[0]; + assert.false(!!dondozo.volatiles['commanded'], `Transformed Sunkern into another Tatsugiri should not trigger Commander`); + }); + + it(`should work if Tatsugiri is Transformed into another Pokemon with Commander`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'sunkern', ability: 'commander', moves: ['sleeptalk']}, + ], [ + {species: 'roggenrola', moves: ['sleeptalk']}, + {species: 'tatsugiri', ability: 'commander', moves: ['transform']}, + {species: 'dondozo', moves: ['transform']}, + ]]); + + battle.makeChoices('auto', 'move sleeptalk, move transform 2'); + battle.makeChoices('auto', 'switch 3, move sleeptalk'); + const dondozo = battle.p2.active[0]; + assert(!!dondozo.volatiles['commanded']); + }); + + it(`should work if Dondozo is Transformed`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'diglett', moves: ['sleeptalk']}, + ], [ + {species: 'dondozo', moves: ['transform']}, + {species: 'roggenrola', moves: ['sleeptalk']}, + {species: 'tatsugiri', ability: 'commander', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('auto', 'move transform 2, move sleeptalk'); + battle.makeChoices('auto', 'move sleeptalk, switch 3'); + const dondozo = battle.p2.active[0]; + assert(!!dondozo.volatiles['commanded']); + }); + + it(`should cause Tatsugiri to dodge all moves, including moves which normally bypass semi-invulnerability`, function () { battle = common.createBattle({gameType: 'doubles'}, [[ {species: 'machamp', ability: 'noguard', moves: ['closecombat']}, {species: 'seviper', moves: ['toxic']}, @@ -119,4 +167,94 @@ describe('Commander', function () { const secondDondozo = battle.p2.active[1]; assert(!!secondDondozo.volatiles['commanded']); }); + + it(`should not work in Multi Battles`, function () { + battle = common.createBattle({gameType: 'multi'}, [[ + {species: 'diggersby', moves: ['sleeptalk']}, + ], [ + {species: 'tatsugiri', ability: 'commander', moves: ['sleeptalk']}, + ], [ + {species: 'cubone', moves: ['sleeptalk']}, + ], [ + {species: 'dondozo', moves: ['sleeptalk']}, + ]]); + + const dondozo = battle.p4.active[0]; + assert.false(!!dondozo.volatiles['commanded']); + }); + + it(`should prevent Dondozo and Tatsugiri from combining if Commander is suppressed`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'shuckle', moves: ['sleeptalk']}, + {species: 'weezing', ability: 'neutralizinggas', moves: ['sleeptalk']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'tatsugiri', ability: 'commander', moves: ['sleeptalk']}, + {species: 'dondozo', moves: ['sleeptalk']}, + ]]); + + const dondozo = battle.p2.active[1]; + assert.false(!!dondozo.volatiles['commanded']); + + battle.makeChoices('move sleeptalk, switch 3', 'auto'); + assert(!!dondozo.volatiles['commanded']); + }); + + it(`should not split apart Dondozo and Tatsugiri if Neutralizing Gas switches in`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'shuckle', moves: ['sleeptalk']}, + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'weezing', ability: 'neutralizinggas', moves: ['sleeptalk']}, + ], [ + {species: 'tatsugiri', ability: 'commander', moves: ['dazzlinggleam']}, + {species: 'dondozo', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('switch 3, move sleeptalk', 'auto'); + battle.makeChoices(); + + const dondozo = battle.p2.active[1]; + assert(!!dondozo.volatiles['commanded']); + + const shuckle = battle.p1.active[0]; + assert.fullHP(shuckle, `Shuckle should have never taken damage from Dazzling Gleam`); + }); + + it(`should allow Tatsugiri to move again if Dondozo faints while Neutralizing Gas is active`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'shuckle', moves: ['sleeptalk']}, + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'weezing', ability: 'neutralizinggas', moves: ['sleeptalk']}, + ], [ + {species: 'tatsugiri', ability: 'commander', moves: ['dazzlinggleam']}, + {species: 'dondozo', moves: ['memento']}, + ]]); + + battle.makeChoices('switch 3, move sleeptalk', 'auto'); + battle.makeChoices(); + + const tatsugiri = battle.p2.pokemon[0]; + assert.false(!!tatsugiri.volatiles['commanding']); + + battle.makeChoices(); + const shuckle = battle.p1.active[0]; + assert.false.fullHP(shuckle, `Shuckle should have taken damage from Dazzling Gleam`); + }); + + it.skip(`should activate after hazards run`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'regieleki', moves: ['toxicspikes']}, + {species: 'registeel', moves: ['sleeptalk']}, + ], [ + {species: 'shuckle', moves: ['uturn']}, + {species: 'dondozo', moves: ['sleeptalk']}, + {species: 'tatsugiri', ability: 'commander', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + battle.makeChoices(); + const tatsugiri = battle.p2.pokemon[0]; + + assert(tatsugiri.status, 'psn'); + }); }); diff --git a/test/sim/abilities/costar.js b/test/sim/abilities/costar.js new file mode 100644 index 000000000000..42b53cb99a20 --- /dev/null +++ b/test/sim/abilities/costar.js @@ -0,0 +1,61 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Costar', function () { + afterEach(function () { + battle.destroy(); + }); + + it('should copy the teammate\'s crit ratio on activation', function () { + battle = common.createBattle({gameType: 'doubles'}); + battle.setPlayer('p1', {team: [ + {species: 'Smeargle', level: 1, moves: ['sleeptalk', 'focusenergy']}, + {species: 'Suicune', level: 1, moves: ['sleeptalk']}, + {species: 'Flamigo', level: 1, ability: 'costar', moves: ['sleeptalk']}, + ]}); + battle.setPlayer('p2', {team: [ + {species: 'Suicune', level: 1, moves: ['sleeptalk']}, + {species: 'pikachu', level: 1, moves: ['sleeptalk']}, + {species: 'weezinggalar', level: 1, ability: 'neutralizinggas', moves: ['sleeptalk']}, + ]}); + + battle.makeChoices('move focusenergy, move sleeptalk', 'move sleeptalk, move sleeptalk'); + battle.makeChoices('move sleeptalk, switch flamigo', 'move sleeptalk, move sleeptalk'); + + const flamigo = battle.p1.active[1]; + assert(flamigo.volatiles['focusenergy'], "Costar should copy volatile crit modifiers."); + + battle.makeChoices('switch suicune, move sleeptalk', 'switch weezinggalar, move sleeptalk'); + battle.makeChoices('move sleeptalk, move sleeptalk', 'switch suicune, move sleeptalk'); + assert(!flamigo.volatiles['focusenergy'], "Costar should copy having no volatile crit modifiers when re-activated."); + }); + + it('should copy both positive and negative stat changes', function () { + battle = common.createBattle({gameType: 'doubles'}); + battle.setPlayer('p1', {team: [ + {species: 'Suicune', level: 1, moves: ['sleeptalk']}, + {species: 'Smeargle', level: 1, moves: ['sleeptalk', 'shellsmash']}, + {species: 'Flamigo', level: 1, ability: 'costar', moves: ['sleeptalk']}, + ]}); + battle.setPlayer('p2', {team: [ + {species: 'Suicune', level: 1, moves: ['sleeptalk']}, + {species: 'Suicune', level: 1, moves: ['sleeptalk']}, + ]}); + + + battle.makeChoices('move sleeptalk, move shellsmash', 'move sleeptalk, move sleeptalk'); + battle.makeChoices('switch flamigo, move sleeptalk', 'move sleeptalk, move sleeptalk'); + + const flamigo = battle.p1.active[0]; + assert.statStage(flamigo, 'atk', 2, "A pokemon should copy the target's positive stat changes (atk) when switching in with Costar."); + assert.statStage(flamigo, 'spa', 2, "A pokemon should copy the target's positive stat changes (spa) when switching in with Costar."); + assert.statStage(flamigo, 'spe', 2, "A pokemon should copy the target's positive stat changes (spe) when switching in with Costar."); + assert.statStage(flamigo, 'def', -1, "A pokemon should copy the target's negative stat changes (def) when switching in with Costar."); + assert.statStage(flamigo, 'spd', -1, "A pokemon should copy the target's negative stat changes (spd) when switching in with Costar."); + }); +}); + diff --git a/test/sim/abilities/defiant.js b/test/sim/abilities/defiant.js new file mode 100644 index 000000000000..0010e2609458 --- /dev/null +++ b/test/sim/abilities/defiant.js @@ -0,0 +1,40 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe(`Defiant`, function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should raise the user's attack when lowered by an opponent`, function () { + battle = common.createBattle([[ + {species: 'pawniard', ability: 'defiant', moves: ['sleeptalk', 'tackle']}, + ], [ + {species: 'wynaut', moves: ['faketears', 'firelash', 'silktrap']}, + ]]); + battle.makeChoices('auto', 'move faketears'); + battle.makeChoices('auto', 'move firelash'); + battle.makeChoices('move tackle', 'move silktrap'); + + assert.statStage(battle.p1.active[0], 'atk', 6); + }); + + it(`should not raise the user's attack when lowered by itself or an ally`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'pawniard', ability: 'defiant', moves: ['closecombat', 'sleeptalk']}, + {species: 'wynaut', moves: ['faketears', 'firelash', 'silktrap']}, + ], [ + {species: 'screamtail', moves: ['sleeptalk']}, + {species: 'jigglypuff', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move sleeptalk, move firelash -1', 'auto'); + battle.makeChoices('move closecombat 1, move faketears -1', 'auto'); + battle.makeChoices('move closecombat -2, move silktrap', 'auto'); + + assert.statStage(battle.p1.active[0], 'atk', 0); + }); +}); diff --git a/test/sim/abilities/disguise.js b/test/sim/abilities/disguise.js index d4bc8fea47c9..05f587d7564c 100644 --- a/test/sim/abilities/disguise.js +++ b/test/sim/abilities/disguise.js @@ -99,4 +99,17 @@ describe('Disguise', function () { battle.makeChoices(); assert(battle.log.every(line => !line.startsWith('|-crit'))); }); + + it(`should not work while Transformed`, function () { + battle = common.createBattle([[ + {species: 'Mimikyu', ability: 'disguise', moves: ['transform']}, + ], [ + {species: 'Mimikyu', ability: 'disguise', moves: ['sleeptalk', 'aerialace']}, + ]]); + battle.makeChoices(); + battle.makeChoices('auto', 'move aerialace'); + const transformedMimikyu = battle.p1.active[0]; + assert.species(transformedMimikyu, 'Mimikyu', `Transformed Mimikyu should not have changed to Mimikyu-busted after taking damage`); + assert.false.fullHP(transformedMimikyu); + }); }); diff --git a/test/sim/abilities/download.js b/test/sim/abilities/download.js new file mode 100644 index 000000000000..4e9725208b61 --- /dev/null +++ b/test/sim/abilities/download.js @@ -0,0 +1,92 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Download', () => { + afterEach(() => battle.destroy()); + + it('should boost based on which defensive stat is higher', () => { + battle = common.createBattle([[ + {species: 'porygon', moves: ['sleeptalk'], ability: 'download'}, + {species: 'furret', moves: ['sleeptalk']}, + ], [ + {species: 'stonjourner', moves: ['sleeptalk']}, + {species: 'chansey', moves: ['sleeptalk']}, + ]]); + assert.statStage(battle.p1.active[0], 'spa', 1); + battle.makeChoices('switch 2', 'switch 2'); + battle.makeChoices('switch 2', 'auto'); + assert.statStage(battle.p1.active[0], 'atk', 1); + }); + + it('should boost Special Attack if both stats are tied', () => { + battle = common.createBattle([[ + {species: 'porygon', moves: ['sleeptalk'], ability: 'download'}, + ], [ + {species: 'mew', moves: ['sleeptalk']}, + ]]); + assert.statStage(battle.p1.active[0], 'spa', 1); + assert.statStage(battle.p1.active[0], 'atk', 0); + }); + + it('should boost based on the total of both foes in a Double Battle', () => { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'porygon', moves: ['sleeptalk'], ability: 'download'}, + {species: 'blissey', moves: ['sleeptalk']}, + ], [ + {species: 'blissey', level: 1, moves: ['sleeptalk']}, + {species: 'stonjourner', moves: ['sleeptalk']}, + ]]); + assert.statStage(battle.p1.active[0], 'spa', 1); + assert.statStage(battle.p1.active[0], 'atk', 0); + }); + + it('should trigger even if the foe is behind a Substitute', () => { + battle = common.createBattle([[ + {species: 'furret', moves: ['sleeptalk']}, + {species: 'porygon', ability: 'download', moves: ['sleeptalk']}, + ], [ + {species: 'blissey', moves: ['substitute']}, + ]]); + battle.makeChoices(); + battle.makeChoices('switch 2', 'auto'); + assert.statStage(battle.p1.active[0], 'atk', 1); + }); + + describe('Gen 4', () => { + it('should not trigger if the foe is behind a Substitute', () => { + battle = common.gen(4).createBattle([[ + {species: 'furret', moves: ['sleeptalk']}, + {species: 'porygon', ability: 'download', moves: ['sleeptalk']}, + ], [ + {species: 'ampharos', moves: ['substitute']}, + ]]); + battle.makeChoices(); + battle.makeChoices('switch 2', 'auto'); + assert.statStage(battle.p1.active[0], 'atk', 0); + assert.statStage(battle.p1.active[0], 'spa', 0); + }); + + it('in Double Battles, should only account for foes not behind a Substitute', () => { + battle = common.gen(4).createBattle({gameType: 'doubles'}, [[ + {species: 'furret', moves: ['sleeptalk']}, + {species: 'ampharos', moves: ['sleeptalk']}, + {species: 'porygon', ability: 'download', moves: ['sleeptalk']}, + ], [ + {species: 'blissey', moves: ['substitute']}, + {species: 'furret', moves: ['sleeptalk', 'substitute']}, + ]]); + battle.makeChoices(); + battle.makeChoices('move 1, switch 3', 'auto'); + assert.statStage(battle.p1.active[1], 'atk', 0); + assert.statStage(battle.p1.active[1], 'spa', 1); + battle.makeChoices('move 1, switch 3', 'move 1, move 2'); + battle.makeChoices('move 1, switch 3', 'auto'); + assert.statStage(battle.p1.active[1], 'atk', 0); + assert.statStage(battle.p1.active[1], 'spa', 0); + }); + }); +}); diff --git a/test/sim/abilities/guarddog.js b/test/sim/abilities/guarddog.js new file mode 100644 index 000000000000..afc149fddd48 --- /dev/null +++ b/test/sim/abilities/guarddog.js @@ -0,0 +1,44 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +const GUARD_DOG_MON = {species: "Mabosstiff", ability: 'guarddog', moves: ['sleeptalk']}; + +describe("Guard Dog", () => { + afterEach(() => battle.destroy()); + + it("should nullify Intimidate and instead boost the Pokemon's Attack by 1", () => { + battle = common.createBattle([[ + GUARD_DOG_MON, + ], [ + {species: 'sandile', ability: 'intimidate', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + assert.statStage(battle.p1.active[0], 'atk', 1); + }); + + it("should prevent phazing", () => { + battle = common.createBattle([[ + GUARD_DOG_MON, + {species: 'azumarill', ability: 'thickfat', moves: ['rollout']}, + ], [ + {species: 'shinx', ability: 'rivalry', moves: ['roar']}, + ]]); + battle.makeChoices(); + assert.species(battle.p1.active[0], GUARD_DOG_MON.species); + }); + + it("should be bypassed by Mold Breaker", () => { + battle = common.createBattle([[ + GUARD_DOG_MON, + {species: 'azumarill', ability: 'thickfat', moves: ['rollout']}, + ], [ + {species: 'shinx', ability: 'moldbreaker', moves: ['roar']}, + ]]); + battle.makeChoices(); + assert.species(battle.p1.active[0], "Azumarill"); + }); +}); diff --git a/test/sim/abilities/hungerswitch.js b/test/sim/abilities/hungerswitch.js index 119974e07239..e28cb207ee5b 100644 --- a/test/sim/abilities/hungerswitch.js +++ b/test/sim/abilities/hungerswitch.js @@ -23,4 +23,50 @@ describe("Hunger Switch", function () { battle.makeChoices(); assert.species(peko, 'Morpeko'); }); + + it("should revert back to the base form when switched out", function () { + battle = common.createBattle([[ + {species: 'Morpeko', ability: 'hungerswitch', moves: ['rest']}, + {species: 'Furret', ability: 'Run Away', moves: ['sleeptalk']}, + ], [ + {species: 'Magikarp', ability: 'Swift Swim', moves: ['splash']}, + {species: 'Koffing', ability: 'neutralizinggas', moves: ['sleeptalk']}, + ]]); + const peko = battle.p1.active[0]; + battle.makeChoices(); + assert.species(peko, 'Morpeko-Hangry'); + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'switch 2'); + assert.species(peko, 'Morpeko'); + }); + + it("should stop activating when Morpeko Terastallizes", function () { + battle = common.createBattle([[ + {species: 'Morpeko', ability: 'hungerswitch', moves: ['rest']}, + ], [ + {species: 'Magikarp', ability: 'Swift Swim', moves: ['splash']}, + ]]); + const peko = battle.p1.active[0]; + battle.makeChoices(); + assert.species(peko, 'Morpeko-Hangry'); + battle.makeChoices('move 1 terastallize', 'auto'); + assert.species(peko, 'Morpeko-Hangry'); + }); + + it("should maintain its form when Terastallized, even when switched out", function () { + battle = common.createBattle([[ + {species: 'Morpeko', ability: 'hungerswitch', moves: ['rest']}, + {species: 'Furret', ability: 'Run Away', moves: ['sleeptalk']}, + ], [ + {species: 'Magikarp', ability: 'Swift Swim', moves: ['splash']}, + {species: 'Koffing', ability: 'neutralizinggas', moves: ['sleeptalk']}, + ]]); + const peko = battle.p1.active[0]; + battle.makeChoices(); + battle.makeChoices('move 1 terastallize', 'auto'); + assert.species(peko, 'Morpeko-Hangry'); + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'switch 2'); + assert.species(peko, 'Morpeko-Hangry'); + }); }); diff --git a/test/sim/abilities/iceface.js b/test/sim/abilities/iceface.js index fc5185aa6ffb..d0e4fd6bf7c9 100644 --- a/test/sim/abilities/iceface.js +++ b/test/sim/abilities/iceface.js @@ -24,8 +24,27 @@ describe('Ice Face', function () { assert.hurts(eiscue, () => battle.makeChoices()); }); - it(`should not trigger if the Pokemon was KOed`, function () { - // TODO: Make compatible with gen 9 + it(`should not work while Transformed`, function () { + battle = common.createBattle([[ + {species: 'Eiscue', ability: 'iceface', moves: ['transform']}, + {species: 'Wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'Eiscue', ability: 'iceface', moves: ['sleeptalk', 'aerialace', 'hail']}, + ]]); + battle.makeChoices(); + battle.makeChoices('move aerialace', 'move aerialace'); + const transformedEiscue = battle.p1.active[0]; + assert.species(transformedEiscue, 'Eiscue', `Transformed Eiscue should not have changed to Eiscue-Noice after taking physical damage`); + assert.false.fullHP(transformedEiscue); + + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('move transform', 'auto'); + battle.makeChoices('move hail', 'auto'); + assert.species(transformedEiscue, 'Eiscue-Noice', `Transformed Eiscue should not have changed to Eiscue after hail was set`); + }); + + it(`should not trigger if the Pokemon was KOed by Max Hailstorm`, function () { battle = common.gen(8).createBattle([[ {species: 'Eiscue', level: 1, ability: 'iceface', moves: ['sleeptalk']}, ], [ diff --git a/test/sim/abilities/intrepidsword.js b/test/sim/abilities/intrepidsword.js new file mode 100644 index 000000000000..537ae300ac83 --- /dev/null +++ b/test/sim/abilities/intrepidsword.js @@ -0,0 +1,77 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Intrepid Sword', function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should only increase the user's Attack stat once per game`, function () { + battle = common.createBattle([[ + {species: 'Zacian', ability: 'intrepidsword', moves: ['sleeptalk']}, + {species: 'Wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'Mew', moves: ['sleeptalk']}, + ]]); + + const zacian = battle.p1.active[0]; + assert.statStage(zacian, 'atk', 1); + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'auto'); + assert.statStage(zacian, 'atk', 0); + }); + + it(`should use up its once-per-game boost if it switches in with +6 Attack`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', moves: ['bellydrum', 'batonpass']}, + {species: 'Zacian', ability: 'intrepidsword', moves: ['sleeptalk']}, + ], [ + {species: 'Mew', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move bellydrum', 'auto'); + battle.makeChoices('move batonpass', 'auto'); + battle.makeChoices('switch 2'); + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'auto'); + const zacian = battle.p1.active[0]; + assert.statStage(zacian, 'atk', 0); + }); + + it(`should not use up its once-per-game boost if it switches in while its Ability is suppressed`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', moves: ['batonpass']}, + {species: 'Zacian', ability: 'intrepidsword', moves: ['sleeptalk']}, + ], [ + {species: 'Mew', moves: ['sleeptalk', 'gastroacid']}, + ]]); + + battle.makeChoices('move batonpass', 'move gastroacid'); + battle.makeChoices('switch 2'); + const zacian = battle.p1.active[0]; + assert.statStage(zacian, 'atk', 0); + + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'auto'); + assert.statStage(zacian, 'atk', 1); + }); + + it(`should be able to increase the user's Attack stat multiple times per game [Gen 8]`, function () { + battle = common.gen(8).createBattle([[ + {species: 'Zacian', ability: 'intrepidsword', moves: ['sleeptalk']}, + {species: 'Wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'Mew', moves: ['sleeptalk']}, + ]]); + + const zacian = battle.p1.active[0]; + assert.statStage(zacian, 'atk', 1); + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'auto'); + assert.statStage(zacian, 'atk', 1); + }); +}); diff --git a/test/sim/abilities/mummy.js b/test/sim/abilities/mummy.js index f78f88324e67..cc90defd00dd 100644 --- a/test/sim/abilities/mummy.js +++ b/test/sim/abilities/mummy.js @@ -21,7 +21,7 @@ describe('Mummy', function () { assert.equal(battle.p2.active[0].ability, 'mummy'); }); - it(`should not change isPermanent abilities`, function () { + it(`should not change abilities that can't be suppressed`, function () { battle = common.createBattle([[ {species: 'Cofagrigus', ability: 'mummy', moves: ['sleeptalk']}, ], [ diff --git a/test/sim/abilities/myceliummight.js b/test/sim/abilities/myceliummight.js index ecee3abf6e24..77131ddf2106 100644 --- a/test/sim/abilities/myceliummight.js +++ b/test/sim/abilities/myceliummight.js @@ -19,4 +19,22 @@ describe("Mycelium Might", function () { battle.makeChoices(); assert.false.fullHP(battle.p2.active[0]); }); + it("should never trigger your own quick claw if using a status move", function () { + battle = common.createBattle({forceRandomChance: true}, [[ + {species: "Bonsly", ability: 'myceliummight', item: 'quickclaw', moves: ['spore']}, + ], [ + {species: "Regieleki", moves: ['falseswipe']}, + ]]); + battle.makeChoices(); + assert.false.fullHP(battle.p1.active[0]); + }); + it("should be able to trigger your own quick claw if using a non-status move", function () { + battle = common.createBattle({forceRandomChance: true}, [[ + {species: "Bonsly", ability: 'myceliummight', item: 'quickclaw', moves: ['tackle']}, + ], [ + {species: "Regieleki", moves: ['spore']}, + ]]); + battle.makeChoices(); + assert.false.fullHP(battle.p2.active[0]); + }); }); diff --git a/test/sim/abilities/neutralizinggas.js b/test/sim/abilities/neutralizinggas.js index 0830b886c44b..b2e73fe7ef9b 100644 --- a/test/sim/abilities/neutralizinggas.js +++ b/test/sim/abilities/neutralizinggas.js @@ -287,6 +287,50 @@ describe('Neutralizing Gas', function () { assert.statStage(battle.p2.active[0], 'atk', 1); }); + it(`should not reactivate abilities that were protected by Ability Shield`, function () { + battle = common.createBattle([[ + {species: 'Porygon', ability: 'download', item: 'abilityshield', moves: ['sleeptalk']}, + ], [ + {species: 'Weezing', ability: 'neutralizinggas', moves: ['sleeptalk']}, + {species: 'Wynaut', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move sleeptalk', 'auto'); + battle.makeChoices('auto', 'switch 2'); + const porygon = battle.p1.active[0]; + assert.statStage(porygon, 'spa', 1); + }); + + it(`should not reactivate instances of Embody Aspect that had previously activated`, function () { + battle = common.createBattle({gameType: 'freeforall'}, [[ + {species: 'Ogerpon-Hearthflame', ability: 'moldbreaker', item: 'hearthflamemask', moves: ['bellydrum']}, + ], [ + {species: 'Ogerpon-Wellspring', ability: 'waterabsorb', item: 'wellspringmask', moves: ['sleeptalk']}, + ], [ + {species: 'Ogerpon-Cornerstone', ability: 'sturdy', item: 'cornerstonemask', moves: ['sleeptalk']}, + ], [ + {species: 'Cosmog', moves: ['splash', 'teleport']}, + {species: 'Weezing', ability: 'neutralizinggas', moves: ['memento']}, + ]]); + + // only wellspring teras this turn + battle.makeChoices('auto', 'move sleeptalk terastallize', 'auto', 'auto'); + // only hearthflame teras this turn; embody aspect cannot boost its attack any further + battle.makeChoices('move bellydrum terastallize', 'auto', 'auto', 'move teleport'); + // note that cornerstone has not tera'd yet + battle.makeChoices('', '', '', 'switch 2'); + const hearthflame = battle.p1.active[0]; + const wellspring = battle.p2.active[0]; + const cornerstone = battle.p3.active[0]; + assert.statStage(hearthflame, 'atk', 6); + assert.statStage(wellspring, 'spd', 1); + assert.statStage(cornerstone, 'def', 0); + battle.makeChoices('auto', 'auto', 'move sleeptalk terastallize', 'move memento 1'); + assert.statStage(hearthflame, 'atk', 4, `Ogerpon-Hearthflame-Tera's Embody Aspect should not have been reactivated`); + assert.statStage(wellspring, 'spd', 1, `Ogerpon-Wellspring-Tera's Embody Aspect should not have activated twice`); + assert.statStage(cornerstone, 'def', 1, `Ogerpon-Cornerstone-Tera's Embody Aspect should have been activated by Neutalizing Gas ending`); + }); + describe(`Ability reactivation order`, function () { it(`should cause entrance Abilities to reactivate in order of Speed`, function () { battle = common.createBattle({gameType: 'doubles'}, [[ diff --git a/test/sim/abilities/poisontouch.js b/test/sim/abilities/poisontouch.js new file mode 100644 index 000000000000..a0d9105bc3b7 --- /dev/null +++ b/test/sim/abilities/poisontouch.js @@ -0,0 +1,93 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe(`Poison Touch`, function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should poison targets if the user damages the target with a contact move`, function () { + battle = common.createBattle({forceRandomChance: true}, [[ + {species: 'Wynaut', ability: 'poisontouch', moves: ['falseswipe']}, + ], [ + {species: 'Shuckle', moves: ['falseswipe']}, + ]]); + battle.makeChoices(); + assert.equal(battle.p1.active[0].status, '', `Wynaut should not be poisoned`); + assert.equal(battle.p2.active[0].status, 'psn', `Shuckle should be poisoned`); + }); + + it(`should not poison targets behind a Substitute or holding Covert Cloak`, function () { + battle = common.createBattle({forceRandomChance: true}, [[ + {species: 'Wynaut', ability: 'poisontouch', moves: ['falseswipe']}, + ], [ + {species: 'Shuckle', ability: 'prankster', moves: ['substitute']}, + {species: 'Regirock', item: 'covertcloak', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + assert.equal(battle.p2.active[0].status, '', `Shuckle should not be poisoned`); + + battle.makeChoices('auto', 'switch 2'); + assert.equal(battle.p2.active[0].status, '', `Regirock should not be poisoned`); + }); + + it(`should poison independently of and after regular secondary status effects`, function () { + battle = common.createBattle({forceRandomChance: true}, [[ + {species: 'Wynaut', ability: 'poisontouch', moves: ['nuzzle']}, + ], [ + {species: 'Shuckle', item: 'lumberry', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + const shuckle = battle.p2.active[0]; + assert.equal(shuckle.status, 'psn'); + assert.false.holdsItem(shuckle); + }); + + it(`should poison before Mummy takes over the user's Ability`, function () { + battle = common.createBattle({forceRandomChance: true}, [[ + {species: 'Wynaut', ability: 'poisontouch', moves: ['falseswipe']}, + ], [ + {species: 'Shuckle', ability: 'mummy', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + assert.equal(battle.p1.active[0].ability, 'mummy'); + assert.equal(battle.p2.active[0].status, 'psn'); + }); + + it(`should not poison itself with contact moves that aren't hitting other Pokemon`, function () { + battle = common.createBattle({forceRandomChance: true}, [[ + {species: 'Wynaut', ability: 'poisontouch', moves: ['bide']}, + ], [ + {species: 'Shuckle', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + battle.makeChoices(); + battle.makeChoices(); + battle.makeChoices(); + assert.equal(battle.p1.active[0].status, ''); + }); + + it(`should not have a 60% chance to poison if Pledge Rainbow is active`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', ability: 'poisontouch', moves: ['falseswipe', 'waterpledge']}, + {species: 'wobbuffet', moves: ['sleeptalk', 'firepledge']}, + ], [ + {species: 'pyukumuku', moves: ['sleeptalk']}, + {species: 'feebas', moves: ['sleeptalk']}, + ]]); + + battle.onEvent('ModifyMove', battle.format, -99, function (move) { + if (move.id === 'falseswipe') { + // If False Swipe had a psn secondary, it would have a 60% chance to activate + assert.equal(move.secondaries, null); + } + }); + + battle.makeChoices('move waterpledge 1, move firepledge 1', 'auto'); + battle.makeChoices('move falseswipe 1, move sleeptalk', 'auto'); + }); +}); diff --git a/test/sim/abilities/prankster.js b/test/sim/abilities/prankster.js index 26092487b607..3a4113be2ff5 100644 --- a/test/sim/abilities/prankster.js +++ b/test/sim/abilities/prankster.js @@ -72,6 +72,15 @@ describe('Prankster', function () { assert(battle.p2.active[0].volatiles['encore'], `Meowstic should be encored`); assert.fullHP(battle.p1.active[0]); }); + + it('should not leak the ability via hint if the target is immune to the Status move', function () { + battle = common.createBattle([ + [{species: "Sableye", ability: 'prankster', moves: ['willowisp']}], + [{species: "Houndoom", ability: 'pressure', moves: ['willowisp']}], + ]); + battle.makeChoices('move willowisp', 'move willowisp'); + assert.false(battle.log.some(line => line.includes('hint')), `Prankster should not leak the ability via hint`); + }); }); describe('Prankster [Gen 6]', function () { diff --git a/test/sim/abilities/protean.js b/test/sim/abilities/protean.js index f7d0b6847a23..8d91bbe3cea1 100644 --- a/test/sim/abilities/protean.js +++ b/test/sim/abilities/protean.js @@ -22,6 +22,19 @@ describe('Protean', function () { assert(cinder.hasType('Fighting')); }); + it(`should change the user's type for submoves to the type of that submove, not the move calling it`, function () { + battle = common.gen(6).createBattle([[ + {species: 'Wynaut', ability: 'protean', moves: ['sleeptalk', 'flamethrower']}, + ], [ + {species: 'Regieleki', moves: ['spore']}, + ]]); + + battle.makeChoices(); + const wynaut = battle.p1.active[0]; + assert(battle.log.every(line => !line.includes('|Normal|')), `It should not temporarily become Normal-type`); + assert(wynaut.hasType('Fire')); + }); + it(`should not change the user's type when using moves that fail earlier than Protean will activate`, function () { battle = common.createBattle([[ {species: 'Kecleon', ability: 'protean', moves: ['fling', 'suckerpunch', 'steelroller', 'aurawheel']}, diff --git a/test/sim/abilities/protosynthesis.js b/test/sim/abilities/protosynthesis.js index 905bcf45ba68..4159c47ef895 100644 --- a/test/sim/abilities/protosynthesis.js +++ b/test/sim/abilities/protosynthesis.js @@ -76,4 +76,79 @@ describe('Protosynthesis', function () { const tail = battle.p1.active[0]; assert.equal(tail.volatiles['protosynthesis'].bestStat, 'spd', `Scream Tail's SpD should have been boosted by Protosynthesis in Sun while holding Utility Umbrella`); }); + + it(`should not be deactiviated by weather suppressing abilities`, function () { + battle = common.createBattle([[ + {species: 'Scream Tail', ability: 'protosynthesis', moves: ['splash']}, + ], [ + {species: 'Torkoal', ability: 'drought', moves: ['splash']}, + {species: 'Psyduck', ability: 'cloudnine', moves: ['splash']}, + ]]); + + const tail = battle.p1.active[0]; + battle.makeChoices('move splash', 'switch 2'); + + assert.equal(tail.volatiles['protosynthesis'].bestStat, 'spd', `Scream Tail's SpD should have remained boosted by Protosynthesis in Sun even though a weather supressing ability was activated`); + }); + + it(`should not activate if weather is suppressed`, function () { + battle = common.createBattle([[ + {species: 'Scream Tail', ability: 'protosynthesis', moves: ['splash']}, + ], [ + {species: 'Psyduck', ability: 'cloudnine', moves: ['sunnyday']}, + ]]); + + const tail = battle.p1.active[0]; + battle.makeChoices('move splash', 'move sunnyday'); + + assert.equal(tail.volatiles['protosynthesis'], undefined, `Scream Tail should not have been boosted by Protosynthesis because a weather supressing ability was active when Sun started`); + }); + + it(`should activate when weather supression ends`, function () { + battle = common.createBattle([[ + {species: 'Scream Tail', ability: 'protosynthesis', moves: ['splash']}, + ], [ + {species: 'Psyduck', ability: 'cloudnine', moves: ['sunnyday']}, + {species: 'Lotad', ability: 'swiftswim', moves: ['splash']}, + ]]); + + const tail = battle.p1.active[0]; + battle.makeChoices('move splash', 'move sunnyday'); + battle.makeChoices('move splash', 'switch 2'); + + assert.equal(tail.volatiles['protosynthesis'].bestStat, 'spd', `Scream Tail should have been boosted by Protosynthesis because a weather supressing ability ended while Sun was active`); + }); + + it(`should have its boost nullified by Neutralizing Gas`, function () { + battle = common.createBattle([[ + {species: 'Scream Tail', ability: 'protosynthesis', item: 'boosterenergy', moves: ['luckychant', 'recover']}, + ], [ + {species: 'Weezing', moves: ['venoshock']}, + {species: 'Weezing', ability: 'neutralizinggas', moves: ['venoshock']}, + ]]); + + const tail = battle.p1.active[0]; + battle.makeChoices('move luckychant', 'move venoshock'); + assert.bounded(tail.maxhp - tail.hp, [84, 102]); + battle.makeChoices('auto', 'switch 2'); + battle.makeChoices('move recover', 'move venoshock'); + assert.bounded(tail.maxhp - tail.hp, [110, 132]); + // Ensure that the boost wasn't completely removed + battle.makeChoices('auto', 'switch 2'); + battle.makeChoices('move recover', 'move venoshock'); + assert.bounded(tail.maxhp - tail.hp, [84, 102]); + }); + + it(`should not activate while the user is Transformed`, function () { + battle = common.createBattle([[ + {species: 'Torkoal', ability: 'drought', moves: ['sleeptalk']}, + {species: 'Ditto', ability: 'imposter', moves: ['transform']}, + ], [ + {species: 'Roaring Moon', ability: 'protosynthesis', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('switch 2', 'auto'); + const dittoMoon = battle.p1.active[0]; + assert(!dittoMoon.volatiles['protosynthesis']); + }); }); diff --git a/test/sim/abilities/rattled.js b/test/sim/abilities/rattled.js new file mode 100644 index 000000000000..011db386af0c --- /dev/null +++ b/test/sim/abilities/rattled.js @@ -0,0 +1,34 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Rattled', function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should boost the user's Speed when Intimidated`, function () { + battle = common.createBattle([[ + {species: 'Dunsparce', ability: 'rattled', moves: ['sleeptalk']}, + ], [ + {species: 'Incineroar', ability: 'intimidate', moves: ['sleeptalk']}, + ]]); + + assert.statStage(battle.p1.active[0], 'atk', -1); + assert.statStage(battle.p1.active[0], 'spe', 1); + }); + + it(`should not boost the user's Speed if Intimidate failed to lower attack`, function () { + battle = common.createBattle([[ + {species: 'Dunsparce', item: 'clearamulet', ability: 'rattled', moves: ['sleeptalk']}, + ], [ + {species: 'Incineroar', ability: 'intimidate', moves: ['sleeptalk']}, + ]]); + + assert.statStage(battle.p1.active[0], 'atk', 0); + assert.statStage(battle.p1.active[0], 'spe', 0); + }); +}); diff --git a/test/sim/abilities/slowstart.js b/test/sim/abilities/slowstart.js index 8241342d36a0..81971e3ac33e 100644 --- a/test/sim/abilities/slowstart.js +++ b/test/sim/abilities/slowstart.js @@ -10,7 +10,7 @@ describe(`Slow Start`, function () { battle.destroy(); }); - it(`should not delay activation on switch-in, unlike Speed Boost`, function () { + it(`should delay activation on switch-in, like Speed Boost`, function () { battle = common.createBattle([[ {species: 'diglett', moves: ['sleeptalk']}, {species: 'regigigas', ability: 'slowstart', item: 'normaliumz', moves: ['sleeptalk']}, @@ -19,9 +19,14 @@ describe(`Slow Start`, function () { ]]); battle.makeChoices('switch 2', 'auto'); for (let i = 0; i < 4; i++) { battle.makeChoices(); } - const log = battle.getDebugLog(); - const slowStartEnd = log.indexOf('|-end|p1a: Regigigas|Slow Start'); - assert(slowStartEnd > -1, 'Slow Start should end in 5 turns, including the turn it switched in.'); + let log = battle.getDebugLog(); + let slowStartEnd = log.indexOf('|-end|p1a: Regigigas|Slow Start'); + assert.false(slowStartEnd > -1, 'Slow Start should remain in effect after 4 active turns.'); + + battle.makeChoices(); + log = battle.getDebugLog(); + slowStartEnd = log.indexOf('|-end|p1a: Regigigas|Slow Start'); + assert(slowStartEnd > -1, 'Slow Start should not be in effect after 5 active turns.'); }); it(`[Gen 7] should halve the user's Special Attack when using a special Z-move`, function () { diff --git a/test/sim/abilities/symbiosis.js b/test/sim/abilities/symbiosis.js index 6f0181458072..67e1bf584ba5 100644 --- a/test/sim/abilities/symbiosis.js +++ b/test/sim/abilities/symbiosis.js @@ -63,6 +63,21 @@ describe('Symbiosis', function () { assert.equal(battle.p1.active[1].item, 'leftovers'); }); + it.skip(`should not trigger on an ally using their Eject Pack`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'oranguru', ability: 'symbiosis', item: 'leftovers', moves: ['sleeptalk']}, + {species: 'wynaut', item: 'ejectpack', moves: ['superpower']}, + {species: 'corphish', moves: ['sleeptalk']}, + ], [ + {species: 'wynaut', moves: ['tackle']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + + assert.equal(battle.p1.active[0].item, 'leftovers'); + assert.equal(battle.p1.active[1].item, ''); + }); + // See Marty's research for many more examples: https://www.smogon.com/forums/threads/battle-mechanics-research.3489239/post-6401506 describe.skip('Symbiosis Eject Button Glitch (Gen 6 only)', function () { it('should cause Leftovers to restore HP 4 times', function () { diff --git a/test/sim/abilities/terashell.js b/test/sim/abilities/terashell.js new file mode 100644 index 000000000000..6625ffee518c --- /dev/null +++ b/test/sim/abilities/terashell.js @@ -0,0 +1,167 @@ +'use strict'; + +const assert = require('../../assert'); +const common = require('../../common'); + +let battle; + +describe('Tera Shell', function () { + afterEach(() => battle.destroy()); + + it(`should take not very effective damage when it is at full health`, function () { + battle = common.createBattle([ + [{species: 'Terapagos-Terastal', ability: 'terashell', moves: ['sleeptalk']}], + [{species: 'Wynaut', moves: ['wickedblow']}], + ]); + + battle.makeChoices(); + const terapagos = battle.p1.active[0]; + const damage = terapagos.maxhp - terapagos.hp; + assert.bounded(damage, [14, 16], `Tera Shell should yield not very effective damage roll, actual damage taken is ${damage}`); + + battle.makeChoices(); + assert.bounded(terapagos.maxhp - terapagos.hp - damage, [28, 33], `Tera Shell should not reduce damage, because Terapagos-Terastal was not at full HP`); + }); + + // confirmed here: https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9893603 + it(`should not take precedence over immunities`, function () { + battle = common.createBattle([ + [{species: 'Terapagos-Terastal', ability: 'terashell', moves: ['sleeptalk']}], + [{species: 'Wynaut', moves: ['shadowball']}], + ]); + + battle.makeChoices(); + const terapagos = battle.p1.active[0]; + assert.fullHP(terapagos); + }); + + // kinda confirmed here: https://youtu.be/-nerhfXrmCM?si=hLzfrfzVDdfNFMbv&t=314 + // confirmed here: https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9893781 + it('All hits of multi-hit move should be not very effective', function () { + battle = common.createBattle([ + [{species: 'Terapagos-Terastal', ability: 'terashell', moves: ['sleeptalk']}], + [{species: 'Wynaut', moves: ['surgingstrikes']}], + ]); + + battle.makeChoices(); + const terapagos = battle.p1.active[0]; + const damage = terapagos.maxhp - terapagos.hp; + assert.bounded(damage, [15, 18], `Tera Shell should yield not very effective damage for both all hits of multi-hit move, actual damage taken is ${damage}`); + }); + + // confirmed here: https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9893651 + it(`should be suppressed by Gastro Acid`, function () { + battle = common.createBattle([ + [{species: 'Terapagos-Terastal', ability: 'terashell', moves: ['sleeptalk']}], + [{species: 'Wynaut', moves: ['gastroacid', 'wickedblow']}], + ]); + + battle.makeChoices('move sleeptalk', 'move gastroacid'); + battle.makeChoices('move sleeptalk', 'move wickedblow'); + const terapagos = battle.p1.active[0]; + const damage = terapagos.maxhp - terapagos.hp; + assert.bounded(damage, [28, 33], `Tera Shell should not reduce damage, because Tera Shell should be suppressed`); + }); + + it(`should not work if the user's species is not currently Terapagos-Terastal`, function () { + battle = common.createBattle([[ + {species: 'Terapagos', ability: 'terashift', moves: ['transform']}, + ], [ + {species: 'Umbreon', ability: 'terashell', moves: ['flowertrick']}, + ]]); + + battle.makeChoices(); + const terapagos = battle.p1.active[0]; + let damage = terapagos.maxhp - terapagos.hp; + assert.bounded(damage, [51, 60], `Tera Shell should not have activated because current species is not Terapagos`); + + + battle = common.createBattle([[ + {species: 'Espeon', moves: ['transform']}, + ], [ + {species: 'Terapagos', ability: 'terashift', moves: ['flowertrick']}, + ]]); + + battle.makeChoices(); + const espeon = battle.p1.active[0]; + damage = espeon.maxhp - espeon.hp; + assert.bounded(damage, [33, 39], `Tera Shell should have activated because current species is Terapagos`); + }); + + it(`should not weaken the damage from Struggle`, function () { + battle = common.createBattle([[ + {species: 'Terapagos', ability: 'terashift', moves: ['luckychant']}, + ], [ + {species: 'Slowking', item: 'assaultvest', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + + const terapagos = battle.p1.active[0]; + const damage = terapagos.maxhp - terapagos.hp; + assert.bounded(damage, [27, 32], `Tera Shell should not have reduced the damage Struggle dealt`); + }); + + it.skip(`should not continue to weaken attacks after taking damage from a Future attack`, function () { + battle = common.createBattle([[ + {species: 'Terapagos', ability: 'terashift', moves: ['sleeptalk']}, + {species: 'Espeon', moves: ['sleeptalk']}, + ], [ + {species: 'Slowking', moves: ['sleeptalk', 'wickedblow', 'futuresight']}, + ]]); + + battle.makeChoices('auto', 'move futuresight'); + battle.makeChoices(); + battle.makeChoices(); + + const terapagos = battle.p1.active[0]; + let damage = terapagos.maxhp - terapagos.hp; + assert.bounded(damage, [59, 70], `Tera Shell should have reduced the damage Future Sight dealt`); + + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'move wickedblow'); + damage = terapagos.maxhp - terapagos.hp - damage; + assert.bounded(damage, [59, 70], `Tera Shell should not have reduced the damage Wicked Blow dealt`); + }); + + it.skip(`should activate, but not weaken, moves with fixed damage`, function () { + battle = common.createBattle([[ + {species: 'Terapagos', ability: 'terashift', evs: {hp: 252}, moves: ['recover', 'seismictoss']}, + {species: 'Magikarp', moves: ['sleeptalk']}, + ], [ + {species: 'Slowpoke', ability: 'noguard', moves: ['seismictoss', 'superfang', 'counter']}, + {species: 'Shuckle', moves: ['finalgambit']}, + {species: 'Wynaut', ability: 'noguard', moves: ['sheercold']}, + ]]); + + const terapagos = battle.p1.active[0]; + + battle.makeChoices('auto', 'move seismictoss'); + let damage = terapagos.maxhp - terapagos.hp; + assert.equal(damage, 100, `Tera Shell should not have reduced the damage Seismic Toss dealt`); + assert(battle.log[battle.lastMoveLine + 1].endsWith('Tera Shell'), `Tera Shell should have activated on Seismic Toss`); + + battle.makeChoices('auto', 'move superfang'); + damage = terapagos.maxhp - terapagos.hp; + assert.equal(damage, Math.floor(terapagos.maxhp / 2), `Tera Shell should not have reduced the damage Super Fang dealt`); + assert(battle.log[battle.lastMoveLine + 1].endsWith('Tera Shell'), `Tera Shell should have activated on Super Fang`); + + battle.makeChoices('auto', 'move counter'); + battle.makeChoices('move seismictoss', 'move counter'); + damage = terapagos.maxhp - terapagos.hp; + assert.equal(damage, 200, `Tera Shell should not have reduced the damage Counter dealt`); + assert(battle.log[battle.lastMoveLine + 1].endsWith('Tera Shell'), `Tera Shell should have activated on Counter`); + + battle.makeChoices('auto', 'switch 2'); + const shuckle = battle.p2.active[0]; + battle.makeChoices('auto', 'move finalgambit'); + damage = terapagos.maxhp - terapagos.hp; + assert.equal(damage, shuckle.maxhp, `Tera Shell should not have reduced the damage Final Gambit dealt`); + assert(battle.log[battle.lastMoveLine + 1].endsWith('Tera Shell'), `Tera Shell should have activated on Final Gambit`); + + battle.choose('p2', 'switch 3'); + battle.makeChoices('auto', 'move sheercold'); + assert.fainted(terapagos); + assert(battle.log[battle.lastMoveLine + 1].endsWith('Tera Shell'), `Tera Shell should have activated on Sheer Cold`); + }); +}); diff --git a/test/sim/abilities/trace.js b/test/sim/abilities/trace.js index c089f913a385..ad6586ce075b 100644 --- a/test/sim/abilities/trace.js +++ b/test/sim/abilities/trace.js @@ -10,6 +10,38 @@ describe('Trace', function () { battle.destroy(); }); + it(`should copy the opponent's Ability`, function () { + battle = common.createBattle([[ + {species: "Ralts", ability: 'trace', moves: ['sleeptalk']}, + ], [ + {species: "Wynaut", ability: 'shadowtag', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + const ralts = battle.p1.active[0]; + assert.equal(ralts.ability, 'shadowtag'); + }); + + it(`should delay copying the opponent's Ability if the initial Abilities could not be copied by Trace`, function () { + battle = common.createBattle([[ + {species: "Ralts", ability: 'trace', moves: ['sleeptalk']}, + ], [ + {species: "Arceus", ability: 'multitype', moves: ['sleeptalk']}, + {species: "Aegislash", ability: 'stancechange', moves: ['sleeptalk']}, + {species: "Wynaut", ability: 'shadowtag', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + const ralts = battle.p1.active[0]; + assert.equal(ralts.ability, 'trace'); + + battle.makeChoices('auto', 'switch 2'); + assert.equal(ralts.ability, 'trace'); + + battle.makeChoices('auto', 'switch 3'); + assert.equal(ralts.ability, 'shadowtag'); + }); + // see research: https://www.smogon.com/forums/threads/pokemon-sun-moon-battle-mechanics-research.3586701/post-7790209 it(`should interact properly with Ability index 0 'No Ability'`, function () { // Trace stops working if it initially finds 'No Ability' diff --git a/test/sim/abilities/windrider.js b/test/sim/abilities/windrider.js new file mode 100644 index 000000000000..7a3dd7f9eb73 --- /dev/null +++ b/test/sim/abilities/windrider.js @@ -0,0 +1,71 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +const WIND_RIDER_MON = {species: 'brambleghast', ability: 'windrider', moves: ['sleeptalk']}; + +describe("Wind Rider", () => { + afterEach(() => battle.destroy()); + + it("should nullify Wind attacks and boost the target's Attack by 1", () => { + battle = common.createBattle([[ + {species: 'azumarill', item: 'widelens', ability: 'thickfat', moves: ['icywind']}, + ], [ + WIND_RIDER_MON, + ]]); + battle.makeChoices(); + const brambleghast = battle.p2.active[0]; + assert.fullHP(brambleghast); + assert.statStage(brambleghast, 'spe', 0); + assert.statStage(brambleghast, 'atk', 1); + }); + + it("should be bypassed by Mold Breaker", () => { + battle = common.createBattle([[ + {species: 'veluza', item: 'widelens', ability: 'moldbreaker', moves: ['icywind']}, + ], [ + WIND_RIDER_MON, + ]]); + battle.makeChoices(); + assert.false.fullHP(battle.p2.active[0]); + assert.statStage(battle.p2.active[0], 'atk', 0); + }); + + it("should not interact with Sandstorm", () => { + battle = common.createBattle([[ + {species: 'flittle', ability: 'frisk', moves: ['sandstorm']}, + ], [ + WIND_RIDER_MON, + ]]); + battle.makeChoices(); + assert.equal(battle.field.weather, 'sandstorm'); + assert.statStage(battle.p2.active[0], 'atk', 0); + }); + + it("should activate when Tailwind is used on the Pokemon's side", () => { + battle = common.createBattle({gameType: "doubles"}, [[ + {species: 'magikarp', ability: 'swiftswim', moves: ['splash']}, + {species: 'magikarp', ability: 'swiftswim', moves: ['splash']}, + ], [ + WIND_RIDER_MON, + {species: 'pelipper', ability: 'keeneye', moves: ['tailwind']}, + ]]); + battle.makeChoices(); + assert.statStage(battle.p2.active[0], 'atk', 1); + }); + + it("should activate on switch-in if Tailwind is active on the Pokemon's side", () => { + battle = common.createBattle([[ + {species: 'magikarp', ability: 'swiftswim', moves: ['splash']}, + ], [ + {species: 'pelipper', ability: 'keeneye', moves: ['tailwind']}, + WIND_RIDER_MON, + ]]); + battle.makeChoices(); + battle.makeChoices('auto', 'switch 2'); + assert.statStage(battle.p2.active[0], 'atk', 1); + }); +}); diff --git a/test/sim/data.js b/test/sim/data.js index 6dddf44537a2..df10cb4f6b3e 100644 --- a/test/sim/data.js +++ b/test/sim/data.js @@ -28,6 +28,7 @@ describe('Dex data', function () { assert(!entry.baseSpecies, `Base species ${entry.name} should not have its own baseSpecies.`); assert(!entry.changesFrom, `Base species ${entry.name} should not change from anything (its changesFrom forme should be base).`); assert(!entry.battleOnly, `Base species ${entry.name} should not be battle-only (its out-of-battle forme should be base).`); + assert(!entry.baseForme || Dex.data.Aliases[pokemonid + toID(entry.baseForme)] === entry.name.replace(/\u0301/g, ""), `Base species ${entry.name}-${entry.baseForme} should be aliased to ${entry.name}`); } if (entry.prevo) { @@ -55,6 +56,12 @@ describe('Dex data', function () { } } } + if (entry.cosmeticFormes) { + for (const forme of entry.cosmeticFormes) { + assert.equal(Dex.data.Aliases[toID(forme)], entry.name.replace(/\u0301/g, ""), `Misspelled/nonexistent alias "${forme}" of ${entry.name}`); + assert.equal(Dex.data.FormatsData[toID(forme)], undefined, `Cosmetic forme "${forme}" should not have its own tier`); + } + } if (entry.battleOnly) { const battleOnly = Array.isArray(entry.battleOnly) ? entry.battleOnly : [entry.battleOnly]; for (const battleForme of battleOnly) { @@ -267,7 +274,7 @@ describe('Dex data', function () { 6: 721, 7: 807, 8: 664, - 9: 418, + 9: 733, }; const formes = { // Gens 1 and 2 have no alternate formes @@ -285,10 +292,10 @@ describe('Dex data', function () { // Aegislash (1) + Pumpkaboo (3) + Gourgeist (3) + Hoopa (1) + // Pikachu (6) + Mega (48) [Floette (1)] formes[6] = formes[5] + 1 + 2 + 1 + 2 + 1 + 3 + 3 + 1 + 6 + 48; - // Alola (18) + Totem (12) + Pikachu (7) - Pikachu (6) + Greninja (1) + Zygarde (2) + + // Alola (18) + Totem (12) + Pikachu (7) - Pikachu (6) + Greninja (2) + Zygarde (2) + // Oricorio (3) + Rockruff (1) + Lycanroc (2) + Wishiwashi (1) + Silvally (17) + Minior (1) // Mimikyu (1) + Necrozma (3) [Magearna (1) + LGPE Starters/Meltan/Melmetal (4)] - formes[7] = formes[6] + 18 + 12 + 7 - 6 + 1 + 2 + 3 + 1 + 2 + 1 + 17 + 1 + 1 + 3 - 1; + formes[7] = formes[6] + 18 + 12 + 7 - 6 + 2 + 2 + 3 + 1 + 2 + 1 + 17 + 1 + 1 + 3 - 1; // Silvally (17) + Rotom (5) + Basculin (1) + Meowstic (1) + // Aegislash (1) + Pumpkaboo (3) + Gourgeist (3) + Pikachu (7) + Galar (14) + // Alola (8) + Indeedee (1) + Morpeko (1) + Eiscue (1) + Zacian/Zamazenta (2) + @@ -302,11 +309,18 @@ describe('Dex data', function () { formes[8] = 17 + 5 + 1 + 1 + 1 + 3 + 3 + 7 + 14 + 8 + 1 + 1 + 1 + 2 + 1 + 2 + 2 + 2 + 1 + 1 + 2 + 2 + 1 + (4 + 1 + 1 + 1 + 1 + 2 + (1 + 1)) + (1 + 3 + 4 + 2 + 3 + 1 + 2) - 1; // FIXME Rockruff - // Galar (1) + Paldea (4) + Rotom (5) + Basculin (1) + Vivillon-Fancy (1) + Oricorio (3) + - // Lycanroc (2) + Mimikyu (1) + Toxtricity (1) + Eiscue (1) + Indeedee (1) + Oinkologne (1) + - // Dudunsparce (1) + Palafin (1) + Maushold (1) + Squawkabilly (3) + Sinistea-Antique (1) + - // Polteageist-Antique (1) + Zorua-Hisui (1) + Zoroark-Hisui (1) - formes[9] = 1 + 4 + 5 + 1 + 1 + 3 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 3 + 1 + 1 + 1 + 1; + // Pikachu (8) + Origin (3) + Therian (4) + Alola (16) + Galar (7) + Paldea (4) + Hisui (16) + + // Deoxys (3) + Rotom (5) + Shaymin (1) + Arceus (17) + Basculin (2) + Kyurem (2) + Keldeo (1) + + // Meloetta (1) + Greninja (1) + Vivillon (2) + Meowstic (1) + Hoopa (1) + Oricorio (3) + + // Lycanroc (2) + Minior (1) + Mimikyu (1) + Necrozma (2) + Magearna (1) + Toxtricity (1) + + // Antique (2) + Eiscue (1) + Indeedee (1) + Cramorant (2) + Morpeko (1) + Crowned (2) + + // Urshifu (1) + Zarude (1) + Calyrex (2) + Oinkologne (1) + Ursaluna (1) + Dudunsparce (1) + + // Palafin (1) + Maushold (1) + Squawkabilly (3) + Gimmighoul (1) + Basculegion (1) + + // Masterpiece (2) + Ogerpon (7) + Terapagos (2) + formes[9] = 8 + 3 + 4 + 16 + 7 + 4 + 16 + 3 + 5 + 1 + 17 + + 2 + 2 + 1 + 1 + 1 + 2 + 1 + 1 + 3 + 2 + 1 + 1 + 2 + 1 + + 1 + 2 + 1 + 1 + 2 + 1 + 2 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + + 1 + 3 + 1 + 1 + 2 + 7 + 2; for (const gen of [1, 2, 3, 4, 5, 6, 7, 8, 9]) { it(`Gen ${gen} should have ${species[gen]} species and ${formes[gen]} formes`, () => { diff --git a/test/sim/decisions.js b/test/sim/decisions.js index ce9f4d43b161..0c650e5d4cec 100644 --- a/test/sim/decisions.js +++ b/test/sim/decisions.js @@ -1239,7 +1239,7 @@ describe('Choice internals', function () { p1.chooseMove(1); p2.chooseMove(1); p2.chooseMove(1); - battle.commitDecisions(); + battle.commitChoices(); assert.equal(battle.turn, 2); assert.statStage(p2.active[0], 'atk', -1); @@ -1248,7 +1248,7 @@ describe('Choice internals', function () { p1.chooseMove('synthesis'); p2.chooseMove('surf'); p2.chooseMove('calmmind'); - battle.commitDecisions(); + battle.commitChoices(); assert.equal(battle.turn, 3); assert.fullHP(p1.active[1]); @@ -1257,7 +1257,7 @@ describe('Choice internals', function () { p1.chooseMove('2'); p2.chooseMove('1'); p2.chooseMove('calmmind'); - battle.commitDecisions(); + battle.commitChoices(); assert.equal(battle.turn, 4); assert.fullHP(p1.active[1]); @@ -1282,13 +1282,13 @@ describe('Choice internals', function () { p1.chooseMove('selfdestruct'); p2.chooseMove('recover'); p2.chooseMove('recover'); - battle.commitDecisions(); + battle.commitChoices(); assert.fainted(p1.active[0]); assert.fainted(p1.active[1]); p1.chooseSwitch(4); p1.chooseSwitch(3); - battle.commitDecisions(); + battle.commitChoices(); assert.equal(battle.turn, 2); assert.equal(p1.active[0].name, 'Ekans'); assert.equal(p1.active[1].name, 'Koffing'); @@ -1316,7 +1316,7 @@ describe('Choice internals', function () { `Expected switch to fail` ); p2.choose('move recover, move recover'); - battle.commitDecisions(); + battle.commitChoices(); assert.equal(battle.turn, 2); assert.equal(p1.active[0].name, 'Mew'); @@ -1329,7 +1329,7 @@ describe('Choice internals', function () { `Expected switch to fail` ); p2.choose('move recover, move recover'); - battle.commitDecisions(); + battle.commitChoices(); assert.equal(battle.turn, 3); assert.equal(p1.active[0].name, 'Bulbasaur'); diff --git a/test/sim/dex.js b/test/sim/dex.js index ce50a5cffc74..b15e77b64b0c 100644 --- a/test/sim/dex.js +++ b/test/sim/dex.js @@ -3,17 +3,25 @@ const assert = require('./../assert'); describe('Mod loader', function () { + it('should always provide accurate gen information', function () { + { + const Dex = require('./../../dist/sim/dex').Dex; + assert.equal(Dex.mod('gen2').gen, 2); + assert.equal(Dex.forFormat('gen1randombattle').gen, 1); + } + }); + it('should work fine in any order', function () { { const Dex = require('./../../dist/sim/dex').Dex; - assert.equal(Dex.mod('gen2').species.getLearnset('nidoking').bubblebeam.join(','), '1M'); + assert.equal(Dex.mod('gen2').species.getLearnsetData('nidoking').learnset.bubblebeam.join(','), '1M'); assert.equal(Dex.mod('gen2').moves.get('crunch').secondaries[0].boosts.def, undefined); } { const Dex = require('./../../dist/sim/dex').Dex; - Dex.mod('gen2').species.getLearnset('nidoking'); + Dex.mod('gen2').species.getLearnsetData('nidoking'); Dex.mod('gen4').moves.get('crunch'); - assert.equal(Dex.mod('gen2').species.getLearnset('nidoking').bubblebeam.join(','), '1M'); + assert.equal(Dex.mod('gen2').species.getLearnsetData('nidoking').learnset.bubblebeam.join(','), '1M'); assert.equal(Dex.mod('gen2').moves.get('crunch').secondaries[0].boosts.def, undefined); } }); @@ -36,7 +44,8 @@ describe('Dex#getSpecies', function () { }); it('should handle Minior-Meteor formes', function () { - assert(Dex.species.get('Minior-Meteor').isNonstandard); + assert(!Dex.species.get('Minior-Meteor').isNonstandard); + assert(Dex.forGen(8).species.get('Minior-Meteor').isNonstandard); assert(!Dex.forGen(7).species.get('Minior-Meteor').isNonstandard); }); diff --git a/test/sim/items/abilityshield.js b/test/sim/items/abilityshield.js index cdd5e862682d..bb0082ff8268 100644 --- a/test/sim/items/abilityshield.js +++ b/test/sim/items/abilityshield.js @@ -199,6 +199,29 @@ describe('Ability Shield', function () { assert.notEqual(battle.p1.active[0].ability, 'levitate', `Holder should not trace ability`); }); + // https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9635572 + it(`should not prevent Imposter from changing the holder's ability`, function () { + battle = common.createBattle([[ + {species: 'ditto', ability: 'imposter', item: 'abilityshield', moves: ['transform']}, + ], [ + {species: 'scorbunny', ability: 'libero', moves: ['agility']}, + ]]); + + battle.makeChoices(); + assert.equal(battle.p1.active[0].ability, 'libero', `Ditto should copy Libero`); + }); + + it(`should not prevent forme changes from changing the holder's ability`, function () { + battle = common.createBattle([[ + {species: 'ogerpon', ability: 'defiant', item: 'abilityshield', moves: ['sleeptalk']}, + ], [ + {species: 'scorbunny', ability: 'libero', moves: ['agility']}, + ]]); + + battle.makeChoices('move sleeptalk terastallize', 'auto'); + assert.equal(battle.p1.active[0].ability, 'embodyaspectteal', `Ogerpon's ability should change to Embody Aspect`); + }); + // TODO Add future tests for losing Ability Shield vs Neutralizing Gas/Mold Breaker/Gastro Acid? // // No confirmed research yet for these, but presumably Neutralizing Gas & Mold diff --git a/test/sim/items/boosterenergy.js b/test/sim/items/boosterenergy.js new file mode 100644 index 000000000000..742f18a29ddb --- /dev/null +++ b/test/sim/items/boosterenergy.js @@ -0,0 +1,27 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Booster Energy', function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should not activate before Sticky Web when switching in`, function () { + battle = common.createBattle([[ + {species: 'Abra', ability: 'synchronize', moves: ['teleport']}, + {species: 'Iron Bundle', ability: 'quarkdrive', item: 'boosterenergy', moves: ['sleeptalk']}, + ], [ + {species: 'Ribombee', ability: 'shielddust', moves: ['stickyweb']}, + ]]); + + battle.makeChoices(); + battle.makeChoices('switch 2'); + const bundle = battle.p1.active[0]; + assert.equal(bundle.volatiles['quarkdrive'].bestStat, 'spa', + `Iron Bundle's Speed should have been lowered before Booster Energy activated, boosting its SpA instead.`); + }); +}); diff --git a/test/sim/items/metronome.js b/test/sim/items/metronome.js index 799a17187a11..893233c43386 100644 --- a/test/sim/items/metronome.js +++ b/test/sim/items/metronome.js @@ -97,7 +97,7 @@ describe('Metronome (item)', function () { assert.bounded(damage, [80, 95], `Solar Beam should be Metronome 1 boosted`); }); - it.skip(`should use called moves to determine the Metronome multiplier`, function () { + it(`should use called moves to determine the Metronome multiplier`, function () { battle = common.createBattle([[ {species: 'goomy', item: 'metronome', moves: ['copycat', 'surf']}, ], [ diff --git a/test/sim/misc/endlessbattleclause.js b/test/sim/misc/endlessbattleclause.js index 3075a33a880c..10cb747a1402 100644 --- a/test/sim/misc/endlessbattleclause.js +++ b/test/sim/misc/endlessbattleclause.js @@ -190,10 +190,21 @@ describe('Endless Battle Clause (slow)', () => { battle.makeChoices('switch 2', 'switch 2'); assert(battle.ended); }); + + it('Skill Swap should remove the user\'s staleness', () => { + battle = common.createBattle({endlessBattleClause: true}, [[ + {species: "Furret", moves: ['skillswap']}, + ], [ + {species: "Ampharos", moves: ['skillswap']}, + ]]); + skipTurns(battle, 100); + for (let i = 0; i < 8; i++) battle.makeChoices(); + assert.false(battle.ended); + }); }); // Endless Battle Clause doesn't take effect for 100 turns, so we artificially skip turns // to get the turn counter to be in the range which could possibly trigger the clause function skipTurns(battle, turns) { - for (let i = 0; i < turns; i++) battle.nextTurn(); + for (let i = 0; i < turns; i++) battle.endTurn(); } diff --git a/test/sim/misc/fusion-combo.js b/test/sim/misc/fusion-combo.js index bed23be34718..76868ed3d167 100644 --- a/test/sim/misc/fusion-combo.js +++ b/test/sim/misc/fusion-combo.js @@ -28,11 +28,14 @@ describe('Fusion Bolt + Fusion Flare', function () { assert.equal(bpModifiers.get('fusionflare'), 2); }); - it('should boost the second move if the first was used by the same pokemon', function () { - battle = common.createBattle({gameType: 'doubles'}, [ - [{species: 'Victini', item: 'laggingtail', ability: 'victorystar', moves: ['fusionbolt', 'fusionflare']}, {species: 'Oranguru', ability: 'telepathy', moves: ['calmmind', 'instruct']}], - [{species: 'Dragonite', ability: 'Multiscale', moves: ['roost']}, {species: 'Lugia', ability: 'Multiscale', moves: ['roost']}], - ]); + it(`should boost the second move if the first was used by the same Pokemon`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Magikarp', item: 'laggingtail', moves: ['fusionbolt', 'fusionflare']}, + {species: 'Oranguru', moves: ['sleeptalk', 'instruct']}, + ], [ + {species: 'Dragonite', moves: ['roost']}, + {species: 'Lugia', moves: ['roost']}, + ]]); battle.makeChoices(); @@ -46,11 +49,14 @@ describe('Fusion Bolt + Fusion Flare', function () { assert.equal(bpModifiers.get('fusionflare'), 2); }); - it('should not boost the second move if another move was used between them', function () { - battle = common.createBattle({gameType: 'doubles'}, [ - [{species: 'Zekrom', ability: 'teravolt', moves: ['fusionbolt']}, {species: 'Reshiram', item: 'laggingtail', ability: 'teravolt', moves: ['fusionflare']}], - [{species: 'Dragonite', ability: 'Multiscale', moves: ['roost']}, {species: 'Lugia', ability: 'Multiscale', moves: ['roost']}], - ]); + it(`should not boost the second move if another move was used between them`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Zekrom', moves: ['fusionbolt']}, + {species: 'Reshiram', item: 'laggingtail', moves: ['fusionflare']}, + ], [ + {species: 'Dragonite', ability: 'shellarmor', moves: ['roost']}, + {species: 'Lugia', moves: ['roost']}, + ]]); battle.makeChoices(); @@ -58,16 +64,19 @@ describe('Fusion Bolt + Fusion Flare', function () { battle.onEvent('BasePower', battle.format, -100, function (bp, attacker, defender, move) { bpModifiers.set(move.id, this.event.modifier); }); - battle.makeChoices('move fusionbolt 1, move fusionflare 1', 'default'); + battle.makeChoices('move fusionbolt 1, move fusionflare 1', 'auto'); assert.equal(bpModifiers.get('fusionflare'), 1); }); - it('should not boost the second move if the first move failed', function () { - battle = common.createBattle({gameType: 'doubles'}, [ - [{species: 'Zekrom', ability: 'teravolt', moves: ['fusionbolt'], evs: {spe: 4}}, {species: 'Reshiram', ability: 'teravolt', moves: ['fusionflare']}], - [{species: 'Stunfisk', ability: 'Multiscale', moves: ['roost']}, {species: 'Stunfisk', ability: 'Multiscale', moves: ['roost']}], - ]); + it(`should not boost the second move if the first move failed`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Regieleki', moves: ['fusionbolt']}, + {species: 'Reshiram', moves: ['fusionflare']}, + ], [ + {species: 'Stunfisk', moves: ['roost']}, + {species: 'Stunfisk', moves: ['roost']}, + ]]); const bpModifiers = new Map(); battle.onEvent('BasePower', battle.format, -100, function (bp, attacker, defender, move) { diff --git a/test/sim/misc/inversebattle.js b/test/sim/misc/inversebattle.js index 4b929f505cbd..76f5f6a32f1c 100644 --- a/test/sim/misc/inversebattle.js +++ b/test/sim/misc/inversebattle.js @@ -124,4 +124,19 @@ describe('Inverse Battle', function () { battle.makeChoices(); assert.equal(battle.p2.active[0].status, 'slp'); }); + + it(`should let Tera Shell take not very effective damage`, function () { + battle = common.createBattle({inverseMod: true}, [[ + {species: 'wynaut', moves: ['wickedblow']}, + ], [ + {species: 'Terapagos-Terastal', ability: 'terashell', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + const terapagos = battle.p2.active[0]; + const damage = terapagos.maxhp - terapagos.hp; + assert.bounded(damage, [14, 16], `Tera Shell should yield not very effective damage roll, actual damage taken is ${damage}`); + + battle.makeChoices(); + assert.bounded(terapagos.maxhp - terapagos.hp - damage, [28, 33], `Tera Shell should not reduce damage, because Terapagos-Terastal was not at full HP`); + }); }); diff --git a/test/sim/misc/megaevolution.js b/test/sim/misc/megaevolution.js index a2e1b65eb0f7..677b84dce005 100644 --- a/test/sim/misc/megaevolution.js +++ b/test/sim/misc/megaevolution.js @@ -163,7 +163,8 @@ describe('Mega Evolution', function () { assertLegalButCantMega('gen9nationaldexag@@@-ndag'); // don't add it where unnecessary - assert.false(Dex.formats.getRuleTable(Dex.formats.get('gen5anythinggoes')).has('megarayquazaclause')); + const format = common.getFormat({formatid: 'gen4anythinggoes'}); + assert.false(Dex.formats.getRuleTable(format).has('megarayquazaclause')); }); }); }); diff --git a/test/sim/misc/ogerpon.js b/test/sim/misc/ogerpon.js new file mode 100644 index 000000000000..21b7deeaeb79 --- /dev/null +++ b/test/sim/misc/ogerpon.js @@ -0,0 +1,23 @@ +'use strict'; + +const assert = require('assert').strict; +const common = require('./../../common'); + +let battle; + +describe(`[Hackmons] Ogerpon`, function () { + // https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9838633 + it(`should keep permanent abilites after Terastallizing until it switches out`, function () { + battle = common.gen(9).createBattle([[ + {species: 'ogerpon', ability: 'multitype', moves: ['sleeptalk']}, + {species: 'shedinja', moves: ['splash']}, + ], [ + {species: 'silicobra', moves: ['stealthrock']}, + ]]); + const ogerpon = battle.p1.active[0]; + battle.makeChoices('move sleeptalk terastallize', 'auto'); + assert.equal(ogerpon.ability, 'multitype', `Ogerpon's ability should not have changed to Embody Aspect`); + battle.makeChoices('switch 2', 'auto'); + assert.equal(ogerpon.ability, 'embodyaspectteal', `Ogerpon's ability should be Embody Aspect after switching out`); + }); +}); diff --git a/test/sim/misc/statuses.js b/test/sim/misc/statuses.js index 1b90c917b686..5caaaa61a536 100644 --- a/test/sim/misc/statuses.js +++ b/test/sim/misc/statuses.js @@ -79,6 +79,15 @@ describe('Paralysis', function () { battle.makeChoices(); assert.equal(battle.p1.active[0].getStat('spe'), 168); // would be 169 if both Choice Scarf and paralysis were chained + + battle = common.createBattle([[ + {species: 'hawlucha', item: 'whiteherb', ability: 'unburden', evs: {spe: 4}, moves: ['closecombat']}, // 273 Speed + ], [ + {species: 'wynaut', moves: ['glare']}, + ]]); + + battle.makeChoices(); + assert.equal(battle.p1.active[0].getStat('spe'), 273); // would be 272 if paralysis was applied first }); it('should reduce speed to 25% of its original value in Gen 6', function () { diff --git a/test/sim/misc/target-resolution.js b/test/sim/misc/target-resolution.js index 228716ba5e46..9898c2df4194 100644 --- a/test/sim/misc/target-resolution.js +++ b/test/sim/misc/target-resolution.js @@ -361,18 +361,18 @@ describe('Target Resolution', function () { // hardcoded RNG seed to show the erroneous targeting behavior battle = common.createBattle({gameType: 'doubles', seed: [1, 2, 3, 4]}, [[ {species: 'shuckle', ability: 'compoundeyes', moves: ['copycat']}, - {species: 'foongus', moves: ['spore']}, + {species: 'foongus', item: 'laggingtail', moves: ['spore']}, ], [ - {species: 'aggron', moves: ['sleeptalk']}, - {species: 'slowbro', moves: ['rollout']}, + {species: 'aggron', moves: ['splash']}, + {species: 'slowbro', moves: ['splash', 'rollout']}, ]]); - battle.makeChoices('move copycat, move spore 2', 'auto'); + battle.makeChoices('move copycat, move spore 2', 'move splash, move rollout 1'); // Determine which slot was damaged on first turn of Rollout const aggron = battle.p2.active[0]; const notTargetedPokemon = aggron.hp === aggron.maxhp ? aggron : battle.p2.active[1]; - for (let i = 0; i < 4; i++) battle.makeChoices(); + for (let i = 0; i < 5; i++) battle.makeChoices(); assert.fullHP(notTargetedPokemon); }); }); diff --git a/test/sim/misc/teampreview.js b/test/sim/misc/teampreview.js index 7bc893c9db53..ff567565acba 100644 --- a/test/sim/misc/teampreview.js +++ b/test/sim/misc/teampreview.js @@ -11,10 +11,10 @@ describe('Team Preview', function () { }); it('should hide formes of certain Pokemon', function () { - battle = common.createBattle('gen8anythinggoes', [[ - {species: 'Arceus-Steel', ability: 'multitype', item: 'steelplate', moves: ['sleeptalk']}, + battle = common.createBattle([[ {species: 'Pumpkaboo-Super', ability: 'pickup', moves: ['sleeptalk']}, {species: 'Gourgeist-Small', ability: 'pickup', moves: ['sleeptalk']}, + {species: 'Dudunsparce-Three-Segment', ability: 'runaway', moves: ['sleeptalk']}, ], [ {species: 'Silvally', ability: 'rkssystem', moves: ['sleeptalk']}, {species: 'Urshifu-Rapid-Strike', ability: 'unseenfist', moves: ['sleeptalk']}, @@ -23,7 +23,21 @@ describe('Team Preview', function () { for (const line of battle.log) { if (line.startsWith('|poke|')) { const details = line.split('|')[3]; - assert(details.match(/(Arceus|Pumpkaboo|Gourgeist|Silvally|Urshifu|Zacian)-\*/), `Forme was not hidden; preview details: ${details}`); + assert(details.match(/(Pumpkaboo|Gourgeist|Silvally|Urshifu|Zacian|Dudunsparce)-\*/), `Forme was not hidden; preview details: ${details}`); + } + } + }); + + it('should hide Arceus formes [Gen 8]', function () { + battle = common.createBattle({formatid: 'gen8anythinggoes'}, [[ + {species: 'Arceus-Steel', ability: 'multitype', item: 'steelplate', moves: ['sleeptalk']}, + ], [ + {species: 'Arceus-Fire', ability: 'multitype', item: 'flameplate', moves: ['sleeptalk']}, + ]]); + for (const line of battle.log) { + if (line.startsWith('|poke|')) { + const details = line.split('|')[3]; + assert(details.match(/Arceus-\*/), `Forme was not hidden; preview details: ${details}`); } } }); diff --git a/test/sim/misc/terapagos.js b/test/sim/misc/terapagos.js new file mode 100644 index 000000000000..a1276f21a290 --- /dev/null +++ b/test/sim/misc/terapagos.js @@ -0,0 +1,42 @@ +'use strict'; + +const assert = require('assert').strict; +const common = require('./../../common'); + +let battle; + +describe(`Terapagos`, function () { + afterEach(function () { + battle.destroy(); + }); + + it.skip(`should accept the Terastallization choice, but not Terastallize while Transformed into Terapagos-Terastal`, function () { + battle = common.createBattle([[ + {species: 'ditto', ability: 'imposter', moves: ['sleeptalk']}, + ], [ + {species: 'terapagos', ability: 'terashift', moves: ['sleeptalk'], teraType: 'Stellar'}, + ]]); + + // Currently throws a choice error + battle.makeChoices('move sleeptalk terastallize', 'auto'); + + const ditto = battle.p1.active[0]; + assert.false(!!ditto.terastallized); + }); + + it(`[Hackmons] should not cause Terapagos-Terastal to become Terapagos-Stellar if the user is Transformed`, function () { + battle = common.createBattle([[ + {species: 'terapagos', ability: 'terashift', moves: ['transform'], teraType: 'Stellar'}, + {species: 'pikachu', moves: ['sleeptalk']}, + ], [ + {species: 'silicobra', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + battle.makeChoices('move sleeptalk terastallize', 'auto'); + battle.makeChoices('switch 2', 'auto'); + battle.makeChoices('switch 2', 'auto'); + const terapagos = battle.p1.active[0]; + assert.species(terapagos, 'Terapagos-Terastal'); + }); +}); diff --git a/test/sim/misc/terastal.js b/test/sim/misc/terastal.js index ba38f829545d..85642c411d8d 100644 --- a/test/sim/misc/terastal.js +++ b/test/sim/misc/terastal.js @@ -189,4 +189,20 @@ describe("Terastallization", function () { const damage = battle.p2.active[0].maxhp - battle.p2.active[0].hp; assert.bounded(damage, [127, 151], "Actual damage: " + damage); }); + + it(`should allow hacked Megas to Terastallize in Hackmons play`, function () { + battle = common.createBattle({formatid: 'gen9purehackmons@@@!teampreview'}, [[ + {species: 'Mewtwo-Mega-X', moves: ['sleeptalk'], teraType: 'Fairy'}, + ], [ + {species: 'Necrozma-Ultra', moves: ['sleeptalk'], teraType: 'Normal'}, + ]]); + + const mewtwo = battle.p1.active[0]; + const necrozma = battle.p2.active[0]; + assert(mewtwo.hasType('Fighting'), 'Mega Mewtwo X should have Fighting-type before Terastallization'); + assert(necrozma.hasType('Dragon'), 'Ultra Necrozma should have Dragon-type before Terastallization'); + battle.makeChoices('move sleeptalk terastallize', 'move sleeptalk terastallize'); + assert(mewtwo.hasType('Fairy'), 'Mega Mewtwo X should be Fairy-type after Terastallization'); + assert(necrozma.hasType('Normal'), 'Ultra Necrozma should be Normal-type after Terastallization'); + }); }); diff --git a/test/sim/misc/terastellar.js b/test/sim/misc/terastellar.js new file mode 100644 index 000000000000..b6e51e4f95e8 --- /dev/null +++ b/test/sim/misc/terastellar.js @@ -0,0 +1,163 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe("Tera Stellar", function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should increase the damage of non-STAB moves by 1.2x on the first use of that move type`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', ability: 'noguard', moves: ['surf', 'hydropump', 'extrasensory', 'hyperspacehole'], teraType: 'Stellar'}, + ], [ + {species: 'Happiny', ability: 'shellarmor', moves: ['softboiled']}, + ]]); + + const happiny = battle.p2.active[0]; + + battle.makeChoices('move surf terastallize', 'auto'); + let damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [40, 47], `Surf should have ~1.2x damage on its first use`); + + battle.makeChoices('move surf', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [33, 39], `Surf should have regular damage on its second use`); + + battle.makeChoices('move hydropump', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [39, 47], `Hydro Pump should have regular damage, because Water-type was already used`); + + battle.makeChoices('move extrasensory', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [58, 70], `Extrasensory should have 2x damage on its first use`); + + battle.makeChoices('move extrasensory', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [43, 52], `Extrasensory should have 1.5x damage on its second use`); + + battle.makeChoices('move hyperspacehole', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [43, 52], `Hyperspace Hole should have 1.5x damage on its first use, because Psychic-type was already used`); + }); + + it(`should not have the once-per-type restriction when used by Terapagos`, function () { + battle = common.createBattle([[ + {species: 'Terapagos', ability: 'terashift', moves: ['surf', 'hypervoice'], item: 'laggingtail', teraType: 'Stellar'}, + ], [ + {species: 'Chansey', ability: 'shellarmor', moves: ['softboiled']}, + ]]); + + const chansey = battle.p2.active[0]; + + battle.makeChoices('move surf terastallize', 'auto'); + let damage = chansey.maxhp - chansey.hp; + assert.bounded(damage, [94, 110], `Surf should have ~1.2x damage on its first use`); + + battle.makeChoices('move surf', 'auto'); + damage = chansey.maxhp - chansey.hp; + assert.bounded(damage, [94, 110], `Surf should have ~1.2x damage on its second use`); + + battle.makeChoices('move hypervoice', 'auto'); + damage = chansey.maxhp - chansey.hp; + assert.bounded(damage, [156, 184], `Hyper Voice should have 2x damage on its first use`); + + battle.makeChoices('move hypervoice', 'auto'); + damage = chansey.maxhp - chansey.hp; + assert.bounded(damage, [156, 184], `Hyper Voice should have 2x damage on its second use`); + }); + + it(`should not modify the Pokemon's base type for defensive purposes`, function () { + battle = common.createBattle([[ + {species: 'Krookodile', moves: ['sleeptalk'], teraType: 'Stellar'}, + ], [ + {species: 'Tornadus', ability: 'prankster', moves: ['psychic', 'thunderwave', 'leer']}, + ]]); + + const krookodile = battle.p1.active[0]; + + battle.makeChoices('move sleeptalk terastallize', 'move psychic'); + assert.fullHP(krookodile); + + battle.makeChoices('auto', 'move thunderwave'); + assert.equal(krookodile.status, ''); + + battle.makeChoices('auto', 'move thunderwave'); + + battle.makeChoices('auto', 'move leer'); + assert.statStage(krookodile, 'def', 0); + }); + + it(`should only be super-effective against opposing Terastallized targets`, function () { + battle = common.createBattle([[ + {species: 'Krookodile', moves: ['terablast'], teraType: 'Stellar'}, + ], [ + {species: 'Steelix', item: 'weaknesspolicy', moves: ['sleeptalk'], teraType: 'Stellar'}, + ]]); + + const steelix = battle.p2.active[0]; + battle.makeChoices('move terablast terastallize', 'move sleeptalk terastallize'); + assert.statStage(steelix, 'atk', 2); + }); + + it(`should increase the user's stats with Tera Blast if the user has Contrary`, function () { + battle = common.createBattle([[ + {species: 'inkay', ability: 'contrary', moves: ['terablast'], teraType: 'Stellar'}, + ], [ + {species: 'chansey', moves: ['sleeptalk']}, + ]]); + + const inkay = battle.p1.active[0]; + + battle.makeChoices('move terablast terastallize', 'move sleeptalk terastallize'); + assert.statStage(inkay, 'atk', 1); + assert.statStage(inkay, 'spa', 1); + }); + + it(`should not work with Adapatability`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', ability: 'adaptability', moves: ['hyperspacehole', 'terablast'], teraType: 'Stellar'}, + ], [ + {species: 'Happiny', ability: 'shellarmor', moves: ['softboiled']}, + ]]); + + const happiny = battle.p2.active[0]; + + battle.makeChoices('move hyperspacehole terastallize', 'auto'); + let damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [58, 70], `Hyperspace Hole should only have 2x damage on its first use`); + + battle.makeChoices('move hyperspacehole', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [43, 52], `Hyperspace Hole should only have 1.5x damage on its second use`); + + battle.makeChoices('move terablast', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [43, 52], `Tera Blast should only have ~1.2x damage on its first use`); + + battle.makeChoices('move terablast', 'auto'); + damage = happiny.maxhp - happiny.hp; + assert.bounded(damage, [24, 29], `Tera Blast should not have any boosted damage on its second use`); + }); + + it(`should increase the damage of all hits of a multi-hit move`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', moves: ['surgingstrikes', 'flipturn'], teraType: 'Stellar'}, + ], [ + {species: 'Blissey', moves: ['softboiled']}, + ]]); + + const blissey = battle.p2.active[0]; + + battle.makeChoices('move surgingstrikes terastallize', 'auto'); + let damage = blissey.maxhp - blissey.hp; + assert.bounded(damage, [144, 174], `Surging Strikes should have ~1.2x damage on its first use for all 3 hits`); + + battle.makeChoices('move flipturn', 'auto'); + damage = blissey.maxhp - blissey.hp; + assert.bounded(damage, [63, 75], `Flip Turn should have regular damage on its first use, because Water-type was already used`); + }); +}); diff --git a/test/sim/moves/acupressure.js b/test/sim/moves/acupressure.js index b6ce8109065c..234dac475081 100644 --- a/test/sim/moves/acupressure.js +++ b/test/sim/moves/acupressure.js @@ -37,4 +37,35 @@ describe('Acupressure', function () { assert.cantMove(() => battle.choose('p1', 'move acupressure 2')); assert.cantMove(() => battle.choose('p1', 'move acupressure -2')); }); + + // https://www.smogon.com/forums/threads/acupressure-targeting.3733779/post-9920405 + it(`should redirect to the user if a targetted ally faints`, () => { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Pincurchin', moves: ['acupressure']}, + {species: 'Flutter Mane', moves: ['memento']}, + ], [ + {species: 'Furret', moves: ['sleeptalk']}, + {species: 'Chien-Pao', moves: ['haze']}, + ]]); + + battle.makeChoices('move acupressure -2, move memento 1', 'auto'); + assert(Object.values(battle.p1.active[0].boosts).some(n => n === 2)); + battle.makeChoices('move acupressure -2, pass', 'auto'); + assert(Object.values(battle.p1.active[0].boosts).some(n => n === 2)); + }); + + it(`in Gen 5, should not redirect to the uesr if a targetted ally faints`, () => { + battle = common.gen(5).createBattle({gameType: 'doubles'}, [[ + {species: 'Shuckle', moves: ['acupressure']}, + {species: 'Dugtrio', moves: ['memento']}, + ], [ + {species: 'Marshtomp', moves: ['sleeptalk']}, + {species: 'Nincada', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move acupressure -2, move memento 1', 'auto'); + assert(Object.values(battle.p1.active[0].boosts).every(n => n === 0)); + battle.makeChoices('move acupressure -2, pass', 'auto'); + assert(Object.values(battle.p1.active[0].boosts).every(n => n === 0)); + }); }); diff --git a/test/sim/moves/afteryou.js b/test/sim/moves/afteryou.js index fdd0c109f249..c3ad5e5f94ae 100644 --- a/test/sim/moves/afteryou.js +++ b/test/sim/moves/afteryou.js @@ -10,13 +10,27 @@ describe('After You', function () { battle.destroy(); }); + it(`should cause the targeted Pokemon to immediately move next`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Wynaut', ability: 'prankster', moves: ['afteryou']}, + {species: 'Magnemite', level: 1, moves: ['magnetrise']}, + ], [ + {species: 'Great Tusk', moves: ['headlongrush']}, + {species: "Magikarp", moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move afteryou -2, move magnetrise', 'move headlongrush 2, auto'); + const magnemite = battle.p1.active[1]; + assert.false.fainted(magnemite); + }); + it(`should only cause the target to move next, not run a submove`, function () { battle = common.createBattle({gameType: 'doubles'}, [[ - {species: "Wynaut", ability: 'prankster', moves: ['afteryou']}, - {species: "Necrozma", level: 50, ability: 'prankster', moves: ['photongeyser']}, + {species: 'Wynaut', ability: 'prankster', moves: ['afteryou']}, + {species: 'Necrozma', level: 50, ability: 'prankster', moves: ['photongeyser']}, ], [ - {species: "Dugtrio", moves: ['sleeptalk']}, - {species: "Roggenrola", level: 1, ability: 'sturdy', moves: ['sleeptalk']}, + {species: 'Dugtrio', moves: ['sleeptalk']}, + {species: 'Roggenrola', level: 1, ability: 'sturdy', moves: ['sleeptalk']}, ]]); // Photon Geyser has a mechanic where it ignores abilities with Mold Breaker, @@ -26,4 +40,33 @@ describe('After You', function () { const roggenrola = battle.p2.active[1]; assert.fainted(roggenrola); }); + + it(`should work in a free-for-all`, function () { + battle = common.createBattle({gameType: 'freeforall'}, [[ + {species: 'Wynaut', ability: 'prankster', moves: ['afteryou']}, + ], [ + {species: 'Magnemite', level: 1, moves: ['magnetrise']}, + ], [ + {species: 'Great Tusk', moves: ['headlongrush']}, + ], [ + {species: 'Magikarp', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move afteryou 1', 'move magnetrise', 'move headlongrush 1', 'auto'); + const magnemite = battle.p2.active[0]; + assert.false.fainted(magnemite); + }); + + it(`should fail in singles whether the user is faster or slower than its target`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', moves: ['afteryou', 'ember']}, + ], [ + {species: 'Tyrogue', moves: ['afteryou', 'seismictoss']}, + ]]); + + battle.makeChoices('move afteryou', 'move seismictoss'); + battle.makeChoices('move ember', 'move afteryou'); + assert(battle.log.includes('|-fail|p1a: Wynaut')); + assert(battle.log.includes('|-fail|p2a: Tyrogue')); + }); }); diff --git a/test/sim/moves/allyswitch.js b/test/sim/moves/allyswitch.js new file mode 100644 index 000000000000..eb65f5080085 --- /dev/null +++ b/test/sim/moves/allyswitch.js @@ -0,0 +1,147 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe(`Ally Switch`, function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should cause the Pokemon to switch sides in a double battle`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Primeape', moves: ['sleeptalk']}, + {species: 'Wynaut', moves: ['allyswitch']}, + ], [ + {species: 'Dreepy', moves: ['sleeptalk']}, + {species: 'Pichu', moves: ['sleeptalk']}, + ]]); + + let wynaut = battle.p1.active[1]; + assert.species(wynaut, 'Wynaut'); + battle.makeChoices(); + + wynaut = battle.p1.active[0]; + assert.species(wynaut, 'Wynaut'); + }); + + it(`should not work if the user is in the center of a Triple Battle`, function () { + battle = common.gen(6).createBattle({gameType: 'triples'}, [[ + {species: 'Primeape', moves: ['sleeptalk']}, + {species: 'Wynaut', moves: ['allyswitch']}, + {species: 'Shaymin', moves: ['sleeptalk']}, + ], [ + {species: 'Murkrow', moves: ['sleeptalk']}, + {species: 'Pichu', moves: ['sleeptalk']}, + {species: 'Skrelp', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + const wynaut = battle.p1.active[1]; + assert.species(wynaut, 'Wynaut'); + }); + + it(`should swap Pokemon on the edges of a Triple Battle`, function () { + battle = common.gen(6).createBattle({gameType: 'triples'}, [[ + {species: 'Wynaut', moves: ['allyswitch']}, + {species: 'Primeape', moves: ['sleeptalk']}, + {species: 'Shaymin', moves: ['sleeptalk']}, + ], [ + {species: 'Murkrow', moves: ['sleeptalk']}, + {species: 'Pichu', moves: ['sleeptalk']}, + {species: 'Skrelp', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + const wynaut = battle.p1.active[2]; + assert.species(wynaut, 'Wynaut'); + }); + + it(`should not work in formats where you do not control allies`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', moves: ['allyswitch']}, + ], [ + {species: 'Pichu', moves: ['swordsdance']}, + ]]); + + battle.makeChoices(); + assert(battle.log.some(line => line.includes('|-fail|')), `It should fail in singles`); + + battle = common.createBattle({gameType: 'multi'}, [[ + {species: 'Wynaut', moves: ['allyswitch']}, + ], [ + {species: 'Cubone', moves: ['swordsdance']}, + ], [ + {species: 'Marowak', moves: ['swordsdance']}, + ], [ + {species: 'Shaymin', moves: ['swordsdance']}, + ]]); + + battle.makeChoices(); + assert(battle.log.some(line => line.includes('|-fail|')), `It should fail in multis`); + + battle = common.createBattle({gameType: 'freeforall'}, [[ + {species: 'wynaut', moves: ['allyswitch']}, + ], [ + {species: 'scyther', moves: ['swordsdance']}, + ], [ + {species: 'scizor', moves: ['swordsdance']}, + ], [ + {species: 'shaymin', moves: ['swordsdance']}, + ]]); + + battle.makeChoices(); + assert(battle.log.some(line => line.includes('|-fail|')), `It should fail in FFAs`); + }); + + it(`should have a chance to fail when used successively`, function () { + battle = common.createBattle({gameType: 'doubles', forceRandomChance: false}, [[ + {species: 'Primeape', moves: ['sleeptalk']}, + {species: 'Wynaut', moves: ['allyswitch']}, + ], [ + {species: 'Dreepy', moves: ['sleeptalk']}, + {species: 'Pichu', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + battle.makeChoices(); + + const wynaut = battle.p1.active[0]; + assert.species(wynaut, 'Wynaut'); + }); + + it(`[Gen 8] should not have a chance to fail when used successively`, function () { + battle = common.gen(8).createBattle({gameType: 'doubles', forceRandomChance: false}, [[ + {species: 'Primeape', moves: ['sleeptalk']}, + {species: 'Wynaut', moves: ['allyswitch']}, + ], [ + {species: 'Dreepy', moves: ['sleeptalk']}, + {species: 'Pichu', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + battle.makeChoices(); + + const wynaut = battle.p1.active[1]; + assert.species(wynaut, 'Wynaut'); + }); + + it(`should not use the protection counter when determining if the move should fail`, function () { + battle = common.createBattle({gameType: 'doubles', forceRandomChance: false}, [[ + {species: 'Primeape', moves: ['calmmind']}, + {species: 'Wynaut', moves: ['allyswitch', 'protect']}, + ], [ + {species: 'Dreepy', moves: ['calmmind']}, + {species: 'Pichu', moves: ['calmmind']}, + ]]); + + battle.makeChoices('move calmmind, move allyswitch', 'auto'); + battle.makeChoices('move protect, move calmmind', 'auto'); + battle.makeChoices('move allyswitch, move calmmind', 'auto'); + battle.makeChoices('move calmmind, move protect', 'auto'); + + assert(battle.log.every(line => !line.startsWith('|-fail'))); + }); +}); diff --git a/test/sim/moves/burningbulwark.js b/test/sim/moves/burningbulwark.js new file mode 100644 index 000000000000..c6e46609e952 --- /dev/null +++ b/test/sim/moves/burningbulwark.js @@ -0,0 +1,37 @@ +'use strict'; + +const assert = require('../../assert'); +const common = require('../../common'); + +let battle; + +describe('Burning Bulwark', function () { + afterEach(() => battle.destroy()); + + it(`should burn the user of a contact move`, function () { + battle = common.createBattle([ + [{species: "Gallade", ability: 'justified', moves: ['tackle']}], + [{species: "Entei", ability: 'innerfocus', moves: ['burningbulwark']}], + ]); + battle.makeChoices(); + assert.equal(battle.p1.active[0].status, 'brn', 'Gallade should be burned when using contact move'); + }); + + it(`should not burn the user of a contact move if user has protective pads`, function () { + battle = common.createBattle([ + [{species: "Gallade", item: 'protectivepads', ability: 'justified', moves: ['tackle']}], + [{species: "Entei", ability: 'innerfocus', moves: ['burningbulwark']}], + ]); + battle.makeChoices(); + assert.equal(battle.p1.active[0].status, '', 'Gallade should not be burned when using contact move due to protective pads'); + }); + + it(`should not burn the user of a non-contact move`, function () { + battle = common.createBattle([ + [{species: "Ogerpon-Wellspring", ability: 'Water Absorb', moves: ['ivycudgel']}], + [{species: "Entei", ability: 'innerfocus', moves: ['burningbulwark']}], + ]); + battle.makeChoices(); + assert.equal(battle.p1.active[0].status, '', 'Ogerpon-Wellspring should not be burned when using non-contact move'); + }); +}); diff --git a/test/sim/moves/ceaselessedge.js b/test/sim/moves/ceaselessedge.js index 4162305b4b16..31d6d78c8810 100644 --- a/test/sim/moves/ceaselessedge.js +++ b/test/sim/moves/ceaselessedge.js @@ -82,4 +82,16 @@ describe('Ceaseless Edge', function () { battle.makeChoices(); assert.equal(!!(battle.p2.sideConditions.spikes), false); }); + + it(`should not set Spikes when the user faints from Rocky Helmet`, function () { + battle = common.createBattle([[ + {species: 'samurotthisui', ability: 'noguard', item: 'focussash', moves: ['ceaselessedge']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'regieleki', item: 'rockyhelmet', moves: ['sheercold']}, + ]]); + + battle.makeChoices(); // Samurott will faint to the Rocky Helmet + assert.equal(!!(battle.p2.sideConditions.spikes), false); + }); }); diff --git a/test/sim/moves/chloroblast.js b/test/sim/moves/chloroblast.js new file mode 100644 index 000000000000..aeaaa453dc36 --- /dev/null +++ b/test/sim/moves/chloroblast.js @@ -0,0 +1,54 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Chloroblast', function () { + afterEach(function () { + battle.destroy(); + }); + + it('should deal recoil damage to the user equal to half its max HP, rounded up', function () { + battle = common.createBattle([[ + {species: "Electrode-Hisui", item: 'widelens', moves: ['chloroblast']}, + ], [ + {species: "Blissey", moves: ['sleeptalk']}, + ]]); + assert.hurtsBy(battle.p1.active[0], Math.round(battle.p1.active[0].maxhp / 2), () => battle.makeChoices()); + }); + + it('should not deal recoil damage to the user if it misses or is blocked by Protect', function () { + battle = common.createBattle([[ + {species: "Electrode-Hisui", item: 'widelens', moves: ['chloroblast', 'protect']}, + ], [ + {species: "Talonflame", ability: 'galewings', moves: ['fly', 'protect']}, + ]]); + battle.makeChoices('move chloroblast', 'move fly'); + battle.makeChoices('move protect', 'auto'); + battle.makeChoices('move chloroblast', 'move protect'); + assert.fullHP(battle.p1.active[0]); + }); + + it('should have its recoil damage negated by Rock Head', function () { + battle = common.createBattle([[ + {species: "Electrode-Hisui", ability: 'rockhead', item: 'widelens', moves: ['chloroblast']}, + ], [ + {species: "Blissey", moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + assert.fullHP(battle.p1.active[0]); + }); + + it('should not have its base power boosted by Reckless', function () { + battle = common.createBattle([[ + {species: "Electrode-Hisui", ability: 'reckless', item: 'widelens', moves: ['chloroblast']}, + ], [ + {species: "Blissey", ability: 'shellarmor', moves: ['sleeptalk']}, + ]]); + battle.makeChoices(); + const damage = battle.p2.active[0].maxhp - battle.p2.active[0].hp; + assert.bounded(damage, [103, 123]); + }); +}); diff --git a/test/sim/moves/courtchange.js b/test/sim/moves/courtchange.js new file mode 100644 index 000000000000..fc47f74e14ea --- /dev/null +++ b/test/sim/moves/courtchange.js @@ -0,0 +1,58 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe(`Court Change`, function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should swap certain side conditions to the opponent's side and vice versa`, function () { + battle = common.createBattle([[ + {species: 'wynaut', moves: ['sleeptalk', 'stealthrock', 'lightscreen']}, + ], [ + {species: 'cinderace', moves: ['courtchange', 'tailwind', 'safeguard']}, + ]]); + battle.makeChoices('move stealthrock', 'move tailwind'); + battle.makeChoices('move lightscreen', 'move safeguard'); + battle.makeChoices('move sleeptalk', 'move courtchange'); + + assert(!!battle.p1.sideConditions['tailwind']); + assert(!!battle.p1.sideConditions['safeguard']); + assert(!!battle.p1.sideConditions['stealthrock']); + assert(!!battle.p2.sideConditions['lightscreen']); + }); + + it(`should allow Sticky Web to trigger Defiant when set by the Defiant user's team`, function () { + battle = common.createBattle([[ + {species: 'cinderace', moves: ['courtchange', 'stickyweb', 'sleeptalk']}, + {species: 'pawniard', ability: 'defiant', moves: ['sleeptalk']}, + ], [ + {species: 'wynaut', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move stickyweb', 'auto'); + battle.makeChoices('move courtchange', 'auto'); + battle.makeChoices('switch 2', 'auto'); + + assert(!!battle.p1.sideConditions['stickyweb']); + assert.statStage(battle.p1.active[0], 'atk', 2); + }); + + it(`[Gen 8] should not allow Sticky Web to trigger Defiant when set by the Defiant user's team`, function () { + battle = common.gen(8).createBattle([[ + {species: 'cinderace', moves: ['courtchange', 'stickyweb', 'sleeptalk']}, + {species: 'pawniard', ability: 'defiant', moves: ['sleeptalk']}, + ], [ + {species: 'wynaut', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move stickyweb', 'auto'); + battle.makeChoices('move courtchange', 'auto'); + battle.makeChoices('switch 2', 'auto'); + + assert(!!battle.p1.sideConditions['stickyweb']); + assert.statStage(battle.p1.active[0], 'atk', 0); + }); +}); diff --git a/test/sim/moves/doodle.js b/test/sim/moves/doodle.js new file mode 100644 index 000000000000..eae73c314982 --- /dev/null +++ b/test/sim/moves/doodle.js @@ -0,0 +1,52 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Doodle', function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should replace the Abilities of the user and its ally with the Ability of its target`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', ability: 'shadowtag', moves: ['doodle']}, + {species: 'ironhands', ability: 'quarkdrive', moves: ['sleeptalk']}, + ], [ + {species: 'clefable', ability: 'magicguard', moves: ['sleeptalk']}, + {species: 'mudkip', ability: 'torrent', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move doodle 1, auto', 'auto'); + assert.equal(battle.p1.active[0].ability, 'magicguard'); + assert.equal(battle.p1.active[1].ability, 'magicguard'); + }); + + it(`should fail against certain Abilities`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', ability: 'shadowtag', moves: ['doodle']}, + {species: 'ironhands', ability: 'quarkdrive', moves: ['sleeptalk']}, + ], [ + {species: 'fluttermane', ability: 'protosynthesis', moves: ['sleeptalk']}, + {species: 'mudkip', ability: 'torrent', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move doodle 1, auto', 'auto'); + assert.equal(battle.p1.active[0].ability, 'shadowtag'); + assert.equal(battle.p1.active[1].ability, 'quarkdrive'); + }); + + it(`should not fail if only the user has an unreplaceable Ability`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'komala', ability: 'comatose', moves: ['doodle']}, + {species: 'wynaut', ability: 'shadowtag', moves: ['swordsdance']}, + ], [ + {species: 'clefable', ability: 'magicguard', moves: ['swordsdance']}, + {species: 'mudkip', ability: 'torrent', moves: ['swordsdance']}, + ]]); + battle.makeChoices('move doodle 1, auto', 'auto'); + assert.equal(battle.p1.active[0].ability, 'comatose'); + assert.equal(battle.p1.active[1].ability, 'magicguard'); + assert.false(battle.log.some(line => line.includes('|-fail'))); + }); +}); diff --git a/test/sim/moves/dragoncheer.js b/test/sim/moves/dragoncheer.js new file mode 100644 index 000000000000..358b04fa519c --- /dev/null +++ b/test/sim/moves/dragoncheer.js @@ -0,0 +1,154 @@ +'use strict'; + +const assert = require('../../assert'); +const common = require('../../common'); + +let battle; + +/** + * Test setup: + * - Let the Dragon Cheer receiver be the slowest Pokemon on the field. + * - Inspect the critical hit ratio added. Ratio will be 1 + bonusCritRatio. + * + * All tests based on confirmations given here: https://www.smogon.com/forums/threads/scarlet-violet-battle-mechanics-research.3709545/post-9894139 + */ +describe('Dragon Cheer', function () { + afterEach(() => battle.destroy()); + + it('should raise critical hit ratio by 2 stages for dragon types', function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'dragapult', moves: ['dragoncheer']}, + {species: 'kingdra', moves: ['bubble']}, + ], [ + {species: 'dragapult', moves: ['splash']}, + {species: 'dragapult', moves: ['splash']}, + ]]); + + battle.onEvent( + 'ModifyCritRatio', battle.format, -99, + (critRatio) => assert.equal(critRatio, 3) + ); + + battle.makeChoices('auto', 'auto'); + assert(battle.log.some(line => line.startsWith('|-start'))); + }); + + it('should raise critical hit ratio by 1 stage for non-dragon types', function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'dragapult', moves: ['dragoncheer']}, + {species: 'horsea', moves: ['bubble']}, + ], [ + {species: 'dragapult', moves: ['splash']}, + {species: 'dragapult', moves: ['splash']}, + ]]); + + battle.onEvent( + 'ModifyCritRatio', battle.format, -99, + (critRatio) => assert.equal(critRatio, 2) + ); + + battle.makeChoices('auto', 'auto'); + assert(battle.log.some(line => line.startsWith('|-start'))); + }); + + it('should fail if used twice on the same ally', function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'dragapult', moves: ['dragoncheer']}, + {species: 'kingdra', moves: ['bubble']}, + ], [ + {species: 'dragapult', moves: ['splash']}, + {species: 'dragapult', moves: ['splash']}, + ]]); + + battle.makeChoices('auto', 'auto'); + battle.makeChoices('auto', 'auto'); + assert(battle.log.some(line => line.startsWith('|-start'))); // first trigger + assert(battle.log.some(line => line.startsWith('|-fail'))); // second trigger + }); + + it('should not increase ratio if affected Pokemon turns into a Dragon Type after Dragon Cheer', function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'dragapult', moves: ['dragoncheer', 'splash']}, + {species: 'horsea', moves: ['bubble'], teraType: 'Dragon'}, + ], [ + {species: 'dragapult', moves: ['splash']}, + {species: 'dragapult', moves: ['splash']}, + ]]); + + battle.onEvent( + 'ModifyCritRatio', battle.format, -99, + (critRatio) => assert.equal(critRatio, 2) + ); + + battle.makeChoices('move dragoncheer -2, move bubble', 'auto'); + battle.makeChoices('move splash, move bubble terastallize', 'auto'); + }); + + it('should fail in singles or if no ally exists', function () { + battle = common.createBattle([ + [{species: 'gyarados', moves: ['dragoncheer']}], + [{species: 'dragapult', moves: ['splash']}], + ]); + + battle.makeChoices(); + assert(battle.log.some(line => !line.startsWith('|-fail'))); + }); + + it(`should be copied by Psych Up, using the target's Dragon Cheer level`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'milotic', moves: ['dragoncheer', 'psychup', 'bubble']}, + {species: 'kingdra', moves: ['sleeptalk']}, + ], [ + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'wobbuffet', moves: ['sleeptalk']}, + ]]); + + battle.onEvent( + 'ModifyCritRatio', battle.format, -99, + (critRatio) => assert.equal(critRatio, 3) + ); + + battle.makeChoices('move dragoncheer -2, move sleeptalk', 'auto'); + battle.makeChoices('move psychup -2, move sleeptalk', 'auto'); + battle.makeChoices('move bubble, move sleeptalk', 'auto'); + }); + + it(`should be copied by Psych Up, using the target's Dragon Cheer level and replacing the user's current critical hit stage`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'milotic', moves: ['dragoncheer', 'psychup', 'bubble', 'focusenergy']}, + {species: 'comfey', moves: ['sleeptalk']}, + ], [ + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'wobbuffet', moves: ['sleeptalk']}, + ]]); + + battle.onEvent( + 'ModifyCritRatio', battle.format, -99, + (critRatio) => assert.equal(critRatio, 2) + ); + + battle.makeChoices('move focusenergy, move sleeptalk', 'auto'); + battle.makeChoices('move dragoncheer -2, move sleeptalk', 'auto'); + battle.makeChoices('move psychup -2, move sleeptalk', 'auto'); + battle.makeChoices('move bubble, move sleeptalk', 'auto'); + }); + + it(`should be copied by Transform, using the target's Dragon Cheer level`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'milotic', moves: ['dragoncheer', 'transform']}, + {species: 'kingdra', moves: ['sleeptalk', 'bubble']}, + ], [ + {species: 'wynaut', moves: ['sleeptalk']}, + {species: 'wobbuffet', moves: ['sleeptalk']}, + ]]); + + battle.onEvent( + 'ModifyCritRatio', battle.format, -99, + (critRatio) => assert.equal(critRatio, 3) + ); + + battle.makeChoices('move dragoncheer -2, move sleeptalk', 'auto'); + battle.makeChoices('move transform -2, move sleeptalk', 'auto'); + battle.makeChoices('move bubble, move sleeptalk', 'auto'); + }); +}); diff --git a/test/sim/moves/dragondarts.js b/test/sim/moves/dragondarts.js index d98b6d0ee5bb..dda3e76f5e8a 100644 --- a/test/sim/moves/dragondarts.js +++ b/test/sim/moves/dragondarts.js @@ -147,6 +147,7 @@ describe('Dragon Darts', function () { assert.notEqual(battle.p2.active[0].hp, battle.p2.active[0].maxhp); assert.equal(battle.p2.active[1].hp, battle.p2.active[1].maxhp); assert.statStage(battle.p2.active[0], 'def', 2); + // Dragon Darts activates the absorption effect despite hitting Arcanine twice assert.statStage(battle.p2.active[1], 'spe', 1); }); @@ -157,12 +158,12 @@ describe('Dragon Darts', function () { {species: "Ludicolo", ability: "Dancer", moves: ["sleeptalk"]}, ]}); battle.setPlayer('p2', {team: [ - {species: "Arcanine", ability: "Flash Fire", moves: ["sleeptalk"]}, + {species: "Arcanine", ability: "Stamina", moves: ["sleeptalk"]}, {species: "Clefairy", ability: "Ripen", moves: ["sleeptalk"]}, ]}); battle.makeChoices('move dragondarts 2, move sleeptalk', 'move sleeptalk, move sleeptalk'); - assert.notEqual(battle.p2.active[0].hp, battle.p2.active[0].maxhp); + assert.statStage(battle.p2.active[0], 'def', 2); assert.equal(battle.p2.active[1].hp, battle.p2.active[1].maxhp); }); @@ -173,12 +174,12 @@ describe('Dragon Darts', function () { {species: "Ludicolo", ability: "Dancer", moves: ["sleeptalk"]}, ]}); battle.setPlayer('p2', {team: [ - {species: "Arcanine", ability: "Flash Fire", moves: ["sleeptalk"]}, + {species: "Arcanine", ability: "Stamina", moves: ["sleeptalk"]}, {species: "Golurk", ability: "Ripen", moves: ["phantomforce"]}, ]}); battle.makeChoices('move dragondarts 2, move sleeptalk', 'move sleeptalk, move phantomforce 1'); - assert.notEqual(battle.p2.active[0].hp, battle.p2.active[0].maxhp); + assert.statStage(battle.p2.active[0], 'def', 2); assert.equal(battle.p2.active[1].hp, battle.p2.active[1].maxhp); }); @@ -189,17 +190,34 @@ describe('Dragon Darts', function () { {species: "Ludicolo", ability: "Dancer", moves: ["sleeptalk"]}, ]}); battle.setPlayer('p2', {team: [ - {species: "Arcanine", ability: "Flash Fire", moves: ["sleeptalk"]}, + {species: "Arcanine", ability: "Stamina", moves: ["sleeptalk"]}, {species: "Snom", ability: "Ripen", moves: ["sleeptalk"]}, ]}); battle.p2.active[1].faint(); battle.makeChoices('move dragondarts 2, move sleeptalk', 'move sleeptalk, move sleeptalk'); - assert.notEqual(battle.p2.active[0].hp, battle.p2.active[0].maxhp); + assert.statStage(battle.p2.active[0], 'def', 2); assert.equal(battle.p2.active[1].hp, 0); }); + it('should hit one target twice if the other is Dark type and Dragon Darts is Prankster boosted', function () { + battle = common.createBattle({gameType: 'doubles'}); + battle.setPlayer('p1', {team: [ + {species: "Dragapult", ability: "Clear Body", moves: ["sleeptalk", "dragondarts"]}, + {species: "Liepard", ability: "Prankster", moves: ["assist"]}, + ]}); + battle.setPlayer('p2', {team: [ + {species: "Arcanine", ability: "Stamina", moves: ["sleeptalk"]}, + {species: "Spiritomb", ability: "Infiltrator", moves: ["sleeptalk"]}, + ]}); + + battle.makeChoices(); + + assert.statStage(battle.p2.active[0], 'def', 2); + assert.equal(battle.p2.active[1].hp, battle.p2.active[1].maxhp); + }); + it('should fail if both targets are fainted', function () { battle = common.createBattle({gameType: 'doubles'}); battle.setPlayer('p1', {team: [ diff --git a/test/sim/moves/encore.js b/test/sim/moves/encore.js index 280a940769b6..c4ceb29e04c6 100644 --- a/test/sim/moves/encore.js +++ b/test/sim/moves/encore.js @@ -10,6 +10,55 @@ describe('Encore', function () { battle.destroy(); }); + it(`should cause the target to be forced to repeat its move`, function () { + battle = common.createBattle([[ + {species: 'slowbro', moves: ['tackle', 'irondefense']}, + ], [ + {species: 'whimsicott', moves: ['encore', 'sleeptalk']}, + ]]); + + const whims = battle.p2.active[0]; + battle.makeChoices('move irondefense', 'move sleeptalk'); + battle.makeChoices('move tackle', 'move encore'); + + assert.fullHP(whims); + assert.cantMove(() => battle.choose('p1', 'move tackle')); + }); + + it(`should cause the target to move with its Encored attack at the priority of the originally selected move once`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'regieleki', moves: ['sleeptalk', 'substitute']}, + {species: 'pichu', moves: ['sleeptalk']}, + ], [ + {species: 'whimsicott', ability: 'prankster', moves: ['sleeptalk', 'encore']}, + {species: 'terrakion', moves: ['quickattack', 'headlongrush']}, + ]]); + + const eleki = battle.p1.active[0]; + battle.makeChoices('auto', 'move sleeptalk, move headlongrush 2'); + battle.makeChoices('move substitute', 'move encore -2, move quickattack 1'); + + assert.fainted(eleki, `Encore + Quick Attack being selected gives Headlong Rush priority.`); + }); + + it(`should cause the target to move with its Encored attack at the priority of the originally selected move once and get blocked when appropriate`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'regieleki', moves: ['psychicterrain']}, + {species: 'pichu', moves: ['sleeptalk']}, + ], [ + {species: 'whimsicott', ability: 'prankster', moves: ['sleeptalk', 'encore']}, + {species: 'terrakion', moves: ['quickattack', 'headlongrush']}, + ]]); + + const eleki = battle.p1.active[0]; + battle.makeChoices('auto', 'move sleeptalk, move headlongrush 2'); + battle.makeChoices('auto', 'move encore -2, move quickattack 1'); + assert.false.fainted(eleki, `Psychic Terrain should have prevented the priority Headlong Rush from doing damage.`); + + battle.makeChoices(); + assert.fainted(eleki, `Headlong Rush should no longer be moving with priority.`); + }); + it('should not affect Focus Punch if the the user\'s decision is not changed', function () { battle = common.createBattle({gameType: 'doubles'}, [ [ diff --git a/test/sim/moves/futuresight.js b/test/sim/moves/futuresight.js index 834db6f58575..163dd1f1f73c 100644 --- a/test/sim/moves/futuresight.js +++ b/test/sim/moves/futuresight.js @@ -355,4 +355,50 @@ describe('Future Sight', function () { damage = hooh.maxhp - hooh.hp; assert.bounded(damage, [57, 68], `Future Sight should deal damage with +0 Sp. Atk`); }); + + it(`should never resolve when used on turn 254 or later`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', moves: ['sleeptalk', 'futuresight']}, + ], [ + {species: 'Stakataka', moves: ['sleeptalk']}, + ]]); + + battle.turn = 255; // Showdown turn is +1 from what the games are; this would ordinarily be 254 + battle.makeChoices('move futuresight', 'auto'); + for (let i = 0; i < 5; i++) battle.makeChoices(); + battle.makeChoices('move futuresight', 'auto'); + for (let i = 0; i < 5; i++) battle.makeChoices(); + + const stak = battle.p2.active[0]; + assert.fullHP(stak, `Future Sight should have never resolved.`); + }); + + it(`should target particular slots in Doubles`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Wynaut', moves: ['sleeptalk', 'futuresight']}, + {species: 'Steelix', moves: ['sleeptalk']}, + ], [ + {species: 'Girafarig', moves: ['sleeptalk', 'recover']}, + {species: 'Farigiraf', moves: ['sleeptalk', 'recover']}, + ]]); + + battle.makeChoices('move futuresight 2, auto', 'auto'); + battle.makeChoices(); + battle.makeChoices(); + const giraf = battle.p2.active[0]; + const farig = battle.p2.active[1]; + assert.false.fullHP(farig, `Farigiraf should have been damaged by the 1st Future Sight.`); + + battle.makeChoices('move futuresight 1, auto', 'move recover, move recover'); + battle.makeChoices(); + battle.makeChoices(); + assert.false.fullHP(giraf, `Girafarig should have been damaged by the 2nd Future Sight.`); + + battle.makeChoices('move futuresight -2, auto', 'auto'); + battle.makeChoices(); + battle.makeChoices(); + + const steelix = battle.p1.active[1]; + assert.false.fullHP(steelix, `Steelix should have been damaged by the 3rd Future Sight`); + }); }); diff --git a/test/sim/moves/hyperbeam.js b/test/sim/moves/hyperbeam.js index 07efc48db624..708d2a438b38 100644 --- a/test/sim/moves/hyperbeam.js +++ b/test/sim/moves/hyperbeam.js @@ -51,4 +51,46 @@ describe(`Hyper Beam`, function () { battle.makeChoices(); assert.cantMove(() => battle.choose('p1', 'move tackle')); }); + + it(`[Gen 1] Partial trapping moves negate recharge turns (recharging Pokemon is slower))`, function () { + battle = common.gen(1).createBattle({forceRandomChance: true}, [[ + {species: 'cloyster', moves: ['surf', 'clamp']}, + ], [ + {species: 'snorlax', moves: ['hyperbeam']}, + ]]); + // All moves hit + battle.makeChoices(); + assert(battle.p2.active[0].volatiles['mustrecharge']); + battle.makeChoices('move clamp', 'auto'); + assert.false(battle.p2.active[0].volatiles['mustrecharge']); + assert(battle.p2.active[0].volatiles['partiallytrapped']); + }); + + it(`[Gen 1] Partial trapping moves negate recharge turns (recharging Pokemon is faster)`, function () { + battle = common.gen(1).createBattle({forceRandomChance: true}, [[ + {species: 'cloyster', moves: ['clamp']}, + ], [ + {species: 'aerodactyl', moves: ['hyperbeam']}, + ]]); + // All moves hit + battle.makeChoices(); + assert.false.fullHP(battle.p1.active[0]); + assert.false(battle.p2.active[0].volatiles['mustrecharge']); + assert(battle.p2.active[0].volatiles['partiallytrapped']); + }); + + it(`[Gen 1] Hyper Beam automatic selection glitch`, function () { + battle = common.gen(1).createBattle({seed: [0, 0, 1, 0]}, [[ + {species: 'cloyster', moves: ['surf', 'clamp']}, + ], [ + {species: 'snorlax', moves: ['hyperbeam']}, + ]]); + // All moves hit in the first turn + battle.makeChoices(); + assert(battle.p2.active[0].volatiles['mustrecharge']); + // Clamp misses, the forced Hyper Beam hits + battle.makeChoices('move clamp', 'auto'); + assert.false(battle.p2.active[0].volatiles['partiallytrapped']); + assert(battle.p2.active[0].volatiles['mustrecharge']); + }); }); diff --git a/test/sim/moves/icespinner.js b/test/sim/moves/icespinner.js new file mode 100644 index 000000000000..2b844b68e110 --- /dev/null +++ b/test/sim/moves/icespinner.js @@ -0,0 +1,59 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe(`Ice Spinner`, function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should remove Terrains if the user is active and on the field`, function () { + battle = common.createBattle([[ + {species: 'wynaut', moves: ['icespinner']}, + ], [ + {species: 'registeel', ability: 'psychicsurge', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + assert.false(battle.field.isTerrain('psychicterrain')); + }); + + it.skip(`should not remove Terrains if the user faints from Life Orb`, function () { + battle = common.createBattle([[ + {species: 'shedinja', item: 'lifeorb', moves: ['icespinner']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'registeel', ability: 'psychicsurge', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + assert(battle.field.isTerrain('psychicterrain')); + }); + + it(`should not remove Terrains if the user faints from Rocky Helmet`, function () { + battle = common.createBattle([[ + {species: 'shedinja', moves: ['icespinner']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'registeel', item: 'rockyhelmet', ability: 'psychicsurge', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + assert(battle.field.isTerrain('psychicterrain')); + }); + + it.skip(`should not remove Terrains if the user is forced out via Red Card`, function () { + battle = common.createBattle([[ + {species: 'shedinja', moves: ['icespinner']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'registeel', item: 'redcard', ability: 'psychicsurge', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + assert(battle.field.isTerrain('psychicterrain')); + }); +}); diff --git a/test/sim/moves/mefirst.js b/test/sim/moves/mefirst.js index 16191034882a..e96192e40886 100644 --- a/test/sim/moves/mefirst.js +++ b/test/sim/moves/mefirst.js @@ -10,7 +10,19 @@ describe(`Me First`, function () { battle.destroy(); }); - it(`Me First should fail to copy recharge turns from moves like Hyper Beam`, function () { + it(`should be selectable even if the user is Taunted or holds Assault Vest`, function () { + battle = common.gen(7).createBattle([[ + {species: 'corphish', moves: ['sleeptalk']}, + {species: 'aerodactyl', item: 'assaultvest', moves: ['mefirst']}, + ], [ + {species: 'wynaut', moves: ['taunt', 'watergun']}, + ]]); + battle.makeChoices('switch 2', 'move taunt'); + battle.makeChoices('move mefirst', 'move watergun'); + assert.false.fullHP(battle.p2.active[0]); + }); + + it(`should not copy recharge turns from moves like Hyper Beam`, function () { battle = common.gen(7).createBattle([[ {species: 'aerodactyl', moves: ['sleeptalk', 'mefirst']}, ], [ diff --git a/test/sim/moves/mightycleave.js b/test/sim/moves/mightycleave.js new file mode 100644 index 000000000000..cd8efaa35bac --- /dev/null +++ b/test/sim/moves/mightycleave.js @@ -0,0 +1,20 @@ +'use strict'; + +const assert = require('../../assert'); +const common = require('../../common'); + +let battle; + +describe('Mighty Cleave', function () { + afterEach(() => battle.destroy()); + + it(`should go through Protect`, function () { + battle = common.createBattle([ + [{species: "Terrakion", ability: 'justified', moves: ['mightycleave']}], + [{species: "Entei", ability: 'innerfocus', moves: ['protect']}], + ]); + battle.makeChoices(); + const damage = battle.p2.active[0].maxhp - battle.p2.active[0].hp; + assert.notEqual(damage, 0, `Entei should have taken damage`); + }); +}); diff --git a/test/sim/moves/pollenpuff.js b/test/sim/moves/pollenpuff.js index 9fc14f53afbb..3640b5e9df3a 100644 --- a/test/sim/moves/pollenpuff.js +++ b/test/sim/moves/pollenpuff.js @@ -38,4 +38,73 @@ describe('Pollen Puff', function () { battle.makeChoices('move pollenpuff -2, move bellydrum', 'auto'); assert.false.fullHP(battle.p1.active[1]); }); + + describe(`interaction of Heal Block and Pollen Puff`, function () { + it(`should prevent the user from targeting an ally with Pollen Puff while the user is affected by Heal Block`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'bunnelby', moves: ['sleeptalk', 'pollenpuff']}, + {species: 'roggenrola', ability: 'magicbounce', moves: ['sleeptalk']}, + ], [ + {species: 'scolipede', moves: ['healblock']}, + {species: 'lucario', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + assert.cantMove(() => battle.choose('p1', 'move pollenpuff -2, move sleeptalk')); + assert.false.cantMove(() => battle.choose('p1', 'move pollenpuff 1, move sleeptalk')); + }); + + it(`should not prevent the user from targeting an ally with Z-Pollen Puff while the user is affected by Heal Block`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'bunnelby', item: 'buginiumz', moves: ['sleeptalk', 'pollenpuff']}, + {species: 'roggenrola', ability: 'magicbounce', moves: ['sleeptalk']}, + ], [ + {species: 'scolipede', moves: ['healblock']}, + {species: 'lucario', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + assert.false.cantMove(() => battle.choose('p1', 'move pollenpuff zmove -2, move sleeptalk')); + }); + + it(`should not prevent the user from targeting an ally with Pollen Puff while the target is affected by Heal Block at move selection, but it should fail at move execution`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', ability: 'magicbounce', moves: ['sleeptalk', 'pollenpuff']}, + {species: 'roggenrola', moves: ['sleeptalk']}, + ], [ + {species: 'wobbuffet', moves: ['healblock']}, + {species: 'lucario', moves: ['falseswipe']}, + ]]); + + battle.makeChoices(); + battle.makeChoices('move pollenpuff -2, move sleeptalk', 'move healblock, move falseswipe 2'); + assert.false.fullHP(battle.p1.active[1], `Roggenrola should not have healed from Pollen Puff`); + }); + + it(`should prevent the user from successfully using Pollen Puff into an ally if the user becomes affected by Heal Block mid-turn`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', moves: ['pollenpuff']}, + {species: 'roggenrola', ability: 'magicbounce', moves: ['sleeptalk']}, + ], [ + {species: 'wobbuffet', moves: ['healblock']}, + {species: 'lucario', moves: ['falseswipe']}, + ]]); + + battle.makeChoices('move pollenpuff -2, move sleeptalk', 'move healblock, move falseswipe 2'); + assert.false.fullHP(battle.p1.active[1], `Roggenrola should not have healed from Pollen Puff`); + }); + + it(`should not prevent the user from using Z-Pollen Puff into an ally`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'wynaut', item: 'buginiumz', moves: ['pollenpuff']}, + {species: 'roggenrola', moves: ['sleeptalk']}, + ], [ + {species: 'wobbuffet', moves: ['healblock']}, + {species: 'lucario', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move pollenpuff zmove -2, move sleeptalk', 'auto'); + assert.false.fullHP(battle.p1.active[1], `Roggenrola should have taken damage from Z-Pollen Puff`); + }); + }); }); diff --git a/test/sim/moves/psychicnoise.js b/test/sim/moves/psychicnoise.js new file mode 100644 index 000000000000..ece6cdf204f4 --- /dev/null +++ b/test/sim/moves/psychicnoise.js @@ -0,0 +1,39 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Psychic Noise', function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should prevent the target from healing, like Heal Block`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', ability: 'battlearmor', moves: ['softboiled', 'sleeptalk']}, + ], [ + {species: 'Regieleki', moves: ['psychicnoise']}, + ]]); + const wynaut = battle.p1.active[0]; + battle.makeChoices(); + assert.false.fullHP(wynaut); + assert.cantMove(() => battle.choose('p1', 'move softboiled')); + }); + + it.skip(`should prevent the target's ally from healing it with Life Dew`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Wynaut', ability: 'battlearmor', moves: ['sleeptalk']}, + {species: 'Blissey', ability: 'battlearmor', moves: ['lifedew']}, + ], [ + {species: 'Regieleki', moves: ['psychicnoise']}, + {species: 'Mew', moves: ['watergun']}, + ]]); + const wynaut = battle.p1.active[0]; + const blissey = battle.p1.active[1]; + battle.makeChoices('auto', 'move psychicnoise 1, move watergun 2'); + assert.false.fullHP(wynaut, `Wynaut should not be healed, because it is affected by Psychic Noise`); + assert.fullHP(blissey, `Blissey should be healed, because it is not affected by Psychic Noise`); + }); +}); diff --git a/test/sim/moves/pursuit.js b/test/sim/moves/pursuit.js index 9bdda0309444..2209192c29e1 100644 --- a/test/sim/moves/pursuit.js +++ b/test/sim/moves/pursuit.js @@ -20,6 +20,21 @@ describe(`Pursuit`, function () { assert.fainted(battle.p2.active[0]); }); + it(`should execute before the target switches out and after the user Terastallizes`, function () { + battle = common.gen(9).createBattle([[ + {species: "Kingambit", ability: 'defiant', moves: ['pursuit']}, + ], [ + {species: "Giratina", ability: 'pressure', moves: ['shadow ball']}, + {species: "Clefable", ability: 'unaware', moves: ['calmmind']}, + ]]); + const giratina = battle.p2.pokemon[0]; + const hpBeforeSwitch = giratina.hp; + battle.makeChoices('move Pursuit terastallize', 'switch 2'); + const damage = hpBeforeSwitch - giratina.hp; + // 0 Atk Tera Dark Kingambit switching boosted Pursuit (80 BP) vs. 0 HP / 0 Def Giratina: 256-304 + assert.bounded(damage, [256, 304], 'Actual damage: ' + damage); + }); + it(`should continue the switch in Gen 3`, function () { battle = common.gen(3).createBattle([[ {species: "Tyranitar", ability: 'sandstream', moves: ['pursuit']}, diff --git a/test/sim/moves/ragefist.js b/test/sim/moves/ragefist.js index 59e77adafa6b..a70e6d97e99d 100644 --- a/test/sim/moves/ragefist.js +++ b/test/sim/moves/ragefist.js @@ -98,4 +98,21 @@ describe('Rage Fist', function () { battle.makeChoices('move pollenpuff -2, move bellydrum', 'auto'); assert.equal(annihilape.timesAttacked, 0, `timesAttacked should not have incremented after a not-full HP Pollen Puff`); }); + + it(`should increase BP when hit by Dragon Darts`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'Primeape', moves: ['sleeptalk', 'ragefist']}, + {species: 'Wynaut', moves: ['sleeptalk', 'allyswitch']}, + ], [ + {species: 'Dreepy', moves: ['dragondarts']}, + {species: 'Pichu', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('auto', 'move dragondarts 1, move sleeptalk'); + const primeape = battle.p1.active[1]; + assert.equal(primeape.timesAttacked, 1, `timesAttacked should have been increased by Dragon Darts targeting the left slot`); + + battle.makeChoices('move sleeptalk, move allyswitch', 'move dragondarts 1, move sleeptalk'); + assert.equal(primeape.timesAttacked, 2, `timesAttacked should have been increased by Dragon Darts targeting the right slot`); + }); }); diff --git a/test/sim/moves/rapidspin.js b/test/sim/moves/rapidspin.js index 7151e46f9415..02d67346d946 100644 --- a/test/sim/moves/rapidspin.js +++ b/test/sim/moves/rapidspin.js @@ -45,4 +45,24 @@ describe('Rapid Spin', function () { battle.makeChoices(); assert(battle.p2.sideConditions['stealthrock']); }); + + it(`should not remove hazards if the user has Sheer Force`, function () { + battle = common.createBattle([[ + {species: 'Cobalion', moves: ['stealthrock']}, + ], [ + {species: 'Armaldo', ability: 'sheerforce', moves: ['rapidspin']}, + ]]); + battle.makeChoices(); + assert(battle.p2.sideConditions['stealthrock']); + }); + + it(`should remove hazards if the user has Sheer Force [Gen 7]`, function () { + battle = common.gen(7).createBattle([[ + {species: 'Cobalion', moves: ['stealthrock']}, + ], [ + {species: 'Armaldo', ability: 'sheerforce', moves: ['rapidspin']}, + ]]); + battle.makeChoices(); + assert.false(battle.p2.sideConditions['stealthrock']); + }); }); diff --git a/test/sim/moves/roost.js b/test/sim/moves/roost.js index 5151e241aee6..690989a124b9 100644 --- a/test/sim/moves/roost.js +++ b/test/sim/moves/roost.js @@ -73,7 +73,13 @@ describe('Roost', function () { it('should treat a pure Flying pokémon as Normal type', function () { battle = common.createBattle(); battle.setPlayer('p1', {team: [{species: "Tornadus", item: 'focussash', ability: 'prankster', moves: ['roost']}]}); - battle.setPlayer('p2', {team: [{species: "Gastly", item: 'laggingtail', ability: 'levitate', moves: ['astonish']}]}); + battle.setPlayer('p2', {team: [{species: "Gastly", item: 'laggingtail', ability: 'levitate', moves: ['astonish', 'trickortreat']}]}); + battle.makeChoices('move roost', 'move astonish'); + battle.makeChoices('move roost', 'move astonish'); + assert.equal(battle.p1.active[0].hp, battle.p1.active[0].maxhp); // Immune to Astonish + + // Ensure that it also replaces the Flying type with Normal even when there is an added type + battle.makeChoices('move roost', 'move trickortreat'); battle.makeChoices('move roost', 'move astonish'); battle.makeChoices('move roost', 'move astonish'); assert.equal(battle.p1.active[0].hp, battle.p1.active[0].maxhp); // Immune to Astonish diff --git a/test/sim/moves/snatch.js b/test/sim/moves/snatch.js index 2a64e4451996..531be25f2f12 100644 --- a/test/sim/moves/snatch.js +++ b/test/sim/moves/snatch.js @@ -76,6 +76,34 @@ describe('Snatch', function () { assert.atMost(battle.p1.active[1].hp, weavileHp, 'should not allow Snatch to bypass Heal Block'); assert(battle.log[battle.lastMoveLine + 2].startsWith('|cant'), 'should log that Recover failed'); }); + + it('should not snatch Swallow if the Swallow user has no Stockpiles', () => { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'mandibuzz', moves: ['snatch']}, + {species: 'accelgor', moves: ['swallow']}, + ], [ + {species: 'surskit', moves: ['quickattack']}, + {species: 'wingull', moves: ['quickattack']}, + ]]); + + battle.makeChoices('auto', 'move quickattack 1, move quickattack 2'); + for (const line of battle.log) { + assert(!line.includes('-activate'), `Snatch should not have activated, but found -activate message ${line}`); + } + }); + + it('Snatched Swallow should heal the snatcher by 25% if the snatcher has no Stockpiles', () => { + battle = common.createBattle([[ + {species: 'clefable', moves: ['sleeptalk', 'bellydrum', 'snatch']}, + ], [ + {species: 'dewgong', moves: ['stockpile', 'swallow']}, + ]]); + battle.makeChoices('move bellydrum', 'auto'); + battle.makeChoices(); + battle.makeChoices(); + const targetHP = battle.modify(battle.p1.active[0].maxhp, 0.25); + assert.hurtsBy(battle.p1.active[0], -targetHP, () => battle.makeChoices('move snatch', 'move swallow')); + }); }); describe('Snatch [Gen 4]', function () { diff --git a/test/sim/moves/stompingtantrum.js b/test/sim/moves/stompingtantrum.js index 93f779b680d3..ed4945a86c27 100644 --- a/test/sim/moves/stompingtantrum.js +++ b/test/sim/moves/stompingtantrum.js @@ -105,6 +105,22 @@ describe('Stomping Tantrum', function () { battle.makeChoices('move stompingtantrum', 'auto'); }); + it(`should double its Base Power if a two-turn move fails for a different reason`, function () { + battle = common.createBattle([[ + {species: 'Magikarp', moves: ['dive', 'stompingtantrum']}, + ], [ + {species: 'Wynaut', ability: 'waterabsorb', moves: ['splash']}, + ]]); + + battle.onEvent('BasePower', battle.format, function (basePower, pokemon, target, move) { + if (move.id === 'stompingtantrum') assert.equal(basePower, 150); + }); + + battle.makeChoices(); + battle.makeChoices(); + battle.makeChoices('move stompingtantrum', 'auto'); + }); + it(`should double its Base Power on some failure conditions of Rest`, function () { battle = common.createBattle([[ {species: 'Magikarp', ability: 'comatose', moves: ['rest', 'stompingtantrum']}, diff --git a/test/sim/moves/stoneaxe.js b/test/sim/moves/stoneaxe.js index 8f6391af04ce..4bf2f41be5e7 100644 --- a/test/sim/moves/stoneaxe.js +++ b/test/sim/moves/stoneaxe.js @@ -82,4 +82,16 @@ describe('Stone Axe', function () { battle.makeChoices(); assert.equal(!!(battle.p2.sideConditions.stealthrock), false); }); + + it(`should not set Stealth Rock when the user faints from Rocky Helmet`, function () { + battle = common.createBattle([[ + {species: 'kleavor', ability: 'noguard', item: 'focussash', moves: ['stoneaxe']}, + {species: 'wynaut', moves: ['sleeptalk']}, + ], [ + {species: 'regieleki', item: 'rockyhelmet', moves: ['sheercold']}, + ]]); + + battle.makeChoices(); // Kleavor will faint to the Rocky Helmet + assert.equal(!!(battle.p2.sideConditions.stealthrock), false); + }); }); diff --git a/test/sim/moves/syrupbomb.js b/test/sim/moves/syrupbomb.js new file mode 100644 index 000000000000..89a41d24dda6 --- /dev/null +++ b/test/sim/moves/syrupbomb.js @@ -0,0 +1,54 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +let battle; + +describe('Syrup Bomb', function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should lower the opponent's Speed for 3 turns, but not remove its volatile until after 4 turns`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', ability: 'noguard', moves: ['syrupbomb']}, + ], [ + {species: 'Applin', moves: ['sleeptalk']}, + ]]); + + for (let i = 0; i < 3; i++) battle.makeChoices(); + const applin = battle.p2.active[0]; + assert.statStage(applin, 'spe', -3); + assert(applin.volatiles['syrupbomb'], `Applin should have the Syrup Bomb volatile for another turn`); + + battle.makeChoices(); + assert.statStage(applin, 'spe', -3); + assert.false(applin.volatiles['syrupbomb'], `Applin should no longer have the Syrup Bomb volatile`); + }); + + it(`should end if the source leaves the field`, function () { + battle = common.createBattle([[ + {species: 'Dipplin', ability: 'noguard', moves: ['syrupbomb']}, + {species: 'Furret', moves: ['sleeptalk']}, + ], [ + {species: 'Applin', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + battle.makeChoices('switch 2', 'auto'); + assert.statStage(battle.p2.active[0], 'spe', -1); + }); + + it(`the stat changes should be reflected by Mirror Armor`, function () { + battle = common.createBattle([[ + {species: 'Dipplin', ability: 'noguard', moves: ['syrupbomb']}, + ], [ + {species: 'Corviknight', ability: 'mirrorarmor', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices(); + assert.statStage(battle.p1.active[0], 'spe', -1); + assert.statStage(battle.p2.active[0], 'spe', 0); + }); +}); diff --git a/test/sim/moves/tarshot.js b/test/sim/moves/tarshot.js index 742bf4051aa5..42ce624ff108 100644 --- a/test/sim/moves/tarshot.js +++ b/test/sim/moves/tarshot.js @@ -50,24 +50,41 @@ describe('Tar Shot', function () { assert.bounded(damage, [62, 74]); }); - it('should make the target weaker to fire', function () { - battle = common.createBattle(); - battle.setPlayer('p1', {team: [{species: 'Coalossal', ability: 'steamengine', moves: ['tarshot', 'flamecharge']}]}); - battle.setPlayer('p2', {team: [{species: 'Snorlax', ability: 'thickfat', item: 'occaberry', moves: ['rest']}]}); - battle.makeChoices('move tarshot', 'move rest'); - battle.makeChoices('move flamecharge', 'move rest'); - assert.equal(battle.p2.active[0].item, ''); + it(`should add a Fire-type weakness, not make the target 2x weaker to Fire`, function () { + battle = common.createBattle([[ + {species: 'wynaut', moves: ['tarshot', 'flamecharge']}, + ], [ + {species: 'ferrothorn', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move tarshot', 'auto'); + battle.makeChoices('move flamecharge', 'auto'); + const ferro = battle.p2.active[0]; + const damage = ferro.maxhp - ferro.hp; + assert.bounded(damage, [88, 104]); + }); + + it(`should not remove the Tar Shot status when a Pokemon Terastallizes`, function () { + battle = common.createBattle([[ + {species: 'wynaut', moves: ['tarshot', 'flamecharge']}, + ], [ + {species: 'snorlax', item: 'weaknesspolicy', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move tarshot', 'auto'); + battle.makeChoices('move flamecharge', 'move sleeptalk terastallize'); + const lax = battle.p2.active[0]; + assert.statStage(lax, 'atk', 2, `Weakness Policy should have activated`); }); - it('should not make the target over 2x weaker to fire', function () { - battle = common.createBattle(); - battle.setPlayer('p1', {team: [{species: 'Coalossal', ability: 'steamengine', item: 'occaberry', moves: ['tarshot', 'flamecharge']}]}); - battle.setPlayer('p2', {team: [{species: 'Ferrothorn', ability: 'ironbarbs', moves: ['rest', 'trick']}]}); - battle.makeChoices('move flamecharge', 'move trick'); - assert.notEqual(battle.p1.active[0].hp, 0); - // Ferrothorn now has the Occa Berry, cancelling out Tar Shot - battle.makeChoices('move tarshot', 'move rest'); - battle.makeChoices('move flamecharge', 'move rest'); - assert.notEqual(battle.p1.active[0].hp, 0); + it(`should prevent a Terastallized Pokemon from being afflicted with the Tar Shot status`, function () { + battle = common.createBattle([[ + {species: 'wynaut', moves: ['tarshot', 'flamecharge']}, + ], [ + {species: 'snorlax', item: 'weaknesspolicy', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move tarshot', 'move sleeptalk terastallize'); + battle.makeChoices('move flamecharge', 'auto'); + const lax = battle.p2.active[0]; + assert.statStage(lax, 'atk', 0, `Weakness Policy should not have activated`); + assert.statStage(lax, 'spe', -1, `Snorlax's Speed should have been lowered`); }); }); diff --git a/test/sim/moves/terablast.js b/test/sim/moves/terablast.js new file mode 100644 index 000000000000..9bb48d7384f9 --- /dev/null +++ b/test/sim/moves/terablast.js @@ -0,0 +1,63 @@ +'use strict'; + +const assert = require('./../../assert'); +const common = require('./../../common'); + +describe('Tera Blast', function () { + it(`should be a special attack when base stats are tied`, function () { + const battle = common.createBattle([[ + // Regidrago has equal base attack and special attack stats. + {species: 'regidrago', ability: 'dragonsmaw', moves: ['terablast']}, + ], [ + {species: 'regirock', ability: 'clearbody', moves: ['protect']}, + ]]); + battle.makeChoices('move terablast terastallize', 'move protect'); + + assert.equal(battle.p1.pokemon[0].lastMove.category, 'Special'); + }); + + it(`should be a physical attack when terastallized with higher attack stat`, function () { + const battle = common.createBattle([[ + // Regidrago has equal base attack and special attack stats. + {species: 'regidrago', ability: 'dragonsmaw', moves: ['terablast', 'dragondance']}, + ], [ + {species: 'regirock', ability: 'clearbody', moves: ['protect']}, + ]]); + // Dragon Dance boosts Regidrago's attack stat. + battle.makeChoices('move dragondance', 'move protect'); + battle.makeChoices('move terablast terastallize', 'move protect'); + + assert.equal(battle.p1.pokemon[0].lastMove.category, 'Physical'); + }); + + it(`should be a special attack when not terastallized, even if attack stat is higher`, function () { + const battle = common.createBattle([[ + // Regidrago has equal base attack and special attack stats. + {species: 'regidrago', ability: 'dragonsmaw', moves: ['terablast', 'dragondance']}, + ], [ + {species: 'regirock', ability: 'clearbody', moves: ['protect']}, + ]]); + // Dragon Dance boosts Regidrago's attack stat. + battle.makeChoices('move dragondance', 'move protect'); + // However, Regidrago is not terastallized when using Tera Blast. + battle.makeChoices('move terablast', 'move protect'); + + assert.equal(battle.p1.pokemon[0].lastMove.category, 'Special'); + }); + + // Skipped until https://github.com/smogon/pokemon-showdown/issues/9381 is fixed. + it.skip(`should be a special attack when terastallized even if target ignores stat changes`, function () { + const battle = common.createBattle([[ + // Regidrago has equal base attack and special attack stats. + {species: 'regidrago', ability: 'dragonsmaw', moves: ['terablast', 'dragondance']}, + ], [ + // Dondozo's Unaware should not affect Tera Blast's category. + {species: 'dondozo', ability: 'unaware', moves: ['splash']}, + ]]); + // Dragon Dance boosts Regidrago's attack stat. + battle.makeChoices('move dragondance', 'move splash'); + battle.makeChoices('move terablast terastallize', 'move splash'); + + assert.equal(battle.p1.pokemon[0].lastMove.category, 'Physical'); + }); +}); diff --git a/test/sim/moves/terastarstorm.js b/test/sim/moves/terastarstorm.js new file mode 100644 index 000000000000..b281337c4cfe --- /dev/null +++ b/test/sim/moves/terastarstorm.js @@ -0,0 +1,55 @@ +'use strict'; + +const assert = require('assert').strict; +const common = require('./../../common'); + +let battle; + +describe(`Tera Starstorm`, function () { + afterEach(function () { + battle.destroy(); + }); + + it(`should be a physical attack when terastallized with higher attack stat and the user is Terapagos-Stellar`, function () { + battle = common.createBattle([[ + {species: 'terapagos', evs: {atk: 252}, ability: 'terashift', moves: ['terastarstorm'], teraType: 'Stellar'}, + ], [ + {species: 'regirock', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move terastarstorm terastallize', 'auto'); + assert.equal(battle.p1.pokemon[0].lastMove.category, 'Physical'); + }); + + it(`should be a spread move when the user is Terapagos-Stellar`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'terapagos', ability: 'terashift', moves: ['terastarstorm'], teraType: 'Stellar'}, + {species: 'pichu', moves: ['sleeptalk']}, + ], [ + {species: 'regirock', moves: ['sleeptalk']}, + {species: 'registeel', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move terastarstorm -2 terastallize, move sleeptalk', 'auto'); + + assert.fullHP(battle.p1.active[1]); + assert.false.fullHP(battle.p2.active[0]); + assert.false.fullHP(battle.p2.active[1]); + }); + + it(`should only get its unique properties while the user is Terapagos-Stellar`, function () { + battle = common.createBattle({gameType: 'doubles'}, [[ + {species: 'incineroar', moves: ['terastarstorm'], teraType: 'Stellar'}, + {species: 'pichu', moves: ['sleeptalk']}, + ], [ + {species: 'mismagius', moves: ['sleeptalk']}, + {species: 'registeel', moves: ['sleeptalk']}, + ]]); + + battle.makeChoices('move terastarstorm 1 terastallize, move sleeptalk', 'auto'); + + assert.fullHP(battle.p2.active[0]); + assert.fullHP(battle.p2.active[1]); + assert.equal(battle.p1.pokemon[0].lastMove.category, 'Special'); + }); +}); diff --git a/test/sim/moves/transform.js b/test/sim/moves/transform.js index 4c71b95466e9..dc1fa9a451a0 100644 --- a/test/sim/moves/transform.js +++ b/test/sim/moves/transform.js @@ -185,6 +185,60 @@ describe('Transform', function () { battle.makeChoices('move transform terastallize', 'move sleeptalk terastallize'); assert.equal(battle.p1.active[0].getTypes().join('/'), 'Fire'); }); + + it("should fail against Ogerpon when the user is Terastallized", function () { + battle = common.createBattle([[ + {species: "Ditto", ability: "limber", moves: ['transform'], teraType: "Fire"}, + ], [ + {species: "Ogerpon", ability: "defiant", moves: ['sleeptalk'], teraType: "Grass"}, + ]]); + battle.makeChoices('move transform terastallize', 'move sleeptalk'); + assert.false(battle.p1.active[0].transformed); + }); + + it("should fail against Ogerpon when Ogerpon is Terastallized", function () { + battle = common.createBattle([[ + {species: "Ditto", ability: "limber", moves: ['transform'], teraType: "Fire"}, + ], [ + {species: "Ogerpon", ability: "defiant", moves: ['sleeptalk'], teraType: "Grass"}, + ]]); + battle.makeChoices('move transform', 'move sleeptalk terastallize'); + assert.false(battle.p1.active[0].transformed); + }); + + it("should prevent Pokemon transformed into Ogerpon from Terastallizing", function () { + battle = common.createBattle([[ + {species: "Ditto", ability: "limber", moves: ['transform'], teraType: "Fire"}, + ], [ + {species: "Ogerpon", ability: "defiant", moves: ['sleeptalk'], teraType: "Grass"}, + ]]); + battle.makeChoices(); + assert.cantMove(() => battle.choose('p1', 'move sleeptalk terastallize')); + }); + + it("should not allow Pokemon transformed into Ogerpon to Terastallize later if they couldn't before transforming", function () { + battle = common.createBattle({formatid: 'gen9customgame@@@!teampreview,terastalclause'}, [[ + {species: "Ditto", ability: "limber", moves: ['transform'], teraType: "Fire"}, + {species: "Shedinja", ability: "wonderguard", moves: ['transform'], teraType: "Fire"}, + ], [ + {species: "Ogerpon", ability: "defiant", moves: ['spikes'], teraType: "Grass"}, + ]]); + battle.makeChoices(); + battle.makeChoices('switch 2', 'default'); + battle.makeChoices(); + assert.false(battle.p1.active[0].transformed); + assert.cantMove(() => battle.choose('p1', 'move transform terastallize')); + }); + + it(`should not work if the user is Tera Stellar`, function () { + battle = common.createBattle([[ + {species: 'Ditto', ability: 'limber', moves: ['transform'], teraType: 'Stellar'}, + ], [ + {species: 'Wynaut', moves: ['sleeptalk']}, + ]]); + battle.makeChoices('move transform terastallize', 'auto'); + assert.false(battle.p1.active[0].transformed); + }); }); describe('Transform [Gen 5]', function () { diff --git a/test/sim/moves/wish.js b/test/sim/moves/wish.js index 9cbc79895284..9427293bb2e3 100644 --- a/test/sim/moves/wish.js +++ b/test/sim/moves/wish.js @@ -42,4 +42,22 @@ describe('Wish', function () { battle.makeChoices('auto', 'move thousandarrows'); assert.fullHP(battle.p1.active[0]); }); + + it(`should never resolve when used on a turn that is a multiple of 256n - 1`, function () { + battle = common.createBattle([[ + {species: 'Wynaut', moves: ['sleeptalk', 'wish', 'doubleedge']}, + ], [ + {species: 'Stakataka', moves: ['sleeptalk']}, + ]]); + + battle.turn = 255; // Showdown turn is +1 from what the games are; this would ordinarily be 254 + battle.makeChoices('move doubleedge', 'auto'); + battle.makeChoices('move wish', 'auto'); + for (let i = 0; i < 5; i++) battle.makeChoices(); + battle.makeChoices('move wish', 'auto'); + battle.makeChoices(); + + const wynaut = battle.p1.active[0]; + assert.false.fullHP(wynaut, `Wish should have never resolved.`); + }); }); diff --git a/test/sim/team-validator/basic.js b/test/sim/team-validator/basic.js index e3e4d0a0fa49..a666e511b599 100644 --- a/test/sim/team-validator/basic.js +++ b/test/sim/team-validator/basic.js @@ -81,9 +81,9 @@ describe('Team Validator', function () { const team = [ {species: 'xerneas', ability: 'fairyaura', moves: ['snore'], ivs: {hp: 0, atk: 0, def: 0, spa: 0}, evs: {hp: 1}}, ]; - assert.false.legalTeam(team, 'gen8anythinggoes'); + assert.false.legalTeam(team, 'gen9anythinggoes'); - assert.legalTeam(team, 'gen8purehackmons'); + assert.legalTeam(team, 'gen9purehackmons'); }); it('should reject non-existent natures', function () { @@ -204,9 +204,9 @@ describe('Team Validator', function () { const team = [ {species: 'corsola', ability: 'hustle', moves: ['snore', 'snore'], evs: {hp: 1}}, ]; - assert.false.legalTeam(team, 'gen8anythinggoes'); + assert.false.legalTeam(team, 'gen9anythinggoes'); - assert.legalTeam(team, 'gen8purehackmons'); + assert.legalTeam(team, 'gen9purehackmons'); }); it('should accept VC moves only with Hidden ability and correct IVs', function () { @@ -243,4 +243,11 @@ describe('Team Validator', function () { ]; assert.legalTeam(team, 'gen8ou'); }); + + it(`should disallow past gen only moves in Gen 9`, function () { + const team = [ + {species: 'oricorio', ability: 'dancer', moves: ['roleplay'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9ou'); + }); }); diff --git a/test/sim/team-validator/breeding.js b/test/sim/team-validator/breeding.js index 630e583fba62..206914fdf22c 100644 --- a/test/sim/team-validator/breeding.js +++ b/test/sim/team-validator/breeding.js @@ -163,17 +163,99 @@ describe('Team Validator', function () { assert.false.legalTeam(team, 'gen5ou'); }); - it.skip('should reject Volbeat with both Lunge and Dizzy Punch in Gen 7', function () { + it("should disallow low-level female-only Pokemon with illegal (level up) egg moves/egg move combinations", function () { team = [ - {species: 'volbeat', ability: 'swarm', moves: ['lunge', 'dizzypunch'], evs: {hp: 1}}, + {species: 'tinkatink', level: 5, ability: 'moldbreaker', moves: ['brutalswing'], evs: {hp: 1}}, ]; - assert.false.legalTeam(team, 'gen7anythinggoes'); + assert.false.legalTeam(team, 'gen9lc'); + + team = [ + {species: 'tinkatink', level: 5, ability: 'moldbreaker', moves: ['covet', 'fakeout'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9lc'); + }); + + it("should disallow illegal (level up) egg move combinations involving moves that can't be tradebacked", function () { + team = [ + {species: 'chansey', level: 5, moves: ['healbell', 'softboiled'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen2ou'); + }); + + it("should disallow illegal (level up) egg moves/egg move combinations involving Pomeg glitch and Gen 4 abilities", function () { + team = [ + {species: 'smoochum', level: 5, ability: 'forewarn', moves: ['powdersnow'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen4lc'); + }); + + it("should allow previously illegal level up egg moves in Gen 7", function () { + team = [ + {species: 'smoochum', level: 5, ability: 'hydration', moves: ['powdersnow'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen7lc'); + }); + + it("should allow Pomeg glitch with event egg moves", function () { + team = [ + {species: 'zigzagoon', level: 5, ability: 'pickup', moves: ['bellydrum', 'extremespeed'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen3ou'); + }); + + it("should disallow illegal egg move combinations containing past gen universal moves", function () { + team = [ + {species: 'salamence', ability: 'intimidate', moves: ['defensecurl', 'thrash', 'dragonrage', 'dragonrush'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen5ou'); }); - it.skip('should accept this chainbreed on Toxicroak', function () { + it('should allow complex chainbred sets', function () { team = [ {species: 'toxicroak', ability: 'dryskin', moves: ['bulletpunch', 'crosschop', 'fakeout'], evs: {hp: 4}}, ]; assert.legalTeam(team, 'gen5ou'); + + team = [ + {species: 'corphish', ability: 'hypercutter', moves: ['dragondance', 'metalclaw'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen4ou'); + }); + + it('should reject Volbeat with both Lunge and Dizzy Punch in Gen 7', function () { + team = [ + {species: 'volbeat', ability: 'swarm', moves: ['lunge', 'dizzypunch'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen7anythinggoes'); + }); + + it('should allow level 5 Indeedee-M with Disarming Voice', function () { + team = [ + {species: 'indeedee', level: 5, ability: 'innerfocus', moves: ['disarmingvoice'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen8ou'); + }); + + it('should allow egg moves on event formes in Gen 9', function () { + team = [ + {species: 'ursalunabloodmoon', ability: 'mindseye', moves: ['yawn', 'bellydrum'], evs: {hp: 1}}, + {species: 'greninjabond', ability: 'battlebond', moves: ['counter', 'switcheroo'], evs: {hp: 1}}, + {species: 'pikachualola', ability: 'static', moves: ['wish', 'fakeout'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen9anythinggoes'); + }); + + it('should not allow egg moves on event formes before Gen 9', function () { + team = [ + {species: 'greninjabond', ability: 'battlebond', moves: ['toxicspikes'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen7anythinggoes'); + }); + + it('should not allow egg Pokemon below level 5 in Gens 2-3', function () { + team = [ + {species: 'totodile', level: 1, ability: 'torrent', moves: ['ancientpower']}, + ]; + assert.false.legalTeam(team, 'gen3ou'); }); }); diff --git a/test/sim/team-validator/custom-rules.js b/test/sim/team-validator/custom-rules.js index 25618a39c617..0645d8bf35d3 100644 --- a/test/sim/team-validator/custom-rules.js +++ b/test/sim/team-validator/custom-rules.js @@ -29,12 +29,12 @@ describe("Custom Rules", function () { assert.false.legalTeam(team, 'gen7anythinggoes@@@-Pikachu'); team = [ - {species: 'greninja', ability: 'battlebond', moves: ['surf'], evs: {hp: 1}}, + {species: 'greninjaash', ability: 'battlebond', moves: ['surf'], evs: {hp: 1}}, ]; - assert.false.legalTeam(team, 'gen7anythinggoes@@@-Greninja-Ash'); + assert.false.legalTeam(team, 'gen7anythinggoes@@@-Greninja-Bond'); team = [ - {species: 'greninja', ability: 'battlebond', moves: ['surf'], evs: {hp: 1}}, + {species: 'greninjabond', ability: 'battlebond', moves: ['surf'], evs: {hp: 1}}, ]; assert.legalTeam(team, 'gen7anythinggoes@@@!Obtainable Formes,-Greninja-Ash'); }); diff --git a/test/sim/team-validator/events.js b/test/sim/team-validator/events.js index e473a8ca3447..39ca3486c945 100644 --- a/test/sim/team-validator/events.js +++ b/test/sim/team-validator/events.js @@ -149,4 +149,19 @@ describe('Team Validator', function () { ]; assert.false.legalTeam(team, 'gen7anythinggoes'); }); + + it('should allow evolved Pokemon obtainable from events at lower levels than they could otherwise be obtained', function () { + let team = [ + {species: 'dragonite', ability: 'innerfocus', moves: ['dracometeor'], nature: 'Mild', evs: {hp: 1}, level: 50}, + {species: 'magmar', ability: 'flamebody', moves: ['ember'], evs: {hp: 1}, level: 10}, + {species: 'electivire', ability: 'motordrive', moves: ['quickattack'], evs: {hp: 1}, level: 10}, + ]; + assert.legalTeam(team, 'gen4ou'); + + team = [ + {species: 'mandibuzz', level: 25, ability: 'weakarmor', moves: ['pluck'], evs: {hp: 1}}, + {species: 'volcarona', level: 35, ability: 'flamebody', moves: ['leechlife'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen5ou'); + }); }); diff --git a/test/sim/team-validator/formes.js b/test/sim/team-validator/formes.js index 6c6c063b9bdf..adced61d592b 100644 --- a/test/sim/team-validator/formes.js +++ b/test/sim/team-validator/formes.js @@ -85,6 +85,19 @@ describe('Team Validator', function () { {species: 'kyurem-white', ability: 'turboblaze', moves: ['scaryface'], evs: {hp: 1}}, ]; assert.false.legalTeam(team, 'gen7anythinggoes'); + + // Hoopa's Hyperspace moves are form-specific in Generation 9 + team = [ + {species: 'hoopa-confined', ability: 'magician', moves: ['hyperspacefury'], evs: {hp: 1}}, + {species: 'hoopa-unbound', ability: 'magician', moves: ['hyperspacehole'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9anythinggoes'); + + team = [ + {species: 'hoopa-confined', ability: 'magician', moves: ['hyperspacefury'], evs: {hp: 1}}, + {species: 'hoopa-unbound', ability: 'magician', moves: ['hyperspacehole'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen7anythinggoes'); }); // Zamazenta is unreleased currently @@ -99,4 +112,16 @@ describe('Team Validator', function () { ]; assert.false.legalTeam(team, 'gen9almostanyability'); }); + + it('should validate Unown formes in Gen 2 based on DVs', () => { + team = [ + {species: 'unowng', moves: ['hiddenpower'], ivs: {hp: 12, atk: 20, def: 18, spa: 28, spd: 28, spe: 2}}, + ]; + assert.legalTeam(team, 'gen2ou'); + + team = [ + {species: 'unown', moves: ['hiddenpower'], ivs: {hp: 0, atk: 4, def: 4, spa: 4, spd: 4, spe: 4}}, + ]; + assert.false.legalTeam(team, 'gen2ou'); + }); }); diff --git a/test/sim/team-validator/misc.js b/test/sim/team-validator/misc.js index c6fe26377273..10c1ddf81bf5 100644 --- a/test/sim/team-validator/misc.js +++ b/test/sim/team-validator/misc.js @@ -36,7 +36,7 @@ describe('Team Validator', function () { assert.false.legalTeam(team, 'gen8anythinggoes'); team = [ - {species: 'raichualola', ability: 'surgesurfer', moves: ['sing'], evs: {hp: 1}}, + {species: 'raichualola', ability: 'surgesurfer', moves: ['sing', 'fakeout'], evs: {hp: 1}}, ]; assert.false.legalTeam(team, 'gen8anythinggoes@@@minsourcegen=8'); @@ -44,6 +44,12 @@ describe('Team Validator', function () { {species: 'exeggutoralola', ability: 'frisk', moves: ['psybeam'], evs: {hp: 1}}, ]; assert.false.legalTeam(team, 'gen8anythinggoes'); + + // This works in Gen 9+ because of Mirror Herb + team = [ + {species: 'raichualola', ability: 'surgesurfer', moves: ['fakeout'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen9anythinggoes@@@minsourcegen=9'); }); it('should prevent Pokemon that don\'t evolve via level-up and evolve from a Pokemon that does evolve via level-up from being underleveled.', function () { @@ -51,7 +57,7 @@ describe('Team Validator', function () { {species: 'nidoking', level: 1, ability: 'sheerforce', moves: ['earthpower'], evs: {hp: 1}}, {species: 'mamoswine', level: 1, ability: 'oblivious', moves: ['earthquake'], evs: {hp: 1}}, ]; - assert.false.legalTeam(team, 'gen8anythinggoes'); + assert.false.legalTeam(team, 'gen7anythinggoes'); }); it('should require Pokémon transferred from Gens 1 and 2 to be above Level 2', () => { @@ -91,4 +97,120 @@ describe('Team Validator', function () { ]; assert.false.legalTeam(team, 'gen8cap'); }); + + it("should prevent Pokemon from having a Gen 3 tutor move and a Gen 4 ability together without evolving", function () { + let team = [ + {species: 'hitmonchan', ability: 'ironfist', moves: ['dynamicpunch'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen4ou'); + + // Clefairy can learn Softboiled and evolve into Magic Guard Clefable + team = [ + {species: 'clefable', ability: 'magicguard', moves: ['softboiled'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen4ou'); + }); + + // Based on research by Anubis: https://www.smogon.com/forums/posts/9713378 + describe(`Hackmons formes`, function () { + it(`should reject battle-only formes in Gen 9, even in Hackmons`, function () { + const team = [ + {species: 'palafinhero', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'zamazentacrowned', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9purehackmons'); + }); + + it(`should also reject battle-only dexited formes in Gen 9 Hackmons`, function () { + const team = [ + {species: 'zygardecomplete', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'darmanitangalarzen', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'eternatuseternamax', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9purehackmons'); + }); + + it(`should not allow Xerneas with a hacked Ability in Gen 9 Hackmons`, function () { + const team = [ + {species: 'xerneasneutral', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9purehackmons'); + }); + + it(`should allow various other hacked formes in Gen 9 Hackmons`, function () { + const team = [ + {species: 'giratinaorigin', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'calyrexshadow', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'greninjaash', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'gengarmega', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'groudonprimal', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'necrozmaultra', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen9purehackmons'); + }); + + it(`should not allow old gen-exclusive formes in Gen 9 Hackmons`, function () { + let team = [ + {species: 'pikachucosplay', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9purehackmons'); + + team = [ + {species: 'pichuspikyeared', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9purehackmons'); + + team = [ + {species: 'pokestarsmeargle', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9purehackmons'); + }); + + it(`should not allow CAP Pokemon in Gen 9 Hackmons`, function () { + const team = [ + {species: 'hemogoblin', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen9purehackmons'); + }); + + it(`should allow battle-only formes in Hackmons before Gen 9`, function () { + const team = [ + {species: 'zamazentacrowned', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + {species: 'zygardecomplete', ability: 'steadfast', moves: ['watergun'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen8customgame@@@-Nonexistent'); + }); + }); + + it('should allow various (underleveled) from Pokemon GO', function () { + const team = [ + {species: 'mewtwo', level: 20, ability: 'pressure', moves: ['agility'], evs: {hp: 1}, ivs: {hp: 1, atk: 1, def: 1, spa: 1, spd: 1}}, + {species: 'donphan', level: 1, ability: 'sturdy', moves: ['endeavor']}, + {species: 'mew', shiny: true, level: 15, ability: 'synchronize', moves: ['pound'], evs: {hp: 1}}, + {species: 'uxie', level: 1, ability: 'levitate', moves: ['acrobatics']}, + {species: 'zacian', ability: 'intrepidsword', moves: ['agility'], evs: {hp: 1}}, + {species: 'volcarona', level: 2, ability: 'flamebody', moves: ['acrobatics'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen9ubers'); + }); + + it('should disallow Pokemon from Pokemon GO knowing incompatible moves', function () { + const team = [ + {species: 'mew', shiny: true, level: 15, ability: 'synchronize', moves: ['aircutter'], evs: {hp: 1}, ivs: {hp: 21, atk: 31, def: 21, spa: 21, spd: 31, spe: 0}}, + ]; + assert.false.legalTeam(team, 'gen8ou'); + }); + + it('should check for legal combinations of prevo/evo-exclusive moves', function () { + let team = [ + {species: 'slowking', ability: 'oblivious', moves: ['counter', 'slackoff'], evs: {hp: 1}}, + ]; + assert.false.legalTeam(team, 'gen7ou'); + + team = [ + {species: 'incineroar', ability: 'blaze', moves: ['knockoff', 'partingshot'], evs: {hp: 1}}, + {species: 'shelloseast', ability: 'stickyhold', moves: ['infestation', 'stringshot'], evs: {hp: 1}}, + ]; + assert.legalTeam(team, 'gen8ou'); + }); }); diff --git a/tools/set-import/importer.ts b/tools/set-import/importer.ts index c73d331b9aae..b9619962d978 100644 --- a/tools/set-import/importer.ts +++ b/tools/set-import/importer.ts @@ -43,16 +43,19 @@ type GenerationNum = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; export const TIERS = new Set([ 'ubers', 'ou', 'uu', 'ru', 'nu', 'pu', 'zu', 'lc', 'cap', 'nationaldex', 'doublesou', 'battlespotsingles', 'battlespotdoubles', 'battlestadiumsingles', - 'vgc2016', 'vgc2017', 'vgc2018', 'vgc2019ultraseries', 'vgc2020', '1v1', - 'anythinggoes', 'nationaldexag', 'balancedhackmons', 'letsgoou', 'monotype', - 'purehackmons', + // UGH + 'battlestadiumsinglesseries2', 'battlestadiumsinglesregulationc', + // + 'vgc2016', 'vgc2017', 'vgc2018', 'vgc2019ultraseries', 'vgc2020', 'vgc2023regulatione', 'vgc', '1v1', + 'anythinggoes', 'nationaldexag', 'almostanyability', 'balancedhackmons', + 'letsgoou', 'monotype', 'purehackmons', 'nationaldexmonotype', ]); const FORMATS = new Map(); const VALIDATORS = new Map(); for (let gen = 1; gen <= 9; gen++) { for (const tier of TIERS) { const format = Dex.formats.get(`gen${gen}${tier}`); - if (format.exists) { + if (format.effectType === 'Format') { FORMATS.set(format.id, {gen: gen as GenerationNum, format}); VALIDATORS.set(format.id, new TeamValidator(format)); } @@ -146,14 +149,16 @@ function toGen(dex: ModdedDex, name: string): GenerationNum | undefined { const pokemon = dex.species.get(name); if (pokemon.isNonstandard === 'LGPE') return 7; if (!pokemon.exists || (pokemon.isNonstandard && pokemon.isNonstandard !== 'CAP')) return undefined; + // CAP mons should have a gen property + if (pokemon.gen) return pokemon.gen as GenerationNum; const n = pokemon.num; if (n > 905) return 9; if (n > 810) return 8; - if (n > 721 || (n <= -23 && n >= -28) || (n <= -120 && n >= -126)) return 7; - if (n > 649 || (n <= -8 && n >= -22) || (n <= -106 && n >= -110)) return 6; - if (n > 493 || (n <= -12 && n >= -17) || (n <= -111 && n >= -115)) return 5; - if (n > 386 || (n <= -1 && n >= -11) || (n <= -101 && n >= -104) || (n <= -116 && n >= -119)) return 4; + if (n > 721) return 7; + if (n > 649) return 6; + if (n > 493) return 5; + if (n > 386) return 4; if (n > 251) return 3; if (n > 151) return 2; if (n > 0) return 1; @@ -397,6 +402,9 @@ const SMOGON = { vgc17: 'vgc2017', vgc18: 'vgc2018', vgc19: 'vgc2019ultraseries', + vgc24regulatione: 'vgc2023regulatione', + // bssseries1: 'battlestadiumsinglesseries1', // ? + bssseries2: 'battlestadiumsinglesseries2', } as unknown as {[id: string]: ID}; const getAnalysis = retrying(async (u: string) => { @@ -423,7 +431,11 @@ async function getAnalysesByFormat(pokemon: string, gen: GenerationNum) { const analysesByFormat = new Map(); for (const [tier, analyses] of analysesByTier.entries()) { - const t = toID(tier); + let t = toID(tier); + // Dumb hack, need to talk to BSS people + if (gen === 9 && t === 'battlestadiumsingles') { + t = 'battlestadiumsinglesregulationc' as ID; + } const f = FORMATS.get(`gen${gen}${SMOGON[t] || t}` as ID); if (f) analysesByFormat.set(f.format, analyses); } diff --git a/tools/set-import/index.js b/tools/set-import/index.js index a7fedda644c1..f61a16ea74cc 100755 --- a/tools/set-import/index.js +++ b/tools/set-import/index.js @@ -94,9 +94,9 @@ const SETS = path.resolve(__dirname, 'sets'); "name": "@smogon/sets", "version": version, "description": "Set data imported from Smogon.com and used on Pokémon Showdown", - "main": "build/index.js", - "unpkg": "build/index.js", - "types": "build/index.d.ts", + "main": "index.js", + "unpkg": "index.js", + "types": "index.d.ts", "repository": "github:smogon/sets", "publishConfig": { "access": "public", diff --git a/translations/dutch/main.ts b/translations/dutch/main.ts index b158f2506e21..04152e4c2f35 100644 --- a/translations/dutch/main.ts +++ b/translations/dutch/main.ts @@ -19,7 +19,7 @@ export const translations: Translations = { "% Global Driver - The above, and they can also lock users and check for alts": "% Global driver - Het bovenstaande en ze kunnen gebruikers locken en alts (nevenaccounts) inzien.", "@ Global Moderator - The above, and they can globally ban users": "@ Global moderator - Het bovenstaande en ze kunnen gebruikers uit de gehele server verbannen.", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* Global bot - Hetzelfde als een moderator maar dit symbool maakt duidelijk dat deze gebruiker een bot is.", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& Global administrator - Zij kunnen alles doen, zoals veranderen wat hier staat en gebruikers globaal promoveren.", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ Global administrator - Zij kunnen alles doen, zoals veranderen wat hier staat en gebruikers globaal promoveren.", "Room ranks": "Roomrangen", "^ Prize Winner - They don't have any powers beyond a symbol.": "", @@ -42,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "COMMANDO'S VOOR MODERATORS", "ADMIN COMMANDS": "COMMANDO'S VOOR ADMINS", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(vervang / door ! om het commando uit te zenden. Uitzenden vereist: + % @ # &)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(vervang / door ! om het commando uit te zenden. Uitzenden vereist: + % @ # ~)", "Room punishments:": "Roomstraffen:", "warn - Displays a popup with the rules.": "waarschuwing - Laat een popup zien met de regels.", @@ -151,27 +151,27 @@ export const translations: Translations = { "You are already blocking challenges!": "Je blokkeert uitdagingen al!", "You are already available for challenges!": "Je bent al beschikbaar voor uitdagingen!", "You are available for challenges from now on.": "Je bent weer beschikbaar voor uitdagingen.", - "You are now blocking challenges, except from staff and ${rank}.": "", - "You are now blocking challenges, except from staff and ${status} users.": "", - - "Staff FAQ": "", - "You cannot broadcast all FAQs at once.": "", - "A user is autoconfirmed when they have won at least one rated battle and have been registered for one week or longer. In order to prevent spamming and trolling, most chatrooms only allow autoconfirmed users to chat. If you are not autoconfirmed, you can politely PM a staff member (staff have %, @, or # in front of their username) in the room you would like to chat and ask them to disable modchat. However, staff are not obligated to disable modchat.": "", - "How the ladder works": "", - "Tiering FAQ": "", - "Badge FAQ": "", - "Common misconceptions about our RNG": "", - "To join a room tournament, click the Join! button or type the command /tour join in the room's chat. You can check if your team is legal for the tournament by clicking the Validate button once you've joined and selected a team. To battle your opponent in the tournament, click the Ready! button when it appears. There are two different types of room tournaments: elimination (if a user loses more than a certain number of times, they are eliminated) and round robin (all users play against each other, and the user with the most wins is the winner).": "", - "Frequently Asked Questions": "", + "You are now blocking challenges, except from staff and ${rank}.": "Je blokkeert nu uitdagingen, behalve van staff en ${rank}.", + "You are now blocking challenges, except from staff and ${status} users.": "Je blokkeert nu uitdagingen, behalve van staff en ${status} gebruikers.", + + "Staff FAQ": "Staff FAQ", + "You cannot broadcast all FAQs at once.": "Je kunt niet alle FAQ's tegelijk uitzenden.", + "A user is autoconfirmed when they have won at least one rated battle and have been registered for one week or longer. In order to prevent spamming and trolling, most chatrooms only allow autoconfirmed users to chat. If you are not autoconfirmed, you can politely PM a staff member (staff have %, @, or # in front of their username) in the room you would like to chat and ask them to disable modchat. However, staff are not obligated to disable modchat.": "Een gebruiker is autoconfirmed wanneer hij minstens één beoordeeld gevecht heeft gewonnen en één week of langer is geregistreerd. Om spammen en trollen te voorkomen, laten de meeste chatrooms alleen autoconfirmed gebruikers toe om te chatten. Als je niet autoconfirmed bent, kun je beleefd een PM sturen naar een stafflid (staff hebben %, @, of # voor hun gebruikersnaam) in de room waar je wilt chatten en vragen om modchat uit te schakelen. Echter, staff zijn niet verplicht om modchat uit te schakelen.", + "How the ladder works": "Hoe de ladder werkt", + "Tiering FAQ": "Tiering FAQ", + "Badge FAQ": "Badge FAQ", + "Common misconceptions about our RNG": "Veelvoorkomende misvattingen over onze RNG", + "To join a room tournament, click the Join! button or type the command /tour join in the room's chat. You can check if your team is legal for the tournament by clicking the Validate button once you've joined and selected a team. To battle your opponent in the tournament, click the Ready! button when it appears. There are two different types of room tournaments: elimination (if a user loses more than a certain number of times, they are eliminated) and round robin (all users play against each other, and the user with the most wins is the winner).": "Om deel te nemen aan een room toernooi, klik op de Join! knop of typ het commando /tour join in de chat van de room. Je kunt controleren of je team legaal is voor het toernooi door op de Validate knop te klikken zodra je je hebt aangemeld en een team hebt geselecteerd. Om te vechten tegen je tegenstander in het toernooi, klik op de Ready! knop wanneer het verschijnt. Er zijn twee verschillende soorten room toernooien: eliminatie (als een gebruiker meer dan een bepaald aantal keren verliest, worden ze geëlimineerd) en round robin (alle gebruikers spelen tegen elkaar, en de gebruiker met de meeste overwinningen is de winnaar).", + "Frequently Asked Questions": "Veelgestelde Vragen", "pages/faq": "pages/faq", "pages/ladderhelp": "pages/ladderhelp", "pages/rng": "pages/rng", "pages/staff": "pages/staff", - "- We log PMs so you can report them - staff can't look at them without permission unless there's a law enforcement reason.": "", - "- We log IPs to enforce bans and mutes.": "", - "- We use cookies to save your login info and teams, and for Google Analytics and AdSense.": "", - '- For more information, you can read our full privacy policy.': '', + "- We log PMs so you can report them - staff can't look at them without permission unless there's a law enforcement reason.": "- We loggen PMs zodat je ze kunt rapporteren - staff kan ze niet bekijken zonder toestemming, tenzij er een wettelijke reden voor is.", + "- We log IPs to enforce bans and mutes.": "- We loggen IP-adressen om bans en mutes te handhaven.", + "- We use cookies to save your login info and teams, and for Google Analytics and AdSense.": "- We gebruiken cookies om je login info en teams op te slaan, en voor Google Analytics en AdSense.", + '- For more information, you can read our full privacy policy.': '- Voor meer informatie kun je onze volledige privacybeleid lezen.', }, }; diff --git a/translations/english/main.ts b/translations/english/main.ts index 9eadbcd5ed9c..a98056aeb9ef 100644 --- a/translations/english/main.ts +++ b/translations/english/main.ts @@ -19,7 +19,7 @@ export const translations: Translations = { "% Global Driver - The above, and they can also lock users and check for alts": "", "@ Global Moderator - The above, and they can globally ban users": "", "* Global Bot - An automated account that can use HTML anywhere": "", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "", "Room ranks": "", "^ Prize Winner - They don't have any powers beyond a symbol.": "", @@ -42,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "", "ADMIN COMMANDS": "", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "", "Room punishments:": "", "warn - Displays a popup with the rules.": "", diff --git a/translations/french/helptickets.ts b/translations/french/helptickets.ts new file mode 100644 index 000000000000..04ca9e1c90bf --- /dev/null +++ b/translations/french/helptickets.ts @@ -0,0 +1,166 @@ +import type {Translations} from '../../server/chat'; + +export const translations: Translations = { + strings: { + "Hello! The global staff team would be happy to help you, but you need to explain what's going on first.": "Bonjour ! Le global staff aimerait t'aider, mais nous aurions besoin que tu nous expliques ton problème dans un premier lieu.", + "Please post the information I requested above so a global staff member can come to help.": "Envoie-nous les informations demandées ci-dessus pour qu'un membre du global staff vienne t'aider.", + "Thank you for the information, global staff will be here shortly. Please stay in the room.": "Merci pour ces informations, un membre du global staff arrivera sous peu. Merci de rester dans la room.", + "You are banned from creating tickets": "Tu es interdit de créer tickets", + ", because you have the same IP as ${ticket.banned}.": ", parce que tu as une IP en commun avec ${ticket.banned}.", + "Request help from global staff": "Demande de l'aide au global staff", + "Please to request help.": " pour demander de l'aide", + "Request Help": "Demande de l'aide", + "You already have a Help ticket.": "Tu as déjà un Help ticket en course.", + "Back": "Retour", + "What's going on?": "Que se passe-t-il ?", + "Global staff cannot make Help requests. This form is only for reference.": "Le global staff ne peut pas créer de tickets. Ce formulaire est là en tant que référence.", + "Abuse of Help requests can result in punishments.": "Abuser du système de ticket entraînera des sanctions.", + "What do you want to report someone for?": "Pourquoi veux-tu signaler un autre utilisateur ?", + "If someone is harassing you in private messages (PMs), click the button below and a global staff member will take a look. If you are being harassed in a chatroom, please ask a room staff member to handle it. If it's a minor issue, consider using /ignore [username] instead.": "Si un utilisateur te harcèle en messages privés (MPs), clique sur le bouton ci-dessous et un membre du global staff pourra s'en occuper. Si un utilisateur te harcèle dans une room, tourne-toi vers un membre du staff de la room. S'il s'agit d'un cas mineur, envisage d'utiliser la commande /ignore [username].", + "If someone is harassing you in a battle, click the button below and a global staff member will take a look. If you are being harassed in a chatroom, please ask a room staff member to handle it. If it's a minor issue, consider using /ignore [username] instead.": "Si un utilisateur te harcèle en combat, clique sur le bouton ci-dessous et un membre du global staff pourra s'en occuper. Si un utilisateur te harcèle dans une room, tourne-toi vers un membre du staff de la room. S'il s'agit d'un cas mineur, envisage d'utiliser la commande /ignore [username].", + "Please save a replay of the battle if it has ended, or provide a link to the battle if it is still ongoing.": "Merci d'enregistrer le replay du combat s'il a pris fin, ou d'indiquer le lien du combat s'il est encore en cours.", + "If a user has an inappropriate name, click the button below and a global staff member will take a look.": "Si un utilisateur a un pseudo inapproprié, clique sur le bouton ci-dessous et un membre du global staff s'en occupera.", + "If a user has inappropriate Pokemon nicknames, click the button below and a global staff member will take a look.": "Si un utilisateur utilise un surnom inapproprié sur un Pokémon, clique sur le bouton ci-dessous et un membre du global staff s'en occupera.", + "What would you like to appeal?": "Quelle sanction souhaterais-tu contester ?", + "Permalocks are usually for repeated incidents of poor behavior over an extended period of time, and rarely for a single severe infraction. Please keep this in mind when appealing a permalock.": "Les permalocks sont mis en places pour des incidents répétés ou un mauvais comportement sur le long terme, et n'arrivent que rarement pour une seule infraction, même sévère. Merci de prendre cette information en compte lors de ton appel.", + "Please visit the Discipline Appeals page to appeal your permalock.": "Merci de te rendre sur la page des Discipline Appeals pour faire appel.", + "If you want to appeal your lock or namelock, click the button below and a global staff member will be with you shortly.": "Si tu souhaites contester un lock ou un namelock, cliquer sur le bouton ci-dessous et un membre du global staff arrivera sous peu.", + "If you are locked or namelocked under a name you don't recognize, click the button below to call a global staff member so we can check.": "Si tu es lock ou namelock sous un nom que tu ne reconnais pas, cliquer sur le bouton ci-dessous pour appeler un membre du global staff qui s'occupera de vérifier.", + "We automatically lock proxies and VPNs to prevent evasion of punishments and other attacks on our server. To get unlocked, you need to disable your proxy or VPN.": "Les proxy et VPNs entraînent un lock automatiquement pour éviter les contournements de sanctions et les attaques sur nos serveurs. Pour être unlock, tu dois désactiver ton proxy ou VPN.", + "Do you have an autoconfirmed account? An account is autoconfirmed when it has won at least one rated battle and has been registered for one week or longer.": "As-tu un compte autoconfirmed ? Un compte est autoconfirmed quand il a gagné au moins un match sur le ladder et a été enregistré depuis au moins une semaine.", + "Login to your autoconfirmed account by using the /nick command in any chatroom, and the semilock will automatically be removed. Afterwards, you can use the /nick command to switch back to your current username without being semilocked again.": "Connecte-toi sur ton compte autoconfirmed en utilisant la commande /nick dans n'importe quel chat, et le semilock sera levé automatiquement. Ensuite, tu peux utiliser la commande /nick pour retourner sur le pseudo que tu utilises en ce moment sans être semilock.", + "If the semilock does not go away, you can try asking a global staff member for help. Click the button below to call a global staff member.": "Si le semilock ne se lève pas, tu peux essayer de demander de l'aide à un membre du global staff. Clique sur le bouton ci-dessous pour appeler un membre du global staff.", + "If you don't have an autoconfirmed account, you will need to contact a global staff member to appeal your semilock. Click the button below to call a global staff member.": "Si tu n'as pas de compte autoconfirmed, tu dois contacter un membre du global staff pour contester ton semilock. Clique sur le bouton ci-dessous pour appeler un membre du global staff.", + "Please PM the staff member who punished you. If you don't know who punished you, ask another room staff member; they will redirect you to the correct user. If you are banned or blacklisted from the room, use /roomauth [name of room] to get a list of room staff members. Bold names are online.": "Merci d'envoyer un message privé au membre du staff qui t'a sanctionné. Si tu ne sais pas qui t'a sanctionné, demande à un autre membre du staff de la room ; il pourra te rediriger vers le bon utilisateur. Si tu es banni ou blacklist de la room, tu peux utiliser la commande /roomauth [nom de la room] pour voir la liste des membres du staff. Les pseudos en gras sont ceux des membres du staff en ligne.", + "Do not PM staff if you are locked (signified by the symbol in front of your username). Locks are a different type of punishment; to appeal a lock, make a help ticket by clicking the Back button and then selecting the most relevant option.": "N'envoie pas de messages privés au membres du staff d'une room si tu es lock (indiqué par le symbole devant ton pseudo). Les lock sont des sanctions différentes ; pour contester un lock, ouvre un help ticket en cliquant sur le bouton Retour, et en selectionnant l'option appropriée.", + "Maybe one of these options will be helpful?": "Un de ces boutons pourra peut-être t'aider ?", + "If you lost your password, click the button below to request a password reset. We will need to clarify a few pieces of information before resetting the account. Please note that password resets are low priority and may take a while; we recommend using a new account while waiting.": "Si tu as oublié ton mot de passe, clique sur le bouton ci-dessous pour demander à ce qu'il soit réinitialisé. Avant de réinitialiser ton mot de passe, sache que les réinitialisations de mot de passe sont ne sont pas prioritaires et peuvent prendre un moment ; nous recommendons à ce que tu utilises un nouveau pseudo en attendant.", + "Request a password reset": "Demande une réinitialisation de mot de passe", + "If you are a room driver or up in a public room, and you need help watching the chat, one or more global staff members would be happy to assist you!": "Si tu es room driver ou plus haut dans une room publique et que tu as besoin d'aide pour surveiller la room, un ou plusieurs membres du global staff seraient heureux de t'aider !", + "If your issue is not handled above, click the button below to talk to a global staff member. Please be ready to explain the situation.": "Si le problème rencontré n'est pas pris en compte par un des cas ci-dessus, clique sur le bouton ci-dessous pour discuter avec un membre du global staff. Merci de bien expliquer la situation.", + "Malformed help request.": "Requête mal formulée.", + "PM Harassment": "Harcèlement en messages privés", + "Battle Harassment": "Harcèlement en match", + "Inappropriate Username": "Pseudo inapproprié", + "Inappropriate Pokemon Nicknames": "Surnom de Pokémon inapproprié", + "Appeal": "Appel", + "IP-Appeal": "Appel IP", + "ISP-Appeal": "Appel ISP", + "Public Room Assistance Request": "Demande d'assistance pour une room publique", + "Other": "Autre", + "I want to report someone": "J'aimerais signaler quelqu'un", + "Someone is harassing me in PMs": "Quelqu'un me harcèle en messages privés", + "Someone is harassing me in a battle": "Quelqu'un me harcèle dans un match", + "Someone is using an offensive username": "Quelqu'un utilise un pseudo inapproprié", + "Someone is using offensive Pokemon nicknames": "Quelqu'un utilise des surnoms de Pokémon inappropriés", + "I want to appeal a punishment": "J'aimerais contester ma sanction", + "I want to appeal my permalock": "J'aimerais contester mon permalock", + "I want to appeal my lock": "J'aimerais contester mon lock", + "I'm locked because I have the same IP as someone I don't recognize": "Je suis lock parce que j'ai la même IP que quelqu'un d'autre", + "I can't talk in chat because of my ISP": "Je ne peux pas parler dans le chat à cause de mon fournisseur d'accès à Internet", + "I'm locked because of a proxy or VPN": "Je suis lock à cause de mon proxy ou mon VPN", + "Yes, I have an autoconfirmed account": "Oui, j'ai un compte autoconfirmed", + "No, I don't have an autoconfirmed account": "Non, je n'ai pas de compte autoconfirmed", + "I want to appeal a mute/roomban/blacklist": "J'aimerais contester un mute/un roomban/un blacklist", + "Something else": "Autre chose", + "I lost my password": "J'ai oublié mon mot de passe", + "I need global staff to help watch a public room": "J'ai besoin qu'un membre du global staff m'aide à surveiller une room publique", + "Report harassment in a private message (PM)": "Signale un harcèlement en messages privés (MPs)", + "Report harassment in a battle": "Signale un harcèlement en match", + "Report an inappropriate username": "Signale un pseudo inapproprié", + "Report inappropriate Pokemon nicknames": "Signale un surnom de Pokémon inapproprié", + "Appeal your lock": "Conteste ton lock", + "Appeal IP lock": "Conteste ton IP lock", + "Appeal ISP lock": "Conteste ton lock du à ton fournisseur d'accès à internet", + "Call a Global Staff member to help": "Demande de l'aide à un membre du global staff", + "Call a Global Staff member": "Appelle un membre du global staff", + "Are you sure you want to submit a ticket for ${type}?": "Es-tu sûr de vouloir ouvrir un ticket pour ${type}", + "Yes, contact global staff": "Oui, contacte le global staff", + "No, cancel": "Non, retour", + "Help Ticket Stats": "Statistiques des tickets", + "Help tickets": "Tickets", + "Status": "Statut", + "Creator": "Créateur", + "Ticket Type": "Type de ticket", + "Language": "Langue", + "Claimed by": "Pris par", + "Action": "Action", + "And ${keys.length - count} more tickets.": "Et ${keys.length - count} autres tickets.", + "View all tickets": "Voir tous les tickets", + "Closed": "Fermé", + "Inactive": "Inactif", + "Claimed": "Pris", + "Unclaimed": "Non pris", + "Claim": "Prendre", + "View": "Voir", + "Log": "Log", + "Banned by": "Banni par", + "Username": "Pseudo", + "Expires": "Expire", + "Logs": "Logs", + "And ${banKeys.length - count} more ticket bans.": "Et ${banKeys.length - count} autres ticket bans.", + "Ticket List": "Liste des tickets", + "Banned": "Banni", + "Ticket Stats": "Statistiques des tickets", + "No ticket stats found.": "Aucune statistique des tickets trouvée", + "Previous Month": "Mois précédent", + "Staff Stats": "Statistiques par staff", + "Next Month": "Mois suivant", + "Resolved": "Résolu", + "Unresolved": "Non résolu", + "Dead": "KO", + "Type": "Type", + "Total Tickets": "Total de tickets", + "Average Total Time": "Temps total moyen", + "Average Initial Wait": "Temps d'attente initial moyen", + "Average Total Wait": "Temps d'attente total moyen", + "Resolutions": "Résolutions", + "Positive Result": "Résultats positifs", + "Staff ID": "ID du staff", + "Number of Tickets": "Nombre de tickets", + "Average Time Per Ticket": "Temps moyen par ticket", + "This command cannot be broadcast in battles.": "Cette commande ne peut pas être diffusée en matchs", + "Report someone": "Signale quelqu'un", + "Appeal a punishment": "Conteste une sanction", + "Request help": "Demande de l'aide", + "You need to choose a username before doing this. [TN: 'this' refers to opening a help ticket]": "Tu dois choisir un pseudo avant d'ouvrir un ticket.", + "Global staff can't make tickets. They can only use the form for reference.": "Les membres du global staff ne peuvent pas ouvrir de ticket. Ils ne peuvent utiliser le formulaire qu'en guise de référence.", + "You already have an open ticket; please wait for global staff to respond.": "Tu as déjà un ticket d'ouvert ; merci d'attendre que le global staff y réponde.", + "Due to high load, you are limited to creating ${maxTickets} tickets every hour.": "En raison d'une forte activité, tu es limité à ${maxTickets} créations de tickets par heure.", + "Hi! Who was harassing you in private messages?": "Bonjour ! Qui te harcèle en messages privés ?", + "Hi! Who was harassing you, and in which battle did it happen? Please post a link to the battle or a replay of the battle.": "Bonjour ! Qui te harcèle, et dans quel match cela a-t-il eu lieu ? Merci de poster un lien vers le match ou vers le replay.", + "Hi! Tell us the username that is inappropriate.": "Bonjour ! Quel pseudo est inapproprié ?", + "Hi! Which user has Pokemon with inappropriate nicknames, and in which battle? Please post a link to the battle or a replay of the battle.": "Bonjour ! Quel utilisateur utilise des surnoms de Pokémon inappropriés, et dans quel match ? Merci de poster un lien vers le match ou vers le replay.", + "Hi! Can you please explain why you feel your punishment is undeserved?": "Bonjour ! Peux-tu expliquer pourquoi tu penses que ta sanction n'est pas méritée ?", + "Hi! How are you connecting to Showdown right now? At home, at school, on a phone using mobile data, or some other way?": "Bonjour ! Comment te connectes-tu à Showdown en ce moment ? Depuis chez toi, ton école, sur téléphone en utilisant des données mobiles, ou d'une autre manière ?", + "Hi! Which room(s) do you need us to help you watch?": "Bonjour ! Quelle(s) room(s) aurais-tu besoin que nous surveillions ?", + "Hi! What seems to be the problem? Tell us about any people involved,\n and if this happened in a specific place on the site.": "Bonjour ! Quel semble être le problème ? Dis nous quels utilisateurs sont impliqués,\n et si cela se passe dans un chat en particulier.", + "Hi! Please click the button below to give global staff permission to check PMs.": "Bonjour ! Merci de cliquer sur le bouton ci-dessous pour donner l'autorisation au global staff de lire les messages privés.", + " Or if ${reportTarget} is not the user you want to report, please tell us the name of the user who you want to report.": "Ou si ${reportTarget} n'est pas l'utilisateur que tu veux signaler, merci de nous donner le pseudo de l'utilisateur que tu veux signaler.", + "Help Ticket": "Ticket help", + "Issue": "Problème", + "A Global Staff member will be with you shortly.": "Un membre du global staff arrive sous peu.", + "${inputUsername} does not have an open ticket.": "${inputUsername} n'a pas de ticket actif.", + "You closed ${ticket.creator}'s ticket.": "Tu as fermé le ticket de ${ticket.creator}", + "The reason is too long. It cannot exceed 300 characters.": "La raison est trop longue. La limite est de 300 caractères.", + "User '${targetUsername}' not found.": "L'utilisateur '${targetUsername}' n'a pas été trouvé.", + "${targetUser ? targetUser.name : target} is not ticket banned.": "${targetUser ? targetUser.name : target} n'est pas ticket ban.", + "${targetUser ? targetUser.name : target}'s ticket ban is already expired.": "Le ticket ban de ${targetUser ? targetUser.name : target} a déjà expiré.", + "You are already ignoring help ticket notifications. Use /helpticket unignore to receive notifications again.": "Tu ignores déjà les notifications des tickets. Utilise /helpticket unignore pour recevoir les notifications à nouveau.", + "You are now ignoring help ticket notifications.": "Tu ignores désormais les notifications des tickets.", + "You are not ignoring help ticket notifications. Use /helpticket ignore to stop receiving notifications.": "Tu n'ignores plus les notifications des tickets. Utilise /helpticket ignore pour ne plus recevoir de notifications.", + "You will now receive help ticket notifications.": "Tu recevras désormais les notifications des tickets", + "${target} does not have a ticket.": "${target} n'a pas de ticket actif.", + "You deleted ${target}'s ticket.": "Tu as supprimé le ticket de ${target}.", + + "Hi! All global staff members are busy right now and we apologize for the delay. ": "Bonjour ! Tous les membres du global staff sont actuellement occupés, merci de bien vouloir attendre.", + "Please make sure you have given us the permission to check the PMs between you and the user you reported. You can also provide any relevant context; for example, a replay of a battle with the person you're reporting.": "Merci de vérifier que tu as bien donné l'autorisation au staff de lire les messages privés avec l'utilisateur que tu as signalé. Tu peux aussi nous donner des informations additionnelles ; par exemple, un replay d'un match avec l'utilisateur que tu signales.", + 'Please save the replay of the battle and provide a link to it in this chat, so we can see the harassment even if the battle expires. You can save the replay by clicking on the "Upload and share replay" button once the battle has ended.': "Merci d'enregistrer le replay du combat et d'indiquer le lien afin que nous puissions prendre connaissance de la situation même si le match expire. Tu peux enregistrer le replay en cliquant sur le bouton 'Upload and share replay' une fois le combat terminé.", + "Make sure you have provided the correct username, and if its meaning or why it is offensive is not obvious, please explain why it should not be allowed.": "Vérifie que tu nous communiques le bon pseudo, et si sa signification ou pourquoi tu le juges inapproprié n'est pas évident, explique-nous pourquoi il ne devrait pas être autorisé.", + 'Please save the replay of the battle and provide a link to it in this chat, so we can see the nicknames even if the battle expires. You can save the replay by clicking on the "Upload and share replay" button once the battle has ended.': "Merci d'enregistrer le replay du combat et d'indiquer le lien afin que nous puissions prendre voir les surnoms même si le match expire. Tu peux enregistrer le replay en cliquant sur le bouton 'Upload and share replay' une fois le combat terminé.", + "Please clearly explain why you should be unlocked and we will review it as soon as possible.": "Merci d'expliquer clairement pourquoi ton lock devrait être levé et nous en prendrons connaissance dès que possible.", + "Please give us all relevant information on how you are connecting to Pokémon Showdown (if it is through mobile data, at home, a school or work network, etc), and we will review your case as soon as possible.": "Merci de nous indiquer comment tu te connectes à Pokémon Showdown (si tu utilises des données mobiles, si tu es chez toi, ou sur le réseau de ton école ou de ton travail, etc), et nous en prendrons connaissance dès que possible.", + "Please tell us which room you need assistance with and a global staff member will join your room as soon as possible.": "Merci de nous indiquer dans quelle(s) room(s) tu as besoin d'aide et un membre du global staff viendra dès que possible.", + "If your issue pertains to battle mechanics or is a question about Pokémon Showdown, you can ask in the <> chatroom.": "Si le problème rencontré concerne les mécaniques en combat ou est une question sur Pokémon Showdown, tu peux te tourner vers la room <>", + }, +}; diff --git a/translations/french/main.ts b/translations/french/main.ts index 4dede42a0629..b55d32472204 100644 --- a/translations/french/main.ts +++ b/translations/french/main.ts @@ -13,18 +13,17 @@ export const translations: Translations = { "Global ranks": "Rangs globaux", "+ Global Voice - They can use ! commands like !groups": "+ Global Voice - Ils peuvent utiliser les commandes commençant par ! telles que !groups", - "§ Section Leader - They oversee rooms in a particular section": "§ Section Leader - Ils supervisent les rooms d'une section donnée", "% Global Driver - Like Voice, and they can lock users and check for alts": "% Global Driver - Comme ci-dessus, en plus de pouvoir lock certains utilisateurs et vérifier leurs éventuels autres comptes", "@ Global Moderator - The above, and they can globally ban users": "@ Global Moderator - Comme ci-dessus, en plus de pouvoir bannir des utilisateurs du site", - "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* Global Bot - Mêmes pouvoirs que les Global Moderators, mais sont des bots", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& Global Administrator - Ils peuvent tout faire, comme changer ce que ce message affiche", + "* Global Bot - An automated account that can use HTML anywhere": "* Global Bot - Un compte automatisé qui peut utiliser le HTML n'importe où", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ Global Administrator - Ils peuvent tout faire, comme changer ce que ce message affiche", "Room ranks": "Rangs des rooms", "^ Prize Winner - They don't have any powers beyond a symbol.": "^ Prize Winner - Ils n'ont aucun pouvoir, seulement un symbole honorifique", "+ Voice - They can use ! commands like !groups": "+ Voice - Ils peuvent utiliser les commandes commençant par ! telles que !groups", "% Driver - The above, and they can mute and warn": "% Driver - Comme ci-dessus, en plus de pouvoir mute et warn", "@ Moderator - The above, and they can room ban users": "@ Moderator - Comme ci-dessus, en plus de pouvoir bannir un utilisateur de la room", - "* Bot - Like Moderator, but makes it clear that this user is a bot": "* Bot - Comme les Moderators, mais sont des bots", + "* Bot - An automated account that can mute, warn, and use HTML": "* Bot - Un compte automatisé qui peut mute, warn et utiliser le HTML", "# Room Owner - They are leaders of the room and can almost totally control it": "# Room Owner - Ce sont les chefs de la room et ils peuvent la contrôler quasiment en totalité", "/help OR /h OR /? - Gives you help.": "Te donne de l'aide.", @@ -40,7 +39,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "COMMANDES DES MODERATEURS", "ADMIN COMMANDS": "COMMANDES DES ADMINISTRATEURS", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(Remplace / par ! pour afficher publiquement les commandes. Les afficher publiquement requiert : + % @ &)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(Remplace / par ! pour afficher publiquement les commandes. Les afficher publiquement requiert : + % @ ~)", "Room punishments:": "Punitions des rooms", "warn - Displays a popup with the rules.": "warn - Affiche une fenêtre avec les règles.", diff --git a/translations/german/helptickets.ts b/translations/german/helptickets.ts index 359bbd0cbde7..c5207090c703 100644 --- a/translations/german/helptickets.ts +++ b/translations/german/helptickets.ts @@ -82,7 +82,7 @@ export const translations: Translations = { "Status": "Status", "Creator": "Ersteller", "Ticket Type": "Ticket-Typ", - "Language": "", + "Language": "Sprache", "Claimed by": "Angenommen von", "Action": "Aktion", "And ${keys.length - count} more tickets.": "Und ${keys.length - count} weitere Tickets", diff --git a/translations/german/main.ts b/translations/german/main.ts index 5ba76e9f3f33..90c1a26b69ac 100644 --- a/translations/german/main.ts +++ b/translations/german/main.ts @@ -3,6 +3,9 @@ import type {Translations} from '../../server/chat'; export const translations: Translations = { name: "German", strings: { + "namelocked": "namensgesperrt", + "locked": "gesperrt", + "autoconfirmed": "autoconfirmed", "trusted": "vertrauenswürdig", @@ -16,7 +19,7 @@ export const translations: Translations = { "% Global Driver - The above, and they can also lock users and check for alts": "% Global Driver - Oben genanntes, und sie können Nutzer sperren sowie alternative Accounts einsehen.", "@ Global Moderator - The above, and they can globally ban users": "@ Global Moderator - Oben genanntes, und sie können Nutzer vom Server verbannen.", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* Global Bot - Wie Moderatoren, nur wird verdeutlicht, dass der Nutzer ein Bot ist.", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& Global Administrator - Sie können alles tun, zum Beispiel den Text dieser Nachricht ändern.", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ Global Administrator - Sie können alles tun, zum Beispiel den Text dieser Nachricht ändern.", "Room ranks": "Raum-Ränge", "^ Prize Winner - They don't have any powers beyond a symbol.": "^ Prize Winner - Sie verfügen über keine besonderen Privilegien, außer das Zeichen vor dem Namen.", @@ -39,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "BEFEHLE FÜR MODERATOREN", "ADMIN COMMANDS": "BEFEHLE FÜR ADMINISTRATOREN", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(ersetze / mit ! , um einen Befehl für alle Nutzer im Chat sichtbar zu machen. Dies setzt + % @ # oder & voraus)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(ersetze / mit ! , um einen Befehl für alle Nutzer im Chat sichtbar zu machen. Dies setzt + % @ # oder ~ voraus)", "Room punishments:": "Raumstrafen:", "warn - Displays a popup with the rules.": "warn - Öffnet ein Fenster mit den Regeln.", @@ -106,7 +109,8 @@ export const translations: Translations = { "Your status cannot be updated while you are locked or semilocked.": "Dein Status kann nicht geändert werden, solange du \"locked\" (gesperrt) oder semilocked (semi-gesperrt) bist.", "Your status is too long; it must be under ${maxLength} characters.": "Dein Status ist zu lang; er muss kürzer als ${maxLength} Zeichen sein.", "Your status contains a banned word.": "Dein Status beinhaltet ein verbotenes Wort.", - "Your status has been set to: ${target}.": "Dein Status wurde zu ${target} geändert.", "You are now marked as busy.": "Du bist jetzt als beschäftigt markiert.", + "Your status has been set to: ${target}.": "Dein Status wurde zu ${target} geändert.", + "You are now marked as busy.": "Du bist jetzt als beschäftigt markiert.", "You are now marked as away. Send a message or use /back to indicate you are back.": "Du bist jetzt als abwesend markiert. Versende eine Nachricht oder nutze /back um zu signalisieren, dass du zurück bist.", "You are already marked as back.": "Du bist bereits als anwesend markiert.", "You are no longer marked as busy.": "Du bist nicht länger als beschäftigt markiert.", @@ -149,8 +153,8 @@ export const translations: Translations = { "You are already blocking challenges!": "Du blockierst bereits Herausforderungen!", "You are already available for challenges!": "Du bist bereits für Herausforderungen verfügbar!", "You are available for challenges from now on.": "Du bist ab jetzt für Herausforderungen verfügbar.", - "You are now blocking challenges, except from staff and ${rank}.": "", - "You are now blocking challenges, except from staff and ${status} users.": "", + "You are now blocking challenges, except from staff and ${rank}.": "Du blockierst nun Herausforderungen mit Ausnahme derjenigen vom Staff-Team und ${rank}.", + "You are now blocking challenges, except from staff and ${status} users.": "Du blockierst nun Herausforderungen mit Ausnahme derjenigen vom Staff-Team und ${status}-Nutzern.", "Staff FAQ": "Staff-FAQ", "You cannot broadcast all FAQs at once.": "Du kannst nicht sämtliche FAQs auf einmal anzeigen lassen.", @@ -162,14 +166,16 @@ export const translations: Translations = { "To join a room tournament, click the Join! button or type the command /tour join in the room's chat. You can check if your team is legal for the tournament by clicking the Validate button once you've joined and selected a team. To battle your opponent in the tournament, click the Ready! button when it appears. There are two different types of room tournaments: elimination (if a user loses more than a certain number of times, they are eliminated) and round robin (all users play against each other, and the user with the most wins is the winner).": "Um einem Raum-Turnier beizutreten, klicke auf Join! oder gebe den Befehl /tour join in den Chat ein. Du kannst überprüfen, ob dein Team für das Turnier legal ist, indem du auf Validate klickst, nachdem du dem Turnier beigetreten bist und ein Team ausgewählt hast. Um deinen Gegner im Turnier herauszufordern, klicke auf Ready!, sobald es erscheint. Es gibt zwei verschiedene Arten von Raum-Turnieren: Elimination (falls ein Nutzer mehr als eine bestimmte Anzahl an Spielen verliert, ist er draußen) und Round Robin (jeder spielt gegen jeden und der Nutzer mit den meisten Siegen am Ende gewinnt das Turnier).", "Frequently Asked Questions": "Häufig gestellte Fragen", + "Invalid room.": "Ungültiger Raum.", + "pages/faq": "pages/faq", "pages/ladderhelp": "pages/ladderhelp-de", "pages/rng": "pages/rng", "pages/staff": "pages/staff-de", - "- We log PMs so you can report them - staff can't look at them without permission unless there's a law enforcement reason.": "", - "- We log IPs to enforce bans and mutes.": "", - "- We use cookies to save your login info and teams, and for Google Analytics and AdSense.": "", + "- We log PMs so you can report them - staff can't look at them without permission unless there's a law enforcement reason.": "Wir speichern die Inhalte privater Nachrichten, damit du diese nötigenfalls melden kannst - das Staff-Team kann diese ohne Erlaubnis nicht einsehen, es sei denn, es gilt, ein Gesetz zu vollstrecken.", + "- We log IPs to enforce bans and mutes.": "Wir registrieren IP-Adressen, um Verbannungen und Stummschaltungen zu vollstrecken.", + "- We use cookies to save your login info and teams, and for Google Analytics and AdSense.": "Wir nutzen Cookies, um sowohl deine Login-Daten und Teams zu sichern als auch für Google Analytics and AdSense.", '- For more information, you can read our full privacy policy.': '', }, }; diff --git a/translations/german/repeats.ts b/translations/german/repeats.ts index 38dc19a820a8..3a8759132d51 100644 --- a/translations/german/repeats.ts +++ b/translations/german/repeats.ts @@ -10,10 +10,10 @@ export const translations: Translations = { "Interval": "Zeitspanne", "every ${minutes} minute(s)": "jede ${minutes} Minute(n)", "Raw text": "Rohtext", - "every ${messages} chat message(s)": "", + "every ${messages} chat message(s)": "Alle ${messages} Chat-Nachrichten", "Remove": "Entfernen", "Remove all repeats": "Entferne alle Wiederholungen", - "Repeat names must include at least one alphanumeric character.": "", + "Repeat names must include at least one alphanumeric character.": "Namen von zu wiederholenden Ausdrücken müssen zumindest ein alphanumerisches Zeichen beinhalten.", "You must specify an interval as a number of minutes or chat messages between 1 and 1440.": "Du musst eine Zeitspanne (oder Chat-Nachrichten) als eine Zahl zwischen 1 und 1440 angeben.", 'The phrase labeled with "${id}" is already being repeated in this room.': 'Der Ausdruck "${id}" wird bereits im Raum wiederholt.', '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} minute(s).': '${user.name} hat eingestellt, dass der Ausdruck "${id}" jede ${interval} Minute(n) wiederholt wird.', diff --git a/translations/hindi/main.ts b/translations/hindi/main.ts index 5b0df32f151f..c8746b0fd804 100644 --- a/translations/hindi/main.ts +++ b/translations/hindi/main.ts @@ -19,7 +19,7 @@ export const translations: Translations = { "% Global Driver - The above, and they can also lock users and check for alts": "% वैश्विक Driver - ये लोग ऊपर की चीज़ें और उसके अलावा lock या alt भी जाँच सकते हैं", "@ Global Moderator - The above, and they can globally ban users": "@ वैश्विक Moderator - ये लोग ऊपर की चीज़ें और उसके अलावा वैश्विक स्तर पे ban भी कर सकते हैं", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* वैश्विक Bot - Moderator जैसा पर केवल Bots के लिए", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& वैश्विक Administrator - ये लोग कुछ भी कर सकते हैं, जैसे की इस सन्देश को बदलना", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ वैश्विक Administrator - ये लोग कुछ भी कर सकते हैं, जैसे की इस सन्देश को बदलना", "Room ranks": "रूम के पद", "^ Prize Winner - They don't have any powers beyond a symbol.": "", @@ -42,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "Moderators के कमांड", "ADMIN COMMANDS": "Administrators के कमांड", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(प्रसारित करने के लिए / को ! से बदलें. प्रसारण के लिए आवश्यक पद: + % @ # &) ", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(प्रसारित करने के लिए / को ! से बदलें. प्रसारण के लिए आवश्यक पद: + % @ # ~) ", "Room punishments:": "Room के दंड:", "warn - Displays a popup with the rules.": "warn - नियमों का एक popup दिखाता है.", diff --git a/translations/italian/main.ts b/translations/italian/main.ts index ddea177d5e92..63ef5103c0b7 100644 --- a/translations/italian/main.ts +++ b/translations/italian/main.ts @@ -16,11 +16,10 @@ export const translations: Translations = { "Global ranks": "Ruoli Globali", "+ Global Voice - They can use ! commands like !groups": "+ Global Voice - Possono utilizzare i comandi con !, come !groups", - "§ Section Leader - They oversee rooms in a particular section": "§ Section Leader - Supervisionano le room di una sezione specifica", "% Global Driver - The above, and they can also lock users and check for alts": "% Global Driver - Come i Global Voice, e possono lockare gli utenti e controllare i loro alts", "@ Global Moderator - The above, and they can globally ban users": "@ Global Moderator - Come i Global Driver, e possono bannare globalmente gli utenti", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* Global Bot - Come i Global Moderator, ma il simbolo specifica che l'utente è un bot", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& Global Administrator - Possono fare di tutto, anche cambiare il contenuto di questo messaggio e promuovere globalmente gli utenti", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ Global Administrator - Possono fare di tutto, anche cambiare il contenuto di questo messaggio e promuovere globalmente gli utenti", "Room ranks": "Ruoli della Room", "^ Prize Winner - They don't have any powers beyond a symbol.": "^ Prize Winner - Non hanno alcun potere, eccezion fatta per un segno distintivo", @@ -43,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "COMANDI PER I MODERATORI", "ADMIN COMMANDS": "COMANDI PER GLI AMMINISTRATORI", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(sostituisci / con ! per mostrare in room un comando. L'operazione richiede i seguenti rank: + % @ # &)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(sostituisci / con ! per mostrare in room un comando. L'operazione richiede i seguenti rank: + % @ # ~)", "Room punishments:": "Punizioni della room:", "warn - Displays a popup with the rules.": "warn - Mostra un popup con le regole.", diff --git a/translations/japanese/core-commands.ts b/translations/japanese/core-commands.ts index 35531f0ed488..68f0edc9b434 100644 --- a/translations/japanese/core-commands.ts +++ b/translations/japanese/core-commands.ts @@ -24,7 +24,7 @@ export const translations: Translations = { "${targetUser.name}'s status \"${targetUser.userMessage}\" was cleared by ${user.name}${displayReason}": "${targetUser.name}のステータスメッセージは${user.name}によって消去されました。${displayReason}", "You don't have a status message set.": "ステータスメッセージを設定していません。", "You have cleared your status message.": "ステータスメッセージを消去しました。", - "This user has not played any ladder games yet.": "このユーザーはladderが有効なバトルをしていません。", + "This user has not played any ladder games yet.": "このユーザーはレートが有効なバトルをしていません。", "W[TN: initial for Wins]": "W(Winsの頭文字)", "L[TN: initial for Losses]": "L(Lossesの頭文字)", "You already have the temporary symbol '${group}'.": "あなたはすでに一時的なランクである'${group}'になっています。", @@ -46,7 +46,7 @@ export const translations: Translations = { "No input log found.": "インプットされたログが見つかりませんでした。", "${targetUser.name} has extracted the battle input log.": "${targetUser.name}がバトルのログを出力しました。", "This command only works in battle rooms.": "このコマンドはバトル内のみで有効です。", - "This command only works when the battle has ended - if the battle has stalled, use /offertie.": "このコマンドはバトルが終わった後に有効になります。バトルが長引く場合は、/offertie を使用してください。", + "This command only works when the battle has ended - if the battle has stalled, use /offertie.": "このコマンドはバトルが終わった後に有効になります。バトルが長引いた場合は、/offertie を使用してください。", "Alternatively, you can end the battle with /forcetie.": "あるいは/forcetie で強制的にバトルを引き分けにすることもできます。", "${user.name} has extracted the battle input log.": "${user.name}がバトルのログを出力しました。", "You already extracted the battle input log.": "あなたはすでにログを出力しています。", @@ -62,7 +62,7 @@ export const translations: Translations = { "Must be in a battle room.": "バトルの中でなければいけません。", "This server does not allow offering ties.": "このサーバーでは引き分けの提案が許可されていません。", "You can't offer ties in tournaments.": "トーナメントでは引き分けを提案できません。", - "It's too early to tie, please play until turn 100.": "引き分けの提案が早すぎます。100ターンまで待ってください。", + "It's too early to tie, please play until turn 100.": "引き分けの提案が早すぎます。100ターン目まで待ってください。", "No other player is requesting a tie right now. It was probably canceled.": "他のプレイヤーは引き分けを提案していません。おそらくキャンセルされました。", "${user.name} is offering a tie.": "${user.name}が引き分けを提案しています。", "Accept tie": "引き分けの提案を受け入れる", @@ -83,14 +83,14 @@ export const translations: Translations = { "${user.name} hid the replay of this battle.": "${user.name}がこのバトルのリプレイを非表示にしました。", "You can only do this in battle rooms.": "これはバトル部屋のみで使えます。", "You can only add a Player to unrated battles.": "プレイヤーを追加できるのはレートが有効でないバトルのみです。", - "Player must be set to \"p1\" or \"p2\", not \"${target}\".": "プレイヤーは\"${target}\"ではなく\"p1\"か\"p2\"に設定しなければなりません。", + "Player must be set to \"p1\" or \"p2\", not \"${target}\".": "プレイヤーは \"${target}\"ではなく\"p1\"か\"p2\"に設定しなければなりません。", "User ${name} not found.": "ユーザー ${name} は見つかりませんでした。", - "User ${name} must be in the battle room already.": "ユーザー\"${name}\"はすでにバトル部屋に入室しています。", - "This room already has a player in slot ${target}.": "スロット${name}にはすでにユーザーが割り当てられています。", + "User ${name} must be in the battle room already.": "ユーザー \"${name}\"はすでに入室しています。", + "This room already has a player in slot ${target}.": "スロット ${name}にはすでにユーザーが割り当てられています。", "Player 2": "プレイヤー2", - "Players could not be restored (maybe this battle already has two players?).": "プレイヤーの復元ができませんでした。(このバトルにすでに2人プレイヤーがからかもしれません。)", - "This game doesn't support /joingame": "このゲームは /joingame が使えません。", - "This game doesn't support /leavegame": "このゲームは /leavegame が使えません。", + "Players could not be restored (maybe this battle already has two players?).": "プレイヤーの復元ができませんでした。(このバトルにすでに2人プレイヤーがいるからかもしれません。)", + "This game doesn't support /joingame": "このゲームでは /joingame が使えません。", + "This game doesn't support /leavegame": "このゲームでは /leavegame が使えません。", "You can only do this in unrated non-tour battles.": "これはトーナメントでなくかつレートが有効ではないバトルでのみ有効です。", "User ${targetUsername} not found.": "ユーザー ${targetuser.name} は見つかりませんでした。", "${targetUser.name} was kicked from a battle by ${user.name} ${displayReason}": "${targetUser.name}は${user.name}によってバトルからキックされました。(${displayReason})", @@ -108,23 +108,23 @@ export const translations: Translations = { "This server requires you to be rank ${groupName} or higher to search for a battle.": "このサーバーでは、バトルを検索するためにはランクが${groupName}以上であることが必要です。", "Since you have reached ${Config.forceregisterelo} ELO in ${target}, you must register your account to continue playing that format on ladder.": "ELOレートが${target}で${Config.forceregisterelo}に達したので、アカウントを登録する必要があります。", "Register": "登録", - "The user '${targetUsername}' was not found.": "ユーザー\"${targetUsername}\"は見つかりませんでした。", + "The user '${targetUsername}' was not found.": "ユーザー \"${targetUsername}\"は見つかりませんでした。", "You are locked and cannot challenge unlocked users. If this user is your friend, ask them to challenge you instead.": "あなたはロックされており、ロックされていないユーザーにchallengeすることはできません。このユーザーがあなたの友人である場合は、代わりにchallengeするよう依頼してください", "You are banned from battling and cannot challenge users.": "あなたはバトルをすることを禁止されているため、ほかのユーザーにchallengeすることはできません。", "You must choose a username before you challenge someone.": "誰かにchallengeする前にユーザー名を決める必要があります。", "This server requires you to be rank ${groupName} or higher to challenge users.": "このサーバーでは、ユーザーにchallengeするためにはランクが${groupName}以上であることが必要です。", - "This command does not support specifying multiple users": "このコマンドはで、複数のユーザーを指定することはできません", - "User \"${targetUsername}\" not found.": "ユーザー\"${targetUsername}\"は見つかりませんでした。", + "This command does not support specifying multiple users": "このコマンドでは複数のユーザーを指定できません", + "User \"${targetUsername}\" not found.": "ユーザー \"${targetUsername}\"は見つかりませんでした。", "Provide a valid format.": "有効なフォーマット名を入力してください", "Please provide a valid format.": "有効なフォーマット名を入力してください", "The format '${originalFormat.name}' was not found.": "フォーマット\"${originalFormat.name}\"は見つかりませんでした。", - "Your team is valid for ${format.name}.": "このチームは\"${format.name}\"に適合しています。", + "Your team is valid for ${format.name}.": "このチームは \"${format.name}\"に適合しています。", "Your team was rejected for the following reasons:": "このチームは以下の理由によって不適切です。", - "Battles are now hidden (except to staff) in your trainer card.": "あなたのトレーナーカード内でバトルはスタッフ以外に隠されました", - "Battles are now visible in your trainer card.": "あなたのトレーナーカードにおいてバトルが見られるようになりました。", + "Battles are now hidden (except to staff) in your trainer card.": "あなたのトレーナーカードからバトルはスタッフ以外には見えなくなりました", + "Battles are now visible in your trainer card.": "あなたのトレーナーカードからバトルが見られるようになりました。", "'${command}' is a help command.": "\"${command}\"はヘルプコマンドです。", - "The command '/${target}' does not exist.": "コマンド\"/${target}\"は見つかりませんでした。", + "The command '/${target}' does not exist.": "コマンド \"/${target}\"は見つかりませんでした。", "Could not find help for '/${target}'. Try /help for general help.": "\"${target}\"のヘルプは見つかりませんでした。\"/help\"で総合的なヘルプを試してみてください。", - "Could not find help for '/${target}' - displaying help for '/${closestHelp}' instead": "\"/${target}\"のヘルプは見つかりませんでした。。\"/${closestHelp}\"のヘルプを表示しています。", + "Could not find help for '/${target}' - displaying help for '/${closestHelp}' instead": "\"/${target}\"のヘルプは見つかりませんでした。\"/${closestHelp}\"のヘルプを表示しています。", }, }; diff --git a/translations/japanese/helptickets.ts b/translations/japanese/helptickets.ts index 073a6f786392..4f8021a3d4f4 100644 --- a/translations/japanese/helptickets.ts +++ b/translations/japanese/helptickets.ts @@ -85,7 +85,7 @@ export const translations: Translations = { "Language": "言語", "Claimed by": "対象", "Action": "", - "And ${keys.length - count} more tickets.": "その他${keys.length - count}のチケット", + "And ${keys.length - count} more tickets.": "その他 ${keys.length - count}のチケット", "View all tickets": "全てのチケットを見る", "Closed": "終了", "Inactive": "動向なし", @@ -98,7 +98,7 @@ export const translations: Translations = { "Username": "ユーザー名", "Expires": "期限切れ", "Logs": "記録", - "And ${banKeys.length - count} more ticket bans.": "その他${banKeys.length - count}のチケット作成の禁止", + "And ${banKeys.length - count} more ticket bans.": "その他 ${banKeys.length - count}のチケット作成の禁止", "Ticket List": "チケット一覧", "Banned": "", "Ticket Stats": "", diff --git a/translations/japanese/main.ts b/translations/japanese/main.ts index be41392d19f9..2e11e4f445c7 100644 --- a/translations/japanese/main.ts +++ b/translations/japanese/main.ts @@ -12,22 +12,21 @@ export const translations: Translations = { "Please follow the rules:": "ルールを守ってください:", "[TN: Link to the PS rules for your language (path after pokemonshowdown.com]/rules": "/pages/rules-ja", "Global Rules": "全部屋共通ルール", - "${room} room rules": "${room}部屋のルール", + "${room} room rules": "${room}のルール", "Global ranks": "グローバルユーザーランク", "+ Global Voice - They can use ! commands like !groups": "グローバルボイス(+): プレフィックスとして\"/\"の代わりに\"!\"を使ってコマンドの結果を部屋に表示することができる。", - "§ Section Leader - They oversee rooms in a particular section": "§ セクションリーダー - 各々に割り当てられた部屋を監視する。", "% Global Driver - Like Voice, and they can also lock users and check for alts": "グローバルドライバー(%): ボイスに似ているが上記に加えてユーザーをロックしたり、他に使っているアカウントを確認することができる。", "@ Global Moderator - The above, and they can globally ban users": "グローバルモデレータ(@): 上記に加えてユーザーをサイト全体からBANできる。", - "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "グローバルボット(*): 権限はモデレータと同じだが、ボットだと分かるためのランク。", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "グローバルアドミニストレーター(&): 何でもできる。この文章を編集したり、ユーザーをグローバルに昇格させたりできる。", + "* Global Bot - An automated account that can use HTML anywhere": "グローバルボット(*): どこでもmuteやBANをしたり、HTMLを扱うことができる自動化されたアカウント。", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "グローバルアドミニストレーター(~): 何でもできる。この文章を編集したり、ユーザーをグローバルに昇格させたりできる。", "Room ranks": "日本語部屋のユーザーランク", "^ Prize Winner - They don't have any powers beyond a symbol.": "プライズウィナー(^): 部屋のシンボルや象徴であり、何も権限を持ちません。", "+ Voice - They can use ! commands like !groups": "ボイス(+): プレフィックスとして/の代わりに!を使ってコマンドの結果を部屋に表示することができる。", "% Driver - The above, and they can mute and warn": "ドライバー(%): 上記に加えて警告メッセージを出したりユーザーを短時間喋れなく(ミュート)することができる。", "@ Moderator - The above, and they can room ban users": "モデレータ(@): 上記に加えてユーザーを部屋からBANすることができる。", - "* Bot - Like Moderator, but makes it clear that this user is a bot": "ボット(*): 権限はモデレータと同じだが、ボットだと分かるためのランク。", + "* Bot - An automated account that can mute, warn, and use HTML": "ボット(*): muteやBANをしたり、HTMLを扱うことができる自動化されたアカウント。", "# Room Owner - They are leaders of the room and can almost totally control it": "ルームオーナー(#): この部屋のリーダーでほとんどのことができる。", "/help OR /h OR /? - Gives you help.": "/help 又は /h または /? - ヘルプを表示する", @@ -41,9 +40,9 @@ export const translations: Translations = { "DATA COMMANDS": "ポケモンデータコマンド", "DRIVER COMMANDS": "ドライバー(%)コマンド", "MODERATOR COMMANDS": "モデレーター(@)コマンド", - "ADMIN COMMANDS": "アドミニストレーター(&)コマンド", + "ADMIN COMMANDS": "アドミニストレーター(~)コマンド", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(/の代わりに!を使うとコマンドの結果を全員に表示することができます。全員に表示するには、+ % @ # & の権限が必要です。)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(/の代わりに!を使うとコマンドの結果を全員に表示することができます。全員に表示するには、+ % @ # ~ の権限が必要です。)", "Room punishments:": "チャット罰則一覧:", "warn - Displays a popup with the rules.": "warn - ユーザーにチャットルールのポップアップが表示されます。", @@ -66,7 +65,7 @@ export const translations: Translations = { "permaban - Unappealable global ban typically issued for the most severe cases of offensive/inappropriate behavior.": "permaban - 最も深刻な違反行為に対して取られる処置であり、控訴することは不可能です。", "Room drivers (%) can use:": "ドライバー(%) コマンド:", - "- /warn OR /k username: warn a user and show the Pokémon Showdown rules": "- /warn 又は /k ユーザー名: ユーザーが警告され、当サイトのルールのウィンドウが表示されます。", + "- /warn OR /k username: warn a user and show the Pokémon Showdown rules": "- /warn または /k ユーザー名: ユーザーが警告され、当サイトのルールのウィンドウが表示されます。", "- /mute OR /m username: 7 minute mute": "- /mute 又は /m ユーザー名: 7分間ミュート状態にします。", "- /hourmute OR /hm username: 60 minute mute": "- /hourmute 又は /hm ユーザー名: 1時間ミュート状態にします。", "- /unmute username: unmute": "- /unmute ユーザー名: ユーザーのミュート状態を解除します。", @@ -103,7 +102,7 @@ export const translations: Translations = { "- /tour start: start the tournament in the current room": "- /tour start: 大会を開始します。", "- /tour banlist [pokemon], [talent], [...]: ban moves, abilities, Pokémon or items from being used in a tournament (it must be created first)": "- /tour banlist [ポケモン], [特性], [...]: 開催中の大会に指定するポケモンや特性などを使用禁止にします。", - "More detailed help can be found in the tournaments guide": "もっと詳しく知りたい場合、大会ガイド(英語)をご参照ください。", + "More detailed help can be found in the tournaments guide": "詳しくは、大会ガイド(英語)をご参照ください。", "Your status cannot be updated while you are locked or semilocked.": "ロック・セミロック状態のため、ステータスを変更することはできません。", "Your status is too long; it must be under ${maxLength} characters.": "ステータスが長すぎます。 ${maxLength} 文字以内のステータスを設定してください。", @@ -129,7 +128,7 @@ export const translations: Translations = { "You are ${lockType} and can only private message members of the global moderation team. ${lockExpiration}": "${lockType}状態のためプライベートメッセージを送信できるのはグローバルスタッフのみに制限されています。${lockExpiration}", "Get help with this": "ヘルプ", "The user \"${targetUser.name}\" is locked and cannot be PMed.": "\"${targetUser.name}\"はロックされているためプライベートメッセージを送信することができません。", - "On this server, you must be of rank ${groupName} or higher to PM users.": "このサーバーでは、プライベートメッセージを送信するには${groupName}以上の権限を持っている必要があります。", + "On this server, you must be of rank ${groupName} or higher to PM users.": "このサーバーでは、プライベートメッセージを送信するには${groupName}以上である必要があります。", "This user is blocking private messages right now.": "このユーザーは現在プライベートメッセージをブロックしています。", "This ${Config.groups[targetUser.group].name} is too busy to answer private messages right now. Please contact a different staff member.": "${Config.groups[targetUser.group].name} は現在多忙のためプライベートメッセージに反応することができません。他のスタッフに話してみてください。", "If you need help, try opening a help ticket": "ヘルプを求めている場合は、help ticketにてリクエストを送信してください。", @@ -141,7 +140,7 @@ export const translations: Translations = { "Due to this room being a high traffic room, your message must contain at least two letters.": "このチャット部屋のメッセージ頻度が高いため、2文字以内のメッセージを送ることはできません。", "You are already blocking private messages! To unblock, use /unblockpms": "すでにプライベートメッセージをブロックしています。ブロックを解除するには /unblockpms を使ってください。", - "You are now blocking private messages, except from staff and ${rank}.": "プライベートメッセージをブロックしました。グローバルスタッフと ${rank} 権限を持つユーザーからはブロックされません。", + "You are now blocking private messages, except from staff and ${rank}.": "プライベートメッセージをブロックしました。グローバルスタッフと${rank}を持つユーザーからはブロックされません。", "You are now blocking private messages, except from staff and ${status} users.": "プライベートメッセージをブロックしました。グローバルスタッフと ${status} 状態のユーザーからはブロックされません。", "You are now blocking private messages, except from staff.": "プライベートメッセージをブロックしました。グローバルスタッフからはブロックされません。", "You are not blocking private messages! To block, use /blockpms": "プライベートメッセージをブロックしていません。ブロックしたい場合は、/blockpms を使ってください。", @@ -150,11 +149,11 @@ export const translations: Translations = { "You are already blocking challenges!": "すでに対戦の申し込みをブロックしています。", "You are already available for challenges!": "現在対戦の申し込みをブロックしていません。", "You are available for challenges from now on.": "対戦の申し込みのブロックを解除しました。", - "You are now blocking challenges, except from staff and ${rank}.": "対戦の申し込みをブロックしました。グローバルスタッフと${rank}権限を持つユーザーからはブロックされません。", + "You are now blocking challenges, except from staff and ${rank}.": "対戦の申し込みをブロックしました。グローバルスタッフと${rank}を持つユーザーからはブロックされません。", "You are now blocking challenges, except from staff and ${status} users.": "対戦の申し込みをブロックしました。グローバルスタッフと${status}状態のユーザーからはブロックされません。", "Staff FAQ": "スタッフに関するよくある質問", "You cannot broadcast all FAQs at once.": "1回でFAQを全て表示させることはできません。", - "A user is autoconfirmed when they have won at least one rated battle and have been registered for one week or longer. In order to prevent spamming and trolling, most chatrooms only allow autoconfirmed users to chat. If you are not autoconfirmed, you can politely PM a staff member (staff have %, @, or # in front of their username) in the room you would like to chat and ask them to disable modchat. However, staff are not obligated to disable modchat.": "レートが有効なバトルで1回以上勝利し、アカウントを登録してから1週間が経過するアカウントが自動承認されます(autoconfirmed)。承認されていないユーザーはグローバルスタッフ(いかなる場所でも名前の前に %、 @、 & がついています)以外にPMを送信することができません。また、チャットルームでは荒らしを防止するためにmodchatで承認済みのユーザーのみが発言できるようにすることができます。もしあなたが承認されていない場合はルームスタッフ(名前の前に %、@、# がついているユーザーです)にPMを送信し、modchatを無効にするように依頼することができますが、スタッフは無効化する義務はありません。", + "A user is autoconfirmed when they have won at least one rated battle and have been registered for one week or longer. In order to prevent spamming and trolling, most chatrooms only allow autoconfirmed users to chat. If you are not autoconfirmed, you can politely PM a staff member (staff have %, @, or # in front of their username) in the room you would like to chat and ask them to disable modchat. However, staff are not obligated to disable modchat.": "レートが有効なバトルで1回以上勝利し、アカウントを登録してから1週間が経過するアカウントが自動承認されます(autoconfirmed)。承認されていないユーザーはグローバルスタッフ(いかなる場所でも名前の前に %、 @、 ~ がついています)以外にPMを送信することができません。また、チャットルームでは荒らしを防止するためにmodchatで承認済みのユーザーのみが発言できるようにすることができます。もしあなたが承認されていない場合はルームスタッフ(名前の前に %、@、# がついているユーザーです)にPMを送信し、modchatを無効にするように依頼することができますが、スタッフは無効化する義務はありません。", "How the ladder works": "Ladderの仕組み", "Tiering FAQ": "", "Badge FAQ": "", diff --git a/translations/japanese/minor-activities.ts b/translations/japanese/minor-activities.ts index 5f6fa71ee731..e73c5e6df3ed 100644 --- a/translations/japanese/minor-activities.ts +++ b/translations/japanese/minor-activities.ts @@ -27,7 +27,7 @@ export const translations: Translations = { "Quiz": "クイズ", "Poll": "投票", "Submit": "提出", - "ended": "が終了しました", + "ended": "終了", "votes": "票", "delete": "削除", "Poll too long.": "投票が長すぎます。", diff --git a/translations/japanese/repeats.ts b/translations/japanese/repeats.ts index 25bd06f2805c..d084d870c849 100644 --- a/translations/japanese/repeats.ts +++ b/translations/japanese/repeats.ts @@ -3,7 +3,7 @@ import type {Translations} from '../../server/chat'; export const translations: Translations = { strings: { "Repeated phrases in ${room.title}": "${room.title}でリピートされているメッセージ", - "There are no repeated phrases in ${room.title}.": "現在${room.title}でリピートされているメッセージはありません。", + "There are no repeated phrases in ${room.title}.": "現在 ${room.title}でリピートされているメッセージはありません。", "Action": "操作", "Phrase": "メッセージ", "Identifier": "タイトル", @@ -13,16 +13,16 @@ export const translations: Translations = { "Raw text": "コード", "Remove": "削除", "Remove all repeats": "全てのリピートを削除する", - "Repeat names must include at least one alphanumeric character.": "タイトルには少なくとも1文字以上の半角英数字が必要です。", + "Repeat names must include at least one alphanumeric character.": "IDには少なくとも1文字以上の半角英数字が必要です。", "You must specify an interval as a number of minutes or chat messages between 1 and 1440.": "リピート間隔は1440分以内の数字で指定する必要があります。", - 'The phrase labeled with "${id}" is already being repeated in this room.': 'この部屋ではすでにタイトルが"${id}"のリピートが存在します。', - '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} minute(s).': '${user.name}が"${id}"でリピートを${interval}分間隔で設定しました。', - '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} chat message(s).': '${user.name}が"${id}"でリピートをメッセージ数: ${interval}の間隔で設定しました。', - '${user.name} set the Room FAQ "${topic}" to be repeated every ${interval} minute(s).': '${user.name}がRoom FAQの"${topic}"のリピートを${interval}分間隔で設定しました。', - '${user.name} set the Room FAQ "${topic}" to be repeated every ${interval} chat message(s).': '${user.name}がRoom FAQの"${topic}"のリピートをメッセージ数: ${interval}間隔で設定しました。', - 'The phrase labeled with "${id}" is not being repeated in this room.': 'タイトルが"${id}"のメッセージは現在この部屋でリピートされていません。', - 'The text for the Room FAQ "${topic}" is already being repeated.': 'Room FAQの"${topic}"はすでにリピートされています。', - '${user.name} removed the repeated phrase labeled with "${id}".': '${user.name}が題名"${id}"のリピートを削除しました。', + 'The phrase labeled with "${id}" is already being repeated in this room.': 'この部屋ではすでにタイトルが "${id}"のリピートが存在します。', + '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} minute(s).': '${user.name}が "${id}"でリピートを${interval}分間隔で設定しました。', + '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} chat message(s).': '${user.name}が "${id}"でリピートをメッセージ数: ${interval}の間隔で設定しました。', + '${user.name} set the Room FAQ "${topic}" to be repeated every ${interval} minute(s).': '${user.name}がRoom FAQの "${topic}"のリピートを${interval}分間隔で設定しました。', + '${user.name} set the Room FAQ "${topic}" to be repeated every ${interval} chat message(s).': '${user.name}がRoom FAQの "${topic}"のリピートをメッセージ数: ${interval}間隔で設定しました。', + 'The phrase labeled with "${id}" is not being repeated in this room.': 'タイトルが "${id}"のメッセージは現在この部屋でリピートされていません。', + 'The text for the Room FAQ "${topic}" is already being repeated.': 'Room FAQの "${topic}"はすでにリピートされています。', + '${user.name} removed the repeated phrase labeled with "${id}".': '${user.name}がID: "${id}"のリピートを削除しました。', "There are no repeated phrases in this room.": "現在この部屋でリピートされているメッセージはありません。", "${user.name} removed all repeated phrases.": "${user.name}が全てのリピートを削除しました。", "You must specify a room when using this command in PMs.": "このコマンドをPMで使う場合は部屋を指定する必要があります。", diff --git a/translations/portuguese/core-commands.ts b/translations/portuguese/core-commands.ts index c6ab553c11b9..99c64c95e467 100644 --- a/translations/portuguese/core-commands.ts +++ b/translations/portuguese/core-commands.ts @@ -83,6 +83,7 @@ export const translations: Translations = { "${user.name} hid the replay of this battle.": "${user.name} ocultou o replay desta batalha.", "You can only do this in battle rooms.": "Você só pode fazer isso em sala de batalhas.", "You can only add a Player to unrated battles.": "Você só pode adicionar um jogador em batalhas que não valham pontos.", + "Player must be set to \"p1\" or \"p2\", not \"${target}\".": "Jogadores devem estar classificados como \"p1\" ou \"p2\", não \"${target}\".", "User ${name} not found.": "Usuário ${name} não encontrado.", "This room already has a player in slot ${target}.": "Esta sala já tem um jogador na posição ${target}.", "${targetUser.name} is already a player in this battle.": "${targetUser.name} já é um jogador nesta batalha.", diff --git a/translations/portuguese/main.ts b/translations/portuguese/main.ts index 8c6600f104ee..3e01a762ad9e 100644 --- a/translations/portuguese/main.ts +++ b/translations/portuguese/main.ts @@ -16,11 +16,10 @@ export const translations: Translations = { "Global ranks": "Cargos Globais", "+ Global Voice - They can use ! commands like !groups": "+ Global Voice - Eles podem usar comandos com !, tal como !groups", - "§ Section Leader - They oversee rooms in a particular section": "§ Section Leader - Eles supervisionam salas de uma seção específica", "% Global Driver - Like Voice, and they can lock users and check for alts": "% Global Driver - Como Voice, além de poderem dar locks e verificar contas alternativas", "@ Global Moderator - The above, and they can globally ban users": "@ Global Moderator - O de cima, além de poderem banir usuários do servidor", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* Global Bot - Igual ao cargo de Moderator, mas deixa claro que o usuário é um bot", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& Global Administrator - Eles podem fazer qualquer coisa, como mudar o que esta mensagem diz", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ Global Administrator - Eles podem fazer qualquer coisa, como mudar o que esta mensagem diz", "Room ranks": "Cargos da Sala", "^ Prize Winner - They don't have any powers beyond a symbol.": "^ Prize Winner - Eles não têm poder algum além de um símbolo.", @@ -43,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "COMANDOS DE MODERATOR", "ADMIN COMMANDS": "COMANDOS DE ADMINISTRATOR", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(substitua / por ! para exibir um comando publicamente. Isso requer: + % @ # &)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(substitua / por ! para exibir um comando publicamente. Isso requer: + % @ # ~)", "Room punishments:": "Punições da sala", "warn - Displays a popup with the rules.": "warn - Faz uma mensagem com as regras aparecer.", @@ -166,6 +165,8 @@ export const translations: Translations = { "To join a room tournament, click the Join! button or type the command /tour join in the room's chat. You can check if your team is legal for the tournament by clicking the Validate button once you've joined and selected a team. To battle your opponent in the tournament, click the Ready! button when it appears. There are two different types of room tournaments: elimination (if a user loses more than a certain number of times, they are eliminated) and round robin (all users play against each other, and the user with the most wins is the winner).": "Para entrar em um torneio de sala, clique no botão Join! ou digite o comando /tour join no chat da sala. Você pode checar se sua equipe é válida para o torneio clicando no botão Validate uma vez que você tenha entrado e selecionado um time. Para batalhar contra um oponente no torneio, clique no botão Ready! quando ele aparecer. Existem tipos diferentes de torneios de sala: eliminação (se um usuário perder mais do que um certo número de vezes estará eliminado) e round robin (todos jogam entre si, com o usuário com mais pontos sendo o vencedor).", "Frequently Asked Questions": "Perguntas Frequentes", + "Invalid room.": "Sala inválida.", + "pages/faq": "pages/faq", "pages/ladderhelp": "pages/ladderhelp", "pages/rng": "pages/rng", diff --git a/translations/portuguese/repeats.ts b/translations/portuguese/repeats.ts new file mode 100644 index 000000000000..bdfbdd1d417e --- /dev/null +++ b/translations/portuguese/repeats.ts @@ -0,0 +1,30 @@ +import type {Translations} from '../../server/chat'; + +export const translations: Translations = { + strings: { + "Repeated phrases in ${room.title}": "Frases repetidas em ${room.title}", + "There are no repeated phrases in ${room.title}.": "Não há frases repetidas em ${room.title}.", + "Action": "Ação", + "Phrase": "Frase", + "Identifier": "Identificador", + "Interval": "Intervalo", + "every ${minutes} minute(s)": "a cada ${minutes} minuto(s)", + "every ${messages} chat message(s)": "a cada ${messages} mensagen(s) no chat", + "Raw text": "Texto Puro", + "Remove": "Remover", + "Remove all repeats": "Remover todos os repeats", + "Repeat names must include at least one alphanumeric character.": "Repeats devem incluir pelo menos um caractere alfanumérico.", + "You must specify an interval as a number of minutes or chat messages between 1 and 1440.": "Você deve especificar um intervalo como um número de minutos ou mensagens no chat entre 1 e 1440.", + 'The phrase labeled with "${id}" is already being repeated in this room.': 'A frase nomeada como "${id}" já está sendo repetida nesta sala.', + '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} minute(s).': '${user.name} a frase nomeada como "${id}" foi colocada para ser repetida a cada ${interval} minuto(s).', + '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} chat message(s).': '${user.name} a frase nomeada como "${id}" foi colocada para ser repetida a cada ${interval} mensagen(s) no chat.', + '${user.name} set the Room FAQ "${topic}" to be repeated every ${interval} minute(s).': '${user.name} o Room FAQ "${topic}" foi colocado para ser repetido a cada ${interval} minuto(s).', + '${user.name} set the Room FAQ "${topic}" to be repeated every ${interval} chat message(s).': '${user.name} o Room FAQ "${topic}" foi colocado para ser repetido a cada ${interval} mensagen(s) no chat.', + 'The phrase labeled with "${id}" is not being repeated in this room.': 'A frase nomeada como "${id}" não está sendo repetida nesta sala.', + 'The text for the Room FAQ "${topic}" is already being repeated.': 'O texto para o Room FAQ "${topic}" já está sendo repetido.', + '${user.name} removed the repeated phrase labeled with "${id}".': '${user.name} removeu a frase repetida nomeada como "${id}".', + "There are no repeated phrases in this room.": "Não há frases repetidas nesta sala.", + "${user.name} removed all repeated phrases.": "${user.name} removeu todas as frases repetidas.", + "You must specify a room when using this command in PMs.": "Você deve especificar uma sala quando estiver usando este comando em PMs.", + }, +}; diff --git a/translations/simplifiedchinese/helptickets.ts b/translations/simplifiedchinese/helptickets.ts new file mode 100644 index 000000000000..dc8a215054e2 --- /dev/null +++ b/translations/simplifiedchinese/helptickets.ts @@ -0,0 +1,164 @@ +import type {Translations} from '../../server/chat'; + +export const translations: Translations = { + strings: { + "Hello! The global staff team would be happy to help you, but you need to explain what's going on first.": "你好!我们全服管理都很高兴能来帮你,但是你得先解释一下发生了什么事。", + "Please post the information I requested above so a global staff member can come to help.": "请先把上述信息贴出,这样全服管理才会来帮助你。", + "Thank you for the information, global staff will be here shortly. Please stay in the room.": "谢谢你提供的信息,全服管理很快就会来的。请在这个房间里等待片刻。", + "You are banned from creating tickets": "你被禁止发布请求", + ", because you have the same IP as ${ticket.banned}.": ",因为你和${ticket.banned}用了相同的IP。", + "Request help from global staff": "向全服管理请求帮助", + "Please to request help.": "请来请求帮助。", + "Request Help": "请求帮助", + "You already have a Help ticket.": "你已经发过一个帮助请求了。", + "Back": "返回", + "What's going on?": "发生了什么事?", + "Global staff cannot make Help requests. This form is only for reference.": "全服管理不能请求帮助。以下表格可以给你参考。", + "Abuse of Help requests can result in punishments.": "滥用请求帮助功能会导致你被惩罚。", + "What do you want to report someone for?": "你为什么要举报他?", + "If someone is harassing you in private messages (PMs), click the button below and a global staff member will take a look. If you are being harassed in a chatroom, please ask a room staff member to handle it. If it's a minor issue, consider using /ignore [username] instead.": "如果你在私聊中被骚扰,那么点这个按钮就能叫全服管理来查看情况。如果你是在聊天室中被骚扰的,请叫房间管理来处理。如果这并没有那么严重,那你可以考虑一下使用/ignore [username]。", + "If someone is harassing you in a battle, click the button below and a global staff member will take a look. If you are being harassed in a chatroom, please ask a room staff member to handle it. If it's a minor issue, consider using /ignore [username] instead.": "如果你在对战中被骚扰,那么点这个按钮就能叫全服管理来查看情况。如果你是在聊天室中被骚扰的,请叫房间管理来处理。如果这并没有那么严重,那你可以考虑一下使用/ignore [username]。", + "Please save a replay of the battle if it has ended, or provide a link to the battle if it is still ongoing.": "如果是已经结束的比赛,请把回放保存下来。如果是还在进行的比赛,请把链接提供给我们。", + "If a user has an inappropriate name, click the button below and a global staff member will take a look.": "如果有个玩家有违规的用户名,点击这个按钮就可以叫全服管理来查看。", + "If a user has inappropriate Pokemon nicknames, click the button below and a global staff member will take a look.": "如果有个玩家给他的宝可梦取了违禁的昵称,点击这个按钮就可以叫全服管理来查看。", + "What would you like to appeal?": "你想申诉什么?", + "Permalocks are usually for repeated incidents of poor behavior over an extended period of time, and rarely for a single severe infraction. Please keep this in mind when appealing a permalock.": "永久锁定通常是因为在一段时间内有多次不良行为而很少是因为一次严重违规,请记住。", + "Please visit the Discipline Appeals page to appeal your permalock.": "请前往Discipline Appeals来申诉你的永久锁定。", + "If you want to appeal your lock or namelock, click the button below and a global staff member will be with you shortly.": "如果你想申请解除对你账号的锁定或者用户名锁定,按这个按钮,然后全服管理很快就会来了。", + "If you are locked or namelocked under a name you don't recognize, click the button below to call a global staff member so we can check.": "如果你在一个不认识的名下被锁定或者用户名锁定,按下这个按钮来叫全服管理,这样我们就可以来检查一下。", + "We automatically lock proxies and VPNs to prevent evasion of punishments and other attacks on our server. To get unlocked, you need to disable your proxy or VPN.": "为了防止有人逃避惩罚或者攻击我们的服务器,我们会自动锁定使用代理或者VPN的账号,关掉你的代理或者VPN就可以不被锁定。", + "Do you have an autoconfirmed account? An account is autoconfirmed when it has won at least one rated battle and has been registered for one week or longer.": "你有被确认的账号吗?一个账号在注册一个星期后且至少打赢过一场计分比赛就会被视为受信任的账号。", + "Login to your autoconfirmed account by using the /nick command in any chatroom, and the semilock will automatically be removed. Afterwords, you can use the /nick command to switch back to your current username without being semilocked again.": "通过/nick来登录一个在任何房间都受信任的账号,你的半锁定状态就会消失。此后,你可以使用/nick来更改你的用户名而不陷入半锁定状态。", + "If the semilock does not go away, you can try asking a global staff member for help. Click the button below to call a global staff member.": "如果半锁定状态没有消失,点这个按钮来叫全服管理来帮忙。", + "If you don't have an autoconfirmed account, you will need to contact a global staff member to appeal your semilock. Click the button below to call a global staff member.": "如果你没有受信任的账号,你得联系全服管理来申请解除你的锁定,点这个按钮来叫全服管理。", + "Please PM the staff member who punished you. If you don't know who punished you, ask another room staff member; they will redirect you to the correct user. If you are banned or blacklisted from the room, use /roomauth [name of room] to get a list of room staff members. Bold names are online.": "请私信那个惩罚你的管理,如果你不知道是谁惩罚了你,那就问该房间的另一个管理员;他们会帮你找到该找的人。如果你被列入了房间的黑名单或者被ban了,使用/roomauth [房间的名字]来得到房间管理员的名单。那些粗体字的是在线的。", + "Do not PM staff if you are locked (signified by the symbol in front of your username). Locks are a different type of punishment; to appeal a lock, make a help ticket by clicking the Back button and then selecting the most relevant option.": "如果你被锁定了,不要私信管理(你的用户名会被标记上)。锁定是一种不同类型的惩罚;想要申诉解除锁定就点击返回按钮并选择一个和你的情况最贴切的选项,来发一个帮助请求。", + "Maybe one of these options will be helpful?": "也许这些选项能帮到你?", + "If you lost your password, click the button below to request a password reset. We will need to clarify a few pieces of information before resetting the account. Please note that password resets are low priority and may take a while; we recommend using a new account while waiting.": "如果你丢了你的密码,请点击这个按钮来申请重置密码。我们会先需要查清一些信息才能帮你重置密码。请注意,密码重置是低优先级的工作,所以我们不会很快来处理;建议你先开个新的账号用用。", + "Request a password reset": "请求重置密码", + "If you are a room driver or up in a public room, and you need help watching the chat, one or more global staff members would be happy to assist you!": "如果你是一个公共房间的司机或者更高的权限,并且你需要帮助来看管这个房间,全服管理会很乐意来帮你。", + "If your issue is not handled above, click the button below to talk to a global staff member. Please be ready to explain the situation.": "如果以上的选项不能解决你的问题,点击这个按钮就可以跟全服管理说话。请准备好解释相关情况。", + "Malformed help request.": "格式错误的帮助请求。", + "PM Harassment": "私聊中的骚扰", + "Battle Harassment": "对战中骚扰", + "Inappropriate Username": "不合适的用户名", + "Inappropriate Pokemon Nicknames": "不合适的宝可梦昵称", + "Appeal": "申诉", + "IP-Appeal": "IP申诉", + "ISP-Appeal": "ISP申诉", + "Public Room Assistance Request": "公共房间助理的请求", + "Other": "其他", + "I want to report someone": "我想要举报某人。", + "Someone is harassing me in PMs": "有人在私聊中骚扰我", + "Someone is harassing me in a battle": "有人在对战中骚扰我", + "Someone is using an offensive username": "有人使用了不合适的用户名", + "Someone is using offensive Pokemon nicknames": "有人给他的宝可梦取了不合适的昵称", + "I want to appeal a punishment": "我想要申请解除惩罚", + "I want to appeal my permalock": "我想要申请解除永久锁定", + "I want to appeal my lock": "我想要申请解除锁定", + "I'm locked because I have the same IP as someone I don't recognize": "我因为用了和别人一样的IP被锁定了,但我并不认识那个人。", + "I can't talk in chat because of my ISP": "我不能在房间里说话,因为我有网络代理", + "I'm locked because of a proxy or VPN": "因为我开了代理或是VPN,我被锁定了", + "Yes, I have an autoconfirmed account": "是的,我有被确认的账号", + "No, I don't have an autoconfirmed account": "不,我没有被确认的账号", + "Something else": "其他", + "I lost my password": "我忘了我的密码", + "I need global staff to help watch a public room": "我需要全服管理来帮我看管一个公共房间", + "Report harassment in a private message (PM)": "举报私聊中的骚扰行为", + "Report harassment in a battle": "举报对战中的骚扰行为", + "Report an inappropriate username": "举报不合适的用户名", + "Report inappropriate Pokemon nicknames": "举报不合适的宝可梦昵称", + "Appeal your lock": "申请解除锁定", + "Appeal IP lock": "申请解除IP锁定", + "Appeal ISP lock": "申请解除代理锁定", + "Call a Global Staff member to help": "叫全服管理来帮助你", + "Call a Global Staff member": "叫来一个全服管理", + "Are you sure you want to submit a ticket for ${type}?": "你确定你想要为了${type}发出请求?", + "Yes, contact global staff": "是的,联系全服管理", + "No, cancel": "算了,取消", + "Help Ticket Stats": "帮助请求统计数据", + "Help tickets": "帮助请求", + "Status": "状态", + "Creator": "创建者", + "Ticket Type": "请求类别", + "Claimed by": "处理者", + "Action": "处理方法", + "And ${keys.length - count} more tickets.": "还有其他${keys.length - count}条请求", + "View all tickets": "展示所有的请求", + "Closed": "已关闭", + "Inactive": "不活跃", + "Claimed": "已被接手", + "Unclaimed": "未被接手", + "Claim": "接手", + "View": "显示", + "Log": "记录", + "Banned by": "封禁者", + "Username": "用户名", + "Expires": "到期时间", + "Logs": "记录", + "And ${banKeys.length - count} more ticket bans.": "还有其它${banKeys.length - count}个ticket ban", + "Ticket List": "请求的列表", + "Banned": "被封禁", + "Ticket Stats": "帮助请求统计数据", + "No ticket stats found.": "没有找到帮助请求数据", + "Previous Month": "前一个月", + "Staff Stats": "管理员统计数据", + "Next Month": "下一个月", + "Resolved": "已解决", + "Unresolved": "未解决", + "Dead": "不活跃", + "Type": "种类", + "Total Tickets": "所有请求", + "Average Total Time": "平均时间", + "Average Initial Wait": "平均最初的等待", + "Average Total Wait": "平均总的等待时间", + "Resolutions": "决议", + "Positive Result": "好的结果", + "Staff ID": "管理员账号", + "Number of Tickets": "请求数量", + "Average Time Per Ticket": "平均每次请求所需时间", + "This command cannot be broadcast in battles.": "这个指令在对战中不能被广播出来", + "Report someone": "举报某人", + "Appeal a punishment": "请求解除惩罚", + "Request help": "请求帮助", + "You need to choose a username before doing this. [TN: 'this' refers to opening a help ticket]": "你需要先取个用户名才能请求帮助。", + "Global staff can't make tickets. They can only use the form for reference.": "全服管理不能发帮助请求。他们只能使用表格以供参考", + "You already have an open ticket; please wait for global staff to respond.": "你已经有一个待处理的请求了;请等全服管理来处理", + "Due to high load, you are limited to creating ${maxTickets} tickets every hour.": "如果频繁发出请求的话会造成我们的工作量过大,所以你每小时只能发${maxTickets}个请求", + "Hi! Who was harassing you in private messages?": "你好!是谁在私聊中骚扰你呢?", + "Hi! Who was harassing you, and in which battle did it happen? Please post a link to the battle or a replay of the battle.": "你好!是谁在对战中骚扰你?请把那场比赛的链接或者回放提供给我们", + "Hi! Tell us the username that is inappropriate.": "你好!告诉我们是哪个用户名不合适?", + "Hi! Which user has Pokemon with inappropriate nicknames, and in which battle? Please post a link to the battle or a replay of the battle.": "你好!请告诉我们是哪场对战有人的宝可梦用了不合适的昵称?把链接或者回放发给我们。", + "Hi! Can you please explain why you feel your punishment is undeserved?": "你好!请你解释一下为什么你觉得你不该被惩罚。", + "Hi! How are you connecting to Showdown right now? At home, at school, on a phone using mobile data, or some other way?": "你好!你现在是在用什么方法登录呢?在家里?在学校?用手机流量?还是其他方法?", + "Hi! Which room(s) do you need us to help you watch?": "你好?你需要我们帮你看管哪个聊天室?", + "Hi! What seems to be the problem? Tell us about any people involved,\n and if this happened in a specific place on the site.": "你好!你遇到了什么样的问题?请告诉我们这个问题发生的地点和有关人员。", + "Hi! Please click the button below to give global staff permission to check PMs.": "你好!请点这个按钮来许可全服管理来查看你的私聊记录。", + " Or if ${reportTarget} is not the user you want to report, please tell us the name of the user who you want to report.": "如果${reportTarget}不是你想举报的人,请告诉我们你其实想举报谁。", + "Help Ticket": "帮助请求", + "Issue": "问题", + "A Global Staff member will be with you shortly.": "全服管理很快就来了。", + "${this.inputUsername} does not have an open ticket.": "${this.inputUsername}没有待处理的请求。", + "You closed ${ticket.creator}'s ticket.": "你关闭了${ticket.creator}的请求。", + "The reason is too long. It cannot exceed 300 characters.": "这个理由太长了,字符数不能超过300。", + "User '${this.targetUsername}' not found.": "找不到用户'${this.targetUsername}'。", + "${targetUser ? targetUser.name : target} is not ticket banned.": "${targetUser ? targetUser.name : target}没有被禁止发布帮助请求。", + "${targetUser ? targetUser.name : target}'s ticket ban is already expired.": "禁止 ${targetUser ? targetUser.name : target}发布请求的状态已经过期了。", + "You are already ignoring help ticket notifications. Use /helpticket unignore to receive notifications again.": "你已忽略了帮助请求的通知,使用/helpticket unignore来重新接收通知。", + "You are now ignoring help ticket notifications.": "你现在忽略了帮助请求的通知。", + "You are not ignoring help ticket notifications. Use /helpticket ignore to stop receiving notifications.": "你没有忽略帮助请求的通知,用/helpticket ignore来停止接收通知。", + "You will now receive help ticket notifications.": "你已开启接收帮助请求的通知。", + "${target} does not have a ticket.": "${target}没有请求。", + "You deleted ${target}'s ticket.": "你删掉了${target}的请求。", + + "Hi! All global staff members are busy right now and we apologize for the delay. ": "", + "Please make sure you have given us the permission to check the PMs between you and the user you reported. You can also provide any relevant context; for example, a replay of a battle with the person you're reporting.": "", + 'Please save the replay of the battle and provide a link to it in this chat, so we can see the harassment even if the battle expires. You can save the replay by clicking on the "Upload and share replay" button once the battle has ended.': "", + "Make sure you have provided the correct username, and if its meaning or why it is offensive is not obvious, please explain why it should not be allowed.": "", + 'Please save the replay of the battle and provide a link to it in this chat, so we can see the nicknames even if the battle expires. You can save the replay by clicking on the "Upload and share replay" button once the battle has ended.': "", + "Please clearly explain why you should be unlocked and we will review it as soon as possible.": "", + "Please give us all relevant information on how you are connecting to Pokémon Showdown (if it is through mobile data, at home, a school or work network, etc), and we will review your case as soon as possible.": "", + "Please tell us which room you need assistance with and a global staff member will join your room as soon as possible.": "", + "If your issue pertains to battle mechanics or is a question about Pokémon Showdown, you can ask in the <> chatroom.": "", + }, +}; diff --git a/translations/simplifiedchinese/main.ts b/translations/simplifiedchinese/main.ts index 45e82a1c8e2d..ab9405d36d25 100644 --- a/translations/simplifiedchinese/main.ts +++ b/translations/simplifiedchinese/main.ts @@ -16,11 +16,10 @@ export const translations: Translations = { "Global ranks": "全服权限", "+ Global Voice - They can use ! commands like !groups": "+ 全服信任用户 -可以使用!广播指令,比如!groups,并可以在限制发言期间发言", - "§ Section Leader - They oversee rooms in a particular section": "§ 分部头领 - 负责掌管一个分部的房间", "% Global Driver - The above, and they can also lock users and check for alts": "% 全服见习管理 - 同信任用户,并可以锁定用户或查看他们的小号", "@ Global Moderator - The above, and they can globally ban users": "@ 全服管理员 - 同上,并可以将用户从服务器封禁", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* 全服机器人 - 跟全服管理员一样,只不过是机器", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& 全服总管 - 可以在服务器做任何事,例如修改你现在看到的这条信息", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ 全服总管 - 可以在服务器做任何事,例如修改你现在看到的这条信息", "Room ranks": "房权限", "^ Prize Winner - They don't have any powers beyond a symbol.": "", @@ -43,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "管理员指令", "ADMIN COMMANDS": "总管指令", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(把/换成!就可以广播指令。广播功能需要:+ % @ # &)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(把/换成!就可以广播指令。广播功能需要:+ % @ # ~)", "Room punishments:": "房间处罚:", "warn - Displays a popup with the rules.": "warn - 显示规则与警告", @@ -127,14 +126,14 @@ export const translations: Translations = { "Your username contains a phrase banned by this room.": "用户名包含了禁止词汇", "Your status message contains a phrase banned by this room.": "状态内容包含了禁止词汇", - "You are ${lockType} and can only private message members of the global moderation team. ${lockExpiration}": "", - "Get help with this": "", - "The user \"${targetUser.name}\" is locked and cannot be PMed.": "", - "On this server, you must be of rank ${groupName} or higher to PM users.": "", - "This user is blocking private messages right now.": "", - "This ${Config.groups[targetUser.group].name} is too busy to answer private messages right now. Please contact a different staff member.": "", - "If you need help, try opening a help ticket": "", - "You are blocking private messages right now.": "", + "You are ${lockType} and can only private message members of the global moderation team. ${lockExpiration}": "你处于${lockType}的状态,这表示你只能私聊发消息给全服管理。${lockExpiration}", + "Get help with this": "用这个请求帮助", + "The user \"${targetUser.name}\" is locked and cannot be PMed.": "\"${targetUser.name}\"被锁定了,因此不能私聊他。", + "On this server, you must be of rank ${groupName} or higher to PM users.": "你必须是${groupName}以上的玩家才能在这个服务器里私信别人。", + "This user is blocking private messages right now.": "这个人拒收私信。", + "This ${Config.groups[targetUser.group].name} is too busy to answer private messages right now. Please contact a different staff member.": "${Config.groups[targetUser.group].name}太忙了,另找个全服管理来处理吧。", + "If you need help, try opening a help ticket": "如果你需要帮助,试试创建一个帮助请求", + "You are blocking private messages right now.": "你现在已拒收私信。", "You are blocking challenges right now.": "", "Your message contained banned words in this room.": "发言内容包含了房间内禁止词汇", diff --git a/translations/spanish/main.ts b/translations/spanish/main.ts index 793d555c997a..5544a6bcc999 100644 --- a/translations/spanish/main.ts +++ b/translations/spanish/main.ts @@ -16,11 +16,10 @@ export const translations: Translations = { "Global ranks": "Rangos Globales", "+ Global Voice - They can use ! commands like !groups": "+ Global Voice - Pueden utilizar comandos con ! como !groups", - "§ Section Leader - They oversee rooms in a particular section": "§ Section Leader - Supervisan las salas de una sección en particular", "% Global Driver - Like Voice, and they can lock users and check for alts": "% Global Driver - Como los Voice, y también pueden dar locks y revisar las alts", "@ Global Moderator - The above, and they can globally ban users": "@ Global Moderator - Lo mismo que arriba y además pueden expulsar globalmente del servidor", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* Global Bot - Igual que un moderador, pero el símbolo identifica que es un Bot", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& Global Administrator - Pueden hacer cualquier cosa, como cambiar lo que dice este mensaje", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ Global Administrator - Pueden hacer cualquier cosa, como cambiar lo que dice este mensaje", "Room ranks": "Rangos de Sala", "^ Prize Winner - They don't have any powers beyond a symbol.": "^ Prize Winner - No tienen ningún poder más allá del símbolo.", @@ -43,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "COMANDOS DE MODERATOR", "ADMIN COMMANDS": "COMANDOS DE ADMINISTRATOR", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(sustituye / con ! para hacer público un comando. Esto requiere: + % @ # &)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(sustituye / con ! para hacer público un comando. Esto requiere: + % @ # ~)", "Room punishments:": "Sanciones de la sala:", "warn - Displays a popup with the rules.": "warn - Muestra una ventana de diálogo con las reglas.", diff --git a/translations/spanish/repeats.ts b/translations/spanish/repeats.ts index 8a21af575f66..e8a5478d6721 100644 --- a/translations/spanish/repeats.ts +++ b/translations/spanish/repeats.ts @@ -10,10 +10,10 @@ export const translations: Translations = { "Interval": "Intervalo", "every ${minutes} minute(s)": "cada ${minutes} minuto(s)", "every ${messages} chat message(s)": "cada ${messages} mensaje(s) en el chat", - "Raw text": "", + "Raw text": "Texto sin formato", "Remove": "Eliminar", "Remove all repeats": "Eliminar todas las repeticiones", - "Repeat names must include at least one alphanumeric character.": "", + "Repeat names must include at least one alphanumeric character.": "Los nombres de repeats deben incluir al menos un carácter alfanumérico.", "You must specify an interval as a number of minutes or chat messages between 1 and 1440.": "Debes especificar un intervalo como un número de minutos o mensajes en el chat entre 1 y 1440.", 'The phrase labeled with "${id}" is already being repeated in this room.': 'La frase registrada como "${id}" ya está siendo repetida en esta sala.', '${user.name} set the phrase labeled with "${id}" to be repeated every ${interval} minute(s).': '${user.name} estableció la frase como "${id}" para ser repetida cada ${interval} minuto(s).', diff --git a/translations/traditionalchinese/main.ts b/translations/traditionalchinese/main.ts index 52f3dfe14e01..f28cc036ac8c 100644 --- a/translations/traditionalchinese/main.ts +++ b/translations/traditionalchinese/main.ts @@ -16,11 +16,10 @@ export const translations: Translations = { "Global ranks": "全服權限", "+ Global Voice - They can use ! commands like !groups": "+ 全服信任用戶 -可以使用!廣播指令,比如!groups,並可以在限制發言期間發言", - "§ Section Leader - They oversee rooms in a particular section": "§ 分部頭領 - 負責掌管一個分部的房間", "% Global Driver - Like Voice, and they can lock users and check for alts": "% 全服見習管理 - 同信任用戶,並可以鎖定用戶或查看他們的小號 ", "@ Global Moderator - The above, and they can globally ban users": "@ 全服管理員 - 同上,並可以將用戶從服務器封禁", "* Global Bot - Like Moderator, but makes it clear that this user is a bot": "* 全服機器人 - 跟全服管理員一樣,隻不過是機器", - "& Global Administrator - They can do anything, like change what this message says and promote users globally": "& 全服總管 - 可以在服務器做任何事,例如修改你現在看到的這條信息", + "~ Global Administrator - They can do anything, like change what this message says and promote users globally": "~ 全服總管 - 可以在服務器做任何事,例如修改你現在看到的這條信息", "Room ranks": "房權限", "^ Prize Winner - They don't have any powers beyond a symbol.": "", @@ -43,7 +42,7 @@ export const translations: Translations = { "MODERATOR COMMANDS": "管理員指令", "ADMIN COMMANDS": "總管指令", - "(replace / with ! to broadcast. Broadcasting requires: + % @ # &)": "(把/換成!就可以廣播指令。廣播功能需要:+ % @ # &)", + "(replace / with ! to broadcast. Broadcasting requires: + % @ # ~)": "(把/換成!就可以廣播指令。廣播功能需要:+ % @ # ~)", "Room punishments:": "房間處罰:", "warn - Displays a popup with the rules.": "warn - 顯示規則與警告", diff --git a/tsconfig.json b/tsconfig.json index 1c921870f551..f0cd522688e5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,6 +15,7 @@ "incremental": true, "allowUnreachableCode": false, "esModuleInterop": true, + "noImplicitOverride": false, "useDefineForClassFields": false }, "types": ["node"], @@ -26,6 +27,7 @@ "./config/*.ts", "./data/*", "./data/text/*", + "./data/random-battles/**/*", "./data/mods/*/*", "./dev-tools/*.ts", "./lib/*.ts",
`; + const standings = this.getStandings(); + buf += ``; + buf += `

Nomination: ${nom.primaryID}


`; + buf += `By: ${nom.by} (on ${Chat.toTimestamp(new Date(nom.date))})
`; + buf += `Recommended punishment: ${standings[nom.standing]}
`; + buf += `
Modlog`; + buf += `
`; + const modlog = await this.fetchModlog(nom.primaryID); + if (!modlog) { + buf += `None found.`; + } else { + buf += this.displayModlog(modlog.results); + } + buf += `
`; + if (nom.alts.length) { + buf += `
Listed alts`; + for (const [i, alt] of nom.alts.entries()) { + buf += `- ${alt}: `; + buf += `
`; + buf += this.standingDropdown("standing"); + buf += ` `; + buf += ` `; + buf += `
`; + if (nom.alts[i + 1]) buf += `
`; + } + buf += `
`; + } + if (nom.ips.length) { + buf += `
Listed IPs`; + for (const [i, ip] of nom.ips.entries()) { + const ipData = await getIPData(ip); + buf += `- ${ip}`; + if (ipData) { + buf += `(ISP: ${ipData.isp}, loc: ${ipData.city}, ${ipData.regionName} in ${ipData.country})`; + } + buf += `: `; + buf += `
`; + buf += this.standingDropdown("standing"); + buf += ` `; + buf += ` `; + buf += `
`; + if (nom.ips[i + 1]) buf += `
`; + } + buf += `
`; + } + const [matches] = await LoginServer.request('ipmatches', { + id: nom.primaryID, + }); + if (matches?.results?.length) { + buf += `
Registration IP matches`; + for (const [i, {userid, banstate}] of matches.results.entries()) { + buf += `- ${userid}: `; + buf += `
`; + buf += this.standingDropdown("standing", banstate + ""); + buf += `
`; + if (matches.results[i + 1]) buf += `
`; + } + buf += `
`; + } + buf += `

Staff notes:

`; + buf += `

${Chat.formatText(nom.info).replace(/\n/ig, '
')}

`; + buf += `
Act on primary:`; + buf += `
`; + buf += `Standing: ${this.standingDropdown('standing')}`; + buf += `
Notes:
`; + buf += `
`; + buf += ``; + buf += `

`; + buf += ``; + return buf; + } + standingDropdown(elemName: string, curStanding: string | null = null) { + let buf = ``; + return buf; + } + getStandings() { + if (Config.standings) return Config.standings; + Config.standings = { + '-20': "Confirmed", + '-10': "Autoconfirmed", + '0': "New", + "20": "Permalock", + "30": "Permaban", + "100": "Disabled", + }; + return Config.standings; + } + displayAll(canEdit: boolean) { + let buf = `
`; + buf += ``; + buf += `

Pending perma nominations


`; + if (!this.noms.length) { + buf += `None found.`; + return buf; + } + for (const nom of this.noms) { + buf += this.display(nom, canEdit); + buf += `
`; + } + return buf; + } + displayNomPage() { + let buf = `

Make a nomination for a permanent punishment.


`; + // const [primary, rawAlts, rawIps, details] = Utils.splitFirst(target, '|', 3).map(f => f.trim()); + buf += `
`; + buf += `
`; + buf += `Primary userid:
`; + buf += `Alts:

(Separated by commas)
`; + buf += `Static IPs:

(Separated by commas)

`; + buf += `Punishment: `; + buf += ``; + buf += `
`; + buf += `Please explain why this user deserves a permanent punishment
`; + buf += `Note: Modlogs are automatically included in review and do not need to be added here.
`; + buf += `
`; + buf += ``; + return buf; + } + getDisplayButton() { + const unclaimed = this.noms.filter(f => !f.claimed); + let buf = `
`; + if (!this.noms.length) { + buf += `No permalock nominations active.`; + } else { + let className = 'button'; + if (unclaimed.length) className += ' notifying'; + buf += ``; + } + buf += `
`; + return buf; + } +}; + +export const commands: Chat.ChatCommands = { + perma: { + ''(target, room, user) { + this.checkCan('lock'); + if (!user.can('rangeban')) { + return this.parse(`/j view-permalocks-submit`); + } else { + return this.parse(`/j view-permalocks-list`); + } + }, + viewnom(target) { + this.checkCan('rangeban'); + return this.parse(`/j view-permalocks-view-${toID(target)}`); + }, + submit(target, room, user) { + this.checkCan('lock'); + return Nominations.add(target, this.connection); + }, + list() { + this.checkCan('lock'); + return this.parse(`/j view-permalocks-list`); + }, + nom() { + this.checkCan('lock'); + return this.parse(`/j view-permalocks-submit`); + }, + async actmain(target, room, user) { + this.checkCan('rangeban'); + const [primaryName, standingName, postReason] = Utils.splitFirst(target, ',', 2).map(f => f.trim()); + const primary = toID(primaryName); + if (!primary) return this.popupReply(`Invalid primary username.`); + const nom = Nominations.find(primary); + if (!nom) return this.popupReply(`No permalock nomination found for ${primary}.`); + const standing = parseInt(standingName); + const standings = Nominations.getStandings(); + if (!standings[standing]) return this.popupReply(`Invalid standing.`); + if (!toID(postReason)) return this.popupReply(`A reason must be given.`); + // todo thread num + const threadNum = Config.permathread; + if (!threadNum) { + throw new Chat.ErrorMessage("The link to the perma has not been set - the post could not be made."); + } + let postBuf = `[b][url="https://${Config.routes.root}/users/${primary}"]${primary}[/url][/b]`; + const icon = Nominations.icons[user.id] ? `:${Nominations.icons[user.id]}: - ` : ``; + postBuf += ` was added to ${standings[standing]} by ${user.name} (${icon}${postReason}).\n`; + postBuf += `Nominated by ${nom.by}.\n[spoiler=Nomination notes]${nom.info}[/spoiler]\n`; + postBuf += `${nom.alts.length ? `[spoiler=Alts]${nom.alts.join(', ')}[/spoiler]` : ""}\n`; + if (nom.ips.length) { + postBuf += `[spoiler=IPs]`; + for (const ip of nom.ips) { + const ipData = await getIPData(ip); + postBuf += `- [url=https://whatismyipaddress.com/ip/${ip}]${ip}[/url]`; + if (ipData) { + postBuf += ` (ISP: ${ipData.isp}, loc: ${ipData.city}, ${ipData.regionName} in ${ipData.country})`; + } + postBuf += '\n'; + } + postBuf += `[/spoiler]`; + } + + const modlog = await Nominations.fetchModlog(nom.primaryID); + if (modlog?.results.length) { + let rawHTML = Nominations.displayModlog(modlog.results); + rawHTML = rawHTML.replace(/
/g, '\n'); + rawHTML = Utils.stripHTML(rawHTML); + rawHTML = rawHTML.replace(///g, '/'); + postBuf += `\n[spoiler=Modlog]${rawHTML}[/spoiler]`; + } + + const res = await Smogon.post( + threadNum, + postBuf, + ); + if (!res || res.error) { + return this.popupReply(`Error making post: ${res?.error}`); + } + const url = `https://smogon.com/forums/threads/${threadNum}/post-${res.post.post_id}`; + const result = await LoginServer.request('setstanding', { + user: primary, + standing, + reason: url, + actor: user.id, + }); + if (result[1]) { + return this.popupReply(`Error changing standing: ${result[1].message}`); + } + nom.post = url; + this.popupReply(`|html|Standing successfully changed. Smogon post can be found at this link.`); + }, + async standing(target) { + this.checkCan('rangeban'); + const [name, rawStanding, reason] = Utils.splitFirst(target, ',', 2).map(f => f.trim()); + const id = toID(name); + if (!id || id.length > 18) { + return this.popupReply('Invalid username: ' + name); + } + const standingNum = parseInt(rawStanding); + if (!standingNum) { + return this.popupReply(`Invalid standing: ` + rawStanding); + } + if (!reason.length) { + return this.popupReply(`A reason must be given.`); + } + const res = await LoginServer.request('setstanding', { + user: id, + standing: standingNum, + reason, + actor: this.user.id, + }); + if (res[1]) { + return this.popupReply(`Error in standing change: ` + res[1].message); + } + this.popupReply(`Standing successfully changed to ${standingNum} for ${id}.`); + // no need to modlog, is in usermodlog already + }, + async ipstanding(target) { + this.checkCan('rangeban'); + const [ip, standingName, reason] = Utils.splitFirst(target, ',', 2).map(f => f.trim()); + if (!IPTools.ipToNumber(ip)) { + return this.popupReply(`Invalid IP: ${ip}`); + } + const standingNum = parseInt(standingName); + if (!Config.standings[`${standingNum}`]) { + return this.popupReply(`Invalid standing: ${standingName}.`); + } + if (!reason.length) { + return this.popupReply('Specify a reason.'); + } + const res = await LoginServer.request('ipstanding', { + reason, + standing: standingNum, + ip, + actor: this.user.id, + }); + if (res[1]) { + return this.popupReply(`Error changing standing: ${res[1].message}`); + } + this.popupReply(`All standings on the IP ${ip} changed successfully to ${standingNum}.`); + this.globalModlog(`IPSTANDING`, null, `${standingNum}${reason ? ` (${reason})` : ""}`, ip); + }, + resolve(target) { + this.checkCan('rangeban'); + Nominations.close(target, this); + }, + seticon(target, room, user) { + this.checkCan('rangeban'); + let [monName, targetId] = target.split(','); + if (!targetId) targetId = user.id; + const mon = Dex.species.get(monName); + if (!mon.exists) { + return this.errorReply(`Species ${monName} does not exist.`); + } + Nominations.icons[targetId] = mon.name.toLowerCase(); + Nominations.save(); + this.sendReply( + `|html|Updated ${targetId === user.id ? 'your' : `${targetId}'s`} permalock post icon to ` + + `` + ); + }, + deleteicon(target, room, user) { + this.checkCan('rangeban'); + const targetID = toID(target); + if (!Nominations.icons[targetID]) { + return this.errorReply(`${targetID} does not have an icon set.`); + } + delete Nominations.icons[targetID]; + Nominations.save(); + this.sendReply(`Removed ${targetID}'s permalock post icon.`); + }, + help: [ + '/perma nom OR /perma - Open the page to make a nomination for a permanent punishment. Requires: % @ ~', + '/perma list - View open nominations. Requires: % @ ~', + '/perma viewnom [userid] - View a nomination for the given [userid]. Requires: ~', + ], + }, +}; + +export const pages: Chat.PageTable = { + permalocks: { + list(query, user, conn) { + this.checkCan('lock'); + this.title = '[Permalock Nominations]'; + return Nominations.displayAll(user.can('rangeban')); + }, + view(query, user) { + this.checkCan('rangeban'); + const id = toID(query.shift()); + if (!id) return this.errorReply(`Invalid userid.`); + const nom = Nominations.find(id); + if (!nom) return this.errorReply(`No nomination found for '${id}'.`); + this.title = `[Perma Nom] ${nom.primaryID}`; + return Nominations.displayActionPage(nom); + }, + submit() { + this.checkCan('lock'); + this.title = '[Perma Nom] Create'; + return Nominations.displayNomPage(); + }, + }, +}; + +process.nextTick(() => { + Chat.multiLinePattern.register('/perma(noms?)? '); +}); diff --git a/server/chat-plugins/poll.ts b/server/chat-plugins/poll.ts index 99698e34bc74..2710e055b624 100644 --- a/server/chat-plugins/poll.ts +++ b/server/chat-plugins/poll.ts @@ -117,7 +117,7 @@ export class Poll extends Rooms.MinorActivity { if (this.maxVotes && this.totalVotes >= this.maxVotes) { this.end(this.room); return this.room - .add(`|c|&|/log The poll hit the max vote cap of ${this.maxVotes}, and has ended.`) + .add(`|c|~|/log The poll hit the max vote cap of ${this.maxVotes}, and has ended.`) .update(); } @@ -469,8 +469,8 @@ export const commands: Chat.ChatCommands = { this.addModAction(room.tr`A poll was started by ${user.name}.`); }, newhelp: [ - `/poll create [question], [option1], [option2], [...] - Creates a poll. Requires: % @ # &`, - `/poll createmulti [question], [option1], [option2], [...] - Creates a poll, allowing for multiple answers to be selected. Requires: % @ # &`, + `/poll create [question], [option1], [option2], [...] - Creates a poll. Requires: % @ # ~`, + `/poll createmulti [question], [option1], [option2], [...] - Creates a poll, allowing for multiple answers to be selected. Requires: % @ # ~`, `To queue a poll, use [queue], [queuemulti], [queuehtml], or [htmlqueuemulti].`, `Polls can be used as quiz questions. To do this, prepend all correct answers with a +.`, ], @@ -480,7 +480,7 @@ export const commands: Chat.ChatCommands = { this.checkCan('mute', null, room); this.parse(`/join view-pollqueue-${room.roomid}`); }, - viewqueuehelp: [`/viewqueue - view the queue of polls in the room. Requires: % @ # &`], + viewqueuehelp: [`/viewqueue - view the queue of polls in the room. Requires: % @ # ~`], deletequeue(target, room, user) { room = this.requireRoom(); @@ -509,7 +509,7 @@ export const commands: Chat.ChatCommands = { this.refreshPage(`pollqueue-${room.roomid}`); }, deletequeuehelp: [ - `/poll deletequeue [number] - deletes poll at the corresponding queue slot (1 = next, 2 = the one after that, etc). Requires: % @ # &`, + `/poll deletequeue [number] - deletes poll at the corresponding queue slot (1 = next, 2 = the one after that, etc). Requires: % @ # ~`, ], clearqueue(target, room, user, connection, cmd) { room = this.requireRoom(); @@ -523,7 +523,7 @@ export const commands: Chat.ChatCommands = { this.sendReply(this.tr`Cleared poll queue.`); }, clearqueuehelp: [ - `/poll clearqueue - deletes the queue of polls. Requires: % @ # &`, + `/poll clearqueue - deletes the queue of polls. Requires: % @ # ~`, ], deselect: 'select', @@ -585,8 +585,8 @@ export const commands: Chat.ChatCommands = { } }, timerhelp: [ - `/poll timer [minutes] - Sets the poll to automatically end after [minutes] minutes. Requires: % @ # &`, - `/poll timer clear - Clears the poll's timer. Requires: % @ # &`, + `/poll timer [minutes] - Sets the poll to automatically end after [minutes] minutes. Requires: % @ # ~`, + `/poll timer clear - Clears the poll's timer. Requires: % @ # ~`, ], results(target, room, user) { @@ -610,7 +610,7 @@ export const commands: Chat.ChatCommands = { this.privateModAction(room.tr`The poll was ended by ${user.name}.`); poll.end(room, Poll); }, - endhelp: [`/poll end - Ends a poll and displays the results. Requires: % @ # &`], + endhelp: [`/poll end - Ends a poll and displays the results. Requires: % @ # ~`], show: '', display: '', @@ -659,19 +659,19 @@ export const commands: Chat.ChatCommands = { this.sendReply( `|html|
/poll allows rooms to run their own polls (limit 1 at a time).
` + `Polls can be used as quiz questions, by putting + before correct answers.
` + - `/poll create [question], [option1], [option2], [...] - Creates a poll. Requires: % @ # &
` + - `/poll createmulti [question], [option1], [option2], [...] - Creates a poll, allowing for multiple answers to be selected. Requires: % @ # &
` + - `/poll htmlcreate(multi) [question], [option1], [option2], [...] - Creates a poll, with HTML allowed in the question and options. Requires: # &
` + + `/poll create [question], [option1], [option2], [...] - Creates a poll. Requires: % @ # ~` + + `/poll createmulti [question], [option1], [option2], [...] - Creates a poll, allowing for multiple answers to be selected. Requires: % @ # ~
` + + `/poll htmlcreate(multi) [question], [option1], [option2], [...] - Creates a poll, with HTML allowed in the question and options. Requires: # ~
` + `/poll vote [number] - Votes for option [number].
` + - `/poll timer [minutes] - Sets the poll to automatically end after [minutes]. Requires: % @ # &.
` + + `/poll timer [minutes] - Sets the poll to automatically end after [minutes]. Requires: % @ # ~.
` + `/poll results - Shows the results of the poll without voting. NOTE: you can't go back and vote after using this.
` + `/poll display - Displays the poll.
` + - `/poll end - Ends a poll and displays the results. Requires: % @ # &.
` + - `/poll queue [question], [option1], [option2], [...] - Add a poll in queue. Requires: % @ # &
` + + `/poll end - Ends a poll and displays the results. Requires: % @ # ~.
` + + `/poll queue [question], [option1], [option2], [...] - Add a poll in queue. Requires: % @ # ~
` + `/poll deletequeue [number] - Deletes poll at the corresponding queue slot (1 = next, 2 = the one after that, etc).
` + - `/poll clearqueue - Deletes the queue of polls. Requires: % @ # &.
` + - `/poll viewqueue - View the queue of polls in the room. Requires: % @ # &
` + - `/poll maxvotes [number] - Set the max poll votes to the given [number]. Requires: % @ # &
` + + `/poll clearqueue - Deletes the queue of polls. Requires: % @ # ~.
` + + `/poll viewqueue - View the queue of polls in the room. Requires: % @ # ~
` + + `/poll maxvotes [number] - Set the max poll votes to the given [number]. Requires: % @ # ~
` + `
` ); }, diff --git a/server/chat-plugins/quotes.ts b/server/chat-plugins/quotes.ts index 7f5d7e83efad..4557e952d383 100644 --- a/server/chat-plugins/quotes.ts +++ b/server/chat-plugins/quotes.ts @@ -45,8 +45,7 @@ export const commands: Chat.ChatCommands = { }, randquotehelp: [`/randquote [showauthor] - Show a random quote from the room. Add 'showauthor' to see who added it and when.`], - addquote: 'quote', - quote(target, room, user) { + addquote(target, room, user) { room = this.requireRoom(); if (!room.persist) { return this.errorReply("This command is unavailable in temporary rooms."); @@ -54,7 +53,7 @@ export const commands: Chat.ChatCommands = { target = target.trim(); this.checkCan('mute', null, room); if (!target) { - return this.parse(`/help quote`); + return this.parse(`/help addquote`); } if (!quotes[room.roomid]) quotes[room.roomid] = []; @@ -78,35 +77,35 @@ export const commands: Chat.ChatCommands = { this.privateModAction(`${user.name} added a new quote: "${collapsedQuote}".`); return this.modlog(`ADDQUOTE`, null, collapsedQuote); }, - quotehelp: [`/quote [quote] - Adds [quote] to the room's quotes. Requires: % @ # &`], + addquotehelp: [`/addquote [quote] - Adds [quote] to the room's quotes. Requires: % @ # ~`], removequote(target, room, user) { room = this.requireRoom(); this.checkCan('mute', null, room); if (!quotes[room.roomid]?.length) return this.errorReply(`This room has no quotes.`); - const index = parseInt(target.trim()); + const roomQuotes = quotes[room.roomid]; + const index = toID(target) === 'last' ? roomQuotes.length - 1 : parseInt(toID(target)) - 1; if (isNaN(index)) { return this.errorReply(`Invalid index.`); } - const roomQuotes = quotes[room.roomid]; - if (!roomQuotes[index - 1]) { + if (!roomQuotes[index]) { return this.errorReply(`Quote not found.`); } - const [removed] = roomQuotes.splice(index - 1, 1); + const [removed] = roomQuotes.splice(index, 1); const collapsedQuote = removed.quote.replace(/\n/g, ' '); - this.privateModAction(`${user.name} removed quote indexed at ${index}: "${collapsedQuote}" (originally added by ${removed.userid}).`); + this.privateModAction(`${user.name} removed quote indexed at ${index + 1}: "${collapsedQuote}" (originally added by ${removed.userid}).`); this.modlog(`REMOVEQUOTE`, null, collapsedQuote); saveQuotes(); this.refreshPage(`quotes-${room.roomid}`); }, - removequotehelp: [`/removequote [index] - Removes the quote from the room's quotes. Requires: % @ # &`], + removequotehelp: [`/removequote [index] - Removes the quote from the room's quotes. Requires: % @ # ~`], viewquote(target, room, user) { room = this.requireRoom(); const roomQuotes = quotes[room.roomid]; if (!roomQuotes?.length) return this.errorReply(`This room has no quotes.`); const [num, showAuthor] = Utils.splitFirst(target, ','); - const index = parseInt(num) - 1; + const index = num === 'last' ? roomQuotes.length - 1 : parseInt(num) - 1; if (isNaN(index)) { return this.errorReply(`Invalid index.`); } @@ -122,7 +121,6 @@ export const commands: Chat.ChatCommands = { viewquotehelp: [ `/viewquote [index][, params] - View the quote from the room's quotes.`, `If 'showauthor' is used for the [params] argument, it shows who added the quote and when.`, - `Requires: % @ # &`, ], viewquotes: 'quotes', @@ -132,6 +130,18 @@ export const commands: Chat.ChatCommands = { this.parse(`/join view-quotes-${targetRoom.roomid}`); }, quoteshelp: [`/quotes [room] - Shows all quotes for [room]. Defaults the room the command is used in.`], + + quote() { + this.sendReply(`/quote as a method of adding quotes has been deprecated. Use /addquote instead.`); + return this.parse(`/help quote`); + }, + quotehelp: [ + "/randquote [showauthor] - Show a random quote from the room. Add 'showauthor' to see who added it and when.", + "/removequote [index] - Removes the quote from the room's quotes. Requires: % @ # ~", + "/viewquote [index][, params] - View the quote from the room's quotes.", + "If 'showauthor' is used for the [params] argument, it shows who added the quote and when.", + "/quotes [room] - Shows all quotes for [room]. Defaults the room the command is used in.", + ], }; export const pages: Chat.PageTable = { diff --git a/server/chat-plugins/randombattles/index.ts b/server/chat-plugins/randombattles/index.ts index 2d620b6c3cd8..5c4df7ad4a9c 100644 --- a/server/chat-plugins/randombattles/index.ts +++ b/server/chat-plugins/randombattles/index.ts @@ -1,12 +1,11 @@ /** * Random Battles chat-plugin - * Written by Kris with inspiration from sirDonovan and The Immortal + * Written by dhelmise with inspiration from sirDonovan and The Immortal * * Set probability code written by Annika */ import {FS, Utils} from '../../../lib'; -import {SSBSet, ssbSets} from '../../../data/mods/ssb/random-teams'; interface SetCriteria { @@ -107,9 +106,10 @@ function setProbability( const GEN_NAMES: {[k: string]: string} = { gen1: '[Gen 1]', gen2: '[Gen 2]', gen3: '[Gen 3]', gen4: '[Gen 4]', gen5: '[Gen 5]', gen6: '[Gen 6]', gen7: '[Gen 7]', + gen8: '[Gen 8]', gen9: '[Gen 9]', }; -const STAT_NAMES: {[k: string]: string} = { +export const STAT_NAMES: {[k: string]: string} = { hp: "HP", atk: "Atk", def: "Def", spa: "SpA", spd: "SpD", spe: "Spe", }; @@ -123,7 +123,8 @@ function formatAbility(ability: Ability | string) { ability = Dex.abilities.get(ability); return `${ability.name}`; } -function formatNature(n: string) { + +export function formatNature(n: string) { const nature = Dex.natures.get(n); return nature.name; } @@ -142,44 +143,83 @@ function formatItem(item: Item | string) { } } +function formatType(type: TypeInfo | string) { + type = Dex.types.get(type); + return type.name; +} + /** * Gets the sets for a Pokemon for a format that uses the new schema. * Old formats will use getData() */ -function getSets(species: string | Species, format = 'gen9randombattle'): any[] | null { +function getSets(species: string | Species, format: string | Format = 'gen9randombattle'): { + level: number, + sets: any[], +} | null { const dex = Dex.forFormat(format); + format = Dex.formats.get(format); species = dex.species.get(species); + const isDoubles = format.gameType === 'doubles'; + let folderName = format.mod; + if (format.team === 'randomBaby') folderName += 'baby'; + if (species.isNonstandard === 'CAP') folderName += 'cap'; const setsFile = JSON.parse( - FS(`data/${dex.isBase ? '' : `mods/${dex.currentMod}/`}random-sets.json`).readIfExistsSync() || '{}' + FS(`data/random-battles/${folderName}/${isDoubles ? 'doubles-' : ''}sets.json`) + .readIfExistsSync() || '{}' ); - const sets = setsFile[species.id]?.sets; - if (!sets?.length) return null; - return sets; + const data = setsFile[species.id]; + if (!data?.sets?.length) return null; + return data; } /** - * Gets the random battles data for a Pokemon for formats before gen 9. + * Gets the random battles data for a Pokemon for formats with the old schema. */ function getData(species: string | Species, format: string | Format): any | null { const dex = Dex.forFormat(format); + format = Dex.formats.get(format); species = dex.species.get(species); const dataFile = JSON.parse( - FS(`data/mods/${dex.currentMod}/random-data.json`).readIfExistsSync() || '{}' + FS(`data/random-battles/${format.mod}/data.json`).readIfExistsSync() || '{}' ); const data = dataFile[species.id]; if (!data) return null; return data; } +/** + * Gets the default level for a Pokemon in the given format. + * Returns 0 if the format doesn't use default levels or it can't be determined. + */ +function getLevel(species: string | Species, format: string | Format): number { + const dex = Dex.forFormat(format); + format = Dex.formats.get(format); + species = dex.species.get(species); + switch (format.id) { + // Only formats where levels are not all manually assigned should be copied here + case 'gen2randombattle': + const levelScale: {[k: string]: number} = { + ZU: 81, + ZUBL: 79, + PU: 77, + PUBL: 75, + NU: 73, + NUBL: 71, + UU: 69, + UUBL: 67, + OU: 65, + Uber: 61, + }; + return levelScale[species.tier] || 80; + } + return 0; +} + function getRBYMoves(species: string | Species) { species = Dex.mod(`gen1`).species.get(species); const data = getData(species, 'gen1randombattle'); if (!data) return false; - let buf = ``; - if (data.moves) { - buf += `
Randomized moves: `; - buf += data.moves.map(formatMove).sort().join(", "); - } + let buf = `
Level: ${data.level}`; if (data.comboMoves) { buf += `
Combo moves: `; buf += data.comboMoves.map(formatMove).sort().join(", "); @@ -188,9 +228,13 @@ function getRBYMoves(species: string | Species) { buf += `
Exclusive moves: `; buf += data.exclusiveMoves.map(formatMove).sort().join(", "); } - if (data.essentialMove) { - buf += `
Essential move: `; - buf += formatMove(data.essentialMove); + if (data.essentialMoves) { + buf += `
Essential move${Chat.plural(data.essentialMoves)}: `; + buf += data.essentialMoves.map(formatMove).sort().join(", "); + } + if (data.moves) { + buf += `
Randomized moves: `; + buf += data.moves.map(formatMove).sort().join(", "); } if ( !data.moves && !data.comboMoves && @@ -214,7 +258,7 @@ function getLetsGoMoves(species: string | Species) { return data.moves.map(formatMove).sort().join(`, `); } -function battleFactorySets(species: string | Species, tier: string | null, gen = 'gen8', isBSS = false) { +function battleFactorySets(species: string | Species, tier: string | null, gen = 'gen9', isBSS = false) { species = Dex.species.get(species); if (typeof species.battleOnly === 'string') { species = Dex.species.get(species.battleOnly); @@ -223,7 +267,7 @@ function battleFactorySets(species: string | Species, tier: string | null, gen = const genNum = parseInt(gen[3]); if (isNaN(genNum) || genNum < 6 || (isBSS && genNum < 7)) return null; const statsFile = JSON.parse( - FS(`data${gen === 'gen9' ? '/' : `/mods/${gen}`}/${isBSS ? `bss-` : ``}factory-sets.json`).readIfExistsSync() || + FS(`data/random-battles/gen${genNum}/${isBSS ? `bss-` : ``}factory-sets.json`).readIfExistsSync() || "{}" ); if (!Object.keys(statsFile).length) return null; @@ -240,9 +284,16 @@ function battleFactorySets(species: string | Species, tier: string | null, gen = return {e: `${species.name} doesn't have any sets in ${TIERS[toID(tier)]} for ${formatName}.`}; } const setObj = t[species.id]; + if (genNum >= 9) { + buf += `Species rarity: ${setObj.weight} (higher is more common, max 10)
`; + } buf += `Sets for ${species.name} in${genNum === 8 ? `` : ` ${GEN_NAMES[gen]}`} ${TIERS[toID(tier)]}:
`; for (const [i, set] of setObj.sets.entries()) { - buf += `
Set ${i + 1}`; + if (genNum >= 9) { + buf += `
Set ${i + 1} (${set.weight}%)`; + } else { + buf += `
Set ${i + 1}`; + } buf += `
    `; buf += `
  • ${set.species}${set.gender ? ` (${set.gender})` : ``} @ ${Array.isArray(set.item) ? set.item.map(formatItem).join(" / ") : formatItem(set.item)}
  • `; buf += `
  • Ability: ${Array.isArray(set.ability) ? set.ability.map(formatAbility).join(" / ") : formatAbility(set.ability)}
  • `; @@ -250,6 +301,9 @@ function battleFactorySets(species: string | Species, tier: string | null, gen = if (set.level && set.level < 100) buf += `
  • Level: ${set.level}
  • `; if (set.shiny) buf += `
  • Shiny: Yes
  • `; if (set.happiness) buf += `
  • Happiness: ${set.happiness}
  • `; + if (genNum === 9 && set.teraType) { + buf += `
  • Tera Type: ${set.teraType.map(formatType).join(' / ')}
  • `; + } if (set.evs) { buf += `
  • EVs: `; const evs: string[] = []; @@ -280,41 +334,79 @@ function battleFactorySets(species: string | Species, tier: string | null, gen = const format = Dex.formats.get(`${gen}bssfactory`); if (!(species.id in statsFile)) return {e: `${species.name} doesn't have any sets in ${format.name}.`}; const setObj = statsFile[species.id]; - buf += `Sets for ${species.name} in ${format.name}:
    `; - for (const [i, set] of setObj.sets.entries()) { - buf += `
    Set ${i + 1}`; - buf += `
      `; - buf += `
    • ${set.species}${set.gender ? ` (${set.gender})` : ``} @ ${Array.isArray(set.item) ? set.item.map(formatItem).join(" / ") : formatItem(set.item)}
    • `; - buf += `
    • Ability: ${Array.isArray(set.ability) ? set.ability.map(formatAbility).join(" / ") : formatAbility(set.ability)}
    • `; - if (!set.level) buf += `
    • Level: 50
    • `; - if (set.level && set.level < 50) buf += `
    • Level: ${set.level}
    • `; - if (set.shiny) buf += `
    • Shiny: Yes
    • `; - if (set.happiness) buf += `
    • Happiness: ${set.happiness}
    • `; - if (set.evs) { - buf += `
    • EVs: `; - const evs: string[] = []; - let ev: string; - for (ev in set.evs) { - if (set.evs[ev] === 0) continue; - evs.push(`${set.evs[ev]} ${STAT_NAMES[ev]}`); + if (genNum >= 9) { + buf += `Species rarity: ${setObj.weight} (higher is more common, max 10)
      `; + buf += `Sets for ${species.name} in ${format.name}:
      `; + for (const [i, set] of setObj.sets.entries()) { + buf += `
      Set ${i + 1} (${set.weight}%)`; + buf += `
        `; + buf += `
      • ${Dex.forFormat(format).species.get(set.species).name} @ ${set.item.map(formatItem).join(" / ")}
      • `; + buf += `
      • Ability: ${set.ability.map(formatAbility).join(" / ")}
      • `; + buf += `
      • Level: 50
      • `; + buf += `
      • Tera Type: ${set.teraType.map(formatType).join(' / ')}
      • `; + if (set.evs) { + buf += `
      • EVs: `; + const evs: string[] = []; + let ev: string; + for (ev in set.evs) { + if (!set.evs[ev]) continue; + evs.push(`${set.evs[ev]} ${STAT_NAMES[ev]}`); + } + buf += `${evs.join(" / ")}
      • `; } - buf += `${evs.join(" / ")}`; - } - buf += `
      • ${Array.isArray(set.nature) ? set.nature.map(formatNature).join(" / ") : formatNature(set.nature)} Nature
      • `; - if (set.ivs) { - buf += `
      • IVs: `; - const ivs: string[] = []; - let iv: string; - for (iv in set.ivs) { - if (set.ivs[iv] === 31) continue; - ivs.push(`${set.ivs[iv]} ${STAT_NAMES[iv]}`); + buf += `
      • ${formatNature(set.nature)} Nature
      • `; + if (set.ivs) { + buf += `
      • IVs: `; + const ivs: string[] = []; + let iv: string; + for (iv in set.ivs) { + if (set.ivs[iv] === 31) continue; + ivs.push(`${set.ivs[iv]} ${STAT_NAMES[iv]}`); + } + buf += `${ivs.join(" / ")}
      • `; } - buf += `${ivs.join(" / ")}`; + for (const moveSlot of set.moves) { + buf += `
      • - ${moveSlot.map(formatMove).join(' / ')}
      • `; + } + buf += `
      `; } - for (const moveid of set.moves) { - buf += `
    • - ${Array.isArray(moveid) ? moveid.map(formatMove).join(" / ") : formatMove(moveid)}
    • `; + } else { + buf += `Sets for ${species.name} in ${format.name}:
      `; + for (const [i, set] of setObj.sets.entries()) { + buf += `
      Set ${i + 1}`; + buf += `
        `; + buf += `
      • ${set.species}${set.gender ? ` (${set.gender})` : ``} @ ${Array.isArray(set.item) ? set.item.map(formatItem).join(" / ") : formatItem(set.item)}
      • `; + buf += `
      • Ability: ${Array.isArray(set.ability) ? set.ability.map(formatAbility).join(" / ") : formatAbility(set.ability)}
      • `; + if (!set.level) buf += `
      • Level: 50
      • `; + if (set.level && set.level < 50) buf += `
      • Level: ${set.level}
      • `; + if (set.shiny) buf += `
      • Shiny: Yes
      • `; + if (set.happiness) buf += `
      • Happiness: ${set.happiness}
      • `; + if (set.evs) { + buf += `
      • EVs: `; + const evs: string[] = []; + let ev: string; + for (ev in set.evs) { + if (set.evs[ev] === 0) continue; + evs.push(`${set.evs[ev]} ${STAT_NAMES[ev]}`); + } + buf += `${evs.join(" / ")}
      • `; + } + buf += `
      • ${Array.isArray(set.nature) ? set.nature.map(formatNature).join(" / ") : formatNature(set.nature)} Nature
      • `; + if (set.ivs) { + buf += `
      • IVs: `; + const ivs: string[] = []; + let iv: string; + for (iv in set.ivs) { + if (set.ivs[iv] === 31) continue; + ivs.push(`${set.ivs[iv]} ${STAT_NAMES[iv]}`); + } + buf += `${ivs.join(" / ")}
      • `; + } + for (const moveid of set.moves) { + buf += `
      • - ${Array.isArray(moveid) ? moveid.map(formatMove).join(" / ") : formatMove(moveid)}
      • `; + } + buf += `
      `; } - buf += `
    `; } } return buf; @@ -323,7 +415,7 @@ function battleFactorySets(species: string | Species, tier: string | null, gen = function CAP1v1Sets(species: string | Species) { species = Dex.species.get(species); const statsFile = JSON.parse( - FS(`data/mods/gen8/cap-1v1-sets.json`).readIfExistsSync() || + FS(`data/random-battles/gen8/cap-1v1-sets.json`).readIfExistsSync() || "{}" ); if (!Object.keys(statsFile).length) return null; @@ -374,376 +466,24 @@ function CAP1v1Sets(species: string | Species) { return buf; } -function generateSSBSet(set: SSBSet, dex: ModdedDex, baseDex: ModdedDex) { - if (set.skip) { - const baseSet = toID(Object.values(ssbSets[set.skip]).join()); - const skipSet = toID(Object.values(set).join()).slice(0, -toID(set.skip).length); - if (baseSet === skipSet) return ``; - } - let buf = ``; - buf += `
    Set`; - buf += `
    • ${set.species}${set.gender !== '' ? ` (${set.gender})` : ``} @ ${Array.isArray(set.item) ? set.item.map(x => dex.items.get(x).name).join(' / ') : dex.items.get(set.item).name}
    • `; - buf += `
    • Ability: ${Array.isArray(set.ability) ? set.ability.map(x => dex.abilities.get(x).name).join(' / ') : dex.abilities.get(set.ability).name}
    • `; - if (set.shiny) buf += `
    • Shiny: ${typeof set.shiny === 'number' ? `Sometimes` : `Yes`}
    • `; - if (set.evs) { - const evs: string[] = []; - let ev: StatID; - for (ev in set.evs) { - if (set.evs[ev] === 0) continue; - evs.push(`${set.evs[ev]} ${STAT_NAMES[ev]}`); - } - buf += `
    • EVs: ${evs.join(" / ")}
    • `; - } - if (set.nature) { - buf += `
    • ${Array.isArray(set.nature) ? set.nature.join(" / ") : formatNature(set.nature)} Nature
    • `; - } - if (set.ivs) { - const ivs: string[] = []; - let iv: StatID; - for (iv in set.ivs) { - if (set.ivs[iv] === 31) continue; - ivs.push(`${set.ivs[iv]} ${STAT_NAMES[iv]}`); - } - buf += `
    • IVs: ${ivs.join(" / ")}
    • `; - } - for (const moveid of set.moves) { - buf += `
    • - ${Array.isArray(moveid) ? moveid.map(x => dex.moves.get(x).name).join(" / ") : dex.moves.get(moveid).name}
    • `; - } - const italicize = !baseDex.moves.get(set.signatureMove).exists; - buf += `
    • - ${italicize ? `` : ``}${dex.moves.get(set.signatureMove).name}${italicize ? `` : ``}
    • `; - buf += `
    `; - buf += `
    `; - return buf; -} - -function generateSSBMoveInfo(sigMove: Move, dex: ModdedDex) { - let buf = ``; - if (sigMove.shortDesc || sigMove.desc) { - buf += `
    `; - buf += Chat.getDataMoveHTML(sigMove); - const details: {[k: string]: string} = { - Priority: String(sigMove.priority), - Gen: String(sigMove.gen) || 'CAP', - }; - - if (sigMove.isNonstandard === "Past" && dex.gen >= 8) details["✗ Past Gens Only"] = ""; - if (sigMove.secondary || sigMove.secondaries) details["✓ Secondary effect"] = ""; - if (sigMove.flags['contact']) details["✓ Contact"] = ""; - if (sigMove.flags['sound']) details["✓ Sound"] = ""; - if (sigMove.flags['bullet']) details["✓ Bullet"] = ""; - if (sigMove.flags['pulse']) details["✓ Pulse"] = ""; - if (!sigMove.flags['protect'] && !/(ally|self)/i.test(sigMove.target)) details["✓ Bypasses Protect"] = ""; - if (sigMove.flags['bypasssub']) details["✓ Bypasses Substitutes"] = ""; - if (sigMove.flags['defrost']) details["✓ Thaws user"] = ""; - if (sigMove.flags['bite']) details["✓ Bite"] = ""; - if (sigMove.flags['punch']) details["✓ Punch"] = ""; - if (sigMove.flags['powder']) details["✓ Powder"] = ""; - if (sigMove.flags['reflectable']) details["✓ Bounceable"] = ""; - if (sigMove.flags['charge']) details["✓ Two-turn move"] = ""; - if (sigMove.flags['recharge']) details["✓ Has recharge turn"] = ""; - if (sigMove.flags['gravity']) details["✗ Suppressed by Gravity"] = ""; - if (sigMove.flags['dance']) details["✓ Dance move"] = ""; - - if (sigMove.zMove?.basePower) { - details["Z-Power"] = String(sigMove.zMove.basePower); - } else if (sigMove.zMove?.effect) { - const zEffects: {[k: string]: string} = { - clearnegativeboost: "Restores negative stat stages to 0", - crit2: "Crit ratio +2", - heal: "Restores HP 100%", - curse: "Restores HP 100% if user is Ghost type, otherwise Attack +1", - redirect: "Redirects opposing attacks to user", - healreplacement: "Restores replacement's HP 100%", - }; - details["Z-Effect"] = zEffects[sigMove.zMove.effect]; - } else if (sigMove.zMove?.boost) { - details["Z-Effect"] = ""; - const boost = sigMove.zMove.boost; - for (const h in boost) { - details["Z-Effect"] += ` ${Dex.stats.mediumNames[h as 'atk']} +${boost[h as 'atk']}`; - } - } else if (sigMove.isZ && typeof sigMove.isZ === 'string') { - details["✓ Z-Move"] = ""; - const zCrystal = dex.items.get(sigMove.isZ); - details["Z-Crystal"] = zCrystal.name; - if (zCrystal.itemUser) { - details["User"] = zCrystal.itemUser.join(", "); - details["Required Move"] = dex.items.get(sigMove.isZ).zMoveFrom!; - } - } else { - details["Z-Effect"] = "None"; - } - - const targetTypes: {[k: string]: string} = { - normal: "One Adjacent Pok\u00e9mon", - self: "User", - adjacentAlly: "One Ally", - adjacentAllyOrSelf: "User or Ally", - adjacentFoe: "One Adjacent Opposing Pok\u00e9mon", - allAdjacentFoes: "All Adjacent Opponents", - foeSide: "Opposing Side", - allySide: "User's Side", - allyTeam: "User's Side", - allAdjacent: "All Adjacent Pok\u00e9mon", - any: "Any Pok\u00e9mon", - all: "All Pok\u00e9mon", - scripted: "Chosen Automatically", - randomNormal: "Random Adjacent Opposing Pok\u00e9mon", - allies: "User and Allies", - }; - details["Target"] = targetTypes[sigMove.target] || "Unknown"; - if (sigMove.isNonstandard === 'Unobtainable') { - details[`Unobtainable in Gen ${dex.gen}`] = ""; - } - buf += `${Object.entries(details).map(([detail, value]) => ( - value === '' ? detail : `${detail}: ${value}` - )).join(" |  ")}`; - if (sigMove.desc && sigMove.desc !== sigMove.shortDesc) { - buf += `
    In-Depth Description${sigMove.desc}
    `; - } - } - return buf; -} - -function generateSSBItemInfo(set: SSBSet, dex: ModdedDex, baseDex: ModdedDex) { - let buf = ``; - if (!Array.isArray(set.item)) { - const baseItem = baseDex.items.get(set.item); - const sigItem = dex.items.get(set.item); - if (!baseItem.exists || (baseItem.desc || baseItem.shortDesc) !== (sigItem.desc || sigItem.shortDesc)) { - buf += `
    `; - buf += Chat.getDataItemHTML(sigItem); - const details: {[k: string]: string} = { - Gen: String(sigItem.gen), - }; - - if (dex.gen >= 4) { - if (sigItem.fling) { - details["Fling Base Power"] = String(sigItem.fling.basePower); - if (sigItem.fling.status) details["Fling Effect"] = sigItem.fling.status; - if (sigItem.fling.volatileStatus) details["Fling Effect"] = sigItem.fling.volatileStatus; - if (sigItem.isBerry) details["Fling Effect"] = "Activates the Berry's effect on the target."; - if (sigItem.id === 'whiteherb') details["Fling Effect"] = "Restores the target's negative stat stages to 0."; - if (sigItem.id === 'mentalherb') { - const flingEffect = "Removes the effects of Attract, Disable, Encore, Heal Block, Taunt, and Torment from the target."; - details["Fling Effect"] = flingEffect; - } - } else { - details["Fling"] = "This item cannot be used with Fling."; - } - } - if (sigItem.naturalGift && dex.gen >= 3) { - details["Natural Gift Type"] = sigItem.naturalGift.type; - details["Natural Gift Base Power"] = String(sigItem.naturalGift.basePower); - } - if (sigItem.isNonstandard && sigItem.isNonstandard !== "Custom") { - details[`Unobtainable in Gen ${dex.gen}`] = ""; - } - buf += `${Object.entries(details).map(([detail, value]) => ( - value === '' ? detail : `${detail}: ${value}` - )).join(" |  ")}`; - } - } - return buf; -} - -function generateSSBAbilityInfo(set: SSBSet, dex: ModdedDex, baseDex: ModdedDex) { - let buf = ``; - if (!Array.isArray(set.ability) && !baseDex.abilities.get(set.ability).exists) { - const sigAbil = Dex.deepClone(dex.abilities.get(set.ability)); - if (!sigAbil.desc && !sigAbil.shortDesc) { - sigAbil.desc = `This ability doesn't have a description. Try contacting the SSB dev team.`; - } - buf += `
    `; - buf += Chat.getDataAbilityHTML(sigAbil); - const details: {[k: string]: string} = { - Gen: String(sigAbil.gen) || 'CAP', - }; - buf += `${Object.entries(details).map(([detail, value]) => ( - value === '' ? detail : `${detail}: ${value}` - )).join(" |  ")}`; - if (sigAbil.desc && sigAbil.shortDesc && sigAbil.desc !== sigAbil.shortDesc) { - buf += `
    In-Depth Description${sigAbil.desc}
    `; - } - } - return buf; -} - -function generateSSBPokemonInfo(species: string, dex: ModdedDex, baseDex: ModdedDex) { - let buf = ``; - const origSpecies = baseDex.species.get(species); - const newSpecies = dex.species.get(species); - if ( - newSpecies.types.join('/') !== origSpecies.types.join('/') || - Object.values(newSpecies.abilities).join('/') !== Object.values(origSpecies.abilities).join('/') || - Object.values(newSpecies.baseStats).join('/') !== Object.values(origSpecies.baseStats).join('/') - ) { - buf += `
    `; - buf += Chat.getDataPokemonHTML(newSpecies, dex.gen, 'SSB'); - let weighthit = 20; - if (newSpecies.weighthg >= 2000) { - weighthit = 120; - } else if (newSpecies.weighthg >= 1000) { - weighthit = 100; - } else if (newSpecies.weighthg >= 500) { - weighthit = 80; - } else if (newSpecies.weighthg >= 250) { - weighthit = 60; - } else if (newSpecies.weighthg >= 100) { - weighthit = 40; - } - const details: {[k: string]: string} = { - "Dex#": String(newSpecies.num), - Gen: String(newSpecies.gen) || 'CAP', - Height: `${newSpecies.heightm} m`, - }; - details["Weight"] = `${newSpecies.weighthg / 10} kg (${weighthit} BP)`; - if (newSpecies.color && dex.gen >= 5) details["Dex Colour"] = newSpecies.color; - if (newSpecies.eggGroups && dex.gen >= 2) details["Egg Group(s)"] = newSpecies.eggGroups.join(", "); - const evos: string[] = []; - for (const evoName of newSpecies.evos) { - const evo = dex.species.get(evoName); - if (evo.gen <= dex.gen) { - const condition = evo.evoCondition ? ` ${evo.evoCondition}` : ``; - switch (evo.evoType) { - case 'levelExtra': - evos.push(`${evo.name} (level-up${condition})`); - break; - case 'levelFriendship': - evos.push(`${evo.name} (level-up with high Friendship${condition})`); - break; - case 'levelHold': - evos.push(`${evo.name} (level-up holding ${evo.evoItem}${condition})`); - break; - case 'useItem': - evos.push(`${evo.name} (${evo.evoItem})`); - break; - case 'levelMove': - evos.push(`${evo.name} (level-up with ${evo.evoMove}${condition})`); - break; - case 'other': - evos.push(`${evo.name} (${evo.evoCondition})`); - break; - case 'trade': - evos.push(`${evo.name} (trade${evo.evoItem ? ` holding ${evo.evoItem}` : condition})`); - break; - default: - evos.push(`${evo.name} (${evo.evoLevel}${condition})`); - } - } - } - if (!evos.length) { - details[`Does Not Evolve`] = ""; - } else { - details["Evolution"] = evos.join(", "); - } - buf += `${Object.entries(details).map(([detail, value]) => ( - value === '' ? detail : `${detail}: ${value}` - )).join(" |  ")}`; - } - return buf; -} - -function generateSSBInnateInfo(name: string, dex: ModdedDex, baseDex: ModdedDex) { - let buf = ``; - // Special casing for users whose usernames are already existing, i.e. Perish Song - let effect = dex.conditions.get(name + 'user'); - let longDesc = ``; - const baseAbility = Dex.deepClone(baseDex.abilities.get('noability')); - // @ts-ignore hack to record the name of the innate abilities without using name - if (effect.exists && effect.innateName && (effect.desc || effect.shortDesc)) { - // @ts-ignore hack - baseAbility.name = effect.innateName; - if (effect.desc) baseAbility.desc = effect.desc; - if (effect.shortDesc) baseAbility.shortDesc = effect.shortDesc; - buf += `
    Innate Ability:
    ${Chat.getDataAbilityHTML(baseAbility)}`; - if (effect.desc && effect.shortDesc && effect.desc !== effect.shortDesc) { - longDesc = effect.desc; - } - } else { - effect = dex.conditions.get(name); - // @ts-ignore hack - if (effect.exists && effect.innateName && (effect.desc || effect.shortDesc)) { - // @ts-ignore hack - baseAbility.name = effect.innateName; - if (effect.desc) baseAbility.desc = effect.desc; - if (effect.shortDesc) baseAbility.shortDesc = effect.shortDesc; - buf += `
    Innate Ability:
    ${Chat.getDataAbilityHTML(baseAbility)}`; - if (effect.desc && effect.shortDesc && effect.desc !== effect.shortDesc) { - longDesc = effect.desc; - } - } - } - if (buf) { - const details: {[k: string]: string} = {Gen: '8'}; - buf += `${Object.entries(details).map(([detail, value]) => ( - value === '' ? detail : `${detail}: ${value}` - )).join(" |  ")}`; - } - if (longDesc) { - buf += `
    In-Depth Description${longDesc}
    `; - } - return buf; -} - -function SSBSets(target: string) { - const baseDex = Dex; - const dex = Dex.forFormat('gen8superstaffbros4'); - if (!Object.keys(ssbSets).map(toID).includes(toID(target))) { - return {e: `Error: ${target.trim()} doesn't have a [Gen 8] Super Staff Bros 4 set.`}; - } - let displayName = ''; - const names = []; - for (const member in ssbSets) { - if (toID(member).startsWith(toID(target))) names.push(member); - if (toID(member) === toID(target)) displayName = member; - } - let buf = ''; - for (const name of names) { - if (buf) buf += `
    `; - const set = ssbSets[name]; - const mutatedSpecies = dex.species.get(set.species); - if (!set.skip) { - buf += Utils.html`

    ${displayName === 'yuki' ? name : displayName}

    `; - } else { - buf += `
    ${name.split('-').slice(1).join('-') + ' forme'}`; - } - buf += generateSSBSet(set, dex, baseDex); - const item = dex.items.get(set.item as string); - if (!set.skip || set.signatureMove !== ssbSets[set.skip].signatureMove) { - const sigMove = baseDex.moves.get(set.signatureMove).exists && !Array.isArray(set.item) && - typeof item.zMove === 'string' ? - dex.moves.get(item.zMove) : dex.moves.get(set.signatureMove); - buf += generateSSBMoveInfo(sigMove, dex); - if (sigMove.id === 'blackbird') buf += generateSSBMoveInfo(dex.moves.get('gaelstrom'), dex); - } - buf += generateSSBItemInfo(set, dex, baseDex); - buf += generateSSBAbilityInfo(set, dex, baseDex); - buf += generateSSBInnateInfo(name, dex, baseDex); - buf += generateSSBPokemonInfo(set.species, dex, baseDex); - if (!Array.isArray(set.item) && item.megaStone) { - buf += generateSSBPokemonInfo(item.megaStone, dex, baseDex); - // Psynergy, Struchni, and Raj.shoot have itemless Mega Evolutions - } else if (['Aggron', 'Rayquaza'].includes(set.species)) { - buf += generateSSBPokemonInfo(`${set.species}-Mega`, dex, baseDex); - } else if (set.species === 'Charizard') { - buf += generateSSBPokemonInfo('Charizard-Mega-X', dex, baseDex); - } - if (set.skip) buf += `
    `; - } - return buf; -} - export const commands: Chat.ChatCommands = { randbats: 'randombattles', - randombattles(target, room, user) { + randomdoublesbattle: 'randombattles', + randdubs: 'randombattles', + babyrandombattle: 'randombattles', + babyrands: 'randombattles', + // randombattlenodmax: 'randombattles', + // randsnodmax: 'randombattles', + randombattles(target, room, user, connection, cmd) { if (!this.runBroadcast()) return; const battle = room?.battle; + let isDoubles = cmd === 'randomdoublesbattle' || cmd === 'randdubs'; + let isBaby = cmd === 'babyrandombattle' || cmd === 'babyrands'; + let isNoDMax = cmd.includes('nodmax'); if (battle) { - if (battle.format.includes('nodmax')) return this.parse(`/randombattlenodmax ${target}`); - if (battle.format.includes('doubles') || battle.gameType === 'freeforall') { - return this.parse(`/randomdoublesbattle ${target}`); - } + if (battle.format.includes('nodmax')) isNoDMax = true; + if (battle.format.includes('doubles') || battle.gameType === 'freeforall') isDoubles = true; + if (battle.format.includes('baby')) isBaby = true; } const args = target.split(','); @@ -752,57 +492,89 @@ export const commands: Chat.ChatCommands = { const {dex} = this.splitFormat(target, true); const isLetsGo = (dex.currentMod === 'gen7letsgo'); - const species = dex.species.get(args[0]); - if (!species.exists) { - return this.errorReply(`Error: Pok\u00e9mon '${args[0].trim()}' does not exist.`); + const searchResults = dex.dataSearch(args[0], ['Pokedex']); + + if (!searchResults || !searchResults.length) { + this.errorReply(`No Pok\u00e9mon named '${args[0]}' was found${Dex.gen > dex.gen ? ` in Gen ${dex.gen}` : ""}. (Check your spelling?)`); + return; } + + let inexactMsg = ''; + if (searchResults[0].isInexact) { + inexactMsg = `No Pok\u00e9mon named '${args[0]}' was found${Dex.gen > dex.gen ? ` in Gen ${dex.gen}` : ""}. Searching for '${searchResults[0].name}' instead.`; + } + const species = dex.species.get(searchResults[0].name); const extraFormatModifier = isLetsGo ? 'letsgo' : (dex.currentMod === 'gen8bdsp' ? 'bdsp' : ''); - let formatName = dex.formats.get(`gen${dex.gen}${extraFormatModifier}randombattle`).name; + const babyModifier = isBaby ? 'baby' : ''; + const doublesModifier = isDoubles ? 'doubles' : ''; + const noDMaxModifier = isNoDMax ? 'nodmax' : ''; + const formatName = `gen${dex.gen}${extraFormatModifier}${babyModifier}random${doublesModifier}battle${noDMaxModifier}`; + const format = dex.formats.get(formatName); const movesets = []; let setCount = 0; if (dex.gen === 1) { const rbyMoves = getRBYMoves(species); if (!rbyMoves) { + this.sendReply(inexactMsg); return this.errorReply(`Error: ${species.name} has no Random Battle data in ${GEN_NAMES[toID(args[1])]}`); } - movesets.push(`Moves for ${species.name} in ${formatName}:${rbyMoves}`); + movesets.push(`Moves for ${species.name} in ${format.name}:${rbyMoves}`); setCount = 1; } else if (isLetsGo) { - formatName = `[Gen 7 Let's Go] Random Battle`; const lgpeMoves = getLetsGoMoves(species); if (!lgpeMoves) { + this.sendReply(inexactMsg); return this.errorReply(`Error: ${species.name} has no Random Battle data in [Gen 7 Let's Go]`); } - movesets.push(`Moves for ${species.name} in ${formatName}:
    ${lgpeMoves}`); + movesets.push(`Moves for ${species.name} in ${format.name}:
    ${lgpeMoves}`); setCount = 1; } else { const setsToCheck = [species]; - if (dex.gen > 7) setsToCheck.push(dex.species.get(`${args[0]}gmax`)); + if (dex.gen >= 8 && !isNoDMax) setsToCheck.push(dex.species.get(`${args[0]}gmax`)); if (species.otherFormes) setsToCheck.push(...species.otherFormes.map(pkmn => dex.species.get(pkmn))); - if (dex.gen >= 9) { + if ([2, 3, 4, 5, 6, 7, 9].includes(dex.gen)) { for (const pokemon of setsToCheck) { - const sets = getSets(pokemon); - if (!sets) continue; - let buf = `Moves for ${pokemon.name} in ${formatName}:
    `; + const data = getSets(pokemon, format.id); + if (!data) continue; + const sets = data.sets; + const level = data.level || getLevel(pokemon, format); + let buf = `Moves for ${pokemon.name} in ${format.name}:
    `; + buf += `Level: ${level}`; for (const set of sets) { - buf += `
    ${set.role}` + - `Tera Type${Chat.plural(set.teraTypes)}: ${set.teraTypes.join(', ')}
    ` + - `Moves: ${set.movepool.sort().map(formatMove).join(', ')}
    `; + buf += `
    ${set.role}`; + if (dex.gen === 9) { + buf += `Tera Type${Chat.plural(set.teraTypes)}: ${set.teraTypes.join(', ')}
    `; + } else if (([2, 3, 4, 5, 6, 7].includes(dex.gen)) && set.preferredTypes) { + buf += `Preferred Type${Chat.plural(set.preferredTypes)}: ${set.preferredTypes.join(', ')}
    `; + } + buf += `Moves: ${set.movepool.sort().map(formatMove).join(', ')}
    `; + if (set.abilities) { + buf += `Abilit${Chat.plural(set.abilities, 'ies', 'y')}: ${set.abilities.sort().join(', ')}`; + } + buf += '
    '; setCount++; } movesets.push(buf); } } else { - for (const pokemon of setsToCheck) { - const data = getData(pokemon, formatName); + for (let pokemon of setsToCheck) { + let data = getData(pokemon, format.name); + if (!data && isNoDMax) { + pokemon = dex.species.get(pokemon.id + 'gmax'); + data = getData(pokemon, format.name); + } if (!data) continue; if (!data.moves || pokemon.isNonstandard === 'Future') continue; - const randomMoves = data.moves.slice(); - const m = randomMoves.sort().map(formatMove); + let randomMoves = data.moves; + const level = data.level || getLevel(pokemon, format); + if (isDoubles && data.doublesMoves) randomMoves = data.doublesMoves; + if (isNoDMax && data.noDynamaxMoves) randomMoves = data.noDynamaxMoves; + const m = randomMoves.slice().sort().map(formatMove); movesets.push( `
    ` + - `Moves for ${pokemon.name} in ${formatName}:` + + `Moves for ${pokemon.name} in ${format.name}:` + + (level ? `Level: ${level}
    ` : '') + `${m.join(`, `)}
    ` ); setCount++; @@ -811,83 +583,19 @@ export const commands: Chat.ChatCommands = { } if (!movesets.length) { - return this.errorReply(`Error: ${species.name} has no Random Battle data in ${formatName}`); + this.sendReply(inexactMsg); + return this.errorReply(`Error: ${species.name} has no Random Battle data in ${format.name}`); } let buf = movesets.join('
    '); if (setCount <= 2) { buf = buf.replace(/
    /g, '
    '); } + this.sendReply(inexactMsg); this.sendReplyBox(buf); }, randombattleshelp: [ `/randombattles OR /randbats [pokemon], [gen] - Displays a Pok\u00e9mon's Random Battle Moves. Defaults to Gen 9. If used in a battle, defaults to the gen of that battle.`, - ], - - randdubs: 'randomdoublesbattle', - randomdoublesbattle(target, room, user) { - if (!this.runBroadcast()) return; - const args = target.split(','); - if (!args[0]) return this.parse(`/help randomdoublesbattle`); - - const {dex} = this.splitFormat(target, true); - if (dex.gen < 4) return this.parse(`/help randomdoublesbattle`); - - const species = dex.species.get(args[0]); - const formatName = dex.gen > 6 ? dex.formats.get(`gen${dex.gen}randomdoublesbattle`).name : dex.gen === 6 ? - '[Gen 6] Random Doubles Battle' : dex.gen === 5 ? - '[Gen 5] Random Doubles Battle' : '[Gen 4] Random Doubles Battle'; - if (!species.exists) { - return this.errorReply(`Error: Pok\u00e9mon '${args[0].trim()}' does not exist.`); - } - - const setsToCheck = [species]; - if (dex.gen > 7) setsToCheck.push(dex.species.get(`${args[0]}gmax`)); - if (species.otherFormes) setsToCheck.push(...species.otherFormes.map(pkmn => dex.species.get(pkmn))); - - const movesets = []; - for (const pokemon of setsToCheck) { - const data = getData(pokemon, formatName); - if (!data) continue; - if (!data.doublesMoves) continue; - const moves: string[] = [...data.doublesMoves]; - const m = moves.sort().map(formatMove); - movesets.push(`Doubles moves for ${pokemon.name} in ${formatName}:
    ${m.join(`, `)}`); - } - this.sendReplyBox(movesets.join('
    ')); - }, - randomdoublesbattlehelp: [ - `/randomdoublesbattle OR /randdubs [pokemon], [gen] - Displays a Pok\u00e9mon's Random Doubles Battle Moves. Supports Gens 4-8. Defaults to Gen 8. If used in a battle, defaults to that gen.`, - ], - - randsnodmax: 'randombattlenodmax', - randombattlenodmax(target, room, user) { - if (!this.runBroadcast()) return; - if (!target) return this.parse(`/help randombattlenodmax`); - - const dex = Dex.forFormat('gen8randombattlenodmax'); - let species = dex.species.get(target); - - if (!species.exists) { - throw new Chat.ErrorMessage(`Error: Pok\u00e9mon '${target.trim()}' does not exist.`); - } - - const data = getData(species, 'gen8randombattle'); - let randomMoves = data ? (data.noDynamaxMoves || data.moves) : null; - if (!randomMoves) { - const gmaxSpecies = dex.species.get(`${target}gmax`); - const gmaxData = getData(gmaxSpecies, 'gen8randombattle'); - if (!gmaxSpecies.exists || !gmaxData || !gmaxData.moves) { - return this.errorReply(`Error: No move data found for ${species.name} in [Gen 8] Random Battle (No Dmax).`); - } - species = gmaxSpecies; - randomMoves = gmaxData.noDynamaxMoves || gmaxData.moves; - } - - const m = [...randomMoves].sort().map(formatMove); - this.sendReplyBox(`Moves for ${species.name} in [Gen 8] Random Battle (No Dmax):
    ${m.join(`, `)}`); - }, - randombattlenodmaxhelp: [ - `/randombattlenodmax OR /randsnodmax [pokemon] - Displays a Pok\u00e9mon's Random Battle (No Dmax) moves.`, + `/randomdoublesbattle OR /randdubs [pokemon], [gen] - Same as above, but instead displays Random Doubles Battle moves.`, ], bssfactory: 'battlefactory', @@ -901,7 +609,7 @@ export const commands: Chat.ChatCommands = { if (!species.exists) { return this.errorReply(`Error: Pok\u00e9mon '${args[0].trim()}' not found.`); } - let mod = 'gen8'; + let mod = 'gen9'; if (args[1] && toID(args[1]) in Dex.dexes && Dex.dexes[toID(args[1])].gen >= 7) mod = toID(args[1]); const bssSets = battleFactorySets(species, null, mod, true); if (!bssSets) return this.parse(`/help battlefactory`); @@ -922,7 +630,7 @@ export const commands: Chat.ChatCommands = { } else { tier = 'ou'; } - const mod = args[2] || 'gen8'; + const mod = args[2] || 'gen9'; let bfSets; if (species.name === 'Necrozma-Ultra') { bfSets = battleFactorySets(Dex.species.get('necrozma-dawnwings'), tier, mod); @@ -945,9 +653,9 @@ export const commands: Chat.ChatCommands = { } }, battlefactoryhelp: [ - `/battlefactory [pokemon], [tier], [gen] - Displays a Pok\u00e9mon's Battle Factory sets. Supports Gens 6-7. Defaults to Gen 7. If no tier is provided, defaults to OU.`, + `/battlefactory [pokemon], [tier], [gen] - Displays a Pok\u00e9mon's Battle Factory sets. Supports Gens 6-8. Defaults to Gen 8. If no tier is provided, defaults to OU.`, `- Supported tiers: OU, Ubers, UU, RU, NU, PU, Monotype (Gen 7 only), LC (Gen 7 only)`, - `/bssfactory [pokemon], [gen] - Displays a Pok\u00e9mon's BSS Factory sets. Supports Gen 7. Defaults to Gen 7.`, + `/bssfactory [pokemon], [gen] - Displays a Pok\u00e9mon's BSS Factory sets. Supports Gen 7-9. Defaults to Gen 9.`, ], cap1v1(target, room, user) { @@ -968,19 +676,6 @@ export const commands: Chat.ChatCommands = { `/cap1v1 [pokemon] - Displays a Pok\u00e9mon's CAP 1v1 sets.`, ], - ssb(target, room, user) { - if (!this.runBroadcast()) return; - if (!target) return this.parse(`/help ssb`); - const set = SSBSets(target); - if (typeof set !== 'string') { - throw new Chat.ErrorMessage(set.e); - } - return this.sendReplyBox(set); - }, - ssbhelp: [ - `/ssb [staff member] - Displays a staff member's Super Staff Bros. set and custom features.`, - ], - setodds: 'randombattlesetprobabilities', randbatsodds: 'randombattlesetprobabilities', randbatsprobabilities: 'randombattlesetprobabilities', @@ -1017,8 +712,8 @@ export const commands: Chat.ChatCommands = { } let setExists: boolean; - if (dex.gen >= 9) { - setExists = !!getSets(species); + if ([2, 3, 4, 5, 6, 7, 9].includes(dex.gen)) { + setExists = !!getSets(species, format); } else { const data = getData(species, format); if (!data) { @@ -1161,7 +856,7 @@ export const commands: Chat.ChatCommands = { `
` + `The given probability is for a set that matches EVERY provided condition. ` + `Conditions can be negated by prefixing the [matching value] with !.
` + - `Requires: % @ # & (globally or in the Random Battles room)` + `Requires: % @ # ~ (globally or in the Random Battles room)` ); }, @@ -1172,7 +867,7 @@ export const commands: Chat.ChatCommands = { if (!target) return this.parse('/help generateteam'); const format = Dex.formats.get(target); - if (!format.exists) throw new Chat.ErrorMessage(`"${target}" is not a recognized format.`); + if (format.effectType !== 'Format') throw new Chat.ErrorMessage(`"${target}" is not a recognized format.`); if (!format.team) throw new Chat.ErrorMessage(`"${format.name}" requires you to bring your own team.`); const team = Teams.getGenerator(format).getTeam(); @@ -1187,5 +882,5 @@ export const commands: Chat.ChatCommands = { .join(''); return this.sendReplyBox(`Team for ${format.name}:` + teamHTML); }, - generateteamhelp: [`/genteam [format] - Generates a team for the given format. Requires: % @ & or Random Battles room auth`], + generateteamhelp: [`/genteam [format] - Generates a team for the given format. Requires: % @ ~ or Random Battles room auth`], }; diff --git a/server/chat-plugins/randombattles/ssb.ts b/server/chat-plugins/randombattles/ssb.ts new file mode 100644 index 000000000000..b707400d7706 --- /dev/null +++ b/server/chat-plugins/randombattles/ssb.ts @@ -0,0 +1,430 @@ +import {SSBSet, ssbSets} from "../../../data/mods/gen9ssb/random-teams"; +import {Utils} from "../../../lib"; +import {formatNature, STAT_NAMES} from "."; + +function generateSSBSet(set: SSBSet, dex: ModdedDex, baseDex: ModdedDex) { + if (set.skip) { + const baseSet = toID(Object.values(ssbSets[set.skip]).join()); + const skipSet = toID(Object.values(set).join()).slice(0, -toID(set.skip).length); + if (baseSet === skipSet) return ``; + } + let buf = ``; + buf += `
Set`; + buf += `
  • ${set.species}${set.gender !== '' ? ` (${set.gender})` : ``}`; + buf += `${set.item ? ' @ ' : ''}${Array.isArray(set.item) ? set.item.map(x => dex.items.get(x).name).join(' / ') : dex.items.get(set.item).name}
  • `; + buf += `
  • Ability: ${Array.isArray(set.ability) ? set.ability.map(x => dex.abilities.get(x).name).join(' / ') : dex.abilities.get(set.ability).name}
  • `; + if (set.teraType) { + buf += `
  • Tera Type: ${Array.isArray(set.teraType) ? set.teraType.map(x => dex.types.get(x).name).join(' / ') : set.teraType === 'Any' ? 'Any' : dex.types.get(set.teraType).name}
  • `; + } + if (set.shiny) buf += `
  • Shiny: ${typeof set.shiny === 'number' ? `1 in ${set.shiny} chance` : `Yes`}
  • `; + if (set.evs) { + const evs: string[] = []; + let ev: StatID; + for (ev in set.evs) { + if (set.evs[ev] === 0) continue; + evs.push(`${set.evs[ev]} ${STAT_NAMES[ev]}`); + } + buf += `
  • EVs: ${evs.join(" / ")}
  • `; + } + if (set.nature) { + buf += `
  • ${Array.isArray(set.nature) ? set.nature.map(x => formatNature(x)).join(" / ") : formatNature(set.nature)} Nature
  • `; + } + if (set.ivs) { + const ivs: string[] = []; + let iv: StatID; + for (iv in set.ivs) { + if (set.ivs[iv] === 31) continue; + ivs.push(`${set.ivs[iv]} ${STAT_NAMES[iv]}`); + } + buf += `
  • IVs: ${ivs.join(" / ")}
  • `; + } + for (const moveid of set.moves) { + buf += `
  • - ${Array.isArray(moveid) ? moveid.map(x => dex.moves.get(x).name).join(" / ") : dex.moves.get(moveid).name}
  • `; + } + const italicize = !baseDex.moves.get(set.signatureMove).exists; + buf += `
  • - ${italicize ? `` : ``}${dex.moves.get(set.signatureMove).name}${italicize ? `` : ``}
  • `; + buf += `
`; + buf += `
`; + return buf; +} + +function generateSSBMoveInfo(sigMove: Move, dex: ModdedDex) { + let buf = ``; + if (sigMove.shortDesc || sigMove.desc) { + buf += `
`; + buf += Chat.getDataMoveHTML(sigMove); + const details: {[k: string]: string} = { + Priority: String(sigMove.priority), + Gen: String(sigMove.gen || 9), + }; + + if (sigMove.isNonstandard === "Past" && dex.gen >= 8) details["✗ Past Gens Only"] = ""; + if (sigMove.secondary || sigMove.secondaries || sigMove.hasSheerForce) details["✓ Boosted by Sheer Force"] = ""; + if (sigMove.flags['contact'] && dex.gen >= 3) details["✓ Contact"] = ""; + if (sigMove.flags['sound'] && dex.gen >= 3) details["✓ Sound"] = ""; + if (sigMove.flags['bullet'] && dex.gen >= 6) details["✓ Bullet"] = ""; + if (sigMove.flags['pulse'] && dex.gen >= 6) details["✓ Pulse"] = ""; + if (!sigMove.flags['protect'] && sigMove.target !== 'self') details["✓ Bypasses Protect"] = ""; + if (sigMove.flags['bypasssub']) details["✓ Bypasses Substitutes"] = ""; + if (sigMove.flags['defrost']) details["✓ Thaws user"] = ""; + if (sigMove.flags['bite'] && dex.gen >= 6) details["✓ Bite"] = ""; + if (sigMove.flags['punch'] && dex.gen >= 4) details["✓ Punch"] = ""; + if (sigMove.flags['powder'] && dex.gen >= 6) details["✓ Powder"] = ""; + if (sigMove.flags['reflectable'] && dex.gen >= 3) details["✓ Bounceable"] = ""; + if (sigMove.flags['charge']) details["✓ Two-turn move"] = ""; + if (sigMove.flags['recharge']) details["✓ Has recharge turn"] = ""; + if (sigMove.flags['gravity'] && dex.gen >= 4) details["✗ Suppressed by Gravity"] = ""; + if (sigMove.flags['dance'] && dex.gen >= 7) details["✓ Dance move"] = ""; + if (sigMove.flags['slicing'] && dex.gen >= 9) details["✓ Slicing move"] = ""; + if (sigMove.flags['wind'] && dex.gen >= 9) details["✓ Wind move"] = ""; + + if (sigMove.zMove?.basePower) { + details["Z-Power"] = String(sigMove.zMove.basePower); + } else if (sigMove.zMove?.effect) { + const zEffects: {[k: string]: string} = { + clearnegativeboost: "Restores negative stat stages to 0", + crit2: "Crit ratio +2", + heal: "Restores HP 100%", + curse: "Restores HP 100% if user is Ghost type, otherwise Attack +1", + redirect: "Redirects opposing attacks to user", + healreplacement: "Restores replacement's HP 100%", + }; + details["Z-Effect"] = zEffects[sigMove.zMove.effect]; + } else if (sigMove.zMove?.boost) { + details["Z-Effect"] = ""; + const boost = sigMove.zMove.boost; + for (const h in boost) { + details["Z-Effect"] += ` ${Dex.stats.mediumNames[h as 'atk']} +${boost[h as 'atk']}`; + } + } else if (sigMove.isZ && typeof sigMove.isZ === 'string') { + details["✓ Z-Move"] = ""; + const zCrystal = dex.items.get(sigMove.isZ); + details["Z-Crystal"] = zCrystal.name; + if (zCrystal.itemUser) { + details["User"] = zCrystal.itemUser.join(", "); + details["Required Move"] = dex.items.get(sigMove.isZ).zMoveFrom!; + } + } else { + details["Z-Effect"] = "None"; + } + + const targetTypes: {[k: string]: string} = { + normal: "One Adjacent Pok\u00e9mon", + self: "User", + adjacentAlly: "One Ally", + adjacentAllyOrSelf: "User or Ally", + adjacentFoe: "One Adjacent Opposing Pok\u00e9mon", + allAdjacentFoes: "All Adjacent Opponents", + foeSide: "Opposing Side", + allySide: "User's Side", + allyTeam: "User's Side", + allAdjacent: "All Adjacent Pok\u00e9mon", + any: "Any Pok\u00e9mon", + all: "All Pok\u00e9mon", + scripted: "Chosen Automatically", + randomNormal: "Random Adjacent Opposing Pok\u00e9mon", + allies: "User and Allies", + }; + details["Target"] = targetTypes[sigMove.target] || "Unknown"; + if (sigMove.isNonstandard === 'Unobtainable') { + details[`Unobtainable in Gen ${dex.gen}`] = ""; + } + buf += `${Object.entries(details).map(([detail, value]) => ( + value === '' ? detail : `${detail}: ${value}` + )).join(" |  ")}`; + if (sigMove.desc && sigMove.desc !== sigMove.shortDesc) { + buf += `
In-Depth Description${sigMove.desc}
`; + } + } + return buf; +} + +function generateSSBItemInfo(set: SSBSet, dex: ModdedDex, baseDex: ModdedDex) { + let buf = ``; + if (!Array.isArray(set.item)) { + const baseItem = baseDex.items.get(set.item); + const sigItem = dex.items.get(set.item); + if (!baseItem.exists || (baseItem.desc || baseItem.shortDesc) !== (sigItem.desc || sigItem.shortDesc)) { + buf += `
`; + buf += Chat.getDataItemHTML(sigItem); + const details: {[k: string]: string} = { + Gen: String(sigItem.gen), + }; + + if (dex.gen >= 4) { + if (sigItem.fling) { + details["Fling Base Power"] = String(sigItem.fling.basePower); + if (sigItem.fling.status) details["Fling Effect"] = sigItem.fling.status; + if (sigItem.fling.volatileStatus) details["Fling Effect"] = sigItem.fling.volatileStatus; + if (sigItem.isBerry) details["Fling Effect"] = "Activates the Berry's effect on the target."; + if (sigItem.id === 'whiteherb') details["Fling Effect"] = "Restores the target's negative stat stages to 0."; + if (sigItem.id === 'mentalherb') { + const flingEffect = "Removes the effects of Attract, Disable, Encore, Heal Block, Taunt, and Torment from the target."; + details["Fling Effect"] = flingEffect; + } + } else { + details["Fling"] = "This item cannot be used with Fling."; + } + } + if (sigItem.naturalGift && dex.gen >= 3) { + details["Natural Gift Type"] = sigItem.naturalGift.type; + details["Natural Gift Base Power"] = String(sigItem.naturalGift.basePower); + } + if (sigItem.isNonstandard && sigItem.isNonstandard !== "Custom") { + details[`Unobtainable in Gen ${dex.gen}`] = ""; + } + buf += `${Object.entries(details).map(([detail, value]) => ( + value === '' ? detail : `${detail}: ${value}` + )).join(" |  ")}`; + } + } + return buf; +} + +function generateSSBAbilityInfo(set: SSBSet, dex: ModdedDex, baseDex: ModdedDex) { + let buf = ``; + const customMegaAbilities = ['Sableye', 'Ampharos']; + if (!Array.isArray(set.ability) && + (customMegaAbilities.includes(set.species) || !baseDex.abilities.get(set.ability).exists)) { + let sigAbil = baseDex.deepClone(dex.abilities.get(set.ability)); + if (customMegaAbilities.includes(set.species)) { + const megaAbil = dex.species.get(`${set.species}-Mega`).abilities[0]; + sigAbil = baseDex.deepClone(dex.abilities.get(megaAbil)); + } + if (!sigAbil.desc && !sigAbil.shortDesc) { + sigAbil.desc = `This ability doesn't have a description. Try contacting the SSB dev team.`; + } + buf += `
`; + buf += Chat.getDataAbilityHTML(sigAbil); + const details: {[k: string]: string} = { + Gen: String(sigAbil.gen || 9) || 'CAP', + }; + if (sigAbil.flags['cantsuppress']) details["✓ Not affected by Gastro Acid"] = ""; + if (sigAbil.flags['breakable']) details["✓ Ignored by Mold Breaker"] = ""; + buf += `${Object.entries(details).map(([detail, value]) => ( + value === '' ? detail : `${detail}: ${value}` + )).join(" |  ")}`; + if (sigAbil.desc && sigAbil.shortDesc && sigAbil.desc !== sigAbil.shortDesc) { + buf += `
In-Depth Description${sigAbil.desc}
`; + } + } + return buf; +} + +function generateSSBPokemonInfo(species: string, dex: ModdedDex, baseDex: ModdedDex) { + let buf = ``; + const origSpecies = baseDex.species.get(species); + const newSpecies = dex.species.get(species); + if ( + newSpecies.types.join('/') !== origSpecies.types.join('/') || + Object.values(newSpecies.abilities).join('/') !== Object.values(origSpecies.abilities).join('/') || + Object.values(newSpecies.baseStats).join('/') !== Object.values(origSpecies.baseStats).join('/') + ) { + buf += `
`; + buf += Chat.getDataPokemonHTML(newSpecies, dex.gen, 'SSB'); + let weighthit = 20; + if (newSpecies.weighthg >= 2000) { + weighthit = 120; + } else if (newSpecies.weighthg >= 1000) { + weighthit = 100; + } else if (newSpecies.weighthg >= 500) { + weighthit = 80; + } else if (newSpecies.weighthg >= 250) { + weighthit = 60; + } else if (newSpecies.weighthg >= 100) { + weighthit = 40; + } + const details: {[k: string]: string} = { + "Dex#": String(newSpecies.num), + Gen: String(newSpecies.gen) || 'CAP', + Height: `${newSpecies.heightm} m`, + }; + details["Weight"] = `${newSpecies.weighthg / 10} kg (${weighthit} BP)`; + if (newSpecies.color && dex.gen >= 5) details["Dex Colour"] = newSpecies.color; + if (newSpecies.eggGroups && dex.gen >= 2) details["Egg Group(s)"] = newSpecies.eggGroups.join(", "); + const evos: string[] = []; + for (const evoName of newSpecies.evos) { + const evo = dex.species.get(evoName); + if (evo.gen <= dex.gen) { + const condition = evo.evoCondition ? ` ${evo.evoCondition}` : ``; + switch (evo.evoType) { + case 'levelExtra': + evos.push(`${evo.name} (level-up${condition})`); + break; + case 'levelFriendship': + evos.push(`${evo.name} (level-up with high Friendship${condition})`); + break; + case 'levelHold': + evos.push(`${evo.name} (level-up holding ${evo.evoItem}${condition})`); + break; + case 'useItem': + evos.push(`${evo.name} (${evo.evoItem})`); + break; + case 'levelMove': + evos.push(`${evo.name} (level-up with ${evo.evoMove}${condition})`); + break; + case 'other': + evos.push(`${evo.name} (${evo.evoCondition})`); + break; + case 'trade': + evos.push(`${evo.name} (trade${evo.evoItem ? ` holding ${evo.evoItem}` : condition})`); + break; + default: + evos.push(`${evo.name} (${evo.evoLevel}${condition})`); + } + } + } + if (!evos.length) { + details[`Does Not Evolve`] = ""; + } else { + details["Evolution"] = evos.join(", "); + } + buf += `${Object.entries(details).map(([detail, value]) => ( + value === '' ? detail : `${detail}: ${value}` + )).join(" |  ")}`; + } + return buf; +} + +function generateSSBInnateInfo(name: string, dex: ModdedDex, baseDex: ModdedDex) { + let buf = ``; + // Special casing for users whose usernames are already existing, i.e. dhelmise + let effect = dex.conditions.get(name + 'user'); + let longDesc = ``; + const baseAbility = baseDex.deepClone(baseDex.abilities.get('noability')); + if (effect.exists && (effect as any).innateName && (effect.desc || effect.shortDesc)) { + baseAbility.name = (effect as any).innateName; + if (!effect.desc && !effect.shortDesc) { + baseAbility.desc = baseAbility.shortDesc = "This innate does not have a description."; + } + if (effect.desc) baseAbility.desc = effect.desc; + if (effect.shortDesc) baseAbility.shortDesc = effect.shortDesc; + buf += `
Innate Ability:
${Chat.getDataAbilityHTML(baseAbility)}`; + if (effect.desc && effect.shortDesc && effect.desc !== effect.shortDesc) { + longDesc = effect.desc; + } + } else { + effect = dex.deepClone(dex.conditions.get(name)); + if (!effect.desc && !effect.shortDesc) { + effect.desc = effect.shortDesc = "This innate does not have a description."; + } + if (effect.exists && (effect as any).innateName) { + baseAbility.name = (effect as any).innateName; + if (effect.desc) baseAbility.desc = effect.desc; + if (effect.shortDesc) baseAbility.shortDesc = effect.shortDesc; + buf += `
Innate Ability:
${Chat.getDataAbilityHTML(baseAbility)}`; + if (effect.desc && effect.shortDesc && effect.desc !== effect.shortDesc) { + longDesc = effect.desc; + } + } + } + if (buf) { + const details: {[k: string]: string} = {Gen: '9'}; + buf += `${Object.entries(details).map(([detail, value]) => ( + value === '' ? detail : `${detail}: ${value}` + )).join(" |  ")}`; + } + if (longDesc) { + buf += `
In-Depth Description${longDesc}
`; + } + return buf; +} + +function SSBSets(target: string) { + const baseDex = Dex; + const dex = Dex.forFormat('gen9superstaffbrosultimate'); + if (!Object.keys(ssbSets).map(toID).includes(toID(target))) { + return {e: `Error: ${target.trim()} doesn't have a [Gen 9] Super Staff Bros Ultimate set.`}; + } + let name = ''; + for (const member in ssbSets) { + if (toID(member) === toID(target)) name = member; + } + let buf = ''; + const sets: string[] = []; + for (const set in ssbSets) { + if (!set.startsWith(name)) continue; + if (!ssbSets[set].skip && set !== name) continue; + sets.push(set); + } + for (const setName of sets) { + const set = ssbSets[setName]; + const mutatedSpecies = dex.species.get(set.species); + if (!set.skip) { + buf += Utils.html`

${setName}

`; + } else { + buf += `
${setName.split('-').slice(1).join('-') + ' forme'}`; + } + buf += generateSSBSet(set, dex, baseDex); + const item = dex.items.get(set.item as string); + if (!set.skip || set.signatureMove !== ssbSets[set.skip].signatureMove) { + const sigMove = baseDex.moves.get(set.signatureMove).exists && !Array.isArray(set.item) && + typeof item.zMove === 'string' ? + dex.moves.get(item.zMove) : dex.moves.get(set.signatureMove); + buf += generateSSBMoveInfo(sigMove, dex); + } + buf += generateSSBItemInfo(set, dex, baseDex); + buf += generateSSBAbilityInfo(set, dex, baseDex); + buf += generateSSBInnateInfo(setName, dex, baseDex); + buf += generateSSBPokemonInfo(set.species, dex, baseDex); + if (!Array.isArray(set.item) && item.megaStone) { + buf += generateSSBPokemonInfo(item.megaStone, dex, baseDex); + // keys and Kennedy have an itemless forme change + } else if (['Rayquaza'].includes(set.species)) { + buf += generateSSBPokemonInfo(`${set.species}-Mega`, dex, baseDex); + } else if (['Cinderace'].includes(set.species)) { + buf += generateSSBPokemonInfo(`${set.species}-Gmax`, dex, baseDex); + } + if (set.skip) buf += `
`; + } + return buf; +} + + +export const disabledSets = Chat.oldPlugins.ssb?.disabledSets || []; + +function enforceDisabledSets() { + for (const process of Rooms.PM.processes) { + process.getProcess().send(`EVAL\n\nConfig.disabledssbsets = ${JSON.stringify(disabledSets)}`); + } +} + +enforceDisabledSets(); + +export const commands: Chat.ChatCommands = { + ssb(target, room, user) { + if (!this.runBroadcast()) return; + if (!target) return this.parse(`/help ssb`); + const set = SSBSets(target); + if (typeof set !== 'string') { + throw new Chat.ErrorMessage(set.e); + } + return this.sendReplyBox(set); + }, + ssbhelp: [ + `/ssb [staff member] - Displays a staff member's Super Staff Bros. set and custom features.`, + ], + enablessbset: 'disablessbset', + disablessbset(target, room, user, connection, cmd) { + this.checkCan('rangeban'); + target = toID(target); + if (!Object.keys(ssbSets).map(toID).includes(target as ID)) { + throw new Chat.ErrorMessage(`${target} has no SSB set.`); + } + const disableIdx = disabledSets.indexOf(target); + if (cmd.startsWith('enable')) { + if (disableIdx < 0) { + throw new Chat.ErrorMessage(`${target}'s set is not disabled.`); + } + disabledSets.splice(disableIdx, 1); + this.privateGlobalModAction(`${user.name} enabled ${target}'s SSB set.`); + } else { + if (disableIdx > -1) { + throw new Chat.ErrorMessage(`That set is already disabled.`); + } + disabledSets.push(target); + this.privateGlobalModAction(`${user.name} disabled the SSB set for ${target}`); + } + enforceDisabledSets(); + }, +}; diff --git a/server/chat-plugins/randombattles/winrates.ts b/server/chat-plugins/randombattles/winrates.ts index b150361192ae..719c1b0cdc4d 100644 --- a/server/chat-plugins/randombattles/winrates.ts +++ b/server/chat-plugins/randombattles/winrates.ts @@ -21,13 +21,13 @@ interface FormatData { period?: number; // how often it resets - defaults to 1mo } -const STATS_PATH = 'logs/randbats/{{MONTH}}-winrates.json'; +const STATS_PATH = Monitor.logPath('randbats/{{MONTH}}-winrates.json').path; export const stats: Stats = getDefaultStats(); try { const path = STATS_PATH.replace('{{MONTH}}', getMonth()); - if (!FS('logs/randbats/').existsSync()) { - FS('logs/randbats/').mkdirSync(); + if (!Monitor.logPath('randbats/').existsSync()) { + Monitor.logPath('randbats/').mkdirSync(); } const savedStats = JSON.parse(FS(path).readSync()); stats.elo = savedStats.elo; @@ -45,11 +45,16 @@ function getDefaultStats() { // all of these requested by rands staff. they don't anticipate it being changed much // so i'm not spending the time to add commands to toggle this gen9randombattle: {mons: {}}, + gen9randomdoublesbattle: {mons: {}}, + gen9babyrandombattle: {mons: {}}, + gen9superstaffbrosultimate: {mons: {}}, + gen8randombattle: {mons: {}}, gen7randombattle: {mons: {}}, gen6randombattle: {mons: {}}, gen5randombattle: {mons: {}}, gen4randombattle: {mons: {}}, gen3randombattle: {mons: {}}, + gen2randombattle: {mons: {}}, gen1randombattle: {mons: {}}, }, } as Stats; @@ -87,6 +92,16 @@ function getSpeciesName(set: PokemonSet, format: Format) { return 'Dudunsparce'; } else if (species === "Maushold-Four") { return 'Maushold'; + } else if (species === "Greninja-Bond") { + return 'Greninja'; + } else if (species === "Keldeo-Resolute") { + return 'Keldeo'; + } else if (species === "Zarude-Dada") { + return 'Zarude'; + } else if (species === 'Polteageist-Antique') { + return 'Polteageist'; + } else if (species === 'Sinistcha-Masterpiece') { + return 'Sinistcha'; } else if (species === "Squawkabilly-Blue") { return "Squawkabilly"; } else if (species === "Squawkabilly-White") { @@ -107,6 +122,8 @@ function getSpeciesName(set: PokemonSet, format: Format) { return 'Toxtricity'; } else if (species.startsWith("Tatsugiri-")) { return 'Tatsugiri'; + } else if (species.startsWith("Alcremie-")) { + return 'Alcremie'; } else if (species === "Zacian" && item.name === "Rusted Sword") { return 'Zacian-Crowned'; } else if (species === "Zamazenta" && item.name === "Rusted Shield") { @@ -117,8 +134,18 @@ function getSpeciesName(set: PokemonSet, format: Format) { return "Groudon-Primal"; } else if (item.megaStone) { return item.megaStone; - } else if (species === "Rayquaza" && moves.includes('Dragon Ascent') && megaRayquazaPossible) { + } else if (species === "Rayquaza" && moves.includes('Dragon Ascent') && !item.zMove && megaRayquazaPossible) { return "Rayquaza-Mega"; + } else if (species === "Poltchageist-Artisan") { // Babymons from here on out + return "Poltchageist"; + } else if (species === "Shellos-East") { + return "Shellos"; + } else if (species === "Sinistea-Antique") { + return "Sinistea"; + } else if (species.startsWith("Deerling-")) { + return "Deerling"; + } else if (species.startsWith("Flabe\u0301be\u0301-")) { + return "Flabe\u0301be\u0301"; } else { return species; } @@ -147,19 +174,25 @@ async function collectStats(battle: RoomBattle, winner: ID, players: ID[]) { const formatData = stats.formats[battle.format]; let eloFloor = stats.elo; const format = Dex.formats.get(battle.format); - if (format.mod !== `gen${Dex.gen}`) { + if (format.mod === 'gen2' || format.team === 'randomBaby') { + // ladders are inactive, so use a lower threshold + eloFloor = 1150; + } else if (format.mod !== `gen${Dex.gen}`) { eloFloor = 1300; + } else if (format.gameType === 'doubles') { + // may need to be raised again if ladder takes off further + eloFloor = 1400; } - if (!formatData || battle.rated < eloFloor) return; + if (!formatData || (format.mod !== 'gen9ssb' && battle.rated < eloFloor) || !winner) return; checkRollover(); - for (const p of players) { - const team = await battle.getTeam(p); + for (const p of battle.players) { + const team = await battle.getPlayerTeam(p); if (!team) return; // ??? const mons = team.map(f => getSpeciesName(f, format)); for (const mon of mons) { if (!formatData.mons[mon]) formatData.mons[mon] = {timesGenerated: 0, numWins: 0}; formatData.mons[mon].timesGenerated++; - if (toID(winner) === toID(p)) { + if (toID(winner) === toID(p.name)) { formatData.mons[mon].numWins++; } } @@ -170,7 +203,12 @@ async function collectStats(battle: RoomBattle, winner: ID, players: ID[]) { export const commands: Chat.ChatCommands = { rwr: 'randswinrates', randswinrates(target, room, user) { - return this.parse(`/j view-winrates-${toID(target) || `gen${Dex.gen}randombattle`}`); + target = toID(target); + if (/^(gen|)[0-9]+$/.test(target)) { + if (target.startsWith('gen')) target = target.slice(3); + target = `gen${target}randombattle`; + } + return this.parse(`/j view-winrates-${target ? Dex.formats.get(target).id : `gen${Dex.gen}randombattle`}`); }, randswinrateshelp: [ '/randswinrates OR /rwr [format] - Get a list of the win rates for all Pokemon in the given Random Battles format.', diff --git a/server/chat-plugins/repeats.ts b/server/chat-plugins/repeats.ts index eeb5b46eb2aa..66e7e0e3296e 100644 --- a/server/chat-plugins/repeats.ts +++ b/server/chat-plugins/repeats.ts @@ -196,11 +196,11 @@ export const commands: Chat.ChatCommands = { repeathelp() { this.runBroadcast(); this.sendReplyBox( - `/repeat [minutes], [id], [phrase]: repeats a given phrase every [minutes] minutes. Requires: % @ # &
` + - `/repeathtml [minutes], [id], [phrase]: repeats a given phrase containing HTML every [minutes] minutes. Requires: # &
` + - `/repeatfaq [minutes], [FAQ name/alias]: repeats a given Room FAQ every [minutes] minutes. Requires: % @ # &
` + - `/removerepeat [id]: removes a repeated phrase. Requires: % @ # &
` + - `/viewrepeats [optional room]: Displays all repeated phrases in a room. Requires: % @ # &
` + + `/repeat [minutes], [id], [phrase]: repeats a given phrase every [minutes] minutes. Requires: % @ # ~
` + + `/repeathtml [minutes], [id], [phrase]: repeats a given phrase containing HTML every [minutes] minutes. Requires: # ~
` + + `/repeatfaq [minutes], [FAQ name/alias]: repeats a given Room FAQ every [minutes] minutes. Requires: % @ # ~
` + + `/removerepeat [id]: removes a repeated phrase. Requires: % @ # ~
` + + `/viewrepeats [optional room]: Displays all repeated phrases in a room. Requires: % @ # ~
` + `You can append bymessages to a /repeat command to repeat a phrase based on how many messages have been sent in chat. For example, /repeatfaqbymessages ...
` + `Phrases for /repeat can include normal chat formatting, but not commands.` ); diff --git a/server/chat-plugins/responder.ts b/server/chat-plugins/responder.ts index 9d9cc4a425e0..d23d6bcfa15c 100644 --- a/server/chat-plugins/responder.ts +++ b/server/chat-plugins/responder.ts @@ -12,7 +12,7 @@ import {LogViewer} from './chatlog'; import {roomFaqs, visualizeFaq} from './room-faqs'; const DATA_PATH = 'config/chat-plugins/responder.json'; -const LOG_PATH = 'logs/responder.jsonl'; +const LOG_PATH = Monitor.logPath('responder.jsonl').path; export let answererData: {[roomid: string]: PluginData} = {}; @@ -378,7 +378,7 @@ export const commands: Chat.ChatCommands = { if (isNaN(num)) return this.errorReply("Invalid index."); room.responder.tryRemoveRegex(faq, num - 1); this.privateModAction(`${user.name} removed regex ${num} from the usable regexes for ${faq}.`); - this.modlog('AUTOFILTER REMOVE', null, index); + this.modlog('AUTOFILTER REMOVE', null, `removed regex ${index} for FAQ ${faq}`); const pages = [`keys`, `pairs`]; for (const p of pages) { this.refreshPage(`autofilter-${room.roomid}-${p}`); @@ -421,11 +421,11 @@ export const commands: Chat.ChatCommands = { autoresponderhelp() { const help = [ `/autoresponder view [page] - Views the Autoresponder page [page]. (options: keys, stats)`, - `/autoresponder toggle [on | off] - Enables or disables the Autoresponder for the current room. Requires: @ # &`, + `/autoresponder toggle [on | off] - Enables or disables the Autoresponder for the current room. Requires: @ # ~`, `/autoresponder add [input] => [faq] - Adds regex made from the input string to the current room's Autoresponder, to respond with [faq] to matches.`, `/autoresponder remove [faq], [regex index] - removes the regex matching the [index] from the current room's responses for [faq].`, `Indexes can be found in /autoresponder keys.`, - `Requires: @ # &`, + `Requires: @ # ~`, ]; return this.sendReplyBox(help.join('
')); }, diff --git a/server/chat-plugins/rock-paper-scissors.tsx b/server/chat-plugins/rock-paper-scissors.tsx deleted file mode 100644 index b60eded66e55..000000000000 --- a/server/chat-plugins/rock-paper-scissors.tsx +++ /dev/null @@ -1,393 +0,0 @@ -/** - * Rock Paper Scissors plugin by Mia - * @author mia-pi-git - */ -const MAX_ROUNDS = 200; -const TIMEOUT = 10 * 1000; -const ICONS: {[k: string]: Chat.VNode} = { - Rock: , - Paper: , - Scissors: , -}; - -const MATCHUPS = new Map([ - ['Scissors', 'Paper'], - ['Rock', 'Scissors'], - ['Paper', 'Rock'], -]); - -function toChoice(str: string) { - const id = toID(str); - return id.charAt(0).toUpperCase() + id.slice(1); -} - -export class RPSPlayer extends Rooms.RoomGamePlayer { - choice = ''; - prevChoice = ''; - prevWinner = false; - score = 0; - sendControls(jsx: Chat.VNode) { - this.sendRoom(Chat.html`|controlshtml|${jsx}`); - } -} - -export class RPSGame extends Rooms.RoomGame { - currentRound: number; - readonly checkChat = true; - roundTimer: NodeJS.Timeout | null = null; - constructor(room: Room) { - super(room); - this.currentRound = 0; - this.title = 'Rock Paper Scissors'; - this.gameid = 'rockpaperscissors' as ID; - - this.room.update(); - this.controls(
Waiting for another player to join....
); - this.sendField(); - } - controls(node: Chat.VNode) { - this.room.send(Chat.html`|controlshtml|${node}`); - } - onConnect(user: User, connection: Connection) { - this.room.sendUser(connection, Chat.html`|fieldhtml|${this.getField()}`); - } - static getWinner(p1: RPSPlayer, p2: RPSPlayer) { - const p1Choice = p1.choice; - const p2Choice = p2.choice; - if (!p1Choice && p2Choice) return p2; - if (!p2Choice && p1Choice) return p1; - if (MATCHUPS.get(p1Choice) === p2Choice) return p1; - if (MATCHUPS.get(p2Choice) === p1Choice) return p2; - return null; - } - sendControls(player: RPSPlayer) { - if (!this.roundTimer) { - return player.sendControls(
- The game is paused.

- -
); - } - if (player.choice) { - player.sendControls( -
You have selected {player.choice}. Now to wait for your foe.
- ); - return; - } - player.sendControls(
- Make your choice, quick! You have {Chat.toDurationString(TIMEOUT)}!
- {['Rock', 'Paper', 'Scissors'].map(choice => ( - - ))}

-
- -
); - } - getField() { - if (this.players.length < 2) { - return

Waiting to start the game...

; - } - - const [p1, p2] = this.players; - - function renderBigChoice(choice: string, isWinner?: boolean) { - return
- {ICONS[choice] || '\u00A0'}
- - - {choice || '\u00A0'} - - -
; - } - - function renderCurrentChoice(exists?: boolean) { - return
{exists ? : '\u00A0'}
; - } - - return - - - -
-
{p1.name} ({p1.score})
- {renderBigChoice(p1.prevChoice, p1.prevWinner)} - {renderCurrentChoice(!!p1.choice)} -
- vs - -
{p2.name} ({p2.score})
- {renderBigChoice(p2.prevChoice, p2.prevWinner)} - {renderCurrentChoice(!!p2.choice)} -
; - } - sendField() { - this.room.send(Chat.html`|fieldhtml|${this.getField()}`); - } - end() { - const [p1, p2] = this.players; - if (p1.score === p2.score) { - this.message(`**Tie** at score ${p1.score}!`); - } else { - const [winner, loser] = p1.score > p2.score ? [p1, p2] : [p2, p1]; - this.message(`**${winner.name}** wins with score ${winner.score} to ${loser.score}!`); - } - - if (this.roundTimer) { - clearTimeout(this.roundTimer); - this.roundTimer = null; - } - - this.room.pokeExpireTimer(); - this.ended = true; - this.room.add(`|-message|The game has ended.`); // for the benefit of those in the room - for (const player of this.players) { - player.sendControls(
The game has ended.
); - player.unlinkUser(); - } - } - runMatch() { - const [p1, p2] = this.players; - const winner = RPSGame.getWinner(p1, p2); - if (!winner) { // tie - if (!p1.choice) { - this.message(`${p1.name} and ${p2.name} both **timed out**.`); - } else { - this.message(`${p1.name} and ${p2.name} **tie** with ${p1.choice}.`); - } - } else { - const loser = p1 === winner ? p2 : p1; - if (!loser.choice) { - this.message(`**${winner.name}**'s ${winner.choice} wins; ${loser.name} timed out.`); - } else { - this.message(`**${winner.name}**'s ${winner.choice} beats ${loser.name}'s ${loser.choice}.`); - } - winner.score++; - } - - if (!winner && !p1.choice) { - this.pause(); - return; - } - - if (this.currentRound >= MAX_ROUNDS) { - this.message(`The game is ending automatically at ${this.currentRound} rounds.`); - return this.end(); - } - - for (const player of this.players) { - player.prevChoice = player.choice; - player.prevWinner = false; - player.choice = ''; - } - if (winner) winner.prevWinner = true; - - this.sendField(); - this.nextRound(); - } - smallMessage(message: string) { - this.room.add(`|-message|${message}`).update(); - } - message(message: string) { - this.room.add(`|message|${message}`).update(); - } - start() { - if (this.players.length < 2) { - throw new Chat.ErrorMessage(`There are not enough players to start. Use /rps start to start when all players are ready.`); - } - if (this.room.log.log.length > 1000) { - // prevent logs from ballooning too much - this.room.log.log = []; - } - const [p1, p2] = this.players; - this.room.add( - `|raw|

Rock Paper Scissors: ${p1.name} vs ${p2.name}!

\n` + - `|message|Game started!\n` + - `|notify|Game started!` - ).update(); - this.nextRound(); - } - getPlayer(user: User) { - const player = this.playerTable[user.id]; - if (!player) throw new Chat.ErrorMessage(`You are not a player in this game.`); - return player; - } - pause(user?: User) { - if (!this.roundTimer) throw new Chat.ErrorMessage(`The game is not running, and cannot be paused.`); - - const player = user ? this.getPlayer(user) : null; - clearTimeout(this.roundTimer); - this.roundTimer = null; - for (const curPlayer of this.players) this.sendControls(curPlayer); - if (player) this.message(`The game was paused by ${player.name}.`); - } - unpause(user: User) { - if (this.roundTimer) throw new Chat.ErrorMessage(`The game is not paused.`); - - const player = this.getPlayer(user); - this.message(`The game was resumed by ${player.name}.`); - this.nextRound(); - } - nextRound() { - this.currentRound++; - this.sendField(); - this.room.add(`|html|

Round ${this.currentRound}

`).update(); - this.roundTimer = setTimeout(() => { - this.runMatch(); - }, TIMEOUT); - for (const player of this.players) this.sendControls(player); - } - choose(user: User, option: string) { - option = toChoice(option); - const player = this.getPlayer(user); - if (!MATCHUPS.get(option)) { - throw new Chat.ErrorMessage(`Invalid choice: ${option}.`); - } - if (player.choice) throw new Chat.ErrorMessage("You have already made your choice!"); - player.choice = option; - this.smallMessage(`${user.name} made a choice.`); - this.sendControls(player); - if (this.players.filter(item => item.choice).length > 1) { - clearTimeout(this.roundTimer!); - this.roundTimer = null; - return this.runMatch(); - } - this.sendField(); - return true; - } - leaveGame(user: User) { - const player = this.getPlayer(user); - player.sendRoom(`You left the game.`); - delete this.playerTable[user.id]; - this.end(); - } - addPlayer(user: User) { - if (this.playerTable[user.id]) throw new Chat.ErrorMessage(`You are already a player in this game.`); - this.playerTable[user.id] = this.makePlayer(user); - this.players.push(this.playerTable[user.id]); - this.room.auth.set(user.id, Users.PLAYER_SYMBOL); - return this.playerTable[user.id]; - } - makePlayer(user: string | User | null): RPSPlayer { - return new RPSPlayer(user, this); - } -} - -function findExisting(user1: string, user2: string) { - return Rooms.get(`game-rps-${user1}-${user2}`) || Rooms.get(`game-rps-${user2}-${user1}`); -} - -export const commands: Chat.ChatCommands = { - rps: 'rockpaperscissors', - rockpaperscissors: { - challenge: 'create', - chall: 'create', - chal: 'create', - create(target, room, user) { - target = target.trim(); - if (!target && this.pmTarget) { - target = this.pmTarget.id; - } - const {targetUser, targetUsername} = this.splitUser(target); - if (!targetUser) { - return this.errorReply(`User ${targetUsername} not found. Either specify a username or use this command in PMs.`); - } - if (targetUser === user) return this.errorReply(`You cannot challenge yourself.`); - if (targetUser.settings.blockChallenges && !user.can('bypassblocks', targetUser)) { - Chat.maybeNotifyBlocked('challenge', targetUser, user); - return this.errorReply(this.tr`The user '${targetUser.name}' is not accepting challenges right now.`); - } - const existingRoom = findExisting(user.id, targetUser.id); - if (existingRoom?.game && !existingRoom.game.ended) { - return this.errorReply(`You're already playing a Rock Paper Scissors game against ${targetUser.name}!`); - } - - Ladders.challenges.add( - new Ladders.GameChallenge(user.id, targetUser.id, "Rock Paper Scissors", { - acceptCommand: `/rps accept ${user.id}`, - }) - ); - - if (!this.pmTarget) this.pmTarget = targetUser; - this.sendChatMessage( - `/raw ${user.name} wants to play Rock Paper Scissors!` - ); - }, - - accept(target, room, user) { - const fromUser = Ladders.challenges.accept(this); - - const existingRoom = findExisting(user.id, fromUser.id); - const roomid = `game-rps-${fromUser.id}-${user.id}`; - const gameRoom = existingRoom || Rooms.createGameRoom( - roomid as RoomID, `[RPS] ${user.name} vs ${fromUser.name}`, {} - ); - - const game = new RPSGame(gameRoom); - gameRoom.game = game; - - game.addPlayer(fromUser); - game.addPlayer(user); - user.joinRoom(gameRoom.roomid); - fromUser.joinRoom(gameRoom.roomid); - (gameRoom.game as RPSGame).start(); - - this.pmTarget = fromUser; - this.sendChatMessage(`/text ${user.name} accepted <<${gameRoom.roomid}>>`); - }, - - deny: 'reject', - reject(target, room, user) { - return this.parse(`/reject ${target}`); - }, - - end(target, room, user) { - const game = this.requireGame(RPSGame); - if (!game.playerTable[user.id]) { - return this.errorReply(`You are not a player, and so cannot end the game.`); - } - game.end(); - }, - - choose(target, room, user) { - this.parse(`/choose ${target}`); - }, - - leave(target, room, user) { - this.parse(`/leavegame`); - }, - - pause(target, room, user) { - const game = this.requireGame(RPSGame); - game.pause(user); - }, - - unpause: 'resume', - resume(target, room, user) { - const game = this.requireGame(RPSGame); - game.unpause(user); - }, - - '': 'help', - help() { - this.runBroadcast(); - const strings = [ - `/rockpaperscissors OR /rps
`, - `/rps challenge [user] - Challenges a user to a game of Rock Paper Scissors`, - `(in PM) /rps challenge - Challenges a user to a game of Rock Paper Scissors`, - `/rps leave - Leave the game.`, - `/rps start - Start the Rock Paper Scissors game.`, - `/rps end - End the Rock Paper Scissors game`, - `/rps pause - Pauses the game, if it's in progress.`, - `/rps resume - Resumes the game, if it's paused.`, - ]; - return this.sendReplyBox(strings.join('
')); - }, - }, -}; diff --git a/server/chat-plugins/room-events.ts b/server/chat-plugins/room-events.ts index ebdbed03949a..8e46b591fe7d 100644 --- a/server/chat-plugins/room-events.ts +++ b/server/chat-plugins/room-events.ts @@ -567,17 +567,17 @@ export const commands: Chat.ChatCommands = { roomeventshelp() { this.sendReply( `|html|
/roomevents: displays a list of upcoming room-specific events.
` + - `/roomevents add [event name] | [event date/time] | [event description]: adds a room event. A timestamp in event date/time field like YYYY-MM-DD HH:MM±hh:mm will be displayed in user's timezone. Requires: @ # &
` + - `/roomevents start [event name]: declares to the room that the event has started. Requires: @ # &
` + - `/roomevents remove [event name]: deletes an event. Requires: @ # &
` + - `/roomevents rename [old event name] | [new name]: renames an event. Requires: @ # &
` + - `/roomevents addalias [alias] | [event name]: adds an alias for the event. Requires: @ # &
` + - `/roomevents removealias [alias]: removes an event alias. Requires: @ # &
` + - `/roomevents addcategory [category]: adds an event category. Requires: @ # &
` + - `/roomevents removecategory [category]: removes an event category. Requires: @ # &
` + - `/roomevents addtocategory [event name] | [category]: adds the event to a category. Requires: @ # &
` + - `/roomevents removefromcategory [event name] | [category]: removes the event from a category. Requires: @ # &
` + - `/roomevents sortby [column name] | [asc/desc (optional)] sorts events table by column name and an optional argument to ascending or descending order. Ascending order is default. Requires: @ # &
` + + `/roomevents add [event name] | [event date/time] | [event description]: adds a room event. A timestamp in event date/time field like YYYY-MM-DD HH:MM±hh:mm will be displayed in user's timezone. Requires: @ # ~
` + + `/roomevents start [event name]: declares to the room that the event has started. Requires: @ # ~
` + + `/roomevents remove [event name]: deletes an event. Requires: @ # ~` + + `/roomevents rename [old event name] | [new name]: renames an event. Requires: @ # ~
` + + `/roomevents addalias [alias] | [event name]: adds an alias for the event. Requires: @ # ~
` + + `/roomevents removealias [alias]: removes an event alias. Requires: @ # ~
` + + `/roomevents addcategory [category]: adds an event category. Requires: @ # ~
` + + `/roomevents removecategory [category]: removes an event category. Requires: @ # ~
` + + `/roomevents addtocategory [event name] | [category]: adds the event to a category. Requires: @ # ~
` + + `/roomevents removefromcategory [event name] | [category]: removes the event from a category. Requires: @ # ~
` + + `/roomevents sortby [column name] | [asc/desc (optional)] sorts events table by column name and an optional argument to ascending or descending order. Ascending order is default. Requires: @ # ~
` + `/roomevents view [event name or category]: displays information about a specific event or category of events.
` + `/roomevents viewcategories: displays a list of event categories for that room.` + `
` diff --git a/server/chat-plugins/room-faqs.ts b/server/chat-plugins/room-faqs.ts index a0a298b7d0fc..cff37190ff27 100644 --- a/server/chat-plugins/room-faqs.ts +++ b/server/chat-plugins/room-faqs.ts @@ -111,9 +111,9 @@ export const commands: Chat.ChatCommands = { if (!(roomFaqs[room.roomid] && roomFaqs[room.roomid][topic])) return this.errorReply("Invalid topic."); if ( room.settings.repeats?.length && - room.settings.repeats.filter(x => x.faq && x.id === (getAlias(room!.roomid, topic) || topic)).length + room.settings.repeats.filter(x => x.faq && x.id === topic).length ) { - this.parse(`/msgroom ${room.roomid},/removerepeat ${getAlias(room.roomid, topic) || topic}`); + this.parse(`/msgroom ${room.roomid},/removerepeat ${topic}`); } delete roomFaqs[room.roomid][topic]; Object.keys(roomFaqs[room.roomid]).filter( @@ -136,6 +136,10 @@ export const commands: Chat.ChatCommands = { if (!(alias && topic)) return this.parse('/help roomfaq'); if (alias.length > 25) return this.errorReply("FAQ topics should not exceed 25 characters."); + if (alias === topic) return this.errorReply("You cannot make the alias have the same name as the topic."); + if (roomFaqs[room.roomid][alias] && !roomFaqs[room.roomid][alias].alias) { + return this.errorReply("You cannot overwrite an existing topic with an alias; please delete the topic first."); + } if (!(roomFaqs[room.roomid] && topic in roomFaqs[room.roomid])) { return this.errorReply(`The topic ${topic} was not found in this room's faq list.`); @@ -176,10 +180,10 @@ export const commands: Chat.ChatCommands = { roomfaqhelp: [ `/roomfaq - Shows the list of all available FAQ topics`, `/roomfaq - Shows the FAQ for .`, - `/addfaq , - Adds an entry for in this room or updates it. Requires: @ # &`, - `/addhtmlfaq , - Adds or updates an entry for with HTML support. Requires: # &`, - `/addalias , - Adds as an alias for , displaying it when users use /roomfaq . Requires: @ # &`, - `/removefaq - Removes the entry for in this room. If used on an alias, removes the alias. Requires: @ # &`, + `/addfaq , - Adds an entry for in this room or updates it. Requires: @ # ~`, + `/addhtmlfaq , - Adds or updates an entry for with HTML support. Requires: # ~`, + `/addalias , - Adds as an alias for , displaying it when users use /roomfaq . Requires: @ # ~`, + `/removefaq - Removes the entry for in this room. If used on an alias, removes the alias. Requires: @ # ~`, ], }; diff --git a/server/chat-plugins/sample-teams.ts b/server/chat-plugins/sample-teams.ts index 34b99313d506..3ff4663f3307 100644 --- a/server/chat-plugins/sample-teams.ts +++ b/server/chat-plugins/sample-teams.ts @@ -107,7 +107,7 @@ export const SampleTeams = new class SampleTeams { sanitizeFormat(formatid: string, checkExists = false) { const format = Dex.formats.get(formatid); - if (checkExists && !format.exists) { + if (checkExists && format.effectType !== 'Format') { throw new Chat.ErrorMessage(`Format "${formatid.trim()}" not found. Check spelling?`); } if (format.team) { @@ -304,7 +304,11 @@ export const handlers: Chat.Handlers = { }; export const commands: Chat.ChatCommands = { - sampleteams: { + sampleteams(target, room, user) { + this.sendReply(`Sample Teams are being deprecated. Please do \`\`/tier [formatid]\`\` to view their resources.`); + this.sendReply(`If you are room staff for a room and would like to access old samples for your room's formats, please contact an admin.`); + }, + /* sampleteams: { ''(target, room, user) { this.runBroadcast(); let [formatid, category] = target.split(','); @@ -428,162 +432,9 @@ export const commands: Chat.ChatCommands = { sampleteamshelp: [ `/sampleteams [format] - Lists the sample teams for [format], if there are any.`, `/sampleteams addcategory/removecategory [format], [category] - Adds/removes categories for [format].`, - `/sampleteams add - Pulls up the interface to add sample teams. Requires: Room staff in dedicated tier room, &`, + `/sampleteams add - Pulls up the interface to add sample teams. Requires: Room staff in dedicated tier room, ~`, `/sampleteams remove [format], [category], [team name] - Removes a sample team for [format] in [category].`, - `/sampleteams whitelist add [formatid], [formatid] | [roomid], [roomid], ... - Whitelists room staff for the provided roomids to add sample teams. Requires: &`, - `/sampleteams whitelist remove [formatid], [roomid] - Unwhitelists room staff for the provided room to add sample teams. Requires: &`, - ], + `/sampleteams whitelist add [formatid], [formatid] | [roomid], [roomid], ... - Whitelists room staff for the provided roomids to add sample teams. Requires: ~`, + `/sampleteams whitelist remove [formatid], [roomid] - Unwhitelists room staff for the provided room to add sample teams. Requires: ~`, + ], */ }; - -function formatFakeButton(url: string, text: string) { - return `${text}`; -} - -export const pages: Chat.PageTable = { - sampleteams: { - whitelist(query, user, connection) { - this.title = `Sample Teams Whitelist`; - if (!(SampleTeams.isDevMod(user) || user.can('bypassall'))) { - return `

Access denied.

`; - } - const staffRoomAccess = Rooms.get('staff')?.checkModjoin(user); - let buf = `

Sample Teams Rooms Whitelist

`; - if ((!teamData.whitelist || !Object.keys(teamData.whitelist).length) && !query.length) { - buf += `

No rooms are whitelisted for any formats.

`; - } - if (query[0] === 'add') { - buf += ``; - buf += `

`; - buf += `
`; - buf += `
`; - buf += `
${formatFakeButton("view-sampleteams-whitelist", "Return to list")}`; - } else { - buf += `
`; - for (const formatid of Object.keys(teamData.whitelist).sort().reverse()) { - if (!teamData.whitelist[formatid]?.length) continue; - buf += `
${SampleTeams.getFormatName(formatid)}
`; - for (const roomid of teamData.whitelist[formatid]) { - buf += `
${Rooms.get(roomid)?.title || roomid}`; - buf += `
`; - } - } - buf += `
`; - } - buf += `${query.length ? '' : formatFakeButton("view-sampleteams-whitelist-add", "Whitelist room")}
`; - return buf; - }, - view(query, user, connection) { - this.title = `Sample Teams`; - let buf = `
`; - if (query.slice(0, query.length - 1).join('-')) { - buf += `${formatFakeButton(`view-sampleteams-view-${query.slice(0, query.length - 1).join('-')}`, "« Back")}`; - } else { - buf += ``; - } - buf += ``; - buf += `

Sample Teams


`; - const q0Teams = teamData.teams[query[0]]; - const q0TeamKeys = q0Teams ? Object.keys(q0Teams) : []; - if (!query[0]) { - const formats = Object.keys(teamData.teams); - if (!formats.length) return `${buf}

No teams found.

`; - buf += `

Pick a format

    `; - for (const formatid of formats) { - if (!formatid) continue; - buf += `
  • ${formatFakeButton(`view-sampleteams-view-${formatid}`, `${SampleTeams.getFormatName(formatid)}`)}
  • `; - } - buf += `
`; - } else if (!q0Teams || !q0TeamKeys.length || - (!Object.keys(q0Teams.uncategorized).length && !q0TeamKeys.filter(x => x !== 'uncategorized').length)) { - const name = Dex.formats.get(query[0]).exists ? Dex.formats.get(query[0]).name : query[0]; - return `${buf}

No teams for ${name} were found.

`; - } else if (!query[1] || (!SampleTeams.findCategory(query[0], query[1]) && query[1] !== 'allteams')) { - buf += `

Pick a category

`; - } else if (query[1] === 'allteams') { - buf += `

All teams for ${SampleTeams.getFormatName(query[0])}

`; - for (const categoryName in teamData.teams[query[0]]) { - const category = teamData.teams[query[0]][categoryName]; - if (!Object.keys(category).length) continue; - buf += `

${categoryName}

`; - for (const teamName in category) { - const team = category[teamName]; - if (SampleTeams.checkPermissions(user, teamData.whitelist[query[0]] || [])) { - buf += ``; - } - buf += SampleTeams.formatTeam(teamName, team); - } - buf += `
`; - const index = Object.keys(teamData.teams[query[0]]).indexOf(categoryName); - if (index !== Object.keys(teamData.teams[query[0]]).length - 1) buf += `
`; - } - } else if (SampleTeams.findCategory(query[0], query[1])) { - const categoryName = SampleTeams.findCategory(query[0], query[1])!; - buf += `

Sample teams for ${SampleTeams.getFormatName(query[0])} in the ${categoryName} category

`; - for (const teamName in teamData.teams[query[0]][categoryName]) { - const team = teamData.teams[query[0]][categoryName][teamName]; - buf += SampleTeams.formatTeam(teamName, team); - } - } - buf += `
`; - return buf; - }, - add(query, user, connection) { - this.title = `Sample Teams`; - const trimFormatName = (name: string) => (name.includes('(') ? name.slice(0, name.indexOf('(')) : name).trim(); - const formatsSet = new Set(Dex.formats.all().map(format => trimFormatName(format.name))); - const formatsArr = Array.from(formatsSet); - const formats = formatsArr.map(formatName => Dex.formats.get(formatName)) - .filter(format => ( - !format.name.includes('Custom') && format.effectType === 'Format' && - !format.team && SampleTeams.checkPermissions(user, SampleTeams.whitelistedRooms(format.id) || []) - )); - if (!formats.length) return `

Access denied.

`; - let buf = `
`; - if (query.slice(0, query.length - 1).join('-')) { - buf += `${formatFakeButton(`view-sampleteams-add-${query.slice(0, query.length - 1).join('-')}`, "« Back")}`; - } else { - buf += ``; - } - let buttonTitle = 'Refresh'; - if (query[2] === 'submit') buttonTitle = 'Add another team'; - buf += ``; - buf += `

Add a sample team

`; - if (!query[0] || !Dex.formats.get(query[0]).exists) { - buf += `

Pick a format

    `; - for (const format of formats) { - buf += `
  • ${formatFakeButton(`view-sampleteams-add-${format.id}`, format.name)}
  • `; - } - buf += `
`; - } else if (!query[1] || !SampleTeams.findCategory(query[0], query[1]) || query[1] === 'addnewcategory') { - const name = SampleTeams.getFormatName(query[0]); - if (query[1] === 'addnewcategory') { - buf += `

Add a category for ${name}

`; - buf += `
`; - buf += ``; - buf += `
`; - } else { - buf += `

Pick a category for ${name}

    `; - for (const category of Object.keys(teamData.teams[query[0]] || {}) || []) { - buf += `
  • ${formatFakeButton(`view-sampleteams-add-${query[0]}-${toID(category)}-submit`, category)}
  • `; - } - buf += `
  • ${formatFakeButton(`view-sampleteams-add-${query[0]}-addnewcategory`, `Add new category`)}
`; - } - } - const categoryName = SampleTeams.findCategory(query[0], query[1]); - if (categoryName) { - buf += `
`; - buf += `

Enter a team name

`; - buf += `

Enter team importable


`; - buf += `
`; - } - buf += `
`; - return buf; - }, - }, -}; - -Chat.multiLinePattern.register(`/sampleteams add `); diff --git a/server/chat-plugins/scavenger-games.ts b/server/chat-plugins/scavenger-games.ts index 11d1610c2634..beeec1aadc36 100644 --- a/server/chat-plugins/scavenger-games.ts +++ b/server/chat-plugins/scavenger-games.ts @@ -7,7 +7,7 @@ * @license MIT license */ -import {ScavengerHunt, ScavengerHuntPlayer} from './scavengers'; +import {ScavengerHunt, ScavengerHuntPlayer, sanitizeAnswer} from './scavengers'; import {Utils} from '../../lib'; export type TwistEvent = (this: ScavengerHunt, ...args: any[]) => void; @@ -92,10 +92,9 @@ class Leaderboard { async htmlLadder(): Promise { const data = await this.visualize('points'); - const display = `
${data.map(line => + return `
RankNamePoints
${data.map(line => ``).join('') }
RankNamePoints
${line.rank}${line.name}${line.points}
`; - return display; } } @@ -341,9 +340,9 @@ const TWISTS: {[k: string]: Twist} = { return true; }, - onLeave(user) { - for (const ip of user.ips) { - this.altIps[ip] = {id: user.id, name: user.name}; + onLeave(player) { + for (const ip of player.joinIps) { + this.altIps[ip] = {id: player.id, name: player.name}; } }, @@ -356,15 +355,21 @@ const TWISTS: {[k: string]: Twist} = { onComplete(player, time, blitz) { const now = Date.now(); - const takenTime = Chat.toDurationString(now - this.startTimes[player.id], {hhmmss: true}); - const result = {name: player.name, id: player.id, time: takenTime, blitz}; + const takenTime = now - this.startTimes[player.id]; + const result = { + name: player.name, + id: player.id, + time: Chat.toDurationString(takenTime, {hhmmss: true}), + duration: takenTime, + blitz, + }; this.completed.push(result); const place = Utils.formatOrder(this.completed.length); this.announce( Utils.html`${result.name} is the ${place} player to finish the hunt! (${takenTime}${(blitz ? " - BLITZ" : "")})` ); - Utils.sortBy(this.completed, entry => entry.time); + Utils.sortBy(this.completed, entry => entry.duration); player.destroy(); // remove from user.games; return true; @@ -400,7 +405,7 @@ const TWISTS: {[k: string]: Twist} = { const currentQuestion = player.currentQuestion; if (currentQuestion + 1 === this.questions.length) { - this.guesses[player.id] = value.split(',').map((part: string) => toID(part)); + this.guesses[player.id] = value.split(',').map((part: string) => sanitizeAnswer(part)); this.onComplete(player); return true; @@ -449,7 +454,7 @@ const TWISTS: {[k: string]: Twist} = { minesweeper: { id: 'minesweeper', name: 'Minesweeper', - desc: 'The huntmaker can add incorrect \'mines\' to the hunt - they get points every time a player scavenges it, and players that dodge all the mines in the hunt get points.', + desc: 'The huntmaker adds \'mines\' to the hunt using `!(mine)` - players that dodge all mines get extra points, while the huntmaker gets points every time a mine is hit.', onAfterLoad() { this.guesses = this.questions.map(() => []); this.mines = []; @@ -506,7 +511,7 @@ const TWISTS: {[k: string]: Twist} = { const curr = player.currentQuestion; if (!this.guesses[curr][player.id]) this.guesses[curr][player.id] = new Set(); - this.guesses[curr][player.id].add(toID(value)); + this.guesses[curr][player.id].add(sanitizeAnswer(value)); throw new Chat.ErrorMessage("That is not the answer - try again!"); }, @@ -517,11 +522,8 @@ const TWISTS: {[k: string]: Twist} = { const mines: {mine: string, users: string[]}[][] = []; - for (let index = 0; index < this.mines.length; index++) { - mines[index] = []; - for (const mine of this.mines[index]) { - mines[index].push({mine: mine.substr(1), users: []}); - } + for (const mineSet of this.mines as string[][]) { + mines.push(mineSet.map(mine => ({mine: mine.substr(1), users: [] as string[]}))); } for (const player of Object.values(this.playerTable)) { @@ -541,7 +543,7 @@ const TWISTS: {[k: string]: Twist} = { `${this.completed.length > sliceIndex ? `Consolation Prize: ${this.completed.slice(sliceIndex).map(e => `${Utils.escapeHTML(e.name)} [${e.time}]`).join(', ')}
` : ''}
` + `
Solution:
` + `${this.questions.map((q, i) => ( - `${i + 1}) ${Chat.formatText(q.hint)} [${Utils.escapeHTML(q.answer.join(' / '))}]
` + + `${i + 1}) ${this.formatOutput(q.hint)} [${Utils.escapeHTML(q.answer.join(' / '))}]
` + `
Mines: ${mines[i].map(({mine, users}) => Utils.escapeHTML(`${mine}: ${users.join(' / ') || '-'}`)).join('
')}
` )).join("
")}` + `
` @@ -555,9 +557,10 @@ const TWISTS: {[k: string]: Twist} = { const mines: string[] = this.mines[q]; for (const [playerId, guesses] of Object.entries(guessObj)) { const player = this.playerTable[playerId]; + if (!player) continue; if (!player.mines) player.mines = []; (player.mines as {index: number, mine: string}[]).push(...mines - .filter(mine => (guesses as Set).has(toID(mine))) + .filter(mine => (guesses as Set).has(sanitizeAnswer(mine))) .map(mine => ({index: q, mine: mine.substr(1)}))); } } @@ -784,11 +787,11 @@ const MODES: {[k: string]: GameMode | string} = { if (staffHost) staffHost.sendTo(this.room, `${targetUser.name} has received their first hint early.`); targetUser.sendTo( this.room, - `|raw|The first hint to the next hunt is: ${Chat.formatText(this.questions[0].hint)}` + `|raw|The first hint to the next hunt is:
${this.formatOutput(this.questions[0].hint)}
` ); targetUser.sendTo( this.room, - `|notify|Early Hint|The first hint to the next hunt is: ${Chat.formatText(this.questions[0].hint)}` + `|notify|Early Hint|The first hint to the next hunt is:
${this.formatOutput(this.questions[0].hint)}
` ); } }, (maxTime - time) * 1000 + 5000); diff --git a/server/chat-plugins/scavengers.ts b/server/chat-plugins/scavengers.ts index bb2114768094..761e8671088a 100644 --- a/server/chat-plugins/scavengers.ts +++ b/server/chat-plugins/scavengers.ts @@ -17,6 +17,7 @@ type GameTypes = 'official' | 'regular' | 'mini' | 'unrated' | 'practice' | 'rec export interface QueuedHunt { hosts: {id: string, name: string, noUpdate?: boolean}[]; questions: (string | string[])[]; + isHTML: boolean; staffHostId: string; staffHostName: string; gameType: GameTypes; @@ -63,6 +64,11 @@ function getScavsRoom(room?: Room) { return null; } +// Normalize answers before checking, eg: Pokémon! -> pokemon +export function sanitizeAnswer(answer: string): string { + return toID(answer.normalize('NFD')); +} + class Ladder { file: string; data: {[userid: string]: AnyObject}; @@ -226,19 +232,19 @@ function formatQueue(queue: QueuedHunt[] | undefined, viewer: User, room: Room, return Utils.html`[${q.join(' / ')}]
`; } else { q = q as string; - return Utils.escapeHTML(q); + return item.isHTML ? q : Utils.escapeHTML(q); } } ).join(" "); } else { questions = `[${item.questions.length / 2} hidden questions]`; } - return `${removeButton}${startButton} ${unratedText}${hosts}${queuedBy}${questions}`; + return `${removeButton}${startButton} ${unratedText}${hosts}${queuedBy}
${questions}
`; }).join(""); } else { buffer = `The scavenger queue is currently empty.`; } - let template = `
${showStaff ? buffer : buffer.replace(/.+?<\/button>/gi, '')}
ByQuestions
`; + let template = `
${showStaff ? buffer : buffer.replace(/.+?<\/button>/gi, '')}
ByQuestions
`; if (showStaff) { template += ` - ).join(''); - - return
-

Foodfight Dish list

- {content ? -
Auto Timer Duration: ${timerDuration} minutesAuto Dequeue:
{dish}{ingredients.join(', ')}
{content}

Dishes

Ingredients

: -

There are no dishes in the database.

- } -
; - }, -}; diff --git a/server/chat-plugins/thing-of-the-day.ts b/server/chat-plugins/thing-of-the-day.ts index a335ba05349a..28495bc9541f 100644 --- a/server/chat-plugins/thing-of-the-day.ts +++ b/server/chat-plugins/thing-of-the-day.ts @@ -22,7 +22,7 @@ const FINISH_HANDLERS: {[k: string]: (winner: AnyObject) => Promise} = { const yt = Rooms.get('youtube'); if (!yt) return; yt.sendMods( - `|c|&|/log The channel with ID ${result} was added to the YouTube channel database.` + `|c|~|/log The channel with ID ${result} was added to the YouTube channel database.` ); yt.modlog({ action: `ADDCHANNEL`, @@ -296,7 +296,7 @@ class OtdHandler { this.room.add( Utils.html `|uhtml|otd|

` + `Nominations for ${this.name} of the ${this.timeLabel} are over!

` + - `Out of ${keys.length} nominations, we randomly selected ${winner.nomination} as the winner!` + + `Out of ${keys.length} nominations, we randomly selected ${winner.nomination} as the winner! ` + `(Nomination by ${winner.name})

Thanks to today's participants:` + namesHTML ); this.room.update(); @@ -516,7 +516,7 @@ export const otdCommands: Chat.ChatCommands = { this.privateModAction(`${user.name} has started nominations for the ${handler.name} of the ${handler.timeLabel}.`); this.modlog(`${handler.id.toUpperCase()} START`, null); }, - starthelp: [`/-otd start - Starts nominations for the Thing of the Day. Requires: % @ # &`], + starthelp: [`/-otd start - Starts nominations for the Thing of the Day. Requires: % @ # ~`], end(target, room, user) { this.checkChat(); @@ -539,7 +539,7 @@ export const otdCommands: Chat.ChatCommands = { this.modlog(`${handler.id.toUpperCase()} END`, null); }, endhelp: [ - `/-otd end - End nominations for the Thing of the Day and set it to a randomly selected nomination. Requires: % @ # &`, + `/-otd end - End nominations for the Thing of the Day and set it to a randomly selected nomination. Requires: % @ # ~`, ], nom(target, room, user) { @@ -596,7 +596,7 @@ export const otdCommands: Chat.ChatCommands = { }, removehelp: [ `/-otd remove [username] - Remove a user's nomination for the Thing of the Day.`, - `Prevents them from voting again until the next round. Requires: % @ # &`, + `Prevents them from voting again until the next round. Requires: % @ # ~`, ], removewinner(target, room, user) { @@ -613,7 +613,7 @@ export const otdCommands: Chat.ChatCommands = { }, removewinnerhelp: [ `/-otd removewinner [nomination] - Remove winners matching the given [nomination] from Thing of the Day.`, - `Requires: % @ # &`, + `Requires: % @ # ~`, ], force(target, room, user) { @@ -635,7 +635,7 @@ export const otdCommands: Chat.ChatCommands = { room.add(`The ${handler.name} of the ${handler.timeLabel} was forcibly set to '${target}'`); }, forcehelp: [ - `/-otd force [nomination] - Forcibly sets the Thing of the Day without a nomination round. Requires: # &`, + `/-otd force [nomination] - Forcibly sets the Thing of the Day without a nomination round. Requires: # ~`, ], delay(target, room, user) { @@ -655,7 +655,7 @@ export const otdCommands: Chat.ChatCommands = { this.privateModAction(`${user.name} disabled the ${handler.name} of the ${handler.timeLabel} timer.`); }, delayhelp: [ - `/-otd delay - Turns off the automatic 20 minute timer for Thing of the Day voting rounds. Requires: % @ # &`, + `/-otd delay - Turns off the automatic 20 minute timer for Thing of the Day voting rounds. Requires: % @ # ~`, ], set(target, room, user) { @@ -739,7 +739,7 @@ export const otdCommands: Chat.ChatCommands = { }, sethelp: [ `/-otd set property: value[, property: value] - Set the winner, quote, song, link or image for the current Thing of the Day.`, - `Requires: % @ # &`, + `Requires: % @ # ~`, ], toggleupdate(target, room, user) { @@ -889,25 +889,25 @@ export const commands: Chat.ChatCommands = { }, }, otdhelp: [ - `/otd create [title], [time], [...labels] - Creates a Thing of the Day with the given [name], [time], and [labels]. Requires: &`, - `/otd updateroom [otd], [room] - Updates the room for the given [otd] to the new [room]. Requires: &`, - `/otd delete [otd] - Removes the given Thing of the Day. Requires: &`, + `/otd create [title], [time], [...labels] - Creates a Thing of the Day with the given [name], [time], and [labels]. Requires: ~`, + `/otd updateroom [otd], [room] - Updates the room for the given [otd] to the new [room]. Requires: ~`, + `/otd delete [otd] - Removes the given Thing of the Day. Requires: ~`, ], }; const otdHelp = [ `Thing of the Day plugin commands (aotd, fotd, sotd, cotd, botw, motw, anotd):`, `- /-otd - View the current Thing of the Day.`, - `- /-otd start - Starts nominations for the Thing of the Day. Requires: % @ # &`, + `- /-otd start - Starts nominations for the Thing of the Day. Requires: % @ # ~`, `- /-otd nom [nomination] - Nominate something for Thing of the Day.`, - `- /-otd remove [username] - Remove a user's nomination for the Thing of the Day and prevent them from voting again until the next round. Requires: % @ # &`, - `- /-otd end - End nominations for the Thing of the Day and set it to a randomly selected nomination. Requires: % @ # &`, - `- /-otd removewinner [nomination] - Remove a winner with the given [nomination] from the winners list. Requires: % @ # &`, - `- /-otd force [nomination] - Forcibly sets the Thing of the Day without a nomination round. Requires: # &`, - `- /-otd delay - Turns off the automatic 20 minute timer for Thing of the Day voting rounds. Requires: % @ # &`, - `- /-otd set property: value[, property: value] - Set the winner, quote, song, link or image for the current Thing of the Day. Requires: % @ # &`, + `- /-otd remove [username] - Remove a user's nomination for the Thing of the Day and prevent them from voting again until the next round. Requires: % @ # ~`, + `- /-otd end - End nominations for the Thing of the Day and set it to a randomly selected nomination. Requires: % @ # ~`, + `- /-otd removewinner [nomination] - Remove a winner with the given [nomination] from the winners list. Requires: % @ # ~`, + `- /-otd force [nomination] - Forcibly sets the Thing of the Day without a nomination round. Requires: # ~`, + `- /-otd delay - Turns off the automatic 20 minute timer for Thing of the Day voting rounds. Requires: % @ # ~`, + `- /-otd set property: value[, property: value] - Set the winner, quote, song, link or image for the current Thing of the Day. Requires: % @ # ~`, `- /-otd winners - Displays a list of previous things of the day.`, - `- /-otd toggleupdate [on|off] - Changes the Thing of the Day to display on nomination ([on] to update, [off] to turn off updates). Requires: % @ # &`, + `- /-otd toggleupdate [on|off] - Changes the Thing of the Day to display on nomination ([on] to update, [off] to turn off updates). Requires: # ~`, ]; for (const otd in otdData) { diff --git a/server/chat-plugins/trivia/transactions.ts b/server/chat-plugins/trivia/transactions.ts index 4ef25080eb5e..8da8fa71313b 100644 --- a/server/chat-plugins/trivia/transactions.ts +++ b/server/chat-plugins/trivia/transactions.ts @@ -35,9 +35,9 @@ export const transactions = { const {oldQuestionText, newQuestionText, newAnswers} = args; if (newAnswers) { - const questionID = env.db + const questionID = (env.db .prepare('SELECT question_id FROM trivia_questions WHERE question = ?') - .get(oldQuestionText)?.question_id; + .get(oldQuestionText) as AnyObject | null)?.question_id; if (!questionID) throw new Error('Question not found'); env.db.prepare('DELETE FROM trivia_answers WHERE question_id = ?').run(questionID); const insert = env.db.prepare('INSERT INTO trivia_answers (question_id, answer) VALUES (?, ?)'); diff --git a/server/chat-plugins/trivia/trivia.ts b/server/chat-plugins/trivia/trivia.ts index 08feae6fcc4a..b158344bdf37 100644 --- a/server/chat-plugins/trivia/trivia.ts +++ b/server/chat-plugins/trivia/trivia.ts @@ -364,7 +364,7 @@ class TriviaPlayer extends Rooms.RoomGamePlayer { } export class Trivia extends Rooms.RoomGame { - gameid: ID; + override readonly gameid = 'trivia' as ID; kickedUsers: Set; canLateJoin: boolean; game: TriviaGame; @@ -383,7 +383,6 @@ export class Trivia extends Rooms.RoomGame { isRandomMode = false, isSubGame = false, isRandomCategory = false, ) { super(room, isSubGame); - this.gameid = 'trivia' as ID; this.title = 'Trivia'; this.allowRenames = true; this.playerCap = Number.MAX_SAFE_INTEGER; @@ -578,14 +577,14 @@ export class Trivia extends Rooms.RoomGame { this.kickedUsers.add(id); } - super.removePlayer(user); + this.removePlayer(this.playerTable[user.id]); } leave(user: User) { if (!this.playerTable[user.id]) { throw new Chat.ErrorMessage(this.room.tr`You are not a player in the current game.`); } - super.removePlayer(user); + this.removePlayer(this.playerTable[user.id]); } /** @@ -738,7 +737,7 @@ export class Trivia extends Rooms.RoomGame { if (!user) continue; user.sendTo( this.room.roomid, - (this.game.givesPoints ? this.room.tr`You gained ${player.points} and answered ` : this.room.tr`You answered `) + + (this.game.givesPoints ? this.room.tr`You gained ${player.points} points and answered ` : this.room.tr`You answered `) + this.room.tr`${player.correctAnswers} questions correctly.` ); } @@ -1200,6 +1199,7 @@ export class TriumvirateModeTrivia extends Trivia { * which is a game of First mode trivia that ends after a specified interval. */ export class Mastermind extends Rooms.SimpleRoomGame { + override readonly gameid = 'mastermind' as ID; /** userid:score Map */ leaderboard: Map; phase: string; @@ -1210,7 +1210,6 @@ export class Mastermind extends Rooms.SimpleRoomGame { super(room); this.leaderboard = new Map(); - this.gameid = 'mastermind' as ID; this.title = 'Mastermind'; this.allowRenames = true; this.playerCap = Number.MAX_SAFE_INTEGER; @@ -1388,7 +1387,7 @@ export class Mastermind extends Rooms.SimpleRoomGame { if (lbEntry) { this.leaderboard.set(user.id, {...lbEntry, hasLeft: true}); } - super.removePlayer(user); + this.removePlayer(this.playerTable[user.id]); } kick(toKick: User, kicker: User) { @@ -1412,7 +1411,7 @@ export class Mastermind extends Rooms.SimpleRoomGame { } } - super.removePlayer(toKick); + this.removePlayer(this.playerTable[toKick.id]); } } @@ -1596,7 +1595,7 @@ const triviaCommands: Chat.ChatCommands = { `/trivia new [mode], [categories], [length] - Begin a new Trivia game.`, `/trivia unrankednew [mode], [category], [length] - Begin a new Trivia game that does not award leaderboard points.`, `/trivia sortednew [mode], [category], [length] — Begin a new Trivia game in which the question order is not randomized.`, - `Requires: + % @ # &`, + `Requires: + % @ # ~`, ], join(target, room, user) { @@ -1614,7 +1613,7 @@ const triviaCommands: Chat.ChatCommands = { const {targetUser} = this.requireUser(target, {allowOffline: true}); getTriviaOrMastermindGame(room).kick(targetUser, user); }, - kickhelp: [`/trivia kick [username] - Kick players from a trivia game by username. Requires: % @ # &`], + kickhelp: [`/trivia kick [username] - Kick players from a trivia game by username. Requires: % @ # ~`], leave(target, room, user) { getTriviaGame(room).leave(user); @@ -1629,7 +1628,7 @@ const triviaCommands: Chat.ChatCommands = { getTriviaGame(room).start(); }, - starthelp: [`/trivia start - Ends the signup phase of a trivia game and begins the game. Requires: + % @ # &`], + starthelp: [`/trivia start - Ends the signup phase of a trivia game and begins the game. Requires: + % @ # ~`], answer(target, room, user) { room = this.requireRoom(); @@ -1665,8 +1664,8 @@ const triviaCommands: Chat.ChatCommands = { getTriviaGame(room).resume(); } }, - pausehelp: [`/trivia pause - Pauses a trivia game. Requires: + % @ # &`], - resumehelp: [`/trivia resume - Resumes a paused trivia game. Requires: + % @ # &`], + pausehelp: [`/trivia pause - Pauses a trivia game. Requires: + % @ # ~`], + resumehelp: [`/trivia resume - Resumes a paused trivia game. Requires: + % @ # ~`], end(target, room, user) { room = this.requireRoom(); @@ -1675,7 +1674,7 @@ const triviaCommands: Chat.ChatCommands = { getTriviaOrMastermindGame(room).end(user); }, - endhelp: [`/trivia end - Forcibly end a trivia game. Requires: + % @ # &`], + endhelp: [`/trivia end - Forcibly end a trivia game. Requires: + % @ # ~`], getwinners: 'win', async win(target, room, user) { @@ -1691,7 +1690,7 @@ const triviaCommands: Chat.ChatCommands = { } await game.win(this.tr`${user.name} ended the game of Trivia!`); }, - winhelp: [`/trivia win - End a trivia game and tally the points to find winners. Requires: + % @ # & in Infinite length, else # &`], + winhelp: [`/trivia win - End a trivia game and tally the points to find winners. Requires: + % @ # ~ in Infinite length, else # ~`], '': 'status', players: 'status', @@ -1802,8 +1801,8 @@ const triviaCommands: Chat.ChatCommands = { this.privateModAction(`Questions ${formattedQuestions} were submitted to the submission database by ${user.name} for review.`); } }, - submithelp: [`/trivia submit [category] | [question] | [answer1], [answer2] ... [answern] - Adds question(s) to the submission database for staff to review. Requires: + % @ # &`], - addhelp: [`/trivia add [category] | [question] | [answer1], [answer2], ... [answern] - Adds question(s) to the question database. Requires: % @ # &`], + submithelp: [`/trivia submit [category] | [question] | [answer1], [answer2] ... [answern] - Adds question(s) to the submission database for staff to review. Requires: + % @ # ~`], + addhelp: [`/trivia add [category] | [question] | [answer1], [answer2], ... [answern] - Adds question(s) to the question database. Requires: % @ # ~`], async review(target, room) { room = this.requireRoom('questionworkshop' as RoomID); @@ -1825,7 +1824,7 @@ const triviaCommands: Chat.ChatCommands = { this.sendReply(buffer); }, - reviewhelp: [`/trivia review - View the list of submitted questions. Requires: @ # &`], + reviewhelp: [`/trivia review - View the list of submitted questions. Requires: @ # ~`], reject: 'accept', async accept(target, room, user, connection, cmd) { @@ -1842,8 +1841,10 @@ const triviaCommands: Chat.ChatCommands = { if (toID(target) === 'all') { if (isAccepting) await database.addQuestions(submissions); await database.clearSubmissions(); - this.modlog(`TRIVIAQUESTION`, null, `${(isAccepting ? "added" : "removed")} all questions from the submission database.`); - return this.privateModAction(`${user.name} ${(isAccepting ? " added " : " removed ")} all questions from the submission database.`); + const questionText = submissions.map(q => `"${q.question}"`).join(', '); + const message = `${(isAccepting ? "added" : "removed")} all questions (${questionText}) from the submission database.`; + this.modlog(`TRIVIAQUESTION`, null, message); + return this.privateModAction(`${user.name} ${message}`); } if (/\d+(?:-\d+)?(?:, ?\d+(?:-\d+)?)*$/.test(target)) { @@ -1893,14 +1894,16 @@ const triviaCommands: Chat.ChatCommands = { await database.deleteSubmissions(questions); } - this.modlog('TRIVIAQUESTION', null, `${(isAccepting ? "added " : "removed ")}submission number${(indicesLen > 1 ? "s " : " ")}${target}`); - return this.privateModAction(`${user.name} ${(isAccepting ? "added " : "removed ")}submission number${(indicesLen > 1 ? "s " : " ")}${target} from the submission database.`); + const questionText = questions.map(q => `"${q}"`).join(', '); + const message = `${(isAccepting ? "added " : "removed ")}submission number${(indicesLen > 1 ? "s " : " ")}${target} (${questionText})`; + this.modlog('TRIVIAQUESTION', null, message); + return this.privateModAction(`${user.name} ${message} from the submission database.`); } this.errorReply(this.tr`'${target}' is an invalid argument. View /trivia help questions for more information.`); }, - accepthelp: [`/trivia accept [index1], [index2], ... [indexn] OR all - Add questions from the submission database to the question database using their index numbers or ranges of them. Requires: @ # &`], - rejecthelp: [`/trivia reject [index1], [index2], ... [indexn] OR all - Remove questions from the submission database using their index numbers or ranges of them. Requires: @ # &`], + accepthelp: [`/trivia accept [index1], [index2], ... [indexn] OR all - Add questions from the submission database to the question database using their index numbers or ranges of them. Requires: @ # ~`], + rejecthelp: [`/trivia reject [index1], [index2], ... [indexn] OR all - Remove questions from the submission database using their index numbers or ranges of them. Requires: @ # ~`], async delete(target, room, user) { room = this.requireRoom('questionworkshop' as RoomID); @@ -1921,7 +1924,7 @@ const triviaCommands: Chat.ChatCommands = { this.modlog('TRIVIAQUESTION', null, `removed '${target}' from ${category}`); return this.privateModAction(room.tr`${user.name} removed question '${target}' (category: ${category}) from the question database.`); }, - deletehelp: [`/trivia delete [question] - Delete a question from the trivia database. Requires: % @ # &`], + deletehelp: [`/trivia delete [question] - Delete a question from the trivia database. Requires: % @ # ~`], async move(target, room, user) { room = this.requireRoom('questionworkshop' as RoomID); @@ -1961,7 +1964,7 @@ const triviaCommands: Chat.ChatCommands = { } }, movehelp: [ - `/trivia move [category] | [question] - Change the category of a question in the trivia database. Requires: % @ # &`, + `/trivia move [category] | [question] - Change the category of a question in the trivia database. Requires: % @ # ~`, ], async migrate(target, room, user) { @@ -1996,7 +1999,7 @@ const triviaCommands: Chat.ChatCommands = { this.privateModAction(`${user.name} migrated all ${numQs} questions in the category ${sourceCategoryName} to ${destinationCategoryName}.`); }, migratehelp: [ - `/trivia migrate [source category], [destination category] — Moves all questions in a category to another category. Requires: # &`, + `/trivia migrate [source category], [destination category] — Moves all questions in a category to another category. Requires: # ~`, ], async edit(target, room, user) { @@ -2076,7 +2079,7 @@ const triviaCommands: Chat.ChatCommands = { this.privateModAction(`${user.name} ${actionString}.`); }, edithelp: [ - `/trivia edit | | - Edit a question in the trivia database, replacing answers if specified. Requires: % @ # &`, + `/trivia edit | | - Edit a question in the trivia database, replacing answers if specified. Requires: % @ # ~`, `/trivia edit question | | - Alternative syntax for /trivia edit.`, `/trivia edit answers | | - Alternative syntax for /trivia edit.`, ], @@ -2140,17 +2143,25 @@ const triviaCommands: Chat.ChatCommands = { }, qshelp: [ "/trivia qs - View the distribution of questions in the question database.", - "/trivia qs [category] - View the questions in the specified category. Requires: % @ # &", + "/trivia qs [category] - View the questions in the specified category. Requires: % @ # ~", ], cssearch: 'search', casesensitivesearch: 'search', + doublespacesearch: 'search', async search(target, room, user, connection, cmd) { room = this.requireRoom('questionworkshop' as RoomID); this.checkCan('show', null, room); - if (!target.includes(',')) return this.errorReply(this.tr`No valid search arguments entered.`); - let [type, ...query] = target.split(','); + let type, query; + if (cmd === 'doublespacesearch') { + query = [' ']; + type = target; + } else { + [type, ...query] = target.split(','); + if (!target.includes(',')) return this.errorReply(this.tr`No valid search arguments entered.`); + } + type = toID(type); let options; @@ -2164,7 +2175,8 @@ const triviaCommands: Chat.ChatCommands = { ); } - const queryString = query.join(',').trim(); + let queryString = query.join(','); + if (cmd !== 'doublespacesearch') queryString = queryString.trim(); if (!queryString) return this.errorReply(this.tr`No valid search query was entered.`); const results = await database.searchQuestions(queryString, options); @@ -2180,8 +2192,9 @@ const triviaCommands: Chat.ChatCommands = { this.sendReply(buffer); }, searchhelp: [ - `/trivia search [type], [query] - Searches for questions based on their type and their query. This command is case-insensitive. Valid types: submissions, subs, questions, qs. Requires: + % @ * &`, - `/trivia casesensitivesearch [type], [query] - Like /trivia search, but is case sensitive (capital letters matter). Requires: + % @ * &`, + `/trivia search [type], [query] - Searches for questions based on their type and their query. This command is case-insensitive. Valid types: submissions, subs, questions, qs. Requires: + % @ * ~`, + `/trivia casesensitivesearch [type], [query] - Like /trivia search, but is case sensitive (capital letters matter). Requires: + % @ * ~`, + `/trivia doublespacesearch [type] — Searches for questions with back-to-back space characters. Requires: + % @ * ~`, ], async moveusedevent(target, room, user) { @@ -2218,7 +2231,7 @@ const triviaCommands: Chat.ChatCommands = { }, moveusedeventhelp: [ `/trivia moveusedevent - Tells you whether or not moving used event questions to a different category is enabled.`, - `/trivia moveusedevent [on or off] - Toggles moving used event questions to a different category. Requires: # &`, + `/trivia moveusedevent [on or off] - Toggles moving used event questions to a different category. Requires: # ~`, ], async rank(target, room, user) { @@ -2338,7 +2351,7 @@ const triviaCommands: Chat.ChatCommands = { this.privateModAction(`${user.name} reset the cycle-specific Trivia leaderboard.`); this.modlog('TRIVIA LEADERBOARDRESET', null, 'cycle-specific leaderboard'); }, - resetcycleleaderboardhelp: [`/trivia resetcycleleaderboard - Resets the cycle-specific Trivia leaderboard. Requires: # &`], + resetcycleleaderboardhelp: [`/trivia resetcycleleaderboard - Resets the cycle-specific Trivia leaderboard. Requires: # ~`], clearquestions: 'clearqs', async clearqs(target, room, user) { @@ -2358,7 +2371,7 @@ const triviaCommands: Chat.ChatCommands = { return this.errorReply(this.tr`'${category}' is an invalid category.`); } }, - clearqshelp: [`/trivia clearqs [category] - Remove all questions of the given category. Requires: # &`], + clearqshelp: [`/trivia clearqs [category] - Remove all questions of the given category. Requires: # ~`], pastgames: 'history', async history(target, room, user) { @@ -2425,7 +2438,7 @@ const triviaCommands: Chat.ChatCommands = { addpointshelp: [ `/trivia removepoints [user], [points] - Remove points from a given user's score on the Trivia leaderboard.`, `/trivia addpoints [user], [points] - Add points to a given user's score on the Trivia leaderboard.`, - `Requires: # &`, + `Requires: # ~`, ], async removeleaderboardentry(target, room, user) { @@ -2457,7 +2470,7 @@ const triviaCommands: Chat.ChatCommands = { this.privateModAction(`${user.name} removed ${userid}'s Trivia leaderboard entries.`); }, removeleaderboardentryhelp: [ - `/trivia removeleaderboardentry [user] — Remove all leaderboard entries for a user. Requires: # &`, + `/trivia removeleaderboardentry [user] — Remove all leaderboard entries for a user. Requires: # ~`, ], mergealt: 'mergescore', @@ -2505,40 +2518,40 @@ const triviaCommands: Chat.ChatCommands = { `

  • You may also specify a number for length; in this case, the game will end after that number of questions have been asked.
  • ` + `` + `
    Game commands
      ` + - `
    • /trivia new [mode], [categories], [length] - Begin signups for a new Trivia game. [categories] can be either one category, or a +-separated list of categories. Requires: + % @ # &
    • ` + - `
    • /trivia unrankednew [mode], [category], [length] - Begin a new Trivia game that does not award leaderboard points. Requires: + % @ # &
    • ` + - `
    • /trivia sortednew [mode], [category], [length] — Begin a new Trivia game in which the question order is not randomized. Requires: + % @ # &
    • ` + + `
    • /trivia new [mode], [categories], [length] - Begin signups for a new Trivia game. [categories] can be either one category, or a +-separated list of categories. Requires: + % @ # ~
    • ` + + `
    • /trivia unrankednew [mode], [category], [length] - Begin a new Trivia game that does not award leaderboard points. Requires: + % @ # ~
    • ` + + `
    • /trivia sortednew [mode], [category], [length] — Begin a new Trivia game in which the question order is not randomized. Requires: + % @ # ~
    • ` + `
    • /trivia join - Join a game of Trivia or Mastermind during signups.
    • ` + - `
    • /trivia start - Begin the game once enough users have signed up. Requires: + % @ # &
    • ` + + `
    • /trivia start - Begin the game once enough users have signed up. Requires: + % @ # ~
    • ` + `
    • /ta [answer] - Answer the current question.
    • ` + - `
    • /trivia kick [username] - Disqualify a participant from the current trivia game. Requires: % @ # &
    • ` + + `
    • /trivia kick [username] - Disqualify a participant from the current trivia game. Requires: % @ # ~
    • ` + `
    • /trivia leave - Makes the player leave the game.
    • ` + - `
    • /trivia end - End a trivia game. Requires: + % @ # &
    • ` + - `
    • /trivia win - End a trivia game and tally the points to find winners. Requires: + % @ # & in Infinite length, else # &
    • ` + - `
    • /trivia pause - Pauses a trivia game. Requires: + % @ # &
    • ` + - `
    • /trivia resume - Resumes a paused trivia game. Requires: + % @ # &
    • ` + + `
    • /trivia end - End a trivia game. Requires: + % @ # ~
    • ` + + `
    • /trivia win - End a trivia game and tally the points to find winners. Requires: + % @ # ~ in Infinite length, else # ~
    • ` + + `
    • /trivia pause - Pauses a trivia game. Requires: + % @ # ~
    • ` + + `
    • /trivia resume - Resumes a paused trivia game. Requires: + % @ # ~
    • ` + `
    ` + `
    Question-modifying commands
      ` + - `
    • /trivia submit [category] | [question] | [answer1], [answer2] ... [answern] - Adds question(s) to the submission database for staff to review. Requires: + % @ # &
    • ` + - `
    • /trivia review - View the list of submitted questions. Requires: @ # &
    • ` + - `
    • /trivia accept [index1], [index2], ... [indexn] OR all - Add questions from the submission database to the question database using their index numbers or ranges of them. Requires: @ # &
    • ` + - `
    • /trivia reject [index1], [index2], ... [indexn] OR all - Remove questions from the submission database using their index numbers or ranges of them. Requires: @ # &
    • ` + - `
    • /trivia add [category] | [question] | [answer1], [answer2], ... [answern] - Adds question(s) to the question database. Requires: % @ # &
    • ` + - `
    • /trivia delete [question] - Delete a question from the trivia database. Requires: % @ # &
    • ` + - `
    • /trivia move [category] | [question] - Change the category of question in the trivia database. Requires: % @ # &
    • ` + - `
    • /trivia migrate [source category], [destination category] — Moves all questions in a category to another category. Requires: # &
    • ` + - Utils.html`
    • ${'/trivia edit | | '}: Edit a question in the trivia database, replacing answers if specified. Requires: % @ # &` + - Utils.html`
    • ${'/trivia edit answers | | '}: Replaces the answers of a question. Requires: % @ # &
    • ` + - Utils.html`
    • ${'/trivia edit question | | '}: Edits only the text of a question. Requires: % @ # &
    • ` + + `
    • /trivia submit [category] | [question] | [answer1], [answer2] ... [answern] - Adds question(s) to the submission database for staff to review. Requires: + % @ # ~
    • ` + + `
    • /trivia review - View the list of submitted questions. Requires: @ # ~
    • ` + + `
    • /trivia accept [index1], [index2], ... [indexn] OR all - Add questions from the submission database to the question database using their index numbers or ranges of them. Requires: @ # ~
    • ` + + `
    • /trivia reject [index1], [index2], ... [indexn] OR all - Remove questions from the submission database using their index numbers or ranges of them. Requires: @ # ~
    • ` + + `
    • /trivia add [category] | [question] | [answer1], [answer2], ... [answern] - Adds question(s) to the question database. Requires: % @ # ~
    • ` + + `
    • /trivia delete [question] - Delete a question from the trivia database. Requires: % @ # ~
    • ` + + `
    • /trivia move [category] | [question] - Change the category of question in the trivia database. Requires: % @ # ~
    • ` + + `
    • /trivia migrate [source category], [destination category] — Moves all questions in a category to another category. Requires: # ~
    • ` + + Utils.html`
    • ${'/trivia edit | | '}: Edit a question in the trivia database, replacing answers if specified. Requires: % @ # ~` + + Utils.html`
    • ${'/trivia edit answers | | '}: Replaces the answers of a question. Requires: % @ # ~
    • ` + + Utils.html`
    • ${'/trivia edit question | | '}: Edits only the text of a question. Requires: % @ # ~
    • ` + `
    • /trivia qs - View the distribution of questions in the question database.
    • ` + - `
    • /trivia qs [category] - View the questions in the specified category. Requires: % @ # &
    • ` + - `
    • /trivia clearqs [category] - Clear all questions in the given category. Requires: # &
    • ` + + `
    • /trivia qs [category] - View the questions in the specified category. Requires: % @ # ~
    • ` + + `
    • /trivia clearqs [category] - Clear all questions in the given category. Requires: # ~
    • ` + `
    • /trivia moveusedevent - Tells you whether or not moving used event questions to a different category is enabled.
    • ` + - `
    • /trivia moveusedevent [on or off] - Toggles moving used event questions to a different category. Requires: # &
    • ` + + `
    • /trivia moveusedevent [on or off] - Toggles moving used event questions to a different category. Requires: # ~
    • ` + `
    ` + `
    Informational commands
      ` + - `
    • /trivia search [type], [query] - Searches for questions based on their type and their query. Valid types: submissions, subs, questions, qs. Requires: + % @ # &
    • ` + - `
    • /trivia casesensitivesearch [type], [query] - Like /trivia search, but is case sensitive (i.e., capitalization matters). Requires: + % @ * &
    • ` + + `
    • /trivia search [type], [query] - Searches for questions based on their type and their query. Valid types: submissions, subs, questions, qs. Requires: + % @ # ~
    • ` + + `
    • /trivia casesensitivesearch [type], [query] - Like /trivia search, but is case sensitive (i.e., capitalization matters). Requires: + % @ * ~
    • ` + `
    • /trivia status [player] - lists the player's standings (your own if no player is specified) and the list of players in the current trivia game.
    • ` + `
    • /trivia rank [username] - View the rank of the specified user. If none is given, view your own.
    • ` + `
    • /trivia history - View a list of the 10 most recently played trivia games.
    • ` + @@ -2548,11 +2561,11 @@ const triviaCommands: Chat.ChatCommands = { `
    • /trivia ladder [n] - Displays the top [n] users on the cycle-specific Trivia leaderboard. If [n] isn't specified, shows 100 users.
    • ` + `
    • /trivia alltimewinsladder - Like /trivia ladder, but displays the all-time wins Trivia leaderboard (formerly all-time).
    • ` + `
    • /trivia alltimescoreladder - Like /trivia ladder, but displays the all-time score Trivia leaderboard (formerly non—all-time)
    • ` + - `
    • /trivia resetcycleleaderboard - Resets the cycle-specific Trivia leaderboard. Requires: # &` + + `
    • /trivia resetcycleleaderboard - Resets the cycle-specific Trivia leaderboard. Requires: # ~` + `
    • /trivia mergescore [user] — Merge another user's Trivia leaderboard score with yours.
    • ` + - `
    • /trivia addpoints [user], [points] - Add points to a given user's score on the Trivia leaderboard. Requires: # &
    • ` + - `
    • /trivia removepoints [user], [points] - Remove points from a given user's score on the Trivia leaderboard. Requires: # &
    • ` + - `
    • /trivia removeleaderboardentry [user] — Remove all Trivia leaderboard entries for a user. Requires: # &
    • ` + + `
    • /trivia addpoints [user], [points] - Add points to a given user's score on the Trivia leaderboard. Requires: # ~
    • ` + + `
    • /trivia removepoints [user], [points] - Remove points from a given user's score on the Trivia leaderboard. Requires: # ~
    • ` + + `
    • /trivia removeleaderboardentry [user] — Remove all Trivia leaderboard entries for a user. Requires: # ~
    • ` + `
    ` ); @@ -2577,7 +2590,7 @@ const mastermindCommands: Chat.ChatCommands = { room.game = new Mastermind(room, finalists); }, newhelp: [ - `/mastermind new [number of finalists] — Starts a new game of Mastermind with the specified number of finalists. Requires: + % @ # &`, + `/mastermind new [number of finalists] — Starts a new game of Mastermind with the specified number of finalists. Requires: + % @ # ~`, ], async start(target, room, user) { @@ -2607,7 +2620,7 @@ const mastermindCommands: Chat.ChatCommands = { game.startRound(player, category, questions, timeout); }, starthelp: [ - `/mastermind start [category], [length in seconds], [player] — Starts a round of Mastermind for a player. Requires: + % @ # &`, + `/mastermind start [category], [length in seconds], [player] — Starts a round of Mastermind for a player. Requires: + % @ # ~`, ], async finals(target, room, user) { @@ -2624,7 +2637,7 @@ const mastermindCommands: Chat.ChatCommands = { await game.startFinals(timeout); }, - finalshelp: [`/mastermind finals [length in seconds] — Starts the Mastermind finals. Requires: + % @ # &`], + finalshelp: [`/mastermind finals [length in seconds] — Starts the Mastermind finals. Requires: + % @ # ~`], join(target, room, user) { room = this.requireRoom(); @@ -2670,10 +2683,10 @@ const mastermindCommands: Chat.ChatCommands = { mastermindhelp() { if (!this.runBroadcast()) return; const commandHelp = [ - `/mastermind new [number of finalists]: starts a new game of Mastermind with the specified number of finalists. Requires: + % @ # &`, - `/mastermind start [category], [length in seconds], [player]: starts a round of Mastermind for a player. Requires: + % @ # &`, - `/mastermind finals [length in seconds]: starts the Mastermind finals. Requires: + % @ # &`, - `/mastermind kick [user]: kicks a user from the current game of Mastermind. Requires: % @ # &`, + `/mastermind new [number of finalists]: starts a new game of Mastermind with the specified number of finalists. Requires: + % @ # ~`, + `/mastermind start [category], [length in seconds], [player]: starts a round of Mastermind for a player. Requires: + % @ # ~`, + `/mastermind finals [length in seconds]: starts the Mastermind finals. Requires: + % @ # ~`, + `/mastermind kick [user]: kicks a user from the current game of Mastermind. Requires: % @ # ~`, `/mastermind join: joins the current game of Mastermind.`, `/mastermind answer OR /mma [answer]: answers a question in a round of Mastermind.`, `/mastermind pass OR /mmp: passes on the current question. Must be the player of the current round of Mastermind.`, @@ -2698,5 +2711,5 @@ export const commands: Chat.ChatCommands = { }; process.nextTick(() => { - Chat.multiLinePattern.register('/trivia add ', '/trivia submit '); + Chat.multiLinePattern.register('/trivia add ', '/trivia submit ', '/trivia move '); }); diff --git a/server/chat-plugins/uno.ts b/server/chat-plugins/uno.ts index 23107d720bfb..507b27c733ca 100644 --- a/server/chat-plugins/uno.ts +++ b/server/chat-plugins/uno.ts @@ -16,7 +16,7 @@ interface Card { name: string; } -const maxTime = 60; // seconds +const MAX_TIME = 60; // seconds const rgbGradients: {[k in Color]: string} = { Green: "rgba(0, 122, 0, 1), rgba(0, 185, 0, 0.9)", @@ -80,58 +80,38 @@ function createDeck() { } export class UNO extends Rooms.RoomGame { - playerCap: number; - allowRenames: boolean; - maxTime: number; - timer: NodeJS.Timer | null; - autostartTimer: NodeJS.Timer | null; - state: string; - currentPlayerid: ID; - deck: Card[]; - discards: Card[]; - topCard: Card | null; - awaitUno: string | null; - unoId: ID | null; - direction: number; + override readonly gameid = 'uno' as ID; + override title = 'UNO'; + override readonly allowRenames = true; + override timer: NodeJS.Timer | null = null; + maxTime = MAX_TIME; + autostartTimer: NodeJS.Timer | null = null; + state: 'signups' | 'color' | 'play' | 'uno' = 'signups'; + currentPlayer: UNOPlayer | null = null; + deck: Card[] = Utils.shuffle(createDeck()); + discards: Card[] = []; + topCard: Card | null = null; + awaitUnoPlayer: UNOPlayer | null = null; + unoId: ID | null = null; + direction: 1 | -1 = 1; suppressMessages: boolean; - spectators: {[k: string]: number}; - isPlusFour: boolean; + spectators: {[k: string]: number} = Object.create(null); + isPlusFour = false; gameNumber: number; constructor(room: Room, cap: number, suppressMessages: boolean) { super(room); this.gameNumber = room.nextGameNumber(); - this.playerCap = cap; - this.allowRenames = true; - this.maxTime = maxTime; - this.timer = null; - this.autostartTimer = null; - - this.gameid = 'uno' as ID; - this.title = 'UNO'; - - this.state = 'signups'; - this.currentPlayerid = ''; - this.deck = Utils.shuffle(createDeck()); - this.discards = []; - this.topCard = null; - this.awaitUno = null; - this.unoId = null; - this.isPlusFour = false; - - this.direction = 1; - this.suppressMessages = suppressMessages || false; - this.spectators = Object.create(null); this.sendToRoom(`|uhtml|uno-${this.gameNumber}|

    A new game of UNO is starting!

    ${this.suppressMessages ? `

    Game messages won't show up unless you're playing or watching.

    ` : ''}
    `, true); } - onUpdateConnection() {} + override onUpdateConnection() {} - onConnect(user: User, connection: Connection) { + override onConnect(user: User, connection: Connection) { if (this.state === 'signups') { connection.sendTo( this.room, @@ -168,8 +148,8 @@ export class UNO extends Rooms.RoomGame { this.onNextPlayer(); // determines the first player // give cards to the players - for (const i in this.playerTable) { - this.playerTable[i].hand.push(...this.drawCard(7)); + for (const player of this.players) { + player.hand.push(...this.drawCard(7)); } // top card of the deck. @@ -184,7 +164,7 @@ export class UNO extends Rooms.RoomGame { this.nextTurn(true); } - joinGame(user: User) { + override joinGame(user: User) { if (user.id in this.playerTable) { throw new Chat.ErrorMessage("You have already joined the game of UNO."); } @@ -195,9 +175,10 @@ export class UNO extends Rooms.RoomGame { return false; } - leaveGame(user: User) { + override leaveGame(user: User) { if (!(user.id in this.playerTable)) return false; - if ((this.state === 'signups' && this.removePlayer(user)) || this.eliminate(user.id)) { + const player = this.playerTable[user.id]; + if ((this.state === 'signups' && this.removePlayer(player)) || this.eliminate(user.id)) { this.sendToRoom(`${user.name} has left the game of UNO.`); return true; } @@ -211,38 +192,31 @@ export class UNO extends Rooms.RoomGame { return new UNOPlayer(user, this); } - onRename(user: User, oldUserid: ID, isJoining: boolean, isForceRenamed: boolean) { + override onRename(user: User, oldUserid: ID, isJoining: boolean, isForceRenamed: boolean) { if (!(oldUserid in this.playerTable) || user.id === oldUserid) return false; if (!user.named && !isForceRenamed) { user.games.delete(this.roomid); user.updateSearch(); return; // dont set users to their guest accounts. } - this.playerTable[user.id] = this.playerTable[oldUserid]; - // only run if it's a rename that involves a change of userid - if (user.id !== oldUserid) delete this.playerTable[oldUserid]; - - // update the user's name information - this.playerTable[user.id].name = user.name; - this.playerTable[user.id].id = user.id; - if (this.awaitUno && this.awaitUno === oldUserid) this.awaitUno = user.id; - - if (this.currentPlayerid === oldUserid) this.currentPlayerid = user.id; + this.renamePlayer(user, oldUserid); } - eliminate(userid: ID) { - if (!(userid in this.playerTable)) return false; + eliminate(userid: ID | undefined) { + if (!userid) return null; + const player = this.playerTable[userid]; + if (!player) return false; - const name = this.playerTable[userid].name; + const name = player.name; if (this.playerCount === 2) { - this.removePlayer(this.playerTable[userid]); - this.onWin(this.playerTable[Object.keys(this.playerTable)[0]]); + this.removePlayer(player); + this.onWin(this.players[0]); return name; } // handle current player... - const removingCurrentPlayer = userid === this.currentPlayerid; + const removingCurrentPlayer = player === this.currentPlayer; if (removingCurrentPlayer) { if (this.state === 'color') { if (!this.topCard) { @@ -254,18 +228,18 @@ export class UNO extends Rooms.RoomGame { } } - if (this.awaitUno === userid) this.awaitUno = null; + if (this.awaitUnoPlayer === player) this.awaitUnoPlayer = null; if (!this.topCard) { throw new Chat.ErrorMessage(`Unable to disqualify ${name}.`); } // put that player's cards into the discard pile to prevent cards from being permanently lost - this.discards.push(...this.playerTable[userid].hand); + this.discards.push(...player.hand); if (removingCurrentPlayer) { this.onNextPlayer(); } - this.removePlayer(this.playerTable[userid]); + this.removePlayer(player); if (removingCurrentPlayer) { this.nextTurn(true); } @@ -277,8 +251,8 @@ export class UNO extends Rooms.RoomGame { this.room.add(msg).update(); } else { // send to the players first - for (const i in this.playerTable) { - this.playerTable[i].sendRoom(msg); + for (const player of this.players) { + player.sendRoom(msg); } // send to spectators @@ -291,15 +265,16 @@ export class UNO extends Rooms.RoomGame { } getPlayers(showCards?: boolean): string { - let playerList = Object.keys(this.playerTable); + let playerList = this.players; + if (this.direction === -1) playerList = [...playerList].reverse(); + if (!showCards) { - return playerList.sort().map(id => Utils.escapeHTML(this.playerTable[id].name)).join(', '); + return playerList.map(p => Utils.escapeHTML(p.name)).join(', '); } - if (this.direction === -1) playerList = playerList.reverse(); let buf = `
      `; - for (const playerid of playerList) { - buf += ``; - buf += `${Utils.escapeHTML(this.playerTable[playerid].name)} (${this.playerTable[playerid].hand.length})`; + for (const player of playerList) { + buf += ``; + buf += `${Utils.escapeHTML(player.name)} (${player.hand.length})`; buf += ``; } buf += `
    `; @@ -308,7 +283,7 @@ export class UNO extends Rooms.RoomGame { onAwaitUno() { return new Promise(resolve => { - if (!this.awaitUno) return resolve(); + if (!this.awaitUnoPlayer) return resolve(); this.state = "uno"; // the throttle for sending messages is at 600ms for non-authed users, @@ -326,48 +301,42 @@ export class UNO extends Rooms.RoomGame { if (!starting) this.onNextPlayer(); if (this.timer) clearTimeout(this.timer); - const player = this.playerTable[this.currentPlayerid]; + const player = this.currentPlayer!; - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${player.name}'s turn.`); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${player.name}'s turn.`); this.state = 'play'; if (player.cardLock) player.cardLock = null; player.sendDisplay(); this.timer = setTimeout(() => { - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${player.name} has been automatically disqualified.`); - this.eliminate(this.currentPlayerid); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${player.name} has been automatically disqualified.`); + this.eliminate(player.id); }, this.maxTime * 1000); }); } onNextPlayer() { - // if none is set - if (!this.currentPlayerid) { - const userList = Object.keys(this.playerTable); - this.currentPlayerid = userList[Math.floor(this.playerCount * Math.random())] as ID; - } - - this.currentPlayerid = this.getNextPlayer(); + this.currentPlayer = this.getNextPlayer(); } getNextPlayer() { - const userList = Object.keys(this.playerTable); + // if none is set + this.currentPlayer ||= this.players[Math.floor(this.playerCount * Math.random())]; - let player: ID = userList[(userList.indexOf(this.currentPlayerid) + this.direction)] as ID; + let player = this.players[this.players.indexOf(this.currentPlayer) + this.direction]; + // wraparound + player ||= (this.direction === 1 ? this.players[0] : this.players[this.playerCount - 1]); - if (!player) { - player = toID(this.direction === 1 ? userList[0] : userList[this.playerCount - 1]); - } return player; } onDraw(player: UNOPlayer) { - if (this.currentPlayerid !== player.id || this.state !== 'play') return false; + if (this.currentPlayer !== player || this.state !== 'play') return false; if (player.cardLock) return true; this.onCheckUno(); - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${player.name} has drawn a card.`); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${player.name} has drawn a card.`); const card = this.onDrawCard(player, 1); player.sendDisplay(); @@ -375,7 +344,7 @@ export class UNO extends Rooms.RoomGame { } onPlay(player: UNOPlayer, cardName: string) { - if (this.currentPlayerid !== player.id || this.state !== 'play') return false; + if (this.currentPlayer !== player || this.state !== 'play') return false; const card = player.hasCard(cardName); if (!card) return "You do not have that card."; @@ -408,7 +377,7 @@ export class UNO extends Rooms.RoomGame { // update the unoId here, so when the display is sent to the player when the play is made if (player.hand.length === 1) { - this.awaitUno = player.id; + this.awaitUnoPlayer = player; this.unoId = Math.floor(Math.random() * 100).toString() as ID; } @@ -433,38 +402,38 @@ export class UNO extends Rooms.RoomGame { switch (value) { case 'Reverse': this.direction *= -1; - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|The direction of the game has changed.`); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|The direction of the game has changed.`); // in 2 player games, reverse sends the turn back to the player. if (!initialize && this.playerCount === 2) this.onNextPlayer(); break; case 'Skip': this.onNextPlayer(); - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${this.playerTable[this.currentPlayerid].name}'s turn has been skipped.`); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${this.currentPlayer!.name}'s turn has been skipped.`); break; case '+2': this.onNextPlayer(); - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${this.playerTable[this.currentPlayerid].name} has been forced to draw 2 cards.`); - this.onDrawCard(this.playerTable[this.currentPlayerid], 2); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${this.currentPlayer!.name} has been forced to draw 2 cards.`); + this.onDrawCard(this.currentPlayer!, 2); break; case '+4': - this.playerTable[this.currentPlayerid].sendRoom(colorDisplay); + this.currentPlayer!.sendRoom(colorDisplay); this.state = 'color'; // apply to the next in line, since the current player still has to choose the color const next = this.getNextPlayer(); - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${this.playerTable[next].name} has been forced to draw 4 cards.`); - this.onDrawCard(this.playerTable[next], 4); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${next.name} has been forced to draw 4 cards.`); + this.onDrawCard(next, 4); this.isPlusFour = true; this.timer = setTimeout(() => { - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${this.playerTable[this.currentPlayerid].name} has been automatically disqualified.`); - this.eliminate(this.currentPlayerid); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${this.currentPlayer!.name} has been automatically disqualified.`); + this.eliminate(this.currentPlayer!.id); }, this.maxTime * 1000); break; case 'Wild': - this.playerTable[this.currentPlayerid].sendRoom(colorDisplay); + this.currentPlayer!.sendRoom(colorDisplay); this.state = 'color'; this.timer = setTimeout(() => { - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${this.playerTable[this.currentPlayerid].name} has been automatically disqualified.`); - this.eliminate(this.currentPlayerid); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${this.currentPlayer!.name} has been automatically disqualified.`); + this.eliminate(this.currentPlayer!.id); }, this.maxTime * 1000); break; } @@ -474,7 +443,7 @@ export class UNO extends Rooms.RoomGame { onSelectColor(player: UNOPlayer, color: Color) { if ( !['Red', 'Blue', 'Green', 'Yellow'].includes(color) || - player.id !== this.currentPlayerid || + player !== this.currentPlayer || this.state !== 'color' ) { return false; @@ -484,7 +453,7 @@ export class UNO extends Rooms.RoomGame { throw new Error(`No top card in the discard pile.`); } this.topCard.changedColor = color; - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|The color has been changed to ${color}.`); + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|The color has been changed to ${color}.`); if (this.timer) clearTimeout(this.timer); // remove color change menu and send the display of their cards again @@ -531,28 +500,27 @@ export class UNO extends Rooms.RoomGame { onUno(player: UNOPlayer, unoId: ID) { // uno id makes spamming /uno uno impossible - if (this.unoId !== unoId || player.id !== this.awaitUno) return false; - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|**UNO!** ${player.name} is down to their last card!`); - this.awaitUno = null; + if (this.unoId !== unoId || player !== this.awaitUnoPlayer) return false; + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|**UNO!** ${player.name} is down to their last card!`); + this.awaitUnoPlayer = null; this.unoId = null; } onCheckUno() { - if (this.awaitUno) { - // if the previous player hasn't hit UNO before the next player plays something, they are forced to draw 2 cards; - if (this.awaitUno !== this.currentPlayerid) { - this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${this.playerTable[this.awaitUno].name} forgot to say UNO! and is forced to draw 2 cards.`); - this.onDrawCard(this.playerTable[this.awaitUno], 2); - } - this.awaitUno = null; - this.unoId = null; + if (!this.awaitUnoPlayer) return; + // if the previous player hasn't hit UNO before the next player plays something, they are forced to draw 2 cards; + if (this.awaitUnoPlayer !== this.currentPlayer) { + this.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${this.awaitUnoPlayer.name} forgot to say UNO! and is forced to draw 2 cards.`); + this.onDrawCard(this.awaitUnoPlayer, 2); } + this.awaitUnoPlayer = null; + this.unoId = null; } onSendHand(user: User) { - if (!(user.id in this.playerTable) || this.state === 'signups') return false; + if (this.state === 'signups') return false; - this.playerTable[user.id].sendDisplay(); + this.playerTable[user.id]?.sendDisplay(); } onWin(player: UNOPlayer) { @@ -563,15 +531,13 @@ export class UNO extends Rooms.RoomGame { this.destroy(); } - destroy() { + override destroy() { if (this.timer) clearTimeout(this.timer); if (this.autostartTimer) clearTimeout(this.autostartTimer); this.sendToRoom(`|uhtmlchange|uno-${this.gameNumber}|
    The game of UNO has ended.
    `, true); - // deallocate games for each player. - for (const i in this.playerTable) { - this.playerTable[i].destroy(); - } + this.setEnded(); + for (const player of this.players) player.destroy(); this.room.game = null; } } @@ -631,9 +597,9 @@ class UNOPlayer extends Rooms.RoomGamePlayer { // clear previous display and show new display this.sendRoom("|uhtmlchange|uno-hand|"); this.sendRoom( - `|uhtml|uno-hand|
    ${this.game.currentPlayerid === this.id ? `` : ""}` + + `|uhtml|uno-hand|
    ${hand}
    ${top}
    ${this.game.currentPlayer === this ? `` : ""}` + `
    ${hand}
    ${top}
    ${players}
    ` + - `${this.game.currentPlayerid === this.id ? `
    ${draw}${pass}
    ${uno}
    ` : ""}
    ` + `${this.game.currentPlayer === this ? `
    ${draw}${pass}
    ${uno}
    ` : ""}
    ` ); } } @@ -743,7 +709,7 @@ export const commands: Chat.ChatCommands = { game.maxTime = amount; if (game.timer) clearTimeout(game.timer); game.timer = setTimeout(() => { - game.eliminate(game.currentPlayerid); + game.eliminate(game.currentPlayer?.id); }, amount * 1000); this.addModAction(`${user.name} has set the UNO automatic disqualification timer to ${amount} seconds.`); this.modlog('UNO TIMER', null, `${amount} seconds`); @@ -823,13 +789,13 @@ export const commands: Chat.ChatCommands = { pass(target, room, user) { const game = this.requireGame(UNO); if (!game) throw new Chat.ErrorMessage("There is no UNO game going on in this room right now."); - if (game.currentPlayerid !== user.id) throw new Chat.ErrorMessage("It is currently not your turn."); const player: UNOPlayer | undefined = game.playerTable[user.id]; if (!player) throw new Chat.ErrorMessage(`You are not in the game of UNO.`); + if (game.currentPlayer !== player) throw new Chat.ErrorMessage("It is currently not your turn."); if (!player.cardLock) throw new Chat.ErrorMessage("You cannot pass until you draw a card."); if (game.state === 'color') throw new Chat.ErrorMessage("You cannot pass until you choose a color."); - game.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|&|${user.name} has passed.`); + game.sendToRoom(`|c:|${Math.floor(Date.now() / 1000)}|~|${user.name} has passed.`); game.nextTurn(); }, @@ -927,13 +893,13 @@ export const commands: Chat.ChatCommands = { }, unohelp: [ - `/uno create [player cap] - creates a new UNO game with an optional player cap (default player cap at 12). Use the command [createpublic] to force a public game or [createprivate] to force a private game. Requires: % @ # &`, - `/uno setcap [player cap] - adjusts the player cap of the current UNO game. Requires: % @ # &`, - `/uno timer [amount] - sets an auto disqualification timer for [amount] seconds. Requires: % @ # &`, - `/uno autostart [amount] - sets an auto starting timer for [amount] seconds. Requires: % @ # &`, - `/uno end - ends the current game of UNO. Requires: % @ # &`, - `/uno start - starts the current game of UNO. Requires: % @ # &`, - `/uno disqualify [player] - disqualifies the player from the game. Requires: % @ # &`, + `/uno create [player cap] - creates a new UNO game with an optional player cap (default player cap at 12). Use the command [createpublic] to force a public game or [createprivate] to force a private game. Requires: % @ # ~`, + `/uno setcap [player cap] - adjusts the player cap of the current UNO game. Requires: % @ # ~`, + `/uno timer [amount] - sets an auto disqualification timer for [amount] seconds. Requires: % @ # ~`, + `/uno autostart [amount] - sets an auto starting timer for [amount] seconds. Requires: % @ # ~`, + `/uno end - ends the current game of UNO. Requires: % @ # ~`, + `/uno start - starts the current game of UNO. Requires: % @ # ~`, + `/uno disqualify [player] - disqualifies the player from the game. Requires: % @ # ~`, `/uno hand - displays your own hand.`, `/uno cards - displays the number of cards for each player.`, `/uno getusers - displays the players still in the game.`, diff --git a/server/chat-plugins/username-prefixes.ts b/server/chat-plugins/username-prefixes.ts index 12e2019ceb27..838169d0ff0f 100644 --- a/server/chat-plugins/username-prefixes.ts +++ b/server/chat-plugins/username-prefixes.ts @@ -137,7 +137,7 @@ export const commands: Chat.ChatCommands = { `/usernameprefix remove [prefix], [type]: Removes a prefix configuration.
    ` + `/usernameprefix view [optional type]: Displays the currently configured username prefixes.
    ` + `Valid types are privacy (which forces battles to take place in public rooms) and modchat (which prevents players from setting moderated chat).
    ` + - `Requires: * &` + `Requires: * ~` ); }, }; diff --git a/server/chat-plugins/usersearch.tsx b/server/chat-plugins/usersearch.tsx index 067e2c30466c..226274912fac 100644 --- a/server/chat-plugins/usersearch.tsx +++ b/server/chat-plugins/usersearch.tsx @@ -130,7 +130,7 @@ export const commands: Chat.ChatCommands = { return this.sendReplyBox(); }, usersearchhelp: [ - `/usersearch [pattern]: Looks for all names matching the [pattern]. Requires: % @ &`, + `/usersearch [pattern]: Looks for all names matching the [pattern]. Requires: % @ ~`, `Adding "page" to the end of the command, i.e. /usersearchpage OR /uspage will bring up a page.`, `See also /usnames for a staff-curated list of the most commonly searched terms.`, ], @@ -202,8 +202,8 @@ export const commands: Chat.ChatCommands = { }, }, usnameshelp: [ - `/usnames add [...terms]: Adds the given [terms] to the usersearch name list. Requires: % @ &`, - `/usnames remove [...terms]: Removes the given [terms] from the usersearch name list. Requires: % @ &`, + `/usnames add [...terms]: Adds the given [terms] to the usersearch name list. Requires: % @ ~`, + `/usnames remove [...terms]: Removes the given [terms] from the usersearch name list. Requires: % @ ~`, `/usnames OR /usnames list: Shows the usersearch name list.`, ], }; diff --git a/server/chat-plugins/wifi.tsx b/server/chat-plugins/wifi.tsx index 682a57d1b888..ea5d154a5713 100644 --- a/server/chat-plugins/wifi.tsx +++ b/server/chat-plugins/wifi.tsx @@ -1,7 +1,8 @@ /** * Wi-Fi chat-plugin. Only works in a room with id 'wifi' * Handles giveaways in the formats: question, lottery, gts - * Written by Kris and bumbadadabum, based on the original plugin as written by Codelegend, SilverTactic, DanielCranham + * Written by dhelmise and bumbadadabum, based on the original + * plugin as written by Codelegend, SilverTactic, DanielCranham */ import {FS, Utils} from '../../lib'; @@ -11,7 +12,7 @@ Punishments.addRoomPunishmentType({ desc: 'banned from giveaways', }); -const BAN_DURATION = 7 * 24 * 60 * 60 * 1000; +const DAY = 24 * 60 * 60 * 1000; const RECENT_THRESHOLD = 30 * 24 * 60 * 60 * 1000; const DATA_FILE = 'config/chat-plugins/wifi.json'; @@ -96,7 +97,9 @@ const gameidToGame: {[k: string]: Game} = { sv: 'SV', }; -class Giveaway extends Rooms.SimpleRoomGame { +abstract class Giveaway extends Rooms.SimpleRoomGame { + override readonly gameid = 'giveaway' as ID; + abstract type: string; gaNumber: number; host: User; giver: User; @@ -169,7 +172,7 @@ class Giveaway extends Rooms.SimpleRoomGame { send(content: string | Chat.VNode, isStart = false) { this.room.add(Chat.html`|uhtml|giveaway${this.gaNumber}${this.phase}|${
    {content}
    }`); - if (isStart) this.room.add(`|c:|${Math.floor(Date.now() / 1000)}|&|It's ${this.game} giveaway time!`); + if (isStart) this.room.add(`|c:|${Math.floor(Date.now() / 1000)}|~|It's ${this.game} giveaway time!`); this.room.update(); } @@ -231,11 +234,11 @@ class Giveaway extends Rooms.SimpleRoomGame { return Punishments.hasRoomPunishType(room, toID(user), 'GIVEAWAYBAN'); } - static ban(room: Room, user: User, reason: string) { + static ban(room: Room, user: User, reason: string, duration: number) { Punishments.roomPunish(room, user, { type: 'GIVEAWAYBAN', id: toID(user), - expireTime: Date.now() + BAN_DURATION, + expireTime: Date.now() + duration, reason, }); } @@ -346,7 +349,7 @@ class Giveaway extends Rooms.SimpleRoomGame {

    Note: You must have a Switch, Pokémon {gameName[this.game]}, {} - and Nintendo Switch Online to receive the prize. {} + and NSO to receive the prize. {} Do not join if you are currently unable to trade. Do not enter if you have already won this exact Pokémon, {} unless it is explicitly allowed.

    @@ -447,7 +450,7 @@ export class QuestionGiveaway extends Giveaway { if (Giveaway.checkBanned(this.room, user)) return user.sendTo(this.room, "You are banned from entering giveaways."); if (this.checkExcluded(user)) return user.sendTo(this.room, "You are disallowed from entering the giveaway."); - if ((this.answered.get(user.id) ?? 0) >= 3) { + if (this.answered.get(user.id) >= 3) { return user.sendTo( this.room, "You have already guessed three times. You cannot guess anymore in this.giveaway." @@ -466,7 +469,7 @@ export class QuestionGiveaway extends Giveaway { this.joined.set(user.latestIp, user.id); this.answered.add(user.id); - if ((this.answered.get(user.id) ?? 0) >= 3) { + if (this.answered.get(user.id) >= 3) { user.sendTo( this.room, `Your guess '${guess}' is wrong. You have used up all of your guesses. Better luck next time!` @@ -716,6 +719,7 @@ export class LotteryGiveaway extends Giveaway {

    {Chat.count(this.joined.size, 'users')} joined the giveaway.
    Our lucky winner{Chat.plural(this.winners)}: {winnerNames}!
    Congratulations!

    )); + this.room.sendMods(`|c|~|Participants: ${[...this.joined.values()].join(', ')}`); for (const winner of this.winners) { winner.sendTo( this.room, @@ -733,6 +737,7 @@ export class LotteryGiveaway extends Giveaway { } export class GTS extends Rooms.SimpleRoomGame { + override readonly gameid = 'gts' as ID; gtsNumber: number; room: Room; giver: User; @@ -916,6 +921,12 @@ export const handlers: Chat.Handlers = { saveData(); } }, + onPunishUser(type, user, room) { + const game = room?.getGame(LotteryGiveaway) || room?.getGame(QuestionGiveaway); + if (game) { + game.kickUser(user); + } + }, }; export const commands: Chat.ChatCommands = { @@ -1014,7 +1025,7 @@ export const commands: Chat.ChatCommands = { }, }, gtshelp: [ - `GTS giveaways are currently disabled. If you are a Room Owner and would like them to be re-enabled, contact Kris.`, + `GTS giveaways are currently disabled. If you are a Room Owner and would like them to be re-enabled, contact dhelmise.`, ], ga: 'giveaway', giveaway: { @@ -1075,7 +1086,9 @@ export const commands: Chat.ChatCommands = { giveaway.removeUser(user); } }, - ban(target, room, user) { + monthban: 'ban', + permaban: 'ban', + ban(target, room, user, connection, cmd) { if (!target) return false; room = this.requireRoom('wifi' as RoomID); this.checkCan('warn', null, room); @@ -1088,11 +1101,16 @@ export const commands: Chat.ChatCommands = { return this.errorReply(`User '${targetUser.name}' is already giveawaybanned.`); } - Giveaway.ban(room, targetUser, reason); + const duration = cmd === 'monthban' ? 30 * DAY : cmd === 'permaban' ? 3650 * DAY : 7 * DAY; + Giveaway.ban(room, targetUser, reason, duration); + (room.getGame(LotteryGiveaway) || room.getGame(QuestionGiveaway))?.kickUser(targetUser); - this.modlog('GIVEAWAYBAN', targetUser, reason); + + const action = cmd === 'monthban' ? 'MONTHGIVEAWAYBAN' : cmd === 'permaban' ? 'PERMAGIVEAWAYBAN' : 'GIVEAWAYBAN'; + this.modlog(action, targetUser, reason); const reasonMessage = reason ? ` (${reason})` : ``; - this.privateModAction(`${targetUser.name} was banned from entering giveaways by ${user.name}.${reasonMessage}`); + const durationMsg = cmd === 'monthban' ? ' for a month' : cmd === 'permaban' ? ' permanently' : ''; + this.privateModAction(`${targetUser.name} was banned from entering giveaways${durationMsg} by ${user.name}.${reasonMessage}`); }, unban(target, room, user) { if (!target) return false; @@ -1395,8 +1413,8 @@ export const commands: Chat.ChatCommands = { } }, whitelisthelp: [ - `/giveaway whitelist [user] - Allow the given [user] to make giveaways without staff help. Requires: % @ # &`, - `/giveaway unwhitelist [user] - Remove the given user from the giveaway whitelist. Requires: % @ # &`, + `/giveaway whitelist [user] - Allow the given [user] to make giveaways without staff help. Requires: % @ # ~`, + `/giveaway unwhitelist [user] - Remove the given user from the giveaway whitelist. Requires: % @ # ~`, ], whitelisted(target, room, user) { room = this.requireRoom('wifi' as RoomID); @@ -1464,24 +1482,24 @@ export const commands: Chat.ChatCommands = { const buf = []; if (user.can('show', null, room)) { buf.push(
    Staff commands - /giveaway create - Pulls up a page to create a giveaway. Requires: + % @ # &
    + /giveaway create - Pulls up a page to create a giveaway. Requires: + % @ # ~
    /giveaway create question Giver | OT | TID | Game | Question | Answer 1, Answer 2, Answer 3 | IV/IV/IV/IV/IV/IV | Poké Ball | Extra Info | Prize - - Start a new question giveaway (voices can only host their own). Requires: + % @ # &
    +
    - Start a new question giveaway (voices can only host their own). Requires: + % @ # ~
    /giveaway create lottery Giver | OT | TID | Game | # of Winners | IV/IV/IV/IV/IV/IV | Poké Ball | Extra Info | Prize - - Start a new lottery giveaway (voices can only host their own). Requires: + % @ # &
    + - Start a new lottery giveaway (voices can only host their own). Requires: + % @ # ~
    /giveaway changequestion/changeanswer - Changes the question/answer of a question giveaway. Requires: Being giveaway host
    /giveaway viewanswer - Shows the answer of a question giveaway. Requires: Being giveaway host/giver
    /giveaway ban [user], [reason] - - Temporarily bans [user] from entering giveaways. Requires: % @ # &
    - /giveaway end - Forcibly ends the current giveaway. Requires: % @ # &
    + - Temporarily bans [user] from entering giveaways. Requires: % @ # ~
    + /giveaway end - Forcibly ends the current giveaway. Requires: % @ # ~
    /giveaway count [pokemon] - Shows how frequently a certain Pokémon has been given away.
    - /giveaway whitelist [user] - Allow the given [user] to make giveaways. Requires: % @ # &
    - /giveaway unwhitelist [user] - Remove the given user from the giveaway whitelist. Requires: % @ # & + /giveaway whitelist [user] - Allow the given [user] to make giveaways. Requires: % @ # ~
    + /giveaway unwhitelist [user] - Remove the given user from the giveaway whitelist. Requires: % @ # ~
    ); } // Giveaway stuff diff --git a/server/chat-plugins/youtube.ts b/server/chat-plugins/youtube.ts index 74206c65be68..ae92961f8b72 100644 --- a/server/chat-plugins/youtube.ts +++ b/server/chat-plugins/youtube.ts @@ -10,7 +10,9 @@ import {Utils, FS, Net} from '../../lib'; const ROOT = 'https://www.googleapis.com/youtube/v3/'; const STORAGE_PATH = 'config/chat-plugins/youtube.json'; -const GROUPWATCH_ROOMS = ['youtube', 'pokemongames', 'videogames', 'smashbros', 'pokemongo', 'hindi']; +const GROUPWATCH_ROOMS = [ + 'youtube', 'pokemongames', 'videogames', 'smashbros', 'pokemongo', 'hindi', 'franais', 'arcade', +]; export const videoDataCache: Map = Chat.oldPlugins.youtube?.videoDataCache || new Map(); export const searchDataCache: Map = Chat.oldPlugins.youtube?.searchDataCache || new Map(); @@ -227,7 +229,7 @@ export class YoutubeInterface { if (id.includes('?')) id = id.split('?')[0]; return id; } - async generateVideoDisplay(link: string, fullInfo = false, broadcasting = false) { + async generateVideoDisplay(link: string, fullInfo = false) { if (!Config.youtubeKey) { throw new Chat.ErrorMessage(`This server does not support YouTube commands. If you're the owner, you can enable them by setting up Config.youtubekey.`); } @@ -237,12 +239,7 @@ export class YoutubeInterface { if (!fullInfo) { let buf = `${info.title} `; buf += `(
    ${info.channelTitle})
    `; - if (broadcasting) { - buf += ``; - } else { - buf += ``; - } + buf += ``; return buf; } let buf = ``; @@ -308,30 +305,47 @@ export class YoutubeInterface { return this.interval; } async createGroupWatch(url: string, baseRoom: Room, title: string) { - const id = this.getId(url); - const videoInfo = await this.getVideoData(id); - if (!videoInfo) throw new Chat.ErrorMessage(`Video not found.`); + const videoInfo = await this.getGroupwatchData(url); const num = baseRoom.nextGameNumber(); baseRoom.saveSettings(); - const gameRoom = Rooms.createGameRoom(`video-watch-${num}` as RoomID, Utils.html`[Group Watch] ${title}`, { - isPrivate: 'hidden', - }); - const game = new GroupWatch(gameRoom, url, videoInfo); - gameRoom.game = game; - gameRoom.setParent(baseRoom); - return gameRoom; + return new GroupWatch(baseRoom, num, url, title, videoInfo); + } + async getGroupwatchData(url: string) { + if (!Chat.isLink(url)) { + throw new Chat.ErrorMessage("Invalid URL: " + url); + } + const urlData = new URL(url); + const host = urlData.hostname; + let videoInfo: GroupwatchData; + if (['youtu.be', 'www.youtube.com'].includes(host)) { + const id = this.getId(url); + const data = await this.getVideoData(id); + if (!data) throw new Chat.ErrorMessage(`Video not found.`); + videoInfo = Object.assign(data, {groupwatchType: 'youtube'}) as GroupwatchData; + } else if (host === 'www.twitch.tv') { + const data = await Twitch.getChannel(urlData.pathname.slice(1)); + if (!data) throw new Chat.ErrorMessage(`Channel not found`); + videoInfo = Object.assign(data, {groupwatchType: 'twitch'}) as GroupwatchData; + } else { + throw new Chat.ErrorMessage(`Invalid URL: must be either a Youtube or Twitch link.`); + } + return videoInfo; } } export const Twitch = new class { linkRegex = /(https?:\/\/)?twitch.tv\/([A-Za-z0-9]+)/i; async getChannel(channel: string): Promise { + if (!Config.twitchKey || typeof Config.twitchKey !== 'object') { + throw new Chat.ErrorMessage(`Twitch is not enabled.`); + } channel = toID(channel); let res; try { - res = await Net(`https://api.twitch.tv/kraken/search/channels`).get({ + res = await Net(`https://api.twitch.tv/helix/search/channels`).get({ headers: { - 'Client-Id': Config.twitchKey, + 'Authorization': `Bearer ${Config.twitchKey.key}`, + 'Client-Id': Config.twitchKey.id, 'Content-Type': 'application/json', 'Accept': "application/vnd.twitchtv.v5+json", }, @@ -363,15 +377,21 @@ export const Twitch = new class { } }; +type GroupwatchData = VideoData & {groupwatchType: 'youtube'} | TwitchChannel & {groupwatchType: 'twitch'}; export class GroupWatch extends Rooms.SimpleRoomGame { + override readonly gameid = 'groupwatch' as ID; url: string; - info: VideoData; + info: GroupwatchData; started: number | null = null; - constructor(room: Room, url: string, videoInfo: VideoData) { + id: string; + static groupwatches = new Map(); + constructor(room: Room, num: number, url: string, title: string, videoInfo: GroupwatchData) { super(room); + this.title = title; + this.id = `${room.roomid}-${num}`; + GroupWatch.groupwatches.set(this.id, this); this.url = url; this.info = videoInfo; - this.controls(`

    Waiting to start the video...

    `); } onJoin(user: User) { const hints = this.hints(); @@ -381,131 +401,87 @@ export class GroupWatch extends Rooms.SimpleRoomGame { } start() { if (this.started) throw new Chat.ErrorMessage(`We've already started.`); - this.controls(this.getStatsDisplay()); - this.field(this.getVideoDisplay()); this.started = Date.now(); - this.add(`|html|

    Group Watch!

    `); + this.update(); } hints() { + const title = this.info.groupwatchType === 'youtube' ? this.info.title : this.info.display_name; const hints = [ `To watch, all you need to do is click play on the video once staff have started it!`, - `We are currently watching: ${this.info.title}`, + `We are currently watching: ${title}`, ]; - if (this.started) { + if (this.started && this.info.groupwatchType === 'youtube') { const diff = Date.now() - this.started; - hints.push(`Video is currently at ${Chat.toDurationString(diff)} (${diff / 1000} seconds)`); + hints.push(`Video is currently at ${Chat.toDurationString(diff)} (${Math.floor(diff / 1000)} seconds)`); } return hints; } getStatsDisplay() { + if (this.info.groupwatchType === 'twitch') { + let buf = `

    `; + buf += `Watching ${this.info.display_name}
    `; + buf += `${Chat.count(Object.keys(this.room.users).length, 'users')} watching
    `; + buf += `Playing: ${this.info.game}`; + return buf; + } let controlsHTML = `

    ${this.info.title}

    `; controlsHTML += `
    Channel: `; controlsHTML += `${this.info.channelTitle}
    `; controlsHTML += `Likes: ${this.info.likes} | Dislikes: ${this.info.dislikes}
    `; - controlsHTML += `Uploaded: ${Chat.toTimestamp(new Date(this.info.date))}
    `; + controlsHTML += `Uploaded:
    `; controlsHTML += `
    Description${this.info.description.replace(/\n/ig, '
    ')}
    `; controlsHTML += `
    `; return controlsHTML; } getVideoDisplay() { + if (this.info.groupwatchType === 'twitch') { + let buf = `

    `; + buf += ``; + return buf; + } let buf = `

    `; buf += `

    ${this.info.title}
    `; const id = YouTube.getId(this.url); const url = `https://youtube.com/watch?v=${id}`; - buf += ``; + let addendum = ''; + if (this.started) { + const diff = Date.now() - this.started; + addendum = `&start=${Math.floor(diff / 1000)}`; + } + buf += ``; buf += `
    `.repeat(4); buf += `

    `; return buf; } - controls(html: string) { - this.add(`|controlshtml|
    ${html}
    `); - } - field(html: string) { - this.add(`|fieldhtml|${html}`); - } - add(buf: string) { - this.room.add(buf).update(); - } - destroy() { - this.controls(`The group watch has ended.`); - let endBuf = `
    `; - endBuf += this.getStatsDisplay(); - endBuf += `
    Thanks for watching!
    `; - this.field(endBuf); - this.room = null!; - } -} - -export class TwitchStream extends Rooms.SimpleRoomGame { - started = false; - data: TwitchChannel; - constructor(room: Room, data: TwitchChannel) { - super(room); - this.data = data; - } - static async createStreamWatch(room: Room, channel: string) { - if ([...Rooms.rooms.values()].some( - r => r.roomid.startsWith(`twitch-`) && r.parent?.roomid === room?.roomid - )) { - throw new Chat.ErrorMessage(`Twitch watch already in progress for this room.`); - } - const data = await Twitch.getChannel(channel); - if (!data) throw new Chat.ErrorMessage(`Channel not found`); - const watchRoom = Rooms.createGameRoom( - `twitch-stream-watch-${room.nextGameNumber()}` as RoomID, - Utils.html`[Twitch Watch] ${data.display_name}`, - {isPrivate: 'hidden'} + display() { + return ( + Utils.html`
    ${this.room.title} Groupwatch - ${this.title}

    ` + + `

    ${this.started ? this.getVideoDisplay() : ""}


    ` + + `

    ${this.started ? this.getStatsDisplay() : "Waiting to start the video..."}

    ` + + `

    ${this.hints().join('
    ')}

    ` ); - room.saveSettings(); - watchRoom.setParent(room); - const stream = new TwitchStream(watchRoom, data); - watchRoom.game = stream; - return watchRoom; - } - field(buf: string) { - this.add(`|fieldhtml|${buf}`); - } - controls(buf: string) { - this.add(`|controlshtml|${buf}`); - } - add(data: string) { - return this.room.add(data).update(); - } - onJoin(user: User) { - if (!user.named) return; - this.controls(this.getControlsDisplay()); } - onLeave(user: User) { - if (!user.named) return; - this.controls(this.getControlsDisplay()); - } - start() { - if (this.started) { - throw new Chat.ErrorMessage(`Stream already started`); + update() { + for (const user of Object.values(this.room.users)) { + for (const conn of user.connections) { + if (conn.openPages?.has(`groupwatch-${this.id}`)) { + void Chat.parse(`/j view-groupwatch-${this.id}`, this.room, user, conn); + } + } } - this.controls(this.getControlsDisplay()); - this.field(this.getStreamDisplay()); - this.add(`|html|

    The stream watch has started!

    `); - this.started = true; } - end() { - this.field(''); - this.controls(`

    Stream watch ended

    `); - this.room.parent?.add(`|uhtmlchange|ts-${this.room.roomid}|`); - this.add(`|expire|Stream ended`); - this.room.destroy(); - } - getControlsDisplay() { - let buf = `

    `; - buf += `Watching ${this.data.display_name}
    `; - buf += `${Chat.count(Object.keys(this.room.users).length, 'users')} watching
    `; - buf += `Playing: ${this.data.game}`; - return buf; + async changeVideo(url: string) { + const info = await YouTube.getGroupwatchData(url); + if (!info) throw new Chat.ErrorMessage(`Could not retrieve data for URL ${url}`); + this.url = url; + this.started = Date.now(); + this.info = info; + this.update(); } - getStreamDisplay() { - let buf = `

    `; - buf += ``; - return buf; + destroy() { + GroupWatch.groupwatches.delete(this.id); + this.room.game = null; + this.room = null!; } } @@ -684,7 +660,25 @@ export const commands: Chat.ChatCommands = { this.modlog(`YOUTUBE DECATEGORIZE`, null, target); this.privateModAction(`${user.name} removed the channel ${channel.name} from the category ${category}.`); }, - async groupwatch(target, room, user) { + }, + youtubehelp: [ + `YouTube commands:`, + `/randchannel [optional category]- View data of a random channel from the YouTube database.` + + ` If a category is given, the random channel will be in the given category.`, + `/youtube addchannel [channel] - Add channel data to the YouTube database. Requires: % @ #`, + `/youtube removechannel [channel]- Delete channel data from the YouTube database. Requires: % @ #`, + `/youtube channel [channel] - View the data of a specified channel. Can be either channel ID or channel name.`, + `/youtube video [video] - View data of a specified video. Can be either channel ID or channel name.`, + `/youtube update [channel], [name] - sets a channel's PS username to [name]. Requires: % @ #`, + `/youtube repeat [time] - Sets an interval for [time] minutes, showing a random channel each time. Requires: # ~`, + `/youtube addcategory [name] - Adds the [category] to the channel category list. Requires: @ # ~`, + `/youtube removecategory [name] - Removes the [category] from the channel category list. Requires: @ # ~`, + `/youtube setcategory [category], [channel name] - Sets the category for [channel] to [category]. Requires: @ # ~`, + `/youtube decategorize [channel name] - Removes the category for the [channel], if there is one. Requires: @ # ~`, + `/youtube categores - View all channels sorted by category.`, + ], + groupwatch: { + async create(target, room, user) { room = this.requireRoom(); if (!GROUPWATCH_ROOMS.includes(room.roomid)) { return this.errorReply(`This room is not allowed to use the groupwatch function.`); @@ -692,32 +686,37 @@ export const commands: Chat.ChatCommands = { this.checkCan('mute', null, room); const [url, title] = Utils.splitFirst(target, ',').map(p => p.trim()); if (!url || !title) return this.errorReply(`You must specify a video to watch and a title for the group watch.`); - const gameRoom = await YouTube.createGroupWatch(url, room, title); + const game = await YouTube.createGroupWatch(url, room, title); this.modlog(`YOUTUBE GROUPWATCH`, null, `${url} (${title})`); room.add( - `|uhtml|${gameRoom.roomid}|` + - `` + `|uhtml|${game.id}|` + + `` ); room.send(`|tempnotify|youtube|New groupwatch - ${title}!`); this.update(); - user.joinRoom(gameRoom); }, - endwatch(target, room, user) { + end(target, room, user) { room = this.requireRoom(); this.checkCan('mute', null, room); - this.requireGame(GroupWatch); - room.parent!.modlog({action: `GROUPWATCH END`, loggedBy: user.id}); - room.parent!.add(`|uhtmlchange|${room.roomid}|`).update(); - room.destroy(); + const game = this.requireGame(GroupWatch); + this.modlog(`GROUPWATCH END`); + this.add(`|uhtmlchange|${game.id}|`); + game.destroy(); }, - startwatch: 'beginwatch', - beginwatch(target, room, user) { + start(target, room, user) { room = this.requireRoom(); this.checkCan('mute', null, room); const game = this.requireGame(GroupWatch); game.start(); + game.update(); + }, + async edit(target, room, user) { + room = this.requireRoom(); + this.checkCan('mute', null, room); + const game = this.requireGame(GroupWatch); + await game.changeVideo(target); }, - groupwatches() { + list() { let buf = `Ongoing groupwatches:
    `; for (const curRoom of Rooms.rooms.values()) { if (!curRoom.getGame(GroupWatch)) continue; @@ -727,24 +726,11 @@ export const commands: Chat.ChatCommands = { this.sendReplyBox(buf); }, }, - youtubehelp: [ - `YouTube commands:`, - `/randchannel [optional category]- View data of a random channel from the YouTube database.` + - ` If a category is given, the random channel will be in the given category.`, - `/youtube addchannel [channel] - Add channel data to the YouTube database. Requires: % @ #`, - `/youtube removechannel [channel]- Delete channel data from the YouTube database. Requires: % @ #`, - `/youtube channel [channel] - View the data of a specified channel. Can be either channel ID or channel name.`, - `/youtube video [video] - View data of a specified video. Can be either channel ID or channel name.`, - `/youtube update [channel], [name] - sets a channel's PS username to [name]. Requires: % @ #`, - `/youtube repeat [time] - Sets an interval for [time] minutes, showing a random channel each time. Requires: # &`, - `/youtube addcategory [name] - Adds the [category] to the channel category list. Requires: @ # &`, - `/youtube removecategory [name] - Removes the [category] from the channel category list. Requires: @ # &`, - `/youtube setcategory [category], [channel name] - Sets the category for [channel] to [category]. Requires: @ # &`, - `/youtube decategorize [channel name] - Removes the category for the [channel], if there is one. Requires: @ # &`, - `/youtube categores - View all channels sorted by category.`, - `/youtube groupwatch [link], [title] - Creates a group watch of the [url] with the given [title]. Requires % @ & #`, - `/youtube startwatch - Starts the group watch in the current room, if there is one. Requires % @ & #`, - `/youtube stopwatch - Ends the current group watch, if there is one in the current room. Requires % @ & #`, + groupwatchhelp: [ + `/groupwatch create [link],[title] - create a groupwatch for the given Youtube or Twitch [link] with the [title]. Requires: % @ ~ #`, + `/groupwatch end - End the current room's groupwatch, if one exists. Requires: % @ ~ #`, + `/groupwatch start - Begin playback for the current groupwatch. Requires: % @ ~ #`, + `/groupwatch edit [link] - Change the current groupwatch, if one exists, to be viewing the given [link]. Requires: % @ ~ #`, ], twitch: { async channel(target, room, user) { @@ -756,33 +742,6 @@ export const commands: Chat.ChatCommands = { this.runBroadcast(); return this.sendReplyBox(html); }, - async watch(target, room, user) { - room = this.requireRoom(); - if (!GROUPWATCH_ROOMS.includes(room.roomid)) { - throw new Chat.ErrorMessage(`You cannot use this command in this room.`); - } - this.checkCan('mute', null, room); - if (!toID(target)) { - return this.errorReply(`Invalid channel`); - } - const gameRoom = await TwitchStream.createStreamWatch(room, target); - user.joinRoom(gameRoom); - room.add( - `|uhtml|ts-${gameRoom.roomid}|` + - `` - ).update(); - }, - start(target, room) { - room = this.requireRoom(); - const stream = this.requireGame(TwitchStream); - stream.start(); - }, - stop(target, room, user) { - room = this.requireRoom(); - const stream = this.requireGame(TwitchStream); - this.checkCan('mute', null, room); - stream.end(); - }, }, }; @@ -839,4 +798,12 @@ export const pages: Chat.PageTable = { buffer += `

    `; return buffer; }, + groupwatch(query, user, connection) { + if (!user.named) return Rooms.RETRY_AFTER_LOGIN; + const [roomid, num] = query; + const watch = GroupWatch.groupwatches.get(`${roomid}-${num}`); + if (!watch) return this.errorReply(`Groupwatch ${roomid}-${num} not found.`); + this.title = `[Groupwatch] ${watch.title}`; + return watch.display(); + }, }; diff --git a/server/chat.ts b/server/chat.ts index 774460d52df7..d93ee7fbcc71 100644 --- a/server/chat.ts +++ b/server/chat.ts @@ -30,6 +30,7 @@ import {FriendsDatabase, PM} from './friends'; import {SQL, Repl, FS, Utils} from '../lib'; import * as Artemis from './artemis'; import {Dex} from '../sim'; +import {PrivateMessages} from './private-messages'; import * as pathModule from 'path'; import * as JSX from './chat-jsx'; @@ -74,6 +75,7 @@ interface Handlers { onBattleStart: (user: User, room: GameRoom) => void; onBattleLeave: (user: User, room: GameRoom) => void; onRoomJoin: (room: BasicRoom, user: User, connection: Connection) => void; + onBeforeRoomJoin: (room: BasicRoom, user: User, connection: Connection) => void; onDisconnect: (user: User) => void; onRoomDestroy: (roomid: RoomID) => void; onBattleEnd: (battle: RoomBattle, winner: ID, players: ID[]) => void; @@ -83,6 +85,10 @@ interface Handlers { ) => void; onRename: (user: User, oldID: ID, newID: ID) => void; onTicketCreate: (ticket: import('./chat-plugins/helptickets').TicketState, user: User) => void; + onChallenge: (user: User, targetUser: User, format: string | ID) => void; + onMessageOffline: (context: Chat.CommandContext, message: string, targetUserID: ID) => void; + onBattleJoin: (slot: string, user: User, battle: RoomBattle) => void; + onPunishUser: (type: string, user: User, room?: Room | null) => void; } export interface ChatPlugin { @@ -285,19 +291,19 @@ export abstract class MessageContext { * for the format/mod, or the default dex if none was found), and * `targets` (the rest of the array). */ - splitFormat(target: string | string[], atLeastOneTarget?: boolean) { + splitFormat(target: string | string[], atLeastOneTarget?: boolean, allowRules?: boolean) { const targets = typeof target === 'string' ? target.split(',') : target; if (!targets[0].trim()) targets.pop(); if (targets.length > (atLeastOneTarget ? 1 : 0)) { - const {dex, format, isMatch} = this.extractFormat(targets[0].trim()); + const {dex, format, isMatch} = this.extractFormat(targets[0].trim(), allowRules); if (isMatch) { targets.shift(); return {dex, format, targets}; } } if (targets.length > 1) { - const {dex, format, isMatch} = this.extractFormat(targets[targets.length - 1].trim()); + const {dex, format, isMatch} = this.extractFormat(targets[targets.length - 1].trim(), allowRules); if (isMatch) { targets.pop(); return {dex, format, targets}; @@ -305,21 +311,21 @@ export abstract class MessageContext { } const room = (this as any as CommandContext).room; - const {dex, format} = this.extractFormat(room?.settings.defaultFormat || room?.battle?.format); + const {dex, format} = this.extractFormat(room?.settings.defaultFormat || room?.battle?.format, allowRules); return {dex, format, targets}; } - extractFormat(formatOrMod?: string): {dex: ModdedDex, format: Format | null, isMatch: boolean} { + extractFormat(formatOrMod?: string, allowRules?: boolean): {dex: ModdedDex, format: Format | null, isMatch: boolean} { if (!formatOrMod) { return {dex: Dex.includeData(), format: null, isMatch: false}; } const format = Dex.formats.get(formatOrMod); - if (format.exists) { + if (format.effectType === 'Format' || allowRules && format.effectType === 'Rule') { return {dex: Dex.forFormat(format), format: format, isMatch: true}; } if (toID(formatOrMod) in Dex.dexes) { - return {dex: Dex.mod(toID(formatOrMod)).includeData(), format: null, isMatch: true}; + return {dex: Dex.mod(toID(formatOrMod)), format: null, isMatch: true}; } return this.extractFormat(); @@ -597,7 +603,8 @@ export class CommandContext extends MessageContext { if (this.handler) { if (this.handler.disabled) { throw new Chat.ErrorMessage( - `The command /${this.cmd} is temporarily unavailable due to technical difficulties. Please try again in a few hours.` + `The command /${this.fullCmd.trim()} is temporarily unavailable due to technical difficulties. ` + + `Please try again in a few hours.` ); } message = this.run(this.handler); @@ -687,12 +694,10 @@ export class CommandContext extends MessageContext { return this.errorReply(`${this.pmTarget.name} is blocking room invites.`); } } - Chat.sendPM(message, this.user, this.pmTarget); + Chat.PrivateMessages.send(message, this.user, this.pmTarget); } else if (this.room) { this.room.add(`|c|${this.user.getIdentity(this.room)}|${message}`); - if (this.room.game && this.room.game.onLogMessage) { - this.room.game.onLogMessage(message, this.user); - } + this.room.game?.onLogMessage?.(message, this.user); } else { this.connection.popup(`Your message could not be sent:\n\n${message}\n\nIt needs to be sent to a user or room.`); } @@ -775,13 +780,12 @@ export class CommandContext extends MessageContext { } if (!message) return true; if (room.banwordRegex !== true && room.banwordRegex.test(message)) { - throw new Chat.ErrorMessage(`Your username, status, or message contained a word banned by this room.`); + throw new Chat.ErrorMessage(`Your message contained a word banned by this room.`); } return this.checkBanwords(room.parent as ChatRoom, message); } checkGameFilter() { - if (!this.room?.game || !this.room.game.onChatMessage) return; - return this.room.game.onChatMessage(this.message, this.user); + return this.room?.game?.onChatMessage?.(this.message, this.user); } pmTransform(originalMessage: string, sender?: User, receiver?: User | null | string) { if (!sender) { @@ -873,12 +877,18 @@ export class CommandContext extends MessageContext { /** like privateModAction, but also notify Staff room */ privateGlobalModAction(msg: string) { + if (this.room && !this.room.roomid.endsWith('staff')) { + msg = msg.replace(IPTools.ipRegex, ''); + } this.privateModAction(msg); if (this.room?.roomid !== 'staff') { Rooms.get('staff')?.addByUser(this.user, `${this.room ? `<<${this.room.roomid}>>` : ``} ${msg}`).update(); } } addGlobalModAction(msg: string) { + if (this.room && !this.room.roomid.endsWith('staff')) { + msg = msg.replace(IPTools.ipRegex, ''); + } this.addModAction(msg); if (this.room?.roomid !== 'staff') { Rooms.get('staff')?.addByUser(this.user, `${this.room ? `<<${this.room.roomid}>>` : ``} ${msg}`).update(); @@ -996,7 +1006,7 @@ export class CommandContext extends MessageContext { checkCan(permission: RoomPermission, target: User | ID | null, room: Room): undefined; checkCan(permission: GlobalPermission, target?: User | ID | null): undefined; checkCan(permission: string, target: User | ID | null = null, room: Room | null = null) { - if (!Users.Auth.hasPermission(this.user, permission, target, room, this.fullCmd)) { + if (!Users.Auth.hasPermission(this.user, permission, target, room, this.fullCmd, this.cmdToken)) { throw new Chat.ErrorMessage(`${this.cmdToken}${this.fullCmd} - Access denied.`); } } @@ -1004,7 +1014,7 @@ export class CommandContext extends MessageContext { privatelyCheckCan(permission: GlobalPermission, target?: User | ID | null): boolean; privatelyCheckCan(permission: string, target: User | ID | null = null, room: Room | null = null) { this.handler!.isPrivate = true; - if (Users.Auth.hasPermission(this.user, permission, target, room, this.fullCmd)) { + if (Users.Auth.hasPermission(this.user, permission, target, room, this.fullCmd, this.cmdToken)) { return true; } this.commandDoesNotExist(); @@ -1030,8 +1040,10 @@ export class CommandContext extends MessageContext { throw new Chat.ErrorMessage(`To see it for yourself, use: /${this.message.slice(1)}`); } - if (this.room && !this.user.can('show', null, this.room)) { - this.errorReply(`You need to be voiced to broadcast this command's information.`); + if (this.room && !this.user.can('show', null, this.room, this.cmd, this.cmdToken)) { + const perm = this.room.settings.permissions?.[`!${this.cmd}`]; + const atLeast = perm ? `at least rank ${perm}` : 'voiced'; + this.errorReply(`You need to be ${atLeast} to broadcast this command's information.`); throw new Chat.ErrorMessage(`To see it for yourself, use: /${this.message.slice(1)}`); } @@ -1136,9 +1148,13 @@ export class CommandContext extends MessageContext { } if (room.settings.modchat && !room.auth.atLeast(user, room.settings.modchat)) { if (room.settings.modchat === 'autoconfirmed') { - throw new Chat.ErrorMessage( - this.tr`Because moderated chat is set, your account must be at least one week old and you must have won at least one ladder game to speak in this room.` + this.errorReply( + this.tr`Moderated chat is set. To speak in this room, your account must be autoconfirmed, which means being registered for at least one week and winning at least one rated game (any game started through the 'Battle!' button).` ); + if (!user.registered) { + this.sendReply(this.tr`|html|You may register in the menu.`); + } + throw new Chat.Interruption(); } if (room.settings.modchat === 'trusted') { throw new Chat.ErrorMessage( @@ -1230,8 +1246,6 @@ export class CommandContext extends MessageContext { this.checkSlowchat(room, user); - if (!user.can('bypassall')) this.checkBanwords(room, user.name); - if (user.userMessage && !user.can('bypassall')) this.checkBanwords(room, user.userMessage); if (room && !user.can('mute', null, room)) this.checkBanwords(room, message); const gameFilter = this.checkGameFilter(); @@ -1528,6 +1542,7 @@ export const Chat = new class { readonly MAX_TIMEOUT_DURATION = 2147483647; readonly Friends = new FriendsDatabase(); readonly PM = PM; + readonly PrivateMessages = PrivateMessages; readonly multiLinePattern = new PatternTester(); @@ -1789,7 +1804,7 @@ export const Chat = new class { */ database = SQL(module, { file: ('Config' in global && Config.nofswriting) ? ':memory:' : PLUGIN_DATABASE_PATH, - processes: global.Config?.chatdbprocesses || 1, + processes: global.Config?.chatdbprocesses, }); databaseReadyPromise: Promise | null = null; @@ -1797,7 +1812,7 @@ export const Chat = new class { // PLEASE NEVER ACTUALLY ADD MIGRATIONS // things break in weird ways that are hard to reason about, probably because of subprocesses // it WILL crash and it WILL make your life and that of your users extremely unpleasant until it is fixed - if (!PM.isParentProcess) return; // We don't need a database in a subprocess that requires Chat. + if (process.send) return; // We don't need a database in a subprocess that requires Chat. if (!Config.usesqlite) return; // check if we have the db_info table, which will always be present unless the schema needs to be initialized const {hasDBInfo} = await this.database.get( @@ -1827,7 +1842,10 @@ export const Chat = new class { await this.database.runFile(pathModule.resolve(migrationsFolder, file)); } - Chat.destroyHandlers.push(() => void Chat.database?.destroy()); + Chat.destroyHandlers.push( + () => void Chat.database?.destroy(), + () => Chat.PrivateMessages.destroy(), + ); } readonly MessageContext = MessageContext; @@ -1905,14 +1923,6 @@ export const Chat = new class { Monitor.slow(logMessage); } - sendPM(message: string, user: User, pmTarget: User, onlyRecipient: User | null = null) { - const buf = `|pm|${user.getIdentity()}|${pmTarget.getIdentity()}|${message}`; - if (onlyRecipient) return onlyRecipient.send(buf); - user.send(buf); - if (pmTarget !== user) pmTarget.send(buf); - pmTarget.lastPM = user.id; - user.lastPM = pmTarget.id; - } packageData: AnyObject = {}; @@ -2568,7 +2578,7 @@ export const Chat = new class { * Notifies a targetUser that a user was blocked from reaching them due to a setting they have enabled. */ maybeNotifyBlocked(blocked: 'pm' | 'challenge' | 'invite', targetUser: User, user: User) { - const prefix = `|pm|&|${targetUser.getIdentity()}|/nonotify `; + const prefix = `|pm|~|${targetUser.getIdentity()}|/nonotify `; const options = 'or change it in the menu in the upper right.'; if (blocked === 'pm') { if (!targetUser.notified.blockPMs) { @@ -2587,6 +2597,7 @@ export const Chat = new class { } } } + readonly formatText = formatText; readonly linkRegex = linkRegex; readonly stripFormatting = stripFormatting; @@ -2619,6 +2630,7 @@ export const Chat = new class { // they're just there so forks have time to slowly transition (Chat as any).escapeHTML = Utils.escapeHTML; (Chat as any).splitFirst = Utils.splitFirst; +(Chat as any).sendPM = Chat.PrivateMessages.send.bind(Chat.PrivateMessages); (CommandContext.prototype as any).can = CommandContext.prototype.checkCan; (CommandContext.prototype as any).canTalk = CommandContext.prototype.checkChat; (CommandContext.prototype as any).canBroadcast = CommandContext.prototype.checkBroadcast; diff --git a/server/friends.ts b/server/friends.ts index b2f7444f6b5e..57fd255833a9 100644 --- a/server/friends.ts +++ b/server/friends.ts @@ -50,23 +50,18 @@ export class FailureMessage extends Error { } } -export function sendPM(message: string, to: string, from = '&') { - const senderID = toID(to); - const receiverID = toID(from); +export function sendPM(message: string, to: string, from = '~') { + const senderID = toID(from); + const receiverID = toID(to); const sendingUser = Users.get(senderID); const receivingUser = Users.get(receiverID); const fromIdentity = sendingUser ? sendingUser.getIdentity() : ` ${senderID}`; const toIdentity = receivingUser ? receivingUser.getIdentity() : ` ${receiverID}`; - if (from === '&') { - return sendingUser?.send(`|pm|&|${toIdentity}|${message}`); - } - if (sendingUser) { - sendingUser.send(`|pm|${fromIdentity}|${toIdentity}|${message}`); - } - if (receivingUser) { - receivingUser.send(`|pm|${fromIdentity}|${toIdentity}|${message}`); + if (from === '~') { + return receivingUser?.send(`|pm|~|${toIdentity}|${message}`); } + receivingUser?.send(`|pm|${fromIdentity}|${toIdentity}|${message}`); } function canPM(sender: User, receiver: User | null) { @@ -98,7 +93,9 @@ export class FriendsDatabase { } else { let val; try { - val = database.prepare(`SELECT val FROM database_settings WHERE name = 'version'`).get().val; + val = (database + .prepare(`SELECT val FROM database_settings WHERE name = 'version'`) + .get() as AnyObject).val; } catch {} const actualVersion = FS(`databases/migrations/friends`).readdirIfExistsSync().length; if (val === undefined) { @@ -128,7 +125,7 @@ export class FriendsDatabase { } statements.expire.run(); - return database; + return {database, statements}; } async getFriends(userid: ID): Promise { return (await this.all('get', [userid, MAX_FRIENDS])) || []; @@ -147,11 +144,7 @@ export class FriendsDatabase { sent.add(request.receiver); } const receivedResults = await this.all('getReceived', [user.id]) || []; - if (!Array.isArray(receivedResults)) { - Monitor.crashlog(new Error("Malformed results received"), 'A friends process', { - user: user.id, - result: JSON.stringify(receivedResults), - }); + if (!receivedResults) { return {received, sent}; } for (const request of receivedResults) { @@ -159,22 +152,22 @@ export class FriendsDatabase { } return {sent, received}; } - all(statement: string, data: any[] | AnyObject) { + all(statement: string, data: any[] | AnyObject): Promise { return this.query({type: 'all', data, statement}); } - transaction(statement: string, data: any[] | AnyObject) { + transaction(statement: string, data: any[] | AnyObject): Promise<{result: any} | null> { return this.query({data, statement, type: 'transaction'}); } - run(statement: string, data: any[] | AnyObject) { + run(statement: string, data: any[] | AnyObject): Promise<{changes: number, lastInsertRowid: number}> { return this.query({statement, data, type: 'run'}); } - get(statement: string, data: any[] | AnyObject) { + get(statement: string, data: any[] | AnyObject): Promise { return this.query({statement, data, type: 'get'}); } private async query(input: DatabaseRequest) { const process = PM.acquire(); if (!process || !Config.usesqlite) { - return {result: null}; + return null; } const result = await process.query(input); if (result.error) { @@ -206,9 +199,9 @@ export class FriendsDatabase { const result = await this.transaction('send', [user.id, receiverID]); if (receiver) { - sendPM(`/raw ${user.name} sent you a friend request!`, receiver.id); - sendPM(buf, receiver.id); - sendPM(disclaimer, receiver.id); + sendPM(`/raw ${user.name} sent you a friend request!`, receiver.id, user.id); + sendPM(buf, receiver.id, user.id); + sendPM(disclaimer, receiver.id, user.id); } sendPM( `/nonotify You sent a friend request to ${receiver?.connected ? receiver.name : receiverID}!`, @@ -259,6 +252,11 @@ export class FriendsDatabase { // name, send_login_data, last_login, public_list return this.run('toggleList', [userid, num, num]); } + async findFriendship(user1: string, user2: string): Promise { + user1 = toID(user1); + user2 = toID(user2); + return !!(await this.get('findFriendship', {user1, user2}))?.length; + } } const statements: {[k: string]: Database.Statement} = {}; @@ -318,9 +316,11 @@ const TRANSACTIONS: {[k: string]: (input: any[]) => DatabaseResult} = { send: requests => { for (const request of requests) { const [senderID, receiverID] = request; - const hasSentRequest = statements.findRequest.get({user1: senderID, user2: receiverID})['num']; - const friends = statements.countFriends.get(senderID, senderID)['num']; - const totalRequests = statements.countRequests.get(senderID, senderID)['num']; + const hasSentRequest = ( + statements.findRequest.get({user1: senderID, user2: receiverID}) as AnyObject + )['num']; + const friends = (statements.countFriends.get(senderID, senderID) as AnyObject)['num']; + const totalRequests = (statements.countRequests.get(senderID, senderID) as AnyObject)['num']; if (friends >= MAX_FRIENDS) { throw new FailureMessage(`You are at the maximum number of friends.`); } @@ -371,6 +371,24 @@ const TRANSACTIONS: {[k: string]: (input: any[]) => DatabaseResult} = { }, }; +/** + * API STUFF - For use in other database child processes that may want to interface with the friends list. + * todo: should these be under a namespace? + */ + +/** Find if a friendship exists between two users.*/ +export function findFriendship(users: [string, string]) { + setup(); + return !!statements.findFriendship.get({user1: users[0], user2: users[1]}); +} + +// internal for child process api - ensures statements are only set up +const setup = () => { + if (!process.send) throw new Error("You should not be using this function in the main process"); + if (!Object.keys(statements).length) FriendsDatabase.setupDatabase(); +}; + +/** Process manager for main process use. */ export const PM = new ProcessManager.QueryProcessManager(module, query => { const {type, statement, data} = query; const start = Date.now(); @@ -415,22 +433,25 @@ if (require.main === module) { if (Config.usesqlite) { FriendsDatabase.setupDatabase(); } - global.Monitor = { - crashlog(error: Error, source = 'A friends database process', details: AnyObject | null = null) { - const repr = JSON.stringify([error.name, error.message, source, details]); - process.send!(`THROW\n@!!@${repr}\n${error.stack}`); - }, - slow(message: string) { - process.send!(`CALLBACK\nSLOW\n${message}`); - }, - }; - process.on('uncaughtException', err => { - if (Config.crashguard) { - Monitor.crashlog(err, 'A friends child process'); - } - }); - // eslint-disable-next-line no-eval - Repl.start(`friends-${process.pid}`, cmd => eval(cmd)); + // since we require this in child processes + if (process.mainModule === module) { + global.Monitor = { + crashlog(error: Error, source = 'A friends database process', details: AnyObject | null = null) { + const repr = JSON.stringify([error.name, error.message, source, details]); + process.send!(`THROW\n@!!@${repr}\n${error.stack}`); + }, + slow(message: string) { + process.send!(`CALLBACK\nSLOW\n${message}`); + }, + }; + process.on('uncaughtException', err => { + if (Config.crashguard) { + Monitor.crashlog(err, 'A friends child process'); + } + }); + // eslint-disable-next-line no-eval + Repl.start(`friends-${process.pid}`, cmd => eval(cmd)); + } } else if (!process.send) { PM.spawn(Config.friendsprocesses || 1); } diff --git a/server/global-types.ts b/server/global-types.ts index 70c041ffdb10..d03b45680294 100644 --- a/server/global-types.ts +++ b/server/global-types.ts @@ -1,7 +1,5 @@ /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-shadow */ -type Config = typeof import('../config/config-example') & AnyObject; - type GroupSymbol = import('./user-groups').GroupSymbol; type AuthLevel = import('./user-groups').AuthLevel; @@ -14,6 +12,7 @@ namespace Chat { export type PageContext = import('./chat').PageContext; export type SettingsHandler = import('./chat').SettingsHandler; export type PageTable = import('./chat').PageTable; + export type PageHandler = import('./chat').PageHandler; export type ChatCommands = import('./chat').ChatCommands; export type ChatHandler = import('./chat').ChatHandler; export type ChatFilter = import('./chat').ChatFilter; @@ -37,9 +36,8 @@ type BasicRoom = Rooms.BasicRoom; type RoomGame = Rooms.RoomGame; type MinorActivity = Rooms.MinorActivity; type RoomBattle = Rooms.RoomBattle; -type Roomlog = Rooms.Roomlog; type Room = Rooms.Room; -type RoomID = "" | "lobby" | "staff" | "upperstaff" | "development" | string & {__isRoomID: true}; +type RoomID = "" | "lobby" | "staff" | "upperstaff" | "development" | Lowercase & {__isRoomID: true}; namespace Rooms { export type GlobalRoomState = import('./rooms').GlobalRoomState; export type ChatRoom = import('./rooms').ChatRoom; @@ -51,21 +49,11 @@ namespace Rooms { export type MinorActivity = import('./room-minor-activity').MinorActivity; export type MinorActivityData = import('./room-minor-activity').MinorActivityData; export type RoomBattle = import('./room-battle').RoomBattle; + export type BestOfGame = import('./room-battle-bestof').BestOfGame; export type Roomlog = import('./roomlogs').Roomlog; export type Room = import('./rooms').Room; } -// Streams -// (I don't understand why eslint only has a problem with this - it's used in room-battle) -namespace Streams { - export type WriteStream = import('../lib/streams').WriteStream; - export type ReadStream = import('../lib/streams').ReadStream; - export type ReadWriteStream = import('../lib/streams').ReadWriteStream; - export type ObjectWriteStream = import('../lib/streams').ObjectWriteStream; - export type ObjectReadStream = import('../lib/streams').ObjectReadStream; - export type ObjectReadWriteStream = import('../lib/streams').ObjectReadWriteStream; -} - namespace JSX { export type IntrinsicElements = import('./chat-jsx').PSElements; } diff --git a/server/index.ts b/server/index.ts index cbc02c6bdcd9..a0f29c9ef489 100644 --- a/server/index.ts +++ b/server/index.ts @@ -43,15 +43,15 @@ * * @license MIT */ - +require('source-map-support').install(); // NOTE: This file intentionally doesn't use too many modern JavaScript // features, so that it doesn't crash old versions of Node.js, so we -// can successfully print the "We require Node.js 8+" message. +// can successfully print the "We require Node.js 16+" message. // Check for version const nodeVersion = parseInt(process.versions.node); -if (isNaN(nodeVersion) || nodeVersion < 14) { - throw new Error("We require Node.js version 14 or later; you're using " + process.version); +if (isNaN(nodeVersion) || nodeVersion < 16) { + throw new Error("We require Node.js version 16 or later; you're using " + process.version); } import {FS, Repl} from '../lib'; @@ -71,6 +71,7 @@ function setupGlobals() { void Monitor.version().then((hash: any) => { global.__version.tree = hash; }); + Repl.cleanup(); if (Config.watchconfig) { FS('config/config.js').onModify(() => { diff --git a/server/ladders-local.ts b/server/ladders-local.ts index eba485c322f4..6f96c5a55a29 100644 --- a/server/ladders-local.ts +++ b/server/ladders-local.ts @@ -64,7 +64,7 @@ export class LadderStore { try { const data = await FS('config/ladders/' + this.formatid + '.tsv').readIfExists(); const ladder: LadderRow[] = []; - for (const dataLine of data.split('\n')) { + for (const dataLine of data.split('\n').slice(1)) { const line = dataLine.trim(); if (!line) continue; const row = line.split('\t'); diff --git a/server/ladders-remote.ts b/server/ladders-remote.ts index 6b1bc907fe56..8b618ab592ad 100644 --- a/server/ladders-remote.ts +++ b/server/ladders-remote.ts @@ -147,7 +147,6 @@ export class LadderStore { } /** * Calculates Elo based on a match result - * */ calculateElo(oldElo: number, score: number, foeElo: number): number { // see lib/ntbb-ladder.lib.php in the pokemon-showdown-client repo for the login server implementation diff --git a/server/ladders.ts b/server/ladders.ts index 2bd259f512b2..2c7cb33207d5 100644 --- a/server/ladders.ts +++ b/server/ladders.ts @@ -22,7 +22,7 @@ import {BattleReady, BattleChallenge, GameChallenge, BattleInvite, challenges} f * Keys are formatids */ const searches = new Map, }>(); @@ -112,7 +112,7 @@ class Ladder extends LadderStore { if (isRated && !Ladders.disabled) { const uid = user.id; [valResult, rating] = await Promise.all([ - TeamValidatorAsync.get(this.formatid).validateTeam(team, {removeNicknames}), + TeamValidatorAsync.get(this.formatid).validateTeam(team, {removeNicknames, user: uid}), this.getRating(uid), ]); if (uid !== user.id) { @@ -126,7 +126,7 @@ class Ladder extends LadderStore { rating = 1; } const validator = TeamValidatorAsync.get(this.formatid); - valResult = await validator.validateTeam(team, {removeNicknames}); + valResult = await validator.validateTeam(team, {removeNicknames, user: user.id}); } if (!valResult.startsWith('1')) { @@ -216,6 +216,7 @@ class Ladder extends LadderStore { Ladders.challenges.add(new BattleChallenge(user.id, targetUser.id, ready)); Ladders.challenges.send(user.id, targetUser.id, `/log ${user.name} wants to battle!`); user.lastChallenge = Date.now(); + Chat.runHandlers('onChallenge', user, targetUser, ready.formatid); return true; } static async acceptChallenge(connection: Connection, chall: BattleChallenge) { @@ -360,8 +361,7 @@ class Ladder extends LadderStore { let searchRange = 100; const times = matches.map(([search]) => search.time); const elapsed = Date.now() - Math.min(...times); - if (formatid === 'gen8ou' || formatid === 'gen8oucurrent' || - formatid === 'gen8oususpecttest' || formatid === 'gen8randombattle') { + if (formatid === `gen${Dex.gen}ou` || formatid === `gen${Dex.gen}randombattle`) { searchRange = 50; } @@ -384,7 +384,7 @@ class Ladder extends LadderStore { let formatTable = Ladders.searches.get(formatid); if (!formatTable) { formatTable = { - numPlayers: ['multi', 'freeforall'].includes(Dex.formats.get(formatid).gameType) ? 4 : 2, + playerCount: Dex.formats.get(formatid).playerCount, searches: new Map(), }; Ladders.searches.set(formatid, formatTable); @@ -403,7 +403,7 @@ class Ladder extends LadderStore { if (matched) { matches.push(search); } - if (matches.length >= formatTable.numPlayers) { + if (matches.length >= formatTable.playerCount) { for (const matchedSearch of matches) formatTable.searches.delete(matchedSearch.userid); Ladder.match(matches); return; @@ -422,7 +422,7 @@ class Ladder extends LadderStore { static periodicMatch() { // In order from longest waiting to shortest waiting for (const [formatid, formatTable] of Ladders.searches) { - if (formatTable.numPlayers > 2) continue; // TODO: implement + if (formatTable.playerCount > 2) continue; // TODO: implement const matchmaker = Ladders(formatid); let longest: [BattleReady, User] | null = null; for (const search of formatTable.searches.values()) { @@ -475,14 +475,10 @@ class Ladder extends LadderStore { return undefined; } const format = Dex.formats.get(formatid); - const delayedStart = (['multi', 'freeforall'].includes(format.gameType) && players.length === 2) ? - 'multi' : false; + const delayedStart = format.playerCount > players.length ? 'multi' : false; return Rooms.createBattle({ format: formatid, - p1: players[0], - p2: players[1], - p3: players[2], - p4: players[3], + players, rated: minRating, challengeType: readies[0].challengeType, delayedStart, diff --git a/server/modlog/index.ts b/server/modlog/index.ts index acf94bb79560..6f43b0562bda 100644 --- a/server/modlog/index.ts +++ b/server/modlog/index.ts @@ -32,7 +32,7 @@ const PUNISHMENTS = [ 'UNRANGEBAN', 'TRUSTUSER', 'UNTRUSTUSER', 'BLACKLIST', 'BATTLEBAN', 'UNBATTLEBAN', 'NAMEBLACKLIST', 'KICKBATTLE', 'UNTICKETBAN', 'HIDETEXT', 'HIDEALTSTEXT', 'REDIRECT', 'NOTE', 'MAFIAHOSTBAN', 'MAFIAUNHOSTBAN', 'MAFIAGAMEBAN', 'MAFIAUNGAMEBAN', 'GIVEAWAYBAN', 'GIVEAWAYUNBAN', - 'TOUR BAN', 'TOUR UNBAN', 'UNNAMELOCK', + 'TOUR BAN', 'TOUR UNBAN', 'UNNAMELOCK', 'PERMABLACKLIST', ]; export type ModlogID = RoomID | 'global' | 'all'; diff --git a/server/monitor.ts b/server/monitor.ts index 242dff5affe3..14c69c4e9cbe 100644 --- a/server/monitor.ts +++ b/server/monitor.ts @@ -9,6 +9,7 @@ import {exec, ExecException, ExecOptions} from 'child_process'; import {crashlogger, FS} from "../lib"; +import * as pathModule from 'path'; const MONITOR_CLEAN_TIMEOUT = 2 * 60 * 60 * 1000; @@ -93,6 +94,13 @@ export const Monitor = new class { } } + logPath(path: string) { + if (Config.logsdir) { + return FS(pathModule.join(Config.logsdir, path)); + } + return FS(pathModule.join('logs', path)); + } + log(text: string) { this.notice(text); const staffRoom = Rooms.get('staff'); @@ -137,7 +145,7 @@ export const Monitor = new class { slow(text: string) { const logRoom = Rooms.get('slowlog'); if (logRoom) { - logRoom.add(`|c|&|/log ${text}`).update(); + logRoom.add(`|c|~|/log ${text}`).update(); } else { this.warn(text); } @@ -278,7 +286,7 @@ export const Monitor = new class { for (const i in this.networkUse) { buf += `${this.networkUse[i]}\t${this.networkCount[i]}\t${i}\n`; } - void FS('logs/networkuse.tsv').write(buf); + void Monitor.logPath('networkuse.tsv').write(buf); } clearNetworkUse() { @@ -333,8 +341,8 @@ export const Monitor = new class { async version() { let hash; try { - await FS('.git/index').copyFile('logs/.gitindex'); - const index = FS('logs/.gitindex'); + await FS('.git/index').copyFile(Monitor.logPath('.gitindex').path); + const index = Monitor.logPath('.gitindex'); const options = { cwd: __dirname, env: {GIT_INDEX_FILE: index.path}, diff --git a/server/private-messages/database.ts b/server/private-messages/database.ts new file mode 100644 index 000000000000..4473f7e981aa --- /dev/null +++ b/server/private-messages/database.ts @@ -0,0 +1,91 @@ +/** + * Storage handling for offline PMs. + * By Mia. + * @author mia-pi-git + */ +import {SQL, FS} from '../../lib'; +import {MAX_PENDING} from '.'; + +export const statements = { + send: 'INSERT INTO offline_pms (sender, receiver, message, time) VALUES (?, ?, ?, ?)', + clear: 'DELETE FROM offline_pms WHERE receiver = ?', + fetch: 'SELECT * FROM offline_pms WHERE receiver = ?', + fetchNew: 'SELECT * FROM offline_pms WHERE receiver = ? AND seen IS NULL', + clearDated: 'DELETE FROM offline_pms WHERE ? - time >= ?', + checkSentCount: 'SELECT count(*) as count FROM offline_pms WHERE sender = ? AND receiver = ?', + setSeen: 'UPDATE offline_pms SET seen = ? WHERE receiver = ? AND seen IS NULL', + clearSeen: 'DELETE FROM offline_pms WHERE ? - seen >= ?', + getSettings: 'SELECT * FROM pm_settings WHERE userid = ?', + setBlock: 'REPLACE INTO pm_settings (userid, view_only) VALUES (?, ?)', + deleteSettings: 'DELETE FROM pm_settings WHERE userid = ?', +} as const; + +type Statement = keyof typeof statements; + +class StatementMap { + env: SQL.TransactionEnvironment; + constructor(env: SQL.TransactionEnvironment) { + this.env = env; + } + run(name: Statement, args: any[] | AnyObject) { + return this.getStatement(name).run(args); + } + all(name: Statement, args: any[] | AnyObject) { + return this.getStatement(name).all(args); + } + get(name: Statement, args: any[] | AnyObject) { + return this.getStatement(name).get(args); + } + getStatement(name: Statement) { + const source = statements[name]; + return this.env.statements.get(source)!; + } +} + +export const transactions: { + [k: string]: (args: any[], env: SQL.TransactionEnvironment) => any, +} = { + send: (args, env) => { + const statementList = new StatementMap(env); + const [sender, receiver, message] = args; + const count = statementList.get('checkSentCount', [sender, receiver])?.count; + if (count && count > MAX_PENDING) { + return {error: `You have already sent the maximum ${MAX_PENDING} offline PMs to that user.`}; + } + return statementList.run('send', [sender, receiver, message, Date.now()]); + }, + listNew: (args, env) => { + const list = new StatementMap(env); + const [receiver] = args; + const pms = list.all('fetchNew', [receiver]); + list.run('setSeen', [Date.now(), receiver]); + return pms; + }, +}; + +export function onDatabaseStart(database: import('better-sqlite3').Database) { + let version; + try { + version = database.prepare('SELECT * FROM db_info').get().version; + } catch { + const schemaContent = FS('databases/schemas/pms.sql').readSync(); + database.exec(schemaContent); + } + const migrations = FS('databases/migrations/pms').readdirIfExistsSync(); + if (version !== migrations.length) { + for (const migration of migrations) { + const num = /(\d+)\.sql$/.exec(migration)?.[1]; + if (!num || version >= num) continue; + database.exec('BEGIN TRANSACTION'); + try { + database.exec(FS(`databases/migrations/pms/${migration}`).readSync()); + } catch (e: any) { + console.log(`Error in PM migration ${migration} - ${e.message}`); + console.log(e.stack); + database.exec('ROLLBACK'); + continue; + } + database.exec('COMMIT'); + } + } +} diff --git a/server/private-messages/index.ts b/server/private-messages/index.ts new file mode 100644 index 000000000000..1c48b49a3492 --- /dev/null +++ b/server/private-messages/index.ts @@ -0,0 +1,232 @@ +/** + * Private message handling, particularly for offline messages. + * By Mia. + * @author mia-pi-git + */ +import {SQL, Utils} from '../../lib'; +import {Config} from '../config-loader'; +import {Auth} from '../user-groups'; +import {statements} from './database'; +/** The time until a PM sent offline expires. Presently, 60 days. */ +export const EXPIRY_TIME = 60 * 24 * 60 * 60 * 1000; +/** The time until a PM that has been seen by the user expires. Presently, one week.*/ +export const SEEN_EXPIRY_TIME = 7 * 24 * 60 * 60 * 1000; +/** The max PMs that one user can have pending to a specific user at one time */ +export const MAX_PENDING = 20; + +// this would be in database.ts, but for some weird reason, if the extension and the pm are the same +// it doesn't work. all the keys in the require() result are there, but they're also set to undefined. +// no idea why. +export const PM = SQL(module, { + file: 'databases/offline-pms.db', + extension: 'server/private-messages/database.js', +}); + +export interface ReceivedPM { + time: number; + sender: string; + receiver: string; + seen: number | null; + message: string; +} + +export const PrivateMessages = new class { + database = PM; + clearInterval = this.nextClear(); + offlineIsEnabled = Config.usesqlitepms && Config.usesqlite; + async sendOffline(to: string, from: User | string, message: string, context?: Chat.CommandContext) { + await this.checkCanSend(to, from); + const result = await PM.transaction('send', [toID(from), toID(to), message]); + if (result.error) throw new Chat.ErrorMessage(result.error); + if (typeof from === 'object') { + from.send(`|pm|${this.getIdentity(from)}|${this.getIdentity(to)}|${message} __[sent offline]__`); + } + const changed = !!result.changes; + if (changed && context) { + Chat.runHandlers('onMessageOffline', context, message, toID(to)); + } + return changed; + } + getSettings(userid: string) { + return PM.get(statements.getSettings, [toID(userid)]); + } + deleteSettings(userid: string) { + return PM.run(statements.deleteSettings, [toID(userid)]); + } + async checkCanSend(to: string, from: User | string) { + from = toID(from); + to = toID(to); + const setting = await this.getSettings(to); + const requirement = setting?.view_only || Config.usesqlitepms || "friends"; + switch (requirement) { + case 'friends': + if (!(await Chat.Friends.findFriendship(to, from))) { + if (Config.usesqlitepms === 'friends') { + throw new Chat.ErrorMessage(`At this time, you may only send offline PMs to friends. ${to} is not friends with you.`); + } + throw new Chat.ErrorMessage(`${to} is only accepting offline PMs from friends at this time.`); + } + break; + case 'trusted': + if (!Users.globalAuth.has(toID(from))) { + throw new Chat.ErrorMessage(`${to} is currently blocking offline PMs from non-trusted users.`); + } + break; + case 'none': + // drivers+ can override + if (!Auth.atLeast(Users.globalAuth.get(from as ID), '%')) { + throw new Chat.ErrorMessage(`${to} has indicated that they do not wish to receive offline PMs.`); + } + break; + default: + if (!Auth.atLeast(Users.globalAuth.get(from as ID), requirement)) { + if (setting?.view_only) { + throw new Chat.ErrorMessage(`That user is not allowing offline PMs from your rank at this time.`); + } + throw new Chat.ErrorMessage('You do not meet the rank requirement to send offline PMs at this time.'); + } + break; + } + } + setViewOnly(user: User | string, val: string | null) { + const id = toID(user); + if (!val) { // if null, no need to save + return PM.run(statements.deleteSettings, [id]); + } + return PM.run(statements.setBlock, [id, val]); + } + checkCanUse(user: User, options = {forceBool: false, isLogin: false}) { + if (!this.offlineIsEnabled) { + if (options.forceBool) return false; + throw new Chat.ErrorMessage(`Offline PMs are currently disabled.`); + } + if (!(options.isLogin ? user.registered : user.autoconfirmed)) { + if (options.forceBool) return false; + throw new Chat.ErrorMessage("You must be autoconfirmed to use offline messaging."); + } + if (!Users.globalAuth.atLeast(user, Config.usesqlitepms)) { + if (options.forceBool) return false; + throw new Chat.ErrorMessage("You do not have the needed rank to send offline PMs."); + } + return true; + } + checkCanPM(user: User, pmTarget: ID) { + this.checkCanUse(user); + if (Config.usesqlitepms === 'friends' && !user.friends?.has(pmTarget)) { + throw new Chat.ErrorMessage( + `At this time, you may only send offline messages to friends. You do not have ${pmTarget} friended.` + ); + } + } + async sendReceived(user: User) { + const userid = toID(user); + // we only want to send the unseen pms to them when they login - they can replay the rest at will otherwise + const messages = await this.fetchUnseen(userid); + for (const {message, time, sender} of messages) { + user.send( + `|pm|${this.getIdentity(sender)}|${this.getIdentity(user)}|/html ` + + `${Utils.escapeHTML(message)} [sent offline, ]` + ); + } + } + private getIdentity(user: User | string) { + user = Users.getExact(user) || user; + if (typeof user === 'object') { + return user.getIdentity(); + } + return `${Users.globalAuth.get(toID(user))}${user}`; + } + nextClear(): NodeJS.Timer { + if (!PM.isParentProcess) return null!; + const time = Date.now(); + // even though we expire once a week atm, we check once a day + const nextMidnight = new Date(); + nextMidnight.setHours(24, 0, 0, 0); + if (this.clearInterval) clearTimeout(this.clearInterval); + this.clearInterval = setTimeout(() => { + void this.clearOffline(); + void this.clearSeen(); + this.nextClear(); + }, nextMidnight.getTime() - time); + return this.clearInterval; + } + clearSeen() { + return PM.run(statements.clearSeen, [Date.now(), SEEN_EXPIRY_TIME]); + } + send(message: string, user: User, pmTarget: User, onlyRecipient: User | null = null) { + const buf = `|pm|${user.getIdentity()}|${pmTarget.getIdentity()}|${message}`; + if (onlyRecipient) return onlyRecipient.send(buf); + user.send(buf); + if (pmTarget !== user) pmTarget.send(buf); + pmTarget.lastPM = user.id; + user.lastPM = pmTarget.id; + } + async fetchUnseen(user: User | string): Promise { + const userid = toID(user); + return (await PM.transaction('listNew', [userid])) || []; + } + async fetchAll(user: User | string): Promise { + return (await PM.all(statements.fetch, [toID(user)])) || []; + } + async renderReceived(user: User) { + const all = await this.fetchAll(user); + let buf = `
    `; + buf += `

    PMs received offline in the last ${Chat.toDurationString(SEEN_EXPIRY_TIME)}

    `; + const sortedPMs: {[userid: string]: ReceivedPM[]} = {}; + for (const curPM of all) { + if (!sortedPMs[curPM.sender]) sortedPMs[curPM.sender] = []; + sortedPMs[curPM.sender].push(curPM); + } + for (const k in sortedPMs) { + Utils.sortBy(sortedPMs[k], pm => -pm.time); + } + buf += ``; + return buf; + } + clearOffline() { + return PM.run(statements.clearDated, [Date.now(), EXPIRY_TIME]); + } + destroy() { + void PM.destroy(); + } +}; + +if (Config.usesqlite) { + if (!process.send) { + PM.spawn(Config.pmprocesses || 1); + // clear super old pms on startup + void PM.run(statements.clearDated, [Date.now(), EXPIRY_TIME]); + } else if (process.send && process.mainModule === module) { + global.Monitor = { + crashlog(error: Error, source = 'A private message child process', details: AnyObject | null = null) { + const repr = JSON.stringify([error.name, error.message, source, details]); + process.send!(`THROW\n@!!@${repr}\n${error.stack}`); + }, + }; + process.on('uncaughtException', err => { + Monitor.crashlog(err, 'A private message database process'); + }); + process.on('unhandledRejection', err => { + Monitor.crashlog(err as Error, 'A private message database process'); + }); + } +} diff --git a/server/punishments.ts b/server/punishments.ts index 30f27a71f4ef..d2018c9b246e 100644 --- a/server/punishments.ts +++ b/server/punishments.ts @@ -127,11 +127,10 @@ class PunishmentMap extends Map { deleteOne(k: string, punishment: Punishment) { const list = this.get(k); if (!list) return; - for (const [i, cur] of list.entries()) { + for (let i = list.length - 1; i >= 0; i--) { + const cur = list[i]; if (punishment.type === cur.type && cur.id === punishment.id) { list.splice(i, 1); - break; // we don't need to run the rest of the list here - // given we will only ever have one punishment of one type } } if (!list.length) { @@ -145,9 +144,10 @@ class PunishmentMap extends Map { list = []; this.set(k, list); } - for (const [i, curPunishment] of list.entries()) { + for (let i = list.length - 1; i >= 0; i--) { + const curPunishment = list[i]; if (punishment.type === curPunishment.type) { - if (punishment.expireTime <= curPunishment.expireTime) { + if (curPunishment.expireTime >= punishment.expireTime) { curPunishment.reason = punishment.reason; // if we already have a punishment of the same type with a higher expiration date // we want to just update the reason and ignore it @@ -467,6 +467,9 @@ export const Punishments = new class { for (const row of data.replace('\r', '').split("\n")) { if (!row) continue; const [ip, type, note] = row.trim().split("\t"); + if (ip === 'IP') { + continue; // first row + } if (IPTools.ipRegex.test(note)) { // this is handling a bug where data accidentally got reversed // (into note,shared,ip format instead of ip,shared,note format) @@ -1336,9 +1339,7 @@ export const Punishments = new class { if (room.subRooms) { for (const subRoom of room.subRooms.values()) { for (const curUser of affected) { - if (subRoom.game && subRoom.game.removeBannedUser) { - subRoom.game.removeBannedUser(curUser); - } + subRoom.game?.removeBannedUser?.(curUser); curUser.leaveRoom(subRoom.roomid); } } @@ -1356,9 +1357,7 @@ export const Punishments = new class { for (const curUser of affected) { // ensure there aren't roombans so nothing gets mixed up Punishments.roomUnban(room, (curUser as any).id || curUser); - if (room.game && room.game.removeBannedUser) { - room.game.removeBannedUser(curUser); - } + room.game?.removeBannedUser?.(curUser); curUser.leaveRoom(room.roomid); } @@ -1838,9 +1837,7 @@ export const Punishments = new class { } if (punishment.type !== 'ROOMBAN' && punishment.type !== 'BLACKLIST') return null; const room = Rooms.get(roomid)!; - if (room.game && room.game.removeBannedUser) { - room.game.removeBannedUser(user); - } + room.game?.removeBannedUser?.(user); user.leaveRoom(room.roomid); } return punishments; @@ -1905,6 +1902,13 @@ export const Punishments = new class { } } + for (const id of user.previousIDs) { + punishments = Punishments.roomUserids.nestedGet(roomid, id); + for (const p of punishments || []) { + if (['ROOMBAN', 'BLACKLIST'].includes(p.type)) return p; + } + } + const room = Rooms.get(roomid); if (!room) throw new Error(`Trying to ban a user from a nonexistent room: ${roomid}`); @@ -2114,7 +2118,7 @@ export const Punishments = new class { if (typeof user !== 'string') { user.popup( `|modal|You've been locked for breaking the rules in multiple chatrooms.\n\n` + - `If you feel that your lock was unjustified, you can still PM staff members (%, @, &) to discuss it${Config.appealurl ? " or you can appeal:\n" + Config.appealurl : "."}\n\n` + + `If you feel that your lock was unjustified, you can still PM staff members (%, @, ~) to discuss it${Config.appealurl ? " or you can appeal:\n" + Config.appealurl : "."}\n\n` + `Your lock will expire in a few days.` ); } diff --git a/server/replays.ts b/server/replays.ts new file mode 100644 index 000000000000..82e2b8b73a6a --- /dev/null +++ b/server/replays.ts @@ -0,0 +1,239 @@ +/** + * Code for uploading and managing replays. + * + * Ported to TypeScript by Annika and Mia. + */ +import {SQL, PGDatabase} from '../lib/database'; + +export const replaysDB = Config.replaysdb ? new PGDatabase(Config.replaysdb) : null!; + +export const replays = replaysDB?.getTable< +ReplayRow +>('replays', 'id'); + +export const replayPlayers = replaysDB?.getTable<{ + playerid: string, + formatid: string, + id: string, + rating: number | null, + uploadtime: number, + private: ReplayRow['private'], + password: string | null, + format: string, + /** comma-delimited player names */ + players: string, +}>('replayplayers'); + +// must be a type and not an interface to qualify as an SQLRow +// eslint-disable-next-line +export type ReplayRow = { + id: string, + format: string, + /** player names delimited by `,`; starting with `!` denotes that player wants the replay private */ + players: string, + log: string, + inputlog: string | null, + uploadtime: number, + views: number, + formatid: string, + rating: number | null, + /** + * 0 = public + * 1 = private (with or without password) + * 2 = NOT USED; ONLY USED IN PREPREPLAY + * 3 = deleted + * 10 = autosaved + */ + private: 0 | 1 | 2 | 3 | 10, + password: string | null, +}; +type Replay = Omit & { + players: string[], + views?: number, + password?: string | null, +}; + +export const Replays = new class { + db = replaysDB as unknown; + replaysTable = replays as unknown; + replayPlayersTable = replayPlayers as unknown; + readonly passwordCharacters = '0123456789abcdefghijklmnopqrstuvwxyz'; + + toReplay(this: void, row: ReplayRow) { + const replay: Replay = { + ...row, + players: row.players.split(',').map(player => player.startsWith('!') ? player.slice(1) : player), + }; + if (!replay.password && replay.private === 1) replay.private = 2; + return replay; + } + toReplays(this: void, rows: ReplayRow[]) { + return rows.map(row => Replays.toReplay(row)); + } + + toReplayRow(this: void, replay: Replay) { + const formatid = toID(replay.format); + const replayData: ReplayRow = { + password: null, + views: 0, + ...replay, + players: replay.players.join(','), + formatid, + }; + if (replayData.private === 1 && !replayData.password) { + replayData.password = Replays.generatePassword(); + } else { + if (replayData.private === 2) { + replayData.private = 1; + replayData.password = null; + } + } + return replayData; + } + + async add(replay: Replay) { + // obviously upsert exists but this is the easiest way when multiple things need to be changed + const replayData = this.toReplayRow(replay); + try { + await replays.insert(replayData); + for (const playerName of replay.players) { + await replayPlayers.insert({ + playerid: toID(playerName), + formatid: replayData.formatid, + id: replayData.id, + rating: replayData.rating, + uploadtime: replayData.uploadtime, + private: replayData.private, + password: replayData.password, + format: replayData.format, + players: replayData.players, + }); + } + } catch (e: any) { + if (e?.routine !== 'NewUniquenessConstraintViolationError') throw e; + await replays.update(replay.id, { + log: replayData.log, + inputlog: replayData.inputlog, + rating: replayData.rating, + private: replayData.private, + password: replayData.password, + }); + await replayPlayers.updateAll({ + rating: replayData.rating, + private: replayData.private, + password: replayData.password, + })`WHERE id = ${replay.id}`; + } + return replayData.id + (replayData.password ? `-${replayData.password}pw` : ''); + } + + async get(id: string): Promise { + const replayData = await replays.get(id); + if (!replayData) return null; + + await replays.update(replayData.id, {views: SQL`views + 1`}); + + return this.toReplay(replayData); + } + + async edit(replay: Replay) { + const replayData = this.toReplayRow(replay); + await replays.update(replay.id, {private: replayData.private, password: replayData.password}); + } + + generatePassword(length = 31) { + let password = ''; + for (let i = 0; i < length; i++) { + password += this.passwordCharacters[Math.floor(Math.random() * this.passwordCharacters.length)]; + } + + return password; + } + + search(args: { + page?: number, isPrivate?: boolean, byRating?: boolean, + format?: string, username?: string, username2?: string, + }): Promise { + const page = args.page || 0; + if (page > 100) return Promise.resolve([]); + + let limit1 = 50 * (page - 1); + if (limit1 < 0) limit1 = 0; + + const isPrivate = args.isPrivate ? 1 : 0; + + const format = args.format ? toID(args.format) : null; + + if (args.username) { + const order = args.byRating ? SQL`ORDER BY rating DESC` : SQL`ORDER BY uploadtime DESC`; + const userid = toID(args.username); + if (args.username2) { + const userid2 = toID(args.username2); + if (format) { + return replays.query()`SELECT + p1.uploadtime AS uploadtime, p1.id AS id, p1.format AS format, p1.players AS players, + p1.rating AS rating, p1.password AS password, p1.private AS private + FROM replayplayers p1 INNER JOIN replayplayers p2 ON p2.id = p1.id + WHERE p1.playerid = ${userid} AND p1.formatid = ${format} AND p1.private = ${isPrivate} + AND p2.playerid = ${userid2} + ${order} LIMIT ${limit1}, 51;`.then(this.toReplays); + } else { + return replays.query()`SELECT + p1.uploadtime AS uploadtime, p1.id AS id, p1.format AS format, p1.players AS players, + p1.rating AS rating, p1.password AS password, p1.private AS private + FROM replayplayers p1 INNER JOIN replayplayers p2 ON p2.id = p1.id + WHERE p1.playerid = ${userid} AND p1.private = ${isPrivate} + AND p2.playerid = ${userid2} + ${order} LIMIT ${limit1}, 51;`.then(this.toReplays); + } + } else { + if (format) { + return replays.query()`SELECT uploadtime, id, format, players, rating, password FROM replayplayers + WHERE playerid = ${userid} AND formatid = ${format} AND private = ${isPrivate} + ${order} LIMIT ${limit1}, 51;`.then(this.toReplays); + } else { + return replays.query()`SELECT uploadtime, id, format, players, rating, password FROM replayplayers + WHERE playerid = ${userid} private = ${isPrivate} + ${order} LIMIT ${limit1}, 51;`.then(this.toReplays); + } + } + } + + if (args.byRating) { + return replays.query()`SELECT uploadtime, id, format, players, rating, password + FROM replays + WHERE private = ${isPrivate} AND formatid = ${format} ORDER BY rating DESC LIMIT ${limit1}, 51` + .then(this.toReplays); + } else { + return replays.query()`SELECT uploadtime, id, format, players, rating, password + FROM replays + WHERE private = ${isPrivate} AND formatid = ${format} ORDER BY uploadtime DESC LIMIT ${limit1}, 51` + .then(this.toReplays); + } + } + + fullSearch(term: string, page = 0): Promise { + if (page > 0) return Promise.resolve([]); + + const patterns = term.split(',').map(subterm => { + const escaped = subterm.replace(/%/g, '\\%').replace(/_/g, '\\_'); + return `%${escaped}%`; + }); + if (patterns.length !== 1 && patterns.length !== 2) return Promise.resolve([]); + + const secondPattern = patterns.length >= 2 ? SQL`AND log LIKE ${patterns[1]} ` : undefined; + + return replays.query()`SELECT /*+ MAX_EXECUTION_TIME(10000) */ + uploadtime, id, format, players, rating FROM ps_replays + WHERE private = 0 AND log LIKE ${patterns[0]} ${secondPattern} + ORDER BY uploadtime DESC LIMIT 10;`.then(this.toReplays); + } + + recent() { + return replays.selectAll( + SQL`uploadtime, id, format, players, rating` + )`WHERE private = 0 ORDER BY uploadtime DESC LIMIT 50`.then(this.toReplays); + } +}; + +export default Replays; diff --git a/server/room-battle-bestof.ts b/server/room-battle-bestof.ts new file mode 100644 index 000000000000..3f809db37896 --- /dev/null +++ b/server/room-battle-bestof.ts @@ -0,0 +1,496 @@ +import {Utils} from '../lib'; +import {RoomGamePlayer, RoomGame} from "./room-game"; +import type {RoomBattlePlayerOptions, RoomBattleOptions} from './room-battle'; +import type {PrivacySetting, RoomSettings} from './rooms'; + +const BEST_OF_IN_BETWEEN_TIME = 40; + +export class BestOfPlayer extends RoomGamePlayer { + wins = 0; + ready: boolean | null = null; + options: Omit & {user: null}; + dcAutoloseTime: number | null = null; + constructor(user: User | null, game: BestOfGame, num: number, options: RoomBattlePlayerOptions) { + super(user, game, num); + this.options = {...options, user: null}; + } + avatar() { + let avatar = Users.get(this.id)?.avatar; + if (!avatar || typeof avatar === 'number') avatar = 'unknownf'; + const url = Chat.plugins.avatars?.Avatars.src(avatar) || + `https://${Config.routes.client}/sprites/trainers/${avatar}.png`; + return url; + } + updateReadyButton() { + const user = this.getUser(); + if (!user?.connected) return; + + this.dcAutoloseTime = null; + const room = this.game.room; + const battleRoom = this.game.games[this.game.games.length - 1]?.room as Room | undefined; + const gameNum = this.game.games.length + 1; + + if (this.ready === false) { + const notification = `|tempnotify|choice|Next game|It's time for game ${gameNum} in your best-of-${this.game.bestOf}!`; + if (battleRoom && user.inRooms.has(battleRoom.roomid)) { + battleRoom.send(notification); + } else { + this.sendRoom(notification); + } + } else { + const notification = `|tempnotifyoff|choice`; + battleRoom?.sendUser(user, notification); + this.sendRoom(notification); + } + + if (this.ready === null) { + const button = `|c|~|/uhtml controls,`; + this.sendRoom(button); + battleRoom?.sendUser(user, button); + return; + } + + const cmd = `/msgroom ${room.roomid},/confirmready`; + const button = `|c|~|/uhtml controls,

    Are you ready for game ${gameNum}, ${this.name}?

    ` + + (this.ready ? + ` – waiting for opponent...` : + ``) + + `

    `; + this.sendRoom(button); + battleRoom?.sendUser(user, button); + } +} + +export class BestOfGame extends RoomGame { + override readonly gameid = 'bestof' as ID; + override allowRenames = false; + override room!: GameRoom; + bestOf: number; + format: Format; + winThreshold: number; + options: Omit & {parent: Room, players: null}; + forcedSettings: {modchat?: string | null, privacy?: string | null} = {}; + ties = 0; + games: {room: GameRoom, winner: BestOfPlayer | null | undefined, rated: number}[] = []; + playerNum = 0; + /** null = tie, undefined = not ended */ + winner: BestOfPlayer | null | undefined = undefined; + /** when waiting between battles, this is the just-ended battle room, the one with the |tempnotify| */ + waitingBattle: GameRoom | null = null; + nextBattleTimerEnd: number | null = null; + nextBattleTimer: NodeJS.Timer | null = null; + /** Does NOT control bestof's own timer, which is always-on. Controls timers in sub-battles. */ + needsTimer = false; + score: number[] | null = null; + constructor(room: GameRoom, options: RoomBattleOptions) { + super(room); + this.format = Dex.formats.get(options.format); + this.bestOf = Number(Dex.formats.getRuleTable(this.format).valueRules.get('bestof'))!; + this.winThreshold = Math.floor(this.bestOf / 2) + 1; + this.title = this.format.name; + if (!toID(this.title).includes('bestof')) { + this.title += ` (Best-of-${this.bestOf})`; + } + this.room.bestOf = this; + this.options = { + ...options, + isBestOfSubBattle: true, + parent: this.room, + allowRenames: false, + players: null, + }; + for (const playerOpts of options.players) { + this.addPlayer(playerOpts.user, playerOpts); + } + process.nextTick(() => this.nextGame()); + } + override onConnect(user: User) { + const player = this.playerTable[user.id]; + player?.sendRoom('|cantleave|'); + player?.updateReadyButton(); + } + override makePlayer(user: User | null, options: RoomBattlePlayerOptions): BestOfPlayer { + return new BestOfPlayer(user, this, ++this.playerNum, options); + } + override addPlayer(user: User, options: RoomBattlePlayerOptions) { + const player = super.addPlayer(user, options); + if (!player) throw new Error(`Failed to make player ${user} in ${this.roomid}`); + this.room.auth.set(user.id, Users.PLAYER_SYMBOL); + return player; + } + checkPrivacySettings(options: RoomBattleOptions & Partial) { + let inviteOnly = false; + const privacySetter = new Set([]); + for (const p of options.players) { + if (p.user) { + if (p.inviteOnly) { + inviteOnly = true; + privacySetter.add(p.user.id); + } else if (p.hidden) { + privacySetter.add(p.user.id); + } + this.checkForcedUserSettings(p.user); + } + } + + if (privacySetter.size) { + const room = this.room; + if (this.forcedSettings.privacy) { + room.setPrivate(false); + room.settings.modjoin = null; + room.add(`|raw|
    This best-of set is required to be public due to a player having a name starting with '${this.forcedSettings.privacy}'.
    `); + } else if (!options.tour || (room.tour?.allowModjoin)) { + room.setPrivate('hidden'); + if (inviteOnly) room.settings.modjoin = '%'; + room.privacySetter = privacySetter; + if (inviteOnly) { + room.settings.modjoin = '%'; + room.add(`|raw|
    This best-of set is invite-only!
    Users must be invited with /invite (or be staff) to join
    `); + } + } + } + } + checkForcedUserSettings(user: User) { + this.forcedSettings = { + modchat: this.forcedSettings.modchat || Rooms.RoomBattle.battleForcedSetting(user, 'modchat'), + privacy: this.forcedSettings.privacy || Rooms.RoomBattle.battleForcedSetting(user, 'privacy'), + }; + if ( + this.players.some(p => p.getUser()?.battleSettings.special) || + (this.options.rated && this.forcedSettings.modchat) + ) { + this.room.settings.modchat = '\u2606'; + } + } + setPrivacyOfGames(privacy: PrivacySetting) { + for (let i = 0; i < this.games.length; i++) { + const room = this.games[i].room; + const prevRoom = this.games[i - 1]?.room; + const gameNum = i + 1; + + room.setPrivate(privacy); + this.room.add(`|uhtmlchange|game${gameNum}|
    ${room.title}`); + room.add(`|uhtmlchange|bestof|

    Game ${gameNum} of a best-of-${this.bestOf}

    `).update(); + if (prevRoom) { + prevRoom.add(`|uhtmlchange|next|Next: Game ${gameNum} of ${this.bestOf}`).update(); + } + } + this.updateDisplay(); + } + clearWaiting() { + this.waitingBattle = null; + for (const player of this.players) { + player.ready = null; + player.updateReadyButton(); + } + if (this.nextBattleTimer) { + clearInterval(this.nextBattleTimer); + this.nextBattleTimerEnd = null; + } + this.nextBattleTimerEnd = null; + this.nextBattleTimer = null; + } + getOptions(): RoomBattleOptions | null { + const players = this.players.map(player => ({ + ...player.options, + user: player.getUser()!, + })); + if (players.some(p => !p.user)) { + return null; + } + return { + ...this.options, + players, + }; + } + nextGame() { + const prevBattleRoom = this.waitingBattle; + if (!prevBattleRoom && this.games.length) return; // should never happen + this.clearWaiting(); + + const options = this.getOptions(); + if (!options) { + for (const p of this.players) { + if (!p.getUser()) { + // tbc this isn't just being offline, it's changing name or being offline for 15 minutes + this.forfeitPlayer(p, ` lost by being unavailable at the start of a game.`); + return; + } + } + throw new Error(`Failed to get options for ${this.roomid}`); + } + const battleRoom = Rooms.createBattle(options); + // shouldn't happen even in lockdown + if (!battleRoom) throw new Error("Failed to create battle for " + this.title); + this.games.push({ + room: battleRoom, + winner: undefined, + rated: battleRoom.rated, + }); + // the absolute result is what counts for rating + battleRoom.rated = 0; + if (this.needsTimer) { + battleRoom.battle?.timer.start(); + } + const gameNum = this.games.length; + const p1 = this.players[0]; + const p2 = this.players[1]; + battleRoom.add( + Utils.html`|html|
    ` + + `
    ${p1.name}${p2.name}
    ${this.renderWins(p1)}${this.renderWins(p2)}
    ` + ); + battleRoom.add( + `|uhtml|bestof|

    Game ${gameNum} of a best-of-${this.bestOf}

    ` + ).update(); + + this.room.add(`|html|

    Game ${gameNum}

    `); + this.room.add(Utils.html`|uhtml|game${gameNum}|${battleRoom.title}`); + this.updateDisplay(); + + prevBattleRoom?.add( + `|uhtml|next|Next: Game ${gameNum} of ${this.bestOf}` + ).update(); + } + renderWins(player: BestOfPlayer) { + const wins = this.games.filter(game => game.winner === player).length; + const winBuf = ` `.repeat(wins); + const restBuf = ` `.repeat(this.winThreshold - wins); + return player.num === 1 ? winBuf + restBuf : restBuf + winBuf; + } + updateDisplay() { + const p1name = this.players[0].name; + const p2name = this.players[1].name; + let buf = Utils.html`
    ${p1name} and ${p2name}'s Best-of-${this.bestOf} progress:
    `; + buf += ''; + for (const p of this.players) { + buf += Utils.html``; + } + buf += `
    ${p.name}: `; + for (let i = 0; i < this.bestOf; i++) { + if (this.games[i]?.winner === p) { + buf += ``; + } else { + buf += ``; + } + if (i !== this.bestOf - 1) { + buf += ` `; + } + } + buf += `


    `; + buf += ``; + + for (const i of [0, null, 1]) { + if (i === null) { + buf += ``; + continue; + } + buf += Utils.html``; + } + + buf += ``; + + for (const i of [0, null, 1]) { + if (i === null) { + buf += ``; + continue; + } + const p = this.players[i]; + const mirrorLeftPlayer = !i ? ' style="transform: scaleX(-1)"' : ""; + buf += ``; + } + + buf += ``; + + for (const i of [0, null, 1]) { + if (i === null) { + buf += ``; + continue; + } + const team = Teams.unpack(this.players[i].options.team || ""); + if (!team || !Dex.formats.getRuleTable(this.format).has('teampreview')) { + buf += ``; + continue; + } + const mirrorLeftPlayer = !i ? ' style="transform: scaleX(-1)"' : ""; + buf += ``; + } + buf += `
    ${this.players[i].name}
    `; + buf += ``; + buf += `
    vs `; + buf += ` `.repeat(3); + buf += `
    `; + buf += ` `.repeat(3); + buf += `
    `; + for (const [j, set] of team.entries()) { + if (j % 3 === 0 && j > 1) buf += `
    `; + buf += ``; + } + buf += `
    `; + this.room.add(`|fieldhtml|
    ${buf}
    `); + + buf = this.games.map(({room, winner}, index) => { + let progress = `being played`; + if (winner) progress = Utils.html`won by ${winner.name}`; + if (winner === null) progress = `tied`; + return Utils.html`

    Game ${index + 1}: ${progress}

    `; + }).join(''); + if (this.winner) { + buf += Utils.html`

    ${this.winner.name} won!

    `; + } else if (this.winner === null) { + buf += `

    The battle was tied.

    `; + } + this.room.add(`|controlshtml|
    ${buf}
    `); + this.room.update(); + } + + override startTimer() { + this.needsTimer = true; + for (const {room} of this.games) { + room.battle?.timer.start(); + } + } + + onBattleWin(room: Room, winnerid: ID) { + if (this.ended) return; // can happen if the bo3 is destroyed fsr + + const winner = winnerid ? this.playerTable[winnerid] : null; + this.games[this.games.length - 1].winner = winner; + if (winner) { + winner.wins++; + const loserPlayer = room.battle!.players.filter(p => p.num !== winner.num)[0]; + if (loserPlayer && loserPlayer.dcSecondsLeft <= 0) { // disconnection means opp wins the set + return this.forfeit(loserPlayer.name, ` lost the series due to inactivity.`); + } + this.room.add(Utils.html`|html|${winner.name} won game ${this.games.length}!`).update(); + if (winner.wins >= this.winThreshold) { + return this.end(winner.id); + } + } else { + this.ties++; + this.winThreshold = Math.floor((this.bestOf - this.ties) / 2) + 1; + this.room.add(`|html|Game ${this.games.length} was a tie.`).update(); + } + if (this.games.length >= this.bestOf) { + return this.end(''); // overall tie + } + + // no one has won, skip onwards + this.promptNextGame(room); + } + promptNextGame(room: Room) { + if (!room.battle || this.winner) return; // ??? + this.updateDisplay(); + this.waitingBattle = room; + const now = Date.now(); + this.nextBattleTimerEnd = now + BEST_OF_IN_BETWEEN_TIME * 1000; + for (const player of this.players) { + player.ready = false; + const dcAutoloseTime = now + room.battle.players[player.num - 1].dcSecondsLeft * 1000; + if (dcAutoloseTime < this.nextBattleTimerEnd) { + player.dcAutoloseTime = dcAutoloseTime; + } + player.updateReadyButton(); + } + this.nextBattleTimer = setInterval(() => this.pokeNextBattleTimer(), 10000); + } + pokeNextBattleTimer() { + if (!this.nextBattleTimerEnd || !this.nextBattleTimer) return; // ?? + if (Date.now() >= this.nextBattleTimerEnd) { + return this.nextGame(); + } + for (const p of this.players) { + if (!p.ready) { + const now = Date.now() - 100; // fudge to make rounding work better + if (p.dcAutoloseTime && now > p.dcAutoloseTime) { + return this.forfeit(p.name, ` lost the series due to inactivity.`); + } + const message = (p.dcAutoloseTime ? + `|inactive|${p.name} has ${Chat.toDurationString(p.dcAutoloseTime - now)} to reconnect!` : + `|inactive|${p.name} has ${Chat.toDurationString(this.nextBattleTimerEnd - now)} to confirm battle start!` + ); + this.waitingBattle?.add(message); + this.room.add(message); + } + } + this.waitingBattle?.update(); + this.room.update(); + } + confirmReady(user: User) { + const player = this.playerTable[user.id]; + if (!player) { + throw new Chat.ErrorMessage("You aren't a player in this best-of set."); + } + if (!this.waitingBattle) { + throw new Chat.ErrorMessage("The battle is not currently waiting for ready confirmation."); + } + + player.ready = true; + player.updateReadyButton(); + const readyMsg = `||${player.name} is ready for game ${this.games.length + 1}.`; + this.waitingBattle.add(readyMsg).update(); + this.room.add(readyMsg).update(); + if (this.players.every(p => p.ready)) { + this.nextGame(); + } + } + override setEnded() { + this.clearWaiting(); + super.setEnded(); + } + end(winnerid: ID) { + if (this.ended) return; + this.setEnded(); + this.room.add(`|allowleave|`).update(); + const winner = winnerid ? this.playerTable[winnerid] : null; + this.winner = winner; + if (winner) { + this.room.add(`|win|${winner.name}`); + } else { + this.room.add(`|tie`); + } + this.updateDisplay(); + this.room.update(); + const p1 = this.players[0]; + const p2 = this.players[1]; + this.score = this.players.map(p => p.wins); + this.room.parent?.game?.onBattleWin?.(this.room, winnerid); + // run elo stuff here + let p1score = 0.5; + if (winner === p1) { + p1score = 1; + } else if (winner === p2) { + p1score = 0; + } + + const {rated, room} = this.games[this.games.length - 1]; + if (rated) { + void room.battle?.updateLadder(p1score, winnerid); + } + } + override forfeit(user: User | string, message = '') { + const userid = (typeof user !== 'string') ? user.id : toID(user); + + const loser = this.playerTable[userid]; + if (loser) this.forfeitPlayer(loser, message); + } + forfeitPlayer(loser: BestOfPlayer, message = '') { + if (this.ended || this.winner) return false; + + this.winner = this.players.filter(p => p !== loser)[0]; + this.room.add(`||${loser.name}${message || ' forfeited.'}`); + this.end(this.winner.id); + + const lastBattle = this.games[this.games.length - 1].room.battle; + if (lastBattle && !lastBattle.ended) lastBattle.forfeit(loser.id, message); + return true; + } + override destroy() { + this.setEnded(); + for (const {room} of this.games) room.expire(); + this.games = []; + for (const p of this.players) p.destroy(); + this.players = []; + this.playerTable = {}; + this.winner = null; + } +} diff --git a/server/room-battle.ts b/server/room-battle.ts index 326a5ba8ec59..8cefa75275c7 100644 --- a/server/room-battle.ts +++ b/server/room-battle.ts @@ -11,12 +11,14 @@ * @license MIT */ -import {FS, Repl, ProcessManager} from '../lib'; import {execSync} from "child_process"; +import {Repl, ProcessManager, type Streams} from '../lib'; import {BattleStream} from "../sim/battle-stream"; -import * as RoomGames from "./room-game"; +import {RoomGamePlayer, RoomGame} from "./room-game"; import type {Tournament} from './tournaments/index'; -import {RoomSettings} from './rooms'; +import type {RoomSettings} from './rooms'; +import type {BestOfGame} from './room-battle-bestof'; +import type {GameTimerSettings} from '../sim/dex-formats'; type ChannelIndex = 0 | 1 | 2 | 3 | 4; export type PlayerIndex = 1 | 2 | 3 | 4; @@ -52,13 +54,12 @@ const DISCONNECTION_BANK_TIME = 300; const TIMER_COOLDOWN = 20 * SECONDS; const LOCKDOWN_PERIOD = 30 * 60 * 1000; // 30 minutes -export class RoomBattlePlayer extends RoomGames.RoomGamePlayer { +export class RoomBattlePlayer extends RoomGamePlayer { readonly slot: SideID; readonly channelIndex: ChannelIndex; request: BattleRequestTracker; wantsTie: boolean; wantsOpenTeamSheets: boolean | null; - active: boolean; eliminated: boolean; /** * Total timer. @@ -73,16 +74,18 @@ export class RoomBattlePlayer extends RoomGames.RoomGamePlayer { */ secondsLeft: number; /** - * Turn timer. + * Current turn timer. * * Set equal to the player's overall timer, but capped at 150 * seconds in a ladder battle. Goes down by 5 every tick. * Tracked separately from the overall timer, and the player also - * loses if this reaches 0. + * loses if this reaches 0 (except in VGC where the default choice + * is chosen if it reaches 0). */ turnSecondsLeft: number; /** * Disconnect timer. + * * Starts at 60 seconds. While the player is disconnected, this * will go down by 5 every tick. Tracked separately from the * overall timer, and the player also loses if this reaches 0. @@ -91,11 +94,18 @@ export class RoomBattlePlayer extends RoomGames.RoomGamePlayer { * 150 seconds against a disconnected opponent. */ dcSecondsLeft: number; + /** + * Is the user actually in the room? + */ + active: boolean; /** * Used to track a user's last known connection status, and display * the proper message when it changes. + * + * `.active` is set right when the user joins/leaves, but `.knownActive` + * is only set after the timer knows about it. */ - connected: boolean; + knownActive: boolean; invite: ID; /** * Has the simulator received this player's team yet? @@ -113,14 +123,14 @@ export class RoomBattlePlayer extends RoomGames.RoomGamePlayer { this.request = {rqid: 0, request: '', isWait: 'cantUndo', choice: ''}; this.wantsTie = false; this.wantsOpenTeamSheets = null; - this.active = true; + this.active = !!user?.connected; this.eliminated = false; this.secondsLeft = 1; this.turnSecondsLeft = 1; this.dcSecondsLeft = 1; - this.connected = true; + this.knownActive = true; this.invite = ''; this.hasTeam = false; @@ -134,43 +144,18 @@ export class RoomBattlePlayer extends RoomGames.RoomGamePlayer { } } } - getUser() { - return (this.id && Users.get(this.id)) || null; - } - unlinkUser() { + override destroy() { const user = this.getUser(); if (user) { - for (const connection of user.connections) { - Sockets.channelMove(connection.worker, this.game.roomid, 0, connection.socketid); - } - user.games.delete(this.game.roomid); - user.updateSearch(); + this.updateChannel(user, 0); } - this.id = ''; - this.connected = false; + this.knownActive = false; this.active = false; } - updateChannel(user: User | Connection) { - if (user instanceof Users.Connection) { - // "user" is actually a connection - Sockets.channelMove(user.worker, this.game.roomid, this.channelIndex, user.socketid); - return; + updateChannel(user: User | Connection, channel = this.channelIndex) { + for (const connection of (user.connections || [user])) { + Sockets.channelMove(connection.worker, this.game.roomid, channel, connection.socketid); } - for (const connection of user.connections) { - Sockets.channelMove(connection.worker, this.game.roomid, this.channelIndex, connection.socketid); - } - } - - toString() { - return this.id; - } - send(data: string) { - const user = this.getUser(); - if (user) user.send(data); - } - sendRoom(data: string) { - const user = this.getUser(); - if (user) user.sendTo(this.game.roomid, data); } } @@ -203,9 +188,10 @@ export class RoomBattleTimer { this.lastDisabledTime = 0; this.lastDisabledByUser = null; - const hasLongTurns = Dex.formats.get(battle.format, true).gameType !== 'singles'; + const format = Dex.formats.get(battle.format, true); + const hasLongTurns = format.gameType !== 'singles'; const isChallenge = (battle.challengeType === 'challenge'); - const timerEntry = Dex.formats.getRuleTable(Dex.formats.get(battle.format, true)).timer; + const timerEntry = Dex.formats.getRuleTable(format).timer; const timerSettings = timerEntry?.[0]; // so that Object.assign doesn't overwrite anything with `undefined` @@ -259,6 +245,7 @@ export class RoomBattleTimer { const requestedBy = requester ? ` (requested by ${requester.name})` : ``; this.battle.room.add(`|inactive|Battle timer is ON: inactive players will automatically lose when time's up.${requestedBy}`).update(); + this.checkActivity(); this.nextRequest(); return true; } @@ -339,9 +326,7 @@ export class RoomBattleTimer { const secondsLeft = player.turnSecondsLeft; let grace = player.secondsLeft - this.settings.starting; if (grace < 0) grace = 0; - if (player) { - player.sendRoom(`|inactive|Time left: ${secondsLeft} sec this turn | ${player.secondsLeft - grace} sec total` + (grace ? ` | ${grace} sec grace` : ``)); - } + player.sendRoom(`|inactive|Time left: ${secondsLeft} sec this turn | ${player.secondsLeft - grace} sec total` + (grace ? ` | ${grace} sec grace` : ``)); if (secondsLeft <= 30 && secondsLeft < this.settings.starting) { room.add(`|inactive|${player.name} has ${secondsLeft} seconds left this turn.`); } @@ -359,7 +344,7 @@ export class RoomBattleTimer { const room = this.battle.room; for (const player of this.battle.players) { if (player.request.isWait) continue; - if (player.connected) { + if (player.knownActive) { player.secondsLeft -= TICK_TIME; player.turnSecondsLeft -= TICK_TIME; } else { @@ -371,11 +356,13 @@ export class RoomBattleTimer { } const dcSecondsLeft = player.dcSecondsLeft; - if (dcSecondsLeft <= 0) player.turnSecondsLeft = 0; + if (dcSecondsLeft <= 0) { + player.turnSecondsLeft = 0; + } const secondsLeft = player.turnSecondsLeft; if (!secondsLeft) continue; - if (!player.connected && (dcSecondsLeft <= secondsLeft || this.settings.dcTimerBank)) { + if (!player.knownActive && (dcSecondsLeft <= secondsLeft || this.settings.dcTimerBank)) { // dc timer is shown only if it's lower than turn timer or you're in timer bank mode if (dcSecondsLeft % 30 === 0 || dcSecondsLeft <= 20) { room.add(`|inactive|${player.name} has ${dcSecondsLeft} seconds to reconnect!`); @@ -398,13 +385,13 @@ export class RoomBattleTimer { checkActivity() { if (this.battle.ended) return; for (const player of this.battle.players) { - const isConnected = !!player?.active; + const isActive = !!player.active; - if (isConnected === player.connected) continue; + if (isActive === player.knownActive) continue; - if (!isConnected) { + if (!isActive) { // player has disconnected - player.connected = false; + player.knownActive = false; if (!this.settings.dcTimerBank) { // don't wait longer than 6 ticks (1 minute) if (this.settings.dcTimer) { @@ -432,7 +419,7 @@ export class RoomBattleTimer { } } else { // player has reconnected - player.connected = true; + player.knownActive = true; if (this.timerRequesters.size) { let timeLeft = ``; if (!player.request.isWait) { @@ -454,8 +441,9 @@ export class RoomBattleTimer { } let didSomething = false; for (const player of players) { + if (!player.id) continue; // already eliminated, relevant for FFA gamesif it if (player.turnSecondsLeft > 0) continue; - if (this.settings.timeoutAutoChoose && player.secondsLeft > 0 && player.connected) { + if (this.settings.timeoutAutoChoose && player.secondsLeft > 0 && player.knownActive) { void this.battle.stream.write(`>${player.slot} default`); didSomething = true; } else { @@ -467,7 +455,7 @@ export class RoomBattleTimer { } } -interface RoomBattlePlayerOptions { +export interface RoomBattlePlayerOptions { user: User; /** should be '' for random teams */ team?: string; @@ -478,11 +466,15 @@ interface RoomBattlePlayerOptions { export interface RoomBattleOptions { format: string; - p1?: RoomBattlePlayerOptions; - p2?: RoomBattlePlayerOptions; - p3?: RoomBattlePlayerOptions; - p4?: RoomBattlePlayerOptions; - + /** + * length should be equal to the format's playerCount, except in two + * special cases: + * - `/importinputlog`, where it's empty (players have to be invited/restored) + * - challenge ffa/multi, where it's 2 (the rest have to be invited) + * - restoring saved battles after a restart (players should be manually restored) + * In all special cases, either `delayedStart` or `inputLog` must be set + */ + players: RoomBattlePlayerOptions[]; delayedStart?: boolean | 'multi'; challengeType?: ChallengeType; allowRenames?: boolean; @@ -492,17 +484,20 @@ export interface RoomBattleOptions { ratedMessage?: string; seed?: PRNGSeed; roomid?: RoomID; - players?: ID[]; /** For battles restored after a restart */ delayedTimer?: boolean; - restored?: boolean; + /** + * If false and the format is a best-of format, creates a best-of game + * rather than a battle. + */ + isBestOfSubBattle?: boolean; } -export class RoomBattle extends RoomGames.RoomGame { - readonly gameid: ID; - readonly room: GameRoom; - readonly title: string; - readonly allowRenames: boolean; +export class RoomBattle extends RoomGame { + override readonly gameid = 'battle' as ID; + override readonly room!: GameRoom; + override readonly title: string; + override readonly allowRenames: boolean; readonly format: string; /** Will exist even if the game is unrated, in case it's later forced to be rated */ readonly ladder: string; @@ -516,39 +511,34 @@ export class RoomBattle extends RoomGames.RoomGame { /** * userid that requested extraction -> playerids that accepted the extraction */ - readonly allowExtraction: {[k: string]: Set}; + readonly allowExtraction: {[k: string]: Set} = {}; readonly stream: Streams.ObjectReadWriteStream; - readonly timer: RoomBattleTimer; - missingBattleStartMessage: boolean | 'multi'; - started: boolean; - ended: boolean; - active: boolean; - needsRejoin: Set | null; - replaySaved: boolean; + override readonly timer: RoomBattleTimer; + started = false; + active = false; + replaySaved: boolean | 'auto' = false; forcedSettings: {modchat?: string | null, privacy?: string | null} = {}; - p1: RoomBattlePlayer; - p2: RoomBattlePlayer; - p3: RoomBattlePlayer; - p4: RoomBattlePlayer; - inviteOnlySetter: ID | null; - logData: AnyObject | null; - endType: string; + p1: RoomBattlePlayer = null!; + p2: RoomBattlePlayer = null!; + p3: RoomBattlePlayer = null!; + p4: RoomBattlePlayer = null!; + inviteOnlySetter: ID | null = null; + logData: AnyObject | null = null; + endType: 'forfeit' | 'forced' | 'normal' = 'normal'; /** * If the battle is ended: an array of the number of Pokemon left for each side. */ - score: number[] | null; - inputLog: string[] | null; - turn: number; - rqid: number; - requestCount: number; + score: number[] | null = null; + inputLog: string[] | null = null; + turn = 0; + rqid = 1; + requestCount = 0; options: RoomBattleOptions; frozen?: boolean; dataResolvers?: [((args: string[]) => void), ((error: Error) => void)][]; constructor(room: GameRoom, options: RoomBattleOptions) { super(room); const format = Dex.formats.get(options.format, true); - this.gameid = 'battle' as ID; - this.room = room; this.title = format.name; this.options = options; if (!this.title.endsWith(" Battle")) this.title += " Battle"; @@ -559,40 +549,11 @@ export class RoomBattle extends RoomGames.RoomGame { this.challengeType = options.challengeType || 'challenge'; this.rated = options.rated === true ? 1 : options.rated || 0; this.ladder = typeof format.rated === 'string' ? toID(format.rated) : options.format; - // true when onCreateBattleRoom has been called - this.missingBattleStartMessage = !!options.inputLog || options.delayedStart || false; - this.started = false; - this.ended = false; - this.active = false; - this.replaySaved = false; - - this.playerCap = this.gameType === 'multi' || this.gameType === 'freeforall' ? 4 : 2; - this.p1 = null!; - this.p2 = null!; - this.p3 = null!; - this.p4 = null!; - this.inviteOnlySetter = null; - - this.needsRejoin = options.restored ? new Set(options.players) : null; - - // data to be logged - this.allowExtraction = {}; - - this.logData = null; - this.endType = 'normal'; - this.score = null; - this.inputLog = null; - this.turn = 0; - - this.rqid = 1; - this.requestCount = 0; + this.playerCap = format.playerCount; this.stream = PM.createStream(); - let ratedMessage = ''; - if (options.ratedMessage) { - ratedMessage = options.ratedMessage; - } + let ratedMessage = options.ratedMessage || ''; if (this.rated) { ratedMessage = 'Rated battle'; } else if (this.room.tour) { @@ -615,11 +576,25 @@ export class RoomBattle extends RoomGames.RoomGame { void this.listen(); - this.addPlayer(options.p1?.user || null, options.p1); - this.addPlayer(options.p2?.user || null, options.p2); - if (this.playerCap > 2) { - this.addPlayer(options.p3?.user || null, options.p3); - this.addPlayer(options.p4?.user || null, options.p4); + if (options.players.length > this.playerCap) { + throw new Error(`${options.players.length} players passed to battle ${room.roomid} but ${this.playerCap} players expected`); + } + for (let i = 0; i < this.playerCap; i++) { + const p = options.players[i]; + const player = this.addPlayer(p?.user || null, p || null); + if (!player) throw new Error(`failed to create player ${i + 1} in ${room.roomid}`); + } + if (options.inputLog) { + let scanIndex = 0; + for (const player of this.players) { + const nameIndex1 = options.inputLog.indexOf(`"name":"`, scanIndex); + const nameIndex2 = options.inputLog.indexOf(`"`, nameIndex1 + 8); + if (nameIndex1 < 0 || nameIndex2 < 0) break; // shouldn't happen. incomplete inputlog? + scanIndex = nameIndex2 + 1; + const name = options.inputLog.slice(nameIndex1 + 8, nameIndex2); + player.name = name; + player.hasTeam = true; + } } this.timer = new RoomBattleTimer(this); if (Config.forcetimer || this.format.includes('blitz')) this.timer.start(); @@ -627,26 +602,13 @@ export class RoomBattle extends RoomGames.RoomGame { } checkActive() { - let active = true; - if (this.ended || !this.started) { - active = false; - } else if (!this.p1?.active) { - active = false; - } else if (!this.p2?.active) { - active = false; - } else if (this.playerCap > 2) { - if (!this.p3?.active) { - active = false; - } else if (!this.p4?.active) { - active = false; - } - } + const active = (this.started && !this.ended && this.players.every(p => p.active)); Rooms.global.battleCount += (active ? 1 : 0) - (this.active ? 1 : 0); this.room.active = active; this.active = active; if (Rooms.global.battleCount === 0) Rooms.global.automaticKillRequest(); } - choose(user: User, data: string) { + override choose(user: User, data: string) { if (this.frozen) { user.popup(`Your battle is currently paused, so you cannot move right now.`); return; @@ -670,7 +632,7 @@ export class RoomBattle extends RoomGames.RoomGame { void this.stream.write(`>${player.slot} ${choice}`); } - undo(user: User, data: string) { + override undo(user: User, data: string) { const player = this.playerTable[user.id]; const [, rqid] = data.split('|', 2); if (!player) return; @@ -689,20 +651,13 @@ export class RoomBattle extends RoomGames.RoomGame { void this.stream.write(`>${player.slot} undo`); } - joinGame(user: User, slot?: SideID, playerOpts?: {team?: string}) { - if (this.needsRejoin?.size && !this.needsRejoin.has(user.id)) { - user.popup(`All the original players in this battle must join first.`); - return false; - } + override joinGame(user: User, slot?: SideID, playerOpts?: {team?: string}) { if (user.id in this.playerTable) { user.popup(`You have already joined this battle.`); return false; } - const validSlots: SideID[] = []; - for (const player of this.players) { - if (!player.id) validSlots.push(player.slot); - } + const validSlots = this.players.filter(player => !player.id).map(player => player.slot); if (slot && !validSlots.includes(slot)) { user.popup(`This battle already has a user in slot ${slot}.`); @@ -710,16 +665,16 @@ export class RoomBattle extends RoomGames.RoomGame { } if (!validSlots.length) { - user.popup(`This battle already has two players.`); + user.popup(`This battle already has ${this.playerCap} players.`); return false; } + slot ??= this.players.find(player => player.invite === user.id)?.slot; if (!slot && validSlots.length > 1) { user.popup(`Which slot would you like to join into? Use something like \`/joingame ${validSlots[0]}\``); return false; } - - if (!slot) slot = validSlots[0]; + slot ??= validSlots[0]; if (this[slot].invite === user.id) { this.room.auth.set(user.id, Users.PLAYER_SYMBOL); @@ -728,16 +683,13 @@ export class RoomBattle extends RoomGames.RoomGame { return false; } - this.updatePlayer(this[slot], user, playerOpts); - this.needsRejoin?.delete(user.id); - if (validSlots.length - 1 < 1 && this.missingBattleStartMessage) { - const users = this.players.map(player => { - const u = player.getUser(); - if (!u) throw new Error(`User ${player.name} not found on ${this.roomid} battle creation`); - return u; - }); + this.setPlayerUser(this[slot], user, playerOpts); + if (validSlots.length - 1 <= 0) { + // all players have joined, start the battle + // onCreateBattleRoom crashes if some users are unavailable at start of battle + // what do we do??? no clue but I guess just exclude them from the array for now + const users = this.players.map(player => player.getUser()).filter(Boolean) as User[]; Rooms.global.onCreateBattleRoom(users, this.room, {rated: this.rated}); - this.missingBattleStartMessage = false; this.started = true; this.room.add(`|uhtmlchange|invites|`); } else if (!this.started && this.invitesFull()) { @@ -747,7 +699,7 @@ export class RoomBattle extends RoomGames.RoomGame { this.room.update(); return true; } - leaveGame(user: User) { + override leaveGame(user: User) { if (!user) return false; // ... if (this.room.rated || this.room.tour) { user.popup(`Players can't be swapped out in a ${this.room.tour ? "tournament" : "rated"} battle.`); @@ -761,11 +713,14 @@ export class RoomBattle extends RoomGames.RoomGame { Chat.runHandlers('onBattleLeave', user, this.room); this.updatePlayer(player, null); - this.room.auth.set(user.id, '+'); this.room.update(); return true; } + override startTimer() { + this.timer.start(); + } + async listen() { let disconnected = false; try { @@ -786,7 +741,7 @@ export class RoomBattle extends RoomGames.RoomGame { this.room.add(`|bigerror|The simulator process crashed. We've been notified and will fix this ASAP.`); if (!disconnected) Monitor.crashlog(new Error(`Sim stream interrupted`), `A sim stream`); this.started = true; - this.ended = true; + this.setEnded(); this.checkActive(); } } @@ -837,10 +792,10 @@ export class RoomBattle extends RoomGames.RoomGame { choice: '', }; this.requestCount++; - if (player) player.sendRoom(`|request|${requestJSON}`); + player?.sendRoom(`|request|${requestJSON}`); break; } - if (player) player.sendRoom(lines[2]); + player?.sendRoom(lines[2]); break; } @@ -859,74 +814,65 @@ export class RoomBattle extends RoomGames.RoomGame { this.score = this.logData!.score; this.inputLog = this.logData!.inputLog; this.started = true; - if (!this.ended) { - this.ended = true; - void this.onEnd(this.logData!.winner); - this.clearPlayers(); - } - this.checkActive(); + void this.end(this.logData!.winner); break; } } - async onEnd(winner: any) { + end(winnerName: unknown) { + if (this.ended) return; + this.setEnded(); + this.checkActive(); this.timer.end(); // Declare variables here in case we need them for non-rated battles logging. let p1score = 0.5; - const winnerid = toID(winner); + const winnerid = toID(winnerName); // Check if the battle was rated to update the ladder, return its response, and log the battle. - const p1name = this.p1.name; - const p2name = this.p2.name; - const p1id = toID(p1name); - const p2id = toID(p2name); - Chat.runHandlers('onBattleEnd', this, winnerid, [p1id, p2id, this.p3?.id, this.p4?.id].filter(Boolean)); - if (this.room.rated) { - this.room.rated = 0; - - if (winnerid === p1id) { - p1score = 1; - } else if (winnerid === p2id) { - p1score = 0; - } - - winner = Users.get(winnerid); - if (winner && !winner.registered) { - this.room.sendUser(winner, '|askreg|' + winner.id); - } - const [score, p1rating, p2rating] = await Ladders(this.ladder).updateRating(p1name, p2name, p1score, this.room); - void this.logBattle(score, p1rating, p2rating); - Chat.runHandlers('onBattleRanked', this, winnerid, [p1rating, p2rating], [p1id, p2id]); + if (winnerid === this.p1.id) { + p1score = 1; + } else if (winnerid === this.p2.id) { + p1score = 0; + } + Chat.runHandlers('onBattleEnd', this, winnerid, this.players.map(p => p.id)); + if (this.room.rated && !this.options.isBestOfSubBattle) { + void this.updateLadder(p1score, winnerid); } else if (Config.logchallenges) { - if (winnerid === p1id) { - p1score = 1; - } else if (winnerid === p2id) { - p1score = 0; - } void this.logBattle(p1score); - } else { + } else if (!this.options.isBestOfSubBattle) { this.logData = null; } - // If a replay was saved at any point or we were configured to autosavereplays, - // reupload when the battle is over to overwrite the partial data (and potentially - // reflect any changes that may have been made to the replay's hidden status). - if (this.replaySaved || Config.autosavereplays) { - const uploader = Users.get(winnerid || p1id); - if (uploader?.connections[0]) { - Chat.parse('/savereplay silent', this.room, uploader, uploader.connections[0]); - } - } - const parentGame = this.room.parent && this.room.parent.game; - // @ts-ignore - Tournaments aren't TS'd yet - if (parentGame?.onBattleWin) { - // @ts-ignore - parentGame.onBattleWin(this.room, winnerid); - } - // If the room's replay was hidden, disable users from joining after the game is over + this.room.parent?.game?.onBattleWin?.(this.room, winnerid); + // If the room's replay was hidden, don't let users join after the game is over if (this.room.hideReplay) { this.room.settings.modjoin = '%'; this.room.setPrivate('hidden'); } this.room.update(); + + // so it stops showing up in the users' games list + for (const player of this.players) { + player.getUser()?.games.delete(this.roomid); + } + + // If a replay was saved at any point or we were configured to autosavereplays, + // reupload when the battle is over to overwrite the partial data (and potentially + // reflect any changes that may have been made to the replay's hidden status). + if (this.replaySaved || Config.autosavereplays) { + const options = Config.autosavereplays === 'private' ? undefined : 'silent'; + return this.room.uploadReplay(undefined, undefined, options); + } + } + async updateLadder(p1score: number, winnerid: ID) { + this.room.rated = 0; + const winner = Users.get(winnerid); + if (winner && !winner.registered) { + this.room.sendUser(winner, '|askreg|' + winner.id); + } + const [score, p1rating, p2rating] = await Ladders(this.ladder).updateRating( + this.p1.name, this.p2.name, p1score, this.room + ); + void this.logBattle(score, p1rating, p2rating); + Chat.runHandlers('onBattleRanked', this, winnerid, [p1rating, p2rating], [this.p1.id, this.p2.id]); } async logBattle( p1score: number, p1rating: AnyObject | null = null, p2rating: AnyObject | null = null, @@ -949,6 +895,7 @@ export class RoomBattle extends RoomGames.RoomGame { } logData.p1rating = p1rating; + if (this.replaySaved) logData.replaySaved = this.replaySaved; logData.p2rating = p2rating; if (this.playerCap > 2) { logData.p3rating = p3rating; @@ -964,13 +911,17 @@ export class RoomBattle extends RoomGames.RoomGame { const logsubfolder = Chat.toTimestamp(date).split(' ')[0]; const logfolder = logsubfolder.split('-', 2).join('-'); const tier = Dex.formats.get(this.room.format).id; - const logpath = `logs/${logfolder}/${tier}/${logsubfolder}/`; + const logpath = `${logfolder}/${tier}/${logsubfolder}/`; - await FS(logpath).mkdirp(); - await FS(`${logpath}${this.room.getReplayData().id}.log.json`).write(JSON.stringify(logData)); + await Monitor.logPath(logpath).mkdirp(); + await Monitor.logPath(`${logpath}${this.room.getReplayData().id}.log.json`).write(JSON.stringify(logData)); // console.log(JSON.stringify(logData)); } - onConnect(user: User, connection: Connection | null = null) { + override onConnect(user: User, connection: Connection | null = null) { + if (this.ended && this.room.parent?.game?.constructor.name === 'BestOfGame') { + const parentGame = this.room.parent.game as BestOfGame; + parentGame.playerTable[user.id]?.updateReadyButton(); + } // this handles joining a battle in which a user is a participant, // where the user has already identified before attempting to join // the battle @@ -988,10 +939,7 @@ export class RoomBattle extends RoomGames.RoomGame { } if (!player.active) this.onJoin(user); } - onUpdateConnection(user: User, connection: Connection | null = null) { - this.onConnect(user, connection); - } - onRename(user: User, oldUserid: ID, isJoining: boolean, isForceRenamed: boolean) { + override onRename(user: User, oldUserid: ID, isJoining: boolean, isForceRenamed: boolean) { if (user.id === oldUserid) return; if (!this.playerTable) { // !! should never happen but somehow still does @@ -1032,15 +980,16 @@ export class RoomBattle extends RoomGames.RoomGame { }; void this.stream.write(`>player ${player.slot} ` + JSON.stringify(options)); } - onJoin(user: User) { + override onJoin(user: User) { const player = this.playerTable[user.id]; if (player && !player.active) { player.active = true; this.timer.checkActivity(); - this.room.add(`|player|${player.slot}|${user.name}|${user.avatar}`); + this.room.add(`|player|${player.slot}|${user.name}|${user.avatar}|`); + Chat.runHandlers('onBattleJoin', player.slot, user, this); } } - onLeave(user: User, oldUserid?: ID) { + override onLeave(user: User, oldUserid?: ID) { const player = this.playerTable[oldUserid || user.id]; if (player?.active) { player.sendRoom(`|request|null`); @@ -1065,7 +1014,7 @@ export class RoomBattle extends RoomGames.RoomGame { tiebreak() { void this.stream.write(`>tiebreak`); } - forfeit(user: User | string, message = '') { + override forfeit(user: User | string, message = '') { if (typeof user !== 'string') user = user.id; else user = toID(user); @@ -1074,15 +1023,14 @@ export class RoomBattle extends RoomGames.RoomGame { } forfeitPlayer(player: RoomBattlePlayer, message = '') { - if (this.ended || !this.started) return false; + if (this.ended || !this.started || player.eliminated) return false; - if (!message) message = ' forfeited.'; - this.room.add(`|-message|${player.name}${message}`); + player.eliminated = true; + this.room.add(`|-message|${player.name}${message || ' forfeited.'}`); this.endType = 'forfeit'; - // multi battles, they need to be removed, else they can do things like spam forfeit if (this.playerCap > 2) { player.sendRoom(`|request|null`); - this.removePlayer(player); + this.setPlayerUser(player, null); } void this.stream.write(`>forcelose ${player.slot}`); return true; @@ -1092,8 +1040,9 @@ export class RoomBattle extends RoomGames.RoomGame { * playerOpts should be empty only if importing an inputlog * (so the player isn't recreated) */ - addPlayer(user: User | null, playerOpts?: RoomBattlePlayerOptions) { + override addPlayer(user: User | string | null, playerOpts?: RoomBattlePlayerOptions | null) { const player = super.addPlayer(user); + if (typeof user === 'string') user = null; if (!player) return null; const slot = player.slot; this[slot] = player; @@ -1119,16 +1068,15 @@ export class RoomBattle extends RoomGames.RoomGame { checkPrivacySettings(options: RoomBattleOptions & Partial) { let inviteOnly = false; const privacySetter = new Set([]); - for (const p of ['p1', 'p2', 'p3', 'p4'] as const) { - const playerOptions = options[p]; - if (playerOptions) { - if (playerOptions.inviteOnly) { + for (const p of options.players) { + if (p.user) { + if (p.inviteOnly) { inviteOnly = true; - privacySetter.add(playerOptions.user.id); - } else if (playerOptions.hidden) { - privacySetter.add(playerOptions.user.id); + privacySetter.add(p.user.id); + } else if (p.hidden) { + privacySetter.add(p.user.id); } - if (playerOptions.user) this.checkForcedUserSettings(playerOptions.user); + this.checkForcedUserSettings(p.user); } } @@ -1153,7 +1101,7 @@ export class RoomBattle extends RoomGames.RoomGame { checkForcedUserSettings(user: User) { this.forcedSettings = { modchat: this.forcedSettings.modchat || RoomBattle.battleForcedSetting(user, 'modchat'), - privacy: this.forcedSettings.privacy || RoomBattle.battleForcedSetting(user, 'privacy'), + privacy: !!this.options.rated && (this.forcedSettings.privacy || RoomBattle.battleForcedSetting(user, 'privacy')), }; if ( this.players.some(p => p.getUser()?.battleSettings.special) || @@ -1182,12 +1130,17 @@ export class RoomBattle extends RoomGames.RoomGame { return new RoomBattlePlayer(user, this, num); } - updatePlayer(player: RoomBattlePlayer, user: User | null, playerOpts?: {team?: string}) { - super.updatePlayer(player, user); + override setPlayerUser(player: RoomBattlePlayer, user: User | null, playerOpts?: {team?: string}) { + if (user === null && this.room.auth.get(player.id) === Users.PLAYER_SYMBOL) { + this.room.auth.set(player.id, '+'); + } + super.setPlayerUser(player, user); player.invite = ''; const slot = player.slot; if (user) { + player.active = user.inRooms.has(this.roomid); + player.knownActive = true; const options = { name: player.name, avatar: user.avatar, @@ -1196,8 +1149,11 @@ export class RoomBattle extends RoomGames.RoomGame { void this.stream.write(`>player ${slot} ` + JSON.stringify(options)); if (playerOpts) player.hasTeam = true; - this.room.add(`|player|${slot}|${player.name}|${user.avatar}`); + this.room.add(`|player|${slot}|${player.name}|${user.avatar}|`); + Chat.runHandlers('onBattleJoin', slot as string, user, this); } else { + player.active = false; + player.knownActive = false; const options = { name: '', }; @@ -1208,20 +1164,6 @@ export class RoomBattle extends RoomGames.RoomGame { } start() { - // on start - const users = this.players.map(player => { - const user = player.getUser(); - if (!user && !this.missingBattleStartMessage) { - throw new Error(`User ${player.name} not found on ${this.roomid} battle creation`); - } - return user; - }); - if (!this.missingBattleStartMessage) { - // @ts-ignore The above error should throw if null is found, or this should be skipped - Rooms.global.onCreateBattleRoom(users, this.room, {rated: this.rated}); - this.started = true; - } - if (this.gameType === 'multi') { this.room.title = `Team ${this.p1.name} vs. Team ${this.p2.name}`; } else if (this.gameType === 'freeforall') { @@ -1231,7 +1173,8 @@ export class RoomBattle extends RoomGames.RoomGame { this.room.title = `${this.p1.name} vs. ${this.p2.name}`; } this.room.send(`|title|${this.room.title}`); - const suspectTest = Chat.plugins['suspect-tests']?.suspectTests[this.format]; + const suspectTest = Chat.plugins['suspect-tests']?.suspectTests[this.format] || + Chat.plugins['suspect-tests']?.suspectTests.suspects[this.format]; if (suspectTest) { const format = Dex.formats.get(this.format); this.room.add( @@ -1239,7 +1182,25 @@ export class RoomBattle extends RoomGames.RoomGame { `For information on how to participate check out the suspect thread.